blob: 4fae42636f331bc7d665108e5451d4411f456384 [file] [log] [blame]
<head>
<link rel="import" href="curly_block.html">
<link rel="import" href="observatory_element.html">
<link rel="import" href="service_ref.html">
</head>
<polymer-element name="instance-ref" extends="service-ref">
<template>
<style>
.memberList {
display: table;
}
.memberItem {
display: table-row;
}
.memberName, .memberValue {
display: table-cell;
vertical-align: top;
padding: 3px 0 3px 1em;
font: 400 14px 'Montserrat', sans-serif;
}
</style>
<div>
<template if="{{ isUnexpected(ref.serviceType) }}">
unexpected reference type &lt;{{ ref.serviceType }}&gt;
</template>
<template if="{{ isError(ref.serviceType) }}">
<pre>{{ ref.message }}</pre>
</template>
<template if="{{ isNull(ref.serviceType) }}">
<div title="{{ hoverText }}">{{ ref['preview'] }}</div>
</template>
<template if="{{ (isString(ref.serviceType) ||
isBool(ref.serviceType) ||
isInt(ref.serviceType)) }}">
<a href="{{ url }}">{{ ref['preview'] }}</a>
</template>
<template if="{{ isClosure(ref.serviceType) }}">
<a href="{{ url }}">
<!-- TODO(turnidge): Switch this to fully-qualified function -->
{{ ref['closureFunc']['user_name'] }}
</a>
</template>
<template if="{{ isInstance(ref.serviceType) }}">
<a href="{{ url }}"><em>{{ ref['class']['user_name'] }}</em></a>
<curly-block callback="{{ expander() }}">
<div class="memberList">
<template repeat="{{ field in ref['fields'] }}">
<div class="memberItem">
<div class="memberName">
{{ field['decl']['user_name'] }}
</div>
<div class="memberValue">
<instance-ref ref="{{ field['value'] }}"></instance-ref>
</div>
</div>
</template>
</div>
</curly-block>
</template>
<template if="{{ isList(ref.serviceType) }}">
<a href="{{ url }}"><em>{{ ref['class']['user_name'] }}</em> ({{ ref['length']}})</a>
<curly-block callback="{{ expander() }}">
<div class="memberList">
<template repeat="{{ element in ref['elements'] }}">
<div class="memberItem">
<div class="memberName">[{{ element['index']}}]</div>
<div class="memberValue">
<instance-ref ref="{{ element['value'] }}"></instance-ref>
</div>
</div>
</template>
</div>
</curly-block>
</template>
</div>
</template>
<script type="application/dart" src="instance_ref.dart"></script>
</polymer-element>