@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,27 +1,30 @@
1
- import { __esDecorate, __runInitializers } from "tslib";
2
- import { MdcComponent } from '../base';
3
- import { MDCSelectIconFoundation, strings } from '@material/select';
4
- import { inject, customAttribute } from 'aurelia';
5
- export const mdcIconStrings = {
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MdcSelectIcon = exports.mdcIconStrings = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const base_1 = require("../base");
6
+ const select_1 = require("@material/select");
7
+ const aurelia_1 = require("aurelia");
8
+ exports.mdcIconStrings = {
6
9
  ATTRIBUTE: 'mdc-select-icon'
7
10
  };
8
11
  let MdcSelectIcon = (() => {
9
- let _classDecorators = [inject(Element), customAttribute(mdcIconStrings.ATTRIBUTE)];
12
+ let _classDecorators = [(0, aurelia_1.inject)(Element), (0, aurelia_1.customAttribute)(exports.mdcIconStrings.ATTRIBUTE)];
10
13
  let _classDescriptor;
11
14
  let _classExtraInitializers = [];
12
15
  let _classThis;
13
- let _classSuper = MdcComponent;
16
+ let _classSuper = base_1.MdcComponent;
14
17
  var MdcSelectIcon = class extends _classSuper {
15
18
  static { _classThis = this; }
16
19
  static {
17
20
  const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
18
- __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
21
+ tslib_1.__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
19
22
  MdcSelectIcon = _classThis = _classDescriptor.value;
20
23
  if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
21
- __runInitializers(_classThis, _classExtraInitializers);
24
+ tslib_1.__runInitializers(_classThis, _classExtraInitializers);
22
25
  }
23
26
  attaching() {
24
- this.root.classList.add(strings.LEADING_ICON_SELECTOR.replace('.', ''));
27
+ this.root.classList.add(select_1.strings.LEADING_ICON_SELECTOR.replace('.', ''));
25
28
  }
26
29
  getDefaultFoundation() {
27
30
  // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial<MDCFooAdapter>.
@@ -35,12 +38,12 @@ let MdcSelectIcon = (() => {
35
38
  },
36
39
  registerInteractionHandler: (evtType, handler) => this.listen(evtType, handler),
37
40
  deregisterInteractionHandler: (evtType, handler) => this.unlisten(evtType, handler),
38
- notifyIconAction: () => this.emit(MDCSelectIconFoundation.strings.ICON_EVENT, {} /* evtData */, true /* shouldBubble */),
41
+ notifyIconAction: () => this.emit(select_1.MDCSelectIconFoundation.strings.ICON_EVENT, {} /* evtData */, true /* shouldBubble */),
39
42
  };
40
- return new MDCSelectIconFoundation(adapter);
43
+ return new select_1.MDCSelectIconFoundation(adapter);
41
44
  }
42
45
  };
43
46
  return MdcSelectIcon = _classThis;
44
47
  })();
45
- export { MdcSelectIcon };
48
+ exports.MdcSelectIcon = MdcSelectIcon;
46
49
  //# sourceMappingURL=mdc-select-icon.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mdc-select-icon.js","sourceRoot":"","sources":["../../src/select/mdc-select-icon.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,uBAAuB,EAAwB,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC1F,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAElD,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,SAAS,EAAE,iBAAiB;CAC7B,CAAC;IAIW,aAAa;4BAFzB,MAAM,CAAC,OAAO,CAAC,EACf,eAAe,CAAC,cAAc,CAAC,SAAS,CAAC;;;;sBACP,YAAY;6BAApB,SAAQ,WAAqC;;;;YAAxE,6KAqBC;;;YArBY,uDAAa;;QACxB,SAAS;YACP,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,qBAAqB,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;QAC1E,CAAC;QAED,oBAAoB;YAClB,sGAAsG;YACtG,yGAAyG;YACzG,MAAM,OAAO,GAAyB;gBACpC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;gBAC/C,OAAO,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC;gBAC7D,UAAU,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;gBACrD,UAAU,EAAE,CAAC,OAAO,EAAE,EAAE;oBACtB,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;gBAClC,CAAC;gBACD,0BAA0B,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC;gBAC/E,4BAA4B,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;gBACnF,gBAAgB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,aAAa,EAAE,IAAI,CAAC,kBAAkB,CAAC;aACzH,CAAC;YACF,OAAO,IAAI,uBAAuB,CAAC,OAAO,CAAC,CAAC;QAC9C,CAAC;;;;SApBU,aAAa","sourcesContent":["import { MdcComponent } from '../base';\nimport { MDCSelectIconFoundation, MDCSelectIconAdapter, strings } from '@material/select';\nimport { inject, customAttribute } from 'aurelia';\n\nexport const mdcIconStrings = {\n ATTRIBUTE: 'mdc-select-icon'\n};\n\n@inject(Element)\n@customAttribute(mdcIconStrings.ATTRIBUTE)\nexport class MdcSelectIcon extends MdcComponent<MDCSelectIconFoundation> {\n attaching() {\n this.root.classList.add(strings.LEADING_ICON_SELECTOR.replace('.', ''));\n }\n\n getDefaultFoundation() {\n // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial<MDCFooAdapter>.\n // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.\n const adapter: MDCSelectIconAdapter = {\n getAttr: (attr) => this.root.getAttribute(attr),\n setAttr: (attr, value) => this.root.setAttribute(attr, value),\n removeAttr: (attr) => this.root.removeAttribute(attr),\n setContent: (content) => {\n this.root.textContent = content;\n },\n registerInteractionHandler: (evtType, handler) => this.listen(evtType, handler),\n deregisterInteractionHandler: (evtType, handler) => this.unlisten(evtType, handler),\n notifyIconAction: () => this.emit(MDCSelectIconFoundation.strings.ICON_EVENT, {} /* evtData */, true /* shouldBubble */),\n };\n return new MDCSelectIconFoundation(adapter);\n }\n}\n\n/** @hidden */\nexport interface IMdcSelectIconElement extends HTMLElement {\n $au: {\n 'au:resource:custom-attribute:mdc-select-icon': {\n viewModel: MdcSelectIcon;\n };\n };\n}\n"]}
1
+ {"version":3,"file":"mdc-select-icon.js","sourceRoot":"","sources":["../../src/select/mdc-select-icon.ts"],"names":[],"mappings":";;;;AAAA,kCAAuC;AACvC,6CAA0F;AAC1F,qCAAkD;AAErC,QAAA,cAAc,GAAG;IAC5B,SAAS,EAAE,iBAAiB;CAC7B,CAAC;IAIW,aAAa;4BAFzB,IAAA,gBAAM,EAAC,OAAO,CAAC,EACf,IAAA,yBAAe,EAAC,sBAAc,CAAC,SAAS,CAAC;;;;sBACP,mBAAY;6BAApB,SAAQ,WAAqC;;;;YAAxE,qLAqBC;;;YArBY,+DAAa;;QACxB,SAAS;YACP,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,gBAAO,CAAC,qBAAqB,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;QAC1E,CAAC;QAED,oBAAoB;YAClB,sGAAsG;YACtG,yGAAyG;YACzG,MAAM,OAAO,GAAyB;gBACpC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;gBAC/C,OAAO,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC;gBAC7D,UAAU,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;gBACrD,UAAU,EAAE,CAAC,OAAO,EAAE,EAAE;oBACtB,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;gBAClC,CAAC;gBACD,0BAA0B,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC;gBAC/E,4BAA4B,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;gBACnF,gBAAgB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,gCAAuB,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,aAAa,EAAE,IAAI,CAAC,kBAAkB,CAAC;aACzH,CAAC;YACF,OAAO,IAAI,gCAAuB,CAAC,OAAO,CAAC,CAAC;QAC9C,CAAC;;;;AApBU,sCAAa","sourcesContent":["import { MdcComponent } from '../base';\r\nimport { MDCSelectIconFoundation, MDCSelectIconAdapter, strings } from '@material/select';\r\nimport { inject, customAttribute } from 'aurelia';\r\n\r\nexport const mdcIconStrings = {\r\n ATTRIBUTE: 'mdc-select-icon'\r\n};\r\n\r\n@inject(Element)\r\n@customAttribute(mdcIconStrings.ATTRIBUTE)\r\nexport class MdcSelectIcon extends MdcComponent<MDCSelectIconFoundation> {\r\n attaching() {\r\n this.root.classList.add(strings.LEADING_ICON_SELECTOR.replace('.', ''));\r\n }\r\n\r\n getDefaultFoundation() {\r\n // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial<MDCFooAdapter>.\r\n // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.\r\n const adapter: MDCSelectIconAdapter = {\r\n getAttr: (attr) => this.root.getAttribute(attr),\r\n setAttr: (attr, value) => this.root.setAttribute(attr, value),\r\n removeAttr: (attr) => this.root.removeAttribute(attr),\r\n setContent: (content) => {\r\n this.root.textContent = content;\r\n },\r\n registerInteractionHandler: (evtType, handler) => this.listen(evtType, handler),\r\n deregisterInteractionHandler: (evtType, handler) => this.unlisten(evtType, handler),\r\n notifyIconAction: () => this.emit(MDCSelectIconFoundation.strings.ICON_EVENT, {} /* evtData */, true /* shouldBubble */),\r\n };\r\n return new MDCSelectIconFoundation(adapter);\r\n }\r\n}\r\n\r\n/** @hidden */\r\nexport interface IMdcSelectIconElement extends HTMLElement {\r\n $au: {\r\n 'au:resource:custom-attribute:mdc-select-icon': {\r\n viewModel: MdcSelectIcon;\r\n };\r\n };\r\n}\r\n"]}
@@ -1,6 +1,9 @@
1
- import { __esDecorate, __runInitializers } from "tslib";
2
- import { subscriberCollection, AccessorType, } from '@aurelia/runtime';
3
- import { CustomElement } from '@aurelia/runtime-html';
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MdcSelectValueObserver = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const runtime_1 = require("@aurelia/runtime");
6
+ const runtime_html_1 = require("@aurelia/runtime-html");
4
7
  // const hasOwn = Object.prototype.hasOwnProperty;
5
8
  const childObserverOptions = {
6
9
  childList: true,
@@ -8,7 +11,7 @@ const childObserverOptions = {
8
11
  characterData: true
9
12
  };
10
13
  let MdcSelectValueObserver = (() => {
11
- let _classDecorators = [subscriberCollection()];
14
+ let _classDecorators = [(0, runtime_1.subscriberCollection)()];
12
15
  let _classDescriptor;
13
16
  let _classExtraInitializers = [];
14
17
  let _classThis;
@@ -16,10 +19,10 @@ let MdcSelectValueObserver = (() => {
16
19
  static { _classThis = this; }
17
20
  static {
18
21
  const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
19
- __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
22
+ tslib_1.__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
20
23
  MdcSelectValueObserver = _classThis = _classDescriptor.value;
21
24
  if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
22
- __runInitializers(_classThis, _classExtraInitializers);
25
+ tslib_1.__runInitializers(_classThis, _classExtraInitializers);
23
26
  }
24
27
  currentValue = void 0;
25
28
  oldValue = void 0;
@@ -28,7 +31,7 @@ let MdcSelectValueObserver = (() => {
28
31
  hasChanges = false;
29
32
  // ObserverType.Layout is not always true
30
33
  // but for simplicity, always treat as such
31
- type = (AccessorType.Node | AccessorType.Observer | AccessorType.Layout);
34
+ type = (runtime_1.AccessorType.Node | runtime_1.AccessorType.Observer | runtime_1.AccessorType.Layout);
32
35
  arrayObserver = void 0;
33
36
  nodeObserver = void 0;
34
37
  observing = false;
@@ -44,7 +47,7 @@ let MdcSelectValueObserver = (() => {
44
47
  // do not pass the value to the element if options has never been set
45
48
  // the value will be passed on when options do arrive
46
49
  if (this.optionsWereSet) {
47
- CustomElement.for(this.obj).viewModel.setValue(this.currentValue, skipNotify);
50
+ runtime_html_1.CustomElement.for(this.obj).viewModel.setValue(this.currentValue, skipNotify);
48
51
  }
49
52
  }
50
53
  getValue() {
@@ -57,6 +60,7 @@ let MdcSelectValueObserver = (() => {
57
60
  : this.obj.value;
58
61
  }
59
62
  setValue(newValue) {
63
+ this.oldValue = this.currentValue;
60
64
  this.currentValue = newValue;
61
65
  this.hasChanges = newValue !== this.oldValue;
62
66
  // this.observeArray(newValue instanceof Array ? newValue : null);
@@ -131,7 +135,7 @@ let MdcSelectValueObserver = (() => {
131
135
  // 3. assign `value` to `this.currentValue`
132
136
  // 4. return `true` to signal value has changed
133
137
  const obj = this.obj;
134
- const options = CustomElement.for(obj).viewModel.items ?? [];
138
+ const options = runtime_html_1.CustomElement.for(obj).viewModel.items ?? [];
135
139
  const len = options.length;
136
140
  // const currentValue = this.currentValue;
137
141
  let i = 0;
@@ -185,7 +189,7 @@ let MdcSelectValueObserver = (() => {
185
189
  */
186
190
  // B. single select
187
191
  // B.1
188
- let value = null;
192
+ let value = undefined;
189
193
  while (i < len) {
190
194
  const option = options[i];
191
195
  if (option.value === this.obj.value) {
@@ -203,7 +207,7 @@ let MdcSelectValueObserver = (() => {
203
207
  return true;
204
208
  }
205
209
  start() {
206
- const vm = CustomElement.for(this.obj).viewModel;
210
+ const vm = runtime_html_1.CustomElement.for(this.obj).viewModel;
207
211
  vm.initialised.then(() => {
208
212
  (this.nodeObserver = new this.obj.ownerDocument.defaultView.MutationObserver(records => this.handleNodeChange(records)))
209
213
  .observe(vm.menu.root, childObserverOptions);
@@ -279,5 +283,5 @@ let MdcSelectValueObserver = (() => {
279
283
  };
280
284
  return MdcSelectValueObserver = _classThis;
281
285
  })();
282
- export { MdcSelectValueObserver };
286
+ exports.MdcSelectValueObserver = MdcSelectValueObserver;
283
287
  //# sourceMappingURL=mdc-select-value-observer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mdc-select-value-observer.js","sourceRoot":"","sources":["../../src/select/mdc-select-value-observer.ts"],"names":[],"mappings":"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","sourcesContent":["import {\r\n subscriberCollection,\r\n AccessorType,\r\n} from '@aurelia/runtime';\r\n\r\nimport type {\r\n ICollectionObserver,\r\n IndexMap,\r\n IObserver,\r\n IObserverLocator,\r\n ISubscriber,\r\n ISubscriberCollection,\r\n} from '@aurelia/runtime';\r\n\r\nimport { INode, CustomElement } from '@aurelia/runtime-html';\r\nimport { IMdcSelectElement, MdcSelect } from './mdc-select';\r\n\r\n// const hasOwn = Object.prototype.hasOwnProperty;\r\nconst childObserverOptions = {\r\n childList: true,\r\n subtree: true,\r\n characterData: true\r\n};\r\n\r\n// function defaultMatcher(a: unknown, b: unknown): boolean {\r\n// return a === b;\r\n// }\r\n\r\nexport interface IOptionElement extends HTMLOptionElement {\r\n model?: unknown;\r\n}\r\n\r\nexport interface MdcSelectValueObserver extends\r\n ISubscriberCollection { }\r\n\r\nexport interface INodeObserverConfigBase {\r\n /**\r\n * Indicates the list of events can be used to observe a particular property\r\n */\r\n readonly events: string[];\r\n /**\r\n * Indicates whether this property is readonly, so observer wont attempt to assign value\r\n * example: input.files\r\n */\r\n readonly readonly?: boolean;\r\n /**\r\n * A default value to assign to the corresponding property if the incoming value is null/undefined\r\n */\r\n readonly default?: unknown;\r\n}\r\n\r\n\r\nexport interface INodeObserver extends IObserver {\r\n /**\r\n * Instruct this node observer event observation behavior\r\n */\r\n useConfig(config: INodeObserverConfigBase): void;\r\n}\r\n\r\n@subscriberCollection()\r\nexport class MdcSelectValueObserver implements INodeObserver {\r\n public currentValue: unknown = void 0;\r\n public oldValue: unknown = void 0;\r\n\r\n public readonly obj: IMdcSelectElement;\r\n public config: INodeObserverConfigBase;\r\n\r\n public hasChanges: boolean = false;\r\n // ObserverType.Layout is not always true\r\n // but for simplicity, always treat as such\r\n public type: AccessorType = (AccessorType.Node | AccessorType.Observer | AccessorType.Layout) as AccessorType;\r\n\r\n public arrayObserver?: ICollectionObserver<'array'> = void 0;\r\n public nodeObserver?: MutationObserver = void 0;\r\n\r\n private observing: boolean = false;\r\n private listened: boolean = false;\r\n\r\n public constructor(\r\n obj: INode,\r\n // deepscan-disable-next-line\r\n _key: PropertyKey,\r\n config: INodeObserverConfigBase,\r\n _: IObserverLocator\r\n ) {\r\n this.obj = obj as unknown as IMdcSelectElement;\r\n this.config = config;\r\n }\r\n\r\n optionsWereSet: boolean;\r\n\r\n setElementValue(skipNotify: boolean) {\r\n // do not pass the value to the element if options has never been set\r\n // the value will be passed on when options do arrive\r\n if (this.optionsWereSet) {\r\n CustomElement.for<MdcSelect>(this.obj).viewModel.setValue(this.currentValue, skipNotify);\r\n }\r\n }\r\n\r\n public getValue(): unknown {\r\n // is it safe to assume the observer has the latest value?\r\n // todo: ability to turn on/off cache based on type\r\n return this.observing\r\n ? this.currentValue\r\n // : this.obj.multiple\r\n // ? Array.from(this.obj.options).map(o => o.value)\r\n : this.obj.value;\r\n }\r\n\r\n public setValue(newValue: unknown): void {\r\n this.currentValue = newValue;\r\n this.hasChanges = newValue !== this.oldValue;\r\n // this.observeArray(newValue instanceof Array ? newValue : null);\r\n if (this.optionsWereSet) {\r\n this.flushChanges();\r\n }\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n public flushChanges(): void {\r\n if (this.hasChanges) {\r\n this.hasChanges = false;\r\n this.synchronizeOptions();\r\n }\r\n }\r\n\r\n public handleCollectionChange(): void {\r\n // always sync \"selected\" property of <options/>\r\n // immediately whenever the array notifies its mutation\r\n this.synchronizeOptions();\r\n }\r\n\r\n public notify(): void {\r\n const oldValue = this.oldValue;\r\n const newValue = this.currentValue;\r\n if (newValue === oldValue) {\r\n return;\r\n }\r\n this.subs.notify(newValue, oldValue);\r\n }\r\n\r\n public handleEvent(): void {\r\n const shouldNotify = this.synchronizeValue();\r\n if (shouldNotify) {\r\n this.subs.notify(this.currentValue, this.oldValue);\r\n }\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n public synchronizeOptions(_indexMap?: IndexMap): void {\r\n this.setElementValue(true);\r\n // const { currentValue, obj } = this;\r\n // // const isArray = Array.isArray(currentValue);\r\n // // const matcher = obj.matcher !== void 0 ? obj.matcher : defaultMatcher;\r\n // // const matcher = defaultMatcher;\r\n // const options = CustomElement.for<MdcSelect>(obj).viewModel.items;\r\n // let i = options.length;\r\n\r\n // while (i-- > 0) {\r\n // // const option = options[i];\r\n // // const optionValue = hasOwn.call(option, 'model') ? option.model : option.value;\r\n // // const optionValue = option.value;\r\n // // if (isArray) {\r\n // // option.selected = (currentValue as unknown[]).findIndex(item => !!matcher(optionValue, item)) !== -1;\r\n // // continue;\r\n // // }\r\n // if (!this.optionsWereSet) {\r\n // this.optionsWereSet = true;\r\n // this.setElementValue(true);\r\n // }\r\n // // option.selected = !!matcher(optionValue, currentValue);\r\n // }\r\n }\r\n\r\n public synchronizeValue(): boolean {\r\n // Spec for synchronizing value from `<select/>` to `SelectObserver`\r\n // When synchronizing value to observed <select/> element, do the following steps:\r\n // A. If `<select/>` is multiple\r\n // 1. Check if current value, called `currentValue` is an array\r\n // a. If not an array, return true to signal value has changed\r\n // b. If is an array:\r\n // i. gather all current selected <option/>, in to array called `values`\r\n // ii. loop through the `currentValue` array and remove items that are nolonger selected based on matcher\r\n // iii. loop through the `values` array and add items that are selected based on matcher\r\n // iv. Return false to signal value hasn't changed\r\n // B. If the select is single\r\n // 1. Let `value` equal the first selected option, if no option selected, then `value` is `null`\r\n // 2. assign `this.currentValue` to `this.oldValue`\r\n // 3. assign `value` to `this.currentValue`\r\n // 4. return `true` to signal value has changed\r\n const obj = this.obj;\r\n const options = CustomElement.for<MdcSelect>(obj).viewModel.items ?? [];\r\n const len = options.length;\r\n // const currentValue = this.currentValue;\r\n let i = 0;\r\n\r\n /*\r\n if (obj.multiple) {\r\n // A.\r\n if (!(currentValue instanceof Array)) {\r\n // A.1.a\r\n return true;\r\n }\r\n // A.1.b\r\n // multi select\r\n let option: IOptionElement;\r\n const matcher = obj.matcher ?? defaultMatcher;\r\n // A.1.b.i\r\n const values: unknown[] = [];\r\n while (i < len) {\r\n option = options[i];\r\n if (option.selected) {\r\n values.push(hasOwn.call(option, 'model')\r\n ? option.model\r\n : option.value\r\n );\r\n }\r\n ++i;\r\n }\r\n // A.1.b.ii\r\n i = 0;\r\n while (i < currentValue.length) {\r\n const a = currentValue[i];\r\n // Todo: remove arrow fn\r\n if (values.findIndex(b => !!matcher(a, b)) === -1) {\r\n currentValue.splice(i, 1);\r\n } else {\r\n ++i;\r\n }\r\n }\r\n // A.1.b.iii\r\n i = 0;\r\n while (i < values.length) {\r\n const a = values[i];\r\n // Todo: remove arrow fn\r\n if (currentValue.findIndex(b => !!matcher(a, b)) === -1) {\r\n currentValue.push(a);\r\n }\r\n ++i;\r\n }\r\n // A.1.b.iv\r\n return false;\r\n }\r\n */\r\n // B. single select\r\n // B.1\r\n let value: unknown = null;\r\n while (i < len) {\r\n const option = options[i];\r\n if (option.value === this.obj.value) {\r\n // value = hasOwn.call(option, 'model') ? option.model : option.value;\r\n value = option.value;\r\n break;\r\n }\r\n ++i;\r\n }\r\n // B.2\r\n this.oldValue = this.currentValue;\r\n // B.3\r\n this.currentValue = value;\r\n // B.4\r\n return true;\r\n }\r\n\r\n private start(): void {\r\n const vm = CustomElement.for<MdcSelect>(this.obj).viewModel;\r\n vm.initialised.then(() => {\r\n (this.nodeObserver = new this.obj.ownerDocument.defaultView!.MutationObserver(records => this.handleNodeChange(records)))\r\n .observe(vm.menu.root, childObserverOptions);\r\n // this.observeArray(this.currentValue instanceof Array ? this.currentValue : null);\r\n this.observing = true;\r\n if (vm.items?.length) {\r\n this.optionsWereSet = true;\r\n this.synchronizeOptions();\r\n }\r\n });\r\n }\r\n\r\n private stop(): void {\r\n this.optionsWereSet = false;\r\n this.nodeObserver?.disconnect();\r\n this.arrayObserver?.unsubscribe(this);\r\n this.nodeObserver\r\n = this.arrayObserver\r\n = void 0;\r\n this.observing = false;\r\n }\r\n\r\n // todo: observe all kind of collection\r\n // private observeArray(array: unknown[] | null): void {\r\n // this.arrayObserver?.unsubscribe(this);\r\n // this.arrayObserver = void 0;\r\n // if (array !== null) {\r\n // if (!this.obj.multiple) {\r\n // throw new Error('Only null or Array instances can be bound to a multi-select.');\r\n // }\r\n // (this.arrayObserver = this.observerLocator.getArrayObserver(array)).subscribe(this);\r\n // }\r\n // }\r\n\r\n public handleNodeChange(records: MutationRecord[]): void {\r\n if (records.find(x => x.type === 'childList'\r\n && (Array.from(x.addedNodes).find(y => (y as HTMLElement).tagName === 'MDC-LIST-ITEM')\r\n || Array.from(x.removedNodes).find(y => (y as HTMLElement).tagName === 'MDC-LIST-ITEM'))\r\n )) {\r\n this.optionsWereSet = true;\r\n this.synchronizeOptions();\r\n const shouldNotify = this.synchronizeValue();\r\n if (shouldNotify) {\r\n this.notify();\r\n }\r\n }\r\n }\r\n\r\n public subscribe(subscriber: ISubscriber): void {\r\n if (this.subs.add(subscriber) && this.subs.count === 1) {\r\n for (const e of this.config.events) {\r\n this.obj.addEventListener(e, this);\r\n }\r\n this.listened = true;\r\n this.start();\r\n }\r\n }\r\n\r\n public unsubscribe(subscriber: ISubscriber): void {\r\n if (this.subs.remove(subscriber) && this.subs.count === 0) {\r\n for (const e of this.config.events) {\r\n this.obj.removeEventListener(e, this);\r\n }\r\n this.listened = false;\r\n this.stop();\r\n }\r\n }\r\n\r\n useConfig(config: INodeObserverConfigBase): void {\r\n this.config = config;\r\n if (this.listened) {\r\n for (const e of this.config.events) {\r\n this.obj.removeEventListener(e, this);\r\n }\r\n for (const e of this.config.events) {\r\n this.obj.addEventListener(e, this);\r\n }\r\n }\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"mdc-select-value-observer.js","sourceRoot":"","sources":["../../src/select/mdc-select-value-observer.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n subscriberCollection,\n AccessorType,\n} from '@aurelia/runtime';\n\nimport type {\n ICollectionObserver,\n IndexMap,\n IObserver,\n IObserverLocator,\n ISubscriber,\n ISubscriberCollection,\n} from '@aurelia/runtime';\n\nimport { INode, CustomElement } from '@aurelia/runtime-html';\nimport { IMdcSelectElement, MdcSelect } from './mdc-select';\n\n// const hasOwn = Object.prototype.hasOwnProperty;\nconst childObserverOptions = {\n childList: true,\n subtree: true,\n characterData: true\n};\n\n// function defaultMatcher(a: unknown, b: unknown): boolean {\n// return a === b;\n// }\n\nexport interface IOptionElement extends HTMLOptionElement {\n model?: unknown;\n}\n\nexport interface MdcSelectValueObserver extends\n ISubscriberCollection { }\n\nexport interface INodeObserverConfigBase {\n /**\n * Indicates the list of events can be used to observe a particular property\n */\n readonly events: string[];\n /**\n * Indicates whether this property is readonly, so observer wont attempt to assign value\n * example: input.files\n */\n readonly readonly?: boolean;\n /**\n * A default value to assign to the corresponding property if the incoming value is null/undefined\n */\n readonly default?: unknown;\n}\n\n\nexport interface INodeObserver extends IObserver {\n /**\n * Instruct this node observer event observation behavior\n */\n useConfig(config: INodeObserverConfigBase): void;\n}\n\n@subscriberCollection()\nexport class MdcSelectValueObserver implements INodeObserver {\n public currentValue: unknown = void 0;\n public oldValue: unknown = void 0;\n\n public readonly obj: IMdcSelectElement;\n public config: INodeObserverConfigBase;\n\n public hasChanges: boolean = false;\n // ObserverType.Layout is not always true\n // but for simplicity, always treat as such\n public type: AccessorType = (AccessorType.Node | AccessorType.Observer | AccessorType.Layout) as AccessorType;\n\n public arrayObserver?: ICollectionObserver<'array'> = void 0;\n public nodeObserver?: MutationObserver = void 0;\n\n private observing: boolean = false;\n private listened: boolean = false;\n\n public constructor(\n obj: INode,\n // deepscan-disable-next-line\n _key: PropertyKey,\n config: INodeObserverConfigBase,\n _: IObserverLocator\n ) {\n this.obj = obj as unknown as IMdcSelectElement;\n this.config = config;\n }\n\n optionsWereSet: boolean;\n\n setElementValue(skipNotify: boolean) {\n // do not pass the value to the element if options has never been set\n // the value will be passed on when options do arrive\n if (this.optionsWereSet) {\n CustomElement.for<MdcSelect>(this.obj).viewModel.setValue(this.currentValue, skipNotify);\n }\n }\n\n public getValue(): unknown {\n // is it safe to assume the observer has the latest value?\n // todo: ability to turn on/off cache based on type\n return this.observing\n ? this.currentValue\n // : this.obj.multiple\n // ? Array.from(this.obj.options).map(o => o.value)\n : this.obj.value;\n }\n\n public setValue(newValue: unknown): void {\n this.oldValue = this.currentValue;\n this.currentValue = newValue;\n this.hasChanges = newValue !== this.oldValue;\n // this.observeArray(newValue instanceof Array ? newValue : null);\n if (this.optionsWereSet) {\n this.flushChanges();\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n public flushChanges(): void {\n if (this.hasChanges) {\n this.hasChanges = false;\n this.synchronizeOptions();\n }\n }\n\n public handleCollectionChange(): void {\n // always sync \"selected\" property of <options/>\n // immediately whenever the array notifies its mutation\n this.synchronizeOptions();\n }\n\n public notify(): void {\n const oldValue = this.oldValue;\n const newValue = this.currentValue;\n if (newValue === oldValue) {\n return;\n }\n this.subs.notify(newValue, oldValue);\n }\n\n public handleEvent(): void {\n const shouldNotify = this.synchronizeValue();\n if (shouldNotify) {\n this.subs.notify(this.currentValue, this.oldValue);\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n public synchronizeOptions(_indexMap?: IndexMap): void {\n this.setElementValue(true);\n // const { currentValue, obj } = this;\n // // const isArray = Array.isArray(currentValue);\n // // const matcher = obj.matcher !== void 0 ? obj.matcher : defaultMatcher;\n // // const matcher = defaultMatcher;\n // const options = CustomElement.for<MdcSelect>(obj).viewModel.items;\n // let i = options.length;\n\n // while (i-- > 0) {\n // // const option = options[i];\n // // const optionValue = hasOwn.call(option, 'model') ? option.model : option.value;\n // // const optionValue = option.value;\n // // if (isArray) {\n // // option.selected = (currentValue as unknown[]).findIndex(item => !!matcher(optionValue, item)) !== -1;\n // // continue;\n // // }\n // if (!this.optionsWereSet) {\n // this.optionsWereSet = true;\n // this.setElementValue(true);\n // }\n // // option.selected = !!matcher(optionValue, currentValue);\n // }\n }\n\n public synchronizeValue(): boolean {\n // Spec for synchronizing value from `<select/>` to `SelectObserver`\n // When synchronizing value to observed <select/> element, do the following steps:\n // A. If `<select/>` is multiple\n // 1. Check if current value, called `currentValue` is an array\n // a. If not an array, return true to signal value has changed\n // b. If is an array:\n // i. gather all current selected <option/>, in to array called `values`\n // ii. loop through the `currentValue` array and remove items that are nolonger selected based on matcher\n // iii. loop through the `values` array and add items that are selected based on matcher\n // iv. Return false to signal value hasn't changed\n // B. If the select is single\n // 1. Let `value` equal the first selected option, if no option selected, then `value` is `null`\n // 2. assign `this.currentValue` to `this.oldValue`\n // 3. assign `value` to `this.currentValue`\n // 4. return `true` to signal value has changed\n const obj = this.obj;\n const options = CustomElement.for<MdcSelect>(obj).viewModel.items ?? [];\n const len = options.length;\n // const currentValue = this.currentValue;\n let i = 0;\n\n /*\n if (obj.multiple) {\n // A.\n if (!(currentValue instanceof Array)) {\n // A.1.a\n return true;\n }\n // A.1.b\n // multi select\n let option: IOptionElement;\n const matcher = obj.matcher ?? defaultMatcher;\n // A.1.b.i\n const values: unknown[] = [];\n while (i < len) {\n option = options[i];\n if (option.selected) {\n values.push(hasOwn.call(option, 'model')\n ? option.model\n : option.value\n );\n }\n ++i;\n }\n // A.1.b.ii\n i = 0;\n while (i < currentValue.length) {\n const a = currentValue[i];\n // Todo: remove arrow fn\n if (values.findIndex(b => !!matcher(a, b)) === -1) {\n currentValue.splice(i, 1);\n } else {\n ++i;\n }\n }\n // A.1.b.iii\n i = 0;\n while (i < values.length) {\n const a = values[i];\n // Todo: remove arrow fn\n if (currentValue.findIndex(b => !!matcher(a, b)) === -1) {\n currentValue.push(a);\n }\n ++i;\n }\n // A.1.b.iv\n return false;\n }\n */\n // B. single select\n // B.1\n let value: unknown = undefined;\n while (i < len) {\n const option = options[i];\n if (option.value === this.obj.value) {\n // value = hasOwn.call(option, 'model') ? option.model : option.value;\n value = option.value;\n break;\n }\n ++i;\n }\n // B.2\n this.oldValue = this.currentValue;\n // B.3\n this.currentValue = value;\n // B.4\n return true;\n }\n\n private start(): void {\n const vm = CustomElement.for<MdcSelect>(this.obj).viewModel;\n vm.initialised.then(() => {\n (this.nodeObserver = new this.obj.ownerDocument.defaultView!.MutationObserver(records => this.handleNodeChange(records)))\n .observe(vm.menu.root, childObserverOptions);\n // this.observeArray(this.currentValue instanceof Array ? this.currentValue : null);\n this.observing = true;\n if (vm.items?.length) {\n this.optionsWereSet = true;\n this.synchronizeOptions();\n }\n });\n }\n\n private stop(): void {\n this.optionsWereSet = false;\n this.nodeObserver?.disconnect();\n this.arrayObserver?.unsubscribe(this);\n this.nodeObserver\n = this.arrayObserver\n = void 0;\n this.observing = false;\n }\n\n // todo: observe all kind of collection\n // private observeArray(array: unknown[] | null): void {\n // this.arrayObserver?.unsubscribe(this);\n // this.arrayObserver = void 0;\n // if (array !== null) {\n // if (!this.obj.multiple) {\n // throw new Error('Only null or Array instances can be bound to a multi-select.');\n // }\n // (this.arrayObserver = this.observerLocator.getArrayObserver(array)).subscribe(this);\n // }\n // }\n\n public handleNodeChange(records: MutationRecord[]): void {\n if (records.find(x => x.type === 'childList'\n && (Array.from(x.addedNodes).find(y => (y as HTMLElement).tagName === 'MDC-LIST-ITEM')\n || Array.from(x.removedNodes).find(y => (y as HTMLElement).tagName === 'MDC-LIST-ITEM'))\n )) {\n this.optionsWereSet = true;\n this.synchronizeOptions();\n const shouldNotify = this.synchronizeValue();\n if (shouldNotify) {\n this.notify();\n }\n }\n }\n\n public subscribe(subscriber: ISubscriber): void {\n if (this.subs.add(subscriber) && this.subs.count === 1) {\n for (const e of this.config.events) {\n this.obj.addEventListener(e, this);\n }\n this.listened = true;\n this.start();\n }\n }\n\n public unsubscribe(subscriber: ISubscriber): void {\n if (this.subs.remove(subscriber) && this.subs.count === 0) {\n for (const e of this.config.events) {\n this.obj.removeEventListener(e, this);\n }\n this.listened = false;\n this.stop();\n }\n }\n\n useConfig(config: INodeObserverConfigBase): void {\n this.config = config;\n if (this.listened) {\n for (const e of this.config.events) {\n this.obj.removeEventListener(e, this);\n }\n for (const e of this.config.events) {\n this.obj.addEventListener(e, this);\n }\n }\n }\n}\n"]}
@@ -1,38 +1,38 @@
1
- <template class="
2
- mdc-select
3
- mdc-select--${outlined ? 'outlined' : 'filled'}
4
- ${leadingIcon ? 'mdc-select--with-leading-icon' : ''}
5
- ${required ? 'mdc-select--required' : ''}
6
- " role="button" aria-haspopup="listbox">
7
- <div class="mdc-select__anchor" ref="selectAnchor" mdc-ripple="no-class.bind: true;" change.trigger="handleChange()"
8
- focus.trigger="handleFocus()" blur.trigger="handleBlur()" keydown.trigger="handleKeydown($event)"
9
- click.trigger="handleClick($event)">
10
- <span class="mdc-select__ripple" if.bind="!outlined"></span>
11
- <au-slot name="leading-icon"></au-slot>
12
- <span class="mdc-select__selected-text-container">
13
- <span class="mdc-select__selected-text" ref="selectedText"></span>
14
- </span>
15
- <span class="mdc-select__dropdown-icon">
16
- <svg class="mdc-select__dropdown-icon-graphic" viewBox="7 10 10 5">
17
- <polygon class="mdc-select__dropdown-icon-inactive" stroke="none" fill-rule="evenodd" points="7 10 12 15 17 10">
18
- </polygon>
19
- <polygon class="mdc-select__dropdown-icon-active" stroke="none" fill-rule="evenodd" points="7 15 12 10 17 15">
20
- </polygon>
21
- </svg>
22
- </span>
23
- <mdc-floating-label if.bind="label && !outlined" for="${id}" component.ref="mdcLabel">${label}
24
- </mdc-floating-label>
25
- <mdc-line-ripple if.bind="!outlined" component.ref="lineRipple"></mdc-line-ripple>
26
- <mdc-notched-outline if.bind="outlined" component.ref="outline">
27
- <mdc-floating-label if.bind="label" for="${id}" component.ref="mdcLabel">${label}</mdc-floating-label>
28
- </mdc-notched-outline>
29
- </div>
30
-
31
- <mdc-menu class="mdc-select__menu ${naturalWidth || hoistToBody || fixed ? '' : 'mdc-menu-surface--fullwidth'}"
32
- component.ref="menu" ref="menuElement" typeahead mdcmenusurface:closed.trigger="handleMenuClosed()"
33
- anchor-margin.bind="anchorMargin" mdcmenusurface:opened.trigger="handleMenuOpened()"
34
- mdcmenu:selected.trigger="handleMenuItemAction($event)" mdclist:itemschanged.trigger="handleItemsChanged($event)"
35
- hoist-to-body.bind="hoistToBody" fixed.bind="fixed">
36
- <au-slot></au-slot>
37
- </mdc-menu>
38
- </template>
1
+ <template class="
2
+ mdc-select
3
+ mdc-select--${outlined ? 'outlined' : 'filled'}
4
+ ${leadingIcon ? 'mdc-select--with-leading-icon' : ''}
5
+ ${required ? 'mdc-select--required' : ''}
6
+ " role="button" aria-haspopup="listbox">
7
+ <div class="mdc-select__anchor" ref="selectAnchor" mdc-ripple="no-class.bind: true;" change.trigger="handleChange()"
8
+ focus.trigger="handleFocus()" blur.trigger="handleBlur()" keydown.trigger="handleKeydown($event)"
9
+ click.trigger="handleClick($event)">
10
+ <span class="mdc-select__ripple" if.bind="!outlined"></span>
11
+ <au-slot name="leading-icon"></au-slot>
12
+ <span class="mdc-select__selected-text-container">
13
+ <span class="mdc-select__selected-text" ref="selectedText"></span>
14
+ </span>
15
+ <span class="mdc-select__dropdown-icon">
16
+ <svg class="mdc-select__dropdown-icon-graphic" viewBox="7 10 10 5">
17
+ <polygon class="mdc-select__dropdown-icon-inactive" stroke="none" fill-rule="evenodd" points="7 10 12 15 17 10">
18
+ </polygon>
19
+ <polygon class="mdc-select__dropdown-icon-active" stroke="none" fill-rule="evenodd" points="7 15 12 10 17 15">
20
+ </polygon>
21
+ </svg>
22
+ </span>
23
+ <mdc-floating-label if.bind="label && !outlined" for="${id}" component.ref="mdcLabel">${label}
24
+ </mdc-floating-label>
25
+ <mdc-line-ripple if.bind="!outlined" component.ref="lineRipple"></mdc-line-ripple>
26
+ <mdc-notched-outline if.bind="outlined" component.ref="outline">
27
+ <mdc-floating-label if.bind="label" for="${id}" component.ref="mdcLabel">${label}</mdc-floating-label>
28
+ </mdc-notched-outline>
29
+ </div>
30
+
31
+ <mdc-menu class="mdc-select__menu ${naturalWidth || hoistToBody || fixed ? '' : 'mdc-menu-surface--fullwidth'}"
32
+ component.ref="menu" ref="menuElement" typeahead mdcmenusurface:closed.trigger="handleMenuClosed()"
33
+ anchor-margin.bind="anchorMargin" mdcmenusurface:opened.trigger="handleMenuOpened()"
34
+ mdcmenu:selected.trigger="handleMenuItemAction($event)" mdclist:itemschanged.trigger="handleItemsChanged($event)"
35
+ hoist-to-body.bind="hoistToBody" fixed.bind="fixed">
36
+ <au-slot></au-slot>
37
+ </mdc-menu>
38
+ </template>