-
Notifications
You must be signed in to change notification settings - Fork 83
/
px-data-table-highlight.html
117 lines (100 loc) · 3.39 KB
/
px-data-table-highlight.html
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
<!--
Copyright (c) 2018, General Electric
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.
-->
<link rel="import" href="../polymer/polymer.html" />
<link rel="import" href="css/px-data-table-highlight-styles.html">
<!--
Element to define and configure highlighting behavior for a given column (and hence cell or row).
### Usage
<px-data-table-highlight
highlight-type="row"
highlight-method="isLongString"
import="px-example-highlight.html">
</px-data-table-highlight>
### Styling
The following custom properties are available for styling:
Custom property | Description | Default
----------------|-------------|----------
`--px-data-table-highlight--high` | A high highlight | `rgba($alert-red, 0.25)`
`--px-data-table-highlight--medium` | A medium highlight | `rgba($alert-yellow, 0.25)`
`--px-data-table-highlight--low` | A low highlight | `rgba($alert-blue, 0.25)`
@element px-data-table-highlight
@blurb Element to define and configure highlighting behaviour for a given column (and hence cell or row).
@homepage index.html
@demo index.html
-->
<dom-module id="px-data-table-highlight">
<template>
<style include="px-data-table-highlight-styles"></style>
<span></span>
<content></content>
</template>
</dom-module>
<script>
Polymer({
is: 'px-data-table-highlight',
properties: {
/**
* A url that points to a file containing the JavaScript methods to be used for determining the highlighting behavior.
*/
import: {
type: String,
value: ''
},
/**
* An object that holds the highlighting methods and attaches them to the window of the application.
*/
highlight: {
type: Object,
value: function(){
return new Function();
}
},
/**
* A JavaScript method name from the file located at the `import` url.
* Highlight method receives three parameters: cell value, row data, column name.
*/
highlightMethod: {
type: String,
value: ''
},
/**
* Property for what actually gets highlighted - either 'cell' or 'row'.
*/
highlightType: {
type: String,
value: 'cell'
},
/**
* Property to set the pre-defined style of a highlight based on severity. One of 'high', 'medium' or 'low' - the colors for these three highlight types can be configured using the style variables above.
*/
highlightValue: {
type: String,
value: 'low'
}
},
/**
* Loads the imported highlight function.
*
*/
attached: function() {
this.importHref(this.import, function(e) {
if (this.highlightMethod && window.PxHighlight[this.highlightMethod]){
this.highlight = window.PxHighlight[this.highlightMethod];
this.fire('px-data-table-highlight-loaded');
}
}, function(e) {
// loading error
}, false);
}
});
</script>