Updated Angular Material element examples

This commit is contained in:
Sercan Yemen 2018-03-08 11:48:38 +03:00
parent c9168717a4
commit 8c4a714d39
40 changed files with 655 additions and 281 deletions

View File

@ -1,3 +1,4 @@
import { AutocompleteAutoActiveFirstOptionExample } from 'assets/angular-material-examples/autocomplete-auto-active-first-option/autocomplete-auto-active-first-option-example';
import { AutocompleteDisplayExample } from 'assets/angular-material-examples/autocomplete-display/autocomplete-display-example'; import { AutocompleteDisplayExample } from 'assets/angular-material-examples/autocomplete-display/autocomplete-display-example';
import { AutocompleteFilterExample } from 'assets/angular-material-examples/autocomplete-filter/autocomplete-filter-example'; import { AutocompleteFilterExample } from 'assets/angular-material-examples/autocomplete-filter/autocomplete-filter-example';
import { AutocompleteOverviewExample } from 'assets/angular-material-examples/autocomplete-overview/autocomplete-overview-example'; import { AutocompleteOverviewExample } from 'assets/angular-material-examples/autocomplete-overview/autocomplete-overview-example';
@ -37,13 +38,12 @@ import { MyTelInput, FormFieldCustomControlExample } from 'assets/angular-materi
import { FormFieldErrorExample } from 'assets/angular-material-examples/form-field-error/form-field-error-example'; import { FormFieldErrorExample } from 'assets/angular-material-examples/form-field-error/form-field-error-example';
import { FormFieldHintExample } from 'assets/angular-material-examples/form-field-hint/form-field-hint-example'; import { FormFieldHintExample } from 'assets/angular-material-examples/form-field-hint/form-field-hint-example';
import { FormFieldOverviewExample } from 'assets/angular-material-examples/form-field-overview/form-field-overview-example'; import { FormFieldOverviewExample } from 'assets/angular-material-examples/form-field-overview/form-field-overview-example';
import { FormFieldPlaceholderExample } from 'assets/angular-material-examples/form-field-placeholder/form-field-placeholder-example';
import { FormFieldPrefixSuffixExample } from 'assets/angular-material-examples/form-field-prefix-suffix/form-field-prefix-suffix-example'; import { FormFieldPrefixSuffixExample } from 'assets/angular-material-examples/form-field-prefix-suffix/form-field-prefix-suffix-example';
import { FormFieldThemingExample } from 'assets/angular-material-examples/form-field-theming/form-field-theming-example'; import { FormFieldThemingExample } from 'assets/angular-material-examples/form-field-theming/form-field-theming-example';
import { GridListDynamicExample } from 'assets/angular-material-examples/grid-list-dynamic/grid-list-dynamic-example'; import { GridListDynamicExample } from 'assets/angular-material-examples/grid-list-dynamic/grid-list-dynamic-example';
import { GridListOverviewExample } from 'assets/angular-material-examples/grid-list-overview/grid-list-overview-example'; import { GridListOverviewExample } from 'assets/angular-material-examples/grid-list-overview/grid-list-overview-example';
import { IconOverviewExample } from 'assets/angular-material-examples/icon-overview/icon-overview-example'; import { IconOverviewExample } from 'assets/angular-material-examples/icon-overview/icon-overview-example';
import { IconSvgExample } from 'assets/angular-material-examples/icon-svg/icon-svg-example'; import { IconSvgExample } from 'assets/angular-material-examples/icon-svg-example/icon-svg-example';
import { InputAutosizeTextareaExample } from 'assets/angular-material-examples/input-autosize-textarea/input-autosize-textarea-example'; import { InputAutosizeTextareaExample } from 'assets/angular-material-examples/input-autosize-textarea/input-autosize-textarea-example';
import { InputClearableExample } from 'assets/angular-material-examples/input-clearable/input-clearable-example'; import { InputClearableExample } from 'assets/angular-material-examples/input-clearable/input-clearable-example';
import { InputErrorStateMatcherExample } from 'assets/angular-material-examples/input-error-state-matcher/input-error-state-matcher-example'; import { InputErrorStateMatcherExample } from 'assets/angular-material-examples/input-error-state-matcher/input-error-state-matcher-example';
@ -81,7 +81,6 @@ import { SelectOverviewExample } from 'assets/angular-material-examples/select-o
import { SelectPanelClassExample } from 'assets/angular-material-examples/select-panel-class/select-panel-class-example'; import { SelectPanelClassExample } from 'assets/angular-material-examples/select-panel-class/select-panel-class-example';
import { SelectResetExample } from 'assets/angular-material-examples/select-reset/select-reset-example'; import { SelectResetExample } from 'assets/angular-material-examples/select-reset/select-reset-example';
import { SelectValueBindingExample } from 'assets/angular-material-examples/select-value-binding/select-value-binding-example'; import { SelectValueBindingExample } from 'assets/angular-material-examples/select-value-binding/select-value-binding-example';
import { SidenavFabExample } from 'assets/angular-material-examples/sidenav-fab/sidenav-fab-example';
import { SidenavOverviewExample } from 'assets/angular-material-examples/sidenav-overview/sidenav-overview-example'; import { SidenavOverviewExample } from 'assets/angular-material-examples/sidenav-overview/sidenav-overview-example';
import { SlideToggleConfigurableExample } from 'assets/angular-material-examples/slide-toggle-configurable/slide-toggle-configurable-example'; import { SlideToggleConfigurableExample } from 'assets/angular-material-examples/slide-toggle-configurable/slide-toggle-configurable-example';
import { SlideToggleFormsExample } from 'assets/angular-material-examples/slide-toggle-forms/slide-toggle-forms-example'; import { SlideToggleFormsExample } from 'assets/angular-material-examples/slide-toggle-forms/slide-toggle-forms-example';
@ -104,9 +103,19 @@ import { ToolbarMultirowExample } from 'assets/angular-material-examples/toolbar
import { ToolbarOverviewExample } from 'assets/angular-material-examples/toolbar-overview/toolbar-overview-example'; import { ToolbarOverviewExample } from 'assets/angular-material-examples/toolbar-overview/toolbar-overview-example';
import { TooltipOverviewExample } from 'assets/angular-material-examples/tooltip-overview/tooltip-overview-example'; import { TooltipOverviewExample } from 'assets/angular-material-examples/tooltip-overview/tooltip-overview-example';
import { TooltipPositionExample } from 'assets/angular-material-examples/tooltip-position/tooltip-position-example'; import { TooltipPositionExample } from 'assets/angular-material-examples/tooltip-position/tooltip-position-example';
import { DatepickerCustomIconExample } from 'assets/angular-material-examples/datepicker-custom-icon/datepicker-custom-icon-example';
import { SidenavAutosizeExample } from 'assets/angular-material-examples/sidenav-autosize/sidenav-autosize-example';
import { SnackBarPositionExample } from 'assets/angular-material-examples/snack-bar-position/snack-bar-position-example';
import { TableSelectionExample } from 'assets/angular-material-examples/table-selection/table-selection-example';
import { TooltipDelayExample } from 'assets/angular-material-examples/tooltip-delay/tooltip-delay-example';
import { TooltipManualExample } from 'assets/angular-material-examples/tooltip-manual/tooltip-manual-example';
import { TooltipModifiedDefaultsExample } from 'assets/angular-material-examples/tooltip-modified-defaults/tooltip-modified-defaults-example';
import { DividerOverviewExample } from 'assets/angular-material-examples/divider-overview/divider-overview-example';
import { FormFieldLabelExample } from 'assets/angular-material-examples/form-field-label/form-field-label-example';
export const COMPONENT_MAP = { export const COMPONENT_MAP = {
'autocomplete' : [ 'autocomplete' : [
'autocomplete-auto-active-first-option',
'autocomplete-simple', 'autocomplete-simple',
'autocomplete-filter', 'autocomplete-filter',
'autocomplete-display', 'autocomplete-display',
@ -118,6 +127,7 @@ export const COMPONENT_MAP = {
], ],
'datepicker' : [ 'datepicker' : [
'datepicker-overview', 'datepicker-overview',
'datepicker-custom-icon',
'datepicker-start-view', 'datepicker-start-view',
'datepicker-value', 'datepicker-value',
'datepicker-min-max', 'datepicker-min-max',
@ -130,9 +140,11 @@ export const COMPONENT_MAP = {
'datepicker-moment', 'datepicker-moment',
'datepicker-formats' 'datepicker-formats'
], ],
'divider' : [
'divider-overview'
],
'form-field' : [ 'form-field' : [
'form-field-overview', 'form-field-label',
'form-field-placeholder',
'form-field-hint', 'form-field-hint',
'form-field-error', 'form-field-error',
'form-field-prefix-suffix', 'form-field-prefix-suffix',
@ -183,7 +195,7 @@ export const COMPONENT_MAP = {
], ],
'sidenav' : [ 'sidenav' : [
'sidenav-overview', 'sidenav-overview',
'sidenav-fab' 'sidenav-autosize'
], ],
'toolbar' : [ 'toolbar' : [
'toolbar-overview', 'toolbar-overview',
@ -252,14 +264,19 @@ export const COMPONENT_MAP = {
], ],
'tooltip' : [ 'tooltip' : [
'tooltip-overview', 'tooltip-overview',
'tooltip-position' 'tooltip-position',
'tooltip-delay',
'tooltip-manual',
'tooltip-modified-defaults'
], ],
'snackbar' : [ 'snackbar' : [
'snack-bar-overview' 'snack-bar-overview',
'snack-bar-position'
], ],
'data-table' : [ 'data-table' : [
'table-overview', 'table-overview',
'table-basic', 'table-basic',
'table-selection',
'table-filtering', 'table-filtering',
'table-http' 'table-http'
], ],
@ -273,645 +290,694 @@ export const COMPONENT_MAP = {
}; };
export const EXAMPLE_COMPONENTS = { export const EXAMPLE_COMPONENTS = {
'autocomplete-display' : { 'autocomplete-auto-active-first-option': {
title : 'Highlight the first autocomplete option',
component : AutocompleteAutoActiveFirstOptionExample,
additionalFiles: null,
selectorName : null
},
'autocomplete-display' : {
title : 'Display value autocomplete', title : 'Display value autocomplete',
component : AutocompleteDisplayExample, component : AutocompleteDisplayExample,
additionalFiles: null, additionalFiles: null,
selectorName : null selectorName : null
}, },
'autocomplete-filter' : { 'autocomplete-filter' : {
title : 'Filter autocomplete', title : 'Filter autocomplete',
component : AutocompleteFilterExample, component : AutocompleteFilterExample,
additionalFiles: null, additionalFiles: null,
selectorName : null selectorName : null
}, },
'autocomplete-overview' : { 'autocomplete-overview' : {
title : 'Autocomplete overview', title : 'Autocomplete overview',
component : AutocompleteOverviewExample, component : AutocompleteOverviewExample,
additionalFiles: null, additionalFiles: null,
selectorName : null selectorName : null
}, },
'autocomplete-simple' : { 'autocomplete-simple' : {
title : 'Simple autocomplete', title : 'Simple autocomplete',
component : AutocompleteSimpleExample, component : AutocompleteSimpleExample,
additionalFiles: null, additionalFiles: null,
selectorName : null selectorName : null
}, },
'button-overview' : { 'button-overview' : {
title : 'Basic buttons', title : 'Basic buttons',
component : ButtonOverviewExample, component : ButtonOverviewExample,
additionalFiles: null, additionalFiles: null,
selectorName : null selectorName : null
}, },
'button-toggle-exclusive' : { 'button-toggle-exclusive' : {
title : 'Exclusive selection', title : 'Exclusive selection',
component : ButtonToggleExclusiveExample, component : ButtonToggleExclusiveExample,
additionalFiles: null, additionalFiles: null,
selectorName : null selectorName : null
}, },
'button-toggle-overview' : { 'button-toggle-overview' : {
title : 'Basic button-toggles', title : 'Basic button-toggles',
component : ButtonToggleOverviewExample, component : ButtonToggleOverviewExample,
additionalFiles: null, additionalFiles: null,
selectorName : null selectorName : null
}, },
'button-types' : { 'button-types' : {
title : 'Button varieties', title : 'Button varieties',
component : ButtonTypesExample, component : ButtonTypesExample,
additionalFiles: null, additionalFiles: null,
selectorName : null selectorName : null
}, },
'card-fancy' : { 'card-fancy' : {
title : 'Card with multiple sections', title : 'Card with multiple sections',
component : CardFancyExample, component : CardFancyExample,
additionalFiles: null, additionalFiles: null,
selectorName : null selectorName : null
}, },
'card-overview' : { 'card-overview' : {
title : 'Basic cards', title : 'Basic cards',
component : CardOverviewExample, component : CardOverviewExample,
additionalFiles: null, additionalFiles: null,
selectorName : null selectorName : null
}, },
'cdk-table-basic' : { 'cdk-table-basic' : {
title : 'Basic CDK data-table', title : 'Basic CDK data-table',
component : CdkTableBasicExample, component : CdkTableBasicExample,
additionalFiles: null, additionalFiles: null,
selectorName : null selectorName : null
}, },
'checkbox-configurable' : { 'checkbox-configurable' : {
title : 'Configurable checkbox', title : 'Configurable checkbox',
component : CheckboxConfigurableExample, component : CheckboxConfigurableExample,
additionalFiles: null, additionalFiles: null,
selectorName : null selectorName : null
}, },
'checkbox-overview' : { 'checkbox-overview' : {
title : 'Basic checkboxes', title : 'Basic checkboxes',
component : CheckboxOverviewExample, component : CheckboxOverviewExample,
additionalFiles: null, additionalFiles: null,
selectorName : null selectorName : null
}, },
'chips-input' : { 'chips-input' : {
title : 'Chips with input', title : 'Chips with input',
component : ChipsInputExample, component : ChipsInputExample,
additionalFiles: null, additionalFiles: null,
selectorName : null selectorName : null
}, },
'chips-overview' : { 'chips-overview' : {
title : 'Basic chips', title : 'Basic chips',
component : ChipsOverviewExample, component : ChipsOverviewExample,
additionalFiles: null, additionalFiles: null,
selectorName : null selectorName : null
}, },
'chips-stacked' : { 'chips-stacked' : {
title : 'Stacked chips', title : 'Stacked chips',
component : ChipsStackedExample, component : ChipsStackedExample,
additionalFiles: null, additionalFiles: null,
selectorName : null selectorName : null
}, },
'datepicker-api' : { 'datepicker-api' : {
title : 'Datepicker open method ', title : 'Datepicker open method',
component : DatepickerApiExample, component : DatepickerApiExample,
additionalFiles: null, additionalFiles: null,
selectorName : null selectorName : null
}, },
'datepicker-disabled' : { 'datepicker-custom-icon' : {
title : 'Disabled datepicker ', title : 'Datepicker custom icon',
component : DatepickerCustomIconExample,
additionalFiles: null,
selectorName : null
},
'datepicker-disabled' : {
title : 'Disabled datepicker',
component : DatepickerDisabledExample, component : DatepickerDisabledExample,
additionalFiles: null, additionalFiles: null,
selectorName : null selectorName : null
}, },
'datepicker-events' : { 'datepicker-events' : {
title : 'Datepicker input and change events ', title : 'Datepicker input and change events',
component : DatepickerEventsExample, component : DatepickerEventsExample,
additionalFiles: null, additionalFiles: null,
selectorName : null selectorName : null
}, },
'datepicker-filter' : { 'datepicker-filter' : {
title : 'Datepicker with filter validation ', title : 'Datepicker with filter validation',
component : DatepickerFilterExample, component : DatepickerFilterExample,
additionalFiles: null, additionalFiles: null,
selectorName : null selectorName : null
}, },
'datepicker-formats' : { 'datepicker-formats' : {
title : 'Datepicker with custom formats ', title : 'Datepicker with custom formats',
component : DatepickerFormatsExample, component : DatepickerFormatsExample,
additionalFiles: null, additionalFiles: null,
selectorName : null selectorName : null
}, },
'datepicker-locale' : { 'datepicker-locale' : {
title : 'Datepicker with different locale ', title : 'Datepicker with different locale',
component : DatepickerLocaleExample, component : DatepickerLocaleExample,
additionalFiles: null, additionalFiles: null,
selectorName : null selectorName : null
}, },
'datepicker-min-max' : { 'datepicker-min-max' : {
title : 'Datepicker with min & max validation ', title : 'Datepicker with min & max validation',
component : DatepickerMinMaxExample, component : DatepickerMinMaxExample,
additionalFiles: null, additionalFiles: null,
selectorName : null selectorName : null
}, },
'datepicker-moment' : { 'datepicker-moment' : {
title : 'Datepicker that uses Moment.js dates ', title : 'Datepicker that uses Moment.js dates ',
component : DatepickerMomentExample, component : DatepickerMomentExample,
additionalFiles: null, additionalFiles: null,
selectorName : null selectorName : null
}, },
'datepicker-overview' : { 'datepicker-overview' : {
title : 'Basic datepicker ', title : 'Basic datepicker ',
component : DatepickerOverviewExample, component : DatepickerOverviewExample,
additionalFiles: null, additionalFiles: null,
selectorName : null selectorName : null
}, },
'datepicker-start-view' : { 'datepicker-start-view' : {
title : 'Datepicker start date ', title : 'Datepicker start date ',
component : DatepickerStartViewExample, component : DatepickerStartViewExample,
additionalFiles: null, additionalFiles: null,
selectorName : null selectorName : null
}, },
'datepicker-touch' : { 'datepicker-touch' : {
title : 'Datepicker touch UI ', title : 'Datepicker touch UI ',
component : DatepickerTouchExample, component : DatepickerTouchExample,
additionalFiles: null, additionalFiles: null,
selectorName : null selectorName : null
}, },
'datepicker-value' : { 'datepicker-value' : {
title : 'Datepicker selected value ', title : 'Datepicker selected value ',
component : DatepickerValueExample, component : DatepickerValueExample,
additionalFiles: null, additionalFiles: null,
selectorName : null selectorName : null
}, },
'dialog-content' : { 'dialog-content' : {
title : 'Dialog with header, scrollable content and actions', title : 'Dialog with header, scrollable content and actions',
component : DialogContentExample, component : DialogContentExample,
additionalFiles: ['dialog-content-example-dialog.html'], additionalFiles: ['dialog-content-example-dialog.html'],
selectorName : 'DialogContentExample, DialogContentExampleDialog' selectorName : 'DialogContentExample, DialogContentExampleDialog'
}, },
'dialog-data' : { 'dialog-data' : {
title : 'Injecting data when opening a dialog', title : 'Injecting data when opening a dialog',
component : DialogDataExample, component : DialogDataExample,
additionalFiles: ['dialog-data-example-dialog.html'], additionalFiles: ['dialog-data-example-dialog.html'],
selectorName : 'DialogDataExample, DialogDataExampleDialog' selectorName : 'DialogDataExample, DialogDataExampleDialog'
}, },
'dialog-elements' : { 'dialog-elements' : {
title : 'Dialog elements', title : 'Dialog elements',
component : DialogElementsExample, component : DialogElementsExample,
additionalFiles: ['dialog-elements-example-dialog.html'], additionalFiles: ['dialog-elements-example-dialog.html'],
selectorName : 'DialogElementsExample, DialogElementsExampleDialog' selectorName : 'DialogElementsExample, DialogElementsExampleDialog'
}, },
'dialog-overview' : { 'dialog-overview' : {
title : 'Dialog Overview', title : 'Dialog Overview',
component : DialogOverviewExample, component : DialogOverviewExample,
additionalFiles: ['dialog-overview-example-dialog.html'], additionalFiles: ['dialog-overview-example-dialog.html'],
selectorName : 'DialogOverviewExample, DialogOverviewExampleDialog' selectorName : 'DialogOverviewExample, DialogOverviewExampleDialog'
}, },
'elevation-overview' : { 'divider-overview' : {
title : 'Basic divider',
component : DividerOverviewExample,
additionalFiles: null,
selectorName : null
},
'elevation-overview' : {
title : 'Elevation CSS classes', title : 'Elevation CSS classes',
component : ElevationOverviewExample, component : ElevationOverviewExample,
additionalFiles: null, additionalFiles: null,
selectorName : null selectorName : null
}, },
'expansion-overview' : { 'expansion-overview' : {
title : 'Basic expansion panel', title : 'Basic expansion panel',
component : ExpansionOverviewExample, component : ExpansionOverviewExample,
additionalFiles: null, additionalFiles: null,
selectorName : null selectorName : null
}, },
'expansion-steps' : { 'expansion-steps' : {
title : 'Expansion panel as accordion', title : 'Expansion panel as accordion',
component : ExpansionStepsExample, component : ExpansionStepsExample,
additionalFiles: null, additionalFiles: null,
selectorName : null selectorName : null
}, },
'form-field-custom-control' : { 'form-field-custom-control' : {
title : 'Form field with custom telephone number input control. ', title : 'Form field with custom telephone number input control. ',
component : FormFieldCustomControlExample, component : FormFieldCustomControlExample,
additionalFiles: ['form-field-custom-control-example.html'], additionalFiles: ['form-field-custom-control-example.html'],
selectorName : 'FormFieldCustomControlExample, MyTelInput' selectorName : 'FormFieldCustomControlExample, MyTelInput'
}, },
'form-field-error' : { 'form-field-error' : {
title : 'Form field with error messages ', title : 'Form field with error messages ',
component : FormFieldErrorExample, component : FormFieldErrorExample,
additionalFiles: null, additionalFiles: null,
selectorName : null selectorName : null
}, },
'form-field-hint' : { 'form-field-hint' : {
title : 'Form field with hints ', title : 'Form field with hints ',
component : FormFieldHintExample, component : FormFieldHintExample,
additionalFiles: null, additionalFiles: null,
selectorName : null selectorName : null
}, },
'form-field-overview' : { 'form-field-overview' : {
title : 'Simple form field ', title : 'Simple form field ',
component : FormFieldOverviewExample, component : FormFieldOverviewExample,
additionalFiles: null, additionalFiles: null,
selectorName : null selectorName : null
}, },
'form-field-placeholder' : { 'form-field-label' : {
title : 'Form field with placeholder ', title : 'Form field with label',
component : FormFieldPlaceholderExample, component : FormFieldLabelExample,
additionalFiles: null, additionalFiles: null,
selectorName : null selectorName : null
}, },
'form-field-prefix-suffix' : { 'form-field-prefix-suffix' : {
title : 'Form field with prefix & suffix ', title : 'Form field with prefix & suffix ',
component : FormFieldPrefixSuffixExample, component : FormFieldPrefixSuffixExample,
additionalFiles: null, additionalFiles: null,
selectorName : null selectorName : null
}, },
'form-field-theming' : { 'form-field-theming' : {
title : 'Form field theming ', title : 'Form field theming ',
component : FormFieldThemingExample, component : FormFieldThemingExample,
additionalFiles: null, additionalFiles: null,
selectorName : null selectorName : null
}, },
'grid-list-dynamic' : { 'grid-list-dynamic' : {
title : 'Dynamic grid-list', title : 'Dynamic grid-list',
component : GridListDynamicExample, component : GridListDynamicExample,
additionalFiles: null, additionalFiles: null,
selectorName : null selectorName : null
}, },
'grid-list-overview' : { 'grid-list-overview' : {
title : 'Basic grid-list', title : 'Basic grid-list',
component : GridListOverviewExample, component : GridListOverviewExample,
additionalFiles: null, additionalFiles: null,
selectorName : null selectorName : null
}, },
'icon-overview' : { 'icon-overview' : {
title : 'Basic icons', title : 'Basic icons',
component : IconOverviewExample, component : IconOverviewExample,
additionalFiles: null, additionalFiles: null,
selectorName : null selectorName : null
}, },
'icon-svg' : { 'icon-svg' : {
title : 'SVG icons', title : 'SVG icons',
component : IconSvgExample, component : IconSvgExample,
additionalFiles: null, additionalFiles: null,
selectorName : null selectorName : null
}, },
'input-autosize-textarea' : { 'input-autosize-textarea' : {
title : 'Auto-resizing textarea ', title : 'Auto-resizing textarea ',
component : InputAutosizeTextareaExample, component : InputAutosizeTextareaExample,
additionalFiles: null, additionalFiles: null,
selectorName : null selectorName : null
}, },
'input-clearable' : { 'input-clearable' : {
title : 'Input with a clear button', title : 'Input with a clear button',
component : InputClearableExample, component : InputClearableExample,
additionalFiles: null, additionalFiles: null,
selectorName : null selectorName : null
}, },
'input-error-state-matcher' : { 'input-error-state-matcher' : {
title : 'Input with a custom ErrorStateMatcher ', title : 'Input with a custom ErrorStateMatcher ',
component : InputErrorStateMatcherExample, component : InputErrorStateMatcherExample,
additionalFiles: null, additionalFiles: null,
selectorName : null selectorName : null
}, },
'input-errors' : { 'input-errors' : {
title : 'Input with error messages', title : 'Input with error messages',
component : InputErrorsExample, component : InputErrorsExample,
additionalFiles: null, additionalFiles: null,
selectorName : null selectorName : null
}, },
'input-form' : { 'input-form' : {
title : 'Inputs in a form', title : 'Inputs in a form',
component : InputFormExample, component : InputFormExample,
additionalFiles: null, additionalFiles: null,
selectorName : null selectorName : null
}, },
'input-hint' : { 'input-hint' : {
title : 'Input with hints', title : 'Input with hints',
component : InputHintExample, component : InputHintExample,
additionalFiles: null, additionalFiles: null,
selectorName : null selectorName : null
}, },
'input-overview' : { 'input-overview' : {
title : 'Basic Inputs', title : 'Basic Inputs',
component : InputOverviewExample, component : InputOverviewExample,
additionalFiles: null, additionalFiles: null,
selectorName : null selectorName : null
}, },
'input-prefix-suffix' : { 'input-prefix-suffix' : {
title : 'Inputs with prefixes and suffixes', title : 'Inputs with prefixes and suffixes',
component : InputPrefixSuffixExample, component : InputPrefixSuffixExample,
additionalFiles: null, additionalFiles: null,
selectorName : null selectorName : null
}, },
'list-overview' : { 'list-overview' : {
title : 'Basic list', title : 'Basic list',
component : ListOverviewExample, component : ListOverviewExample,
additionalFiles: null, additionalFiles: null,
selectorName : null selectorName : null
}, },
'list-sections' : { 'list-sections' : {
title : 'List with sections', title : 'List with sections',
component : ListSectionsExample, component : ListSectionsExample,
additionalFiles: null, additionalFiles: null,
selectorName : null selectorName : null
}, },
'list-selection' : { 'list-selection' : {
title : 'List with selection', title : 'List with selection',
component : ListSelectionExample, component : ListSelectionExample,
additionalFiles: null, additionalFiles: null,
selectorName : null selectorName : null
}, },
'menu-icons' : { 'menu-icons' : {
title : 'Menu with icons', title : 'Menu with icons',
component : MenuIconsExample, component : MenuIconsExample,
additionalFiles: null, additionalFiles: null,
selectorName : null selectorName : null
}, },
'menu-overview' : { 'menu-overview' : {
title : 'Basic menu', title : 'Basic menu',
component : MenuOverviewExample, component : MenuOverviewExample,
additionalFiles: null, additionalFiles: null,
selectorName : null selectorName : null
}, },
'nested-menu' : { 'nested-menu' : {
title : 'Nested menu', title : 'Nested menu',
component : NestedMenuExample, component : NestedMenuExample,
additionalFiles: null, additionalFiles: null,
selectorName : null selectorName : null
}, },
'paginator-configurable' : { 'paginator-configurable' : {
title : 'Configurable paginator', title : 'Configurable paginator',
component : PaginatorConfigurableExample, component : PaginatorConfigurableExample,
additionalFiles: null, additionalFiles: null,
selectorName : null selectorName : null
}, },
'paginator-overview' : { 'paginator-overview' : {
title : 'Paginator', title : 'Paginator',
component : PaginatorOverviewExample, component : PaginatorOverviewExample,
additionalFiles: null, additionalFiles: null,
selectorName : null selectorName : null
}, },
'progress-bar-buffer' : { 'progress-bar-buffer' : {
title : 'Buffer progress-bar', title : 'Buffer progress-bar',
component : ProgressBarBufferExample, component : ProgressBarBufferExample,
additionalFiles: null, additionalFiles: null,
selectorName : null selectorName : null
}, },
'progress-bar-configurable' : { 'progress-bar-configurable' : {
title : 'Configurable progress-bar', title : 'Configurable progress-bar',
component : ProgressBarConfigurableExample, component : ProgressBarConfigurableExample,
additionalFiles: null, additionalFiles: null,
selectorName : null selectorName : null
}, },
'progress-bar-determinate' : { 'progress-bar-determinate' : {
title : 'Determinate progress-bar', title : 'Determinate progress-bar',
component : ProgressBarDeterminateExample, component : ProgressBarDeterminateExample,
additionalFiles: null, additionalFiles: null,
selectorName : null selectorName : null
}, },
'progress-bar-indeterminate' : { 'progress-bar-indeterminate' : {
title : 'Indeterminate progress-bar', title : 'Indeterminate progress-bar',
component : ProgressBarIndeterminateExample, component : ProgressBarIndeterminateExample,
additionalFiles: null, additionalFiles: null,
selectorName : null selectorName : null
}, },
'progress-bar-query' : { 'progress-bar-query' : {
title : 'Query progress-bar', title : 'Query progress-bar',
component : ProgressBarQueryExample, component : ProgressBarQueryExample,
additionalFiles: null, additionalFiles: null,
selectorName : null selectorName : null
}, },
'progress-spinner-configurable': { 'progress-spinner-configurable' : {
title : 'Configurable progress spinner', title : 'Configurable progress spinner',
component : ProgressSpinnerConfigurableExample, component : ProgressSpinnerConfigurableExample,
additionalFiles: null, additionalFiles: null,
selectorName : null selectorName : null
}, },
'progress-spinner-overview' : { 'progress-spinner-overview' : {
title : 'Basic progress-spinner', title : 'Basic progress-spinner',
component : ProgressSpinnerOverviewExample, component : ProgressSpinnerOverviewExample,
additionalFiles: null, additionalFiles: null,
selectorName : null selectorName : null
}, },
'radio-ng-model' : { 'radio-ng-model' : {
title : 'Radios with ngModel', title : 'Radios with ngModel',
component : RadioNgModelExample, component : RadioNgModelExample,
additionalFiles: null, additionalFiles: null,
selectorName : null selectorName : null
}, },
'radio-overview' : { 'radio-overview' : {
title : 'Basic radios', title : 'Basic radios',
component : RadioOverviewExample, component : RadioOverviewExample,
additionalFiles: null, additionalFiles: null,
selectorName : null selectorName : null
}, },
'select-custom-trigger' : { 'select-custom-trigger' : {
title : 'Select with custom trigger text ', title : 'Select with custom trigger text ',
component : SelectCustomTriggerExample, component : SelectCustomTriggerExample,
additionalFiles: null, additionalFiles: null,
selectorName : null selectorName : null
}, },
'select-disabled' : { 'select-disabled' : {
title : 'Disabled select ', title : 'Disabled select ',
component : SelectDisabledExample, component : SelectDisabledExample,
additionalFiles: null, additionalFiles: null,
selectorName : null selectorName : null
}, },
'select-error-state-matcher' : { 'select-error-state-matcher' : {
title : 'Select with a custom ErrorStateMatcher ', title : 'Select with a custom ErrorStateMatcher ',
component : SelectErrorStateMatcherExample, component : SelectErrorStateMatcherExample,
additionalFiles: null, additionalFiles: null,
selectorName : null selectorName : null
}, },
'select-form' : { 'select-form' : {
title : 'Select in a form', title : 'Select in a form',
component : SelectFormExample, component : SelectFormExample,
additionalFiles: null, additionalFiles: null,
selectorName : null selectorName : null
}, },
'select-hint-error' : { 'select-hint-error' : {
title : 'Select with form field features ', title : 'Select with form field features ',
component : SelectHintErrorExample, component : SelectHintErrorExample,
additionalFiles: null, additionalFiles: null,
selectorName : null selectorName : null
}, },
'select-multiple' : { 'select-multiple' : {
title : 'Select with multiple selection ', title : 'Select with multiple selection ',
component : SelectMultipleExample, component : SelectMultipleExample,
additionalFiles: null, additionalFiles: null,
selectorName : null selectorName : null
}, },
'select-no-ripple' : { 'select-no-ripple' : {
title : 'Select with no option ripple ', title : 'Select with no option ripple ',
component : SelectNoRippleExample, component : SelectNoRippleExample,
additionalFiles: null, additionalFiles: null,
selectorName : null selectorName : null
}, },
'select-optgroup' : { 'select-optgroup' : {
title : 'Select with option groups ', title : 'Select with option groups ',
component : SelectOptgroupExample, component : SelectOptgroupExample,
additionalFiles: null, additionalFiles: null,
selectorName : null selectorName : null
}, },
'select-overview' : { 'select-overview' : {
title : 'Basic select', title : 'Basic select',
component : SelectOverviewExample, component : SelectOverviewExample,
additionalFiles: null, additionalFiles: null,
selectorName : null selectorName : null
}, },
'select-panel-class' : { 'select-panel-class' : {
title : 'Select with custom panel styling', title : 'Select with custom panel styling',
component : SelectPanelClassExample, component : SelectPanelClassExample,
additionalFiles: null, additionalFiles: null,
selectorName : null selectorName : null
}, },
'select-reset' : { 'select-reset' : {
title : 'Select with reset option ', title : 'Select with reset option ',
component : SelectResetExample, component : SelectResetExample,
additionalFiles: null, additionalFiles: null,
selectorName : null selectorName : null
}, },
'select-value-binding' : { 'select-value-binding' : {
title : 'Select with 2-way value binding ', title : 'Select with 2-way value binding ',
component : SelectValueBindingExample, component : SelectValueBindingExample,
additionalFiles: null, additionalFiles: null,
selectorName : null selectorName : null
}, },
'sidenav-fab' : { 'sidenav-overview' : {
title : 'Sidenav with a FAB',
component : SidenavFabExample,
additionalFiles: null,
selectorName : null
},
'sidenav-overview' : {
title : 'Basic sidenav', title : 'Basic sidenav',
component : SidenavOverviewExample, component : SidenavOverviewExample,
additionalFiles: null, additionalFiles: null,
selectorName : null selectorName : null
}, },
'slide-toggle-configurable' : { 'sidenav-autosize' : {
title : 'Autosize sidenav',
component : SidenavAutosizeExample,
additionalFiles: null,
selectorName : null
},
'slide-toggle-configurable' : {
title : 'Configurable slide-toggle', title : 'Configurable slide-toggle',
component : SlideToggleConfigurableExample, component : SlideToggleConfigurableExample,
additionalFiles: null, additionalFiles: null,
selectorName : null selectorName : null
}, },
'slide-toggle-forms' : { 'slide-toggle-forms' : {
title : 'Slide-toggle with forms', title : 'Slide-toggle with forms',
component : SlideToggleFormsExample, component : SlideToggleFormsExample,
additionalFiles: null, additionalFiles: null,
selectorName : null selectorName : null
}, },
'slide-toggle-overview' : { 'slide-toggle-overview' : {
title : 'Basic slide-toggles', title : 'Basic slide-toggles',
component : SlideToggleOverviewExample, component : SlideToggleOverviewExample,
additionalFiles: null, additionalFiles: null,
selectorName : null selectorName : null
}, },
'slider-configurable' : { 'slider-configurable' : {
title : 'Configurable slider', title : 'Configurable slider',
component : SliderConfigurableExample, component : SliderConfigurableExample,
additionalFiles: null, additionalFiles: null,
selectorName : null selectorName : null
}, },
'slider-overview' : { 'slider-overview' : {
title : 'Basic slider', title : 'Basic slider',
component : SliderOverviewExample, component : SliderOverviewExample,
additionalFiles: null, additionalFiles: null,
selectorName : null selectorName : null
}, },
'snack-bar-component' : { 'snack-bar-component' : {
title : 'Snack-bar with a custom component', title : 'Snack-bar with a custom component',
component : SnackBarComponentExample, component : SnackBarComponentExample,
additionalFiles: ['snack-bar-component-example-snack.html'], additionalFiles: ['snack-bar-component-example-snack.html'],
selectorName : 'SnackBarComponentExample, PizzaPartyComponent' selectorName : 'SnackBarComponentExample, PizzaPartyComponent'
}, },
'snack-bar-overview' : { 'snack-bar-overview' : {
title : 'Basic snack-bar', title : 'Basic snack-bar',
component : SnackBarOverviewExample, component : SnackBarOverviewExample,
additionalFiles: null, additionalFiles: null,
selectorName : null selectorName : null
}, },
'sort-overview' : { 'snack-bar-position' : {
title : 'Snack-bar with different positions',
component : SnackBarPositionExample,
additionalFiles: null,
selectorName : null
},
'sort-overview' : {
title : 'Sorting overview', title : 'Sorting overview',
component : SortOverviewExample, component : SortOverviewExample,
additionalFiles: null, additionalFiles: null,
selectorName : null selectorName : null
}, },
'stepper-overview' : { 'stepper-overview' : {
title : 'Stepper overview', title : 'Stepper overview',
component : StepperOverviewExample, component : StepperOverviewExample,
additionalFiles: null, additionalFiles: null,
selectorName : null selectorName : null
}, },
'table-basic' : { 'table-basic' : {
title : 'Basic table', title : 'Basic table',
component : TableBasicExample, component : TableBasicExample,
additionalFiles: null, additionalFiles: null,
selectorName : null selectorName : null
}, },
'table-filtering' : { 'table-selection' : {
title : 'Table with selection',
component : TableSelectionExample,
additionalFiles: null,
selectorName : null
},
'table-filtering' : {
title : 'Table with filtering', title : 'Table with filtering',
component : TableFilteringExample, component : TableFilteringExample,
additionalFiles: null, additionalFiles: null,
selectorName : null selectorName : null
}, },
'table-http' : { 'table-http' : {
title : 'Table retrieving data through HTTP', title : 'Table retrieving data through HTTP',
component : TableHttpExample, component : TableHttpExample,
additionalFiles: null, additionalFiles: null,
selectorName : null selectorName : null
}, },
'table-overview' : { 'table-overview' : {
title : 'Data table with sorting, pagination, and filtering.', title : 'Data table with sorting, pagination, and filtering.',
component : TableOverviewExample, component : TableOverviewExample,
additionalFiles: null, additionalFiles: null,
selectorName : null selectorName : null
}, },
'table-pagination' : { 'table-pagination' : {
title : 'Table with pagination', title : 'Table with pagination',
component : TablePaginationExample, component : TablePaginationExample,
additionalFiles: null, additionalFiles: null,
selectorName : null selectorName : null
}, },
'table-sorting' : { 'table-sorting' : {
title : 'Table with sorting', title : 'Table with sorting',
component : TableSortingExample, component : TableSortingExample,
additionalFiles: null, additionalFiles: null,
selectorName : null selectorName : null
}, },
'tabs-overview' : { 'tabs-overview' : {
title : 'Basic tabs', title : 'Basic tabs',
component : TabsOverviewExample, component : TabsOverviewExample,
additionalFiles: null, additionalFiles: null,
selectorName : null selectorName : null
}, },
'tabs-template-label' : { 'tabs-template-label' : {
title : 'Complex Example', title : 'Complex Example',
component : TabsTemplateLabelExample, component : TabsTemplateLabelExample,
additionalFiles: null, additionalFiles: null,
selectorName : null selectorName : null
}, },
'toolbar-multirow' : { 'toolbar-multirow' : {
title : 'Multi-row toolbar', title : 'Multi-row toolbar',
component : ToolbarMultirowExample, component : ToolbarMultirowExample,
additionalFiles: null, additionalFiles: null,
selectorName : null selectorName : null
}, },
'toolbar-overview' : { 'toolbar-overview' : {
title : 'Basic toolbar', title : 'Basic toolbar',
component : ToolbarOverviewExample, component : ToolbarOverviewExample,
additionalFiles: null, additionalFiles: null,
selectorName : null selectorName : null
}, },
'tooltip-overview' : { 'tooltip-overview' : {
title : 'Basic tooltip', title : 'Basic tooltip',
component : TooltipOverviewExample, component : TooltipOverviewExample,
additionalFiles: null, additionalFiles: null,
selectorName : null selectorName : null
}, },
'tooltip-position' : { 'tooltip-position' : {
title : 'Tooltip with custom position', title : 'Tooltip with custom position',
component : TooltipPositionExample, component : TooltipPositionExample,
additionalFiles: null, additionalFiles: null,
selectorName : null selectorName : null
},
'tooltip-delay' : {
title : 'Tooltip with a show and hide delay',
component : TooltipDelayExample,
additionalFiles: null,
selectorName : null
},
'tooltip-manual' : {
title : 'Tooltip that can be manually shown/hidden.',
component : TooltipManualExample,
additionalFiles: null,
selectorName : null
},
'tooltip-modified-defaults' : {
title : 'Tooltip with modified defaults',
component : TooltipModifiedDefaultsExample,
additionalFiles: null,
selectorName : null
} }
}; };
export const EXAMPLE_LIST = [ export const EXAMPLE_LIST = [
AutocompleteAutoActiveFirstOptionExample,
AutocompleteDisplayExample, AutocompleteDisplayExample,
AutocompleteFilterExample, AutocompleteFilterExample,
AutocompleteOverviewExample, AutocompleteOverviewExample,
@ -929,6 +995,7 @@ export const EXAMPLE_LIST = [
ChipsOverviewExample, ChipsOverviewExample,
ChipsStackedExample, ChipsStackedExample,
DatepickerApiExample, DatepickerApiExample,
DatepickerCustomIconExample,
DatepickerDisabledExample, DatepickerDisabledExample,
DatepickerEventsExample, DatepickerEventsExample,
DatepickerFilterExample, DatepickerFilterExample,
@ -944,6 +1011,7 @@ export const EXAMPLE_LIST = [
DialogDataExampleDialog, DialogDataExample, DialogDataExampleDialog, DialogDataExample,
DialogElementsExampleDialog, DialogElementsExample, DialogElementsExampleDialog, DialogElementsExample,
DialogOverviewExampleDialog, DialogOverviewExample, DialogOverviewExampleDialog, DialogOverviewExample,
DividerOverviewExample,
ElevationOverviewExample, ElevationOverviewExample,
ExpansionOverviewExample, ExpansionOverviewExample,
ExpansionStepsExample, ExpansionStepsExample,
@ -951,7 +1019,7 @@ export const EXAMPLE_LIST = [
FormFieldErrorExample, FormFieldErrorExample,
FormFieldHintExample, FormFieldHintExample,
FormFieldOverviewExample, FormFieldOverviewExample,
FormFieldPlaceholderExample, FormFieldLabelExample,
FormFieldPrefixSuffixExample, FormFieldPrefixSuffixExample,
FormFieldThemingExample, FormFieldThemingExample,
GridListDynamicExample, GridListDynamicExample,
@ -995,8 +1063,9 @@ export const EXAMPLE_LIST = [
SelectPanelClassExample, SelectPanelClassExample,
SelectResetExample, SelectResetExample,
SelectValueBindingExample, SelectValueBindingExample,
SidenavFabExample, SidenavAutosizeExample,
SidenavOverviewExample, SidenavOverviewExample,
SnackBarPositionExample,
SlideToggleConfigurableExample, SlideToggleConfigurableExample,
SlideToggleFormsExample, SlideToggleFormsExample,
SlideToggleOverviewExample, SlideToggleOverviewExample,
@ -1007,6 +1076,7 @@ export const EXAMPLE_LIST = [
SortOverviewExample, SortOverviewExample,
StepperOverviewExample, StepperOverviewExample,
TableBasicExample, TableBasicExample,
TableSelectionExample,
TableFilteringExample, TableFilteringExample,
TableHttpExample, TableHttpExample,
TableOverviewExample, TableOverviewExample,
@ -1017,5 +1087,8 @@ export const EXAMPLE_LIST = [
ToolbarMultirowExample, ToolbarMultirowExample,
ToolbarOverviewExample, ToolbarOverviewExample,
TooltipOverviewExample, TooltipOverviewExample,
TooltipDelayExample,
TooltipManualExample,
TooltipModifiedDefaultsExample,
TooltipPositionExample TooltipPositionExample
]; ];

View File

@ -685,6 +685,12 @@ export const navigation = [
'type' : 'item', 'type' : 'item',
'url' : '/components/angular-material/card' 'url' : '/components/angular-material/card'
}, },
{
'id' : 'divider',
'title': 'Divider',
'type' : 'item',
'url' : '/components/angular-material/divider'
},
{ {
'id' : 'stepper', 'id' : 'stepper',
'title': 'Stepper', 'title': 'Stepper',

View File

@ -0,0 +1,9 @@
.example-form {
min-width: 150px;
max-width: 500px;
width: 100%;
}
.example-full-width {
width: 100%;
}

View File

@ -0,0 +1,10 @@
<form class="example-form">
<mat-form-field class="example-full-width">
<input type="text" placeholder="Pick one" aria-label="Number" matInput [formControl]="myControl" [matAutocomplete]="auto">
<mat-autocomplete autoActiveFirstOption #auto="matAutocomplete">
<mat-option *ngFor="let option of filteredOptions | async" [value]="option">
{{ option }}
</mat-option>
</mat-autocomplete>
</mat-form-field>
</form>

View File

@ -0,0 +1,31 @@
import {Component} from '@angular/core';
import {FormControl} from '@angular/forms';
import {Observable} from 'rxjs/Observable';
import {startWith} from 'rxjs/operators/startWith';
import {map} from 'rxjs/operators/map';
/**
* @title Highlight the first autocomplete option
*/
@Component({
selector: 'autocomplete-auto-active-first-option-example',
templateUrl: 'autocomplete-auto-active-first-option-example.html',
styleUrls: ['autocomplete-auto-active-first-option-example.css']
})
export class AutocompleteAutoActiveFirstOptionExample {
myControl: FormControl = new FormControl();
options = ['One', 'Two', 'Three'];
filteredOptions: Observable<string[]>;
ngOnInit() {
this.filteredOptions = this.myControl.valueChanges.pipe(
startWith(''),
map(val => this.filter(val))
);
}
filter(val: string): string[] {
return this.options.filter(option => option.toLowerCase().indexOf(val.toLowerCase()) === 0);
}
}

View File

@ -0,0 +1,7 @@
<mat-form-field class="example-full-width">
<input matInput [matDatepicker]="picker" placeholder="Choose a date">
<mat-datepicker-toggle matSuffix [for]="picker">
<mat-icon matDatepickerToggleIcon>keyboard_arrow_down</mat-icon>
</mat-datepicker-toggle>
<mat-datepicker #picker></mat-datepicker>
</mat-form-field>

View File

@ -0,0 +1,9 @@
import {Component} from '@angular/core';
/** @title Datepicker with custom icon */
@Component({
selector: 'datepicker-custom-icon-example',
templateUrl: 'datepicker-custom-icon-example.html',
styleUrls: ['datepicker-custom-icon-example.css'],
})
export class DatepickerCustomIconExample {}

View File

@ -0,0 +1 @@
/** No CSS for this example */

View File

@ -0,0 +1,7 @@
<mat-list>
<mat-list-item>Item 1</mat-list-item>
<mat-divider></mat-divider>
<mat-list-item>Item 2</mat-list-item>
<mat-divider></mat-divider>
<mat-list-item>Item 3</mat-list-item>
</mat-list>

View File

@ -0,0 +1,11 @@
import {Component} from '@angular/core';
/**
* @title Basic divider
*/
@Component({
selector: 'divider-overview-example',
templateUrl: 'divider-overview-example.html',
styleUrls: ['divider-overview-example.css'],
})
export class DividerOverviewExample {}

View File

@ -1,20 +1,20 @@
.example-container { .example-container {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
} }
.example-container > * { .example-container > * {
width: 100%; width: 100%;
} }
.example-container form { .example-container form {
margin-bottom: 20px; margin-bottom: 20px;
} }
.example-container form > * { .example-container form > * {
margin: 5px 0; margin: 5px 0;
} }
.example-container .mat-radio-button { .example-container .mat-radio-button {
margin: 0 5px; margin: 0 5px;
} }

View File

@ -0,0 +1,34 @@
<div class="example-container">
<form class="example-container" [formGroup]="options">
<mat-checkbox formControlName="hideRequired">Hide required marker</mat-checkbox>
<div>
<label>Float label: </label>
<mat-radio-group formControlName="floatLabel">
<mat-radio-button value="auto">Auto</mat-radio-button>
<mat-radio-button value="always">Always</mat-radio-button>
<mat-radio-button value="never">Never</mat-radio-button>
</mat-radio-group>
</div>
</form>
<mat-form-field
[hideRequiredMarker]="options.value.hideRequired"
[floatLabel]="options.value.floatLabel">
<input matInput placeholder="Simple placeholder" required>
</mat-form-field>
<mat-form-field [floatLabel]="options.value.floatLabel">
<mat-label>Both a label and a placeholder</mat-label>
<input matInput placeholder="Simple placeholder">
</mat-form-field>
<mat-form-field
[hideRequiredMarker]="options.value.hideRequired"
[floatLabel]="options.value.floatLabel">
<mat-select required>
<mat-option>-- None --</mat-option>
<mat-option value="option">Option</mat-option>
</mat-select>
<mat-placeholder><mat-icon>favorite</mat-icon> <b> Fancy</b> <i> placeholder</i></mat-placeholder>
</mat-form-field>
</div>

View File

@ -0,0 +1,19 @@
import {Component} from '@angular/core';
import {FormBuilder, FormGroup} from '@angular/forms';
/** @title Form field with label */
@Component({
selector: 'form-field-label-example',
templateUrl: 'form-field-label-example.html',
styleUrls: ['form-field-label-example.css']
})
export class FormFieldLabelExample {
options: FormGroup;
constructor(fb: FormBuilder) {
this.options = fb.group({
hideRequired: false,
floatLabel: 'auto',
});
}
}

View File

@ -1,31 +0,0 @@
<div class="example-container">
<form class="example-container" [formGroup]="options">
<mat-checkbox formControlName="hideRequired">Hide required marker</mat-checkbox>
<div>
<label>Float placeholder: </label>
<mat-radio-group formControlName="floatPlaceholder">
<mat-radio-button value="auto">Auto</mat-radio-button>
<mat-radio-button value="always">Always</mat-radio-button>
<mat-radio-button value="never">Never</mat-radio-button>
</mat-radio-group>
</div>
</form>
<mat-form-field
[hideRequiredMarker]="options.value.hideRequired"
[floatPlaceholder]="options.value.floatPlaceholder">
<input matInput placeholder="Simple placeholder" required>
</mat-form-field>
<mat-form-field
[hideRequiredMarker]="options.value.hideRequired"
[floatPlaceholder]="options.value.floatPlaceholder">
<mat-select required>
<mat-option>-- None --</mat-option>
<mat-option value="option">Option</mat-option>
</mat-select>
<mat-placeholder>
<mat-icon>favorite</mat-icon>
<b> Fancy</b> <i> placeholder</i></mat-placeholder>
</mat-form-field>
</div>

View File

@ -1,21 +0,0 @@
import { Component } from '@angular/core';
import { FormBuilder, FormGroup } from '@angular/forms';
/** @title Form field with placeholder */
@Component({
selector : 'form-field-placeholder-example',
templateUrl: 'form-field-placeholder-example.html',
styleUrls : ['form-field-placeholder-example.css']
})
export class FormFieldPlaceholderExample
{
options: FormGroup;
constructor(fb: FormBuilder)
{
this.options = fb.group({
hideRequired : false,
floatPlaceholder: 'auto'
});
}
}

View File

@ -0,0 +1 @@
/** No CSS for this example */

View File

@ -0,0 +1,19 @@
import {Component} from '@angular/core';
import {DomSanitizer} from '@angular/platform-browser';
import {MatIconRegistry} from '@angular/material';
/**
* @title SVG icons
*/
@Component({
selector: 'icon-svg-example',
templateUrl: 'icon-svg-example.html',
styleUrls: ['icon-svg-example.css'],
})
export class IconSvgExample {
constructor(iconRegistry: MatIconRegistry, sanitizer: DomSanitizer) {
iconRegistry.addSvgIcon(
'thumbs-up',
sanitizer.bypassSecurityTrustResourceUrl('assets/images/examples/thumbup-icon.svg'));
}
}

View File

@ -1,20 +0,0 @@
import { Component } from '@angular/core';
import { DomSanitizer } from '@angular/platform-browser';
import { MatIconRegistry } from '@angular/material';
/**
* @title SVG icons
*/
@Component({
selector : 'icon-svg-example',
templateUrl: 'icon-svg-example.html'
})
export class IconSvgExample
{
constructor(iconRegistry: MatIconRegistry, sanitizer: DomSanitizer)
{
iconRegistry.addSvgIcon(
'thumbs-up',
sanitizer.bypassSecurityTrustResourceUrl('assets/images/examples/thumbup-icon.svg'));
}
}

View File

@ -0,0 +1,16 @@
.example-container {
width: 500px;
height: 300px;
border: 1px solid rgba(0, 0, 0, 0.5);
}
.example-sidenav-content {
display: flex;
height: 100%;
align-items: center;
justify-content: center;
}
.example-sidenav {
padding: 20px;
}

View File

@ -0,0 +1,16 @@
<mat-drawer-container class="example-container" autosize>
<mat-drawer #drawer class="example-sidenav" mode="side">
<p>Auto-resizing sidenav</p>
<p *ngIf="showFiller">Lorem, ipsum dolor sit amet consectetur.</p>
<button (click)="showFiller = !showFiller" mat-raised-button>
Toggle extra text
</button>
</mat-drawer>
<div class="example-sidenav-content">
<button type="button" mat-button (click)="drawer.toggle()">
Toggle sidenav
</button>
</div>
</mat-drawer-container>

View File

@ -0,0 +1,13 @@
import {Component} from '@angular/core';
/**
* @title Autosize sidenav
*/
@Component({
selector: 'sidenav-autosize-example',
templateUrl: 'sidenav-autosize-example.html',
styleUrls: ['sidenav-autosize-example.css'],
})
export class SidenavAutosizeExample {
showFiller = false;
}

View File

@ -1,26 +0,0 @@
.example-sidenav-fab-container {
width: 500px;
height: 300px;
border: 1px solid rgba(0, 0, 0, 0.5);
}
.example-sidenav-fab-container mat-sidenav {
max-width: 200px;
}
.example-sidenav-fab-container .mat-sidenav-content,
.example-sidenav-fab-container mat-sidenav {
display: flex;
overflow: visible;
}
.example-scrolling-content {
overflow: auto;
height: 100%;
}
.example-fab.mat-mini-fab {
position: absolute;
right: 20px;
bottom: 10px;
}

View File

@ -1,32 +0,0 @@
<mat-sidenav-container class="example-sidenav-fab-container">
<mat-sidenav #sidenav mode="side" opened="true">
<button mat-mini-fab class="example-fab" (click)="sidenav.toggle()">
<mat-icon>add</mat-icon>
</button>
<div class="example-scrolling-content">
Lorem ipsum dolor sit amet, pede a libero aenean phasellus, lectus metus sint ut risus,
fusce vel in pellentesque. Nisl rutrum etiam morbi consectetuer tempor magna, aenean nullam
nunc id, neque vivamus interdum sociis nulla scelerisque sem, dolor id wisi turpis magna
aliquam magna. Risus accumsan hac eget etiam donec sed, senectus erat mattis quam, tempor
vel urna occaecat cras, metus urna augue nec at. Et morbi amet dui praesent, nec eu at,
ligula ipsum dui sollicitudin, quis nisl massa viverra ligula, mauris fermentum orci arcu
enim fringilla. Arcu erat nulla in aenean lacinia ullamcorper, urna ante nam et sagittis,
tristique vehicula nibh ipsum vivamus, proin proin. Porta commodo nibh quis libero amet.
Taciti dui, sapien consectetuer.
</div>
</mat-sidenav>
<button mat-mini-fab class="example-fab" (click)="sidenav.toggle()">
<mat-icon>add</mat-icon>
</button>
<div class="example-scrolling-content">
Lorem ipsum dolor sit amet, pede a libero aenean phasellus, lectus metus sint ut risus, fusce
vel in pellentesque. Nisl rutrum etiam morbi consectetuer tempor magna, aenean nullam nunc id,
neque vivamus interdum sociis nulla scelerisque sem, dolor id wisi turpis magna aliquam magna.
Risus accumsan hac eget etiam donec sed, senectus erat mattis quam, tempor vel urna occaecat
cras, metus urna augue nec at. Et morbi amet dui praesent, nec eu at, ligula ipsum dui
sollicitudin, quis nisl massa viverra ligula, mauris fermentum orci arcu enim fringilla. Arcu
erat nulla in aenean lacinia ullamcorper, urna ante nam et sagittis, tristique vehicula nibh
ipsum vivamus, proin proin. Porta commodo nibh quis libero amet. Taciti dui, sapien
consectetuer.
</div>
</mat-sidenav-container>

View File

@ -1,15 +0,0 @@
import { Component, ViewEncapsulation } from '@angular/core';
/**
* @title Sidenav with a FAB
*/
@Component({
selector : 'sidenav-fab-example',
templateUrl : 'sidenav-fab-example.html',
styleUrls : ['sidenav-fab-example.css'],
encapsulation : ViewEncapsulation.None,
preserveWhitespaces: false
})
export class SidenavFabExample
{
}

View File

@ -0,0 +1,19 @@
<mat-form-field>
<mat-select placeholder="Horizontal position" [(value)]="horizontalPosition">
<mat-option value="start">Start</mat-option>
<mat-option value="center">Center</mat-option>
<mat-option value="end">End</mat-option>
<mat-option value="left">Left</mat-option>
<mat-option value="right">Right</mat-option>
</mat-select>
</mat-form-field>
<mat-form-field>
<mat-select placeholder="Vertical position" [(value)]="verticalPosition">
<mat-option value="top">Top</mat-option>
<mat-option value="bottom">Bottom</mat-option>
</mat-select>
</mat-form-field>
<button mat-button (click)="openSnackBar()" aria-label="Show an example snack-bar">
Pool party!
</button>

View File

@ -0,0 +1,29 @@
import {Component} from '@angular/core';
import {
MatSnackBar,
MatSnackBarHorizontalPosition,
MatSnackBarVerticalPosition,
} from '@angular/material';
/**
* @title Snack-bar with configurable position
*/
@Component({
selector: 'snack-bar-position-example',
templateUrl: 'snack-bar-position-example.html',
})
export class SnackBarPositionExample {
horizontalPosition: MatSnackBarHorizontalPosition = 'start';
verticalPosition: MatSnackBarVerticalPosition = 'bottom';
constructor(public snackBar: MatSnackBar) {}
openSnackBar() {
this.snackBar.open('Canonball!!', 'End now', {
duration: 500,
horizontalPosition: this.horizontalPosition,
verticalPosition: this.verticalPosition,
});
}
}

View File

@ -0,0 +1,15 @@
.example-container {
display: flex;
flex-direction: column;
max-height: 500px;
min-width: 300px;
}
.mat-table {
overflow: auto;
max-height: 500px;
}
.mat-column-select {
overflow: visible;
}

View File

@ -0,0 +1,49 @@
<div class="example-container mat-elevation-z8">
<mat-table #table [dataSource]="dataSource">
<!-- Checkbox Column -->
<ng-container matColumnDef="select">
<mat-header-cell *matHeaderCellDef>
<mat-checkbox (change)="$event ? masterToggle() : null"
[checked]="selection.hasValue() && isAllSelected()"
[indeterminate]="selection.hasValue() && !isAllSelected()">
</mat-checkbox>
</mat-header-cell>
<mat-cell *matCellDef="let row">
<mat-checkbox (click)="$event.stopPropagation()"
(change)="$event ? selection.toggle(row) : null"
[checked]="selection.isSelected(row)">
</mat-checkbox>
</mat-cell>
</ng-container>
<!-- Position Column -->
<ng-container matColumnDef="position">
<mat-header-cell *matHeaderCellDef> No. </mat-header-cell>
<mat-cell *matCellDef="let element"> {{element.position}} </mat-cell>
</ng-container>
<!-- Name Column -->
<ng-container matColumnDef="name">
<mat-header-cell *matHeaderCellDef> Name </mat-header-cell>
<mat-cell *matCellDef="let element"> {{element.name}} </mat-cell>
</ng-container>
<!-- Weight Column -->
<ng-container matColumnDef="weight">
<mat-header-cell *matHeaderCellDef> Weight </mat-header-cell>
<mat-cell *matCellDef="let element"> {{element.weight}} </mat-cell>
</ng-container>
<!-- Symbol Column -->
<ng-container matColumnDef="symbol">
<mat-header-cell *matHeaderCellDef> Symbol </mat-header-cell>
<mat-cell *matCellDef="let element"> {{element.symbol}} </mat-cell>
</ng-container>
<mat-header-row *matHeaderRowDef="displayedColumns"></mat-header-row>
<mat-row *matRowDef="let row; columns: displayedColumns;"
(click)="selection.toggle(row)">
</mat-row>
</mat-table>
</div>

View File

@ -0,0 +1,61 @@
import {Component} from '@angular/core';
import {MatTableDataSource} from '@angular/material';
import {SelectionModel} from '@angular/cdk/collections';
/**
* @title Table with selection
*/
@Component({
selector: 'table-selection-example',
styleUrls: ['table-selection-example.css'],
templateUrl: 'table-selection-example.html',
})
export class TableSelectionExample {
displayedColumns = ['select', 'position', 'name', 'weight', 'symbol'];
dataSource = new MatTableDataSource<Element>(ELEMENT_DATA);
selection = new SelectionModel<Element>(true, []);
/** Whether the number of selected elements matches the total number of rows. */
isAllSelected() {
const numSelected = this.selection.selected.length;
const numRows = this.dataSource.data.length;
return numSelected === numRows;
}
/** Selects all rows if they are not all selected; otherwise clear selection. */
masterToggle() {
this.isAllSelected() ?
this.selection.clear() :
this.dataSource.data.forEach(row => this.selection.select(row));
}
}
export interface Element {
name: string;
position: number;
weight: number;
symbol: string;
}
const ELEMENT_DATA: Element[] = [
{position: 1, name: 'Hydrogen', weight: 1.0079, symbol: 'H'},
{position: 2, name: 'Helium', weight: 4.0026, symbol: 'He'},
{position: 3, name: 'Lithium', weight: 6.941, symbol: 'Li'},
{position: 4, name: 'Beryllium', weight: 9.0122, symbol: 'Be'},
{position: 5, name: 'Boron', weight: 10.811, symbol: 'B'},
{position: 6, name: 'Carbon', weight: 12.0107, symbol: 'C'},
{position: 7, name: 'Nitrogen', weight: 14.0067, symbol: 'N'},
{position: 8, name: 'Oxygen', weight: 15.9994, symbol: 'O'},
{position: 9, name: 'Fluorine', weight: 18.9984, symbol: 'F'},
{position: 10, name: 'Neon', weight: 20.1797, symbol: 'Ne'},
{position: 11, name: 'Sodium', weight: 22.9897, symbol: 'Na'},
{position: 12, name: 'Magnesium', weight: 24.305, symbol: 'Mg'},
{position: 13, name: 'Aluminum', weight: 26.9815, symbol: 'Al'},
{position: 14, name: 'Silicon', weight: 28.0855, symbol: 'Si'},
{position: 15, name: 'Phosphorus', weight: 30.9738, symbol: 'P'},
{position: 16, name: 'Sulfur', weight: 32.065, symbol: 'S'},
{position: 17, name: 'Chlorine', weight: 35.453, symbol: 'Cl'},
{position: 18, name: 'Argon', weight: 39.948, symbol: 'Ar'},
{position: 19, name: 'Potassium', weight: 39.0983, symbol: 'K'},
{position: 20, name: 'Calcium', weight: 40.078, symbol: 'Ca'},
];

View File

@ -0,0 +1,3 @@
button {
margin: 8px;
}

View File

@ -0,0 +1,7 @@
<button mat-raised-button matTooltip="Tooltip!" matTooltipShowDelay="1000">
My tooltip waits one second to show
</button>
<button mat-raised-button matTooltip="Tooltip!" matTooltipHideDelay="2000">
My tooltip waits two seconds to hide
</button>

View File

@ -0,0 +1,11 @@
import {Component} from '@angular/core';
/**
* @title Tooltip with a show and hide delay
*/
@Component({
selector: 'tooltip-delay-example',
templateUrl: 'tooltip-delay-example.html',
styleUrls: ['tooltip-delay-example.css'],
})
export class TooltipDelayExample {}

View File

@ -0,0 +1 @@
/** No CSS for this example */

View File

@ -0,0 +1,5 @@
<button mat-raised-button (click)="tooltip.show()"> Show tooltip </button>
<span matTooltip="This is the tooltip message" #tooltip="matTooltip">
I have a tooltip
</span>

View File

@ -0,0 +1,11 @@
import {Component} from '@angular/core';
/**
* @title Tooltip that can be manually shown/hidden.
*/
@Component({
selector: 'tooltip-manual-example',
templateUrl: 'tooltip-manual-example.html',
styleUrls: ['tooltip-manual-example.css'],
})
export class TooltipManualExample {}

View File

@ -0,0 +1 @@
/** No CSS for this example */

View File

@ -0,0 +1,3 @@
<button mat-raised-button matTooltip="By default, I delay">
Button with delay-default tooltip
</button>

View File

@ -0,0 +1,22 @@
import {Component} from '@angular/core';
import {MAT_TOOLTIP_DEFAULT_OPTIONS, MatTooltipDefaultOptions} from '@angular/material';
/** Custom options the configure the tooltip's default show/hide delays. */
export const myCustomTooltipDefaults: MatTooltipDefaultOptions = {
showDelay: 1000,
hideDelay: 1000,
touchendHideDelay: 1000,
};
/**
* @title Tooltip with a show and hide delay
*/
@Component({
selector: 'tooltip-modified-defaults-example',
templateUrl: 'tooltip-modified-defaults-example.html',
styleUrls: ['tooltip-modified-defaults-example.css'],
providers: [
{provide: MAT_TOOLTIP_DEFAULT_OPTIONS, useValue: myCustomTooltipDefaults}
],
})
export class TooltipModifiedDefaultsExample {}