@edm-sdui/sdui 1.0.1 → 1.0.2

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 (172) hide show
  1. package/fesm2022/edm-sdui-sdui.mjs +2324 -0
  2. package/fesm2022/edm-sdui-sdui.mjs.map +1 -0
  3. package/index.d.ts +5 -0
  4. package/lib/components/navigation-controls/navigation-controls.component.d.ts +11 -0
  5. package/lib/components/uicomponent/button/button.component.d.ts +16 -0
  6. package/lib/components/uicomponent/column/column.component.d.ts +10 -0
  7. package/lib/components/uicomponent/image/image.component.d.ts +14 -0
  8. package/lib/components/uicomponent/label/label.component.d.ts +14 -0
  9. package/lib/components/uicomponent/row/row.component.d.ts +10 -0
  10. package/lib/components/uicomponent/row-divisor/row-divisor.component.d.ts +10 -0
  11. package/lib/components/uicomponent/search-bar/search-bar.component.d.ts +16 -0
  12. package/lib/components/uicomponent/space/space.component.d.ts +10 -0
  13. package/lib/components/uicomponent/tag/tag.component.d.ts +16 -0
  14. package/lib/components/uicomponent/uicomponent.component.d.ts +16 -0
  15. package/lib/components/uicomponent/zstack/zstack.component.d.ts +10 -0
  16. package/lib/components/uilayout/centered-content-layout/centered-content-layout.component.d.ts +9 -0
  17. package/lib/components/uilayout/single-column-layout/single-column-layout.component.d.ts +9 -0
  18. package/lib/components/uilayout/uinavigation/uinavigation.component.d.ts +7 -0
  19. package/lib/components/uiscreen/uiscreen.component.d.ts +10 -0
  20. package/lib/core/services/ui-action.service.d.ts +10 -0
  21. package/lib/core/services/uiscreen.service.d.ts +23 -0
  22. package/lib/core/tokens/sdui-config.token.d.ts +2 -0
  23. package/lib/core/uicomposition/enums/uicomponent-type.d.ts +19 -0
  24. package/lib/core/uicomposition/enums/uiplatform-type.d.ts +4 -0
  25. package/lib/core/uicomposition/enums/uiscene.d.ts +3 -0
  26. package/lib/core/uicomposition/enums/uiscreen-identifier.d.ts +4 -0
  27. package/lib/core/uicomposition/mapping/component-mapping.d.ts +3 -0
  28. package/{src/lib/core/uicomposition/models/uicentered-content-layout.ts → lib/core/uicomposition/models/uicentered-content-layout.d.ts} +5 -6
  29. package/{src/lib/core/uicomposition/models/uicomponent.ts → lib/core/uicomposition/models/uicomponent.d.ts} +4 -5
  30. package/lib/core/uicomposition/models/uielement.d.ts +24 -0
  31. package/lib/core/uicomposition/models/uilayout.d.ts +3 -0
  32. package/{src/lib/core/uicomposition/models/uinavigation.ts → lib/core/uicomposition/models/uinavigation.d.ts} +2 -3
  33. package/{src/lib/core/uicomposition/models/uiscreen.ts → lib/core/uicomposition/models/uiscreen.d.ts} +5 -6
  34. package/{src/lib/core/uicomposition/models/uisingle-column-layout.ts → lib/core/uicomposition/models/uisingle-column-layout.d.ts} +4 -5
  35. package/{src/lib/core/uicomposition/models/uiview.ts → lib/core/uicomposition/models/uiview.d.ts} +7 -9
  36. package/lib/core/uitheme/enums/uiaction-type.d.ts +9 -0
  37. package/lib/core/uitheme/enums/uialignment-type.d.ts +5 -0
  38. package/lib/core/uitheme/enums/uiaspect-type.d.ts +4 -0
  39. package/lib/core/uitheme/enums/uiasset.d.ts +353 -0
  40. package/lib/core/uitheme/enums/uicolor.d.ts +129 -0
  41. package/lib/core/uitheme/enums/uicontent-type.d.ts +8 -0
  42. package/lib/core/uitheme/enums/uipadding-level.d.ts +10 -0
  43. package/lib/core/uitheme/enums/uipresentation-style.d.ts +5 -0
  44. package/lib/core/uitheme/enums/uiradius-level.d.ts +8 -0
  45. package/lib/core/uitheme/enums/uishadow-blur-radius.d.ts +3 -0
  46. package/lib/core/uitheme/enums/uishadow-offset.d.ts +3 -0
  47. package/lib/core/uitheme/enums/uisize.d.ts +11 -0
  48. package/lib/core/uitheme/enums/uispacing-level.d.ts +6 -0
  49. package/lib/core/uitheme/enums/uitext-style.d.ts +13 -0
  50. package/lib/core/uitheme/mapping/alignment-mapping.d.ts +2 -0
  51. package/lib/core/uitheme/mapping/asset-mapping.d.ts +2 -0
  52. package/lib/core/uitheme/mapping/color-mapping.d.ts +2 -0
  53. package/lib/core/uitheme/mapping/pad-mapping.d.ts +2 -0
  54. package/lib/core/uitheme/mapping/radius-mapping.d.ts +2 -0
  55. package/lib/core/uitheme/mapping/size-mapping.d.ts +3 -0
  56. package/lib/core/uitheme/mapping/space-mapping.d.ts +2 -0
  57. package/lib/core/uitheme/mapping/text-style-mapping.d.ts +2 -0
  58. package/lib/core/uitheme/models/uiaction.d.ts +9 -0
  59. package/{src/lib/core/uitheme/models/uialignment.ts → lib/core/uitheme/models/uialignment.d.ts} +1 -2
  60. package/{src/lib/core/uitheme/models/uibackground.ts → lib/core/uitheme/models/uibackground.d.ts} +1 -2
  61. package/lib/core/uitheme/models/uipadding.d.ts +7 -0
  62. package/lib/core/uitheme/models/uiradius.d.ts +7 -0
  63. package/{src/lib/core/uitheme/models/uishadow.ts → lib/core/uitheme/models/uishadow.d.ts} +5 -6
  64. package/{src/lib/core/uitheme/models/uispacing.ts → lib/core/uitheme/models/uispacing.d.ts} +1 -2
  65. package/lib/core/utils/url-parser.util.d.ts +2 -0
  66. package/lib/core/view-models/uiscreen.viewmodel.d.ts +39 -0
  67. package/lib/directives/uiview.directive.d.ts +28 -0
  68. package/lib/sdui-routing.module.d.ts +9 -0
  69. package/lib/sdui.component.d.ts +16 -0
  70. package/lib/sdui.module.d.ts +34 -0
  71. package/package.json +16 -14
  72. package/public-api.d.ts +4 -0
  73. package/ng-package.json +0 -9
  74. package/src/index.ts +0 -1
  75. package/src/lib/components/navigation-controls/navigation-controls.component.html +0 -9
  76. package/src/lib/components/navigation-controls/navigation-controls.component.scss +0 -35
  77. package/src/lib/components/navigation-controls/navigation-controls.component.ts +0 -27
  78. package/src/lib/components/uicomponent/button/button.component.html +0 -4
  79. package/src/lib/components/uicomponent/button/button.component.scss +0 -11
  80. package/src/lib/components/uicomponent/button/button.component.ts +0 -64
  81. package/src/lib/components/uicomponent/column/column.component.html +0 -7
  82. package/src/lib/components/uicomponent/column/column.component.scss +0 -9
  83. package/src/lib/components/uicomponent/column/column.component.ts +0 -16
  84. package/src/lib/components/uicomponent/image/image.component.html +0 -1
  85. package/src/lib/components/uicomponent/image/image.component.scss +0 -3
  86. package/src/lib/components/uicomponent/image/image.component.ts +0 -69
  87. package/src/lib/components/uicomponent/label/label.component.html +0 -3
  88. package/src/lib/components/uicomponent/label/label.component.scss +0 -3
  89. package/src/lib/components/uicomponent/label/label.component.ts +0 -66
  90. package/src/lib/components/uicomponent/row/row.component.html +0 -7
  91. package/src/lib/components/uicomponent/row/row.component.scss +0 -8
  92. package/src/lib/components/uicomponent/row/row.component.ts +0 -16
  93. package/src/lib/components/uicomponent/row-divisor/row-divisor.component.html +0 -5
  94. package/src/lib/components/uicomponent/row-divisor/row-divisor.component.scss +0 -8
  95. package/src/lib/components/uicomponent/row-divisor/row-divisor.component.ts +0 -16
  96. package/src/lib/components/uicomponent/search-bar/search-bar.component.html +0 -7
  97. package/src/lib/components/uicomponent/search-bar/search-bar.component.scss +0 -7
  98. package/src/lib/components/uicomponent/search-bar/search-bar.component.ts +0 -129
  99. package/src/lib/components/uicomponent/space/space.component.html +0 -1
  100. package/src/lib/components/uicomponent/space/space.component.scss +0 -10
  101. package/src/lib/components/uicomponent/space/space.component.ts +0 -16
  102. package/src/lib/components/uicomponent/tag/tag.component.html +0 -3
  103. package/src/lib/components/uicomponent/tag/tag.component.scss +0 -7
  104. package/src/lib/components/uicomponent/tag/tag.component.ts +0 -54
  105. package/src/lib/components/uicomponent/uicomponent.component.html +0 -5
  106. package/src/lib/components/uicomponent/uicomponent.component.scss +0 -3
  107. package/src/lib/components/uicomponent/uicomponent.component.ts +0 -53
  108. package/src/lib/components/uicomponent/zstack/zstack.component.html +0 -6
  109. package/src/lib/components/uicomponent/zstack/zstack.component.scss +0 -12
  110. package/src/lib/components/uicomponent/zstack/zstack.component.ts +0 -16
  111. package/src/lib/components/uilayout/centered-content-layout/centered-content-layout.component.html +0 -20
  112. package/src/lib/components/uilayout/centered-content-layout/centered-content-layout.component.scss +0 -36
  113. package/src/lib/components/uilayout/centered-content-layout/centered-content-layout.component.ts +0 -21
  114. package/src/lib/components/uilayout/single-column-layout/single-column-layout.component.html +0 -22
  115. package/src/lib/components/uilayout/single-column-layout/single-column-layout.component.scss +0 -37
  116. package/src/lib/components/uilayout/single-column-layout/single-column-layout.component.ts +0 -27
  117. package/src/lib/components/uilayout/uinavigation/uinavigation.component.html +0 -8
  118. package/src/lib/components/uilayout/uinavigation/uinavigation.component.scss +0 -4
  119. package/src/lib/components/uilayout/uinavigation/uinavigation.component.ts +0 -12
  120. package/src/lib/components/uiscreen/uiscreen.component.html +0 -29
  121. package/src/lib/components/uiscreen/uiscreen.component.scss +0 -12
  122. package/src/lib/components/uiscreen/uiscreen.component.ts +0 -15
  123. package/src/lib/core/interfaces/sdui-config.interface.ts +0 -3
  124. package/src/lib/core/services/navigation.service.ts +0 -25
  125. package/src/lib/core/services/sdui-config.service.ts +0 -19
  126. package/src/lib/core/services/ui-action.service.ts +0 -36
  127. package/src/lib/core/services/uiscreen.service.ts +0 -185
  128. package/src/lib/core/tokens/sdui-config.token.ts +0 -3
  129. package/src/lib/core/uicomposition/enums/uicomponent-type.ts +0 -32
  130. package/src/lib/core/uicomposition/enums/uiplatform-type.ts +0 -4
  131. package/src/lib/core/uicomposition/enums/uiscene.ts +0 -3
  132. package/src/lib/core/uicomposition/enums/uiscreen-identifier.ts +0 -4
  133. package/src/lib/core/uicomposition/mapping/component-mapping.ts +0 -90
  134. package/src/lib/core/uicomposition/models/uielement.ts +0 -25
  135. package/src/lib/core/uicomposition/models/uilayout.ts +0 -4
  136. package/src/lib/core/uitheme/enums/uiaction-type.ts +0 -14
  137. package/src/lib/core/uitheme/enums/uialignment-type.ts +0 -5
  138. package/src/lib/core/uitheme/enums/uiaspect-type.ts +0 -4
  139. package/src/lib/core/uitheme/enums/uiasset.ts +0 -361
  140. package/src/lib/core/uitheme/enums/uicolor.ts +0 -129
  141. package/src/lib/core/uitheme/enums/uicontent-type.ts +0 -8
  142. package/src/lib/core/uitheme/enums/uipadding-level.ts +0 -10
  143. package/src/lib/core/uitheme/enums/uipresentation-style.ts +0 -5
  144. package/src/lib/core/uitheme/enums/uiradius-level.ts +0 -8
  145. package/src/lib/core/uitheme/enums/uishadow-blur-radius.ts +0 -3
  146. package/src/lib/core/uitheme/enums/uishadow-offset.ts +0 -3
  147. package/src/lib/core/uitheme/enums/uisize.ts +0 -12
  148. package/src/lib/core/uitheme/enums/uispacing-level.ts +0 -6
  149. package/src/lib/core/uitheme/enums/uitext-style.ts +0 -13
  150. package/src/lib/core/uitheme/mapping/alignment-mapping.ts +0 -7
  151. package/src/lib/core/uitheme/mapping/asset-mapping.ts +0 -363
  152. package/src/lib/core/uitheme/mapping/color-mapping.ts +0 -131
  153. package/src/lib/core/uitheme/mapping/pad-mapping.ts +0 -12
  154. package/src/lib/core/uitheme/mapping/radius-mapping.ts +0 -10
  155. package/src/lib/core/uitheme/mapping/size-mapping.ts +0 -25
  156. package/src/lib/core/uitheme/mapping/space-mapping.ts +0 -8
  157. package/src/lib/core/uitheme/mapping/text-style-mapping.ts +0 -15
  158. package/src/lib/core/uitheme/models/uiaction.ts +0 -10
  159. package/src/lib/core/uitheme/models/uipadding.ts +0 -8
  160. package/src/lib/core/uitheme/models/uiradius.ts +0 -8
  161. package/src/lib/core/uitheme/models/uiview.ts +0 -0
  162. package/src/lib/core/utils/url-parser.util.ts +0 -24
  163. package/src/lib/core/view-models/uiscreen.viewmodel.ts +0 -115
  164. package/src/lib/directives/uiview.directive.ts +0 -207
  165. package/src/lib/sdui-routing.module.ts +0 -22
  166. package/src/lib/sdui.component.html +0 -3
  167. package/src/lib/sdui.component.scss +0 -11
  168. package/src/lib/sdui.component.ts +0 -65
  169. package/src/lib/sdui.module.ts +0 -84
  170. package/src/public-api.ts +0 -16
  171. package/tsconfig.lib.json +0 -16
  172. package/tsconfig.spec.json +0 -12
@@ -1,129 +0,0 @@
1
- import {
2
- AfterViewInit,
3
- Component,
4
- ElementRef,
5
- Inject,
6
- OnInit,
7
- Renderer2,
8
- ViewChild,
9
- } from '@angular/core';
10
- import { UIComponent } from '../../../core/uicomposition/models/uicomponent';
11
- import { UIElement } from '../../../core/uicomposition/models/uielement';
12
- import { colorMapping } from '../../../core/uitheme/mapping/color-mapping';
13
- import { textStyleMappingFontSize } from '../../../core/uitheme/mapping/text-style-mapping';
14
- import { UIActionService } from '../../../core/services/ui-action.service';
15
-
16
- @Component({
17
- styleUrl: './search-bar.component.scss',
18
- templateUrl: './search-bar.component.html',
19
- standalone: false,
20
- selector: 'edm-sdui-search-bar',
21
- })
22
- export class SearchBarComponent implements OnInit, AfterViewInit {
23
- @ViewChild('inputElement') inputElementRef!: ElementRef<HTMLInputElement>;
24
-
25
- constructor(
26
- private actionService: UIActionService,
27
- @Inject('uiComponent') public uiComponent: UIComponent,
28
- private renderer: Renderer2
29
- ) {}
30
-
31
- ngOnInit(): void {
32
- // console.debug('label.uiComponent: ', this.uiComponent);
33
- }
34
-
35
- ngAfterViewInit(): void {
36
- if (this.uiComponent.element) {
37
- this.applyElement(this.uiComponent.element);
38
- this.renderer.listen(
39
- this.inputElementRef.nativeElement,
40
- 'keydown',
41
- (event: KeyboardEvent) => {
42
- if (event.key === 'Enter') {
43
- const action = this.uiComponent.element?.action;
44
- const inputValue = this.inputElementRef.nativeElement.value.trim();
45
-
46
- if (action && inputValue && action.url) {
47
- const param = action.param || 'SEARCH';
48
- const encodedValue = encodeURIComponent(inputValue);
49
-
50
- try {
51
- const parsed = new URL(action.url);
52
- const innerUrlRaw = parsed.searchParams.get('url');
53
-
54
- if (innerUrlRaw) {
55
- const decodedInnerUrl = decodeURIComponent(innerUrlRaw);
56
- const updatedInnerUrl = decodedInnerUrl.replace(
57
- `{${param}}`,
58
- encodedValue
59
- );
60
- parsed.searchParams.set(
61
- 'url',
62
- encodeURIComponent(updatedInnerUrl)
63
- );
64
-
65
- const adjustedUrl = parsed.toString();
66
-
67
- console.debug('[key.enter]', {
68
- param,
69
- encodedValue,
70
- adjustedUrl,
71
- });
72
-
73
- this.actionService.execute({
74
- ...action,
75
- url: adjustedUrl,
76
- });
77
- }
78
- } catch (err) {
79
- console.warn(
80
- '[key.enter] Invalid action.url format:',
81
- action.url,
82
- err
83
- );
84
- }
85
- }
86
- }
87
- }
88
- );
89
- }
90
- }
91
-
92
- private applyElement(element: UIElement) {
93
- console.debug('search.element:', element);
94
-
95
- const inputEl = this.inputElementRef.nativeElement;
96
-
97
- if (element.placeholder) {
98
- this.renderer.setAttribute(inputEl, 'placeholder', element.placeholder);
99
- }
100
-
101
- if (element.textColor) {
102
- const color = colorMapping[element.textColor];
103
- this.renderer.setStyle(inputEl, 'color', color);
104
- }
105
-
106
- if (element.textStyle) {
107
- const fontSize = textStyleMappingFontSize[element.textStyle];
108
- this.renderer.setStyle(inputEl, 'font-size', fontSize);
109
- }
110
-
111
- if (element.placeholderTextColor || element.placeholderTextStyle) {
112
- const styleEl = this.renderer.createElement('style');
113
- const color = element.placeholderTextColor
114
- ? colorMapping[element.placeholderTextColor]
115
- : 'inherit';
116
- const fontSize = element.placeholderTextStyle
117
- ? textStyleMappingFontSize[element.placeholderTextStyle]
118
- : 'inherit';
119
-
120
- styleEl.textContent = `
121
- edm-sdui-search-bar input::placeholder {
122
- color: ${color};
123
- font-size: ${fontSize};
124
- }
125
- `;
126
- this.renderer.appendChild(document.head, styleEl);
127
- }
128
- }
129
- }
@@ -1 +0,0 @@
1
- <div class="space"></div>
@@ -1,10 +0,0 @@
1
- :host {
2
- display: contents;
3
- }
4
-
5
- .space {
6
- flex-grow: 1;
7
- flex-shrink: 1;
8
- min-height: 1px;
9
- min-width: 1px;
10
- }
@@ -1,16 +0,0 @@
1
- import { Component, Inject, Input, OnInit } from '@angular/core';
2
- import { UIComponent } from '../../../core/uicomposition/models/uicomponent';
3
-
4
- @Component({
5
- selector: 'edm-sdui-space',
6
- templateUrl: './space.component.html',
7
- styleUrl: './space.component.scss',
8
- standalone: false,
9
- })
10
- export class SpaceComponent implements OnInit {
11
- constructor(@Inject('uiComponent') public uiComponent: UIComponent) {}
12
-
13
- ngOnInit(): void {
14
- // console.debug('space.uiComponent: ', this.uiComponent);
15
- }
16
- }
@@ -1,3 +0,0 @@
1
- <div class="tag" #tagElement *ngIf="uiComponent" [edmSduiView]="uiComponent.element">
2
- <span class="tag-name" #tagNameElement>{{ uiComponent.element?.label ?? '' }}</span>
3
- </div>
@@ -1,7 +0,0 @@
1
- :host {
2
- display: contents;
3
- }
4
-
5
- .tag {
6
- padding: 4px 8px;
7
- }
@@ -1,54 +0,0 @@
1
- import { AfterViewInit, Component, ElementRef, Inject, OnInit, Renderer2, ViewChild } from "@angular/core";
2
- import { UIComponent } from "../../../core/uicomposition/models/uicomponent";
3
- import { UIElement } from "../../../core/uicomposition/models/uielement";
4
- import { colorMapping } from "../../../core/uitheme/mapping/color-mapping";
5
- import { textStyleMappingFontSize } from "../../../core/uitheme/mapping/text-style-mapping";
6
-
7
- @Component({
8
- styleUrl: './tag.component.scss',
9
- templateUrl: './tag.component.html',
10
- standalone: false
11
- })
12
- export class TagComponent implements OnInit, AfterViewInit {
13
- @ViewChild('tagElement') tagElementRef!: ElementRef<HTMLImageElement>;
14
- @ViewChild('tagNameElement') tagNameElementRef!: ElementRef<HTMLImageElement>;
15
-
16
- constructor(
17
- @Inject('uiComponent') public uiComponent: UIComponent,
18
- private renderer: Renderer2
19
- ) {}
20
-
21
- ngOnInit(): void {
22
-
23
- }
24
-
25
- ngAfterViewInit(): void {
26
- if (this.uiComponent.element) {
27
- this.applyElement(this.uiComponent.element);
28
- }
29
-
30
- if (this.uiComponent.element) {
31
- this.applyLabelElement(this.uiComponent.element);
32
- }
33
- }
34
-
35
- private applyElement(element: UIElement) {
36
-
37
- }
38
-
39
- private applyLabelElement(element: UIElement) {
40
- if (element.textColor) {
41
- const color = colorMapping[element.textColor];
42
- this.renderer.setStyle(this.tagNameElementRef.nativeElement, 'color', color);
43
- }
44
-
45
- if (element.textStyle) {
46
- const fontSize = textStyleMappingFontSize[element.textStyle];
47
- this.renderer.setStyle(
48
- this.tagNameElementRef.nativeElement,
49
- 'font-size',
50
- fontSize
51
- );
52
- }
53
- }
54
- }
@@ -1,5 +0,0 @@
1
- <ng-container *ngIf="componentToRender">
2
- <ng-container
3
- *ngComponentOutlet="componentToRender; injector: componentInjector"
4
- ></ng-container>
5
- </ng-container>
@@ -1,3 +0,0 @@
1
- :host {
2
- display: contents;
3
- }
@@ -1,53 +0,0 @@
1
- import {
2
- ChangeDetectionStrategy,
3
- ChangeDetectorRef,
4
- Component,
5
- Injector,
6
- Input,
7
- OnChanges,
8
- OnInit,
9
- SimpleChanges,
10
- Type,
11
- } from '@angular/core';
12
- import { UIComponent } from '../../core/uicomposition/models/uicomponent';
13
- import { componentMapping } from '../../core/uicomposition/mapping/component-mapping';
14
-
15
- @Component({
16
- selector: 'edm-sdui-component',
17
- styleUrl: './uicomponent.component.scss',
18
- templateUrl: './uicomponent.component.html',
19
- standalone: false,
20
- })
21
- export class UIComponentComponent implements OnInit, OnChanges {
22
- @Input() uiComponent?: UIComponent;
23
- componentToRender?: Type<any>;
24
- componentInjector!: Injector;
25
-
26
- constructor(private injector: Injector, private cdr: ChangeDetectorRef) {}
27
-
28
- ngOnInit(): void {
29
- this.initializeComponent();
30
- }
31
-
32
- ngOnChanges(changes: SimpleChanges): void {
33
- if (changes['uiComponent'] && changes['uiComponent'].currentValue) {
34
- this.initializeComponent();
35
- }
36
- }
37
-
38
- private initializeComponent(): void {
39
- const current = this.uiComponent;
40
- if (!current) return;
41
-
42
- const mappingFn = componentMapping[current.type];
43
- mappingFn().then((component: Type<any>) => {
44
- this.componentToRender = component;
45
- this.cdr.markForCheck();
46
- });
47
-
48
- this.componentInjector = Injector.create({
49
- providers: [{ provide: 'uiComponent', useValue: current }],
50
- parent: this.injector,
51
- });
52
- }
53
- }
@@ -1,6 +0,0 @@
1
- <div class="zstack" *ngIf="uiComponent" [edmSduiView]="uiComponent.element">
2
- <edm-sdui-component
3
- *ngFor="let child of uiComponent.components"
4
- [uiComponent]="child"
5
- ></edm-sdui-component>
6
- </div>
@@ -1,12 +0,0 @@
1
- :host {
2
- display: contents;
3
- }
4
-
5
- .zstack {
6
- display: grid;
7
- place-items: center;
8
- }
9
-
10
- .zstack > * {
11
- grid-area: 1 / 1;
12
- }
@@ -1,16 +0,0 @@
1
- import { Component, Inject, OnInit } from '@angular/core';
2
- import { UIComponent } from '../../../core/uicomposition/models/uicomponent';
3
-
4
- @Component({
5
- selector: 'edm-sdui-zstack',
6
- styleUrl: './zstack.component.scss',
7
- templateUrl: './zstack.component.html',
8
- standalone: false,
9
- })
10
- export class ZStackComponent implements OnInit {
11
- constructor(@Inject('uiComponent') public uiComponent: UIComponent) {}
12
-
13
- ngOnInit(): void {
14
- // console.debug('zstack.uiComponent: ', this.uiComponent);
15
- }
16
- }
@@ -1,20 +0,0 @@
1
- <div class="centered-content-layout" *ngIf="!!uiLayout">
2
- <!-- <pre>{{ uiLayout | json }}</pre> -->
3
-
4
- <edm-sdui-navigation [uiNavigation]="uiLayout.nav"></edm-sdui-navigation>
5
-
6
- <div class="header" *ngIf="!!uiLayout?.header">
7
- <edm-sdui-component [uiComponent]="uiLayout.header"></edm-sdui-component>
8
- </div>
9
-
10
- <div class="centered">
11
- <edm-sdui-component
12
- *ngIf="!!uiLayout?.centered"
13
- [uiComponent]="uiLayout.centered"
14
- ></edm-sdui-component>
15
- </div>
16
-
17
- <div class="footer" *ngIf="!!uiLayout?.footer">
18
- <edm-sdui-component [uiComponent]="uiLayout.footer"></edm-sdui-component>
19
- </div>
20
- </div>
@@ -1,36 +0,0 @@
1
- :host {
2
- display: contents;
3
- }
4
-
5
- .centered-content-layout {
6
- display: flex;
7
- flex-direction: column;
8
- width: 100vw;
9
- min-height: 100vh;
10
- position: relative;
11
-
12
- .header {
13
- position: fixed;
14
- top: 0;
15
- left: 0;
16
- width: 100%;
17
- z-index: 100;
18
- }
19
-
20
- .centered {
21
- flex: 1;
22
- display: flex;
23
- align-items: center;
24
- justify-content: center;
25
- margin-top: var(--header-height, 64px);
26
- margin-bottom: var(--footer-height, 64px);
27
- }
28
-
29
- .footer {
30
- position: fixed;
31
- bottom: 0;
32
- left: 0;
33
- width: 100%;
34
- z-index: 100;
35
- }
36
- }
@@ -1,21 +0,0 @@
1
- import { Component, Input, OnChanges, SimpleChanges } from '@angular/core';
2
- import { UICenteredContentLayout } from '../../../core/uicomposition/models/uicentered-content-layout';
3
-
4
- @Component({
5
- selector: 'edm-sdui-centered-content-layout',
6
- templateUrl: './centered-content-layout.component.html',
7
- styleUrl: './centered-content-layout.component.scss',
8
- standalone: false,
9
- })
10
- export class CenteredContentLayoutComponent implements OnChanges {
11
- @Input() uiLayout?: UICenteredContentLayout;
12
-
13
- ngOnChanges(changes: SimpleChanges): void {
14
- if (changes['uiLayout']) {
15
- console.debug(
16
- '[CenteredContentLayoutComponent] Novo layout recebido:',
17
- changes['uiLayout'].currentValue
18
- );
19
- }
20
- }
21
- }
@@ -1,22 +0,0 @@
1
- <div class="single-column-layout" *ngIf="!!uiLayout">
2
- <!-- <pre>{{ uiLayout | json }}</pre> -->
3
-
4
- <edm-sdui-navigation [uiNavigation]="uiLayout.nav"></edm-sdui-navigation>
5
-
6
- <div class="header" *ngIf="!!uiLayout?.header">
7
- <edm-sdui-component [uiComponent]="uiLayout.header"></edm-sdui-component>
8
- </div>
9
-
10
- <div class="scrollview" *ngIf="!!uiLayout?.main">
11
- <div class="main">
12
- <edm-sdui-component
13
- *ngIf="!!uiLayout?.main"
14
- [uiComponent]="uiLayout.main"
15
- ></edm-sdui-component>
16
- </div>
17
- </div>
18
-
19
- <div class="footer" *ngIf="!!uiLayout?.footer">
20
- <edm-sdui-component [uiComponent]="uiLayout.footer"></edm-sdui-component>
21
- </div>
22
- </div>
@@ -1,37 +0,0 @@
1
- :host {
2
- display: contents;
3
- }
4
-
5
- .single-column-layout {
6
- display: flex;
7
- flex-direction: column;
8
- width: 100vw;
9
- min-height: 100vh;
10
- position: relative;
11
-
12
- .header {
13
- position: fixed;
14
- top: 0;
15
- left: 0;
16
- width: 100%;
17
- z-index: 100;
18
- }
19
- .scrollview {
20
- .main {
21
- flex: 1;
22
- display: flex;
23
- align-items: center;
24
- justify-content: center;
25
- margin-top: var(--header-height, 64px);
26
- margin-bottom: var(--footer-height, 64px);
27
- }
28
- }
29
-
30
- .footer {
31
- position: fixed;
32
- bottom: 0;
33
- left: 0;
34
- width: 100%;
35
- z-index: 100;
36
- }
37
- }
@@ -1,27 +0,0 @@
1
- import {
2
- ChangeDetectionStrategy,
3
- Component,
4
- Input,
5
- OnChanges,
6
- SimpleChanges,
7
- } from '@angular/core';
8
- import { UISingleColumnLayout } from '../../../core/uicomposition/models/uisingle-column-layout';
9
-
10
- @Component({
11
- selector: 'edm-sdui-single-column-layout',
12
- templateUrl: './single-column-layout.component.html',
13
- styleUrl: './single-column-layout.component.scss',
14
- standalone: false,
15
- })
16
- export class SingleColumnLayoutComponent implements OnChanges {
17
- @Input() uiLayout?: UISingleColumnLayout;
18
-
19
- ngOnChanges(changes: SimpleChanges): void {
20
- if (changes['uiLayout']) {
21
- console.debug(
22
- '[SingleColumnLayout] Novo layout recebido:',
23
- changes['uiLayout'].currentValue
24
- );
25
- }
26
- }
27
- }
@@ -1,8 +0,0 @@
1
- <div class="nav" *ngIf="uiNavigation">
2
- <h1 *ngIf="uiNavigation.title">{{ uiNavigation.title }}</h1>
3
-
4
- <edm-sdui-component
5
- [uiComponent]="uiNavigation.titleComponent"
6
- *ngIf="uiNavigation.titleComponent"
7
- ></edm-sdui-component>
8
- </div>
@@ -1,4 +0,0 @@
1
- :host {
2
- display: contents;
3
- }
4
-
@@ -1,12 +0,0 @@
1
- import { AfterViewInit, Component, Input } from '@angular/core';
2
- import { UINavigation } from '../../../core/uicomposition/models/uinavigation';
3
-
4
- @Component({
5
- selector: 'edm-sdui-navigation',
6
- styleUrl: './uinavigation.component.scss',
7
- templateUrl: './uinavigation.component.html',
8
- standalone: false,
9
- })
10
- export class UINavigationComponent {
11
- @Input() uiNavigation?: UINavigation;
12
- }
@@ -1,29 +0,0 @@
1
- <div *ngIf="viewModel.isLoading$ | async"><p>Carregando...</p></div>
2
-
3
- <div *ngIf="viewModel.error$ | async as errorMessage">
4
- <p class="error-label">Erro: {{ errorMessage }}</p>
5
- </div>
6
-
7
- <div
8
- class="ui-screen"
9
- *ngIf="viewModel.uiScreen$ | async as uiScreen"
10
- [edmSduiView]="uiScreen"
11
- >
12
- <edm-sdui-navigation-controls
13
- [edmSduiView]="uiScreen"
14
- ></edm-sdui-navigation-controls>
15
-
16
- <ng-container [ngSwitch]="uiScreen.identifier">
17
- <edm-sdui-single-column-layout
18
- *ngSwitchCase="UIScreenIdentifier.SINGLE_COLUMN"
19
- [uiLayout]="uiScreen.content"
20
- >
21
- </edm-sdui-single-column-layout>
22
-
23
- <edm-sdui-centered-content-layout
24
- *ngSwitchCase="UIScreenIdentifier.CENTERED_CONTENT"
25
- [uiLayout]="uiScreen.content"
26
- >
27
- </edm-sdui-centered-content-layout>
28
- </ng-container>
29
- </div>
@@ -1,12 +0,0 @@
1
- :host {
2
- display: contents;
3
- }
4
-
5
- .ui-screen {
6
- width: 100vw;
7
- min-height: 100vh;
8
- }
9
-
10
- .error-label {
11
- color: var(--input-error);
12
- }
@@ -1,15 +0,0 @@
1
- import { Component } from '@angular/core';
2
- import { UIScreenViewModel } from '../../core/view-models/uiscreen.viewmodel';
3
- import { UIScreenIdentifier } from '../../core/uicomposition/enums/uiscreen-identifier';
4
-
5
- @Component({
6
- selector: 'edm-sdui-uiscreen',
7
- templateUrl: './uiscreen.component.html',
8
- styleUrl: './uiscreen.component.scss',
9
- standalone: false,
10
- })
11
- export class UIScreenComponent {
12
- readonly UIScreenIdentifier = UIScreenIdentifier;
13
-
14
- constructor(public viewModel: UIScreenViewModel) {}
15
- }
@@ -1,3 +0,0 @@
1
- export interface SduiConfig {
2
- baseUrl: string;
3
- }
@@ -1,25 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
-
3
- @Injectable({
4
- providedIn: 'root',
5
- })
6
- export class SduiNavigationService {
7
- private navigationHistory: string[] = [];
8
-
9
- forward(url: string): void {
10
- this.navigationHistory.push(url);
11
- }
12
-
13
- back(): string | null | undefined {
14
- if (this.canGoBack()) {
15
- this.navigationHistory.pop();
16
- return this.navigationHistory[this.navigationHistory.length - 1];
17
- }
18
-
19
- return null;
20
- }
21
-
22
- canGoBack(): boolean {
23
- return this.navigationHistory.length > 1;
24
- }
25
- }
@@ -1,19 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { SduiConfig } from '../interfaces/sdui-config.interface';
3
-
4
- @Injectable({
5
- providedIn: 'root',
6
- })
7
- export class SduiConfigService {
8
- private config: SduiConfig = {
9
- baseUrl: '',
10
- };
11
-
12
- setConfig(config: SduiConfig): void {
13
- this.config = { ...this.config, ...config };
14
- }
15
-
16
- getBaseUrl(): string {
17
- return this.config.baseUrl;
18
- }
19
- }