@betterview/integration-toolkit 0.1.2 → 1.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/.eslintignore +3 -0
- package/package.json +9 -30
- package/src/Deployment/index.ts +1 -1
- package/src/Network/index.ts +10 -5
- package/src/TestHarness/index.ts +5 -15
- package/src/types/IEnrichmentIntegration.ts +10 -63
- package/tsconfig.json +2 -2
- package/component-harness-server/index.html +0 -11
- package/component-harness-server/src/App.js +0 -34
- package/component-harness-server/src/fonts/biotif-black-webfont.woff +0 -0
- package/component-harness-server/src/fonts/biotif-black-webfont.woff2 +0 -0
- package/component-harness-server/src/fonts/biotif-blackitalic-webfont.woff +0 -0
- package/component-harness-server/src/fonts/biotif-blackitalic-webfont.woff2 +0 -0
- package/component-harness-server/src/fonts/biotif-bold-webfont.woff +0 -0
- package/component-harness-server/src/fonts/biotif-bold-webfont.woff2 +0 -0
- package/component-harness-server/src/fonts/biotif-bolditalic-webfont.woff +0 -0
- package/component-harness-server/src/fonts/biotif-bolditalic-webfont.woff2 +0 -0
- package/component-harness-server/src/fonts/biotif-book-webfont.woff +0 -0
- package/component-harness-server/src/fonts/biotif-book-webfont.woff2 +0 -0
- package/component-harness-server/src/fonts/biotif-bookitalic-webfont.woff +0 -0
- package/component-harness-server/src/fonts/biotif-bookitalic-webfont.woff2 +0 -0
- package/component-harness-server/src/fonts/biotif-extrabold-webfont.woff +0 -0
- package/component-harness-server/src/fonts/biotif-extrabold-webfont.woff2 +0 -0
- package/component-harness-server/src/fonts/biotif-extrabolditalic-webfont.woff +0 -0
- package/component-harness-server/src/fonts/biotif-extrabolditalic-webfont.woff2 +0 -0
- package/component-harness-server/src/fonts/biotif-light-webfont.woff +0 -0
- package/component-harness-server/src/fonts/biotif-light-webfont.woff2 +0 -0
- package/component-harness-server/src/fonts/biotif-lightitalic-webfont.woff +0 -0
- package/component-harness-server/src/fonts/biotif-lightitalic-webfont.woff2 +0 -0
- package/component-harness-server/src/fonts/biotif-medium-webfont.woff +0 -0
- package/component-harness-server/src/fonts/biotif-medium-webfont.woff2 +0 -0
- package/component-harness-server/src/fonts/biotif-mediumitalic-webfont.woff +0 -0
- package/component-harness-server/src/fonts/biotif-mediumitalic-webfont.woff2 +0 -0
- package/component-harness-server/src/fonts/biotif-regular-webfont.woff +0 -0
- package/component-harness-server/src/fonts/biotif-regular-webfont.woff2 +0 -0
- package/component-harness-server/src/fonts/biotif-regularitalic-webfont.woff +0 -0
- package/component-harness-server/src/fonts/biotif-regularitalic-webfont.woff2 +0 -0
- package/component-harness-server/src/fonts/biotif-semibold-webfont.woff +0 -0
- package/component-harness-server/src/fonts/biotif-semibold-webfont.woff2 +0 -0
- package/component-harness-server/src/fonts/biotif-semibolditalic-webfont.woff +0 -0
- package/component-harness-server/src/fonts/biotif-semibolditalic-webfont.woff2 +0 -0
- package/component-harness-server/src/fonts/pensumpro-black.otf +0 -0
- package/component-harness-server/src/fonts/pensumpro-blackitalic.otf +0 -0
- package/component-harness-server/src/fonts/pensumpro-bold.otf +0 -0
- package/component-harness-server/src/fonts/pensumpro-bolditalic.otf +0 -0
- package/component-harness-server/src/fonts/pensumpro-book.otf +0 -0
- package/component-harness-server/src/fonts/pensumpro-bookitalic.otf +0 -0
- package/component-harness-server/src/fonts/pensumpro-extrabold.otf +0 -0
- package/component-harness-server/src/fonts/pensumpro-extrabolditalic.otf +0 -0
- package/component-harness-server/src/fonts/pensumpro-extralight.otf +0 -0
- package/component-harness-server/src/fonts/pensumpro-extralightitalic.otf +0 -0
- package/component-harness-server/src/fonts/pensumpro-light.otf +0 -0
- package/component-harness-server/src/fonts/pensumpro-lightitalic.otf +0 -0
- package/component-harness-server/src/fonts/pensumpro-medium.otf +0 -0
- package/component-harness-server/src/fonts/pensumpro-mediumitalic.otf +0 -0
- package/component-harness-server/src/fonts/pensumpro-regular.otf +0 -0
- package/component-harness-server/src/fonts/pensumpro-regularitalic.otf +0 -0
- package/component-harness-server/src/fonts/pensumpro-thin.otf +0 -0
- package/component-harness-server/src/fonts/pensumpro-thinitalic.otf +0 -0
- package/component-harness-server/src/index.js +0 -5
- package/component-harness-server/src/styles/betterview.styl +0 -34
- package/component-harness-server/src/styles/fonts.styl +0 -208
- package/component-harness-server/src/styles/mixins.styl +0 -23
- package/component-harness-server/src/styles/reset.styl +0 -28
- package/component-harness-server/src/styles/vars.styl +0 -77
- package/component-harness-server/src/styles.styl +0 -29
- package/src/ComponentHarness/index.ts +0 -93
package/.eslintignore
CHANGED
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@betterview/integration-toolkit",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "Supports integration packages.
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Supports integration packages. This should be the only import from our integrations",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"build": "rm -rf lib && npm run lint && tsc -p tsconfig.build.json",
|
|
7
7
|
"lint": "eslint . --ext .ts,.js",
|
|
@@ -15,49 +15,28 @@
|
|
|
15
15
|
"author": "",
|
|
16
16
|
"license": "UNLICENSED",
|
|
17
17
|
"dependencies": {
|
|
18
|
-
"
|
|
19
|
-
"
|
|
20
|
-
"axios": "^0.21.1",
|
|
21
|
-
"classnames": "^2.3.1",
|
|
22
|
-
"css-loader": "^6.2.0",
|
|
18
|
+
"async": "^3.2.1",
|
|
19
|
+
"axios": "0.21.1",
|
|
23
20
|
"fs-extra": "^10.0.0",
|
|
24
|
-
"json-colorizer": "
|
|
25
|
-
"react": "^17.0.2",
|
|
26
|
-
"react-dom": "^17.0.2",
|
|
27
|
-
"style-loader": "^3.2.1",
|
|
28
|
-
"stylus": "^0.54.8",
|
|
29
|
-
"stylus-loader": "^6.1.0"
|
|
21
|
+
"json-colorizer": "2.2.2"
|
|
30
22
|
},
|
|
31
23
|
"devDependencies": {
|
|
32
|
-
"@babel/core": "^7.15.0",
|
|
33
|
-
"@babel/preset-env": "^7.15.0",
|
|
34
|
-
"@babel/preset-react": "^7.14.5",
|
|
35
|
-
"@types/jest": "26.0.24",
|
|
36
|
-
"@types/webpack": "^4.41.30",
|
|
37
|
-
"@types/webpack-dev-server": "^4.0.3",
|
|
38
24
|
"@typescript-eslint/eslint-plugin": "4.26.1",
|
|
39
25
|
"@typescript-eslint/eslint-plugin-tslint": "4.26.1",
|
|
40
26
|
"@typescript-eslint/parser": "4.26.1",
|
|
41
|
-
"babel-eslint": "
|
|
42
|
-
"
|
|
43
|
-
"eslint": "^7.22.0",
|
|
27
|
+
"babel-eslint": "10.1.0",
|
|
28
|
+
"eslint": "7.22.0",
|
|
44
29
|
"eslint-config-prettier": "6.10.1",
|
|
45
|
-
"eslint-plugin-import": "
|
|
30
|
+
"eslint-plugin-import": "2.22.1",
|
|
46
31
|
"eslint-plugin-jsdoc": "30.7.13",
|
|
47
32
|
"eslint-plugin-prefer-arrow": "1.2.3",
|
|
48
33
|
"eslint-plugin-prettier": "3.3.1",
|
|
49
34
|
"eslint-plugin-react": "7.22.0",
|
|
50
35
|
"eslint-plugin-sonarjs": "0.6.0",
|
|
51
|
-
"html-webpack-plugin": "^5.3.2",
|
|
52
36
|
"jest": "26.6.3",
|
|
53
37
|
"ts-jest": "26.5.5",
|
|
54
38
|
"ts-node": "8.8.2",
|
|
55
|
-
"
|
|
56
|
-
"tslint-config-prettier": "1.18.0",
|
|
57
|
-
"typescript": "4.3.2",
|
|
58
|
-
"webpack": "^5.51.1",
|
|
59
|
-
"webpack-cli": "^4.8.0",
|
|
60
|
-
"webpack-dev-server": "^4.0.0"
|
|
39
|
+
"typescript": "4.3.2"
|
|
61
40
|
},
|
|
62
41
|
"engines": {
|
|
63
42
|
"node": "^10 || ^14"
|
package/src/Deployment/index.ts
CHANGED
|
@@ -14,7 +14,7 @@ export function generateDatabaseScripts(
|
|
|
14
14
|
integration: IEnrichmentIntegration,
|
|
15
15
|
billingProviderId: number
|
|
16
16
|
): PartnerHubInstallScripts {
|
|
17
|
-
const { offering, partner } =
|
|
17
|
+
const { offering, partner } = { offering: 'foo', partner: 'bar' }; // this will come from the manifest file
|
|
18
18
|
const intName = `${partner.toLowerCase()}_${offering.toLowerCase()}`;
|
|
19
19
|
|
|
20
20
|
const ph_create = `
|
package/src/Network/index.ts
CHANGED
|
@@ -1,14 +1,19 @@
|
|
|
1
|
-
import { IWrapResult, wrap } from './axios-error-handling';
|
|
2
1
|
import axios, { AxiosRequestConfig } from 'axios';
|
|
2
|
+
import { IWrapResult, wrap } from './axios-error-handling';
|
|
3
3
|
|
|
4
|
-
export async function get(
|
|
5
|
-
|
|
4
|
+
export async function get(
|
|
5
|
+
url: string,
|
|
6
|
+
config: AxiosRequestConfig
|
|
7
|
+
): Promise<{ request_url: string; result: IWrapResult<Record<string, any>> }> {
|
|
8
|
+
const result = await wrap(axios.get<Record<string, any>>(url, config));
|
|
9
|
+
return { request_url: url, result };
|
|
6
10
|
}
|
|
7
11
|
|
|
8
12
|
export async function post(
|
|
9
13
|
url: string,
|
|
10
14
|
data: any,
|
|
11
15
|
config: AxiosRequestConfig
|
|
12
|
-
): Promise<IWrapResult<Record<string, any
|
|
13
|
-
|
|
16
|
+
): Promise<{ request_url: string; result: IWrapResult<Record<string, any>> }> {
|
|
17
|
+
const result = await wrap(axios.post<Record<string, any>>(url, data, config));
|
|
18
|
+
return { request_url: url, result };
|
|
14
19
|
}
|
package/src/TestHarness/index.ts
CHANGED
|
@@ -10,36 +10,26 @@ export default class TestHarness {
|
|
|
10
10
|
this.requestData = requestData;
|
|
11
11
|
}
|
|
12
12
|
|
|
13
|
-
public async runGetData(): Promise<Record<string, any
|
|
13
|
+
public async runGetData(): Promise<Record<string, any> | undefined> {
|
|
14
14
|
if (!this.requestData) {
|
|
15
15
|
this.setMockRequestData();
|
|
16
16
|
}
|
|
17
|
-
console.log('URL: ', this.integration.getUrl());
|
|
18
17
|
console.log('Request data set to: ', jsonLog(this.requestData));
|
|
19
|
-
const result = await this.integration.getData(this.requestData!);
|
|
20
|
-
console.log(
|
|
21
|
-
`Result from ${this.integration.registration.partner}_${this.integration.registration.offering}:`,
|
|
22
|
-
jsonLog(result)
|
|
23
|
-
);
|
|
18
|
+
const result = await this.integration.getData?.(this.requestData!);
|
|
19
|
+
console.log(`Result:`, jsonLog(result));
|
|
24
20
|
return result;
|
|
25
21
|
}
|
|
26
22
|
|
|
27
|
-
public runGetUrl() {
|
|
28
|
-
this.integration.getUrl();
|
|
29
|
-
}
|
|
30
|
-
|
|
31
23
|
public setMockRequestData() {
|
|
32
24
|
this.requestData = {
|
|
33
|
-
|
|
34
|
-
address: '100 Pringle Ave. Walnut Creek, CA 94596',
|
|
25
|
+
full_address: '100 Pringle Ave. Walnut Creek, CA 94596',
|
|
35
26
|
street: '100 Pringle Ave.',
|
|
36
27
|
city: 'Walnut Creek',
|
|
37
28
|
zip: '94596',
|
|
38
29
|
state: 'CA',
|
|
39
30
|
// fill this w/the true credentials from the offering
|
|
40
|
-
|
|
31
|
+
credentials: { username: 'test', password: 'test' },
|
|
41
32
|
externalId: 'external1',
|
|
42
|
-
secondaryExternalId: 'external2',
|
|
43
33
|
insuredName: 'Jane Doe',
|
|
44
34
|
latitude: 37.90820797421544,
|
|
45
35
|
longitude: -122.067761097756
|
|
@@ -1,73 +1,20 @@
|
|
|
1
1
|
export interface IEnrichmentIntegration {
|
|
2
|
-
version: string;
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* The integration name registred with the database
|
|
6
|
-
*/
|
|
7
|
-
registration: EnrichmentIntegrationRegistration;
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* Where in the workflow the integration should be run: Pre - normal location - before detections,
|
|
11
|
-
* Post - after detections, Adhoc, out of band, no need to run in a normal way.
|
|
12
|
-
*/
|
|
13
|
-
workflowLocation: EnrichmentIntegrationWorkflowLocation;
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* Should be used for the integration into the UI. If one integration is needed for another
|
|
17
|
-
* this is where we would reference that.
|
|
18
|
-
*/
|
|
19
|
-
dependencies?: EnrichmentIntegrationRegistration[];
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* Data requirements is a defintion of what data is needed to send to the vendor to get data back.
|
|
23
|
-
*/
|
|
24
|
-
dataRequirements?: EnrichmentIntegrationDataRequirement[];
|
|
25
|
-
|
|
26
2
|
/**
|
|
27
3
|
* Pulls data from the vendor and returns the data graph in JSON format.
|
|
28
4
|
*/
|
|
29
|
-
getData(requestData: IEnrichmentIntegrationRequestData): Promise<Record<string, any>>;
|
|
30
|
-
|
|
31
|
-
/**
|
|
32
|
-
* retrieves the base URL for the integration.
|
|
33
|
-
*/
|
|
34
|
-
getUrl(): string;
|
|
5
|
+
getData?(requestData: IEnrichmentIntegrationRequestData): Promise<Record<string, any>>;
|
|
35
6
|
}
|
|
36
7
|
|
|
37
|
-
export type EnrichmentIntegrationRegistration = {
|
|
38
|
-
id?: number;
|
|
39
|
-
billing_id?: number;
|
|
40
|
-
partner: string;
|
|
41
|
-
offering: string;
|
|
42
|
-
};
|
|
43
|
-
|
|
44
|
-
export type EnrichmentIntegrationWorkflowLocation = 'Pre' | 'Post' | 'Adhoc';
|
|
45
|
-
|
|
46
|
-
export type EnrichmentIntegrationDataRequirement =
|
|
47
|
-
| 'partnerHubCredentials'
|
|
48
|
-
| 'propertyId'
|
|
49
|
-
| 'address'
|
|
50
|
-
| 'street'
|
|
51
|
-
| 'city'
|
|
52
|
-
| 'zip'
|
|
53
|
-
| 'state'
|
|
54
|
-
| 'externalId'
|
|
55
|
-
| 'secondaryExternalId'
|
|
56
|
-
| 'latitude'
|
|
57
|
-
| 'longitude'
|
|
58
|
-
| 'insuredName';
|
|
59
|
-
|
|
60
8
|
export interface IEnrichmentIntegrationRequestData {
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
zip: string;
|
|
9
|
+
credentials: Record<any, string>;
|
|
10
|
+
full_address?: string;
|
|
11
|
+
street?: string;
|
|
12
|
+
city?: string;
|
|
13
|
+
state?: string;
|
|
14
|
+
zip?: string;
|
|
68
15
|
externalId?: string | null;
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
longitude: number;
|
|
16
|
+
latitude?: number;
|
|
17
|
+
longitude?: number;
|
|
72
18
|
insuredName?: string | null;
|
|
19
|
+
clientOrgId?: number;
|
|
73
20
|
}
|
package/tsconfig.json
CHANGED
|
@@ -5,10 +5,10 @@
|
|
|
5
5
|
"declarationMap": true,
|
|
6
6
|
"esModuleInterop": true,
|
|
7
7
|
"skipLibCheck": true,
|
|
8
|
-
"target": "
|
|
8
|
+
"target": "ES2020",
|
|
9
9
|
"module": "commonjs",
|
|
10
10
|
"moduleResolution": "node",
|
|
11
|
-
"outDir": "
|
|
11
|
+
"outDir": "lib",
|
|
12
12
|
"rootDir": "src",
|
|
13
13
|
"sourceMap": true,
|
|
14
14
|
"allowJs": true,
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import React, { useState } from 'main/react';
|
|
2
|
-
import { EnrichmentComponent } from 'components';
|
|
3
|
-
import { Typography, FormGroup, FormControlLabel, Switch } from 'main/@material-ui/core';
|
|
4
|
-
import styles from './styles.styl';
|
|
5
|
-
import classnames from 'classnames';
|
|
6
|
-
|
|
7
|
-
const App = () => {
|
|
8
|
-
const [showBorderChecked, setShowBorderChecked] = useState(true);
|
|
9
|
-
const toggleBorderChecked = () => {
|
|
10
|
-
setShowBorderChecked(!showBorderChecked);
|
|
11
|
-
};
|
|
12
|
-
|
|
13
|
-
return (
|
|
14
|
-
<div className={styles.root}>
|
|
15
|
-
<Typography variant="h4">Component Harness</Typography>
|
|
16
|
-
|
|
17
|
-
<div className={styles.contentWrapper}>
|
|
18
|
-
<FormGroup>
|
|
19
|
-
<FormControlLabel
|
|
20
|
-
control={<Switch size="small" checked={showBorderChecked} onChange={toggleBorderChecked} />}
|
|
21
|
-
label="Show Border"
|
|
22
|
-
/>
|
|
23
|
-
</FormGroup>
|
|
24
|
-
<div
|
|
25
|
-
className={classnames([styles.componentContainer, showBorderChecked ? styles.showBorder : styles.hideBorder])}
|
|
26
|
-
>
|
|
27
|
-
<EnrichmentComponent previewMode={true} />
|
|
28
|
-
</div>
|
|
29
|
-
</div>
|
|
30
|
-
</div>
|
|
31
|
-
);
|
|
32
|
-
};
|
|
33
|
-
|
|
34
|
-
export default App;
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
@import './reset.styl'
|
|
2
|
-
@import './fonts.styl'
|
|
3
|
-
@import './vars.styl'
|
|
4
|
-
|
|
5
|
-
html
|
|
6
|
-
font-size: 62.5% // allows for rems - see http://snook.ca/archives/html_and_css/font-size-with-rem. tl;dr: it equals 10px with a standard default of 12px.
|
|
7
|
-
|
|
8
|
-
body
|
|
9
|
-
font-size: 1.4rem
|
|
10
|
-
font-family: $primaryFont
|
|
11
|
-
font-weight: 400
|
|
12
|
-
color: $black
|
|
13
|
-
cursor: default
|
|
14
|
-
background: #f7f7f7
|
|
15
|
-
|
|
16
|
-
button
|
|
17
|
-
font-family: $primaryFont
|
|
18
|
-
|
|
19
|
-
a
|
|
20
|
-
$linkColor = #0fa3e1
|
|
21
|
-
text-decoration: none
|
|
22
|
-
color: $linkColor
|
|
23
|
-
|
|
24
|
-
&:visited
|
|
25
|
-
color: $linkColor
|
|
26
|
-
|
|
27
|
-
&:hover
|
|
28
|
-
color: $betterviewBlue
|
|
29
|
-
|
|
30
|
-
textarea
|
|
31
|
-
input
|
|
32
|
-
outline: none
|
|
33
|
-
|
|
34
|
-
|
|
@@ -1,208 +0,0 @@
|
|
|
1
|
-
@font-face
|
|
2
|
-
font-family: 'Biotif'
|
|
3
|
-
src: url('../fonts/biotif-black-webfont.woff2') format('woff2'),
|
|
4
|
-
url('../fonts/biotif-black-webfont.woff') format('woff')
|
|
5
|
-
font-weight: 900
|
|
6
|
-
font-style: normal
|
|
7
|
-
|
|
8
|
-
@font-face
|
|
9
|
-
font-family: 'Biotif'
|
|
10
|
-
src: url('../fonts/biotif-blackitalic-webfont.woff2') format('woff2'),
|
|
11
|
-
url('../fonts/biotif-blackitalic-webfont.woff') format('woff')
|
|
12
|
-
font-weight: 900
|
|
13
|
-
font-style: italic
|
|
14
|
-
|
|
15
|
-
@font-face
|
|
16
|
-
font-family: 'Biotif'
|
|
17
|
-
src: url('../fonts/biotif-bold-webfont.woff2') format('woff2'),
|
|
18
|
-
url('../fonts/biotif-bold-webfont.woff') format('woff')
|
|
19
|
-
font-weight: 700
|
|
20
|
-
font-style: normal
|
|
21
|
-
|
|
22
|
-
@font-face
|
|
23
|
-
font-family: 'Biotif'
|
|
24
|
-
src: url('../fonts/biotif-bolditalic-webfont.woff2') format('woff2'),
|
|
25
|
-
url('../fonts/biotif-bolditalic-webfont.woff') format('woff')
|
|
26
|
-
font-weight: 700
|
|
27
|
-
font-style: italic
|
|
28
|
-
|
|
29
|
-
@font-face
|
|
30
|
-
font-family: 'Biotif'
|
|
31
|
-
src: url('../fonts/biotif-book-webfont.woff2') format('woff2'),
|
|
32
|
-
url('../fonts/biotif-book-webfont.woff') format('woff')
|
|
33
|
-
font-weight: 300
|
|
34
|
-
font-style: normal
|
|
35
|
-
|
|
36
|
-
@font-face
|
|
37
|
-
font-family: 'Biotif'
|
|
38
|
-
src: url('../fonts/biotif-bookitalic-webfont.woff2') format('woff2'),
|
|
39
|
-
url('../fonts/biotif-bookitalic-webfont.woff') format('woff')
|
|
40
|
-
font-weight: 300
|
|
41
|
-
font-style: italic
|
|
42
|
-
|
|
43
|
-
@font-face
|
|
44
|
-
font-family: 'Biotif'
|
|
45
|
-
src: url('../fonts/biotif-extrabold-webfont.woff2') format('woff2'),
|
|
46
|
-
url('../fonts/biotif-extrabold-webfont.woff') format('woff')
|
|
47
|
-
font-weight: 800
|
|
48
|
-
font-style: normal
|
|
49
|
-
|
|
50
|
-
@font-face
|
|
51
|
-
font-family: 'Biotif'
|
|
52
|
-
src: url('../fonts/biotif-extrabolditalic-webfont.woff2') format('woff2'),
|
|
53
|
-
url('../fonts/biotif-extrabolditalic-webfont.woff') format('woff')
|
|
54
|
-
font-weight: 800
|
|
55
|
-
font-style: italic
|
|
56
|
-
|
|
57
|
-
@font-face
|
|
58
|
-
font-family: 'Biotif'
|
|
59
|
-
src: url('../fonts/biotif-light-webfont.woff2') format('woff2'),
|
|
60
|
-
url('../fonts/biotif-light-webfont.woff') format('woff')
|
|
61
|
-
font-weight: 200
|
|
62
|
-
font-style: normal
|
|
63
|
-
|
|
64
|
-
@font-face
|
|
65
|
-
font-family: 'Biotif'
|
|
66
|
-
src: url('../fonts/biotif-lightitalic-webfont.woff2') format('woff2'),
|
|
67
|
-
url('../fonts/biotif-lightitalic-webfont.woff') format('woff')
|
|
68
|
-
font-weight: 200
|
|
69
|
-
font-style: italic
|
|
70
|
-
|
|
71
|
-
@font-face
|
|
72
|
-
font-family: 'Biotif'
|
|
73
|
-
src: url('../fonts/biotif-medium-webfont.woff2') format('woff2'),
|
|
74
|
-
url('../fonts/biotif-medium-webfont.woff') format('woff')
|
|
75
|
-
font-weight: 500
|
|
76
|
-
font-style: normal
|
|
77
|
-
|
|
78
|
-
@font-face
|
|
79
|
-
font-family: 'Biotif'
|
|
80
|
-
src: url('../fonts/biotif-mediumitalic-webfont.woff2') format('woff2'),
|
|
81
|
-
url('../fonts/biotif-mediumitalic-webfont.woff') format('woff')
|
|
82
|
-
font-weight: 500
|
|
83
|
-
font-style: italic
|
|
84
|
-
|
|
85
|
-
@font-face
|
|
86
|
-
font-family: 'Biotif'
|
|
87
|
-
src: url('../fonts/biotif-regular-webfont.woff2') format('woff2'),
|
|
88
|
-
url('../fonts/biotif-regular-webfont.woff') format('woff')
|
|
89
|
-
font-weight: 400
|
|
90
|
-
font-style: normal
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
@font-face
|
|
94
|
-
font-family: 'Biotif'
|
|
95
|
-
src: url('../fonts/biotif-regularitalic-webfont.woff2') format('woff2'),
|
|
96
|
-
url('../fonts/biotif-regularitalic-webfont.woff') format('woff')
|
|
97
|
-
font-weight: 400
|
|
98
|
-
font-style: italic
|
|
99
|
-
|
|
100
|
-
@font-face
|
|
101
|
-
font-family: 'Biotif'
|
|
102
|
-
src: url('../fonts/biotif-semibold-webfont.woff2') format('woff2'),
|
|
103
|
-
url('../fonts/biotif-semibold-webfont.woff') format('woff')
|
|
104
|
-
font-weight: 600
|
|
105
|
-
font-style: normal
|
|
106
|
-
|
|
107
|
-
@font-face
|
|
108
|
-
font-family: 'Biotif'
|
|
109
|
-
src: url('../fonts/biotif-semibolditalic-webfont.woff2') format('woff2'),
|
|
110
|
-
url('../fonts/biotif-semibolditalic-webfont.woff') format('woff')
|
|
111
|
-
font-weight: 600
|
|
112
|
-
font-style: italic
|
|
113
|
-
|
|
114
|
-
@font-face
|
|
115
|
-
font-family: 'Pensum Pro'
|
|
116
|
-
src: url('../fonts/pensumpro-black.otf') format('opentype')
|
|
117
|
-
font-weight: 900
|
|
118
|
-
font-style: normal
|
|
119
|
-
|
|
120
|
-
@font-face
|
|
121
|
-
font-family: 'Pensum Pro'
|
|
122
|
-
src: url('../fonts/pensumpro-blackitalic.otf') format('opentype')
|
|
123
|
-
font-weight: 900
|
|
124
|
-
font-style: italic
|
|
125
|
-
|
|
126
|
-
@font-face
|
|
127
|
-
font-family: 'Pensum Pro'
|
|
128
|
-
src: url('../fonts/pensumpro-bold.otf') format('opentype')
|
|
129
|
-
font-weight: 800
|
|
130
|
-
font-style: normal
|
|
131
|
-
|
|
132
|
-
@font-face
|
|
133
|
-
font-family: 'Pensum Pro'
|
|
134
|
-
src: url('../fonts/pensumpro-bolditalic.otf') format('opentype')
|
|
135
|
-
font-weight: 800
|
|
136
|
-
font-style: italic
|
|
137
|
-
|
|
138
|
-
@font-face
|
|
139
|
-
font-family: 'Pensum Pro'
|
|
140
|
-
src: url('../fonts/pensumpro-book.otf') format('opentype')
|
|
141
|
-
font-weight: 700
|
|
142
|
-
font-style: normal
|
|
143
|
-
|
|
144
|
-
@font-face
|
|
145
|
-
font-family: 'Pensum Pro'
|
|
146
|
-
src: url('../fonts/pensumpro-bookitalic.otf') format('opentype')
|
|
147
|
-
font-weight: 700
|
|
148
|
-
font-style: italic
|
|
149
|
-
|
|
150
|
-
@font-face
|
|
151
|
-
font-family: 'Pensum Pro'
|
|
152
|
-
src: url('../fonts/pensumpro-extralight.otf') format('opentype')
|
|
153
|
-
font-weight: 500
|
|
154
|
-
font-style: normal
|
|
155
|
-
|
|
156
|
-
@font-face
|
|
157
|
-
font-family: 'Pensum Pro'
|
|
158
|
-
src: url('../fonts/pensumpro-extralightitalic.otf') format('opentype')
|
|
159
|
-
font-weight: 500
|
|
160
|
-
font-style: italic
|
|
161
|
-
|
|
162
|
-
@font-face
|
|
163
|
-
font-family: 'Pensum Pro'
|
|
164
|
-
src: url('../fonts/pensumpro-light.otf') format('opentype')
|
|
165
|
-
font-weight: 400
|
|
166
|
-
font-style: normal
|
|
167
|
-
|
|
168
|
-
@font-face
|
|
169
|
-
font-family: 'Pensum Pro'
|
|
170
|
-
src: url('../fonts/pensumpro-lightitalic.otf') format('opentype')
|
|
171
|
-
font-weight: 400
|
|
172
|
-
font-style: italic
|
|
173
|
-
|
|
174
|
-
@font-face
|
|
175
|
-
font-family: 'Pensum Pro'
|
|
176
|
-
src: url('../fonts/pensumpro-medium.otf') format('opentype')
|
|
177
|
-
font-weight: 300
|
|
178
|
-
font-style: normal
|
|
179
|
-
|
|
180
|
-
@font-face
|
|
181
|
-
font-family: 'Pensum Pro'
|
|
182
|
-
src: url('../fonts/pensumpro-mediumitalic.otf') format('opentype')
|
|
183
|
-
font-weight: 300
|
|
184
|
-
font-style: italic
|
|
185
|
-
|
|
186
|
-
@font-face
|
|
187
|
-
font-family: 'Pensum Pro'
|
|
188
|
-
src: url('../fonts/pensumpro-regular.otf') format('opentype')
|
|
189
|
-
font-weight: 200
|
|
190
|
-
font-style: normal
|
|
191
|
-
|
|
192
|
-
@font-face
|
|
193
|
-
font-family: 'Pensum Pro'
|
|
194
|
-
src: url('../fonts/pensumpro-regularitalic.otf') format('opentype')
|
|
195
|
-
font-weight: 200
|
|
196
|
-
font-style: italic
|
|
197
|
-
|
|
198
|
-
@font-face
|
|
199
|
-
font-family: 'Pensum Pro'
|
|
200
|
-
src: url('../fonts/pensumpro-thin.otf') format('opentype')
|
|
201
|
-
font-weight: 100
|
|
202
|
-
font-style: normal
|
|
203
|
-
|
|
204
|
-
@font-face
|
|
205
|
-
font-family: 'Pensum Pro'
|
|
206
|
-
src: url('../fonts/pensumpro-thinitalic.otf') format('opentype')
|
|
207
|
-
font-weight: 100
|
|
208
|
-
font-style: italic
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
disableSelect()
|
|
2
|
-
-webkit-touch-callout: none
|
|
3
|
-
-webkit-user-select: none
|
|
4
|
-
-khtml-user-select: none
|
|
5
|
-
-moz-user-select: none
|
|
6
|
-
-ms-user-select: none
|
|
7
|
-
user-select: none
|
|
8
|
-
|
|
9
|
-
visibleScrollbar()
|
|
10
|
-
&::-webkit-scrollbar
|
|
11
|
-
-webkit-appearance: none
|
|
12
|
-
width: 7px
|
|
13
|
-
|
|
14
|
-
&::-webkit-scrollbar-thumb
|
|
15
|
-
border-radius: 4px
|
|
16
|
-
background-color: rgba(0, 0, 0, .5)
|
|
17
|
-
-webkit-box-shadow: 0 0 1px rgba(255, 255, 255, .5)
|
|
18
|
-
|
|
19
|
-
fillAvailableSpace()
|
|
20
|
-
width: 100%
|
|
21
|
-
width: -moz-available /* WebKit-based browsers will ignore this. */
|
|
22
|
-
width: -webkit-fill-available /* Mozilla-based browsers will ignore this. */
|
|
23
|
-
width: fill-available
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
/* HTML5 display-role reset for older browsers */
|
|
2
|
-
article, aside, details, figcaption, figure,
|
|
3
|
-
footer, header, hgroup, menu, nav, section
|
|
4
|
-
display: block
|
|
5
|
-
|
|
6
|
-
body
|
|
7
|
-
line-height: 1
|
|
8
|
-
|
|
9
|
-
ol, ul
|
|
10
|
-
list-style: none
|
|
11
|
-
|
|
12
|
-
blockquote, q
|
|
13
|
-
quotes: none
|
|
14
|
-
|
|
15
|
-
blockquote:before, blockquote:after,
|
|
16
|
-
q:before, q:after
|
|
17
|
-
content: ''
|
|
18
|
-
content: none
|
|
19
|
-
|
|
20
|
-
table
|
|
21
|
-
border-collapse: collapse
|
|
22
|
-
border-spacing: 0
|
|
23
|
-
|
|
24
|
-
button:focus
|
|
25
|
-
outline: 0
|
|
26
|
-
|
|
27
|
-
ins, del
|
|
28
|
-
text-decoration: none
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
// colors
|
|
2
|
-
$betterviewBlue = rgba(0, 144, 218, 1) // #0090DA
|
|
3
|
-
$blueHoverState = rgba(0, 144, 218, 0.08)
|
|
4
|
-
$blueLightHoverState = rgba(0, 144, 218, 0.04)
|
|
5
|
-
$betterviewRed = rgb(255, 10, 57)
|
|
6
|
-
$betterviewGreen = rgb(0, 220, 79)
|
|
7
|
-
$betterviewOrange = rgb(255, 145, 0)
|
|
8
|
-
$betterviewYellow = rgb(255, 235, 59)
|
|
9
|
-
//this is the same as charcoal, but since we refer to it so much i think its worth calling it a betterview color.
|
|
10
|
-
$betterviewBlack = rgb(37,40,42)
|
|
11
|
-
|
|
12
|
-
$navy = #1c2851
|
|
13
|
-
$black = #23272b
|
|
14
|
-
$charcoal = rgb(37,40,42)
|
|
15
|
-
$blue = rgba(0, 144, 218, 1)
|
|
16
|
-
$borderColor = #eff0ed
|
|
17
|
-
$gray = #c6c8c5
|
|
18
|
-
$grayText = rgba(37, 40, 42, 0.6)
|
|
19
|
-
$grayUnderline = #B0B8BF
|
|
20
|
-
$green = rgb(0, 220, 79) // #00DC4F
|
|
21
|
-
$inputHighlightColor = #f8fbff
|
|
22
|
-
$inputSelectionColor = #fdfad8
|
|
23
|
-
$inputLabelColor = rgba(37, 40, 42, 1)
|
|
24
|
-
$inputPlaceholderColor = rgba(37, 40, 42, 0.3)
|
|
25
|
-
$inputGroupBorderColor = rgba(37, 40, 42, 0.2)
|
|
26
|
-
$lightBlue = #5bceff
|
|
27
|
-
$lightGray = #eeefee
|
|
28
|
-
$orange = #ff8200
|
|
29
|
-
$red = rgb(255, 10, 57) // #FF0A39
|
|
30
|
-
$redError = #e04e39
|
|
31
|
-
$searchColor = #fff
|
|
32
|
-
$secondaryBorderColor = #447d95
|
|
33
|
-
$sidebarBorderColor = #4A4A4A
|
|
34
|
-
$trueblack = #000
|
|
35
|
-
$white = #fff
|
|
36
|
-
$yellow = #fdd835
|
|
37
|
-
|
|
38
|
-
// colors based on others
|
|
39
|
-
$disabledText = rgba($black, .6)
|
|
40
|
-
$placeholderText = lighten($black, 40%)
|
|
41
|
-
|
|
42
|
-
// fonts
|
|
43
|
-
$primaryFont = Biotif, -apple-system, BlinkMacSystemFont, 'Open Sans', sans-serif
|
|
44
|
-
$primaryBoldFont = Biotif-Bold, -apple-system, BlinkMacSystemFont, 'Open Sans', sans-serif
|
|
45
|
-
$primaryBookFont = Biotif-Book, -apple-system, BlinkMacSystemFont, 'Open Sans', sans-serif
|
|
46
|
-
$secondaryFont = Biotif, 'Montserrat', sans-serif
|
|
47
|
-
$mediumFont = Biotif, -apple-system, BlinkMacSystemFont, 'Open Sans', sans-serif
|
|
48
|
-
$lightFont = Biotif, -apple-system, BlinkMacSystemFont, 'Open Sans', sans-serif
|
|
49
|
-
|
|
50
|
-
$subtextFont = Pensum, -apple-system, BlinkMacSystemFont, 'Open Sans', sans-serif
|
|
51
|
-
$subtextFontPro = Pensum Pro, -apple-system, BlinkMacSystemFont, 'Open Sans', sans-serif
|
|
52
|
-
|
|
53
|
-
// global light direction
|
|
54
|
-
$lightOffsetX = 0
|
|
55
|
-
$lightOffsetY = .2rem
|
|
56
|
-
|
|
57
|
-
// z-index
|
|
58
|
-
$layer0 = 0
|
|
59
|
-
$layer1 = 1000
|
|
60
|
-
$layer2 = 2000
|
|
61
|
-
$layer3 = 3000
|
|
62
|
-
$layer4 = 4000
|
|
63
|
-
$layer5 = 5000
|
|
64
|
-
$layer6 = 6000
|
|
65
|
-
$layer7 = 7000
|
|
66
|
-
$layer8 = 8000
|
|
67
|
-
$layer9 = 9000
|
|
68
|
-
|
|
69
|
-
//global heights
|
|
70
|
-
$primaryNavbarHeight = 6.4rem
|
|
71
|
-
$propertyProfileTopBarHeight = 11.4rem
|
|
72
|
-
|
|
73
|
-
$xs = 0px
|
|
74
|
-
$sm = 600px
|
|
75
|
-
$md = 960px
|
|
76
|
-
$lg = 1280px
|
|
77
|
-
$xl = 1920px
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
@import './styles/betterview.styl'
|
|
3
|
-
|
|
4
|
-
body
|
|
5
|
-
background-color: rgba(230, 230, 230, 1)
|
|
6
|
-
|
|
7
|
-
.root
|
|
8
|
-
margin-left: auto
|
|
9
|
-
margin-right: auto
|
|
10
|
-
width: 497px
|
|
11
|
-
background-color: white
|
|
12
|
-
margin-top: 40px
|
|
13
|
-
padding: 30px
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
.contentWrapper
|
|
17
|
-
margin-top: 20px
|
|
18
|
-
|
|
19
|
-
.componentContainer
|
|
20
|
-
margin-top: 20px
|
|
21
|
-
margin-left: auto
|
|
22
|
-
margin-right: auto
|
|
23
|
-
padding-bottom: 500px;
|
|
24
|
-
|
|
25
|
-
.showBorder
|
|
26
|
-
border: solid 1px rgba(125, 125, 125, 1)
|
|
27
|
-
|
|
28
|
-
.hideBorder
|
|
29
|
-
border: solid 1px rgba(125, 125, 125, 0)
|
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
import path from 'path';
|
|
2
|
-
import webpack, { Configuration as CompilerConfig } from 'webpack';
|
|
3
|
-
import WebpackDevServer, { Configuration as ServerConfig } from 'webpack-dev-server';
|
|
4
|
-
import HtmlWebpackPlugin from 'html-webpack-plugin';
|
|
5
|
-
|
|
6
|
-
// we are attempting to get our bas /integration-toolkit directory here
|
|
7
|
-
|
|
8
|
-
const basePath = path.join(__dirname, '../../');
|
|
9
|
-
const enrichmentIntegrationBasePath = path.join(path.dirname(require.main!.filename), '../');
|
|
10
|
-
const rootPath = path.join(basePath, '/component-harness-server/');
|
|
11
|
-
const node_modules_path = path.join(basePath, '/node_modules/');
|
|
12
|
-
|
|
13
|
-
const serverConfig: ServerConfig = {
|
|
14
|
-
port: 3000,
|
|
15
|
-
open: true,
|
|
16
|
-
client: {
|
|
17
|
-
progress: true
|
|
18
|
-
},
|
|
19
|
-
host: '127.0.0.1'
|
|
20
|
-
};
|
|
21
|
-
const compilerConfig: CompilerConfig = {
|
|
22
|
-
entry: [path.join(rootPath, '/src/index.js')],
|
|
23
|
-
mode: 'development',
|
|
24
|
-
output: {
|
|
25
|
-
filename: 'bundle.js',
|
|
26
|
-
path: path.resolve(__dirname, 'dist')
|
|
27
|
-
},
|
|
28
|
-
resolve: {
|
|
29
|
-
alias: {
|
|
30
|
-
main: path.resolve(node_modules_path),
|
|
31
|
-
components: path.resolve(enrichmentIntegrationBasePath, 'enrichmentComponent')
|
|
32
|
-
}
|
|
33
|
-
},
|
|
34
|
-
module: {
|
|
35
|
-
rules: [
|
|
36
|
-
{
|
|
37
|
-
test: /\.?js$/,
|
|
38
|
-
exclude: /node_modules/,
|
|
39
|
-
include: [path.join(rootPath, '/src'), path.join(enrichmentIntegrationBasePath, 'enrichmentComponent')],
|
|
40
|
-
use: {
|
|
41
|
-
loader: path.join(node_modules_path, 'babel-loader'),
|
|
42
|
-
options: {
|
|
43
|
-
presets: [
|
|
44
|
-
path.join(node_modules_path, '@babel/preset-env'),
|
|
45
|
-
path.join(node_modules_path, '@babel/preset-react')
|
|
46
|
-
]
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
},
|
|
50
|
-
{
|
|
51
|
-
test: /\.styl$/,
|
|
52
|
-
include: [path.join(rootPath, '/src'), path.join(enrichmentIntegrationBasePath, 'enrichmentComponent')],
|
|
53
|
-
exclude: /node_modules/,
|
|
54
|
-
parser: {
|
|
55
|
-
node: true
|
|
56
|
-
},
|
|
57
|
-
use: [
|
|
58
|
-
path.join(node_modules_path, 'style-loader'),
|
|
59
|
-
{
|
|
60
|
-
loader: path.join(node_modules_path, 'css-loader'),
|
|
61
|
-
options: {
|
|
62
|
-
importLoaders: 1,
|
|
63
|
-
modules: {
|
|
64
|
-
localIdentName: '[path]__[local]'
|
|
65
|
-
},
|
|
66
|
-
sourceMap: true
|
|
67
|
-
}
|
|
68
|
-
},
|
|
69
|
-
{
|
|
70
|
-
loader: path.join(node_modules_path, 'stylus-loader'),
|
|
71
|
-
options: {
|
|
72
|
-
stylusOptions: {
|
|
73
|
-
outputStyle: 'expanded',
|
|
74
|
-
include: [path.join(rootPath, '/src'), path.join(enrichmentIntegrationBasePath, 'enrichmentComponent')]
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
]
|
|
79
|
-
}
|
|
80
|
-
]
|
|
81
|
-
},
|
|
82
|
-
plugins: [
|
|
83
|
-
new HtmlWebpackPlugin({
|
|
84
|
-
template: path.join(rootPath, 'index.html')
|
|
85
|
-
})
|
|
86
|
-
]
|
|
87
|
-
};
|
|
88
|
-
|
|
89
|
-
export default async function ComponentServer() {
|
|
90
|
-
const compiler = webpack(compilerConfig);
|
|
91
|
-
const s = new WebpackDevServer(serverConfig, compiler);
|
|
92
|
-
s.start();
|
|
93
|
-
}
|