@acorex/platform 19.2.19 → 19.3.0-next.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (197) hide show
  1. package/common/index.d.ts +1 -0
  2. package/common/lib/app/application.types.d.ts +13 -3
  3. package/common/lib/file-storage/file-storage.types.d.ts +20 -12
  4. package/common/lib/filters/filters.types.d.ts +5 -0
  5. package/common/lib/layout/menu/badge-helper.d.ts +7 -0
  6. package/common/lib/layout/menu/index.d.ts +1 -0
  7. package/common/lib/layout/menu/menu.types.d.ts +1 -0
  8. package/common/lib/layout/task-badge/index.d.ts +2 -0
  9. package/common/lib/layout/task-badge/task-badge.service.d.ts +11 -0
  10. package/common/lib/layout/task-badge/task-badge.type.d.ts +6 -0
  11. package/common/lib/settings/setting-definition.provider.d.ts +7 -5
  12. package/common/lib/settings/setting.builder.d.ts +8 -5
  13. package/common/lib/settings/settings.service.d.ts +6 -5
  14. package/common/lib/settings/settings.types.d.ts +6 -10
  15. package/core/lib/data/index.d.ts +1 -0
  16. package/core/lib/data/value-transformer.d.ts +6 -0
  17. package/core/lib/types/core.types.d.ts +18 -0
  18. package/{layout/entity/lib → core/lib/types}/data.types.d.ts +3 -1
  19. package/core/lib/types/element.types.d.ts +6 -0
  20. package/core/lib/types/index.d.ts +6 -0
  21. package/core/lib/types/interactive.types.d.ts +44 -0
  22. package/core/lib/types/scope.types.d.ts +10 -0
  23. package/core/lib/types/validation.types.d.ts +7 -0
  24. package/core/lib/utils/index.d.ts +1 -0
  25. package/core/lib/utils/object-util.d.ts +3 -0
  26. package/fesm2022/acorex-platform-common.mjs +79 -35
  27. package/fesm2022/acorex-platform-common.mjs.map +1 -1
  28. package/fesm2022/acorex-platform-core.mjs +151 -6
  29. package/fesm2022/acorex-platform-core.mjs.map +1 -1
  30. package/fesm2022/acorex-platform-layout-builder.mjs +44 -55
  31. package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
  32. package/fesm2022/acorex-platform-layout-designer.mjs +77 -35
  33. package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
  34. package/fesm2022/acorex-platform-layout-entity.mjs +243 -415
  35. package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
  36. package/fesm2022/acorex-platform-layout-search.mjs +7 -26
  37. package/fesm2022/acorex-platform-layout-search.mjs.map +1 -1
  38. package/fesm2022/acorex-platform-layout-setting.mjs +211 -278
  39. package/fesm2022/acorex-platform-layout-setting.mjs.map +1 -1
  40. package/fesm2022/{acorex-platform-themes-default-entity-master-create-view.component-LKhN00ob.mjs → acorex-platform-themes-default-entity-master-create-view.component-3gmbdeJ_.mjs} +4 -3
  41. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-3gmbdeJ_.mjs.map +1 -0
  42. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-DnEL7Ej-.mjs +741 -0
  43. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-DnEL7Ej-.mjs.map +1 -0
  44. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-8DdICjNs.mjs +91 -0
  45. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-8DdICjNs.mjs.map +1 -0
  46. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-DadBeY1I.mjs +164 -0
  47. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-DadBeY1I.mjs.map +1 -0
  48. package/fesm2022/{acorex-platform-themes-default-search-popup.component-CGARdU4C.mjs → acorex-platform-themes-default-search-popup.component-BADEuoeJ.mjs} +9 -9
  49. package/fesm2022/{acorex-platform-themes-default-search-popup.component-CGARdU4C.mjs.map → acorex-platform-themes-default-search-popup.component-BADEuoeJ.mjs.map} +1 -1
  50. package/fesm2022/acorex-platform-themes-default-setting-page.component-Cj73brIK.mjs +219 -0
  51. package/fesm2022/acorex-platform-themes-default-setting-page.component-Cj73brIK.mjs.map +1 -0
  52. package/fesm2022/acorex-platform-themes-default-setting-view.component-rrAq6hg2.mjs +103 -0
  53. package/fesm2022/acorex-platform-themes-default-setting-view.component-rrAq6hg2.mjs.map +1 -0
  54. package/fesm2022/acorex-platform-themes-default.mjs +237 -73
  55. package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
  56. package/fesm2022/acorex-platform-themes-shared-setting.provider-CXiRmniv.mjs +168 -0
  57. package/fesm2022/acorex-platform-themes-shared-setting.provider-CXiRmniv.mjs.map +1 -0
  58. package/fesm2022/acorex-platform-themes-shared.mjs +502 -322
  59. package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
  60. package/fesm2022/acorex-platform-widgets.mjs +4109 -1487
  61. package/fesm2022/acorex-platform-widgets.mjs.map +1 -1
  62. package/layout/builder/lib/builder/builder.service.d.ts +1 -1
  63. package/layout/builder/lib/builder/index.d.ts +2 -1
  64. package/layout/builder/lib/builder/widget-categories.d.ts +10 -0
  65. package/layout/builder/lib/builder/widget-group.types.d.ts +10 -0
  66. package/layout/builder/lib/builder/widget-map.d.ts +8 -1
  67. package/layout/builder/lib/builder/widget-status.types.d.ts +2 -0
  68. package/layout/builder/lib/builder/widget.types.d.ts +11 -27
  69. package/layout/designer/lib/designer/components/widget-picker/widget-picker.component.d.ts +7 -3
  70. package/layout/designer/lib/designer/components/widget-picker/widget-picker.service.d.ts +12 -0
  71. package/layout/designer/lib/designer/index.d.ts +1 -0
  72. package/layout/designer/lib/designer/shared/designer.service.d.ts +1 -0
  73. package/layout/designer/lib/property-viewer/widget-property-viewer.component.d.ts +2 -1
  74. package/layout/entity/lib/entity-data-seeder.d.ts +2 -2
  75. package/layout/entity/lib/entity-master-list.viewmodel.d.ts +4 -7
  76. package/layout/entity/lib/entity-storage-service.d.ts +39 -55
  77. package/layout/entity/lib/entity.types.d.ts +21 -0
  78. package/layout/entity/lib/index.d.ts +1 -2
  79. package/layout/entity/lib/widgets/lookup-widget/index.d.ts +0 -2
  80. package/layout/entity/lib/widgets/lookup-widget/lookup-widget-column.component.d.ts +4 -0
  81. package/layout/entity/lib/widgets/lookup-widget/lookup-widget-edit.component.d.ts +7 -9
  82. package/layout/entity/lib/widgets/lookup-widget/lookup-widget-selector.component.d.ts +5 -2
  83. package/layout/entity/lib/widgets/lookup-widget/lookup-widget-selector.viewmodel.d.ts +11 -3
  84. package/layout/search/lib/search.viewmodel.d.ts +0 -2
  85. package/layout/setting/lib/setting.viewmodel.d.ts +45 -111
  86. package/package.json +1 -1
  87. package/themes/default/lib/layouts/base/base-page.component.d.ts +39 -13
  88. package/themes/default/lib/layouts/base/base-page.types.d.ts +15 -3
  89. package/themes/default/lib/layouts/base/index.d.ts +1 -0
  90. package/themes/default/lib/layouts/base/page-layout/index.d.ts +1 -0
  91. package/themes/default/lib/{pages/theme-palette-preview/theme-palette-preview.page.d.ts → layouts/base/page-layout/page-layout.component.d.ts} +13 -26
  92. package/themes/default/lib/layouts/base/simple-page/simple-page.layout.d.ts +2 -2
  93. package/themes/default/lib/layouts/entity-layouts/entity-category/entity-category.component.d.ts +16 -0
  94. package/themes/default/lib/layouts/entity-layouts/entity-detail-list-view/entity-detail-list-view.component.d.ts +2 -2
  95. package/themes/default/lib/layouts/entity-layouts/entity-master-list-view/entity-master-list-view.component.d.ts +10 -8
  96. package/themes/default/lib/layouts/entity-layouts/entity-master-single-view/entity-master-single-view.component.d.ts +12 -4
  97. package/themes/default/lib/layouts/entity-layouts/entity-master-toolbar-view/entity-master-toolbar-view.component.d.ts +7 -0
  98. package/themes/default/lib/layouts/entity-layouts/entity-master-toolbar-view/filters/entity-filter-toolbar.component.d.ts +48 -0
  99. package/themes/default/lib/layouts/entity-layouts/entity-master-toolbar-view/views/entity-view-toolbar.component.d.ts +12 -0
  100. package/themes/default/lib/layouts/root-layout/components/header/header.component.d.ts +2 -2
  101. package/themes/default/lib/layouts/root-layout/components/horizontal-menu/horizontal-menu.component.d.ts +9 -3
  102. package/themes/default/lib/layouts/root-layout/components/side-menu/side-menu.component.d.ts +7 -1
  103. package/themes/default/lib/layouts/root-layout/horizontal/horizontal-layout.component.d.ts +2 -2
  104. package/themes/default/lib/layouts/root-layout/root-layout.component.d.ts +2 -2
  105. package/themes/default/lib/layouts/root-layout/vertical/vertical-layout.component.d.ts +2 -2
  106. package/themes/default/lib/layouts/setting-layout/setting-page/setting-page.component.d.ts +61 -5
  107. package/themes/default/lib/layouts/setting-layout/setting-view/setting-view.component.d.ts +68 -6
  108. package/themes/shared/index.d.ts +1 -1
  109. package/themes/shared/lib/components/badge/badge.directive.d.ts +14 -0
  110. package/themes/shared/lib/components/layout-elements/layout-blocks.component.d.ts +4 -1
  111. package/themes/shared/lib/components/layout-elements/layout-side.component.d.ts +2 -2
  112. package/themes/shared/lib/components/slots/theme-slot.component.d.ts +2 -2
  113. package/themes/shared/lib/palette.provider.d.ts +1 -1
  114. package/themes/shared/lib/setting.keys.d.ts +2 -1
  115. package/themes/shared/lib/setting.provider.d.ts +4 -1
  116. package/themes/shared/lib/theme.service.d.ts +2 -2
  117. package/themes/shared/lib/theme.types.d.ts +11 -2
  118. package/themes/shared/lib/widgets/font-size-chooser/font-size-chooser-widget.component.d.ts +10 -0
  119. package/themes/shared/lib/widgets/font-size-chooser/font-size-chooser-widget.config.d.ts +7 -0
  120. package/themes/shared/lib/widgets/font-size-chooser/index.d.ts +2 -0
  121. package/themes/shared/lib/widgets/font-style-chooser/font-style-chooser-widget.component.d.ts +15 -0
  122. package/themes/shared/lib/widgets/font-style-chooser/font-style-chooser-widget.config.d.ts +7 -0
  123. package/themes/shared/lib/widgets/font-style-chooser/index.d.ts +2 -0
  124. package/themes/shared/lib/widgets/menu-orientation-chooser/index.d.ts +2 -0
  125. package/themes/shared/lib/widgets/menu-orientation-chooser/menu-orientation-chooser-widget.component.d.ts +15 -0
  126. package/themes/shared/lib/widgets/menu-orientation-chooser/menu-orientation-chooser-widget.config.d.ts +7 -0
  127. package/themes/shared/lib/widgets/theme-mode-chooser/index.d.ts +2 -0
  128. package/themes/shared/lib/widgets/theme-mode-chooser/theme-mode-chooser-widget.component.d.ts +16 -0
  129. package/themes/shared/lib/widgets/theme-mode-chooser/theme-mode-chooser-widget.config.d.ts +7 -0
  130. package/themes/shared/lib/widgets/theme-palette-chooser/index.d.ts +2 -0
  131. package/themes/shared/lib/widgets/theme-palette-chooser/theme-palette-chooser-widget.component.d.ts +13 -0
  132. package/themes/shared/lib/widgets/{theme-color-selection/theme-color-selection-widget.config.d.ts → theme-palette-chooser/theme-palette-chooser-widget.config.d.ts} +2 -2
  133. package/widgets/lib/properties/groups.d.ts +2 -0
  134. package/widgets/lib/widgets/advance/file/file-box-widget-edit.component.d.ts +5 -5
  135. package/widgets/lib/widgets/charts/bar-chart/bar-chart-widget.component.d.ts +52 -0
  136. package/widgets/lib/widgets/charts/bar-chart/bar-chart.type.d.ts +29 -11
  137. package/widgets/lib/widgets/charts/bar-chart/index.d.ts +1 -1
  138. package/widgets/lib/widgets/charts/chart.type.d.ts +3 -0
  139. package/widgets/lib/widgets/charts/clock-calendar/clock-calendar-widget.component.d.ts +40 -0
  140. package/widgets/lib/widgets/charts/clock-calendar/clock-calendar-widget.config.d.ts +7 -0
  141. package/widgets/lib/widgets/charts/clock-calendar/clock-calendar.types.d.ts +50 -0
  142. package/widgets/lib/widgets/charts/clock-calendar/index.d.ts +3 -0
  143. package/widgets/lib/widgets/charts/donut-chart/donut-chart-widget.component.d.ts +54 -0
  144. package/widgets/lib/widgets/charts/donut-chart/donut-chart.type.d.ts +31 -21
  145. package/widgets/lib/widgets/charts/donut-chart/index.d.ts +1 -1
  146. package/widgets/lib/widgets/charts/gauge-chart/{gauge-chart-widget-edit.component.d.ts → gauge-chart-widget.component.d.ts} +3 -3
  147. package/widgets/lib/widgets/charts/gauge-chart/gauge-chart.type.d.ts +26 -11
  148. package/widgets/lib/widgets/charts/gauge-chart/index.d.ts +2 -1
  149. package/widgets/lib/widgets/charts/shared/chart-base.component.d.ts +44 -0
  150. package/widgets/lib/widgets/charts/shared/chart-base.type.d.ts +37 -0
  151. package/widgets/lib/widgets/charts/sticky-note/index.d.ts +1 -1
  152. package/widgets/lib/widgets/charts/sticky-note/{sticky-note-widget-edit.component.d.ts → sticky-note-widget.component.d.ts} +3 -3
  153. package/widgets/lib/widgets/charts/weather/index.d.ts +4 -0
  154. package/widgets/lib/widgets/charts/weather/weather-services/index.d.ts +3 -0
  155. package/widgets/lib/widgets/charts/weather/weather-services/weather-api.abstract.d.ts +174 -0
  156. package/widgets/lib/widgets/charts/weather/weather-services/weather-api.key.d.ts +2 -0
  157. package/widgets/lib/widgets/charts/weather/weather-services/weather-api.mock.service.d.ts +47 -0
  158. package/widgets/lib/widgets/charts/weather/weather-services/weather-api.service.d.ts +48 -0
  159. package/widgets/lib/widgets/charts/weather/weather-widget.component.d.ts +109 -0
  160. package/widgets/lib/widgets/charts/weather/weather-widget.config.d.ts +14 -0
  161. package/widgets/lib/widgets/charts/weather/weather.module.d.ts +11 -0
  162. package/widgets/lib/widgets/editors/select/select-box-widget-column.component.d.ts +0 -1
  163. package/widgets/lib/widgets/editors/select/select-box-widget-edit.component.d.ts +4 -1
  164. package/widgets/lib/widgets/editors/template-box/index.d.ts +6 -0
  165. package/widgets/lib/widgets/editors/template-box/template-box-widget-column.component.d.ts +10 -0
  166. package/widgets/lib/widgets/editors/template-box/template-box-widget-edit.component.d.ts +29 -0
  167. package/widgets/lib/widgets/editors/template-box/template-box-widget-filter.component.d.ts +6 -0
  168. package/widgets/lib/widgets/editors/template-box/template-box-widget-print.component.d.ts +10 -0
  169. package/widgets/lib/widgets/editors/template-box/template-box-widget-view.component.d.ts +11 -0
  170. package/widgets/lib/widgets/editors/template-box/template-box-widget.config.d.ts +7 -0
  171. package/widgets/lib/widgets/filters/select-filter/select-filter-widget-edit.component.d.ts +2 -5
  172. package/widgets/lib/widgets/index.d.ts +3 -0
  173. package/core/lib/types.d.ts +0 -57
  174. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-LKhN00ob.mjs.map +0 -1
  175. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-CdC4eF25.mjs +0 -400
  176. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-CdC4eF25.mjs.map +0 -1
  177. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-B9TUh-2S.mjs +0 -91
  178. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-B9TUh-2S.mjs.map +0 -1
  179. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-ZfUaIxUa.mjs +0 -135
  180. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-ZfUaIxUa.mjs.map +0 -1
  181. package/fesm2022/acorex-platform-themes-default-setting-page.component-Cd2yaPEZ.mjs +0 -74
  182. package/fesm2022/acorex-platform-themes-default-setting-page.component-Cd2yaPEZ.mjs.map +0 -1
  183. package/fesm2022/acorex-platform-themes-default-setting-view.component-B3Aob67f.mjs +0 -73
  184. package/fesm2022/acorex-platform-themes-default-setting-view.component-B3Aob67f.mjs.map +0 -1
  185. package/fesm2022/acorex-platform-themes-default-theme-palette-preview.page-DqAngWCf.mjs +0 -146
  186. package/fesm2022/acorex-platform-themes-default-theme-palette-preview.page-DqAngWCf.mjs.map +0 -1
  187. package/layout/builder/lib/builder/widget-groups.d.ts +0 -9
  188. package/layout/entity/lib/dexie-storage.service.d.ts +0 -16
  189. package/layout/entity/lib/widgets/lookup-widget/lookup-widget-filter.component.d.ts +0 -6
  190. package/layout/entity/lib/widgets/lookup-widget/lookup-widget-print.component.d.ts +0 -6
  191. package/themes/default/lib/layouts/filters-layout/simple-filter-builder/filters-view.component.d.ts +0 -13
  192. package/themes/shared/lib/components/drawer/drawer.directive.d.ts +0 -22
  193. package/themes/shared/lib/components/drawer/index.d.ts +0 -1
  194. package/themes/shared/lib/widgets/theme-color-selection/index.d.ts +0 -2
  195. package/themes/shared/lib/widgets/theme-color-selection/theme-color-selection-widget-edit.component.d.ts +0 -6
  196. package/widgets/lib/widgets/charts/bar-chart/bar-chart-widget-edit.component.d.ts +0 -40
  197. package/widgets/lib/widgets/charts/donut-chart/donut-chart-widget-edit.component.d.ts +0 -44
@@ -0,0 +1,174 @@
1
+ import { Observable } from 'rxjs';
2
+ import * as i0 from "@angular/core";
3
+ /**
4
+ * Weather location information
5
+ */
6
+ export interface AXPWeatherLocation {
7
+ /** City name */
8
+ city: string;
9
+ /** Country name */
10
+ country: string;
11
+ /** Formatted location display name */
12
+ displayName: string;
13
+ }
14
+ /**
15
+ * Weather current condition information
16
+ */
17
+ export interface AXPWeatherCondition {
18
+ /** Condition text */
19
+ condition: string;
20
+ /** Condition code */
21
+ conditionCode: number;
22
+ /** Icon URL */
23
+ iconUrl: string;
24
+ /** Temperature in Celsius */
25
+ tempC: number;
26
+ /** Temperature in Fahrenheit */
27
+ tempF: number;
28
+ /** Feels like temperature in Celsius */
29
+ feelsLikeC: number;
30
+ /** Feels like temperature in Fahrenheit */
31
+ feelsLikeF: number;
32
+ /** Humidity percentage */
33
+ humidity: number;
34
+ /** Wind speed in km/h */
35
+ windKph: number;
36
+ /** Wind speed in mph */
37
+ windMph: number;
38
+ /** Wind direction */
39
+ windDirection: string;
40
+ /** UV index */
41
+ uv: number;
42
+ /** Last updated timestamp */
43
+ lastUpdated: string;
44
+ }
45
+ /**
46
+ * Weather forecast data for a single day
47
+ */
48
+ export interface AXPWeatherForecastDay {
49
+ /** Date string */
50
+ date: string;
51
+ /** Day name (e.g., "Mon", "Tue") */
52
+ day: string;
53
+ /** Weather condition code */
54
+ condition: string;
55
+ /** Weather icon URL */
56
+ iconUrl: string;
57
+ /** Max temperature in Celsius */
58
+ maxTempC: number;
59
+ /** Max temperature in Fahrenheit */
60
+ maxTempF: number;
61
+ /** Min temperature in Celsius */
62
+ minTempC: number;
63
+ /** Min temperature in Fahrenheit */
64
+ minTempF: number;
65
+ }
66
+ /**
67
+ * Complete weather data response
68
+ */
69
+ export interface AXPWeatherData {
70
+ /** Location information */
71
+ location: AXPWeatherLocation;
72
+ /** Current weather data */
73
+ current: AXPWeatherCondition;
74
+ /** Forecast data */
75
+ forecast: AXPWeatherForecastDay[];
76
+ }
77
+ /**
78
+ * Weather API request options
79
+ */
80
+ export interface AXPWeatherRequestOptions {
81
+ /** Temperature unit */
82
+ tempUnit?: string;
83
+ /** Location query */
84
+ location?: string;
85
+ /** Use mock data */
86
+ useMockData?: boolean;
87
+ }
88
+ /**
89
+ * Weather UI condition display info
90
+ */
91
+ export interface AXPWeatherConditionDisplay {
92
+ /** Condition unique ID */
93
+ id: string;
94
+ /** Display name */
95
+ name: string;
96
+ /** Icon class (Font Awesome) */
97
+ icon: string;
98
+ /** Associated color */
99
+ color: string;
100
+ }
101
+ /**
102
+ * Abstract Weather API Service
103
+ * Base class that defines the interface and common functionality
104
+ * for weather data providers
105
+ */
106
+ export declare abstract class AXPWeatherApiAbstract {
107
+ /** Weather condition definitions mapping */
108
+ protected weatherConditions: Record<string, AXPWeatherConditionDisplay>;
109
+ /** Day of week mapping */
110
+ protected readonly dayNames: string[];
111
+ /**
112
+ * Get weather condition info by ID
113
+ * @param id Condition ID
114
+ * @returns Weather condition info or default if not found
115
+ */
116
+ getCondition(id: string): AXPWeatherConditionDisplay;
117
+ /**
118
+ * Get current weather data for given location
119
+ * @param options Weather request options
120
+ * @returns Observable with weather data
121
+ */
122
+ abstract getWeather(options: AXPWeatherRequestOptions): Observable<AXPWeatherData>;
123
+ /**
124
+ * Get weather forecast for a location
125
+ * @param options Weather request options with days
126
+ * @returns Observable of weather data with forecast
127
+ */
128
+ abstract getForecast(options: AXPWeatherRequestOptions & {
129
+ days?: number;
130
+ }): Observable<AXPWeatherData>;
131
+ /**
132
+ * Parse location string into city and display components
133
+ * @param location Location query string
134
+ * @returns Parsed location parts
135
+ */
136
+ protected parseLocation(location: string): {
137
+ city: string;
138
+ country: string;
139
+ display: string;
140
+ };
141
+ /**
142
+ * Format location name for display
143
+ * @param locationParts Parsed location parts
144
+ * @returns Formatted location name
145
+ */
146
+ protected formatLocationName(locationParts: {
147
+ city: string;
148
+ country: string;
149
+ display: string;
150
+ }): string;
151
+ /**
152
+ * Map API condition text to our internal condition IDs
153
+ * @param conditionText Condition text from API
154
+ * @returns Internal condition ID
155
+ */
156
+ protected mapApiConditionToId(conditionText: string): string;
157
+ /**
158
+ * Generate random integer between min and max (inclusive)
159
+ * Helper method for implementations
160
+ * @param min Minimum value
161
+ * @param max Maximum value
162
+ * @returns Random integer
163
+ */
164
+ protected getRandomInt(min: number, max: number): number;
165
+ /**
166
+ * Set the API key for the weather service
167
+ * This is only used by the real API implementation,
168
+ * but is defined in the abstract class for consistency
169
+ * @param key The API key
170
+ */
171
+ abstract setApiKey(key: string): void;
172
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPWeatherApiAbstract, never>;
173
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXPWeatherApiAbstract>;
174
+ }
@@ -0,0 +1,2 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ export declare const AXP_WEATHER_API_KEY: InjectionToken<string>;
@@ -0,0 +1,47 @@
1
+ import { Observable } from 'rxjs';
2
+ import { AXPWeatherApiAbstract, AXPWeatherData, AXPWeatherRequestOptions } from './weather-api.abstract';
3
+ import * as i0 from "@angular/core";
4
+ /**
5
+ * Mock Weather API Service
6
+ * Provides simulated weather data for development and testing
7
+ */
8
+ export declare class AXPWeatherApiMockService extends AXPWeatherApiAbstract {
9
+ private readonly mockDelay;
10
+ /**
11
+ * Get current weather data for given location
12
+ * @param options Weather request options
13
+ * @returns Observable with weather data
14
+ */
15
+ getWeather(options: AXPWeatherRequestOptions): Observable<AXPWeatherData>;
16
+ /**
17
+ * Get weather forecast for a location
18
+ * @param options Weather request options with days
19
+ * @returns Observable of weather data with forecast
20
+ */
21
+ getForecast(options: AXPWeatherRequestOptions & {
22
+ days?: number;
23
+ }): Observable<AXPWeatherData>;
24
+ /**
25
+ * Get mock weather data for demo/development
26
+ * @param location Location query
27
+ * @param options Request options
28
+ * @returns Observable of mock weather data
29
+ */
30
+ private getMockWeatherData;
31
+ /**
32
+ * Get mock forecast data for demo/development
33
+ * @param location Location query
34
+ * @param days Number of forecast days
35
+ * @param options Request options
36
+ * @returns Observable of mock weather data with forecast
37
+ */
38
+ private getMockForecast;
39
+ /**
40
+ * Set the API key for the weather service
41
+ * No-op in the mock implementation
42
+ * @param key The API key
43
+ */
44
+ setApiKey(key: string): void;
45
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPWeatherApiMockService, never>;
46
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXPWeatherApiMockService>;
47
+ }
@@ -0,0 +1,48 @@
1
+ import { Observable } from 'rxjs';
2
+ import { AXPWeatherApiAbstract, AXPWeatherData, AXPWeatherRequestOptions } from './weather-api.abstract';
3
+ import * as i0 from "@angular/core";
4
+ /**
5
+ * Real Weather API Service
6
+ * Fetches actual weather data from a weather API service
7
+ */
8
+ export declare class AXPWeatherApiService extends AXPWeatherApiAbstract {
9
+ private readonly http;
10
+ private readonly baseApiUrl;
11
+ private apiKeyToken;
12
+ /**
13
+ * Set the API key for the weather service
14
+ * @param key The API key
15
+ */
16
+ setApiKey(key: string): void;
17
+ /**
18
+ * Get current weather data for given location
19
+ * @param options Weather request options
20
+ * @returns Observable with weather data
21
+ */
22
+ getWeather(options: AXPWeatherRequestOptions): Observable<AXPWeatherData>;
23
+ /**
24
+ * Get weather forecast for a location
25
+ * @param options Weather request options with days
26
+ * @returns Observable of weather data with forecast
27
+ */
28
+ getForecast(options: AXPWeatherRequestOptions & {
29
+ days?: number;
30
+ }): Observable<AXPWeatherData>;
31
+ /**
32
+ * Transform API response to our internal data model
33
+ * @param apiData Raw API response
34
+ * @param displayName Formatted location name
35
+ * @returns Normalized weather data
36
+ */
37
+ private transformApiResponse;
38
+ /**
39
+ * Transform forecast API response to our internal data model
40
+ * @param apiData Raw API response with forecast
41
+ * @param displayName Formatted location name
42
+ * @param days Number of forecast days
43
+ * @returns Normalized weather data with forecast
44
+ */
45
+ private transformForecastResponse;
46
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPWeatherApiService, never>;
47
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXPWeatherApiService>;
48
+ }
@@ -0,0 +1,109 @@
1
+ import { AXPWidgetComponent } from '@acorex/platform/layout/builder';
2
+ import { ChangeDetectorRef, ElementRef } from '@angular/core';
3
+ import { AXPWeatherData } from './weather-services';
4
+ import * as i0 from "@angular/core";
5
+ /**
6
+ * Weather Widget Component
7
+ * Displays current weather conditions and optional forecast data
8
+ * for a specified location with customizable display options.
9
+ */
10
+ export declare class AXPWeatherWidgetViewComponent extends AXPWidgetComponent {
11
+ protected cdr: ChangeDetectorRef;
12
+ protected containerEl: import("@angular/core").Signal<ElementRef<HTMLDivElement>>;
13
+ private weatherService;
14
+ protected weatherData: import("@angular/core").WritableSignal<AXPWeatherData | null>;
15
+ protected isLoading: import("@angular/core").WritableSignal<boolean>;
16
+ protected hasError: import("@angular/core").WritableSignal<boolean>;
17
+ protected errorMessage: import("@angular/core").WritableSignal<string>;
18
+ protected isForecastLoading: import("@angular/core").WritableSignal<boolean>;
19
+ private refreshSubscription;
20
+ protected city: import("@angular/core").Signal<any>;
21
+ protected temperatureUnit: import("@angular/core").Signal<any>;
22
+ protected windSpeedUnit: import("@angular/core").Signal<any>;
23
+ protected showCurrentCondition: import("@angular/core").Signal<boolean>;
24
+ protected showTemperature: import("@angular/core").Signal<boolean>;
25
+ protected showHumidity: import("@angular/core").Signal<boolean>;
26
+ protected showWind: import("@angular/core").Signal<boolean>;
27
+ protected showForecast: import("@angular/core").Signal<boolean>;
28
+ protected forecastDays: import("@angular/core").Signal<any>;
29
+ protected autoRefresh: import("@angular/core").Signal<boolean>;
30
+ protected refreshInterval: import("@angular/core").Signal<any>;
31
+ private optionsEffect;
32
+ private valueEffect;
33
+ protected displayedForecast: import("@angular/core").Signal<import("./weather-services").AXPWeatherForecastDay[]>;
34
+ /**
35
+ * Component constructor
36
+ * @param cdr ChangeDetectorRef for triggering view updates
37
+ */
38
+ constructor(cdr: ChangeDetectorRef);
39
+ /**
40
+ * Component cleanup on destroy
41
+ */
42
+ ngOnDestroy(): void;
43
+ /**
44
+ * Loads weather data from the API
45
+ * Sets loading state and handles errors
46
+ */
47
+ private loadWeatherData;
48
+ /**
49
+ * Sets up the auto-refresh timer based on configuration
50
+ */
51
+ private setupRefreshTimer;
52
+ /**
53
+ * Clears the refresh timer subscription
54
+ */
55
+ private clearRefreshTimer;
56
+ /**
57
+ * Manually refreshes the weather data
58
+ */
59
+ protected refreshWeather(): void;
60
+ /**
61
+ * Gets the current temperature based on selected unit
62
+ */
63
+ protected getCurrentTemperature(): number;
64
+ /**
65
+ * Gets the feels like temperature based on selected unit
66
+ */
67
+ protected getFeelsLikeTemperature(): number;
68
+ /**
69
+ * Gets the humidity percentage
70
+ */
71
+ protected getHumidity(): number;
72
+ /**
73
+ * Gets the wind speed based on selected unit
74
+ */
75
+ protected getWindSpeed(): number;
76
+ /**
77
+ * Gets the current weather condition
78
+ */
79
+ protected getCurrentCondition(): string;
80
+ /**
81
+ * Gets the formatted last updated time
82
+ */
83
+ protected getLastUpdated(): string;
84
+ /**
85
+ * Gets the icon class for a weather condition
86
+ * @param conditionId Weather condition ID
87
+ * @returns Font Awesome icon class
88
+ */
89
+ protected getConditionIcon(conditionId: string): string;
90
+ /**
91
+ * Gets the display name for a weather condition
92
+ * @param conditionId Weather condition ID
93
+ * @returns Condition display name
94
+ */
95
+ protected getConditionName(conditionId: string): string;
96
+ /**
97
+ * Gets the color for a weather condition
98
+ * @param conditionId Weather condition ID
99
+ * @returns CSS color value
100
+ */
101
+ protected getConditionColor(conditionId: string): string;
102
+ /**
103
+ * Cleans up chart resources
104
+ * Required by AXPChartBaseComponent
105
+ */
106
+ protected cleanupChart(): void;
107
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPWeatherWidgetViewComponent, never>;
108
+ static ɵcmp: i0.ɵɵComponentDeclaration<AXPWeatherWidgetViewComponent, "ng-component", never, {}, {}, never, never, true, never>;
109
+ }
@@ -0,0 +1,14 @@
1
+ import { AXPWidgetConfig } from '@acorex/platform/layout/builder';
2
+ /**
3
+ * Weather Widget Configuration
4
+ * Provides customization options for displaying weather data and forecast
5
+ */
6
+ export declare const AXPWeatherWidget: AXPWidgetConfig;
7
+ /**
8
+ * Type declaration to register the weather widget type
9
+ */
10
+ declare module '@acorex/platform/layout/builder' {
11
+ interface AXPWidgetTypesMap {
12
+ weather: 'weather';
13
+ }
14
+ }
@@ -0,0 +1,11 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "@angular/common/http";
3
+ /**
4
+ * Weather Widget Module
5
+ * Provides weather display functionality as a dashboard widget
6
+ */
7
+ export declare class AXPWeatherWidgetModule {
8
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPWeatherWidgetModule, never>;
9
+ static ɵmod: i0.ɵɵNgModuleDeclaration<AXPWeatherWidgetModule, never, [typeof i1.HttpClientModule], never>;
10
+ static ɵinj: i0.ɵɵInjectorDeclaration<AXPWeatherWidgetModule>;
11
+ }
@@ -1,7 +1,6 @@
1
1
  import { AXPColumnWidgetComponent } from '@acorex/platform/layout/builder';
2
2
  import * as i0 from "@angular/core";
3
3
  export declare class AXPSelectBoxWidgetColumnComponent extends AXPColumnWidgetComponent<any> {
4
- protected multiple: boolean;
5
4
  protected valueField: string;
6
5
  protected textField: string;
7
6
  protected internalValue: import("@angular/core").Signal<any[]>;
@@ -13,7 +13,10 @@ export declare class AXPSelectBoxWidgetEditComponent extends AXPDataListWidgetCo
13
13
  protected hasClearButton: import("@angular/core").Signal<boolean>;
14
14
  protected allowSearch: import("@angular/core").Signal<boolean>;
15
15
  protected filter: import("@angular/core").Signal<AXDataSourceFilterOption>;
16
- protected outputs(): string[];
16
+ protected outputs(): (string | {
17
+ name: string;
18
+ value: unknown;
19
+ })[];
17
20
  protected handleValueChange(e: AXValueChangedEvent): void;
18
21
  refresh(): void;
19
22
  clear(): void;
@@ -0,0 +1,6 @@
1
+ export * from './template-box-widget-column.component';
2
+ export * from './template-box-widget-edit.component';
3
+ export * from './template-box-widget-filter.component';
4
+ export * from './template-box-widget-print.component';
5
+ export * from './template-box-widget-view.component';
6
+ export * from './template-box-widget.config';
@@ -0,0 +1,10 @@
1
+ import { AXPWidgetComponent } from '@acorex/platform/layout/builder';
2
+ import { OnInit } from '@angular/core';
3
+ import * as i0 from "@angular/core";
4
+ export declare class AXPTemplateBoxWidgetColumnComponent extends AXPWidgetComponent<any> implements OnInit {
5
+ private translationService;
6
+ protected displayText: import("@angular/core").WritableSignal<string>;
7
+ ngOnInit(): void;
8
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPTemplateBoxWidgetColumnComponent, never>;
9
+ static ɵcmp: i0.ɵɵComponentDeclaration<AXPTemplateBoxWidgetColumnComponent, "axp-template-box-widget-column", never, {}, {}, never, never, true, never>;
10
+ }
@@ -0,0 +1,29 @@
1
+ import { AXPLanguage } from '@acorex/platform/common';
2
+ import { AXPWidgetComponent } from '@acorex/platform/layout/builder';
3
+ import { OnInit } from '@angular/core';
4
+ import * as i0 from "@angular/core";
5
+ interface TemplateVariable {
6
+ name: string;
7
+ required: boolean;
8
+ }
9
+ export declare class AXPTemplateBoxWidgetEditComponent extends AXPWidgetComponent<any> implements OnInit {
10
+ private regionalService;
11
+ private translationService;
12
+ protected disabled: import("@angular/core").Signal<boolean>;
13
+ protected clearButton: import("@angular/core").Signal<boolean>;
14
+ protected placeholder: import("@angular/core").Signal<string>;
15
+ protected availableLanguages: import("@angular/core").WritableSignal<AXPLanguage[]>;
16
+ protected selectedLanguage: import("@angular/core").WritableSignal<string>;
17
+ protected selectedLanguageTitle: import("@angular/core").Signal<string>;
18
+ protected templateContent: import("@angular/core").WritableSignal<Record<string, string>>;
19
+ protected templateVariables: import("@angular/core").WritableSignal<TemplateVariable[]>;
20
+ protected currentContent: import("@angular/core").Signal<string>;
21
+ ngOnInit(): Promise<void>;
22
+ protected handleLanguageChange(langCode: string): void;
23
+ protected handleValueChange(text: string): void;
24
+ private extractVariables;
25
+ private get __class();
26
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPTemplateBoxWidgetEditComponent, never>;
27
+ static ɵcmp: i0.ɵɵComponentDeclaration<AXPTemplateBoxWidgetEditComponent, "axp-template-box-widget", never, { "disabled": { "alias": "disabled"; "required": false; }; "clearButton": { "alias": "clearButton"; "required": false; }; }, {}, never, never, true, never>;
28
+ }
29
+ export {};
@@ -0,0 +1,6 @@
1
+ import { AXPWidgetComponent } from '@acorex/platform/layout/builder';
2
+ import * as i0 from "@angular/core";
3
+ export declare class AXPTemplateBoxWidgetFilterComponent extends AXPWidgetComponent<string> {
4
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPTemplateBoxWidgetFilterComponent, never>;
5
+ static ɵcmp: i0.ɵɵComponentDeclaration<AXPTemplateBoxWidgetFilterComponent, "axp-template-box-widget-filter", never, {}, {}, never, never, true, never>;
6
+ }
@@ -0,0 +1,10 @@
1
+ import { AXPWidgetComponent } from '@acorex/platform/layout/builder';
2
+ import { OnInit } from '@angular/core';
3
+ import * as i0 from "@angular/core";
4
+ export declare class AXPTemplateBoxWidgetPrintComponent extends AXPWidgetComponent<any> implements OnInit {
5
+ private translationService;
6
+ protected displayText: import("@angular/core").WritableSignal<string>;
7
+ ngOnInit(): void;
8
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPTemplateBoxWidgetPrintComponent, never>;
9
+ static ɵcmp: i0.ɵɵComponentDeclaration<AXPTemplateBoxWidgetPrintComponent, "axp-template-box-widget-print", never, {}, {}, never, never, true, never>;
10
+ }
@@ -0,0 +1,11 @@
1
+ import { AXPWidgetComponent } from '@acorex/platform/layout/builder';
2
+ import { OnInit } from '@angular/core';
3
+ import * as i0 from "@angular/core";
4
+ export declare class AXPTemplateBoxWidgetViewComponent extends AXPWidgetComponent<any> implements OnInit {
5
+ private translationService;
6
+ protected displayText: import("@angular/core").WritableSignal<string>;
7
+ ngOnInit(): void;
8
+ private get __class();
9
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPTemplateBoxWidgetViewComponent, never>;
10
+ static ɵcmp: i0.ɵɵComponentDeclaration<AXPTemplateBoxWidgetViewComponent, "axp-template-box-widget-view", never, {}, {}, never, never, true, never>;
11
+ }
@@ -0,0 +1,7 @@
1
+ import { AXPWidgetConfig } from '@acorex/platform/layout/builder';
2
+ export declare const AXPTemplateBoxWidget: AXPWidgetConfig;
3
+ declare module '@acorex/platform/layout/builder' {
4
+ interface AXPWidgetTypesMap {
5
+ templateEditor: 'template-box-editor';
6
+ }
7
+ }
@@ -1,11 +1,8 @@
1
1
  import { AXValueChangedEvent } from '@acorex/components/common';
2
- import { AXPWidgetComponent } from '@acorex/platform/layout/builder';
2
+ import { AXPDataListWidgetComponent } from '@acorex/platform/layout/builder';
3
3
  import * as i0 from "@angular/core";
4
- export declare class AXPSelectFilterWidgetEditComponent extends AXPWidgetComponent<any> {
4
+ export declare class AXPSelectFilterWidgetEditComponent extends AXPDataListWidgetComponent {
5
5
  protected value: import("@angular/core").Signal<any>;
6
- protected dataSource: import("@angular/core").Signal<any>;
7
- protected textField: import("@angular/core").Signal<any>;
8
- protected valueField: import("@angular/core").Signal<any>;
9
6
  protected multiple: import("@angular/core").Signal<any>;
10
7
  protected allowSearch: import("@angular/core").Signal<any>;
11
8
  protected placeholder: import("@angular/core").Signal<any>;
@@ -12,6 +12,7 @@ export * from './editors/rich-text';
12
12
  export * from './editors/select';
13
13
  export * from './editors/selection-list';
14
14
  export * from './editors/single-file-box';
15
+ export * from './editors/template-box';
15
16
  export * from './editors/text';
16
17
  export * from './editors/toggle';
17
18
  export * from './advance/avatar';
@@ -41,6 +42,8 @@ export * from './validations/min-length-validation';
41
42
  export * from './validations/regular-expression-validation';
42
43
  export * from './validations/required-validation';
43
44
  export * from './charts/bar-chart';
45
+ export * from './charts/clock-calendar';
44
46
  export * from './charts/donut-chart';
45
47
  export * from './charts/gauge-chart';
46
48
  export * from './charts/sticky-note';
49
+ export * from './charts/weather';
@@ -1,57 +0,0 @@
1
- import { Type } from '@angular/core';
2
- import { NavigationExtras } from '@angular/router';
3
- export type AXPPartialNested<T> = {
4
- [K in keyof T]?: T[K] extends object ? AXPPartialNested<T[K]> : T[K];
5
- };
6
- export type AXPMetaData = Record<string, any>;
7
- export type AXPOptionsData = Record<string, any>;
8
- export type AXPValidationRule = {
9
- rule: string;
10
- message?: string;
11
- options?: any;
12
- disabled?: boolean;
13
- };
14
- export type AXPValidationRules = AXPValidationRule[];
15
- export declare function getNestedKeys(obj: any, prefix?: string): string[];
16
- export type AXPCommandActionMenu = {
17
- name: string;
18
- title: string;
19
- icon?: string;
20
- color?: string;
21
- break?: boolean;
22
- items?: AXPCommandActionMenu[];
23
- };
24
- export type AXPExecuteCommand = {
25
- name: string;
26
- options?: AXPMetaData;
27
- metadata?: AXPMetaData;
28
- };
29
- export type AXPNavigateActionOptions = {
30
- router: {
31
- path: string;
32
- extras?: NavigationExtras & {
33
- target?: string;
34
- };
35
- };
36
- modal: {
37
- component: Type<any>;
38
- title: string;
39
- options?: any;
40
- };
41
- };
42
- export interface AXPNavigateActionCommand<T extends keyof AXPNavigateActionOptions> {
43
- type: T;
44
- options: AXPNavigateActionOptions[T];
45
- }
46
- export interface AXPValueUnit {
47
- name: string;
48
- title: string;
49
- ratio: number;
50
- order: number;
51
- }
52
- export interface AXPValueUnits {
53
- name: string;
54
- title: string;
55
- items: AXPValueUnit[];
56
- default: string;
57
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"acorex-platform-themes-default-entity-master-create-view.component-LKhN00ob.mjs","sources":["../../../../libs/platform/themes/default/src/lib/layouts/entity-layouts/entity-master-create-view/entity-master-create-view.component.ts","../../../../libs/platform/themes/default/src/lib/layouts/entity-layouts/entity-master-create-view/entity-master-create-view.component.html"],"sourcesContent":["import { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXDialogModule } from '@acorex/components/dialog';\nimport { AXDropdownButtonModule } from '@acorex/components/dropdown-button';\nimport { AXFormComponent, AXFormModule } from '@acorex/components/form';\nimport { AXLabelModule } from '@acorex/components/label';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXBasePageComponent } from '@acorex/components/page';\nimport { AXTabsModule } from '@acorex/components/tabs';\nimport { AXTooltipModule } from '@acorex/components/tooltip';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, viewChild } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { AXValidationModule } from '@acorex/core/validation';\n\nimport { AXDropdownModule } from '@acorex/components/dropdown';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXPGridLayoutDirective } from '@acorex/platform/common';\nimport {\n AXPLayoutBuilderModule,\n AXPLayoutContextChangeEvent,\n AXPPageStatus,\n AXPWidgetContainerComponent,\n} from '@acorex/platform/layout/builder';\nimport { AXPEntityMasterCreateViewModel } from '@acorex/platform/layout/entity';\nimport { AXPWidgetsModule } from '@acorex/platform/widgets';\nimport { AXPWorkflowService } from '@acorex/platform/workflow';\n\n@Component({\n templateUrl: './entity-master-create-view.component.html',\n imports: [\n CommonModule,\n FormsModule,\n AXFormModule,\n AXDecoratorModule,\n CommonModule,\n AXButtonModule,\n AXDialogModule,\n AXLoadingModule,\n AXTabsModule,\n AXTooltipModule,\n AXValidationModule,\n AXLabelModule,\n AXDropdownModule,\n AXDropdownButtonModule,\n AXTranslationModule,\n //\n AXPLayoutBuilderModule,\n AXPWidgetsModule,\n AXPGridLayoutDirective,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AXPEntityMasterCreateViewComponent extends AXBasePageComponent {\n protected vm!: AXPEntityMasterCreateViewModel;\n\n private container = viewChild(AXPWidgetContainerComponent);\n\n protected workflow = inject(AXPWorkflowService);\n\n ngAfterViewInit() {\n this.vm.builder = this.container()!.builderService;\n }\n\n protected handleCloseClick() {\n this.close();\n }\n\n protected async handleBackClick() {\n //await this.vm.executeCommand('back');\n }\n\n protected async handleNextClick(form: AXFormComponent) {\n // const formResult = await form.validate();\n // if (formResult.result) {\n // await this.vm.executeCommand('next');\n // }\n }\n\n protected async handleSaveClick(form: AXFormComponent) {\n const formResult = await form.validate();\n if (formResult.result) {\n try {\n const record = await this.vm.save();\n\n this.close({ save: true, recordId: record?.id, item: record, redirect: this.vm.redirect() });\n } catch (error) {\n console.log(error);\n }\n }\n }\n\n protected async handleSaveAndNewClick(form: AXFormComponent) {\n const formResult = await form.validate();\n if (formResult.result) {\n try {\n const record = await this.vm.save();\n this.close({ save: true, recordId: record?.id, item: record, redirect: false });\n await this.vm.createNewOne();\n } catch (error) {\n console.log(error);\n }\n }\n }\n\n protected async handleContextChange(e: AXPLayoutContextChangeEvent) {\n this.vm.context.set(e.data);\n }\n}\n","<div>\n <axp-widgets-container [context]=\"vm.context()\" (onContextChanged)=\"handleContextChange($event)\">\n <ax-form class=\"ax-flex ax-flex-col ax-gap-6 ax-p-4 ax-pb-8\" #form [messageStyle]=\"'bottom'\" [updateOn]=\"'blur'\">\n <!-- Begin Sections -->\n <div class=\"ax-grid ax-grid-cols-12 ax-gap-4\">\n @for(section of vm.sections(); track section.name()) {\n <div class=\"ax-col-span-12\">\n <ax-form #form>\n @if(vm.sections().length>1 && !section.description()) {\n <div class=\"ax-pb-4\">\n <span class=\"ax-font-bold ax-text-xl\">{{ section.title() | translate | async }}</span>\n @if(section.description()) {\n <p class=\"ax-text-sm ax-text-gray-500\">{{ section.description() }}</p>\n }\n </div>\n }\n <div class=\"ax-card-body !ax-grid !ax-grid-cols-12 !ax-gap-4\">\n @for(attr of section.elements(); track $index) {\n <ax-form-field class=\"ax-flex ax-flex-col ax-gap-1\" [gridLayout]=\"attr.layout()\"\n [class.ax-hidden]=\"widget.options()['visibility'] == false\">\n <ax-label class=\"ax-font-semibold ax-text-sm\" [required]=\"attr.isRequired()\">{{\n attr.title() | translate | async\n }}</ax-label>\n <ng-container axp-widget-renderer [node]=\"attr.node()\" [mode]=\"'edit'\"\n #widget=\"widgetRenderer\"></ng-container>\n </ax-form-field>\n }\n </div>\n </ax-form>\n </div>\n }\n </div>\n <!-- Finish Sections -->\n </ax-form>\n </axp-widgets-container>\n <ax-footer>\n <ax-suffix>\n <ax-button look=\"solid\" [color]=\"'default'\" [text]=\"'cancel' | translate | async\" (onClick)=\"handleCloseClick()\">\n </ax-button>\n @if(vm.canCreateNewOne()) {\n <ax-dropdown-button [disabled]=\"vm.isInProgress()\" color=\"primary\" [text]=\"'save' | translate | async\"\n look=\"solid\" (onClick)=\"handleSaveClick(form)\">\n <ax-loading *ngIf=\"vm.isInProgress()\"></ax-loading>\n <ax-button-item-list>\n <ax-button-item [text]=\"('save' | translate | async) + ' ' + ('create-new' | translate | async)\"\n (onClick)=\"handleSaveAndNewClick(form)\">\n </ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-button>\n }@else {\n <ax-button look=\"solid\" color=\"primary\" [text]=\"'save' | translate | async\" (onClick)=\"handleSaveClick(form)\">\n <ax-loading *ngIf=\"vm.isInProgress()\"></ax-loading>\n </ax-button>\n }\n </ax-suffix>\n </ax-footer>\n</div>"],"names":["i8","i9"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsDM,MAAO,kCAAmC,SAAQ,mBAAmB,CAAA;AAzB3E,IAAA,WAAA,GAAA;;AA4BU,QAAA,IAAA,CAAA,SAAS,GAAG,SAAS,CAAC,2BAA2B,CAAC;AAEhD,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,kBAAkB,CAAC;AAkDhD;IAhDC,eAAe,GAAA;QACb,IAAI,CAAC,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,EAAG,CAAC,cAAc;;IAG1C,gBAAgB,GAAA;QACxB,IAAI,CAAC,KAAK,EAAE;;AAGJ,IAAA,MAAM,eAAe,GAAA;;;IAIrB,MAAM,eAAe,CAAC,IAAqB,EAAA;;;;;;IAO3C,MAAM,eAAe,CAAC,IAAqB,EAAA;AACnD,QAAA,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE;AACxC,QAAA,IAAI,UAAU,CAAC,MAAM,EAAE;AACrB,YAAA,IAAI;gBACF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE;AAEnC,gBAAA,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC;;YAC5F,OAAO,KAAK,EAAE;AACd,gBAAA,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;;;;IAKd,MAAM,qBAAqB,CAAC,IAAqB,EAAA;AACzD,QAAA,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE;AACxC,QAAA,IAAI,UAAU,CAAC,MAAM,EAAE;AACrB,YAAA,IAAI;gBACF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE;gBACnC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;AAC/E,gBAAA,MAAM,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE;;YAC5B,OAAO,KAAK,EAAE;AACd,gBAAA,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;;;;IAKd,MAAM,mBAAmB,CAAC,CAA8B,EAAA;QAChE,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;;8GArDlB,kCAAkC,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kCAAkC,EAGf,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,2BAA2B,ECzD3D,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,mrFAwDM,EDxBF,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,EACZ,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,WAAW,EACX,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,EACZ,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,MAAA,EAAA,cAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAiB,qPAEjB,cAAc,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,UAAA,EAAA,OAAA,EAAA,MAAA,EAAA,MAAA,EAAA,YAAA,EAAA,UAAA,EAAA,UAAA,EAAA,MAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,EAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,MAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,QAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACd,cAAc,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACd,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,MAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACf,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACZ,eAAe,EACf,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,kBAAkB,EAClB,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,aAAa,EACb,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,KAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,gBAAgB,EAChB,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,sBAAsB,4SACtB,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA;;gBAEnB,sBAAsB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,2BAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,OAAA,EAAA,MAAA,EAAA,MAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACtB,gBAAgB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAChB,sBAAsB,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAIb,kCAAkC,EAAA,UAAA,EAAA,CAAA;kBAzB9C,SAAS;AAEC,YAAA,IAAA,EAAA,CAAA,EAAA,OAAA,EAAA;wBACP,YAAY;wBACZ,WAAW;wBACX,YAAY;wBACZ,iBAAiB;wBACjB,YAAY;wBACZ,cAAc;wBACd,cAAc;wBACd,eAAe;wBACf,YAAY;wBACZ,eAAe;wBACf,kBAAkB;wBAClB,aAAa;wBACb,gBAAgB;wBAChB,sBAAsB;wBACtB,mBAAmB;;wBAEnB,sBAAsB;wBACtB,gBAAgB;wBAChB,sBAAsB;qBACvB,EACgB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,mrFAAA,EAAA;;;;;"}