├── .gitignore ├── .htaccess ├── LICENSE ├── README.md ├── dashboard ├── .htaccess ├── css │ ├── app.css │ ├── components │ │ ├── 00.bootstrap-3.3.7.min.css │ │ ├── 02.angular-loading-bar.min.css │ │ ├── 03.angular-dialog.min.css │ │ ├── 04.bootstrap-theme-3.3.7.min.css │ │ ├── 05.bootstrap-select-1.12.2.css │ │ ├── 06.angular-dialog-theme.min.css │ │ ├── 07.material-switch.min.css │ │ ├── 08.aCKolor.min.css │ │ ├── 09.angular-sortable.min.css │ │ ├── 10.angular-bootstrap-toggle.min.css │ │ ├── 11.angular-smart-area-1.1.0.min.css │ │ ├── components.min.css │ │ └── rebuild.sh │ └── modules │ │ ├── dashboard.module.css │ │ ├── fuel.module.css │ │ ├── fuel.module.css.bak │ │ ├── piston.module.css │ │ └── register.module.css ├── fonts │ ├── glyphicons-halflings-regular.eot │ ├── glyphicons-halflings-regular.svg │ ├── glyphicons-halflings-regular.ttf │ ├── glyphicons-halflings-regular.woff │ └── glyphicons-halflings-regular.woff2 ├── html │ └── modules │ │ ├── dashboard.module.html │ │ ├── fuel.module.html │ │ ├── fuel.module.html.bak │ │ ├── piston.module.html │ │ └── register.module.html ├── img │ ├── altitude.png │ ├── app-CoRE3x.png │ ├── favicon │ │ ├── android-chrome-192x192.png │ │ ├── android-chrome-512x512.png │ │ ├── apple-touch-icon.png │ │ ├── browserconfig.xml │ │ ├── favicon-16x16.png │ │ ├── favicon-32x32.png │ │ ├── favicon.ico │ │ ├── mstile-150x150.png │ │ ├── safari-pinned-tab.svg │ │ └── site.webmanifest │ ├── piston.png │ ├── squared_metal.png │ ├── squared_metal_@2X.png │ ├── webCoRE-mark.svg │ └── webCoRE-text.svg ├── index.html ├── js │ ├── app.js │ ├── components │ │ ├── 00.jquery-3.1.1.min.js │ │ ├── 01.angular-1.6.3.min.js │ │ ├── 02.angular-route-1.6.3.min.js │ │ ├── 03.angular-resource-1.6.3.min.js │ │ ├── 04.angular-sanitize-1.6.3.min.js │ │ ├── 05.angular-loading-bar.min.js │ │ ├── 06.angular-dialog.min.js │ │ ├── 07.angular-animate-1.6.3.min.js │ │ ├── 08.angular-svg-round-progressbar.min.js │ │ ├── 09.bootstrap-3.3.7.min.js │ │ ├── 10.bootstrap-select-1.12.2.min.js │ │ ├── 11.angular-bootstrap-select.min.js │ │ ├── 13.angular-drag-and-drop-lists.min.js │ │ ├── 14.ios-drag-drop.min.js │ │ ├── 15.angular-bootstrap-toggle.min.js │ │ ├── 16.md5.min.js │ │ ├── 17.sjcl.min.js │ │ ├── 18.sizeof.min.js │ │ ├── 19.chart.bundle-2.4.0.min.js │ │ ├── 20.angular-chart-1.1.1.min.js │ │ ├── 21.html2canvas.min.js │ │ ├── 22.angular-smart-area-1.1.0.min.js │ │ ├── 23.hammer-2.0.8.min.js │ │ ├── 24.chartjs-plugin-zoom-0.4.5.min.js │ │ ├── 25.angular-swipe.min.js │ │ ├── 26.masonry-v4.2.0.min.js │ │ ├── 27.angular-ui.bootstrap.contextMenu.min.js │ │ ├── 28.localforage-v1.5.0.min.js │ │ ├── 29.angular-fittext.min.js │ │ ├── 30.angular-google-chart-1.0.0.b1.min.js │ │ ├── 32.mutation-summary.js │ │ ├── 33.tree-mirror.js │ │ ├── 34.content-script.js │ │ ├── 35.ng-map.min.js │ │ ├── 37.dashify.js │ │ ├── 38.angular-elastic.js │ │ ├── 39.canvg.js │ │ ├── components.min.js │ │ ├── in-progress-22.angular-smart-area-1.5.0.min.js │ │ ├── rebuild.sh │ │ ├── removed.06.angular-dialog.min.js │ │ ├── removed.17.sjcl.min.js │ │ ├── removed.31.fa5.js │ │ └── src │ │ │ └── 21.html2canvas.js │ └── modules │ │ ├── dashboard.module.js │ │ ├── fuel.module.js │ │ ├── fuel.module.js.bak │ │ ├── piston.module.js │ │ └── register.module.js └── robots.txt ├── devicetypes └── ady624 │ └── webcore-presence-sensor.src │ └── webcore-presence-sensor.groovy ├── dist └── dashboard │ ├── .htaccess │ ├── css │ ├── modules │ │ ├── dashboard.module.css │ │ ├── fuel.module.css │ │ ├── piston.module.css │ │ └── register.module.css │ └── webCoRE.min.css │ ├── fonts │ ├── FontAwesome.otf │ ├── fa5-brands-400.eot │ ├── fa5-brands-400.svg │ ├── fa5-brands-400.ttf │ ├── fa5-brands-400.woff │ ├── fa5-brands-400.woff2 │ ├── fa5-light-300.eot │ ├── fa5-light-300.svg │ ├── fa5-light-300.ttf │ ├── fa5-light-300.woff │ ├── fa5-light-300.woff2 │ ├── fa5-regular-400.eot │ ├── fa5-regular-400.svg │ ├── fa5-regular-400.ttf │ ├── fa5-regular-400.woff │ ├── fa5-regular-400.woff2 │ ├── fa5-solid-900.eot │ ├── fa5-solid-900.svg │ ├── fa5-solid-900.ttf │ ├── fa5-solid-900.woff │ ├── fa5-solid-900.woff2 │ ├── fontawesome-webfont.eot │ ├── fontawesome-webfont.svg │ ├── fontawesome-webfont.ttf │ ├── fontawesome-webfont.woff │ ├── fontawesome-webfont.woff2 │ ├── glyphicons-halflings-regular.eot │ ├── glyphicons-halflings-regular.svg │ ├── glyphicons-halflings-regular.ttf │ ├── glyphicons-halflings-regular.woff │ └── glyphicons-halflings-regular.woff2 │ ├── html │ └── modules │ │ ├── dashboard.module.html │ │ ├── fuel.module.html │ │ ├── fuel.module.html.bak │ │ ├── piston.module.html │ │ └── register.module.html │ ├── img │ ├── altitude.png │ ├── app-CoRE3x.png │ ├── favicon │ │ ├── android-chrome-192x192.png │ │ ├── android-chrome-512x512.png │ │ ├── apple-touch-icon.png │ │ ├── browserconfig.xml │ │ ├── favicon-16x16.png │ │ ├── favicon-32x32.png │ │ ├── favicon.ico │ │ ├── legacy │ │ │ ├── android-icon-144x144.png │ │ │ ├── android-icon-192x192.png │ │ │ ├── android-icon-36x36.png │ │ │ ├── android-icon-48x48.png │ │ │ ├── android-icon-72x72.png │ │ │ ├── android-icon-96x96.png │ │ │ ├── apple-icon-114x114.png │ │ │ ├── apple-icon-120x120.png │ │ │ ├── apple-icon-144x144.png │ │ │ ├── apple-icon-152x152.png │ │ │ ├── apple-icon-180x180.png │ │ │ ├── apple-icon-57x57.png │ │ │ ├── apple-icon-60x60.png │ │ │ ├── apple-icon-72x72.png │ │ │ ├── apple-icon-76x76.png │ │ │ ├── apple-icon-precomposed.png │ │ │ ├── apple-icon.png │ │ │ ├── browserconfig.xml │ │ │ ├── favicon-16x16.png │ │ │ ├── favicon-32x32.png │ │ │ ├── favicon-96x96.png │ │ │ ├── favicon.ico │ │ │ ├── manifest.json │ │ │ ├── ms-icon-144x144.png │ │ │ ├── ms-icon-150x150.png │ │ │ ├── ms-icon-310x310.png │ │ │ └── ms-icon-70x70.png │ │ ├── manifest.json │ │ ├── mstile-150x150.png │ │ ├── safari-pinned-tab.svg │ │ └── site.webmanifest │ ├── piston.png │ ├── squared_metal.png │ ├── squared_metal_@2X.png │ ├── webCoRE-mark.svg │ └── webCoRE-text.svg │ ├── index.html │ └── js │ └── webCoRE.min.js ├── index.html ├── installerManifest.json ├── resources └── icons │ ├── app-CoRE.png │ ├── app-CoRE@2x.png │ ├── app-CoRE@3x.png │ ├── browser-reg.png │ ├── dashboard.png │ ├── logo-text-CoRE.svg │ ├── read.me │ └── settings.png ├── smartapps └── ady624 │ ├── webcore-dashboard.src │ └── webcore-dashboard.groovy │ ├── webcore-piston.src │ └── webcore-piston.groovy │ ├── webcore-storage.src │ └── webcore-storage.groovy │ └── webcore.src │ └── webcore.groovy └── superstatic.json /.gitignore: -------------------------------------------------------------------------------- 1 | ###################### 2 | # BASH Script files # 3 | ###################### 4 | *.sh 5 | 6 | ###################### 7 | # Visor # 8 | ###################### 9 | visor* 10 | dist/visor* 11 | dashboard/fa* 12 | dashboard/mp3* 13 | dashboard/js/components/fa* 14 | 15 | ###################### 16 | # Mac Hidden Files # 17 | ###################### 18 | .DS_Store -------------------------------------------------------------------------------- /.htaccess: -------------------------------------------------------------------------------- 1 | RewriteEngine On 2 | 3 | RewriteCond %{REQUEST_FILENAME} !-f 4 | RewriteRule ^(.*)$ /index.html [L,NC] 5 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # webCoRE 2 | webCoRE is a web version of CoRE 3 | -------------------------------------------------------------------------------- /dashboard/.htaccess: -------------------------------------------------------------------------------- 1 | RewriteEngine On 2 | 3 | RewriteCond %{REQUEST_FILENAME} !-f 4 | RewriteCond %{REQUEST_FILENAME} !-d 5 | RewriteRule ^(.*)$ /index.html [L,NC] 6 | -------------------------------------------------------------------------------- /dashboard/css/components/02.angular-loading-bar.min.css: -------------------------------------------------------------------------------- 1 | #loading-bar,#loading-bar-spinner{pointer-events:none;-webkit-pointer-events:none;-webkit-transition:350ms linear all;-moz-transition:350ms linear all;-o-transition:350ms linear all;transition:350ms linear all}#loading-bar-spinner.ng-enter,#loading-bar-spinner.ng-leave.ng-leave-active,#loading-bar.ng-enter,#loading-bar.ng-leave.ng-leave-active{opacity:0}#loading-bar-spinner.ng-enter.ng-enter-active,#loading-bar-spinner.ng-leave,#loading-bar.ng-enter.ng-enter-active,#loading-bar.ng-leave{opacity:1}#loading-bar .bar{-webkit-transition:width 350ms;-moz-transition:width 350ms;-o-transition:width 350ms;transition:width 350ms;background:#29d;position:fixed;z-index:10002;top:0;left:0;width:100%;height:2px;border-bottom-right-radius:1px;border-top-right-radius:1px}#loading-bar .peg{position:absolute;width:70px;right:0;top:0;height:2px;opacity:.45;-moz-box-shadow:#29d 1px 0 6px 1px;-ms-box-shadow:#29d 1px 0 6px 1px;-webkit-box-shadow:#29d 1px 0 6px 1px;box-shadow:#29d 1px 0 6px 1px;-moz-border-radius:100%;-webkit-border-radius:100%;border-radius:100%}#loading-bar-spinner{display:block;position:fixed;z-index:10002;top:10px;left:10px}#loading-bar-spinner .spinner-icon{width:14px;height:14px;border:2px solid transparent;border-top-color:#29d;border-left-color:#29d;border-radius:50%;-webkit-animation:loading-bar-spinner 400ms linear infinite;-moz-animation:loading-bar-spinner 400ms linear infinite;-ms-animation:loading-bar-spinner 400ms linear infinite;-o-animation:loading-bar-spinner 400ms linear infinite;animation:loading-bar-spinner 400ms linear infinite}@-webkit-keyframes loading-bar-spinner{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-moz-keyframes loading-bar-spinner{0%{-moz-transform:rotate(0);transform:rotate(0)}100%{-moz-transform:rotate(360deg);transform:rotate(360deg)}}@-o-keyframes loading-bar-spinner{0%{-o-transform:rotate(0);transform:rotate(0)}100%{-o-transform:rotate(360deg);transform:rotate(360deg)}}@-ms-keyframes loading-bar-spinner{0%{-ms-transform:rotate(0);transform:rotate(0)}100%{-ms-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes loading-bar-spinner{0%{transform:rotate(0)}100%{transform:rotate(360deg)}} 2 | -------------------------------------------------------------------------------- /dashboard/css/components/03.angular-dialog.min.css: -------------------------------------------------------------------------------- 1 | .ngdialog,.ngdialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0}@-webkit-keyframes ngdialog-fadeout{0%{opacity:1}100%{opacity:0}}@keyframes ngdialog-fadeout{0%{opacity:1}100%{opacity:0}}@-webkit-keyframes ngdialog-fadein{0%{opacity:0}100%{opacity:1}}@keyframes ngdialog-fadein{0%{opacity:0}100%{opacity:1}}.ngdialog{box-sizing:border-box;overflow:auto;overflow-y:scroll;-webkit-overflow-scrolling:touch;z-index:10000}.ngdialog *,.ngdialog :after,.ngdialog :before{box-sizing:inherit}.ngdialog.ngdialog-disabled-animation,.ngdialog.ngdialog-disabled-animation .ngdialog-content,.ngdialog.ngdialog-disabled-animation .ngdialog-overlay{-webkit-animation:none!important;animation:none!important}.ngdialog-overlay{background:rgba(0,0,0,.4);-webkit-backface-visibility:hidden;-webkit-animation:ngdialog-fadein .5s;animation:ngdialog-fadein .5s}.ngdialog-no-overlay{pointer-events:none}.ngdialog.ngdialog-closing .ngdialog-overlay{-webkit-backface-visibility:hidden;-webkit-animation:ngdialog-fadeout .5s;animation:ngdialog-fadeout .5s}.ngdialog-content{background:#fff;-webkit-backface-visibility:hidden;-webkit-animation:ngdialog-fadein .5s;animation:ngdialog-fadein .5s;pointer-events:all}.ngdialog.ngdialog-closing .ngdialog-content{-webkit-backface-visibility:hidden;-webkit-animation:ngdialog-fadeout .5s;animation:ngdialog-fadeout .5s}.ngdialog-close:before{font-family:Helvetica,Arial,sans-serif;content:'\00D7';cursor:pointer}body.ngdialog-open,html.ngdialog-open{overflow:hidden} 2 | -------------------------------------------------------------------------------- /dashboard/css/components/05.bootstrap-select-1.12.2.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap-select v1.12.2 (http://silviomoreto.github.io/bootstrap-select) 3 | * 4 | * Copyright 2013-2017 bootstrap-select 5 | * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) 6 | */ 7 | 8 | select.bs-select-hidden, 9 | select.selectpicker { 10 | display: none !important; 11 | } 12 | .bootstrap-select { 13 | width: 220px \0; 14 | /*IE9 and below*/ 15 | } 16 | .bootstrap-select > .dropdown-toggle { 17 | width: 100%; 18 | padding-right: 25px; 19 | z-index: 1; 20 | } 21 | .bootstrap-select > .dropdown-toggle.bs-placeholder, 22 | .bootstrap-select > .dropdown-toggle.bs-placeholder:hover, 23 | .bootstrap-select > .dropdown-toggle.bs-placeholder:focus, 24 | .bootstrap-select > .dropdown-toggle.bs-placeholder:active { 25 | color: #999; 26 | } 27 | .bootstrap-select > select { 28 | position: absolute !important; 29 | bottom: 0; 30 | left: 50%; 31 | display: block !important; 32 | width: 0.5px !important; 33 | height: 100% !important; 34 | padding: 0 !important; 35 | opacity: 0 !important; 36 | border: none; 37 | } 38 | .bootstrap-select > select.mobile-device { 39 | top: 0; 40 | left: 0; 41 | display: block !important; 42 | width: 100% !important; 43 | z-index: 2; 44 | } 45 | .has-error .bootstrap-select .dropdown-toggle, 46 | .error .bootstrap-select .dropdown-toggle { 47 | border-color: #b94a48; 48 | } 49 | .bootstrap-select.fit-width { 50 | width: auto !important; 51 | } 52 | .bootstrap-select:not([class*="col-"]):not([class*="form-control"]):not(.input-group-btn) { 53 | width: 220px; 54 | } 55 | .bootstrap-select .dropdown-toggle:focus { 56 | outline: thin dotted #333333 !important; 57 | outline: 5px auto -webkit-focus-ring-color !important; 58 | outline-offset: -2px; 59 | } 60 | .bootstrap-select.form-control { 61 | margin-bottom: 0; 62 | padding: 0; 63 | border: none; 64 | } 65 | .bootstrap-select.form-control:not([class*="col-"]) { 66 | width: 100%; 67 | } 68 | .bootstrap-select.form-control.input-group-btn { 69 | z-index: auto; 70 | } 71 | .bootstrap-select.form-control.input-group-btn:not(:first-child):not(:last-child) > .btn { 72 | border-radius: 0; 73 | } 74 | .bootstrap-select.btn-group:not(.input-group-btn), 75 | .bootstrap-select.btn-group[class*="col-"] { 76 | float: none; 77 | display: inline-block; 78 | margin-left: 0; 79 | } 80 | .bootstrap-select.btn-group.dropdown-menu-right, 81 | .bootstrap-select.btn-group[class*="col-"].dropdown-menu-right, 82 | .row .bootstrap-select.btn-group[class*="col-"].dropdown-menu-right { 83 | float: right; 84 | } 85 | .form-inline .bootstrap-select.btn-group, 86 | .form-horizontal .bootstrap-select.btn-group, 87 | .form-group .bootstrap-select.btn-group { 88 | margin-bottom: 0; 89 | } 90 | .form-group-lg .bootstrap-select.btn-group.form-control, 91 | .form-group-sm .bootstrap-select.btn-group.form-control { 92 | padding: 0; 93 | } 94 | .form-group-lg .bootstrap-select.btn-group.form-control .dropdown-toggle, 95 | .form-group-sm .bootstrap-select.btn-group.form-control .dropdown-toggle { 96 | height: 100%; 97 | font-size: inherit; 98 | line-height: inherit; 99 | border-radius: inherit; 100 | } 101 | .form-inline .bootstrap-select.btn-group .form-control { 102 | width: 100%; 103 | } 104 | .bootstrap-select.btn-group.disabled, 105 | .bootstrap-select.btn-group > .disabled { 106 | cursor: not-allowed; 107 | } 108 | .bootstrap-select.btn-group.disabled:focus, 109 | .bootstrap-select.btn-group > .disabled:focus { 110 | outline: none !important; 111 | } 112 | .bootstrap-select.btn-group.bs-container { 113 | position: absolute; 114 | height: 0 !important; 115 | padding: 0 !important; 116 | } 117 | .bootstrap-select.btn-group.bs-container .dropdown-menu { 118 | z-index: 1060; 119 | } 120 | .bootstrap-select.btn-group .dropdown-toggle .filter-option { 121 | display: inline-block; 122 | overflow: hidden; 123 | width: 100%; 124 | text-align: left; 125 | } 126 | .bootstrap-select.btn-group .dropdown-toggle .caret { 127 | position: absolute; 128 | top: 50%; 129 | right: 12px; 130 | margin-top: -2px; 131 | vertical-align: middle; 132 | } 133 | .bootstrap-select.btn-group[class*="col-"] .dropdown-toggle { 134 | width: 100%; 135 | } 136 | .bootstrap-select.btn-group .dropdown-menu { 137 | min-width: 100%; 138 | -webkit-box-sizing: border-box; 139 | -moz-box-sizing: border-box; 140 | box-sizing: border-box; 141 | } 142 | .bootstrap-select.btn-group .dropdown-menu.inner { 143 | position: static; 144 | float: none; 145 | border: 0; 146 | padding: 0; 147 | margin: 0; 148 | border-radius: 0; 149 | -webkit-box-shadow: none; 150 | box-shadow: none; 151 | } 152 | .bootstrap-select.btn-group .dropdown-menu li { 153 | position: relative; 154 | } 155 | .bootstrap-select.btn-group .dropdown-menu li.active small { 156 | color: #fff; 157 | } 158 | .bootstrap-select.btn-group .dropdown-menu li.disabled a { 159 | cursor: not-allowed; 160 | } 161 | .bootstrap-select.btn-group .dropdown-menu li a { 162 | cursor: pointer; 163 | -webkit-user-select: none; 164 | -moz-user-select: none; 165 | -ms-user-select: none; 166 | user-select: none; 167 | } 168 | .bootstrap-select.btn-group .dropdown-menu li a.opt { 169 | position: relative; 170 | padding-left: 2.25em; 171 | } 172 | .bootstrap-select.btn-group .dropdown-menu li a span.check-mark { 173 | display: none; 174 | } 175 | .bootstrap-select.btn-group .dropdown-menu li a span.text { 176 | display: inline-block; 177 | } 178 | .bootstrap-select.btn-group .dropdown-menu li small { 179 | padding-left: 0.5em; 180 | } 181 | .bootstrap-select.btn-group .dropdown-menu .notify { 182 | position: absolute; 183 | bottom: 5px; 184 | width: 96%; 185 | margin: 0 2%; 186 | min-height: 26px; 187 | padding: 3px 5px; 188 | background: #f5f5f5; 189 | border: 1px solid #e3e3e3; 190 | -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); 191 | box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); 192 | pointer-events: none; 193 | opacity: 0.9; 194 | -webkit-box-sizing: border-box; 195 | -moz-box-sizing: border-box; 196 | box-sizing: border-box; 197 | } 198 | .bootstrap-select.btn-group .no-results { 199 | padding: 3px; 200 | background: #f5f5f5; 201 | margin: 0 5px; 202 | white-space: nowrap; 203 | } 204 | .bootstrap-select.btn-group.fit-width .dropdown-toggle .filter-option { 205 | position: static; 206 | } 207 | .bootstrap-select.btn-group.fit-width .dropdown-toggle .caret { 208 | position: static; 209 | top: auto; 210 | margin-top: -1px; 211 | } 212 | .bootstrap-select.btn-group.show-tick .dropdown-menu li.selected a span.check-mark { 213 | position: absolute; 214 | display: inline-block; 215 | right: 15px; 216 | margin-top: 5px; 217 | } 218 | .bootstrap-select.btn-group.show-tick .dropdown-menu li a span.text { 219 | margin-right: 34px; 220 | } 221 | .bootstrap-select.show-menu-arrow.open > .dropdown-toggle { 222 | z-index: 1061; 223 | } 224 | .bootstrap-select.show-menu-arrow .dropdown-toggle:before { 225 | content: ''; 226 | border-left: 7px solid transparent; 227 | border-right: 7px solid transparent; 228 | border-bottom: 7px solid rgba(204, 204, 204, 0.2); 229 | position: absolute; 230 | bottom: -4px; 231 | left: 9px; 232 | display: none; 233 | } 234 | .bootstrap-select.show-menu-arrow .dropdown-toggle:after { 235 | content: ''; 236 | border-left: 6px solid transparent; 237 | border-right: 6px solid transparent; 238 | border-bottom: 6px solid white; 239 | position: absolute; 240 | bottom: -4px; 241 | left: 10px; 242 | display: none; 243 | } 244 | .bootstrap-select.show-menu-arrow.dropup .dropdown-toggle:before { 245 | bottom: auto; 246 | top: -3px; 247 | border-top: 7px solid rgba(204, 204, 204, 0.2); 248 | border-bottom: 0; 249 | } 250 | .bootstrap-select.show-menu-arrow.dropup .dropdown-toggle:after { 251 | bottom: auto; 252 | top: -3px; 253 | border-top: 6px solid white; 254 | border-bottom: 0; 255 | } 256 | .bootstrap-select.show-menu-arrow.pull-right .dropdown-toggle:before { 257 | right: 12px; 258 | left: auto; 259 | } 260 | .bootstrap-select.show-menu-arrow.pull-right .dropdown-toggle:after { 261 | right: 13px; 262 | left: auto; 263 | } 264 | .bootstrap-select.show-menu-arrow.open > .dropdown-toggle:before, 265 | .bootstrap-select.show-menu-arrow.open > .dropdown-toggle:after { 266 | display: block; 267 | } 268 | .bs-searchbox, 269 | .bs-actionsbox, 270 | .bs-donebutton { 271 | padding: 4px 8px; 272 | } 273 | .bs-actionsbox { 274 | width: 100%; 275 | -webkit-box-sizing: border-box; 276 | -moz-box-sizing: border-box; 277 | box-sizing: border-box; 278 | } 279 | .bs-actionsbox .btn-group button { 280 | width: 50%; 281 | } 282 | .bs-donebutton { 283 | float: left; 284 | width: 100%; 285 | -webkit-box-sizing: border-box; 286 | -moz-box-sizing: border-box; 287 | box-sizing: border-box; 288 | } 289 | .bs-donebutton .btn-group button { 290 | width: 100%; 291 | } 292 | .bs-searchbox + .bs-actionsbox { 293 | padding: 0 8px 4px; 294 | } 295 | .bs-searchbox .form-control { 296 | margin-bottom: 0; 297 | width: 100%; 298 | float: none; 299 | } 300 | /*# sourceMappingURL=bootstrap-select.css.map */ -------------------------------------------------------------------------------- /dashboard/css/components/06.angular-dialog-theme.min.css: -------------------------------------------------------------------------------- 1 | @-webkit-keyframes ngdialog-flyin{0%{opacity:0;-webkit-transform:translateY(-40px);transform:translateY(-40px)}100%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes ngdialog-flyin{0%{opacity:0;-webkit-transform:translateY(-40px);transform:translateY(-40px)}100%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes ngdialog-flyout{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}100%{opacity:0;-webkit-transform:translateY(-40px);transform:translateY(-40px)}}@keyframes ngdialog-flyout{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}100%{opacity:0;-webkit-transform:translateY(-40px);transform:translateY(-40px)}}.ngdialog.ngdialog-theme-default{padding-bottom:32px;padding-top:32px}.ngdialog.ngdialog-theme-default.ngdialog-closing .ngdialog-content{-webkit-animation:ngdialog-flyout .5s;animation:ngdialog-flyout .5s}.ngdialog.ngdialog-theme-default .ngdialog-content{-webkit-animation:ngdialog-flyin .5s;animation:ngdialog-flyin .5s;background:#f0f0f0;border-radius:5px;color:#444;font-family:Helvetica,sans-serif;font-size:1.1em;line-height:1.5em;margin:0 auto;max-width:100%;padding:1em;position:relative;width:480px}.ngdialog.ngdialog-theme-default .ngdialog-close{outline:none;border-radius:5px;cursor:pointer;position:absolute;right:0;top:0;width: 36px;height:36px;border:0;background:transparent;box-shadow:none;}.ngdialog.ngdialog-theme-default .ngdialog-close:before{background:0 0;border-radius:3px;color:#bbb;content:'\00D7';font-size:26px;font-weight:400;height:30px;line-height:26px;position:absolute;right:3px;text-align:center;top:3px;width:30px}.ngdialog.ngdialog-theme-default .ngdialog-close:active:before,.ngdialog.ngdialog-theme-default .ngdialog-close:hover:before{color:#777}.ngdialog.ngdialog-theme-default .ngdialog-message{margin-bottom:.5em}.ngdialog.ngdialog-theme-default .ngdialog-input{margin-bottom:1em}.ngdialog.ngdialog-theme-default .ngdialog-input input[type=text],.ngdialog.ngdialog-theme-default .ngdialog-input input[type=password],.ngdialog.ngdialog-theme-default .ngdialog-input input[type=email],.ngdialog.ngdialog-theme-default .ngdialog-input input[type=url],.ngdialog.ngdialog-theme-default .ngdialog-input textarea{background:#fff;border:0;border-radius:3px;font-family:inherit;font-size:inherit;font-weight:inherit;margin:0 0 .25em;min-height:2.5em;padding:.25em .67em;width:100%}.ngdialog.ngdialog-theme-default .ngdialog-input input[type=text]:focus,.ngdialog.ngdialog-theme-default .ngdialog-input input[type=password]:focus,.ngdialog.ngdialog-theme-default .ngdialog-input input[type=email]:focus,.ngdialog.ngdialog-theme-default .ngdialog-input input[type=url]:focus,.ngdialog.ngdialog-theme-default .ngdialog-input textarea:focus{box-shadow:inset 0 0 0 2px #8dbdf1;outline:0}.ngdialog.ngdialog-theme-default .ngdialog-buttons:after{content:'';display:table;clear:both}.ngdialog.ngdialog-theme-default .ngdialog-button{border:0;border-radius:3px;cursor:pointer;float:right;font-family:inherit;font-size:.8em;letter-spacing:.1em;line-height:1em;margin:0 0 0 .5em;padding:.75em 2em;text-transform:uppercase}.ngdialog.ngdialog-theme-default .ngdialog-button:focus{-webkit-animation:ngdialog-pulse 1.1s infinite;animation:ngdialog-pulse 1.1s infinite;outline:0}@media (max-width:568px){.ngdialog.ngdialog-theme-default .ngdialog-button:focus{-webkit-animation:none;animation:none}}.ngdialog.ngdialog-theme-default .ngdialog-button.ngdialog-button-primary{background:#3288e6;color:#fff}.ngdialog.ngdialog-theme-default .ngdialog-button.ngdialog-button-secondary{background:#e0e0e0;color:#777} 2 | -------------------------------------------------------------------------------- /dashboard/css/components/07.material-switch.min.css: -------------------------------------------------------------------------------- 1 | .material-switch>input[type=checkbox]{display:none}.material-switch>label{cursor:pointer;height:0;position:relative;width:40px}.material-switch>label::after,.material-switch>label::before{content:'';margin-top:-8px;position:absolute}.material-switch>label::before{background:#000;box-shadow:inset 0 0 10px rgba(0,0,0,.5);border-radius:8px;height:16px;opacity:.3;transition:all .4s ease-in-out;width:40px}.material-switch>label::after{background:#fff;border-radius:16px;box-shadow:0 0 5px rgba(0,0,0,.3);height:24px;left:-4px;top:-4px;transition:all .3s ease-in-out;width:24px}.material-switch>input[type=checkbox]:checked+label::before{background:inherit;opacity:.5}.material-switch>input[type=checkbox]:checked+label::after{background:inherit;left:20px} 2 | -------------------------------------------------------------------------------- /dashboard/css/components/08.aCKolor.min.css: -------------------------------------------------------------------------------- 1 | a-ckolor-wheel{display:block;position:absolute;z-index:9999;-webkit-filter:none!important;filter:none!important}.c-ckolor__input-row{margin:14px 0}.c-ckolor__input-row.center{text-align:center}.c-ckolor__input-wrapper{width:200px;height:21px;line-height:21px;padding:7px;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.14),0 3px 10px rgba(0,0,0,.035);border-radius:2px;margin:7px 0;font-size:14px;color:#555;font-family:sans-serif;text-transform:uppercase;cursor:pointer}.c-ckolor__input-wrapper button{outline:0!important;background:0 0;border:none;-webkit-appearance:none;width:21px;font-size:18px;padding:0;color:#fff;opacity:.7;box-shadow:none;margin:-4px 0 0;cursor:pointer;transition:all .2s}.c-ckolor__input-wrapper button:hover{transform:scale(1.05);opacity:1}.c-ckolor__input-wrapper span{display:inline-block;vertical-align:middle}.c-ckolor__overlay{width:100%;height:100%;position:fixed;left:0;top:0;background:radial-gradient(ellipse at 50% 250px,rgba(19,49,63,.91) 0,rgba(0,0,0,.91) 100%);-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:9999}.c-ckolor__overlay input[type=text],.c-ckolor__overlay input[type=number]{color:#aaa;font-size:12px;text-align:center;font-style:normal;text-transform:uppercase;display:inline-block;height:19px;background:rgba(255,255,255,.07);border:none;box-shadow:none;box-sizing:border-box;padding:0 3px;margin:0;width:100%;border-radius:2px;-webkit-appearance:none;outline:0!important;transition:all .2s}.c-ckolor__overlay input[type=text]:focus,.c-ckolor__overlay input[type=text]:hover,.c-ckolor__overlay input[type=number]:focus,.c-ckolor__overlay input[type=number]:hover{background:rgba(255,255,255,.14)}.c-ckolor__overlay input[type=text][type=number],.c-ckolor__overlay input[type=number][type=number]{-moz-appearance:textfield}.c-ckolor__overlay input[type=text][type=number]::-webkit-inner-spin-button,.c-ckolor__overlay input[type=text][type=number]::-webkit-outer-spin-button,.c-ckolor__overlay input[type=number][type=number]::-webkit-inner-spin-button,.c-ckolor__overlay input[type=number][type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.c-ckolor__overlay .c-ckolor__swatch{margin:0 0 0 1px;width:0;height:0;display:inline-block;vertical-align:middle;padding:18px;position:relative}.c-ckolor__overlay .c-ckolor__swatch span{display:block;width:100%;height:100%;box-shadow:inset 0 0 0 1px rgba(255,255,255,.07),0 1px 0 1px rgba(0,0,0,.07);border-radius:50%;position:absolute;top:0;left:0}.c-ckolor__overlay .c-ckolor__input-wrapper{width:30%;overflow:hidden;background:0 0;box-shadow:none;color:#aaa;display:inline-block;padding:0;margin:0 1px;line-height:14px}.c-ckolor__overlay .c-ckolor__input-wrapper.smaller{width:30px}.c-ckolor__overlay .c-ckolor__input-wrapper.button{width:9%;vertical-align:middle;margin:0 0 0 2px}.c-ckolor__overlay .c-ckolor__input-wrapper.dropdown{width:20%;overflow:visible;position:relative;vertical-align:middle;text-align:center;font-size:12px}.c-ckolor__overlay .c-ckolor__input-wrapper.dropdown div{margin-left:3px}.c-ckolor__overlay .c-ckolor__input-wrapper.dropdown div:before{content:"\f0dd";display:inline-block;font:normal normal normal 14px/1 FontAwesome;margin:0 3px 0 0;position:relative;top:-3px}.c-ckolor__overlay .c-ckolor__input-wrapper.dropdown ul{margin:0;padding:0;display:block;position:absolute;height:auto;overflow:hidden;max-height:0;background:rgba(255,255,255,.77);width:100%;color:#333;border-radius:2px;transition:all .2s}.c-ckolor__overlay .c-ckolor__input-wrapper.dropdown ul li{display:block;padding:5px 7px;box-shadow:0 1px 0 rgba(0,0,0,.05)}.c-ckolor__overlay .c-ckolor__input-wrapper.dropdown ul li:hover{background:#fff}.c-ckolor__overlay .c-ckolor__input-wrapper.dropdown:hover ul{max-height:140px}.c-ckolor__overlay .c-ckolor__input-wrapper.hex{width:100%}.c-ckolor__overlay .c-ckolor__input-wrapper.hex input{text-align:left}.c-ckolor_previous-color-container{margin:28px auto 14px;box-sizing:border-box;padding:28px 7px 0;box-shadow:inset 0 1px 0 rgba(255,255,255,.05),0 -1px 0 rgba(0,0,0,.2);text-align:center}.c-ckolor_previous-swatch{height:0;display:inline-block;cursor:pointer;box-shadow:inset 0 0 0 1px rgba(255,255,255,.1),0 0 0 1px rgba(0,0,0,.12);padding:3%;margin:1.7%;border-radius:50%;transition:transform .2s}.c-ckolor_previous-swatch:hover{transform:scale(1.1)}.c-ckolor__overlay-blur>*{-webkit-filter:blur(3px);filter:blur(3px);transition:-webkit-filter .2s;transition:filter .2s;transition:filter .2s,-webkit-filter .2s}.c-ckolor__overlay-inner-outer{position:relative;overflow:auto;width:100%;height:100%}.c-ckolor__overlay-inner{width:280px;position:relative;margin:35px auto 20px}.c-ckolor__overlay-inputs{width:40%;display:inline-block;vertical-align:middle;position:relative;top:2px}.c-ckolor__alpha-wrapper{background:linear-gradient(0deg,rgba(138,138,138,.14) 0,rgba(138,138,138,.14) 1px,transparent 1px,transparent 5px),linear-gradient(90deg,rgba(138,138,138,.14) 0,rgba(138,138,138,.14) 1px,transparent 1px,transparent 5px);background-repeat:repeat;background-size:5px 5px;background-position:7px 6px;border-radius:50px}.c-ckolor__alpha,.c-ckolor__saturation{position:relative;width:100%;height:21px;border-radius:50px;cursor:pointer;box-shadow:inset 0 0 0 1px rgba(255,255,255,.07),0 1px 0 1px rgba(0,0,0,.07)}.c-ckolor__alpha:hover .c-ckolor__alpha-handle,.c-ckolor__saturation:hover .c-ckolor__saturation-handle{transform:scale(1.1);background:rgba(255,255,255,.7);box-shadow:inset 0 0 0 1px #fff,inset 0 2px 14px rgba(0,0,0,.16),0 1px 3px rgba(0,0,0,.25),0 7px 14px rgba(0,0,0,.2)}.c-ckolor__alpha-handle,.c-ckolor__saturation-handle{pointer-events:none;position:absolute;width:14px;height:14px;background:rgba(255,255,255,.4);border-radius:50%;top:3px;left:50%;margin-left:-7px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.79),inset 0 2px 14px rgba(0,0,0,.22),0 1px 3px rgba(0,0,0,.14);transition:transform .2s,background .2s,box-shadow .2s;cursor:pointer;transform:scale(1)}.c-ckolor__swatch{width:14px;height:14px;display:inline-block;vertical-align:middle;border-radius:2px}.c-ckolor__wheel-scoop{pointer-events:none;position:absolute;top:50%;left:50%;width:20px;height:20px;border-radius:50%;background:red;margin:-11px 0 0 -11px;box-shadow:0 0 0 2px #fff;transition:transform .2s}.c-ckolor__wheel{overflow:hidden;width:0;height:0;padding:50%;position:relative;box-shadow:0 0 0 6px #fff;margin-bottom:28px;cursor:pointer;background:#fff;border-radius:50%;z-index:0}.c-ckolor__wheel,.c-ckolor__wheel *{user-drag:none;user-select:none;-moz-user-select:none;-webkit-user-drag:none;-webkit-user-select:none;-ms-user-select:none}.c-ckolor__wheel-color{display:block}.c-ckolor__wheel-color:nth-child(1){transform:rotate(10deg)}.c-ckolor__wheel-color:nth-child(2){transform:rotate(20deg)}.c-ckolor__wheel-color:nth-child(3){transform:rotate(30deg)}.c-ckolor__wheel-color:nth-child(4){transform:rotate(40deg)}.c-ckolor__wheel-color:nth-child(5){transform:rotate(50deg)}.c-ckolor__wheel-color:nth-child(6){transform:rotate(60deg)}.c-ckolor__wheel-color:nth-child(7){transform:rotate(70deg)}.c-ckolor__wheel-color:nth-child(8){transform:rotate(80deg)}.c-ckolor__wheel-color:nth-child(9){transform:rotate(90deg)}.c-ckolor__wheel-color:nth-child(10){transform:rotate(100deg)}.c-ckolor__wheel-color:nth-child(11){transform:rotate(110deg)}.c-ckolor__wheel-color:nth-child(12){transform:rotate(120deg)}.c-ckolor__wheel-color:nth-child(13){transform:rotate(130deg)}.c-ckolor__wheel-color:nth-child(14){transform:rotate(140deg)}.c-ckolor__wheel-color:nth-child(15){transform:rotate(150deg)}.c-ckolor__wheel-color:nth-child(16){transform:rotate(160deg)}.c-ckolor__wheel-color:nth-child(17){transform:rotate(170deg)}.c-ckolor__wheel-color:nth-child(18){transform:rotate(180deg)}.c-ckolor__wheel-color:nth-child(19){transform:rotate(190deg)}.c-ckolor__wheel-color:nth-child(20){transform:rotate(200deg)}.c-ckolor__wheel-color:nth-child(21){transform:rotate(210deg)}.c-ckolor__wheel-color:nth-child(22){transform:rotate(220deg)}.c-ckolor__wheel-color:nth-child(23){transform:rotate(230deg)}.c-ckolor__wheel-color:nth-child(24){transform:rotate(240deg)}.c-ckolor__wheel-color:nth-child(25){transform:rotate(250deg)}.c-ckolor__wheel-color:nth-child(26){transform:rotate(260deg)}.c-ckolor__wheel-color:nth-child(27){transform:rotate(270deg)}.c-ckolor__wheel-color:nth-child(28){transform:rotate(280deg)}.c-ckolor__wheel-color:nth-child(29){transform:rotate(290deg)}.c-ckolor__wheel-color:nth-child(30){transform:rotate(300deg)}.c-ckolor__wheel-color:nth-child(31){transform:rotate(310deg)}.c-ckolor__wheel-color:nth-child(32){transform:rotate(320deg)}.c-ckolor__wheel-color:nth-child(33){transform:rotate(330deg)}.c-ckolor__wheel-color:nth-child(34){transform:rotate(340deg)}.c-ckolor__wheel-color:nth-child(35){transform:rotate(350deg)}.c-ckolor__wheel-color:nth-child(36){transform:rotate(360deg)}.c-ckolor__wheel-color:nth-child(37){transform:rotate(370deg)}.c-ckolor__wheel-color,.c-ckolor__wheel-color-inner1,.c-ckolor__wheel-color-inner2,.c-ckolor__wheel-color-inner2-2,.c-ckolor__wheel-value{width:100%;height:100%;position:absolute;top:0;left:0;pointer-events:none;overflow:hidden}.c-ckolor__wheel-colors{width:120%;height:120%;margin-left:-10%;margin-top:-10%;-webkit-filter:blur(14px);filter:blur(14px);background:#000;position:absolute;top:0;left:0}.c-ckolor__wheel-color-inner1{transform:rotate(60deg) translate(50%,50%)}.c-ckolor__wheel-color-inner2{transform:rotate(-79deg) translate(49%,26%);transform-origin:0;background-image:linear-gradient(177deg,transparent 30%,rgba(0,0,0,.35) 38%,rgba(0,0,0,.5) 42%,rgba(0,0,0,.9) 55%),linear-gradient(177deg,rgba(255,255,255,.9) 13%,rgba(255,255,255,0) 30%)}.c-ckolor__wheel-value{box-shadow:inset 0 0 3px rgba(255,255,255,.53),inset 0 0 5px 1px rgba(0,0,0,.12),inset 0 0 0 1px rgba(0,0,0,.38),0 0 0 1px #000;background:radial-gradient(ellipse at center,rgba(255,255,255,.2) 0,rgba(255,255,255,0) 18%),radial-gradient(ellipse at center,rgba(255,255,255,.3) 0,rgba(255,255,255,0) 11%),radial-gradient(ellipse at center,rgba(255,255,255,.5) 0,rgba(255,255,255,0) 6%),radial-gradient(ellipse at center,rgba(255,255,255,.5) 0,rgba(255,255,255,0) 3%);pointer-events:all;border-radius:50%;overflow:hidden}.c-ckolor__wheel-value:hover .c-ckolor__wheel-scoop{transform:scale(1.1)} 2 | -------------------------------------------------------------------------------- /dashboard/css/components/09.angular-sortable.min.css: -------------------------------------------------------------------------------- 1 | /* ng-sortable css file */ 2 | .as-sortable-item,.as-sortable-placeholder{display:block}.as-sortable-item{-ms-touch-action:none;touch-action:none;-webkit-touch-callout:none}.as-sortable-item-handle{cursor:move;cursor:-webkit-grab;cursor:-moz-grab}.as-sortable-drag{position:absolute;pointer-events:none;z-index:9999}.as-sortable-hidden{display:none!important}.as-sortable-un-selectable{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none} 3 | 4 | /* ng-sortable css file */ 5 | .sas-sortable-item,.sas-sortable-placeholder{min-height:20px;margin:1px 2px 5px 1px;border-radius:10px}.sas-sortable-item{border:solid 1px darkgrey;background-color:#fff}.sas-sortable-placeholder{border:1px dashed darkgrey;box-sizing:border-box;background-color:#dbdbdb}.sas-sortable-drag{opacity:.8} 6 | -------------------------------------------------------------------------------- /dashboard/css/components/10.angular-bootstrap-toggle.min.css: -------------------------------------------------------------------------------- 1 | .checkbox label .toggle,.checkbox-inline .toggle{margin-left:-20px;margin-right:5px}.toggle{font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;position:relative;overflow:hidden}.toggle-group,.toggle-off,.toggle-on{position:absolute;top:0;bottom:0}.toggle-group{width:200%;left:0;transition:left .35s;-webkit-transition:left .35s;-moz-user-select:none;-webkit-user-select:none}.toggle.off .toggle-group{left:-100%}.toggle-on{left:0;right:50%;margin:0;border:0;border-radius:0}.toggle-off{left:50%;right:0;margin:0;border:0;border-radius:0}.toggle-handle{position:relative;margin:0 auto;padding-top:0;padding-bottom:0;height:100%;width:0;border-width:0 1px}.toggle.btn{min-width:59px;min-height:34px}.toggle-on.btn{padding-right:24px}.toggle-off.btn{padding-left:24px}.toggle.btn-lg{min-width:79px;min-height:45px}.toggle-on.btn-lg{padding-right:31px}.toggle-off.btn-lg{padding-left:31px}.toggle-handle.btn-lg{width:40px}.toggle.btn-sm{min-width:50px;min-height:30px}.toggle-on.btn-sm{padding-right:20px}.toggle-off.btn-sm{padding-left:20px}.toggle.btn-xs{min-width:35px;min-height:22px}.toggle-on.btn-xs{padding-right:12px}.toggle-off.btn-xs{padding-left:12px} 2 | -------------------------------------------------------------------------------- /dashboard/css/components/11.angular-smart-area-1.1.0.min.css: -------------------------------------------------------------------------------- 1 | textarea.sa-realArea,textarea.sa-realArea:focus,textarea.sa-realArea:hover{border-color:transparent}.sa-wrapper{width:100%;position:relative}.sa-fakeArea,.sa-realArea{font-size:inherit;color:inherit;resize:none;overflow:hidden;z-index:0}textarea.sa-realArea{-webkit-text-fill-color:transparent;position:absolute;top:0;left:0;background:0 0}.sa-fakeArea{color:#000;height:100%}.sa-dropdown{position:absolute;min-width:100px;text-align:left;z-index:1}.sa-dropdown .dropdown-menu{display:block}.sa-dropdown a{padding:2px 6px;font-size:.9em}.sa-dropdown a.active{background-color:#4497de;color:#fff} 2 | -------------------------------------------------------------------------------- /dashboard/css/components/rebuild.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | rm components.min.css 4 | cat 0* >> components.min.css 5 | cat 1* >> components.min.css 6 | -------------------------------------------------------------------------------- /dashboard/css/modules/fuel.module.css: -------------------------------------------------------------------------------- 1 | viewer, 2 | ng-view { 3 | display: block; 4 | top: 0px; 5 | } 6 | 7 | div.main { 8 | position: fixed; 9 | left: 0px; 10 | top: 0px; 11 | right: 0px; 12 | bottom: 0px; 13 | background: #fcfcfc; 14 | } 15 | 16 | 17 | div.form-group { 18 | padding: 8px; 19 | margin: 0px; 20 | border-bottom: solid 1px #ddd; 21 | background: #eee; 22 | } 23 | 24 | /* 25 | * Main content 26 | */ 27 | graph { 28 | position: fixed; 29 | top: 0px; 30 | height: 50%; 31 | left: 320px; 32 | right: 0px; 33 | display: block; 34 | border-left: solid 1px #ddd; 35 | background: #fff; 36 | } 37 | 38 | data { 39 | position: fixed; 40 | top: 50%; 41 | height: 50%; 42 | left: 320px; 43 | right: 0px; 44 | bottom: 0px; 45 | display: block; 46 | border-left: solid 1px #ddd; 47 | border-top: solid 1px #ddd; 48 | background: #fcfcfc; 49 | overflow: hidden; 50 | overflow-y: auto; 51 | } 52 | 53 | graph > canvas, 54 | graph > div.chart { 55 | position: absolute; 56 | left: 0px; 57 | top: 0px; 58 | right: 0px; 59 | bottom: 0px; 60 | width: 100%; 61 | height: 100%; 62 | } 63 | 64 | graph label { 65 | padding: 8px; 66 | } 67 | 68 | li { 69 | display: block; 70 | overflow: hidden; 71 | list-style: none; 72 | padding: 0px; 73 | margin: 0px; 74 | z-index: 1; 75 | } 76 | 77 | li label { 78 | width: 100%; 79 | padding: 0px 0px 0px 8px; 80 | margin: 0px; 81 | line-height: 24px; 82 | cursor: pointer; 83 | display: block; 84 | overflow: hidden; 85 | text-overflow: ellipsis; 86 | white-space: nowrap; 87 | } 88 | 89 | li created { 90 | display: none; 91 | } 92 | 93 | li[selected] { 94 | z-index: 2; 95 | } 96 | 97 | 98 | li[selected] > label { 99 | color: #66c; 100 | cursor: default; 101 | } 102 | 103 | ul[canisters] > li { 104 | border-bottom: solid 1px #eee; 105 | } 106 | 107 | ul[canisters] { 108 | margin: 0px; 109 | padding: 0px; 110 | overflow: hidden; 111 | overflow-y: auto; 112 | width: 320px; 113 | height: 100%; 114 | } 115 | 116 | ul[fuelStreams] { 117 | display: block; 118 | margin: 0px; 119 | padding: 0px; 120 | padding-left: 20px; 121 | } 122 | 123 | ul[fuelStreams] li label { 124 | font-weight: normal; 125 | } 126 | 127 | 128 | @media (max-width: 767px) { 129 | 130 | .li { 131 | height: initial; 132 | sline-height: 44px !important; 133 | } 134 | 135 | div.main { 136 | overflow-y: auto; 137 | } 138 | 139 | ul[canisters] { 140 | position: relative; 141 | left: auto; 142 | top: auto; 143 | right: auto; 144 | display: block; 145 | width: 100%; 146 | height: auto; 147 | } 148 | 149 | graph, 150 | data { 151 | position: relative; 152 | left: auto; 153 | top: auto; 154 | right: auto; 155 | display: block; 156 | width: 100%; 157 | height: 50%; 158 | } 159 | } 160 | 161 | .collapse-control { 162 | padding-top: 3px; 163 | padding-bottom: 3px; 164 | padding-right: 14px; 165 | } -------------------------------------------------------------------------------- /dashboard/css/modules/fuel.module.css.bak: -------------------------------------------------------------------------------- 1 | viewer, 2 | ng-view { 3 | display: block; 4 | top: 0px; 5 | } 6 | 7 | div.main { 8 | position: fixed; 9 | left: 0px; 10 | top: 0px; 11 | right: 0px; 12 | bottom: 0px; 13 | } 14 | 15 | /* 16 | * Main content 17 | */ 18 | graph { 19 | position: fixed; 20 | top: 50%; 21 | height: 50%; 22 | left: 0px; 23 | right: 0px; 24 | bottom: 0px; 25 | display: block; 26 | border-top: solid 1px #ddd; 27 | background: #eee; 28 | } 29 | 30 | graph > label { 31 | height: 44px; 32 | line-height: 44px; 33 | padding: 0px 8px; 34 | display: block; 35 | width: 100%; 36 | overflow: hidden; 37 | text-overflow: ellipsis; 38 | white-space: nowrap; 39 | border-bottom: solid 1px #ddd; 40 | } 41 | 42 | graph > canvas { 43 | position: absolute; 44 | left: 0px; 45 | top: 0px; 46 | right: 0px; 47 | bottom: 0px; 48 | width: 100%; 49 | height: 100%; 50 | } 51 | 52 | li { 53 | list-style: none; 54 | line-height: 32px; 55 | sheight: 32px; 56 | padding: 0px; 57 | margin: 0px; 58 | z-index: 1; 59 | } 60 | 61 | li label { 62 | width: 100%; 63 | padding: 0px 0px 0px 8px; 64 | margin: 0px; 65 | cursor: pointer; 66 | } 67 | 68 | li created { 69 | display: inline; 70 | float: right; 71 | font-size: 0.75em; 72 | padding: 0px 4px; 73 | color: #ccc; 74 | } 75 | 76 | li[selected] { 77 | z-index: 2; 78 | } 79 | 80 | li[selected] > label { 81 | background: rgba(128, 224, 255, 0.2); 82 | cursor: default; 83 | } 84 | 85 | ul[canisters] { 86 | margin: 0px; 87 | padding: 0px; 88 | overflow: hidden; 89 | overflow-y: auto; 90 | width: 100%; 91 | height: 50%; 92 | } 93 | 94 | ul[fuelStreams] { 95 | display: none; 96 | margin: 0px; 97 | padding: 0px; 98 | } 99 | 100 | li[canister][selected] ul[fuelStreams] { 101 | display: block; 102 | } 103 | 104 | @media (min-width: 768px) { 105 | ul[canisters] { 106 | position: fixed; 107 | left: 0px; 108 | top: 0px; 109 | width: 50%; 110 | } 111 | 112 | ul[fuelStreams] { 113 | position: fixed; 114 | left: 50%; 115 | top: 0px; 116 | height: 50%; 117 | width: 50%; 118 | border-left: solid 1px #ccc; 119 | padding: 0px; 120 | } 121 | 122 | 123 | } 124 | 125 | 126 | @media (max-width: 767px) { 127 | 128 | .li { 129 | height: initial; 130 | sline-height: 44px !important; 131 | } 132 | 133 | ul[fuelStreams] label { 134 | border-left: solid 16px #fff; 135 | } 136 | 137 | ul[fuelStreams] > li[selected] { 138 | } 139 | 140 | ul[fuelStreams] > li[selected] > label { 141 | border-left: 0px; 142 | padding-left: 24px; 143 | background: rgba(128, 224, 255, 0.3); 144 | } 145 | 146 | } 147 | -------------------------------------------------------------------------------- /dashboard/css/modules/register.module.css: -------------------------------------------------------------------------------- 1 | body { 2 | overflow-y: auto; 3 | background-color: #fff; 4 | display: flex; 5 | align-items: center; 6 | justify-content: center; 7 | } 8 | 9 | .loginbox { 10 | max-width: 300px; 11 | margin: 0 auto; 12 | } 13 | 14 | .loginbox-logo { 15 | max-width: 100%; 16 | } 17 | 18 | .loginbox .input-group .form-control, 19 | .loginbox .input-group .btn { 20 | border-radius: 0 !important; 21 | } 22 | 23 | input[name="code"] { 24 | font-size: 26px; 25 | text-transform: lowercase; 26 | } 27 | 28 | ng-view { 29 | position: relative; 30 | } 31 | 32 | #instance, 33 | .loginbox .input-group, 34 | .help-row { 35 | margin-top: 40px; 36 | } 37 | 38 | 39 | .help-row{ 40 | text-align: center; 41 | } 42 | 43 | .help-row a{ 44 | text-decoration: none; 45 | color: #fff; 46 | } 47 | 48 | .help-row a:hover{ 49 | text-decoration: none; 50 | color: #fff; 51 | } 52 | -------------------------------------------------------------------------------- /dashboard/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imnotbob/webCoRE/ae1ff1d7863296f02aae2ff9e93f95fd1b4be2bc/dashboard/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /dashboard/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imnotbob/webCoRE/ae1ff1d7863296f02aae2ff9e93f95fd1b4be2bc/dashboard/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /dashboard/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imnotbob/webCoRE/ae1ff1d7863296f02aae2ff9e93f95fd1b4be2bc/dashboard/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /dashboard/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imnotbob/webCoRE/ae1ff1d7863296f02aae2ff9e93f95fd1b4be2bc/dashboard/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /dashboard/html/modules/fuel.module.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 |
5 |
6 | 7 |
8 | 26 | 27 | 28 | 29 |
30 |
31 | 32 |
33 |
34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 |
{{name}}
DateValue
{{utcToString(point.x)}}{{point.y}}
51 |
52 |
53 |
54 |
55 |
56 | 57 | 58 | 59 | -------------------------------------------------------------------------------- /dashboard/html/modules/fuel.module.html.bak: -------------------------------------------------------------------------------- 1 | 2 | webCoRE 3 | 4 | 10 | 11 | 12 |
13 | 26 | 27 | 28 | 29 | 30 | 31 |
32 |
33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 |
{{name}}
DateValue
{{utcToString(point.x)}}{{point.y}}
50 |
51 |
52 |
53 |
54 |
55 | 56 | 57 | 58 | -------------------------------------------------------------------------------- /dashboard/html/modules/register.module.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 |
5 | 6 |
7 |
8 |

Enter your registration code from the webCoRE SmartApp to get started.

9 |

Need help finding your registration code?

10 |
11 | 12 | 13 | 14 | 15 |

16 |

Cancel

17 |
18 |
19 | 27 |
28 |
29 | 30 | 31 | 32 | 60 | -------------------------------------------------------------------------------- /dashboard/img/altitude.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imnotbob/webCoRE/ae1ff1d7863296f02aae2ff9e93f95fd1b4be2bc/dashboard/img/altitude.png -------------------------------------------------------------------------------- /dashboard/img/app-CoRE3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imnotbob/webCoRE/ae1ff1d7863296f02aae2ff9e93f95fd1b4be2bc/dashboard/img/app-CoRE3x.png -------------------------------------------------------------------------------- /dashboard/img/favicon/android-chrome-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imnotbob/webCoRE/ae1ff1d7863296f02aae2ff9e93f95fd1b4be2bc/dashboard/img/favicon/android-chrome-192x192.png -------------------------------------------------------------------------------- /dashboard/img/favicon/android-chrome-512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imnotbob/webCoRE/ae1ff1d7863296f02aae2ff9e93f95fd1b4be2bc/dashboard/img/favicon/android-chrome-512x512.png -------------------------------------------------------------------------------- /dashboard/img/favicon/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imnotbob/webCoRE/ae1ff1d7863296f02aae2ff9e93f95fd1b4be2bc/dashboard/img/favicon/apple-touch-icon.png -------------------------------------------------------------------------------- /dashboard/img/favicon/browserconfig.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | #603cba 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /dashboard/img/favicon/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imnotbob/webCoRE/ae1ff1d7863296f02aae2ff9e93f95fd1b4be2bc/dashboard/img/favicon/favicon-16x16.png -------------------------------------------------------------------------------- /dashboard/img/favicon/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imnotbob/webCoRE/ae1ff1d7863296f02aae2ff9e93f95fd1b4be2bc/dashboard/img/favicon/favicon-32x32.png -------------------------------------------------------------------------------- /dashboard/img/favicon/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imnotbob/webCoRE/ae1ff1d7863296f02aae2ff9e93f95fd1b4be2bc/dashboard/img/favicon/favicon.ico -------------------------------------------------------------------------------- /dashboard/img/favicon/mstile-150x150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imnotbob/webCoRE/ae1ff1d7863296f02aae2ff9e93f95fd1b4be2bc/dashboard/img/favicon/mstile-150x150.png -------------------------------------------------------------------------------- /dashboard/img/favicon/site.webmanifest: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Dashboard", 3 | "short_name": "Dashboard", 4 | "icons": [ 5 | { 6 | "src": "android-chrome-192x192.png", 7 | "sizes": "192x192", 8 | "type": "image/png" 9 | }, 10 | { 11 | "src": "android-chrome-512x512.png", 12 | "sizes": "512x512", 13 | "type": "image/png" 14 | } 15 | ], 16 | "theme_color": "#ffffff", 17 | "background_color": "#ffffff", 18 | "display": "standalone" 19 | } 20 | -------------------------------------------------------------------------------- /dashboard/img/piston.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imnotbob/webCoRE/ae1ff1d7863296f02aae2ff9e93f95fd1b4be2bc/dashboard/img/piston.png -------------------------------------------------------------------------------- /dashboard/img/squared_metal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imnotbob/webCoRE/ae1ff1d7863296f02aae2ff9e93f95fd1b4be2bc/dashboard/img/squared_metal.png -------------------------------------------------------------------------------- /dashboard/img/squared_metal_@2X.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/imnotbob/webCoRE/ae1ff1d7863296f02aae2ff9e93f95fd1b4be2bc/dashboard/img/squared_metal_@2X.png -------------------------------------------------------------------------------- /dashboard/img/webCoRE-mark.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 7 | 9 | 11 | 13 | 15 | 17 | 19 | 24 | 25 | 33 | 34 | 38 | 39 | -------------------------------------------------------------------------------- /dashboard/img/webCoRE-text.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /dashboard/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | webCoRE Dashboard 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | -------------------------------------------------------------------------------- /dashboard/js/components/02.angular-route-1.6.3.min.js: -------------------------------------------------------------------------------- 1 | /* 2 | AngularJS v1.6.3 3 | (c) 2010-2017 Google, Inc. http://angularjs.org 4 | License: MIT 5 | */ 6 | (function(J,d){'use strict';function A(d){k&&d.get("$route")}function B(t,u,g){return{restrict:"ECA",terminal:!0,priority:400,transclude:"element",link:function(a,f,b,c,m){function v(){l&&(g.cancel(l),l=null);n&&(n.$destroy(),n=null);p&&(l=g.leave(p),l.done(function(a){!1!==a&&(l=null)}),p=null)}function E(){var b=t.current&&t.current.locals;if(d.isDefined(b&&b.$template)){var b=a.$new(),c=t.current;p=m(b,function(b){g.enter(b,null,p||f).done(function(b){!1===b||!d.isDefined(w)||w&&!a.$eval(w)||u()}); 7 | v()});n=c.scope=b;n.$emit("$viewContentLoaded");n.$eval(k)}else v()}var n,p,l,w=b.autoscroll,k=b.onload||"";a.$on("$routeChangeSuccess",E);E()}}}function C(d,k,g){return{restrict:"ECA",priority:-400,link:function(a,f){var b=g.current,c=b.locals;f.html(c.$template);var m=d(f.contents());if(b.controller){c.$scope=a;var v=k(b.controller,c);b.controllerAs&&(a[b.controllerAs]=v);f.data("$ngControllerController",v);f.children().data("$ngControllerController",v)}a[b.resolveAs||"$resolve"]=c;m(a)}}}var x, 8 | y,F,G,z=d.module("ngRoute",[]).info({angularVersion:"1.6.3"}).provider("$route",function(){function t(a,f){return d.extend(Object.create(a),f)}function u(a,d){var b=d.caseInsensitiveMatch,c={originalPath:a,regexp:a},g=c.keys=[];a=a.replace(/([().])/g,"\\$1").replace(/(\/)?:(\w+)(\*\?|[?*])?/g,function(a,b,d,c){a="?"===c||"*?"===c?"?":null;c="*"===c||"*?"===c?"*":null;g.push({name:d,optional:!!a});b=b||"";return""+(a?"":b)+"(?:"+(a?b:"")+(c&&"(.+?)"||"([^/]+)")+(a||"")+")"+(a||"")}).replace(/([/$*])/g, 9 | "\\$1");c.regexp=new RegExp("^"+a+"$",b?"i":"");return c}x=d.isArray;y=d.isObject;F=d.isDefined;G=d.noop;var g={};this.when=function(a,f){var b;b=void 0;if(x(f)){b=b||[];for(var c=0,m=f.length;c/g,">")}function I(a){for(;a;){if(a.nodeType===s.Node.ELEMENT_NODE)for(var c=a.attributes,b=0,d=c.length;b"))},end:function(a){a=q(a);b||!0!==p[a]||!0===e[a]||(d(""));a==b&&(b=!1)},chars:function(a){b||d(H(a))}}};F=s.Node.prototype.contains||function(a){return!!(this.compareDocumentPosition(a)&16)};var L=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,M=/([^#-~ |!])/g,e=h("area,br,col,hr,img,wbr"),y=h("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"),m=h("rp,rt"),r=k({},m,y),y=k({},y,h("address,article,aside,blockquote,caption,center,del,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5,h6,header,hgroup,hr,ins,map,menu,nav,ol,pre,section,table,ul")), 11 | m=k({},m,h("a,abbr,acronym,b,bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,q,ruby,rp,rt,s,samp,small,span,strike,strong,sub,sup,time,tt,u,var")),z=h("circle,defs,desc,ellipse,font-face,font-face-name,font-face-src,g,glyph,hkern,image,linearGradient,line,marker,metadata,missing-glyph,mpath,path,polygon,polyline,radialGradient,rect,stop,svg,switch,text,title,tspan"),A=h("script,style"),p=k({},e,y,m,r),n=h("background,cite,href,longdesc,src,xlink:href"),r=h("abbr,align,alt,axis,bgcolor,border,cellpadding,cellspacing,class,clear,color,cols,colspan,compact,coords,dir,face,headers,height,hreflang,hspace,ismap,lang,language,nohref,nowrap,rel,rev,rows,rowspan,rules,scope,scrolling,shape,size,span,start,summary,tabindex,target,title,type,valign,value,vspace,width"), 12 | m=h("accent-height,accumulate,additive,alphabetic,arabic-form,ascent,baseProfile,bbox,begin,by,calcMode,cap-height,class,color,color-rendering,content,cx,cy,d,dx,dy,descent,display,dur,end,fill,fill-rule,font-family,font-size,font-stretch,font-style,font-variant,font-weight,from,fx,fy,g1,g2,glyph-name,gradientUnits,hanging,height,horiz-adv-x,horiz-origin-x,ideographic,k,keyPoints,keySplines,keyTimes,lang,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mathematical,max,min,offset,opacity,orient,origin,overline-position,overline-thickness,panose-1,path,pathLength,points,preserveAspectRatio,r,refX,refY,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,rotate,rx,ry,slope,stemh,stemv,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,systemLanguage,target,text-anchor,to,transform,type,u1,u2,underline-position,underline-thickness,unicode,unicode-range,units-per-em,values,version,viewBox,visibility,width,widths,x,x-height,x1,x2,xlink:actuate,xlink:arcrole,xlink:role,xlink:show,xlink:title,xlink:type,xml:base,xml:lang,xml:space,xmlns,xmlns:xlink,y,y1,y2,zoomAndPan", 13 | !0),u=k({},n,m,r),g;(function(a){if(a.document&&a.document.implementation)a=a.document.implementation.createHTMLDocument("inert");else throw w("noinert");var c=(a.documentElement||a.getDocumentElement()).getElementsByTagName("body");1===c.length?g=c[0]:(c=a.createElement("html"),g=a.createElement("body"),c.appendChild(g),a.appendChild(c))})(s)}).info({angularVersion:"1.6.3"});f.module("ngSanitize").filter("linky",["$sanitize",function(h){var k=/((ftp|https?):\/\/|(www\.)|(mailto:)?[A-Za-z0-9._%+-]+@)\S*[^\s.;,(){}<>"\u201d\u2019]/i, 14 | q=/^mailto:/i,s=f.$$minErr("linky"),t=f.isDefined,x=f.isFunction,v=f.isObject,w=f.isString;return function(e,f,m){function r(a){a&&n.push(J(a))}function z(a,c){var b,d=A(a);n.push("');r(c);n.push("")}if(null==e||""===e)return e;if(!w(e))throw s("notstring",e);for(var A=x(m)?m:v(m)?function(){return m}:function(){return{}},p=e,n=[],u,g;e=p.match(k);)u=e[0],e[2]|| 15 | e[4]||(u=(e[3]?"http://":"mailto:")+u),g=e.index,r(p.substr(0,g)),z(u,e[0].replace(q,"")),p=p.substring(g+e[0].length);r(p);return h(n.join(""))}}])})(window,window.angular); 16 | -------------------------------------------------------------------------------- /dashboard/js/components/05.angular-loading-bar.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * angular-loading-bar v0.8.0 3 | * https://chieffancypants.github.io/angular-loading-bar 4 | * Copyright (c) 2015 Wes Cruver 5 | * License: MIT 6 | */ 7 | !function(){"use strict";angular.module("angular-loading-bar",["cfp.loadingBarInterceptor"]),angular.module("chieffancypants.loadingBar",["cfp.loadingBarInterceptor"]),angular.module("cfp.loadingBarInterceptor",["cfp.loadingBar"]).config(["$httpProvider",function(a){var b=["$q","$cacheFactory","$timeout","$rootScope","$log","cfpLoadingBar",function(b,c,d,e,f,g){function h(){d.cancel(j),g.complete(),l=0,k=0}function i(b){var d,e=c.get("$http"),f=a.defaults;!b.cache&&!f.cache||b.cache===!1||"GET"!==b.method&&"JSONP"!==b.method||(d=angular.isObject(b.cache)?b.cache:angular.isObject(f.cache)?f.cache:e);var g=void 0!==d?void 0!==d.get(b.url):!1;return void 0!==b.cached&&g!==b.cached?b.cached:(b.cached=g,g)}var j,k=0,l=0,m=g.latencyThreshold;return{request:function(a){return a.ignoreLoadingBar||i(a)||(e.$broadcast("cfpLoadingBar:loading",{url:a.url}),0===k&&(j=d(function(){g.start()},m)),k++,g.set(l/k)),a},response:function(a){return a&&a.config?(a.config.ignoreLoadingBar||i(a.config)||(l++,e.$broadcast("cfpLoadingBar:loaded",{url:a.config.url,result:a}),l>=k?h():g.set(l/k)),a):(f.error("Broken interceptor detected: Config object not supplied in response:\n https://github.com/chieffancypants/angular-loading-bar/pull/50"),a)},responseError:function(a){return a&&a.config?(a.config.ignoreLoadingBar||i(a.config)||(l++,e.$broadcast("cfpLoadingBar:loaded",{url:a.config.url,result:a}),l>=k?h():g.set(l/k)),b.reject(a)):(f.error("Broken interceptor detected: Config object not supplied in rejection:\n https://github.com/chieffancypants/angular-loading-bar/pull/50"),b.reject(a))}}}];a.interceptors.push(b)}]),angular.module("cfp.loadingBar",[]).provider("cfpLoadingBar",function(){this.autoIncrement=!0,this.includeSpinner=!0,this.includeBar=!0,this.latencyThreshold=100,this.startSize=.02,this.parentSelector="body",this.spinnerTemplate='
',this.loadingBarTemplate='
',this.$get=["$injector","$document","$timeout","$rootScope",function(a,b,c,d){function e(){k||(k=a.get("$animate"));var e=b.find(n).eq(0);c.cancel(m),r||(d.$broadcast("cfpLoadingBar:started"),r=!0,v&&k.enter(o,e,angular.element(e[0].lastChild)),u&&k.enter(q,e,angular.element(e[0].lastChild)),f(w))}function f(a){if(r){var b=100*a+"%";p.css("width",b),s=a,t&&(c.cancel(l),l=c(function(){g()},250))}}function g(){if(!(h()>=1)){var a=0,b=h();a=b>=0&&.25>b?(3*Math.random()+3)/100:b>=.25&&.65>b?3*Math.random()/100:b>=.65&&.9>b?2*Math.random()/100:b>=.9&&.99>b?.005:0;var c=h()+a;f(c)}}function h(){return s}function i(){s=0,r=!1}function j(){k||(k=a.get("$animate")),d.$broadcast("cfpLoadingBar:completed"),f(1),c.cancel(m),m=c(function(){var a=k.leave(o,i);a&&a.then&&a.then(i),k.leave(q)},500)}var k,l,m,n=this.parentSelector,o=angular.element(this.loadingBarTemplate),p=o.find("div").eq(0),q=angular.element(this.spinnerTemplate),r=!1,s=0,t=this.autoIncrement,u=this.includeSpinner,v=this.includeBar,w=this.startSize;return{start:e,set:f,status:h,inc:g,complete:j,autoIncrement:this.autoIncrement,includeSpinner:this.includeSpinner,latencyThreshold:this.latencyThreshold,parentSelector:this.parentSelector,startSize:this.startSize}}]})}(); 8 | -------------------------------------------------------------------------------- /dashboard/js/components/08.angular-svg-round-progressbar.min.js: -------------------------------------------------------------------------------- 1 | /* angular-svg-round-progressbar@0.4.6 2016-07-06 */ 2 | (function(){ 3 | "use strict"; 4 | !function(){for(var a=0,b=["webkit","moz"],c=0;c-1&&a.indexOf("url")>-1?a.slice(0,b)+window.location.href+a.slice(b):a}:function(a){return a},c.toNumber=function(a){return d(a)?a:parseFloat((a+"").replace(",","."))},c.getOffset=function(a,b){var c=+b.offset||0;if("inherit"===b.offset)for(var d=a.$parent;d;){if(d.hasOwnProperty("$$getRoundProgressOptions")){var e=d.$$getRoundProgressOptions();c+=(+e.offset||0)+(+e.stroke||0)}d=d.$parent}return c},c.getTimestamp=a.performance&&a.performance.now&&angular.isNumber(a.performance.now())?function(){return a.performance.now()}:function(){return(new a.Date).getTime()},c.updateState=function(a,c,d,e,f,g){if(!f)return e;var h=a>0?Math.min(a,c):0,i=g?180:359.9999,j=0===c?0:h/c*i,k=b(f,f,d,j),l=b(f,f,d,0),m=j<=180?0:1,n="M "+k+" A "+d+" "+d+" 0 "+m+" 0 "+l;return e.attr("d",n)},c.animations={linearEase:function(a,b,c,d){return c*a/d+b},easeInQuad:function(a,b,c,d){return c*(a/=d)*a+b},easeOutQuad:function(a,b,c,d){return-c*(a/=d)*(a-2)+b},easeInOutQuad:function(a,b,c,d){return(a/=d/2)<1?c/2*a*a+b:-c/2*(--a*(a-2)-1)+b},easeInCubic:function(a,b,c,d){return c*(a/=d)*a*a+b},easeOutCubic:function(a,b,c,d){return c*((a=a/d-1)*a*a+1)+b},easeInOutCubic:function(a,b,c,d){return(a/=d/2)<1?c/2*a*a*a+b:c/2*((a-=2)*a*a+2)+b},easeInQuart:function(a,b,c,d){return c*(a/=d)*a*a*a+b},easeOutQuart:function(a,b,c,d){return-c*((a=a/d-1)*a*a*a-1)+b},easeInOutQuart:function(a,b,c,d){return(a/=d/2)<1?c/2*a*a*a*a+b:-c/2*((a-=2)*a*a*a-2)+b},easeInQuint:function(a,b,c,d){return c*(a/=d)*a*a*a*a+b},easeOutQuint:function(a,b,c,d){return c*((a=a/d-1)*a*a*a*a+1)+b},easeInOutQuint:function(a,b,c,d){return(a/=d/2)<1?c/2*a*a*a*a*a+b:c/2*((a-=2)*a*a*a*a+2)+b},easeInSine:function(a,b,c,d){return-c*Math.cos(a/d*(Math.PI/2))+c+b},easeOutSine:function(a,b,c,d){return c*Math.sin(a/d*(Math.PI/2))+b},easeInOutSine:function(a,b,c,d){return-c/2*(Math.cos(Math.PI*a/d)-1)+b},easeInExpo:function(a,b,c,d){return 0==a?b:c*Math.pow(2,10*(a/d-1))+b},easeOutExpo:function(a,b,c,d){return a==d?b+c:c*(-Math.pow(2,-10*a/d)+1)+b},easeInOutExpo:function(a,b,c,d){return 0==a?b:a==d?b+c:(a/=d/2)<1?c/2*Math.pow(2,10*(a-1))+b:c/2*(-Math.pow(2,-10*--a)+2)+b},easeInCirc:function(a,b,c,d){return-c*(Math.sqrt(1-(a/=d)*a)-1)+b},easeOutCirc:function(a,b,c,d){return c*Math.sqrt(1-(a=a/d-1)*a)+b},easeInOutCirc:function(a,b,c,d){return(a/=d/2)<1?-c/2*(Math.sqrt(1-a*a)-1)+b:c/2*(Math.sqrt(1-(a-=2)*a)+1)+b},easeInElastic:function(a,b,c,d){var e=1.70158,f=0,g=c;return 0==a?b:1==(a/=d)?b+c:(f||(f=.3*d),g=0?i:0}).css({stroke:b.resolveColor(o.bgcolor),strokeWidth:g})},r=function(c,d,g){var h=b.toNumber(o.max||0),j=c>0?a.Math.min(c,h):0,k=d===j||d<0?0:d||0,n=j-k,q=b.animations[o.animation],r=+o.duration||0,s=g||c>h&&d>h||c<0&&d<0||r<25,t=b.toNumber(o.radius),u=t-o.stroke/2-b.getOffset(e,o),v=o.semi;l.attr({"aria-valuemax":h,"aria-valuenow":j});var w=function(){if(s)b.updateState(j,h,u,m,t,v),o.onRender&&o.onRender(j,o,f);else{var c=b.getTimestamp(),d=++p;a.requestAnimationFrame(function e(){var g=a.Math.min(b.getTimestamp()-c,r),i=q(g,k,n,r);b.updateState(i,h,u,m,t,v),o.onRender&&o.onRender(i,o,f),d===p&&g0?(a.clearTimeout(i),a.setTimeout(w,o.animationDelay)):w()},s=Object.keys(d.scope).filter(function(a){return h(a)&&"current"!==a});e.$watchGroup(s,function(a){for(var b=0;b','','',"",""];b.length&&b[0].nodeName.toLowerCase()!==c&&"undefined"==typeof b.attr(c);)b=b.parent();return b&&b.length||(d.unshift('
'),d.push("
")),d.join("\n")}}):angular.extend(d,{template:'
'})}]); 5 | })(); 6 | -------------------------------------------------------------------------------- /dashboard/js/components/11.angular-bootstrap-select.min.js: -------------------------------------------------------------------------------- 1 | "use strict";function dropdownToggleDirective(){return{restrict:"ACE",priority:101,link:function(a,b,c){var d=function(a){var c=angular.element(this).parent();angular.element(".bootstrap-select.open",b).not(c).removeClass("open"),c.toggleClass("open")};b.on("click.bootstrapSelect",".dropdown-toggle",d),a.$on("$destroy",function(){b.off(".bootstrapSelect")})}}}function dropdownCloseDirective(){return{restrict:"ACE",priority:101,link:function(a,b,c){var d=function(a){var c="A"!==a.target.tagName&&angular.element(a.target).parents(".bootstrap-select");angular.element(".bootstrap-select.open",b).not(c).removeClass("open")};angular.element(document).on("click.bootstrapSelect",d),a.$on("$destroy",function(){angular.element(document).off(".bootstrapSelect")})}}}function selectpickerDirective(a,b){return{restrict:"A",priority:1e3,link:function(c,d,e){function f(a){c.$applyAsync(function(){e.ngOptions&&/track by/.test(e.ngOptions)&&d.val(a),d.selectpicker("refresh")})}e.$observe("spTheme",function(a){b(function(){d.data("selectpicker").$button.removeClass(function(a,b){return(b.match(/(^|\s)?btn-\S+/g)||[]).join(" ")}),d.selectpicker("setStyle",a)})}),b(function(){d.selectpicker(a(e.selectpicker)()),d.selectpicker("refresh")}),e.ngModel&&c.$watch(e.ngModel,f,!0),e.ngDisabled&&c.$watch(e.ngDisabled,f,!0),e.ngOptions&&/ in /.test(e.ngOptions)&&c.$watch(e.ngOptions.split(" in ")[1].split(" track ")[0],function(){c.$applyAsync(function(){d.selectpicker("refresh")})},!0),c.$on("$destroy",function(){b(function(){d.selectpicker("destroy")})})}}}angular.module("angular-bootstrap-select.extra",[]).directive("dropdownToggle",[dropdownToggleDirective]).directive("dropdownClose",[dropdownCloseDirective]),angular.module("angular-bootstrap-select",[]).directive("selectpicker",["$parse","$timeout",selectpickerDirective]); 2 | -------------------------------------------------------------------------------- /dashboard/js/components/13.angular-drag-and-drop-lists.min.js: -------------------------------------------------------------------------------- 1 | /** 2 | * angular-drag-and-drop-lists v2.0.0 3 | * 4 | * Copyright (c) 2014 Marcel Juenemann marcel@juenemann.cc 5 | * Copyright (c) 2014-2016 Google Inc. 6 | * https://github.com/marceljuenemann/angular-drag-and-drop-lists 7 | * 8 | * License: MIT 9 | */ 10 | !function(e){var n="application/x-dnd",a="application/json",r="Text" 11 | e.directive("dndDraggable",["$parse","$timeout",function(e,d){return function(o,i,l){i.attr("draggable","true"),l.dndDisableIf&&o.$watch(l.dndDisableIf,function(e){i.attr("draggable",!e)}),i.on("dragstart",function(s){if(s=s.originalEvent||s,"false"==i.attr("draggable"))return!0 12 | t.dropEffect="none",t.isDragging=!0,t.itemType=l.dndType&&o.$eval(l.dndType).toLowerCase() 13 | var f=o.$eval(l.dndDraggable),g=n+(t.itemType?"-"+t.itemType:"") 14 | try{s.dataTransfer.setData(g,angular.toJson(f))}catch(c){var u=angular.toJson({item:f,type:t.itemType}) 15 | try{s.dataTransfer.setData(a,u)}catch(c){s.dataTransfer.setData(r,u)}}s.dataTransfer.effectAllowed=l.dndEffectAllowed||"move",i.addClass("dndDragging"),d(function(){i.addClass("dndDraggingSource")},0),s._dndHandle&&s.dataTransfer.setDragImage&&s.dataTransfer.setDragImage(i[0],0,0),e(l.dndDragstart)(o,{event:s}),s.stopPropagation()}),i.on("dragend",function(n){n=n.originalEvent||n 16 | var a=t.dropEffect 17 | o.$apply(function(){switch(a){case"move":e(l.dndMoved)(o,{event:n}) 18 | break 19 | case"copy":e(l.dndCopied)(o,{event:n}) 20 | break 21 | case"none":e(l.dndCanceled)(o,{event:n})}e(l.dndDragend)(o,{event:n,dropEffect:a})}),i.removeClass("dndDragging"),d(function(){i.removeClass("dndDraggingSource")},0),t.isDragging=!1,n.stopPropagation()}),i.on("click",function(n){l.dndSelected&&(n=n.originalEvent||n,o.$apply(function(){e(l.dndSelected)(o,{event:n})}),n.stopPropagation())}),i.on("selectstart",function(){this.dragDrop&&this.dragDrop()})}}]),e.directive("dndList",["$parse","$timeout",function(e,d){return function(o,i,l){function s(e){if(!e)return r 22 | for(var t=0;t")}var D=v() 26 | D.remove() 27 | var y=D[0],T=i[0],m={} 28 | i.on("dragenter",function(e){e=e.originalEvent||e 29 | var n=l.dndAllowedTypes&&o.$eval(l.dndAllowedTypes) 30 | m={allowedTypes:angular.isArray(n)&&n.join("|").toLowerCase().split("|"),disabled:l.dndDisableIf&&o.$eval(l.dndDisableIf),externalSources:l.dndExternalSources&&o.$eval(l.dndExternalSources),horizontal:l.dndHorizontalList&&o.$eval(l.dndHorizontalList)} 31 | var a=s(e.dataTransfer.types) 32 | return a&&g(f(a))?void e.preventDefault():!0}),i.on("dragover",function(e){e=e.originalEvent||e 33 | var n=s(e.dataTransfer.types),a=f(n) 34 | if(!n||!g(a))return!0 35 | if(y.parentNode!=T&&i.append(D),e.target!=T){for(var r=e.target;r.parentNode!=T&&r.parentNode;)r=r.parentNode 36 | if(r.parentNode==T&&r!=y){var t=r.getBoundingClientRect() 37 | if(m.horizontal)var d=e.clientXa?n(t[l])(e.$parent):e.$parent.$eval(t[l]):o[l]}),this.init=function(n){a=n,s.computeStyle(),a.$render=function(){s.toggle()},a.$viewChangeListeners.push(function(){e.$eval(t.ngChange)})},this.computeStyle=function(){var t=s.element.find("label");angular.element(t[0]).html(s.on),angular.element(t[1]).html(s.off);var n=s.element.find("span"),l=s.width||Math.max(t[0].offsetWidth,t[1].offsetWidth)+n[0].offsetWidth/2,o=s.height||Math.max(t[0].offsetHeight,t[1].offsetHeight),a=s.element.find("div"),i=a[0].offsetWidth,r=a[1].offsetHeight;e.wrapperStyle={},e.wrapperStyle.width=l>i?l+"px":i+"px",e.wrapperStyle.height=o>r&&"btn-xs"!==s.size&&"btn-sm"!==s.size?o+"px":r+"px",e.onClass=[s.onstyle,s.size,"toggle-on"],e.offClass=[s.offstyle,s.size,"toggle-off"],e.handleClass=[s.size,"toggle-handle"]},this.toggle=function(){this.isOn=angular.isDefined(a.$viewValue)?a.$viewValue:!1,e.wrapperClass=this.isOn?[s.onstyle,s.size,s.style]:[s.offstyle,"off ",s.size,s.style]},e.onSwitch=function(){a.$setViewValue(!a.$viewValue),a.$render()},angular.forEach(["ngModel"],function(n){var l=e.$parent.$watch(t[n],function(){a.$render()});e.$parent.$on("$destroy",function(){l()})}),angular.forEach(["on","off","size","onstyle","offstyle","style"],function(e){t.$observe(e,function(t){s[e]!==t&&(s[e]=t,s.computeStyle())})})}]).directive("toggle",function(){return{restrict:"E",transclude:!0,template:'
',scope:{bindModel:"=ngModel"},require:["toggle","ngModel"],controller:"ToggleController",controllerAs:"toggle",compile:function(){return{pre:function(e,t,n,l){var o=l[0],s=l[1];o.element=t,o.init(s)},post:function(){}}}}})}(); 2 | -------------------------------------------------------------------------------- /dashboard/js/components/16.md5.min.js: -------------------------------------------------------------------------------- 1 | !function(n){"use strict";function t(n,t){var r=(65535&n)+(65535&t),e=(n>>16)+(t>>16)+(r>>16);return e<<16|65535&r}function r(n,t){return n<>>32-t}function e(n,e,o,u,c,f){return t(r(t(t(e,n),t(u,f)),c),o)}function o(n,t,r,o,u,c,f){return e(t&r|~t&o,n,t,u,c,f)}function u(n,t,r,o,u,c,f){return e(t&o|r&~o,n,t,u,c,f)}function c(n,t,r,o,u,c,f){return e(t^r^o,n,t,u,c,f)}function f(n,t,r,o,u,c,f){return e(r^(t|~o),n,t,u,c,f)}function i(n,r){n[r>>5]|=128<>>9<<4)+14]=r;var e,i,a,h,d,l=1732584193,g=-271733879,v=-1732584194,m=271733878;for(e=0;e>5]>>>t%32&255);return r}function h(n){var t,r=[];for(r[(n.length>>2)-1]=void 0,t=0;t>5]|=(255&n.charCodeAt(t/8))<16&&(o=i(o,8*n.length)),r=0;r<16;r+=1)u[r]=909522486^o[r],c[r]=1549556828^o[r];return e=i(u.concat(h(t)),512+8*t.length),a(i(c.concat(e),640))}function g(n){var t,r,e="0123456789abcdef",o="";for(r=0;r>>4&15)+e.charAt(15&t);return o}function v(n){return unescape(encodeURIComponent(n))}function m(n){return d(v(n))}function p(n){return g(m(n))}function s(n,t){return l(v(n),v(t))}function C(n,t){return g(s(n,t))}function A(n,t,r){return t?r?s(t,n):C(t,n):r?m(n):p(n)}"function"==typeof define&&define.amd?define(function(){return A}):"object"==typeof module&&module.exports?module.exports=A:n.md5=A}(this); 2 | -------------------------------------------------------------------------------- /dashboard/js/components/18.sizeof.min.js: -------------------------------------------------------------------------------- 1 | function sizeof(g){var f=[g];var e=0;for(var d=0;d0&&t.length===r.length)}function i(t,r){return t+r}function u(r,e,a){var n={point:void 0,points:void 0};return function(o){var c=r.chart.getElementAtEvent||r.chart.getPointAtEvent,i=r.chart.getElementsAtEvent||r.chart.getPointsAtEvent;if(i){var u=i.call(r.chart,o),l=c?c.call(r.chart,o)[0]:void 0;a!==!1&&(t.equals(n.points,u)||t.equals(n.point,l))||(n.point=l,n.points=u,r[e](u,o,l))}}}function l(a,n){for(var o=t.copy(n.chartColors||e.getOptions(a).chartColors||r.defaults.global.colors),c=o.length>16&255,a=r>>8&255,n=255&r;return[e,a,n]}function v(t){var r=t.match(/^rgba?\(([\d,.]+)\)$/);if(!r)throw new Error("Cannot parse rgb value");return t=r[1].split(","),t.map(Number)}function C(t){return t.chartData&&t.chartData.length}function y(t){return"function"==typeof t.chartGetColor?t.chartGetColor:s}function b(t,r){var e=l(t,r);return Array.isArray(r.chartData[0])?m(r.chartLabels,r.chartData,r.chartSeries||[],e,r.chartDatasetOverride):w(r.chartLabels,r.chartData,e,r.chartDatasetOverride)}function m(r,e,a,n,o){return{labels:r,datasets:e.map(function(r,e){var c=t.extend({},n[e],{label:a[e],data:r});return o&&o.length>=e&&t.merge(c,o[e]),c})}}function w(r,e,a,n){var o={labels:r,datasets:[{data:e,backgroundColor:a.map(function(t){return t.pointBackgroundColor}),hoverBackgroundColor:a.map(function(t){return t.backgroundColor})}]};return n&&t.merge(o.datasets[0],n),o}function D(r,a){return t.extend({},e.getOptions(r),a.chartOptions)}function A(r,e){r.onclick=e.chartClick?u(e,"chartClick",!1):t.noop,r.onmousemove=e.chartHover?u(e,"chartHover",!0):t.noop}function B(t,r){Array.isArray(r.chartData[0])?r.chart.data.datasets.forEach(function(r,e){r.data=t[e]}):r.chart.data.datasets[0].data=t,r.chart.update(),r.$emit("chart-update",r.chart)}function $(t){return!t||Array.isArray(t)&&!t.length||"object"==typeof t&&!Object.keys(t).length}function k(t,r,e,n){return!n.responsive||0!==e[0].clientHeight||(a(function(){o(t,r,e)},50,!1),!1)}function F(t){t.chart&&(t.chart.destroy(),t.$emit("chart-destroy",t.chart))}return function(r){return{restrict:"CA",scope:{chartGetColor:"=?",chartType:"=",chartData:"=?",chartLabels:"=?",chartOptions:"=?",chartSeries:"=?",chartColors:"=?",chartClick:"=?",chartHover:"=?",chartDatasetOverride:"=?"},link:function(e,a){function i(t,n){if(!t||!t.length||Array.isArray(t[0])&&!t[0].length)return void F(e);var i=r||e.chartType;if(i)return e.chart&&c(t,n)?B(t,e):void o(i,e,a)}function u(n,c){if(!$(n)&&!t.equals(n,c)){var i=r||e.chartType;i&&o(i,e,a)}}function l(r,n){$(r)||t.equals(r,n)||o(r,e,a)}n&&window.G_vmlCanvasManager.initElement(a[0]),e.$watch("chartData",i,!0),e.$watch("chartSeries",u,!0),e.$watch("chartLabels",u,!0),e.$watch("chartOptions",u,!0),e.$watch("chartColors",u,!0),e.$watch("chartDatasetOverride",u,!0),e.$watch("chartType",l,!1),e.$on("$destroy",function(){F(e)}),e.$on("$resize",function(){e.chart&&e.chart.resize()})}}}}r.defaults.global.multiTooltipTemplate="<%if (datasetLabel){%><%=datasetLabel%>: <%}%><%= value %>",r.defaults.global.tooltips.mode="label",r.defaults.global.elements.line.borderWidth=2,r.defaults.global.elements.rectangle.borderWidth=2,r.defaults.global.legend.display=!1,r.defaults.global.colors=["#97BBCD","#DCDCDC","#F7464A","#46BFBD","#FDB45C","#949FB1","#4D5360"];var n="object"==typeof window.G_vmlCanvasManager&&null!==window.G_vmlCanvasManager&&"function"==typeof window.G_vmlCanvasManager.initElement;return n&&(r.defaults.global.animation=!1),t.module("chart.js",[]).provider("ChartJs",e).factory("ChartJsFactory",["ChartJs","$timeout",a]).directive("chartBase",["ChartJsFactory",function(t){return new t}]).directive("chartLine",["ChartJsFactory",function(t){return new t("line")}]).directive("chartBar",["ChartJsFactory",function(t){return new t("bar")}]).directive("chartHorizontalBar",["ChartJsFactory",function(t){return new t("horizontalBar")}]).directive("chartRadar",["ChartJsFactory",function(t){return new t("radar")}]).directive("chartDoughnut",["ChartJsFactory",function(t){return new t("doughnut")}]).directive("chartPie",["ChartJsFactory",function(t){return new t("pie")}]).directive("chartPolarArea",["ChartJsFactory",function(t){return new t("polarArea")}]).directive("chartBubble",["ChartJsFactory",function(t){return new t("bubble")}]).name}); 11 | -------------------------------------------------------------------------------- /dashboard/js/components/22.angular-smart-area-1.1.0.min.js: -------------------------------------------------------------------------------- 1 | /*! smart-area 1.1.0 17-12-2015 */ 2 | angular.module("smartArea",[]).directive("smartArea",["$compile",function(a){return{restrict:"A",scope:{areaConfig:"=smartArea",areaData:"=ngModel"},replace:!0,link:function(b,c){if("textarea"!==c[0].tagName.toLowerCase())return console.warn("smartArea can only be used on textareas"),!1;var d=["direction","boxSizing","width","overflowX","overflowY","color","height","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor","borderTopStyle","borderRightStyle","borderBottomStyle","borderLeftStyle","borderRadius","backgroundColor","paddingTop","paddingRight","paddingBottom","paddingLeft","fontStyle","fontVariant","fontWeight","fontStretch","fontSize","fontSizeAdjust","lineHeight","fontFamily","textAlign","textTransform","textIndent","textDecoration","letterSpacing","wordSpacing","whiteSpace","wordBreak","wordWrap"],e=angular.element('
');!(null===window.mozInnerScreenX);return b.fakeAreaElement=angular.element(a('
')(b)).appendTo(e),b.dropdown.element=angular.element(a('
')(b)).appendTo(e),b.dropdown.filterElement=b.dropdown.element.find("input"),b.dropdown.filterElement.bind("keydown",b.keyboardEvents),b.fakeAreaElement.css("whiteSpace","pre-wrap"),b.fakeAreaElement.css("wordWrap","break-word"),d.forEach(function(a){b.fakeAreaElement.css(a,c.css(a))}),b.fakeAreaElement.css("width",parseInt(c.outerWidth())+1+"px"),e.insertBefore(c),c.appendTo(e).addClass("sa-realArea").attr("ng-trim",!1),a(c),c.on("keyup",function(){b.fakeAreaElement.height(c.height())}),e},controller:["$scope","$element","$timeout","$sce",function(a,b,c,d){function e(d,e){a.dropdown.showFilter=!1;var f=a.areaData,h=k(),i=f.substr(0,h).split(/[(\s|\+|\-|\*|\/|\&|\||\^|\,|\(|\{|\])\b{}]/),j=i[i.length-1].length;!e&&a.dropdown.match&&(j=a.dropdown.match.length),(e||0>j)&&(j=0),a.areaData=f.substr(0,h-j)+d+f.substr(h),!e&&a.dropdown.match&&(h=h-a.dropdown.match.length+d.toString().length),b[0].selectionStart&&c(function(){b[0].focus(),b[0].setSelectionRange(h-j+d.toString().length,h-j+d.toString().length),g()},100)}function f(){var b=a.areaData;"undefined"!=typeof a.areaConfig.autocomplete&&0!==a.areaConfig.autocomplete.length&&(a.areaConfig.autocomplete.forEach(function(a){for(var c=0;c$2$3'):b.replace(a.words[c],function(b){return''+b+""})}),a.fakeArea=d.trustAsHtml(b))}function g(){j(),h()}function h(){a.dropdown.showFilter=!1,a.dropdown.match=!1,"undefined"!=typeof a.areaConfig.dropdown&&0!==a.areaConfig.dropdown.length&&a.areaConfig.dropdown.forEach(function(b){var e=a.areaData,f=k();if("string"==typeof b.trigger&&b.trigger===e.substr(f-b.trigger.length,b.trigger.length))b.list(function(e){a.dropdown.content=e.map(function(a){return a.display=d.trustAsHtml(a.display),a}),a.dropdown.customSelect=b.onSelect,a.dropdown.mode=b.mode||"append",a.dropdown.match="",a.dropdown.showFilter=b.filter||!1,c(function(){a.dropdown.filterElement.focus()},10)});else if("object"==typeof b.trigger){for(var g,h=e.substr(0,f),i=!1,j=0;null!==(g=b.trigger.exec(h))&&g.index!==j;)if(j=g.index,g.index+g[0].length===f){i=!0;break}i&&b.list(g,function(c){a.dropdown.content=c.map(function(a){return a.display=d.trustAsHtml(a.display),a}),a.dropdown.customSelect=b.onSelect,a.dropdown.mode=b.mode||"append",a.dropdown.match=g[1],a.dropdown.showFilter=b.filter||!1})}})}function i(){c(function(){a.fakeAreaElement.scrollTop(b.scrollTop())},5)}function j(){var b=[],c=[],e=a.areaData,f=k(),g=e.substr(0,f).split(/[(\s|\+|\-|\*|\/|\&|\||\^|\,|\(|\{|\])\b{}]/);g=g[g.length-1],a.areaConfig.autocomplete.forEach(function(a){a.words.forEach(function(c){"string"==typeof c&&b.indexOf(c)<0&&(g.length>0||g.length<1&&a.autocompleteOnSpace)&&b.push(c)})}),void 0!==a.areaConfig.dropdown&&a.areaConfig.dropdown.forEach(function(a){"string"==typeof a.trigger&&b.indexOf(a.trigger)<0&&b.push(a.trigger)}),b.forEach(function(a){g.length'+e.substring(g)),c(function(){var c=a.fakeAreaElement.find("span.sa-tracking");if(c.length>0){var d=c.position();a.dropdown.element.css({top:d.top+parseInt(b.css("fontSize"))+2+"px",left:d.left+"px"})}f()},0)},a.keyboardEvents=function(d){if(a.dropdown.content.length>0){var e=d.keyCode||d.which;13===e?(d.preventDefault(),d.stopPropagation(),c(function(){a.dropdown.selected(a.dropdown.content[a.dropdown.current])},0)):38===e?(d.preventDefault(),d.stopPropagation(),c(function(){a.dropdown.current--,a.dropdown.current<0&&(a.dropdown.current=a.dropdown.content.length-1)},0)):40===e?(d.preventDefault(),d.stopPropagation(),c(function(){a.dropdown.current++,a.dropdown.current>=a.dropdown.content.length&&(a.dropdown.current=0)},0)):27===e?(d.preventDefault(),d.stopPropagation(),c(function(){a.dropdown.content=[],b[0].focus()},0)):a.dropdown.filterElement.focus()}},a.dropdown.selected=function(b){if(null!==a.dropdown.customSelect){var c="append"===a.dropdown.mode;e(a.dropdown.customSelect(b),c)}else e(b.display);a.dropdown.content=[]},b.bind("keyup click focus",function(){c(function(){a.trackCaret()},0)}),b.bind("keydown",function(b){i(),a.keyboardEvents(b)})}]}}]); 3 | 4 | -------------------------------------------------------------------------------- /dashboard/js/components/24.chartjs-plugin-zoom-0.4.5.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * chartjs-plugin-zoom 3 | * http://chartjs.org/ 4 | * Version: 0.4.5 5 | * 6 | * Copyright 2016 Evert Timberg 7 | * Released under the MIT license 8 | * https://github.com/chartjs/chartjs-plugin-zoom/blob/master/LICENSE.md 9 | */ 10 | !function e(o,t,n){function a(r,l){if(!t[r]){if(!o[r]){var m="function"==typeof require&&require;if(!l&&m)return m(r,!0);if(i)return i(r,!0);var u=new Error("Cannot find module '"+r+"'");throw u.code="MODULE_NOT_FOUND",u}var s=t[r]={exports:{}};o[r][0].call(s.exports,function(e){var t=o[r][1][e];return a(t?t:e)},s,s.exports,e,o,t,n)}return t[r].exports}for(var i="function"==typeof require&&require,r=0;r1?x.zoomCumulativeDelta+1:x.zoomCumulativeDelta-1,Math.abs(x.zoomCumulativeDelta)>m&&(x.zoomCumulativeDelta<0?(s<=u?i<=0?l=Math.min(r,l+1):i=Math.max(0,i-1):s>u&&(l>=r?i=Math.max(0,i-1):l=Math.min(r,l+1)),x.zoomCumulativeDelta=0):x.zoomCumulativeDelta>0&&(s<=u?i=iu&&(l=l>i?l=Math.max(i,l-1):l),x.zoomCumulativeDelta=0),e.options.ticks.min=a[i],e.options.ticks.max=a[l])}function i(e,o,t){var n,a,i=e.options;e.isHorizontal()?(n=e.right-e.left,a=(t.x-e.left)/n):(n=e.bottom-e.top,a=(t.y-e.top)/n);var r=1-a,l=n*(o-1),m=l*a,u=l*r;i.time.min=e.getValueForPixel(e.getPixelForValue(e.firstTick)+m),i.time.max=e.getValueForPixel(e.getPixelForValue(e.lastTick)-u)}function r(e,o,t){var n=e.max-e.min,a=n*(o-1),i=e.isHorizontal()?t.x:t.y,r=(e.getValueForPixel(i)-e.min)/n,l=1-r,m=a*r,u=a*l;e.options.ticks.min=e.min+m,e.options.ticks.max=e.max-u}function l(e,o,t,n){var a=z[e.options.type];a&&a(e,o,t,n)}function m(e,o,t){var a=e.chartArea;t||(t={x:(a.left+a.right)/2,y:(a.top+a.bottom)/2});var i=e.options.zoom;if(i&&g.getValueOrDefault(i.enabled,F.zoom.enabled)){var r=g.getValueOrDefault(e.options.zoom.mode,F.zoom.mode);i.sensitivity=g.getValueOrDefault(e.options.zoom.sensitivity,F.zoom.sensitivity),g.each(e.scales,function(e,a){e.isHorizontal()&&n(r,"x")?l(e,o,t,i):!e.isHorizontal()&&n(r,"y")&&l(e,o,t,i)}),e.update(0)}}function u(e,o,t){var n,a=e.chart.data.labels,i=a.length-1,r=Math.max(e.ticks.length-(e.options.gridLines.offsetGridLines?0:1),1),l=t.speed,m=e.minIndex,u=Math.round(e.width/(r*l));x.panCumulativeDelta+=o,m=x.panCumulativeDelta>u?Math.max(0,m-1):x.panCumulativeDelta<-u?Math.min(i-r+1,m+1):m,x.panCumulativeDelta=m!==e.minIndex?0:x.panCumulativeDelta,n=Math.min(i,m+r-1),e.options.ticks.min=a[m],e.options.ticks.max=a[n]}function s(e,o){var t=e.options;t.time.min=e.getValueForPixel(e.getPixelForValue(e.firstTick)-o),t.time.max=e.getValueForPixel(e.getPixelForValue(e.lastTick)-o)}function c(e,o){var t=e.options.ticks,n=e.start,a=e.end;t.reverse?(t.max=e.getValueForPixel(e.getPixelForValue(n)-o),t.min=e.getValueForPixel(e.getPixelForValue(a)-o)):(t.min=e.getValueForPixel(e.getPixelForValue(n)-o),t.max=e.getValueForPixel(e.getPixelForValue(a)-o))}function d(e,o,t){var n=D[e.options.type];n&&n(e,o,t)}function p(e,o,t){var a=e.options.pan;if(a&&g.getValueOrDefault(a.enabled,F.pan.enabled)){var i=g.getValueOrDefault(e.options.pan.mode,F.pan.mode);a.speed=g.getValueOrDefault(e.options.pan.speed,F.pan.speed),g.each(e.scales,function(e,r){e.isHorizontal()&&n(i,"x")&&0!==o?d(e,o,a):!e.isHorizontal()&&n(i,"y")&&0!==t&&d(e,t,a)}),e.update(0)}}function f(e){var o=e.scales;for(var t in o){var n=o[t];if(!n.isHorizontal())return n}}var v=e("hammerjs");v="function"==typeof v?v:window.Hammer;var h=e("chart.js");h="function"==typeof h?h:window.Chart;var g=h.helpers,x=h.Zoom=h.Zoom||{},z=x.zoomFunctions=x.zoomFunctions||{},D=x.panFunctions=x.panFunctions||{},F=x.defaults={pan:{enabled:!0,mode:"xy",speed:20,threshold:10},zoom:{enabled:!0,mode:"xy",sensitivity:3}};x.zoomFunctions.category=a,x.zoomFunctions.time=i,x.zoomFunctions.linear=r,x.zoomFunctions.logarithmic=r,x.panFunctions.category=u,x.panFunctions.time=s,x.panFunctions.linear=c,x.panFunctions.logarithmic=c,x.panCumulativeDelta=0,x.zoomCumulativeDelta=0;var _={afterInit:function(e){g.each(e.scales,function(e){e.originalOptions=JSON.parse(JSON.stringify(e.options))}),e.resetZoom=function(){g.each(e.scales,function(e,o){var t=e.options.time,n=e.options.ticks;t&&(delete t.min,delete t.max),n&&(delete n.min,delete n.max),e.options=g.configMerge(e.options,e.originalOptions)}),g.each(e.data.datasets,function(e,o){e._meta=null}),e.update()}},beforeInit:function(e){e.zoom={};var o=e.zoom.node=e.chart.ctx.canvas,t=e.options,n=g.getValueOrDefault(t.pan?t.pan.threshold:void 0,x.defaults.pan.threshold);if(t.zoom&&t.zoom.drag?(t.zoom.mode="x",e.zoom._mouseDownHandler=function(o){e.zoom._dragZoomStart=o},o.addEventListener("mousedown",e.zoom._mouseDownHandler),e.zoom._mouseMoveHandler=function(o){e.zoom._dragZoomStart&&(e.zoom._dragZoomEnd=o,e.update(0)),e.update(0)},o.addEventListener("mousemove",e.zoom._mouseMoveHandler),e.zoom._mouseUpHandler=function(o){if(e.zoom._dragZoomStart){var t=e.chartArea,n=f(e),a=e.zoom._dragZoomStart,i=a.target.getBoundingClientRect().left,r=Math.min(a.x,o.x)-i,l=Math.max(a.x,o.x)-i,u=l-r,s=t.right-t.left,c=1+(s-u)/s;u>0&&m(e,c,{x:u/2+r,y:(n.bottom-n.top)/2}),e.zoom._dragZoomStart=null,e.zoom._dragZoomEnd=null}},o.addEventListener("mouseup",e.zoom._mouseUpHandler)):(e.zoom._wheelHandler=function(o){var t=o.target.getBoundingClientRect(),n=o.clientX-t.left,a=o.clientY-t.top,i={x:n,y:a};o.deltaY<0?m(e,1.1,i):m(e,.909,i),o.preventDefault()},o.addEventListener("wheel",e.zoom._wheelHandler)),v){var a=new v.Manager(o);a.add(new v.Pinch),a.add(new v.Pan({threshold:n}));var i,r=function(o){var t=1/i*o.scale;m(e,t,o.center),i=o.scale};a.on("pinchstart",function(e){i=1}),a.on("pinch",r),a.on("pinchend",function(e){r(e),i=null,x.zoomCumulativeDelta=0});var l=null,u=null,s=!1,c=function(o){if(null!==l&&null!==u){s=!0;var t=o.deltaX-l,n=o.deltaY-u;l=o.deltaX,u=o.deltaY,p(e,t,n)}};a.on("panstart",function(e){l=0,u=0,c(e)}),a.on("panmove",c),a.on("panend",function(e){l=null,u=null,x.panCumulativeDelta=0,setTimeout(function(){s=!1},500)}),e.zoom._ghostClickHandler=function(e){s&&(e.stopImmediatePropagation(),e.preventDefault())},o.addEventListener("click",e.zoom._ghostClickHandler),e._mc=a}},beforeDatasetsDraw:function(e){var o=e.chart.ctx,t=e.chartArea;if(o.save(),o.beginPath(),e.zoom._dragZoomEnd){var n=f(e),a=e.zoom._dragZoomStart,i=e.zoom._dragZoomEnd,r=a.target.getBoundingClientRect().left,l=Math.min(a.x,i.x)-r,m=Math.max(a.x,i.x)-r,u=m-l;o.fillStyle="rgba(225,225,225,0.3)",o.lineWidth=5,o.fillRect(l,n.top,u,n.bottom-n.top)}o.rect(t.left,t.top,t.right-t.left,t.bottom-t.top),o.clip()},afterDatasetsDraw:function(e){e.chart.ctx.restore()},destroy:function(e){if(e.zoom){var o=e.options,t=e.zoom.node;o.zoom&&o.zoom.drag?(t.removeEventListener("mousedown",e.zoom._mouseDownHandler),t.removeEventListener("mousemove",e.zoom._mouseMoveHandler),t.removeEventListener("mouseup",e.zoom._mouseUpHandler)):t.removeEventListener("wheel",e.zoom._wheelHandler),v&&t.removeEventListener("click",e.zoom._ghostClickHandler),delete e.zoom;var n=e._mc;n&&(n.remove("pinchstart"),n.remove("pinch"),n.remove("pinchend"),n.remove("panstart"),n.remove("pan"),n.remove("panend"))}}};o.exports=_,h.pluginService.register(_)},{"chart.js":1,hammerjs:1}]},{},[2]); 11 | -------------------------------------------------------------------------------- /dashboard/js/components/25.angular-swipe.min.js: -------------------------------------------------------------------------------- 1 | /*! angular-swipe.min.js 13-03-2017 */ 2 | !function(a,b,c){"use strict";function d(a,c,d,f){e.directive(a,["$parse","swipe",function(e,g){var h=75,i=.3,j=30;return function(k,l,m){function n(a,b){do{var c=a.getAttribute("class");if(c&&null!==c.match(b))return!0;a=a.parentElement}while(null!==a);return!1}function o(a){if(!p||!q)return!1;var b=(a.y-p.y)*c,e=(a.x-p.x)*c;return null===d?Math.abs(b)0&&e>j&&Math.abs(b)/e0&&b>j&&Math.abs(e)/bo)){l.pop().remove()}};var h=function(v,x,u,o,q,s,w,r){var p=r("");p.css("padding-right","8px");p.attr({tabindex:"-1",href:"#"});if(typeof x[0]==="string"){u=x[0]}else{if(typeof x[0]==="function"){u=x[0].call(v,v,o,q)}else{if(typeof x.text!=="undefined"){u=x.text}}}var t=i.when(u);s.push(t);t.then(function(y){if(w){p.css("cursor","default");p.append(r('>'))}p.append(y)});return p};var e=function(y,p,q,A,s,v,t,u,r,o){var z=angular.isArray(A[1])||(A[1]&&angular.isFunction(A[1].then))?A[1]:angular.isArray(A[2])||(A[2]&&angular.isFunction(A[2].then))?A[2]:angular.isArray(A[3])||(A[3]&&angular.isFunction(A[3].then))?A[3]:null;var x=d;if(typeof A[0]==="function"||typeof A[0]==="string"||typeof A.text!=="undefined"){x=h(y,A,x,p,q,t,z,r)}else{if(typeof A.html==="function"){x=A.html(y)}else{if(typeof A.html!=="undefined"){x=A.html}}}v.append(x);var w=function(){if(typeof A.enabled!=="undefined"){return A.enabled.call(y,y,p,q,x)}else{if(typeof A[2]==="function"){return A[2].call(y,y,p,q,x)}else{return true}}};b(y,w(),A,s,v,z,q,x,p,r,o)};var k=function(p,r,q,o){i.all(o).then(function(){var s=q.pageY;var u=angular.element(p[0]).prop("offsetHeight");var x=window.scrollY+q.view.innerHeight;if(s>u&&x-s0){s+=q.event.currentTarget.offsetHeight}}else{if(x<=u){angular.element(p[0]).css({height:x-5,"overflow-y":"scroll"});s=0}else{if(x-sy&&v-t-w");t.addClass("dropdown-menu");t.attr({role:"menu"});t.css({display:"block",position:"absolute",left:p.pageX+"px",top:p.pageY+"px","z-index":10000});var u=[];angular.forEach(z,function(A){var B=a("
  • ");if(A===null){B.addClass("divider")}else{if(typeof A[0]==="object"){c.initialize(B,A)}else{e(y,p,r,A,t,B,u,i,a,o)}}t.append(B)});var w=Math.max(document.body.scrollHeight,document.documentElement.scrollHeight,document.body.offsetHeight,document.documentElement.offsetHeight,document.body.clientHeight,document.documentElement.clientHeight);a(document).find("body").append(t);k(t,o,p,u);function v(A){q(A)}function s(C){var B=a(C.target);var A=true;while(B.length){if(B.hasClass("dropdown-menu")){A=false;break}else{B=B.parent()}}if(A){q(C)}}function q(A){a(document.body).off("mousedown",s);a(document).off("scroll",v);a(p.originalTarget).removeClass("context");m()}if(o===0){a(document.body).on("mousedown",s);a(document).on("scroll",v)}y.$on("$destroy",function(){m()});l.push(t)};function f(){return"ontouchstart" in window||navigator.maxTouchPoints}return function(o,r,q){var p="contextmenu";if(q.contextMenuOn&&typeof(q.contextMenuOn)==="string"){p=q.contextMenuOn}r.on(p,function(s){if(!q.allowEventPropagation){s.stopPropagation();s.preventDefault()}if(f()&&r.attr("draggable")==="true"){return false}o.$apply(function(){var u=o.$eval(q.contextMenu);var v=q.contextMenuClass;var t=o.$eval(q.model);if(u instanceof Array){if(u.length===0){return}j(o,s,u,t,undefined,v)}else{throw'"'+q.contextMenu+'" not an array'}})})}}])})(window.angular.element); -------------------------------------------------------------------------------- /dashboard/js/components/29.angular-fittext.min.js: -------------------------------------------------------------------------------- 1 | !function(t,e,i,n){"use strict";i.module("ngFitText",[]).value("fitTextDefaultConfig",{debounce:!1,delay:250,loadDelay:10,compressor:1,min:0,max:Number.POSITIVE_INFINITY}).directive("fittext",["$timeout","fitTextDefaultConfig","fitTextConfig",function(e,n,o){return{restrict:"A",scope:!0,link:function(f,a,l){function r(){var t=I*x/p.offsetWidth/x;return Math.max(Math.min((s[0].offsetWidth-(parseFloat(getComputedStyle(s[0]).paddingLeft)+parseFloat(getComputedStyle(s[0]).paddingRight))-6)*t*y,parseFloat(T)),parseFloat(C))}function u(){p.offsetHeight*p.offsetWidth!==0&&(g.fontSize=I+"px",g.lineHeight="1",g.display="inline-block",g.fontSize=r()+"px",g.lineHeight=z,g.display=F)}function c(){d&&e.cancel(d),d=e(function(){d=null,u()},5)}i.extend(n,o.config);var d,s=a.parent(),p=a[0],g=p.style,h=t.getComputedStyle(a[0],null),x=a.children().length||1,m=l.fittextLoadDelay||n.loadDelay,y=isNaN(parseInt(l.fittext))?n.compressor:l.fittext,v=l.fittextMin||n.min,b=l.fittextMax||n.max,C="inherit"===v?h["font-size"]:v,T="inherit"===b?h["font-size"]:b,z=h["line-height"],F=h.display,I=10;e(function(){c()},m),f.$watch(function(){return[f.$eval(l.ngBind||l.ngBindHtml),s[0].offsetWidth,a[0].offsetWidth].join("_")},function(){c()}),n.debounce?i.element(t).bind("resize",n.debounce(function(){f.$apply(c)},n.delay)):i.element(t).bind("resize",function(){f.$apply(c)})}}}]).provider("fitTextConfig",function(){var t=this;return this.config={},this.$get=function(){var e={};return e.config=t.config,e},this})}(window,document,angular); -------------------------------------------------------------------------------- /dashboard/js/components/34.content-script.js: -------------------------------------------------------------------------------- 1 | // Copyright 2011 Google Inc. 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | var serverURL = 'wss://api.webcore.co:8443/projector'; 16 | 17 | var socket; 18 | 19 | function socketSend(msg) { 20 | socket.send(JSON.stringify(msg)); 21 | } 22 | 23 | /* 24 | window.addEventListener('load', function() { 25 | chrome.extension.sendMessage({ mirror : true}, function(response) { 26 | if (response.mirror) 27 | startMirroring(); 28 | else 29 | stopMirroring(); 30 | }); 31 | }); 32 | */ 33 | 34 | function startMirroring() { 35 | if (socket) 36 | return; 37 | 38 | socket = new WebSocket(serverURL); 39 | var mirrorClient; 40 | 41 | socket.onopen = function() { 42 | socketSend({ base: location.href.match(/^(.*\/)[^\/]*$/)[1] }); 43 | mirrorClient = new TreeMirrorClient(document, { 44 | initialize: function(rootId, children) { 45 | socketSend({ 46 | f: 'initialize', 47 | args: [rootId, children] 48 | }); 49 | }, 50 | 51 | applyChanged: function(removed, addedOrMoved, attributes, text) { 52 | socketSend({ 53 | f: 'applyChanged', 54 | args: [removed, addedOrMoved, attributes, text] 55 | }); 56 | } 57 | }); 58 | } 59 | 60 | socket.onclose = function() { 61 | mirrorClient.disconnect(); 62 | socket = undefined; 63 | } 64 | } 65 | 66 | function stopMirroring() { 67 | if (socket) 68 | socket.close(); 69 | socket = undefined; 70 | } 71 | -------------------------------------------------------------------------------- /dashboard/js/components/37.dashify.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * dashify 3 | * 4 | * Copyright (c) 2015-2017, Jon Schlinkert. 5 | * Released under the MIT License. 6 | */ 7 | 8 | function dashify(str, options) { 9 | if (typeof str !== 'string') { 10 | throw new TypeError('expected a string'); 11 | } 12 | 13 | return str.trim() 14 | .replace(/([a-z])([A-Z])/g, '$1-$2') 15 | .replace(/\W/g, m => /[À-ž]/.test(m) ? m : '-') 16 | .replace(/^-+|-+$/g, '') 17 | .replace(/-{2,}/g, function(m) { return options && options.condense ? '-' : m }) 18 | .toLowerCase(); 19 | }; -------------------------------------------------------------------------------- /dashboard/js/components/38.angular-elastic.js: -------------------------------------------------------------------------------- 1 | /* 2 | * angular-elastic v2.5.1 3 | * (c) 2014 Monospaced http://monospaced.com 4 | * License: MIT 5 | */ 6 | 7 | if (typeof module !== 'undefined' && 8 | typeof exports !== 'undefined' && 9 | module.exports === exports){ 10 | module.exports = 'monospaced.elastic'; 11 | } 12 | 13 | angular.module('monospaced.elastic', []) 14 | 15 | .constant('msdElasticConfig', { 16 | append: '' 17 | }) 18 | 19 | .directive('msdElastic', [ 20 | '$timeout', '$window', 'msdElasticConfig', 21 | function($timeout, $window, config) { 22 | 'use strict'; 23 | 24 | return { 25 | require: 'ngModel', 26 | restrict: 'A, C', 27 | link: function(scope, element, attrs, ngModel) { 28 | 29 | // cache a reference to the DOM element 30 | var ta = element[0], 31 | $ta = element; 32 | 33 | // ensure the element is a textarea, and browser is capable 34 | if (ta.nodeName !== 'TEXTAREA' || !$window.getComputedStyle) { 35 | return; 36 | } 37 | 38 | // set these properties before measuring dimensions 39 | $ta.css({ 40 | 'overflow': 'hidden', 41 | 'overflow-y': 'hidden', 42 | 'word-wrap': 'break-word' 43 | }); 44 | 45 | // force text reflow 46 | var text = ta.value; 47 | ta.value = ''; 48 | ta.value = text; 49 | 50 | var append = attrs.msdElastic ? attrs.msdElastic.replace(/\\n/g, '\n') : config.append, 51 | $win = angular.element($window), 52 | mirrorInitStyle = 'position: absolute; top: -999px; right: auto; bottom: auto;' + 53 | 'left: 0; overflow: hidden; -webkit-box-sizing: content-box;' + 54 | '-moz-box-sizing: content-box; box-sizing: content-box;' + 55 | 'min-height: 0 !important; height: 0 !important; padding: 0;' + 56 | 'word-wrap: break-word; border: 0;', 57 | $mirror = angular.element('