@edm-sdui/sdui 1.0.13 → 1.0.14

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.
Files changed (73) hide show
  1. package/esm2022/lib/components/uicomponent/image/image.component.mjs +5 -1
  2. package/esm2022/lib/components/uicomponent/label/label.component.mjs +19 -1
  3. package/esm2022/lib/components/uicomponent/profile-button/profile-button.component.mjs +59 -0
  4. package/esm2022/lib/components/uicomponent/progress-bar/progress-bar.component.mjs +42 -0
  5. package/esm2022/lib/components/uicomponent/scrollable-column/scrollable-column.component.mjs +33 -0
  6. package/esm2022/lib/components/uicomponent/scrollable-row/scrollable-row.component.mjs +62 -0
  7. package/esm2022/lib/core/services/ui-action.service.mjs +30 -1
  8. package/esm2022/lib/core/services/uiscreen.service.mjs +9 -1
  9. package/esm2022/lib/core/uicomposition/enums/uicomponent-type.mjs +7 -1
  10. package/esm2022/lib/core/uicomposition/mapping/component-mapping.mjs +7 -1
  11. package/esm2022/lib/core/uicomposition/models/uielement.mjs +1 -1
  12. package/esm2022/lib/core/uicomposition/models/uiview.mjs +1 -1
  13. package/esm2022/lib/core/uitheme/enums/uiaction-type.mjs +2 -1
  14. package/esm2022/lib/core/uitheme/enums/uiasset.mjs +14 -1
  15. package/esm2022/lib/core/uitheme/enums/uidimension.mjs +47 -0
  16. package/esm2022/lib/core/uitheme/enums/uijustify.mjs +9 -0
  17. package/esm2022/lib/core/uitheme/enums/uisize.mjs +2 -1
  18. package/esm2022/lib/core/uitheme/enums/uispacing-level.mjs +3 -1
  19. package/esm2022/lib/core/uitheme/mapping/asset-mapping.mjs +14 -1
  20. package/esm2022/lib/core/uitheme/mapping/dimension-mapping.mjs +49 -0
  21. package/esm2022/lib/core/uitheme/mapping/justify-mapping.mjs +9 -0
  22. package/esm2022/lib/core/uitheme/mapping/shadow-mapping.mjs +9 -0
  23. package/esm2022/lib/core/uitheme/mapping/size-mapping.mjs +5 -3
  24. package/esm2022/lib/core/uitheme/mapping/space-mapping.mjs +3 -1
  25. package/esm2022/lib/directives/uiview.directive.mjs +69 -6
  26. package/esm2022/lib/sdui.module.mjs +13 -1
  27. package/fesm2022/edm-sdui-sdui.mjs +498 -7
  28. package/fesm2022/edm-sdui-sdui.mjs.map +1 -1
  29. package/lib/components/uicomponent/image/image.component.d.ts.map +1 -1
  30. package/lib/components/uicomponent/label/label.component.d.ts.map +1 -1
  31. package/lib/components/uicomponent/profile-button/profile-button.component.d.ts +21 -0
  32. package/lib/components/uicomponent/profile-button/profile-button.component.d.ts.map +1 -0
  33. package/lib/components/uicomponent/progress-bar/progress-bar.component.d.ts +15 -0
  34. package/lib/components/uicomponent/progress-bar/progress-bar.component.d.ts.map +1 -0
  35. package/lib/components/uicomponent/scrollable-column/scrollable-column.component.d.ts +15 -0
  36. package/lib/components/uicomponent/scrollable-column/scrollable-column.component.d.ts.map +1 -0
  37. package/lib/components/uicomponent/scrollable-row/scrollable-row.component.d.ts +16 -0
  38. package/lib/components/uicomponent/scrollable-row/scrollable-row.component.d.ts.map +1 -0
  39. package/lib/core/services/ui-action.service.d.ts.map +1 -1
  40. package/lib/core/services/uiscreen.service.d.ts.map +1 -1
  41. package/lib/core/uicomposition/enums/uicomponent-type.d.ts +5 -1
  42. package/lib/core/uicomposition/enums/uicomponent-type.d.ts.map +1 -1
  43. package/lib/core/uicomposition/mapping/component-mapping.d.ts.map +1 -1
  44. package/lib/core/uicomposition/models/uielement.d.ts +3 -0
  45. package/lib/core/uicomposition/models/uielement.d.ts.map +1 -1
  46. package/lib/core/uicomposition/models/uiview.d.ts +8 -0
  47. package/lib/core/uicomposition/models/uiview.d.ts.map +1 -1
  48. package/lib/core/uitheme/enums/uiaction-type.d.ts +1 -0
  49. package/lib/core/uitheme/enums/uiaction-type.d.ts.map +1 -1
  50. package/lib/core/uitheme/enums/uiasset.d.ts +14 -1
  51. package/lib/core/uitheme/enums/uiasset.d.ts.map +1 -1
  52. package/lib/core/uitheme/enums/uidimension.d.ts +46 -0
  53. package/lib/core/uitheme/enums/uidimension.d.ts.map +1 -0
  54. package/lib/core/uitheme/enums/uijustify.d.ts +8 -0
  55. package/lib/core/uitheme/enums/uijustify.d.ts.map +1 -0
  56. package/lib/core/uitheme/enums/uisize.d.ts +1 -0
  57. package/lib/core/uitheme/enums/uisize.d.ts.map +1 -1
  58. package/lib/core/uitheme/enums/uispacing-level.d.ts +3 -1
  59. package/lib/core/uitheme/enums/uispacing-level.d.ts.map +1 -1
  60. package/lib/core/uitheme/mapping/asset-mapping.d.ts.map +1 -1
  61. package/lib/core/uitheme/mapping/dimension-mapping.d.ts +3 -0
  62. package/lib/core/uitheme/mapping/dimension-mapping.d.ts.map +1 -0
  63. package/lib/core/uitheme/mapping/justify-mapping.d.ts +3 -0
  64. package/lib/core/uitheme/mapping/justify-mapping.d.ts.map +1 -0
  65. package/lib/core/uitheme/mapping/shadow-mapping.d.ts +5 -0
  66. package/lib/core/uitheme/mapping/shadow-mapping.d.ts.map +1 -0
  67. package/lib/core/uitheme/mapping/size-mapping.d.ts.map +1 -1
  68. package/lib/core/uitheme/mapping/space-mapping.d.ts.map +1 -1
  69. package/lib/directives/uiview.directive.d.ts +5 -0
  70. package/lib/directives/uiview.directive.d.ts.map +1 -1
  71. package/lib/sdui.module.d.ts +10 -6
  72. package/lib/sdui.module.d.ts.map +1 -1
  73. package/package.json +1 -1
@@ -21,6 +21,8 @@ var UIComponentType;
21
21
  UIComponentType["ROW_DIVISOR"] = "ROW_DIVISOR";
22
22
  UIComponentType["COLUMN"] = "COLUMN";
23
23
  UIComponentType["Z_STACK"] = "Z_STACK";
24
+ UIComponentType["SCROLLABLE_ROW"] = "SCROLLABLE_ROW";
25
+ UIComponentType["SCROLLABLE_COLUMN"] = "SCROLLABLE_COLUMN";
24
26
  // elements
25
27
  UIComponentType["BUTTON"] = "BUTTON";
26
28
  UIComponentType["LABEL"] = "LABEL";
@@ -40,6 +42,10 @@ var UIComponentType;
40
42
  UIComponentType["PICKER_ITEM"] = "PICKER_ITEM";
41
43
  // tag
42
44
  UIComponentType["TAG"] = "TAG";
45
+ // profile
46
+ UIComponentType["PROFILE_BUTTON"] = "PROFILE_BUTTON";
47
+ // progress bar
48
+ UIComponentType["PROGRESS_BAR"] = "PROGRESS_BAR";
43
49
  })(UIComponentType || (UIComponentType = {}));
44
50
 
45
51
  const SDUI_BASE_URL = new InjectionToken('SDUI_BASE_URL');
@@ -157,6 +163,9 @@ class UIScreenService {
157
163
  placeholder: json.placeholder ?? null,
158
164
  placeholderTextColor: json.placeholder_text_color ?? null,
159
165
  placeholderTextStyle: json.placeholder_text_style ?? null,
166
+ aspectRatio: json.aspect_ratio ?? null,
167
+ progress: json.progress ?? null,
168
+ progressColor: json.progress_color ? json.progress_color : null,
160
169
  ...this.mapToUIView(json),
161
170
  };
162
171
  }
@@ -173,6 +182,11 @@ class UIScreenService {
173
182
  spacing: json.spacing
174
183
  ? { spacing: json.spacing }
175
184
  : null,
185
+ height: json.height ? json.height : null,
186
+ width: json.width ? json.width : null,
187
+ borderWidth: json.border_width ?? null,
188
+ borderColor: json.border_color ? json.border_color : null,
189
+ justify: json.justify ? json.justify : null,
176
190
  };
177
191
  }
178
192
  mapBackground(json) {
@@ -316,6 +330,8 @@ const componentMapping = {
316
330
  [UIComponentType.ROW_DIVISOR]: () => Promise.resolve().then(function () { return rowDivisor_component; }).then((m) => m.RowDivisorComponent),
317
331
  [UIComponentType.COLUMN]: () => Promise.resolve().then(function () { return column_component; }).then((m) => m.ColumnComponent),
318
332
  [UIComponentType.Z_STACK]: () => Promise.resolve().then(function () { return zstack_component; }).then((m) => m.ZStackComponent),
333
+ [UIComponentType.SCROLLABLE_ROW]: () => Promise.resolve().then(function () { return scrollableRow_component; }).then((m) => m.ScrollableRowComponent),
334
+ [UIComponentType.SCROLLABLE_COLUMN]: () => Promise.resolve().then(function () { return scrollableColumn_component; }).then((m) => m.ScrollableColumnComponent),
319
335
  // elementos
320
336
  [UIComponentType.BUTTON]: () => Promise.resolve().then(function () { return button_component; }).then((m) => m.ButtonComponent),
321
337
  [UIComponentType.IMAGE]: () => Promise.resolve().then(function () { return image_component; }).then((m) => m.ImageComponent),
@@ -335,6 +351,10 @@ const componentMapping = {
335
351
  [UIComponentType.PICKER_ITEM]: () => Promise.resolve().then(function () { return pickerItem_component; }).then((m) => m.PickerItemComponent),
336
352
  // tag
337
353
  [UIComponentType.TAG]: () => Promise.resolve().then(function () { return tag_component; }).then((m) => m.TagComponent),
354
+ // profile
355
+ [UIComponentType.PROFILE_BUTTON]: () => Promise.resolve().then(function () { return profileButton_component; }).then((m) => m.ProfileButtonComponent),
356
+ // progress bar
357
+ [UIComponentType.PROGRESS_BAR]: () => Promise.resolve().then(function () { return progressBar_component; }).then((m) => m.ProgressBarComponent),
338
358
  };
339
359
 
340
360
  class UIComponentComponent {
@@ -431,6 +451,8 @@ var UISpacingLevel;
431
451
  UISpacingLevel["S2"] = "s2";
432
452
  UISpacingLevel["S3"] = "s3";
433
453
  UISpacingLevel["S4"] = "s4";
454
+ UISpacingLevel["S5"] = "s5";
455
+ UISpacingLevel["S6"] = "s6";
434
456
  })(UISpacingLevel || (UISpacingLevel = {}));
435
457
 
436
458
  const spaceMapping = {
@@ -438,6 +460,8 @@ const spaceMapping = {
438
460
  [UISpacingLevel.S2]: '8px',
439
461
  [UISpacingLevel.S3]: '16px',
440
462
  [UISpacingLevel.S4]: '24px',
463
+ [UISpacingLevel.S5]: '32px',
464
+ [UISpacingLevel.S6]: '40px',
441
465
  };
442
466
 
443
467
  var UIColor;
@@ -756,12 +780,142 @@ const alignmentMapping = {
756
780
  [UIAlignmentType.START]: 'start',
757
781
  };
758
782
 
783
+ var UIDimension;
784
+ (function (UIDimension) {
785
+ UIDimension["P100"] = "p100";
786
+ UIDimension["P90"] = "p90";
787
+ UIDimension["P80"] = "p80";
788
+ UIDimension["P70"] = "p70";
789
+ UIDimension["P60"] = "p60";
790
+ UIDimension["P50"] = "p50";
791
+ UIDimension["P40"] = "p40";
792
+ UIDimension["P30"] = "p30";
793
+ UIDimension["P20"] = "p20";
794
+ UIDimension["P10"] = "p10";
795
+ UIDimension["D180"] = "d180";
796
+ UIDimension["D150"] = "d150";
797
+ UIDimension["D120"] = "d120";
798
+ UIDimension["D110"] = "d110";
799
+ UIDimension["D100"] = "d100";
800
+ UIDimension["D90"] = "d90";
801
+ UIDimension["D80"] = "d80";
802
+ UIDimension["D72"] = "d72";
803
+ UIDimension["D64"] = "d64";
804
+ UIDimension["D60"] = "d60";
805
+ UIDimension["D56"] = "d56";
806
+ UIDimension["D48"] = "d48";
807
+ UIDimension["D42"] = "d42";
808
+ UIDimension["D40"] = "d40";
809
+ UIDimension["D36"] = "d36";
810
+ UIDimension["D32"] = "d32";
811
+ UIDimension["D30"] = "d30";
812
+ UIDimension["D28"] = "d28";
813
+ UIDimension["D26"] = "d26";
814
+ UIDimension["D24"] = "d24";
815
+ UIDimension["D22"] = "d22";
816
+ UIDimension["D20"] = "d20";
817
+ UIDimension["D18"] = "d18";
818
+ UIDimension["D16"] = "d16";
819
+ UIDimension["D14"] = "d14";
820
+ UIDimension["D12"] = "d12";
821
+ UIDimension["D10"] = "d10";
822
+ UIDimension["D8"] = "d8";
823
+ UIDimension["D5"] = "d5";
824
+ UIDimension["D4"] = "d4";
825
+ UIDimension["D3"] = "d3";
826
+ UIDimension["D2"] = "d2";
827
+ UIDimension["D1"] = "d1";
828
+ })(UIDimension || (UIDimension = {}));
829
+
830
+ const dimensionMapping = {
831
+ // Percentage values
832
+ [UIDimension.P100]: '100%',
833
+ [UIDimension.P90]: '90%',
834
+ [UIDimension.P80]: '80%',
835
+ [UIDimension.P70]: '70%',
836
+ [UIDimension.P60]: '60%',
837
+ [UIDimension.P50]: '50%',
838
+ [UIDimension.P40]: '40%',
839
+ [UIDimension.P30]: '30%',
840
+ [UIDimension.P20]: '20%',
841
+ [UIDimension.P10]: '10%',
842
+ // Pixel values
843
+ [UIDimension.D180]: '180px',
844
+ [UIDimension.D150]: '150px',
845
+ [UIDimension.D120]: '120px',
846
+ [UIDimension.D110]: '110px',
847
+ [UIDimension.D100]: '100px',
848
+ [UIDimension.D90]: '90px',
849
+ [UIDimension.D80]: '80px',
850
+ [UIDimension.D72]: '72px',
851
+ [UIDimension.D64]: '64px',
852
+ [UIDimension.D60]: '60px',
853
+ [UIDimension.D56]: '56px',
854
+ [UIDimension.D48]: '48px',
855
+ [UIDimension.D42]: '42px',
856
+ [UIDimension.D40]: '40px',
857
+ [UIDimension.D36]: '36px',
858
+ [UIDimension.D32]: '32px',
859
+ [UIDimension.D30]: '30px',
860
+ [UIDimension.D28]: '28px',
861
+ [UIDimension.D26]: '26px',
862
+ [UIDimension.D24]: '24px',
863
+ [UIDimension.D22]: '22px',
864
+ [UIDimension.D20]: '20px',
865
+ [UIDimension.D18]: '18px',
866
+ [UIDimension.D16]: '16px',
867
+ [UIDimension.D14]: '14px',
868
+ [UIDimension.D12]: '12px',
869
+ [UIDimension.D10]: '10px',
870
+ [UIDimension.D8]: '8px',
871
+ [UIDimension.D5]: '5px',
872
+ [UIDimension.D4]: '4px',
873
+ [UIDimension.D3]: '3px',
874
+ [UIDimension.D2]: '2px',
875
+ [UIDimension.D1]: '1px',
876
+ };
877
+
878
+ var UIShadowOffset;
879
+ (function (UIShadowOffset) {
880
+ UIShadowOffset["S1"] = "s1";
881
+ })(UIShadowOffset || (UIShadowOffset = {}));
882
+
883
+ var UIShadowBlurRadius;
884
+ (function (UIShadowBlurRadius) {
885
+ UIShadowBlurRadius["B1"] = "b1";
886
+ })(UIShadowBlurRadius || (UIShadowBlurRadius = {}));
887
+
888
+ const shadowOffsetMapping = {
889
+ [UIShadowOffset.S1]: '1px',
890
+ };
891
+ const shadowBlurRadiusMapping = {
892
+ [UIShadowBlurRadius.B1]: '3px',
893
+ };
894
+
895
+ var UIJustify;
896
+ (function (UIJustify) {
897
+ UIJustify["START"] = "start";
898
+ UIJustify["CENTER"] = "center";
899
+ UIJustify["END"] = "end";
900
+ UIJustify["BETWEEN"] = "space-between";
901
+ UIJustify["EVENLY"] = "space-evenly";
902
+ })(UIJustify || (UIJustify = {}));
903
+
904
+ const justifyMapping = {
905
+ [UIJustify.START]: 'flex-start',
906
+ [UIJustify.CENTER]: 'center',
907
+ [UIJustify.END]: 'flex-end',
908
+ [UIJustify.BETWEEN]: 'space-between',
909
+ [UIJustify.EVENLY]: 'space-evenly',
910
+ };
911
+
759
912
  var UIActionType;
760
913
  (function (UIActionType) {
761
914
  // navegação
762
915
  UIActionType["INTERNAL_URL"] = "INTERNAL_URL";
763
916
  UIActionType["RELOAD_INTERNAL_URL"] = "RELOAD_INTERNAL_URL";
764
917
  UIActionType["DISMISS_TO_SCENE"] = "DISMISS_TO_SCENE";
918
+ UIActionType["EXTERNAL_URL"] = "EXTERNAL_URL";
765
919
  // paywall
766
920
  UIActionType["PAYWALL"] = "PAYWALL";
767
921
  UIActionType["REGISTER"] = "REGISTER";
@@ -806,6 +960,11 @@ class UIActionService {
806
960
  }
807
961
  }
808
962
  break;
963
+ case UIActionType.EXTERNAL_URL:
964
+ if (action.url) {
965
+ console.debug('[UIActionService] Navigating to:', action.url);
966
+ window.open(action.url, '_blank');
967
+ }
809
968
  // Outros tipos de ação podem ser adicionados aqui
810
969
  }
811
970
  }
@@ -838,6 +997,30 @@ class UIActionService {
838
997
  this.router.navigate(['comunidade', 'postagem', postId], { queryParams: { from: 'sdui' } });
839
998
  return true;
840
999
  }
1000
+ if (url.includes('my-purchases')) {
1001
+ this.router.navigate(['perfil', 'compras'], { queryParams: { from: 'sdui' } });
1002
+ return true;
1003
+ }
1004
+ if (url.includes('my-annotations')) {
1005
+ this.router.navigate(['perfil', 'meu-caderno'], { queryParams: { from: 'sdui' } });
1006
+ return true;
1007
+ }
1008
+ if (url.includes('my-list')) {
1009
+ this.router.navigate(['perfil', 'minha-lista'], { queryParams: { from: 'sdui' } });
1010
+ return true;
1011
+ }
1012
+ if (url.includes('my-certificates')) {
1013
+ this.router.navigate(['perfil', 'certificados'], { queryParams: { from: 'sdui' } });
1014
+ return true;
1015
+ }
1016
+ if (url.includes('my-subscriptions')) {
1017
+ this.router.navigate(['perfil', 'assinaturas'], { queryParams: { from: 'sdui' } });
1018
+ return true;
1019
+ }
1020
+ if (url.includes('edit-profile')) {
1021
+ this.router.navigate(['perfil', 'editar'], { queryParams: { from: 'sdui' } });
1022
+ return true;
1023
+ }
841
1024
  return false; // nenhum dos casos especiais foi tratado
842
1025
  }
843
1026
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UIActionService, deps: [{ token: i1$2.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
@@ -884,23 +1067,38 @@ class UIViewDirective {
884
1067
  if (uiView.spacing) {
885
1068
  this.applySpacing(uiView.spacing);
886
1069
  }
1070
+ if (uiView.height) {
1071
+ this.applyHeight(uiView.height);
1072
+ }
1073
+ if (uiView.width) {
1074
+ this.applyWidth(uiView.width);
1075
+ }
1076
+ if (uiView.borderWidth) {
1077
+ this.applyBorderWidth(uiView.borderWidth);
1078
+ }
1079
+ if (uiView.borderColor) {
1080
+ this.applyBorderColor(uiView.borderColor);
1081
+ }
1082
+ if (uiView.justify) {
1083
+ this.applyJustify(uiView.justify);
1084
+ }
887
1085
  }
888
1086
  applyPadding(uiPadding) {
889
1087
  if (uiPadding.top) {
890
1088
  const padValue = padMapping[uiPadding.top];
891
- this.renderer.setStyle(this.elementRef.nativeElement, 'margin-top', padValue);
1089
+ this.renderer.setStyle(this.elementRef.nativeElement, 'padding-top', padValue);
892
1090
  }
893
1091
  if (uiPadding.left) {
894
1092
  const padValue = padMapping[uiPadding.left];
895
- this.renderer.setStyle(this.elementRef.nativeElement, 'margin-left', padValue);
1093
+ this.renderer.setStyle(this.elementRef.nativeElement, 'padding-left', padValue);
896
1094
  }
897
1095
  if (uiPadding.right) {
898
1096
  const padValue = padMapping[uiPadding.right];
899
- this.renderer.setStyle(this.elementRef.nativeElement, 'margin-right', padValue);
1097
+ this.renderer.setStyle(this.elementRef.nativeElement, 'padding-right', padValue);
900
1098
  }
901
1099
  if (uiPadding.bottom) {
902
1100
  const padValue = padMapping[uiPadding.bottom];
903
- this.renderer.setStyle(this.elementRef.nativeElement, 'margin-bottom', padValue);
1101
+ this.renderer.setStyle(this.elementRef.nativeElement, 'padding-bottom', padValue);
904
1102
  }
905
1103
  }
906
1104
  applyBackground(uiBackground) {
@@ -922,7 +1120,21 @@ class UIViewDirective {
922
1120
  this.renderer.setStyle(this.elementRef.nativeElement, 'align-items', alignment);
923
1121
  }
924
1122
  }
925
- applyShadow(uiShadow) { }
1123
+ applyShadow(uiShadow) {
1124
+ if (uiShadow.color && uiShadow.offsetX && uiShadow.offsetY && uiShadow.blurRadius) {
1125
+ const color = colorMapping[uiShadow.color];
1126
+ const offsetX = shadowOffsetMapping[uiShadow.offsetX];
1127
+ const offsetY = shadowOffsetMapping[uiShadow.offsetY];
1128
+ const blurRadius = shadowBlurRadiusMapping[uiShadow.blurRadius];
1129
+ const opacity = uiShadow.opacity !== undefined ? uiShadow.opacity : 1;
1130
+ // Format: box-shadow: offsetX offsetY blurRadius color
1131
+ const shadowValue = `${offsetX} ${offsetY} ${blurRadius} ${color}`;
1132
+ this.renderer.setStyle(this.elementRef.nativeElement, 'box-shadow', shadowValue);
1133
+ if (opacity !== 1) {
1134
+ this.renderer.setStyle(this.elementRef.nativeElement, 'opacity', opacity.toString());
1135
+ }
1136
+ }
1137
+ }
926
1138
  applyRadius(uiRadius) {
927
1139
  if (uiRadius.topLeft) {
928
1140
  const radius = radiusMapping[uiRadius.topLeft];
@@ -947,6 +1159,37 @@ class UIViewDirective {
947
1159
  this.renderer.setStyle(this.elementRef.nativeElement, 'gap', spacingValue);
948
1160
  }
949
1161
  }
1162
+ applyHeight(height) {
1163
+ if (height) {
1164
+ const heightValue = dimensionMapping[height];
1165
+ this.renderer.setStyle(this.elementRef.nativeElement, 'height', heightValue);
1166
+ }
1167
+ }
1168
+ applyWidth(width) {
1169
+ if (width) {
1170
+ const widthValue = dimensionMapping[width];
1171
+ this.renderer.setStyle(this.elementRef.nativeElement, 'width', widthValue);
1172
+ }
1173
+ }
1174
+ applyBorderWidth(borderWidth) {
1175
+ if (borderWidth !== null && borderWidth !== undefined) {
1176
+ this.renderer.setStyle(this.elementRef.nativeElement, 'border-width', `${borderWidth}px`);
1177
+ // Ensure border style is set, otherwise border-width won't be visible
1178
+ this.renderer.setStyle(this.elementRef.nativeElement, 'border-style', 'solid');
1179
+ }
1180
+ }
1181
+ applyBorderColor(borderColor) {
1182
+ if (borderColor) {
1183
+ const color = colorMapping[borderColor];
1184
+ this.renderer.setStyle(this.elementRef.nativeElement, 'border-color', color);
1185
+ }
1186
+ }
1187
+ applyJustify(justify) {
1188
+ if (justify) {
1189
+ const justifyValue = justifyMapping[justify];
1190
+ this.renderer.setStyle(this.elementRef.nativeElement, 'justify-content', justifyValue);
1191
+ }
1192
+ }
950
1193
  onClick(event) {
951
1194
  if (this.disableClick)
952
1195
  return;
@@ -1168,6 +1411,23 @@ class LabelComponent {
1168
1411
  const opacity = element.opacity;
1169
1412
  this.renderer.setStyle(this.spanElementRef.nativeElement, 'opacity', opacity);
1170
1413
  }
1414
+ if (element.alignment) {
1415
+ const alignment = element.alignment.alignment;
1416
+ switch (alignment) {
1417
+ case UIAlignmentType.START: {
1418
+ this.renderer.setStyle(this.spanElementRef.nativeElement, 'text-align', 'left');
1419
+ break;
1420
+ }
1421
+ case UIAlignmentType.CENTER: {
1422
+ this.renderer.setStyle(this.spanElementRef.nativeElement, 'text-align', 'center');
1423
+ break;
1424
+ }
1425
+ case UIAlignmentType.END: {
1426
+ this.renderer.setStyle(this.spanElementRef.nativeElement, 'text-align', 'right');
1427
+ break;
1428
+ }
1429
+ }
1430
+ }
1171
1431
  }
1172
1432
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LabelComponent, deps: [{ token: 'uiComponent' }, { token: i0.Renderer2 }, { token: FontSizeMappingService }], target: i0.ɵɵFactoryTarget.Component }); }
1173
1433
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: LabelComponent, selector: "edm-sdui-label", viewQueries: [{ propertyName: "spanElementRef", first: true, predicate: ["spanElement"], descendants: true }], ngImport: i0, template: "<span #spanElement [edmSduiView]=\"uiComponent.element\" *ngIf=\"uiComponent\">{{\n uiComponent.element?.label ?? \"\"\n}}</span>\n", styles: [":host{display:contents}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: UIViewDirective, selector: "[edmSduiView]", inputs: ["edmSduiView", "disableClick"] }] }); }
@@ -1610,6 +1870,19 @@ var UIAsset;
1610
1870
  UIAsset["WAY_TASK_ON"] = "way_task_on";
1611
1871
  UIAsset["WAY_TWO_OFF"] = "way_two_off";
1612
1872
  UIAsset["WAY_TWO_ON"] = "way_two_on";
1873
+ UIAsset["BT_SUPPORT_IA"] = "bt_support_ia";
1874
+ UIAsset["IC_CHECK_PROFILE"] = "ic_check_profile";
1875
+ UIAsset["IC_DAYS_PROFILE"] = "ic_days_profile";
1876
+ UIAsset["IC_DOWNLOAD_PROFILE"] = "ic_download_profile";
1877
+ UIAsset["IC_HOUR_PROFILE"] = "ic_hour_profile";
1878
+ UIAsset["IC_LINK_GENERIC_PROFILE"] = "ic_link_generic_profile";
1879
+ UIAsset["IC_NOTIFICATION_PROFILE_OFF"] = "ic_notification_profile_off";
1880
+ UIAsset["IC_NOTIFICATION_PROFILE_ON"] = "ic_notification_profile_on";
1881
+ UIAsset["IC_POST_SAVE_MY_APP"] = "ic_post_save_my_app";
1882
+ UIAsset["IC_RANKING_PTS"] = "ic_ranking_pts";
1883
+ UIAsset["IC_RANKING_RANKING"] = "ic_ranking_ranking";
1884
+ UIAsset["BT_NEXT_PROFILE"] = "bt_next_profile";
1885
+ UIAsset["IC_SUPPORT_PROFILE"] = "ic_support_profile";
1613
1886
  })(UIAsset || (UIAsset = {}));
1614
1887
 
1615
1888
  const assetMapping = {
@@ -1964,6 +2237,19 @@ const assetMapping = {
1964
2237
  [UIAsset.IC_LIKE_SEARCH_LIST]: 'assets/images/ic-like-search-list.svg',
1965
2238
  [UIAsset.IC_SHARE_SEARCH_LIST]: 'assets/images/ic-share-search-list.svg',
1966
2239
  [UIAsset.IC_LAST_SEARCH]: 'assets/images/ic-last-search.svg',
2240
+ [UIAsset.BT_SUPPORT_IA]: 'assets/images/bt-support-ia.svg',
2241
+ [UIAsset.IC_CHECK_PROFILE]: 'assets/images/ic-check-profile.svg',
2242
+ [UIAsset.IC_DAYS_PROFILE]: 'assets/images/ic-days-profile.svg',
2243
+ [UIAsset.IC_DOWNLOAD_PROFILE]: 'assets/images/ic-download-profile.svg',
2244
+ [UIAsset.IC_HOUR_PROFILE]: 'assets/images/ic-hour-profile.svg',
2245
+ [UIAsset.IC_LINK_GENERIC_PROFILE]: 'assets/images/ic-link-generic-profile.svg',
2246
+ [UIAsset.IC_NOTIFICATION_PROFILE_OFF]: 'assets/images/ic-notification-profile-off.svg',
2247
+ [UIAsset.IC_NOTIFICATION_PROFILE_ON]: 'assets/images/ic-notification-profile-on.svg',
2248
+ [UIAsset.IC_POST_SAVE_MY_APP]: 'assets/images/ic-post-save-my-app.svg',
2249
+ [UIAsset.IC_RANKING_PTS]: 'assets/images/ic-ranking-pts.svg',
2250
+ [UIAsset.IC_RANKING_RANKING]: 'assets/images/ic-ranking-ranking.svg',
2251
+ [UIAsset.BT_NEXT_PROFILE]: 'assets/images/bt-next-profile.svg',
2252
+ [UIAsset.IC_SUPPORT_PROFILE]: 'assets/images/ic-support-profile.svg',
1967
2253
  };
1968
2254
 
1969
2255
  class ButtonComponent {
@@ -2016,6 +2302,7 @@ var button_component = /*#__PURE__*/Object.freeze({
2016
2302
  var UISize;
2017
2303
  (function (UISize) {
2018
2304
  UISize["THUMB_1"] = "thumb_1";
2305
+ UISize["THUMB_2"] = "thumb_2";
2019
2306
  UISize["ASSET_1"] = "asset_1";
2020
2307
  UISize["ASSET_2"] = "asset_2";
2021
2308
  UISize["ASSET_3"] = "asset_3";
@@ -2027,10 +2314,11 @@ var UISize;
2027
2314
  })(UISize || (UISize = {}));
2028
2315
 
2029
2316
  const sizeMappingHeight = {
2317
+ [UISize.THUMB_1]: '56px',
2318
+ [UISize.THUMB_2]: '40px',
2030
2319
  [UISize.ASSET_1]: '26px',
2031
2320
  [UISize.ASSET_2]: '16px',
2032
2321
  [UISize.ASSET_3]: '80px',
2033
- [UISize.THUMB_1]: '56px',
2034
2322
  [UISize.ASSET_4]: '60px',
2035
2323
  [UISize.ASSET_5]: '18px',
2036
2324
  [UISize.ASSET_6]: '20px',
@@ -2038,10 +2326,11 @@ const sizeMappingHeight = {
2038
2326
  [UISize.ASSET_8]: '24px',
2039
2327
  };
2040
2328
  const sizeMappingWidth = {
2329
+ [UISize.THUMB_1]: '100px',
2330
+ [UISize.THUMB_2]: '105px',
2041
2331
  [UISize.ASSET_1]: '26px',
2042
2332
  [UISize.ASSET_2]: '16px',
2043
2333
  [UISize.ASSET_3]: '80px',
2044
- [UISize.THUMB_1]: '100px',
2045
2334
  [UISize.ASSET_4]: '60px',
2046
2335
  [UISize.ASSET_5]: '18px',
2047
2336
  [UISize.ASSET_6]: '20px',
@@ -2073,6 +2362,9 @@ class ImageComponent {
2073
2362
  const width = sizeMappingWidth[element.size];
2074
2363
  this.renderer.setStyle(this.imgElementRef.nativeElement, 'height', height);
2075
2364
  this.renderer.setStyle(this.imgElementRef.nativeElement, 'width', width);
2365
+ if (element.size === UISize.THUMB_2) {
2366
+ this.renderer.setStyle(this.imgElementRef.nativeElement, 'object-fit', 'contain');
2367
+ }
2076
2368
  }
2077
2369
  }
2078
2370
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ImageComponent, deps: [{ token: 'uiComponent' }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
@@ -2655,6 +2947,197 @@ var picker_component = /*#__PURE__*/Object.freeze({
2655
2947
  PickerComponent: PickerComponent
2656
2948
  });
2657
2949
 
2950
+ class ScrollableRowComponent {
2951
+ constructor(uiComponent, renderer) {
2952
+ this.uiComponent = uiComponent;
2953
+ this.renderer = renderer;
2954
+ }
2955
+ ngOnInit() {
2956
+ }
2957
+ ngAfterViewInit() {
2958
+ if (this.uiComponent.element) {
2959
+ this.applyElement(this.uiComponent.element);
2960
+ }
2961
+ this.scroll();
2962
+ }
2963
+ applyElement(element) {
2964
+ }
2965
+ scroll() {
2966
+ const scrollContainer = this.scrollableRowElementRef.nativeElement;
2967
+ let isDown = false;
2968
+ let startX = 0;
2969
+ let scrollLeft = 0;
2970
+ this.renderer.listen(scrollContainer, 'mousedown', (e) => {
2971
+ isDown = true;
2972
+ scrollContainer.classList.add('scrolling');
2973
+ startX = e.pageX - scrollContainer.offsetLeft;
2974
+ scrollLeft = scrollContainer.scrollLeft;
2975
+ });
2976
+ this.renderer.listen(scrollContainer, 'mouseleave', () => {
2977
+ isDown = false;
2978
+ scrollContainer.classList.remove('scrolling');
2979
+ });
2980
+ this.renderer.listen(scrollContainer, 'mouseup', () => {
2981
+ isDown = false;
2982
+ scrollContainer.classList.remove('scrolling');
2983
+ });
2984
+ this.renderer.listen(scrollContainer, 'mousemove', (e) => {
2985
+ if (!isDown)
2986
+ return;
2987
+ e.preventDefault();
2988
+ const x = e.pageX - scrollContainer.offsetLeft;
2989
+ const walk = (x - startX) * 1.5;
2990
+ scrollContainer.scrollLeft = scrollLeft - walk;
2991
+ });
2992
+ }
2993
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ScrollableRowComponent, deps: [{ token: 'uiComponent' }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
2994
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ScrollableRowComponent, selector: "edm-sdui-scrollable-row", viewQueries: [{ propertyName: "scrollableRowElementRef", first: true, predicate: ["scrollableRowElement"], descendants: true }], ngImport: i0, template: "<div\n #scrollableRowElement\n [edmSduiView]=\"uiComponent.element\"\n class=\"scrollable-row\"\n *ngIf=\"uiComponent\"\n>\n <edm-sdui-component\n *ngFor=\"let component of uiComponent.components\"\n [uiComponent]=\"component\"\n >\n </edm-sdui-component>\n</div>\n", styles: [":host{display:contents}.scrollable-row{display:flex;flex-direction:row;overflow-x:auto;overflow-y:hidden;white-space:nowrap;width:100%;-webkit-overflow-scrolling:touch;scrollbar-width:none;cursor:pointer}.scrollable-row::-webkit-scrollbar{display:none}.scrollable-row>*{flex-shrink:0}\n"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: UIComponentComponent, selector: "edm-sdui-component", inputs: ["uiComponent", "translateLabel"] }, { kind: "directive", type: UIViewDirective, selector: "[edmSduiView]", inputs: ["edmSduiView", "disableClick"] }] }); }
2995
+ }
2996
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ScrollableRowComponent, decorators: [{
2997
+ type: Component,
2998
+ args: [{ selector: 'edm-sdui-scrollable-row', standalone: false, template: "<div\n #scrollableRowElement\n [edmSduiView]=\"uiComponent.element\"\n class=\"scrollable-row\"\n *ngIf=\"uiComponent\"\n>\n <edm-sdui-component\n *ngFor=\"let component of uiComponent.components\"\n [uiComponent]=\"component\"\n >\n </edm-sdui-component>\n</div>\n", styles: [":host{display:contents}.scrollable-row{display:flex;flex-direction:row;overflow-x:auto;overflow-y:hidden;white-space:nowrap;width:100%;-webkit-overflow-scrolling:touch;scrollbar-width:none;cursor:pointer}.scrollable-row::-webkit-scrollbar{display:none}.scrollable-row>*{flex-shrink:0}\n"] }]
2999
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
3000
+ type: Inject,
3001
+ args: ['uiComponent']
3002
+ }] }, { type: i0.Renderer2 }], propDecorators: { scrollableRowElementRef: [{
3003
+ type: ViewChild,
3004
+ args: ['scrollableRowElement']
3005
+ }] } });
3006
+
3007
+ var scrollableRow_component = /*#__PURE__*/Object.freeze({
3008
+ __proto__: null,
3009
+ ScrollableRowComponent: ScrollableRowComponent
3010
+ });
3011
+
3012
+ class ScrollableColumnComponent {
3013
+ constructor(uiComponent, renderer) {
3014
+ this.uiComponent = uiComponent;
3015
+ this.renderer = renderer;
3016
+ }
3017
+ ngOnInit() {
3018
+ }
3019
+ ngAfterViewInit() {
3020
+ if (this.uiComponent.element) {
3021
+ this.applyElement(this.uiComponent.element);
3022
+ }
3023
+ }
3024
+ applyElement(element) {
3025
+ }
3026
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ScrollableColumnComponent, deps: [{ token: 'uiComponent' }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
3027
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ScrollableColumnComponent, selector: "edm-sdui-scrollable-column", viewQueries: [{ propertyName: "scrollableColumnElementRef", first: true, predicate: ["scrollableColumnElement"], descendants: true }], ngImport: i0, template: "<div\n #scrollableColumnElement\n [edmSduiView]=\"uiComponent.element\"\n class=\"scrollable-column\"\n *ngIf=\"uiComponent\"\n>\n <edm-sdui-component\n *ngFor=\"let component of uiComponent.components\"\n [uiComponent]=\"component\"\n >\n </edm-sdui-component>\n</div>\n", styles: [":host{display:contents}.scrollable-column{display:flex;flex-direction:column;overflow-y:auto;overflow-x:hidden;height:100%;width:100%;-webkit-overflow-scrolling:touch;scrollbar-width:none}.scrollable-column::-webkit-scrollbar{display:none}.scrollable-column>*{flex-shrink:0}\n"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: UIComponentComponent, selector: "edm-sdui-component", inputs: ["uiComponent", "translateLabel"] }, { kind: "directive", type: UIViewDirective, selector: "[edmSduiView]", inputs: ["edmSduiView", "disableClick"] }] }); }
3028
+ }
3029
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ScrollableColumnComponent, decorators: [{
3030
+ type: Component,
3031
+ args: [{ selector: 'edm-sdui-scrollable-column', standalone: false, template: "<div\n #scrollableColumnElement\n [edmSduiView]=\"uiComponent.element\"\n class=\"scrollable-column\"\n *ngIf=\"uiComponent\"\n>\n <edm-sdui-component\n *ngFor=\"let component of uiComponent.components\"\n [uiComponent]=\"component\"\n >\n </edm-sdui-component>\n</div>\n", styles: [":host{display:contents}.scrollable-column{display:flex;flex-direction:column;overflow-y:auto;overflow-x:hidden;height:100%;width:100%;-webkit-overflow-scrolling:touch;scrollbar-width:none}.scrollable-column::-webkit-scrollbar{display:none}.scrollable-column>*{flex-shrink:0}\n"] }]
3032
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
3033
+ type: Inject,
3034
+ args: ['uiComponent']
3035
+ }] }, { type: i0.Renderer2 }], propDecorators: { scrollableColumnElementRef: [{
3036
+ type: ViewChild,
3037
+ args: ['scrollableColumnElement']
3038
+ }] } });
3039
+
3040
+ var scrollableColumn_component = /*#__PURE__*/Object.freeze({
3041
+ __proto__: null,
3042
+ ScrollableColumnComponent: ScrollableColumnComponent
3043
+ });
3044
+
3045
+ class ProfileButtonComponent {
3046
+ constructor(uiComponent, renderer, fontSizeMappingService) {
3047
+ this.uiComponent = uiComponent;
3048
+ this.renderer = renderer;
3049
+ this.fontSizeMappingService = fontSizeMappingService;
3050
+ }
3051
+ ngOnInit() {
3052
+ }
3053
+ ngAfterViewInit() {
3054
+ if (this.uiComponent.element) {
3055
+ this.applyElement(this.uiComponent.element);
3056
+ }
3057
+ }
3058
+ applyElement(element) {
3059
+ if (element.textColor) {
3060
+ const color = colorMapping[element.textColor];
3061
+ this.renderer.setStyle(this.profileButtonElementRef.nativeElement, 'color', color);
3062
+ }
3063
+ if (element.textStyle) {
3064
+ const textStyleMappingFontSize = this.fontSizeMappingService.getMapping();
3065
+ const fontSize = textStyleMappingFontSize[element.textStyle];
3066
+ this.renderer.setStyle(this.profileButtonElementRef.nativeElement, 'font-size', fontSize);
3067
+ }
3068
+ this.renderer.setStyle(this.profileButtonLabelElementRef.nativeElement, 'font-size', this.fontSizeMappingService.getMapping()[UITextStyle.CAPTION_2]);
3069
+ this.renderer.setStyle(this.profileButtonLabelElementRef.nativeElement, 'color', colorMapping[UIColor.MAIN1]);
3070
+ }
3071
+ getAssetPath(asset) {
3072
+ return assetMapping[asset];
3073
+ }
3074
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ProfileButtonComponent, deps: [{ token: 'uiComponent' }, { token: i0.Renderer2 }, { token: FontSizeMappingService }], target: i0.ɵɵFactoryTarget.Component }); }
3075
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ProfileButtonComponent, selector: "edm-sdui-profile-button", viewQueries: [{ propertyName: "profileButtonElementRef", first: true, predicate: ["profileButtonElement"], descendants: true }, { propertyName: "profileButtonLabelElementRef", first: true, predicate: ["profileButtonLabelElement"], descendants: true }, { propertyName: "profileButtonImageElementRef", first: true, predicate: ["profileButtonImageElement"], descendants: true }], ngImport: i0, template: "<button #profileButtonElement [edmSduiView]=\"uiComponent.element\" class=\"profile-button\" *ngIf=\"uiComponent\">\n <img #profileButtonImageElement *ngIf=\"uiComponent.element.asset\" [src]=\"getAssetPath(uiComponent.element.asset)\" alt=\"Profile\" class=\"profile-image\">\n <span #profileButtonLabelElement class=\"profile-label\">{{ uiComponent.element.label }}</span>\n</button>\n", styles: [":host{display:contents}.profile-button{display:flex;padding:16px 16px 0;border-radius:20px;background-color:var(--bt-profile);border:none;cursor:pointer;flex-direction:column;height:108px;width:108px;align-items:start;justify-content:start;gap:24px;margin-bottom:8px}.profile-button:hover{background-color:#0000000d;cursor:pointer}.profile-button .profile-image{width:24px;height:24px}.profile-button .profile-label{white-space:normal;word-break:break-word;overflow-wrap:break-word;max-width:100%;display:block;text-align:left}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: UIViewDirective, selector: "[edmSduiView]", inputs: ["edmSduiView", "disableClick"] }] }); }
3076
+ }
3077
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ProfileButtonComponent, decorators: [{
3078
+ type: Component,
3079
+ args: [{ selector: 'edm-sdui-profile-button', standalone: false, template: "<button #profileButtonElement [edmSduiView]=\"uiComponent.element\" class=\"profile-button\" *ngIf=\"uiComponent\">\n <img #profileButtonImageElement *ngIf=\"uiComponent.element.asset\" [src]=\"getAssetPath(uiComponent.element.asset)\" alt=\"Profile\" class=\"profile-image\">\n <span #profileButtonLabelElement class=\"profile-label\">{{ uiComponent.element.label }}</span>\n</button>\n", styles: [":host{display:contents}.profile-button{display:flex;padding:16px 16px 0;border-radius:20px;background-color:var(--bt-profile);border:none;cursor:pointer;flex-direction:column;height:108px;width:108px;align-items:start;justify-content:start;gap:24px;margin-bottom:8px}.profile-button:hover{background-color:#0000000d;cursor:pointer}.profile-button .profile-image{width:24px;height:24px}.profile-button .profile-label{white-space:normal;word-break:break-word;overflow-wrap:break-word;max-width:100%;display:block;text-align:left}\n"] }]
3080
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
3081
+ type: Inject,
3082
+ args: ['uiComponent']
3083
+ }] }, { type: i0.Renderer2 }, { type: FontSizeMappingService }], propDecorators: { profileButtonElementRef: [{
3084
+ type: ViewChild,
3085
+ args: ['profileButtonElement']
3086
+ }], profileButtonLabelElementRef: [{
3087
+ type: ViewChild,
3088
+ args: ['profileButtonLabelElement']
3089
+ }], profileButtonImageElementRef: [{
3090
+ type: ViewChild,
3091
+ args: ['profileButtonImageElement']
3092
+ }] } });
3093
+
3094
+ var profileButton_component = /*#__PURE__*/Object.freeze({
3095
+ __proto__: null,
3096
+ ProfileButtonComponent: ProfileButtonComponent
3097
+ });
3098
+
3099
+ class ProgressBarComponent {
3100
+ constructor(uiComponent, renderer) {
3101
+ this.uiComponent = uiComponent;
3102
+ this.renderer = renderer;
3103
+ }
3104
+ ngOnInit() {
3105
+ }
3106
+ ngAfterViewInit() {
3107
+ if (this.uiComponent.element) {
3108
+ this.applyElement(this.uiComponent.element);
3109
+ }
3110
+ }
3111
+ applyElement(element) {
3112
+ // Set progress value if available
3113
+ if (element.progress) {
3114
+ const progressValue = Math.min(Math.max(element.progress, 0), 1) * 100;
3115
+ this.renderer.setStyle(this.progressFillElementRef.nativeElement, 'width', `${progressValue}%`);
3116
+ }
3117
+ if (element.progressColor) {
3118
+ const color = colorMapping[element.progressColor];
3119
+ this.renderer.setStyle(this.progressFillElementRef.nativeElement, 'background-color', color);
3120
+ }
3121
+ }
3122
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ProgressBarComponent, deps: [{ token: 'uiComponent' }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
3123
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ProgressBarComponent, selector: "edm-sdui-progress-bar", viewQueries: [{ propertyName: "progressFillElementRef", first: true, predicate: ["progressFillElement"], descendants: true }], ngImport: i0, template: "<div [edmSduiView]=\"uiComponent.element\" class=\"progress-bar-container\" *ngIf=\"uiComponent\">\n <div #progressFillElement class=\"progress-bar-fill\"></div>\n</div>\n", styles: [":host{display:contents}.progress-bar-container{position:relative;width:100%;height:8px;background-color:#e0e0e0;border-radius:4px;overflow:hidden;margin:8px 0}.progress-bar-container .progress-bar-fill{height:100%;width:0;background-color:#2196f3;transition:width .3s ease}.progress-bar-container .progress-bar-label{position:absolute;top:100%;left:0;width:100%;text-align:center;font-size:12px;margin-top:4px}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: UIViewDirective, selector: "[edmSduiView]", inputs: ["edmSduiView", "disableClick"] }] }); }
3124
+ }
3125
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ProgressBarComponent, decorators: [{
3126
+ type: Component,
3127
+ args: [{ selector: 'edm-sdui-progress-bar', standalone: false, template: "<div [edmSduiView]=\"uiComponent.element\" class=\"progress-bar-container\" *ngIf=\"uiComponent\">\n <div #progressFillElement class=\"progress-bar-fill\"></div>\n</div>\n", styles: [":host{display:contents}.progress-bar-container{position:relative;width:100%;height:8px;background-color:#e0e0e0;border-radius:4px;overflow:hidden;margin:8px 0}.progress-bar-container .progress-bar-fill{height:100%;width:0;background-color:#2196f3;transition:width .3s ease}.progress-bar-container .progress-bar-label{position:absolute;top:100%;left:0;width:100%;text-align:center;font-size:12px;margin-top:4px}\n"] }]
3128
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
3129
+ type: Inject,
3130
+ args: ['uiComponent']
3131
+ }] }, { type: i0.Renderer2 }], propDecorators: { progressFillElementRef: [{
3132
+ type: ViewChild,
3133
+ args: ['progressFillElement']
3134
+ }] } });
3135
+
3136
+ var progressBar_component = /*#__PURE__*/Object.freeze({
3137
+ __proto__: null,
3138
+ ProgressBarComponent: ProgressBarComponent
3139
+ });
3140
+
2658
3141
  class SduiModule {
2659
3142
  static forRoot(config) {
2660
3143
  return {
@@ -2698,6 +3181,10 @@ class SduiModule {
2698
3181
  MediaTypeComponent,
2699
3182
  PickerComponent,
2700
3183
  PickerItemComponent,
3184
+ ScrollableRowComponent,
3185
+ ScrollableColumnComponent,
3186
+ ProfileButtonComponent,
3187
+ ProgressBarComponent,
2701
3188
  // diretivas
2702
3189
  UIViewDirective,
2703
3190
  // navegação
@@ -2732,6 +3219,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
2732
3219
  MediaTypeComponent,
2733
3220
  PickerComponent,
2734
3221
  PickerItemComponent,
3222
+ ScrollableRowComponent,
3223
+ ScrollableColumnComponent,
3224
+ ProfileButtonComponent,
3225
+ ProgressBarComponent,
2735
3226
  // diretivas
2736
3227
  UIViewDirective,
2737
3228
  // navegação