@tuki-io/tuki-widgets 0.0.165 → 0.0.166

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 (99) hide show
  1. package/esm2020/contact-center/cc-readiness/cc-readiness.module.mjs +1 -1
  2. package/esm2020/contact-center/cc-readiness/cc-readiness.service.mjs +1 -1
  3. package/esm2020/contact-center/cc-readiness/widgets/licences-requirement/licences-requirement.component.mjs +3 -3
  4. package/esm2020/di2mt/shared/services/api.service.mjs +3 -3
  5. package/esm2020/di2mt/widgets/site-upgrade/progress-bar/progress-bar.component.mjs +3 -3
  6. package/esm2020/di2mt/widgets/site-upgrade/site-upgrade-data-table/site-upgrade-data-table.component.mjs +2 -2
  7. package/esm2020/di2mt/widgets/upgrade-overview/cards/pending-activation-users/pending-activation-users.component.mjs +17 -17
  8. package/esm2020/user-device-manage/src/app.constants.mjs +1 -1
  9. package/esm2020/user-device-manage/src/classes/deviceProfile.mjs +1 -1
  10. package/esm2020/user-device-manage/src/device-associated-line/device-associated-line-extension/device-associated-line-extension.component.mjs +3 -3
  11. package/esm2020/user-device-manage/src/device-info/device-info.component.mjs +3 -3
  12. package/esm2020/user-device-manage/src/device-manage-widget.component.mjs +2 -2
  13. package/esm2020/user-device-manage/src/lazy-loading-select/lazy-loading-select.component.mjs +3 -3
  14. package/esm2020/user-device-manage/src/pipes/mac-address.pipe.mjs +1 -1
  15. package/esm2020/user-device-manage/src/services/api.service.mjs +1 -1
  16. package/esm2020/user-device-manage/src/services/dns.service.mjs +1 -1
  17. package/esm2020/user-device-manage/src/services/line.service.mjs +2 -2
  18. package/esm2020/user-device-manage/src/services/user.service.mjs +1 -1
  19. package/esm2020/user-device-manage/src/shared/tk-page-section/page-section.component.mjs +1 -1
  20. package/esm2020/user-device-manage/src/utils/app-loader/app-loader.mjs +3 -3
  21. package/esm2020/user-manage/src/app.constants.mjs +1 -1
  22. package/esm2020/user-manage/src/classes/line-association-interface.mjs +1 -1
  23. package/esm2020/user-manage/src/classes/line-directory.mjs +1 -1
  24. package/esm2020/user-manage/src/classes/line.mjs +1 -1
  25. package/esm2020/user-manage/src/classes/pagination.mjs +1 -1
  26. package/esm2020/user-manage/src/classes/simplified-user.mjs +1 -1
  27. package/esm2020/user-manage/src/device-list/device-list.component.mjs +3 -3
  28. package/esm2020/user-manage/src/device-list/device-row/device-row.component.mjs +3 -3
  29. package/esm2020/user-manage/src/lazy-loading-select/lazy-loading-select.component.mjs +3 -3
  30. package/esm2020/user-manage/src/services/api.service.mjs +1 -1
  31. package/esm2020/user-manage/src/services/user.service.mjs +1 -1
  32. package/esm2020/user-manage/src/user-info/user-info.component.mjs +3 -3
  33. package/esm2020/user-manage/src/user-manage.module.mjs +1 -1
  34. package/esm2020/user-manage/src/utils/app-loader/app-loader.mjs +3 -3
  35. package/esm2020/users-list/src/app.constants.mjs +1 -1
  36. package/esm2020/users-list/src/classes/move-user.mjs +1 -1
  37. package/esm2020/users-list/src/components/table-toolbar/table-toolbar.component.mjs +3 -9
  38. package/esm2020/users-list/src/services/dns.service.mjs +1 -1
  39. package/esm2020/users-list/src/services/user.service.mjs +1 -1
  40. package/esm2020/users-list/src/users-list.component.mjs +3 -9
  41. package/esm2020/users-list/src/utils/app-loader/app-loader.mjs +3 -3
  42. package/fesm2015/tuki-io-tuki-widgets-contact-center.mjs +2 -2
  43. package/fesm2015/tuki-io-tuki-widgets-contact-center.mjs.map +1 -1
  44. package/fesm2015/tuki-io-tuki-widgets-di2mt.mjs +22 -22
  45. package/fesm2015/tuki-io-tuki-widgets-di2mt.mjs.map +1 -1
  46. package/fesm2015/tuki-io-tuki-widgets-user-device-manage.mjs +10 -10
  47. package/fesm2015/tuki-io-tuki-widgets-user-device-manage.mjs.map +1 -1
  48. package/fesm2015/tuki-io-tuki-widgets-user-manage.mjs +10 -10
  49. package/fesm2015/tuki-io-tuki-widgets-user-manage.mjs.map +1 -1
  50. package/fesm2015/tuki-io-tuki-widgets-users-list.mjs +6 -18
  51. package/fesm2015/tuki-io-tuki-widgets-users-list.mjs.map +1 -1
  52. package/fesm2020/tuki-io-tuki-widgets-contact-center.mjs +2 -2
  53. package/fesm2020/tuki-io-tuki-widgets-contact-center.mjs.map +1 -1
  54. package/fesm2020/tuki-io-tuki-widgets-di2mt.mjs +22 -22
  55. package/fesm2020/tuki-io-tuki-widgets-di2mt.mjs.map +1 -1
  56. package/fesm2020/tuki-io-tuki-widgets-user-device-manage.mjs +10 -10
  57. package/fesm2020/tuki-io-tuki-widgets-user-device-manage.mjs.map +1 -1
  58. package/fesm2020/tuki-io-tuki-widgets-user-manage.mjs +10 -10
  59. package/fesm2020/tuki-io-tuki-widgets-user-manage.mjs.map +1 -1
  60. package/fesm2020/tuki-io-tuki-widgets-users-list.mjs +6 -18
  61. package/fesm2020/tuki-io-tuki-widgets-users-list.mjs.map +1 -1
  62. package/package.json +1 -9
  63. package/user-device-manage/src/services/line.service.d.ts +1 -1
  64. package/users-list/src/components/table-toolbar/table-toolbar.component.d.ts +1 -3
  65. package/users-list/src/users-list.component.d.ts +1 -3
  66. package/esm2020/user-creation/public-api.mjs +0 -13
  67. package/esm2020/user-creation/src/app.constants.mjs +0 -16
  68. package/esm2020/user-creation/src/classes/site.mjs +0 -53
  69. package/esm2020/user-creation/src/shared/api/api.service.mjs +0 -86
  70. package/esm2020/user-creation/src/shared/material.module.mjs +0 -76
  71. package/esm2020/user-creation/src/shared/services/user-creation-api.service.mjs +0 -112
  72. package/esm2020/user-creation/src/shared/services/utils.mjs +0 -19
  73. package/esm2020/user-creation/src/shared/shared.module.mjs +0 -33
  74. package/esm2020/user-creation/src/user-creation.module.mjs +0 -69
  75. package/esm2020/user-creation/src/widgets/user-creation-wizard/components/user-details-step/user-details-step.component.mjs +0 -23
  76. package/esm2020/user-creation/src/widgets/user-creation-wizard/components/user-overview-step/user-overview-step.component.mjs +0 -19
  77. package/esm2020/user-creation/src/widgets/user-creation-wizard/components/user-template-step/user-template-step.component.mjs +0 -114
  78. package/esm2020/user-creation/src/widgets/user-creation-wizard/user-creation-wizard.component.mjs +0 -60
  79. package/esm2020/user-creation/src/widgets/user-creation-wizard/user-creation-wizard.service.mjs +0 -273
  80. package/esm2020/user-creation/tuki-io-tuki-widgets-user-creation.mjs +0 -5
  81. package/fesm2015/tuki-io-tuki-widgets-user-creation.mjs +0 -919
  82. package/fesm2015/tuki-io-tuki-widgets-user-creation.mjs.map +0 -1
  83. package/fesm2020/tuki-io-tuki-widgets-user-creation.mjs +0 -915
  84. package/fesm2020/tuki-io-tuki-widgets-user-creation.mjs.map +0 -1
  85. package/user-creation/index.d.ts +0 -5
  86. package/user-creation/public-api.d.ts +0 -2
  87. package/user-creation/src/app.constants.d.ts +0 -15
  88. package/user-creation/src/classes/site.d.ts +0 -203
  89. package/user-creation/src/shared/api/api.service.d.ts +0 -20
  90. package/user-creation/src/shared/material.module.d.ts +0 -15
  91. package/user-creation/src/shared/services/user-creation-api.service.d.ts +0 -24
  92. package/user-creation/src/shared/services/utils.d.ts +0 -1
  93. package/user-creation/src/shared/shared.module.d.ts +0 -10
  94. package/user-creation/src/user-creation.module.d.ts +0 -17
  95. package/user-creation/src/widgets/user-creation-wizard/components/user-details-step/user-details-step.component.d.ts +0 -8
  96. package/user-creation/src/widgets/user-creation-wizard/components/user-overview-step/user-overview-step.component.d.ts +0 -11
  97. package/user-creation/src/widgets/user-creation-wizard/components/user-template-step/user-template-step.component.d.ts +0 -37
  98. package/user-creation/src/widgets/user-creation-wizard/user-creation-wizard.component.d.ts +0 -18
  99. package/user-creation/src/widgets/user-creation-wizard/user-creation-wizard.service.d.ts +0 -87
@@ -1,915 +0,0 @@
1
- import * as i4 from '@angular/common';
2
- import { CommonModule } from '@angular/common';
3
- import * as i0 from '@angular/core';
4
- import { NgModule, Injectable, inject, Component, Input, EventEmitter, ViewEncapsulation, Output } from '@angular/core';
5
- import * as i3$1 from '@angular/forms';
6
- import { FormBuilder, Validators, FormControl, FormsModule, ReactiveFormsModule } from '@angular/forms';
7
- import * as i9 from '@angular/material/expansion';
8
- import { MatExpansionModule } from '@angular/material/expansion';
9
- import * as i8$1 from '@angular/material/radio';
10
- import { MatRadioModule } from '@angular/material/radio';
11
- import * as i3$2 from '@angular/material/stepper';
12
- import { MatStepperModule } from '@angular/material/stepper';
13
- import { MatProgressBarModule } from '@angular/material/progress-bar';
14
- import * as i3 from '@angular/material/table';
15
- import { MatTableModule } from '@angular/material/table';
16
- import { MatTooltipModule } from '@angular/material/tooltip';
17
- import { MatCheckboxModule } from '@angular/material/checkbox';
18
- import * as i4$1 from '@angular/material/button';
19
- import { MatButtonModule } from '@angular/material/button';
20
- import { MatIconModule } from '@angular/material/icon';
21
- import * as i5 from '@angular/material/form-field';
22
- import { MatFormFieldModule } from '@angular/material/form-field';
23
- import * as i6 from '@angular/material/input';
24
- import { MatInputModule } from '@angular/material/input';
25
- import * as i7 from '@angular/material/select';
26
- import { MatSelectModule } from '@angular/material/select';
27
- import { BehaviorSubject, tap, forkJoin, map, Subject, takeUntil, filter, startWith, switchMap, of } from 'rxjs';
28
- import * as i1 from '@angular/common/http';
29
- import { HttpHeaders, HttpClientModule } from '@angular/common/http';
30
- import { NgApexchartsModule } from 'ng-apexcharts';
31
- import * as i8 from '@angular/material/core';
32
-
33
- class MaterialModule {
34
- }
35
- MaterialModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MaterialModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
36
- MaterialModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: MaterialModule, imports: [MatProgressBarModule,
37
- MatTooltipModule,
38
- MatTableModule,
39
- MatCheckboxModule,
40
- MatButtonModule,
41
- MatIconModule,
42
- MatFormFieldModule,
43
- MatInputModule,
44
- MatSelectModule], exports: [MatProgressBarModule,
45
- MatTooltipModule,
46
- MatTableModule,
47
- MatCheckboxModule,
48
- MatButtonModule,
49
- MatIconModule,
50
- MatFormFieldModule,
51
- MatInputModule,
52
- MatSelectModule] });
53
- MaterialModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MaterialModule, imports: [MatProgressBarModule,
54
- MatTooltipModule,
55
- MatTableModule,
56
- MatCheckboxModule,
57
- MatButtonModule,
58
- MatIconModule,
59
- MatFormFieldModule,
60
- MatInputModule,
61
- MatSelectModule, MatProgressBarModule,
62
- MatTooltipModule,
63
- MatTableModule,
64
- MatCheckboxModule,
65
- MatButtonModule,
66
- MatIconModule,
67
- MatFormFieldModule,
68
- MatInputModule,
69
- MatSelectModule] });
70
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MaterialModule, decorators: [{
71
- type: NgModule,
72
- args: [{
73
- imports: [
74
- MatProgressBarModule,
75
- MatTooltipModule,
76
- MatTableModule,
77
- MatCheckboxModule,
78
- MatButtonModule,
79
- MatIconModule,
80
- MatFormFieldModule,
81
- MatInputModule,
82
- MatSelectModule
83
- ],
84
- exports: [
85
- MatProgressBarModule,
86
- MatTooltipModule,
87
- MatTableModule,
88
- MatCheckboxModule,
89
- MatButtonModule,
90
- MatIconModule,
91
- MatFormFieldModule,
92
- MatInputModule,
93
- MatSelectModule
94
- ]
95
- }]
96
- }] });
97
-
98
- const getSavableData = (model, exclude) => {
99
- let result = Object.keys(model);
100
- if (exclude && exclude.length) {
101
- result = result.filter(key => !exclude.some(item => item === key));
102
- }
103
- return result.reduce((result, key) => {
104
- if (model[key] instanceof Array && model[key].length && model[key][0].getSavableData) {
105
- result[key] = model[key].map((item) => item.getSavableData());
106
- }
107
- else if (model[key] instanceof Object && model[key].getSavableData) {
108
- result[key] = model[key].getSavableData();
109
- }
110
- else {
111
- result[key] = model[key];
112
- }
113
- return result;
114
- }, {});
115
- };
116
-
117
- class Site {
118
- constructor(site) {
119
- Object.assign(this, site);
120
- this.initForm();
121
- }
122
- initForm() {
123
- const formBuilder = new FormBuilder();
124
- const formSettings = {
125
- name: [this.name || '', [Validators.required]],
126
- shortName: [this.shortName || '', [Validators.required]],
127
- cucm: [this.cucm || ''],
128
- cuc: [this.cuc || ''],
129
- address1: [this.address1 || ''],
130
- zipCode: [this.country || ''],
131
- city: [this.city || ''],
132
- state: [this.state || ''],
133
- country: [this.country || '', [Validators.required]],
134
- isAfterTtu: [this.isAfterTtu || ''],
135
- ttuEnableDate: [this.ttuEnableDate || '']
136
- };
137
- this.form = formBuilder.group(formSettings);
138
- }
139
- getSavableData() {
140
- const nonSavableData = ['form'];
141
- return getSavableData(this, nonSavableData);
142
- }
143
- getId() {
144
- return this.id;
145
- }
146
- }
147
- class SiteDefaults {
148
- constructor(siteDefaults, isSharedLineSite) {
149
- this.routePartitionFilter = [];
150
- this.devicePoolFilter = [];
151
- this.cssFilter = [];
152
- this.voicemailProfileFilter = [];
153
- if (siteDefaults) {
154
- Object.assign(this, siteDefaults);
155
- this.enableEm = siteDefaults.enableEm === 'true';
156
- this.routePartitionFilter.sort();
157
- this.devicePoolFilter.sort();
158
- this.cssFilter.sort();
159
- this.voicemailProfileFilter.sort();
160
- }
161
- if (isSharedLineSite) {
162
- this.cssFilter = siteDefaults?.sharedSitesCssFilter || [];
163
- this.routePartitionFilter = siteDefaults?.sharedSitesRPFilter || [];
164
- }
165
- }
166
- }
167
-
168
- const API = {
169
- WEBEX_CHECK_CONTROL_HUB_INTEGRATION: "/webex/api/search/webex/customers/:customerId/controlhubexists",
170
- SITES: "/api/customers/:customerId/sites",
171
- SITE: "/dcp/api/sites/:siteId",
172
- DEVICE_TYPES: "/dcp/api/provision/options/:siteId/devicetypes",
173
- SITE_SETTINGS: "/dcp/api/sites/:siteId/settings",
174
- VM_USER_TEMPLATES: "/dcp/api/provision/options/:siteId/vmusertemplates",
175
- USER_TEMPLATES_UPLOAD_LIST: "/dcp/api/searchbulkupdate/uploadedusertemplatelist",
176
- USER_TEMPLATE_TOKEN: "/dcp/api/bulkupdate/:customerId/usertemplate/:id/token",
177
- };
178
- const USER_CREATION_TYPES = {
179
- CUCM: 'CUCM',
180
- MT: 'MT'
181
- };
182
- const MAX_INTEGER = 2147483647;
183
-
184
- class APIService {
185
- constructor(httpClient) {
186
- this.httpClient = httpClient;
187
- this.apiUrl = window.location.protocol + '//' + window.location.hostname + '/dcp';
188
- this.token = 'eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJhZG1pbkBjb3JyZW5ldC5jb20iLCJyb2xlcyI6IlNVUEVSX1VTRVIiLCJpYXQiOjE3NzM5MjU4NzAsImV4cCI6MTc3Mzk0Mzg3MH0.OFxsG5XvtI3zKpGtPSXVvDCkr3ls4k1Jp7_K1jO7V8Q';
189
- // this.apiUrl = window.location.protocol + '//' + window.location.host + '/dcp';
190
- this.apiUrl = 'https://dev.tuki.io';
191
- // this.apiUrl = 'http://localhost:8088/dcp';
192
- }
193
- fetch(url, params, cache) {
194
- const headers = this.getHeaders(cache);
195
- params = params || {};
196
- return this.httpClient.get(this.apiUrl + url, { params: this.prepareEncodedParams(params), headers });
197
- }
198
- post(url, body, params = {}) {
199
- body = body || null;
200
- const headers = this.getHeaders();
201
- return this.httpClient.post(this.apiUrl + url, body, { params: this.prepareEncodedParams(params), headers });
202
- }
203
- // use when response extended data is necessary:
204
- postExtended(url, body = null, params = {}, headers = {}) {
205
- headers = headers || this.getHeaders();
206
- return this.httpClient.post(this.apiUrl + url, body, {
207
- headers,
208
- observe: 'response',
209
- params: this.prepareEncodedParams(params)
210
- });
211
- }
212
- put(url, body = null, params = {}) {
213
- const headers = this.getHeaders();
214
- return this.httpClient.put(this.apiUrl + url, body, { headers, params: this.prepareEncodedParams(params) });
215
- }
216
- delete(url, params = {}) {
217
- const headers = this.getHeaders();
218
- return this.httpClient.delete(this.apiUrl + url, { headers, params: this.prepareEncodedParams(params) });
219
- }
220
- fetchPagination(url, pageSize, pageNumber, additionalParams = {}, cache) {
221
- const copyAdditionalParams = JSON.parse(JSON.stringify(additionalParams));
222
- const params = Object.assign(copyAdditionalParams, { size: pageSize.toString(), page: pageNumber.toString() });
223
- return this.fetch(url, params, cache);
224
- }
225
- prepareEncodedParams(params) {
226
- const result = {};
227
- if (!params) {
228
- return {};
229
- }
230
- for (const key of Object.keys(params)) {
231
- if (params[key]) {
232
- const stringParam = params[key].toString();
233
- result[key] = stringParam.includes('+') ? encodeURIComponent(stringParam) : stringParam;
234
- }
235
- }
236
- return result;
237
- }
238
- getHeaders(cache) {
239
- let headers = new HttpHeaders();
240
- if (cache) {
241
- headers = headers.append('_Cache', 'true ');
242
- }
243
- const token = this.token || this.getParameterByName('token');
244
- headers = headers.append('Authorization', 'Bearer ' + token);
245
- return headers;
246
- }
247
- getParameterByName(name, url = window.location.href) {
248
- name = name.replace(/[\[\]]/g, '\\$&');
249
- var regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)'), results = regex.exec(url);
250
- if (!results)
251
- return null;
252
- if (!results[2])
253
- return '';
254
- return decodeURIComponent(results[2].replace(/\+/g, ' '));
255
- }
256
- }
257
- APIService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: APIService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
258
- APIService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: APIService, providedIn: 'root' });
259
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: APIService, decorators: [{
260
- type: Injectable,
261
- args: [{
262
- providedIn: 'root'
263
- }]
264
- }], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
265
-
266
- class UserCreationApiService {
267
- constructor() {
268
- this._allSites = [];
269
- this.sitesListSubject$ = new BehaviorSubject([]);
270
- this.sitesList$ = this.sitesListSubject$.asObservable();
271
- this.templatesListSubject$ = new BehaviorSubject([]);
272
- this.templatesList$ = this.templatesListSubject$.asObservable();
273
- this.apiService = inject(APIService);
274
- }
275
- getSitesList() {
276
- }
277
- checkControlHubIntegration(customerId) {
278
- const URL = API.WEBEX_CHECK_CONTROL_HUB_INTEGRATION.replace(':customerId', String(customerId));
279
- return this.apiService.fetch(URL);
280
- // .pipe(this.handleError(true, true));
281
- }
282
- getAllCustomerSites(customerId, onlySitesWithLocation) {
283
- const params = {};
284
- if (onlySitesWithLocation) {
285
- params['onlySitesWithLocation'] = 'true';
286
- }
287
- return this.apiService.fetchPagination(API.SITES.replace(':customerId', String(customerId)), MAX_INTEGER, 0, params, false)
288
- .pipe(tap((res) => {
289
- // this._allSites = [];
290
- // if (res.pageData && res.pageData.length) {
291
- // this.assignAllSites(customerId, res.pageData);
292
- // }
293
- // this.allCustomerSites$.next(true);
294
- // return this._allSites;
295
- this.sitesListSubject$.next(res.pageData);
296
- }));
297
- // .pipe(this.handleError(true));
298
- }
299
- getSiteData(siteId) {
300
- // this.dataPending = true;
301
- return forkJoin([
302
- this.getSite(siteId),
303
- this.getDeviceTypes(siteId),
304
- this.getSiteDefaults(siteId, false),
305
- this.getVoiceMailUserTemplates(siteId)
306
- ]).pipe(tap(() => {
307
- // this.userFeaturesService.setDefaultUcProfile();
308
- }));
309
- }
310
- getSite(siteId, isEdit) {
311
- return this.apiService.fetch(API.SITE.replace(':siteId', String(siteId)), null, false)
312
- .pipe(map((siteData) => {
313
- const site = new Site(siteData);
314
- // if (isEdit) {
315
- // this.setEditSite(site);
316
- // } else {
317
- // this.setCurrentSite(site);
318
- // }
319
- return site;
320
- }));
321
- }
322
- getDeviceTypes(siteId) {
323
- return this.apiService.fetch(API.DEVICE_TYPES.replace(':siteId', String(siteId)), null, true);
324
- // .pipe(
325
- // map((types: string[]) => {
326
- // // this.deviceTypes = types)
327
- // })
328
- // );
329
- // .pipe(this.handleError(false, true));
330
- }
331
- getSiteDefaults(siteId, directAccess, sharedLineSiteIds) {
332
- const params = { directAccess: directAccess };
333
- // if (sharedLineSiteIds) {
334
- // params['sharedLineSiteIds'] = sharedLineSiteIds;
335
- // }
336
- return this.apiService.fetch(API.SITE_SETTINGS.replace(':siteId', String(siteId)), params);
337
- // .pipe(map((siteDefaults: SiteTemplateInterface) => {
338
- // // this.siteDefaults = new SiteDefaults(siteDefaults, !!sharedLineSiteIds);
339
- // // const copiedSiteDefaults = JSON.parse(JSON.stringify(siteDefaults));
340
- // // this.originalSiteDefaults = new SiteDefaults(copiedSiteDefaults, !!sharedLineSiteIds);
341
- // }));
342
- // .pipe(this.handleError(true, true));
343
- }
344
- getVoiceMailUserTemplates(siteId) {
345
- return this.apiService.fetch(API.VM_USER_TEMPLATES.replace(':siteId', String(siteId)), null, true)
346
- .pipe(map((templates) => {
347
- // this.voiceMailTemplates = templates;
348
- }));
349
- // .pipe(this.handleError(false, true));
350
- }
351
- fetchAllUserTemplates(siteId) {
352
- const params = {
353
- siteId: siteId,
354
- };
355
- return this.apiService.fetch(API.USER_TEMPLATES_UPLOAD_LIST, params)
356
- .pipe(tap((result) => {
357
- this.templatesListSubject$.next(result);
358
- }));
359
- }
360
- getUserTemplateToken(id, customerId) {
361
- return this.apiService.fetch(API.USER_TEMPLATE_TOKEN.replace(':customerId', customerId).replace(':id', id));
362
- // .pipe(this.handleError(false, true));
363
- }
364
- }
365
- UserCreationApiService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserCreationApiService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
366
- UserCreationApiService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserCreationApiService });
367
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserCreationApiService, decorators: [{
368
- type: Injectable
369
- }], ctorParameters: function () { return []; } });
370
-
371
- class SharedModule {
372
- }
373
- SharedModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SharedModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
374
- SharedModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: SharedModule, imports: [CommonModule,
375
- MaterialModule,
376
- NgApexchartsModule,
377
- HttpClientModule], exports: [MaterialModule] });
378
- SharedModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SharedModule, imports: [CommonModule,
379
- MaterialModule,
380
- NgApexchartsModule,
381
- HttpClientModule, MaterialModule] });
382
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SharedModule, decorators: [{
383
- type: NgModule,
384
- args: [{
385
- declarations: [],
386
- imports: [
387
- CommonModule,
388
- MaterialModule,
389
- NgApexchartsModule,
390
- HttpClientModule,
391
- ],
392
- exports: [
393
- MaterialModule
394
- ]
395
- }]
396
- }] });
397
-
398
- class UserCreationWizardService {
399
- constructor() {
400
- this.api = inject(UserCreationApiService);
401
- this.ldapTableColumns = ['userId', 'firstName', 'lastName', 'email', 'add'];
402
- this.userCreationTypes = ['CUCM', 'MT'];
403
- this.siteOptions = [];
404
- this.templateOptions = [];
405
- this.lineOptions = [];
406
- this.routePartitionOptions = [];
407
- this.deviceRows = [];
408
- this.ldapUsers = [];
409
- this.overviewUsers = [];
410
- this.overviewLines = [];
411
- this.overviewDevices = [];
412
- this.userDetailsForm = {
413
- userId: '',
414
- firstName: '',
415
- lastName: '',
416
- email: ''
417
- };
418
- this.lineSelections = [];
419
- this.deviceEntries = [];
420
- this.selectedSite = null;
421
- this.selectedTemplate = null;
422
- this.selectedUserCreationType = 'CUCM';
423
- this.loadPlaceholderData();
424
- }
425
- setSelectedSite(site) {
426
- this.selectedSite = site;
427
- }
428
- setSelectedTemplate(template) {
429
- this.selectedTemplate = template;
430
- this.rebuildOverviewUsers();
431
- }
432
- resetTemplateDrivenData() {
433
- this.lineOptions = [];
434
- this.routePartitionOptions = [];
435
- this.lineSelections = [];
436
- this.deviceEntries = [];
437
- this.deviceRows = [];
438
- this.rebuildOverviewLines();
439
- this.rebuildOverviewDevices();
440
- }
441
- applyTemplateTokenPayload(payload) {
442
- const template = this.extractTemplateFromTokenPayload(payload);
443
- const endUser = template?.endUser || {};
444
- const linesFromTemplate = Array.isArray(endUser.lines) ? endUser.lines : [];
445
- const devicesFromTemplate = Array.isArray(endUser.devices) ? endUser.devices : [];
446
- this.userDetailsForm = {
447
- userId: this.valueToString(endUser.userid),
448
- firstName: this.valueToString(endUser.firstName),
449
- lastName: this.valueToString(endUser.lastName),
450
- email: this.valueToString(endUser.email)
451
- };
452
- const mappedLineOptions = linesFromTemplate
453
- .map(line => ({
454
- number: this.valueToString(line?.directoryNumber?.directoryNumber),
455
- did: this.valueToString(line?.didPatterns?.[0]?.pattern || line?.directoryNumber?.directoryNumber),
456
- css: this.valueToString(typeof line?.callingSearchSpace === 'string'
457
- ? line.callingSearchSpace
458
- : line?.callingSearchSpace?.name),
459
- description: this.valueToString(line?.description)
460
- }))
461
- .filter(line => line.number.trim().length > 0);
462
- if (mappedLineOptions.length) {
463
- this.lineOptions = this.uniqueByNumber(mappedLineOptions);
464
- this.lineSelections = this.lineOptions.map(line => ({
465
- lineNumber: line.number,
466
- routePartitionName: linesFromTemplate.find(source => (source?.directoryNumber?.directoryNumber || '') === line.number)?.directoryNumber?.routePartitionName || null
467
- }));
468
- }
469
- else {
470
- const lineAssociations = devicesFromTemplate.flatMap(device => device.lineAssociations || []);
471
- const associatedLineOptions = lineAssociations
472
- .map(association => {
473
- const number = association?.directoryNumber?.directoryNumber || '';
474
- return {
475
- number,
476
- did: number,
477
- css: '',
478
- description: ''
479
- };
480
- })
481
- .filter(line => line.number.trim().length > 0);
482
- this.lineOptions = this.uniqueByNumber(associatedLineOptions);
483
- this.lineSelections = this.lineOptions.map(line => ({
484
- lineNumber: line.number,
485
- routePartitionName: lineAssociations.find(source => (source?.directoryNumber?.directoryNumber || '') === line.number)?.directoryNumber?.routePartitionName || null
486
- }));
487
- }
488
- const routePartitions = this.lineSelections
489
- .map(line => line.routePartitionName)
490
- .filter((value) => !!value && value.trim().length > 0);
491
- this.routePartitionOptions = this.uniqueStrings(routePartitions);
492
- this.deviceEntries = devicesFromTemplate.map(device => ({
493
- deviceType: this.valueToString(device.deviceType),
494
- protocol: this.valueToString(device.protocol),
495
- buttonTemplate: this.valueToString(device.buttonTemplate),
496
- name: this.valueToString(device.name)
497
- }));
498
- this.deviceRows = this.deviceEntries.map((_, index) => index + 1);
499
- this.rebuildOverviewUsers();
500
- this.rebuildOverviewLines();
501
- this.rebuildOverviewDevices();
502
- }
503
- setSelectedUserCreationType(type) {
504
- this.selectedUserCreationType = type;
505
- }
506
- setUserDetailsField(field, value) {
507
- this.userDetailsForm = {
508
- ...this.userDetailsForm,
509
- [field]: value
510
- };
511
- this.rebuildOverviewUsers();
512
- }
513
- setLineSelection(index, lineNumber) {
514
- if (!this.lineSelections[index]) {
515
- return;
516
- }
517
- this.lineSelections[index] = {
518
- ...this.lineSelections[index],
519
- lineNumber
520
- };
521
- this.rebuildOverviewLines();
522
- this.rebuildOverviewDevices();
523
- }
524
- setRoutePartitionSelection(index, routePartitionName) {
525
- if (!this.lineSelections[index]) {
526
- return;
527
- }
528
- this.lineSelections[index] = {
529
- ...this.lineSelections[index],
530
- routePartitionName
531
- };
532
- this.rebuildOverviewLines();
533
- }
534
- setDeviceName(index, name) {
535
- if (!this.deviceEntries[index]) {
536
- return;
537
- }
538
- this.deviceEntries[index] = {
539
- ...this.deviceEntries[index],
540
- name
541
- };
542
- this.rebuildOverviewDevices();
543
- }
544
- // Placeholder bootstrap until backend APIs are connected.
545
- loadPlaceholderData() {
546
- this.siteOptions = ['Site 1', 'Site 2', 'Site 3'];
547
- this.templateOptions = ['User 8851 Office'];
548
- this.lineOptions = [
549
- {
550
- number: '557046',
551
- did: '+13125557046',
552
- css: 'Atlanta_internal_css',
553
- description: ''
554
- }
555
- ];
556
- this.routePartitionOptions = ['Atlanta_internal_PT', 'Beijing_national_PT'];
557
- this.deviceRows = [1, 2];
558
- this.ldapUsers = [
559
- { userId: 'John.Doe', firstName: 'John', lastName: 'Doe', email: 'john.doe@car.west.io' },
560
- { userId: 'Jane.Smith', firstName: 'Jane', lastName: 'Smith', email: 'jane.smith@car.west.io' }
561
- ];
562
- this.lineSelections = [
563
- {
564
- lineNumber: this.lineOptions[0]?.number || null,
565
- routePartitionName: this.routePartitionOptions[0] || null
566
- }
567
- ];
568
- this.deviceEntries = [
569
- {
570
- deviceType: 'Cisco 8851',
571
- protocol: 'SIP',
572
- buttonTemplate: 'Standard 8851 SIP',
573
- name: ''
574
- },
575
- {
576
- deviceType: 'Cisco Unified Client Services Framework',
577
- protocol: 'SIP',
578
- buttonTemplate: 'Standard Client Services Framework',
579
- name: ''
580
- }
581
- ];
582
- this.selectedTemplate = this.selectedTemplate ?? null;
583
- this.rebuildOverviewUsers();
584
- this.rebuildOverviewLines();
585
- this.rebuildOverviewDevices();
586
- }
587
- rebuildOverviewUsers() {
588
- const userTemplate = this.selectedTemplate || '';
589
- const hasUserData = Object.values(this.userDetailsForm).some(value => value.trim().length > 0);
590
- this.overviewUsers = hasUserData
591
- ? [{
592
- userId: this.userDetailsForm.userId,
593
- firstName: this.userDetailsForm.firstName,
594
- lastName: this.userDetailsForm.lastName,
595
- email: this.userDetailsForm.email,
596
- userTemplate
597
- }]
598
- : [];
599
- }
600
- rebuildOverviewLines() {
601
- this.overviewLines = this.lineSelections
602
- .map(selection => {
603
- if (!selection?.lineNumber) {
604
- return null;
605
- }
606
- const selectedLine = this.lineOptions.find(line => line.number === selection.lineNumber);
607
- if (!selectedLine) {
608
- return null;
609
- }
610
- return {
611
- number: selectedLine.number,
612
- did: selectedLine.did,
613
- routePartitionName: selection.routePartitionName || this.routePartitionOptions[0] || '',
614
- css: selectedLine.css,
615
- description: selectedLine.description
616
- };
617
- })
618
- .filter((line) => !!line);
619
- }
620
- rebuildOverviewDevices() {
621
- const selectedLineNumbers = this.overviewLines.map(line => line.number).join(', ');
622
- this.overviewDevices = this.deviceEntries
623
- .filter(device => device.name.trim().length > 0 || device.deviceType.trim().length > 0)
624
- .map(device => ({
625
- name: device.name,
626
- deviceType: device.deviceType,
627
- lines: selectedLineNumbers,
628
- description: `${device.protocol} / ${device.buttonTemplate}`
629
- }));
630
- }
631
- extractTemplateFromTokenPayload(payload) {
632
- if (!payload || typeof payload !== 'object') {
633
- return null;
634
- }
635
- if (Array.isArray(payload)) {
636
- return payload[0] || null;
637
- }
638
- const firstKey = Object.keys(payload)[0];
639
- return firstKey ? payload[firstKey] : null;
640
- }
641
- uniqueByNumber(lines) {
642
- const seen = new Set();
643
- return lines.filter(line => {
644
- if (seen.has(line.number)) {
645
- return false;
646
- }
647
- seen.add(line.number);
648
- return true;
649
- });
650
- }
651
- uniqueStrings(items) {
652
- return Array.from(new Set(items));
653
- }
654
- valueToString(value) {
655
- return typeof value === 'string' ? value : '';
656
- }
657
- // TODO: replace placeholders with real API integration.
658
- loadDataFromApi() {
659
- // this.api.getWizardBootstrapData().subscribe(...)
660
- }
661
- }
662
- UserCreationWizardService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserCreationWizardService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
663
- UserCreationWizardService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserCreationWizardService });
664
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserCreationWizardService, decorators: [{
665
- type: Injectable
666
- }], ctorParameters: function () { return []; } });
667
-
668
- class UserDetailsStepComponent {
669
- constructor(userCreationWizardService) {
670
- this.userCreationWizardService = userCreationWizardService;
671
- }
672
- }
673
- UserDetailsStepComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserDetailsStepComponent, deps: [{ token: UserCreationWizardService }], target: i0.ɵɵFactoryTarget.Component });
674
- UserDetailsStepComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: UserDetailsStepComponent, selector: "tk-user-details-step", ngImport: i0, template: "<section class=\"details-step-content\">\r\n <div class=\"details-step-sections\">\r\n <section class=\"details-step-section\">\r\n <h3 class=\"details-step-section__title\">User details</h3>\r\n <div class=\"details-step-section__content\">\r\n <div class=\"details-step-section__part\">\r\n <div class=\"details-inline-fields\">\r\n <div class=\"details-inline-field\">\r\n <label class=\"details-inline-field__label\">User ID</label>\r\n <mat-form-field class=\"details-step-input\" appearance=\"outline\">\r\n <input\r\n matInput\r\n placeholder=\"User ID\"\r\n [value]=\"userCreationWizardService.userDetailsForm.userId\"\r\n (input)=\"userCreationWizardService.setUserDetailsField('userId', $any($event.target).value)\"\r\n />\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"details-inline-field\">\r\n <label class=\"details-inline-field__label\">First Name</label>\r\n <mat-form-field class=\"details-step-input\" appearance=\"outline\">\r\n <input\r\n matInput\r\n placeholder=\"First Name\"\r\n [value]=\"userCreationWizardService.userDetailsForm.firstName\"\r\n (input)=\"userCreationWizardService.setUserDetailsField('firstName', $any($event.target).value)\"\r\n />\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"details-inline-field\">\r\n <label class=\"details-inline-field__label\">Last Name</label>\r\n <mat-form-field class=\"details-step-input\" appearance=\"outline\">\r\n <input\r\n matInput\r\n placeholder=\"Last Name\"\r\n [value]=\"userCreationWizardService.userDetailsForm.lastName\"\r\n (input)=\"userCreationWizardService.setUserDetailsField('lastName', $any($event.target).value)\"\r\n />\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"details-inline-field\">\r\n <label class=\"details-inline-field__label\">Email</label>\r\n <mat-form-field class=\"details-step-input\" appearance=\"outline\">\r\n <input\r\n matInput\r\n placeholder=\"Email\"\r\n [value]=\"userCreationWizardService.userDetailsForm.email\"\r\n (input)=\"userCreationWizardService.setUserDetailsField('email', $any($event.target).value)\"\r\n />\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"details-inline-field\">\r\n <label class=\"details-inline-field__label\">User Template</label>\r\n <mat-form-field class=\"details-step-input\" appearance=\"outline\">\r\n <input\r\n matInput\r\n placeholder=\"User Template\"\r\n [value]=\"userCreationWizardService.selectedTemplate || ''\"\r\n [disabled]=\"true\"\r\n />\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"details-step-section__part\">\r\n <mat-accordion class=\"details-user-accordion\">\r\n <mat-expansion-panel togglePosition=\"before\">\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>Choose an existing or a LDAP user</mat-panel-title>\r\n </mat-expansion-panel-header>\r\n <div class=\"details-user-accordion__content\">\r\n <table mat-table [dataSource]=\"userCreationWizardService.ldapUsers\" class=\"details-ldap-table\">\r\n <ng-container matColumnDef=\"userId\">\r\n <th mat-header-cell *matHeaderCellDef>User ID</th>\r\n <td mat-cell *matCellDef=\"let row\">{{ row.userId }}</td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"firstName\">\r\n <th mat-header-cell *matHeaderCellDef>First Name</th>\r\n <td mat-cell *matCellDef=\"let row\">{{ row.firstName }}</td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"lastName\">\r\n <th mat-header-cell *matHeaderCellDef>Last Name</th>\r\n <td mat-cell *matCellDef=\"let row\">{{ row.lastName }}</td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"email\">\r\n <th mat-header-cell *matHeaderCellDef>Email</th>\r\n <td mat-cell *matCellDef=\"let row\">{{ row.email }}</td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"add\">\r\n <th mat-header-cell *matHeaderCellDef>Add</th>\r\n <td mat-cell *matCellDef>\r\n <button mat-button class=\"details-ldap-table__add-btn\" type=\"button\">Add user</button>\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"userCreationWizardService.ldapTableColumns\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: userCreationWizardService.ldapTableColumns;\"></tr>\r\n </table>\r\n </div>\r\n </mat-expansion-panel>\r\n </mat-accordion>\r\n </div>\r\n </div>\r\n </section>\r\n\r\n <section class=\"details-step-section\">\r\n <h3 class=\"details-step-section__title\">Lines</h3>\r\n <div class=\"details-step-section__content\">\r\n <div class=\"line-route-list\">\r\n <div class=\"line-route-row\" *ngFor=\"let lineSelection of userCreationWizardService.lineSelections; let idx = index\">\r\n <div class=\"line-route-field\">\r\n <mat-form-field class=\"details-step-select line-route-select\" appearance=\"outline\">\r\n <mat-select\r\n placeholder=\"Select line\"\r\n [value]=\"lineSelection.lineNumber\"\r\n (selectionChange)=\"userCreationWizardService.setLineSelection(idx, $event.value)\"\r\n >\r\n <mat-option *ngFor=\"let line of userCreationWizardService.lineOptions\" [value]=\"line.number\">\r\n {{ line.number }} - {{ line.did }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"line-route-field\">\r\n <mat-form-field class=\"details-step-select line-route-select\" appearance=\"outline\">\r\n <mat-select\r\n placeholder=\"Select route partition\"\r\n [value]=\"lineSelection.routePartitionName\"\r\n (selectionChange)=\"userCreationWizardService.setRoutePartitionSelection(idx, $event.value)\"\r\n >\r\n <mat-option *ngFor=\"let partition of userCreationWizardService.routePartitionOptions\" [value]=\"partition\">\r\n {{ partition }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n\r\n <section class=\"details-step-section\">\r\n <h3 class=\"details-step-section__title\">Devices</h3>\r\n <div class=\"details-step-section__content\">\r\n <div class=\"devices-rows\">\r\n <div class=\"details-inline-fields details-inline-fields--four\" *ngFor=\"let _row of userCreationWizardService.deviceRows; let idx = index\">\r\n <div class=\"details-inline-field\">\r\n <label class=\"details-inline-field__label\">Device type</label>\r\n <mat-form-field class=\"details-step-input\" appearance=\"outline\">\r\n <input\r\n matInput\r\n placeholder=\"Device type\"\r\n [value]=\"userCreationWizardService.deviceEntries[idx].deviceType || ''\"\r\n [disabled]=\"true\"\r\n />\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"details-inline-field\">\r\n <label class=\"details-inline-field__label\">Protocol</label>\r\n <mat-form-field class=\"details-step-input\" appearance=\"outline\">\r\n <input\r\n matInput\r\n placeholder=\"Protocol\"\r\n [value]=\"userCreationWizardService.deviceEntries[idx].protocol || ''\"\r\n [disabled]=\"true\"\r\n />\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"details-inline-field\">\r\n <label class=\"details-inline-field__label\">Button Template</label>\r\n <mat-form-field class=\"details-step-input\" appearance=\"outline\">\r\n <input\r\n matInput\r\n placeholder=\"Button Template\"\r\n [value]=\"userCreationWizardService.deviceEntries[idx].buttonTemplate || ''\"\r\n [disabled]=\"true\"\r\n />\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"details-inline-field\">\r\n <label class=\"details-inline-field__label\">Name</label>\r\n <mat-form-field class=\"details-step-input\" appearance=\"outline\">\r\n <input\r\n matInput\r\n placeholder=\"Name\"\r\n [value]=\"userCreationWizardService.deviceEntries[idx].name || ''\"\r\n (input)=\"userCreationWizardService.setDeviceName(idx, $any($event.target).value)\"\r\n />\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n </div>\r\n</section>\r\n", styles: [".details-step-content{display:flex;flex-direction:column;gap:0}.details-step-dropdowns{display:flex;flex-direction:column;gap:1rem}.details-step-field{display:flex;flex-direction:column;gap:8px}.details-step-label{font-size:16px;font-weight:400;line-height:100%;letter-spacing:0;color:#333}.details-step-select{width:333px}.details-step-divider{border-top:1px solid #d9d9d9;margin-top:24px}.details-step-sections{display:flex;flex-direction:column}.details-step-section{display:flex;flex-direction:column;gap:0;padding:24px 0}.details-step-sections>.details-step-section:first-child{padding-top:0}.details-step-section+.details-step-section{border-top:1px solid #d9d9d9}.details-step-section__title{margin:0;font-family:Inter,sans-serif;font-size:16px;font-weight:600;line-height:100%;letter-spacing:0;color:#333}.details-step-section__content{margin-top:24px}.details-step-section__part+.details-step-section__part{margin-top:24px}.details-user-accordion{width:100%}.details-user-accordion__content{padding:12px 0 0}.details-ldap-table{width:100%}.details-ldap-table__add-btn{min-width:0;padding:0;font-family:Inter,sans-serif;font-size:14px;font-weight:500;line-height:20px;letter-spacing:0;color:#0d56aa}:host ::ng-deep .details-ldap-table .mat-header-cell{font-family:Inter,sans-serif;font-size:12px;font-weight:500;line-height:16px;letter-spacing:0;color:#737480;height:30px;padding:7px 8px}:host ::ng-deep .details-ldap-table .mat-cell{font-family:Inter,sans-serif;font-size:14px;font-weight:400;line-height:20px;letter-spacing:0;color:#333;height:40px;padding:8px}.details-inline-fields{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px}.details-inline-fields--four{grid-template-columns:repeat(4,minmax(0,1fr))}.devices-rows{display:flex;flex-direction:column;gap:24px}.details-inline-field{display:flex;flex-direction:column;gap:4px}.details-inline-field__label{color:#c0c2ce;font-size:12px;font-weight:400;line-height:16px;letter-spacing:0}.details-step-input{width:100%}.line-route-list{display:flex;flex-direction:column;gap:16px}.line-route-row{display:flex;gap:16px}.line-route-field{display:flex;flex-direction:column;gap:0}.line-route-select{width:185px}:host ::ng-deep .details-step-select .mat-form-field-wrapper{padding-bottom:0}:host ::ng-deep .details-step-input .mat-form-field-wrapper{padding-bottom:0}:host ::ng-deep .details-step-select .mat-form-field-flex{align-items:center;height:32px;border:1px solid #767676;border-radius:6px;padding:0 12px}:host ::ng-deep .details-step-input .mat-form-field-flex{align-items:center;height:36px;border:1px solid #767676;border-radius:4px;padding:10px 8px}:host ::ng-deep .details-step-select .mat-form-field-outline,:host ::ng-deep .details-step-select .mat-form-field-outline-start,:host ::ng-deep .details-step-select .mat-form-field-outline-end,:host ::ng-deep .details-step-select .mat-form-field-outline-gap{display:none}:host ::ng-deep .details-step-input .mat-form-field-outline,:host ::ng-deep .details-step-input .mat-form-field-outline-start,:host ::ng-deep .details-step-input .mat-form-field-outline-end,:host ::ng-deep .details-step-input .mat-form-field-outline-gap{display:none}:host ::ng-deep .details-step-select .mat-form-field-infix{width:100%;border-top:0;padding:0}:host ::ng-deep .details-step-input .mat-form-field-infix{width:100%;border-top:0;padding:0}:host ::ng-deep .details-step-select .mat-select-trigger{display:flex;align-items:center;justify-content:space-between;height:100%}:host ::ng-deep .details-step-input .mat-input-element{height:100%;margin:0}:host ::ng-deep .details-step-input.mat-form-field-disabled .mat-form-field-flex{background-color:#f5f6fa;border-color:#b8beca;opacity:.55;cursor:not-allowed}:host ::ng-deep .details-step-input .mat-input-element:disabled{color:#7f8694;-webkit-text-fill-color:#7f8694;cursor:not-allowed}:host ::ng-deep .details-user-accordion .mat-expansion-panel{border:0;border-radius:0!important;background:transparent;box-shadow:none!important}:host ::ng-deep .details-user-accordion .mat-expansion-panel-header{padding:0 0 0 8px;min-height:32px;height:32px}:host ::ng-deep .details-user-accordion .mat-expansion-panel-header-title{margin:0;display:flex;align-items:center;font-family:Inter,sans-serif;font-size:14px;font-weight:500;line-height:20px;letter-spacing:0;color:#333}:host ::ng-deep .details-user-accordion .mat-expansion-panel-body{padding:0!important}:host ::ng-deep .details-user-accordion .mat-expansion-panel-header .mat-content{display:flex;align-items:center}:host ::ng-deep .details-user-accordion .mat-expansion-panel-header .mat-expansion-indicator{display:block!important;opacity:1!important;color:#333!important;align-self:center;margin:0 8px 0 0!important}:host ::ng-deep .details-user-accordion .mat-expansion-panel-header .mat-expansion-indicator:after{color:#333!important;border-color:#333!important;position:relative;top:-4px}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i3.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i3.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i3.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i3.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i3.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i3.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i3.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i3.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i3.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i3.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i4$1.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i6.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i7.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i8.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i9.MatAccordion, selector: "mat-accordion", inputs: ["multi", "hideToggle", "displayMode", "togglePosition"], exportAs: ["matAccordion"] }, { kind: "component", type: i9.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["disabled", "expanded", "hideToggle", "togglePosition"], outputs: ["opened", "closed", "expandedChange", "afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "component", type: i9.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["tabIndex", "expandedHeight", "collapsedHeight"] }, { kind: "directive", type: i9.MatExpansionPanelTitle, selector: "mat-panel-title" }] });
675
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserDetailsStepComponent, decorators: [{
676
- type: Component,
677
- args: [{ selector: 'tk-user-details-step', template: "<section class=\"details-step-content\">\r\n <div class=\"details-step-sections\">\r\n <section class=\"details-step-section\">\r\n <h3 class=\"details-step-section__title\">User details</h3>\r\n <div class=\"details-step-section__content\">\r\n <div class=\"details-step-section__part\">\r\n <div class=\"details-inline-fields\">\r\n <div class=\"details-inline-field\">\r\n <label class=\"details-inline-field__label\">User ID</label>\r\n <mat-form-field class=\"details-step-input\" appearance=\"outline\">\r\n <input\r\n matInput\r\n placeholder=\"User ID\"\r\n [value]=\"userCreationWizardService.userDetailsForm.userId\"\r\n (input)=\"userCreationWizardService.setUserDetailsField('userId', $any($event.target).value)\"\r\n />\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"details-inline-field\">\r\n <label class=\"details-inline-field__label\">First Name</label>\r\n <mat-form-field class=\"details-step-input\" appearance=\"outline\">\r\n <input\r\n matInput\r\n placeholder=\"First Name\"\r\n [value]=\"userCreationWizardService.userDetailsForm.firstName\"\r\n (input)=\"userCreationWizardService.setUserDetailsField('firstName', $any($event.target).value)\"\r\n />\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"details-inline-field\">\r\n <label class=\"details-inline-field__label\">Last Name</label>\r\n <mat-form-field class=\"details-step-input\" appearance=\"outline\">\r\n <input\r\n matInput\r\n placeholder=\"Last Name\"\r\n [value]=\"userCreationWizardService.userDetailsForm.lastName\"\r\n (input)=\"userCreationWizardService.setUserDetailsField('lastName', $any($event.target).value)\"\r\n />\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"details-inline-field\">\r\n <label class=\"details-inline-field__label\">Email</label>\r\n <mat-form-field class=\"details-step-input\" appearance=\"outline\">\r\n <input\r\n matInput\r\n placeholder=\"Email\"\r\n [value]=\"userCreationWizardService.userDetailsForm.email\"\r\n (input)=\"userCreationWizardService.setUserDetailsField('email', $any($event.target).value)\"\r\n />\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"details-inline-field\">\r\n <label class=\"details-inline-field__label\">User Template</label>\r\n <mat-form-field class=\"details-step-input\" appearance=\"outline\">\r\n <input\r\n matInput\r\n placeholder=\"User Template\"\r\n [value]=\"userCreationWizardService.selectedTemplate || ''\"\r\n [disabled]=\"true\"\r\n />\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"details-step-section__part\">\r\n <mat-accordion class=\"details-user-accordion\">\r\n <mat-expansion-panel togglePosition=\"before\">\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>Choose an existing or a LDAP user</mat-panel-title>\r\n </mat-expansion-panel-header>\r\n <div class=\"details-user-accordion__content\">\r\n <table mat-table [dataSource]=\"userCreationWizardService.ldapUsers\" class=\"details-ldap-table\">\r\n <ng-container matColumnDef=\"userId\">\r\n <th mat-header-cell *matHeaderCellDef>User ID</th>\r\n <td mat-cell *matCellDef=\"let row\">{{ row.userId }}</td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"firstName\">\r\n <th mat-header-cell *matHeaderCellDef>First Name</th>\r\n <td mat-cell *matCellDef=\"let row\">{{ row.firstName }}</td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"lastName\">\r\n <th mat-header-cell *matHeaderCellDef>Last Name</th>\r\n <td mat-cell *matCellDef=\"let row\">{{ row.lastName }}</td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"email\">\r\n <th mat-header-cell *matHeaderCellDef>Email</th>\r\n <td mat-cell *matCellDef=\"let row\">{{ row.email }}</td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"add\">\r\n <th mat-header-cell *matHeaderCellDef>Add</th>\r\n <td mat-cell *matCellDef>\r\n <button mat-button class=\"details-ldap-table__add-btn\" type=\"button\">Add user</button>\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"userCreationWizardService.ldapTableColumns\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: userCreationWizardService.ldapTableColumns;\"></tr>\r\n </table>\r\n </div>\r\n </mat-expansion-panel>\r\n </mat-accordion>\r\n </div>\r\n </div>\r\n </section>\r\n\r\n <section class=\"details-step-section\">\r\n <h3 class=\"details-step-section__title\">Lines</h3>\r\n <div class=\"details-step-section__content\">\r\n <div class=\"line-route-list\">\r\n <div class=\"line-route-row\" *ngFor=\"let lineSelection of userCreationWizardService.lineSelections; let idx = index\">\r\n <div class=\"line-route-field\">\r\n <mat-form-field class=\"details-step-select line-route-select\" appearance=\"outline\">\r\n <mat-select\r\n placeholder=\"Select line\"\r\n [value]=\"lineSelection.lineNumber\"\r\n (selectionChange)=\"userCreationWizardService.setLineSelection(idx, $event.value)\"\r\n >\r\n <mat-option *ngFor=\"let line of userCreationWizardService.lineOptions\" [value]=\"line.number\">\r\n {{ line.number }} - {{ line.did }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"line-route-field\">\r\n <mat-form-field class=\"details-step-select line-route-select\" appearance=\"outline\">\r\n <mat-select\r\n placeholder=\"Select route partition\"\r\n [value]=\"lineSelection.routePartitionName\"\r\n (selectionChange)=\"userCreationWizardService.setRoutePartitionSelection(idx, $event.value)\"\r\n >\r\n <mat-option *ngFor=\"let partition of userCreationWizardService.routePartitionOptions\" [value]=\"partition\">\r\n {{ partition }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n\r\n <section class=\"details-step-section\">\r\n <h3 class=\"details-step-section__title\">Devices</h3>\r\n <div class=\"details-step-section__content\">\r\n <div class=\"devices-rows\">\r\n <div class=\"details-inline-fields details-inline-fields--four\" *ngFor=\"let _row of userCreationWizardService.deviceRows; let idx = index\">\r\n <div class=\"details-inline-field\">\r\n <label class=\"details-inline-field__label\">Device type</label>\r\n <mat-form-field class=\"details-step-input\" appearance=\"outline\">\r\n <input\r\n matInput\r\n placeholder=\"Device type\"\r\n [value]=\"userCreationWizardService.deviceEntries[idx].deviceType || ''\"\r\n [disabled]=\"true\"\r\n />\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"details-inline-field\">\r\n <label class=\"details-inline-field__label\">Protocol</label>\r\n <mat-form-field class=\"details-step-input\" appearance=\"outline\">\r\n <input\r\n matInput\r\n placeholder=\"Protocol\"\r\n [value]=\"userCreationWizardService.deviceEntries[idx].protocol || ''\"\r\n [disabled]=\"true\"\r\n />\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"details-inline-field\">\r\n <label class=\"details-inline-field__label\">Button Template</label>\r\n <mat-form-field class=\"details-step-input\" appearance=\"outline\">\r\n <input\r\n matInput\r\n placeholder=\"Button Template\"\r\n [value]=\"userCreationWizardService.deviceEntries[idx].buttonTemplate || ''\"\r\n [disabled]=\"true\"\r\n />\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"details-inline-field\">\r\n <label class=\"details-inline-field__label\">Name</label>\r\n <mat-form-field class=\"details-step-input\" appearance=\"outline\">\r\n <input\r\n matInput\r\n placeholder=\"Name\"\r\n [value]=\"userCreationWizardService.deviceEntries[idx].name || ''\"\r\n (input)=\"userCreationWizardService.setDeviceName(idx, $any($event.target).value)\"\r\n />\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n </div>\r\n</section>\r\n", styles: [".details-step-content{display:flex;flex-direction:column;gap:0}.details-step-dropdowns{display:flex;flex-direction:column;gap:1rem}.details-step-field{display:flex;flex-direction:column;gap:8px}.details-step-label{font-size:16px;font-weight:400;line-height:100%;letter-spacing:0;color:#333}.details-step-select{width:333px}.details-step-divider{border-top:1px solid #d9d9d9;margin-top:24px}.details-step-sections{display:flex;flex-direction:column}.details-step-section{display:flex;flex-direction:column;gap:0;padding:24px 0}.details-step-sections>.details-step-section:first-child{padding-top:0}.details-step-section+.details-step-section{border-top:1px solid #d9d9d9}.details-step-section__title{margin:0;font-family:Inter,sans-serif;font-size:16px;font-weight:600;line-height:100%;letter-spacing:0;color:#333}.details-step-section__content{margin-top:24px}.details-step-section__part+.details-step-section__part{margin-top:24px}.details-user-accordion{width:100%}.details-user-accordion__content{padding:12px 0 0}.details-ldap-table{width:100%}.details-ldap-table__add-btn{min-width:0;padding:0;font-family:Inter,sans-serif;font-size:14px;font-weight:500;line-height:20px;letter-spacing:0;color:#0d56aa}:host ::ng-deep .details-ldap-table .mat-header-cell{font-family:Inter,sans-serif;font-size:12px;font-weight:500;line-height:16px;letter-spacing:0;color:#737480;height:30px;padding:7px 8px}:host ::ng-deep .details-ldap-table .mat-cell{font-family:Inter,sans-serif;font-size:14px;font-weight:400;line-height:20px;letter-spacing:0;color:#333;height:40px;padding:8px}.details-inline-fields{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px}.details-inline-fields--four{grid-template-columns:repeat(4,minmax(0,1fr))}.devices-rows{display:flex;flex-direction:column;gap:24px}.details-inline-field{display:flex;flex-direction:column;gap:4px}.details-inline-field__label{color:#c0c2ce;font-size:12px;font-weight:400;line-height:16px;letter-spacing:0}.details-step-input{width:100%}.line-route-list{display:flex;flex-direction:column;gap:16px}.line-route-row{display:flex;gap:16px}.line-route-field{display:flex;flex-direction:column;gap:0}.line-route-select{width:185px}:host ::ng-deep .details-step-select .mat-form-field-wrapper{padding-bottom:0}:host ::ng-deep .details-step-input .mat-form-field-wrapper{padding-bottom:0}:host ::ng-deep .details-step-select .mat-form-field-flex{align-items:center;height:32px;border:1px solid #767676;border-radius:6px;padding:0 12px}:host ::ng-deep .details-step-input .mat-form-field-flex{align-items:center;height:36px;border:1px solid #767676;border-radius:4px;padding:10px 8px}:host ::ng-deep .details-step-select .mat-form-field-outline,:host ::ng-deep .details-step-select .mat-form-field-outline-start,:host ::ng-deep .details-step-select .mat-form-field-outline-end,:host ::ng-deep .details-step-select .mat-form-field-outline-gap{display:none}:host ::ng-deep .details-step-input .mat-form-field-outline,:host ::ng-deep .details-step-input .mat-form-field-outline-start,:host ::ng-deep .details-step-input .mat-form-field-outline-end,:host ::ng-deep .details-step-input .mat-form-field-outline-gap{display:none}:host ::ng-deep .details-step-select .mat-form-field-infix{width:100%;border-top:0;padding:0}:host ::ng-deep .details-step-input .mat-form-field-infix{width:100%;border-top:0;padding:0}:host ::ng-deep .details-step-select .mat-select-trigger{display:flex;align-items:center;justify-content:space-between;height:100%}:host ::ng-deep .details-step-input .mat-input-element{height:100%;margin:0}:host ::ng-deep .details-step-input.mat-form-field-disabled .mat-form-field-flex{background-color:#f5f6fa;border-color:#b8beca;opacity:.55;cursor:not-allowed}:host ::ng-deep .details-step-input .mat-input-element:disabled{color:#7f8694;-webkit-text-fill-color:#7f8694;cursor:not-allowed}:host ::ng-deep .details-user-accordion .mat-expansion-panel{border:0;border-radius:0!important;background:transparent;box-shadow:none!important}:host ::ng-deep .details-user-accordion .mat-expansion-panel-header{padding:0 0 0 8px;min-height:32px;height:32px}:host ::ng-deep .details-user-accordion .mat-expansion-panel-header-title{margin:0;display:flex;align-items:center;font-family:Inter,sans-serif;font-size:14px;font-weight:500;line-height:20px;letter-spacing:0;color:#333}:host ::ng-deep .details-user-accordion .mat-expansion-panel-body{padding:0!important}:host ::ng-deep .details-user-accordion .mat-expansion-panel-header .mat-content{display:flex;align-items:center}:host ::ng-deep .details-user-accordion .mat-expansion-panel-header .mat-expansion-indicator{display:block!important;opacity:1!important;color:#333!important;align-self:center;margin:0 8px 0 0!important}:host ::ng-deep .details-user-accordion .mat-expansion-panel-header .mat-expansion-indicator:after{color:#333!important;border-color:#333!important;position:relative;top:-4px}\n"] }]
678
- }], ctorParameters: function () { return [{ type: UserCreationWizardService }]; } });
679
-
680
- class UserOverviewStepComponent {
681
- constructor(userCreationWizardService) {
682
- this.userCreationWizardService = userCreationWizardService;
683
- this.USER_DETAILS_COLS = ['User ID', 'First name', 'Last name', 'Email', 'User templates'];
684
- this.LINES_COLS = ['Number', 'DID', 'Route partition name', 'CSS', 'Description'];
685
- this.DEVICES_COLS = ['Name', 'Device type', 'Lines', 'Description'];
686
- }
687
- }
688
- UserOverviewStepComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserOverviewStepComponent, deps: [{ token: UserCreationWizardService }], target: i0.ɵɵFactoryTarget.Component });
689
- UserOverviewStepComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: UserOverviewStepComponent, selector: "tk-user-overview-step", ngImport: i0, template: "<section class=\"details-step-content\">\r\n <div class=\"details-step-sections\">\r\n <section class=\"details-step-section\">\r\n <h3 class=\"details-step-section__title\">User details</h3>\r\n <div class=\"details-step-section__content\">\r\n <div class=\"preview-list\" [style.--preview-cols]=\"USER_DETAILS_COLS.length\">\r\n <div class=\"preview-list__header\">\r\n <span *ngFor=\"let col of USER_DETAILS_COLS\">{{ col }}</span>\r\n </div>\r\n <div class=\"preview-list__row\" *ngFor=\"let user of userCreationWizardService.overviewUsers\">\r\n <span>{{ user.userId }}</span>\r\n <span>{{ user.firstName }}</span>\r\n <span>{{ user.lastName }}</span>\r\n <span>{{ user.email }}</span>\r\n <span>{{ user.userTemplate }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n </div>\r\n \r\n <div class=\"details-step-divider\"></div>\r\n \r\n <div class=\"details-step-sections\">\r\n <section class=\"details-step-section\">\r\n <h3 class=\"details-step-section__title\">Lines</h3>\r\n <div class=\"details-step-section__content\">\r\n <div class=\"preview-list\" [style.--preview-cols]=\"LINES_COLS.length\">\r\n <div class=\"preview-list__header\">\r\n <span *ngFor=\"let col of LINES_COLS\">{{ col }}</span>\r\n </div>\r\n <div class=\"preview-list__row\" *ngFor=\"let line of userCreationWizardService.overviewLines\">\r\n <span>{{ line.number }}</span>\r\n <span>{{ line.did }}</span>\r\n <span>{{ line.routePartitionName }}</span>\r\n <span>{{ line.css }}</span>\r\n <span>{{ line.description }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n </div>\r\n \r\n <div class=\"details-step-divider\"></div>\r\n \r\n <div class=\"details-step-sections\">\r\n <section class=\"details-step-section\">\r\n <h3 class=\"details-step-section__title\">Devices</h3>\r\n <div class=\"details-step-section__content\">\r\n <div class=\"preview-list\" [style.--preview-cols]=\"DEVICES_COLS.length\">\r\n <div class=\"preview-list__header\">\r\n <span *ngFor=\"let col of DEVICES_COLS\">{{ col }}</span>\r\n </div>\r\n <div class=\"preview-list__row\" *ngFor=\"let device of userCreationWizardService.overviewDevices\">\r\n <span>{{ device.name }}</span>\r\n <span>{{ device.deviceType }}</span>\r\n <span>{{ device.lines }}</span>\r\n <span>{{ device.description }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n </div>\r\n\r\n <div class=\"details-step-divider\"></div>\r\n \r\n <div class=\"details-step-sections\">\r\n <section class=\"details-step-section\">\r\n <h3 class=\"details-step-section__title\">Single Number Reach</h3>\r\n <div class=\"details-step-section__content\"></div>\r\n </section>\r\n </div>\r\n\r\n <div class=\"details-step-divider\"></div>\r\n \r\n <div class=\"details-step-sections\">\r\n <section class=\"details-step-section\">\r\n <h3 class=\"details-step-section__title\">Features</h3>\r\n <div class=\"details-step-section__content\"></div>\r\n </section>\r\n </div>\r\n\r\n</section>\r\n", styles: [".details-step-content{display:flex;flex-direction:column;gap:24px}.details-step-divider{border-top:1px solid #d9d9d9}.details-step-sections{display:flex;flex-direction:column}.details-step-section{display:flex;flex-direction:column;gap:16px}.details-step-section+.details-step-section{border-top:1px solid #d9d9d9}.details-step-section__title{margin:0;font-family:Inter,sans-serif;font-size:16px;font-weight:600;line-height:100%;letter-spacing:0;color:#333}.preview-list{display:flex;flex-direction:column;gap:4px}.preview-list__header,.preview-list__row{display:grid;grid-template-columns:repeat(var(--preview-cols, 1),minmax(0,1fr));column-gap:24px}.preview-list__header>span,.preview-list__row>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--Gray-700, #737480);font-family:Inter,sans-serif;font-size:12px;font-style:normal;font-weight:400;line-height:16px}.preview-list__row>span{min-width:0;color:var(--Gray-700, #333);font-family:Inter,sans-serif;font-size:14px;font-style:normal;font-weight:400;line-height:150%}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
690
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserOverviewStepComponent, decorators: [{
691
- type: Component,
692
- args: [{ selector: 'tk-user-overview-step', template: "<section class=\"details-step-content\">\r\n <div class=\"details-step-sections\">\r\n <section class=\"details-step-section\">\r\n <h3 class=\"details-step-section__title\">User details</h3>\r\n <div class=\"details-step-section__content\">\r\n <div class=\"preview-list\" [style.--preview-cols]=\"USER_DETAILS_COLS.length\">\r\n <div class=\"preview-list__header\">\r\n <span *ngFor=\"let col of USER_DETAILS_COLS\">{{ col }}</span>\r\n </div>\r\n <div class=\"preview-list__row\" *ngFor=\"let user of userCreationWizardService.overviewUsers\">\r\n <span>{{ user.userId }}</span>\r\n <span>{{ user.firstName }}</span>\r\n <span>{{ user.lastName }}</span>\r\n <span>{{ user.email }}</span>\r\n <span>{{ user.userTemplate }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n </div>\r\n \r\n <div class=\"details-step-divider\"></div>\r\n \r\n <div class=\"details-step-sections\">\r\n <section class=\"details-step-section\">\r\n <h3 class=\"details-step-section__title\">Lines</h3>\r\n <div class=\"details-step-section__content\">\r\n <div class=\"preview-list\" [style.--preview-cols]=\"LINES_COLS.length\">\r\n <div class=\"preview-list__header\">\r\n <span *ngFor=\"let col of LINES_COLS\">{{ col }}</span>\r\n </div>\r\n <div class=\"preview-list__row\" *ngFor=\"let line of userCreationWizardService.overviewLines\">\r\n <span>{{ line.number }}</span>\r\n <span>{{ line.did }}</span>\r\n <span>{{ line.routePartitionName }}</span>\r\n <span>{{ line.css }}</span>\r\n <span>{{ line.description }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n </div>\r\n \r\n <div class=\"details-step-divider\"></div>\r\n \r\n <div class=\"details-step-sections\">\r\n <section class=\"details-step-section\">\r\n <h3 class=\"details-step-section__title\">Devices</h3>\r\n <div class=\"details-step-section__content\">\r\n <div class=\"preview-list\" [style.--preview-cols]=\"DEVICES_COLS.length\">\r\n <div class=\"preview-list__header\">\r\n <span *ngFor=\"let col of DEVICES_COLS\">{{ col }}</span>\r\n </div>\r\n <div class=\"preview-list__row\" *ngFor=\"let device of userCreationWizardService.overviewDevices\">\r\n <span>{{ device.name }}</span>\r\n <span>{{ device.deviceType }}</span>\r\n <span>{{ device.lines }}</span>\r\n <span>{{ device.description }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n </div>\r\n\r\n <div class=\"details-step-divider\"></div>\r\n \r\n <div class=\"details-step-sections\">\r\n <section class=\"details-step-section\">\r\n <h3 class=\"details-step-section__title\">Single Number Reach</h3>\r\n <div class=\"details-step-section__content\"></div>\r\n </section>\r\n </div>\r\n\r\n <div class=\"details-step-divider\"></div>\r\n \r\n <div class=\"details-step-sections\">\r\n <section class=\"details-step-section\">\r\n <h3 class=\"details-step-section__title\">Features</h3>\r\n <div class=\"details-step-section__content\"></div>\r\n </section>\r\n </div>\r\n\r\n</section>\r\n", styles: [".details-step-content{display:flex;flex-direction:column;gap:24px}.details-step-divider{border-top:1px solid #d9d9d9}.details-step-sections{display:flex;flex-direction:column}.details-step-section{display:flex;flex-direction:column;gap:16px}.details-step-section+.details-step-section{border-top:1px solid #d9d9d9}.details-step-section__title{margin:0;font-family:Inter,sans-serif;font-size:16px;font-weight:600;line-height:100%;letter-spacing:0;color:#333}.preview-list{display:flex;flex-direction:column;gap:4px}.preview-list__header,.preview-list__row{display:grid;grid-template-columns:repeat(var(--preview-cols, 1),minmax(0,1fr));column-gap:24px}.preview-list__header>span,.preview-list__row>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--Gray-700, #737480);font-family:Inter,sans-serif;font-size:12px;font-style:normal;font-weight:400;line-height:16px}.preview-list__row>span{min-width:0;color:var(--Gray-700, #333);font-family:Inter,sans-serif;font-size:14px;font-style:normal;font-weight:400;line-height:150%}\n"] }]
693
- }], ctorParameters: function () { return [{ type: UserCreationWizardService }]; } });
694
-
695
- class UserTemplateStepComponent {
696
- constructor(userCreationWizardService, userCreationService, fb) {
697
- this.userCreationWizardService = userCreationWizardService;
698
- this.userCreationService = userCreationService;
699
- this.fb = fb;
700
- this.formGroup = this.fb.group({
701
- userType: [USER_CREATION_TYPES.CUCM],
702
- siteId: [null],
703
- userTemplateId: [''],
704
- });
705
- this.userCreationType = USER_CREATION_TYPES.CUCM;
706
- this.USER_CREATION_TYPES = USER_CREATION_TYPES;
707
- this.defaultTemplateName = 'User 8851 Office';
708
- this.fallbackTemplateId = '-1';
709
- this.destroy$ = new Subject();
710
- this.sitesList$ = this.userCreationService.sitesList$.pipe(takeUntil(this.destroy$));
711
- this.templatesList$ = this.userCreationService.templatesList$.pipe(tap((templates) => {
712
- this.templates = templates || [];
713
- const templateControl = this.formGroup.get('userTemplateId');
714
- const currentTemplateId = templateControl?.value;
715
- const selectedSiteId = this.formGroup.get('siteId')?.value;
716
- const defaultTemplate = this.templates.find(template => template.name === this.defaultTemplateName);
717
- const hasSelectedSite = selectedSiteId !== null && selectedSiteId !== undefined;
718
- if (hasSelectedSite && defaultTemplate && String(currentTemplateId || '') !== String(defaultTemplate.id)) {
719
- templateControl?.setValue(String(defaultTemplate.id));
720
- }
721
- }), takeUntil(this.destroy$));
722
- this.isTemplateSelectable = false;
723
- this.templates = [];
724
- this.templateToggleFormControl = new FormControl(true);
725
- }
726
- ngOnInit() {
727
- this.formGroup.get('userType').valueChanges
728
- .pipe(takeUntil(this.destroy$))
729
- .subscribe((value) => {
730
- const isOnlyWithLocations = value === USER_CREATION_TYPES.MT ? true : false;
731
- this.getSites(isOnlyWithLocations).subscribe();
732
- this.reseFieldstForm();
733
- });
734
- this.formGroup.get('siteId').valueChanges
735
- .pipe(filter((value) => value !== null && value !== undefined), tap(() => {
736
- this.formGroup.get('userTemplateId')?.setValue(this.fallbackTemplateId);
737
- this.userCreationWizardService.setSelectedTemplate(this.defaultTemplateName);
738
- }), startWith(this.formGroup.get('siteId')?.value), takeUntil(this.destroy$), switchMap((value) => this.userCreationService.fetchAllUserTemplates(Number(value))))
739
- .subscribe();
740
- this.formGroup.get('userTemplateId').valueChanges
741
- .pipe(filter((value) => value !== null && value !== undefined && String(value).trim().length > 0), takeUntil(this.destroy$), switchMap((value) => {
742
- if (String(value) === this.fallbackTemplateId) {
743
- this.userCreationWizardService.setSelectedTemplate(this.defaultTemplateName);
744
- return of(null);
745
- }
746
- return this.userCreationService.getUserTemplateToken(String(value), String(String(this.customerId)))
747
- .pipe(tap((payload) => {
748
- const selectedTemplate = this.templates.find(template => String(template.id) === String(value));
749
- this.userCreationWizardService.setSelectedTemplate(selectedTemplate?.name || null);
750
- this.userCreationWizardService.applyTemplateTokenPayload(payload);
751
- }));
752
- }))
753
- .subscribe();
754
- // this.templateToggleFormControl.valueChanges
755
- // .pipe(startWith(true), takeUntil(this.destroy$), distinctUntilChanged())
756
- // .subscribe((value) => {
757
- // if(value === true) {
758
- // const siteId = this.formGroup.get('siteId')?.value || 7095;
759
- // this.userCreationService.fetchAllUserTemplates(siteId)
760
- // .subscribe();
761
- // } else {
762
- // this.formGroup.get('userTemplateId')?.reset();
763
- // }
764
- // });
765
- this.getData();
766
- }
767
- reseFieldstForm() {
768
- this.formGroup.get('siteId')?.reset();
769
- this.formGroup.get('userTemplateId')?.reset();
770
- this.userCreationWizardService.setSelectedTemplate(null);
771
- this.userCreationWizardService.resetTemplateDrivenData();
772
- }
773
- getData() {
774
- const isOnlyWithLocations = this.formGroup.get('userType')?.value === USER_CREATION_TYPES.MT ? true : false;
775
- this.userCreationService.checkControlHubIntegration(String(this.customerId))
776
- .pipe(switchMap(() => this.getSites(isOnlyWithLocations)))
777
- .subscribe();
778
- }
779
- getSites(isOnlyWithLocations) {
780
- return this.userCreationService.getAllCustomerSites(String(this.customerId), isOnlyWithLocations);
781
- }
782
- ngOnDestroy() {
783
- this.destroy$.next();
784
- this.destroy$.complete();
785
- }
786
- }
787
- UserTemplateStepComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserTemplateStepComponent, deps: [{ token: UserCreationWizardService }, { token: UserCreationApiService }, { token: i3$1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component });
788
- UserTemplateStepComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: UserTemplateStepComponent, selector: "tk-user-template-step", inputs: { customerId: "customerId" }, ngImport: i0, template: "<section class=\"template-step-content\">\r\n <ng-container [formGroup]=\"formGroup\">\r\n <div class=\"template-step-field template-step-field--user-type\">\r\n <label class=\"template-step-label\">User type</label>\r\n <mat-radio-group class=\"user-type-mat-radio-group\" formControlName=\"userType\">\r\n <mat-radio-button class=\"user-type-mat-radio\" id=\"userCreationCucm\" [value]=\"USER_CREATION_TYPES.CUCM\">\r\n CUCM\r\n </mat-radio-button>\r\n <mat-radio-button class=\"user-type-mat-radio\" id=\"userCreationMT\" [value]=\"USER_CREATION_TYPES.MT\">\r\n MT\r\n </mat-radio-button>\r\n </mat-radio-group>\r\n </div>\r\n\r\n <div class=\"template-step-field\">\r\n <label class=\"template-step-label\">Select site</label>\r\n <mat-form-field class=\"template-step-select\" appearance=\"outline\">\r\n <mat-select\r\n placeholder=\"Site name\"\r\n formControlName=\"siteId\">\r\n <mat-option *ngFor=\"let site of sitesList$ | async\" [value]=\"site.id\">\r\n {{ site.name }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n\r\n <ng-container *ngIf=\"formGroup.get('userType')?.value === USER_CREATION_TYPES.CUCM\">\r\n <div class=\"template-step-field\">\r\n <!-- <label class=\"template-step-label\">Would you like to use a template for the user creation?</label>\r\n <mat-radio-group [formControl]=\"templateToggleFormControl\">\r\n <mat-radio-button [color]=\"'primary'\" [value]=\"true\">\r\n {{ 'Yes' }}\r\n </mat-radio-button>\r\n <mat-radio-button [color]=\"'primary'\" [value]=\"false\">\r\n {{ 'No' }}\r\n </mat-radio-button>\r\n </mat-radio-group> -->\r\n\r\n <!-- <ng-container *ngIf=\"templateToggleFormControl.value === true\"> -->\r\n <label class=\"template-step-label\">Select user template</label>\r\n <mat-form-field class=\"template-step-select\" appearance=\"outline\">\r\n <mat-select\r\n placeholder=\"Templates\"\r\n formControlName=\"userTemplateId\">\r\n <mat-option [value]=\"fallbackTemplateId\">\r\n {{ defaultTemplateName }}\r\n </mat-option>\r\n <mat-option *ngFor=\"let template of templatesList$ | async\" [value]=\"template.id\">\r\n {{ template.name }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <!-- </ng-container> -->\r\n </div>\r\n </ng-container>\r\n \r\n </ng-container>\r\n</section>\r\n", styles: [".template-step-content{display:flex;flex-direction:column;gap:20px;max-width:420px}.template-step-field{display:flex;flex-direction:column;gap:10px}.template-step-field--user-type{margin-bottom:6px}.template-step-label{font-size:14px;font-weight:600;line-height:100%;letter-spacing:.1px;color:#2a2f3b}.template-step-select{width:100%;max-width:333px}.user-type-mat-radio-group{display:flex;flex-direction:column;gap:10px;margin-left:16px;margin-top:8px}.user-type-mat-radio{color:#2a2f3b;font-size:14px;font-weight:500}:host ::ng-deep .user-type-mat-radio .mat-radio-label{gap:10px}:host ::ng-deep .user-type-mat-radio .mat-radio-outer-circle{border-color:#8a93a3;border-width:2px}:host ::ng-deep .user-type-mat-radio .mat-radio-inner-circle{background-color:#1170cf}:host ::ng-deep .user-type-mat-radio.mat-radio-checked .mat-radio-outer-circle{border-color:#1170cf}:host ::ng-deep .user-type-mat-radio.mat-radio-checked .mat-radio-ripple .mat-ripple-element{background-color:#1176ce26!important}:host ::ng-deep .user-type-mat-radio .mdc-radio__outer-circle{border-color:#8a93a3!important;border-width:2px!important}:host ::ng-deep .user-type-mat-radio .mdc-radio__inner-circle{border-color:#1170cf!important}:host ::ng-deep .user-type-mat-radio.mat-mdc-radio-checked .mdc-radio__outer-circle{border-color:#1170cf!important}:host ::ng-deep .user-type-mat-radio.mat-mdc-radio-checked .mdc-radio__background:before{background-color:#1176ce1f!important}:host ::ng-deep .template-step-select .mat-form-field-wrapper{padding-bottom:0}:host ::ng-deep .template-step-select .mat-form-field-flex{align-items:center;height:32px;border:1px solid #767676;border-radius:6px;padding:0 12px}:host ::ng-deep .template-step-select .mat-form-field-outline,:host ::ng-deep .template-step-select .mat-form-field-outline-start,:host ::ng-deep .template-step-select .mat-form-field-outline-end,:host ::ng-deep .template-step-select .mat-form-field-outline-gap{display:none}:host ::ng-deep .template-step-select .mat-form-field-infix{width:100%;border-top:0;padding:0}:host ::ng-deep .template-step-select .mat-select-trigger{display:flex;align-items:center;justify-content:space-between;height:100%}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "component", type: i7.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i8.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i3$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i8$1.MatRadioGroup, selector: "mat-radio-group", exportAs: ["matRadioGroup"] }, { kind: "component", type: i8$1.MatRadioButton, selector: "mat-radio-button", inputs: ["disableRipple", "tabIndex"], exportAs: ["matRadioButton"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }] });
789
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserTemplateStepComponent, decorators: [{
790
- type: Component,
791
- args: [{ selector: 'tk-user-template-step', template: "<section class=\"template-step-content\">\r\n <ng-container [formGroup]=\"formGroup\">\r\n <div class=\"template-step-field template-step-field--user-type\">\r\n <label class=\"template-step-label\">User type</label>\r\n <mat-radio-group class=\"user-type-mat-radio-group\" formControlName=\"userType\">\r\n <mat-radio-button class=\"user-type-mat-radio\" id=\"userCreationCucm\" [value]=\"USER_CREATION_TYPES.CUCM\">\r\n CUCM\r\n </mat-radio-button>\r\n <mat-radio-button class=\"user-type-mat-radio\" id=\"userCreationMT\" [value]=\"USER_CREATION_TYPES.MT\">\r\n MT\r\n </mat-radio-button>\r\n </mat-radio-group>\r\n </div>\r\n\r\n <div class=\"template-step-field\">\r\n <label class=\"template-step-label\">Select site</label>\r\n <mat-form-field class=\"template-step-select\" appearance=\"outline\">\r\n <mat-select\r\n placeholder=\"Site name\"\r\n formControlName=\"siteId\">\r\n <mat-option *ngFor=\"let site of sitesList$ | async\" [value]=\"site.id\">\r\n {{ site.name }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n\r\n <ng-container *ngIf=\"formGroup.get('userType')?.value === USER_CREATION_TYPES.CUCM\">\r\n <div class=\"template-step-field\">\r\n <!-- <label class=\"template-step-label\">Would you like to use a template for the user creation?</label>\r\n <mat-radio-group [formControl]=\"templateToggleFormControl\">\r\n <mat-radio-button [color]=\"'primary'\" [value]=\"true\">\r\n {{ 'Yes' }}\r\n </mat-radio-button>\r\n <mat-radio-button [color]=\"'primary'\" [value]=\"false\">\r\n {{ 'No' }}\r\n </mat-radio-button>\r\n </mat-radio-group> -->\r\n\r\n <!-- <ng-container *ngIf=\"templateToggleFormControl.value === true\"> -->\r\n <label class=\"template-step-label\">Select user template</label>\r\n <mat-form-field class=\"template-step-select\" appearance=\"outline\">\r\n <mat-select\r\n placeholder=\"Templates\"\r\n formControlName=\"userTemplateId\">\r\n <mat-option [value]=\"fallbackTemplateId\">\r\n {{ defaultTemplateName }}\r\n </mat-option>\r\n <mat-option *ngFor=\"let template of templatesList$ | async\" [value]=\"template.id\">\r\n {{ template.name }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <!-- </ng-container> -->\r\n </div>\r\n </ng-container>\r\n \r\n </ng-container>\r\n</section>\r\n", styles: [".template-step-content{display:flex;flex-direction:column;gap:20px;max-width:420px}.template-step-field{display:flex;flex-direction:column;gap:10px}.template-step-field--user-type{margin-bottom:6px}.template-step-label{font-size:14px;font-weight:600;line-height:100%;letter-spacing:.1px;color:#2a2f3b}.template-step-select{width:100%;max-width:333px}.user-type-mat-radio-group{display:flex;flex-direction:column;gap:10px;margin-left:16px;margin-top:8px}.user-type-mat-radio{color:#2a2f3b;font-size:14px;font-weight:500}:host ::ng-deep .user-type-mat-radio .mat-radio-label{gap:10px}:host ::ng-deep .user-type-mat-radio .mat-radio-outer-circle{border-color:#8a93a3;border-width:2px}:host ::ng-deep .user-type-mat-radio .mat-radio-inner-circle{background-color:#1170cf}:host ::ng-deep .user-type-mat-radio.mat-radio-checked .mat-radio-outer-circle{border-color:#1170cf}:host ::ng-deep .user-type-mat-radio.mat-radio-checked .mat-radio-ripple .mat-ripple-element{background-color:#1176ce26!important}:host ::ng-deep .user-type-mat-radio .mdc-radio__outer-circle{border-color:#8a93a3!important;border-width:2px!important}:host ::ng-deep .user-type-mat-radio .mdc-radio__inner-circle{border-color:#1170cf!important}:host ::ng-deep .user-type-mat-radio.mat-mdc-radio-checked .mdc-radio__outer-circle{border-color:#1170cf!important}:host ::ng-deep .user-type-mat-radio.mat-mdc-radio-checked .mdc-radio__background:before{background-color:#1176ce1f!important}:host ::ng-deep .template-step-select .mat-form-field-wrapper{padding-bottom:0}:host ::ng-deep .template-step-select .mat-form-field-flex{align-items:center;height:32px;border:1px solid #767676;border-radius:6px;padding:0 12px}:host ::ng-deep .template-step-select .mat-form-field-outline,:host ::ng-deep .template-step-select .mat-form-field-outline-start,:host ::ng-deep .template-step-select .mat-form-field-outline-end,:host ::ng-deep .template-step-select .mat-form-field-outline-gap{display:none}:host ::ng-deep .template-step-select .mat-form-field-infix{width:100%;border-top:0;padding:0}:host ::ng-deep .template-step-select .mat-select-trigger{display:flex;align-items:center;justify-content:space-between;height:100%}\n"] }]
792
- }], ctorParameters: function () { return [{ type: UserCreationWizardService }, { type: UserCreationApiService }, { type: i3$1.FormBuilder }]; }, propDecorators: { customerId: [{
793
- type: Input
794
- }] } });
795
-
796
- class UserCreationWizardComponent {
797
- constructor() {
798
- this.apiService = inject(APIService);
799
- this.title = 'Create User';
800
- this.cancel = new EventEmitter();
801
- this.submit = new EventEmitter();
802
- this.isSubmitting = false;
803
- this.submitTimerId = null;
804
- }
805
- ngOnInit() {
806
- this.apiService.token = this.token;
807
- }
808
- onCancel() {
809
- this.cancel.emit();
810
- }
811
- onSubmit() {
812
- if (this.isSubmitting) {
813
- return;
814
- }
815
- this.isSubmitting = true;
816
- const delayMs = 3000 + Math.floor(Math.random() * 1001);
817
- this.submitTimerId = window.setTimeout(() => {
818
- this.isSubmitting = false;
819
- this.submitTimerId = null;
820
- this.submit.emit();
821
- }, delayMs);
822
- }
823
- ngOnDestroy() {
824
- if (this.submitTimerId) {
825
- window.clearTimeout(this.submitTimerId);
826
- this.submitTimerId = null;
827
- }
828
- }
829
- }
830
- UserCreationWizardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserCreationWizardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
831
- UserCreationWizardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: UserCreationWizardComponent, selector: "tk-user-creation-wizard", inputs: { title: "title", token: "token", customerId: "customerId" }, outputs: { cancel: "cancel", submit: "submit" }, ngImport: i0, template: "<div class=\"move-user-stepper-container\" [attr.aria-busy]=\"isSubmitting\">\n <header class=\"move-user-header\">\n <div class=\"move-user-header__title\">{{ title }}</div>\n <div class=\"move-user-header__close\">\n <span class=\"app-icon user-creation-close-icon\" (click)=\"onCancel()\"></span>\n </div>\n </header>\n\n <div id=\"user-creation-stepper\">\n <mat-stepper [linear]=\"false\" labelPosition=\"bottom\" #stepper>\n <mat-step>\n <div class=\"step-title\">Step 1: User creation with template</div>\n <ng-template matStepLabel>User creation</ng-template>\n\n <div class=\"move-user-tab-content-box\">\n <tk-user-template-step [customerId]=\"customerId\"></tk-user-template-step>\n </div>\n </mat-step>\n\n <mat-step>\n <div class=\"step-title\">Step 2 : User details</div>\n <ng-template matStepLabel>User details</ng-template>\n\n <div class=\"move-user-tab-content-box\">\n <tk-user-details-step></tk-user-details-step>\n </div>\n </mat-step>\n\n <mat-step>\n <div class=\"step-title\">Step 3: Review</div>\n <ng-template matStepLabel>Review</ng-template>\n\n <div class=\"move-user-tab-content-box\">\n <tk-user-overview-step></tk-user-overview-step>\n </div>\n </mat-step>\n </mat-stepper>\n\n <div class=\"wizard-actions\">\n <ng-container [ngSwitch]=\"stepper.selectedIndex\">\n <ng-container *ngSwitchCase=\"0\">\n <button mat-button class=\"uc-btn uc-btn-primary\" type=\"button\" (click)=\"stepper.next()\">\n Next\n </button>\n <button mat-button class=\"uc-btn uc-btn-secondary\" type=\"button\" (click)=\"onCancel()\">\n Cancel\n </button>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"1\">\n <button mat-button class=\"uc-btn uc-btn-primary\" type=\"button\" (click)=\"stepper.next()\">\n Next\n </button>\n <button mat-button class=\"uc-btn uc-btn-secondary\" type=\"button\" (click)=\"stepper.previous()\">\n Previous\n </button>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"2\">\n <button\n mat-button\n class=\"uc-btn uc-btn-primary\"\n type=\"button\"\n [disabled]=\"isSubmitting\"\n (click)=\"onSubmit()\"\n >\n <span class=\"uc-btn__inline-content\">\n <span class=\"uc-btn__spinner\" *ngIf=\"isSubmitting\" aria-hidden=\"true\"></span>\n <span>{{ isSubmitting ? 'Creating...' : 'Create' }}</span>\n </span>\n </button>\n <button\n mat-button\n class=\"uc-btn uc-btn-secondary\"\n type=\"button\"\n [disabled]=\"isSubmitting\"\n (click)=\"stepper.previous()\"\n >\n Previous\n </button>\n </ng-container>\n </ng-container>\n </div>\n </div>\n\n <div class=\"wizard-loading-overlay\" [class.wizard-loading-overlay--visible]=\"isSubmitting\" aria-hidden=\"true\"></div>\n</div>\n", styles: [".move-user-stepper-container{background-color:#f3f3f3;padding:0 0 16px;position:relative;overflow:hidden}.move-user-header{background-color:#1170cf;height:45px;padding:1rem 1.5rem;display:flex;align-items:center;justify-content:space-between;color:#fff;font-size:18px;font-weight:500}.move-user-header__close{cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:0}.move-user-header__close i{font-size:25px;font-weight:100}.app-icon{height:20px;width:20px;display:block;cursor:pointer;background-repeat:no-repeat;background-position:center}.user-creation-close-icon{background-image:url(\"data:image/svg+xml,%3Csvg width%3D%2224%22 height%3D%2224%22 viewBox%3D%220 0 24 24%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath d%3D%22M13.0606 11.9998L19.2803 5.78001C19.35 5.71038 19.4052 5.6277 19.4429 5.53672C19.4806 5.44573 19.5 5.34822 19.5 5.24974C19.5 5.15126 19.4806 5.05374 19.4429 4.96276C19.4052 4.87177 19.3499 4.7891 19.2803 4.71947C19.2107 4.64983 19.128 4.5946 19.037 4.55691C18.946 4.51923 18.8485 4.49983 18.75 4.49983C18.6515 4.49984 18.554 4.51924 18.463 4.55692C18.3721 4.59461 18.2894 4.64985 18.2198 4.71949L12 10.9392L5.78026 4.71949C5.71077 4.64921 5.62807 4.59335 5.53691 4.55514C5.44576 4.51692 5.34795 4.49711 5.24911 4.49683C5.15027 4.49655 5.05235 4.51581 4.96098 4.55351C4.86961 4.59121 4.78659 4.64659 4.7167 4.71648C4.64681 4.78638 4.59143 4.8694 4.55374 4.96077C4.51605 5.05214 4.49679 5.15006 4.49707 5.2489C4.49736 5.34774 4.51718 5.44555 4.5554 5.5367C4.59361 5.62786 4.64947 5.71055 4.71976 5.78004L10.9395 11.9998L4.71976 18.2195C4.65013 18.2892 4.59489 18.3718 4.5572 18.4628C4.51951 18.5538 4.50011 18.6513 4.50011 18.7498C4.50011 18.8483 4.51951 18.9458 4.5572 19.0368C4.59488 19.1278 4.65012 19.2105 4.71976 19.2801C4.7894 19.3497 4.87207 19.405 4.96305 19.4427C5.05403 19.4803 5.15155 19.4997 5.25003 19.4997C5.34851 19.4997 5.44603 19.4803 5.53701 19.4427C5.628 19.405 5.71067 19.3497 5.78031 19.2801L12.0001 13.0603L18.2198 19.2801C18.3604 19.4207 18.5512 19.4997 18.7501 19.4997C18.949 19.4997 19.1397 19.4207 19.2804 19.2801C19.421 19.1395 19.5 18.9487 19.5 18.7498C19.5 18.5509 19.421 18.3602 19.2804 18.2195L13.0606 11.9998Z%22 fill%3D%22white%22 fill-opacity%3D%220.95%22%2F%3E%3C%2Fsvg%3E\");background-size:20px 20px}#user-creation-stepper{display:flex;flex-direction:column;width:100%}#user-creation-stepper .mat-stepper-horizontal{margin:0 auto;width:100%;background-color:transparent}#user-creation-stepper .mat-horizontal-stepper-header-container{margin:0 auto;width:800px}#user-creation-stepper .mat-step-icon{width:28px;height:28px;border:3px solid hsl(0,0%,50.2%)}#user-creation-stepper .mat-step-icon-selected{background-color:#c6c6c6!important;border-color:#19487d}#user-creation-stepper .mat-step-icon-state-number{background-color:#fff}#user-creation-stepper .mat-step-icon-state-edit,#user-creation-stepper .mat-step-header .mat-step-icon-state-done{background-color:#1170cf;border-color:#1170cf}#user-creation-stepper .mat-step-icon-content{display:none}#user-creation-stepper .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:first-child):before,#user-creation-stepper [dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:last-child):before,#user-creation-stepper .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:last-child):after,#user-creation-stepper [dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:first-child):after{border-top-width:3px!important}#user-creation-stepper .mat-horizontal-stepper-header:before,#user-creation-stepper .mat-horizontal-stepper-header:after,#user-creation-stepper .mat-stepper-horizontal-line{border-top-color:#1170cf!important;border-top-width:3px!important;border-top-style:solid!important}#user-creation-stepper .mat-horizontal-stepper-header[aria-selected=true]~.mat-stepper-horizontal-line,#user-creation-stepper .mat-horizontal-stepper-header[aria-selected=true]~.mat-horizontal-stepper-header:before,#user-creation-stepper .mat-horizontal-stepper-header[aria-selected=true]~.mat-horizontal-stepper-header:after{border-top-width:3px!important;background-color:#7b7b7b!important;border-top-color:#7b7b7b!important}#user-creation-stepper .mat-horizontal-content-container{padding:0!important;margin-top:3rem}#user-creation-stepper .mat-horizontal-stepper-content[aria-expanded=true]{padding-bottom:0}.step-title{font-size:26px;font-weight:500;width:70%;margin:0 auto 1rem;min-height:32px;display:flex;align-items:center}.wizard-actions{display:flex;flex-flow:row-reverse;justify-content:flex-start;align-items:center;margin:16px 16px 0 0;align-self:flex-end;gap:1rem;position:relative;z-index:30}.uc-btn{border-radius:50px!important;padding:8px 16px!important;min-width:80px!important;line-height:normal!important;cursor:pointer}.uc-btn__inline-content{display:inline-flex;align-items:center;gap:8px}.uc-btn__spinner{width:14px;height:14px;border:2px solid rgba(255,255,255,.5);border-top-color:#fff;border-radius:50%;animation:uc-btn-spin .7s linear infinite}@keyframes uc-btn-spin{to{transform:rotate(360deg)}}.uc-btn-primary{background-color:#000!important;color:#fff!important;border:1px solid black!important}.uc-btn-secondary{background-color:#fff!important;color:#000!important;border:1px solid black!important}.move-user-tab-content-box{width:70%;margin:0 auto;background-color:#fff;min-height:350px;border:1px solid #C3C1C1;border-radius:8px;box-sizing:border-box;padding:25px}.wizard-loading-overlay{position:absolute;inset:0;background:rgba(243,243,243,.72);-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);opacity:0;pointer-events:none;transition:opacity .18s ease;z-index:20}.wizard-loading-overlay--visible{opacity:1;pointer-events:auto}.mat-button-disabled{background-color:#bbb;color:#fff;border:1px solid grey;cursor:default!important}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i4.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i4$1.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i3$2.MatStep, selector: "mat-step", inputs: ["color"], exportAs: ["matStep"] }, { kind: "directive", type: i3$2.MatStepLabel, selector: "[matStepLabel]" }, { kind: "component", type: i3$2.MatStepper, selector: "mat-stepper, mat-vertical-stepper, mat-horizontal-stepper, [matStepper]", inputs: ["selectedIndex", "disableRipple", "color", "labelPosition", "headerPosition", "animationDuration"], outputs: ["animationDone"], exportAs: ["matStepper", "matVerticalStepper", "matHorizontalStepper"] }, { kind: "component", type: UserTemplateStepComponent, selector: "tk-user-template-step", inputs: ["customerId"] }, { kind: "component", type: UserDetailsStepComponent, selector: "tk-user-details-step" }, { kind: "component", type: UserOverviewStepComponent, selector: "tk-user-overview-step" }], encapsulation: i0.ViewEncapsulation.None });
832
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserCreationWizardComponent, decorators: [{
833
- type: Component,
834
- args: [{ selector: 'tk-user-creation-wizard', encapsulation: ViewEncapsulation.None, template: "<div class=\"move-user-stepper-container\" [attr.aria-busy]=\"isSubmitting\">\n <header class=\"move-user-header\">\n <div class=\"move-user-header__title\">{{ title }}</div>\n <div class=\"move-user-header__close\">\n <span class=\"app-icon user-creation-close-icon\" (click)=\"onCancel()\"></span>\n </div>\n </header>\n\n <div id=\"user-creation-stepper\">\n <mat-stepper [linear]=\"false\" labelPosition=\"bottom\" #stepper>\n <mat-step>\n <div class=\"step-title\">Step 1: User creation with template</div>\n <ng-template matStepLabel>User creation</ng-template>\n\n <div class=\"move-user-tab-content-box\">\n <tk-user-template-step [customerId]=\"customerId\"></tk-user-template-step>\n </div>\n </mat-step>\n\n <mat-step>\n <div class=\"step-title\">Step 2 : User details</div>\n <ng-template matStepLabel>User details</ng-template>\n\n <div class=\"move-user-tab-content-box\">\n <tk-user-details-step></tk-user-details-step>\n </div>\n </mat-step>\n\n <mat-step>\n <div class=\"step-title\">Step 3: Review</div>\n <ng-template matStepLabel>Review</ng-template>\n\n <div class=\"move-user-tab-content-box\">\n <tk-user-overview-step></tk-user-overview-step>\n </div>\n </mat-step>\n </mat-stepper>\n\n <div class=\"wizard-actions\">\n <ng-container [ngSwitch]=\"stepper.selectedIndex\">\n <ng-container *ngSwitchCase=\"0\">\n <button mat-button class=\"uc-btn uc-btn-primary\" type=\"button\" (click)=\"stepper.next()\">\n Next\n </button>\n <button mat-button class=\"uc-btn uc-btn-secondary\" type=\"button\" (click)=\"onCancel()\">\n Cancel\n </button>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"1\">\n <button mat-button class=\"uc-btn uc-btn-primary\" type=\"button\" (click)=\"stepper.next()\">\n Next\n </button>\n <button mat-button class=\"uc-btn uc-btn-secondary\" type=\"button\" (click)=\"stepper.previous()\">\n Previous\n </button>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"2\">\n <button\n mat-button\n class=\"uc-btn uc-btn-primary\"\n type=\"button\"\n [disabled]=\"isSubmitting\"\n (click)=\"onSubmit()\"\n >\n <span class=\"uc-btn__inline-content\">\n <span class=\"uc-btn__spinner\" *ngIf=\"isSubmitting\" aria-hidden=\"true\"></span>\n <span>{{ isSubmitting ? 'Creating...' : 'Create' }}</span>\n </span>\n </button>\n <button\n mat-button\n class=\"uc-btn uc-btn-secondary\"\n type=\"button\"\n [disabled]=\"isSubmitting\"\n (click)=\"stepper.previous()\"\n >\n Previous\n </button>\n </ng-container>\n </ng-container>\n </div>\n </div>\n\n <div class=\"wizard-loading-overlay\" [class.wizard-loading-overlay--visible]=\"isSubmitting\" aria-hidden=\"true\"></div>\n</div>\n", styles: [".move-user-stepper-container{background-color:#f3f3f3;padding:0 0 16px;position:relative;overflow:hidden}.move-user-header{background-color:#1170cf;height:45px;padding:1rem 1.5rem;display:flex;align-items:center;justify-content:space-between;color:#fff;font-size:18px;font-weight:500}.move-user-header__close{cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:0}.move-user-header__close i{font-size:25px;font-weight:100}.app-icon{height:20px;width:20px;display:block;cursor:pointer;background-repeat:no-repeat;background-position:center}.user-creation-close-icon{background-image:url(\"data:image/svg+xml,%3Csvg width%3D%2224%22 height%3D%2224%22 viewBox%3D%220 0 24 24%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath d%3D%22M13.0606 11.9998L19.2803 5.78001C19.35 5.71038 19.4052 5.6277 19.4429 5.53672C19.4806 5.44573 19.5 5.34822 19.5 5.24974C19.5 5.15126 19.4806 5.05374 19.4429 4.96276C19.4052 4.87177 19.3499 4.7891 19.2803 4.71947C19.2107 4.64983 19.128 4.5946 19.037 4.55691C18.946 4.51923 18.8485 4.49983 18.75 4.49983C18.6515 4.49984 18.554 4.51924 18.463 4.55692C18.3721 4.59461 18.2894 4.64985 18.2198 4.71949L12 10.9392L5.78026 4.71949C5.71077 4.64921 5.62807 4.59335 5.53691 4.55514C5.44576 4.51692 5.34795 4.49711 5.24911 4.49683C5.15027 4.49655 5.05235 4.51581 4.96098 4.55351C4.86961 4.59121 4.78659 4.64659 4.7167 4.71648C4.64681 4.78638 4.59143 4.8694 4.55374 4.96077C4.51605 5.05214 4.49679 5.15006 4.49707 5.2489C4.49736 5.34774 4.51718 5.44555 4.5554 5.5367C4.59361 5.62786 4.64947 5.71055 4.71976 5.78004L10.9395 11.9998L4.71976 18.2195C4.65013 18.2892 4.59489 18.3718 4.5572 18.4628C4.51951 18.5538 4.50011 18.6513 4.50011 18.7498C4.50011 18.8483 4.51951 18.9458 4.5572 19.0368C4.59488 19.1278 4.65012 19.2105 4.71976 19.2801C4.7894 19.3497 4.87207 19.405 4.96305 19.4427C5.05403 19.4803 5.15155 19.4997 5.25003 19.4997C5.34851 19.4997 5.44603 19.4803 5.53701 19.4427C5.628 19.405 5.71067 19.3497 5.78031 19.2801L12.0001 13.0603L18.2198 19.2801C18.3604 19.4207 18.5512 19.4997 18.7501 19.4997C18.949 19.4997 19.1397 19.4207 19.2804 19.2801C19.421 19.1395 19.5 18.9487 19.5 18.7498C19.5 18.5509 19.421 18.3602 19.2804 18.2195L13.0606 11.9998Z%22 fill%3D%22white%22 fill-opacity%3D%220.95%22%2F%3E%3C%2Fsvg%3E\");background-size:20px 20px}#user-creation-stepper{display:flex;flex-direction:column;width:100%}#user-creation-stepper .mat-stepper-horizontal{margin:0 auto;width:100%;background-color:transparent}#user-creation-stepper .mat-horizontal-stepper-header-container{margin:0 auto;width:800px}#user-creation-stepper .mat-step-icon{width:28px;height:28px;border:3px solid hsl(0,0%,50.2%)}#user-creation-stepper .mat-step-icon-selected{background-color:#c6c6c6!important;border-color:#19487d}#user-creation-stepper .mat-step-icon-state-number{background-color:#fff}#user-creation-stepper .mat-step-icon-state-edit,#user-creation-stepper .mat-step-header .mat-step-icon-state-done{background-color:#1170cf;border-color:#1170cf}#user-creation-stepper .mat-step-icon-content{display:none}#user-creation-stepper .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:first-child):before,#user-creation-stepper [dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:last-child):before,#user-creation-stepper .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:last-child):after,#user-creation-stepper [dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:first-child):after{border-top-width:3px!important}#user-creation-stepper .mat-horizontal-stepper-header:before,#user-creation-stepper .mat-horizontal-stepper-header:after,#user-creation-stepper .mat-stepper-horizontal-line{border-top-color:#1170cf!important;border-top-width:3px!important;border-top-style:solid!important}#user-creation-stepper .mat-horizontal-stepper-header[aria-selected=true]~.mat-stepper-horizontal-line,#user-creation-stepper .mat-horizontal-stepper-header[aria-selected=true]~.mat-horizontal-stepper-header:before,#user-creation-stepper .mat-horizontal-stepper-header[aria-selected=true]~.mat-horizontal-stepper-header:after{border-top-width:3px!important;background-color:#7b7b7b!important;border-top-color:#7b7b7b!important}#user-creation-stepper .mat-horizontal-content-container{padding:0!important;margin-top:3rem}#user-creation-stepper .mat-horizontal-stepper-content[aria-expanded=true]{padding-bottom:0}.step-title{font-size:26px;font-weight:500;width:70%;margin:0 auto 1rem;min-height:32px;display:flex;align-items:center}.wizard-actions{display:flex;flex-flow:row-reverse;justify-content:flex-start;align-items:center;margin:16px 16px 0 0;align-self:flex-end;gap:1rem;position:relative;z-index:30}.uc-btn{border-radius:50px!important;padding:8px 16px!important;min-width:80px!important;line-height:normal!important;cursor:pointer}.uc-btn__inline-content{display:inline-flex;align-items:center;gap:8px}.uc-btn__spinner{width:14px;height:14px;border:2px solid rgba(255,255,255,.5);border-top-color:#fff;border-radius:50%;animation:uc-btn-spin .7s linear infinite}@keyframes uc-btn-spin{to{transform:rotate(360deg)}}.uc-btn-primary{background-color:#000!important;color:#fff!important;border:1px solid black!important}.uc-btn-secondary{background-color:#fff!important;color:#000!important;border:1px solid black!important}.move-user-tab-content-box{width:70%;margin:0 auto;background-color:#fff;min-height:350px;border:1px solid #C3C1C1;border-radius:8px;box-sizing:border-box;padding:25px}.wizard-loading-overlay{position:absolute;inset:0;background:rgba(243,243,243,.72);-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);opacity:0;pointer-events:none;transition:opacity .18s ease;z-index:20}.wizard-loading-overlay--visible{opacity:1;pointer-events:auto}.mat-button-disabled{background-color:#bbb;color:#fff;border:1px solid grey;cursor:default!important}\n"] }]
835
- }], propDecorators: { title: [{
836
- type: Input
837
- }], token: [{
838
- type: Input
839
- }], customerId: [{
840
- type: Input
841
- }], cancel: [{
842
- type: Output
843
- }], submit: [{
844
- type: Output
845
- }] } });
846
-
847
- class UserCreationModule {
848
- }
849
- UserCreationModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserCreationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
850
- UserCreationModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: UserCreationModule, declarations: [UserCreationWizardComponent,
851
- UserTemplateStepComponent,
852
- UserDetailsStepComponent,
853
- UserOverviewStepComponent], imports: [CommonModule,
854
- SharedModule,
855
- MaterialModule,
856
- MatStepperModule,
857
- MatExpansionModule,
858
- FormsModule,
859
- ReactiveFormsModule,
860
- MatRadioModule], exports: [UserCreationWizardComponent] });
861
- UserCreationModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserCreationModule, providers: [
862
- UserCreationApiService,
863
- UserCreationWizardService,
864
- ], imports: [CommonModule,
865
- SharedModule,
866
- MaterialModule,
867
- MatStepperModule,
868
- MatExpansionModule,
869
- FormsModule,
870
- ReactiveFormsModule,
871
- MatRadioModule] });
872
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserCreationModule, decorators: [{
873
- type: NgModule,
874
- args: [{
875
- declarations: [
876
- UserCreationWizardComponent,
877
- UserTemplateStepComponent,
878
- UserDetailsStepComponent,
879
- UserOverviewStepComponent
880
- ],
881
- imports: [
882
- CommonModule,
883
- SharedModule,
884
- MaterialModule,
885
- MatStepperModule,
886
- MatExpansionModule,
887
- FormsModule,
888
- ReactiveFormsModule,
889
- MatRadioModule
890
- ],
891
- exports: [
892
- UserCreationWizardComponent
893
- ],
894
- providers: [
895
- UserCreationApiService,
896
- UserCreationWizardService,
897
- ]
898
- }]
899
- }] });
900
-
901
- /*
902
- * Public API Surface of @tuki-io/tuki-widgets
903
- */
904
- // Shared Components
905
- // export * from './shared/shared.module';
906
- // Widget Modules
907
- // Types
908
- // export * from './shared/types/data-table';
909
-
910
- /**
911
- * Generated bundle index. Do not edit.
912
- */
913
-
914
- export { UserCreationModule, UserCreationWizardComponent };
915
- //# sourceMappingURL=tuki-io-tuki-widgets-user-creation.mjs.map