@shortfuse/materialdesignweb 0.2.0 → 0.5.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/.browserslistrc +2 -1
- package/.eslintrc.json +188 -30
- package/.stylelintrc.json +643 -2
- package/.vscode/launch.json +20 -5
- package/.vscode/settings.json +3 -0
- package/CHANGELOG.md +36 -0
- package/README.md +82 -2
- package/adapters/datatable/column.js +176 -0
- package/adapters/datatable/index.js +253 -437
- package/adapters/dom/index.js +586 -0
- package/adapters/list/index.js +36 -113
- package/adapters/search/index.js +153 -180
- package/components/appbar/_spec.scss +165 -0
- package/components/appbar/_theme.scss +0 -0
- package/components/appbar/index.scss +2 -0
- package/components/banner/_spec.scss +83 -0
- package/components/banner/_theme.scss +0 -0
- package/components/banner/index.scss +2 -0
- package/components/bottomnav/README.md +4 -4
- package/components/bottomnav/_spec.scss +149 -0
- package/components/bottomnav/_theme.scss +0 -0
- package/components/bottomnav/index.js +100 -120
- package/components/bottomnav/index.scss +2 -0
- package/components/bottomnav/item.js +88 -0
- package/components/button/README.md +16 -22
- package/components/button/_spec.scss +162 -0
- package/components/button/_theme.scss +42 -0
- package/components/button/index.eta +32 -0
- package/components/button/index.js +37 -48
- package/components/button/index.pug +18 -0
- package/components/button/index.scss +2 -0
- package/components/card/_spec.scss +241 -0
- package/components/card/_theme.scss +0 -0
- package/components/card/index.scss +2 -0
- package/components/chip/_spec.scss +111 -0
- package/components/chip/_theme.scss +105 -0
- package/components/chip/index.js +23 -0
- package/components/chip/index.scss +2 -0
- package/components/chip/item.js +20 -0
- package/components/datatable/_spec.scss +225 -0
- package/components/datatable/_theme.scss +128 -0
- package/components/datatable/cell.js +44 -0
- package/components/datatable/columnheader.js +46 -0
- package/components/datatable/index.js +339 -443
- package/components/datatable/index.scss +2 -0
- package/components/datatable/row.js +48 -0
- package/components/datatable/rowheader.js +18 -0
- package/components/dialog/_spec.scss +203 -0
- package/components/dialog/_theme.scss +7 -0
- package/components/dialog/index.js +512 -437
- package/components/dialog/index.scss +2 -0
- package/components/divider/_spec.scss +11 -0
- package/components/divider/_theme.scss +0 -0
- package/components/divider/index.scss +2 -0
- package/components/elevation/_spec.scss +9 -0
- package/components/elevation/_theme.scss +0 -0
- package/components/elevation/index.scss +2 -0
- package/components/fab/{style.scss → _spec.scss} +104 -79
- package/components/fab/_theme.scss +0 -0
- package/components/fab/index.js +85 -79
- package/components/fab/index.scss +2 -0
- package/components/grid/_spec.scss +169 -0
- package/components/grid/_theme.scss +0 -0
- package/components/grid/index.scss +2 -0
- package/components/layout/_mixins.scss +11 -0
- package/components/layout/_spec.scss +916 -0
- package/components/layout/_theme.scss +19 -0
- package/components/layout/index.js +454 -0
- package/components/layout/index.scss +2 -0
- package/components/list/_spec.scss +363 -0
- package/components/list/_theme.scss +102 -0
- package/components/list/content.js +106 -0
- package/components/list/index.js +234 -79
- package/components/list/index.scss +2 -0
- package/components/list/item.js +167 -0
- package/components/list/secondary.js +45 -0
- package/components/menu/_spec.scss +329 -0
- package/components/menu/_theme.scss +0 -0
- package/components/menu/index.js +636 -651
- package/components/menu/index.scss +2 -0
- package/components/menu/item.js +231 -0
- package/components/progress/_spec.scss +156 -0
- package/components/progress/_theme.scss +0 -0
- package/components/progress/index.js +29 -13
- package/components/progress/index.scss +2 -0
- package/components/selection/_spec.scss +376 -0
- package/components/selection/_theme.scss +134 -0
- package/components/selection/index.eta +60 -0
- package/components/selection/index.js +70 -0
- package/components/selection/index.pug +30 -0
- package/components/selection/index.scss +2 -0
- package/components/selection/input.js +54 -0
- package/components/selection/radiogroup.js +40 -0
- package/components/slider/{style.scss → _spec.scss} +31 -34
- package/components/slider/_theme.scss +0 -0
- package/components/slider/index.scss +2 -0
- package/components/snackbar/_spec.scss +150 -0
- package/components/snackbar/_theme.scss +0 -0
- package/components/snackbar/index.js +293 -206
- package/components/snackbar/index.scss +2 -0
- package/components/tab/_spec.scss +220 -0
- package/components/tab/_theme.scss +0 -0
- package/components/tab/content.js +210 -0
- package/components/tab/index.js +229 -213
- package/components/tab/index.scss +2 -0
- package/components/tab/item.js +88 -0
- package/components/tab/list.js +196 -0
- package/components/tab/panel.js +54 -0
- package/components/textfield/README.md +4 -4
- package/components/textfield/_spec.scss +763 -0
- package/components/textfield/_theme.scss +264 -0
- package/components/textfield/index.eta +74 -0
- package/components/textfield/index.js +132 -138
- package/components/textfield/index.pug +30 -0
- package/components/textfield/index.scss +2 -0
- package/components/tooltip/_spec.scss +185 -0
- package/components/tooltip/_theme.scss +0 -0
- package/components/tooltip/index.scss +2 -0
- package/components/type/_spec.scss +227 -0
- package/components/type/_theme.scss +0 -0
- package/components/type/index.scss +2 -0
- package/core/_breakpoint.scss +189 -0
- package/core/_elevation.scss +78 -0
- package/core/_length.scss +8 -0
- package/core/_motion.scss +31 -0
- package/core/_platform.scss +12 -0
- package/core/_type.scss +128 -0
- package/core/aria/attributes.js +141 -0
- package/core/aria/button.js +49 -0
- package/core/aria/keyboard.js +92 -0
- package/core/aria/rovingtabindex.js +175 -0
- package/core/aria/tab.js +59 -0
- package/core/document/index.js +39 -0
- package/core/dom.js +180 -0
- package/core/overlay/_spec.scss +28 -0
- package/core/overlay/_theme.scss +147 -0
- package/core/overlay/index.js +95 -0
- package/core/overlay/index.scss +2 -0
- package/core/ripple/_spec.scss +196 -0
- package/core/ripple/_theme.scss +20 -0
- package/core/ripple/index.js +286 -0
- package/core/ripple/index.scss +2 -0
- package/core/theme/_aliases.scss +15 -0
- package/core/theme/_config.scss +8 -0
- package/core/theme/_functions.scss +22 -0
- package/{components/theming/palettes.scss → core/theme/_palettes.scss} +173 -151
- package/core/theme/_spec.scss +0 -0
- package/core/theme/_theme.scss +268 -0
- package/core/theme/index.js +50 -0
- package/core/theme/index.scss +4 -0
- package/core/throttler.js +42 -0
- package/core/transition/index.js +465 -0
- package/docs/_flex.scss +28 -0
- package/docs/_menuoptions.js +183 -0
- package/docs/_partials/_androidnavbar.eta +5 -0
- package/docs/_partials/_androidstatusbar.eta +13 -0
- package/docs/_partials/_appbar.eta +27 -0
- package/docs/_partials/_buttontest.eta +31 -0
- package/docs/_partials/_header.eta +146 -0
- package/docs/_partials/_navlistitem.eta +16 -0
- package/docs/_partials/_target.eta +1 -0
- package/docs/_sample-utils.js +88 -0
- package/docs/{src/storage.js → _storage.js} +0 -0
- package/docs/docs.scss +331 -0
- package/docs/framework.scss +26 -0
- package/docs/index.eta +12 -0
- package/docs/index.js +7 -0
- package/docs/pages/appbar.eta +108 -0
- package/docs/pages/appbar.js +0 -0
- package/docs/pages/bottomnav.eta +188 -0
- package/docs/pages/bottomnav.js +118 -0
- package/docs/pages/button.eta +124 -0
- package/docs/pages/button.js +224 -0
- package/docs/pages/card.eta +90 -0
- package/docs/pages/card.js +175 -0
- package/docs/pages/chip.eta +122 -0
- package/docs/pages/chip.js +80 -0
- package/docs/pages/color.eta +143 -0
- package/docs/pages/color.js +261 -0
- package/docs/pages/datatable.eta +323 -0
- package/docs/pages/datatable.js +160 -0
- package/docs/pages/dialog.eta +184 -0
- package/docs/{src/components → pages}/dialog.js +35 -48
- package/docs/pages/dom.eta +26 -0
- package/docs/pages/dom.js +140 -0
- package/docs/pages/elevation.eta +35 -0
- package/docs/pages/elevation.js +0 -0
- package/docs/pages/fab.eta +99 -0
- package/docs/{src/components → pages}/fab.js +6 -13
- package/docs/pages/grid.eta +135 -0
- package/docs/pages/grid.js +128 -0
- package/docs/pages/layout.eta +8 -0
- package/docs/pages/layout.js +0 -0
- package/docs/pages/list.eta +465 -0
- package/docs/pages/list.js +8 -0
- package/docs/pages/menu.eta +274 -0
- package/docs/{src/components → pages}/menu.js +26 -42
- package/docs/pages/overlay.eta +69 -0
- package/docs/pages/overlay.js +3 -0
- package/docs/pages/progress.eta +23 -0
- package/docs/{src/components → pages}/progress.js +2 -4
- package/docs/pages/ripple.eta +27 -0
- package/docs/pages/ripple.js +3 -0
- package/docs/pages/search.eta +242 -0
- package/docs/pages/search.js +226 -0
- package/docs/pages/selection.eta +107 -0
- package/docs/pages/selection.js +12 -0
- package/docs/pages/slider.eta +23 -0
- package/docs/pages/slider.js +0 -0
- package/docs/pages/snackbar.eta +83 -0
- package/docs/{src/components → pages}/snackbar.js +31 -36
- package/docs/pages/tab.eta +407 -0
- package/docs/pages/tab.js +152 -0
- package/docs/pages/textfield.eta +487 -0
- package/docs/{src/components → pages}/textfield.js +41 -45
- package/docs/pages/tooltip.eta +92 -0
- package/docs/pages/tooltip.js +0 -0
- package/docs/pages/transition.eta +117 -0
- package/docs/pages/transition.js +52 -0
- package/docs/pages/type.eta +31 -0
- package/docs/pages/type.js +0 -0
- package/docs/postrender.js +41 -0
- package/docs/prerender.js +16 -0
- package/docs/pwa/_dialogs.eta +143 -0
- package/docs/pwa/_menus.eta +16 -0
- package/docs/pwa/pwa-prerender.js +3 -0
- package/docs/pwa/pwa.eta +478 -0
- package/docs/pwa/pwa.js +298 -0
- package/docs/pwa/pwa.scss +31 -0
- package/docs/themes/theme-colored.scss +15 -0
- package/docs/themes/theme-default.scss +3 -0
- package/index.scss +27 -0
- package/jsconfig.json +8 -2
- package/package.json +54 -27
- package/scripts/deploy-docs.sh +9 -0
- package/templates/index.eta +2 -0
- package/templates/index.pug +3 -0
- package/tsconfig.json +16 -0
- package/utils/function.js +3 -0
- package/webpack.config.js +224 -68
- package/_index.scss +0 -4
- package/components/all-components.scss +0 -21
- package/components/bottomnav/style.scss +0 -190
- package/components/bottomnav/theming.scss +0 -76
- package/components/button/style.scss +0 -315
- package/components/button/theming.scss +0 -134
- package/components/card/style.scss +0 -175
- package/components/card/theming.scss +0 -43
- package/components/common/dom.js +0 -51
- package/components/common/functions.scss +0 -174
- package/components/common/mixins.scss +0 -122
- package/components/common/motion.scss +0 -36
- package/components/common/type.scss +0 -104
- package/components/common/variables.scss +0 -46
- package/components/datatable/style.scss +0 -257
- package/components/datatable/theming.scss +0 -119
- package/components/dialog/style.scss +0 -159
- package/components/dialog/theming.scss +0 -29
- package/components/divider/style.scss +0 -7
- package/components/divider/theming.scss +0 -20
- package/components/elevation/style.scss +0 -32
- package/components/layout/style.scss +0 -223
- package/components/list/style.scss +0 -358
- package/components/list/theming.scss +0 -83
- package/components/menu/style.scss +0 -280
- package/components/menu/theming.scss +0 -80
- package/components/navdrawer/index.js +0 -200
- package/components/navdrawer/style.scss +0 -595
- package/components/navdrawer/theming.scss +0 -62
- package/components/progress/style.scss +0 -136
- package/components/ripple/index.js +0 -63
- package/components/ripple/ripple.scss +0 -122
- package/components/selection/style.scss +0 -320
- package/components/selection/theming.scss +0 -98
- package/components/snackbar/style.scss +0 -212
- package/components/switch/style.scss +0 -3
- package/components/tab/style.scss +0 -275
- package/components/tab/theming.scss +0 -34
- package/components/template/theming.scss +0 -31
- package/components/textfield/style.scss +0 -795
- package/components/textfield/theming.scss +0 -256
- package/components/theming/globals.scss +0 -25
- package/components/theming/theming.scss +0 -559
- package/components/toolbar/style.scss +0 -190
- package/components/toolbar/theming.scss +0 -32
- package/components/tooltip/style.scss +0 -135
- package/components/type/style.scss +0 -167
- package/components/type/theming.scss +0 -25
- 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/components.min.css +0 -1
- package/docs/components.min.js +0 -2
- package/docs/components.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/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/index.html +0 -1
- package/docs/index.min.js +0 -2
- package/docs/index.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/navdrawer.html +0 -1
- package/docs/navdrawer.min.js +0 -2
- package/docs/navdrawer.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/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/src/components/bottomnav.js +0 -16
- package/docs/src/components/bottomnav.pug +0 -112
- package/docs/src/components/button.js +0 -156
- package/docs/src/components/button.pug +0 -194
- package/docs/src/components/card.js +0 -136
- package/docs/src/components/card.pug +0 -133
- package/docs/src/components/datatable.js +0 -183
- package/docs/src/components/datatable.pug +0 -324
- package/docs/src/components/dialog.pug +0 -138
- package/docs/src/components/elevation.js +0 -3
- package/docs/src/components/elevation.pug +0 -17
- package/docs/src/components/fab.pug +0 -84
- package/docs/src/components/layout.js +0 -116
- package/docs/src/components/layout.pug +0 -104
- package/docs/src/components/list.js +0 -15
- package/docs/src/components/list.pug +0 -293
- package/docs/src/components/menu.pug +0 -292
- package/docs/src/components/navdrawer.js +0 -112
- package/docs/src/components/navdrawer.pug +0 -113
- package/docs/src/components/progress.pug +0 -17
- package/docs/src/components/search.js +0 -206
- package/docs/src/components/search.pug +0 -149
- package/docs/src/components/selection.js +0 -6
- package/docs/src/components/selection.pug +0 -116
- package/docs/src/components/slider.js +0 -3
- package/docs/src/components/slider.pug +0 -19
- package/docs/src/components/snackbar.pug +0 -145
- package/docs/src/components/tab.js +0 -137
- package/docs/src/components/tab.pug +0 -329
- package/docs/src/components/textfield.pug +0 -416
- package/docs/src/components/toolbar.js +0 -6
- package/docs/src/components/toolbar.pug +0 -86
- package/docs/src/components/tooltip.js +0 -6
- package/docs/src/components/tooltip.pug +0 -76
- package/docs/src/components/type.js +0 -6
- package/docs/src/components/type.pug +0 -34
- package/docs/src/components.scss +0 -1
- package/docs/src/docs.scss +0 -284
- package/docs/src/index.js +0 -3
- package/docs/src/index.pug +0 -6
- package/docs/src/menuoptions.js +0 -136
- package/docs/src/mixins.pug +0 -139
- package/docs/src/prerender.js +0 -26
- package/docs/src/sample-utils.js +0 -108
- package/docs/src/targetHandler.js +0 -50
- package/docs/src/theming.ie11.scss +0 -18
- package/docs/src/theming.scss +0 -18
- 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/theming.ie11.min.css +0 -1
- package/docs/theming.ie11.min.js +0 -2
- package/docs/theming.ie11.min.js.map +0 -1
- package/docs/theming.min.css +0 -1
- package/docs/theming.min.js +0 -2
- package/docs/theming.min.js.map +0 -1
- package/docs/toolbar.html +0 -1
- package/docs/toolbar.min.js +0 -2
- package/docs/toolbar.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/type.html +0 -1
- package/docs/type.min.js +0 -2
- package/docs/type.min.js.map +0 -1
- package/index.js +0 -16
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
<% var T = '../../templates/index.eta' %>
|
|
2
|
+
<% layout('../_partials/_header.eta', {page: 'dialog'}) %>
|
|
3
|
+
<div class="mdw-grid" mdw-margin-top mdw-margin-bottom mdw-stretch>
|
|
4
|
+
<div class="mdw-grid__item" mdw-colspan="100%">
|
|
5
|
+
<h5 class="mdw-type" mdw-baseline-next="36">Dialogs inform users about a specific task and may contain critical information, require decisions, or involve multiple tasks.</h5>
|
|
6
|
+
<p class="mdw-type">Dialogs contain text and UI controls. They retain focus until dismissed or a required action has been taken. Use dialogs sparingly because they are interruptive.</p>
|
|
7
|
+
</div>
|
|
8
|
+
<div class="mdw-grid__item" mdw-colspan="4">
|
|
9
|
+
<div class="mdw-grid__content">
|
|
10
|
+
<div class="component-sample">
|
|
11
|
+
<div class="component-sample__container">
|
|
12
|
+
<%~ includeFile(T, {button: { href: "#sample-dialog", text:'Open' }}) %>
|
|
13
|
+
<div class="mdw-dialog" id="sample-dialog">
|
|
14
|
+
<a class="mdw-dialog__close" href="#"></a>
|
|
15
|
+
<div class="mdw-dialog__popup mdw-theme" mdw-surface="card">
|
|
16
|
+
<div class="mdw-dialog__title">Sample title</div>
|
|
17
|
+
<div class="mdw-dialog__body mdw-theme" mdw-ink="medium">Sample body text</div>
|
|
18
|
+
<div class="mdw-dialog__button-area">
|
|
19
|
+
<%~ includeFile(T, { button: { href:'#', ink:'secondary', text:'Agree' }}) %>
|
|
20
|
+
<%~ includeFile(T, { button: { href:'#', ink:'secondary', text:'Disagree' }}) %>
|
|
21
|
+
</div>
|
|
22
|
+
</div>
|
|
23
|
+
</div>
|
|
24
|
+
</div>
|
|
25
|
+
</div>
|
|
26
|
+
</div>
|
|
27
|
+
</div>
|
|
28
|
+
<div class="mdw-grid__item" mdw-colspan="8">
|
|
29
|
+
<div class="mdw-type" mdw-style="subtitle">Javascript</div>
|
|
30
|
+
<div class="docs-option-list">
|
|
31
|
+
<%~ includeFile(T, { selection: { ink:'secondary', name:'javascript', type:'radio', value:'required', text:'Required' }}) %>
|
|
32
|
+
<%~ includeFile(T, { selection: { ink:'secondary', name:'javascript', type:'radio', value:'optional', checked:true, text:'Optional' }}) %>
|
|
33
|
+
<%~ includeFile(T, { selection: { ink:'secondary', name:'javascript', type:'radio', value:'none', text:'None' }}) %>
|
|
34
|
+
</div>
|
|
35
|
+
<div class="mdw-type" mdw-style="subtitle">Options</div>
|
|
36
|
+
<div class="docs-option-list">
|
|
37
|
+
<%~ includeFile(T, { selection: { ink:'secondary', name:'stacked-buttons', text:'Stacked Buttons' }}) %>
|
|
38
|
+
</div>
|
|
39
|
+
<div class="mdw-type" mdw-style="subtitle">Width Units</div>
|
|
40
|
+
<div class="docs-option-list">
|
|
41
|
+
<%~ includeFile(T, { selection: { ink:'secondary', name:'width', type:'radio', value:'auto', checked:true, text:'Auto' }}) %>
|
|
42
|
+
<%~ includeFile(T, { selection: { ink:'secondary', name:'width', type:'radio', value:'3', text:'3' }}) %>
|
|
43
|
+
<%~ includeFile(T, { selection: { ink:'secondary', name:'width', type:'radio', value:'4', text:'4' }}) %>
|
|
44
|
+
<%~ includeFile(T, { selection: { ink:'secondary', name:'width', type:'radio', value:'5', text:'5' }}) %>
|
|
45
|
+
<%~ includeFile(T, { selection: { ink:'secondary', name:'width', type:'radio', value:'6', text:'6' }}) %>
|
|
46
|
+
<%~ includeFile(T, { selection: { ink:'secondary', name:'width', type:'radio', value:'7', text:'7' }}) %>
|
|
47
|
+
</div>
|
|
48
|
+
</div>
|
|
49
|
+
<div class="mdw-grid__item" mdw-colspan="100%" style="max-height:0;"></div>
|
|
50
|
+
<div class="mdw-grid__item" mdw-colspan="100%">
|
|
51
|
+
<h6 class="mdw-type">HTML Code</h6>
|
|
52
|
+
<div class="mdw-card mdw-theme component-code component-html" mdw-surface="card" mdw-border-ink></div>
|
|
53
|
+
</div>
|
|
54
|
+
<div class="mdw-grid__item" mdw-colspan="100%">
|
|
55
|
+
<h6 class="mdw-type">Javascript Code</h6>
|
|
56
|
+
<div class="mdw-card mdw-theme component-code component-js" mdw-surface="card" mdw-border-ink></div>
|
|
57
|
+
</div>
|
|
58
|
+
<div class="mdw-grid__item" mdw-colspan="100%">
|
|
59
|
+
<h6 class="mdw-type">Samples</h6>
|
|
60
|
+
</div>
|
|
61
|
+
<div class="mdw-grid__item display-flex" mdw-colspan="4" flex-justify-content="center">
|
|
62
|
+
<div class="render">
|
|
63
|
+
<div class="display-flex flex-1" flex-column style="position:relative;">
|
|
64
|
+
<%~ includeFile('../_partials/_androidstatusbar.eta', { surface: 'primary 700', dark: true }) %>
|
|
65
|
+
<div class="mdw-appbar mdw-theme" mdw-surface="primary 500" mdw-dark>
|
|
66
|
+
<div class="mdw-appbar__start">
|
|
67
|
+
<div class="mdw-tooltip__wrapper">
|
|
68
|
+
<%~ includeFile(T, {button: { icon:true, class:"mdw-tooltip__target material-icons", text:'menu' }}) %>
|
|
69
|
+
<div class="mdw-tooltip mdw-theme" mdw-surface="background 700" mdw-dark>Menu</div>
|
|
70
|
+
</div>
|
|
71
|
+
</div>
|
|
72
|
+
<div class="mdw-appbar__end">
|
|
73
|
+
<div class="mdw-tooltip__wrapper">
|
|
74
|
+
<%~ includeFile(T, {button: { icon:true, class:"mdw-tooltip__target material-icons", text:'more_vert' }}) %>
|
|
75
|
+
<div class="mdw-tooltip mdw-theme" mdw-surface="background 700" mdw-dark>Options</div>
|
|
76
|
+
</div>
|
|
77
|
+
</div>
|
|
78
|
+
</div>
|
|
79
|
+
<div class="content" style="padding:16px 8px;">
|
|
80
|
+
<h6 class="mdw-type">Javascript</h6>
|
|
81
|
+
<div class="display-flex js" style="padding:16px 0;">
|
|
82
|
+
<%~ includeFile(T, { button: { surface:'primary 500', dark:true, raised:true, text:'Chained' }}) %>
|
|
83
|
+
<%~ includeFile(T, { button: { surface:'primary 500', dark:true, raised:true, text:'Input Autofocus' }}) %>
|
|
84
|
+
</div>
|
|
85
|
+
<h6 class="mdw-type">CSS-Only</h6>
|
|
86
|
+
<div class="display-flex js" style="padding:16px 0;">
|
|
87
|
+
<%~ includeFile(T, { button: { surface:'primary 500', dark:true, raised:true, attributes: {href:"#confirmdialog-titled"}, id:'titled-button', text: 'Titled' }}) %>
|
|
88
|
+
<%~ includeFile(T, { button: { surface:'primary 500', dark:true, raised:true, attributes: {href:"#confirmdialog-text"}, id:'text-button', text: 'Text' }}) %>
|
|
89
|
+
<%~ includeFile(T, { button: { surface:'primary 500', dark:true, raised:true, attributes: {href:"#dialog-scrolling"}, id:'scrolling-button', text: 'Scrolling' }}) %>
|
|
90
|
+
</div>
|
|
91
|
+
</div>
|
|
92
|
+
<div class="mdw-dialog" id="confirmdialog-titled">
|
|
93
|
+
<a class="mdw-dialog__close" href="#titled-button"></a>
|
|
94
|
+
<div class="mdw-dialog__popup mdw-theme" mdw-surface="card">
|
|
95
|
+
<div class="mdw-dialog__title">Use Google's location service?</div>
|
|
96
|
+
<div class="mdw-dialog__body mdw-theme" mdw-ink="medium">Let Google help apps determine location. This means sending anonymous location data to Google, even when no apps are running.</div>
|
|
97
|
+
<div class="mdw-dialog__button-area">
|
|
98
|
+
<%~ includeFile(T, { button: { ink:'secondary', attributes: {href:"#titled-button"}, text:'Agree' }}) %>
|
|
99
|
+
<%~ includeFile(T, { button: { ink:'secondary', attributes: {href:"#titled-button"}, text:'Disagree' }}) %>
|
|
100
|
+
</div>
|
|
101
|
+
</div>
|
|
102
|
+
</div>
|
|
103
|
+
<div class="mdw-dialog" id="dialog-scrolling">
|
|
104
|
+
<a class="mdw-dialog__close" href="#scrolling-button"></a>
|
|
105
|
+
<div class="mdw-dialog__popup mdw-theme" mdw-surface="card">
|
|
106
|
+
<div class="mdw-dialog__header">
|
|
107
|
+
<div class="mdw-dialog__title">Dialog header</div>
|
|
108
|
+
</div>
|
|
109
|
+
<div class="mdw-divider mdw-theme" mdw-border-ink="divider"></div>
|
|
110
|
+
<div class="mdw-dialog__scrolling">
|
|
111
|
+
<ul class="mdw-list">
|
|
112
|
+
<li class="mdw-list__item">
|
|
113
|
+
<a class="mdw-list__content mdw-overlay mdw-ripple mdw-theme" href="#scrolling-button" mdw-ink="default">Item 1</a>
|
|
114
|
+
</li>
|
|
115
|
+
<li class="mdw-list__item">
|
|
116
|
+
<a class="mdw-list__content mdw-overlay mdw-ripple mdw-theme" href="#scrolling-button" mdw-ink="default">Item 2</a>
|
|
117
|
+
</li>
|
|
118
|
+
<li class="mdw-list__item">
|
|
119
|
+
<a class="mdw-list__content mdw-overlay mdw-ripple mdw-theme" href="#scrolling-button" mdw-ink="default">Item 3</a>
|
|
120
|
+
</li>
|
|
121
|
+
<li class="mdw-list__item">
|
|
122
|
+
<a class="mdw-list__content mdw-overlay mdw-ripple mdw-theme" href="#scrolling-button" mdw-ink="default">Item 4</a>
|
|
123
|
+
</li>
|
|
124
|
+
<li class="mdw-list__item">
|
|
125
|
+
<a class="mdw-list__content mdw-overlay mdw-ripple mdw-theme" href="#scrolling-button" mdw-ink="default">Item 5</a>
|
|
126
|
+
</li>
|
|
127
|
+
<li class="mdw-list__item">
|
|
128
|
+
<a class="mdw-list__content mdw-overlay mdw-ripple mdw-theme" href="#scrolling-button" mdw-ink="default">Item 6</a>
|
|
129
|
+
</li>
|
|
130
|
+
<li class="mdw-list__item">
|
|
131
|
+
<a class="mdw-list__content mdw-overlay mdw-ripple mdw-theme" href="#scrolling-button" mdw-ink="default">Item 7</a>
|
|
132
|
+
</li>
|
|
133
|
+
<li class="mdw-list__item">
|
|
134
|
+
<a class="mdw-list__content mdw-overlay mdw-ripple mdw-theme" href="#scrolling-button" mdw-ink="default">Item 8</a>
|
|
135
|
+
</li>
|
|
136
|
+
<li class="mdw-list__item">
|
|
137
|
+
<a class="mdw-list__content mdw-overlay mdw-ripple mdw-theme" href="#scrolling-button" mdw-ink="default">Item 9</a>
|
|
138
|
+
</li>
|
|
139
|
+
</ul>
|
|
140
|
+
</div>
|
|
141
|
+
<div class="mdw-divider mdw-theme" mdw-border-ink="divider"></div>
|
|
142
|
+
<div class="mdw-dialog__button-area">
|
|
143
|
+
<%~ includeFile(T, { button: { ink:'secondary', attributes: { href:"#scrolling-button" }, text:'Agree' }}) %>
|
|
144
|
+
<%~ includeFile(T, { button: { ink:'secondary', attributes: { href:"#scrolling-button" }, text:'Disagree' }}) %>
|
|
145
|
+
</div>
|
|
146
|
+
</div>
|
|
147
|
+
</div>
|
|
148
|
+
<div class="mdw-dialog" id="confirmdialog-text">
|
|
149
|
+
<a class="mdw-dialog__close" href="#text-button"></a>
|
|
150
|
+
<div class="mdw-dialog__popup mdw-theme" mdw-surface="card">
|
|
151
|
+
<div class="mdw-dialog__body mdw-theme" mdw-ink="medium">Discard draft?</div>
|
|
152
|
+
<div class="mdw-dialog__button-area">
|
|
153
|
+
<%~ includeFile(T, { button: { ink:'secondary', attributes: { href:"#text-button" }, text:'Discard' }}) %>
|
|
154
|
+
<%~ includeFile(T, { button: { ink:'secondary', attributes: { href:"#text-button" }, text:'Cancel' }}) %>
|
|
155
|
+
</div>
|
|
156
|
+
</div>
|
|
157
|
+
</div>
|
|
158
|
+
<div class="mdw-dialog" id="dialog-textfield" mdw-width-units="5">
|
|
159
|
+
<form class="mdw-dialog__popup mdw-theme" mdw-surface="card">
|
|
160
|
+
<div class="mdw-dialog__header">
|
|
161
|
+
<div class="mdw-dialog__title">Dialog Title</div>
|
|
162
|
+
</div>
|
|
163
|
+
<label class="mdw-textfield mdw-theme" mdw-ink="secondary" style="padding:0 24px;">
|
|
164
|
+
<div class="mdw-textfield__signifier material-icons">security</div>
|
|
165
|
+
<input class="mdw-textfield__input" placeholder=" " name="input" mdw-autofocus/>
|
|
166
|
+
<div class="mdw-textfield__border">
|
|
167
|
+
<div class="mdw-textfield__outline-gap">
|
|
168
|
+
<div class="mdw-textfield__label">Text Field Label</div>
|
|
169
|
+
</div>
|
|
170
|
+
</div>
|
|
171
|
+
<div class="mdw-textfield__error-text">This field is required</div>
|
|
172
|
+
</label>
|
|
173
|
+
<div class="mdw-dialog__button-area">
|
|
174
|
+
<button class="mdw-button mdw-theme" mdw-ink="secondary" tabindex="0" type="submit">Change</button>
|
|
175
|
+
<button class="mdw-button mdw-theme" mdw-ink="secondary" tabindex="0" type="button">Cancel</button>
|
|
176
|
+
</div>
|
|
177
|
+
</form>
|
|
178
|
+
</div>
|
|
179
|
+
</div>
|
|
180
|
+
<%~ includeFile('../_partials/_androidnavbar.eta') %>
|
|
181
|
+
</div>
|
|
182
|
+
</div>
|
|
183
|
+
</div>
|
|
184
|
+
<script src="dialog.min.js"></script>
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
4
|
-
|
|
1
|
+
import * as Button from '../../components/button/index.js';
|
|
2
|
+
import * as Dialog from '../../components/dialog/index.js';
|
|
3
|
+
import { convertElementToCode } from '../_sample-utils.js';
|
|
5
4
|
|
|
6
5
|
/** @type {HTMLElement} */
|
|
7
6
|
let sampleComponent;
|
|
@@ -16,26 +15,23 @@ function onSampleButtonClick(event) {
|
|
|
16
15
|
|
|
17
16
|
/** @return {void} */
|
|
18
17
|
function updateSampleCode() {
|
|
19
|
-
const jsRequired = document.querySelector('input[name="javascript"][value="required"]').checked;
|
|
20
|
-
const jsOptional = document.querySelector('input[name="javascript"][value="optional"]').checked;
|
|
18
|
+
const jsRequired = /** @type {HTMLInputElement} */ (document.querySelector('input[name="javascript"][value="required"]')).checked;
|
|
19
|
+
const jsOptional = /** @type {HTMLInputElement} */ (document.querySelector('input[name="javascript"][value="optional"]')).checked;
|
|
21
20
|
const useJS = jsRequired || jsOptional;
|
|
22
21
|
|
|
23
22
|
// Strip JS related elements and attributes
|
|
24
23
|
Dialog.detach(sampleComponent);
|
|
25
|
-
|
|
24
|
+
const button = document.querySelector('.component-sample .mdw-button');
|
|
26
25
|
let closer = document.querySelector('.component-sample .mdw-dialog__close');
|
|
27
26
|
const dialogButtons = sampleComponent.querySelectorAll('.mdw-dialog__button-area .mdw-button');
|
|
27
|
+
Button.detach(button);
|
|
28
28
|
button.removeEventListener('click', onSampleButtonClick);
|
|
29
29
|
const tabIndexElements = sampleComponent.querySelectorAll('[tabindex]');
|
|
30
|
-
for (
|
|
31
|
-
tabIndexElements.item(i).removeAttribute('tabindex');
|
|
32
|
-
}
|
|
30
|
+
for (const el of tabIndexElements) el.removeAttribute('tabindex');
|
|
33
31
|
|
|
34
|
-
if (closer) {
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
closer = null;
|
|
38
|
-
}
|
|
32
|
+
if (closer && (jsRequired || !(closer instanceof HTMLAnchorElement))) {
|
|
33
|
+
closer.remove();
|
|
34
|
+
closer = null;
|
|
39
35
|
}
|
|
40
36
|
|
|
41
37
|
if (useJS) {
|
|
@@ -47,31 +43,13 @@ function updateSampleCode() {
|
|
|
47
43
|
if (jsRequired) {
|
|
48
44
|
sampleComponent.removeAttribute('id');
|
|
49
45
|
button.removeAttribute('href');
|
|
50
|
-
if (button instanceof HTMLAnchorElement) {
|
|
51
|
-
button = changeElementTagName(button, 'button');
|
|
52
|
-
}
|
|
53
46
|
dialogButtons[0].removeAttribute('href');
|
|
54
|
-
if (dialogButtons[0] instanceof HTMLAnchorElement) {
|
|
55
|
-
changeElementTagName(dialogButtons[0], 'button');
|
|
56
|
-
}
|
|
57
47
|
dialogButtons[1].removeAttribute('href');
|
|
58
|
-
if (dialogButtons[1] instanceof HTMLAnchorElement) {
|
|
59
|
-
changeElementTagName(dialogButtons[1], 'button');
|
|
60
|
-
}
|
|
61
48
|
} else {
|
|
62
|
-
sampleComponent.
|
|
49
|
+
sampleComponent.id = 'sample-dialog';
|
|
63
50
|
button.setAttribute('href', '#sample-dialog');
|
|
64
|
-
if (button instanceof HTMLButtonElement) {
|
|
65
|
-
button = changeElementTagName(button, 'a');
|
|
66
|
-
}
|
|
67
51
|
dialogButtons[0].setAttribute('href', '#');
|
|
68
|
-
if (dialogButtons[0] instanceof HTMLButtonElement) {
|
|
69
|
-
changeElementTagName(dialogButtons[0], 'a');
|
|
70
|
-
}
|
|
71
52
|
dialogButtons[1].setAttribute('href', '#');
|
|
72
|
-
if (dialogButtons[1] instanceof HTMLButtonElement) {
|
|
73
|
-
changeElementTagName(dialogButtons[1], 'a');
|
|
74
|
-
}
|
|
75
53
|
if (!closer) {
|
|
76
54
|
closer = document.createElement('a');
|
|
77
55
|
closer.classList.add('mdw-dialog__close');
|
|
@@ -80,7 +58,6 @@ function updateSampleCode() {
|
|
|
80
58
|
}
|
|
81
59
|
}
|
|
82
60
|
|
|
83
|
-
|
|
84
61
|
const htmlCodeElement = document.getElementsByClassName('component-html')[0];
|
|
85
62
|
const sampleContainer = document.querySelector('.component-sample__container');
|
|
86
63
|
const htmlCodeBlocks = [];
|
|
@@ -97,6 +74,7 @@ function updateSampleCode() {
|
|
|
97
74
|
// Reattach JS if requested
|
|
98
75
|
if (useJS) {
|
|
99
76
|
Dialog.attach(sampleComponent);
|
|
77
|
+
Button.attach(button);
|
|
100
78
|
button.addEventListener('click', onSampleButtonClick);
|
|
101
79
|
}
|
|
102
80
|
|
|
@@ -113,9 +91,8 @@ function updateSampleCode() {
|
|
|
113
91
|
* @return {void}
|
|
114
92
|
*/
|
|
115
93
|
function onOptionChange(event) {
|
|
116
|
-
const { name, value, checked } = event.target;
|
|
117
|
-
|
|
118
|
-
const buttonArea = sampleComponent.getElementsByClassName('mdw-dialog__button-area')[0]
|
|
94
|
+
const { name, value, checked } = /** @type {HTMLInputElement} */ (event.target);
|
|
95
|
+
const buttonArea = sampleComponent.getElementsByClassName('mdw-dialog__button-area')[0];
|
|
119
96
|
switch (name) {
|
|
120
97
|
case 'stacked-buttons':
|
|
121
98
|
if (checked) {
|
|
@@ -142,16 +119,15 @@ function onOptionChange(event) {
|
|
|
142
119
|
/** @return {void} */
|
|
143
120
|
function setupComponentOptions() {
|
|
144
121
|
sampleComponent = document.querySelector('.component-sample .mdw-dialog');
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
onOptionChange
|
|
149
|
-
);
|
|
122
|
+
for (const el of document.querySelectorAll('input[name]')) {
|
|
123
|
+
el.addEventListener('change', onOptionChange);
|
|
124
|
+
}
|
|
150
125
|
}
|
|
151
126
|
|
|
152
127
|
/** @return {void} */
|
|
153
|
-
function
|
|
128
|
+
function setupJSSample1() {
|
|
154
129
|
const button = document.querySelector('.js .mdw-button');
|
|
130
|
+
Button.attach(button);
|
|
155
131
|
const confirmDialogElement = Dialog.create({
|
|
156
132
|
title: 'Feedback',
|
|
157
133
|
body: 'Are you enjoying this demo?',
|
|
@@ -178,10 +154,21 @@ function initializeSampleComponents() {
|
|
|
178
154
|
});
|
|
179
155
|
}
|
|
180
156
|
|
|
157
|
+
/** @return {void} */
|
|
158
|
+
function setupJSSample2() {
|
|
159
|
+
const button = document.querySelectorAll('.js .mdw-button')[1];
|
|
160
|
+
Button.attach(button);
|
|
161
|
+
button.addEventListener('click', (event) => {
|
|
162
|
+
Dialog.show(document.getElementById('dialog-textfield'), event);
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
/** @return {void} */
|
|
167
|
+
function initializeSampleComponents() {
|
|
168
|
+
setupJSSample1();
|
|
169
|
+
setupJSSample2();
|
|
170
|
+
}
|
|
171
|
+
|
|
181
172
|
initializeSampleComponents();
|
|
182
173
|
setupComponentOptions();
|
|
183
174
|
updateSampleCode();
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
setupMenuOptions();
|
|
187
|
-
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
<% var T = '../../templates/index.eta' %>
|
|
2
|
+
<% layout('../_partials/_header.eta', {page: 'dom'}) %>
|
|
3
|
+
<div class="mdw-grid" mdw-margin-top mdw-margin-bottom mdw-stretch>
|
|
4
|
+
<div class="mdw-grid__item" mdw-colspan="6">
|
|
5
|
+
<div class="mdw-grid__content component-sample">
|
|
6
|
+
<div class="display-flex" style="flex:1;height:400px;max-height:400px;overflow-y:auto;">
|
|
7
|
+
<ul class="mdw-list mdw-theme" style="flex:1;width:100%;" mdw-surface="primary alt"></ul>
|
|
8
|
+
</div>
|
|
9
|
+
</div>
|
|
10
|
+
</div>
|
|
11
|
+
<div class="mdw-grid__item" mdw-colspan="100%">
|
|
12
|
+
<div class="mdw-type" mdw-style="subtitle">Optimizations</div>
|
|
13
|
+
<div class="docs-option-list">
|
|
14
|
+
<%~ includeFile(T, { selection: { ink:'secondary', name:'fastMeasure', checked:true, text:'Fast Measure' }}) %>
|
|
15
|
+
<%~ includeFile(T, { selection: { ink:'secondary', name:'block', checked:true, text:'Block-level' }}) %>
|
|
16
|
+
<%~ includeFile(T, { selection: { ink:'secondary', name:'deferRender', checked:true, text:'Defer Render' }}) %>
|
|
17
|
+
<%~ includeFile(T, { selection: { ink:'secondary', name:'equalSize', checked:false, text:'Equal Size' }}) %>
|
|
18
|
+
</div>
|
|
19
|
+
<div class="mdw-type" mdw-style="subtitle">Test Options</div>
|
|
20
|
+
<%~ includeFile(T, { button: { text:'Reset' }}) %>
|
|
21
|
+
<%~ includeFile(T, { button: { text:'Remove #10' }}) %>
|
|
22
|
+
<%~ includeFile(T, { button: { text:'Increment #50' }}) %>
|
|
23
|
+
<%~ includeFile(T, { button: { text:'Resize #80' }}) %>
|
|
24
|
+
</div>
|
|
25
|
+
</div>
|
|
26
|
+
<script src="dom.min.js"></script>
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import DomAdapter from '../../adapters/dom/index.js';
|
|
2
|
+
import * as ListContent from '../../components/list/content.js';
|
|
3
|
+
import * as ListItem from '../../components/list/item.js';
|
|
4
|
+
|
|
5
|
+
class CustomDataSourceItem {
|
|
6
|
+
/** @param {number} i */
|
|
7
|
+
constructor(i) {
|
|
8
|
+
this.itemnumber = i;
|
|
9
|
+
this.clickCount = 0;
|
|
10
|
+
this.expanded = false;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
/** @type {CustomDataSourceItem[]} */
|
|
15
|
+
const datasource = [];
|
|
16
|
+
|
|
17
|
+
/** @type {HTMLElement} */
|
|
18
|
+
let sampleComponent;
|
|
19
|
+
|
|
20
|
+
/** @type {DomAdapter<CustomDataSourceItem, HTMLLIElement>} */
|
|
21
|
+
let domAdapter;
|
|
22
|
+
|
|
23
|
+
/** @return {void} */
|
|
24
|
+
function resetDatasource() {
|
|
25
|
+
datasource.splice(0, datasource.length);
|
|
26
|
+
for (let i = 0; i < 500; i += 1) {
|
|
27
|
+
datasource.push(new CustomDataSourceItem(i));
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* @param {Event} event
|
|
32
|
+
* @return {void}
|
|
33
|
+
*/
|
|
34
|
+
function onOptionChange(event) {
|
|
35
|
+
const { name, checked } = /** @type {HTMLInputElement} */ (event.target);
|
|
36
|
+
// @ts-ignore: Optimization
|
|
37
|
+
domAdapter.recycle[name] = checked;
|
|
38
|
+
domAdapter.refresh();
|
|
39
|
+
}
|
|
40
|
+
/** @return {void} */
|
|
41
|
+
function setupComponentOptions() {
|
|
42
|
+
for (const el of document.querySelectorAll('input[name]')) {
|
|
43
|
+
el.addEventListener('change', onOptionChange);
|
|
44
|
+
}
|
|
45
|
+
sampleComponent = document.querySelector('.component-sample .mdw-list');
|
|
46
|
+
resetDatasource();
|
|
47
|
+
domAdapter = new DomAdapter({
|
|
48
|
+
element: sampleComponent,
|
|
49
|
+
datasource,
|
|
50
|
+
recycle: {
|
|
51
|
+
scroller: sampleComponent.parentElement,
|
|
52
|
+
fastMeasure: true,
|
|
53
|
+
block: true,
|
|
54
|
+
deferRender: true,
|
|
55
|
+
equalSize: false,
|
|
56
|
+
},
|
|
57
|
+
render(child, data, index) {
|
|
58
|
+
const textLines = child.getElementsByClassName('mdw-list__text-line');
|
|
59
|
+
textLines[0].textContent = `Item ${data.itemnumber}`;
|
|
60
|
+
textLines[1].textContent = `Click count: #${data.clickCount}`;
|
|
61
|
+
if (data.expanded) {
|
|
62
|
+
child.style.setProperty('height', '128px');
|
|
63
|
+
child.style.setProperty('background-color', 'red');
|
|
64
|
+
} else {
|
|
65
|
+
child.style.setProperty('height', '64px');
|
|
66
|
+
child.style.removeProperty('background-color');
|
|
67
|
+
}
|
|
68
|
+
child.firstElementChild.setAttribute('aria-posinset', index.toString(10));
|
|
69
|
+
},
|
|
70
|
+
create(data) {
|
|
71
|
+
// Create placeholder UI
|
|
72
|
+
const listItem = document.createElement('li');
|
|
73
|
+
if (!domAdapter.recycle.block) {
|
|
74
|
+
listItem.style.setProperty('display', 'inline-flex');
|
|
75
|
+
listItem.style.setProperty('width', '33.333%');
|
|
76
|
+
}
|
|
77
|
+
if (domAdapter.recycle.deferRender) {
|
|
78
|
+
listItem.style.setProperty('min-height', '64px');
|
|
79
|
+
if (data.expanded) {
|
|
80
|
+
listItem.style.setProperty('height', '128px');
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
listItem.className = 'mdw-list__item';
|
|
84
|
+
listItem.innerHTML = `
|
|
85
|
+
<a class="mdw-list__content">
|
|
86
|
+
<div class="mdw-list__text">
|
|
87
|
+
<div class="mdw-list__text-line">Item ${data.itemnumber}</div>
|
|
88
|
+
<div class="mdw-list__text-line mdw-theme" mdw-ink="medium">Waiting for idle...</div>
|
|
89
|
+
</div>
|
|
90
|
+
</a>
|
|
91
|
+
`;
|
|
92
|
+
ListItem.attach(listItem);
|
|
93
|
+
return listItem;
|
|
94
|
+
},
|
|
95
|
+
});
|
|
96
|
+
domAdapter.refresh();
|
|
97
|
+
const buttons = document.querySelectorAll('.mdw-layout__content-page .mdw-button');
|
|
98
|
+
buttons[0].addEventListener('click', () => {
|
|
99
|
+
buttons[1].removeAttribute('aria-disabled');
|
|
100
|
+
resetDatasource();
|
|
101
|
+
domAdapter.refresh();
|
|
102
|
+
});
|
|
103
|
+
buttons[1].addEventListener('click', () => {
|
|
104
|
+
if (buttons[1].getAttribute('aria-disabled') === 'true') {
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
const item = datasource[10];
|
|
108
|
+
domAdapter.removeItem(item);
|
|
109
|
+
datasource.splice(10, 1);
|
|
110
|
+
|
|
111
|
+
// Alternatively, we can remove from datasource first and call invalidateAll()
|
|
112
|
+
|
|
113
|
+
domAdapter.drawViewport();
|
|
114
|
+
buttons[1].setAttribute('aria-disabled', 'true');
|
|
115
|
+
});
|
|
116
|
+
buttons[2].addEventListener('click', () => {
|
|
117
|
+
const item = datasource.find((d) => d.itemnumber === 50);
|
|
118
|
+
item.clickCount += 1;
|
|
119
|
+
// Element will not change size, therefore avoid possible invalidation
|
|
120
|
+
// (When element is refreshed and not in DOM, adapter may assume sized change)
|
|
121
|
+
domAdapter.refreshItem(item, { invalidate: false });
|
|
122
|
+
domAdapter.drawViewport();
|
|
123
|
+
});
|
|
124
|
+
buttons[3].addEventListener('click', () => {
|
|
125
|
+
const item = datasource.find((d) => d.itemnumber === 80);
|
|
126
|
+
item.expanded = !item.expanded;
|
|
127
|
+
// Force invalidation from height change
|
|
128
|
+
domAdapter.refreshItem(item, { invalidate: true });
|
|
129
|
+
domAdapter.drawViewport();
|
|
130
|
+
});
|
|
131
|
+
sampleComponent.addEventListener(ListContent.ACTIVATE_EVENT, (event) => {
|
|
132
|
+
const listContent = /** @type {HTMLElement} */ (event.target);
|
|
133
|
+
const listItem = /** @type {HTMLLIElement} */ (listContent.parentElement);
|
|
134
|
+
const dataItem = domAdapter.elementDataMap.get(listItem);
|
|
135
|
+
dataItem.clickCount += 1;
|
|
136
|
+
domAdapter.refreshItem(dataItem);
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
setupComponentOptions();
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
<% var T = '../../templates/index.eta' %>
|
|
2
|
+
<% layout('../_partials/_header.eta', {page: 'elevation'}) %>
|
|
3
|
+
<div class="docs-grid mdw-grid" mdw-margin-top mdw-margin-bottom mdw-columns="4" mdw-margin-4col="40" mdw-gutter-4col="40">
|
|
4
|
+
<div class="mdw-grid__item">
|
|
5
|
+
<div class="docs-elevation__item mdw-elevation mdw-overlay" mdw-overlay-off="hover" mdw-elevation="1">1dp</div>
|
|
6
|
+
</div>
|
|
7
|
+
<div class="mdw-grid__item">
|
|
8
|
+
<div class="docs-elevation__item mdw-elevation mdw-overlay" mdw-overlay-off="hover" mdw-elevation="2">2dp</div>
|
|
9
|
+
</div>
|
|
10
|
+
<div class="mdw-grid__item">
|
|
11
|
+
<div class="docs-elevation__item mdw-elevation mdw-overlay" mdw-overlay-off="hover" mdw-elevation="3">3dp</div>
|
|
12
|
+
</div>
|
|
13
|
+
<div class="mdw-grid__item">
|
|
14
|
+
<div class="docs-elevation__item mdw-elevation mdw-overlay" mdw-overlay-off="hover" mdw-elevation="4">4dp</div>
|
|
15
|
+
</div>
|
|
16
|
+
<div class="mdw-grid__item">
|
|
17
|
+
<div class="docs-elevation__item mdw-elevation mdw-overlay" mdw-overlay-off="hover" mdw-elevation="6">6dp</div>
|
|
18
|
+
</div>
|
|
19
|
+
<div class="mdw-grid__item">
|
|
20
|
+
<div class="docs-elevation__item mdw-elevation mdw-overlay" mdw-overlay-off="hover" mdw-elevation="8">8dp</div>
|
|
21
|
+
</div>
|
|
22
|
+
<div class="mdw-grid__item">
|
|
23
|
+
<div class="docs-elevation__item mdw-elevation mdw-overlay" mdw-overlay-off="hover" mdw-elevation="9">9dp</div>
|
|
24
|
+
</div>
|
|
25
|
+
<div class="mdw-grid__item">
|
|
26
|
+
<div class="docs-elevation__item mdw-elevation mdw-overlay" mdw-overlay-off="hover" mdw-elevation="12">12dp</div>
|
|
27
|
+
</div>
|
|
28
|
+
<div class="mdw-grid__item">
|
|
29
|
+
<div class="docs-elevation__item mdw-elevation mdw-overlay" mdw-overlay-off="hover" mdw-elevation="16">16dp</div>
|
|
30
|
+
</div>
|
|
31
|
+
<div class="mdw-grid__item">
|
|
32
|
+
<div class="docs-elevation__item mdw-elevation mdw-overlay" mdw-overlay-off="hover" mdw-elevation="24">24dp</div>
|
|
33
|
+
</div>
|
|
34
|
+
</div>
|
|
35
|
+
<script src="elevation.min.js"></script>
|
|
File without changes
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
<% var T = '../../templates/index.eta' %>
|
|
2
|
+
<% layout('../_partials/_header.eta', {page: 'fab'}) %>
|
|
3
|
+
<div class="comparison js">
|
|
4
|
+
<div class="render">
|
|
5
|
+
<div class="display-flex flex-1" flex-column style="position:relative;">
|
|
6
|
+
<%~ includeFile('../_partials/_androidstatusbar.eta', { surface:'primary 700', dark:true }) %>
|
|
7
|
+
<%~ includeFile('../_partials/_appbar.eta', { surface: 'primary 500', dark: true, start: ['menu'], end: ['search'], body: 'JS' }) %>
|
|
8
|
+
<div class="content" style="padding:16px 8px;">
|
|
9
|
+
<div class="mdw-type" mdw-style="subtitle">Hover</div>
|
|
10
|
+
<div class="docs-option-list">
|
|
11
|
+
<%~ includeFile(T, { selection: { ink:'secondary', name:'hover', text:'Open on Hover' }}) %>
|
|
12
|
+
</div>
|
|
13
|
+
<div class="mdw-type" mdw-style="subtitle">Type</div>
|
|
14
|
+
<div class="docs-option-list">
|
|
15
|
+
<%~ includeFile(T, { selection: { ink:'secondary', name:'type', type:'radio', value:'regular', text:'Regular (Default)', checked:true }}) %>
|
|
16
|
+
<%~ includeFile(T, { selection: { ink:'secondary', name:'type', type:'radio', value:'mini', text:'Mini' }}) %>
|
|
17
|
+
<%~ includeFile(T, { selection: { ink:'secondary', name:'type', type:'radio', value:'extended', text:'Extended' }}) %>
|
|
18
|
+
<%~ includeFile(T, { selection: { ink:'secondary', name:'type', type:'radio', value:'extended-hover', text:'Extended on Hover' }}) %>
|
|
19
|
+
</div>
|
|
20
|
+
<div class="mdw-grid docs-render-overlay" mdw-margin-bottom mdw-columns="4">
|
|
21
|
+
<div class="mdw-grid__item">
|
|
22
|
+
<div class="mdw-grid__content">
|
|
23
|
+
<div class="mdw-fab">
|
|
24
|
+
<%~ includeFile(T, { button: { surface: 'secondary 500', dark:true, class:"mdw-fab__button", body: /* html */ `
|
|
25
|
+
<div class="mdw-fab__icon">
|
|
26
|
+
<div class="mdw-fab__hidden-icon material-icons">add</div>
|
|
27
|
+
<div class="mdw-fab__shown-icon material-icons">clear</div>
|
|
28
|
+
</div>
|
|
29
|
+
<div class="mdw-fab__text">Add</div>
|
|
30
|
+
`}}) %>
|
|
31
|
+
<div class="mdw-fab__speed-dial">
|
|
32
|
+
<%~ includeFile(T, { button: { class:'mdw-fab__button', attributes: {'mdw-mini': true},body: /* html */ `
|
|
33
|
+
<div class="mdw-fab__icon material-icons">filter_1</div>
|
|
34
|
+
`}}) %>
|
|
35
|
+
<%~ includeFile(T, { button: { class:'mdw-fab__button', attributes: {'mdw-mini': true},body: /* html */ `
|
|
36
|
+
<div class="mdw-fab__icon material-icons">filter_2</div>
|
|
37
|
+
`}}) %>
|
|
38
|
+
<%~ includeFile(T, { button: { class:'mdw-fab__button', attributes: {'mdw-mini': true},body: /* html */ `
|
|
39
|
+
<div class="mdw-fab__icon material-icons">filter_3</div>
|
|
40
|
+
`}}) %>
|
|
41
|
+
<%~ includeFile(T, { button: { class:'mdw-fab__button', attributes: {'mdw-mini': true},body: /* html */ `
|
|
42
|
+
<div class="mdw-fab__icon material-icons">filter_4</div>
|
|
43
|
+
`}}) %>
|
|
44
|
+
<%~ includeFile(T, { button: { class:'mdw-fab__button', attributes: {'mdw-mini': true},body: /* html */ `
|
|
45
|
+
<div class="mdw-fab__icon material-icons">filter_5</div>
|
|
46
|
+
`}}) %>
|
|
47
|
+
</div>
|
|
48
|
+
</div>
|
|
49
|
+
</div>
|
|
50
|
+
</div>
|
|
51
|
+
</div>
|
|
52
|
+
</div>
|
|
53
|
+
</div>
|
|
54
|
+
<%~ includeFile('../_partials/_androidnavbar.eta') %>
|
|
55
|
+
</div>
|
|
56
|
+
</div>
|
|
57
|
+
<div class="comparison">
|
|
58
|
+
<div class="render">
|
|
59
|
+
<div class="display-flex flex-1" flex-column style="position:relative;">
|
|
60
|
+
<%~ includeFile('../_partials/_androidstatusbar.eta', { surface:'primary 700', dark:true }) %>
|
|
61
|
+
<%~ includeFile('../_partials/_appbar.eta', { surface:'primary 500', dark:true, start: ['menu'], end: ['search'], body:'CSS Only' }) %>
|
|
62
|
+
<div class="content" style="padding:16px 8px;">
|
|
63
|
+
<div class="mdw-grid docs-render-overlay" mdw-margin-bottom>
|
|
64
|
+
<div class="mdw-grid__item">
|
|
65
|
+
<div class="mdw-fab" id="my-fab">
|
|
66
|
+
<a class="mdw-fab__close" href="#my-fab-button"></a>
|
|
67
|
+
<%~ includeFile(T, { button: { surface: 'secondary 500', dark:true, id:'my-fab-button', href:'#my-fab', class:"mdw-fab__button", body: /* html */ `
|
|
68
|
+
<div class="mdw-fab__icon">
|
|
69
|
+
<div class="mdw-fab__hidden-icon material-icons">add</div>
|
|
70
|
+
<div class="mdw-fab__shown-icon material-icons">clear</div>
|
|
71
|
+
</div>
|
|
72
|
+
<div class="mdw-fab__text">Add</div>
|
|
73
|
+
`}}) %>
|
|
74
|
+
<div class="mdw-fab__speed-dial">
|
|
75
|
+
<%~ includeFile(T, { button: { class:'mdw-fab__button', attributes: {'mdw-mini': true},body: /* html */ `
|
|
76
|
+
<div class="mdw-fab__icon material-icons">filter_1</div>
|
|
77
|
+
`}}) %>
|
|
78
|
+
<%~ includeFile(T, { button: { class:'mdw-fab__button', attributes: {'mdw-mini': true},body: /* html */ `
|
|
79
|
+
<div class="mdw-fab__icon material-icons">filter_2</div>
|
|
80
|
+
`}}) %>
|
|
81
|
+
<%~ includeFile(T, { button: { class:'mdw-fab__button', attributes: {'mdw-mini': true},body: /* html */ `
|
|
82
|
+
<div class="mdw-fab__icon material-icons">filter_3</div>
|
|
83
|
+
`}}) %>
|
|
84
|
+
<%~ includeFile(T, { button: { class:'mdw-fab__button', attributes: {'mdw-mini': true},body: /* html */ `
|
|
85
|
+
<div class="mdw-fab__icon material-icons">filter_4</div>
|
|
86
|
+
`}}) %>
|
|
87
|
+
<%~ includeFile(T, { button: { class:'mdw-fab__button', attributes: {'mdw-mini': true},body: /* html */ `
|
|
88
|
+
<div class="mdw-fab__icon material-icons">filter_5</div>
|
|
89
|
+
`}}) %>
|
|
90
|
+
</div>
|
|
91
|
+
</div>
|
|
92
|
+
</div>
|
|
93
|
+
</div>
|
|
94
|
+
</div>
|
|
95
|
+
</div>
|
|
96
|
+
<%~ includeFile('../_partials/_androidnavbar.eta') %>
|
|
97
|
+
</div>
|
|
98
|
+
</div>
|
|
99
|
+
<script src="fab.min.js"></script>
|