@edm-sdui/sdui 1.0.12 → 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 (77) 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/components/uilayout/centered-content-layout/centered-content-layout.component.mjs +6 -3
  8. package/esm2022/lib/core/services/translation.service.mjs +3 -3
  9. package/esm2022/lib/core/services/ui-action.service.mjs +30 -1
  10. package/esm2022/lib/core/services/uiscreen.service.mjs +9 -1
  11. package/esm2022/lib/core/uicomposition/enums/uicomponent-type.mjs +7 -1
  12. package/esm2022/lib/core/uicomposition/mapping/component-mapping.mjs +7 -1
  13. package/esm2022/lib/core/uicomposition/models/uielement.mjs +1 -1
  14. package/esm2022/lib/core/uicomposition/models/uiview.mjs +1 -1
  15. package/esm2022/lib/core/uitheme/enums/uiaction-type.mjs +2 -1
  16. package/esm2022/lib/core/uitheme/enums/uiasset.mjs +14 -1
  17. package/esm2022/lib/core/uitheme/enums/uidimension.mjs +47 -0
  18. package/esm2022/lib/core/uitheme/enums/uijustify.mjs +9 -0
  19. package/esm2022/lib/core/uitheme/enums/uisize.mjs +2 -1
  20. package/esm2022/lib/core/uitheme/enums/uispacing-level.mjs +3 -1
  21. package/esm2022/lib/core/uitheme/mapping/asset-mapping.mjs +14 -1
  22. package/esm2022/lib/core/uitheme/mapping/dimension-mapping.mjs +49 -0
  23. package/esm2022/lib/core/uitheme/mapping/justify-mapping.mjs +9 -0
  24. package/esm2022/lib/core/uitheme/mapping/shadow-mapping.mjs +9 -0
  25. package/esm2022/lib/core/uitheme/mapping/size-mapping.mjs +5 -3
  26. package/esm2022/lib/core/uitheme/mapping/space-mapping.mjs +3 -1
  27. package/esm2022/lib/directives/uiview.directive.mjs +69 -6
  28. package/esm2022/lib/sdui.module.mjs +13 -1
  29. package/fesm2022/edm-sdui-sdui.mjs +505 -11
  30. package/fesm2022/edm-sdui-sdui.mjs.map +1 -1
  31. package/lib/components/uicomponent/image/image.component.d.ts.map +1 -1
  32. package/lib/components/uicomponent/label/label.component.d.ts.map +1 -1
  33. package/lib/components/uicomponent/profile-button/profile-button.component.d.ts +21 -0
  34. package/lib/components/uicomponent/profile-button/profile-button.component.d.ts.map +1 -0
  35. package/lib/components/uicomponent/progress-bar/progress-bar.component.d.ts +15 -0
  36. package/lib/components/uicomponent/progress-bar/progress-bar.component.d.ts.map +1 -0
  37. package/lib/components/uicomponent/scrollable-column/scrollable-column.component.d.ts +15 -0
  38. package/lib/components/uicomponent/scrollable-column/scrollable-column.component.d.ts.map +1 -0
  39. package/lib/components/uicomponent/scrollable-row/scrollable-row.component.d.ts +16 -0
  40. package/lib/components/uicomponent/scrollable-row/scrollable-row.component.d.ts.map +1 -0
  41. package/lib/components/uilayout/centered-content-layout/centered-content-layout.component.d.ts +3 -2
  42. package/lib/components/uilayout/centered-content-layout/centered-content-layout.component.d.ts.map +1 -1
  43. package/lib/core/services/ui-action.service.d.ts.map +1 -1
  44. package/lib/core/services/uiscreen.service.d.ts.map +1 -1
  45. package/lib/core/uicomposition/enums/uicomponent-type.d.ts +5 -1
  46. package/lib/core/uicomposition/enums/uicomponent-type.d.ts.map +1 -1
  47. package/lib/core/uicomposition/mapping/component-mapping.d.ts.map +1 -1
  48. package/lib/core/uicomposition/models/uielement.d.ts +3 -0
  49. package/lib/core/uicomposition/models/uielement.d.ts.map +1 -1
  50. package/lib/core/uicomposition/models/uiview.d.ts +8 -0
  51. package/lib/core/uicomposition/models/uiview.d.ts.map +1 -1
  52. package/lib/core/uitheme/enums/uiaction-type.d.ts +1 -0
  53. package/lib/core/uitheme/enums/uiaction-type.d.ts.map +1 -1
  54. package/lib/core/uitheme/enums/uiasset.d.ts +14 -1
  55. package/lib/core/uitheme/enums/uiasset.d.ts.map +1 -1
  56. package/lib/core/uitheme/enums/uidimension.d.ts +46 -0
  57. package/lib/core/uitheme/enums/uidimension.d.ts.map +1 -0
  58. package/lib/core/uitheme/enums/uijustify.d.ts +8 -0
  59. package/lib/core/uitheme/enums/uijustify.d.ts.map +1 -0
  60. package/lib/core/uitheme/enums/uisize.d.ts +1 -0
  61. package/lib/core/uitheme/enums/uisize.d.ts.map +1 -1
  62. package/lib/core/uitheme/enums/uispacing-level.d.ts +3 -1
  63. package/lib/core/uitheme/enums/uispacing-level.d.ts.map +1 -1
  64. package/lib/core/uitheme/mapping/asset-mapping.d.ts.map +1 -1
  65. package/lib/core/uitheme/mapping/dimension-mapping.d.ts +3 -0
  66. package/lib/core/uitheme/mapping/dimension-mapping.d.ts.map +1 -0
  67. package/lib/core/uitheme/mapping/justify-mapping.d.ts +3 -0
  68. package/lib/core/uitheme/mapping/justify-mapping.d.ts.map +1 -0
  69. package/lib/core/uitheme/mapping/shadow-mapping.d.ts +5 -0
  70. package/lib/core/uitheme/mapping/shadow-mapping.d.ts.map +1 -0
  71. package/lib/core/uitheme/mapping/size-mapping.d.ts.map +1 -1
  72. package/lib/core/uitheme/mapping/space-mapping.d.ts.map +1 -1
  73. package/lib/directives/uiview.directive.d.ts +5 -0
  74. package/lib/directives/uiview.directive.d.ts.map +1 -1
  75. package/lib/sdui.module.d.ts +10 -6
  76. package/lib/sdui.module.d.ts.map +1 -1
  77. 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 {
@@ -407,17 +427,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
407
427
  }] } });
408
428
 
409
429
  class CenteredContentLayoutComponent {
430
+ ngOnInit() {
431
+ console.log(this.uiLayout);
432
+ }
410
433
  ngOnChanges(changes) {
411
434
  if (changes['uiLayout']) {
412
435
  console.debug('[CenteredContentLayoutComponent] Novo layout recebido:', changes['uiLayout'].currentValue);
413
436
  }
414
437
  }
415
438
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CenteredContentLayoutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
416
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CenteredContentLayoutComponent, selector: "edm-sdui-centered-content-layout", inputs: { uiLayout: "uiLayout" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"centered-content-layout\" *ngIf=\"!!uiLayout\">\n <!-- <pre>{{ uiLayout | json }}</pre> -->\n\n <edm-sdui-navigation [uiNavigation]=\"uiLayout.nav\"></edm-sdui-navigation>\n\n <div class=\"header\" *ngIf=\"!!uiLayout?.header\">\n <edm-sdui-component [uiComponent]=\"uiLayout.header\"></edm-sdui-component>\n </div>\n\n <div class=\"centered\">\n <edm-sdui-component\n *ngIf=\"!!uiLayout?.centered\"\n [uiComponent]=\"uiLayout.centered\"\n ></edm-sdui-component>\n </div>\n\n <div class=\"footer\" *ngIf=\"!!uiLayout?.footer\">\n <edm-sdui-component [uiComponent]=\"uiLayout.footer\"></edm-sdui-component>\n </div>\n</div>\n", styles: [":host{display:contents}.centered-content-layout{display:flex;flex-direction:column;width:100vw;min-height:100vh;position:relative}.centered-content-layout .header{position:fixed;top:0;left:0;width:100%;z-index:100}.centered-content-layout .centered{flex:1;display:flex;align-items:center;justify-content:center}.centered-content-layout .footer{position:fixed;bottom:0;left:0;width:100%;z-index:100}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: UINavigationComponent, selector: "edm-sdui-navigation", inputs: ["uiNavigation"] }, { kind: "component", type: UIComponentComponent, selector: "edm-sdui-component", inputs: ["uiComponent", "translateLabel"] }] }); }
439
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CenteredContentLayoutComponent, selector: "edm-sdui-centered-content-layout", inputs: { uiLayout: "uiLayout" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"centered-content-layout\" *ngIf=\"!!uiLayout\">\n <!-- <pre>{{ uiLayout | json }}</pre> -->\n\n <edm-sdui-navigation [uiNavigation]=\"uiLayout.nav\"></edm-sdui-navigation>\n\n <div class=\"header\" *ngIf=\"uiLayout?.header\">\n <edm-sdui-component [uiComponent]=\"uiLayout.header\"></edm-sdui-component>\n </div>\n\n <div class=\"centered\">\n <edm-sdui-component\n *ngIf=\"!!uiLayout?.centered\"\n [uiComponent]=\"uiLayout.centered\"\n ></edm-sdui-component>\n </div>\n\n <div class=\"footer\" *ngIf=\"!!uiLayout?.footer\">\n <edm-sdui-component [uiComponent]=\"uiLayout.footer\"></edm-sdui-component>\n </div>\n</div>\n", styles: [":host{display:contents}.centered-content-layout{display:flex;flex-direction:column;width:100vw;min-height:100vh;position:relative}.centered-content-layout .header{width:100%;z-index:100}.centered-content-layout .centered{flex:1;display:flex;align-items:center;justify-content:center}.centered-content-layout .footer{position:fixed;bottom:0;left:0;width:100%;z-index:100}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: UINavigationComponent, selector: "edm-sdui-navigation", inputs: ["uiNavigation"] }, { kind: "component", type: UIComponentComponent, selector: "edm-sdui-component", inputs: ["uiComponent", "translateLabel"] }] }); }
417
440
  }
418
441
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CenteredContentLayoutComponent, decorators: [{
419
442
  type: Component,
420
- args: [{ selector: 'edm-sdui-centered-content-layout', standalone: false, template: "<div class=\"centered-content-layout\" *ngIf=\"!!uiLayout\">\n <!-- <pre>{{ uiLayout | json }}</pre> -->\n\n <edm-sdui-navigation [uiNavigation]=\"uiLayout.nav\"></edm-sdui-navigation>\n\n <div class=\"header\" *ngIf=\"!!uiLayout?.header\">\n <edm-sdui-component [uiComponent]=\"uiLayout.header\"></edm-sdui-component>\n </div>\n\n <div class=\"centered\">\n <edm-sdui-component\n *ngIf=\"!!uiLayout?.centered\"\n [uiComponent]=\"uiLayout.centered\"\n ></edm-sdui-component>\n </div>\n\n <div class=\"footer\" *ngIf=\"!!uiLayout?.footer\">\n <edm-sdui-component [uiComponent]=\"uiLayout.footer\"></edm-sdui-component>\n </div>\n</div>\n", styles: [":host{display:contents}.centered-content-layout{display:flex;flex-direction:column;width:100vw;min-height:100vh;position:relative}.centered-content-layout .header{position:fixed;top:0;left:0;width:100%;z-index:100}.centered-content-layout .centered{flex:1;display:flex;align-items:center;justify-content:center}.centered-content-layout .footer{position:fixed;bottom:0;left:0;width:100%;z-index:100}\n"] }]
443
+ args: [{ selector: 'edm-sdui-centered-content-layout', standalone: false, template: "<div class=\"centered-content-layout\" *ngIf=\"!!uiLayout\">\n <!-- <pre>{{ uiLayout | json }}</pre> -->\n\n <edm-sdui-navigation [uiNavigation]=\"uiLayout.nav\"></edm-sdui-navigation>\n\n <div class=\"header\" *ngIf=\"uiLayout?.header\">\n <edm-sdui-component [uiComponent]=\"uiLayout.header\"></edm-sdui-component>\n </div>\n\n <div class=\"centered\">\n <edm-sdui-component\n *ngIf=\"!!uiLayout?.centered\"\n [uiComponent]=\"uiLayout.centered\"\n ></edm-sdui-component>\n </div>\n\n <div class=\"footer\" *ngIf=\"!!uiLayout?.footer\">\n <edm-sdui-component [uiComponent]=\"uiLayout.footer\"></edm-sdui-component>\n </div>\n</div>\n", styles: [":host{display:contents}.centered-content-layout{display:flex;flex-direction:column;width:100vw;min-height:100vh;position:relative}.centered-content-layout .header{width:100%;z-index:100}.centered-content-layout .centered{flex:1;display:flex;align-items:center;justify-content:center}.centered-content-layout .footer{position:fixed;bottom:0;left:0;width:100%;z-index:100}\n"] }]
421
444
  }], propDecorators: { uiLayout: [{
422
445
  type: Input
423
446
  }] } });
@@ -428,6 +451,8 @@ var UISpacingLevel;
428
451
  UISpacingLevel["S2"] = "s2";
429
452
  UISpacingLevel["S3"] = "s3";
430
453
  UISpacingLevel["S4"] = "s4";
454
+ UISpacingLevel["S5"] = "s5";
455
+ UISpacingLevel["S6"] = "s6";
431
456
  })(UISpacingLevel || (UISpacingLevel = {}));
432
457
 
433
458
  const spaceMapping = {
@@ -435,6 +460,8 @@ const spaceMapping = {
435
460
  [UISpacingLevel.S2]: '8px',
436
461
  [UISpacingLevel.S3]: '16px',
437
462
  [UISpacingLevel.S4]: '24px',
463
+ [UISpacingLevel.S5]: '32px',
464
+ [UISpacingLevel.S6]: '40px',
438
465
  };
439
466
 
440
467
  var UIColor;
@@ -753,12 +780,142 @@ const alignmentMapping = {
753
780
  [UIAlignmentType.START]: 'start',
754
781
  };
755
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
+
756
912
  var UIActionType;
757
913
  (function (UIActionType) {
758
914
  // navegação
759
915
  UIActionType["INTERNAL_URL"] = "INTERNAL_URL";
760
916
  UIActionType["RELOAD_INTERNAL_URL"] = "RELOAD_INTERNAL_URL";
761
917
  UIActionType["DISMISS_TO_SCENE"] = "DISMISS_TO_SCENE";
918
+ UIActionType["EXTERNAL_URL"] = "EXTERNAL_URL";
762
919
  // paywall
763
920
  UIActionType["PAYWALL"] = "PAYWALL";
764
921
  UIActionType["REGISTER"] = "REGISTER";
@@ -803,6 +960,11 @@ class UIActionService {
803
960
  }
804
961
  }
805
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
+ }
806
968
  // Outros tipos de ação podem ser adicionados aqui
807
969
  }
808
970
  }
@@ -835,6 +997,30 @@ class UIActionService {
835
997
  this.router.navigate(['comunidade', 'postagem', postId], { queryParams: { from: 'sdui' } });
836
998
  return true;
837
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
+ }
838
1024
  return false; // nenhum dos casos especiais foi tratado
839
1025
  }
840
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 }); }
@@ -881,23 +1067,38 @@ class UIViewDirective {
881
1067
  if (uiView.spacing) {
882
1068
  this.applySpacing(uiView.spacing);
883
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
+ }
884
1085
  }
885
1086
  applyPadding(uiPadding) {
886
1087
  if (uiPadding.top) {
887
1088
  const padValue = padMapping[uiPadding.top];
888
- this.renderer.setStyle(this.elementRef.nativeElement, 'margin-top', padValue);
1089
+ this.renderer.setStyle(this.elementRef.nativeElement, 'padding-top', padValue);
889
1090
  }
890
1091
  if (uiPadding.left) {
891
1092
  const padValue = padMapping[uiPadding.left];
892
- this.renderer.setStyle(this.elementRef.nativeElement, 'margin-left', padValue);
1093
+ this.renderer.setStyle(this.elementRef.nativeElement, 'padding-left', padValue);
893
1094
  }
894
1095
  if (uiPadding.right) {
895
1096
  const padValue = padMapping[uiPadding.right];
896
- this.renderer.setStyle(this.elementRef.nativeElement, 'margin-right', padValue);
1097
+ this.renderer.setStyle(this.elementRef.nativeElement, 'padding-right', padValue);
897
1098
  }
898
1099
  if (uiPadding.bottom) {
899
1100
  const padValue = padMapping[uiPadding.bottom];
900
- this.renderer.setStyle(this.elementRef.nativeElement, 'margin-bottom', padValue);
1101
+ this.renderer.setStyle(this.elementRef.nativeElement, 'padding-bottom', padValue);
901
1102
  }
902
1103
  }
903
1104
  applyBackground(uiBackground) {
@@ -919,7 +1120,21 @@ class UIViewDirective {
919
1120
  this.renderer.setStyle(this.elementRef.nativeElement, 'align-items', alignment);
920
1121
  }
921
1122
  }
922
- 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
+ }
923
1138
  applyRadius(uiRadius) {
924
1139
  if (uiRadius.topLeft) {
925
1140
  const radius = radiusMapping[uiRadius.topLeft];
@@ -944,6 +1159,37 @@ class UIViewDirective {
944
1159
  this.renderer.setStyle(this.elementRef.nativeElement, 'gap', spacingValue);
945
1160
  }
946
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
+ }
947
1193
  onClick(event) {
948
1194
  if (this.disableClick)
949
1195
  return;
@@ -1165,6 +1411,23 @@ class LabelComponent {
1165
1411
  const opacity = element.opacity;
1166
1412
  this.renderer.setStyle(this.spanElementRef.nativeElement, 'opacity', opacity);
1167
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
+ }
1168
1431
  }
1169
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 }); }
1170
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"] }] }); }
@@ -1607,6 +1870,19 @@ var UIAsset;
1607
1870
  UIAsset["WAY_TASK_ON"] = "way_task_on";
1608
1871
  UIAsset["WAY_TWO_OFF"] = "way_two_off";
1609
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";
1610
1886
  })(UIAsset || (UIAsset = {}));
1611
1887
 
1612
1888
  const assetMapping = {
@@ -1961,6 +2237,19 @@ const assetMapping = {
1961
2237
  [UIAsset.IC_LIKE_SEARCH_LIST]: 'assets/images/ic-like-search-list.svg',
1962
2238
  [UIAsset.IC_SHARE_SEARCH_LIST]: 'assets/images/ic-share-search-list.svg',
1963
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',
1964
2253
  };
1965
2254
 
1966
2255
  class ButtonComponent {
@@ -2013,6 +2302,7 @@ var button_component = /*#__PURE__*/Object.freeze({
2013
2302
  var UISize;
2014
2303
  (function (UISize) {
2015
2304
  UISize["THUMB_1"] = "thumb_1";
2305
+ UISize["THUMB_2"] = "thumb_2";
2016
2306
  UISize["ASSET_1"] = "asset_1";
2017
2307
  UISize["ASSET_2"] = "asset_2";
2018
2308
  UISize["ASSET_3"] = "asset_3";
@@ -2024,10 +2314,11 @@ var UISize;
2024
2314
  })(UISize || (UISize = {}));
2025
2315
 
2026
2316
  const sizeMappingHeight = {
2317
+ [UISize.THUMB_1]: '56px',
2318
+ [UISize.THUMB_2]: '40px',
2027
2319
  [UISize.ASSET_1]: '26px',
2028
2320
  [UISize.ASSET_2]: '16px',
2029
2321
  [UISize.ASSET_3]: '80px',
2030
- [UISize.THUMB_1]: '56px',
2031
2322
  [UISize.ASSET_4]: '60px',
2032
2323
  [UISize.ASSET_5]: '18px',
2033
2324
  [UISize.ASSET_6]: '20px',
@@ -2035,10 +2326,11 @@ const sizeMappingHeight = {
2035
2326
  [UISize.ASSET_8]: '24px',
2036
2327
  };
2037
2328
  const sizeMappingWidth = {
2329
+ [UISize.THUMB_1]: '100px',
2330
+ [UISize.THUMB_2]: '105px',
2038
2331
  [UISize.ASSET_1]: '26px',
2039
2332
  [UISize.ASSET_2]: '16px',
2040
2333
  [UISize.ASSET_3]: '80px',
2041
- [UISize.THUMB_1]: '100px',
2042
2334
  [UISize.ASSET_4]: '60px',
2043
2335
  [UISize.ASSET_5]: '18px',
2044
2336
  [UISize.ASSET_6]: '20px',
@@ -2070,6 +2362,9 @@ class ImageComponent {
2070
2362
  const width = sizeMappingWidth[element.size];
2071
2363
  this.renderer.setStyle(this.imgElementRef.nativeElement, 'height', height);
2072
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
+ }
2073
2368
  }
2074
2369
  }
2075
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 }); }
@@ -2448,7 +2743,7 @@ class SduiTranslationService {
2448
2743
  pt: {
2449
2744
  contentType: {
2450
2745
  video: 'Vídeo',
2451
- html: 'Texto',
2746
+ html: 'Conteúdo',
2452
2747
  sound: 'Áudio',
2453
2748
  file: 'Arquivo',
2454
2749
  quiz: 'Questionário',
@@ -2457,7 +2752,7 @@ class SduiTranslationService {
2457
2752
  en: {
2458
2753
  contentType: {
2459
2754
  video: 'Video',
2460
- html: 'Text',
2755
+ html: 'Content',
2461
2756
  sound: 'Audio',
2462
2757
  file: 'File',
2463
2758
  quiz: 'Quiz',
@@ -2652,6 +2947,197 @@ var picker_component = /*#__PURE__*/Object.freeze({
2652
2947
  PickerComponent: PickerComponent
2653
2948
  });
2654
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
+
2655
3141
  class SduiModule {
2656
3142
  static forRoot(config) {
2657
3143
  return {
@@ -2695,6 +3181,10 @@ class SduiModule {
2695
3181
  MediaTypeComponent,
2696
3182
  PickerComponent,
2697
3183
  PickerItemComponent,
3184
+ ScrollableRowComponent,
3185
+ ScrollableColumnComponent,
3186
+ ProfileButtonComponent,
3187
+ ProgressBarComponent,
2698
3188
  // diretivas
2699
3189
  UIViewDirective,
2700
3190
  // navegação
@@ -2729,6 +3219,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
2729
3219
  MediaTypeComponent,
2730
3220
  PickerComponent,
2731
3221
  PickerItemComponent,
3222
+ ScrollableRowComponent,
3223
+ ScrollableColumnComponent,
3224
+ ProfileButtonComponent,
3225
+ ProgressBarComponent,
2732
3226
  // diretivas
2733
3227
  UIViewDirective,
2734
3228
  // navegação