summaryrefslogtreecommitdiffstats
path: root/ms/pom.xml
blob: 5e8761be8bea57b7d21aa05e93a2cb4006b16060 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<?xml version="1.0" encoding="UTF-8"?>
<!--
 * Copyright (C) 2019 Bell Canada
 *
 * 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.
 -->
<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.cds</groupId>
        <artifactId>parent</artifactId>
        <version>0.7.0-SNAPSHOT</version>
        <relativePath>..</relativePath>
    </parent>

    <artifactId>ms</artifactId>
    <version>0.7.0-SNAPSHOT</version>
    <packaging>pom</packaging>

    <name>Micro-services Root</name>
    <description>Micro-services</description>

    <modules>
        <module>controllerblueprints</module>
        <module>blueprintsprocessor</module>
        <module>py-executor</module>
        <module>command-executor</module>
        <module>sdclistener</module>
    </modules>
</project>
===================== * 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 FontAwesome from 'react-fontawesome'; import ReactDOM from 'react-dom'; class SlidePanel extends React.Component { static PropTypes = { direction: React.PropTypes.string.isRequired, className: React.PropTypes.string, title: React.PropTypes.string, isOpen: React.PropTypes.bool }; static defaultProps = { title: '', className: '', isOpen: true }; state = { isOpen: this.props.isOpen, direction: this.props.direction, width: 0, arrowWidth: 0 }; componentDidMount() { this.setSliderPosition(); } componentDidUpdate() { this.setSliderPosition(); } render() { let {children, className} = this.props; let {isOpen} = this.state; return ( <div className={ `slide-panel ${className}`}> {this.renderHeader(isOpen)} <div className={'slide-panel-content ' + (isOpen ? 'opened' : 'closed')}>{children}</div> </div> ); } renderHeader(isOpen) { let {direction: initialDirection, title} = this.props; let {direction: currentDirection} = this.state; let iconName = currentDirection === 'right' ? 'angle-double-right collapse-double-icon' : 'angle-double-left collapse-double-icon'; let awestyle = {padding: '5px'}; if (!isOpen && initialDirection === 'right') { awestyle.marginLeft = '-1px'; } return ( <div className='slide-panel-header'> { initialDirection === 'left' && <span className='slide-panel-header-title'>{title}</span>} <FontAwesome ref='arrowIcon' style={awestyle} onClick={this.handleClick} className='pull-right' name={iconName} size='2x'/> { initialDirection === 'right' && <span className='slide-panel-header-title'>{title}</span>} </div> ); } handleClick = () => { this.setState({ isOpen: !this.state.isOpen, direction: this.state.direction === 'left' ? 'right' : 'left' }); } setSliderPosition = () => { let el = ReactDOM.findDOMNode(this); let {style} = el; let {direction: initialDirection} = this.props; let arrowIconSize = Math.floor(ReactDOM.findDOMNode(this.refs.arrowIcon) .getBoundingClientRect().width) * 2; if (!this.state.isOpen) { if (this.props.direction === 'left') { style.left = arrowIconSize - el.getBoundingClientRect().width + 'px'; } if (initialDirection === 'right') { style.right = arrowIconSize - el.getBoundingClientRect().width + 'px'; } } else { if (initialDirection === 'left') { style.left = '0px'; } if (this.props.direction === 'right') { style.right = '0px'; } } } } export default SlidePanel;