diff options
Diffstat (limited to 'sdnr/wt/odlux/apps/helpApp')
22 files changed, 0 insertions, 1470 deletions
diff --git a/sdnr/wt/odlux/apps/helpApp/.babelrc b/sdnr/wt/odlux/apps/helpApp/.babelrc deleted file mode 100644 index 3d8cd1260..000000000 --- a/sdnr/wt/odlux/apps/helpApp/.babelrc +++ /dev/null @@ -1,17 +0,0 @@ -{ - "presets": [ - ["@babel/preset-react"], - ["@babel/preset-env", { - "targets": { - "chrome": "66" - }, - "spec": true, - "loose": false, - "modules": false, - "debug": false, - "useBuiltIns": "usage", - "forceAllTransforms": true - }] - ], - "plugins": [] -} diff --git a/sdnr/wt/odlux/apps/helpApp/package.json b/sdnr/wt/odlux/apps/helpApp/package.json deleted file mode 100644 index 5bcfdce7b..000000000 --- a/sdnr/wt/odlux/apps/helpApp/package.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "name": "@odlux/help-app", - "version": "0.1.0", - "description": "A react based modular UI providing the help functionaliy.", - "main": "index.js", - "scripts": { - "start": "webpack-dev-server --env debug", - "build": "webpack --env release --config webpack.config.js", - "build:dev": "webpack --env debug --config webpack.config.js" - }, - "repository": { - "type": "git", - "url": "https://git.mfico.de/highstreet-technologies/odlux.git" - }, - "keywords": [ - "reactjs", - "redux", - "ui", - "framework" - ], - "author": "Matthias Fischer", - "license": "Apache-2.0", - "dependencies": { - "@emotion/react": "^11.7.0", - "@emotion/styled": "^11.6.0", - "@mui/icons-material": "^5.2.0", - "@mui/material": "^5.2.2", - "@mui/styles": "^5.2.2", - "@odlux/framework": "*", - "@types/highlight.js": "9.12.3", - "@types/marked": "0.6.0", - "github-markdown-css": "2.10.0", - "highlight.js": "9.13.1", - "marked": "0.6.0" - }, - "peerDependencies": { - "@types/classnames": "2.2.6", - "@types/flux": "3.1.8", - "@types/jquery": "3.3.10", - "@types/react": "17.0.37", - "@types/react-dom": "17.0.11", - "@types/react-router-dom": "5.1.7", - "jquery": "3.3.1", - "react": "17.0.2", - "react-dom": "17.0.2", - "react-router-dom": "5.2.0" - } -} diff --git a/sdnr/wt/odlux/apps/helpApp/pom.xml b/sdnr/wt/odlux/apps/helpApp/pom.xml deleted file mode 100644 index f40a6e08f..000000000 --- a/sdnr/wt/odlux/apps/helpApp/pom.xml +++ /dev/null @@ -1,159 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - ~ ============LICENSE_START======================================================= - ~ ONAP : ccsdk features - ~ ================================================================================ - ~ Copyright (C) 2020 AT&T Intellectual Property. All rights reserved. - ~ ================================================================================ - ~ Licensed under the Apache License, Version 2.0 (the "License"); - ~ you may not use this file except in compliance with the License. - ~ You may obtain a copy of the License at - ~ - ~ http://www.apache.org/licenses/LICENSE-2.0 - ~ - ~ Unless required by applicable law or agreed to in writing, software - ~ distributed under the License is distributed on an "AS IS" BASIS, - ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - ~ See the License for the specific language governing permissions and - ~ limitations under the License. - ~ ============LICENSE_END======================================================= - ~ - --> -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <parent> - <groupId>org.onap.ccsdk.parent</groupId> - <artifactId>binding-parent</artifactId> - <version>2.6.1</version> - <relativePath/> - </parent> - - <groupId>org.onap.ccsdk.features.sdnr.wt</groupId> - <artifactId>sdnr-wt-odlux-app-helpApp</artifactId> - <version>1.7.0-SNAPSHOT</version> - <packaging>bundle</packaging> - - <name>ccsdk-features :: ${project.artifactId}</name> - <licenses> - <license> - <name>Apache License, Version 2.0</name> - <url>http://www.apache.org/licenses/LICENSE-2.0</url> - </license> - </licenses> - - <properties> - <maven.javadoc.skip>true</maven.javadoc.skip> - </properties> - - <dependencies> - <dependency> - <groupId>${project.groupId}</groupId> - <artifactId>sdnr-wt-odlux-core-model</artifactId> - <version>${project.version}</version> - </dependency> - <dependency> - <groupId>${project.groupId}</groupId> - <artifactId>sdnr-wt-odlux-core-provider</artifactId> - <version>${project.version}</version> - <scope>test</scope> - </dependency> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <scope>test</scope> - </dependency> - </dependencies> - - <build> - <sourceDirectory>src2/main/java</sourceDirectory> - <resources> - <resource> - <directory>dist</directory> - <targetPath>odlux</targetPath> - </resource> - <resource> - <directory>src2/main/resources</directory> - </resource> - <resource> - <directory>src2/test/resources</directory> - </resource> - </resources> - <plugins> - <plugin> - <artifactId>maven-clean-plugin</artifactId> - <configuration> - <filesets> - <fileset> - <directory>dist</directory> - <followSymlinks>false</followSymlinks> - </fileset> - <fileset> - <directory>node</directory> - <followSymlinks>false</followSymlinks> - </fileset> - <fileset> - <directory>node_modules</directory> - <followSymlinks>false</followSymlinks> - </fileset> - <fileset> - <directory>../node_modules</directory> - <followSymlinks>false</followSymlinks> - </fileset> - <!-- eclipse bug build bin folder in basedir --> - <fileset> - <directory>bin</directory> - <followSymlinks>false</followSymlinks> - </fileset> - </filesets> - </configuration> - </plugin> - <plugin> - <groupId>org.codehaus.mojo</groupId> - <artifactId>build-helper-maven-plugin</artifactId> - <executions> - <execution> - <id>add-test-source</id> - <phase>generate-test-sources</phase> - <goals> - <goal>add-test-source</goal> - </goals> - <configuration> - <sources> - <source>src2/test/java</source> - </sources> - </configuration> - </execution> - </executions> - </plugin> - <plugin> - <groupId>de.jacks-it-lab</groupId> - <artifactId>frontend-maven-plugin</artifactId> - <version>1.7.2</version> - <executions> - <execution> - <id>install node and yarn</id> - <goals> - <goal>install-node-and-yarn</goal> - </goals> - <!-- optional: default phase is "generate-resources" --> - <phase>initialize</phase> - <configuration> - <nodeVersion>v16.17.0</nodeVersion> - <yarnVersion>v1.22.19</yarnVersion> - </configuration> - </execution> - <execution> - <id>yarn build</id> - <goals> - <goal>yarn</goal> - </goals> - <configuration> - <arguments>run build</arguments> - </configuration> - </execution> - </executions> - </plugin> - </plugins> - </build> -</project> diff --git a/sdnr/wt/odlux/apps/helpApp/src/actions/helpActions.ts b/sdnr/wt/odlux/apps/helpApp/src/actions/helpActions.ts deleted file mode 100644 index 3cebfd61d..000000000 --- a/sdnr/wt/odlux/apps/helpApp/src/actions/helpActions.ts +++ /dev/null @@ -1,78 +0,0 @@ -/** - * ============LICENSE_START======================================================================== - * ONAP : ccsdk feature sdnr wt odlux - * ================================================================================================= - * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved. - * ================================================================================================= - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License - * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express - * or implied. See the License for the specific language governing permissions and limitations under - * the License. - * ============LICENSE_END========================================================================== - */ -import { Action } from '../../../../framework/src/flux/action'; -import { Dispatch } from '../../../../framework/src/flux/store'; - -import { TocTreeNode } from '../models/tocNode'; -import helpService from '../services/helpService'; - -export class LoadTocAction extends Action { - constructor() { - super(); - - } -} - -export class TocLoadedAction extends Action { - constructor(public toc?: TocTreeNode[], error?: string) { - super(); - - } -} - -export const requestTocAsyncAction = async (dispatch: Dispatch) => { - dispatch(new LoadTocAction); - try { - const toc = await helpService.getTableOfContents(); - if (toc) { - dispatch(new TocLoadedAction(toc)); - } else { - dispatch(new TocLoadedAction(undefined, "Could not load TOC.")); - } - } catch (err) { - dispatch(new TocLoadedAction(undefined, err)); - } -} - -export class LoadDocumentAction extends Action { - constructor() { - super(); - - } -} - -export class DocumentLoadedAction extends Action { - constructor(public document?: string, public documentPath?: string, error?: string) { - super(); - - } -} - -export const requestDocumentAsyncActionCreator = (path: string) => async (dispatch: Dispatch) => { - dispatch(new LoadDocumentAction); - try { - const doc = await helpService.getDocument(path); - if (doc) { - dispatch(new DocumentLoadedAction(doc, path)); - } else { - dispatch(new DocumentLoadedAction(undefined, undefined, "Could not load document.")); - } - } catch (err) { - dispatch(new DocumentLoadedAction(undefined, undefined, err)); - } -}
\ No newline at end of file diff --git a/sdnr/wt/odlux/apps/helpApp/src/assets/icons/helpAppIcon.svg b/sdnr/wt/odlux/apps/helpApp/src/assets/icons/helpAppIcon.svg deleted file mode 100644 index 298eaa162..000000000 --- a/sdnr/wt/odlux/apps/helpApp/src/assets/icons/helpAppIcon.svg +++ /dev/null @@ -1,27 +0,0 @@ -<!-- highstreet technologies GmbH colour scheme - Grey #565656 - LBlue #36A9E1 - DBlue #246DA2 - Green #003F2C / #006C4B - Yellw #C8D400 - Red #D81036 ---> - -<svg version="1.0" xmlns="http://www.w3.org/2000/svg" viewBox="310 250 400 400"> - -<g transform="translate(0,1024) scale(0.1,-0.1)"> - -<path fill="#565656" d="M4926 7634 c-126 -17 -209 -38 -318 -79 -79 -31 -195 -89 -208 -104 --10 -12 -69 -51 -77 -51 -4 0 -42 -28 -83 -63 -227 -190 -375 -475 -375 -722 -0 -81 3 -95 30 -143 111 -201 365 -252 514 -103 46 46 88 124 121 226 28 87 -109 255 153 315 67 95 172 168 275 192 86 20 268 21 346 2 113 -28 152 -50 -240 -137 64 -63 88 -95 104 -137 49 -125 52 -225 12 -332 -38 -102 -132 -209 --360 -409 -153 -134 -329 -309 -375 -374 -97 -136 -148 -274 -166 -448 -19 --192 12 -305 104 -379 64 -50 141 -72 228 -65 82 7 125 24 177 71 49 45 73 -100 105 241 59 258 63 263 528 687 218 198 295 284 374 419 134 230 138 543 9 -803 -101 202 -252 349 -474 461 -246 124 -573 172 -884 129z"/> - -<path fill="#36A9E1" d="M 5098 4587 C 4582 4587 4582 3845 5098 3845 C 5614 3847 5614 4585 5098 4587 Z"/> - -</g> -</svg> diff --git a/sdnr/wt/odlux/apps/helpApp/src/components/helpStatus.tsx b/sdnr/wt/odlux/apps/helpApp/src/components/helpStatus.tsx deleted file mode 100644 index 985b404a7..000000000 --- a/sdnr/wt/odlux/apps/helpApp/src/components/helpStatus.tsx +++ /dev/null @@ -1,83 +0,0 @@ -/** - * ============LICENSE_START======================================================================== - * ONAP : ccsdk feature sdnr wt odlux - * ================================================================================================= - * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved. - * ================================================================================================= - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License - * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express - * or implied. See the License for the specific language governing permissions and limitations under - * the License. - * ============LICENSE_END========================================================================== - */ -import React from 'react'; -import { withRouter, RouteComponentProps } from 'react-router'; - -import { Theme } from '@mui/material/styles'; -import { WithStyles } from '@mui/styles'; -import withStyles from '@mui/styles/withStyles'; -import createStyles from '@mui/styles/createStyles'; -import { faExclamationTriangle } from '@fortawesome/free-solid-svg-icons'; // select app icon - -import Typography from '@mui/material/Typography'; -import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; -import { faQuestionCircle } from '@fortawesome/free-solid-svg-icons'; - -import { connect, Connect } from '../../../../framework/src/flux/connect'; -import { IApplicationStoreState } from '../../../../framework/src/store/applicationStore'; - -const styles = (theme: Theme) => createStyles({ - icon: { - marginLeft: 8, - marginRight: 8 - }, - disabled: { - color: theme.palette.grey[400] - }, - link: { - cursor: "pointer", - '&:hover': { - textDecoration: "underline" - } - } -}); - -const mapProps = (state: IApplicationStoreState) => ({ - appId: state.framework.applicationState.appId, - toc: state.help.toc -}); - - -type HelpStatusComponentProps = & RouteComponentProps & WithStyles<typeof styles> & Connect<typeof mapProps>; - -class HelpStatusComponent extends React.Component<HelpStatusComponentProps> { - render() { - const { classes, history, toc, appId } = this.props; - const rootNode = toc && toc.find(t => t.id === "sdnr"); - const helpNode = appId - ? rootNode && rootNode.nodes && rootNode.nodes.find(n => n.id === appId || n.id === appId + "App") - : rootNode; - return helpNode - ? ( - <Typography variant="body1" color="inherit" className={classes.link} onClick={(event) => { event.stopPropagation(); history.push(`/help/${helpNode.uri}`) }} > - <FontAwesomeIcon className={classes.icon} icon={faQuestionCircle} /> - Help - </Typography> - ) - : ( - <Typography variant="body1" className={classes.disabled}> - <FontAwesomeIcon className={classes.icon} icon={faQuestionCircle} /> - Help - </Typography> - ); - }; - -} - -export const HelpStatus = withRouter(withStyles(styles)(connect(mapProps)(HelpStatusComponent) as any) as any); -export default HelpStatus;
\ No newline at end of file diff --git a/sdnr/wt/odlux/apps/helpApp/src/components/markdown.tsx b/sdnr/wt/odlux/apps/helpApp/src/components/markdown.tsx deleted file mode 100644 index a7137836e..000000000 --- a/sdnr/wt/odlux/apps/helpApp/src/components/markdown.tsx +++ /dev/null @@ -1,77 +0,0 @@ -/** - * ============LICENSE_START======================================================================== - * ONAP : ccsdk feature sdnr wt odlux - * ================================================================================================= - * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved. - * ================================================================================================= - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License - * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express - * or implied. See the License for the specific language governing permissions and limitations under - * the License. - * ============LICENSE_END========================================================================== - */ -import * as React from 'react'; - -import * as marked from 'marked'; -import * as hljs from 'highlight.js'; - -type MarkdownComponentProps = { - text: string; - className?: string; - markedOptions?: marked.MarkedOptions; - style?: React.CSSProperties -} - -const defaultRenderer = new marked.Renderer(); -defaultRenderer.link = (href, title, text) => ( - `<a target="_blank" rel="noopener noreferrer" href="${ href }" title="${ title }">${ text }</a>` -); - - -class MarkdownComponent extends React.Component<MarkdownComponentProps> { - constructor(props: MarkdownComponentProps) { - super(props); - - const markedOptions: marked.MarkedOptions = { - gfm: true, - tables: true, - breaks: false, - pedantic: false, - sanitize: true, - smartLists: true, - smartypants: false, - langPrefix: 'hljs ', - ...(this.props.markedOptions || {}), - highlight: (code, lang) => { - if (!!(lang && hljs.getLanguage(lang))) { - return hljs.highlight(lang, code).value; - } - return code; - } - }; - - marked.setOptions(markedOptions); - } - render() { - const { text, className, style } = this.props; - - - const html = (marked(text || '', { renderer: this.props.markedOptions && this.props.markedOptions.renderer || defaultRenderer })); - - return ( - <div - dangerouslySetInnerHTML={ { __html: html } } - className={ className } - style={ style } - /> - ); - } -} - -export const Markdown = MarkdownComponent; - diff --git a/sdnr/wt/odlux/apps/helpApp/src/components/tocEntry.tsx b/sdnr/wt/odlux/apps/helpApp/src/components/tocEntry.tsx deleted file mode 100644 index 295b3caf9..000000000 --- a/sdnr/wt/odlux/apps/helpApp/src/components/tocEntry.tsx +++ /dev/null @@ -1,85 +0,0 @@ -/** - * ============LICENSE_START======================================================================== - * ONAP : ccsdk feature sdnr wt odlux - * ================================================================================================= - * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved. - * ================================================================================================= - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License - * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express - * or implied. See the License for the specific language governing permissions and limitations under - * the License. - * ============LICENSE_END========================================================================== - */ - -import * as React from "react" -import { TocTreeNode } from "../models/tocNode" -import { Typography, Link, Theme } from "@mui/material"; - -import makeStyles from '@mui/styles/makeStyles'; -import createStyles from '@mui/styles/createStyles'; - -const useStyles = makeStyles((theme: Theme) => - createStyles({ - link: { - color: "blue", - }, - sublink: { - margin: theme.spacing(1), - color: "blue", - }, - container: { - display: "flex", - flexDirection: "row", - flexWrap: "wrap", - } - }), -); - -type tocEntryProps = { - label: string, - overviewUri: string, - nodes?: TocTreeNode[], - loadDocument(uri: string): any -} - -const TocEntry: React.FunctionComponent<tocEntryProps> = (props) => { - const classes = useStyles(); - const areNodesEmpty = !props.nodes || props.nodes.length === 0 - - const navigate = (event: React.SyntheticEvent, uri: string) => { - event.preventDefault(); - event.stopPropagation(); - props.loadDocument(uri); - } - - return (<div> - { - areNodesEmpty ? <Typography variant="h6"> - <Link underline="hover" onClick={(event: any) => navigate(event, props.overviewUri)} className={classes.link}> {props.label}</Link> - </Typography> : - <> - <Typography variant="h6"> - {props.label} - </Typography> - <div className={classes.container}> - <Typography variant="body1"> - <Link underline="hover" onClick={(event: any) => navigate(event, props.overviewUri)} className={classes.sublink}>Overview</Link> - </Typography> - {props.nodes !== undefined && props.nodes.map((item, index) => - <Typography variant="body1" key={index + 'x' + item.id}> - <Link underline="hover" onClick={(event: any) => navigate(event, item.uri)} className={classes.sublink}>{item.label}</Link> - </Typography> - )} - </div> - </> - } - </div >) -} - - -export default TocEntry;
\ No newline at end of file diff --git a/sdnr/wt/odlux/apps/helpApp/src/handlers/helpAppRootHandler.ts b/sdnr/wt/odlux/apps/helpApp/src/handlers/helpAppRootHandler.ts deleted file mode 100644 index 29e07959a..000000000 --- a/sdnr/wt/odlux/apps/helpApp/src/handlers/helpAppRootHandler.ts +++ /dev/null @@ -1,76 +0,0 @@ -/** - * ============LICENSE_START======================================================================== - * ONAP : ccsdk feature sdnr wt odlux - * ================================================================================================= - * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved. - * ================================================================================================= - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License - * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express - * or implied. See the License for the specific language governing permissions and limitations under - * the License. - * ============LICENSE_END========================================================================== - */ -// main state handler - -import { IApplicationStoreState } from '../../../../framework/src/store/applicationStore'; -import { IActionHandler } from '../../../../framework/src/flux/action'; - -import { LoadTocAction, TocLoadedAction, LoadDocumentAction, DocumentLoadedAction } from '../actions/helpActions'; -import { TocTreeNode } from '../models/tocNode'; - -export interface IHelpAppStoreState { - busy: boolean; - toc: TocTreeNode[] | undefined; - content: string | undefined; - currentPath: string | undefined; -} - -declare module '../../../../framework/src/store/applicationStore' { - interface IApplicationStoreState { - help: IHelpAppStoreState - } -} - -const helpAppStoreStatcurrentPatheInit: IHelpAppStoreState = { - busy: false, - toc: undefined, - content: undefined, - currentPath: undefined -}; - -export const helpAppRootHandler: IActionHandler<IHelpAppStoreState> = (state = helpAppStoreStatcurrentPatheInit, action) => { - if (action instanceof LoadTocAction) { - state = { - ...state, - busy: true - }; - } else if (action instanceof TocLoadedAction) { - state = { - ...state, - busy: false, - toc: action.toc - }; - } else if (action instanceof LoadDocumentAction) { - state = { - ...state, - busy: true - }; - } else if (action instanceof DocumentLoadedAction) { - state = { - ...state, - busy: false, - content: action.document, - currentPath: action.documentPath - }; - } - - return state; -} - - -export default helpAppRootHandler; diff --git a/sdnr/wt/odlux/apps/helpApp/src/index.html b/sdnr/wt/odlux/apps/helpApp/src/index.html deleted file mode 100644 index 2344708c8..000000000 --- a/sdnr/wt/odlux/apps/helpApp/src/index.html +++ /dev/null @@ -1,29 +0,0 @@ -<!DOCTYPE html> -<html lang="en"> - -<head> - <meta charset="UTF-8"> - <meta name="viewport" content="width=device-width, initial-scale=1.0"> - <meta http-equiv="X-UA-Compatible" content="ie=edge"> - <!-- <link rel="stylesheet" href="./vendor.css"> --> - <title>Minimal App</title> -</head> - -<body> - <div id="app"></div> - <script type="text/javascript" src="./require.js"></script> - <script type="text/javascript" src="./config.js"></script> - <script> - // run the application - require(["app", "helpApp"], function (app, helpApp) { - //connectApp.register(); - //faultApp.register(); - //configurationApp.register(); - //maintenanceApp.register(); - helpApp.register(); - app("./app.tsx").runApplication(); - }); - </script> -</body> - -</html>
\ No newline at end of file diff --git a/sdnr/wt/odlux/apps/helpApp/src/models/tocNode.ts b/sdnr/wt/odlux/apps/helpApp/src/models/tocNode.ts deleted file mode 100644 index dbefeec77..000000000 --- a/sdnr/wt/odlux/apps/helpApp/src/models/tocNode.ts +++ /dev/null @@ -1,42 +0,0 @@ -/** - * ============LICENSE_START======================================================================== - * ONAP : ccsdk feature sdnr wt odlux - * ================================================================================================= - * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved. - * ================================================================================================= - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License - * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express - * or implied. See the License for the specific language governing permissions and limitations under - * the License. - * ============LICENSE_END========================================================================== - */ -export type VersionInfo = { - label: string, - path: string, - date: string -} - -export type TocNode = { - label: string; - versions: { - [versionKey: string]: VersionInfo, - current: VersionInfo - }; - nodes?: TocNodeCollection; -} - -export type TocNodeCollection = { [tocNodeKey: string]: TocNode }; - - -export type TocTreeNode = { - id: string; - label: string; - uri: string; - nodes?: TocTreeNode[]; - disabled?: boolean; -} diff --git a/sdnr/wt/odlux/apps/helpApp/src/plugin.tsx b/sdnr/wt/odlux/apps/helpApp/src/plugin.tsx deleted file mode 100644 index 5d860e530..000000000 --- a/sdnr/wt/odlux/apps/helpApp/src/plugin.tsx +++ /dev/null @@ -1,91 +0,0 @@ -/** - * ============LICENSE_START======================================================================== - * ONAP : ccsdk feature sdnr wt odlux - * ================================================================================================= - * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved. - * ================================================================================================= - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License - * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express - * or implied. See the License for the specific language governing permissions and limitations under - * the License. - * ============LICENSE_END========================================================================== - */ -// app configuration and main entry point for the app - -import React from "react"; -import { withRouter, RouteComponentProps, Route, Switch, Redirect } from 'react-router-dom'; - -import applicationManager from '../../../framework/src/services/applicationManager'; -import { IApplicationStoreState } from "../../../framework/src/store/applicationStore"; -import { connect, Connect, IDispatcher } from '../../../framework/src/flux/connect'; - -import { requestTocAsyncAction, requestDocumentAsyncActionCreator } from "./actions/helpActions"; -import { helpAppRootHandler } from './handlers/helpAppRootHandler'; - -import { HelpApplication } from './views/helpApplication'; -import { HelpStatus } from "./components/helpStatus"; - -import '!style-loader!css-loader!highlight.js/styles/default.css'; -import HelpTocApp from "./views/helpTocApp"; - -const appIcon = require('./assets/icons/helpAppIcon.svg'); // select app icon - -const mapProps = (state: IApplicationStoreState) => ({ - -}); - -const mapDispatch = (dispatcher: IDispatcher) => ({ - requestDocument: (path: string) => { - dispatcher.dispatch(requestDocumentAsyncActionCreator(path)); - } -}); - -let currentHelpPath: string | undefined = undefined; - -const HelpApplicationRouteAdapter = connect(mapProps, mapDispatch)((props: RouteComponentProps<{ '0'?: string }> & Connect<typeof mapProps, typeof mapDispatch>) => { - - if (currentHelpPath !== props.match.params["0"]) { - // route parameter has changed - currentHelpPath = props.match.params["0"] || undefined; - // Hint: This timeout is need, since it is not recommended to change the state while rendering is in progress ! - window.setTimeout(() => { - if (currentHelpPath) { - props.requestDocument(currentHelpPath); - } - }); - } - - return ( - <HelpApplication /> - ) -}); - -const App = withRouter((props: RouteComponentProps) => ( - <Switch> - <Route exact path={`${props.match.path}/`} component={HelpTocApp} /> - <Route path={`${props.match.path}/*`} component={HelpApplicationRouteAdapter} /> - <Route path={`${props.match.path}`} component={HelpTocApp} /> - </Switch> -)); - -export async function register() { - const applicationApi = applicationManager.registerApplication({ - name: "help", - icon: appIcon, - rootComponent: App, - rootActionHandler: helpAppRootHandler, - statusBarElement: HelpStatus, - menuEntry: "Help", - //subMenuEntry: SubMenuEntry - }); - - // start the initial toc request after the application store is initialized - const store = await applicationApi.applicationStoreInitialized; - store.dispatch(requestTocAsyncAction); - -}
\ No newline at end of file diff --git a/sdnr/wt/odlux/apps/helpApp/src/services/helpService.ts b/sdnr/wt/odlux/apps/helpApp/src/services/helpService.ts deleted file mode 100644 index 728f243a0..000000000 --- a/sdnr/wt/odlux/apps/helpApp/src/services/helpService.ts +++ /dev/null @@ -1,65 +0,0 @@ -/** - * ============LICENSE_START======================================================================== - * ONAP : ccsdk feature sdnr wt odlux - * ================================================================================================= - * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved. - * ================================================================================================= - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License - * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express - * or implied. See the License for the specific language governing permissions and limitations under - * the License. - * ============LICENSE_END========================================================================== - */ -import { requestRest } from '../../../../framework/src/services/restService'; -import { TocTreeNode, TocNodeCollection } from '../models/tocNode'; - -class HelpService { - - private tocNodeCollection: TocTreeNode[] | null = null; - private documents: { [path: string]: string | null } = {}; - - public async getDocument(path: string): Promise<string | null> { - // check if the result is allready in the cache - if (this.documents[path]) return Promise.resolve(this.documents[path]); - - // request the document - const result = await requestRest<string>(`/help/${path}`.replace(/\/{2,}/i, '/')); - if (result) { - this.documents[path] = result; - } - return this.documents[path] || null; - } - - public async getTableOfContents(): Promise<TocTreeNode[] | null> { - // check if the result is allready in the cache - if (this.tocNodeCollection) return Promise.resolve(this.tocNodeCollection); - - // request the table of contents - const result = await requestRest<TocNodeCollection>('/help/?meta', undefined, false); - if (result !== null) { - const mapNodesCollection = (col: TocNodeCollection): TocTreeNode[] => { - return Object.keys(col).reduce<TocTreeNode[]>((acc, key) => { - const current = col[key]; - acc.push({ - id: key, - label: current.label, - uri: current.versions.current.path, - nodes: current.nodes && mapNodesCollection(current.nodes) || undefined - }); - return acc; - }, []); - } - - this.tocNodeCollection = result && mapNodesCollection(result) || null; - } - return this.tocNodeCollection || null; - } -} - -export const helpService = new HelpService(); -export default helpService;
\ No newline at end of file diff --git a/sdnr/wt/odlux/apps/helpApp/src/utilities/path.ts b/sdnr/wt/odlux/apps/helpApp/src/utilities/path.ts deleted file mode 100644 index 412bdfb1e..000000000 --- a/sdnr/wt/odlux/apps/helpApp/src/utilities/path.ts +++ /dev/null @@ -1,79 +0,0 @@ -/** - * ============LICENSE_START======================================================================== - * ONAP : ccsdk feature sdnr wt odlux - * ================================================================================================= - * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved. - * ================================================================================================= - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License - * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express - * or implied. See the License for the specific language governing permissions and limitations under - * the License. - * ============LICENSE_END========================================================================== - */ -export const resolvePath = (...paths: string[]): string => { - function resolve(pathA: string, pathB: string) { - // ‘a’ => ['a'] - // 'a/b' => ['a', 'b'] - // '/a/b' => ['', 'a', 'b'] - // '/a/b/' => ['', 'a', 'b', ''] - const pathBParts = pathB.split('/'); - if (pathBParts[0] === '') { - return pathBParts.join('/'); - } - const pathAParts = pathA.split('/'); - const aLastIndex = pathAParts.length - 1; - if (pathAParts[aLastIndex] !== '') { - pathAParts[aLastIndex] = ''; - } - - let part: string; - let i = 0; - while (typeof (part = pathBParts[i]) === 'string') { - switch (part) { - case '..': - pathAParts.pop(); - pathAParts.pop(); - pathAParts.push(''); - break; - case '.': - pathAParts.pop(); - pathAParts.push(''); - break; - default: - pathAParts.pop(); - pathAParts.push(part); - pathAParts.push(''); - break; - } - i++; - } - if (pathBParts[pathBParts.length - 1] !== '') pathAParts.pop(); - return pathAParts.join('/'); - } - - let i = 0; - let path: string; - let r = location.pathname; - - const urlRegex = /^https?\:\/\/([^\/?#]+)(?:[\/?#]|$)/i; - const multiSlashReg = /\/\/+/g; - - while (typeof (path = paths[i]) === 'string') { - debugger; - const matches = path && path.match(urlRegex); - if (matches || !i) { - r = path; - } else { - path = path.replace(multiSlashReg, '/'); - r = resolve(r, path); - } - i++; - } - - return r; -};
\ No newline at end of file diff --git a/sdnr/wt/odlux/apps/helpApp/src/views/helpApplication.tsx b/sdnr/wt/odlux/apps/helpApp/src/views/helpApplication.tsx deleted file mode 100644 index 5940517b4..000000000 --- a/sdnr/wt/odlux/apps/helpApp/src/views/helpApplication.tsx +++ /dev/null @@ -1,84 +0,0 @@ -/** - * ============LICENSE_START======================================================================== - * ONAP : ccsdk feature sdnr wt odlux - * ================================================================================================= - * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved. - * ================================================================================================= - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License - * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express - * or implied. See the License for the specific language governing permissions and limitations under - * the License. - * ============LICENSE_END========================================================================== - */ -import React from 'react'; -import * as marked from 'marked'; - -import { resolvePath } from '../utilities/path'; - -import { IApplicationStoreState } from '../../../../framework/src/store/applicationStore'; -import { connect, Connect } from '../../../../framework/src/flux/connect'; - -import { Markdown } from "../components/markdown"; - -import '!style-loader!css-loader!github-markdown-css/github-markdown.css' - -const mapProps = (state: IApplicationStoreState) => ({ - content: state.help.content, - currentPath: state.help.currentPath -}); - -const containerStyle = { - overflow: "auto", - height: "100%", - width: "100%" -}; - -const styles = { - maxWidth: "960px", - margin: "1.5em auto", - -}; - -type HelpApplicationComponentProps = Connect<typeof mapProps>; - -class HelpApplicationComponent extends React.Component<HelpApplicationComponentProps> { - - /** - * Initializes a new instance. - */ - constructor(props: HelpApplicationComponentProps) { - super(props); - - this.renderer = new marked.Renderer(); - - this.renderer.link = (href: string, title: string, text: string) => { - // check if href is rel or abs - const absUrlMatch = href.trim().match(/^https?:\/\//i); - return `<a href="${absUrlMatch ? href : resolvePath('#/help/', this.props.currentPath || '/', href)}" title="${title}" >${text}</a>` - }; - - this.renderer.image = (href: string, title: string) => { - return `<img src="${resolvePath('/help/', this.props.currentPath || '/', href)}" alt="${title}" />` - }; - - } - - render(): JSX.Element { - return this.props.content ? ( - <div style={containerStyle}> - <Markdown text={this.props.content} markedOptions={{ renderer: this.renderer }} className="markdown-body" - style={styles} /> - </div> - ) : (<h2>Loading ...</h2>) - } - - private renderer: marked.Renderer; -} - -export const HelpApplication = connect(mapProps)(HelpApplicationComponent); -export default HelpApplication;
\ No newline at end of file diff --git a/sdnr/wt/odlux/apps/helpApp/src/views/helpTocApp.tsx b/sdnr/wt/odlux/apps/helpApp/src/views/helpTocApp.tsx deleted file mode 100644 index 6a6a89123..000000000 --- a/sdnr/wt/odlux/apps/helpApp/src/views/helpTocApp.tsx +++ /dev/null @@ -1,55 +0,0 @@ -/** - * ============LICENSE_START======================================================================== - * ONAP : ccsdk feature sdnr wt odlux - * ================================================================================================= - * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved. - * ================================================================================================= - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License - * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express - * or implied. See the License for the specific language governing permissions and limitations under - * the License. - * ============LICENSE_END========================================================================== - */ - -import React from 'react' -import {connect, Connect, IDispatcher } from "../../../../framework/src/flux/connect"; - -import { NavigateToApplication } from "../../../../framework/src/actions/navigationActions"; -import { FunctionComponent } from "react"; -import { IApplicationStoreState } from "../../../../framework/src/store/applicationStore"; -import TocEntry from "../components/tocEntry"; -import { Typography } from "@mui/material"; - -const mapProps = (state: IApplicationStoreState) => ({ - helpToc: state.help.toc, -}) - -const mapDisp = (dispatcher: IDispatcher) => ({ - requestDocument: (uri: string) => dispatcher.dispatch(new NavigateToApplication("help", uri)) -}); - -const HelpTocComponent: FunctionComponent<Connect<typeof mapProps, typeof mapDisp>> = (props) => { - - return ( - <div> - <Typography aria-label="help" style={{ marginBottom: '30px' }} variant="h5"> - Help & FAQ - </Typography> - <Typography style={{ marginBottom: '30px' }} variant="body1"> - On our Help site, you can find general information about SDN-R, detailed information about our applications, frequently asked questions and a list of used abbreviations. - </Typography> - { - props.helpToc && props.helpToc.map((item, index) => <TocEntry key={index} overviewUri={item.uri} nodes={item.nodes} label={item.label} loadDocument={props.requestDocument} />) - } - </div> - ) -} - -export const HelpTocApp = connect(mapProps, mapDisp)(HelpTocComponent) - -export default HelpTocApp;
\ No newline at end of file diff --git a/sdnr/wt/odlux/apps/helpApp/src2/main/java/org/onap/ccsdk/features/sdnr/wt/odlux/bundles/MyOdluxBundle.java b/sdnr/wt/odlux/apps/helpApp/src2/main/java/org/onap/ccsdk/features/sdnr/wt/odlux/bundles/MyOdluxBundle.java deleted file mode 100644 index 43b072c4b..000000000 --- a/sdnr/wt/odlux/apps/helpApp/src2/main/java/org/onap/ccsdk/features/sdnr/wt/odlux/bundles/MyOdluxBundle.java +++ /dev/null @@ -1,68 +0,0 @@ -/* - * ============LICENSE_START======================================================================== - * ONAP : ccsdk feature sdnr wt - * ================================================================================================= - * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved. - * ================================================================================================= - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License - * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express - * or implied. See the License for the specific language governing permissions and limitations under - * the License. - * ============LICENSE_END========================================================================== - */ -package org.onap.ccsdk.features.sdnr.wt.odlux.bundles; - -import org.onap.ccsdk.features.sdnr.wt.odlux.model.bundles.OdluxBundle; -import org.onap.ccsdk.features.sdnr.wt.odlux.model.bundles.OdluxBundleLoader; - -public class MyOdluxBundle extends OdluxBundle { - - @Override - public void initialize() { - super.initialize(); - } - - @Override - public void clean() { - super.clean(); - } - - @Override - public String getResourceFileContent(String filename) { - return super.getResourceFileContent(filename); - } - - @Override - public boolean hasResource(String filename) { - return super.hasResource(filename); - } - - @Override - public void setBundleName(String bundleName) { - super.setBundleName(bundleName); - } - - @Override - public void setLoader(OdluxBundleLoader loader) { - super.setLoader(loader); - } - - @Override - public String getBundleName() { - return super.getBundleName(); - } - - @Override - public OdluxBundleLoader getLoader() { - return super.getLoader(); - } - - public MyOdluxBundle() { - super(); - } -} diff --git a/sdnr/wt/odlux/apps/helpApp/src2/main/resources/OSGI-INF/blueprint/blueprint.xml b/sdnr/wt/odlux/apps/helpApp/src2/main/resources/OSGI-INF/blueprint/blueprint.xml deleted file mode 100644 index aaf395c79..000000000 --- a/sdnr/wt/odlux/apps/helpApp/src2/main/resources/OSGI-INF/blueprint/blueprint.xml +++ /dev/null @@ -1,30 +0,0 @@ -<!-- - ~ ============LICENSE_START======================================================= - ~ ONAP : ccsdk features - ~ ================================================================================ - ~ Copyright (C) 2020 AT&T Intellectual Property. All rights reserved. - ~ ================================================================================ - ~ Licensed under the Apache License, Version 2.0 (the "License"); - ~ you may not use this file except in compliance with the License. - ~ You may obtain a copy of the License at - ~ - ~ http://www.apache.org/licenses/LICENSE-2.0 - ~ - ~ Unless required by applicable law or agreed to in writing, software - ~ distributed under the License is distributed on an "AS IS" BASIS, - ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - ~ See the License for the specific language governing permissions and - ~ limitations under the License. - ~ ============LICENSE_END======================================================= - ~ - --> - -<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"> - <reference id="loadersvc" availability="mandatory" activation="eager" interface="org.onap.ccsdk.features.sdnr.wt.odlux.model.bundles.OdluxBundleLoader"/> - - <bean id="bundle" init-method="initialize" destroy-method="clean" class="org.onap.ccsdk.features.sdnr.wt.odlux.bundles.MyOdluxBundle"> - <property name="loader" ref="loadersvc"/> - <property name="bundleName" value="helpApp"/> - <property name="index" value="200"/> - </bean> -</blueprint>
\ No newline at end of file diff --git a/sdnr/wt/odlux/apps/helpApp/src2/test/java/org/onap/ccsdk/features/sdnr/wt/odlux/bundles/test/TestBundleRes.java b/sdnr/wt/odlux/apps/helpApp/src2/test/java/org/onap/ccsdk/features/sdnr/wt/odlux/bundles/test/TestBundleRes.java deleted file mode 100644 index c319bb189..000000000 --- a/sdnr/wt/odlux/apps/helpApp/src2/test/java/org/onap/ccsdk/features/sdnr/wt/odlux/bundles/test/TestBundleRes.java +++ /dev/null @@ -1,46 +0,0 @@ -/* - * ============LICENSE_START======================================================================== - * ONAP : ccsdk feature sdnr wt - * ================================================================================================= - * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved. - * ================================================================================================= - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License - * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express - * or implied. See the License for the specific language governing permissions and limitations under - * the License. - * ============LICENSE_END========================================================================== - */ -package org.onap.ccsdk.features.sdnr.wt.odlux.bundles.test; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; -import org.junit.Test; -import org.onap.ccsdk.features.sdnr.wt.odlux.OdluxBundleLoaderImpl; -import org.onap.ccsdk.features.sdnr.wt.odlux.bundles.MyOdluxBundle; - -public class TestBundleRes { - - @Test - public void test() { - OdluxBundleLoaderImpl loader = OdluxBundleLoaderImpl.getInstance(); - MyOdluxBundle b = new MyOdluxBundle(); - b.setLoader(loader); - b.setIndex(0); - b.setBundleName("abc"); - b.initialize(); - assertTrue(loader.getNumberOfBundles()==1); - assertNotNull(b.getLoader()); - assertEquals("abc",b.getBundleName()); - assertTrue(b.hasResource("test.js")); - assertNotNull(b.getResourceFileContent("test.js")); - b.clean(); - assertTrue(loader.getNumberOfBundles()==0); - } - -} diff --git a/sdnr/wt/odlux/apps/helpApp/src2/test/resources/test.js b/sdnr/wt/odlux/apps/helpApp/src2/test/resources/test.js deleted file mode 100644 index b47fdc39f..000000000 --- a/sdnr/wt/odlux/apps/helpApp/src2/test/resources/test.js +++ /dev/null @@ -1,5 +0,0 @@ -asdac sad -as -d -sad - sadfa
\ No newline at end of file diff --git a/sdnr/wt/odlux/apps/helpApp/tsconfig.json b/sdnr/wt/odlux/apps/helpApp/tsconfig.json deleted file mode 100644 index ca65092e0..000000000 --- a/sdnr/wt/odlux/apps/helpApp/tsconfig.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "compilerOptions": { - "baseUrl": "./src", - "outDir": "./dist", - "sourceMap": true, - "forceConsistentCasingInFileNames": true, - "allowSyntheticDefaultImports": true, - "allowUnreachableCode": false, - "allowUnusedLabels": false, - "noFallthroughCasesInSwitch": true, - "noImplicitAny": true, - "noImplicitReturns": true, - "noImplicitThis": true, - "strictNullChecks": true, - "pretty": true, - "newLine": "LF", - "module": "es2015", - "target": "es2016", - "moduleResolution": "node", - "experimentalDecorators": true, - "jsx": "preserve", - "lib": [ - "dom", - "es2015", - "es2016" - ], - "types": [ - "prop-types", - "react", - "react-dom" - ] - }, - "exclude": [ - "dist", - "node_modules" - ] -} diff --git a/sdnr/wt/odlux/apps/helpApp/webpack.config.js b/sdnr/wt/odlux/apps/helpApp/webpack.config.js deleted file mode 100644 index a48f7b976..000000000 --- a/sdnr/wt/odlux/apps/helpApp/webpack.config.js +++ /dev/null @@ -1,189 +0,0 @@ -/** - * Webpack 4 configuration file - * see https://webpack.js.org/configuration/ - * see https://webpack.js.org/configuration/dev-server/ - */ - -"use strict"; - -const path = require("path"); -const webpack = require("webpack"); -const autoprefixer = require('autoprefixer'); -const CopyWebpackPlugin = require("copy-webpack-plugin"); -const TerserPlugin = require('terser-webpack-plugin'); - -// const __dirname = (path => path.replace(/^([a-z]\:)/, c => c.toUpperCase()))(process.__dirname()); - -module.exports = (env) => { - const distPath = path.resolve(__dirname, env === "release" ? "." : "../..", "dist"); - const frameworkPath = path.resolve(__dirname, env === "release" ? "../../framework" : "../..", "dist"); - return [{ - name: "App", - - mode: "none", //disable default behavior - - target: "web", - - context: path.resolve(__dirname, "src"), - - entry: { - helpApp: ["./plugin.tsx"] - }, - - devtool: env === "release" ? false : "source-map", - - resolve: { - extensions: [".ts", ".tsx", ".js", ".jsx"] - }, - - output: { - path: distPath, - filename: "[name].js", - library: "[name]", - libraryTarget: "umd2", - chunkFilename: "[name].js" - }, - module: { - rules: [{ - test: /\.tsx?$/, - exclude: /node_modules/, - use: [{ - loader: "babel-loader" - }, { - loader: "ts-loader" - }] - }, { - test: /\.jsx?$/, - exclude: /node_modules/, - use: [{ - loader: "babel-loader" - }] - }, { - test: /\.css$/, - use: [{ - loader: 'style-loader' - }, { - loader: 'css-loader', - options: { - modules: true, - localIdentName: env !== "release" ? '[name]_[local]_[hash:base64:5]' : '[hash]' - } - }, { - loader: 'postcss-loader', - options: { - plugins: () => [autoprefixer] - } - }] - }, { - //don't minify images - test: /\.(png|gif|jpg|svg)$/, - use: [{ - loader: 'url-loader', - options: { - limit: 10, - name: './images/[name].[ext]' - } - }] - }] - }, - - optimization: { - noEmitOnErrors: true, - namedModules: env !== "release", - minimize: env === "release", - minimizer: env !== "release" ? [] : [new TerserPlugin({ - terserOptions: { - warnings: false, // false, true, "verbose" - compress: { - drop_console: true, - drop_debugger: true, - } - } - })], - }, - - plugins: [ - new webpack.DllReferencePlugin({ - context: path.resolve(__dirname, "../../framework/src"), - manifest: require(path.resolve(frameworkPath, "vendor-manifest.json")), - sourceType: "umd2" - }), - new webpack.DllReferencePlugin({ - context: path.resolve(__dirname, "../../framework/src"), - manifest: require(path.resolve(frameworkPath, "app-manifest.json")), - sourceType: "umd2" - }), - ...(env === "release" ? [ - new webpack.DefinePlugin({ - "process.env": { - NODE_ENV: "'production'", - VERSION: JSON.stringify(require("./package.json").version) - } - }), - ] : [ - new webpack.DefinePlugin({ - "process.env": { - NODE_ENV: "'development'", - VERSION: JSON.stringify(require("./package.json").version) - } - }), - new CopyWebpackPlugin([{ - from: 'index.html', - to: distPath - }]), - ]) - ], - devServer: { - public: "http://localhost:3100", - contentBase: frameworkPath, - - compress: true, - headers: { - "Access-Control-Allow-Origin": "*" - }, - host: "0.0.0.0", - port: 3100, - disableHostCheck: true, - historyApiFallback: true, - inline: true, - hot: false, - quiet: false, - stats: { - colors: true - }, - proxy: { - "/oauth2/": { - //target: "http://10.20.6.29:48181", - target: "http://sdnr:8181", - secure: false - }, - "/database/": { - //target: "http://10.20.6.29:48181", - target: "http://sdnr:8181", - secure: false - }, - "/restconf/": { - //target: "http://10.20.6.29:48181", - target: "http://sdnr:8181", - secure: false - }, - "/rests/": { - target: "http://sdnr:8181", - secure: false - }, - "/help/": { - //target: "http://10.20.6.29:48181", - target: "http://sdnr:8181", - secure: false - }, - "/websocket/": { - //target: "http://10.20.6.29:48181", - target: "http://sdnr:8181", - ws: true, - changeOrigin: true, - secure: false - } - } - } - }]; -} |