@aurelia-mdc-web/all 9.3.1-au2 → 9.3.3-au2

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 (621) hide show
  1. package/dist/alert/alert-configuration.js +15 -0
  2. package/dist/alert/alert-configuration.js.map +1 -0
  3. package/dist/alert/alert-modal/alert-modal.html +27 -0
  4. package/dist/alert/alert-modal/alert-modal.js +30 -0
  5. package/dist/alert/alert-modal/alert-modal.js.map +1 -0
  6. package/dist/alert/alert-modal/i-alert-modal-payload.js +14 -0
  7. package/dist/alert/alert-modal/i-alert-modal-payload.js.map +1 -0
  8. package/dist/alert/alert-service.js +106 -0
  9. package/dist/alert/alert-service.js.map +1 -0
  10. package/dist/alert/decorators/confirm-action.js +17 -0
  11. package/dist/alert/decorators/confirm-action.js.map +1 -0
  12. package/dist/alert/decorators/using-progress.js +27 -0
  13. package/dist/alert/decorators/using-progress.js.map +1 -0
  14. package/dist/alert/exceptions-tracker.js +8 -0
  15. package/dist/alert/exceptions-tracker.js.map +1 -0
  16. package/dist/alert/global-progress/global-progress.html +9 -0
  17. package/dist/alert/global-progress/global-progress.js +64 -0
  18. package/dist/alert/global-progress/global-progress.js.map +1 -0
  19. package/dist/alert/prompt-dialog/prompt-dialog.html +15 -0
  20. package/dist/alert/prompt-dialog/prompt-dialog.js +44 -0
  21. package/dist/alert/prompt-dialog/prompt-dialog.js.map +1 -0
  22. package/dist/banner/mdc-banner.html +21 -21
  23. package/dist/banner/mdc-banner.js +45 -42
  24. package/dist/banner/mdc-banner.js.map +1 -1
  25. package/dist/base/attributes/mdc-focus-trap.js +25 -22
  26. package/dist/base/attributes/mdc-focus-trap.js.map +1 -1
  27. package/dist/base/elements/i-validated-element.js +2 -1
  28. package/dist/base/elements/i-validated-element.js.map +1 -1
  29. package/dist/base/elements/mdc-promisify-reference.js +16 -13
  30. package/dist/base/elements/mdc-promisify-reference.js.map +1 -1
  31. package/dist/base/index.js +21 -9
  32. package/dist/base/index.js.map +1 -1
  33. package/dist/base/interceptors.js +12 -5
  34. package/dist/base/interceptors.js.map +1 -1
  35. package/dist/base/material-palette.js +4 -1
  36. package/dist/base/material-palette.js.map +1 -1
  37. package/dist/base/mdc-component.js +5 -1
  38. package/dist/base/mdc-component.js.map +1 -1
  39. package/dist/base/next-element.js +4 -1
  40. package/dist/base/next-element.js.map +1 -1
  41. package/dist/button/enhance-mdc-button.js +9 -6
  42. package/dist/button/enhance-mdc-button.js.map +1 -1
  43. package/dist/button/mdc-button-label.js +9 -6
  44. package/dist/button/mdc-button-label.js.map +1 -1
  45. package/dist/button/mdc-button.html +12 -12
  46. package/dist/button/mdc-button.js +30 -27
  47. package/dist/button/mdc-button.js.map +1 -1
  48. package/dist/card/mdc-card-action-buttons.js +9 -6
  49. package/dist/card/mdc-card-action-buttons.js.map +1 -1
  50. package/dist/card/mdc-card-action-icons.js +9 -6
  51. package/dist/card/mdc-card-action-icons.js.map +1 -1
  52. package/dist/card/mdc-card-actions/mdc-card-actions.html +3 -3
  53. package/dist/card/mdc-card-actions/mdc-card-actions.js +15 -12
  54. package/dist/card/mdc-card-actions/mdc-card-actions.js.map +1 -1
  55. package/dist/card/mdc-card-media/mdc-card-media.html +5 -5
  56. package/dist/card/mdc-card-media/mdc-card-media.js +18 -15
  57. package/dist/card/mdc-card-media/mdc-card-media.js.map +1 -1
  58. package/dist/card/mdc-card-primary-action.html +5 -5
  59. package/dist/card/mdc-card-primary-action.js +15 -12
  60. package/dist/card/mdc-card-primary-action.js.map +1 -1
  61. package/dist/card/mdc-card.html +3 -3
  62. package/dist/card/mdc-card.js +15 -12
  63. package/dist/card/mdc-card.js.map +1 -1
  64. package/dist/checkbox/mdc-checkbox.html +12 -12
  65. package/dist/checkbox/mdc-checkbox.js +38 -35
  66. package/dist/checkbox/mdc-checkbox.js.map +1 -1
  67. package/dist/chips/mdc-chip/mdc-chip.html +24 -24
  68. package/dist/chips/mdc-chip/mdc-chip.js +37 -34
  69. package/dist/chips/mdc-chip/mdc-chip.js.map +1 -1
  70. package/dist/chips/mdc-chip-action/enhance-mdc-chip-action.js +9 -6
  71. package/dist/chips/mdc-chip-action/enhance-mdc-chip-action.js.map +1 -1
  72. package/dist/chips/mdc-chip-action/mdc-chip-action.html +25 -25
  73. package/dist/chips/mdc-chip-action/mdc-chip-action.js +40 -37
  74. package/dist/chips/mdc-chip-action/mdc-chip-action.js.map +1 -1
  75. package/dist/chips/mdc-chip-set/mdc-chip-set.html +10 -10
  76. package/dist/chips/mdc-chip-set/mdc-chip-set.js +27 -24
  77. package/dist/chips/mdc-chip-set/mdc-chip-set.js.map +1 -1
  78. package/dist/circular-progress/mdc-circular-progress.html +38 -38
  79. package/dist/circular-progress/mdc-circular-progress.js +25 -22
  80. package/dist/circular-progress/mdc-circular-progress.js.map +1 -1
  81. package/dist/data-table/mdc-data-table-row.js +13 -10
  82. package/dist/data-table/mdc-data-table-row.js.map +1 -1
  83. package/dist/data-table/mdc-data-table.html +50 -49
  84. package/dist/data-table/mdc-data-table.js +183 -91
  85. package/dist/data-table/mdc-data-table.js.map +1 -1
  86. package/dist/dialog/mdc-dialog-actions.js +13 -10
  87. package/dist/dialog/mdc-dialog-actions.js.map +1 -1
  88. package/dist/dialog/mdc-dialog-content.js +9 -6
  89. package/dist/dialog/mdc-dialog-content.js.map +1 -1
  90. package/dist/dialog/mdc-dialog-service.js +20 -13
  91. package/dist/dialog/mdc-dialog-service.js.map +1 -1
  92. package/dist/dialog/mdc-dialog-title.js +9 -6
  93. package/dist/dialog/mdc-dialog-title.js.map +1 -1
  94. package/dist/dialog/mdc-dialog.html +14 -14
  95. package/dist/dialog/mdc-dialog.js +49 -46
  96. package/dist/dialog/mdc-dialog.js.map +1 -1
  97. package/dist/drawer/mdc-drawer-app-content.js +9 -6
  98. package/dist/drawer/mdc-drawer-app-content.js.map +1 -1
  99. package/dist/drawer/mdc-drawer-content.js +9 -6
  100. package/dist/drawer/mdc-drawer-content.js.map +1 -1
  101. package/dist/drawer/mdc-drawer-header/mdc-drawer-header.html +5 -5
  102. package/dist/drawer/mdc-drawer-header/mdc-drawer-header.js +17 -14
  103. package/dist/drawer/mdc-drawer-header/mdc-drawer-header.js.map +1 -1
  104. package/dist/drawer/mdc-drawer.html +6 -6
  105. package/dist/drawer/mdc-drawer.js +24 -21
  106. package/dist/drawer/mdc-drawer.js.map +1 -1
  107. package/dist/elevation/mdc-elevation.js +9 -6
  108. package/dist/elevation/mdc-elevation.js.map +1 -1
  109. package/dist/expandable/mdc-expandable.html +28 -28
  110. package/dist/expandable/mdc-expandable.js +20 -17
  111. package/dist/expandable/mdc-expandable.js.map +1 -1
  112. package/dist/fab/enhance-mdc-fab.js +9 -6
  113. package/dist/fab/enhance-mdc-fab.js.map +1 -1
  114. package/dist/fab/mdc-fab-icon.js +9 -6
  115. package/dist/fab/mdc-fab-icon.js.map +1 -1
  116. package/dist/fab/mdc-fab.html +13 -13
  117. package/dist/fab/mdc-fab.js +33 -30
  118. package/dist/fab/mdc-fab.js.map +1 -1
  119. package/dist/floating-label/mdc-floating-label.html +1 -1
  120. package/dist/floating-label/mdc-floating-label.js +16 -13
  121. package/dist/floating-label/mdc-floating-label.js.map +1 -1
  122. package/dist/form-field/mdc-form-field.html +6 -6
  123. package/dist/form-field/mdc-form-field.js +27 -24
  124. package/dist/form-field/mdc-form-field.js.map +1 -1
  125. package/dist/icon/mdc-icon.html +3 -3
  126. package/dist/icon/mdc-icon.js +10 -7
  127. package/dist/icon/mdc-icon.js.map +1 -1
  128. package/dist/icon-button/enhance-mdc-icon-button.js +9 -6
  129. package/dist/icon-button/enhance-mdc-icon-button.js.map +1 -1
  130. package/dist/icon-button/mdc-icon-button-icon/mdc-icon-button-icon.html +4 -4
  131. package/dist/icon-button/mdc-icon-button-icon/mdc-icon-button-icon.js +18 -15
  132. package/dist/icon-button/mdc-icon-button-icon/mdc-icon-button-icon.js.map +1 -1
  133. package/dist/icon-button/mdc-icon-button.html +11 -11
  134. package/dist/icon-button/mdc-icon-button.js +28 -25
  135. package/dist/icon-button/mdc-icon-button.js.map +1 -1
  136. package/dist/image-list/mdc-image-list-item/mdc-image-list-item.html +9 -9
  137. package/dist/image-list/mdc-image-list-item/mdc-image-list-item.js +22 -19
  138. package/dist/image-list/mdc-image-list-item/mdc-image-list-item.js.map +1 -1
  139. package/dist/image-list/mdc-image-list.html +7 -7
  140. package/dist/image-list/mdc-image-list.js +35 -32
  141. package/dist/image-list/mdc-image-list.js.map +1 -1
  142. package/dist/index.js +297 -139
  143. package/dist/index.js.map +1 -1
  144. package/dist/layout-grid/mdc-layout-grid-cell/mdc-layout-grid-cell.html +12 -12
  145. package/dist/layout-grid/mdc-layout-grid-cell/mdc-layout-grid-cell.js +36 -33
  146. package/dist/layout-grid/mdc-layout-grid-cell/mdc-layout-grid-cell.js.map +1 -1
  147. package/dist/layout-grid/mdc-layout-grid-inner.js +9 -6
  148. package/dist/layout-grid/mdc-layout-grid-inner.js.map +1 -1
  149. package/dist/layout-grid/mdc-layout-grid.html +8 -8
  150. package/dist/layout-grid/mdc-layout-grid.js +33 -30
  151. package/dist/layout-grid/mdc-layout-grid.js.map +1 -1
  152. package/dist/line-ripple/mdc-line-ripple.js +13 -10
  153. package/dist/line-ripple/mdc-line-ripple.js.map +1 -1
  154. package/dist/linear-progress/mdc-linear-progress.html +12 -12
  155. package/dist/linear-progress/mdc-linear-progress.js +26 -23
  156. package/dist/linear-progress/mdc-linear-progress.js.map +1 -1
  157. package/dist/list/mdc-deprecated-list/mdc-deprecated-list-divider/mdc-deprecated-list-divider.html +4 -4
  158. package/dist/list/mdc-deprecated-list/mdc-deprecated-list-divider/mdc-deprecated-list-divider.js +18 -15
  159. package/dist/list/mdc-deprecated-list/mdc-deprecated-list-divider/mdc-deprecated-list-divider.js.map +1 -1
  160. package/dist/list/mdc-deprecated-list/mdc-deprecated-list-group.js +17 -14
  161. package/dist/list/mdc-deprecated-list/mdc-deprecated-list-group.js.map +1 -1
  162. package/dist/list/mdc-deprecated-list/mdc-deprecated-list-item/enhance-mdc-deprecated-list-item.js +9 -6
  163. package/dist/list/mdc-deprecated-list/mdc-deprecated-list-item/enhance-mdc-deprecated-list-item.js.map +1 -1
  164. package/dist/list/mdc-deprecated-list/mdc-deprecated-list-item/mdc-deprecated-list-item-graphic.js +9 -6
  165. package/dist/list/mdc-deprecated-list/mdc-deprecated-list-item/mdc-deprecated-list-item-graphic.js.map +1 -1
  166. package/dist/list/mdc-deprecated-list/mdc-deprecated-list-item/mdc-deprecated-list-item-meta.js +9 -6
  167. package/dist/list/mdc-deprecated-list/mdc-deprecated-list-item/mdc-deprecated-list-item-meta.js.map +1 -1
  168. package/dist/list/mdc-deprecated-list/mdc-deprecated-list-item/mdc-deprecated-list-item.html +8 -8
  169. package/dist/list/mdc-deprecated-list/mdc-deprecated-list-item/mdc-deprecated-list-item.js +28 -25
  170. package/dist/list/mdc-deprecated-list/mdc-deprecated-list-item/mdc-deprecated-list-item.js.map +1 -1
  171. package/dist/list/mdc-deprecated-list/mdc-deprecated-list-item-primary-text.js +9 -6
  172. package/dist/list/mdc-deprecated-list/mdc-deprecated-list-item-primary-text.js.map +1 -1
  173. package/dist/list/mdc-deprecated-list/mdc-deprecated-list-item-secondary-text.js +9 -6
  174. package/dist/list/mdc-deprecated-list/mdc-deprecated-list-item-secondary-text.js.map +1 -1
  175. package/dist/list/mdc-deprecated-list/mdc-deprecated-list.html +15 -15
  176. package/dist/list/mdc-deprecated-list/mdc-deprecated-list.js +78 -75
  177. package/dist/list/mdc-deprecated-list/mdc-deprecated-list.js.map +1 -1
  178. package/dist/list/mdc-list-divider/mdc-list-divider.html +7 -7
  179. package/dist/list/mdc-list-divider/mdc-list-divider.js +21 -18
  180. package/dist/list/mdc-list-divider/mdc-list-divider.js.map +1 -1
  181. package/dist/list/mdc-list-group.js +17 -14
  182. package/dist/list/mdc-list-group.js.map +1 -1
  183. package/dist/list/mdc-list-item/enhance-mdc-list-item.js +9 -6
  184. package/dist/list/mdc-list-item/enhance-mdc-list-item.js.map +1 -1
  185. package/dist/list/mdc-list-item/mdc-list-item-leading.js +9 -6
  186. package/dist/list/mdc-list-item/mdc-list-item-leading.js.map +1 -1
  187. package/dist/list/mdc-list-item/mdc-list-item-trailing.js +9 -6
  188. package/dist/list/mdc-list-item/mdc-list-item-trailing.js.map +1 -1
  189. package/dist/list/mdc-list-item/mdc-list-item.html +13 -13
  190. package/dist/list/mdc-list-item/mdc-list-item.js +40 -37
  191. package/dist/list/mdc-list-item/mdc-list-item.js.map +1 -1
  192. package/dist/list/mdc-list-item-overline-text.js +9 -6
  193. package/dist/list/mdc-list-item-overline-text.js.map +1 -1
  194. package/dist/list/mdc-list-item-primary-text.js +9 -6
  195. package/dist/list/mdc-list-item-primary-text.js.map +1 -1
  196. package/dist/list/mdc-list-item-secondary-text.js +9 -6
  197. package/dist/list/mdc-list-item-secondary-text.js.map +1 -1
  198. package/dist/list/mdc-list.html +5 -5
  199. package/dist/list/mdc-list.js +58 -55
  200. package/dist/list/mdc-list.js.map +1 -1
  201. package/dist/lookup/discardable-promise.js +5 -1
  202. package/dist/lookup/discardable-promise.js.map +1 -1
  203. package/dist/lookup/mdc-lookup-configuration.js +5 -1
  204. package/dist/lookup/mdc-lookup-configuration.js.map +1 -1
  205. package/dist/lookup/mdc-lookup.html +27 -27
  206. package/dist/lookup/mdc-lookup.js +74 -71
  207. package/dist/lookup/mdc-lookup.js.map +1 -1
  208. package/dist/mdc-configuration.js +15 -9
  209. package/dist/mdc-configuration.js.map +1 -1
  210. package/dist/menu/mdc-menu-selection-group-icon.js +9 -6
  211. package/dist/menu/mdc-menu-selection-group-icon.js.map +1 -1
  212. package/dist/menu/mdc-menu-selection-group.js +9 -6
  213. package/dist/menu/mdc-menu-selection-group.js.map +1 -1
  214. package/dist/menu/mdc-menu.html +6 -6
  215. package/dist/menu/mdc-menu.js +71 -68
  216. package/dist/menu/mdc-menu.js.map +1 -1
  217. package/dist/menu-surface/mdc-menu-surface-anchor.js +11 -8
  218. package/dist/menu-surface/mdc-menu-surface-anchor.js.map +1 -1
  219. package/dist/menu-surface/mdc-menu-surface.js +61 -58
  220. package/dist/menu-surface/mdc-menu-surface.js.map +1 -1
  221. package/dist/notched-outline/mdc-notched-outline.html +7 -7
  222. package/dist/notched-outline/mdc-notched-outline.js +20 -17
  223. package/dist/notched-outline/mdc-notched-outline.js.map +1 -1
  224. package/dist/radio/mdc-radio.html +9 -9
  225. package/dist/radio/mdc-radio.js +27 -24
  226. package/dist/radio/mdc-radio.js.map +1 -1
  227. package/dist/ripple/mdc-ripple.js +51 -48
  228. package/dist/ripple/mdc-ripple.js.map +1 -1
  229. package/dist/segmented-button/mdc-segmented-button-segment/enhance-mdc-segmented-button-segment.js +9 -6
  230. package/dist/segmented-button/mdc-segmented-button-segment/enhance-mdc-segmented-button-segment.js.map +1 -1
  231. package/dist/segmented-button/mdc-segmented-button-segment/mdc-segmented-button-segment.html +11 -11
  232. package/dist/segmented-button/mdc-segmented-button-segment/mdc-segmented-button-segment.js +27 -24
  233. package/dist/segmented-button/mdc-segmented-button-segment/mdc-segmented-button-segment.js.map +1 -1
  234. package/dist/segmented-button/mdc-segmented-button.html +3 -3
  235. package/dist/segmented-button/mdc-segmented-button.js +24 -21
  236. package/dist/segmented-button/mdc-segmented-button.js.map +1 -1
  237. package/dist/select/mdc-default-select-configuration.js +5 -1
  238. package/dist/select/mdc-default-select-configuration.js.map +1 -1
  239. package/dist/select/mdc-select-adapter-aurelia.js +2 -1
  240. package/dist/select/mdc-select-adapter-aurelia.js.map +1 -1
  241. package/dist/select/mdc-select-foundation-aurelia.js +47 -43
  242. package/dist/select/mdc-select-foundation-aurelia.js.map +1 -1
  243. package/dist/select/mdc-select-helper-text/mdc-select-helper-text.html +7 -7
  244. package/dist/select/mdc-select-helper-text/mdc-select-helper-text.js +27 -24
  245. package/dist/select/mdc-select-helper-text/mdc-select-helper-text.js.map +1 -1
  246. package/dist/select/mdc-select-icon.js +16 -13
  247. package/dist/select/mdc-select-icon.js.map +1 -1
  248. package/dist/select/mdc-select-value-observer.js +16 -12
  249. package/dist/select/mdc-select-value-observer.js.map +1 -1
  250. package/dist/select/mdc-select.html +38 -38
  251. package/dist/select/mdc-select.js +71 -68
  252. package/dist/select/mdc-select.js.map +1 -1
  253. package/dist/slider/mdc-slider-foundation-aurelia.js +6 -2
  254. package/dist/slider/mdc-slider-foundation-aurelia.js.map +1 -1
  255. package/dist/slider/mdc-slider.html +36 -36
  256. package/dist/slider/mdc-slider.js +79 -76
  257. package/dist/slider/mdc-slider.js.map +1 -1
  258. package/dist/snackbar/mdc-snackbar-service.js +8 -4
  259. package/dist/snackbar/mdc-snackbar-service.js.map +1 -1
  260. package/dist/snackbar/mdc-snackbar.html +14 -14
  261. package/dist/snackbar/mdc-snackbar.js +55 -52
  262. package/dist/snackbar/mdc-snackbar.js.map +1 -1
  263. package/dist/switch/enhance-mdc-switch.js +9 -6
  264. package/dist/switch/enhance-mdc-switch.js.map +1 -1
  265. package/dist/switch/mdc-switch.html +21 -21
  266. package/dist/switch/mdc-switch.js +16 -13
  267. package/dist/switch/mdc-switch.js.map +1 -1
  268. package/dist/tab-bar/indicator/mdc-tab-indicator.html +9 -9
  269. package/dist/tab-bar/indicator/mdc-tab-indicator.js +26 -23
  270. package/dist/tab-bar/indicator/mdc-tab-indicator.js.map +1 -1
  271. package/dist/tab-bar/mdc-tab-bar.html +6 -6
  272. package/dist/tab-bar/mdc-tab-bar.js +29 -26
  273. package/dist/tab-bar/mdc-tab-bar.js.map +1 -1
  274. package/dist/tab-bar/scroller/mdc-tab-scroller.html +11 -11
  275. package/dist/tab-bar/scroller/mdc-tab-scroller.js +25 -22
  276. package/dist/tab-bar/scroller/mdc-tab-scroller.js.map +1 -1
  277. package/dist/tab-bar/tab/mdc-tab.html +20 -20
  278. package/dist/tab-bar/tab/mdc-tab.js +44 -41
  279. package/dist/tab-bar/tab/mdc-tab.js.map +1 -1
  280. package/dist/text-field/enhance-mdc-text-field.js +9 -6
  281. package/dist/text-field/enhance-mdc-text-field.js.map +1 -1
  282. package/dist/text-field/mdc-default-text-field-configuration.js +5 -1
  283. package/dist/text-field/mdc-default-text-field-configuration.js.map +1 -1
  284. package/dist/text-field/mdc-inputmask.js +76 -0
  285. package/dist/text-field/mdc-inputmask.js.map +1 -0
  286. package/dist/text-field/mdc-text-field-character-counter.js +13 -10
  287. package/dist/text-field/mdc-text-field-character-counter.js.map +1 -1
  288. package/dist/text-field/mdc-text-field-helper-line/mdc-text-field-helper-line.html +7 -7
  289. package/dist/text-field/mdc-text-field-helper-line/mdc-text-field-helper-line.js +14 -11
  290. package/dist/text-field/mdc-text-field-helper-line/mdc-text-field-helper-line.js.map +1 -1
  291. package/dist/text-field/mdc-text-field-helper-text/mdc-text-field-helper-text.html +6 -6
  292. package/dist/text-field/mdc-text-field-helper-text/mdc-text-field-helper-text.js +22 -19
  293. package/dist/text-field/mdc-text-field-helper-text/mdc-text-field-helper-text.js.map +1 -1
  294. package/dist/text-field/mdc-text-field-icon.js +22 -19
  295. package/dist/text-field/mdc-text-field-icon.js.map +1 -1
  296. package/dist/text-field/mdc-text-field.html +29 -29
  297. package/dist/text-field/mdc-text-field.js +116 -113
  298. package/dist/text-field/mdc-text-field.js.map +1 -1
  299. package/dist/tooltip/mdc-default-tooltip-configuration.js +5 -1
  300. package/dist/tooltip/mdc-default-tooltip-configuration.js.map +1 -1
  301. package/dist/tooltip/mdc-tooltip-attribute.js +39 -36
  302. package/dist/tooltip/mdc-tooltip-attribute.js.map +1 -1
  303. package/dist/tooltip/mdc-tooltip.html +7 -7
  304. package/dist/tooltip/mdc-tooltip.js +66 -63
  305. package/dist/tooltip/mdc-tooltip.js.map +1 -1
  306. package/dist/top-app-bar/enhance-top-app-bar-actions.js +9 -6
  307. package/dist/top-app-bar/enhance-top-app-bar-actions.js.map +1 -1
  308. package/dist/top-app-bar/mdc-top-app-bar-action-item.js +9 -6
  309. package/dist/top-app-bar/mdc-top-app-bar-action-item.js.map +1 -1
  310. package/dist/top-app-bar/mdc-top-app-bar-fixed-adjust.js +9 -6
  311. package/dist/top-app-bar/mdc-top-app-bar-fixed-adjust.js.map +1 -1
  312. package/dist/top-app-bar/mdc-top-app-bar-nav-icon.js +9 -6
  313. package/dist/top-app-bar/mdc-top-app-bar-nav-icon.js.map +1 -1
  314. package/dist/top-app-bar/mdc-top-app-bar-row.js +9 -6
  315. package/dist/top-app-bar/mdc-top-app-bar-row.js.map +1 -1
  316. package/dist/top-app-bar/mdc-top-app-bar-section/mdc-top-app-bar-section.html +3 -3
  317. package/dist/top-app-bar/mdc-top-app-bar-section/mdc-top-app-bar-section.js +15 -12
  318. package/dist/top-app-bar/mdc-top-app-bar-section/mdc-top-app-bar-section.js.map +1 -1
  319. package/dist/top-app-bar/mdc-top-app-bar-title.js +9 -6
  320. package/dist/top-app-bar/mdc-top-app-bar-title.js.map +1 -1
  321. package/dist/top-app-bar/mdc-top-app-bar.html +9 -9
  322. package/dist/top-app-bar/mdc-top-app-bar.js +43 -40
  323. package/dist/top-app-bar/mdc-top-app-bar.js.map +1 -1
  324. package/dist/tree-view/i-tree-node.js +2 -1
  325. package/dist/tree-view/i-tree-node.js.map +1 -1
  326. package/dist/tree-view/mdc-tree-node-meta.js +9 -6
  327. package/dist/tree-view/mdc-tree-node-meta.js.map +1 -1
  328. package/dist/tree-view/mdc-tree-node.js +9 -6
  329. package/dist/tree-view/mdc-tree-node.js.map +1 -1
  330. package/dist/tree-view/mdc-tree-view.js +29 -25
  331. package/dist/tree-view/mdc-tree-view.js.map +1 -1
  332. package/dist/tree-view/node-filter.js +9 -6
  333. package/dist/tree-view/node-filter.js.map +1 -1
  334. package/dist/types/alert/alert-configuration.d.ts +8 -0
  335. package/dist/types/alert/alert-modal/alert-modal.d.ts +6 -0
  336. package/dist/types/alert/alert-modal/i-alert-modal-payload.d.ts +9 -0
  337. package/dist/types/alert/alert-service.d.ts +27 -0
  338. package/dist/types/alert/decorators/confirm-action.d.ts +3 -0
  339. package/dist/types/alert/decorators/using-progress.d.ts +6 -0
  340. package/dist/types/alert/exceptions-tracker.d.ts +3 -0
  341. package/dist/types/alert/global-progress/global-progress.d.ts +11 -0
  342. package/dist/types/alert/prompt-dialog/prompt-dialog.d.ts +21 -0
  343. package/dist/types/data-table/mdc-data-table.d.ts +16 -4
  344. package/dist/types/index.d.ts +11 -1
  345. package/dist/types/lookup/mdc-lookup.d.ts +3 -3
  346. package/dist/types/mdc-configuration.d.ts +2 -0
  347. package/dist/types/select/mdc-select.d.ts +3 -3
  348. package/dist/types/text-field/mdc-inputmask.d.ts +11 -0
  349. package/dist/types/text-field/mdc-text-field.d.ts +3 -3
  350. package/dist/types/tooltip/mdc-tooltip.d.ts +3 -3
  351. package/dist/types/validation/validate.d.ts +10 -0
  352. package/dist/typography/mdc-typography.js +60 -57
  353. package/dist/typography/mdc-typography.js.map +1 -1
  354. package/dist/validation/mdc-validation-controller-factory.js +10 -6
  355. package/dist/validation/mdc-validation-controller-factory.js.map +1 -1
  356. package/dist/validation/mdc-validation-result-presenter.js +5 -1
  357. package/dist/validation/mdc-validation-result-presenter.js.map +1 -1
  358. package/dist/validation/validate.js +27 -0
  359. package/dist/validation/validate.js.map +1 -0
  360. package/package.json +4 -2
  361. package/src/alert/alert-configuration.ts +11 -0
  362. package/src/alert/alert-modal/alert-modal.html +27 -0
  363. package/src/alert/alert-modal/alert-modal.scss +10 -0
  364. package/src/alert/alert-modal/alert-modal.ts +13 -0
  365. package/src/alert/alert-modal/i-alert-modal-payload.ts +9 -0
  366. package/src/alert/alert-service.ts +113 -0
  367. package/src/alert/decorators/confirm-action.ts +18 -0
  368. package/src/alert/decorators/using-progress.ts +30 -0
  369. package/src/alert/exceptions-tracker.ts +3 -0
  370. package/src/alert/global-progress/global-progress.html +9 -0
  371. package/src/alert/global-progress/global-progress.scss +38 -0
  372. package/src/alert/global-progress/global-progress.ts +27 -0
  373. package/src/alert/prompt-dialog/prompt-dialog.html +15 -0
  374. package/src/alert/prompt-dialog/prompt-dialog.ts +35 -0
  375. package/src/banner/mdc-banner.html +21 -21
  376. package/src/banner/mdc-banner.ts +116 -116
  377. package/src/base/attributes/mdc-focus-trap.ts +42 -42
  378. package/src/base/elements/i-validated-element.ts +12 -12
  379. package/src/base/elements/mdc-promisify-reference.ts +21 -21
  380. package/src/base/interceptors.ts +25 -25
  381. package/src/base/material-palette.md +7 -7
  382. package/src/base/material-palette.ts +22 -22
  383. package/src/base/mdc-component.ts +69 -69
  384. package/src/base/next-element.ts +39 -39
  385. package/src/button/enhance-mdc-button.ts +8 -8
  386. package/src/button/mdc-button-label.ts +15 -15
  387. package/src/button/mdc-button.html +12 -12
  388. package/src/button/mdc-button.ts +62 -62
  389. package/src/card/mdc-card-action-buttons.ts +19 -19
  390. package/src/card/mdc-card-action-icons.ts +19 -19
  391. package/src/card/mdc-card-actions/mdc-card-actions.html +3 -3
  392. package/src/card/mdc-card-actions/mdc-card-actions.ts +15 -15
  393. package/src/card/mdc-card-media/mdc-card-media.html +5 -5
  394. package/src/card/mdc-card-media/mdc-card-media.ts +21 -21
  395. package/src/card/mdc-card-primary-action.html +5 -5
  396. package/src/card/mdc-card-primary-action.ts +16 -16
  397. package/src/card/mdc-card.html +3 -3
  398. package/src/card/mdc-card.ts +16 -16
  399. package/src/checkbox/mdc-checkbox.html +12 -12
  400. package/src/checkbox/mdc-checkbox.ts +217 -217
  401. package/src/chips/mdc-chip/mdc-chip.html +24 -24
  402. package/src/chips/mdc-chip-action/enhance-mdc-chip-action.ts +8 -8
  403. package/src/chips/mdc-chip-action/mdc-chip-action.html +25 -25
  404. package/src/chips/mdc-chip-action/mdc-chip-action.ts +143 -143
  405. package/src/chips/mdc-chip-set/mdc-chip-set.html +10 -10
  406. package/src/chips/mdc-chip-set/mdc-chip-set.ts +117 -117
  407. package/src/circular-progress/mdc-circular-progress.html +38 -38
  408. package/src/circular-progress/mdc-circular-progress.ts +91 -91
  409. package/src/circular-progress/styles/_index.scss +1 -1
  410. package/src/circular-progress/styles/mdc-circular-progress.import.scss +1 -1
  411. package/src/circular-progress/styles/mdc-circular-progress.scss +14 -14
  412. package/src/data-table/mdc-data-table-row.ts +24 -24
  413. package/src/data-table/mdc-data-table.html +50 -49
  414. package/src/data-table/mdc-data-table.ts +111 -13
  415. package/src/data-table/styles/_index.scss +1 -0
  416. package/src/data-table/styles/mdc-data-table.import.scss +1 -0
  417. package/src/data-table/styles/mdc-data-table.scss +64 -0
  418. package/src/dialog/mdc-dialog-actions.ts +23 -23
  419. package/src/dialog/mdc-dialog-content.ts +11 -11
  420. package/src/dialog/mdc-dialog-service.ts +83 -80
  421. package/src/dialog/mdc-dialog-title.ts +8 -8
  422. package/src/dialog/mdc-dialog.html +14 -14
  423. package/src/dialog/mdc-dialog.ts +224 -224
  424. package/src/drawer/mdc-drawer-app-content.ts +11 -11
  425. package/src/drawer/mdc-drawer-content.ts +11 -11
  426. package/src/drawer/mdc-drawer-header/mdc-drawer-header.html +5 -5
  427. package/src/drawer/mdc-drawer-header/mdc-drawer-header.ts +18 -18
  428. package/src/drawer/mdc-drawer.html +6 -6
  429. package/src/drawer/mdc-drawer.ts +125 -125
  430. package/src/elevation/mdc-elevation.ts +23 -23
  431. package/src/expandable/mdc-expandable.html +28 -28
  432. package/src/expandable/styles/_icon-variables.scss +3 -3
  433. package/src/expandable/styles/_index.scss +1 -1
  434. package/src/expandable/styles/_mixins.scss +287 -287
  435. package/src/expandable/styles/_variables.scss +17 -17
  436. package/src/expandable/styles/mdc-expandable.import.scss +1 -1
  437. package/src/expandable/styles/mdc-expandable.scss +3 -3
  438. package/src/fab/enhance-mdc-fab.ts +8 -8
  439. package/src/fab/mdc-fab-icon.ts +15 -15
  440. package/src/fab/mdc-fab.html +13 -13
  441. package/src/fab/mdc-fab.ts +50 -50
  442. package/src/floating-label/mdc-floating-label.html +1 -1
  443. package/src/floating-label/mdc-floating-label.ts +44 -44
  444. package/src/form-field/mdc-form-field.html +6 -6
  445. package/src/icon/mdc-icon.html +3 -3
  446. package/src/icon/mdc-icon.ts +11 -11
  447. package/src/icon-button/enhance-mdc-icon-button.ts +8 -8
  448. package/src/icon-button/mdc-icon-button-icon/mdc-icon-button-icon.html +4 -4
  449. package/src/icon-button/mdc-icon-button-icon/mdc-icon-button-icon.ts +29 -29
  450. package/src/icon-button/mdc-icon-button.html +11 -11
  451. package/src/icon-button/mdc-icon-button.ts +69 -69
  452. package/src/image-list/mdc-image-list-item/mdc-image-list-item.html +9 -9
  453. package/src/image-list/mdc-image-list-item/mdc-image-list-item.ts +31 -31
  454. package/src/image-list/mdc-image-list.html +7 -7
  455. package/src/image-list/mdc-image-list.ts +73 -73
  456. package/src/image-list/styles/_index.scss +1 -1
  457. package/src/image-list/styles/mdc-image-list.import.scss +1 -1
  458. package/src/image-list/styles/mdc-image-list.scss +7 -7
  459. package/src/index.ts +17 -3
  460. package/src/layout-grid/mdc-layout-grid-cell/mdc-layout-grid-cell.html +12 -12
  461. package/src/layout-grid/mdc-layout-grid-cell/mdc-layout-grid-cell.ts +49 -49
  462. package/src/layout-grid/mdc-layout-grid-inner.ts +8 -8
  463. package/src/layout-grid/mdc-layout-grid.html +8 -8
  464. package/src/layout-grid/mdc-layout-grid.ts +67 -67
  465. package/src/layout-grid/styles/_index.scss +1 -1
  466. package/src/layout-grid/styles/mdc-layout-grid.import.scss +1 -1
  467. package/src/layout-grid/styles/mdc-layout-grid.scss +11 -11
  468. package/src/line-ripple/mdc-line-ripple.ts +41 -41
  469. package/src/linear-progress/mdc-linear-progress.html +12 -12
  470. package/src/linear-progress/mdc-linear-progress.ts +103 -103
  471. package/src/list/mdc-deprecated-list/mdc-deprecated-list-divider/mdc-deprecated-list-divider.html +4 -4
  472. package/src/list/mdc-deprecated-list/mdc-deprecated-list-divider/mdc-deprecated-list-divider.ts +18 -18
  473. package/src/list/mdc-deprecated-list/mdc-deprecated-list-group.ts +27 -27
  474. package/src/list/mdc-deprecated-list/mdc-deprecated-list-item/enhance-mdc-deprecated-list-item.ts +8 -8
  475. package/src/list/mdc-deprecated-list/mdc-deprecated-list-item/mdc-deprecated-list-item-graphic.ts +15 -15
  476. package/src/list/mdc-deprecated-list/mdc-deprecated-list-item/mdc-deprecated-list-item-meta.ts +15 -15
  477. package/src/list/mdc-deprecated-list/mdc-deprecated-list-item/mdc-deprecated-list-item.html +8 -8
  478. package/src/list/mdc-deprecated-list/mdc-deprecated-list-item-primary-text.ts +11 -11
  479. package/src/list/mdc-deprecated-list/mdc-deprecated-list-item-secondary-text.ts +11 -11
  480. package/src/list/mdc-deprecated-list/mdc-deprecated-list.html +15 -15
  481. package/src/list/mdc-deprecated-list/mdc-deprecated-list.ts +331 -331
  482. package/src/list/mdc-list-divider/mdc-list-divider.html +7 -7
  483. package/src/list/mdc-list-divider/mdc-list-divider.ts +24 -24
  484. package/src/list/mdc-list-group.ts +27 -27
  485. package/src/list/mdc-list-item/enhance-mdc-list-item.ts +8 -8
  486. package/src/list/mdc-list-item/mdc-list-item-leading.ts +34 -34
  487. package/src/list/mdc-list-item/mdc-list-item-trailing.ts +36 -36
  488. package/src/list/mdc-list-item/mdc-list-item.html +13 -13
  489. package/src/list/mdc-list-item-overline-text.ts +8 -8
  490. package/src/list/mdc-list-item-primary-text.ts +11 -11
  491. package/src/list/mdc-list-item-secondary-text.ts +11 -11
  492. package/src/list/mdc-list.html +5 -5
  493. package/src/list/mdc-list.ts +300 -300
  494. package/src/lookup/discardable-promise.ts +24 -24
  495. package/src/lookup/mdc-lookup-configuration.ts +11 -11
  496. package/src/lookup/mdc-lookup.html +27 -27
  497. package/src/lookup/mdc-lookup.ts +5 -5
  498. package/src/mdc-configuration.ts +2 -0
  499. package/src/menu/mdc-menu-selection-group-icon.ts +11 -11
  500. package/src/menu/mdc-menu-selection-group.ts +4 -4
  501. package/src/menu/mdc-menu.html +6 -6
  502. package/src/menu-surface/mdc-menu-surface-anchor.ts +12 -12
  503. package/src/menu-surface/mdc-menu-surface.ts +275 -275
  504. package/src/notched-outline/mdc-notched-outline.html +7 -7
  505. package/src/notched-outline/mdc-notched-outline.ts +60 -60
  506. package/src/radio/mdc-radio.html +9 -9
  507. package/src/radio/mdc-radio.ts +162 -162
  508. package/src/resource.d.ts +22 -22
  509. package/src/ripple/mdc-ripple.ts +114 -114
  510. package/src/segmented-button/mdc-segmented-button-segment/enhance-mdc-segmented-button-segment.ts +8 -8
  511. package/src/segmented-button/mdc-segmented-button-segment/mdc-segmented-button-segment.html +11 -11
  512. package/src/segmented-button/mdc-segmented-button.html +3 -3
  513. package/src/segmented-button/mdc-segmented-button.ts +89 -89
  514. package/src/select/mdc-default-select-configuration.ts +3 -3
  515. package/src/select/mdc-select-adapter-aurelia.ts +213 -213
  516. package/src/select/mdc-select-foundation-aurelia.ts +484 -484
  517. package/src/select/mdc-select-helper-text/mdc-select-helper-text.html +7 -7
  518. package/src/select/mdc-select-helper-text/mdc-select-helper-text.ts +55 -55
  519. package/src/select/mdc-select-icon.ts +41 -41
  520. package/src/select/mdc-select-value-observer.ts +347 -346
  521. package/src/select/mdc-select.html +38 -38
  522. package/src/select/mdc-select.ts +480 -480
  523. package/src/slider/mdc-slider-foundation-aurelia.ts +13 -13
  524. package/src/slider/mdc-slider.html +36 -36
  525. package/src/slider/mdc-slider.ts +409 -409
  526. package/src/slider/styles/_index.scss +1 -1
  527. package/src/slider/styles/mdc-slider.import.scss +1 -1
  528. package/src/slider/styles/mdc-slider.scss +8 -8
  529. package/src/snackbar/mdc-snackbar-service.ts +48 -48
  530. package/src/snackbar/mdc-snackbar.html +14 -14
  531. package/src/snackbar/mdc-snackbar.ts +109 -109
  532. package/src/switch/enhance-mdc-switch.ts +8 -8
  533. package/src/switch/mdc-switch.html +21 -21
  534. package/src/switch/mdc-switch.ts +86 -86
  535. package/src/tab-bar/indicator/mdc-tab-indicator.html +9 -9
  536. package/src/tab-bar/indicator/mdc-tab-indicator.ts +51 -51
  537. package/src/tab-bar/mdc-tab-bar.html +6 -6
  538. package/src/tab-bar/mdc-tab-bar.ts +119 -119
  539. package/src/tab-bar/scroller/mdc-tab-scroller.html +11 -11
  540. package/src/tab-bar/scroller/mdc-tab-scroller.ts +85 -85
  541. package/src/tab-bar/tab/mdc-tab.html +20 -20
  542. package/src/tab-bar/tab/mdc-tab.ts +118 -118
  543. package/src/text-field/enhance-mdc-text-field.ts +12 -12
  544. package/src/text-field/mdc-default-text-field-configuration.ts +3 -3
  545. package/src/text-field/mdc-inputmask.ts +45 -0
  546. package/src/text-field/mdc-text-field-character-counter.ts +32 -32
  547. package/src/text-field/mdc-text-field-helper-line/mdc-text-field-helper-line.html +7 -7
  548. package/src/text-field/mdc-text-field-helper-line/mdc-text-field-helper-line.ts +37 -37
  549. package/src/text-field/mdc-text-field-helper-text/mdc-text-field-helper-text.html +6 -6
  550. package/src/text-field/mdc-text-field-helper-text/mdc-text-field-helper-text.ts +47 -47
  551. package/src/text-field/mdc-text-field-icon.ts +59 -59
  552. package/src/text-field/mdc-text-field.html +29 -29
  553. package/src/text-field/mdc-text-field.ts +535 -535
  554. package/src/tooltip/mdc-default-tooltip-configuration.ts +5 -5
  555. package/src/tooltip/mdc-tooltip-attribute.ts +118 -118
  556. package/src/tooltip/mdc-tooltip.html +7 -7
  557. package/src/tooltip/mdc-tooltip.ts +6 -6
  558. package/src/top-app-bar/enhance-top-app-bar-actions.ts +9 -9
  559. package/src/top-app-bar/mdc-top-app-bar-action-item.ts +12 -12
  560. package/src/top-app-bar/mdc-top-app-bar-fixed-adjust.ts +13 -13
  561. package/src/top-app-bar/mdc-top-app-bar-nav-icon.ts +12 -12
  562. package/src/top-app-bar/mdc-top-app-bar-row.ts +7 -7
  563. package/src/top-app-bar/mdc-top-app-bar-section/mdc-top-app-bar-section.html +3 -3
  564. package/src/top-app-bar/mdc-top-app-bar-section/mdc-top-app-bar-section.ts +9 -9
  565. package/src/top-app-bar/mdc-top-app-bar-title.ts +7 -7
  566. package/src/top-app-bar/mdc-top-app-bar.html +9 -9
  567. package/src/top-app-bar/mdc-top-app-bar.ts +93 -93
  568. package/src/tree-view/i-tree-node.ts +8 -8
  569. package/src/tree-view/mdc-tree-node-meta.ts +11 -11
  570. package/src/tree-view/mdc-tree-node.ts +4 -4
  571. package/src/tree-view/node-filter.ts +12 -12
  572. package/src/tree-view/styles/_index.scss +1 -1
  573. package/src/tree-view/styles/_mixins.scss +145 -145
  574. package/src/tree-view/styles/_variables.scss +8 -8
  575. package/src/tree-view/styles/mdc-tree-view.import.scss +1 -1
  576. package/src/tree-view/styles/mdc-tree-view.scss +3 -3
  577. package/src/typography/mdc-typography.ts +130 -130
  578. package/src/validation/mdc-validation-controller-factory.ts +20 -20
  579. package/src/validation/mdc-validation-result-presenter.ts +36 -36
  580. package/src/validation/validate.ts +32 -0
  581. package/styles/mdc-all.scss +53 -52
  582. package/src/banner/doc/api.json +0 -1106
  583. package/src/base/doc/api.json +0 -1408
  584. package/src/button/doc/api.json +0 -621
  585. package/src/card/doc/api.json +0 -214
  586. package/src/checkbox/doc/api.json +0 -1320
  587. package/src/chips/doc/api.json +0 -2533
  588. package/src/circular-progress/doc/api.json +0 -1085
  589. package/src/data-table/doc/api.json +0 -2064
  590. package/src/dialog/doc/api.json +0 -1667
  591. package/src/drawer/doc/api.json +0 -1416
  592. package/src/elevation/doc/api.json +0 -317
  593. package/src/expandable/doc/api.json +0 -677
  594. package/src/fab/doc/api.json +0 -396
  595. package/src/floating-label/doc/api.json +0 -914
  596. package/src/form-field/doc/api.json +0 -948
  597. package/src/icon/doc/api.json +0 -224
  598. package/src/icon-button/doc/api.json +0 -1109
  599. package/src/image-list/doc/api.json +0 -438
  600. package/src/layout-grid/doc/api.json +0 -600
  601. package/src/line-ripple/doc/api.json +0 -857
  602. package/src/linear-progress/doc/api.json +0 -949
  603. package/src/list/doc/api.json +0 -5725
  604. package/src/lookup/doc/api.json +0 -2370
  605. package/src/menu/doc/api.json +0 -2246
  606. package/src/menu-surface/doc/api.json +0 -1800
  607. package/src/notched-outline/doc/api.json +0 -943
  608. package/src/radio/doc/api.json +0 -1159
  609. package/src/ripple/doc/api.json +0 -1212
  610. package/src/segmented-button/doc/api.json +0 -1937
  611. package/src/select/doc/api.json +0 -4247
  612. package/src/slider/doc/api.json +0 -1954
  613. package/src/snackbar/doc/api.json +0 -1699
  614. package/src/switch/doc/api.json +0 -899
  615. package/src/tab-bar/doc/api.json +0 -4253
  616. package/src/text-field/doc/api.json +0 -3179
  617. package/src/tooltip/doc/api.json +0 -2531
  618. package/src/top-app-bar/doc/api.json +0 -1752
  619. package/src/tree-view/doc/api.json +0 -1710
  620. package/src/typography/doc/api.json +0 -3058
  621. package/src/validation/doc/api.json +0 -371
@@ -1,409 +1,409 @@
1
- import { MdcComponent, booleanAttr, number } from '../base';
2
- import { MDCSliderAdapter, Thumb, cssClasses, TickMark, MDCSliderChangeEventDetail, events, attributes } from '@material/slider';
3
- import { inject, customElement, bindable, CustomElement } from 'aurelia';
4
- import { MdcSliderFoundationAurelia } from './mdc-slider-foundation-aurelia';
5
- import { EventType, SpecificEventListener } from '@material/base';
6
- import template from './mdc-slider.html?raw';
7
- import { MdcRipple } from '../ripple/mdc-ripple';
8
-
9
- events.INPUT = events.INPUT.toLowerCase();
10
- events.CHANGE = events.CHANGE.toLowerCase();
11
-
12
- interface IEventHandler {
13
- element: HTMLElement | Window;
14
- evtType: EventType;
15
- handler: SpecificEventListener<EventType>;
16
- }
17
-
18
- @inject(Element)
19
- @customElement({ name: 'mdc-slider', template })
20
- export class MdcSlider extends MdcComponent<MdcSliderFoundationAurelia> {
21
- constructor(root: HTMLElement) {
22
- super(root);
23
- defineMdcSliderElementApis(this.root);
24
- }
25
-
26
- private startInput?: HTMLInputElement;
27
- private endInput: HTMLInputElement;
28
- private startThumb?: HTMLElement;
29
- private endThumb: HTMLElement;
30
- private startRipple?: MdcRipple;
31
- private endRipple: MdcRipple;
32
- private trackActive: HTMLElement;
33
- tickMarkStatuses: TickMark[];
34
- TickMark = TickMark;
35
- eventHandlers: IEventHandler[] = [];
36
-
37
- @bindable({ set: booleanAttr })
38
- discrete: boolean;
39
-
40
- @bindable({ set: booleanAttr })
41
- tickMarks: boolean;
42
-
43
- @bindable({ set: booleanAttr })
44
- range: boolean;
45
-
46
- @bindable({ set: booleanAttr })
47
- disabled: boolean;
48
- disabledChanged() {
49
- this.foundation?.setDisabled(this.disabled);
50
- }
51
-
52
- /** Set if focus styles should be hidden for pointer events */
53
- @bindable({ set: booleanAttr })
54
- hideFocus: boolean;
55
-
56
- @bindable({ set: number })
57
- min: number = 0;
58
- async minChanged() {
59
- await this.initialised;
60
- (this.startInput ?? this.endInput)?.setAttribute(attributes.INPUT_MIN, this.min.toString());
61
- this.foundation?.destroy();
62
- this.cleanupEventHandlers();
63
- if (this.range && this.valueStart < this.min) {
64
- this.valueStart = this.min;
65
- this.emit(events.CHANGE, { value: this.value, thumb: Thumb.START }, true);
66
- }
67
- if (this.value < this.min) {
68
- this.value = this.min;
69
- this.emit(events.CHANGE, { value: this.value, thumb: Thumb.END }, true);
70
- }
71
- this.foundation?.init();
72
- this.foundation?.layout();
73
- }
74
-
75
- @bindable({ set: number })
76
- max: number = 100;
77
- async maxChanged() {
78
- await this.initialised;
79
- this.endInput?.setAttribute(attributes.INPUT_MAX, this.max.toString());
80
- this.foundation?.destroy();
81
- this.cleanupEventHandlers();
82
- if (this.range && this.valueStart > this.max) {
83
- this.valueStart = this.max;
84
- this.emit(events.CHANGE, { value: this.value, thumb: Thumb.START }, true);
85
- }
86
- if (this.value > this.max) {
87
- this.value = this.max;
88
- this.emit(events.CHANGE, { value: this.value, thumb: Thumb.END }, true);
89
- }
90
- this.foundation?.init();
91
- this.foundation?.layout();
92
- }
93
-
94
- @bindable({ set: number })
95
- minRange: number;
96
- async minRangeChanged() {
97
- await this.initialised;
98
- this.endInput?.setAttribute(attributes.DATA_MIN_RANGE, this.minRange.toString());
99
- this.foundation?.destroy();
100
- this.cleanupEventHandlers();
101
- if (this.range && this.value - this.valueStart < this.minRange) {
102
- if (this.valueStart + this.minRange < this.max) {
103
- this.value = this.valueStart + this.minRange;
104
- }
105
- else if (this.value - this.minRange > this.min) {
106
- this.valueStart = this.value - this.minRange;
107
- }
108
- this.emit(events.CHANGE, { value: this.value, thumb: Thumb.START }, true);
109
- }
110
- this.foundation?.init();
111
- this.foundation?.layout();
112
- }
113
-
114
-
115
- @bindable({ set: number })
116
- step: number = 1;
117
- stepChanged() {
118
- this.startInput?.setAttribute(attributes.INPUT_STEP, this.step.toString());
119
- this.endInput?.setAttribute(attributes.INPUT_STEP, this.step.toString());
120
- this.foundation?.destroy();
121
- this.cleanupEventHandlers();
122
- this.foundation?.init();
123
- }
124
-
125
- @bindable()
126
- valueToAriaValueTextFn: ((value: number) => string) | null = null;
127
-
128
- _value: number = 0;
129
- get value(): number {
130
- if (this.foundation) {
131
- return this.foundation.getValue();
132
- } else {
133
- return this._value;
134
- }
135
- }
136
-
137
- set value(value: number) {
138
- this._value = value;
139
- this.foundation?.setValue(value);
140
- }
141
-
142
- _valueStart: number = 0;
143
- get valueStart(): number {
144
- if (this.foundation) {
145
- return this.foundation.getValueStart();
146
- } else {
147
- return this._valueStart;
148
- }
149
- }
150
-
151
- set valueStart(value: number) {
152
- this._valueStart = value;
153
- this.foundation?.setValueStart(value);
154
- }
155
-
156
- beforeFoundationCreated() {
157
- // assign initial values explicitly
158
- this.endInput.setAttribute(attributes.INPUT_MIN, this.min.toString());
159
- this.endInput.setAttribute(attributes.INPUT_MAX, this.max.toString());
160
- this.endInput.setAttribute(attributes.INPUT_VALUE, this.value.toString());
161
- this.endInput.setAttribute(attributes.INPUT_STEP, this.step.toString());
162
- this.startInput?.setAttribute(attributes.INPUT_VALUE, this.valueStart.toString());
163
- this.startInput?.setAttribute(attributes.INPUT_STEP, this.step.toString());
164
- }
165
-
166
- initialSyncWithDOM() {
167
- this.disabledChanged();
168
- this.value = this._value;
169
- if (this.range) {
170
- this.valueStart = this._valueStart;
171
- }
172
- this.foundation?.layout();
173
- }
174
-
175
- getDefaultFoundation() {
176
- // DO NOT INLINE this variable. For backward compatibility, foundations take
177
- // a Partial<MDCFooAdapter>. To ensure we don't accidentally omit any
178
- // methods, we need a separate, strongly typed adapter variable.
179
- const adapter: MDCSliderAdapter = {
180
- hasClass: (className) => this.root.classList.contains(className),
181
- addClass: (className) => {
182
- this.root.classList.add(className);
183
- },
184
- removeClass: (className) => {
185
- this.root.classList.remove(className);
186
- },
187
- addThumbClass: (className, thumb: Thumb) => {
188
- this.getThumbEl(thumb)?.classList.add(className);
189
- },
190
- removeThumbClass: (className, thumb: Thumb) => {
191
- this.getThumbEl(thumb)?.classList.remove(className);
192
- },
193
- getAttribute: (attribute) => this.root.getAttribute(attribute),
194
- getInputValue: (thumb: Thumb) => this.getInput(thumb)?.value ?? '',
195
- setInputValue: (value: string, thumb: Thumb) => {
196
- const thumbInput = this.getInput(thumb);
197
- if (thumbInput) {
198
- thumbInput.value = value;
199
- }
200
- },
201
- getInputAttribute: (attribute, thumb: Thumb) => this.getInput(thumb)?.getAttribute(attribute) ?? null,
202
- setInputAttribute: (attribute, value, thumb: Thumb) => {
203
- this.getInput(thumb)?.setAttribute(attribute, value);
204
- },
205
- removeInputAttribute: (attribute, thumb: Thumb) => {
206
- this.getInput(thumb)?.removeAttribute(attribute);
207
- },
208
- focusInput: (thumb: Thumb) => { this.getInput(thumb)?.focus(); },
209
- isInputFocused: (thumb: Thumb) => this.getInput(thumb) === document.activeElement,
210
- shouldHideFocusStylesForPointerEvents: () => this.hideFocus,
211
- getThumbKnobWidth: (thumb: Thumb) => {
212
- return this.getThumbEl(thumb)?.querySelector<HTMLElement>(`.${cssClasses.THUMB_KNOB}`)!
213
- .getBoundingClientRect()
214
- .width ?? 0;
215
- },
216
- getThumbBoundingClientRect: (thumb: Thumb) => this.getThumbEl(thumb)!.getBoundingClientRect(),
217
- getBoundingClientRect: () => this.root.getBoundingClientRect(),
218
- getValueIndicatorContainerWidth: (thumb: Thumb) => {
219
- return this.getThumbEl(thumb)!
220
- .querySelector<HTMLElement>(`.${cssClasses.VALUE_INDICATOR_CONTAINER}`)!
221
- .getBoundingClientRect()
222
- .width;
223
- },
224
- isRTL: () => getComputedStyle(this.root).direction === 'rtl',
225
- setThumbStyleProperty: (propertyName, value, thumb: Thumb) => {
226
- this.getThumbEl(thumb)?.style.setProperty(propertyName, value);
227
- },
228
- removeThumbStyleProperty: (propertyName, thumb: Thumb) => {
229
- this.getThumbEl(thumb)?.style.removeProperty(propertyName);
230
- },
231
- setTrackActiveStyleProperty: (propertyName, value) => {
232
- this.trackActive.style.setProperty(propertyName, value);
233
- },
234
- removeTrackActiveStyleProperty: (propertyName) => {
235
- this.trackActive.style.removeProperty(propertyName);
236
- },
237
- setValueIndicatorText: (value: number, thumb: Thumb) => {
238
- const valueIndicatorEl =
239
- this.getThumbEl(thumb)?.querySelector<HTMLElement>(
240
- `.${cssClasses.VALUE_INDICATOR_TEXT}`);
241
- valueIndicatorEl!.textContent = String(value);
242
- },
243
- getValueToAriaValueTextFn: () => this.valueToAriaValueTextFn,
244
- updateTickMarks: (tickMarks: TickMark[]) => {
245
- this.tickMarkStatuses = tickMarks;
246
- },
247
- setPointerCapture: (pointerId) => {
248
- this.root.setPointerCapture(pointerId);
249
- },
250
- emitChangeEvent: (value, thumb: Thumb) => {
251
- this.emit<MDCSliderChangeEventDetail>(events.CHANGE, { value, thumb });
252
- },
253
- emitInputEvent: (value, thumb: Thumb) => {
254
- this.emit<MDCSliderChangeEventDetail>(events.INPUT, { value, thumb });
255
- },
256
- emitDragStartEvent: (_, thumb: Thumb) => {
257
- // Emitting event is not yet implemented. See issue:
258
- // https://github.com/material-components/material-components-web/issues/6448
259
-
260
- this.getRipple(thumb)?.activate();
261
- },
262
- emitDragEndEvent: (_, thumb: Thumb) => {
263
- // Emitting event is not yet implemented. See issue:
264
- // https://github.com/material-components/material-components-web/issues/6448
265
-
266
- this.getRipple(thumb)?.deactivate();
267
- },
268
- registerEventHandler: (evtType, handler) => {
269
- this.listen(evtType, handler);
270
- this.addEventHandler(this.root, evtType, handler);
271
- },
272
- deregisterEventHandler: (evtType, handler) => {
273
- this.unlisten(evtType, handler);
274
- this.removeEventHandler(this.root, evtType, handler);
275
- },
276
- registerThumbEventHandler: (thumb, evtType, handler) => {
277
- const thumbEl = this.getThumbEl(thumb);
278
- if (thumbEl) {
279
- thumbEl.addEventListener(evtType, handler);
280
- this.addEventHandler(thumbEl, evtType, handler);
281
- }
282
- },
283
- deregisterThumbEventHandler: (thumb, evtType, handler) => {
284
- const thumbEl = this.getThumbEl(thumb);
285
- if (thumbEl) {
286
- thumbEl.removeEventListener(evtType, handler);
287
- this.removeEventHandler(thumbEl, evtType, handler);
288
- }
289
- },
290
- registerInputEventHandler: (thumb, evtType, handler) => {
291
- const thumbInput = this.getInput(thumb);
292
- if (thumbInput) {
293
- thumbInput.addEventListener(evtType, handler);
294
- this.addEventHandler(thumbInput, evtType, handler);
295
- }
296
- },
297
- deregisterInputEventHandler: (thumb, evtType, handler) => {
298
- const thumbInput = this.getInput(thumb);
299
- if (thumbInput) {
300
- thumbInput.removeEventListener(evtType, handler);
301
- this.removeEventHandler(thumbInput, evtType, handler);
302
- }
303
- },
304
- registerBodyEventHandler: (evtType, handler) => {
305
- document.body.addEventListener(evtType, handler);
306
- this.addEventHandler(document.body, evtType, handler);
307
- },
308
- deregisterBodyEventHandler: (evtType, handler) => {
309
- document.body.removeEventListener(evtType, handler);
310
- this.removeEventHandler(document.body, evtType, handler);
311
- },
312
- registerWindowEventHandler: (evtType, handler) => {
313
- window.addEventListener(evtType, handler);
314
- this.addEventHandler(window, evtType, handler);
315
- },
316
- deregisterWindowEventHandler: (evtType, handler) => {
317
- window.removeEventListener(evtType, handler);
318
- this.removeEventHandler(window, evtType, handler);
319
- },
320
- // tslint:enable:object-literal-sort-keys
321
- };
322
- return new MdcSliderFoundationAurelia(adapter);
323
- }
324
-
325
- addEventHandler(element: HTMLElement | Window, evtType: EventType, handler: SpecificEventListener<EventType>) {
326
- this.eventHandlers.push({ element, evtType, handler });
327
- }
328
-
329
- removeEventHandler(element: HTMLElement | Window, evtType: EventType, handler: SpecificEventListener<EventType>) {
330
- const i = this.eventHandlers.findIndex(x => x.element === element && x.evtType === evtType && x.handler === handler);
331
- if (i !== -1) {
332
- this.eventHandlers.splice(i, 1);
333
- }
334
- }
335
-
336
- cleanupEventHandlers() {
337
- this.eventHandlers.forEach(x => {
338
- x.element.removeEventListener(x.evtType, x.handler);
339
- });
340
- this.eventHandlers = [];
341
- }
342
-
343
- getThumbEl(thumb: Thumb) {
344
- return thumb === Thumb.END ? this.endThumb : this.startThumb;
345
- }
346
-
347
- private getInput(thumb: Thumb) {
348
- return thumb === Thumb.END ? this.endInput : this.startInput;
349
- }
350
-
351
- private getRipple(thumb: Thumb) {
352
- return thumb === Thumb.END ? this.endRipple : this.startRipple;
353
- }
354
-
355
- focus() {
356
- this.root.focus();
357
- }
358
-
359
- blur() {
360
- this.root.blur();
361
- }
362
-
363
- }
364
-
365
- /** @hidden */
366
- export interface IMdcSliderElement extends HTMLElement {
367
- value: number;
368
- valuestart: number;
369
- $au: {
370
- 'au:resource:custom-element': {
371
- viewModel: MdcSlider;
372
- };
373
- };
374
- }
375
-
376
- function defineMdcSliderElementApis(element: HTMLElement) {
377
- Object.defineProperties(element, {
378
- value: {
379
- get(this: IMdcSliderElement) {
380
- return CustomElement.for<MdcSlider>(this).viewModel.value;
381
- },
382
- set(this: IMdcSliderElement, value: number) {
383
- CustomElement.for<MdcSlider>(this).viewModel.value = value;
384
- },
385
- configurable: true
386
- },
387
- valuestart: {
388
- get(this: IMdcSliderElement) {
389
- return CustomElement.for<MdcSlider>(this).viewModel.valueStart;
390
- },
391
- set(this: IMdcSliderElement, value: number) {
392
- CustomElement.for<MdcSlider>(this).viewModel.valueStart = value;
393
- },
394
- configurable: true
395
- },
396
- focus: {
397
- value(this: IMdcSliderElement) {
398
- CustomElement.for<MdcSlider>(this).viewModel.focus();
399
- },
400
- configurable: true
401
- },
402
- blur: {
403
- value(this: IMdcSliderElement) {
404
- CustomElement.for<MdcSlider>(this).viewModel.blur();
405
- },
406
- configurable: true
407
- }
408
- });
409
- }
1
+ import { MdcComponent, booleanAttr, number } from '../base';
2
+ import { MDCSliderAdapter, Thumb, cssClasses, TickMark, MDCSliderChangeEventDetail, events, attributes } from '@material/slider';
3
+ import { inject, customElement, bindable, CustomElement } from 'aurelia';
4
+ import { MdcSliderFoundationAurelia } from './mdc-slider-foundation-aurelia';
5
+ import { EventType, SpecificEventListener } from '@material/base';
6
+ import template from './mdc-slider.html?raw';
7
+ import { MdcRipple } from '../ripple/mdc-ripple';
8
+
9
+ events.INPUT = events.INPUT.toLowerCase();
10
+ events.CHANGE = events.CHANGE.toLowerCase();
11
+
12
+ interface IEventHandler {
13
+ element: HTMLElement | Window;
14
+ evtType: EventType;
15
+ handler: SpecificEventListener<EventType>;
16
+ }
17
+
18
+ @inject(Element)
19
+ @customElement({ name: 'mdc-slider', template })
20
+ export class MdcSlider extends MdcComponent<MdcSliderFoundationAurelia> {
21
+ constructor(root: HTMLElement) {
22
+ super(root);
23
+ defineMdcSliderElementApis(this.root);
24
+ }
25
+
26
+ private startInput?: HTMLInputElement;
27
+ private endInput: HTMLInputElement;
28
+ private startThumb?: HTMLElement;
29
+ private endThumb: HTMLElement;
30
+ private startRipple?: MdcRipple;
31
+ private endRipple: MdcRipple;
32
+ private trackActive: HTMLElement;
33
+ tickMarkStatuses: TickMark[];
34
+ TickMark = TickMark;
35
+ eventHandlers: IEventHandler[] = [];
36
+
37
+ @bindable({ set: booleanAttr })
38
+ discrete: boolean;
39
+
40
+ @bindable({ set: booleanAttr })
41
+ tickMarks: boolean;
42
+
43
+ @bindable({ set: booleanAttr })
44
+ range: boolean;
45
+
46
+ @bindable({ set: booleanAttr })
47
+ disabled: boolean;
48
+ disabledChanged() {
49
+ this.foundation?.setDisabled(this.disabled);
50
+ }
51
+
52
+ /** Set if focus styles should be hidden for pointer events */
53
+ @bindable({ set: booleanAttr })
54
+ hideFocus: boolean;
55
+
56
+ @bindable({ set: number })
57
+ min: number = 0;
58
+ async minChanged() {
59
+ await this.initialised;
60
+ (this.startInput ?? this.endInput)?.setAttribute(attributes.INPUT_MIN, this.min.toString());
61
+ this.foundation?.destroy();
62
+ this.cleanupEventHandlers();
63
+ if (this.range && this.valueStart < this.min) {
64
+ this.valueStart = this.min;
65
+ this.emit(events.CHANGE, { value: this.value, thumb: Thumb.START }, true);
66
+ }
67
+ if (this.value < this.min) {
68
+ this.value = this.min;
69
+ this.emit(events.CHANGE, { value: this.value, thumb: Thumb.END }, true);
70
+ }
71
+ this.foundation?.init();
72
+ this.foundation?.layout();
73
+ }
74
+
75
+ @bindable({ set: number })
76
+ max: number = 100;
77
+ async maxChanged() {
78
+ await this.initialised;
79
+ this.endInput?.setAttribute(attributes.INPUT_MAX, this.max.toString());
80
+ this.foundation?.destroy();
81
+ this.cleanupEventHandlers();
82
+ if (this.range && this.valueStart > this.max) {
83
+ this.valueStart = this.max;
84
+ this.emit(events.CHANGE, { value: this.value, thumb: Thumb.START }, true);
85
+ }
86
+ if (this.value > this.max) {
87
+ this.value = this.max;
88
+ this.emit(events.CHANGE, { value: this.value, thumb: Thumb.END }, true);
89
+ }
90
+ this.foundation?.init();
91
+ this.foundation?.layout();
92
+ }
93
+
94
+ @bindable({ set: number })
95
+ minRange: number;
96
+ async minRangeChanged() {
97
+ await this.initialised;
98
+ this.endInput?.setAttribute(attributes.DATA_MIN_RANGE, this.minRange.toString());
99
+ this.foundation?.destroy();
100
+ this.cleanupEventHandlers();
101
+ if (this.range && this.value - this.valueStart < this.minRange) {
102
+ if (this.valueStart + this.minRange < this.max) {
103
+ this.value = this.valueStart + this.minRange;
104
+ }
105
+ else if (this.value - this.minRange > this.min) {
106
+ this.valueStart = this.value - this.minRange;
107
+ }
108
+ this.emit(events.CHANGE, { value: this.value, thumb: Thumb.START }, true);
109
+ }
110
+ this.foundation?.init();
111
+ this.foundation?.layout();
112
+ }
113
+
114
+
115
+ @bindable({ set: number })
116
+ step: number = 1;
117
+ stepChanged() {
118
+ this.startInput?.setAttribute(attributes.INPUT_STEP, this.step.toString());
119
+ this.endInput?.setAttribute(attributes.INPUT_STEP, this.step.toString());
120
+ this.foundation?.destroy();
121
+ this.cleanupEventHandlers();
122
+ this.foundation?.init();
123
+ }
124
+
125
+ @bindable()
126
+ valueToAriaValueTextFn: ((value: number) => string) | null = null;
127
+
128
+ _value: number = 0;
129
+ get value(): number {
130
+ if (this.foundation) {
131
+ return this.foundation.getValue();
132
+ } else {
133
+ return this._value;
134
+ }
135
+ }
136
+
137
+ set value(value: number) {
138
+ this._value = value;
139
+ this.foundation?.setValue(value);
140
+ }
141
+
142
+ _valueStart: number = 0;
143
+ get valueStart(): number {
144
+ if (this.foundation) {
145
+ return this.foundation.getValueStart();
146
+ } else {
147
+ return this._valueStart;
148
+ }
149
+ }
150
+
151
+ set valueStart(value: number) {
152
+ this._valueStart = value;
153
+ this.foundation?.setValueStart(value);
154
+ }
155
+
156
+ beforeFoundationCreated() {
157
+ // assign initial values explicitly
158
+ this.endInput.setAttribute(attributes.INPUT_MIN, this.min.toString());
159
+ this.endInput.setAttribute(attributes.INPUT_MAX, this.max.toString());
160
+ this.endInput.setAttribute(attributes.INPUT_VALUE, this.value.toString());
161
+ this.endInput.setAttribute(attributes.INPUT_STEP, this.step.toString());
162
+ this.startInput?.setAttribute(attributes.INPUT_VALUE, this.valueStart.toString());
163
+ this.startInput?.setAttribute(attributes.INPUT_STEP, this.step.toString());
164
+ }
165
+
166
+ initialSyncWithDOM() {
167
+ this.disabledChanged();
168
+ this.value = this._value;
169
+ if (this.range) {
170
+ this.valueStart = this._valueStart;
171
+ }
172
+ this.foundation?.layout();
173
+ }
174
+
175
+ getDefaultFoundation() {
176
+ // DO NOT INLINE this variable. For backward compatibility, foundations take
177
+ // a Partial<MDCFooAdapter>. To ensure we don't accidentally omit any
178
+ // methods, we need a separate, strongly typed adapter variable.
179
+ const adapter: MDCSliderAdapter = {
180
+ hasClass: (className) => this.root.classList.contains(className),
181
+ addClass: (className) => {
182
+ this.root.classList.add(className);
183
+ },
184
+ removeClass: (className) => {
185
+ this.root.classList.remove(className);
186
+ },
187
+ addThumbClass: (className, thumb: Thumb) => {
188
+ this.getThumbEl(thumb)?.classList.add(className);
189
+ },
190
+ removeThumbClass: (className, thumb: Thumb) => {
191
+ this.getThumbEl(thumb)?.classList.remove(className);
192
+ },
193
+ getAttribute: (attribute) => this.root.getAttribute(attribute),
194
+ getInputValue: (thumb: Thumb) => this.getInput(thumb)?.value ?? '',
195
+ setInputValue: (value: string, thumb: Thumb) => {
196
+ const thumbInput = this.getInput(thumb);
197
+ if (thumbInput) {
198
+ thumbInput.value = value;
199
+ }
200
+ },
201
+ getInputAttribute: (attribute, thumb: Thumb) => this.getInput(thumb)?.getAttribute(attribute) ?? null,
202
+ setInputAttribute: (attribute, value, thumb: Thumb) => {
203
+ this.getInput(thumb)?.setAttribute(attribute, value);
204
+ },
205
+ removeInputAttribute: (attribute, thumb: Thumb) => {
206
+ this.getInput(thumb)?.removeAttribute(attribute);
207
+ },
208
+ focusInput: (thumb: Thumb) => { this.getInput(thumb)?.focus(); },
209
+ isInputFocused: (thumb: Thumb) => this.getInput(thumb) === document.activeElement,
210
+ shouldHideFocusStylesForPointerEvents: () => this.hideFocus,
211
+ getThumbKnobWidth: (thumb: Thumb) => {
212
+ return this.getThumbEl(thumb)?.querySelector<HTMLElement>(`.${cssClasses.THUMB_KNOB}`)!
213
+ .getBoundingClientRect()
214
+ .width ?? 0;
215
+ },
216
+ getThumbBoundingClientRect: (thumb: Thumb) => this.getThumbEl(thumb)!.getBoundingClientRect(),
217
+ getBoundingClientRect: () => this.root.getBoundingClientRect(),
218
+ getValueIndicatorContainerWidth: (thumb: Thumb) => {
219
+ return this.getThumbEl(thumb)!
220
+ .querySelector<HTMLElement>(`.${cssClasses.VALUE_INDICATOR_CONTAINER}`)!
221
+ .getBoundingClientRect()
222
+ .width;
223
+ },
224
+ isRTL: () => getComputedStyle(this.root).direction === 'rtl',
225
+ setThumbStyleProperty: (propertyName, value, thumb: Thumb) => {
226
+ this.getThumbEl(thumb)?.style.setProperty(propertyName, value);
227
+ },
228
+ removeThumbStyleProperty: (propertyName, thumb: Thumb) => {
229
+ this.getThumbEl(thumb)?.style.removeProperty(propertyName);
230
+ },
231
+ setTrackActiveStyleProperty: (propertyName, value) => {
232
+ this.trackActive.style.setProperty(propertyName, value);
233
+ },
234
+ removeTrackActiveStyleProperty: (propertyName) => {
235
+ this.trackActive.style.removeProperty(propertyName);
236
+ },
237
+ setValueIndicatorText: (value: number, thumb: Thumb) => {
238
+ const valueIndicatorEl =
239
+ this.getThumbEl(thumb)?.querySelector<HTMLElement>(
240
+ `.${cssClasses.VALUE_INDICATOR_TEXT}`);
241
+ valueIndicatorEl!.textContent = String(value);
242
+ },
243
+ getValueToAriaValueTextFn: () => this.valueToAriaValueTextFn,
244
+ updateTickMarks: (tickMarks: TickMark[]) => {
245
+ this.tickMarkStatuses = tickMarks;
246
+ },
247
+ setPointerCapture: (pointerId) => {
248
+ this.root.setPointerCapture(pointerId);
249
+ },
250
+ emitChangeEvent: (value, thumb: Thumb) => {
251
+ this.emit<MDCSliderChangeEventDetail>(events.CHANGE, { value, thumb });
252
+ },
253
+ emitInputEvent: (value, thumb: Thumb) => {
254
+ this.emit<MDCSliderChangeEventDetail>(events.INPUT, { value, thumb });
255
+ },
256
+ emitDragStartEvent: (_, thumb: Thumb) => {
257
+ // Emitting event is not yet implemented. See issue:
258
+ // https://github.com/material-components/material-components-web/issues/6448
259
+
260
+ this.getRipple(thumb)?.activate();
261
+ },
262
+ emitDragEndEvent: (_, thumb: Thumb) => {
263
+ // Emitting event is not yet implemented. See issue:
264
+ // https://github.com/material-components/material-components-web/issues/6448
265
+
266
+ this.getRipple(thumb)?.deactivate();
267
+ },
268
+ registerEventHandler: (evtType, handler) => {
269
+ this.listen(evtType, handler);
270
+ this.addEventHandler(this.root, evtType, handler);
271
+ },
272
+ deregisterEventHandler: (evtType, handler) => {
273
+ this.unlisten(evtType, handler);
274
+ this.removeEventHandler(this.root, evtType, handler);
275
+ },
276
+ registerThumbEventHandler: (thumb, evtType, handler) => {
277
+ const thumbEl = this.getThumbEl(thumb);
278
+ if (thumbEl) {
279
+ thumbEl.addEventListener(evtType, handler);
280
+ this.addEventHandler(thumbEl, evtType, handler);
281
+ }
282
+ },
283
+ deregisterThumbEventHandler: (thumb, evtType, handler) => {
284
+ const thumbEl = this.getThumbEl(thumb);
285
+ if (thumbEl) {
286
+ thumbEl.removeEventListener(evtType, handler);
287
+ this.removeEventHandler(thumbEl, evtType, handler);
288
+ }
289
+ },
290
+ registerInputEventHandler: (thumb, evtType, handler) => {
291
+ const thumbInput = this.getInput(thumb);
292
+ if (thumbInput) {
293
+ thumbInput.addEventListener(evtType, handler);
294
+ this.addEventHandler(thumbInput, evtType, handler);
295
+ }
296
+ },
297
+ deregisterInputEventHandler: (thumb, evtType, handler) => {
298
+ const thumbInput = this.getInput(thumb);
299
+ if (thumbInput) {
300
+ thumbInput.removeEventListener(evtType, handler);
301
+ this.removeEventHandler(thumbInput, evtType, handler);
302
+ }
303
+ },
304
+ registerBodyEventHandler: (evtType, handler) => {
305
+ document.body.addEventListener(evtType, handler);
306
+ this.addEventHandler(document.body, evtType, handler);
307
+ },
308
+ deregisterBodyEventHandler: (evtType, handler) => {
309
+ document.body.removeEventListener(evtType, handler);
310
+ this.removeEventHandler(document.body, evtType, handler);
311
+ },
312
+ registerWindowEventHandler: (evtType, handler) => {
313
+ window.addEventListener(evtType, handler);
314
+ this.addEventHandler(window, evtType, handler);
315
+ },
316
+ deregisterWindowEventHandler: (evtType, handler) => {
317
+ window.removeEventListener(evtType, handler);
318
+ this.removeEventHandler(window, evtType, handler);
319
+ },
320
+ // tslint:enable:object-literal-sort-keys
321
+ };
322
+ return new MdcSliderFoundationAurelia(adapter);
323
+ }
324
+
325
+ addEventHandler(element: HTMLElement | Window, evtType: EventType, handler: SpecificEventListener<EventType>) {
326
+ this.eventHandlers.push({ element, evtType, handler });
327
+ }
328
+
329
+ removeEventHandler(element: HTMLElement | Window, evtType: EventType, handler: SpecificEventListener<EventType>) {
330
+ const i = this.eventHandlers.findIndex(x => x.element === element && x.evtType === evtType && x.handler === handler);
331
+ if (i !== -1) {
332
+ this.eventHandlers.splice(i, 1);
333
+ }
334
+ }
335
+
336
+ cleanupEventHandlers() {
337
+ this.eventHandlers.forEach(x => {
338
+ x.element.removeEventListener(x.evtType, x.handler);
339
+ });
340
+ this.eventHandlers = [];
341
+ }
342
+
343
+ getThumbEl(thumb: Thumb) {
344
+ return thumb === Thumb.END ? this.endThumb : this.startThumb;
345
+ }
346
+
347
+ private getInput(thumb: Thumb) {
348
+ return thumb === Thumb.END ? this.endInput : this.startInput;
349
+ }
350
+
351
+ private getRipple(thumb: Thumb) {
352
+ return thumb === Thumb.END ? this.endRipple : this.startRipple;
353
+ }
354
+
355
+ focus() {
356
+ this.root.focus();
357
+ }
358
+
359
+ blur() {
360
+ this.root.blur();
361
+ }
362
+
363
+ }
364
+
365
+ /** @hidden */
366
+ export interface IMdcSliderElement extends HTMLElement {
367
+ value: number;
368
+ valuestart: number;
369
+ $au: {
370
+ 'au:resource:custom-element': {
371
+ viewModel: MdcSlider;
372
+ };
373
+ };
374
+ }
375
+
376
+ function defineMdcSliderElementApis(element: HTMLElement) {
377
+ Object.defineProperties(element, {
378
+ value: {
379
+ get(this: IMdcSliderElement) {
380
+ return CustomElement.for<MdcSlider>(this).viewModel.value;
381
+ },
382
+ set(this: IMdcSliderElement, value: number) {
383
+ CustomElement.for<MdcSlider>(this).viewModel.value = value;
384
+ },
385
+ configurable: true
386
+ },
387
+ valuestart: {
388
+ get(this: IMdcSliderElement) {
389
+ return CustomElement.for<MdcSlider>(this).viewModel.valueStart;
390
+ },
391
+ set(this: IMdcSliderElement, value: number) {
392
+ CustomElement.for<MdcSlider>(this).viewModel.valueStart = value;
393
+ },
394
+ configurable: true
395
+ },
396
+ focus: {
397
+ value(this: IMdcSliderElement) {
398
+ CustomElement.for<MdcSlider>(this).viewModel.focus();
399
+ },
400
+ configurable: true
401
+ },
402
+ blur: {
403
+ value(this: IMdcSliderElement) {
404
+ CustomElement.for<MdcSlider>(this).viewModel.blur();
405
+ },
406
+ configurable: true
407
+ }
408
+ });
409
+ }