blob: 15988cd07c362b0dfc50d470af0ef0bae293d25e [file] [log] [blame]
Matteo Scandolofb46ae62017-08-08 09:10:50 -07001
2/*
3 * Copyright 2017-present Open Networking Foundation
4
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8
9 * http://www.apache.org/licenses/LICENSE-2.0
10
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17
18
Matteo Scandolo7629cc42017-03-13 14:12:15 -070019import * as d3 from 'd3';
20
21export interface Id3BBox {
22 x: number;
23 y: number;
24 width: number;
25 height: number;
26}
27
28export interface IXosGraphHelpers {
29 parseElemClasses (classes: string): string;
30 getSiblingTextBBox(contex: any /* D3 this */): Id3BBox;
31}
32
33export class XosGraphHelpers implements IXosGraphHelpers {
34 public parseElemClasses (classes: string): string {
35 return classes ? classes.split(' ')
36 .map(c => `ext-${c}`)
37 .join(' ') : '';
38 }
39
40 public getSiblingTextBBox(contex: any): Id3BBox {
41 return d3.select(contex.parentNode).select('text').node().getBBox();
42 }
43}