@shortfuse/materialdesignweb 0.3.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.json +136 -30
- package/.stylelintrc.json +6 -40
- package/.vscode/launch.json +20 -5
- package/CHANGELOG.md +24 -0
- package/README.md +12 -9
- package/adapters/datatable/column.js +82 -74
- package/adapters/datatable/index.js +173 -131
- package/adapters/dom/index.js +529 -75
- package/adapters/list/index.js +25 -12
- package/adapters/search/index.js +13 -13
- package/components/appbar/_spec.scss +87 -64
- package/components/appbar/index.scss +2 -2
- package/components/banner/_spec.scss +8 -8
- package/components/banner/index.scss +2 -2
- package/components/bottomnav/_spec.scss +22 -17
- package/components/bottomnav/index.js +61 -52
- package/components/bottomnav/index.scss +2 -2
- package/components/bottomnav/item.js +44 -25
- package/components/button/README.md +14 -14
- package/components/button/_spec.scss +23 -22
- package/components/button/_theme.scss +37 -21
- package/components/button/index.eta +32 -0
- package/components/button/index.js +12 -12
- package/components/button/index.scss +2 -2
- package/components/card/_spec.scss +40 -36
- package/components/card/index.scss +2 -2
- package/components/chip/_spec.scss +7 -8
- package/components/chip/_theme.scss +31 -31
- package/components/chip/index.js +3 -2
- package/components/chip/index.scss +2 -2
- package/components/chip/item.js +1 -16
- package/components/datatable/_spec.scss +71 -85
- package/components/datatable/_theme.scss +61 -156
- package/components/datatable/cell.js +45 -0
- package/components/datatable/columnheader.js +47 -0
- package/components/datatable/index.js +279 -366
- package/components/datatable/index.scss +2 -2
- package/components/datatable/row.js +49 -0
- package/components/datatable/rowheader.js +18 -0
- package/components/dialog/_spec.scss +61 -41
- package/components/dialog/index.js +325 -297
- package/components/dialog/index.scss +2 -2
- package/components/divider/_spec.scss +8 -6
- package/components/divider/index.scss +2 -2
- package/components/elevation/_spec.scss +2 -2
- package/components/elevation/index.scss +2 -2
- package/components/fab/_spec.scss +23 -24
- package/components/fab/index.js +50 -50
- package/components/fab/index.scss +2 -2
- package/components/grid/_spec.scss +33 -31
- package/components/grid/index.scss +2 -2
- package/components/layout/_mixins.scss +5 -5
- package/components/layout/_spec.scss +206 -176
- package/components/layout/_theme.scss +14 -16
- package/components/layout/index.js +181 -153
- package/components/layout/index.scss +2 -2
- package/components/list/_spec.scss +117 -104
- package/components/list/_theme.scss +31 -34
- package/components/list/content.js +68 -52
- package/components/list/index.js +194 -61
- package/components/list/index.scss +2 -2
- package/components/list/item.js +136 -12
- package/components/list/secondary.js +46 -0
- package/components/menu/_spec.scss +32 -19
- package/components/menu/index.js +242 -229
- package/components/menu/index.scss +2 -2
- package/components/menu/item.js +95 -110
- package/components/progress/_spec.scss +35 -27
- package/components/progress/index.js +21 -0
- package/components/progress/index.scss +2 -1
- package/components/selection/_spec.scss +242 -224
- package/components/selection/_theme.scss +100 -95
- package/components/selection/index.eta +60 -0
- package/components/selection/index.js +76 -0
- package/components/selection/index.pug +15 -8
- package/components/selection/index.scss +2 -2
- package/components/selection/input.js +56 -0
- package/components/selection/radiogroup.js +47 -0
- package/components/slider/_spec.scss +10 -8
- package/components/slider/index.scss +2 -2
- package/components/snackbar/_spec.scss +22 -21
- package/components/snackbar/index.js +102 -111
- package/components/snackbar/index.scss +2 -2
- package/components/tab/_spec.scss +20 -19
- package/components/tab/content.js +41 -40
- package/components/tab/index.js +192 -99
- package/components/tab/index.scss +2 -2
- package/components/tab/item.js +38 -55
- package/components/tab/list.js +96 -72
- package/components/tab/panel.js +12 -13
- package/components/template/_theme.scss +11 -11
- package/components/textfield/_mixins.scss +52 -0
- package/components/textfield/_spec.scss +215 -266
- package/components/textfield/_theme.scss +95 -72
- package/components/textfield/index.eta +74 -0
- package/components/textfield/index.js +63 -57
- package/components/textfield/index.scss +2 -2
- package/components/tooltip/_spec.scss +27 -25
- package/components/tooltip/index.scss +2 -2
- package/components/type/_spec.scss +51 -38
- package/components/type/index.scss +2 -2
- package/core/_breakpoint.scss +75 -91
- package/core/_elevation.scss +10 -10
- package/core/_length.scss +9 -0
- package/core/_motion.scss +14 -14
- package/core/_platform.scss +9 -15
- package/core/_type.scss +33 -32
- package/core/aria/attributes.js +125 -25
- package/core/aria/button.js +23 -23
- package/core/aria/keyboard.js +93 -0
- package/core/aria/rovingtabindex.js +69 -154
- package/core/aria/tab.js +31 -28
- package/core/color/_theme.scss +240 -280
- package/core/color/index.scss +2 -2
- package/core/document/index.js +39 -0
- package/core/dom.js +12 -12
- package/core/overlay/_spec.scss +0 -3
- package/core/overlay/_theme.scss +56 -74
- package/core/overlay/index.js +49 -18
- package/core/overlay/index.scss +2 -2
- package/core/ripple/_spec.scss +22 -39
- package/core/ripple/_theme.scss +13 -13
- package/core/ripple/index.js +137 -134
- package/core/ripple/index.scss +2 -2
- package/core/theme/_config.scss +2 -0
- package/core/theme/_mixins.scss +172 -0
- package/core/theme/_palettes.scss +155 -135
- package/core/theme/_variables.scss +24 -15
- package/core/theme/index.js +50 -0
- package/core/throttler.js +1 -1
- package/core/transition/index.js +36 -20
- package/{docs-src → docs}/_flex.scss +0 -0
- package/{docs-src → docs}/_menuoptions.js +21 -34
- package/{docs-src → docs}/_mixins.pug +39 -26
- package/docs/_partials/_androidnavbar.eta +5 -0
- package/docs/_partials/_androidstatusbar.eta +13 -0
- package/docs/_partials/_appbar.eta +29 -0
- package/docs/_partials/_buttontest.eta +31 -0
- package/docs/_partials/_header.eta +149 -0
- package/docs/_partials/_navlistitem.eta +16 -0
- package/docs/_partials/_target.eta +1 -0
- package/{docs-src → docs}/_sample-utils.js +8 -6
- package/{docs-src → docs}/_storage.js +0 -0
- package/{docs-src → docs}/docs.scss +5 -2
- package/docs/index.eta +16 -0
- package/{docs-src → docs}/index.js +0 -0
- package/docs/pages/appbar.eta +114 -0
- package/{docs-src/components → docs/pages}/appbar.js +0 -0
- package/{docs-src/components → docs/pages}/appbar.pug +15 -18
- package/docs/pages/bottomnav.eta +188 -0
- package/{docs-src/components → docs/pages}/bottomnav.js +23 -24
- package/{docs-src/components → docs/pages}/bottomnav.pug +4 -4
- package/docs/pages/button.eta +124 -0
- package/{docs-src/components → docs/pages}/button.js +19 -19
- package/{docs-src/components → docs/pages}/button.pug +15 -15
- package/docs/pages/card.eta +90 -0
- package/{docs-src/components → docs/pages}/card.js +3 -3
- package/{docs-src/components → docs/pages}/card.pug +7 -7
- package/docs/pages/chip.eta +122 -0
- package/{docs-src/components → docs/pages}/chip.js +3 -6
- package/{docs-src/components → docs/pages}/chip.pug +2 -2
- package/docs/pages/color.eta +143 -0
- package/{docs-src/core → docs/pages}/color.js +95 -20
- package/docs/pages/color.pug +121 -0
- package/docs/pages/datatable.eta +323 -0
- package/{docs-src/components → docs/pages}/datatable.js +26 -13
- package/docs/pages/datatable.pug +283 -0
- package/docs/pages/dialog.eta +186 -0
- package/{docs-src/components → docs/pages}/dialog.js +26 -13
- package/{docs-src/components → docs/pages}/dialog.pug +46 -28
- package/docs/pages/dom.eta +26 -0
- package/docs/pages/dom.js +143 -0
- package/docs/pages/dom.pug +22 -0
- package/docs/pages/elevation.eta +35 -0
- package/{docs-src/components → docs/pages}/elevation.js +0 -0
- package/{docs-src/components → docs/pages}/elevation.pug +0 -0
- package/docs/pages/fab.eta +99 -0
- package/{docs-src/components → docs/pages}/fab.js +3 -3
- package/{docs-src/components → docs/pages}/fab.pug +2 -2
- package/docs/pages/grid.eta +135 -0
- package/{docs-src/components → docs/pages}/grid.js +1 -1
- package/{docs-src/components → docs/pages}/grid.pug +3 -3
- package/docs/pages/layout.eta +8 -0
- package/{docs-src/components → docs/pages}/layout.js +0 -0
- package/{docs-src/components → docs/pages}/layout.pug +0 -0
- package/docs/pages/list.eta +465 -0
- package/{docs-src/components → docs/pages}/list.js +2 -2
- package/{docs-src/components → docs/pages}/list.pug +7 -14
- package/docs/pages/menu.eta +276 -0
- package/{docs-src/components → docs/pages}/menu.js +14 -10
- package/{docs-src/components → docs/pages}/menu.pug +0 -0
- package/docs/pages/overlay.eta +69 -0
- package/docs/pages/overlay.js +4 -0
- package/{docs-src/core → docs/pages}/overlay.pug +14 -11
- package/docs/pages/progress.eta +23 -0
- package/{docs-src/components → docs/pages}/progress.js +1 -1
- package/{docs-src/components → docs/pages}/progress.pug +1 -1
- package/docs/pages/ripple.eta +27 -0
- package/docs/pages/ripple.js +4 -0
- package/{docs-src/core → docs/pages}/ripple.pug +4 -4
- package/docs/pages/search.eta +246 -0
- package/{docs-src/components → docs/pages}/search.js +59 -42
- package/{docs-src/components → docs/pages}/search.pug +50 -51
- package/docs/pages/selection.eta +111 -0
- package/docs/pages/selection.js +13 -0
- package/docs/pages/selection.pug +74 -0
- package/docs/pages/slider.eta +23 -0
- package/{docs-src/components → docs/pages}/slider.js +0 -0
- package/{docs-src/components → docs/pages}/slider.pug +0 -0
- package/docs/pages/snackbar.eta +83 -0
- package/{docs-src/components → docs/pages}/snackbar.js +3 -3
- package/{docs-src/components → docs/pages}/snackbar.pug +0 -0
- package/docs/pages/tab.eta +421 -0
- package/{docs-src/components → docs/pages}/tab.js +18 -35
- package/{docs-src/components → docs/pages}/tab.pug +4 -4
- package/docs/pages/textfield.eta +486 -0
- package/{docs-src/components → docs/pages}/textfield.js +3 -4
- package/{docs-src/components → docs/pages}/textfield.pug +87 -35
- package/docs/pages/tooltip.eta +94 -0
- package/{docs-src/components → docs/pages}/tooltip.js +0 -0
- package/{docs-src/components → docs/pages}/tooltip.pug +0 -1
- package/docs/pages/transition.eta +117 -0
- package/{docs-src/core → docs/pages}/transition.js +7 -8
- package/{docs-src/core → docs/pages}/transition.pug +0 -0
- package/docs/pages/type.eta +31 -0
- package/{docs-src/components → docs/pages}/type.js +0 -0
- package/{docs-src/components → docs/pages}/type.pug +0 -1
- package/docs/postrender.js +39 -0
- package/{docs-src → docs}/prerender.js +3 -9
- package/docs/pwa/_dialogs.eta +143 -0
- package/docs/pwa/_dialogs.pug +96 -0
- package/docs/pwa/_menus.eta +16 -0
- package/{docs-src → docs}/pwa/_menus.pug +0 -0
- package/docs/pwa/pwa-prerender.js +3 -0
- package/docs/pwa/pwa.eta +480 -0
- package/docs/pwa/pwa.js +306 -0
- package/{docs-src → docs}/pwa/pwa.pug +166 -263
- package/docs/pwa/pwa.scss +26 -0
- package/docs/spec.scss +26 -0
- package/docs/themes/_component-themes.scss +26 -0
- package/docs/themes/theme-colored-fallbacks.scss +17 -0
- package/docs/themes/theme-colored.scss +17 -0
- package/docs/themes/theme-default-fallbacks.scss +17 -0
- package/docs/themes/theme-default.scss +17 -0
- package/jsconfig.json +4 -2
- package/package.json +40 -27
- package/scripts/deploy-docs.sh +9 -0
- package/templates/index.eta +2 -0
- package/utils/function.js +3 -0
- package/webpack.config.cjs +257 -0
- package/_spec.scss +0 -27
- package/_theme.scss +0 -27
- package/components/list/expander.js +0 -142
- package/components/list/itemgroup.js +0 -22
- package/core/theme/_builder.scss +0 -116
- package/core/theme/index.scss +0 -68
- package/docs/appbar.html +0 -1
- package/docs/appbar.min.js +0 -2
- package/docs/appbar.min.js.map +0 -1
- package/docs/bottomnav.html +0 -1
- package/docs/bottomnav.min.js +0 -2
- package/docs/bottomnav.min.js.map +0 -1
- package/docs/button.html +0 -1
- package/docs/button.min.js +0 -2
- package/docs/button.min.js.map +0 -1
- package/docs/card.html +0 -1
- package/docs/card.min.js +0 -2
- package/docs/card.min.js.map +0 -1
- package/docs/chip.html +0 -1
- package/docs/chip.min.js +0 -2
- package/docs/chip.min.js.map +0 -1
- package/docs/color.html +0 -1
- package/docs/color.min.js +0 -2
- package/docs/color.min.js.map +0 -1
- package/docs/datatable.html +0 -1
- package/docs/datatable.min.js +0 -2
- package/docs/datatable.min.js.map +0 -1
- package/docs/default.common.min.js +0 -2
- package/docs/default.common.min.js.map +0 -1
- package/docs/dialog.html +0 -1
- package/docs/dialog.min.js +0 -2
- package/docs/dialog.min.js.map +0 -1
- package/docs/docs.min.css +0 -1
- package/docs/docs.min.js +0 -2
- package/docs/docs.min.js.map +0 -1
- package/docs/elevation.html +0 -1
- package/docs/elevation.min.js +0 -2
- package/docs/elevation.min.js.map +0 -1
- package/docs/fab.html +0 -1
- package/docs/fab.min.js +0 -2
- package/docs/fab.min.js.map +0 -1
- package/docs/grid.html +0 -1
- package/docs/grid.min.js +0 -2
- package/docs/grid.min.js.map +0 -1
- package/docs/index.html +0 -1
- package/docs/index.min.js +0 -2
- package/docs/index.min.js.map +0 -1
- package/docs/ink.html +0 -1
- package/docs/ink.min.js +0 -2
- package/docs/ink.min.js.map +0 -1
- package/docs/layout.html +0 -1
- package/docs/layout.min.js +0 -2
- package/docs/layout.min.js.map +0 -1
- package/docs/list.html +0 -1
- package/docs/list.min.js +0 -2
- package/docs/list.min.js.map +0 -1
- package/docs/menu.html +0 -1
- package/docs/menu.min.js +0 -2
- package/docs/menu.min.js.map +0 -1
- package/docs/overlay.html +0 -1
- package/docs/overlay.min.js +0 -2
- package/docs/overlay.min.js.map +0 -1
- package/docs/prerender.common.min.js +0 -2
- package/docs/prerender.common.min.js.map +0 -1
- package/docs/prerender.min.js +0 -2
- package/docs/prerender.min.js.map +0 -1
- package/docs/progress.html +0 -1
- package/docs/progress.min.js +0 -2
- package/docs/progress.min.js.map +0 -1
- package/docs/pwa-prerender.min.js +0 -2
- package/docs/pwa-prerender.min.js.map +0 -1
- package/docs/pwa.html +0 -11
- package/docs/pwa.min.css +0 -1
- package/docs/pwa.min.js +0 -2
- package/docs/pwa.min.js.map +0 -1
- package/docs/ripple.html +0 -1
- package/docs/ripple.min.js +0 -2
- package/docs/ripple.min.js.map +0 -1
- package/docs/search.html +0 -1
- package/docs/search.min.js +0 -2
- package/docs/search.min.js.map +0 -1
- package/docs/selection.html +0 -1
- package/docs/selection.min.js +0 -2
- package/docs/selection.min.js.map +0 -1
- package/docs/slider.html +0 -1
- package/docs/slider.min.js +0 -2
- package/docs/slider.min.js.map +0 -1
- package/docs/snackbar.html +0 -1
- package/docs/snackbar.min.js +0 -2
- package/docs/snackbar.min.js.map +0 -1
- package/docs/spec.min.css +0 -1
- package/docs/spec.min.js +0 -2
- package/docs/spec.min.js.map +0 -1
- package/docs/surface.html +0 -1
- package/docs/surface.min.js +0 -2
- package/docs/surface.min.js.map +0 -1
- package/docs/tab.html +0 -1
- package/docs/tab.min.js +0 -2
- package/docs/tab.min.js.map +0 -1
- package/docs/textfield.html +0 -2
- package/docs/textfield.min.js +0 -2
- package/docs/textfield.min.js.map +0 -1
- package/docs/theme-colored-fallbacks.min.css +0 -1
- package/docs/theme-colored-fallbacks.min.js +0 -2
- package/docs/theme-colored-fallbacks.min.js.map +0 -1
- package/docs/theme-colored.min.css +0 -1
- package/docs/theme-colored.min.js +0 -2
- package/docs/theme-colored.min.js.map +0 -1
- package/docs/theme-default-fallbacks.min.css +0 -1
- package/docs/theme-default-fallbacks.min.js +0 -2
- package/docs/theme-default-fallbacks.min.js.map +0 -1
- package/docs/theme-default.min.css +0 -1
- package/docs/theme-default.min.js +0 -2
- package/docs/theme-default.min.js.map +0 -1
- package/docs/themes-fallbacks.min.css +0 -1
- package/docs/themes-fallbacks.min.js +0 -2
- package/docs/themes-fallbacks.min.js.map +0 -1
- package/docs/themes.min.css +0 -1
- package/docs/themes.min.js +0 -2
- package/docs/themes.min.js.map +0 -1
- package/docs/tooltip.html +0 -1
- package/docs/tooltip.min.js +0 -2
- package/docs/tooltip.min.js.map +0 -1
- package/docs/transition.html +0 -1
- package/docs/transition.min.js +0 -2
- package/docs/transition.min.js.map +0 -1
- package/docs/type.html +0 -1
- package/docs/type.min.js +0 -2
- package/docs/type.min.js.map +0 -1
- package/docs-src/components/datatable.pug +0 -327
- package/docs-src/components/selection.js +0 -9
- package/docs-src/components/selection.pug +0 -77
- package/docs-src/core/color.pug +0 -201
- package/docs-src/core/overlay.js +0 -4
- package/docs-src/core/ripple.js +0 -4
- package/docs-src/index.pug +0 -9
- package/docs-src/pwa/_dialogs.pug +0 -15
- package/docs-src/pwa/pwa-prerender.js +0 -3
- package/docs-src/pwa/pwa.js +0 -182
- package/docs-src/pwa/pwa.scss +0 -25
- package/docs-src/spec.scss +0 -1
- package/docs-src/themes/theme-colored-fallbacks.scss +0 -14
- package/docs-src/themes/theme-colored.scss +0 -14
- package/docs-src/themes/theme-default-fallbacks.scss +0 -14
- package/docs-src/themes/theme-default.scss +0 -14
- package/index.js +0 -51
- package/index.scss +0 -2
- package/webpack.config.js +0 -187
package/docs/datatable.html
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html><html class="mdw-layout mdw-theme" lang="en"><head><title>Material Design Web</title><meta charset="utf-8"><meta content="IE=edge" http-equiv="X-UA-Compatible"><meta content="Material Design Web - CSS/JS Framework" name="description"><meta content="width=device-width, initial-scale=1, viewport-fit=cover" name="viewport"><meta name="theme-color" content="#C2185B"><meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"><meta name="apple-mobile-web-app-capable" content="yes"><link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons"><link rel="stylesheet" href="//fonts.googleapis.com/css?family=Roboto:300,400,500"><link rel="stylesheet" href="//fonts.googleapis.com/css?family=Merriweather:300,400,500"><link rel="stylesheet" href="docs.min.css"><link rel="stylesheet" href="spec.min.css"><link rel="stylesheet" href="theme-default.min.css"><link rel="stylesheet" href="theme-default-fallbacks.min.css" media="screen and (-ms-high-contrast: active), (-ms-high-contrast: none)"><link rel="stylesheet" disabled href="theme-colored.min.css" title="alt"><link rel="stylesheet" disabled href="theme-colored-fallbacks.min.css" media="screen and (-ms-high-contrast: active), (-ms-high-contrast: none)" title="alt"><script src="prerender.common.min.js"></script><script src="prerender.min.js"></script></head><body class="mdw-layout__body mdw-theme" mdw-surface="background" mdw-sidesheet-toggle="dismissible" mdw-sidesheet-style="modal"><div class="mdw-layout__menus"></div><div class="mdw-layout__dialogs"></div><nav class="mdw-layout__navdrawer"><div class="mdw-layout__sheet-content mdw-theme" mdw-surface="background" mdw-border-ink><ul class="mdw-list" role="tree"><li class="mdw-list__item"><a class="mdw-list__content mdw-overlay mdw-ripple mdw-theme" href="index.html" mdw-ink="default"><div class="mdw-list__text">Home</div></a></li><li class="mdw-list__expander mdw-theme" aria-expanded="true"><span class="mdw-list__expander-content mdw-list__subheader"><div class="mdw-list__text mdw-theme" mdw-ink="medium">Core</div><div class="mdw-list__secondary mdw-theme material-icons" mdw-ink="medium">expand_more</div></span><ul class="mdw-list__item-group" role="group"><li class="mdw-list__item"><a class="mdw-list__content mdw-overlay mdw-ripple mdw-theme" aria-selected="false" href="color.html" mdw-ink="primary contrast"><div class="mdw-list__icon mdw-theme material-icons" mdw-ink="medium">compare</div><div class="mdw-list__text"><div class="mdw-list__text-block">Color</div></div></a></li><li class="mdw-list__item"><a class="mdw-list__content mdw-overlay mdw-ripple mdw-theme" aria-selected="false" href="overlay.html" mdw-ink="primary contrast"><div class="mdw-list__icon mdw-theme material-icons" mdw-ink="medium">tonality</div><div class="mdw-list__text"><div class="mdw-list__text-block">Overlay</div></div></a></li><li class="mdw-list__item"><a class="mdw-list__content mdw-overlay mdw-ripple mdw-theme" aria-selected="false" href="ripple.html" mdw-ink="primary contrast"><div class="mdw-list__icon mdw-theme material-icons" mdw-ink="medium">center_focus_strong</div><div class="mdw-list__text"><div class="mdw-list__text-block">Ripple</div></div></a></li><li class="mdw-list__item"><a class="mdw-list__content mdw-overlay mdw-ripple mdw-theme" aria-selected="false" href="transition.html" mdw-ink="primary contrast"><div class="mdw-list__icon mdw-theme material-icons" mdw-ink="medium">open_in_new</div><div class="mdw-list__text"><div class="mdw-list__text-block">Transition</div></div></a></li></ul></li><li class="mdw-list__expander mdw-theme" aria-expanded="true"><span class="mdw-list__expander-content mdw-list__subheader"><div class="mdw-list__text mdw-theme" mdw-ink="medium">Components</div><div class="mdw-list__secondary mdw-theme material-icons" mdw-ink="medium">expand_more</div></span><ul class="mdw-list__item-group" role="group"><li class="mdw-list__item"><a class="mdw-list__content mdw-overlay mdw-ripple mdw-theme" aria-selected="false" href="appbar.html" mdw-ink="secondary contrast"><div class="mdw-list__icon mdw-theme material-icons" mdw-ink="medium">web_asset</div><div class="mdw-list__text"><div class="mdw-list__text-block">App Bar</div></div></a></li><li class="mdw-list__item"><a class="mdw-list__content mdw-overlay mdw-ripple mdw-theme" aria-selected="false" href="bottomnav.html" mdw-ink="secondary contrast"><div class="mdw-list__icon mdw-theme material-icons" mdw-ink="medium">call_to_action</div><div class="mdw-list__text"><div class="mdw-list__text-block">Bottom Navigation</div></div></a></li><li class="mdw-list__item"><a class="mdw-list__content mdw-overlay mdw-ripple mdw-theme" aria-selected="false" href="button.html" mdw-ink="secondary contrast"><div class="mdw-list__icon mdw-theme material-icons" mdw-ink="medium">crop_landscape</div><div class="mdw-list__text"><div class="mdw-list__text-block">Button</div></div></a></li><li class="mdw-list__item"><a class="mdw-list__content mdw-overlay mdw-ripple mdw-theme" aria-selected="false" href="card.html" mdw-ink="secondary contrast"><div class="mdw-list__icon mdw-theme material-icons" mdw-ink="medium">crop_square</div><div class="mdw-list__text"><div class="mdw-list__text-block">Card</div></div></a></li><li class="mdw-list__item"><a class="mdw-list__content mdw-overlay mdw-ripple mdw-theme" aria-selected="false" href="chip.html" mdw-ink="secondary contrast"><div class="mdw-list__icon mdw-theme material-icons" mdw-ink="medium">check_circle</div><div class="mdw-list__text"><div class="mdw-list__text-block">Chip</div></div></a></li><li class="mdw-list__item"><a class="mdw-list__content mdw-overlay mdw-ripple mdw-theme" aria-current="page" aria-selected="true" href="datatable.html" mdw-ink="secondary contrast"><div class="mdw-list__icon mdw-theme material-icons" mdw-ink="medium">format_align_justify</div><div class="mdw-list__text"><div class="mdw-list__text-block">Data Table</div></div></a></li><li class="mdw-list__item"><a class="mdw-list__content mdw-overlay mdw-ripple mdw-theme" aria-selected="false" href="dialog.html" mdw-ink="secondary contrast"><div class="mdw-list__icon mdw-theme material-icons" mdw-ink="medium">select_all</div><div class="mdw-list__text"><div class="mdw-list__text-block">Dialog</div></div></a></li><li class="mdw-list__item"><a class="mdw-list__content mdw-overlay mdw-ripple mdw-theme" aria-selected="false" href="elevation.html" mdw-ink="secondary contrast"><div class="mdw-list__icon mdw-theme material-icons" mdw-ink="medium">layers</div><div class="mdw-list__text"><div class="mdw-list__text-block">Elevation</div></div></a></li><li class="mdw-list__item"><a class="mdw-list__content mdw-overlay mdw-ripple mdw-theme" aria-selected="false" href="fab.html" mdw-ink="secondary contrast"><div class="mdw-list__icon mdw-theme material-icons" mdw-ink="medium">add_circle</div><div class="mdw-list__text"><div class="mdw-list__text-block">Floating Action Button</div></div></a></li><li class="mdw-list__item"><a class="mdw-list__content mdw-overlay mdw-ripple mdw-theme" aria-selected="false" href="grid.html" mdw-ink="secondary contrast"><div class="mdw-list__icon mdw-theme material-icons" mdw-ink="medium">view_compact</div><div class="mdw-list__text"><div class="mdw-list__text-block">Grid</div></div></a></li><li class="mdw-list__item"><a class="mdw-list__content mdw-overlay mdw-ripple mdw-theme" aria-selected="false" href="layout.html" mdw-ink="secondary contrast"><div class="mdw-list__icon mdw-theme material-icons" mdw-ink="medium">view_quilt</div><div class="mdw-list__text"><div class="mdw-list__text-block">Layout</div></div></a></li><li class="mdw-list__item"><a class="mdw-list__content mdw-overlay mdw-ripple mdw-theme" aria-selected="false" href="list.html" mdw-ink="secondary contrast"><div class="mdw-list__icon mdw-theme material-icons" mdw-ink="medium">view_list</div><div class="mdw-list__text"><div class="mdw-list__text-block">List</div></div></a></li><li class="mdw-list__item"><a class="mdw-list__content mdw-overlay mdw-ripple mdw-theme" aria-selected="false" href="menu.html" mdw-ink="secondary contrast"><div class="mdw-list__icon mdw-theme material-icons" mdw-ink="medium">picture_in_picture</div><div class="mdw-list__text"><div class="mdw-list__text-block">Menu</div></div></a></li><li class="mdw-list__item"><a class="mdw-list__content mdw-overlay mdw-ripple mdw-theme" aria-selected="false" href="progress.html" mdw-ink="secondary contrast"><div class="mdw-list__icon mdw-theme material-icons" mdw-ink="medium">timelapse</div><div class="mdw-list__text"><div class="mdw-list__text-block">Progress</div></div></a></li><li class="mdw-list__item"><a class="mdw-list__content mdw-overlay mdw-ripple mdw-theme" aria-selected="false" href="search.html" mdw-ink="secondary contrast"><div class="mdw-list__icon mdw-theme material-icons" mdw-ink="medium">search</div><div class="mdw-list__text"><div class="mdw-list__text-block">Search</div></div></a></li><li class="mdw-list__item"><a class="mdw-list__content mdw-overlay mdw-ripple mdw-theme" aria-selected="false" href="selection.html" mdw-ink="secondary contrast"><div class="mdw-list__icon mdw-theme material-icons" mdw-ink="medium">toggle_on</div><div class="mdw-list__text"><div class="mdw-list__text-block">Selection</div></div></a></li><li class="mdw-list__item"><a class="mdw-list__content mdw-overlay mdw-ripple mdw-theme" aria-selected="false" href="slider.html" mdw-ink="secondary contrast"><div class="mdw-list__icon mdw-theme material-icons" mdw-ink="medium">tune</div><div class="mdw-list__text"><div class="mdw-list__text-block">Slider</div></div></a></li><li class="mdw-list__item"><a class="mdw-list__content mdw-overlay mdw-ripple mdw-theme" aria-selected="false" href="snackbar.html" mdw-ink="secondary contrast"><div class="mdw-list__icon mdw-theme material-icons" mdw-ink="medium">video_label</div><div class="mdw-list__text"><div class="mdw-list__text-block">Snackbar</div></div></a></li><li class="mdw-list__item"><a class="mdw-list__content mdw-overlay mdw-ripple mdw-theme" aria-selected="false" href="tab.html" mdw-ink="secondary contrast"><div class="mdw-list__icon mdw-theme material-icons" mdw-ink="medium">tab</div><div class="mdw-list__text"><div class="mdw-list__text-block">Tab</div></div></a></li><li class="mdw-list__item"><a class="mdw-list__content mdw-overlay mdw-ripple mdw-theme" aria-selected="false" href="textfield.html" mdw-ink="secondary contrast"><div class="mdw-list__icon mdw-theme material-icons" mdw-ink="medium">text_fields</div><div class="mdw-list__text"><div class="mdw-list__text-block">Text Field</div></div></a></li><li class="mdw-list__item"><a class="mdw-list__content mdw-overlay mdw-ripple mdw-theme" aria-selected="false" href="tooltip.html" mdw-ink="secondary contrast"><div class="mdw-list__icon mdw-theme material-icons" mdw-ink="medium">info</div><div class="mdw-list__text"><div class="mdw-list__text-block">Tooltip</div></div></a></li><li class="mdw-list__item"><a class="mdw-list__content mdw-overlay mdw-ripple mdw-theme" aria-selected="false" href="type.html" mdw-ink="secondary contrast"><div class="mdw-list__icon mdw-theme material-icons" mdw-ink="medium">font_download</div><div class="mdw-list__text"><div class="mdw-list__text-block">Typography</div></div></a></li></ul></li></ul></div></nav><div class="mdw-layout__scrim"></div><div class="mdw-layout__appbar mdw-appbar mdw-theme" mdw-autohide="mobile tablet" mdw-surface="secondary 500" mdw-dark><div class="mdw-layout__appbar-shape"></div><div class="mdw-appbar__action"><div class="mdw-appbar__start"><div class="mdw-tooltip__wrapper"><a class="mdw-button mdw-overlay mdw-ripple mdw-tooltip__target material-icons mdw-layout__navdrawer-toggle" mdw-icon="" tabindex="0" href="#docs-navdrawer">menu</a><div class="mdw-tooltip mdw-theme" mdw-surface="background 700" mdw-dark mdw-align="start">Menu</div></div></div><div class="mdw-appbar__title">datatable</div><div class="mdw-appbar__end" id="docs-menu-buttons"><div class="mdw-tooltip__wrapper"><a class="mdw-button mdw-overlay mdw-ripple mdw-tooltip__target material-icons" mdw-icon="" tabindex="0" id="altThemeButton" mdw-overlay-default="medium" mdw-overlay-activated="off" aria-pressed="false">palette</a><div class="mdw-tooltip mdw-theme" mdw-surface="background 700" mdw-dark mdw-align="end">Alt Theme</div></div><div class="mdw-tooltip__wrapper"><a class="mdw-button mdw-overlay mdw-ripple mdw-tooltip__target material-icons" mdw-icon="" tabindex="0" id="darkModeButton" mdw-overlay-default="medium" mdw-overlay-activated="off" aria-pressed="false">brightness_3</a><div class="mdw-tooltip mdw-theme" mdw-surface="background 700" mdw-dark mdw-align="end">Dark Mode</div></div><div class="mdw-tooltip__wrapper"><a class="mdw-button mdw-overlay mdw-ripple mdw-tooltip__target material-icons" mdw-icon="" tabindex="0" id="rtlButton" mdw-overlay-default="medium" mdw-overlay-activated="off" aria-pressed="false">format_align_right</a><div class="mdw-tooltip mdw-theme" mdw-surface="background 700" mdw-dark mdw-align="end">Right-to-Left</div></div><div class="mdw-tooltip__wrapper"><a class="mdw-button mdw-overlay mdw-ripple mdw-tooltip__target material-icons" mdw-icon="" tabindex="0" id="largeFontButton" mdw-overlay-default="medium" mdw-overlay-activated="off" aria-pressed="false">format_size</a><div class="mdw-tooltip mdw-theme" mdw-surface="background 700" mdw-dark mdw-align="end">200% Text</div></div></div></div></div><div class="mdw-layout__fab"></div><div class="mdw-layout__snackbar"></div><div class="mdw-layout__content"><div class="mdw-layout__content-page"><div class="mdw-grid" mdw-margin-top mdw-margin-bottom><div class="mdw-grid__item" mdw-colspan="100%"><div class="mdw-card mdw-theme" mdw-surface="card" mdw-border-ink><div class="mdw-datatable mdw-theme" mdw-ink="primary" style="overflow-x:auto"><table><caption>Standard HTML Table (CSS Only)</caption><thead><tr><th>Dessert (100g serving)</th><th>Calories</th><th>Fat (g)</th><th>Carbs (g)</th><th>Protein (g)</th><th>Sodium (mg)</th><th>Calcium (%)</th><th>Iron (%)</th></tr></thead><tbody><tr><td>Frozen Yogurt</td><td>159</td><td>6.0</td><td>24</td><td>4.0</td><td>87</td><td>14%</td><td>1%</td></tr><tr><td>Ice cream sandwich</td><td>237</td><td>9.0</td><td>37</td><td>4.3</td><td>129</td><td>8%</td><td>1%</td></tr><tr><td>Eclair</td><td>262</td><td>16.0</td><td>24</td><td>6.0</td><td>337</td><td>6%</td><td>7%</td></tr><tr><td>Cupcake</td><td>305</td><td>3.7</td><td>67</td><td>4.3</td><td>413</td><td>3%</td><td>8%</td></tr><tr><td>Gingerbread</td><td>356</td><td>16.0</td><td>49</td><td>3.9</td><td>327</td><td>7%</td><td>16%</td></tr><tr><td>Jelly bean</td><td>375</td><td>0.0</td><td>94</td><td>0.0</td><td>50</td><td>0%</td><td>0%</td></tr><tr><td>Lollipop</td><td>392</td><td>0.2</td><td>98</td><td>0</td><td>38</td><td>0%</td><td>2%</td></tr><tr><td>Honeycomb</td><td>408</td><td>3.2</td><td>87</td><td>6.5</td><td>562</td><td>0%</td><td>45%</td></tr><tr><td>Donut</td><td>452</td><td>25.0</td><td>51</td><td>4.9</td><td>326</td><td>2%</td><td>22%</td></tr><tr><td>Kitkat</td><td>518</td><td>26.0</td><td>65</td><td>7</td><td>54</td><td>12%</td><td>6%</td></tr></tbody></table></div></div></div><div class="mdw-grid__item" mdw-colspan="100%"><div class="mdw-card mdw-theme" mdw-surface="card" mdw-border-ink><div class="mdw-datatable js mdw-theme" mdw-ink="primary" mdw-cell-focusable><div class="mdw-datatable__header"><div class="mdw-datatable__header-text">Customized HTML Table</div></div><div class="mdw-datatable__scroller"><table><thead><tr><th data-type="checkbox" mdw-selector><label class="mdw-selection"><input class="mdw-selection__input" type="checkbox"><div class="mdw-selection__icon"></div></label></th><th mdw-sortable data-type="text" mdw-primary-column><div class="mdw-datatable__sort-icon material-icons">arrow_downward</div><span>Dessert (100g serving)</span></th><th mdw-sortable data-type="number" mdw-sorted=""><div class="mdw-datatable__sort-icon material-icons">arrow_downward</div><span class="mdw-tooltip__wrapper"><span class="mdw-tooltip__target">Calories</span><div class="mdw-tooltip mdw-theme" mdw-surface="background 700" mdw-dark>The total amount of food energy in the given serving size.</div></span></th><th mdw-sortable data-type="number"><div class="mdw-datatable__sort-icon material-icons">arrow_downward</div><span>Fat (g)</span></th><th mdw-sortable data-type="number"><div class="mdw-datatable__sort-icon material-icons">arrow_downward</div><span>Carbs (g)</span></th><th mdw-sortable data-type="number"><div class="mdw-datatable__sort-icon material-icons">arrow_downward</div><span>Protein (g)</span></th><th mdw-sortable data-type="number"><div class="mdw-datatable__sort-icon material-icons">arrow_downward</div><span>Sodium (mg)</span></th><th mdw-sortable data-type="number"><div class="mdw-datatable__sort-icon material-icons">arrow_downward</div><span>Calcium (%)</span></th><th mdw-sortable data-type="number"><div class="mdw-datatable__sort-icon material-icons">arrow_downward</div><span>Iron (%)</span></th></tr></thead><tbody><tr><td data-type="checkbox" mdw-selector><label class="mdw-selection"><input class="mdw-selection__input" type="checkbox"><div class="mdw-selection__icon"></div></label></td><td data-type="text" mdw-primary-column>Frozen Yogurt</td><td data-type="number">159</td><td data-type="number">6.0</td><td data-type="number">24</td><td data-type="number">4.0</td><td data-type="number">87</td><td data-type="number">14%</td><td data-type="number">1%</td></tr><tr><td data-type="checkbox" mdw-selector><label class="mdw-selection"><input class="mdw-selection__input" type="checkbox"><div class="mdw-selection__icon"></div></label></td><td data-type="text" mdw-primary-column>Ice cream sandwich</td><td data-type="number">237</td><td data-type="number">9.0</td><td data-type="number">37</td><td data-type="number">4.3</td><td data-type="number">129</td><td data-type="number">8%</td><td data-type="number">1%</td></tr><tr><td data-type="checkbox" mdw-selector><label class="mdw-selection"><input class="mdw-selection__input" type="checkbox"><div class="mdw-selection__icon"></div></label></td><td data-type="text" mdw-primary-column>Eclair</td><td data-type="number">262</td><td data-type="number">16.0</td><td data-type="number">24</td><td data-type="number">6.0</td><td data-type="number">337</td><td data-type="number">6%</td><td data-type="number">7%</td></tr><tr><td data-type="checkbox" mdw-selector><label class="mdw-selection"><input class="mdw-selection__input" type="checkbox"><div class="mdw-selection__icon"></div></label></td><td data-type="text" mdw-primary-column>Cupcake</td><td data-type="number">305</td><td data-type="number">3.7</td><td data-type="number">67</td><td data-type="number">4.3</td><td data-type="number">413</td><td data-type="number">3%</td><td data-type="number">8%</td></tr><tr><td data-type="checkbox" mdw-selector><label class="mdw-selection"><input class="mdw-selection__input" type="checkbox"><div class="mdw-selection__icon"></div></label></td><td data-type="text" mdw-primary-column>Gingerbread</td><td data-type="number">356</td><td data-type="number">16.0</td><td data-type="number">49</td><td data-type="number">3.9</td><td data-type="number">327</td><td data-type="number">7%</td><td data-type="number">16%</td></tr><tr><td data-type="checkbox" mdw-selector><label class="mdw-selection"><input class="mdw-selection__input" type="checkbox"><div class="mdw-selection__icon"></div></label></td><td data-type="text" mdw-primary-column>Jelly bean</td><td data-type="number">375</td><td data-type="number">0.0</td><td data-type="number">94</td><td data-type="number">0.0</td><td data-type="number">50</td><td data-type="number">0%</td><td data-type="number">0%</td></tr><tr><td data-type="checkbox" mdw-selector><label class="mdw-selection"><input class="mdw-selection__input" type="checkbox"><div class="mdw-selection__icon"></div></label></td><td data-type="text" mdw-primary-column>Lollipop</td><td data-type="number">392</td><td data-type="number">0.2</td><td data-type="number">98</td><td data-type="number">0</td><td data-type="number">38</td><td data-type="number">0%</td><td data-type="number">2%</td></tr><tr><td data-type="checkbox" mdw-selector><label class="mdw-selection"><input class="mdw-selection__input" type="checkbox"><div class="mdw-selection__icon"></div></label></td><td data-type="text" mdw-primary-column>Honeycomb</td><td data-type="number">408</td><td data-type="number">3.2</td><td data-type="number">87</td><td data-type="number">6.5</td><td data-type="number">562</td><td data-type="number">0%</td><td data-type="number">45%</td></tr><tr><td data-type="checkbox" mdw-selector><label class="mdw-selection"><input class="mdw-selection__input" type="checkbox"><div class="mdw-selection__icon"></div></label></td><td data-type="text" mdw-primary-column>Donut</td><td data-type="number">452</td><td data-type="number">25.0</td><td data-type="number">51</td><td data-type="number">4.9</td><td data-type="number">326</td><td data-type="number">2%</td><td data-type="number">22%</td></tr><tr><td data-type="checkbox" mdw-selector><label class="mdw-selection"><input class="mdw-selection__input" type="checkbox"><div class="mdw-selection__icon"></div></label></td><td data-type="text" mdw-primary-column>Kitkat</td><td data-type="number">518</td><td data-type="number">26.0</td><td data-type="number">65</td><td data-type="number">7</td><td data-type="number">54</td><td data-type="number">12%</td><td data-type="number">6%</td></tr></tbody></table></div><div class="mdw-datatable__footer"><div class="mdw-datatable__footer-options"><span>Rows per page</span><label class="mdw-textfield" mdw-solo><select class="mdw-textfield__input"><option value="10">10</option><option value="25">25</option><option value="50">50</option><option value="100">100</option></select><div class="mdw-textfield__icon" mdw-dropdown></div></label></div><div class="mdw-datatable__footer-details">1-10 of 10</div><div class="mdw-datatable__footer-controls"><a class="mdw-button mdw-overlay mdw-ripple material-icons" mdw-icon="" disabled="" aria-disabled="true" tabindex="0">chevron_left</a><a class="mdw-button mdw-overlay mdw-ripple material-icons" mdw-icon="" disabled="" aria-disabled="true" tabindex="0">chevron_right</a></div></div></div></div></div><div class="mdw-grid__item" mdw-colspan="100%"><div class="mdw-card mdw-theme" mdw-surface="card" mdw-border-ink><div class="mdw-datatable js mdw-theme" id="dynamic-table" mdw-ink="primary" mdw-row-focusable style="max-height:80vh"><div class="mdw-datatable__header"><div class="mdw-datatable__header-text">Data Table Adapter</div><div class="mdw-datatable__header-controls"><div class="mdw-menu__wrapper"><a class="mdw-button mdw-overlay mdw-ripple mdw-theme material-icons" mdw-ink="primary" mdw-icon="" tabindex="0" mdw-overlay-default="medium" aria-pressed="false">filter_list</a><div class="mdw-menu" mdw-position="end"><div class="mdw-menu__popup mdw-theme" mdw-surface="card"><div class="mdw-menu__item" aria-checked="true" data-filter="none"><div class="mdw-menu__radio mdw-theme material-icons" mdw-ink="medium">check</div><div class="mdw-menu__text">No filter</div></div><div class="mdw-menu__item" data-filter="md"><div class="mdw-menu__radio mdw-theme material-icons" mdw-ink="medium">check</div><div class="mdw-menu__text">Contains 'md'</div></div><div class="mdw-menu__item" data-filter="div9"><div class="mdw-menu__radio mdw-theme material-icons" mdw-ink="medium">check</div><div class="mdw-menu__text">Random divisible by 9</div></div><div class="mdw-menu__item" data-filter="bool"><div class="mdw-menu__radio mdw-theme material-icons" mdw-ink="medium">check</div><div class="mdw-menu__text">bool is checked</div></div></div></div></div><div class="mdw-menu__wrapper"><a class="mdw-button mdw-overlay mdw-ripple mdw-theme material-icons" mdw-ink="medium" mdw-icon="" tabindex="0">more_vert</a><div class="mdw-menu" mdw-position="end"><div class="mdw-menu__popup mdw-theme" mdw-surface="card"><div class="mdw-menu__item" aria-checked="true" data-option="throttle"><div class="mdw-menu__check mdw-theme material-icons" mdw-ink="medium">check</div><div class="mdw-menu__text">Throttle</div></div><div class="mdw-menu__item" aria-checked="true" data-option="paginate"><div class="mdw-menu__check mdw-theme material-icons" mdw-ink="medium">check</div><div class="mdw-menu__text">Paginate</div></div></div></div></div></div></div></div></div></div></div><script src="datatable.min.js"></script></div></div></body><script src="default.common.min.js"></script></html>
|
package/docs/datatable.min.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
!function(e){function t(t){for(var r,o,s=t[0],l=t[1],d=t[2],c=0,h=[];c<s.length;c++)o=s[c],a[o]&&h.push(a[o][0]),a[o]=0;for(r in l)Object.prototype.hasOwnProperty.call(l,r)&&(e[r]=l[r]);for(u&&u(t);h.length;)h.shift()();return i.push.apply(i,d||[]),n()}function n(){for(var e,t=0;t<i.length;t++){for(var n=i[t],r=!0,s=1;s<n.length;s++){var l=n[s];0!==a[l]&&(r=!1)}r&&(i.splice(t--,1),e=o(o.s=n[0]))}return e}var r={},a={8:0},i=[];function o(t){if(r[t])return r[t].exports;var n=r[t]={i:t,l:!1,exports:{}};return e[t].call(n.exports,n,n.exports,o),n.l=!0,n.exports}o.m=e,o.c=r,o.d=function(e,t,n){o.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},o.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.t=function(e,t){if(1&t&&(e=o(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(o.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)o.d(n,r,function(t){return e[t]}.bind(null,r));return n},o.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(t,"a",t),t},o.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},o.p="";var s=window.webpackJsonp=window.webpackJsonp||[],l=s.push.bind(s);s.push=t,s=s.slice();for(var d=0;d<s.length;d++)t(s[d]);var u=l;i.push([54,1,0]),n()}({109:function(e,t,n){"use strict";n.r(t);var r=n(0),a=n(3);function i(e){e.hasAttribute("role")||e.setAttribute("role","grid"),e.setAttribute("mdw-js","");var t=m(e),n=f(e),a=e.hasAttribute("mdw-cell-focusable"),i=e.hasAttribute("mdw-row-focusable");t.addEventListener("click",d),n.addEventListener("keydown",u),n.addEventListener("click",o);var l=null,c=!1,h=null,p=!1;Object(r.h)(n.rows,function(e){i?(l||(l=e),c||"0"!==e.getAttribute("tabindex")?e.setAttribute("tabindex","-1"):c=!0):e.removeAttribute("tabindex"),Object(r.h)(e.cells,function(e){a&&!i?(h||(h=e),p||"0"!==e.getAttribute("tabindex")?e.setAttribute("tabindex","-1"):p=!0):e.removeAttribute("tabindex")})}),i&&!c&&l?s(l,!1):a&&!p&&h&&s(h,!1)}function o(e){var t=e.currentTarget,n=Object(r.c)(t,"mdw-datatable"),a=e.target,i=null,o=null;if(a instanceof HTMLInputElement&&"checkbox"===a.getAttribute("type")){if(n.hasAttribute("mdw-datatable-adapter"))return;if(!(i=l(a)).hasAttribute("mdw-selector"))return;e.stopPropagation(),o=i.parentElement;var d=!1;if(a.checked)o.setAttribute("aria-selected","true"),d=!0;else{o.setAttribute("aria-selected","false");var u=n.querySelectorAll("td[mdw-selector] input[type=checkbox]");d=Object(r.j)(u,function(e){return e.checked})}d?n.setAttribute("mdw-has-selection",""):n.removeAttribute("mdw-has-selection")}else{if(a instanceof HTMLTableRowElement?o=a:i=a instanceof HTMLTableCellElement?a:l(a),i)if(o=i.parentElement,n.hasAttribute("mdw-cell-focusable"))return void s(i);if(o)n.hasAttribute("mdw-row-focusable")&&s(o)}}function s(e,t){if(!1!==t){for(var n=e;null!=n&&n instanceof HTMLTableSectionElement==!1;)n=n.parentElement;e instanceof HTMLTableCellElement&&Object(r.h)(n.querySelectorAll('td[tabindex="0"]'),function(t){t!==e&&t.setAttribute("tabindex","-1")}),e instanceof HTMLTableRowElement&&Object(r.h)(n.querySelectorAll('tr[tabindex="0"]'),function(t){t!==e&&t.setAttribute("tabindex","-1")})}"0"!==e.getAttribute("tabindex")&&(e.setAttribute("tabindex","0"),Object(r.b)(e,"mdw:tabindexchanged"))}function l(e){for(var t=e;null!=t;){if(t instanceof HTMLTableElement)return null;if(t instanceof HTMLTableCellElement)return t;t=t.parentElement}return null}function d(e){var t=l(e.target);if(t&&-1!==t.cellIndex&&t.hasAttribute("mdw-sortable")){var n=e.currentTarget,a=Object(r.c)(n,"mdw-datatable");if(a&&!a.hasAttribute("mdw-datatable-adapter")){var i=!0;t.hasAttribute("mdw-sorted")&&!t.getAttribute("mdw-sorted")&&(i=!1),i?t.setAttribute("mdw-sorted",""):t.setAttribute("mdw-sorted","desc"),Object(r.h)(t.parentElement.getElementsByTagName("th"),function(e){e!==t&&e.removeAttribute("mdw-sorted")});for(var o=f(a),s=[],d=o.rows.length-1;d>=0;d-=1)s.push(o.rows.item(d)),o.deleteRow(d);s.sort(function(e,n){var r=e.cells.item(t.cellIndex),a=n.cells.item(t.cellIndex),i=r.textContent,o=a.textContent;return"number"===r.dataset.type?parseFloat(o)-parseFloat(i):o.localeCompare(i)}),i&&s.reverse();var u=document.createDocumentFragment();s.forEach(function(e){u.appendChild(e)}),o.appendChild(u),e.stopPropagation()}}}function u(e){var t=document.activeElement,n=0,a=null,i=!1,o=null;if(t instanceof HTMLTableCellElement?(n=t.cellIndex,a=t.parentElement):t instanceof HTMLTableRowElement&&(i=!0,a=t),a){var l=e.currentTarget;if("ArrowUp"===e.key||"Up"===e.key){if(0===a.sectionRowIndex)return;var d=l.rows.item(a.sectionRowIndex-1);o=i?d:d.cells.item(n)}else if("ArrowDown"===e.key||"Down"===e.key){var u=a.sectionRowIndex+1;if(u>=l.rows.length)return;var c=l.rows.item(u);o=i?c:c.cells.item(n)}else if(e.ctrlKey&&"Home"===e.key){if(0===a.sectionRowIndex&&0===n)return;var h=l.rows.item(0);o=i?h:h.cells.item(0)}else if(e.ctrlKey&&"End"===e.key){var m=l.rows.length-1,f=0;if(i||(f=a.cells.length-1),a.sectionRowIndex===m&&n===f)return;var p=l.rows.item(m);o=i?p:p.cells.item(f)}else if("Home"===e.key){if(i)return;if(0===n)return;o=a.cells.item(0)}else if("End"===e.key){if(i)return;var b=a.cells.length-1;if(b===n)return;o=a.cells.item(b)}else{var g=Object(r.g)(),v=!1,w=!1;if("ArrowLeft"!==e.key&&"Left"!==e.key||(g?w=!0:v=!0),"ArrowRight"!==e.key&&"Right"!==e.key||(g?v=!0:w=!0),v){if(i)return;if(0===n)return;o=a.cells.item(n-1)}else if(w){if(i)return;var y=n+1;if(y>=a.cells.length)return;o=a.cells.item(y)}}o&&(e.stopPropagation(),e.preventDefault(),t.setAttribute("tabindex","-1"),o.focus(),s(o,!1))}}function c(e){var t=e.getElementsByClassName("mdw-datatable__scroller")[0];if(!t){(t=document.createElement("div")).classList.add("mdw-datatable__scroller");var n=e.getElementsByClassName("mdw-datatable__footer")[0];n?e.insertBefore(t,n):e.appendChild(t);var r=e.getElementsByTagName("table")[0];r&&(r.parentElement.removeChild(r),t.appendChild(r))}return t}function h(e){if(e instanceof HTMLTableElement)return e;var t=e.getElementsByTagName("table")[0];if(!t){var n=c(e);t=document.createElement("table"),n.appendChild(t)}return t}function m(e){var t=e.getElementsByTagName("thead")[0];if(!t){var n=h(e);t=document.createElement("thead"),n.appendChild(t)}var r=t.getElementsByTagName("tr")[0];return r||(r=document.createElement("tr"),t.appendChild(r)),r}function f(e){var t=e.getElementsByTagName("tbody")[0];if(!t){var n=h(e);t=document.createElement("tbody"),n.appendChild(t)}return t}var p=n(8),b=n(10);function g(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}var v=function(){function e(t){if(function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.element=document.createElement("th"),null!=t.innerHTML?this.element.innerHTML=t.innerHTML:t.fragment&&this.element.appendChild(t.fragment),this.key=t.key,this.element.dataset.key=t.key,t.sortable){this.element.setAttribute("mdw-sortable","");var n=t.customSortIcon;n||((n=document.createElement("div")).classList.add("mdw-datatable__sort-icon"),n.classList.add("material-icons"),n.textContent="arrow_downward"),this.element.hasChildNodes()?this.element.insertBefore(this.element.firstChild,t.customSortIcon):this.element.appendChild(n)}if(t.tooltip){var r=document.createElement("span");r.classList.add("mdw-tooltip__wrapper");var a=document.createElement("span");a.classList.add("mdw-tooltip__target"),t.name?"string"==typeof t.name?a.textContent=t.name:a.appendChild(t.name):a.textContent="";var i=document.createElement("div");i.classList.add("mdw-tooltip"),i.textContent=t.tooltip,r.appendChild(a),r.appendChild(i),this.element.appendChild(r)}else if(t.name){var o;o="string"==typeof t.name?document.createTextNode(t.name):t.name,this.element.appendChild(o)}if(this.primaryColumn=t.primaryColumn,t.primaryColumn&&this.element.setAttribute("mdw-primary-column",""),this.rowSelector=t.rowSelector,this.rowSelector&&this.element.setAttribute("mdw-selector",""),t.type&&(this.element.dataset.type=t.type,this.type=t.type),this.rowSelector&&"checkbox"===this.type){var s=function(){var e=document.createElement("label");e.className="mdw-selection";var t=document.createElement("input");t.className="mdw-selection__input",t.setAttribute("type","checkbox");var n=document.createElement("div");return n.className="mdw-selection__icon",e.appendChild(t),e.appendChild(n),e}();this.element.appendChild(s)}t.renderer?this.renderer=t.renderer:"checkbox"===t.type?this.renderer=e.defaultCheckboxRenderer:this.renderer=e.defaultCellRenderer,this.formatter=t.formatter||function(e){return e}}var t,n,r;return t=e,r=[{key:"defaultCheckboxRenderer",value:function(e,t){var n=e.getElementsByTagName("input")[0],r=!!t;if(!n){var a=document.createElement("label");a.className="mdw-selection",(n=document.createElement("input")).className="mdw-selection__input",n.setAttribute("type","checkbox"),n.checked=r;var i=document.createElement("div");i.className="mdw-selection__icon",a.appendChild(n),a.appendChild(i),e.appendChild(a)}n.checked!==r&&(n.checked=r)}},{key:"defaultCellRenderer",value:function(e,t){var n;n=null==t?"":t.toString();for(var r=!1,a=e.childNodes.length-1;a>=0;a-=1){var i=e.childNodes.item(a);r||i.nodeType!==Node.TEXT_NODE?e.removeChild(i):(i.nodeValue!==n&&(i.nodeValue=n),r=!0)}if(!r){var o=document.createTextNode(n);e.appendChild(o)}}}],(n=null)&&g(t.prototype,n),r&&g(t,r),e}();function w(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}var y=function(){function e(t){var n=this;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.element=t.datatable,this.datasource=t.datasource,this.filter=t.filter,this.sorter=t.sorter,this.onValueChangeRequested=t.onValueChangeRequested||function(){return!1},this.onValueChanged=t.onValueChanged||function(){},this.onElementClickListener=function(e){n.handleClickInteraction(e)},this.element.addEventListener("click",this.onElementClickListener),this.onElementScrollListener=function(){n.onElementScroll()},this.tabindexRow=null,this.tabindexRowData=null,this.element.addEventListener("mdw:tabindexchanged",function(e){n.element.hasAttribute("mdw-row-focusable")&&(n.tabindexRow=e.target,n.tabindexRowData=n.getDataForTableRow(n.tabindexRow))}),i(this.element),this.scroller=c(this.element),this.element.setAttribute("mdw-datatable-adapter",""),this.columns=[],this.page=0,this.pageLimit=0,this.debounceTimeMs=0,this.throttleTimeMs=0,this.useLazyRendering=!1}var t,n,o;return t=e,(n=[{key:"detach",value:function(){this.element.removeAttribute("mdw-datatable-adapter"),this.element=null,this.datasource=null,this.filteredDatasource=null}},{key:"performThrottledRender",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.performLazyRender(e),this.throttledRenderPending&&(this.throttledRenderPending=!1,this.scheduleThrottledRender())}},{key:"scheduleThrottledRender",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.throttleTimeMs<17?window.requestAnimationFrame(function(){return e.performThrottledRender(t)}):setTimeout(function(){return e.performThrottledRender(t)},this.throttleTimeMs)}},{key:"onElementScroll",value:function(){var e=this;this.debounceTimeout&&(clearTimeout(this.debounceTimeout),this.debounceTimeout=null),this.throttledRenderPending||(this.debounceTimeMs?this.debounceTimeout=setTimeout(function(){e.scheduleThrottledRender(),e.throttledRenderPending=!0},this.debounceTimeMs):(this.scheduleThrottledRender(),this.throttledRenderPending=!0))}},{key:"buildScrollListener",value:function(){this.scroller.addEventListener("scroll",this.onElementScrollListener)}},{key:"destroyScrollListener",value:function(){this.scroller.removeEventListener("scroll",this.onElementScrollListener)}},{key:"handleClickInteraction",value:function(e){var t=e.target;if(t instanceof HTMLInputElement){if(t.hasAttribute("type")&&"checkbox"===t.getAttribute("type")){e.stopPropagation();var n=this.getTableCell(t);if("th"===n.tagName.toLowerCase())return this.setCheckOnAllRows(t.checked,n.cellIndex),void this.setHasSelection(t.checked);var r=this.getTableRow(t),a=this.getDataForTableRow(r);if(this.onValueChangeRequested(a,n.dataset.key,t.checked))return void e.preventDefault();if(a[n.dataset.key]=t.checked,this.onValueChanged(a,n.dataset.key,t.checked),n.hasAttribute("mdw-selector"))if(t.checked)r.setAttribute("aria-selected","true"),this.setHasSelection(!0);else{r.removeAttribute("aria-selected");var i=this.getSelectedRows();this.setHasSelection(0!==i.length)}}}else{var o=this.getTableCell(t);if(o&&"th"===o.tagName.toLowerCase()&&o.hasAttribute("mdw-sortable")){e.stopPropagation();var s=!0;o.hasAttribute("mdw-sorted")&&!o.getAttribute("mdw-sorted")&&(s=!1),this.updateSortIcons(o,s),this.updateSortColumn&&this.updateSortColumn(o,s)}}}},{key:"updateSortColumn",value:function(e,t){if(!e)return this.sorter=null,void this.refresh();if(-1!==e.cellIndex){var n=e.cellIndex,r=this.columns[n],a=t?1:-1;this.sorter=function(e,t){var n=e[r.key],i=t[r.key];return null==n?null==i?0:-1*a:null==i?a:"number"===r.type?(parseFloat(n)-parseFloat(i))*a:"checkbox"===r.type?((n?1:0)-(i?1:0))*a:n.localeCompare?n.localeCompare(i)*a:n==i?0:(n-i)*a},this.refresh()}}},{key:"updateSortIcons",value:function(e,t){e&&(t?e.setAttribute("mdw-sorted",""):e.setAttribute("mdw-sorted","desc")),Object(r.h)(this.element.getElementsByTagName("th"),function(t){t!==e&&t.removeAttribute("mdw-sorted")})}},{key:"setCheckOnAllRows",value:function(e,t){var n=this.columns[t];this.datasource.forEach(function(t){t[n.key]=e}),this.refresh()}},{key:"getTableRow",value:function(e){return e===this.element?null:e instanceof HTMLTableRowElement?e:e.parentElement?this.getTableRow(e.parentElement):null}},{key:"getTableCell",value:function(e){return e===this.element?null:e instanceof HTMLTableCellElement?e:e.parentElement?this.getTableCell(e.parentElement):null}},{key:"getSelectedRows",value:function(){var e=this.columns.filter(function(e){return e.rowSelector})[0];return e?this.getDatasource().filter(function(t){return t[e.key]}):[]}},{key:"setHasSelection",value:function(e){e?this.element.setAttribute("mdw-has-selection",""):this.element.removeAttribute("mdw-has-selection")}},{key:"setDatasource",value:function(e){this.datasource=e}},{key:"setUseLazyRendering",value:function(e){this.useLazyRendering=e,e?this.buildScrollListener():this.destroyScrollListener()}},{key:"addColumn",value:function(e){var t=new v(e);return this.getHeaderRow().appendChild(t.element),this.columns.push(t),t}},{key:"updatePaginator",value:function(){if(this.pageLimit){var e=this.page*this.pageLimit,t=this.getDatasource().length,n=this.pageLimit+e;n>t&&(n=t),this.paginationDetailsElement.textContent="".concat(e+1,"-").concat(n," of ").concat(t),this.previousPageButton.setAttribute("aria-disabled",0===e?"true":"false"),this.nextPageButton.setAttribute("aria-disabled",n===t?"true":"false")}}},{key:"setPagination",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=this.getFooter(!t.disabled);if(t.disabled)return this.pageLimit=0,this.page=0,n&&(n.style.display="none"),void(this.needsDraw=!0);n.style.display="";var r=n.getElementsByClassName("mdw-datatable__footer-options")[0];if(!r){(r=document.createElement("div")).classList.add("mdw-datatable__footer-options");var i=document.createElement("span");i.textContent="Rows per page";var o=t.limits||[10,25,50,100],s=document.createElement("label");s.classList.add("mdw-textfield"),s.setAttribute("mdw-solo","");var l=document.createElement("select");l.classList.add("mdw-textfield__input"),o.forEach(function(e){var t=document.createElement("option");t.value=e.toString(),t.textContent=e.toString(),l.appendChild(t)}),l.setAttribute("value",t.limit&&t.limit.toString()||"10");var d=document.createElement("div");d.classList.add("mdw-textfield__icon"),d.setAttribute("mdw-dropdown",""),s.appendChild(l),s.appendChild(d),r.appendChild(i),r.appendChild(s),n.appendChild(r),l.addEventListener("input",function(){e.pageLimit=parseInt(l.value,10),e.updateRowCount(!1),e.updatePaginator(),e.refreshRows()})}if(this.paginationDetailsElement||(this.paginationDetailsElement=n.getElementsByClassName("mdw-datatable__footer-details")[0]),this.paginationDetailsElement||(this.paginationDetailsElement=document.createElement("div"),this.paginationDetailsElement.classList.add("mdw-datatable__footer-details"),n.appendChild(this.paginationDetailsElement)),this.paginationControls||(this.paginationControls=n.getElementsByClassName("mdw-datatable__footer-controls")[0]),this.paginationControls||(this.paginationControls=document.createElement("div"),this.paginationControls.classList.add("mdw-datatable__footer-controls"),n.appendChild(this.paginationControls)),!this.previousPageButton||!this.nextPageButton){var u=this.paginationControls.getElementsByClassName("mdw-button");2!==u.length?(this.previousPageButton=document.createElement("a"),this.previousPageButton.classList.add("mdw-button"),this.previousPageButton.classList.add("material-icons"),this.previousPageButton.setAttribute("mdw-icon",""),this.previousPageButton.textContent="chevron_left",this.paginationControls.appendChild(this.previousPageButton),a.a(this.previousPageButton),this.nextPageButton=document.createElement("a"),this.nextPageButton.classList.add("mdw-button"),this.nextPageButton.classList.add("material-icons"),this.nextPageButton.setAttribute("mdw-icon",""),this.nextPageButton.textContent="chevron_right",this.paginationControls.appendChild(this.nextPageButton),a.a(this.nextPageButton)):(this.previousPageButton=u[0],this.nextPageButton=u[1]),this.previousPageButton.addEventListener("click",function(){"true"!==e.previousPageButton.getAttribute("aria-disabled")&&(e.page-=1,e.updateRowCount(!1),e.updatePaginator(),e.refreshRows())}),this.nextPageButton.addEventListener("click",function(){"true"!==e.nextPageButton.getAttribute("aria-disabled")&&(e.page+=1,e.updateRowCount(!1),e.updatePaginator(),e.refreshRows())})}this.pageLimit=t.limit||10,this.updateRowCount(!1),this.updatePaginator(),this.refreshRows()}},{key:"getFooter",value:function(e){var t=this.element.getElementsByClassName("mdw-datatable__footer")[0];return!t&&e&&((t=document.createElement("div")).classList.add("mdw-datatable__footer"),this.element.appendChild(t)),t}},{key:"isRowVisible",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.scroller.scrollTop,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.scroller.scrollTop+this.scroller.offsetHeight,r=e.offsetTop,a=r+e.offsetHeight;return r>t&&r<n||a>t&&a<n}},{key:"clearNonvisibleRows",value:function(e){var t=this.getTableBody();if(e.length!==t.rows.length){var n=1/0,a=-1/0;e.length&&(n=e[0].sectionRowIndex,a=e[e.length-1].sectionRowIndex),Object(r.h)(t.rows,function(e,t){if(!(t>=n&&t<=a))for(e.lastChild&&e.style.setProperty("height","".concat(e.offsetHeight||0,"px"));e.lastChild;)e.removeChild(e.lastChild)})}}},{key:"getLazyRenderRows",value:function(){var e=this,t=this.getTableBody(),n=t.rows.length,a=[],i=window.screen.height/48;if(n<=i)return Object(r.h)(t.rows,function(e){a.push(e)}),a;var o=!1,s=0,l=0,d=this.scroller.scrollTop,u=d+this.scroller.offsetHeight;for(Object(r.j)(t.rows,function(t,n){if(e.isRowVisible(t,d,u))o||(o=!0,s=n),l=n;else if(o)return!0;return!1});l-s+1<i;)0===s?l+=1:l===n-1?s-=1:(s-=1,l+=1);for(var c=s;c<=l;c+=1)a.push(t.rows.item(c));return a}},{key:"performLazyRender",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],n=this.getLazyRenderRows();n.forEach(function(n){!t&&n.cells.length||e.refreshRow(n.sectionRowIndex)}),this.clearNonvisibleRows(n)}},{key:"setFilter",value:function(e){this.filter=e,this.refreshFilter()}},{key:"setSorter",value:function(e){this.sorter=e,this.refreshFilter()}},{key:"refreshFilter",value:function(){this.filter&&this.sorter?this.filteredDatasource=this.datasource.filter(this.filter).sort(this.sorter):this.filter?this.filteredDatasource=this.datasource.filter(this.filter):this.sorter?this.filteredDatasource=this.datasource.slice(0).sort(this.sorter):this.filteredDatasource=null}},{key:"getDatasource",value:function(){return this.filter||this.sorter?(null==this.filteredDatasource&&this.refreshFilter(),this.filteredDatasource):this.datasource}},{key:"updateRowCount",value:function(e){var t=this,n=this.getTableBody(),r=n.rows.length,a=this.getDatasource().length;if(this.pageLimit){var i=this.page*this.pageLimit;i>a&&(this.page=0,i=0),(a-=i)>this.pageLimit&&(a=this.pageLimit)}var o=a-r,s=[];if(o<0)for(var l=r-1;l>=a;l-=1){var d=n.rows.item(l);n.removeChild(d)}if(o>0){for(var u=document.createDocumentFragment(),c=0;c<o;c+=1){var h=document.createElement("tr");this.element.hasAttribute("mdw-row-focusable")&&h.setAttribute("tabindex","-1"),s.push(h),u.appendChild(h)}n.appendChild(u)}e&&0!==o&&(this.useLazyRendering?this.scheduleThrottledRender(!0):s.forEach(function(e){t.refreshRow(e.sectionRowIndex)}))}},{key:"refreshRows",value:function(){var e=this;if(this.useLazyRendering)this.performLazyRender(!0);else{var t=this.getTableBody();Object(r.h)(t.rows,function(t,n){e.refreshRow(n)})}if(this.tabindexRowData){var n=this.getTableRowForData(this.tabindexRowData);n!==this.tabindexRow&&(this.tabindexRow&&this.tabindexRow.setAttribute("tabindex","-1"),n&&(document.activeElement===this.tabindexRow&&n.focus(),s(n,!1)),this.tabindexRow=n)}this.useLazyRendering&&this.scheduleThrottledRender()}},{key:"refresh",value:function(){this.refreshFilter(),this.updateRowCount(!1),this.updatePaginator(),this.refreshRows()}},{key:"getDataForTableRow",value:function(e){var t=e.sectionRowIndex+this.page*this.pageLimit;return this.getDatasource()[t]}},{key:"getTableRowForData",value:function(e){var t=this.getDatasource().indexOf(e);if(-1===t)return null;var n=this.page*this.pageLimit;return this.getTableBody().rows.item(t-n)}},{key:"refreshRow",value:function(e){var t=this;this.getTableBody().rows.item(e).style.removeProperty("height"),this.columns.forEach(function(n,r){t.refreshCell(r,e)})}},{key:"refreshCell",value:function(e,t){for(var n=this.columns[e],r=this.getTableBody().rows.item(t),a=r.cells.length;a<=e;){var i=this.columns[a],o=r.insertCell();i.type&&(o.dataset.type=i.type),o.dataset.key=i.key,i.rowSelector&&o.setAttribute("mdw-selector",""),i.primaryColumn&&o.setAttribute("mdw-primary-column",""),a+=1}var s=r.cells.item(e),l=this.getDataForTableRow(r),d=l[n.key];n.rowSelector&&r.getAttribute("aria-selected")!==(d?"true":"false")&&r.setAttribute("aria-selected",d?"true":"false");var u=n.formatter(d,l);n.renderer(s,u,l)}},{key:"getColumn",value:function(e){return e instanceof v?e:e instanceof HTMLTableCellElement?this.columns.filter(function(t){return t.element===e})[0]:"string"==typeof e?this.columns.filter(function(t){return t.element.dataset.key===e})[0]:this.columns[e]}},{key:"getTable",value:function(){var e=this.element.getElementsByTagName("table")[0];if(!e){e=document.createElement("table");var t=this.element.getElementsByClassName("mdw-datatable__footer")[0];t?this.element.insertBefore(e,t):this.element.appendChild(e)}return e}},{key:"getHeaderRow",value:function(){var e=this.element.getElementsByTagName("thead")[0];if(!e){var t=this.getTable();e=document.createElement("thead"),t.appendChild(e)}var n=e.getElementsByTagName("tr")[0];return n||(n=document.createElement("tr"),e.appendChild(n)),n}},{key:"getTableBody",value:function(){if(this.tbody)return this.tbody;if(this.tbody=this.element.getElementsByTagName("tbody")[0],!this.tbody){var e=this.getTable();this.tbody=document.createElement("tbody"),e.appendChild(this.tbody)}return this.tbody}},{key:"refreshColumn",value:function(e){var t=this,n=this.getTableBody();Object(r.h)(n.rows,function(n,r){t.refreshCell(e,r)})}}])&&w(t.prototype,n),o&&w(t,o),e}();var C=null;Object(r.h)(document.querySelectorAll(".mdw-datatable.js"),i),Object(r.h)(document.getElementsByClassName("mdw-button"),a.a),Object(r.h)(document.getElementsByClassName("mdw-menu"),p.a),function(){for(var e=[],t=1,n=0;n<256;n+=1)e.push({text:Math.random().toString(36).substring(2),text2:Math.random().toString(36).substring(2),check1:Math.random()>.5,increment:t,random:Math.floor(99999*Math.random())}),t+=1;var r=document.getElementById("dynamic-table");(C=new y({datatable:r,datasource:e})).addColumn({key:"selected",type:"checkbox",rowSelector:!0}),C.addColumn({key:"text",name:"Primary Column (full-width)",primaryColumn:!0,sortable:!0,type:"text"}),C.addColumn({key:"text2",name:"Text field",sortable:!0,type:"text"}),C.addColumn({key:"check1",name:"bool",type:"checkbox",tooltip:"Non-selection boolean value",sortable:!0}),C.addColumn({key:"increment",name:"Increment",type:"number",sortable:!0}),C.addColumn({key:"random",name:"Random",sortable:!0,type:"number"}),C.setUseLazyRendering(!0),C.setPagination(),C.refresh();var a=C.element.querySelectorAll(".mdw-datatable__header-controls .mdw-button"),i=a[0],o=a[1],s=C.element.querySelectorAll(".mdw-datatable__header-controls .mdw-menu"),l=s[0],d=s[1];p.a(l),p.a(d),i.addEventListener("click",function(e){return p.d(l,e)}),o.addEventListener("click",function(e){return p.d(d,e)}),l.addEventListener(b.b,function(e){switch(e.target.dataset.filter){default:case"none":C.setFilter(null);break;case"md":C.setFilter(function(e){return-1!==e.text.indexOf("md")||-1!==e.text2.indexOf("md")});break;case"div9":C.setFilter(function(e){return e.random%9==0});break;case"bool":C.setFilter(function(e){return e.check1})}C.refresh(),C.filter?i.setAttribute("aria-pressed","true"):i.setAttribute("aria-pressed","false")}),l.addEventListener(b.a,function(){return p.c(l)}),d.addEventListener(b.b,function(e){switch(e.target.dataset.option){default:break;case"throttle":C.setUseLazyRendering(!0);break;case"paginate":C.setPagination()}C.refresh()}),d.addEventListener(b.c,function(e){switch(e.target.dataset.option){default:break;case"throttle":C.setUseLazyRendering(!1);break;case"paginate":C.setPagination({disabled:!0})}C.refresh()}),d.addEventListener(b.a,function(){return p.c(d)})}()},54:function(e,t,n){n(109),e.exports=n(55)},55:function(e,t,n){e.exports=n.p+"datatable.html"}});
|
|
2
|
-
//# sourceMappingURL=datatable.min.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///../components/datatable/index.js","webpack:///../adapters/datatable/column.js","webpack:///../adapters/datatable/index.js","webpack:///./components/datatable.js","webpack:///./components/datatable.pug"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","installedChunks","push","Object","prototype","hasOwnProperty","call","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","8","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","window","oldJsonpFunction","slice","attach","element","hasAttribute","setAttribute","headerRow","getHeaderRow","tbody","getTableBody","cellFocusable","rowFocusable","addEventListener","onHeaderRowClick","onTableBodyKeyDown","onTableBodyClick","firstRow","foundTabbableRow","firstCell","foundTabbableCell","iterateArrayLike","rows","row","getAttribute","removeAttribute","cells","cell","updateTabIndex","event","currentTarget","mdwDataTable","findElementParentByClassName","target","HTMLInputElement","findParentCell","stopPropagation","parentElement","hasSelection","checked","checkboxes","querySelectorAll","iterateSomeOfArrayLike","checkbox","HTMLTableRowElement","HTMLTableCellElement","removeOtherTabIndexes","HTMLTableSectionElement","td","tr","dispatchDomEvent","el","HTMLTableElement","cellIndex","mdwTable","ascending","getElementsByTagName","th","item","deleteRow","sort","a","b","aCell","bCell","aText","textContent","bText","dataset","type","parseFloat","localeCompare","reverse","fragment","document","createDocumentFragment","forEach","appendChild","currentSelection","activeElement","isRow","nextSelection","sectionRowIndex","newRow","newIndex","ctrlKey","newRowIndex","newCellIndex","isRtlEnabled","isRtl","isLeft","isRight","preventDefault","focus","getScroller","datatableElement","scroller","getElementsByClassName","createElement","classList","add","footer","insertBefore","table","removeChild","getTable","tableElement","thead","DataTableAdapterColumn","options","_classCallCheck","this","innerHTML","sortable","sortIcon","customSortIcon","hasChildNodes","firstChild","tooltip","wrapper","node","createTextNode","primaryColumn","rowSelector","checkboxLabel","className","input","icon","constructTableCheckbox","renderer","defaultCheckboxRenderer","defaultCellRenderer","formatter","stringValue","toString","foundTextNode","childNodes","nodeType","Node","TEXT_NODE","nodeValue","DataTableAdapter","_this","datatable_classCallCheck","datatable","datasource","filter","sorter","onValueChangeRequested","onValueChanged","onElementClickListener","handleClickInteraction","onElementScrollListener","onElementScroll","tabindexRow","tabindexRowData","getDataForTableRow","DataTable","columns","page","pageLimit","debounceTimeMs","throttleTimeMs","useLazyRendering","filteredDatasource","forceRefresh","arguments","undefined","performLazyRender","throttledRenderPending","scheduleThrottledRender","_this2","requestAnimationFrame","performThrottledRender","setTimeout","_this3","debounceTimeout","clearTimeout","removeEventListener","currentCell","getTableCell","tagName","toLowerCase","setCheckOnAllRows","setHasSelection","currentRow","getTableRow","selectedRows","getSelectedRows","updateSortIcons","updateSortColumn","tableHeaderCell","refresh","index","tableColumn","direction","valueA","valueB","sortedTableHeaderCell","otherTableHeader","columnIndex","column","selectorColumn","getDatasource","buildScrollListener","destroyScrollListener","min","total","max","paginationDetailsElement","concat","previousPageButton","nextPageButton","_this4","getFooter","disabled","style","display","needsDraw","optionsElement","rowsPerPageText","limits","limitsElement","select","limit","option","dropdownIcon","parseInt","updateRowCount","updatePaginator","refreshRows","paginationControls","buttons","Button","viewportTop","scrollTop","viewportBottom","offsetHeight","rowTop","offsetTop","rowBottom","visibleRows","firstRowIndex","Infinity","lastRowIndex","lastChild","setProperty","_this5","len","minRowCount","screen","height","foundFirstVisibleRow","startIndex","endIndex","isRowVisible","_this6","getLazyRenderRows","refreshRow","clearNonvisibleRows","refreshFilter","_this7","rowLength","rowsToDisplay","offset","rowDifference","newRows","_this8","getTableRowForData","datasourceIndex","indexOf","minIndex","rowIndex","_this9","removeProperty","refreshCell","missingColumn","missingCell","insertCell","formattedValue","search","_this10","dynamicTableAdapter","Menu","count","text","Math","random","substring","text2","check1","increment","floor","getElementById","addColumn","setUseLazyRendering","setPagination","filterButton","optionsButton","menus","filterMenu","optionsMenu","MenuItem","setFilter","buildDynamicTable"],"mappings":"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","file":"datatable.min.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t8: 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([54,1,0]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","// https://www.w3.org/TR/wai-aria-practices/#grid\n\nimport {\n dispatchDomEvent,\n isRtl,\n findElementParentByClassName,\n iterateArrayLike,\n iterateSomeOfArrayLike,\n} from '../../core/dom';\n\n/**\n * @param {Element} element\n * @return {void}\n */\nexport function attach(element) {\n if (!element.hasAttribute('role')) {\n element.setAttribute('role', 'grid');\n }\n element.setAttribute('mdw-js', '');\n const headerRow = getHeaderRow(element);\n const tbody = getTableBody(element);\n const cellFocusable = element.hasAttribute('mdw-cell-focusable');\n const rowFocusable = element.hasAttribute('mdw-row-focusable');\n\n headerRow.addEventListener('click', onHeaderRowClick);\n tbody.addEventListener('keydown', onTableBodyKeyDown);\n tbody.addEventListener('click', onTableBodyClick);\n let firstRow = null;\n let foundTabbableRow = false;\n let firstCell = null;\n let foundTabbableCell = false;\n iterateArrayLike(tbody.rows, (row) => {\n if (rowFocusable) {\n if (!firstRow) {\n firstRow = row;\n }\n if (!foundTabbableRow && row.getAttribute('tabindex') === '0') {\n foundTabbableRow = true;\n } else {\n row.setAttribute('tabindex', '-1');\n }\n } else {\n row.removeAttribute('tabindex');\n }\n iterateArrayLike(row.cells, (cell) => {\n if (cellFocusable && !rowFocusable) {\n if (!firstCell) {\n firstCell = cell;\n }\n if (!foundTabbableCell && cell.getAttribute('tabindex') === '0') {\n foundTabbableCell = true;\n } else {\n cell.setAttribute('tabindex', '-1');\n }\n } else {\n cell.removeAttribute('tabindex');\n }\n });\n });\n if (rowFocusable && !foundTabbableRow && firstRow) {\n updateTabIndex(firstRow, false);\n } else if (cellFocusable && !foundTabbableCell && firstCell) {\n updateTabIndex(firstCell, false);\n }\n}\n\n/**\n * @param {MouseEvent} event\n * @return {void}\n */\nexport function onTableBodyClick(event) {\n /** @type {HTMLTableSectionElement} */\n const tbody = (event.currentTarget);\n const mdwDataTable = findElementParentByClassName(tbody, 'mdw-datatable');\n const { target } = event;\n let cell = null;\n /** @type {HTMLTableRowElement} */\n let row = null;\n\n if (target instanceof HTMLInputElement && target.getAttribute('type') === 'checkbox') {\n if (mdwDataTable.hasAttribute('mdw-datatable-adapter')) {\n return;\n }\n // Checkbox clicked\n cell = findParentCell(target);\n if (!cell.hasAttribute('mdw-selector')) {\n return;\n }\n event.stopPropagation();\n /** @type {HTMLTableRowElement} */\n row = (cell.parentElement);\n let hasSelection = false;\n if (target.checked) {\n row.setAttribute('aria-selected', 'true');\n hasSelection = true;\n } else {\n row.setAttribute('aria-selected', 'false');\n /** @type {NodeListOf<HTMLInputElement>} */\n const checkboxes = (mdwDataTable.querySelectorAll('td[mdw-selector] input[type=checkbox]'));\n hasSelection = iterateSomeOfArrayLike(checkboxes, checkbox => checkbox.checked);\n }\n if (hasSelection) {\n mdwDataTable.setAttribute('mdw-has-selection', '');\n } else {\n mdwDataTable.removeAttribute('mdw-has-selection');\n }\n return;\n }\n if (target instanceof HTMLTableRowElement) {\n row = target;\n } else if (target instanceof HTMLTableCellElement) {\n cell = target;\n } else {\n cell = findParentCell(/** @type {Element} */ (target));\n }\n\n if (cell) {\n /** @type {HTMLTableRowElement} */\n row = (cell.parentElement);\n const cellFocusable = mdwDataTable.hasAttribute('mdw-cell-focusable');\n if (cellFocusable) {\n updateTabIndex(cell);\n return;\n }\n }\n if (row) {\n const rowFocusable = mdwDataTable.hasAttribute('mdw-row-focusable');\n if (rowFocusable) {\n updateTabIndex(row);\n }\n }\n}\n\n/**\n * @param {HTMLTableRowElement|HTMLTableCellElement} element\n * @param {boolean} [removeOtherTabIndexes=true]\n * @return {void}\n */\nexport function updateTabIndex(element, removeOtherTabIndexes) {\n if (removeOtherTabIndexes !== false) {\n /** @type {HTMLElement} */\n let tbody = element;\n while (tbody != null && tbody instanceof HTMLTableSectionElement === false) {\n tbody = tbody.parentElement;\n }\n if (element instanceof HTMLTableCellElement) {\n iterateArrayLike(tbody.querySelectorAll('td[tabindex=\"0\"]'), (td) => {\n if (td !== element) {\n td.setAttribute('tabindex', '-1');\n }\n });\n }\n if (element instanceof HTMLTableRowElement) {\n iterateArrayLike(tbody.querySelectorAll('tr[tabindex=\"0\"]'), (tr) => {\n if (tr !== element) {\n tr.setAttribute('tabindex', '-1');\n }\n });\n }\n }\n if (element.getAttribute('tabindex') !== '0') {\n element.setAttribute('tabindex', '0');\n dispatchDomEvent(element, 'mdw:tabindexchanged');\n }\n}\n\n/**\n * @param {Element} element\n * @return {HTMLTableCellElement}\n */\nexport function findParentCell(element) {\n let el = element;\n while (el != null) {\n if (el instanceof HTMLTableElement) {\n return null;\n }\n if (el instanceof HTMLTableCellElement) {\n return el;\n }\n el = el.parentElement;\n }\n return null;\n}\n\n/**\n * @param {MouseEvent} event\n * @return {void}\n */\nexport function onHeaderRowClick(event) {\n /** @type {HTMLElement} */\n const targetElement = (event.target);\n const cell = findParentCell(targetElement);\n if (!cell) {\n return;\n }\n if (cell.cellIndex === -1) {\n return;\n }\n if (!cell.hasAttribute('mdw-sortable')) {\n return;\n }\n /** @type {HTMLElement} */\n const headerRow = (event.currentTarget);\n const mdwTable = findElementParentByClassName(headerRow, 'mdw-datatable');\n if (!mdwTable) {\n return;\n }\n if (mdwTable.hasAttribute('mdw-datatable-adapter')) {\n return;\n }\n let ascending = true;\n if (cell.hasAttribute('mdw-sorted') && !cell.getAttribute('mdw-sorted')) {\n ascending = false;\n }\n if (ascending) {\n cell.setAttribute('mdw-sorted', '');\n } else {\n cell.setAttribute('mdw-sorted', 'desc');\n }\n iterateArrayLike(cell.parentElement.getElementsByTagName('th'), (th) => {\n if (th !== cell) {\n th.removeAttribute('mdw-sorted');\n }\n });\n\n /** @type {HTMLTableSectionElement} */\n const tbody = getTableBody(mdwTable);\n const rows = [];\n for (let i = tbody.rows.length - 1; i >= 0; i -= 1) {\n rows.push(tbody.rows.item(i));\n tbody.deleteRow(i);\n }\n rows.sort((a, b) => {\n const aCell = a.cells.item(cell.cellIndex);\n const bCell = b.cells.item(cell.cellIndex);\n const aText = aCell.textContent;\n const bText = bCell.textContent;\n if (aCell.dataset.type === 'number') {\n return parseFloat(bText) - parseFloat(aText);\n }\n return bText.localeCompare(aText);\n });\n if (ascending) {\n rows.reverse();\n }\n const fragment = document.createDocumentFragment();\n rows.forEach((row) => {\n fragment.appendChild(row);\n });\n tbody.appendChild(fragment);\n event.stopPropagation();\n}\n\n/**\n * @param {KeyboardEvent} event\n * @return {void}\n */\nexport function onTableBodyKeyDown(event) {\n const currentSelection = document.activeElement;\n let cellIndex = 0;\n /** @type {HTMLTableRowElement} */\n let row = null;\n let isRow = false;\n /** @type {HTMLTableRowElement|HTMLTableCellElement} */\n let nextSelection = null;\n if (currentSelection instanceof HTMLTableCellElement) {\n ({ cellIndex } = currentSelection);\n /** @type {HTMLTableRowElement} */\n row = (currentSelection.parentElement);\n } else if (currentSelection instanceof HTMLTableRowElement) {\n isRow = true;\n row = currentSelection;\n }\n if (!row) {\n return;\n }\n /** @type {HTMLTableSectionElement} */\n const tbody = (event.currentTarget);\n if (event.key === 'ArrowUp' || (event.key === 'Up')) {\n if (row.sectionRowIndex === 0) {\n return;\n }\n const newRow = tbody.rows.item(row.sectionRowIndex - 1);\n if (isRow) {\n nextSelection = newRow;\n } else {\n nextSelection = newRow.cells.item(cellIndex);\n }\n } else if (event.key === 'ArrowDown' || (event.key === 'Down')) {\n const newIndex = row.sectionRowIndex + 1;\n if (newIndex >= tbody.rows.length) {\n return;\n }\n const newRow = tbody.rows.item(newIndex);\n if (isRow) {\n nextSelection = newRow;\n } else {\n nextSelection = newRow.cells.item(cellIndex);\n }\n } else if (event.ctrlKey && event.key === 'Home') {\n if (row.sectionRowIndex === 0 && cellIndex === 0) {\n return;\n }\n const newRow = tbody.rows.item(0);\n if (isRow) {\n nextSelection = newRow;\n } else {\n nextSelection = newRow.cells.item(0);\n }\n } else if (event.ctrlKey && event.key === 'End') {\n const newRowIndex = tbody.rows.length - 1;\n let newCellIndex = 0;\n if (!isRow) {\n newCellIndex = row.cells.length - 1;\n }\n if (row.sectionRowIndex === newRowIndex && cellIndex === newCellIndex) {\n return;\n }\n const newRow = tbody.rows.item(newRowIndex);\n if (isRow) {\n nextSelection = newRow;\n } else {\n nextSelection = newRow.cells.item(newCellIndex);\n }\n } else if (event.key === 'Home') {\n if (isRow) {\n return;\n }\n if (cellIndex === 0) {\n return;\n }\n nextSelection = row.cells.item(0);\n } else if (event.key === 'End') {\n if (isRow) {\n return;\n }\n const newIndex = row.cells.length - 1;\n if (newIndex === cellIndex) {\n return;\n }\n nextSelection = row.cells.item(newIndex);\n } else {\n const isRtlEnabled = isRtl();\n let isLeft = false;\n let isRight = false;\n if (event.key === 'ArrowLeft' || (event.key === 'Left')) {\n if (isRtlEnabled) {\n isRight = true;\n } else {\n isLeft = true;\n }\n }\n if (event.key === 'ArrowRight' || (event.key === 'Right')) {\n if (isRtlEnabled) {\n isLeft = true;\n } else {\n isRight = true;\n }\n }\n if (isLeft) {\n if (isRow) {\n return;\n }\n if (cellIndex === 0) {\n return;\n }\n nextSelection = row.cells.item(cellIndex - 1);\n } else if (isRight) {\n if (isRow) {\n return;\n }\n const newIndex = cellIndex + 1;\n if (newIndex >= row.cells.length) {\n return;\n }\n nextSelection = row.cells.item(newIndex);\n }\n }\n if (nextSelection) {\n event.stopPropagation();\n event.preventDefault();\n currentSelection.setAttribute('tabindex', '-1');\n nextSelection.focus();\n updateTabIndex(nextSelection, false);\n }\n}\n\n/**\n * @param {Element} element\n * @return {void}\n */\nexport function detach(element) {\n element.removeAttribute('mdw-js');\n const headerRow = getHeaderRow(element);\n const tbody = getTableBody(element);\n headerRow.removeEventListener('click', onHeaderRowClick);\n tbody.removeEventListener('keydown', onTableBodyKeyDown);\n tbody.removeEventListener('click', onTableBodyClick);\n}\n\n/**\n * @param {Element} datatableElement\n * @return {HTMLElement}\n */\nexport function getScroller(datatableElement) {\n /** @type {HTMLElement} */\n let scroller = (datatableElement.getElementsByClassName('mdw-datatable__scroller')[0]);\n if (!scroller) {\n scroller = document.createElement('div');\n scroller.classList.add('mdw-datatable__scroller');\n const footer = datatableElement.getElementsByClassName('mdw-datatable__footer')[0];\n if (footer) {\n datatableElement.insertBefore(scroller, footer);\n } else {\n datatableElement.appendChild(scroller);\n }\n // Move table into scroller if it exists\n const table = datatableElement.getElementsByTagName('table')[0];\n if (table) {\n table.parentElement.removeChild(table);\n scroller.appendChild(table);\n }\n }\n return scroller;\n}\n\n/**\n * @param {Element} datatableElement\n * @return {HTMLTableElement}\n */\nexport function getTable(datatableElement) {\n if (datatableElement instanceof HTMLTableElement) {\n return datatableElement;\n }\n let table = datatableElement.getElementsByTagName('table')[0];\n if (!table) {\n const scroller = getScroller(datatableElement);\n table = document.createElement('table');\n scroller.appendChild(table);\n }\n return table;\n}\n\n/**\n * @param {Element} tableElement\n * @return {HTMLTableRowElement}\n */\nexport function getHeaderRow(tableElement) {\n let thead = tableElement.getElementsByTagName('thead')[0];\n if (!thead) {\n const table = getTable(tableElement);\n thead = document.createElement('thead');\n table.appendChild(thead);\n }\n let headerRow = thead.getElementsByTagName('tr')[0];\n if (!headerRow) {\n headerRow = document.createElement('tr');\n thead.appendChild(headerRow);\n }\n return headerRow;\n}\n\n/**\n * @param {Element} datatableElement\n * @return {HTMLTableSectionElement}\n */\nexport function getTableBody(datatableElement) {\n let tbody = datatableElement.getElementsByTagName('tbody')[0];\n if (!tbody) {\n const table = getTable(datatableElement);\n tbody = document.createElement('tbody');\n table.appendChild(tbody);\n }\n return tbody;\n}\n","/**\n * @callback DataTableAdapterColumnFormatter<T>\n * @param {any} value\n * @param {T} [object]\n * @return {any}\n * @template T\n */\n\n/**\n * @callback DataTableAdapterColumnRenderer<T>\n * @param {HTMLTableCellElement} cell,\n * @param {any} value\n * @param {T} data\n * @return {void}\n * @template T\n */\n\n/**\n * Constructor options for DataTableAdapterColumn\n * @typedef DataTableAdapterColumnOptions<T>\n * @property {string} key\n * @property {(string|DocumentFragment)} [name='']\n * @property {'checkbox'|string} [type]\n * @property {boolean} [rowSelector]\n * @property {string} [tooltip]\n * @property {boolean} [sortable]\n * @property {boolean} [primaryColumn]\n * @property {HTMLElement} [customSortIcon]\n * @property {string} [innerHTML]\n * @property {DocumentFragment} [fragment]\n * @property {DataTableAdapterColumnRenderer<T>} [renderer]\n * @property {DataTableAdapterColumnFormatter<T>} [formatter]\n * @template T\n */\n\n\n/** @return {HTMLLabelElement} */\nfunction constructTableCheckbox() {\n const checkboxLabel = document.createElement('label');\n checkboxLabel.className = 'mdw-selection';\n const input = document.createElement('input');\n input.className = 'mdw-selection__input';\n input.setAttribute('type', 'checkbox');\n const icon = document.createElement('div');\n icon.className = 'mdw-selection__icon';\n checkboxLabel.appendChild(input);\n checkboxLabel.appendChild(icon);\n return checkboxLabel;\n}\n\n\n/**\n * @template T\n */\nexport default class DataTableAdapterColumn {\n /** @param {DataTableAdapterColumnOptions<T>} options */\n constructor(options) {\n this.element = document.createElement('th');\n if (options.innerHTML != null) {\n this.element.innerHTML = options.innerHTML;\n } else if (options.fragment) {\n this.element.appendChild(options.fragment);\n }\n this.key = options.key;\n this.element.dataset.key = options.key;\n\n if (options.sortable) {\n this.element.setAttribute('mdw-sortable', '');\n let sortIcon = options.customSortIcon;\n if (!sortIcon) {\n sortIcon = document.createElement('div');\n sortIcon.classList.add('mdw-datatable__sort-icon');\n sortIcon.classList.add('material-icons');\n sortIcon.textContent = 'arrow_downward';\n }\n if (this.element.hasChildNodes()) {\n this.element.insertBefore(this.element.firstChild, options.customSortIcon);\n } else {\n this.element.appendChild(sortIcon);\n }\n }\n if (options.tooltip) {\n const wrapper = document.createElement('span');\n wrapper.classList.add('mdw-tooltip__wrapper');\n const target = document.createElement('span');\n target.classList.add('mdw-tooltip__target');\n if (!options.name) {\n target.textContent = '';\n } else if (typeof options.name === 'string') {\n target.textContent = options.name;\n } else {\n target.appendChild(options.name);\n }\n const tooltip = document.createElement('div');\n tooltip.classList.add('mdw-tooltip');\n tooltip.textContent = options.tooltip;\n wrapper.appendChild(target);\n wrapper.appendChild(tooltip);\n this.element.appendChild(wrapper);\n } else if (options.name) {\n let node;\n if (typeof options.name === 'string') {\n node = document.createTextNode(options.name);\n } else {\n node = options.name;\n }\n this.element.appendChild(node);\n }\n\n this.primaryColumn = options.primaryColumn;\n if (options.primaryColumn) {\n this.element.setAttribute('mdw-primary-column', '');\n }\n\n this.rowSelector = options.rowSelector;\n\n if (this.rowSelector) {\n this.element.setAttribute('mdw-selector', '');\n }\n if (options.type) {\n this.element.dataset.type = options.type;\n this.type = options.type;\n }\n if (this.rowSelector && this.type === 'checkbox') {\n const checkboxLabel = constructTableCheckbox();\n this.element.appendChild(checkboxLabel);\n }\n\n if (options.renderer) {\n this.renderer = options.renderer;\n } else if (options.type === 'checkbox') {\n this.renderer = DataTableAdapterColumn.defaultCheckboxRenderer;\n } else {\n this.renderer = DataTableAdapterColumn.defaultCellRenderer;\n }\n this.formatter = options.formatter || (value => value);\n }\n\n /**\n * @param {HTMLTableCellElement} cell\n * @param {any} value\n * @return {void}\n */\n static defaultCheckboxRenderer(cell, value) {\n let input = cell.getElementsByTagName('input')[0];\n const checked = !!value;\n if (!input) {\n const checkboxLabel = document.createElement('label');\n checkboxLabel.className = 'mdw-selection';\n input = document.createElement('input');\n input.className = 'mdw-selection__input';\n input.setAttribute('type', 'checkbox');\n input.checked = checked;\n const icon = document.createElement('div');\n icon.className = 'mdw-selection__icon';\n checkboxLabel.appendChild(input);\n checkboxLabel.appendChild(icon);\n cell.appendChild(checkboxLabel);\n }\n if (input.checked !== checked) {\n input.checked = checked;\n }\n }\n\n /**\n * @param {HTMLTableCellElement} cell\n * @param {any} value\n * @return {void}\n */\n static defaultCellRenderer(cell, value) {\n let stringValue;\n if (value == null) {\n stringValue = '';\n } else {\n stringValue = value.toString();\n }\n const len = cell.childNodes.length;\n let foundTextNode = false;\n for (let i = len - 1; i >= 0; i -= 1) {\n const node = cell.childNodes.item(i);\n if (!foundTextNode && node.nodeType === Node.TEXT_NODE) {\n if (node.nodeValue !== stringValue) {\n node.nodeValue = stringValue;\n }\n foundTextNode = true;\n } else {\n cell.removeChild(node);\n }\n }\n if (!foundTextNode) {\n const node = document.createTextNode(stringValue);\n cell.appendChild(node);\n }\n }\n}\n","import { iterateArrayLike, iterateSomeOfArrayLike } from '../../core/dom';\n\nimport * as Button from '../../components/button/index';\nimport * as DataTable from '../../components/datatable/index';\nimport DataTableAdapterColumn from './column';\n\n/**\n * @typedef {import('./column').DataTableAdapterColumnOptions<T>} DataTableAdapterColumnOptions<T>\n * @template T\n */\n\n/**\n * Callback fired when value change is requested\n * Return truthy value to cancel updating object\n * @callback DataTableAdapterOnValueChangeRequestedCallback<T>\n * @param {T} object\n * @param {string} key\n * @param {any} value\n * @return {boolean} cancel\n * @template T\n */\n\n/**\n * Callback fired when value is changed\n * @callback DataTableAdapterOnValueChangedCallback<T>\n * @param {T} object\n * @param {string} key\n * @param {any} value\n * @return {void}\n * @template T\n */\n\n/**\n * @callback DataTableAdapterFilter<T>\n * @param {T} element\n * @param {number} [index]\n * @param {T[]} array\n * @return {any}\n * @template T\n */\n\n/**\n * @callback DataTableAdapterSorter<T>\n * @param {T} a\n * @param {T} b\n * @return {number}\n * @template T\n */\n\n/**\n * @template T\n */\nexport default class DataTableAdapter {\n /**\n * @param {Object} options\n * @param {HTMLElement} options.datatable\n * @param {T[]} options.datasource Object array\n * @param {DataTableAdapterFilter<T>} [options.filter]\n * @param {DataTableAdapterOnValueChangeRequestedCallback<T>} [options.onValueChangeRequested]\n * @param {DataTableAdapterOnValueChangedCallback<T>} [options.onValueChanged]\n * @param {DataTableAdapterSorter<T>} [options.sorter]\n */\n constructor(options) {\n this.element = options.datatable;\n this.datasource = options.datasource;\n this.filter = options.filter;\n this.sorter = options.sorter;\n this.onValueChangeRequested = options.onValueChangeRequested || (() => false);\n this.onValueChanged = options.onValueChanged || (() => {});\n\n this.onElementClickListener = (event) => {\n this.handleClickInteraction(event);\n };\n // Use one click event listener to reduce overhead and allow dynamic content\n this.element.addEventListener('click', this.onElementClickListener);\n\n this.onElementScrollListener = () => {\n this.onElementScroll();\n };\n\n /** @type {HTMLTableRowElement} */\n this.tabindexRow = null;\n /** @type {Object} */\n this.tabindexRowData = null;\n this.element.addEventListener('mdw:tabindexchanged', (event) => {\n if (this.element.hasAttribute('mdw-row-focusable')) {\n this.tabindexRow = /** @type {HTMLTableRowElement} */ (event.target);\n this.tabindexRowData = this.getDataForTableRow(this.tabindexRow);\n }\n });\n DataTable.attach(this.element);\n this.scroller = DataTable.getScroller(this.element);\n this.element.setAttribute('mdw-datatable-adapter', '');\n /** @type {DataTableAdapterColumn<T>[]} */\n this.columns = [];\n this.page = 0;\n this.pageLimit = 0;\n this.debounceTimeMs = 0;\n this.throttleTimeMs = 0;\n this.useLazyRendering = false;\n }\n\n detach() {\n this.element.removeAttribute('mdw-datatable-adapter');\n this.element = null;\n this.datasource = null;\n this.filteredDatasource = null;\n }\n\n /**\n * @param {boolean} [forceRefresh=false]\n * @return {void}\n */\n performThrottledRender(forceRefresh = false) {\n this.performLazyRender(forceRefresh);\n if (this.throttledRenderPending) {\n this.throttledRenderPending = false;\n this.scheduleThrottledRender();\n }\n }\n\n /**\n * @param {boolean} [forceRefresh=false]\n * @return {void}\n */\n scheduleThrottledRender(forceRefresh = false) {\n if (this.throttleTimeMs < 17) {\n window.requestAnimationFrame(() => this.performThrottledRender(forceRefresh));\n } else {\n setTimeout(() => this.performThrottledRender(forceRefresh), this.throttleTimeMs);\n }\n }\n\n onElementScroll() {\n if (this.debounceTimeout) {\n clearTimeout(this.debounceTimeout);\n this.debounceTimeout = null;\n }\n if (this.throttledRenderPending) {\n // Will perform in the future\n return;\n }\n if (this.debounceTimeMs) {\n this.debounceTimeout = setTimeout(() => {\n this.scheduleThrottledRender();\n this.throttledRenderPending = true;\n }, this.debounceTimeMs);\n } else {\n this.scheduleThrottledRender();\n this.throttledRenderPending = true;\n }\n }\n\n buildScrollListener() {\n this.scroller.addEventListener('scroll', this.onElementScrollListener);\n }\n\n destroyScrollListener() {\n this.scroller.removeEventListener('scroll', this.onElementScrollListener);\n }\n\n /**\n * @param {PointerEvent|MouseEvent} event\n * @return {void}\n */\n handleClickInteraction(event) {\n const { target } = event;\n if (target instanceof HTMLInputElement) {\n if (target.hasAttribute('type') && target.getAttribute('type') === 'checkbox') {\n event.stopPropagation();\n const currentCell = this.getTableCell(target);\n if (currentCell.tagName.toLowerCase() === 'th') {\n this.setCheckOnAllRows(target.checked, currentCell.cellIndex);\n this.setHasSelection(target.checked);\n return;\n }\n const currentRow = this.getTableRow(target);\n const object = this.getDataForTableRow(currentRow);\n if (this.onValueChangeRequested(object, currentCell.dataset.key, target.checked)) {\n event.preventDefault();\n return;\n }\n object[currentCell.dataset.key] = target.checked;\n this.onValueChanged(object, currentCell.dataset.key, target.checked);\n if (currentCell.hasAttribute('mdw-selector')) {\n if (target.checked) {\n currentRow.setAttribute('aria-selected', 'true');\n this.setHasSelection(true);\n } else {\n currentRow.removeAttribute('aria-selected');\n const selectedRows = this.getSelectedRows();\n this.setHasSelection(selectedRows.length !== 0);\n }\n }\n }\n return;\n }\n const currentCell = this.getTableCell(/** @type {HTMLElement} */ (target));\n if (currentCell) {\n if (currentCell.tagName.toLowerCase() === 'th' && currentCell.hasAttribute('mdw-sortable')) {\n event.stopPropagation();\n let ascending = true;\n if (currentCell.hasAttribute('mdw-sorted') && !currentCell.getAttribute('mdw-sorted')) {\n ascending = false;\n }\n this.updateSortIcons(currentCell, ascending);\n if (this.updateSortColumn) {\n this.updateSortColumn(currentCell, ascending);\n }\n }\n }\n }\n\n /**\n * Overridable sorting method\n * @param {HTMLTableHeaderCellElement} [tableHeaderCell] null if none\n * @param {boolean} [ascending=false]\n * @return {void}\n */\n updateSortColumn(tableHeaderCell, ascending) {\n if (!tableHeaderCell) {\n this.sorter = null;\n this.refresh();\n return;\n }\n if (tableHeaderCell.cellIndex === -1) {\n // Header not attached to row!\n return;\n }\n const index = tableHeaderCell.cellIndex;\n const tableColumn = this.columns[index];\n const direction = ascending ? 1 : -1;\n this.sorter = ((a, b) => {\n const valueA = a[tableColumn.key];\n const valueB = b[tableColumn.key];\n if (valueA == null) {\n if (valueB == null) {\n return 0;\n }\n return -1 * direction;\n }\n if (valueB == null) {\n return direction;\n }\n if (tableColumn.type === 'number') {\n return (parseFloat(valueA) - parseFloat(valueB)) * direction;\n }\n if (tableColumn.type === 'checkbox') {\n return ((valueA ? 1 : 0) - (valueB ? 1 : 0)) * direction;\n }\n if (valueA.localeCompare) {\n return valueA.localeCompare(valueB) * direction;\n }\n // eslint-disable-next-line eqeqeq\n if (valueA == valueB) {\n return 0;\n }\n return (valueA - valueB) * direction;\n });\n this.refresh();\n }\n\n /**\n * @param {HTMLTableHeaderCellElement} [sortedTableHeaderCell] null if none\n * @param {boolean} [ascending=false]\n * @return {void}\n */\n updateSortIcons(sortedTableHeaderCell, ascending) {\n if (sortedTableHeaderCell) {\n if (ascending) {\n sortedTableHeaderCell.setAttribute('mdw-sorted', '');\n } else {\n sortedTableHeaderCell.setAttribute('mdw-sorted', 'desc');\n }\n }\n iterateArrayLike(this.element.getElementsByTagName('th'), (otherTableHeader) => {\n if (otherTableHeader !== sortedTableHeaderCell) {\n otherTableHeader.removeAttribute('mdw-sorted');\n }\n });\n }\n\n /**\n * @param {boolean} value\n * @param {number} columnIndex\n * @return {void}\n */\n setCheckOnAllRows(value, columnIndex) {\n const column = this.columns[columnIndex];\n this.datasource.forEach((object) => {\n object[column.key] = value; // eslint-disable-line no-param-reassign\n });\n this.refresh();\n }\n\n /**\n * @param {HTMLElement} element\n * @return {HTMLTableRowElement}\n */\n getTableRow(element) {\n if (element === this.element) {\n return null;\n }\n if (element instanceof HTMLTableRowElement) {\n return element;\n }\n if (!element.parentElement) {\n return null;\n }\n return this.getTableRow(element.parentElement);\n }\n\n /**\n * @param {HTMLElement} element\n * @return {HTMLTableCellElement}\n */\n getTableCell(element) {\n if (element === this.element) {\n return null;\n }\n if (element instanceof HTMLTableCellElement) {\n return element;\n }\n if (!element.parentElement) {\n return null;\n }\n return this.getTableCell(element.parentElement);\n }\n\n /** @return {T[]} */\n getSelectedRows() {\n const selectorColumn = this.columns.filter(column => column.rowSelector)[0];\n if (!selectorColumn) {\n return [];\n }\n return this.getDatasource().filter(row => row[selectorColumn.key]);\n }\n\n /**\n * @param {boolean} value\n * @return {void}\n */\n setHasSelection(value) {\n if (value) {\n this.element.setAttribute('mdw-has-selection', '');\n return;\n }\n this.element.removeAttribute('mdw-has-selection');\n }\n\n /**\n * @param {T[]} datasource Object array\n * @return {void}\n */\n setDatasource(datasource) {\n this.datasource = datasource;\n }\n\n /**\n * Toggle lazy rending for datasources\n * @param {boolean} value\n * @return {void}\n */\n setUseLazyRendering(value) {\n this.useLazyRendering = value;\n if (value) {\n this.buildScrollListener();\n } else {\n this.destroyScrollListener();\n }\n }\n\n /**\n * @param {DataTableAdapterColumnOptions<T>} options\n * @return {DataTableAdapterColumn<T>}\n */\n addColumn(options) {\n const tableColumn = new DataTableAdapterColumn(options);\n const headerRow = this.getHeaderRow();\n headerRow.appendChild(tableColumn.element);\n this.columns.push(tableColumn);\n return tableColumn;\n }\n\n updatePaginator() {\n if (!this.pageLimit) {\n return;\n }\n const min = this.page * this.pageLimit;\n const total = this.getDatasource().length;\n let max = this.pageLimit + min;\n if (max > total) {\n max = total;\n }\n this.paginationDetailsElement.textContent = `${min + 1}-${max} of ${total}`;\n this.previousPageButton.setAttribute('aria-disabled', (min === 0 ? 'true' : 'false'));\n this.nextPageButton.setAttribute('aria-disabled', (max === total ? 'true' : 'false'));\n }\n\n /**\n * @param {Object} options\n * @param {boolean} [options.disabled=false]\n * @param {number} [options.limit=10]\n * @param {number[]} [options.limits=[10,25,50,100]]\n * @return {void}\n */\n setPagination(options = {}) {\n const footer = this.getFooter(!options.disabled);\n if (options.disabled) {\n this.pageLimit = 0;\n this.page = 0;\n if (footer) {\n footer.style.display = 'none';\n }\n this.needsDraw = true;\n return;\n }\n footer.style.display = '';\n let optionsElement = footer.getElementsByClassName('mdw-datatable__footer-options')[0];\n if (!optionsElement) {\n optionsElement = document.createElement('div');\n optionsElement.classList.add('mdw-datatable__footer-options');\n const rowsPerPageText = document.createElement('span');\n rowsPerPageText.textContent = 'Rows per page';\n const limits = options.limits || [10, 25, 50, 100];\n const limitsElement = document.createElement('label');\n limitsElement.classList.add('mdw-textfield');\n limitsElement.setAttribute('mdw-solo', '');\n const select = document.createElement('select');\n select.classList.add('mdw-textfield__input');\n limits.forEach((limit) => {\n const option = document.createElement('option');\n option.value = limit.toString();\n option.textContent = limit.toString();\n select.appendChild(option);\n });\n select.setAttribute('value', (options.limit && options.limit.toString()) || '10');\n const dropdownIcon = document.createElement('div');\n dropdownIcon.classList.add('mdw-textfield__icon');\n dropdownIcon.setAttribute('mdw-dropdown', '');\n limitsElement.appendChild(select);\n limitsElement.appendChild(dropdownIcon);\n optionsElement.appendChild(rowsPerPageText);\n optionsElement.appendChild(limitsElement);\n footer.appendChild(optionsElement);\n select.addEventListener('input', () => {\n this.pageLimit = parseInt(select.value, 10);\n this.updateRowCount(false);\n this.updatePaginator();\n this.refreshRows();\n });\n }\n if (!this.paginationDetailsElement) {\n this.paginationDetailsElement = footer.getElementsByClassName('mdw-datatable__footer-details')[0];\n }\n if (!this.paginationDetailsElement) {\n this.paginationDetailsElement = document.createElement('div');\n this.paginationDetailsElement.classList.add('mdw-datatable__footer-details');\n footer.appendChild(this.paginationDetailsElement);\n }\n if (!this.paginationControls) {\n this.paginationControls = footer.getElementsByClassName('mdw-datatable__footer-controls')[0];\n }\n if (!this.paginationControls) {\n this.paginationControls = document.createElement('div');\n this.paginationControls.classList.add('mdw-datatable__footer-controls');\n footer.appendChild(this.paginationControls);\n }\n if (!this.previousPageButton || !this.nextPageButton) {\n const buttons = this.paginationControls.getElementsByClassName('mdw-button');\n if (buttons.length !== 2) {\n this.previousPageButton = document.createElement('a');\n this.previousPageButton.classList.add('mdw-button');\n this.previousPageButton.classList.add('material-icons');\n this.previousPageButton.setAttribute('mdw-icon', '');\n this.previousPageButton.textContent = 'chevron_left';\n this.paginationControls.appendChild(this.previousPageButton);\n Button.attach(this.previousPageButton);\n\n this.nextPageButton = document.createElement('a');\n this.nextPageButton.classList.add('mdw-button');\n this.nextPageButton.classList.add('material-icons');\n this.nextPageButton.setAttribute('mdw-icon', '');\n this.nextPageButton.textContent = 'chevron_right';\n this.paginationControls.appendChild(this.nextPageButton);\n Button.attach(this.nextPageButton);\n } else {\n this.previousPageButton = buttons[0];\n this.nextPageButton = buttons[1];\n }\n this.previousPageButton.addEventListener('click', () => {\n if (this.previousPageButton.getAttribute('aria-disabled') === 'true') {\n return;\n }\n this.page -= 1;\n this.updateRowCount(false);\n this.updatePaginator();\n this.refreshRows();\n });\n this.nextPageButton.addEventListener('click', () => {\n if (this.nextPageButton.getAttribute('aria-disabled') === 'true') {\n return;\n }\n this.page += 1;\n this.updateRowCount(false);\n this.updatePaginator();\n this.refreshRows();\n });\n }\n this.pageLimit = options.limit || 10;\n this.updateRowCount(false);\n this.updatePaginator();\n this.refreshRows();\n }\n\n /**\n * @param {boolean} create\n * @return {HTMLElement}\n */\n getFooter(create) {\n /** @type {HTMLElement} */\n let footer = (this.element.getElementsByClassName('mdw-datatable__footer')[0]);\n if (!footer && create) {\n footer = document.createElement('div');\n footer.classList.add('mdw-datatable__footer');\n this.element.appendChild(footer);\n }\n return footer;\n }\n\n /**\n * @param {HTMLTableRowElement} el\n * @param {?number} viewportTop\n * @param {?number} viewportBottom\n * @return {boolean}\n */\n isRowVisible(\n el,\n viewportTop = this.scroller.scrollTop,\n viewportBottom = this.scroller.scrollTop + this.scroller.offsetHeight\n ) {\n const rowTop = el.offsetTop;\n const rowBottom = rowTop + el.offsetHeight;\n if (rowTop > viewportTop && rowTop < viewportBottom) {\n // Top of row is visible\n return true;\n }\n if (rowBottom > viewportTop && rowBottom < viewportBottom) {\n // Bottom of row is visible\n return true;\n }\n return false;\n }\n\n /**\n * @param {(HTMLTableRowElement[])} visibleRows\n * @return {void}\n */\n clearNonvisibleRows(visibleRows) {\n const tbody = this.getTableBody();\n if (visibleRows.length === tbody.rows.length) {\n return;\n }\n let firstRowIndex = Infinity;\n let lastRowIndex = -Infinity;\n if (visibleRows.length) {\n firstRowIndex = visibleRows[0].sectionRowIndex;\n lastRowIndex = visibleRows[visibleRows.length - 1].sectionRowIndex;\n }\n iterateArrayLike(tbody.rows, (row, index) => {\n if (index >= firstRowIndex && index <= lastRowIndex) {\n return;\n }\n if (row.lastChild) {\n // Store row height to prevent layout shifting\n row.style.setProperty('height', `${row.offsetHeight || 0}px`);\n }\n while (row.lastChild) {\n row.removeChild(row.lastChild);\n }\n });\n }\n\n /**\n * @return {HTMLTableRowElement[]}\n */\n getLazyRenderRows() {\n const tbody = this.getTableBody();\n const len = tbody.rows.length;\n const rows = [];\n const minRowCount = window.screen.height / 48;\n if (len <= minRowCount) {\n iterateArrayLike(tbody.rows, (row) => {\n rows.push(row);\n });\n return rows;\n }\n let foundFirstVisibleRow = false;\n let startIndex = 0;\n let endIndex = 0;\n const viewportTop = this.scroller.scrollTop;\n const viewportBottom = viewportTop + this.scroller.offsetHeight;\n iterateSomeOfArrayLike(tbody.rows, (row, index) => {\n if (this.isRowVisible(row, viewportTop, viewportBottom)) {\n if (!foundFirstVisibleRow) {\n foundFirstVisibleRow = true;\n startIndex = index;\n }\n endIndex = index;\n } else if (foundFirstVisibleRow) {\n return true;\n }\n return false;\n });\n\n while ((endIndex - startIndex) + 1 < minRowCount) {\n if (startIndex === 0) {\n endIndex += 1;\n } else if (endIndex === len - 1) {\n startIndex -= 1;\n } else {\n startIndex -= 1;\n endIndex += 1;\n }\n }\n for (let i = startIndex; i <= endIndex; i += 1) {\n rows.push(tbody.rows.item(i));\n }\n\n return rows;\n }\n\n /**\n * @param {boolean} forceRefresh\n * @return {void}\n */\n performLazyRender(forceRefresh = false) {\n const visibleRows = this.getLazyRenderRows();\n visibleRows.forEach((row) => {\n if (forceRefresh || !row.cells.length) {\n this.refreshRow(row.sectionRowIndex);\n }\n });\n this.clearNonvisibleRows(visibleRows);\n }\n\n /**\n * @param {DataTableAdapterFilter<T>} filter\n * @return {void}\n */\n setFilter(filter) {\n this.filter = filter;\n this.refreshFilter();\n }\n\n /**\n * @param {DataTableAdapterSorter<T>} sorter\n * @return {void}\n */\n setSorter(sorter) {\n this.sorter = sorter;\n this.refreshFilter();\n }\n\n refreshFilter() {\n if (this.filter && this.sorter) {\n this.filteredDatasource = this.datasource.filter(this.filter).sort(this.sorter);\n } else if (this.filter) {\n this.filteredDatasource = this.datasource.filter(this.filter);\n } else if (this.sorter) {\n this.filteredDatasource = this.datasource.slice(0).sort(this.sorter);\n } else {\n this.filteredDatasource = null;\n }\n }\n\n /**\n * Get filtered datasource\n * @return {T[]}\n */\n getDatasource() {\n if (this.filter || this.sorter) {\n if (this.filteredDatasource == null) {\n this.refreshFilter();\n }\n return this.filteredDatasource;\n }\n return this.datasource;\n }\n\n /**\n * Update number of rows in table\n * @param {boolean} [refresh=false] Refresh new rows\n * @return {void}\n */\n updateRowCount(refresh) {\n const tbody = this.getTableBody();\n const rowLength = tbody.rows.length;\n\n const datasource = this.getDatasource();\n let rowsToDisplay = datasource.length;\n if (this.pageLimit) {\n let offset = this.page * this.pageLimit;\n if (offset > rowsToDisplay) {\n // Datasource or filter likely changed\n // Reset to page 0\n this.page = 0;\n offset = 0;\n }\n rowsToDisplay -= offset;\n if (rowsToDisplay > this.pageLimit) {\n rowsToDisplay = this.pageLimit;\n }\n }\n\n const rowDifference = rowsToDisplay - rowLength;\n const newRows = [];\n\n if (rowDifference < 0) {\n // too many rows\n for (let i = rowLength - 1; i >= rowsToDisplay; i -= 1) {\n const row = tbody.rows.item(i);\n tbody.removeChild(row);\n }\n }\n if (rowDifference > 0) {\n const fragment = document.createDocumentFragment();\n for (let i = 0; i < rowDifference; i += 1) {\n const row = document.createElement('tr');\n if (this.element.hasAttribute('mdw-row-focusable')) {\n row.setAttribute('tabindex', '-1');\n }\n newRows.push(row);\n fragment.appendChild(row);\n }\n tbody.appendChild(fragment);\n }\n if (refresh && rowDifference !== 0) {\n if (this.useLazyRendering) {\n this.scheduleThrottledRender(true);\n } else {\n newRows.forEach((row) => {\n this.refreshRow(row.sectionRowIndex);\n });\n }\n }\n }\n\n /** @return {void} */\n refreshRows() {\n if (this.useLazyRendering) {\n this.performLazyRender(true);\n } else {\n const tbody = this.getTableBody();\n iterateArrayLike(tbody.rows, (row, index) => {\n this.refreshRow(index);\n });\n }\n if (this.tabindexRowData) {\n const row = this.getTableRowForData(this.tabindexRowData);\n if (row !== this.tabindexRow) {\n if (this.tabindexRow) {\n this.tabindexRow.setAttribute('tabindex', '-1');\n }\n if (row) {\n if (document.activeElement === this.tabindexRow) {\n row.focus();\n }\n DataTable.updateTabIndex(row, false);\n }\n this.tabindexRow = row;\n }\n }\n if (this.useLazyRendering) {\n this.scheduleThrottledRender();\n }\n }\n\n /** @return {void} */\n refresh() {\n this.refreshFilter();\n this.updateRowCount(false);\n this.updatePaginator();\n this.refreshRows();\n }\n\n /**\n * @param {HTMLTableRowElement} row\n * @return {T}\n */\n getDataForTableRow(row) {\n const index = (row.sectionRowIndex) + (this.page * this.pageLimit);\n return this.getDatasource()[index];\n }\n\n /**\n * @param {T} data\n * @return {HTMLTableRowElement} row\n */\n getTableRowForData(data) {\n const datasourceIndex = this.getDatasource().indexOf(data);\n if (datasourceIndex === -1) {\n return null;\n }\n const minIndex = this.page * this.pageLimit;\n return this.getTableBody().rows.item(datasourceIndex - minIndex);\n }\n\n /**\n * @param {number} rowIndex\n * @return {void}\n */\n refreshRow(rowIndex) {\n const row = this.getTableBody().rows.item(rowIndex);\n row.style.removeProperty('height');\n this.columns.forEach((column, columnIndex) => {\n this.refreshCell(columnIndex, rowIndex);\n });\n }\n\n /**\n * @param {number} columnIndex\n * @param {number} rowIndex\n * @return {void}\n */\n refreshCell(columnIndex, rowIndex) {\n const tableColumn = this.columns[columnIndex];\n const row = this.getTableBody().rows.item(rowIndex);\n let len = row.cells.length;\n while (len <= columnIndex) {\n // Generate cells\n const missingColumn = this.columns[len];\n const missingCell = row.insertCell();\n if (missingColumn.type) {\n missingCell.dataset.type = missingColumn.type;\n }\n missingCell.dataset.key = missingColumn.key;\n if (missingColumn.rowSelector) {\n missingCell.setAttribute('mdw-selector', '');\n }\n if (missingColumn.primaryColumn) {\n missingCell.setAttribute('mdw-primary-column', '');\n }\n len += 1;\n }\n const cell = row.cells.item(columnIndex);\n const data = this.getDataForTableRow(row);\n const value = data[tableColumn.key];\n if (tableColumn.rowSelector) {\n if (row.getAttribute('aria-selected') !== (value ? 'true' : 'false')) {\n row.setAttribute('aria-selected', (value ? 'true' : 'false'));\n }\n }\n const formattedValue = tableColumn.formatter(value, data);\n tableColumn.renderer(cell, formattedValue, data);\n }\n\n /**\n * @param {HTMLTableCellElement|DataTableAdapterColumn|number|string} search\n * @return {DataTableAdapterColumn<T>}\n */\n getColumn(search) {\n if (search instanceof DataTableAdapterColumn) {\n return search;\n }\n if (search instanceof HTMLTableCellElement) {\n return this.columns.filter(column => column.element === search)[0];\n }\n if (typeof search === 'string') {\n return this.columns.filter(column => column.element.dataset.key === search)[0];\n }\n return this.columns[search];\n }\n\n /** @return {HTMLTableElement} */\n getTable() {\n let table = this.element.getElementsByTagName('table')[0];\n if (!table) {\n table = document.createElement('table');\n const footer = this.element.getElementsByClassName('mdw-datatable__footer')[0];\n if (footer) {\n this.element.insertBefore(table, footer);\n } else {\n this.element.appendChild(table);\n }\n }\n return table;\n }\n\n /** @return {HTMLTableRowElement} */\n getHeaderRow() {\n let thead = this.element.getElementsByTagName('thead')[0];\n if (!thead) {\n const table = this.getTable();\n thead = document.createElement('thead');\n table.appendChild(thead);\n }\n let headerRow = thead.getElementsByTagName('tr')[0];\n if (!headerRow) {\n headerRow = document.createElement('tr');\n thead.appendChild(headerRow);\n }\n return headerRow;\n }\n\n /** @return {HTMLTableSectionElement} */\n getTableBody() {\n if (this.tbody) {\n return this.tbody;\n }\n this.tbody = this.element.getElementsByTagName('tbody')[0];\n if (!this.tbody) {\n const table = this.getTable();\n this.tbody = document.createElement('tbody');\n table.appendChild(this.tbody);\n }\n return this.tbody;\n }\n\n /**\n * @param {number} columnIndex\n * @return {void}\n */\n refreshColumn(columnIndex) {\n const tbody = this.getTableBody();\n iterateArrayLike(tbody.rows, (row, rowIndex) => {\n this.refreshCell(columnIndex, rowIndex);\n });\n }\n}\n","import { iterateArrayLike } from '../../core/dom';\nimport * as Button from '../../components/button/index';\nimport * as DataTable from '../../components/datatable/index';\nimport * as Menu from '../../components/menu/index';\nimport * as MenuItem from '../../components/menu/item';\nimport DataTableAdapter from '../../adapters/datatable/index';\n\n/** @return {void} */\nfunction initializeMdwComponents() {\n iterateArrayLike(document.querySelectorAll('.mdw-datatable.js'), DataTable.attach);\n iterateArrayLike(document.getElementsByClassName('mdw-button'), Button.attach);\n iterateArrayLike(document.getElementsByClassName('mdw-menu'), Menu.attach);\n}\n\n\n/** @type {DataTableAdapter} */\nlet dynamicTableAdapter = null;\n/** @return {void} */\nfunction buildDynamicTable() {\n const datasource = [];\n let count = 1;\n const addDatasourceObject = () => {\n datasource.push({\n text: Math.random().toString(36).substring(2),\n text2: Math.random().toString(36).substring(2),\n check1: Math.random() > 0.5,\n increment: count,\n random: Math.floor(Math.random() * 99999),\n });\n count += 1;\n };\n for (let i = 0; i < 256; i += 1) {\n addDatasourceObject();\n }\n\n const datatable = document.getElementById('dynamic-table');\n dynamicTableAdapter = new DataTableAdapter({ datatable, datasource });\n dynamicTableAdapter.addColumn({\n key: 'selected',\n type: 'checkbox',\n rowSelector: true,\n });\n dynamicTableAdapter.addColumn({\n key: 'text',\n name: 'Primary Column (full-width)',\n primaryColumn: true,\n sortable: true,\n type: 'text',\n });\n dynamicTableAdapter.addColumn({\n key: 'text2',\n name: 'Text field',\n sortable: true,\n type: 'text',\n });\n dynamicTableAdapter.addColumn({\n key: 'check1',\n name: 'bool',\n type: 'checkbox',\n tooltip: 'Non-selection boolean value',\n sortable: true,\n });\n dynamicTableAdapter.addColumn({\n key: 'increment',\n name: 'Increment',\n type: 'number',\n sortable: true,\n });\n dynamicTableAdapter.addColumn({\n key: 'random',\n name: 'Random',\n sortable: true,\n type: 'number',\n });\n dynamicTableAdapter.setUseLazyRendering(true);\n dynamicTableAdapter.setPagination();\n dynamicTableAdapter.refresh();\n const buttons = dynamicTableAdapter.element.querySelectorAll('.mdw-datatable__header-controls .mdw-button');\n const filterButton = buttons[0];\n const optionsButton = buttons[1];\n const menus = dynamicTableAdapter.element.querySelectorAll('.mdw-datatable__header-controls .mdw-menu');\n const filterMenu = menus[0];\n const optionsMenu = menus[1];\n Menu.attach(filterMenu);\n Menu.attach(optionsMenu);\n\n filterButton.addEventListener('click', event => Menu.show(filterMenu, event));\n optionsButton.addEventListener('click', event => Menu.show(optionsMenu, event));\n\n filterMenu.addEventListener(MenuItem.CHECK_EVENT, (event) => {\n /** @type {HTMLElement} */\n const menuItem = (event.target);\n switch (menuItem.dataset.filter) {\n default:\n case 'none':\n dynamicTableAdapter.setFilter(null);\n break;\n case 'md':\n dynamicTableAdapter.setFilter(data => data.text.indexOf('md') !== -1 || data.text2.indexOf('md') !== -1);\n break;\n case 'div9':\n dynamicTableAdapter.setFilter(data => data.random % 9 === 0);\n break;\n case 'bool':\n dynamicTableAdapter.setFilter(data => data.check1);\n break;\n }\n dynamicTableAdapter.refresh();\n if (dynamicTableAdapter.filter) {\n filterButton.setAttribute('aria-pressed', 'true');\n } else {\n filterButton.setAttribute('aria-pressed', 'false');\n }\n });\n filterMenu.addEventListener(MenuItem.ACTIVATE_EVENT, () => Menu.hide(filterMenu));\n \n optionsMenu.addEventListener(MenuItem.CHECK_EVENT, (event) => {\n /** @type {HTMLElement} */\n const menuItem = (event.target);\n switch (menuItem.dataset.option) {\n default:\n break;\n case 'throttle':\n dynamicTableAdapter.setUseLazyRendering(true);\n break;\n case 'paginate':\n dynamicTableAdapter.setPagination();\n break;\n }\n dynamicTableAdapter.refresh();\n });\n optionsMenu.addEventListener(MenuItem.UNCHECK_EVENT, (event) => {\n /** @type {HTMLElement} */\n const menuItem = (event.target);\n switch (menuItem.dataset.option) {\n default:\n break;\n case 'throttle':\n dynamicTableAdapter.setUseLazyRendering(false);\n break;\n case 'paginate':\n dynamicTableAdapter.setPagination({ disabled: true });\n break;\n }\n dynamicTableAdapter.refresh();\n });\n optionsMenu.addEventListener(MenuItem.ACTIVATE_EVENT, () => Menu.hide(optionsMenu));\n}\n\ninitializeMdwComponents();\nbuildDynamicTable();\n","module.exports = __webpack_public_path__ + \"datatable.html\";"],"sourceRoot":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
(window.webpackJsonp=window.webpackJsonp||[]).push([[1],[,,,function(e,t,n){"use strict";var r=n(1),i=n(4);function a(e){if("Enter"===e.key||"Spacebar"===e.key||" "===e.key){var t=e.currentTarget;if(t&&"true"!==t.getAttribute("aria-disabled")){e.stopPropagation(),e.preventDefault();var n=document.createEvent("Event");n.initEvent("click",!0,!0),t.dispatchEvent(n)}}}function o(e){e.classList.add("mdw-overlay"),r.a(e),e.classList.add("mdw-ripple"),i.a(e),s(e)}function s(e){!function(e){e.setAttribute("role","button"),e instanceof HTMLButtonElement!=0||e.hasAttribute("tabindex")||e.setAttribute("tabindex","0"),e.setAttribute("mdw-aria-button-js",""),e instanceof HTMLButtonElement==0&&e instanceof HTMLInputElement==0&&e.addEventListener("keydown",a)}(e)}function u(e){!function(e){e.removeEventListener("keydown",a),e.removeAttribute("mdw-aria-button-js")}(e)}function c(e){u(e),r.b(e),i.b(e)}n.d(t,"a",function(){return o}),n.d(t,"b",function(){return s}),n.d(t,"c",function(){return c})},,,function(e,t,n){"use strict";n.d(t,"a",function(){return i});var r=n(0);function i(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"",a=e.tagName.toLowerCase(),o=[],s=[];Object(r.h)(e.classList,function(e){s.push(e)}),Object(r.h)(e.attributes,function(e){"class"!==e.name&&(e.value.length?o.push("".concat(e.name,'="').concat(e.value,'"')):o.push(e.name))}),o.sort();var u=[a,s.length?'class="'.concat(s.join(" "),'"'):"",o.join(" ")],c=t?"".concat("div"===a&&s.length?"":a).concat(s.length?".".concat(s.join(".")):"").concat(o.length?"(".concat(o.join(" "),")"):""):"<".concat(u.filter(function(e){return e}).join(" ").trim(),">"),l=t?"":"</".concat(a,">"),d=[c],m=[],f=!0;return Object(r.h)(e.childNodes,function(e){var r;e instanceof HTMLElement?(r=i(e,t," ".concat(n))).trim()&&(f=!1):e.nodeValue&&t&&(r=" ".concat(e.nodeValue)),r&&r.trim()&&m.push(r)}),f?t?"".concat(n+d.join("")," ").concat(m.join("").trim()):n+d.join("")+m.join("").trim()+l:(m.forEach(function(e){return d.push(e)}),d.push(n+l),n+d.filter(function(e){return e.trim()}).join("\n"))}},function(e,t,n){"use strict";n.d(t,"a",function(){return s}),n.d(t,"b",function(){return u}),n.d(t,"c",function(){return d}),n.d(t,"e",function(){return m}),n.d(t,"f",function(){return y}),n.d(t,"h",function(){return E}),n.d(t,"g",function(){return A}),n.d(t,"d",function(){return k});var r=n(0),i=n(3);var a=function e(t,n,r,i){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.element=t,this.previousFocus=n,this.state=r,this.previousState=i},o=[],s="mdw:dialog-cancel",u="mdw:dialog-confirm",c="mdw:dialog-custom",l="mdw:dialog-dismiss";function d(e){e.setAttribute("mdw-js","");var t=Object(r.d)(e,"mdw-dialog__close");t||((t=document.createElement("div")).className="mdw-dialog__close",e.firstChild?e.insertBefore(t,e.firstChild):e.appendChild(t)),t.addEventListener("click",f);var n=Object(r.d)(e,"mdw-dialog__popup");n.addEventListener("keydown",p);var a=n.querySelectorAll(".mdw-dialog__button-area .mdw-button"),o=!1,s=!1;Object(r.h)(a,function(e){if(i.a(e),!e.hasAttribute("mdw-custom"))return o?s?void e.addEventListener("click",b):(e.addEventListener("click",f),void(s=!0)):(e.addEventListener("click",v),void(o=!0));e.addEventListener("click",b)}),function(e){if(e.hasAttribute("mdw-no-aria"))return;e.setAttribute("role","dialog"),e.setAttribute("aria-modal","true"),e.hasAttribute("aria-hidden")||e.setAttribute("aria-hidden","true");var t=e.getElementsByClassName("mdw-dialog__popup")[0];if(!t)return;if(!t.hasAttribute("aria-label")&&!t.hasAttribute("aria-labelledby"))e.getElementsByClassName("mdw-dialog__title")[0]}(e)}function m(e){e.removeAttribute("mdw-js");var t=Object(r.d)(e,"mdw-dialog__close");t&&t.removeEventListener("click",f);var n=e.getElementsByClassName("mdw-dialog__popup")[0];n&&(n.removeEventListener("keydown",p),n.style.removeProperty("transform-origin"),n.hasAttribute("style")&&!n.getAttribute("style")&&n.removeAttribute("style"));var a=n.querySelectorAll(".mdw-dialog__button-area .mdw-button");Object(r.h)(a,function(e){i.c(e),e.removeEventListener("click",v),e.removeEventListener("click",f),e.removeEventListener("click",b)})}function f(e){e&&e.currentTarget instanceof HTMLAnchorElement&&e.preventDefault();var t=e.currentTarget;Object(r.b)(t,s)&&w(Object(r.c)(t,"mdw-dialog"))}function v(e){e&&e.currentTarget instanceof HTMLAnchorElement&&e.preventDefault();var t=e.currentTarget;Object(r.b)(t,u)&&w(Object(r.c)(t,"mdw-dialog"))}function b(e){e&&e.currentTarget instanceof HTMLAnchorElement&&e.preventDefault();var t=e.currentTarget;Object(r.b)(t,c)&&w(Object(r.c)(t,"mdw-dialog"))}function p(e){"Tab"!==e.key?"Escape"!==e.key&&"Esc"!==e.key||function(e){e.stopPropagation(),e.preventDefault();var t=e.currentTarget;!function(e){Object(r.b)(e,s)&&w(e)}(Object(r.c)(t,"mdw-dialog"))}(e):function(e){var t=e.currentTarget.querySelectorAll(['button:not(:disabled):not([tabindex="-1"])','[href]:not(:disabled):not([tabindex="-1"])','input:not(:disabled):not([tabindex="-1"])','select:not(:disabled):not([tabindex="-1"])','textarea:not(:disabled):not([tabindex="-1"])','[tabindex]:not([tabindex="-1"])'].join(", ")),n=!1,i=null;Object(r.j)(t,function(t){if(t===e.target){if(n=!0,e.shiftKey)return!0}else if(e.shiftKey)i=t;else if(n)return i=t,!0;return!1}),i||(i=e.shiftKey?t[t.length-1]:t[0]);if(e.stopPropagation(),e.preventDefault(),i)try{i.focus()}catch(e){}}(e)}function h(e){if(e.state){var t=o[o.length-1];if(t&&t.previousState&&(t.previousState===e.state||Object.keys(e.state).every(function(n){return e.state[n]===t.previousState[n]})))if(Object(r.b)(t.element,s))w(t.element);else{var n=g(t.element);window.history.pushState(t.state,n)}}}function g(e){var t="Dialog",n=e.getElementsByClassName("mdw-dialog__title")[0];if(n)t=n.textContent;else{var r=e.getElementsByClassName("mdw-dialog__body")[0];r&&(t=r.textContent)}return t}function w(e){if("true"===e.getAttribute("aria-hidden"))return!1;if(!Object(r.b)(e,l))return!1;e.setAttribute("aria-hidden","true");var t=-1;if(o.some(function(n,r){return n.element===e&&(t=r,!0)}),-1!==t){var n=o[t];if(n.previousFocus&&Object(r.c)(document.activeElement,"mdw-dialog")===e)try{n.previousFocus.focus()}catch(e){}o.splice(t,1),n.state&&window.history&&window.history.state&&n.state.hash===window.history.state.hash&&window.history.back()}return o.length||window.removeEventListener("popstate",h),!0}function y(e,t){t&&t.currentTarget instanceof HTMLAnchorElement&&t.preventDefault();var n=!1;if(function(e,t){var n,r,i=e.getElementsByClassName("mdw-dialog__popup")[0];if(i.style.removeProperty("transform-origin"),!t)return;var a=e.getBoundingClientRect();if("pageX"in t&&"pageY"in t)n=t.pageX,r=t.pageY,n-=window.pageXOffset,r-=window.pageYOffset;else{var o=t.currentTarget||t.target,s=o.getBoundingClientRect();if(!(s.width||s.width||s.left||s.top))return;n=s.left+s.width/2,r=s.top+s.height/2}var u=n-a.left-i.offsetLeft,c=r-a.top-i.offsetTop;i.style.setProperty("transform-origin","".concat(u,"px ").concat(c,"px"))}(e,t),"false"!==e.getAttribute("aria-hidden")&&(e.setAttribute("aria-hidden","false"),n=!0),n){d(e);var r=document.activeElement,i={hash:Math.random().toString(36).substr(2,16)},s=null;if(window.history&&window.history.pushState){window.history.state||window.history.replaceState({hash:Math.random().toString(36).substr(2,16)},document.title),s=window.history.state;var u=g(e);window.history.pushState(i,u),window.addEventListener("popstate",h)}var c=new a(e,r,i,s);o.push(c);var l=e.querySelector("[mdw-autofocus]");try{if(l){if(t&&t.target instanceof Element){var m=t.target.getAttribute("mdw-overlay-touch");null!=m&&l.setAttribute("mdw-overlay-touch",m)}l.focus()}else e.focus()}catch(e){console.error(e)}}return n}function E(e,t){var n=e.querySelectorAll(".mdw-dialog__button-area .mdw-button");Object(r.h)(n,function(e,n){Object(r.m)(e,t[n])})}function A(e,t){var n=e.getElementsByClassName("mdw-dialog__body")[0];if(t){if(!n){(n=document.createElement("div")).className="mdw-dialog__body mdw-theme",n.setAttribute("mdw-ink","medium");var r=e.getElementsByClassName("mdw-dialog__title")[0];if(r)r.insertAdjacentElement("afterend",n);else{var i=e.getElementsByClassName("mdw-dialog__popup")[0];i.insertBefore(n,i.firstChild)}}if(t instanceof DocumentFragment){for(;n.lastChild;)n.removeChild(n.lastChild);n.appendChild(t)}else n.textContent=t}else{if(!n)return;n.parentElement.removeChild(n)}}function k(e){var t=document.createElement("div");t.className="mdw-dialog";var n=document.createElement("div");if(n.className="mdw-dialog__popup mdw-theme",n.setAttribute("mdw-surface","card"),t.appendChild(n),function(e,t){var n=e.getElementsByClassName("mdw-dialog__title")[0];if(t){if(!n){(n=document.createElement("div")).className="mdw-dialog__title";var r=e.getElementsByClassName("mdw-dialog__popup")[0];r.insertBefore(n,r.firstChild)}if(t instanceof DocumentFragment){for(;n.lastChild;)n.removeChild(n.lastChild);n.appendChild(t)}else n.textContent=t}else{if(!n)return;n.parentElement.removeChild(n)}}(t,e.title),A(t,e.body),e.buttons){var r=document.createElement("div");r.className="mdw-dialog__button-area";var i=0;e.buttons.forEach(function(t){var n=document.createElement("div");n.className="mdw-button mdw-theme",n.setAttribute("tabindex","0"),n.setAttribute("mdw-ink","secondary"),e.custom&&n.setAttribute("mdw-custom",""),n.textContent=t,r.appendChild(n),(null==e.autofocus&&0===i||e.autofocus===i||e.autofocus===t)&&n.setAttribute("mdw-autofocus",""),i+=1}),e.stacked&&r.setAttribute("mdw-stacked",""),n.appendChild(r)}return e.parent&&e.parent.appendChild(t),d(t),t}},function(e,t,n){"use strict";n.d(t,"a",function(){return u}),n.d(t,"b",function(){return v}),n.d(t,"d",function(){return h}),n.d(t,"c",function(){return g});var r=n(0),i=n(10);var a=function e(t,n,r,i,a){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.element=t,this.previousFocus=n,this.state=r,this.previousState=i,this.originalEvent=a,this.pendingResizeOperation=null},o=[],s="mdw:menu-hide";function u(e){e.setAttribute("mdw-menu-js",""),e.addEventListener("click",l),e.addEventListener("scroll",c),e.addEventListener("touchmove",c),e.addEventListener("wheel",c),e.addEventListener("keydown",f),function(e){if(e.hasAttribute("mdw-no-aria"))return;e.hasAttribute("aria-hidden")||e.setAttribute("aria-hidden","true");Object(r.h)(e.getElementsByClassName("mdw-divider"),function(e){return e.setAttribute("role","separator")}),e.setAttribute("role","menu");var t=e.getElementsByClassName("mdw-menu__popup")[0];t&&t.setAttribute("role","none")}(e)}function c(e){if(e.preventDefault(),e.stopPropagation(),"scroll"===e.type){var t=e.currentTarget;t.scrollTop!==t.scrollHeight/4&&(t.scrollTop=t.scrollHeight/4),t.scrollLeft!==t.scrollWidth/4&&(t.scrollLeft=t.scrollWidth/4)}}function l(e){e.currentTarget===e.target&&(e.stopPropagation(),g(e.currentTarget))}function d(){var e=o[o.length-1];e&&e.originalEvent&&(e.pendingResizeOperation&&Object(r.a)(e.pendingResizeOperation),e.pendingResizeOperation=Object(r.k)(function(){p(e.element,e.element.getElementsByClassName("mdw-menu__popup")[0],e.originalEvent),e.pendingResizeOperation=null}))}function m(e){if(e.state){var t=o[o.length-1];t&&t.previousState&&(t.previousState===e.state||Object.keys(e.state).every(function(n){return e.state[n]===t.previousState[n]}))&&g(t.element)}}function f(e){var t=e.currentTarget;if(t&&"true"!==t.getAttribute("aria-hidden"))return"ArrowDown"===e.key||"Down"===e.key?(e.stopPropagation(),e.preventDefault(),void b(t,!1)):"ArrowUp"===e.key||"Up"===e.key?(e.stopPropagation(),e.preventDefault(),void b(t,!0)):void("Tab"!==e.key?"Escape"!==e.key&&"Esc"!==e.key||(e.stopPropagation(),e.preventDefault(),g(t)):g(t)||(e.stopPropagation(),e.preventDefault()))}function v(e){g(e),e.removeEventListener("click",l),e.removeEventListener("scroll",c),e.removeEventListener("touchmove",c),e.removeEventListener("wheel",c),e.addEventListener("keydown",f),e.removeAttribute("mdw-menu-js");var t=e.getElementsByClassName("mdw-menu__popup")[0];t&&(t.style.removeProperty("top"),t.style.removeProperty("left"),t.style.removeProperty("right"),t.style.removeProperty("bottom"),t.style.removeProperty("margin"),t.style.removeProperty("transform-origin"),t.style.removeProperty("position"),t.hasAttribute("style")&&!t.getAttribute("style")&&t.removeAttribute("style")),Object(r.h)(e.getElementsByClassName("mdw-menu__item"),i.e)}function b(e,t){var n=e.getElementsByClassName("mdw-menu__item"),i=!1,a=null,o=null,s=null,u=document.activeElement;Object(r.j)(n,function(e){e.focus();var n=document.activeElement===e;return n&&(o||(o=e),s=e),e===u?(i=!0,!(!t||!a)):t?(n&&(a=e),!1):!!i&&(!!n&&(a=e,!0))}),a||(a=t?s:o),a&&document.activeElement!==a&&a.focus()}function p(e,t,n,i){var a="auto",o="auto",s="",u=!1!==i,c=u?"0":"",l=e.getAttribute("mdw-position")||"",d=e.getAttribute("mdw-direction")||"",m=-1!==l.indexOf("top"),f=-1!==l.indexOf("bottom"),v=-1!==l.indexOf("vcenter"),b=-1!==l.indexOf("start"),p=-1!==l.indexOf("end"),h=-1!==l.indexOf("left"),g=-1!==l.indexOf("right"),w=-1!==l.indexOf("hcenter"),y=-1!==d.indexOf("up"),E=-1!==d.indexOf("down"),A=-1!==d.indexOf("normal"),k=-1!==d.indexOf("reverse"),_=-1!==d.indexOf("vcenter"),O=-1!==d.indexOf("hcenter"),j=-1!==d.indexOf("ltr"),L=-1!==d.indexOf("rtl"),C=n.currentTarget||n.target,x=null;(b||p||A||k)&&(x=Object(r.g)(),(b||p)&&(b?x?g=!0:h=!0:x?h=!0:g=!0),(A||k)&&(A?x?L=!0:j=!0:x?j=!0:L=!0));var T=u?0:-n.offsetY,N=u?C.clientHeight:n.offsetY,P=u?0:-n.offsetX,B=u?C.clientWidth:n.offsetX,S=C.getBoundingClientRect(),H=S.left,D=S.top;t.style.setProperty("max-height","none");var M=t.clientHeight,z=t.clientWidth,F=!m&&!v&&!y&&!_&&M+(D+N)<=window.innerHeight,R=!f&&!v&&!y&&!_&&M+(D+T)<=window.innerHeight,W=!f&&!v&&!E&&!_&&D+T>=M,q=!m&&!v&&!E&&!_&&D+N>=M,X=!g&&!w&&!L&&!O&&z+(H+P)<=window.innerWidth,Y=!h&&!w&&!L&&!O&&z+(H+B)<=window.innerWidth,I=!h&&!w&&!j&&!O&&H+B>=z,K=!g&&!w&&!j&&!O&&H+P>=z,J=!h&&!g&&!m&&!f&&!y&&!E&&(H+P)/2>=z/2&&z/2+(H+P)/2<=window.innerWidth;t.style.removeProperty("max-height");var U=[F&&X,F&&I,W&&X,W&&K,R&&Y,R&&K,q&&Y,q&&K,R&&X,R&&I,q&&X,q&&Y,X,I,J].map(function(e,t){return e?t+1:0}).filter(function(e){return 0!==e});if(U.length){var V;switch(null===x&&(x=Object(r.g)()),null==(V=x?[2,1,4,3,6,5,8,7,10,9,12,11,14,13,15].filter(function(e){return-1!==U.indexOf(e)})[0]:[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15].filter(function(e){return-1!==U.indexOf(e)})[0])&&(V=x?2:1),V){default:case 1:case 8:case 11:f=!0,h=!0;break;case 2:case 7:case 12:f=!0,g=!0;break;case 3:case 6:case 9:m=!0,h=!0;break;case 4:case 5:case 10:m=!0,g=!0;break;case 13:v=!0,h=!0;break;case 14:v=!0,g=!0;break;case 15:v=!0,w=!0}switch(V){default:case 1:case 5:case 9:E=!0,j=!0;break;case 2:case 6:case 10:E=!0,L=!0;break;case 3:case 7:case 11:y=!0,j=!0;break;case 4:case 8:case 12:y=!0,L=!0;break;case 13:j=!0,_=!0;break;case 14:L=!0,_=!0;break;case 15:O=!0,_=!0}}j?(o="".concat(g?H+B:w?H+(P+B)/2:H+P,"px"),s="left"):O?(o="".concat(h?H+P-z/2:g?H+B-z/2:H+(P+B)/2-z/2,"px"),s="center"):(o="".concat(h?H+P-z:w?H+(P+B)/2-z:H+B-z,"px"),s="right"),y?(a="".concat(f?D+N-t.clientHeight:v?D+(T+N)/2-t.clientHeight:D+T-t.clientHeight,"px"),s+=" bottom"):_?(a="".concat(f?D+N-t.clientHeight/2:m?D+T-t.clientHeight/2:D+(T+N)/2-t.clientHeight/2,"px"),s+=" center"):(a="".concat(m?D+T:v?D+(T+N)/2:D+N,"px"),s+=" top"),t.style.setProperty("top",a),t.style.setProperty("left",o),t.style.setProperty("right","auto"),t.style.setProperty("bottom","auto"),t.style.setProperty("margin",c),t.style.setProperty("transform-origin",s)}function h(e,t,n){t&&t.currentTarget instanceof HTMLAnchorElement&&t.preventDefault();var s=e.getElementsByClassName("mdw-menu__popup")[0],c=!1;if(t?p(e,s,t,n):(s.style.removeProperty("top"),s.style.removeProperty("left"),s.style.removeProperty("right"),s.style.removeProperty("bottom"),s.style.removeProperty("margin"),s.style.removeProperty("transform-origin"),s.style.removeProperty("position"),s.hasAttribute("style")&&!s.getAttribute("style")&&s.removeAttribute("style")),"false"!==e.getAttribute("aria-hidden")&&(e.setAttribute("aria-hidden","false"),c=!0),c){u(e);var l=document.activeElement,f={hash:Math.random().toString(36).substr(2,16)},v=null;window.history&&window.history.pushState&&(window.history.state||window.history.replaceState({hash:Math.random().toString(36).substr(2,16)},document.title),v=window.history.state,window.history.pushState(f,document.title),window.addEventListener("popstate",m),window.addEventListener("resize",d));var h=new a(e,l,f,v,t);o.push(h),function(e){Object(r.h)(e.getElementsByClassName("mdw-menu__item"),function(e){e.setAttribute("tabindex","-1"),i.d(e)}),e.getElementsByClassName("mdw-menu__popup")[0].setAttribute("tabindex","-1")}(e),!t||t.pointerType||t.detail?s.focus():b(e)}return c}function g(e){if("true"===e.getAttribute("aria-hidden"))return!1;e.setAttribute("aria-hidden","true");var t=-1;if(o.some(function(n,r){return n.element===e&&(t=r,!0)}),-1!==t){var n=o[t];n.previousFocus&&n.previousFocus.focus(),o.splice(t,1),n.state&&window.history&&window.history.state&&n.state.hash===window.history.state.hash&&window.history.back()}return o.length||(window.removeEventListener("popstate",m),window.removeEventListener("resize",d)),Object(r.b)(e,s),!0}},function(e,t,n){"use strict";n.d(t,"a",function(){return i}),n.d(t,"b",function(){return a});var r=n(0),i="mdw:aria-selectedchanged";function a(e,t){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],a=e.getAttribute("aria-selected");if("true"===t){if("true"===a)return!1;e.setAttribute("aria-selected","true")}else{if("false"===a)return!1;if(!a||"false"!==a)return e.setAttribute("aria-selected","false"),!1;e.setAttribute("aria-selected","false")}return!n||(!!Object(r.b)(e,i)||(null==a?e.removeAttribute("aria-selected"):e.setAttribute("aria-selected",a),!1))}},function(e,t,n){"use strict";n.d(t,"a",function(){return o}),n.d(t,"b",function(){return s}),n.d(t,"c",function(){return u}),n.d(t,"d",function(){return c}),n.d(t,"e",function(){return p});var r=n(4),i=n(1),a=n(0),o="mdw:menuitem-activate",s="mdw:menuitem-check",u="mdw:menuitem-uncheck";function c(e){e.classList.add("mdw-overlay"),r.a(e),e.classList.add("mdw-ripple"),i.a(e),function(e){e.addEventListener("mousemove",d),e.addEventListener("click",l),e.addEventListener("keydown",m),function(e){if(e.hasAttribute("mdw-no-aria"))return;var t=e.getAttribute("role"),n=!1;"menuitemcheckbox"===t||"menuitemradio"===t?n=!0:"menuitem"!==t&&(e.getElementsByClassName("mdw-menu__check").length?(n=!0,e.setAttribute("role","menuitemcheckbox")):e.getElementsByClassName("mdw-menu__radio").length?(n=!0,e.setAttribute("role","menuitemradio")):e.setAttribute("role","menuitem"));n&&!e.hasAttribute("aria-checked")&&e.setAttribute("aria-checked","false");Object(a.h)(e.getElementsByClassName("mdw-menu__icon"),function(e){return e.setAttribute("aria-hidden","true")}),Object(a.h)(e.getElementsByClassName("mdw-menu__text"),function(e){return e.setAttribute("role","text")}),Object(a.h)(e.getElementsByClassName("mdw-menu__check"),function(e){return e.setAttribute("aria-hidden","true")}),Object(a.h)(e.getElementsByClassName("mdw-menu__info"),function(e){return e.setAttribute("role","note")})}(e)}(e)}function l(e){e.stopPropagation();var t=e.currentTarget;if(!f(t)){var n=t.getAttribute("role");"menuitemcheckbox"===n?b(t):"menuitemradio"===n&&v(t,!0),Object(a.b)(t,o)}}function d(e){var t=e.currentTarget;if(t){var n=document.activeElement;n!==t&&"true"!==t.getAttribute("aria-disabled")&&(t.focus(),document.activeElement!==t&&n&&document.activeElement!==n&&n.focus())}}function m(e){var t=e.currentTarget;if("Enter"!==e.key){if("Spacebar"===e.key||" "===e.key){if(e.stopPropagation(),e.preventDefault(),f(t))return;var n=t.getAttribute("role");"menuitemcheckbox"===n?b(t):"menuitemradio"===n?v(t,!0):Object(a.b)(t,o)}}else{if(e.stopPropagation(),f(t))return;l(e)}}function f(e){return"true"===e.getAttribute("aria-disabled")}function v(e,t){var n=e.getAttribute("role"),r=!1;if("menuitemcheckbox"===n&&(r=!0,!Object(a.b)(e,t?s:u)))return!1;if("menuitemradio"===n&&(r=!0,t)){if(!Object(a.b)(e,s))return!1;Object(a.i)(e,function(e){"menuitemradio"===e.getAttribute("role")&&e.setAttribute("aria-checked","false")})}return!!r&&(e.setAttribute("aria-checked",t?"true":"false"),!0)}function b(e){var t=!function(e){return"true"===e.getAttribute("aria-checked")}(e);return v(e,t)}function p(e){!function(e){e.removeEventListener("click",l),e.removeEventListener("mousemove",d),e.removeEventListener("keydown",m),e.removeAttribute("mdw-js")}(e),i.b(e),r.b(e)}},function(e,t,n){"use strict";n.d(t,"a",function(){return i}),n.d(t,"b",function(){return a}),n.d(t,"c",function(){return c});var r=n(0);function i(e){var t=e.getElementsByClassName("mdw-textfield__input")[0];t&&(t.addEventListener("input",o,Object(r.e)()),o({currentTarget:t}))}function a(e){e.removeAttribute("mdw-value-empty");var t=e.getElementsByClassName("mdw-textfield__input")[0];t&&t.removeEventListener("input",o)}function o(e){var t=e.currentTarget;t.parentElement.hasAttribute("mdw-autosize")&&u(t),s(t)}function s(e){var t=e.parentElement;e.value?t.hasAttribute("mdw-value-empty")&&t.removeAttribute("mdw-value-empty"):t.hasAttribute("mdw-value-empty")||t.setAttribute("mdw-value-empty","")}function u(e){var t=e.getAttribute("rows");e.setAttribute("rows","1");var n=window.getComputedStyle(e),r=n.height,i=n.paddingTop;if(!r||"auto"===r)return e.setAttribute("rows",t),-1;var a=parseInt(r.replace("px",""),10),o=parseInt(i.replace("px",""),10);return e.setAttribute("rows",Math.floor((e.scrollHeight-o)/a).toString()),a}function c(e,t){var n=e.getElementsByClassName("mdw-textfield__input")[0];if(null==t)n.value=null;else if(n instanceof HTMLTextAreaElement||n instanceof HTMLSelectElement)t instanceof Date?n.value=t.toString():n.value="string"==typeof t?t:t.toString(10);else if(t instanceof Date){var r=n.hasAttribute("type")&&n.getAttribute("type").toLowerCase();if("time"===r){var i="".concat(t.getHours()<10?"0":"").concat(t.getHours()),a="".concat(t.getMinutes()<10?"0":"").concat(t.getMinutes()),o="".concat(t.getSeconds()<10?"0":"").concat(t.getSeconds());n.value="".concat(i,":").concat(a,":").concat(o,".").concat(t.getMilliseconds())}else switch(r){case"date":n.valueAsDate=t;break;case"datetime-local":n.valueAsNumber=t.getTime()-60*t.getTimezoneOffset()*1e3;break;case"number":case"range":n.valueAsNumber=t.getTime();break;default:n.value=t.toString()}}else if("string"==typeof t)n.value=t;else{switch(n.hasAttribute("type")&&n.getAttribute("type").toLowerCase()){case"date":case"time":case"datetime-local":case"number":case"range":n.valueAsNumber=t;break;default:n.value=t.toString()}}s(n),n instanceof HTMLTextAreaElement&&e.hasAttribute("mdw-autosize")&&u(n)}},,,function(e,t,n){"use strict";n.d(t,"a",function(){return i}),n.d(t,"b",function(){return a});var r=n(9);function i(e){e.setAttribute("role","tab"),e.setAttribute("mdw-aria-tab-js",""),e.addEventListener("click",o),e.addEventListener("keydown",s)}function a(e){e.removeEventListener("keydown",s),e.removeAttribute("mdw-aria-tab-js")}function o(e){var t=e.currentTarget;"true"!==t.getAttribute("aria-disabled")&&Object(r.b)(t,"true")}function s(e){if("Enter"===e.key||"Spacebar"===e.key||" "===e.key){var t=e.currentTarget;if(t){e.stopPropagation(),e.preventDefault();var n=document.createEvent("Event");n.initEvent("click",!0,!0),t.dispatchEvent(n)}}}}]]);
|
|
2
|
-
//# sourceMappingURL=default.common.min.js.map
|