@tuki-io/tuki-widgets 0.0.162 → 0.0.164

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 (29) hide show
  1. package/esm2020/di2mt/shared/services/api.service.mjs +2 -2
  2. package/esm2020/user-creation/src/app.constants.mjs +14 -0
  3. package/esm2020/user-creation/src/classes/site.mjs +53 -0
  4. package/esm2020/user-creation/src/shared/api/api.service.mjs +86 -0
  5. package/esm2020/user-creation/src/shared/services/user-creation-api.service.mjs +94 -3
  6. package/esm2020/user-creation/src/shared/services/utils.mjs +19 -0
  7. package/esm2020/user-creation/src/shared/shared.module.mjs +2 -2
  8. package/esm2020/user-creation/src/user-creation.module.mjs +25 -14
  9. package/esm2020/user-creation/src/widgets/user-creation-wizard/components/user-details-step/user-details-step.component.mjs +3 -3
  10. package/esm2020/user-creation/src/widgets/user-creation-wizard/components/user-template-step/user-template-step.component.mjs +59 -10
  11. package/esm2020/user-creation/src/widgets/user-creation-wizard/user-creation-wizard.component.mjs +21 -4
  12. package/esm2020/user-creation/src/widgets/user-creation-wizard/user-creation-wizard.service.mjs +3 -3
  13. package/fesm2015/tuki-io-tuki-widgets-di2mt.mjs +1 -1
  14. package/fesm2015/tuki-io-tuki-widgets-di2mt.mjs.map +1 -1
  15. package/fesm2015/tuki-io-tuki-widgets-user-creation.mjs +465 -135
  16. package/fesm2015/tuki-io-tuki-widgets-user-creation.mjs.map +1 -1
  17. package/fesm2020/tuki-io-tuki-widgets-di2mt.mjs +1 -1
  18. package/fesm2020/tuki-io-tuki-widgets-di2mt.mjs.map +1 -1
  19. package/fesm2020/tuki-io-tuki-widgets-user-creation.mjs +462 -134
  20. package/fesm2020/tuki-io-tuki-widgets-user-creation.mjs.map +1 -1
  21. package/package.json +1 -1
  22. package/user-creation/src/app.constants.d.ts +13 -0
  23. package/user-creation/src/classes/site.d.ts +188 -0
  24. package/user-creation/src/shared/api/api.service.d.ts +20 -0
  25. package/user-creation/src/shared/services/user-creation-api.service.d.ts +15 -0
  26. package/user-creation/src/shared/services/utils.d.ts +1 -0
  27. package/user-creation/src/user-creation.module.d.ts +3 -1
  28. package/user-creation/src/widgets/user-creation-wizard/components/user-template-step/user-template-step.component.d.ts +20 -1
  29. package/user-creation/src/widgets/user-creation-wizard/user-creation-wizard.component.d.ts +5 -2
@@ -1 +1 @@
1
- {"version":3,"file":"tuki-io-tuki-widgets-user-creation.mjs","sources":["../../../../projects/tuki/widgets/user-creation/src/shared/services/user-creation-api.service.ts","../../../../projects/tuki/widgets/user-creation/src/widgets/user-creation-wizard/user-creation-wizard.service.ts","../../../../projects/tuki/widgets/user-creation/src/widgets/user-creation-wizard/components/user-template-step/user-template-step.component.ts","../../../../projects/tuki/widgets/user-creation/src/widgets/user-creation-wizard/components/user-template-step/user-template-step.component.html","../../../../projects/tuki/widgets/user-creation/src/widgets/user-creation-wizard/components/user-details-step/user-details-step.component.ts","../../../../projects/tuki/widgets/user-creation/src/widgets/user-creation-wizard/components/user-details-step/user-details-step.component.html","../../../../projects/tuki/widgets/user-creation/src/widgets/user-creation-wizard/components/user-overview-step/user-overview-step.component.ts","../../../../projects/tuki/widgets/user-creation/src/widgets/user-creation-wizard/components/user-overview-step/user-overview-step.component.html","../../../../projects/tuki/widgets/user-creation/src/widgets/user-creation-wizard/user-creation-wizard.component.ts","../../../../projects/tuki/widgets/user-creation/src/widgets/user-creation-wizard/user-creation-wizard.component.html","../../../../projects/tuki/widgets/user-creation/src/shared/material.module.ts","../../../../projects/tuki/widgets/user-creation/src/shared/shared.module.ts","../../../../projects/tuki/widgets/user-creation/src/user-creation.module.ts","../../../../projects/tuki/widgets/user-creation/public-api.ts","../../../../projects/tuki/widgets/user-creation/tuki-io-tuki-widgets-user-creation.ts"],"sourcesContent":["import { Injectable } from \"@angular/core\";\r\n\r\n@Injectable()\r\nexport class UserCreationApiService {}","import { inject, Injectable } from \"@angular/core\";\r\nimport { UserCreationApiService } from \"../../shared/services/user-creation-api.service\";\r\n\r\nexport interface LdapUserRow {\r\n userId: string;\r\n firstName: string;\r\n lastName: string;\r\n email: string;\r\n}\r\n\r\nexport interface OverviewUserRow extends LdapUserRow {\r\n userTemplate: string;\r\n}\r\n\r\nexport interface OverviewLineRow {\r\n number: string;\r\n did: string;\r\n routePartitionName: string;\r\n css: string;\r\n description: string;\r\n}\r\n\r\nexport interface OverviewDeviceRow {\r\n name: string;\r\n deviceType: string;\r\n lines: string;\r\n description: string;\r\n}\r\n\r\nexport type UserCreationType = 'CUCM' | 'MT';\r\n\r\nexport interface UserDetailsForm {\r\n userId: string;\r\n firstName: string;\r\n lastName: string;\r\n email: string;\r\n}\r\n\r\nexport interface LineOption {\r\n number: string;\r\n did: string;\r\n css: string;\r\n description: string;\r\n}\r\n\r\nexport interface SelectedLineRow {\r\n lineNumber: string | null;\r\n routePartitionName: string | null;\r\n}\r\n\r\nexport interface DeviceEntry {\r\n deviceType: string;\r\n protocol: string;\r\n buttonTemplate: string;\r\n name: string;\r\n}\r\n\r\n@Injectable()\r\nexport class UserCreationWizardService {\r\n private readonly api = inject(UserCreationApiService);\r\n\r\n readonly ldapTableColumns: string[] = ['userId', 'firstName', 'lastName', 'email', 'add'];\r\n readonly userCreationTypes: UserCreationType[] = ['CUCM', 'MT'];\r\n\r\n siteOptions: string[] = [];\r\n templateOptions: string[] = [];\r\n lineOptions: LineOption[] = [];\r\n routePartitionOptions: string[] = [];\r\n deviceRows: number[] = [];\r\n ldapUsers: LdapUserRow[] = [];\r\n overviewUsers: OverviewUserRow[] = [];\r\n overviewLines: OverviewLineRow[] = [];\r\n overviewDevices: OverviewDeviceRow[] = [];\r\n userDetailsForm: UserDetailsForm = {\r\n userId: '',\r\n firstName: '',\r\n lastName: '',\r\n email: ''\r\n };\r\n lineSelections: SelectedLineRow[] = [];\r\n deviceEntries: DeviceEntry[] = [];\r\n\r\n selectedSite: string | null = null;\r\n selectedTemplate: string | null = null;\r\n selectedUserCreationType: UserCreationType = 'CUCM';\r\n\r\n constructor() {\r\n this.loadPlaceholderData();\r\n }\r\n\r\n setSelectedSite(site: string | null): void {\r\n this.selectedSite = site;\r\n }\r\n\r\n setSelectedTemplate(template: string | null): void {\r\n this.selectedTemplate = template;\r\n this.rebuildOverviewUsers();\r\n }\r\n\r\n setSelectedUserCreationType(type: UserCreationType): void {\r\n this.selectedUserCreationType = type;\r\n }\r\n\r\n setUserDetailsField(field: keyof UserDetailsForm, value: string): void {\r\n this.userDetailsForm = {\r\n ...this.userDetailsForm,\r\n [field]: value\r\n };\r\n this.rebuildOverviewUsers();\r\n }\r\n\r\n setLineSelection(index: number, lineNumber: string | null): void {\r\n if (!this.lineSelections[index]) {\r\n return;\r\n }\r\n this.lineSelections[index] = {\r\n ...this.lineSelections[index],\r\n lineNumber\r\n };\r\n this.rebuildOverviewLines();\r\n this.rebuildOverviewDevices();\r\n }\r\n\r\n setRoutePartitionSelection(index: number, routePartitionName: string | null): void {\r\n if (!this.lineSelections[index]) {\r\n return;\r\n }\r\n this.lineSelections[index] = {\r\n ...this.lineSelections[index],\r\n routePartitionName\r\n };\r\n this.rebuildOverviewLines();\r\n }\r\n\r\n setDeviceName(index: number, name: string): void {\r\n if (!this.deviceEntries[index]) {\r\n return;\r\n }\r\n this.deviceEntries[index] = {\r\n ...this.deviceEntries[index],\r\n name\r\n };\r\n this.rebuildOverviewDevices();\r\n }\r\n\r\n // Placeholder bootstrap until backend APIs are connected.\r\n loadPlaceholderData(): void {\r\n this.siteOptions = ['Site 1', 'Site 2', 'Site 3'];\r\n this.templateOptions = ['Template A', 'Template B', 'Template C'];\r\n this.lineOptions = [\r\n {\r\n number: '1001',\r\n did: '+1 555 0101',\r\n css: 'Internal-CSS',\r\n description: 'Primary line'\r\n },\r\n {\r\n number: '1002',\r\n did: '+1 555 0102',\r\n css: 'Support-CSS',\r\n description: 'Backup line'\r\n },\r\n {\r\n number: '1003',\r\n did: '+1 555 0103',\r\n css: 'Lobby-CSS',\r\n description: 'Lobby phone line'\r\n }\r\n ];\r\n this.routePartitionOptions = ['Partition A', 'Partition B', 'Partition C'];\r\n this.deviceRows = [1, 2];\r\n this.ldapUsers = [\r\n { userId: 'user_01', firstName: 'John', lastName: 'Doe', email: 'john.doe@example.com' },\r\n { userId: 'user_02', firstName: 'Jane', lastName: 'Smith', email: 'jane.smith@example.com' }\r\n ];\r\n this.lineSelections = [\r\n {\r\n lineNumber: this.lineOptions[0]?.number || null,\r\n routePartitionName: this.routePartitionOptions[0] || null\r\n },\r\n {\r\n lineNumber: this.lineOptions[1]?.number || null,\r\n routePartitionName: this.routePartitionOptions[1] || null\r\n }\r\n ];\r\n this.deviceEntries = [\r\n {\r\n deviceType: 'Cisco 8845',\r\n protocol: 'SIP',\r\n buttonTemplate: 'Standard 8845',\r\n name: 'SEP001122334455'\r\n },\r\n {\r\n deviceType: 'Cisco Jabber',\r\n protocol: 'SIP',\r\n buttonTemplate: 'Standard Jabber',\r\n name: 'CSFJDOE'\r\n }\r\n ];\r\n this.selectedTemplate = this.selectedTemplate || this.templateOptions[0] || null;\r\n this.rebuildOverviewUsers();\r\n this.rebuildOverviewLines();\r\n this.rebuildOverviewDevices();\r\n }\r\n\r\n private rebuildOverviewUsers(): void {\r\n const userTemplate = this.selectedTemplate || this.templateOptions[0] || '';\r\n const hasUserData = Object.values(this.userDetailsForm).some(value => value.trim().length > 0);\r\n this.overviewUsers = hasUserData\r\n ? [{\r\n userId: this.userDetailsForm.userId,\r\n firstName: this.userDetailsForm.firstName,\r\n lastName: this.userDetailsForm.lastName,\r\n email: this.userDetailsForm.email,\r\n userTemplate\r\n }]\r\n : [];\r\n }\r\n\r\n private rebuildOverviewLines(): void {\r\n this.overviewLines = this.lineSelections\r\n .map(selection => {\r\n if (!selection?.lineNumber) {\r\n return null;\r\n }\r\n const selectedLine = this.lineOptions.find(line => line.number === selection.lineNumber);\r\n if (!selectedLine) {\r\n return null;\r\n }\r\n return {\r\n number: selectedLine.number,\r\n did: selectedLine.did,\r\n routePartitionName: selection.routePartitionName || this.routePartitionOptions[0] || '',\r\n css: selectedLine.css,\r\n description: selectedLine.description\r\n };\r\n })\r\n .filter((line): line is OverviewLineRow => !!line);\r\n }\r\n\r\n private rebuildOverviewDevices(): void {\r\n const selectedLineNumbers = this.overviewLines.map(line => line.number).join(', ');\r\n this.overviewDevices = this.deviceEntries\r\n .filter(device => device.name.trim().length > 0 || device.deviceType.trim().length > 0)\r\n .map(device => ({\r\n name: device.name,\r\n deviceType: device.deviceType,\r\n lines: selectedLineNumbers,\r\n description: `${device.protocol} / ${device.buttonTemplate}`\r\n }));\r\n }\r\n\r\n // TODO: replace placeholders with real API integration.\r\n loadDataFromApi(): void {\r\n // this.api.getWizardBootstrapData().subscribe(...)\r\n }\r\n}","import { Component } from \"@angular/core\";\r\nimport { UserCreationWizardService } from \"../../user-creation-wizard.service\";\r\n\r\n@Component({\r\n selector: 'tk-user-template-step',\r\n templateUrl: './user-template-step.component.html',\r\n styleUrls: ['./user-template-step.component.scss']\r\n})\r\nexport class UserTemplateStepComponent {\r\n constructor(\r\n public userCreationWizardService: UserCreationWizardService\r\n ) {}\r\n}","<section class=\"template-step-content\">\r\n <div class=\"template-step-field template-step-field--user-type\">\r\n <label class=\"template-step-label\">User type</label>\r\n <div class=\"user-type-radio-group\" role=\"radiogroup\" aria-label=\"User type\">\r\n <label class=\"user-type-radio-option\" *ngFor=\"let type of userCreationWizardService.userCreationTypes\">\r\n <input\r\n class=\"user-type-radio-option__input\"\r\n type=\"radio\"\r\n name=\"user-creation-type\"\r\n [value]=\"type\"\r\n [checked]=\"type === userCreationWizardService.selectedUserCreationType\"\r\n (change)=\"userCreationWizardService.setSelectedUserCreationType(type)\"\r\n />\r\n <span class=\"user-type-radio-option__control\" aria-hidden=\"true\"></span>\r\n <span class=\"user-type-radio-option__label\">{{ type }}</span>\r\n </label>\r\n </div>\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 [value]=\"userCreationWizardService.selectedSite\"\r\n (selectionChange)=\"userCreationWizardService.setSelectedSite($event.value)\"\r\n >\r\n <mat-option *ngFor=\"let site of userCreationWizardService.siteOptions\" [value]=\"site\">\r\n {{ site }}\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 [value]=\"userCreationWizardService.selectedTemplate\"\r\n (selectionChange)=\"userCreationWizardService.setSelectedTemplate($event.value)\"\r\n >\r\n <mat-option *ngFor=\"let template of userCreationWizardService.templateOptions\" [value]=\"template\">\r\n {{ template }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n</section>\r\n","import { Component } from \"@angular/core\";\r\nimport { UserCreationWizardService } from \"../../user-creation-wizard.service\";\r\n\r\n@Component({\r\n selector: 'tk-user-details-step',\r\n templateUrl: './user-details-step.component.html',\r\n styleUrls: ['./user-details-step.component.scss']\r\n})\r\nexport class UserDetailsStepComponent {\r\n constructor(\r\n public userCreationWizardService: UserCreationWizardService\r\n ) {}\r\n}","<section class=\"details-step-content\">\r\n <div class=\"details-step-dropdowns\">\r\n <div class=\"details-step-field\">\r\n <label class=\"details-step-label\">Select site</label>\r\n <mat-form-field class=\"details-step-select\" appearance=\"outline\">\r\n <mat-select\r\n placeholder=\"Site name\"\r\n [value]=\"userCreationWizardService.selectedSite\"\r\n (selectionChange)=\"userCreationWizardService.setSelectedSite($event.value)\"\r\n >\r\n <mat-option *ngFor=\"let site of userCreationWizardService.siteOptions\" [value]=\"site\">\r\n {{ site }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"details-step-field\">\r\n <label class=\"details-step-label\">Select user template</label>\r\n <mat-form-field class=\"details-step-select\" appearance=\"outline\">\r\n <mat-select\r\n placeholder=\"Templates\"\r\n [value]=\"userCreationWizardService.selectedTemplate\"\r\n (selectionChange)=\"userCreationWizardService.setSelectedTemplate($event.value)\"\r\n >\r\n <mat-option *ngFor=\"let template of userCreationWizardService.templateOptions\" [value]=\"template\">\r\n {{ template }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\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\">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","import { Component } from \"@angular/core\";\r\nimport { UserCreationWizardService } from \"../../user-creation-wizard.service\";\r\n\r\n@Component({\r\n selector: 'tk-user-overview-step',\r\n templateUrl: './user-overview-step.component.html',\r\n styleUrls: ['./user-overview-step.component.scss']\r\n})\r\nexport class UserOverviewStepComponent {\r\n readonly USER_DETAILS_COLS = ['User ID', 'First name', 'Last name', 'Email', 'User templates'];\r\n readonly LINES_COLS = ['Number', 'DID', 'Route partition name', 'CSS', 'Description'];\r\n readonly DEVICES_COLS = ['Name', 'Device type', 'Lines', 'Description'];\r\n\r\n constructor(\r\n public userCreationWizardService: UserCreationWizardService\r\n ) {}\r\n}","<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","import { Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'tk-user-creation-wizard',\n templateUrl: './user-creation-wizard.component.html',\n styleUrls: ['./user-creation-wizard.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class UserCreationWizardComponent {\n @Input() title = 'Create User';\n \n @Input() token!: string;\n @Input() customerId!: number;\n\n @Output() cancel = new EventEmitter<void>();\n @Output() submit = new EventEmitter<void>();\n\n onCancel(): void {\n this.cancel.emit();\n }\n\n onSubmit(): void {\n this.submit.emit();\n }\n}\n","<div class=\"move-user-stepper-container\">\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 mat-button class=\"uc-btn uc-btn-primary\" type=\"button\" (click)=\"onSubmit()\">\n Create\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 </ng-container>\n </div>\n </div>\n</div>\n","import { NgModule } from \"@angular/core\";\r\nimport { MatProgressBarModule } from \"@angular/material/progress-bar\"\r\nimport { MatTableModule } from \"@angular/material/table\";\r\nimport { MatTooltipModule } from \"@angular/material/tooltip\";\r\nimport { MatCheckboxModule } from \"@angular/material/checkbox\";\r\nimport { MatButtonModule } from \"@angular/material/button\";\r\nimport { MatIconModule } from \"@angular/material/icon\";\r\nimport { MatFormFieldModule } from \"@angular/material/form-field\";\r\nimport { MatInputModule } from \"@angular/material/input\";\r\nimport { MatSelectModule } from \"@angular/material/select\";\r\n\r\n@NgModule({\r\n imports: [\r\n MatProgressBarModule,\r\n MatTooltipModule,\r\n MatTableModule,\r\n MatCheckboxModule,\r\n MatButtonModule,\r\n MatIconModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n MatSelectModule\r\n ],\r\n exports: [\r\n MatProgressBarModule,\r\n MatTooltipModule,\r\n MatTableModule,\r\n MatCheckboxModule,\r\n MatButtonModule,\r\n MatIconModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n MatSelectModule\r\n ]\r\n})\r\nexport class MaterialModule { }","import { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { MaterialModule } from \"./material.module\";\r\nimport { NgApexchartsModule } from \"ng-apexcharts\"\r\nimport { MatTableModule } from \"@angular/material/table\";\r\nimport { HttpClientModule } from \"@angular/common/http\";\r\n\r\n@NgModule({\r\n declarations: [],\r\n imports: [\r\n CommonModule,\r\n MaterialModule,\r\n NgApexchartsModule,\r\n HttpClientModule\r\n ],\r\n exports: [\r\n MaterialModule\r\n ]\r\n})\r\nexport class SharedModule {}","import { NgModule } from \"@angular/core\";\r\nimport { UserCreationWizardComponent } from \"./widgets/user-creation-wizard/user-creation-wizard.component\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { UserTemplateStepComponent } from \"./widgets/user-creation-wizard/components/user-template-step/user-template-step.component\";\r\nimport { UserDetailsStepComponent } from \"./widgets/user-creation-wizard/components/user-details-step/user-details-step.component\";\r\nimport { UserOverviewStepComponent } from \"./widgets/user-creation-wizard/components/user-overview-step/user-overview-step.component\";\r\nimport { UserCreationApiService } from \"./shared/services/user-creation-api.service\";\r\nimport { UserCreationWizardService } from \"./widgets/user-creation-wizard/user-creation-wizard.service\";\r\nimport { MatStepperModule } from \"@angular/material/stepper\";\r\nimport { MatExpansionModule } from \"@angular/material/expansion\";\r\nimport { SharedModule } from \"./shared/shared.module\";\r\nimport { MaterialModule } from \"./shared/material.module\";\r\n\r\n@NgModule({\r\n declarations: [\r\n UserCreationWizardComponent,\r\n UserTemplateStepComponent,\r\n UserDetailsStepComponent,\r\n UserOverviewStepComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n SharedModule,\r\n MaterialModule,\r\n MatStepperModule,\r\n MatExpansionModule\r\n ],\r\n exports: [\r\n UserCreationWizardComponent\r\n ],\r\n providers: [\r\n UserCreationApiService,\r\n UserCreationWizardService\r\n ]\r\n})\r\nexport class UserCreationModule {}","/*\r\n * Public API Surface of @tuki-io/tuki-widgets\r\n */\r\n\r\n// Shared Components\r\n// export * from './shared/shared.module';\r\n\r\n// Widget Modules\r\nexport * from './src/user-creation.module';\r\n\r\n// Components\r\n// export * from './shared/components/index';\r\nexport * from './src/widgets/user-creation-wizard/user-creation-wizard.component';\r\n\r\n// Types\r\n// export * from './shared/types/data-table';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.UserCreationWizardService","i3","i4","i5","i7","i8","i1","i2","i4.UserTemplateStepComponent","i5.UserDetailsStepComponent","i6.UserOverviewStepComponent"],"mappings":"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"}
1
+ {"version":3,"file":"tuki-io-tuki-widgets-user-creation.mjs","sources":["../../../../projects/tuki/widgets/user-creation/src/shared/material.module.ts","../../../../projects/tuki/widgets/user-creation/src/shared/services/utils.ts","../../../../projects/tuki/widgets/user-creation/src/classes/site.ts","../../../../projects/tuki/widgets/user-creation/src/app.constants.ts","../../../../projects/tuki/widgets/user-creation/src/shared/api/api.service.ts","../../../../projects/tuki/widgets/user-creation/src/shared/services/user-creation-api.service.ts","../../../../projects/tuki/widgets/user-creation/src/shared/shared.module.ts","../../../../projects/tuki/widgets/user-creation/src/widgets/user-creation-wizard/user-creation-wizard.service.ts","../../../../projects/tuki/widgets/user-creation/src/widgets/user-creation-wizard/components/user-details-step/user-details-step.component.ts","../../../../projects/tuki/widgets/user-creation/src/widgets/user-creation-wizard/components/user-details-step/user-details-step.component.html","../../../../projects/tuki/widgets/user-creation/src/widgets/user-creation-wizard/components/user-overview-step/user-overview-step.component.ts","../../../../projects/tuki/widgets/user-creation/src/widgets/user-creation-wizard/components/user-overview-step/user-overview-step.component.html","../../../../projects/tuki/widgets/user-creation/src/widgets/user-creation-wizard/components/user-template-step/user-template-step.component.ts","../../../../projects/tuki/widgets/user-creation/src/widgets/user-creation-wizard/components/user-template-step/user-template-step.component.html","../../../../projects/tuki/widgets/user-creation/src/widgets/user-creation-wizard/user-creation-wizard.component.ts","../../../../projects/tuki/widgets/user-creation/src/widgets/user-creation-wizard/user-creation-wizard.component.html","../../../../projects/tuki/widgets/user-creation/src/user-creation.module.ts","../../../../projects/tuki/widgets/user-creation/public-api.ts","../../../../projects/tuki/widgets/user-creation/tuki-io-tuki-widgets-user-creation.ts"],"sourcesContent":["import { NgModule } from \"@angular/core\";\r\nimport { MatProgressBarModule } from \"@angular/material/progress-bar\"\r\nimport { MatTableModule } from \"@angular/material/table\";\r\nimport { MatTooltipModule } from \"@angular/material/tooltip\";\r\nimport { MatCheckboxModule } from \"@angular/material/checkbox\";\r\nimport { MatButtonModule } from \"@angular/material/button\";\r\nimport { MatIconModule } from \"@angular/material/icon\";\r\nimport { MatFormFieldModule } from \"@angular/material/form-field\";\r\nimport { MatInputModule } from \"@angular/material/input\";\r\nimport { MatSelectModule } from \"@angular/material/select\";\r\n\r\n@NgModule({\r\n imports: [\r\n MatProgressBarModule,\r\n MatTooltipModule,\r\n MatTableModule,\r\n MatCheckboxModule,\r\n MatButtonModule,\r\n MatIconModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n MatSelectModule\r\n ],\r\n exports: [\r\n MatProgressBarModule,\r\n MatTooltipModule,\r\n MatTableModule,\r\n MatCheckboxModule,\r\n MatButtonModule,\r\n MatIconModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n MatSelectModule\r\n ]\r\n})\r\nexport class MaterialModule { }","export const getSavableData = (model: any, exclude?: Array<string>) => {\n let result = Object.keys(model);\n if (exclude && exclude.length) {\n result = result.filter(key => !exclude.some(item => item === key));\n }\n return result.reduce((result: any, key) => {\n if (model[key] instanceof Array && model[key].length && model[key][0].getSavableData) {\n result[key] = model[key].map((item: any) => item.getSavableData());\n } else if (model[key] instanceof Object && model[key].getSavableData) {\n result[key] = model[key].getSavableData();\n } else {\n result[key] = model[key];\n }\n return result;\n }, {});\n};","import { FormBuilder, FormGroup, Validators } from \"@angular/forms\";\nimport { getSavableData } from '../shared/services/utils';\n\nexport interface SiteInterface {\n id: number;\n name: string;\n country: any;\n locationName: string;\n isAfterTtu: boolean;\n shortName: string;\n ttuEnableDate?: string;\n cucm: any;\n cuc: any;\n hasActivated?: boolean;\n // hqStatus: boolean;\n deactivateDate?: string;\n siteUniqueId?: number;\n form: FormGroup;\n\n initForm: () => void;\n getSavableData: () => void;\n getId: () => void;\n}\n\n\nexport class Site implements SiteInterface {\n id!: number;\n name!: string;\n country: any;\n locationName!: string;\n isAfterTtu!: boolean;\n shortName!: string;\n ttuEnableDate?: string;\n cucm: any;\n cuc: any;\n hasActivated?: boolean;\n // hqStatus: boolean;\n deactivateDate?: string;\n address1?: string;\n address2?: string;\n city?: string;\n state?: string;\n zipCode?: string;\n form!: FormGroup;\n\n constructor(site?: SiteInterface) {\n Object.assign(this, site);\n this.initForm();\n }\n\n initForm() {\n const formBuilder = new FormBuilder();\n const formSettings = {\n name: [this.name || '', [Validators.required]],\n shortName: [this.shortName || '', [Validators.required]],\n cucm: [this.cucm || ''],\n cuc: [this.cuc || ''],\n address1: [this.address1 || ''],\n zipCode: [this.country || ''],\n city: [this.city || ''],\n state: [this.state || ''],\n country: [this.country || '', [Validators.required]],\n isAfterTtu: [this.isAfterTtu || ''],\n ttuEnableDate: [this.ttuEnableDate || '']\n };\n\n this.form = formBuilder.group(formSettings);\n }\n\n getSavableData() {\n const nonSavableData = ['form'];\n return getSavableData(this, nonSavableData);\n }\n\n getId() {\n return this.id;\n }\n}\n\nexport interface SiteTemplateInterface {\n id: number;\n routePartitionFilter: string | string[];\n devicePoolFilter: string | string[];\n cssFilter: string | string[] | undefined;\n voicemailProfileFilter: string | string[];\n lineCss: string;\n deviceCss: string;\n callForwardAllCss: string;\n location: string;\n voicemailUserTemplate: string;\n routePartition: string;\n devicePool: string;\n voicemailProfile: string;\n externalCallerId: string;\n huntPilotPartition: string;\n callPickupGroupPartition: string;\n meetMeConferencePartition: string;\n callParkPartition: string;\n userLocale: string;\n networkLocale: string;\n cucmGroup: string;\n softkeyTemplates: string;\n phoneButtonTemplate: string;\n phoneSecurityProfile: string;\n sipProfile: string;\n rdpCss: string;\n rdpRerouteCss: string;\n commonPhoneProfile: string;\n subscribeCss: string;\n enableEm: boolean | string;\n forwardHuntBusyCSS: string;\n forwardHuntNoAnswerCSS: string;\n forwardBusyInternalCss: string;\n forwardBusyExternalCss: string;\n forwardNoAnswerInternalCss: string;\n forwardNoAnswerExternalCss: string;\n forwardNoCoverageInternalCss: string;\n forwardNoCoverageExternalCss: string;\n forwardOnCtiFailureCss: string;\n forwardUnregisteredInternalCss: string;\n forwardUnregisteredExternalCss: string;\n rdpExternalCallerId: string;\n noAnswerRingDuration: string;\n ucServiceProfile: string;\n phoneSystem: string;\n maxNumberOfCalls: string;\n busyTrigger: string;\n didPartition: string;\n didCss: string;\n vossCompatibilitySiteCode: string;\n vossCompatibilityRidCode: string;\n dialPlanType: string;\n emService: string;\n emergencyPartition?: string;\n cucPartition: string;\n alertingName?: string;\n displayCallerId?: string;\n lineTextLabel?: string;\n textLabel?: string;\n internalTranslationPartition?: string;\n internalTranslationCss?: string;\n plarCss?: string;\n lineDescription?: string;\n deviceDescription?: string;\n sharedSitesCssFilter?: string[];\n sharedSitesRPFilter?: string[];\n reroutingCss?: string;\n udpDeviceType: string;\n udpDeviceProtocol: string;\n udpButtonTemplate: string;\n userUserLocale: string;\n userAccessControlGroups?: string;\n}\n\nexport class SiteDefaults implements SiteTemplateInterface {\n id!: number;\n routePartitionFilter: string[];\n devicePoolFilter: string[];\n cssFilter: string[];\n voicemailProfileFilter: string[];\n lineCss!: string;\n deviceCss!: string;\n callForwardAllCss!: string;\n location!: string;\n voicemailUserTemplate!: string;\n routePartition!: string;\n devicePool!: string;\n voicemailProfile!: string;\n externalCallerId!: string;\n huntPilotPartition!: string;\n callPickupGroupPartition!: string;\n meetMeConferencePartition!: string;\n callParkPartition!: string;\n userLocale!: string;\n networkLocale!: string;\n cucmGroup!: string;\n softkeyTemplates!: string;\n phoneButtonTemplate!: string;\n phoneSecurityProfile!: string;\n sipProfile!: string;\n rdpCss!: string;\n rdpRerouteCss!: string;\n commonPhoneProfile!: string;\n subscribeCss!: string;\n enableEm!: boolean;\n forwardHuntBusyCSS!: string;\n forwardHuntNoAnswerCSS!: string;\n forwardBusyInternalCss!: string;\n forwardBusyExternalCss!: string;\n forwardNoAnswerInternalCss!: string;\n forwardNoAnswerExternalCss!: string;\n forwardNoCoverageInternalCss!: string;\n forwardNoCoverageExternalCss!: string;\n forwardOnCtiFailureCss!: string;\n forwardUnregisteredInternalCss!: string;\n forwardUnregisteredExternalCss!: string;\n rdpExternalCallerId!: string;\n noAnswerRingDuration!: string;\n ucServiceProfile!: string;\n phoneSystem!: string;\n maxNumberOfCalls!: string;\n busyTrigger!: string;\n didPartition!: string;\n didCss!: string;\n vossCompatibilitySiteCode!: string;\n vossCompatibilityRidCode!: string;\n dialPlanType!: string;\n emService!: string;\n cucPartition!: string;\n alertingName?: string;\n displayCallerId?: string;\n textLabel?: string;\n internalTranslationPartition?: string;\n internalTranslationCss?: string;\n plarCss?: string;\n lineDescription?: string;\n deviceDescription?: string;\n sharedSitesCssFilter!: string[];\n sharedSitesRPFilter!: string[];\n udpDeviceType!: string;\n udpDeviceProtocol!: string;\n udpButtonTemplate!: string;\n userUserLocale!: string;\n userAccessControlGroups?: string;\n\n constructor(siteDefaults?: SiteTemplateInterface, isSharedLineSite?: boolean) {\n this.routePartitionFilter = [];\n this.devicePoolFilter = [];\n this.cssFilter = [];\n this.voicemailProfileFilter = [];\n if (siteDefaults) {\n Object.assign(this, siteDefaults);\n this.enableEm = siteDefaults.enableEm === 'true';\n this.routePartitionFilter.sort();\n this.devicePoolFilter.sort();\n this.cssFilter.sort();\n this.voicemailProfileFilter.sort();\n }\n if (isSharedLineSite) {\n this.cssFilter = siteDefaults?.sharedSitesCssFilter || [];\n this.routePartitionFilter = siteDefaults?.sharedSitesRPFilter || [];\n }\n }\n}\n","export const API = {\n WEBEX_CHECK_CONTROL_HUB_INTEGRATION: \"/api/search/webex/customers/:customerId/controlhubexists\",\n SITES: \"/api/customers/:customerId/sites\",\n SITE: \"/api/sites/:siteId\",\n DEVICE_TYPES: \"/api/provision/options/:siteId/devicetypes\",\n SITE_SETTINGS: \"/api/sites/:siteId/settings\",\n VM_USER_TEMPLATES: \"/api/provision/options/:siteId/vmusertemplates\",\n}\n\nexport const USER_CREATION_TYPES = {\n CUCM: 'CUCM',\n MT: 'MT'\n};\n\nexport const MAX_INTEGER = 2147483647;","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class APIService {\r\n public token: any;\r\n apiUrl = window.location.protocol + '//' + window.location.hostname + '/dcp';\r\n constructor(\r\n private httpClient: HttpClient\r\n ) {\r\n this.token = 'eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJhZG1pbkBjb3JyZW5ldC5jb20iLCJyb2xlcyI6IlNVUEVSX1VTRVIiLCJpYXQiOjE3NzM5MjU4NzAsImV4cCI6MTc3Mzk0Mzg3MH0.OFxsG5XvtI3zKpGtPSXVvDCkr3ls4k1Jp7_K1jO7V8Q'\r\n // this.apiUrl = window.location.protocol + '//' + window.location.host + '/dcp';\r\n this.apiUrl = 'https://dev.tuki.io/webex';\r\n // this.apiUrl = 'http://localhost:8088/dcp';\r\n }\r\n\r\n fetch(url: string, params?: any, cache?: boolean): Observable<any> {\r\n const headers = this.getHeaders(cache);\r\n params = params || {};\r\n return this.httpClient.get(this.apiUrl + url, {params: this.prepareEncodedParams(params), headers});\r\n }\r\n\r\n post(url: string, body: any, params = {}): Observable<any> {\r\n body = body || null;\r\n const headers = this.getHeaders();\r\n return this.httpClient.post(this.apiUrl + url, body, {params: this.prepareEncodedParams(params), headers});\r\n }\r\n\r\n // use when response extended data is necessary:\r\n postExtended(url: string, body = null, params = {}, headers = {}) {\r\n headers = headers || this.getHeaders();\r\n return this.httpClient.post(this.apiUrl + url, body, {\r\n headers,\r\n observe: 'response',\r\n params: this.prepareEncodedParams(params)\r\n });\r\n }\r\n\r\n put(url: string, body = null, params = {}) {\r\n const headers = this.getHeaders();\r\n return this.httpClient.put(this.apiUrl + url, body, {headers, params: this.prepareEncodedParams(params)});\r\n }\r\n\r\n delete(url: string, params = {}) {\r\n const headers = this.getHeaders();\r\n return this.httpClient.delete(this.apiUrl + url, {headers, params: this.prepareEncodedParams(params)});\r\n }\r\n\r\n fetchPagination(url: string, pageSize: number, pageNumber: number, additionalParams = {}, cache?: boolean): Observable<any> {\r\n const copyAdditionalParams = JSON.parse(JSON.stringify(additionalParams));\r\n const params = Object.assign(copyAdditionalParams, {size: pageSize.toString(), page: pageNumber.toString()});\r\n return this.fetch(url, params, cache) as Observable<any>;\r\n }\r\n\r\n private prepareEncodedParams(params: any) {\r\n const result: any = {};\r\n\r\n if (!params) {\r\n return {};\r\n }\r\n for (const key of Object.keys(params)) {\r\n if (params[key]) {\r\n const stringParam = params[key].toString();\r\n result[key] = stringParam.includes('+') ? encodeURIComponent(stringParam) : stringParam;\r\n }\r\n }\r\n return result;\r\n }\r\n\r\n private getHeaders(cache?: boolean): HttpHeaders {\r\n let headers = new HttpHeaders();\r\n if (cache) {\r\n headers = headers.append('_Cache', 'true ');\r\n }\r\n const token = this.token || this.getParameterByName('token');\r\n headers = headers.append('Authorization', 'Bearer '+ token);\r\n return headers;\r\n }\r\n\r\n private getParameterByName(name: any, url = window.location.href) {\r\n name = name.replace(/[\\[\\]]/g, '\\\\$&');\r\n var regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)'),\r\n results = regex.exec(url);\r\n if (!results) return null;\r\n if (!results[2]) return '';\r\n return decodeURIComponent(results[2].replace(/\\+/g, ' '));\r\n }\r\n}","import { inject, Injectable } from \"@angular/core\";\nimport { BehaviorSubject, forkJoin, map, Observable, tap } from \"rxjs\";\nimport { Site, SiteDefaults, SiteInterface, SiteTemplateInterface } from \"../../classes/site\";\n// import { APIService } from \"./api.service\";\nimport { API, MAX_INTEGER } from \"../../app.constants\";\nimport { APIService } from \"../api/api.service\";\n\n@Injectable()\nexport class UserCreationApiService {\n\n private _allSites: Site[] = [];\n private readonly sitesListSubject$ = new BehaviorSubject<Site[]>([]);\n public readonly sitesList$ = this.sitesListSubject$.asObservable();\n\n private apiService = inject(APIService);\n\n constructor() {}\n\n public getSitesList() {\n\n }\n\n public checkControlHubIntegration(customerId: string) {\n const URL = API.WEBEX_CHECK_CONTROL_HUB_INTEGRATION.replace(':customerId', String(customerId));\n return this.apiService.fetch(URL);\n // .pipe(this.handleError(true, true));\n }\n\n public getAllCustomerSites(customerId: string, onlySitesWithLocation?: boolean): Observable<Site[]> {\n const params: { [key: string]: string } = {};\n if (onlySitesWithLocation) {\n params['onlySitesWithLocation'] = 'true';\n }\n return this.apiService.fetchPagination(API.SITES.replace(':customerId', String(customerId)), MAX_INTEGER, 0, params, false)\n .pipe(\n tap((res: any) => {\n // this._allSites = [];\n // if (res.pageData && res.pageData.length) {\n // this.assignAllSites(customerId, res.pageData);\n // }\n // this.allCustomerSites$.next(true);\n // return this._allSites;\n this.sitesListSubject$.next(res.pageData);\n })\n )\n // .pipe(this.handleError(true));\n }\n\n public getSiteData(siteId: number) {\n // this.dataPending = true;\n return forkJoin([\n this.getSite(siteId),\n this.getDeviceTypes(siteId),\n this.getSiteDefaults(siteId, false),\n this.getVoiceMailUserTemplates(siteId)\n ]).subscribe(() => {\n // this.userFeaturesService.setDefaultUcProfile();\n\n // this.dataPending = false;\n }, (error: string) => {\n // this.dataPending = false;\n // this.notifications.error(this.translate.instant('APP_USER_MSG.NO_DATA'));\n });\n }\n\n public getSite(siteId: number, isEdit?: boolean): Observable<SiteInterface> {\n return this.apiService.fetch(API.SITE.replace(':siteId', String(siteId)), null, false)\n .pipe(map((siteData: any) => {\n const site = new Site(siteData);\n // if (isEdit) {\n // this.setEditSite(site);\n // } else {\n // this.setCurrentSite(site);\n // }\n return site;\n }))\n }\n\n public getDeviceTypes(siteId: number | string): Observable<string[]> {\n return this.apiService.fetch(API.DEVICE_TYPES.replace(':siteId', String(siteId)), null, true)\n // .pipe(\n // map((types: string[]) => {\n // // this.deviceTypes = types)\n // })\n // );\n // .pipe(this.handleError(false, true));\n }\n\n public getSiteDefaults(siteId: number, directAccess: boolean, sharedLineSiteIds?: string): Observable<SiteDefaults> {\n const params = {directAccess: directAccess};\n // if (sharedLineSiteIds) {\n // params['sharedLineSiteIds'] = sharedLineSiteIds;\n // }\n return this.apiService.fetch(API.SITE_SETTINGS.replace(':siteId', String(siteId)), params)\n // .pipe(map((siteDefaults: SiteTemplateInterface) => {\n // // this.siteDefaults = new SiteDefaults(siteDefaults, !!sharedLineSiteIds);\n // // const copiedSiteDefaults = JSON.parse(JSON.stringify(siteDefaults));\n // // this.originalSiteDefaults = new SiteDefaults(copiedSiteDefaults, !!sharedLineSiteIds);\n // }));\n // .pipe(this.handleError(true, true));\n }\n\n public getVoiceMailUserTemplates(siteId: number) {\n return this.apiService.fetch(API.VM_USER_TEMPLATES.replace(':siteId', String(siteId)), null, true)\n .pipe(map((templates: string[]) => {\n // this.voiceMailTemplates = templates;\n }));\n // .pipe(this.handleError(false, true));\n }\n}","import { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { MaterialModule } from \"./material.module\";\r\nimport { NgApexchartsModule } from \"ng-apexcharts\"\r\nimport { MatTableModule } from \"@angular/material/table\";\r\nimport { HttpClientModule } from \"@angular/common/http\";\r\n\r\n@NgModule({\r\n declarations: [],\r\n imports: [\r\n CommonModule,\r\n MaterialModule,\r\n NgApexchartsModule,\r\n HttpClientModule,\r\n ],\r\n exports: [\r\n MaterialModule\r\n ]\r\n})\r\nexport class SharedModule {}","import { inject, Injectable } from \"@angular/core\";\r\nimport { UserCreationApiService } from \"../../shared/services/user-creation-api.service\";\r\n\r\nexport interface LdapUserRow {\r\n userId: string;\r\n firstName: string;\r\n lastName: string;\r\n email: string;\r\n}\r\n\r\nexport interface OverviewUserRow extends LdapUserRow {\r\n userTemplate: string;\r\n}\r\n\r\nexport interface OverviewLineRow {\r\n number: string;\r\n did: string;\r\n routePartitionName: string;\r\n css: string;\r\n description: string;\r\n}\r\n\r\nexport interface OverviewDeviceRow {\r\n name: string;\r\n deviceType: string;\r\n lines: string;\r\n description: string;\r\n}\r\n\r\nexport type UserCreationType = 'CUCM' | 'MT';\r\n\r\nexport interface UserDetailsForm {\r\n userId: string;\r\n firstName: string;\r\n lastName: string;\r\n email: string;\r\n}\r\n\r\nexport interface LineOption {\r\n number: string;\r\n did: string;\r\n css: string;\r\n description: string;\r\n}\r\n\r\nexport interface SelectedLineRow {\r\n lineNumber: string | null;\r\n routePartitionName: string | null;\r\n}\r\n\r\nexport interface DeviceEntry {\r\n deviceType: string;\r\n protocol: string;\r\n buttonTemplate: string;\r\n name: string;\r\n}\r\n\r\n@Injectable()\r\nexport class UserCreationWizardService {\r\n private readonly api = inject(UserCreationApiService);\r\n\r\n readonly ldapTableColumns: string[] = ['userId', 'firstName', 'lastName', 'email', 'add'];\r\n readonly userCreationTypes: UserCreationType[] = ['CUCM', 'MT'];\r\n\r\n siteOptions: string[] = [];\r\n templateOptions: string[] = [];\r\n lineOptions: LineOption[] = [];\r\n routePartitionOptions: string[] = [];\r\n deviceRows: number[] = [];\r\n ldapUsers: LdapUserRow[] = [];\r\n overviewUsers: OverviewUserRow[] = [];\r\n overviewLines: OverviewLineRow[] = [];\r\n overviewDevices: OverviewDeviceRow[] = [];\r\n userDetailsForm: UserDetailsForm = {\r\n userId: '',\r\n firstName: '',\r\n lastName: '',\r\n email: ''\r\n };\r\n lineSelections: SelectedLineRow[] = [];\r\n deviceEntries: DeviceEntry[] = [];\r\n\r\n selectedSite: string | null = null;\r\n selectedTemplate: string | null = null;\r\n selectedUserCreationType: UserCreationType = 'CUCM';\r\n\r\n constructor() {\r\n this.loadPlaceholderData();\r\n }\r\n\r\n setSelectedSite(site: string | null): void {\r\n this.selectedSite = site;\r\n }\r\n\r\n setSelectedTemplate(template: string | null): void {\r\n this.selectedTemplate = template;\r\n this.rebuildOverviewUsers();\r\n }\r\n\r\n setSelectedUserCreationType(type: UserCreationType): void {\r\n this.selectedUserCreationType = type;\r\n }\r\n\r\n setUserDetailsField(field: keyof UserDetailsForm, value: string): void {\r\n this.userDetailsForm = {\r\n ...this.userDetailsForm,\r\n [field]: value\r\n };\r\n this.rebuildOverviewUsers();\r\n }\r\n\r\n setLineSelection(index: number, lineNumber: string | null): void {\r\n if (!this.lineSelections[index]) {\r\n return;\r\n }\r\n this.lineSelections[index] = {\r\n ...this.lineSelections[index],\r\n lineNumber\r\n };\r\n this.rebuildOverviewLines();\r\n this.rebuildOverviewDevices();\r\n }\r\n\r\n setRoutePartitionSelection(index: number, routePartitionName: string | null): void {\r\n if (!this.lineSelections[index]) {\r\n return;\r\n }\r\n this.lineSelections[index] = {\r\n ...this.lineSelections[index],\r\n routePartitionName\r\n };\r\n this.rebuildOverviewLines();\r\n }\r\n\r\n setDeviceName(index: number, name: string): void {\r\n if (!this.deviceEntries[index]) {\r\n return;\r\n }\r\n this.deviceEntries[index] = {\r\n ...this.deviceEntries[index],\r\n name\r\n };\r\n this.rebuildOverviewDevices();\r\n }\r\n\r\n // Placeholder bootstrap until backend APIs are connected.\r\n loadPlaceholderData(): void {\r\n this.siteOptions = ['Site 1', 'Site 2', 'Site 3'];\r\n this.templateOptions = ['Template A', 'Template B', 'Template C'];\r\n this.lineOptions = [\r\n {\r\n number: '1001',\r\n did: '+1 555 0101',\r\n css: 'Internal-CSS',\r\n description: 'Primary line'\r\n },\r\n {\r\n number: '1002',\r\n did: '+1 555 0102',\r\n css: 'Support-CSS',\r\n description: 'Backup line'\r\n },\r\n {\r\n number: '1003',\r\n did: '+1 555 0103',\r\n css: 'Lobby-CSS',\r\n description: 'Lobby phone line'\r\n }\r\n ];\r\n this.routePartitionOptions = ['Partition A', 'Partition B', 'Partition C'];\r\n this.deviceRows = [1, 2];\r\n this.ldapUsers = [\r\n { userId: 'user_01', firstName: 'John', lastName: 'Doe', email: 'john.doe@example.com' },\r\n { userId: 'user_02', firstName: 'Jane', lastName: 'Smith', email: 'jane.smith@example.com' }\r\n ];\r\n this.lineSelections = [\r\n {\r\n lineNumber: this.lineOptions[0]?.number || null,\r\n routePartitionName: this.routePartitionOptions[0] || null\r\n },\r\n {\r\n lineNumber: this.lineOptions[1]?.number || null,\r\n routePartitionName: this.routePartitionOptions[1] || null\r\n }\r\n ];\r\n this.deviceEntries = [\r\n {\r\n deviceType: 'Cisco 8845',\r\n protocol: 'SIP',\r\n buttonTemplate: 'Standard 8845',\r\n name: 'SEP001122334455'\r\n },\r\n {\r\n deviceType: 'Cisco Jabber',\r\n protocol: 'SIP',\r\n buttonTemplate: 'Standard Jabber',\r\n name: 'CSFJDOE'\r\n }\r\n ];\r\n this.selectedTemplate = this.selectedTemplate ?? null;\r\n this.rebuildOverviewUsers();\r\n this.rebuildOverviewLines();\r\n this.rebuildOverviewDevices();\r\n }\r\n\r\n private rebuildOverviewUsers(): void {\r\n const userTemplate = this.selectedTemplate || '';\r\n const hasUserData = Object.values(this.userDetailsForm).some(value => value.trim().length > 0);\r\n this.overviewUsers = hasUserData\r\n ? [{\r\n userId: this.userDetailsForm.userId,\r\n firstName: this.userDetailsForm.firstName,\r\n lastName: this.userDetailsForm.lastName,\r\n email: this.userDetailsForm.email,\r\n userTemplate\r\n }]\r\n : [];\r\n }\r\n\r\n private rebuildOverviewLines(): void {\r\n this.overviewLines = this.lineSelections\r\n .map(selection => {\r\n if (!selection?.lineNumber) {\r\n return null;\r\n }\r\n const selectedLine = this.lineOptions.find(line => line.number === selection.lineNumber);\r\n if (!selectedLine) {\r\n return null;\r\n }\r\n return {\r\n number: selectedLine.number,\r\n did: selectedLine.did,\r\n routePartitionName: selection.routePartitionName || this.routePartitionOptions[0] || '',\r\n css: selectedLine.css,\r\n description: selectedLine.description\r\n };\r\n })\r\n .filter((line): line is OverviewLineRow => !!line);\r\n }\r\n\r\n private rebuildOverviewDevices(): void {\r\n const selectedLineNumbers = this.overviewLines.map(line => line.number).join(', ');\r\n this.overviewDevices = this.deviceEntries\r\n .filter(device => device.name.trim().length > 0 || device.deviceType.trim().length > 0)\r\n .map(device => ({\r\n name: device.name,\r\n deviceType: device.deviceType,\r\n lines: selectedLineNumbers,\r\n description: `${device.protocol} / ${device.buttonTemplate}`\r\n }));\r\n }\r\n\r\n // TODO: replace placeholders with real API integration.\r\n loadDataFromApi(): void {\r\n // this.api.getWizardBootstrapData().subscribe(...)\r\n }\r\n}","import { Component } from \"@angular/core\";\r\nimport { UserCreationWizardService } from \"../../user-creation-wizard.service\";\r\n\r\n@Component({\r\n selector: 'tk-user-details-step',\r\n templateUrl: './user-details-step.component.html',\r\n styleUrls: ['./user-details-step.component.scss']\r\n})\r\nexport class UserDetailsStepComponent {\r\n constructor(\r\n public userCreationWizardService: UserCreationWizardService\r\n ) {}\r\n}","<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","import { Component } from \"@angular/core\";\r\nimport { UserCreationWizardService } from \"../../user-creation-wizard.service\";\r\n\r\n@Component({\r\n selector: 'tk-user-overview-step',\r\n templateUrl: './user-overview-step.component.html',\r\n styleUrls: ['./user-overview-step.component.scss']\r\n})\r\nexport class UserOverviewStepComponent {\r\n readonly USER_DETAILS_COLS = ['User ID', 'First name', 'Last name', 'Email', 'User templates'];\r\n readonly LINES_COLS = ['Number', 'DID', 'Route partition name', 'CSS', 'Description'];\r\n readonly DEVICES_COLS = ['Name', 'Device type', 'Lines', 'Description'];\r\n\r\n constructor(\r\n public userCreationWizardService: UserCreationWizardService\r\n ) {}\r\n}","<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","import { Component } from \"@angular/core\";\r\nimport { UserCreationWizardService } from \"../../user-creation-wizard.service\";\r\nimport { USER_CREATION_TYPES } from '../../../../app.constants';\r\nimport { FormBuilder } from \"@angular/forms\";\r\nimport { distinctUntilChanged, Subject, switchMap, takeUntil } from \"rxjs\";\r\nimport { UserCreationApiService } from \"../../../../shared/services/user-creation-api.service\";\r\n\r\n@Component({\r\n selector: 'tk-user-template-step',\r\n templateUrl: './user-template-step.component.html',\r\n styleUrls: ['./user-template-step.component.scss']\r\n})\r\nexport class UserTemplateStepComponent {\r\n public formGroup = this.fb.group({\r\n userType: [USER_CREATION_TYPES.CUCM],\r\n siteName: [''],\r\n userTemplateName: [''],\r\n });\r\n\r\n public templates: any[] = [\"A\", \"B\", \"C\"];\r\n\r\n public userCreationType = USER_CREATION_TYPES.CUCM;\r\n\r\n private readonly destroy$ = new Subject<void>();\r\n\r\n private readonly customerId: string = localStorage.getItem('customerId') || '1477';\r\n\r\n public readonly filteredSites$ = this.userCreationService.sitesList$.pipe(takeUntil(this.destroy$));\r\n\r\n constructor(\r\n public userCreationWizardService: UserCreationWizardService,\r\n private readonly userCreationService: UserCreationApiService,\r\n private readonly fb: FormBuilder,\r\n ) {}\r\n\r\n ngOnInit() {\r\n\r\n this.formGroup!.get('userType')!.valueChanges\r\n .pipe(takeUntil(this.destroy$), distinctUntilChanged())\r\n .subscribe((value) => {\r\n const isOnlyWithLocations = value === USER_CREATION_TYPES.MT ? true : false;\r\n this.getSites(isOnlyWithLocations).subscribe();\r\n });\r\n\r\n this.getData();\r\n }\r\n\r\n reseFieldstForm() {\r\n this.formGroup.get('siteName')?.reset();\r\n this.formGroup.get('userTemplateName')?.reset();\r\n }\r\n\r\n // public onSelectUserCreationType(event: any): void {\r\n // this.userCreationType = event.value;\r\n // const onlySitesWithLocation = this.userCreationType === USER_CREATION_TYPES.MT;\r\n // this.siteSelectionComponent.reset();\r\n // this.siteSelectionComponent.getOptions(onlySitesWithLocation);\r\n // }\r\n\r\n private getData() {\r\n const isOnlyWithLocations = this.formGroup!.get('userType')?.value === USER_CREATION_TYPES.MT ? true : false;\r\n\r\n this.userCreationService.checkControlHubIntegration(this.customerId)\r\n .pipe(switchMap(() => this.getSites(isOnlyWithLocations)))\r\n .subscribe();\r\n }\r\n\r\n private getSites(isOnlyWithLocations: boolean) {\r\n return this.userCreationService.getAllCustomerSites(this.customerId, isOnlyWithLocations);\r\n }\r\n\r\n ngOnDestroy() {\r\n this.destroy$.next();\r\n this.destroy$.complete();\r\n }\r\n}","<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","import { Component, EventEmitter, Input, OnDestroy, Output, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'tk-user-creation-wizard',\n templateUrl: './user-creation-wizard.component.html',\n styleUrls: ['./user-creation-wizard.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class UserCreationWizardComponent implements OnDestroy {\n @Input() title = 'Create User';\n \n @Input() token!: string;\n @Input() customerId!: number;\n\n @Output() cancel = new EventEmitter<void>();\n @Output() submit = new EventEmitter<void>();\n isSubmitting = false;\n private submitTimerId: number | null = null;\n\n onCancel(): void {\n this.cancel.emit();\n }\n\n onSubmit(): void {\n if (this.isSubmitting) {\n return;\n }\n\n this.isSubmitting = true;\n\n const delayMs = 3000 + Math.floor(Math.random() * 1001);\n this.submitTimerId = window.setTimeout(() => {\n this.isSubmitting = false;\n this.submitTimerId = null;\n this.submit.emit();\n }, delayMs);\n }\n\n ngOnDestroy(): void {\n if (this.submitTimerId) {\n window.clearTimeout(this.submitTimerId);\n this.submitTimerId = null;\n }\n }\n}\n","<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","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatExpansionModule } from \"@angular/material/expansion\";\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { MatStepperModule } from \"@angular/material/stepper\";\r\nimport { MaterialModule } from \"./shared/material.module\";\r\nimport { UserCreationApiService } from \"./shared/services/user-creation-api.service\";\r\nimport { SharedModule } from \"./shared/shared.module\";\r\nimport { UserDetailsStepComponent } from \"./widgets/user-creation-wizard/components/user-details-step/user-details-step.component\";\r\nimport { UserOverviewStepComponent } from \"./widgets/user-creation-wizard/components/user-overview-step/user-overview-step.component\";\r\nimport { UserTemplateStepComponent } from \"./widgets/user-creation-wizard/components/user-template-step/user-template-step.component\";\r\nimport { UserCreationWizardComponent } from \"./widgets/user-creation-wizard/user-creation-wizard.component\";\r\nimport { UserCreationWizardService } from \"./widgets/user-creation-wizard/user-creation-wizard.service\";\r\n\r\n@NgModule({\r\n declarations: [\r\n UserCreationWizardComponent,\r\n UserTemplateStepComponent,\r\n UserDetailsStepComponent,\r\n UserOverviewStepComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n SharedModule,\r\n MaterialModule,\r\n MatStepperModule,\r\n MatExpansionModule,\r\n FormsModule, \r\n ReactiveFormsModule,\r\n MatRadioModule\r\n ],\r\n exports: [\r\n UserCreationWizardComponent\r\n ],\r\n providers: [\r\n UserCreationApiService,\r\n UserCreationWizardService,\r\n ]\r\n})\r\nexport class UserCreationModule {}","/*\r\n * Public API Surface of @tuki-io/tuki-widgets\r\n */\r\n\r\n// Shared Components\r\n// export * from './shared/shared.module';\r\n\r\n// Widget Modules\r\nexport * from './src/user-creation.module';\r\n\r\n// Components\r\n// export * from './shared/components/index';\r\nexport * from './src/widgets/user-creation-wizard/user-creation-wizard.component';\r\n\r\n// Types\r\n// export * from './shared/types/data-table';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.UserCreationWizardService","i2","i2.UserCreationApiService","i3","i4","i6","i7","i8","i1","i4.UserTemplateStepComponent","i5.UserDetailsStepComponent","i6.UserOverviewStepComponent"],"mappings":"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"}
@@ -71,7 +71,7 @@ class APIService {
71
71
  constructor(httpClient) {
72
72
  this.httpClient = httpClient;
73
73
  this.apiUrl = window.location.protocol + '//' + window.location.hostname + '/dcp';
74
- this.token = 'eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJhZG1pbkBjb3JyZW5ldC5jb20iLCJyb2xlcyI6IlNVUEVSX1VTRVIiLCJpYXQiOjE3NTUwODUyMzgsImV4cCI6MTc1NTEwMzIzOH0.X1CKx-OBZvSs7Bzr_4SWW2ulBgHNkYZrmVuv6V7FZyo';
74
+ this.token = 'eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJhZG1pbkBjb3JyZW5ldC5jb20iLCJyb2xlcyI6IlNVUEVSX1VTRVIiLCJpYXQiOjE3NzM5MjU4NzAsImV4cCI6MTc3Mzk0Mzg3MH0.OFxsG5XvtI3zKpGtPSXVvDCkr3ls4k1Jp7_K1jO7V8Q';
75
75
  // this.apiUrl = window.location.protocol + '//' + window.location.host + '/dcp';
76
76
  this.apiUrl = 'https://dev.tuki.io/webex';
77
77
  // this.apiUrl = 'http://localhost:8088/dcp';