@microsoft/windows-admin-center-sdk 4.123.0 → 4.232.0

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 (581) hide show
  1. package/angular/assets/strings/cs-CZ/strings.json +1 -1
  2. package/angular/assets/strings/de-DE/strings.json +1 -1
  3. package/angular/assets/strings/es-ES/strings.json +1 -1
  4. package/angular/assets/strings/fr-FR/strings.json +1 -1
  5. package/angular/assets/strings/hu-HU/strings.json +1 -1
  6. package/angular/assets/strings/id-ID/strings.json +1 -1
  7. package/angular/assets/strings/it-IT/strings.json +1 -1
  8. package/angular/assets/strings/ja-JP/strings.json +1 -1
  9. package/angular/assets/strings/ko-KR/strings.json +1 -1
  10. package/angular/assets/strings/nl-NL/strings.json +1 -1
  11. package/angular/assets/strings/pl-PL/strings.json +1 -1
  12. package/angular/assets/strings/pt-BR/strings.json +1 -1
  13. package/angular/assets/strings/pt-PT/strings.json +1 -1
  14. package/angular/assets/strings/ru-RU/strings.json +1 -1
  15. package/angular/assets/strings/strings.json +1 -1
  16. package/angular/assets/strings/sv-SE/strings.json +1 -1
  17. package/angular/assets/strings/tr-TR/strings.json +1 -1
  18. package/angular/assets/strings/zh-CN/strings.json +1 -1
  19. package/angular/assets/strings/zh-TW/strings.json +1 -1
  20. package/angular/esm2020/src/controls/accordion/accordion-panel/accordion-panel.component.mjs +36 -12
  21. package/angular/esm2020/src/controls/actions/containers/action-container.component.mjs +2 -3
  22. package/angular/esm2020/src/controls/alert-bar/alert-bar.component.mjs +2 -2
  23. package/angular/esm2020/src/controls/breadcrumb-header/breadcrumb-header.component.mjs +1 -1
  24. package/angular/esm2020/src/controls/common/base.component.mjs +1 -1
  25. package/angular/esm2020/src/controls/common/spacer-base.component.mjs +25 -1
  26. package/angular/esm2020/src/controls/context-menu/context-menu.component.mjs +2 -3
  27. package/angular/esm2020/src/controls/data-table/data-table.component.mjs +7 -7
  28. package/angular/esm2020/src/controls/dialog/base-dialog.component.mjs +2 -4
  29. package/angular/esm2020/src/controls/dialog/confirmation-list-dialog/confirmation-list-dialog.component.mjs +2 -2
  30. package/angular/esm2020/src/controls/dropdown/dropdown.component.mjs +1 -4
  31. package/angular/esm2020/src/controls/form/form-field/array/array-form-field-accessibility-manager.service.mjs +59 -0
  32. package/angular/esm2020/src/controls/form/form-field/array/array-form-field.component.mjs +24 -35
  33. package/angular/esm2020/src/controls/form/form-field/clock/clock-form-field.component.mjs +10 -7
  34. package/angular/esm2020/src/controls/form/form-field/form-field-accessibility-manager-base.service.mjs +105 -0
  35. package/angular/esm2020/src/controls/form/form-field/form-field.component.mjs +1 -1
  36. package/angular/esm2020/src/controls/form/form-field/list/list-form-field-accessibility-manager.service.mjs +38 -0
  37. package/angular/esm2020/src/controls/form/form-field/list/list-form-field.component.mjs +56 -38
  38. package/angular/esm2020/src/controls/form/form-field/number/number-form-field.component.mjs +22 -4
  39. package/angular/esm2020/src/controls/form/form-field/ordered-list/ordered-list-form-field-accessibility-manager.service.mjs +54 -0
  40. package/angular/esm2020/src/controls/form/form-field/ordered-list/ordered-list-form-field.component.mjs +67 -67
  41. package/angular/esm2020/src/controls/form/form-field/radio-group/classic/radio-group-form-field.component.mjs +5 -5
  42. package/angular/esm2020/src/controls/form/forms.module.mjs +19 -2
  43. package/angular/esm2020/src/controls/icon/icon-text/icon-text.component.mjs +6 -6
  44. package/angular/esm2020/src/controls/icon/layered-icon/status/status-icon.component.mjs +1 -1
  45. package/angular/esm2020/src/controls/layout/editable-layout.component.mjs +2 -3
  46. package/angular/esm2020/src/controls/node-credentials-form/node-credentials-form.component.mjs +2 -2
  47. package/angular/esm2020/src/controls/page-alert-bar/page-alert-bar.component.mjs +4 -4
  48. package/angular/esm2020/src/controls/property-grid/property-grid.component.mjs +33 -13
  49. package/angular/esm2020/src/controls/schema/tabbed-form-loader.component.mjs +2 -2
  50. package/angular/esm2020/src/controls/settings/common-settings/common-settings.component.mjs +5 -5
  51. package/angular/esm2020/src/controls/settings/settings-form.directive.mjs +3 -7
  52. package/angular/esm2020/src/controls/settings/settings-form.service.mjs +2 -4
  53. package/angular/esm2020/src/controls/snap-in-extension/snap-in-extension.component.mjs +1 -1
  54. package/angular/esm2020/src/controls/split-view/split-view.component.mjs +2 -2
  55. package/angular/esm2020/src/controls/wizard/models/wizard-step-snap-in-output.mjs +1 -1
  56. package/angular/esm2020/src/controls/wizard-lite/wizard-navigation-button/wizard-navigation-button.component.mjs +3 -3
  57. package/angular/esm2020/src/data/extension-broker/snap-in-listener.mjs +80 -0
  58. package/angular/esm2020/src/data/index.mjs +2 -1
  59. package/angular/esm2020/src/directives/router/router-link.directive.mjs +2 -2
  60. package/angular/esm2020/src/directives/svg/svg.directive.mjs +2 -3
  61. package/angular/esm2020/src/generated/strings.mjs +1 -1
  62. package/angular/esm2020/src/service/navigation.service.mjs +3 -8
  63. package/angular/esm2020/src/service/user-alive.service.mjs +2 -4
  64. package/angular/fesm2015/microsoft-windows-admin-center-sdk-angular.mjs +665 -239
  65. package/angular/fesm2015/microsoft-windows-admin-center-sdk-angular.mjs.map +1 -1
  66. package/angular/fesm2020/microsoft-windows-admin-center-sdk-angular.mjs +636 -237
  67. package/angular/fesm2020/microsoft-windows-admin-center-sdk-angular.mjs.map +1 -1
  68. package/angular/package.json +1 -1
  69. package/angular/src/controls/accordion/accordion-panel/accordion-panel.component.d.ts +13 -4
  70. package/angular/src/controls/common/spacer-base.component.d.ts +11 -2
  71. package/angular/src/controls/form/form-field/array/array-form-field-accessibility-manager.service.d.ts +38 -0
  72. package/angular/src/controls/form/form-field/array/array-form-field.component.d.ts +3 -1
  73. package/angular/src/controls/form/form-field/form-field-accessibility-manager-base.service.d.ts +37 -0
  74. package/angular/src/controls/form/form-field/list/list-form-field-accessibility-manager.service.d.ts +25 -0
  75. package/angular/src/controls/form/form-field/list/list-form-field.component.d.ts +12 -2
  76. package/angular/src/controls/form/form-field/number/number-form-field.component.d.ts +8 -0
  77. package/angular/src/controls/form/form-field/ordered-list/ordered-list-form-field-accessibility-manager.service.d.ts +37 -0
  78. package/angular/src/controls/form/form-field/ordered-list/ordered-list-form-field.component.d.ts +12 -8
  79. package/angular/src/controls/icon/icon-text/icon-text.component.d.ts +1 -1
  80. package/angular/src/controls/property-grid/property-grid.component.d.ts +2 -0
  81. package/angular/src/controls/wizard/models/wizard-step-snap-in-output.d.ts +1 -1
  82. package/{core → angular/src}/data/extension-broker/snap-in-listener.d.ts +49 -46
  83. package/angular/src/data/index.d.ts +1 -0
  84. package/angular/src/directives/svg/svg.directive.d.ts +1 -2
  85. package/angular/src/generated/strings.d.ts +12 -0
  86. package/core/async/cancellation.js +312 -0
  87. package/core/async/index.js +312 -0
  88. package/core/async/progress.js +312 -0
  89. package/core/azure/azure-constants.d.ts +2 -2
  90. package/core/azure/azure-constants.d.ts.map +1 -1
  91. package/core/azure/azure-constants.js +322 -3
  92. package/core/azure/azure-constants.js.map +1 -1
  93. package/core/azure/azure-logging.js +312 -0
  94. package/core/azure/azure-manager.js +312 -0
  95. package/core/azure/models/aadAppConfig-data.js +312 -0
  96. package/core/azure/models/azureArcStatusEnum.js +312 -0
  97. package/core/azure/models/azureTokenResult-data.js +312 -0
  98. package/core/azure/resources/deployment-operation-request-body.js +312 -0
  99. package/core/azure/resources/deployment-operation-response.js +312 -0
  100. package/core/azure/resources/location-data.js +315 -0
  101. package/core/azure/resources/resource-group-data.js +312 -0
  102. package/core/azure/resources/subscription-data.js +312 -0
  103. package/core/base/data-store/browser-storage-data-store.js +315 -0
  104. package/core/base/data-store/cached-data-store.js +312 -0
  105. package/core/base/data-store/data-store.js +312 -0
  106. package/core/base/data-store/local-data-store.js +312 -0
  107. package/core/base/data-store/memory-data-store.js +312 -0
  108. package/core/base/data-store/session-data-store.js +312 -0
  109. package/core/base/date/date-like.js +312 -0
  110. package/core/base/date/date-range.js +312 -0
  111. package/core/base/date/date-time.js +312 -0
  112. package/core/base/date/date-type.js +312 -0
  113. package/core/base/date/time-unit.js +312 -0
  114. package/core/base/decorators/base.js +312 -0
  115. package/core/base/decorators/debounce.decorators.js +312 -0
  116. package/core/base/decorators/delay.decorator.js +315 -0
  117. package/core/base/decorators/yield.decorator.js +312 -0
  118. package/core/base/environment.js +312 -0
  119. package/core/base/json.js +312 -0
  120. package/core/base/msft-sme.mock.js +316 -0
  121. package/core/base/polyfills/array.js +315 -0
  122. package/core/base/polyfills/string.js +312 -0
  123. package/core/base/rxjs-lifetime-manager.js +312 -0
  124. package/core/base/utilities.js +312 -0
  125. package/core/base/versioned-object.js +312 -0
  126. package/core/data/accessibility-manager.js +312 -0
  127. package/core/data/active-directory/active-directory.js +312 -0
  128. package/core/data/active-directory/models/account-info.js +312 -0
  129. package/core/data/active-directory/models/active-directory-search-options.js +312 -0
  130. package/core/data/active-directory/models/search-type.js +312 -0
  131. package/core/data/animation.js +312 -0
  132. package/core/data/app-context.js +312 -0
  133. package/core/data/asset-manager.js +315 -0
  134. package/core/data/base64-array-buffer.js +312 -0
  135. package/core/data/batch-connection.js +312 -0
  136. package/core/data/cim-connection.js +312 -0
  137. package/core/data/cim-stream.js +312 -0
  138. package/core/data/cim.js +312 -0
  139. package/core/data/column-picker.js +312 -0
  140. package/core/data/cookie.js +312 -0
  141. package/core/data/core-environment.js +315 -0
  142. package/core/data/crypto.js +312 -0
  143. package/core/data/deployment-share.js +312 -0
  144. package/core/data/disposable.js +312 -0
  145. package/core/data/electron.js +315 -0
  146. package/core/data/error-extended.js +312 -0
  147. package/core/data/extension-broker/dialog-listener.js +312 -0
  148. package/core/data/extension-broker/extension-broker.js +312 -0
  149. package/core/data/extension-broker/extension-listener.js +312 -0
  150. package/core/data/extension-broker/model/extension-broker-request-payload.js +312 -0
  151. package/core/data/extension-broker/model/extension-broker-response-error.js +312 -0
  152. package/core/data/extension-broker/model/extension-broker-response-payload.js +312 -0
  153. package/core/data/extension-broker/model/extension-entries.js +315 -0
  154. package/core/data/extension-broker/model/extension-instance.js +315 -0
  155. package/core/data/extension-broker/model/extension-rect.js +312 -0
  156. package/core/data/extension-broker/model/extension-search-options.js +312 -0
  157. package/core/data/extension-broker/service-listener.js +312 -0
  158. package/core/data/extension-broker/worker-listener.js +312 -0
  159. package/core/data/extension-broker/worker-set.js +312 -0
  160. package/core/data/file-transfer.js +312 -0
  161. package/core/data/gateway-connection.js +312 -0
  162. package/core/data/gateway-status.js +312 -0
  163. package/core/data/gateway-url-builder.js +312 -0
  164. package/core/data/gateway-url-translator.d.ts +1 -0
  165. package/core/data/gateway-url-translator.d.ts.map +1 -1
  166. package/core/data/gateway-url-translator.js +337 -6
  167. package/core/data/gateway-url-translator.js.map +1 -1
  168. package/core/data/gateway-urls.js +312 -0
  169. package/core/data/globalization.js +315 -0
  170. package/core/data/http-constants.js +315 -0
  171. package/core/data/http.js +312 -0
  172. package/core/data/jobs/jobs-manager.js +312 -0
  173. package/core/data/jobs/models/job-credentials.js +312 -0
  174. package/core/data/jobs/models/job-node.js +312 -0
  175. package/core/data/jobs/models/job-paginated-response.js +315 -0
  176. package/core/data/jobs/models/job-pagination-options.js +315 -0
  177. package/core/data/jobs/models/job.js +312 -0
  178. package/core/data/jobs/models/node-job.js +312 -0
  179. package/core/data/jobs/models/powershell-job.js +312 -0
  180. package/core/data/language.js +315 -0
  181. package/core/data/lifetime-data.js +312 -0
  182. package/core/data/localization-manager.js +312 -0
  183. package/core/data/native-q.js +312 -0
  184. package/core/data/net.d.ts.map +1 -1
  185. package/core/data/net.js +313 -1
  186. package/core/data/net.js.map +1 -1
  187. package/core/data/node-connection.d.ts.map +1 -1
  188. package/core/data/node-connection.js +312 -2
  189. package/core/data/node-connection.js.map +1 -1
  190. package/core/data/node-extension-install.js +312 -0
  191. package/core/data/powershell-alternate.js +312 -0
  192. package/core/data/powershell-batch.js +312 -0
  193. package/core/data/powershell-connection.js +312 -0
  194. package/core/data/powershell-crypto.js +312 -0
  195. package/core/data/powershell-stream.js +312 -0
  196. package/core/data/powershell.js +312 -0
  197. package/core/data/query-cache.js +312 -0
  198. package/core/data/resource-cache.js +312 -0
  199. package/core/data/schedule-reboot.js +312 -0
  200. package/core/data/settings-manager.js +312 -0
  201. package/core/data/settings-manger.mock.js +312 -0
  202. package/core/data/sme-extension.js +312 -0
  203. package/core/data/ssh-stream.js +312 -0
  204. package/core/data/units.js +312 -0
  205. package/core/data/uri-builder.js +315 -0
  206. package/core/data/wdac-operations.js +312 -0
  207. package/core/data/websocket-stream.js +312 -0
  208. package/core/diagnostics/error-monitor.js +312 -0
  209. package/core/diagnostics/log-level.js +312 -0
  210. package/core/diagnostics/log-record.js +312 -0
  211. package/core/diagnostics/logging-constants.js +312 -0
  212. package/core/diagnostics/logging.js +312 -0
  213. package/core/diagnostics/logging.mock.js +312 -0
  214. package/core/diagnostics/sme-web-telemetry-models.js +312 -0
  215. package/core/diagnostics/sme-web-telemetry.d.ts +1 -2
  216. package/core/diagnostics/sme-web-telemetry.d.ts.map +1 -1
  217. package/core/diagnostics/sme-web-telemetry.js +336 -15
  218. package/core/diagnostics/sme-web-telemetry.js.map +1 -1
  219. package/core/diagnostics/telemetry-control-type.js +312 -0
  220. package/core/diagnostics/telemetry-options.js +312 -0
  221. package/core/diagnostics/telemetry-record.js +312 -0
  222. package/core/dom/dom.js +312 -0
  223. package/core/frame/frame-connection.js +312 -0
  224. package/core/frame/frame-connection.mock.js +312 -0
  225. package/core/frame/shell-navigation-connection.js +312 -0
  226. package/core/generated/powershell-scripts.d.ts.map +1 -1
  227. package/core/generated/powershell-scripts.js +313 -1
  228. package/core/generated/powershell-scripts.js.map +1 -1
  229. package/core/generated/strings.js +312 -0
  230. package/core/host/host-core-manager.js +312 -0
  231. package/core/host/host-core-message-type.js +312 -0
  232. package/core/host/host-core-messages.js +312 -0
  233. package/core/index.d.ts +0 -1
  234. package/core/index.d.ts.map +1 -1
  235. package/core/index.js +312 -1
  236. package/core/index.js.map +1 -1
  237. package/core/manifest/environment-modules.js +312 -0
  238. package/core/manifest/manifest-loader.js +312 -0
  239. package/core/notification/client-notification-instance.js +312 -0
  240. package/core/notification/client-notification.js +312 -0
  241. package/core/notification/notification-connection.js +312 -0
  242. package/core/notification/notification-link-type.js +312 -0
  243. package/core/notification/notification-manager.js +312 -0
  244. package/core/notification/notification-message.js +312 -0
  245. package/core/notification/notification-state.js +312 -0
  246. package/core/notification/notification.js +312 -0
  247. package/core/notification/powershell-notification.js +312 -0
  248. package/core/notification/socket-signalr.js +312 -0
  249. package/core/notification/work-item-connection.js +312 -0
  250. package/core/notification/work-item-manager.js +312 -0
  251. package/core/notification/work-item-request.js +312 -0
  252. package/core/performance/performance-profile-data-type.js +312 -0
  253. package/core/performance/performance-profile-data.js +312 -0
  254. package/core/performance/performance-profile-database.js +312 -0
  255. package/core/performance/performance-profile-record.js +312 -0
  256. package/core/performance/performance-profile.d.ts.map +1 -1
  257. package/core/performance/performance-profile.js +321 -9
  258. package/core/performance/performance-profile.js.map +1 -1
  259. package/core/performance/performance-tracker.js +312 -0
  260. package/core/polyfills.js +312 -0
  261. package/core/resources/scripts/public/crypto/Get-DecryptedDataFromNode.ps1 +216 -0
  262. package/core/resources/scripts/public/crypto/Get-EncryptionJWKOnNode.ps1 +216 -0
  263. package/core/resources/scripts/public/inventory/Get-CimWin32LogicalDisk.ps1 +218 -0
  264. package/core/resources/scripts/public/inventory/Get-CimWin32NetworkAdapter.ps1 +216 -0
  265. package/core/resources/scripts/public/inventory/Get-CimWin32PhysicalMemory.ps1 +216 -0
  266. package/core/resources/scripts/public/inventory/Get-CimWin32Processor.ps1 +216 -0
  267. package/core/resources/scripts/public/inventory/Get-ClusterInventory.ps1 +216 -0
  268. package/core/resources/scripts/public/inventory/Get-ClusterNodes.ps1 +216 -0
  269. package/core/resources/scripts/public/inventory/Get-ServerInventory.ps1 +246 -8
  270. package/core/rpc/alive/rpc-alive-client.js +312 -0
  271. package/core/rpc/alive/rpc-alive-handler.js +312 -0
  272. package/core/rpc/alive/rpc-alive-model.js +315 -0
  273. package/core/rpc/alive/rpc-alive-subject-server.js +312 -0
  274. package/core/rpc/alive/rpc-observable-alive-client.js +312 -0
  275. package/core/rpc/alive/rpc-observable-alive-model.js +312 -0
  276. package/core/rpc/alive/rpc-observable-alive-server.js +312 -0
  277. package/core/rpc/azure/rpc-azure-model.js +312 -0
  278. package/core/rpc/azure/rpc-azure-request-client.js +312 -0
  279. package/core/rpc/azure/rpc-azure-request-handler.js +312 -0
  280. package/core/rpc/azure/rpc-azure-request-subject-server.js +312 -0
  281. package/core/rpc/azure/rpc-azure-response-client.js +312 -0
  282. package/core/rpc/azure/rpc-azure-response-handler.js +315 -0
  283. package/core/rpc/credssp/rpc-credssp-model.js +312 -0
  284. package/core/rpc/credssp/rpc-credssp-request-client.js +312 -0
  285. package/core/rpc/credssp/rpc-credssp-request-handler.js +315 -0
  286. package/core/rpc/credssp/rpc-credssp-request-subject-server.js +312 -0
  287. package/core/rpc/credssp/rpc-credssp-response-client.js +312 -0
  288. package/core/rpc/credssp/rpc-credssp-response-handler.js +315 -0
  289. package/core/rpc/dialog/rpc-dialog-client.js +312 -0
  290. package/core/rpc/dialog/rpc-dialog-handler.js +312 -0
  291. package/core/rpc/dialog/rpc-dialog-model.js +312 -0
  292. package/core/rpc/dialog/rpc-dialog-subject-server.js +315 -0
  293. package/core/rpc/electron/rpc-electron-model.js +312 -0
  294. package/core/rpc/electron/rpc-electron-request-client.js +312 -0
  295. package/core/rpc/electron/rpc-electron-request-handler.js +312 -0
  296. package/core/rpc/electron/rpc-electron-request-subject-server.js +312 -0
  297. package/core/rpc/electron/rpc-electron-response-client.js +312 -0
  298. package/core/rpc/electron/rpc-electron-response-handler.js +312 -0
  299. package/core/rpc/elevate/rpc-observable-elevate-client.js +312 -0
  300. package/core/rpc/elevate/rpc-observable-elevate-model.js +312 -0
  301. package/core/rpc/elevate/rpc-observable-elevate-server.js +312 -0
  302. package/core/rpc/error-monitor/rpc-observable-error-monitor-client.js +312 -0
  303. package/core/rpc/error-monitor/rpc-observable-error-monitor-model.js +315 -0
  304. package/core/rpc/error-monitor/rpc-observable-error-monitor-server.js +312 -0
  305. package/core/rpc/extension-broker/rpc-extension-broker-model.js +315 -0
  306. package/core/rpc/extension-broker/rpc-extension-broker-module-request-subject-server.js +315 -0
  307. package/core/rpc/extension-broker/rpc-extension-broker-request-client.js +312 -0
  308. package/core/rpc/extension-broker/rpc-extension-broker-request-handler.js +312 -0
  309. package/core/rpc/extension-broker/rpc-extension-broker-request-subject-server.js +312 -0
  310. package/core/rpc/extension-broker/rpc-extension-broker-response-client.js +312 -0
  311. package/core/rpc/extension-broker/rpc-extension-broker-response-handler.js +312 -0
  312. package/core/rpc/extension-data/rpc-observable-extension-data-client.js +312 -0
  313. package/core/rpc/extension-data/rpc-observable-extension-data-model.js +312 -0
  314. package/core/rpc/extension-data/rpc-observable-extension-data-server.js +312 -0
  315. package/core/rpc/forward/rpc-forward-auto-client.js +312 -0
  316. package/core/rpc/forward/rpc-forward-down-client.js +315 -0
  317. package/core/rpc/forward/rpc-forward-down-handler.js +312 -0
  318. package/core/rpc/forward/rpc-forward-model.js +312 -0
  319. package/core/rpc/forward/rpc-forward-up-client.js +312 -0
  320. package/core/rpc/forward/rpc-forward-up-handler.js +312 -0
  321. package/core/rpc/forward/rpc-forward-up-subject-server.js +312 -0
  322. package/core/rpc/log/rpc-log-client.js +312 -0
  323. package/core/rpc/log/rpc-log-handler.js +312 -0
  324. package/core/rpc/log/rpc-log-model.js +312 -0
  325. package/core/rpc/log/rpc-log-subject-server.js +312 -0
  326. package/core/rpc/notification/rpc-notification-client.js +312 -0
  327. package/core/rpc/notification/rpc-notification-handler.js +312 -0
  328. package/core/rpc/notification/rpc-notification-model.js +312 -0
  329. package/core/rpc/notification/rpc-notification-subject-server.js +312 -0
  330. package/core/rpc/overlay/rpc-overlay-close-client.js +312 -0
  331. package/core/rpc/overlay/rpc-overlay-close-handler.js +312 -0
  332. package/core/rpc/overlay/rpc-overlay-model.js +312 -0
  333. package/core/rpc/overlay/rpc-overlay-open-client.js +315 -0
  334. package/core/rpc/overlay/rpc-overlay-open-handler.js +312 -0
  335. package/core/rpc/overlay/rpc-overlay-open-subject-server.js +312 -0
  336. package/core/rpc/performance/rpc-observable-performance-client.js +312 -0
  337. package/core/rpc/performance/rpc-observable-performance-config-client.js +312 -0
  338. package/core/rpc/performance/rpc-observable-performance-config-server.js +312 -0
  339. package/core/rpc/performance/rpc-observable-performance-model.js +312 -0
  340. package/core/rpc/performance/rpc-observable-performance-server.js +312 -0
  341. package/core/rpc/report/rpc-report-client.js +312 -0
  342. package/core/rpc/report/rpc-report-handler.js +312 -0
  343. package/core/rpc/report/rpc-report-model.js +312 -0
  344. package/core/rpc/report/rpc-report-subject-server.js +315 -0
  345. package/core/rpc/rpc-base.js +312 -0
  346. package/core/rpc/rpc-channel.js +312 -0
  347. package/core/rpc/rpc-forwarder.js +312 -0
  348. package/core/rpc/rpc-inbound-client.js +312 -0
  349. package/core/rpc/rpc-inbound.js +312 -0
  350. package/core/rpc/rpc-manager.js +312 -0
  351. package/core/rpc/rpc-module-subject-server.js +315 -0
  352. package/core/rpc/rpc-observable-client.js +312 -0
  353. package/core/rpc/rpc-observable-request.js +312 -0
  354. package/core/rpc/rpc-observable-result.js +312 -0
  355. package/core/rpc/rpc-observable-server.js +312 -0
  356. package/core/rpc/rpc-outbound-client.js +312 -0
  357. package/core/rpc/rpc-outbound.js +312 -0
  358. package/core/rpc/rpc-subject-server.js +312 -0
  359. package/core/rpc/rpc.js +312 -0
  360. package/core/rpc/seek/rpc-seek-client.js +312 -0
  361. package/core/rpc/seek/rpc-seek-handler.js +315 -0
  362. package/core/rpc/seek/rpc-seek-model.js +312 -0
  363. package/core/rpc/settings/rpc-settings-client.js +315 -0
  364. package/core/rpc/settings/rpc-settings-handler.js +312 -0
  365. package/core/rpc/settings/rpc-settings-model.js +312 -0
  366. package/core/rpc/settings/rpc-settings-subject-server.js +312 -0
  367. package/core/rpc/shell-navigate/rpc-shell-navigate-client.js +312 -0
  368. package/core/rpc/shell-navigate/rpc-shell-navigate-handler.js +312 -0
  369. package/core/rpc/shell-navigate/rpc-shell-navigate-model.js +312 -0
  370. package/core/rpc/shell-navigate/rpc-shell-navigate-subject-server.js +312 -0
  371. package/core/rpc/sme-extension/rpc-sme-extension-model.js +315 -0
  372. package/core/rpc/sme-extension/rpc-sme-extension-request-client.js +312 -0
  373. package/core/rpc/sme-extension/rpc-sme-extension-request-handler.js +312 -0
  374. package/core/rpc/sme-extension/rpc-sme-extension-request-subject-server.js +312 -0
  375. package/core/rpc/sme-extension/rpc-sme-extension-response-client.js +312 -0
  376. package/core/rpc/sme-extension/rpc-sme-extension-response-handler.js +312 -0
  377. package/core/rpc/telemetry/rpc-telemetry-client.js +312 -0
  378. package/core/rpc/telemetry/rpc-telemetry-handler.js +315 -0
  379. package/core/rpc/telemetry/rpc-telemetry-model.js +312 -0
  380. package/core/rpc/telemetry/rpc-telemetry-subject-server.js +312 -0
  381. package/core/rpc/update-data/rpc-update-data-client.js +312 -0
  382. package/core/rpc/update-data/rpc-update-data-handler.js +312 -0
  383. package/core/rpc/update-data/rpc-update-data-model.js +312 -0
  384. package/core/rpc/update-data/rpc-update-data-subject-server.js +312 -0
  385. package/core/rpc/update-theme/rpc-observable-update-theme-client.js +312 -0
  386. package/core/rpc/update-theme/rpc-observable-update-theme-model.js +312 -0
  387. package/core/rpc/update-theme/rpc-observable-update-theme-server.js +312 -0
  388. package/core/rpc/work-item/rpc-work-item-client.js +312 -0
  389. package/core/rpc/work-item/rpc-work-item-handler.js +312 -0
  390. package/core/rpc/work-item/rpc-work-item-model.js +312 -0
  391. package/core/rpc/work-item/rpc-work-item-subject-server.js +312 -0
  392. package/core/rpc/work-item-find/rpc-work-item-find-client.js +312 -0
  393. package/core/rpc/work-item-find/rpc-work-item-find-handler.js +312 -0
  394. package/core/rpc/work-item-find/rpc-work-item-find-model.js +312 -0
  395. package/core/rpc/work-item-find/rpc-work-item-find-subject-server.js +312 -0
  396. package/core/security/active-connection.js +312 -0
  397. package/core/security/authorization-manager.js +312 -0
  398. package/core/security/connection-manager-settings/common-connection-settings.js +315 -0
  399. package/core/security/connection-manager-settings/connection-settings.js +312 -0
  400. package/core/security/connection-manager.js +312 -0
  401. package/core/security/connection-stream.js +312 -0
  402. package/core/security/connection.js +312 -0
  403. package/core/security/credssp-manager.js +312 -0
  404. package/core/security/sign-on-manager.js +312 -0
  405. package/core/security/tag-manager.js +312 -0
  406. package/core/security/tool-condition-validator.js +312 -0
  407. package/core/security/tool-connection-query.js +312 -0
  408. package/core/security/user-principal.js +312 -0
  409. package/core/shared/cluster-inventory/cluster-inventory-cache.js +312 -0
  410. package/core/shared/cluster-inventory/cluster-inventory.js +312 -0
  411. package/core/shared/cluster-inventory/cluster-node-inventory.js +312 -0
  412. package/core/shared/gateway-inventory/gateway-inventory-cache.js +312 -0
  413. package/core/shared/gateway-inventory/gateway-inventory-detail-cache.js +312 -0
  414. package/core/shared/gateway-inventory/gateway-inventory-detail.js +312 -0
  415. package/core/shared/gateway-inventory/gateway-inventory.js +312 -0
  416. package/core/shared/inventory-query-caches.js +312 -0
  417. package/core/shared/server-inventory/server-inventory-cache.js +312 -0
  418. package/core/shared/server-inventory/server-inventory-detail-cache.js +312 -0
  419. package/core/shared/server-inventory/server-inventory-detail.js +315 -0
  420. package/core/shared/server-inventory/server-inventory.js +312 -0
  421. package/core/shared/shared-cache.js +312 -0
  422. package/core/shared/tool-inventory/tool-inventory-cache.js +312 -0
  423. package/core/shared/tool-inventory/tool-inventory.js +312 -0
  424. package/core/special.js +315 -0
  425. package/core/test-utilities/accessibility-tester.js +312 -0
  426. package/core/test-utilities/console.mock.js +312 -0
  427. package/core/test-utilities/jasmine-axe-matcher.js +312 -0
  428. package/core/test-utilities/wait-async.js +312 -0
  429. package/core/test.js +312 -0
  430. package/core/testing.js +312 -0
  431. package/core/workflow/persistent-local-storage.js +312 -0
  432. package/core/workflow/persistent-work-item-apply-state.js +316 -0
  433. package/core/workflow/persistent-work-item-state.js +312 -0
  434. package/core/workflow/persistent-work-item.js +315 -0
  435. package/core/workflow/persistent-workflow-builder.js +312 -0
  436. package/core/workflow/persistent-workflow-context.js +312 -0
  437. package/core/workflow/persistent-workflow-runner.js +312 -0
  438. package/core/workflow/persistent-workflow-snapshot.js +312 -0
  439. package/core/workflow/persistent-workflow-store.js +312 -0
  440. package/core/workflow/persistent-workflow.js +312 -0
  441. package/package.json +11 -9
  442. package/styles/css/main-v2.css +1 -1
  443. package/styles/fonts/SegoeUI/Bold/SegoeUIBold-5.27.woff +0 -0
  444. package/styles/fonts/SegoeUI/Light/SegoeUILight-5.27.woff +0 -0
  445. package/styles/fonts/SegoeUI/Normal/SegoeUI-5.27.woff +0 -0
  446. package/styles/fonts/SegoeUI/SemiBold/SegoeUISemiBold-5.27.woff +0 -0
  447. package/styles/fonts/SegoeUI/SemiLight/SegoeUISemiLight-5.27.woff +0 -0
  448. package/styles/fonts/ServMDL2/ServMDL2-4.66.woff +0 -0
  449. package/tools/build/webpack/index-html.transform.js +312 -0
  450. package/tools/build/webpack/shell.index-html.transform.js +312 -0
  451. package/tools/build/webpack/shell.webpack.config.js +312 -0
  452. package/tools/build/webpack/webpack.config.js +312 -0
  453. package/tools/code-formatter/.eslintrc.base.json +3 -1
  454. package/tools/code-formatter/lint.d.ts.map +1 -1
  455. package/tools/code-formatter/lint.js +319 -1
  456. package/tools/code-formatter/lint.js.map +1 -1
  457. package/tools/code-formatter/utilities.d.ts +7 -0
  458. package/tools/code-formatter/utilities.d.ts.map +1 -0
  459. package/tools/code-formatter/utilities.js +395 -0
  460. package/tools/code-formatter/utilities.js.map +1 -0
  461. package/tools/gulp-doc-generator/index.js +312 -0
  462. package/tools/gulp-manifest-resource/index.js +312 -0
  463. package/tools/gulp-manifest-validator/index.js +312 -0
  464. package/tools/gulp-merge-json-in-folders/index.js +312 -0
  465. package/tools/gulp-merge-json-in-folders/json-merge.js +312 -0
  466. package/tools/gulp-ps-cim/index.js +315 -0
  467. package/tools/gulp-ps-code/index.d.ts.map +1 -1
  468. package/tools/gulp-ps-code/index.js +323 -2
  469. package/tools/gulp-ps-code/index.js.map +1 -1
  470. package/tools/gulp-ps-code/ps-code-convert.js +312 -0
  471. package/tools/gulp-ps-manifest/index.js +312 -0
  472. package/tools/gulp-ps-module/index.d.ts.map +1 -1
  473. package/tools/gulp-ps-module/index.js +327 -3
  474. package/tools/gulp-ps-module/index.js.map +1 -1
  475. package/tools/gulp-ps-resjson/index.js +315 -0
  476. package/tools/gulp-resjson/index.js +315 -0
  477. package/tools/gulp-resjson/resjson-convert.js +312 -0
  478. package/tools/gulp-schema-form/index.js +312 -0
  479. package/tools/gulp-svg-code/index.js +312 -0
  480. package/tools/gulp-svg-code/svg-code-convert.js +312 -0
  481. package/tools/gulp-update-notes-resource/index.d.ts.map +1 -1
  482. package/tools/gulp-update-notes-resource/index.js +316 -4
  483. package/tools/gulp-update-notes-resource/index.js.map +1 -1
  484. package/tools/module-template/.eslintrc.json +3 -0
  485. package/tools/module-template/build/increment-package-version.ps1 +216 -0
  486. package/tools/module-template/build/push-incremented-version.ps1 +216 -1
  487. package/tools/module-template/build/update-powershell-code.ps1 +216 -0
  488. package/tools/module-template/gulpfile.ts/common/clean.ts +2 -0
  489. package/tools/module-template/gulpfile.ts/common/pack.ts +17 -5
  490. package/tools/module-template/gulpfile.ts/common/powershell.ts +40 -2
  491. package/tools/module-template/gulpfile.ts/common/utilities.ts +1 -0
  492. package/tools/pack-nuget/index.d.ts.map +1 -1
  493. package/tools/pack-nuget/index.js +321 -3
  494. package/tools/pack-nuget/index.js.map +1 -1
  495. package/tools/scripts/Invoke-PesterTest.ps1 +216 -0
  496. package/tools/scripts/New-ExtensionPackage.ps1 +373 -6
  497. package/tools/scripts/Search-NonAsciiText.ps1 +216 -0
  498. package/tools/scripts/package-information/README.md +3 -0
  499. package/tools/scripts/package-information/ms-logo.png +0 -0
  500. package/tools/test-runner/index.js +312 -0
  501. package/tools/utilities/index.js +312 -0
  502. package/tools/wac-cli/src/angular15/configs/angular-json-config.js +312 -0
  503. package/tools/wac-cli/src/angular15/configs/ci-build-yml-config.js +315 -0
  504. package/tools/wac-cli/src/angular15/configs/config.js +312 -0
  505. package/tools/wac-cli/src/angular15/configs/eslint-auto-fix-config.d.ts +9 -0
  506. package/tools/wac-cli/src/angular15/configs/eslint-auto-fix-config.d.ts.map +1 -0
  507. package/tools/wac-cli/src/angular15/configs/eslint-auto-fix-config.js +328 -0
  508. package/tools/wac-cli/src/angular15/configs/eslint-auto-fix-config.js.map +1 -0
  509. package/tools/wac-cli/src/angular15/configs/git-ignore-config.js +312 -0
  510. package/tools/wac-cli/src/angular15/configs/jasmine-test-config.js +315 -0
  511. package/tools/wac-cli/src/angular15/configs/package-json-config.js +312 -0
  512. package/tools/wac-cli/src/angular15/configs/replace-config.js +315 -0
  513. package/tools/wac-cli/src/angular15/configs/tsconfig-config.js +312 -0
  514. package/tools/wac-cli/src/angular15/configs/ui-test-automation-lagacy-config.js +312 -0
  515. package/tools/wac-cli/src/angular15/main.d.ts +19 -3
  516. package/tools/wac-cli/src/angular15/main.d.ts.map +1 -1
  517. package/tools/wac-cli/src/angular15/main.js +353 -7
  518. package/tools/wac-cli/src/angular15/main.js.map +1 -1
  519. package/tools/wac-cli/src/angular15/upgrader/angular-json-upgrader.js +316 -0
  520. package/tools/wac-cli/src/angular15/upgrader/audit/ajax-response-updater.js +312 -0
  521. package/tools/wac-cli/src/angular15/upgrader/audit/css-syntax-error-updater.js +312 -0
  522. package/tools/wac-cli/src/angular15/upgrader/audit/declare-override-updater.js +312 -0
  523. package/tools/wac-cli/src/angular15/upgrader/audit/error-updater-angular15.js +312 -0
  524. package/tools/wac-cli/src/angular15/upgrader/audit/form-control-updater.js +312 -0
  525. package/tools/wac-cli/src/angular15/upgrader/audit/iif-updater-util.js +312 -0
  526. package/tools/wac-cli/src/angular15/upgrader/audit/load-children-callback-updater.js +315 -0
  527. package/tools/wac-cli/src/angular15/upgrader/audit/log-parser.js +312 -0
  528. package/tools/wac-cli/src/angular15/upgrader/audit/observable-throw-updater.js +312 -0
  529. package/tools/wac-cli/src/angular15/upgrader/audit/parameter-count-violation-updater.js +312 -0
  530. package/tools/wac-cli/src/angular15/upgrader/audit/string-replace-updater.js +312 -0
  531. package/tools/wac-cli/src/angular15/upgrader/audit/subjuct-next-updater-util.js +312 -0
  532. package/tools/wac-cli/src/angular15/upgrader/ci-build-yml-upgrader.js +312 -0
  533. package/tools/wac-cli/src/angular15/upgrader/eslint-auto-fix-upgrader.d.ts +18 -0
  534. package/tools/wac-cli/src/angular15/upgrader/eslint-auto-fix-upgrader.d.ts.map +1 -0
  535. package/tools/wac-cli/src/angular15/upgrader/eslint-auto-fix-upgrader.js +361 -0
  536. package/tools/wac-cli/src/angular15/upgrader/eslint-auto-fix-upgrader.js.map +1 -0
  537. package/tools/wac-cli/src/angular15/upgrader/file-replacement-upgrader.js +312 -0
  538. package/tools/wac-cli/src/angular15/upgrader/git-ignore-upgrader.js +312 -0
  539. package/tools/wac-cli/src/angular15/upgrader/jasmine-test-upgrader.js +312 -0
  540. package/tools/wac-cli/src/angular15/upgrader/package-json-upgrader.js +312 -0
  541. package/tools/wac-cli/src/angular15/upgrader/remove-upgrader.js +315 -0
  542. package/tools/wac-cli/src/angular15/upgrader/replace-upgrader.js +312 -0
  543. package/tools/wac-cli/src/angular15/upgrader/tsconfig-upgrader.js +312 -0
  544. package/tools/wac-cli/src/angular15/upgrader/ui-test-automation-legacy-upgrader.js +312 -0
  545. package/tools/wac-cli/src/angular15/upgrader/version-json-upgrader.js +312 -0
  546. package/tools/wac-cli/src/angular15/utils/add-item.js +312 -0
  547. package/tools/wac-cli/src/angular15/utils/command-runner.js +312 -0
  548. package/tools/wac-cli/src/angular15/utils/file-comparison.js +315 -0
  549. package/tools/wac-cli/src/angular15/utils/file-replacement.js +312 -0
  550. package/tools/wac-cli/src/angular15/utils/file-writer.js +312 -0
  551. package/tools/wac-cli/src/angular15/utils/logger.js +312 -0
  552. package/tools/wac-cli/src/angular15/utils/main-debugger.js +312 -0
  553. package/tools/wac-cli/src/angular15/utils/relative-path.js +312 -0
  554. package/tools/wac-cli/src/angular15/utils/remove-item.js +312 -0
  555. package/tools/wac-cli/src/angular15/utils/space-generator.js +312 -0
  556. package/tools/wac-cli/src/angular15/utils/update-shell-references.js +316 -0
  557. package/tools/wac-cli/src/common.js +312 -0
  558. package/tools/wac-cli/src/create/main.js +312 -0
  559. package/tools/wac-cli/src/eslint/main.js +312 -0
  560. package/tools/wac-cli/src/index.js +312 -0
  561. package/tools/wac-cli/src/upgrade/error-updater.js +312 -0
  562. package/tools/wac-cli/src/upgrade/error-updaters/component-selector-updater.js +315 -0
  563. package/tools/wac-cli/src/upgrade/error-updaters/only-arrow-functions-updater.js +315 -0
  564. package/tools/wac-cli/src/upgrade/error-updaters/updater-lookup.js +312 -0
  565. package/tools/wac-cli/src/upgrade/file-updater.js +312 -0
  566. package/tools/wac-cli/src/upgrade/get-files.js +312 -0
  567. package/tools/wac-cli/src/upgrade/main.js +312 -0
  568. package/tools/wac-cli/src/upgrade/models/error-result.js +312 -0
  569. package/tools/wac-cli/src/upgrade/models/updater-interface.js +312 -0
  570. package/tools/wac-cli/src/upgrade/package-updater.js +312 -0
  571. package/tools/wac-cli/templates/wac-template/src/favicon.ico +0 -0
  572. package/tools/wac-cli/templates/wac-template/src/karma.conf.js +312 -0
  573. package/tools/wac-cli/templates/wac-template/src/resources/scripts/Get-Error.ps1 +216 -0
  574. package/tools/wac-cli/templates/wac-template/src/resources/scripts/Get-Exception.ps1 +216 -0
  575. package/tools/wac-cli/templates/wac-template/src/resources/scripts/Get-Process.ps1 +216 -1
  576. package/tools/wac-cli/templates/wac-template/src/resources/scripts/Get-Service.ps1 +216 -1
  577. package/tools/wac-cli/templates/wac-template/src/resources/scripts/Get-WinRmState.ps1 +216 -1
  578. package/core/data/extension-broker/snap-in-listener.d.ts.map +0 -1
  579. package/core/data/extension-broker/snap-in-listener.js +0 -73
  580. package/core/data/extension-broker/snap-in-listener.js.map +0 -1
  581. package/microsoft-windows-admin-center-sdk-4.123.0.tgz +0 -0
@@ -1 +1 @@
1
- {"Strings":{"MsftSmeShell":{"Angular":{"searchPlaceHolder":"搜尋設定","Banner":{"DismissalDialog":{"footnote":"您隨時可以在 [設定] > [建議] 中變更這些喜好設定","title":"{0} 建議設定","Choices":{"Session":{"label":"暫時關閉此通知"},"Permanent":{"label":"不要顯示 {0} 建議"}}},"LearnMore":{"label":"深入了解"},"SetUpNow":{"label":"立即更新"},"ButtonClose":{"label":"關閉"},"ChevronLeft":{"label":"請按這裡取得上一頁的橫幅"},"ChevronRight":{"label":"請按這裡取得下一頁的橫幅"}},"CapacityBarChart":{"freeFormat":"{0} 可用","totalFormat":"總計: {0}","usedFormat":"已使用: {0} ({1})"},"Common":{"add":"新增","apply":"套用","back":"上一步","skip":"略過","cancel":"取消","close":"關閉","clear":"清除","continue":"繼續","details":"詳細資料","disable":"停用","disabled":"已停用","discard":"捨棄","discarded":"已捨棄","enable":"啟用","enabled":"已啟用","exit":"結束","failed":"失敗","failure":"失敗","finish":"完成","free":"可用","inProgress":"進行中","message":"訊息","next":"下一步","no":"否","remove":"移除","save":"儲存","search":"搜尋","succeeded":"成功","success":"成功","submit":"提交","total":"總計","used":"已使用","yes":"是","more":"更多","actions":"動作","expand":"展開","collapse":"摺疊","on":"開啟","off":"關閉","reset":"重設","none":"無","OK":{"affirmative":"確定","state":"良好"},"Capacity":{"criticalState":"嚴重狀態","warningState":"警告狀態","normalState":"標準狀態"},"Form":{"Validation":{"required":"*","UnknownFieldName":"這個欄位","IllegalNumber":"'{0}' 必須是 '{2}' 位移的 '{1}' 倍數","AlertTypes":{"error":"錯誤","warn":"警告","info":"資訊","success":"成功","pending":"正在處理"},"Required":{"label":"必要項目","format":"'{0}' 是必要欄位"},"Min":{"format":"{0} 不得小於 {1}"},"Max":{"format":"{0} 不得大於 {1}"},"Email":{"format":"{0} 必須是有效的電子郵件地址"},"MinLength":{"format":"{0} 必須至少有 {1} 個字元"},"MaxLength":{"format":"{0} 的長度上限為 {1} 個字元"},"Pattern":{"format":"{0} 不符合要求的模式"},"Capslock":{"message":"Caps Lock 已啟用"},"isNumber":{"format":"{0} 必須為有效的數字"},"Input":{"UnknownRegex":{"invalidCharacters":"不能包含無效字元。"},"DefaultRegex":{"invalidCharacters":"不能包含無效字元: 反斜線 (\\)​,斜線符號 (/)​,星號 (*)​,問號 (?)​,單引號 (‘)、雙引號 (“)​,小於符號 (<)​,大於符號 (>)​,或是分隔號 (|)​。"}},"MachineName":{"invalidCharacters":"不能包含無效字元: 反斜線 (\\)​,斜線符號 (/)​,星號 (*)​,問號 (?)​,單引號 (‘)、雙引號 (“)​,小於符號 (<)​,大於符號 (>)​,或是分隔號 (|)​。","invalidCharactersWithSpace":"不能包含無效字元: 反斜線 (\\)​,斜線符號 (/)​,星號 (*)​,問號 (?)​,單引號 (‘)、雙引號 (“)​,小於符號 (<)​,大於符號 (>)​,分隔號 (|),或是空格 ( )​。","whitespaceWillBeTrimmed":"將修剪前置和後端空白字元。","noStartWithPeriod":"不能以句點 (.) 字元開頭。"},"MatchField":{"noMatch":"此欄位必須符合 \"{0}\" 完全相同。"},"Pending":{"message":"正在驗證..."}},"Loading":{"message":"正在載入..."}},"InfoBubble":{"title":"檢視詳細資訊"}},"Badges":{"Preview":{"label":"預覽","tooltip":"此工具包含可供評估和測試的預覽功能。"},"Feedback":{"label":"意見反應"},"ComingSoon":{"label":"更多即將推出","tooltip":"已規劃在此工具的未來更新中加入其他功能。"},"New":{"label":"新增","tooltip":"此工具是新的或是已更新全新功能。","Feature":{"label":"新增"}},"Improvement":{"Feature":{"label":"改進"}},"BugFixes":{"Feature":{"label":"錯誤修正"}},"Common":{"learnMore":"深入了解","feedback":"提供意見反應給我們","Aria":{"labelFormat":"{0} {1}"},"Severities":{"warn":"警告","critical":"重要"}},"CredSSPEnabled":{"label":"CredSSP 已啟用","tooltip":"CredSSP 已在此伺服器上啟用。若要提高安全性,請在完成任何需要 CredSSP 的工作之後將其停用。"}},"ActiveDirectoryFormField":{"Button":{"Search":{"Label":"搜尋","PlaceHolder":"輸入搜尋名稱,支援萬用字元"}},"ResultTable":{"NameColumnHeader":"名稱","TypeColumnHeader":"類型","LoginNameColumnHeader":"登入名稱"},"SearchString":{"label":"輸入搜尋字串"},"Search":{"Progress":"正在搜尋 '{0}'"},"SizeLimit":{"Warning":"搜尋結果達到可顯示的最大數量 - 顯示前 {0}"},"ActiveDirectorySearchNotAvailable":{"message":"因為 Windows Admin Center 未加入 Active Directory 網域,無法搜尋 Active Directory。也有可能是因為您的帳號沒有 Active Directory 的讀取授權。"},"Error":{"message":"我們無法從 Active Directory 搜尋 \"{0}\"。錯誤: {1}"}},"Form":{"Checklist":{"indexDescription":"第 {0} 個 (共 {1} 個)"},"File":{"placeholder":"選擇要上傳的檔案","allowedFileTypesFormat":"允許的檔案類型: {0}","allFileTypes":"全部","removeButtonAriaLabelFormat":"移除 {0}","invalidFileTypeFormat":"不允許「{0}」個檔案","directoriesNotAllowed":"目錄不允許檔案上傳","invalidFileUnknownTypeFormat":"\"{0}\" 是不允許的檔案類型","removeButtonTooltip":"從清單中移除此項目","buttonText":{"singular":"選取檔案","plural":"選取檔案"},"dragDropText":{"singular":"或將檔案拖放至此","plural":"或將檔案拖放至此"},"selectedFilesFormat":{"plural":"已選取 {0} 個檔案","singular":"已選取 1 個檔案","none":"指定要匯出的檔案。","multipleEnabled":{"none":"指定要匯入的檔案。"}}},"Actions":{"clear":"清除","copy":"複製","copied":"已複製"},"OrderedList":{"addButtonAriaLabel":"新增","addButtonTooltip":"將項目新增到清單","demoteButtonAriaLabel":"下移","demoteButtonTooltip":"在清單中將此項目下移","emptyValues":"清單不得包含任何空白的值","instructions":"","itemAriaDescription":"第 {0} 個 (共 {1} 個)","promoteButtonAriaLabel":"上移","promoteButtonTooltip":"在清單中將此項目上移","removeButtonAriaLabel":"移除","removeButtonTooltip":"從清單中移除此項目","addColumn":"新增欄位"},"Array":{"addButtonAriaLabel":"新增","addButtonTooltip":"將項目新增到清單","demoteButtonAriaLabel":"下移","demoteButtonTooltip":"在清單中將此項目下移","itemTitle":"項目 {0}","demoteButtonEvent":"項目在清單中下移。","demoteButtonPreventedEvent":"項目已位於清單底端。","itemAriaDescription":"第 {0} 個 (共 {1} 個)","promoteButtonAriaLabel":"上移","promoteButtonTooltip":"在清單中將此項目上移","promoteButtonEvent":"項目在清單中上移。","promoteButtonPreventedEvent":"項目已位於清單頂端。","removeButtonAriaLabel":"移除","removeButtonTooltip":"從清單中移除此項目","removeButtonEvent":"項目已從清單中移除。"},"List":{"addButtonAriaLabel":"新增","addButtonTooltip":"將項目新增到清單","emptyValues":"清單不得包含任何空白的值","itemAriaLabel":"{0}; 項目 {1}/{2}","removeButtonAriaLabel":"移除","removeButtonTooltip":"從清單中移除此項目"},"ConfirmationDialog":{"unsavedChangesCancelText":"捨棄變更","unsavedChangesConfirmText":"繼續編輯","unsavedChangesMessage":"要繼續編輯或捨棄您的變更嗎?","unsavedChangesTitle":"您有尚未儲存的變更"},"SearchField":{"count":"找到 {0} 筆結果。","Searching":{"label":"正在搜尋"}},"Common":{"SelectAll":{"label":"全選"}},"Date":{"InvalidDate":"請以此格式提供有效的日期:{0}","InvalidDateTime":"請以此格式提供有效的日期/時間:{0},HH:mm:ss","MinDateErrorFormat":"日期不能早於 {0}","MaxDateErrorFormat":"日期不能晚於 {0}"},"Time":{"InvalidTime":"請提供有效時間的格式:'hh:mm:ss AM/PM'、'hh:mm AM/PM'、'HH:mm:ss' 或 HH:mm","MinTimeErrorFormat":"時間不能早於 {0}","MaxTimeErrorFormat":"時間不能晚於 {0}"},"DateTimeRange":{"Custom":{"label":"自訂"},"StartTime":{"label":"開始時間"},"EndTime":{"label":"結束時間"},"Invalid":{"StartTime":"無效的開始時間,其不應該在結束時間之後。","EndTime":"無效的結束時間,其不應該在開始時間之前。"}}},"HtmlScanner":{"UnrecognizedClass":{"messageFormat":"CSS 類別 \"{0}\" 是無法辨識的 SME 樣式。錯誤使用已插入 SME 的類別 (具有 'sme-' 首碼的項目) 可能會導致樣式不一,甚至會在往後的 SME 殼層與 SDK 反覆項目引起中斷性變更。"}},"Decorators":{"Deprecated":{"messageFormat":"\"{0}\" 已在 {1} 淘汰。{2} {3}","alternateSignatureFormat":"改用 \"{0}\"。","CssClass":{"messageFormat":"CSS 類別 \"{0}\" 已在 {1} 淘汰。{2} {3}"}},"Obsolete":{"messageFormat":"\"{0}\" 已在 {1} 淘汰,且即將移除。{2} {3}","alternateSignatureFormat":"改用 \"{0}\"。"}},"DataTable":{"NoRecordsFound":"找不到任何記錄","removeThisRow":"移除此列。","Loading":"正在載入...","aria":{"label":{"selectAllItems":"選取所有項目","unselectAllItems":"取消選取所有項目","expand":"展開","collapse":"摺疊","nItemsInGroup":"包含 {0} 個項目的群組","oneItemInGroup":"包含 1 個項目的群組","nSubNodesInTreeNode":"'包含 {0} 個子節點的樹狀節點","oneSubNodeInTreeNode":"'包含 1 個子節點的樹狀節點"}},"Templates":{"Tags":{"Header":"標籤"}},"Aria":{"Label":{"rowSelection":"列 {0} 選取範圍","ascendSortOrderButton":"遞增排序順序的按鈕","descendSortOrderButton":"遞減排序順序的按鈕"}},"DownloadService":{"inProgressTitle":"正在下載資料表檢視","inProgressContent":"正在下載 {0} 的資料表檢視...","successTitle":"已成功下載資料表檢視","successContent":"已成功下載{0}的資料表檢視。檢查您的下載資料夾。","failedTitle":"無法下載資料表檢視","failedContent":"無法下載{0}的資料表檢視。錯誤訊息: {1}"}},"Details":{"AriaDescription":"按下 tab 鍵,然後使用方向鍵在此窗格內瀏覽。"},"Documentation":{"Tabs":{"Overview":{"label":"概觀"},"API":{"label":"API"},"Examples":{"label":"範例"}},"Overview":{"liveExampleHeader":"即時範例"}},"LoadingWheel":{"ARIA":{"loading":"正在載入"}},"DoughnutChart":{"Aria":{"RefreshInterval":"環圈圖每隔 {0} 重新整理","CenterText":"圖表總計"}},"Resizer":{"Splitter":"分隔器"},"MasterView":{"oneItem":"1 個項目","items":"{0} 個項目","results":"找到 {0} 筆結果。","selected":"已選取 {0} 個","selectedAria":"清除 {0} 個已選取的項目","selectedTitle":"清除選取項目","refresh":{"title":"重新整理","ariaLabel":{"header":"重新整理 {0}","noHeader":"重新整理"}},"columnPicker":{"title":"欄位選擇器"},"filter":{"title":"篩選"},"group":{"title":"群組"}},"NodeCredentialsForm":{"deploymentGuideMessage":"若要使用 Windows 帳戶進行單一登入,您可能需要設定 Kerberos 限制委派。","refreshMessage":"若要改回使用您的 Windows 帳戶,請重新整理頁面。","ApplyToAll":{"label":"請使用這些認證進行所有連線。","warning":"這將會覆寫您先前儲存的任何認證。"},"ConstrainedDelegation":{"title":"Kerberos 委派"},"Kerberos":{"link":{"text":"深入了解","href":"https://go.microsoft.com/fwlink/?linkid=863170"}},"lapsLocalAdminName":{"label":"本機系統管理員帳戶名稱","placeholder":"系統管理員"},"Password":{"label":"密碼","placeholder":"請輸入密碼。"},"trustedHosts":{"configureMessage":"您的環境可能需要設定 WinRM TrustedHosts 才能連線到受管理節點。","title":"設定 TrustedHosts"},"UseGlobalAuth":{"labelFormat":"使用 {0} 進行此連線","myWindowsAccount":"我的 Windows 帳戶","myLinuxAccount":"我的 Linux 帳戶","warning":"這些認證只會在這個工作階段儲存。"},"UseLaps":{"label":"搭配隨機化密碼使用區域系統管理員密碼解決方案 (必須已設定)"},"UsePerNodeAuth":{"label":"使用另一個帳戶進行此連線"},"Username":{"label":"使用者名稱","placeholder":"輸入使用者名稱..."}},"Navigation":{"NavigationTitleReturnTypeError":{"message":"具有不支援物件類型的 navigationTitle 回呼失敗。"}},"Wizard":{"validating":"正在驗證","stageName":"下一步: {0}","disabledStepAlert":"根據之前輸入的內容,您無需完成此步驟。請繼續進行下一步。","expandStepsList":"展開步驟清單","collapseStepsList":"摺疊步驟清單","Exit":{"Dialog":{"title":"結束確認","message":"是否要立即結束?"}},"Busy":{"Dialog":{"title":"您即將中斷重要程序","message":"重要的程式目前正在執行中。您確定要離開嗎?"}},"PreviousStep":{"Dialog":{"title":"上一步確認","message":"不能導航到已完成步驟。"}},"Lite":{"Actions":{"previous":"上一步","next":"下一步"},"FooterTemplate":{"review":"檢閱 + 建立","exit":"結束"}}},"TagsInput":{"RemoveTag":{"labelFormat":"移除 \"{0}\" 標籤"},"AddTag":{"label":"新增標籤"},"Instructions":{"label":"使用 ENTER 鍵新增標籤。使用 ',' (英文逗號) 分隔多個標籤項目。"}},"TooltipZone":{"Aria":{"keyShortcuts":"如需詳細資訊,請按 ALT + F1"}},"AlertBar":{"Warning":"警告","Information":"資訊","Success":"成功","Error":"錯誤","InProgress":"進行中","DismissAriaLabel":"關閉警示","Dismiss":"關閉","Expand":"展開"},"QueryEditor":{"ColumnFilter":"欄位篩選器","Delete":"刪除","New":"新增篩選器","Reset":"重設篩選器","Unset":"未設定","Selected":"已選取 {0} 個","ReadOnly":"唯讀","Irremovable":"不可移除","RemovableHint":"使用 DELETE 鍵刪除項目","SelectKey":"選取金鑰","SelectValue":"選取值"},"ColumnPicker":{"Header":"自訂表格","Pivot":{"chooseColumn":"選取欄位","groupBy":"群組依據"}},"Lint":{"Accessibility":{"MixedUseZone":"區域不得有區域子系,以及在相同層級中為可設定焦點元素的子系。請以類別 class sme-focus-zone 包裝所有可設定焦點元素來避免混用區域。","AnchorRoleOrHref":"錨點標籤需要角色屬性或 href。","AnchorTabIndexOrHref":"錨點標籤需要 href 或 tabindex = 0,才可設定焦點。","DialogInForm":"不要在對話方塊以外放置表單元素。","InputWithoutForm":"不要在表單以外使用輸入、選取或 textarea 元素。"}},"StackedHorizontalBarChart":{"totalLabel":"總計","Aria":{"roleDescription":"橫條圖"}},"Connectivity":{"Restricted":{"title":"受限制的網際網路存取","Azure":{"text":"此動作需要連線到 Microsoft Azure,但 Windows Admin Center 設定了受限制的網際網路連線能力。"},"Offline":{"text":"無法達到 {0}。Windows Admin Center 設定了受限制的網際網路連線能力。"},"ChangeSettings":{"text":"變更連線設定。"}}},"Layout":{"Edit":"編輯","Done":"完成"},"SchemaForm":{"NoSchemaMessage":{"Row1":"首先將「結構描述」和「資料」屬性設為結構描述驅動型表單元件。","Row2":"您也可以按一下底下的 [編輯] 按鈕,建立新的結構描述或編輯現有的結構描述。","Row3":"在生產模式下將不會顯示 [編輯] 按鈕。"},"EditButton":{"Text":"編輯"},"Editor":{"Title":"結構描述驅動型表單編輯器","SwitchToCodeViewMessage":"別忘了切換到 [程式碼] 檢視以取得編輯後的結構描述程式碼。","PreviewForm":{"Title":"預覽","EmptySchemaMessage":"結構描述中未加入任何屬性。請選取 [結構描述] 樹狀節點,再按一下 [+] 按鈕以加入一些屬性。","ValidationResult":{"Passed":"通過","Failed":"失敗","Title":"表單驗證: "}},"Welcome":{"Title":"歡迎使用結構描述驅動型表單編輯器","Row1":"結構描述驅動型表單利用表單結構描述,轉譯表單 UI 以及處理 UI 與表單檢視模型之間的雙向繫結。","Row2":"此工具可協助您利用表單結構描述建構表單 UI。","Row3":"您可以透過結構描述樹狀結構 ([視覺化] 檢視) 或結構描述程式碼編輯器 ([程式碼] 檢視) 編輯表單結構描述。","Row4":"您可前往 [資料] 索引標籤以查看表單 JSON 資料產生的方式,或是直接編輯表單 JSON 資料後再查看表單 UI 將如何轉譯該資料。","Row5":"您可前往 [表單檢視模型協定] 索引標籤以產生表單檢視模型協定,然後在您的原始程式碼中使用該協定對表單檢視模型進行強式類型檢查。","Row6":"若想要快速入門,您可以在編輯器 UI 中央的樹狀結構中選取 [結構描述] 節點,然後按一下 [+] 按鈕以由該處加入一些屬性。","Row7":"您隨時皆可按一下 [套用結構描述並加以預覽] 按鈕,查看表單會如何根據您建構的結構描述進行轉譯。","Row8":"編輯結構描述完成後,請切換到 [程式碼] 檢視以複製產生的結構描述程式碼。","Row9":"若要使用您剛建立或更新的結構描述轉譯表單,請將結構描述程式碼存回您的原始程式碼或放到任何不致丟失的位置,然後將該結構描述繫結至結構描述表單元件。","Row10":"結構描述驅動型表單的一個終極訣竅: 您可以使用程式碼動態建構結構描述物件。","Row11":"敬請親自體驗。"},"SchemaView":{"Title":"檢視:","Visual":"視覺化","Code":"程式碼"},"ApplySchemaButton":{"Text":"套用結構描述並加以預覽"},"GoToCodeViewButton":{"Text":"移至 [程式碼] 檢視"},"CloseButton":{"Text":"關閉"},"SchemaTree":{"Welcome":{"Row1":"結構描述樹狀結構是供您建構結構描述的地方。除了 [結構描述] 根節點外,每個樹狀節點各代表某一屬性結構描述。","Row2":"字串及數字之類的簡單屬性不能有子系屬性。","Row3":"物件屬性可以有多個子系屬性,用於定義各物件屬性的結構描述。","Row4":"陣列屬性只能有一個子系屬性,用於定義陣列項目結構描述。","Row5":"若想要快速入門,您可以在上面的樹狀結構中選取 [結構描述] 節點,然後按一下 [+] 按鈕以由該處加入一些屬性。"}},"PropertyForm":{"Header":"在這裡定義屬性結構描述","Footer":"順道一提,即便此表單是由結構描述驅動型表單進行轉譯,此表單的結構描述乃為動態產生。","DataType":"資料類型","Advance":"進階","Required":"必要項","DefaultValue":"預設值","Description":"描述","HideCondition":"隱藏條件","ConditionForDisabled":"符合此條件時即停用","CustomValidation":"自訂驗證","ReadonlyCondition":"唯讀條件","MoreOptions":"更多選項","EmptyByDefault":"預設情況下使用空值","NoOptionSchema":"此類型與格式未定義「選項」結構描述而無法轉譯各欄位,所以請直接在這裡編輯「選項」JSON。","Welcome":{"Row1":"按一下 [結構描述] 節點旁的 [+] 按鈕以加入屬性。","Row2":"或者選擇任何子系屬性結構描述節點,編輯該節點的屬性結構描述。","Row3":"每個屬性都對應到 UI 中的某一表單欄位。","Row4":"按一下表單屬性樹狀節點,接著即可編輯表單屬性的詳細資料。","Row5":"您還可以管理各個屬性的順序或移除任何屬性。","Row6":"若將屬性設為「物件」類型,您便可再為其加入更多子系屬性。","Row7":"若將屬性設為「陣列」類型,您即必須定義陣列項目結構描述。"},"Type":{"Description":"這表示可供用於 JSON 資料的基本資料類型。例如,表單資料中的字串無論是使用文字方塊或下拉式清單呈現,當成表單資料來看終究仍是字串。"},"Format":{"Description":"同屬某一資料類型的不同表單欄位可能需要使用不同的 UI (格式) 與使用者互動。例如,有時我們會使用文字方塊以供輸入字串,或是使用下拉式方塊讓使用者從指定的選項中選擇任一字串。"},"Name":{"Description":"這是表單 JSON 資料中所使用的屬性名稱。"},"Label":{"Description":"這段文字會顯示為表單欄位的標籤。"},"MultipleLine":{"Title":"多行"},"ObjectType":{"ColumnCount":"欄數","Collapsible":"可摺疊","HideHeader":"隱藏標題","Yes":"是","State":"狀態","Collapsed":"已摺疊","Expanded":"已展開"},"Options":{"StaticOptions":"靜態選項","DynamicOptions":"動態選項 - 繫結運算式","Label":"標籤","Value":"值"},"CodeEditor":{"Language":{"label":"語言","description":"要在編輯器中顯示的程式碼語言。應選擇摩納哥程式碼編輯器中內建的任一種語言。"},"Options":{"label":"摩納哥編輯器選項","description":"選項在建立時,拒絕傳送至摩納哥編輯器。"}}},"SchemaText":{"Message1":"您可以直接在這裡編輯結構描述程式碼。編輯完成後,請套用結構描述以預覽表單。","Message2":"編輯完成後,請別忘了複製該結構描述程式碼並貼至您的原始程式碼或任何能夠予以儲存的位置。","LintMessage":"順道一提,您可能需要此程式碼......","CopyToClipboardButton":{"Text":"將結構描述複製到剪貼簿"}},"ViewModel":{"Message":"* 下面的文字方塊只是為了便於您選取全部內容並複製。在這裡進行任何編輯都不會有任何作用。","GenerateButton":{"Text":"產生"}},"ResourceStringPicker":{"ActualTextPrefix":"實際文字: ","InvalidResourceKey":"資源識別碼無效","NoResourceKeyMessage":"請在這裡提供資源識別碼。","CannotFindResourceKey":"找不到資源識別碼: {0}","WrongFormatActualText":"結構描述中的實際文字格式錯誤。"}}},"ActionButton":{"Templates":{"EditTags":{"Label":"編輯標籤"}},"OpenInANewWindow":{"label":"彈出至新視窗","title":"彈出至新視窗"}},"Calendar":{"PreviousMonth":"上個月","NextMonth":"下個月","goToToday":"移至今日","Heading":{"Monday":"星期一","Tuesday":"星期二","Wednesday":"星期三","Thursday":"星期四","Friday":"星期五","Saturday":"星期六","Sunday":"星期日"},"Day":{"Sunday":"星期日","Monday":"星期一","Tuesday":"星期二","Wednesday":"星期三","Thursday":"星期四","Friday":"星期五","Saturday":"星期六"},"Month":{"1":"一月","2":"二月","3":"三月","4":"四月","5":"五月","6":"六月","7":"七月","8":"八月","9":"九月","10":"十月","11":"十一月","12":"十二月"},"AriaLabel":{"Required":"{0}為必要。"}},"Clock":{"Headings":{"hour":"小時","minute":"分鐘","meridiem":"上午/下午"},"Meridiem":{"AM":{"label":"上午"},"PM":{"label":"下午"}},"AriaLabel":{"Required":"{0}為必要。"}},"Overlay":{"closeErrorTitle":"無法關閉重疊檢視","openErrorTitle":"無法開啟重疊檢視"},"StatusIcon":{"Critical":"嚴重","Error":"錯誤","Warning":"警告","Progress":"進度","Success":"成功","Info":"資訊","Unknown":"未知"},"PivotTab":{"HasError":"此索引標籤有錯誤。"}}}}}
1
+ {"Strings":{"MsftSmeShell":{"Angular":{"searchPlaceHolder":"搜尋設定","Banner":{"DismissalDialog":{"footnote":"您隨時可以在 [設定] > [建議] 中變更這些喜好設定","title":"{0} 建議設定","Choices":{"Session":{"label":"暫時關閉此通知"},"Permanent":{"label":"不要顯示 {0} 建議"}}},"LearnMore":{"label":"深入了解"},"SetUpNow":{"label":"立即更新"},"ButtonClose":{"label":"關閉"},"ChevronLeft":{"label":"請按這裡取得上一頁的橫幅"},"ChevronRight":{"label":"請按這裡取得下一頁的橫幅"}},"CapacityBarChart":{"freeFormat":"{0} 可用","totalFormat":"總計: {0}","usedFormat":"已使用: {0} ({1})"},"Common":{"add":"新增","apply":"套用","back":"上一步","skip":"略過","cancel":"取消","close":"關閉","clear":"清除","continue":"繼續","details":"詳細資料","disable":"停用","disabled":"已停用","discard":"捨棄","discarded":"已捨棄","enable":"啟用","enabled":"已啟用","exit":"結束","failed":"失敗","failure":"失敗","finish":"完成","free":"可用","inProgress":"進行中","message":"訊息","next":"下一步","no":"否","remove":"移除","save":"儲存","search":"搜尋","succeeded":"成功","success":"成功","submit":"提交","total":"總計","used":"已使用","yes":"是","more":"更多","actions":"動作","expand":"展開","collapse":"摺疊","on":"開啟","off":"關閉","reset":"重設","none":"無","OK":{"affirmative":"確定","state":"良好"},"Capacity":{"criticalState":"嚴重狀態","warningState":"警告狀態","normalState":"標準狀態"},"Form":{"Validation":{"required":"*","UnknownFieldName":"這個欄位","IllegalNumber":"'{0}' 必須是 '{2}' 位移的 '{1}' 倍數","AlertTypes":{"error":"錯誤","warn":"警告","info":"資訊","success":"成功","pending":"正在處理"},"Required":{"label":"必要項目","format":"'{0}' 是必要欄位"},"Min":{"format":"{0} 不得小於 {1}"},"Max":{"format":"{0} 不得大於 {1}"},"Email":{"format":"{0} 必須是有效的電子郵件地址"},"MinLength":{"format":"{0} 必須至少有 {1} 個字元"},"MaxLength":{"format":"{0} 的長度上限為 {1} 個字元"},"Pattern":{"format":"{0} 不符合要求的模式"},"Capslock":{"message":"Caps Lock 已啟用"},"isNumber":{"format":"{0} 必須為有效的數字"},"Input":{"UnknownRegex":{"invalidCharacters":"不能包含無效字元。"},"DefaultRegex":{"invalidCharacters":"不能包含無效字元: 反斜線 (\\)​,斜線符號 (/)​,星號 (*)​,問號 (?)​,單引號 (‘)、雙引號 (“)​,小於符號 (<)​,大於符號 (>)​,或是分隔號 (|)​。"}},"MachineName":{"invalidCharacters":"不能包含無效字元: 反斜線 (\\)​,斜線符號 (/)​,星號 (*)​,問號 (?)​,單引號 (‘)、雙引號 (“)​,小於符號 (<)​,大於符號 (>)​,或是分隔號 (|)​。","invalidCharactersWithSpace":"不能包含無效字元: 反斜線 (\\)​,斜線符號 (/)​,星號 (*)​,問號 (?)​,單引號 (‘)、雙引號 (“)​,小於符號 (<)​,大於符號 (>)​,分隔號 (|),或是空格 ( )​。","whitespaceWillBeTrimmed":"將修剪前置和後端空白字元。","noStartWithPeriod":"不能以句點 (.) 字元開頭。"},"MatchField":{"noMatch":"此欄位必須符合 \"{0}\" 完全相同。"},"Pending":{"message":"正在驗證..."}},"Loading":{"message":"正在載入..."}},"InfoBubble":{"title":"檢視詳細資訊"}},"Badges":{"Preview":{"label":"預覽","tooltip":"此工具包含可供評估和測試的預覽功能。"},"Feedback":{"label":"意見反應"},"ComingSoon":{"label":"更多即將推出","tooltip":"已規劃在此工具的未來更新中加入其他功能。"},"New":{"label":"新增","tooltip":"此工具是新的或是已更新全新功能。","Feature":{"label":"新增"}},"Improvement":{"Feature":{"label":"改進"}},"BugFixes":{"Feature":{"label":"錯誤修正"}},"Common":{"learnMore":"深入了解","feedback":"提供意見反應給我們","Aria":{"labelFormat":"{0} {1}"},"Severities":{"warn":"警告","critical":"重要"}},"CredSSPEnabled":{"label":"CredSSP 已啟用","tooltip":"CredSSP 已在此伺服器上啟用。若要提高安全性,請在完成任何需要 CredSSP 的工作之後將其停用。"}},"ActiveDirectoryFormField":{"Button":{"Search":{"Label":"搜尋","PlaceHolder":"輸入搜尋名稱,支援萬用字元"}},"ResultTable":{"NameColumnHeader":"名稱","TypeColumnHeader":"類型","LoginNameColumnHeader":"登入名稱"},"SearchString":{"label":"輸入搜尋字串"},"Search":{"Progress":"正在搜尋 '{0}'"},"SizeLimit":{"Warning":"搜尋結果達到可顯示的最大數量 - 顯示前 {0}"},"ActiveDirectorySearchNotAvailable":{"message":"因為 Windows Admin Center 未加入 Active Directory 網域,無法搜尋 Active Directory。也有可能是因為您的帳號沒有 Active Directory 的讀取授權。"},"Error":{"message":"我們無法從 Active Directory 搜尋 \"{0}\"。錯誤: {1}"}},"Form":{"Checklist":{"indexDescription":"第 {0} 個 (共 {1} 個)"},"File":{"placeholder":"選擇要上傳的檔案","allowedFileTypesFormat":"允許的檔案類型: {0}","allFileTypes":"全部","removeButtonAriaLabelFormat":"移除 {0}","invalidFileTypeFormat":"不允許「{0}」個檔案","directoriesNotAllowed":"目錄不允許檔案上傳","invalidFileUnknownTypeFormat":"\"{0}\" 是不允許的檔案類型","removeButtonTooltip":"從清單中移除此項目","buttonText":{"singular":"選取檔案","plural":"選取檔案"},"dragDropText":{"singular":"或將檔案拖放至此","plural":"或將檔案拖放至此"},"selectedFilesFormat":{"plural":"已選取 {0} 個檔案","singular":"已選取 1 個檔案","none":"指定要匯出的檔案。","multipleEnabled":{"none":"指定要匯入的檔案。"}}},"Actions":{"clear":"清除","copy":"複製","copied":"已複製"},"SpinButton":{"increase":"將值增加 {0}","decrease":"將值減少 {0}"},"OrderedList":{"addButtonAriaLabel":"新增","addButtonTooltip":"將項目新增到清單","demoteButtonAriaLabel":"下移","demoteButtonTooltip":"在清單中將此項目下移","emptyValues":"清單不得包含任何空白的值","instructions":"","itemAriaDescription":"第 {0} 個 (共 {1} 個)","promoteButtonAriaLabel":"上移","promoteButtonTooltip":"在清單中將此項目上移","removeButtonAriaLabel":"移除","removeButtonTooltip":"從清單中移除此項目","addColumn":"新增欄位"},"Array":{"addButtonAriaLabel":"新增","addButtonTooltip":"將項目新增到清單","demoteButtonAriaLabel":"下移","demoteButtonTooltip":"在清單中將此項目下移","itemTitle":"項目 {0}","demoteButtonEvent":"項目在清單中下移。","demoteButtonPreventedEvent":"項目已位於清單底端。","itemAriaDescription":"第 {0} 個 (共 {1} 個)","promoteButtonAriaLabel":"上移","promoteButtonTooltip":"在清單中將此項目上移","promoteButtonEvent":"項目在清單中上移。","promoteButtonPreventedEvent":"項目已位於清單頂端。","removeButtonAriaLabel":"移除","removeButtonTooltip":"從清單中移除此項目","removeButtonEvent":"項目已從清單中移除。"},"List":{"addButtonAriaLabel":"新增","addButtonTooltip":"將項目新增到清單","emptyValues":"清單不得包含任何空白的值","itemAriaLabel":"{0}; 項目 {1}/{2}","removeButtonAriaLabel":"移除","removeButtonTooltip":"從清單中移除此項目"},"ConfirmationDialog":{"unsavedChangesCancelText":"捨棄變更","unsavedChangesConfirmText":"繼續編輯","unsavedChangesMessage":"要繼續編輯或捨棄您的變更嗎?","unsavedChangesTitle":"您有尚未儲存的變更"},"SearchField":{"count":"找到 {0} 筆結果。","Searching":{"label":"正在搜尋"}},"Common":{"SelectAll":{"label":"全選"}},"Date":{"InvalidDate":"請以此格式提供有效的日期:{0}","InvalidDateTime":"請以此格式提供有效的日期/時間:{0},HH:mm:ss","MinDateErrorFormat":"日期不能早於 {0}","MaxDateErrorFormat":"日期不能晚於 {0}"},"Time":{"InvalidTime":"請提供有效時間的格式:'hh:mm:ss AM/PM'、'hh:mm AM/PM'、'HH:mm:ss' 或 HH:mm","MinTimeErrorFormat":"時間不能早於 {0}","MaxTimeErrorFormat":"時間不能晚於 {0}"},"DateTimeRange":{"Custom":{"label":"自訂"},"StartTime":{"label":"開始時間"},"EndTime":{"label":"結束時間"},"Invalid":{"StartTime":"無效的開始時間,其不應該在結束時間之後。","EndTime":"無效的結束時間,其不應該在開始時間之前。"}}},"HtmlScanner":{"UnrecognizedClass":{"messageFormat":"CSS 類別 \"{0}\" 是無法辨識的 SME 樣式。錯誤使用已插入 SME 的類別 (具有 'sme-' 首碼的項目) 可能會導致樣式不一,甚至會在往後的 SME 殼層與 SDK 反覆項目引起中斷性變更。"}},"Decorators":{"Deprecated":{"messageFormat":"\"{0}\" 已在 {1} 淘汰。{2} {3}","alternateSignatureFormat":"改用 \"{0}\"。","CssClass":{"messageFormat":"CSS 類別 \"{0}\" 已在 {1} 淘汰。{2} {3}"}},"Obsolete":{"messageFormat":"\"{0}\" 已在 {1} 淘汰,且即將移除。{2} {3}","alternateSignatureFormat":"改用 \"{0}\"。"}},"DataTable":{"NoRecordsFound":"找不到任何記錄","removeThisRow":"移除此列。","Loading":"正在載入...","aria":{"label":{"selectAllItems":"選取所有項目","unselectAllItems":"取消選取所有項目","expand":"展開","collapse":"摺疊","nItemsInGroup":"包含 {0} 個項目的群組","oneItemInGroup":"包含 1 個項目的群組","nSubNodesInTreeNode":"'包含 {0} 個子節點的樹狀節點","oneSubNodeInTreeNode":"'包含 1 個子節點的樹狀節點"}},"Templates":{"Tags":{"Header":"標籤"}},"Aria":{"Label":{"rowSelection":"列 {0} 選取範圍","ascendSortOrderButton":"遞增排序順序的按鈕","descendSortOrderButton":"遞減排序順序的按鈕"}},"DownloadService":{"inProgressTitle":"正在下載資料表檢視","inProgressContent":"正在下載 {0} 的資料表檢視...","successTitle":"已成功下載資料表檢視","successContent":"已成功下載{0}的資料表檢視。檢查您的下載資料夾。","failedTitle":"無法下載資料表檢視","failedContent":"無法下載{0}的資料表檢視。錯誤訊息: {1}"}},"Details":{"AriaDescription":"按下 tab 鍵,然後使用方向鍵在此窗格內瀏覽。"},"Documentation":{"Tabs":{"Overview":{"label":"概觀"},"API":{"label":"API"},"Examples":{"label":"範例"}},"Overview":{"liveExampleHeader":"即時範例"}},"LoadingWheel":{"ARIA":{"loading":"正在載入"}},"DoughnutChart":{"Aria":{"RefreshInterval":"環圈圖每隔 {0} 重新整理","CenterText":"圖表總計"}},"Resizer":{"Splitter":"分隔器"},"MasterView":{"oneItem":"1 個項目","items":"{0} 個項目","results":"找到 {0} 筆結果。","selected":"已選取 {0} 個","selectedAria":"清除 {0} 個已選取的項目","selectedTitle":"清除選取項目","refresh":{"title":"重新整理","ariaLabel":{"header":"重新整理 {0}","noHeader":"重新整理"}},"columnPicker":{"title":"欄位選擇器"},"filter":{"title":"篩選"},"group":{"title":"群組"}},"NodeCredentialsForm":{"deploymentGuideMessage":"若要使用 Windows 帳戶進行單一登入,您可能需要設定 Kerberos 限制委派。","refreshMessage":"若要改回使用您的 Windows 帳戶,請重新整理頁面。","ApplyToAll":{"label":"請使用這些認證進行所有連線。","warning":"這將會覆寫您先前儲存的任何認證。"},"ConstrainedDelegation":{"title":"Kerberos 委派"},"Kerberos":{"link":{"text":"深入了解","href":"https://go.microsoft.com/fwlink/?linkid=863170"}},"lapsLocalAdminName":{"label":"本機系統管理員帳戶名稱","placeholder":"系統管理員"},"Password":{"label":"密碼","placeholder":"請輸入密碼。"},"trustedHosts":{"configureMessage":"您的環境可能需要設定 WinRM TrustedHosts 才能連線到受管理節點。","title":"設定 TrustedHosts"},"UseGlobalAuth":{"labelFormat":"使用 {0} 進行此連線","myWindowsAccount":"我的 Windows 帳戶","myLinuxAccount":"我的 Linux 帳戶","warning":"這些認證只會在這個工作階段儲存。"},"UseLaps":{"label":"搭配隨機化密碼使用區域系統管理員密碼解決方案 (必須已設定)"},"UsePerNodeAuth":{"label":"使用另一個帳戶進行此連線"},"Username":{"label":"使用者名稱","placeholder":"輸入使用者名稱..."}},"Navigation":{"NavigationTitleReturnTypeError":{"message":"具有不支援物件類型的 navigationTitle 回呼失敗。"}},"Wizard":{"validating":"正在驗證","stageName":"下一步: {0}","disabledStepAlert":"根據之前輸入的內容,您無需完成此步驟。請繼續進行下一步。","expandStepsList":"展開步驟清單","collapseStepsList":"摺疊步驟清單","Exit":{"Dialog":{"title":"結束確認","message":"是否要立即結束?"}},"Busy":{"Dialog":{"title":"您即將中斷重要程序","message":"重要的程式目前正在執行中。您確定要離開嗎?"}},"PreviousStep":{"Dialog":{"title":"上一步確認","message":"不能導航到已完成步驟。"}},"Lite":{"Actions":{"previous":"上一步","next":"下一步"},"FooterTemplate":{"review":"檢閱 + 建立","exit":"結束"}}},"TagsInput":{"RemoveTag":{"labelFormat":"移除 \"{0}\" 標籤"},"AddTag":{"label":"新增標籤"},"Instructions":{"label":"使用 ENTER 鍵新增標籤。使用 ',' (英文逗號) 分隔多個標籤項目。"}},"TooltipZone":{"Aria":{"keyShortcuts":"如需詳細資訊,請按 ALT + F1"}},"AlertBar":{"Warning":"警告","Information":"資訊","Success":"成功","Error":"錯誤","InProgress":"進行中","DismissAriaLabel":"關閉警示","Dismiss":"關閉","Expand":"展開"},"QueryEditor":{"ColumnFilter":"欄位篩選器","Delete":"刪除","New":"新增篩選器","Reset":"重設篩選器","Unset":"未設定","Selected":"已選取 {0} 個","ReadOnly":"唯讀","Irremovable":"不可移除","RemovableHint":"使用 DELETE 鍵刪除項目","SelectKey":"選取金鑰","SelectValue":"選取值"},"ColumnPicker":{"Header":"自訂表格","Pivot":{"chooseColumn":"選取欄位","groupBy":"群組依據"}},"Lint":{"Accessibility":{"MixedUseZone":"區域不得有區域子系,以及在相同層級中為可設定焦點元素的子系。請以類別 class sme-focus-zone 包裝所有可設定焦點元素來避免混用區域。","AnchorRoleOrHref":"錨點標籤需要角色屬性或 href。","AnchorTabIndexOrHref":"錨點標籤需要 href 或 tabindex = 0,才可設定焦點。","DialogInForm":"不要在對話方塊以外放置表單元素。","InputWithoutForm":"不要在表單以外使用輸入、選取或 textarea 元素。"}},"StackedHorizontalBarChart":{"totalLabel":"總計","Aria":{"roleDescription":"橫條圖"}},"Connectivity":{"Restricted":{"title":"受限制的網際網路存取","Azure":{"text":"此動作需要連線到 Microsoft Azure,但 Windows Admin Center 設定了受限制的網際網路連線能力。"},"Offline":{"text":"無法達到 {0}。Windows Admin Center 設定了受限制的網際網路連線能力。"},"ChangeSettings":{"text":"變更連線設定。"}}},"Layout":{"Edit":"編輯","Done":"完成"},"SchemaForm":{"NoSchemaMessage":{"Row1":"首先將「結構描述」和「資料」屬性設為結構描述驅動型表單元件。","Row2":"您也可以按一下底下的 [編輯] 按鈕,建立新的結構描述或編輯現有的結構描述。","Row3":"在生產模式下將不會顯示 [編輯] 按鈕。"},"EditButton":{"Text":"編輯"},"Editor":{"Title":"結構描述驅動型表單編輯器","SwitchToCodeViewMessage":"別忘了切換到 [程式碼] 檢視以取得編輯後的結構描述程式碼。","PreviewForm":{"Title":"預覽","EmptySchemaMessage":"結構描述中未加入任何屬性。請選取 [結構描述] 樹狀節點,再按一下 [+] 按鈕以加入一些屬性。","ValidationResult":{"Passed":"通過","Failed":"失敗","Title":"表單驗證: "}},"Welcome":{"Title":"歡迎使用結構描述驅動型表單編輯器","Row1":"結構描述驅動型表單利用表單結構描述,轉譯表單 UI 以及處理 UI 與表單檢視模型之間的雙向繫結。","Row2":"此工具可協助您利用表單結構描述建構表單 UI。","Row3":"您可以透過結構描述樹狀結構 ([視覺化] 檢視) 或結構描述程式碼編輯器 ([程式碼] 檢視) 編輯表單結構描述。","Row4":"您可前往 [資料] 索引標籤以查看表單 JSON 資料產生的方式,或是直接編輯表單 JSON 資料後再查看表單 UI 將如何轉譯該資料。","Row5":"您可前往 [表單檢視模型協定] 索引標籤以產生表單檢視模型協定,然後在您的原始程式碼中使用該協定對表單檢視模型進行強式類型檢查。","Row6":"若想要快速入門,您可以在編輯器 UI 中央的樹狀結構中選取 [結構描述] 節點,然後按一下 [+] 按鈕以由該處加入一些屬性。","Row7":"您隨時皆可按一下 [套用結構描述並加以預覽] 按鈕,查看表單會如何根據您建構的結構描述進行轉譯。","Row8":"編輯結構描述完成後,請切換到 [程式碼] 檢視以複製產生的結構描述程式碼。","Row9":"若要使用您剛建立或更新的結構描述轉譯表單,請將結構描述程式碼存回您的原始程式碼或放到任何不致丟失的位置,然後將該結構描述繫結至結構描述表單元件。","Row10":"結構描述驅動型表單的一個終極訣竅: 您可以使用程式碼動態建構結構描述物件。","Row11":"敬請親自體驗。"},"SchemaView":{"Title":"檢視:","Visual":"視覺化","Code":"程式碼"},"ApplySchemaButton":{"Text":"套用結構描述並加以預覽"},"GoToCodeViewButton":{"Text":"移至 [程式碼] 檢視"},"CloseButton":{"Text":"關閉"},"SchemaTree":{"Welcome":{"Row1":"結構描述樹狀結構是供您建構結構描述的地方。除了 [結構描述] 根節點外,每個樹狀節點各代表某一屬性結構描述。","Row2":"字串及數字之類的簡單屬性不能有子系屬性。","Row3":"物件屬性可以有多個子系屬性,用於定義各物件屬性的結構描述。","Row4":"陣列屬性只能有一個子系屬性,用於定義陣列項目結構描述。","Row5":"若想要快速入門,您可以在上面的樹狀結構中選取 [結構描述] 節點,然後按一下 [+] 按鈕以由該處加入一些屬性。"}},"PropertyForm":{"Header":"在這裡定義屬性結構描述","Footer":"順道一提,即便此表單是由結構描述驅動型表單進行轉譯,此表單的結構描述乃為動態產生。","DataType":"資料類型","Advance":"進階","Required":"必要項","DefaultValue":"預設值","Description":"描述","HideCondition":"隱藏條件","ConditionForDisabled":"符合此條件時即停用","CustomValidation":"自訂驗證","ReadonlyCondition":"唯讀條件","MoreOptions":"更多選項","EmptyByDefault":"預設情況下使用空值","NoOptionSchema":"此類型與格式未定義「選項」結構描述而無法轉譯各欄位,所以請直接在這裡編輯「選項」JSON。","Welcome":{"Row1":"按一下 [結構描述] 節點旁的 [+] 按鈕以加入屬性。","Row2":"或者選擇任何子系屬性結構描述節點,編輯該節點的屬性結構描述。","Row3":"每個屬性都對應到 UI 中的某一表單欄位。","Row4":"按一下表單屬性樹狀節點,接著即可編輯表單屬性的詳細資料。","Row5":"您還可以管理各個屬性的順序或移除任何屬性。","Row6":"若將屬性設為「物件」類型,您便可再為其加入更多子系屬性。","Row7":"若將屬性設為「陣列」類型,您即必須定義陣列項目結構描述。"},"Type":{"Description":"這表示可供用於 JSON 資料的基本資料類型。例如,表單資料中的字串無論是使用文字方塊或下拉式清單呈現,當成表單資料來看終究仍是字串。"},"Format":{"Description":"同屬某一資料類型的不同表單欄位可能需要使用不同的 UI (格式) 與使用者互動。例如,有時我們會使用文字方塊以供輸入字串,或是使用下拉式方塊讓使用者從指定的選項中選擇任一字串。"},"Name":{"Description":"這是表單 JSON 資料中所使用的屬性名稱。"},"Label":{"Description":"這段文字會顯示為表單欄位的標籤。"},"MultipleLine":{"Title":"多行"},"ObjectType":{"ColumnCount":"欄數","Collapsible":"可摺疊","HideHeader":"隱藏標題","Yes":"是","State":"狀態","Collapsed":"已摺疊","Expanded":"已展開"},"Options":{"StaticOptions":"靜態選項","DynamicOptions":"動態選項 - 繫結運算式","Label":"標籤","Value":"值"},"CodeEditor":{"Language":{"label":"語言","description":"要在編輯器中顯示的程式碼語言。應選擇摩納哥程式碼編輯器中內建的任一種語言。"},"Options":{"label":"摩納哥編輯器選項","description":"選項在建立時,拒絕傳送至摩納哥編輯器。"}}},"SchemaText":{"Message1":"您可以直接在這裡編輯結構描述程式碼。編輯完成後,請套用結構描述以預覽表單。","Message2":"編輯完成後,請別忘了複製該結構描述程式碼並貼至您的原始程式碼或任何能夠予以儲存的位置。","LintMessage":"順道一提,您可能需要此程式碼......","CopyToClipboardButton":{"Text":"將結構描述複製到剪貼簿"}},"ViewModel":{"Message":"* 下面的文字方塊只是為了便於您選取全部內容並複製。在這裡進行任何編輯都不會有任何作用。","GenerateButton":{"Text":"產生"}},"ResourceStringPicker":{"ActualTextPrefix":"實際文字: ","InvalidResourceKey":"資源識別碼無效","NoResourceKeyMessage":"請在這裡提供資源識別碼。","CannotFindResourceKey":"找不到資源識別碼: {0}","WrongFormatActualText":"結構描述中的實際文字格式錯誤。"}}},"ActionButton":{"Templates":{"EditTags":{"Label":"編輯標籤"}},"OpenInANewWindow":{"label":"彈出至新視窗","title":"彈出至新視窗"}},"Calendar":{"PreviousMonth":"上個月","NextMonth":"下個月","goToToday":"移至今日","Heading":{"Monday":"星期一","Tuesday":"星期二","Wednesday":"星期三","Thursday":"星期四","Friday":"星期五","Saturday":"星期六","Sunday":"星期日"},"Day":{"Sunday":"星期日","Monday":"星期一","Tuesday":"星期二","Wednesday":"星期三","Thursday":"星期四","Friday":"星期五","Saturday":"星期六"},"Month":{"1":"一月","2":"二月","3":"三月","4":"四月","5":"五月","6":"六月","7":"七月","8":"八月","9":"九月","10":"十月","11":"十一月","12":"十二月"},"AriaLabel":{"Required":"{0}為必要。"}},"Clock":{"Headings":{"hour":"小時","minute":"分鐘","meridiem":"上午/下午"},"Meridiem":{"AM":{"label":"上午"},"PM":{"label":"下午"}},"AriaLabel":{"Required":"{0}為必要。"}},"Overlay":{"closeErrorTitle":"無法關閉重疊檢視","openErrorTitle":"無法開啟重疊檢視"},"StatusIcon":{"Critical":"嚴重","Error":"錯誤","Warning":"警告","Progress":"進度","Success":"成功","Info":"資訊","Unknown":"未知"},"PivotTab":{"HasError":"此索引標籤有錯誤。"},"PropertyGrid":{"InternalLink":{"label":"內部連結 {0}"},"ExternalLink":{"label":"外部連結 {0}"}}}}}}
@@ -1,4 +1,4 @@
1
- import { Component, EventEmitter, Input, Output } from '@angular/core';
1
+ import { Component, EventEmitter, HostBinding, Input, Output } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  import * as i1 from "@angular/common";
4
4
  const _c0 = ["*"];
@@ -20,9 +20,17 @@ function AccordionPanelComponent_div_8_Template(rf, ctx) { if (rf & 1) {
20
20
  const _c2 = [[["sme-panel-control"]], "*"];
21
21
  const _c3 = ["sme-panel-control", "*"];
22
22
  export class PanelControlComponent {
23
+ constructor() {
24
+ /**
25
+ * Best effort to make sure the buttons, texts can be focused.
26
+ */
27
+ this.defaultFocusZone = true;
28
+ }
23
29
  }
24
30
  /** @nocollapse */ PanelControlComponent.ɵfac = function PanelControlComponent_Factory(t) { return new (t || PanelControlComponent)(); };
25
- /** @nocollapse */ PanelControlComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: PanelControlComponent, selectors: [["sme-panel-control"]], ngContentSelectors: _c0, decls: 1, vars: 0, template: function PanelControlComponent_Template(rf, ctx) { if (rf & 1) {
31
+ /** @nocollapse */ PanelControlComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: PanelControlComponent, selectors: [["sme-panel-control"]], hostVars: 2, hostBindings: function PanelControlComponent_HostBindings(rf, ctx) { if (rf & 2) {
32
+ i0.ɵɵclassProp("sme-focus-zone", ctx.defaultFocusZone);
33
+ } }, ngContentSelectors: _c0, decls: 1, vars: 0, template: function PanelControlComponent_Template(rf, ctx) { if (rf & 1) {
26
34
  i0.ɵɵprojectionDef();
27
35
  i0.ɵɵprojection(0);
28
36
  } }, encapsulation: 2 });
@@ -32,9 +40,21 @@ export class PanelControlComponent {
32
40
  selector: 'sme-panel-control',
33
41
  template: '<ng-content></ng-content>'
34
42
  }]
35
- }], null, null); })();
43
+ }], null, { defaultFocusZone: [{
44
+ type: HostBinding,
45
+ args: ['class.sme-focus-zone']
46
+ }] }); })();
36
47
  export class AccordionPanelComponent {
37
48
  constructor() {
49
+ /**
50
+ * It indicates whether the panel is opened.
51
+ */
52
+ this.opened = true;
53
+ /**
54
+ * It indicates whether the panel is initially opened.
55
+ * This value will no longer be respected after the control fully loaded.
56
+ */
57
+ this.initialOpened = true;
38
58
  /**
39
59
  * It indicates whether the panel is expandable.
40
60
  */
@@ -50,21 +70,24 @@ export class AccordionPanelComponent {
50
70
  */
51
71
  this.paddingInset = false;
52
72
  this.toggled = new EventEmitter();
53
- this.opened = true;
73
+ }
74
+ ngOnInit() {
75
+ this.opened = !!this.initialOpened;
54
76
  this.canClose = this.isExpandable;
55
77
  }
56
78
  /**
57
79
  * The on toggle function implementation.
58
80
  */
59
81
  onToggle() {
60
- if (this.isExpandable) {
61
- this.opened = !this.opened;
62
- this.toggled.emit(this);
82
+ if (!this.isExpandable) {
83
+ return;
63
84
  }
85
+ this.opened = !this.opened;
86
+ this.toggled.emit(this);
64
87
  }
65
88
  }
66
89
  /** @nocollapse */ AccordionPanelComponent.ɵfac = function AccordionPanelComponent_Factory(t) { return new (t || AccordionPanelComponent)(); };
67
- /** @nocollapse */ AccordionPanelComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: AccordionPanelComponent, selectors: [["sme-accordion-panel"]], inputs: { header: "header", opened: "opened", isExpandable: "isExpandable", borderRadius: "borderRadius", paddingInset: "paddingInset" }, outputs: { toggled: "toggled" }, ngContentSelectors: _c3, decls: 9, vars: 14, consts: [[1, "sme-accordion-panel"], [1, "sme-arrange-stack-h", "sme-panel-header", "sme-layout-flex", "sme-position-flex-align-center"], [1, "sme-button", "sme-button-align-left", "sme-button-trigger", "sme-position-flex-auto", "sme-panel-expander", 3, "click"], ["accordionPanelButton", ""], ["class", "sme-position-flex-none sme-icon sme-position-stretch-v", 3, "ngClass", 4, "ngIf"], [1, "sme-arrange-ellipsis", "sme-position-stretch-v", 3, "title"], ["class", "sme-panel-body", 3, "sme-padding-inset-sm", 4, "ngIf"], [1, "sme-position-flex-none", "sme-icon", "sme-position-stretch-v", 3, "ngClass"], [1, "sme-panel-body"]], template: function AccordionPanelComponent_Template(rf, ctx) { if (rf & 1) {
90
+ /** @nocollapse */ AccordionPanelComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: AccordionPanelComponent, selectors: [["sme-accordion-panel"]], inputs: { header: "header", initialOpened: "initialOpened", isExpandable: "isExpandable", borderRadius: "borderRadius", paddingInset: "paddingInset" }, outputs: { toggled: "toggled" }, ngContentSelectors: _c3, decls: 9, vars: 16, consts: [[1, "sme-accordion-panel"], [1, "sme-arrange-stack-h", "sme-panel-header", "sme-layout-flex", "sme-position-flex-align-center"], ["tabindex", "0", 1, "sme-button", "sme-button-align-left", "sme-button-trigger", "sme-position-flex-auto", "sme-panel-expander", 3, "click"], ["accordionPanelButton", ""], ["class", "sme-position-flex-none sme-icon sme-position-stretch-v", 3, "ngClass", 4, "ngIf"], [1, "sme-arrange-ellipsis", "sme-position-stretch-v", 3, "title"], ["class", "sme-panel-body", 3, "sme-padding-inset-sm", 4, "ngIf"], [1, "sme-position-flex-none", "sme-icon", "sme-position-stretch-v", 3, "ngClass"], [1, "sme-panel-body"]], template: function AccordionPanelComponent_Template(rf, ctx) { if (rf & 1) {
68
91
  i0.ɵɵprojectionDef(_c2);
69
92
  i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "div", 2, 3);
70
93
  i0.ɵɵlistener("click", function AccordionPanelComponent_Template_div_click_2_listener() { return ctx.onToggle(); });
@@ -81,6 +104,7 @@ export class AccordionPanelComponent {
81
104
  i0.ɵɵclassProp("sme-panel-header-border-radius", ctx.borderRadius)("sme-panel-header-border-radius-opened", ctx.borderRadius && ctx.opened);
82
105
  i0.ɵɵadvance(1);
83
106
  i0.ɵɵclassProp("sme-focus-zone", ctx.canClose)("sme-panel-header-border-radius", ctx.borderRadius)("sme-panel-header-border-radius-opened", ctx.borderRadius && ctx.opened);
107
+ i0.ɵɵattribute("aria-expanded", !!ctx.opened)("aria-label", ctx.header);
84
108
  i0.ɵɵadvance(2);
85
109
  i0.ɵɵproperty("ngIf", ctx.canClose);
86
110
  i0.ɵɵadvance(1);
@@ -92,10 +116,10 @@ export class AccordionPanelComponent {
92
116
  } }, dependencies: [i1.NgClass, i1.NgIf], encapsulation: 2 });
93
117
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AccordionPanelComponent, [{
94
118
  type: Component,
95
- args: [{ selector: 'sme-accordion-panel', template: "<div class=\"sme-accordion-panel\">\r\n <div class=\"sme-arrange-stack-h sme-panel-header sme-layout-flex sme-position-flex-align-center\" [class.sme-panel-header-border-radius]=\"borderRadius\"\r\n [class.sme-panel-header-border-radius-opened]=\"borderRadius && opened\">\r\n <div #accordionPanelButton [class.sme-focus-zone]=\"canClose\" [class.sme-panel-header-border-radius]=\"borderRadius\"\r\n [class.sme-panel-header-border-radius-opened]=\"borderRadius && opened\"\r\n class=\"sme-button sme-button-align-left sme-button-trigger sme-position-flex-auto sme-panel-expander\"\r\n (click)=\"onToggle()\">\r\n <span *ngIf=\"canClose\" class=\"sme-position-flex-none sme-icon sme-position-stretch-v\"\r\n [ngClass]=\"{'sme-icon-chevronDown':opened, 'sme-icon-chevronRight': !opened}\"></span>\r\n <span class=\"sme-arrange-ellipsis sme-position-stretch-v\" [title]=\"header\">{{ header }}</span>\r\n </div>\r\n <ng-content select=\"sme-panel-control\"></ng-content>\r\n </div>\r\n <div class=\"sme-panel-body\" *ngIf=\"opened\" [class.sme-padding-inset-sm]=\"paddingInset\">\r\n <ng-content></ng-content>\r\n </div>\r\n</div>\r\n" }]
96
- }], function () { return []; }, { header: [{
119
+ args: [{ selector: 'sme-accordion-panel', template: "<div class=\"sme-accordion-panel\">\r\n <div class=\"sme-arrange-stack-h sme-panel-header sme-layout-flex sme-position-flex-align-center\" [class.sme-panel-header-border-radius]=\"borderRadius\"\r\n [class.sme-panel-header-border-radius-opened]=\"borderRadius && opened\">\r\n <div #accordionPanelButton [class.sme-focus-zone]=\"canClose\" [class.sme-panel-header-border-radius]=\"borderRadius\"\r\n [class.sme-panel-header-border-radius-opened]=\"borderRadius && opened\" [attr.aria-expanded]=\"!!opened\"\r\n [attr.aria-label]=\"header\" tabindex=\"0\"\r\n class=\"sme-button sme-button-align-left sme-button-trigger sme-position-flex-auto sme-panel-expander\"\r\n (click)=\"onToggle()\">\r\n <span *ngIf=\"canClose\" class=\"sme-position-flex-none sme-icon sme-position-stretch-v\"\r\n [ngClass]=\"{'sme-icon-chevronDown':opened, 'sme-icon-chevronRight': !opened}\"></span>\r\n <span class=\"sme-arrange-ellipsis sme-position-stretch-v\" [title]=\"header\">{{ header }}</span>\r\n </div>\r\n <ng-content select=\"sme-panel-control\"></ng-content>\r\n </div>\r\n <div class=\"sme-panel-body\" *ngIf=\"opened\" [class.sme-padding-inset-sm]=\"paddingInset\">\r\n <ng-content></ng-content>\r\n </div>\r\n</div>\r\n" }]
120
+ }], null, { header: [{
97
121
  type: Input
98
- }], opened: [{
122
+ }], initialOpened: [{
99
123
  type: Input
100
124
  }], isExpandable: [{
101
125
  type: Input
@@ -106,4 +130,4 @@ export class AccordionPanelComponent {
106
130
  }], toggled: [{
107
131
  type: Output
108
132
  }] }); })();
109
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLXBhbmVsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2FuZ3VsYXIvc3JjL2NvbnRyb2xzL2FjY29yZGlvbi9hY2NvcmRpb24tcGFuZWwvYWNjb3JkaW9uLXBhbmVsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2FuZ3VsYXIvc3JjL2NvbnRyb2xzL2FjY29yZGlvbi9hY2NvcmRpb24tcGFuZWwvYWNjb3JkaW9uLXBhbmVsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7OztJQ09qRSwwQkFDdUY7OztJQUFyRixtRkFBNkU7OztJQUtuRiw4QkFBdUY7SUFDckYscUJBQXlCO0lBQzNCLGlCQUFNOzs7SUFGcUMsMkRBQTJDOzs7O0FEUHhGLE1BQU0sT0FBTyxxQkFBcUI7OzZHQUFyQixxQkFBcUI7dUdBQXJCLHFCQUFxQjs7UUFGbkIsa0JBQXlCOzt1RkFFM0IscUJBQXFCO2NBSmpDLFNBQVM7ZUFBQztnQkFDUCxRQUFRLEVBQUUsbUJBQW1CO2dCQUM3QixRQUFRLEVBQUUsMkJBQTJCO2FBQ3hDOztBQVFELE1BQU0sT0FBTyx1QkFBdUI7SUFzQ2hDO1FBekJBOztXQUVHO1FBRUksaUJBQVksR0FBRyxJQUFJLENBQUM7UUFFM0I7OztXQUdHO1FBRUksaUJBQVksR0FBRyxLQUFLLENBQUM7UUFFNUI7OztXQUdHO1FBRUksaUJBQVksR0FBRyxLQUFLLENBQUM7UUFhckIsWUFBTyxHQUEwQyxJQUFJLFlBQVksRUFBMkIsQ0FBQztRQUxoRyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUNuQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDdEMsQ0FBQztJQUtEOztPQUVHO0lBQ0ksUUFBUTtRQUNYLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNuQixJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztZQUMzQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUMzQjtJQUNMLENBQUM7O2lIQXREUSx1QkFBdUI7eUdBQXZCLHVCQUF1Qjs7UUNicEMsOEJBQWlDLGFBQUEsZ0JBQUE7UUFNM0IsaUdBQVMsY0FBVSxJQUFDO1FBQ3BCLDBFQUN1RjtRQUN2RiwrQkFBMkU7UUFBQSxZQUFZO1FBQUEsaUJBQU8sRUFBQTtRQUVoRyxrQkFBb0Q7UUFDdEQsaUJBQU07UUFDTix3RUFFTTtRQUNSLGlCQUFNOztRQWY2RixlQUFxRDtRQUFyRCxrRUFBcUQseUVBQUE7UUFFekgsZUFBaUM7UUFBakMsOENBQWlDLG9EQUFBLHlFQUFBO1FBSW5ELGVBQWM7UUFBZCxtQ0FBYztRQUVxQyxlQUFnQjtRQUFoQixrQ0FBZ0I7UUFBQyxlQUFZO1FBQVosZ0NBQVk7UUFJOUQsZUFBWTtRQUFaLGlDQUFZOzt1RkRBOUIsdUJBQXVCO2NBSm5DLFNBQVM7MkJBQ0kscUJBQXFCO3NDQVF4QixNQUFNO2tCQURaLEtBQUs7WUFPQyxNQUFNO2tCQURaLEtBQUs7WUFPQyxZQUFZO2tCQURsQixLQUFLO1lBUUMsWUFBWTtrQkFEbEIsS0FBSztZQVFDLFlBQVk7a0JBRGxCLEtBQUs7WUFjQyxPQUFPO2tCQURiLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3NtZS1wYW5lbC1jb250cm9sJyxcclxuICAgIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PidcclxufSlcclxuZXhwb3J0IGNsYXNzIFBhbmVsQ29udHJvbENvbXBvbmVudCB7XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdzbWUtYWNjb3JkaW9uLXBhbmVsJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9hY2NvcmRpb24tcGFuZWwuY29tcG9uZW50Lmh0bWwnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBY2NvcmRpb25QYW5lbENvbXBvbmVudCB7XHJcbiAgICAvKipcclxuICAgICAqIEl0IGRldGVybWluZXMgdGhlIGhlYWRlciBmb3IgdGhlIHBhbmVsLlxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGhlYWRlcjogc3RyaW5nO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSXQgaW5kaWNhdGVzIHdoZXRoZXIgdGhlIHBhbmVsIGlzIG9wZW5lZC5cclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBvcGVuZWQ6IGJvb2xlYW47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJdCBpbmRpY2F0ZXMgd2hldGhlciB0aGUgcGFuZWwgaXMgZXhwYW5kYWJsZS5cclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBpc0V4cGFuZGFibGUgPSB0cnVlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSXQgZGV0ZXJtaW5lcyB0aGUgYm9yZGVyIHJhZGl1cyBmb3IgdGhlIHBhbmVsLlxyXG4gICAgICogVHJ1ZSB3aWxsIGFwcGx5IGJvcmRlciByYWRpdXMgdG8gaGF2ZSByb3VuZCBjb3JuZXJzLlxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGJvcmRlclJhZGl1cyA9IGZhbHNlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSXQgZGV0ZXJtaW5lcyB0aGUgcGFkZGluZyBpbnNldCBmb3IgdGhlIHBhbmVsIGJvZHkuXHJcbiAgICAgKiBUcnVlIHdpbGwgYXBwbHkgYSBkZWZhdWx0IHBhZGRpbmcgdG8gdGhlIHBhbmVsIGJvZHkuXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgcGFkZGluZ0luc2V0ID0gZmFsc2U7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJdCBpbmRpY2F0ZXMgd2hldGhlciB0aGUgcGFuZWwgY2FuIGJlIGNsb3NlZC5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGNhbkNsb3NlOiBib29sZWFuO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgICAgIHRoaXMub3BlbmVkID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmNhbkNsb3NlID0gdGhpcy5pc0V4cGFuZGFibGU7XHJcbiAgICB9XHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgdG9nZ2xlZDogRXZlbnRFbWl0dGVyPEFjY29yZGlvblBhbmVsQ29tcG9uZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8QWNjb3JkaW9uUGFuZWxDb21wb25lbnQ+KCk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgb24gdG9nZ2xlIGZ1bmN0aW9uIGltcGxlbWVudGF0aW9uLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgb25Ub2dnbGUoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuaXNFeHBhbmRhYmxlKSB7XHJcbiAgICAgICAgICAgIHRoaXMub3BlbmVkID0gIXRoaXMub3BlbmVkO1xyXG4gICAgICAgICAgICB0aGlzLnRvZ2dsZWQuZW1pdCh0aGlzKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInNtZS1hY2NvcmRpb24tcGFuZWxcIj5cclxuICA8ZGl2IGNsYXNzPVwic21lLWFycmFuZ2Utc3RhY2staCBzbWUtcGFuZWwtaGVhZGVyIHNtZS1sYXlvdXQtZmxleCBzbWUtcG9zaXRpb24tZmxleC1hbGlnbi1jZW50ZXJcIiBbY2xhc3Muc21lLXBhbmVsLWhlYWRlci1ib3JkZXItcmFkaXVzXT1cImJvcmRlclJhZGl1c1wiXHJcbiAgICBbY2xhc3Muc21lLXBhbmVsLWhlYWRlci1ib3JkZXItcmFkaXVzLW9wZW5lZF09XCJib3JkZXJSYWRpdXMgJiYgb3BlbmVkXCI+XHJcbiAgICA8ZGl2ICNhY2NvcmRpb25QYW5lbEJ1dHRvbiBbY2xhc3Muc21lLWZvY3VzLXpvbmVdPVwiY2FuQ2xvc2VcIiBbY2xhc3Muc21lLXBhbmVsLWhlYWRlci1ib3JkZXItcmFkaXVzXT1cImJvcmRlclJhZGl1c1wiXHJcbiAgICAgIFtjbGFzcy5zbWUtcGFuZWwtaGVhZGVyLWJvcmRlci1yYWRpdXMtb3BlbmVkXT1cImJvcmRlclJhZGl1cyAmJiBvcGVuZWRcIlxyXG4gICAgICBjbGFzcz1cInNtZS1idXR0b24gc21lLWJ1dHRvbi1hbGlnbi1sZWZ0IHNtZS1idXR0b24tdHJpZ2dlciBzbWUtcG9zaXRpb24tZmxleC1hdXRvIHNtZS1wYW5lbC1leHBhbmRlclwiXHJcbiAgICAgIChjbGljayk9XCJvblRvZ2dsZSgpXCI+XHJcbiAgICAgIDxzcGFuICpuZ0lmPVwiY2FuQ2xvc2VcIiBjbGFzcz1cInNtZS1wb3NpdGlvbi1mbGV4LW5vbmUgc21lLWljb24gc21lLXBvc2l0aW9uLXN0cmV0Y2gtdlwiXHJcbiAgICAgICAgW25nQ2xhc3NdPVwieydzbWUtaWNvbi1jaGV2cm9uRG93bic6b3BlbmVkLCAnc21lLWljb24tY2hldnJvblJpZ2h0JzogIW9wZW5lZH1cIj48L3NwYW4+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwic21lLWFycmFuZ2UtZWxsaXBzaXMgc21lLXBvc2l0aW9uLXN0cmV0Y2gtdlwiIFt0aXRsZV09XCJoZWFkZXJcIj57eyBoZWFkZXIgfX08L3NwYW4+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cInNtZS1wYW5lbC1jb250cm9sXCI+PC9uZy1jb250ZW50PlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJzbWUtcGFuZWwtYm9keVwiICpuZ0lmPVwib3BlbmVkXCIgW2NsYXNzLnNtZS1wYWRkaW5nLWluc2V0LXNtXT1cInBhZGRpbmdJbnNldFwiPlxyXG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
133
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLXBhbmVsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2FuZ3VsYXIvc3JjL2NvbnRyb2xzL2FjY29yZGlvbi9hY2NvcmRpb24tcGFuZWwvYWNjb3JkaW9uLXBhbmVsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2FuZ3VsYXIvc3JjL2NvbnRyb2xzL2FjY29yZGlvbi9hY2NvcmRpb24tcGFuZWwvYWNjb3JkaW9uLXBhbmVsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7SUNRdEYsMEJBQ3VGOzs7SUFBckYsbUZBQTZFOzs7SUFLbkYsOEJBQXVGO0lBQ3JGLHFCQUF5QjtJQUMzQixpQkFBTTs7O0lBRnFDLDJEQUEyQzs7OztBRFJ4RixNQUFNLE9BQU8scUJBQXFCO0lBSmxDO1FBS0k7O1dBRUc7UUFFSSxxQkFBZ0IsR0FBRyxJQUFJLENBQUM7S0FDbEM7OzZHQU5ZLHFCQUFxQjt1R0FBckIscUJBQXFCOzs7O1FBRm5CLGtCQUF5Qjs7dUZBRTNCLHFCQUFxQjtjQUpqQyxTQUFTO2VBQUM7Z0JBQ1AsUUFBUSxFQUFFLG1CQUFtQjtnQkFDN0IsUUFBUSxFQUFFLDJCQUEyQjthQUN4QztnQkFNVSxnQkFBZ0I7a0JBRHRCLFdBQVc7bUJBQUMsc0JBQXNCOztBQVF2QyxNQUFNLE9BQU8sdUJBQXVCO0lBSnBDO1FBV0k7O1dBRUc7UUFDSSxXQUFNLEdBQUcsSUFBSSxDQUFDO1FBRXJCOzs7V0FHRztRQUVJLGtCQUFhLEdBQUcsSUFBSSxDQUFDO1FBRTVCOztXQUVHO1FBRUksaUJBQVksR0FBRyxJQUFJLENBQUM7UUFFM0I7OztXQUdHO1FBRUksaUJBQVksR0FBRyxLQUFLLENBQUM7UUFFNUI7OztXQUdHO1FBRUksaUJBQVksR0FBRyxLQUFLLENBQUM7UUFhckIsWUFBTyxHQUEwQyxJQUFJLFlBQVksRUFBMkIsQ0FBQztLQWF2RztJQW5CVSxRQUFRO1FBQ1gsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQztRQUNuQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDdEMsQ0FBQztJQUtEOztPQUVHO0lBQ0ksUUFBUTtRQUNYLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3BCLE9BQU87U0FDVjtRQUVELElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQzNCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzVCLENBQUM7O2lIQTlEUSx1QkFBdUI7eUdBQXZCLHVCQUF1Qjs7UUNsQnBDLDhCQUFpQyxhQUFBLGdCQUFBO1FBTzNCLGlHQUFTLGNBQVUsSUFBQztRQUNwQiwwRUFDdUY7UUFDdkYsK0JBQTJFO1FBQUEsWUFBWTtRQUFBLGlCQUFPLEVBQUE7UUFFaEcsa0JBQW9EO1FBQ3RELGlCQUFNO1FBQ04sd0VBRU07UUFDUixpQkFBTTs7UUFoQjZGLGVBQXFEO1FBQXJELGtFQUFxRCx5RUFBQTtRQUV6SCxlQUFpQztRQUFqQyw4Q0FBaUMsb0RBQUEseUVBQUE7UUFDYSw2Q0FBK0IsMEJBQUE7UUFJL0YsZUFBYztRQUFkLG1DQUFjO1FBRXFDLGVBQWdCO1FBQWhCLGtDQUFnQjtRQUFDLGVBQVk7UUFBWixnQ0FBWTtRQUk5RCxlQUFZO1FBQVosaUNBQVk7O3VGREk5Qix1QkFBdUI7Y0FKbkMsU0FBUzsyQkFDSSxxQkFBcUI7Z0JBUXhCLE1BQU07a0JBRFosS0FBSztZQWFDLGFBQWE7a0JBRG5CLEtBQUs7WUFPQyxZQUFZO2tCQURsQixLQUFLO1lBUUMsWUFBWTtrQkFEbEIsS0FBSztZQVFDLFlBQVk7a0JBRGxCLEtBQUs7WUFjQyxPQUFPO2tCQURiLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3NtZS1wYW5lbC1jb250cm9sJyxcclxuICAgIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PidcclxufSlcclxuZXhwb3J0IGNsYXNzIFBhbmVsQ29udHJvbENvbXBvbmVudCB7XHJcbiAgICAvKipcclxuICAgICAqIEJlc3QgZWZmb3J0IHRvIG1ha2Ugc3VyZSB0aGUgYnV0dG9ucywgdGV4dHMgY2FuIGJlIGZvY3VzZWQuXHJcbiAgICAgKi9cclxuICAgIEBIb3N0QmluZGluZygnY2xhc3Muc21lLWZvY3VzLXpvbmUnKVxyXG4gICAgcHVibGljIGRlZmF1bHRGb2N1c1pvbmUgPSB0cnVlO1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnc21lLWFjY29yZGlvbi1wYW5lbCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vYWNjb3JkaW9uLXBhbmVsLmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQWNjb3JkaW9uUGFuZWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gICAgLyoqXHJcbiAgICAgKiBJdCBkZXRlcm1pbmVzIHRoZSBoZWFkZXIgZm9yIHRoZSBwYW5lbC5cclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBoZWFkZXI6IHN0cmluZztcclxuXHJcbiAgICAvKipcclxuICAgICAqIEl0IGluZGljYXRlcyB3aGV0aGVyIHRoZSBwYW5lbCBpcyBvcGVuZWQuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBvcGVuZWQgPSB0cnVlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSXQgaW5kaWNhdGVzIHdoZXRoZXIgdGhlIHBhbmVsIGlzIGluaXRpYWxseSBvcGVuZWQuXHJcbiAgICAgKiBUaGlzIHZhbHVlIHdpbGwgbm8gbG9uZ2VyIGJlIHJlc3BlY3RlZCBhZnRlciB0aGUgY29udHJvbCBmdWxseSBsb2FkZWQuXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgaW5pdGlhbE9wZW5lZCA9IHRydWU7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJdCBpbmRpY2F0ZXMgd2hldGhlciB0aGUgcGFuZWwgaXMgZXhwYW5kYWJsZS5cclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBpc0V4cGFuZGFibGUgPSB0cnVlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSXQgZGV0ZXJtaW5lcyB0aGUgYm9yZGVyIHJhZGl1cyBmb3IgdGhlIHBhbmVsLlxyXG4gICAgICogVHJ1ZSB3aWxsIGFwcGx5IGJvcmRlciByYWRpdXMgdG8gaGF2ZSByb3VuZCBjb3JuZXJzLlxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGJvcmRlclJhZGl1cyA9IGZhbHNlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSXQgZGV0ZXJtaW5lcyB0aGUgcGFkZGluZyBpbnNldCBmb3IgdGhlIHBhbmVsIGJvZHkuXHJcbiAgICAgKiBUcnVlIHdpbGwgYXBwbHkgYSBkZWZhdWx0IHBhZGRpbmcgdG8gdGhlIHBhbmVsIGJvZHkuXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgcGFkZGluZ0luc2V0ID0gZmFsc2U7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJdCBpbmRpY2F0ZXMgd2hldGhlciB0aGUgcGFuZWwgY2FuIGJlIGNsb3NlZC5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGNhbkNsb3NlOiBib29sZWFuO1xyXG5cclxuICAgIHB1YmxpYyBuZ09uSW5pdCgpIHtcclxuICAgICAgICB0aGlzLm9wZW5lZCA9ICEhdGhpcy5pbml0aWFsT3BlbmVkO1xyXG4gICAgICAgIHRoaXMuY2FuQ2xvc2UgPSB0aGlzLmlzRXhwYW5kYWJsZTtcclxuICAgIH1cclxuXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHB1YmxpYyB0b2dnbGVkOiBFdmVudEVtaXR0ZXI8QWNjb3JkaW9uUGFuZWxDb21wb25lbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxBY2NvcmRpb25QYW5lbENvbXBvbmVudD4oKTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBvbiB0b2dnbGUgZnVuY3Rpb24gaW1wbGVtZW50YXRpb24uXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBvblRvZ2dsZSgpOiB2b2lkIHtcclxuICAgICAgICBpZiAoIXRoaXMuaXNFeHBhbmRhYmxlKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMub3BlbmVkID0gIXRoaXMub3BlbmVkO1xyXG4gICAgICAgIHRoaXMudG9nZ2xlZC5lbWl0KHRoaXMpO1xyXG4gICAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJzbWUtYWNjb3JkaW9uLXBhbmVsXCI+XHJcbiAgPGRpdiBjbGFzcz1cInNtZS1hcnJhbmdlLXN0YWNrLWggc21lLXBhbmVsLWhlYWRlciBzbWUtbGF5b3V0LWZsZXggc21lLXBvc2l0aW9uLWZsZXgtYWxpZ24tY2VudGVyXCIgW2NsYXNzLnNtZS1wYW5lbC1oZWFkZXItYm9yZGVyLXJhZGl1c109XCJib3JkZXJSYWRpdXNcIlxyXG4gICAgW2NsYXNzLnNtZS1wYW5lbC1oZWFkZXItYm9yZGVyLXJhZGl1cy1vcGVuZWRdPVwiYm9yZGVyUmFkaXVzICYmIG9wZW5lZFwiPlxyXG4gICAgPGRpdiAjYWNjb3JkaW9uUGFuZWxCdXR0b24gW2NsYXNzLnNtZS1mb2N1cy16b25lXT1cImNhbkNsb3NlXCIgW2NsYXNzLnNtZS1wYW5lbC1oZWFkZXItYm9yZGVyLXJhZGl1c109XCJib3JkZXJSYWRpdXNcIlxyXG4gICAgICBbY2xhc3Muc21lLXBhbmVsLWhlYWRlci1ib3JkZXItcmFkaXVzLW9wZW5lZF09XCJib3JkZXJSYWRpdXMgJiYgb3BlbmVkXCIgW2F0dHIuYXJpYS1leHBhbmRlZF09XCIhIW9wZW5lZFwiXHJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiaGVhZGVyXCIgdGFiaW5kZXg9XCIwXCJcclxuICAgICAgY2xhc3M9XCJzbWUtYnV0dG9uIHNtZS1idXR0b24tYWxpZ24tbGVmdCBzbWUtYnV0dG9uLXRyaWdnZXIgc21lLXBvc2l0aW9uLWZsZXgtYXV0byBzbWUtcGFuZWwtZXhwYW5kZXJcIlxyXG4gICAgICAoY2xpY2spPVwib25Ub2dnbGUoKVwiPlxyXG4gICAgICA8c3BhbiAqbmdJZj1cImNhbkNsb3NlXCIgY2xhc3M9XCJzbWUtcG9zaXRpb24tZmxleC1ub25lIHNtZS1pY29uIHNtZS1wb3NpdGlvbi1zdHJldGNoLXZcIlxyXG4gICAgICAgIFtuZ0NsYXNzXT1cInsnc21lLWljb24tY2hldnJvbkRvd24nOm9wZW5lZCwgJ3NtZS1pY29uLWNoZXZyb25SaWdodCc6ICFvcGVuZWR9XCI+PC9zcGFuPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cInNtZS1hcnJhbmdlLWVsbGlwc2lzIHNtZS1wb3NpdGlvbi1zdHJldGNoLXZcIiBbdGl0bGVdPVwiaGVhZGVyXCI+e3sgaGVhZGVyIH19PC9zcGFuPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJzbWUtcGFuZWwtY29udHJvbFwiPjwvbmctY29udGVudD5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwic21lLXBhbmVsLWJvZHlcIiAqbmdJZj1cIm9wZW5lZFwiIFtjbGFzcy5zbWUtcGFkZGluZy1pbnNldC1zbV09XCJwYWRkaW5nSW5zZXRcIj5cclxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -15,7 +15,6 @@ export class ActionContainerComponent extends CoreBaseComponent {
15
15
  /**
16
16
  * Event emitter fired whenever an error occurs within a child ActionItem.
17
17
  */
18
- // eslint-disable-next-line @angular-eslint/no-output-native
19
18
  this.error = new EventEmitter();
20
19
  /**
21
20
  * Event emitter fired whenever a child ActionItem is executed.
@@ -100,7 +99,7 @@ export class ActionContainerComponent extends CoreBaseComponent {
100
99
  * Callback method run when ActionContainerComponent is destroyed.
101
100
  */
102
101
  ngOnDestroy() {
103
- this.completedSubscription.unsubscribe();
102
+ this.completedSubscription?.unsubscribe();
104
103
  }
105
104
  /**
106
105
  * Callback method run immediately after Angular has completed initialization of all of ActionContainerComponent's content.
@@ -171,4 +170,4 @@ export class ActionContainerComponent extends CoreBaseComponent {
171
170
  }], executed: [{
172
171
  type: Output
173
172
  }] }); })();
174
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9hbmd1bGFyL3NyYy9jb250cm9scy9hY3Rpb25zL2NvbnRhaW5lcnMvYWN0aW9uLWNvbnRhaW5lci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILGVBQWUsRUFDZixTQUFTLEVBRVQsWUFBWSxFQUNaLFFBQVEsRUFDUixLQUFLLEVBR0wsZUFBZSxFQUdmLE1BQU0sRUFDTixTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLEtBQUssRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7OztBQUtoRSxrRUFBa0U7QUFDbEUsTUFBTSxPQUFnQix3QkFDbEIsU0FBUSxpQkFBaUI7SUEySHpCOztPQUVHO0lBQ0gsWUFBb0IsZUFBZ0MsRUFBRSxRQUFrQjtRQUNwRSxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFEQSxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUEzRDdDLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQWM5Qzs7V0FFRztRQUNILDREQUE0RDtRQUVyRCxVQUFLLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7UUFFMUQ7O1dBRUc7UUFFSSxhQUFRLEdBQThDLElBQUksWUFBWSxFQUErQixDQUFDO1FBUzdHOztXQUVHO1FBQ0ksb0JBQWUsR0FBaUIsRUFBRSxDQUFDO1FBRTFDOztXQUVHO1FBQ0ksb0JBQWUsR0FBaUIsRUFBRSxDQUFDO1FBRTFDOztVQUVFO1FBQ0ssa0JBQWEsR0FBaUIsRUFBRSxDQUFDO1FBRWhDLHNDQUFpQyxHQUFHLEtBQUssQ0FBQztRQUMxQyxvQkFBZSxHQUFHLElBQUksQ0FBQztJQVcvQixDQUFDO0lBNUdEOztPQUVHO0lBQ0gsSUFD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LENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDMUUsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDOUIsQ0FBQzs7bUhBbE1pQix3QkFBd0I7MEdBQXhCLHdCQUF3Qjs7Ozs7O3VGQUF4Qix3QkFBd0I7Y0FGN0MsU0FBUzt5RkFxQkMsWUFBWTtrQkFEbEIsZUFBZTttQkFBQyxRQUFRO1lBT2QsT0FBTztrQkFEakIsS0FBSztZQVdLLHlCQUF5QjtrQkFEbkMsS0FBSztZQXdCSyxNQUFNO2tCQURoQixLQUFLO1lBV0MsWUFBWTtrQkFEbEIsTUFBTTtZQU9JLE9BQU87a0JBRGpCLEtBQUs7WUFjQyxLQUFLO2tCQURYLE1BQU07WUFPQSxRQUFRO2tCQURkLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICAgQWZ0ZXJDb250ZW50SW5pdCxcclxuICAgIENvbnRlbnRDaGlsZHJlbixcclxuICAgIERpcmVjdGl2ZSxcclxuICAgIERvQ2hlY2ssXHJcbiAgICBFdmVudEVtaXR0ZXIsXHJcbiAgICBJbmplY3RvcixcclxuICAgIElucHV0LFxyXG4gICAgSXRlcmFibGVDaGFuZ2VSZWNvcmQsXHJcbiAgICBJdGVyYWJsZURpZmZlcixcclxuICAgIEl0ZXJhYmxlRGlmZmVycyxcclxuICAgIE9uRGVzdHJveSxcclxuICAgIE9uSW5pdCxcclxuICAgIE91dHB1dCxcclxuICAgIFF1ZXJ5TGlzdFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBtZXJnZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IENvcmVCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29tbW9uL2Jhc2UuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQWN0aW9uSXRlbSwgQWN0aW9uSXRlbUNvbXBvbmVudCB9IGZyb20gJy4uL2l0ZW1zL2FjdGlvbi1pdGVtLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFjdGlvbkNvbnRhaW5lciwgQWN0aW9uQ29udGFpbmVyT3JpZW50YXRpb24sIEFjdGlvbkl0ZW1FeGVjdXRlZEV2ZW50QXJncyB9IGZyb20gJy4vYWN0aW9uLWNvbnRhaW5lcic7XHJcblxyXG5ARGlyZWN0aXZlKClcclxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtY2xhc3Mtc3VmZml4XHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBY3Rpb25Db250YWluZXJDb21wb25lbnRcclxuICAgIGV4dGVuZHMgQ29yZUJhc2VDb21wb25lbnRcclxuICAgIGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgRG9DaGVjaywgT25Jbml0LCBPbkRlc3Ryb3ksIEFjdGlvbkNvbnRhaW5lciB7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQcm9wZXJ0eSB0aGF0IHN0b3JlcyBBY3Rpb25Db250YWluZXJDb21wb25lbnQgY29tcGFjdCBzdGF0ZS4gVHJ1ZSBmb3IgY29tcGFjdCwgZmFsc2UgZm9yIG5vdC5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGFic3RyYWN0IGdldCBjb21wYWN0KCk6IGJvb2xlYW47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQcm9wZXJ0eSB0aGF0IHN0b3JlcyBBY3Rpb25Db250YWluZXJDb21wb25lbnQgb3JpZW50YXRpb24uXHJcbiAgICAgKiBWZXJ0aWNhbCBkaXNwbGF5cyBjb250YWluZXIgZnJvbSB0b3AgdG8gYm90dG9tIG9mIHBhZ2UsIGhvcml6b250YWwgZGlzcGxheXMgZnJvbSBsZWZ0IHRvIHJpZ2h0LlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgYWJzdHJhY3QgZ2V0IG9yaWVudGF0aW9uKCk6IEFjdGlvbkNvbnRhaW5lck9yaWVudGF0aW9uO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogTGlzdCBvZiBIVE1MIGRlZmluZWQgQWN0aW9uSXRlbSBvYmplY3RzIHN0b3JlZCBpbiBBY3Rpb25Db250YWluZXJDb21wb25lbnQuXHJcbiAgICAgKi9cclxuICAgIEBDb250ZW50Q2hpbGRyZW4oJ2FjdGlvbicpXHJcbiAgICBwdWJsaWMgY2hpbGRBY3Rpb25zOiBRdWVyeUxpc3Q8QWN0aW9uSXRlbUNvbXBvbmVudD47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBMaXN0IG9mIHByb2dyYW1tYXRpY2FsbHkgZGVmaW5lZCBBY3Rpb25JdGVtIG9iamVjdHMgc3RvcmVkIGluIEFjdGlvbkNvbnRhaW5lckNvbXBvbmVudC5cclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzZXQgYWN0aW9ucyhhY3Rpb25zOiBBY3Rpb25JdGVtW10pIHtcclxuICAgICAgICB0aGlzLmludGVybmFsQWN0aW9ucyA9IGFjdGlvbnMgfHwgW107XHJcbiAgICAgICAgdGhpcy51cGRhdGVBY3Rpb25zKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBGbGFnIHNldCB0byBkaXNwbGF5IGVpdGhlciBIVE1MIG9yIHByb2dyYW1tYXRpY2FsbHkgZGVmaW5lZCBBY3Rpb25JdGVtIG9iamVjdHMgZmlyc3QuXHJcbiAgICAgKiBUcnVlIHRvIGRpc3BsYXkgSFRNTCBkZWZpbmVkIGFjdGlvbnMgZmlyc3QsIGZhbHNlIHRvIGRpc3BsYXkgcHJvZ3JhbW1hdGljYWxseSBkZWZpbmVkIGFjdGlvbnMgZmlyc3QgKGRlZmF1bHRzIHRvIGZhbHNlKS5cclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzZXQgZGlzcGxheUlubGluZUFjdGlvbnNGaXJzdChkaXNwbGF5Rmlyc3Q6IGJvb2xlYW4pIHtcclxuICAgICAgICB0aGlzLmRpc3BsYXlJbmxpbmVBY3Rpb25zRmlyc3RJbnRlcm5hbCA9IGRpc3BsYXlGaXJzdDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIExpc3Qgb2YgYWxsIEFjdGlvbkl0ZW0gb2JqZWN0cyBzdG9yZWQgaW4gQWN0aW9uQ29udGFpbmVyQ29tcG9uZW50LlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0IGFjdGlvbnMoKTogQWN0aW9uSXRlbVtdIHtcclxuICAgICAgICB0aGlzLmNvbWJpbmVkQWN0aW9ucy5sZW5ndGggPSAwO1xyXG5cclxuICAgICAgICB0aGlzLmNvbWJpbmVkQWN0aW9ucy5wdXNoLmFwcGx5KFxyXG4gICAgICAgICAgICB0aGlzLmNvbWJpbmVkQWN0aW9ucyxcclxuICAgICAgICAgICAgdGhpcy5kaXNwbGF5SW5saW5lQWN0aW9uc0ZpcnN0SW50ZXJuYWwgPyB0aGlzLmlubGluZUFjdGlvbnMuY29uY2F0KHRoaXMuaW50ZXJuYWxBY3Rpb25zKVxyXG4gICAgICAgICAgICAgICAgOiB0aGlzLmludGVybmFsQWN0aW9ucy5jb25jYXQodGhpcy5pbmxpbmVBY3Rpb25zKVxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmNvbWJpbmVkQWN0aW9ucztcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFRhcmdldCBvYmplY3QgdXNlZCBieSBjaGlsZCBhY3Rpb25zIG9mIEFjdGlvbkNvbnRhaW5lckNvbXBvbmVudC5cclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzZXQgdGFyZ2V0KGlucHV0OiBhbnkpIHtcclxuICAgICAgICB0aGlzLmludGVybmFsVGFyZ2V0ID0gaW5wdXQ7XHJcbiAgICAgICAgdGhpcy50YXJnZXRDaGFuZ2UuZW1pdCh0aGlzLmludGVybmFsVGFyZ2V0KTtcclxuICAgICAgICB0aGlzLnVwZGF0ZUFjdGlvblN0YXRlcygpO1xyXG4gICAgfVxyXG4gICAgcHVibGljIGdldCB0YXJnZXQoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaW50ZXJuYWxUYXJnZXQ7XHJcbiAgICB9XHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgdGFyZ2V0Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBGbGFnIHNldCB0byBlbmFibGUgb3IgZGlzYWJsZSBBY3Rpb25Db250YWluZXJDb21wb25lbnQuXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc2V0IGVuYWJsZWQoaW5wdXQ6IGJvb2xlYW4pIHtcclxuICAgICAgICB0aGlzLmVuYWJsZWRJbnRlcm5hbCA9ICEhaW5wdXQ7XHJcbiAgICAgICAgdGhpcy51cGRhdGVBY3Rpb25TdGF0ZXMoKTtcclxuICAgIH1cclxuICAgIHB1YmxpYyBnZXQgZW5hYmxlZCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5lbmFibGVkSW50ZXJuYWw7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBFdmVudCBlbWl0dGVyIGZpcmVkIHdoZW5ldmVyIGFuIGVycm9yIG9jY3VycyB3aXRoaW4gYSBjaGlsZCBBY3Rpb25JdGVtLlxyXG4gICAgICovXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLW91dHB1dC1uYXRpdmVcclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIGVycm9yOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRXZlbnQgZW1pdHRlciBmaXJlZCB3aGVuZXZlciBhIGNoaWxkIEFjdGlvbkl0ZW0gaXMgZXhlY3V0ZWQuXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIGV4ZWN1dGVkOiBFdmVudEVtaXR0ZXI8QWN0aW9uSXRlbUV4ZWN1dGVkRXZlbnRBcmdzPiA9IG5ldyBFdmVudEVtaXR0ZXI8QWN0aW9uSXRlbUV4ZWN1dGVkRXZlbnRBcmdzPigpO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0dXJucyB0cnVlIGlmIGFueSBjaGlsZCBBY3Rpb25JdGVtIG9iamVjdHMgaGF2ZSB0aGUgYnVzeSBmbGFnIHNldCwgZmFsc2Ugb3RoZXJ3aXNlLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0IGlzQnVzeSgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5hY3Rpb25zICYmIHRoaXMuYWN0aW9ucy5zb21lKGFjdGlvbiA9PiBhY3Rpb24uYnVzeSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBMaXN0IG9mIGFsbCBjaGlsZCBBY3Rpb25JdGVtIG9iamVjdHMsIGJvdGggSFRNTCBhbmQgcHJvZ3JhbW1hdGljYWxseSBkZWZpbmVkLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgY29tYmluZWRBY3Rpb25zOiBBY3Rpb25JdGVtW10gPSBbXTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIExpc3Qgb2YgcHJvZ3JhbW1hdGljYWxseSBkZWZpbmVkIEFjdGlvbkl0ZW0gb2JqZWN0cyBzdG9yZWQgaW4gQWN0aW9uQ29udGFpbmVyQ29tcG9uZW50LlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgaW50ZXJuYWxBY3Rpb25zOiBBY3Rpb25JdGVtW10gPSBbXTtcclxuXHJcbiAgICAvKipcclxuICAgICogTGlzdCBvZiBIVE1MIGRlZmluZWQgQWN0aW9uSXRlbSBvYmplY3RzIHN0b3JlZCBpbiBBY3Rpb25Db250YWluZXJDb21wb25lbnQuXHJcbiAgICAqL1xyXG4gICAgcHVibGljIGlubGluZUFjdGlvbnM6IEFjdGlvbkl0ZW1bXSA9IFtdO1xyXG5cclxuICAgIHByaXZhdGUgZGlzcGxheUlubGluZUFjdGlvbnNGaXJzdEludGVybmFsID0gZmFsc2U7XHJcbiAgICBwcml2YXRlIGVuYWJsZWRJbnRlcm5hbCA9IHRydWU7XHJcbiAgICBwcml2YXRlIGludGVybmFsVGFyZ2V0OiBhbnk7XHJcbiAgICBwcml2YXRlIGFjdGlvbnNEaWZmZXI6IEl0ZXJhYmxlRGlmZmVyPGFueT47XHJcbiAgICBwcml2YXRlIHdhc0J1c3k6IGJvb2xlYW47XHJcbiAgICBwcml2YXRlIGNvbXBsZXRlZFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ29uc3RydWN0b3IgZm9yIEFjdGlvbkNvbnRhaW5lckNvbXBvbmVudC5cclxuICAgICAqL1xyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBpdGVyYWJsZURpZmZlcnM6IEl0ZXJhYmxlRGlmZmVycywgaW5qZWN0b3I6IEluamVjdG9yKSB7XHJcbiAgICAgICAgc3VwZXIoaW5qZWN0b3IpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2FsbGJhY2sgbWV0aG9kIHJ1biB3aGVuIEFjdGlvbkNvbnRhaW5lckNvbXBvbmVudCBpcyBpbml0aWFsaXplZC5cclxuICAgICAqL1xyXG4gICAgcHVibGljIG5nT25Jbml0KCkge1xyXG4gICAgICAgIC8vIHdoZW5ldmVyIGFuIGFjdGlvbiBleGVjdXRlcyBvciBlcnJvcnMsIHVwZGF0ZSBhY3Rpb24gc3RhdGVzXHJcbiAgICAgICAgLy8gTk9URTogQW5ndWxhciBkb2N1bWVudGF0aW9uIHN0YXRlcyB0aGF0IHdlIHNob3VsZCBub3QgdHJlYXQgZXZlbnQgZW1pdHRlcnMgYXMgb2JzZXJ2YWJsZXMuXHJcbiAgICAgICAgLy8gaW4gdGhlIGZ1dHVyZSB0aGlzIGNvdWxkIGJyZWFrIGlmIGFuZ3VsYXIgY2hhbmdlcyBpdHMgaW1wbGVtZW50YXRpb24uXHJcbiAgICAgICAgLy8gV2Ugc2hvdWxkIGNvbnNpZGVyIGFub3RoZXIgd2F5IG9mIHN1cmZhY2luZyB0aGlzLlxyXG4gICAgICAgIHRoaXMuY29tcGxldGVkU3Vic2NyaXB0aW9uID0gbWVyZ2UodGhpcy5leGVjdXRlZCwgdGhpcy5lcnJvcikuc3Vic2NyaWJlKG5leHQgPT4gdGhpcy51cGRhdGVBY3Rpb25TdGF0ZXMoKSk7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2FsbGJhY2sgbWV0aG9kIHJ1biB3aGVuIEFjdGlvbkNvbnRhaW5lckNvbXBvbmVudCBpcyBkZXN0cm95ZWQuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcclxuICAgICAgICB0aGlzLmNvbXBsZXRlZFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2FsbGJhY2sgbWV0aG9kIHJ1biBpbW1lZGlhdGVseSBhZnRlciBBbmd1bGFyIGhhcyBjb21wbGV0ZWQgaW5pdGlhbGl6YXRpb24gb2YgYWxsIG9mIEFjdGlvbkNvbnRhaW5lckNvbXBvbmVudCdzIGNvbnRlbnQuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBuZ0FmdGVyQ29udGVudEluaXQoKSB7XHJcbiAgICAgICAgdGhpcy5jaGlsZEFjdGlvbnMuY2hhbmdlcy5zdWJzY3JpYmUodmFsID0+IHtcclxuICAgICAgICAgICAgdGhpcy5pbmxpbmVBY3Rpb25zLmxlbmd0aCA9IDA7XHJcbiAgICAgICAgICAgIHRoaXMuaW5saW5lQWN0aW9ucy5wdXNoLmFwcGx5KHRoaXMuaW5saW5lQWN0aW9ucywgdGhpcy5jaGlsZEFjdGlvbnMubWFwKGl0ZW0gPT4gaXRlbS5hY3Rpb24pKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLmlubGluZUFjdGlvbnMgPSB0aGlzLmNoaWxkQWN0aW9ucy5tYXAoaXRlbSA9PiBpdGVtLmFjdGlvbik7XHJcbiAgICAgICAgdGhpcy51cGRhdGVBY3Rpb25zKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gTmVlZHMgbW9yZSBpbnZlc3RpZ2F0aW9uLlxyXG4gICAgLyoqXHJcbiAgICAgKiBBbmd1bGFyJ3MgZG9DaGVjayBsaWZlIGN5Y2xlIGhvb2suIE5vdGUgdGhlcmUgaXMgYW4gb2RkIGNvbmRpdGlvbiB3aGVuIHRyeWluZyB0byBjcmVhdGUgZHluYW1pYyB0b29sYmFyIGl0ZW1zIGlubGluZSB3aXRoIG5nIGZvci5cclxuICAgICAqIFNvbWVob3cgdGhpcyBtZXRob2QgaXMgbm90IGdldHRpbmcgY2FsbGVkIGluIHRpbWUgdG8gaW5pdGlhbGl6ZSB0aGUgYnV0dG9uIHRoYXQgaXMgY3JlYXRlZCBieSB0aGUgbmcgZm9yIHN0YXRlbWVudC5cclxuICAgICAqL1xyXG4gICAgcHVibGljIG5nRG9DaGVjaygpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5hY3Rpb25zRGlmZmVyKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGNoYW5nZXMgPSB0aGlzLmFjdGlvbnNEaWZmZXIuZGlmZih0aGlzLmFjdGlvbnMpO1xyXG4gICAgICAgICAgICBpZiAoY2hhbmdlcykge1xyXG4gICAgICAgICAgICAgICAgY2hhbmdlcy5mb3JFYWNoQWRkZWRJdGVtKChyZWNvcmQ6IEl0ZXJhYmxlQ2hhbmdlUmVjb3JkPEFjdGlvbkl0ZW0+KSA9PiAocmVjb3JkLml0ZW0pLmFkZGVkVG9Db250YWluZXIodGhpcy50YXJnZXQsIHRoaXMpKTtcclxuICAgICAgICAgICAgICAgIGNoYW5nZXMuZm9yRWFjaFJlbW92ZWRJdGVtKChyZWNvcmQ6IEl0ZXJhYmxlQ2hhbmdlUmVjb3JkPEFjdGlvbkl0ZW0+KSA9PiAocmVjb3JkLml0ZW0pLnJlbW92ZWRGcm9tQ29udGFpbmVyKCkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy53YXNCdXN5ICE9PSB0aGlzLmlzQnVzeSkge1xyXG4gICAgICAgICAgICB0aGlzLndhc0J1c3kgPSB0aGlzLmlzQnVzeTtcclxuICAgICAgICAgICAgdGhpcy51cGRhdGVBY3Rpb25TdGF0ZXMoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBNZXRob2QgdG8gdXBkYXRlIGFsbCBjaGlsZCBBY3Rpb25JdGVtIG9iamVjdHMgc3RhdGVzLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgdXBkYXRlQWN0aW9uU3RhdGVzKCkge1xyXG4gICAgICAgIGlmICh0aGlzLmFjdGlvbnMgJiYgdGhpcy5hY3Rpb25zLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgdGhpcy5hY3Rpb25zLmZvckVhY2goYWN0aW9uID0+IGFjdGlvbi5zZXRBY3Rpb25TdGF0ZSh0aGlzLnRhcmdldCwgdGhpcykpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHVwZGF0ZUFjdGlvbnMoKSB7XHJcbiAgICAgICAgdGhpcy5hY3Rpb25zRGlmZmVyID0gdGhpcy5pdGVyYWJsZURpZmZlcnMuZmluZCh0aGlzLmFjdGlvbnMpLmNyZWF0ZShudWxsKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZUFjdGlvblN0YXRlcygpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
173
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9hbmd1bGFyL3NyYy9jb250cm9scy9hY3Rpb25zL2NvbnRhaW5lcnMvYWN0aW9uLWNvbnRhaW5lci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILGVBQWUsRUFDZixTQUFTLEVBRVQsWUFBWSxFQUNaLFFBQVEsRUFDUixLQUFLLEVBR0wsZUFBZSxFQUdmLE1BQU0sRUFDTixTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLEtBQUssRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7OztBQUtoRSxrRUFBa0U7QUFDbEUsTUFBTSxPQUFnQix3QkFDbEIsU0FBUSxpQkFBaUI7SUEySHpCOztPQUVHO0lBQ0gsWUFBb0IsZUFBZ0MsRUFBRSxRQUFrQjtRQUNwRSxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFEQSxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUEzRDdDLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQWM5Qzs7V0FFRztRQUdJLFVBQUssR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUUxRDs7V0FFRztRQUVJLGFBQVEsR0FBOEMsSUFBSSxZQUFZLEVBQStCLENBQUM7UUFTN0c7O1dBRUc7UUFDSSxvQkFBZSxHQUFpQixFQUFFLENBQUM7UUFFMUM7O1dBRUc7UUFDSSxvQkFBZSxHQUFpQixFQUFFLENBQUM7UUFFMUM7O1VBRUU7UUFDSyxrQkFBYSxHQUFpQixFQUFFLENBQUM7UUFFaEMsc0NBQWlDLEdBQUcsS0FBSyxDQUFDO1FBQzFDLG9CQUFlLEdBQUcsSUFBSSxDQUFDO0lBVy9CLENBQUM7SUE1R0Q7O09BRUc7SUFDSCxJQUNXLE9BQU8sQ0FBQyxP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QU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxRSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUM5QixDQUFDOzttSEFsTWlCLHdCQUF3QjswR0FBeEIsd0JBQXdCOzs7Ozs7dUZBQXhCLHdCQUF3QjtjQUY3QyxTQUFTO3lGQXFCQyxZQUFZO2tCQURsQixlQUFlO21CQUFDLFFBQVE7WUFPZCxPQUFPO2tCQURqQixLQUFLO1lBV0sseUJBQXlCO2tCQURuQyxLQUFLO1lBd0JLLE1BQU07a0JBRGhCLEtBQUs7WUFXQyxZQUFZO2tCQURsQixNQUFNO1lBT0ksT0FBTztrQkFEakIsS0FBSztZQWNDLEtBQUs7a0JBRlgsTUFBTTtZQVFBLFFBQVE7a0JBRGQsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBBZnRlckNvbnRlbnRJbml0LFxyXG4gICAgQ29udGVudENoaWxkcmVuLFxyXG4gICAgRGlyZWN0aXZlLFxyXG4gICAgRG9DaGVjayxcclxuICAgIEV2ZW50RW1pdHRlcixcclxuICAgIEluamVjdG9yLFxyXG4gICAgSW5wdXQsXHJcbiAgICBJdGVyYWJsZUNoYW5nZVJlY29yZCxcclxuICAgIEl0ZXJhYmxlRGlmZmVyLFxyXG4gICAgSXRlcmFibGVEaWZmZXJzLFxyXG4gICAgT25EZXN0cm95LFxyXG4gICAgT25Jbml0LFxyXG4gICAgT3V0cHV0LFxyXG4gICAgUXVlcnlMaXN0XHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IG1lcmdlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQ29yZUJhc2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb21tb24vYmFzZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBY3Rpb25JdGVtLCBBY3Rpb25JdGVtQ29tcG9uZW50IH0gZnJvbSAnLi4vaXRlbXMvYWN0aW9uLWl0ZW0uY29tcG9uZW50JztcclxuaW1wb3J0IHsgQWN0aW9uQ29udGFpbmVyLCBBY3Rpb25Db250YWluZXJPcmllbnRhdGlvbiwgQWN0aW9uSXRlbUV4ZWN1dGVkRXZlbnRBcmdzIH0gZnJvbSAnLi9hY3Rpb24tY29udGFpbmVyJztcclxuXHJcbkBEaXJlY3RpdmUoKVxyXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1jbGFzcy1zdWZmaXhcclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFjdGlvbkNvbnRhaW5lckNvbXBvbmVudFxyXG4gICAgZXh0ZW5kcyBDb3JlQmFzZUNvbXBvbmVudFxyXG4gICAgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0LCBEb0NoZWNrLCBPbkluaXQsIE9uRGVzdHJveSwgQWN0aW9uQ29udGFpbmVyIHtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFByb3BlcnR5IHRoYXQgc3RvcmVzIEFjdGlvbkNvbnRhaW5lckNvbXBvbmVudCBjb21wYWN0IHN0YXRlLiBUcnVlIGZvciBjb21wYWN0LCBmYWxzZSBmb3Igbm90LlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgYWJzdHJhY3QgZ2V0IGNvbXBhY3QoKTogYm9vbGVhbjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFByb3BlcnR5IHRoYXQgc3RvcmVzIEFjdGlvbkNvbnRhaW5lckNvbXBvbmVudCBvcmllbnRhdGlvbi5cclxuICAgICAqIFZlcnRpY2FsIGRpc3BsYXlzIGNvbnRhaW5lciBmcm9tIHRvcCB0byBib3R0b20gb2YgcGFnZSwgaG9yaXpvbnRhbCBkaXNwbGF5cyBmcm9tIGxlZnQgdG8gcmlnaHQuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBhYnN0cmFjdCBnZXQgb3JpZW50YXRpb24oKTogQWN0aW9uQ29udGFpbmVyT3JpZW50YXRpb247XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBMaXN0IG9mIEhUTUwgZGVmaW5lZCBBY3Rpb25JdGVtIG9iamVjdHMgc3RvcmVkIGluIEFjdGlvbkNvbnRhaW5lckNvbXBvbmVudC5cclxuICAgICAqL1xyXG4gICAgQENvbnRlbnRDaGlsZHJlbignYWN0aW9uJylcclxuICAgIHB1YmxpYyBjaGlsZEFjdGlvbnM6IFF1ZXJ5TGlzdDxBY3Rpb25JdGVtQ29tcG9uZW50PjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIExpc3Qgb2YgcHJvZ3JhbW1hdGljYWxseSBkZWZpbmVkIEFjdGlvbkl0ZW0gb2JqZWN0cyBzdG9yZWQgaW4gQWN0aW9uQ29udGFpbmVyQ29tcG9uZW50LlxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNldCBhY3Rpb25zKGFjdGlvbnM6IEFjdGlvbkl0ZW1bXSkge1xyXG4gICAgICAgIHRoaXMuaW50ZXJuYWxBY3Rpb25zID0gYWN0aW9ucyB8fCBbXTtcclxuICAgICAgICB0aGlzLnVwZGF0ZUFjdGlvbnMoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEZsYWcgc2V0IHRvIGRpc3BsYXkgZWl0aGVyIEhUTUwgb3IgcHJvZ3JhbW1hdGljYWxseSBkZWZpbmVkIEFjdGlvbkl0ZW0gb2JqZWN0cyBmaXJzdC5cclxuICAgICAqIFRydWUgdG8gZGlzcGxheSBIVE1MIGRlZmluZWQgYWN0aW9ucyBmaXJzdCwgZmFsc2UgdG8gZGlzcGxheSBwcm9ncmFtbWF0aWNhbGx5IGRlZmluZWQgYWN0aW9ucyBmaXJzdCAoZGVmYXVsdHMgdG8gZmFsc2UpLlxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNldCBkaXNwbGF5SW5saW5lQWN0aW9uc0ZpcnN0KGRpc3BsYXlGaXJzdDogYm9vbGVhbikge1xyXG4gICAgICAgIHRoaXMuZGlzcGxheUlubGluZUFjdGlvbnNGaXJzdEludGVybmFsID0gZGlzcGxheUZpcnN0O1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogTGlzdCBvZiBhbGwgQWN0aW9uSXRlbSBvYmplY3RzIHN0b3JlZCBpbiBBY3Rpb25Db250YWluZXJDb21wb25lbnQuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXQgYWN0aW9ucygpOiBBY3Rpb25JdGVtW10ge1xyXG4gICAgICAgIHRoaXMuY29tYmluZWRBY3Rpb25zLmxlbmd0aCA9IDA7XHJcblxyXG4gICAgICAgIHRoaXMuY29tYmluZWRBY3Rpb25zLnB1c2guYXBwbHkoXHJcbiAgICAgICAgICAgIHRoaXMuY29tYmluZWRBY3Rpb25zLFxyXG4gICAgICAgICAgICB0aGlzLmRpc3BsYXlJbmxpbmVBY3Rpb25zRmlyc3RJbnRlcm5hbCA/IHRoaXMuaW5saW5lQWN0aW9ucy5jb25jYXQodGhpcy5pbnRlcm5hbEFjdGlvbnMpXHJcbiAgICAgICAgICAgICAgICA6IHRoaXMuaW50ZXJuYWxBY3Rpb25zLmNvbmNhdCh0aGlzLmlubGluZUFjdGlvbnMpXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY29tYmluZWRBY3Rpb25zO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGFyZ2V0IG9iamVjdCB1c2VkIGJ5IGNoaWxkIGFjdGlvbnMgb2YgQWN0aW9uQ29udGFpbmVyQ29tcG9uZW50LlxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNldCB0YXJnZXQoaW5wdXQ6IGFueSkge1xyXG4gICAgICAgIHRoaXMuaW50ZXJuYWxUYXJnZXQgPSBpbnB1dDtcclxuICAgICAgICB0aGlzLnRhcmdldENoYW5nZS5lbWl0KHRoaXMuaW50ZXJuYWxUYXJnZXQpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlQWN0aW9uU3RhdGVzKCk7XHJcbiAgICB9XHJcbiAgICBwdWJsaWMgZ2V0IHRhcmdldCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5pbnRlcm5hbFRhcmdldDtcclxuICAgIH1cclxuXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHB1YmxpYyB0YXJnZXRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEZsYWcgc2V0IHRvIGVuYWJsZSBvciBkaXNhYmxlIEFjdGlvbkNvbnRhaW5lckNvbXBvbmVudC5cclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzZXQgZW5hYmxlZChpbnB1dDogYm9vbGVhbikge1xyXG4gICAgICAgIHRoaXMuZW5hYmxlZEludGVybmFsID0gISFpbnB1dDtcclxuICAgICAgICB0aGlzLnVwZGF0ZUFjdGlvblN0YXRlcygpO1xyXG4gICAgfVxyXG4gICAgcHVibGljIGdldCBlbmFibGVkKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmVuYWJsZWRJbnRlcm5hbDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEV2ZW50IGVtaXR0ZXIgZmlyZWQgd2hlbmV2ZXIgYW4gZXJyb3Igb2NjdXJzIHdpdGhpbiBhIGNoaWxkIEFjdGlvbkl0ZW0uXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtbmF0aXZlXHJcbiAgICBwdWJsaWMgZXJyb3I6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBFdmVudCBlbWl0dGVyIGZpcmVkIHdoZW5ldmVyIGEgY2hpbGQgQWN0aW9uSXRlbSBpcyBleGVjdXRlZC5cclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgZXhlY3V0ZWQ6IEV2ZW50RW1pdHRlcjxBY3Rpb25JdGVtRXhlY3V0ZWRFdmVudEFyZ3M+ID0gbmV3IEV2ZW50RW1pdHRlcjxBY3Rpb25JdGVtRXhlY3V0ZWRFdmVudEFyZ3M+KCk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXR1cm5zIHRydWUgaWYgYW55IGNoaWxkIEFjdGlvbkl0ZW0gb2JqZWN0cyBoYXZlIHRoZSBidXN5IGZsYWcgc2V0LCBmYWxzZSBvdGhlcndpc2UuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXQgaXNCdXN5KCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmFjdGlvbnMgJiYgdGhpcy5hY3Rpb25zLnNvbWUoYWN0aW9uID0+IGFjdGlvbi5idXN5KTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIExpc3Qgb2YgYWxsIGNoaWxkIEFjdGlvbkl0ZW0gb2JqZWN0cywgYm90aCBIVE1MIGFuZCBwcm9ncmFtbWF0aWNhbGx5IGRlZmluZWQuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBjb21iaW5lZEFjdGlvbnM6IEFjdGlvbkl0ZW1bXSA9IFtdO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogTGlzdCBvZiBwcm9ncmFtbWF0aWNhbGx5IGRlZmluZWQgQWN0aW9uSXRlbSBvYmplY3RzIHN0b3JlZCBpbiBBY3Rpb25Db250YWluZXJDb21wb25lbnQuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBpbnRlcm5hbEFjdGlvbnM6IEFjdGlvbkl0ZW1bXSA9IFtdO1xyXG5cclxuICAgIC8qKlxyXG4gICAgKiBMaXN0IG9mIEhUTUwgZGVmaW5lZCBBY3Rpb25JdGVtIG9iamVjdHMgc3RvcmVkIGluIEFjdGlvbkNvbnRhaW5lckNvbXBvbmVudC5cclxuICAgICovXHJcbiAgICBwdWJsaWMgaW5saW5lQWN0aW9uczogQWN0aW9uSXRlbVtdID0gW107XHJcblxyXG4gICAgcHJpdmF0ZSBkaXNwbGF5SW5saW5lQWN0aW9uc0ZpcnN0SW50ZXJuYWwgPSBmYWxzZTtcclxuICAgIHByaXZhdGUgZW5hYmxlZEludGVybmFsID0gdHJ1ZTtcclxuICAgIHByaXZhdGUgaW50ZXJuYWxUYXJnZXQ6IGFueTtcclxuICAgIHByaXZhdGUgYWN0aW9uc0RpZmZlcjogSXRlcmFibGVEaWZmZXI8YW55PjtcclxuICAgIHByaXZhdGUgd2FzQnVzeTogYm9vbGVhbjtcclxuICAgIHByaXZhdGUgY29tcGxldGVkU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDb25zdHJ1Y3RvciBmb3IgQWN0aW9uQ29udGFpbmVyQ29tcG9uZW50LlxyXG4gICAgICovXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGl0ZXJhYmxlRGlmZmVyczogSXRlcmFibGVEaWZmZXJzLCBpbmplY3RvcjogSW5qZWN0b3IpIHtcclxuICAgICAgICBzdXBlcihpbmplY3Rvcik7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDYWxsYmFjayBtZXRob2QgcnVuIHdoZW4gQWN0aW9uQ29udGFpbmVyQ29tcG9uZW50IGlzIGluaXRpYWxpemVkLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgLy8gd2hlbmV2ZXIgYW4gYWN0aW9uIGV4ZWN1dGVzIG9yIGVycm9ycywgdXBkYXRlIGFjdGlvbiBzdGF0ZXNcclxuICAgICAgICAvLyBOT1RFOiBBbmd1bGFyIGRvY3VtZW50YXRpb24gc3RhdGVzIHRoYXQgd2Ugc2hvdWxkIG5vdCB0cmVhdCBldmVudCBlbWl0dGVycyBhcyBvYnNlcnZhYmxlcy5cclxuICAgICAgICAvLyBpbiB0aGUgZnV0dXJlIHRoaXMgY291bGQgYnJlYWsgaWYgYW5ndWxhciBjaGFuZ2VzIGl0cyBpbXBsZW1lbnRhdGlvbi5cclxuICAgICAgICAvLyBXZSBzaG91bGQgY29uc2lkZXIgYW5vdGhlciB3YXkgb2Ygc3VyZmFjaW5nIHRoaXMuXHJcbiAgICAgICAgdGhpcy5jb21wbGV0ZWRTdWJzY3JpcHRpb24gPSBtZXJnZSh0aGlzLmV4ZWN1dGVkLCB0aGlzLmVycm9yKS5zdWJzY3JpYmUobmV4dCA9PiB0aGlzLnVwZGF0ZUFjdGlvblN0YXRlcygpKTtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDYWxsYmFjayBtZXRob2QgcnVuIHdoZW4gQWN0aW9uQ29udGFpbmVyQ29tcG9uZW50IGlzIGRlc3Ryb3llZC5cclxuICAgICAqL1xyXG4gICAgcHVibGljIG5nT25EZXN0cm95KCkge1xyXG4gICAgICAgIHRoaXMuY29tcGxldGVkU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2FsbGJhY2sgbWV0aG9kIHJ1biBpbW1lZGlhdGVseSBhZnRlciBBbmd1bGFyIGhhcyBjb21wbGV0ZWQgaW5pdGlhbGl6YXRpb24gb2YgYWxsIG9mIEFjdGlvbkNvbnRhaW5lckNvbXBvbmVudCdzIGNvbnRlbnQuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBuZ0FmdGVyQ29udGVudEluaXQoKSB7XHJcbiAgICAgICAgdGhpcy5jaGlsZEFjdGlvbnMuY2hhbmdlcy5zdWJzY3JpYmUodmFsID0+IHtcclxuICAgICAgICAgICAgdGhpcy5pbmxpbmVBY3Rpb25zLmxlbmd0aCA9IDA7XHJcbiAgICAgICAgICAgIHRoaXMuaW5saW5lQWN0aW9ucy5wdXNoLmFwcGx5KHRoaXMuaW5saW5lQWN0aW9ucywgdGhpcy5jaGlsZEFjdGlvbnMubWFwKGl0ZW0gPT4gaXRlbS5hY3Rpb24pKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLmlubGluZUFjdGlvbnMgPSB0aGlzLmNoaWxkQWN0aW9ucy5tYXAoaXRlbSA9PiBpdGVtLmFjdGlvbik7XHJcbiAgICAgICAgdGhpcy51cGRhdGVBY3Rpb25zKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gTmVlZHMgbW9yZSBpbnZlc3RpZ2F0aW9uLlxyXG4gICAgLyoqXHJcbiAgICAgKiBBbmd1bGFyJ3MgZG9DaGVjayBsaWZlIGN5Y2xlIGhvb2suIE5vdGUgdGhlcmUgaXMgYW4gb2RkIGNvbmRpdGlvbiB3aGVuIHRyeWluZyB0byBjcmVhdGUgZHluYW1pYyB0b29sYmFyIGl0ZW1zIGlubGluZSB3aXRoIG5nIGZvci5cclxuICAgICAqIFNvbWVob3cgdGhpcyBtZXRob2QgaXMgbm90IGdldHRpbmcgY2FsbGVkIGluIHRpbWUgdG8gaW5pdGlhbGl6ZSB0aGUgYnV0dG9uIHRoYXQgaXMgY3JlYXRlZCBieSB0aGUgbmcgZm9yIHN0YXRlbWVudC5cclxuICAgICAqL1xyXG4gICAgcHVibGljIG5nRG9DaGVjaygpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5hY3Rpb25zRGlmZmVyKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGNoYW5nZXMgPSB0aGlzLmFjdGlvbnNEaWZmZXIuZGlmZih0aGlzLmFjdGlvbnMpO1xyXG4gICAgICAgICAgICBpZiAoY2hhbmdlcykge1xyXG4gICAgICAgICAgICAgICAgY2hhbmdlcy5mb3JFYWNoQWRkZWRJdGVtKChyZWNvcmQ6IEl0ZXJhYmxlQ2hhbmdlUmVjb3JkPEFjdGlvbkl0ZW0+KSA9PiAocmVjb3JkLml0ZW0pLmFkZGVkVG9Db250YWluZXIodGhpcy50YXJnZXQsIHRoaXMpKTtcclxuICAgICAgICAgICAgICAgIGNoYW5nZXMuZm9yRWFjaFJlbW92ZWRJdGVtKChyZWNvcmQ6IEl0ZXJhYmxlQ2hhbmdlUmVjb3JkPEFjdGlvbkl0ZW0+KSA9PiAocmVjb3JkLml0ZW0pLnJlbW92ZWRGcm9tQ29udGFpbmVyKCkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy53YXNCdXN5ICE9PSB0aGlzLmlzQnVzeSkge1xyXG4gICAgICAgICAgICB0aGlzLndhc0J1c3kgPSB0aGlzLmlzQnVzeTtcclxuICAgICAgICAgICAgdGhpcy51cGRhdGVBY3Rpb25TdGF0ZXMoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBNZXRob2QgdG8gdXBkYXRlIGFsbCBjaGlsZCBBY3Rpb25JdGVtIG9iamVjdHMgc3RhdGVzLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgdXBkYXRlQWN0aW9uU3RhdGVzKCkge1xyXG4gICAgICAgIGlmICh0aGlzLmFjdGlvbnMgJiYgdGhpcy5hY3Rpb25zLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgdGhpcy5hY3Rpb25zLmZvckVhY2goYWN0aW9uID0+IGFjdGlvbi5zZXRBY3Rpb25TdGF0ZSh0aGlzLnRhcmdldCwgdGhpcykpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHVwZGF0ZUFjdGlvbnMoKSB7XHJcbiAgICAgICAgdGhpcy5hY3Rpb25zRGlmZmVyID0gdGhpcy5pdGVyYWJsZURpZmZlcnMuZmluZCh0aGlzLmFjdGlvbnMpLmNyZWF0ZShudWxsKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZUFjdGlvblN0YXRlcygpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -205,7 +205,7 @@ export class AlertBarComponent extends CoreBaseComponent {
205
205
  ngOnDestroy() {
206
206
  this.alertBarService.unregister(this.id);
207
207
  if (this.dialogSubscriptions) {
208
- this.dialogSubscriptions.forEach(sub => sub.unsubscribe());
208
+ this.dialogSubscriptions.forEach(sub => sub?.unsubscribe());
209
209
  }
210
210
  }
211
211
  /**
@@ -336,4 +336,4 @@ __decorate([
336
336
  }], function () { return [{ type: i0.Injector }, { type: i1.AlertBarService }, { type: i2.DialogService }]; }, { id: [{
337
337
  type: Input
338
338
  }], assignClamped: [] }); })();
339
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnQtYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2FuZ3VsYXIvc3JjL2NvbnRyb2xzL2FsZXJ0LWJhci9hbGVydC1iYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYW5ndWxhci9zcmMvY29udHJvbHMvYWxlcnQtYmFyL2FsZXJ0LWJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUM5RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sOEVBQThFLENBQUM7QUFFeEcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzVFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUNuRixPQUFPLEVBQW1CLGVBQWUsRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7Ozs7Ozs7SUNHaEYsZ0NBR3lEO0lBSEcsd05BQVMsZUFBQSxvQ0FBMEIsQ0FBQSxJQUFDO0lBR3ZDLGlCQUFPOzs7O0lBRDlELCtGQUFpRyw4REFBQTs7O0lBYy9GLDZCQUFxRztJQUNuRyxZQUNGO0lBQUEsaUJBQUk7OztJQUYrRCw4Q0FBaUM7SUFDbEcsZUFDRjtJQURFLGlEQUNGOzs7SUFDQSw2QkFBb0c7SUFDbEcsWUFDRjtJQUFBLGlCQUFJOzs7SUFGOEQsOENBQWlDO0lBQ2pHLGVBQ0Y7SUFERSxpREFDRjs7OztJQUlJLDZCQUEyRjtJQUFwRCw2TkFBUyxnQkFBWSxTQUFDLGVBQUEsb0NBQTRCLENBQUEsSUFBQztJQUN4RixZQUNGO0lBQUEsaUJBQUk7OztJQURGLGVBQ0Y7SUFERSxxREFD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dkIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ssU0FBUyxDQUFDLEtBQVk7UUFDMUIsT0FBTyxLQUFLLENBQUMsUUFBUSxHQUFHLEdBQUcsR0FBRyxLQUFLLENBQUMsS0FBSyxHQUFHLEdBQUcsR0FBRyxLQUFLLENBQUMsT0FBTyxHQUFHLEdBQUcsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDO0lBQzNGLENBQUM7O3FHQTdLUSxpQkFBaUI7bUdBQWpCLGlCQUFpQjtRQ1o5Qiw4QkFBMkY7UUFFekYsb0VBK0RNO1FBQ1IsaUJBQU07O1FBaEVtQixlQUFTO1FBQVQsb0NBQVM7O0FEaUc5QjtJQUFDLFFBQVEsRUFBRTs7OztzREFHVjt1RkExRlEsaUJBQWlCO2NBSjdCLFNBQVM7MkJBQ0ksZUFBZTtxSEFZbEIsRUFBRTtrQkFEUixLQUFLO1lBZ0ZDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdG9yLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRGVib3VuY2UgfSBmcm9tICdAbWljcm9zb2Z0L3dpbmRvd3MtYWRtaW4tY2VudGVyLXNkay9jb3JlL2Jhc2UvZGVjb3JhdG9ycy9kZWJvdW5jZS5kZWNvcmF0b3JzJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IENvcmVCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tbW9uL2Jhc2UuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRGlhbG9nQ2hhbmdlRXZlbnQsIERpYWxvZ1NlcnZpY2UgfSBmcm9tICcuLi9kaWFsb2cvZGlhbG9nLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTdGF0dXNJY29uVHlwZSB9IGZyb20gJy4uL2ljb24vbGF5ZXJlZC1pY29uL3N0YXR1cy9zdGF0dXMtaWNvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBbGVydCwgQWxlcnRCYXIsIEFsZXJ0QmFyU2VydmljZSwgQWxlcnRTZXZlcml0eSB9IGZyb20gJy4vYWxlcnQtYmFyLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3NtZS1hbGVydC1iYXInLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2FsZXJ0LWJhci5jb21wb25lbnQuaHRtbCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEFsZXJ0QmFyQ29tcG9uZW50IGV4dGVuZHMgQ29yZUJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgQWxlcnRCYXIge1xyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgc291cmNlIG5hbWUgdG8gdXNlIGZvciBsb2dnaW5nXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBnZXQgbG9nU291cmNlTmFtZSgpIHtcclxuICAgICAgICByZXR1cm4gJ0FsZXJ0QmFyQ29tcG9uZW50JztcclxuICAgIH1cclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGlkOiBzdHJpbmc7XHJcbiAgICBwcml2YXRlIGRpYWxvZ1N1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XHJcblxyXG4gICAgLy8gS2VlcCB0aGUgYXJyYXkgdG8gbWFpbnRhaW4gdGhlIG9yZGVyIG9mIEFsZXJ0cyByZWNlaXZlZC5cclxuICAgIHB1YmxpYyBhbGVydHM6IEFsZXJ0W107XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbml0aWFsaXplcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUge0FsZXJ0QmFyQ29tcG9uZW50fSBjbGFzcy5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gYWxlcnRCYXJTZXJ2aWNlIFRoZSBhbGVydCBzZXJ2aWNlLlxyXG4gICAgICogQHBhcmFtIHJvdXRlciBUaGUgcm91dGVyLlxyXG4gICAgICogQHBhcmFtIGFjdGl2YXRlZFJvdXRlIFRoZSBhY3RpdmF0ZWQgcm91dGUuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihcclxuICAgICAgICBpbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICAgICAgcHJpdmF0ZSBhbGVydEJhclNlcnZpY2U6IEFsZXJ0QmFyU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIGRpYWxvZ1NlcnZpY2U6IERpYWxvZ1NlcnZpY2UpIHtcclxuICAgICAgICAgICAgc3VwZXIoaW5qZWN0b3IpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIG1ldGhvZCB0byBydW4gd2hlbiB0aGUgY29tcG9uZW50IGlzIGluaXRpYWxpemVkLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5hbGVydHMgPSBbXTtcclxuICAgICAgICB0aGlzLmFsZXJ0QmFyU2VydmljZS5yZWdpc3Rlcih0aGlzLCB0aGlzLmlkKTtcclxuXHJcbiAgICAgICAgdGhpcy5kaWFsb2dTdWJzY3JpcHRpb25zLnB1c2godGhpcy5kaWFsb2dTZXJ2aWNlLmNoYW5nZWQuc3Vic2NyaWJlKGV2ZW50ID0+IHtcclxuICAgICAgICAgICAgLy8gY2xlYXIgYWxsIGFsZXJ0cyBpZiB0aGUgbm90aWZpY2F0aW9uIGRpYWxvZyBvcGVuc1xyXG4gICAgICAgICAgICBpZiAoZXZlbnQuZGlhbG9nSWQgPT09IHRoaXMuZGlhbG9nU2VydmljZS5jb21tb25JZHMubm90aWZpY2F0aW9uc1BhbmUgJiYgZXZlbnQuY2hhbmdlRXZlbnQgPT09IERpYWxvZ0NoYW5nZUV2ZW50LlNob3cpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuYWxlcnRzID0gW107XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgbWV0aG9kIHRvIHJ1biB3aGVuIHRoZSBjb21wb25lbnQgaXMgZGVzdHJveWVkLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5hbGVydEJhclNlcnZpY2UudW5yZWdpc3Rlcih0aGlzLmlkKTtcclxuICAgICAgICBpZiAodGhpcy5kaWFsb2dTdWJzY3JpcHRpb25zKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZGlhbG9nU3Vic2NyaXB0aW9ucy5mb3JFYWNoKHN1YiA9PiBzdWIudW5zdWJzY3JpYmUoKSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogT3BlbiBkZXRhaWxzIHZpZXcgaW4gbm90aWZpY2F0aW9uIHBhbmVcclxuICAgICAqIEBwYXJhbSBhbGVydCB0aGUgYWxlcnQgY2xpY2tlZFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgb3Blbk5vdGlmaWNhdGlvbkRldGFpbHMoYWxlcnQ6IEFsZXJ0KSB7XHJcbiAgICAgICAgdGhpcy5kaWFsb2dTdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgICAgICAgIHRoaXMuZGlhbG9nU2VydmljZS5zaG93KHRoaXMuZGlhbG9nU2VydmljZS5jb21tb25JZHMubm90aWZpY2F0aW9uc1BhbmUsIHsgaWQ6IGFsZXJ0LmlkIH0pLnN1YnNjcmliZSgpXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIGNsaWNrIHRoZSBtZXNzYWdlIGV4cGFuZCBidXR0b25cclxuICAgICAqIEBwYXJhbSBldmVudCB0aGUgZXZlbnRcclxuICAgICAqIEBwYXJhbSBhbGVydCB0aGUgYWxlcnQgY2xpY2tlZFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgY2xpY2tFeHBhbmQoZXZlbnQ6IEV2ZW50LCBhbGVydDogQWxlcnQpIHtcclxuICAgICAgICBhbGVydC5pc0V4cGFuZGVkID0gIWFsZXJ0LmlzRXhwYW5kZWQ7XHJcbiAgICAgICAgdGhpcy5zdG9wQ2xpY2tQcm9wYWdhdGlvbihldmVudCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBzdG9wIHByb3BhZ2F0aW9uIG9uIHRoZSBldmVudFxyXG4gICAgICogQHBhcmFtIGV2ZW50IHRoZSBldmVudCB0byBzdG9wXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdG9wQ2xpY2tQcm9wYWdhdGlvbihldmVudDogRXZlbnQpIHtcclxuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEFzc2lnbnMgbmVlZHNDbGFtcCBwcm9wZXJseSB0byBnaXZlbiBhbGVydFxyXG4gICAgICogQHBhcmFtIGFsZXJ0IHRoZSBhbGVydFxyXG4gICAgICogQHBhcmFtIGV2ZW50IHRoZSBjbGFtcGVkIGV2ZW50XHJcbiAgICAgKi9cclxuICAgIEBEZWJvdW5jZSgpXHJcbiAgICBwdWJsaWMgYXNzaWduQ2xhbXBlZChhbGVydDogQWxlcnQsIGV2ZW50OiBhbnkpIHtcclxuICAgICAgICBhbGVydC5uZWVkc0NsYW1wID0gZXZlbnQuY2xhbXBlZDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgdGhlIHN0YXR1cyBzdHJpbmcgZm9yIHRoZSBzdGF0dXMgaWNvblxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBhbGVydCBUaGUgYWxlcnQuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXRTdGF0dXNTdHJpbmcoYWxlcnQ6IEFsZXJ0KTogU3RhdHVzSWNvblR5cGUge1xyXG4gICAgICAgIHN3aXRjaCAoYWxlcnQuc2V2ZXJpdHkpIHtcclxuICAgICAgICAgICAgY2FzZSBBbGVydFNldmVyaXR5LkVycm9yOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIFN0YXR1c0ljb25UeXBlLkVycm9yO1xyXG4gICAgICAgICAgICBjYXNlIEFsZXJ0U2V2ZXJpdHkuV2FybmluZzpcclxuICAgICAgICAgICAgICAgIHJldHVybiBTdGF0dXNJY29uVHlwZS5XYXJuaW5nO1xyXG4gICAgICAgICAgICBjYXNlIEFsZXJ0U2V2ZXJpdHkuU3VjY2VzczpcclxuICAgICAgICAgICAgICAgIHJldHVybiBTdGF0dXNJY29uVHlwZS5TdWNjZXNzO1xyXG4gICAgICAgICAgICBjYXNlIEFsZXJ0U2V2ZXJpdHkuSW5Qcm9ncmVzczpcclxuICAgICAgICAgICAgICAgIHJldHVybiBTdGF0dXNJY29uVHlwZS5Qcm9ncmVzcztcclxuICAgICAgICAgICAgY2FzZSBBbGVydFNldmVyaXR5LkluZm9ybWF0aW9uYWw6XHJcbiAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gU3RhdHVzSWNvblR5cGUuSW5mbztcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldEljb25UaXRsZShhbGVydDogQWxlcnQpOiBzdHJpbmcge1xyXG4gICAgICAgIHN3aXRjaCAoYWxlcnQuc2V2ZXJpdHkpIHtcclxuICAgICAgICAgICAgY2FzZSBBbGVydFNldmVyaXR5LkVycm9yOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuc3RyaW5ncy5Nc2Z0U21lU2hlbGwuQW5ndWxhci5BbGVydEJhci5FcnJvcjtcclxuICAgICAgICAgICAgY2FzZSBBbGVydFNldmVyaXR5Lldhcm5pbmc6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5zdHJpbmdzLk1zZnRTbWVTaGVsbC5Bbmd1bGFyLkFsZXJ0QmFyLldhcm5pbmc7XHJcbiAgICAgICAgICAgIGNhc2UgQWxlcnRTZXZlcml0eS5TdWNjZXNzOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuc3RyaW5ncy5Nc2Z0U21lU2hlbGwuQW5ndWxhci5BbGVydEJhci5TdWNjZXNzO1xyXG4gICAgICAgICAgICBjYXNlIEFsZXJ0U2V2ZXJpdHkuSW5Qcm9ncmVzczpcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnN0cmluZ3MuTXNmdFNtZVNoZWxsLkFuZ3VsYXIuQWxlcnRCYXIuSW5Qcm9ncmVzcztcclxuICAgICAgICAgICAgY2FzZSBBbGVydFNldmVyaXR5LkluZm9ybWF0aW9uYWw6XHJcbiAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5zdHJpbmdzLk1zZnRTbWVTaGVsbC5Bbmd1bGFyLkFsZXJ0QmFyLkluZm9ybWF0aW9uO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFNob3dzIGFuIGFsZXJ0LlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBhbGVydCBUaGUgYWxlcnQgdG8gc2hvdy5cclxuICAgICAqL1xyXG4gICAgcHVibGljIHNob3coYWxlcnQ6IEFsZXJ0KTogdm9pZCB7XHJcbiAgICAgICAgLy8gZG9uJ3Qgc2hvdyBwb3B1cCBpZiBub3RpZmljYXRpb25zIGFyZSBhbHJlYWR5IG9wZW5cclxuICAgICAgICBpZiAoIU1zZnRTbWUuZmluZCh0aGlzLmRpYWxvZ1NlcnZpY2UuYWN0aXZlRGlhbG9nc1N0YWNrLCBkaWFsb2cgPT4gZGlhbG9nLmlkID09PSB0aGlzLmRpYWxvZ1NlcnZpY2UuY29tbW9uSWRzLm5vdGlmaWNhdGlvbnNQYW5lKSkge1xyXG4gICAgICAgICAgICBjb25zdCBleGlzdGluZ0FsZXJ0ID0gdGhpcy5hbGVydHMuZmluZCh4ID0+IHguaWQgPT09IGFsZXJ0LmlkIHx8IHRoaXMuaW5kZXhOYW1lKHgpID09PSB0aGlzLmluZGV4TmFtZShhbGVydCkpO1xyXG4gICAgICAgICAgICBpZiAoZXhpc3RpbmdBbGVydCkge1xyXG4gICAgICAgICAgICAgICAgaWYgKGV4aXN0aW5nQWxlcnQuc2V0VGltZW91dCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNsZWFyVGltZW91dChleGlzdGluZ0FsZXJ0LnNldFRpbWVvdXQpO1xyXG4gICAgICAgICAgICAgICAgICAgIGV4aXN0aW5nQWxlcnQuc2V0VGltZW91dCA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5kaXNtaXNzKGV4aXN0aW5nQWxlcnQpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAoYWxlcnQuc2V0VGltZW91dCkge1xyXG4gICAgICAgICAgICAgICAgY2xlYXJUaW1lb3V0KGFsZXJ0LnNldFRpbWVvdXQpO1xyXG4gICAgICAgICAgICAgICAgYWxlcnQuc2V0VGltZW91dCA9IG51bGw7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHRoaXMuYWxlcnRzLnVuc2hpZnQoYWxlcnQpO1xyXG4gICAgICAgICAgICBhbGVydC5zZXRUaW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB7IHRoaXMuZGlzbWlzcyhhbGVydCk7IH0sIDcwMDApO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIERpc21pc3NlcyBhbiBhbGVydC5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gYWxlcnQgVGhlIGFsZXJ0IHRvIGRpc21pc3MuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBkaXNtaXNzKGFsZXJ0OiBBbGVydCk6IHZvaWQge1xyXG4gICAgICAgIE1zZnRTbWUucmVtb3ZlKHRoaXMuYWxlcnRzLCBhbGVydCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDcmVhdGUgdGhlIGluZGV4IG5hbWUgaW4gbWFwIGNvbGxlY3Rpb24uXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIGFsZXJ0IHRoZSBhbGVydFxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGluZGV4TmFtZShhbGVydDogQWxlcnQpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiBhbGVydC5zZXZlcml0eSArICc6JyArIGFsZXJ0LnRpdGxlICsgJzonICsgYWxlcnQubWVzc2FnZSArICc6JyArIGFsZXJ0Lm5vZGVOYW1lO1xyXG4gICAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJzbWUtbGF5ZXItbm90aWZpY2F0aW9uIHNtZS1sYXlvdXQtYWJzb2x1dGUgc21lLWxheW91dC1ub3RpZmljYXRpb24tcG9wdXAtbGlzdFwiPlxyXG5cclxuICA8ZGl2ICpuZ0Zvcj1cImxldCBhbGVydCBvZiBhbGVydHNcIiB0YWJpbmRleD1cIjBcIiAoY2xpY2spPVwib3Blbk5vdGlmaWNhdGlvbkRldGFpbHMoYWxlcnQpXCJcclxuICAgIGNsYXNzPVwic21lLWxheW91dC1ub3RpZmljYXRpb24tcG9wdXAgc21lLXNoYWRvdy1ub3RpZmljYXRpb24tcG9wdXAgc21lLW1hcmdpbi1yaWdodC1zbSBzbWUtbWFyZ2luLXRvcC1zbSBzbWUtYXJyYW5nZS1zdGFjay1oXHJcbiAgICBzbWUtYmFja2dyb3VuZC1jb2xvci1hbHQtNSBzbWUtYm9yZGVyLWNvbG9yLWFsdC01IHNtZS1wYWRkaW5nLXRvcC14cyBzbWUtcGFkZGluZy1sZWZ0LXNtIHNtZS1wYWRkaW5nLXJpZ2h0LXhzIHNtZS1wYWRkaW5nLWJvdHRvbS14cyBzbWUtYmVoYXZpb3ItaG92ZXItdHJpZ2dlclwiPlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJzbWUtYXJyYW5nZS1zdGFjay12XCI+XHJcbiAgICAgIDxzbWUtc3RhdHVzLWljb24gY2xhc3M9XCJzbWUtcGFkZGluZy1yaWdodC14cyBzbWUtcGFkZGluZy10b3AteHh4c1wiIFtzdGF0dXNdPVwiZ2V0U3RhdHVzU3RyaW5nKGFsZXJ0KVwiIHNpemU9XCIxNnB4XCJcclxuICAgICAgICBbdGl0bGVdPVwiZ2V0SWNvblRpdGxlKGFsZXJ0KVwiPjwvc21lLXN0YXR1cy1pY29uPlxyXG4gICAgICA8c3BhbiByb2xlPVwiYnV0dG9uXCIgKm5nSWY9XCJhbGVydC50aXRsZSAmJiBhbGVydC5uZWVkc0NsYW1wXCIgKGNsaWNrKT1cImNsaWNrRXhwYW5kKCRldmVudCwgYWxlcnQpXCJcclxuICAgICAgICBjbGFzcz1cInNtZS1idXR0b24tdHJpZ2dlciBzbWUtYnV0dG9uLWF1dG8td2lkdGggc21lLXBvc2l0aW9uLWZsZXgtbm9uZSBzbWUtcGFkZGluZy1pbnNldC1ub25lIHNtZS1pY29uIHNtZS1wYWRkaW5nLXRvcC14eHMgc21lLWJlaGF2aW9yLWhvdmVyLXRhcmdldC1zaG93XCJcclxuICAgICAgICBbbmdDbGFzc109XCJ7J3NtZS1pY29uLWNoZXZyb25Eb3duJzphbGVydC5pc0V4cGFuZGVkLCAnc21lLWljb24tY2hldnJvblJpZ2h0JzogIWFsZXJ0LmlzRXhwYW5kZWR9XCJcclxuICAgICAgICBbdGl0bGVdPVwic3RyaW5ncy5Nc2Z0U21lU2hlbGwuQW5ndWxhci5BbGVydEJhci5FeHBhbmRcIj48L3NwYW4+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IHJvbGU9XCJhbGVydFwiIGlkPVwic21lLWFsZXJ0LWJhci1jb250ZW50XCJcclxuICAgICAgY2xhc3M9XCJzbWUtYXJyYW5nZS1zdGFjay12IHNtZS1hcnJhbmdlLW92ZXJmbG93LWhpZGUteCBzbWUtYXJyYW5nZS13b3JkLXdyYXAtYnJlYWstd29yZCBzbWUtcG9zaXRpb24tc3RyZXRjaC1oXCI+XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwic21lLWxheW91dC1ub3RpZmljYXRpb24tbWVzc2FnZVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzbWUtYXJyYW5nZS1zdGFjay1oXCI+XHJcbiAgICAgICAgICA8cCBjbGFzcz1cInNtZS1zY3JlZW4tcmVhZGVyXCI+e3sgZ2V0SWNvblRpdGxlKGFsZXJ0KSB9fTwvcD5cclxuICAgICAgICAgIDxwIGNsYXNzPVwic21lLWZvbnQtZmFtaWx5LWJvbGQgc21lLWZvbnQtbGFiZWwgc21lLW1hcmdpbi1pbnNldC1ub25lIHNtZS1wYWRkaW5nLXRvcC14eHhzIHNtZS1wb3NpdGlvbi1zdHJldGNoLWggc21lLXBvc2l0aW9uLWxlZnQtaW5saW5lXCJcclxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhbGVydC50aXRsZSB8fCBhbGVydC5tZXNzYWdlXCI+e3sgYWxlcnQudGl0bGUgfHwgYWxlcnQubWVzc2FnZSB9fTwvcD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic21lLWFycmFuZ2Utc3RhY2stdlwiPlxyXG4gICAgICAgICAgPHAgKm5nSWY9XCJhbGVydC50aXRsZSAmJiAhYWxlcnQuaXNFeHBhbmRlZFwiIGNsYXNzPVwic21lLWZvbnQtbGFiZWxcIiBbYXR0ci5hcmlhLWxhYmVsXT1cImFsZXJ0Lm1lc3NhZ2VcIj5cclxuICAgICAgICAgICAge3sgYWxlcnQubWVzc2FnZSB9fVxyXG4gICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgPHAgKm5nSWY9XCJhbGVydC50aXRsZSAmJiBhbGVydC5pc0V4cGFuZGVkXCIgY2xhc3M9XCJzbWUtZm9udC1sYWJlbFwiIFthdHRyLmFyaWEtbGFiZWxdPVwiYWxlcnQubWVzc2FnZVwiPlxyXG4gICAgICAgICAgICB7eyBhbGVydC5tZXNzYWdlIH19XHJcbiAgICAgICAgICA8L3A+XHJcblxyXG4gICAgICAgICAgPGxhYmVsICpuZ0lmPVwiYWxlcnQubGlua3NcIj5cclxuICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgbGluayBvZiBhbGVydC5saW5rc1wiPlxyXG4gICAgICAgICAgICAgIDxhICpuZ0lmPVwibGluay5ldmVudFwiIGNsYXNzPVwic21lLWxpbmtcIiAoY2xpY2spPVwibGluay5ldmVudCgpO3N0b3BDbGlja1Byb3BhZ2F0aW9uKCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgIHt7IGxpbmsuZGlzcGxheVRleHQgfX1cclxuICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiFsaW5rLmV2ZW50ICYmIGxpbmsudXJpXCIgKGNsaWNrKT1cInN0b3BDbGlja1Byb3BhZ2F0aW9uKCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgIDxhICpuZ0lmPVwibGluay5pc0V4dGVybmFsTGlua1wiIGNsYXNzPVwic21lLWxpbmtcIiBbaHJlZl09XCJsaW5rLnVyaVwiIHRhcmdldD1cIl9ibGFua1wiPlxyXG4gICAgICAgICAgICAgICAgICB7eyBsaW5rLmRpc3BsYXlUZXh0IH19XHJcbiAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICA8YSAqbmdJZj1cIiFsaW5rLmlzRXh0ZXJuYWxMaW5rXCIgY2xhc3M9XCJzbWUtbGlua1wiIFtyb3V0ZXJMaW5rXT1cImxpbmsudXJpXCI+XHJcbiAgICAgICAgICAgICAgICAgIHt7IGxpbmsuZGlzcGxheVRleHQgfX1cclxuICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cInNtZS1hcnJhbmdlLXN0YWNrLWggc21lLWZvbnQtbGFiZWwgc21lLWNvbG9yLWJhc2UtNDBcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic21lLXBvc2l0aW9uLWZsZXgtYXV0byBzbWUtYXJyYW5nZS1lbGxpcHNpc1wiPnt7IGFsZXJ0Lm5vZGVOYW1lIH19PC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInNtZS1wb3NpdGlvbi1mbGV4LW5vbmUgc21lLW1hcmdpbi1sZWZ0LXh4c1wiPiB7eyBhbGVydC50aW1lc3RhbXAgfX08L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cInNtZS1hcnJhbmdlLXN0YWNrLXZcIj5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgIGNsYXNzPVwic21lLWJ1dHRvbi10cmlnZ2VyIHNtZS1idXR0b24tYXV0by13aWR0aCBzbWUtcG9zaXRpb24tZmxleC1ub25lIHNtZS1wYWRkaW5nLWluc2V0LW5vbmUgc21lLXBhZGRpbmctbGVmdC14eHMgc21lLXBhZGRpbmctcmlnaHQteHhzXCJcclxuICAgICAgICAoY2xpY2spPVwiZGlzbWlzcyhhbGVydClcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInN0cmluZ3MuTXNmdFNtZVNoZWxsLkFuZ3VsYXIuQWxlcnRCYXIuRGlzbWlzc0FyaWFMYWJlbFwiXHJcbiAgICAgICAgZGF0YS11dGEtaWQ9XCJjYW5jZWwtYWxlcnRcIiBhcmlhLWRlc2NyaWJlZGJ5PVwic21lLWFsZXJ0LWJhci1jb250ZW50XCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzbWUtaWNvbiBzbWUtaWNvbi1jYW5jZWxcIiBbdGl0bGVdPVwic3RyaW5ncy5Nc2Z0U21lU2hlbGwuQW5ndWxhci5BbGVydEJhci5EaXNtaXNzXCI+PC9zcGFuPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
339
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnQtYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2FuZ3VsYXIvc3JjL2NvbnRyb2xzL2FsZXJ0LWJhci9hbGVydC1iYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYW5ndWxhci9zcmMvY29udHJvbHMvYWxlcnQtYmFyL2FsZXJ0LWJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUM5RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sOEVBQThFLENBQUM7QUFFeEcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzVFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUNuRixPQUFPLEVBQW1CLGVBQWUsRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7Ozs7Ozs7SUNHaEYsZ0NBR3lEO0lBSEcsd05BQVMsZUFBQSxvQ0FBMEIsQ0FBQSxJQUFDO0lBR3ZDLGlCQUFPOzs7O0lBRDlELCtGQUFpRyw4REFBQTs7O0lBYy9GLDZCQUFxRztJQUNuRyxZQUNGO0lBQUEsaUJBQUk7OztJQUYrRCw4Q0FBaUM7SUFDbEcsZUFDRjtJQURFLGlEQUNGOzs7SUFDQSw2QkFBb0c7SUFDbEcsWUFDRjtJQUFBLGlCQUFJOzs7SUFGOEQsOENBQWlDO0lBQ2pHLGVBQ0Y7SUFERSxpREFDRjs7OztJQUlJLDZCQUEyRjtJQUFwRCw2TkFBUyxnQkFBWSxTQUFDLGVBQUEsb0NBQTRCLENBQUEsSUFBQztJQUN4RixZQUNGO0lBQUEsaUJBQUk7OztJQURGLGVBQ0Y7SUFERSxxREFD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dkIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ssU0FBUyxDQUFDLEtBQVk7UUFDMUIsT0FBTyxLQUFLLENBQUMsUUFBUSxHQUFHLEdBQUcsR0FBRyxLQUFLLENBQUMsS0FBSyxHQUFHLEdBQUcsR0FBRyxLQUFLLENBQUMsT0FBTyxHQUFHLEdBQUcsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDO0lBQzNGLENBQUM7O3FHQTdLUSxpQkFBaUI7bUdBQWpCLGlCQUFpQjtRQ1o5Qiw4QkFBMkY7UUFFekYsb0VBK0RNO1FBQ1IsaUJBQU07O1FBaEVtQixlQUFTO1FBQVQsb0NBQVM7O0FEaUc5QjtJQUFDLFFBQVEsRUFBRTs7OztzREFHVjt1RkExRlEsaUJBQWlCO2NBSjdCLFNBQVM7MkJBQ0ksZUFBZTtxSEFZbEIsRUFBRTtrQkFEUixLQUFLO1lBZ0ZDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdG9yLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRGVib3VuY2UgfSBmcm9tICdAbWljcm9zb2Z0L3dpbmRvd3MtYWRtaW4tY2VudGVyLXNkay9jb3JlL2Jhc2UvZGVjb3JhdG9ycy9kZWJvdW5jZS5kZWNvcmF0b3JzJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IENvcmVCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tbW9uL2Jhc2UuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRGlhbG9nQ2hhbmdlRXZlbnQsIERpYWxvZ1NlcnZpY2UgfSBmcm9tICcuLi9kaWFsb2cvZGlhbG9nLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTdGF0dXNJY29uVHlwZSB9IGZyb20gJy4uL2ljb24vbGF5ZXJlZC1pY29uL3N0YXR1cy9zdGF0dXMtaWNvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBbGVydCwgQWxlcnRCYXIsIEFsZXJ0QmFyU2VydmljZSwgQWxlcnRTZXZlcml0eSB9IGZyb20gJy4vYWxlcnQtYmFyLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3NtZS1hbGVydC1iYXInLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2FsZXJ0LWJhci5jb21wb25lbnQuaHRtbCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEFsZXJ0QmFyQ29tcG9uZW50IGV4dGVuZHMgQ29yZUJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgQWxlcnRCYXIge1xyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgc291cmNlIG5hbWUgdG8gdXNlIGZvciBsb2dnaW5nXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBnZXQgbG9nU291cmNlTmFtZSgpIHtcclxuICAgICAgICByZXR1cm4gJ0FsZXJ0QmFyQ29tcG9uZW50JztcclxuICAgIH1cclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGlkOiBzdHJpbmc7XHJcbiAgICBwcml2YXRlIGRpYWxvZ1N1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XHJcblxyXG4gICAgLy8gS2VlcCB0aGUgYXJyYXkgdG8gbWFpbnRhaW4gdGhlIG9yZGVyIG9mIEFsZXJ0cyByZWNlaXZlZC5cclxuICAgIHB1YmxpYyBhbGVydHM6IEFsZXJ0W107XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbml0aWFsaXplcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUge0FsZXJ0QmFyQ29tcG9uZW50fSBjbGFzcy5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gYWxlcnRCYXJTZXJ2aWNlIFRoZSBhbGVydCBzZXJ2aWNlLlxyXG4gICAgICogQHBhcmFtIHJvdXRlciBUaGUgcm91dGVyLlxyXG4gICAgICogQHBhcmFtIGFjdGl2YXRlZFJvdXRlIFRoZSBhY3RpdmF0ZWQgcm91dGUuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihcclxuICAgICAgICBpbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICAgICAgcHJpdmF0ZSBhbGVydEJhclNlcnZpY2U6IEFsZXJ0QmFyU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIGRpYWxvZ1NlcnZpY2U6IERpYWxvZ1NlcnZpY2UpIHtcclxuICAgICAgICAgICAgc3VwZXIoaW5qZWN0b3IpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIG1ldGhvZCB0byBydW4gd2hlbiB0aGUgY29tcG9uZW50IGlzIGluaXRpYWxpemVkLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5hbGVydHMgPSBbXTtcclxuICAgICAgICB0aGlzLmFsZXJ0QmFyU2VydmljZS5yZWdpc3Rlcih0aGlzLCB0aGlzLmlkKTtcclxuXHJcbiAgICAgICAgdGhpcy5kaWFsb2dTdWJzY3JpcHRpb25zLnB1c2godGhpcy5kaWFsb2dTZXJ2aWNlLmNoYW5nZWQuc3Vic2NyaWJlKGV2ZW50ID0+IHtcclxuICAgICAgICAgICAgLy8gY2xlYXIgYWxsIGFsZXJ0cyBpZiB0aGUgbm90aWZpY2F0aW9uIGRpYWxvZyBvcGVuc1xyXG4gICAgICAgICAgICBpZiAoZXZlbnQuZGlhbG9nSWQgPT09IHRoaXMuZGlhbG9nU2VydmljZS5jb21tb25JZHMubm90aWZpY2F0aW9uc1BhbmUgJiYgZXZlbnQuY2hhbmdlRXZlbnQgPT09IERpYWxvZ0NoYW5nZUV2ZW50LlNob3cpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuYWxlcnRzID0gW107XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgbWV0aG9kIHRvIHJ1biB3aGVuIHRoZSBjb21wb25lbnQgaXMgZGVzdHJveWVkLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5hbGVydEJhclNlcnZpY2UudW5yZWdpc3Rlcih0aGlzLmlkKTtcclxuICAgICAgICBpZiAodGhpcy5kaWFsb2dTdWJzY3JpcHRpb25zKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZGlhbG9nU3Vic2NyaXB0aW9ucy5mb3JFYWNoKHN1YiA9PiBzdWI/LnVuc3Vic2NyaWJlKCkpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIE9wZW4gZGV0YWlscyB2aWV3IGluIG5vdGlmaWNhdGlvbiBwYW5lXHJcbiAgICAgKiBAcGFyYW0gYWxlcnQgdGhlIGFsZXJ0IGNsaWNrZWRcclxuICAgICAqL1xyXG4gICAgcHVibGljIG9wZW5Ob3RpZmljYXRpb25EZXRhaWxzKGFsZXJ0OiBBbGVydCkge1xyXG4gICAgICAgIHRoaXMuZGlhbG9nU3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICAgICAgICB0aGlzLmRpYWxvZ1NlcnZpY2Uuc2hvdyh0aGlzLmRpYWxvZ1NlcnZpY2UuY29tbW9uSWRzLm5vdGlmaWNhdGlvbnNQYW5lLCB7IGlkOiBhbGVydC5pZCB9KS5zdWJzY3JpYmUoKVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBjbGljayB0aGUgbWVzc2FnZSBleHBhbmQgYnV0dG9uXHJcbiAgICAgKiBAcGFyYW0gZXZlbnQgdGhlIGV2ZW50XHJcbiAgICAgKiBAcGFyYW0gYWxlcnQgdGhlIGFsZXJ0IGNsaWNrZWRcclxuICAgICAqL1xyXG4gICAgcHVibGljIGNsaWNrRXhwYW5kKGV2ZW50OiBFdmVudCwgYWxlcnQ6IEFsZXJ0KSB7XHJcbiAgICAgICAgYWxlcnQuaXNFeHBhbmRlZCA9ICFhbGVydC5pc0V4cGFuZGVkO1xyXG4gICAgICAgIHRoaXMuc3RvcENsaWNrUHJvcGFnYXRpb24oZXZlbnQpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogc3RvcCBwcm9wYWdhdGlvbiBvbiB0aGUgZXZlbnRcclxuICAgICAqIEBwYXJhbSBldmVudCB0aGUgZXZlbnQgdG8gc3RvcFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc3RvcENsaWNrUHJvcGFnYXRpb24oZXZlbnQ6IEV2ZW50KSB7XHJcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBc3NpZ25zIG5lZWRzQ2xhbXAgcHJvcGVybHkgdG8gZ2l2ZW4gYWxlcnRcclxuICAgICAqIEBwYXJhbSBhbGVydCB0aGUgYWxlcnRcclxuICAgICAqIEBwYXJhbSBldmVudCB0aGUgY2xhbXBlZCBldmVudFxyXG4gICAgICovXHJcbiAgICBARGVib3VuY2UoKVxyXG4gICAgcHVibGljIGFzc2lnbkNsYW1wZWQoYWxlcnQ6IEFsZXJ0LCBldmVudDogYW55KSB7XHJcbiAgICAgICAgYWxlcnQubmVlZHNDbGFtcCA9IGV2ZW50LmNsYW1wZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXRzIHRoZSBzdGF0dXMgc3RyaW5nIGZvciB0aGUgc3RhdHVzIGljb25cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gYWxlcnQgVGhlIGFsZXJ0LlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0U3RhdHVzU3RyaW5nKGFsZXJ0OiBBbGVydCk6IFN0YXR1c0ljb25UeXBlIHtcclxuICAgICAgICBzd2l0Y2ggKGFsZXJ0LnNldmVyaXR5KSB7XHJcbiAgICAgICAgICAgIGNhc2UgQWxlcnRTZXZlcml0eS5FcnJvcjpcclxuICAgICAgICAgICAgICAgIHJldHVybiBTdGF0dXNJY29uVHlwZS5FcnJvcjtcclxuICAgICAgICAgICAgY2FzZSBBbGVydFNldmVyaXR5Lldhcm5pbmc6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gU3RhdHVzSWNvblR5cGUuV2FybmluZztcclxuICAgICAgICAgICAgY2FzZSBBbGVydFNldmVyaXR5LlN1Y2Nlc3M6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gU3RhdHVzSWNvblR5cGUuU3VjY2VzcztcclxuICAgICAgICAgICAgY2FzZSBBbGVydFNldmVyaXR5LkluUHJvZ3Jlc3M6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gU3RhdHVzSWNvblR5cGUuUHJvZ3Jlc3M7XHJcbiAgICAgICAgICAgIGNhc2UgQWxlcnRTZXZlcml0eS5JbmZvcm1hdGlvbmFsOlxyXG4gICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIFN0YXR1c0ljb25UeXBlLkluZm87XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXRJY29uVGl0bGUoYWxlcnQ6IEFsZXJ0KTogc3RyaW5nIHtcclxuICAgICAgICBzd2l0Y2ggKGFsZXJ0LnNldmVyaXR5KSB7XHJcbiAgICAgICAgICAgIGNhc2UgQWxlcnRTZXZlcml0eS5FcnJvcjpcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnN0cmluZ3MuTXNmdFNtZVNoZWxsLkFuZ3VsYXIuQWxlcnRCYXIuRXJyb3I7XHJcbiAgICAgICAgICAgIGNhc2UgQWxlcnRTZXZlcml0eS5XYXJuaW5nOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuc3RyaW5ncy5Nc2Z0U21lU2hlbGwuQW5ndWxhci5BbGVydEJhci5XYXJuaW5nO1xyXG4gICAgICAgICAgICBjYXNlIEFsZXJ0U2V2ZXJpdHkuU3VjY2VzczpcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnN0cmluZ3MuTXNmdFNtZVNoZWxsLkFuZ3VsYXIuQWxlcnRCYXIuU3VjY2VzcztcclxuICAgICAgICAgICAgY2FzZSBBbGVydFNldmVyaXR5LkluUHJvZ3Jlc3M6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5zdHJpbmdzLk1zZnRTbWVTaGVsbC5Bbmd1bGFyLkFsZXJ0QmFyLkluUHJvZ3Jlc3M7XHJcbiAgICAgICAgICAgIGNhc2UgQWxlcnRTZXZlcml0eS5JbmZvcm1hdGlvbmFsOlxyXG4gICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuc3RyaW5ncy5Nc2Z0U21lU2hlbGwuQW5ndWxhci5BbGVydEJhci5JbmZvcm1hdGlvbjtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTaG93cyBhbiBhbGVydC5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gYWxlcnQgVGhlIGFsZXJ0IHRvIHNob3cuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzaG93KGFsZXJ0OiBBbGVydCk6IHZvaWQge1xyXG4gICAgICAgIC8vIGRvbid0IHNob3cgcG9wdXAgaWYgbm90aWZpY2F0aW9ucyBhcmUgYWxyZWFkeSBvcGVuXHJcbiAgICAgICAgaWYgKCFNc2Z0U21lLmZpbmQodGhpcy5kaWFsb2dTZXJ2aWNlLmFjdGl2ZURpYWxvZ3NTdGFjaywgZGlhbG9nID0+IGRpYWxvZy5pZCA9PT0gdGhpcy5kaWFsb2dTZXJ2aWNlLmNvbW1vbklkcy5ub3RpZmljYXRpb25zUGFuZSkpIHtcclxuICAgICAgICAgICAgY29uc3QgZXhpc3RpbmdBbGVydCA9IHRoaXMuYWxlcnRzLmZpbmQoeCA9PiB4LmlkID09PSBhbGVydC5pZCB8fCB0aGlzLmluZGV4TmFtZSh4KSA9PT0gdGhpcy5pbmRleE5hbWUoYWxlcnQpKTtcclxuICAgICAgICAgICAgaWYgKGV4aXN0aW5nQWxlcnQpIHtcclxuICAgICAgICAgICAgICAgIGlmIChleGlzdGluZ0FsZXJ0LnNldFRpbWVvdXQpIHtcclxuICAgICAgICAgICAgICAgICAgICBjbGVhclRpbWVvdXQoZXhpc3RpbmdBbGVydC5zZXRUaW1lb3V0KTtcclxuICAgICAgICAgICAgICAgICAgICBleGlzdGluZ0FsZXJ0LnNldFRpbWVvdXQgPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMuZGlzbWlzcyhleGlzdGluZ0FsZXJ0KTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKGFsZXJ0LnNldFRpbWVvdXQpIHtcclxuICAgICAgICAgICAgICAgIGNsZWFyVGltZW91dChhbGVydC5zZXRUaW1lb3V0KTtcclxuICAgICAgICAgICAgICAgIGFsZXJ0LnNldFRpbWVvdXQgPSBudWxsO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB0aGlzLmFsZXJ0cy51bnNoaWZ0KGFsZXJ0KTtcclxuICAgICAgICAgICAgYWxlcnQuc2V0VGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4geyB0aGlzLmRpc21pc3MoYWxlcnQpOyB9LCA3MDAwKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBEaXNtaXNzZXMgYW4gYWxlcnQuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIGFsZXJ0IFRoZSBhbGVydCB0byBkaXNtaXNzLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZGlzbWlzcyhhbGVydDogQWxlcnQpOiB2b2lkIHtcclxuICAgICAgICBNc2Z0U21lLnJlbW92ZSh0aGlzLmFsZXJ0cywgYWxlcnQpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ3JlYXRlIHRoZSBpbmRleCBuYW1lIGluIG1hcCBjb2xsZWN0aW9uLlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBhbGVydCB0aGUgYWxlcnRcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBpbmRleE5hbWUoYWxlcnQ6IEFsZXJ0KTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gYWxlcnQuc2V2ZXJpdHkgKyAnOicgKyBhbGVydC50aXRsZSArICc6JyArIGFsZXJ0Lm1lc3NhZ2UgKyAnOicgKyBhbGVydC5ub2RlTmFtZTtcclxuICAgIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwic21lLWxheWVyLW5vdGlmaWNhdGlvbiBzbWUtbGF5b3V0LWFic29sdXRlIHNtZS1sYXlvdXQtbm90aWZpY2F0aW9uLXBvcHVwLWxpc3RcIj5cclxuXHJcbiAgPGRpdiAqbmdGb3I9XCJsZXQgYWxlcnQgb2YgYWxlcnRzXCIgdGFiaW5kZXg9XCIwXCIgKGNsaWNrKT1cIm9wZW5Ob3RpZmljYXRpb25EZXRhaWxzKGFsZXJ0KVwiXHJcbiAgICBjbGFzcz1cInNtZS1sYXlvdXQtbm90aWZpY2F0aW9uLXBvcHVwIHNtZS1zaGFkb3ctbm90aWZpY2F0aW9uLXBvcHVwIHNtZS1tYXJnaW4tcmlnaHQtc20gc21lLW1hcmdpbi10b3Atc20gc21lLWFycmFuZ2Utc3RhY2staFxyXG4gICAgc21lLWJhY2tncm91bmQtY29sb3ItYWx0LTUgc21lLWJvcmRlci1jb2xvci1hbHQtNSBzbWUtcGFkZGluZy10b3AteHMgc21lLXBhZGRpbmctbGVmdC1zbSBzbWUtcGFkZGluZy1yaWdodC14cyBzbWUtcGFkZGluZy1ib3R0b20teHMgc21lLWJlaGF2aW9yLWhvdmVyLXRyaWdnZXJcIj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwic21lLWFycmFuZ2Utc3RhY2stdlwiPlxyXG4gICAgICA8c21lLXN0YXR1cy1pY29uIGNsYXNzPVwic21lLXBhZGRpbmctcmlnaHQteHMgc21lLXBhZGRpbmctdG9wLXh4eHNcIiBbc3RhdHVzXT1cImdldFN0YXR1c1N0cmluZyhhbGVydClcIiBzaXplPVwiMTZweFwiXHJcbiAgICAgICAgW3RpdGxlXT1cImdldEljb25UaXRsZShhbGVydClcIj48L3NtZS1zdGF0dXMtaWNvbj5cclxuICAgICAgPHNwYW4gcm9sZT1cImJ1dHRvblwiICpuZ0lmPVwiYWxlcnQudGl0bGUgJiYgYWxlcnQubmVlZHNDbGFtcFwiIChjbGljayk9XCJjbGlja0V4cGFuZCgkZXZlbnQsIGFsZXJ0KVwiXHJcbiAgICAgICAgY2xhc3M9XCJzbWUtYnV0dG9uLXRyaWdnZXIgc21lLWJ1dHRvbi1hdXRvLXdpZHRoIHNtZS1wb3NpdGlvbi1mbGV4LW5vbmUgc21lLXBhZGRpbmctaW5zZXQtbm9uZSBzbWUtaWNvbiBzbWUtcGFkZGluZy10b3AteHhzIHNtZS1iZWhhdmlvci1ob3Zlci10YXJnZXQtc2hvd1wiXHJcbiAgICAgICAgW25nQ2xhc3NdPVwieydzbWUtaWNvbi1jaGV2cm9uRG93bic6YWxlcnQuaXNFeHBhbmRlZCwgJ3NtZS1pY29uLWNoZXZyb25SaWdodCc6ICFhbGVydC5pc0V4cGFuZGVkfVwiXHJcbiAgICAgICAgW3RpdGxlXT1cInN0cmluZ3MuTXNmdFNtZVNoZWxsLkFuZ3VsYXIuQWxlcnRCYXIuRXhwYW5kXCI+PC9zcGFuPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiByb2xlPVwiYWxlcnRcIiBpZD1cInNtZS1hbGVydC1iYXItY29udGVudFwiXHJcbiAgICAgIGNsYXNzPVwic21lLWFycmFuZ2Utc3RhY2stdiBzbWUtYXJyYW5nZS1vdmVyZmxvdy1oaWRlLXggc21lLWFycmFuZ2Utd29yZC13cmFwLWJyZWFrLXdvcmQgc21lLXBvc2l0aW9uLXN0cmV0Y2gtaFwiPlxyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cInNtZS1sYXlvdXQtbm90aWZpY2F0aW9uLW1lc3NhZ2VcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic21lLWFycmFuZ2Utc3RhY2staFwiPlxyXG4gICAgICAgICAgPHAgY2xhc3M9XCJzbWUtc2NyZWVuLXJlYWRlclwiPnt7IGdldEljb25UaXRsZShhbGVydCkgfX08L3A+XHJcbiAgICAgICAgICA8cCBjbGFzcz1cInNtZS1mb250LWZhbWlseS1ib2xkIHNtZS1mb250LWxhYmVsIHNtZS1tYXJnaW4taW5zZXQtbm9uZSBzbWUtcGFkZGluZy10b3AteHh4cyBzbWUtcG9zaXRpb24tc3RyZXRjaC1oIHNtZS1wb3NpdGlvbi1sZWZ0LWlubGluZVwiXHJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYWxlcnQudGl0bGUgfHwgYWxlcnQubWVzc2FnZVwiPnt7IGFsZXJ0LnRpdGxlIHx8IGFsZXJ0Lm1lc3NhZ2UgfX08L3A+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInNtZS1hcnJhbmdlLXN0YWNrLXZcIj5cclxuICAgICAgICAgIDxwICpuZ0lmPVwiYWxlcnQudGl0bGUgJiYgIWFsZXJ0LmlzRXhwYW5kZWRcIiBjbGFzcz1cInNtZS1mb250LWxhYmVsXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJhbGVydC5tZXNzYWdlXCI+XHJcbiAgICAgICAgICAgIHt7IGFsZXJ0Lm1lc3NhZ2UgfX1cclxuICAgICAgICAgIDwvcD5cclxuICAgICAgICAgIDxwICpuZ0lmPVwiYWxlcnQudGl0bGUgJiYgYWxlcnQuaXNFeHBhbmRlZFwiIGNsYXNzPVwic21lLWZvbnQtbGFiZWxcIiBbYXR0ci5hcmlhLWxhYmVsXT1cImFsZXJ0Lm1lc3NhZ2VcIj5cclxuICAgICAgICAgICAge3sgYWxlcnQubWVzc2FnZSB9fVxyXG4gICAgICAgICAgPC9wPlxyXG5cclxuICAgICAgICAgIDxsYWJlbCAqbmdJZj1cImFsZXJ0LmxpbmtzXCI+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGxpbmsgb2YgYWxlcnQubGlua3NcIj5cclxuICAgICAgICAgICAgICA8YSAqbmdJZj1cImxpbmsuZXZlbnRcIiBjbGFzcz1cInNtZS1saW5rXCIgKGNsaWNrKT1cImxpbmsuZXZlbnQoKTtzdG9wQ2xpY2tQcm9wYWdhdGlvbigkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICB7eyBsaW5rLmRpc3BsYXlUZXh0IH19XHJcbiAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhbGluay5ldmVudCAmJiBsaW5rLnVyaVwiIChjbGljayk9XCJzdG9wQ2xpY2tQcm9wYWdhdGlvbigkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICA8YSAqbmdJZj1cImxpbmsuaXNFeHRlcm5hbExpbmtcIiBjbGFzcz1cInNtZS1saW5rXCIgW2hyZWZdPVwibGluay51cmlcIiB0YXJnZXQ9XCJfYmxhbmtcIj5cclxuICAgICAgICAgICAgICAgICAge3sgbGluay5kaXNwbGF5VGV4dCB9fVxyXG4gICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgPGEgKm5nSWY9XCIhbGluay5pc0V4dGVybmFsTGlua1wiIGNsYXNzPVwic21lLWxpbmtcIiBbcm91dGVyTGlua109XCJsaW5rLnVyaVwiPlxyXG4gICAgICAgICAgICAgICAgICB7eyBsaW5rLmRpc3BsYXlUZXh0IH19XHJcbiAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJzbWUtYXJyYW5nZS1zdGFjay1oIHNtZS1mb250LWxhYmVsIHNtZS1jb2xvci1iYXNlLTQwXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInNtZS1wb3NpdGlvbi1mbGV4LWF1dG8gc21lLWFycmFuZ2UtZWxsaXBzaXNcIj57eyBhbGVydC5ub2RlTmFtZSB9fTwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzbWUtcG9zaXRpb24tZmxleC1ub25lIHNtZS1tYXJnaW4tbGVmdC14eHNcIj4ge3sgYWxlcnQudGltZXN0YW1wIH19PC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJzbWUtYXJyYW5nZS1zdGFjay12XCI+XHJcbiAgICAgIDxidXR0b25cclxuICAgICAgICBjbGFzcz1cInNtZS1idXR0b24tdHJpZ2dlciBzbWUtYnV0dG9uLWF1dG8td2lkdGggc21lLXBvc2l0aW9uLWZsZXgtbm9uZSBzbWUtcGFkZGluZy1pbnNldC1ub25lIHNtZS1wYWRkaW5nLWxlZnQteHhzIHNtZS1wYWRkaW5nLXJpZ2h0LXh4c1wiXHJcbiAgICAgICAgKGNsaWNrKT1cImRpc21pc3MoYWxlcnQpXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJzdHJpbmdzLk1zZnRTbWVTaGVsbC5Bbmd1bGFyLkFsZXJ0QmFyLkRpc21pc3NBcmlhTGFiZWxcIlxyXG4gICAgICAgIGRhdGEtdXRhLWlkPVwiY2FuY2VsLWFsZXJ0XCIgYXJpYS1kZXNjcmliZWRieT1cInNtZS1hbGVydC1iYXItY29udGVudFwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwic21lLWljb24gc21lLWljb24tY2FuY2VsXCIgW3RpdGxlXT1cInN0cmluZ3MuTXNmdFNtZVNoZWxsLkFuZ3VsYXIuQWxlcnRCYXIuRGlzbWlzc1wiPjwvc3Bhbj5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -152,4 +152,4 @@ export class BreadcrumbHeaderComponent extends SpacerBaseDirective {
152
152
  }], useToolTitleStyle: [{
153
153
  type: Input
154
154
  }] }); })();
155
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi1oZWFkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYW5ndWxhci9zcmMvY29udHJvbHMvYnJlYWRjcnVtYi1oZWFkZXIvYnJlYWRjcnVtYi1oZWFkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYW5ndWxhci9zcmMvY29udHJvbHMvYnJlYWRjcnVtYi1oZWFkZXIvYnJlYWRjcnVtYi1oZWFkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOzs7O0lDQWxFLHdCQUF5RDs7O0lBRDNELDZCQUE4RDtJQUM1RCx1R0FBeUQ7SUFDM0QsaUJBQUs7Ozs7SUFEWSxlQUF5QjtJQUF6QixzQ0FBeUI7OztJQUd4Qyx3QkFBeUQ7OztJQUQzRCw2QkFBeUU7SUFDdkUsdUdBQXlEO0lBQzNELGlCQUFLOzs7O0lBRFksZUFBeUI7SUFBekIsc0NBQXlCOzs7SUFMNUMsOEJBQStHO0lBQzdHLDhFQUVLO0lBQ0wsOEVBRUs7SUFDUCxpQkFBTTs7O0lBUHVCLCtEQUE4QztJQUNwRSxlQUF3QjtJQUF4QixnREFBd0I7SUFHeEIsZUFBdUI7SUFBdkIsK0NBQXVCOzs7O0lBTzFCLDZCQUF5TDtJQUEzRSxzTUFBUyxlQUFBLHVCQUFvQixDQUFBLElBQUM7SUFBNkMsWUFBYztJQUFBLGlCQUFJOzs7SUFBOUQsdURBQTJDO0lBQUMsZUFBYztJQUFkLG1DQUFjOzs7SUFDdk0sNEJBQXlHO0lBQUEsWUFBYztJQUFBLGlCQUFPOzs7SUFBakUsdURBQTJDO0lBQTFFLDJDQUE4QjtJQUE2QyxlQUFjO0lBQWQsbUNBQWM7OztJQUlySCw0QkFBd0I7SUFBQSw4QkFBYTtJQUFBLGlCQUFPOzs7SUFDNUMsNEJBQXdCO0lBQUEsNkJBQWE7SUFBQSxpQkFBTzs7O0lBQzVDLDJCQUF1Rjs7O0lBSHpGLGdDQUFrRjtJQUNoRix5R0FBNEM7SUFDNUMseUdBQTRDO0lBQzVDLHlHQUF1RjtJQUN6RixpQkFBTzs7O0lBSmEsc0RBQThCO0lBQ3pDLGVBQWU7SUFBZixnQ0FBZTtJQUNmLGVBQWU7SUFBZixnQ0FBZTtJQUNmLGVBQWU7SUFBZixnQ0FBZTs7O0lBUjFCLCtCQUErRjtJQUM3Riw0RkFBMk07SUFDM00sa0dBQThIO0lBRzlILGtHQUlPO0lBQ1QsaUJBQU87Ozs7SUFUbUYsZUFBb0I7SUFBcEIsd0NBQW9CO0lBQ3JHLGVBQXFCO0lBQXJCLHlDQUFxQjtJQUdyQixlQUFXO0lBQVgsK0JBQVc7OztJQUxwQiwwRkFVTzs7O0lBVm1ELGdEQUFvQjs7QUREaEY7O0dBRUc7QUFDSCxNQUFNLE9BQU8seUJBQTBCLFNBQVEsbUJBQW1CO0lBaUI5RCxZQUFZLFFBQWtCO1FBQzFCLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQWpCcEI7O1dBRUc7UUFDYSxvQkFBZSxHQUFxQixFQUFFLENBQUM7UUFPdkQ7O1dBRUc7UUFFSSxzQkFBaUIsR0FBRyxLQUFLLENBQUM7SUFJakMsQ0FBQztJQUVELElBQWMsYUFBYTtRQUN2QixPQUFPLDJCQUEyQixDQUFDO0lBQ3ZDLENBQUM7O3FIQXZCUSx5QkFBeUI7MkdBQXpCLHlCQUF5QjtRQ1p0QywwRUFPTTtRQUVOLDJIQVljOztRQXJCK0QscURBQWdDOzt1RkRZaEcseUJBQXlCO2NBUHJDLFNBQVM7MkJBQ0ksdUJBQXVCOzJEQVVqQixlQUFlO2tCQUE5QixLQUFLO1lBS1UsbUJBQW1CO2tCQUFsQyxLQUFLO1lBTUMsaUJBQWlCO2tCQUR2QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3RvciwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQnJlYWRjcnVtYlNlcGFyYXRvciB9IGZyb20gJy4uL2JyZWFkY3J1bWIvbW9kZWxzL2JyZWFkY3J1bWItc2VwYXJhdG9yJztcclxuaW1wb3J0IHsgU3BhY2VyQmFzZURpcmVjdGl2ZSB9IGZyb20gJy4uL2NvbW1vbi9zcGFjZXItYmFzZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBCcmVhZGNydW1iSXRlbSB9IGZyb20gJy4vbW9kZWxzL2JyZWFkY3J1bWItaXRlbSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnc21lLWJyZWFkY3J1bWItaGVhZGVyJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9icmVhZGNydW1iLWhlYWRlci5jb21wb25lbnQuaHRtbCdcclxufSlcclxuLyoqXHJcbiAqIEBkZXByZWNhdGVkIHNpbmNlICcwOS8wMS8xOCdcclxuICovXHJcbmV4cG9ydCBjbGFzcyBCcmVhZGNydW1iSGVhZGVyQ29tcG9uZW50IGV4dGVuZHMgU3BhY2VyQmFzZURpcmVjdGl2ZSB7XHJcbiAgICAvKipcclxuICAgICAqIExpc3Qgb2YgaXRlbXMgdG8gYmUgc2hvd24gb24gdGhlIGJyZWFkY3J1bWIuXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIHB1YmxpYyBicmVhZGNydW1iSXRlbXM6IEJyZWFkY3J1bWJJdGVtW10gPSBbXTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNlcGFyYXRvciB0byBiZSB1c2UgdG8gc2VwYXJhdGUgYnJlYWRjcnVtYiBpdGVtcy5cclxuICAgICAqL1xyXG4gICAgQElucHV0KCkgcHVibGljIGJyZWFkY3J1bWJTZXBhcmF0b3I6IEJyZWFkY3J1bWJTZXBhcmF0b3I7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJdCBpbmRpY2F0ZXMgd2hldGhlciB0byB1c2UgdG9vbCB0aXRsZSBzdHlsZS5cclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyB1c2VUb29sVGl0bGVTdHlsZSA9IGZhbHNlO1xyXG4gICAgXHJcbiAgICBjb25zdHJ1Y3RvcihpbmplY3RvcjogSW5qZWN0b3IpIHtcclxuICAgICAgICBzdXBlcihpbmplY3Rvcik7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIGdldCBsb2dTb3VyY2VOYW1lKCkge1xyXG4gICAgICAgIHJldHVybiAnQnJlYWRjcnVtYkhlYWRlckNvbXBvbmVudCc7XHJcbiAgICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInRvb2wtaGVhZGVyLWJveFwiIFtzdHlsZS5wYWRkaW5nTGVmdF09XCJub0xlZnRQYWRkaW5nID8gMCA6IG51bGxcIiAqbmdJZj1cImJyZWFkY3J1bWJJdGVtcy5sZW5ndGggPiAwXCI+XHJcbiAgPGgzICpuZ0lmPVwiIXVzZVRvb2xUaXRsZVN0eWxlXCIgY2xhc3M9XCJzbWUtcG9zaXRpb24tZmxleC1ub25lXCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udGVudFwiPjwvbmctY29udGFpbmVyPlxyXG4gIDwvaDM+XHJcbiAgPGg0ICpuZ0lmPVwidXNlVG9vbFRpdGxlU3R5bGVcIiBjbGFzcz1cInRvb2wtaGVhZGVyIHNtZS1wb3NpdGlvbi1mbGV4LW5vbmVcIj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250ZW50XCI+PC9uZy1jb250YWluZXI+XHJcbiAgPC9oND5cclxuPC9kaXY+XHJcblxyXG48bmctdGVtcGxhdGUgI2NvbnRlbnQ+XHJcbiAgPHNwYW4gY2xhc3M9XCJzbWUtYmVoYXZpb3ItaG92ZXItdHJpZ2dlclwiICpuZ0Zvcj1cImxldCBpdGVtIG9mIGJyZWFkY3J1bWJJdGVtczsgbGV0IGxhc3QgPSBsYXN0XCI+XHJcbiAgICA8YSBjbGFzcz1cInNtZS1iZWhhdmlvci1ob3Zlci10YXJnZXQtdW5kZXJsaW5lIHNtZS1mb2N1cy16b25lXCIgdGFiaW5kZXg9XCIwXCIgcm9sZT1cImxpbmtcIiAqbmdJZj1cIml0ZW0uY2xpY2thYmxlXCIgKGNsaWNrKT1cIml0ZW0uY29tbWFuZCgkZXZlbnQpXCIgW2NsYXNzLnNtZS1mb250LWZhbWlseS1ub3JtYWxdPVwiIWl0ZW0uYm9sZFwiPnt7aXRlbS5sYWJlbH19PC9hPlxyXG4gICAgPHNwYW4gKm5nSWY9XCIhaXRlbS5jbGlja2FibGVcIiBbYXR0ci5hcmlhLWxhYmVsXT1cIml0ZW0ubGFiZWxcIiBbY2xhc3Muc21lLWZvbnQtZmFtaWx5LW5vcm1hbF09XCIhaXRlbS5ib2xkXCI+e3tpdGVtLmxhYmVsfX08L3NwYW4+XHJcblxyXG4gICAgPCEtLSBzZXBhcmF0b3IgLS0+XHJcbiAgICA8c3BhbiAqbmdJZj1cIiFsYXN0XCIgW25nU3dpdGNoXT1icmVhZGNydW1iU2VwYXJhdG9yIGNsYXNzPVwic21lLWZvbnQtZmFtaWx5LW5vcm1hbFwiPlxyXG4gICAgICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiMFwiPiZuYnNwO1xcJm5ic3A7PC9zcGFuPlxyXG4gICAgICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiMVwiPiZuYnNwOy8mbmJzcDs8L3NwYW4+XHJcbiAgICAgIDxzcGFuICpuZ1N3aXRjaENhc2U9XCIyXCIgY2xhc3M9XCJzbWUtaWNvbiBzbWUtaWNvbi1jaGV2cm9uUmlnaHQgc21lLWljb24tc2l6ZS1zbVwiPjwvc3Bhbj5cclxuICAgIDwvc3Bhbj5cclxuICA8L3NwYW4+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
155
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi1oZWFkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYW5ndWxhci9zcmMvY29udHJvbHMvYnJlYWRjcnVtYi1oZWFkZXIvYnJlYWRjcnVtYi1oZWFkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYW5ndWxhci9zcmMvY29udHJvbHMvYnJlYWRjcnVtYi1oZWFkZXIvYnJlYWRjcnVtYi1oZWFkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOzs7O0lDQWxFLHdCQUF5RDs7O0lBRDNELDZCQUE4RDtJQUM1RCx1R0FBeUQ7SUFDM0QsaUJBQUs7Ozs7SUFEWSxlQUF5QjtJQUF6QixzQ0FBeUI7OztJQUd4Qyx3QkFBeUQ7OztJQUQzRCw2QkFBeUU7SUFDdkUsdUdBQXlEO0lBQzNELGlCQUFLOzs7O0lBRFksZUFBeUI7SUFBekIsc0NBQXlCOzs7SUFMNUMsOEJBQStHO0lBQzdHLDhFQUVLO0lBQ0wsOEVBRUs7SUFDUCxpQkFBTTs7O0lBUHVCLCtEQUE4QztJQUNwRSxlQUF3QjtJQUF4QixnREFBd0I7SUFHeEIsZUFBdUI7SUFBdkIsK0NBQXVCOzs7O0lBTzFCLDZCQUF5TDtJQUEzRSxzTUFBUyxlQUFBLHVCQUFvQixDQUFBLElBQUM7SUFBNkMsWUFBYztJQUFBLGlCQUFJOzs7SUFBOUQsdURBQTJDO0lBQUMsZUFBYztJQUFkLG1DQUFjOzs7SUFDdk0sNEJBQXlHO0lBQUEsWUFBYztJQUFBLGlCQUFPOzs7SUFBakUsdURBQTJDO0lBQTFFLDJDQUE4QjtJQUE2QyxlQUFjO0lBQWQsbUNBQWM7OztJQUlySCw0QkFBd0I7SUFBQSw4QkFBYTtJQUFBLGlCQUFPOzs7SUFDNUMsNEJBQXdCO0lBQUEsNkJBQWE7SUFBQSxpQkFBTzs7O0lBQzVDLDJCQUF1Rjs7O0lBSHpGLGdDQUFrRjtJQUNoRix5R0FBNEM7SUFDNUMseUdBQTRDO0lBQzVDLHlHQUF1RjtJQUN6RixpQkFBTzs7O0lBSmEsc0RBQThCO0lBQ3pDLGVBQWU7SUFBZixnQ0FBZTtJQUNmLGVBQWU7SUFBZixnQ0FBZTtJQUNmLGVBQWU7SUFBZixnQ0FBZTs7O0lBUjFCLCtCQUErRjtJQUM3Riw0RkFBMk07SUFDM00sa0dBQThIO0lBRzlILGtHQUlPO0lBQ1QsaUJBQU87Ozs7SUFUbUYsZUFBb0I7SUFBcEIsd0NBQW9CO0lBQ3JHLGVBQXFCO0lBQXJCLHlDQUFxQjtJQUdyQixlQUFXO0lBQVgsK0JBQVc7OztJQUxwQiwwRkFVTzs7O0lBVm1ELGdEQUFvQjs7QUREaEY7O0dBRUc7QUFDSCxNQUFNLE9BQU8seUJBQTBCLFNBQVEsbUJBQW1CO0lBaUI5RCxZQUFZLFFBQWtCO1FBQzFCLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQWpCcEI7O1dBRUc7UUFDYSxvQkFBZSxHQUFxQixFQUFFLENBQUM7UUFPdkQ7O1dBRUc7UUFFSSxzQkFBaUIsR0FBRyxLQUFLLENBQUM7SUFJakMsQ0FBQztJQUVELElBQWMsYUFBYTtRQUN2QixPQUFPLDJCQUEyQixDQUFDO0lBQ3ZDLENBQUM7O3FIQXZCUSx5QkFBeUI7MkdBQXpCLHlCQUF5QjtRQ1p0QywwRUFPTTtRQUVOLDJIQVljOztRQXJCK0QscURBQWdDOzt1RkRZaEcseUJBQXlCO2NBUHJDLFNBQVM7MkJBQ0ksdUJBQXVCOzJEQVVqQixlQUFlO2tCQUE5QixLQUFLO1lBS1UsbUJBQW1CO2tCQUFsQyxLQUFLO1lBTUMsaUJBQWlCO2tCQUR2QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3RvciwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQnJlYWRjcnVtYlNlcGFyYXRvciB9IGZyb20gJy4uL2JyZWFkY3J1bWIvbW9kZWxzL2JyZWFkY3J1bWItc2VwYXJhdG9yJztcclxuaW1wb3J0IHsgU3BhY2VyQmFzZURpcmVjdGl2ZSB9IGZyb20gJy4uL2NvbW1vbi9zcGFjZXItYmFzZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBCcmVhZGNydW1iSXRlbSB9IGZyb20gJy4vbW9kZWxzL2JyZWFkY3J1bWItaXRlbSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnc21lLWJyZWFkY3J1bWItaGVhZGVyJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9icmVhZGNydW1iLWhlYWRlci5jb21wb25lbnQuaHRtbCdcclxufSlcclxuLyoqXHJcbiAqIEBkZXByZWNhdGVkIHNpbmNlICcwOS8wMS8xOCdcclxuICovXHJcbmV4cG9ydCBjbGFzcyBCcmVhZGNydW1iSGVhZGVyQ29tcG9uZW50IGV4dGVuZHMgU3BhY2VyQmFzZURpcmVjdGl2ZSB7XHJcbiAgICAvKipcclxuICAgICAqIExpc3Qgb2YgaXRlbXMgdG8gYmUgc2hvd24gb24gdGhlIGJyZWFkY3J1bWIuXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIHB1YmxpYyBicmVhZGNydW1iSXRlbXM6IEJyZWFkY3J1bWJJdGVtW10gPSBbXTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNlcGFyYXRvciB0byBiZSB1c2UgdG8gc2VwYXJhdGUgYnJlYWRjcnVtYiBpdGVtcy5cclxuICAgICAqL1xyXG4gICAgQElucHV0KCkgcHVibGljIGJyZWFkY3J1bWJTZXBhcmF0b3I6IEJyZWFkY3J1bWJTZXBhcmF0b3I7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJdCBpbmRpY2F0ZXMgd2hldGhlciB0byB1c2UgdG9vbCB0aXRsZSBzdHlsZS5cclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyB1c2VUb29sVGl0bGVTdHlsZSA9IGZhbHNlO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKGluamVjdG9yOiBJbmplY3Rvcikge1xyXG4gICAgICAgIHN1cGVyKGluamVjdG9yKTtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgZ2V0IGxvZ1NvdXJjZU5hbWUoKSB7XHJcbiAgICAgICAgcmV0dXJuICdCcmVhZGNydW1iSGVhZGVyQ29tcG9uZW50JztcclxuICAgIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwidG9vbC1oZWFkZXItYm94XCIgW3N0eWxlLnBhZGRpbmdMZWZ0XT1cIm5vTGVmdFBhZGRpbmcgPyAwIDogbnVsbFwiICpuZ0lmPVwiYnJlYWRjcnVtYkl0ZW1zLmxlbmd0aCA+IDBcIj5cclxuICA8aDMgKm5nSWY9XCIhdXNlVG9vbFRpdGxlU3R5bGVcIiBjbGFzcz1cInNtZS1wb3NpdGlvbi1mbGV4LW5vbmVcIj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250ZW50XCI+PC9uZy1jb250YWluZXI+XHJcbiAgPC9oMz5cclxuICA8aDQgKm5nSWY9XCJ1c2VUb29sVGl0bGVTdHlsZVwiIGNsYXNzPVwidG9vbC1oZWFkZXIgc21lLXBvc2l0aW9uLWZsZXgtbm9uZVwiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRlbnRcIj48L25nLWNvbnRhaW5lcj5cclxuICA8L2g0PlxyXG48L2Rpdj5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjY29udGVudD5cclxuICA8c3BhbiBjbGFzcz1cInNtZS1iZWhhdmlvci1ob3Zlci10cmlnZ2VyXCIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgYnJlYWRjcnVtYkl0ZW1zOyBsZXQgbGFzdCA9IGxhc3RcIj5cclxuICAgIDxhIGNsYXNzPVwic21lLWJlaGF2aW9yLWhvdmVyLXRhcmdldC11bmRlcmxpbmUgc21lLWZvY3VzLXpvbmVcIiB0YWJpbmRleD1cIjBcIiByb2xlPVwibGlua1wiICpuZ0lmPVwiaXRlbS5jbGlja2FibGVcIiAoY2xpY2spPVwiaXRlbS5jb21tYW5kKCRldmVudClcIiBbY2xhc3Muc21lLWZvbnQtZmFtaWx5LW5vcm1hbF09XCIhaXRlbS5ib2xkXCI+e3tpdGVtLmxhYmVsfX08L2E+XHJcbiAgICA8c3BhbiAqbmdJZj1cIiFpdGVtLmNsaWNrYWJsZVwiIFthdHRyLmFyaWEtbGFiZWxdPVwiaXRlbS5sYWJlbFwiIFtjbGFzcy5zbWUtZm9udC1mYW1pbHktbm9ybWFsXT1cIiFpdGVtLmJvbGRcIj57e2l0ZW0ubGFiZWx9fTwvc3Bhbj5cclxuXHJcbiAgICA8IS0tIHNlcGFyYXRvciAtLT5cclxuICAgIDxzcGFuICpuZ0lmPVwiIWxhc3RcIiBbbmdTd2l0Y2hdPWJyZWFkY3J1bWJTZXBhcmF0b3IgY2xhc3M9XCJzbWUtZm9udC1mYW1pbHktbm9ybWFsXCI+XHJcbiAgICAgIDxzcGFuICpuZ1N3aXRjaENhc2U9XCIwXCI+Jm5ic3A7XFwmbmJzcDs8L3NwYW4+XHJcbiAgICAgIDxzcGFuICpuZ1N3aXRjaENhc2U9XCIxXCI+Jm5ic3A7LyZuYnNwOzwvc3Bhbj5cclxuICAgICAgPHNwYW4gKm5nU3dpdGNoQ2FzZT1cIjJcIiBjbGFzcz1cInNtZS1pY29uIHNtZS1pY29uLWNoZXZyb25SaWdodCBzbWUtaWNvbi1zaXplLXNtXCI+PC9zcGFuPlxyXG4gICAgPC9zcGFuPlxyXG4gIDwvc3Bhbj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19