@colijnit/corecomponents_v12 258.1.5 → 258.1.7

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.
@@ -1015,6 +1015,7 @@ var CoreComponentsIcon;
1015
1015
  CoreComponentsIcon["ArrowScrollRight"] = "arrow_scroll_right";
1016
1016
  CoreComponentsIcon["ArrowScrollUp"] = "arrow_scroll_up";
1017
1017
  CoreComponentsIcon["ArrowUp"] = "arrow_up";
1018
+ CoreComponentsIcon["ArrowUpArrowDown"] = "arrow_up_arrow_down";
1018
1019
  CoreComponentsIcon["Article"] = "article";
1019
1020
  CoreComponentsIcon["ArticleWithFold"] = "article_with_fold";
1020
1021
  CoreComponentsIcon["AsteriskSmall"] = "asterisk_small";
@@ -1112,6 +1113,7 @@ var CoreComponentsIcon;
1112
1113
  CoreComponentsIcon["GlobalSearch"] = "global_search";
1113
1114
  CoreComponentsIcon["Globe"] = "globe";
1114
1115
  CoreComponentsIcon["GreaterThan"] = "greater_than";
1116
+ CoreComponentsIcon["GripDotsVerticalSolid"] = "grip_dots_vertical_solid";
1115
1117
  CoreComponentsIcon["Groupby"] = "groupby";
1116
1118
  CoreComponentsIcon["Hamburger"] = "hamburger";
1117
1119
  CoreComponentsIcon["HandPointer"] = "hand_pointer";
@@ -1316,6 +1318,7 @@ const CoreComponentsIconSvg = {
1316
1318
  "arrow_scroll_right": "<svg xmlns=\"http://www.w3.org/2000/svg\" enable-background=\"new 0 0 50 50\" viewBox=\"0 0 50 50\" y=\"0px\" x=\"0px\" version=\"1.1\"><metadata ><rdf:RDF><cc:Work rdf:about=\"\"><dc:format>image/svg+xml</dc:format><dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs /><polygon fill=\"#000000\" transform=\"matrix(0,-1,1,0,0,50)\" points=\"41.5,15.8 45,19.4 25,34.2 5,19.4 8.5,15.8 25,27.3 \" /></svg>",
1317
1319
  "arrow_scroll_up": "<svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" x=\"0px\" y=\"0px\" viewBox=\"0 0 50 50\" enable-background=\"new 0 0 50 50\" ><polygon fill=\"#29363E\" points=\"5,30.6 8.5,34.2 25,22.7 41.5,34.2 45,30.6 25,15.8 \"/></svg>",
1318
1320
  "arrow_up": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 51 51\"><polygon points=\"27.5 19.4 27.5 38 23.4 38 23.4 19.4 23.4 19.4 19.1 19.4 25.4 13 31.8 19.4 27.5 19.4\" fill=\"#2a363b\"/></svg>",
1321
+ "arrow_up_arrow_down": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M529 377c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-55 55L440 56c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 342.1-55-55c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l96 96c9.4 9.4 24.6 9.4 33.9 0l96-96zM177 39c-9.4-9.4-24.6-9.4-33.9 0L47 135c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l55-55L136 456c0 13.3 10.7 24 24 24s24-10.7 24-24l0-342.1 55 55c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L177 39z\"/></svg>",
1319
1322
  "article": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 50 50\"><path d=\"M37.43,15.14H12.57A2.57,2.57,0,0,0,10,17.71V32.29a2.57,2.57,0,0,0,2.57,2.57H37.43A2.57,2.57,0,0,0,40,32.29V17.71A2.57,2.57,0,0,0,37.43,15.14ZM14.29,32.71H12.15V17.29h2.14Zm2,0H15V17.29h1.29Zm2.57,0H17.54V17.29h1.29Zm3.52,0H20.2V17.29h2.15Zm2,0H23.11V17.29H24.4Zm2.06,0H25.17V17.29h1.29Zm2.66,0H27.83V17.29h1.29Zm3.51,0H31.34V17.29h1.29Zm3.34,0H33.4V17.29H36Zm2.32,0H37V17.29h1.29Z\" fill=\"#484f60\"/></svg>",
1320
1323
  "article_with_fold": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 50 50\"><path d=\"M31.51,35.5H12a.5.5,0,0,1-.5-.5V15a.5.5,0,0,1,.5-.5H38a.5.5,0,0,1,.5.5V28.73H40V15a2,2,0,0,0-2-2H12a2,2,0,0,0-2,2V35a2,2,0,0,0,2,2H31.51Z\" fill=\"#484f60\"/><path d=\"M40,28.73H33.56c-1.78,0-2.05.27-2.05,2.05V37Z\" fill=\"#484f60\"/><rect x=\"14.5\" y=\"18.5\" width=\"6\" height=\"5\" fill=\"#484f60\"/><rect x=\"14.5\" y=\"30.5\" width=\"15\" height=\"1\" fill=\"#484f60\"/><rect x=\"14.5\" y=\"26.5\" width=\"15\" height=\"1\" fill=\"#484f60\"/><rect x=\"22.5\" y=\"22.5\" width=\"13\" height=\"1\" fill=\"#484f60\"/><rect x=\"22.5\" y=\"18.5\" width=\"13\" height=\"1\" fill=\"#484f60\"/></svg>",
1321
1324
  "asterisk_small": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 50 50\"><rect x=\"10\" y=\"22\" width=\"30\" height=\"6\" transform=\"translate(15.85 -9.15) rotate(30)\" fill=\"#484f60\"/><rect x=\"10\" y=\"22\" width=\"30\" height=\"6\" transform=\"translate(0 50) rotate(-90)\" fill=\"#484f60\"/><rect x=\"10\" y=\"22\" width=\"30\" height=\"6\" transform=\"translate(-9.15 15.85) rotate(-30)\" fill=\"#484f60\"/></svg>",
@@ -1413,6 +1416,7 @@ const CoreComponentsIconSvg = {
1413
1416
  "global_search": "<svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" x=\"0px\" y=\"0px\" viewBox=\"0 0 50 50\" enable-background=\"new 0 0 50 50\" ><g><path opacity=\"0.75\" fill=\"#29363E\" d=\"M33.5,21.5c0.1-0.1,0.2-0.1,0.3,0l0.8,0.6c0.1,0.1,0.1,0,0.1-0.1l-0.3-0.9c0-0.1,0-0.2,0.1-0.3l0.8-0.6c0.1-0.1,0.1-0.1,0-0.1l-1,0c-0.1,0-0.2-0.1-0.2-0.2l-0.3-0.9c0-0.1-0.1-0.1-0.1,0l-0.3,0.9c0,0.1-0.1,0.2-0.2,0.2l-1,0c-0.1,0-0.1,0.1,0,0.1l0.8,0.6c0.1,0.1,0.1,0.2,0.1,0.3L32.6,22c0,0.1,0,0.1,0.1,0.1L33.5,21.5z\"/><path opacity=\"0.5\" fill=\"#29363E\" d=\"M34.7,16.3L34,16.8c-0.1,0-0.1,0-0.1-0.1l0.3-0.8c0-0.1,0-0.2-0.1-0.2l-0.7-0.5c-0.1-0.1-0.1-0.1,0-0.1l0.9,0c0.1,0,0.2-0.1,0.2-0.2l0.3-0.8c0-0.1,0.1-0.1,0.1,0l0.3,0.8c0,0.1,0.1,0.1,0.2,0.2l0.9,0c0.1,0,0.1,0,0,0.1l-0.7,0.5c-0.1,0.1-0.1,0.2-0.1,0.2l0.2,0.8c0,0.1,0,0.1-0.1,0.1L35,16.3C34.9,16.3,34.8,16.3,34.7,16.3z\"/><path opacity=\"0.75\" fill=\"#29363E\" d=\"M30.5,26.2c0.1-0.1,0.2-0.1,0.3,0l0.9,0.6c0.1,0.1,0.1,0,0.1-0.1l-0.3-1.1c0-0.1,0-0.2,0.1-0.3l0.9-0.7c0.1-0.1,0.1-0.1,0-0.1l-1.1,0c-0.1,0-0.2-0.1-0.3-0.2l-0.4-1.1c0-0.1-0.1-0.1-0.1,0l-0.4,1.1c0,0.1-0.2,0.2-0.3,0.2l-1.1,0c-0.1,0-0.1,0.1,0,0.1l0.9,0.7c0.1,0.1,0.1,0.2,0.1,0.3l-0.3,1.1c0,0.1,0,0.1,0.1,0.1L30.5,26.2z\"/><path opacity=\"0.75\" fill=\"#29363E\" d=\"M26.2,30.6c0.1-0.1,0.3-0.1,0.4,0l1,0.7c0.1,0.1,0.2,0,0.1-0.1l-0.4-1.2c0-0.1,0-0.3,0.1-0.3l1-0.7c0.1-0.1,0.1-0.1,0-0.1l-1.2,0c-0.1,0-0.3-0.1-0.3-0.2l-0.4-1.2c0-0.1-0.1-0.1-0.1,0l-0.4,1.2c0,0.1-0.2,0.2-0.3,0.2l-1.2,0c-0.1,0-0.1,0.1,0,0.1l1,0.7c0.1,0.1,0.1,0.2,0.1,0.3l-0.4,1.2c0,0.1,0,0.2,0.1,0.1L26.2,30.6z\"/><path opacity=\"0.5\" fill=\"#29363E\" d=\"M14.9,36.4c0.1-0.1,0.2-0.1,0.3,0L16,37c0.1,0.1,0.1,0,0.1-0.1L15.8,36c0-0.1,0-0.2,0.1-0.3l0.8-0.6c0.1-0.1,0.1-0.1,0-0.1l-1,0c-0.1,0-0.2-0.1-0.2-0.2l-0.3-0.9c0-0.1-0.1-0.1-0.1,0l-0.3,0.9c0,0.1-0.1,0.2-0.2,0.2l-1,0c-0.1,0-0.1,0.1,0,0.1l0.8,0.6c0.1,0.1,0.1,0.2,0.1,0.3L14,36.9c0,0.1,0,0.1,0.1,0.1L14.9,36.4z\"/><path opacity=\"0.25\" fill=\"#29363E\" d=\"M19.3,25.3c0.1,0,0.2,0,0.2,0l0.6,0.4c0.1,0,0.1,0,0.1-0.1L20,25c0-0.1,0-0.2,0.1-0.2l0.6-0.4c0.1,0,0-0.1,0-0.1l-0.7,0c-0.1,0-0.2-0.1-0.2-0.1l-0.2-0.7c0-0.1-0.1-0.1-0.1,0l-0.2,0.7c0,0.1-0.1,0.1-0.2,0.1l-0.7,0c-0.1,0-0.1,0,0,0.1l0.6,0.4c0.1,0,0.1,0.1,0.1,0.2l-0.2,0.7c0,0.1,0,0.1,0.1,0.1L19.3,25.3z\"/><path opacity=\"0.4\" fill=\"#29363E\" d=\"M29.6,16.8c0.1,0,0.2,0,0.2,0l0.6,0.4c0.1,0,0.1,0,0.1-0.1l-0.2-0.7c0-0.1,0-0.2,0.1-0.2l0.6-0.4c0.1,0,0-0.1,0-0.1l-0.7,0c-0.1,0-0.2-0.1-0.2-0.1l-0.2-0.7c0-0.1-0.1-0.1-0.1,0l-0.2,0.7c0,0.1-0.1,0.1-0.2,0.1l-0.7,0c-0.1,0-0.1,0,0,0.1l0.6,0.4c0.1,0,0.1,0.1,0.1,0.2l-0.2,0.7c0,0.1,0,0.1,0.1,0.1L29.6,16.8z\"/><path opacity=\"0.4\" fill=\"#29363E\" d=\"M14.9,31.7c0.1,0,0.2,0,0.3,0l0.7,0.5c0.1,0,0.1,0,0.1-0.1l-0.3-0.8c0-0.1,0-0.2,0.1-0.2l0.7-0.5c0.1-0.1,0.1-0.1,0-0.1l-0.9,0c-0.1,0-0.2-0.1-0.2-0.2l-0.3-0.8c0-0.1-0.1-0.1-0.1,0l-0.3,0.8c0,0.1-0.1,0.1-0.2,0.2l-0.9,0c-0.1,0-0.1,0,0,0.1l0.7,0.5c0.1,0.1,0.1,0.2,0.1,0.2l-0.3,0.8c0,0.1,0,0.1,0.1,0.1L14.9,31.7z\"/><path opacity=\"0.75\" fill=\"#29363E\" d=\"M20.5,35c0.1-0.1,0.3-0.1,0.4,0l1,0.7c0.1,0.1,0.2,0,0.1-0.1l-0.4-1.2c0-0.1,0-0.3,0.1-0.3l1-0.7c0.1-0.1,0.1-0.1,0-0.1l-1.2,0c-0.1,0-0.3-0.1-0.3-0.2l-0.4-1.2c0-0.1-0.1-0.1-0.1,0L20.2,33c0,0.1-0.2,0.2-0.3,0.2l-1.2,0c-0.1,0-0.1,0.1,0,0.1l1,0.7c0.1,0.1,0.1,0.2,0.1,0.3l-0.4,1.2c0,0.1,0,0.2,0.1,0.1L20.5,35z\"/><path opacity=\"0.25\" fill=\"#29363E\" d=\"M24,20.8c0.1,0,0.2,0,0.2,0l0.6,0.4c0.1,0,0.1,0,0.1-0.1l-0.2-0.7c0-0.1,0-0.2,0.1-0.2l0.6-0.4c0.1,0,0-0.1,0-0.1l-0.7,0c-0.1,0-0.2-0.1-0.2-0.1l-0.2-0.7c0-0.1-0.1-0.1-0.1,0l-0.2,0.7c0,0.1-0.1,0.1-0.2,0.1l-0.7,0c-0.1,0-0.1,0,0,0.1l0.6,0.4c0.1,0,0.1,0.1,0.1,0.2l-0.2,0.7c0,0.1,0,0.1,0.1,0.1L24,20.8z\"/><path fill=\"#29363E\" d=\"M25.5,27.7l0.3-0.8c-0.8,0.6-1.7,1-2.6,1.2l1.7,0C25.1,28.1,25.4,27.9,25.5,27.7z\"/><path fill=\"#29363E\" d=\"M22.5,28.4c-0.1-0.1-0.1-0.1-0.1-0.1c-1.9,0.2-3.9-0.4-5.4-1.9c-2.6-2.6-2.6-6.8,0-9.4c2.6-2.6,6.8-2.6,9.4,0c1.8,1.8,2.4,4.5,1.6,6.8l1.3,0c0.2,0,0.5-0.2,0.5-0.4l0.5-1.4c0.1-2.3-0.8-4.7-2.5-6.4c-3.4-3.4-8.9-3.4-12.3,0c-3.4,3.4-3.4,8.9,0,12.3c2.4,2.4,5.9,3.1,8.9,2.1c0,0,0,0-0.1-0.1L22.5,28.4z\"/><path fill=\"#29363E\" d=\"M27.6,28c0.1-0.1,0.2-0.1,0.2-0.2c0.4-0.4,0.7-0.8,1-1.2L29,26c0.1-0.2,0-0.5-0.2-0.6l-1.1-0.8c-0.2,0.5-0.6,1-1,1.4l0.6,1.7C27.3,27.8,27.4,27.9,27.6,28z\"/><path fill=\"#29363E\" d=\"M36.4,32.8l-4.3-4.3c-0.6-0.6-1.6-0.7-2.3-0.4l0.4,0c0.2,0,0.3,0.1,0.1,0.3l-1.9,1.4c-0.2,0.1-0.3,0.4-0.2,0.7l0.6,1.8l4.1,4.1c0.8,0.8,2.1,0.8,2.9,0l0.7-0.7C37.2,34.9,37.2,33.6,36.4,32.8z\"/></g></svg>",
1414
1417
  "globe": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 50 50\"><path d=\"M25.86,37.19a14.53,14.53,0,0,1-8.31-2.75V40H34.18V34.44A14.54,14.54,0,0,1,25.86,37.19Z\" fill=\"#484f60\"/><path d=\"M25.81,36a12.39,12.39,0,0,1-12-9.41l0-.13L15,24.83l.11.65A10.92,10.92,0,1,0,21.22,13.7l-.21.1-.87-1.24.3-.14a12.14,12.14,0,0,1,5.37-1.24,12.42,12.42,0,1,1,0,24.83Z\" fill=\"#484f60\"/><polygon points=\"19.48 13.58 18.1 17.41 14.21 18.59 17.42 21.09 17.34 25.15 20.71 22.86 24.55 24.2 23.42 20.29 25.86 17.05 21.8 16.92 19.48 13.58\" fill=\"#484f60\"/><polygon points=\"11.9 14.69 13.84 14.34 15.27 15.68 15.54 13.73 17.26 12.79 15.49 11.93 15.12 10 13.76 11.42 11.81 11.17 12.74 12.91 11.9 14.69\" fill=\"#484f60\"/><polygon points=\"15.02 21.84 13.82 22.23 12.79 21.49 12.78 22.75 11.77 23.5 12.96 23.9 13.36 25.09 14.11 24.08 15.37 24.07 14.63 23.05 15.02 21.84\" fill=\"#484f60\"/><path d=\"M33.27,29.27l-.74-.56a8.46,8.46,0,0,0-2.36-12.35l.48-.8a9.32,9.32,0,0,1,4.54,8A9.23,9.23,0,0,1,33.27,29.27Z\" fill=\"#484f60\"/><rect x=\"14.36\" y=\"38\" width=\"23\" height=\"2\" fill=\"#484f60\"/></svg>",
1415
1418
  "greater_than": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 50 50\"><path d=\"M18.63,13.81l14.65,9.58a.48.48,0,0,1,.23.42v2.38a.48.48,0,0,1-.23.42L18.63,36.19a.5.5,0,0,1-.69-.14L16.57,34a.49.49,0,0,1,.15-.69l12-7.84a.5.5,0,0,0,0-.84l-12-7.84a.49.49,0,0,1-.15-.69L17.94,14A.5.5,0,0,1,18.63,13.81Z\" fill=\"#484f60\"/></svg>",
1419
+ "grip_dots_vertical_solid": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 512\"><path d=\"M48 144c26.5 0 48-21.5 48-48s-21.5-48-48-48S0 69.5 0 96s21.5 48 48 48zm0 160c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zM96 416c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM208 144c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm48 112c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM208 464c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48z\"/></svg>",
1416
1420
  "groupby": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 50 50\"><rect x=\"10\" y=\"11.17\" width=\"8\" height=\"3\" fill=\"#484f60\"/><rect x=\"10\" y=\"26.17\" width=\"8\" height=\"3\" fill=\"#484f60\"/><rect x=\"22\" y=\"11.17\" width=\"8\" height=\"3\" fill=\"#484f60\" opacity=\"0.25\"/><rect x=\"22\" y=\"16.17\" width=\"8\" height=\"3\" fill=\"#484f60\" opacity=\"0.25\"/><rect x=\"22\" y=\"21.17\" width=\"8\" height=\"3\" fill=\"#484f60\" opacity=\"0.25\"/><rect x=\"22\" y=\"26.17\" width=\"8\" height=\"3\" fill=\"#484f60\" opacity=\"0.25\"/><rect x=\"22\" y=\"31.17\" width=\"8\" height=\"3\" fill=\"#484f60\" opacity=\"0.25\"/><rect x=\"32\" y=\"11.17\" width=\"8\" height=\"3\" fill=\"#484f60\" opacity=\"0.25\"/><rect x=\"32\" y=\"16.17\" width=\"8\" height=\"3\" fill=\"#484f60\" opacity=\"0.25\"/><rect x=\"32\" y=\"21.17\" width=\"8\" height=\"3\" fill=\"#484f60\" opacity=\"0.25\"/><rect x=\"32\" y=\"26.17\" width=\"8\" height=\"3\" fill=\"#484f60\" opacity=\"0.25\"/><rect x=\"32\" y=\"31.17\" width=\"8\" height=\"3\" fill=\"#484f60\" opacity=\"0.25\"/><rect x=\"22\" y=\"36.17\" width=\"8\" height=\"3\" fill=\"#484f60\" opacity=\"0.25\"/><rect x=\"32\" y=\"36.17\" width=\"8\" height=\"3\" fill=\"#484f60\" opacity=\"0.25\"/><rect x=\"19.5\" y=\"11.17\" width=\"1\" height=\"28\" fill=\"#484f60\"/></svg>",
1417
1421
  "hamburger": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 50 50\"><rect x=\"14\" y=\"15.17\" width=\"22\" height=\"4\" fill=\"#484f60\"/><rect x=\"14\" y=\"23.17\" width=\"22\" height=\"4\" fill=\"#484f60\"/><rect x=\"14\" y=\"31.17\" width=\"22\" height=\"4\" fill=\"#484f60\"/></svg>",
1418
1422
  "hand_pointer": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 50 50\"><path d=\"M24.16,20.4,23,19.8l-2-3.19-1.56-2-.82-1.08-1.93-2L14,10H12.58l-.89.89L12.21,12l3.11,2.79L16,16.34l2.15,3.42,1,2.86.08.93.11,3-.3-1.08-1.22-1.19-1-1.22-2.22-2.23-1.34-.44-1.11.29-.89.78L13,23.29l2,2.49,2.71,4.71L20.45,33l2.3,1.45,3.08,1.33,2.41,1.27,2.53,1.3.3,1.63,7.61-7.57V31.27S37.53,30,37.42,30a20.15,20.15,0,0,1-1-2.08l-.6-2.42-.44-1.22-1.67-2.12-1.08-1.41-.63-1-1.12-1.45-1-1-1.68-1.09-.27.54,1.75,2.68-1.18-.59-1.09-1.87-1.69-1.75L24.35,15l0,.76L27,19.65l-1.19-.6L23.5,15.39,22,14.3l-1.63.15.22.71Z\" fill=\"#484f60\"/></svg>",
@@ -9471,12 +9475,135 @@ BaseSimpleGridComponent.propDecorators = {
9471
9475
  handleMouseUp: [{ type: HostListener, args: ['document:mouseup', ['$event'],] }]
9472
9476
  };
9473
9477
 
9478
+ class ExcelExportService {
9479
+ /**
9480
+ * Export data to Excel file
9481
+ * @param data - Array of objects to export
9482
+ * @param columns - Column configuration (optional)
9483
+ * @param fileName - Name of the exported file
9484
+ * @param sheetName - Name of the Excel sheet
9485
+ */
9486
+ exportToExcel(data, columns, fileName = 'export', sheetName = 'Sheet1') {
9487
+ // If columns are specified, transform data to match column structure
9488
+ let exportData = data;
9489
+ if (columns && columns.length > 0) {
9490
+ exportData = data.map(item => {
9491
+ const newItem = {};
9492
+ columns.forEach(col => {
9493
+ newItem[col.header] = this.getNestedValue(item, col.key);
9494
+ });
9495
+ return newItem;
9496
+ });
9497
+ }
9498
+ // Create workbook and worksheet
9499
+ const wb = XLSX.utils.book_new();
9500
+ const ws = XLSX.utils.json_to_sheet(exportData);
9501
+ // Set column widths if specified
9502
+ if (columns && columns.some(col => col.width)) {
9503
+ const colWidths = columns.map(col => ({ wch: col.width || 20 }));
9504
+ ws['!cols'] = colWidths;
9505
+ }
9506
+ // Add worksheet to workbook
9507
+ XLSX.utils.book_append_sheet(wb, ws, sheetName);
9508
+ // Save file
9509
+ XLSX.writeFile(wb, `${fileName}.xlsx`);
9510
+ }
9511
+ /**
9512
+ * Export multiple sheets to one Excel file
9513
+ * @param sheets - Array of sheet data
9514
+ * @param fileName - Name of the exported file
9515
+ */
9516
+ exportMultipleSheets(sheets, fileName = 'multi-sheet-export') {
9517
+ const wb = XLSX.utils.book_new();
9518
+ sheets.forEach(sheet => {
9519
+ let exportData = sheet.data;
9520
+ if (sheet.columns && sheet.columns.length > 0) {
9521
+ exportData = sheet.data.map(item => {
9522
+ const newItem = {};
9523
+ sheet.columns.forEach(col => {
9524
+ newItem[col.header] = this.getNestedValue(item, col.key);
9525
+ });
9526
+ return newItem;
9527
+ });
9528
+ }
9529
+ const ws = XLSX.utils.json_to_sheet(exportData);
9530
+ if (sheet.columns && sheet.columns.some(col => col.width)) {
9531
+ const colWidths = sheet.columns.map(col => ({ wch: col.width || 20 }));
9532
+ ws['!cols'] = colWidths;
9533
+ }
9534
+ XLSX.utils.book_append_sheet(wb, ws, sheet.sheetName);
9535
+ });
9536
+ XLSX.writeFile(wb, `${fileName}.xlsx`);
9537
+ }
9538
+ /**
9539
+ * Export HTML table to Excel
9540
+ * @param tableId - ID of the HTML table element
9541
+ * @param fileName - Name of the exported file
9542
+ * @param sheetName - Name of the Excel sheet
9543
+ */
9544
+ exportTableToExcel(tableId, fileName = 'table-export', sheetName = 'Sheet1') {
9545
+ const table = document.getElementById(tableId);
9546
+ if (!table) {
9547
+ console.error(`Table with ID '${tableId}' not found`);
9548
+ return;
9549
+ }
9550
+ const wb = XLSX.utils.book_new();
9551
+ const ws = XLSX.utils.table_to_sheet(table);
9552
+ XLSX.utils.book_append_sheet(wb, ws, sheetName);
9553
+ XLSX.writeFile(wb, `${fileName}.xlsx`);
9554
+ }
9555
+ /**
9556
+ * Get nested object value using dot notation
9557
+ * @param obj - Object to search in
9558
+ * @param path - Dot notation path (e.g., 'user.address.city')
9559
+ */
9560
+ getNestedValue(obj, path) {
9561
+ return path.split('.').reduce((current, key) => {
9562
+ return current && current[key] !== undefined ? current[key] : '';
9563
+ }, obj);
9564
+ }
9565
+ /**
9566
+ * Format date for Excel export
9567
+ * @param date - Date to format
9568
+ * @param format - Format string (default: 'MM/DD/YYYY')
9569
+ */
9570
+ formatDateForExport(date, format = 'MM/DD/YYYY') {
9571
+ if (!date) {
9572
+ return '';
9573
+ }
9574
+ const d = new Date(date);
9575
+ if (isNaN(d.getTime())) {
9576
+ return '';
9577
+ }
9578
+ const month = (d.getMonth() + 1).toString().padStart(2, '0');
9579
+ const day = d.getDate().toString().padStart(2, '0');
9580
+ const year = d.getFullYear();
9581
+ switch (format) {
9582
+ case 'MM/DD/YYYY':
9583
+ return `${month}/${day}/${year}`;
9584
+ case 'DD/MM/YYYY':
9585
+ return `${day}/${month}/${year}`;
9586
+ case 'YYYY-MM-DD':
9587
+ return `${year}-${month}-${day}`;
9588
+ default:
9589
+ return d.toLocaleDateString();
9590
+ }
9591
+ }
9592
+ }
9593
+ ExcelExportService.ɵprov = i0.ɵɵdefineInjectable({ factory: function ExcelExportService_Factory() { return new ExcelExportService(); }, token: ExcelExportService, providedIn: "root" });
9594
+ ExcelExportService.decorators = [
9595
+ { type: Injectable, args: [{
9596
+ providedIn: 'root'
9597
+ },] }
9598
+ ];
9599
+
9474
9600
  class SimpleGridComponent extends BaseSimpleGridComponent {
9475
- constructor(icons, _changeDetection, _formMaster) {
9601
+ constructor(icons, _changeDetection, _formMaster, excelExportService) {
9476
9602
  super();
9477
9603
  this.icons = icons;
9478
9604
  this._changeDetection = _changeDetection;
9479
9605
  this._formMaster = _formMaster;
9606
+ this.excelExportService = excelExportService;
9480
9607
  this.defaultTextAlign = ColumnAlign.Left;
9481
9608
  this.showAdd = false;
9482
9609
  this.showDelete = false;
@@ -9484,6 +9611,7 @@ class SimpleGridComponent extends BaseSimpleGridComponent {
9484
9611
  this.rightToolbar = false;
9485
9612
  this.showGridSettings = false;
9486
9613
  this.rowsPerPage = 1000;
9614
+ this.showColumnSort = false;
9487
9615
  this.editing = false;
9488
9616
  this.isSettingsMenuOpen = false;
9489
9617
  this.editRowIndex = -1;
@@ -9555,13 +9683,6 @@ class SimpleGridComponent extends BaseSimpleGridComponent {
9555
9683
  }
9556
9684
  });
9557
9685
  }
9558
- isSingleColumn(column) {
9559
- return column.singleColumn;
9560
- }
9561
- rowContainsSingleColumn(row, columns) {
9562
- const singleColumn = columns.find(column => this.isSingleColumn(column) && !!row[column.field]);
9563
- return !!singleColumn;
9564
- }
9565
9686
  addNewRow() {
9566
9687
  return __awaiter(this, void 0, void 0, function* () {
9567
9688
  if (this.inlineEdit) {
@@ -9704,74 +9825,51 @@ class SimpleGridComponent extends BaseSimpleGridComponent {
9704
9825
  return obj !== col;
9705
9826
  });
9706
9827
  }
9707
- // TODO Fix this sort method
9708
- // public sortColumn(col: any, columnValue: string): void {
9709
- // console.log(col);
9710
- // console.log("columnValue " + columnValue);
9711
- // col.isSelected = false;
9712
- //
9713
- // if (this.sortColumnValue === columnValue) {
9714
- // this.sortDirection = this.sortDirection === 'asc' ? 'desc' : 'asc';
9715
- // } else {
9716
- // this.sortColumnValue = columnValue;
9717
- // this.sortDirection = 'asc';
9718
- // }
9719
- //
9720
- // console.log(this.data);
9721
- // // this.data = this._sortData(this.data);
9722
- //
9723
- //
9724
- // this.data.sort((a, b) => {
9725
- // const sign = this.sortDirection === 'asc' ? 1 : -1;
9726
- //
9727
- // console.log("a " + a);
9728
- // console.log("b " + b);
9729
- // console.log(a[this.sortColumnValue]);
9730
- // console.log(b[this.sortColumnValue]);
9731
- // console.log("sign " + sign);
9732
- //
9733
- // if (a[this.sortColumnValue] < b[this.sortColumnValue]) {
9734
- // return -1 * sign;
9735
- // } else if (a[this.sortColumnValue] > b[this.sortColumnValue]) {
9736
- // return 1 * sign;
9737
- // }
9738
- // return 0;
9739
- // });
9740
- //
9741
- //
9742
- //
9743
- // this._detectChanges();
9744
- // // this.data.sort((a, b) => a[this.sortColumnValue] - b[this.sortColumnValue]);
9745
- // console.log(this.data);
9746
- // }
9747
- _sortData(tableData) {
9748
- return tableData.sort((a, b) => {
9749
- const sign = this.sortDirection === 'asc' ? 1 : -1;
9750
- console.log("a " + a);
9751
- console.log("b " + b);
9752
- console.log(a[this.sortColumnValue]);
9753
- console.log(b[this.sortColumnValue]);
9754
- console.log("sign " + sign);
9755
- if (a[this.sortColumnValue] < b[this.sortColumnValue]) {
9756
- return -1 * sign;
9757
- }
9758
- else if (a[this.sortColumnValue] > b[this.sortColumnValue]) {
9759
- return 1 * sign;
9760
- }
9761
- return 0;
9828
+ sortColumn(col, columnValue) {
9829
+ col.isSelected = false;
9830
+ if (this.sortColumnValue === columnValue) {
9831
+ this.sortDirection = this.sortDirection === 'asc' ? 'desc' : 'asc';
9832
+ }
9833
+ else {
9834
+ this.sortColumnValue = columnValue;
9835
+ this.sortDirection = 'asc';
9836
+ }
9837
+ const direction = this.sortDirection === 'asc' ? 1 : -1;
9838
+ const sorted = [...this.data].sort((a, b) => {
9839
+ let valA = a[columnValue];
9840
+ let valB = b[columnValue];
9841
+ if (valA == null && valB == null) {
9842
+ return 0;
9843
+ }
9844
+ if (valA == null) {
9845
+ return -1 * direction;
9846
+ }
9847
+ if (valB == null) {
9848
+ return 1 * direction;
9849
+ }
9850
+ // Handle ISO date string
9851
+ const isDateA = typeof valA === 'string' && /^\d{4}-\d{2}-\d{2}T/.test(valA);
9852
+ const isDateB = typeof valB === 'string' && /^\d{4}-\d{2}-\d{2}T/.test(valB);
9853
+ if (isDateA && isDateB) {
9854
+ const timeA = new Date(valA).getTime();
9855
+ const timeB = new Date(valB).getTime();
9856
+ return (timeA - timeB) * direction;
9857
+ }
9858
+ // Fallback for numbers/strings
9859
+ if (typeof valA === 'string' && typeof valB === 'string') {
9860
+ return valA.localeCompare(valB) * direction;
9861
+ }
9862
+ return (valA > valB ? 1 : valA < valB ? -1 : 0) * direction;
9762
9863
  });
9864
+ this.data = sorted;
9865
+ this._detectChanges();
9763
9866
  }
9764
9867
  showAllColumns() {
9765
9868
  this.isSettingsMenuOpen = false;
9766
9869
  this.headerColumnsCopy = this.headerColumns;
9767
9870
  }
9768
9871
  exportToExcel() {
9769
- this.isSettingsMenuOpen = false;
9770
- let element = document.getElementById('simple-grid-table');
9771
- const ws = XLSX.utils.table_to_sheet(element);
9772
- const wb = XLSX.utils.book_new();
9773
- XLSX.utils.book_append_sheet(wb, ws, 'Sheet1');
9774
- XLSX.writeFile(wb, 'ExcelSheet.xlsx');
9872
+ this.excelExportService.exportTableToExcel('simple-grid-table', 'ExcelSheet', 'Sheet1');
9775
9873
  }
9776
9874
  prepareDataRow(row, index) {
9777
9875
  this.isRowDisabled(row, index);
@@ -9918,140 +10016,155 @@ SimpleGridComponent.decorators = [
9918
10016
  { type: Component, args: [{
9919
10017
  selector: 'co-simple-grid',
9920
10018
  template: `
9921
- <co-grid-toolbar *ngIf="showToolbar" [class.right]="rightToolbar"
9922
- [showEdit]="showEdit"
9923
- [showAdd]="showAdd"
9924
- [showDelete]="showDelete"
9925
- [deleteEnabled]="selectedRowIndex > -1"
9926
- (addClick)="addNewRow()"
9927
- (editClick)="editRow($event)"
9928
- (saveClick)="validateAndSave()"
9929
- (cancelClick)="cancelEditRow()"
9930
- (deleteClick)="removeRow()"
9931
- ></co-grid-toolbar>
9932
- <table
9933
- id="simple-grid-table"
9934
- class="simple-grid-table"
9935
- [clickOutside]="editing"
9936
- (clickOutside)="handleClickOutsideRow()">
9937
- <colgroup>
9938
- <col *ngFor="let column of headerColumnsCopy; let index = index"
9939
- [class.simple-grid-column-auto-fit]="column.autoFit"
9940
- [style.width.px]="column.width"
9941
- [style.min-width.px]="MIN_COLUMN_WIDTH">
9942
- </colgroup>
9943
- <thead>
9944
- <tr>
9945
- <th
9946
- scope="col"
9947
- #headerCell
9948
- class="simple-grid-column-header"
9949
- *ngFor="let column of headerColumnsCopy; let index = index">
9950
- <div
9951
- class="simple-grid-column-header-wrapper"
9952
- [class.resizable]="resizable"
9953
- [class.selected]="column.isSelected"
9954
- [ngClass]="column.textAlign ? column.textAlign : defaultTextAlign">
9955
- <ng-container *ngIf="column.headerTemplate; else noHeaderTemplate">
9956
- <ng-container [ngTemplateOutlet]="column.headerTemplate"></ng-container>
9957
- </ng-container>
9958
- <ng-template #noHeaderTemplate>
9959
- <div class="simple-grid-column-header-label"
9960
- [ngClass]="column.textAlign ? column.textAlign : defaultTextAlign"
9961
- [class.with-menu]="showGridSettings"
9962
- [textContent]="column.headerText || '&nbsp;'"
9963
- (click)="toggleColumnMenu(column)">
9964
- </div>
10019
+ <co-grid-toolbar
10020
+ *ngIf="showToolbar" [class.right]="rightToolbar"
10021
+ [showEdit]="showEdit"
10022
+ [showAdd]="showAdd"
10023
+ [showDelete]="showDelete"
10024
+ [deleteEnabled]="selectedRowIndex > -1"
10025
+ (addClick)="addNewRow()"
10026
+ (editClick)="editRow($event)"
10027
+ (saveClick)="validateAndSave()"
10028
+ (cancelClick)="cancelEditRow()"
10029
+ (deleteClick)="removeRow()">
10030
+ </co-grid-toolbar>
9965
10031
 
9966
- <div class="column-menu" *ngIf="column.isSelected">
9967
- <h3 [textContent]="'COLUMN_OPTIONS' | coreLocalize"></h3>
9968
- <ul>
9969
- <li (click)="hideColumn(column)">Hide Column</li>
9970
- <!-- <li (click)="sortColumn(column, column.field)">Sort Column</li>-->
9971
- </ul>
10032
+ <table
10033
+ id="simple-grid-table"
10034
+ class="simple-grid-table"
10035
+ [clickOutside]="editing"
10036
+ (clickOutside)="handleClickOutsideRow()">
10037
+ <colgroup>
10038
+ <col
10039
+ *ngFor="let column of headerColumnsCopy; let index = index"
10040
+ [class.simple-grid-column-auto-fit]="column.autoFit"
10041
+ [style.width.px]="column.width"
10042
+ [style.min-width.px]="MIN_COLUMN_WIDTH">
10043
+ </colgroup>
10044
+ <thead>
10045
+ <tr>
10046
+ <th
10047
+ scope="col"
10048
+ #headerCell
10049
+ class="simple-grid-column-header"
10050
+ *ngFor="let column of headerColumnsCopy; let index = index">
10051
+ <div
10052
+ class="simple-grid-column-header-wrapper"
10053
+ [class.resizable]="resizable"
10054
+ [class.selected]="column.isSelected"
10055
+ [ngClass]="column.textAlign ? column.textAlign : defaultTextAlign">
10056
+ <ng-container *ngIf="column.headerTemplate; else noHeaderTemplate">
10057
+ <ng-container [ngTemplateOutlet]="column.headerTemplate"></ng-container>
10058
+ </ng-container>
10059
+ <ng-template #noHeaderTemplate>
10060
+ <div
10061
+ class="simple-grid-column-header-label"
10062
+ [ngClass]="column.textAlign ? column.textAlign : defaultTextAlign"
10063
+ [class.with-menu]="showGridSettings"
10064
+ [class.with-sort]="showColumnSort"
10065
+ [textContent]="column.headerText || '&nbsp;'"
10066
+ (click)="showColumnSort ? sortColumn(column, column.field) : toggleColumnMenu(column)">
10067
+ </div>
10068
+
10069
+ <div class="sort-column" *ngIf="showColumnSort">
10070
+ <co-button
10071
+ (click)="sortColumn(column, column?.field)"
10072
+ [iconData]="icons.getIcon(Icons.ArrowUpArrowDown)">
10073
+ </co-button>
10074
+ </div>
10075
+
10076
+ <div class="column-menu" *ngIf="column.isSelected">
10077
+ <h3 [textContent]="'COLUMN_OPTIONS' | coreLocalize"></h3>
10078
+ <ul>
10079
+ <li (click)="hideColumn(column)">Hide Column</li>
10080
+ <li (click)="sortColumn(column, column.field)">Sort Column</li>
10081
+ </ul>
10082
+ </div>
10083
+ </ng-template>
10084
+ <div
10085
+ *ngIf="resizable && column.resizable"
10086
+ class="simple-grid-column-sizer"
10087
+ (mousedown)="handleSizerMouseDown($event, column)">
10088
+ </div>
10089
+ </div>
10090
+ </th>
10091
+ </tr>
10092
+
10093
+ <div *ngIf="showGridSettings" class="grid-settings">
10094
+ <co-button
10095
+ [class.selected]="isSettingsMenuOpen"
10096
+ [iconData]="icons.getIcon(Icons.CogWheels)"
10097
+ (click)="toggleSettingsMenu()">
10098
+ </co-button>
10099
+
10100
+ <div class="settings-menu" *ngIf="isSettingsMenuOpen">
10101
+ <h3 [textContent]="'GRID_OPTIONS' | coreLocalize"></h3>
10102
+ <ul>
10103
+ <li (click)="exportToExcel()">Export to Excel</li>
10104
+ <li *ngIf="headerColumnsCopy.length !== headerColumns.length" (click)="showAllColumns()">
10105
+ Show All Columns
10106
+ </li>
10107
+ </ul>
9972
10108
  </div>
9973
- </ng-template>
9974
- <div *ngIf="resizable && column.resizable" class="simple-grid-column-sizer"
9975
- (mousedown)="handleSizerMouseDown($event, column)"
9976
- ></div>
9977
10109
  </div>
9978
- </th>
9979
- <th *ngIf="showGridSettings" class="simple-grid-column-header grid-settings">
9980
- <co-button
9981
- [class.selected]="isSettingsMenuOpen"
9982
- [iconData]="icons.getIcon(Icons.CogWheels)"
9983
- (click)="toggleSettingsMenu()">
9984
- </co-button>
10110
+ </thead>
10111
+ <tbody
10112
+ #dropList cdkDropList cdkDropListOrientation="vertical"
10113
+ class="simple-grid-drag-drop-list"
10114
+ [cdkDropListDisabled]="!dragDropEnabled || editing"
10115
+ [cdkDropListData]="data"
10116
+ [cdkDropListEnterPredicate]="handleCanDragDrop"
10117
+ (cdkDropListDropped)="handleDrop($event)">
10118
+ <co-form class="simple-grid-row-form">
10119
+ <tr
10120
+ class="simple-grid-row"
10121
+ [class.selected]="rowIndex === selectedRowIndex && !editing" observeVisibility
10122
+ [class.disabled]="getIsRowDisabled(rowIndex)"
10123
+ [class.editing]="rowIndex === editRowIndex"
10124
+ *ngFor="let row of (!!rowsPerPage ? (data | paginate: {itemsPerPage: rowsPerPage, currentPage: currentPage}) : data); last as last; let rowIndex = index"
10125
+ cdkDrag
10126
+ (click)="handleClickRow($event, rowIndex, row)" (dblclick)="handleDblClickRow($event, rowIndex, row)"
10127
+ (visibilityChange)="rowVisible.next(row)">
10128
+ <ng-container *ngIf="isSingleColumnRow(row)">
10129
+ <td class="simple-grid-single-column-cell" [attr.colspan]="headerColumnsCopy.length">
10130
+ <co-simple-grid-cell
10131
+ [column]="columns[singleColumnIndex(row)]"
10132
+ [row]="row"
10133
+ [editMode]="false">
10134
+ </co-simple-grid-cell>
10135
+ </td>
10136
+ </ng-container>
10137
+ <ng-container *ngIf="!isSingleColumnRow(row)">
10138
+ <ng-container *ngFor="let column of headerColumnsCopy; let columnIndex = index">
10139
+ <td class="simple-grid-column-cell" *ngIf="columnIndex !== singleColumnIndex(row)">
10140
+ <co-simple-grid-cell
10141
+ [column]="column"
10142
+ [row]="row"
10143
+ [editMode]="inlineEdit && editing && rowIndex === editRowIndex"
10144
+ [fieldEditMode]="editCellIndex === columnIndex && rowIndex === editRowIndex"
10145
+ (cellClick)="handleCellClick($event, row, rowIndex, columnIndex)">
10146
+ </co-simple-grid-cell>
10147
+ <div *ngIf="column.resizable" class="simple-grid-column-sizer-placeholder"></div>
10148
+ </td>
10149
+ </ng-container>
10150
+ </ng-container>
10151
+ </tr>
10152
+ </co-form>
10153
+ </tbody>
10154
+ </table>
9985
10155
 
9986
- <div class="settings-menu" *ngIf="isSettingsMenuOpen">
9987
- <h3 [textContent]="'GRID_OPTIONS' | coreLocalize"></h3>
9988
- <ul>
9989
- <li (click)="exportToExcel()">Export to Excel</li>
9990
- <li *ngIf="headerColumnsCopy.length !== headerColumns.length" (click)="showAllColumns()">Show All
9991
- Columns
9992
- </li>
9993
- </ul>
9994
- </div>
9995
- </th>
9996
- </tr>
9997
- </thead>
9998
- <tbody #dropList cdkDropList cdkDropListOrientation="vertical"
9999
- class="simple-grid-drag-drop-list"
10000
- [cdkDropListDisabled]="!dragDropEnabled || editing"
10001
- [cdkDropListData]="data"
10002
- [cdkDropListEnterPredicate]="handleCanDragDrop"
10003
- (cdkDropListDropped)="handleDrop($event)">
10004
- <tr
10005
- class="simple-grid-row"
10006
- [class.selected]="rowIndex === selectedRowIndex && !editing" observeVisibility
10007
- [class.disabled]="getIsRowDisabled(rowIndex)"
10008
- [class.editing]="rowIndex === editRowIndex"
10009
- *ngFor="let row of (!!rowsPerPage ? (data | paginate: {itemsPerPage: rowsPerPage, currentPage: currentPage}) : data); last as last; let rowIndex = index"
10010
- cdkDrag
10011
- (click)="handleClickRow($event, rowIndex, row)" (dblclick)="handleDblClickRow($event, rowIndex, row)"
10012
- (visibilityChange)="rowVisible.next(row)">
10013
- <co-form class="simple-grid-row-form">
10014
- <ng-container *ngIf="isSingleColumnRow(row)">
10015
- <td class="simple-grid-single-column-cell" [attr.colspan]="headerColumnsCopy.length">
10016
- <co-simple-grid-cell
10017
- [column]="columns[singleColumnIndex(row)]"
10018
- [row]="row"
10019
- [editMode]="false"
10020
- ></co-simple-grid-cell>
10021
- </td>
10022
- </ng-container>
10023
- <ng-container *ngIf="!isSingleColumnRow(row)">
10024
- <ng-container *ngFor="let column of headerColumnsCopy; let columnIndex = index">
10025
- <td class="simple-grid-column-cell" *ngIf="columnIndex !== singleColumnIndex(row)">
10026
- <co-simple-grid-cell
10027
- [column]="column"
10028
- [row]="row"
10029
- [editMode]="inlineEdit && editing && rowIndex === editRowIndex"
10030
- [fieldEditMode]="editCellIndex === columnIndex && rowIndex === editRowIndex"
10031
- (cellClick)="handleCellClick($event, row, rowIndex, columnIndex)"
10032
- ></co-simple-grid-cell>
10033
- <div *ngIf="column.resizable" class="simple-grid-column-sizer-placeholder"></div>
10034
- </td>
10035
- </ng-container>
10036
- </ng-container>
10037
- <td *ngIf="showGridSettings"></td>
10038
- </co-form>
10039
- </tr>
10040
- </tbody>
10041
- </table>
10042
- <co-pagination-bar *ngIf="data?.length > rowsPerPage" class="pagination-bar"
10043
- [itemsPerPage]="rowsPerPage"
10044
- [currentPage]="currentPage"
10045
- [totalItems]="data.length"
10046
- [autoHide]="true"
10047
- (previousClick)="goToPreviousPage()"
10048
- (nextClick)="goToNextPage()"
10049
- (pageClick)="setCurrentPage($event)"
10050
- ></co-pagination-bar>
10156
+ <co-pagination-bar
10157
+ *ngIf="data?.length > rowsPerPage" class="pagination-bar"
10158
+ [itemsPerPage]="rowsPerPage"
10159
+ [currentPage]="currentPage"
10160
+ [totalItems]="data.length"
10161
+ [autoHide]="true"
10162
+ (previousClick)="goToPreviousPage()"
10163
+ (nextClick)="goToNextPage()"
10164
+ (pageClick)="setCurrentPage($event)">
10165
+ </co-pagination-bar>
10051
10166
  `,
10052
- providers: [
10053
- FormMasterService
10054
- ],
10167
+ providers: [FormMasterService],
10055
10168
  changeDetection: ChangeDetectionStrategy.OnPush,
10056
10169
  encapsulation: ViewEncapsulation.None
10057
10170
  },] }
@@ -10059,7 +10172,8 @@ SimpleGridComponent.decorators = [
10059
10172
  SimpleGridComponent.ctorParameters = () => [
10060
10173
  { type: IconCacheService },
10061
10174
  { type: ChangeDetectorRef },
10062
- { type: FormMasterService }
10175
+ { type: FormMasterService },
10176
+ { type: ExcelExportService }
10063
10177
  ];
10064
10178
  SimpleGridComponent.propDecorators = {
10065
10179
  headerCells: [{ type: ViewChildren, args: ['headerCell',] }],
@@ -10070,6 +10184,7 @@ SimpleGridComponent.propDecorators = {
10070
10184
  showGridSettings: [{ type: Input }],
10071
10185
  rowsPerPage: [{ type: Input }],
10072
10186
  rowDisabledFn: [{ type: Input }],
10187
+ showColumnSort: [{ type: Input }],
10073
10188
  canRowBeEdittedFn: [{ type: Input }],
10074
10189
  showClass: [{ type: HostBinding, args: ['class.co-simple-grid',] }],
10075
10190
  handleKeyDown: [{ type: HostListener, args: ['keydown', ['$event'],] }]
@@ -14860,5 +14975,5 @@ HourSchedulingExpandableComponentModule.decorators = [
14860
14975
  * Generated bundle index. Do not edit.
14861
14976
  */
14862
14977
 
14863
- export { ArticleTileComponent, ArticleTileModule, BaseInputComponent, BaseInputDatePickerDirective, BaseModuleScreenConfigService, BaseModuleService, ButtonComponent, ButtonModule, CalendarComponent, CalendarModule, CardComponent, CardModule, Carousel3dComponent, Carousel3dModule, CarouselComponent, CarouselHammerConfig, CarouselModule, CheckmarkOverlayModule, ClickoutsideModule, CoDialogComponent, CoDialogModule, CoDialogWizardComponent, CoDialogWizardModule, CoDirection, CoOrientation, CollapsibleComponent, CollapsibleModule, ColorPickerComponent, ColorPickerModule, ColorSequenceService, ColumnAlign, ContentViewMode, CoreComponentsIcon, CoreComponentsTranslationModule, CoreComponentsTranslationService, CoreDialogModule, CoreDialogService, DoubleCalendarComponent, DoubleCalendarModule, FilterItemComponent, FilterItemMode, FilterItemModule, FilterItemViewmodel, FilterPipe, FilterPipeModule, FilterViewmodel, FormComponent, FormInputUserModelChangeListenerService, FormMasterService, FormModule, GridToolbarButtonComponent, GridToolbarButtonModule, GridToolbarComponent, GridToolbarModule, HourSchedulingComponent, HourSchedulingComponentModule, HourSchedulingExpandableComponent, HourSchedulingExpandableComponentModule, HourSchedulingExpandableTemplateComponent, IconCacheService, IconCollapseHandleComponent, IconCollapseHandleModule, IconComponent, IconModule, ImageComponent, ImageModule, InputCheckboxComponent, InputCheckboxModule, InputDatePickerComponent, InputDatePickerModule, InputDateRangePickerComponent, InputDateRangePickerModule, InputNumberPickerComponent, InputNumberPickerModule, InputRadioButtonComponent, InputRadioButtonModule, InputScannerComponent, InputScannerModule, InputSearchComponent, InputSearchModule, InputTextComponent, InputTextModule, InputTextareaComponent, InputTextareaModule, LevelIndicatorComponent, LevelIndicatorModule, ListOfIconsComponent, ListOfIconsModule, ListOfValuesComponent, ListOfValuesModule, ListOfValuesPopupComponent, LoaderComponent, LoaderModule, NgZoneWrapperService, ObserveVisibilityModule, OrientationOfDirection, OverlayModule, OverlayService, PaginationBarComponent, PaginationBarModule, PaginationComponent, PaginationModule, PopupButtonsComponent, PopupMessageDisplayComponent, PopupModule, PopupWindowShellComponent, PriceDisplayPipe, PriceDisplayPipeModule, PromptService, ResponsiveTextComponent, ResponsiveTextModule, SCREEN_CONFIG_ADAPTER_COMPONENT_INTERFACE_NAME, ScreenConfigurationDirective, ScreenConfigurationModule, SimpleGridColumnDirective, SimpleGridComponent, SimpleGridModule, TemplateWrapperDirective, TemplateWrapperModule, TextInputPopupComponent, TileComponent, TileModule, TileSelectComponent, TileSelectModule, TooltipDirectiveModule, ViewModeButtonsComponent, ViewModeButtonsModule, emailValidator, equalValidator, getValidatePasswordErrorString, maxStringLengthValidator, passwordValidator, precisionScaleValidator, requiredValidator, showHideDialog, InputBoolean as ɵa, RippleModule as ɵb, PaginationService as ɵba, PaginatePipe as ɵbb, SimpleGridCellComponent as ɵbc, ListOfValuesMultiselectPopupComponent as ɵbd, ConfirmationDialogComponent as ɵbe, DialogBaseComponent as ɵbf, CoreDynamicComponentService as ɵbg, PrependPipeModule as ɵbh, PrependPipe as ɵbi, CheckmarkOverlayComponent as ɵbj, ScannerService as ɵbk, TooltipModule as ɵbl, TooltipComponent as ɵbm, TooltipDirective as ɵbn, HourSchedulingTestObjectComponent as ɵbo, MD_RIPPLE_GLOBAL_OPTIONS as ɵc, CoRippleDirective as ɵd, CoViewportRulerService as ɵe, CoScrollDispatcherService as ɵf, CoScrollableDirective as ɵg, StopClickModule as ɵh, StopClickDirective as ɵi, BaseModule as ɵj, AppendPipeModule as ɵk, AppendPipe as ɵl, ValidationErrorModule as ɵm, OverlayDirective as ɵn, OverlayParentDirective as ɵo, CoreLocalizePipe as ɵp, CoreDictionaryService as ɵq, ValidationErrorComponent as ɵr, CommitButtonsModule as ɵs, CommitButtonsComponent as ɵt, ClickOutsideDirective as ɵu, ClickOutsideMasterService as ɵv, CalendarTemplateComponent as ɵw, PopupShowerService as ɵx, BaseSimpleGridComponent as ɵy, ObserveVisibilityDirective as ɵz };
14978
+ export { ArticleTileComponent, ArticleTileModule, BaseInputComponent, BaseInputDatePickerDirective, BaseModuleScreenConfigService, BaseModuleService, ButtonComponent, ButtonModule, CalendarComponent, CalendarModule, CardComponent, CardModule, Carousel3dComponent, Carousel3dModule, CarouselComponent, CarouselHammerConfig, CarouselModule, CheckmarkOverlayModule, ClickoutsideModule, CoDialogComponent, CoDialogModule, CoDialogWizardComponent, CoDialogWizardModule, CoDirection, CoOrientation, CollapsibleComponent, CollapsibleModule, ColorPickerComponent, ColorPickerModule, ColorSequenceService, ColumnAlign, ContentViewMode, CoreComponentsIcon, CoreComponentsTranslationModule, CoreComponentsTranslationService, CoreDialogModule, CoreDialogService, DoubleCalendarComponent, DoubleCalendarModule, FilterItemComponent, FilterItemMode, FilterItemModule, FilterItemViewmodel, FilterPipe, FilterPipeModule, FilterViewmodel, FormComponent, FormInputUserModelChangeListenerService, FormMasterService, FormModule, GridToolbarButtonComponent, GridToolbarButtonModule, GridToolbarComponent, GridToolbarModule, HourSchedulingComponent, HourSchedulingComponentModule, HourSchedulingExpandableComponent, HourSchedulingExpandableComponentModule, HourSchedulingExpandableTemplateComponent, IconCacheService, IconCollapseHandleComponent, IconCollapseHandleModule, IconComponent, IconModule, ImageComponent, ImageModule, InputCheckboxComponent, InputCheckboxModule, InputDatePickerComponent, InputDatePickerModule, InputDateRangePickerComponent, InputDateRangePickerModule, InputNumberPickerComponent, InputNumberPickerModule, InputRadioButtonComponent, InputRadioButtonModule, InputScannerComponent, InputScannerModule, InputSearchComponent, InputSearchModule, InputTextComponent, InputTextModule, InputTextareaComponent, InputTextareaModule, LevelIndicatorComponent, LevelIndicatorModule, ListOfIconsComponent, ListOfIconsModule, ListOfValuesComponent, ListOfValuesModule, ListOfValuesPopupComponent, LoaderComponent, LoaderModule, NgZoneWrapperService, ObserveVisibilityModule, OrientationOfDirection, OverlayModule, OverlayService, PaginationBarComponent, PaginationBarModule, PaginationComponent, PaginationModule, PopupButtonsComponent, PopupMessageDisplayComponent, PopupModule, PopupWindowShellComponent, PriceDisplayPipe, PriceDisplayPipeModule, PromptService, ResponsiveTextComponent, ResponsiveTextModule, SCREEN_CONFIG_ADAPTER_COMPONENT_INTERFACE_NAME, ScreenConfigurationDirective, ScreenConfigurationModule, SimpleGridColumnDirective, SimpleGridComponent, SimpleGridModule, TemplateWrapperDirective, TemplateWrapperModule, TextInputPopupComponent, TileComponent, TileModule, TileSelectComponent, TileSelectModule, TooltipDirectiveModule, ViewModeButtonsComponent, ViewModeButtonsModule, emailValidator, equalValidator, getValidatePasswordErrorString, maxStringLengthValidator, passwordValidator, precisionScaleValidator, requiredValidator, showHideDialog, InputBoolean as ɵa, RippleModule as ɵb, ObserveVisibilityDirective as ɵba, PaginationService as ɵbb, PaginatePipe as ɵbc, SimpleGridCellComponent as ɵbd, ListOfValuesMultiselectPopupComponent as ɵbe, ConfirmationDialogComponent as ɵbf, DialogBaseComponent as ɵbg, CoreDynamicComponentService as ɵbh, PrependPipeModule as ɵbi, PrependPipe as ɵbj, CheckmarkOverlayComponent as ɵbk, ScannerService as ɵbl, TooltipModule as ɵbm, TooltipComponent as ɵbn, TooltipDirective as ɵbo, HourSchedulingTestObjectComponent as ɵbp, MD_RIPPLE_GLOBAL_OPTIONS as ɵc, CoRippleDirective as ɵd, CoViewportRulerService as ɵe, CoScrollDispatcherService as ɵf, CoScrollableDirective as ɵg, StopClickModule as ɵh, StopClickDirective as ɵi, BaseModule as ɵj, AppendPipeModule as ɵk, AppendPipe as ɵl, ValidationErrorModule as ɵm, OverlayDirective as ɵn, OverlayParentDirective as ɵo, CoreLocalizePipe as ɵp, CoreDictionaryService as ɵq, ValidationErrorComponent as ɵr, CommitButtonsModule as ɵs, CommitButtonsComponent as ɵt, ClickOutsideDirective as ɵu, ClickOutsideMasterService as ɵv, CalendarTemplateComponent as ɵw, PopupShowerService as ɵx, BaseSimpleGridComponent as ɵy, ExcelExportService as ɵz };
14864
14979
  //# sourceMappingURL=colijnit-corecomponents_v12.js.map