@tuki-io/tuki-widgets 0.0.196 → 0.0.198

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 (188) hide show
  1. package/README.md +24 -24
  2. package/esm2020/contact-center/cc-readiness/cc-readiness.module.mjs +1 -1
  3. package/esm2020/contact-center/cc-readiness/cc-readiness.service.mjs +1 -1
  4. package/esm2020/contact-center/cc-readiness/widgets/licences-requirement/licences-requirement.component.mjs +3 -3
  5. package/esm2020/di2mt/shared/components/stat-card/stat-card.component.mjs +3 -3
  6. package/esm2020/di2mt/widgets/site-upgrade/progress-bar/progress-bar.component.mjs +3 -3
  7. package/esm2020/di2mt/widgets/site-upgrade/site-upgrade-data-table/site-upgrade-data-table.component.mjs +2 -2
  8. package/esm2020/di2mt/widgets/upgrade-overview/cards/pending-activation-users/pending-activation-users.component.mjs +17 -17
  9. package/esm2020/lib/widgets.component.mjs +9 -9
  10. package/esm2020/lib/widgets.module.mjs +1 -1
  11. package/esm2020/lib/widgets.service.mjs +1 -1
  12. package/esm2020/public-api.mjs +1 -1
  13. package/esm2020/user-creation/src/app.constants.mjs +2 -16
  14. package/esm2020/user-creation/src/classes/site.mjs +1 -1
  15. package/esm2020/user-creation/src/shared/material.module.mjs +7 -35
  16. package/esm2020/user-creation/src/shared/services/user-creation-api.service.mjs +19 -43
  17. package/esm2020/user-creation/src/shared/services/utils.mjs +1 -1
  18. package/esm2020/user-creation/src/shared/shared.module.mjs +4 -27
  19. package/esm2020/user-creation/src/user-creation.module.mjs +7 -40
  20. package/esm2020/user-creation/src/widgets/user-creation-wizard/components/user-details-step/user-details-step.component.mjs +20 -512
  21. package/esm2020/user-creation/src/widgets/user-creation-wizard/components/user-overview-step/user-overview-step.component.mjs +3 -3
  22. package/esm2020/user-creation/src/widgets/user-creation-wizard/components/user-template-step/user-template-step.component.mjs +34 -80
  23. package/esm2020/user-creation/src/widgets/user-creation-wizard/user-creation-wizard.component.mjs +19 -83
  24. package/esm2020/user-creation/src/widgets/user-creation-wizard/user-creation-wizard.service.mjs +124 -594
  25. package/esm2020/user-device-manage/public-api.mjs +1 -1
  26. package/esm2020/user-device-manage/src/app.constants.mjs +1 -1
  27. package/esm2020/user-device-manage/src/classes/device.mjs +1 -1
  28. package/esm2020/user-device-manage/src/classes/deviceProfile.mjs +1 -1
  29. package/esm2020/user-device-manage/src/classes/line-association-interface.mjs +1 -1
  30. package/esm2020/user-device-manage/src/classes/line-association.mjs +1 -1
  31. package/esm2020/user-device-manage/src/classes/line-call-info-display.mjs +1 -1
  32. package/esm2020/user-device-manage/src/classes/line-directory.mjs +1 -1
  33. package/esm2020/user-device-manage/src/classes/line.mjs +1 -1
  34. package/esm2020/user-device-manage/src/classes/notification.mjs +1 -1
  35. package/esm2020/user-device-manage/src/classes/recording-options.mjs +1 -1
  36. package/esm2020/user-device-manage/src/classes/simplified-user.mjs +1 -1
  37. package/esm2020/user-device-manage/src/classes/site-defaults.mjs +1 -1
  38. package/esm2020/user-device-manage/src/classes/translation-pattern.mjs +1 -1
  39. package/esm2020/user-device-manage/src/classes/types.mjs +1 -1
  40. package/esm2020/user-device-manage/src/common-functions.mjs +1 -1
  41. package/esm2020/user-device-manage/src/confirm-dialog/info-dialog.component.mjs +3 -3
  42. package/esm2020/user-device-manage/src/device-associated-line/associated-line-row/associated-line-row.component.mjs +3 -3
  43. package/esm2020/user-device-manage/src/device-associated-line/device-associated-line-details-box/device-associated-line-details-box.component.mjs +3 -3
  44. package/esm2020/user-device-manage/src/device-associated-line/device-associated-line-extension/device-associated-line-extension.component.mjs +3 -3
  45. package/esm2020/user-device-manage/src/device-associated-line/device-associated-line.component.mjs +1 -1
  46. package/esm2020/user-device-manage/src/device-info/device-info.component.mjs +3 -3
  47. package/esm2020/user-device-manage/src/device-manage-widget.component.mjs +2 -2
  48. package/esm2020/user-device-manage/src/environments/environment.mjs +1 -1
  49. package/esm2020/user-device-manage/src/interseptors/auth.interceptor.mjs +1 -1
  50. package/esm2020/user-device-manage/src/lazy-loading-select/lazy-loading-select.component.mjs +3 -3
  51. package/esm2020/user-device-manage/src/material.module.mjs +1 -1
  52. package/esm2020/user-device-manage/src/notifications/notification.component.mjs +3 -3
  53. package/esm2020/user-device-manage/src/pipes/mac-address.pipe.mjs +1 -1
  54. package/esm2020/user-device-manage/src/services/api.service.mjs +1 -1
  55. package/esm2020/user-device-manage/src/services/device.service.mjs +1 -1
  56. package/esm2020/user-device-manage/src/services/dns.service.mjs +1 -1
  57. package/esm2020/user-device-manage/src/services/line.service.mjs +1 -1
  58. package/esm2020/user-device-manage/src/services/notification.service.mjs +1 -1
  59. package/esm2020/user-device-manage/src/services/removeKynFromIBM.service.mjs +1 -1
  60. package/esm2020/user-device-manage/src/services/site-settings.service.mjs +1 -1
  61. package/esm2020/user-device-manage/src/services/sorting-utils.service.mjs +1 -1
  62. package/esm2020/user-device-manage/src/services/user.service.mjs +1 -1
  63. package/esm2020/user-device-manage/src/services/utils.service.mjs +1 -1
  64. package/esm2020/user-device-manage/src/services/validation.service.mjs +1 -1
  65. package/esm2020/user-device-manage/src/shared/tk-page-section/page-section.component.mjs +1 -1
  66. package/esm2020/user-device-manage/src/utils/app-loader/app-loader.mjs +3 -3
  67. package/esm2020/user-manage/public-api.mjs +1 -1
  68. package/esm2020/user-manage/src/app.constants.mjs +1 -1
  69. package/esm2020/user-manage/src/classes/device.mjs +1 -1
  70. package/esm2020/user-manage/src/classes/line-association-interface.mjs +1 -1
  71. package/esm2020/user-manage/src/classes/line-association.mjs +1 -1
  72. package/esm2020/user-manage/src/classes/line-call-info-display.mjs +1 -1
  73. package/esm2020/user-manage/src/classes/line-directory.mjs +1 -1
  74. package/esm2020/user-manage/src/classes/line.mjs +1 -1
  75. package/esm2020/user-manage/src/classes/notification.mjs +1 -1
  76. package/esm2020/user-manage/src/classes/pagination.mjs +1 -1
  77. package/esm2020/user-manage/src/classes/recording-options.mjs +1 -1
  78. package/esm2020/user-manage/src/classes/simplified-user.mjs +1 -1
  79. package/esm2020/user-manage/src/classes/table-data.mjs +1 -1
  80. package/esm2020/user-manage/src/classes/translation-pattern.mjs +1 -1
  81. package/esm2020/user-manage/src/classes/user-list.mjs +1 -1
  82. package/esm2020/user-manage/src/common-functions.mjs +1 -1
  83. package/esm2020/user-manage/src/device-list/device-list.component.mjs +3 -3
  84. package/esm2020/user-manage/src/device-list/device-row/device-row.component.mjs +3 -3
  85. package/esm2020/user-manage/src/environments/environment.mjs +1 -1
  86. package/esm2020/user-manage/src/interseptors/auth.interceptor.mjs +1 -1
  87. package/esm2020/user-manage/src/lazy-loading-select/lazy-loading-select.component.mjs +3 -3
  88. package/esm2020/user-manage/src/material.module.mjs +1 -1
  89. package/esm2020/user-manage/src/notifications/notification.component.mjs +3 -3
  90. package/esm2020/user-manage/src/removeKynFromIBM.service.mjs +1 -1
  91. package/esm2020/user-manage/src/services/api.service.mjs +1 -1
  92. package/esm2020/user-manage/src/services/dns.service.mjs +1 -1
  93. package/esm2020/user-manage/src/services/line.service.mjs +1 -1
  94. package/esm2020/user-manage/src/services/notification.service.mjs +1 -1
  95. package/esm2020/user-manage/src/services/removeKynFromIBM.service.mjs +1 -1
  96. package/esm2020/user-manage/src/services/site-settings.service.mjs +1 -1
  97. package/esm2020/user-manage/src/services/sorting-utils.service.mjs +1 -1
  98. package/esm2020/user-manage/src/services/user.service.mjs +1 -1
  99. package/esm2020/user-manage/src/services/utils.service.mjs +1 -1
  100. package/esm2020/user-manage/src/user-calling/user-calling-extension/user-calling-extension.component.mjs +3 -3
  101. package/esm2020/user-manage/src/user-info/user-info.component.mjs +3 -3
  102. package/esm2020/user-manage/src/user-manage-widget.component.mjs +2 -2
  103. package/esm2020/user-manage/src/user-manage.module.mjs +1 -1
  104. package/esm2020/user-manage/src/utils/app-loader/app-loader.mjs +3 -3
  105. package/esm2020/user-manage/src/utils/pagination/pagination.component.mjs +3 -3
  106. package/esm2020/users-list/public-api.mjs +1 -1
  107. package/esm2020/users-list/src/app.constants.mjs +1 -1
  108. package/esm2020/users-list/src/classes/app-location.mjs +1 -1
  109. package/esm2020/users-list/src/classes/device.mjs +1 -1
  110. package/esm2020/users-list/src/classes/line.mjs +1 -1
  111. package/esm2020/users-list/src/classes/move-user.mjs +1 -1
  112. package/esm2020/users-list/src/classes/notification.mjs +1 -1
  113. package/esm2020/users-list/src/classes/simlified-user.mjs +1 -1
  114. package/esm2020/users-list/src/classes/table-data.mjs +1 -1
  115. package/esm2020/users-list/src/classes/user-list.mjs +1 -1
  116. package/esm2020/users-list/src/move-user-wizard/move-user-stepper/device-move-user/device-move-user-wizard.component.mjs +3 -3
  117. package/esm2020/users-list/src/move-user-wizard/move-user-stepper/device-move-user-tab/devices-move-user-wizard-tab.component.mjs +3 -3
  118. package/esm2020/users-list/src/move-user-wizard/move-user-wizard.component.mjs +3 -3
  119. package/esm2020/users-list/src/services/api-webex.service.mjs +1 -1
  120. package/esm2020/users-list/src/services/api.service.mjs +1 -1
  121. package/esm2020/users-list/src/services/dns.service.mjs +1 -1
  122. package/esm2020/users-list/src/services/events-communication.service.mjs +1 -1
  123. package/esm2020/users-list/src/services/notification.service.mjs +1 -1
  124. package/esm2020/users-list/src/services/removeKynFromIBM.service.mjs +1 -1
  125. package/esm2020/users-list/src/services/site-settings.service.mjs +1 -1
  126. package/esm2020/users-list/src/services/user.service.mjs +1 -1
  127. package/esm2020/users-list/src/user-list-confirm-dialog/user-list-confirm-dialog.component.mjs +3 -3
  128. package/esm2020/users-list/src/utils/app-loader/app-loader.mjs +3 -3
  129. package/esm2020/users-list/src/utils/common-functions.mjs +1 -1
  130. package/esm2020/users-list/src/utils/utils.service.mjs +1 -1
  131. package/fesm2015/tuki-io-tuki-widgets-contact-center.mjs +2 -2
  132. package/fesm2015/tuki-io-tuki-widgets-contact-center.mjs.map +1 -1
  133. package/fesm2015/tuki-io-tuki-widgets-di2mt.mjs +22 -22
  134. package/fesm2015/tuki-io-tuki-widgets-di2mt.mjs.map +1 -1
  135. package/fesm2015/tuki-io-tuki-widgets-user-creation.mjs +325 -1913
  136. package/fesm2015/tuki-io-tuki-widgets-user-creation.mjs.map +1 -1
  137. package/fesm2015/tuki-io-tuki-widgets-user-device-manage.mjs +18 -18
  138. package/fesm2015/tuki-io-tuki-widgets-user-device-manage.mjs.map +1 -1
  139. package/fesm2015/tuki-io-tuki-widgets-user-manage.mjs +18 -18
  140. package/fesm2015/tuki-io-tuki-widgets-user-manage.mjs.map +1 -1
  141. package/fesm2015/tuki-io-tuki-widgets-users-list.mjs +10 -10
  142. package/fesm2015/tuki-io-tuki-widgets-users-list.mjs.map +1 -1
  143. package/fesm2015/tuki-io-tuki-widgets.mjs +8 -8
  144. package/fesm2015/tuki-io-tuki-widgets.mjs.map +1 -1
  145. package/fesm2020/tuki-io-tuki-widgets-contact-center.mjs +2 -2
  146. package/fesm2020/tuki-io-tuki-widgets-contact-center.mjs.map +1 -1
  147. package/fesm2020/tuki-io-tuki-widgets-di2mt.mjs +22 -22
  148. package/fesm2020/tuki-io-tuki-widgets-di2mt.mjs.map +1 -1
  149. package/fesm2020/tuki-io-tuki-widgets-user-creation.mjs +313 -1868
  150. package/fesm2020/tuki-io-tuki-widgets-user-creation.mjs.map +1 -1
  151. package/fesm2020/tuki-io-tuki-widgets-user-device-manage.mjs +18 -18
  152. package/fesm2020/tuki-io-tuki-widgets-user-device-manage.mjs.map +1 -1
  153. package/fesm2020/tuki-io-tuki-widgets-user-manage.mjs +18 -18
  154. package/fesm2020/tuki-io-tuki-widgets-user-manage.mjs.map +1 -1
  155. package/fesm2020/tuki-io-tuki-widgets-users-list.mjs +10 -10
  156. package/fesm2020/tuki-io-tuki-widgets-users-list.mjs.map +1 -1
  157. package/fesm2020/tuki-io-tuki-widgets.mjs +8 -8
  158. package/fesm2020/tuki-io-tuki-widgets.mjs.map +1 -1
  159. package/package.json +1 -1
  160. package/user-creation/src/app.constants.d.ts +0 -10
  161. package/user-creation/src/shared/material.module.d.ts +1 -5
  162. package/user-creation/src/shared/services/user-creation-api.service.d.ts +2 -8
  163. package/user-creation/src/shared/shared.module.d.ts +1 -3
  164. package/user-creation/src/user-creation.module.d.ts +10 -17
  165. package/user-creation/src/widgets/user-creation-wizard/components/user-details-step/user-details-step.component.d.ts +7 -83
  166. package/user-creation/src/widgets/user-creation-wizard/components/user-template-step/user-template-step.component.d.ts +4 -11
  167. package/user-creation/src/widgets/user-creation-wizard/user-creation-wizard.component.d.ts +0 -18
  168. package/user-creation/src/widgets/user-creation-wizard/user-creation-wizard.service.d.ts +56 -71
  169. package/esm2020/user-creation/src/classes/notification.mjs +0 -32
  170. package/esm2020/user-creation/src/environments/environment.mjs +0 -11
  171. package/esm2020/user-creation/src/interfaces/user-creation-wizard.interfaces.mjs +0 -19
  172. package/esm2020/user-creation/src/shared/components/notification/notification.component.mjs +0 -38
  173. package/esm2020/user-creation/src/shared/pipes/truncate.pipe.mjs +0 -30
  174. package/esm2020/user-creation/src/shared/services/notification.service.mjs +0 -62
  175. package/esm2020/user-creation/src/utils/app-loader/app-loader.mjs +0 -14
  176. package/esm2020/user-creation/src/utils/build-savable-end-user.mjs +0 -147
  177. package/esm2020/user-creation/src/utils/device-name-validation.mjs +0 -23
  178. package/esm2020/user-creation/src/utils/parse-device-name-rule.mjs +0 -26
  179. package/user-creation/src/classes/notification.d.ts +0 -18
  180. package/user-creation/src/environments/environment.d.ts +0 -9
  181. package/user-creation/src/interfaces/user-creation-wizard.interfaces.d.ts +0 -502
  182. package/user-creation/src/shared/components/notification/notification.component.d.ts +0 -19
  183. package/user-creation/src/shared/pipes/truncate.pipe.d.ts +0 -7
  184. package/user-creation/src/shared/services/notification.service.d.ts +0 -18
  185. package/user-creation/src/utils/app-loader/app-loader.d.ts +0 -6
  186. package/user-creation/src/utils/build-savable-end-user.d.ts +0 -23
  187. package/user-creation/src/utils/device-name-validation.d.ts +0 -6
  188. package/user-creation/src/utils/parse-device-name-rule.d.ts +0 -8
@@ -19,17 +19,17 @@ class WidgetsComponent {
19
19
  }
20
20
  }
21
21
  WidgetsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: WidgetsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
22
- WidgetsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: WidgetsComponent, selector: "lib-widgets", ngImport: i0, template: `
23
- <p>
24
- widgets works!
25
- </p>
22
+ WidgetsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: WidgetsComponent, selector: "lib-widgets", ngImport: i0, template: `
23
+ <p>
24
+ widgets works!
25
+ </p>
26
26
  `, isInline: true });
27
27
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: WidgetsComponent, decorators: [{
28
28
  type: Component,
29
- args: [{ selector: 'lib-widgets', template: `
30
- <p>
31
- widgets works!
32
- </p>
29
+ args: [{ selector: 'lib-widgets', template: `
30
+ <p>
31
+ widgets works!
32
+ </p>
33
33
  ` }]
34
34
  }], ctorParameters: function () { return []; } });
35
35
 
@@ -1 +1 @@
1
- {"version":3,"file":"tuki-io-tuki-widgets.mjs","sources":["../../../../projects/tuki/widgets/src/lib/widgets.service.ts","../../../../projects/tuki/widgets/src/lib/widgets.component.ts","../../../../projects/tuki/widgets/src/lib/widgets.module.ts","../../../../projects/tuki/widgets/src/public-api.ts","../../../../projects/tuki/widgets/src/tuki-io-tuki-widgets.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class WidgetsService {\n\n constructor() { }\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'lib-widgets',\n template: `\n <p>\n widgets works!\n </p>\n `,\n styles: [\n ]\n})\nexport class WidgetsComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { WidgetsComponent } from './widgets.component';\n\n\n\n@NgModule({\n declarations: [\n WidgetsComponent\n ],\n imports: [\n ],\n exports: [\n WidgetsComponent\n ]\n})\nexport class WidgetsModule { }\n","/*\n * Public API Surface of widgets\n */\n\nexport * from './lib/widgets.service';\nexport * from './lib/widgets.component';\nexport * from './lib/widgets.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;MAKa,cAAc,CAAA;AAEzB,IAAA,WAAA,GAAA,GAAiB;;4GAFN,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAd,cAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,cAFb,MAAM,EAAA,CAAA,CAAA;4FAEP,cAAc,EAAA,UAAA,EAAA,CAAA;kBAH1B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCQY,gBAAgB,CAAA;AAE3B,IAAA,WAAA,GAAA,GAAiB;IAEjB,QAAQ,GAAA;KACP;;8GALU,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAhB,gBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,gBAAgB,EARjB,QAAA,EAAA,aAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;AAIT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;4FAIU,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAV5B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,aAAa,EACb,QAAA,EAAA,CAAA;;;;AAIT,EAAA,CAAA,EAAA,CAAA;;;MCOU,aAAa,CAAA;;2GAAb,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;4GAAb,aAAa,EAAA,YAAA,EAAA,CARtB,gBAAgB,CAAA,EAAA,OAAA,EAAA,CAKhB,gBAAgB,CAAA,EAAA,CAAA,CAAA;4GAGP,aAAa,EAAA,CAAA,CAAA;4FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBAVzB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,gBAAgB;AACjB,qBAAA;AACD,oBAAA,OAAO,EAAE,EACR;AACD,oBAAA,OAAO,EAAE;wBACP,gBAAgB;AACjB,qBAAA;AACF,iBAAA,CAAA;;;ACdD;;AAEG;;ACFH;;AAEG;;;;"}
1
+ {"version":3,"file":"tuki-io-tuki-widgets.mjs","sources":["../../../../projects/tuki/widgets/src/lib/widgets.service.ts","../../../../projects/tuki/widgets/src/lib/widgets.component.ts","../../../../projects/tuki/widgets/src/lib/widgets.module.ts","../../../../projects/tuki/widgets/src/public-api.ts","../../../../projects/tuki/widgets/src/tuki-io-tuki-widgets.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class WidgetsService {\r\n\r\n constructor() { }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-widgets',\r\n template: `\r\n <p>\r\n widgets works!\r\n </p>\r\n `,\r\n styles: [\r\n ]\r\n})\r\nexport class WidgetsComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { WidgetsComponent } from './widgets.component';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n WidgetsComponent\r\n ],\r\n imports: [\r\n ],\r\n exports: [\r\n WidgetsComponent\r\n ]\r\n})\r\nexport class WidgetsModule { }\r\n","/*\r\n * Public API Surface of widgets\r\n */\r\n\r\nexport * from './lib/widgets.service';\r\nexport * from './lib/widgets.component';\r\nexport * from './lib/widgets.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;MAKa,cAAc,CAAA;AAEzB,IAAA,WAAA,GAAA,GAAiB;;4GAFN,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAd,cAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,cAFb,MAAM,EAAA,CAAA,CAAA;4FAEP,cAAc,EAAA,UAAA,EAAA,CAAA;kBAH1B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCQY,gBAAgB,CAAA;AAE3B,IAAA,WAAA,GAAA,GAAiB;IAEjB,QAAQ,GAAA;KACP;;8GALU,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAhB,gBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,gBAAgB,EARjB,QAAA,EAAA,aAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;AAIT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;4FAIU,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAV5B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,aAAa,EACb,QAAA,EAAA,CAAA;;;;AAIT,EAAA,CAAA,EAAA,CAAA;;;MCOU,aAAa,CAAA;;2GAAb,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;4GAAb,aAAa,EAAA,YAAA,EAAA,CARtB,gBAAgB,CAAA,EAAA,OAAA,EAAA,CAKhB,gBAAgB,CAAA,EAAA,CAAA,CAAA;4GAGP,aAAa,EAAA,CAAA,CAAA;4FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBAVzB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,gBAAgB;AACjB,qBAAA;AACD,oBAAA,OAAO,EAAE,EACR;AACD,oBAAA,OAAO,EAAE;wBACP,gBAAgB;AACjB,qBAAA;AACF,iBAAA,CAAA;;;ACdD;;AAEG;;ACFH;;AAEG;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tuki-io/tuki-widgets",
3
- "version": "0.0.196",
3
+ "version": "0.0.198",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^15.2.0",
6
6
  "@angular/core": "^15.2.0",
@@ -5,21 +5,11 @@ export declare const API: {
5
5
  DEVICE_TYPES: string;
6
6
  SITE_SETTINGS: string;
7
7
  VM_USER_TEMPLATES: string;
8
- EXISTING_USERS: string;
9
8
  USER_TEMPLATES_UPLOAD_LIST: string;
10
9
  USER_TEMPLATE_TOKEN: string;
11
- AVAILABLE_DN_IN_RANGES: string;
12
- USER_CHECK_ID_EXISTING: string;
13
- LDAP_USERS: string;
14
- USERS: string;
15
- CREATE_NEW_USER_FROM_TEMPLATE: string;
16
- DEVICE_DEFAULTS: string;
17
10
  };
18
11
  export declare const USER_CREATION_TYPES: {
19
12
  CUCM: string;
20
13
  MT: string;
21
14
  };
22
15
  export declare const MAX_INTEGER = 2147483647;
23
- export declare const CUTTING_SYMBOLS: string[];
24
- export declare const BREADCRUMB_LENGTH_LIMIT = 20;
25
- export declare const DEFAULT_CUTTING_LENGTH = 15;
@@ -8,12 +8,8 @@ import * as i6 from "@angular/material/icon";
8
8
  import * as i7 from "@angular/material/form-field";
9
9
  import * as i8 from "@angular/material/input";
10
10
  import * as i9 from "@angular/material/select";
11
- import * as i10 from "@angular/material/autocomplete";
12
- import * as i11 from "@angular/material/progress-spinner";
13
- import * as i12 from "@angular/material/paginator";
14
- import * as i13 from "@angular/material/chips";
15
11
  export declare class MaterialModule {
16
12
  static ɵfac: i0.ɵɵFactoryDeclaration<MaterialModule, never>;
17
- static ɵmod: i0.ɵɵNgModuleDeclaration<MaterialModule, never, [typeof i1.MatProgressBarModule, typeof i2.MatTooltipModule, typeof i3.MatTableModule, typeof i4.MatCheckboxModule, typeof i5.MatButtonModule, typeof i6.MatIconModule, typeof i7.MatFormFieldModule, typeof i8.MatInputModule, typeof i9.MatSelectModule, typeof i10.MatAutocompleteModule, typeof i11.MatProgressSpinnerModule, typeof i12.MatPaginatorModule, typeof i13.MatChipsModule], [typeof i1.MatProgressBarModule, typeof i2.MatTooltipModule, typeof i3.MatTableModule, typeof i4.MatCheckboxModule, typeof i5.MatButtonModule, typeof i6.MatIconModule, typeof i7.MatFormFieldModule, typeof i8.MatInputModule, typeof i9.MatSelectModule, typeof i10.MatAutocompleteModule, typeof i11.MatProgressSpinnerModule, typeof i12.MatPaginatorModule, typeof i13.MatChipsModule]>;
13
+ static ɵmod: i0.ɵɵNgModuleDeclaration<MaterialModule, never, [typeof i1.MatProgressBarModule, typeof i2.MatTooltipModule, typeof i3.MatTableModule, typeof i4.MatCheckboxModule, typeof i5.MatButtonModule, typeof i6.MatIconModule, typeof i7.MatFormFieldModule, typeof i8.MatInputModule, typeof i9.MatSelectModule], [typeof i1.MatProgressBarModule, typeof i2.MatTooltipModule, typeof i3.MatTableModule, typeof i4.MatCheckboxModule, typeof i5.MatButtonModule, typeof i6.MatIconModule, typeof i7.MatFormFieldModule, typeof i8.MatInputModule, typeof i9.MatSelectModule]>;
18
14
  static ɵinj: i0.ɵɵInjectorDeclaration<MaterialModule>;
19
15
  }
@@ -1,6 +1,5 @@
1
1
  import { Observable } from "rxjs";
2
- import { Site, SiteDefaults, SiteInterface } from "../../classes/site";
3
- import { DeviceDefaultsInterface, UserTemplateInterface } from "../../interfaces/user-creation-wizard.interfaces";
2
+ import { Site, SiteDefaults, SiteInterface, UserTemplateInterface } from "../../classes/site";
4
3
  import * as i0 from "@angular/core";
5
4
  export declare class UserCreationApiService {
6
5
  private _allSites;
@@ -13,18 +12,13 @@ export declare class UserCreationApiService {
13
12
  getSitesList(): void;
14
13
  checkControlHubIntegration(customerId: string): Observable<any>;
15
14
  getAllCustomerSites(customerId: string, onlySitesWithLocation?: boolean): Observable<Site[]>;
16
- getSiteAllData(siteId: number): Observable<any>;
15
+ getSiteData(siteId: number): Observable<[SiteInterface, string[], SiteDefaults, void]>;
17
16
  getSite(siteId: number, isEdit?: boolean): Observable<SiteInterface>;
18
17
  getDeviceTypes(siteId: number | string): Observable<string[]>;
19
18
  getSiteDefaults(siteId: number, directAccess: boolean, sharedLineSiteIds?: string): Observable<SiteDefaults>;
20
19
  getVoiceMailUserTemplates(siteId: number): Observable<void>;
21
20
  fetchAllUserTemplates(siteId: number): Observable<UserTemplateInterface[]>;
22
21
  getUserTemplateToken(id: string, customerId: string): Observable<any>;
23
- getAvailableDnInRanges(siteId: string, params: any): any;
24
- getLdapUsers(siteId: string, params: any): Observable<any>;
25
- checkUserIdExisting(siteId: string, userId: string): Observable<any>;
26
- saveTemplateUser(user: any, templateId: string, siteId: string): Observable<any>;
27
- getDeviceDefaults(siteId: string, deviceType: string): Observable<DeviceDefaultsInterface>;
28
22
  static ɵfac: i0.ɵɵFactoryDeclaration<UserCreationApiService, never>;
29
23
  static ɵprov: i0.ɵɵInjectableDeclaration<UserCreationApiService>;
30
24
  }
@@ -3,10 +3,8 @@ import * as i1 from "@angular/common";
3
3
  import * as i2 from "./material.module";
4
4
  import * as i3 from "ng-apexcharts";
5
5
  import * as i4 from "@angular/common/http";
6
- import * as i5 from "@angular/forms";
7
- import * as i6 from "@angular/material/table";
8
6
  export declare class SharedModule {
9
7
  static ɵfac: i0.ɵɵFactoryDeclaration<SharedModule, never>;
10
- static ɵmod: i0.ɵɵNgModuleDeclaration<SharedModule, never, [typeof i1.CommonModule, typeof i2.MaterialModule, typeof i3.NgApexchartsModule, typeof i4.HttpClientModule, typeof i5.ReactiveFormsModule, typeof i5.FormsModule], [typeof i2.MaterialModule, typeof i5.ReactiveFormsModule, typeof i5.FormsModule, typeof i6.MatTableModule, typeof i3.NgApexchartsModule, typeof i4.HttpClientModule]>;
8
+ static ɵmod: i0.ɵɵNgModuleDeclaration<SharedModule, never, [typeof i1.CommonModule, typeof i2.MaterialModule, typeof i3.NgApexchartsModule, typeof i4.HttpClientModule], [typeof i2.MaterialModule]>;
11
9
  static ɵinj: i0.ɵɵInjectorDeclaration<SharedModule>;
12
10
  }
@@ -1,24 +1,17 @@
1
- import { HttpClient } from "@angular/common/http";
2
- import { TranslateHttpLoader } from '@ngx-translate/http-loader';
3
1
  import * as i0 from "@angular/core";
4
2
  import * as i1 from "./widgets/user-creation-wizard/user-creation-wizard.component";
5
3
  import * as i2 from "./widgets/user-creation-wizard/components/user-template-step/user-template-step.component";
6
- import * as i3 from "./shared/components/notification/notification.component";
7
- import * as i4 from "./widgets/user-creation-wizard/components/user-details-step/user-details-step.component";
8
- import * as i5 from "./widgets/user-creation-wizard/components/user-overview-step/user-overview-step.component";
9
- import * as i6 from "./utils/app-loader/app-loader";
10
- import * as i7 from "./shared/pipes/truncate.pipe";
11
- import * as i8 from "@angular/common";
12
- import * as i9 from "./shared/shared.module";
13
- import * as i10 from "./shared/material.module";
14
- import * as i11 from "@angular/material/stepper";
15
- import * as i12 from "@angular/material/expansion";
16
- import * as i13 from "@angular/forms";
17
- import * as i14 from "@angular/material/radio";
18
- import * as i15 from "@ngx-translate/core";
19
- export declare function HttpLoaderFactory(http: HttpClient): TranslateHttpLoader;
4
+ import * as i3 from "./widgets/user-creation-wizard/components/user-details-step/user-details-step.component";
5
+ import * as i4 from "./widgets/user-creation-wizard/components/user-overview-step/user-overview-step.component";
6
+ import * as i5 from "@angular/common";
7
+ import * as i6 from "./shared/shared.module";
8
+ import * as i7 from "./shared/material.module";
9
+ import * as i8 from "@angular/material/stepper";
10
+ import * as i9 from "@angular/material/expansion";
11
+ import * as i10 from "@angular/forms";
12
+ import * as i11 from "@angular/material/radio";
20
13
  export declare class UserCreationModule {
21
14
  static ɵfac: i0.ɵɵFactoryDeclaration<UserCreationModule, never>;
22
- static ɵmod: i0.ɵɵNgModuleDeclaration<UserCreationModule, [typeof i1.UserCreationWizardComponent, typeof i2.UserTemplateStepComponent, typeof i3.NotificationsComponent, typeof i4.UserDetailsStepComponent, typeof i5.UserOverviewStepComponent, typeof i6.AppLoaderComponent, typeof i7.TruncatePipe], [typeof i8.CommonModule, typeof i9.SharedModule, typeof i10.MaterialModule, typeof i11.MatStepperModule, typeof i12.MatExpansionModule, typeof i13.FormsModule, typeof i13.ReactiveFormsModule, typeof i14.MatRadioModule, typeof i15.TranslateModule], [typeof i1.UserCreationWizardComponent]>;
15
+ static ɵmod: i0.ɵɵNgModuleDeclaration<UserCreationModule, [typeof i1.UserCreationWizardComponent, typeof i2.UserTemplateStepComponent, typeof i3.UserDetailsStepComponent, typeof i4.UserOverviewStepComponent], [typeof i5.CommonModule, typeof i6.SharedModule, typeof i7.MaterialModule, typeof i8.MatStepperModule, typeof i9.MatExpansionModule, typeof i10.FormsModule, typeof i10.ReactiveFormsModule, typeof i11.MatRadioModule], [typeof i1.UserCreationWizardComponent]>;
23
16
  static ɵinj: i0.ɵɵInjectorDeclaration<UserCreationModule>;
24
17
  }
@@ -1,86 +1,10 @@
1
- import { EventEmitter, OnDestroy, OnInit } from '@angular/core';
2
- import { FormArray, FormBuilder, FormGroup } from '@angular/forms';
3
- import { PageEvent } from '@angular/material/paginator';
4
- import { LdapQueryType, ListUserInterface } from '../../../../interfaces/user-creation-wizard.interfaces';
5
- import { UserCreationApiService } from '../../../../shared/services/user-creation-api.service';
6
- import { UserCreationWizardService } from '../../user-creation-wizard.service';
1
+ import { LdapUserRow, UserCreationWizardService } from "../../user-creation-wizard.service";
7
2
  import * as i0 from "@angular/core";
8
- export declare class UserDetailsStepComponent implements OnInit, OnDestroy {
9
- private readonly fb;
10
- private readonly userCreationApiService;
11
- readonly userCreationWizardService: UserCreationWizardService;
12
- validityChange: EventEmitter<boolean>;
13
- userDetailsForm: FormGroup;
14
- ldapSearchForm: FormGroup;
15
- userIdCheckPending: boolean;
16
- loadingAvailableNumbers: boolean;
17
- ldapLoading: boolean;
18
- ldapSearchAttempted: boolean;
19
- readonly ldapPageSize = 10;
20
- ldapPageIndex: number;
21
- readonly ldapQueryTypeOptions: {
22
- label: string;
23
- value: LdapQueryType;
24
- }[];
25
- filteredAvailableNumbersByLine: string[][];
26
- filteredRoutePartitionsByLine: string[][];
27
- private readonly destroy$;
28
- private readonly userIdAsyncValidator;
29
- get linesFormArray(): FormArray;
30
- get devicesFormArray(): FormArray;
31
- get deviceProfilesFormArray(): FormArray;
32
- get selectedLdapUser(): ListUserInterface | null;
33
- get ldapTotalCount(): number;
34
- get hasLdapUsers(): boolean;
35
- constructor(fb: FormBuilder, userCreationApiService: UserCreationApiService, userCreationWizardService: UserCreationWizardService);
36
- ngOnInit(): void;
37
- ngOnDestroy(): void;
38
- isStepValid(): boolean;
39
- markAllAsTouched(): void;
40
- syncToService(): void;
41
- getLineGroup(index: number): FormGroup;
42
- getDeviceGroup(index: number): FormGroup;
43
- getDeviceProfileGroup(index: number): FormGroup;
44
- getDeviceNamePrefix(index: number): string | null;
45
- getDeviceProfileNamePrefix(index: number): string | null;
46
- getDeviceNameValidationCaption(index: number): string;
47
- getDeviceProfileNameValidationCaption(index: number): string;
48
- getFilteredNumbers(lineIndex: number): string[];
49
- getFilteredRoutePartitions(lineIndex: number): string[];
50
- filterAvailableNumbers(lineIndex: number, event: Event): void;
51
- filterRoutePartitions(lineIndex: number, event: Event): void;
52
- onRoutePartitionSelected(lineIndex: number, routePartition: string): void;
53
- onNumberSelected(lineIndex: number, number: string): void;
54
- searchLdapUsers(pageIndex?: number): void;
55
- onLdapPageChange(event: PageEvent): void;
56
- onAddLdapUser(row: ListUserInterface): void;
57
- onDeleteLdapUser(row: ListUserInterface): void;
58
- onRemoveLdapTag(): void;
59
- isLdapUserRowSelected(row: ListUserInterface): boolean;
60
- private clearLdapSelection;
61
- private applyLdapIntegratedFormState;
62
- private restoreManualEntryFormState;
63
- private setUserIdentityFieldsReadonly;
64
- private toggleUserIdAsyncValidator;
65
- private setupValidityEmitter;
66
- private emitValidity;
67
- private buildDynamicFormArrays;
68
- private buildDeviceNameValidators;
69
- private applyDeviceNameValidators;
70
- private resetLdapSearchForm;
71
- private patchUserFieldsFromSavedValue;
72
- private patchUserFieldsFromService;
73
- private setupLineListeners;
74
- private initLineFilters;
75
- private setupFormSync;
76
- private fetchInitialAvailableNumbers;
77
- private loadAvailableNumbersForLine;
78
- private refreshNumberFilters;
79
- private applyNumberFilter;
80
- private applyRoutePartitionFilter;
81
- private filterOptions;
82
- private extractDirectoryNumber;
83
- private createUserIdAsyncValidator;
3
+ export declare class UserDetailsStepComponent {
4
+ userCreationWizardService: UserCreationWizardService;
5
+ constructor(userCreationWizardService: UserCreationWizardService);
6
+ onAddUser(row: LdapUserRow): void;
7
+ getDeviceName(index: number): string;
84
8
  static ɵfac: i0.ɵɵFactoryDeclaration<UserDetailsStepComponent, never>;
85
- static ɵcmp: i0.ɵɵComponentDeclaration<UserDetailsStepComponent, "tk-user-details-step", never, {}, { "validityChange": "validityChange"; }, never, never, false, never>;
9
+ static ɵcmp: i0.ɵɵComponentDeclaration<UserDetailsStepComponent, "tk-user-details-step", never, {}, {}, never, never, false, never>;
86
10
  }
@@ -1,16 +1,13 @@
1
- import { EventEmitter } from "@angular/core";
2
1
  import { UserCreationWizardService } from "../../user-creation-wizard.service";
3
2
  import { FormBuilder, FormControl } from "@angular/forms";
4
3
  import { UserCreationApiService } from "../../../../shared/services/user-creation-api.service";
5
- import { Site } from "../../../../classes/site";
6
- import { UserTemplateInterface } from "../../../../interfaces/user-creation-wizard.interfaces";
4
+ import { Site, UserTemplateInterface } from "../../../../classes/site";
7
5
  import * as i0 from "@angular/core";
8
6
  export declare class UserTemplateStepComponent {
9
7
  userCreationWizardService: UserCreationWizardService;
10
8
  private readonly userCreationService;
11
9
  private readonly fb;
12
10
  customerId: number;
13
- validityChange: EventEmitter<boolean>;
14
11
  formGroup: import("@angular/forms").FormGroup<{
15
12
  userType: FormControl<string | null>;
16
13
  siteId: FormControl<null>;
@@ -21,15 +18,14 @@ export declare class UserTemplateStepComponent {
21
18
  CUCM: string;
22
19
  MT: string;
23
20
  };
21
+ readonly defaultTemplateName = "User 8851 Office";
22
+ readonly fallbackTemplateId = "-1";
24
23
  private readonly destroy$;
25
24
  private sitesList;
26
25
  readonly sitesList$: import("rxjs").Observable<Site[]>;
27
26
  readonly templatesList$: import("rxjs").Observable<UserTemplateInterface[]>;
28
27
  isTemplateSelectable: boolean;
29
28
  templates: UserTemplateInterface[];
30
- loadingSites: boolean;
31
- loadingSiteData: boolean;
32
- get isLoading(): boolean;
33
29
  readonly templateToggleFormControl: FormControl<boolean | null>;
34
30
  constructor(userCreationWizardService: UserCreationWizardService, userCreationService: UserCreationApiService, fb: FormBuilder);
35
31
  ngOnInit(): void;
@@ -38,10 +34,7 @@ export declare class UserTemplateStepComponent {
38
34
  private getSites;
39
35
  isCUCM(site: Site): boolean;
40
36
  getSelectedSiteName(): string;
41
- getSelectedTemplateName(): string;
42
- isStepValid(): boolean;
43
- markStepTouched(): void;
44
37
  ngOnDestroy(): void;
45
38
  static ɵfac: i0.ɵɵFactoryDeclaration<UserTemplateStepComponent, never>;
46
- static ɵcmp: i0.ɵɵComponentDeclaration<UserTemplateStepComponent, "tk-user-template-step", never, { "customerId": "customerId"; }, { "validityChange": "validityChange"; }, never, never, false, never>;
39
+ static ɵcmp: i0.ɵɵComponentDeclaration<UserTemplateStepComponent, "tk-user-template-step", never, { "customerId": "customerId"; }, {}, never, never, false, never>;
47
40
  }
@@ -1,15 +1,7 @@
1
1
  import { EventEmitter, OnDestroy, OnInit } from '@angular/core';
2
- import { StepperSelectionEvent } from '@angular/cdk/stepper';
3
- import { MatStepper } from '@angular/material/stepper';
4
- import { NotificationService } from '../../shared/services/notification.service';
5
- import { UserDetailsStepComponent } from './components/user-details-step/user-details-step.component';
6
- import { UserTemplateStepComponent } from './components/user-template-step/user-template-step.component';
7
2
  import * as i0 from "@angular/core";
8
- export declare const USER_CREATED_SUCCESSFLLY = "User created successfully";
9
3
  export declare class UserCreationWizardComponent implements OnInit, OnDestroy {
10
- private notificationService;
11
4
  private readonly apiService;
12
- private readonly userCreationWizardService;
13
5
  title: string;
14
6
  host: string;
15
7
  token: string;
@@ -18,20 +10,10 @@ export declare class UserCreationWizardComponent implements OnInit, OnDestroy {
18
10
  submit: EventEmitter<void>;
19
11
  isSubmitting: boolean;
20
12
  private submitTimerId;
21
- selectedIndex: number;
22
- templateStepValid: boolean;
23
- detailsStepValid: boolean;
24
- templateStep?: UserTemplateStepComponent;
25
- detailsStep?: UserDetailsStepComponent;
26
- isLoading: boolean;
27
- constructor(notificationService: NotificationService);
28
13
  ngOnInit(): void;
29
14
  onCancel(): void;
30
- onStepSelectionChange(event: StepperSelectionEvent): void;
31
- onStepperNext(stepper: MatStepper): void;
32
15
  onSubmit(): void;
33
16
  ngOnDestroy(): void;
34
- private _saveChanges;
35
17
  static ɵfac: i0.ɵɵFactoryDeclaration<UserCreationWizardComponent, never>;
36
18
  static ɵcmp: i0.ɵɵComponentDeclaration<UserCreationWizardComponent, "tk-user-creation-wizard", never, { "title": "title"; "host": "host"; "token": "token"; "customerId": "customerId"; }, { "cancel": "cancel"; "submit": "submit"; }, never, never, false, never>;
37
19
  }
@@ -1,106 +1,91 @@
1
- import { Observable } from "rxjs";
2
- import { SiteDefaults } from "../../classes/site";
3
- import { Site } from "../../classes/site";
4
- import { DeviceEntry, EndUserInterface, LineOption, OverviewDeviceRow, OverviewLineRow, OverviewUserRow, SelectedLineRow, TemplateDeviceLike, TemplateEndUserLike, TemplateLineLike, UserCreationType, UserDetailsForm, UserDetailsFormValue, UserTemplateInterface, LineInterface, DeviceInterface, AvailableRangeInterface, ListUserInterface } from "../../interfaces/user-creation-wizard.interfaces";
5
1
  import * as i0 from "@angular/core";
2
+ export interface LdapUserRow {
3
+ userId: string;
4
+ firstName: string;
5
+ lastName: string;
6
+ email: string;
7
+ }
8
+ export interface OverviewUserRow extends LdapUserRow {
9
+ userTemplate: string;
10
+ }
11
+ export interface OverviewLineRow {
12
+ number: string;
13
+ did: string;
14
+ routePartitionName: string;
15
+ css: string;
16
+ description: string;
17
+ }
18
+ export interface OverviewDeviceRow {
19
+ name: string;
20
+ deviceType: string;
21
+ lines: string;
22
+ description: string;
23
+ }
24
+ export type UserCreationType = 'CUCM' | 'MT';
25
+ export interface UserDetailsForm {
26
+ userId: string;
27
+ firstName: string;
28
+ lastName: string;
29
+ email: string;
30
+ }
31
+ export interface LineOption {
32
+ number: string;
33
+ did: string;
34
+ css: string;
35
+ description: string;
36
+ }
37
+ export interface SelectedLineRow {
38
+ lineNumber: string | null;
39
+ routePartitionName: string | null;
40
+ }
41
+ export interface DeviceEntry {
42
+ deviceType: string;
43
+ protocol: string;
44
+ buttonTemplate: string;
45
+ name: string;
46
+ }
6
47
  export declare class UserCreationWizardService {
7
- private readonly userCreationApiService;
48
+ private readonly api;
8
49
  readonly ldapTableColumns: string[];
9
50
  readonly userCreationTypes: UserCreationType[];
10
- private template;
11
- endUser: EndUserInterface | null;
12
- lines: LineInterface[];
13
- devices: DeviceInterface[];
14
- deviceProfiles: DeviceInterface[];
15
- private templateLinesSnapshot;
16
- private _currentSite;
17
- get currentSite(): Site | null;
18
51
  siteOptions: string[];
19
52
  templateOptions: string[];
20
53
  lineOptions: LineOption[];
21
54
  routePartitionOptions: string[];
22
55
  deviceRows: number[];
23
- ldapUsers: ListUserInterface[];
56
+ ldapUsers: LdapUserRow[];
24
57
  overviewUsers: OverviewUserRow[];
25
58
  overviewLines: OverviewLineRow[];
26
59
  overviewDevices: OverviewDeviceRow[];
27
- overviewDeviceProfiles: OverviewDeviceRow[];
28
- userDetailsFormValue: UserDetailsFormValue | null;
29
60
  userDetailsForm: UserDetailsForm;
30
61
  lineSelections: SelectedLineRow[];
31
62
  deviceEntries: DeviceEntry[];
32
- availableNumbers: string[];
33
- deviceTypes: string[];
34
- siteDefaults: SiteDefaults | null;
35
- originalSiteDefaults: SiteDefaults | null;
36
- templateLines: TemplateLineLike[];
37
- templateDevices: TemplateDeviceLike[];
38
- templateUserDetails: TemplateEndUserLike;
39
- selectedSite: number | null;
40
- selectedTemplateName: string | null;
41
- selectedTemplateId: number | null;
63
+ selectedSite: string | null;
64
+ selectedTemplate: string | null;
42
65
  selectedUserCreationType: UserCreationType;
43
- availableDidPatternsMappedToDn: any;
44
- private readonly deviceDefaultsLoadedSubject;
45
- readonly deviceDefaultsLoaded$: Observable<void>;
46
- get firstLineRoutePartition(): string;
47
- get siteDefaultRoutePartition(): string;
48
- get routePartitionNamesList(): string[];
49
- selectedLdapUser: ListUserInterface | null;
50
- ldapUsersTotal: number;
66
+ private readonly addedLdapUserIds;
51
67
  constructor();
52
- get isLdapIntegrated(): boolean;
53
- selectLdapUser(user: ListUserInterface): void;
54
- clearLdapUserSelection(): void;
55
- isLdapUserRowSelected(row: ListUserInterface): boolean;
56
- setLdapUsersResult(users: ListUserInterface[], total: number): void;
57
- setSelectedSite(site: number | null): void;
58
- setSelectedTemplate(template?: UserTemplateInterface | undefined): void;
59
- setCurrentSite(site: Site): void;
68
+ addLdapUser(row: LdapUserRow): void;
69
+ isLdapUserAdded(row: LdapUserRow): boolean;
70
+ setSelectedSite(site: string | null): void;
71
+ setSelectedTemplate(template: string | null): void;
60
72
  resetTemplateDrivenData(): void;
61
- applyTemplateTokenPayload(payload: UserTemplateInterface): void;
73
+ applyTemplateTokenPayload(payload: any): void;
62
74
  setSelectedUserCreationType(type: UserCreationType): void;
63
- resetUserDetailsStepState(): void;
64
- private captureTemplateLinesSnapshot;
65
75
  setUserDetailsField(field: keyof UserDetailsForm, value: string): void;
66
- applyUserDetailsFormValue(formValue: UserDetailsFormValue): void;
67
76
  setLineSelection(index: number, lineNumber: string | null): void;
68
77
  setRoutePartitionSelection(index: number, routePartitionName: string | null): void;
69
78
  setDeviceName(index: number, name: string): void;
70
79
  getDeviceDisplayName(index: number): string;
71
- getSiteAllData(siteId: number): Observable<any>;
72
- loadDeviceDefaultsForDevices(siteId: number): Observable<void>;
73
- private getUniqueDeviceTypes;
74
- private applyDeviceDefaultsToType;
75
- getDeviceNamePrefix(deviceIndex: number, isProfile?: boolean): string | null;
76
- getDeviceNameValidationCaption(deviceIndex: number, isProfile?: boolean): string;
77
- getDeviceNameValidationOptions(deviceIndex: number, isProfile?: boolean): {
78
- regex: string;
79
- caption: string;
80
- } | null;
81
- getNumberRange(siteId: string, routePartition: string): Observable<AvailableRangeInterface>;
80
+ loadPlaceholderData(): void;
82
81
  private rebuildOverviewUsers;
83
82
  private rebuildOverviewLines;
84
83
  private rebuildOverviewDevices;
85
- private rebuildOverviewDeviceProfiles;
86
84
  private extractTemplateFromTokenPayload;
87
85
  private uniqueByNumber;
88
86
  private uniqueStrings;
89
87
  private valueToString;
90
- private getUnwrapNumberRange;
91
- private unwrapNumberRange;
92
- setAvailableDidMappedToDn(availableNumber: any): void;
93
88
  loadDataFromApi(): void;
94
- private initLineWithSiteInfo;
95
- private setLineAssociationsForDevice;
96
- private initDeviceWithSiteInfo;
97
- private replaceDynamicValueSiteInfo;
98
- private replaceDynamicValueFormat;
99
- mutliStringReplace(object: any, input: string, directoryNumber?: string, user?: any): string;
100
- private initTemplateDnsNamesForLines;
101
- buildSavableEndUser(): EndUserInterface;
102
- private resolveDeviceNameForSave;
103
- saveNewUser(): Observable<any>;
104
89
  static ɵfac: i0.ɵɵFactoryDeclaration<UserCreationWizardService, never>;
105
90
  static ɵprov: i0.ɵɵInjectableDeclaration<UserCreationWizardService>;
106
91
  }
@@ -1,32 +0,0 @@
1
- import { environment } from '../environments/environment';
2
- const TTL_DEFAULT = environment.notificationsLifetime;
3
- const TTL_LONG_DEFAULT = environment.longNotificationsLifetime;
4
- export var NotificationType;
5
- (function (NotificationType) {
6
- NotificationType["info"] = "info";
7
- NotificationType["error"] = "error";
8
- NotificationType["success"] = "success";
9
- NotificationType["warning"] = "warning";
10
- })(NotificationType || (NotificationType = {}));
11
- export class Notification {
12
- constructor(data) {
13
- this.ttl = TTL_DEFAULT;
14
- Object.assign(this, data || {});
15
- if (this.ttl === undefined) {
16
- this.ttl = this.message && this.message.length && this.message.length < 80 ? TTL_DEFAULT : TTL_LONG_DEFAULT;
17
- }
18
- }
19
- isInfo() {
20
- return this.type === NotificationType.info;
21
- }
22
- isError() {
23
- return this.type === NotificationType.error;
24
- }
25
- isSuccess() {
26
- return this.type === NotificationType.success;
27
- }
28
- isWarning() {
29
- return this.type === NotificationType.warning;
30
- }
31
- }
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVraS93aWRnZXRzL3VzZXItY3JlYXRpb24vc3JjL2NsYXNzZXMvbm90aWZpY2F0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUUxRCxNQUFNLFdBQVcsR0FBRyxXQUFXLENBQUMscUJBQXFCLENBQUM7QUFDdEQsTUFBTSxnQkFBZ0IsR0FBRyxXQUFXLENBQUMseUJBQXlCLENBQUM7QUFFL0QsTUFBTSxDQUFOLElBQVksZ0JBS1g7QUFMRCxXQUFZLGdCQUFnQjtJQUN4QixpQ0FBYSxDQUFBO0lBQ2IsbUNBQWUsQ0FBQTtJQUNmLHVDQUFtQixDQUFBO0lBQ25CLHVDQUFtQixDQUFBO0FBQ3ZCLENBQUMsRUFMVyxnQkFBZ0IsS0FBaEIsZ0JBQWdCLFFBSzNCO0FBRUQsTUFBTSxPQUFPLFlBQVk7SUFPdkIsWUFBWSxJQUFTO1FBSHJCLFFBQUcsR0FBVyxXQUFXLENBQUM7UUFJeEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRWhDLElBQUcsSUFBSSxDQUFDLEdBQUcsS0FBSyxTQUFTLEVBQUU7WUFDekIsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQztTQUM3RztJQUNILENBQUM7SUFFRCxNQUFNO1FBQ0osT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLGdCQUFnQixDQUFDLElBQUksQ0FBQztJQUM3QyxDQUFDO0lBQ0QsT0FBTztRQUNMLE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7SUFDOUMsQ0FBQztJQUNELFNBQVM7UUFDUCxPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssZ0JBQWdCLENBQUMsT0FBTyxDQUFDO0lBQ2hELENBQUM7SUFDRCxTQUFTO1FBQ1AsT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLGdCQUFnQixDQUFDLE9BQU8sQ0FBQztJQUNoRCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBlbnZpcm9ubWVudCB9IGZyb20gJy4uL2Vudmlyb25tZW50cy9lbnZpcm9ubWVudCc7XG5cbmNvbnN0IFRUTF9ERUZBVUxUID0gZW52aXJvbm1lbnQubm90aWZpY2F0aW9uc0xpZmV0aW1lO1xuY29uc3QgVFRMX0xPTkdfREVGQVVMVCA9IGVudmlyb25tZW50LmxvbmdOb3RpZmljYXRpb25zTGlmZXRpbWU7XG5cbmV4cG9ydCBlbnVtIE5vdGlmaWNhdGlvblR5cGUge1xuICAgIGluZm8gPSAnaW5mbycsXG4gICAgZXJyb3IgPSAnZXJyb3InLFxuICAgIHN1Y2Nlc3MgPSAnc3VjY2VzcycsXG4gICAgd2FybmluZyA9ICd3YXJuaW5nJ1xufVxuXG5leHBvcnQgY2xhc3MgTm90aWZpY2F0aW9uIHtcbiAgaWQ/OiBudW1iZXI7XG4gIHR5cGU/OiBOb3RpZmljYXRpb25UeXBlO1xuICBtZXNzYWdlPzogc3RyaW5nO1xuICB0dGw6IG51bWJlciA9IFRUTF9ERUZBVUxUO1xuICB0aW1lcklkPzogYW55O1xuXG4gIGNvbnN0cnVjdG9yKGRhdGE6IGFueSkge1xuICAgIE9iamVjdC5hc3NpZ24odGhpcywgZGF0YSB8fCB7fSk7XG5cbiAgICBpZih0aGlzLnR0bCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLnR0bCA9IHRoaXMubWVzc2FnZSAmJiB0aGlzLm1lc3NhZ2UubGVuZ3RoICYmIHRoaXMubWVzc2FnZS5sZW5ndGggPCA4MCA/IFRUTF9ERUZBVUxUIDogVFRMX0xPTkdfREVGQVVMVDtcbiAgICB9XG4gIH1cblxuICBpc0luZm8oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudHlwZSA9PT0gTm90aWZpY2F0aW9uVHlwZS5pbmZvO1xuICB9XG4gIGlzRXJyb3IoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudHlwZSA9PT0gTm90aWZpY2F0aW9uVHlwZS5lcnJvcjtcbiAgfVxuICBpc1N1Y2Nlc3MoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudHlwZSA9PT0gTm90aWZpY2F0aW9uVHlwZS5zdWNjZXNzO1xuICB9XG4gIGlzV2FybmluZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy50eXBlID09PSBOb3RpZmljYXRpb25UeXBlLndhcm5pbmc7XG4gIH1cbn1cbiJdfQ==
@@ -1,11 +0,0 @@
1
- export const environment = {
2
- production: false,
3
- // apiUrl: 'http://localhost:4200',
4
- apiUrl: 'http://192.168.0.191:8080',
5
- notificationsLifetime: 30000,
6
- longNotificationsLifetime: 45000,
7
- cashCleanTimer: 900000,
8
- cashArrayLength: 10000,
9
- matomoUrl: 'http://192.168.0.136/matomo/',
10
- };
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWtpL3dpZGdldHMvdXNlci1jcmVhdGlvbi9zcmMvZW52aXJvbm1lbnRzL2Vudmlyb25tZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRztJQUN6QixVQUFVLEVBQUUsS0FBSztJQUNqQixtQ0FBbUM7SUFDbkMsTUFBTSxFQUFFLDJCQUEyQjtJQUNuQyxxQkFBcUIsRUFBRSxLQUFLO0lBQzVCLHlCQUF5QixFQUFFLEtBQUs7SUFDaEMsY0FBYyxFQUFFLE1BQU07SUFDdEIsZUFBZSxFQUFFLEtBQUs7SUFDdEIsU0FBUyxFQUFFLDhCQUE4QjtDQUMxQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IGVudmlyb25tZW50ID0ge1xuICBwcm9kdWN0aW9uOiBmYWxzZSxcbiAgLy8gYXBpVXJsOiAnaHR0cDovL2xvY2FsaG9zdDo0MjAwJyxcbiAgYXBpVXJsOiAnaHR0cDovLzE5Mi4xNjguMC4xOTE6ODA4MCcsXG4gIG5vdGlmaWNhdGlvbnNMaWZldGltZTogMzAwMDAsXG4gIGxvbmdOb3RpZmljYXRpb25zTGlmZXRpbWU6IDQ1MDAwLFxuICBjYXNoQ2xlYW5UaW1lcjogOTAwMDAwLFxuICBjYXNoQXJyYXlMZW5ndGg6IDEwMDAwLFxuICBtYXRvbW9Vcmw6ICdodHRwOi8vMTkyLjE2OC4wLjEzNi9tYXRvbW8vJyxcbn07XG4iXX0=
@@ -1,19 +0,0 @@
1
- export var DnRangeType;
2
- (function (DnRangeType) {
3
- DnRangeType["extension"] = "EXTENSION";
4
- DnRangeType["cpg"] = "CPG";
5
- DnRangeType["callpark"] = "CALLPARK";
6
- DnRangeType["huntgroup"] = "HUNTGROUP";
7
- DnRangeType["meetme"] = "MEETME";
8
- DnRangeType["did"] = "DID";
9
- })(DnRangeType || (DnRangeType = {}));
10
- export var UserViewType;
11
- (function (UserViewType) {
12
- UserViewType[UserViewType["details"] = 0] = "details";
13
- UserViewType[UserViewType["devices"] = 1] = "devices";
14
- UserViewType[UserViewType["lines"] = 2] = "lines";
15
- UserViewType[UserViewType["snr"] = 3] = "snr";
16
- UserViewType[UserViewType["features"] = 4] = "features";
17
- UserViewType[UserViewType["overview"] = 5] = "overview";
18
- })(UserViewType || (UserViewType = {}));
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1jcmVhdGlvbi13aXphcmQuaW50ZXJmYWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1a2kvd2lkZ2V0cy91c2VyLWNyZWF0aW9uL3NyYy9pbnRlcmZhY2VzL3VzZXItY3JlYXRpb24td2l6YXJkLmludGVyZmFjZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBNmVBLE1BQU0sQ0FBTixJQUFZLFdBT1g7QUFQRCxXQUFZLFdBQVc7SUFDckIsc0NBQXVCLENBQUE7SUFDdkIsMEJBQVcsQ0FBQTtJQUNYLG9DQUFxQixDQUFBO0lBQ3JCLHNDQUF1QixDQUFBO0lBQ3ZCLGdDQUFpQixDQUFBO0lBQ2pCLDBCQUFXLENBQUE7QUFDYixDQUFDLEVBUFcsV0FBVyxLQUFYLFdBQVcsUUFPdEI7QUFzQkQsTUFBTSxDQUFOLElBQVksWUFPWDtBQVBELFdBQVksWUFBWTtJQUN0QixxREFBVyxDQUFBO0lBQ1gscURBQVcsQ0FBQTtJQUNYLGlEQUFTLENBQUE7SUFDVCw2Q0FBTyxDQUFBO0lBQ1AsdURBQVksQ0FBQTtJQUNaLHVEQUFZLENBQUE7QUFDZCxDQUFDLEVBUFcsWUFBWSxLQUFaLFlBQVksUUFPdkIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIExkYXBVc2VyUm93IHtcbiAgICB1c2VySWQ6IHN0cmluZztcbiAgICBmaXJzdE5hbWU6IHN0cmluZztcbiAgICBsYXN0TmFtZTogc3RyaW5nO1xuICAgIGVtYWlsOiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIExkYXBRdWVyeVR5cGUgPSAndXNlcklkJyB8ICdmaXJzdE5hbWUnIHwgJ2xhc3ROYW1lJztcblxuZXhwb3J0IGludGVyZmFjZSBPdmVydmlld1VzZXJSb3cgZXh0ZW5kcyBMZGFwVXNlclJvdyB7XG4gICAgdXNlclRlbXBsYXRlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3ZlcnZpZXdMaW5lUm93IHtcbiAgICBudW1iZXI6IHN0cmluZztcbiAgICBkaWQ6IHN0cmluZztcbiAgICByb3V0ZVBhcnRpdGlvbk5hbWU6IHN0cmluZztcbiAgICBjc3M6IHN0cmluZztcbiAgICBkZXNjcmlwdGlvbjogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE92ZXJ2aWV3RGV2aWNlUm93IHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgZGV2aWNlVHlwZTogc3RyaW5nO1xuICAgIGxpbmVzOiBzdHJpbmc7XG4gICAgZGVzY3JpcHRpb246IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgVXNlckNyZWF0aW9uVHlwZSA9ICdDVUNNJyB8ICdNVCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXNlckRldGFpbHNGb3JtIHtcbiAgICB1c2VySWQ6IHN0cmluZztcbiAgICBmaXJzdE5hbWU6IHN0cmluZztcbiAgICBsYXN0TmFtZTogc3RyaW5nO1xuICAgIGVtYWlsOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXNlckRldGFpbHNMaW5lRm9ybVZhbHVlIHtcbiAgICBsaW5lTnVtYmVyOiBzdHJpbmc7XG4gICAgbnVtYmVyOiBzdHJpbmc7XG4gICAgcm91dGVQYXJ0aXRpb246IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVc2VyRGV0YWlsc0RldmljZUZvcm1WYWx1ZSB7XG4gICAgZGV2aWNlVHlwZTogc3RyaW5nO1xuICAgIHByb3RvY29sOiBzdHJpbmc7XG4gICAgYnV0dG9uVGVtcGxhdGU6IHN0cmluZztcbiAgICBuYW1lOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXNlckRldGFpbHNGb3JtVmFsdWUge1xuICAgIHVzZXJJZDogc3RyaW5nO1xuICAgIGZpcnN0TmFtZTogc3RyaW5nO1xuICAgIGxhc3ROYW1lOiBzdHJpbmc7XG4gICAgZW1haWw6IHN0cmluZztcbiAgICBsaW5lczogVXNlckRldGFpbHNMaW5lRm9ybVZhbHVlW107XG4gICAgZGV2aWNlczogVXNlckRldGFpbHNEZXZpY2VGb3JtVmFsdWVbXTtcbiAgICBkZXZpY2VQcm9maWxlczogVXNlckRldGFpbHNEZXZpY2VGb3JtVmFsdWVbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMaW5lT3B0aW9uIHtcbiAgICBudW1iZXI6IHN0cmluZztcbiAgICBkaWQ6IHN0cmluZztcbiAgICBjc3M6IHN0cmluZztcbiAgICBkZXNjcmlwdGlvbjogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNlbGVjdGVkTGluZVJvdyB7XG4gICAgbGluZU51bWJlcjogc3RyaW5nIHwgbnVsbDtcbiAgICByb3V0ZVBhcnRpdGlvbk5hbWU6IHN0cmluZyB8IG51bGw7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGV2aWNlRW50cnkge1xuICAgIGRldmljZVR5cGU6IHN0cmluZztcbiAgICBwcm90b2NvbDogc3RyaW5nO1xuICAgIGJ1dHRvblRlbXBsYXRlOiBzdHJpbmc7XG4gICAgbmFtZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRlbXBsYXRlTGluZUxpa2Uge1xuICAgIGRpcmVjdG9yeU51bWJlcj86IHtcbiAgICAgICAgZGlyZWN0b3J5TnVtYmVyPzogc3RyaW5nO1xuICAgICAgICByb3V0ZVBhcnRpdGlvbk5hbWU/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgICB0ZW1wbGF0ZURpcmVjdG9yeU51bWJlcj86IHN0cmluZyB8IG51bGw7XG4gICAgfTtcbiAgICBkZXNjcmlwdGlvbj86IHN0cmluZyB8IG51bGw7XG4gICAgY2FsbGluZ1NlYXJjaFNwYWNlPzogc3RyaW5nIHwgeyBuYW1lPzogc3RyaW5nIHwgbnVsbCB9IHwgbnVsbDtcbiAgICBkaWRQYXR0ZXJucz86IEFycmF5PHsgcGF0dGVybj86IHN0cmluZyB8IG51bGwgfT4gfCBudWxsO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRlbXBsYXRlRGV2aWNlTGlrZSB7XG4gICAgZGV2aWNlVHlwZT86IHN0cmluZyB8IG51bGw7XG4gICAgcHJvdG9jb2w/OiBzdHJpbmcgfCBudWxsO1xuICAgIGJ1dHRvblRlbXBsYXRlPzogc3RyaW5nIHwgbnVsbDtcbiAgICBuYW1lPzogc3RyaW5nIHwgbnVsbDtcbiAgICBsaW5lQXNzb2NpYXRpb25zPzogQXJyYXk8e1xuICAgICAgICBkaXJlY3RvcnlOdW1iZXI/OiB7XG4gICAgICAgICAgICBkaXJlY3RvcnlOdW1iZXI/OiBzdHJpbmc7XG4gICAgICAgICAgICByb3V0ZVBhcnRpdGlvbk5hbWU/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgICAgICAgdGVtcGxhdGVEaXJlY3RvcnlOdW1iZXI/OiBzdHJpbmcgfCBudWxsO1xuICAgICAgICB9IHwgbnVsbDtcbiAgICB9Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUZW1wbGF0ZUVuZFVzZXJMaWtlIHtcbiAgICB1c2VyaWQ/OiBzdHJpbmcgfCBudWxsO1xuICAgIGZpcnN0TmFtZT86IHN0cmluZyB8IG51bGw7XG4gICAgbGFzdE5hbWU/OiBzdHJpbmcgfCBudWxsO1xuICAgIGVtYWlsPzogc3RyaW5nIHwgbnVsbDtcbiAgICBsaW5lcz86IFRlbXBsYXRlTGluZUxpa2VbXSB8IG51bGw7XG4gICAgZGV2aWNlcz86IFRlbXBsYXRlRGV2aWNlTGlrZVtdIHwgbnVsbDtcbn1cblxuXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJUZW1wbGF0ZUludGVyZmFjZSB7XG4gIGlkOiBudW1iZXI7XG4gIG5hbWU6IHN0cmluZztcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgY3JlYXRlT3JVcGxvYWQ6IHN0cmluZyB8IG51bGw7XG4gIHVzZXJUZW1wbGF0ZVNldHRpbmdzOiBVc2VyVGVtcGxhdGVTZXR0aW5nW107XG4gIGN1c3RvbWVySWQ6IG51bWJlcjtcbiAgdXNlclJlcXVpcmVkRmllbGRzOiBzdHJpbmdbXTtcbiAgZGV2aWNlUmVxdWlyZWRGaWVsZHM6IHN0cmluZ1tdO1xuICB1ZHBSZXF1aXJlZEZpZWxkczogc3RyaW5nW107XG4gIGxpbmVSZXF1aXJlZEZpZWxkczogc3RyaW5nW107XG4gIGVuZFVzZXI6IEVuZFVzZXJJbnRlcmZhY2U7XG4gIHR5cGU6IHN0cmluZztcbiAgZ2xvYmFsVGVtcGxhdGU6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXNlclRlbXBsYXRlU2V0dGluZyB7XG4gIC8vIEFkZCBmaWVsZHMgaWYgbmVlZGVkXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW5kVXNlckludGVyZmFjZSB7XG4gIHVzZXJpZDogc3RyaW5nIHwgbnVsbDtcbiAgZW1haWw6IHN0cmluZyB8IG51bGw7XG4gIGZpcnN0TmFtZTogc3RyaW5nIHwgbnVsbDtcbiAgbGFzdE5hbWU6IHN0cmluZyB8IG51bGw7XG4gIGRvbWFpbjogc3RyaW5nIHwgbnVsbDtcbiAgY3VzdG9tZXJJZDogbnVtYmVyIHwgbnVsbDtcbiAgZGVwYXJ0bWVudDogc3RyaW5nIHwgbnVsbDtcbiAgdXNlclByb2ZpbGU6IHN0cmluZyB8IG51bGw7XG4gIG1hbmFnZXI6IHN0cmluZyB8IG51bGw7XG4gIGVuYWJsZU1vYmlsZVZvaWNlQWNjZXNzOiBib29sZWFuIHwgbnVsbDtcbiAgYXNzb2NpYXRlZFBjOiBzdHJpbmcgfCBudWxsO1xuICB1c2VyTG9jYWxlOiBzdHJpbmcgfCBudWxsO1xuICBkaWdlc3RDcmVkZW50aWFsczogc3RyaW5nIHwgbnVsbDtcbiAgbWlkZGxlTmFtZTogc3RyaW5nIHwgbnVsbDtcbiAgdGl0bGU6IHN0cmluZyB8IG51bGw7XG4gIHRlbGVwaG9uZU51bWJlcjogc3RyaW5nIHwgbnVsbDtcbiAgaG9tZU51bWJlcjogc3RyaW5nIHwgbnVsbDtcbiAgbW9iaWxlTnVtYmVyOiBzdHJpbmcgfCBudWxsO1xuICBwYWdlck51bWJlcjogc3RyaW5nIHwgbnVsbDtcbiAgZGlzcGxheU5hbWU6IHN0cmluZyB8IG51bGw7XG4gIGRpcmVjdG9yeVVyaTogc3RyaW5nIHwgbnVsbDtcbiAgcHJlc2VuY2VHcm91cDogc3RyaW5nIHwgbnVsbDtcbiAgc3Vic2NyaWJlQ3NzOiBzdHJpbmcgfCBudWxsO1xuICBhbGxvd0RldmljZUNvbnRyb2xGcm9tQ3RpOiBib29sZWFuIHwgbnVsbDtcbiAgZW5hYmxlQ3Jvc3NDbHVzdGVyRW06IGJvb2xlYW4gfCBudWxsO1xuICBtbHBwVXNlcklkTnVtYmVyOiBzdHJpbmcgfCBudWxsO1xuICBtbHBwUHJlY2VkZW5jZVBhdHRlcm46IHN0cmluZyB8IG51bGw7XG4gIGNyZWF0ZVVzZXJNb2RlOiBib29sZWFuO1xuICBlbmFibGVNb2JpbGl0eTogYm9vbGVhbiB8IG51bGw7XG4gIGRldmljZXM6IERldmljZUludGVyZmFjZVtdO1xuICBkZXZpY2VQcm9maWxlczogRGV2aWNlSW50ZXJmYWNlW107XG4gIGxpbmVzOiBMaW5lSW50ZXJmYWNlW107XG4gIHNpbmdsZU51bWJlclJlYWNoPzoge1xuICAgIGFzc29jaWF0ZWRMaW5lcz86IExpbmVJbnRlcmZhY2VbXSB8IG51bGw7XG4gICAgcmVtb3RlRGVzdGluYXRpb25zPzoge1xuICAgICAgbGluZUFzc29jaWF0aW9ucz86IExpbmVJbnRlcmZhY2VbXSB8IG51bGw7XG4gICAgfVtdIHwgbnVsbDtcbiAgICByZW1vdGVEZXN0aW5hdGlvblByb2ZpbGVOYW1lPzogc3RyaW5nIHwgbnVsbDtcbiAgfSB8IG51bGw7XG4gIHByaW1hcnlMaW5lUmVmZXJlbmNlOiB1bmtub3duIHwgbnVsbDtcbiAgdm9pY2VtYWlsOiB1bmtub3duIHwgbnVsbDtcbiAgZmVhdHVyZXM6IEZlYXR1cmVbXTtcbiAgbWlncmF0aW9uVm1VbmNoYW5nZWQ6IGJvb2xlYW4gfCBudWxsO1xuICBtaWdyYXRpb25JbVBVbmNoYW5nZWQ6IGJvb2xlYW4gfCBudWxsO1xuICB1Y1NlcnZpY2VQcm9maWxlOiBzdHJpbmcgfCBudWxsO1xuICB0ZWxlY29tTWFuYWdlclJ1bGU6IGJvb2xlYW47XG4gIHVzZXJUZW1wbGF0ZVVkcERldmljZVR5cGVzUnVsZXM6IFVzZXJUZW1wbGF0ZVVkcERldmljZVR5cGVzUnVsZVtdO1xuICBsZGFwSW50ZWdyYXRlZD86IGJvb2xlYW4gfCBudWxsO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENhbGxJbmZvRGlzcGxheSB7XG4gIGNhbGxlck5hbWU/OiBzdHJpbmcgfCBudWxsO1xuICBjYWxsZXJOdW1iZXI/OiBzdHJpbmcgfCBudWxsO1xuICByZWRpcmVjdGVkTnVtYmVyPzogc3RyaW5nIHwgbnVsbDtcbiAgZGlhbGVkTnVtYmVyPzogc3RyaW5nIHwgbnVsbDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEaWRQYXR0ZXJuIHtcbiAgY2FsbGVkUGFydHlUcmFuc2Zvcm1hdGlvbk1hc2s/OiBzdHJpbmcgfCBudWxsO1xuICBwYXR0ZXJuPzogc3RyaW5nIHwgbnVsbDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQcm90b2NvbFNwZWNpZmljRGVmYXVsdHMge1xuICBidXR0b25UZW1wbGF0ZXM6IHN0cmluZ1tdO1xuICBzZWN1cml0eVByb2ZpbGVzOiBzdHJpbmdbXTtcbiAgc3VwcG9ydGVkRXhwYW5zaW9uTW9kdWxlczogc3RyaW5nW107XG4gIHN1cHBvcnRzU29mdGtleVRlbXBsYXRlczogYm9vbGVhbjtcbiAgc3VwcG9ydHNCTEY6IGJvb2xlYW47XG4gIHN1cHBvcnRzRU06IGJvb2xlYW47XG4gIHN1cHBvcnRzTXVsdGlwbGVDYWxsRGlzcGxheTogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEZXZpY2VEZWZhdWx0c0ludGVyZmFjZSB7XG4gIGRldmljZVR5cGU6IHN0cmluZztcbiAgZGV2aWNlTmFtZVJlZ2V4OiBzdHJpbmc7XG4gIGRldmljZU5hbWVFeHBsYWluZWQ6IHN0cmluZztcbiAgbmV0d29ya0xvY2FsZXM6IHN0cmluZ1tdO1xuICBwcm90b2NvbFByb3RvY29sU3BlY2lmaWNEZWZhdWx0OiBSZWNvcmQ8c3RyaW5nLCBQcm90b2NvbFNwZWNpZmljRGVmYXVsdHM+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERldmljZUludGVyZmFjZSB7XG4gIGRldmljZVR5cGU6IHN0cmluZyB8IG51bGw7XG4gIHByb3RvY29sOiBzdHJpbmcgfCBudWxsO1xuICBuYW1lOiBzdHJpbmcgfCBudWxsO1xuICBuZXdOYW1lOiBzdHJpbmcgfCBudWxsO1xuICBwcmVmaXg6IHN0cmluZyB8IG51bGw7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nIHwgbnVsbDtcbiAgYnV0dG9uVGVtcGxhdGU6IHN0cmluZyB8IG51bGw7XG4gIGxvY2F0aW9uOiBzdHJpbmcgfCBudWxsO1xuICBkZXZpY2VQb29sTmFtZTogc3RyaW5nIHwgbnVsbDtcbiAgc29mdGtleVRlbXBsYXRlOiBzdHJpbmcgfCBudWxsO1xuICBlbnRpdHlDaGFuZ2VUeXBlOiBzdHJpbmcgfCBudWxsO1xuICBjcmVhdGVEZXZpY2VNb2RlPzogYm9vbGVhbjtcbiAgY2FsbGluZ1NlYXJjaFNwYWNlTmFtZTogc3RyaW5nIHwgbnVsbDtcbiAgY29tbW9uUGhvbmVDb25maWdOYW1lOiBzdHJpbmcgfCBudWxsO1xuICBzZWN1cml0eVByb2ZpbGU6IHN0cmluZyB8IG51bGw7XG4gIHVzZXJMb2NhbGU6IHN0cmluZyB8IG51bGw7XG4gIG5ldHdvcmtMb2NhbGU6IHN0cmluZyB8IG51bGw7XG4gIGVuYWJsZWRFeHRlbnNpb25Nb2JpbGl0eTogYm9vbGVhbiB8IG51bGw7XG4gIGZpcnN0RXhwYW5zaW9uTW9kdWxlOiBzdHJpbmcgfCBudWxsO1xuICBzZWNvbmRFeHBhbnNpb25Nb2R1bGU6IHN0cmluZyB8IG51bGw7XG4gIHdpdGhVZHA6IGJvb2xlYW47XG4gIGxpbmVBc3NvY2lhdGlvbnM6IExpbmVBc3NvY2lhdGlvbltdO1xuICBzaXBQcm9maWxlOiBzdHJpbmcgfCBudWxsO1xuICBzdWJzY3JpYmVDYWxsaW5nU2VhcmNoU3BhY2VOYW1lOiBzdHJpbmcgfCBudWxsO1xuICBleHRyYU9wdGlvbnM6IERldmljZUV4dHJhT3B0aW9ucztcbiAgdXNlckRldmljZVR5cGU6IHN0cmluZyB8IG51bGw7XG4gIGJ1aWx0SW5CcmlkZ2U6IHN0cmluZyB8IG51bGw7XG4gIHNlcnZpY2VzOiBTZXJ2aWNlW107XG4gIHNwZWVkRGlhbHM6IFNwZWVkRGlhbFtdO1xuICBidXN5TGFtcEZpZWxkczogQnVzeUxhbXBGaWVsZFtdO1xuICB3ZWJleFVVSUQ6IHN0cmluZyB8IG51bGw7XG4gIHBraWQ6IHN0cmluZyB8IG51bGw7XG4gIGRldmljZURlZmF1bHRzPzogRGV2aWNlRGVmYXVsdHNJbnRlcmZhY2UgfCBudWxsO1xuICBuYW1lVmFsaWRhdGlvblJlZ2V4Pzogc3RyaW5nIHwgbnVsbDtcbiAgbmFtZVZhbGlkYXRpb25DYXB0aW9uPzogc3RyaW5nIHwgbnVsbDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMaW5lQXNzb2NpYXRpb24ge1xuICBsaW5lUGtpZDogc3RyaW5nIHwgbnVsbDtcbiAgaW5kZXg6IG51bWJlcjtcbiAgcG9zaXRpb246IHN0cmluZyB8IG51bGw7XG4gIGRpcmVjdG9yeU51bWJlcjogRGlyZWN0b3J5TnVtYmVyO1xuICBlMTY0TWFzazogc3RyaW5nIHwgbnVsbDtcbiAgdGV4dExhYmVsOiBzdHJpbmcgfCBudWxsO1xuICBkaXNwbGF5TGFiZWw6IHN0cmluZyB8IG51bGw7XG4gIGRpc3BsYXlMYWJlbEFzY2lpOiBzdHJpbmcgfCBudWxsO1xuICBtYXhOdW1iZXJPZkNhbGxzOiBudW1iZXIgfCBudWxsO1xuICBidXN5VHJpZ2dlcjogbnVtYmVyIHwgbnVsbDtcbiAgcmVjb3JkaW5nT3B0aW9uOiBzdHJpbmcgfCBudWxsO1xuICByZWNvcmRpbmdQcm9maWxlOiBzdHJpbmcgfCBudWxsO1xuICByZWNvcmRpbmdNZWRpYVNvdXJjZTogc3RyaW5nIHwgbnVsbDtcbiAgdmlzdWFsTVdJOiBib29sZWFuIHwgbnVsbDtcbiAgYXVkaWJsZU1XSTogYm9vbGVhbiB8IG51bGw7XG4gIHJpbmdTZXR0aW5nX2lkbGU6IHN0cmluZyB8IG51bGw7XG4gIHJpbmdTZXR0aW5nX2FjdGl2ZTogc3RyaW5nIHwgbnVsbDtcbiAgcGlja3VwQUFTX2lkbGU6IHN0cmluZyB8IG51bGw7XG4gIHBpY2t1cEFBU19hY3RpdmU6IHN0cmluZyB8IG51bGw7XG4gIG1vbml0b3JDU1M6IHN0cmluZyB8IG51bGw7XG4gIGxvZ01pc3NlZENhbGw6IGJvb2xlYW4gfCBzdHJpbmcgfCBudWxsO1xuICBjYWxsSW5mb0Rpc3BsYXk6IENhbGxJbmZvRGlzcGxheSB8IHN0cmluZyB8IG51bGw7XG4gIGxpbmVMb2NhbElkOiBzdHJpbmc7XG4gIGRpZFBhdHRlcm46IERpZFBhdHRlcm4gfCBzdHJpbmcgfCBudWxsO1xuICBlbnRpdHlDaGFuZ2VUeXBlPzogc3RyaW5nIHwgbnVsbDtcbiAgc2hhcmVkRGV2aWNlczogU2hhcmVkRGV2aWNlW107XG4gIHNoYXJlZFVzZXJzOiBTaGFyZWRVc2VyW107XG4gIG93bmVyVXNlcklkOiBzdHJpbmdbXTtcbiAgYXNzb2NpYXRlZDogYm9vbGVhbjtcbiAgcGF0dGVyblVzYWdlOiBzdHJpbmcgfCBudWxsO1xuICBhbGVydGluZ05hbWU6IHN0cmluZyB8IG51bGw7XG4gIHBvcHVsYXRlV2l0aERpZDogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEaXJlY3RvcnlOdW1iZXIge1xuICAvLyBkaXJlY3RvcnlOdW1iZXI6IHN0cmluZyB8IG51bGw7XG4gIC8vIHJvdXRlUGFydGl0aW9uTmFtZTogc3RyaW5nIHwgbnVsbDtcbiAgLy8gcGtpZDogc3RyaW5nIHwgbnVsbDtcbiAgLy8gZG5UeXBlOiBzdHJpbmcgfCBudWxsO1xuICAvLyBzdWJUeXBlOiBzdHJpbmcgfCBudWxsO1xuXG4gIGRpcmVjdG9yeU51bWJlcjogc3RyaW5nO1xuICB0ZW1wbGF0ZURpcmVjdG9yeU51bWJlcj86IHN0cmluZztcbiAgcm91dGVQYXJ0aXRpb25OYW1lOiBzdHJpbmc7XG4gIHBraWQ/OiBzdHJpbmcgfCBudWxsO1xuICBkblR5cGU/OiBzdHJpbmcgfCBudWxsO1xuICBzdWJUeXBlPzogc3RyaW5nIHwgbnVsbDtcbiAgZGlzcGxheVZhbHVlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERldmljZUV4dHJhT3B0aW9ucyB7XG4gIG1lZGlhUmVzb3VyY2VHcm91cExpc3Q6IHN0cmluZyB8IG51bGw7XG4gIHVzZXJIb2xkTU9IQXVkaW9Tb3VyY2VJZDogc3RyaW5nIHwgbnVsbDtcbiAgdXNlckhvbGRNT0hBdWRpb1NvdXJjZU5hbWU6IHN0cmluZyB8IG51bGw7XG4gIG5ldHdvcmtNT0hBdWRpb1NvdXJjZUlkOiBzdHJpbmcgfCBudWxsO1xuICBuZXR3b3JrTU9IQXVkaW9Tb3VyY2VOYW1lOiBzdHJpbmcgfCBudWxsO1xuICBhYXJDc3M6IHN0cmluZyB8IG51bGw7XG4gIGFhckdyb3VwOiBzdHJpbmcgfCBudWxsO1xuICBwcml2YWN5OiBzdHJpbmcgfCBudWxsO1xuICBkZXZpY2VNb2JpbGl0eU1vZGU6IHN0cmluZyB8IG51bGw7XG4gIG1vYmlsaXR5VXNlcklkOiBzdHJpbmcgfCBudWxsO1xuICBwaG9uZVBlcnNvbmFsaXphdGlvbjogc3RyaW5nIHwgbnVsbDtcbiAgc2VydmljZXNQcm92aXNpb25pbmc6IHN0cmluZyB8IG51bGw7XG4gIHBob25lTG9hZE5hbWU6IHN0cmluZyB8IG51bGw7XG4gIHBob25lSWRsZUJMRkFsZXJ0U2V0dGluZzogc3RyaW5nIHwgbnVsbDtcbiAgcGhvbmVCdXN5QkxGQWxlcnRTZXR0aW5nOiBzdHJpbmcgfCBudWxsO1xuICB1c2VUcnVzdGVkUmVsYXlQb2ludDogYm9vbGVhbiB8IG51bGw7XG4gIGFsd2F5c1VzZVByaW1lTGluZTogYm9vbGVhbiB8IG51bGw7XG4gIGFsd2F5c1VzZVByaW1lTGluZUZvclZvaWNlTWVzc2FnZTogYm9vbGVhbiB8IG51bGw7XG4gIGdlb2xvY2F0aW9uOiBzdHJpbmcgfCBudWxsO1xuICBpZ25vcmVQcmVzZW50YXRpb25JbmRpY2F0b3JzOiBib29sZWFuIHwgbnVsbDtcbiAgbG9nZ2VkSW50b0h1bnRHcm91cDogYm9vbGVhbiB8IG51bGw7XG4gIGVuYWJsZWRFeHRlbnNpb25Nb2JpbGl0eTogYm9vbGVhbiB8IG51bGw7XG4gIHJlbW90ZURldmljZTogc3RyaW5nIHwgbnVsbDtcbiAgcHJvdGVjdGVkRGV2aWNlOiBib29sZWFuIHwgbnVsbDtcbiAgaG90bGluZURldmljZTogYm9vbGVhbjtcbiAgY29tbW9uRGV2aWNlQ29uZmlnTmFtZTogc3RyaW5nIHwgbnVsbDtcbiAgdXNlRGV2aWNlUG9vbENncG5JbmdyZXNzRE46IGJvb2xlYW4gfCBudWxsO1xuICBjZ3BuSW5ncmVzc0ROOiBzdHJpbmcgfCBudWxsO1xuICB1c2VEZXZpY2VQb29sQ2dwblRyYW5zZm9ybUNzczogYm9vbGVhbiB8IG51bGw7XG4gIGNncG5UcmFuc2Zvcm1hdGlvbkNzczogc3RyaW5nIHwgbnVsbDtcbiAgcGFja2V0Q2FwdHVyZU1vZGU6IHN0cmluZyB8IG51bGw7XG4gIHBhY2tldENhcHR1cmVEdXJhdGlvbjogbnVtYmVyIHwgbnVsbDtcbiAgYmxmUHJlc2VuY2VHcm91cDogc3RyaW5nIHwgbnVsbDtcbiAgc2lwRGlhbFJ1bGVzOiBzdHJpbmcgfCBudWxsO1xuICBtdHBQcmVmZXJyZWRPcmlnaW5hdGluZ0NvZGVjOiBzdHJpbmcgfCBudWxsO1xuICByZXJvdXRlQ3NzOiBzdHJpbmcgfCBudWxsO1xuICBzdWJzY3JpYmVDc3M6IHN0cmluZyB8IG51bGw7XG4gIGRpZ2VzdFVzZXI6IHN0cmluZyB8IG51bGw7XG4gIG10cFJlcXVpcmVkOiBib29sZWFuIHwgbnVsbDtcbiAgdW5hdHRlbmRlZFBvcnQ6IGJvb2xlYW4gfCBudWxsO1xuICByZXF1aXJlRHRtZlJlY2VwdGlvbjogYm9vbGVhbiB8IG51bGw7XG4gIGluZm9ybWF0aW9uVXJsOiBzdHJpbmcgfCBudWxsO1xuICBkaXJlY3RvcnlVcmw6IHN0cmluZyB8IG51bGw7XG4gIG1lc3NhZ2VzVXJsOiBzdHJpbmcgfCBudWxsO1xuICBzZXJ2aWNlc1VybDogc3RyaW5nIHwgbnVsbDtcbiAgYXV0aGVudGljYXRpb25Vcmw6IHN0cmluZyB8IG51bGw7XG4gIHByb3h5U2VydmVyVXJsOiBzdHJpbmcgfCBudWxsO1xuICBpZGxlVXJsOiBzdHJpbmcgfCBudWxsO1xuICBpZGxlVGltZW91dDogbnVtYmVyIHwgbnVsbDtcbiAgc2VjdXJlQXV0aGVudGljYXRpb25Vcmw6IHN0cmluZyB8IG51bGw7XG4gIHNlY3VyZURpcmVjdG9yeVVybDogc3RyaW5nIHwgbnVsbDtcbiAgc2VjdXJlSWRsZVVybDogc3RyaW5nIHwgbnVsbDtcbiAgc2VjdXJlSW5mb3JtYXRpb25Vcmw6IHN0cmluZyB8IG51bGw7XG4gIHNlY3VyZU1lc3NhZ2VVcmw6IHN0cmluZyB8IG51bGw7XG4gIHNlY3VyZVNlcnZpY2VzVXJsOiBzdHJpbmcgfCBudWxsO1xuICBtbHBwRG9tYWluOiBzdHJpbmcgfCBudWxsO1xuICBtbHBwSW5kaWNhdGlvbjogc3RyaW5nIHwgbnVsbDtcbiAgbWxwcFByZWVtcHRpb246IHN0cmluZyB8IG51bGw7XG4gIGNvbmZpZGVudGlhbEFjY2Vzc01vZGU6IHN0cmluZyB8IG51bGw7XG4gIGNvbmZpZGVudGlhbEFjY2Vzc0xldmVsOiBzdHJpbmcgfCBudWxsO1xuICBjb25maWRlbnRpYWxBY2Nlc3NMZXZlbE5hbWU6IHN0cmluZyB8IG51bGw7XG4gIGRvTm90RGlzdHVyYjogYm9vbGVhbiB8IG51bGw7XG4gIGRuZE9wdGlvbjogc3RyaW5nIHwgbnVsbDtcbiAgZG5kSW5jb21pbmdDYWxsQWxlcnQ6IHN0cmluZyB8IG51bGw7XG4gIGRpc2FibGVTcGVha2VycGhvbmU6IGJvb2xlYW4gfCBudWxsO1xuICBkaXNhYmxlU3BlYWtlcnBob25lQW5kSGVhZHNldDogYm9vbGVhbiB8IG51bGw7XG4gIGZvcndhcmRpbmdEZWxheTogbnVtYmVyIHwgbnVsbDtcbiAgcGNQb3J0OiBib29sZWFuIHwgbnVsbDtcbiAgc2V0dGluZ3NBY2Nlc3M6IHN0cmluZyB8IG51bGw7XG4gIGdyYXR1aXRvdXNBUlA6IGJvb2xlYW4gfCBudWxsO1xuICBwY1ZvaWNlVmxhbkFjY2Vzczogc3RyaW5nIHwgbnVsbDtcbiAgdmlkZW9DYXBhYmlsaXRpZXM6IHN0cmluZyB8IG51bGw7XG4gIHdlYkFjY2VzczogYm9vbGVhbiB8IG51bGw7XG4gIGRheXNEaXNwbGF5Tm90QWN0aXZlOiBudW1iZXIgfCBudWxsO1xuICBkaXNwbGF5T25UaW1lOiBzdHJpbmcgfCBudWxsO1xuICBkaXNwbGF5T25EdXJhdGlvbjogbnVtYmVyIHwgbnVsbDtcbiAgZGlzcGxheUlkbGVUaW1lb3V0OiBudW1iZXIgfCBudWxsO1xuICB3aXJlbGVzc0hlYWRzZXRIb29rc3dpdGNoQ29udHJvbDogYm9vbGVhbiB8IG51bGw7XG4gIG1pblJpbmdWb2x1bWU6IG51bWJlciB8IG51bGw7XG4gIHNob3dBbGxDYWxsc09uUEw6IGJvb2xlYW4gfCBudWxsO1xuICBsaW5lTW9kZTogc3RyaW5nIHwgbnVsbDtcbiAgbGF0ZW50Q2FwYWJpbGl0eVJlZ2lzdHJhdGlvbjogYm9vbGVhbiB8IG51bGw7XG4gIGFjdGlvbmFibGVBbGVydDogYm9vbGVhbiB8IG51bGw7XG4gIHJldmVydFRvQWxsQ2FsbHM6IGJvb2xlYW4gfCBudWxsO1xuICB3aWRlYmFuZEhlYWRzZXRVSUNvbnRyb2w6IGJvb2xlYW4gfCBudWxsO1xuICB3aWRlYmFuZEhlYWRzZXQ6IGJvb2xlYW4gfCBudWxsO1xuICBhdXRoZW50aWNhdGlvbjgwMjogYm9vbGVhbiB8IG51bGw7XG4gIHNwYW5Ub1BjUG9ydDogYm9vbGVhbiB8IG51bGw7XG4gIGhlYWRzZXRNb25pdG9yOiBib29sZWFuIHwgbnVsbDtcbiAgaGVhZHNldFJlY29yZGluZzogYm9vbGVhbiB8IG51bGw7XG4gIHVwZGF0ZWRGaWVsZHM6IHN0cmluZ1tdO1xuICBlbmFibGVDZHBTd1BvcnQ6IGJvb2xlYW4gfCBudWxsO1xuICBlbmFibGVDZHBQY1BvcnQ6IGJvb2xlYW4gfCBudWxsO1xuICBlbmFibGVMbGRwUGNQb3J0OiBib29sZWFuIHwgbnVsbDtcbiAgZGVmYXVsdFdhbGxwYXBlckZpbGU6IHN0cmluZyB8IG51bGw7XG4gIGFuYWxvZ0dhdGV3YXlQb3J0SW5mb3JtYXRpb246IHN0cmluZyB8IG51bGw7XG4gIGxvYWRTZXJ2ZXI6IHN0cmluZyB8IG51bGw7XG4gIHBlZXJGaXJtd2FyZVNoYXJpbmc6IHN0cmluZyB8IG51bGw7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGluZUludGVyZmFjZSB7XG4gIGRpcmVjdG9yeU51bWJlcjogRGlyZWN0b3J5TnVtYmVyO1xuICBjYWxsaW5nU2VhcmNoU3BhY2U6IHN0cmluZyB8IG51bGw7XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmcgfCBudWxsO1xuICBsb2NhbElkOiBzdHJpbmc7XG4gIGVudGl0eUNoYW5nZVR5cGU6IHN0cmluZyB8IG51bGw7XG4gIGFsZXJ0aW5nTmFtZTogc3RyaW5nIHwgbnVsbDtcbiAgYXNjaWlBbGVydGluZ05hbWU6IHN0cmluZyB8IG51bGw7XG4gIGNhbGxGb3J3YXJkQWxsOiBDYWxsRm9yd2FyZDtcbiAgY2FsbEZvcndhcmRBbGxTZWNvbmRhcnlDU1M6IENhbGxGb3J3YXJkO1xuICBjYWxsRm9yd2FyZEJ1c3lJbnRlcm5hbDogQ2FsbEZvcndhcmQ7XG4gIGNhbGxGb3J3YXJkQnVzeUV4dGVybmFsOiBDYWxsRm9yd2FyZDtcbiAgY2FsbEZvcndhcmROb0Fuc3dlckludGVybmFsOiBDYWxsRm9yd2FyZDtcbiAgY2FsbEZvcndhcmROb0Fuc3dlckV4dGVybmFsOiBDYWxsRm9yd2FyZDtcbiAgY2FsbEZvcndhcmROb0NvdmVyYWdlSW50ZXJuYWw6IENhbGxGb3J3YXJkO1xuICBjYWxsRm9yd2FyZE5vQ292ZXJhZ2VFeHRlcm5hbDogQ2FsbEZvcndhcmQ7XG4gIGNhbGxGb3J3YXJkT25DVElGYWlsdXJlOiBDYWxsRm9yd2FyZDtcbiAgY2FsbEZvcndhcmRVbnJlZ2lzdGVyZWRJbnRlcm5hbDogQ2FsbEZvcndhcmQ7XG4gIGNhbGxGb3J3YXJkVW5yZWdpc3RlcmVkRXh0ZXJuYWw6IENhbGxGb3J3YXJkO1xuICB2b2ljZU1haWxQcm9maWxlOiBzdHJpbmcgfCBudWxsO1xuICBub0Fuc3dlclJpbmdEdXJhdGlvbjogbnVtYmVyIHwgbnVsbDtcbiAgYXV0b0Fuc3dlcjogc3RyaW5nIHwgbnVsbDtcbiAgY2FsbFBpY2t1cEdyb3VwOiBzdHJpbmcgfCBudWxsO1xuICBhYXJTZXR0aW5nczogQWFyU2V0dGluZ3M7XG4gIHBhcmtNb25pdG9yaW5nSW50ZXJuYWw6IHN0cmluZyB8IG51bGw7XG4gIHBhcmtNb25pdG9yaW5nRXh0ZXJuYWw6IHN0cmluZyB8IG51bGw7XG4gIHVyZ2VudFByaW9yaXR5OiBzdHJpbmcgfCBudWxsO1xuICBibGZQcmVzZW5jZUdyb3VwOiBzdHJpbmcgfCBudWxsO1xuICB1c2VySG9sZE1PSEF1ZGlvU291cmNlSWQ6IHN0cmluZyB8IG51bGw7XG4gIHVzZXJIb2xkTU9IQXVkaW9Tb3VyY2VOYW1lOiBzdHJpbmcgfCBudWxsO1xuICBuZXR3b3JrTU9IQXVkaW9Tb3VyY2VJZDogc3RyaW5nIHwgbnVsbDtcbiAgbmV0d29ya01PSEF1ZGlvU291cmNlTmFtZTogc3RyaW5nIHwgbnVsbDtcbiAgcmVqZWN0QW5vbnltb3VzQ2FsbDogYm9vbGVhbiB8IG51bGw7XG4gIGVudGVycHJpc2VBbHROdW06IHN0cmluZyB8IG51bGw7XG4gIGUxNjRBbHROdW06IHN0cmluZyB8IG51bGw7XG4gIGRpcmVjdG9yeVVyaXM6IHN0cmluZ1tdO1xuICBjYWxsRm9yd2FyZEFsdGVybmF0ZVBhcnR5OiBDYWxsRm9yd2FyZDtcbiAgbWxwcE5vQW5zd2VyUmluZ0R1cmF0aW9uOiBudW1iZXIgfCBudWxsO1xuICBjb25maWRlbnRpYWxBY2Nlc3NNb2RlOiBzdHJpbmcgfCBudWxsO1xuICBjb25maWRlbnRpYWxBY2Nlc3NMZXZlbDogc3RyaW5nIHwgbnVsbDtcbiAgY29uZmlkZW50aWFsQWNjZXNzTGV2ZWxOYW1lOiBzdHJpbmcgfCBudWxsO1xuICBjYWxsQ29udHJvbEFnZW50UHJvZmlsZTogc3RyaW5nIHwgbnVsbDtcbiAgaG9sZFJldmVyc2lvblJpbmdEdXJhdGlvbjogbnVtYmVyIHwgbnVsbDtcbiAgaG9sZFJldmVyc2lvbk5vdGlmaWNhdGlvbkludGVydmFsOiBudW1iZXIgfCBudWxsO1xuICBwYXJ0eUVudHJhbmNlVG9uZTogc3RyaW5nIHwgbnVsbDtcbiAgcHN0bkZhaWxvdmVyOiBzdHJpbmcgfCBudWxsO1xuICBuZXdUb1VzZXI6IGJvb2xlYW4gfCBudWxsO1xuICBkaWRQYXR0ZXJuczogc3RyaW5nW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2FsbEZvcndhcmQge1xuICBmb3J3YXJkVG9Wb2ljZU1haWw6IGJvb2xlYW4gfCBudWxsO1xuICBkZXN0aW5hdGlvbjogc3RyaW5nIHwgbnVsbDtcbiAgY2FsbGluZ1NlYXJjaFNwYWNlOiBzdHJpbmcgfCBudWxsO1xuICBkdXJhdGlvbjogbnVtYmVyIHwgbnVsbDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBYXJTZXR0aW5ncyB7XG4gIGFhckRlc3RpbmF0aW9uTWFzazogc3RyaW5nIHwgbnVsbDtcbiAgYWFyR3JvdXA6IHN0cmluZyB8IG51bGw7XG4gIGFhclZvaWNlTWFpbEVuYWJsZWQ6IGJvb2xlYW4gfCBudWxsO1xuICBhYXJLZWVwQ2FsbEhpc3Rvcnk6IGJvb2xlYW4gfCBudWxsO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERldmljZVByb2ZpbGUge1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZlYXR1cmUge1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJUZW1wbGF0ZVVkcERldmljZVR5cGVzUnVsZSB7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2hhcmVkRGV2aWNlIHtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTaGFyZWRVc2VyIHtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTZXJ2aWNlIHtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTcGVlZERpYWwge1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJ1c3lMYW1wRmllbGQge1xufVxuXG5leHBvcnQgZW51bSBEblJhbmdlVHlwZSB7XG4gIGV4dGVuc2lvbiA9ICdFWFRFTlNJT04nLFxuICBjcGcgPSAnQ1BHJyxcbiAgY2FsbHBhcmsgPSAnQ0FMTFBBUksnLFxuICBodW50Z3JvdXAgPSAnSFVOVEdST1VQJyxcbiAgbWVldG1lID0gJ01FRVRNRScsXG4gIGRpZCA9ICdESUQnXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRG5SYW5nZUludGVyZmFjZSB7XG4gIGZyb206IHN0cmluZztcbiAgdG86IHN0cmluZztcbiAgcHJlZml4OiBzdHJpbmc7XG4gIHJvdXRlUGFydGl0aW9uOiBzdHJpbmc7XG4gIGRuVHlwZTogRG5SYW5nZVR5cGU7XG4gIHRlbXBJZHg6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBdmFpbGFibGVQaG9uZU51bWJlclJhbmdlSW50ZXJmYWNlIHtcbiAgcGhvbmVOdW1iZXJSYW5nZTogRG5SYW5nZUludGVyZmFjZTtcbiAgdXNlZE51bWJlcnM6IHN0cmluZ1tdO1xuICByZXF1ZXN0ZWROdW1iZXI6IHN0cmluZztcbiAgdW5Vc2VkTnVtYmVyc1dpdGhEaWRzOiBhbnlbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBdmFpbGFibGVSYW5nZUludGVyZmFjZSB7XG4gIGF2YWlsYWJsZU51bWJlckxpc3Q6IEF2YWlsYWJsZVBob25lTnVtYmVyUmFuZ2VJbnRlcmZhY2VbXTtcbn1cblxuZXhwb3J0IGVudW0gVXNlclZpZXdUeXBlIHtcbiAgZGV0YWlscyA9IDAsXG4gIGRldmljZXMgPSAxLFxuICBsaW5lcyA9IDIsXG4gIHNuciA9IDMsXG4gIGZlYXR1cmVzID0gNCxcbiAgb3ZlcnZpZXcgPSA1XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGlzdFVzZXJJbnRlcmZhY2Uge1xuICB1c2VyaWQ6IHN0cmluZztcbiAgZmlyc3ROYW1lPzogc3RyaW5nO1xuICBsYXN0TmFtZT86IHN0cmluZztcbiAgZW1haWw/OiBzdHJpbmc7XG4gIHRlbGVwaG9uZU51bWJlcj86IHN0cmluZztcbiAgdmlld01vZGU/OiBVc2VyVmlld1R5cGU7XG4gIGRldmljZXM6IERldmljZUludGVyZmFjZVtdO1xuICBkZXZpY2VQcm9maWxlczogRGV2aWNlSW50ZXJmYWNlW107XG4gIGxpbmVzPzogTGluZUludGVyZmFjZVtdO1xuICBzaXRlSWQ/OiBudW1iZXI7XG4gIHNpdGVOYW1lPzogc3RyaW5nO1xuICBjaGVja2VkPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMZGFwVXNlcnNUYWJsZVJlc3BvbnNlIHtcbiAgdG90YWw6IG51bWJlcjtcbiAgcGFnZURhdGE6IExpc3RVc2VySW50ZXJmYWNlW107XG59Il19