@tririga/tri-template
Version:
A simple tool for generating IBM TRIRIGA UX view skeletons from available templates.
111 lines (95 loc) • 2.91 kB
JavaScript
import { PolymerElement, html } from '../@polymer/polymer/polymer-element.js';
import "../triplat-routing/triplat-routing.js";
import "../triplat-icon/triplat-icon.js";
import "../triblock-table/triblock-table.js";
import { afterNextRender } from "../@polymer/polymer/lib/utils/render-status.js";
import "../@polymer/paper-button/paper-button.js";
import "../@polymer/paper-icon-button/paper-icon-button.js";
import "./@element-styles.js";
class extends PolymerElement {
static get template() {
return html `
<style include="shared-app-layout-styles tristyles-theme">
:host {
--layout-vertical;
background-color: var(--tri-primary-content-background-color);
padding: 0px 20px 10px 20px;
}
.inbox-header {
--layout-horizontal;
--layout-center;
}
.title {
--layout-flex;
padding: 20px;
font-size: 18px;
}
#requestsTable {
--layout-flex;
width:100%;
}
triblock-table-column {
--layout-flex-2;
}
</style>
<div class="inbox-header">
<div class="title">
<triplat-icon icon="bulletlist"></triplat-icon>
<span>List of records</span>
</div>
<paper-button primary="" on-tap="_onActionButtonTap" noink="">Action</paper-button>
</div>
<triblock-table id="requestsTable" data="[[_records]]" fixed-header="" on-row-tap="_handleRowTap">
<triblock-table-column title="Record ID" property="_id"></triblock-table-column>
<triblock-table-column title="Name" property="name"></triblock-table-column>
<triblock-table-column title="Status" property="status"></triblock-table-column>
<triblock-table-column title="Action Button" property="status" remove-default-cell-padding="">
<template>
<paper-icon-button icon="delete" on-tap="_onDeleteRow"></paper-icon-button>
</template>
</triblock-table-column>
</triblock-table>
`
}
static get properties() {
return {
_records: {
type: Array
}
}
}
connectedCallback() {
super.connectedCallback();
afterNextRender(this, this._loadRecords);
}
_onActionButtonTap() {
this.dispatchEvent(new CustomEvent('inbox-action', {bubbles: true, composed: true}));
}
_handleRowTap(e) {
this.dispatchEvent(new CustomEvent('open-detail', {bubbles: true, composed: true, detail: {"record": e.detail.item}}));
}
_onDeleteRow(e) {
e.stopPropagation();
this.dispatchEvent(new CustomEvent('delete-record', {bubbles: true, composed: true, detail: {"record": e.detail.item}}));
}
_loadRecords() {
this._records = [
{
_id: 1,
name: "Name 000001",
status: "Active"
},
{
_id: 2,
name: "Name 000002",
status: "Draft"
},
{
_id: 3,
name: "Name 000003",
status: "Active"
}
];
}
}
window.customElements.define("@element-inbox", );