@ballistix.digital/react-components 0.4.113 → 0.4.114

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.
package/dist/index.d.ts CHANGED
@@ -12,7 +12,7 @@ import { Option, SelectValue } from 'react-tailwindcss-select/dist/components/ty
12
12
  export { fromSelectMenuOptionToStringValue } from 'helpers/format';
13
13
  import { FormikProps, FormikValues } from 'formik';
14
14
 
15
- declare const base$l: {
15
+ declare const base$m: {
16
16
  loading: string;
17
17
  spinner: string;
18
18
  empty: string;
@@ -20,7 +20,7 @@ declare const base$l: {
20
20
  container: string;
21
21
  indicator: string;
22
22
  };
23
- type TAvatarElementStyles = DeepPartialType$1<typeof base$l>;
23
+ type TAvatarElementStyles = DeepPartialType$1<typeof base$m>;
24
24
 
25
25
  type TProps$f = {
26
26
  src?: string | undefined;
@@ -36,12 +36,12 @@ type TProps$f = {
36
36
  };
37
37
  declare const AvatarElement: FC<TProps$f>;
38
38
 
39
- declare const base$k: {
39
+ declare const base$l: {
40
40
  container: string;
41
41
  indicator: string;
42
42
  button: string;
43
43
  };
44
- type TBadgeElementStyles = DeepPartialType$1<typeof base$k>;
44
+ type TBadgeElementStyles = DeepPartialType$1<typeof base$l>;
45
45
 
46
46
  type TProps$e = {
47
47
  children: string | ReactNode;
@@ -70,21 +70,21 @@ type TButtonElementProps = {
70
70
  };
71
71
  declare const ButtonElement: FC<TButtonElementProps>;
72
72
 
73
- declare const base$j: {
73
+ declare const base$k: {
74
74
  container: string;
75
75
  content: string;
76
76
  icon: string;
77
77
  spinner: string;
78
78
  };
79
- type TButtonElementStyles = DeepPartialType$1<typeof base$j>;
79
+ type TButtonElementStyles = DeepPartialType$1<typeof base$k>;
80
80
 
81
- declare const base$i: {
81
+ declare const base$j: {
82
82
  container: string;
83
83
  firstButton: string;
84
84
  button: string;
85
85
  lastButton: string;
86
86
  };
87
- type TButtonGroupElementStyles = DeepPartialType$1<typeof base$i>;
87
+ type TButtonGroupElementStyles = DeepPartialType$1<typeof base$j>;
88
88
 
89
89
  type TProps$d = {
90
90
  children: ReactElement[];
@@ -92,14 +92,14 @@ type TProps$d = {
92
92
  };
93
93
  declare const ButtonGroupElement: FC<TProps$d>;
94
94
 
95
- declare const base$h: {
95
+ declare const base$i: {
96
96
  container: string;
97
97
  button: string;
98
98
  compact: string;
99
99
  dots: string;
100
100
  items: string;
101
101
  };
102
- type TDropdownElementStyles = DeepPartialType$1<typeof base$h>;
102
+ type TDropdownElementStyles = DeepPartialType$1<typeof base$i>;
103
103
 
104
104
  type TProps$c = {
105
105
  children: ReactElement | ReactElement[];
@@ -155,7 +155,7 @@ type TInputGroupFormProps = {
155
155
  };
156
156
  declare const InputGroupForm: FC<TInputGroupFormProps>;
157
157
 
158
- declare const base$g: {
158
+ declare const base$h: {
159
159
  container: string;
160
160
  head: string;
161
161
  body: string;
@@ -168,13 +168,13 @@ declare const base$g: {
168
168
  description: string;
169
169
  error: string;
170
170
  };
171
- type TInputGroupStyles = DeepPartialType$1<typeof base$g>;
171
+ type TInputGroupStyles = DeepPartialType$1<typeof base$h>;
172
172
 
173
- declare const base$f: {
173
+ declare const base$g: {
174
174
  container: string;
175
175
  content: string;
176
176
  };
177
- type TContainerLayoutStyles = DeepPartialType$1<typeof base$f>;
177
+ type TContainerLayoutStyles = DeepPartialType$1<typeof base$g>;
178
178
 
179
179
  type TProps$a = {
180
180
  children: ReactNode;
@@ -183,14 +183,14 @@ type TProps$a = {
183
183
  };
184
184
  declare const ContainerLayout: FC<TProps$a>;
185
185
 
186
- declare const base$e: {
186
+ declare const base$f: {
187
187
  container: string;
188
188
  head: string;
189
189
  line: string;
190
190
  body: string;
191
191
  content: string;
192
192
  };
193
- type TDividerLayoutStyles = DeepPartialType$1<typeof base$e>;
193
+ type TDividerLayoutStyles = DeepPartialType$1<typeof base$f>;
194
194
 
195
195
  type TProps$9 = {
196
196
  children?: ReactNode;
@@ -199,12 +199,12 @@ type TProps$9 = {
199
199
  };
200
200
  declare const DividerLayout: FC<TProps$9>;
201
201
 
202
- declare const base$d: {
202
+ declare const base$e: {
203
203
  container: string;
204
204
  list: string;
205
205
  item: string;
206
206
  };
207
- type TListContainerLayoutStyles = DeepPartialType$1<typeof base$d>;
207
+ type TListContainerLayoutStyles = DeepPartialType$1<typeof base$e>;
208
208
 
209
209
  type TProps$8 = {
210
210
  children: ReactElement | ReactElement[];
@@ -213,14 +213,14 @@ type TProps$8 = {
213
213
  };
214
214
  declare const ListContainerLayout: FC<TProps$8>;
215
215
 
216
- declare const base$c: {
216
+ declare const base$d: {
217
217
  container: string;
218
218
  figure: string;
219
219
  svg: string;
220
220
  title: string;
221
221
  paragraph: string;
222
222
  };
223
- type TMediaObjectLayoutStyles = DeepPartialType$1<typeof base$c>;
223
+ type TMediaObjectLayoutStyles = DeepPartialType$1<typeof base$d>;
224
224
 
225
225
  type TProps$7 = {
226
226
  title: string;
@@ -231,11 +231,11 @@ type TProps$7 = {
231
231
  };
232
232
  declare const MediaObjectLayout: FC<TProps$7>;
233
233
 
234
- declare const base$b: {
234
+ declare const base$c: {
235
235
  container: string;
236
236
  section: string;
237
237
  };
238
- type TPanelLayoutStyles = DeepPartialType$1<typeof base$b>;
238
+ type TPanelLayoutStyles = DeepPartialType$1<typeof base$c>;
239
239
 
240
240
  type TContainerProps$2 = {
241
241
  children: ReactNode;
@@ -280,7 +280,7 @@ type TTableListProps$1<TData> = {
280
280
  hasStickyHeader?: boolean;
281
281
  hasVerticalSeparators?: boolean;
282
282
  areControlsVisible?: boolean;
283
- styles?: TTableListStyles & {
283
+ styles?: TTableListStyles$1 & {
284
284
  components: {
285
285
  buttonElement: TButtonElementStyles$1;
286
286
  dropdownElement: TDropdownElementStyles$1;
@@ -296,7 +296,7 @@ type TTableListProps$1<TData> = {
296
296
  };
297
297
  declare const TableList: FC<TTableListProps$1<TData$1>>;
298
298
 
299
- declare const base$a: {
299
+ declare const base$b: {
300
300
  container: string;
301
301
  head: {
302
302
  container: string;
@@ -350,7 +350,7 @@ declare const base$a: {
350
350
  };
351
351
  };
352
352
  };
353
- type TTableListStyles = DeepPartialType$1<typeof base$a>;
353
+ type TTableListStyles$1 = DeepPartialType$1<typeof base$b>;
354
354
 
355
355
  type TData = any;
356
356
  type VisibilityState = {
@@ -386,9 +386,47 @@ type TTableListProps<TData> = {
386
386
  head?: (params: Params) => ReactNode;
387
387
  foot?: (params: Params) => ReactNode;
388
388
  onChange?: (params: Params) => void;
389
+ styles?: TTableListStyles;
389
390
  };
390
391
  declare const TableList2: FC<TTableListProps<TData>>;
391
392
 
393
+ declare const base$a: {
394
+ container: string;
395
+ head: string;
396
+ body: {
397
+ container: string;
398
+ wrapper: string;
399
+ content: string;
400
+ styleWrapper: string;
401
+ table: {
402
+ container: string;
403
+ head: {
404
+ container: string;
405
+ row: string;
406
+ cell: string;
407
+ checkbox: string;
408
+ };
409
+ body: {
410
+ container: string;
411
+ row: string;
412
+ cell: string;
413
+ checkbox: string;
414
+ indicator: string;
415
+ };
416
+ };
417
+ };
418
+ foot: string;
419
+ sortIndicator: {
420
+ container: string;
421
+ isSorted: string;
422
+ isNotSorted: string;
423
+ icon: {
424
+ container: string;
425
+ };
426
+ };
427
+ };
428
+ type TTableListStyles = DeepPartialType$1<typeof base$a>;
429
+
392
430
  declare const base$9: {
393
431
  container: string;
394
432
  list: string;
@@ -922,4 +960,4 @@ declare const base: {
922
960
  };
923
961
  type TCheckboxInputGroupFormStyles = DeepPartialType$1<typeof base>;
924
962
 
925
- export { AvatarElement, BadgeElement, BreadcrumbsNavigation, ButtonElement, ButtonGroupElement, CheckboxInputGroupForm as CheckboxInputFormGroup, ContainerLayout, DateMenuForm, DividerLayout, DropdownElement, IconElement, InputGroupForm, ListContainerLayout, MediaObjectLayout, ModalOverlay, NotificationOverlay, PagePaginationNavigation, LayoutPanel as PanelLayout, PanelPaginationNavigation, SelectMenuForm, SlideOverOverlay, type TButtonElementProps, type TCheckboxInputGroupFormProps, type TCheckboxInputGroupFormStyles, type TDateMenuFormProps, type TDateMenuFormStyles, type TInputGroupFormProps, type TInputGroupStyles, type TModalOverlayProps, type TSelectMenuFormProps, type TSelectMenuFormStyles, type TTableListProps as TTableList2Props, type TTableListProps$1 as TTableListProps, type TTableListStyles, TabNavigation, TableColumnOptionsCustom, TableExcelExportCustom as TableExportCustom, TableList, TableList2, VerticalNavigation };
963
+ export { AvatarElement, BadgeElement, BreadcrumbsNavigation, ButtonElement, ButtonGroupElement, CheckboxInputGroupForm as CheckboxInputFormGroup, ContainerLayout, DateMenuForm, DividerLayout, DropdownElement, IconElement, InputGroupForm, ListContainerLayout, MediaObjectLayout, ModalOverlay, NotificationOverlay, PagePaginationNavigation, LayoutPanel as PanelLayout, PanelPaginationNavigation, SelectMenuForm, SlideOverOverlay, type TButtonElementProps, type TCheckboxInputGroupFormProps, type TCheckboxInputGroupFormStyles, type TDateMenuFormProps, type TDateMenuFormStyles, type TInputGroupFormProps, type TInputGroupStyles, type TModalOverlayProps, type TSelectMenuFormProps, type TSelectMenuFormStyles, type TTableListProps as TTableList2Props, type TTableListProps$1 as TTableListProps, type TTableListStyles$1 as TTableListStyles, TabNavigation, TableColumnOptionsCustom, TableExcelExportCustom as TableExportCustom, TableList, TableList2, VerticalNavigation };
package/dist/index.esm.js CHANGED
@@ -118,7 +118,7 @@ var AvatarElement = function (props) {
118
118
  return (jsx("a", { href: url, children: jsxs("div", { className: "flex items-center", children: [jsxs("span", { className: "flex items-center justify-center", children: [jsx("div", { className: styles.container, style: { backgroundImage: "url(".concat(src, ")") } }), status && jsx("span", { className: styles.indicator })] }), children && jsx("div", { className: "ml-3", children: children })] }) }));
119
119
  };
120
120
 
121
- var base$l = {
121
+ var base$m = {
122
122
  loading: 'inline-block relative overflow-hidden bg-gray-50 flex items-center justify-center',
123
123
  spinner: 'w-5 h-5 animate-spin text-gray-400',
124
124
  empty: 'inline-block relative overflow-hidden bg-gray-50 text-red-400',
@@ -197,7 +197,7 @@ var blocked = {
197
197
  indicator: 'bg-red-400',
198
198
  };
199
199
  var styles$o = {
200
- base: base$l,
200
+ base: base$m,
201
201
  xs: xs$4,
202
202
  sm: sm$5,
203
203
  md: md$4,
@@ -230,7 +230,7 @@ var BadgeElement = function (props) {
230
230
  return (jsxs("span", { className: styles.container, children: [type === 'indicator' && (jsx("svg", { className: styles.indicator, fill: "currentColor", viewBox: "0 0 8 8", children: jsx("circle", { cx: 4, cy: 4, r: 3 }) })), children, type === 'close' && (jsxs("button", { type: "button", className: styles.button, onClick: onClose, children: [jsx("span", { className: "sr-only", children: "Remove large option" }), xIcon] }))] }));
231
231
  };
232
232
 
233
- var base$k = {
233
+ var base$l = {
234
234
  container: 'inline-flex items-center font-medium py-0.5',
235
235
  indicator: '',
236
236
  button: 'flex-shrink-0 ml-0.5 h-4 w-4 rounded-full inline-flex items-center justify-center focus:text-white focus:outline-none',
@@ -314,7 +314,7 @@ var loading$1 = {
314
314
  container: 'cursor-progress',
315
315
  };
316
316
  var styles$n = {
317
- base: base$k,
317
+ base: base$l,
318
318
  normal: normal$5,
319
319
  indicator: indicator,
320
320
  close: close,
@@ -383,7 +383,7 @@ var ButtonElement = function (props) {
383
383
  return (jsxs("button", { type: htmlType, className: styles.container, disabled: isDisabled || status !== 'idle', onClick: onClick, ref: innerRef, children: [status === 'idle' && children, status === 'loading' && (jsxs("div", { className: styles.content, children: [jsx(IconElement, { type: "regular", accessor: "spinner", className: styles.spinner }), jsx("div", { children: children })] })), status === 'error' && (jsxs("div", { className: styles.content, children: [jsx(IconElement, { type: "regular", accessor: "circle-exclamation", className: styles.icon }), jsx("div", { children: children })] })), status === 'success' && (jsxs("div", { className: styles.content, children: [jsx(IconElement, { type: "regular", accessor: "circle-check", className: styles.icon }), jsx("div", { children: children })] }))] }));
384
384
  };
385
385
 
386
- var base$j = {
386
+ var base$k = {
387
387
  container: 'inline-flex items-center border border-transparent font-medium focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-primary-500 duration-300',
388
388
  content: 'flex gap-2',
389
389
  icon: '',
@@ -436,7 +436,7 @@ var disabled$4 = {
436
436
  container: '!opacity-20 !cursor-not-allowed',
437
437
  };
438
438
  var styles$m = {
439
- base: base$j,
439
+ base: base$k,
440
440
  primary: primary,
441
441
  secondary: secondary,
442
442
  outline: outline,
@@ -478,14 +478,14 @@ var ButtonGroupElement = function (props) {
478
478
  }) }));
479
479
  };
480
480
 
481
- var base$i = {
481
+ var base$j = {
482
482
  container: 'relative z-0 inline-flex shadow-sm rounded-md',
483
483
  firstButton: 'relative inline-flex items-center px-4 py-2 rounded-l-md border border-gray-300 bg-white text-sm font-medium text-gray-700 hover:bg-gray-50 focus:z-10 focus:outline-none focus:ring-1 focus:ring-primary-500 focus:border-primary-500',
484
484
  button: '-ml-px relative inline-flex items-center px-4 py-2 border border-gray-300 bg-white text-sm font-medium text-gray-700 hover:bg-gray-50 focus:z-10 focus:outline-none focus:ring-1 focus:ring-primary-500 focus:border-primary-500',
485
485
  lastButton: '-ml-px relative inline-flex items-center px-4 py-2 rounded-r-md border border-gray-300 bg-white text-sm font-medium text-gray-700 hover:bg-gray-50 focus:z-10 focus:outline-none focus:ring-1 focus:ring-primary-500 focus:border-primary-500',
486
486
  };
487
487
  var styles$l = {
488
- base: base$i,
488
+ base: base$j,
489
489
  };
490
490
 
491
491
  var Container$3 = function (props) {
@@ -507,7 +507,7 @@ var DropdownElement = {
507
507
  Item: Menu.Item,
508
508
  };
509
509
 
510
- var base$h = {
510
+ var base$i = {
511
511
  container: 'inline-block text-left',
512
512
  button: 'inline-flex justify-center w-full rounded-md border border-gray-300 shadow-sm px-4 py-2 bg-white text-sm font-medium text-gray-700 hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-offset-gray-100 focus:ring-primary-500',
513
513
  compact: 'bg-gray-100 rounded-full flex items-center text-gray-400 hover:text-gray-600 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-offset-gray-100 focus:ring-primary-500',
@@ -529,7 +529,7 @@ var topRight = {
529
529
  items: 'origin-bottom-left left-0 bottom-0',
530
530
  };
531
531
  var styles$k = {
532
- base: base$h,
532
+ base: base$i,
533
533
  button: button,
534
534
  compact: compact,
535
535
  'bottom-left': bottomLeft,
@@ -558,10 +558,10 @@ var InputGroupForm = function (props) {
558
558
  var styles = handleGenerateStyle();
559
559
  var invalidIcon = (jsx(ExclamationCircleIcon, { className: "h-5 w-5 text-red-500", "aria-hidden": "true" }));
560
560
  return (jsxs("div", { className: styles.container, children: [jsxs("div", { className: styles.head, children: [label && (jsx("label", { htmlFor: name, className: styles.label, children: label })), !required && !isRequired && typeof label === 'string' && (jsx("span", { className: styles.hint, children: "Optional" })), required && required({ isRequired: isRequired })] }), jsxs("div", { className: styles.body, children: [leading && jsx("div", { className: styles.leading, children: leading }), !htmlType ||
561
- (htmlType !== 'area' && (jsx("input", { type: mask !== undefined ? 'text' : htmlType, ref: mask && ref, name: name, id: name, className: styles.input, placeholder: placeholder, defaultValue: isSolo ? value : undefined, value: isSolo ? undefined : value, min: min, max: max, maxLength: maxLength, disabled: isDisabled, onChange: onChange, onBlur: onBlur }))), htmlType === 'area' && (jsx("textarea", { rows: rows, name: name, id: name, className: toClassName(styles.input, htmlType === 'color' && 'h-10'), placeholder: placeholder, defaultValue: isSolo ? value : undefined, value: isSolo ? undefined : value, maxLength: maxLength, disabled: isDisabled, onChange: onChange, onBlur: onBlur })), type === 'floored' && (jsx("div", { className: "absolute inset-x-0 bottom-0 border-t border-gray-300 peer-focus:border-t-2 peer-focus:border-primary-600", "aria-hidden": "true" })), trailing && isValid && (jsx("div", { className: styles.trailing, children: trailing })), isTouched && !isValid && (jsx("div", { className: styles.trailing, children: invalidIcon }))] }), jsxs("div", { className: styles.foot, children: [description && !(error && isTouched) && (jsx("p", { className: styles.description, children: description })), error && isTouched && jsx("p", { className: styles.error, children: error })] })] }));
561
+ (htmlType !== 'area' && (jsx("input", { type: mask !== undefined ? 'text' : htmlType, ref: mask && ref, name: name, id: name, className: toClassName(styles.input, htmlType === 'color' && '!h-10'), placeholder: placeholder, defaultValue: isSolo ? value : undefined, value: isSolo ? undefined : value, min: min, max: max, maxLength: maxLength, disabled: isDisabled, onChange: onChange, onBlur: onBlur }))), htmlType === 'area' && (jsx("textarea", { rows: rows, name: name, id: name, className: styles.input, placeholder: placeholder, defaultValue: isSolo ? value : undefined, value: isSolo ? undefined : value, maxLength: maxLength, disabled: isDisabled, onChange: onChange, onBlur: onBlur })), type === 'floored' && (jsx("div", { className: "absolute inset-x-0 bottom-0 border-t border-gray-300 peer-focus:border-t-2 peer-focus:border-primary-600", "aria-hidden": "true" })), trailing && isValid && (jsx("div", { className: styles.trailing, children: trailing })), isTouched && !isValid && (jsx("div", { className: styles.trailing, children: invalidIcon }))] }), jsxs("div", { className: styles.foot, children: [description && !(error && isTouched) && (jsx("p", { className: styles.description, children: description })), error && isTouched && jsx("p", { className: styles.error, children: error })] })] }));
562
562
  };
563
563
 
564
- var base$g = {
564
+ var base$h = {
565
565
  container: '',
566
566
  head: 'flex justify-between',
567
567
  body: 'relative rounded-md',
@@ -625,7 +625,7 @@ var disabled$3 = {
625
625
  input: 'block w-full rounded-md border-0 text-gray-900 shadow-sm ring-1 ring-gray-300 placeholder:text-gray-400 focus:ring-2 focus:ring-inset focus:ring-primary-600 disabled:cursor-not-allowed disabled:bg-gray-50 disabled:text-gray-500 disabled:ring-gray-200',
626
626
  };
627
627
  var styles$j = {
628
- base: base$g,
628
+ base: base$h,
629
629
  leading: leading$2,
630
630
  trailing: trailing$2,
631
631
  normal: normal$4,
@@ -666,7 +666,7 @@ var ContainerLayout = function (props) {
666
666
  return handleGenerateComponent();
667
667
  };
668
668
 
669
- var base$f = {
669
+ var base$g = {
670
670
  container: '',
671
671
  content: '',
672
672
  };
@@ -681,7 +681,7 @@ var fill$1 = {
681
681
  container: 'max-w-7xl mx-auto sm:px-6 lg:px-8',
682
682
  };
683
683
  var styles$i = {
684
- base: base$f,
684
+ base: base$g,
685
685
  break: breakStyles,
686
686
  center: center$3,
687
687
  fill: fill$1,
@@ -702,7 +702,7 @@ var DividerLayout = function (props) {
702
702
  return (jsxs("div", { className: styles.container, children: [jsx("div", { className: styles.head, "aria-hidden": "true", children: jsx("div", { className: styles.line }) }), jsx("div", { className: styles.body, children: jsx("div", { className: styles.content, children: children }) })] }));
703
703
  };
704
704
 
705
- var base$e = {
705
+ var base$f = {
706
706
  container: 'relative',
707
707
  head: 'absolute inset-0 flex items-center',
708
708
  line: 'w-full border-t border-gray-300',
@@ -719,7 +719,7 @@ var right = {
719
719
  body: 'justify-end',
720
720
  };
721
721
  var styles$h = {
722
- base: base$e,
722
+ base: base$f,
723
723
  left: left,
724
724
  center: center$2,
725
725
  right: right,
@@ -742,7 +742,7 @@ var ListContainerLayout = function (props) {
742
742
  }) }) }));
743
743
  };
744
744
 
745
- var base$d = {
745
+ var base$e = {
746
746
  container: '',
747
747
  list: '',
748
748
  item: '',
@@ -774,7 +774,7 @@ var cardSticky = {
774
774
  item: 'bg-white shadow overflow-hidden px-4 py-4 sm:px-6 sm:rounded-md',
775
775
  };
776
776
  var styles$g = {
777
- base: base$d,
777
+ base: base$e,
778
778
  fill: fill,
779
779
  'fill-sticky': fillSticky,
780
780
  center: center$1,
@@ -807,7 +807,7 @@ var MediaObjectLayout = function (props) {
807
807
  return (jsxs("div", { className: styles.container, children: [jsx("div", { className: styles.figure, children: $svg }), jsxs("div", { children: [jsx("h4", { className: styles.title, children: title }), jsx("p", { className: styles.paragraph, children: paragraph })] })] }));
808
808
  };
809
809
 
810
- var base$c = {
810
+ var base$d = {
811
811
  container: '',
812
812
  figure: 'mr-4 flex-shrink-0',
813
813
  svg: 'h-16 w-16 border border-gray-300 bg-white text-gray-300',
@@ -863,7 +863,7 @@ var wideReversed = {
863
863
  svg: 'h-32 w-full sm:w-32',
864
864
  };
865
865
  var styles$f = {
866
- base: base$c,
866
+ base: base$d,
867
867
  top: top,
868
868
  'top-reversed': topReversed,
869
869
  center: center,
@@ -909,7 +909,7 @@ var LayoutPanel = {
909
909
  Section: Section,
910
910
  };
911
911
 
912
- var base$b = {
912
+ var base$c = {
913
913
  container: 'bg-white overflow-hidden shadow',
914
914
  section: 'px-4 py-5 sm:px-6',
915
915
  };
@@ -920,7 +920,7 @@ var sticky$1 = {
920
920
  container: 'sm:rounded-lg',
921
921
  };
922
922
  var styles$e = {
923
- base: base$b,
923
+ base: base$c,
924
924
  normal: normal$3,
925
925
  sticky: sticky$1,
926
926
  };
@@ -1068,7 +1068,7 @@ var PanelPaginationNavigation = function (props) {
1068
1068
  return (jsxs("div", { className: styles.container, children: [jsxs("div", { className: "flex flex-1 justify-between sm:hidden", children: [jsx("button", { className: toClassName(styles.mobile.button, current === min && styles.button.disabled), disabled: current === min, onClick: function () { return handleChangeCurrent(current - 1); }, children: "Previous" }), jsx("button", { className: toClassName(styles.mobile.button, current === max && styles.button.disabled), disabled: current === max, onClick: function () { return handleChangeCurrent(current + 1); }, children: "Next" })] }), jsxs("div", { className: styles.desktop.container, children: [jsx("div", { children: jsx("div", { className: "text-sm text-gray-700", children: children && children({ min: min, max: max, current: current }) }) }), jsx("div", { children: jsxs("nav", { className: styles.desktop.navigation, "aria-label": "Pagination", children: [jsxs("button", { className: toClassName(styles.desktop.leftButton, current === min && styles.button.disabled), disabled: current === min, onClick: function () { return handleChangeCurrent(current - 1); }, children: [jsx("span", { className: styles.label, children: "Previous" }), jsx(ChevronLeftIcon, { className: styles.icon, "aria-hidden": "true" })] }), component, jsxs("button", { className: toClassName(styles.desktop.rightButton, current === max && styles.button.disabled), disabled: current === max, onClick: function () { return handleChangeCurrent(current + 1); }, children: [jsx("span", { className: styles.label, children: "Next" }), jsx(ChevronRightIcon, { className: styles.icon, "aria-hidden": "true" })] })] }) })] })] }));
1069
1069
  };
1070
1070
 
1071
- var base$a = {
1071
+ var base$b = {
1072
1072
  container: 'flex items-center justify-between border-t border-gray-200 bg-white py-3',
1073
1073
  mobile: {
1074
1074
  container: '',
@@ -1090,7 +1090,7 @@ var base$a = {
1090
1090
  icon: 'w-5 h-5',
1091
1091
  };
1092
1092
  var styles$d = {
1093
- base: base$a,
1093
+ base: base$b,
1094
1094
  };
1095
1095
 
1096
1096
  var TableList = function (props) {
@@ -1226,7 +1226,7 @@ var TableList = function (props) {
1226
1226
  : { container: 'mt-4' }, onChange: onPaginate, children: children })] }) }));
1227
1227
  };
1228
1228
 
1229
- var base$9 = {
1229
+ var base$a = {
1230
1230
  container: 'px-4 sm:px-6 lg:px-8',
1231
1231
  head: {
1232
1232
  container: 'sm:flex sm:items-center',
@@ -1339,7 +1339,7 @@ var controlled = {
1339
1339
  },
1340
1340
  };
1341
1341
  var styles$c = {
1342
- base: base$9,
1342
+ base: base$a,
1343
1343
  normal: normal$2,
1344
1344
  panel: panel$1,
1345
1345
  full: full,
@@ -1349,10 +1349,27 @@ var styles$c = {
1349
1349
  };
1350
1350
 
1351
1351
  var TableList2 = function (props) {
1352
- var config = props.table, head = props.head, foot = props.foot, isLoading = props.isLoading, onChange = props.onChange;
1353
- var _a = useState([]), sorting = _a[0], setSorting = _a[1];
1354
- var _b = useState({}), columnVisibility = _b[0], setColumnVisibility = _b[1];
1355
- var _c = useState([]), columnOrder = _c[0], setColumnOrder = _c[1];
1352
+ var _a, _b;
1353
+ var config = props.table, head = props.head, foot = props.foot, isLoading = props.isLoading, onChange = props.onChange, stylesOverrides = props.styles;
1354
+ var _c = useState([]), sorting = _c[0], setSorting = _c[1];
1355
+ var _d = useState({
1356
+ title: false,
1357
+ }), columnVisibility = _d[0], setColumnVisibility = _d[1];
1358
+ var _e = useState([]), columnOrder = _e[0], setColumnOrder = _e[1];
1359
+ var handleGenerateStyle = function () {
1360
+ var result = deepCopyObject(styles$b.base);
1361
+ var keys = calculateNestedKeys(styles$b.base);
1362
+ keys.forEach(function (key) {
1363
+ set(result, key, toClassName(get(styles$b.base, key),
1364
+ // type && get(defaultStyles[type], key),
1365
+ // hasStickyHeader && get(defaultStyles.sticky, key),
1366
+ // hasVerticalSeparators && get(defaultStyles.separated, key),
1367
+ // areControlsVisible && get(defaultStyles.controlled, key),
1368
+ get(stylesOverrides, key)));
1369
+ });
1370
+ return result;
1371
+ };
1372
+ var styles = handleGenerateStyle();
1356
1373
  var table = useReactTable({
1357
1374
  getCoreRowModel: getCoreRowModel(),
1358
1375
  columns: config.columns,
@@ -1385,31 +1402,57 @@ var TableList2 = function (props) {
1385
1402
  onChange && onChange(state);
1386
1403
  }
1387
1404
  }, [onChange, state]);
1388
- return (jsxs("div", { className: styles$b.container, children: [jsx("div", { className: styles$b.head, children: head && head(state) }), jsx("div", { className: "", children: jsx("div", { className: "flow-root relative", children: jsx("div", { className: "overflow-x-scroll overflow-y-visible", children: jsxs("div", { className: "inline-block min-w-full align-middle", children: [jsxs("table", { className: "min-w-full border-separate border-spacing-0 ", children: [jsx("thead", { className: "", children: table === null || table === void 0 ? void 0 : table.getHeaderGroups().map(function (headerGroup) { return (jsx("tr", { children: headerGroup.headers.map(function (header) { return (jsxs("th", { colSpan: header.colSpan, className: toClassName(styles$b.body.table.head.cell, 'border-b', header.column.getCanSort() && 'cursor-pointer'), onClick: header.column.getToggleSortingHandler(), style: {
1405
+ // Set column visibility state on mount.
1406
+ useEffect(function () {
1407
+ var _a, _b, _c, _d, _e, _f;
1408
+ if (!((_a = config === null || config === void 0 ? void 0 : config.options) === null || _a === void 0 ? void 0 : _a.defaultVisibility)) {
1409
+ return;
1410
+ }
1411
+ var base = (_b = table
1412
+ .getAllColumns()) === null || _b === void 0 ? void 0 : _b.map(function (column) { return ((column === null || column === void 0 ? void 0 : column.id) ? column === null || column === void 0 ? void 0 : column.id : column === null || column === void 0 ? void 0 : column.accessorKey); }).map(function (key) {
1413
+ var _a;
1414
+ return (_a = {}, _a[key] = false, _a);
1415
+ }).reduce(function (a, b) { return (__assign(__assign({}, a), b)); });
1416
+ var current = ((_c = config === null || config === void 0 ? void 0 : config.options) === null || _c === void 0 ? void 0 : _c.defaultVisibility) &&
1417
+ ((_e = (_d = config === null || config === void 0 ? void 0 : config.options) === null || _d === void 0 ? void 0 : _d.defaultVisibility) === null || _e === void 0 ? void 0 : _e.length) > 0
1418
+ ? (_f = config === null || config === void 0 ? void 0 : config.options) === null || _f === void 0 ? void 0 : _f.defaultVisibility.map(function (key) {
1419
+ var _a;
1420
+ return (_a = {}, _a[key] = true, _a);
1421
+ }).reduce(function (a, b) { return (__assign(__assign({}, a), b)); })
1422
+ : {};
1423
+ setColumnVisibility(__assign(__assign({}, base), current));
1424
+ }, [(_a = config === null || config === void 0 ? void 0 : config.options) === null || _a === void 0 ? void 0 : _a.defaultVisibility, table]);
1425
+ useEffect(function () {
1426
+ var _a, _b;
1427
+ if ((_a = config === null || config === void 0 ? void 0 : config.options) === null || _a === void 0 ? void 0 : _a.defaultOrder) {
1428
+ setColumnOrder((_b = config === null || config === void 0 ? void 0 : config.options) === null || _b === void 0 ? void 0 : _b.defaultOrder);
1429
+ }
1430
+ }, [(_b = config === null || config === void 0 ? void 0 : config.options) === null || _b === void 0 ? void 0 : _b.defaultOrder]);
1431
+ return (jsxs("div", { className: styles.container, children: [jsx("div", { className: styles.head, children: head && head(state) }), jsx("div", { className: "", children: jsx("div", { className: "flow-root relative", children: jsx("div", { className: "overflow-x-scroll overflow-y-visible", children: jsxs("div", { className: "inline-block min-w-full align-middle", children: [jsxs("table", { className: "min-w-full border-separate border-spacing-0 ", children: [jsx("thead", { className: "", children: table === null || table === void 0 ? void 0 : table.getHeaderGroups().map(function (headerGroup) { return (jsx("tr", { children: headerGroup.headers.map(function (header) { return (jsxs("th", { colSpan: header.colSpan, className: toClassName(styles.body.table.head.cell, 'border-b', header.column.getCanSort() && 'cursor-pointer'), onClick: header.column.getToggleSortingHandler(), style: {
1389
1432
  minWidth: !!header.column.columnDef.size &&
1390
1433
  header.column.columnDef.size !== 150
1391
1434
  ? "".concat(header.column.columnDef.size, "px")
1392
1435
  : 'auto',
1393
1436
  }, children: [header.isPlaceholder
1394
1437
  ? null
1395
- : flexRender(header.column.columnDef.header, header.getContext()), header.column.getCanSort() && (jsx("span", { className: toClassName(styles$b.sortIndicator.container, header.column.getIsSorted()
1396
- ? styles$b.sortIndicator.isSorted
1397
- : styles$b.sortIndicator.isNotSorted), children: jsx(ChevronDownIcon, { className: toClassName(styles$b.sortIndicator.icon.container, header.column.getIsSorted() === 'asc' &&
1438
+ : flexRender(header.column.columnDef.header, header.getContext()), header.column.getCanSort() && (jsx("span", { className: toClassName(styles.sortIndicator.container, header.column.getIsSorted()
1439
+ ? styles.sortIndicator.isSorted
1440
+ : styles.sortIndicator.isNotSorted), children: jsx(ChevronDownIcon, { className: toClassName(styles.sortIndicator.icon.container, header.column.getIsSorted() === 'asc' &&
1398
1441
  '-scale-100'), "aria-hidden": "true" }) }))] }, header.id)); }) }, headerGroup.id)); }) }), !isLoading && (jsx("tbody", { className: "border", children: table === null || table === void 0 ? void 0 : table.getRowModel().rows.map(function (row, index) {
1399
1442
  var _a;
1400
- return (jsx("tr", { className: toClassName(styles$b.body.table.body.row, ((_a = config.options) === null || _a === void 0 ? void 0 : _a.isStriped) &&
1443
+ return (jsx("tr", { className: toClassName(styles.body.table.body.row, ((_a = config.options) === null || _a === void 0 ? void 0 : _a.isStriped) &&
1401
1444
  index % 2 === 0 &&
1402
1445
  'bg-gray-50'), children: row.getVisibleCells().map(function (cell) {
1403
1446
  var _a, _b, _c;
1404
- return (jsx("td", { className: toClassName(styles$b.body.table.body.cell, ((_a = config === null || config === void 0 ? void 0 : config.options) === null || _a === void 0 ? void 0 : _a.hasStickyHeader) &&
1447
+ return (jsx("td", { className: toClassName(styles.body.table.body.cell, ((_a = config === null || config === void 0 ? void 0 : config.options) === null || _a === void 0 ? void 0 : _a.hasStickyHeader) &&
1405
1448
  index !==
1406
1449
  ((_c = (_b = table === null || table === void 0 ? void 0 : table.getState()) === null || _b === void 0 ? void 0 : _b.pagination) === null || _c === void 0 ? void 0 : _c.pageSize) - 1 &&
1407
1450
  'border-b border-gray-200'), children: flexRender(cell.column.columnDef.cell, cell.getContext()) }, cell.id));
1408
1451
  }) }, row.id));
1409
- }) }))] }), isLoading && (jsx("div", { className: "flex flex-col gap-y-2 w-full pt-5", children: new Array(8).fill(undefined).map(function (index) { return (jsxs("div", { className: "flex gap-2", children: [jsx("div", { className: "w-20 h-12 rounded-md bg-gray-100 animate-pulse" }), jsx("div", { className: "w-full h-12 rounded-md bg-gray-100 animate-pulse" })] }, index)); }) }))] }) }) }) }), jsx("div", { className: styles$b.foot, children: foot && foot(state) })] }));
1452
+ }) }))] }), isLoading && (jsx("div", { className: "flex flex-col gap-y-2 w-full pt-5", children: new Array(8).fill(undefined).map(function (index) { return (jsxs("div", { className: "flex gap-2", children: [jsx("div", { className: "w-20 h-12 rounded-md bg-gray-100 animate-pulse" }), jsx("div", { className: "w-full h-12 rounded-md bg-gray-100 animate-pulse" })] }, index)); }) }))] }) }) }) }), jsx("div", { className: styles.foot, children: foot && foot(state) })] }));
1410
1453
  };
1411
1454
 
1412
- var styles$b = {
1455
+ var base$9 = {
1413
1456
  container: '',
1414
1457
  head: '',
1415
1458
  body: {
@@ -1444,6 +1487,9 @@ var styles$b = {
1444
1487
  },
1445
1488
  },
1446
1489
  };
1490
+ var styles$b = {
1491
+ base: base$9,
1492
+ };
1447
1493
 
1448
1494
  var createColumnHelper = function () {
1449
1495
  return createColumnHelper$1();
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}