@beacon-interactive-systems-llc/beacon-platform-ui 0.0.21 → 17.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/karma.conf.js +44 -0
- package/ng-package.json +8 -0
- package/package.json +24 -38
- package/src/lib/device-detector.service.ts +46 -0
- package/src/lib/network-connection.service.ts +31 -0
- package/src/lib/platform-ui.component.spec.ts +23 -0
- package/src/lib/platform-ui.component.ts +20 -0
- package/src/lib/platform-ui.module.ts +16 -0
- package/src/lib/platform-ui.service.spec.ts +16 -0
- package/src/lib/platform-ui.service.ts +9 -0
- package/{public-api.d.ts → src/public-api.ts} +7 -5
- package/src/test.ts +27 -0
- package/styles/_bootstrap-tabs.scss +6 -4
- package/styles/_buttons.scss +24 -15
- package/styles/_calendar.scss +3 -2
- package/styles/_checkboxes.scss +16 -2
- package/styles/_forms.scss +5 -3
- package/styles/_layout.scss +17 -31
- package/styles/_leftnav.scss +0 -1
- package/styles/_material-drawer.scss +2 -2
- package/styles/_material-tabs.scss +36 -45
- package/styles/_mixins.scss +1 -1
- package/styles/_modals.scss +8 -0
- package/styles/_ng-select.scss +37 -0
- package/styles/_tables.scss +4 -0
- package/styles/_typography.scss +12 -4
- package/styles/_widgets.scss +2 -0
- package/tsconfig.lib.json +15 -0
- package/tsconfig.lib.prod.json +10 -0
- package/tsconfig.spec.json +17 -0
- package/beacon-interactive-systems-llc-beacon-platform-ui-0.0.21.tgz +0 -0
- package/esm2022/beacon-interactive-systems-llc-beacon-platform-ui.mjs +0 -5
- package/esm2022/lib/device-detector.service.mjs +0 -77
- package/esm2022/lib/network-connection.service.mjs +0 -32
- package/esm2022/lib/platform-ui.component.mjs +0 -22
- package/esm2022/lib/platform-ui.module.mjs +0 -21
- package/esm2022/lib/platform-ui.service.mjs +0 -14
- package/esm2022/public-api.mjs +0 -7
- package/fesm2022/beacon-interactive-systems-llc-beacon-platform-ui.mjs +0 -164
- package/fesm2022/beacon-interactive-systems-llc-beacon-platform-ui.mjs.map +0 -1
- package/index.d.ts +0 -5
- package/lib/device-detector.service.d.ts +0 -11
- package/lib/network-connection.service.d.ts +0 -12
- package/lib/platform-ui.component.d.ts +0 -8
- package/lib/platform-ui.module.d.ts +0 -7
- package/lib/platform-ui.service.d.ts +0 -6
package/karma.conf.js
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
// Karma configuration file, see link for more information
|
|
2
|
+
// https://karma-runner.github.io/1.0/config/configuration-file.html
|
|
3
|
+
|
|
4
|
+
module.exports = function (config) {
|
|
5
|
+
config.set({
|
|
6
|
+
basePath: '',
|
|
7
|
+
frameworks: ['jasmine', '@angular-devkit/build-angular'],
|
|
8
|
+
plugins: [
|
|
9
|
+
require('karma-jasmine'),
|
|
10
|
+
require('karma-chrome-launcher'),
|
|
11
|
+
require('karma-jasmine-html-reporter'),
|
|
12
|
+
require('karma-coverage'),
|
|
13
|
+
require('@angular-devkit/build-angular/plugins/karma')
|
|
14
|
+
],
|
|
15
|
+
client: {
|
|
16
|
+
jasmine: {
|
|
17
|
+
// you can add configuration options for Jasmine here
|
|
18
|
+
// the possible options are listed at https://jasmine.github.io/api/edge/Configuration.html
|
|
19
|
+
// for example, you can disable the random execution with `random: false`
|
|
20
|
+
// or set a specific seed with `seed: 4321`
|
|
21
|
+
},
|
|
22
|
+
clearContext: false // leave Jasmine Spec Runner output visible in browser
|
|
23
|
+
},
|
|
24
|
+
jasmineHtmlReporter: {
|
|
25
|
+
suppressAll: true // removes the duplicated traces
|
|
26
|
+
},
|
|
27
|
+
coverageReporter: {
|
|
28
|
+
dir: require('path').join(__dirname, '../../coverage/platform-ui'),
|
|
29
|
+
subdir: '.',
|
|
30
|
+
reporters: [
|
|
31
|
+
{ type: 'html' },
|
|
32
|
+
{ type: 'text-summary' }
|
|
33
|
+
]
|
|
34
|
+
},
|
|
35
|
+
reporters: ['progress', 'kjhtml'],
|
|
36
|
+
port: 9876,
|
|
37
|
+
colors: true,
|
|
38
|
+
logLevel: config.LOG_INFO,
|
|
39
|
+
autoWatch: true,
|
|
40
|
+
browsers: ['Chrome'],
|
|
41
|
+
singleRun: false,
|
|
42
|
+
restartOnFileChange: true
|
|
43
|
+
});
|
|
44
|
+
};
|
package/ng-package.json
ADDED
package/package.json
CHANGED
|
@@ -1,38 +1,24 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@beacon-interactive-systems-llc/beacon-platform-ui",
|
|
3
|
-
"version": "0.0
|
|
4
|
-
"peerDependencies": {
|
|
5
|
-
"@angular/common": "^17.3.0",
|
|
6
|
-
"@angular/core": "^17.3.0",
|
|
7
|
-
"@angular/forms": "^17.3.0",
|
|
8
|
-
"@angular/material": "^17.3.10",
|
|
9
|
-
"bootstrap": "5.3.3",
|
|
10
|
-
"ngx-autosize": "2.0.4",
|
|
11
|
-
"ngx-bootstrap": "12.0.0",
|
|
12
|
-
"ngx-infinite-scroll": "17.0.1",
|
|
13
|
-
"@ng-select/ng-select": "12.0.7",
|
|
14
|
-
"@ngx-pwa/local-storage": "17.0.0",
|
|
15
|
-
"angular-mentions": "1.5.0",
|
|
16
|
-
"ngx-mask": "17.1.8",
|
|
17
|
-
"ngx-quill": "25.3.2",
|
|
18
|
-
"ngx-toastr": "19.0.0",
|
|
19
|
-
"quill": "2.0.0"
|
|
20
|
-
},
|
|
21
|
-
"dependencies": {
|
|
22
|
-
"tslib": "2.3.0"
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
"typings": "index.d.ts",
|
|
26
|
-
"exports": {
|
|
27
|
-
"./package.json": {
|
|
28
|
-
"default": "./package.json"
|
|
29
|
-
},
|
|
30
|
-
".": {
|
|
31
|
-
"types": "./index.d.ts",
|
|
32
|
-
"esm2022": "./esm2022/beacon-interactive-systems-llc-beacon-platform-ui.mjs",
|
|
33
|
-
"esm": "./esm2022/beacon-interactive-systems-llc-beacon-platform-ui.mjs",
|
|
34
|
-
"default": "./fesm2022/beacon-interactive-systems-llc-beacon-platform-ui.mjs"
|
|
35
|
-
}
|
|
36
|
-
},
|
|
37
|
-
"sideEffects": false
|
|
38
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@beacon-interactive-systems-llc/beacon-platform-ui",
|
|
3
|
+
"version": "17.0.0",
|
|
4
|
+
"peerDependencies": {
|
|
5
|
+
"@angular/common": "^17.3.0",
|
|
6
|
+
"@angular/core": "^17.3.0",
|
|
7
|
+
"@angular/forms": "^17.3.0",
|
|
8
|
+
"@angular/material": "^17.3.10",
|
|
9
|
+
"bootstrap": "5.3.3",
|
|
10
|
+
"ngx-autosize": "2.0.4",
|
|
11
|
+
"ngx-bootstrap": "12.0.0",
|
|
12
|
+
"ngx-infinite-scroll": "17.0.1",
|
|
13
|
+
"@ng-select/ng-select": "12.0.7",
|
|
14
|
+
"@ngx-pwa/local-storage": "17.0.0",
|
|
15
|
+
"angular-mentions": "1.5.0",
|
|
16
|
+
"ngx-mask": "17.1.8",
|
|
17
|
+
"ngx-quill": "25.3.2",
|
|
18
|
+
"ngx-toastr": "19.0.0",
|
|
19
|
+
"quill": "2.0.0"
|
|
20
|
+
},
|
|
21
|
+
"dependencies": {
|
|
22
|
+
"tslib": "2.3.0"
|
|
23
|
+
}
|
|
24
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
|
|
3
|
+
const CUTOFFS = {
|
|
4
|
+
mobile: 767,
|
|
5
|
+
tablet: 1200
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
@Injectable({
|
|
9
|
+
providedIn: 'root'
|
|
10
|
+
})
|
|
11
|
+
export class DeviceDetectorService {
|
|
12
|
+
get isMobile() { return window.screen.width <= CUTOFFS.mobile }
|
|
13
|
+
|
|
14
|
+
get isTablet() {
|
|
15
|
+
return window.screen.width >= CUTOFFS.mobile && window.screen.width <= CUTOFFS.tablet;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
// assume desktop is anything > 1200
|
|
19
|
+
get isDesktop() { return window.screen.width > CUTOFFS.tablet }
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
getBrowser() {
|
|
23
|
+
if (!!navigator.userAgent.match(/Chrome/) && !navigator.userAgent.match(/Edg/)) { return "Chrome"; }
|
|
24
|
+
else if (!!navigator.userAgent.match(/Opera/) || !!navigator.userAgent.match(/OPR/)) { return "Opera"; }
|
|
25
|
+
else if (!!navigator.userAgent.match(/Firefox/) && !navigator.userAgent.match(/Safari/)) { return "Firefox"; }
|
|
26
|
+
else if (!!navigator.userAgent.match(/Safari/) && !navigator.userAgent.match(/Edg/)) { return "Safari"; }
|
|
27
|
+
else if (!!navigator.userAgent.match(/MSIE/)) { return "IE"; }
|
|
28
|
+
else if (!!navigator.userAgent.match(/Edg/)) { return "Microsoft Edge"; }
|
|
29
|
+
else { return "Unknown" }
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
getOperatingSystem() {
|
|
33
|
+
if (!!navigator.userAgent.match(/Win/)) { return "Windows OS"; }
|
|
34
|
+
else if (!!navigator.userAgent.match(/Mac/)) { return "MacOS"; }
|
|
35
|
+
else if (!!navigator.userAgent.match(/X11/)) { return "UNIX OS"; }
|
|
36
|
+
else if (!!navigator.userAgent.match(/Linux/)) { return "Linux OS"; }
|
|
37
|
+
else { return "Unknown"; }
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
getDeviceType() {
|
|
41
|
+
if (this.isDesktop) { return "Desktop"; }
|
|
42
|
+
else if (this.isMobile) { return "Mobile"; }
|
|
43
|
+
else if (this.isTablet) { return "Tablet"; }
|
|
44
|
+
else { return "Unknown"; }
|
|
45
|
+
}
|
|
46
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { Subject } from 'rxjs';
|
|
3
|
+
|
|
4
|
+
declare const window: any;
|
|
5
|
+
|
|
6
|
+
@Injectable({
|
|
7
|
+
providedIn: 'root'
|
|
8
|
+
})
|
|
9
|
+
export class NetworkConnectionService {
|
|
10
|
+
constructor() {
|
|
11
|
+
window.addEventListener('online', () => this.updateOnlineStatus());
|
|
12
|
+
window.addEventListener('offline', () => this.updateOnlineStatus());
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
private networkConnectionChange = new Subject<boolean>();
|
|
16
|
+
public connectionChanged$ = this.networkConnectionChange.asObservable();
|
|
17
|
+
public lastOnlineAt: Date = new Date();
|
|
18
|
+
|
|
19
|
+
get isOnline() {
|
|
20
|
+
return !!window.navigator.onLine;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
get isOffline() {
|
|
24
|
+
return !this.isOnline;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
private updateOnlineStatus() {
|
|
28
|
+
this.networkConnectionChange.next(window.navigator.onLine);
|
|
29
|
+
if (window.navigator.offLine) this.lastOnlineAt = new Date();
|
|
30
|
+
}
|
|
31
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { ComponentFixture, TestBed } from '@angular/core/testing';
|
|
2
|
+
|
|
3
|
+
import { PlatformUiComponent } from './platform-ui.component';
|
|
4
|
+
|
|
5
|
+
describe('PlatformUiComponent', () => {
|
|
6
|
+
let component: PlatformUiComponent;
|
|
7
|
+
let fixture: ComponentFixture<PlatformUiComponent>;
|
|
8
|
+
|
|
9
|
+
beforeEach(async () => {
|
|
10
|
+
await TestBed.configureTestingModule({
|
|
11
|
+
declarations: [ PlatformUiComponent ]
|
|
12
|
+
})
|
|
13
|
+
.compileComponents();
|
|
14
|
+
|
|
15
|
+
fixture = TestBed.createComponent(PlatformUiComponent);
|
|
16
|
+
component = fixture.componentInstance;
|
|
17
|
+
fixture.detectChanges();
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
it('should create', () => {
|
|
21
|
+
expect(component).toBeTruthy();
|
|
22
|
+
});
|
|
23
|
+
});
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Component, OnInit } from '@angular/core';
|
|
2
|
+
|
|
3
|
+
@Component({
|
|
4
|
+
selector: 'lib-platform-ui',
|
|
5
|
+
template: `
|
|
6
|
+
<p>
|
|
7
|
+
platform-ui works!
|
|
8
|
+
</p>
|
|
9
|
+
`,
|
|
10
|
+
styles: [
|
|
11
|
+
]
|
|
12
|
+
})
|
|
13
|
+
export class PlatformUiComponent implements OnInit {
|
|
14
|
+
|
|
15
|
+
constructor() { }
|
|
16
|
+
|
|
17
|
+
ngOnInit(): void {
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { PlatformUiComponent } from './platform-ui.component';
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
@NgModule({
|
|
7
|
+
declarations: [
|
|
8
|
+
PlatformUiComponent
|
|
9
|
+
],
|
|
10
|
+
imports: [
|
|
11
|
+
],
|
|
12
|
+
exports: [
|
|
13
|
+
PlatformUiComponent
|
|
14
|
+
]
|
|
15
|
+
})
|
|
16
|
+
export class PlatformUiModule { }
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { TestBed } from '@angular/core/testing';
|
|
2
|
+
|
|
3
|
+
import { PlatformUiService } from './platform-ui.service';
|
|
4
|
+
|
|
5
|
+
describe('PlatformUiService', () => {
|
|
6
|
+
let service: PlatformUiService;
|
|
7
|
+
|
|
8
|
+
beforeEach(() => {
|
|
9
|
+
TestBed.configureTestingModule({});
|
|
10
|
+
service = TestBed.inject(PlatformUiService);
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
it('should be created', () => {
|
|
14
|
+
expect(service).toBeTruthy();
|
|
15
|
+
});
|
|
16
|
+
});
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
export * from './lib/network-connection.service';
|
|
2
|
-
export * from './lib/device-detector.service';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
export * from './lib/platform-ui.
|
|
1
|
+
export * from './lib/network-connection.service';
|
|
2
|
+
export * from './lib/device-detector.service';
|
|
3
|
+
|
|
4
|
+
// defaults
|
|
5
|
+
export * from './lib/platform-ui.service';
|
|
6
|
+
export * from './lib/platform-ui.component';
|
|
7
|
+
export * from './lib/platform-ui.module';
|
package/src/test.ts
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
// This file is required by karma.conf.js and loads recursively all the .spec and framework files
|
|
2
|
+
|
|
3
|
+
import 'zone.js';
|
|
4
|
+
import 'zone.js/testing';
|
|
5
|
+
import { getTestBed } from '@angular/core/testing';
|
|
6
|
+
import {
|
|
7
|
+
BrowserDynamicTestingModule,
|
|
8
|
+
platformBrowserDynamicTesting
|
|
9
|
+
} from '@angular/platform-browser-dynamic/testing';
|
|
10
|
+
|
|
11
|
+
declare const require: {
|
|
12
|
+
context(path: string, deep?: boolean, filter?: RegExp): {
|
|
13
|
+
<T>(id: string): T;
|
|
14
|
+
keys(): string[];
|
|
15
|
+
};
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
// First, initialize the Angular testing environment.
|
|
19
|
+
getTestBed().initTestEnvironment(
|
|
20
|
+
BrowserDynamicTestingModule,
|
|
21
|
+
platformBrowserDynamicTesting(),
|
|
22
|
+
);
|
|
23
|
+
|
|
24
|
+
// Then we find all the tests.
|
|
25
|
+
const context = require.context('./', true, /\.spec\.ts$/);
|
|
26
|
+
// And load the modules.
|
|
27
|
+
context.keys().forEach(context);
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
// May not be in use - Material Tabs are preferred
|
|
2
|
+
|
|
3
|
+
$platform_bootstraptab_contrasts: (
|
|
2
4
|
light: (
|
|
3
5
|
tabBorder: $beacon-gray-200,
|
|
4
6
|
tabActive: $beacon-orange-400
|
|
@@ -27,13 +29,13 @@ tabset.tab-container {
|
|
|
27
29
|
width: 160px;
|
|
28
30
|
|
|
29
31
|
&:not(.active){
|
|
30
|
-
@include themify($
|
|
32
|
+
@include themify($platform_bootstraptab_contrasts) {
|
|
31
33
|
background: apply('tabBorder');
|
|
32
34
|
}
|
|
33
35
|
}
|
|
34
36
|
|
|
35
37
|
&.active {
|
|
36
|
-
@include themify($
|
|
38
|
+
@include themify($platform_bootstraptab_contrasts) {
|
|
37
39
|
border-bottom: 1px solid apply('tabBorder');
|
|
38
40
|
border-top: 1px solid apply('tabActive');
|
|
39
41
|
}
|
|
@@ -45,7 +47,7 @@ tabset.tab-container {
|
|
|
45
47
|
}
|
|
46
48
|
|
|
47
49
|
.tab-content {
|
|
48
|
-
@include themify($
|
|
50
|
+
@include themify($platform_bootstraptab_contrasts) {
|
|
49
51
|
border-bottom: 1px solid apply('tabBorder');
|
|
50
52
|
border-left: 1px solid apply('tabBorder');
|
|
51
53
|
border-right: 1px solid apply('tabBorder');
|
package/styles/_buttons.scss
CHANGED
|
@@ -194,18 +194,18 @@ button.platform-btn {
|
|
|
194
194
|
@include themify($platform_button_contrasts) {
|
|
195
195
|
background: apply('buttonAmbient');
|
|
196
196
|
color: apply('buttonAmbientAccent');
|
|
197
|
-
border: 1px solid ('buttonAmbientAccent');
|
|
197
|
+
border: 1px solid apply('buttonAmbientAccent');
|
|
198
198
|
|
|
199
199
|
&:hover {
|
|
200
200
|
background: apply('buttonAmbient');
|
|
201
201
|
color: apply('buttonAmbientAccent');
|
|
202
|
-
border: 1px solid ('buttonAmbientAccent');
|
|
202
|
+
border: 1px solid apply('buttonAmbientAccent');
|
|
203
203
|
}
|
|
204
204
|
|
|
205
205
|
&:focus {
|
|
206
206
|
background: apply('buttonAmbient');
|
|
207
207
|
color: apply('buttonAmbientAccent');
|
|
208
|
-
border: 1px solid ('buttonAmbientAccent');
|
|
208
|
+
border: 1px solid apply('buttonAmbientAccent');
|
|
209
209
|
}
|
|
210
210
|
}
|
|
211
211
|
|
|
@@ -284,31 +284,40 @@ button.platform-btn {
|
|
|
284
284
|
}
|
|
285
285
|
}
|
|
286
286
|
|
|
287
|
-
.btn-group.
|
|
287
|
+
.btn-group.icon-toggle-btn-group {
|
|
288
288
|
@include themify($platform_button_contrasts) {
|
|
289
|
-
background: apply('buttonAmbient');
|
|
290
|
-
color: apply('buttonAmbientAccent');
|
|
289
|
+
background-color: apply('buttonAmbient') !important;
|
|
291
290
|
}
|
|
292
|
-
border-radius:
|
|
291
|
+
border-radius: 20px;
|
|
293
292
|
|
|
294
|
-
.toggle-btn {
|
|
293
|
+
.icon-toggle-btn {
|
|
295
294
|
@include themify($platform_button_contrasts) {
|
|
296
|
-
background: apply('buttonAmbient');
|
|
295
|
+
background-color: apply('buttonAmbient') !important;
|
|
297
296
|
color: apply('buttonAmbientAccent');
|
|
298
297
|
}
|
|
299
298
|
border: none;
|
|
300
|
-
border-radius:
|
|
301
|
-
height:
|
|
299
|
+
border-radius: 20px !important;
|
|
300
|
+
height: 30px;
|
|
302
301
|
line-height: 10px;
|
|
303
|
-
width:
|
|
302
|
+
width: auto;
|
|
303
|
+
font-size: 0.8rem !important;
|
|
304
304
|
|
|
305
305
|
&--selected {
|
|
306
306
|
@include themify($platform_button_contrasts) {
|
|
307
|
-
background: apply('
|
|
308
|
-
color: apply('
|
|
309
|
-
border:
|
|
307
|
+
background-color: apply('buttonGreen') !important;
|
|
308
|
+
color: apply('buttonGreenAccent');
|
|
309
|
+
border: 1px solid apply('buttonGreenAccent');
|
|
310
310
|
}
|
|
311
311
|
font-weight: bold;
|
|
312
|
+
z-index: 100;
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
mat-icon {
|
|
316
|
+
position: relative;
|
|
317
|
+
top: -3px;
|
|
318
|
+
width: 24px;
|
|
319
|
+
height: 1.7rem;
|
|
320
|
+
font-size: 24px
|
|
312
321
|
}
|
|
313
322
|
}
|
|
314
323
|
}
|
package/styles/_calendar.scss
CHANGED
|
@@ -64,11 +64,10 @@ $platform_calendar_contrasts: (
|
|
|
64
64
|
// Potential other things that need to incorporate the color style go here
|
|
65
65
|
}
|
|
66
66
|
|
|
67
|
-
@mixin event-tile-styles($color, $text-color
|
|
67
|
+
@mixin event-tile-styles($color, $text-color) {
|
|
68
68
|
border: 2px solid $color;
|
|
69
69
|
|
|
70
70
|
&.selected {
|
|
71
|
-
@include card-shadow;
|
|
72
71
|
background-color: $color;
|
|
73
72
|
color: $text-color;
|
|
74
73
|
}
|
|
@@ -91,6 +90,7 @@ $platform_calendar_contrasts: (
|
|
|
91
90
|
margin-bottom: 0.25rem;
|
|
92
91
|
|
|
93
92
|
.title {
|
|
93
|
+
@include font-color--default;
|
|
94
94
|
font-weight: bold;
|
|
95
95
|
}
|
|
96
96
|
|
|
@@ -151,6 +151,7 @@ $platform_calendar_contrasts: (
|
|
|
151
151
|
}
|
|
152
152
|
|
|
153
153
|
.event-item {
|
|
154
|
+
@include font-color--default;
|
|
154
155
|
@include font-weight--bold;
|
|
155
156
|
@include font-size--sm;
|
|
156
157
|
display: flex;
|
package/styles/_checkboxes.scss
CHANGED
|
@@ -1,7 +1,21 @@
|
|
|
1
|
-
.mat-
|
|
2
|
-
.mat-
|
|
1
|
+
.mat-mdc-list-option .mdc-checkbox:hover .mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background,
|
|
2
|
+
.mat-mdc-list-option .mdc-checkbox:active:hover .mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background,
|
|
3
|
+
.mat-mdc-list-option .mdc-checkbox .mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background {
|
|
3
4
|
@include themify($platform_contrasts) {
|
|
5
|
+
border-color: apply('checkboxColor');
|
|
4
6
|
background: apply('checkboxColor');
|
|
7
|
+
|
|
8
|
+
.mat-ripple-element {
|
|
9
|
+
background: apply('checkboxColor');
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
.mat-mdc-list-option
|
|
15
|
+
.mdc-checkbox
|
|
16
|
+
.mdc-checkbox__native-control:enabled:not(:checked):not(:indeterminate):not([data-indeterminate=true])~.mdc-checkbox__background {
|
|
17
|
+
@include themify($platform_contrasts) {
|
|
18
|
+
border-color: apply('checkboxColor');
|
|
5
19
|
}
|
|
6
20
|
}
|
|
7
21
|
|
package/styles/_forms.scss
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
|
+
@import "theming";
|
|
2
|
+
|
|
1
3
|
$platform_form_contrasts: (
|
|
2
4
|
light: (
|
|
3
5
|
formText: $beacon-gray-600,
|
|
4
6
|
formInputBackground: $beacon-white,
|
|
5
7
|
formInputBottomBorder: $beacon-dark-blue-400,
|
|
6
8
|
formInputSurroundBorder: $beacon-gray-400,
|
|
7
|
-
formControlFocus: $beacon-blue-200,
|
|
9
|
+
formControlFocus: $beacon-dark-blue-200,
|
|
8
10
|
formInvalid: $beacon-orange-500,
|
|
9
11
|
formInputDisabled: $beacon-gray-200,
|
|
10
12
|
formSelectOpened: $beacon-blue-100,
|
|
@@ -15,7 +17,7 @@ $platform_form_contrasts: (
|
|
|
15
17
|
formInputBackground: $beacon-gray-600,
|
|
16
18
|
formInputBottomBorder: $beacon-dark-blue-300,
|
|
17
19
|
formInputSurroundBorder: $beacon-gray-400,
|
|
18
|
-
formControlFocus: $beacon-blue-
|
|
20
|
+
formControlFocus: $beacon-dark-blue-400,
|
|
19
21
|
formInvalid: $beacon-orange-600,
|
|
20
22
|
formInputDisabled: $beacon-gray-500,
|
|
21
23
|
formSelectOpened: $beacon-blue-100,
|
|
@@ -26,7 +28,7 @@ $platform_form_contrasts: (
|
|
|
26
28
|
formInputBackground: $beacon-gray-700,
|
|
27
29
|
formInputBottomBorder: $highcontrast-bright-yellow-200,
|
|
28
30
|
formInputSurroundBorder: $beacon-white,
|
|
29
|
-
formControlFocus: $highcontrast-bright-blue-
|
|
31
|
+
formControlFocus: $highcontrast-bright-blue-200,
|
|
30
32
|
formInvalid: $highcontrast-bright-orange-300,
|
|
31
33
|
formInputDisabled: $beacon-gray-600,
|
|
32
34
|
formSelectOpened: $highcontrast-bright-blue-100,
|
package/styles/_layout.scss
CHANGED
|
@@ -5,7 +5,6 @@ $platform_layout_contrasts: (
|
|
|
5
5
|
containerBorder: $beacon-dark-blue-300,
|
|
6
6
|
containerShadow: inset 3px 0px 5px 0px $beacon-dark-blue-300,
|
|
7
7
|
headerBackground: $beacon-dark-blue-400,
|
|
8
|
-
headerShadow: 0px 3px 6px $beacon-black,
|
|
9
8
|
headerText: $beacon-white,
|
|
10
9
|
headerModule: $beacon-dark-blue-500,
|
|
11
10
|
headerIconHover: $beacon-dark-blue-200
|
|
@@ -16,7 +15,6 @@ $platform_layout_contrasts: (
|
|
|
16
15
|
containerBorder: $beacon-dark-blue-400,
|
|
17
16
|
containerShadow: none,
|
|
18
17
|
headerBackground: $beacon-dark-blue-500,
|
|
19
|
-
headerShadow: none,
|
|
20
18
|
headerText: $beacon-gray-300,
|
|
21
19
|
headerModule: $beacon-dark-blue-600,
|
|
22
20
|
headerIconHover: $beacon-dark-blue-500
|
|
@@ -27,7 +25,6 @@ $platform_layout_contrasts: (
|
|
|
27
25
|
containerBorder: $highcontrast-bright-blue-300,
|
|
28
26
|
containerShadow: none,
|
|
29
27
|
headerBackground: $beacon-gray-700,
|
|
30
|
-
headerShadow: none,
|
|
31
28
|
headerText: $beacon-white,
|
|
32
29
|
headerModule: $beacon-gray-600,
|
|
33
30
|
headerIconHover: $beacon-white
|
|
@@ -38,6 +35,7 @@ $header-height: 50px;
|
|
|
38
35
|
$min-detail-width: 1400px;
|
|
39
36
|
$leftnav-width: 212px;
|
|
40
37
|
$connector-width: 315px;
|
|
38
|
+
$detail-container-padding: 1rem;
|
|
41
39
|
// 100vw - leftnav
|
|
42
40
|
$detail-view-width: calc(100vw - 212px);
|
|
43
41
|
|
|
@@ -45,7 +43,6 @@ $detail-view-width: calc(100vw - 212px);
|
|
|
45
43
|
&__header {
|
|
46
44
|
@include themify($platform_layout_contrasts) {
|
|
47
45
|
background: apply('headerBackground');
|
|
48
|
-
box-shadow: apply('headerShadow');
|
|
49
46
|
color: apply('headerText');
|
|
50
47
|
}
|
|
51
48
|
height: $header-height;
|
|
@@ -114,20 +111,21 @@ $detail-view-width: calc(100vw - 212px);
|
|
|
114
111
|
@include themify($platform_layout_contrasts) {
|
|
115
112
|
background: apply('containerBackground');
|
|
116
113
|
}
|
|
114
|
+
padding: $detail-container-padding;
|
|
117
115
|
margin-top: 50px;
|
|
118
116
|
height: calc(100vh - 50px);
|
|
119
|
-
width: $detail-view-width;
|
|
117
|
+
width: $detail-view-width ;
|
|
120
118
|
overflow-y: scroll;
|
|
121
119
|
|
|
122
120
|
.detail {
|
|
123
|
-
width: $detail-view-width;
|
|
121
|
+
width: calc($detail-view-width - (2*$detail-container-padding));
|
|
124
122
|
|
|
125
123
|
&__header {
|
|
126
124
|
@include themify($platform_layout_contrasts) {
|
|
127
|
-
background: apply('
|
|
125
|
+
background: apply('containerBackground');
|
|
128
126
|
}
|
|
129
127
|
height: fit-content;
|
|
130
|
-
padding: 18px 12px
|
|
128
|
+
padding: 18px 12px 18px 12px;
|
|
131
129
|
width: inherit;
|
|
132
130
|
|
|
133
131
|
.label {
|
|
@@ -148,6 +146,7 @@ $detail-view-width: calc(100vw - 212px);
|
|
|
148
146
|
}
|
|
149
147
|
border-radius: 4px;
|
|
150
148
|
height: 48px;
|
|
149
|
+
display: flex;
|
|
151
150
|
|
|
152
151
|
.value {
|
|
153
152
|
font-size: 14px;
|
|
@@ -176,36 +175,23 @@ $detail-view-width: calc(100vw - 212px);
|
|
|
176
175
|
}
|
|
177
176
|
|
|
178
177
|
&__tabs {
|
|
179
|
-
|
|
180
|
-
top: -48px;
|
|
178
|
+
min-width: 1002px;
|
|
181
179
|
|
|
182
180
|
.action-bar {
|
|
183
|
-
position: absolute;
|
|
184
|
-
right: 10px;
|
|
185
|
-
top: 10px;
|
|
186
|
-
|
|
187
|
-
.platform-action-btn {
|
|
188
|
-
@include themify($platform_button_contrasts) {
|
|
189
|
-
background: apply('buttonAmbient');
|
|
190
|
-
border: 1px solid apply('buttonAmbientAccent');
|
|
191
|
-
}
|
|
192
|
-
width: 28px;
|
|
193
|
-
height: 28px;
|
|
194
|
-
|
|
195
|
-
.mat-icon {
|
|
196
|
-
position: relative;
|
|
197
|
-
left: -8px;
|
|
198
|
-
top: -2px;
|
|
199
|
-
font-size: 18px;
|
|
200
|
-
width: 18px;
|
|
201
|
-
height: 18px;
|
|
202
|
-
}
|
|
203
|
-
}
|
|
181
|
+
//position: absolute;
|
|
182
|
+
//right: 10px;
|
|
183
|
+
//top: 10px;
|
|
204
184
|
}
|
|
205
185
|
}
|
|
206
186
|
}
|
|
207
187
|
}
|
|
208
188
|
|
|
189
|
+
.mat-drawer-container .mat-drawer-content .main-view-container {
|
|
190
|
+
@include themify($platform_layout_contrasts) {
|
|
191
|
+
background: apply('containerBackground');
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
|
|
209
195
|
.list-view-container {
|
|
210
196
|
@include themify($platform_layout_contrasts) {
|
|
211
197
|
background: apply('containerBackground');
|
package/styles/_leftnav.scss
CHANGED
|
@@ -136,7 +136,6 @@ $icon-container-width: 50px;
|
|
|
136
136
|
.navbar--light {
|
|
137
137
|
@include themify($platform_leftnav_contrasts) {
|
|
138
138
|
background: apply('navBarLight') 0% 0% no-repeat padding-box;
|
|
139
|
-
box-shadow: apply('navBarLightShadow');
|
|
140
139
|
}
|
|
141
140
|
height: 50px;
|
|
142
141
|
line-height: 50px;
|