@microsoft/windows-admin-center-sdk 4.167.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 (499) hide show
  1. package/angular/esm2020/src/controls/accordion/accordion-panel/accordion-panel.component.mjs +36 -12
  2. package/angular/esm2020/src/controls/form/form-field/array/array-form-field-accessibility-manager.service.mjs +59 -0
  3. package/angular/esm2020/src/controls/form/form-field/array/array-form-field.component.mjs +24 -35
  4. package/angular/esm2020/src/controls/form/form-field/form-field-accessibility-manager-base.service.mjs +105 -0
  5. package/angular/esm2020/src/controls/form/form-field/list/list-form-field-accessibility-manager.service.mjs +38 -0
  6. package/angular/esm2020/src/controls/form/form-field/list/list-form-field.component.mjs +56 -38
  7. package/angular/esm2020/src/controls/form/form-field/ordered-list/ordered-list-form-field-accessibility-manager.service.mjs +54 -0
  8. package/angular/esm2020/src/controls/form/form-field/ordered-list/ordered-list-form-field.component.mjs +67 -67
  9. package/angular/esm2020/src/controls/form/forms.module.mjs +19 -2
  10. package/angular/esm2020/src/controls/page-alert-bar/page-alert-bar.component.mjs +4 -4
  11. package/angular/esm2020/src/controls/snap-in-extension/snap-in-extension.component.mjs +1 -1
  12. package/angular/esm2020/src/controls/wizard/models/wizard-step-snap-in-output.mjs +1 -1
  13. package/angular/esm2020/src/controls/wizard-lite/wizard-navigation-button/wizard-navigation-button.component.mjs +3 -3
  14. package/angular/esm2020/src/data/extension-broker/snap-in-listener.mjs +80 -0
  15. package/angular/esm2020/src/data/index.mjs +2 -1
  16. package/angular/fesm2015/microsoft-windows-admin-center-sdk-angular.mjs +539 -167
  17. package/angular/fesm2015/microsoft-windows-admin-center-sdk-angular.mjs.map +1 -1
  18. package/angular/fesm2020/microsoft-windows-admin-center-sdk-angular.mjs +521 -167
  19. package/angular/fesm2020/microsoft-windows-admin-center-sdk-angular.mjs.map +1 -1
  20. package/angular/src/controls/accordion/accordion-panel/accordion-panel.component.d.ts +13 -4
  21. package/angular/src/controls/form/form-field/array/array-form-field-accessibility-manager.service.d.ts +38 -0
  22. package/angular/src/controls/form/form-field/array/array-form-field.component.d.ts +3 -1
  23. package/angular/src/controls/form/form-field/form-field-accessibility-manager-base.service.d.ts +37 -0
  24. package/angular/src/controls/form/form-field/list/list-form-field-accessibility-manager.service.d.ts +25 -0
  25. package/angular/src/controls/form/form-field/list/list-form-field.component.d.ts +12 -2
  26. package/angular/src/controls/form/form-field/ordered-list/ordered-list-form-field-accessibility-manager.service.d.ts +37 -0
  27. package/angular/src/controls/form/form-field/ordered-list/ordered-list-form-field.component.d.ts +12 -8
  28. package/angular/src/controls/wizard/models/wizard-step-snap-in-output.d.ts +1 -1
  29. package/{core → angular/src}/data/extension-broker/snap-in-listener.d.ts +49 -46
  30. package/angular/src/data/index.d.ts +1 -0
  31. package/core/async/cancellation.js +312 -0
  32. package/core/async/index.js +312 -0
  33. package/core/async/progress.js +312 -0
  34. package/core/azure/azure-constants.js +312 -0
  35. package/core/azure/azure-logging.js +312 -0
  36. package/core/azure/azure-manager.js +312 -0
  37. package/core/azure/models/aadAppConfig-data.js +312 -0
  38. package/core/azure/models/azureArcStatusEnum.js +312 -0
  39. package/core/azure/models/azureTokenResult-data.js +312 -0
  40. package/core/azure/resources/deployment-operation-request-body.js +312 -0
  41. package/core/azure/resources/deployment-operation-response.js +312 -0
  42. package/core/azure/resources/location-data.js +315 -0
  43. package/core/azure/resources/resource-group-data.js +312 -0
  44. package/core/azure/resources/subscription-data.js +312 -0
  45. package/core/base/data-store/browser-storage-data-store.js +315 -0
  46. package/core/base/data-store/cached-data-store.js +312 -0
  47. package/core/base/data-store/data-store.js +312 -0
  48. package/core/base/data-store/local-data-store.js +312 -0
  49. package/core/base/data-store/memory-data-store.js +312 -0
  50. package/core/base/data-store/session-data-store.js +312 -0
  51. package/core/base/date/date-like.js +312 -0
  52. package/core/base/date/date-range.js +312 -0
  53. package/core/base/date/date-time.js +312 -0
  54. package/core/base/date/date-type.js +312 -0
  55. package/core/base/date/time-unit.js +312 -0
  56. package/core/base/decorators/base.js +312 -0
  57. package/core/base/decorators/debounce.decorators.js +312 -0
  58. package/core/base/decorators/delay.decorator.js +315 -0
  59. package/core/base/decorators/yield.decorator.js +312 -0
  60. package/core/base/environment.js +312 -0
  61. package/core/base/json.js +312 -0
  62. package/core/base/msft-sme.mock.js +316 -0
  63. package/core/base/polyfills/array.js +315 -0
  64. package/core/base/polyfills/string.js +312 -0
  65. package/core/base/rxjs-lifetime-manager.js +312 -0
  66. package/core/base/utilities.js +312 -0
  67. package/core/base/versioned-object.js +312 -0
  68. package/core/data/accessibility-manager.js +312 -0
  69. package/core/data/active-directory/active-directory.js +312 -0
  70. package/core/data/active-directory/models/account-info.js +312 -0
  71. package/core/data/active-directory/models/active-directory-search-options.js +312 -0
  72. package/core/data/active-directory/models/search-type.js +312 -0
  73. package/core/data/animation.js +312 -0
  74. package/core/data/app-context.js +312 -0
  75. package/core/data/asset-manager.js +315 -0
  76. package/core/data/base64-array-buffer.js +312 -0
  77. package/core/data/batch-connection.js +312 -0
  78. package/core/data/cim-connection.js +312 -0
  79. package/core/data/cim-stream.js +312 -0
  80. package/core/data/cim.js +312 -0
  81. package/core/data/column-picker.js +312 -0
  82. package/core/data/cookie.js +312 -0
  83. package/core/data/core-environment.js +315 -0
  84. package/core/data/crypto.js +312 -0
  85. package/core/data/deployment-share.js +312 -0
  86. package/core/data/disposable.js +312 -0
  87. package/core/data/electron.js +315 -0
  88. package/core/data/error-extended.js +312 -0
  89. package/core/data/extension-broker/dialog-listener.js +312 -0
  90. package/core/data/extension-broker/extension-broker.js +312 -0
  91. package/core/data/extension-broker/extension-listener.js +312 -0
  92. package/core/data/extension-broker/model/extension-broker-request-payload.js +312 -0
  93. package/core/data/extension-broker/model/extension-broker-response-error.js +312 -0
  94. package/core/data/extension-broker/model/extension-broker-response-payload.js +312 -0
  95. package/core/data/extension-broker/model/extension-entries.js +315 -0
  96. package/core/data/extension-broker/model/extension-instance.js +315 -0
  97. package/core/data/extension-broker/model/extension-rect.js +312 -0
  98. package/core/data/extension-broker/model/extension-search-options.js +312 -0
  99. package/core/data/extension-broker/service-listener.js +312 -0
  100. package/core/data/extension-broker/worker-listener.js +312 -0
  101. package/core/data/extension-broker/worker-set.js +312 -0
  102. package/core/data/file-transfer.js +312 -0
  103. package/core/data/gateway-connection.js +312 -0
  104. package/core/data/gateway-status.js +312 -0
  105. package/core/data/gateway-url-builder.js +312 -0
  106. package/core/data/gateway-url-translator.js +316 -0
  107. package/core/data/gateway-urls.js +312 -0
  108. package/core/data/globalization.js +315 -0
  109. package/core/data/http-constants.js +315 -0
  110. package/core/data/http.js +312 -0
  111. package/core/data/jobs/jobs-manager.js +312 -0
  112. package/core/data/jobs/models/job-credentials.js +312 -0
  113. package/core/data/jobs/models/job-node.js +312 -0
  114. package/core/data/jobs/models/job-paginated-response.js +315 -0
  115. package/core/data/jobs/models/job-pagination-options.js +315 -0
  116. package/core/data/jobs/models/job.js +312 -0
  117. package/core/data/jobs/models/node-job.js +312 -0
  118. package/core/data/jobs/models/powershell-job.js +312 -0
  119. package/core/data/language.js +315 -0
  120. package/core/data/lifetime-data.js +312 -0
  121. package/core/data/localization-manager.js +312 -0
  122. package/core/data/native-q.js +312 -0
  123. package/core/data/net.d.ts.map +1 -1
  124. package/core/data/net.js +313 -1
  125. package/core/data/net.js.map +1 -1
  126. package/core/data/node-connection.d.ts.map +1 -1
  127. package/core/data/node-connection.js +312 -0
  128. package/core/data/node-connection.js.map +1 -1
  129. package/core/data/node-extension-install.js +312 -0
  130. package/core/data/powershell-alternate.js +312 -0
  131. package/core/data/powershell-batch.js +312 -0
  132. package/core/data/powershell-connection.js +312 -0
  133. package/core/data/powershell-crypto.js +312 -0
  134. package/core/data/powershell-stream.js +312 -0
  135. package/core/data/powershell.js +312 -0
  136. package/core/data/query-cache.js +312 -0
  137. package/core/data/resource-cache.js +312 -0
  138. package/core/data/schedule-reboot.js +312 -0
  139. package/core/data/settings-manager.js +312 -0
  140. package/core/data/settings-manger.mock.js +312 -0
  141. package/core/data/sme-extension.js +312 -0
  142. package/core/data/ssh-stream.js +312 -0
  143. package/core/data/units.js +312 -0
  144. package/core/data/uri-builder.js +315 -0
  145. package/core/data/wdac-operations.js +312 -0
  146. package/core/data/websocket-stream.js +312 -0
  147. package/core/diagnostics/error-monitor.js +312 -0
  148. package/core/diagnostics/log-level.js +312 -0
  149. package/core/diagnostics/log-record.js +312 -0
  150. package/core/diagnostics/logging-constants.js +312 -0
  151. package/core/diagnostics/logging.js +312 -0
  152. package/core/diagnostics/logging.mock.js +312 -0
  153. package/core/diagnostics/sme-web-telemetry-models.js +312 -0
  154. package/core/diagnostics/sme-web-telemetry.d.ts +1 -2
  155. package/core/diagnostics/sme-web-telemetry.d.ts.map +1 -1
  156. package/core/diagnostics/sme-web-telemetry.js +336 -15
  157. package/core/diagnostics/sme-web-telemetry.js.map +1 -1
  158. package/core/diagnostics/telemetry-control-type.js +312 -0
  159. package/core/diagnostics/telemetry-options.js +312 -0
  160. package/core/diagnostics/telemetry-record.js +312 -0
  161. package/core/dom/dom.js +312 -0
  162. package/core/frame/frame-connection.js +312 -0
  163. package/core/frame/frame-connection.mock.js +312 -0
  164. package/core/frame/shell-navigation-connection.js +312 -0
  165. package/core/generated/powershell-scripts.js +312 -0
  166. package/core/generated/strings.js +312 -0
  167. package/core/host/host-core-manager.js +312 -0
  168. package/core/host/host-core-message-type.js +312 -0
  169. package/core/host/host-core-messages.js +312 -0
  170. package/core/index.d.ts +0 -1
  171. package/core/index.d.ts.map +1 -1
  172. package/core/index.js +312 -1
  173. package/core/index.js.map +1 -1
  174. package/core/manifest/environment-modules.js +312 -0
  175. package/core/manifest/manifest-loader.js +312 -0
  176. package/core/notification/client-notification-instance.js +312 -0
  177. package/core/notification/client-notification.js +312 -0
  178. package/core/notification/notification-connection.js +312 -0
  179. package/core/notification/notification-link-type.js +312 -0
  180. package/core/notification/notification-manager.js +312 -0
  181. package/core/notification/notification-message.js +312 -0
  182. package/core/notification/notification-state.js +312 -0
  183. package/core/notification/notification.js +312 -0
  184. package/core/notification/powershell-notification.js +312 -0
  185. package/core/notification/socket-signalr.js +312 -0
  186. package/core/notification/work-item-connection.js +312 -0
  187. package/core/notification/work-item-manager.js +312 -0
  188. package/core/notification/work-item-request.js +312 -0
  189. package/core/performance/performance-profile-data-type.js +312 -0
  190. package/core/performance/performance-profile-data.js +312 -0
  191. package/core/performance/performance-profile-database.js +312 -0
  192. package/core/performance/performance-profile-record.js +312 -0
  193. package/core/performance/performance-profile.d.ts.map +1 -1
  194. package/core/performance/performance-profile.js +321 -9
  195. package/core/performance/performance-profile.js.map +1 -1
  196. package/core/performance/performance-tracker.js +312 -0
  197. package/core/polyfills.js +312 -0
  198. package/core/resources/scripts/public/crypto/Get-DecryptedDataFromNode.ps1 +216 -0
  199. package/core/resources/scripts/public/crypto/Get-EncryptionJWKOnNode.ps1 +216 -0
  200. package/core/resources/scripts/public/inventory/Get-CimWin32LogicalDisk.ps1 +218 -0
  201. package/core/resources/scripts/public/inventory/Get-CimWin32NetworkAdapter.ps1 +216 -0
  202. package/core/resources/scripts/public/inventory/Get-CimWin32PhysicalMemory.ps1 +216 -0
  203. package/core/resources/scripts/public/inventory/Get-CimWin32Processor.ps1 +216 -0
  204. package/core/resources/scripts/public/inventory/Get-ClusterInventory.ps1 +216 -0
  205. package/core/resources/scripts/public/inventory/Get-ClusterNodes.ps1 +216 -0
  206. package/core/resources/scripts/public/inventory/Get-ServerInventory.ps1 +216 -0
  207. package/core/rpc/alive/rpc-alive-client.js +312 -0
  208. package/core/rpc/alive/rpc-alive-handler.js +312 -0
  209. package/core/rpc/alive/rpc-alive-model.js +315 -0
  210. package/core/rpc/alive/rpc-alive-subject-server.js +312 -0
  211. package/core/rpc/alive/rpc-observable-alive-client.js +312 -0
  212. package/core/rpc/alive/rpc-observable-alive-model.js +312 -0
  213. package/core/rpc/alive/rpc-observable-alive-server.js +312 -0
  214. package/core/rpc/azure/rpc-azure-model.js +312 -0
  215. package/core/rpc/azure/rpc-azure-request-client.js +312 -0
  216. package/core/rpc/azure/rpc-azure-request-handler.js +312 -0
  217. package/core/rpc/azure/rpc-azure-request-subject-server.js +312 -0
  218. package/core/rpc/azure/rpc-azure-response-client.js +312 -0
  219. package/core/rpc/azure/rpc-azure-response-handler.js +315 -0
  220. package/core/rpc/credssp/rpc-credssp-model.js +312 -0
  221. package/core/rpc/credssp/rpc-credssp-request-client.js +312 -0
  222. package/core/rpc/credssp/rpc-credssp-request-handler.js +315 -0
  223. package/core/rpc/credssp/rpc-credssp-request-subject-server.js +312 -0
  224. package/core/rpc/credssp/rpc-credssp-response-client.js +312 -0
  225. package/core/rpc/credssp/rpc-credssp-response-handler.js +315 -0
  226. package/core/rpc/dialog/rpc-dialog-client.js +312 -0
  227. package/core/rpc/dialog/rpc-dialog-handler.js +312 -0
  228. package/core/rpc/dialog/rpc-dialog-model.js +312 -0
  229. package/core/rpc/dialog/rpc-dialog-subject-server.js +315 -0
  230. package/core/rpc/electron/rpc-electron-model.js +312 -0
  231. package/core/rpc/electron/rpc-electron-request-client.js +312 -0
  232. package/core/rpc/electron/rpc-electron-request-handler.js +312 -0
  233. package/core/rpc/electron/rpc-electron-request-subject-server.js +312 -0
  234. package/core/rpc/electron/rpc-electron-response-client.js +312 -0
  235. package/core/rpc/electron/rpc-electron-response-handler.js +312 -0
  236. package/core/rpc/elevate/rpc-observable-elevate-client.js +312 -0
  237. package/core/rpc/elevate/rpc-observable-elevate-model.js +312 -0
  238. package/core/rpc/elevate/rpc-observable-elevate-server.js +312 -0
  239. package/core/rpc/error-monitor/rpc-observable-error-monitor-client.js +312 -0
  240. package/core/rpc/error-monitor/rpc-observable-error-monitor-model.js +315 -0
  241. package/core/rpc/error-monitor/rpc-observable-error-monitor-server.js +312 -0
  242. package/core/rpc/extension-broker/rpc-extension-broker-model.js +315 -0
  243. package/core/rpc/extension-broker/rpc-extension-broker-module-request-subject-server.js +315 -0
  244. package/core/rpc/extension-broker/rpc-extension-broker-request-client.js +312 -0
  245. package/core/rpc/extension-broker/rpc-extension-broker-request-handler.js +312 -0
  246. package/core/rpc/extension-broker/rpc-extension-broker-request-subject-server.js +312 -0
  247. package/core/rpc/extension-broker/rpc-extension-broker-response-client.js +312 -0
  248. package/core/rpc/extension-broker/rpc-extension-broker-response-handler.js +312 -0
  249. package/core/rpc/extension-data/rpc-observable-extension-data-client.js +312 -0
  250. package/core/rpc/extension-data/rpc-observable-extension-data-model.js +312 -0
  251. package/core/rpc/extension-data/rpc-observable-extension-data-server.js +312 -0
  252. package/core/rpc/forward/rpc-forward-auto-client.js +312 -0
  253. package/core/rpc/forward/rpc-forward-down-client.js +315 -0
  254. package/core/rpc/forward/rpc-forward-down-handler.js +312 -0
  255. package/core/rpc/forward/rpc-forward-model.js +312 -0
  256. package/core/rpc/forward/rpc-forward-up-client.js +312 -0
  257. package/core/rpc/forward/rpc-forward-up-handler.js +312 -0
  258. package/core/rpc/forward/rpc-forward-up-subject-server.js +312 -0
  259. package/core/rpc/log/rpc-log-client.js +312 -0
  260. package/core/rpc/log/rpc-log-handler.js +312 -0
  261. package/core/rpc/log/rpc-log-model.js +312 -0
  262. package/core/rpc/log/rpc-log-subject-server.js +312 -0
  263. package/core/rpc/notification/rpc-notification-client.js +312 -0
  264. package/core/rpc/notification/rpc-notification-handler.js +312 -0
  265. package/core/rpc/notification/rpc-notification-model.js +312 -0
  266. package/core/rpc/notification/rpc-notification-subject-server.js +312 -0
  267. package/core/rpc/overlay/rpc-overlay-close-client.js +312 -0
  268. package/core/rpc/overlay/rpc-overlay-close-handler.js +312 -0
  269. package/core/rpc/overlay/rpc-overlay-model.js +312 -0
  270. package/core/rpc/overlay/rpc-overlay-open-client.js +315 -0
  271. package/core/rpc/overlay/rpc-overlay-open-handler.js +312 -0
  272. package/core/rpc/overlay/rpc-overlay-open-subject-server.js +312 -0
  273. package/core/rpc/performance/rpc-observable-performance-client.js +312 -0
  274. package/core/rpc/performance/rpc-observable-performance-config-client.js +312 -0
  275. package/core/rpc/performance/rpc-observable-performance-config-server.js +312 -0
  276. package/core/rpc/performance/rpc-observable-performance-model.js +312 -0
  277. package/core/rpc/performance/rpc-observable-performance-server.js +312 -0
  278. package/core/rpc/report/rpc-report-client.js +312 -0
  279. package/core/rpc/report/rpc-report-handler.js +312 -0
  280. package/core/rpc/report/rpc-report-model.js +312 -0
  281. package/core/rpc/report/rpc-report-subject-server.js +315 -0
  282. package/core/rpc/rpc-base.js +312 -0
  283. package/core/rpc/rpc-channel.js +312 -0
  284. package/core/rpc/rpc-forwarder.js +312 -0
  285. package/core/rpc/rpc-inbound-client.js +312 -0
  286. package/core/rpc/rpc-inbound.js +312 -0
  287. package/core/rpc/rpc-manager.js +312 -0
  288. package/core/rpc/rpc-module-subject-server.js +315 -0
  289. package/core/rpc/rpc-observable-client.js +312 -0
  290. package/core/rpc/rpc-observable-request.js +312 -0
  291. package/core/rpc/rpc-observable-result.js +312 -0
  292. package/core/rpc/rpc-observable-server.js +312 -0
  293. package/core/rpc/rpc-outbound-client.js +312 -0
  294. package/core/rpc/rpc-outbound.js +312 -0
  295. package/core/rpc/rpc-subject-server.js +312 -0
  296. package/core/rpc/rpc.js +312 -0
  297. package/core/rpc/seek/rpc-seek-client.js +312 -0
  298. package/core/rpc/seek/rpc-seek-handler.js +315 -0
  299. package/core/rpc/seek/rpc-seek-model.js +312 -0
  300. package/core/rpc/settings/rpc-settings-client.js +315 -0
  301. package/core/rpc/settings/rpc-settings-handler.js +312 -0
  302. package/core/rpc/settings/rpc-settings-model.js +312 -0
  303. package/core/rpc/settings/rpc-settings-subject-server.js +312 -0
  304. package/core/rpc/shell-navigate/rpc-shell-navigate-client.js +312 -0
  305. package/core/rpc/shell-navigate/rpc-shell-navigate-handler.js +312 -0
  306. package/core/rpc/shell-navigate/rpc-shell-navigate-model.js +312 -0
  307. package/core/rpc/shell-navigate/rpc-shell-navigate-subject-server.js +312 -0
  308. package/core/rpc/sme-extension/rpc-sme-extension-model.js +315 -0
  309. package/core/rpc/sme-extension/rpc-sme-extension-request-client.js +312 -0
  310. package/core/rpc/sme-extension/rpc-sme-extension-request-handler.js +312 -0
  311. package/core/rpc/sme-extension/rpc-sme-extension-request-subject-server.js +312 -0
  312. package/core/rpc/sme-extension/rpc-sme-extension-response-client.js +312 -0
  313. package/core/rpc/sme-extension/rpc-sme-extension-response-handler.js +312 -0
  314. package/core/rpc/telemetry/rpc-telemetry-client.js +312 -0
  315. package/core/rpc/telemetry/rpc-telemetry-handler.js +315 -0
  316. package/core/rpc/telemetry/rpc-telemetry-model.js +312 -0
  317. package/core/rpc/telemetry/rpc-telemetry-subject-server.js +312 -0
  318. package/core/rpc/update-data/rpc-update-data-client.js +312 -0
  319. package/core/rpc/update-data/rpc-update-data-handler.js +312 -0
  320. package/core/rpc/update-data/rpc-update-data-model.js +312 -0
  321. package/core/rpc/update-data/rpc-update-data-subject-server.js +312 -0
  322. package/core/rpc/update-theme/rpc-observable-update-theme-client.js +312 -0
  323. package/core/rpc/update-theme/rpc-observable-update-theme-model.js +312 -0
  324. package/core/rpc/update-theme/rpc-observable-update-theme-server.js +312 -0
  325. package/core/rpc/work-item/rpc-work-item-client.js +312 -0
  326. package/core/rpc/work-item/rpc-work-item-handler.js +312 -0
  327. package/core/rpc/work-item/rpc-work-item-model.js +312 -0
  328. package/core/rpc/work-item/rpc-work-item-subject-server.js +312 -0
  329. package/core/rpc/work-item-find/rpc-work-item-find-client.js +312 -0
  330. package/core/rpc/work-item-find/rpc-work-item-find-handler.js +312 -0
  331. package/core/rpc/work-item-find/rpc-work-item-find-model.js +312 -0
  332. package/core/rpc/work-item-find/rpc-work-item-find-subject-server.js +312 -0
  333. package/core/security/active-connection.js +312 -0
  334. package/core/security/authorization-manager.js +312 -0
  335. package/core/security/connection-manager-settings/common-connection-settings.js +315 -0
  336. package/core/security/connection-manager-settings/connection-settings.js +312 -0
  337. package/core/security/connection-manager.js +312 -0
  338. package/core/security/connection-stream.js +312 -0
  339. package/core/security/connection.js +312 -0
  340. package/core/security/credssp-manager.js +312 -0
  341. package/core/security/sign-on-manager.js +312 -0
  342. package/core/security/tag-manager.js +312 -0
  343. package/core/security/tool-condition-validator.js +312 -0
  344. package/core/security/tool-connection-query.js +312 -0
  345. package/core/security/user-principal.js +312 -0
  346. package/core/shared/cluster-inventory/cluster-inventory-cache.js +312 -0
  347. package/core/shared/cluster-inventory/cluster-inventory.js +312 -0
  348. package/core/shared/cluster-inventory/cluster-node-inventory.js +312 -0
  349. package/core/shared/gateway-inventory/gateway-inventory-cache.js +312 -0
  350. package/core/shared/gateway-inventory/gateway-inventory-detail-cache.js +312 -0
  351. package/core/shared/gateway-inventory/gateway-inventory-detail.js +312 -0
  352. package/core/shared/gateway-inventory/gateway-inventory.js +312 -0
  353. package/core/shared/inventory-query-caches.js +312 -0
  354. package/core/shared/server-inventory/server-inventory-cache.js +312 -0
  355. package/core/shared/server-inventory/server-inventory-detail-cache.js +312 -0
  356. package/core/shared/server-inventory/server-inventory-detail.js +315 -0
  357. package/core/shared/server-inventory/server-inventory.js +312 -0
  358. package/core/shared/shared-cache.js +312 -0
  359. package/core/shared/tool-inventory/tool-inventory-cache.js +312 -0
  360. package/core/shared/tool-inventory/tool-inventory.js +312 -0
  361. package/core/special.js +315 -0
  362. package/core/test-utilities/accessibility-tester.js +312 -0
  363. package/core/test-utilities/console.mock.js +312 -0
  364. package/core/test-utilities/jasmine-axe-matcher.js +312 -0
  365. package/core/test-utilities/wait-async.js +312 -0
  366. package/core/test.js +312 -0
  367. package/core/testing.js +312 -0
  368. package/core/workflow/persistent-local-storage.js +312 -0
  369. package/core/workflow/persistent-work-item-apply-state.js +316 -0
  370. package/core/workflow/persistent-work-item-state.js +312 -0
  371. package/core/workflow/persistent-work-item.js +315 -0
  372. package/core/workflow/persistent-workflow-builder.js +312 -0
  373. package/core/workflow/persistent-workflow-context.js +312 -0
  374. package/core/workflow/persistent-workflow-runner.js +312 -0
  375. package/core/workflow/persistent-workflow-snapshot.js +312 -0
  376. package/core/workflow/persistent-workflow-store.js +312 -0
  377. package/core/workflow/persistent-workflow.js +312 -0
  378. package/package.json +4 -4
  379. package/styles/fonts/SegoeUI/Bold/SegoeUIBold-5.27.woff +0 -0
  380. package/styles/fonts/SegoeUI/Light/SegoeUILight-5.27.woff +0 -0
  381. package/styles/fonts/SegoeUI/Normal/SegoeUI-5.27.woff +0 -0
  382. package/styles/fonts/SegoeUI/SemiBold/SegoeUISemiBold-5.27.woff +0 -0
  383. package/styles/fonts/SegoeUI/SemiLight/SegoeUISemiLight-5.27.woff +0 -0
  384. package/styles/fonts/ServMDL2/ServMDL2-4.66.woff +0 -0
  385. package/tools/build/webpack/index-html.transform.js +312 -0
  386. package/tools/build/webpack/shell.index-html.transform.js +312 -0
  387. package/tools/build/webpack/shell.webpack.config.js +312 -0
  388. package/tools/build/webpack/webpack.config.js +312 -0
  389. package/tools/code-formatter/.eslintrc.base.json +2 -1
  390. package/tools/code-formatter/lint.js +312 -0
  391. package/tools/code-formatter/utilities.js +316 -0
  392. package/tools/gulp-doc-generator/index.js +312 -0
  393. package/tools/gulp-manifest-resource/index.js +312 -0
  394. package/tools/gulp-manifest-validator/index.js +312 -0
  395. package/tools/gulp-merge-json-in-folders/index.js +312 -0
  396. package/tools/gulp-merge-json-in-folders/json-merge.js +312 -0
  397. package/tools/gulp-ps-cim/index.js +315 -0
  398. package/tools/gulp-ps-code/index.d.ts.map +1 -1
  399. package/tools/gulp-ps-code/index.js +323 -2
  400. package/tools/gulp-ps-code/index.js.map +1 -1
  401. package/tools/gulp-ps-code/ps-code-convert.js +312 -0
  402. package/tools/gulp-ps-manifest/index.js +312 -0
  403. package/tools/gulp-ps-module/index.d.ts.map +1 -1
  404. package/tools/gulp-ps-module/index.js +327 -3
  405. package/tools/gulp-ps-module/index.js.map +1 -1
  406. package/tools/gulp-ps-resjson/index.js +315 -0
  407. package/tools/gulp-resjson/index.js +315 -0
  408. package/tools/gulp-resjson/resjson-convert.js +312 -0
  409. package/tools/gulp-schema-form/index.js +312 -0
  410. package/tools/gulp-svg-code/index.js +312 -0
  411. package/tools/gulp-svg-code/svg-code-convert.js +312 -0
  412. package/tools/gulp-update-notes-resource/index.js +312 -0
  413. package/tools/module-template/build/increment-package-version.ps1 +216 -0
  414. package/tools/module-template/build/push-incremented-version.ps1 +216 -1
  415. package/tools/module-template/build/update-powershell-code.ps1 +216 -0
  416. package/tools/module-template/gulpfile.ts/common/clean.ts +2 -0
  417. package/tools/module-template/gulpfile.ts/common/pack.ts +17 -5
  418. package/tools/module-template/gulpfile.ts/common/powershell.ts +40 -2
  419. package/tools/pack-nuget/index.d.ts.map +1 -1
  420. package/tools/pack-nuget/index.js +321 -3
  421. package/tools/pack-nuget/index.js.map +1 -1
  422. package/tools/scripts/Invoke-PesterTest.ps1 +216 -0
  423. package/tools/scripts/New-ExtensionPackage.ps1 +373 -6
  424. package/tools/scripts/Search-NonAsciiText.ps1 +216 -0
  425. package/tools/scripts/package-information/README.md +3 -0
  426. package/tools/scripts/package-information/ms-logo.png +0 -0
  427. package/tools/test-runner/index.js +312 -0
  428. package/tools/utilities/index.js +312 -0
  429. package/tools/wac-cli/src/angular15/configs/angular-json-config.js +312 -0
  430. package/tools/wac-cli/src/angular15/configs/ci-build-yml-config.js +315 -0
  431. package/tools/wac-cli/src/angular15/configs/config.js +312 -0
  432. package/tools/wac-cli/src/angular15/configs/eslint-auto-fix-config.js +312 -0
  433. package/tools/wac-cli/src/angular15/configs/git-ignore-config.js +312 -0
  434. package/tools/wac-cli/src/angular15/configs/jasmine-test-config.js +315 -0
  435. package/tools/wac-cli/src/angular15/configs/package-json-config.js +312 -0
  436. package/tools/wac-cli/src/angular15/configs/replace-config.js +315 -0
  437. package/tools/wac-cli/src/angular15/configs/tsconfig-config.js +312 -0
  438. package/tools/wac-cli/src/angular15/configs/ui-test-automation-lagacy-config.js +312 -0
  439. package/tools/wac-cli/src/angular15/main.js +312 -0
  440. package/tools/wac-cli/src/angular15/upgrader/angular-json-upgrader.js +316 -0
  441. package/tools/wac-cli/src/angular15/upgrader/audit/ajax-response-updater.js +312 -0
  442. package/tools/wac-cli/src/angular15/upgrader/audit/css-syntax-error-updater.js +312 -0
  443. package/tools/wac-cli/src/angular15/upgrader/audit/declare-override-updater.js +312 -0
  444. package/tools/wac-cli/src/angular15/upgrader/audit/error-updater-angular15.js +312 -0
  445. package/tools/wac-cli/src/angular15/upgrader/audit/form-control-updater.js +312 -0
  446. package/tools/wac-cli/src/angular15/upgrader/audit/iif-updater-util.js +312 -0
  447. package/tools/wac-cli/src/angular15/upgrader/audit/load-children-callback-updater.js +315 -0
  448. package/tools/wac-cli/src/angular15/upgrader/audit/log-parser.js +312 -0
  449. package/tools/wac-cli/src/angular15/upgrader/audit/observable-throw-updater.js +312 -0
  450. package/tools/wac-cli/src/angular15/upgrader/audit/parameter-count-violation-updater.js +312 -0
  451. package/tools/wac-cli/src/angular15/upgrader/audit/string-replace-updater.js +312 -0
  452. package/tools/wac-cli/src/angular15/upgrader/audit/subjuct-next-updater-util.js +312 -0
  453. package/tools/wac-cli/src/angular15/upgrader/ci-build-yml-upgrader.js +312 -0
  454. package/tools/wac-cli/src/angular15/upgrader/eslint-auto-fix-upgrader.js +312 -0
  455. package/tools/wac-cli/src/angular15/upgrader/file-replacement-upgrader.js +312 -0
  456. package/tools/wac-cli/src/angular15/upgrader/git-ignore-upgrader.js +312 -0
  457. package/tools/wac-cli/src/angular15/upgrader/jasmine-test-upgrader.js +312 -0
  458. package/tools/wac-cli/src/angular15/upgrader/package-json-upgrader.js +312 -0
  459. package/tools/wac-cli/src/angular15/upgrader/remove-upgrader.js +315 -0
  460. package/tools/wac-cli/src/angular15/upgrader/replace-upgrader.js +312 -0
  461. package/tools/wac-cli/src/angular15/upgrader/tsconfig-upgrader.js +312 -0
  462. package/tools/wac-cli/src/angular15/upgrader/ui-test-automation-legacy-upgrader.js +312 -0
  463. package/tools/wac-cli/src/angular15/upgrader/version-json-upgrader.js +312 -0
  464. package/tools/wac-cli/src/angular15/utils/add-item.js +312 -0
  465. package/tools/wac-cli/src/angular15/utils/command-runner.js +312 -0
  466. package/tools/wac-cli/src/angular15/utils/file-comparison.js +315 -0
  467. package/tools/wac-cli/src/angular15/utils/file-replacement.js +312 -0
  468. package/tools/wac-cli/src/angular15/utils/file-writer.js +312 -0
  469. package/tools/wac-cli/src/angular15/utils/logger.js +312 -0
  470. package/tools/wac-cli/src/angular15/utils/main-debugger.js +312 -0
  471. package/tools/wac-cli/src/angular15/utils/relative-path.js +312 -0
  472. package/tools/wac-cli/src/angular15/utils/remove-item.js +312 -0
  473. package/tools/wac-cli/src/angular15/utils/space-generator.js +312 -0
  474. package/tools/wac-cli/src/angular15/utils/update-shell-references.js +316 -0
  475. package/tools/wac-cli/src/common.js +312 -0
  476. package/tools/wac-cli/src/create/main.js +312 -0
  477. package/tools/wac-cli/src/eslint/main.js +312 -0
  478. package/tools/wac-cli/src/index.js +312 -0
  479. package/tools/wac-cli/src/upgrade/error-updater.js +312 -0
  480. package/tools/wac-cli/src/upgrade/error-updaters/component-selector-updater.js +315 -0
  481. package/tools/wac-cli/src/upgrade/error-updaters/only-arrow-functions-updater.js +315 -0
  482. package/tools/wac-cli/src/upgrade/error-updaters/updater-lookup.js +312 -0
  483. package/tools/wac-cli/src/upgrade/file-updater.js +312 -0
  484. package/tools/wac-cli/src/upgrade/get-files.js +312 -0
  485. package/tools/wac-cli/src/upgrade/main.js +312 -0
  486. package/tools/wac-cli/src/upgrade/models/error-result.js +312 -0
  487. package/tools/wac-cli/src/upgrade/models/updater-interface.js +312 -0
  488. package/tools/wac-cli/src/upgrade/package-updater.js +312 -0
  489. package/tools/wac-cli/templates/wac-template/src/favicon.ico +0 -0
  490. package/tools/wac-cli/templates/wac-template/src/karma.conf.js +312 -0
  491. package/tools/wac-cli/templates/wac-template/src/resources/scripts/Get-Error.ps1 +216 -0
  492. package/tools/wac-cli/templates/wac-template/src/resources/scripts/Get-Exception.ps1 +216 -0
  493. package/tools/wac-cli/templates/wac-template/src/resources/scripts/Get-Process.ps1 +216 -1
  494. package/tools/wac-cli/templates/wac-template/src/resources/scripts/Get-Service.ps1 +216 -1
  495. package/tools/wac-cli/templates/wac-template/src/resources/scripts/Get-WinRmState.ps1 +216 -1
  496. package/core/data/extension-broker/snap-in-listener.d.ts.map +0 -1
  497. package/core/data/extension-broker/snap-in-listener.js +0 -73
  498. package/core/data/extension-broker/snap-in-listener.js.map +0 -1
  499. package/microsoft-windows-admin-center-sdk-4.167.0.tgz +0 -0
@@ -7,7 +7,7 @@ import { LogLevel } from '@microsoft/windows-admin-center-sdk/core/diagnostics/l
7
7
  import { Logging } from '@microsoft/windows-admin-center-sdk/core/diagnostics/logging';
8
8
  import { __decorate, __metadata, __param } from 'tslib';
9
9
  import { Debounce as Debounce$1 } from '@microsoft/windows-admin-center-sdk/core/base/decorators/debounce.decorators';
10
- import { Dom, ElementPosition } from '@microsoft/windows-admin-center-sdk/core/dom/dom';
10
+ import { Dom } from '@microsoft/windows-admin-center-sdk/core/dom/dom';
11
11
  import { marked } from 'marked';
12
12
  import * as i1$1 from '@angular/common';
13
13
  import { Location, CommonModule, DatePipe } from '@angular/common';
@@ -19,6 +19,7 @@ import { PerformanceTracker } from '@microsoft/windows-admin-center-sdk/core/per
19
19
  import { EnvironmentModule, EnvironmentModuleEntryPointType } from '@microsoft/windows-admin-center-sdk/core/manifest/environment-modules';
20
20
  import { ActiveConnection } from '@microsoft/windows-admin-center-sdk/core/security/active-connection';
21
21
  import { ConnectionManager } from '@microsoft/windows-admin-center-sdk/core/security/connection-manager';
22
+ import * as i1$3 from '@microsoft/windows-admin-center-sdk/core/rpc/rpc';
22
23
  import { Rpc } from '@microsoft/windows-admin-center-sdk/core/rpc/rpc';
23
24
  import { GatewayConnection } from '@microsoft/windows-admin-center-sdk/core/data/gateway-connection';
24
25
  import { Http } from '@microsoft/windows-admin-center-sdk/core/data/http';
@@ -44,10 +45,12 @@ import { Globalization } from '@microsoft/windows-admin-center-sdk/core/data/glo
44
45
  import { KeyCode } from '@microsoft/windows-admin-center-sdk/core/data/accessibility-manager';
45
46
  import { Yield as Yield$1 } from '@microsoft/windows-admin-center-sdk/core/base/decorators/yield.decorator';
46
47
  import { TagManager } from '@microsoft/windows-admin-center-sdk/core/security/tag-manager';
48
+ import * as i2 from '@microsoft/windows-admin-center-sdk/core/data/extension-broker/extension-broker';
47
49
  import { ExtensionBroker } from '@microsoft/windows-admin-center-sdk/core/data/extension-broker/extension-broker';
48
50
  import * as i1$2 from '@angular/forms';
49
51
  import { NG_VALUE_ACCESSOR, NG_ASYNC_VALIDATORS, NG_VALIDATORS, NgControl, ControlContainer, Validators, FormsModule, ReactiveFormsModule, FormGroup, FormControl, FormArray, FormBuilder } from '@angular/forms';
50
52
  import { Net } from '@microsoft/windows-admin-center-sdk/core/data/net';
53
+ import { Debounce as Debounce$2 } from '@microsoft/windows-admin-center-sdk/core/index';
51
54
  import { DateTime } from '@microsoft/windows-admin-center-sdk/core/base/date/date-time';
52
55
  import { DateType } from '@microsoft/windows-admin-center-sdk/core/base/date/date-type';
53
56
  import { TimeUnit } from '@microsoft/windows-admin-center-sdk/core/base/date/time-unit';
@@ -83,6 +86,7 @@ import { ScheduleRebootManager } from '@microsoft/windows-admin-center-sdk/core/
83
86
  import { headerConstants } from '@microsoft/windows-admin-center-sdk/core/data/http-constants';
84
87
  import { RpcObservableExtensionDataClient } from '@microsoft/windows-admin-center-sdk/core/rpc/extension-data/rpc-observable-extension-data-client';
85
88
  import { SmeExtension } from '@microsoft/windows-admin-center-sdk/core/data/sme-extension';
89
+ import { ExtensionClientListener } from '@microsoft/windows-admin-center-sdk/core/data/extension-broker/extension-listener';
86
90
 
87
91
  /**
88
92
  * Directive to provide notification or state changes for angulars @see RouterLink directive.
@@ -3723,7 +3727,7 @@ class TooltipHostInstance {
3723
3727
  })();
3724
3728
 
3725
3729
  const _c0$1I = ["tooltipContainer"];
3726
- const _c1$T = ["tooltipPointer"];
3730
+ const _c1$V = ["tooltipPointer"];
3727
3731
  function TooltipHostComponent_div_5_ng_container_1_Template(rf, ctx) {
3728
3732
  if (rf & 1) {
3729
3733
  i0.ɵɵelementContainerStart(0);
@@ -4107,7 +4111,7 @@ TooltipHostComponent.SCREEN_EDGE_MARGIN = 16;
4107
4111
  /** @nocollapse */ TooltipHostComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: TooltipHostComponent, selectors: [["sme-tooltip-host"]], viewQuery: function TooltipHostComponent_Query(rf, ctx) {
4108
4112
  if (rf & 1) {
4109
4113
  i0.ɵɵviewQuery(_c0$1I, 5);
4110
- i0.ɵɵviewQuery(_c1$T, 5);
4114
+ i0.ɵɵviewQuery(_c1$V, 5);
4111
4115
  }
4112
4116
  if (rf & 2) {
4113
4117
  let _t;
@@ -5384,14 +5388,14 @@ class ExtensionRootModule {
5384
5388
  })();
5385
5389
 
5386
5390
  const _c0$1G = ["*"];
5387
- const _c1$S = function (a0, a1) { return { "sme-icon-chevronDown": a0, "sme-icon-chevronRight": a1 }; };
5391
+ const _c1$U = function (a0, a1) { return { "sme-icon-chevronDown": a0, "sme-icon-chevronRight": a1 }; };
5388
5392
  function AccordionPanelComponent_span_4_Template(rf, ctx) {
5389
5393
  if (rf & 1) {
5390
5394
  i0.ɵɵelement(0, "span", 7);
5391
5395
  }
5392
5396
  if (rf & 2) {
5393
5397
  const ctx_r1 = i0.ɵɵnextContext();
5394
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction2(1, _c1$S, ctx_r1.opened, !ctx_r1.opened));
5398
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction2(1, _c1$U, ctx_r1.opened, !ctx_r1.opened));
5395
5399
  }
5396
5400
  }
5397
5401
  function AccordionPanelComponent_div_8_Template(rf, ctx) {
@@ -5408,9 +5412,19 @@ function AccordionPanelComponent_div_8_Template(rf, ctx) {
5408
5412
  const _c2$n = [[["sme-panel-control"]], "*"];
5409
5413
  const _c3$e = ["sme-panel-control", "*"];
5410
5414
  class PanelControlComponent {
5415
+ constructor() {
5416
+ /**
5417
+ * Best effort to make sure the buttons, texts can be focused.
5418
+ */
5419
+ this.defaultFocusZone = true;
5420
+ }
5411
5421
  }
5412
5422
  /** @nocollapse */ PanelControlComponent.ɵfac = function PanelControlComponent_Factory(t) { return new (t || PanelControlComponent)(); };
5413
- /** @nocollapse */ PanelControlComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: PanelControlComponent, selectors: [["sme-panel-control"]], ngContentSelectors: _c0$1G, decls: 1, vars: 0, template: function PanelControlComponent_Template(rf, ctx) {
5423
+ /** @nocollapse */ PanelControlComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: PanelControlComponent, selectors: [["sme-panel-control"]], hostVars: 2, hostBindings: function PanelControlComponent_HostBindings(rf, ctx) {
5424
+ if (rf & 2) {
5425
+ i0.ɵɵclassProp("sme-focus-zone", ctx.defaultFocusZone);
5426
+ }
5427
+ }, ngContentSelectors: _c0$1G, decls: 1, vars: 0, template: function PanelControlComponent_Template(rf, ctx) {
5414
5428
  if (rf & 1) {
5415
5429
  i0.ɵɵprojectionDef();
5416
5430
  i0.ɵɵprojection(0);
@@ -5423,10 +5437,22 @@ class PanelControlComponent {
5423
5437
  selector: 'sme-panel-control',
5424
5438
  template: '<ng-content></ng-content>'
5425
5439
  }]
5426
- }], null, null);
5440
+ }], null, { defaultFocusZone: [{
5441
+ type: HostBinding,
5442
+ args: ['class.sme-focus-zone']
5443
+ }] });
5427
5444
  })();
5428
5445
  class AccordionPanelComponent {
5429
5446
  constructor() {
5447
+ /**
5448
+ * It indicates whether the panel is opened.
5449
+ */
5450
+ this.opened = true;
5451
+ /**
5452
+ * It indicates whether the panel is initially opened.
5453
+ * This value will no longer be respected after the control fully loaded.
5454
+ */
5455
+ this.initialOpened = true;
5430
5456
  /**
5431
5457
  * It indicates whether the panel is expandable.
5432
5458
  */
@@ -5442,21 +5468,24 @@ class AccordionPanelComponent {
5442
5468
  */
5443
5469
  this.paddingInset = false;
5444
5470
  this.toggled = new EventEmitter();
5445
- this.opened = true;
5471
+ }
5472
+ ngOnInit() {
5473
+ this.opened = !!this.initialOpened;
5446
5474
  this.canClose = this.isExpandable;
5447
5475
  }
5448
5476
  /**
5449
5477
  * The on toggle function implementation.
5450
5478
  */
5451
5479
  onToggle() {
5452
- if (this.isExpandable) {
5453
- this.opened = !this.opened;
5454
- this.toggled.emit(this);
5480
+ if (!this.isExpandable) {
5481
+ return;
5455
5482
  }
5483
+ this.opened = !this.opened;
5484
+ this.toggled.emit(this);
5456
5485
  }
5457
5486
  }
5458
5487
  /** @nocollapse */ AccordionPanelComponent.ɵfac = function AccordionPanelComponent_Factory(t) { return new (t || AccordionPanelComponent)(); };
5459
- /** @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$e, 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) {
5488
+ /** @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$e, 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) {
5460
5489
  if (rf & 1) {
5461
5490
  i0.ɵɵprojectionDef(_c2$n);
5462
5491
  i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "div", 2, 3);
@@ -5475,6 +5504,7 @@ class AccordionPanelComponent {
5475
5504
  i0.ɵɵclassProp("sme-panel-header-border-radius", ctx.borderRadius)("sme-panel-header-border-radius-opened", ctx.borderRadius && ctx.opened);
5476
5505
  i0.ɵɵadvance(1);
5477
5506
  i0.ɵɵclassProp("sme-focus-zone", ctx.canClose)("sme-panel-header-border-radius", ctx.borderRadius)("sme-panel-header-border-radius-opened", ctx.borderRadius && ctx.opened);
5507
+ i0.ɵɵattribute("aria-expanded", !!ctx.opened)("aria-label", ctx.header);
5478
5508
  i0.ɵɵadvance(2);
5479
5509
  i0.ɵɵproperty("ngIf", ctx.canClose);
5480
5510
  i0.ɵɵadvance(1);
@@ -5488,10 +5518,10 @@ class AccordionPanelComponent {
5488
5518
  (function () {
5489
5519
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AccordionPanelComponent, [{
5490
5520
  type: Component,
5491
- 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" }]
5492
- }], function () { return []; }, { header: [{
5521
+ 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" }]
5522
+ }], null, { header: [{
5493
5523
  type: Input
5494
- }], opened: [{
5524
+ }], initialOpened: [{
5495
5525
  type: Input
5496
5526
  }], isExpandable: [{
5497
5527
  type: Input
@@ -6216,7 +6246,7 @@ __decorate([
6216
6246
  })();
6217
6247
 
6218
6248
  const _c0$1E = ["smeDropdownContent"];
6219
- const _c1$R = ["smeDropdownToggle"];
6249
+ const _c1$T = ["smeDropdownToggle"];
6220
6250
  const _c2$m = [[["", 8, "sme-dropdown-toggle"]], [["", 8, "sme-dropdown-content"]]];
6221
6251
  const _c3$d = function (a0, a1, a2, a3) { return { "sme-layout-hidden": a0, "sme-layout-inline-block": a1, "sme-arrange-overflow-auto-x": a2, "sme-arrange-overflow-auto-y": a3 }; };
6222
6252
  const _c4$9 = [".sme-dropdown-toggle", ".sme-dropdown-content"];
@@ -6409,7 +6439,7 @@ class DropdownComponent {
6409
6439
  /** @nocollapse */ DropdownComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DropdownComponent, selectors: [["sme-dropdown"]], viewQuery: function DropdownComponent_Query(rf, ctx) {
6410
6440
  if (rf & 1) {
6411
6441
  i0.ɵɵviewQuery(_c0$1E, 5);
6412
- i0.ɵɵviewQuery(_c1$R, 7);
6442
+ i0.ɵɵviewQuery(_c1$T, 7);
6413
6443
  }
6414
6444
  if (rf & 2) {
6415
6445
  let _t;
@@ -6843,7 +6873,7 @@ class ActionMenuComponent extends ActionContainerComponent {
6843
6873
  })();
6844
6874
 
6845
6875
  const _c0$1B = ["actionBarElement"];
6846
- const _c1$Q = ["dropDownButton"];
6876
+ const _c1$S = ["dropDownButton"];
6847
6877
  const _c2$l = ["dropDown"];
6848
6878
  function ActionBarComponent_sme_dynamic_action_item_2_Template(rf, ctx) {
6849
6879
  if (rf & 1) {
@@ -7209,7 +7239,7 @@ class ActionBarComponent extends ActionContainerComponent {
7209
7239
  /** @nocollapse */ ActionBarComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: ActionBarComponent, selectors: [["sme-action-bar"]], viewQuery: function ActionBarComponent_Query(rf, ctx) {
7210
7240
  if (rf & 1) {
7211
7241
  i0.ɵɵviewQuery(_c0$1B, 5);
7212
- i0.ɵɵviewQuery(_c1$Q, 5);
7242
+ i0.ɵɵviewQuery(_c1$S, 5);
7213
7243
  i0.ɵɵviewQuery(_c2$l, 5);
7214
7244
  }
7215
7245
  if (rf & 2) {
@@ -8068,7 +8098,7 @@ class ActionButtonAsyncComponent extends ActionItemComponent {
8068
8098
  })();
8069
8099
 
8070
8100
  const _c0$1A = ["dropDown"];
8071
- const _c1$P = ["dropDownButton"];
8101
+ const _c1$R = ["dropDownButton"];
8072
8102
  function ActionDropdownRendererComponent_p_4_Template(rf, ctx) {
8073
8103
  if (rf & 1) {
8074
8104
  i0.ɵɵelementStart(0, "p", 10);
@@ -8188,7 +8218,7 @@ ActionDropdownRendererComponent.dropdownUtaIdSuffix = '-dropdown';
8188
8218
  /** @nocollapse */ ActionDropdownRendererComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: ActionDropdownRendererComponent, selectors: [["sme-action-dropdown-renderer"]], viewQuery: function ActionDropdownRendererComponent_Query(rf, ctx) {
8189
8219
  if (rf & 1) {
8190
8220
  i0.ɵɵviewQuery(_c0$1A, 5);
8191
- i0.ɵɵviewQuery(_c1$P, 5);
8221
+ i0.ɵɵviewQuery(_c1$R, 5);
8192
8222
  }
8193
8223
  if (rf & 2) {
8194
8224
  let _t;
@@ -9259,7 +9289,7 @@ function EditableLayoutItemComponent_p_2_Template(rf, ctx) {
9259
9289
  }
9260
9290
  }
9261
9291
  const _c0$1v = function (a0) { return { "sme-cursor-pointer": a0 }; };
9262
- const _c1$O = function (a0) { return { "sme-corner-resizer-disabled": a0 }; };
9292
+ const _c1$Q = function (a0) { return { "sme-corner-resizer-disabled": a0 }; };
9263
9293
  const _c2$j = ["*"];
9264
9294
  /**
9265
9295
  * Individual Layout Items that can be added on demand with as -
@@ -9366,7 +9396,7 @@ class EditableLayoutItemComponent extends CoreBaseComponent {
9366
9396
  i0.ɵɵadvance(1);
9367
9397
  i0.ɵɵproperty("ngIf", ctx.isLayoutItemDraggable);
9368
9398
  i0.ɵɵadvance(2);
9369
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(14, _c1$O, !ctx.isLayoutItemDraggable));
9399
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(14, _c1$Q, !ctx.isLayoutItemDraggable));
9370
9400
  }
9371
9401
  }, dependencies: [i1$1.NgClass, i1$1.NgIf], encapsulation: 2 });
9372
9402
  (function () {
@@ -9985,7 +10015,7 @@ __decorate([
9985
10015
  ], LayoutResponsiveWindowManager.prototype, "onWindowSizeChanged", null);
9986
10016
 
9987
10017
  const _c0$1t = [[["sme-layout-item"]]];
9988
- const _c1$N = ["sme-layout-item"];
10018
+ const _c1$P = ["sme-layout-item"];
9989
10019
  /**
9990
10020
  * Layout component
9991
10021
  */
@@ -10437,7 +10467,7 @@ class LayoutComponent extends CoreBaseComponent {
10437
10467
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.layoutItems = _t);
10438
10468
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.definitions = _t);
10439
10469
  }
10440
- }, inputs: { itemHorizontalSpace: "itemHorizontalSpace", itemVerticalSpace: "itemVerticalSpace", oneColumn: "oneColumn", tryToFillWholeRow: "tryToFillWholeRow", definition: "definition", padLastItem: "padLastItem", noExtraRightPaddingOneItemPerRow: "noExtraRightPaddingOneItemPerRow", layoutConfig: "layoutConfig" }, outputs: { layoutChanged: "layoutChanged", windowBreakpointChanged: "windowBreakpointChanged" }, features: [i0.ɵɵInheritDefinitionFeature], ngContentSelectors: _c1$N, decls: 1, vars: 0, template: function LayoutComponent_Template(rf, ctx) {
10470
+ }, inputs: { itemHorizontalSpace: "itemHorizontalSpace", itemVerticalSpace: "itemVerticalSpace", oneColumn: "oneColumn", tryToFillWholeRow: "tryToFillWholeRow", definition: "definition", padLastItem: "padLastItem", noExtraRightPaddingOneItemPerRow: "noExtraRightPaddingOneItemPerRow", layoutConfig: "layoutConfig" }, outputs: { layoutChanged: "layoutChanged", windowBreakpointChanged: "windowBreakpointChanged" }, features: [i0.ɵɵInheritDefinitionFeature], ngContentSelectors: _c1$P, decls: 1, vars: 0, template: function LayoutComponent_Template(rf, ctx) {
10441
10471
  if (rf & 1) {
10442
10472
  i0.ɵɵprojectionDef(_c0$1t);
10443
10473
  i0.ɵɵprojection(0);
@@ -10500,7 +10530,7 @@ __decorate([
10500
10530
  })();
10501
10531
 
10502
10532
  const _c0$1s = [[["sme-editable-layout-item"]]];
10503
- const _c1$M = ["sme-editable-layout-item"];
10533
+ const _c1$O = ["sme-editable-layout-item"];
10504
10534
  class EditableLayoutComponent extends LayoutComponent {
10505
10535
  /**
10506
10536
  * The source name to use for logging
@@ -10671,7 +10701,7 @@ EditableLayoutComponent.gridPaddingSize = 8;
10671
10701
  let _t;
10672
10702
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.editableLayoutItems = _t);
10673
10703
  }
10674
- }, inputs: { isEditMode: "isEditMode" }, features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], ngContentSelectors: _c1$M, decls: 2, vars: 4, consts: [[1, "sme-editable-layout-grid"]], template: function EditableLayoutComponent_Template(rf, ctx) {
10704
+ }, inputs: { isEditMode: "isEditMode" }, features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], ngContentSelectors: _c1$O, decls: 2, vars: 4, consts: [[1, "sme-editable-layout-grid"]], template: function EditableLayoutComponent_Template(rf, ctx) {
10675
10705
  if (rf & 1) {
10676
10706
  i0.ɵɵprojectionDef(_c0$1s);
10677
10707
  i0.ɵɵelementStart(0, "div", 0);
@@ -10744,7 +10774,7 @@ function LoadingWheelComponent_a_11_Template(rf, ctx) {
10744
10774
  }
10745
10775
  }
10746
10776
  const _c0$1r = function (a0, a1, a2) { return { "sme-scheme-loading-wheel": a0, "sme-layout-absolute": a1, "sme-position-inset-none": a2 }; };
10747
- const _c1$L = function (a0, a1) { return { "sme-layout-absolute": a0, "sme-position-center": a1 }; };
10777
+ const _c1$N = function (a0, a1) { return { "sme-layout-absolute": a0, "sme-position-center": a1 }; };
10748
10778
  const _c2$i = function (a0, a1) { return { "sme-progress-center": a0, "sme-progress-center-h": a1 }; };
10749
10779
  var LoadingWheelSize;
10750
10780
  (function (LoadingWheelSize) {
@@ -10892,7 +10922,7 @@ class LoadingWheelComponent extends CoreBaseComponent {
10892
10922
  if (rf & 2) {
10893
10923
  i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction3(11, _c0$1r, !ctx.isBackgroundTransparent, !ctx.inline, !ctx.inline));
10894
10924
  i0.ɵɵadvance(1);
10895
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction2(15, _c1$L, !ctx.inline, !ctx.inline));
10925
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction2(15, _c1$N, !ctx.inline, !ctx.inline));
10896
10926
  i0.ɵɵadvance(1);
10897
10927
  i0.ɵɵclassMapInterpolate1("sme-progress sme-progress-indeterminate-local ", ctx.sizeClass, " sme-focus-zone");
10898
10928
  i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction2(18, _c2$i, ctx.inline, !ctx.inline));
@@ -11168,7 +11198,7 @@ function SmeSchemaProperty(...dataTypeRegistrations) {
11168
11198
  }
11169
11199
 
11170
11200
  const _c0$1q = ["fieldHost"];
11171
- const _c1$K = ["field"];
11201
+ const _c1$M = ["field"];
11172
11202
  /**
11173
11203
  * Schema Form Component
11174
11204
  * It takes the schema and data and other necessary inputs then dynamically renders the form UI.
@@ -11486,7 +11516,7 @@ SchemaFieldLoaderComponentBase.localizationCache = {};
11486
11516
  /** @nocollapse */ SchemaFieldLoaderComponentBase.ɵfac = function SchemaFieldLoaderComponentBase_Factory(t) { return new (t || SchemaFieldLoaderComponentBase)(); };
11487
11517
  /** @nocollapse */ SchemaFieldLoaderComponentBase.ɵdir = /** @pureOrBreakMyCode */ i0.ɵɵdefineDirective({ type: SchemaFieldLoaderComponentBase, viewQuery: function SchemaFieldLoaderComponentBase_Query(rf, ctx) {
11488
11518
  if (rf & 1) {
11489
- i0.ɵɵviewQuery(_c1$K, 5);
11519
+ i0.ɵɵviewQuery(_c1$M, 5);
11490
11520
  }
11491
11521
  if (rf & 2) {
11492
11522
  let _t;
@@ -15229,7 +15259,7 @@ function DialogComponent_sme_backdrop_0_Template(rf, ctx) {
15229
15259
  i0.ɵɵproperty("ngIf", ctx_r0.ariaDescription);
15230
15260
  }
15231
15261
  }
15232
- const _c1$J = [[["sme-dialog-header"]], [["sme-dialog-content"]], [["sme-dialog-footer"]]];
15262
+ const _c1$L = [[["sme-dialog-header"]], [["sme-dialog-content"]], [["sme-dialog-footer"]]];
15233
15263
  const _c2$h = ["sme-dialog-header", "sme-dialog-content", "sme-dialog-footer"];
15234
15264
  /**
15235
15265
  *
@@ -15562,7 +15592,7 @@ DialogComponent.nextDialogId = 0;
15562
15592
  }
15563
15593
  }, inputs: { allowBackgroundInteraction: "allowBackgroundInteraction", showBackdrop: "showBackdrop", clickBackdrop: "clickBackdrop", ariaLabel: "ariaLabel", ariaDescription: "ariaDescription", actionPane: "actionPane", dialogMode: "dialogMode", dialogType: "dialogType", closeButton: "closeButton", compactFullHeight: "compactFullHeight" }, features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], ngContentSelectors: _c2$h, decls: 1, vars: 1, consts: [["class", "sme-layout-absolute sme-position-inset-none", 3, "level", "showBackdrop", "allowBackgroundInteraction", "clicked", 4, "ngIf"], [1, "sme-layout-absolute", "sme-position-inset-none", 3, "level", "showBackdrop", "allowBackgroundInteraction", "clicked"], ["aria-modal", "true", 3, "ngClass"], ["class", "sme-button-trigger sme-button-auto-width sme-dialog-close-button", 3, "title", "click", 4, "ngIf"], [1, "sme-position-flex-none", "sme-focus-zone"], [1, "sme-layout-relative", "sme-position-flex-auto", "sme-padding-horizontal-lg", "sme-arrange-overflow-auto-y", "sme-arrange-overflow-hide-x", "sme-focus-zone", "sme-layout-responsive-zone-xs", "sme-dialog-content-wrapper"], [1, "sme-position-flex-none", "sme-focus-zone", "sme-padding-horizontal-lg", "sme-padding-vertical-sm"], ["class", "sme-screen-reader", 3, "id", 4, "ngIf"], [1, "sme-button-trigger", "sme-button-auto-width", "sme-dialog-close-button", 3, "title", "click"], [1, "sme-icon", "sme-icon-cancel"], [1, "sme-screen-reader", 3, "id"]], template: function DialogComponent_Template(rf, ctx) {
15564
15594
  if (rf & 1) {
15565
- i0.ɵɵprojectionDef(_c1$J);
15595
+ i0.ɵɵprojectionDef(_c1$L);
15566
15596
  i0.ɵɵtemplate(0, DialogComponent_sme_backdrop_0_Template, 11, 11, "sme-backdrop", 0);
15567
15597
  }
15568
15598
  if (rf & 2) {
@@ -16659,6 +16689,166 @@ class SchemaFieldHostModule {
16659
16689
  TooltipModule], exports: [SchemaFieldHostComponent] });
16660
16690
  })();
16661
16691
 
16692
+ /**
16693
+ * A re-usable form field accessibility manager.
16694
+ */
16695
+ class FormFieldAccessibilityManagerBaseService {
16696
+ /**
16697
+ * The focus handler on delete/add if the form field is a list.
16698
+ * @param value The value for the list form field.
16699
+ * @param addButton The component reference for the add button.
16700
+ * @param hostElement The host element reference.
16701
+ * @param isDelete Determine if the action is delete.
16702
+ * @returns void
16703
+ */
16704
+ listFormFieldFocusHandlerOnKeyboardAction(value, addButton, hostElement, isDelete = true) {
16705
+ // If there are no items in the list, focus on the add button.
16706
+ if (!value || !value.length) {
16707
+ this.deferredFocusOnAddButton(addButton);
16708
+ return;
16709
+ }
16710
+ // Otherwise focus on the either the first input fields when it is delete or the last input field when it is add.
16711
+ this.deferredFocusOnInputFields(hostElement, value, isDelete);
16712
+ }
16713
+ /**
16714
+ * The focus handler on delete/add if the form field is a list. And the list is built with a specific selector.
16715
+ * @param value The value for the list form field.
16716
+ * @param addButton The component reference for the add button.
16717
+ * @param hostElement The host element reference.
16718
+ * @param selector The selector for the input fields.
16719
+ * @returns void
16720
+ */
16721
+ listFormFieldFocusHandlerOnKeyboardActionBySelector(value, addButton, hostElement, selector) {
16722
+ // If there are no items in the list, focus on the add button.
16723
+ if (!value || !value.length) {
16724
+ this.deferredFocusOnAddButton(addButton);
16725
+ return;
16726
+ }
16727
+ // Otherwise focus on the either the first input fields when it is delete or the last input field when it is add.
16728
+ this.deferredFocusOnTargetBySelector(value, hostElement, selector);
16729
+ }
16730
+ /**
16731
+ * It handles the focus on the input field by index if value is type of any[].
16732
+ * @param hostElement the host form field element.
16733
+ * @param index the index of the input field to focus on.
16734
+ * @returns void.
16735
+ */
16736
+ focusOnInputByIndex(hostElement, index) {
16737
+ const inputs = hostElement.nativeElement.querySelectorAll('input');
16738
+ if (index < 0 || index >= inputs.length) {
16739
+ return;
16740
+ }
16741
+ inputs[index].focus();
16742
+ }
16743
+ deferredFocusOnTargetBySelector(value, hostElement, selector) {
16744
+ if (!value || !value.length) {
16745
+ return;
16746
+ }
16747
+ const targets = hostElement.nativeElement.querySelectorAll(selector);
16748
+ if (!targets || !targets.length) {
16749
+ return;
16750
+ }
16751
+ targets[0].focus();
16752
+ }
16753
+ deferredFocusOnAddButton(addButton) {
16754
+ if (!addButton) {
16755
+ return;
16756
+ }
16757
+ addButton.nativeElement.focus();
16758
+ }
16759
+ deferredFocusOnInputFields(hostElement, value, isDelete = true) {
16760
+ if (!value || !value.length) {
16761
+ return;
16762
+ }
16763
+ this.focusOnInputByIndex(hostElement, isDelete ? 0 : value.length - 1);
16764
+ }
16765
+ }
16766
+ /** @nocollapse */ FormFieldAccessibilityManagerBaseService.ɵfac = function FormFieldAccessibilityManagerBaseService_Factory(t) { return new (t || FormFieldAccessibilityManagerBaseService)(); };
16767
+ /** @nocollapse */ FormFieldAccessibilityManagerBaseService.ɵprov = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjectable({ token: FormFieldAccessibilityManagerBaseService, factory: FormFieldAccessibilityManagerBaseService.ɵfac, providedIn: 'root' });
16768
+ __decorate([
16769
+ Debounce$2(),
16770
+ __metadata("design:type", Function),
16771
+ __metadata("design:paramtypes", [Array, ElementRef, String]),
16772
+ __metadata("design:returntype", void 0)
16773
+ ], FormFieldAccessibilityManagerBaseService.prototype, "deferredFocusOnTargetBySelector", null);
16774
+ __decorate([
16775
+ Debounce$2(),
16776
+ __metadata("design:type", Function),
16777
+ __metadata("design:paramtypes", [ElementRef]),
16778
+ __metadata("design:returntype", void 0)
16779
+ ], FormFieldAccessibilityManagerBaseService.prototype, "deferredFocusOnAddButton", null);
16780
+ __decorate([
16781
+ Debounce$2(),
16782
+ __metadata("design:type", Function),
16783
+ __metadata("design:paramtypes", [ElementRef, Array, Object]),
16784
+ __metadata("design:returntype", void 0)
16785
+ ], FormFieldAccessibilityManagerBaseService.prototype, "deferredFocusOnInputFields", null);
16786
+ (function () {
16787
+ (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FormFieldAccessibilityManagerBaseService, [{
16788
+ type: Injectable,
16789
+ args: [{
16790
+ providedIn: 'root'
16791
+ }]
16792
+ }], null, { deferredFocusOnTargetBySelector: [], deferredFocusOnAddButton: [], deferredFocusOnInputFields: [] });
16793
+ })();
16794
+
16795
+ class ArrayFormFieldAccessibilityManagerService {
16796
+ constructor(formFieldAccessibilityManagerBaseService) {
16797
+ this.formFieldAccessibilityManagerBaseService = formFieldAccessibilityManagerBaseService;
16798
+ this.firstFormFieldInArrayItemSelector = 'sme-accordion sme-accordion-panel:last-of-type input';
16799
+ }
16800
+ /**
16801
+ * It handles the focus when deleting an item from the list.
16802
+ * @param value the value for the list.
16803
+ * @param addButton the element reference for the add button.
16804
+ * @param hostElement the element reference for the host element.
16805
+ * @returns void
16806
+ */
16807
+ delete(value, addButton, hostElement) {
16808
+ this.formFieldAccessibilityManagerBaseService.listFormFieldFocusHandlerOnKeyboardActionBySelector(value, addButton, hostElement, this.firstFormFieldInArrayItemSelector);
16809
+ }
16810
+ /**
16811
+ * It handles the focus when adding an item to the list.
16812
+ * @param value the value for the list.
16813
+ * @param addButton the element reference for the add button.
16814
+ * @param hostElement the element reference for the host element.
16815
+ * @returns void
16816
+ */
16817
+ add(value, addButton, hostElement) {
16818
+ this.formFieldAccessibilityManagerBaseService.listFormFieldFocusHandlerOnKeyboardActionBySelector(value, addButton, hostElement, this.firstFormFieldInArrayItemSelector);
16819
+ }
16820
+ /**
16821
+ * It handles the focus when promoting an item in the list.
16822
+ * @param hostElement The element reference for the host element.
16823
+ * @param index the current index.
16824
+ */
16825
+ promote(value, hostElement, index) {
16826
+ this.formFieldAccessibilityManagerBaseService.deferredFocusOnTargetBySelector(value, hostElement,
16827
+ // nth means index - 1 + 1 = index
16828
+ `sme-accordion sme-accordion-panel:nth-of-type(${index}) button:nth-of-type(2)`);
16829
+ }
16830
+ /**
16831
+ * It handles the focus when demoting an item in the list.
16832
+ * @param hostElement The element reference for the host element.
16833
+ * @param index the current index.
16834
+ */
16835
+ demote(value, hostElement, index) {
16836
+ this.formFieldAccessibilityManagerBaseService.deferredFocusOnTargetBySelector(value, hostElement,
16837
+ // nth means index + 1 + 1 = index + 2
16838
+ `sme-accordion sme-accordion-panel:nth-of-type(${index + 2}) button:nth-of-type(3)`);
16839
+ }
16840
+ }
16841
+ /** @nocollapse */ ArrayFormFieldAccessibilityManagerService.ɵfac = function ArrayFormFieldAccessibilityManagerService_Factory(t) { return new (t || ArrayFormFieldAccessibilityManagerService)(i0.ɵɵinject(FormFieldAccessibilityManagerBaseService)); };
16842
+ /** @nocollapse */ ArrayFormFieldAccessibilityManagerService.ɵprov = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjectable({ token: ArrayFormFieldAccessibilityManagerService, factory: ArrayFormFieldAccessibilityManagerService.ɵfac, providedIn: 'root' });
16843
+ (function () {
16844
+ (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ArrayFormFieldAccessibilityManagerService, [{
16845
+ type: Injectable,
16846
+ args: [{
16847
+ providedIn: 'root'
16848
+ }]
16849
+ }], function () { return [{ type: FormFieldAccessibilityManagerBaseService }]; }, null);
16850
+ })();
16851
+
16662
16852
  /**
16663
16853
  * Provider that hides any existing ControlContainers from NgModel
16664
16854
  */
@@ -16800,7 +16990,7 @@ function ArrayFormFieldLoaderComponent_ng_template_2_Template(rf, ctx) {
16800
16990
  i0.ɵɵproperty("propertySchema", ctx_r1.propertySchema.item)("context", ctx_r1.context)("data", model_r2);
16801
16991
  }
16802
16992
  }
16803
- const _c1$I = ["addButton"];
16993
+ const _c1$K = ["addButton"];
16804
16994
  const _c2$g = ["type", "array"];
16805
16995
  const _c3$b = function (a0, a1) { return { index: a0, ariaLabelId: a1 }; };
16806
16996
  function ArrayFormFieldComponent_sme_accordion_panel_3_ng_container_2_Template(rf, ctx) {
@@ -16916,7 +17106,6 @@ function ArrayFormFieldComponent_button_4_Template(rf, ctx) {
16916
17106
  }
16917
17107
  }
16918
17108
  /* eslint-disable max-len */
16919
- /* eslint-enable max-len */
16920
17109
  class ArrayFormFieldLoaderComponent extends ArrayPropertySchemaFieldLoaderComponent {
16921
17110
  askForNewItem($event) {
16922
17111
  const item = SchemaUtilities.generateDataBasedOnSchemaProperty(this.propertySchema.item);
@@ -16993,8 +17182,9 @@ let ArrayFormFieldComponent = class ArrayFormFieldComponent extends SmeInternalF
16993
17182
  /**
16994
17183
  * Initializes a new instance of the JsonFormFieldComponent
16995
17184
  */
16996
- constructor(injector) {
17185
+ constructor(injector, arrayFormFieldAccessibilityManagerService) {
16997
17186
  super(injector);
17187
+ this.arrayFormFieldAccessibilityManagerService = arrayFormFieldAccessibilityManagerService;
16998
17188
  /**
16999
17189
  * When no "newItem" is provided. This output will be called anytime a new item is required.
17000
17190
  */
@@ -17080,35 +17270,19 @@ let ArrayFormFieldComponent = class ArrayFormFieldComponent extends SmeInternalF
17080
17270
  */
17081
17271
  add() {
17082
17272
  const item = this.getNewItem();
17083
- const index = this.value.length;
17084
17273
  this.value.push(item);
17085
17274
  this.triggerValueChange();
17086
- setTimeout(() => {
17087
- const itemId = this.getItemAriaId(index, 'itemContainer');
17088
- const itemContainer = document.getElementById(itemId);
17089
- const firstInput = itemContainer.querySelector('input');
17090
- if (firstInput) {
17091
- firstInput.focus();
17092
- }
17093
- itemContainer.scrollIntoView({ behavior: 'smooth', block: 'center' });
17094
- });
17275
+ this.arrayFormFieldAccessibilityManagerService.add(this.value, this.addButton, this.hostElement);
17095
17276
  }
17096
17277
  /**
17097
17278
  * Deletes an item from the array
17098
17279
  */
17099
17280
  delete(item) {
17100
17281
  const index = this.value.indexOf(item);
17101
- // return the view to the previous item in the list.
17102
- const prevItemId = this.getItemAriaId(index - 1, 'itemContainer');
17103
- const prevContainer = document.getElementById(prevItemId);
17104
- if (prevContainer) {
17105
- prevContainer.scrollIntoView({ behavior: 'smooth', block: 'center' });
17106
- }
17107
- // focus on the add button, otherwise focus is reset to the beginning of the page
17108
- this.addButton.nativeElement.focus();
17109
17282
  this.value.splice(index, 1);
17110
17283
  this.triggerValueChange();
17111
17284
  this.updateScreenReaderEvent(this.strings.MsftSmeShell.Angular.Form.Array.removeButtonEvent);
17285
+ this.arrayFormFieldAccessibilityManagerService.delete(this.value, this.addButton, this.hostElement);
17112
17286
  }
17113
17287
  /**
17114
17288
  * Decreases the index of an item by 1
@@ -17120,6 +17294,7 @@ let ArrayFormFieldComponent = class ArrayFormFieldComponent extends SmeInternalF
17120
17294
  this.value[index] = Object.assign({}, this.value[index - 1]);
17121
17295
  this.value[index - 1] = temp;
17122
17296
  this.updateScreenReaderEvent(this.strings.MsftSmeShell.Angular.Form.Array.promoteButtonEvent);
17297
+ this.arrayFormFieldAccessibilityManagerService.promote(this.value, this.hostElement, index);
17123
17298
  }
17124
17299
  else {
17125
17300
  this.updateScreenReaderEvent(this.strings.MsftSmeShell.Angular.Form.Array.promoteButtonPreventedEvent);
@@ -17135,6 +17310,7 @@ let ArrayFormFieldComponent = class ArrayFormFieldComponent extends SmeInternalF
17135
17310
  this.value[index] = Object.assign({}, this.value[index + 1]);
17136
17311
  this.value[index + 1] = temp;
17137
17312
  this.updateScreenReaderEvent(this.strings.MsftSmeShell.Angular.Form.Array.demoteButtonEvent);
17313
+ this.arrayFormFieldAccessibilityManagerService.demote(this.value, this.hostElement, index);
17138
17314
  }
17139
17315
  else {
17140
17316
  this.updateScreenReaderEvent(this.strings.MsftSmeShell.Angular.Form.Array.demoteButtonPreventedEvent);
@@ -17210,7 +17386,7 @@ let ArrayFormFieldComponent = class ArrayFormFieldComponent extends SmeInternalF
17210
17386
  }
17211
17387
  }
17212
17388
  };
17213
- /** @nocollapse */ ArrayFormFieldComponent.ɵfac = function ArrayFormFieldComponent_Factory(t) { return new (t || ArrayFormFieldComponent)(i0.ɵɵdirectiveInject(i0.Injector)); };
17389
+ /** @nocollapse */ ArrayFormFieldComponent.ɵfac = function ArrayFormFieldComponent_Factory(t) { return new (t || ArrayFormFieldComponent)(i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵdirectiveInject(ArrayFormFieldAccessibilityManagerService)); };
17214
17390
  /** @nocollapse */ ArrayFormFieldComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: ArrayFormFieldComponent, selectors: [["sme-form-field", "type", "array"]], contentQueries: function ArrayFormFieldComponent_ContentQueries(rf, ctx, dirIndex) {
17215
17391
  if (rf & 1) {
17216
17392
  i0.ɵɵcontentQuery(dirIndex, FormFieldIsolatorComponent, 7);
@@ -17221,7 +17397,7 @@ let ArrayFormFieldComponent = class ArrayFormFieldComponent extends SmeInternalF
17221
17397
  }
17222
17398
  }, viewQuery: function ArrayFormFieldComponent_Query(rf, ctx) {
17223
17399
  if (rf & 1) {
17224
- i0.ɵɵviewQuery(_c1$I, 5);
17400
+ i0.ɵɵviewQuery(_c1$K, 5);
17225
17401
  }
17226
17402
  if (rf & 2) {
17227
17403
  let _t;
@@ -17265,13 +17441,14 @@ ArrayFormFieldComponent = __decorate([
17265
17441
  description: `A form field control binding to array data.`,
17266
17442
  loaderComponent: ArrayFormFieldLoaderComponent
17267
17443
  }),
17268
- __metadata("design:paramtypes", [Injector])
17444
+ __metadata("design:paramtypes", [Injector,
17445
+ ArrayFormFieldAccessibilityManagerService])
17269
17446
  ], ArrayFormFieldComponent);
17270
17447
  (function () {
17271
17448
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ArrayFormFieldComponent, [{
17272
17449
  type: Component,
17273
- args: [{ selector: 'sme-form-field[type="array"]', template: "<sme-form-field-layout [formField]=\"this\">\r\n\r\n <div class=\"sme-array\">\r\n <sme-accordion [canCloseAny]=\"canCloseAny\" [canCloseAll]=\"canCloseAll\" [canOpenMultiple]=\"canOpenMultiple\">\r\n <sme-accordion-panel *ngFor=\"let item of value; let i = index\" [header]=\"getItemTitle(item, i)\" [isExpandable]=\"false\" [attr.data-uta-id]=\"'array-form-field-item-' + i\">\r\n <sme-panel-control>\r\n <ng-container *ngIf=\"headerTemplate\" smeTemplateOutlet [template]=\"headerTemplate\" [data]=\"item\" hostDataName=\"context\"\r\n [hostData]=\"{index: i, ariaLabelId: getItemAriaId(i, 'itemHeader')}\"></ng-container>\r\n <button *ngIf=\"showMove\" type=\"button\"\r\n class=\"sme-button-trigger sme-button-auto-width sme-form-field-height sme-padding-horizontal-xs\"\r\n [attr.aria-label]=\"strings.MsftSmeShell.Angular.Form.Array.promoteButtonAriaLabel\"\r\n [title]=\"strings.MsftSmeShell.Angular.Form.Array.promoteButtonTooltip\" (click)=\"moveUp(item)\"\r\n [smeDisabled]=\"loadingOrDisabled\" data-uta-id=\"promote-button\">\r\n <span class=\"sme-icon sme-icon-up\"></span>\r\n </button>\r\n <button *ngIf=\"showMove\" type=\"button\"\r\n class=\"sme-button-trigger sme-button-auto-width sme-form-field-height sme-padding-horizontal-xs\"\r\n [attr.aria-label]=\"strings.MsftSmeShell.Angular.Form.Array.demoteButtonAriaLabel\"\r\n [title]=\"strings.MsftSmeShell.Angular.Form.Array.demoteButtonTooltip\" (click)=\"moveDown(item)\"\r\n [smeDisabled]=\"loadingOrDisabled\" data-uta-id=\"demote-button\">\r\n <span class=\"sme-icon sme-icon-down\"></span>\r\n </button>\r\n <button *ngIf=\"getShowRemove(item, i)\" type=\"button\"\r\n class=\"sme-button-trigger sme-button-auto-width sme-form-field-height sme-padding-horizontal-xs\"\r\n [attr.aria-label]=\"strings.MsftSmeShell.Angular.Form.Array.removeButtonAriaLabel\"\r\n [title]=\"strings.MsftSmeShell.Angular.Form.Array.removeButtonTooltip\" (click)=\"delete(item)\"\r\n [smeDisabled]=\"loadingOrDisabled\" data-uta-id=\"remove-button\">\r\n <span class=\"sme-icon sme-icon-delete sme-color-red\"></span>\r\n </button>\r\n </sme-panel-control>\r\n\r\n <span class=\"sme-screen-reader\" [id]=\"getItemAriaId(i, 'item')\">{{itemTitle}}</span>\r\n <fieldset [attr.aria-labelledby]=\"getItemAriaId(i, 'item')\"\r\n class=\"sme-arrange-stack-h sme-margin-bottom-lg sme-array-item\"\r\n [class.sme-subform-indent-none]=\"orientation==='horizontal'\">\r\n\r\n <div class=\"sme-position-flex-auto sme-padding-inset-md\" [id]=\"getItemAriaId(i, 'itemContainer')\">\r\n <ng-container smeTemplateOutlet [template]=\"itemTemplate\" [data]=\"item\" hostDataName=\"context\"\r\n [hostData]=\"{index: i, ariaLabelId: getItemAriaId(i, 'item')}\"></ng-container>\r\n </div>\r\n </fieldset>\r\n\r\n </sme-accordion-panel>\r\n </sme-accordion>\r\n\r\n <button #addButton *ngIf=\"showAdd\" type=\"button\" data-uta-id=\"add-button\"\r\n [smeDisabled]=\"loadingOrDisabled || (maxItems !== -1 && value.length >= maxItems)\"\r\n class=\"sme-button-trigger sme-button-auto-width sme-icon sme-icon-add sme-margin-bottom-xs\"\r\n [attr.aria-label]=\"strings.MsftSmeShell.Angular.Form.Array.addButtonAriaLabel\"\r\n [title]=\"strings.MsftSmeShell.Angular.Form.Array.addButtonTooltip\" (click)=\"add()\">{{addButtonText}}</button>\r\n </div>\r\n\r\n <sme-validation-alert [alert]=\"alert\"></sme-validation-alert>\r\n <div class=\"sme-screen-reader\" aria-live=\"assertive\" aria-relevant=\"all\">{{screenReaderEvent}}</div>\r\n</sme-form-field-layout>\r\n" }]
17274
- }], function () { return [{ type: i0.Injector }]; }, { subFieldIsolator: [{
17450
+ args: [{ selector: 'sme-form-field[type="array"]', template: "<sme-form-field-layout [formField]=\"this\">\r\n <div class=\"sme-array\">\r\n <sme-accordion [canCloseAny]=\"canCloseAny\" [canCloseAll]=\"canCloseAll\" [canOpenMultiple]=\"canOpenMultiple\">\r\n <sme-accordion-panel *ngFor=\"let item of value; let i = index\" [header]=\"getItemTitle(item, i)\" [isExpandable]=\"false\" [attr.data-uta-id]=\"'array-form-field-item-' + i\">\r\n <sme-panel-control>\r\n <ng-container *ngIf=\"headerTemplate\" smeTemplateOutlet [template]=\"headerTemplate\" [data]=\"item\" hostDataName=\"context\"\r\n [hostData]=\"{index: i, ariaLabelId: getItemAriaId(i, 'itemHeader')}\"></ng-container>\r\n <button *ngIf=\"showMove\" type=\"button\"\r\n class=\"sme-button-trigger sme-button-auto-width sme-form-field-height sme-padding-horizontal-xs\"\r\n [attr.aria-label]=\"strings.MsftSmeShell.Angular.Form.Array.promoteButtonAriaLabel\"\r\n [title]=\"strings.MsftSmeShell.Angular.Form.Array.promoteButtonTooltip\" (click)=\"moveUp(item)\"\r\n [smeDisabled]=\"loadingOrDisabled\" data-uta-id=\"promote-button\">\r\n <span class=\"sme-icon sme-icon-up\"></span>\r\n </button>\r\n <button *ngIf=\"showMove\" type=\"button\"\r\n class=\"sme-button-trigger sme-button-auto-width sme-form-field-height sme-padding-horizontal-xs\"\r\n [attr.aria-label]=\"strings.MsftSmeShell.Angular.Form.Array.demoteButtonAriaLabel\"\r\n [title]=\"strings.MsftSmeShell.Angular.Form.Array.demoteButtonTooltip\" (click)=\"moveDown(item)\"\r\n [smeDisabled]=\"loadingOrDisabled\" data-uta-id=\"demote-button\">\r\n <span class=\"sme-icon sme-icon-down\"></span>\r\n </button>\r\n <button *ngIf=\"getShowRemove(item, i)\" type=\"button\"\r\n class=\"sme-button-trigger sme-button-auto-width sme-form-field-height sme-padding-horizontal-xs\"\r\n [attr.aria-label]=\"strings.MsftSmeShell.Angular.Form.Array.removeButtonAriaLabel\"\r\n [title]=\"strings.MsftSmeShell.Angular.Form.Array.removeButtonTooltip\" (click)=\"delete(item)\"\r\n [smeDisabled]=\"loadingOrDisabled\" data-uta-id=\"remove-button\">\r\n <span class=\"sme-icon sme-icon-delete sme-color-red\"></span>\r\n </button>\r\n </sme-panel-control>\r\n <span class=\"sme-screen-reader\" [id]=\"getItemAriaId(i, 'item')\">{{itemTitle}}</span>\r\n <fieldset [attr.aria-labelledby]=\"getItemAriaId(i, 'item')\"\r\n class=\"sme-arrange-stack-h sme-margin-bottom-lg sme-array-item\"\r\n [class.sme-subform-indent-none]=\"orientation==='horizontal'\">\r\n <div class=\"sme-position-flex-auto sme-padding-inset-md\" [id]=\"getItemAriaId(i, 'itemContainer')\">\r\n <ng-container smeTemplateOutlet [template]=\"itemTemplate\" [data]=\"item\" hostDataName=\"context\"\r\n [hostData]=\"{index: i, ariaLabelId: getItemAriaId(i, 'item')}\"></ng-container>\r\n </div>\r\n </fieldset>\r\n </sme-accordion-panel>\r\n </sme-accordion>\r\n <button #addButton *ngIf=\"showAdd\" type=\"button\" data-uta-id=\"add-button\"\r\n [smeDisabled]=\"loadingOrDisabled || (maxItems !== -1 && value.length >= maxItems)\"\r\n class=\"sme-button-trigger sme-button-auto-width sme-icon sme-icon-add sme-margin-bottom-xs\"\r\n [attr.aria-label]=\"strings.MsftSmeShell.Angular.Form.Array.addButtonAriaLabel\"\r\n [title]=\"strings.MsftSmeShell.Angular.Form.Array.addButtonTooltip\" (click)=\"add()\">{{addButtonText}}</button>\r\n </div>\r\n <sme-validation-alert [alert]=\"alert\"></sme-validation-alert>\r\n <div class=\"sme-screen-reader\" aria-live=\"assertive\" aria-relevant=\"all\">{{screenReaderEvent}}</div>\r\n</sme-form-field-layout>\r\n" }]
17451
+ }], function () { return [{ type: i0.Injector }, { type: ArrayFormFieldAccessibilityManagerService }]; }, { subFieldIsolator: [{
17275
17452
  type: ContentChild,
17276
17453
  args: [FormFieldIsolatorComponent, { static: true }]
17277
17454
  }], askForNewItem: [{
@@ -19134,7 +19311,7 @@ function fromMonacoEvent(emitter) {
19134
19311
  }
19135
19312
 
19136
19313
  const _c0$1f = ["editor"];
19137
- const _c1$H = ["type", "code"];
19314
+ const _c1$J = ["type", "code"];
19138
19315
  function CodeFormFieldComponent_sme_validation_alert_3_Template(rf, ctx) {
19139
19316
  if (rf & 1) {
19140
19317
  i0.ɵɵelement(0, "sme-validation-alert", 4);
@@ -19437,7 +19614,7 @@ let CodeFormFieldComponent = class CodeFormFieldComponent extends SmeInternalFor
19437
19614
  if (rf & 1) {
19438
19615
  i0.ɵɵlistener("keydown", function CodeFormFieldComponent_keydown_HostBindingHandler($event) { return ctx.onKeyDown($event); });
19439
19616
  }
19440
- }, inputs: { language: "language", options: "options" }, features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], attrs: _c1$H, decls: 4, vars: 2, consts: [[3, "formField"], ["sme-lint-disable", "", 1, "sme-code-editor", "sme-form-field-editor"], ["editor", ""], [3, "alert", 4, "ngIf"], [3, "alert"]], template: function CodeFormFieldComponent_Template(rf, ctx) {
19617
+ }, inputs: { language: "language", options: "options" }, features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], attrs: _c1$J, decls: 4, vars: 2, consts: [[3, "formField"], ["sme-lint-disable", "", 1, "sme-code-editor", "sme-form-field-editor"], ["editor", ""], [3, "alert", 4, "ngIf"], [3, "alert"]], template: function CodeFormFieldComponent_Template(rf, ctx) {
19441
19618
  if (rf & 1) {
19442
19619
  i0.ɵɵelementStart(0, "sme-form-field-layout", 0);
19443
19620
  i0.ɵɵelement(1, "div", 1, 2);
@@ -19823,7 +20000,7 @@ function ComboboxFormFieldLoaderComponent_ng_container_3_Template(rf, ctx) {
19823
20000
  }
19824
20001
  }
19825
20002
  const _c0$1d = ["singleSelectTemplate"];
19826
- const _c1$G = ["multiSelectTemplate"];
20003
+ const _c1$I = ["multiSelectTemplate"];
19827
20004
  const _c2$f = ["listbox"];
19828
20005
  const _c3$a = ["dropDown"];
19829
20006
  const _c4$8 = ["type", "combobox"];
@@ -20265,7 +20442,7 @@ let ComboboxFormFieldComponent = class ComboboxFormFieldComponent extends SmeInt
20265
20442
  /** @nocollapse */ ComboboxFormFieldComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: ComboboxFormFieldComponent, selectors: [["sme-form-field", "type", "combobox"], ["sme-form-field", "type", "select"]], viewQuery: function ComboboxFormFieldComponent_Query(rf, ctx) {
20266
20443
  if (rf & 1) {
20267
20444
  i0.ɵɵviewQuery(_c0$1d, 7);
20268
- i0.ɵɵviewQuery(_c1$G, 7);
20445
+ i0.ɵɵviewQuery(_c1$I, 7);
20269
20446
  i0.ɵɵviewQuery(_c2$f, 5);
20270
20447
  i0.ɵɵviewQuery(_c3$a, 5);
20271
20448
  }
@@ -20447,7 +20624,7 @@ class SelectFormFieldDirective {
20447
20624
  })();
20448
20625
 
20449
20626
  const _c0$1c = ["dropDown"];
20450
- const _c1$F = ["calendar"];
20627
+ const _c1$H = ["calendar"];
20451
20628
  const _c2$e = ["type", "date"];
20452
20629
  /**
20453
20630
  * Date Form Field Component
@@ -20569,7 +20746,7 @@ class DateFormFieldComponent extends DateLikeFormFieldComponent {
20569
20746
  /** @nocollapse */ DateFormFieldComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DateFormFieldComponent, selectors: [["sme-form-field", "type", "date"]], viewQuery: function DateFormFieldComponent_Query(rf, ctx) {
20570
20747
  if (rf & 1) {
20571
20748
  i0.ɵɵviewQuery(_c0$1c, 5);
20572
- i0.ɵɵviewQuery(_c1$F, 5);
20749
+ i0.ɵɵviewQuery(_c1$H, 5);
20573
20750
  }
20574
20751
  if (rf & 2) {
20575
20752
  let _t;
@@ -20629,7 +20806,7 @@ class DateFormFieldComponent extends DateLikeFormFieldComponent {
20629
20806
  })();
20630
20807
 
20631
20808
  const _c0$1b = ["dropDown"];
20632
- const _c1$E = ["calendar"];
20809
+ const _c1$G = ["calendar"];
20633
20810
  const _c2$d = ["clock"];
20634
20811
  const _c3$9 = ["type", "datetime"];
20635
20812
  /**
@@ -20781,7 +20958,7 @@ class DateTimeFormFieldComponent extends DateLikeFormFieldComponent {
20781
20958
  /** @nocollapse */ DateTimeFormFieldComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DateTimeFormFieldComponent, selectors: [["sme-form-field", "type", "datetime"]], viewQuery: function DateTimeFormFieldComponent_Query(rf, ctx) {
20782
20959
  if (rf & 1) {
20783
20960
  i0.ɵɵviewQuery(_c0$1b, 5);
20784
- i0.ɵɵviewQuery(_c1$E, 5);
20961
+ i0.ɵɵviewQuery(_c1$G, 5);
20785
20962
  i0.ɵɵviewQuery(_c2$d, 5);
20786
20963
  }
20787
20964
  if (rf & 2) {
@@ -20906,7 +21083,7 @@ class DateTimeRangeOptionComponent {
20906
21083
  })();
20907
21084
 
20908
21085
  const _c0$1a = ["listbox"];
20909
- const _c1$D = ["dropDown"];
21086
+ const _c1$F = ["dropDown"];
20910
21087
  const _c2$c = ["startFormField"];
20911
21088
  const _c3$8 = ["endFormField"];
20912
21089
  const _c4$7 = ["type", "datetimerange"];
@@ -21359,7 +21536,7 @@ DateTimeRangeFormFieldComponent.endProperty = 'end';
21359
21536
  }, viewQuery: function DateTimeRangeFormFieldComponent_Query(rf, ctx) {
21360
21537
  if (rf & 1) {
21361
21538
  i0.ɵɵviewQuery(_c0$1a, 5);
21362
- i0.ɵɵviewQuery(_c1$D, 5);
21539
+ i0.ɵɵviewQuery(_c1$F, 5);
21363
21540
  i0.ɵɵviewQuery(_c2$c, 5);
21364
21541
  i0.ɵɵviewQuery(_c3$8, 5);
21365
21542
  }
@@ -21529,7 +21706,7 @@ class WebkitFileSystem {
21529
21706
  WebkitFileSystem.isDirectoryPropertyName = '__SME_isDirectory__';
21530
21707
 
21531
21708
  const _c0$19 = ["file"];
21532
- const _c1$C = ["type", "file"];
21709
+ const _c1$E = ["type", "file"];
21533
21710
  function FileFormFieldComponent_ng_container_16_div_1_Template(rf, ctx) {
21534
21711
  if (rf & 1) {
21535
21712
  const _r6 = i0.ɵɵgetCurrentView();
@@ -21838,7 +22015,7 @@ let FileFormFieldComponent = class FileFormFieldComponent extends SmeInternalFor
21838
22015
  let _t;
21839
22016
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.fileInput = _t.first);
21840
22017
  }
21841
- }, inputs: { multiple: "multiple", fileTypes: "fileTypes", buttonLabel: "buttonLabel" }, features: [i0.ɵɵInheritDefinitionFeature], attrs: _c1$C, decls: 18, vars: 19, consts: [[3, "formField"], [1, "sme-file-drop-zone", "sme-subform-indent-none", "sme-subform-no-bottom-margin"], [1, "sme-padding-inset-xs", "sme-margin-bottom-xs", "sme-arrange-stack-v", 3, "smeDrop"], [1, "sme-file-input", "sme-margin-bottom-xxs"], ["type", "file", 1, "sme-layout-none", 3, "disabled", "change"], ["file", ""], ["type", "button", 1, "sme-button-primary", "sme-button-auto-width", "sme-margin-right-xs", 3, "smeDisabled", "click"], [1, "sme-position-flex-align-center"], [1, "sme-margin-bottom-xs"], [4, "ngIf"], [3, "alert"], ["class", "sme-arrange-stack-h sme-margin-bottom-xs", 4, "ngFor", "ngForOf"], [1, "sme-arrange-stack-h", "sme-margin-bottom-xs"], [1, "sme-position-flex-none", "sme-icon", "sme-icon-size-lg"], [1, "sme-position-flex-auto", "sme-padding-left-sm", "sme-arrange-stack-v"], [1, "sme-position-flex-auto", "sme-arrange-ellipsis", "sme-padding-inset-none"], ["type", "button", 1, "sme-button-trigger", "sme-position-flex-none", "sme-button-auto-width", 3, "title", "smeDisabled", "click"], [1, "sme-icon", "sme-icon-cancel", "sme-color-red"]], template: function FileFormFieldComponent_Template(rf, ctx) {
22018
+ }, inputs: { multiple: "multiple", fileTypes: "fileTypes", buttonLabel: "buttonLabel" }, features: [i0.ɵɵInheritDefinitionFeature], attrs: _c1$E, decls: 18, vars: 19, consts: [[3, "formField"], [1, "sme-file-drop-zone", "sme-subform-indent-none", "sme-subform-no-bottom-margin"], [1, "sme-padding-inset-xs", "sme-margin-bottom-xs", "sme-arrange-stack-v", 3, "smeDrop"], [1, "sme-file-input", "sme-margin-bottom-xxs"], ["type", "file", 1, "sme-layout-none", 3, "disabled", "change"], ["file", ""], ["type", "button", 1, "sme-button-primary", "sme-button-auto-width", "sme-margin-right-xs", 3, "smeDisabled", "click"], [1, "sme-position-flex-align-center"], [1, "sme-margin-bottom-xs"], [4, "ngIf"], [3, "alert"], ["class", "sme-arrange-stack-h sme-margin-bottom-xs", 4, "ngFor", "ngForOf"], [1, "sme-arrange-stack-h", "sme-margin-bottom-xs"], [1, "sme-position-flex-none", "sme-icon", "sme-icon-size-lg"], [1, "sme-position-flex-auto", "sme-padding-left-sm", "sme-arrange-stack-v"], [1, "sme-position-flex-auto", "sme-arrange-ellipsis", "sme-padding-inset-none"], ["type", "button", 1, "sme-button-trigger", "sme-position-flex-none", "sme-button-auto-width", 3, "title", "smeDisabled", "click"], [1, "sme-icon", "sme-icon-cancel", "sme-color-red"]], template: function FileFormFieldComponent_Template(rf, ctx) {
21842
22019
  if (rf & 1) {
21843
22020
  const _r7 = i0.ɵɵgetCurrentView();
21844
22021
  i0.ɵɵelementStart(0, "sme-form-field-layout", 0)(1, "fieldset", 1)(2, "sme-drop-zone", 2);
@@ -22057,24 +22234,61 @@ JsonFormFieldComponent = __decorate([
22057
22234
  }], function () { return [{ type: i0.Injector }]; }, null);
22058
22235
  })();
22059
22236
 
22060
- const _c0$17 = ["type", "list"];
22237
+ class ListFormFieldAccessibilityManagerService {
22238
+ constructor(formFieldAccessibilityManagerBaseService) {
22239
+ this.formFieldAccessibilityManagerBaseService = formFieldAccessibilityManagerBaseService;
22240
+ }
22241
+ /**
22242
+ * It handles the focus when deleting an item from the list.
22243
+ * @param value the value for the list.
22244
+ * @param addButton the element reference for the add button.
22245
+ * @param hostElement the element reference for the host element.
22246
+ * @returns void
22247
+ */
22248
+ delete(value, addButton, hostElement) {
22249
+ this.formFieldAccessibilityManagerBaseService.listFormFieldFocusHandlerOnKeyboardAction(value, addButton, hostElement);
22250
+ }
22251
+ /**
22252
+ * It handles the focus when adding an item to the list.
22253
+ * @param value the value for the list.
22254
+ * @param addButton the element reference for the add button.
22255
+ * @param hostElement the element reference for the host element.
22256
+ * @returns void
22257
+ */
22258
+ add(value, addButton, hostElement) {
22259
+ this.formFieldAccessibilityManagerBaseService.listFormFieldFocusHandlerOnKeyboardAction(value, addButton, hostElement, false);
22260
+ }
22261
+ }
22262
+ /** @nocollapse */ ListFormFieldAccessibilityManagerService.ɵfac = function ListFormFieldAccessibilityManagerService_Factory(t) { return new (t || ListFormFieldAccessibilityManagerService)(i0.ɵɵinject(FormFieldAccessibilityManagerBaseService)); };
22263
+ /** @nocollapse */ ListFormFieldAccessibilityManagerService.ɵprov = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjectable({ token: ListFormFieldAccessibilityManagerService, factory: ListFormFieldAccessibilityManagerService.ɵfac, providedIn: 'root' });
22264
+ (function () {
22265
+ (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ListFormFieldAccessibilityManagerService, [{
22266
+ type: Injectable,
22267
+ args: [{
22268
+ providedIn: 'root'
22269
+ }]
22270
+ }], function () { return [{ type: FormFieldAccessibilityManagerBaseService }]; }, null);
22271
+ })();
22272
+
22273
+ const _c0$17 = ["addButton"];
22274
+ const _c1$D = ["type", "list"];
22061
22275
  function ListFormFieldComponent_div_1_div_1_Template(rf, ctx) {
22062
22276
  if (rf & 1) {
22063
- const _r5 = i0.ɵɵgetCurrentView();
22064
- i0.ɵɵelementStart(0, "div", 7)(1, "input", 8);
22065
- i0.ɵɵlistener("ngModelChange", function ListFormFieldComponent_div_1_div_1_Template_input_ngModelChange_1_listener($event) { const restoredCtx = i0.ɵɵrestoreView(_r5); const i_r3 = restoredCtx.index; const ctx_r4 = i0.ɵɵnextContext(2); return i0.ɵɵresetView((ctx_r4.value[i_r3] = $event)); })("input", function ListFormFieldComponent_div_1_div_1_Template_input_input_1_listener() { i0.ɵɵrestoreView(_r5); const ctx_r6 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r6.triggerValueChange()); });
22277
+ const _r6 = i0.ɵɵgetCurrentView();
22278
+ i0.ɵɵelementStart(0, "div", 8)(1, "input", 9);
22279
+ i0.ɵɵlistener("ngModelChange", function ListFormFieldComponent_div_1_div_1_Template_input_ngModelChange_1_listener($event) { const restoredCtx = i0.ɵɵrestoreView(_r6); const i_r4 = restoredCtx.index; const ctx_r5 = i0.ɵɵnextContext(2); return i0.ɵɵresetView((ctx_r5.value[i_r4] = $event)); })("input", function ListFormFieldComponent_div_1_div_1_Template_input_input_1_listener() { i0.ɵɵrestoreView(_r6); const ctx_r7 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r7.triggerValueChange()); });
22066
22280
  i0.ɵɵelementEnd();
22067
- i0.ɵɵelementStart(2, "button", 9);
22068
- i0.ɵɵlistener("click", function ListFormFieldComponent_div_1_div_1_Template_button_click_2_listener() { const restoredCtx = i0.ɵɵrestoreView(_r5); const i_r3 = restoredCtx.index; const ctx_r7 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r7.removeItemAt(i_r3)); });
22069
- i0.ɵɵelement(3, "span", 10);
22281
+ i0.ɵɵelementStart(2, "button", 10);
22282
+ i0.ɵɵlistener("click", function ListFormFieldComponent_div_1_div_1_Template_button_click_2_listener() { const restoredCtx = i0.ɵɵrestoreView(_r6); const i_r4 = restoredCtx.index; const ctx_r8 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r8.removeItemAt(i_r4)); });
22283
+ i0.ɵɵelement(3, "span", 11);
22070
22284
  i0.ɵɵelementEnd()();
22071
22285
  }
22072
22286
  if (rf & 2) {
22073
- const i_r3 = ctx.index;
22287
+ const i_r4 = ctx.index;
22074
22288
  const ctx_r1 = i0.ɵɵnextContext(2);
22075
22289
  i0.ɵɵadvance(1);
22076
- i0.ɵɵproperty("ngModel", ctx_r1.value[i_r3]);
22077
- i0.ɵɵattribute("aria-label", ctx_r1.strings.MsftSmeShell.Angular.Form.List.itemAriaLabel.format(ctx_r1.label, i_r3 + 1, ctx_r1.value.length));
22290
+ i0.ɵɵproperty("ngModel", ctx_r1.value[i_r4]);
22291
+ i0.ɵɵattribute("aria-label", ctx_r1.strings.MsftSmeShell.Angular.Form.List.itemAriaLabel.format(ctx_r1.label, i_r4 + 1, ctx_r1.value.length));
22078
22292
  i0.ɵɵadvance(1);
22079
22293
  i0.ɵɵproperty("title", ctx_r1.strings.MsftSmeShell.Angular.Form.List.removeButtonTooltip);
22080
22294
  i0.ɵɵattribute("aria-label", ctx_r1.strings.MsftSmeShell.Angular.Form.List.removeButtonAriaLabel);
@@ -22082,14 +22296,14 @@ function ListFormFieldComponent_div_1_div_1_Template(rf, ctx) {
22082
22296
  }
22083
22297
  function ListFormFieldComponent_div_1_Template(rf, ctx) {
22084
22298
  if (rf & 1) {
22085
- const _r9 = i0.ɵɵgetCurrentView();
22299
+ const _r10 = i0.ɵɵgetCurrentView();
22086
22300
  i0.ɵɵelementStart(0, "div", 3);
22087
22301
  i0.ɵɵtemplate(1, ListFormFieldComponent_div_1_div_1_Template, 4, 4, "div", 4);
22088
- i0.ɵɵelementStart(2, "button", 5);
22089
- i0.ɵɵlistener("click", function ListFormFieldComponent_div_1_Template_button_click_2_listener() { i0.ɵɵrestoreView(_r9); const ctx_r8 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r8.addListItem()); });
22090
- i0.ɵɵelement(3, "span", 6);
22091
- i0.ɵɵelementStart(4, "span");
22092
- i0.ɵɵtext(5);
22302
+ i0.ɵɵelementStart(2, "button", 5, 6);
22303
+ i0.ɵɵlistener("click", function ListFormFieldComponent_div_1_Template_button_click_2_listener() { i0.ɵɵrestoreView(_r10); const ctx_r9 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r9.addListItem()); });
22304
+ i0.ɵɵelement(4, "span", 7);
22305
+ i0.ɵɵelementStart(5, "span");
22306
+ i0.ɵɵtext(6);
22093
22307
  i0.ɵɵelementEnd()()();
22094
22308
  }
22095
22309
  if (rf & 2) {
@@ -22098,8 +22312,8 @@ function ListFormFieldComponent_div_1_Template(rf, ctx) {
22098
22312
  i0.ɵɵproperty("ngForOf", ctx_r0.value)("ngForTrackBy", ctx_r0.trackByIndex);
22099
22313
  i0.ɵɵadvance(1);
22100
22314
  i0.ɵɵproperty("title", ctx_r0.strings.MsftSmeShell.Angular.Form.List.addButtonTooltip);
22101
- i0.ɵɵattribute("aria-label", ctx_r0.strings.MsftSmeShell.Angular.Form.List.addButtonAriaLabel);
22102
- i0.ɵɵadvance(3);
22315
+ i0.ɵɵattribute("aria-label", ctx_r0.addButtonAriaLabel);
22316
+ i0.ɵɵadvance(4);
22103
22317
  i0.ɵɵtextInterpolate(ctx_r0.strings.MsftSmeShell.Angular.Form.List.addButtonAriaLabel);
22104
22318
  }
22105
22319
  }
@@ -22110,8 +22324,9 @@ class ListFormFieldComponent extends SmeInternalFormFieldComponent {
22110
22324
  /**
22111
22325
  * Initializes a new instance of the ListFormFieldComponent
22112
22326
  */
22113
- constructor(injector) {
22327
+ constructor(injector, listFormFieldAccessibilityManagerService) {
22114
22328
  super(injector);
22329
+ this.listFormFieldAccessibilityManagerService = listFormFieldAccessibilityManagerService;
22115
22330
  }
22116
22331
  /**
22117
22332
  * The source name to use for logging
@@ -22125,6 +22340,15 @@ class ListFormFieldComponent extends SmeInternalFormFieldComponent {
22125
22340
  get ariaLabel() {
22126
22341
  return this.getMergedDescriptionLabel();
22127
22342
  }
22343
+ /**
22344
+ * It gets the aria label for the add button that can respect when the field is required.
22345
+ */
22346
+ get addButtonAriaLabel() {
22347
+ if (this.required) {
22348
+ return this.strings.MsftSmeShell.Angular.Calendar.AriaLabel.Required.format(this.strings.MsftSmeShell.Angular.Form.List.addButtonAriaLabel);
22349
+ }
22350
+ return this.strings.MsftSmeShell.Angular.Form.List.addButtonAriaLabel;
22351
+ }
22128
22352
  /**
22129
22353
  * The method called after the component is initialized.
22130
22354
  */
@@ -22137,6 +22361,7 @@ class ListFormFieldComponent extends SmeInternalFormFieldComponent {
22137
22361
  */
22138
22362
  addListItem(value = '') {
22139
22363
  this.value = [...this.value, value];
22364
+ this.listFormFieldAccessibilityManagerService.add(this.value, this.addButton, this.hostElement);
22140
22365
  }
22141
22366
  /**
22142
22367
  * Removes an item at the given index
@@ -22145,10 +22370,7 @@ class ListFormFieldComponent extends SmeInternalFormFieldComponent {
22145
22370
  const value = [...this.value];
22146
22371
  value.splice(index, 1);
22147
22372
  this.value = value;
22148
- const firstFocusable = Dom.getFirstFocusableDescendent(this.hostElement.nativeElement);
22149
- if (firstFocusable) {
22150
- firstFocusable.focus();
22151
- }
22373
+ this.listFormFieldAccessibilityManagerService.delete(this.value, this.addButton, this.hostElement);
22152
22374
  }
22153
22375
  /**
22154
22376
  * The method called when a <select> element's value changes.
@@ -22189,15 +22411,23 @@ class ListFormFieldComponent extends SmeInternalFormFieldComponent {
22189
22411
  return super.validate(c);
22190
22412
  }
22191
22413
  }
22192
- /** @nocollapse */ ListFormFieldComponent.ɵfac = function ListFormFieldComponent_Factory(t) { return new (t || ListFormFieldComponent)(i0.ɵɵdirectiveInject(i0.Injector)); };
22193
- /** @nocollapse */ ListFormFieldComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: ListFormFieldComponent, selectors: [["sme-form-field", "type", "list"]], hostVars: 1, hostBindings: function ListFormFieldComponent_HostBindings(rf, ctx) {
22414
+ /** @nocollapse */ ListFormFieldComponent.ɵfac = function ListFormFieldComponent_Factory(t) { return new (t || ListFormFieldComponent)(i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵdirectiveInject(ListFormFieldAccessibilityManagerService)); };
22415
+ /** @nocollapse */ ListFormFieldComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: ListFormFieldComponent, selectors: [["sme-form-field", "type", "list"]], viewQuery: function ListFormFieldComponent_Query(rf, ctx) {
22416
+ if (rf & 1) {
22417
+ i0.ɵɵviewQuery(_c0$17, 5);
22418
+ }
22419
+ if (rf & 2) {
22420
+ let _t;
22421
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.addButton = _t.first);
22422
+ }
22423
+ }, hostVars: 1, hostBindings: function ListFormFieldComponent_HostBindings(rf, ctx) {
22194
22424
  if (rf & 2) {
22195
22425
  i0.ɵɵattribute("aria-label", ctx.ariaLabel);
22196
22426
  }
22197
- }, features: [i0.ɵɵInheritDefinitionFeature], attrs: _c0$17, decls: 3, vars: 3, consts: [[3, "formField"], ["class", "sme-margin-bottom-xs sme-form-field-editor", 4, "ngIf"], [3, "alert"], [1, "sme-margin-bottom-xs", "sme-form-field-editor"], ["class", "sme-arrange-stack-h sme-margin-bottom-xs sme-form-field-width", 4, "ngFor", "ngForOf", "ngForTrackBy"], ["type", "button", 1, "sme-button-trigger", "sme-button-auto-width", "sme-margin-bottom-xs", 3, "title", "click"], [1, "sme-icon", "sme-icon-add"], [1, "sme-arrange-stack-h", "sme-margin-bottom-xs", "sme-form-field-width"], ["type", "text", 1, "sme-position-flex-auto", "sme-margin-right-xs", 3, "ngModel", "ngModelChange", "input"], ["type", "button", 1, "sme-button-trigger", "sme-position-flex-none", "sme-button-auto-width", 3, "title", "click"], [1, "sme-icon", "sme-icon-cancel", "sme-color-red"]], template: function ListFormFieldComponent_Template(rf, ctx) {
22427
+ }, features: [i0.ɵɵInheritDefinitionFeature], attrs: _c1$D, decls: 3, vars: 3, consts: [[3, "formField"], ["class", "sme-margin-bottom-xs sme-form-field-editor", 4, "ngIf"], [3, "alert"], [1, "sme-margin-bottom-xs", "sme-form-field-editor"], ["class", "sme-arrange-stack-h sme-margin-bottom-xs sme-form-field-width", 4, "ngFor", "ngForOf", "ngForTrackBy"], ["type", "button", 1, "sme-button-trigger", "sme-button-auto-width", "sme-margin-bottom-xs", 3, "title", "click"], ["addButton", ""], [1, "sme-icon", "sme-icon-add"], [1, "sme-arrange-stack-h", "sme-margin-bottom-xs", "sme-form-field-width"], ["type", "text", 1, "sme-position-flex-auto", "sme-margin-right-xs", 3, "ngModel", "ngModelChange", "input"], ["type", "button", 1, "sme-button-trigger", "sme-position-flex-none", "sme-button-auto-width", 3, "title", "click"], [1, "sme-icon", "sme-icon-cancel", "sme-color-red"]], template: function ListFormFieldComponent_Template(rf, ctx) {
22198
22428
  if (rf & 1) {
22199
22429
  i0.ɵɵelementStart(0, "sme-form-field-layout", 0);
22200
- i0.ɵɵtemplate(1, ListFormFieldComponent_div_1_Template, 6, 5, "div", 1);
22430
+ i0.ɵɵtemplate(1, ListFormFieldComponent_div_1_Template, 7, 5, "div", 1);
22201
22431
  i0.ɵɵelement(2, "sme-validation-alert", 2);
22202
22432
  i0.ɵɵelementEnd();
22203
22433
  }
@@ -22212,15 +22442,18 @@ class ListFormFieldComponent extends SmeInternalFormFieldComponent {
22212
22442
  (function () {
22213
22443
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ListFormFieldComponent, [{
22214
22444
  type: Component,
22215
- args: [{ selector: 'sme-form-field[type="list"]', template: "<sme-form-field-layout [formField]=\"this\">\r\n <div *ngIf=\"value\" class=\"sme-margin-bottom-xs sme-form-field-editor\">\r\n <div *ngFor=\"let item of value;trackBy: trackByIndex; let i = index\"\r\n class=\"sme-arrange-stack-h sme-margin-bottom-xs sme-form-field-width\">\r\n <input class=\"sme-position-flex-auto sme-margin-right-xs\" type=\"text\" [(ngModel)]=\"value[i]\"\r\n (input)=\"triggerValueChange()\"\r\n [attr.aria-label]=\"strings.MsftSmeShell.Angular.Form.List.itemAriaLabel.format(label, i + 1, value.length)\" />\r\n <button type=\"button\" class=\"sme-button-trigger sme-position-flex-none sme-button-auto-width\"\r\n [attr.aria-label]=\"strings.MsftSmeShell.Angular.Form.List.removeButtonAriaLabel\"\r\n [title]=\"strings.MsftSmeShell.Angular.Form.List.removeButtonTooltip\" (click)=\"removeItemAt(i)\">\r\n <span class=\"sme-icon sme-icon-cancel sme-color-red\"></span>\r\n </button>\r\n </div>\r\n <button type=\"button\" class=\"sme-button-trigger sme-button-auto-width sme-margin-bottom-xs\"\r\n [attr.aria-label]=\"strings.MsftSmeShell.Angular.Form.List.addButtonAriaLabel\"\r\n [title]=\"strings.MsftSmeShell.Angular.Form.List.addButtonTooltip\" (click)=\"addListItem()\">\r\n <span class=\"sme-icon sme-icon-add\"></span>\r\n <span>{{strings.MsftSmeShell.Angular.Form.List.addButtonAriaLabel}}</span>\r\n </button>\r\n </div>\r\n <sme-validation-alert [alert]=\"alert\"></sme-validation-alert>\r\n</sme-form-field-layout>" }]
22216
- }], function () { return [{ type: i0.Injector }]; }, { ariaLabel: [{
22445
+ args: [{ selector: 'sme-form-field[type="list"]', template: "<sme-form-field-layout [formField]=\"this\">\r\n <div *ngIf=\"value\" class=\"sme-margin-bottom-xs sme-form-field-editor\">\r\n <div *ngFor=\"let item of value;trackBy: trackByIndex; let i = index\"\r\n class=\"sme-arrange-stack-h sme-margin-bottom-xs sme-form-field-width\">\r\n <input class=\"sme-position-flex-auto sme-margin-right-xs\" type=\"text\" [(ngModel)]=\"value[i]\"\r\n (input)=\"triggerValueChange()\"\r\n [attr.aria-label]=\"strings.MsftSmeShell.Angular.Form.List.itemAriaLabel.format(label, i + 1, value.length)\" />\r\n <button type=\"button\" class=\"sme-button-trigger sme-position-flex-none sme-button-auto-width\"\r\n [attr.aria-label]=\"strings.MsftSmeShell.Angular.Form.List.removeButtonAriaLabel\"\r\n [title]=\"strings.MsftSmeShell.Angular.Form.List.removeButtonTooltip\" (click)=\"removeItemAt(i)\">\r\n <span class=\"sme-icon sme-icon-cancel sme-color-red\"></span>\r\n </button>\r\n </div>\r\n <button #addButton type=\"button\" class=\"sme-button-trigger sme-button-auto-width sme-margin-bottom-xs\"\r\n [attr.aria-label]=\"addButtonAriaLabel\"\r\n [title]=\"strings.MsftSmeShell.Angular.Form.List.addButtonTooltip\" (click)=\"addListItem()\">\r\n <span class=\"sme-icon sme-icon-add\"></span>\r\n <span>{{ strings.MsftSmeShell.Angular.Form.List.addButtonAriaLabel }}</span>\r\n </button>\r\n </div>\r\n <sme-validation-alert [alert]=\"alert\"></sme-validation-alert>\r\n</sme-form-field-layout>" }]
22446
+ }], function () { return [{ type: i0.Injector }, { type: ListFormFieldAccessibilityManagerService }]; }, { addButton: [{
22447
+ type: ViewChild,
22448
+ args: ['addButton']
22449
+ }], ariaLabel: [{
22217
22450
  type: HostBinding,
22218
22451
  args: ['attr.aria-label']
22219
22452
  }] });
22220
22453
  })();
22221
22454
 
22222
22455
  const _c0$16 = ["input"];
22223
- const _c1$B = ["container"];
22456
+ const _c1$C = ["container"];
22224
22457
  const _c2$b = ["incrementButton"];
22225
22458
  const _c3$7 = ["decrementButton"];
22226
22459
  const _c4$6 = ["type", "number"];
@@ -22509,7 +22742,7 @@ let NumberFormFieldComponent = class NumberFormFieldComponent extends SmeInterna
22509
22742
  /** @nocollapse */ NumberFormFieldComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: NumberFormFieldComponent, selectors: [["sme-form-field", "type", "number"]], viewQuery: function NumberFormFieldComponent_Query(rf, ctx) {
22510
22743
  if (rf & 1) {
22511
22744
  i0.ɵɵviewQuery(_c0$16, 5);
22512
- i0.ɵɵviewQuery(_c1$B, 5);
22745
+ i0.ɵɵviewQuery(_c1$C, 5);
22513
22746
  i0.ɵɵviewQuery(_c2$b, 5);
22514
22747
  i0.ɵɵviewQuery(_c3$7, 5);
22515
22748
  }
@@ -22613,6 +22846,58 @@ NumberFormFieldComponent = __decorate([
22613
22846
  }] });
22614
22847
  })();
22615
22848
 
22849
+ class OrderedListFormFieldAccessibilityManagerService {
22850
+ constructor(formFieldAccessibilityManagerBaseService) {
22851
+ this.formFieldAccessibilityManagerBaseService = formFieldAccessibilityManagerBaseService;
22852
+ }
22853
+ /**
22854
+ * It handles the focus when deleting an item from the list.
22855
+ * @param value the value for the list.
22856
+ * @param addButton the element reference for the add button.
22857
+ * @param hostElement the element reference for the host element.
22858
+ * @returns void
22859
+ */
22860
+ delete(value, addButton, hostElement) {
22861
+ this.formFieldAccessibilityManagerBaseService.listFormFieldFocusHandlerOnKeyboardAction(value, addButton, hostElement);
22862
+ }
22863
+ /**
22864
+ * It handles the focus when adding an item to the list.
22865
+ * @param value the value for the list.
22866
+ * @param addButton the element reference for the add button.
22867
+ * @param hostElement the element reference for the host element.
22868
+ * @returns void
22869
+ */
22870
+ add(value, addButton, hostElement) {
22871
+ this.formFieldAccessibilityManagerBaseService.listFormFieldFocusHandlerOnKeyboardAction(value, addButton, hostElement, false);
22872
+ }
22873
+ /**
22874
+ * It handles the focus when promoting an item in the list.
22875
+ * @param hostElement The element reference for the host element.
22876
+ * @param index the current index.
22877
+ */
22878
+ promote(value, hostElement, buttonId) {
22879
+ this.formFieldAccessibilityManagerBaseService.deferredFocusOnTargetBySelector(value, hostElement, buttonId);
22880
+ }
22881
+ /**
22882
+ * It handles the focus when demoting an item in the list.
22883
+ * @param hostElement The element reference for the host element.
22884
+ * @param index the current index.
22885
+ */
22886
+ demote(value, hostElement, buttonId) {
22887
+ this.formFieldAccessibilityManagerBaseService.deferredFocusOnTargetBySelector(value, hostElement, buttonId);
22888
+ }
22889
+ }
22890
+ /** @nocollapse */ OrderedListFormFieldAccessibilityManagerService.ɵfac = function OrderedListFormFieldAccessibilityManagerService_Factory(t) { return new (t || OrderedListFormFieldAccessibilityManagerService)(i0.ɵɵinject(FormFieldAccessibilityManagerBaseService)); };
22891
+ /** @nocollapse */ OrderedListFormFieldAccessibilityManagerService.ɵprov = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjectable({ token: OrderedListFormFieldAccessibilityManagerService, factory: OrderedListFormFieldAccessibilityManagerService.ɵfac, providedIn: 'root' });
22892
+ (function () {
22893
+ (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(OrderedListFormFieldAccessibilityManagerService, [{
22894
+ type: Injectable,
22895
+ args: [{
22896
+ providedIn: 'root'
22897
+ }]
22898
+ }], function () { return [{ type: FormFieldAccessibilityManagerBaseService }]; }, null);
22899
+ })();
22900
+
22616
22901
  function OrderedListFormFieldLoaderComponent_sme_option_2_Template(rf, ctx) {
22617
22902
  if (rf & 1) {
22618
22903
  i0.ɵɵelement(0, "sme-option", 4);
@@ -22645,7 +22930,8 @@ function OrderedListFormFieldLoaderComponent_ng_container_3_Template(rf, ctx) {
22645
22930
  i0.ɵɵproperty("ngForOf", ctx_r2.resolveComponentMember(ctx_r2.propertySchema.options.itemsBinding));
22646
22931
  }
22647
22932
  }
22648
- const _c0$15 = ["type", "orderedlist"];
22933
+ const _c0$15 = ["addButton"];
22934
+ const _c1$B = ["type", "orderedlist"];
22649
22935
  function OrderedListFormFieldComponent_div_1_div_1_p_3_Template(rf, ctx) {
22650
22936
  if (rf & 1) {
22651
22937
  i0.ɵɵelementStart(0, "p", 14);
@@ -22655,9 +22941,9 @@ function OrderedListFormFieldComponent_div_1_div_1_p_3_Template(rf, ctx) {
22655
22941
  if (rf & 2) {
22656
22942
  const i_r4 = i0.ɵɵnextContext().index;
22657
22943
  const ctx_r5 = i0.ɵɵnextContext(2);
22658
- i0.ɵɵattribute("aria-describedby", ctx_r5.idBag.detailsSpan + i_r4);
22944
+ i0.ɵɵattribute("aria-label", ctx_r5.idBag.detailsSpan + i_r4);
22659
22945
  i0.ɵɵadvance(1);
22660
- i0.ɵɵtextInterpolate(ctx_r5.arrayGetValueDisplayString(ctx_r5.value[i_r4]));
22946
+ i0.ɵɵtextInterpolate1(" ", ctx_r5.arrayGetValueDisplayString(ctx_r5.value[i_r4]), "");
22661
22947
  }
22662
22948
  }
22663
22949
  function OrderedListFormFieldComponent_div_1_div_1_sme_form_field_5_ng_container_1_sme_option_1_Template(rf, ctx) {
@@ -22687,14 +22973,14 @@ function OrderedListFormFieldComponent_div_1_div_1_sme_form_field_5_Template(rf,
22687
22973
  if (rf & 1) {
22688
22974
  const _r17 = i0.ɵɵgetCurrentView();
22689
22975
  i0.ɵɵelementStart(0, "sme-form-field", 15);
22690
- i0.ɵɵlistener("ngModelChange", function OrderedListFormFieldComponent_div_1_div_1_sme_form_field_5_Template_sme_form_field_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r17); const i_r4 = i0.ɵɵnextContext().index; const ctx_r16 = i0.ɵɵnextContext(2); return i0.ɵɵresetView((ctx_r16.value[i_r4] = $event)); })("ngModelChange", function OrderedListFormFieldComponent_div_1_div_1_sme_form_field_5_Template_sme_form_field_ngModelChange_0_listener() { i0.ɵɵrestoreView(_r17); const ctx_r19 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r19.triggerValueChange()); })("customValidate", function OrderedListFormFieldComponent_div_1_div_1_sme_form_field_5_Template_sme_form_field_customValidate_0_listener() { i0.ɵɵrestoreView(_r17); const ctx_r20 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r20.newItemCheck()); });
22976
+ i0.ɵɵlistener("ngModelChange", function OrderedListFormFieldComponent_div_1_div_1_sme_form_field_5_Template_sme_form_field_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r17); const i_r4 = i0.ɵɵnextContext().index; const ctx_r16 = i0.ɵɵnextContext(2); return i0.ɵɵresetView((ctx_r16.value[i_r4] = $event)); })("ngModelChange", function OrderedListFormFieldComponent_div_1_div_1_sme_form_field_5_Template_sme_form_field_ngModelChange_0_listener() { i0.ɵɵrestoreView(_r17); const ctx_r19 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r19.triggerValueChange()); });
22691
22977
  i0.ɵɵtemplate(1, OrderedListFormFieldComponent_div_1_div_1_sme_form_field_5_ng_container_1_Template, 2, 1, "ng-container", 16);
22692
22978
  i0.ɵɵelementEnd();
22693
22979
  }
22694
22980
  if (rf & 2) {
22695
- const ctx_r21 = i0.ɵɵnextContext();
22696
- const item_r3 = ctx_r21.$implicit;
22697
- const i_r4 = ctx_r21.index;
22981
+ const ctx_r20 = i0.ɵɵnextContext();
22982
+ const item_r3 = ctx_r20.$implicit;
22983
+ const i_r4 = ctx_r20.index;
22698
22984
  const ctx_r6 = i0.ɵɵnextContext(2);
22699
22985
  i0.ɵɵproperty("utaId", item_r3 ? item_r3.toString() + "-combobox" : "new-combobox")("hideHeader", true)("valueComparator", ctx_r6.valueComparator)("ngModel", ctx_r6.value[i_r4])("label", ctx_r6.label)("searchable", ctx_r6.searchable);
22700
22986
  i0.ɵɵadvance(1);
@@ -22703,9 +22989,9 @@ function OrderedListFormFieldComponent_div_1_div_1_sme_form_field_5_Template(rf,
22703
22989
  }
22704
22990
  function OrderedListFormFieldComponent_div_1_div_1_button_6_Template(rf, ctx) {
22705
22991
  if (rf & 1) {
22706
- const _r24 = i0.ɵɵgetCurrentView();
22992
+ const _r23 = i0.ɵɵgetCurrentView();
22707
22993
  i0.ɵɵelementStart(0, "button", 19);
22708
- i0.ɵɵlistener("click", function OrderedListFormFieldComponent_div_1_div_1_button_6_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r24); const i_r4 = i0.ɵɵnextContext().index; const ctx_r22 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r22.promoteItemAt(i_r4)); });
22994
+ i0.ɵɵlistener("click", function OrderedListFormFieldComponent_div_1_div_1_button_6_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r23); const i_r4 = i0.ɵɵnextContext().index; const ctx_r21 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r21.promoteItemAt(i_r4)); });
22709
22995
  i0.ɵɵelement(1, "span", 20);
22710
22996
  i0.ɵɵelementEnd();
22711
22997
  }
@@ -22718,9 +23004,9 @@ function OrderedListFormFieldComponent_div_1_div_1_button_6_Template(rf, ctx) {
22718
23004
  }
22719
23005
  function OrderedListFormFieldComponent_div_1_div_1_button_7_Template(rf, ctx) {
22720
23006
  if (rf & 1) {
22721
- const _r28 = i0.ɵɵgetCurrentView();
23007
+ const _r27 = i0.ɵɵgetCurrentView();
22722
23008
  i0.ɵɵelementStart(0, "button", 21);
22723
- i0.ɵɵlistener("click", function OrderedListFormFieldComponent_div_1_div_1_button_7_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r28); const i_r4 = i0.ɵɵnextContext().index; const ctx_r26 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r26.demoteItemAt(i_r4)); });
23009
+ i0.ɵɵlistener("click", function OrderedListFormFieldComponent_div_1_div_1_button_7_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r27); const i_r4 = i0.ɵɵnextContext().index; const ctx_r25 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r25.demoteItemAt(i_r4)); });
22724
23010
  i0.ɵɵelement(1, "span", 22);
22725
23011
  i0.ɵɵelementEnd();
22726
23012
  }
@@ -22733,9 +23019,9 @@ function OrderedListFormFieldComponent_div_1_div_1_button_7_Template(rf, ctx) {
22733
23019
  }
22734
23020
  function OrderedListFormFieldComponent_div_1_div_1_button_8_Template(rf, ctx) {
22735
23021
  if (rf & 1) {
22736
- const _r32 = i0.ɵɵgetCurrentView();
23022
+ const _r31 = i0.ɵɵgetCurrentView();
22737
23023
  i0.ɵɵelementStart(0, "button", 23);
22738
- i0.ɵɵlistener("click", function OrderedListFormFieldComponent_div_1_div_1_button_8_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r32); const i_r4 = i0.ɵɵnextContext().index; const ctx_r30 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r30.removeItemAt(i_r4)); });
23024
+ i0.ɵɵlistener("click", function OrderedListFormFieldComponent_div_1_div_1_button_8_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r31); const i_r4 = i0.ɵɵnextContext().index; const ctx_r29 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r29.removeItemAt(i_r4)); });
22739
23025
  i0.ɵɵelement(1, "span", 24);
22740
23026
  i0.ɵɵelementEnd();
22741
23027
  }
@@ -22785,16 +23071,16 @@ function OrderedListFormFieldComponent_div_1_div_1_Template(rf, ctx) {
22785
23071
  function OrderedListFormFieldComponent_div_1_button_2_Template(rf, ctx) {
22786
23072
  if (rf & 1) {
22787
23073
  const _r34 = i0.ɵɵgetCurrentView();
22788
- i0.ɵɵelementStart(0, "button", 25);
23074
+ i0.ɵɵelementStart(0, "button", 25, 26);
22789
23075
  i0.ɵɵlistener("click", function OrderedListFormFieldComponent_div_1_button_2_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r34); const ctx_r33 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r33.addListItem()); });
22790
- i0.ɵɵtext(1);
23076
+ i0.ɵɵtext(2);
22791
23077
  i0.ɵɵelementEnd();
22792
23078
  }
22793
23079
  if (rf & 2) {
22794
23080
  const ctx_r2 = i0.ɵɵnextContext(2);
22795
23081
  i0.ɵɵproperty("smeDisabled", ctx_r2.loadingOrDisabled || ctx_r2.value.length === ctx_r2.options.length)("title", ctx_r2.strings.MsftSmeShell.Angular.Form.OrderedList.addButtonTooltip);
22796
- i0.ɵɵattribute("aria-label", ctx_r2.strings.MsftSmeShell.Angular.Form.OrderedList.addButtonAriaLabel);
22797
- i0.ɵɵadvance(1);
23082
+ i0.ɵɵattribute("aria-label", ctx_r2.addRemoveButtonArialLabel);
23083
+ i0.ɵɵadvance(2);
22798
23084
  i0.ɵɵtextInterpolate1(" ", ctx_r2.addButtonText, " ");
22799
23085
  }
22800
23086
  }
@@ -22802,7 +23088,7 @@ function OrderedListFormFieldComponent_div_1_Template(rf, ctx) {
22802
23088
  if (rf & 1) {
22803
23089
  i0.ɵɵelementStart(0, "div", 3);
22804
23090
  i0.ɵɵtemplate(1, OrderedListFormFieldComponent_div_1_div_1_Template, 9, 10, "div", 4);
22805
- i0.ɵɵtemplate(2, OrderedListFormFieldComponent_div_1_button_2_Template, 2, 4, "button", 5);
23091
+ i0.ɵɵtemplate(2, OrderedListFormFieldComponent_div_1_button_2_Template, 3, 4, "button", 5);
22806
23092
  i0.ɵɵelementEnd();
22807
23093
  }
22808
23094
  if (rf & 2) {
@@ -22882,8 +23168,9 @@ let OrderedListFormFieldComponent = class OrderedListFormFieldComponent extends
22882
23168
  /**
22883
23169
  * Initializes a new instance of the OrderedListFormFieldComponent
22884
23170
  */
22885
- constructor(injector) {
23171
+ constructor(injector, orderedListFormFieldAccessibilityManagerService) {
22886
23172
  super(injector);
23173
+ this.orderedListFormFieldAccessibilityManagerService = orderedListFormFieldAccessibilityManagerService;
22887
23174
  /**
22888
23175
  * Single selection is not supported by ordered list
22889
23176
  */
@@ -22900,10 +23187,6 @@ let OrderedListFormFieldComponent = class OrderedListFormFieldComponent extends
22900
23187
  * Indicates allow empty selection
22901
23188
  */
22902
23189
  this.allowEmpty = true;
22903
- /**
22904
- * Tracks when new item is added to place focus on.
22905
- */
22906
- this.newItemAdded = false;
22907
23190
  this.instructions = this.strings.MsftSmeShell.Angular.Form.OrderedList.instructions;
22908
23191
  this.showAddRemove = true;
22909
23192
  this.showMove = true;
@@ -22927,6 +23210,17 @@ let OrderedListFormFieldComponent = class OrderedListFormFieldComponent extends
22927
23210
  get ariaLabel() {
22928
23211
  return this.getMergedDescriptionLabel();
22929
23212
  }
23213
+ /**
23214
+ * The aria label for the add/remove button when aria label is passed in.
23215
+ * The aria label needs to be in sync with the add button text so that narrator can read the correct content.
23216
+ * It should also respect the required state.
23217
+ */
23218
+ get addRemoveButtonArialLabel() {
23219
+ if (this.addButtonText) {
23220
+ return this.required ? this.strings.MsftSmeShell.Angular.Calendar.AriaLabel.Required.format(this.addButtonText) : this.addButtonText;
23221
+ }
23222
+ return this.required ? this.strings.MsftSmeShell.Angular.Calendar.AriaLabel.Required.format(this.strings.MsftSmeShell.Angular.Form.OrderedList.addButtonAriaLabel) : this.strings.MsftSmeShell.Angular.Form.OrderedList.addButtonAriaLabel;
23223
+ }
22930
23224
  /**
22931
23225
  * The method called after the component is initialized.
22932
23226
  */
@@ -22964,7 +23258,7 @@ let OrderedListFormFieldComponent = class OrderedListFormFieldComponent extends
22964
23258
  return false;
22965
23259
  }
22966
23260
  this.value = [...this.value, value];
22967
- this.newItemAdded = true;
23261
+ this.orderedListFormFieldAccessibilityManagerService.add(this.value, this.addButton, this.hostElement);
22968
23262
  return true;
22969
23263
  }
22970
23264
  /**
@@ -22972,26 +23266,22 @@ let OrderedListFormFieldComponent = class OrderedListFormFieldComponent extends
22972
23266
  * @param index The index of the item being demoted.
22973
23267
  */
22974
23268
  demoteItemAt(index) {
22975
- if (index !== this.value.length - 1) {
22976
- this.moveItem(index, index + 1);
22977
- const focusable = document.getElementById(`${this.idBag.demote}${index + 1}`);
22978
- if (focusable) {
22979
- focusable.focus();
22980
- }
23269
+ if (index === this.value.length - 1) {
23270
+ return;
22981
23271
  }
23272
+ this.moveItem(index, index + 1);
23273
+ this.orderedListFormFieldAccessibilityManagerService.demote(this.value, this.hostElement, `#${this.idBag.demote}${index + 1}`);
22982
23274
  }
22983
23275
  /**
22984
23276
  * Promotes an item at the given index by 1
22985
23277
  * @param index The index of the item being promoted.
22986
23278
  */
22987
23279
  promoteItemAt(index) {
22988
- if (index !== 0) {
22989
- this.moveItem(index, index - 1);
22990
- const focusable = document.getElementById(`${this.idBag.promote}${index - 1}`);
22991
- if (focusable) {
22992
- focusable.focus();
22993
- }
23280
+ if (index === 0) {
23281
+ return;
22994
23282
  }
23283
+ this.moveItem(index, index - 1);
23284
+ this.orderedListFormFieldAccessibilityManagerService.promote(this.value, this.hostElement, `#${this.idBag.promote}${index - 1}`);
22995
23285
  }
22996
23286
  /**
22997
23287
  * Returns the index to track items in the array.
@@ -23003,10 +23293,7 @@ let OrderedListFormFieldComponent = class OrderedListFormFieldComponent extends
23003
23293
  removeItemAt(index) {
23004
23294
  this.value.splice(index, 1);
23005
23295
  this.triggerValueChange();
23006
- const firstFocusable = Dom.getFirstFocusableDescendent(this.hostElement.nativeElement);
23007
- if (firstFocusable) {
23008
- firstFocusable.focus();
23009
- }
23296
+ this.orderedListFormFieldAccessibilityManagerService.delete(this.value, this.addButton, this.hostElement);
23010
23297
  }
23011
23298
  /**
23012
23299
  * Moves an element of an array from a starting index to a destination index.
@@ -23029,18 +23316,6 @@ let OrderedListFormFieldComponent = class OrderedListFormFieldComponent extends
23029
23316
  }
23030
23317
  this.value = value;
23031
23318
  }
23032
- /**
23033
- * Places focus on new item when it is added.
23034
- */
23035
- newItemCheck() {
23036
- if (this.newItemAdded) {
23037
- const focusable = Dom.findChildElementDFS(this.hostElement.nativeElement, (element) => element.tagName.toUpperCase() === 'INPUT', ElementPosition.Last);
23038
- if (focusable) {
23039
- focusable.focus();
23040
- }
23041
- this.newItemAdded = false;
23042
- }
23043
- }
23044
23319
  /**
23045
23320
  * The method called when a <select> element's value changes.
23046
23321
  */
@@ -23078,12 +23353,20 @@ let OrderedListFormFieldComponent = class OrderedListFormFieldComponent extends
23078
23353
  return super.validate(c);
23079
23354
  }
23080
23355
  };
23081
- /** @nocollapse */ OrderedListFormFieldComponent.ɵfac = function OrderedListFormFieldComponent_Factory(t) { return new (t || OrderedListFormFieldComponent)(i0.ɵɵdirectiveInject(i0.Injector)); };
23082
- /** @nocollapse */ OrderedListFormFieldComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: OrderedListFormFieldComponent, selectors: [["sme-form-field", "type", "orderedlist"]], hostVars: 1, hostBindings: function OrderedListFormFieldComponent_HostBindings(rf, ctx) {
23356
+ /** @nocollapse */ OrderedListFormFieldComponent.ɵfac = function OrderedListFormFieldComponent_Factory(t) { return new (t || OrderedListFormFieldComponent)(i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵdirectiveInject(OrderedListFormFieldAccessibilityManagerService)); };
23357
+ /** @nocollapse */ OrderedListFormFieldComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: OrderedListFormFieldComponent, selectors: [["sme-form-field", "type", "orderedlist"]], viewQuery: function OrderedListFormFieldComponent_Query(rf, ctx) {
23358
+ if (rf & 1) {
23359
+ i0.ɵɵviewQuery(_c0$15, 5);
23360
+ }
23361
+ if (rf & 2) {
23362
+ let _t;
23363
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.addButton = _t.first);
23364
+ }
23365
+ }, hostVars: 1, hostBindings: function OrderedListFormFieldComponent_HostBindings(rf, ctx) {
23083
23366
  if (rf & 2) {
23084
23367
  i0.ɵɵattribute("aria-label", ctx.ariaLabel);
23085
23368
  }
23086
- }, inputs: { showAddRemove: "showAddRemove", showMove: "showMove", showSelect: "showSelect", addButtonText: "addButtonText", searchable: "searchable", allowEmpty: "allowEmpty" }, features: [i0.ɵɵInheritDefinitionFeature], attrs: _c0$15, decls: 3, vars: 3, consts: [[3, "formField"], ["class", "sme-margin-bottom-xs sme-form-field-editor", 4, "ngIf"], [3, "alert"], [1, "sme-margin-bottom-xs", "sme-form-field-editor"], ["class", "sme-arrange-stack-h sme-margin-bottom-xs sme-form-field-width", 4, "ngFor", "ngForOf", "ngForTrackBy"], ["type", "button", "class", "sme-button-trigger sme-button-auto-width sme-icon sme-icon-add sme-margin-bottom-xs", "data-uta-id", "add-button", 3, "smeDisabled", "title", "click", 4, "ngIf"], [1, "sme-arrange-stack-h", "sme-margin-bottom-xs", "sme-form-field-width"], [1, "sme-screen-reader", 3, "id"], ["class", "sme-position-flex-auto", "role", "textbox", 4, "ngIf"], [1, "sme-layout-relative", "sme-position-flex-auto"], ["type", "combobox", 3, "utaId", "hideHeader", "valueComparator", "ngModel", "label", "searchable", "ngModelChange", "customValidate", 4, "ngIf"], ["type", "button", "class", "sme-button-trigger sme-position-flex-none sme-button-auto-width sme-form-field-height", "data-uta-id", "promote-button", 3, "id", "title", "smeDisabled", "click", 4, "ngIf"], ["type", "button", "class", "sme-button-trigger sme-position-flex-none sme-button-auto-width sme-form-field-height", "data-uta-id", "demote-button", 3, "id", "title", "smeDisabled", "click", 4, "ngIf"], ["type", "button", "class", "sme-button-trigger sme-position-flex-none sme-button-auto-width sme-form-field-height", "data-uta-id", "remove-button", 3, "title", "smeDisabled", "click", 4, "ngIf"], ["role", "textbox", 1, "sme-position-flex-auto"], ["type", "combobox", 3, "utaId", "hideHeader", "valueComparator", "ngModel", "label", "searchable", "ngModelChange", "customValidate"], [4, "ngFor", "ngForOf"], [3, "utaId", "value", "label", "disabled", 4, "ngIf"], [3, "utaId", "value", "label", "disabled"], ["type", "button", "data-uta-id", "promote-button", 1, "sme-button-trigger", "sme-position-flex-none", "sme-button-auto-width", "sme-form-field-height", 3, "id", "title", "smeDisabled", "click"], [1, "sme-icon", "sme-icon-up"], ["type", "button", "data-uta-id", "demote-button", 1, "sme-button-trigger", "sme-position-flex-none", "sme-button-auto-width", "sme-form-field-height", 3, "id", "title", "smeDisabled", "click"], [1, "sme-icon", "sme-icon-down"], ["type", "button", "data-uta-id", "remove-button", 1, "sme-button-trigger", "sme-position-flex-none", "sme-button-auto-width", "sme-form-field-height", 3, "title", "smeDisabled", "click"], [1, "sme-icon", "sme-icon-cancel", "sme-color-red"], ["type", "button", "data-uta-id", "add-button", 1, "sme-button-trigger", "sme-button-auto-width", "sme-icon", "sme-icon-add", "sme-margin-bottom-xs", 3, "smeDisabled", "title", "click"]], template: function OrderedListFormFieldComponent_Template(rf, ctx) {
23369
+ }, inputs: { showAddRemove: "showAddRemove", showMove: "showMove", showSelect: "showSelect", addButtonText: "addButtonText", searchable: "searchable", allowEmpty: "allowEmpty" }, features: [i0.ɵɵInheritDefinitionFeature], attrs: _c1$B, decls: 3, vars: 3, consts: [[3, "formField"], ["class", "sme-margin-bottom-xs sme-form-field-editor", 4, "ngIf"], [3, "alert"], [1, "sme-margin-bottom-xs", "sme-form-field-editor"], ["class", "sme-arrange-stack-h sme-margin-bottom-xs sme-form-field-width", 4, "ngFor", "ngForOf", "ngForTrackBy"], ["type", "button", "class", "sme-button-trigger sme-button-auto-width sme-icon sme-icon-add sme-margin-bottom-xs", "data-uta-id", "add-button", 3, "smeDisabled", "title", "click", 4, "ngIf"], [1, "sme-arrange-stack-h", "sme-margin-bottom-xs", "sme-form-field-width"], [1, "sme-screen-reader", 3, "id"], ["class", "sme-position-flex-auto", "role", "textbox", 4, "ngIf"], [1, "sme-layout-relative", "sme-position-flex-auto"], ["type", "combobox", 3, "utaId", "hideHeader", "valueComparator", "ngModel", "label", "searchable", "ngModelChange", 4, "ngIf"], ["type", "button", "class", "sme-button-trigger sme-position-flex-none sme-button-auto-width sme-form-field-height", "data-uta-id", "promote-button", 3, "id", "title", "smeDisabled", "click", 4, "ngIf"], ["type", "button", "class", "sme-button-trigger sme-position-flex-none sme-button-auto-width sme-form-field-height", "data-uta-id", "demote-button", 3, "id", "title", "smeDisabled", "click", 4, "ngIf"], ["type", "button", "class", "sme-button-trigger sme-position-flex-none sme-button-auto-width sme-form-field-height", "data-uta-id", "remove-button", 3, "title", "smeDisabled", "click", 4, "ngIf"], ["role", "textbox", 1, "sme-position-flex-auto"], ["type", "combobox", 3, "utaId", "hideHeader", "valueComparator", "ngModel", "label", "searchable", "ngModelChange"], [4, "ngFor", "ngForOf"], [3, "utaId", "value", "label", "disabled", 4, "ngIf"], [3, "utaId", "value", "label", "disabled"], ["type", "button", "data-uta-id", "promote-button", 1, "sme-button-trigger", "sme-position-flex-none", "sme-button-auto-width", "sme-form-field-height", 3, "id", "title", "smeDisabled", "click"], [1, "sme-icon", "sme-icon-up"], ["type", "button", "data-uta-id", "demote-button", 1, "sme-button-trigger", "sme-position-flex-none", "sme-button-auto-width", "sme-form-field-height", 3, "id", "title", "smeDisabled", "click"], [1, "sme-icon", "sme-icon-down"], ["type", "button", "data-uta-id", "remove-button", 1, "sme-button-trigger", "sme-position-flex-none", "sme-button-auto-width", "sme-form-field-height", 3, "title", "smeDisabled", "click"], [1, "sme-icon", "sme-icon-cancel", "sme-color-red"], ["type", "button", "data-uta-id", "add-button", 1, "sme-button-trigger", "sme-button-auto-width", "sme-icon", "sme-icon-add", "sme-margin-bottom-xs", 3, "smeDisabled", "title", "click"], ["addButton", ""]], template: function OrderedListFormFieldComponent_Template(rf, ctx) {
23087
23370
  if (rf & 1) {
23088
23371
  i0.ɵɵelementStart(0, "sme-form-field-layout", 0);
23089
23372
  i0.ɵɵtemplate(1, OrderedListFormFieldComponent_div_1_Template, 3, 3, "div", 1);
@@ -23142,13 +23425,17 @@ OrderedListFormFieldComponent = __decorate([
23142
23425
  }
23143
23426
  ]
23144
23427
  }),
23145
- __metadata("design:paramtypes", [Injector])
23428
+ __metadata("design:paramtypes", [Injector,
23429
+ OrderedListFormFieldAccessibilityManagerService])
23146
23430
  ], OrderedListFormFieldComponent);
23147
23431
  (function () {
23148
23432
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(OrderedListFormFieldComponent, [{
23149
23433
  type: Component,
23150
- args: [{ selector: 'sme-form-field[type="orderedlist"]', template: "<sme-form-field-layout [formField]=\"this\">\r\n <div *ngIf=\"value\" class=\"sme-margin-bottom-xs sme-form-field-editor\">\r\n <div *ngFor=\"let item of value; trackBy: trackByIndex; let i = index\"\r\n class=\"sme-arrange-stack-h sme-margin-bottom-xs sme-form-field-width\"\r\n [attr.data-uta-id]=\"item ? item.toString() + '-row' : 'new-item-row'\">\r\n <label class=\"sme-screen-reader\" [id]=\"idBag.detailsSpan + i\">\r\n {{strings.MsftSmeShell.Angular.Form.OrderedList.itemAriaDescription.format(i + 1, value.length)}}\r\n </label>\r\n <p *ngIf=\"!showSelect\" class=\"sme-position-flex-auto\" role=\"textbox\"\r\n [attr.aria-describedby]=\"idBag.detailsSpan + i\">{{arrayGetValueDisplayString(value[i])}}</p>\r\n <div class=\"sme-layout-relative sme-position-flex-auto\" [class.sme-margin-right-xs]=\"showMove || showAddRemove\">\r\n <sme-form-field *ngIf=\"showSelect\" [utaId]=\"item ? item.toString() + '-combobox' : 'new-combobox'\"\r\n type=\"combobox\" [hideHeader]=\"true\" [valueComparator]=\"valueComparator\" [(ngModel)]=\"value[i]\"\r\n (ngModelChange)=\"triggerValueChange()\" (customValidate)=\"newItemCheck()\" [label]=\"label\"\r\n [searchable]=\"searchable\">\r\n <ng-container *ngFor=\"let option of options\">\r\n <sme-option *ngIf=\"!option.isSelected || arrayValueComparator(option.value, value[i])\"\r\n [utaId]=\"option.utaId ? option.utaId : option.value\" [value]=\"option.value\" [label]=\"option.toString()\"\r\n [disabled]=\"option.disabled\">\r\n </sme-option>\r\n </ng-container>\r\n </sme-form-field>\r\n </div>\r\n <button *ngIf=\"showMove\" [id]=\"idBag.promote + i\" type=\"button\"\r\n class=\"sme-button-trigger sme-position-flex-none sme-button-auto-width sme-form-field-height\"\r\n [attr.aria-label]=\"strings.MsftSmeShell.Angular.Form.OrderedList.promoteButtonAriaLabel\"\r\n [title]=\"strings.MsftSmeShell.Angular.Form.OrderedList.promoteButtonTooltip\" (click)=\"promoteItemAt(i)\"\r\n [smeDisabled]=\"loadingOrDisabled || allowEmptyDisableActions\" data-uta-id=\"promote-button\">\r\n <span class=\"sme-icon sme-icon-up\"></span>\r\n </button>\r\n <button *ngIf=\"showMove\" [id]=\"idBag.demote + i\" type=\"button\"\r\n class=\"sme-button-trigger sme-position-flex-none sme-button-auto-width sme-form-field-height\"\r\n [attr.aria-label]=\"strings.MsftSmeShell.Angular.Form.OrderedList.demoteButtonAriaLabel\"\r\n [title]=\"strings.MsftSmeShell.Angular.Form.OrderedList.demoteButtonTooltip\" (click)=\"demoteItemAt(i)\"\r\n [smeDisabled]=\"loadingOrDisabled || allowEmptyDisableActions\" data-uta-id=\"demote-button\">\r\n <span class=\"sme-icon sme-icon-down\"></span>\r\n </button>\r\n <button *ngIf=\"showAddRemove\" type=\"button\"\r\n class=\"sme-button-trigger sme-position-flex-none sme-button-auto-width sme-form-field-height\"\r\n [attr.aria-label]=\"strings.MsftSmeShell.Angular.Form.OrderedList.removeButtonAriaLabel\"\r\n [title]=\"strings.MsftSmeShell.Angular.Form.OrderedList.removeButtonTooltip\" (click)=\"removeItemAt(i)\"\r\n [smeDisabled]=\"loadingOrDisabled || allowEmptyDisableActions\" data-uta-id=\"remove-button\">\r\n <span class=\"sme-icon sme-icon-cancel sme-color-red\"></span>\r\n </button>\r\n </div>\r\n <button *ngIf=\"showAddRemove\" type=\"button\" [smeDisabled]=\"loadingOrDisabled || value.length === options.length\"\r\n class=\"sme-button-trigger sme-button-auto-width sme-icon sme-icon-add sme-margin-bottom-xs\"\r\n [attr.aria-label]=\"strings.MsftSmeShell.Angular.Form.OrderedList.addButtonAriaLabel\" data-uta-id=\"add-button\"\r\n [title]=\"strings.MsftSmeShell.Angular.Form.OrderedList.addButtonTooltip\" (click)=\"addListItem()\">\r\n {{addButtonText}}\r\n </button>\r\n </div>\r\n <sme-validation-alert [alert]=\"alert\"></sme-validation-alert>\r\n</sme-form-field-layout>\r\n" }]
23151
- }], function () { return [{ type: i0.Injector }]; }, { showAddRemove: [{
23434
+ args: [{ selector: 'sme-form-field[type="orderedlist"]', template: "<sme-form-field-layout [formField]=\"this\">\r\n <div *ngIf=\"value\" class=\"sme-margin-bottom-xs sme-form-field-editor\">\r\n <div *ngFor=\"let item of value; trackBy: trackByIndex; let i = index\"\r\n class=\"sme-arrange-stack-h sme-margin-bottom-xs sme-form-field-width\"\r\n [attr.data-uta-id]=\"item ? item.toString() + '-row' : 'new-item-row'\">\r\n <label class=\"sme-screen-reader\" [id]=\"idBag.detailsSpan + i\">\r\n {{ strings.MsftSmeShell.Angular.Form.OrderedList.itemAriaDescription.format(i + 1, value.length) }}\r\n </label>\r\n <p *ngIf=\"!showSelect\" class=\"sme-position-flex-auto\" role=\"textbox\" [attr.aria-label]=\"idBag.detailsSpan + i\">\r\n {{ arrayGetValueDisplayString(value[i]) }}</p>\r\n <div class=\"sme-layout-relative sme-position-flex-auto\" [class.sme-margin-right-xs]=\"showMove || showAddRemove\">\r\n <sme-form-field *ngIf=\"showSelect\" [utaId]=\"item ? item.toString() + '-combobox' : 'new-combobox'\"\r\n type=\"combobox\" [hideHeader]=\"true\" [valueComparator]=\"valueComparator\" [(ngModel)]=\"value[i]\"\r\n (ngModelChange)=\"triggerValueChange()\" [label]=\"label\"\r\n [searchable]=\"searchable\">\r\n <ng-container *ngFor=\"let option of options\">\r\n <sme-option *ngIf=\"!option.isSelected || arrayValueComparator(option.value, value[i])\"\r\n [utaId]=\"option.utaId ? option.utaId : option.value\" [value]=\"option.value\" [label]=\"option.toString()\"\r\n [disabled]=\"option.disabled\">\r\n </sme-option>\r\n </ng-container>\r\n </sme-form-field>\r\n </div>\r\n <button *ngIf=\"showMove\" [id]=\"idBag.promote + i\" type=\"button\"\r\n class=\"sme-button-trigger sme-position-flex-none sme-button-auto-width sme-form-field-height\"\r\n [attr.aria-label]=\"strings.MsftSmeShell.Angular.Form.OrderedList.promoteButtonAriaLabel\"\r\n [title]=\"strings.MsftSmeShell.Angular.Form.OrderedList.promoteButtonTooltip\" (click)=\"promoteItemAt(i)\"\r\n [smeDisabled]=\"loadingOrDisabled || allowEmptyDisableActions\" data-uta-id=\"promote-button\">\r\n <span class=\"sme-icon sme-icon-up\"></span>\r\n </button>\r\n <button *ngIf=\"showMove\" [id]=\"idBag.demote + i\" type=\"button\"\r\n class=\"sme-button-trigger sme-position-flex-none sme-button-auto-width sme-form-field-height\"\r\n [attr.aria-label]=\"strings.MsftSmeShell.Angular.Form.OrderedList.demoteButtonAriaLabel\"\r\n [title]=\"strings.MsftSmeShell.Angular.Form.OrderedList.demoteButtonTooltip\" (click)=\"demoteItemAt(i)\"\r\n [smeDisabled]=\"loadingOrDisabled || allowEmptyDisableActions\" data-uta-id=\"demote-button\">\r\n <span class=\"sme-icon sme-icon-down\"></span>\r\n </button>\r\n <button *ngIf=\"showAddRemove\" type=\"button\"\r\n class=\"sme-button-trigger sme-position-flex-none sme-button-auto-width sme-form-field-height\"\r\n [attr.aria-label]=\"strings.MsftSmeShell.Angular.Form.OrderedList.removeButtonAriaLabel\"\r\n [title]=\"strings.MsftSmeShell.Angular.Form.OrderedList.removeButtonTooltip\" (click)=\"removeItemAt(i)\"\r\n [smeDisabled]=\"loadingOrDisabled || allowEmptyDisableActions\" data-uta-id=\"remove-button\">\r\n <span class=\"sme-icon sme-icon-cancel sme-color-red\"></span>\r\n </button>\r\n </div>\r\n <button #addButton *ngIf=\"showAddRemove\" type=\"button\" [smeDisabled]=\"loadingOrDisabled || value.length === options.length\"\r\n class=\"sme-button-trigger sme-button-auto-width sme-icon sme-icon-add sme-margin-bottom-xs\"\r\n [attr.aria-label]=\"addRemoveButtonArialLabel\" data-uta-id=\"add-button\"\r\n [title]=\"strings.MsftSmeShell.Angular.Form.OrderedList.addButtonTooltip\" (click)=\"addListItem()\">\r\n {{ addButtonText }}\r\n </button>\r\n </div>\r\n <sme-validation-alert [alert]=\"alert\"></sme-validation-alert>\r\n</sme-form-field-layout>\r\n" }]
23435
+ }], function () { return [{ type: i0.Injector }, { type: OrderedListFormFieldAccessibilityManagerService }]; }, { addButton: [{
23436
+ type: ViewChild,
23437
+ args: ['addButton']
23438
+ }], showAddRemove: [{
23152
23439
  type: Input
23153
23440
  }], showMove: [{
23154
23441
  type: Input
@@ -25824,7 +26111,13 @@ class SmeFormsModule {
25824
26111
  }
25825
26112
  /** @nocollapse */ SmeFormsModule.ɵfac = function SmeFormsModule_Factory(t) { return new (t || SmeFormsModule)(); };
25826
26113
  /** @nocollapse */ SmeFormsModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: SmeFormsModule });
25827
- /** @nocollapse */ SmeFormsModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ imports: [AccordionModule,
26114
+ /** @nocollapse */ SmeFormsModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ providers: [
26115
+ // TODO: each form field should have its own accessibility manager service
26116
+ ArrayFormFieldAccessibilityManagerService,
26117
+ ListFormFieldAccessibilityManagerService,
26118
+ OrderedListFormFieldAccessibilityManagerService,
26119
+ FormFieldAccessibilityManagerBaseService
26120
+ ], imports: [AccordionModule,
25828
26121
  ActionsModule,
25829
26122
  AutofocusModule,
25830
26123
  CommonModule,
@@ -25997,6 +26290,13 @@ class SmeFormsModule {
25997
26290
  TileDirectivesModule,
25998
26291
  TooltipModule,
25999
26292
  TelemetryDirectiveModule
26293
+ ],
26294
+ providers: [
26295
+ // TODO: each form field should have its own accessibility manager service
26296
+ ArrayFormFieldAccessibilityManagerService,
26297
+ ListFormFieldAccessibilityManagerService,
26298
+ OrderedListFormFieldAccessibilityManagerService,
26299
+ FormFieldAccessibilityManagerBaseService
26000
26300
  ]
26001
26301
  }]
26002
26302
  }], null, null);
@@ -45741,7 +46041,7 @@ function PageAlertBarComponent_a_5_Template(rf, ctx) {
45741
46041
  const ctx_r2 = i0.ɵɵnextContext();
45742
46042
  i0.ɵɵproperty("title", !!ctx_r2.alert.detailsCaption ? ctx_r2.alert.detailsCaption : ctx_r2.defaultDetailsLabel);
45743
46043
  i0.ɵɵadvance(1);
45744
- i0.ɵɵtextInterpolate1(" ", !!ctx_r2.alert.detailsLabel ? ctx_r2.alert.detailsLabel : ctx_r2.defaultDetailsLabel, "\n");
46044
+ i0.ɵɵtextInterpolate1(" ", !!ctx_r2.alert.detailsLabel ? ctx_r2.alert.detailsLabel : ctx_r2.defaultDetailsLabel, " ");
45745
46045
  }
45746
46046
  }
45747
46047
  /**
@@ -45896,8 +46196,8 @@ class PageAlertBarComponent extends SpacerBaseDirective {
45896
46196
  i0.ɵɵelementStart(2, "span");
45897
46197
  i0.ɵɵtext(3);
45898
46198
  i0.ɵɵtemplate(4, PageAlertBarComponent_a_4_Template, 2, 6, "a", 1);
45899
- i0.ɵɵelementEnd();
45900
46199
  i0.ɵɵtemplate(5, PageAlertBarComponent_a_5_Template, 2, 2, "a", 2);
46200
+ i0.ɵɵelementEnd();
45901
46201
  }
45902
46202
  if (rf & 2) {
45903
46203
  i0.ɵɵclassMapInterpolate1("sme-margin-right-xs sme-position-flex-none ", ctx.iconClass, "");
@@ -45915,7 +46215,7 @@ class PageAlertBarComponent extends SpacerBaseDirective {
45915
46215
  (function () {
45916
46216
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PageAlertBarComponent, [{
45917
46217
  type: Component,
45918
- args: [{ selector: 'sme-page-alert-bar', template: "<span class=\"sme-margin-right-xs sme-position-flex-none {{iconClass}}\" [class.sme-icon]=\"!!iconClass\">\r\n <sme-status-icon *ngIf=\"statusIcon !== null\" class=\"sme-layout-inline-block\" [status]=\"statusIcon\" size=\"16px\">\r\n </sme-status-icon>\r\n</span>\r\n\r\n<span>\r\n {{ alert.message }}\r\n <a *ngIf=\"alert.externalLink\" class=\"sme-link sme-focus-zone sme-icon-after\" [class]=\"alert?.externalLink?.iconClass\"\r\n [class.sme-icon]=\"!!alert?.externalLink?.iconClass\" href=\"{{alert.externalLink.url}}\"\r\n target=\"_blank\">{{ alert.externalLink.title }}</a>\r\n</span>\r\n\r\n<a *ngIf=\"!!alert.detailsCommand\" class=\"sme-margin-left-xs sme-position-flex-none sme-link sme-focus-zone\" tabindex=\"0\" role=\"link\"\r\n [title]=\"!!alert.detailsCaption ? alert.detailsCaption : defaultDetailsLabel\" (click)=\"alert.detailsCommand($event)\">\r\n {{ !!alert.detailsLabel ? alert.detailsLabel : defaultDetailsLabel }}\r\n</a>\r\n" }]
46218
+ args: [{ selector: 'sme-page-alert-bar', template: "<span class=\"sme-margin-right-xs sme-position-flex-none {{iconClass}}\" [class.sme-icon]=\"!!iconClass\">\r\n <sme-status-icon *ngIf=\"statusIcon !== null\" class=\"sme-layout-inline-block\" [status]=\"statusIcon\" size=\"16px\">\r\n </sme-status-icon>\r\n</span>\r\n\r\n<span>\r\n {{ alert.message }}\r\n <a *ngIf=\"alert.externalLink\" class=\"sme-link sme-focus-zone sme-icon-after\" [class]=\"alert?.externalLink?.iconClass\"\r\n [class.sme-icon]=\"!!alert?.externalLink?.iconClass\" href=\"{{alert.externalLink.url}}\" target=\"_blank\">{{\r\n alert.externalLink.title }}</a>\r\n <a *ngIf=\"!!alert.detailsCommand\" class=\"sme-margin-left-xs sme-position-flex-none sme-link sme-focus-zone\"\r\n tabindex=\"0\" role=\"link\" [title]=\"!!alert.detailsCaption ? alert.detailsCaption : defaultDetailsLabel\"\r\n (click)=\"alert.detailsCommand($event)\">\r\n {{ !!alert.detailsLabel ? alert.detailsLabel : defaultDetailsLabel }}\r\n </a>\r\n</span>\r\n" }]
45919
46219
  }], function () { return [{ type: i0.Injector }]; }, { isBackgroundTransparent: [{
45920
46220
  type: Input
45921
46221
  }], isCritical: [{
@@ -53100,7 +53400,7 @@ class WizardNavigationButtonComponent extends CoreBaseComponent {
53100
53400
  }
53101
53401
  }
53102
53402
  /** @nocollapse */ WizardNavigationButtonComponent.ɵfac = function WizardNavigationButtonComponent_Factory(t) { return new (t || WizardNavigationButtonComponent)(i0.ɵɵdirectiveInject(i0.Injector)); };
53103
- /** @nocollapse */ WizardNavigationButtonComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: WizardNavigationButtonComponent, selectors: [["sme-wizard-navigation-button"]], inputs: { showIcons: "showIcons", leftIcon: "leftIcon", rightIcon: "rightIcon", buttonAutoWidth: "buttonAutoWidth", buttons: "buttons" }, outputs: { startButtonClicked: "startButtonClicked", endButtonClicked: "endButtonClicked" }, features: [i0.ɵɵInheritDefinitionFeature], decls: 10, vars: 16, consts: [[1, "sme-arrange-stack-h", "sme-position-stretch-h"], [1, "sme-padding-right-xs"], ["type", "button", "aria-live", "polite", "tabIndex", "0", 1, "sme-arrange-stack-h", 3, "disabled", "click"], ["class", "sme-icon", 3, "class", 4, "ngIf"], [1, "sme-position-flex-auto", "sme-position-flex-grow-start", "sme-arrange-ellipsis", "sme-action-button-text-span"], [1, "sme-icon"]], template: function WizardNavigationButtonComponent_Template(rf, ctx) {
53403
+ /** @nocollapse */ WizardNavigationButtonComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: WizardNavigationButtonComponent, selectors: [["sme-wizard-navigation-button"]], inputs: { showIcons: "showIcons", leftIcon: "leftIcon", rightIcon: "rightIcon", buttonAutoWidth: "buttonAutoWidth", buttons: "buttons" }, outputs: { startButtonClicked: "startButtonClicked", endButtonClicked: "endButtonClicked" }, features: [i0.ɵɵInheritDefinitionFeature], decls: 10, vars: 16, consts: [[1, "sme-arrange-stack-h", "sme-position-stretch-h"], [1, "sme-padding-right-xs"], ["type", "button", "aria-live", "polite", "tabindex", "0", 1, "sme-arrange-stack-h", 3, "disabled", "click"], ["class", "sme-icon", 3, "class", 4, "ngIf"], [1, "sme-position-flex-auto", "sme-position-flex-grow-start", "sme-arrange-ellipsis", "sme-action-button-text-span"], [1, "sme-icon"]], template: function WizardNavigationButtonComponent_Template(rf, ctx) {
53104
53404
  if (rf & 1) {
53105
53405
  i0.ɵɵelementStart(0, "div", 0)(1, "span", 1)(2, "button", 2);
53106
53406
  i0.ɵɵlistener("click", function WizardNavigationButtonComponent_Template_button_click_2_listener() { return ctx.onStartButtonClick(); });
@@ -53139,7 +53439,7 @@ class WizardNavigationButtonComponent extends CoreBaseComponent {
53139
53439
  (function () {
53140
53440
  (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(WizardNavigationButtonComponent, [{
53141
53441
  type: Component,
53142
- args: [{ selector: 'sme-wizard-navigation-button', template: "<div class=\"sme-arrange-stack-h sme-position-stretch-h\" [class.sme-layout-hidden]=\"!render\">\r\n <span class=\"sme-padding-right-xs\">\r\n <button type=\"button\" aria-live=\"polite\" class=\"sme-arrange-stack-h\" tabIndex=\"0\"\r\n [class]=\"buttons[currentStartButtonIndex]?.class\"\r\n [class.sme-button-auto-width]=\"buttonAutoWidth\"\r\n [disabled]=\"checkStartDisabled(currentStartButtonIndex)\"\r\n (click)=\"onStartButtonClick()\">\r\n <span *ngIf=\"showIcons\" class=\"sme-icon\" [class]=\"leftIcon\"></span>\r\n <span class=\"sme-position-flex-auto sme-position-flex-grow-start sme-arrange-ellipsis sme-action-button-text-span\">\r\n {{ buttons[currentStartButtonIndex] ? buttons[currentStartButtonIndex].label : strings.MsftSmeShell.Angular.Wizard.Lite.Actions.previous }}</span>\r\n </button>\r\n </span>\r\n <button type=\"button\" aria-live=\"polite\" class=\"sme-arrange-stack-h\" tabIndex=\"0\"\r\n [class]=\"buttons[currentStartButtonIndex]?.class\"\r\n [class.sme-button-auto-width]=\"buttonAutoWidth\"\r\n [disabled]=\"checkEndDisabled(currentStartButtonIndex)\"\r\n (click)=\"onEndButtonClick()\">\r\n <span class=\"sme-position-flex-auto sme-position-flex-grow-start sme-arrange-ellipsis sme-action-button-text-span\">\r\n {{ buttons[currentStartButtonIndex + 2] ? buttons[currentStartButtonIndex + 2].label : strings.MsftSmeShell.Angular.Wizard.Lite.Actions.next }}</span>\r\n <span *ngIf=\"showIcons\" class=\"sme-icon\" [class]=\"rightIcon\"></span>\r\n </button>\r\n</div>\r\n" }]
53442
+ args: [{ selector: 'sme-wizard-navigation-button', template: "<div class=\"sme-arrange-stack-h sme-position-stretch-h\" [class.sme-layout-hidden]=\"!render\">\r\n <span class=\"sme-padding-right-xs\">\r\n <button type=\"button\" aria-live=\"polite\" class=\"sme-arrange-stack-h\" tabindex=\"0\"\r\n [class]=\"buttons[currentStartButtonIndex]?.class\"\r\n [class.sme-button-auto-width]=\"buttonAutoWidth\"\r\n [disabled]=\"checkStartDisabled(currentStartButtonIndex)\"\r\n (click)=\"onStartButtonClick()\">\r\n <span *ngIf=\"showIcons\" class=\"sme-icon\" [class]=\"leftIcon\"></span>\r\n <span class=\"sme-position-flex-auto sme-position-flex-grow-start sme-arrange-ellipsis sme-action-button-text-span\">\r\n {{ buttons[currentStartButtonIndex] ? buttons[currentStartButtonIndex].label : strings.MsftSmeShell.Angular.Wizard.Lite.Actions.previous }}</span>\r\n </button>\r\n </span>\r\n <button type=\"button\" aria-live=\"polite\" class=\"sme-arrange-stack-h\" tabindex=\"0\"\r\n [class]=\"buttons[currentStartButtonIndex]?.class\"\r\n [class.sme-button-auto-width]=\"buttonAutoWidth\"\r\n [disabled]=\"checkEndDisabled(currentStartButtonIndex)\"\r\n (click)=\"onEndButtonClick()\">\r\n <span class=\"sme-position-flex-auto sme-position-flex-grow-start sme-arrange-ellipsis sme-action-button-text-span\">\r\n {{ buttons[currentStartButtonIndex + 2] ? buttons[currentStartButtonIndex + 2].label : strings.MsftSmeShell.Angular.Wizard.Lite.Actions.next }}</span>\r\n <span *ngIf=\"showIcons\" class=\"sme-icon\" [class]=\"rightIcon\"></span>\r\n </button>\r\n</div>\r\n" }]
53143
53443
  }], function () { return [{ type: i0.Injector }]; }, { showIcons: [{
53144
53444
  type: Input
53145
53445
  }], leftIcon: [{
@@ -56934,6 +57234,78 @@ function getFullRouteParams(route) {
56934
57234
  return params;
56935
57235
  }
56936
57236
 
57237
+ /**
57238
+ * Base class for snap in specific extension listeners
57239
+ */
57240
+ class SnapInListener extends ExtensionClientListener {
57241
+ /**
57242
+ * Initializes a new instance of the SnapInListener class
57243
+ * @param rpc The rpc context
57244
+ */
57245
+ constructor(rpc, extensionBroker, hostElement) {
57246
+ super(rpc);
57247
+ this.extensionBroker = extensionBroker;
57248
+ this.hostElement = hostElement;
57249
+ }
57250
+ ngAfterViewInit() {
57251
+ if (this.hostElement) {
57252
+ document.body.setAttribute('sme-snap-in', '');
57253
+ document.addEventListener('wheel', event => {
57254
+ // do not listen to wheel if it is for internal scroll
57255
+ // default behavior may try to scroll parent first THEN internal scroll,
57256
+ // see if we can update this to match that behavior
57257
+ if (!Dom.getOverflowAncestor(this.hostElement.nativeElement)) {
57258
+ this.emitOutput({ deltaY: event.deltaY });
57259
+ }
57260
+ });
57261
+ this.hostElement.nativeElement.addEventListener('focusin', (event) => {
57262
+ // check if we actually need to do these
57263
+ event.preventDefault();
57264
+ event.stopPropagation();
57265
+ // send info about the current active element
57266
+ if (document.activeElement) {
57267
+ const focusedElementRect = document.activeElement.getBoundingClientRect();
57268
+ this.emitOutput({ focusedElementRect });
57269
+ }
57270
+ });
57271
+ }
57272
+ }
57273
+ /**
57274
+ * Occurs when any method is called on this worker from another extension
57275
+ */
57276
+ onCall(method, version, ...args) {
57277
+ if (method === 'input' && args && args.length > 0 && args[0].length > 0) {
57278
+ this.onInputReceived(args[0][0]);
57279
+ return of(null);
57280
+ }
57281
+ return super.throwMethodNotFound(method, version);
57282
+ }
57283
+ /**
57284
+ * Occurs when an input is received on this snap-in
57285
+ * @param input the input object.
57286
+ */
57287
+ onInputReceived(input) {
57288
+ this.input = input;
57289
+ }
57290
+ /**
57291
+ * Emits an output to the consumer of this snap-in.
57292
+ * @param output the output object.
57293
+ */
57294
+ emitOutput(output) {
57295
+ // TODO: should there be a separate output type for page events?
57296
+ // abstract output from consumer by mapping to null.
57297
+ return this.extensionBroker.emitResult(this.instanceId, 'output', output)
57298
+ .pipe(map(() => null));
57299
+ }
57300
+ }
57301
+ /** @nocollapse */ SnapInListener.ɵfac = function SnapInListener_Factory(t) { return new (t || SnapInListener)(i0.ɵɵdirectiveInject(i1$3.Rpc), i0.ɵɵdirectiveInject(i2.ExtensionBroker), i0.ɵɵdirectiveInject(i0.ElementRef)); };
57302
+ /** @nocollapse */ SnapInListener.ɵdir = /** @pureOrBreakMyCode */ i0.ɵɵdefineDirective({ type: SnapInListener, features: [i0.ɵɵInheritDefinitionFeature] });
57303
+ (function () {
57304
+ (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SnapInListener, [{
57305
+ type: Directive
57306
+ }], function () { return [{ type: i1$3.Rpc }, { type: i2.ExtensionBroker }, { type: i0.ElementRef }]; }, null);
57307
+ })();
57308
+
56937
57309
  /// <reference path='../../dist/packages/core/index.d.ts'/>
56938
57310
  /// <reference path='../../dist/packages/core/special.d.ts'/>
56939
57311
  /// <reference path='../../dist/packages/core/polyfills.d.ts'/>
@@ -56945,5 +57317,5 @@ function getFullRouteParams(route) {
56945
57317
  * Generated bundle index. Do not edit.
56946
57318
  */
56947
57319
 
56948
- export { AccordionComponent, AccordionModule, AccordionPanelComponent, ActionBarComponent, ActionBarDirective, ActionButton, ActionButtonAsync, ActionButtonAsyncComponent, ActionButtonComponent, ActionButtonRendererComponent, ActionContainerComponent, ActionDropdown, ActionDropdownComponent, ActionDropdownRendererComponent, ActionItem, ActionItemComponent, ActionItemRendererComponent, ActionItemSeparator, ActionItemSeparatorComponent, ActionItemSeparatorRendererComponent, ActionMenuComponent, ActionsModule, ActiveConnectionService, ActiveDirectoryModule, ActiveDirectorySearchFormFieldComponent, ActiveDirectoryService, AlertBarComponent, AlertBarModule, AlertBarService, AlertSeverity, AppContextService, AppErrorHandler, ApplyMode, AriaLiveOptions, ArrayFormFieldComponent, ArrayFormFieldLoaderComponent, ArrayPropertySchemaFieldLoaderComponent, AuthorizationService, AutofocusDirective, AutofocusModule, AzureManagerService, BackdropComponent, BackdropModule, BackgroundExtensionRootComponent, BadgeBaseComponent, BadgeFeatureTypes, BadgeModule, BannerComponent, BannerModule, BaseComponent, BaseDialogComponent, BaseFormData, BasePropertiesForm, BasicFormLoaderComponent, BatchService, BooleanConverterPipe, BooleanConverterPipeModule, BreadcrumbComponent, BreadcrumbHeaderComponent, BreadcrumbHeaderModule, BreadcrumbModule, BreadcrumbSeparator, BugFixesFeatureBadgeComponent, ByteUnitConverterPipe, ByteUnitConverterPipeModule, CAPSLOCK_VALIDATOR, CalendarFormFieldComponent, CanDeactivateGuard, CapacityBarChartComponent, CapacityBase, CapacityDoughnutChartComponent, CapsLockValidatorDirective, ChartComponent, ChartModule, CheckboxFormFieldComponent, CheckboxFormFieldLoaderComponent, ChecklistFormFieldComponent, ChecklistFormFieldLoaderComponent, ChevronPosition, ChoiceDialogComponent, CimService, CimStreamService, ClampDirective, ClampModule, ClockFormFieldComponent, CodeFormFieldComponent, CodeFormFieldLoaderComponent, ColumnPickerService, ComboboxFormFieldComponent, ComboboxFormFieldLoaderComponent, ComingSoonBadgeComponent, CommonDialogsComponent, CommonSettingsComponent, CommonSettingsComponentBase, ConfirmationDialogComponent, ConfirmationListDialogComponent, ConnectionService, ConnectivityEnforcer, ConnectivityLevel, ContextDropdownComponent, ContextMenuComponent, ContextMenuDirective, ContextMenuModule, CoreServiceModule, CredSSPEnabledBadgeComponent, CredSSPManagerService, CriticalBadgeComponent, CustomBadgeComponent, DataOnlyFormFieldLoaderComponent, DataTableColumnComponent, DataTableColumnPickerExtension, DataTableComponent, DataTableDownloadDataType, DataTableDownloadService, DataTableModule, DataTableMultipleSelectMode, DataTableRenderedItemType, DataTableSortMode, DateConverterPipe, DateConverterPipeModule, DateFormFieldComponent, DateTimeFormFieldComponent, DateTimeRangeFormFieldComponent, DateTimeRangeOptionComponent, Debounce, DeleteColumnComponent, DetailsComponent, DetailsModule, DevGuardService, DialogChangeEvent, DialogCloseReason, DialogComponent, DialogContentComponent, DialogFooterComponent, DialogHeaderComponent, DialogMode, DialogModule, DialogService, DisabledChangedEvent, DisabledDirective, DisabledModule, DiscardDirective, DiscardModule, DocumentationComponent, DocumentationModule, DoughnutChartComponent, DoughnutChartModule, DropdownComponent, DropdownModule, DropdownService, DynamicActionItemComponent, DynamicComponentBase, EditableCollectionItem, EditableLayoutComponent, EditableLayoutItemComponent, ElectronService, EnumConverterPipe, EnumConverterPipeModule, ExperimentGuardService, ExtensionBrokerService, ExtensionDialogComponent, ExtensionRootModule, FeedbackBadgeComponent, FieldsetDirective, FileFormFieldComponent, FileFormFieldLoaderComponent, FileTransferService, FilterPipe, FilterPipeModule, FormAsyncValidatorBase, FormField, FormFieldAccessor, FormFieldAccessorDirective, FormFieldAsyncValidatorDirective, FormFieldComponent, FormFieldIsolatorComponent, FormFieldLayoutComponent, FormFieldOptionComponent, FormFieldOptionSubFormTemplateLoaderComponent, FormFieldOrientation, FormFieldTemplateDirective, FormFieldValidatorDirective, FormValidatorBase, FormWizardStepComponent, FormatPipe, FormatPipeModule, FrameService, GatewayService, GuardsModule, GuidedPaneComponent, GuidedPanelComponent, GuidedPanelModule, HeaderComponent, HeaderModule, HealthAlertSeverity, HighlightPipe, HighlightPipeModule, HorizontalBarChartComponent, HorizontalBarChartModule, HttpService, IconLayerComponent, IconModule, IconTextComponent, IdleComponent, IdleModule, ImprovementFeatureBadgeComponent, InputValidatorDirective, InstallationTypeGuardService, JobsService, JsonFormFieldComponent, JsonFormFieldLoaderComponent, LayeredIconComponent, LayoutComponent, LayoutConfigGenerator, LayoutDefinitionComponent, LayoutDrivenType, LayoutItemComponent, LayoutItemConfigMode, LayoutItemConfigPropertyWidthType, LayoutModule, LegendComponent, LegendEntryComponent, LegendModule, LifetimeService, LineChartComponent, LineChartModule, LineChartType, ListFormFieldComponent, LoadingWheelComponent, LoadingWheelModule, LoadingWheelSize, LocalDateConverterPipe, MachineNameValidatorDirective, MarkdownDirective, MarkdownModule, MasterViewComponent, MasterViewContentDirective, MasterViewContentModule, MasterViewModule, MatchFieldValidatorDirective, MediaConversion2, MessageDialogComponent, Monaco, Navigation, NavigationService, NavigationTitle, NewBadgeComponent, NewFeatureBadgeComponent, NodeCredentialsFormComponent, NodeCredentialsFormModule, NodeService, NotificationService, NumberFormFieldComponent, NumberFormFieldLoaderComponent, ObjectDefaultFormFieldLoaderComponent, ObjectPropertySchemaFieldLoaderComponent, OptionsFormFieldComponent, OrderedListFormFieldComponent, OrderedListFormFieldLoaderComponent, PageAlertBarComponent, PageAlertBarModule, PanelControlComponent, PasswordFormFieldComponent, PasswordFormFieldLoaderComponent, PivotComponent, PivotModule, PivotTabComponent, PivotTabType, PowerShellService, PowerShellStreamService, PreviewBadgeComponent, PropertyGridComponent, PropertyGridItemComponent, PropertyGridModule, QueryDataItemPresetGenerator, QueryDataItemValueType, QueryDataOperand, QueryEditorComponent, QueryEditorModule, RadioGroupFormFieldComponent, RadioGroupFormFieldLoaderComponent, RatingRadioGroupFormFieldComponent, ReactiveForm, ReactiveFormAccessor, ReactiveFormWizardStepComponent, ReadonlyFormFieldComponent, RequiredTrimmedValidatorDirective, ResizerComponent, ResizerModule, ResourceService, RpcService, RpcShellService, SME_ASYNC_VALIDATORS, SME_FORM_FIELD_VALIDATION_ALERT_CONTAINER_PROVIDER, SME_LAYOUT_PROVIDER, SME_VALIDATORS, ScheduleRebootService, SchemaDataTypeStore, SchemaFieldContext, SchemaFieldHostComponent, SchemaFieldHostModule, SchemaFieldLoaderComponentBase, SchemaFormComponent, SchemaFormModule, SchemaPrimitiveType, SchemaUtilities, SearchFormFieldComponent, SecureExtensionDataService, SelectFormFieldDirective, SettingsComponent, SettingsContentComponent, SettingsFooterComponent, SettingsFormDirective, SettingsFormService, SettingsHeaderComponent, SettingsModule, SettingsNavigationComponent, SettingsPageComponent, SettingsService, SimplePropertySchemaFieldLoaderComponent, SliderFormFieldComponent, SliderFormFieldLoaderComponent, SmeExtensionService, SmeFormsModule, SmeHeaderData, SmeInjectableBase, SmeInternalFormFieldComponent, SmeResponsiveWindowBreakpoints, SmeResponsiveWindowBreakpointsValue, SmeResponsiveWindowManagerComponent, SmeRouterLinkDirective, SmeRouterModule, SmeSchemaProperty, SmeTemplateOutletModule, SmeUxComponent, SmeUxContentComponent, SmeUxContentModule, SmeUxFooterComponent, SmeUxFooterModule, SmeUxModule, SmeUxPageComponent, SmeUxPageModule, SmeWizardLiteFooterTemplateComponent, SmeWizardLiteFooterTemplateModule, SnapInExtensionComponent, SnapInExtensionModule, SplitViewComponent, SplitViewContentComponent, SplitViewModule, SplitViewPaneComponent, SshStreamService, StackedBarComponent, StackedHorizontalBarChartComponent, StatusIconComponent, StatusIconType, SvgDirective, SvgInlineDirective, SvgInlineResource, SvgModule, SvgResource, TabbedFormController, TabbedFormItemController, TabbedFormLoaderComponent, TabbedLineChartGroupComponent, TagService, TagsActionButtonComponent, TagsColumnComponent, TagsFormFieldComponent, TagsFormFieldLoaderComponent, TelemetryDirective, TelemetryDirectiveModule, TemplateDrivenWizardStepComponent, TemplateOutletDirective, TextFormFieldComponent, TextFormFieldLoaderComponent, TileComponent, TileContentComponent, TileDirectivesModule, TileImageDirective, TileModule, TileRadioGroupFormFieldComponent, TimeFormFieldComponent, ToggleSwitchFormFieldComponent, ToggleSwitchFormFieldLoaderComponent, ToolHeaderComponent, ToolHeaderModule, TooltipDirective, TooltipHostComponent, TooltipHostInstance, TooltipModule, TooltipPlacement, TooltipZoneDirective, TreeTableComponent, UserAliveService, UxExtensionRootComponent, ValidationAlertComponent, ValidationAlertSeverity, WarningBadgeComponent, WebsocketStreamService, WizardAsParent, WizardBuilder, WizardComponent, WizardLiteComponent, WizardLiteModule, WizardModule, WizardNavigationButtonComponent, WizardNavigationButtonModule, WizardNavigationInformation, WizardStage, WizardStep, WizardStepComponent, WorkItemService, YesNoConverterPipe, YesNoConverterPipeModule, Yield, alertDialog, getFullRouteParams, modalDialog };
57320
+ export { AccordionComponent, AccordionModule, AccordionPanelComponent, ActionBarComponent, ActionBarDirective, ActionButton, ActionButtonAsync, ActionButtonAsyncComponent, ActionButtonComponent, ActionButtonRendererComponent, ActionContainerComponent, ActionDropdown, ActionDropdownComponent, ActionDropdownRendererComponent, ActionItem, ActionItemComponent, ActionItemRendererComponent, ActionItemSeparator, ActionItemSeparatorComponent, ActionItemSeparatorRendererComponent, ActionMenuComponent, ActionsModule, ActiveConnectionService, ActiveDirectoryModule, ActiveDirectorySearchFormFieldComponent, ActiveDirectoryService, AlertBarComponent, AlertBarModule, AlertBarService, AlertSeverity, AppContextService, AppErrorHandler, ApplyMode, AriaLiveOptions, ArrayFormFieldComponent, ArrayFormFieldLoaderComponent, ArrayPropertySchemaFieldLoaderComponent, AuthorizationService, AutofocusDirective, AutofocusModule, AzureManagerService, BackdropComponent, BackdropModule, BackgroundExtensionRootComponent, BadgeBaseComponent, BadgeFeatureTypes, BadgeModule, BannerComponent, BannerModule, BaseComponent, BaseDialogComponent, BaseFormData, BasePropertiesForm, BasicFormLoaderComponent, BatchService, BooleanConverterPipe, BooleanConverterPipeModule, BreadcrumbComponent, BreadcrumbHeaderComponent, BreadcrumbHeaderModule, BreadcrumbModule, BreadcrumbSeparator, BugFixesFeatureBadgeComponent, ByteUnitConverterPipe, ByteUnitConverterPipeModule, CAPSLOCK_VALIDATOR, CalendarFormFieldComponent, CanDeactivateGuard, CapacityBarChartComponent, CapacityBase, CapacityDoughnutChartComponent, CapsLockValidatorDirective, ChartComponent, ChartModule, CheckboxFormFieldComponent, CheckboxFormFieldLoaderComponent, ChecklistFormFieldComponent, ChecklistFormFieldLoaderComponent, ChevronPosition, ChoiceDialogComponent, CimService, CimStreamService, ClampDirective, ClampModule, ClockFormFieldComponent, CodeFormFieldComponent, CodeFormFieldLoaderComponent, ColumnPickerService, ComboboxFormFieldComponent, ComboboxFormFieldLoaderComponent, ComingSoonBadgeComponent, CommonDialogsComponent, CommonSettingsComponent, CommonSettingsComponentBase, ConfirmationDialogComponent, ConfirmationListDialogComponent, ConnectionService, ConnectivityEnforcer, ConnectivityLevel, ContextDropdownComponent, ContextMenuComponent, ContextMenuDirective, ContextMenuModule, CoreServiceModule, CredSSPEnabledBadgeComponent, CredSSPManagerService, CriticalBadgeComponent, CustomBadgeComponent, DataOnlyFormFieldLoaderComponent, DataTableColumnComponent, DataTableColumnPickerExtension, DataTableComponent, DataTableDownloadDataType, DataTableDownloadService, DataTableModule, DataTableMultipleSelectMode, DataTableRenderedItemType, DataTableSortMode, DateConverterPipe, DateConverterPipeModule, DateFormFieldComponent, DateTimeFormFieldComponent, DateTimeRangeFormFieldComponent, DateTimeRangeOptionComponent, Debounce, DeleteColumnComponent, DetailsComponent, DetailsModule, DevGuardService, DialogChangeEvent, DialogCloseReason, DialogComponent, DialogContentComponent, DialogFooterComponent, DialogHeaderComponent, DialogMode, DialogModule, DialogService, DisabledChangedEvent, DisabledDirective, DisabledModule, DiscardDirective, DiscardModule, DocumentationComponent, DocumentationModule, DoughnutChartComponent, DoughnutChartModule, DropdownComponent, DropdownModule, DropdownService, DynamicActionItemComponent, DynamicComponentBase, EditableCollectionItem, EditableLayoutComponent, EditableLayoutItemComponent, ElectronService, EnumConverterPipe, EnumConverterPipeModule, ExperimentGuardService, ExtensionBrokerService, ExtensionDialogComponent, ExtensionRootModule, FeedbackBadgeComponent, FieldsetDirective, FileFormFieldComponent, FileFormFieldLoaderComponent, FileTransferService, FilterPipe, FilterPipeModule, FormAsyncValidatorBase, FormField, FormFieldAccessor, FormFieldAccessorDirective, FormFieldAsyncValidatorDirective, FormFieldComponent, FormFieldIsolatorComponent, FormFieldLayoutComponent, FormFieldOptionComponent, FormFieldOptionSubFormTemplateLoaderComponent, FormFieldOrientation, FormFieldTemplateDirective, FormFieldValidatorDirective, FormValidatorBase, FormWizardStepComponent, FormatPipe, FormatPipeModule, FrameService, GatewayService, GuardsModule, GuidedPaneComponent, GuidedPanelComponent, GuidedPanelModule, HeaderComponent, HeaderModule, HealthAlertSeverity, HighlightPipe, HighlightPipeModule, HorizontalBarChartComponent, HorizontalBarChartModule, HttpService, IconLayerComponent, IconModule, IconTextComponent, IdleComponent, IdleModule, ImprovementFeatureBadgeComponent, InputValidatorDirective, InstallationTypeGuardService, JobsService, JsonFormFieldComponent, JsonFormFieldLoaderComponent, LayeredIconComponent, LayoutComponent, LayoutConfigGenerator, LayoutDefinitionComponent, LayoutDrivenType, LayoutItemComponent, LayoutItemConfigMode, LayoutItemConfigPropertyWidthType, LayoutModule, LegendComponent, LegendEntryComponent, LegendModule, LifetimeService, LineChartComponent, LineChartModule, LineChartType, ListFormFieldComponent, LoadingWheelComponent, LoadingWheelModule, LoadingWheelSize, LocalDateConverterPipe, MachineNameValidatorDirective, MarkdownDirective, MarkdownModule, MasterViewComponent, MasterViewContentDirective, MasterViewContentModule, MasterViewModule, MatchFieldValidatorDirective, MediaConversion2, MessageDialogComponent, Monaco, Navigation, NavigationService, NavigationTitle, NewBadgeComponent, NewFeatureBadgeComponent, NodeCredentialsFormComponent, NodeCredentialsFormModule, NodeService, NotificationService, NumberFormFieldComponent, NumberFormFieldLoaderComponent, ObjectDefaultFormFieldLoaderComponent, ObjectPropertySchemaFieldLoaderComponent, OptionsFormFieldComponent, OrderedListFormFieldComponent, OrderedListFormFieldLoaderComponent, PageAlertBarComponent, PageAlertBarModule, PanelControlComponent, PasswordFormFieldComponent, PasswordFormFieldLoaderComponent, PivotComponent, PivotModule, PivotTabComponent, PivotTabType, PowerShellService, PowerShellStreamService, PreviewBadgeComponent, PropertyGridComponent, PropertyGridItemComponent, PropertyGridModule, QueryDataItemPresetGenerator, QueryDataItemValueType, QueryDataOperand, QueryEditorComponent, QueryEditorModule, RadioGroupFormFieldComponent, RadioGroupFormFieldLoaderComponent, RatingRadioGroupFormFieldComponent, ReactiveForm, ReactiveFormAccessor, ReactiveFormWizardStepComponent, ReadonlyFormFieldComponent, RequiredTrimmedValidatorDirective, ResizerComponent, ResizerModule, ResourceService, RpcService, RpcShellService, SME_ASYNC_VALIDATORS, SME_FORM_FIELD_VALIDATION_ALERT_CONTAINER_PROVIDER, SME_LAYOUT_PROVIDER, SME_VALIDATORS, ScheduleRebootService, SchemaDataTypeStore, SchemaFieldContext, SchemaFieldHostComponent, SchemaFieldHostModule, SchemaFieldLoaderComponentBase, SchemaFormComponent, SchemaFormModule, SchemaPrimitiveType, SchemaUtilities, SearchFormFieldComponent, SecureExtensionDataService, SelectFormFieldDirective, SettingsComponent, SettingsContentComponent, SettingsFooterComponent, SettingsFormDirective, SettingsFormService, SettingsHeaderComponent, SettingsModule, SettingsNavigationComponent, SettingsPageComponent, SettingsService, SimplePropertySchemaFieldLoaderComponent, SliderFormFieldComponent, SliderFormFieldLoaderComponent, SmeExtensionService, SmeFormsModule, SmeHeaderData, SmeInjectableBase, SmeInternalFormFieldComponent, SmeResponsiveWindowBreakpoints, SmeResponsiveWindowBreakpointsValue, SmeResponsiveWindowManagerComponent, SmeRouterLinkDirective, SmeRouterModule, SmeSchemaProperty, SmeTemplateOutletModule, SmeUxComponent, SmeUxContentComponent, SmeUxContentModule, SmeUxFooterComponent, SmeUxFooterModule, SmeUxModule, SmeUxPageComponent, SmeUxPageModule, SmeWizardLiteFooterTemplateComponent, SmeWizardLiteFooterTemplateModule, SnapInExtensionComponent, SnapInExtensionModule, SnapInListener, SplitViewComponent, SplitViewContentComponent, SplitViewModule, SplitViewPaneComponent, SshStreamService, StackedBarComponent, StackedHorizontalBarChartComponent, StatusIconComponent, StatusIconType, SvgDirective, SvgInlineDirective, SvgInlineResource, SvgModule, SvgResource, TabbedFormController, TabbedFormItemController, TabbedFormLoaderComponent, TabbedLineChartGroupComponent, TagService, TagsActionButtonComponent, TagsColumnComponent, TagsFormFieldComponent, TagsFormFieldLoaderComponent, TelemetryDirective, TelemetryDirectiveModule, TemplateDrivenWizardStepComponent, TemplateOutletDirective, TextFormFieldComponent, TextFormFieldLoaderComponent, TileComponent, TileContentComponent, TileDirectivesModule, TileImageDirective, TileModule, TileRadioGroupFormFieldComponent, TimeFormFieldComponent, ToggleSwitchFormFieldComponent, ToggleSwitchFormFieldLoaderComponent, ToolHeaderComponent, ToolHeaderModule, TooltipDirective, TooltipHostComponent, TooltipHostInstance, TooltipModule, TooltipPlacement, TooltipZoneDirective, TreeTableComponent, UserAliveService, UxExtensionRootComponent, ValidationAlertComponent, ValidationAlertSeverity, WarningBadgeComponent, WebsocketStreamService, WizardAsParent, WizardBuilder, WizardComponent, WizardLiteComponent, WizardLiteModule, WizardModule, WizardNavigationButtonComponent, WizardNavigationButtonModule, WizardNavigationInformation, WizardStage, WizardStep, WizardStepComponent, WorkItemService, YesNoConverterPipe, YesNoConverterPipeModule, Yield, alertDialog, getFullRouteParams, modalDialog };
56949
57321
  //# sourceMappingURL=microsoft-windows-admin-center-sdk-angular.mjs.map