@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';
@@ -20,6 +20,7 @@ import { ActiveConnection } from '@microsoft/windows-admin-center-sdk/core/secur
20
20
  import { CimConnection } from '@microsoft/windows-admin-center-sdk/core/data/cim-connection';
21
21
  import { BatchConnection } from '@microsoft/windows-admin-center-sdk/core/data/batch-connection';
22
22
  import { AuthorizationManager } from '@microsoft/windows-admin-center-sdk/core/security/authorization-manager';
23
+ import * as i1$3 from '@microsoft/windows-admin-center-sdk/core/rpc/rpc';
23
24
  import { Rpc } from '@microsoft/windows-admin-center-sdk/core/rpc/rpc';
24
25
  import { GatewayConnection } from '@microsoft/windows-admin-center-sdk/core/data/gateway-connection';
25
26
  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.
@@ -3547,7 +3551,7 @@ class TooltipHostInstance {
3547
3551
  }], null, null); })();
3548
3552
 
3549
3553
  const _c0$1I = ["tooltipContainer"];
3550
- const _c1$T = ["tooltipPointer"];
3554
+ const _c1$V = ["tooltipPointer"];
3551
3555
  function TooltipHostComponent_div_5_ng_container_1_Template(rf, ctx) { if (rf & 1) {
3552
3556
  i0.ɵɵelementContainerStart(0);
3553
3557
  i0.ɵɵelementContainer(1, 10);
@@ -3918,7 +3922,7 @@ TooltipHostComponent.SCREEN_EDGE_MARGIN = 16;
3918
3922
  /** @nocollapse */ TooltipHostComponent.ɵfac = function TooltipHostComponent_Factory(t) { return new (t || TooltipHostComponent)(i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵdirectiveInject(i0.NgZone)); };
3919
3923
  /** @nocollapse */ TooltipHostComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: TooltipHostComponent, selectors: [["sme-tooltip-host"]], viewQuery: function TooltipHostComponent_Query(rf, ctx) { if (rf & 1) {
3920
3924
  i0.ɵɵviewQuery(_c0$1I, 5);
3921
- i0.ɵɵviewQuery(_c1$T, 5);
3925
+ i0.ɵɵviewQuery(_c1$V, 5);
3922
3926
  } if (rf & 2) {
3923
3927
  let _t;
3924
3928
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.tooltipContainer = _t.first);
@@ -5151,12 +5155,12 @@ class ExtensionRootModule {
5151
5155
  BackgroundExtensionRootComponent] }); })();
5152
5156
 
5153
5157
  const _c0$1G = ["*"];
5154
- const _c1$S = function (a0, a1) { return { "sme-icon-chevronDown": a0, "sme-icon-chevronRight": a1 }; };
5158
+ const _c1$U = function (a0, a1) { return { "sme-icon-chevronDown": a0, "sme-icon-chevronRight": a1 }; };
5155
5159
  function AccordionPanelComponent_span_4_Template(rf, ctx) { if (rf & 1) {
5156
5160
  i0.ɵɵelement(0, "span", 7);
5157
5161
  } if (rf & 2) {
5158
5162
  const ctx_r1 = i0.ɵɵnextContext();
5159
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction2(1, _c1$S, ctx_r1.opened, !ctx_r1.opened));
5163
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction2(1, _c1$U, ctx_r1.opened, !ctx_r1.opened));
5160
5164
  } }
5161
5165
  function AccordionPanelComponent_div_8_Template(rf, ctx) { if (rf & 1) {
5162
5166
  i0.ɵɵelementStart(0, "div", 8);
@@ -5169,9 +5173,17 @@ function AccordionPanelComponent_div_8_Template(rf, ctx) { if (rf & 1) {
5169
5173
  const _c2$n = [[["sme-panel-control"]], "*"];
5170
5174
  const _c3$e = ["sme-panel-control", "*"];
5171
5175
  class PanelControlComponent {
5176
+ constructor() {
5177
+ /**
5178
+ * Best effort to make sure the buttons, texts can be focused.
5179
+ */
5180
+ this.defaultFocusZone = true;
5181
+ }
5172
5182
  }
5173
5183
  /** @nocollapse */ PanelControlComponent.ɵfac = function PanelControlComponent_Factory(t) { return new (t || PanelControlComponent)(); };
5174
- /** @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) { if (rf & 1) {
5184
+ /** @nocollapse */ PanelControlComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: PanelControlComponent, selectors: [["sme-panel-control"]], hostVars: 2, hostBindings: function PanelControlComponent_HostBindings(rf, ctx) { if (rf & 2) {
5185
+ i0.ɵɵclassProp("sme-focus-zone", ctx.defaultFocusZone);
5186
+ } }, ngContentSelectors: _c0$1G, decls: 1, vars: 0, template: function PanelControlComponent_Template(rf, ctx) { if (rf & 1) {
5175
5187
  i0.ɵɵprojectionDef();
5176
5188
  i0.ɵɵprojection(0);
5177
5189
  } }, encapsulation: 2 });
@@ -5181,9 +5193,21 @@ class PanelControlComponent {
5181
5193
  selector: 'sme-panel-control',
5182
5194
  template: '<ng-content></ng-content>'
5183
5195
  }]
5184
- }], null, null); })();
5196
+ }], null, { defaultFocusZone: [{
5197
+ type: HostBinding,
5198
+ args: ['class.sme-focus-zone']
5199
+ }] }); })();
5185
5200
  class AccordionPanelComponent {
5186
5201
  constructor() {
5202
+ /**
5203
+ * It indicates whether the panel is opened.
5204
+ */
5205
+ this.opened = true;
5206
+ /**
5207
+ * It indicates whether the panel is initially opened.
5208
+ * This value will no longer be respected after the control fully loaded.
5209
+ */
5210
+ this.initialOpened = true;
5187
5211
  /**
5188
5212
  * It indicates whether the panel is expandable.
5189
5213
  */
@@ -5199,21 +5223,24 @@ class AccordionPanelComponent {
5199
5223
  */
5200
5224
  this.paddingInset = false;
5201
5225
  this.toggled = new EventEmitter();
5202
- this.opened = true;
5226
+ }
5227
+ ngOnInit() {
5228
+ this.opened = !!this.initialOpened;
5203
5229
  this.canClose = this.isExpandable;
5204
5230
  }
5205
5231
  /**
5206
5232
  * The on toggle function implementation.
5207
5233
  */
5208
5234
  onToggle() {
5209
- if (this.isExpandable) {
5210
- this.opened = !this.opened;
5211
- this.toggled.emit(this);
5235
+ if (!this.isExpandable) {
5236
+ return;
5212
5237
  }
5238
+ this.opened = !this.opened;
5239
+ this.toggled.emit(this);
5213
5240
  }
5214
5241
  }
5215
5242
  /** @nocollapse */ AccordionPanelComponent.ɵfac = function AccordionPanelComponent_Factory(t) { return new (t || AccordionPanelComponent)(); };
5216
- /** @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) { if (rf & 1) {
5243
+ /** @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) { if (rf & 1) {
5217
5244
  i0.ɵɵprojectionDef(_c2$n);
5218
5245
  i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "div", 2, 3);
5219
5246
  i0.ɵɵlistener("click", function AccordionPanelComponent_Template_div_click_2_listener() { return ctx.onToggle(); });
@@ -5230,6 +5257,7 @@ class AccordionPanelComponent {
5230
5257
  i0.ɵɵclassProp("sme-panel-header-border-radius", ctx.borderRadius)("sme-panel-header-border-radius-opened", ctx.borderRadius && ctx.opened);
5231
5258
  i0.ɵɵadvance(1);
5232
5259
  i0.ɵɵclassProp("sme-focus-zone", ctx.canClose)("sme-panel-header-border-radius", ctx.borderRadius)("sme-panel-header-border-radius-opened", ctx.borderRadius && ctx.opened);
5260
+ i0.ɵɵattribute("aria-expanded", !!ctx.opened)("aria-label", ctx.header);
5233
5261
  i0.ɵɵadvance(2);
5234
5262
  i0.ɵɵproperty("ngIf", ctx.canClose);
5235
5263
  i0.ɵɵadvance(1);
@@ -5241,10 +5269,10 @@ class AccordionPanelComponent {
5241
5269
  } }, dependencies: [i1$1.NgClass, i1$1.NgIf], encapsulation: 2 });
5242
5270
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AccordionPanelComponent, [{
5243
5271
  type: Component,
5244
- 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" }]
5245
- }], function () { return []; }, { header: [{
5272
+ 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" }]
5273
+ }], null, { header: [{
5246
5274
  type: Input
5247
- }], opened: [{
5275
+ }], initialOpened: [{
5248
5276
  type: Input
5249
5277
  }], isExpandable: [{
5250
5278
  type: Input
@@ -5955,7 +5983,7 @@ __decorate([
5955
5983
  }], null, { closeNestedHelper: [] }); })();
5956
5984
 
5957
5985
  const _c0$1E = ["smeDropdownContent"];
5958
- const _c1$R = ["smeDropdownToggle"];
5986
+ const _c1$T = ["smeDropdownToggle"];
5959
5987
  const _c2$m = [[["", 8, "sme-dropdown-toggle"]], [["", 8, "sme-dropdown-content"]]];
5960
5988
  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 }; };
5961
5989
  const _c4$9 = [".sme-dropdown-toggle", ".sme-dropdown-content"];
@@ -6147,7 +6175,7 @@ class DropdownComponent {
6147
6175
  /** @nocollapse */ DropdownComponent.ɵfac = function DropdownComponent_Factory(t) { return new (t || DropdownComponent)(i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(DropdownService), i0.ɵɵdirectiveInject(SME_LAYOUT_PROVIDER, 8)); };
6148
6176
  /** @nocollapse */ DropdownComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DropdownComponent, selectors: [["sme-dropdown"]], viewQuery: function DropdownComponent_Query(rf, ctx) { if (rf & 1) {
6149
6177
  i0.ɵɵviewQuery(_c0$1E, 5);
6150
- i0.ɵɵviewQuery(_c1$R, 7);
6178
+ i0.ɵɵviewQuery(_c1$T, 7);
6151
6179
  } if (rf & 2) {
6152
6180
  let _t;
6153
6181
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.contentElement = _t.first);
@@ -6677,7 +6705,7 @@ class ActionMenuComponent extends ActionContainerComponent {
6677
6705
  }] }, { type: i0.Injector }]; }, null); })();
6678
6706
 
6679
6707
  const _c0$1B = ["actionBarElement"];
6680
- const _c1$Q = ["dropDownButton"];
6708
+ const _c1$S = ["dropDownButton"];
6681
6709
  const _c2$l = ["dropDown"];
6682
6710
  function ActionBarComponent_sme_dynamic_action_item_2_Template(rf, ctx) { if (rf & 1) {
6683
6711
  const _r6 = i0.ɵɵgetCurrentView();
@@ -7038,7 +7066,7 @@ class ActionBarComponent extends ActionContainerComponent {
7038
7066
  /** @nocollapse */ ActionBarComponent.ɵfac = function ActionBarComponent_Factory(t) { return new (t || ActionBarComponent)(i0.ɵɵdirectiveInject(i0.IterableDiffers), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(SME_LAYOUT_PROVIDER, 8), i0.ɵɵdirectiveInject(i0.Injector)); };
7039
7067
  /** @nocollapse */ ActionBarComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: ActionBarComponent, selectors: [["sme-action-bar"]], viewQuery: function ActionBarComponent_Query(rf, ctx) { if (rf & 1) {
7040
7068
  i0.ɵɵviewQuery(_c0$1B, 5);
7041
- i0.ɵɵviewQuery(_c1$Q, 5);
7069
+ i0.ɵɵviewQuery(_c1$S, 5);
7042
7070
  i0.ɵɵviewQuery(_c2$l, 5);
7043
7071
  } if (rf & 2) {
7044
7072
  let _t;
@@ -7722,7 +7750,7 @@ class ActionButtonAsyncComponent extends ActionItemComponent {
7722
7750
  }] }); })();
7723
7751
 
7724
7752
  const _c0$1A = ["dropDown"];
7725
- const _c1$P = ["dropDownButton"];
7753
+ const _c1$R = ["dropDownButton"];
7726
7754
  function ActionDropdownRendererComponent_p_4_Template(rf, ctx) { if (rf & 1) {
7727
7755
  i0.ɵɵelementStart(0, "p", 10);
7728
7756
  i0.ɵɵtext(1);
@@ -7834,7 +7862,7 @@ ActionDropdownRendererComponent.dropdownUtaIdSuffix = '-dropdown';
7834
7862
  /** @nocollapse */ ActionDropdownRendererComponent.ɵfac = function ActionDropdownRendererComponent_Factory(t) { return new (t || ActionDropdownRendererComponent)(i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i0.ElementRef)); };
7835
7863
  /** @nocollapse */ ActionDropdownRendererComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: ActionDropdownRendererComponent, selectors: [["sme-action-dropdown-renderer"]], viewQuery: function ActionDropdownRendererComponent_Query(rf, ctx) { if (rf & 1) {
7836
7864
  i0.ɵɵviewQuery(_c0$1A, 5);
7837
- i0.ɵɵviewQuery(_c1$P, 5);
7865
+ i0.ɵɵviewQuery(_c1$R, 5);
7838
7866
  } if (rf & 2) {
7839
7867
  let _t;
7840
7868
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.dropDown = _t.first);
@@ -8807,7 +8835,7 @@ function EditableLayoutItemComponent_p_2_Template(rf, ctx) { if (rf & 1) {
8807
8835
  i0.ɵɵtextInterpolate1(" ", ctx_r0.displayName, " ");
8808
8836
  } }
8809
8837
  const _c0$1v = function (a0) { return { "sme-cursor-pointer": a0 }; };
8810
- const _c1$O = function (a0) { return { "sme-corner-resizer-disabled": a0 }; };
8838
+ const _c1$Q = function (a0) { return { "sme-corner-resizer-disabled": a0 }; };
8811
8839
  const _c2$j = ["*"];
8812
8840
  /**
8813
8841
  * Individual Layout Items that can be added on demand with as -
@@ -8910,7 +8938,7 @@ class EditableLayoutItemComponent extends CoreBaseComponent {
8910
8938
  i0.ɵɵadvance(1);
8911
8939
  i0.ɵɵproperty("ngIf", ctx.isLayoutItemDraggable);
8912
8940
  i0.ɵɵadvance(2);
8913
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(14, _c1$O, !ctx.isLayoutItemDraggable));
8941
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(14, _c1$Q, !ctx.isLayoutItemDraggable));
8914
8942
  } }, dependencies: [i1$1.NgClass, i1$1.NgIf], encapsulation: 2 });
8915
8943
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(EditableLayoutItemComponent, [{
8916
8944
  type: Component,
@@ -9508,7 +9536,7 @@ __decorate([
9508
9536
  ], LayoutResponsiveWindowManager.prototype, "onWindowSizeChanged", null);
9509
9537
 
9510
9538
  const _c0$1t = [[["sme-layout-item"]]];
9511
- const _c1$N = ["sme-layout-item"];
9539
+ const _c1$P = ["sme-layout-item"];
9512
9540
  /**
9513
9541
  * Layout component
9514
9542
  */
@@ -9954,7 +9982,7 @@ class LayoutComponent extends CoreBaseComponent {
9954
9982
  let _t;
9955
9983
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.layoutItems = _t);
9956
9984
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.definitions = _t);
9957
- } }, 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) { if (rf & 1) {
9985
+ } }, 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) { if (rf & 1) {
9958
9986
  i0.ɵɵprojectionDef(_c0$1t);
9959
9987
  i0.ɵɵprojection(0);
9960
9988
  } }, encapsulation: 2 });
@@ -10011,7 +10039,7 @@ __decorate([
10011
10039
  }], refresh: [], deferredOnLayoutChanged: [], onWindowBreakpointChanged: [] }); })();
10012
10040
 
10013
10041
  const _c0$1s = [[["sme-editable-layout-item"]]];
10014
- const _c1$M = ["sme-editable-layout-item"];
10042
+ const _c1$O = ["sme-editable-layout-item"];
10015
10043
  class EditableLayoutComponent extends LayoutComponent {
10016
10044
  /**
10017
10045
  * The source name to use for logging
@@ -10179,7 +10207,7 @@ EditableLayoutComponent.gridPaddingSize = 8;
10179
10207
  } if (rf & 2) {
10180
10208
  let _t;
10181
10209
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.editableLayoutItems = _t);
10182
- } }, 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) { if (rf & 1) {
10210
+ } }, 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) { if (rf & 1) {
10183
10211
  i0.ɵɵprojectionDef(_c0$1s);
10184
10212
  i0.ɵɵelementStart(0, "div", 0);
10185
10213
  i0.ɵɵprojection(1);
@@ -10239,7 +10267,7 @@ function LoadingWheelComponent_a_11_Template(rf, ctx) { if (rf & 1) {
10239
10267
  i0.ɵɵtextInterpolate(ctx_r1.buttonLabel);
10240
10268
  } }
10241
10269
  const _c0$1r = function (a0, a1, a2) { return { "sme-scheme-loading-wheel": a0, "sme-layout-absolute": a1, "sme-position-inset-none": a2 }; };
10242
- const _c1$L = function (a0, a1) { return { "sme-layout-absolute": a0, "sme-position-center": a1 }; };
10270
+ const _c1$N = function (a0, a1) { return { "sme-layout-absolute": a0, "sme-position-center": a1 }; };
10243
10271
  const _c2$i = function (a0, a1) { return { "sme-progress-center": a0, "sme-progress-center-h": a1 }; };
10244
10272
  var LoadingWheelSize;
10245
10273
  (function (LoadingWheelSize) {
@@ -10385,7 +10413,7 @@ class LoadingWheelComponent extends CoreBaseComponent {
10385
10413
  } if (rf & 2) {
10386
10414
  i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction3(11, _c0$1r, !ctx.isBackgroundTransparent, !ctx.inline, !ctx.inline));
10387
10415
  i0.ɵɵadvance(1);
10388
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction2(15, _c1$L, !ctx.inline, !ctx.inline));
10416
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction2(15, _c1$N, !ctx.inline, !ctx.inline));
10389
10417
  i0.ɵɵadvance(1);
10390
10418
  i0.ɵɵclassMapInterpolate1("sme-progress sme-progress-indeterminate-local ", ctx.sizeClass, " sme-focus-zone");
10391
10419
  i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction2(18, _c2$i, ctx.inline, !ctx.inline));
@@ -12003,7 +12031,7 @@ class SmeInternalFormFieldComponent extends FormFieldComponent {
12003
12031
  }], null, null); })();
12004
12032
 
12005
12033
  const _c0$1q = ["fieldHost"];
12006
- const _c1$K = ["field"];
12034
+ const _c1$M = ["field"];
12007
12035
  /**
12008
12036
  * Schema Form Component
12009
12037
  * It takes the schema and data and other necessary inputs then dynamically renders the form UI.
@@ -12311,7 +12339,7 @@ SchemaFieldLoaderComponentBase.resourceActualTextPrefix = 'actual_string:';
12311
12339
  SchemaFieldLoaderComponentBase.localizationCache = {};
12312
12340
  /** @nocollapse */ SchemaFieldLoaderComponentBase.ɵfac = function SchemaFieldLoaderComponentBase_Factory(t) { return new (t || SchemaFieldLoaderComponentBase)(); };
12313
12341
  /** @nocollapse */ SchemaFieldLoaderComponentBase.ɵdir = /** @pureOrBreakMyCode */ i0.ɵɵdefineDirective({ type: SchemaFieldLoaderComponentBase, viewQuery: function SchemaFieldLoaderComponentBase_Query(rf, ctx) { if (rf & 1) {
12314
- i0.ɵɵviewQuery(_c1$K, 5);
12342
+ i0.ɵɵviewQuery(_c1$M, 5);
12315
12343
  } if (rf & 2) {
12316
12344
  let _t;
12317
12345
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.formFieldComponent = _t.first);
@@ -14501,7 +14529,7 @@ function DialogComponent_sme_backdrop_0_Template(rf, ctx) { if (rf & 1) {
14501
14529
  i0.ɵɵadvance(1);
14502
14530
  i0.ɵɵproperty("ngIf", ctx_r0.ariaDescription);
14503
14531
  } }
14504
- const _c1$J = [[["sme-dialog-header"]], [["sme-dialog-content"]], [["sme-dialog-footer"]]];
14532
+ const _c1$L = [[["sme-dialog-header"]], [["sme-dialog-content"]], [["sme-dialog-footer"]]];
14505
14533
  const _c2$h = ["sme-dialog-header", "sme-dialog-content", "sme-dialog-footer"];
14506
14534
  /**
14507
14535
  *
@@ -14819,7 +14847,7 @@ DialogComponent.nextDialogId = 0;
14819
14847
  /** @nocollapse */ DialogComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DialogComponent, selectors: [["sme-dialog"]], hostBindings: function DialogComponent_HostBindings(rf, ctx) { if (rf & 1) {
14820
14848
  i0.ɵɵlistener("keyup.escape", function DialogComponent_keyup_escape_HostBindingHandler() { return ctx.onKeyUp(); }, false, i0.ɵɵresolveDocument);
14821
14849
  } }, 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) { if (rf & 1) {
14822
- i0.ɵɵprojectionDef(_c1$J);
14850
+ i0.ɵɵprojectionDef(_c1$L);
14823
14851
  i0.ɵɵtemplate(0, DialogComponent_sme_backdrop_0_Template, 11, 11, "sme-backdrop", 0);
14824
14852
  } if (rf & 2) {
14825
14853
  i0.ɵɵproperty("ngIf", ctx.visible);
@@ -15868,6 +15896,162 @@ class SchemaFieldHostModule {
15868
15896
  DisabledModule,
15869
15897
  TooltipModule], exports: [SchemaFieldHostComponent] }); })();
15870
15898
 
15899
+ /**
15900
+ * A re-usable form field accessibility manager.
15901
+ */
15902
+ class FormFieldAccessibilityManagerBaseService {
15903
+ /**
15904
+ * The focus handler on delete/add if the form field is a list.
15905
+ * @param value The value for the list form field.
15906
+ * @param addButton The component reference for the add button.
15907
+ * @param hostElement The host element reference.
15908
+ * @param isDelete Determine if the action is delete.
15909
+ * @returns void
15910
+ */
15911
+ listFormFieldFocusHandlerOnKeyboardAction(value, addButton, hostElement, isDelete = true) {
15912
+ // If there are no items in the list, focus on the add button.
15913
+ if (!value || !value.length) {
15914
+ this.deferredFocusOnAddButton(addButton);
15915
+ return;
15916
+ }
15917
+ // Otherwise focus on the either the first input fields when it is delete or the last input field when it is add.
15918
+ this.deferredFocusOnInputFields(hostElement, value, isDelete);
15919
+ }
15920
+ /**
15921
+ * The focus handler on delete/add if the form field is a list. And the list is built with a specific selector.
15922
+ * @param value The value for the list form field.
15923
+ * @param addButton The component reference for the add button.
15924
+ * @param hostElement The host element reference.
15925
+ * @param selector The selector for the input fields.
15926
+ * @returns void
15927
+ */
15928
+ listFormFieldFocusHandlerOnKeyboardActionBySelector(value, addButton, hostElement, selector) {
15929
+ // If there are no items in the list, focus on the add button.
15930
+ if (!value || !value.length) {
15931
+ this.deferredFocusOnAddButton(addButton);
15932
+ return;
15933
+ }
15934
+ // Otherwise focus on the either the first input fields when it is delete or the last input field when it is add.
15935
+ this.deferredFocusOnTargetBySelector(value, hostElement, selector);
15936
+ }
15937
+ /**
15938
+ * It handles the focus on the input field by index if value is type of any[].
15939
+ * @param hostElement the host form field element.
15940
+ * @param index the index of the input field to focus on.
15941
+ * @returns void.
15942
+ */
15943
+ focusOnInputByIndex(hostElement, index) {
15944
+ const inputs = hostElement.nativeElement.querySelectorAll('input');
15945
+ if (index < 0 || index >= inputs.length) {
15946
+ return;
15947
+ }
15948
+ inputs[index].focus();
15949
+ }
15950
+ deferredFocusOnTargetBySelector(value, hostElement, selector) {
15951
+ if (!value || !value.length) {
15952
+ return;
15953
+ }
15954
+ const targets = hostElement.nativeElement.querySelectorAll(selector);
15955
+ if (!targets || !targets.length) {
15956
+ return;
15957
+ }
15958
+ targets[0].focus();
15959
+ }
15960
+ deferredFocusOnAddButton(addButton) {
15961
+ if (!addButton) {
15962
+ return;
15963
+ }
15964
+ addButton.nativeElement.focus();
15965
+ }
15966
+ deferredFocusOnInputFields(hostElement, value, isDelete = true) {
15967
+ if (!value || !value.length) {
15968
+ return;
15969
+ }
15970
+ this.focusOnInputByIndex(hostElement, isDelete ? 0 : value.length - 1);
15971
+ }
15972
+ }
15973
+ /** @nocollapse */ FormFieldAccessibilityManagerBaseService.ɵfac = function FormFieldAccessibilityManagerBaseService_Factory(t) { return new (t || FormFieldAccessibilityManagerBaseService)(); };
15974
+ /** @nocollapse */ FormFieldAccessibilityManagerBaseService.ɵprov = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjectable({ token: FormFieldAccessibilityManagerBaseService, factory: FormFieldAccessibilityManagerBaseService.ɵfac, providedIn: 'root' });
15975
+ __decorate([
15976
+ Debounce$2(),
15977
+ __metadata("design:type", Function),
15978
+ __metadata("design:paramtypes", [Array, ElementRef, String]),
15979
+ __metadata("design:returntype", void 0)
15980
+ ], FormFieldAccessibilityManagerBaseService.prototype, "deferredFocusOnTargetBySelector", null);
15981
+ __decorate([
15982
+ Debounce$2(),
15983
+ __metadata("design:type", Function),
15984
+ __metadata("design:paramtypes", [ElementRef]),
15985
+ __metadata("design:returntype", void 0)
15986
+ ], FormFieldAccessibilityManagerBaseService.prototype, "deferredFocusOnAddButton", null);
15987
+ __decorate([
15988
+ Debounce$2(),
15989
+ __metadata("design:type", Function),
15990
+ __metadata("design:paramtypes", [ElementRef, Array, Object]),
15991
+ __metadata("design:returntype", void 0)
15992
+ ], FormFieldAccessibilityManagerBaseService.prototype, "deferredFocusOnInputFields", null);
15993
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FormFieldAccessibilityManagerBaseService, [{
15994
+ type: Injectable,
15995
+ args: [{
15996
+ providedIn: 'root'
15997
+ }]
15998
+ }], null, { deferredFocusOnTargetBySelector: [], deferredFocusOnAddButton: [], deferredFocusOnInputFields: [] }); })();
15999
+
16000
+ class ArrayFormFieldAccessibilityManagerService {
16001
+ constructor(formFieldAccessibilityManagerBaseService) {
16002
+ this.formFieldAccessibilityManagerBaseService = formFieldAccessibilityManagerBaseService;
16003
+ this.firstFormFieldInArrayItemSelector = 'sme-accordion sme-accordion-panel:last-of-type input';
16004
+ }
16005
+ /**
16006
+ * It handles the focus when deleting an item from the list.
16007
+ * @param value the value for the list.
16008
+ * @param addButton the element reference for the add button.
16009
+ * @param hostElement the element reference for the host element.
16010
+ * @returns void
16011
+ */
16012
+ delete(value, addButton, hostElement) {
16013
+ this.formFieldAccessibilityManagerBaseService.listFormFieldFocusHandlerOnKeyboardActionBySelector(value, addButton, hostElement, this.firstFormFieldInArrayItemSelector);
16014
+ }
16015
+ /**
16016
+ * It handles the focus when adding an item to the list.
16017
+ * @param value the value for the list.
16018
+ * @param addButton the element reference for the add button.
16019
+ * @param hostElement the element reference for the host element.
16020
+ * @returns void
16021
+ */
16022
+ add(value, addButton, hostElement) {
16023
+ this.formFieldAccessibilityManagerBaseService.listFormFieldFocusHandlerOnKeyboardActionBySelector(value, addButton, hostElement, this.firstFormFieldInArrayItemSelector);
16024
+ }
16025
+ /**
16026
+ * It handles the focus when promoting an item in the list.
16027
+ * @param hostElement The element reference for the host element.
16028
+ * @param index the current index.
16029
+ */
16030
+ promote(value, hostElement, index) {
16031
+ this.formFieldAccessibilityManagerBaseService.deferredFocusOnTargetBySelector(value, hostElement,
16032
+ // nth means index - 1 + 1 = index
16033
+ `sme-accordion sme-accordion-panel:nth-of-type(${index}) button:nth-of-type(2)`);
16034
+ }
16035
+ /**
16036
+ * It handles the focus when demoting an item in the list.
16037
+ * @param hostElement The element reference for the host element.
16038
+ * @param index the current index.
16039
+ */
16040
+ demote(value, hostElement, index) {
16041
+ this.formFieldAccessibilityManagerBaseService.deferredFocusOnTargetBySelector(value, hostElement,
16042
+ // nth means index + 1 + 1 = index + 2
16043
+ `sme-accordion sme-accordion-panel:nth-of-type(${index + 2}) button:nth-of-type(3)`);
16044
+ }
16045
+ }
16046
+ /** @nocollapse */ ArrayFormFieldAccessibilityManagerService.ɵfac = function ArrayFormFieldAccessibilityManagerService_Factory(t) { return new (t || ArrayFormFieldAccessibilityManagerService)(i0.ɵɵinject(FormFieldAccessibilityManagerBaseService)); };
16047
+ /** @nocollapse */ ArrayFormFieldAccessibilityManagerService.ɵprov = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjectable({ token: ArrayFormFieldAccessibilityManagerService, factory: ArrayFormFieldAccessibilityManagerService.ɵfac, providedIn: 'root' });
16048
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ArrayFormFieldAccessibilityManagerService, [{
16049
+ type: Injectable,
16050
+ args: [{
16051
+ providedIn: 'root'
16052
+ }]
16053
+ }], function () { return [{ type: FormFieldAccessibilityManagerBaseService }]; }, null); })();
16054
+
15871
16055
  /**
15872
16056
  * Provider that hides any existing ControlContainers from NgModel
15873
16057
  */
@@ -16001,7 +16185,7 @@ function ArrayFormFieldLoaderComponent_ng_template_2_Template(rf, ctx) { if (rf
16001
16185
  const ctx_r1 = i0.ɵɵnextContext();
16002
16186
  i0.ɵɵproperty("propertySchema", ctx_r1.propertySchema.item)("context", ctx_r1.context)("data", model_r2);
16003
16187
  } }
16004
- const _c1$I = ["addButton"];
16188
+ const _c1$K = ["addButton"];
16005
16189
  const _c2$g = ["type", "array"];
16006
16190
  const _c3$b = function (a0, a1) { return { index: a0, ariaLabelId: a1 }; };
16007
16191
  function ArrayFormFieldComponent_sme_accordion_panel_3_ng_container_2_Template(rf, ctx) { if (rf & 1) {
@@ -16099,7 +16283,6 @@ function ArrayFormFieldComponent_button_4_Template(rf, ctx) { if (rf & 1) {
16099
16283
  i0.ɵɵtextInterpolate(ctx_r1.addButtonText);
16100
16284
  } }
16101
16285
  /* eslint-disable max-len */
16102
- /* eslint-enable max-len */
16103
16286
  class ArrayFormFieldLoaderComponent extends ArrayPropertySchemaFieldLoaderComponent {
16104
16287
  askForNewItem($event) {
16105
16288
  const item = SchemaUtilities.generateDataBasedOnSchemaProperty(this.propertySchema.item);
@@ -16168,8 +16351,9 @@ let ArrayFormFieldComponent = class ArrayFormFieldComponent extends SmeInternalF
16168
16351
  /**
16169
16352
  * Initializes a new instance of the JsonFormFieldComponent
16170
16353
  */
16171
- constructor(injector) {
16354
+ constructor(injector, arrayFormFieldAccessibilityManagerService) {
16172
16355
  super(injector);
16356
+ this.arrayFormFieldAccessibilityManagerService = arrayFormFieldAccessibilityManagerService;
16173
16357
  /**
16174
16358
  * When no "newItem" is provided. This output will be called anytime a new item is required.
16175
16359
  */
@@ -16255,35 +16439,19 @@ let ArrayFormFieldComponent = class ArrayFormFieldComponent extends SmeInternalF
16255
16439
  */
16256
16440
  add() {
16257
16441
  const item = this.getNewItem();
16258
- const index = this.value.length;
16259
16442
  this.value.push(item);
16260
16443
  this.triggerValueChange();
16261
- setTimeout(() => {
16262
- const itemId = this.getItemAriaId(index, 'itemContainer');
16263
- const itemContainer = document.getElementById(itemId);
16264
- const firstInput = itemContainer.querySelector('input');
16265
- if (firstInput) {
16266
- firstInput.focus();
16267
- }
16268
- itemContainer.scrollIntoView({ behavior: 'smooth', block: 'center' });
16269
- });
16444
+ this.arrayFormFieldAccessibilityManagerService.add(this.value, this.addButton, this.hostElement);
16270
16445
  }
16271
16446
  /**
16272
16447
  * Deletes an item from the array
16273
16448
  */
16274
16449
  delete(item) {
16275
16450
  const index = this.value.indexOf(item);
16276
- // return the view to the previous item in the list.
16277
- const prevItemId = this.getItemAriaId(index - 1, 'itemContainer');
16278
- const prevContainer = document.getElementById(prevItemId);
16279
- if (prevContainer) {
16280
- prevContainer.scrollIntoView({ behavior: 'smooth', block: 'center' });
16281
- }
16282
- // focus on the add button, otherwise focus is reset to the beginning of the page
16283
- this.addButton.nativeElement.focus();
16284
16451
  this.value.splice(index, 1);
16285
16452
  this.triggerValueChange();
16286
16453
  this.updateScreenReaderEvent(this.strings.MsftSmeShell.Angular.Form.Array.removeButtonEvent);
16454
+ this.arrayFormFieldAccessibilityManagerService.delete(this.value, this.addButton, this.hostElement);
16287
16455
  }
16288
16456
  /**
16289
16457
  * Decreases the index of an item by 1
@@ -16295,6 +16463,7 @@ let ArrayFormFieldComponent = class ArrayFormFieldComponent extends SmeInternalF
16295
16463
  this.value[index] = { ...this.value[index - 1] };
16296
16464
  this.value[index - 1] = temp;
16297
16465
  this.updateScreenReaderEvent(this.strings.MsftSmeShell.Angular.Form.Array.promoteButtonEvent);
16466
+ this.arrayFormFieldAccessibilityManagerService.promote(this.value, this.hostElement, index);
16298
16467
  }
16299
16468
  else {
16300
16469
  this.updateScreenReaderEvent(this.strings.MsftSmeShell.Angular.Form.Array.promoteButtonPreventedEvent);
@@ -16310,6 +16479,7 @@ let ArrayFormFieldComponent = class ArrayFormFieldComponent extends SmeInternalF
16310
16479
  this.value[index] = { ...this.value[index + 1] };
16311
16480
  this.value[index + 1] = temp;
16312
16481
  this.updateScreenReaderEvent(this.strings.MsftSmeShell.Angular.Form.Array.demoteButtonEvent);
16482
+ this.arrayFormFieldAccessibilityManagerService.demote(this.value, this.hostElement, index);
16313
16483
  }
16314
16484
  else {
16315
16485
  this.updateScreenReaderEvent(this.strings.MsftSmeShell.Angular.Form.Array.demoteButtonPreventedEvent);
@@ -16389,14 +16559,14 @@ let ArrayFormFieldComponent = class ArrayFormFieldComponent extends SmeInternalF
16389
16559
  }
16390
16560
  }
16391
16561
  };
16392
- /** @nocollapse */ ArrayFormFieldComponent.ɵfac = function ArrayFormFieldComponent_Factory(t) { return new (t || ArrayFormFieldComponent)(i0.ɵɵdirectiveInject(i0.Injector)); };
16562
+ /** @nocollapse */ ArrayFormFieldComponent.ɵfac = function ArrayFormFieldComponent_Factory(t) { return new (t || ArrayFormFieldComponent)(i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵdirectiveInject(ArrayFormFieldAccessibilityManagerService)); };
16393
16563
  /** @nocollapse */ ArrayFormFieldComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: ArrayFormFieldComponent, selectors: [["sme-form-field", "type", "array"]], contentQueries: function ArrayFormFieldComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {
16394
16564
  i0.ɵɵcontentQuery(dirIndex, FormFieldIsolatorComponent, 7);
16395
16565
  } if (rf & 2) {
16396
16566
  let _t;
16397
16567
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.subFieldIsolator = _t.first);
16398
16568
  } }, viewQuery: function ArrayFormFieldComponent_Query(rf, ctx) { if (rf & 1) {
16399
- i0.ɵɵviewQuery(_c1$I, 5);
16569
+ i0.ɵɵviewQuery(_c1$K, 5);
16400
16570
  } if (rf & 2) {
16401
16571
  let _t;
16402
16572
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.addButton = _t.first);
@@ -16433,12 +16603,13 @@ ArrayFormFieldComponent = __decorate([
16433
16603
  description: `A form field control binding to array data.`,
16434
16604
  loaderComponent: ArrayFormFieldLoaderComponent
16435
16605
  }),
16436
- __metadata("design:paramtypes", [Injector])
16606
+ __metadata("design:paramtypes", [Injector,
16607
+ ArrayFormFieldAccessibilityManagerService])
16437
16608
  ], ArrayFormFieldComponent);
16438
16609
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ArrayFormFieldComponent, [{
16439
16610
  type: Component,
16440
- 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" }]
16441
- }], function () { return [{ type: i0.Injector }]; }, { subFieldIsolator: [{
16611
+ 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" }]
16612
+ }], function () { return [{ type: i0.Injector }, { type: ArrayFormFieldAccessibilityManagerService }]; }, { subFieldIsolator: [{
16442
16613
  type: ContentChild,
16443
16614
  args: [FormFieldIsolatorComponent, { static: true }]
16444
16615
  }], askForNewItem: [{
@@ -18213,7 +18384,7 @@ function fromMonacoEvent(emitter) {
18213
18384
  }
18214
18385
 
18215
18386
  const _c0$1f = ["editor"];
18216
- const _c1$H = ["type", "code"];
18387
+ const _c1$J = ["type", "code"];
18217
18388
  function CodeFormFieldComponent_sme_validation_alert_3_Template(rf, ctx) { if (rf & 1) {
18218
18389
  i0.ɵɵelement(0, "sme-validation-alert", 4);
18219
18390
  } if (rf & 2) {
@@ -18511,7 +18682,7 @@ let CodeFormFieldComponent = class CodeFormFieldComponent extends SmeInternalFor
18511
18682
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.editorHost = _t.first);
18512
18683
  } }, hostBindings: function CodeFormFieldComponent_HostBindings(rf, ctx) { if (rf & 1) {
18513
18684
  i0.ɵɵlistener("keydown", function CodeFormFieldComponent_keydown_HostBindingHandler($event) { return ctx.onKeyDown($event); });
18514
- } }, 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) { if (rf & 1) {
18685
+ } }, 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) { if (rf & 1) {
18515
18686
  i0.ɵɵelementStart(0, "sme-form-field-layout", 0);
18516
18687
  i0.ɵɵelement(1, "div", 1, 2);
18517
18688
  i0.ɵɵtemplate(3, CodeFormFieldComponent_sme_validation_alert_3_Template, 1, 1, "sme-validation-alert", 3);
@@ -18861,7 +19032,7 @@ function ComboboxFormFieldLoaderComponent_ng_container_3_Template(rf, ctx) { if
18861
19032
  i0.ɵɵproperty("ngForOf", ctx_r2.resolveComponentMember(ctx_r2.propertySchema.options.itemsBinding));
18862
19033
  } }
18863
19034
  const _c0$1d = ["singleSelectTemplate"];
18864
- const _c1$G = ["multiSelectTemplate"];
19035
+ const _c1$I = ["multiSelectTemplate"];
18865
19036
  const _c2$f = ["listbox"];
18866
19037
  const _c3$a = ["dropDown"];
18867
19038
  const _c4$8 = ["type", "combobox"];
@@ -19272,7 +19443,7 @@ let ComboboxFormFieldComponent = class ComboboxFormFieldComponent extends SmeInt
19272
19443
  /** @nocollapse */ ComboboxFormFieldComponent.ɵfac = function ComboboxFormFieldComponent_Factory(t) { return new (t || ComboboxFormFieldComponent)(i0.ɵɵdirectiveInject(i0.Injector)); };
19273
19444
  /** @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) { if (rf & 1) {
19274
19445
  i0.ɵɵviewQuery(_c0$1d, 7);
19275
- i0.ɵɵviewQuery(_c1$G, 7);
19446
+ i0.ɵɵviewQuery(_c1$I, 7);
19276
19447
  i0.ɵɵviewQuery(_c2$f, 5);
19277
19448
  i0.ɵɵviewQuery(_c3$a, 5);
19278
19449
  } if (rf & 2) {
@@ -19445,7 +19616,7 @@ class SelectFormFieldDirective {
19445
19616
  }], null, null); })();
19446
19617
 
19447
19618
  const _c0$1c = ["dropDown"];
19448
- const _c1$F = ["calendar"];
19619
+ const _c1$H = ["calendar"];
19449
19620
  const _c2$e = ["type", "date"];
19450
19621
  /**
19451
19622
  * Date Form Field Component
@@ -19566,7 +19737,7 @@ class DateFormFieldComponent extends DateLikeFormFieldComponent {
19566
19737
  /** @nocollapse */ DateFormFieldComponent.ɵfac = function DateFormFieldComponent_Factory(t) { return new (t || DateFormFieldComponent)(i0.ɵɵdirectiveInject(i0.Injector)); };
19567
19738
  /** @nocollapse */ DateFormFieldComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DateFormFieldComponent, selectors: [["sme-form-field", "type", "date"]], viewQuery: function DateFormFieldComponent_Query(rf, ctx) { if (rf & 1) {
19568
19739
  i0.ɵɵviewQuery(_c0$1c, 5);
19569
- i0.ɵɵviewQuery(_c1$F, 5);
19740
+ i0.ɵɵviewQuery(_c1$H, 5);
19570
19741
  } if (rf & 2) {
19571
19742
  let _t;
19572
19743
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.dropDown = _t.first);
@@ -19619,7 +19790,7 @@ class DateFormFieldComponent extends DateLikeFormFieldComponent {
19619
19790
  }] }); })();
19620
19791
 
19621
19792
  const _c0$1b = ["dropDown"];
19622
- const _c1$E = ["calendar"];
19793
+ const _c1$G = ["calendar"];
19623
19794
  const _c2$d = ["clock"];
19624
19795
  const _c3$9 = ["type", "datetime"];
19625
19796
  /**
@@ -19770,7 +19941,7 @@ class DateTimeFormFieldComponent extends DateLikeFormFieldComponent {
19770
19941
  /** @nocollapse */ DateTimeFormFieldComponent.ɵfac = function DateTimeFormFieldComponent_Factory(t) { return new (t || DateTimeFormFieldComponent)(i0.ɵɵdirectiveInject(i0.Injector)); };
19771
19942
  /** @nocollapse */ DateTimeFormFieldComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DateTimeFormFieldComponent, selectors: [["sme-form-field", "type", "datetime"]], viewQuery: function DateTimeFormFieldComponent_Query(rf, ctx) { if (rf & 1) {
19772
19943
  i0.ɵɵviewQuery(_c0$1b, 5);
19773
- i0.ɵɵviewQuery(_c1$E, 5);
19944
+ i0.ɵɵviewQuery(_c1$G, 5);
19774
19945
  i0.ɵɵviewQuery(_c2$d, 5);
19775
19946
  } if (rf & 2) {
19776
19947
  let _t;
@@ -19886,7 +20057,7 @@ class DateTimeRangeOptionComponent {
19886
20057
  }] }); })();
19887
20058
 
19888
20059
  const _c0$1a = ["listbox"];
19889
- const _c1$D = ["dropDown"];
20060
+ const _c1$F = ["dropDown"];
19890
20061
  const _c2$c = ["startFormField"];
19891
20062
  const _c3$8 = ["endFormField"];
19892
20063
  const _c4$7 = ["type", "datetimerange"];
@@ -20317,7 +20488,7 @@ DateTimeRangeFormFieldComponent.endProperty = 'end';
20317
20488
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.options = _t);
20318
20489
  } }, viewQuery: function DateTimeRangeFormFieldComponent_Query(rf, ctx) { if (rf & 1) {
20319
20490
  i0.ɵɵviewQuery(_c0$1a, 5);
20320
- i0.ɵɵviewQuery(_c1$D, 5);
20491
+ i0.ɵɵviewQuery(_c1$F, 5);
20321
20492
  i0.ɵɵviewQuery(_c2$c, 5);
20322
20493
  i0.ɵɵviewQuery(_c3$8, 5);
20323
20494
  } if (rf & 2) {
@@ -20480,7 +20651,7 @@ class WebkitFileSystem {
20480
20651
  WebkitFileSystem.isDirectoryPropertyName = '__SME_isDirectory__';
20481
20652
 
20482
20653
  const _c0$19 = ["file"];
20483
- const _c1$C = ["type", "file"];
20654
+ const _c1$E = ["type", "file"];
20484
20655
  function FileFormFieldComponent_ng_container_16_div_1_Template(rf, ctx) { if (rf & 1) {
20485
20656
  const _r6 = i0.ɵɵgetCurrentView();
20486
20657
  i0.ɵɵelementStart(0, "div", 12);
@@ -20775,7 +20946,7 @@ let FileFormFieldComponent = class FileFormFieldComponent extends SmeInternalFor
20775
20946
  } if (rf & 2) {
20776
20947
  let _t;
20777
20948
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.fileInput = _t.first);
20778
- } }, 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) { if (rf & 1) {
20949
+ } }, 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) { if (rf & 1) {
20779
20950
  const _r7 = i0.ɵɵgetCurrentView();
20780
20951
  i0.ɵɵelementStart(0, "sme-form-field-layout", 0)(1, "fieldset", 1)(2, "sme-drop-zone", 2);
20781
20952
  i0.ɵɵlistener("smeDrop", function FileFormFieldComponent_Template_sme_drop_zone_smeDrop_2_listener($event) { return ctx.onDrop($event); });
@@ -20979,35 +21150,70 @@ JsonFormFieldComponent = __decorate([
20979
21150
  args: [{ selector: 'sme-form-field[type="json"]', template: "<sme-form-field-layout [formField]=\"this\">\r\n <div class=\"sme-json sme-form-field-editor\">\r\n <textarea [(ngModel)]=\"jsonText\" rows=\"10\">\r\n </textarea>\r\n </div>\r\n <span class=\"sme-screen-reader\" [id]=\"idBag.detailsSpan\">{{details}}</span>\r\n <sme-validation-alert [alert]=\"alert\"></sme-validation-alert>\r\n</sme-form-field-layout>\r\n" }]
20980
21151
  }], function () { return [{ type: i0.Injector }]; }, null); })();
20981
21152
 
20982
- const _c0$17 = ["type", "list"];
21153
+ class ListFormFieldAccessibilityManagerService {
21154
+ constructor(formFieldAccessibilityManagerBaseService) {
21155
+ this.formFieldAccessibilityManagerBaseService = formFieldAccessibilityManagerBaseService;
21156
+ }
21157
+ /**
21158
+ * It handles the focus when deleting an item from the list.
21159
+ * @param value the value for the list.
21160
+ * @param addButton the element reference for the add button.
21161
+ * @param hostElement the element reference for the host element.
21162
+ * @returns void
21163
+ */
21164
+ delete(value, addButton, hostElement) {
21165
+ this.formFieldAccessibilityManagerBaseService.listFormFieldFocusHandlerOnKeyboardAction(value, addButton, hostElement);
21166
+ }
21167
+ /**
21168
+ * It handles the focus when adding an item to the list.
21169
+ * @param value the value for the list.
21170
+ * @param addButton the element reference for the add button.
21171
+ * @param hostElement the element reference for the host element.
21172
+ * @returns void
21173
+ */
21174
+ add(value, addButton, hostElement) {
21175
+ this.formFieldAccessibilityManagerBaseService.listFormFieldFocusHandlerOnKeyboardAction(value, addButton, hostElement, false);
21176
+ }
21177
+ }
21178
+ /** @nocollapse */ ListFormFieldAccessibilityManagerService.ɵfac = function ListFormFieldAccessibilityManagerService_Factory(t) { return new (t || ListFormFieldAccessibilityManagerService)(i0.ɵɵinject(FormFieldAccessibilityManagerBaseService)); };
21179
+ /** @nocollapse */ ListFormFieldAccessibilityManagerService.ɵprov = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjectable({ token: ListFormFieldAccessibilityManagerService, factory: ListFormFieldAccessibilityManagerService.ɵfac, providedIn: 'root' });
21180
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ListFormFieldAccessibilityManagerService, [{
21181
+ type: Injectable,
21182
+ args: [{
21183
+ providedIn: 'root'
21184
+ }]
21185
+ }], function () { return [{ type: FormFieldAccessibilityManagerBaseService }]; }, null); })();
21186
+
21187
+ const _c0$17 = ["addButton"];
21188
+ const _c1$D = ["type", "list"];
20983
21189
  function ListFormFieldComponent_div_1_div_1_Template(rf, ctx) { if (rf & 1) {
20984
- const _r5 = i0.ɵɵgetCurrentView();
20985
- i0.ɵɵelementStart(0, "div", 7)(1, "input", 8);
20986
- 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()); });
21190
+ const _r6 = i0.ɵɵgetCurrentView();
21191
+ i0.ɵɵelementStart(0, "div", 8)(1, "input", 9);
21192
+ 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()); });
20987
21193
  i0.ɵɵelementEnd();
20988
- i0.ɵɵelementStart(2, "button", 9);
20989
- 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)); });
20990
- i0.ɵɵelement(3, "span", 10);
21194
+ i0.ɵɵelementStart(2, "button", 10);
21195
+ 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)); });
21196
+ i0.ɵɵelement(3, "span", 11);
20991
21197
  i0.ɵɵelementEnd()();
20992
21198
  } if (rf & 2) {
20993
- const i_r3 = ctx.index;
21199
+ const i_r4 = ctx.index;
20994
21200
  const ctx_r1 = i0.ɵɵnextContext(2);
20995
21201
  i0.ɵɵadvance(1);
20996
- i0.ɵɵproperty("ngModel", ctx_r1.value[i_r3]);
20997
- i0.ɵɵattribute("aria-label", ctx_r1.strings.MsftSmeShell.Angular.Form.List.itemAriaLabel.format(ctx_r1.label, i_r3 + 1, ctx_r1.value.length));
21202
+ i0.ɵɵproperty("ngModel", ctx_r1.value[i_r4]);
21203
+ i0.ɵɵattribute("aria-label", ctx_r1.strings.MsftSmeShell.Angular.Form.List.itemAriaLabel.format(ctx_r1.label, i_r4 + 1, ctx_r1.value.length));
20998
21204
  i0.ɵɵadvance(1);
20999
21205
  i0.ɵɵproperty("title", ctx_r1.strings.MsftSmeShell.Angular.Form.List.removeButtonTooltip);
21000
21206
  i0.ɵɵattribute("aria-label", ctx_r1.strings.MsftSmeShell.Angular.Form.List.removeButtonAriaLabel);
21001
21207
  } }
21002
21208
  function ListFormFieldComponent_div_1_Template(rf, ctx) { if (rf & 1) {
21003
- const _r9 = i0.ɵɵgetCurrentView();
21209
+ const _r10 = i0.ɵɵgetCurrentView();
21004
21210
  i0.ɵɵelementStart(0, "div", 3);
21005
21211
  i0.ɵɵtemplate(1, ListFormFieldComponent_div_1_div_1_Template, 4, 4, "div", 4);
21006
- i0.ɵɵelementStart(2, "button", 5);
21007
- 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()); });
21008
- i0.ɵɵelement(3, "span", 6);
21009
- i0.ɵɵelementStart(4, "span");
21010
- i0.ɵɵtext(5);
21212
+ i0.ɵɵelementStart(2, "button", 5, 6);
21213
+ 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()); });
21214
+ i0.ɵɵelement(4, "span", 7);
21215
+ i0.ɵɵelementStart(5, "span");
21216
+ i0.ɵɵtext(6);
21011
21217
  i0.ɵɵelementEnd()()();
21012
21218
  } if (rf & 2) {
21013
21219
  const ctx_r0 = i0.ɵɵnextContext();
@@ -21015,8 +21221,8 @@ function ListFormFieldComponent_div_1_Template(rf, ctx) { if (rf & 1) {
21015
21221
  i0.ɵɵproperty("ngForOf", ctx_r0.value)("ngForTrackBy", ctx_r0.trackByIndex);
21016
21222
  i0.ɵɵadvance(1);
21017
21223
  i0.ɵɵproperty("title", ctx_r0.strings.MsftSmeShell.Angular.Form.List.addButtonTooltip);
21018
- i0.ɵɵattribute("aria-label", ctx_r0.strings.MsftSmeShell.Angular.Form.List.addButtonAriaLabel);
21019
- i0.ɵɵadvance(3);
21224
+ i0.ɵɵattribute("aria-label", ctx_r0.addButtonAriaLabel);
21225
+ i0.ɵɵadvance(4);
21020
21226
  i0.ɵɵtextInterpolate(ctx_r0.strings.MsftSmeShell.Angular.Form.List.addButtonAriaLabel);
21021
21227
  } }
21022
21228
  /**
@@ -21026,8 +21232,9 @@ class ListFormFieldComponent extends SmeInternalFormFieldComponent {
21026
21232
  /**
21027
21233
  * Initializes a new instance of the ListFormFieldComponent
21028
21234
  */
21029
- constructor(injector) {
21235
+ constructor(injector, listFormFieldAccessibilityManagerService) {
21030
21236
  super(injector);
21237
+ this.listFormFieldAccessibilityManagerService = listFormFieldAccessibilityManagerService;
21031
21238
  }
21032
21239
  /**
21033
21240
  * The source name to use for logging
@@ -21041,6 +21248,15 @@ class ListFormFieldComponent extends SmeInternalFormFieldComponent {
21041
21248
  get ariaLabel() {
21042
21249
  return this.getMergedDescriptionLabel();
21043
21250
  }
21251
+ /**
21252
+ * It gets the aria label for the add button that can respect when the field is required.
21253
+ */
21254
+ get addButtonAriaLabel() {
21255
+ if (this.required) {
21256
+ return this.strings.MsftSmeShell.Angular.Calendar.AriaLabel.Required.format(this.strings.MsftSmeShell.Angular.Form.List.addButtonAriaLabel);
21257
+ }
21258
+ return this.strings.MsftSmeShell.Angular.Form.List.addButtonAriaLabel;
21259
+ }
21044
21260
  /**
21045
21261
  * The method called after the component is initialized.
21046
21262
  */
@@ -21053,6 +21269,7 @@ class ListFormFieldComponent extends SmeInternalFormFieldComponent {
21053
21269
  */
21054
21270
  addListItem(value = '') {
21055
21271
  this.value = [...this.value, value];
21272
+ this.listFormFieldAccessibilityManagerService.add(this.value, this.addButton, this.hostElement);
21056
21273
  }
21057
21274
  /**
21058
21275
  * Removes an item at the given index
@@ -21061,10 +21278,7 @@ class ListFormFieldComponent extends SmeInternalFormFieldComponent {
21061
21278
  const value = [...this.value];
21062
21279
  value.splice(index, 1);
21063
21280
  this.value = value;
21064
- const firstFocusable = Dom.getFirstFocusableDescendent(this.hostElement.nativeElement);
21065
- if (firstFocusable) {
21066
- firstFocusable.focus();
21067
- }
21281
+ this.listFormFieldAccessibilityManagerService.delete(this.value, this.addButton, this.hostElement);
21068
21282
  }
21069
21283
  /**
21070
21284
  * The method called when a <select> element's value changes.
@@ -21105,12 +21319,17 @@ class ListFormFieldComponent extends SmeInternalFormFieldComponent {
21105
21319
  return super.validate(c);
21106
21320
  }
21107
21321
  }
21108
- /** @nocollapse */ ListFormFieldComponent.ɵfac = function ListFormFieldComponent_Factory(t) { return new (t || ListFormFieldComponent)(i0.ɵɵdirectiveInject(i0.Injector)); };
21109
- /** @nocollapse */ ListFormFieldComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: ListFormFieldComponent, selectors: [["sme-form-field", "type", "list"]], hostVars: 1, hostBindings: function ListFormFieldComponent_HostBindings(rf, ctx) { if (rf & 2) {
21322
+ /** @nocollapse */ ListFormFieldComponent.ɵfac = function ListFormFieldComponent_Factory(t) { return new (t || ListFormFieldComponent)(i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵdirectiveInject(ListFormFieldAccessibilityManagerService)); };
21323
+ /** @nocollapse */ ListFormFieldComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: ListFormFieldComponent, selectors: [["sme-form-field", "type", "list"]], viewQuery: function ListFormFieldComponent_Query(rf, ctx) { if (rf & 1) {
21324
+ i0.ɵɵviewQuery(_c0$17, 5);
21325
+ } if (rf & 2) {
21326
+ let _t;
21327
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.addButton = _t.first);
21328
+ } }, hostVars: 1, hostBindings: function ListFormFieldComponent_HostBindings(rf, ctx) { if (rf & 2) {
21110
21329
  i0.ɵɵattribute("aria-label", ctx.ariaLabel);
21111
- } }, 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) { if (rf & 1) {
21330
+ } }, 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) { if (rf & 1) {
21112
21331
  i0.ɵɵelementStart(0, "sme-form-field-layout", 0);
21113
- i0.ɵɵtemplate(1, ListFormFieldComponent_div_1_Template, 6, 5, "div", 1);
21332
+ i0.ɵɵtemplate(1, ListFormFieldComponent_div_1_Template, 7, 5, "div", 1);
21114
21333
  i0.ɵɵelement(2, "sme-validation-alert", 2);
21115
21334
  i0.ɵɵelementEnd();
21116
21335
  } if (rf & 2) {
@@ -21122,14 +21341,17 @@ class ListFormFieldComponent extends SmeInternalFormFieldComponent {
21122
21341
  } }, dependencies: [i1$1.NgForOf, i1$1.NgIf, i1$2.DefaultValueAccessor, i1$2.NgControlStatus, i1$2.NgModel, TooltipDirective, ValidationAlertComponent, FormFieldLayoutComponent], encapsulation: 2 });
21123
21342
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ListFormFieldComponent, [{
21124
21343
  type: Component,
21125
- 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>" }]
21126
- }], function () { return [{ type: i0.Injector }]; }, { ariaLabel: [{
21344
+ 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>" }]
21345
+ }], function () { return [{ type: i0.Injector }, { type: ListFormFieldAccessibilityManagerService }]; }, { addButton: [{
21346
+ type: ViewChild,
21347
+ args: ['addButton']
21348
+ }], ariaLabel: [{
21127
21349
  type: HostBinding,
21128
21350
  args: ['attr.aria-label']
21129
21351
  }] }); })();
21130
21352
 
21131
21353
  const _c0$16 = ["input"];
21132
- const _c1$B = ["container"];
21354
+ const _c1$C = ["container"];
21133
21355
  const _c2$b = ["incrementButton"];
21134
21356
  const _c3$7 = ["decrementButton"];
21135
21357
  const _c4$6 = ["type", "number"];
@@ -21403,7 +21625,7 @@ let NumberFormFieldComponent = class NumberFormFieldComponent extends SmeInterna
21403
21625
  /** @nocollapse */ NumberFormFieldComponent.ɵfac = function NumberFormFieldComponent_Factory(t) { return new (t || NumberFormFieldComponent)(i0.ɵɵdirectiveInject(i0.Injector)); };
21404
21626
  /** @nocollapse */ NumberFormFieldComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: NumberFormFieldComponent, selectors: [["sme-form-field", "type", "number"]], viewQuery: function NumberFormFieldComponent_Query(rf, ctx) { if (rf & 1) {
21405
21627
  i0.ɵɵviewQuery(_c0$16, 5);
21406
- i0.ɵɵviewQuery(_c1$B, 5);
21628
+ i0.ɵɵviewQuery(_c1$C, 5);
21407
21629
  i0.ɵɵviewQuery(_c2$b, 5);
21408
21630
  i0.ɵɵviewQuery(_c3$7, 5);
21409
21631
  } if (rf & 2) {
@@ -21500,6 +21722,56 @@ NumberFormFieldComponent = __decorate([
21500
21722
  type: Input
21501
21723
  }] }); })();
21502
21724
 
21725
+ class OrderedListFormFieldAccessibilityManagerService {
21726
+ constructor(formFieldAccessibilityManagerBaseService) {
21727
+ this.formFieldAccessibilityManagerBaseService = formFieldAccessibilityManagerBaseService;
21728
+ }
21729
+ /**
21730
+ * It handles the focus when deleting an item from the list.
21731
+ * @param value the value for the list.
21732
+ * @param addButton the element reference for the add button.
21733
+ * @param hostElement the element reference for the host element.
21734
+ * @returns void
21735
+ */
21736
+ delete(value, addButton, hostElement) {
21737
+ this.formFieldAccessibilityManagerBaseService.listFormFieldFocusHandlerOnKeyboardAction(value, addButton, hostElement);
21738
+ }
21739
+ /**
21740
+ * It handles the focus when adding an item to the list.
21741
+ * @param value the value for the list.
21742
+ * @param addButton the element reference for the add button.
21743
+ * @param hostElement the element reference for the host element.
21744
+ * @returns void
21745
+ */
21746
+ add(value, addButton, hostElement) {
21747
+ this.formFieldAccessibilityManagerBaseService.listFormFieldFocusHandlerOnKeyboardAction(value, addButton, hostElement, false);
21748
+ }
21749
+ /**
21750
+ * It handles the focus when promoting an item in the list.
21751
+ * @param hostElement The element reference for the host element.
21752
+ * @param index the current index.
21753
+ */
21754
+ promote(value, hostElement, buttonId) {
21755
+ this.formFieldAccessibilityManagerBaseService.deferredFocusOnTargetBySelector(value, hostElement, buttonId);
21756
+ }
21757
+ /**
21758
+ * It handles the focus when demoting an item in the list.
21759
+ * @param hostElement The element reference for the host element.
21760
+ * @param index the current index.
21761
+ */
21762
+ demote(value, hostElement, buttonId) {
21763
+ this.formFieldAccessibilityManagerBaseService.deferredFocusOnTargetBySelector(value, hostElement, buttonId);
21764
+ }
21765
+ }
21766
+ /** @nocollapse */ OrderedListFormFieldAccessibilityManagerService.ɵfac = function OrderedListFormFieldAccessibilityManagerService_Factory(t) { return new (t || OrderedListFormFieldAccessibilityManagerService)(i0.ɵɵinject(FormFieldAccessibilityManagerBaseService)); };
21767
+ /** @nocollapse */ OrderedListFormFieldAccessibilityManagerService.ɵprov = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjectable({ token: OrderedListFormFieldAccessibilityManagerService, factory: OrderedListFormFieldAccessibilityManagerService.ɵfac, providedIn: 'root' });
21768
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(OrderedListFormFieldAccessibilityManagerService, [{
21769
+ type: Injectable,
21770
+ args: [{
21771
+ providedIn: 'root'
21772
+ }]
21773
+ }], function () { return [{ type: FormFieldAccessibilityManagerBaseService }]; }, null); })();
21774
+
21503
21775
  function OrderedListFormFieldLoaderComponent_sme_option_2_Template(rf, ctx) { if (rf & 1) {
21504
21776
  i0.ɵɵelement(0, "sme-option", 4);
21505
21777
  } if (rf & 2) {
@@ -21523,7 +21795,8 @@ function OrderedListFormFieldLoaderComponent_ng_container_3_Template(rf, ctx) {
21523
21795
  i0.ɵɵadvance(1);
21524
21796
  i0.ɵɵproperty("ngForOf", ctx_r2.resolveComponentMember(ctx_r2.propertySchema.options.itemsBinding));
21525
21797
  } }
21526
- const _c0$15 = ["type", "orderedlist"];
21798
+ const _c0$15 = ["addButton"];
21799
+ const _c1$B = ["type", "orderedlist"];
21527
21800
  function OrderedListFormFieldComponent_div_1_div_1_p_3_Template(rf, ctx) { if (rf & 1) {
21528
21801
  i0.ɵɵelementStart(0, "p", 14);
21529
21802
  i0.ɵɵtext(1);
@@ -21531,9 +21804,9 @@ function OrderedListFormFieldComponent_div_1_div_1_p_3_Template(rf, ctx) { if (r
21531
21804
  } if (rf & 2) {
21532
21805
  const i_r4 = i0.ɵɵnextContext().index;
21533
21806
  const ctx_r5 = i0.ɵɵnextContext(2);
21534
- i0.ɵɵattribute("aria-describedby", ctx_r5.idBag.detailsSpan + i_r4);
21807
+ i0.ɵɵattribute("aria-label", ctx_r5.idBag.detailsSpan + i_r4);
21535
21808
  i0.ɵɵadvance(1);
21536
- i0.ɵɵtextInterpolate(ctx_r5.arrayGetValueDisplayString(ctx_r5.value[i_r4]));
21809
+ i0.ɵɵtextInterpolate1(" ", ctx_r5.arrayGetValueDisplayString(ctx_r5.value[i_r4]), "");
21537
21810
  } }
21538
21811
  function OrderedListFormFieldComponent_div_1_div_1_sme_form_field_5_ng_container_1_sme_option_1_Template(rf, ctx) { if (rf & 1) {
21539
21812
  i0.ɵɵelement(0, "sme-option", 18);
@@ -21555,22 +21828,22 @@ function OrderedListFormFieldComponent_div_1_div_1_sme_form_field_5_ng_container
21555
21828
  function OrderedListFormFieldComponent_div_1_div_1_sme_form_field_5_Template(rf, ctx) { if (rf & 1) {
21556
21829
  const _r17 = i0.ɵɵgetCurrentView();
21557
21830
  i0.ɵɵelementStart(0, "sme-form-field", 15);
21558
- 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()); });
21831
+ 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()); });
21559
21832
  i0.ɵɵtemplate(1, OrderedListFormFieldComponent_div_1_div_1_sme_form_field_5_ng_container_1_Template, 2, 1, "ng-container", 16);
21560
21833
  i0.ɵɵelementEnd();
21561
21834
  } if (rf & 2) {
21562
- const ctx_r21 = i0.ɵɵnextContext();
21563
- const item_r3 = ctx_r21.$implicit;
21564
- const i_r4 = ctx_r21.index;
21835
+ const ctx_r20 = i0.ɵɵnextContext();
21836
+ const item_r3 = ctx_r20.$implicit;
21837
+ const i_r4 = ctx_r20.index;
21565
21838
  const ctx_r6 = i0.ɵɵnextContext(2);
21566
21839
  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);
21567
21840
  i0.ɵɵadvance(1);
21568
21841
  i0.ɵɵproperty("ngForOf", ctx_r6.options);
21569
21842
  } }
21570
21843
  function OrderedListFormFieldComponent_div_1_div_1_button_6_Template(rf, ctx) { if (rf & 1) {
21571
- const _r24 = i0.ɵɵgetCurrentView();
21844
+ const _r23 = i0.ɵɵgetCurrentView();
21572
21845
  i0.ɵɵelementStart(0, "button", 19);
21573
- 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)); });
21846
+ 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)); });
21574
21847
  i0.ɵɵelement(1, "span", 20);
21575
21848
  i0.ɵɵelementEnd();
21576
21849
  } if (rf & 2) {
@@ -21580,9 +21853,9 @@ function OrderedListFormFieldComponent_div_1_div_1_button_6_Template(rf, ctx) {
21580
21853
  i0.ɵɵattribute("aria-label", ctx_r7.strings.MsftSmeShell.Angular.Form.OrderedList.promoteButtonAriaLabel);
21581
21854
  } }
21582
21855
  function OrderedListFormFieldComponent_div_1_div_1_button_7_Template(rf, ctx) { if (rf & 1) {
21583
- const _r28 = i0.ɵɵgetCurrentView();
21856
+ const _r27 = i0.ɵɵgetCurrentView();
21584
21857
  i0.ɵɵelementStart(0, "button", 21);
21585
- 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)); });
21858
+ 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)); });
21586
21859
  i0.ɵɵelement(1, "span", 22);
21587
21860
  i0.ɵɵelementEnd();
21588
21861
  } if (rf & 2) {
@@ -21592,9 +21865,9 @@ function OrderedListFormFieldComponent_div_1_div_1_button_7_Template(rf, ctx) {
21592
21865
  i0.ɵɵattribute("aria-label", ctx_r8.strings.MsftSmeShell.Angular.Form.OrderedList.demoteButtonAriaLabel);
21593
21866
  } }
21594
21867
  function OrderedListFormFieldComponent_div_1_div_1_button_8_Template(rf, ctx) { if (rf & 1) {
21595
- const _r32 = i0.ɵɵgetCurrentView();
21868
+ const _r31 = i0.ɵɵgetCurrentView();
21596
21869
  i0.ɵɵelementStart(0, "button", 23);
21597
- 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)); });
21870
+ 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)); });
21598
21871
  i0.ɵɵelement(1, "span", 24);
21599
21872
  i0.ɵɵelementEnd();
21600
21873
  } if (rf & 2) {
@@ -21638,21 +21911,21 @@ function OrderedListFormFieldComponent_div_1_div_1_Template(rf, ctx) { if (rf &
21638
21911
  } }
21639
21912
  function OrderedListFormFieldComponent_div_1_button_2_Template(rf, ctx) { if (rf & 1) {
21640
21913
  const _r34 = i0.ɵɵgetCurrentView();
21641
- i0.ɵɵelementStart(0, "button", 25);
21914
+ i0.ɵɵelementStart(0, "button", 25, 26);
21642
21915
  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()); });
21643
- i0.ɵɵtext(1);
21916
+ i0.ɵɵtext(2);
21644
21917
  i0.ɵɵelementEnd();
21645
21918
  } if (rf & 2) {
21646
21919
  const ctx_r2 = i0.ɵɵnextContext(2);
21647
21920
  i0.ɵɵproperty("smeDisabled", ctx_r2.loadingOrDisabled || ctx_r2.value.length === ctx_r2.options.length)("title", ctx_r2.strings.MsftSmeShell.Angular.Form.OrderedList.addButtonTooltip);
21648
- i0.ɵɵattribute("aria-label", ctx_r2.strings.MsftSmeShell.Angular.Form.OrderedList.addButtonAriaLabel);
21649
- i0.ɵɵadvance(1);
21921
+ i0.ɵɵattribute("aria-label", ctx_r2.addRemoveButtonArialLabel);
21922
+ i0.ɵɵadvance(2);
21650
21923
  i0.ɵɵtextInterpolate1(" ", ctx_r2.addButtonText, " ");
21651
21924
  } }
21652
21925
  function OrderedListFormFieldComponent_div_1_Template(rf, ctx) { if (rf & 1) {
21653
21926
  i0.ɵɵelementStart(0, "div", 3);
21654
21927
  i0.ɵɵtemplate(1, OrderedListFormFieldComponent_div_1_div_1_Template, 9, 10, "div", 4);
21655
- i0.ɵɵtemplate(2, OrderedListFormFieldComponent_div_1_button_2_Template, 2, 4, "button", 5);
21928
+ i0.ɵɵtemplate(2, OrderedListFormFieldComponent_div_1_button_2_Template, 3, 4, "button", 5);
21656
21929
  i0.ɵɵelementEnd();
21657
21930
  } if (rf & 2) {
21658
21931
  const ctx_r0 = i0.ɵɵnextContext();
@@ -21725,8 +21998,9 @@ let OrderedListFormFieldComponent = class OrderedListFormFieldComponent extends
21725
21998
  /**
21726
21999
  * Initializes a new instance of the OrderedListFormFieldComponent
21727
22000
  */
21728
- constructor(injector) {
22001
+ constructor(injector, orderedListFormFieldAccessibilityManagerService) {
21729
22002
  super(injector);
22003
+ this.orderedListFormFieldAccessibilityManagerService = orderedListFormFieldAccessibilityManagerService;
21730
22004
  /**
21731
22005
  * Single selection is not supported by ordered list
21732
22006
  */
@@ -21743,10 +22017,6 @@ let OrderedListFormFieldComponent = class OrderedListFormFieldComponent extends
21743
22017
  * Indicates allow empty selection
21744
22018
  */
21745
22019
  this.allowEmpty = true;
21746
- /**
21747
- * Tracks when new item is added to place focus on.
21748
- */
21749
- this.newItemAdded = false;
21750
22020
  this.instructions = this.strings.MsftSmeShell.Angular.Form.OrderedList.instructions;
21751
22021
  this.showAddRemove = true;
21752
22022
  this.showMove = true;
@@ -21770,6 +22040,17 @@ let OrderedListFormFieldComponent = class OrderedListFormFieldComponent extends
21770
22040
  get ariaLabel() {
21771
22041
  return this.getMergedDescriptionLabel();
21772
22042
  }
22043
+ /**
22044
+ * The aria label for the add/remove button when aria label is passed in.
22045
+ * The aria label needs to be in sync with the add button text so that narrator can read the correct content.
22046
+ * It should also respect the required state.
22047
+ */
22048
+ get addRemoveButtonArialLabel() {
22049
+ if (this.addButtonText) {
22050
+ return this.required ? this.strings.MsftSmeShell.Angular.Calendar.AriaLabel.Required.format(this.addButtonText) : this.addButtonText;
22051
+ }
22052
+ 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;
22053
+ }
21773
22054
  /**
21774
22055
  * The method called after the component is initialized.
21775
22056
  */
@@ -21807,7 +22088,7 @@ let OrderedListFormFieldComponent = class OrderedListFormFieldComponent extends
21807
22088
  return false;
21808
22089
  }
21809
22090
  this.value = [...this.value, value];
21810
- this.newItemAdded = true;
22091
+ this.orderedListFormFieldAccessibilityManagerService.add(this.value, this.addButton, this.hostElement);
21811
22092
  return true;
21812
22093
  }
21813
22094
  /**
@@ -21815,26 +22096,22 @@ let OrderedListFormFieldComponent = class OrderedListFormFieldComponent extends
21815
22096
  * @param index The index of the item being demoted.
21816
22097
  */
21817
22098
  demoteItemAt(index) {
21818
- if (index !== this.value.length - 1) {
21819
- this.moveItem(index, index + 1);
21820
- const focusable = document.getElementById(`${this.idBag.demote}${index + 1}`);
21821
- if (focusable) {
21822
- focusable.focus();
21823
- }
22099
+ if (index === this.value.length - 1) {
22100
+ return;
21824
22101
  }
22102
+ this.moveItem(index, index + 1);
22103
+ this.orderedListFormFieldAccessibilityManagerService.demote(this.value, this.hostElement, `#${this.idBag.demote}${index + 1}`);
21825
22104
  }
21826
22105
  /**
21827
22106
  * Promotes an item at the given index by 1
21828
22107
  * @param index The index of the item being promoted.
21829
22108
  */
21830
22109
  promoteItemAt(index) {
21831
- if (index !== 0) {
21832
- this.moveItem(index, index - 1);
21833
- const focusable = document.getElementById(`${this.idBag.promote}${index - 1}`);
21834
- if (focusable) {
21835
- focusable.focus();
21836
- }
22110
+ if (index === 0) {
22111
+ return;
21837
22112
  }
22113
+ this.moveItem(index, index - 1);
22114
+ this.orderedListFormFieldAccessibilityManagerService.promote(this.value, this.hostElement, `#${this.idBag.promote}${index - 1}`);
21838
22115
  }
21839
22116
  /**
21840
22117
  * Returns the index to track items in the array.
@@ -21846,10 +22123,7 @@ let OrderedListFormFieldComponent = class OrderedListFormFieldComponent extends
21846
22123
  removeItemAt(index) {
21847
22124
  this.value.splice(index, 1);
21848
22125
  this.triggerValueChange();
21849
- const firstFocusable = Dom.getFirstFocusableDescendent(this.hostElement.nativeElement);
21850
- if (firstFocusable) {
21851
- firstFocusable.focus();
21852
- }
22126
+ this.orderedListFormFieldAccessibilityManagerService.delete(this.value, this.addButton, this.hostElement);
21853
22127
  }
21854
22128
  /**
21855
22129
  * Moves an element of an array from a starting index to a destination index.
@@ -21872,18 +22146,6 @@ let OrderedListFormFieldComponent = class OrderedListFormFieldComponent extends
21872
22146
  }
21873
22147
  this.value = value;
21874
22148
  }
21875
- /**
21876
- * Places focus on new item when it is added.
21877
- */
21878
- newItemCheck() {
21879
- if (this.newItemAdded) {
21880
- const focusable = Dom.findChildElementDFS(this.hostElement.nativeElement, (element) => element.tagName.toUpperCase() === 'INPUT', ElementPosition.Last);
21881
- if (focusable) {
21882
- focusable.focus();
21883
- }
21884
- this.newItemAdded = false;
21885
- }
21886
- }
21887
22149
  /**
21888
22150
  * The method called when a <select> element's value changes.
21889
22151
  */
@@ -21921,10 +22183,15 @@ let OrderedListFormFieldComponent = class OrderedListFormFieldComponent extends
21921
22183
  return super.validate(c);
21922
22184
  }
21923
22185
  };
21924
- /** @nocollapse */ OrderedListFormFieldComponent.ɵfac = function OrderedListFormFieldComponent_Factory(t) { return new (t || OrderedListFormFieldComponent)(i0.ɵɵdirectiveInject(i0.Injector)); };
21925
- /** @nocollapse */ OrderedListFormFieldComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: OrderedListFormFieldComponent, selectors: [["sme-form-field", "type", "orderedlist"]], hostVars: 1, hostBindings: function OrderedListFormFieldComponent_HostBindings(rf, ctx) { if (rf & 2) {
22186
+ /** @nocollapse */ OrderedListFormFieldComponent.ɵfac = function OrderedListFormFieldComponent_Factory(t) { return new (t || OrderedListFormFieldComponent)(i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵdirectiveInject(OrderedListFormFieldAccessibilityManagerService)); };
22187
+ /** @nocollapse */ OrderedListFormFieldComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: OrderedListFormFieldComponent, selectors: [["sme-form-field", "type", "orderedlist"]], viewQuery: function OrderedListFormFieldComponent_Query(rf, ctx) { if (rf & 1) {
22188
+ i0.ɵɵviewQuery(_c0$15, 5);
22189
+ } if (rf & 2) {
22190
+ let _t;
22191
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.addButton = _t.first);
22192
+ } }, hostVars: 1, hostBindings: function OrderedListFormFieldComponent_HostBindings(rf, ctx) { if (rf & 2) {
21926
22193
  i0.ɵɵattribute("aria-label", ctx.ariaLabel);
21927
- } }, 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) { if (rf & 1) {
22194
+ } }, 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) { if (rf & 1) {
21928
22195
  i0.ɵɵelementStart(0, "sme-form-field-layout", 0);
21929
22196
  i0.ɵɵtemplate(1, OrderedListFormFieldComponent_div_1_Template, 3, 3, "div", 1);
21930
22197
  i0.ɵɵelement(2, "sme-validation-alert", 2);
@@ -21980,12 +22247,16 @@ OrderedListFormFieldComponent = __decorate([
21980
22247
  }
21981
22248
  ]
21982
22249
  }),
21983
- __metadata("design:paramtypes", [Injector])
22250
+ __metadata("design:paramtypes", [Injector,
22251
+ OrderedListFormFieldAccessibilityManagerService])
21984
22252
  ], OrderedListFormFieldComponent);
21985
22253
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(OrderedListFormFieldComponent, [{
21986
22254
  type: Component,
21987
- 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" }]
21988
- }], function () { return [{ type: i0.Injector }]; }, { showAddRemove: [{
22255
+ 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" }]
22256
+ }], function () { return [{ type: i0.Injector }, { type: OrderedListFormFieldAccessibilityManagerService }]; }, { addButton: [{
22257
+ type: ViewChild,
22258
+ args: ['addButton']
22259
+ }], showAddRemove: [{
21989
22260
  type: Input
21990
22261
  }], showMove: [{
21991
22262
  type: Input
@@ -24448,7 +24719,13 @@ class SmeFormsModule {
24448
24719
  }
24449
24720
  /** @nocollapse */ SmeFormsModule.ɵfac = function SmeFormsModule_Factory(t) { return new (t || SmeFormsModule)(); };
24450
24721
  /** @nocollapse */ SmeFormsModule.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: SmeFormsModule });
24451
- /** @nocollapse */ SmeFormsModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ imports: [AccordionModule,
24722
+ /** @nocollapse */ SmeFormsModule.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ providers: [
24723
+ // TODO: each form field should have its own accessibility manager service
24724
+ ArrayFormFieldAccessibilityManagerService,
24725
+ ListFormFieldAccessibilityManagerService,
24726
+ OrderedListFormFieldAccessibilityManagerService,
24727
+ FormFieldAccessibilityManagerBaseService
24728
+ ], imports: [AccordionModule,
24452
24729
  ActionsModule,
24453
24730
  AutofocusModule,
24454
24731
  CommonModule,
@@ -24620,6 +24897,13 @@ class SmeFormsModule {
24620
24897
  TileDirectivesModule,
24621
24898
  TooltipModule,
24622
24899
  TelemetryDirectiveModule
24900
+ ],
24901
+ providers: [
24902
+ // TODO: each form field should have its own accessibility manager service
24903
+ ArrayFormFieldAccessibilityManagerService,
24904
+ ListFormFieldAccessibilityManagerService,
24905
+ OrderedListFormFieldAccessibilityManagerService,
24906
+ FormFieldAccessibilityManagerBaseService
24623
24907
  ]
24624
24908
  }]
24625
24909
  }], null, null); })();
@@ -42970,7 +43254,7 @@ function PageAlertBarComponent_a_5_Template(rf, ctx) { if (rf & 1) {
42970
43254
  const ctx_r2 = i0.ɵɵnextContext();
42971
43255
  i0.ɵɵproperty("title", !!ctx_r2.alert.detailsCaption ? ctx_r2.alert.detailsCaption : ctx_r2.defaultDetailsLabel);
42972
43256
  i0.ɵɵadvance(1);
42973
- i0.ɵɵtextInterpolate1(" ", !!ctx_r2.alert.detailsLabel ? ctx_r2.alert.detailsLabel : ctx_r2.defaultDetailsLabel, "\n");
43257
+ i0.ɵɵtextInterpolate1(" ", !!ctx_r2.alert.detailsLabel ? ctx_r2.alert.detailsLabel : ctx_r2.defaultDetailsLabel, " ");
42974
43258
  } }
42975
43259
  /**
42976
43260
  *
@@ -43121,8 +43405,8 @@ class PageAlertBarComponent extends SpacerBaseDirective {
43121
43405
  i0.ɵɵelementStart(2, "span");
43122
43406
  i0.ɵɵtext(3);
43123
43407
  i0.ɵɵtemplate(4, PageAlertBarComponent_a_4_Template, 2, 6, "a", 1);
43124
- i0.ɵɵelementEnd();
43125
43408
  i0.ɵɵtemplate(5, PageAlertBarComponent_a_5_Template, 2, 2, "a", 2);
43409
+ i0.ɵɵelementEnd();
43126
43410
  } if (rf & 2) {
43127
43411
  i0.ɵɵclassMapInterpolate1("sme-margin-right-xs sme-position-flex-none ", ctx.iconClass, "");
43128
43412
  i0.ɵɵclassProp("sme-icon", !!ctx.iconClass);
@@ -43137,7 +43421,7 @@ class PageAlertBarComponent extends SpacerBaseDirective {
43137
43421
  } }, dependencies: [i1$1.NgIf, StatusIconComponent, TooltipDirective], encapsulation: 2 });
43138
43422
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PageAlertBarComponent, [{
43139
43423
  type: Component,
43140
- 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" }]
43424
+ 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" }]
43141
43425
  }], function () { return [{ type: i0.Injector }]; }, { isBackgroundTransparent: [{
43142
43426
  type: Input
43143
43427
  }], isCritical: [{
@@ -49797,7 +50081,7 @@ class WizardNavigationButtonComponent extends CoreBaseComponent {
49797
50081
  }
49798
50082
  }
49799
50083
  /** @nocollapse */ WizardNavigationButtonComponent.ɵfac = function WizardNavigationButtonComponent_Factory(t) { return new (t || WizardNavigationButtonComponent)(i0.ɵɵdirectiveInject(i0.Injector)); };
49800
- /** @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) { if (rf & 1) {
50084
+ /** @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) { if (rf & 1) {
49801
50085
  i0.ɵɵelementStart(0, "div", 0)(1, "span", 1)(2, "button", 2);
49802
50086
  i0.ɵɵlistener("click", function WizardNavigationButtonComponent_Template_button_click_2_listener() { return ctx.onStartButtonClick(); });
49803
50087
  i0.ɵɵtemplate(3, WizardNavigationButtonComponent_span_3_Template, 1, 2, "span", 3);
@@ -49832,7 +50116,7 @@ class WizardNavigationButtonComponent extends CoreBaseComponent {
49832
50116
  } }, dependencies: [i1$1.NgIf], encapsulation: 2 });
49833
50117
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(WizardNavigationButtonComponent, [{
49834
50118
  type: Component,
49835
- 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" }]
50119
+ 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" }]
49836
50120
  }], function () { return [{ type: i0.Injector }]; }, { showIcons: [{
49837
50121
  type: Input
49838
50122
  }], leftIcon: [{
@@ -53492,6 +53776,76 @@ function getFullRouteParams(route) {
53492
53776
  return params;
53493
53777
  }
53494
53778
 
53779
+ /**
53780
+ * Base class for snap in specific extension listeners
53781
+ */
53782
+ class SnapInListener extends ExtensionClientListener {
53783
+ /**
53784
+ * Initializes a new instance of the SnapInListener class
53785
+ * @param rpc The rpc context
53786
+ */
53787
+ constructor(rpc, extensionBroker, hostElement) {
53788
+ super(rpc);
53789
+ this.extensionBroker = extensionBroker;
53790
+ this.hostElement = hostElement;
53791
+ }
53792
+ ngAfterViewInit() {
53793
+ if (this.hostElement) {
53794
+ document.body.setAttribute('sme-snap-in', '');
53795
+ document.addEventListener('wheel', event => {
53796
+ // do not listen to wheel if it is for internal scroll
53797
+ // default behavior may try to scroll parent first THEN internal scroll,
53798
+ // see if we can update this to match that behavior
53799
+ if (!Dom.getOverflowAncestor(this.hostElement.nativeElement)) {
53800
+ this.emitOutput({ deltaY: event.deltaY });
53801
+ }
53802
+ });
53803
+ this.hostElement.nativeElement.addEventListener('focusin', (event) => {
53804
+ // check if we actually need to do these
53805
+ event.preventDefault();
53806
+ event.stopPropagation();
53807
+ // send info about the current active element
53808
+ if (document.activeElement) {
53809
+ const focusedElementRect = document.activeElement.getBoundingClientRect();
53810
+ this.emitOutput({ focusedElementRect });
53811
+ }
53812
+ });
53813
+ }
53814
+ }
53815
+ /**
53816
+ * Occurs when any method is called on this worker from another extension
53817
+ */
53818
+ onCall(method, version, ...args) {
53819
+ if (method === 'input' && args && args.length > 0 && args[0].length > 0) {
53820
+ this.onInputReceived(args[0][0]);
53821
+ return of(null);
53822
+ }
53823
+ return super.throwMethodNotFound(method, version);
53824
+ }
53825
+ /**
53826
+ * Occurs when an input is received on this snap-in
53827
+ * @param input the input object.
53828
+ */
53829
+ onInputReceived(input) {
53830
+ this.input = input;
53831
+ }
53832
+ /**
53833
+ * Emits an output to the consumer of this snap-in.
53834
+ * @param output the output object.
53835
+ */
53836
+ emitOutput(output) {
53837
+ // TODO: should there be a separate output type for page events?
53838
+ // abstract output from consumer by mapping to null.
53839
+ return this.extensionBroker.emitResult(this.instanceId, 'output', output)
53840
+ .pipe(map(() => null));
53841
+ }
53842
+ }
53843
+ /** @nocollapse */ SnapInListener.ɵfac = function SnapInListener_Factory(t) { return new (t || SnapInListener)(i0.ɵɵdirectiveInject(i1$3.Rpc), i0.ɵɵdirectiveInject(i2.ExtensionBroker), i0.ɵɵdirectiveInject(i0.ElementRef)); };
53844
+ /** @nocollapse */ SnapInListener.ɵdir = /** @pureOrBreakMyCode */ i0.ɵɵdefineDirective({ type: SnapInListener, features: [i0.ɵɵInheritDefinitionFeature] });
53845
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SnapInListener, [{
53846
+ type: Directive
53847
+ }], function () { return [{ type: i1$3.Rpc }, { type: i2.ExtensionBroker }, { type: i0.ElementRef }]; }, null); })();
53848
+
53495
53849
  /// <reference path='../../dist/packages/core/index.d.ts'/>
53496
53850
  /// <reference path='../../dist/packages/core/special.d.ts'/>
53497
53851
  /// <reference path='../../dist/packages/core/polyfills.d.ts'/>
@@ -53503,5 +53857,5 @@ function getFullRouteParams(route) {
53503
53857
  * Generated bundle index. Do not edit.
53504
53858
  */
53505
53859
 
53506
- 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 };
53860
+ 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 };
53507
53861
  //# sourceMappingURL=microsoft-windows-admin-center-sdk-angular.mjs.map