@ukic/canary-web-components 2.0.0-canary.24 → 2.0.0-canary.26

Sign up to get free protection for your applications and to get access to all the features.
Files changed (158) hide show
  1. package/dist/cjs/core.cjs.js +1 -1
  2. package/dist/cjs/{helpers-85c5ca15.js → helpers-6817cfbb.js} +20 -31
  3. package/dist/cjs/helpers-6817cfbb.js.map +1 -0
  4. package/dist/cjs/ic-accordion.cjs.entry.js +1 -1
  5. package/dist/cjs/ic-accordion.cjs.entry.js.map +1 -1
  6. package/dist/cjs/ic-alert.cjs.entry.js +9 -4
  7. package/dist/cjs/ic-alert.cjs.entry.js.map +1 -1
  8. package/dist/cjs/ic-badge.cjs.entry.js +2 -2
  9. package/dist/cjs/ic-badge.cjs.entry.js.map +1 -1
  10. package/dist/cjs/ic-card-horizontal.cjs.entry.js +1 -1
  11. package/dist/cjs/ic-data-table-title-bar.cjs.entry.js +1 -1
  12. package/dist/cjs/ic-data-table.cjs.entry.js +200 -51
  13. package/dist/cjs/ic-data-table.cjs.entry.js.map +1 -1
  14. package/dist/cjs/ic-date-input.cjs.entry.js +3 -2
  15. package/dist/cjs/ic-date-input.cjs.entry.js.map +1 -1
  16. package/dist/cjs/ic-date-picker.cjs.entry.js +3 -1
  17. package/dist/cjs/ic-date-picker.cjs.entry.js.map +1 -1
  18. package/dist/cjs/ic-dialog.cjs.entry.js.map +1 -1
  19. package/dist/cjs/ic-empty-state_2.cjs.entry.js +1 -1
  20. package/dist/cjs/ic-menu-with-multi.cjs.entry.js +1 -1
  21. package/dist/cjs/ic-pagination_4.cjs.entry.js +2 -1
  22. package/dist/cjs/ic-pagination_4.cjs.entry.js.map +1 -1
  23. package/dist/cjs/ic-select-with-multi.cjs.entry.js +1 -1
  24. package/dist/cjs/ic-toast-region.cjs.entry.js +6 -0
  25. package/dist/cjs/ic-toast-region.cjs.entry.js.map +1 -1
  26. package/dist/cjs/ic-tree-item.cjs.entry.js +1 -1
  27. package/dist/cjs/ic-tree-view.cjs.entry.js +1 -1
  28. package/dist/cjs/loader.cjs.js +1 -1
  29. package/dist/collection/components/ic-data-table/ic-data-table.css +31 -7
  30. package/dist/collection/components/ic-data-table/ic-data-table.js +298 -56
  31. package/dist/collection/components/ic-data-table/ic-data-table.js.map +1 -1
  32. package/dist/collection/components/ic-data-table/ic-data-table.types.js.map +1 -1
  33. package/dist/collection/components/ic-data-table/story-data.js +143 -54
  34. package/dist/collection/components/ic-data-table/story-data.js.map +1 -1
  35. package/dist/collection/components/ic-date-input/ic-date-input.js +20 -1
  36. package/dist/collection/components/ic-date-input/ic-date-input.js.map +1 -1
  37. package/dist/collection/components/ic-date-input/test/basic/ic-date-input.spec.js +9 -0
  38. package/dist/collection/components/ic-date-input/test/basic/ic-date-input.spec.js.map +1 -1
  39. package/dist/collection/components/ic-date-picker/ic-date-picker.js +20 -0
  40. package/dist/collection/components/ic-date-picker/ic-date-picker.js.map +1 -1
  41. package/dist/collection/components/ic-date-picker/test/basic/ic-date-picker.spec.js +10 -0
  42. package/dist/collection/components/ic-date-picker/test/basic/ic-date-picker.spec.js.map +1 -1
  43. package/dist/collection/utils/helpers.js +22 -0
  44. package/dist/collection/utils/helpers.js.map +1 -1
  45. package/dist/components/helpers2.js +18 -29
  46. package/dist/components/helpers2.js.map +1 -1
  47. package/dist/components/ic-accordion.js +1 -1
  48. package/dist/components/ic-accordion.js.map +1 -1
  49. package/dist/components/ic-alert2.js +11 -5
  50. package/dist/components/ic-alert2.js.map +1 -1
  51. package/dist/components/ic-badge.js +2 -2
  52. package/dist/components/ic-badge.js.map +1 -1
  53. package/dist/components/ic-data-table.js +207 -52
  54. package/dist/components/ic-data-table.js.map +1 -1
  55. package/dist/components/ic-date-input2.js +3 -1
  56. package/dist/components/ic-date-input2.js.map +1 -1
  57. package/dist/components/ic-date-picker.js +3 -0
  58. package/dist/components/ic-date-picker.js.map +1 -1
  59. package/dist/components/ic-dialog.js.map +1 -1
  60. package/dist/components/ic-text-field2.js +3 -1
  61. package/dist/components/ic-text-field2.js.map +1 -1
  62. package/dist/components/ic-toast-region.js +6 -0
  63. package/dist/components/ic-toast-region.js.map +1 -1
  64. package/dist/core/core.esm.js +1 -1
  65. package/dist/core/core.esm.js.map +1 -1
  66. package/dist/core/{p-13993bf3.entry.js → p-01bc462e.entry.js} +2 -2
  67. package/dist/core/p-01bc462e.entry.js.map +1 -0
  68. package/dist/core/{p-401d0c66.entry.js → p-20997691.entry.js} +2 -2
  69. package/dist/core/p-297e99cf.js +2 -0
  70. package/dist/core/p-297e99cf.js.map +1 -0
  71. package/dist/core/p-40e5fa80.entry.js +2 -0
  72. package/dist/core/p-40e5fa80.entry.js.map +1 -0
  73. package/dist/core/p-673a4a62.entry.js.map +1 -1
  74. package/dist/core/p-6af080d3.entry.js +2 -0
  75. package/dist/core/p-6af080d3.entry.js.map +1 -0
  76. package/dist/core/p-74abc3bb.entry.js +2 -0
  77. package/dist/core/p-74abc3bb.entry.js.map +1 -0
  78. package/dist/core/{p-4309460f.entry.js → p-80d6a6b5.entry.js} +2 -2
  79. package/dist/core/{p-06732eaf.entry.js → p-92f701e7.entry.js} +2 -2
  80. package/dist/core/{p-ec9edecf.entry.js → p-989310a8.entry.js} +2 -2
  81. package/dist/core/p-989310a8.entry.js.map +1 -0
  82. package/dist/core/{p-ede631c5.entry.js → p-9b34989b.entry.js} +2 -2
  83. package/dist/core/p-bd1f8741.entry.js +2 -0
  84. package/dist/core/p-bd1f8741.entry.js.map +1 -0
  85. package/dist/core/{p-57043b1e.entry.js → p-c6bdbe69.entry.js} +2 -2
  86. package/dist/core/{p-a052bb95.entry.js → p-c98ce508.entry.js} +2 -2
  87. package/dist/core/{p-b29e96b5.entry.js → p-d362992d.entry.js} +2 -2
  88. package/dist/core/{p-b97eba08.entry.js → p-ee8a3de6.entry.js} +2 -2
  89. package/dist/core/p-ee8a3de6.entry.js.map +1 -0
  90. package/dist/core/p-f5fbfbc9.entry.js +2 -0
  91. package/dist/core/p-f5fbfbc9.entry.js.map +1 -0
  92. package/dist/esm/core.js +1 -1
  93. package/dist/esm/{helpers-f543bc77.js → helpers-5bd2012a.js} +19 -30
  94. package/dist/esm/helpers-5bd2012a.js.map +1 -0
  95. package/dist/esm/ic-accordion.entry.js +1 -1
  96. package/dist/esm/ic-accordion.entry.js.map +1 -1
  97. package/dist/esm/ic-alert.entry.js +10 -5
  98. package/dist/esm/ic-alert.entry.js.map +1 -1
  99. package/dist/esm/ic-badge.entry.js +2 -2
  100. package/dist/esm/ic-badge.entry.js.map +1 -1
  101. package/dist/esm/ic-card-horizontal.entry.js +1 -1
  102. package/dist/esm/ic-data-table-title-bar.entry.js +1 -1
  103. package/dist/esm/ic-data-table.entry.js +201 -52
  104. package/dist/esm/ic-data-table.entry.js.map +1 -1
  105. package/dist/esm/ic-date-input.entry.js +3 -2
  106. package/dist/esm/ic-date-input.entry.js.map +1 -1
  107. package/dist/esm/ic-date-picker.entry.js +3 -1
  108. package/dist/esm/ic-date-picker.entry.js.map +1 -1
  109. package/dist/esm/ic-dialog.entry.js.map +1 -1
  110. package/dist/esm/ic-empty-state_2.entry.js +1 -1
  111. package/dist/esm/ic-menu-with-multi.entry.js +1 -1
  112. package/dist/esm/ic-pagination_4.entry.js +2 -1
  113. package/dist/esm/ic-pagination_4.entry.js.map +1 -1
  114. package/dist/esm/ic-select-with-multi.entry.js +1 -1
  115. package/dist/esm/ic-toast-region.entry.js +6 -0
  116. package/dist/esm/ic-toast-region.entry.js.map +1 -1
  117. package/dist/esm/ic-tree-item.entry.js +1 -1
  118. package/dist/esm/ic-tree-view.entry.js +1 -1
  119. package/dist/esm/loader.js +1 -1
  120. package/dist/types/components/ic-data-table/ic-data-table.d.ts +32 -9
  121. package/dist/types/components/ic-data-table/ic-data-table.types.d.ts +12 -4
  122. package/dist/types/components/ic-data-table/story-data.d.ts +69 -8
  123. package/dist/types/components/ic-date-input/ic-date-input.d.ts +4 -0
  124. package/dist/types/components/ic-date-picker/ic-date-picker.d.ts +4 -0
  125. package/dist/types/components.d.ts +62 -6
  126. package/dist/types/interface.d.ts +1 -0
  127. package/dist/types/utils/helpers.d.ts +6 -0
  128. package/hydrate/index.js +267 -103
  129. package/package.json +6 -6
  130. package/dist/cjs/helpers-85c5ca15.js.map +0 -1
  131. package/dist/collection/components/ic-select-with-multi/test/a11y/ic-select.test.a11y.js +0 -146
  132. package/dist/collection/components/ic-select-with-multi/test/a11y/ic-select.test.a11y.js.map +0 -1
  133. package/dist/collection/components/ic-select-with-multi/test/basic/ic-select.e2e.js +0 -2040
  134. package/dist/collection/components/ic-select-with-multi/test/basic/ic-select.e2e.js.map +0 -1
  135. package/dist/core/p-13993bf3.entry.js.map +0 -1
  136. package/dist/core/p-1f9cb805.entry.js +0 -2
  137. package/dist/core/p-1f9cb805.entry.js.map +0 -1
  138. package/dist/core/p-3f2723aa.entry.js +0 -2
  139. package/dist/core/p-3f2723aa.entry.js.map +0 -1
  140. package/dist/core/p-59993f36.entry.js +0 -2
  141. package/dist/core/p-59993f36.entry.js.map +0 -1
  142. package/dist/core/p-91cf89c8.entry.js +0 -2
  143. package/dist/core/p-91cf89c8.entry.js.map +0 -1
  144. package/dist/core/p-9777ebb1.entry.js +0 -2
  145. package/dist/core/p-9777ebb1.entry.js.map +0 -1
  146. package/dist/core/p-adbe0d89.js +0 -2
  147. package/dist/core/p-adbe0d89.js.map +0 -1
  148. package/dist/core/p-b97eba08.entry.js.map +0 -1
  149. package/dist/core/p-ec9edecf.entry.js.map +0 -1
  150. package/dist/esm/helpers-f543bc77.js.map +0 -1
  151. package/dist/types/components/ic-select-with-multi/test/a11y/ic-select.test.a11y.d.ts +0 -1
  152. /package/dist/core/{p-401d0c66.entry.js.map → p-20997691.entry.js.map} +0 -0
  153. /package/dist/core/{p-4309460f.entry.js.map → p-80d6a6b5.entry.js.map} +0 -0
  154. /package/dist/core/{p-06732eaf.entry.js.map → p-92f701e7.entry.js.map} +0 -0
  155. /package/dist/core/{p-ede631c5.entry.js.map → p-9b34989b.entry.js.map} +0 -0
  156. /package/dist/core/{p-57043b1e.entry.js.map → p-c6bdbe69.entry.js.map} +0 -0
  157. /package/dist/core/{p-a052bb95.entry.js.map → p-c98ce508.entry.js.map} +0 -0
  158. /package/dist/core/{p-b29e96b5.entry.js.map → p-d362992d.entry.js.map} +0 -0
@@ -41,6 +41,38 @@ export const COLS = [
41
41
  dataType: "address",
42
42
  },
43
43
  ];
44
+ export const COLS_WIDTH = [
45
+ {
46
+ key: "firstName",
47
+ title: "First name",
48
+ dataType: "string",
49
+ columnWidth: "15%",
50
+ },
51
+ {
52
+ key: "lastName",
53
+ title: "Last name",
54
+ dataType: "string",
55
+ columnWidth: "300px",
56
+ },
57
+ {
58
+ key: "age",
59
+ title: "Age",
60
+ dataType: "number",
61
+ columnWidth: {
62
+ maxWidth: "100px",
63
+ },
64
+ },
65
+ {
66
+ key: "jobTitle",
67
+ title: "Job title",
68
+ dataType: "string",
69
+ },
70
+ {
71
+ key: "address",
72
+ title: "Address",
73
+ dataType: "address",
74
+ },
75
+ ];
44
76
  export const VERY_LONG_DATA = (rows = 100) => {
45
77
  const nextData = [];
46
78
  for (let i = 0; i < rows; i++) {
@@ -58,6 +90,35 @@ export const VERY_LONG_DATA = (rows = 100) => {
58
90
  }
59
91
  return nextData;
60
92
  };
93
+ export const textWrapColumns = () => {
94
+ return COLUMNS_NO_TEXT_WRAP.map((col) => {
95
+ if (col.key === "jobTitle") {
96
+ return Object.assign(Object.assign({}, col), { textWrap: true });
97
+ }
98
+ return col;
99
+ });
100
+ };
101
+ export const textWrapRow = () => {
102
+ return LONG_DATA_VALUES.map((data) => {
103
+ if (data.name === "Luke Fisher" || data.name === "John Smith") {
104
+ return Object.assign(Object.assign({}, data), { rowOptions: {
105
+ textWrap: true,
106
+ } });
107
+ }
108
+ return data;
109
+ });
110
+ };
111
+ export const textWrapCell = () => {
112
+ return LONG_DATA_VALUES.map((data) => {
113
+ if (data.jobTitle === "Senior Financial Operations and Reporting Analyst") {
114
+ return Object.assign(Object.assign({}, data), { jobTitle: {
115
+ data: data.jobTitle,
116
+ textWrap: true,
117
+ } });
118
+ }
119
+ return data;
120
+ });
121
+ };
61
122
  export const COLS_ALIGNMENT = [
62
123
  {
63
124
  key: "firstName",
@@ -701,15 +762,22 @@ export const ROW_HEADER_DATA = DATA.map((data, index) => {
701
762
  return Object.assign({ header: { title: ROW_HEADER_TITLES[index] } }, data);
702
763
  });
703
764
  export const COLS_ELEMENTS = [
765
+ {
766
+ key: "actions",
767
+ title: "Actions",
768
+ dataType: "element",
769
+ columnAlignment: { horizontal: "center" },
770
+ },
704
771
  {
705
772
  key: "firstName",
706
773
  title: "First name",
707
774
  dataType: "string",
708
775
  },
709
776
  {
710
- key: "lastName",
711
- title: "Last name",
712
- dataType: "string",
777
+ key: "actions2",
778
+ title: "Actions2",
779
+ dataType: "element",
780
+ columnAlignment: { horizontal: "center" },
713
781
  },
714
782
  {
715
783
  key: "age",
@@ -726,56 +794,50 @@ export const COLS_ELEMENTS = [
726
794
  title: "Address",
727
795
  dataType: "address",
728
796
  },
729
- {
730
- key: "actions",
731
- title: "Actions",
732
- dataType: "element",
733
- columnAlignment: { horizontal: "center" },
734
- },
735
797
  ];
736
798
  export const DATA_ELEMENTS = [
737
799
  {
800
+ actions: `<ic-button variant='destructive' onClick='this.closest("tr").remove()'>Delete</ic-button>`,
738
801
  firstName: {
739
802
  data: "Joe",
740
803
  href: "https://www.example.com",
741
804
  },
742
- lastName: "Bloggs",
805
+ actions2: `<ic-button variant='secondary' onClick='this.closest("tr").remove()'>Add</ic-button>`,
743
806
  age: 30,
744
807
  jobTitle: "Developer",
745
808
  address: "1 Main Street, Town, County, Postcode",
746
- actions: `<ic-button variant='destructive' onClick='this.closest("tr").remove()'>Delete</ic-button>`,
747
809
  },
748
810
  {
811
+ actions: `<ic-button variant='destructive' onClick='this.closest("tr").remove()'>Delete</ic-button>`,
749
812
  firstName: "Sarah",
750
- lastName: "Smith",
813
+ actions2: `<ic-button variant='secondary' onClick='this.closest("tr").remove()'>Add</ic-button>`,
751
814
  age: 28,
752
815
  jobTitle: "Senior Software Developer, Site Reliability Engineering",
753
816
  address: "2 Main Street, Town, Country, Postcode",
754
- actions: `<ic-button variant='destructive' onClick='this.closest("tr").remove()'>Delete</ic-button>`,
755
817
  },
756
818
  {
819
+ actions: `<ic-button variant='destructive' onClick='this.closest("tr").remove()'>Delete</ic-button>`,
757
820
  firstName: "Mark",
758
- lastName: "Owens",
821
+ actions2: `<ic-button variant='secondary' onClick='this.closest("tr").remove()'>Add</ic-button>`,
759
822
  age: 45,
760
823
  jobTitle: "Team Lead",
761
824
  address: "12 Key Street, Town, Country, Postcode",
762
- actions: `<ic-button variant='destructive' onClick='this.closest("tr").remove()'>Delete</ic-button>`,
763
825
  },
764
826
  {
827
+ actions: `<ic-button variant='destructive' onClick='this.closest("tr").remove()'>Delete</ic-button>`,
765
828
  firstName: "Naomi",
766
- lastName: "Thomas",
829
+ actions2: `<ic-button variant='secondary' onClick='this.closest("tr").remove()'>Add</ic-button>`,
767
830
  age: 32,
768
831
  jobTitle: "Analyst",
769
832
  address: "8 Side Street, Town, Country, Postcode",
770
- actions: `<ic-button variant='destructive' onClick='this.closest("tr").remove()'>Delete</ic-button>`,
771
833
  },
772
834
  {
835
+ actions: `<ic-button variant='destructive' onClick='this.closest("tr").remove()'>Delete</ic-button>`,
773
836
  firstName: "Luke",
774
- lastName: "Ashford",
837
+ actions2: `<ic-button variant='secondary' onClick='this.closest("tr").remove()'>Add</ic-button>`,
775
838
  age: 18,
776
839
  jobTitle: "Junior Developer",
777
840
  address: "5 New Street, Town, Country, Postcode",
778
- actions: `<ic-button variant='destructive' onClick='this.closest("tr").remove()'>Delete</ic-button>`,
779
841
  },
780
842
  ];
781
843
  export const DATA_REACT_ELEMENTS = [
@@ -784,36 +846,30 @@ export const DATA_REACT_ELEMENTS = [
784
846
  data: "Joe",
785
847
  href: "https://www.example.com",
786
848
  },
787
- lastName: "Bloggs",
788
849
  age: 30,
789
850
  jobTitle: "Developer",
790
851
  address: "1 Main Street, Town, County, Postcode",
791
- actions: `<IcButton variant='destructive' onClick={this.closest("tr").remove()}>Delete</IcButton>`,
792
852
  },
793
853
  {
794
854
  firstName: "Sarah",
795
- lastName: "Smith",
796
855
  age: 28,
797
856
  jobTitle: "Senior Software Developer, Site Reliability Engineering",
798
857
  address: "2 Main Street, Town, Country, Postcode",
799
858
  },
800
859
  {
801
860
  firstName: "Mark",
802
- lastName: "Owens",
803
861
  age: 45,
804
862
  jobTitle: "Team Lead",
805
863
  address: "12 Key Street, Town, Country, Postcode",
806
864
  },
807
865
  {
808
866
  firstName: "Naomi",
809
- lastName: "Thomas",
810
867
  age: 32,
811
868
  jobTitle: "Analyst",
812
869
  address: "8 Side Street, Town, Country, Postcode",
813
870
  },
814
871
  {
815
872
  firstName: "Luke",
816
- lastName: "Ashford",
817
873
  age: 18,
818
874
  jobTitle: "Junior Developer",
819
875
  address: "5 New Street, Town, Country, Postcode",
@@ -831,6 +887,21 @@ export const Basic = () => {
831
887
  dataTable.setAttribute("sortable", "true");
832
888
  return dataTable;
833
889
  };
890
+ export const DataTableSizing = () => {
891
+ const dataTable = createDataTableElement("Basic Table", COLS_WIDTH, DATA);
892
+ dataTable.setAttribute("width", "800px");
893
+ return dataTable;
894
+ };
895
+ // Used for table overflow testing
896
+ // export const TableOverflow = (): HTMLElement => {
897
+ // const wrapper = document.createElement('div');
898
+ // const dataTable = createDataTableElement("Basic Table", COLS_WIDTH, DATA);
899
+ // wrapper.style.maxWidth = '500px'
900
+ // wrapper.style.overflow = 'auto';
901
+ // dataTable.setAttribute("width", "1000px");
902
+ // wrapper.insertAdjacentElement('afterbegin', dataTable);
903
+ // return wrapper;
904
+ // }
834
905
  export const LargeDataSet = () => {
835
906
  const dataTable = createDataTableElement("Basic Table", LONG_COLS, LONG_DATA);
836
907
  dataTable.setAttribute("sortable", "true");
@@ -872,7 +943,7 @@ export const Scrollable = () => {
872
943
  buttonWrapper.insertAdjacentElement("beforeend", unstickButton);
873
944
  const wrapper = document.createElement("div");
874
945
  wrapper.insertAdjacentElement("afterbegin", dataTable);
875
- wrapper.insertAdjacentElement("beforeend", buttonWrapper);
946
+ dataTable.insertAdjacentElement("afterend", buttonWrapper);
876
947
  return wrapper;
877
948
  };
878
949
  export const RowHeaders = () => createDataTableElement("Row Header Table", ROW_HEADER_COLS, ROW_HEADER_DATA);
@@ -950,7 +1021,7 @@ export const Updating = () => {
950
1021
  };
951
1022
  export const CustomIcons = () => createDataTableElement("Custom icons", ICON_COLS, ICON_DATA);
952
1023
  export const CustomRowHeights = () => {
953
- const dataTable = createDataTableElement("Custom Row Heights", COLS, LONG_DATA_VALUES);
1024
+ const dataTable = createDataTableElement("Custom Row Heights", COLUMNS_NO_TEXT_WRAP, VERY_LONG_DATA(10));
954
1025
  dataTable.globalRowHeight = 80;
955
1026
  dataTable.variableRowHeight = ({ name, age }) => name === "John Smith" || age === 41 ? 200 : null;
956
1027
  const resetButton = document.createElement("ic-button");
@@ -1015,7 +1086,7 @@ export const TruncationTextWrap = () => {
1015
1086
  };
1016
1087
  export const TruncationTooltip = () => {
1017
1088
  const dataTable = CustomRowHeights().querySelector("ic-data-table");
1018
- dataTable.globalRowHeight = 150;
1089
+ dataTable.globalRowHeight = 40;
1019
1090
  dataTable.variableRowHeight = null;
1020
1091
  dataTable.setAttribute("truncation-pattern", "tooltip");
1021
1092
  const resetButton = document.createElement("ic-button");
@@ -1025,7 +1096,7 @@ export const TruncationTooltip = () => {
1025
1096
  setButton.addEventListener("click", () => {
1026
1097
  dataTable.globalRowHeight = 80;
1027
1098
  });
1028
- setButton.innerHTML = "Set global row heights";
1099
+ setButton.innerHTML = "Set global row heights to 80";
1029
1100
  const buttonWrapper = document.createElement("div");
1030
1101
  buttonWrapper.style["display"] = "flex";
1031
1102
  buttonWrapper.style["paddingTop"] = "10px";
@@ -1140,47 +1211,65 @@ export const DevArea = () => {
1140
1211
  dataTable.sortable = true;
1141
1212
  dataTable.variableRowHeight = null;
1142
1213
  dataTable.showPagination = true;
1214
+ const description = document.createElement("ic-typography");
1215
+ description.innerHTML = `
1216
+ Use the buttons to change the state of the Data Tables component.<br /><br />
1217
+ By default, the global row height is set to <b>'auto'</b>. This means the row height will be dictated by the cell with the most lines.<br />
1218
+ In order to view the truncated data, the truncation pattern must first be set and then the row height. The reason for this is, the data will know how to behave if the cell space is reduced.<br />
1219
+ Setting the truncation pattern while the row height is set to auto will not display the truncated data as the table cells
1220
+ will have enough space to show all table cell data.<br /><br />
1221
+ In this demo, the even rows have <b>'textWrap'</b> applied.
1222
+ `;
1143
1223
  const resetButton = document.createElement("ic-button");
1144
- resetButton.addEventListener("click", () => dataTable.resetRowHeights(40));
1145
- resetButton.innerHTML = "Reset rowHeight to 40";
1146
- const setButton = document.createElement("ic-button");
1147
- setButton.addEventListener("click", () => {
1224
+ resetButton.addEventListener("click", () => dataTable.resetRowHeights());
1225
+ resetButton.innerHTML = "Reset row height: auto";
1226
+ const rowHeight40Btn = document.createElement("ic-button");
1227
+ rowHeight40Btn.addEventListener("click", () => {
1228
+ dataTable.globalRowHeight = 40;
1229
+ });
1230
+ rowHeight40Btn.innerHTML = "Set global row height: 40";
1231
+ const rowHeight80Btn = document.createElement("ic-button");
1232
+ rowHeight80Btn.addEventListener("click", () => {
1148
1233
  dataTable.globalRowHeight = 80;
1149
1234
  });
1150
- setButton.innerHTML = "Set global row height to 80";
1151
- const increaseButton = document.createElement("ic-button");
1152
- increaseButton.addEventListener("click", () => {
1235
+ rowHeight80Btn.innerHTML = "Set global row height: 80";
1236
+ const rowHeight150Btn = document.createElement("ic-button");
1237
+ rowHeight150Btn.addEventListener("click", () => {
1153
1238
  dataTable.globalRowHeight = 150;
1154
1239
  });
1155
- increaseButton.innerHTML = "Set global row height to 150";
1156
- const updateDataButton = document.createElement("ic-button");
1157
- updateDataButton.addEventListener("click", () => {
1240
+ rowHeight150Btn.innerHTML = "Set global row height: 150";
1241
+ const updateRows200Btn = document.createElement("ic-button");
1242
+ updateRows200Btn.addEventListener("click", () => {
1158
1243
  setTimeout(() => {
1159
1244
  dataTable.data = VERY_LONG_DATA(200);
1160
1245
  }, 500);
1161
1246
  });
1162
- updateDataButton.innerHTML = "Update rows to 200";
1163
- const switchTruncation = document.createElement("ic-button");
1164
- switchTruncation.addEventListener("click", () => {
1165
- if (dataTable.truncationPattern === "show-hide") {
1166
- dataTable.truncationPattern = "tooltip";
1167
- }
1168
- else {
1169
- dataTable.truncationPattern = "show-hide";
1170
- }
1247
+ updateRows200Btn.innerHTML = "Update data rows: 200";
1248
+ const tooltipTruncationBtn = document.createElement("ic-button");
1249
+ tooltipTruncationBtn.textContent = "truncationPattern: tooltip";
1250
+ tooltipTruncationBtn.addEventListener("click", () => {
1251
+ dataTable.truncationPattern = "tooltip";
1252
+ });
1253
+ const showHideTruncationBtn = document.createElement("ic-button");
1254
+ showHideTruncationBtn.textContent = "truncationPattern: show-hide";
1255
+ showHideTruncationBtn.addEventListener("click", () => {
1256
+ dataTable.truncationPattern = "show-hide";
1171
1257
  });
1172
- switchTruncation.innerHTML = "Toggle truncation pattern";
1173
1258
  const buttonWrapper = document.createElement("div");
1174
1259
  buttonWrapper.className = "wrapper";
1175
1260
  buttonWrapper.style["display"] = "flex";
1176
- buttonWrapper.style["paddingTop"] = "10px";
1261
+ buttonWrapper.style["flexWrap"] = "wrap";
1262
+ buttonWrapper.style["paddingBlock"] = "10px";
1177
1263
  buttonWrapper.style["gap"] = "8px";
1178
- buttonWrapper.insertAdjacentElement("afterbegin", setButton);
1264
+ buttonWrapper.insertAdjacentElement("beforeend", tooltipTruncationBtn);
1265
+ buttonWrapper.insertAdjacentElement("beforeend", showHideTruncationBtn);
1266
+ buttonWrapper.insertAdjacentElement("beforeend", rowHeight40Btn);
1267
+ buttonWrapper.insertAdjacentElement("beforeend", rowHeight80Btn);
1268
+ buttonWrapper.insertAdjacentElement("beforeend", rowHeight150Btn);
1179
1269
  buttonWrapper.insertAdjacentElement("beforeend", resetButton);
1180
- buttonWrapper.insertAdjacentElement("beforeend", increaseButton);
1181
- buttonWrapper.insertAdjacentElement("beforeend", updateDataButton);
1182
- buttonWrapper.insertAdjacentElement("beforeend", switchTruncation);
1270
+ buttonWrapper.insertAdjacentElement("beforeend", updateRows200Btn);
1183
1271
  const wrapper = document.createElement("div");
1272
+ wrapper.insertAdjacentElement("beforeend", description);
1184
1273
  wrapper.insertAdjacentElement("beforeend", buttonWrapper);
1185
1274
  wrapper.insertAdjacentElement("beforeend", dataTable);
1186
1275
  return wrapper;