浏览代码

auto acp scripted

dev
jfinn 5 年前
父节点
当前提交
f20184c32c
共有 100 个文件被更改,包括 0 次插入8060 次删除
  1. 0
    6
      android/sdk/src/main/res/values/strings.xml
  2. 0
    150
      android/sdk/src/test/java/org/jitsi/meet/sdk/net/NAT64AddrInfoTest.java
  3. 0
    27
      android/settings.gradle
  4. 0
    3
      connection_optimization/.eslintrc.js
  5. 0
    0
      connection_optimization/connection_optimization.html
  6. 0
    86
      connection_optimization/do_external_connect.js
  7. 0
    14
      css/404.scss
  8. 0
    50
      css/_atlaskit_overrides.scss
  9. 0
    135
      css/_audio-preview.css
  10. 0
    229
      css/_aui_reset.scss
  11. 0
    66
      css/_avatar.scss
  12. 0
    187
      css/_base.scss
  13. 0
    386
      css/_chat.scss
  14. 0
    93
      css/_chrome-extension-banner.scss
  15. 0
    54
      css/_connection-info.scss
  16. 0
    6
      css/_functions.scss
  17. 0
    110
      css/_inlay.scss
  18. 0
    129
      css/_jquery-impromptu.scss
  19. 0
    206
      css/_jquery.contextMenu.scss
  20. 0
    10
      css/_keyboard-shortcuts.scss
  21. 0
    18
      css/_login_menu.scss
  22. 0
    123
      css/_meetings_list.scss
  23. 0
    30
      css/_meter.css
  24. 0
    66
      css/_mini_toolbox.scss
  25. 0
    208
      css/_mixins.scss
  26. 0
    29
      css/_modaldialog.scss
  27. 0
    80
      css/_navigate_section_list.scss
  28. 0
    15
      css/_notice.scss
  29. 0
    26
      css/_participants-count.scss
  30. 0
    15
      css/_policy.scss
  31. 0
    50
      css/_popover.scss
  32. 0
    115
      css/_popup_menu.scss
  33. 0
    1
      css/_promotional-footer.scss
  34. 0
    117
      css/_recording.scss
  35. 0
    34
      css/_redirect_page.scss
  36. 0
    79
      css/_settings-button.scss
  37. 0
    32
      css/_subject.scss
  38. 0
    286
      css/_toolbars.scss
  39. 0
    20
      css/_transcription-subtitles.scss
  40. 0
    43
      css/_utils.scss
  41. 0
    273
      css/_variables.scss
  42. 0
    66
      css/_video-preview.css
  43. 0
    705
      css/_videolayout_default.scss
  44. 0
    184
      css/_welcome_page.scss
  45. 0
    1
      css/_welcome_page_content.scss
  46. 0
    1
      css/_welcome_page_settings_toolbar.scss
  47. 0
    68
      css/aui-components/dropdown.scss
  48. 0
    101
      css/components/_button-control.scss
  49. 0
    49
      css/components/_form-control.scss
  50. 0
    29
      css/components/_input-control.scss
  51. 0
    41
      css/components/_input-slider.scss
  52. 0
    20
      css/components/_link.scss
  53. 0
    75
      css/deep-linking/_desktop.scss
  54. 0
    3
      css/deep-linking/_main.scss
  55. 0
    165
      css/deep-linking/_mobile.scss
  56. 0
    21
      css/deep-linking/_no-mobile-app.scss
  57. 0
    31
      css/filmstrip/_filmstrip_toolbar.scss
  58. 0
    142
      css/filmstrip/_horizontal_filmstrip.scss
  59. 0
    51
      css/filmstrip/_small_video.scss
  60. 0
    114
      css/filmstrip/_tile_view.scss
  61. 0
    57
      css/filmstrip/_tile_view_overrides.scss
  62. 0
    207
      css/filmstrip/_vertical_filmstrip.scss
  63. 0
    110
      css/filmstrip/_vertical_filmstrip_overrides.scss
  64. 0
    94
      css/main.scss
  65. 0
    145
      css/modals/_dialog.scss
  66. 0
    65
      css/modals/desktop-picker/_desktop-picker.scss
  67. 0
    131
      css/modals/device-selection/_device-selection.scss
  68. 0
    98
      css/modals/feedback/_feedback.scss
  69. 0
    49
      css/modals/invite/_add-people.scss
  70. 0
    232
      css/modals/invite/_info.scss
  71. 0
    92
      css/modals/local-recording/_local-recording.scss
  72. 0
    61
      css/modals/settings/_settings.scss
  73. 0
    51
      css/modals/speaker_stats/_speaker_stats.scss
  74. 0
    201
      css/modals/video-quality/_video-quality.scss
  75. 0
    47
      css/overlay/_overlay.scss
  76. 0
    26
      css/reload_overlay/_reload_overlay.scss
  77. 0
    45
      css/ringing/_ringing.scss
  78. 0
    115
      css/themes/_light.scss
  79. 0
    32
      css/third-party-branding/google.scss
  80. 0
    28
      css/third-party-branding/microsoft.scss
  81. 0
    1
      css/unsupported-browser/_main.scss
  82. 0
    39
      css/unsupported-browser/_unsupported-desktop-browser.scss
  83. 0
    5
      debian/changelog
  84. 0
    1
      debian/compat
  85. 0
    58
      debian/control
  86. 0
    38
      debian/copyright
  87. 0
    7
      debian/jitsi-meet-prosody.README.Debian
  88. 0
    1
      debian/jitsi-meet-prosody.docs
  89. 0
    2
      debian/jitsi-meet-prosody.install
  90. 0
    225
      debian/jitsi-meet-prosody.postinst
  91. 0
    72
      debian/jitsi-meet-prosody.postrm
  92. 0
    35
      debian/jitsi-meet-prosody.templates
  93. 0
    7
      debian/jitsi-meet-tokens.README.Debian
  94. 0
    10
      debian/jitsi-meet-tokens.config
  95. 0
    0
      debian/jitsi-meet-tokens.docs
  96. 0
    107
      debian/jitsi-meet-tokens.postinst
  97. 0
    75
      debian/jitsi-meet-tokens.postrm
  98. 0
    14
      debian/jitsi-meet-tokens.templates
  99. 0
    3
      debian/jitsi-meet-turnserver.install
  100. 0
    0
      debian/jitsi-meet-turnserver.postinst

+ 0
- 6
android/sdk/src/main/res/values/strings.xml 查看文件

@@ -1,6 +0,0 @@
1
-<resources>
2
-    <string name="app_name">Jitsi Meet SDK</string>
3
-    <string name="dropbox_app_key"></string>
4
-    <string name="ongoing_notification_title">Ongoing meeting</string>
5
-    <string name="ongoing_notification_text">You are currently in a meeting. Tap to return to it.</string>
6
-</resources>

+ 0
- 150
android/sdk/src/test/java/org/jitsi/meet/sdk/net/NAT64AddrInfoTest.java 查看文件

@@ -1,150 +0,0 @@
1
-/*
2
- * Copyright @ 2017-present Atlassian Pty Ltd
3
- *
4
- * Licensed under the Apache License, Version 2.0 (the "License");
5
- * you may not use this file except in compliance with the License.
6
- * You may obtain a copy of the License at
7
- *
8
- *     http://www.apache.org/licenses/LICENSE-2.0
9
- *
10
- * Unless required by applicable law or agreed to in writing, software
11
- * distributed under the License is distributed on an "AS IS" BASIS,
12
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- * See the License for the specific language governing permissions and
14
- * limitations under the License.
15
- */
16
-package org.jitsi.meet.sdk.net;
17
-
18
-import org.junit.Test;
19
-
20
-import java.math.BigInteger;
21
-import java.net.UnknownHostException;
22
-
23
-import static org.junit.Assert.*;
24
-
25
-/**
26
- * Tests for {@link NAT64AddrInfo} class.
27
- */
28
-public class NAT64AddrInfoTest {
29
-    /**
30
-     * Test case for the 96 prefix length.
31
-     */
32
-    @Test
33
-    public void test96Prefix() {
34
-        testPrefixSuffix(
35
-                "260777000000000400000000", "", "203.0.113.1", "23.17.23.3");
36
-    }
37
-
38
-    /**
39
-     * Test case for the 64 prefix length.
40
-     */
41
-    @Test
42
-    public void test64Prefix() {
43
-        String prefix = "1FF2A227B3AAF3D2";
44
-        String suffix = "BB87C8";
45
-
46
-        testPrefixSuffix(prefix, suffix, "48.46.87.34", "23.87.145.4");
47
-    }
48
-
49
-    /**
50
-     * Test case for the 56 prefix length.
51
-     */
52
-    @Test
53
-    public void test56Prefix() {
54
-        String prefix = "1FF2A227B3AAF3";
55
-        String suffix = "A2BB87C8";
56
-
57
-        testPrefixSuffix(prefix, suffix, "34.72.234.255", "1.235.3.65");
58
-    }
59
-
60
-    /**
61
-     * Test case for the 48 prefix length.
62
-     */
63
-    @Test
64
-    public void test48Prefix() {
65
-        String prefix = "1FF2A227B3AA";
66
-        String suffix = "72A2BB87C8";
67
-
68
-        testPrefixSuffix(prefix, suffix, "97.54.3.23", "77.49.0.33");
69
-    }
70
-
71
-    /**
72
-     * Test case for the 40 prefix length.
73
-     */
74
-    @Test
75
-    public void test40Prefix() {
76
-        String prefix = "1FF2A227B3";
77
-        String suffix = "D972A2BB87C8";
78
-
79
-        testPrefixSuffix(prefix, suffix, "10.23.56.121", "97.65.32.21");
80
-    }
81
-
82
-    /**
83
-     * Test case for the 32 prefix length.
84
-     */
85
-    @Test
86
-    public void test32Prefix()
87
-        throws UnknownHostException {
88
-        String prefix = "1FF2A227";
89
-        String suffix = "20D972A2BB87C8";
90
-
91
-        testPrefixSuffix(prefix, suffix, "162.63.65.189", "135.222.84.206");
92
-    }
93
-
94
-    private static String buildIPv6Addr(
95
-            String prefix, String suffix, String ipv4Hex) {
96
-        String ipv6Str = prefix + ipv4Hex + suffix;
97
-
98
-        if (suffix.length() > 0) {
99
-            ipv6Str = new StringBuilder(ipv6Str).insert(16, "00").toString();
100
-        }
101
-
102
-        return ipv6Str;
103
-    }
104
-
105
-    private void testPrefixSuffix(
106
-            String prefix, String suffix, String ipv4, String otherIPv4) {
107
-        byte[] ipv4Bytes = NAT64AddrInfo.ipv4AddressStringToBytes(ipv4);
108
-        String ipv4String = NAT64AddrInfo.bytesToHexString(ipv4Bytes);
109
-        String ipv6Str = buildIPv6Addr(prefix, suffix, ipv4String);
110
-
111
-        BigInteger ipv6Address = new BigInteger(ipv6Str, 16);
112
-
113
-        NAT64AddrInfo nat64AddrInfo
114
-            = NAT64AddrInfo.figureOutNAT64AddrInfo(
115
-                    ipv4Bytes, ipv6Address.toByteArray());
116
-
117
-        assertNotNull("Failed to figure out NAT64 info", nat64AddrInfo);
118
-
119
-        String newIPv6 = nat64AddrInfo.getIPv6Address(ipv4);
120
-
121
-        assertEquals(
122
-                NAT64AddrInfo.hexStringToIPv6String(ipv6Address.toString(16)),
123
-                newIPv6);
124
-
125
-        byte[] ipv4Addr2 = NAT64AddrInfo.ipv4AddressStringToBytes(otherIPv4);
126
-        String ipv4Addr2Hex = NAT64AddrInfo.bytesToHexString(ipv4Addr2);
127
-
128
-        newIPv6 = nat64AddrInfo.getIPv6Address(otherIPv4);
129
-
130
-        assertEquals(
131
-                NAT64AddrInfo.hexStringToIPv6String(
132
-                        buildIPv6Addr(prefix, suffix, ipv4Addr2Hex)),
133
-                newIPv6);
134
-    }
135
-
136
-    @Test
137
-    public void testInvalidIPv4Format() {
138
-        testInvalidIPv4Format("256.1.2.3");
139
-        testInvalidIPv4Format("FE80:CD00:0000:0CDA:1357:0000:212F:749C");
140
-    }
141
-
142
-    private void testInvalidIPv4Format(String ipv4Str) {
143
-        try {
144
-            NAT64AddrInfo.ipv4AddressStringToBytes(ipv4Str);
145
-            fail("Did not throw IllegalArgumentException");
146
-        } catch (IllegalArgumentException exc) {
147
-            /* OK */
148
-        }
149
-    }
150
-}

+ 0
- 27
android/settings.gradle 查看文件

@@ -1,27 +0,0 @@
1
-rootProject.name = 'jitsi-meet'
2
-
3
-include ':app', ':sdk'
4
-include ':react-native-background-timer'
5
-project(':react-native-background-timer').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-background-timer/android')
6
-include ':react-native-calendar-events'
7
-project(':react-native-calendar-events').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-calendar-events/android')
8
-include ':react-native-community-async-storage'
9
-project(':react-native-community-async-storage').projectDir = new File(rootProject.projectDir, '../node_modules/@react-native-community/async-storage/android')
10
-include ':react-native-community_netinfo'
11
-project(':react-native-community_netinfo').projectDir = new File(rootProject.projectDir, '../node_modules/@react-native-community/netinfo/android')
12
-include ':react-native-google-signin'
13
-project(':react-native-google-signin').projectDir = new File(rootProject.projectDir, '../node_modules/@react-native-community/google-signin/android')
14
-include ':react-native-immersive'
15
-project(':react-native-immersive').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-immersive/android')
16
-include ':react-native-keep-awake'
17
-project(':react-native-keep-awake').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-keep-awake/android')
18
-include ':react-native-linear-gradient'
19
-project(':react-native-linear-gradient').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-linear-gradient/android')
20
-include ':react-native-sound'
21
-project(':react-native-sound').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-sound/android')
22
-include ':react-native-svg'
23
-project(':react-native-svg').projectDir = new File(rootProject.projectDir, 	'../node_modules/react-native-svg/android')
24
-include ':react-native-webrtc'
25
-project(':react-native-webrtc').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-webrtc/android')
26
-include ':react-native-webview'
27
-project(':react-native-webview').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-webview/android')

+ 0
- 3
connection_optimization/.eslintrc.js 查看文件

@@ -1,3 +0,0 @@
1
-module.exports = {
2
-    'extends': '../react/.eslintrc.js'
3
-};

+ 0
- 0
connection_optimization/connection_optimization.html 查看文件


+ 0
- 86
connection_optimization/do_external_connect.js 查看文件

@@ -1,86 +0,0 @@
1
-/* global config, createConnectionExternally */
2
-
3
-import getRoomName from '../react/features/base/config/getRoomName';
4
-import parseURLParams from '../react/features/base/config/parseURLParams';
5
-
6
-/**
7
- * Implements external connect using createConnectionExternally function defined
8
- * in external_connect.js for Jitsi Meet. Parses the room name and JSON Web
9
- * Token (JWT) from the URL and executes createConnectionExternally.
10
- *
11
- * NOTE: If you are using lib-jitsi-meet without Jitsi Meet, you should use this
12
- * file as reference only because the implementation is Jitsi Meet-specific.
13
- *
14
- * NOTE: For optimal results this file should be included right after
15
- * external_connect.js.
16
- */
17
-
18
-if (typeof createConnectionExternally === 'function') {
19
-    // URL params have higher priority than config params.
20
-    // Do not use external connect if websocket is enabled.
21
-    let url
22
-        = parseURLParams(window.location, true, 'hash')[
23
-                'config.externalConnectUrl']
24
-            || config.websocket ? undefined : config.externalConnectUrl;
25
-    const isRecorder
26
-        = parseURLParams(window.location, true, 'hash')['config.iAmRecorder'];
27
-
28
-    let roomName;
29
-
30
-    if (url && (roomName = getRoomName()) && !isRecorder) {
31
-        url += `?room=${roomName}`;
32
-
33
-        const token = parseURLParams(window.location, true, 'search').jwt;
34
-
35
-        if (token) {
36
-            url += `&token=${token}`;
37
-        }
38
-
39
-        createConnectionExternally(
40
-            url,
41
-            connectionInfo => {
42
-                // Sets that global variable to be used later by connect method
43
-                // in connection.js.
44
-                window.XMPPAttachInfo = {
45
-                    status: 'success',
46
-                    data: connectionInfo
47
-                };
48
-                checkForConnectHandlerAndConnect();
49
-            },
50
-            errorCallback);
51
-    } else {
52
-        errorCallback();
53
-    }
54
-} else {
55
-    errorCallback();
56
-}
57
-
58
-/**
59
- * Check if connect from connection.js was executed and executes the handler
60
- * that is going to finish the connect work.
61
- *
62
- * @returns {void}
63
- */
64
-function checkForConnectHandlerAndConnect() {
65
-    window.APP
66
-        && window.APP.connect.status === 'ready'
67
-        && window.APP.connect.handler();
68
-}
69
-
70
-/**
71
- * Implements a callback to be invoked if anything goes wrong.
72
- *
73
- * @param {Error} error - The specifics of what went wrong.
74
- * @returns {void}
75
- */
76
-function errorCallback(error) {
77
-    // The value of error is undefined if external connect is disabled.
78
-    error && console.warn(error);
79
-
80
-    // Sets that global variable to be used later by connect method in
81
-    // connection.js.
82
-    window.XMPPAttachInfo = {
83
-        status: 'error'
84
-    };
85
-    checkForConnectHandlerAndConnect();
86
-}

+ 0
- 14
css/404.scss 查看文件

@@ -1,14 +0,0 @@
1
-.error_page {
2
-    width: 60%;
3
-    margin: 20% auto;
4
-    text-align: center;
5
-
6
-    h2 {
7
-        font-size: 36px;
8
-    }
9
-
10
-    &__message {
11
-        font-size: 24px;
12
-        margin-top: 20px;
13
-    }
14
-}

+ 0
- 50
css/_atlaskit_overrides.scss 查看文件

@@ -1,50 +0,0 @@
1
-/**
2
- * Move the @atlaskit/flag container up a little bit so it does not cover the
3
- * toolbar with the first notification.
4
- */
5
-.cjMOOK{
6
-    bottom: calc(#{$newToolbarSizeWithPadding}) !important;
7
-}
8
-
9
-/**
10
- * Disable the slide-in animation for @atlaskit/flag due to the animation
11
- * repeating for each queued flag once it becomes the top flag.
12
- */
13
- .mIBKA:first-child {
14
-    animation: cbfRuT 0s !important;
15
-    -webkit-animation: cbfRuT 0s !important;
16
-}
17
-
18
-.modal-dialog-form {
19
-    /**
20
-     * Update the @atlaskit/dropdown-menu trigger wrapper to make sure it looks
21
-     * click-able.
22
-     */
23
-    .cjJUnw {
24
-        cursor: pointer;
25
-    }
26
-
27
-    /**
28
-     * Override @atlaskit/dropdown-menu styling when in a modal because the
29
-     * dropdown backgrounds clash with the modal backgrounds.
30
-     */
31
-    .cksvax[data-role=droplistContent] {
32
-        border: 1px solid #455166;
33
-    }
34
-}
35
-
36
-/**
37
- * Override @atlaskit/theme styling for the top toolbar so it displays over
38
- * the video thumbnail while obscuring as little as possible.
39
- */
40
-.videocontainer .tOoji {
41
-    background: none;
42
-}
43
-
44
-/**
45
- * Override @atlaskit/InlineDialog styling for the overflowmenu so it displays
46
- * with the correct height.
47
- */
48
-.toolbox-button-wth-dialog .eYJELv {
49
-    max-height: initial;
50
-}

+ 0
- 135
css/_audio-preview.css 查看文件

@@ -1,135 +0,0 @@
1
-.audio-preview {
2
-    &-content {
3
-        font-size: 15px;
4
-        line-height: 24px;
5
-        max-height: 456px;
6
-        overflow: auto;
7
-        width: 328px;
8
-    }
9
-
10
-    &-header {
11
-        color: #fff;
12
-        display: flex;
13
-        padding: 16px;
14
-
15
-        &-icon {
16
-            color: #A4B8D1;
17
-            display: inline-block;
18
-        }
19
-
20
-        &-text {
21
-            font-weight: bold;
22
-            margin-left: 8px;
23
-        }
24
-    }
25
-
26
-    &-entry {
27
-        align-items: center;
28
-        color: #fff;
29
-        cursor: pointer;
30
-        display: flex;
31
-        padding: 12px 0;
32
-        margin-left: 48px;
33
-
34
-        &--selected {
35
-            background: rgba(28,32,37,0.5);
36
-            cursor: initial;
37
-            margin-left: 0;
38
-            padding-left: 21px;
39
-        }
40
-
41
-        &-text {
42
-            color: #fff;
43
-            font-size: 15px;
44
-            display: inline-block;
45
-            line-height: 24px;
46
-            text-overflow: ellipsis;
47
-            max-width: 213px;
48
-            overflow: hidden;
49
-            white-space: nowrap;
50
-        }
51
-    }
52
-
53
-    &-speaker {
54
-        position: relative;
55
-
56
-        &:hover {
57
-            .audio-preview-entry {
58
-                background: rgba(255,255,255, 0.2);
59
-                margin-left: 0;
60
-                padding-left: 48px;
61
-
62
-                &--selected {
63
-                    padding-left: 21px;
64
-                }
65
-            }
66
-
67
-            .audio-preview-test-button {
68
-                display: inline-block;
69
-            }
70
-
71
-            .audio-preview-entry-text {
72
-                max-width: 196px;
73
-            }
74
-        }
75
-
76
-        .audio-preview-entry-text {
77
-            max-width: 256px;
78
-        }
79
-    }
80
-
81
-    &-microphone {
82
-        position: relative;
83
-    }
84
-
85
-
86
-    &-icon {
87
-        border-radius: 50%;
88
-        display: inline-block;
89
-        width: 14px;
90
-
91
-        & svg {
92
-            fill: #1C2025;
93
-        }
94
-
95
-        &--check {
96
-            background: #31B76A;
97
-            margin-right: 13px;
98
-        }
99
-
100
-        &--exclamation {
101
-            margin-left: 6px;
102
-            & svg {
103
-                fill: #E54B4B;
104
-            }
105
-        }
106
-    }
107
-
108
-    &-test-button {
109
-        display: none;
110
-        background: #FFF;
111
-        border: 1px solid #D1DBE8;
112
-        border-radius: 3px;
113
-        color: #1C2025;
114
-        cursor: pointer;
115
-        font-weight: 600;
116
-        font-size: 15px;
117
-        line-height: 24px;
118
-        padding: 4px 16px;
119
-        position: absolute;
120
-        right: 16px;
121
-        top: 8px;
122
-    }
123
-
124
-    &-meter-mic {
125
-        position: absolute;
126
-        right: 16px;
127
-        top: 18px;
128
-    }
129
-
130
-   // Override @atlaskit/InlineDialog container which is made with styled components
131
-    & > div > div:nth-child(2) > div > div {
132
-        outline: none;
133
-        padding: 0;
134
-    }
135
-}

+ 0
- 229
css/_aui_reset.scss 查看文件

@@ -1,229 +0,0 @@
1
-/* Fonts and line heights */
2
-/**
3
- * RESET
4
- */
5
-html,
6
-body,
7
-p,
8
-div,
9
-h1,
10
-h2,
11
-h3,
12
-h4,
13
-h5,
14
-h6,
15
-img,
16
-pre,
17
-form,
18
-fieldset {
19
-  margin: 0;
20
-  padding: 0;
21
-}
22
-ul,
23
-ol,
24
-dl {
25
-  margin: 0;
26
-}
27
-img,
28
-fieldset {
29
-  border: 0;
30
-}
31
-@-moz-document url-prefix() {
32
-  img {
33
-    font-size: 0;
34
-  }
35
-  img:-moz-broken {
36
-    font-size: inherit;
37
-  }
38
-}
39
-/* https://github.com/necolas/normalize.css */
40
-/* Customised to remove styles for unsupported browsers */
41
-details,
42
-main,
43
-summary {
44
-  display: block;
45
-}
46
-audio,
47
-canvas,
48
-progress,
49
-video {
50
-  display: inline-block;
51
-  vertical-align: baseline;
52
-}
53
-audio:not([controls]) {
54
-  display: none;
55
-  height: 0;
56
-}
57
-[hidden],
58
-template {
59
-  display: none;
60
-}
61
-input[type="button"],
62
-input[type="submit"],
63
-input[type="reset"] {
64
-  -webkit-appearance: button;
65
-}
66
-/**
67
- * TYPOGRAPHY - 14px base font size, agnostic font stack
68
- */
69
-body {
70
-  color: #333;
71
-  font-family: Arial, sans-serif;
72
-  font-size: 14px;
73
-  line-height: 1.42857142857143;
74
-}
75
-/* International Font Stacks*/
76
-[lang|=en] {
77
-  font-family: Arial, sans-serif;
78
-}
79
-[lang|=ja] {
80
-  font-family: "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", "メイリオ", Meiryo, "MS Pゴシック", Verdana, Arial, sans-serif;
81
-}
82
-/* Default margins */
83
-p,
84
-ul,
85
-ol,
86
-dl,
87
-h1,
88
-h2,
89
-h3,
90
-h4,
91
-h5,
92
-h6,
93
-blockquote,
94
-pre {
95
-  margin: 10px 0 0 0;
96
-}
97
-/* No top margin to interfere with box padding */
98
-p:first-child,
99
-ul:first-child,
100
-ol:first-child,
101
-dl:first-child,
102
-h1:first-child,
103
-h2:first-child,
104
-h3:first-child,
105
-h4:first-child,
106
-h5:first-child,
107
-h6:first-child,
108
-blockquote:first-child,
109
-pre:first-child {
110
-  margin-top: 0;
111
-}
112
-/* Headings: desired line height in px / font size = unitless line height */
113
-h1 {
114
-  color: #333;
115
-  font-size: 32px;
116
-  font-weight: normal;
117
-  line-height: 1.25;
118
-  text-transform: none;
119
-  margin: 30px 0 0 0;
120
-}
121
-h2 {
122
-  color: #333;
123
-  font-size: 24px;
124
-  font-weight: normal;
125
-  line-height: 1.25;
126
-  text-transform: none;
127
-  margin: 30px 0 0 0;
128
-}
129
-h3 {
130
-  color: #333;
131
-  font-size: 20px;
132
-  font-weight: normal;
133
-  line-height: 1.5;
134
-  text-transform: none;
135
-  margin: 30px 0 0 0;
136
-}
137
-h4 {
138
-  font-size: 16px;
139
-  font-weight: bold;
140
-  line-height: 1.25;
141
-  text-transform: none;
142
-  margin: 20px 0 0 0;
143
-}
144
-h5 {
145
-  color: #333;
146
-  font-size: 14px;
147
-  font-weight: bold;
148
-  line-height: 1.42857143;
149
-  text-transform: none;
150
-  margin: 20px 0 0 0;
151
-}
152
-h6 {
153
-  color: #707070;
154
-  font-size: 12px;
155
-  font-weight: bold;
156
-  line-height: 1.66666667;
157
-  text-transform: uppercase;
158
-  margin: 20px 0 0 0;
159
-}
160
-h1:first-child,
161
-h2:first-child,
162
-h3:first-child,
163
-h4:first-child,
164
-h5:first-child,
165
-h6:first-child {
166
-  margin-top: 0;
167
-}
168
-/* Nice styles for using subheadings */
169
-h1 + h2,
170
-h2 + h3,
171
-h3 + h4,
172
-h4 + h5,
173
-h5 + h6 {
174
-  margin-top: 10px;
175
-}
176
-
177
-
178
-/* Other typographical elements */
179
-small {
180
-  color: #707070;
181
-  font-size: 12px;
182
-  line-height: 1.33333333333333;
183
-}
184
-code,
185
-kbd {
186
-  font-family: monospace;
187
-}
188
-var,
189
-address,
190
-dfn,
191
-cite {
192
-  font-style: italic;
193
-}
194
-cite:before {
195
-  content: "\2014 \2009";
196
-}
197
-blockquote {
198
-  border-left: 1px solid #ccc;
199
-  color: #707070;
200
-  margin-left: 19px;
201
-  padding: 10px 20px;
202
-}
203
-blockquote > cite {
204
-  display: block;
205
-  margin-top: 10px;
206
-}
207
-q {
208
-  color: #707070;
209
-}
210
-q:before {
211
-  content: open-quote;
212
-}
213
-q:after {
214
-  content: close-quote;
215
-}
216
-abbr {
217
-  border-bottom: 1px #707070 dotted;
218
-  cursor: help;
219
-}
220
-
221
-a {
222
-  color: #3572b0;
223
-  text-decoration: none;
224
-}
225
-a:focus,
226
-a:hover,
227
-a:active {
228
-  text-decoration: underline;
229
-}

+ 0
- 66
css/_avatar.scss 查看文件

@@ -1,66 +0,0 @@
1
-.avatar {
2
-    background-color: #AAA;
3
-    border-radius: 50%;
4
-    color: rgba(255, 255, 255, 0.6);
5
-    font-weight: 100;
6
-    object-fit: cover;
7
-
8
-    &.avatar-small {
9
-        height: 28px !important;
10
-        width: 28px !important;
11
-    }
12
-
13
-    &.avatar-xsmall {
14
-        height: 16px !important;
15
-        width: 16px !important;
16
-    }
17
-
18
-    .jitsi-icon {
19
-        transform: translateY(50%);
20
-    }
21
-}
22
-
23
-.avatar-foreign {
24
-    align-items: center;
25
-    bottom: 0;
26
-    display: flex;
27
-    font-size: 40pt;
28
-    justify-content: center;
29
-    left: 0;
30
-    position: absolute;
31
-    right: 0;
32
-    top: 0;
33
-}
34
-
35
-.avatar-svg {
36
-    height: 100%;
37
-    width: 100%;
38
-}
39
-
40
-.defaultAvatar {
41
-    opacity: 0.6
42
-}
43
-
44
-.avatar-badge {
45
-    position: relative;
46
-
47
-    &-available::after {
48
-        @include avatarBadge;
49
-        background-color: $presence-available;
50
-    }
51
-
52
-    &-away::after {
53
-        @include avatarBadge;
54
-        background-color: $presence-away;
55
-    }
56
-
57
-    &-busy::after {
58
-        @include avatarBadge;
59
-        background-color: $presence-busy;
60
-    }
61
-
62
-    &-idle::after {
63
-        @include avatarBadge;
64
-        background-color: $presence-idle;
65
-    }
66
-}

+ 0
- 187
css/_base.scss 查看文件

@@ -1,187 +0,0 @@
1
-/**
2
- * Safari will limit input in input elements to one character when user-select
3
- * none is applied. Other browsers already support selecting within inputs while
4
- * user-select is none. As such, disallow user-select except on inputs.
5
- */
6
-* {
7
-    -webkit-user-select: none;
8
-    user-select: none;
9
-}
10
-
11
-input,
12
-textarea {
13
-    -webkit-user-select: text;
14
-    user-select: text;
15
-}
16
-
17
-html {
18
-    height: 100%;
19
-    width: 100%;
20
-}
21
-
22
-body {
23
-    margin: 0px;
24
-    width: 100%;
25
-    height: 100%;
26
-    font-size: 12px;
27
-    font-weight: 400;
28
-    overflow: hidden;
29
-    color: $defaultColor;
30
-    background: $defaultBackground;
31
-    &.filmstrip-only {
32
-        background: transparent;
33
-    }
34
-}
35
-
36
-.jitsi-icon svg {
37
-    fill: white;
38
-}
39
-
40
-.jitsi-icon.gray svg {
41
-    fill: #5E6D7A;
42
-    cursor: pointer;
43
-}
44
-
45
-/**
46
- * AtlasKitThemeProvider sets a background color on an app-wrapping div, thereby
47
- * preventing transparency in filmstrip-only mode. The selector chosen to
48
- * override this behavior is specific to where the AtlasKitThemeProvider might
49
- * be placed within the app hierarchy.
50
- */
51
-.filmstrip-only #react > .ckAJgx {
52
-    background: transparent;
53
-}
54
-
55
-p {
56
-    margin: 0;
57
-}
58
-
59
-body, input, textarea, keygen, select, button {
60
-    font-family: $baseFontFamily !important;
61
-}
62
-
63
-#nowebrtc {
64
-    display:none;
65
-}
66
-
67
-button, input, select, textarea {
68
-    margin: 0;
69
-    vertical-align: baseline;
70
-    font-size: 1em;
71
-}
72
-
73
-button, select, input[type="button"],
74
-input[type="reset"], input[type="submit"] {
75
-    cursor: pointer;
76
-}
77
-
78
-textarea {
79
-    word-wrap: break-word;
80
-    resize: none;
81
-    line-height: 1.5em;
82
-}
83
-
84
-input[type='text'], input[type='password'], textarea {
85
-    outline: none; /* removes the default outline */
86
-    resize: none; /* prevents the user-resizing, adjust to taste */
87
-}
88
-
89
-button {
90
-    color: #FFF;
91
-    background-color: $buttonBackground;
92
-    border-radius: $borderRadius;
93
-
94
-    &.no-icon {
95
-        padding: 0 1em;
96
-    }
97
-}
98
-
99
-button,
100
-form {
101
-    display: block;
102
-}
103
-
104
-.watermark {
105
-    display: block;
106
-    position: absolute;
107
-    top: 15;
108
-    width: $watermarkWidth;
109
-    height: $watermarkHeight;
110
-    background-size: contain;
111
-    background-repeat: no-repeat;
112
-    z-index: $zindex2;
113
-}
114
-
115
-.leftwatermark {
116
-    left: 32px;
117
-    top: 32px;
118
-    background-image: url($defaultWatermarkLink);
119
-    background-position: center left;
120
-}
121
-
122
-.rightwatermark {
123
-    right: 32px;
124
-    top: 32px;
125
-    background-position: center right;
126
-}
127
-
128
-.poweredby {
129
-    position: absolute;
130
-    left: 25;
131
-    bottom: 7;
132
-    font-size: 11pt;
133
-    color: rgba(255,255,255,.50);
134
-    text-decoration: none;
135
-    z-index: $poweredByZ;
136
-}
137
-
138
-.connected {
139
-    color: #21B9FC;
140
-    font-size: 12px;
141
-}
142
-
143
-.lastN, .disconnected {
144
-    color: #a3a3a3;
145
-    font-size: 12px;
146
-}
147
-
148
-/**
149
-* Dialogs fade
150
-*/
151
-.aui-blanket {
152
-    background: #000;
153
-    transition: opacity 0.2s, visibility 0.2s;
154
-    transition-delay: 0.1s;
155
-    visibility: visible;
156
-}
157
-
158
-#inviteLinkRef {
159
-    -webkit-user-select: text;
160
-    user-select: text;
161
-}
162
-
163
-/**
164
- * Re-style default OS scrollbar.
165
- */
166
-::-webkit-scrollbar {
167
-    background: transparent;
168
-    width: 7px;
169
-    height: $scrollHeight;
170
-}
171
-
172
-::-webkit-scrollbar-button {
173
-    display: none;
174
-}
175
-
176
-::-webkit-scrollbar-track {
177
-    background: transparent;
178
-}
179
-
180
-::-webkit-scrollbar-track-piece {
181
-    background: transparent;
182
-}
183
-
184
-::-webkit-scrollbar-thumb {
185
-    background: rgba(0, 0, 0, .5);
186
-    border-radius: 4px;
187
-}

+ 0
- 386
css/_chat.scss 查看文件

@@ -1,386 +0,0 @@
1
-#sideToolbarContainer {
2
-    background-color: $newToolbarBackgroundColor;
3
-    box-sizing: border-box;
4
-    color: #FFF;
5
-    display: flex;
6
-    flex-direction: column;
7
-    /**
8
-     * Make the sidebar flush with the top of the toolbar. Take the size of
9
-     * the toolbar and subtract from 100%.
10
-     */
11
-    height: calc(100% - #{$newToolbarSizeWithPadding});
12
-    left: -$sidebarWidth;
13
-    overflow: hidden;
14
-    position: absolute;
15
-    top: 0;
16
-    transition: left 0.5s;
17
-    width: $sidebarWidth;
18
-    z-index: $sideToolbarContainerZ;
19
-
20
-    /**
21
-     * The sidebar (chat) is off-screen when hidden. Move it flush to the left
22
-     * side of the window when it should be visible.
23
-     */
24
-    &.slideInExt {
25
-        left: 0;
26
-    }
27
-}
28
-
29
-#chatconversation {
30
-    box-sizing: border-box;
31
-    flex: 1;
32
-    font-size: 10pt;
33
-    line-height: 20px;
34
-    overflow: auto;
35
-    padding: 16px;
36
-    text-align: left;
37
-    width: $sidebarWidth;
38
-    word-wrap: break-word;
39
-
40
-    a {
41
-        display: block;
42
-    }
43
-
44
-    a:link {
45
-        color: rgb(184, 184, 184);
46
-    }
47
-
48
-    a:visited {
49
-        color: white;
50
-    }
51
-
52
-    a:hover {
53
-        color: rgb(213, 213, 213);
54
-    }
55
-
56
-    a:active {
57
-        color: black;
58
-    }
59
-
60
-    &::-webkit-scrollbar {
61
-        background: #06a5df;
62
-        width: 7px;
63
-    }
64
-
65
-    &::-webkit-scrollbar-button {
66
-        display: none;
67
-    }
68
-
69
-    &::-webkit-scrollbar-track {
70
-        background: black;
71
-    }
72
-
73
-    &::-webkit-scrollbar-track-piece {
74
-        background: black;
75
-    }
76
-
77
-    &::-webkit-scrollbar-thumb {
78
-        background: #06a5df;
79
-        border-radius: 4px;
80
-    }
81
-}
82
-
83
-#chat-recipient {
84
-    align-items: center;
85
-    background-color: $chatPrivateMessageBackgroundColor;
86
-    display: flex;
87
-    flex-direction: row;
88
-    font-weight: 100;
89
-    padding: 10px;
90
-
91
-    span {
92
-        color: white;
93
-        display: flex;
94
-        flex: 1;
95
-    }
96
-
97
-    div {
98
-        svg {
99
-            cursor: pointer;
100
-            fill: white
101
-        }
102
-    }
103
-}
104
-
105
-.chat-header {
106
-    background-color: $chatHeaderBackgroundColor;
107
-    height: 70px;
108
-    position: relative;
109
-    width: 100%;
110
-    z-index: 1;
111
-
112
-    .chat-close {
113
-        align-items: center;
114
-        bottom: 8px;
115
-        color: white;
116
-        cursor: pointer;
117
-        display: flex;
118
-        font-size: 18px;
119
-        height: 40px;
120
-        justify-content: center;
121
-        line-height: 15px;
122
-        padding: 4px;
123
-        position: absolute;
124
-        right: 5px;
125
-        width: 40px;
126
-
127
-        &:hover {
128
-            color: rgba(255, 255, 255, 0.8);
129
-        }
130
-    }
131
-}
132
-
133
-#chat-input {
134
-    border-top: 1px solid $chatInputSeparatorColor;
135
-    display: flex;
136
-    padding: 5px 10px;
137
-
138
-    * {
139
-        background-color: transparent;
140
-    }
141
-}
142
-
143
-.remoteuser {
144
-    color: #B8C7E0;
145
-}
146
-
147
-.usrmsg-form {
148
-    flex: 1;
149
-}
150
-
151
-#usermsg {
152
-    border: 0px none;
153
-    border-radius:0;
154
-    box-shadow: none;
155
-    color: white;
156
-    font-size: 15px;
157
-    padding: 10px;
158
-    overflow-y: auto;
159
-    resize: none;
160
-    width: 100%;
161
-    word-break: break-word;
162
-}
163
-
164
-#usermsg:hover {
165
-    border: 0px none;
166
-    box-shadow: none;
167
-}
168
-
169
-#nickname {
170
-    text-align: center;
171
-    color: #9d9d9d;
172
-    font-size: 18px;
173
-    margin-top: 30px;
174
-    left: 5px;
175
-    right: 5px;
176
-}
177
-
178
-.sideToolbarContainer {
179
-    * {
180
-        -webkit-user-select: text;
181
-        user-select: text;
182
-    }
183
-
184
-    .display-name {
185
-        font-size: 13px;
186
-        font-weight: bold;
187
-        margin-bottom: 5px;
188
-        white-space: nowrap;
189
-        text-overflow: ellipsis;
190
-        overflow: hidden;
191
-    }
192
-}
193
-
194
-.chatmessage {
195
-    background-color: $chatRemoteMessageBackgroundColor;
196
-    border-radius: 0px 6px 6px 6px;
197
-    box-sizing: border-box;
198
-    color: white;
199
-    margin-top: 3px;
200
-    max-width: 100%;
201
-    position: relative;
202
-
203
-    &.localuser {
204
-        background-color: $chatLocalMessageBackgroundColor;
205
-        border-radius: 6px 0px 6px 6px;
206
-    }
207
-
208
-    .usermessage {
209
-        white-space: pre-wrap;
210
-    }
211
-
212
-    &.error {
213
-        border-radius: 0px;
214
-
215
-        .timestamp,
216
-        .display-name {
217
-            display: none;
218
-        }
219
-
220
-        .usermessage {
221
-            color: red;
222
-            padding: 0;
223
-        }
224
-    }
225
-
226
-    .privatemessagenotice {
227
-        font-size: 11px;
228
-        font-weight: 100;
229
-    }
230
-
231
-    .messagecontent {
232
-        margin: 5px 10px;
233
-        max-width: 100%;
234
-        overflow: hidden;
235
-    }
236
-}
237
-
238
-.smiley {
239
-    font-size: 14pt;
240
-}
241
-
242
-#smileys {
243
-    font-size: 20pt;
244
-    margin: auto;
245
-    cursor: pointer;
246
-}
247
-
248
-#smileys img {
249
-    width: 22px;
250
-    padding: 2px;
251
-}
252
-
253
-#smileysarea {
254
-    display: flex;
255
-    max-height: 150px;
256
-    min-height: 35px;
257
-    overflow: hidden;
258
-}
259
-
260
-.smiley-input {
261
-    display: flex;
262
-    position: relative;
263
-}
264
-
265
-.smileys-panel {
266
-    bottom: 100%;
267
-    box-sizing: border-box;
268
-    background-color: rgba(0, 0, 0, .6) !important;
269
-    height: auto;
270
-    max-height: 0;
271
-    overflow: hidden;
272
-    position: absolute;
273
-    width: $sidebarWidth;
274
-
275
-    /**
276
-     * CSS transitions do not apply for auto dimensions. So to produce the css
277
-     * accordion effect for showing and hiding the smiley-panel, while allowing
278
-     * for variable panel, height, use a very large max-height and animate off
279
-     * of that.
280
-     */
281
-    transition: max-height 0.3s;
282
-
283
-    &.show-smileys {
284
-        max-height: 500%;
285
-    }
286
-
287
-    #smileysContainer {
288
-        background-color: $newToolbarBackgroundColor;
289
-        border-bottom: 1px solid;
290
-        border-top: 1px solid;
291
-    }
292
-}
293
-
294
-#smileysContainer .smiley {
295
-    font-size: 20pt;
296
-}
297
-
298
-.smileyContainer {
299
-    width: 40px;
300
-    height: 36px;
301
-    display: inline-block;
302
-    text-align: center;
303
-}
304
-
305
-.smileyContainer:hover {
306
-    background-color: $newToolbarButtonToggleColor;
307
-    border-radius: 5px;
308
-    cursor: pointer;
309
-}
310
-
311
-#usermsg::-webkit-scrollbar-track-piece {
312
-    background: #3a3a3a;
313
-}
314
-
315
-.chat-message-group {
316
-    display: flex;
317
-    flex-direction: column;
318
-
319
-    &.local {
320
-        align-items: flex-end;
321
-
322
-        .chatmessage {
323
-            background-color: $chatLocalMessageBackgroundColor;
324
-            border-radius: 6px 0px 6px 6px;
325
-
326
-            &.privatemessage {
327
-                background-color: $chatPrivateMessageBackgroundColor;
328
-            }
329
-        }
330
-
331
-        .display-name {
332
-            display: none;
333
-        }
334
-
335
-        .timestamp {
336
-            text-align: right;
337
-        }
338
-    }
339
-
340
-    &.error {
341
-        .chatmessage {
342
-            background-color: $defaultWarningColor;
343
-            border-radius: 0px;
344
-            font-weight: 100;
345
-        }
346
-
347
-        .display-name {
348
-            display: none;
349
-        }
350
-    }
351
-
352
-    .chatmessage-wrapper {
353
-        max-width: 100%;
354
-
355
-        .replywrapper {
356
-            display: flex;
357
-            flex-direction: row;
358
-            align-items: center;
359
-
360
-            .messageactions {
361
-                align-self: stretch;
362
-                border-left: 1px solid $chatActionsSeparatorColor;
363
-                display: flex;
364
-                flex-direction: column;
365
-                justify-content: center;
366
-                padding: 5px;
367
-
368
-                .toolbox-icon {
369
-                    cursor: pointer;
370
-                }
371
-            }
372
-        }
373
-    }
374
-
375
-    .chatmessage {
376
-        background-color: $chatRemoteMessageBackgroundColor;
377
-        border-radius: 0px 6px 6px 6px;
378
-        display: inline-block;
379
-        margin-top: 3px;
380
-        color: white;
381
-
382
-        &.privatemessage {
383
-            background-color: $chatPrivateMessageBackgroundColor;
384
-        }
385
-    }
386
-}

+ 0
- 93
css/_chrome-extension-banner.scss 查看文件

@@ -1,93 +0,0 @@
1
-.chrome-extension-banner {
2
-  position: fixed;
3
-  width: 406px;
4
-  height: $chromeExtensionBannerHeight;
5
-  background: #FFF;
6
-  box-shadow: 0px 2px 48px rgba(0, 0, 0, 0.25);
7
-  border-radius: 4px;
8
-  z-index: 1000;
9
-  float: right;
10
-  display: flex;
11
-  flex-direction: column;
12
-  padding: 20px 20px;
13
-  top: $chromeExtensionBannerTop;
14
-  right: $chromeExtensionBannerRight;
15
-    &__pos_in_meeting {
16
-      top: $chromeExtensionBannerTopInMeeting;
17
-      right: $chromeExtensionBannerRightInMeeeting;
18
-    }
19
-
20
-    &__container {
21
-      display: flex;
22
-      justify-content: space-between;
23
-      margin-bottom: 16px;
24
-    }
25
-
26
-    &__button-container {
27
-      display: flex;
28
-    }
29
-
30
-    &__checkbox-container {
31
-        display: $chromeExtensionBannerDontShowAgainDisplay;
32
-        margin-left: 45px;
33
-        margin-top: 16px;
34
-    }
35
-
36
-    &__checkbox-label {
37
-        font-size: 14px;
38
-        line-height: 18px;
39
-        display: flex;
40
-        align-items: center;
41
-        letter-spacing: -0.006em;
42
-        color: #1C2025;
43
-    }
44
-
45
-    &__icon-container {
46
-      display: flex;
47
-      background: url('../images/chromeLogo.svg');
48
-      background-repeat: no-repeat;
49
-      width: 27px;
50
-      height: 27px;
51
-    }
52
-
53
-    &__text-container {
54
-      font-size: 14px;
55
-      line-height: 18px;
56
-      display: flex;
57
-      align-items: center;
58
-      letter-spacing: -0.006em;
59
-      color: #151531;
60
-      width: 329px;
61
-    }
62
-
63
-    &__close-container {
64
-      display: flex;
65
-      width: 12px;
66
-      height: 12px;
67
-    }
68
-
69
-    &__gray-close-icon {
70
-      fill: #5E6D7A;
71
-      width: 12px;
72
-      height: 12px;
73
-      cursor: pointer;
74
-    }
75
-
76
-    &__button-open-url {
77
-      background: #0A57EB;
78
-      border-radius: 24px;
79
-      margin-left: 45px;
80
-      width: 236px;
81
-      height: 40px;
82
-      cursor: pointer;
83
-    }
84
-
85
-    &__button-text {
86
-      font-weight: 600;
87
-      font-size: 14px;
88
-      line-height: 40px;
89
-      text-align: center;
90
-      letter-spacing: -0.006em;
91
-      color: #FFFFFF;
92
-    }
93
-}

+ 0
- 54
css/_connection-info.scss 查看文件

@@ -1,54 +0,0 @@
1
-%connection-info {
2
-    font-size: 12px;
3
-    font-weight: 400;
4
-
5
-    td {
6
-        padding: 2px 0;
7
-    }
8
-}
9
-
10
-.connection-info
11
-{
12
-    @extend %connection-info;
13
-
14
-    /**
15
-     * Apply negative margin to reduce the appearance of padding in AtlasKit
16
-     * InlineDialog.
17
-     */
18
-    margin: -15px;
19
-
20
-    > table {
21
-        white-space: nowrap;
22
-        @extend %connection-info;
23
-    }
24
-
25
-    td:nth-child(n-1) {
26
-        padding-left: 5px;
27
-    }
28
-
29
-    &__icon {
30
-        margin-right: 2px;
31
-    }
32
-
33
-    &__download
34
-    {
35
-        @extend .connection-info__icon;
36
-    }
37
-
38
-    &__status
39
-    {
40
-        font-weight: bold;
41
-    }
42
-
43
-    &__upload
44
-    {
45
-        @extend .connection-info__icon;
46
-    }
47
-
48
-    .showmore {
49
-        display: block;
50
-        margin: 10px auto;
51
-        text-align: center;
52
-        width: 90px;
53
-    }
54
-}

+ 0
- 6
css/_functions.scss 查看文件

@@ -1,6 +0,0 @@
1
-/* Functions */
2
-
3
-/* Pixels to Ems function */
4
-@function em($value, $base: 16) {
5
-    @return #{$value / $base}em;
6
-}

+ 0
- 110
css/_inlay.scss 查看文件

@@ -1,110 +0,0 @@
1
-.inlay {
2
-    margin-top: 14%;
3
-    @include border-radius(4px);
4
-    padding: 40px 38px 44px;
5
-    color: #fff;
6
-    background: $inlayColorBg;
7
-    text-align: center;
8
-
9
-    &__title {
10
-        margin: 17px 0;
11
-        padding-bottom: 17px;
12
-        color: $popoverFontColor;
13
-        font-size: 21px;
14
-        letter-spacing: 0.3px;
15
-        border-bottom: 1px solid $inlayBorderColor;
16
-    }
17
-
18
-    &__text {
19
-        color: $popoverFontColor;
20
-        display: block;
21
-        margin-top: 22px;
22
-        font-size: 16px;
23
-    }
24
-
25
-    &__icon {
26
-        margin: 0 10px;
27
-        font-size: 50px;
28
-    }
29
-
30
-    &-filmstrip-only {
31
-        background-color: $inlayFilmstripOnlyBg;
32
-        color: $inlayFilmstripOnlyColor;
33
-        margin-left: 20px;
34
-        margin-right: 20px;
35
-        margin-top: 20px;
36
-        bottom: 30px;
37
-        position: absolute;
38
-        display: flex;
39
-        max-height: 120px;
40
-        height: 80%;
41
-        right: 0px;
42
-        border-radius: 4px;
43
-        overflow: hidden;
44
-        &__content {
45
-            padding: 20px;
46
-            display: flex;
47
-            justify-content: center;
48
-            position: relative;
49
-            > .button-control {
50
-                align-self: center;
51
-            }
52
-            > #reloadProgressBar {
53
-                position: absolute;
54
-                left: 0px;
55
-                bottom: 0px;
56
-                margin-bottom: 0px;
57
-                width: 100%;
58
-                border-radius: 0px;
59
-            }
60
-        }
61
-        &__title {
62
-            font-size: 18px;
63
-            font-weight: 600;
64
-        }
65
-
66
-        &__container {
67
-            align-self: center;
68
-        }
69
-
70
-        &__text {
71
-            margin-top: 10px;
72
-            font-size: 14px;
73
-            font-weight: 600;
74
-        }
75
-
76
-        &__icon {
77
-            font-size: 50px;
78
-            align-self: center;
79
-            color: $inlayIconColor;
80
-            opacity: 0.6;
81
-        }
82
-        &__icon-container {
83
-            text-align: center;
84
-            display: flex;
85
-            justify-content: center;
86
-            position: absolute;
87
-            width: 100%;
88
-            height: 100%;
89
-            top: 0px;
90
-        }
91
-
92
-        &__avatar-container {
93
-            height: 100%;
94
-            position: relative;
95
-            > img {
96
-                height: 100%;
97
-            }
98
-        }
99
-
100
-        &__icon-background {
101
-            background: $inlayIconBg;
102
-            opacity: 0.6;
103
-            position: absolute;
104
-            width: 100%;
105
-            height: 100%;
106
-            top: 0px;
107
-        }
108
-    }
109
-
110
-}

+ 0
- 129
css/_jquery-impromptu.scss 查看文件

@@ -1,129 +0,0 @@
1
-/*
2
-------------------------------
3
-	Impromptu
4
-------------------------------
5
-*/
6
-.jqifade{
7
-	position: absolute; 
8
-	background-color: #000;
9
-}
10
-div.jqi{ 
11
-	width: 400px;
12
-	position: absolute;
13
-    color: #3a3a3a;
14
-	background-color: #ffffff; 
15
-	font-size: 11px; 
16
-	text-align: left; 
17
-	border: solid 1px #eeeeee;
18
-	border-radius: 6px;
19
-	-moz-border-radius: 6px;
20
-	-webkit-border-radius: 6px;
21
-	padding: 7px;
22
-}
23
-div.jqi .jqicontainer{ 
24
-}
25
-div.jqi .jqiclose{ 
26
-	position: absolute;
27
-	top: 4px; right: -2px; 
28
-	width: 18px; 
29
-	cursor: default; 
30
-	color: #bbbbbb; 
31
-	font-weight: bold; 
32
-}
33
-div.jqi .jqistate{
34
-	background-color: #fff;
35
-}
36
-div.jqi .jqititle{
37
-	padding: 5px 10px;
38
-	font-size: 16px; 
39
-	line-height: 20px; 
40
-	border-bottom: solid 1px #eeeeee;
41
-}
42
-div.jqi .jqimessage{ 
43
-	padding: 10px; 
44
-	line-height: 20px; 
45
-	color: #444444; 
46
-}
47
-div.jqi .jqibuttons{ 
48
-	text-align: right; 
49
-	margin: 0 -7px -7px -7px;
50
-	border-top: solid 1px #e4e4e4; 
51
-	background-color: #f4f4f4;
52
-	border-radius: 0 0 6px 6px;
53
-	-moz-border-radius: 0 0 6px 6px;
54
-	-webkit-border-radius: 0 0 6px 6px;
55
-}
56
-div.jqi .jqibuttons button{ 
57
-	margin: 0;
58
-	padding: 5px 20px;
59
-	background-color: transparent !important;
60
-	font-weight: normal; 
61
-	border: none;
62
-	border-left: solid 1px #e4e4e4; 
63
-	color: #777; 
64
-	font-weight: bold; 
65
-	font-size: 12px; 
66
-}
67
-div.jqi .jqibuttons button.jqidefaultbutton{
68
-	color: #489afe;
69
-}
70
-
71
-div.jqi .jqibuttons button:disabled {
72
-    color: #b6b6b6 !important;
73
-}
74
-div.jqi .jqibuttons button:hover,
75
-div.jqi .jqibuttons button:focus{
76
-	color: #287ade;
77
-	outline: none;
78
-}
79
-.jqiwarning .jqi .jqibuttons{ 
80
-	background-color: #b95656;
81
-}
82
-
83
-/* sub states */
84
-div.jqi .jqiparentstate::after{ 
85
-	background-color: #777;
86
-	opacity: 0.6;
87
-	filter: alpha(opacity=60);
88
-	content: '';
89
-	position: absolute;
90
-	top:0;left:0;bottom:0;right:0;
91
-	border-radius: 6px;
92
-	-moz-border-radius: 6px;
93
-	-webkit-border-radius: 6px;
94
-}
95
-div.jqi .jqisubstate{
96
-	position: absolute;
97
-	top:0;
98
-	left: 20%;
99
-	width: 60%;
100
-	padding: 7px;
101
-	border: solid 1px #eeeeee;
102
-	border-top: none;
103
-	border-radius: 0 0 6px 6px;
104
-	-moz-border-radius: 0 0 6px 6px;
105
-	-webkit-border-radius: 0 0 6px 6px;
106
-}
107
-div.jqi .jqisubstate .jqibuttons button{
108
-	padding: 10px 18px;
109
-}
110
-
111
-/* arrows for tooltips/tours */
112
-.jqi .jqiarrow{ position: absolute; height: 0; width:0; line-height: 0; font-size: 0; border: solid 10px transparent;}
113
-
114
-.jqi .jqiarrowtl{ left: 10px; top: -20px; border-bottom-color: #ffffff; }
115
-.jqi .jqiarrowtc{ left: 50%; top: -20px; border-bottom-color: #ffffff; margin-left: -10px; }
116
-.jqi .jqiarrowtr{ right: 10px; top: -20px; border-bottom-color: #ffffff; }
117
-
118
-.jqi .jqiarrowbl{ left: 10px; bottom: -20px; border-top-color: #ffffff; }
119
-.jqi .jqiarrowbc{ left: 50%; bottom: -20px; border-top-color: #ffffff; margin-left: -10px; }
120
-.jqi .jqiarrowbr{ right: 10px; bottom: -20px; border-top-color: #ffffff; }
121
-
122
-.jqi .jqiarrowlt{ left: -20px; top: 10px; border-right-color: #ffffff; }
123
-.jqi .jqiarrowlm{ left: -20px; top: 50%; border-right-color: #ffffff; margin-top: -10px; }
124
-.jqi .jqiarrowlb{ left: -20px; bottom: 10px; border-right-color: #ffffff; }
125
-
126
-.jqi .jqiarrowrt{ right: -20px; top: 10px; border-left-color: #ffffff; }
127
-.jqi .jqiarrowrm{ right: -20px; top: 50%; border-left-color: #ffffff; margin-top: -10px; }
128
-.jqi .jqiarrowrb{ right: -20px; bottom: 10px; border-left-color: #ffffff; }
129
-

+ 0
- 206
css/_jquery.contextMenu.scss 查看文件

@@ -1,206 +0,0 @@
1
-@charset "UTF-8";
2
-/*!
3
- * jQuery contextMenu - Plugin for simple contextMenu handling
4
- *
5
- * Version: v2.1.1
6
- *
7
- * Authors: Björn Brala (SWIS.nl), Rodney Rehm, Addy Osmani (patches for FF)
8
- * Web: http://swisnl.github.io/jQuery-contextMenu/
9
- *
10
- * Copyright (c) 2011-2016 SWIS BV and contributors
11
- *
12
- * Licensed under
13
- *   MIT License http://www.opensource.org/licenses/mit-license
14
- *
15
- * Date: 2016-02-28T09:53:18.890Z
16
- */
17
-@font-face {
18
-  font-family: "context-menu-icons";
19
-  font-style: normal; 
20
-  font-weight: normal;
21
-
22
-  src: url("font/context-menu-icons.eot?2qmzf");
23
-  src: url("font/context-menu-icons.eot?2qmzf#iefix") format("embedded-opentype"), url("font/context-menu-icons.woff2?2qmzf") format("woff2"), url("font/context-menu-icons.woff?2qmzf") format("woff"), url("font/context-menu-icons.ttf?2qmzf") format("truetype");
24
-}
25
-
26
-.context-menu-icon:before {
27
-  position: absolute;
28
-  top: 50%;
29
-  left: 0;
30
-  width: 28px; 
31
-  font-family: "context-menu-icons";
32
-  font-size: 16px;
33
-  font-style: normal;
34
-  font-weight: normal;
35
-  line-height: 1;
36
-  color: #2980b9;
37
-  text-align: center;
38
-  -webkit-transform: translateY(-50%);
39
-      -ms-transform: translateY(-50%);
40
-       -o-transform: translateY(-50%);
41
-          transform: translateY(-50%);
42
-
43
-  -webkit-font-smoothing: antialiased;
44
-  -moz-osx-font-smoothing: grayscale;
45
-}
46
-
47
-.context-menu-icon-add:before {
48
-  content: "";
49
-}
50
-
51
-.context-menu-icon-copy:before {
52
-  content: "";
53
-}
54
-
55
-.context-menu-icon-cut:before {
56
-  content: "";
57
-}
58
-
59
-.context-menu-icon-delete:before {
60
-  content: "";
61
-}
62
-
63
-.context-menu-icon-edit:before {
64
-  content: "";
65
-}
66
-
67
-.context-menu-icon-paste:before {
68
-  content: "";
69
-}
70
-
71
-.context-menu-icon-quit:before {
72
-  content: "";
73
-}
74
-
75
-.context-menu-icon.context-menu-hover:before {
76
-  color: #fff;
77
-}
78
-
79
-.context-menu-list {
80
-  position: absolute; 
81
-  display: inline-block;
82
-  min-width: 180px;
83
-  max-width: 360px;
84
-  padding: 4px 0;
85
-  margin: 5px;
86
-  font-family: inherit;
87
-  font-size: inherit;
88
-  list-style-type: none;
89
-  background: #fff;
90
-  border: 1px solid #bebebe;
91
-  border-radius: $borderRadius;
92
-  -webkit-box-shadow: 0 2px 5px rgba(0, 0, 0, .5);
93
-          box-shadow: 0 2px 5px rgba(0, 0, 0, .5);
94
-}
95
-
96
-.context-menu-item {
97
-  position: relative;
98
-  padding: 3px 28px;
99
-  color: #2f2f2f;
100
-  -webkit-user-select: none;
101
-     -moz-user-select: none;
102
-      -ms-user-select: none;
103
-          user-select: none; 
104
-  background-color: #fff;
105
-}
106
-
107
-.context-menu-separator {
108
-  padding: 0; 
109
-  margin: 5px 0;
110
-  border-bottom: 1px solid #e6e6e6;
111
-}
112
-
113
-.context-menu-item > label > input,
114
-.context-menu-item > label > textarea {
115
-  -webkit-user-select: text;
116
-     -moz-user-select: text;
117
-      -ms-user-select: text;
118
-          user-select: text;
119
-}
120
-
121
-.context-menu-item.context-menu-hover {
122
-  color: #fff;
123
-  cursor: pointer; 
124
-  background-color: #2980b9;
125
-}
126
-
127
-.context-menu-item.context-menu-disabled {
128
-  color: #626262; 
129
-  background-color: #fff;
130
-}
131
-
132
-.context-menu-item.context-menu-disabled {
133
-  color: #626262;
134
-}
135
-
136
-.context-menu-input.context-menu-hover,
137
-.context-menu-item.context-menu-disabled.context-menu-hover {
138
-  cursor: default; 
139
-  background-color: #eee;
140
-}
141
-
142
-.context-menu-submenu:after {
143
-  position: absolute;
144
-  top: 50%;
145
-  right: 8px;
146
-  z-index: $zindex1;
147
-  width: 0;
148
-  height: 0;
149
-  content: '';
150
-  border-color: transparent transparent transparent #2f2f2f;
151
-  border-style: solid;
152
-  border-width: 4px 0 4px 4px;
153
-  -webkit-transform: translateY(-50%);
154
-      -ms-transform: translateY(-50%);
155
-       -o-transform: translateY(-50%);
156
-          transform: translateY(-50%);
157
-}
158
-
159
-/**
160
- * Inputs
161
- */
162
-.context-menu-item.context-menu-input {
163
-  padding: 5px 10px;
164
-}
165
-
166
-/* vertically align inside labels */
167
-.context-menu-input > label > * {
168
-  vertical-align: top;
169
-}
170
-
171
-/* position checkboxes and radios as icons */
172
-.context-menu-input > label > input[type="checkbox"],
173
-.context-menu-input > label > input[type="radio"] {
174
-  position: relative;
175
-  top: 3px;
176
-}
177
-
178
-.context-menu-input > label,
179
-.context-menu-input > label > input[type="text"],
180
-.context-menu-input > label > textarea,
181
-.context-menu-input > label > select {
182
-  display: block;
183
-  width: 100%; 
184
-  -webkit-box-sizing: border-box;
185
-     -moz-box-sizing: border-box;
186
-          box-sizing: border-box;
187
-}
188
-
189
-.context-menu-input > label > textarea {
190
-  height: 100px;
191
-}
192
-
193
-.context-menu-item > .context-menu-list {
194
-  top: 5px; 
195
-  /* re-positioned by js */
196
-  right: -5px;
197
-  display: none;
198
-}
199
-
200
-.context-menu-item.context-menu-visible > .context-menu-list {
201
-  display: block;
202
-}
203
-
204
-.context-menu-accesskey {
205
-  text-decoration: underline;
206
-}

+ 0
- 10
css/_keyboard-shortcuts.scss 查看文件

@@ -1,10 +0,0 @@
1
-.shortcuts-list {
2
-    list-style-type: none;
3
-    padding: 0;
4
-
5
-    &__item {
6
-        display: flex;
7
-        justify-content: space-between;
8
-        margin-bottom: em(7, 14);
9
-    }
10
-}

+ 0
- 18
css/_login_menu.scss 查看文件

@@ -1,18 +0,0 @@
1
-/*Initialize*/
2
-div.loginmenu {
3
-    position: absolute;
4
-    margin: 0;
5
-    padding: 5px;
6
-    top: 40px;
7
-    left: 20px;
8
-}
9
-
10
-a.disabled {
11
-    color: gray !important;
12
-    pointer-events: none;
13
-}
14
-
15
-.loginmenu.extendedToolbarPopup {
16
-    top: 20px;
17
-    left: 40px;
18
-}

+ 0
- 123
css/_meetings_list.scss 查看文件

@@ -1,123 +0,0 @@
1
-.meetings-list {
2
-    font-size: 14px;
3
-    color: #253858;
4
-    line-height: 20px;
5
-    text-align: left;
6
-    text-overflow: ellipsis;
7
-    display: flex;
8
-    flex-direction: column;
9
-    position: relative;
10
-    width: 100%;
11
-    height: 100%;
12
-    overflow: auto;
13
-
14
-    .meetings-list-empty {
15
-        text-align: center;
16
-        align-items: center;
17
-        justify-content: center;
18
-        display: flex;
19
-        flex-grow: 1;
20
-        flex-direction: column;
21
-
22
-        .description {
23
-            font-size: 16px;
24
-            padding: 20px;
25
-        }
26
-    }
27
-
28
-    .button {
29
-        background: #0074E0;
30
-        border-radius: 4px;
31
-        color: #FFFFFF;
32
-        display: flex;
33
-        justify-content: center;
34
-        align-items: center;
35
-        padding: 5px 10px;
36
-        cursor: pointer;
37
-    }
38
-
39
-    .calendar-action-buttons {
40
-        .button {
41
-            margin: 0px 10px;
42
-        }
43
-    }
44
-
45
-    .item {
46
-        background: rgba(255,255,255,0.50);
47
-        box-sizing: border-box;
48
-        display: inline-flex;
49
-        margin-top: 5px;
50
-        min-height: 92px;
51
-        width: 100%;
52
-        word-break: break-word;
53
-        display: flex;
54
-        flex-direction: row;
55
-        text-align: left;
56
-
57
-        &:first-child {
58
-            margin-top: 0px;
59
-        }
60
-
61
-        .left-column {
62
-            display: flex;
63
-            flex-direction: column;
64
-            width: 140px;
65
-            flex-grow: 0;
66
-            padding-left: 30px;
67
-            padding-top: 25px;
68
-
69
-            .date {
70
-                font-weight: bold;
71
-                padding-bottom: 5px;
72
-            }
73
-        }
74
-
75
-        .right-column {
76
-            display: flex;
77
-            flex-direction: column;
78
-            flex-grow: 1;
79
-            padding-left: 30px;
80
-            padding-top: 25px;
81
-
82
-            .title {
83
-                font-size: 16px;
84
-                font-weight: bold;
85
-                padding-bottom: 5px;
86
-            }
87
-        }
88
-
89
-        .actions {
90
-            display: flex;
91
-            align-items: center;
92
-            justify-content: center;
93
-            flex-grow: 0;
94
-            padding-right: 30px;
95
-        }
96
-
97
-        &.with-click-handler {
98
-            cursor: pointer;
99
-        }
100
-
101
-        &.with-click-handler:hover {
102
-            background-color: #75A7E7;
103
-        }
104
-
105
-        .add-button {
106
-            width: 30px;
107
-            height: 30px;
108
-            padding: 0px;
109
-        }
110
-
111
-        i {
112
-            cursor: inherit;
113
-        }
114
-
115
-        .join-button {
116
-            display: none;
117
-        }
118
-
119
-        &:hover .join-button {
120
-            display: block
121
-        }
122
-    }
123
-}

+ 0
- 30
css/_meter.css 查看文件

@@ -1,30 +0,0 @@
1
-.jitsi-icon {
2
-    &.metr {
3
-        display: inline-block;
4
-
5
-        & > svg {
6
-            fill: #4E5E6C;
7
-            width: 38px;
8
-        }
9
-    }
10
-
11
-    &.metr--disabled {
12
-        & > svg {
13
-            fill: #4E5E6C;
14
-        }
15
-    }
16
-}
17
-
18
-.metr-l-0 {
19
-    rect:first-child {
20
-        fill: #31B76A;
21
-    }
22
-}
23
-
24
-@for $i from 1 through 7 {
25
-    .metr-l-#{$i} {
26
-        rect:nth-child(-n+#{$i+1}) {
27
-            fill: #31B76A;
28
-        }
29
-    }
30
-}

+ 0
- 66
css/_mini_toolbox.scss 查看文件

@@ -1,66 +0,0 @@
1
-.filmstrip-toolbox,
2
-.always-on-top-toolbox {
3
-    background-color: $newToolbarBackgroundColor;
4
-    border-radius: 3px;
5
-    display: flex;
6
-    z-index: $toolbarZ;
7
-
8
-    .toolbox-icon {
9
-        cursor: pointer;
10
-        padding: 7px;
11
-
12
-        &.toggled {
13
-            background: $AOTToolbarButtonToggleColor;
14
-        }
15
-
16
-        &.disabled {
17
-            cursor: initial;
18
-        }
19
-    }
20
-}
21
-
22
-.always-on-top-toolbox {
23
-    flex-direction: row;
24
-    left: 50%;
25
-    position: absolute;
26
-    top: 10px;
27
-    transform: translateX(-50%);
28
-
29
-    .toolbox-button {
30
-        &:first-child {
31
-            .toolbox-icon {
32
-                border-top-left-radius: 3px;
33
-                border-bottom-left-radius: 3px;
34
-            }
35
-        }
36
-
37
-        &:nth-child(2) {
38
-            svg {
39
-                fill: $hangupColor;
40
-            }
41
-        }
42
-
43
-        &:last-child {
44
-            .toolbox-icon {
45
-                border-top-right-radius: 3px;
46
-                border-bottom-right-radius: 3px;
47
-            }
48
-        }
49
-    }
50
-}
51
-
52
-.filmstrip-toolbox {
53
-    flex-direction: column;
54
-
55
-    .toolbox-button {
56
-        &:nth-child(1) {
57
-            svg {
58
-                fill: $hangupColor;
59
-            }
60
-        }
61
-
62
-        .toolbox-icon {
63
-            border-radius: 3px;
64
-        }
65
-    }
66
-}

+ 0
- 208
css/_mixins.scss 查看文件

@@ -1,208 +0,0 @@
1
-/**
2
- * Animation mixin.
3
- */
4
-@mixin animation($animate...) {
5
-    $max: length($animate);
6
-    $animations: '';
7
-
8
-    @for $i from 1 through $max {
9
-        $animations: #{$animations + nth($animate, $i)};
10
-
11
-        @if $i < $max {
12
-            $animations: #{$animations + ", "};
13
-        }
14
-    }
15
-    -webkit-animation: $animations;
16
-    -moz-animation:    $animations;
17
-    -o-animation:      $animations;
18
-    animation:         $animations;
19
-}
20
-
21
-@mixin flex() {
22
-    display: -webkit-box;
23
-    display: -moz-box;
24
-    display: -ms-flexbox;
25
-    display: -webkit-flex;
26
-    display: flex;
27
-}
28
-
29
-/**
30
- * Keyframes mixin.
31
- */
32
-@mixin keyframes($animationName) {
33
-    @-webkit-keyframes #{$animationName} {
34
-        @content;
35
-    }
36
-    @-moz-keyframes #{$animationName} {
37
-        @content;
38
-    }
39
-    @-o-keyframes #{$animationName} {
40
-        @content;
41
-    }
42
-    @keyframes #{$animationName} {
43
-        @content;
44
-    }
45
-}
46
-
47
-@mixin circle($diameter) {
48
-    width: $diameter;
49
-    height: $diameter;
50
-    border-radius: 50%;
51
-}
52
-
53
-/**
54
-* Absolute position the element at the top left corner
55
-**/
56
-@mixin topLeft() {
57
-    position: absolute;
58
-    top: 0;
59
-    left: 0;
60
-}
61
-
62
-@mixin absoluteAligning() {
63
-    top: 50%;
64
-    left: 50%;
65
-    position: absolute;
66
-    @include transform(translate(-50%, -50%));
67
-}
68
-
69
-/**
70
-* Defines the maximum width and height
71
-**/
72
-@mixin maxSize($value) {
73
-    max-width: $value;
74
-    max-height: $value;
75
-}
76
-
77
-@mixin transform($func) {
78
-    -moz-transform: $func;
79
-    -ms-transform: $func;
80
-    -webkit-transform: $func;
81
-    -o-transform: $func;
82
-    transform: $func;
83
-}
84
-
85
-@mixin transition($transition...) {
86
-    -moz-transition:    $transition;
87
-    -o-transition:      $transition;
88
-    -webkit-transition: $transition;
89
-    transition:         $transition;
90
-}
91
-
92
-/**
93
- * Mixin styling a placeholder.
94
- **/
95
-@mixin placeholder() {
96
-    $selectors: (
97
-        "::-webkit-input-placeholder",
98
-        "::-moz-placeholder",
99
-        ":-moz-placeholder",
100
-        ":-ms-input-placeholder"
101
-    );
102
-
103
-    @each $selector in $selectors {
104
-        #{$selector} {
105
-            @content;
106
-        }
107
-    }
108
-}
109
-
110
-/**
111
- * Mixin styling a slider track for different browsers.
112
- **/
113
-@mixin slider() {
114
-    $selectors: (
115
-        "input[type=range]::-webkit-slider-runnable-track",
116
-        "input[type=range]::-moz-range-track",
117
-        "input[type=range]::-ms-track"
118
-    );
119
-
120
-    @each $selector in $selectors {
121
-        #{$selector} {
122
-            @content;
123
-        }
124
-  }
125
-}
126
-
127
-/**
128
- * Mixin styling a slider thumb for different browsers.
129
- **/
130
-@mixin slider-thumb() {
131
-    $selectors: (
132
-        "input[type=range]::-webkit-slider-thumb",
133
-        "input[type=range]::-moz-range-thumb",
134
-        "input[type=range]::-ms-thumb"
135
-    );
136
-
137
-    @each $selector in $selectors {
138
-        #{$selector} {
139
-            @content;
140
-        }
141
-    }
142
-}
143
-
144
-@mixin box-shadow($h, $y, $blur, $color, $inset: false) {
145
-    @if $inset {
146
-        -webkit-box-shadow: inset $h $y $blur $color;
147
-        -moz-box-shadow: inset $h $y $blur $color;
148
-        box-shadow: inset $h $y $blur $color;
149
-    } @else {
150
-        -webkit-box-shadow: $h $y $blur $color;
151
-        -moz-box-shadow: $h $y $blur $color;
152
-        box-shadow: $h $y $blur $color;
153
-    }
154
-}
155
-
156
-@mixin no-box-shadow {
157
-    -webkit-box-shadow: none;
158
-    -moz-box-shadow: none;
159
-    box-shadow: none;
160
-}
161
-
162
-@mixin box-sizing($box-model) {
163
-    -webkit-box-sizing: $box-model; // Safari <= 5
164
-    -moz-box-sizing: $box-model; // Firefox <= 19
165
-    box-sizing: $box-model;
166
-}
167
-
168
-@mixin border-radius($radius) {
169
-    -webkit-border-radius: $radius;
170
-    border-radius: $radius;
171
-    /* stops bg color from leaking outside the border: */
172
-    background-clip: padding-box;
173
-}
174
-
175
-@mixin opacity($opacity) {
176
-    opacity: $opacity;
177
-    $opacity-ie: $opacity * 100;
178
-    -ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=$opacity-ie);
179
-    filter: alpha(opacity=$opacity-ie); //IE8
180
-}
181
-
182
-@mixin text-truncate {
183
-    display: block;
184
-    overflow: hidden;
185
-    text-overflow: ellipsis;
186
-    white-space: nowrap;
187
-}
188
-
189
-/**
190
- * Creates a semi-transparent background with the given color and alpha
191
- * (opacity) value.
192
- */
193
-@mixin transparentBg($color, $alpha) {
194
-    background-color: rgba(red($color), green($color), blue($color), $alpha);
195
-}
196
-
197
-/**
198
- * Avatar status badge mixin
199
- */
200
-@mixin avatarBadge {
201
-    border-radius: 50%;
202
-    content: '';
203
-    display: block;
204
-    height: 35%;
205
-    position: absolute;
206
-    bottom: 0;
207
-    width: 35%;
208
-}

+ 0
- 29
css/_modaldialog.scss 查看文件

@@ -1,29 +0,0 @@
1
-.jqistates {
2
-    font-size: 14px;
3
-}
4
-
5
-.jqistates h2 {
6
-    padding-bottom: 10px;
7
-    border-bottom: 1px solid #eee;
8
-    font-size: 18px;
9
-    line-height: 25px;
10
-    text-align: center;
11
-    color: #424242;
12
-}
13
-
14
-.jqistates input {
15
-    margin: 10px 0;
16
-}
17
-
18
-.jqistates input[type='text'], input[type='password'] {
19
-    width: 100%;
20
-}
21
-
22
-button.jqidefaultbutton #inviteLinkRef {
23
-    color: #2c8ad2;
24
-}
25
-
26
-#inviteLinkRef {
27
-    -webkit-user-select: text;
28
-    user-select: text;
29
-}

+ 0
- 80
css/_navigate_section_list.scss 查看文件

@@ -1,80 +0,0 @@
1
-%navigate-section-list-text {
2
-    width: 100%;
3
-    font-size: 14px;
4
-    line-height: 20px;
5
-    color: $welcomePageTitleColor;
6
-    text-align: left;
7
-    font-family: 'open_sanslight', Helvetica, sans-serif;
8
-}
9
-%navigate-section-list-tile-text {
10
-    @extend %navigate-section-list-text;
11
-    overflow: hidden;
12
-    text-overflow: ellipsis;
13
-    float: left;
14
-}
15
-.navigate-section-list-tile {
16
-    background-color: #1754A9;
17
-    border-radius: 4px;
18
-    box-sizing: border-box;
19
-    display: inline-flex;
20
-    margin-bottom: 8px;
21
-    margin-right: 8px;
22
-    min-height: 100px;
23
-    padding: 16px;
24
-    width: 100%;
25
-
26
-    &.with-click-handler {
27
-        cursor: pointer;
28
-    }
29
-
30
-    &.with-click-handler:hover {
31
-        background-color: #1a5dbb;
32
-    }
33
-
34
-    i {
35
-        cursor: inherit;
36
-    }
37
-
38
-    .element-after {
39
-        display: flex;
40
-        align-items: center;
41
-        justify-content: center;
42
-    }
43
-
44
-    .join-button {
45
-        display: none;
46
-    }
47
-
48
-    &:hover .join-button {
49
-        display: block
50
-    }
51
-}
52
-.navigate-section-tile-body {
53
-    @extend %navigate-section-list-tile-text;
54
-    font-weight: normal;
55
-    line-height: 24px;
56
-}
57
-.navigate-section-list-tile-info {
58
-    flex: 1;
59
-    word-break: break-word;
60
-}
61
-.navigate-section-tile-title {
62
-    @extend %navigate-section-list-tile-text;
63
-    font-weight: bold;
64
-    line-height: 24px;
65
-}
66
-.navigate-section-section-header {
67
-    @extend %navigate-section-list-text;
68
-    font-weight: bold;
69
-    margin-bottom: 16px;
70
-    display: block;
71
-}
72
-.navigate-section-list {
73
-    position: relative;
74
-    margin-top: 36px;
75
-    margin-bottom: 36px;
76
-    width: 100%;
77
-}
78
-.navigate-section-list-empty {
79
-    text-align: center;
80
-}

+ 0
- 15
css/_notice.scss 查看文件

@@ -1,15 +0,0 @@
1
-.notice {
2
-    position: absolute;
3
-    left: 50%;
4
-    z-index: $zindex3;
5
-    margin-top: 6px;
6
-
7
-    @include transform(translateX(-50%));
8
-
9
-    &__message {
10
-        background-color: #000000;
11
-        color: white;
12
-        padding: 3px;
13
-        border-radius: 5px;
14
-    }
15
-}

+ 0
- 26
css/_participants-count.scss 查看文件

@@ -1,26 +0,0 @@
1
-.participants-count {
2
-    background: #fff;
3
-    border-radius: 4px;
4
-    color: #5e6d7a;
5
-    cursor: pointer;
6
-    display: inline-block;
7
-    font-size: 13px;
8
-    line-height: 20px;
9
-    margin-left: 16px;
10
-    padding: 4px 8px;
11
-    pointer-events: auto;
12
-
13
-    &-number {
14
-        margin-right: 8px;
15
-        vertical-align: middle;
16
-    }
17
-
18
-    &-icon {
19
-        background: url('../images/user-groups.svg');
20
-        background-repeat: no-repeat;
21
-        display: inline-block;
22
-        height: 16px;
23
-        width: 16px;
24
-        vertical-align: middle;
25
-    }
26
-}

+ 0
- 15
css/_policy.scss 查看文件

@@ -1,15 +0,0 @@
1
-.policy {
2
-    &__logo {
3
-        display: block;
4
-        width: 200px;
5
-        height: 50px;
6
-        margin: 30px auto 0;
7
-    }
8
-
9
-    &__text {
10
-        text-align: center;
11
-        font-size: 14px;
12
-        line-height: 21px;
13
-        font-weight: 300;
14
-    }
15
-}

+ 0
- 50
css/_popover.scss 查看文件

@@ -1,50 +0,0 @@
1
-/**
2
- * Mousemove padding styles are used to add invisible elements to the popover
3
- * to allow mouse movement from the popover trigger to the popover itself
4
- * without triggering a mouseleave event.
5
- */
6
-.popover-mousemove-padding-bottom {
7
-    bottom: -15px;
8
-    height: 20px;
9
-    position: absolute;
10
-    right: 0;
11
-    width: 100%;
12
-}
13
-
14
-%vertical-popover-padding {
15
-    height: 100%;
16
-    position: absolute;
17
-    top: 0;
18
-    width: 40px;
19
-}
20
-
21
-.popover-mousemove-padding-left {
22
-    @extend %vertical-popover-padding;
23
-    left: -20px;
24
-}
25
-
26
-.popover-mousemove-padding-right {
27
-    @extend %vertical-popover-padding;
28
-    right: -20px;
29
-}
30
-
31
-/**
32
- * An invisible element is added to the top of the popover to ensure the mouse
33
- * stays over the popover when the popover's height is shrunk, which would then
34
- * normally leave the mouse outside of the popover itself and cause a mouseleave
35
- * event.
36
- */
37
-.popover-mouse-padding-top {
38
-    height: 30px;
39
-    position: absolute;
40
-    right: 0;
41
-    top: -25px;
42
-    width: 100%;
43
-}
44
-
45
-.popover {
46
-    background-color: $popoverBg;
47
-    border-radius: 3px;
48
-    margin: -16px -24px;
49
-    padding: 16px 24px;
50
-}

+ 0
- 115
css/_popup_menu.scss 查看文件

@@ -1,115 +0,0 @@
1
-/**
2
-* Initialize
3
-**/
4
-
5
-.popupmenu {
6
-    min-width: 75px;
7
-    text-align: left;
8
-    padding: 0px;
9
-    width: 180px;
10
-    white-space: nowrap;
11
-
12
-    &__item {
13
-        list-style-type: none;
14
-        height: 35px;
15
-    }
16
-
17
-    // Link Appearance
18
-    &__link,
19
-    &__contents {
20
-        display: block;
21
-        box-sizing: border-box;
22
-        text-decoration: none;
23
-        height: 100%;
24
-        font-size: 9pt;
25
-        width: 100%;
26
-        cursor: pointer;
27
-        padding: 0 5px;
28
-        color: $popupMenuColor;
29
-
30
-        &:hover {
31
-            background-color: $popupMenuHoverBackground;
32
-            color: $popupMenuHoverColor;
33
-        }
34
-
35
-        &.disabled {
36
-            pointer-events: none;
37
-        }
38
-    }
39
-
40
-    &__text {
41
-        display: inline-block;
42
-        vertical-align: middle;
43
-    }
44
-
45
-    &__link {
46
-        i {
47
-            cursor: pointer;
48
-        }
49
-    }
50
-
51
-    &__contents {
52
-        display: flex;
53
-
54
-        /**
55
-         * Positioning styles on the slider and its container are used to make
56
-         * the container fit the popup width, by removing the slider from the
57
-         * page flow, and then making the slider fit the container.
58
-         */
59
-        .popupmenu__slider_container {
60
-            position: relative;
61
-            width: 100%;
62
-
63
-            .popupmenu__slider {
64
-                position: absolute;
65
-                top: 50%;
66
-                transform: translate(0, -50%);
67
-                width: 100%;
68
-
69
-                &::-webkit-slider-runnable-track {
70
-                    background-color: $popupSliderColor;
71
-                }
72
-
73
-                &::-moz-range-track {
74
-                    background-color: $popupSliderColor;
75
-                }
76
-
77
-                &::-ms-fill-lower {
78
-                    background-color: $popupSliderColor;
79
-                }
80
-            }
81
-        }
82
-    }
83
-
84
-    &__icon {
85
-        vertical-align: middle;
86
-        position: relative;
87
-        display: inline-block;
88
-        min-width: 20px;
89
-        height: 100%;
90
-        padding-right: 10px;
91
-
92
-        > * {
93
-            @include absoluteAligning();
94
-        }
95
-    }
96
-
97
-    .icon-kick,
98
-    .icon-play,
99
-    .icon-stop {
100
-        font-size: 8pt;
101
-    }
102
-}
103
-
104
-/**
105
- * Override reset css styling modifying all lists and set negative margin to
106
- * reduce the visibility of padding on AtlasKit
107
- * InlineDialogs.
108
- */
109
-ul.popupmenu {
110
-    margin: -16px -24px;
111
-}
112
-
113
-span.remotevideomenu:hover ul.popupmenu, ul.popupmenu:hover {
114
-    display:block !important;
115
-}

+ 0
- 1
css/_promotional-footer.scss 查看文件

@@ -1 +0,0 @@
1
-/** Insert custom CSS for any additional content in the promotional footer **/

+ 0
- 117
css/_recording.scss 查看文件

@@ -1,117 +0,0 @@
1
-.recordingSpinner {
2
-    vertical-align: top;
3
-}
4
-
5
-.recording-dialog {
6
-    flex: 0;
7
-    flex-direction: column;
8
-
9
-    .recording-header {
10
-        display: flex;
11
-        flex: 0;
12
-        flex-direction: row;
13
-        justify-content: space-between;
14
-        padding-top: 32px;
15
-
16
-        .recording-title {
17
-            display: inline-flex;
18
-            align-items: center;
19
-            font-size: 16px;
20
-            margin-left: 16px;
21
-        }
22
-    }
23
-
24
-    .recording-header-line {
25
-        border-top: 1px solid #5e6d7a;
26
-    }
27
-
28
-    .recording-switch-disabled {
29
-        opacity: 0.5;
30
-    }
31
-
32
-    .recording-icon-container {
33
-        display: inline-flex;
34
-        align-items: center;
35
-    }
36
-
37
-    .recording-icon {
38
-        width: 32px;
39
-        height: 32px;
40
-        object-fit: contain;
41
-    }
42
-
43
-    .recording-switch {
44
-        margin-left: auto;
45
-    }
46
-
47
-    .authorization-panel {
48
-        display: flex;
49
-        flex-direction: column;
50
-        margin: 0 40px 10px 40px;
51
-        padding-bottom: 10px;
52
-
53
-        .logged-in-panel {
54
-            padding: 10px;
55
-        }
56
-    }
57
-}
58
-
59
-.live-stream-dialog {
60
-    /**
61
-     * Set font-size to be consistent with Atlaskit FieldText.
62
-     */
63
-    font-size: 14px;
64
-
65
-    .broadcast-dropdown,
66
-    .broadcast-dropdown-trigger {
67
-        text-align: left;
68
-    }
69
-
70
-    .form-footer {
71
-        display: flex;
72
-        margin-top: 5px;
73
-        text-align: right;
74
-        flex-direction: column;
75
-
76
-        .help-container {
77
-            display: flex;
78
-        }
79
-    }
80
-
81
-    .live-stream-cta {
82
-        a {
83
-            cursor: pointer;
84
-        }
85
-    }
86
-
87
-    .google-api {
88
-        margin-top: 10px;
89
-        min-height: 36px;
90
-        text-align: center;
91
-        width: 100%;
92
-    }
93
-
94
-    .google-error {
95
-        color: $errorColor;
96
-    }
97
-
98
-    .google-panel {
99
-        align-items: center;
100
-        border-bottom: 2px solid rgba(0, 0, 0, 0.3);
101
-        display: flex;
102
-        flex-direction: column;
103
-        padding-bottom: 10px;
104
-    }
105
-
106
-    .helper-link {
107
-        cursor: pointer;
108
-        display: inline-block;
109
-        flex-shrink: 0;
110
-        margin-left: auto;
111
-    }
112
-
113
-    .warning-text {
114
-        color:#FFD740;
115
-        font-size: 12px;
116
-    }
117
-}

+ 0
- 34
css/_redirect_page.scss 查看文件

@@ -1,34 +0,0 @@
1
-.redirectPageMessage {
2
-    width: 30%;
3
-    margin: 20% auto;
4
-    text-align: center;
5
-    font-size: 24px;
6
-
7
-    .thanks-msg {
8
-        border-bottom: 1px solid $selectBg;
9
-        padding-left: 30px;
10
-        padding-right: 30px;
11
-        p {
12
-            margin: 30px auto;
13
-            font-size: 24px;
14
-            line-height: 24px;
15
-        }
16
-    }
17
-    .hint-msg{
18
-        p {
19
-            margin: 26px auto;
20
-            font-weight: 600;
21
-            font-size: 16px;
22
-            line-height: 18px;
23
-            .hint-msg__holder{
24
-                font-weight: 200;
25
-            }
26
-        }
27
-        .happy-software{
28
-            width: 120px;
29
-            height: 86px;
30
-            margin: 0 auto;
31
-            background: $happySoftwareBackground;
32
-        }
33
-    }
34
-}

+ 0
- 79
css/_settings-button.scss 查看文件

@@ -1,79 +0,0 @@
1
-.settings-button {
2
-    &-container {
3
-        position: relative;
4
-
5
-        .toolbox-icon {
6
-            align-items: center;
7
-            cursor: pointer;
8
-            display: flex;
9
-            background-color: #fff;
10
-            border-radius: 50%;
11
-            border: 1px solid #d1dbe8;
12
-            justify-content: center;
13
-            width: 38px;
14
-            height: 38px;
15
-
16
-            &:hover {
17
-                background-color: #daebfa;
18
-                border: 1px solid #daebfa;
19
-            }
20
-
21
-            &.toggled {
22
-                background: #2a3a4b;
23
-                border: 1px solid #5e6d7a;
24
-
25
-                svg {
26
-                    fill: #fff;
27
-                }
28
-
29
-                &:hover {
30
-                    background-color: #5e6d7a;
31
-                }
32
-            }
33
-
34
-            &.disabled, .disabled & {
35
-                cursor: initial;
36
-                color: #fff;
37
-                background-color: #a4b8d1;
38
-            }
39
-
40
-            svg {
41
-                fill: #5e6d7a;
42
-            }
43
-        }
44
-    }
45
-
46
-    &-small-icon {
47
-        background: #FFF;
48
-        border: 1px solid rgba(0, 0, 0, 0.2);
49
-        border-radius: 50%;
50
-        bottom: 0;
51
-        box-shadow: 0px 1px 4px rgba(0, 0, 0, 0.25);
52
-        cursor: pointer;
53
-        height: 16px;
54
-        position: absolute;
55
-        text-align: center;
56
-        right: 4px;
57
-        width: 16px;
58
-
59
-        &> svg {
60
-            margin-top: 5px;
61
-        }
62
-
63
-        &--disabled {
64
-            background-color: #a4b8d1;
65
-            cursor: default;
66
-        }
67
-
68
-        &--hovered {
69
-            bottom: -1px;
70
-            height: 20px;
71
-            right: 2px;
72
-            width: 20px;
73
-
74
-            &> svg {
75
-                margin-top: 6px;
76
-            }
77
-        }
78
-    }
79
-}

+ 0
- 32
css/_subject.scss 查看文件

@@ -1,32 +0,0 @@
1
-.subject {
2
-    top: -120px;
3
-    transition: top .3s ease-in;
4
-    height: 95px;
5
-    width: 100%;
6
-    pointer-events: none;
7
-    position: absolute;
8
-    padding: 25px 140px 0 140px;
9
-    text-align: center;
10
-    font-size: 17px;
11
-    color: #fff;
12
-    z-index: $zindex10;
13
-    overflow: hidden;
14
-    text-overflow: ellipsis;
15
-    box-sizing: border-box;
16
-    white-space: nowrap;
17
-    background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
18
-
19
-    &.visible {
20
-        top: 0px;
21
-    }
22
-
23
-    &-text {
24
-        vertical-align: middle;
25
-    }
26
-
27
-    &-conference-timer {
28
-        display: block;
29
-        font-size: 15px;
30
-        opacity: 0.6;
31
-    }
32
-}

+ 0
- 286
css/_toolbars.scss 查看文件

@@ -1,286 +0,0 @@
1
-/**
2
- * Round badge.
3
- */
4
-.badge-round {
5
-    background-color: $toolbarBadgeBackground;
6
-    border-radius: 50%;
7
-    box-sizing: border-box;
8
-    color: $toolbarBadgeColor;
9
-    // Do not inherit the font-family from the toolbar button, because it's an
10
-    // icon style.
11
-    font-family: $baseFontFamily;
12
-    font-size: 9px;
13
-    font-weight: 700;
14
-    line-height: 13px;
15
-    min-width: 13px;
16
-    overflow: hidden;
17
-    text-align: center;
18
-    text-overflow: ellipsis;
19
-    vertical-align: middle;
20
-}
21
-
22
-/**
23
- * TODO: when the old filmstrip has been removed, remove the "new-" prefix.
24
- */
25
-.new-toolbox {
26
-    bottom: calc((#{$newToolbarSize} * 2) * -1);
27
-    left: 0;
28
-    position: absolute;
29
-    right: 0;
30
-    transition: bottom .3s ease-in;
31
-    width: 100%;
32
-
33
-
34
-    &.visible {
35
-        bottom: 0;
36
-        .toolbox-background {
37
-            bottom: 0px;
38
-        }
39
-    }
40
-
41
-    &.no-buttons {
42
-        display: none;
43
-    }
44
-
45
-    .toolbox-background {
46
-        background-image: linear-gradient(to top, rgba(0, 0, 0, 0.6), rgba(0, 0, 0, 0));
47
-        transition: bottom .3s ease-in;
48
-        height: 160px;
49
-        width: 100%;
50
-        bottom: -160px;
51
-        pointer-events: none;
52
-        position: absolute;
53
-        z-index: $toolbarBackgroundZ;
54
-    }
55
-
56
-    .toolbox-content {
57
-        box-sizing: border-box;
58
-        display: flex;
59
-        justify-content: space-between;
60
-        margin-left: auto;
61
-        margin-right: auto;
62
-        padding: 20px 16px;
63
-        position: relative;
64
-        width: 100%;
65
-        z-index: $toolbarZ;
66
-
67
-        .button-group-center,
68
-        .button-group-left,
69
-        .button-group-right {
70
-            display: flex;
71
-            width: 33%;
72
-        }
73
-
74
-        .button-group-center {
75
-            justify-content: center;
76
-
77
-            .toolbox-button {
78
-
79
-                .toolbox-icon {
80
-                    background-color: #fff;
81
-                    border-radius: 50%;
82
-                    border: 1px solid #d1dbe8;
83
-                    margin: 0px 4px;
84
-                    width: 38px;
85
-                    height: 38px;
86
-        
87
-                    &:hover {
88
-                        background-color: #daebfa;
89
-                        border: 1px solid #daebfa;
90
-                    }
91
-        
92
-                    &.toggled {
93
-                        background: #2a3a4b;
94
-                        border: 1px solid #5e6d7a;
95
-    
96
-                        svg {
97
-                            fill: #fff;
98
-                        }
99
-        
100
-                        &:hover {
101
-                            background-color: #5e6d7a;
102
-                        }
103
-                    }
104
-        
105
-                    &.disabled, .disabled & {
106
-                        cursor: initial;
107
-                        color: #fff;
108
-                        background-color: #a4b8d1;
109
-                    }
110
-    
111
-                    svg {
112
-                        fill: #5e6d7a;
113
-                    }
114
-                }
115
-
116
-                &:nth-child(2) {
117
-                    .toolbox-icon {
118
-                        background-color: $hangupColor;
119
-                        border: 1px solid $hangupColor;
120
-                        width: 40px;
121
-                        height: 40px;
122
-                
123
-                        &:hover {
124
-                            background-color: $hangupColor;
125
-                        }
126
-
127
-                        svg {
128
-                            fill: #fff;
129
-                        }
130
-                    }
131
-                }
132
-            }
133
-        }
134
-
135
-        .button-group-right {
136
-            justify-content: flex-end;
137
-        }
138
-
139
-        .overflow-menu {
140
-            font-size: 1.2em;
141
-            list-style-type: none;
142
-            background-color: $overflowMenuBG;
143
-            /**
144
-             * Undo atlaskit padding by reducing margins.
145
-             */
146
-            margin: -16px -24px;
147
-            padding: 4px 0;
148
-
149
-            .overflow-menu-item {
150
-                align-items: center;
151
-                color: $overflowMenuItemColor;
152
-                cursor: pointer;
153
-                display: flex;
154
-                font-size: 14px;
155
-                height: 22px;
156
-                padding: 5px 12px;
157
-
158
-                div {
159
-                    display: flex;
160
-                    flex-direction: row;
161
-                    align-items: center;
162
-                }
163
-
164
-                &:hover {
165
-                    background-color: $overflowMenuItemHoverBG;
166
-                    color: $overflowMenuItemHoverColor;
167
-                }
168
-
169
-                &.unclickable {
170
-                    cursor: default;
171
-                }
172
-                &.unclickable:hover {
173
-                    background: inherit;
174
-                }
175
-                &.disabled {
176
-                    cursor: initial;
177
-                    color: #3b475c;
178
-                }
179
-            }
180
-
181
-            .beta-tag {
182
-                background: $overflowMenuItemColor;
183
-                border-radius: 2px;
184
-                color: $overflowMenuBG;
185
-                font-size: 11px;
186
-                font-weight: bold;
187
-                margin-left: 8px;
188
-                padding: 0 6px;
189
-            }
190
-
191
-            .overflow-menu-item-icon {
192
-                margin-right: 10px;
193
-
194
-                i {
195
-                    display: inline;
196
-                    font-size: 24px;
197
-                }
198
-
199
-                i:hover {
200
-                    background-color: initial;
201
-                }
202
-
203
-                img {
204
-                    max-width: 24px;
205
-                    max-height: 24px;
206
-                }
207
-
208
-                svg {
209
-                    fill: #B8C7E0 !important;
210
-                }
211
-            }
212
-
213
-            .profile-text {
214
-                max-width: 150px;
215
-                text-overflow: ellipsis;
216
-                overflow: hidden;
217
-                white-space: nowrap;
218
-            }
219
-        }
220
-
221
-        .toolbox-button {
222
-            color: $toolbarButtonColor;
223
-            cursor: pointer;
224
-            display: inline-block;
225
-            line-height: $newToolbarSize;
226
-            margin: 0 8px;
227
-            text-align: center;
228
-        }
229
-
230
-        .toolbar-button-with-badge {
231
-            position: relative;
232
-
233
-            .badge-round {
234
-                bottom: -5px;
235
-                font-size: 12px;
236
-                line-height: 20px;
237
-                min-width: 20px;
238
-                pointer-events: none;
239
-                position: absolute;
240
-                right: -5px;
241
-            }
242
-        }
243
-
244
-        .toolbox-button-wth-dialog {
245
-            display: inline-block;
246
-        }
247
-
248
-        .toolbox-icon {
249
-            display: flex;
250
-            border-radius: 5px;
251
-            flex-direction: column;
252
-            font-size: 24px;
253
-            height: $newToolbarSize;
254
-            justify-content: center;
255
-            width: $newToolbarSize;
256
-
257
-            &:hover, &.toggled {
258
-                background: $newToolbarButtonHoverColor;
259
-            }
260
-    
261
-            &.disabled {
262
-                cursor: initial !important;
263
-                background-color: #a4b8d1 !important;
264
-
265
-                svg {
266
-                    fill: #fff !important;
267
-                }
268
-            }
269
-        }
270
-    }
271
-}
272
-
273
-/**
274
- * START of fade in animation for main toolbar
275
- */
276
-.fadeIn {
277
-    opacity: 1;
278
-
279
-    @include transition(all .3s ease-in);
280
-}
281
-
282
-.fadeOut {
283
-    opacity: 0;
284
-
285
-    @include transition(all .3s ease-out);
286
-}

+ 0
- 20
css/_transcription-subtitles.scss 查看文件

@@ -1,20 +0,0 @@
1
-.transcription-subtitles{
2
-    bottom: 10%;
3
-    font-size: 16px;
4
-    font-weight: 1000;
5
-    left: 50%;
6
-    max-width: 50vw;
7
-    opacity: 0.80;
8
-    pointer-events: none;
9
-    position: absolute;
10
-    text-shadow: 0px 0px 1px rgba(0,0,0,0.3),
11
-    0px 1px 1px rgba(0,0,0,0.3),
12
-    1px 0px 1px rgba(0,0,0,0.3),
13
-    0px 0px 1px rgba(0,0,0,0.3);
14
-    transform: translateX(-50%);
15
-    z-index: $filmstripVideosZ + 1;
16
-
17
-    span {
18
-        background: black;
19
-    }
20
-}

+ 0
- 43
css/_utils.scss 查看文件

@@ -1,43 +0,0 @@
1
-.flip-x {
2
-    transform: scaleX(-1);
3
-}
4
-
5
-.hidden {
6
-  display: none;
7
-}
8
-
9
-/**
10
- * Hides an element.
11
- */
12
-.hide {
13
-    display: none !important;
14
-}
15
-
16
-.invisible {
17
-    visibility: hidden;
18
-}
19
-
20
-/**
21
- * Shows an element.
22
- */
23
-.show {
24
-    display: block !important;
25
-}
26
-
27
-/**
28
- * Shows an inline element.
29
- */
30
-.show-inline {
31
-    display: inline-block !important;
32
-}
33
-
34
-/**
35
- * Shows a flex element.
36
- */
37
-.show-flex {
38
-    display: -webkit-box !important;
39
-    display: -moz-box !important;
40
-    display: -ms-flexbox !important;
41
-    display: -webkit-flex !important;
42
-    display: flex !important;
43
-}

+ 0
- 273
css/_variables.scss 查看文件

@@ -1,273 +0,0 @@
1
-@import "themes/light";
2
-
3
-/**
4
- * Style variables
5
- */
6
-$baseFontFamily: -apple-system, BlinkMacSystemFont, 'open_sanslight', 'Helvetica Neue', Helvetica, Arial, sans-serif;
7
-$hangupColor: #bf2117;
8
-$hangupFontSize: 2em;
9
-
10
-/**
11
- * Size variables.
12
- */
13
-
14
-// Video layout.
15
-$thumbnailToolbarHeight: 22px;
16
-$thumbnailIndicatorBorder: 2px;
17
-$thumbnailIndicatorSize: $thumbnailToolbarHeight;
18
-$thumbnailVideoMargin: 2px;
19
-$thumbnailsBorder: 2px;
20
-$thumbnailVideoBorder: 2px;
21
-$filmstripToggleButtonWidth: 17px;
22
-
23
-
24
-/**
25
- * Color variables.
26
- */
27
-$defaultColor: #F1F1F1;
28
-$defaultSideBarFontColor: #44A5FF;
29
-$defaultSemiDarkColor: #ACACAC;
30
-$defaultDarkColor: #2b3d5c;
31
-$defaultWarningColor: rgb(215, 121, 118);
32
-$presence-available: rgb(110, 176, 5);
33
-$presence-away: rgb(250, 201, 20);
34
-$presence-busy: rgb(233, 0, 27);
35
-$presence-idle: rgb(172, 172, 172);
36
-
37
-/**
38
- * Toolbar
39
- */
40
-$newToolbarBackgroundColor: rgba(22, 38, 55, 0.8);
41
-$newToolbarButtonHoverColor: rgba(255, 255, 255, 0.15);
42
-$newToolbarButtonToggleColor: rgba(255, 255, 255, 0.2);
43
-$AOTToolbarButtonHoverColor: rgba(14, 20, 35, 0.6);
44
-$AOTToolbarButtonToggleColor: rgba(14, 20, 35, 1);
45
-$newToolbarFontSize: 24px;
46
-$newToolbarHangupFontSize: 32px;
47
-$newToolbarSize: 40px;
48
-$newToolbarSizeWithPadding: calc(#{$newToolbarSize} + 24px);
49
-$toolbarTitleFontSize: 19px;
50
-$overflowMenuBG: initial;
51
-$overflowMenuItemHoverBG: #313D52;
52
-$overflowMenuItemHoverColor: #B8C7E0;
53
-$overflowMenuItemColor: #B8C7E0;
54
-
55
-/**
56
- * Video layout
57
- */
58
-$videoThumbnailHovered: rgba(22, 94, 204, .4);
59
-$videoThumbnailSelected: #165ECC;
60
-$participantNameColor: #fff;
61
-$thumbnailPictogramColor: #fff;
62
-$dominantSpeakerBg: #165ecc;
63
-$raiseHandBg: #D6D61E;
64
-$audioLevelBg: #44A5FF;
65
-$connectionIndicatorBg: #165ecc;
66
-$audioLevelShadow: rgba(9, 36, 77, 0.9);
67
-$videoStateIndicatorColor: $defaultColor;
68
-$videoStateIndicatorBackground: $toolbarBackground;
69
-$videoStateIndicatorSize: 40px;
70
-$remoteVideoMenuIconMargin: initial;
71
-
72
-/**
73
- * Feedback Modal
74
- */
75
-$feedbackContentBg: #fff;
76
-$feedbackInputBg: #fff;
77
-$feedbackTextColor: #000;
78
-$feedbackInputTextColor: #333;
79
-$feedbackInputPlaceholderColor: #777;
80
-
81
-/**
82
- * Modals
83
- */
84
-$modalButtonFontSize: 14px;
85
-$modalMockAKInputBackground: #fafbfc;
86
-$modalMockAKInputBorder: 1px solid #f4f5f7;
87
-$modalTextColor: #333;
88
-
89
-/**
90
- * Chat
91
- */
92
-$chatActionsSeparatorColor: rgb(173, 105, 112);
93
-$chatHeaderBackgroundColor: rgba(42, 58, 75, 0.9);
94
-$chatInputSeparatorColor: #A4B8D1;
95
-$chatLocalMessageBackgroundColor: rgb(4, 98, 178);
96
-$chatPrivateMessageBackgroundColor: rgb(153, 69, 77);
97
-$chatRemoteMessageBackgroundColor:  rgb(86, 101, 114);
98
-$sidebarWidth: 375px;
99
-
100
- /**
101
- * Misc.
102
- */
103
-$borderRadius: 4px;
104
-$defaultWatermarkLink: '../images/watermark.png';
105
-$popoverMenuPadding: 13px;
106
-$happySoftwareBackground: transparent;
107
-$desktopAppDragBarHeight: 25px;
108
-$scrollHeight: 7px;
109
-
110
-/**
111
- * Z-indexes. TODO: Replace this by a function.
112
- */
113
-$zindex0: 0;
114
-$zindex1: 1;
115
-$zindex2: 2;
116
-$zindex3: 3;
117
-$toolbarBackgroundZ: 4;
118
-$filmstripVideosZ: 5;
119
-$zindex10: 10;
120
-$reloadZ: 20;
121
-$poweredByZ: 100;
122
-$ringingZ: 300;
123
-$sideToolbarContainerZ: 300;
124
-$toolbarZ: 350;
125
-$tooltipsZ: 401;
126
-$dropdownMaskZ: 900;
127
-$dropdownZ: 901;
128
-$centeredVideoLabelZ: 1010;
129
-$popoverZ: 1015;
130
-$overlayZ: 1016;
131
-
132
-
133
-/**
134
- * Font Colors
135
- */
136
-$defaultFontColor: #777;
137
-$defaultLightFontColor: #F1F1F1;
138
-$defaultDarkFontColor: #000;
139
-
140
-/**
141
- * Forms
142
- */
143
-//inputs
144
-$inputControlEmColor: #f29424;
145
-//buttons
146
-$linkFontColor: #489afe;
147
-$linkHoverFontColor: #287ade;
148
-$formPadding: 16px;
149
-
150
-/**
151
- * Unsupported browser
152
- */
153
-$primaryUnsupportedBrowserButtonBgColor: #0052CC;
154
-$unsupportedBrowserButtonBgColor: rgba(9, 30, 66, 0.04);
155
-$unsupportedBrowserTextColor: #4a4a4a;
156
-$unsupportedBrowserTextSmallFontSize: 17px;
157
-$unsupportedBrowserTitleColor: #fff;
158
-$unsupportedBrowserTitleFontSize: 24px;
159
-$unsupportedDesktopBrowserTextColor: rgba(255, 255, 255, 0.7);
160
-$unsupportedDesktopBrowserTextFontSize: 21px;
161
-
162
-/**
163
- * The size of the default watermark.
164
- */
165
-$watermarkWidth: 186px;
166
-$watermarkHeight: 74px;
167
-
168
-/**
169
- * Welcome page variables.
170
- */
171
-$welcomePageDescriptionColor: #fff;
172
-$welcomePageFontFamily: inherit;
173
-$welcomePageBackground: linear-gradient(-90deg, #1251AE 0%, #0074FF 50%, #1251AE 100%);
174
-$welcomePageTitleColor: #fff;
175
-
176
-$welcomePageHeaderBackground: none;
177
-$welcomePageHeaderBackgroundSmall: none;
178
-$welcomePageHeaderBackgroundPosition: none;
179
-$welcomePageHeaderBackgroundRepeat: none;
180
-$welcomePageHeaderBackgroundSize: none;
181
-$welcomePageHeaderPaddingBottom: 0px;
182
-
183
-$welcomePageHeaderTextMarginTop: 35px;
184
-$welcomePageHeaderTextMarginBottom: 35px;
185
-
186
-$welcomePageHeaderTextTitleMarginBottom: 16px;
187
-$welcomePageHeaderTextTitleFontSize: 2.5rem;
188
-$welcomePageHeaderTextTitleFontWeight: 500;
189
-$welcomePageHeaderTextTitleLineHeight: 1.18;
190
-$welcomePageHeaderTextTitleOpacity: 1;
191
-
192
-$welcomePageHeaderTextDescriptionDisplay: inherit;
193
-$welcomePageHeaderTextDescriptionFontSize: 1rem;
194
-$welcomePageHeaderTextDescriptionFontWeight: 400;
195
-$welcomePageHeaderTextDescriptionLineHeight: 24px;
196
-$welcomePageHeaderTextDescriptionMarginBottom: 20px;
197
-$welcomePageHeaderTextDescriptionAlignSelf: inherit;
198
-
199
-$welcomePageEnterRoomWidth: 680px;
200
-$welcomePageEnterRoomPadding: 25px 30px;
201
-$welcomePageEnterRoomBorderRadius: 0px;
202
-
203
-$welcomePageEnterRoomInputContainerPadding: 0 8px 5px 0px;
204
-$welcomePageEnterRoomInputContainerBorderWidth: 0px 0px 2px 0px;
205
-$welcomePageEnterRoomInputContainerBorderStyle: solid;
206
-$welcomePageEnterRoomInputContainerBorderImage: linear-gradient(to right, #dee1e6, #fff) 1;
207
-
208
-$welcomePageEnterRoomTitleDisplay: inherit;
209
-
210
-$welcomePageTabContainerDisplay: flex;
211
-$welcomePageTabContentDisplay: inherit;
212
-$welcomePageTabButtonsDisplay: flex;
213
-$welcomePageTabDisplay: block;
214
-
215
-$welcomePageButtonWidth: 51px;
216
-$welcomePageButtonMinWidth: inherit;
217
-$welcomePageButtonFontSize: 14px;
218
-$welcomePageButtonHeight: 35px;
219
-$welcomePageButtonFontWeight: inherit;
220
-$welcomePageButtonBorderRadius: 4px;
221
-$welcomePageButtonLineHeight: 35px;
222
-
223
-/**
224
- * Deep-linking page variables.
225
- */
226
-$deepLinkingMobileLogoHeight: 40px;
227
-
228
-$deepLinkingMobileHeaderBackground: #f1f2f5;
229
-
230
-$deepLinkingMobileLinkColor: inherit;
231
-$deepLinkingMobileTextFontSize: inherit;
232
-$deepLinkingMobileTextLineHeight: inherit;
233
-
234
-$deepLinkingDialInConferenceIdMargin: 10px 0 10px 0;
235
-$deepLinkingDialInConferenceIdPadding: inherit;
236
-$deepLinkingDialInConferenceIdBackgroundColor: inherit;
237
-$deepLinkingDialInConferenceIdBorderRadius: inherit;
238
-
239
-$deepLinkingDialInConferenceNameFontSize: inherit;
240
-$deepLinkingDialInConferenceNameLineHeight: inherit;
241
-$deepLinkingDialInConferenceNameMarginBottom: none;
242
-$deepLinkingDialInConferenceNameFontWeight: inherit;
243
-
244
-$deepLinkingDialInConferenceDescriptionFontSize: 0.8em;
245
-$deepLinkingDialInConferenceDescriptionLineHeight: inherit;
246
-$deepLinkingDialInConferenceDescriptionMarginBottom: none;
247
-
248
-$deepLinkingDialInConferencePinFontSize: inherit;
249
-$deepLinkingDialInConferencePinLineHeight: inherit;
250
-
251
-$depLinkingMobileHrefLineHeight: 2.2857142857142856em;
252
-$deepLinkingMobileHrefFontWeight: bolder;
253
-$deepLinkingMobileHrefFontSize: inherit;
254
-
255
-$deepLinkingMobileButtonHeight: 2.2857142857142856em;
256
-$deepLinkingMobileButtonLineHeight: 2.2857142857142856em;
257
-$deepLinkingMobileButtonMargin: 18px auto 10px;
258
-$deepLinkingMobileButtonWidth: auto;
259
-$deepLinkingMobileButtonFontWeight: bold;
260
-$deepLinkingMobileButtonFontSize: inherit;
261
-
262
-$primaryDeepLinkingMobileButtonBorderRadius: inherit;
263
-
264
-/**
265
-* Chrome extension banner variables.
266
-*/
267
-$chromeExtensionBannerDontShowAgainDisplay: flex;
268
-$chromeExtensionBannerHeight: 128px;
269
-$chromeExtensionBannerTop: 80px;
270
-$chromeExtensionBannerRight: 16px;
271
-$chromeExtensionBannerTopInMeeting: 10px;
272
-$chromeExtensionBannerRightInMeeeting: 10px;
273
-

+ 0
- 66
css/_video-preview.css 查看文件

@@ -1,66 +0,0 @@
1
-.video-preview {
2
-    background: none;
3
-    max-height: 290px;
4
-    overflow: auto;
5
-
6
-    &-entry {
7
-        cursor: pointer;
8
-        height: 135px;
9
-        margin-bottom: 16px;
10
-        position: relative;
11
-        width: 240px;
12
-
13
-        &:last-child {
14
-            margin-bottom: 0;
15
-        }
16
-
17
-        &--selected {
18
-            border: 3px solid #31B76A;
19
-            cursor: default;
20
-            height: 129px;
21
-            width: 234px;
22
-        }
23
-    }
24
-
25
-    &-video {
26
-        height: 100%;
27
-        object-fit: cover;
28
-        width: 100%;
29
-    }
30
-
31
-    &-overlay {
32
-        background: rgba(42, 58, 75, 0.6);
33
-        height: 100%;
34
-        position: absolute;
35
-        width: 100%;
36
-        z-index: 1;
37
-    }
38
-
39
-    &-error {
40
-        align-items: center;
41
-        display: flex;
42
-        height: 100%;
43
-        justify-content: center;
44
-        position: absolute;
45
-        width: 100%;
46
-    }
47
-
48
-    &-label {
49
-        color: #fff;
50
-        font-size: 13px;
51
-        line-height: 20px;
52
-        overflow: hidden;
53
-        padding: 8px;
54
-        position: absolute;
55
-        text-align: center;
56
-        text-overflow: ellipsis;
57
-        width: 220px;
58
-        z-index: 2;
59
-    }
60
-
61
-    // Override @atlaskit/InlineDialog container which is made with styled components
62
-    & > div > div:nth-child(2) > div > div {
63
-        outline: none;
64
-        padding: 16px;
65
-    }
66
-}

+ 0
- 705
css/_videolayout_default.scss 查看文件

@@ -1,705 +0,0 @@
1
-#videoconference_page {
2
-    min-height: 100%;
3
-}
4
-
5
-#videospace {
6
-    display: block;
7
-    height: 100%;
8
-    width: 100%;
9
-    min-height: 100%;
10
-    position: absolute;
11
-    top: 0px;
12
-    left: 0px;
13
-    right: 0px;
14
-    overflow: hidden;
15
-}
16
-
17
-#largeVideoBackgroundContainer,
18
-.large-video-background {
19
-    height: 100%;
20
-    left: 0;
21
-    overflow: hidden;
22
-    position: absolute;
23
-    top: 0;
24
-    width: 100%;
25
-
26
-    #largeVideoBackground {
27
-        min-height: 100%;
28
-        min-width: 100%;
29
-    }
30
-}
31
-#largeVideoBackgroundContainer {
32
-    filter: blur(40px);
33
-}
34
-
35
-.videocontainer {
36
-    position: relative;
37
-    text-align: center;
38
-
39
-    &__background {
40
-        @include topLeft();
41
-        background-color: black;
42
-        border-radius: $borderRadius;
43
-        width: 100%;
44
-        height: 100%;
45
-    }
46
-
47
-    /**
48
-     * The toolbar of the video thumbnail.
49
-     */
50
-    &__toolbar,
51
-    &__toptoolbar {
52
-        position: absolute;
53
-        left: 0;
54
-        pointer-events: none;
55
-        z-index: $zindex10;
56
-        width: 100%;
57
-        box-sizing: border-box; // Includes the padding in the 100% width.
58
-
59
-        /**
60
-         * FIXME (lenny): Disabling pointer-events is a pretty big sin that
61
-         * sidesteps the problems. There are z-index wars occurring within
62
-         * videocontainer and AtlasKit Tooltips rely on their parent z-indexe
63
-         * being higher than whatever they need to appear over. So set a higher
64
-         * z-index for the tooltip containers but make any empty space not block
65
-         * mouse overs for various mouseover triggers.
66
-         */
67
-        pointer-events: none;
68
-
69
-        * {
70
-            pointer-events: auto;
71
-        }
72
-
73
-        .indicator-container {
74
-            display: inline-block;
75
-            float: left;
76
-            pointer-events: all;
77
-        }
78
-    }
79
-
80
-    &__toolbar {
81
-        bottom: 0;
82
-        height: $thumbnailToolbarHeight;
83
-        padding: 0 5px 0 5px;
84
-    }
85
-
86
-    &__toptoolbar {
87
-        $toolbarIconMargin: 5px;
88
-        top: 0;
89
-        padding-bottom: 0;
90
-        /**
91
-         * Override text-align center as icons need to be left justified.
92
-         */
93
-        text-align: left;
94
-
95
-        /**
96
-         * Intentionally use margin on the icon itself as AtlasKit InlineDialog
97
-         * positioning depends on the trigger (indicator icon).
98
-         */
99
-        .indicator {
100
-            margin-left: 5px;
101
-            margin-top: $toolbarIconMargin;
102
-        }
103
-
104
-        .indicator-container:nth-child(1) .indicator {
105
-            margin-left: $toolbarIconMargin;
106
-        }
107
-
108
-        .indicator-container {
109
-            display: inline-block;
110
-            vertical-align: top;
111
-
112
-            .popover-trigger {
113
-                display: inline-block;
114
-            }
115
-        }
116
-
117
-        .connection-indicator,
118
-        .indicator {
119
-            position: relative;
120
-            font-size: 8px;
121
-            text-align: center;
122
-            line-height: $thumbnailIndicatorSize;
123
-            padding: 0;
124
-            @include circle($thumbnailIndicatorSize);
125
-            box-sizing: border-box;
126
-            z-index: $zindex3;
127
-            background: $dominantSpeakerBg;
128
-            color: $thumbnailPictogramColor;
129
-            border: $thumbnailIndicatorBorder solid $thumbnailPictogramColor;
130
-
131
-            .indicatoricon {
132
-                @include absoluteAligning();
133
-            }
134
-
135
-            .connection {
136
-                position: relative;
137
-                display: inline-block;
138
-                margin: 0 auto;
139
-                left: 0;
140
-                @include transform(translate(0, -50%));
141
-
142
-                &_empty,
143
-                &_lost
144
-                {
145
-                    color: #8B8B8B;/*#FFFFFF*/
146
-                    overflow: hidden;
147
-                }
148
-
149
-                &_full
150
-                {
151
-                    @include topLeft();
152
-                    color: #FFFFFF;/*#15A1ED*/
153
-                    overflow: hidden;
154
-                }
155
-
156
-                &_ninja
157
-                {
158
-                    font-size: 1.5em;
159
-                }
160
-            }
161
-
162
-            .icon-gsm-bars {
163
-                cursor: pointer;
164
-                font-size: 1em;
165
-            }
166
-        }
167
-
168
-        .hide-connection-indicator {
169
-            display: none;
170
-        }
171
-    }
172
-
173
-    &__hoverOverlay {
174
-        background: rgba(0,0,0,.6);
175
-        border-radius: $borderRadius;
176
-        position: absolute;
177
-        top: 0px;
178
-        left: 0px;
179
-        width: 100%;
180
-        height: 100%;
181
-        visibility: hidden;
182
-        z-index: $zindex2;
183
-    }
184
-}
185
-
186
-#localVideoWrapper {
187
-    display:inline-block;
188
-}
189
-
190
-.flipVideoX {
191
-    transform: scale(-1, 1);
192
-    -moz-transform: scale(-1, 1);
193
-    -webkit-transform: scale(-1, 1);
194
-    -o-transform: scale(-1, 1);
195
-}
196
-
197
-#localVideoWrapper video,
198
-#localVideoWrapper object {
199
-    border-radius: $borderRadius !important;
200
-    cursor: hand;
201
-    object-fit: cover;
202
-}
203
-
204
-#largeVideo,
205
-#largeVideoWrapper,
206
-#largeVideoContainer {
207
-    overflow: hidden;
208
-    text-align: center;
209
-}
210
-
211
-#largeVideoContainer {
212
-    height: 100%;
213
-    width: 100%;
214
-}
215
-
216
-#largeVideoWrapper {
217
-    box-shadow: 0 0 20px -2px #444;
218
-}
219
-
220
-#largeVideo,
221
-#largeVideoWrapper
222
-{
223
-    object-fit: cover;
224
-}
225
-
226
-#sharedVideo,
227
-#etherpad,
228
-#localVideoWrapper video,
229
-#localVideoWrapper object,
230
-#localVideoWrapper,
231
-#largeVideoWrapper,
232
-#largeVideoWrapper>video,
233
-#largeVideoWrapper>object,
234
-.videocontainer>video,
235
-.videocontainer>object {
236
-    position: absolute;
237
-    left: 0;
238
-    top: 0;
239
-    z-index: $zindex1;
240
-    width: 100%;
241
-    height: 100%;
242
-}
243
-
244
-#etherpad {
245
-    text-align: center;
246
-}
247
-
248
-#etherpad {
249
-    z-index: $zindex0;
250
-}
251
-
252
-/**
253
- * Positions video thumbnail display name and editor.
254
- */
255
-#alwaysOnTop .displayname,
256
-.videocontainer .displayname,
257
-.videocontainer .editdisplayname {
258
-    display: inline-block;
259
-    position: absolute;
260
-    left: 10%;
261
-    width: 80%;
262
-    top: 50%;
263
-    @include transform(translateY(-40%));
264
-    color: $participantNameColor;
265
-    text-align: center;
266
-    text-overflow: ellipsis;
267
-    font-size: 12px;
268
-    font-weight: 100;
269
-    overflow: hidden;
270
-    white-space: nowrap;
271
-    line-height: $thumbnailToolbarHeight;
272
-    z-index: $zindex2;
273
-}
274
-
275
-#alwaysOnTop .displayname {
276
-    font-size: 15px;
277
-    position: inherit;
278
-    width: 100%;
279
-    left: 0px;
280
-    top: 0px;
281
-    margin-top: 10px;
282
-}
283
-
284
-/**
285
- * Positions video thumbnail display name editor.
286
- */
287
-.videocontainer .editdisplayname {
288
-    outline: none;
289
-    border: none;
290
-    background: none;
291
-    box-shadow: none;
292
-    padding: 0;
293
-}
294
-
295
-#localVideoContainer .displayname:hover {
296
-    cursor: text;
297
-}
298
-
299
-.videocontainer .displayname {
300
-    pointer-events: none;
301
-    padding: 0 3px 0 3px;
302
-}
303
-
304
-.videocontainer .editdisplayname {
305
-    height: auto;
306
-}
307
-
308
-#localDisplayName {
309
-    pointer-events: auto !important;
310
-}
311
-
312
-.videocontainer>a.displayname {
313
-    display: inline-block;
314
-    position: absolute;
315
-    color: #FFFFFF;
316
-    bottom: 0;
317
-    right: 0;
318
-    padding: 3px 5px;
319
-    font-size: 9pt;
320
-    cursor: pointer;
321
-    z-index: $zindex2;
322
-}
323
-
324
-/**
325
- * Video thumbnail toolbar icon.
326
- */
327
-.videocontainer .toolbar-icon {
328
-    font-size: 8pt;
329
-    text-align: center;
330
-    text-shadow: 0px 1px 0px rgba(255,255,255,.3), 0px -1px 0px rgba(0,0,0,.7);
331
-    color: #FFFFFF;
332
-    width: 12px;
333
-    line-height: $thumbnailToolbarHeight;
334
-    height: $thumbnailToolbarHeight;
335
-    padding: 0;
336
-    border: 0;
337
-    margin: 0px 5px 0px 0px;
338
-}
339
-
340
-/**
341
- * Toolbar icon internal i elements (font icons).
342
- */
343
-.toolbar-icon>div {
344
-    height: $thumbnailToolbarHeight;
345
-    display: flex;
346
-    flex-direction: column;
347
-    justify-content: center;
348
-}
349
-
350
-/**
351
- * Toolbar icons positioned on the right.
352
- */
353
-.moderator-icon {
354
-    display: inline-block;
355
-
356
-    &.right {
357
-        float: right;
358
-        margin: 0px 0px 0px 5px;
359
-    }
360
-
361
-    .toolbar-icon {
362
-        margin: 0;
363
-    }
364
-}
365
-
366
-.raisehandindicator {
367
-  background: $raiseHandBg;
368
-}
369
-
370
-.connection-indicator {
371
-    background: $connectionIndicatorBg;
372
-
373
-    &.status-high {
374
-        background: green;
375
-    }
376
-
377
-    &.status-med {
378
-        background: #FFD740;
379
-    }
380
-
381
-    &.status-lost {
382
-        background: gray;
383
-    }
384
-
385
-    &.status-low {
386
-        background: #BF2117;
387
-    }
388
-
389
-    &.status-other {
390
-        background: $connectionIndicatorBg;
391
-    }
392
-}
393
-
394
-.remote-video-menu-trigger,
395
-.remotevideomenu
396
-{
397
-    display: inline-block;
398
-    position: absolute;
399
-    top: 0px;
400
-    right: 0;
401
-    z-index: $zindex2;
402
-    width: 18px;
403
-    height: 13px;
404
-    color: #FFF;
405
-    font-size: 10pt;
406
-    margin-right: $remoteVideoMenuIconMargin;
407
-
408
-    >i{
409
-        cursor: hand;
410
-    }
411
-}
412
-.remote-video-menu-trigger {
413
-    margin-top: 7px;
414
-}
415
-
416
-/**
417
- * Audio indicator on video thumbnails.
418
- */
419
-.videocontainer>span.audioindicator,
420
-.videocontainer>.audioindicator-container {
421
-    position: absolute;
422
-    display: inline-block;
423
-    left: 6px;
424
-    top: 50%;
425
-    margin-top: -17px;
426
-    width: 6px;
427
-    height: 35px;
428
-    z-index: $zindex2;
429
-    border: none;
430
-
431
-    .audiodot-top,
432
-    .audiodot-bottom,
433
-    .audiodot-middle {
434
-        opacity: 0;
435
-        display: inline-block;
436
-        @include circle(5px);
437
-        background: $audioLevelShadow;
438
-        margin: 1px 0 1px 0;
439
-        transition: opacity .25s ease-in-out;
440
-        -moz-transition: opacity .25s ease-in-out;
441
-    }
442
-
443
-    span.audiodot-top::after,
444
-    span.audiodot-bottom::after,
445
-    span.audiodot-middle::after {
446
-        content: "";
447
-        display: inline-block;
448
-        width: 5px;
449
-        height: 5px;
450
-        border-radius: 50%;
451
-        -webkit-filter: blur(0.5px);
452
-        filter: blur(0.5px);
453
-        background: $audioLevelBg;
454
-    }
455
-}
456
-
457
-#reloadPresentation {
458
-    display: none;
459
-    position: absolute;
460
-    color: #FFFFFF;
461
-    top: 0;
462
-    right:0;
463
-    padding: 10px 10px;
464
-    font-size: 11pt;
465
-    cursor: pointer;
466
-    background: rgba(0, 0, 0, 0.3);
467
-    border-radius: 5px;
468
-    background-clip: padding-box;
469
-    -webkit-border-radius: 5px;
470
-    -webkit-background-clip: padding-box;
471
-    z-index: $reloadZ; /*The reload button should appear on top of the header!*/
472
-}
473
-
474
-.audiolevel {
475
-    display: inline-block;
476
-    position: absolute;
477
-    z-index: $zindex0;
478
-    border-radius:1px;
479
-    pointer-events: none;
480
-}
481
-
482
-#dominantSpeaker {
483
-    visibility: hidden;
484
-    width: 300px;
485
-    height: 300px;
486
-    margin: auto;
487
-    position: relative;
488
-    top: 50%;
489
-    transform: translateY(-50%);
490
-}
491
-
492
-#mixedstream {
493
-    display:none !important;
494
-}
495
-
496
-#dominantSpeakerAvatarContainer,
497
-.dynamic-shadow {
498
-    width: 200px;
499
-    height: 200px;
500
-}
501
-
502
-#dominantSpeakerAvatarContainer {
503
-    top: 50px;
504
-    margin: auto;
505
-    position: relative;
506
-    overflow: hidden;
507
-    visibility: inherit;
508
-}
509
-
510
-.dynamic-shadow {
511
-    border-radius: 50%;
512
-    position: absolute;
513
-    top: 50%;
514
-    left: 50%;
515
-    margin: -100px 0 0 -100px;
516
-    transition: box-shadow 0.3s ease;
517
-}
518
-
519
-.avatar-container {
520
-    @include maxSize(60px);
521
-    @include absoluteAligning();
522
-    display: flex;
523
-    justify-content: center;
524
-    height: 50%;
525
-    width: auto;
526
-    overflow: hidden;
527
-
528
-    .userAvatar {
529
-        height: 100%;
530
-        object-fit: cover;
531
-        width: 100%;
532
-        top: 0px;
533
-        left: 0px;
534
-        position: absolute;
535
-    }
536
-}
537
-
538
-#videoNotAvailableScreen {
539
-    text-align: center;
540
-    #avatarContainer {
541
-        border-radius: 50%;
542
-        display: inline-block;
543
-        height: 50vh;
544
-        margin-top: 25vh;
545
-        overflow: hidden;
546
-        width: 50vh;
547
-
548
-        #avatar {
549
-            height: 100%;
550
-            object-fit: cover;
551
-            width: 100%;
552
-        }
553
-    }
554
-}
555
-
556
-.sharedVideoAvatar {
557
-    position: absolute;
558
-    left: 0px;
559
-    top: 0px;
560
-    height: 100%;
561
-    width: 100%;
562
-    object-fit: cover;
563
-}
564
-
565
-.videoMessageFilter {
566
-    -webkit-filter: grayscale(.5) opacity(0.8);
567
-    filter: grayscale(.5) opacity(0.8);
568
-}
569
-
570
-#remotePresenceMessage,
571
-#remoteConnectionMessage {
572
-    position: absolute;
573
-    width: auto;
574
-    z-index: $zindex2;
575
-    font-weight: 600;
576
-    font-size: 14px;
577
-    text-align: center;
578
-    color: #FFF;
579
-    left: 50%;
580
-    transform: translate(-50%, 0);
581
-}
582
-#remotePresenceMessage .presence-label,
583
-#remoteConnectionMessage {
584
-    opacity: .80;
585
-    text-shadow:    0px 0px 1px rgba(0,0,0,0.3),
586
-                    0px 1px 1px rgba(0,0,0,0.3),
587
-                    1px 0px 1px rgba(0,0,0,0.3),
588
-                    0px 0px 1px rgba(0,0,0,0.3);
589
-
590
-    background: rgba(0,0,0,.5);
591
-    border-radius: 5px;
592
-    padding: 5px;
593
-    padding-left: 10px;
594
-    padding-right: 10px;
595
-}
596
-#remoteConnectionMessage {
597
-    display: none;
598
-}
599
-
600
-.display-avatar-with-name {
601
-    .avatar-container {
602
-        visibility: visible;
603
-    }
604
-
605
-    .displayNameContainer {
606
-        visibility: visible;
607
-    }
608
-
609
-    .videocontainer__hoverOverlay {
610
-        visibility: visible;
611
-    }
612
-
613
-    video {
614
-        visibility: hidden;
615
-    }
616
-}
617
-
618
-.display-name-on-black {
619
-    .avatar-container {
620
-        visibility: hidden;
621
-    }
622
-
623
-    .displayNameContainer {
624
-        visibility: visible;
625
-    }
626
-
627
-    .videocontainer__hoverOverlay {
628
-        visibility: hidden;
629
-    }
630
-
631
-    video {
632
-        opacity: 0.2;
633
-        visibility: visible;
634
-    }
635
-}
636
-
637
-.display-video {
638
-    .avatar-container {
639
-        visibility: hidden;
640
-    }
641
-
642
-    .displayNameContainer {
643
-        visibility: hidden;
644
-    }
645
-
646
-    .videocontainer__hoverOverlay {
647
-        visibility: hidden;
648
-    }
649
-
650
-    video {
651
-        visibility: visible;
652
-    }
653
-}
654
-
655
-.display-name-on-video {
656
-    .avatar-container {
657
-        visibility: hidden;
658
-    }
659
-
660
-    .displayNameContainer {
661
-        visibility: visible;
662
-    }
663
-
664
-    .videocontainer__hoverOverlay {
665
-        visibility: visible;
666
-    }
667
-
668
-    video {
669
-        visibility: visible;
670
-    }
671
-}
672
-
673
-.display-avatar-only {
674
-    .avatar-container {
675
-        visibility: visible;
676
-    }
677
-
678
-    .displayNameContainer {
679
-        visibility: hidden;
680
-    }
681
-
682
-    .videocontainer__hoverOverlay {
683
-        visibility: hidden;
684
-    }
685
-
686
-    video {
687
-        visibility: hidden;
688
-    }
689
-}
690
-
691
-.presence-label {
692
-    color: $participantNameColor;
693
-    font-size: 12px;
694
-    font-weight: 100;
695
-    left: 0;
696
-    margin: 0 auto;
697
-    overflow: hidden;
698
-    pointer-events: none;
699
-    right: 0;
700
-    text-align: center;
701
-    text-overflow: ellipsis;
702
-    top: calc(50% + 30px);
703
-    white-space: nowrap;
704
-    width: 100%;
705
-}

+ 0
- 184
css/_welcome_page.scss 查看文件

@@ -1,184 +0,0 @@
1
-body.welcome-page {
2
-    background: inherit;
3
-    overflow: auto;
4
-}
5
-
6
-.welcome {
7
-    background-image: $welcomePageBackground;
8
-    display: flex;
9
-    flex-direction: column;
10
-    font-family: $welcomePageFontFamily;
11
-    justify-content: space-between;
12
-    min-height: 100vh;
13
-    position: relative;
14
-
15
-    .header {
16
-        background-image: $welcomePageHeaderBackground;
17
-        background-position: $welcomePageHeaderBackgroundPosition;
18
-        background-repeat: $welcomePageHeaderBackgroundRepeat;
19
-        background-size: $welcomePageHeaderBackgroundSize;
20
-        padding-bottom: $welcomePageHeaderPaddingBottom;
21
-        align-items: center;
22
-        display: flex;
23
-        flex-direction: column;
24
-        min-height: fit-content;
25
-        overflow: hidden;
26
-        position: relative;
27
-        text-align: center;
28
-
29
-        .header-text {
30
-            display: flex;
31
-            flex-direction: column;
32
-            margin-top: $watermarkHeight + $welcomePageHeaderTextMarginTop;
33
-            margin-bottom: $welcomePageHeaderTextMarginBottom;
34
-            max-width: calc(100% - 40px);
35
-            width: 650px;
36
-            z-index: $zindex2;
37
-        }
38
-
39
-        .header-text-title {
40
-            color: $welcomePageTitleColor;
41
-            font-size: $welcomePageHeaderTextTitleFontSize;
42
-            font-weight: $welcomePageHeaderTextTitleFontWeight;
43
-            line-height: $welcomePageHeaderTextTitleLineHeight;
44
-            margin-bottom: $welcomePageHeaderTextTitleMarginBottom;
45
-            opacity: $welcomePageHeaderTextTitleOpacity;
46
-        }
47
-
48
-        .header-text-description {
49
-            display: $welcomePageHeaderTextDescriptionDisplay;
50
-            color: $welcomePageDescriptionColor;
51
-            font-size: $welcomePageHeaderTextDescriptionFontSize;
52
-            font-weight: $welcomePageHeaderTextDescriptionFontWeight;
53
-            line-height: $welcomePageHeaderTextDescriptionLineHeight;
54
-            margin-bottom: $welcomePageHeaderTextDescriptionMarginBottom;
55
-            align-self: $welcomePageHeaderTextDescriptionAlignSelf;
56
-        }
57
-
58
-        #enter_room {
59
-            display: flex;
60
-            align-items: center;
61
-            max-width: calc(100% - 40px);
62
-            width: $welcomePageEnterRoomWidth;
63
-            z-index: $zindex2;
64
-            background-color: #fff;
65
-            padding: $welcomePageEnterRoomPadding;
66
-            border-radius: $welcomePageEnterRoomBorderRadius;
67
-
68
-            .enter-room-input-container {
69
-                width: 100%;
70
-                padding: $welcomePageEnterRoomInputContainerPadding;
71
-                text-align: left;
72
-                color: #253858;
73
-                height: fit-content;
74
-                border-width: $welcomePageEnterRoomInputContainerBorderWidth;
75
-                border-style: $welcomePageEnterRoomInputContainerBorderStyle;
76
-                border-image: $welcomePageEnterRoomInputContainerBorderImage;
77
-
78
-                .enter-room-title {
79
-                    display: $welcomePageEnterRoomTitleDisplay;
80
-                    font-size: 18px;
81
-                    font-weight: bold;
82
-                    padding-bottom: 5px;
83
-                }
84
-
85
-                .enter-room-input {
86
-                    border: none;
87
-                    display: inline-block;
88
-                    width: 100%;
89
-                    font-size: 14px;
90
-                }
91
-
92
-                ::placeholder {
93
-                    color: #253858;
94
-                }
95
-            }
96
-
97
-        }
98
-
99
-        .tab-container {
100
-            font-size: 16px;
101
-            position: relative;
102
-            text-align: left;
103
-            min-height: 354px;
104
-            width: 710px;
105
-            background: #75A7E7;
106
-            display: $welcomePageTabContainerDisplay;
107
-            flex-direction: column;
108
-
109
-            .tab-content{
110
-                display: $welcomePageTabContentDisplay;
111
-                margin: 5px 0px;
112
-                overflow: hidden;
113
-                flex-grow: 1;
114
-                position: relative;
115
-
116
-                > * {
117
-                    position: absolute;
118
-                }
119
-            }
120
-
121
-            .tab-buttons {
122
-                font-size: 18px;
123
-                color: #FFFFFF;
124
-                display: $welcomePageTabButtonsDisplay;
125
-                flex-grow: 0;
126
-                flex-direction: row;
127
-                min-height: 54px;
128
-                width: 100%;
129
-
130
-                .tab {
131
-                    display: $welcomePageTabDisplay;
132
-                    text-align: center;
133
-                    background: rgba(9,30,66,0.37);
134
-                    height: 55px;
135
-                    line-height: 54px;
136
-                    flex-grow: 1;
137
-                    cursor: pointer;
138
-
139
-                    &.selected, &:hover {
140
-                        background: rgba(9,30,66,0.71);
141
-                    }
142
-
143
-                    &:last-child {
144
-                        margin-left: 1px;
145
-                    }
146
-                }
147
-            }
148
-        }
149
-    }
150
-
151
-    .welcome-page-button {
152
-        width: $welcomePageButtonWidth;
153
-        min-width: $welcomePageButtonMinWidth;
154
-        height: $welcomePageButtonHeight;
155
-        font-size: $welcomePageButtonFontSize;
156
-        font-weight: $welcomePageButtonFontWeight;
157
-        background: #0074E0;
158
-        border-radius: $welcomePageButtonBorderRadius;
159
-        color: #FFFFFF;
160
-        text-align: center;
161
-        vertical-align: middle;
162
-        line-height: $welcomePageButtonLineHeight;
163
-        cursor: pointer;
164
-    }
165
-
166
-    .welcome-page-settings {
167
-        color: $welcomePageDescriptionColor;
168
-        position: absolute;
169
-        top: 32px;
170
-        right: 32px;
171
-        z-index: $zindex2;
172
-
173
-        * {
174
-            cursor: pointer;
175
-            font-size: 32px;
176
-        }
177
-    }
178
-
179
-    .welcome-watermark {
180
-        position: absolute;
181
-        width: 100%;
182
-        height: 100%;
183
-    }
184
-}

+ 0
- 1
css/_welcome_page_content.scss 查看文件

@@ -1 +0,0 @@
1
-/** Insert custom CSS for any additional content in the welcome page **/

+ 0
- 1
css/_welcome_page_settings_toolbar.scss 查看文件

@@ -1 +0,0 @@
1
-/** Insert custom CSS for any additional content in the welcome page settings toolbar **/

+ 0
- 68
css/aui-components/dropdown.scss 查看文件

@@ -1,68 +0,0 @@
1
-.select2-container.aui-select2-container {
2
-    background-color: transparent !important;
3
-    margin-top: 2px;
4
-
5
-    a.select2-choice {
6
-        height: 28px !important;
7
-        line-height: 18px !important;
8
-        width: 100% !important;
9
-        background-color: $selectBg !important;
10
-        border-color: $selectBg !important;
11
-        color: $selectFontColor !important;
12
-        text-shadow: none !important;
13
-        font-size: 12px !important;
14
-        margin: 0 auto !important;
15
-
16
-        &:after {
17
-            border-top-color: $selectFontColor;
18
-        }
19
-    }
20
-
21
-    &.select2-dropdown-open{
22
-        a.select2-choice {
23
-            background-color: $selectActiveBg !important;
24
-            border-color: $selectActiveBg !important;
25
-        }
26
-    }
27
-}
28
-
29
-.select2-drop.aui-select2-drop.aui-style-default {
30
-    z-index: $dropdownZ;
31
-    background-color: $selectActiveBg;
32
-    border-color: $selectActiveBg;
33
-
34
-    .select2-results{
35
-        background-color: $selectActiveBg;
36
-        border-color: $selectActiveBg;
37
-
38
-        &::-webkit-scrollbar {
39
-            background-color: transparent;
40
-        }
41
-        &::-webkit-scrollbar-track {
42
-            background-color: transparent;
43
-        }
44
-        &::-webkit-scrollbar-track-piece {
45
-            background-color: transparent;
46
-        }
47
-        &::-webkit-scrollbar-thumb {
48
-            background-color: $selectActiveItemBg;
49
-        }
50
-
51
-        .select2-result{
52
-            &.select2-highlighted{
53
-                background-color: $selectActiveItemBg;
54
-            }
55
-
56
-            .select2-result-label{
57
-                font-size: 12px;
58
-                color: $selectFontColor !important;
59
-                line-height: 20px;
60
-            }
61
-        }
62
-
63
-    }
64
-}
65
-
66
-.select2-drop-mask {
67
-    z-index: $dropdownMaskZ;
68
-}

+ 0
- 101
css/components/_button-control.scss 查看文件

@@ -1,101 +0,0 @@
1
-.button-control {
2
-    box-sizing: border-box;
3
-    display: inline-block;
4
-    border: 1px solid $buttonBorder;
5
-    vertical-align: baseline;
6
-    height: 30px;
7
-    min-width: 60px;
8
-    padding: 4px 10px;
9
-    margin: 0;
10
-    line-height: 1.5em;
11
-    outline: none;
12
-    background-color: transparent;
13
-    float: right;
14
-    font-size: 14px;
15
-    margin-left: 10px;
16
-    color: $buttonColor;
17
-    font-weight: $buttonFontWeight;
18
-    @include transition(background-color .1s ease-out);
19
-
20
-    &[disabled] {
21
-        color: #666;
22
-        cursor: default;
23
-    }
24
-
25
-    &_full-width {
26
-        margin: 0;
27
-        width: 100%;
28
-    }
29
-
30
-    &:hover {
31
-        border: 1px solid $buttonHoverBorder;
32
-        background-color: $buttonHoverBackground;
33
-        @include transition(background-color .1s ease-in);
34
-    }
35
-
36
-    &:active {
37
-        @include box-shadow(0, 0, 1px, $buttonShadowColor, true);
38
-    }
39
-
40
-    &_light {
41
-        color: $defaultDarkColor;
42
-        background-color: $buttonLightBackground;
43
-        border: 1px solid $buttonLightBorder;
44
-
45
-        &:hover {
46
-            border: 1px solid $buttonLightHoverBorder;
47
-            background-color: $buttonLightHoverBackground;
48
-        }
49
-    }
50
-
51
-    &_link {
52
-        color: $buttonLinkColor;
53
-        background-color: $buttonLinkBackground;
54
-
55
-        &:hover {
56
-            background-color: $buttonLinkBackground;
57
-        }
58
-    }
59
-
60
-    &_overlay {
61
-        color: $primaryButtonColor;
62
-        background-color: $overlayButtonBg;
63
-        border-radius: 2px;
64
-        border: none;
65
-
66
-        &:hover {
67
-            background-color: $primaryButtonBackground;
68
-            border: none;
69
-        }
70
-    }
71
-
72
-    &_primary {
73
-        background-color: $primaryButtonBackground;
74
-        border: 1px solid $primaryButtonBackground;
75
-        color: $primaryButtonColor !important;
76
-        font-weight: $primaryButtonFontWeight;
77
-
78
-        &:hover {
79
-            border: 1px solid $primaryButtonHoverBackground;
80
-            background-color: $primaryButtonHoverBackground;
81
-        }
82
-
83
-        &[disabled] {
84
-            color: $primaryButtonColor;
85
-        }
86
-    }
87
-
88
-    &_close {
89
-        color: $defaultFontColor;
90
-    }
91
-    &_submit {
92
-        color: $linkFontColor;
93
-        &:hover {
94
-            color: $linkHoverFontColor;
95
-        }
96
-    }
97
-
98
-    &_center {
99
-        float: none !important;
100
-    }
101
-}

+ 0
- 49
css/components/_form-control.scss 查看文件

@@ -1,49 +0,0 @@
1
-.form-control {
2
-    padding: $formPadding 0;
3
-
4
-    &:first-child {
5
-        padding-top: 0;
6
-    }
7
-
8
-    &:last-child {
9
-        padding-bottom: 0;
10
-    }
11
-
12
-    &__text {
13
-        margin: 8px 0;
14
-        font-size: 1em
15
-    }
16
-
17
-    &__label {
18
-        font-size: 1em;
19
-        font-weight: $labelFontWeight;
20
-    }
21
-
22
-    &__em {
23
-        color: $inputControlEmColor;
24
-    }
25
-
26
-    &__container {
27
-        position: relative;
28
-        width: 100%;
29
-        margin-top: 5px;
30
-        margin-bottom: 5px;
31
-        @include flex();
32
-
33
-        .button-control {
34
-            margin: 1px 0 1px 10px;
35
-        }
36
-    }
37
-
38
-    &__right {
39
-        position: absolute;
40
-        right: 0;
41
-    }
42
-}
43
-
44
-/**
45
- * Set a specific color for read only style.
46
- */
47
-input:read-only {
48
-    color: $readOnlyInputColor;
49
-}

+ 0
- 29
css/components/_input-control.scss 查看文件

@@ -1,29 +0,0 @@
1
-.input-control {
2
-    @include transition(all .2s ease-in);
3
-    display: inline-block;
4
-    width: 100%;
5
-    padding: 5px 7px;
6
-    border-radius: $borderRadius;
7
-    line-height: 32px;
8
-    height: 32px;
9
-    text-align: left;
10
-    margin-bottom: 8px;
11
-
12
-    &:last-child {
13
-        margin-bottom: inherit;
14
-    }
15
-
16
-    &::selection {
17
-        background-color: $defaultDarkSelectionColor;
18
-    }
19
-
20
-
21
-    &.error {
22
-        color: $errorColor;
23
-        border-color: $errorColor;
24
-    }
25
-}
26
-
27
-@include placeholder {
28
-    color: $placeHolderColor;
29
-}

+ 0
- 41
css/components/_input-slider.scss 查看文件

@@ -1,41 +0,0 @@
1
-/**
2
- * Disable the default webkit styles for range inputs (sliders).
3
- */
4
-input[type=range]{
5
-    -webkit-appearance: none;
6
-    background: none;
7
-}
8
-
9
-/**
10
- * Disable the default focus styles for webkit range inputs (sliders).
11
- */
12
-input[type=range]:focus {
13
-    outline: none;
14
-}
15
-
16
-/**
17
- * Include the mixin for a range input style.
18
- */
19
-@include slider {
20
-    background: $sliderTrackBackground;
21
-    border: none;
22
-    border-radius: 3px;
23
-    cursor: pointer;
24
-    height: 6px;
25
-    width: 100%;
26
-}
27
-
28
-/**
29
- * Include the mixin for a range input thumb style.
30
- */
31
-@include slider-thumb {
32
-    -webkit-appearance: none;
33
-    background: white;
34
-    border: 1px solid $sliderThumbBackground;
35
-    border-radius: 50%;
36
-    box-shadow: 0px 0px 1px $sliderThumbBackground;
37
-    cursor: pointer;
38
-    height: 14px;
39
-    margin-top: -4px;
40
-    width: 14px;
41
-}

+ 0
- 20
css/components/_link.scss 查看文件

@@ -1,20 +0,0 @@
1
-.link {
2
-    cursor: pointer;
3
-    color: $linkFontColor;
4
-    @include transition(color .1s ease-out);
5
-
6
-    &:hover {
7
-        color: $linkHoverFontColor;
8
-        text-decoration: underline;
9
-        @include transition(color .1s ease-in);
10
-    }
11
-}
12
-
13
-/**
14
- * Helper links are links that are meant to open a documentation page or more
15
- * detailed info.
16
- */
17
-.helper-link {
18
-    @extend .link;
19
-    font-size: 12px;
20
-}

+ 0
- 75
css/deep-linking/_desktop.scss 查看文件

@@ -1,75 +0,0 @@
1
-.deep-linking-desktop {
2
-    background-color: #fff;
3
-    width: 100%;
4
-    height: 100%;
5
-    display: flex;
6
-    flex-flow: column;
7
-    .header {
8
-        width: 100%;
9
-        height: 55px;
10
-        background-color: #f1f2f5;
11
-        padding-top: 15px;
12
-        padding-left: 50px;
13
-        display: flex;
14
-        flex-flow: row;
15
-        flex: 0 0 55px;
16
-        .logo {
17
-            height: 40px;
18
-        }
19
-    }
20
-    .content {
21
-        padding-top: 40px;
22
-        padding-bottom: 40px;
23
-        left: 0px;
24
-        right: 0px;
25
-        display: flex;
26
-        width: 100%;
27
-        height: 100%;
28
-        flex-flow: row;
29
-        .leftColumn {
30
-            left: 0px;
31
-            width: 50%;
32
-            min-height: 156px;
33
-            display: flex;
34
-            flex-flow: column;
35
-            .leftColumnContent{
36
-                padding: 20px;
37
-                display: flex;
38
-                flex-flow: column;
39
-                height: 100%;
40
-                .image {
41
-                    background-image: url('../images/deep-linking-image.png');
42
-                    background-repeat: no-repeat;
43
-                    background-position: center;
44
-                    background-size: contain;
45
-                    height: 100%;
46
-                    width: 100%;
47
-                }
48
-            }
49
-
50
-        }
51
-        .rightColumn {
52
-            top: 0px;
53
-            width: 50%;
54
-            min-height: 156px;
55
-            display: flex;
56
-            flex-flow: row;
57
-            align-items: center;
58
-            .rightColumnContent {
59
-                display: flex;
60
-                flex-flow: column;
61
-                padding: 20px 20px 20px 60px;
62
-                .title {
63
-                    color: #1c2946;
64
-                }
65
-                .description {
66
-                    color: #606a80;
67
-                    margin-top: 8px;
68
-                }
69
-                .buttons {
70
-                    margin-top: 16px;
71
-                }
72
-            }
73
-        }
74
-    }
75
-}

+ 0
- 3
css/deep-linking/_main.scss 查看文件

@@ -1,3 +0,0 @@
1
-@import 'desktop';
2
-@import 'mobile';
3
-@import 'no-mobile-app';

+ 0
- 165
css/deep-linking/_mobile.scss 查看文件

@@ -1,165 +0,0 @@
1
-.deep-linking-mobile {
2
-    background-color: #fff;
3
-    height: 100vh;
4
-    overflow: auto;
5
-    position: relative;
6
-    width: 100vw;
7
-
8
-    .header {
9
-        width: 100%;
10
-        height: 70px;
11
-        background-color: $deepLinkingMobileHeaderBackground;
12
-        text-align: center;
13
-        .logo {
14
-            margin-top: 15px;
15
-            margin-left: auto;
16
-            margin-right: auto;
17
-            height: $deepLinkingMobileLogoHeight;
18
-        }
19
-    }
20
-
21
-    a {
22
-        text-decoration: none;
23
-        color: $deepLinkingMobileLinkColor;
24
-    }
25
-
26
-    &__body {
27
-        color: $unsupportedBrowserTextColor;
28
-        margin: auto;
29
-        max-width: 40em;
30
-        padding: 35px 0 40px 0;
31
-        text-align: center;
32
-        width: 90%;
33
-
34
-        a:active {
35
-            text-decoration: none;
36
-        }
37
-
38
-        .image {
39
-            max-width: 80%;
40
-        }
41
-    }
42
-
43
-    &__text {
44
-        font-weight: bolder;
45
-        font-size: $deepLinkingMobileTextFontSize;
46
-        line-height: $deepLinkingMobileTextLineHeight;
47
-        padding: 10px 10px 0px 10px;
48
-    }
49
-
50
-    &__text,
51
-    .deep-linking-dial-in  {
52
-        font-size: 1em;
53
-        line-height: em(29px, 21px);
54
-        margin-bottom: 0.65em;
55
-
56
-        &_small {
57
-            font-size: 1.5em;
58
-            margin-bottom: 1em;
59
-            margin-top: em(21, 18);
60
-
61
-            strong {
62
-                font-size: em(21, 18);
63
-            }
64
-        }
65
-
66
-        table {
67
-            font-size: 1em;
68
-        }
69
-
70
-        .dial-in-conference-id {
71
-            margin: $deepLinkingDialInConferenceIdMargin;
72
-            padding: $deepLinkingDialInConferenceIdPadding;
73
-            background-color: $deepLinkingDialInConferenceIdBackgroundColor;
74
-            border-radius: $deepLinkingDialInConferenceIdBorderRadius;
75
-        }
76
-
77
-        .dial-in-conference-name {
78
-            font-size: $deepLinkingDialInConferenceNameFontSize;
79
-            line-height: $deepLinkingDialInConferenceNameLineHeight;
80
-            margin-bottom: $deepLinkingDialInConferenceNameMarginBottom;
81
-            font-weight: $deepLinkingDialInConferenceNameFontWeight;
82
-        }
83
-
84
-        .dial-in-conference-description {
85
-            font-size: $deepLinkingDialInConferenceDescriptionFontSize;
86
-            line-height: $deepLinkingDialInConferenceDescriptionLineHeight;
87
-            margin-bottom: $deepLinkingDialInConferenceDescriptionMarginBottom;
88
-        }
89
-
90
-        .dial-in-conference-pin {
91
-            font-size: $deepLinkingDialInConferencePinFontSize;
92
-            line-height: $deepLinkingDialInConferencePinLineHeight;
93
-        }
94
-
95
-        .toll-free-list {
96
-            min-width: 80px;
97
-        }
98
-
99
-        .numbers-list {
100
-            min-width: 150px;
101
-        }
102
-
103
-        li.toll-free:empty:before {
104
-            content: '.';
105
-            visibility: hidden;
106
-        }
107
-    }
108
-
109
-    &__href {
110
-        height: 2.2857142857142856em;
111
-        line-height: $depLinkingMobileHrefLineHeight;
112
-        margin: 18px auto 20px;
113
-        max-width: 300px;
114
-        width: auto;
115
-        font-weight: $deepLinkingMobileHrefFontWeight;
116
-        font-size: $deepLinkingMobileHrefFontSize;
117
-    }
118
-
119
-    &__button {
120
-        border: 0;
121
-        height: $deepLinkingMobileButtonHeight;
122
-        line-height: $deepLinkingMobileButtonLineHeight;
123
-        margin: $deepLinkingMobileButtonMargin;
124
-        padding: 0px 10px 0px 10px;
125
-        max-width: 300px;
126
-        width: $deepLinkingMobileButtonWidth;
127
-        @include border-radius(3px);
128
-        background-color: $unsupportedBrowserButtonBgColor;
129
-        color: #505F79;
130
-        font-weight: $deepLinkingMobileButtonFontWeight;
131
-        font-size: $deepLinkingMobileButtonFontSize;
132
-
133
-        &:active {
134
-            background-color: $unsupportedBrowserButtonBgColor;
135
-        }
136
-
137
-        &_primary {
138
-            background-color: $primaryUnsupportedBrowserButtonBgColor;
139
-            color: #FFFFFF;
140
-            border-radius: $primaryDeepLinkingMobileButtonBorderRadius;
141
-            &:active {
142
-                background-color: $primaryUnsupportedBrowserButtonBgColor;
143
-            }
144
-        }
145
-    }
146
-
147
-    .deep-linking-dial-in {
148
-        display: none;
149
-
150
-        &.has-numbers {
151
-            align-items: center;
152
-            display: flex;
153
-            flex-direction: column;
154
-        }
155
-
156
-        .dial-in-numbers-list {
157
-            color: $unsupportedBrowserTextColor;
158
-            padding-left: 20px;
159
-        }
160
-
161
-        .dial-in-numbers-body {
162
-            vertical-align: top;
163
-        }
164
-    }
165
-}

+ 0
- 21
css/deep-linking/_no-mobile-app.scss 查看文件

@@ -1,21 +0,0 @@
1
-.no-mobile-app {
2
-    margin: 30% auto 0;
3
-    max-width: 25em;
4
-    text-align: center;
5
-    width: auto;
6
-
7
-    &__title {
8
-        border-bottom: 1px solid $inlayBorderColor;
9
-        color: $unsupportedBrowserTitleColor;
10
-        font-weight: 400;
11
-        letter-spacing: 0.5px;
12
-        padding-bottom: em(17, 24);
13
-    }
14
-
15
-    &__description {
16
-        font-size: $unsupportedBrowserTextSmallFontSize;
17
-        font-weight: 300;
18
-        letter-spacing: 1px;
19
-        margin-top: 1em;
20
-    }
21
-}

+ 0
- 31
css/filmstrip/_filmstrip_toolbar.scss 查看文件

@@ -1,31 +0,0 @@
1
-.filmstrip__toolbar {
2
-    @include flex();
3
-    flex-direction: column-reverse;
4
-    flex-wrap: nowrap;
5
-    position: relative;
6
-    width: $filmstripToggleButtonWidth;
7
-
8
-    button {
9
-        font-size: 14px;
10
-        line-height: 1.2;
11
-        text-align: center;
12
-        background: transparent;
13
-        opacity: 0.7;
14
-        height: auto;
15
-        width: 100%;
16
-        padding: 0;
17
-        margin: 0;
18
-        border: none;
19
-        outline: none;
20
-
21
-        -webkit-appearance: none;
22
-
23
-        &:hover {
24
-            opacity: 1;
25
-        }
26
-
27
-        i {
28
-            cursor: pointer;
29
-        }
30
-    }
31
-}

+ 0
- 142
css/filmstrip/_horizontal_filmstrip.scss 查看文件

@@ -1,142 +0,0 @@
1
-%align-right {
2
-    @include flex();
3
-    flex-direction: row-reverse;
4
-    flex-wrap: nowrap;
5
-    justify-content: flex-start;
6
-}
7
-
8
-.horizontal-filmstrip .filmstrip {
9
-    position: absolute;
10
-    bottom: 0;
11
-    right: 0;
12
-    padding: 10px 5px;
13
-    @extend %align-right;
14
-    transition: bottom .3s;
15
-    z-index: $filmstripVideosZ;
16
-    box-sizing: border-box;
17
-    width: 100%;
18
-    position: fixed;
19
-
20
-    /*
21
-     * Firefox sets flex items to min-height: auto and min-width: auto,
22
-     * preventing flex children from shrinking like they do on other browsers.
23
-     * Setting min-height and min-width 0 is a workaround for the issue so
24
-     * Firefox behaves like other browsers.
25
-     * https://bugzilla.mozilla.org/show_bug.cgi?id=1043520
26
-     */
27
-     @mixin minHWAutoFix() {
28
-        min-height: 0;
29
-        min-width: 0;
30
-    }
31
-
32
-    &.reduce-height {
33
-        bottom: calc(#{$newToolbarSizeWithPadding} + #{$scrollHeight});
34
-    }
35
-
36
-    &__videos {
37
-        @extend %align-right;
38
-        position:relative;
39
-        padding: 0;
40
-        /* The filmstrip should not be covered by the left toolbar. */
41
-        bottom: 0;
42
-        width:auto;
43
-        overflow: visible !important;
44
-
45
-        &#remoteVideos {
46
-            border: $thumbnailsBorder solid transparent;
47
-            transition: bottom 2s;
48
-            flex-grow: 1;
49
-            @include minHWAutoFix()
50
-        }
51
-
52
-        /**
53
-         * The local video identifier.
54
-         */
55
-        &#filmstripLocalVideo {
56
-            align-self: flex-end;
57
-            display: block;
58
-            margin-bottom: 8px;
59
-        }
60
-
61
-        &.hidden {
62
-            bottom: calc(-196px - #{$newToolbarSizeWithPadding});
63
-        }
64
-
65
-        .remote-videos-container {
66
-            display: flex;
67
-        }
68
-    }
69
-
70
-    /**
71
-     * Style the filmstrip videos in filmstrip-only mode.
72
-     */
73
-    &__videos-filmstripOnly {
74
-        margin-top: auto;
75
-        margin-bottom: auto;
76
-
77
-        .filmstrip__videos {
78
-            &#filmstripLocalVideo {
79
-                bottom: 0px;
80
-            }
81
-        }
82
-    }
83
-
84
-    .remote-videos-container {
85
-        transition: opacity 1s;
86
-    }
87
-
88
-    &.hide-videos {
89
-        .remote-videos-container {
90
-            opacity: 0;
91
-            pointer-events: none;
92
-        }
93
-    }
94
-
95
-    #filmstripRemoteVideos {
96
-        @include minHWAutoFix();
97
-
98
-        display: flex;
99
-        flex: 1;
100
-        width: auto;
101
-        justify-content: flex-end;
102
-        flex-direction: row;
103
-
104
-        #filmstripRemoteVideosContainer {
105
-            flex-direction: row-reverse;
106
-            /**
107
-             * Add padding as a hack for Firefox not to show scrollbars when
108
-             * unnecessary.
109
-             */
110
-            padding: 1px 0;
111
-            overflow-y: hidden;
112
-            overflow-x: scroll;
113
-        }
114
-    }
115
-
116
-    .videocontainer {
117
-        margin-bottom: 10px;
118
-    }
119
-}
120
-
121
-
122
-/**
123
- * Workarounds for Edge and Firefox not handling scrolling properly with
124
- * flex-direction: row-reverse.
125
- */
126
- @mixin undoRowReverseVideos() {
127
-    .horizontal-filmstrip {
128
-        #remoteVideos #filmstripRemoteVideos #filmstripRemoteVideosContainer {
129
-            flex-direction: row;
130
-        }
131
-    }
132
-}
133
-
134
-/** Firefox detection hack **/
135
-@-moz-document url-prefix() {
136
-    @include undoRowReverseVideos();
137
-}
138
-
139
-/** Edge detection hack **/
140
-@supports (-ms-ime-align:auto) {
141
-    @include undoRowReverseVideos();
142
-}

+ 0
- 51
css/filmstrip/_small_video.scss 查看文件

@@ -1,51 +0,0 @@
1
-.filmstrip__videos .videocontainer {
2
-    display: inline-block;
3
-    position: relative;
4
-    background-size: contain;
5
-    border: $thumbnailVideoBorder solid transparent;
6
-    border-radius: $borderRadius;
7
-    margin: 0 $thumbnailVideoMargin;
8
-
9
-    &.videoContainerFocused, &:hover {
10
-        cursor: hand;
11
-    }
12
-
13
-    /**
14
-     * Focused video thumbnail.
15
-     */
16
-    &.videoContainerFocused {
17
-        border: $thumbnailVideoBorder solid $videoThumbnailSelected;
18
-        box-shadow: inset 0 0 3px $videoThumbnailSelected,
19
-        0 0 3px $videoThumbnailSelected;
20
-    }
21
-
22
-    .remotevideomenu > .icon-menu {
23
-        display: none;
24
-    }
25
-
26
-    /**
27
-     * Hovered video thumbnail.
28
-     */
29
-    &:hover:not(.videoContainerFocused):not(.active-speaker) {
30
-        cursor: hand;
31
-        border: $thumbnailVideoBorder solid $videoThumbnailHovered;
32
-        box-shadow: inset 0 0 3px $videoThumbnailHovered,
33
-        0 0 3px $videoThumbnailHovered;
34
-
35
-        .remotevideomenu > .icon-menu {
36
-            display: inline-block;
37
-        }
38
-    }
39
-
40
-    & > video {
41
-        cursor: hand;
42
-        border-radius: $borderRadius;
43
-        object-fit: cover;
44
-        overflow: hidden;
45
-    }
46
-
47
-    .presence-label {
48
-        position: absolute;
49
-        z-index: $zindex3;
50
-    }
51
-}

+ 0
- 114
css/filmstrip/_tile_view.scss 查看文件

@@ -1,114 +0,0 @@
1
-/**
2
- * CSS styles that are specific to the filmstrip that shows the thumbnail tiles.
3
- */
4
-.tile-view {
5
-    /**
6
-     * Add a border around the active speaker to make the thumbnail easier to
7
-     * see.
8
-     */
9
-    .active-speaker {
10
-        box-shadow: 0 0 5px 3px $videoThumbnailSelected
11
-    }
12
-
13
-    #filmstripRemoteVideos {
14
-        align-items: center;
15
-        box-sizing: border-box;
16
-        display: flex;
17
-        flex-direction: column;
18
-        height: calc(100vh - 200px);
19
-        width: 100vw;
20
-        margin: 100px 0px;
21
-    }
22
-
23
-    .filmstrip__videos .videocontainer {
24
-        &:not(.active-speaker),
25
-        &:hover:not(.active-speaker) {
26
-            border: none;
27
-            box-shadow: none;
28
-        }
29
-    }
30
-
31
-    #remoteVideos {
32
-        /**
33
-         * Height is modified with an inline style in horizontal filmstrip mode
34
-         * so !important is used to override that.
35
-         */
36
-        height: 100% !important;
37
-        width: 100%;
38
-    }
39
-
40
-    .filmstrip {
41
-        align-items: center;
42
-        display: flex;
43
-        height: 100%;
44
-        justify-content: center;
45
-        left: 0;
46
-        position: fixed;
47
-        top: 0;
48
-        width: 100%;
49
-        z-index: $filmstripVideosZ
50
-    }
51
-
52
-    /**
53
-     * Regardless of the user setting, do not let the filmstrip be in a hidden
54
-     * state.
55
-     */
56
-    .filmstrip__videos.hidden {
57
-        display: block;
58
-    }
59
-
60
-    #filmstripRemoteVideos {
61
-        box-sizing: border-box;
62
-
63
-        /**
64
-         * Allow vertical scrolling of the thumbnails.
65
-         */
66
-        overflow-x: hidden;
67
-        overflow-y: auto;
68
-    }
69
-
70
-    /**
71
-     * The size of the thumbnails should be set with javascript, based on
72
-     * desired column count and window width. The rows are created using flex
73
-     * and allowing the thumbnails to wrap.
74
-     */
75
-    #filmstripRemoteVideosContainer {
76
-        align-content: center;
77
-        align-items: center;
78
-        box-sizing: border-box;
79
-        display: flex;
80
-        flex-wrap: wrap;
81
-        margin-top: auto;
82
-        margin-bottom: auto;
83
-        justify-content: center;
84
-
85
-        .videocontainer {
86
-            border: 0;
87
-            box-sizing: border-box;
88
-            display: block;
89
-            margin: 5px;
90
-        }
91
-
92
-        video {
93
-            object-fit: contain;
94
-        }
95
-    }
96
-
97
-    .has-overflow#filmstripRemoteVideosContainer {
98
-        align-content: baseline;
99
-    }
100
-
101
-    .has-overflow .videocontainer {
102
-        align-self: baseline;
103
-    }
104
-
105
-    /**
106
-     * Firefox flex acts a little differently. To make sure the bottom row of
107
-     * thumbnails is not overlapped by the horizontal toolbar, margin is added
108
-     * to the local thumbnail to keep it from the bottom of the screen. It is
109
-     * assumed the local thumbnail will always be on the bottom row.
110
-     */
111
-    .has-overflow #localVideoContainer {
112
-        margin-bottom: 100px !important;
113
-    }
114
-}

+ 0
- 57
css/filmstrip/_tile_view_overrides.scss 查看文件

@@ -1,57 +0,0 @@
1
-/**
2
- * Various overrides outside of the filmstrip to style the app to support a
3
- * tiled thumbnail experience.
4
- */
5
-.tile-view {
6
-    /**
7
-     * Let the avatar grow with the tile.
8
-     */
9
-    .avatar-container {
10
-        max-height: initial;
11
-        max-width: initial;
12
-    }
13
-
14
-    /**
15
-     * Hide various features that should not be displayed while in tile view.
16
-     */
17
-    #dominantSpeaker,
18
-    #filmstripLocalVideoThumbnail,
19
-    #largeVideoElementsContainer,
20
-    #sharedVideo,
21
-    .filmstrip__toolbar {
22
-        display: none;
23
-    }
24
-
25
-    #remoteConnectionMessage,
26
-    .watermark {
27
-        z-index: $filmstripVideosZ + 1;
28
-    }
29
-
30
-    /**
31
-     * The follow styling uses !important to override inline styles set with
32
-     * javascript.
33
-     *
34
-     * TODO: These overrides should be more easy to remove and should be removed
35
-     * when the components are in react so their rendering done declaratively,
36
-     * making conditional styling easier to apply.
37
-     */
38
-    #largeVideoElementsContainer,
39
-    #remoteConnectionMessage,
40
-    #remotePresenceMessage {
41
-        display: none !important;
42
-    }
43
-    #largeVideoContainer {
44
-        background-color: $defaultBackground !important;
45
-    }
46
-
47
-    /**
48
-     * Thumbnail popover menus can overlap other thumbnails. Setting an auto
49
-     * z-index will allow AtlasKit InlineDialog's large z-index to be
50
-     * respected and thereby display over elements in other thumbnails,
51
-     * specifically the various status icons.
52
-     */
53
-    .remotevideomenu,
54
-    .videocontainer__toptoolbar {
55
-        z-index: auto;
56
-    }
57
-}

+ 0
- 207
css/filmstrip/_vertical_filmstrip.scss 查看文件

@@ -1,207 +0,0 @@
1
-.vertical-filmstrip .filmstrip {
2
-    &.hide-videos {
3
-        .remote-videos-container {
4
-            opacity: 0;
5
-            pointer-events: none;
6
-        }
7
-    }
8
-
9
-    /*
10
-     * Firefox sets flex items to min-height: auto and min-width: auto,
11
-     * preventing flex children from shrinking like they do on other browsers.
12
-     * Setting min-height and min-width 0 is a workaround for the issue so
13
-     * Firefox behaves like other browsers.
14
-     * https://bugzilla.mozilla.org/show_bug.cgi?id=1043520
15
-     */
16
-    @mixin minHWAutoFix() {
17
-        min-height: 0;
18
-        min-width: 0;
19
-    }
20
-
21
-    @extend %align-right;
22
-    align-items: flex-end;
23
-    bottom: 0;
24
-    box-sizing: border-box;
25
-    display: flex;
26
-    flex-direction: column-reverse;
27
-    height: 100%;
28
-    width: 100%;
29
-    padding: ($desktopAppDragBarHeight - 5px) 5px 10px;
30
-    /**
31
-     * fixed positioning is necessary for remote menus and tooltips to pop
32
-     * out of the scrolling filmstrip. AtlasKit dialogs and tooltips use
33
-     * a library called popper which will position its elements fixed if
34
-     * any parent is also fixed.
35
-     */
36
-    position: fixed;
37
-    top: 0;
38
-    transition: height .3s ease-in;
39
-    right: 0;
40
-    z-index: $filmstripVideosZ;
41
-
42
-    &.reduce-height {
43
-        height: calc(100% - #{$newToolbarSizeWithPadding});
44
-    }
45
-
46
-    /**
47
-     * Hide videos by making them slight to the right.
48
-     */
49
-    .filmstrip__videos {
50
-        @extend %align-right;
51
-        bottom: 0;
52
-        padding: 0;
53
-        position:relative;
54
-        right: 0;
55
-        width: auto;
56
-
57
-        &.hidden {
58
-            bottom: auto;
59
-            right: -196px;
60
-        }
61
-
62
-        /**
63
-         * An id selector is used to match id specificity with existing
64
-         * filmstrip styles.
65
-         */
66
-        &#remoteVideos {
67
-            border: $thumbnailsBorder solid transparent;
68
-            padding-left: 0;
69
-            transition: right 2s;
70
-            width: 100%;
71
-        }
72
-    }
73
-
74
-    /**
75
-     * Re-styles the local Video to better fit vertical filmstrip layout.
76
-     */
77
-    #filmstripLocalVideo {
78
-        align-self: initial;
79
-        bottom: 5px;
80
-        display: flex;
81
-        flex-direction: column-reverse;
82
-        height: auto;
83
-        justify-content: flex-start;
84
-
85
-        #filmstripLocalVideoThumbnail {
86
-            width: calc(100% - 15px);
87
-
88
-            .videocontainer {
89
-                height: 0px;
90
-                width: 100%;
91
-    }
92
-        }
93
-
94
-    }
95
-
96
-    /**
97
-     * Remove unnecssary padding that is normally used to prevent horizontal
98
-     * filmstrip from overlapping the left edge of the screen.
99
-     */
100
-    #filmstripLocalVideo,
101
-    #filmstripRemoteVideos {
102
-        padding: 0;
103
-    }
104
-
105
-    #filmstripRemoteVideos {
106
-        @include minHWAutoFix();
107
-
108
-        display: flex;
109
-        flex: 1;
110
-        flex-direction: column-reverse;
111
-        height: auto;
112
-        overflow-x: hidden;
113
-        overflow-y: scroll;
114
-
115
-        #filmstripRemoteVideosContainer {
116
-            @include minHWAutoFix();
117
-            flex-direction: column-reverse;
118
-            overflow: visible;
119
-            width: calc(100% - 8px); // 8px for margin + border of the thumbnails
120
-
121
-            .videocontainer {
122
-                height: 0px;
123
-                width: 100%;
124
-            }
125
-        }
126
-    }
127
-
128
-    #remoteVideos {
129
-        @include minHWAutoFix();
130
-
131
-        flex-direction: column;
132
-        flex-grow: 1;
133
-    }
134
-
135
-    .remote-videos-container {
136
-        display: flex;
137
-        transition: opacity 1s;
138
-    }
139
-
140
-    .hide-scrollbar#filmstripRemoteVideos {
141
-        margin-right: 7px; // Scrollbar size
142
-        &::-webkit-scrollbar {
143
-            display: none;
144
-        }
145
-    }
146
-}
147
-
148
-/**
149
- * Override other styles to support vertical filmstrip mode.
150
- */
151
-.filmstrip-only .vertical-filmstrip {
152
-    .filmstrip {
153
-        flex-direction: row-reverse;
154
-    }
155
-    .filmstrip__videos-filmstripOnly {
156
-        margin-top: auto;
157
-        margin-bottom: auto;
158
-        height: 100%;
159
-    }
160
-
161
-    .filmstrip__videos {
162
-        &#filmstripLocalVideo {
163
-            bottom: 0px;
164
-        }
165
-    }
166
-}
167
-
168
-/**
169
- * Workarounds for Edge and Firefox not handling scrolling properly with
170
- * flex-direction: column-reverse. The remove videos in filmstrip should
171
- * start scrolling from the bottom of the filmstrip, but in those browsers the
172
- * scrolling won't happen. Per W3C spec, scrolling should happen from the
173
- * bottom. As such, use css hacks to get around the css issue, with the intent
174
- * being to remove the hacks as the spec is supported.
175
- */
176
-@mixin undoColumnReverseVideos() {
177
-    .vertical-filmstrip {
178
-        #remoteVideos #filmstripRemoteVideos #filmstripRemoteVideosContainer {
179
-            flex-direction: column;
180
-        }
181
-    }
182
-}
183
-
184
-/**
185
- * FF does not include the scroll width when calculating the size of the content. That's why we need to include
186
- * ourselves the width of the scroll so that the remote videos are aligned with the local one.
187
- */
188
-@mixin filmstripSizeWithoutScroll {
189
-    .vertical-filmstrip {
190
-        #remoteVideos #filmstripRemoteVideos {
191
-            #filmstripRemoteVideosContainer {
192
-                width: calc(100% - 15px) // 8 px - margins + border of the thumbnails; 7px - for the scroll
193
-            }
194
-        }
195
-    }
196
-}
197
-
198
-/** Firefox detection hack **/
199
-@-moz-document url-prefix() {
200
-    @include undoColumnReverseVideos();
201
-    @include filmstripSizeWithoutScroll();
202
-}
203
-
204
-/** Edge detection hack **/
205
-@supports (-ms-ime-align:auto) {
206
-    @include undoColumnReverseVideos();
207
-}

+ 0
- 110
css/filmstrip/_vertical_filmstrip_overrides.scss 查看文件

@@ -1,110 +0,0 @@
1
-/**
2
- * Rotate the hide filmstrip icon so it points towards the right edge
3
- * of the screen.
4
- */
5
-.vertical-filmstrip .filmstrip__toolbar {
6
-    transform: rotate(-90deg);
7
-}
8
-
9
-/**
10
- * Overrides for video containers that should not be centered aligned to avoid=
11
- * clashing with the filmstrip.
12
- */
13
-.vertical-filmstrip #etherpad,
14
-.vertical-filmstrip #sharedvideo {
15
-    text-align: left;
16
-}
17
-
18
-/**
19
- * Overrides for small videos in vertical filmstrip mode.
20
- */
21
-.vertical-filmstrip .filmstrip__videos .videocontainer {
22
-    /**
23
-     * Move status icons to the bottom right of the thumbnail.
24
-     */
25
-    .videocontainer__toolbar {
26
-        /**
27
-         * FIXME: disable pointer to allow any elements moved below to still
28
-         * be clickable. The real fix would to make sure those moved elements
29
-         * are actually part of the toolbar instead of positioning being faked.
30
-         */
31
-        pointer-events: none;
32
-        text-align: right;
33
-
34
-        > div {
35
-            pointer-events: none;
36
-        }
37
-
38
-        .right {
39
-            float: none;
40
-            margin: auto;
41
-        }
42
-
43
-        .toolbar-icon {
44
-            pointer-events: all;
45
-        }
46
-    }
47
-
48
-    /**
49
-     * Apply hardware acceleration to prevent flickering on scroll. The
50
-     * selectors are specific to icon wrappers to prevent fixed position dialogs
51
-     * and tooltips from getting a new location context due to translate3d.
52
-     */
53
-    .connection-indicator,
54
-    .remote-video-menu-trigger,
55
-    .indicator-icon-container {
56
-        transform: translate3d(0, 0, 0);
57
-    }
58
-
59
-    .indicator-icon-container {
60
-        display: inline-block;
61
-    }
62
-
63
-    .indicator-container {
64
-        float: none;
65
-    }
66
-
67
-    /**
68
-     * Move the remote video menu trigger to the bottom left of the video
69
-     * thumbnail.
70
-     */
71
-    .remotevideomenu,
72
-    .remote-video-menu-trigger {
73
-        bottom: 0;
74
-        left: 0;
75
-        top: auto;
76
-        right: auto;
77
-    }
78
-
79
-    .remote-video-menu-trigger {
80
-        margin-bottom: 7px;
81
-        margin-left: $remoteVideoMenuIconMargin;
82
-    }
83
-}
84
-
85
-/**
86
- * Overrides for quality labels in filmstrip only mode. The styles adjust the
87
- * labels' positioning as the filmstrip itself or filmstrip's remote videos
88
- * appear and disappear.
89
- *
90
- * The class with-filmstrip is for when the filmstrip is visible.
91
- * The class without-filmstrip is for when the filmstrip has been toggled to
92
- * be hidden.
93
- * The class opening is for when the filmstrip is transitioning from hidden
94
- * to visible.
95
- */
96
-.vertical-filmstrip .large-video-labels {
97
-    &.with-filmstrip {
98
-        right: 150px;
99
-    }
100
-
101
-    &.with-filmstrip.opening {
102
-        transition: 0.9s;
103
-        transition-timing-function: ease-in-out;
104
-    }
105
-
106
-    &.without-filmstrip {
107
-        transition: 1.2s ease-in-out;
108
-        transition-delay: 0.1s;
109
-    }
110
-}

+ 0
- 94
css/main.scss 查看文件

@@ -1,94 +0,0 @@
1
-/* Functions BEGIN */
2
-
3
-@import 'functions';
4
-
5
-/* Functions END */
6
-
7
-/* Variables BEGIN */
8
-
9
-@import 'variables';
10
-
11
-/* Variables END */
12
-
13
-/* Mixins BEGIN */
14
-
15
-@import "mixins";
16
-
17
-/* Mixins END */
18
-
19
-/* Animations END */
20
-
21
-/* Flags BEGIN */
22
-$flagsImagePath: "../images/";
23
-@import "../node_modules/bc-css-flags/dist/css/bc-css-flags.scss";
24
-/* Flags END */
25
-
26
-/* Modules BEGIN */
27
-
28
-@import 'aui_reset';
29
-@import 'atlaskit_overrides';
30
-@import 'base';
31
-@import 'utils';
32
-@import 'overlay/overlay';
33
-@import 'inlay';
34
-@import 'reload_overlay/reload_overlay';
35
-@import 'mini_toolbox';
36
-@import 'modals/desktop-picker/desktop-picker';
37
-@import 'modals/device-selection/device-selection';
38
-@import 'modals/dialog';
39
-@import 'modals/feedback/feedback';
40
-@import 'modals/invite/info';
41
-@import 'modals/settings/settings';
42
-@import 'modals/speaker_stats/speaker_stats';
43
-@import 'modals/video-quality/video-quality';
44
-@import 'modals/local-recording/local-recording';
45
-@import 'videolayout_default';
46
-@import 'notice';
47
-@import 'subject';
48
-@import 'participants-count';
49
-@import 'popup_menu';
50
-@import 'recording';
51
-@import 'login_menu';
52
-@import 'chat';
53
-@import 'ringing/ringing';
54
-@import 'welcome_page';
55
-@import 'welcome_page_content';
56
-@import 'welcome_page_settings_toolbar';
57
-@import 'toolbars';
58
-@import 'jquery.contextMenu';
59
-@import 'keyboard-shortcuts';
60
-@import 'redirect_page';
61
-@import 'components/form-control';
62
-@import 'components/link';
63
-@import 'components/button-control';
64
-@import 'components/input-control';
65
-@import 'components/input-slider';
66
-@import "connection-info";
67
-@import 'aui-components/dropdown';
68
-@import '404';
69
-@import 'policy';
70
-@import 'popover';
71
-@import 'filmstrip/filmstrip_toolbar';
72
-@import 'filmstrip/horizontal_filmstrip';
73
-@import 'filmstrip/small_video';
74
-@import 'filmstrip/tile_view';
75
-@import 'filmstrip/tile_view_overrides';
76
-@import 'filmstrip/vertical_filmstrip';
77
-@import 'filmstrip/vertical_filmstrip_overrides';
78
-@import 'unsupported-browser/main';
79
-@import 'modals/invite/add-people';
80
-@import 'deep-linking/main';
81
-@import 'transcription-subtitles';
82
-@import '_meetings_list.scss';
83
-@import 'navigate_section_list';
84
-@import 'third-party-branding/google';
85
-@import 'third-party-branding/microsoft';
86
-@import 'avatar';
87
-@import 'promotional-footer';
88
-@import 'chrome-extension-banner';
89
-@import 'settings-button';
90
-@import 'meter';
91
-@import 'audio-preview';
92
-@import 'video-preview';
93
-
94
-/* Modules END */

+ 0
- 145
css/modals/_dialog.scss 查看文件

@@ -1,145 +0,0 @@
1
-.dialog {
2
-    box-sizing: border-box;
3
-    height: auto;
4
-    min-height: 131px;
5
-    overflow: visible;
6
-    visibility: visible;
7
-    width: 400px;
8
-
9
-    h1, h2, h3, h4, h5, h6 {
10
-        color: $auiDialogColor;
11
-    }
12
-
13
-    .aui {
14
-
15
-        &-dialog2 {
16
-            &-header, &-footer {
17
-                background-color: $auiDialogBg;
18
-                border: none;
19
-            }
20
-
21
-            &-header {
22
-                border-bottom: 1px solid $auiBorderColor;
23
-                border-radius: 5px 5px 0 0;
24
-                box-sizing: border-box;
25
-                color: #333;
26
-                display: table;
27
-                font-weight: normal;
28
-                height: em(58, 12);
29
-                margin-top: -69px;
30
-                padding: 0 20px;
31
-                width: 100%;
32
-
33
-                h2 {
34
-                    font-size: em(20, 12);
35
-                    font-weight: $dialogTitleFontWeight;
36
-                    color: $auiDialogColor;
37
-                }
38
-
39
-                &-main {
40
-                    display: table-cell;
41
-                    padding-right: 0;
42
-                    max-width: 400px;
43
-                    overflow: hidden;
44
-                    text-overflow: ellipsis;
45
-                    vertical-align: middle;
46
-                    white-space: nowrap;
47
-
48
-                }
49
-            }
50
-
51
-            &-footer {
52
-                border-top: 1px solid $auiBorderColor;
53
-                border-radius: 0 0 5px 5px;
54
-                box-sizing: border-box;
55
-                height: 51px;
56
-                overflow: hidden;
57
-                padding: 10px 20px;
58
-                width: 100%;
59
-
60
-                &:empty {
61
-                    height: 5px;
62
-                    padding: 0;
63
-                }
64
-            }
65
-
66
-            &-content {
67
-                background-color: $auiDialogBg;
68
-                box-sizing: border-box;
69
-                color: $auiDialogColor;
70
-                font-size: em(14, 12);
71
-                overflow: auto;
72
-                max-height: 100%;
73
-                padding: 20px;
74
-
75
-                p,span, h3 {
76
-                    font-weight: $labelFontWeight;
77
-                }
78
-
79
-                &:last-child {
80
-                    border-bottom-right-radius: 5px;
81
-                    border-bottom-left-radius: 5px;
82
-                }
83
-
84
-                &:first-child {
85
-                    border-top-right-radius: 5px;
86
-                    border-top-left-radius: 5px;
87
-                }
88
-            }
89
-        }
90
-
91
-        &-hide {
92
-            display: none;
93
-        }
94
-    }
95
-
96
-    .input-control {
97
-        background-color: $auiDialogContentBg;
98
-        color: $auiDialogColor;
99
-    }
100
-
101
-    .form-control:not(:last-child) {
102
-        border-bottom: 1px solid $auiBorderColor;
103
-    }
104
-}
105
-
106
-@media all and (max-width: 420px) {
107
-  .aui-dialog2-small .aui-dialog2-content {
108
-    height: 100%;
109
-  }
110
-}
111
-
112
-.modal-dialog-form {
113
-    margin-top: 5px !important;
114
-
115
-    .input-control {
116
-        background: $modalMockAKInputBackground;
117
-        border: $modalMockAKInputBorder;
118
-        color: inherit;
119
-    }
120
-
121
-    &-error {
122
-        margin-bottom: 8px;
123
-    }
124
-}
125
-.modal-dialog-footer {
126
-    font-size: $modalButtonFontSize;
127
-}
128
-
129
-/**
130
- * Styling inline dialog errors.
131
- */
132
-.inline-dialog-error {
133
-    margin-top: 16px;
134
-
135
-    &-text {
136
-        color: $dialogErrorText;
137
-        margin-bottom: 8px;
138
-        text-align: center;
139
-    }
140
-
141
-    &-button {
142
-        display: block;
143
-        margin: 16px auto 0 auto;
144
-    }
145
-}

+ 0
- 65
css/modals/desktop-picker/_desktop-picker.scss 查看文件

@@ -1,65 +0,0 @@
1
-.desktop-picker-pane {
2
-    height: 320px;
3
-    overflow-x: hidden;
4
-    overflow-y: auto;
5
-    width: 100%;
6
-
7
-    &.source-type-screen {
8
-        .desktop-picker-source {
9
-            margin-left: auto;
10
-            margin-right: auto;
11
-            width: 50%;
12
-        }
13
-
14
-        .desktop-source-preview-thumbnail {
15
-            width: 100%;
16
-        }
17
-
18
-        .desktop-source-preview-label {
19
-            display: none;
20
-        }
21
-    }
22
-
23
-    &.source-type-window {
24
-        .desktop-picker-source {
25
-            display: inline-block;
26
-            width: 30%;
27
-        }
28
-    }
29
-
30
-    &-spinner {
31
-        justify-content: center;
32
-        display: flex;
33
-        height: 100%;
34
-        align-items: center;
35
-    }
36
-}
37
-
38
-.desktop-picker-source {
39
-    margin-top: 10px;
40
-    text-align: center;
41
-
42
-    &.is-selected {
43
-        .desktop-source-preview-image-container {
44
-            background: rgba(255,255,255,0.3);
45
-            border-radius: $borderRadius;
46
-        }
47
-    }
48
-}
49
-
50
-.desktop-source-preview-label {
51
-    margin-top: 3px;
52
-    overflow: hidden;
53
-    text-overflow: ellipsis;
54
-    white-space: nowrap;
55
-}
56
-
57
-.desktop-source-preview-thumbnail {
58
-    box-shadow: 5px 5px 5px grey;
59
-    height: auto;
60
-    max-width: 100%;
61
-}
62
-
63
-.desktop-source-preview-image-container {
64
-    padding: 10px;
65
-}

+ 0
- 131
css/modals/device-selection/_device-selection.scss 查看文件

@@ -1,131 +0,0 @@
1
-.device-selection {
2
-    .device-selectors {
3
-        font-size: 14px;
4
-
5
-        > div {
6
-            display: block;
7
-            margin-bottom: 4px;
8
-        }
9
-
10
-        .device-selector-icon {
11
-            align-self: center;
12
-            color: inherit;
13
-            font-size: 20px;
14
-            margin-left: 3px;
15
-        }
16
-
17
-        .device-selector-label {
18
-            margin-bottom: 1px;
19
-        }
20
-
21
-        /* device-selector-trigger stylings attempt to mimic AtlasKit button */
22
-        .device-selector-trigger {
23
-            background-color: #0E1624;
24
-            border: 1px solid #455166;
25
-            border-radius: 5px;
26
-            display: flex;
27
-            height: 2.3em;
28
-            justify-content: space-between;
29
-            line-height: 2.3em;
30
-            overflow: hidden;
31
-            padding: 0 8px;
32
-        }
33
-        .device-selector-trigger-disabled {
34
-            .device-selector-trigger {
35
-                color: #a5adba;
36
-                cursor: default;
37
-            }
38
-        }
39
-
40
-        .device-selector-trigger-text {
41
-            overflow: hidden;
42
-            margin-left: 8px;
43
-            text-overflow: ellipsis;
44
-            white-space: nowrap;
45
-            width: 100%;
46
-        }
47
-    }
48
-
49
-    .device-selection-column {
50
-        box-sizing: border-box;
51
-        display: inline-block;
52
-        vertical-align: top;
53
-
54
-        &.column-selectors {
55
-            margin-left: 15px;
56
-            width: 45%;
57
-        }
58
-
59
-        &.column-video {
60
-            width: 50%;
61
-        }
62
-    }
63
-
64
-    .device-selection-video-container {
65
-        border-radius: 3px;
66
-        margin-bottom: 5px;
67
-
68
-        .video-input-preview {
69
-            margin-top: 2px;
70
-            position: relative;
71
-
72
-            > video {
73
-                border-radius: 3px;
74
-            }
75
-
76
-            .video-input-preview-error {
77
-                color: $participantNameColor;
78
-                display: none;
79
-                left: 0;
80
-                position: absolute;
81
-                right: 0;
82
-                text-align: center;
83
-                top: 50%;
84
-            }
85
-
86
-            &.video-preview-has-error {
87
-                background: black;
88
-
89
-                .video-input-preview-error {
90
-                    display: block;
91
-                }
92
-            }
93
-
94
-            .video-input-preview-display {
95
-                height: auto;
96
-                overflow: hidden;
97
-                width: 100%;
98
-            }
99
-        }
100
-    }
101
-
102
-    .audio-output-preview {
103
-        font-size: 14px;
104
-
105
-        a {
106
-            color: #2684FF;
107
-            cursor: pointer;
108
-            text-decoration: none;
109
-        }
110
-
111
-        a:hover {
112
-            color: #B3D4FF;
113
-        }
114
-    }
115
-
116
-    .audio-input-preview {
117
-        background: #1B2638;
118
-        border-radius: 5px;
119
-        height: 8px;
120
-
121
-        .audio-input-preview-level {
122
-            background: #4C9AFF;
123
-            border-radius: 5px;
124
-            height: 100%;
125
-            -webkit-transition: width .1s ease-in-out;
126
-            -moz-transition: width .1s ease-in-out;
127
-            -o-transition: width .1s ease-in-out;
128
-            transition: width .1s ease-in-out;
129
-        }
130
-    }
131
-}

+ 0
- 98
css/modals/feedback/_feedback.scss 查看文件

@@ -1,98 +0,0 @@
1
-@-webkit-keyframes shake-rotate {
2
-    0% {
3
-        -webkit-transform:scale(1) rotate(0deg);
4
-        transform:scale(1) rotate(0deg)
5
-    }
6
-
7
-    50% {
8
-        -webkit-transform:scale(.8) rotate(-5deg);
9
-        transform:scale(.8) rotate(-5deg)
10
-    }
11
-
12
-    to {
13
-        -webkit-transform:scale(1) rotate(3deg);
14
-        transform:scale(1) rotate(3deg)
15
-    }
16
-}
17
-
18
-@keyframes shake-rotate {
19
-    0% {
20
-        -webkit-transform:scale(1) rotate(0deg);
21
-        transform:scale(1) rotate(0deg)
22
-    }
23
-
24
-    50% {
25
-        -webkit-transform:scale(.8) rotate(-5deg);
26
-        transform:scale(.8) rotate(-5deg)
27
-    }
28
-
29
-    to {
30
-        -webkit-transform:scale(1) rotate(3deg);
31
-        transform:scale(1) rotate(3deg)
32
-    }
33
-}
34
-
35
-.shake-rotate {
36
-    display: inline-block;
37
-
38
-    -webkit-animation-duration: .4s;
39
-    animation-duration: .4s;
40
-    -webkit-animation-iteration-count: infinite;
41
-    animation-iteration-count: infinite;
42
-    -webkit-animation-name: shake-rotate;
43
-    animation-name: shake-rotate;
44
-    -webkit-animation-timing-function: ease-in-out;
45
-    animation-timing-function: ease-in-out
46
-}
47
-
48
-.feedback-dialog {
49
-    .details {
50
-        textarea {
51
-            min-height: 100px;
52
-        }
53
-    }
54
-
55
-    .input-control {
56
-        background-color: $feedbackInputBg;
57
-        color: $feedbackInputTextColor;
58
-
59
-        &::-webkit-input-placeholder {
60
-            color: $feedbackInputPlaceholderColor;
61
-        }
62
-        &::-moz-placeholder {  /* Firefox 19+ */
63
-            color: $feedbackInputPlaceholderColor;
64
-        }
65
-        &:-ms-input-placeholder {
66
-            color: $feedbackInputPlaceholderColor;
67
-        }
68
-    }
69
-
70
-    .rating {
71
-        line-height: 1.2;
72
-        margin-top: 10px;
73
-        text-align: center;
74
-
75
-        .star-label {
76
-            font-size: 14px;
77
-            height: 16px;
78
-        }
79
-
80
-        .star-btn {
81
-            color: inherit;
82
-            cursor: pointer;
83
-            display: inline-block;
84
-            font-size: 34px;
85
-            outline: none;
86
-            position: relative;
87
-            text-decoration: none;
88
-            @include transition(all .2s ease);
89
-
90
-            &.active,
91
-            &:hover,
92
-            &.starHover {
93
-                color: #36B37E;
94
-            };
95
-
96
-        }
97
-    }
98
-}

+ 0
- 49
css/modals/invite/_add-people.scss 查看文件

@@ -1,49 +0,0 @@
1
-/**
2
- * Styles errors and links in the AddPeopleDialog.
3
- */
4
-.modal-dialog-form {
5
-    .add-people-form-wrap {
6
-
7
-        .error {
8
-            padding-left: 5px;
9
-
10
-            a {
11
-                padding-left: 5px;
12
-            }
13
-        }
14
-
15
-        .add-telephone-icon {
16
-            display: flex;
17
-            height: 28px;
18
-            transform: scaleX(-1);
19
-            width: 28px;
20
-
21
-            i {
22
-                line-height: 28px;
23
-                margin: auto;
24
-            }
25
-        }
26
-
27
-        .footer-text-wrap {
28
-            display: flex;
29
-        }
30
-
31
-        .footer-telephone-icon {
32
-            display: flex;
33
-            transform: scaleX(-1);
34
-            padding-left: 10px;
35
-
36
-            i {
37
-                line-height: 20px;
38
-                margin: auto;
39
-            }
40
-        }
41
-    }
42
-}
43
-
44
-/**
45
- * Styles errors in the MultiSelectAutocomplete.
46
- */
47
-.autocomplete-error {
48
-    min-width: 260px;
49
-}

+ 0
- 232
css/modals/invite/_info.scss 查看文件

@@ -1,232 +0,0 @@
1
-.info-dialog {
2
-    cursor: default;
3
-    display: flex;
4
-    font-size: 14px;
5
-
6
-    .info-dialog-action-link {
7
-        display: inline-block;
8
-        line-height: 1.5em;
9
-
10
-        a {
11
-            cursor: pointer;
12
-            vertical-align: middle;
13
-        }
14
-    }
15
-
16
-    .info-dialog-action-link:before {
17
-        color: $linkFontColor;
18
-        content: '\2022';
19
-        font-size: 1.5em;
20
-        padding: 0 10px;
21
-        vertical-align: middle;
22
-    }
23
-
24
-    .info-dialog-action-link:first-child:before {
25
-        content: '';
26
-        padding: 0;
27
-    }
28
-
29
-    .info-dialog-action-links {
30
-        font-weight: bold;
31
-        margin-top: 10px;
32
-        white-space: nowrap;
33
-    }
34
-
35
-    .info-dialog-action-separator {
36
-        display: inline-block;
37
-    }
38
-
39
-    .info-dialog-copy-element {
40
-        opacity: 0;
41
-        pointer-events: none;
42
-        position: absolute;
43
-        -webkit-user-select: text;
44
-        user-select: text;
45
-    }
46
-
47
-    .info-dialog-column {
48
-        margin-right: 10px;
49
-        overflow: hidden;
50
-
51
-        a,
52
-        a:active,
53
-        a:focus,
54
-        a:hover {
55
-            text-decoration: none;
56
-        }
57
-    }
58
-
59
-    .info-dialog-conference-url,
60
-    .info-dialog-live-stream-url {
61
-        width: max-content;
62
-        width: -moz-max-content;
63
-        width: -webkit-max-content;
64
-        word-break: break-all;
65
-        max-width: 400px;
66
-        display: flex;
67
-        align-items: center;
68
-    }
69
-
70
-    .info-dialog-dial-in {
71
-        word-break: break-all;
72
-
73
-        .conference-id,
74
-        .phone-number {
75
-            user-select: text;
76
-        }
77
-    }
78
-
79
-    .info-dialog-icon {
80
-        color: #6453C0;
81
-        font-size: 16px;
82
-        min-width: 30px;
83
-    }
84
-
85
-    .info-dialog-url-text,
86
-    .info-dialog-url-text:hover {
87
-        color: inherit;
88
-        cursor: inherit;
89
-    }
90
-
91
-    .info-dialog-url-icon {
92
-        display: inline-block;
93
-        margin-left: 5px;
94
-
95
-        svg {
96
-            cursor: pointer;
97
-        }
98
-    }
99
-
100
-    .info-dialog-title {
101
-        font-weight: bold;
102
-        margin-bottom: 10px;
103
-    }
104
-
105
-    .info-dialog-password,
106
-    .info-password,
107
-    .info-password-form {
108
-        align-items: baseline;
109
-        display: flex;
110
-    }
111
-
112
-    .info-label {
113
-        font-weight: bold;
114
-    }
115
-
116
-    .info-password-field {
117
-        overflow: hidden;
118
-        text-overflow: ellipsis;
119
-        white-space: nowrap;
120
-    }
121
-
122
-    .info-password-none,
123
-    .info-password-remote {
124
-        opacity: 0.5;
125
-    }
126
-
127
-    .info-password-input {
128
-        background-color: transparent;
129
-        border: none;
130
-        color: inherit;
131
-        padding-left: 0;
132
-    }
133
-
134
-    .info-password-local {
135
-        user-select: text;
136
-    }
137
-}
138
-
139
-.dial-in-numbers-list {
140
-    margin-top: 20px;
141
-    font-size: 12px;
142
-    line-height: 24px;
143
-    border-collapse: collapse;
144
-
145
-    thead {
146
-        text-align: left;
147
-    }
148
-
149
-    tr {
150
-        border-bottom: 1px solid #d1dbe8;
151
-    }
152
-
153
-    .flag-cell {
154
-        vertical-align: top;
155
-        width: 30px;
156
-    }
157
-    .flag {
158
-        display: block;
159
-        margin: 5px 5px 0px 5px;
160
-    }
161
-
162
-    .country {
163
-        font-weight: bold;
164
-        vertical-align: top;
165
-        padding: 0 20px 0 0;
166
-    }
167
-
168
-    ul {
169
-        padding: 0px 0px 0px 0px;
170
-    }
171
-
172
-    .numbers-list {
173
-        list-style: none;
174
-        padding: 0 20px 0 0;
175
-    }
176
-
177
-    .toll-free-list {
178
-        font-weight: bold;
179
-        list-style: none;
180
-        vertical-align: top;
181
-    }
182
-
183
-    li.toll-free:empty:before {
184
-        content: '.';
185
-        visibility: hidden;
186
-    }
187
-}
188
-
189
-.dial-in-page {
190
-    align-items: center;
191
-    box-sizing: border-box;
192
-    display: flex;
193
-    flex-direction: column;
194
-    font-size: 12px;
195
-    max-height: 100%;
196
-    overflow: auto;
197
-    padding: 15pt;
198
-    position: absolute;
199
-    transform: translateY(-50%);
200
-    top: 50%;
201
-    width: 100%;
202
-
203
-    .dial-in-conference-id {
204
-        text-align: center;
205
-        min-width: 200px;
206
-        margin-top: 40px;
207
-    }
208
-
209
-    .dial-in-conference-name,
210
-    .dial-in-conference-pin {
211
-        font-size: 18px;
212
-    }
213
-
214
-    .dial-in-conference-description {
215
-        margin: 12px;
216
-    }
217
-}
218
-
219
-.info-dialog,
220
-.dial-in-page {
221
-    * {
222
-        user-select: text;
223
-        -moz-user-select: text;
224
-        -webkit-user-select: text;
225
-    }
226
-
227
-    .info-dialog-url-text-unselectable {
228
-        user-select: none;
229
-        -moz-user-select: none;
230
-        -webkit-user-select: none;
231
-    }
232
-}

+ 0
- 92
css/modals/local-recording/_local-recording.scss 查看文件

@@ -1,92 +0,0 @@
1
-.localrec-participant-stats {
2
-    list-style: none;
3
-    padding: 0;
4
-    width: 100%;
5
-    font-weight: 500;
6
-
7
-    .localrec-participant-stats-item__status-dot {
8
-        position: relative;
9
-        display: block;
10
-        width: 9px;
11
-        height: 9px;
12
-        border-radius: 50%;
13
-        margin: 0 auto;
14
-
15
-        &.status-on {
16
-            background: green;
17
-        }
18
-
19
-        &.status-off {
20
-            background: gray;
21
-        }
22
-
23
-        &.status-unknown {
24
-            background: darkgoldenrod;
25
-        }
26
-
27
-        &.status-error {
28
-            background: darkred;
29
-        }
30
-    }
31
-
32
-    .localrec-participant-stats-item__status,
33
-    .localrec-participant-stats-item__name,
34
-    .localrec-participant-stats-item__sessionid {
35
-        display: inline-block;
36
-        margin: 5px 0;
37
-        vertical-align: middle;
38
-    }
39
-    .localrec-participant-stats-item__status {
40
-        width: 5%;
41
-    }
42
-    .localrec-participant-stats-item__name {
43
-        width: 40%;
44
-    }
45
-    .localrec-participant-stats-item__sessionid {
46
-        width: 55%;
47
-    }
48
-
49
-    .localrec-participant-stats-item__name,
50
-    .localrec-participant-stats-item__sessionid {
51
-        overflow: hidden;
52
-        text-overflow: ellipsis;
53
-        white-space: nowrap;
54
-    }
55
-}
56
-
57
-.localrec-control-info-label {
58
-    font-weight: bold;
59
-}
60
-
61
-.localrec-control-info-label:after {
62
-    content: ' ';
63
-}
64
-
65
-.localrec-control-action-link {
66
-    display: inline-block;
67
-    line-height: 1.5em;
68
-
69
-    a {
70
-        cursor: pointer;
71
-        vertical-align: middle;
72
-    }
73
-}
74
-
75
-.localrec-control-action-link:before {
76
-    color: $linkFontColor;
77
-    content: '\2022';
78
-    font-size: 1.5em;
79
-    padding: 0 10px;
80
-    vertical-align: middle;
81
-}
82
-
83
-.localrec-control-action-link:first-child:before {
84
-    content: '';
85
-    padding: 0;
86
-}
87
-
88
-.localrec-control-action-links {
89
-    font-weight: bold;
90
-    margin-top: 10px;
91
-    white-space: nowrap;
92
-}

+ 0
- 61
css/modals/settings/_settings.scss 查看文件

@@ -1,61 +0,0 @@
1
-.settings-pane {
2
-    display: flex;
3
-    width: 100%;
4
-
5
-    &.profile-pane {
6
-        flex-direction: column;
7
-    }
8
-
9
-    .auth-name {
10
-        margin-bottom: 4px;
11
-    }
12
-
13
-    .calendar-tab,
14
-    .device-selection {
15
-        margin-top: 20px;
16
-    }
17
-
18
-    .mock-atlaskit-label {
19
-        color: #56637A;
20
-        font-size: 12px;
21
-        font-weight: 600;
22
-        line-height: 1.33;
23
-        padding: 20px 0px 4px 0px;
24
-    }
25
-
26
-    .calendar-tab,
27
-    .more-tab,
28
-    .profile-edit {
29
-        display: flex;
30
-        width: 100%;
31
-    }
32
-
33
-    .profile-edit-field,
34
-    .settings-sub-pane {
35
-        flex: 1;
36
-    }
37
-
38
-    .profile-edit-field {
39
-        margin-right: 20px;
40
-    }
41
-
42
-    .language-settings {
43
-        max-width: 50%;
44
-    }
45
-
46
-    .calendar-tab {
47
-        align-items: center;
48
-        flex-direction: column;
49
-        font-size: 14px;
50
-        min-height: 100px;
51
-        text-align: center;
52
-    }
53
-
54
-    .calendar-tab-sign-in {
55
-        margin-top: 20px;
56
-    }
57
-
58
-    .sign-out-cta {
59
-        margin-bottom: 20px;
60
-    }
61
-}

+ 0
- 51
css/modals/speaker_stats/_speaker_stats.scss 查看文件

@@ -1,51 +0,0 @@
1
-.speaker-stats {
2
-    list-style: none;
3
-    padding: 0;
4
-    width: 100%;
5
-    font-weight: 500;
6
-
7
-    .speaker-stats-item__status-dot {
8
-        position: relative;
9
-        display: block;
10
-        width: 9px;
11
-        height: 9px;
12
-        border-radius: 50%;
13
-        margin: 0 auto;
14
-
15
-        &.status-active {
16
-            background: green;
17
-        }
18
-
19
-        &.status-inactive {
20
-            background: gray;
21
-        }
22
-    }
23
-
24
-    .status-user-left {
25
-        color: $placeHolderColor;
26
-    }
27
-
28
-    .speaker-stats-item__status,
29
-    .speaker-stats-item__name,
30
-    .speaker-stats-item__time {
31
-        display: inline-block;
32
-        margin: 5px 0;
33
-        vertical-align: middle;
34
-    }
35
-    .speaker-stats-item__status {
36
-        width: 5%;
37
-    }
38
-    .speaker-stats-item__name {
39
-        width: 40%;
40
-    }
41
-    .speaker-stats-item__time {
42
-        width: 55%;
43
-    }
44
-
45
-    .speaker-stats-item__name,
46
-    .speaker-stats-item__time {
47
-        overflow: hidden;
48
-        text-overflow: ellipsis;
49
-        white-space: nowrap;
50
-    }
51
-}

+ 0
- 201
css/modals/video-quality/_video-quality.scss 查看文件

@@ -1,201 +0,0 @@
1
-.video-quality-dialog {
2
-    .hide-warning {
3
-        height: 0;
4
-        visibility: hidden;
5
-    }
6
-
7
-    .video-quality-dialog-title {
8
-        margin-bottom: 10px;
9
-    }
10
-
11
-    .video-quality-dialog-contents {
12
-        align-items: center;
13
-        display: flex;
14
-        flex-direction: column;
15
-        padding: 10px;
16
-        min-width: 250px;
17
-
18
-        .video-quality-dialog-slider-container {
19
-            width: 100%;
20
-            text-align: center;
21
-        }
22
-
23
-        .video-quality-dialog-slider {
24
-            width: calc(100% - 5px);
25
-
26
-            @mixin sliderTrackStyles() {
27
-                height: 15px;
28
-                border-radius: 10px;
29
-                background: rgb(14, 22, 36);
30
-            }
31
-
32
-            &::-ms-track {
33
-                @include sliderTrackStyles();
34
-            }
35
-
36
-            &::-moz-range-track {
37
-                @include sliderTrackStyles();
38
-            }
39
-
40
-            &::-webkit-slider-runnable-track {
41
-                @include sliderTrackStyles();
42
-            }
43
-
44
-            @mixin sliderThumbStyles() {
45
-                top: 50%;
46
-                border: none;
47
-                position: relative;
48
-                opacity: 0;
49
-            }
50
-
51
-            &::-ms-thumb {
52
-                @include sliderThumbStyles();
53
-            }
54
-
55
-            &::-moz-range-thumb {
56
-                @include sliderThumbStyles();
57
-
58
-            }
59
-
60
-            &::-webkit-slider-thumb {
61
-                @include sliderThumbStyles();
62
-            }
63
-        }
64
-
65
-        .video-quality-dialog-labels {
66
-            box-sizing: border-box;
67
-            display: flex;
68
-            margin-top: 5px;
69
-            position: relative;
70
-            width: 90%;
71
-        }
72
-
73
-        .video-quality-dialog-label-container {
74
-            position: absolute;
75
-            text-align: center;
76
-            transform: translate(-50%, 0%);
77
-
78
-            &::before {
79
-                content: '';
80
-                border-radius: 50%;
81
-                left: 0;
82
-                height: 6px;
83
-                margin: 0 auto;
84
-                pointer-events: none;
85
-                position: absolute;
86
-                right: 0;
87
-                top: -16px;
88
-                width: 6px;
89
-            }
90
-        }
91
-
92
-        .video-quality-dialog-label-container.active {
93
-            color: $videoQualityActive;
94
-
95
-            &::before {
96
-                background: $videoQualityActive;
97
-                height: 12px;
98
-                top: -19px;
99
-                width: 12px;
100
-            }
101
-        }
102
-
103
-        .video-quality-dialog-label-container:first-child {
104
-            position: relative;
105
-        }
106
-
107
-        .video-quality-dialog-label {
108
-            display: table-caption;
109
-            word-spacing: unset;
110
-        }
111
-    }
112
-
113
-    &.video-not-supported {
114
-        .video-quality-dialog-labels {
115
-            color: gray;
116
-        }
117
-
118
-        .video-quality-dialog-slider {
119
-            @mixin sliderTrackDisabledStyles() {
120
-                background: rgba(14, 22, 36, 0.1);
121
-            }
122
-
123
-            &::-ms-track {
124
-                @include sliderTrackDisabledStyles();
125
-            }
126
-
127
-            &::-moz-range-track {
128
-                @include sliderTrackDisabledStyles();
129
-            }
130
-
131
-            &::-webkit-slider-runnable-track {
132
-                @include sliderTrackDisabledStyles();
133
-            }
134
-        }
135
-    }
136
-}
137
-
138
-.modal-dialog-form {
139
-    .video-quality-dialog-title {
140
-        display: none;
141
-    }
142
-}
143
-
144
-#videoResolutionLabel {
145
-    z-index: $zindex3 + 1;
146
-}
147
-
148
-.large-video-labels {
149
-    display: flex;
150
-    position: absolute;
151
-    top: 30px;
152
-    right: 30px;
153
-    transition: right 0.5s;
154
-    z-index: $zindex3;
155
-
156
-    .circular-label {
157
-        color: white;
158
-        font-weight: bold;
159
-        margin-left: 8px;
160
-        opacity: 0.8;
161
-    }
162
-
163
-    .circular-label {
164
-        background: #B8C7E0;
165
-    }
166
-
167
-    .circular-label.file {
168
-        background: #FF5630;
169
-    }
170
-
171
-    .circular-label.local-rec {
172
-        background: #FF5630;
173
-    }
174
-
175
-    .circular-label.stream {
176
-        background: #0065FF;
177
-    }
178
-
179
-    .recording-label.center-message {
180
-        background: $videoStateIndicatorBackground;
181
-        bottom: 50%;
182
-        display: block;
183
-        left: 50%;
184
-        padding: 10px;
185
-        position: fixed;
186
-        transform: translate(-50%, -50%);
187
-        z-index: $centeredVideoLabelZ;
188
-    }
189
-}
190
-
191
-.circular-label {
192
-    background: $videoStateIndicatorBackground;
193
-    border-radius: 50%;
194
-    box-sizing: border-box;
195
-    cursor: default;
196
-    font-size: 13px;
197
-    height: $videoStateIndicatorSize;
198
-    line-height: $videoStateIndicatorSize;
199
-    text-align: center;
200
-    min-width: $videoStateIndicatorSize;
201
-}

+ 0
- 47
css/overlay/_overlay.scss 查看文件

@@ -1,47 +0,0 @@
1
-.overlay {
2
-    &__container,
3
-    &__container-light {
4
-        top: 0;
5
-        left: 0;
6
-        width: 100%;
7
-        height: 100%;
8
-        position: fixed;
9
-        z-index: $overlayZ;
10
-        background: $defaultBackground;
11
-        &.filmstrip-only {
12
-            @include transparentBg($filmstripOnlyOverlayBg, 0.8);
13
-        }
14
-    }
15
-
16
-    &__container-light {
17
-        @include transparentBg($defaultBackground, 0.7);
18
-        &.filmstrip-only {
19
-            @include transparentBg($filmstripOnlyOverlayBg, 0.2);
20
-        }
21
-    }
22
-
23
-    &__content {
24
-        position: absolute;
25
-        margin: 0 auto;
26
-        height: 100%;
27
-        width: 56%;
28
-        left: 50%;
29
-        @include transform(translateX(-50%));
30
-        &.filmstrip-only {
31
-            left: 0px;
32
-            width: 100%;
33
-            @include transform(none);
34
-        }
35
-
36
-        &_bottom {
37
-            position: absolute;
38
-            bottom: 0;
39
-        }
40
-    }
41
-
42
-    &__policy {
43
-        position: absolute;
44
-        bottom: 24px;
45
-        width: 100%;
46
-    }
47
-}

+ 0
- 26
css/reload_overlay/_reload_overlay.scss 查看文件

@@ -1,26 +0,0 @@
1
-.reload_overlay_title {
2
-    display: block;
3
-    font-size: 16px;
4
-    line-height: 20px;
5
-}
6
-
7
-.reload_overlay_text {
8
-    display: block;
9
-    font-size: 12px;
10
-    line-height: 30px;
11
-}
12
-
13
-#reloadProgressBar {
14
-    background: #e9e9e9;
15
-    border-radius: 3px;
16
-    height: 5px;
17
-    margin: 5px auto;
18
-    overflow: hidden;
19
-    width: 180px;
20
-
21
-    .progress-indicator-fill {
22
-        background: $reloadProgressBarBg;
23
-        height: 100%;
24
-        transition: width .5s;
25
-    }
26
-}

+ 0
- 45
css/ringing/_ringing.scss 查看文件

@@ -1,45 +0,0 @@
1
-.ringing {
2
-    display: block;
3
-    left: 0;
4
-    top: 0;
5
-    width: 100%;
6
-    height: 100%;
7
-    position: fixed;
8
-    z-index: $ringingZ;
9
-    @include transparentBg(#283447, 0.95);
10
-
11
-    &.solidBG {
12
-        background: $defaultBackground;
13
-    }
14
-
15
-    &__content {
16
-        position: absolute;
17
-        width: 400px;
18
-        height: 250px;
19
-        left: 50%;
20
-        top: 50%;
21
-        margin-left: -200px;
22
-        margin-top: -125px;
23
-        text-align: center;
24
-        font-weight: normal;
25
-        color: #FFFFFF;
26
-    }
27
-
28
-    &__avatar {
29
-        width: 128px;
30
-        height: 128px;
31
-        border-radius: 50%;
32
-        border: 2px solid #1B2638;
33
-    }
34
-
35
-    &__status{
36
-        margin-top: 15px;
37
-        font-size: 14px;
38
-        line-height: 20px;
39
-    }
40
-
41
-    &__name {
42
-        font-size: 24px;
43
-        line-height: 32px;
44
-    }
45
-}

+ 0
- 115
css/themes/_light.scss 查看文件

@@ -1,115 +0,0 @@
1
-/**
2
- * Base
3
- */
4
-$baseLight: #FFFFFF;
5
-
6
-/**
7
-* Controls
8
-*/
9
-$controlBackground: $baseLight;
10
-$controlColor: #333333;
11
-$sliderTrackBackground: #474747;
12
-$sliderThumbBackground: #3572b0;
13
-
14
-/**
15
-* Buttons
16
-*/
17
-$buttonBackground: #44A5FF;
18
-$buttonHoverBackground: #2c4062;
19
-$buttonBorder: transparent;
20
-$buttonHoverBorder: transparent;
21
-$buttonColor: #eceef1;
22
-
23
-$buttonLightBackground: #f5f5f5;
24
-$buttonLightHoverBackground: #e9e9e9;
25
-$buttonLightBorder: #ccc;
26
-$buttonLightHoverBorder: #999;
27
-
28
-$buttonLinkBackground: transparent;
29
-$buttonLinkColor: #0090e8;
30
-
31
-$primaryButtonBackground: #3572b0;
32
-$primaryButtonHoverBackground: #2a67a5;
33
-$primaryButtonColor: $baseLight;
34
-$primaryButtonFontWeight: 400;
35
-
36
-$buttonShadowColor: #192d4f;
37
-
38
-$overlayButtonBg: #0074E0;
39
-
40
-/**
41
-* Color variables
42
-**/
43
-$defaultBackground: #474747;
44
-$filmstripOnlyOverlayBg: #000;
45
-$reloadProgressBarBg: #0074E0;
46
-
47
-/**
48
- * Dialog colors
49
- **/
50
-$auiDialogColor: #eceef1;
51
-$auiDialogBg: #253858;
52
-$auiDialogContentBg: #344563;
53
-$auiBorderColor: #253858;
54
-$dialogTitleFontWeight: 400;
55
-$dialogErrorText: #344563;
56
-
57
-/**
58
-* Inlay colors
59
-**/
60
-$inlayColorBg: lighten($defaultBackground, 20%);
61
-$inlayBorderColor: lighten($baseLight, 10%);
62
-$inlayIconBg: #000;
63
-$inlayIconColor: #fff;
64
-$inlayFilmstripOnlyColor: #474747;
65
-$inlayFilmstripOnlyBg: #fff;
66
-
67
-// Main controls
68
-$placeHolderColor: #a7a7a7;
69
-$readOnlyInputColor: #a7a7a7;
70
-$defaultDarkSelectionColor: #ccc;
71
-$buttonFontWeight: 400;
72
-$labelFontWeight: 400;
73
-$hintFontSize: em(13, 14);
74
-$linkFontColor: #3572b0;
75
-$linkHoverFontColor: darken(#3572b0, 10%);
76
-$dropdownColor: #333;
77
-$errorColor: #c61600;
78
-
79
-// Feedback colors
80
-$feedbackCancelFontColor: #333;
81
-
82
-// Popover colors
83
-$popoverBg: initial;
84
-$popoverFontColor: #ffffff !important;
85
-$popupMenuColor: #ffffff !important;
86
-$popupMenuHoverColor: #ffffff !important;
87
-$popupMenuHoverBackground: rgba(255, 255, 255, 0.1);
88
-$popupSliderColor: #0376da;
89
-
90
-// Toolbar
91
-$secondaryToolbarBg: rgba(0, 0, 0, 0.5);
92
-// TOFIX: Once moved to react rename to match the side panel class name.
93
-$sideToolbarContainerBg: rgba(0, 0, 0, 0.75);
94
-$toolbarBackground: rgba(0, 0, 0, 0.5);
95
-$toolbarBadgeBackground: #165ECC;
96
-$toolbarBadgeColor: #FFFFFF;
97
-$toolbarButtonColor: #FFFFFF;
98
-$toolbarSelectBackground: rgba(0, 0, 0, .6);
99
-$toolbarTitleColor: #FFFFFF;
100
-$toolbarToggleBackground: #12499C;
101
-
102
-
103
-/**
104
- * Forms
105
- */
106
-//dropdown
107
-$selectFontColor: $controlColor;
108
-$selectBg: $controlBackground;
109
-$selectActiveBg: darken($controlBackground, 5%);
110
-$selectActiveItemBg: darken($controlBackground, 20%);
111
-
112
-/**
113
- * TODO: Replace by themed component.
114
- */
115
-$videoQualityActive: #4C9AFF;

+ 0
- 32
css/third-party-branding/google.scss 查看文件

@@ -1,32 +0,0 @@
1
-/**
2
- * The Google sign in button must follow Google's design guidelines.
3
- * See: https://developers.google.com/identity/branding-guidelines
4
- */
5
-.google-sign-in {
6
-    background-color: #4285f4;
7
-    border-radius: 2px;
8
-    cursor: pointer;
9
-    display: inline-flex;
10
-    font-family: Roboto, arial, sans-serif;
11
-    font-size: 14px;
12
-    padding: 1px;
13
-
14
-    .google-cta {
15
-        color: white;
16
-        display: inline-block;
17
-        /**
18
-         * Hack the line height for vertical centering of text.
19
-         */
20
-        line-height: 32px;
21
-        margin: 0 15px;
22
-    }
23
-
24
-    .google-logo {
25
-        background-color: white;
26
-        border-radius: 2px;
27
-        display: inline-block;
28
-        padding: 8px;
29
-        height: 18px;
30
-        width: 18px;
31
-    }
32
-}

+ 0
- 28
css/third-party-branding/microsoft.scss 查看文件

@@ -1,28 +0,0 @@
1
-/**
2
- * The Microsoft sign in button must follow Microsoft's brand guidelines.
3
- * See: https://docs.microsoft.com/en-us/azure/active-directory/
4
- *     develop/active-directory-branding-guidelines
5
- */
6
-.microsoft-sign-in {
7
-    align-items: center;
8
-    background: #FFFFFF;
9
-    border: 1px solid #8C8C8C;
10
-    box-sizing: border-box;
11
-    cursor: pointer;
12
-    display: inline-flex;
13
-    font-family: Segoe UI, Roboto, arial, sans-serif;
14
-    height: 41px;
15
-    padding: 12px;
16
-
17
-    .microsoft-cta {
18
-        display: inline-block;
19
-        color: #5E5E5E;
20
-        font-size: 15px;
21
-        line-height: 41px;
22
-    }
23
-
24
-    .microsoft-logo {
25
-        display: inline-block;
26
-        margin-right: 12px;
27
-    }
28
-}

+ 0
- 1
css/unsupported-browser/_main.scss 查看文件

@@ -1 +0,0 @@
1
-@import 'unsupported-desktop-browser';

+ 0
- 39
css/unsupported-browser/_unsupported-desktop-browser.scss 查看文件

@@ -1,39 +0,0 @@
1
-.unsupported-desktop-browser {
2
-    @include absoluteAligning();
3
-
4
-    display: block;
5
-    text-align: center;
6
-
7
-    &__title {
8
-        color: $unsupportedBrowserTitleColor;
9
-        font-weight: 300;
10
-        font-size: $unsupportedBrowserTitleFontSize;
11
-        letter-spacing: 1px;
12
-    }
13
-
14
-    &__description {
15
-        color: $unsupportedDesktopBrowserTextColor;
16
-        font-size: $unsupportedDesktopBrowserTextFontSize;
17
-        font-weight: 300;
18
-        letter-spacing: 1px;
19
-        margin-top: 16px;
20
-
21
-        &_small {
22
-            @extend .unsupported-desktop-browser__description;
23
-            font-size: $unsupportedBrowserTextSmallFontSize;
24
-        }
25
-    }
26
-
27
-    &__link {
28
-        color: $linkFontColor;
29
-        @include transition(color .1s ease-out);
30
-
31
-        &:hover {
32
-            color: $linkHoverFontColor;
33
-            cursor: pointer;
34
-            text-decoration: none;
35
-
36
-            @include transition(color .1s ease-in);
37
-        }
38
-    }
39
-}

+ 0
- 5
debian/changelog 查看文件

@@ -1,5 +0,0 @@
1
-jitsi-meet-web (1.0.1-1) unstable; urgency=low
2
-
3
-  * Initial release. (Closes: #760485)
4
-
5
- -- Damian Minkov <damencho@jitsi.org>  Wed, 22 Oct 2014 10:30:00 +0200

+ 0
- 1
debian/compat 查看文件

@@ -1 +0,0 @@
1
-12

+ 0
- 58
debian/control 查看文件

@@ -1,58 +0,0 @@
1
-Source: jitsi-meet-web
2
-Section: net
3
-Priority: extra
4
-Maintainer: Jitsi Team <dev@jitsi.org>
5
-Uploaders: Emil Ivov <emcho@jitsi.org>, Damian Minkov <damencho@jitsi.org>
6
-Build-Depends: debhelper (>= 8.0.0)
7
-Standards-Version: 3.9.6
8
-Homepage: https://jitsi.org/meet
9
-
10
-Package: jitsi-meet-web
11
-Replaces: jitsi-meet (<= 1.0.1525-1)
12
-Architecture: all
13
-Depends: ${misc:Depends}
14
-Description: WebRTC JavaScript video conferences
15
- Jitsi Meet is a WebRTC JavaScript application that uses Jitsi
16
- Videobridge to provide high quality, scalable video conferences.
17
- .
18
- It is a web interface to Jitsi Videobridge for audio and video
19
- forwarding and relaying.
20
-
21
-Package: jitsi-meet-web-config
22
-Architecture: all
23
-Depends: openssl, nginx | nginx-full | nginx-extras | apache2
24
-Description: Configuration for web serving of Jitsi Meet
25
- Jitsi Meet is a WebRTC JavaScript application that uses Jitsi
26
- Videobridge to provide high quality, scalable video conferences.
27
- .
28
- It is a web interface to Jitsi Videobridge for audio and video
29
- forwarding and relaying, using a webserver Nginx or Apache2.
30
- .
31
- This package contains configuration for Nginx to be used with
32
- Jitsi Meet.
33
-
34
-Package: jitsi-meet-prosody
35
-Architecture: all
36
-Depends: openssl, prosody | prosody-trunk | prosody-0.11
37
-Replaces: jitsi-meet-tokens
38
-Description: Prosody configuration for Jitsi Meet
39
- Jitsi Meet is a WebRTC JavaScript application that uses Jitsi
40
- Videobridge to provide high quality, scalable video conferences.
41
- .
42
- It is a web interface to Jitsi Videobridge for audio and video
43
- forwarding and relaying.
44
- .
45
- This package contains configuration for Prosody to be used with
46
- Jitsi Meet.
47
-
48
-Package: jitsi-meet-tokens
49
-Architecture: all
50
-Depends: ${misc:Depends}, prosody-trunk (>= 1nightly747) | prosody-0.11 | prosody (>= 0.11.2), libssl-dev, luarocks, jitsi-meet-prosody
51
-Description: Prosody token authentication plugin for Jitsi Meet
52
-
53
-Package: jitsi-meet-turnserver
54
-Architecture: all
55
-Breaks: apache2
56
-Pre-Depends: jitsi-meet-web-config
57
-Depends: ${misc:Depends}, nginx (>= 1.13.10) | nginx-full (>= 1.13.10) | nginx-extras (>= 1.13.10), jitsi-meet-prosody, coturn, dnsutils
58
-Description: Configures coturn to be used with Jitsi Meet

+ 0
- 38
debian/copyright 查看文件

@@ -1,38 +0,0 @@
1
-Format: http://dep.debian.net/deps/dep5
2
-Upstream-Name: Jitsi Meet
3
-Upstream-Contact: Emil Ivov <emcho@jitsi.org>
4
-Source: https://github.com/jitsi/jitsi-meet
5
-
6
-Files: *
7
-Copyright: 2015 Atlassian Pty Ltd
8
-License: Apache-2.0
9
-
10
-License: Apache-2.0
11
-On Debian systems, the full text of the Apache
12
- License version 2 can be found in the file
13
- '/usr/share/common-licenses/Apache-2.0'.
14
- Note:
15
- This project was originally contributed to the community under the MIT license
16
- and with the following notice:
17
- .
18
- The MIT License (MIT)
19
- .
20
- Copyright (c) 2013 ESTOS GmbH
21
- Copyright (c) 2013 BlueJimp SARL
22
- .
23
- Permission is hereby granted, free of charge, to any person obtaining a copy of
24
- this software and associated documentation files (the "Software"), to deal in
25
- the Software without restriction, including without limitation the rights to
26
- use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
27
- the Software, and to permit persons to whom the Software is furnished to do so,
28
- subject to the following conditions:
29
- .
30
- The above copyright notice and this permission notice shall be included in all
31
- copies or substantial portions of the Software.
32
- .
33
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
34
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
35
- FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
36
- COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
37
- IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
38
- CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

+ 0
- 7
debian/jitsi-meet-prosody.README.Debian 查看文件

@@ -1,7 +0,0 @@
1
-Prosody configuration for Jitsi Meet for Debian
2
-----------------------------
3
-
4
-Jitsi Meet is a WebRTC video conferencing application. This package contains 
5
-configuration of prosody which are needed for Jitsi Meet to work.
6
-
7
- -- Yasen Pramatarov <yasen@bluejimp.com>  Mon, 30 Jun 2014 23:05:18 +0100

+ 0
- 1
debian/jitsi-meet-prosody.docs 查看文件

@@ -1 +0,0 @@
1
-doc/debian/jitsi-meet-prosody/README

+ 0
- 2
debian/jitsi-meet-prosody.install 查看文件

@@ -1,2 +0,0 @@
1
-doc/debian/jitsi-meet-prosody/prosody.cfg.lua-jvb.example   /usr/share/jitsi-meet-prosody/
2
-resources/prosody-plugins/                                  /usr/share/jitsi-meet/

+ 0
- 225
debian/jitsi-meet-prosody.postinst 查看文件

@@ -1,225 +0,0 @@
1
-#!/bin/bash
2
-# postinst script for jitsi-meet-prosody
3
-#
4
-# see: dh_installdeb(1)
5
-
6
-set -e
7
-
8
-# summary of how this script can be called:
9
-#        * <postinst> `configure' <most-recently-configured-version>
10
-#        * <old-postinst> `abort-upgrade' <new version>
11
-#        * <conflictor's-postinst> `abort-remove' `in-favour' <package>
12
-#          <new-version>
13
-#        * <postinst> `abort-remove'
14
-#        * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
15
-#          <failed-install-package> <version> `removing'
16
-#          <conflicting-package> <version>
17
-# for details, see http://www.debian.org/doc/debian-policy/ or
18
-# the debian-policy package
19
-
20
-function generateRandomPassword() {
21
-    cat /dev/urandom | tr -dc 'a-zA-Z0-9' | head -c 16
22
-}
23
-
24
-case "$1" in
25
-    configure)
26
-
27
-        # loading debconf
28
-        . /usr/share/debconf/confmodule
29
-
30
-        # try to get host from jitsi-videobridge
31
-        db_get jitsi-videobridge/jvb-hostname
32
-        if [ -z "$RET" ] ; then
33
-            # server hostname
34
-            db_set jitsi-videobridge/jvb-hostname "localhost"
35
-            db_input critical jitsi-videobridge/jvb-hostname || true
36
-            db_go
37
-        fi
38
-        JVB_HOSTNAME="$RET"
39
-
40
-        db_get jitsi-videobridge/jvbsecret
41
-        if [ -z "$RET" ] ; then
42
-            db_input critical jitsi-videobridge/jvbsecret || true
43
-            db_go
44
-        fi
45
-        JVB_SECRET="$RET"
46
-
47
-        db_get jicofo/jicofo-authuser
48
-        if [ -z "$RET" ] ; then
49
-            db_input critical jicofo/jicofo-authuser || true
50
-            db_go
51
-        fi
52
-        JICOFO_AUTH_USER="$RET"
53
-
54
-        db_get jicofo/jicofo-authpassword
55
-        if [ -z "$RET" ] ; then
56
-            # if password is missing generate it, and store it
57
-            JICOFO_AUTH_PASSWORD=`generateRandomPassword`
58
-            db_set jicofo/jicofo-authpassword "$JICOFO_AUTH_PASSWORD"
59
-        else
60
-            JICOFO_AUTH_PASSWORD="$RET"
61
-        fi
62
-
63
-        db_get jicofo/jicofosecret
64
-        if [ -z "$RET" ] ; then
65
-            # if secret is missing generate it, and store it
66
-            JICOFO_SECRET=`generateRandomPassword`
67
-            db_set jicofo/jicofosecret "$JICOFO_SECRET"
68
-        else
69
-            JICOFO_SECRET="$RET"
70
-        fi
71
-
72
-        JICOFO_AUTH_DOMAIN="auth.$JVB_HOSTNAME"
73
-
74
-        # detect dpkg-reconfigure, just delete old links
75
-        db_get jitsi-meet-prosody/jvb-hostname
76
-        JVB_HOSTNAME_OLD=$RET
77
-        if [ -n "$RET" ] && [ ! "$JVB_HOSTNAME_OLD" = "$JVB_HOSTNAME" ] ; then
78
-            rm -f /etc/prosody/conf.d/$JVB_HOSTNAME_OLD.cfg.lua
79
-            rm -f /etc/prosody/certs/$JVB_HOSTNAME_OLD.key
80
-            rm -f /etc/prosody/certs/$JVB_HOSTNAME_OLD.crt
81
-        fi
82
-
83
-        # stores the hostname so we will reuse it later, like in purge
84
-        db_set jitsi-meet-prosody/jvb-hostname "$JVB_HOSTNAME"
85
-
86
-        db_get jitsi-meet-prosody/turn-secret
87
-        if [ -z "$RET" ] ; then
88
-            # 8-chars random secret used for the turnserver
89
-            TURN_SECRET=`generateRandomPassword`
90
-            db_set jitsi-meet-prosody/turn-secret "$TURN_SECRET"
91
-        else
92
-            TURN_SECRET="$RET"
93
-        fi
94
-
95
-        # and we're done with debconf
96
-        db_stop
97
-
98
-        PROSODY_CONFIG_PRESENT="true"
99
-        PROSODY_CREATE_JICOFO_USER="false"
100
-        PROSODY_HOST_CONFIG="/etc/prosody/conf.avail/$JVB_HOSTNAME.cfg.lua"
101
-        PROSODY_CONFIG_OLD="/etc/prosody/prosody.cfg.lua"
102
-        # if there is no prosody config extract our template
103
-        # check for config in conf.avail or check whether it wasn't already configured in main config
104
-        if [ ! -f $PROSODY_HOST_CONFIG ] && ! grep -q "VirtualHost \"$JVB_HOSTNAME\"" $PROSODY_CONFIG_OLD; then
105
-            PROSODY_CONFIG_PRESENT="false"
106
-            mkdir -p /etc/prosody/conf.avail/
107
-            mkdir -p /etc/prosody/conf.d/
108
-            cp /usr/share/jitsi-meet-prosody/prosody.cfg.lua-jvb.example $PROSODY_HOST_CONFIG
109
-            sed -i "s/jitmeet.example.com/$JVB_HOSTNAME/g" $PROSODY_HOST_CONFIG
110
-            sed -i "s/focusSecret/$JICOFO_SECRET/g" $PROSODY_HOST_CONFIG
111
-            sed -i "s/focusUser/$JICOFO_AUTH_USER/g" $PROSODY_HOST_CONFIG
112
-            sed -i "s/__turnSecret__/$TURN_SECRET/g" $PROSODY_HOST_CONFIG
113
-            if [ ! -f /etc/prosody/conf.d/$JVB_HOSTNAME.cfg.lua ]; then
114
-                ln -s $PROSODY_HOST_CONFIG /etc/prosody/conf.d/$JVB_HOSTNAME.cfg.lua
115
-            fi
116
-            PROSODY_CREATE_JICOFO_USER="true"
117
-            # on some distributions main prosody config doesn't include configs
118
-            # from conf.d folder enable it as this where we put our config by default
119
-            if ! grep -q "Include \"conf\.d\/\*\.cfg.lua\"" $PROSODY_CONFIG_OLD; then
120
-                echo -e "\nInclude \"conf.d/*.cfg.lua\"" >> $PROSODY_CONFIG_OLD
121
-            fi
122
-        fi
123
-
124
-        if [ "$PROSODY_CREATE_JICOFO_USER" = "true" ]; then
125
-            # create 'focus@auth.domain' prosody user
126
-            prosodyctl register $JICOFO_AUTH_USER $JICOFO_AUTH_DOMAIN $JICOFO_AUTH_PASSWORD
127
-            # trigger a restart
128
-            PROSODY_CONFIG_PRESENT="false"
129
-        fi
130
-
131
-        USER_EXISTS_CHECK=`prosodyctl adduser jvb@$JICOFO_AUTH_DOMAIN < /dev/null || true`
132
-        if [ ! "$USER_EXISTS_CHECK" = "That user already exists" ]; then
133
-            prosodyctl register jvb $JICOFO_AUTH_DOMAIN $JVB_SECRET || true
134
-        fi
135
-
136
-        # Check whether prosody config has the internal muc, if not add it,
137
-        # as we are migrating configs
138
-        if [ -f $PROSODY_HOST_CONFIG ] && ! grep -q "internal.auth.$JVB_HOSTNAME" $PROSODY_HOST_CONFIG; then
139
-            echo -e "\nComponent \"internal.auth.$JVB_HOSTNAME\" \"muc\"" >> $PROSODY_HOST_CONFIG
140
-            echo -e "    storage = \"memory\"" >> $PROSODY_HOST_CONFIG
141
-            echo -e "    modules_enabled = { \"ping\"; }" >> $PROSODY_HOST_CONFIG
142
-            echo -e "    admins = { \"$JICOFO_AUTH_USER@auth.$JVB_HOSTNAME\", \"jvb@auth.$JVB_HOSTNAME\" }" >> $PROSODY_HOST_CONFIG
143
-        fi
144
-
145
-        if [ ! -f /var/lib/prosody/$JVB_HOSTNAME.crt ]; then
146
-            # prosodyctl takes care for the permissions
147
-            # echo for using all default values
148
-            echo | prosodyctl cert generate $JVB_HOSTNAME
149
-
150
-            ln -sf /var/lib/prosody/$JVB_HOSTNAME.key /etc/prosody/certs/$JVB_HOSTNAME.key
151
-            ln -sf /var/lib/prosody/$JVB_HOSTNAME.crt /etc/prosody/certs/$JVB_HOSTNAME.crt
152
-        fi
153
-
154
-        PRTRUNK_INSTALL_CHECK="$(dpkg-query -f '${Status}' -W 'prosody-trunk' 2>/dev/null | awk '{print $3}' || true)"
155
-        PR10_INSTALL_CHECK="$(dpkg-query -f '${Status}' -W 'prosody-0.10' 2>/dev/null | awk '{print $3}' || true)"
156
-        PR_VER_INSTALLED=$(dpkg-query -f='${Version}\n' --show prosody  2>/dev/null || true)
157
-        if [ "$PRTRUNK_INSTALL_CHECK" = "installed" ] \
158
-            || [ "$PRTRUNK_INSTALL_CHECK" = "unpacked" ] ; then
159
-            if [ -f $PROSODY_HOST_CONFIG ]; then
160
-                sed -i 's/storage = \"memory\"/storage = \"null\"/g' $PROSODY_HOST_CONFIG
161
-
162
-                # trigger a restart
163
-                PROSODY_CONFIG_PRESENT="false"
164
-            fi
165
-        fi
166
-        if [ "$PR10_INSTALL_CHECK" = "installed" ] \
167
-            || [ "$PR10_INSTALL_CHECK" = "unpacked" ] \
168
-            || dpkg --compare-versions "$PR_VER_INSTALLED" gt "0.10" ; then
169
-
170
-            # if the version is 0.10.X (>0.10 and <0.11)
171
-            if [ -f $PROSODY_HOST_CONFIG ] \
172
-                && dpkg --compare-versions "$PR_VER_INSTALLED" lt "0.11" ; then
173
-                sed -i 's/storage = \"memory\"/storage = \"none\"/g' $PROSODY_HOST_CONFIG
174
-
175
-                # trigger a restart
176
-                PROSODY_CONFIG_PRESENT="false"
177
-            fi
178
-        fi
179
-
180
-        if [ ! -f /var/lib/prosody/$JICOFO_AUTH_DOMAIN.crt ]; then
181
-            # prosodyctl takes care for the permissions
182
-            # echo for using all default values
183
-            echo | prosodyctl cert generate $JICOFO_AUTH_DOMAIN
184
-
185
-            AUTH_KEY_FILE="/etc/prosody/certs/$JICOFO_AUTH_DOMAIN.key"
186
-            AUTH_CRT_FILE="/etc/prosody/certs/$JICOFO_AUTH_DOMAIN.crt"
187
-
188
-            ln -sf /var/lib/prosody/$JICOFO_AUTH_DOMAIN.key $AUTH_KEY_FILE
189
-            ln -sf /var/lib/prosody/$JICOFO_AUTH_DOMAIN.crt $AUTH_CRT_FILE
190
-            ln -sf /var/lib/prosody/$JICOFO_AUTH_DOMAIN.crt /usr/local/share/ca-certificates/$JICOFO_AUTH_DOMAIN.crt
191
-
192
-            # we need to force updating certificates, in some cases java trust
193
-            # store not get re-generated with latest changes
194
-            update-ca-certificates -f
195
-
196
-            # don't fail on systems with custom config ($PROSODY_HOST_CONFIG is missing)
197
-            if [ -f $PROSODY_HOST_CONFIG ]; then
198
-                # now let's add the ssl cert for the auth. domain (we use # as a sed delimiter cause filepaths are confused with default / delimiter)
199
-                sed -i "s#VirtualHost \"$JICOFO_AUTH_DOMAIN\"#VirtualHost \"$JICOFO_AUTH_DOMAIN\"\n    ssl = {\n        key = \"$AUTH_KEY_FILE\";\n        certificate = \"$AUTH_CRT_FILE\";\n    \}#g" $PROSODY_HOST_CONFIG
200
-            fi
201
-
202
-            # trigger a restart
203
-            PROSODY_CONFIG_PRESENT="false"
204
-        fi
205
-
206
-        if [ "$PROSODY_CONFIG_PRESENT" = "false" ]; then
207
-            invoke-rc.d prosody restart || true
208
-        fi
209
-    ;;
210
-
211
-    abort-upgrade|abort-remove|abort-deconfigure)
212
-    ;;
213
-
214
-    *)
215
-        echo "postinst called with unknown argument \`$1'" >&2
216
-        exit 1
217
-    ;;
218
-esac
219
-
220
-# dh_installdeb will replace this with shell code automatically
221
-# generated by other debhelper scripts.
222
-
223
-#DEBHELPER#
224
-
225
-exit 0

+ 0
- 72
debian/jitsi-meet-prosody.postrm 查看文件

@@ -1,72 +0,0 @@
1
-#!/bin/sh
2
-# postrm script for jitsi-meet-prosody
3
-#
4
-# see: dh_installdeb(1)
5
-
6
-set -e
7
-
8
-# summary of how this script can be called:
9
-#        * <postrm> `remove'
10
-#        * <postrm> `purge'
11
-#        * <old-postrm> `upgrade' <new-version>
12
-#        * <new-postrm> `failed-upgrade' <old-version>
13
-#        * <new-postrm> `abort-install'
14
-#        * <new-postrm> `abort-install' <old-version>
15
-#        * <new-postrm> `abort-upgrade' <old-version>
16
-#        * <disappearer's-postrm> `disappear' <overwriter>
17
-#          <overwriter-version>
18
-# for details, see http://www.debian.org/doc/debian-policy/ or
19
-# the debian-policy package
20
-
21
-# Load debconf
22
-. /usr/share/debconf/confmodule
23
-
24
-
25
-case "$1" in
26
-    remove)
27
-        if [ -x "/etc/init.d/prosody" ]; then
28
-            invoke-rc.d prosody reload || true
29
-        fi
30
-    ;;
31
-
32
-    purge)
33
-        db_get jitsi-meet-prosody/jvb-hostname
34
-        JVB_HOSTNAME=$RET
35
-        if [ -n "$RET" ]; then
36
-            rm -f /etc/prosody/conf.avail/$JVB_HOSTNAME.cfg.lua
37
-            rm -f /etc/prosody/conf.d/$JVB_HOSTNAME.cfg.lua
38
-
39
-            JICOFO_AUTH_DOMAIN="auth.$JVB_HOSTNAME"
40
-            # clean up generated certificates
41
-            rm -f /etc/prosody/certs/$JVB_HOSTNAME.crt
42
-            rm -f /etc/prosody/certs/$JVB_HOSTNAME.key
43
-            rm -f /etc/prosody/certs/$JICOFO_AUTH_DOMAIN.crt
44
-            rm -f /etc/prosody/certs/$JICOFO_AUTH_DOMAIN.key
45
-            rm -rf /var/lib/prosody/$JICOFO_AUTH_DOMAIN.*
46
-            rm -rf /var/lib/prosody/$JVB_HOSTNAME.*
47
-
48
-            # clean created users
49
-            rm -rf /var/lib/prosody/`echo $JICOFO_AUTH_DOMAIN | sed -e "s/\./%2e/g"`
50
-        fi
51
-
52
-        # Clear the debconf variable
53
-        db_purge
54
-    ;;
55
-
56
-    upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
57
-    ;;
58
-
59
-    *)
60
-        echo "postrm called with unknown argument \`$1'" >&2
61
-        exit 1
62
-    ;;
63
-esac
64
-
65
-# dh_installdeb will replace this with shell code automatically
66
-# generated by other debhelper scripts.
67
-
68
-#DEBHELPER#
69
-
70
-db_stop
71
-
72
-exit 0

+ 0
- 35
debian/jitsi-meet-prosody.templates 查看文件

@@ -1,35 +0,0 @@
1
-Template: jitsi-meet-prosody/jvb-hostname
2
-Type: string
3
-_Description: The hostname of the current installation:
4
- The value for the hostname that is set in Jitsi Videobridge installation.
5
-
6
-Template: jitsi-videobridge/jvb-hostname
7
-Type: string
8
-_Description: The hostname of the current installation:
9
- The value for the hostname that is set in Jitsi Videobridge installation.
10
-
11
-Template: jitsi-videobridge/jvbsecret
12
-Type: password
13
-_Description: Jitsi Videobridge Component secret:
14
- The secret used by Jitsi Videobridge to connect to xmpp server as component.
15
-
16
-Template: jicofo/jicofo-authuser
17
-Type: string
18
-Default: focus
19
-_Description: Jicofo username:
20
- The jicofo needs an authenticated admin user to connect to xmpp server.
21
-
22
-Template: jicofo/jicofo-authpassword
23
-Type: password
24
-_Description: Jicofo user password:
25
- The secret used to connect to xmpp server as jicofo user.
26
-
27
-Template: jicofo/jicofosecret
28
-Type: password
29
-_Description: Jicofo Component secret:
30
- The secret used to connect to xmpp server as component
31
-
32
-Template: jitsi-meet-prosody/turn-secret
33
-Type: string
34
-_Description: The turn server secret
35
- The secret used to connect to turnserver server.

+ 0
- 7
debian/jitsi-meet-tokens.README.Debian 查看文件

@@ -1,7 +0,0 @@
1
-Token authentication plugin for Jitsi Meet
2
-----------------------------
3
-
4
-Jitsi Meet is a WebRTC video conferencing application. This package contains
5
-Prosody plugin which enables token authentication in Jitsi Meet installation.
6
-
7
- -- Pawel Domas <pawel.domas@jitsi.org>  Mon, 2 Nov 2015 14:45:00 -0600

+ 0
- 10
debian/jitsi-meet-tokens.config 查看文件

@@ -1,10 +0,0 @@
1
-#!/bin/sh -e
2
-
3
-# Source debconf library.
4
-. /usr/share/debconf/confmodule
5
-
6
-db_input critical jitsi-meet-tokens/appid || true
7
-db_go
8
-
9
-db_input critical jitsi-meet-tokens/appsecret || true
10
-db_go

+ 0
- 0
debian/jitsi-meet-tokens.docs 查看文件


+ 0
- 107
debian/jitsi-meet-tokens.postinst 查看文件

@@ -1,107 +0,0 @@
1
-#!/bin/bash
2
-# postinst script for jitsi-meet-tokens
3
-#
4
-# see: dh_installdeb(1)
5
-
6
-set -e
7
-
8
-# summary of how this script can be called:
9
-#        * <postinst> `configure' <most-recently-configured-version>
10
-#        * <old-postinst> `abort-upgrade' <new version>
11
-#        * <conflictor's-postinst> `abort-remove' `in-favour' <package>
12
-#          <new-version>
13
-#        * <postinst> `abort-remove'
14
-#        * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
15
-#          <failed-install-package> <version> `removing'
16
-#          <conflicting-package> <version>
17
-# for details, see http://www.debian.org/doc/debian-policy/ or
18
-# the debian-policy package
19
-
20
-
21
-case "$1" in
22
-    configure)
23
-
24
-        # loading debconf
25
-        . /usr/share/debconf/confmodule
26
-
27
-        db_get jitsi-meet-prosody/jvb-hostname
28
-        JVB_HOSTNAME="$RET"
29
-
30
-        db_get jitsi-meet-tokens/appid
31
-        if [ "$RET" = "false" ] ; then
32
-            echo "Application ID is mandatory"
33
-            exit 1
34
-        fi
35
-        APP_ID=$RET
36
-
37
-        db_get jitsi-meet-tokens/appsecret
38
-        if [ "$RET" = "false" ] ; then
39
-            echo "Application secret is mandatory"
40
-        fi
41
-        APP_SECRET=$RET
42
-
43
-        PROSODY_HOST_CONFIG="/etc/prosody/conf.avail/$JVB_HOSTNAME.cfg.lua"
44
-
45
-        # Store config filename for purge
46
-        db_set jitsi-meet-prosody/prosody_config "$PROSODY_HOST_CONFIG"
47
-
48
-        db_stop
49
-
50
-        if [ -f "$PROSODY_HOST_CONFIG" ] ; then
51
-            # search for --plugin_paths, if this is not enabled this is the
52
-            # first time we install tokens package and needs a config change
53
-            if grep -q "\-\-plugin_paths" "$PROSODY_HOST_CONFIG"; then
54
-                # enable tokens in prosody host config
55
-                sed -i 's/--plugin_paths/plugin_paths/g' $PROSODY_HOST_CONFIG
56
-                sed -i 's/authentication = "anonymous"/authentication = "token"/g' $PROSODY_HOST_CONFIG
57
-                sed -i 's/ --allow_unencrypted_plain_auth/ allow_unencrypted_plain_auth/g' $PROSODY_HOST_CONFIG
58
-                sed -i "s/ --app_id=\"example_app_id\"/ app_id=\"$APP_ID\"/g" $PROSODY_HOST_CONFIG
59
-                sed -i "s/ --app_secret=\"example_app_secret\"/ app_secret=\"$APP_SECRET\"/g" $PROSODY_HOST_CONFIG
60
-                sed -i 's/ --modules_enabled = { "token_verification" }/ modules_enabled = { "token_verification" }/g' $PROSODY_HOST_CONFIG
61
-
62
-                # Install luajwt
63
-                if ! luarocks install luajwtjitsi; then
64
-                   echo "Failed to install luajwtjitsi - try installing it manually"
65
-                fi
66
-
67
-                # Install basexx
68
-                if ! luarocks install basexx; then
69
-                   echo "Failed to install basexx - try installing it manually"
70
-                fi
71
-
72
-                PR10_INSTALL_CHECK="$(dpkg-query -f '${Status}' -W 'prosody-0.10' 2>/dev/null | awk '{print $3}' || true)"
73
-                PRTRUNK_INSTALL_CHECK="$(dpkg-query -f '${Status}' -W 'prosody-trunk' 2>/dev/null | awk '{print $3}' || true)"
74
-                PR_VER_INSTALLED=$(dpkg-query -f='${Version}\n' --show prosody  2>/dev/null || true)
75
-                if [ "$PR10_INSTALL_CHECK" = "installed" ] \
76
-                    || "$PR10_INSTALL_CHECK" = "unpacked"  \
77
-                    || "$PRTRUNK_INSTALL_CHECK" = "installed"  \
78
-                    || "$PRTRUNK_INSTALL_CHECK" = "unpacked"  \
79
-                    || dpkg --compare-versions "$PR_VER_INSTALLED" lt "0.11" ; then
80
-                    sed -i 's/module:hook_global(/module:hook(/g' /usr/share/jitsi-meet/prosody-plugins/mod_auth_token.lua
81
-                fi
82
-
83
-                if [ -x "/etc/init.d/prosody" ]; then
84
-                    invoke-rc.d prosody restart || true
85
-                fi
86
-            fi
87
-        else
88
-            echo "Prosody config not found at $PROSODY_HOST_CONFIG - unable to auto-configure token authentication"
89
-        fi
90
-
91
-    ;;
92
-
93
-    abort-upgrade|abort-remove|abort-deconfigure)
94
-    ;;
95
-
96
-    *)
97
-        echo "postinst called with unknown argument \`$1'" >&2
98
-        exit 1
99
-    ;;
100
-esac
101
-
102
-# dh_installdeb will replace this with shell code automatically
103
-# generated by other debhelper scripts.
104
-
105
-#DEBHELPER#
106
-
107
-exit 0

+ 0
- 75
debian/jitsi-meet-tokens.postrm 查看文件

@@ -1,75 +0,0 @@
1
-#!/bin/sh
2
-# postrm script for jitsi-meet-tokens
3
-#
4
-# see: dh_installdeb(1)
5
-
6
-set -e
7
-
8
-# summary of how this script can be called:
9
-#        * <postrm> `remove'
10
-#        * <postrm> `purge'
11
-#        * <old-postrm> `upgrade' <new-version>
12
-#        * <new-postrm> `failed-upgrade' <old-version>
13
-#        * <new-postrm> `abort-install'
14
-#        * <new-postrm> `abort-install' <old-version>
15
-#        * <new-postrm> `abort-upgrade' <old-version>
16
-#        * <disappearer's-postrm> `disappear' <overwriter>
17
-#          <overwriter-version>
18
-# for details, see http://www.debian.org/doc/debian-policy/ or
19
-# the debian-policy package
20
-
21
-# Load debconf
22
-. /usr/share/debconf/confmodule
23
-
24
-
25
-case "$1" in
26
-    remove)
27
-
28
-        db_get jitsi-meet-prosody/prosody_config
29
-        PROSODY_HOST_CONFIG=$RET
30
-
31
-        if [ -f "$PROSODY_HOST_CONFIG" ] ; then
32
-
33
-            db_get jitsi-meet-tokens/appid
34
-            APP_ID=$RET
35
-
36
-            db_get jitsi-meet-tokens/appsecret
37
-            APP_SECRET=$RET
38
-
39
-            # Revert prosody config
40
-            sed -i 's/plugin_paths/--plugin_paths/g' $PROSODY_HOST_CONFIG
41
-            sed -i 's/authentication = "token"/authentication = "anonymous"/g' $PROSODY_HOST_CONFIG
42
-            sed -i "s/ app_id=\"$APP_ID\"/ --app_id=\"example_app_id\"/g" $PROSODY_HOST_CONFIG
43
-            sed -i "s/ app_secret=\"$APP_SECRET\"/ --app_secret=\"example_app_secret\"/g" $PROSODY_HOST_CONFIG
44
-            sed -i 's/ -- "token_verification"/   "token_verification"/g' $PROSODY_HOST_CONFIG
45
-
46
-            if [ -x "/etc/init.d/prosody" ]; then
47
-                invoke-rc.d prosody restart || true
48
-            fi
49
-        fi
50
-
51
-        db_stop
52
-    ;;
53
-
54
-    purge)
55
-        # Clear the debconf variable
56
-        db_purge
57
-    ;;
58
-
59
-    upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
60
-    ;;
61
-
62
-    *)
63
-        echo "postrm called with unknown argument \`$1'" >&2
64
-        exit 1
65
-    ;;
66
-esac
67
-
68
-# dh_installdeb will replace this with shell code automatically
69
-# generated by other debhelper scripts.
70
-
71
-#DEBHELPER#
72
-
73
-db_stop
74
-
75
-exit 0

+ 0
- 14
debian/jitsi-meet-tokens.templates 查看文件

@@ -1,14 +0,0 @@
1
-Template: jitsi-meet-tokens/appid
2
-Type: string
3
-_Description: The application ID to be used by token authentication plugin:
4
-  Application ID:
5
-
6
-Template: jitsi-meet-tokens/appsecret
7
-Type: password
8
-_Description: The application secret to be used by token authentication plugin:
9
-  Application secret:
10
-
11
-Template: jitsi-meet-prosody/prosody_config
12
-Type: string
13
-_Description: The location of Jitsi Meet Prosody config file
14
-  Jitsi-meet Prosody config file location:

+ 0
- 3
debian/jitsi-meet-turnserver.install 查看文件

@@ -1,3 +0,0 @@
1
-doc/debian/jitsi-meet-turn/turnserver.conf          /usr/share/jitsi-meet-turnserver/
2
-doc/debian/jitsi-meet/jitsi-meet.conf               /usr/share/jitsi-meet-turnserver/
3
-doc/debian/jitsi-meet-turn/coturn-certbot-deploy.sh /usr/share/jitsi-meet-turnserver/

+ 0
- 0
debian/jitsi-meet-turnserver.postinst 查看文件


部分文件因为文件数量过多而无法显示

正在加载...
取消
保存