playbook_ui 13.34.1.pre.alpha.PLAY14633399 → 13.34.1.pre.alpha.pbntr258paginationkitforreact3404
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/app/pb_kits/playbook/pb_pagination/_pagination.scss +24 -8
- data/app/pb_kits/playbook/pb_pagination/_pagination.tsx +131 -0
- data/app/pb_kits/playbook/pb_pagination/docs/_pagination_default.jsx +19 -0
- data/app/pb_kits/playbook/pb_pagination/docs/example.yml +2 -1
- data/app/pb_kits/playbook/pb_pagination/docs/index.js +1 -0
- data/app/pb_kits/playbook/pb_table/_table.tsx +1 -1
- data/app/pb_kits/playbook/pb_table/index.ts +4 -4
- data/app/pb_kits/playbook/pb_table/subcomponents/_table_body.tsx +1 -1
- data/app/pb_kits/playbook/pb_table/subcomponents/_table_cell.tsx +1 -1
- data/app/pb_kits/playbook/pb_table/subcomponents/_table_head.tsx +1 -1
- data/app/pb_kits/playbook/pb_table/subcomponents/_table_header.tsx +1 -1
- data/app/pb_kits/playbook/pb_table/subcomponents/_table_row.tsx +1 -1
- data/app/pb_kits/playbook/pb_table/table.test.js +0 -2
- data/app/pb_kits/playbook/pb_text_input/_text_input.tsx +1 -1
- data/app/pb_kits/playbook/pb_text_input/docs/_text_input_default.jsx +1 -1
- data/app/pb_kits/playbook/pb_textarea/_textarea.tsx +27 -45
- data/app/pb_kits/playbook/pb_textarea/index.ts +3 -3
- data/app/pb_kits/playbook/pb_time/_time.tsx +3 -3
- data/app/pb_kits/playbook/pb_time_range_inline/_time_range_inline.tsx +1 -1
- data/app/pb_kits/playbook/pb_timeline/_item.tsx +1 -1
- data/app/pb_kits/playbook/pb_timeline/_timeline.tsx +1 -1
- data/app/pb_kits/playbook/pb_title_detail/_title_detail.tsx +10 -10
- data/app/pb_kits/playbook/pb_toggle/_toggle.tsx +1 -1
- data/app/pb_kits/playbook/pb_tooltip/_tooltip.tsx +2 -2
- data/app/pb_kits/playbook/pb_treemap_chart/_treemap_chart.tsx +2 -1
- data/app/pb_kits/playbook/pb_treemap_chart/treemapChart.test.js +0 -2
- data/app/pb_kits/playbook/pb_user/_user.tsx +1 -1
- data/app/pb_kits/playbook/pb_user_badge/_user_badge.tsx +6 -6
- data/app/pb_kits/playbook/pb_user_badge/badges/million-dollar.tsx +235 -236
- data/app/pb_kits/playbook/pb_user_badge/badges/veteran.tsx +1 -1
- data/app/pb_kits/playbook/pb_walkthrough/_walkthrough.tsx +63 -68
- data/app/pb_kits/playbook/pb_weekday_stacked/_weekday_stacked.tsx +1 -1
- data/dist/chunks/{_typeahead-Clhh5t_H.js → _typeahead-COUJ88EA.js} +1 -1
- data/dist/chunks/{_weekday_stacked-C1tp5PyP.js → _weekday_stacked-BAkwel5p.js} +2 -2
- data/dist/chunks/{lib-BE0Z3F7x.js → lib-Bf_E03gc.js} +1 -1
- data/dist/chunks/{pb_form_validation-TzZQ0Flx.js → pb_form_validation-D0dhqeN2.js} +1 -1
- data/dist/chunks/vendor.js +1 -1
- data/dist/playbook-doc.js +1 -1
- data/dist/playbook-rails-react-bindings.js +1 -1
- data/dist/playbook-rails.js +1 -1
- data/dist/playbook.css +1 -1
- data/lib/playbook/version.rb +1 -1
- metadata +9 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bab43cc6a8c8e4d53a945cd3261cdf03286d7e9e0d280525977860b6b9cc8f41
|
4
|
+
data.tar.gz: a6d25e8f74fbbc2cd63670f978da136d714bc432ea06dedaa74e53baf6d4bd59
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8d15c1f00331eae6e9d742276f99bd867495d0a4d87abe6760e091a16005e86afe4df08b5f09c54e7750ce8fdff74cf6eb869cfceb97f03dac13294740e9ebf0
|
7
|
+
data.tar.gz: 6c30a8e6897cd6a1da9c27d6057c83d594837a1e6b957b27920a065e7e3aa3a4aa43d39e046767076a222b486741a3a2a4f195f3862c9e9018454cdde68f247c
|
@@ -11,28 +11,29 @@ $top_bottom_radius: 0px;
|
|
11
11
|
border-radius: $border_rad_light;
|
12
12
|
border: $border_rad_lightest solid $border_light;
|
13
13
|
background-color: $white;
|
14
|
-
padding: $
|
15
|
-
li {
|
14
|
+
padding: $space_xs 0px !important;
|
15
|
+
li, .pagination-number {
|
16
16
|
display: inline;
|
17
|
-
> a, li > span {
|
17
|
+
> a, li > span, .pagination-number {
|
18
18
|
padding: $pagination_padding;
|
19
19
|
text-decoration: none;
|
20
20
|
}}
|
21
|
-
li:first-child > a, li:first-child > span
|
21
|
+
li:first-child > a, li:first-child > span, .pagination-number, .pagination-left {
|
22
|
+
background-color: $white;
|
22
23
|
padding: $pagination_padding;
|
23
24
|
border-right: $border_rad_lightest solid $border_light;
|
24
25
|
z-index: 2;
|
25
26
|
border-top-right-radius: $top_bottom_radius;
|
26
27
|
border-bottom-right-radius: $top_bottom_radius;
|
27
28
|
}
|
28
|
-
li:last-child > a, li:last-child > span {
|
29
|
+
li:last-child > a, li:last-child > span, .pagination-number, .pagination-right {
|
29
30
|
padding: $pagination_padding;
|
30
31
|
border-left: $border_rad_lightest solid $border_light;
|
31
32
|
z-index: 2;
|
32
33
|
border-top-left-radius: $top_bottom_radius;
|
33
34
|
border-bottom-left-radius: $top_bottom_radius;
|
34
35
|
}
|
35
|
-
a {
|
36
|
+
a, .pagination-number {
|
36
37
|
color: $text_lt_default;
|
37
38
|
font-size: $text_small;
|
38
39
|
font-weight: $regular;
|
@@ -52,8 +53,8 @@ $top_bottom_radius: 0px;
|
|
52
53
|
transition: none;
|
53
54
|
}
|
54
55
|
}
|
55
|
-
.active > span {
|
56
|
-
background-color: $primary;
|
56
|
+
.active > span, .pagination-number.active {
|
57
|
+
background-color: $primary !important;
|
57
58
|
border-radius: $border_rad_light;
|
58
59
|
color: #fff;
|
59
60
|
padding: $pagination_padding;
|
@@ -61,9 +62,24 @@ $top_bottom_radius: 0px;
|
|
61
62
|
text-decoration: none;
|
62
63
|
font-weight: $bold;
|
63
64
|
font-size: $text_small;
|
65
|
+
height: 29px;
|
64
66
|
}
|
65
67
|
.disabled > span {
|
66
68
|
padding: $pagination_padding;
|
67
69
|
font-size: $text_small;
|
68
70
|
}
|
71
|
+
|
72
|
+
.pagination-right, .pagination-left {
|
73
|
+
background-color: $white;
|
74
|
+
border-top: none;
|
75
|
+
border-bottom: none;
|
76
|
+
}
|
77
|
+
|
78
|
+
.pagination-left {
|
79
|
+
border-left: none;
|
80
|
+
}
|
81
|
+
|
82
|
+
.pagination-right {
|
83
|
+
border-right: none;
|
84
|
+
}
|
69
85
|
}
|
@@ -0,0 +1,131 @@
|
|
1
|
+
import React, { useState } from "react";
|
2
|
+
import Icon from '../pb_icon/_icon';
|
3
|
+
|
4
|
+
type PaginationProps = {
|
5
|
+
defaultPage?: number;
|
6
|
+
onPageChange?: any;
|
7
|
+
pageRange?: number;
|
8
|
+
totalPages?: number;
|
9
|
+
};
|
10
|
+
|
11
|
+
const Pagination = ({
|
12
|
+
defaultPage = 1,
|
13
|
+
onPageChange,
|
14
|
+
pageRange = 5,
|
15
|
+
totalPages = 1,
|
16
|
+
}: PaginationProps) => {
|
17
|
+
const [currentPage, setCurrentPage] = useState(defaultPage);
|
18
|
+
|
19
|
+
const handlePageChange = (pageNumber: number) => {
|
20
|
+
if (pageNumber >= 1 && pageNumber <= totalPages) {
|
21
|
+
setCurrentPage(pageNumber);
|
22
|
+
onPageChange(pageNumber);
|
23
|
+
}
|
24
|
+
};
|
25
|
+
|
26
|
+
const renderPageButtons = () => {
|
27
|
+
const buttons = [];
|
28
|
+
|
29
|
+
// Calculate pagination range with let
|
30
|
+
let rangeStart = Math.max(1, currentPage - Math.floor(pageRange / 2));
|
31
|
+
let rangeEnd = Math.min(totalPages, rangeStart + pageRange - 1);
|
32
|
+
|
33
|
+
// Adjust range if it's too short to fit the pageRange
|
34
|
+
if (rangeEnd - rangeStart + 1 < pageRange) {
|
35
|
+
if (rangeStart > 1) {
|
36
|
+
rangeStart = Math.max(1, rangeEnd - pageRange + 1);
|
37
|
+
} else {
|
38
|
+
rangeEnd = Math.min(totalPages, rangeStart + pageRange - 1);
|
39
|
+
}
|
40
|
+
}
|
41
|
+
|
42
|
+
// Always display the first page button
|
43
|
+
if (rangeStart > 1) {
|
44
|
+
buttons.push(
|
45
|
+
<button
|
46
|
+
className="pagination-number"
|
47
|
+
key={1}
|
48
|
+
onClick={() => handlePageChange(1)}
|
49
|
+
>
|
50
|
+
1
|
51
|
+
</button>
|
52
|
+
);
|
53
|
+
}
|
54
|
+
|
55
|
+
// Always display the second page button
|
56
|
+
if (rangeStart > 2) {
|
57
|
+
buttons.push(
|
58
|
+
<button
|
59
|
+
className="pagination-number"
|
60
|
+
key={2}
|
61
|
+
onClick={() => handlePageChange(2)}
|
62
|
+
>
|
63
|
+
2
|
64
|
+
</button>
|
65
|
+
);
|
66
|
+
}
|
67
|
+
|
68
|
+
// Display page buttons within the calculated range
|
69
|
+
for (let i = rangeStart; i <= rangeEnd; i++) {
|
70
|
+
buttons.push(
|
71
|
+
<button
|
72
|
+
className={`pagination-number ${i === currentPage ? "active" : ""}`}
|
73
|
+
key={i}
|
74
|
+
onClick={() => handlePageChange(i)}
|
75
|
+
>
|
76
|
+
{i}
|
77
|
+
</button>
|
78
|
+
);
|
79
|
+
}
|
80
|
+
|
81
|
+
// Always display the second-to-last page button
|
82
|
+
if (rangeEnd < totalPages - 1) {
|
83
|
+
buttons.push(
|
84
|
+
<button
|
85
|
+
className={`pagination-number ${totalPages - 1 === currentPage ? "active" : ""}`}
|
86
|
+
key={totalPages - 1}
|
87
|
+
onClick={() => handlePageChange(totalPages - 1)}
|
88
|
+
>
|
89
|
+
{totalPages - 1}
|
90
|
+
</button>
|
91
|
+
);
|
92
|
+
}
|
93
|
+
|
94
|
+
// Always display the last page button
|
95
|
+
if (rangeEnd < totalPages) {
|
96
|
+
buttons.push(
|
97
|
+
<button
|
98
|
+
className={`pagination-number ${totalPages === currentPage ? "active" : ""}`}
|
99
|
+
key={totalPages}
|
100
|
+
onClick={() => handlePageChange(totalPages)}
|
101
|
+
>
|
102
|
+
{totalPages}
|
103
|
+
</button>
|
104
|
+
);
|
105
|
+
}
|
106
|
+
|
107
|
+
return buttons;
|
108
|
+
};
|
109
|
+
|
110
|
+
return (
|
111
|
+
<div className="pb_pagination">
|
112
|
+
<button
|
113
|
+
className="pagination-left"
|
114
|
+
disabled={currentPage === 1}
|
115
|
+
onClick={() => handlePageChange(currentPage - 1)}
|
116
|
+
>
|
117
|
+
<Icon icon="chevron-left" />
|
118
|
+
</button>
|
119
|
+
{renderPageButtons()}
|
120
|
+
<button
|
121
|
+
className="pagination-right"
|
122
|
+
disabled={currentPage === totalPages}
|
123
|
+
onClick={() => handlePageChange(currentPage + 1)}
|
124
|
+
>
|
125
|
+
<Icon icon="chevron-right" />
|
126
|
+
</button>
|
127
|
+
</div>
|
128
|
+
);
|
129
|
+
};
|
130
|
+
|
131
|
+
export default Pagination;
|
@@ -0,0 +1,19 @@
|
|
1
|
+
import React from 'react'
|
2
|
+
|
3
|
+
import Pagination from '../_pagination'
|
4
|
+
|
5
|
+
const PaginationDefault = (props) => {
|
6
|
+
|
7
|
+
return (
|
8
|
+
<>
|
9
|
+
<Pagination
|
10
|
+
defaultPage={3}
|
11
|
+
pageRange={5}
|
12
|
+
totalPages={10}
|
13
|
+
{...props}
|
14
|
+
/>
|
15
|
+
</>
|
16
|
+
)
|
17
|
+
}
|
18
|
+
|
19
|
+
export default PaginationDefault
|
@@ -0,0 +1 @@
|
|
1
|
+
export { default as PaginationDefault } from './_pagination_default.jsx'
|
@@ -1,19 +1,19 @@
|
|
1
1
|
import PbEnhancedElement from '../pb_enhanced_element'
|
2
2
|
|
3
3
|
export default class PbTable extends PbEnhancedElement {
|
4
|
-
static get selector()
|
4
|
+
static get selector() {
|
5
5
|
return '.table-responsive-collapse'
|
6
6
|
}
|
7
7
|
|
8
|
-
connect()
|
8
|
+
connect() {
|
9
9
|
const tables = document.querySelectorAll('.table-responsive-collapse');
|
10
10
|
|
11
11
|
// Each Table
|
12
12
|
[].forEach.call(tables, (table: HTMLTableElement) => {
|
13
13
|
// Header Titles
|
14
|
-
|
14
|
+
let headers: string[] = [];
|
15
15
|
[].forEach.call(table.querySelectorAll('th'), (header: HTMLTableCellElement) => {
|
16
|
-
|
16
|
+
let colSpan = header.colSpan
|
17
17
|
for (let i = 0; i < colSpan; i++) {
|
18
18
|
headers.push(header.textContent.replace(/\r?\n|\r/, ''));
|
19
19
|
}
|
@@ -5,12 +5,12 @@ import TextInput from '../../pb_text_input/_text_input'
|
|
5
5
|
import Title from '../../pb_title/_title'
|
6
6
|
|
7
7
|
const TextInputDefault = (props) => {
|
8
|
-
const [firstName, setFirstName] = useState('')
|
9
8
|
const handleOnChangeFirstName = ({ target }) => {
|
10
9
|
setFirstName(target.value)
|
11
10
|
}
|
12
11
|
const ref = React.createRef()
|
13
12
|
|
13
|
+
const [firstName, setFirstName] = useState('')
|
14
14
|
const [formFields, setFormFields] = useState({
|
15
15
|
firstName: 'Jane',
|
16
16
|
lastName: 'Doe',
|
@@ -52,15 +52,14 @@ const Textarea = ({
|
|
52
52
|
label,
|
53
53
|
maxCharacters,
|
54
54
|
name,
|
55
|
-
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
56
55
|
onChange = () => {},
|
57
56
|
placeholder,
|
58
57
|
required,
|
59
58
|
rows = 4,
|
60
59
|
value,
|
61
60
|
...props
|
62
|
-
}: TextareaProps) => {
|
63
|
-
|
61
|
+
}: TextareaProps, ref: any) => {
|
62
|
+
ref = useRef<HTMLTextAreaElement>(null)
|
64
63
|
useEffect(() => {
|
65
64
|
if (ref.current && resize === 'auto') {
|
66
65
|
PbTextarea.addMatch(ref.current)
|
@@ -72,75 +71,58 @@ const Textarea = ({
|
|
72
71
|
const resizeClass = `resize_${resize}`
|
73
72
|
const classes = classnames('pb_textarea_kit', errorClass, inlineClass, resizeClass, globalProps(props), className)
|
74
73
|
const noCount = typeof characterCount !== 'undefined'
|
75
|
-
const ariaProps: {[key: string]:
|
76
|
-
const dataProps: {[key: string]:
|
74
|
+
const ariaProps: {[key: string]: any} = buildAriaProps(aria)
|
75
|
+
const dataProps: {[key: string]: any} = buildDataProps(data)
|
77
76
|
const htmlProps = buildHtmlProps(htmlOptions)
|
78
|
-
const checkIfZero = (characterCount: string | number) => {
|
79
|
-
return characterCount == 0 ? characterCount.toString() : characterCount
|
80
|
-
}
|
81
77
|
const characterCounter = () => {
|
82
78
|
return maxCharacters && characterCount ? `${checkIfZero(characterCount)} / ${maxCharacters}` : `${checkIfZero(characterCount)}`
|
83
79
|
}
|
84
80
|
|
81
|
+
const checkIfZero = (characterCount: string | number) => {
|
82
|
+
return characterCount == 0 ? characterCount.toString() : characterCount
|
83
|
+
}
|
84
|
+
|
85
85
|
return (
|
86
86
|
<div
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
87
|
+
{...ariaProps}
|
88
|
+
{...dataProps}
|
89
|
+
{...htmlProps}
|
90
|
+
className={classes}
|
91
91
|
>
|
92
92
|
<Caption text={label} />
|
93
93
|
{children || (
|
94
94
|
<textarea
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
95
|
+
className="pb_textarea_kit"
|
96
|
+
disabled={disabled}
|
97
|
+
name={name}
|
98
|
+
onChange={onChange}
|
99
|
+
placeholder={placeholder}
|
100
|
+
ref={ref}
|
101
|
+
required={required}
|
102
|
+
rows={rows}
|
103
|
+
value={value}
|
104
|
+
{...props}
|
105
105
|
/>
|
106
106
|
)}
|
107
107
|
|
108
108
|
{error ? (
|
109
109
|
<>
|
110
110
|
{characterCount ? (
|
111
|
-
<Flex
|
112
|
-
spacing="between"
|
113
|
-
vertical="center"
|
114
|
-
>
|
111
|
+
<Flex spacing="between" vertical="center">
|
115
112
|
<FlexItem>
|
116
|
-
<Body
|
117
|
-
margin="none"
|
118
|
-
status="negative"
|
119
|
-
text={error}
|
120
|
-
/>
|
113
|
+
<Body margin="none" status="negative" text={error} />
|
121
114
|
</FlexItem>
|
122
115
|
<FlexItem>
|
123
|
-
<Caption
|
124
|
-
margin="none"
|
125
|
-
size="xs"
|
126
|
-
text={characterCounter()}
|
127
|
-
/>
|
116
|
+
<Caption margin="none" size="xs" text={characterCounter()} />
|
128
117
|
</FlexItem>
|
129
118
|
</Flex>
|
130
119
|
) : (
|
131
|
-
<Body
|
132
|
-
status="negative"
|
133
|
-
text={error}
|
134
|
-
/>
|
120
|
+
<Body status="negative" text={error} />
|
135
121
|
)}
|
136
122
|
</>
|
137
123
|
) : (
|
138
124
|
noCount && (
|
139
|
-
<Caption
|
140
|
-
margin="none"
|
141
|
-
size="xs"
|
142
|
-
text={characterCounter()}
|
143
|
-
/>
|
125
|
+
<Caption margin="none" size="xs" text={characterCounter()} />
|
144
126
|
)
|
145
127
|
)}
|
146
128
|
</div>
|
@@ -3,16 +3,16 @@ import PbEnhancedElement from '../pb_enhanced_element'
|
|
3
3
|
export default class PbTextarea extends PbEnhancedElement {
|
4
4
|
style: {[key: string]: string}
|
5
5
|
scrollHeight: string
|
6
|
-
static get selector()
|
6
|
+
static get selector() {
|
7
7
|
return '.resize_auto textarea'
|
8
8
|
}
|
9
9
|
|
10
|
-
onInput()
|
10
|
+
onInput() {
|
11
11
|
this.style.height = 'auto'
|
12
12
|
this.style.height = (this.scrollHeight) + 'px'
|
13
13
|
}
|
14
14
|
|
15
|
-
connect()
|
15
|
+
connect() {
|
16
16
|
this.element.setAttribute('style', 'height:' + (this.element.scrollHeight) + 'px;overflow-y:hidden;')
|
17
17
|
this.element.addEventListener('input', this.onInput, false)
|
18
18
|
}
|
@@ -24,7 +24,7 @@ type TimeProps = {
|
|
24
24
|
unstyled?: boolean;
|
25
25
|
} & GlobalProps
|
26
26
|
|
27
|
-
const Time = (props: TimeProps)
|
27
|
+
const Time = (props: TimeProps) => {
|
28
28
|
const {
|
29
29
|
align,
|
30
30
|
className,
|
@@ -47,8 +47,8 @@ const Time = (props: TimeProps): React.ReactElement => {
|
|
47
47
|
|
48
48
|
return (
|
49
49
|
<div
|
50
|
-
|
51
|
-
|
50
|
+
{...htmlProps}
|
51
|
+
className={classes}
|
52
52
|
>
|
53
53
|
{showIcon && (
|
54
54
|
unstyled
|
@@ -36,7 +36,7 @@ const dateTimeIso = (dateValue: Date) => {
|
|
36
36
|
return DateTime.toIso(dateValue)
|
37
37
|
}
|
38
38
|
|
39
|
-
const TimeRangeInline = (props: TimeRangeInlineProps)
|
39
|
+
const TimeRangeInline = (props: TimeRangeInlineProps) => {
|
40
40
|
const {
|
41
41
|
aria = {},
|
42
42
|
className,
|
@@ -26,7 +26,7 @@ const TimelineItem = ({
|
|
26
26
|
iconColor = 'default',
|
27
27
|
lineStyle = 'solid',
|
28
28
|
...props
|
29
|
-
}: ItemProps)
|
29
|
+
}: ItemProps) => {
|
30
30
|
const timelineItemCss = buildCss('pb_timeline_item_kit', lineStyle)
|
31
31
|
|
32
32
|
const htmlProps = buildHtmlProps(htmlOptions)
|
@@ -27,7 +27,7 @@ const Timeline = ({
|
|
27
27
|
orientation = 'horizontal',
|
28
28
|
showDate = false,
|
29
29
|
...props
|
30
|
-
}: TimelineProps)
|
30
|
+
}: TimelineProps) => {
|
31
31
|
const ariaProps = buildAriaProps(aria)
|
32
32
|
const dataProps = buildDataProps(data)
|
33
33
|
const htmlProps = buildHtmlProps(htmlOptions)
|
@@ -18,7 +18,7 @@ type TitleDetailProps = {
|
|
18
18
|
title: string,
|
19
19
|
} & GlobalProps
|
20
20
|
|
21
|
-
const TitleDetail = (props: TitleDetailProps)
|
21
|
+
const TitleDetail = (props: TitleDetailProps) => {
|
22
22
|
const {
|
23
23
|
align = "left",
|
24
24
|
aria = {},
|
@@ -37,19 +37,19 @@ const TitleDetail = (props: TitleDetailProps): React.ReactElement => {
|
|
37
37
|
|
38
38
|
return (
|
39
39
|
<div
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
40
|
+
{...ariaProps}
|
41
|
+
{...dataProps}
|
42
|
+
{...htmlProps}
|
43
|
+
className={classnames(pbCss, globalProps(props), className)}
|
44
|
+
id={id}
|
45
45
|
>
|
46
46
|
<Title
|
47
|
-
|
48
|
-
|
47
|
+
size={4}
|
48
|
+
text={title}
|
49
49
|
/>
|
50
50
|
<Body
|
51
|
-
|
52
|
-
|
51
|
+
color="light"
|
52
|
+
text={detail}
|
53
53
|
/>
|
54
54
|
</div>
|
55
55
|
)
|
@@ -50,8 +50,8 @@ const Tooltip = forwardRef((props: TooltipProps, ref: ForwardedRef<unknown>): Re
|
|
50
50
|
...rest
|
51
51
|
} = props
|
52
52
|
|
53
|
-
const dataProps: { [key: string]:
|
54
|
-
const ariaProps: { [key: string]:
|
53
|
+
const dataProps: { [key: string]: any } = buildDataProps(data)
|
54
|
+
const ariaProps: { [key: string]: any } = buildAriaProps(aria)
|
55
55
|
const htmlProps = buildHtmlProps(htmlOptions)
|
56
56
|
|
57
57
|
const css = classnames(
|
@@ -52,7 +52,7 @@ const TreemapChart = ({
|
|
52
52
|
tooltipHtml = '<span style="font-weight: bold; color:{point.color};">●</span>{point.name}: <b>{point.value}</b>',
|
53
53
|
type = "treemap",
|
54
54
|
...props
|
55
|
-
}: TreemapChartProps)
|
55
|
+
}: TreemapChartProps) => {
|
56
56
|
|
57
57
|
const ariaProps = buildAriaProps(aria)
|
58
58
|
const dataProps = buildDataProps(data)
|
@@ -98,6 +98,7 @@ const TreemapChart = ({
|
|
98
98
|
const [options, setOptions] = useState({});
|
99
99
|
|
100
100
|
useEffect(() => {
|
101
|
+
|
101
102
|
setOptions(merge(staticOptions, customOptions));
|
102
103
|
}, [chartData]);
|
103
104
|
|