@universal-material/web 3.0.8 → 3.0.10

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 (364) hide show
  1. package/.editorconfig +8 -0
  2. package/.eleventy.cjs +21 -0
  3. package/.eslintignore +6 -0
  4. package/.eslintrc.json +98 -0
  5. package/.prettierrc.json +7 -0
  6. package/.vscode/extensions.json +9 -0
  7. package/CHANGELOG.md +98 -0
  8. package/LICENSE +28 -0
  9. package/docs/.nojekyll +0 -0
  10. package/docs/api/index.html +149 -0
  11. package/docs/docs.css +185 -0
  12. package/docs/examples/index.html +75 -0
  13. package/docs/examples/name-property/index.html +65 -0
  14. package/docs/index.html +75 -0
  15. package/docs/install/index.html +53 -0
  16. package/docs/prism-okaidia.css +123 -0
  17. package/docs/src/_api-section.pug +27 -0
  18. package/docs/src/_layout.pug +182 -0
  19. package/docs/src/components/button-set/alignment.html +29 -0
  20. package/docs/src/components/button-set/stack.html +5 -0
  21. package/docs/src/components/button-set/usage.html +35 -0
  22. package/docs/src/components/button-set.pug +16 -0
  23. package/docs/src/components/cards/card-media.html +39 -0
  24. package/docs/src/components/cards/card-with-actions.html +38 -0
  25. package/docs/src/components/cards/simple-card.html +3 -0
  26. package/docs/src/components/cards.pug +15 -0
  27. package/docs/src/components/checkbox/usage.html +33 -0
  28. package/docs/src/components/checkbox.pug +7 -0
  29. package/docs/src/components/chips/chip-input.html +73 -0
  30. package/docs/src/components/chips/default-chips.html +25 -0
  31. package/docs/src/components/chips/elevated-chips.html +25 -0
  32. package/docs/src/components/chips/selected-chips.html +50 -0
  33. package/docs/src/components/chips.pug +16 -0
  34. package/docs/src/components/common-buttons/anchor-buttons.html +6 -0
  35. package/docs/src/components/common-buttons/buttons-icons.html +24 -0
  36. package/docs/src/components/common-buttons/buttons-trailing-icons.html +25 -0
  37. package/docs/src/components/common-buttons/buttons-variants.html +6 -0
  38. package/docs/src/components/common-buttons/filled-colors.html +4 -0
  39. package/docs/src/components/common-buttons.pug +22 -0
  40. package/docs/src/components/data-tables/simple-table.html +47 -0
  41. package/docs/src/components/data-tables/table-footer.html +59 -0
  42. package/docs/src/components/data-tables/table-header.html +43 -0
  43. package/docs/src/components/data-tables.pug +15 -0
  44. package/docs/src/components/datepicker.pug +133 -0
  45. package/docs/src/components/dialogs/example.html +44 -0
  46. package/docs/src/components/dialogs.pug +19 -0
  47. package/docs/src/components/dividers/no-margin.html +7 -0
  48. package/docs/src/components/dividers/usage.html +7 -0
  49. package/docs/src/components/dividers.pug +13 -0
  50. package/docs/src/components/dropdown-menus/down-end.html +10 -0
  51. package/docs/src/components/dropdown-menus/down-left.html +10 -0
  52. package/docs/src/components/dropdown-menus/down-right.html +10 -0
  53. package/docs/src/components/dropdown-menus/down-start.html +10 -0
  54. package/docs/src/components/dropdown-menus/down.html +10 -0
  55. package/docs/src/components/dropdown-menus/up-end.html +10 -0
  56. package/docs/src/components/dropdown-menus/up-left.html +10 -0
  57. package/docs/src/components/dropdown-menus/up-right.html +10 -0
  58. package/docs/src/components/dropdown-menus/up-start.html +10 -0
  59. package/docs/src/components/dropdown-menus/up.html +10 -0
  60. package/docs/src/components/expansion-panel.pug +33 -0
  61. package/docs/src/components/fab/button-colors.html +18 -0
  62. package/docs/src/components/fab/button-sizes.html +11 -0
  63. package/docs/src/components/fab/extended-buttons.html +18 -0
  64. package/docs/src/components/fab/floating-action-area.html +5 -0
  65. package/docs/src/components/fab/floating-menu.html +10 -0
  66. package/docs/src/components/fab/lowered-buttons.html +6 -0
  67. package/docs/src/components/fab.pug +25 -0
  68. package/docs/src/components/icon-buttons/anchor-buttons.html +15 -0
  69. package/docs/src/components/icon-buttons/buttons-variants.html +15 -0
  70. package/docs/src/components/icon-buttons/toggle-buttons-manual.html +44 -0
  71. package/docs/src/components/icon-buttons/toggle-buttons.html +48 -0
  72. package/docs/src/components/icon-buttons.pug +18 -0
  73. package/docs/src/components/lists/list-avatars.html +14 -0
  74. package/docs/src/components/lists/list-custom-dividers.html +23 -0
  75. package/docs/src/components/lists/list-dividers.html +17 -0
  76. package/docs/src/components/lists/list-dynamic.html +26 -0
  77. package/docs/src/components/lists/list-hover.html +17 -0
  78. package/docs/src/components/lists/list-icons.html +17 -0
  79. package/docs/src/components/lists/list-indexed.html +123 -0
  80. package/docs/src/components/lists/list-sections.html +16 -0
  81. package/docs/src/components/lists/list-three-lines.html +20 -0
  82. package/docs/src/components/lists/list-two-lines.html +20 -0
  83. package/docs/src/components/lists/list-with-action.html +26 -0
  84. package/docs/src/components/lists/list-with-activated-item.html +17 -0
  85. package/docs/src/components/lists/simple-list.html +17 -0
  86. package/docs/src/components/lists.pug +94 -0
  87. package/docs/src/components/menus.pug +55 -0
  88. package/docs/src/components/progress/circular-progress.html +13 -0
  89. package/docs/src/components/progress/determinate-progress.html +3 -0
  90. package/docs/src/components/progress/indeterminate-progress.html +3 -0
  91. package/docs/src/components/progress/progress-color.html +3 -0
  92. package/docs/src/components/progress.pug +18 -0
  93. package/docs/src/components/ripple/usage.html +9 -0
  94. package/docs/src/components/ripple.pug +10 -0
  95. package/docs/src/components/selection-controls/checkbox.html +22 -0
  96. package/docs/src/components/selection-controls/radio-button.html +36 -0
  97. package/docs/src/components/selection-controls/switch.html +12 -0
  98. package/docs/src/components/selection-controls.pug +13 -0
  99. package/docs/src/components/sliders/example.html +42 -0
  100. package/docs/src/components/sliders.pug +7 -0
  101. package/docs/src/components/snackbar/example.html +35 -0
  102. package/docs/src/components/snackbars.pug +21 -0
  103. package/docs/src/components/steppers.pug +57 -0
  104. package/docs/src/components/tabs/example.html +45 -0
  105. package/docs/src/components/tabs.pug +8 -0
  106. package/docs/src/components/text-fields.pug +88 -0
  107. package/docs/src/components/toolbars/simple-toolbar.html +33 -0
  108. package/docs/src/components/toolbars.pug +7 -0
  109. package/docs/src/content/typography/example.html +15 -0
  110. package/docs/src/content/typography.pug +8 -0
  111. package/docs/src/css/docs.scss +189 -0
  112. package/docs/src/index.pug +10 -0
  113. package/docs/src/js/docs.js +161 -0
  114. package/docs/src/js/universal-material.js +757 -0
  115. package/docs/src/js/universal-material.js.map +1 -0
  116. package/docs/src/js/universal-material.min.js +17 -0
  117. package/docs/src/js/universal-material.min.js.map +1 -0
  118. package/docs/src/layout/grid.pug +15 -0
  119. package/docs/src/utilities/background-colors/common-colors.html +7 -0
  120. package/docs/src/utilities/background-colors/theme-colors.html +16 -0
  121. package/docs/src/utilities/background-colors.pug +10 -0
  122. package/docs/src/utilities/text-and-background-colors/common-colors.html +80 -0
  123. package/docs/src/utilities/text-and-background-colors/theme-colors.html +208 -0
  124. package/docs/src/utilities/text-and-background-colors.pug +10 -0
  125. package/docs/src/utilities/text-colors/common-colors.html +12 -0
  126. package/docs/src/utilities/text-colors/emphasis-colors.html +26 -0
  127. package/docs/src/utilities/text-colors/theme-colors.html +37 -0
  128. package/docs/src/utilities/text-colors.pug +13 -0
  129. package/gulpfile.js +225 -0
  130. package/index.html +11 -0
  131. package/package.json +1 -1
  132. package/rollup.config.js +42 -0
  133. package/src/_utils.scss +20 -0
  134. package/src/_variables.scss +68 -0
  135. package/src/button/button-base.styles.scss +75 -0
  136. package/src/button/button-base.ts +147 -0
  137. package/src/button/button-set.styles.scss +35 -0
  138. package/src/button/button-set.ts +33 -0
  139. package/src/button/button.styles.scss +97 -0
  140. package/src/button/button.ts +64 -0
  141. package/src/button/fab.styles.scss +90 -0
  142. package/src/button/fab.ts +55 -0
  143. package/src/button/icon-button.styles.scss +74 -0
  144. package/src/button/icon-button.ts +72 -0
  145. package/src/card/card-content.styles.scss +11 -0
  146. package/src/card/card-content.ts +45 -0
  147. package/src/card/card-media.styles.scss +9 -0
  148. package/src/card/card-media.ts +24 -0
  149. package/src/card/card.styles.scss +27 -0
  150. package/src/card/card.ts +37 -0
  151. package/src/checkbox/checkbox.ts +77 -0
  152. package/src/container/container.styles.scss +39 -0
  153. package/src/container/container.ts +24 -0
  154. package/src/divider/divider.styles.scss +13 -0
  155. package/src/divider/divider.ts +21 -0
  156. package/src/elevation/elevation.styles.scss +31 -0
  157. package/src/elevation/elevation.ts +17 -0
  158. package/{index.js → src/index.ts} +1 -1
  159. package/src/ripple/ripple.styles.scss +80 -0
  160. package/src/ripple/ripple.ts +150 -0
  161. package/src/shared/base.styles.scss +5 -0
  162. package/src/table/table-body.styles.scss +9 -0
  163. package/src/table/table-body.ts +21 -0
  164. package/src/table/table-cell.styles.scss +9 -0
  165. package/src/table/table-cell.ts +21 -0
  166. package/src/table/table-head.styles.scss +9 -0
  167. package/src/table/table-head.ts +21 -0
  168. package/src/table/table-header-cell.styles.scss +10 -0
  169. package/src/table/table-header-cell.ts +21 -0
  170. package/src/table/table-row.styles.scss +3 -0
  171. package/src/table/table-row.ts +21 -0
  172. package/src/table/table.styles.scss +12 -0
  173. package/{table/table.js → src/table/table.ts} +15 -6
  174. package/src/theme/color.ts +6 -0
  175. package/src/theme/css-var-builder.ts +36 -0
  176. package/{theme/index.js → src/theme/index.ts} +0 -1
  177. package/src/theme/neutral-colors.ts +21 -0
  178. package/src/theme/rgb-color.ts +19 -0
  179. package/src/theme/theme-builder.ts +201 -0
  180. package/{theme/theme-color.d.ts → src/theme/theme-color.ts} +3 -2
  181. package/tsconfig.json +36 -0
  182. package/web-dev-server.config.js +25 -0
  183. package/web-test-runner.config.js +120 -0
  184. package/button/button-base.d.ts +0 -43
  185. package/button/button-base.d.ts.map +0 -1
  186. package/button/button-base.js +0 -152
  187. package/button/button-base.js.map +0 -1
  188. package/button/button-base.styles.d.ts +0 -2
  189. package/button/button-base.styles.d.ts.map +0 -1
  190. package/button/button-base.styles.js +0 -75
  191. package/button/button-base.styles.js.map +0 -1
  192. package/button/button-set.d.ts +0 -20
  193. package/button/button-set.d.ts.map +0 -1
  194. package/button/button-set.js +0 -38
  195. package/button/button-set.js.map +0 -1
  196. package/button/button-set.styles.d.ts +0 -2
  197. package/button/button-set.styles.d.ts.map +0 -1
  198. package/button/button-set.styles.js +0 -39
  199. package/button/button-set.styles.js.map +0 -1
  200. package/button/button.d.ts +0 -34
  201. package/button/button.d.ts.map +0 -1
  202. package/button/button.js +0 -64
  203. package/button/button.js.map +0 -1
  204. package/button/button.styles.d.ts +0 -2
  205. package/button/button.styles.d.ts.map +0 -1
  206. package/button/button.styles.js +0 -96
  207. package/button/button.styles.js.map +0 -1
  208. package/button/fab.d.ts +0 -31
  209. package/button/fab.d.ts.map +0 -1
  210. package/button/fab.js +0 -63
  211. package/button/fab.js.map +0 -1
  212. package/button/fab.styles.d.ts +0 -2
  213. package/button/fab.styles.d.ts.map +0 -1
  214. package/button/fab.styles.js +0 -89
  215. package/button/fab.styles.js.map +0 -1
  216. package/button/icon-button.d.ts +0 -35
  217. package/button/icon-button.d.ts.map +0 -1
  218. package/button/icon-button.js +0 -79
  219. package/button/icon-button.js.map +0 -1
  220. package/button/icon-button.styles.d.ts +0 -2
  221. package/button/icon-button.styles.d.ts.map +0 -1
  222. package/button/icon-button.styles.js +0 -70
  223. package/button/icon-button.styles.js.map +0 -1
  224. package/card/card-content.d.ts +0 -13
  225. package/card/card-content.d.ts.map +0 -1
  226. package/card/card-content.js +0 -44
  227. package/card/card-content.js.map +0 -1
  228. package/card/card-content.styles.d.ts +0 -2
  229. package/card/card-content.styles.d.ts.map +0 -1
  230. package/card/card-content.styles.js +0 -15
  231. package/card/card-content.styles.js.map +0 -1
  232. package/card/card-media.d.ts +0 -12
  233. package/card/card-media.d.ts.map +0 -1
  234. package/card/card-media.js +0 -29
  235. package/card/card-media.js.map +0 -1
  236. package/card/card-media.styles.d.ts +0 -2
  237. package/card/card-media.styles.d.ts.map +0 -1
  238. package/card/card-media.styles.js +0 -13
  239. package/card/card-media.styles.js.map +0 -1
  240. package/card/card.d.ts +0 -19
  241. package/card/card.d.ts.map +0 -1
  242. package/card/card.js +0 -40
  243. package/card/card.js.map +0 -1
  244. package/card/card.styles.d.ts +0 -2
  245. package/card/card.styles.d.ts.map +0 -1
  246. package/card/card.styles.js +0 -28
  247. package/card/card.styles.js.map +0 -1
  248. package/checkbox/checkbox.d.ts +0 -16
  249. package/checkbox/checkbox.d.ts.map +0 -1
  250. package/checkbox/checkbox.js +0 -75
  251. package/checkbox/checkbox.js.map +0 -1
  252. package/container/container.d.ts +0 -13
  253. package/container/container.d.ts.map +0 -1
  254. package/container/container.js +0 -23
  255. package/container/container.js.map +0 -1
  256. package/container/container.styles.d.ts +0 -2
  257. package/container/container.styles.d.ts.map +0 -1
  258. package/container/container.styles.js +0 -43
  259. package/container/container.styles.js.map +0 -1
  260. package/custom-elements.json +0 -3706
  261. package/divider/divider.d.ts +0 -14
  262. package/divider/divider.d.ts.map +0 -1
  263. package/divider/divider.js +0 -27
  264. package/divider/divider.js.map +0 -1
  265. package/divider/divider.styles.d.ts +0 -2
  266. package/divider/divider.styles.d.ts.map +0 -1
  267. package/divider/divider.styles.js +0 -15
  268. package/divider/divider.styles.js.map +0 -1
  269. package/elevation/elevation.d.ts +0 -11
  270. package/elevation/elevation.d.ts.map +0 -1
  271. package/elevation/elevation.js +0 -21
  272. package/elevation/elevation.js.map +0 -1
  273. package/elevation/elevation.styles.d.ts +0 -2
  274. package/elevation/elevation.styles.d.ts.map +0 -1
  275. package/elevation/elevation.styles.js +0 -28
  276. package/elevation/elevation.styles.js.map +0 -1
  277. package/index.d.ts +0 -27
  278. package/index.d.ts.map +0 -1
  279. package/index.js.map +0 -1
  280. package/ripple/ripple.d.ts +0 -25
  281. package/ripple/ripple.d.ts.map +0 -1
  282. package/ripple/ripple.js +0 -119
  283. package/ripple/ripple.js.map +0 -1
  284. package/ripple/ripple.styles.d.ts +0 -2
  285. package/ripple/ripple.styles.d.ts.map +0 -1
  286. package/ripple/ripple.styles.js +0 -74
  287. package/ripple/ripple.styles.js.map +0 -1
  288. package/shared/base.styles.d.ts +0 -2
  289. package/shared/base.styles.d.ts.map +0 -1
  290. package/shared/base.styles.js +0 -9
  291. package/shared/base.styles.js.map +0 -1
  292. package/table/table-body.d.ts +0 -11
  293. package/table/table-body.d.ts.map +0 -1
  294. package/table/table-body.js +0 -21
  295. package/table/table-body.js.map +0 -1
  296. package/table/table-body.styles.d.ts +0 -2
  297. package/table/table-body.styles.d.ts.map +0 -1
  298. package/table/table-body.styles.js +0 -11
  299. package/table/table-body.styles.js.map +0 -1
  300. package/table/table-cell.d.ts +0 -11
  301. package/table/table-cell.d.ts.map +0 -1
  302. package/table/table-cell.js +0 -21
  303. package/table/table-cell.js.map +0 -1
  304. package/table/table-cell.styles.d.ts +0 -2
  305. package/table/table-cell.styles.d.ts.map +0 -1
  306. package/table/table-cell.styles.js +0 -11
  307. package/table/table-cell.styles.js.map +0 -1
  308. package/table/table-head.d.ts +0 -11
  309. package/table/table-head.d.ts.map +0 -1
  310. package/table/table-head.js +0 -21
  311. package/table/table-head.js.map +0 -1
  312. package/table/table-head.styles.d.ts +0 -2
  313. package/table/table-head.styles.d.ts.map +0 -1
  314. package/table/table-head.styles.js +0 -11
  315. package/table/table-head.styles.js.map +0 -1
  316. package/table/table-header-cell.d.ts +0 -11
  317. package/table/table-header-cell.d.ts.map +0 -1
  318. package/table/table-header-cell.js +0 -21
  319. package/table/table-header-cell.js.map +0 -1
  320. package/table/table-header-cell.styles.d.ts +0 -2
  321. package/table/table-header-cell.styles.d.ts.map +0 -1
  322. package/table/table-header-cell.styles.js +0 -12
  323. package/table/table-header-cell.styles.js.map +0 -1
  324. package/table/table-row.d.ts +0 -11
  325. package/table/table-row.d.ts.map +0 -1
  326. package/table/table-row.js +0 -21
  327. package/table/table-row.js.map +0 -1
  328. package/table/table-row.styles.d.ts +0 -2
  329. package/table/table-row.styles.d.ts.map +0 -1
  330. package/table/table-row.styles.js +0 -7
  331. package/table/table-row.styles.js.map +0 -1
  332. package/table/table.d.ts +0 -16
  333. package/table/table.d.ts.map +0 -1
  334. package/table/table.js.map +0 -1
  335. package/table/table.styles.d.ts +0 -2
  336. package/table/table.styles.d.ts.map +0 -1
  337. package/table/table.styles.js +0 -16
  338. package/table/table.styles.js.map +0 -1
  339. package/theme/color.d.ts +0 -7
  340. package/theme/color.d.ts.map +0 -1
  341. package/theme/color.js +0 -2
  342. package/theme/color.js.map +0 -1
  343. package/theme/css-var-builder.d.ts +0 -9
  344. package/theme/css-var-builder.d.ts.map +0 -1
  345. package/theme/css-var-builder.js +0 -25
  346. package/theme/css-var-builder.js.map +0 -1
  347. package/theme/index.d.ts +0 -2
  348. package/theme/index.d.ts.map +0 -1
  349. package/theme/index.js.map +0 -1
  350. package/theme/neutral-colors.d.ts +0 -4
  351. package/theme/neutral-colors.d.ts.map +0 -1
  352. package/theme/neutral-colors.js +0 -19
  353. package/theme/neutral-colors.js.map +0 -1
  354. package/theme/rgb-color.d.ts +0 -9
  355. package/theme/rgb-color.d.ts.map +0 -1
  356. package/theme/rgb-color.js +0 -13
  357. package/theme/rgb-color.js.map +0 -1
  358. package/theme/theme-builder.d.ts +0 -27
  359. package/theme/theme-builder.d.ts.map +0 -1
  360. package/theme/theme-builder.js +0 -146
  361. package/theme/theme-builder.js.map +0 -1
  362. package/theme/theme-color.d.ts.map +0 -1
  363. package/theme/theme-color.js +0 -2
  364. package/theme/theme-color.js.map +0 -1
@@ -0,0 +1,757 @@
1
+ var __extends = (this && this.__extends) || (function () {
2
+ var extendStatics = function (d, b) {
3
+ extendStatics = Object.setPrototypeOf ||
4
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
5
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
6
+ return extendStatics(d, b);
7
+ }
8
+ return function (d, b) {
9
+ extendStatics(d, b);
10
+ function __() { this.constructor = d; }
11
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
12
+ };
13
+ })();
14
+ var __assign = (this && this.__assign) || function () {
15
+ __assign = Object.assign || function(t) {
16
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
17
+ s = arguments[i];
18
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
19
+ t[p] = s[p];
20
+ }
21
+ return t;
22
+ };
23
+ return __assign.apply(this, arguments);
24
+ };
25
+ var umd;
26
+ (function (umd) {
27
+ var EscapeKeyCode = 27;
28
+ var QuickDialogConfig = (function () {
29
+ function QuickDialogConfig() {
30
+ }
31
+ QuickDialogConfig.default = {
32
+ closeOnBackdropClick: true,
33
+ closeOnEsc: true
34
+ };
35
+ return QuickDialogConfig;
36
+ }());
37
+ umd.QuickDialogConfig = QuickDialogConfig;
38
+ var QuickDialog = (function () {
39
+ function QuickDialog(template, config, beforeCreateDialog) {
40
+ var _this = this;
41
+ this._keyDownEvent = function (event) {
42
+ if (event.which === EscapeKeyCode) {
43
+ _this._innerDialog.close();
44
+ event.preventDefault();
45
+ }
46
+ };
47
+ this._template = template;
48
+ this._config = __assign({}, QuickDialogConfig.default, config);
49
+ if (beforeCreateDialog)
50
+ beforeCreateDialog();
51
+ this._createDialog();
52
+ }
53
+ QuickDialog.prototype._createDialog = function () {
54
+ var _this = this;
55
+ var dialogContainer = document.createElement('div');
56
+ dialogContainer.innerHTML = this._template;
57
+ var dialogElement = dialogContainer.querySelector('.u-dialog');
58
+ this._configureDialog(dialogElement);
59
+ document.body.appendChild(dialogContainer);
60
+ dialogElement.addEventListener('closed', function () {
61
+ document.body.removeChild(dialogContainer);
62
+ document.body.removeEventListener('keydown', _this._keyDownEvent, true);
63
+ _this._onClosed();
64
+ });
65
+ this._innerDialog = Dialog.attach(dialogElement, {
66
+ destroyWhenClose: true
67
+ });
68
+ if (this._config.closeOnEsc) {
69
+ this._setEscapeEvent();
70
+ }
71
+ if (this._config.closeOnBackdropClick) {
72
+ dialogElement
73
+ .querySelector('.u-dialog-backdrop')
74
+ .addEventListener('click', function () { return _this._innerDialog.close(); }, true);
75
+ }
76
+ };
77
+ QuickDialog.prototype.close = function () {
78
+ this._innerDialog.close();
79
+ };
80
+ QuickDialog.prototype._onClosed = function () {
81
+ };
82
+ QuickDialog.prototype._setEscapeEvent = function () {
83
+ document.body.addEventListener('keydown', this._keyDownEvent, true);
84
+ };
85
+ return QuickDialog;
86
+ }());
87
+ umd.QuickDialog = QuickDialog;
88
+ var ConfirmDialogConfig = (function (_super) {
89
+ __extends(ConfirmDialogConfig, _super);
90
+ function ConfirmDialogConfig() {
91
+ return _super !== null && _super.apply(this, arguments) || this;
92
+ }
93
+ ConfirmDialogConfig.default = __assign({ confirmLabel: "Ok", cancelLabel: "Cancel" }, QuickDialogConfig.default);
94
+ return ConfirmDialogConfig;
95
+ }(QuickDialogConfig));
96
+ umd.ConfirmDialogConfig = ConfirmDialogConfig;
97
+ var confirmDialogTemplate = "\n<div class=\"u-dialog show\">\n <div class=\"u-dialog-backdrop\"></div>\n <div class=\"u-dialog-content\">\n <div class=\"u-dialog-header\">\n <div class=\"u-dialog-title\"></div>\n </div> \n <div class=\"u-dialog-body\"></div>\n <div class=\"u-dialog-actions\">\n <button type=\"button\" class=\"u-btn-flat u-btn-primary\" cancelButton></button>\n <button type=\"button\" class=\"u-btn-flat u-btn-primary\" confirmButton></button>\n </div>\n </div>\n</div>";
98
+ var ConfirmDialog = (function (_super) {
99
+ __extends(ConfirmDialog, _super);
100
+ function ConfirmDialog(message, config) {
101
+ var _this = _super.call(this, confirmDialogTemplate, __assign({}, ConfirmDialogConfig.default, { _message: message }, config)) || this;
102
+ _this._message = message;
103
+ return _this;
104
+ }
105
+ ConfirmDialog.open = function (message, config) {
106
+ return new ConfirmDialog(message, config);
107
+ };
108
+ ConfirmDialog.prototype._configureDialog = function (dialogElement) {
109
+ var _this = this;
110
+ var titleElement = dialogElement.querySelector('.u-dialog-title');
111
+ if (this._config.title) {
112
+ titleElement.innerText = this._config.title;
113
+ }
114
+ else {
115
+ titleElement.parentNode.removeChild(titleElement);
116
+ }
117
+ dialogElement.querySelector('.u-dialog-body').innerText = this._config['_message'];
118
+ var confirmButton = dialogElement.querySelector('[confirmButton]');
119
+ var cancelButton = dialogElement.querySelector('[cancelButton]');
120
+ confirmButton.innerText = this._config.confirmLabel;
121
+ cancelButton.innerText = this._config.cancelLabel;
122
+ Ripple.attach(confirmButton);
123
+ Ripple.attach(cancelButton);
124
+ confirmButton.addEventListener('click', function () {
125
+ _this._innerDialog.close();
126
+ if (_this._config.onConfirm)
127
+ _this._config.onConfirm();
128
+ });
129
+ cancelButton.addEventListener('click', function () {
130
+ _this._innerDialog.close();
131
+ if (_this._config.onCancel)
132
+ _this._config.onCancel();
133
+ });
134
+ };
135
+ return ConfirmDialog;
136
+ }(QuickDialog));
137
+ umd.ConfirmDialog = ConfirmDialog;
138
+ (function () {
139
+ if (typeof window['CustomEvent'] === "function")
140
+ return;
141
+ function CustomEvent(event, params) {
142
+ params = params || { bubbles: false, cancelable: false, detail: undefined };
143
+ var evt = document.createEvent('CustomEvent');
144
+ evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);
145
+ return evt;
146
+ }
147
+ CustomEvent.prototype = window['Event'].prototype;
148
+ window['CustomEvent'] = CustomEvent;
149
+ })();
150
+ var DialogConfig = (function () {
151
+ function DialogConfig() {
152
+ }
153
+ DialogConfig.default = {
154
+ destroyWhenClose: false
155
+ };
156
+ return DialogConfig;
157
+ }());
158
+ umd.DialogConfig = DialogConfig;
159
+ var closedEvent = new CustomEvent('closed');
160
+ var dialogBodyTopDividerClassName = 'u-dialog-scroll-top-divider';
161
+ var dialogBodyBottomDividerClassName = 'u-dialog-scroll-bottom-divider';
162
+ var Dialog = (function () {
163
+ function Dialog(_dialogElement, dialogConfig) {
164
+ var _this = this;
165
+ this._dialogElement = _dialogElement;
166
+ this.onAnimationEnd = function (event) {
167
+ _this._dialogElement.removeEventListener(event.type, _this.onAnimationEnd);
168
+ _this._dialogElement.dispatchEvent(closedEvent);
169
+ if (_this._dialogConfig.destroyWhenClose) {
170
+ _this._dialogElement.parentNode.removeChild(_this._dialogElement);
171
+ }
172
+ else {
173
+ _this._dialogElement.classList.remove('hide');
174
+ }
175
+ };
176
+ this.toggle = function () {
177
+ var action = _this._showing ? _this.close : _this.open;
178
+ action();
179
+ };
180
+ this.open = function () {
181
+ _this._dialogElement.classList.add('show');
182
+ _this._showing = true;
183
+ };
184
+ this.close = function () {
185
+ _this._dialogElement.classList.add('hide');
186
+ _this._dialogElement.classList.remove('show');
187
+ _this._showing = false;
188
+ _this.addAnimationEndEvents();
189
+ };
190
+ this._dialogConfig = __assign({}, DialogConfig.default, dialogConfig);
191
+ this._dialogBodyElement = this._dialogElement.querySelector('.u-dialog-body');
192
+ if (this._dialogBodyElement) {
193
+ this._setBodyDividers();
194
+ this._setDialogBodyScrollHandler();
195
+ }
196
+ }
197
+ Dialog.prototype.addAnimationEndEvents = function () {
198
+ var _this = this;
199
+ Dialog._animationEvents.forEach(function (eventName) {
200
+ _this._dialogElement.addEventListener(eventName, _this.onAnimationEnd.bind(_this));
201
+ });
202
+ };
203
+ Dialog.attach = function (element, dialogConfig) {
204
+ return new Dialog(element, dialogConfig);
205
+ };
206
+ Dialog.prototype._setBodyDividers = function () {
207
+ if (this._dialogBodyElement.scrollTop) {
208
+ this._dialogElement.classList.add(dialogBodyTopDividerClassName);
209
+ }
210
+ else {
211
+ this._dialogElement.classList.remove(dialogBodyTopDividerClassName);
212
+ }
213
+ var scrollBottom = this._dialogBodyElement.scrollTop + this._dialogBodyElement.offsetHeight;
214
+ if (scrollBottom !== this._dialogBodyElement.scrollHeight) {
215
+ this._dialogElement.classList.add(dialogBodyBottomDividerClassName);
216
+ }
217
+ else {
218
+ this._dialogElement.classList.remove(dialogBodyBottomDividerClassName);
219
+ }
220
+ };
221
+ Dialog.prototype._setDialogBodyScrollHandler = function () {
222
+ this._dialogBodyElement.addEventListener('scroll', this._setBodyDividers.bind(this), true);
223
+ };
224
+ Dialog._animationEvents = ["webkitAnimationEnd", "oanimationend", "msAnimationEnd", "animationend"];
225
+ return Dialog;
226
+ }());
227
+ umd.Dialog = Dialog;
228
+ var DropdownConfig = (function () {
229
+ function DropdownConfig() {
230
+ }
231
+ DropdownConfig.default = {};
232
+ return DropdownConfig;
233
+ }());
234
+ umd.DropdownConfig = DropdownConfig;
235
+ var closeEvent = new CustomEvent('close');
236
+ var openEvent = new CustomEvent('open');
237
+ var EnterKey = 13;
238
+ var EscapeKey = 27;
239
+ var SpaceKey = 32;
240
+ var Dropdown = (function () {
241
+ function Dropdown(_dropdownElement, dropdownConfig) {
242
+ var _this = this;
243
+ this._dropdownElement = _dropdownElement;
244
+ this.toggle = function () {
245
+ var action = _this._showing ? _this.close : _this.open;
246
+ action();
247
+ };
248
+ this.open = function () {
249
+ _this._dropdownMenu.classList.add('show');
250
+ _this._showing = true;
251
+ _this._dropdownElement.dispatchEvent(openEvent);
252
+ };
253
+ this.close = function () {
254
+ _this._dropdownMenu.classList.remove('show');
255
+ _this._showing = false;
256
+ _this._dropdownElement.dispatchEvent(closeEvent);
257
+ };
258
+ this._dropdownToggle = _dropdownElement.querySelector('.u-dropdown-toggle');
259
+ this._dropdownMenu = _dropdownElement.querySelector('.u-dropdown-menu');
260
+ if (!this._dropdownToggle || !this._dropdownToggle)
261
+ return;
262
+ this._dropdownConfig = __assign({}, DropdownConfig.default, dropdownConfig);
263
+ this._attachEvents();
264
+ }
265
+ Dropdown.attach = function (element, dropdownConfig) {
266
+ return new Dropdown(element, dropdownConfig);
267
+ };
268
+ Dropdown.prototype._attachEvents = function () {
269
+ var _this = this;
270
+ this._dropdownToggle.addEventListener('click', function (e) {
271
+ e.stopPropagation();
272
+ });
273
+ document.addEventListener('click', function () {
274
+ _this.close();
275
+ });
276
+ this._dropdownToggle.addEventListener('mouseup', function (e) {
277
+ _this.toggle();
278
+ });
279
+ this._dropdownToggle.addEventListener('keyup', function (e) {
280
+ switch (e.which) {
281
+ case EscapeKey:
282
+ _this.close();
283
+ break;
284
+ case SpaceKey:
285
+ _this.open();
286
+ break;
287
+ case EnterKey:
288
+ _this.toggle();
289
+ break;
290
+ }
291
+ });
292
+ };
293
+ Dropdown.initializeDropdowns = function () {
294
+ var dropdowns = document.querySelectorAll('.u-dropdown');
295
+ for (var i = 0; i < dropdowns.length; i++) {
296
+ var dropdown = dropdowns[i];
297
+ Dropdown.attach(dropdown);
298
+ }
299
+ };
300
+ return Dropdown;
301
+ }());
302
+ umd.Dropdown = Dropdown;
303
+ var ProgressDialogConfig = (function (_super) {
304
+ __extends(ProgressDialogConfig, _super);
305
+ function ProgressDialogConfig() {
306
+ return _super !== null && _super.apply(this, arguments) || this;
307
+ }
308
+ ProgressDialogConfig.default = __assign({}, QuickDialogConfig.default, { closeOnBackdropClick: false, closeOnEsc: false });
309
+ return ProgressDialogConfig;
310
+ }(QuickDialogConfig));
311
+ umd.ProgressDialogConfig = ProgressDialogConfig;
312
+ var progressDialogTemplate = "\n<div class=\"u-dialog u-dialog-progress show\">\n <div class=\"u-dialog-backdrop\"></div>\n <div class=\"u-dialog-content\">\n <div class=\"u-dialog-body\">\n <div class=\"preloader-wrapper\">\n <div class=\"spinner-layer\">\n <div class=\"circle-clipper left\">\n <div class=\"circle\"></div>\n </div>\n <div class=\"gap-patch\">\n <div class=\"circle\"></div>\n </div>\n <div class=\"circle-clipper right\">\n <div class=\"circle\"></div>\n </div>\n </div>\n </div>\n <div class=\"u-dialog-progress-message u-headline6 text-low-contrast text-nowrap\"></div>\n </div>\n </div>\n</div>";
313
+ var ProgressDialog = (function (_super) {
314
+ __extends(ProgressDialog, _super);
315
+ function ProgressDialog(message, config) {
316
+ var _this = _super.call(this, progressDialogTemplate, __assign({}, ProgressDialogConfig.default, { _message: message }, config)) || this;
317
+ _this._message = message;
318
+ return _this;
319
+ }
320
+ ProgressDialog.open = function (message, config) {
321
+ return new ProgressDialog(message, config);
322
+ };
323
+ ProgressDialog.prototype._configureDialog = function (dialogElement) {
324
+ var message = this._config['_message'];
325
+ if (message) {
326
+ dialogElement.querySelector('.u-dialog-progress-message').innerText = message;
327
+ }
328
+ else {
329
+ dialogElement.querySelector('.u-dialog-progress-message').style.display = 'none';
330
+ }
331
+ };
332
+ return ProgressDialog;
333
+ }(QuickDialog));
334
+ umd.ProgressDialog = ProgressDialog;
335
+ umd.RippleContainersSelector = [
336
+ '.u-btn',
337
+ '.u-btn-flat',
338
+ '.u-btn-solid',
339
+ '.u-btn-raised',
340
+ '.u-btn-outline',
341
+ '.u-floating-btn',
342
+ '.u-icon-btn',
343
+ '.u-tab',
344
+ '.u-dropdown-item',
345
+ '.u-chip-remove',
346
+ '.u-chip-hover',
347
+ '.u-text-input.u-dropdown-toggle'
348
+ ].join(',');
349
+ var RippleConfig = (function () {
350
+ function RippleConfig() {
351
+ }
352
+ return RippleConfig;
353
+ }());
354
+ umd.RippleConfig = RippleConfig;
355
+ umd.RippleConfigMap = [
356
+ {
357
+ selector: '.u-list-selectable',
358
+ subSelector: '.u-list-item',
359
+ config: null
360
+ },
361
+ {
362
+ selector: '.u-list-item',
363
+ subSelector: '.u-list-item-hover',
364
+ config: null
365
+ },
366
+ {
367
+ selector: '.u-radio',
368
+ subSelector: '.u-selection-control',
369
+ config: null
370
+ },
371
+ {
372
+ selector: '.u-switch',
373
+ subSelector: '.u-check-indicator',
374
+ config: null
375
+ },
376
+ {
377
+ selector: '.u-checkbox',
378
+ subSelector: '.u-selection-control',
379
+ config: null
380
+ }
381
+ ];
382
+ var Ripple = (function () {
383
+ function Ripple(element, config) {
384
+ var _this = this;
385
+ this.disabled = false;
386
+ this._config = __assign({}, config);
387
+ if (window.getComputedStyle(element).position !== "absolute" && window.getComputedStyle(element).position !== "fixed") {
388
+ element.style.position = "relative";
389
+ }
390
+ var isTouching = false;
391
+ element.addEventListener('mousedown', function (e) {
392
+ if (!isTouching) {
393
+ _this.createRipple(element, 'mouseup', null, e.clientX, e.clientY);
394
+ }
395
+ });
396
+ element.addEventListener('touchstart', function (e) {
397
+ isTouching = true;
398
+ _this.createRipple(element, 'touchend', function () {
399
+ setTimeout(function () {
400
+ isTouching = false;
401
+ }, 100);
402
+ }, e.touches[0].clientX, e.touches[0].clientY);
403
+ });
404
+ }
405
+ Ripple.attach = function (element, config) {
406
+ return new Ripple(element, config);
407
+ };
408
+ Ripple.prototype.createRipple = function (rippleContainer, releaseEventName, releaseCallback, pageX, pageY) {
409
+ var _this = this;
410
+ if (this.disabled)
411
+ return;
412
+ var rippleWrapper = document.createElement('DIV');
413
+ rippleWrapper.classList.add('u-ripple-wrapper');
414
+ var ripple = document.createElement('DIV');
415
+ ripple.classList.add('u-ripple');
416
+ rippleWrapper.appendChild(ripple);
417
+ rippleContainer.insertAdjacentElement('afterbegin', rippleWrapper);
418
+ if (this._config.size) {
419
+ Ripple._setElementSquareSizeAndCenter(rippleWrapper, this._config.size);
420
+ }
421
+ if (this._config.borderRadius) {
422
+ rippleWrapper.style.borderRadius = this._config.borderRadius;
423
+ }
424
+ var release = function () {
425
+ ripple.classList.add('dismiss');
426
+ if (releaseCallback) {
427
+ releaseCallback();
428
+ }
429
+ };
430
+ window.addEventListener(releaseEventName, release);
431
+ rippleContainer.addEventListener("dragover", release);
432
+ ripple.addEventListener('transitionend', function () {
433
+ if (ripple.classList.contains('dismiss')) {
434
+ rippleContainer.removeChild(rippleWrapper);
435
+ rippleContainer.removeEventListener("dragover", release);
436
+ window.removeEventListener(releaseEventName, release);
437
+ }
438
+ });
439
+ requestAnimationFrame(function () {
440
+ var clientRect = rippleContainer.getBoundingClientRect();
441
+ var largestDimensionSize = Math.max(rippleWrapper.clientWidth, rippleWrapper.clientHeight);
442
+ var rippleSize = _this._config.size || largestDimensionSize * 2;
443
+ Ripple._setElementSquareSizeAndCenter(ripple, rippleSize);
444
+ ripple.style.transitionDuration = (1080 * Math.pow(rippleSize, 0.3)) + 'ms, 750ms';
445
+ var x = (pageX - clientRect.left) + ((rippleSize - rippleContainer.clientWidth) / 2);
446
+ var y = (pageY - clientRect.top) + ((rippleSize - rippleContainer.clientHeight) / 2);
447
+ ripple.style.transformOrigin = x + "px " + y + "px";
448
+ ripple.classList.add('show');
449
+ });
450
+ };
451
+ Ripple._setElementSquareSizeAndCenter = function (element, size) {
452
+ element.style.top = "50%";
453
+ element.style.left = "50%";
454
+ element.style.width = size + 'px';
455
+ element.style.height = size + 'px';
456
+ element.style.marginLeft = -size / 2 + 'px';
457
+ element.style.marginTop = -size / 2 + 'px';
458
+ };
459
+ Ripple._initilizeRipples = function (selector, config) {
460
+ var rippleContainers = document.querySelectorAll(selector);
461
+ for (var i = 0; i < rippleContainers.length; i++) {
462
+ new Ripple(rippleContainers[i], config);
463
+ }
464
+ };
465
+ Ripple.initializeRipples = function () {
466
+ Ripple._initilizeRipples(umd.RippleContainersSelector);
467
+ for (var i = 0; i < umd.RippleConfigMap.length; i++) {
468
+ var rippleConfig = umd.RippleConfigMap[i];
469
+ var selector = rippleConfig.selector;
470
+ if (rippleConfig.subSelector) {
471
+ selector = [selector, rippleConfig.subSelector].join(' ');
472
+ }
473
+ Ripple._initilizeRipples(selector, rippleConfig.config);
474
+ }
475
+ };
476
+ return Ripple;
477
+ }());
478
+ umd.Ripple = Ripple;
479
+ var Slider = (function () {
480
+ function Slider(_sliderElement) {
481
+ var _this = this;
482
+ this._sliderElement = _sliderElement;
483
+ this._sliderTrack = _sliderElement.querySelector('.u-slider-track');
484
+ this._sliderTrackContainer = _sliderElement.querySelector('.u-slider-track-container');
485
+ this._sliderTrackMarkerContainer = _sliderElement.querySelector('.u-slider-track-marker-container');
486
+ this._sliderTrackMarker = _sliderElement.querySelector('.u-slider-track-marker');
487
+ this._sliderThumb = _sliderElement.querySelector('.u-slider-thumb');
488
+ this._sliderInputElement = _sliderElement.querySelector('input[type=range]');
489
+ this._sliderInputElement.addEventListener(window.navigator.userAgent.indexOf('Trident/') > -1 ? 'change' : 'input', function () { return _this._setThumbAndTrack(); });
490
+ this._sliderInputElement.setAttribute('aria-valuemin', this._sliderInputElement.min);
491
+ this._sliderInputElement.setAttribute('aria-valuemax', this._sliderInputElement.max);
492
+ this._sliderElement['slider'] = this;
493
+ this._setTrackMarkers();
494
+ this._setThumbAndTrack();
495
+ }
496
+ Slider.prototype._setTrackMarkers = function () {
497
+ if (!this._sliderTrackMarker || !this._sliderTrackMarkerContainer) {
498
+ return;
499
+ }
500
+ var min = parseInt(this._sliderInputElement.min, 10);
501
+ var max = parseInt(this._sliderInputElement.max, 10);
502
+ var step = parseInt(this._sliderInputElement.step || "1", 10);
503
+ for (var i = 0; i < max - min; i += step) {
504
+ var node = this._sliderTrackMarker.cloneNode(true);
505
+ this._sliderTrackMarkerContainer.appendChild(node);
506
+ }
507
+ };
508
+ Slider.prototype._setThumbAndTrack = function () {
509
+ var value = this._sliderInputElement.valueAsNumber;
510
+ var min = parseInt(this._sliderInputElement.min, 10);
511
+ var max = parseInt(this._sliderInputElement.max, 10);
512
+ this._sliderInputElement.setAttribute('aria-valuenow', value.toString());
513
+ var offset = max - min;
514
+ value -= min;
515
+ var position = value * 100 / offset;
516
+ this._sliderThumb.style.width = position + "%";
517
+ this._sliderTrack.style.width = position + "%";
518
+ };
519
+ Slider.prototype.setDisabled = function (disabled) {
520
+ if (disabled) {
521
+ this._sliderInputElement.setAttribute('aria-disabled', disabled.toString());
522
+ this._sliderInputElement.setAttribute('disabled', '');
523
+ }
524
+ else {
525
+ this._sliderInputElement.removeAttribute('aria-disabled');
526
+ this._sliderInputElement.removeAttribute('disabled');
527
+ }
528
+ };
529
+ Slider.initializeSliders = function () {
530
+ var sliders = document.querySelectorAll('.u-slider');
531
+ for (var i = 0; i < sliders.length; i++) {
532
+ var slider = sliders[i];
533
+ new Slider(slider);
534
+ }
535
+ };
536
+ return Slider;
537
+ }());
538
+ umd.Slider = Slider;
539
+ var Snackbar = (function () {
540
+ function Snackbar() {
541
+ }
542
+ Snackbar.show = function (text, duration, buttonDefinition) {
543
+ if (duration === void 0) { duration = SnackbarDuration.long; }
544
+ Snackbar._snackbarQueue.push({
545
+ text: text,
546
+ duration: duration,
547
+ buttonDefinition: buttonDefinition
548
+ });
549
+ if (!Snackbar._consuming) {
550
+ Snackbar.consumeQueue();
551
+ }
552
+ };
553
+ Snackbar.consumeQueue = function () {
554
+ if (Snackbar._snackbarQueue.length) {
555
+ Snackbar._consuming = true;
556
+ Snackbar.showNext();
557
+ }
558
+ };
559
+ Snackbar.showNext = function () {
560
+ if (Snackbar._snackbarQueue.length) {
561
+ var snackbarDefinition = Snackbar._snackbarQueue[0];
562
+ Snackbar._snackbarQueue = Snackbar._snackbarQueue.slice(1);
563
+ var snackbar_1 = Snackbar.createSnackbar();
564
+ snackbar_1.appendChild(Snackbar.createSnackbarText(snackbarDefinition.text));
565
+ if (snackbarDefinition.buttonDefinition) {
566
+ var snackbarButton = Snackbar.createButton(snackbarDefinition.buttonDefinition);
567
+ snackbar_1.appendChild(snackbarButton);
568
+ }
569
+ document.body.appendChild(snackbar_1);
570
+ setTimeout(function () {
571
+ snackbar_1.classList.add("dismiss");
572
+ Snackbar.addAnimationEndEvents(snackbar_1);
573
+ }, snackbarDefinition.duration);
574
+ }
575
+ else {
576
+ Snackbar._consuming = false;
577
+ }
578
+ };
579
+ Snackbar.createSnackbar = function () {
580
+ var snackbar = document.createElement("div");
581
+ snackbar.className = "u-snackbar";
582
+ return snackbar;
583
+ };
584
+ Snackbar.createSnackbarText = function (text) {
585
+ var snackbarText = document.createElement("div");
586
+ snackbarText.innerText = text;
587
+ snackbarText.className = "u-snackbar-text";
588
+ return snackbarText;
589
+ };
590
+ Snackbar.createButton = function (buttonDefinition) {
591
+ var snackbarButton = document.createElement("button");
592
+ snackbarButton.type = "button";
593
+ snackbarButton.className = "u-btn-flat u-btn-secondary";
594
+ snackbarButton.innerText = buttonDefinition.text;
595
+ new Ripple(snackbarButton);
596
+ if (buttonDefinition.action) {
597
+ snackbarButton.addEventListener("click", buttonDefinition.action);
598
+ }
599
+ return snackbarButton;
600
+ };
601
+ Snackbar.addAnimationEndEvents = function (snackbar) {
602
+ var _this = this;
603
+ Snackbar._animationEvents.forEach(function (eventName) {
604
+ snackbar.addEventListener(eventName, Snackbar.onAnimationEnd.bind(_this));
605
+ });
606
+ };
607
+ Snackbar.onAnimationEnd = function (event) {
608
+ event.currentTarget.removeEventListener(event.type, Snackbar.onAnimationEnd);
609
+ var element = event.currentTarget;
610
+ element.parentNode.removeChild(element);
611
+ Snackbar.showNext();
612
+ };
613
+ Snackbar._animationEvents = ["webkitAnimationEnd", "oanimationend", "msAnimationEnd", "animationend"];
614
+ Snackbar._snackbarQueue = [];
615
+ return Snackbar;
616
+ }());
617
+ umd.Snackbar = Snackbar;
618
+ var SnackbarDuration;
619
+ (function (SnackbarDuration) {
620
+ SnackbarDuration[SnackbarDuration["short"] = 2500] = "short";
621
+ SnackbarDuration[SnackbarDuration["long"] = 5000] = "long";
622
+ })(SnackbarDuration = umd.SnackbarDuration || (umd.SnackbarDuration = {}));
623
+ var SnackbarDefinition = (function () {
624
+ function SnackbarDefinition() {
625
+ }
626
+ return SnackbarDefinition;
627
+ }());
628
+ umd.SnackbarDefinition = SnackbarDefinition;
629
+ var SnackbarButtonDefinition = (function () {
630
+ function SnackbarButtonDefinition() {
631
+ }
632
+ return SnackbarButtonDefinition;
633
+ }());
634
+ umd.SnackbarButtonDefinition = SnackbarButtonDefinition;
635
+ var TabBar = (function () {
636
+ function TabBar(_tabBarElement) {
637
+ var _this = this;
638
+ this._tabBarElement = _tabBarElement;
639
+ this._tabMap = [];
640
+ this._tabClick = function (event) {
641
+ var tab = event.currentTarget;
642
+ _this.setActiveTab(tab.index);
643
+ };
644
+ this._tabIndicatorElement = _tabBarElement.querySelector('.u-tab-indicator');
645
+ this._setTabInfoMap();
646
+ this.setActiveTab(0);
647
+ if (window) {
648
+ window.addEventListener('resize', function () {
649
+ _this._updateTabIndicator();
650
+ });
651
+ }
652
+ }
653
+ TabBar.prototype.setActiveTab = function (tabIndex) {
654
+ var _this = this;
655
+ if (!isNaN(this.currentTabIndex)) {
656
+ this._tabMap[this.currentTabIndex].classList.remove('active');
657
+ }
658
+ this.currentTabIndex = tabIndex;
659
+ this._tabBarElement.dispatchEvent(new CustomEvent('tabchange', {
660
+ detail: {
661
+ tabIndex: tabIndex
662
+ }
663
+ }));
664
+ this._tabMap[this.currentTabIndex].classList.add('active');
665
+ setTimeout(function () { return _this._updateTabIndicator(); }, 100);
666
+ };
667
+ TabBar.prototype.recalculateBounds = function () {
668
+ this._tabMap.length = 0;
669
+ this._setTabInfoMap();
670
+ this._updateTabIndicator();
671
+ };
672
+ TabBar.prototype._updateTabIndicator = function () {
673
+ var tab = this._tabMap[this.currentTabIndex];
674
+ var tabBounds = tab.getBoundingClientRect();
675
+ var offset = tabBounds.left - this._tabBarElement.getBoundingClientRect().left;
676
+ this._tabIndicatorElement.style.left = offset + 'px';
677
+ this._tabIndicatorElement.style.width = tabBounds.width + 'px';
678
+ };
679
+ TabBar.prototype._setTabInfoMap = function () {
680
+ var tabs = this._tabBarElement.querySelectorAll('.u-tab');
681
+ for (var i = 0; i < tabs.length; i++) {
682
+ var tab = tabs[i];
683
+ tab.removeEventListener('click', this._tabClick);
684
+ tab.addEventListener('click', this._tabClick);
685
+ tab.index = i;
686
+ this._tabMap.push(tab);
687
+ }
688
+ };
689
+ TabBar.attach = function (tabBarElement) {
690
+ return new TabBar(tabBarElement);
691
+ };
692
+ TabBar.initializeTabBars = function () {
693
+ var tabBars = document.querySelectorAll('.u-tab-bar');
694
+ for (var i = 0; i < tabBars.length; i++) {
695
+ var tabBar = tabBars[i];
696
+ TabBar.attach(tabBar);
697
+ }
698
+ };
699
+ return TabBar;
700
+ }());
701
+ umd.TabBar = TabBar;
702
+ var TextField = (function () {
703
+ function TextField(element) {
704
+ var _this = this;
705
+ var input = element.querySelector('input, textarea, .u-text-input');
706
+ if (input) {
707
+ input.addEventListener('focus', function () {
708
+ element.classList.add('focus');
709
+ });
710
+ input.addEventListener('blur', function () {
711
+ element.classList.remove('focus');
712
+ });
713
+ this.element = element;
714
+ var prototype = void 0;
715
+ if (input.nodeName.toLowerCase() === 'input') {
716
+ prototype = HTMLInputElement.prototype;
717
+ }
718
+ else if (input.nodeName.toLowerCase() === 'textarea') {
719
+ prototype = HTMLTextAreaElement.prototype;
720
+ }
721
+ if (!prototype)
722
+ return;
723
+ input.addEventListener('input', function () {
724
+ _this.setEmpty();
725
+ });
726
+ var descriptor_1 = Object.getOwnPropertyDescriptor(prototype, 'value');
727
+ var inputSetter_1 = descriptor_1.set;
728
+ descriptor_1.set = function (val) {
729
+ Object.defineProperty(input, "value", { set: inputSetter_1 });
730
+ input.value = val;
731
+ _this.setEmpty();
732
+ Object.defineProperty(input, "value", descriptor_1);
733
+ };
734
+ Object.defineProperty(input, "value", descriptor_1);
735
+ this.input = input;
736
+ this.setEmpty();
737
+ }
738
+ }
739
+ TextField.prototype.setEmpty = function () {
740
+ if (this.input.value) {
741
+ this.element.classList.remove('empty');
742
+ }
743
+ else {
744
+ this.element.classList.add('empty');
745
+ }
746
+ };
747
+ TextField.initializeTextFields = function () {
748
+ var textFields = document.querySelectorAll('.u-text-field');
749
+ for (var i = 0; i < textFields.length; i++) {
750
+ var textField = textFields[i];
751
+ new TextField(textField);
752
+ }
753
+ };
754
+ return TextField;
755
+ }());
756
+ umd.TextField = TextField;
757
+ })(umd || (umd = {}));