@zeedhi/common 1.39.1 → 1.40.0
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/style.css +1 -1
- package/dist/zd-common.esm.js +303 -212
- package/dist/zd-common.umd.js +304 -211
- package/package.json +2 -2
- package/types/components/zd-alert/alert.d.ts +2 -0
- package/types/components/zd-breadcrumbs/breadcrumbs.d.ts +0 -8
- package/types/components/zd-button/button.d.ts +0 -8
- package/types/components/zd-button/interfaces.d.ts +0 -2
- package/types/components/zd-button-group/button-group.d.ts +0 -8
- package/types/components/zd-button-group/interfaces.d.ts +0 -2
- package/types/components/zd-card/card.d.ts +0 -8
- package/types/components/zd-card/interfaces.d.ts +0 -2
- package/types/components/zd-carousel/carousel.d.ts +0 -8
- package/types/components/zd-carousel/interfaces.d.ts +0 -2
- package/types/components/zd-component/component.d.ts +8 -0
- package/types/components/zd-component/interfaces.d.ts +2 -0
- package/types/components/zd-divider/divider.d.ts +0 -8
- package/types/components/zd-divider/interfaces.d.ts +0 -2
- package/types/components/zd-footer/footer.d.ts +0 -8
- package/types/components/zd-footer/interfaces.d.ts +0 -2
- package/types/components/zd-form/form.d.ts +10 -1
- package/types/components/zd-grid/grid-column.d.ts +2 -0
- package/types/components/zd-grid/grid.d.ts +4 -0
- package/types/components/zd-grid/interfaces.d.ts +1 -0
- package/types/components/zd-header/header.d.ts +0 -8
- package/types/components/zd-icon/icon.d.ts +0 -8
- package/types/components/zd-icon/interfaces.d.ts +0 -2
- package/types/components/zd-input/input.d.ts +0 -8
- package/types/components/zd-list/interfaces.d.ts +0 -2
- package/types/components/zd-list/list.d.ts +0 -8
- package/types/components/zd-login/interfaces.d.ts +0 -1
- package/types/components/zd-login/login.d.ts +0 -4
- package/types/components/zd-menu/interfaces.d.ts +0 -1
- package/types/components/zd-menu/menu.d.ts +0 -4
- package/types/components/zd-progress/progress.d.ts +0 -8
- package/types/components/zd-select-tree/interfaces.d.ts +1 -0
- package/types/components/zd-select-tree/select-tree.d.ts +6 -0
- package/types/components/zd-steppers/interfaces.d.ts +0 -2
- package/types/components/zd-steppers/steppers.d.ts +0 -8
- package/types/utils/report/index.d.ts +2 -0
- package/types/utils/report/report-type/base-report.d.ts +3 -1
- package/types/utils/report/report-type/interfaces.d.ts +2 -1
- package/types/utils/report/report-type/xls-report.d.ts +1 -16
- package/types/utils/report/report-type/xls2-report.d.ts +16 -0
- package/types/utils/report/report-type/xls3-report.d.ts +16 -0
package/dist/zd-common.esm.js
CHANGED
|
@@ -48,6 +48,14 @@ class Component {
|
|
|
48
48
|
* Controls component visibility.
|
|
49
49
|
*/
|
|
50
50
|
this.isVisible = true;
|
|
51
|
+
/**
|
|
52
|
+
* Applies the dark theme variant to the component.
|
|
53
|
+
*/
|
|
54
|
+
this.dark = false;
|
|
55
|
+
/**
|
|
56
|
+
* Applies the light theme variant to the component.
|
|
57
|
+
*/
|
|
58
|
+
this.light = false;
|
|
51
59
|
/**
|
|
52
60
|
* Define component key mapping
|
|
53
61
|
*/
|
|
@@ -63,6 +71,8 @@ class Component {
|
|
|
63
71
|
this.cssClass = this.getInitValue('cssClass', props.cssClass, this.cssClass);
|
|
64
72
|
this.cssStyle = this.getInitValue('cssStyle', props.cssStyle, this.cssStyle);
|
|
65
73
|
this.isVisible = this.getInitValue('isVisible', props.isVisible, this.isVisible);
|
|
74
|
+
this.dark = this.getInitValue('dark', props.dark, this.dark);
|
|
75
|
+
this.light = this.getInitValue('light', props.light, this.light);
|
|
66
76
|
this.children = Array.isArray(props.children) ? props.children : this.children;
|
|
67
77
|
this.keyMap = KeyMap.factory(props.keyMap || this.keyMap);
|
|
68
78
|
this.createAccessors();
|
|
@@ -298,6 +308,8 @@ class Alert extends Component {
|
|
|
298
308
|
this.vertical = false;
|
|
299
309
|
this.defaultValues = {
|
|
300
310
|
name: this.name,
|
|
311
|
+
dark: this.dark,
|
|
312
|
+
light: this.light,
|
|
301
313
|
color: this.color,
|
|
302
314
|
text: this.text,
|
|
303
315
|
timeout: this.timeout,
|
|
@@ -322,6 +334,8 @@ class Alert extends Component {
|
|
|
322
334
|
assignAlertProperties(alert) {
|
|
323
335
|
this.name = this.getInitValue('name', alert.name, this.defaultValues.name);
|
|
324
336
|
this.color = this.getInitValue('color', alert.color, this.defaultValues.color);
|
|
337
|
+
this.dark = this.getInitValue('dark', alert.dark, this.defaultValues.dark);
|
|
338
|
+
this.light = this.getInitValue('light', alert.light, this.defaultValues.light);
|
|
325
339
|
this.text = this.getInitValue('text', alert.text, this.defaultValues.text);
|
|
326
340
|
this.timeout = this.getInitValue('timeout', alert.timeout, this.defaultValues.timeout);
|
|
327
341
|
this.type = this.getInitValue('type', alert.type, this.defaultValues.type);
|
|
@@ -492,10 +506,6 @@ class Breadcrumbs extends ComponentRender {
|
|
|
492
506
|
*/
|
|
493
507
|
constructor(props) {
|
|
494
508
|
super(props);
|
|
495
|
-
/**
|
|
496
|
-
* Applies the dark theme variant to the component.
|
|
497
|
-
*/
|
|
498
|
-
this.dark = false;
|
|
499
509
|
/**
|
|
500
510
|
* Specifies the dividing string between items.
|
|
501
511
|
*/
|
|
@@ -512,19 +522,13 @@ class Breadcrumbs extends ComponentRender {
|
|
|
512
522
|
* Increase the font-size of the breadcrumb item text to 16px.
|
|
513
523
|
*/
|
|
514
524
|
this.large = false;
|
|
515
|
-
/**
|
|
516
|
-
* Applies the light theme variant to the component.
|
|
517
|
-
*/
|
|
518
|
-
this.light = true;
|
|
519
525
|
/**
|
|
520
526
|
* Decrease the font-size of the breadcrumb item text to 12px.
|
|
521
527
|
*/
|
|
522
528
|
this.small = false;
|
|
523
|
-
this.dark = this.getInitValue('dark', props.dark, this.dark);
|
|
524
529
|
this.divider = this.getInitValue('divider', props.divider, this.divider);
|
|
525
530
|
this.items = this.getInitValue('items', props.items, this.items);
|
|
526
531
|
this.large = this.getInitValue('large', props.large, this.large);
|
|
527
|
-
this.light = this.getInitValue('light', props.light, this.light);
|
|
528
532
|
this.iconName = this.getInitValue('iconName', props.iconName, this.iconName);
|
|
529
533
|
this.small = this.getInitValue('small', props.small, this.small);
|
|
530
534
|
this.createAccessors();
|
|
@@ -560,10 +564,6 @@ class Button extends ComponentRender {
|
|
|
560
564
|
* It can be the name of material or css color in hexa
|
|
561
565
|
*/
|
|
562
566
|
this.color = 'primary';
|
|
563
|
-
/**
|
|
564
|
-
* Applies the dark theme variant to the button
|
|
565
|
-
*/
|
|
566
|
-
this.dark = false;
|
|
567
567
|
/**
|
|
568
568
|
* Removes the ability to click or target the button
|
|
569
569
|
*/
|
|
@@ -605,10 +605,6 @@ class Button extends ComponentRender {
|
|
|
605
605
|
* This should be used with the absolute or fixed props
|
|
606
606
|
*/
|
|
607
607
|
this.left = false;
|
|
608
|
-
/**
|
|
609
|
-
* Applies the light theme variant to the button
|
|
610
|
-
*/
|
|
611
|
-
this.light = false;
|
|
612
608
|
/**
|
|
613
609
|
* Makes the background transparent and applies a thin border
|
|
614
610
|
*/
|
|
@@ -711,10 +707,6 @@ class ButtonGroup extends ComponentRender {
|
|
|
711
707
|
* It can be the name of material or css color in hexa
|
|
712
708
|
*/
|
|
713
709
|
this.color = 'primary';
|
|
714
|
-
/**
|
|
715
|
-
* Applies the dark theme variant to the component.
|
|
716
|
-
*/
|
|
717
|
-
this.dark = false;
|
|
718
710
|
/**
|
|
719
711
|
* Reduces the button size and padding.
|
|
720
712
|
*/
|
|
@@ -724,10 +716,6 @@ class ButtonGroup extends ComponentRender {
|
|
|
724
716
|
* space between the buttons
|
|
725
717
|
*/
|
|
726
718
|
this.group = false;
|
|
727
|
-
/**
|
|
728
|
-
* Applies the light theme variant to the component.
|
|
729
|
-
*/
|
|
730
|
-
this.light = false;
|
|
731
719
|
/**
|
|
732
720
|
* Applies mandatory selected button
|
|
733
721
|
*/
|
|
@@ -761,10 +749,8 @@ class ButtonGroup extends ComponentRender {
|
|
|
761
749
|
this.backgroundColor = this.getInitValue('backgroundColor', props.backgroundColor, this.backgroundColor);
|
|
762
750
|
this.borderless = this.getInitValue('block', props.borderless, this.borderless);
|
|
763
751
|
this.color = this.getInitValue('color', props.color, this.color);
|
|
764
|
-
this.dark = this.getInitValue('dark', props.dark, this.dark);
|
|
765
752
|
this.dense = this.getInitValue('disabled', props.dense, this.dense);
|
|
766
753
|
this.group = this.getInitValue('group', props.group, this.group);
|
|
767
|
-
this.light = this.getInitValue('light', props.light, this.light);
|
|
768
754
|
this.mandatory = this.getInitValue('mandatory', props.mandatory, this.mandatory);
|
|
769
755
|
this.multiple = this.getInitValue('multiple', props.multiple, this.multiple);
|
|
770
756
|
this.rounded = this.getInitValue('rounded', props.rounded, this.rounded);
|
|
@@ -818,10 +804,6 @@ class Carousel extends ComponentRender {
|
|
|
818
804
|
* a non-integer number in slidesPerView, like 1.5)
|
|
819
805
|
*/
|
|
820
806
|
this.center = false;
|
|
821
|
-
/**
|
|
822
|
-
* Applies the dark theme variant to the carousel pagination
|
|
823
|
-
*/
|
|
824
|
-
this.dark = false;
|
|
825
807
|
/**
|
|
826
808
|
* Displays the pagination as a fraction in the following format: currentSlide/slidesCount.
|
|
827
809
|
* Only works when <code>showPagination</code> property is true
|
|
@@ -848,10 +830,6 @@ class Carousel extends ComponentRender {
|
|
|
848
830
|
* Allows controlling the carousel using the keyboard arrow keys
|
|
849
831
|
*/
|
|
850
832
|
this.keysControl = true;
|
|
851
|
-
/**
|
|
852
|
-
* Applies the light theme variant to the carousel
|
|
853
|
-
*/
|
|
854
|
-
this.light = true;
|
|
855
833
|
/**
|
|
856
834
|
* Allows controlling the carousel using mouse drag
|
|
857
835
|
*/
|
|
@@ -926,14 +904,12 @@ class Carousel extends ComponentRender {
|
|
|
926
904
|
this.autoPlay = this.getInitValue('autoPlay', props.autoPlay, this.autoPlay);
|
|
927
905
|
this.buttonsOutside = this.getInitValue('buttonsOutside', props.buttonsOutside, this.buttonsOutside);
|
|
928
906
|
this.center = this.getInitValue('center', props.center, this.center);
|
|
929
|
-
this.dark = this.getInitValue('dark', props.dark, this.dark);
|
|
930
907
|
this.height = this.getInitValue('height', props.height, this.height);
|
|
931
908
|
this.infiniteScroll = this.getInitValue('infiniteScroll', props.infiniteScroll, this.infiniteScroll);
|
|
932
909
|
this.initialSlide = this.getInitValue('initialSlide', props.initialSlide, this.initialSlide);
|
|
933
910
|
this.currentSlide = this.getInitValue('currentSlide', props.currentSlide, this.initialSlide);
|
|
934
911
|
this.interval = this.getInitValue('interval', props.interval, this.interval);
|
|
935
912
|
this.keysControl = this.getInitValue('keysControl', props.keysControl, this.keysControl);
|
|
936
|
-
this.light = this.getInitValue('light', props.light, this.light);
|
|
937
913
|
this.mouseControl = this.getInitValue('mouseControl', props.mouseControl, this.mouseControl);
|
|
938
914
|
this.nextButton = props.nextButton || this.nextButton;
|
|
939
915
|
this.fractionPagination = this.getInitValue('fractionPagination', props.fractionPagination, this.fractionPagination);
|
|
@@ -1048,10 +1024,6 @@ class Card extends ComponentRender {
|
|
|
1048
1024
|
* Applies specified color to the control. It can be the name of material color
|
|
1049
1025
|
*/
|
|
1050
1026
|
this.color = '';
|
|
1051
|
-
/**
|
|
1052
|
-
* Applies the dark theme variant to the component
|
|
1053
|
-
*/
|
|
1054
|
-
this.dark = false;
|
|
1055
1027
|
/**
|
|
1056
1028
|
* Removes the ability to click or target the component
|
|
1057
1029
|
*/
|
|
@@ -1068,10 +1040,6 @@ class Card extends ComponentRender {
|
|
|
1068
1040
|
* Specifies an image background for the card
|
|
1069
1041
|
*/
|
|
1070
1042
|
this.img = '';
|
|
1071
|
-
/**
|
|
1072
|
-
* Applies the light theme variant to the component
|
|
1073
|
-
*/
|
|
1074
|
-
this.light = false;
|
|
1075
1043
|
/**
|
|
1076
1044
|
* Designates that the card is a link
|
|
1077
1045
|
*/
|
|
@@ -1095,7 +1063,6 @@ class Card extends ComponentRender {
|
|
|
1095
1063
|
this.activeClass = this.getInitValue('activeClass', props.activeClass, this.activeClass);
|
|
1096
1064
|
this.append = this.getInitValue('append', props.append, this.append);
|
|
1097
1065
|
this.color = this.getInitValue('color', props.color, this.color);
|
|
1098
|
-
this.dark = this.getInitValue('dark', props.dark, this.dark);
|
|
1099
1066
|
this.disabled = this.getInitValue('disabled', props.disabled, this.disabled);
|
|
1100
1067
|
this.elevation = this.getInitValue('elevation', props.elevation, this.elevation);
|
|
1101
1068
|
this.flat = this.getInitValue('flat', props.flat, this.flat);
|
|
@@ -1103,7 +1070,6 @@ class Card extends ComponentRender {
|
|
|
1103
1070
|
this.hover = this.getInitValue('hover', props.hover, this.hover);
|
|
1104
1071
|
this.href = this.getInitValue('href', props.href, this.href);
|
|
1105
1072
|
this.img = this.getInitValue('img', props.img, this.img);
|
|
1106
|
-
this.light = this.getInitValue('light', props.light, this.light);
|
|
1107
1073
|
this.link = this.getInitValue('link', props.link, this.link);
|
|
1108
1074
|
this.maxHeight = this.getInitValue('maxHeight', props.maxHeight, this.maxHeight);
|
|
1109
1075
|
this.maxWidth = this.getInitValue('maxWidth', props.maxWidth, this.maxWidth);
|
|
@@ -1316,10 +1282,6 @@ class Input extends ComponentRender {
|
|
|
1316
1282
|
* It can be the name of material or css color in hexa.
|
|
1317
1283
|
*/
|
|
1318
1284
|
this.color = 'primary';
|
|
1319
|
-
/**
|
|
1320
|
-
* Applies the dark theme variant to the input.
|
|
1321
|
-
*/
|
|
1322
|
-
this.dark = false;
|
|
1323
1285
|
/**
|
|
1324
1286
|
* Defines smaller input.
|
|
1325
1287
|
*/
|
|
@@ -1336,10 +1298,6 @@ class Input extends ComponentRender {
|
|
|
1336
1298
|
* Defines the input label.
|
|
1337
1299
|
*/
|
|
1338
1300
|
this.label = '';
|
|
1339
|
-
/**
|
|
1340
|
-
* Applies the light theme variant to the input.
|
|
1341
|
-
*/
|
|
1342
|
-
this.light = false;
|
|
1343
1301
|
/**
|
|
1344
1302
|
* Applies a custom character mask to the input.
|
|
1345
1303
|
*/
|
|
@@ -1408,13 +1366,11 @@ class Input extends ComponentRender {
|
|
|
1408
1366
|
this.autofocus = this.getInitValue('autofocus', props.autofocus, this.autofocus);
|
|
1409
1367
|
this.clearable = this.getInitValue('clearable', props.clearable, this.clearable);
|
|
1410
1368
|
this.color = this.getInitValue('color', props.color, this.color);
|
|
1411
|
-
this.dark = this.getInitValue('dark', props.dark, this.dark);
|
|
1412
1369
|
this.dense = this.getInitValue('dense', props.dense, this.dense);
|
|
1413
1370
|
this.disabled = this.getInitValue('disabled', props.disabled, this.disabled);
|
|
1414
1371
|
this.hint = this.getInitValue('hint', props.hint, this.hint);
|
|
1415
1372
|
this.autoHintDetails = this.getInitValue('autoHintDetails', props.autoHintDetails, this.autoHintDetails);
|
|
1416
1373
|
this.label = this.getInitValue('label', props.label, this.label);
|
|
1417
|
-
this.light = this.getInitValue('light', props.light, this.light);
|
|
1418
1374
|
this.mask = this.getInitValue('mask', props.mask, this.mask);
|
|
1419
1375
|
this.maxLength = this.getInitValue('maxLength', props.maxLength, this.maxLength);
|
|
1420
1376
|
this.persistentHint = this.getInitValue('persistentHint', props.persistentHint, this.persistentHint);
|
|
@@ -3672,18 +3628,10 @@ class Divider extends ComponentRender {
|
|
|
3672
3628
|
*/
|
|
3673
3629
|
constructor(props) {
|
|
3674
3630
|
super(props);
|
|
3675
|
-
/**
|
|
3676
|
-
* Applies the dark theme variant to the component.
|
|
3677
|
-
*/
|
|
3678
|
-
this.dark = false;
|
|
3679
3631
|
/**
|
|
3680
3632
|
* Adds indentation (72px) for normal dividers, reduces max height for vertical.
|
|
3681
3633
|
*/
|
|
3682
3634
|
this.inset = false;
|
|
3683
|
-
/**
|
|
3684
|
-
* Applies the light theme variant to the component.
|
|
3685
|
-
*/
|
|
3686
|
-
this.light = false;
|
|
3687
3635
|
/**
|
|
3688
3636
|
* Displays dividers vertically.
|
|
3689
3637
|
*/
|
|
@@ -3953,10 +3901,6 @@ class Footer extends ComponentRender {
|
|
|
3953
3901
|
* Applies specified color to the control. It can be the name of material or css color in hexa.
|
|
3954
3902
|
*/
|
|
3955
3903
|
this.color = 'primary';
|
|
3956
|
-
/**
|
|
3957
|
-
* Applies the dark theme variant to footer.
|
|
3958
|
-
*/
|
|
3959
|
-
this.dark = false;
|
|
3960
3904
|
/**
|
|
3961
3905
|
* Applies position fixed to footer.
|
|
3962
3906
|
*/
|
|
@@ -3973,10 +3917,6 @@ class Footer extends ComponentRender {
|
|
|
3973
3917
|
* Render components on the left of footer.
|
|
3974
3918
|
*/
|
|
3975
3919
|
this.leftSlot = [];
|
|
3976
|
-
/**
|
|
3977
|
-
* Applies the light theme variant to the footer.
|
|
3978
|
-
*/
|
|
3979
|
-
this.light = false;
|
|
3980
3920
|
/**
|
|
3981
3921
|
* Remove all padding from the footer.
|
|
3982
3922
|
*/
|
|
@@ -4709,7 +4649,11 @@ class Grid extends Iterable {
|
|
|
4709
4649
|
/**
|
|
4710
4650
|
* Color of the header background
|
|
4711
4651
|
*/
|
|
4712
|
-
this.headerBackground = '
|
|
4652
|
+
this.headerBackground = '';
|
|
4653
|
+
/**
|
|
4654
|
+
* Color of the header cell text color
|
|
4655
|
+
*/
|
|
4656
|
+
this.headerCellTextColor = '';
|
|
4713
4657
|
/**
|
|
4714
4658
|
* Available order types
|
|
4715
4659
|
* @public
|
|
@@ -4753,6 +4697,8 @@ class Grid extends Iterable {
|
|
|
4753
4697
|
},
|
|
4754
4698
|
};
|
|
4755
4699
|
this.dense = this.getInitValue('dense', props.dense, this.dense);
|
|
4700
|
+
this.dark = this.getInitValue('dark', props.dark, this.dark);
|
|
4701
|
+
this.light = this.getInitValue('light', props.light, this.light);
|
|
4756
4702
|
this.selectable = this.getInitValue('selectable', props.selectable, this.selectable);
|
|
4757
4703
|
this.height = this.getInitValue('height', props.height, this.height);
|
|
4758
4704
|
this.fillHeight = this.getInitValue('fillHeight', props.fillHeight, this.fillHeight);
|
|
@@ -4762,6 +4708,7 @@ class Grid extends Iterable {
|
|
|
4762
4708
|
this.showFooter = this.getInitValue('showFooter', props.showFooter, this.showFooter);
|
|
4763
4709
|
this.showHeader = this.getInitValue('showHeader', props.showHeader, this.showHeader);
|
|
4764
4710
|
this.headerBackground = this.getInitValue('headerBackground', props.headerBackground, this.headerBackground);
|
|
4711
|
+
this.headerCellTextColor = this.getInitValue('headerCellTextColor', props.headerCellTextColor, this.headerCellTextColor);
|
|
4765
4712
|
this.dragColumns = this.getInitValue('dragColumns', props.dragColumns, this.dragColumns);
|
|
4766
4713
|
this.resizeColumns = this.getInitValue('resizeColumns', props.resizeColumns, this.resizeColumns);
|
|
4767
4714
|
this.toolbarSlot = props.toolbarSlot || this.toolbarSlot;
|
|
@@ -5420,10 +5367,6 @@ class Header extends ComponentRender {
|
|
|
5420
5367
|
* Applies specified color to the control. It can be the name of material or css color in hexa.
|
|
5421
5368
|
*/
|
|
5422
5369
|
this.color = 'primary';
|
|
5423
|
-
/**
|
|
5424
|
-
* Applies the dark theme variant to header.
|
|
5425
|
-
*/
|
|
5426
|
-
this.dark = false;
|
|
5427
5370
|
/**
|
|
5428
5371
|
* Designates that the application menu positioned on the left is below the header.
|
|
5429
5372
|
*/
|
|
@@ -5448,10 +5391,6 @@ class Header extends ComponentRender {
|
|
|
5448
5391
|
* Render components on the left of header.
|
|
5449
5392
|
*/
|
|
5450
5393
|
this.leftSlot = [];
|
|
5451
|
-
/**
|
|
5452
|
-
* Applies the light theme variant to the header.
|
|
5453
|
-
*/
|
|
5454
|
-
this.light = false;
|
|
5455
5394
|
/**
|
|
5456
5395
|
* Removes internal padding from header.
|
|
5457
5396
|
*/
|
|
@@ -5466,13 +5405,11 @@ class Header extends ComponentRender {
|
|
|
5466
5405
|
this.clippedLeft = this.getInitValue('clippedLeft', props.clippedLeft, this.clippedLeft);
|
|
5467
5406
|
this.clippedRight = this.getInitValue('clippedRight', props.clippedRight, this.clippedRight);
|
|
5468
5407
|
this.color = this.getInitValue('color', props.color, this.color);
|
|
5469
|
-
this.dark = this.getInitValue('dark', props.dark, this.dark);
|
|
5470
5408
|
this.dense = this.getInitValue('dense', props.dense, this.dense);
|
|
5471
5409
|
this.elevation = this.getInitValue('elevation', props.elevation, this.elevation);
|
|
5472
5410
|
this.fixed = this.getInitValue('fixed', props.fixed, this.fixed);
|
|
5473
5411
|
this.height = this.getInitValue('height', props.height, this.height);
|
|
5474
5412
|
this.leftSlot = props.leftSlot || this.leftSlot;
|
|
5475
|
-
this.light = this.getInitValue('light', props.light, this.light);
|
|
5476
5413
|
this.maxHeight = this.getInitValue('maxHeight', props.maxHeight, this.maxHeight);
|
|
5477
5414
|
this.maxWidth = this.getInitValue('maxWidth', props.maxWidth, this.maxWidth);
|
|
5478
5415
|
this.minHeight = this.getInitValue('minHeight', props.minHeight, this.minHeight);
|
|
@@ -5506,10 +5443,6 @@ class Icon extends ComponentRender {
|
|
|
5506
5443
|
* (for example success or purple) or css color (#033 or rgba(255, 0, 0, 0.5)).
|
|
5507
5444
|
*/
|
|
5508
5445
|
this.color = '';
|
|
5509
|
-
/**
|
|
5510
|
-
* Applies the dark theme variant to the component.
|
|
5511
|
-
*/
|
|
5512
|
-
this.dark = false;
|
|
5513
5446
|
/**
|
|
5514
5447
|
* Makes icon smaller (20px)
|
|
5515
5448
|
*/
|
|
@@ -5531,10 +5464,6 @@ class Icon extends ComponentRender {
|
|
|
5531
5464
|
* of a button when placed to the left of another element or text
|
|
5532
5465
|
*/
|
|
5533
5466
|
this.left = false;
|
|
5534
|
-
/**
|
|
5535
|
-
* Applies the light theme variant to the component.
|
|
5536
|
-
*/
|
|
5537
|
-
this.light = false;
|
|
5538
5467
|
/**
|
|
5539
5468
|
* Applies appropriate margins to the icon inside of
|
|
5540
5469
|
* a button when placed to the right of another element or text
|
|
@@ -5553,13 +5482,11 @@ class Icon extends ComponentRender {
|
|
|
5553
5482
|
*/
|
|
5554
5483
|
this.tag = 'i';
|
|
5555
5484
|
this.color = this.getInitValue('color', props.color, this.color);
|
|
5556
|
-
this.dark = this.getInitValue('dark', props.dark, this.dark);
|
|
5557
5485
|
this.dense = this.getInitValue('dense', props.dense, this.dense);
|
|
5558
5486
|
this.disabled = this.getInitValue('disabled', props.disabled, this.disabled);
|
|
5559
5487
|
this.iconName = this.getInitValue('iconName', props.iconName, this.iconName);
|
|
5560
5488
|
this.large = this.getInitValue('large', props.large, this.large);
|
|
5561
5489
|
this.left = this.getInitValue('left', props.left, this.left);
|
|
5562
|
-
this.light = this.getInitValue('light', props.light, this.light);
|
|
5563
5490
|
this.right = this.getInitValue('right', props.right, this.right);
|
|
5564
5491
|
this.size = this.getInitValue('size', props.size, this.size);
|
|
5565
5492
|
this.small = this.getInitValue('small', props.small, this.small);
|
|
@@ -6543,10 +6470,6 @@ class ItemNotFoundError extends Error {
|
|
|
6543
6470
|
class List extends ComponentRender {
|
|
6544
6471
|
constructor(props) {
|
|
6545
6472
|
super(props);
|
|
6546
|
-
/**
|
|
6547
|
-
* Applies the dark theme variant to the List.
|
|
6548
|
-
*/
|
|
6549
|
-
this.dark = false;
|
|
6550
6473
|
/**
|
|
6551
6474
|
* Create the list with smaller items.
|
|
6552
6475
|
*/
|
|
@@ -6559,10 +6482,6 @@ class List extends ComponentRender {
|
|
|
6559
6482
|
* Render list with dividers between the items.
|
|
6560
6483
|
*/
|
|
6561
6484
|
this.divided = false;
|
|
6562
|
-
/**
|
|
6563
|
-
* Applies the light theme variant to the List.
|
|
6564
|
-
*/
|
|
6565
|
-
this.light = false;
|
|
6566
6485
|
/**
|
|
6567
6486
|
* Increases the height of all the list items to better support three lines of text.
|
|
6568
6487
|
*/
|
|
@@ -6707,10 +6626,6 @@ class Login extends ComponentRender {
|
|
|
6707
6626
|
* It can be the name of material or css color in hexa.
|
|
6708
6627
|
*/
|
|
6709
6628
|
this.color = '';
|
|
6710
|
-
/**
|
|
6711
|
-
* Applies the dark theme.
|
|
6712
|
-
*/
|
|
6713
|
-
this.dark = false;
|
|
6714
6629
|
/**
|
|
6715
6630
|
* Card position orientation.
|
|
6716
6631
|
*/
|
|
@@ -6739,7 +6654,6 @@ class Login extends ComponentRender {
|
|
|
6739
6654
|
this.bottomLink = props.bottomLink || this.bottomLink;
|
|
6740
6655
|
this.cardWidth = this.getInitValue('cardWidth', props.cardWidth, this.cardWidth);
|
|
6741
6656
|
this.color = this.getInitValue('color', props.color, this.color);
|
|
6742
|
-
this.dark = this.getInitValue('dark', props.dark, this.dark);
|
|
6743
6657
|
this.layout = this.getInitValue('layout', props.layout, this.layout);
|
|
6744
6658
|
this.logo = this.getInitValue('logo', props.logo, this.logo);
|
|
6745
6659
|
this.logoMessage = this.getInitValue('logoMessage', props.logoMessage, this.logoMessage);
|
|
@@ -6966,10 +6880,6 @@ class Menu extends ComponentRender {
|
|
|
6966
6880
|
* Defines if the menu should have a visible container
|
|
6967
6881
|
*/
|
|
6968
6882
|
this.floating = false;
|
|
6969
|
-
/**
|
|
6970
|
-
* Applies the dark theme variant to the menu.
|
|
6971
|
-
*/
|
|
6972
|
-
this.dark = false;
|
|
6973
6883
|
/**
|
|
6974
6884
|
* Create the menu with smaller items.
|
|
6975
6885
|
*/
|
|
@@ -7052,7 +6962,6 @@ class Menu extends ComponentRender {
|
|
|
7052
6962
|
this.clipped = this.getInitValue('clipped', props.clipped, this.clipped);
|
|
7053
6963
|
this.fixed = this.getInitValue('fixed', props.fixed, this.fixed);
|
|
7054
6964
|
this.floating = this.getInitValue('floating', props.floating, this.floating);
|
|
7055
|
-
this.dark = this.getInitValue('dark', props.dark, this.dark);
|
|
7056
6965
|
this.dense = this.getInitValue('dense', props.dense, this.dense);
|
|
7057
6966
|
this.mini = this.getInitValue('mini', props.mini, this.mini);
|
|
7058
6967
|
this.miniState = this.getInitValue('miniState', props.miniState, this.miniState);
|
|
@@ -7693,10 +7602,6 @@ class Progress extends ComponentRender {
|
|
|
7693
7602
|
* Defines the value color
|
|
7694
7603
|
*/
|
|
7695
7604
|
this.color = 'primary';
|
|
7696
|
-
/**
|
|
7697
|
-
* Applies the dark theme variant to the component
|
|
7698
|
-
*/
|
|
7699
|
-
this.dark = false;
|
|
7700
7605
|
/**
|
|
7701
7606
|
* Sets the height for the component
|
|
7702
7607
|
*/
|
|
@@ -7705,10 +7610,6 @@ class Progress extends ComponentRender {
|
|
|
7705
7610
|
* Animates the component constantly
|
|
7706
7611
|
*/
|
|
7707
7612
|
this.indeterminate = false;
|
|
7708
|
-
/**
|
|
7709
|
-
* Applies the light theme variant to the component
|
|
7710
|
-
*/
|
|
7711
|
-
this.light = false;
|
|
7712
7613
|
/**
|
|
7713
7614
|
* Render components on the progress component
|
|
7714
7615
|
*/
|
|
@@ -7720,10 +7621,8 @@ class Progress extends ComponentRender {
|
|
|
7720
7621
|
this.backgroundColor = this.getInitValue('backgroundColor', props.backgroundColor, this.backgroundColor);
|
|
7721
7622
|
this.backgroundOpacity = this.getInitValue('backgroundOpacity', props.backgroundOpacity, this.backgroundOpacity);
|
|
7722
7623
|
this.color = this.getInitValue('color', props.color, this.color);
|
|
7723
|
-
this.dark = this.getInitValue('dark', props.dark, this.dark);
|
|
7724
7624
|
this.height = this.getInitValue('height', props.height, this.height);
|
|
7725
7625
|
this.indeterminate = this.getInitValue('indeterminate', props.indeterminate, this.indeterminate);
|
|
7726
|
-
this.light = this.getInitValue('light', props.light, this.light);
|
|
7727
7626
|
this.centerSlot = this.getInitValue('centerSlot', props.centerSlot, this.centerSlot);
|
|
7728
7627
|
this.value = this.getInitValue('value', props.value, this.value);
|
|
7729
7628
|
this.createAccessors();
|
|
@@ -8661,6 +8560,10 @@ class SelectTree extends TextInput {
|
|
|
8661
8560
|
* Defines if field value should be an object
|
|
8662
8561
|
*/
|
|
8663
8562
|
this.returnObject = false;
|
|
8563
|
+
/**
|
|
8564
|
+
* Prevents load select data when the input is focused
|
|
8565
|
+
*/
|
|
8566
|
+
this.preventLoadOnFocus = true;
|
|
8664
8567
|
/**
|
|
8665
8568
|
* Field used to make the item disabled
|
|
8666
8569
|
*/
|
|
@@ -8693,6 +8596,7 @@ class SelectTree extends TextInput {
|
|
|
8693
8596
|
this.dataValue = this.getInitValue('dataValue', props.dataValue, this.dataValue);
|
|
8694
8597
|
this.dataDisabled = this.getInitValue('dataDisabled', props.dataDisabled, this.dataDisabled);
|
|
8695
8598
|
this.disabledItems = this.getInitValue('disabledItems', props.disabledItems, this.disabledItems);
|
|
8599
|
+
this.preventLoadOnFocus = this.getInitValue('preventLoadOnFocus', props.preventLoadOnFocus, this.preventLoadOnFocus);
|
|
8696
8600
|
if (props.datasource && Object.keys(props.datasource).length) {
|
|
8697
8601
|
this.lazyLoad = props.datasource.lazyLoad !== false;
|
|
8698
8602
|
const searchFields = Array.isArray(this.dataText) ? this.dataText : [this.dataText];
|
|
@@ -8706,6 +8610,24 @@ class SelectTree extends TextInput {
|
|
|
8706
8610
|
}
|
|
8707
8611
|
this.createAccessors();
|
|
8708
8612
|
}
|
|
8613
|
+
focus(event, element) {
|
|
8614
|
+
const _super = Object.create(null, {
|
|
8615
|
+
focus: { get: () => super.focus }
|
|
8616
|
+
});
|
|
8617
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
8618
|
+
_super.focus.call(this, event, element);
|
|
8619
|
+
this.afterFocus();
|
|
8620
|
+
});
|
|
8621
|
+
}
|
|
8622
|
+
afterFocus() {
|
|
8623
|
+
var _a;
|
|
8624
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
8625
|
+
if (!this.preventLoadOnFocus) {
|
|
8626
|
+
yield ((_a = this.datasource) === null || _a === void 0 ? void 0 : _a.get());
|
|
8627
|
+
this.preventLoadOnFocus = true;
|
|
8628
|
+
}
|
|
8629
|
+
});
|
|
8630
|
+
}
|
|
8709
8631
|
createDataStructure() {
|
|
8710
8632
|
this.treeDataStructure = new TreeDataStructure({
|
|
8711
8633
|
datasource: this.datasource,
|
|
@@ -9033,14 +8955,6 @@ class Steppers extends ComponentRender {
|
|
|
9033
8955
|
* Array of steppers items
|
|
9034
8956
|
*/
|
|
9035
8957
|
this.items = [];
|
|
9036
|
-
/**
|
|
9037
|
-
* Applies the dark theme variant to the stepper
|
|
9038
|
-
*/
|
|
9039
|
-
this.dark = false;
|
|
9040
|
-
/**
|
|
9041
|
-
* Applies the light theme variant to the stepper
|
|
9042
|
-
*/
|
|
9043
|
-
this.light = false;
|
|
9044
8958
|
/**
|
|
9045
8959
|
* Allow user to jump to any step
|
|
9046
8960
|
*/
|
|
@@ -9052,9 +8966,7 @@ class Steppers extends ComponentRender {
|
|
|
9052
8966
|
this.activeStep = this.getInitValue('activeStep', props.activeStep, this.activeStep);
|
|
9053
8967
|
this.altLabels = this.getInitValue('altLabels', props.altLabels, this.altLabels);
|
|
9054
8968
|
this.content = this.getInitValue('content', props.content, this.content);
|
|
9055
|
-
this.dark = this.getInitValue('dark', props.dark, this.dark);
|
|
9056
8969
|
this.items = this.getInitValue('items', props.items, this.items);
|
|
9057
|
-
this.light = this.getInitValue('light', props.light, this.light);
|
|
9058
8970
|
this.nonLinear = this.getInitValue('nonLinear', props.nonLinear, this.nonLinear);
|
|
9059
8971
|
this.vertical = this.getInitValue('vertical', props.vertical, this.vertical);
|
|
9060
8972
|
this.steps = this.getInitValue('steps', props.steps, this.steps);
|
|
@@ -10939,6 +10851,16 @@ WatchURL.watchers = {};
|
|
|
10939
10851
|
WatchURL.originalEvents = new Map();
|
|
10940
10852
|
|
|
10941
10853
|
class BaseReport {
|
|
10854
|
+
constructor() {
|
|
10855
|
+
this.expressionZeedhiToXls = {
|
|
10856
|
+
AVG: 'AVERAGE',
|
|
10857
|
+
COUNT: 'COUNTA',
|
|
10858
|
+
MAX: 'MAX',
|
|
10859
|
+
MIN: 'MIN',
|
|
10860
|
+
SUM: 'SUM',
|
|
10861
|
+
};
|
|
10862
|
+
this.colunmXLS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
|
|
10863
|
+
}
|
|
10942
10864
|
buildColumns(columns) {
|
|
10943
10865
|
const widths = {};
|
|
10944
10866
|
let totalWidth;
|
|
@@ -11165,27 +11087,12 @@ class PDFReport extends BaseReport {
|
|
|
11165
11087
|
}
|
|
11166
11088
|
|
|
11167
11089
|
class XLSReport extends BaseReport {
|
|
11168
|
-
constructor(
|
|
11169
|
-
super();
|
|
11090
|
+
constructor() {
|
|
11091
|
+
super(...arguments);
|
|
11170
11092
|
this.route = '/generateXLS';
|
|
11171
|
-
this.expressionZeedhiToXls = {
|
|
11172
|
-
AVG: 'AVERAGE',
|
|
11173
|
-
COUNT: 'COUNTA',
|
|
11174
|
-
MAX: 'MAX',
|
|
11175
|
-
MIN: 'MIN',
|
|
11176
|
-
SUM: 'SUM',
|
|
11177
|
-
};
|
|
11178
|
-
this.colunmXLS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
|
|
11179
|
-
this.type = type || 'xls';
|
|
11180
11093
|
}
|
|
11181
|
-
buildDataset(data, columns
|
|
11182
|
-
|
|
11183
|
-
if (this.type === 'xls') {
|
|
11184
|
-
result = this.formatRawDataSet(data, columns);
|
|
11185
|
-
}
|
|
11186
|
-
else if (metadata) {
|
|
11187
|
-
result = this.formatDataSet(metadata, data);
|
|
11188
|
-
}
|
|
11094
|
+
buildDataset(data, columns) {
|
|
11095
|
+
const result = this.formatRawDataSet(data, columns);
|
|
11189
11096
|
return JSON.stringify(result);
|
|
11190
11097
|
}
|
|
11191
11098
|
// formata o dataset para o formato "cru" xls
|
|
@@ -11229,27 +11136,55 @@ class XLSReport extends BaseReport {
|
|
|
11229
11136
|
};
|
|
11230
11137
|
return Promise.resolve(JSON.stringify(metadataObj));
|
|
11231
11138
|
}
|
|
11232
|
-
|
|
11233
|
-
|
|
11139
|
+
}
|
|
11140
|
+
|
|
11141
|
+
// XLS with groups
|
|
11142
|
+
class XLS2Report extends BaseReport {
|
|
11143
|
+
constructor() {
|
|
11144
|
+
super(...arguments);
|
|
11145
|
+
this.route = '/generateXLS';
|
|
11234
11146
|
}
|
|
11235
|
-
|
|
11236
|
-
|
|
11237
|
-
|
|
11238
|
-
|
|
11239
|
-
|
|
11240
|
-
|
|
11241
|
-
|
|
11242
|
-
|
|
11243
|
-
|
|
11244
|
-
|
|
11245
|
-
|
|
11246
|
-
|
|
11247
|
-
|
|
11147
|
+
buildDataset(data, metadata) {
|
|
11148
|
+
const result = this.formatDataSet(metadata, data);
|
|
11149
|
+
return JSON.stringify(result);
|
|
11150
|
+
}
|
|
11151
|
+
buildMetadata(name, title, columns, filter) {
|
|
11152
|
+
const builtCols = this.buildColumns(columns);
|
|
11153
|
+
const builtFilters = this.buildFilter(filter || {});
|
|
11154
|
+
const lang = this.formatLangCode(I18n.instance.language);
|
|
11155
|
+
const clientLogo = '';
|
|
11156
|
+
const enterpriseLogo = '';
|
|
11157
|
+
const productLogo = '';
|
|
11158
|
+
const metadataObj = {
|
|
11159
|
+
name,
|
|
11160
|
+
title,
|
|
11161
|
+
lang,
|
|
11162
|
+
clientLogo,
|
|
11163
|
+
enterpriseLogo,
|
|
11164
|
+
productLogo,
|
|
11165
|
+
version: '1.0',
|
|
11166
|
+
words: {
|
|
11167
|
+
Page: I18n.translate('PAGE'),
|
|
11168
|
+
Report: I18n.translate('REPORT'),
|
|
11169
|
+
Version: I18n.translate('VERSION'),
|
|
11170
|
+
},
|
|
11171
|
+
staticData: {},
|
|
11172
|
+
groups: [],
|
|
11173
|
+
reportName: name,
|
|
11174
|
+
widgetLabel: title,
|
|
11175
|
+
orientation: 'PORTRAIT',
|
|
11176
|
+
columns: builtCols,
|
|
11177
|
+
filter: builtFilters,
|
|
11178
|
+
reportXLS: true,
|
|
11179
|
+
xlsMergedCell: [],
|
|
11180
|
+
};
|
|
11181
|
+
return Promise.resolve(JSON.stringify(metadataObj));
|
|
11248
11182
|
}
|
|
11249
11183
|
// Ordenar o nome das colunas de acordo com seu index, e sempre deixando as colunas agrupadas nas primeiras posições
|
|
11250
11184
|
getColumnsName(columns, metaData, lengthGroup) {
|
|
11251
11185
|
const columnsNameGroup = metaData.groups.map((row) => row.field);
|
|
11252
11186
|
let columnsName = [];
|
|
11187
|
+
const columnsGroupName = [];
|
|
11253
11188
|
Object.entries(columns).forEach((row) => {
|
|
11254
11189
|
const columnName = row[0];
|
|
11255
11190
|
const index = row[1].sequence;
|
|
@@ -11257,25 +11192,21 @@ class XLSReport extends BaseReport {
|
|
|
11257
11192
|
columnsName[index + lengthGroup] = columnName;
|
|
11258
11193
|
}
|
|
11259
11194
|
else {
|
|
11260
|
-
|
|
11195
|
+
columnsGroupName.push(columnName);
|
|
11261
11196
|
}
|
|
11262
11197
|
});
|
|
11198
|
+
columnsName = columnsGroupName.concat(columnsName);
|
|
11263
11199
|
columnsName = columnsName.filter((columnName) => typeof columnName === 'string');
|
|
11264
11200
|
return columnsName;
|
|
11265
11201
|
}
|
|
11266
11202
|
// Inicializa alguns valores auxiliares
|
|
11267
|
-
initVars(metaData
|
|
11203
|
+
initVars(metaData) {
|
|
11268
11204
|
metaData.xlsMergedCell = [];
|
|
11269
11205
|
const { columns } = metaData;
|
|
11270
11206
|
const lengthGroup = metaData.groups.length;
|
|
11271
11207
|
const indexLastGroup = lengthGroup - 1;
|
|
11272
11208
|
let columnsName = [];
|
|
11273
|
-
|
|
11274
|
-
columnsName = this.getColumnsNameFormat3(columns, metaData);
|
|
11275
|
-
}
|
|
11276
|
-
else {
|
|
11277
|
-
columnsName = this.getColumnsName(columns, metaData, lengthGroup);
|
|
11278
|
-
}
|
|
11209
|
+
columnsName = this.getColumnsName(columns, metaData, lengthGroup);
|
|
11279
11210
|
const rowValues = [];
|
|
11280
11211
|
const formatedDataSet = [];
|
|
11281
11212
|
const groups = [];
|
|
@@ -11285,33 +11216,6 @@ class XLSReport extends BaseReport {
|
|
|
11285
11216
|
columns, indexLastGroup, columnsName, rowValues, formatedDataSet, groups,
|
|
11286
11217
|
};
|
|
11287
11218
|
}
|
|
11288
|
-
// formata a linha do grupo de acordo com o formato xls3
|
|
11289
|
-
setRowGroupFormat3(row, rowValuesParam, groups, formatedDataSet, columnsName, columns, indexLastGroup) {
|
|
11290
|
-
let rowValues = rowValuesParam;
|
|
11291
|
-
const label = `${row.groupLabel}:${row.groupValue}`;
|
|
11292
|
-
const index = row.groupIndex;
|
|
11293
|
-
if (row.groupHeader) {
|
|
11294
|
-
rowValues[index] = label;
|
|
11295
|
-
groups[index] = { init: null, end: null };
|
|
11296
|
-
formatedDataSet.push(rowValues);
|
|
11297
|
-
rowValues = [];
|
|
11298
|
-
}
|
|
11299
|
-
else if (row.groupFooter) {
|
|
11300
|
-
if (!row.groupLabel) {
|
|
11301
|
-
rowValues.push('Total');
|
|
11302
|
-
}
|
|
11303
|
-
else {
|
|
11304
|
-
rowValues.push(`Total (${label})`);
|
|
11305
|
-
}
|
|
11306
|
-
formatedDataSet.push(rowValues);
|
|
11307
|
-
rowValues = [];
|
|
11308
|
-
const funcXls = null;
|
|
11309
|
-
columnsName.forEach((column) => {
|
|
11310
|
-
this.formatRowFunc(column, columns, row, index, rowValues, funcXls, groups, indexLastGroup);
|
|
11311
|
-
});
|
|
11312
|
-
}
|
|
11313
|
-
return rowValues;
|
|
11314
|
-
}
|
|
11315
11219
|
// formata as expressões da linha
|
|
11316
11220
|
formatRowFunc(column, columns, row, index, rowValues, funcXlsParam, groups, indexLastGroup) {
|
|
11317
11221
|
let funcXls = funcXlsParam;
|
|
@@ -11410,18 +11314,199 @@ class XLSReport extends BaseReport {
|
|
|
11410
11314
|
});
|
|
11411
11315
|
}
|
|
11412
11316
|
formatDataSet(metaData, dataSet) {
|
|
11413
|
-
const initVars = this.initVars(metaData
|
|
11317
|
+
const initVars = this.initVars(metaData);
|
|
11414
11318
|
const { columns, indexLastGroup, columnsName, formatedDataSet, groups, } = initVars;
|
|
11415
11319
|
let { rowValues } = initVars;
|
|
11416
11320
|
dataSet.forEach((row) => {
|
|
11417
11321
|
if (row.group || row.groupFooter) {
|
|
11418
|
-
|
|
11419
|
-
|
|
11322
|
+
rowValues = this.setRowGroup(row, rowValues, groups, metaData, formatedDataSet, columnsName, columns, indexLastGroup);
|
|
11323
|
+
}
|
|
11324
|
+
else {
|
|
11325
|
+
this.setIndexGroups(groups, formatedDataSet);
|
|
11326
|
+
this.setRowNormal(columnsName, rowValues, row);
|
|
11327
|
+
}
|
|
11328
|
+
if (!row.groupHeader) {
|
|
11329
|
+
formatedDataSet.push(rowValues);
|
|
11330
|
+
}
|
|
11331
|
+
rowValues = [];
|
|
11332
|
+
});
|
|
11333
|
+
return [columnsName].concat(formatedDataSet);
|
|
11334
|
+
}
|
|
11335
|
+
}
|
|
11336
|
+
|
|
11337
|
+
// Grid mirror (with groups)
|
|
11338
|
+
class XLS3Report extends BaseReport {
|
|
11339
|
+
constructor() {
|
|
11340
|
+
super(...arguments);
|
|
11341
|
+
this.route = '/generateXLS';
|
|
11342
|
+
}
|
|
11343
|
+
buildDataset(data, metadata) {
|
|
11344
|
+
const result = this.formatDataSet(metadata, data);
|
|
11345
|
+
return JSON.stringify(result);
|
|
11346
|
+
}
|
|
11347
|
+
buildMetadata(name, title, columns, filter) {
|
|
11348
|
+
const builtCols = this.buildColumns(columns);
|
|
11349
|
+
const builtFilters = this.buildFilter(filter || {});
|
|
11350
|
+
const lang = this.formatLangCode(I18n.instance.language);
|
|
11351
|
+
const clientLogo = '';
|
|
11352
|
+
const enterpriseLogo = '';
|
|
11353
|
+
const productLogo = '';
|
|
11354
|
+
const metadataObj = {
|
|
11355
|
+
name,
|
|
11356
|
+
title,
|
|
11357
|
+
lang,
|
|
11358
|
+
clientLogo,
|
|
11359
|
+
enterpriseLogo,
|
|
11360
|
+
productLogo,
|
|
11361
|
+
version: '1.0',
|
|
11362
|
+
words: {
|
|
11363
|
+
Page: I18n.translate('PAGE'),
|
|
11364
|
+
Report: I18n.translate('REPORT'),
|
|
11365
|
+
Version: I18n.translate('VERSION'),
|
|
11366
|
+
},
|
|
11367
|
+
staticData: {},
|
|
11368
|
+
groups: [],
|
|
11369
|
+
reportName: name,
|
|
11370
|
+
widgetLabel: title,
|
|
11371
|
+
orientation: 'PORTRAIT',
|
|
11372
|
+
columns: builtCols,
|
|
11373
|
+
filter: builtFilters,
|
|
11374
|
+
reportXLS: true,
|
|
11375
|
+
xlsMergedCell: [],
|
|
11376
|
+
};
|
|
11377
|
+
return Promise.resolve(JSON.stringify(metadataObj));
|
|
11378
|
+
}
|
|
11379
|
+
// Ordenar o nome das colunas de acordo com seu index, excluindo o nome das colunas agrupadas
|
|
11380
|
+
getColumnsNameFormat3(columns, metaData) {
|
|
11381
|
+
const columnsNameGroup = metaData.groups.map((row) => row.field);
|
|
11382
|
+
let columnsName = [];
|
|
11383
|
+
Object.entries(columns).forEach((row) => {
|
|
11384
|
+
const columnName = row[0];
|
|
11385
|
+
if (columnsNameGroup.indexOf(columnName) === -1) {
|
|
11386
|
+
const index = row[1].sequence;
|
|
11387
|
+
columnsName[index] = columnName;
|
|
11388
|
+
}
|
|
11389
|
+
});
|
|
11390
|
+
columnsName = columnsName.filter((columnName) => typeof columnName === 'string');
|
|
11391
|
+
return columnsName;
|
|
11392
|
+
}
|
|
11393
|
+
// Inicializa alguns valores auxiliares
|
|
11394
|
+
initVars(metaData) {
|
|
11395
|
+
metaData.xlsMergedCell = [];
|
|
11396
|
+
const { columns } = metaData;
|
|
11397
|
+
const lengthGroup = metaData.groups.length;
|
|
11398
|
+
const indexLastGroup = lengthGroup - 1;
|
|
11399
|
+
let columnsName = [];
|
|
11400
|
+
columnsName = this.getColumnsNameFormat3(columns, metaData);
|
|
11401
|
+
const rowValues = [];
|
|
11402
|
+
const formatedDataSet = [];
|
|
11403
|
+
const groups = [];
|
|
11404
|
+
groups.groupEnd = {};
|
|
11405
|
+
groups.groupEnd.cellsfunc = {};
|
|
11406
|
+
return {
|
|
11407
|
+
columns, indexLastGroup, columnsName, rowValues, formatedDataSet, groups,
|
|
11408
|
+
};
|
|
11409
|
+
}
|
|
11410
|
+
// formata a linha do grupo de acordo com o formato xls3
|
|
11411
|
+
setRowGroupFormat(row, rowValuesParam, groups, formatedDataSet, columnsName, columns, indexLastGroup) {
|
|
11412
|
+
let rowValues = rowValuesParam;
|
|
11413
|
+
const label = `${row.groupLabel}:${row.groupValue}`;
|
|
11414
|
+
const index = row.groupIndex;
|
|
11415
|
+
if (row.groupHeader) {
|
|
11416
|
+
rowValues[index] = label;
|
|
11417
|
+
groups[index] = { init: null, end: null };
|
|
11418
|
+
formatedDataSet.push(rowValues);
|
|
11419
|
+
rowValues = [];
|
|
11420
|
+
}
|
|
11421
|
+
else if (row.groupFooter) {
|
|
11422
|
+
if (!row.groupLabel) {
|
|
11423
|
+
rowValues.push('Total');
|
|
11424
|
+
}
|
|
11425
|
+
else {
|
|
11426
|
+
rowValues.push(`Total (${label})`);
|
|
11427
|
+
}
|
|
11428
|
+
formatedDataSet.push(rowValues);
|
|
11429
|
+
rowValues = [];
|
|
11430
|
+
const funcXls = null;
|
|
11431
|
+
columnsName.forEach((column) => {
|
|
11432
|
+
this.formatRowFunc(column, columns, row, index, rowValues, funcXls, groups, indexLastGroup);
|
|
11433
|
+
});
|
|
11434
|
+
}
|
|
11435
|
+
return rowValues;
|
|
11436
|
+
}
|
|
11437
|
+
// formata as expressões da linha
|
|
11438
|
+
formatRowFunc(column, columns, row, index, rowValues, funcXlsParam, groups, indexLastGroup) {
|
|
11439
|
+
let funcXls = funcXlsParam;
|
|
11440
|
+
if ((row[column] === 0 || row[column]) && index !== undefined) {
|
|
11441
|
+
const letter = this.colunmXLS[rowValues.length];
|
|
11442
|
+
funcXls = this.expressionZeedhiToXls[columns[column].expression];
|
|
11443
|
+
const cellsfunc = `${letter + groups[index].init}:${letter}${groups[index].end}`;
|
|
11444
|
+
let expression = '';
|
|
11445
|
+
if (indexLastGroup === index) {
|
|
11446
|
+
expression = `=${funcXls}(${cellsfunc})`;
|
|
11447
|
+
}
|
|
11448
|
+
else {
|
|
11449
|
+
expression = `=${funcXls}(${groups[index].cellsfunc[column]})`;
|
|
11450
|
+
if (index === 0) {
|
|
11451
|
+
if (groups.groupEnd.cellsfunc[column]) {
|
|
11452
|
+
groups.groupEnd.cellsfunc[column] += `,${groups[index].cellsfunc[column]}`;
|
|
11453
|
+
}
|
|
11454
|
+
else {
|
|
11455
|
+
groups.groupEnd.cellsfunc[column] = groups[index].cellsfunc[column];
|
|
11456
|
+
}
|
|
11420
11457
|
}
|
|
11421
|
-
|
|
11422
|
-
|
|
11458
|
+
groups[index].cellsfunc[column] = null;
|
|
11459
|
+
}
|
|
11460
|
+
rowValues.push(expression);
|
|
11461
|
+
groups.forEach((group, indexGroup) => {
|
|
11462
|
+
if (indexGroup !== indexLastGroup) {
|
|
11463
|
+
if (!group.cellsfunc) {
|
|
11464
|
+
group.cellsfunc = {};
|
|
11465
|
+
}
|
|
11466
|
+
if (group.cellsfunc[column]) {
|
|
11467
|
+
group.cellsfunc[column] += `,${cellsfunc}`;
|
|
11468
|
+
}
|
|
11469
|
+
else {
|
|
11470
|
+
group.cellsfunc[column] = cellsfunc;
|
|
11471
|
+
}
|
|
11472
|
+
}
|
|
11473
|
+
});
|
|
11474
|
+
}
|
|
11475
|
+
else {
|
|
11476
|
+
let cell = row[column];
|
|
11477
|
+
if (row.groupSummary) {
|
|
11478
|
+
const groupEndFunc = groups.groupEnd.cellsfunc;
|
|
11479
|
+
if (groupEndFunc[column]) {
|
|
11480
|
+
funcXls = this.expressionZeedhiToXls[columns[column].expression];
|
|
11481
|
+
cell = `=${funcXls}(${groupEndFunc[column]})`;
|
|
11423
11482
|
}
|
|
11424
11483
|
}
|
|
11484
|
+
rowValues.push(cell);
|
|
11485
|
+
}
|
|
11486
|
+
}
|
|
11487
|
+
// Defina o index dos grupos
|
|
11488
|
+
setIndexGroups(groups, formatedDataSet) {
|
|
11489
|
+
groups.forEach((group) => {
|
|
11490
|
+
if (!group.init) {
|
|
11491
|
+
group.init = formatedDataSet.length + 2;
|
|
11492
|
+
}
|
|
11493
|
+
group.end = formatedDataSet.length + 2;
|
|
11494
|
+
});
|
|
11495
|
+
}
|
|
11496
|
+
// Preenche uma linha "normal"
|
|
11497
|
+
setRowNormal(columnsName, rowValues, row) {
|
|
11498
|
+
columnsName.forEach((column) => {
|
|
11499
|
+
rowValues.push(row[column]);
|
|
11500
|
+
});
|
|
11501
|
+
}
|
|
11502
|
+
formatDataSet(metaData, dataSet) {
|
|
11503
|
+
const initVars = this.initVars(metaData);
|
|
11504
|
+
const { columns, indexLastGroup, columnsName, formatedDataSet, groups, } = initVars;
|
|
11505
|
+
let { rowValues } = initVars;
|
|
11506
|
+
dataSet.forEach((row) => {
|
|
11507
|
+
if (row.group || row.groupFooter) {
|
|
11508
|
+
rowValues = this.setRowGroupFormat(row, rowValues, groups, formatedDataSet, columnsName, columns, indexLastGroup);
|
|
11509
|
+
}
|
|
11425
11510
|
else {
|
|
11426
11511
|
this.setIndexGroups(groups, formatedDataSet);
|
|
11427
11512
|
this.setRowNormal(columnsName, rowValues, row);
|
|
@@ -11468,8 +11553,14 @@ class Report {
|
|
|
11468
11553
|
if (type === 'pdf') {
|
|
11469
11554
|
return new PDFReport();
|
|
11470
11555
|
}
|
|
11471
|
-
if (type === 'xls'
|
|
11472
|
-
return new XLSReport(
|
|
11556
|
+
if (type === 'xls') {
|
|
11557
|
+
return new XLSReport();
|
|
11558
|
+
}
|
|
11559
|
+
if (type === 'xls2') {
|
|
11560
|
+
return new XLS2Report();
|
|
11561
|
+
}
|
|
11562
|
+
if (type === 'xls3') {
|
|
11563
|
+
return new XLS3Report();
|
|
11473
11564
|
}
|
|
11474
11565
|
throw new Error(`Invalid report type: ${type}`);
|
|
11475
11566
|
}
|
|
@@ -11488,10 +11579,10 @@ class Report {
|
|
|
11488
11579
|
const formattedColumns = this.removeActionColumns(columns);
|
|
11489
11580
|
const metadataObj = yield reportType.buildMetadata(name, this.title, formattedColumns, datasource.filter, portrait);
|
|
11490
11581
|
let dataset;
|
|
11491
|
-
if ((reportType
|
|
11582
|
+
if ((reportType instanceof XLS2Report || reportType instanceof XLS3Report) && groupedData) {
|
|
11492
11583
|
const rowMetadata = rowObj.metaData;
|
|
11493
11584
|
const metadataObjClone = merge(rowMetadata, JSON.parse(metadataObj));
|
|
11494
|
-
dataset = reportType.buildDataset(groupedData,
|
|
11585
|
+
dataset = reportType.buildDataset(groupedData, metadataObjClone);
|
|
11495
11586
|
}
|
|
11496
11587
|
else {
|
|
11497
11588
|
dataset = reportType.buildDataset(data, formattedColumns);
|
|
@@ -11534,4 +11625,4 @@ class Report {
|
|
|
11534
11625
|
|
|
11535
11626
|
const AutoNumeric = require('@zeedhi/autonumeric/dist/autoNumeric');
|
|
11536
11627
|
|
|
11537
|
-
export { Alert, AlertService, ApexChart, AutoNumeric, Badge, Breadcrumbs, Button, ButtonGroup, CSVReport, Card, Carousel, Checkbox, CheckboxMultiple, ChildNotFoundError, Chip, CodeEditor, Col, CollapseCard, Column, Component, ComponentRender, Container, Currency, Dashboard, Date$1 as Date, DateRange, Dialog, DialogService, Divider, Dropdown, FileInput, Footer, Form, Frame, FramePage, Grid, GridColumn, GridColumnEditable, GridEditable, Header, Icon, Icons, Image, Increment, Input, Iterable, IterableColumnsButton, IterableColumnsButtonController, IterablePageComponent, IterablePageInfo, IterablePageSize, IterablePagination, List, ListGroup, ListItem, Loading, LoadingService, Login, LoginButton, MasterDetail, Menu, MenuButton, MenuGroup, MenuLink, MenuSeparator, Modal, ModalCloseButton, ModalService, Month, Number$1 as Number, PDFReport, Password, Progress, Radio, RangeSlider, Report, Row, Search, Select, SelectMultiple, SelectTree, SelectTreeMultiple, SpeedDial, Steppers, SvgMap, Switch, Tab, Table, Tabs, Tag, Text, TextInput, Textarea, Time, Toggleable, Tooltip, Tree, TreeDataStructure, TreeGrid, TreeGridEditable, WatchURL, XLSReport, initTheme };
|
|
11628
|
+
export { Alert, AlertService, ApexChart, AutoNumeric, Badge, Breadcrumbs, Button, ButtonGroup, CSVReport, Card, Carousel, Checkbox, CheckboxMultiple, ChildNotFoundError, Chip, CodeEditor, Col, CollapseCard, Column, Component, ComponentRender, Container, Currency, Dashboard, Date$1 as Date, DateRange, Dialog, DialogService, Divider, Dropdown, FileInput, Footer, Form, Frame, FramePage, Grid, GridColumn, GridColumnEditable, GridEditable, Header, Icon, Icons, Image, Increment, Input, Iterable, IterableColumnsButton, IterableColumnsButtonController, IterablePageComponent, IterablePageInfo, IterablePageSize, IterablePagination, List, ListGroup, ListItem, Loading, LoadingService, Login, LoginButton, MasterDetail, Menu, MenuButton, MenuGroup, MenuLink, MenuSeparator, Modal, ModalCloseButton, ModalService, Month, Number$1 as Number, PDFReport, Password, Progress, Radio, RangeSlider, Report, Row, Search, Select, SelectMultiple, SelectTree, SelectTreeMultiple, SpeedDial, Steppers, SvgMap, Switch, Tab, Table, Tabs, Tag, Text, TextInput, Textarea, Time, Toggleable, Tooltip, Tree, TreeDataStructure, TreeGrid, TreeGridEditable, WatchURL, XLS2Report, XLS3Report, XLSReport, initTheme };
|