@tuki-io/tuki-widgets 0.0.164 → 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 +2 -2
  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 +21 -21
  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 +21 -21
  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 -14
  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 -101
  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 -68
  78. package/esm2020/user-creation/src/widgets/user-creation-wizard/user-creation-wizard.component.mjs +0 -55
  79. package/esm2020/user-creation/src/widgets/user-creation-wizard/user-creation-wizard.service.mjs +0 -192
  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 -763
  82. package/fesm2015/tuki-io-tuki-widgets-user-creation.mjs.map +0 -1
  83. package/fesm2020/tuki-io-tuki-widgets-user-creation.mjs +0 -772
  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 -13
  88. package/user-creation/src/classes/site.d.ts +0 -188
  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 -20
  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 -27
  98. package/user-creation/src/widgets/user-creation-wizard/user-creation-wizard.component.d.ts +0 -16
  99. package/user-creation/src/widgets/user-creation-wizard/user-creation-wizard.service.d.ts +0 -81
@@ -1,772 +0,0 @@
1
- import * as i1$1 from '@angular/common';
2
- import { CommonModule } from '@angular/common';
3
- import * as i0 from '@angular/core';
4
- import { NgModule, Injectable, inject, Component, EventEmitter, ViewEncapsulation, Input, Output } from '@angular/core';
5
- import * as i3$1 from '@angular/forms';
6
- import { FormBuilder, Validators, 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 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, distinctUntilChanged, switchMap } 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: "/api/search/webex/customers/:customerId/controlhubexists",
170
- SITES: "/api/customers/:customerId/sites",
171
- SITE: "/api/sites/:siteId",
172
- DEVICE_TYPES: "/api/provision/options/:siteId/devicetypes",
173
- SITE_SETTINGS: "/api/sites/:siteId/settings",
174
- VM_USER_TEMPLATES: "/api/provision/options/:siteId/vmusertemplates",
175
- };
176
- const USER_CREATION_TYPES = {
177
- CUCM: 'CUCM',
178
- MT: 'MT'
179
- };
180
- const MAX_INTEGER = 2147483647;
181
-
182
- class APIService {
183
- constructor(httpClient) {
184
- this.httpClient = httpClient;
185
- this.apiUrl = window.location.protocol + '//' + window.location.hostname + '/dcp';
186
- this.token = 'eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJhZG1pbkBjb3JyZW5ldC5jb20iLCJyb2xlcyI6IlNVUEVSX1VTRVIiLCJpYXQiOjE3NzM5MjU4NzAsImV4cCI6MTc3Mzk0Mzg3MH0.OFxsG5XvtI3zKpGtPSXVvDCkr3ls4k1Jp7_K1jO7V8Q';
187
- // this.apiUrl = window.location.protocol + '//' + window.location.host + '/dcp';
188
- this.apiUrl = 'https://dev.tuki.io/webex';
189
- // this.apiUrl = 'http://localhost:8088/dcp';
190
- }
191
- fetch(url, params, cache) {
192
- const headers = this.getHeaders(cache);
193
- params = params || {};
194
- return this.httpClient.get(this.apiUrl + url, { params: this.prepareEncodedParams(params), headers });
195
- }
196
- post(url, body, params = {}) {
197
- body = body || null;
198
- const headers = this.getHeaders();
199
- return this.httpClient.post(this.apiUrl + url, body, { params: this.prepareEncodedParams(params), headers });
200
- }
201
- // use when response extended data is necessary:
202
- postExtended(url, body = null, params = {}, headers = {}) {
203
- headers = headers || this.getHeaders();
204
- return this.httpClient.post(this.apiUrl + url, body, {
205
- headers,
206
- observe: 'response',
207
- params: this.prepareEncodedParams(params)
208
- });
209
- }
210
- put(url, body = null, params = {}) {
211
- const headers = this.getHeaders();
212
- return this.httpClient.put(this.apiUrl + url, body, { headers, params: this.prepareEncodedParams(params) });
213
- }
214
- delete(url, params = {}) {
215
- const headers = this.getHeaders();
216
- return this.httpClient.delete(this.apiUrl + url, { headers, params: this.prepareEncodedParams(params) });
217
- }
218
- fetchPagination(url, pageSize, pageNumber, additionalParams = {}, cache) {
219
- const copyAdditionalParams = JSON.parse(JSON.stringify(additionalParams));
220
- const params = Object.assign(copyAdditionalParams, { size: pageSize.toString(), page: pageNumber.toString() });
221
- return this.fetch(url, params, cache);
222
- }
223
- prepareEncodedParams(params) {
224
- const result = {};
225
- if (!params) {
226
- return {};
227
- }
228
- for (const key of Object.keys(params)) {
229
- if (params[key]) {
230
- const stringParam = params[key].toString();
231
- result[key] = stringParam.includes('+') ? encodeURIComponent(stringParam) : stringParam;
232
- }
233
- }
234
- return result;
235
- }
236
- getHeaders(cache) {
237
- let headers = new HttpHeaders();
238
- if (cache) {
239
- headers = headers.append('_Cache', 'true ');
240
- }
241
- const token = this.token || this.getParameterByName('token');
242
- headers = headers.append('Authorization', 'Bearer ' + token);
243
- return headers;
244
- }
245
- getParameterByName(name, url = window.location.href) {
246
- name = name.replace(/[\[\]]/g, '\\$&');
247
- var regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)'), results = regex.exec(url);
248
- if (!results)
249
- return null;
250
- if (!results[2])
251
- return '';
252
- return decodeURIComponent(results[2].replace(/\+/g, ' '));
253
- }
254
- }
255
- APIService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: APIService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
256
- APIService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: APIService, providedIn: 'root' });
257
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: APIService, decorators: [{
258
- type: Injectable,
259
- args: [{
260
- providedIn: 'root'
261
- }]
262
- }], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
263
-
264
- class UserCreationApiService {
265
- constructor() {
266
- this._allSites = [];
267
- this.sitesListSubject$ = new BehaviorSubject([]);
268
- this.sitesList$ = this.sitesListSubject$.asObservable();
269
- this.apiService = inject(APIService);
270
- }
271
- getSitesList() {
272
- }
273
- checkControlHubIntegration(customerId) {
274
- const URL = API.WEBEX_CHECK_CONTROL_HUB_INTEGRATION.replace(':customerId', String(customerId));
275
- return this.apiService.fetch(URL);
276
- // .pipe(this.handleError(true, true));
277
- }
278
- getAllCustomerSites(customerId, onlySitesWithLocation) {
279
- const params = {};
280
- if (onlySitesWithLocation) {
281
- params['onlySitesWithLocation'] = 'true';
282
- }
283
- return this.apiService.fetchPagination(API.SITES.replace(':customerId', String(customerId)), MAX_INTEGER, 0, params, false)
284
- .pipe(tap((res) => {
285
- // this._allSites = [];
286
- // if (res.pageData && res.pageData.length) {
287
- // this.assignAllSites(customerId, res.pageData);
288
- // }
289
- // this.allCustomerSites$.next(true);
290
- // return this._allSites;
291
- this.sitesListSubject$.next(res.pageData);
292
- }));
293
- // .pipe(this.handleError(true));
294
- }
295
- getSiteData(siteId) {
296
- // this.dataPending = true;
297
- return forkJoin([
298
- this.getSite(siteId),
299
- this.getDeviceTypes(siteId),
300
- this.getSiteDefaults(siteId, false),
301
- this.getVoiceMailUserTemplates(siteId)
302
- ]).subscribe(() => {
303
- // this.userFeaturesService.setDefaultUcProfile();
304
- // this.dataPending = false;
305
- }, (error) => {
306
- // this.dataPending = false;
307
- // this.notifications.error(this.translate.instant('APP_USER_MSG.NO_DATA'));
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
- }
352
- UserCreationApiService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserCreationApiService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
353
- UserCreationApiService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserCreationApiService });
354
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserCreationApiService, decorators: [{
355
- type: Injectable
356
- }], ctorParameters: function () { return []; } });
357
-
358
- class SharedModule {
359
- }
360
- SharedModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SharedModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
361
- SharedModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: SharedModule, imports: [CommonModule,
362
- MaterialModule,
363
- NgApexchartsModule,
364
- HttpClientModule], exports: [MaterialModule] });
365
- SharedModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SharedModule, imports: [CommonModule,
366
- MaterialModule,
367
- NgApexchartsModule,
368
- HttpClientModule, MaterialModule] });
369
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SharedModule, decorators: [{
370
- type: NgModule,
371
- args: [{
372
- declarations: [],
373
- imports: [
374
- CommonModule,
375
- MaterialModule,
376
- NgApexchartsModule,
377
- HttpClientModule,
378
- ],
379
- exports: [
380
- MaterialModule
381
- ]
382
- }]
383
- }] });
384
-
385
- class UserCreationWizardService {
386
- constructor() {
387
- this.api = inject(UserCreationApiService);
388
- this.ldapTableColumns = ['userId', 'firstName', 'lastName', 'email', 'add'];
389
- this.userCreationTypes = ['CUCM', 'MT'];
390
- this.siteOptions = [];
391
- this.templateOptions = [];
392
- this.lineOptions = [];
393
- this.routePartitionOptions = [];
394
- this.deviceRows = [];
395
- this.ldapUsers = [];
396
- this.overviewUsers = [];
397
- this.overviewLines = [];
398
- this.overviewDevices = [];
399
- this.userDetailsForm = {
400
- userId: '',
401
- firstName: '',
402
- lastName: '',
403
- email: ''
404
- };
405
- this.lineSelections = [];
406
- this.deviceEntries = [];
407
- this.selectedSite = null;
408
- this.selectedTemplate = null;
409
- this.selectedUserCreationType = 'CUCM';
410
- this.loadPlaceholderData();
411
- }
412
- setSelectedSite(site) {
413
- this.selectedSite = site;
414
- }
415
- setSelectedTemplate(template) {
416
- this.selectedTemplate = template;
417
- this.rebuildOverviewUsers();
418
- }
419
- setSelectedUserCreationType(type) {
420
- this.selectedUserCreationType = type;
421
- }
422
- setUserDetailsField(field, value) {
423
- this.userDetailsForm = {
424
- ...this.userDetailsForm,
425
- [field]: value
426
- };
427
- this.rebuildOverviewUsers();
428
- }
429
- setLineSelection(index, lineNumber) {
430
- if (!this.lineSelections[index]) {
431
- return;
432
- }
433
- this.lineSelections[index] = {
434
- ...this.lineSelections[index],
435
- lineNumber
436
- };
437
- this.rebuildOverviewLines();
438
- this.rebuildOverviewDevices();
439
- }
440
- setRoutePartitionSelection(index, routePartitionName) {
441
- if (!this.lineSelections[index]) {
442
- return;
443
- }
444
- this.lineSelections[index] = {
445
- ...this.lineSelections[index],
446
- routePartitionName
447
- };
448
- this.rebuildOverviewLines();
449
- }
450
- setDeviceName(index, name) {
451
- if (!this.deviceEntries[index]) {
452
- return;
453
- }
454
- this.deviceEntries[index] = {
455
- ...this.deviceEntries[index],
456
- name
457
- };
458
- this.rebuildOverviewDevices();
459
- }
460
- // Placeholder bootstrap until backend APIs are connected.
461
- loadPlaceholderData() {
462
- this.siteOptions = ['Site 1', 'Site 2', 'Site 3'];
463
- this.templateOptions = ['Template A', 'Template B', 'Template C'];
464
- this.lineOptions = [
465
- {
466
- number: '1001',
467
- did: '+1 555 0101',
468
- css: 'Internal-CSS',
469
- description: 'Primary line'
470
- },
471
- {
472
- number: '1002',
473
- did: '+1 555 0102',
474
- css: 'Support-CSS',
475
- description: 'Backup line'
476
- },
477
- {
478
- number: '1003',
479
- did: '+1 555 0103',
480
- css: 'Lobby-CSS',
481
- description: 'Lobby phone line'
482
- }
483
- ];
484
- this.routePartitionOptions = ['Partition A', 'Partition B', 'Partition C'];
485
- this.deviceRows = [1, 2];
486
- this.ldapUsers = [
487
- { userId: 'user_01', firstName: 'John', lastName: 'Doe', email: 'john.doe@example.com' },
488
- { userId: 'user_02', firstName: 'Jane', lastName: 'Smith', email: 'jane.smith@example.com' }
489
- ];
490
- this.lineSelections = [
491
- {
492
- lineNumber: this.lineOptions[0]?.number || null,
493
- routePartitionName: this.routePartitionOptions[0] || null
494
- },
495
- {
496
- lineNumber: this.lineOptions[1]?.number || null,
497
- routePartitionName: this.routePartitionOptions[1] || null
498
- }
499
- ];
500
- this.deviceEntries = [
501
- {
502
- deviceType: 'Cisco 8845',
503
- protocol: 'SIP',
504
- buttonTemplate: 'Standard 8845',
505
- name: 'SEP001122334455'
506
- },
507
- {
508
- deviceType: 'Cisco Jabber',
509
- protocol: 'SIP',
510
- buttonTemplate: 'Standard Jabber',
511
- name: 'CSFJDOE'
512
- }
513
- ];
514
- this.selectedTemplate = this.selectedTemplate ?? null;
515
- this.rebuildOverviewUsers();
516
- this.rebuildOverviewLines();
517
- this.rebuildOverviewDevices();
518
- }
519
- rebuildOverviewUsers() {
520
- const userTemplate = this.selectedTemplate || '';
521
- const hasUserData = Object.values(this.userDetailsForm).some(value => value.trim().length > 0);
522
- this.overviewUsers = hasUserData
523
- ? [{
524
- userId: this.userDetailsForm.userId,
525
- firstName: this.userDetailsForm.firstName,
526
- lastName: this.userDetailsForm.lastName,
527
- email: this.userDetailsForm.email,
528
- userTemplate
529
- }]
530
- : [];
531
- }
532
- rebuildOverviewLines() {
533
- this.overviewLines = this.lineSelections
534
- .map(selection => {
535
- if (!selection?.lineNumber) {
536
- return null;
537
- }
538
- const selectedLine = this.lineOptions.find(line => line.number === selection.lineNumber);
539
- if (!selectedLine) {
540
- return null;
541
- }
542
- return {
543
- number: selectedLine.number,
544
- did: selectedLine.did,
545
- routePartitionName: selection.routePartitionName || this.routePartitionOptions[0] || '',
546
- css: selectedLine.css,
547
- description: selectedLine.description
548
- };
549
- })
550
- .filter((line) => !!line);
551
- }
552
- rebuildOverviewDevices() {
553
- const selectedLineNumbers = this.overviewLines.map(line => line.number).join(', ');
554
- this.overviewDevices = this.deviceEntries
555
- .filter(device => device.name.trim().length > 0 || device.deviceType.trim().length > 0)
556
- .map(device => ({
557
- name: device.name,
558
- deviceType: device.deviceType,
559
- lines: selectedLineNumbers,
560
- description: `${device.protocol} / ${device.buttonTemplate}`
561
- }));
562
- }
563
- // TODO: replace placeholders with real API integration.
564
- loadDataFromApi() {
565
- // this.api.getWizardBootstrapData().subscribe(...)
566
- }
567
- }
568
- UserCreationWizardService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserCreationWizardService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
569
- UserCreationWizardService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserCreationWizardService });
570
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserCreationWizardService, decorators: [{
571
- type: Injectable
572
- }], ctorParameters: function () { return []; } });
573
-
574
- class UserDetailsStepComponent {
575
- constructor(userCreationWizardService) {
576
- this.userCreationWizardService = userCreationWizardService;
577
- }
578
- }
579
- UserDetailsStepComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserDetailsStepComponent, deps: [{ token: UserCreationWizardService }], target: i0.ɵɵFactoryTarget.Component });
580
- 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: i1$1.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.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" }] });
581
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserDetailsStepComponent, decorators: [{
582
- type: Component,
583
- 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"] }]
584
- }], ctorParameters: function () { return [{ type: UserCreationWizardService }]; } });
585
-
586
- class UserOverviewStepComponent {
587
- constructor(userCreationWizardService) {
588
- this.userCreationWizardService = userCreationWizardService;
589
- this.USER_DETAILS_COLS = ['User ID', 'First name', 'Last name', 'Email', 'User templates'];
590
- this.LINES_COLS = ['Number', 'DID', 'Route partition name', 'CSS', 'Description'];
591
- this.DEVICES_COLS = ['Name', 'Device type', 'Lines', 'Description'];
592
- }
593
- }
594
- UserOverviewStepComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserOverviewStepComponent, deps: [{ token: UserCreationWizardService }], target: i0.ɵɵFactoryTarget.Component });
595
- 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: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
596
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserOverviewStepComponent, decorators: [{
597
- type: Component,
598
- 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"] }]
599
- }], ctorParameters: function () { return [{ type: UserCreationWizardService }]; } });
600
-
601
- class UserTemplateStepComponent {
602
- constructor(userCreationWizardService, userCreationService, fb) {
603
- this.userCreationWizardService = userCreationWizardService;
604
- this.userCreationService = userCreationService;
605
- this.fb = fb;
606
- this.formGroup = this.fb.group({
607
- userType: [USER_CREATION_TYPES.CUCM],
608
- siteName: [''],
609
- userTemplateName: [''],
610
- });
611
- this.templates = ["A", "B", "C"];
612
- this.userCreationType = USER_CREATION_TYPES.CUCM;
613
- this.destroy$ = new Subject();
614
- this.customerId = localStorage.getItem('customerId') || '1477';
615
- this.filteredSites$ = this.userCreationService.sitesList$.pipe(takeUntil(this.destroy$));
616
- }
617
- ngOnInit() {
618
- this.formGroup.get('userType').valueChanges
619
- .pipe(takeUntil(this.destroy$), distinctUntilChanged())
620
- .subscribe((value) => {
621
- const isOnlyWithLocations = value === USER_CREATION_TYPES.MT ? true : false;
622
- this.getSites(isOnlyWithLocations).subscribe();
623
- });
624
- this.getData();
625
- }
626
- reseFieldstForm() {
627
- this.formGroup.get('siteName')?.reset();
628
- this.formGroup.get('userTemplateName')?.reset();
629
- }
630
- // public onSelectUserCreationType(event: any): void {
631
- // this.userCreationType = event.value;
632
- // const onlySitesWithLocation = this.userCreationType === USER_CREATION_TYPES.MT;
633
- // this.siteSelectionComponent.reset();
634
- // this.siteSelectionComponent.getOptions(onlySitesWithLocation);
635
- // }
636
- getData() {
637
- const isOnlyWithLocations = this.formGroup.get('userType')?.value === USER_CREATION_TYPES.MT ? true : false;
638
- this.userCreationService.checkControlHubIntegration(this.customerId)
639
- .pipe(switchMap(() => this.getSites(isOnlyWithLocations)))
640
- .subscribe();
641
- }
642
- getSites(isOnlyWithLocations) {
643
- return this.userCreationService.getAllCustomerSites(this.customerId, isOnlyWithLocations);
644
- }
645
- ngOnDestroy() {
646
- this.destroy$.next();
647
- this.destroy$.complete();
648
- }
649
- }
650
- 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 });
651
- UserTemplateStepComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: UserTemplateStepComponent, selector: "tk-user-template-step", 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]=\"'CUCM'\">\r\n CUCM\r\n </mat-radio-button>\r\n <mat-radio-button class=\"user-type-mat-radio\" id=\"userCreationMT\" [value]=\"'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=\"siteName\">\r\n <mat-option *ngFor=\"let site of filteredSites$ | 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 <div class=\"template-step-field\">\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=\"userTemplateName\">\r\n <mat-option *ngFor=\"let template of templates\" [value]=\"template\">\r\n {{ template }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\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: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { 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: i1$1.AsyncPipe, name: "async" }] });
652
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserTemplateStepComponent, decorators: [{
653
- type: Component,
654
- 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]=\"'CUCM'\">\r\n CUCM\r\n </mat-radio-button>\r\n <mat-radio-button class=\"user-type-mat-radio\" id=\"userCreationMT\" [value]=\"'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=\"siteName\">\r\n <mat-option *ngFor=\"let site of filteredSites$ | 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 <div class=\"template-step-field\">\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=\"userTemplateName\">\r\n <mat-option *ngFor=\"let template of templates\" [value]=\"template\">\r\n {{ template }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\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"] }]
655
- }], ctorParameters: function () { return [{ type: UserCreationWizardService }, { type: UserCreationApiService }, { type: i3$1.FormBuilder }]; } });
656
-
657
- class UserCreationWizardComponent {
658
- constructor() {
659
- this.title = 'Create User';
660
- this.cancel = new EventEmitter();
661
- this.submit = new EventEmitter();
662
- this.isSubmitting = false;
663
- this.submitTimerId = null;
664
- }
665
- onCancel() {
666
- this.cancel.emit();
667
- }
668
- onSubmit() {
669
- if (this.isSubmitting) {
670
- return;
671
- }
672
- this.isSubmitting = true;
673
- const delayMs = 3000 + Math.floor(Math.random() * 1001);
674
- this.submitTimerId = window.setTimeout(() => {
675
- this.isSubmitting = false;
676
- this.submitTimerId = null;
677
- this.submit.emit();
678
- }, delayMs);
679
- }
680
- ngOnDestroy() {
681
- if (this.submitTimerId) {
682
- window.clearTimeout(this.submitTimerId);
683
- this.submitTimerId = null;
684
- }
685
- }
686
- }
687
- UserCreationWizardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserCreationWizardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
688
- 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></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: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1$1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i4.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" }, { kind: "component", type: UserDetailsStepComponent, selector: "tk-user-details-step" }, { kind: "component", type: UserOverviewStepComponent, selector: "tk-user-overview-step" }], encapsulation: i0.ViewEncapsulation.None });
689
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserCreationWizardComponent, decorators: [{
690
- type: Component,
691
- 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></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"] }]
692
- }], propDecorators: { title: [{
693
- type: Input
694
- }], token: [{
695
- type: Input
696
- }], customerId: [{
697
- type: Input
698
- }], cancel: [{
699
- type: Output
700
- }], submit: [{
701
- type: Output
702
- }] } });
703
-
704
- class UserCreationModule {
705
- }
706
- UserCreationModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserCreationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
707
- UserCreationModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: UserCreationModule, declarations: [UserCreationWizardComponent,
708
- UserTemplateStepComponent,
709
- UserDetailsStepComponent,
710
- UserOverviewStepComponent], imports: [CommonModule,
711
- SharedModule,
712
- MaterialModule,
713
- MatStepperModule,
714
- MatExpansionModule,
715
- FormsModule,
716
- ReactiveFormsModule,
717
- MatRadioModule], exports: [UserCreationWizardComponent] });
718
- UserCreationModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserCreationModule, providers: [
719
- UserCreationApiService,
720
- UserCreationWizardService,
721
- ], imports: [CommonModule,
722
- SharedModule,
723
- MaterialModule,
724
- MatStepperModule,
725
- MatExpansionModule,
726
- FormsModule,
727
- ReactiveFormsModule,
728
- MatRadioModule] });
729
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserCreationModule, decorators: [{
730
- type: NgModule,
731
- args: [{
732
- declarations: [
733
- UserCreationWizardComponent,
734
- UserTemplateStepComponent,
735
- UserDetailsStepComponent,
736
- UserOverviewStepComponent
737
- ],
738
- imports: [
739
- CommonModule,
740
- SharedModule,
741
- MaterialModule,
742
- MatStepperModule,
743
- MatExpansionModule,
744
- FormsModule,
745
- ReactiveFormsModule,
746
- MatRadioModule
747
- ],
748
- exports: [
749
- UserCreationWizardComponent
750
- ],
751
- providers: [
752
- UserCreationApiService,
753
- UserCreationWizardService,
754
- ]
755
- }]
756
- }] });
757
-
758
- /*
759
- * Public API Surface of @tuki-io/tuki-widgets
760
- */
761
- // Shared Components
762
- // export * from './shared/shared.module';
763
- // Widget Modules
764
- // Types
765
- // export * from './shared/types/data-table';
766
-
767
- /**
768
- * Generated bundle index. Do not edit.
769
- */
770
-
771
- export { UserCreationModule, UserCreationWizardComponent };
772
- //# sourceMappingURL=tuki-io-tuki-widgets-user-creation.mjs.map