@wavemaker-ai/angular-codegen 1.0.0-rc.647469

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 (177) hide show
  1. package/.npmrc +1 -0
  2. package/angular-app/.npmrc +1 -0
  3. package/angular-app/angular.json +274 -0
  4. package/angular-app/build-scripts/build.js +36 -0
  5. package/angular-app/build-scripts/index-html-transform-ng-serve.ts +20 -0
  6. package/angular-app/build-scripts/index-html-transform.js +28 -0
  7. package/angular-app/build-scripts/optimize-css.gulpfile.js +101 -0
  8. package/angular-app/build-scripts/post-build.js +217 -0
  9. package/angular-app/build-scripts/update-version.js +25 -0
  10. package/angular-app/dependency-report.html +124 -0
  11. package/angular-app/generate-dependency-report.js +240 -0
  12. package/angular-app/npm-shrinkwrap.json +24224 -0
  13. package/angular-app/package-lock.json +24224 -0
  14. package/angular-app/package.json +129 -0
  15. package/angular-app/proxy.conf.js +14 -0
  16. package/angular-app/src/.browserslistrc +12 -0
  17. package/angular-app/src/app/app.component.css +0 -0
  18. package/angular-app/src/app/app.component.script.js +3 -0
  19. package/angular-app/src/app/app.component.variables.ts +3 -0
  20. package/angular-app/src/app/app.routes.ts +5 -0
  21. package/angular-app/src/app/lazy-load-scripts.resolve.ts +13 -0
  22. package/angular-app/src/app/prefabs/prefab-config.js +2 -0
  23. package/angular-app/src/app/wm-project-properties.ts +3 -0
  24. package/angular-app/src/assets/.gitkeep +0 -0
  25. package/angular-app/src/assets/print.css +32 -0
  26. package/angular-app/src/assets/styles/css/bootstrap.css.map +1 -0
  27. package/angular-app/src/assets/styles/css/font/summernote.eot +0 -0
  28. package/angular-app/src/assets/styles/css/font/summernote.ttf +0 -0
  29. package/angular-app/src/assets/styles/css/font/summernote.woff +0 -0
  30. package/angular-app/src/assets/styles/css/font/summernote.woff2 +0 -0
  31. package/angular-app/src/assets/styles/css/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  32. package/angular-app/src/assets/styles/css/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  33. package/angular-app/src/assets/styles/css/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  34. package/angular-app/src/assets/styles/css/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  35. package/angular-app/src/assets/styles/css/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  36. package/angular-app/src/assets/styles/css/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  37. package/angular-app/src/assets/styles/css/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  38. package/angular-app/src/assets/styles/css/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  39. package/angular-app/src/assets/styles/css/images/ui-icons_222222_256x240.png +0 -0
  40. package/angular-app/src/assets/styles/css/images/ui-icons_2e83ff_256x240.png +0 -0
  41. package/angular-app/src/assets/styles/css/images/ui-icons_444444_256x240.png +0 -0
  42. package/angular-app/src/assets/styles/css/images/ui-icons_454545_256x240.png +0 -0
  43. package/angular-app/src/assets/styles/css/images/ui-icons_555555_256x240.png +0 -0
  44. package/angular-app/src/assets/styles/css/images/ui-icons_777620_256x240.png +0 -0
  45. package/angular-app/src/assets/styles/css/images/ui-icons_777777_256x240.png +0 -0
  46. package/angular-app/src/assets/styles/css/images/ui-icons_888888_256x240.png +0 -0
  47. package/angular-app/src/assets/styles/css/images/ui-icons_cc0000_256x240.png +0 -0
  48. package/angular-app/src/assets/styles/css/images/ui-icons_cd0a0a_256x240.png +0 -0
  49. package/angular-app/src/assets/styles/css/images/ui-icons_ffffff_256x240.png +0 -0
  50. package/angular-app/src/assets/styles/css/wm-responsive.css +1 -0
  51. package/angular-app/src/assets/styles/css/wm-style.css +1 -0
  52. package/angular-app/src/assets/styles/fonts/FontAwesome.otf +0 -0
  53. package/angular-app/src/assets/styles/fonts/fontawesome-webfont.eot +0 -0
  54. package/angular-app/src/assets/styles/fonts/fontawesome-webfont.svg +2671 -0
  55. package/angular-app/src/assets/styles/fonts/fontawesome-webfont.ttf +0 -0
  56. package/angular-app/src/assets/styles/fonts/fontawesome-webfont.woff +0 -0
  57. package/angular-app/src/assets/styles/fonts/fontawesome-webfont.woff2 +0 -0
  58. package/angular-app/src/assets/styles/fonts/glyphicons-halflings-regular.eot +0 -0
  59. package/angular-app/src/assets/styles/fonts/glyphicons-halflings-regular.svg +288 -0
  60. package/angular-app/src/assets/styles/fonts/glyphicons-halflings-regular.ttf +0 -0
  61. package/angular-app/src/assets/styles/fonts/glyphicons-halflings-regular.woff +0 -0
  62. package/angular-app/src/assets/styles/fonts/glyphicons-halflings-regular.woff2 +0 -0
  63. package/angular-app/src/assets/styles/fonts/wavicon.eot +0 -0
  64. package/angular-app/src/assets/styles/fonts/wavicon.ttf +0 -0
  65. package/angular-app/src/assets/styles/fonts/wavicon.woff +0 -0
  66. package/angular-app/src/assets/styles/fonts/wm-streamline-light-icon.eot +0 -0
  67. package/angular-app/src/assets/styles/fonts/wm-streamline-light-icon.ttf +0 -0
  68. package/angular-app/src/assets/styles/fonts/wm-streamline-light-icon.woff +0 -0
  69. package/angular-app/src/assets/styles/fonts/wm-streamline-regular-icon.eot +0 -0
  70. package/angular-app/src/assets/styles/fonts/wm-streamline-regular-icon.ttf +0 -0
  71. package/angular-app/src/assets/styles/fonts/wm-streamline-regular-icon.woff +0 -0
  72. package/angular-app/src/assets/styles/images/live-sync-icon.png +0 -0
  73. package/angular-app/src/assets/styles/images/live-sync-touch-icon.png +0 -0
  74. package/angular-app/src/assets/styles/images/loader.gif +0 -0
  75. package/angular-app/src/assets/styles/images/spinner-small.gif +0 -0
  76. package/angular-app/src/assets/styles/images/ui-icons.png +0 -0
  77. package/angular-app/src/environments/environment.dev.ts +3 -0
  78. package/angular-app/src/environments/environment.prod.ts +3 -0
  79. package/angular-app/src/environments/environment.ts +16 -0
  80. package/angular-app/src/framework/services/app-extension.service.ts +20 -0
  81. package/angular-app/src/framework/services/app-js-provider.service.ts +15 -0
  82. package/angular-app/src/framework/services/app-variables-provider.service.ts +15 -0
  83. package/angular-app/src/framework/services/component-ref-provider.service.ts +44 -0
  84. package/angular-app/src/framework/services/customwidget-config-provider.service.ts +13 -0
  85. package/angular-app/src/framework/services/lazy-component-ref-provider.service.ts +56 -0
  86. package/angular-app/src/framework/services/prefab-config-provider.service.ts +13 -0
  87. package/angular-app/src/framework/util/lazy-module-routes.ts +4 -0
  88. package/angular-app/src/framework/util/page-util.ts +7 -0
  89. package/angular-app/src/index.html +17 -0
  90. package/angular-app/src/main.ts +70 -0
  91. package/angular-app/src/polyfills.ts +53 -0
  92. package/angular-app/src/setup-jest.js +121 -0
  93. package/angular-app/src/styles.css +1 -0
  94. package/angular-app/src/tsconfig.app.json +17 -0
  95. package/angular-app/src/tslint.json +17 -0
  96. package/angular-app/src/wm-namespace.js +13 -0
  97. package/angular-app/tsconfig.json +94 -0
  98. package/angular-app/tsconfig.web-app.json +81 -0
  99. package/angular-app/wm-custom-webpack.config.js +51 -0
  100. package/build-angular-app.js +522 -0
  101. package/build-util.js +89 -0
  102. package/dependencies/app.component.html +40 -0
  103. package/dependencies/custom-widgets-bundle.cjs.js +421 -0
  104. package/dependencies/expression-parser.cjs.js +30154 -0
  105. package/dependencies/pipe-provider.cjs.js +208853 -0
  106. package/dependencies/transpilation-web.cjs.js +106547 -0
  107. package/download-packages.js +197 -0
  108. package/generate-angular-app.js +41 -0
  109. package/npm-shrinkwrap.json +8093 -0
  110. package/package-lock.json +8093 -0
  111. package/package.json +44 -0
  112. package/pwa-assets/icons/icon-128x128.png +0 -0
  113. package/pwa-assets/icons/icon-144x144.png +0 -0
  114. package/pwa-assets/icons/icon-152x152.png +0 -0
  115. package/pwa-assets/icons/icon-192x192.png +0 -0
  116. package/pwa-assets/icons/icon-384x384.png +0 -0
  117. package/pwa-assets/icons/icon-512x512.png +0 -0
  118. package/pwa-assets/icons/icon-72x72.png +0 -0
  119. package/pwa-assets/icons/icon-96x96.png +0 -0
  120. package/pwa-assets/manifest.json +59 -0
  121. package/pwa-assets/ngsw-config.json +30 -0
  122. package/pwa-assets/wmsw-worker.js +24 -0
  123. package/src/codegen-args-cli.js +1 -0
  124. package/src/codegen-cli.js +1 -0
  125. package/src/codegen.js +1 -0
  126. package/src/copy-utils.js +1 -0
  127. package/src/eslintrc_config.js +1 -0
  128. package/src/expr-parser-utils.js +1 -0
  129. package/src/gen-app-codegen-module.js +1 -0
  130. package/src/gen-app-js.js +1 -0
  131. package/src/gen-app-override-css.js +1 -0
  132. package/src/gen-app-prefabs-module.js +1 -0
  133. package/src/gen-app-routes.js +1 -0
  134. package/src/gen-app-skeleton.js +1 -0
  135. package/src/gen-app-variables.js +1 -0
  136. package/src/gen-components.js +1 -0
  137. package/src/gen-customwidget-config.js +1 -0
  138. package/src/gen-index-html.js +1 -0
  139. package/src/gen-layouts.js +1 -0
  140. package/src/gen-lazy-module-routes.js +1 -0
  141. package/src/gen-prefabs.js +1 -0
  142. package/src/gen-pwa-files.js +1 -0
  143. package/src/gen-tsconfig.js +1 -0
  144. package/src/gen-wm-project-properties.js +1 -0
  145. package/src/handlebar-helpers.js +1 -0
  146. package/src/pages-util.js +1 -0
  147. package/src/project-meta.js +1 -0
  148. package/src/update-angular-json.js +1 -0
  149. package/src/wm-namespace.js +1 -0
  150. package/src/wm-utils.js +1 -0
  151. package/templates/app-codegen.module.ts.hbs +21 -0
  152. package/templates/app-prefabs.module.ts.hbs +31 -0
  153. package/templates/app-routes.ts.hbs +14 -0
  154. package/templates/app.component.script.js.hbs +8 -0
  155. package/templates/app.config.ts.hbs +211 -0
  156. package/templates/app.module.ts.hbs +294 -0
  157. package/templates/component.config.ts.hbs +1 -0
  158. package/templates/component.expressions.ts.hbs +3 -0
  159. package/templates/component.variables.ts.hbs +3 -0
  160. package/templates/customwidget/customwidget-config.ts.hbs +6 -0
  161. package/templates/customwidget/customwidget.component.script.js.hbs +3 -0
  162. package/templates/customwidget/customwidget.component.ts.hbs +42 -0
  163. package/templates/expr-vs-fn.hbs +3 -0
  164. package/templates/layout/layout.component.ts.hbs +55 -0
  165. package/templates/layout/layout.module.ts.hbs +42 -0
  166. package/templates/lazy-module-routes.ts.hbs +3 -0
  167. package/templates/page/page.component.script.js.hbs +3 -0
  168. package/templates/page/page.component.ts.hbs +74 -0
  169. package/templates/page/page.module.ts.hbs +61 -0
  170. package/templates/partial/partial.component.script.js.hbs +3 -0
  171. package/templates/partial/partial.component.ts.hbs +61 -0
  172. package/templates/partial/partial.module.ts.hbs +43 -0
  173. package/templates/prefab/prefab-config.ts.hbs +6 -0
  174. package/templates/prefab/prefab.component.script.js.hbs +3 -0
  175. package/templates/prefab/prefab.component.ts.hbs +63 -0
  176. package/templates/prefab/prefab.module.ts.hbs +38 -0
  177. package/templates/wm-project-properties.ts.hbs +7 -0
@@ -0,0 +1,211 @@
1
+ import { ApplicationConfig, importProvidersFrom, APP_INITIALIZER, LOCALE_ID } from "@angular/core";
2
+ import { provideRouter, RouteReuseStrategy, withComponentInputBinding, withHashLocation } from "@angular/router";
3
+ import { provideHttpClient, withXsrfConfiguration, HTTP_INTERCEPTORS, withInterceptorsFromDi } from "@angular/common/http";
4
+ import { provideAnimations } from "@angular/platform-browser/animations";
5
+ import { routes } from "./app.routes";
6
+ import { HttpServiceImpl } from "@wm/http";
7
+ import { SecurityService } from "@wm/security";
8
+ import { VariablesService, MetadataService } from "@wm/variables";
9
+ import { OAuthService } from "@wm/oAuth";
10
+ import { PageDirective{{#if enableSpa}}, SpaPageDirective{{/if}} } from "@wm/components/page";
11
+ import {
12
+ {{#if enableSecurity}}AuthGuard, RoleGuard, {{/if}}
13
+ AppJSProvider,
14
+ AppVariablesProvider,
15
+ ComponentRefProvider,
16
+ PrefabConfigProvider,
17
+ WmNgRouteReuseStrategy,
18
+ CanDeactivateNgPageGuard,
19
+ AppExtensionProvider,
20
+ CustomwidgetConfigProvider,
21
+ AppDefaultsService,
22
+ AppExtensionJSResolve,
23
+ AppJSResolve,
24
+ AppVariablesResolve,
25
+ AppBeforeLoadResolve,
26
+ I18nResolve,
27
+ AppManagerService,
28
+ AppRef,
29
+ I18nServiceImpl,
30
+ NavigationServiceImpl,
31
+ SpinnerServiceImpl,
32
+ ToasterServiceImpl,
33
+ DynamicComponentRefProviderService,
34
+ HttpCallInterceptor,
35
+ PrefabManagerService,
36
+ PipeService
37
+ } from "@wm/runtime/base";
38
+ import { AppJSProviderService } from "../framework/services/app-js-provider.service";
39
+ import { AppVariablesProviderService } from "../framework/services/app-variables-provider.service";
40
+ import { AppExtensionProviderService } from "../framework/services/app-extension.service";
41
+ import { ComponentRefProviderService } from "../framework/services/component-ref-provider.service";
42
+ import { PrefabConfigProviderService } from "../framework/services/prefab-config-provider.service";
43
+ import { CustomwidgetConfigProviderService } from "../framework/services/customwidget-config-provider.service";
44
+ import { LazyLoadScriptsResolve } from "./lazy-load-scripts.resolve";
45
+ import {
46
+ AbstractHttpService,
47
+ AbstractI18nService,
48
+ AbstractNavigationService,
49
+ AbstractSpinnerService,
50
+ AbstractToasterService,
51
+ App,
52
+ AppDefaults,
53
+ CustomWidgetRefProvider,
54
+ DynamicComponentRefProvider,
55
+ PartialRefProvider,
56
+ AbstractDialogService,
57
+ _WM_APP_PROJECT,
58
+ } from "@wm/core";
59
+ import { ModalModule } from "ngx-bootstrap/modal";
60
+ import { ToastNoAnimationModule } from "ngx-toastr";
61
+ import { BsDatepickerModule } from "ngx-bootstrap/datepicker";
62
+ import { NgCircleProgressModule } from "ng-circle-progress";
63
+ import { LocationStrategy, HashLocationStrategy, DatePipe, DecimalPipe } from "@angular/common";
64
+ import { CustomPipe, DialogServiceImpl, FilterPipe, ImagePipe, SanitizePipe, ToDatePipe, TrailingZeroDecimalPipe, TrustAsPipe } from "@wm/components/base";
65
+ import { initPrefabConfig } from "./prefabs/prefab-config";
66
+ {{#if isPwa}}
67
+ import { ServiceWorkerModule } from "@angular/service-worker";
68
+ import { environment } from "../environments/environment";
69
+ {{/if}}
70
+ {{#if isCSP}}
71
+ import { ɵSharedStylesHost } from '@angular/platform-browser';
72
+ import { ɵDomRendererFactory2 } from "@angular/platform-browser";
73
+ import { WMDomSharedStylesHost } from "@wm/runtime/base";
74
+ import { WMDomRendererFactory2 } from "@wm/runtime/base";
75
+ {{/if}}
76
+
77
+ const wmModules = [
78
+ importProvidersFrom(
79
+ ModalModule.forRoot(),
80
+ ToastNoAnimationModule.forRoot({ maxOpened: 1, autoDismiss: true }),
81
+ BsDatepickerModule.forRoot(),
82
+ NgCircleProgressModule.forRoot(),
83
+ {{#if isPwa}}
84
+ ServiceWorkerModule.register("wmsw-worker.js", { enabled: environment.production })
85
+ {{/if}}
86
+ )
87
+ ];
88
+ export const xsrfHeaderName = "{{xsrfTokenHeaderName}}";
89
+ export const isPrefabInitialized = initPrefabConfig();
90
+
91
+ const initializeProjectDetails = () => {
92
+ let cdnUrl = document.querySelector('[name="deployUrl"]') && document.querySelector('[name="deployUrl"]').getAttribute('content');
93
+ _WM_APP_PROJECT.isPreview = cdnUrl ? false : true;
94
+ const apiUrl = document.querySelector('[name="apiUrl"]') && document.querySelector('[name="apiUrl"]').getAttribute('content');
95
+ //for preview
96
+ if (!cdnUrl) {
97
+ cdnUrl = document.querySelector('[name="cdnUrl"]') && document.querySelector('[name="cdnUrl"]').getAttribute('content');
98
+ }
99
+ _WM_APP_PROJECT.id = location.href.split('/')[3];
100
+ // Integration with third party apps like in SSPA/WebComponents, this meta tag with cdnUrl will not be there then default it to ng-bundle/
101
+ _WM_APP_PROJECT.apiUrl = apiUrl || './';
102
+ _WM_APP_PROJECT.cdnUrl = cdnUrl || 'ng-bundle/';
103
+ _WM_APP_PROJECT.ngDest = 'ng-bundle/';
104
+ try {
105
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
106
+ //@ts-ignore
107
+ __webpack_require__.p = __webpack_public_path__ = cdnUrl;
108
+ } catch (e) {
109
+ //for app preview there is no webpack. Don't do anything.
110
+ }
111
+ };
112
+
113
+ export function InitializeApp(I18nService, AppJSResolve, AppBeforeLoadResolve, AppVariablesResolve, AppExtensionJSResolve) {
114
+ return async () => {
115
+ initializeProjectDetails();
116
+ await AppJSResolve.resolve();
117
+ await AppVariablesResolve.resolve();
118
+ await AppExtensionJSResolve.resolve();
119
+ await I18nService.loadDefaultLocale();
120
+ return AppBeforeLoadResolve.resolve();
121
+ };
122
+ }
123
+
124
+ export function setAngularLocale(I18nService) {
125
+ initializeProjectDetails();
126
+ return I18nService.deduceAppLocale();
127
+ }
128
+
129
+ export const appConfig: ApplicationConfig = {
130
+ providers: [
131
+ {
132
+ provide: HTTP_INTERCEPTORS,
133
+ useClass: HttpCallInterceptor,
134
+ multi: true
135
+ },
136
+ // Provide Angular core services
137
+ provideRouter(routes, withHashLocation(), withComponentInputBinding()),
138
+ provideHttpClient(
139
+ withInterceptorsFromDi(),
140
+ withXsrfConfiguration({
141
+ cookieName: "wm_xsrf_token",
142
+ headerName: xsrfHeaderName
143
+ })
144
+ ),
145
+ provideAnimations(),
146
+ // Provide application-specific services
147
+ {
148
+ provide: APP_INITIALIZER,
149
+ useFactory: InitializeApp,
150
+ deps: [AbstractI18nService, AppJSResolve, AppBeforeLoadResolve, AppVariablesResolve, AppExtensionJSResolve, PipeService],
151
+ multi: true
152
+ },
153
+ {
154
+ provide: LOCALE_ID,
155
+ useFactory: setAngularLocale,
156
+ deps: [AbstractI18nService]
157
+ },
158
+ { provide: AppJSProvider, useClass: AppJSProviderService },
159
+ { provide: AbstractDialogService, useClass: DialogServiceImpl },
160
+ { provide: AppVariablesProvider, useClass: AppVariablesProviderService },
161
+ { provide: AppExtensionProvider, useClass: AppExtensionProviderService },
162
+ { provide: ComponentRefProvider, useClass: ComponentRefProviderService },
163
+ { provide: CustomWidgetRefProvider, useClass: ComponentRefProviderService },
164
+ { provide: PrefabConfigProvider, useClass: PrefabConfigProviderService },
165
+ { provide: CustomwidgetConfigProvider, useClass: CustomwidgetConfigProviderService },
166
+ { provide: RouteReuseStrategy, useClass: WmNgRouteReuseStrategy },
167
+ { provide: LocationStrategy, useClass: HashLocationStrategy },
168
+ { provide: PartialRefProvider, useClass: ComponentRefProviderService },
169
+ { provide: AbstractI18nService, useClass: I18nServiceImpl },
170
+ { provide: AppDefaults, useClass: AppDefaultsService },
171
+ { provide: AbstractHttpService, useClass: HttpServiceImpl },
172
+ { provide: AbstractSpinnerService, useClass: SpinnerServiceImpl },
173
+ { provide: App, useClass: AppRef },
174
+ { provide: AbstractNavigationService, useClass: NavigationServiceImpl },
175
+ { provide: AbstractToasterService, useClass: ToasterServiceImpl },
176
+ { provide: DynamicComponentRefProvider, useClass: DynamicComponentRefProviderService, },
177
+ {{#if isCSP}}
178
+ { provide: ɵSharedStylesHost, useClass: WMDomSharedStylesHost },
179
+ { provide: ɵDomRendererFactory2, useClass: WMDomRendererFactory2 },
180
+ {{/if}}
181
+ PageDirective,
182
+ AppManagerService,
183
+ DatePipe,
184
+ {{#if enableSpa}}SpaPageDirective,{{/if}}
185
+ AppJSResolve,
186
+ AppExtensionJSResolve,
187
+ AppVariablesResolve,
188
+ AppBeforeLoadResolve,
189
+ PipeService,
190
+ I18nResolve,
191
+ SecurityService,
192
+ OAuthService,
193
+ VariablesService,
194
+ MetadataService,
195
+ PrefabManagerService,
196
+ SanitizePipe,
197
+ ToDatePipe,
198
+ FilterPipe,
199
+ TrailingZeroDecimalPipe,
200
+ TrustAsPipe,
201
+ DecimalPipe,
202
+ ImagePipe,
203
+ CustomPipe,
204
+ Location,
205
+ // Other application-wide services
206
+ CanDeactivateNgPageGuard,
207
+ LazyLoadScriptsResolve,
208
+ {{#if enableSecurity}}AuthGuard, RoleGuard, {{/if}}
209
+ ...wmModules
210
+ ]
211
+ };
@@ -0,0 +1,294 @@
1
+ import { NgModule, ModuleWithProviders } from '@angular/core';
2
+ import { BrowserModule } from '@angular/platform-browser';
3
+ import { CommonModule } from '@angular/common';
4
+ import { RouterModule, RouteReuseStrategy } from '@angular/router';
5
+ import { HttpClientModule, HttpClientXsrfModule } from '@angular/common/http';
6
+ import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
7
+ import { FormsModule, ReactiveFormsModule } from '@angular/forms';
8
+
9
+
10
+ import { ModalModule } from 'ngx-bootstrap/modal';
11
+ import { NgCircleProgressModule } from 'ng-circle-progress';
12
+ import { ToastNoAnimationModule } from 'ngx-toastr';
13
+ import { BsDatepickerModule } from 'ngx-bootstrap/datepicker';
14
+
15
+ {{#if loadAllComponents}}
16
+ // Basic widgets
17
+ import { BasicModule } from '@wm/components/basic';
18
+ import { ProgressModule } from '@wm/components/basic/progress';
19
+ import { RichTextEditorModule } from '@wm/components/basic/rich-text-editor';
20
+ import { SearchModule } from '@wm/components/basic/search';
21
+ import { TreeModule } from '@wm/components/basic/tree';
22
+
23
+ // input
24
+ import { InputModule } from '@wm/components/input';
25
+ import { CalendarModule } from '@wm/components/input/calendar';
26
+ import { ChipsModule } from '@wm/components/input/chips';
27
+ import { ColorPickerModule } from '@wm/components/input/color-picker';
28
+ import { CurrencyModule } from '@wm/components/input/currency';
29
+ import { EpochModule } from '@wm/components/input/epoch';
30
+ import { FileUploadModule } from '@wm/components/input/file-upload';
31
+ import { RatingModule } from '@wm/components/input/rating';
32
+ import { SliderModule } from '@wm/components/input/slider';
33
+
34
+ // Data
35
+ import { CardModule } from '@wm/components/data/card';
36
+ import { FormModule } from '@wm/components/data/form';
37
+ import { ListModule } from '@wm/components/data/list';
38
+ import { LiveTableModule } from '@wm/components/data/live-table';
39
+ import { PaginationModule } from '@wm/components/data/pagination';
40
+ import { TableModule } from '@wm/components/data/table';
41
+
42
+ //Chart
43
+ import { ChartModule } from '@wm/components/chart';
44
+
45
+ //Containers
46
+ import { AccordionModule } from '@wm/components/containers/accordion';
47
+ import { LinearLayoutModule } from '@wm/components/containers/linear-layout';
48
+ import { LayoutGridModule } from '@wm/components/containers/layout-grid';
49
+ import { PanelModule } from '@wm/components/containers/panel';
50
+ import { TabsModule } from '@wm/components/containers/tabs';
51
+ import { TileModule } from '@wm/components/containers/tile';
52
+ import { WizardModule } from '@wm/components/containers/wizard';
53
+
54
+ //Dialogs
55
+ import { AlertDialogModule } from '@wm/components/dialogs/alert-dialog';
56
+ import { IframeDialogModule } from '@wm/components/dialogs/iframe-dialog';
57
+ import { LoginDialogModule } from '@wm/components/dialogs/login-dialog';
58
+ import { PartialDialogModule } from '@wm/components/dialogs/partial-dialog';
59
+
60
+ // Navigation
61
+ import { BreadcrumbModule } from '@wm/components/navigation/breadcrumb';
62
+ import { MenuModule } from '@wm/components/navigation/menu';
63
+ import { NavbarModule } from '@wm/components/navigation/navbar';
64
+ import { PopoverModule } from '@wm/components/navigation/popover';
65
+
66
+ // Advanced
67
+ import { CarouselModule } from '@wm/components/advanced/carousel';
68
+ import { LoginModule } from '@wm/components/advanced/login';
69
+ import { MarqueeModule } from '@wm/components/advanced/marquee';
70
+
71
+ import { PageModule } from '@wm/components/page';
72
+ import { FooterModule } from '@wm/components/page/footer';
73
+ import { HeaderModule } from '@wm/components/page/header';
74
+ import { LeftPanelModule } from '@wm/components/page/left-panel';
75
+ import { RightPanelModule } from '@wm/components/page/right-panel';
76
+ import { TopNavModule } from '@wm/components/page/top-nav';
77
+
78
+ import { PrefabModule } from '@wm/components/prefab';
79
+ {{#if isMobileApp}}
80
+ import { BasicModule as MobileBasicModule} from '@wm/mobile/components/basic';
81
+ import { SearchModule as MobileSearchModule } from '@wm/mobile/components/basic/search';
82
+
83
+ import { SegmentedControlModule as MobileSegmentedControlModule } from '@wm/mobile/components/containers/segmented-control';
84
+
85
+ import { MediaListModule as MobileMediaListModule } from '@wm/mobile/components/data/media-list';
86
+
87
+ import { BarcodeScannerModule as MobileBarcodeScannerModule } from '@wm/mobile/components/device/barcode-scanner';
88
+ import { CameraModule as MobileCameraModule } from '@wm/mobile/components/device/camera';
89
+
90
+ import { FileUploadModule as MobileFileUploadModule } from '@wm/mobile/components/input/file-upload';
91
+
92
+ import { PageModule as MobilePageModule } from '@wm/mobile/components/page';
93
+ import { LeftPanelModule as MobileLeftPanelModule } from '@wm/mobile/components/page/left-panel';
94
+ import { MobileNavbarModule as MobileMobileNavbarModule } from '@wm/mobile/components/page/mobile-navbar';
95
+ import { TabBarModule as MobileTabBarModule } from '@wm/mobile/components/page/tab-bar';
96
+ {{/if}}
97
+ {{/if}}
98
+ import { CoreModule, PartialRefProvider, CustomWidgetRefProvider } from '@wm/core';
99
+ import {
100
+ AppComponent,
101
+ AppJSProvider,
102
+ AppVariablesProvider,
103
+ ComponentRefProvider,
104
+ PrefabConfigProvider,
105
+ CustomwidgetConfigProvider,
106
+ WmNgRouteReuseStrategy,
107
+ CanDeactivateNgPageGuard,
108
+ REQUIRED_MODULES_FOR_DYNAMIC_COMPONENTS,
109
+ AppExtensionProvider,
110
+ RuntimeBaseModule
111
+ } from '@wm/runtime/base';
112
+
113
+
114
+ import { routes } from './app.routes';
115
+ import { AppJSProviderService } from '../framework/services/app-js-provider.service';
116
+ import { AppVariablesProviderService } from '../framework/services/app-variables-provider.service';
117
+ import { AppExtensionProviderService } from '../framework/services/app-extension.service';
118
+ import { ComponentRefProviderService } from '../framework/services/component-ref-provider.service';
119
+ import { PrefabConfigProviderService } from '../framework/services/prefab-config-provider.service';
120
+ import { AppCodeGenModule, xsrfHeaderName } from './app-codegen.module';
121
+ import { LazyLoadScriptsResolve } from './lazy-load-scripts.resolve';
122
+ import { initPrefabConfig } from './prefabs/prefab-config';
123
+ import { CustomwidgetConfigProviderService } from '../framework/services/customwidget-config-provider.service';
124
+
125
+ {{#if isPwa}}
126
+ import { ServiceWorkerModule } from '@angular/service-worker';
127
+ import { environment } from '../environments/environment';
128
+ {{/if}}
129
+
130
+ export const modalModule = ModalModule.forRoot();
131
+ export const routerModule = RouterModule.forRoot(routes, {useHash: true, scrollPositionRestoration: 'top'});
132
+ export const toastrModule = ToastNoAnimationModule.forRoot({maxOpened: 1, autoDismiss: true });
133
+ export const bsDatePickerModule: ModuleWithProviders<any> = BsDatepickerModule.forRoot();
134
+ export const httpClientXsrfModule = HttpClientXsrfModule.withOptions({
135
+ cookieName: 'wm_xsrf_token',
136
+ headerName: xsrfHeaderName
137
+ });
138
+
139
+ export const ngCircleProgressModule: ModuleWithProviders<any> = NgCircleProgressModule.forRoot({});
140
+
141
+
142
+ {{#if loadAllComponents}}
143
+ const componentsModule = [
144
+ NgCircleProgressModule,
145
+
146
+ // Basic widgets
147
+ BasicModule,
148
+ ProgressModule,
149
+ RichTextEditorModule,
150
+ SearchModule,
151
+ TreeModule,
152
+
153
+ // Input
154
+ CalendarModule,
155
+ ChipsModule,
156
+ ColorPickerModule,
157
+ CurrencyModule,
158
+ EpochModule,
159
+ FileUploadModule,
160
+ InputModule,
161
+ RatingModule,
162
+ SliderModule,
163
+
164
+ // Data
165
+ CardModule,
166
+ FormModule,
167
+ ListModule,
168
+ LiveTableModule,
169
+ PaginationModule,
170
+ TableModule,
171
+
172
+ // chart
173
+ ChartModule,
174
+
175
+ // container modules
176
+ AccordionModule,
177
+ LinearLayoutModule,
178
+ LayoutGridModule,
179
+ PanelModule,
180
+ TabsModule,
181
+ TileModule,
182
+ WizardModule,
183
+
184
+ // dialogs
185
+ AlertDialogModule,
186
+ IframeDialogModule,
187
+ LoginDialogModule,
188
+ PartialDialogModule,
189
+
190
+ // navigation
191
+ BreadcrumbModule,
192
+ MenuModule,
193
+ NavbarModule,
194
+ PopoverModule,
195
+
196
+ //Advanced
197
+ CarouselModule,
198
+ LoginModule,
199
+ MarqueeModule,
200
+
201
+ PageModule,
202
+ FooterModule,
203
+ HeaderModule,
204
+ LeftPanelModule,
205
+ RightPanelModule,
206
+ TopNavModule,
207
+
208
+ PrefabModule
209
+ ];
210
+
211
+ {{#if isMobileApp}}
212
+ export const mobileComponentModules = [
213
+ MobileBasicModule,
214
+ MobileSearchModule,
215
+ MobileSegmentedControlModule,
216
+ MobileMediaListModule,
217
+ MobileBarcodeScannerModule,
218
+ MobileCameraModule,
219
+ MobileFileUploadModule,
220
+ MobilePageModule,
221
+ MobileLeftPanelModule,
222
+ MobileMobileNavbarModule,
223
+ MobileTabBarModule
224
+ ];
225
+ {{/if}}
226
+
227
+ REQUIRED_MODULES_FOR_DYNAMIC_COMPONENTS.push(...componentsModule);
228
+ REQUIRED_MODULES_FOR_DYNAMIC_COMPONENTS.push(FormsModule, ReactiveFormsModule);
229
+ {{#if isMobileApp}}
230
+ REQUIRED_MODULES_FOR_DYNAMIC_COMPONENTS.push(...mobileComponentModules);
231
+ {{/if}}
232
+ {{/if}}
233
+
234
+ import { HttpServiceModule } from "@wm/http";
235
+ import { SecurityModule } from "@wm/security";
236
+ import { WmComponentsModule } from "@wm/components/base";
237
+ import { VariablesModule } from "@wm/variables";
238
+ import { OAuthModule } from "@wm/oAuth";
239
+ import { PageDirective } from "@wm/components/page";
240
+
241
+ const WM_MODULES_FOR_ROOT = [
242
+ WmComponentsModule.forRoot(),
243
+ CoreModule.forRoot(),
244
+ SecurityModule.forRoot(),
245
+ OAuthModule.forRoot(),
246
+ VariablesModule.forRoot(),
247
+ HttpServiceModule.forRoot(),
248
+ RuntimeBaseModule.forRoot()
249
+ ];
250
+
251
+ export const isPrefabInitialized = initPrefabConfig();
252
+
253
+ @NgModule({
254
+ declarations: [],
255
+ imports: [
256
+ BrowserModule,
257
+ BrowserAnimationsModule,
258
+ CommonModule,
259
+ RouterModule,
260
+ HttpClientModule,
261
+
262
+ modalModule,
263
+
264
+ ngCircleProgressModule,
265
+
266
+ routerModule,
267
+ toastrModule,
268
+ httpClientXsrfModule,
269
+ bsDatePickerModule,
270
+
271
+ WM_MODULES_FOR_ROOT,
272
+ AppCodeGenModule,
273
+
274
+ {{#if isPwa}}
275
+ ServiceWorkerModule.register('wmsw-worker.js', { enabled: environment.production })
276
+ {{/if}}
277
+ ],
278
+ providers: [
279
+ {provide: AppJSProvider, useClass: AppJSProviderService},
280
+ {provide: AppVariablesProvider, useClass: AppVariablesProviderService},
281
+ {provide: AppExtensionProvider,useClass:AppExtensionProviderService},
282
+ {provide: ComponentRefProvider, useClass: ComponentRefProviderService},
283
+ {provide: PartialRefProvider, useClass: ComponentRefProviderService},
284
+ {provide: CustomWidgetRefProvider, useClass: ComponentRefProviderService},
285
+ {provide: PrefabConfigProvider, useClass: PrefabConfigProviderService},
286
+ {provide: CustomwidgetConfigProvider, useClass: CustomwidgetConfigProviderService},
287
+ {provide: RouteReuseStrategy, useClass: WmNgRouteReuseStrategy},
288
+ CanDeactivateNgPageGuard,
289
+ LazyLoadScriptsResolve,
290
+ PageDirective
291
+ ],
292
+ bootstrap: [AppComponent]
293
+ })
294
+ export class AppModule {}
@@ -0,0 +1 @@
1
+ export const config = {{config}};
@@ -0,0 +1,3 @@
1
+ export const expressionData = {
2
+ {{expressions}}
3
+ };
@@ -0,0 +1,3 @@
1
+ export const variables = {{variables}};
2
+
3
+ export const getVariables = () => JSON.parse(JSON.stringify(variables));
@@ -0,0 +1,6 @@
1
+ import { registerCustomWidgetConfig } from '../../framework/util/page-util';
2
+
3
+ export const initCustomWidgetConfig = () => {
4
+ {{registerCustomWidgetConfig customWidgetConfigMap}}
5
+ return true;
6
+ };
@@ -0,0 +1,3 @@
1
+ export const initScript = (Widget, App, Utils) => {
2
+ {{ jsContent }}
3
+ }
@@ -0,0 +1,42 @@
1
+ import { Component, Injector, Optional, ViewEncapsulation } from '@angular/core';
2
+
3
+ import { UserDefinedExecutionContext } from '@wm/core';
4
+
5
+ import { initScript } from './{{name}}.component.script';
6
+ import { getVariables } from './{{name}}.component.variables';
7
+ import { AppRef, BaseCustomWidgetComponent } from '@wm/runtime/base';
8
+ {{WMComponentsImportStmts requiredWMComponents}}
9
+
10
+ @Component({
11
+ standalone: true,
12
+ selector: 'app-custom-{{name}}',
13
+ templateUrl: './{{name}}.component.html',
14
+ styleUrls: ['./{{name}}.component.css'],
15
+ encapsulation: ViewEncapsulation.None,
16
+ imports: [ {{WMComponentModuleStmts requiredWMComponents}}],
17
+ providers: [
18
+ {
19
+ provide: UserDefinedExecutionContext,
20
+ useExisting: {{componentName}}
21
+ }
22
+ ]
23
+ })
24
+ export class {{componentName}} extends BaseCustomWidgetComponent {
25
+
26
+ override customWidgetName = '{{name}}';
27
+ [key: string]: any;
28
+ {{#if enableSpa}}spa = true;{{/if}}
29
+
30
+ constructor() {
31
+ super();
32
+ super.init();
33
+ }
34
+
35
+ getVariables() {
36
+ return getVariables();
37
+ }
38
+
39
+ evalUserScript(Widget, App, Utils) {
40
+ initScript(Widget, App, Utils);
41
+ }
42
+ }
@@ -0,0 +1,3 @@
1
+ "{{expr}}": [function({{fnArgs}}){
2
+ {{fnBody}}
3
+ },[{{fnPipes}}]]
@@ -0,0 +1,55 @@
1
+ import { Component, Injector, ViewEncapsulation } from '@angular/core';
2
+ import { UserDefinedExecutionContext } from '@wm/core';
3
+ import { BaseLayoutComponent } from '@wm/runtime/base';
4
+ import { expressionData } from './{{name}}.component.expressions';
5
+ import { CommonModule as NgCommonModule } from '@angular/common';
6
+ import { RouterOutletDirective } from '@wm/components/page';
7
+ import { RouterModule } from '@angular/router';
8
+ {{WMComponentsImportStmts requiredWMComponents}}
9
+
10
+ {{PartialModuleImportStmts requiredPartials}}
11
+
12
+ const requiredComponentModules = [
13
+ {{WMComponentModuleStmts requiredWMComponents}},
14
+ RouterOutletDirective
15
+ ];
16
+
17
+ const requiredPartialModules = [
18
+ {{PartialModuleStmts requiredPartials}}
19
+ ];
20
+
21
+
22
+ @Component({
23
+ selector: 'app-page-{{name}}',
24
+ templateUrl: './{{name}}.component.html',
25
+ encapsulation: ViewEncapsulation.None,
26
+ providers: [
27
+ {
28
+ provide: UserDefinedExecutionContext,
29
+ useExisting: {{componentName}}
30
+ }
31
+ ],
32
+ standalone: true,
33
+ imports: [
34
+ ...requiredComponentModules,
35
+ ...requiredPartialModules,
36
+ NgCommonModule,
37
+ RouterModule
38
+ ],
39
+ {{#if hasCustomElement}}
40
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
41
+ {{/if}}
42
+ })
43
+ export class {{componentName}} extends BaseLayoutComponent {
44
+ layoutName = '{{name}}';
45
+ layoutPages = {{layoutPages}};
46
+
47
+ constructor(public injector: Injector) {
48
+ super();
49
+ super.init();
50
+ }
51
+
52
+ getExpressions() {
53
+ return expressionData;
54
+ }
55
+ }
@@ -0,0 +1,42 @@
1
+ import { inject, NgModule } from '@angular/core';
2
+ import { CommonModule as NgCommonModule, APP_BASE_HREF } from '@angular/common';
3
+ import { Routes, RouterModule } from '@angular/router';
4
+
5
+ import { RuntimeBaseModule, AuthGuard, RoleGuard } from '@wm/runtime/base';
6
+
7
+ {{WMComponentsImportStmts requiredWMComponents}}
8
+
9
+ {{PartialModuleImportStmts requiredPartials}}
10
+
11
+ import { {{componentName}} } from './{{name}}.component';
12
+
13
+ const components = [{{componentName}}];
14
+
15
+ const routes: Routes = {{DefineLayoutRoutes name componentName pagesConfig securityConfig}};
16
+
17
+ const requiredComponentModules = [
18
+ {{WMComponentModuleStmts requiredWMComponents}}
19
+ ];
20
+
21
+ const requiredPartialModules = [
22
+ {{PartialModuleStmts requiredPartials}}
23
+ ];
24
+
25
+ @NgModule({
26
+ declarations: components,
27
+ imports: [
28
+ ...requiredComponentModules,
29
+ ...requiredPartialModules,
30
+ RouterModule.forChild(routes),
31
+ NgCommonModule,
32
+ RuntimeBaseModule
33
+ ],
34
+ {{#if hasCustomElement}}
35
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
36
+ {{/if}}
37
+ exports: components
38
+ })
39
+ export class {{moduleName}} {
40
+
41
+ }
42
+
@@ -0,0 +1,3 @@
1
+ export const prefabLazyModules = {{{DefinePrefabModules prefabModulesInfo}}};
2
+ export const partialLazyModules = {{{DefinePartialModules partialModulesInfo}}};
3
+ export const prefabPartialLazyModules = {{{DefinePrefabPartialModules prefabPartialInfo}}};
@@ -0,0 +1,3 @@
1
+ export const initScript = (Page, App, Utils) => {
2
+ {{ jsContent }}
3
+ }