blob: ac03f9b8f1a00a9d1f1013f937aeda41f256f77e [file] [log] [blame]
Pablo Gamito06102a22020-07-23 14:25:24 +01001<!-- Copyright (C) 2020 The Android Open Source Project
2
3 Licensed under the Apache License, Version 2.0 (the "License");
4 you may not use this file except in compliance with the License.
5 You may obtain a copy of the License at
6
7 http://www.apache.org/licenses/LICENSE-2.0
8
9 Unless required by applicable law or agreed to in writing, software
10 distributed under the License is distributed on an "AS IS" BASIS,
11 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 See the License for the specific language governing permissions and
13 limitations under the License.
14-->
15<template>
16 <span>
17 <span class="kind">{{item.kind}}</span>
18 <span v-if="item.kind && item.name">-</span>
Pablo Gamito8f3fd212020-09-02 14:05:37 +020019 <span
20 v-if="simplifyNames && item.shortName &&
21 item.shortName !== item.name"
22 >{{ item.shortName }} <!-- No line break on purpose -->
23 <md-tooltip
Pablo Gamito06102a22020-07-23 14:25:24 +010024 md-delay="300"
25 md-direction="top"
26 style="margin-bottom: -10px"
Pablo Gamito8f3fd212020-09-02 14:05:37 +020027 >
Pablo Gamito06102a22020-07-23 14:25:24 +010028 {{item.name}}
Pablo Gamito8f3fd212020-09-02 14:05:37 +020029 </md-tooltip>
Pablo Gamito06102a22020-07-23 14:25:24 +010030 </span>
Pablo Gamito8f3fd212020-09-02 14:05:37 +020031 <span v-else>{{ item.name }}</span>
Pablo Gamito06102a22020-07-23 14:25:24 +010032 <div
Pablo Gamito8f3fd212020-09-02 14:05:37 +020033 v-for="c in item.chips"
34 v-bind:key="c.long"
35 :title="c.long"
36 :class="chipClassForChip(c)"
37 >{{c.short}} <!-- No line break on purpose -->
Pablo Gamito335b3e12020-07-17 12:36:18 +010038 <md-tooltip
39 md-delay="300"
40 md-direction="top"
41 style="margin-bottom: -10px"
42 >
43 {{c.long}}
44 </md-tooltip>
Pablo Gamito06102a22020-07-23 14:25:24 +010045 </div>
Nataniel Borges325b0472021-08-31 15:08:30 +000046 <div class="flicker-tags" v-for="transition in transitions" :key="transition">
47 <Arrow
48 class="transition-arrow"
49 :style="{color: transitionArrowColor(transition)}"
50 />
51 <md-tooltip md-direction="right"> {{transitionTooltip(transition)}} </md-tooltip>
52 </div>
53 <div class="flicker-tags" v-for="error in errors" :key="error.message">
54 <Arrow class="error-arrow"/>
Nataniel Borges39071542021-09-22 09:19:41 +000055 <md-tooltip md-direction="right"> {{errorTooltip(error.message)}} </md-tooltip>
Nataniel Borges325b0472021-08-31 15:08:30 +000056 </div>
Pablo Gamito06102a22020-07-23 14:25:24 +010057 </span>
58</template>
Pablo Gamito32c09ff2020-08-03 16:39:45 +010059
Pablo Gamito06102a22020-07-23 14:25:24 +010060<script>
Nataniel Borges325b0472021-08-31 15:08:30 +000061
62import Arrow from './components/TagDisplay/Arrow.vue';
63import {transitionMap} from './utils/consts.js';
64
Pablo Gamito06102a22020-07-23 14:25:24 +010065export default {
66 name: 'DefaultTreeElement',
Nataniel Borges325b0472021-08-31 15:08:30 +000067 props: ['item', 'simplify-names', 'errors', 'transitions'],
Pablo Gamito06102a22020-07-23 14:25:24 +010068 methods: {
69 chipClassForChip(c) {
70 return [
Pablo Gamito8f3fd212020-09-02 14:05:37 +020071 'tree-view-internal-chip',
72 'tree-view-chip',
73 'tree-view-chip' + '-' +
74 (c.type?.toString() || c.class?.toString() || 'default'),
Pablo Gamito06102a22020-07-23 14:25:24 +010075 ];
76 },
Nataniel Borges325b0472021-08-31 15:08:30 +000077 transitionArrowColor(transition) {
78 return transitionMap.get(transition).color;
79 },
80 transitionTooltip(transition) {
81 return transitionMap.get(transition).desc;
82 },
Nataniel Borges39071542021-09-22 09:19:41 +000083 errorTooltip(errorMessage) {
84 if (errorMessage.length>100) {
85 return `Error: ${errorMessage.substring(0,100)}...`;
86 }
87 return `Error: ${errorMessage}`;
88 },
Nataniel Borges325b0472021-08-31 15:08:30 +000089 },
90 components: {
91 Arrow,
Pablo Gamito8f3fd212020-09-02 14:05:37 +020092 },
93};
Pablo Gamito32c09ff2020-08-03 16:39:45 +010094</script>
95
96<style scoped>
97.tree-view-internal-chip {
98 display: inline-block;
99}
100
101.tree-view-chip {
102 padding: 0 10px;
103 border-radius: 10px;
104 background-color: #aaa;
105 color: black;
106}
107
108.tree-view-chip.tree-view-chip-warn {
109 background-color: #ffaa6b;
110 color: black;
111}
112
113.tree-view-chip.tree-view-chip-error {
114 background-color: #ff6b6b;
115 color: black;
116}
117
118.tree-view-chip.tree-view-chip-gpu {
119 background-color: #00c853;
120 color: black;
121}
122
123.tree-view-chip.tree-view-chip-hwc {
124 background-color: #448aff;
125 color: black;
126}
Pablo Gamito8f3fd212020-09-02 14:05:37 +0200127
128span {
129 overflow-wrap: break-word;
130 flex: 1 1 auto;
131 width: 0;
132}
Nataniel Borges325b0472021-08-31 15:08:30 +0000133
134.flicker-tags {
135 display: inline-block;
136}
137
138.error-arrow {
139 color: red;
140}
Pablo Gamito8f3fd212020-09-02 14:05:37 +0200141</style>