playbook_ui 14.9.0.pre.alpha.pbntr700newresettodefaultprop4736 → 14.9.0.pre.alpha.play1742globalheightfixes4766
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.tsx +61 -17
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_pagination.jsx +50 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_pagination.md +1 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_pagination_with_props.jsx +57 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/_advanced_table_pagination_with_props.md +5 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/advanced_table_pagination_mock_data.json +5600 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/example.yml +2 -0
- data/app/pb_kits/playbook/pb_advanced_table/docs/index.js +2 -0
- data/app/pb_kits/playbook/pb_date_picker/date_picker.rb +0 -5
- data/app/pb_kits/playbook/pb_date_picker/date_picker_helper.ts +0 -10
- data/app/pb_kits/playbook/pb_date_picker/docs/example.yml +0 -1
- data/app/pb_kits/playbook/pb_drawer/_drawer.tsx +2 -2
- data/app/pb_kits/playbook/pb_form/docs/_form_form_with.html.erb +1 -2
- data/app/pb_kits/playbook/pb_layout/_layout.tsx +30 -11
- data/app/pb_kits/playbook/pb_pagination/_pagination.tsx +2 -2
- data/dist/chunks/{_typeahead-DU1QgR52.js → _typeahead-B8fkIeXA.js} +1 -1
- data/dist/chunks/{_weekday_stacked-BLOmRNnB.js → _weekday_stacked-DjRTXEi-.js} +3 -3
- data/dist/chunks/{lib-Ce7MLbJk.js → lib-SyD3buPZ.js} +1 -1
- data/dist/chunks/{pb_form_validation-kPWA1Z2g.js → pb_form_validation-Dt8UJgrJ.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/lib/playbook/version.rb +1 -1
- metadata +11 -6
@@ -18,3 +18,5 @@ examples:
|
|
18
18
|
- advanced_table_inline_row_loading: Inline Row Loading
|
19
19
|
- advanced_table_responsive: Responsive Tables
|
20
20
|
- advanced_table_custom_cell: Custom Components for Cells
|
21
|
+
- advanced_table_pagination: Pagination
|
22
|
+
- advanced_table_pagination_with_props: Pagination Props
|
@@ -10,3 +10,5 @@ export { default as AdvancedTableTableProps } from './_advanced_table_table_prop
|
|
10
10
|
export { default as AdvancedTableInlineRowLoading } from './_advanced_table_inline_row_loading.jsx'
|
11
11
|
export { default as AdvancedTableResponsive } from './_advanced_table_responsive.jsx'
|
12
12
|
export { default as AdvancedTableCustomCell } from './_advanced_table_custom_cell.jsx'
|
13
|
+
export { default as AdvancedTablePagination } from './_advanced_table_pagination.jsx'
|
14
|
+
export { default as AdvancedTablePaginationWithProps } from './_advanced_table_pagination_with_props.jsx'
|
@@ -40,8 +40,6 @@ module Playbook
|
|
40
40
|
default: {}
|
41
41
|
prop :input_data, type: Playbook::Props::HashProp,
|
42
42
|
default: {}
|
43
|
-
prop :input_options, type: Playbook::Props::HashProp,
|
44
|
-
default: {}
|
45
43
|
prop :max_date, type: Playbook::Props::String
|
46
44
|
prop :min_date, type: Playbook::Props::String
|
47
45
|
prop :name, type: Playbook::Props::String
|
@@ -57,8 +55,6 @@ module Playbook
|
|
57
55
|
prop :position, type: Playbook::Props::String,
|
58
56
|
default: "auto"
|
59
57
|
prop :position_element, type: Playbook::Props::String
|
60
|
-
prop :reset_to_default, type: Playbook::Props::Boolean,
|
61
|
-
default: false
|
62
58
|
prop :scroll_container, type: Playbook::Props::String
|
63
59
|
prop :selection_type, type: Playbook::Props::Enum,
|
64
60
|
values: %w[week month quickpick none],
|
@@ -102,7 +98,6 @@ module Playbook
|
|
102
98
|
plugins: plugins,
|
103
99
|
position: position,
|
104
100
|
positionElement: position_element,
|
105
|
-
resetToDefault: reset_to_default,
|
106
101
|
required: required,
|
107
102
|
selectionType: selection_type,
|
108
103
|
showTimezone: show_timezone,
|
@@ -24,11 +24,9 @@ type DatePickerConfig = {
|
|
24
24
|
required: boolean,
|
25
25
|
hideIcon?: boolean;
|
26
26
|
inLine?: boolean,
|
27
|
-
inputValue: string,
|
28
27
|
onChange: (dateStr: string, selectedDates: Date[]) => void,
|
29
28
|
selectionType?: "month" | "week" | "quickpick" | "",
|
30
29
|
onClose: (dateStr: Date[] | string, selectedDates: Date[] | string) => void,
|
31
|
-
resetToDefault?: boolean,
|
32
30
|
showTimezone?: boolean,
|
33
31
|
staticPosition: boolean,
|
34
32
|
thisRangesEndToday?: boolean,
|
@@ -52,7 +50,6 @@ const datePickerHelper = (config: DatePickerConfig, scrollContainer: string | HT
|
|
52
50
|
disableWeekdays,
|
53
51
|
enableTime,
|
54
52
|
format,
|
55
|
-
inputValue,
|
56
53
|
maxDate,
|
57
54
|
minDate,
|
58
55
|
mode,
|
@@ -62,7 +59,6 @@ const datePickerHelper = (config: DatePickerConfig, scrollContainer: string | HT
|
|
62
59
|
plugins,
|
63
60
|
position = "auto",
|
64
61
|
positionElement,
|
65
|
-
resetToDefault,
|
66
62
|
required,
|
67
63
|
selectionType,
|
68
64
|
showTimezone,
|
@@ -246,12 +242,6 @@ const datePickerHelper = (config: DatePickerConfig, scrollContainer: string | HT
|
|
246
242
|
picker.changeYear(Number(e.target.value))
|
247
243
|
})
|
248
244
|
|
249
|
-
// add data atrribute for reset to default
|
250
|
-
const element = document.querySelector(`#${pickerId}`);
|
251
|
-
if (resetToDefault && defaultDate && element) {
|
252
|
-
element.setAttribute("data-pb-date-picker", defaultDate?.toString());
|
253
|
-
}
|
254
|
-
|
255
245
|
// Reverse month and year dropdown reset on form.reset()
|
256
246
|
if (picker.input.form) {
|
257
247
|
picker.input.form.addEventListener('reset', () => {
|
@@ -287,7 +287,6 @@ const Drawer = (props: DrawerProps): React.ReactElement => {
|
|
287
287
|
{...ariaProps}
|
288
288
|
{...dataProps}
|
289
289
|
{...htmlProps}
|
290
|
-
style={dynamicInlineProps}
|
291
290
|
className={classnames(drawerClassNames.base, {
|
292
291
|
[drawerClassNames.afterOpen]:
|
293
292
|
animationState === "afterOpen",
|
@@ -296,6 +295,7 @@ const Drawer = (props: DrawerProps): React.ReactElement => {
|
|
296
295
|
})}
|
297
296
|
id={id}
|
298
297
|
onClick={(e) => e.stopPropagation()}
|
298
|
+
style={dynamicInlineProps}
|
299
299
|
>
|
300
300
|
{children}
|
301
301
|
</div>
|
@@ -306,7 +306,6 @@ const Drawer = (props: DrawerProps): React.ReactElement => {
|
|
306
306
|
{...dataProps}
|
307
307
|
{...htmlProps}
|
308
308
|
className={classes}
|
309
|
-
style={dynamicInlineProps}
|
310
309
|
>
|
311
310
|
{isModalVisible && (
|
312
311
|
<div
|
@@ -327,6 +326,7 @@ const Drawer = (props: DrawerProps): React.ReactElement => {
|
|
327
326
|
animationState === "beforeClose",
|
328
327
|
})}
|
329
328
|
onClick={(e) => e.stopPropagation()}
|
329
|
+
style={dynamicInlineProps}
|
330
330
|
>
|
331
331
|
{children}
|
332
332
|
</div>
|
@@ -45,12 +45,11 @@
|
|
45
45
|
class: "checkbox-class"
|
46
46
|
%>
|
47
47
|
<%= form.date_picker :example_date_picker_1, props: { label: true } %>
|
48
|
-
<%= form.date_picker :example_date_picker_2, props: { label: true, reset_to_default: true, default_date: "06/09/1994" } %>
|
49
48
|
<%= form.star_rating_field :example_star_rating, props: { variant: "interactive", label: true } %>
|
50
49
|
|
51
50
|
<%= form.actions do |action| %>
|
52
51
|
<%= action.submit %>
|
53
|
-
<%= action.button props: { type: "reset", text: "Cancel", variant: "secondary"
|
52
|
+
<%= action.button props: { type: "reset", text: "Cancel", variant: "secondary" } %>
|
54
53
|
<% end %>
|
55
54
|
<% end %>
|
56
55
|
|
@@ -24,34 +24,37 @@ type LayoutPropTypes = {
|
|
24
24
|
type LayoutSideProps = {
|
25
25
|
children: React.ReactNode[] | React.ReactNode,
|
26
26
|
className?: string,
|
27
|
-
}
|
27
|
+
} & GlobalProps
|
28
28
|
|
29
29
|
type LayoutBodyProps = {
|
30
30
|
children: React.ReactNode[] | React.ReactNode,
|
31
31
|
className?: string,
|
32
|
-
}
|
32
|
+
} & GlobalProps
|
33
33
|
|
34
34
|
type LayoutItemProps = {
|
35
35
|
children: React.ReactNode[] | React.ReactNode,
|
36
36
|
className?: string,
|
37
37
|
size?: "sm" | "md" | "lg"
|
38
|
-
}
|
38
|
+
} & GlobalProps
|
39
39
|
|
40
40
|
type LayoutHeaderProps = {
|
41
41
|
children: React.ReactNode[] | React.ReactNode,
|
42
42
|
className?: string,
|
43
|
-
}
|
43
|
+
} & GlobalProps
|
44
44
|
|
45
45
|
type LayoutFooterProps = {
|
46
46
|
children: React.ReactNode[] | React.ReactNode,
|
47
47
|
className?: string,
|
48
|
-
}
|
48
|
+
} & GlobalProps
|
49
49
|
|
50
|
-
// Side component
|
51
50
|
const Side = (props: LayoutSideProps) => {
|
52
51
|
const { children, className } = props
|
52
|
+
const dynamicInlineProps = globalInlineProps(props)
|
53
53
|
return (
|
54
|
-
<div
|
54
|
+
<div
|
55
|
+
className={classnames('layout_sidebar', globalProps(props), className)}
|
56
|
+
style={dynamicInlineProps}
|
57
|
+
>
|
55
58
|
{children}
|
56
59
|
</div>
|
57
60
|
)
|
@@ -60,8 +63,12 @@ const Side = (props: LayoutSideProps) => {
|
|
60
63
|
// Body component
|
61
64
|
const Body = (props: LayoutBodyProps) => {
|
62
65
|
const { children, className } = props
|
66
|
+
const dynamicInlineProps = globalInlineProps(props)
|
63
67
|
return (
|
64
|
-
<div
|
68
|
+
<div
|
69
|
+
className={classnames('layout_body', globalProps(props), className)}
|
70
|
+
style={dynamicInlineProps}
|
71
|
+
>
|
65
72
|
{children}
|
66
73
|
</div>
|
67
74
|
)
|
@@ -71,8 +78,12 @@ const Body = (props: LayoutBodyProps) => {
|
|
71
78
|
const Item = (props: LayoutItemProps) => {
|
72
79
|
const { children, className, size = 'sm' } = props
|
73
80
|
const sizeClass = `size_${size}`
|
81
|
+
const dynamicInlineProps = globalInlineProps(props)
|
74
82
|
return (
|
75
|
-
<div
|
83
|
+
<div
|
84
|
+
className={classnames('layout_item', sizeClass, globalProps(props), className)}
|
85
|
+
style={dynamicInlineProps}
|
86
|
+
>
|
76
87
|
{children}
|
77
88
|
</div>
|
78
89
|
)
|
@@ -81,8 +92,12 @@ const Item = (props: LayoutItemProps) => {
|
|
81
92
|
// Header component
|
82
93
|
const Header = (props: LayoutHeaderProps) => {
|
83
94
|
const { children, className } = props
|
95
|
+
const dynamicInlineProps = globalInlineProps(props)
|
84
96
|
return (
|
85
|
-
<div
|
97
|
+
<div
|
98
|
+
className={classnames('layout_header', globalProps(props), className)}
|
99
|
+
style={dynamicInlineProps}
|
100
|
+
>
|
86
101
|
{children}
|
87
102
|
</div>
|
88
103
|
)
|
@@ -91,8 +106,12 @@ const Header = (props: LayoutHeaderProps) => {
|
|
91
106
|
// Footer component
|
92
107
|
const Footer = (props: LayoutFooterProps) => {
|
93
108
|
const { children, className } = props
|
109
|
+
const dynamicInlineProps = globalInlineProps(props)
|
94
110
|
return (
|
95
|
-
<div
|
111
|
+
<div
|
112
|
+
className={classnames('layout_footer', globalProps(props), className)}
|
113
|
+
style={dynamicInlineProps}
|
114
|
+
>
|
96
115
|
{children}
|
97
116
|
</div>
|
98
117
|
)
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import React, { useState } from "react";
|
2
2
|
import classnames from 'classnames'
|
3
|
-
import { globalProps } from '../utilities/globalProps'
|
3
|
+
import { GlobalProps, globalProps } from '../utilities/globalProps'
|
4
4
|
import { buildAriaProps, buildCss, buildDataProps, buildHtmlProps } from '../utilities/props'
|
5
5
|
import Icon from '../pb_icon/_icon';
|
6
6
|
|
@@ -14,7 +14,7 @@ type PaginationProps = {
|
|
14
14
|
onChange?: (pageNumber: number) => void;
|
15
15
|
range?: number;
|
16
16
|
total?: number;
|
17
|
-
};
|
17
|
+
} & GlobalProps;
|
18
18
|
|
19
19
|
const Pagination = ( props: PaginationProps) => {
|
20
20
|
const {
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import{jsx as jsx$1,Fragment,jsxs}from"react/jsx-runtime";import*as React from"react";import React__default,{createContext,useReducer,useEffect,useMemo,useContext,createElement,useState,useRef,forwardRef,useLayoutEffect,useCallback,useImperativeHandle,Component,Fragment as Fragment$1}from"react";import{q as getDefaultExportFromCjs,w as filter,x as omit,j as getAllIcons,y as get,n as commonjsGlobal,v as colors$1,s as highchartsTheme,z as merge,r as highchartsDarkTheme,A as useCollapsible,B as getAugmentedNamespace,C as createPopper,E as uniqueId,F as typography,G as cloneDeep,H as isString}from"./lib-
|
1
|
+
import{jsx as jsx$1,Fragment,jsxs}from"react/jsx-runtime";import*as React from"react";import React__default,{createContext,useReducer,useEffect,useMemo,useContext,createElement,useState,useRef,forwardRef,useLayoutEffect,useCallback,useImperativeHandle,Component,Fragment as Fragment$1}from"react";import{q as getDefaultExportFromCjs,w as filter,x as omit,j as getAllIcons,y as get,n as commonjsGlobal,v as colors$1,s as highchartsTheme,z as merge,r as highchartsDarkTheme,A as useCollapsible,B as getAugmentedNamespace,C as createPopper,E as uniqueId,F as typography,G as cloneDeep,H as isString}from"./lib-SyD3buPZ.js";import*as ReactDOM from"react-dom";import ReactDOM__default,{createPortal}from"react-dom";import{TrixEditor}from"react-trix";import Trix from"trix";import require$$0 from"react-is";const initialState={items:[],dragData:{id:"",initialGroup:""},isDragging:"",activeContainer:""};const reducer=(state,action)=>{switch(action.type){case"SET_ITEMS":return Object.assign(Object.assign({},state),{items:action.payload});case"SET_DRAG_DATA":return Object.assign(Object.assign({},state),{dragData:action.payload});case"SET_IS_DRAGGING":return Object.assign(Object.assign({},state),{isDragging:action.payload});case"SET_ACTIVE_CONTAINER":return Object.assign(Object.assign({},state),{activeContainer:action.payload});case"CHANGE_CATEGORY":return Object.assign(Object.assign({},state),{items:state.items.map((item=>item.id===action.payload.itemId?Object.assign(Object.assign({},item),{container:action.payload.container}):item))});case"REORDER_ITEMS":{const{dragId:dragId,targetId:targetId}=action.payload;const newItems=[...state.items];const draggedItem=newItems.find((item=>item.id===dragId));const draggedIndex=newItems.indexOf(draggedItem);const targetIndex=newItems.findIndex((item=>item.id===targetId));newItems.splice(draggedIndex,1);newItems.splice(targetIndex,0,draggedItem);return Object.assign(Object.assign({},state),{items:newItems})}default:return state}};const DragContext=createContext({});const DraggableContext=()=>useContext(DragContext);const DraggableProvider=({children:children,initialItems:initialItems,onReorder:onReorder,onDragStart:onDragStart,onDragEnter:onDragEnter,onDragEnd:onDragEnd,onDrop:onDrop,onDragOver:onDragOver})=>{const[state,dispatch]=useReducer(reducer,initialState);useEffect((()=>{dispatch({type:"SET_ITEMS",payload:initialItems})}),[initialItems]);useEffect((()=>{onReorder(state.items)}),[state.items]);const handleDragStart=(id,container)=>{dispatch({type:"SET_DRAG_DATA",payload:{id:id,initialGroup:container}});dispatch({type:"SET_IS_DRAGGING",payload:id});if(onDragStart)onDragStart(id,container)};const handleDragEnter=(id,container)=>{if(state.dragData.id!==id){dispatch({type:"REORDER_ITEMS",payload:{dragId:state.dragData.id,targetId:id}});dispatch({type:"SET_DRAG_DATA",payload:{id:state.dragData.id,initialGroup:container}})}if(onDragEnter)onDragEnter(id,container)};const handleDragEnd=()=>{dispatch({type:"SET_IS_DRAGGING",payload:""});dispatch({type:"SET_ACTIVE_CONTAINER",payload:""});if(onDragEnd)onDragEnd()};const changeCategory=(itemId,container)=>{dispatch({type:"CHANGE_CATEGORY",payload:{itemId:itemId,container:container}})};const handleDrop=container=>{dispatch({type:"SET_IS_DRAGGING",payload:""});dispatch({type:"SET_ACTIVE_CONTAINER",payload:""});changeCategory(state.dragData.id,container);if(onDrop)onDrop(container)};const handleDragOver=(e,container)=>{e.preventDefault();dispatch({type:"SET_ACTIVE_CONTAINER",payload:container});if(onDragOver)onDragOver(e,container)};const contextValue=useMemo((()=>({items:state.items,dragData:state.dragData,isDragging:state.isDragging,activeContainer:state.activeContainer,handleDragStart:handleDragStart,handleDragEnter:handleDragEnter,handleDragEnd:handleDragEnd,handleDrop:handleDrop,handleDragOver:handleDragOver})),[state]);return jsx$1(DragContext.Provider,Object.assign({value:contextValue},{children:children}),void 0)};var classnames$1={exports:{}};
|
2
2
|
/*!
|
3
3
|
Copyright (c) 2018 Jed Watson.
|
4
4
|
Licensed under the MIT License (MIT), see
|