├── .github └── workflows │ └── dart.yml ├── .gitignore ├── AUTHORS ├── README.md ├── analysis_options.yaml ├── angular_components ├── CHANGELOG.md ├── LICENSE ├── README.md ├── analysis_options.yaml ├── build.yaml ├── dart_test.yaml ├── lib │ ├── angular_components.dart │ ├── annotations │ │ └── rtl_annotation.dart │ ├── app_layout │ │ ├── README.md │ │ ├── _common_temporary_drawer_styles.scss │ │ ├── _material_drawer.scss │ │ ├── _mixins.scss │ │ ├── g3doc │ │ │ └── simple_app_bar.png │ │ ├── layout.scss │ │ ├── material_drawer_base.dart │ │ ├── material_persistent_drawer.dart │ │ ├── material_stackable_drawer.dart │ │ ├── material_stackable_drawer.html │ │ ├── material_stackable_drawer.scss │ │ ├── material_temporary_drawer.dart │ │ ├── material_temporary_drawer.html │ │ └── material_temporary_drawer.scss │ ├── auto_dismiss │ │ └── auto_dismiss.dart │ ├── builder.dart │ ├── button_decorator │ │ ├── _mixins.scss │ │ ├── button_decorator.dart │ │ └── button_decorator.scss │ ├── content │ │ ├── deferred_content.dart │ │ └── deferred_content_aware.dart │ ├── css │ │ ├── _all_material.scss │ │ ├── _color_material.scss │ │ ├── _color_palette_material.scss │ │ ├── _core_material.scss │ │ ├── _elevation_material.scss │ │ ├── _scrollbar_material.scss │ │ ├── _transition_material.scss │ │ ├── _typography_material.scss │ │ ├── material │ │ │ ├── _material.scss │ │ │ ├── _mixins.scss │ │ │ ├── _shadow.scss │ │ │ └── const │ │ │ │ ├── _color.scss │ │ │ │ ├── _functions.scss │ │ │ │ ├── _global.scss │ │ │ │ ├── _mixins.scss │ │ │ │ ├── _palette.scss │ │ │ │ ├── _settings.scss │ │ │ │ └── _typography.scss │ │ └── mdc_web │ │ │ ├── README.md │ │ │ ├── animation │ │ │ ├── _functions.scss │ │ │ └── _variables.scss │ │ │ ├── base │ │ │ └── _mixins.scss │ │ │ ├── card │ │ │ ├── _mixins.scss │ │ │ ├── _variables.scss │ │ │ └── mdc-card.scss │ │ │ ├── elevation │ │ │ ├── _mixins.scss │ │ │ └── _variables.scss │ │ │ ├── featuretargeting │ │ │ ├── _functions.scss │ │ │ ├── _mixins.scss │ │ │ └── _variables.scss │ │ │ ├── ripple │ │ │ ├── _functions.scss │ │ │ ├── _keyframes.scss │ │ │ ├── _mixins.scss │ │ │ └── _variables.scss │ │ │ ├── rtl │ │ │ └── _mixins.scss │ │ │ ├── shape │ │ │ ├── _functions.scss │ │ │ ├── _mixins.scss │ │ │ └── _variables.scss │ │ │ └── theme │ │ │ ├── _color-palette.scss │ │ │ ├── _constants.scss │ │ │ ├── _functions.scss │ │ │ ├── _mixins.scss │ │ │ └── _variables.scss │ ├── dynamic_component │ │ └── dynamic_component.dart │ ├── focus │ │ ├── focus.dart │ │ ├── focus_activable_item.dart │ │ ├── focus_interface.dart │ │ ├── focus_item.dart │ │ ├── focus_list.dart │ │ ├── focus_trap.dart │ │ ├── focus_trap.html │ │ ├── focus_trap.scss │ │ └── keyboard_only_focus_indicator.dart │ ├── forms │ │ └── error_renderer.dart │ ├── framework_stabilizers │ │ ├── framework_stabilizers.dart │ │ └── testability.dart │ ├── glyph │ │ ├── _mixins.scss │ │ ├── glyph.dart │ │ ├── glyph.html │ │ └── glyph.scss │ ├── highlighted_text │ │ ├── highlighted_text.dart │ │ ├── highlighted_text.html │ │ ├── highlighted_text.scss │ │ └── highlighted_value.dart │ ├── interfaces │ │ └── has_disabled.dart │ ├── laminate │ │ ├── components │ │ │ └── modal │ │ │ │ └── modal.dart │ │ ├── enums │ │ │ ├── alignment.dart │ │ │ ├── position.dart │ │ │ └── visibility.dart │ │ ├── overlay │ │ │ ├── constants.dart │ │ │ ├── module.dart │ │ │ ├── overlay.dart │ │ │ └── zindexer.dart │ │ ├── popup │ │ │ ├── module.dart │ │ │ └── popup.dart │ │ ├── portal │ │ │ └── portal.dart │ │ └── ruler │ │ │ ├── dom_ruler.dart │ │ │ ├── module.dart │ │ │ └── ng_ruler.dart │ ├── material_button │ │ ├── _mixins.scss │ │ ├── material_button.dart │ │ ├── material_button.html │ │ ├── material_button.scss │ │ ├── material_button_base.dart │ │ ├── material_fab.dart │ │ └── material_fab.scss │ ├── material_card │ │ └── README.md │ ├── material_checkbox │ │ ├── _mixins.scss │ │ ├── material_checkbox.dart │ │ ├── material_checkbox.html │ │ └── material_checkbox.scss │ ├── material_chips │ │ ├── _mixins.scss │ │ ├── material_chip.dart │ │ ├── material_chip.html │ │ ├── material_chip.scss │ │ ├── material_chips.dart │ │ ├── material_chips.html │ │ └── material_chips.scss │ ├── material_datepicker │ │ ├── _constants.scss │ │ ├── _grid.scss │ │ ├── _mixins.scss │ │ ├── calendar.dart │ │ ├── comparison.dart │ │ ├── comparison_option.dart │ │ ├── config.dart │ │ ├── date_input.dart │ │ ├── date_range_editor.dart │ │ ├── date_range_editor.html │ │ ├── date_range_editor.scss │ │ ├── date_range_editor_host.dart │ │ ├── date_range_input.dart │ │ ├── date_range_input.scss │ │ ├── material_calendar_picker.dart │ │ ├── material_calendar_picker.html │ │ ├── material_calendar_picker.scss │ │ ├── material_date_grid_base.dart │ │ ├── material_date_range_picker.dart │ │ ├── material_date_range_picker.html │ │ ├── material_date_range_picker.scss │ │ ├── material_date_time_picker.dart │ │ ├── material_date_time_picker.html │ │ ├── material_date_time_picker.scss │ │ ├── material_datepicker.dart │ │ ├── material_datepicker.html │ │ ├── material_datepicker.scss │ │ ├── material_month_picker.dart │ │ ├── material_month_picker.html │ │ ├── material_month_picker.scss │ │ ├── material_time_picker.dart │ │ ├── material_time_picker.html │ │ ├── material_time_picker.scss │ │ ├── model.dart │ │ ├── module.dart │ │ ├── next_prev_buttons.dart │ │ ├── next_prev_buttons.scss │ │ ├── preset.dart │ │ ├── proto │ │ │ ├── date.pb.dart │ │ │ ├── date.proto │ │ │ ├── date_range.pb.dart │ │ │ └── date_range.proto │ │ └── range.dart │ ├── material_dialog │ │ ├── _mixins.scss │ │ ├── material_dialog.dart │ │ ├── material_dialog.html │ │ └── material_dialog.scss │ ├── material_expansionpanel │ │ ├── _mixins.scss │ │ ├── material_expansionpanel.dart │ │ ├── material_expansionpanel.html │ │ ├── material_expansionpanel.scss │ │ ├── material_expansionpanel_auto_dismiss.dart │ │ └── material_expansionpanel_set.dart │ ├── material_icon │ │ ├── _mixins.scss │ │ ├── material_icon.dart │ │ ├── material_icon.html │ │ ├── material_icon.scss │ │ └── material_icon_toggle.dart │ ├── material_input │ │ ├── _mixins.scss │ │ ├── base_material_input.dart │ │ ├── deferred_validator.dart │ │ ├── input_wrapper.dart │ │ ├── material_auto_suggest_input.dart │ │ ├── material_auto_suggest_input.html │ │ ├── material_auto_suggest_input.md │ │ ├── material_auto_suggest_input.scss │ │ ├── material_input.dart │ │ ├── material_input.html │ │ ├── material_input.scss │ │ ├── material_input_auto_select.dart │ │ ├── material_input_default_value_accessor.dart │ │ ├── material_input_error_keys.dart │ │ ├── material_input_multiline.dart │ │ ├── material_input_multiline.html │ │ ├── material_input_multiline.scss │ │ ├── material_input_wrapper.scss │ │ ├── material_number_accessor.dart │ │ ├── material_number_validators.dart │ │ └── material_percent_directive.dart │ ├── material_list │ │ ├── _common_constants.scss │ │ ├── _constants.scss │ │ ├── _mixins.scss │ │ ├── material_list.dart │ │ ├── material_list.scss │ │ ├── material_list_item.dart │ │ ├── material_list_item.scss │ │ └── material_list_size.dart │ ├── material_menu │ │ ├── _mixins.scss │ │ ├── affix │ │ │ ├── base_affix.dart │ │ │ ├── caption_affix.dart │ │ │ ├── caption_affix.scss │ │ │ ├── caption_affix_model.dart │ │ │ ├── icon_affix.dart │ │ │ ├── icon_affix.scss │ │ │ └── icon_affix_model.dart │ │ ├── common │ │ │ └── menu_root.dart │ │ ├── dropdown_menu.dart │ │ ├── dropdown_menu.html │ │ ├── material_fab_menu.dart │ │ ├── material_fab_menu.html │ │ ├── material_fab_menu.scss │ │ ├── material_menu.dart │ │ ├── material_menu.html │ │ ├── menu_item_affix_list.dart │ │ ├── menu_item_affix_list.scss │ │ ├── menu_item_groups.dart │ │ ├── menu_item_groups.html │ │ ├── menu_item_groups.scss │ │ ├── menu_popup.dart │ │ ├── menu_popup.html │ │ ├── menu_popup.scss │ │ ├── menu_popup_wrapper.dart │ │ └── menu_root.dart │ ├── material_popup │ │ ├── _mixins.scss │ │ ├── material_popup.dart │ │ ├── material_popup.html │ │ └── material_popup.scss │ ├── material_progress │ │ ├── _mixins.scss │ │ ├── material_progress.dart │ │ ├── material_progress.html │ │ └── material_progress.scss │ ├── material_radio │ │ ├── _mixins.scss │ │ ├── material_radio.dart │ │ ├── material_radio.html │ │ ├── material_radio.scss │ │ ├── material_radio_group.dart │ │ └── material_radio_group.scss │ ├── material_ripple │ │ ├── material_ripple.dart │ │ └── material_ripple.scss │ ├── material_select │ │ ├── _mixins.scss │ │ ├── _size.scss │ │ ├── activation_handler.dart │ │ ├── display_name.dart │ │ ├── dropdown_button.dart │ │ ├── dropdown_button.html │ │ ├── dropdown_button.scss │ │ ├── handles_aria.dart │ │ ├── material_dropdown_select.dart │ │ ├── material_dropdown_select.html │ │ ├── material_dropdown_select.md │ │ ├── material_dropdown_select.scss │ │ ├── material_dropdown_select_accessor.dart │ │ ├── material_select.dart │ │ ├── material_select.html │ │ ├── material_select.scss │ │ ├── material_select_base.dart │ │ ├── material_select_dropdown_item.dart │ │ ├── material_select_dropdown_item.scss │ │ ├── material_select_item.dart │ │ ├── material_select_item.html │ │ ├── material_select_item.scss │ │ ├── material_select_searchbox.dart │ │ ├── material_select_searchbox.html │ │ ├── material_select_searchbox.scss │ │ └── shift_click_selection.dart │ ├── material_slider │ │ ├── _mixins.scss │ │ ├── material_slider.dart │ │ ├── material_slider.html │ │ └── material_slider.scss │ ├── material_spinner │ │ ├── _mixins.scss │ │ ├── material_spinner.dart │ │ ├── material_spinner.html │ │ └── material_spinner.scss │ ├── material_stepper │ │ ├── _mixins.scss │ │ ├── common.dart │ │ ├── material_step.dart │ │ ├── material_stepper.dart │ │ ├── material_stepper.html │ │ └── material_stepper.scss │ ├── material_tab │ │ ├── _mixins.scss │ │ ├── fixed_material_tab_strip.dart │ │ ├── fixed_material_tab_strip.html │ │ ├── fixed_material_tab_strip.scss │ │ ├── material_tab.dart │ │ ├── material_tab.scss │ │ ├── material_tab_panel.dart │ │ ├── material_tab_panel.html │ │ ├── material_tab_panel.scss │ │ ├── tab_button.dart │ │ ├── tab_button.scss │ │ ├── tab_change_event.dart │ │ └── tab_mixin.dart │ ├── material_toggle │ │ ├── _mixins.scss │ │ ├── material_toggle.dart │ │ ├── material_toggle.html │ │ └── material_toggle.scss │ ├── material_tooltip │ │ ├── _mixins.scss │ │ ├── material_tooltip.dart │ │ └── module.dart │ ├── material_tree │ │ ├── _mixins.scss │ │ └── material_tree.dart │ ├── material_yes_no_buttons │ │ ├── _mixins.scss │ │ ├── material_yes_no_buttons.dart │ │ ├── material_yes_no_buttons.html │ │ └── material_yes_no_buttons.scss │ ├── mixins │ │ ├── button_wrapper.dart │ │ ├── focusable_mixin.dart │ │ ├── has_tab_index.dart │ │ ├── highlight_assistant_mixin.dart │ │ ├── material_dropdown_base.dart │ │ ├── selection_input_adapter.dart │ │ └── track_layout_changes.dart │ ├── model │ │ ├── a11y │ │ │ ├── active_item.dart │ │ │ ├── active_item_directive.dart │ │ │ ├── focus_indicator_controller.dart │ │ │ └── keyboard_handler_mixin.dart │ │ ├── action │ │ │ ├── async_action.dart │ │ │ └── delayed_action.dart │ │ ├── collection │ │ │ ├── combined_list.dart │ │ │ ├── labeled_list.dart │ │ │ ├── list_differ.dart │ │ │ └── list_tracker.dart │ │ ├── date │ │ │ ├── date.dart │ │ │ ├── date_formatter.dart │ │ │ └── time_zone_aware_clock.dart │ │ ├── formatters │ │ │ └── formatter.dart │ │ ├── math │ │ │ └── box.dart │ │ ├── menu │ │ │ ├── delegating_menu_item.dart │ │ │ ├── menu.dart │ │ │ ├── menu_item_affix.dart │ │ │ └── selectable_menu.dart │ │ ├── observable │ │ │ └── observable.dart │ │ ├── selection │ │ │ ├── locked_limit_selection_options.dart │ │ │ ├── select.dart │ │ │ ├── selection_container.dart │ │ │ ├── selection_model.dart │ │ │ ├── selection_options.dart │ │ │ ├── string_selection_options.dart │ │ │ ├── tree_propagation_selection_model.dart │ │ │ ├── tree_selection_mixin.dart │ │ │ └── tree_selection_options.dart │ │ └── ui │ │ │ ├── accepts_width.dart │ │ │ ├── async_display_name.dart │ │ │ ├── display_name.dart │ │ │ ├── has_factory.dart │ │ │ ├── has_renderer.dart │ │ │ ├── highlight_assistant.dart │ │ │ ├── highlight_provider.dart │ │ │ ├── highlighted_text_model.dart │ │ │ ├── icon.dart │ │ │ ├── item_sorter.dart │ │ │ ├── template_support.dart │ │ │ └── toggle.dart │ ├── reorder_list │ │ ├── _mixins.scss │ │ ├── reorder_events.dart │ │ ├── reorder_list.dart │ │ ├── reorder_list.html │ │ └── reorder_list.scss │ ├── scorecard │ │ ├── _mixins.scss │ │ ├── scoreboard.dart │ │ ├── scoreboard.html │ │ ├── scoreboard.scss │ │ ├── scorecard.dart │ │ ├── scorecard.html │ │ ├── scorecard.scss │ │ └── scorecard_bar.dart │ ├── simple_html │ │ ├── README.md │ │ ├── simple_html.dart │ │ └── simple_html.scss │ ├── src │ │ ├── laminate │ │ │ ├── components │ │ │ │ └── modal │ │ │ │ │ └── modal_controller_directive.dart │ │ │ ├── enums │ │ │ │ └── base.dart │ │ │ ├── overlay │ │ │ │ ├── overlay_ref.dart │ │ │ │ ├── overlay_service.dart │ │ │ │ ├── overlay_state.dart │ │ │ │ └── render │ │ │ │ │ ├── overlay_dom_render_service.dart │ │ │ │ │ └── overlay_style_config.dart │ │ │ ├── popup │ │ │ │ ├── dom_popup_source.dart │ │ │ │ ├── popup_hierarchy.dart │ │ │ │ ├── popup_interface.dart │ │ │ │ ├── popup_position_mixin.dart │ │ │ │ ├── popup_ref.dart │ │ │ │ ├── popup_size_provider.dart │ │ │ │ ├── popup_size_provider_directive.dart │ │ │ │ ├── popup_source.dart │ │ │ │ ├── popup_source_directive.dart │ │ │ │ └── popup_state.dart │ │ │ └── ruler │ │ │ │ └── ruler_interface.dart │ │ ├── material_datepicker │ │ │ ├── calendar │ │ │ │ ├── day.dart │ │ │ │ ├── highlight.dart │ │ │ │ ├── model.dart │ │ │ │ ├── month.dart │ │ │ │ ├── week.dart │ │ │ │ └── year.dart │ │ │ ├── calendar_listener.dart │ │ │ ├── closedhand.cur │ │ │ ├── comparison_range_editor.dart │ │ │ ├── comparison_range_editor.html │ │ │ ├── comparison_range_editor.scss │ │ │ ├── date_range_editor_model.dart │ │ │ ├── enum_parsing.dart │ │ │ ├── openhand.cur │ │ │ └── sequential.dart │ │ ├── material_tooltip │ │ │ ├── _constants.scss │ │ │ ├── icon_tooltip.dart │ │ │ ├── icon_tooltip.scss │ │ │ ├── ink_tooltip.dart │ │ │ ├── ink_tooltip.scss │ │ │ ├── paper_tooltip.dart │ │ │ ├── paper_tooltip.scss │ │ │ ├── tooltip.dart │ │ │ ├── tooltip_controller.dart │ │ │ ├── tooltip_source.dart │ │ │ └── tooltip_target.dart │ │ ├── material_tree │ │ │ ├── group │ │ │ │ ├── material_tree_group.dart │ │ │ │ ├── material_tree_group.html │ │ │ │ ├── material_tree_group.scss │ │ │ │ ├── material_tree_group_flat.dart │ │ │ │ ├── material_tree_group_flat_check.html │ │ │ │ ├── material_tree_group_flat_check.scss │ │ │ │ ├── material_tree_group_flat_list.html │ │ │ │ ├── material_tree_group_flat_list.scss │ │ │ │ ├── material_tree_group_flat_radio.html │ │ │ │ └── material_tree_group_flat_radio.scss │ │ │ ├── material_tree_dropdown.dart │ │ │ ├── material_tree_dropdown.html │ │ │ ├── material_tree_dropdown.scss │ │ │ ├── material_tree_expand_state.dart │ │ │ ├── material_tree_filter.dart │ │ │ ├── material_tree_filter.html │ │ │ ├── material_tree_impl.dart │ │ │ ├── material_tree_impl.html │ │ │ ├── material_tree_node.dart │ │ │ ├── material_tree_rendering_options.dart │ │ │ └── material_tree_root.dart │ │ ├── model │ │ │ ├── action │ │ │ │ ├── async_action.dart │ │ │ │ ├── async_action_controller.dart │ │ │ │ └── delegating_async_action.dart │ │ │ └── selection │ │ │ │ ├── delegating_selection_model.dart │ │ │ │ ├── delegating_selection_options.dart │ │ │ │ ├── future_selection_options_impl.dart │ │ │ │ ├── interfaces │ │ │ │ ├── filterable.dart │ │ │ │ ├── parent.dart │ │ │ │ └── selectable.dart │ │ │ │ ├── multi_selection_model_impl.dart │ │ │ │ ├── noop_selection_model_impl.dart │ │ │ │ ├── radio_group_single_selection_model.dart │ │ │ │ ├── selection_change_notifier.dart │ │ │ │ ├── single_selection_model_impl.dart │ │ │ │ └── stream_selection_options_impl.dart │ │ └── utils │ │ │ ├── angular │ │ │ ├── managed_zone │ │ │ │ └── managed_zone.dart │ │ │ └── scroll_host │ │ │ │ ├── gestures.dart │ │ │ │ ├── pan_controller_impl.dart │ │ │ │ ├── position_sticky_controller.dart │ │ │ │ ├── scroll_host_base.dart │ │ │ │ ├── scroll_host_event_impl.dart │ │ │ │ ├── scroll_host_interface.dart │ │ │ │ ├── scroll_observer.dart │ │ │ │ └── sticky_controller_impl.dart │ │ │ └── async │ │ │ ├── async_update_scheduler.dart │ │ │ ├── async_where.dart │ │ │ ├── debounce_stream.dart │ │ │ ├── disposable_future.dart │ │ │ ├── lazy_stream_controller.dart │ │ │ ├── priority_stream_iterator.dart │ │ │ ├── rate_limit.dart │ │ │ ├── simple_stream.dart │ │ │ ├── throttle_stream.dart │ │ │ └── zoned_async.dart │ ├── stop_propagation │ │ └── stop_propagation.dart │ ├── theme │ │ ├── _mixins.scss │ │ ├── dark_theme.dart │ │ └── module.dart │ └── utils │ │ ├── angular │ │ ├── css │ │ │ └── css.dart │ │ ├── id │ │ │ └── id.dart │ │ ├── imperative_view │ │ │ └── imperative_view.dart │ │ ├── managed_zone │ │ │ ├── angular_2.dart │ │ │ └── interface.dart │ │ ├── properties │ │ │ └── properties.dart │ │ ├── reference │ │ │ └── reference.dart │ │ └── scroll_host │ │ │ ├── angular_2.dart │ │ │ └── interface.dart │ │ ├── async │ │ └── async.dart │ │ ├── browser │ │ ├── dom_iterator │ │ │ └── dom_iterator.dart │ │ ├── dom_service │ │ │ ├── angular_2.dart │ │ │ ├── dom_service.dart │ │ │ └── dom_service_webdriver_testability.dart │ │ ├── events │ │ │ └── events.dart │ │ ├── feature_detector │ │ │ └── feature_detector.dart │ │ └── window │ │ │ ├── module.dart │ │ │ └── new_window_opener.dart │ │ ├── color │ │ ├── color.dart │ │ ├── material.dart │ │ └── material_chart_colors.dart │ │ ├── comparators │ │ └── comparators.dart │ │ ├── disposer │ │ ├── disposable_callback.dart │ │ └── disposer.dart │ │ ├── id_generator │ │ └── id_generator.dart │ │ ├── keyboard │ │ ├── global_escape_directive.dart │ │ └── keyboard.dart │ │ ├── numbers │ │ └── denomination.dart │ │ ├── rate_limit_utils │ │ └── rate_limit_utils.dart │ │ ├── showhide │ │ └── showhide.dart │ │ └── strings │ │ └── string_utils.dart ├── mono_pkg.yaml ├── pubspec.yaml ├── test │ └── ensure_proto_build_test.dart └── tool │ └── travis │ └── install_protoc.sh ├── angular_gallery ├── build.yaml ├── lib │ ├── builder │ │ ├── gallery_app_builder.dart │ │ ├── gallery_lib_builder.dart │ │ ├── syntax_highlight_builder.dart │ │ └── template │ │ │ ├── gallery.dart.mustache │ │ │ ├── gallery.html.mustache │ │ │ ├── gallery.scss.mustache │ │ │ ├── gallery_route_library.dart.mustache │ │ │ ├── home.dart.mustache │ │ │ ├── index.html.mustache │ │ │ ├── main.dart.mustache │ │ │ ├── style.scss.mustache │ │ │ └── syntax_highlight.scss.mustache │ ├── builders.dart │ ├── gallery │ │ ├── _mixins.scss │ │ └── gallery_tokens.dart │ └── src │ │ └── template_util.dart ├── mono_pkg.yaml └── pubspec.yaml ├── angular_gallery_section ├── build.yaml ├── lib │ ├── _demo_style.scss │ ├── annotation │ │ └── gallery_section_config.dart │ ├── builder.dart │ ├── builder │ │ ├── component_api_builder.dart │ │ ├── example_app_builder.dart │ │ ├── gallery_info_builder.dart │ │ ├── gallery_section_builder.dart │ │ ├── gallery_section_summary_builder.dart │ │ └── template │ │ │ ├── component.api.dart.mustache │ │ │ ├── gallery_section.dart.mustache │ │ │ ├── index.html.mustache │ │ │ ├── main.dart.mustache │ │ │ └── style.css.mustache │ ├── components │ │ ├── content │ │ │ ├── delayed_content.dart │ │ │ ├── delayed_content.html │ │ │ ├── delayed_content.scss │ │ │ └── named_content.dart │ │ └── gallery_component │ │ │ ├── _mixins.scss │ │ │ ├── dart_doc_component.html │ │ │ ├── documentation_component.dart │ │ │ ├── documentation_component.scss │ │ │ ├── documentation_info.dart │ │ │ ├── gallery_component.dart │ │ │ ├── gallery_component.html │ │ │ ├── gallery_component.scss │ │ │ ├── gallery_info.dart │ │ │ └── sass_doc_component.html │ ├── g3doc_markdown.dart │ ├── gallery_docs_extraction.dart │ ├── gallery_section_config_extraction.dart │ ├── resolved_config.dart │ ├── sass_docs_extraction.dart │ ├── src │ │ └── common_extractors.dart │ └── visitors │ │ └── path_utils.dart ├── mono_pkg.yaml └── pubspec.yaml ├── examples ├── angular_components_example │ ├── README.md │ ├── build.yaml │ ├── lib │ │ └── gallery │ │ │ ├── home.html │ │ │ └── home.scss │ ├── mono_pkg.yaml │ └── pubspec.yaml ├── app_layout_example │ ├── build.yaml │ ├── lib │ │ ├── app_layout_example.dart │ │ ├── app_layout_example.html │ │ ├── app_layout_example.scss │ │ ├── examples.dart │ │ ├── mobile_app_layout_example.dart │ │ ├── mobile_app_layout_example.html │ │ ├── stacking_drawer_example.dart │ │ ├── stacking_drawer_example.html │ │ └── stacking_drawer_example.scss │ ├── mono_pkg.yaml │ └── pubspec.yaml ├── material_button_example │ ├── build.yaml │ ├── lib │ │ ├── buttons.dart │ │ ├── buttons.html │ │ ├── material_button_example.dart │ │ ├── material_button_example.html │ │ └── material_button_example.scss │ ├── mono_pkg.yaml │ └── pubspec.yaml ├── material_card_example │ ├── build.yaml │ ├── lib │ │ ├── material_card_example.dart │ │ ├── material_card_example.html │ │ └── material_card_example.scss │ ├── mono_pkg.yaml │ └── pubspec.yaml ├── material_checkbox_example │ ├── build.yaml │ ├── lib │ │ ├── material_checkbox_example.dart │ │ ├── material_checkbox_example.html │ │ └── material_checkbox_example.scss │ ├── mono_pkg.yaml │ └── pubspec.yaml ├── material_chips_example │ ├── build.yaml │ ├── lib │ │ ├── material_chips_demo.dart │ │ ├── material_chips_demo.html │ │ └── material_chips_demo.scss │ ├── mono_pkg.yaml │ └── pubspec.yaml ├── material_datepicker_example │ ├── build.yaml │ ├── lib │ │ ├── combined_demo.dart │ │ ├── date_input_demo.dart │ │ ├── date_input_demo.html │ │ ├── date_range_input_demo.dart │ │ ├── material_calendar_picker_demo.dart │ │ ├── material_calendar_picker_demo.html │ │ ├── material_calendar_picker_demo.scss │ │ ├── material_date_range_picker_demo.dart │ │ ├── material_date_range_picker_demo.html │ │ ├── material_date_range_picker_demo.scss │ │ ├── material_date_time_picker_demo.dart │ │ ├── material_date_time_picker_demo.html │ │ ├── material_datepicker_demo.dart │ │ ├── material_datepicker_demo.html │ │ ├── material_month_picker_demo.dart │ │ ├── material_month_picker_demo.html │ │ ├── material_month_picker_demo.scss │ │ ├── material_time_picker_demo.dart │ │ └── material_time_picker_demo.html │ ├── mono_pkg.yaml │ └── pubspec.yaml ├── material_dialog_example │ ├── build.yaml │ ├── lib │ │ ├── material_dialog_example.dart │ │ ├── material_dialog_example.html │ │ └── material_dialog_example.scss │ ├── mono_pkg.yaml │ └── pubspec.yaml ├── material_expansionpanel_example │ ├── build.yaml │ ├── lib │ │ ├── material_expansionpanel_example.dart │ │ ├── material_expansionpanel_example.html │ │ └── material_expansionpanel_example.scss │ ├── mono_pkg.yaml │ └── pubspec.yaml ├── material_icon_example │ ├── build.yaml │ ├── lib │ │ ├── example_icon.svg │ │ ├── material_icon_demo.dart │ │ ├── material_icon_demo.html │ │ └── material_icon_demo.scss │ ├── mono_pkg.yaml │ └── pubspec.yaml ├── material_input_example │ ├── build.yaml │ ├── lib │ │ ├── gallery_section_config.dart │ │ ├── material_auto_suggest_input_demo.scss │ │ ├── material_auto_suggest_input_full_demo.dart │ │ ├── material_auto_suggest_input_full_demo.html │ │ ├── material_auto_suggest_input_simple_demo.dart │ │ ├── material_auto_suggest_input_simple_demo.html │ │ ├── material_input_demo.dart │ │ ├── material_input_demo.html │ │ ├── material_input_demo.scss │ │ ├── material_input_mixins.dart │ │ ├── material_input_mixins.html │ │ ├── material_input_mixins.scss │ │ ├── material_input_number_value_accessor_demo.dart │ │ ├── material_input_number_value_accessor_demo.html │ │ ├── material_percent_input_demo.dart │ │ └── material_percent_input_demo.html │ ├── mono_pkg.yaml │ └── pubspec.yaml ├── material_list_example │ ├── build.yaml │ ├── lib │ │ ├── examples.dart │ │ ├── material_list_demo.dart │ │ ├── material_list_demo.html │ │ └── material_list_demo.scss │ ├── mono_pkg.yaml │ └── pubspec.yaml ├── material_menu_example │ ├── build.yaml │ ├── lib │ │ ├── demo.dart │ │ ├── material_fab_menu_demo.dart │ │ ├── material_fab_menu_demo.html │ │ ├── material_menu_demo.dart │ │ ├── material_menu_demo.html │ │ └── material_menu_demo.scss │ ├── mono_pkg.yaml │ └── pubspec.yaml ├── material_popup_example │ ├── build.yaml │ ├── lib │ │ ├── material_popup_example.dart │ │ ├── material_popup_example.html │ │ └── material_popup_example.scss │ ├── mono_pkg.yaml │ └── pubspec.yaml ├── material_progress_example │ ├── build.yaml │ ├── lib │ │ ├── material_progress_demo.dart │ │ ├── material_progress_demo.html │ │ └── material_progress_demo.scss │ ├── mono_pkg.yaml │ └── pubspec.yaml ├── material_radio_example │ ├── build.yaml │ ├── lib │ │ ├── material_radio_example.dart │ │ ├── material_radio_example.html │ │ └── material_radio_example.scss │ ├── mono_pkg.yaml │ └── pubspec.yaml ├── material_select_example │ ├── build.yaml │ ├── lib │ │ ├── demos.dart │ │ ├── material_dropdown_select_demo.scss │ │ ├── material_dropdown_select_full_demo.dart │ │ ├── material_dropdown_select_full_demo.html │ │ ├── material_dropdown_select_simple_demo.dart │ │ ├── material_dropdown_select_simple_demo.html │ │ ├── material_select_demo.dart │ │ ├── material_select_demo.html │ │ └── material_select_demo.scss │ ├── mono_pkg.yaml │ └── pubspec.yaml ├── material_slider_example │ ├── build.yaml │ ├── lib │ │ ├── material_slider_example.dart │ │ ├── material_slider_example.html │ │ └── material_slider_example.scss │ ├── mono_pkg.yaml │ └── pubspec.yaml ├── material_spinner_example │ ├── build.yaml │ ├── lib │ │ ├── material_spinner_example.dart │ │ ├── material_spinner_example.html │ │ └── material_spinner_example.scss │ ├── mono_pkg.yaml │ └── pubspec.yaml ├── material_stepper_example │ ├── build.yaml │ ├── lib │ │ ├── material_stepper_demo.dart │ │ ├── material_stepper_demo.html │ │ └── material_stepper_demo.scss │ ├── mono_pkg.yaml │ └── pubspec.yaml ├── material_tab_example │ ├── build.yaml │ ├── lib │ │ ├── examples.dart │ │ ├── material_tab_panel_example.dart │ │ ├── material_tab_panel_example.html │ │ ├── material_tab_panel_example.scss │ │ ├── material_tab_strip_example.dart │ │ ├── material_tab_strip_example.html │ │ ├── material_tab_strip_mixin_example.dart │ │ ├── material_tab_strip_mixin_example.html │ │ └── material_tab_strip_mixin_example.scss │ ├── mono_pkg.yaml │ └── pubspec.yaml ├── material_toggle_example │ ├── build.yaml │ ├── lib │ │ ├── material_toggle_example.dart │ │ ├── material_toggle_example.html │ │ └── material_toggle_example.scss │ ├── mono_pkg.yaml │ └── pubspec.yaml ├── material_tooltip_example │ ├── build.yaml │ ├── lib │ │ ├── material_tooltip_example.dart │ │ ├── material_tooltip_example.html │ │ └── material_tooltip_example.scss │ ├── mono_pkg.yaml │ └── pubspec.yaml ├── material_tree_example │ ├── build.yaml │ ├── lib │ │ ├── material_tree_demo.dart │ │ ├── material_tree_shared.dart │ │ └── src │ │ │ ├── dividers.scss │ │ │ ├── material_shadow.scss │ │ │ ├── material_tree_component_renderer.dart │ │ │ ├── material_tree_demo_options.dart │ │ │ ├── material_tree_dropdown_multi_clear_demo.dart │ │ │ ├── material_tree_dropdown_multi_demo.dart │ │ │ ├── material_tree_dropdown_single_demo.dart │ │ │ ├── material_tree_flat_filter_demo.dart │ │ │ ├── material_tree_flat_multi_demo.dart │ │ │ ├── material_tree_flat_readonly_demo.dart │ │ │ ├── material_tree_flat_selectable_demo.dart │ │ │ ├── material_tree_nested_component_rendering_demo.dart │ │ │ ├── material_tree_nested_expansion_state_demo.dart │ │ │ ├── material_tree_nested_filter_demo.dart │ │ │ ├── material_tree_nested_filter_in_popup_demo.dart │ │ │ ├── material_tree_nested_item_rendering_demo.dart │ │ │ ├── material_tree_nested_multi_demo.dart │ │ │ ├── material_tree_nested_single_demo.dart │ │ │ ├── material_tree_nested_single_divider_demo.dart │ │ │ ├── material_tree_nested_single_parent_selectable_demo.dart │ │ │ └── material_tree_view_more_demo.dart │ ├── mono_pkg.yaml │ └── pubspec.yaml ├── material_yes_no_buttons_example │ ├── build.yaml │ ├── lib │ │ ├── material_yes_no_buttons_example.dart │ │ ├── material_yes_no_buttons_example.html │ │ └── material_yes_no_buttons_example.scss │ ├── mono_pkg.yaml │ └── pubspec.yaml ├── scorecard_example │ ├── build.yaml │ ├── lib │ │ ├── scorecard_demo.dart │ │ ├── scorecard_demo.html │ │ └── scorecard_demo.scss │ ├── mono_pkg.yaml │ └── pubspec.yaml └── simple_html_example │ ├── build.yaml │ ├── lib │ ├── basic_example │ │ ├── simple_html_example.dart │ │ ├── simple_html_example.html │ │ ├── simple_html_example.scss │ │ └── simple_html_example_messages.dart │ ├── custom_whitelist_example │ │ ├── simple_html_custom_whitelist_example.dart │ │ ├── simple_html_custom_whitelist_example.html │ │ └── simple_html_custom_whitelist_example_messages.dart │ └── gallery_section_config.dart │ ├── mono_pkg.yaml │ └── pubspec.yaml ├── mono_repo.yaml └── tool ├── ci.sh └── mono_repo_self_validate.sh /.gitignore: -------------------------------------------------------------------------------- 1 | # Files and directories created by pub 2 | .dart_tool 3 | .packages 4 | .pub/ 5 | build/ 6 | packages 7 | pubspec.lock 8 | 9 | # Files created by dart2js 10 | *.dart.js 11 | *.part.js 12 | *.js.deps 13 | *.js.map 14 | *.info.json 15 | 16 | # Directory created by dartdoc 17 | doc/api/ 18 | 19 | # JetBrains IDEs 20 | .idea/ 21 | *.iml 22 | *.ipr 23 | *.iws 24 | -------------------------------------------------------------------------------- /AUTHORS: -------------------------------------------------------------------------------- 1 | # Below is a list of people and organizations that have contributed 2 | # to the project. Names should be added to the list like so: 3 | # 4 | # Name/Organization 5 | 6 | Google Inc. 7 | -------------------------------------------------------------------------------- /analysis_options.yaml: -------------------------------------------------------------------------------- 1 | analyzer: 2 | errors: 3 | # Allow importing .template.dart files without an [explicit] analyzer error. 4 | #uri_has_not_been_generated: ignore 5 | # Ignore our own deprecated symbols (too noisy). 6 | deprecated_member_use_from_same_package: ignore 7 | 8 | linter: 9 | rules: 10 | - prefer_equal_for_default_values 11 | - prefer_generic_function_type_aliases 12 | - slash_for_doc_comments 13 | - unnecessary_const 14 | - unnecessary_new 15 | -------------------------------------------------------------------------------- /angular_components/analysis_options.yaml: -------------------------------------------------------------------------------- 1 | include: package:pedantic/analysis_options.1.8.0.yaml 2 | 3 | analyzer: 4 | errors: 5 | dead_code: warning 6 | todo: ignore 7 | unused_element: warning 8 | unused_import: warning 9 | unused_local_variable: warning 10 | uri_has_not_been_generated: ignore 11 | deprecated_member_use_from_same_package: ignore 12 | 13 | linter: 14 | rules: 15 | - prefer_generic_function_type_aliases 16 | -------------------------------------------------------------------------------- /angular_components/build.yaml: -------------------------------------------------------------------------------- 1 | targets: 2 | angular_components: 3 | sources: 4 | exclude: ["lib/builder.dart"] 5 | builders: 6 | sass_builder|sass_builder: 7 | enabled: False 8 | angular_components|scss_builder: 9 | enabled: True 10 | scss_builder: 11 | sources: ["lib/builder.dart"] 12 | dependencies: 13 | - build 14 | - sass_builder 15 | 16 | 17 | builders: 18 | scss_builder: 19 | target: "scss_builder" 20 | import: "package:angular_components/builder.dart" 21 | builder_factories: ["scssBuilder"] 22 | build_to: cache 23 | build_extensions: 24 | .scss: [".scss.css"] 25 | .sass: [".scss.css"] 26 | applies_builders: 27 | - sass_builder|sass_source_cleanup 28 | -------------------------------------------------------------------------------- /angular_components/dart_test.yaml: -------------------------------------------------------------------------------- 1 | tags: 2 | presubmit-only: 3 | skip: 'Should only be run during presubmit' 4 | -------------------------------------------------------------------------------- /angular_components/lib/annotations/rtl_annotation.dart: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | import 'dart:html'; 6 | 7 | import 'package:angular/angular.dart'; 8 | 9 | /// Annotation bound to a boolean which is used to indicate that a complete 10 | /// web page is RTL. 11 | /// 12 | /// This is used to only read the DOM once for an app to determine if the app 13 | /// itself is RTL. Only use this for components whose RTL is not independent 14 | /// of the application as a whole. 15 | const rtlToken = OpaqueToken('isRtl'); 16 | 17 | const rtlProvider = 18 | FactoryProvider.forToken(rtlToken, determineRtl, deps: [Document]); 19 | 20 | @Injectable() 21 | bool determineRtl(Document document) => 22 | document.documentElement.dir == 'rtl' || 23 | (document as HtmlDocument).body.dir == 'rtl'; 24 | -------------------------------------------------------------------------------- /angular_components/lib/app_layout/_material_drawer.scss: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | @import 'package:angular_components/css/material/material'; 6 | 7 | $mat-drawer-width-default: $mat-grid * 32; 8 | 9 | @mixin material-drawer-common { 10 | background-color: $mat-white; 11 | bottom: 0; 12 | box-sizing: border-box; 13 | display: flex; 14 | flex-direction: column; 15 | flex-wrap: nowrap; 16 | overflow: hidden; 17 | position: absolute; 18 | top: 0; 19 | } 20 | -------------------------------------------------------------------------------- /angular_components/lib/app_layout/g3doc/simple_app_bar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/angulardart/angular_components/1f7d1a0d16fc76417c84cc8ecf747eb6024644fe/angular_components/lib/app_layout/g3doc/simple_app_bar.png -------------------------------------------------------------------------------- /angular_components/lib/app_layout/material_stackable_drawer.html: -------------------------------------------------------------------------------- 1 | 6 |
8 | 9 |
10 | -------------------------------------------------------------------------------- /angular_components/lib/app_layout/material_stackable_drawer.scss: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | @import 'common_temporary_drawer_styles'; 6 | @import 'package:angular_components/app_layout/mixins'; 7 | @import 'package:angular_components/css/material/material'; 8 | 9 | @include mat-temporary-drawer-width( 10 | 100%, $host: true, $drawerSelector: '.drawer-content-expanded'); 11 | -------------------------------------------------------------------------------- /angular_components/lib/app_layout/material_temporary_drawer.html: -------------------------------------------------------------------------------- 1 | 6 |
7 | 8 |
9 | -------------------------------------------------------------------------------- /angular_components/lib/app_layout/material_temporary_drawer.scss: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | @import 'common_temporary_drawer_styles'; 6 | @import 'package:angular_components/css/material/material'; 7 | @import 'package:angular_components/css/material/shadow'; 8 | -------------------------------------------------------------------------------- /angular_components/lib/builder.dart: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | import 'package:build/build.dart'; 6 | import 'package:sass_builder/sass_builder.dart'; 7 | 8 | Builder scssBuilder(BuilderOptions options) => 9 | SassBuilder(outputExtension: '.scss.css'); 10 | -------------------------------------------------------------------------------- /angular_components/lib/button_decorator/_mixins.scss: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | @mixin disabled-cursor($cursor-style) { 6 | ::ng-deep [buttonDecorator].is-disabled { 7 | cursor: $cursor-style; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /angular_components/lib/button_decorator/button_decorator.scss: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | /// Consider using button-base or material-button instead from: 6 | /// lib/material_button/_mixins.scss 7 | /// These mixins provide more of the typical values used in buttons. 8 | /// 9 | 10 | /// Default styles that should be provided for all elements that use 11 | /// the buttonDecorator directive. 12 | [buttonDecorator] { 13 | cursor: pointer; 14 | 15 | &.is-disabled { 16 | cursor: not-allowed; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /angular_components/lib/content/deferred_content_aware.dart: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | import 'dart:async'; 6 | 7 | /// A container which controls the visibility of its content via a Stream. 8 | /// 9 | /// This allows content to defer its view creation until it is actually visible. 10 | /// The `DeferredContentDirective` is a directive which looks for a parent 11 | /// providing this stream and creates/clears its view based on the stream. 12 | abstract class DeferredContentAware { 13 | /// Component publishes to this stream to control the visibility of contents. 14 | Stream get contentVisible; 15 | } 16 | -------------------------------------------------------------------------------- /angular_components/lib/css/material/_material.scss: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | @import 'package:angular_components/css/all_material'; 6 | -------------------------------------------------------------------------------- /angular_components/lib/css/material/_mixins.scss: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | @import 'package:angular_components/css/scrollbar_material'; 6 | -------------------------------------------------------------------------------- /angular_components/lib/css/material/_shadow.scss: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | @import 'package:angular_components/css/elevation_material'; 6 | -------------------------------------------------------------------------------- /angular_components/lib/css/material/const/_color.scss: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | @import 'package:angular_components/css/color_material'; 6 | @import 'package:angular_components/css/scrollbar_material'; 7 | -------------------------------------------------------------------------------- /angular_components/lib/css/material/const/_functions.scss: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | @import 'package:angular_components/css/core_material'; 6 | -------------------------------------------------------------------------------- /angular_components/lib/css/material/const/_global.scss: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | @import 'package:angular_components/css/all_material'; 6 | -------------------------------------------------------------------------------- /angular_components/lib/css/material/const/_mixins.scss: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | @import 'package:angular_components/css/core_material'; 6 | @import 'package:angular_components/css/scrollbar_material'; 7 | -------------------------------------------------------------------------------- /angular_components/lib/css/material/const/_palette.scss: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | @import 'package:angular_components/css/color_palette_material'; 6 | -------------------------------------------------------------------------------- /angular_components/lib/css/material/const/_settings.scss: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | @import 'package:angular_components/css/core_material'; 6 | @import 'package:angular_components/css/transition_material'; 7 | @import 'package:angular_components/css/color_material'; 8 | -------------------------------------------------------------------------------- /angular_components/lib/css/material/const/_typography.scss: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | @import 'package:angular_components/css/typography_material'; 6 | -------------------------------------------------------------------------------- /angular_components/lib/css/mdc_web/README.md: -------------------------------------------------------------------------------- 1 | The files located here are provided and maintained by the Google material team 2 | also known as mdc-web. They are included here to make their use easier in 3 | AngularDart applications. They are taken from a larger set of styles available 4 | on [GitHub](https://github.com/material-components/material-components-web). 5 | -------------------------------------------------------------------------------- /angular_components/lib/focus/focus_activable_item.dart: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | import 'dart:html'; 6 | 7 | import 'package:angular/angular.dart'; 8 | import 'package:angular_components/focus/focus.dart'; 9 | 10 | /// Used in conjunction with other components to allow tagging view or content 11 | /// elements that should be focused either by index or [key]. 12 | @Directive( 13 | selector: '[focusActivableItem]', 14 | providers: [ 15 | ExistingProvider(FocusableActivateItem, FocusActivableItemDirective) 16 | ], 17 | ) 18 | class FocusActivableItemDirective extends RootFocusable 19 | implements FocusableActivateItem { 20 | /// Key to assign to the focusable item. 21 | @Input('focusActivableItem') 22 | @override 23 | String key; 24 | 25 | FocusActivableItemDirective(HtmlElement root) : super(root); 26 | } 27 | 28 | /// A focusable component with a matching [key]. 29 | abstract class FocusableActivateItem implements Focusable { 30 | String get key; 31 | } 32 | -------------------------------------------------------------------------------- /angular_components/lib/focus/focus_interface.dart: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | /// A component or directive that can be programmatically focused. 6 | /// 7 | /// Directive can manage if it means to put focus on root of itself 8 | /// or meaningful component inside. 9 | abstract class Focusable { 10 | /// Item/component focuses itself 11 | void focus(); 12 | } 13 | -------------------------------------------------------------------------------- /angular_components/lib/focus/focus_trap.html: -------------------------------------------------------------------------------- 1 | 6 |
7 |
8 | 9 |
10 |
11 | -------------------------------------------------------------------------------- /angular_components/lib/focus/focus_trap.scss: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | :host { 6 | display: block 7 | } 8 | 9 | // These styles allow the contents within the focus-trap component to inherit 10 | // the height and max-height of the focus-trap component if the height and 11 | // max-height are set like so: 12 | // 13 | // focus-trap { 14 | // height: 100px; 15 | // max-height: 100px; 16 | // } 17 | // 18 | // These styles are needed by the material-dialog component, which uses the focus-trap component. 19 | [focusContentWrapper] { 20 | height: inherit; 21 | max-height: inherit; 22 | min-height: inherit; 23 | } 24 | -------------------------------------------------------------------------------- /angular_components/lib/forms/error_renderer.dart: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | /// A function which takes in an error map, and returns another modified errors 6 | /// map. 7 | typedef ErrorFn = Map Function(Map errors); 8 | 9 | /// Convenience function for replacing multiple errors for Components using the 10 | /// errorRenderer pattern. 11 | ErrorFn replaceErrors(Map overrides) => 12 | (errors) => _replaceErrorsImpl(overrides, errors); 13 | 14 | Map _replaceErrorsImpl( 15 | Map overrides, Map errors) { 16 | final result = Map.from(errors); 17 | for (var error in errors.keys) { 18 | if (overrides.containsKey(error)) result[error] = overrides[error]; 19 | } 20 | return result; 21 | } 22 | -------------------------------------------------------------------------------- /angular_components/lib/glyph/glyph.html: -------------------------------------------------------------------------------- 1 | 6 | 11 | -------------------------------------------------------------------------------- /angular_components/lib/highlighted_text/highlighted_text.html: -------------------------------------------------------------------------------- 1 | 6 | {{segment.text}} 9 | -------------------------------------------------------------------------------- /angular_components/lib/highlighted_text/highlighted_text.scss: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | @import 'package:angular_components/css/material/material'; 6 | 7 | .segment-highlight { 8 | font-weight: $mat-font-weight-bold; 9 | } 10 | -------------------------------------------------------------------------------- /angular_components/lib/interfaces/has_disabled.dart: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | /// Interface for classes accepting a disabled setting. 6 | abstract class HasDisabled { 7 | bool disabled; 8 | } 9 | -------------------------------------------------------------------------------- /angular_components/lib/laminate/enums/position.dart: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | import 'package:angular_components/src/laminate/enums/base.dart'; 6 | 7 | export 'package:angular_components/src/laminate/enums/base.dart'; 8 | 9 | class Position implements ElementStyleEnum { 10 | static const Static = Position._('static'); 11 | static const Relative = Position._('relative'); 12 | static const Fixed = Position._('fixed'); 13 | static const Absolute = Position._('absolute'); 14 | 15 | final String _cssPropertyValue; 16 | 17 | const Position._(this._cssPropertyValue); 18 | 19 | @override 20 | void apply(SetPropertyFn setProperty) { 21 | setProperty('position', _cssPropertyValue); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /angular_components/lib/laminate/overlay/constants.dart: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | const overlayDefaultContainerId = 'default-acx-overlay-container'; 6 | const overlayContainerClassName = 'acx-overlay-container'; 7 | const overlayContainerNameAttribute = 'container-name'; 8 | -------------------------------------------------------------------------------- /angular_components/lib/laminate/overlay/overlay.dart: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | export 'package:angular_components/src/laminate/overlay/overlay_ref.dart' 6 | show OverlayRef; 7 | export 'package:angular_components/src/laminate/overlay/overlay_service.dart' 8 | show OverlayService; 9 | export 'package:angular_components/src/laminate/overlay/overlay_state.dart' 10 | show OverlayState, MutableOverlayState; 11 | export 'package:angular_components/src/laminate/overlay/render/overlay_dom_render_service.dart' 12 | show OverlayDomRenderService; 13 | -------------------------------------------------------------------------------- /angular_components/lib/laminate/popup/popup.dart: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | // TODO(google): Move this to another exported library. 6 | export 'package:angular_components/src/laminate/popup/dom_popup_source.dart'; 7 | export 'package:angular_components/src/laminate/popup/popup_hierarchy.dart'; 8 | export 'package:angular_components/src/laminate/popup/popup_interface.dart'; 9 | export 'package:angular_components/src/laminate/popup/popup_position_mixin.dart'; 10 | export 'package:angular_components/src/laminate/popup/popup_ref.dart' 11 | show PopupRef; 12 | export 'package:angular_components/src/laminate/popup/popup_size_provider.dart'; 13 | export 'package:angular_components/src/laminate/popup/popup_size_provider_directive.dart'; 14 | export 'package:angular_components/src/laminate/popup/popup_source.dart'; 15 | export 'package:angular_components/src/laminate/popup/popup_source_directive.dart'; 16 | export 'package:angular_components/src/laminate/popup/popup_state.dart'; 17 | -------------------------------------------------------------------------------- /angular_components/lib/laminate/ruler/module.dart: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | import 'package:angular/angular.dart'; 6 | import 'package:angular_components/laminate/ruler/dom_ruler.dart'; 7 | import 'package:angular_components/laminate/ruler/ng_ruler.dart'; 8 | import 'package:angular_components/utils/angular/managed_zone/angular_2.dart'; 9 | import 'package:angular_components/utils/browser/dom_service/angular_2.dart'; 10 | import 'package:angular_components/utils/browser/window/module.dart'; 11 | 12 | /// Providers for using the ruler service. 13 | const rulerBindings = [_rulerProviders, domServiceBinding, windowBindings]; 14 | 15 | /// DI module for ruler service. 16 | const rulerModule = Module(include: [ 17 | domServiceModule, 18 | windowModule, 19 | ], provide: _rulerProviders); 20 | 21 | const _rulerProviders = [ 22 | ClassProvider(DomRuler), 23 | ClassProvider(ManagedZone, useClass: Angular2ManagedZone), 24 | ClassProvider(NgRuler), 25 | ]; 26 | -------------------------------------------------------------------------------- /angular_components/lib/material_button/material_button.html: -------------------------------------------------------------------------------- 1 | 6 | 7 |
8 | 9 |
10 | 11 | 13 | 14 | -------------------------------------------------------------------------------- /angular_components/lib/material_button/material_button.scss: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | @import 'package:angular_components/material_button/mixins'; 6 | 7 | :host { 8 | @include material-button; 9 | } 10 | -------------------------------------------------------------------------------- /angular_components/lib/material_button/material_fab.scss: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | @import 'package:angular_components/css/material/shadow'; 6 | // TODO(google): Remove once glyph has been replaced with material-icon. 7 | @import 'package:angular_components/glyph/mixins'; 8 | @import 'package:angular_components/material_icon/mixins'; 9 | @import 'package:angular_components/material_button/mixins'; 10 | 11 | :host { 12 | @include fab; 13 | 14 | &[mini] { 15 | @include fab-mini; 16 | } 17 | 18 | &[raised] { 19 | @include shadow-elevation(6); 20 | } 21 | 22 | &.is-pressed[raised] { 23 | @include shadow-elevation(12); 24 | } 25 | } 26 | 27 | material-icon { 28 | @include material-icon-size($fab-icon-size); 29 | } 30 | 31 | // TODO(google): Remove once glyph has been replaced with material-icon. 32 | glyph { 33 | @include glyph-size($fab-icon-size); 34 | } 35 | 36 | -------------------------------------------------------------------------------- /angular_components/lib/material_checkbox/material_checkbox.html: -------------------------------------------------------------------------------- 1 | 6 |
8 | 14 | 17 | 18 |
19 |
20 | {{label}} 21 | 22 |
23 | -------------------------------------------------------------------------------- /angular_components/lib/material_chips/material_chip.html: -------------------------------------------------------------------------------- 1 | 6 |
7 | 8 |
9 |
10 | {{label}} 11 | 12 |
13 |
19 | 21 | 24 | 25 |
26 | -------------------------------------------------------------------------------- /angular_components/lib/material_chips/material_chips.html: -------------------------------------------------------------------------------- 1 | 6 | 11 | 12 | -------------------------------------------------------------------------------- /angular_components/lib/material_chips/material_chips.scss: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | @import 'package:angular_components/css/material/material'; 6 | 7 | :host { 8 | display: flex; 9 | flex-wrap: wrap; 10 | justify-content: flex-start; 11 | flex-direction: row; 12 | align-items: center; 13 | align-content: space-around; 14 | 15 | margin: 0; 16 | padding: 0; 17 | position: relative; 18 | vertical-align: top; 19 | } 20 | 21 | material-chip:last-of-type { 22 | margin-right: $mat-grid * 2; 23 | } 24 | -------------------------------------------------------------------------------- /angular_components/lib/material_datepicker/calendar.dart: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | import 'package:collection/collection.dart'; 6 | import 'package:intl/intl.dart'; 7 | import 'package:meta/meta.dart'; 8 | import 'package:angular_components/model/date/date.dart'; 9 | 10 | part '../src/material_datepicker/calendar/day.dart'; 11 | part '../src/material_datepicker/calendar/highlight.dart'; 12 | part '../src/material_datepicker/calendar/model.dart'; 13 | part '../src/material_datepicker/calendar/month.dart'; 14 | part '../src/material_datepicker/calendar/week.dart'; 15 | part '../src/material_datepicker/calendar/year.dart'; 16 | -------------------------------------------------------------------------------- /angular_components/lib/material_datepicker/config.dart: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | /// Global configuration options for datepicker components. 6 | class DatepickerConfig { 7 | /// For date range selection, whether clicking to move the start date should 8 | /// also move the end date (preserving the length of the selected range). 9 | /// 10 | /// Defaults to true. No effect on single-date calendars. 11 | final bool movingStartMaintainsLength; 12 | 13 | DatepickerConfig({this.movingStartMaintainsLength = true}); 14 | } 15 | -------------------------------------------------------------------------------- /angular_components/lib/material_datepicker/date_range_editor_host.dart: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | import 'package:angular_components/focus/focus.dart'; 6 | 7 | abstract class DateRangeEditorHost { 8 | void dateRangeEditorCreated(Focusable editor); 9 | } 10 | -------------------------------------------------------------------------------- /angular_components/lib/material_datepicker/date_range_input.scss: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | @import 'package:angular_components/css/material/material'; 6 | @import 'package:angular_components/material_input/mixins'; 7 | 8 | :host { 9 | display: flex; 10 | align-items: flex-start; 11 | } 12 | 13 | .separator { 14 | padding: 0 $mat-grid; 15 | line-height: 4 * $mat-grid; 16 | } 17 | 18 | [dateParsing] { 19 | flex-grow: 1; 20 | padding: 0; 21 | width: auto; 22 | } 23 | 24 | .date-input { 25 | // To align with the spec. 26 | $offset: 6px; 27 | 28 | @include input-top-section-margin(0 0 $offset 0); 29 | @include input-hide-bottom-spaceholder(); 30 | // Tweak the margins so the inputs align vertically with the bottom of their 31 | // containing element. 32 | margin-top: $offset + 2px; 33 | margin-bottom: -$offset + 1px; 34 | 35 | &.active { 36 | @include material-input-display-focused-underline(); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /angular_components/lib/material_datepicker/material_calendar_picker.html: -------------------------------------------------------------------------------- 1 | 6 |
7 |
8 | {{name}} 9 |
10 |
11 | 12 |
13 |
14 |
15 | -------------------------------------------------------------------------------- /angular_components/lib/material_datepicker/material_date_time_picker.html: -------------------------------------------------------------------------------- 1 | 6 | 13 | 14 | 23 | 24 | -------------------------------------------------------------------------------- /angular_components/lib/material_datepicker/material_date_time_picker.scss: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | @import 'package:angular_components/css/material/material'; 6 | 7 | :host { 8 | display: flex; 9 | 10 | material-datepicker { 11 | margin-right: $mat-grid * 2 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /angular_components/lib/material_datepicker/material_month_picker.html: -------------------------------------------------------------------------------- 1 | 6 |
7 |
8 |
9 | -------------------------------------------------------------------------------- /angular_components/lib/material_datepicker/material_time_picker.scss: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | @import 'package:angular_components/css/material/material'; 6 | @import 'package:angular_components/material_datepicker/mixins'; 7 | @import 'package:angular_components/material_input/mixins'; 8 | @import 'package:angular_components/material_select/mixins'; 9 | 10 | $time-picker-width: $mat-grid * 18; 11 | 12 | :host { 13 | dropdown-button { 14 | @include dropdown-icon-spacing(0 0 0 $mat-grid * 2); 15 | width: $time-picker-width; 16 | 17 | .button-text { 18 | padding-left: $mat-grid * 3; 19 | } 20 | } 21 | } 22 | 23 | .time-input-box { 24 | width: $time-picker-width; 25 | @include input-bottom-section-padding(0 0 0 $mat-grid); 26 | @include input-top-section-padding( 27 | $mat-grid $mat-grid * 4 $mat-grid $mat-grid * 3); 28 | } 29 | -------------------------------------------------------------------------------- /angular_components/lib/material_dialog/material_dialog.html: -------------------------------------------------------------------------------- 1 | 6 | 7 |
8 |
9 | 10 |
11 | 12 |
{{error}}
13 | 14 |
18 | 19 |
20 | 21 |
22 | 23 |
24 |
25 |
26 | -------------------------------------------------------------------------------- /angular_components/lib/material_icon/material_icon.html: -------------------------------------------------------------------------------- 1 | 6 | 10 | -------------------------------------------------------------------------------- /angular_components/lib/material_input/material_auto_suggest_input.scss: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | @import 'package:angular_components/css/material/material'; 6 | @import 'package:angular_components/button_decorator/mixins'; 7 | 8 | :host { 9 | display: inline-flex; 10 | @include disabled-cursor(not-allowed); 11 | } 12 | 13 | .clear-icon { 14 | opacity: $mat-icon-opacity; 15 | cursor: pointer; 16 | transform: translateY($mat-grid); 17 | margin: 0 $mat-grid-type 0 ($mat-grid-type * 3); 18 | } 19 | 20 | .list-group .list-group-label { 21 | padding: 0 (2 * $mat-grid); 22 | } 23 | 24 | .loading { 25 | margin: 2 * $mat-grid; 26 | } 27 | 28 | .empty { 29 | margin: 2 * $mat-grid; 30 | font-style: italic; 31 | } 32 | -------------------------------------------------------------------------------- /angular_components/lib/material_input/material_input_error_keys.dart: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | const positiveIntegerRequiredErrorKey = 'positive-number'; 6 | const nonNegativeIntegerRequiredErrorKey = 'non-negative'; 7 | const numberBelowLowerBoundErrorKey = 'lower-bound-number'; 8 | const numberAboveUpperBoundErrorKey = 'upper-bound-number'; 9 | const checkIntegerErrorKey = 'check-integer'; 10 | const inputNotNumberErrorKey = 'material-input-number-error'; 11 | -------------------------------------------------------------------------------- /angular_components/lib/material_input/material_input_multiline.scss: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | .mirror-text { 6 | visibility: hidden; 7 | word-wrap: break-word; 8 | white-space: pre-wrap; 9 | overflow: hidden; 10 | } 11 | 12 | .line-height-measure { 13 | visibility: hidden; 14 | position: absolute; 15 | } 16 | 17 | .staticHeight { 18 | // Needed to override display value set on textarea. 19 | position: static; 20 | } 21 | -------------------------------------------------------------------------------- /angular_components/lib/material_input/material_input_wrapper.scss: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | material-input { 6 | width: inherit; 7 | } 8 | -------------------------------------------------------------------------------- /angular_components/lib/material_list/_common_constants.scss: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | @import 'package:angular_components/css/material/material'; 6 | 7 | $list-item-primary-width: $mat-grid * 5; 8 | $list-item-height: $mat-grid * 4; 9 | $list-item-padding: $mat-grid * 3; 10 | 11 | $sublist-icon-size: $mat-grid * 2; 12 | 13 | $list-width-unit: 64px; 14 | 15 | -------------------------------------------------------------------------------- /angular_components/lib/material_list/_constants.scss: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | @import 'package:angular_components/material_list/_common_constants'; 6 | @import 'package:angular_components/css/material/material'; 7 | 8 | $list-item-button-hover-background: $mat-grey-200; 9 | -------------------------------------------------------------------------------- /angular_components/lib/material_list/material_list_item.scss: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | @import 'package:angular_components/material_list/mixins'; 6 | @import 'package:angular_components/css/material/material'; 7 | 8 | :host { 9 | @include list-item-button(); 10 | outline: none; 11 | } 12 | 13 | :host-context([dir="rtl"]) { 14 | @include list-item-base-rtl; 15 | } 16 | -------------------------------------------------------------------------------- /angular_components/lib/material_list/material_list_size.dart: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | /// Size names (and corresponding values) for the standard widths of 6 | /// `material-list`. 7 | class MaterialListSize { 8 | static const String auto = 'auto'; 9 | static const String xSmall = 'x-small'; 10 | static const String small = 'small'; 11 | static const String medium = 'medium'; 12 | static const String large = 'large'; 13 | static const String xLarge = 'x-large'; 14 | static List get values => 15 | const [auto, xSmall, small, medium, large, xLarge]; 16 | } 17 | -------------------------------------------------------------------------------- /angular_components/lib/material_menu/affix/base_affix.dart: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | import 'package:angular/angular.dart'; 6 | import 'package:angular_components/interfaces/has_disabled.dart'; 7 | import 'package:angular_components/model/menu/menu_item_affix.dart'; 8 | import 'package:angular_components/model/ui/has_renderer.dart'; 9 | 10 | /// Base interface for any components that renders a [MenuItemAffix]. 11 | abstract class BaseAffixComponent 12 | implements RendersValue, HasDisabled { 13 | ModelType get value; 14 | } 15 | 16 | /// Properly typed interface of [MenuItemAffix]. 17 | /// 18 | /// Please extend this class instead of [MenuItemAffix] directly. 19 | abstract class BaseMenuItemAffixModel 20 | extends MenuItemAffix> { 21 | const BaseMenuItemAffixModel(); 22 | 23 | @override 24 | ComponentFactory get componentFactory; 25 | } 26 | -------------------------------------------------------------------------------- /angular_components/lib/material_menu/affix/caption_affix.scss: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | @import 'package:angular_components/css/material/material'; 6 | 7 | :host { 8 | color: $mat-light-transparent-black; 9 | display: block; 10 | } 11 | -------------------------------------------------------------------------------- /angular_components/lib/material_menu/affix/icon_affix.scss: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | @import 'package:angular_components/css/material/material'; 6 | 7 | :host { 8 | display: block; 9 | } 10 | 11 | .secondary-icon { 12 | color: $mat-light-transparent-black; 13 | transition: color $mat-transition $mat-transition-standard; 14 | width: $mat-grid * 3; 15 | 16 | &:not(.disabled):hover { 17 | color: $mat-transparent-black; 18 | } 19 | } 20 | 21 | .secondary-icon.hover-icon { 22 | opacity: 0; 23 | } 24 | -------------------------------------------------------------------------------- /angular_components/lib/material_menu/dropdown_menu.html: -------------------------------------------------------------------------------- 1 | 6 | 16 | 17 | 18 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /angular_components/lib/material_menu/menu_item_affix_list.scss: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | @import 'package:angular_components/css/material/material'; 6 | @import 'package:angular_components/material_menu/mixins'; 7 | 8 | :host { 9 | display: flex; 10 | align-items: baseline; 11 | 12 | &:hover { 13 | @include menu-item-affix-hover; 14 | } 15 | 16 | // Dynamically loaded components are not shimmed, hence the need for ::ng-deep. 17 | ::ng-deep .affix:not(:first-child) { 18 | margin-left: $mat-grid-type; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /angular_components/lib/material_menu/menu_popup.html: -------------------------------------------------------------------------------- 1 | 6 | 11 | 12 | 13 | 18 | 26 | 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /angular_components/lib/material_menu/menu_popup.scss: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | @import 'package:angular_components/css/material/material'; 6 | 7 | .item-group-list { 8 | padding: $mat-grid 0; 9 | } 10 | -------------------------------------------------------------------------------- /angular_components/lib/material_menu/menu_root.dart: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | export 'package:angular_components/material_menu/common/menu_root.dart'; 6 | -------------------------------------------------------------------------------- /angular_components/lib/material_progress/material_progress.html: -------------------------------------------------------------------------------- 1 | 6 |
15 |
19 |
22 |
23 | -------------------------------------------------------------------------------- /angular_components/lib/material_radio/_mixins.scss: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | /// Changes the color of the radio button. 6 | /// 7 | /// Optional parameter $modifier is used for changing the color of certain 8 | /// material-radio components rather than all material-radio components. 9 | @mixin material-radio-color( 10 | $primary-color, $focus-indicator-color: $primary-color, $modifier: '') { 11 | ::ng-deep material-radio#{$modifier}:not(.disabled) .icon-container { 12 | &.checked .icon { 13 | color: $primary-color; 14 | } 15 | 16 | .ripple { 17 | color: $focus-indicator-color; 18 | } 19 | 20 | &.focus::after { 21 | background-color: $focus-indicator-color; 22 | } 23 | } 24 | } 25 | 26 | /// Overrides the margin of the content. 27 | @mixin material-radio-content-margin($margin) { 28 | ::ng-deep .content { 29 | margin: $margin; 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /angular_components/lib/material_radio/material_radio.html: -------------------------------------------------------------------------------- 1 | 6 |
10 | 14 | 15 | 16 |
17 |
18 | 19 |
20 | -------------------------------------------------------------------------------- /angular_components/lib/material_radio/material_radio_group.scss: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | :host { 6 | outline: none; 7 | align-items: flex-start; 8 | } 9 | 10 | // We ignored this warning to create a mixin using ::ng-deep in order to 11 | // avoid exposing mixin library to the users when it is not needed. 12 | :host(.no-left-margin) ::ng-deep material-radio { 13 | margin-left: -2px; 14 | } 15 | -------------------------------------------------------------------------------- /angular_components/lib/material_select/_size.scss: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | @import 'package:angular_components/css/material/material'; 6 | 7 | $select-item-padding: $mat-grid * 2; 8 | -------------------------------------------------------------------------------- /angular_components/lib/material_select/activation_handler.dart: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | import 'dart:html'; 6 | 7 | abstract class ActivationHandler { 8 | /// Called when a [value] is activated as a result of [event]. 9 | /// 10 | /// Returns whether or not the activation was handled. 11 | bool handle(UIEvent event, T value); 12 | } 13 | -------------------------------------------------------------------------------- /angular_components/lib/material_select/display_name.dart: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | import 'package:angular/angular.dart'; 6 | import 'package:angular_components/model/ui/display_name.dart'; 7 | import 'package:angular_components/model/ui/has_renderer.dart'; 8 | 9 | /// Add this directive to any [SelectionContainer] or [SelectionItem] 10 | /// component to render [HasUIDisplayName] objects. 11 | @Directive(selector: '[displayNameRenderer]') 12 | void displayNameRendererDirective(HasRenderer hasRenderer) { 13 | if (hasRenderer != null) hasRenderer.itemRenderer = _displayNameRenderer; 14 | } 15 | 16 | final _displayNameRenderer = 17 | (dynamic item) => (item as HasUIDisplayName).uiDisplayName; 18 | -------------------------------------------------------------------------------- /angular_components/lib/material_select/handles_aria.dart: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | /// Custom dropdown item component implements this to indicate that it will 6 | /// handle aria related tasks by itself. 7 | /// 8 | /// If a custom widget implements this interface, then the parent 9 | /// will no longer generate a custom id attribute 10 | /// or set the aria role = "option". Instead, the custom component is expected 11 | /// to handle the following tasks by itself: 12 | /// - set role = "option" 13 | /// - generate a unique id for itself, using the parent's ActiveItemModel 14 | /// - set aria-selected=true, whenever it becomes selected. 15 | /// 16 | /// Primary use cases for implementing interface is to enable the ability to 17 | /// do custom aria-describedby, or other such a11y related behaviors. 18 | class HandlesAria {} 19 | -------------------------------------------------------------------------------- /angular_components/lib/material_select/material_dropdown_select.scss: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | @import 'package:angular_components/material_select/mixins'; 6 | @import 'package:angular_components/material_list/mixins'; 7 | 8 | :host { 9 | display: inline-flex; 10 | } 11 | 12 | .options-list { 13 | display: flex; 14 | flex-direction: column; 15 | flex: 1 0 auto; 16 | outline: none; 17 | 18 | &:focus { 19 | // This is a workaround for scrolling bug: 20 | // https://bugs.chromium.org/p/chromium/issues/detail?id=909097 21 | border-bottom: solid 1px transparent; 22 | // compensate for the border change. 23 | padding-bottom: 15px; 24 | } 25 | 26 | .options-wrapper { 27 | flex-direction: column; 28 | 29 | [label] { 30 | @include select-item-padding; 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /angular_components/lib/material_select/material_select.scss: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | :host, 6 | material-list, 7 | .options-wrapper, 8 | div[group] { 9 | display: inline-flex; 10 | flex-direction: column; 11 | } 12 | 13 | material-list, 14 | div[group] { 15 | flex: 1 0 auto; 16 | flex-direction: column; 17 | } 18 | -------------------------------------------------------------------------------- /angular_components/lib/material_select/material_select_dropdown_item.scss: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | @import 'package:angular_components/material_select/mixins'; 6 | @import 'package:angular_components/css/material/material'; 7 | @import 'package:angular_components/material_list/mixins'; 8 | 9 | :host { 10 | @include list-item-base(); 11 | @include select-item-base(); 12 | 13 | display: flex; 14 | align-items: center; 15 | transition: background; 16 | color: $mat-transparent-black; 17 | cursor: pointer; 18 | 19 | &.disabled { 20 | color: $mat-lighter-transparent-black; 21 | cursor: default; 22 | } 23 | 24 | &.hidden { 25 | display: none; 26 | } 27 | } 28 | 29 | .check-container { 30 | display: inline-block; 31 | width: $mat-grid * 5; 32 | } 33 | 34 | .dynamic-item { 35 | flex-grow: 1; 36 | width: 100%; 37 | } 38 | 39 | :host-context([dir="rtl"]) { 40 | @include list-item-base-rtl; 41 | } 42 | 43 | -------------------------------------------------------------------------------- /angular_components/lib/material_select/material_select_item.scss: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | @import 'package:angular_components/material_select/mixins'; 6 | @import 'package:angular_components/css/material/material'; 7 | @import 'package:angular_components/material_list/mixins'; 8 | 9 | :host { 10 | @include list-item-button(); 11 | @include select-item-base(); 12 | outline: none; 13 | } 14 | 15 | .check-container { 16 | display: inline-block; 17 | width: $mat-grid * 5; 18 | } 19 | 20 | .dynamic-item { 21 | flex-grow: 1; 22 | } 23 | -------------------------------------------------------------------------------- /angular_components/lib/material_select/material_select_searchbox.html: -------------------------------------------------------------------------------- 1 | 6 | 14 | 15 | -------------------------------------------------------------------------------- /angular_components/lib/material_select/material_select_searchbox.scss: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | @import 'package:angular_components/css/material/material'; 6 | @import 'package:angular_components/material_input/mixins'; 7 | 8 | .searchbox-input { 9 | @include input-leading-glyph-color($mat-grey-400); 10 | 11 | width: 100%; 12 | padding: 0; 13 | } 14 | -------------------------------------------------------------------------------- /angular_components/lib/material_spinner/_mixins.scss: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | // Changes the border-width of the spinner so it appears thicker or thinner. 6 | @mixin material-spinner-thickness($stroke-width) { 7 | ::ng-deep .circle::before { 8 | border-width: $stroke-width; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /angular_components/lib/material_spinner/material_spinner.dart: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | import 'package:angular/angular.dart'; 6 | 7 | /// A circular spinner for an indeterminate amount of time following the 8 | /// Material Spec for Progress & Activity. 9 | /// 10 | /// See . 11 | /// 12 | /// To change the color of the spinner, change the `border-color` in CSS: 13 | /// 14 | /// material-spinner { 15 | /// border-color: $mat-red; 16 | /// } 17 | @Component( 18 | selector: 'material-spinner', 19 | templateUrl: 'material_spinner.html', 20 | styleUrls: ['material_spinner.scss.css'], 21 | changeDetection: ChangeDetectionStrategy.OnPush, 22 | ) 23 | class MaterialSpinnerComponent {} 24 | -------------------------------------------------------------------------------- /angular_components/lib/material_spinner/material_spinner.html: -------------------------------------------------------------------------------- 1 | 6 |
7 |
8 |
9 |
10 |
11 | -------------------------------------------------------------------------------- /angular_components/lib/material_stepper/common.dart: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | const horizontal = 'horizontal'; 6 | const vertical = 'vertical'; 7 | const sizeDefault = 'default'; 8 | const sizeMini = 'mini'; 9 | const all = 'all'; 10 | const backwards = 'backwards'; 11 | const none = 'none'; 12 | 13 | const orientations = [horizontal, vertical]; 14 | 15 | const sizes = [sizeDefault, sizeMini]; 16 | 17 | const jumps = [all, backwards, none]; 18 | -------------------------------------------------------------------------------- /angular_components/lib/material_tab/fixed_material_tab_strip.html: -------------------------------------------------------------------------------- 1 | 6 | 19 | -------------------------------------------------------------------------------- /angular_components/lib/material_tab/material_tab.scss: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | @import 'package:angular_components/css/material/material'; 6 | @import 'package:angular_components/css/material/shadow'; 7 | 8 | :host { 9 | display: flex; 10 | } 11 | 12 | :host:focus { 13 | outline: none; 14 | } 15 | 16 | :host(.material-tab) { 17 | padding: $mat-grid * 2; 18 | @include shadow-elevation(); 19 | } 20 | 21 | .tab-content { 22 | display: flex; 23 | flex: 0 0 100%; 24 | width: 100%; 25 | } 26 | -------------------------------------------------------------------------------- /angular_components/lib/material_tab/material_tab_panel.html: -------------------------------------------------------------------------------- 1 | 6 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /angular_components/lib/material_tab/material_tab_panel.scss: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | :host { 6 | display: block; 7 | 8 | &[centerStrip] > material-tab-strip { 9 | margin: 0 auto; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /angular_components/lib/material_tree/material_tree.dart: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | export 'package:angular_components/src/material_tree/group/material_tree_group.dart' 6 | show materialTreeLeftPaddingToken; 7 | export 'package:angular_components/src/material_tree/material_tree_dropdown.dart'; 8 | export 'package:angular_components/src/material_tree/material_tree_expand_state.dart'; 9 | export 'package:angular_components/src/material_tree/material_tree_impl.dart'; 10 | export 'package:angular_components/src/material_tree/material_tree_rendering_options.dart'; 11 | -------------------------------------------------------------------------------- /angular_components/lib/mixins/track_layout_changes.dart: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | import 'package:angular/angular.dart'; 6 | 7 | /// Mixin for trackLayoutChanges property pass through to material popup to 8 | /// avoid duplicate code in multiple components. 9 | class TrackLayoutChangesMixin { 10 | /// Sets whether the suggestion list scrolls with the input box. 11 | /// 12 | /// This is a pass through property, as defined in [PopupInterface]. 13 | @Input() 14 | bool trackLayoutChanges = true; 15 | } 16 | -------------------------------------------------------------------------------- /angular_components/lib/model/action/async_action.dart: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | export 'package:angular_components/src/model/action/async_action.dart'; 6 | export 'package:angular_components/src/model/action/async_action_controller.dart'; 7 | export 'package:angular_components/src/model/action/delegating_async_action.dart'; 8 | -------------------------------------------------------------------------------- /angular_components/lib/model/collection/labeled_list.dart: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | import 'package:collection/collection.dart' as collection; 6 | import 'package:angular_components/model/ui/display_name.dart'; 7 | 8 | /// Returns a non-null label. 9 | typedef LabelFunction = String Function(); 10 | 11 | /// A list with an optional label. 12 | class LabeledList extends collection.DelegatingList 13 | implements HasUIDisplayName { 14 | final LabelFunction _labelFcn; 15 | 16 | bool get hasLabel => _labelFcn != null; 17 | 18 | @override 19 | String get uiDisplayName => _labelFcn != null ? _labelFcn() : null; 20 | 21 | LabeledList(List items, [this._labelFcn]) : super(items); 22 | 23 | LabeledList.withLabelFunction(List items, [LabelFunction labelFcn]) 24 | : this(items, labelFcn); 25 | 26 | LabeledList.withLabel(List items, [String label]) 27 | : this(items, label != null ? (() => label) : null); 28 | } 29 | -------------------------------------------------------------------------------- /angular_components/lib/model/math/box.dart: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | /// Class for representing a box. 6 | /// 7 | /// A box is specified as a top, right, bottom, and left. A box is useful for 8 | /// representing margins and padding. 9 | class Box { 10 | final int top; 11 | final int right; 12 | final int bottom; 13 | final int left; 14 | 15 | const Box({this.top = 0, this.right = 0, this.bottom = 0, this.left = 0}); 16 | } 17 | -------------------------------------------------------------------------------- /angular_components/lib/model/ui/accepts_width.dart: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | /// Interface for setting widgets programatically. 6 | /// Preset width, 1 through 5. By default, width #2 is used. 7 | /// Each width multiplies the base block width (64px on desktop and tablet) by 8 | /// [1.5, 3, 5, 6, 7], respectively to obtain a predictable width. 9 | /// Set to 0 to have the list expand to fit its content. 10 | /// Note: The spec clearly lays out predefined list sizes so use 11 | /// the default, expanding size, sparingly. 12 | abstract class AcceptsWidth { 13 | set width(dynamic val); 14 | } 15 | -------------------------------------------------------------------------------- /angular_components/lib/model/ui/async_display_name.dart: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | import 'dart:async'; 6 | 7 | /// All implementations of ComparisionPredicate that need asynchronous display 8 | /// names must implement HasAsyncDisplayName. 9 | abstract class HasAsyncDisplayName { 10 | /// A future that resolves when a display name is available for rendering. 11 | /// For example, when filtering by an identifier, an asynchronous formatter 12 | /// could fetch relevant data from API to format the identifier. 13 | Future get asyncDisplayName; 14 | } 15 | -------------------------------------------------------------------------------- /angular_components/lib/model/ui/has_factory.dart: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | // This file is separate from has_renderer.dart so it doesn't add the angular 6 | // dependency and transitively 'dart:html', which doesn't work in a simple 7 | // dart_test. 8 | import 'package:angular/angular.dart' show ComponentFactory; 9 | 10 | import 'has_renderer.dart'; 11 | 12 | export 'has_renderer.dart'; 13 | 14 | /// Defines a method that returns a factory to render the Item. The component 15 | /// created must implement [RendersValue]. 16 | typedef FactoryRenderer = ComponentFactory Function( 17 | I item); 18 | 19 | /// HasFactoryRenderer defines a method that takes in an item and returns the 20 | /// factory to use to render the item. 21 | abstract class HasFactoryRenderer { 22 | FactoryRenderer factoryRenderer; 23 | } 24 | -------------------------------------------------------------------------------- /angular_components/lib/model/ui/highlight_provider.dart: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | import 'package:angular_components/model/ui/highlighted_text_model.dart'; 6 | 7 | abstract class HighlightProvider { 8 | List highlightOption(Object value); 9 | } 10 | -------------------------------------------------------------------------------- /angular_components/lib/model/ui/item_sorter.dart: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | import 'dart:collection'; 6 | 7 | import 'package:angular_components/model/ui/has_renderer.dart'; 8 | 9 | /// Returns a new list of items sorted according to the string obtained from 10 | /// [itemRenderer]. 11 | /// 12 | /// [itemRenderer] should return a unique string representation for each item. 13 | List sortItems(ItemRenderer itemRenderer, Iterable items, 14 | {bool ignoreCase = false}) { 15 | // TODO(google): Use new SplayTreeMap.fromIterable(...) when 16 | // generic constructors becomes available. 17 | var itemsMap = SplayTreeMap(); 18 | if (ignoreCase) { 19 | for (T item in items) { 20 | itemsMap[itemRenderer(item).toLowerCase()] = item; 21 | } 22 | } else { 23 | for (T item in items) { 24 | itemsMap[itemRenderer(item)] = item; 25 | } 26 | } 27 | return itemsMap.values.toList(); 28 | } 29 | -------------------------------------------------------------------------------- /angular_components/lib/model/ui/template_support.dart: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | import 'package:angular/angular.dart'; 6 | 7 | /// Function for use by NgFor for optionGroup to avoid recreating the 8 | /// DOM for the optionGroup. 9 | final TrackByFn indexIdentityFn = (num index, dynamic _) => index; 10 | -------------------------------------------------------------------------------- /angular_components/lib/model/ui/toggle.dart: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | /// Has a binary state that may be toggled on or off. 6 | /// 7 | /// An example is a checkbox (isChecked) or an expansion panel (isExpanded). 8 | abstract class Toggleable { 9 | bool isOn = false; 10 | 11 | void toggle() { 12 | isOn = !isOn; 13 | } 14 | } 15 | 16 | /// Controls a [Toggleable], typically a Component or Directive. 17 | abstract class Toggler { 18 | set toggleable(Toggleable toggleable); 19 | } 20 | -------------------------------------------------------------------------------- /angular_components/lib/reorder_list/reorder_events.dart: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | /// An event data emitted after single drag element is dropped. 6 | class ReorderEvent { 7 | final int sourceIndex; 8 | final int destIndex; 9 | 10 | ReorderEvent(this.sourceIndex, this.destIndex); 11 | } 12 | 13 | /// An event data emitted when [multiSelect] is set to true. 14 | /// 15 | /// (Even if only one item is dragged). 16 | class MultiReorderEvent extends ReorderEvent { 17 | /// All the selected items indexes before their repositioning. 18 | final List sourceIndexes; 19 | 20 | MultiReorderEvent(this.sourceIndexes, int destIndex) 21 | : super(sourceIndexes[0], destIndex); 22 | } 23 | 24 | /// An event to represent each selection change. 25 | class ItemSelectionEvent { 26 | /// The newly selected indexes. 27 | final List selectedIndexes; 28 | 29 | ItemSelectionEvent(List indexes) 30 | : selectedIndexes = List.unmodifiable(indexes); 31 | } 32 | -------------------------------------------------------------------------------- /angular_components/lib/reorder_list/reorder_list.html: -------------------------------------------------------------------------------- 1 | 6 | 7 |
8 | 9 |
10 | -------------------------------------------------------------------------------- /angular_components/lib/reorder_list/reorder_list.scss: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | @import 'package:angular_components/reorder_list/mixins'; 6 | 7 | :host { 8 | display: block; 9 | 10 | &.vertical { 11 | position: relative; 12 | } 13 | 14 | // Prevent selecting text inside dragging area. 15 | > [draggable] { 16 | // Required for old WebKit 17 | -webkit-user-drag: element; 18 | user-select: none; 19 | } 20 | 21 | &.multiselect { 22 | .item-selected { 23 | outline: none; 24 | border: $item-border-width $item-border-style $item-border-color; 25 | } 26 | } 27 | } 28 | 29 | .reorder-list-dragging-active { 30 | cursor: move; 31 | } 32 | 33 | .placeholder { 34 | position: absolute; 35 | z-index: -1; 36 | 37 | &.hidden { 38 | display: none; 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /angular_components/lib/scorecard/scorecard.html: -------------------------------------------------------------------------------- 1 | 6 | 7 |
{{label}}
8 |
{{value}}
9 | {{suggestionBefore}} 10 | 11 | 15 | 16 | &ngsp;{{description}}&ngsp; 17 | 18 | 19 | {{suggestionAfter}} 20 | 21 | -------------------------------------------------------------------------------- /angular_components/lib/simple_html/simple_html.scss: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | @import 'package:angular_components/css/material/material'; 6 | 7 | // Push the acx-link style down into the inner HTML. This produces the behaviour 8 | // that most users would expect: links in the content are formatted in the 9 | // standard ACX way. 10 | :host { 11 | @include mat-link-deep(); 12 | } 13 | -------------------------------------------------------------------------------- /angular_components/lib/src/laminate/enums/base.dart: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | /// A function that sets [propertyName] to [propertyValue]. 6 | typedef SetPropertyFn = void Function( 7 | String propertyName, dynamic propertyValue); 8 | 9 | abstract class ElementStyleEnum { 10 | /// Applies this enum using [setProperty]. 11 | void apply(SetPropertyFn setProperty); 12 | } 13 | -------------------------------------------------------------------------------- /angular_components/lib/src/laminate/popup/popup_ref.dart: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | import 'dart:async'; 6 | 7 | /// A handle to manipulate an existing popup. 8 | abstract class PopupRef { 9 | /// Whether the popup is currently visible. 10 | /// 11 | /// **NOTE**: This will not change until after open or close have completed. 12 | /// 13 | /// See [onVisibleChanged] for a stream of changes. 14 | bool get isVisible; 15 | 16 | /// An event stream that fires when the popup's visibility changes. 17 | /// 18 | /// **NOTE**: This will occur **after** open or close have completed. 19 | Stream get onVisibleChanged; 20 | } 21 | -------------------------------------------------------------------------------- /angular_components/lib/src/material_datepicker/calendar/day.dart: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | part of '../../../material_datepicker/calendar.dart'; 6 | 7 | /// A calendar day. 8 | class CalendarDay { 9 | final Date date; 10 | 11 | List _classes; 12 | 13 | CalendarDay(this.date, CalendarState state) { 14 | updateClasses(state); 15 | } 16 | 17 | void updateClasses(CalendarState state) { 18 | _classes = state != null ? _boundaryClasses(state).toList() : []; 19 | } 20 | 21 | int get day => date.day; 22 | 23 | List get classes => _classes; 24 | 25 | Iterable _boundaryClasses(CalendarState state) => state.selections 26 | .where((r) => r.start == date || r.end == date) 27 | .expand((r) => ['boundary', 'boundary-${r.id}']); 28 | } 29 | -------------------------------------------------------------------------------- /angular_components/lib/src/material_datepicker/closedhand.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/angulardart/angular_components/1f7d1a0d16fc76417c84cc8ecf747eb6024644fe/angular_components/lib/src/material_datepicker/closedhand.cur -------------------------------------------------------------------------------- /angular_components/lib/src/material_datepicker/comparison_range_editor.html: -------------------------------------------------------------------------------- 1 | 6 |
7 | 11 | 12 |
13 | 14 |
15 | {{comparisonOptionMsg(option)}} 19 |
20 | -------------------------------------------------------------------------------- /angular_components/lib/src/material_datepicker/comparison_range_editor.scss: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | @import 'package:angular_components/css/material/material'; 6 | @import 'package:angular_components/material_datepicker/constants'; 7 | 8 | :host { 9 | display: flex; 10 | flex-direction: column; 11 | } 12 | 13 | .comparison-toggle-section { 14 | display: flex; 15 | justify-content: space-between; 16 | align-items: center; 17 | flex-grow: 1; 18 | height: 4 * $mat-grid; 19 | padding: 0 (2 * $mat-grid); 20 | } 21 | 22 | .comparison-toggle { 23 | display: inline-flex; 24 | width: 100%; 25 | } 26 | 27 | .comparison-option-dropdown { 28 | flex-grow: 1; 29 | display: inline-block; 30 | padding: 0 $mat-grid; 31 | position: relative; 32 | } 33 | 34 | material-select-item { 35 | font-size: inherit; 36 | } 37 | 38 | .fake-popup { 39 | background-color: $mat-white; 40 | left: 0; 41 | position: absolute; 42 | top: 0; 43 | z-index: 1; 44 | } 45 | -------------------------------------------------------------------------------- /angular_components/lib/src/material_datepicker/enum_parsing.dart: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | // Apparently Dart enums don't have any kind of "valueOf" or anything. 6 | /// Fuzzy-parses an enum, given a list of enum values and the string. It's 7 | /// "fuzzy" because it ignores case and treats hyphens and underscores as 8 | /// equivalent (so "single-date" matches "SINGLE_DATE"). 9 | T fuzzyParseEnum(List values, String val) { 10 | var valAsRegex = val 11 | .toUpperCase() 12 | .replaceAll('.', r'\.') 13 | .replaceAll(RegExp(r'[_-]'), r'[-_]'); 14 | var regex = RegExp(valAsRegex + r'$'); 15 | return values.firstWhere((v) => regex.hasMatch(v.toString().toUpperCase())); 16 | } 17 | -------------------------------------------------------------------------------- /angular_components/lib/src/material_datepicker/openhand.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/angulardart/angular_components/1f7d1a0d16fc76417c84cc8ecf747eb6024644fe/angular_components/lib/src/material_datepicker/openhand.cur -------------------------------------------------------------------------------- /angular_components/lib/src/material_datepicker/sequential.dart: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | import 'package:angular_components/model/observable/observable.dart'; 6 | 7 | /// Something that can move to a next/previous element. 8 | /// 9 | /// This is used instead of [BidirectionalIterator] because we need to know 10 | /// whether or not there is a next/prev element, without necessarily moving to 11 | /// the next/prev element. 12 | abstract class Sequential { 13 | /// `true` if there's a next item to advance to. 14 | ObservableView get hasNext; 15 | 16 | /// `true` if there's a previous item to revert to. 17 | ObservableView get hasPrev; 18 | 19 | /// Tries to advance to the next item, and returns it if possible. 20 | T next(); 21 | 22 | /// Tries to revert to the previous item, and returns it if possible. 23 | T prev(); 24 | } 25 | -------------------------------------------------------------------------------- /angular_components/lib/src/material_tooltip/_constants.scss: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | @import 'package:angular_components/css/material/material'; 6 | 7 | $tooltip-border-radius: 2px; 8 | $off-page-offset: $mat-grid * -64; 9 | $tooltip-font-size: 12px; 10 | -------------------------------------------------------------------------------- /angular_components/lib/src/material_tooltip/icon_tooltip.scss: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | @import 'package:angular_components/css/material/material'; 6 | @import 'package:angular_components/theme/mixins'; 7 | 8 | :host { 9 | &:hover, 10 | &:focus { 11 | material-icon { 12 | color: $mat-blue-700; 13 | } 14 | } 15 | 16 | material-icon { 17 | color: $mat-light-transparent-black; 18 | cursor: pointer; 19 | } 20 | 21 | @include acx-theme-dark { 22 | &:hover, 23 | &:focus { 24 | material-icon { 25 | color: $mat-white; 26 | } 27 | } 28 | 29 | material-icon { 30 | color: $mat-white; 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /angular_components/lib/src/material_tree/group/material_tree_group_flat_check.html: -------------------------------------------------------------------------------- 1 | 6 | 15 | 21 | 22 | 25 | {{getOptionAsText(option)}} 26 | 27 | 28 | -------------------------------------------------------------------------------- /angular_components/lib/src/material_tree/group/material_tree_group_flat_check.scss: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | @import 'package:angular_components/material_list/mixins'; 6 | 7 | material-checkbox { 8 | @include list-item-button; 9 | } 10 | -------------------------------------------------------------------------------- /angular_components/lib/src/material_tree/group/material_tree_group_flat_list.html: -------------------------------------------------------------------------------- 1 | 6 |
7 | 13 | 14 | 17 | {{getOptionAsText(option)}} 18 | 19 |
20 | -------------------------------------------------------------------------------- /angular_components/lib/src/material_tree/group/material_tree_group_flat_list.scss: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | @import 'package:angular_components/material_list/mixins'; 6 | 7 | div { 8 | @include list-item-base; 9 | } 10 | -------------------------------------------------------------------------------- /angular_components/lib/src/material_tree/group/material_tree_group_flat_radio.html: -------------------------------------------------------------------------------- 1 | 6 | 8 | 16 | 22 | 23 | 26 | {{getOptionAsText(option)}} 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /angular_components/lib/src/material_tree/group/material_tree_group_flat_radio.scss: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | @import 'package:angular_components/material_list/mixins'; 6 | 7 | material-radio { 8 | @include list-item-button; 9 | align-items: flex-start; 10 | } 11 | -------------------------------------------------------------------------------- /angular_components/lib/src/material_tree/material_tree_filter.html: -------------------------------------------------------------------------------- 1 | 6 | 16 | 17 | -------------------------------------------------------------------------------- /angular_components/lib/src/material_tree/material_tree_rendering_options.dart: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | import 'package:angular_components/model/selection/selection_options.dart'; 6 | 7 | /// An object to customize material tree rendering. 8 | abstract class MaterialTreeRenderingOptions { 9 | MaterialTreeRenderingOptions(); 10 | 11 | /// checks whether an option group should be expanded. 12 | bool shouldExpand(OptionGroup group, int index); 13 | 14 | /// Returns how many options to show initially and hide the rest behind a 15 | /// "View more" link. 16 | int maxInitialOptionsShown(OptionGroup group, int index); 17 | } 18 | -------------------------------------------------------------------------------- /angular_components/lib/src/model/action/delegating_async_action.dart: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | import 'dart:async'; 6 | 7 | import 'async_action.dart'; 8 | 9 | /// A delegating mixin of the [AsyncAction] class. 10 | abstract class DelegatingAsyncAction implements AsyncAction { 11 | AsyncAction get delegate; 12 | 13 | @override 14 | bool get cancelled => delegate.cancelled; 15 | @override 16 | bool get isDone => delegate.isDone; 17 | @override 18 | Future get onDone => delegate.onDone; 19 | @override 20 | Future get onDefer => delegate.onDefer; 21 | @override 22 | void cancelIf(Future whetherToCancel) => 23 | delegate.cancelIf(whetherToCancel); 24 | @override 25 | void cancel() => delegate.cancel(); 26 | @override 27 | void defer(Future executionDeferral) => 28 | delegate.defer(executionDeferral); 29 | } 30 | -------------------------------------------------------------------------------- /angular_components/lib/src/model/selection/future_selection_options_impl.dart: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | part of angular_components.model.selection.selection_options; 6 | 7 | class _FutureSelectionOptions extends SelectionOptions { 8 | _FutureSelectionOptions(Future>> optionGroupListFuture) 9 | : super([]) { 10 | optionGroupListFuture.then(_setOptions); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /angular_components/lib/src/model/selection/interfaces/parent.dart: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | /// **NOTE**: This library is currently unused and will replace select.dart. 6 | 7 | import 'dart:async'; 8 | 9 | /// Interface implemented by classes that may have nodes with children. 10 | abstract class Parent { 11 | /// Whether the [item] of parent type [P] has child a child entity [C]. 12 | bool hasChildren(P item); 13 | 14 | /// Returns a stream that results in child entity [C] of [parent]. 15 | /// 16 | /// Should throw [StateError] if [hasChildren] for [parent] is `false`. 17 | Stream getChildren(P parent); 18 | } 19 | -------------------------------------------------------------------------------- /angular_components/lib/src/model/selection/radio_group_single_selection_model.dart: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | import 'package:angular_components/model/selection/selection_model.dart'; 6 | 7 | /// Single selection model that always has a value selected 8 | class RadioGroupSingleSelectionModel 9 | extends DelegatingSingleSelectionModel { 10 | RadioGroupSingleSelectionModel([T initialValue]) 11 | : super(SelectionModel.single( 12 | selected: initialValue == null ? null : initialValue)); 13 | 14 | @override 15 | void clear() {} 16 | 17 | @override 18 | bool deselect(T value) => false; 19 | } 20 | -------------------------------------------------------------------------------- /angular_components/lib/src/model/selection/stream_selection_options_impl.dart: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | part of angular_components.model.selection.selection_options; 6 | 7 | class _StreamSelectionOptions extends SelectionOptions { 8 | StreamSubscription _streamSub; 9 | _StreamSelectionOptions(Stream>> optionGroupListStream) 10 | : super([]) { 11 | _streamSub = optionGroupListStream.listen(_setOptions); 12 | } 13 | 14 | @override 15 | void dispose() { 16 | _streamSub?.cancel(); 17 | super.dispose(); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /angular_components/lib/src/utils/angular/scroll_host/scroll_host_event_impl.dart: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | import 'package:angular_components/utils/angular/scroll_host/interface.dart'; 6 | 7 | class ScrollHostEventImpl implements ScrollHostEvent { 8 | @override 9 | final int deltaX; 10 | @override 11 | final int deltaY; 12 | 13 | ScrollHostEventImpl(this.deltaX, this.deltaY); 14 | } 15 | -------------------------------------------------------------------------------- /angular_components/lib/theme/_mixins.scss: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | 6 | /// Nests styles for dark theme inside the dark theme class. 7 | /// 8 | /// Use in conjunction with [AcxTheme#theme]: 9 | /// 10 | /// code: 11 | /// 12 | /// acxTheme.theme(myElementRef); 13 | /// 14 | /// sass: 15 | /// 16 | /// :host { 17 | /// @include acx-theme-dark { 18 | /// # set styles for dark theme 19 | /// } 20 | /// } 21 | @mixin acx-theme-dark() { 22 | &.acx-theme-dark { 23 | @content 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /angular_components/lib/theme/module.dart: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | import 'package:angular/angular.dart'; 6 | 7 | /// Sets dark mode for components which support it. 8 | const darkThemeToken = OpaqueToken('acxDarkTheme'); 9 | -------------------------------------------------------------------------------- /angular_components/lib/utils/angular/id/id.dart: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | import 'package:angular/angular.dart'; 6 | import 'package:angular_components/utils/id_generator/id_generator.dart'; 7 | 8 | /// A directive that assign a unique id to its element. 9 | /// 10 | /// To access this id in the template, do the following 11 | /// 12 | ///
13 | /// 14 | /// Then idRef.id can be used to read the assigned id 15 | @Directive( 16 | selector: '[autoId]', 17 | exportAs: 'autoId', 18 | ) 19 | class AutoIdDirective { 20 | @HostBinding('attr.id') 21 | final String id; 22 | 23 | AutoIdDirective( 24 | @Optional() IdGenerator idGenerator, @Attribute('id') String existingId) 25 | : id = existingId ?? 26 | ((idGenerator ?? SequentialIdGenerator.fromUUID()).nextId()); 27 | } 28 | -------------------------------------------------------------------------------- /angular_components/lib/utils/angular/managed_zone/interface.dart: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | export 'package:angular_components/src/utils/angular/managed_zone/managed_zone.dart' 6 | show ManagedZone, ManagedZoneBase; 7 | -------------------------------------------------------------------------------- /angular_components/lib/utils/angular/reference/reference.dart: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | import 'package:angular/angular.dart'; 6 | 7 | // TODO(google): Remove this once use of '#' in a template is either 8 | // consistent, or has a way to declare specifically what you want - e.g. the 9 | // component instance or the element ref. Today, using # on an HTML element will 10 | // be an elementRef, but # on a component will be a component instance. 11 | 12 | /// Place on an element or component to expose the [ElementRef] as 'ref'. 13 | /// 14 | /// Example usage: 15 | /// 16 | /// 17 | @Directive( 18 | selector: '[ref]', 19 | exportAs: 'ref', 20 | ) 21 | class ReferenceDirective { 22 | final ElementRef elementRef; 23 | 24 | ReferenceDirective(this.elementRef); 25 | } 26 | -------------------------------------------------------------------------------- /angular_components/lib/utils/angular/scroll_host/interface.dart: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | export 'package:angular_components/src/utils/angular/scroll_host/gestures.dart'; 6 | export 'package:angular_components/src/utils/angular/scroll_host/scroll_host_interface.dart'; 7 | export 'package:angular_components/src/utils/angular/scroll_host/scroll_observer.dart'; 8 | -------------------------------------------------------------------------------- /angular_components/lib/utils/async/async.dart: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | export 'package:angular_components/src/utils/async/async_update_scheduler.dart'; 6 | export 'package:angular_components/src/utils/async/async_where.dart'; 7 | export 'package:angular_components/src/utils/async/debounce_stream.dart'; 8 | export 'package:angular_components/src/utils/async/disposable_future.dart'; 9 | export 'package:angular_components/src/utils/async/lazy_stream_controller.dart'; 10 | export 'package:angular_components/src/utils/async/priority_stream_iterator.dart'; 11 | export 'package:angular_components/src/utils/async/simple_stream.dart'; 12 | export 'package:angular_components/src/utils/async/throttle_stream.dart'; 13 | export 'package:angular_components/src/utils/async/zoned_async.dart'; 14 | -------------------------------------------------------------------------------- /angular_components/lib/utils/browser/window/new_window_opener.dart: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | import 'dart:html'; 6 | 7 | import 'package:angular/angular.dart'; 8 | 9 | /// Utility class to allow opening a URL in a new window. 10 | @Injectable() 11 | class NewWindowOpener { 12 | void open(String url) => openInNewWindow(url); 13 | } 14 | 15 | /// Opens the given url in a new window. 16 | /// 17 | /// Gives a hint to Chrome that it should open the given link in a separate 18 | /// process. 19 | void openInNewWindow(String url) { 20 | var anchorElement = AnchorElement(href: url) 21 | ..rel = 'noopener noreferrer' 22 | ..target = '_blank'; 23 | document.body.append(anchorElement); 24 | anchorElement.click(); 25 | anchorElement.remove(); 26 | } 27 | -------------------------------------------------------------------------------- /angular_components/lib/utils/color/material_chart_colors.dart: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | import 'material.dart'; 6 | 7 | export 'material.dart'; 8 | 9 | const chartingPalette = [ 10 | blue500, 11 | red500, 12 | yellow500, 13 | green500, 14 | purple400, 15 | cyan600, 16 | deepOrange400, 17 | lime800, 18 | indigo400, 19 | pink300, 20 | teal700, 21 | pink700 22 | ]; 23 | -------------------------------------------------------------------------------- /angular_components/lib/utils/keyboard/global_escape_directive.dart: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | import 'dart:async'; 6 | import 'dart:html'; 7 | 8 | import 'package:angular/angular.dart'; 9 | 10 | /// Directive to listen to the escape key globally. 11 | /// 12 | /// Useful for things like having a dialog close when the escape key is pressed 13 | /// even when the dialog is not focused. 14 | /// 15 | /// WARNING: If listeners to the onEscape stream are on the page but hidden, 16 | /// they will still be registered to the stream. To avoid that situation, use 17 | /// this directive only within a deferredContent directive. 18 | @Directive(selector: '[globalEscape]') 19 | class GlobalEscapeDirective { 20 | final Window _window; 21 | 22 | /// Event triggered when the escape key is pressed. 23 | @Output() 24 | Stream get globalEscape => 25 | _window.onKeyUp.where((event) => event.keyCode == KeyCode.ESC); 26 | 27 | GlobalEscapeDirective(this._window); 28 | } 29 | -------------------------------------------------------------------------------- /angular_components/lib/utils/keyboard/keyboard.dart: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | import 'dart:html'; 6 | 7 | /// this utility method will check that keyboard even is happening 8 | /// only with list of modifiers passed as true 9 | /// i.e. if called (modifiersKeysFor, shiftKey : true) 10 | /// it will return true if shift is pressed, 11 | /// but false if both shift and alt are pressed 12 | bool modifiersKeysFor(KeyboardEvent event, 13 | {bool shiftKey = false, 14 | bool ctrlKey = false, 15 | bool altKey = false, 16 | bool metaKey = false}) { 17 | return (event.shiftKey == shiftKey) && 18 | (event.altKey == altKey) && 19 | (event.ctrlKey == ctrlKey) && 20 | (event.metaKey == metaKey); 21 | } 22 | -------------------------------------------------------------------------------- /angular_components/mono_pkg.yaml: -------------------------------------------------------------------------------- 1 | # See https://github.com/google/mono_repo.dart for details 2 | dart: 3 | - 2.14.2 4 | - dev 5 | 6 | stages: 7 | - analyze_and_format_core: 8 | - group: 9 | - format 10 | - analyze: . 11 | dart: 12 | - dev 13 | - group: 14 | - analyze: . 15 | dart: 16 | - 2.14.2 17 | - unit_test: 18 | - group: 19 | - command: ./tool/travis/install_protoc.sh 20 | - test: --run-skipped 21 | 22 | cache: 23 | directories: 24 | - .dart_tool 25 | -------------------------------------------------------------------------------- /angular_components/pubspec.yaml: -------------------------------------------------------------------------------- 1 | name: angular_components 2 | version: 1.0.3 3 | description: > 4 | The official Material Design components for AngularDart. Used at Google in 5 | production apps. 6 | repository: https://github.com/angulardart/angular_components 7 | 8 | environment: 9 | sdk: '>=2.10.5 <3.0.0' 10 | 11 | dependencies: 12 | angular: ^6.0.0 13 | angular_forms: ^3.0.0 14 | async: ^2.1.0 15 | build: ^1.0.0 16 | build_config: ^0.4.0 17 | built_collection: ^4.0.0 18 | collection: ^1.14.10 19 | fixnum: ^0.10.7 20 | intl: ^0.16.0 21 | js: ^0.6.1 22 | logging: ^0.11.2 23 | meta: ^1.0.4 24 | observable: ^0.23.0 25 | protobuf: ^1.0.0 26 | quiver: ^2.0.0 27 | sass_builder: ^2.0.2 28 | 29 | dev_dependencies: 30 | path: ^1.6.1 31 | pedantic: ^1.8.0 32 | test: ^1.0.0 33 | -------------------------------------------------------------------------------- /angular_components/tool/travis/install_protoc.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # Only run externally during presubmits on Travis. 4 | 5 | set -ev 6 | PROTOC_PLUGIN_VERSION="19.0.1" 7 | PROTOC_VERSION="3.13.0" 8 | 9 | if type protoc > /dev/null; then 10 | echo "protoc already installed." 11 | 12 | # Activate dart protoc plugin. 13 | pub global activate protoc_plugin $PROTOC_PLUGIN_VERSION 14 | exit 0 15 | fi 16 | 17 | echo "Installing protoc..." 18 | 19 | # Download protoc. 20 | mkdir $HOME/protoc 21 | pushd $HOME/protoc 22 | wget https://github.com/google/protobuf/releases/download/v$PROTOC_VERSION/protoc-$PROTOC_VERSION-linux-x86_64.zip 23 | unzip protoc-$PROTOC_VERSION-linux-x86_64.zip 24 | popd 25 | 26 | $HOME/protoc/bin/protoc --version 27 | 28 | # Activate dart protoc plugin. 29 | pub global activate protoc_plugin $PROTOC_PLUGIN_VERSION 30 | -------------------------------------------------------------------------------- /angular_gallery/build.yaml: -------------------------------------------------------------------------------- 1 | targets: 2 | $default: 3 | builders: 4 | angular_components|scss_builder: 5 | enabled: True 6 | angular|angular: 7 | generate_for: 8 | exclude: ["lib/**"] 9 | 10 | builders: 11 | angular_gallery: 12 | target: ":angular_gallery" 13 | import: "package:angular_gallery/builders.dart" 14 | builder_factories: [ 15 | galleryAppBuilder, 16 | galleryLibBuilder, 17 | syntaxHighlightBuilder, 18 | ] 19 | build_extensions: { 20 | ".html": [".dart"], 21 | "$web$": ["index.html", "main.dart", "style.scss"]} 22 | auto_apply: dependents 23 | runs_before: ["angular|angular", "angular_components|scss_builder"] 24 | -------------------------------------------------------------------------------- /angular_gallery/lib/builder/syntax_highlight_builder.dart: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | import 'dart:async'; 6 | 7 | import 'package:build/build.dart'; 8 | 9 | import '../src/template_util.dart'; 10 | 11 | /// Generates web/syntax_highlight.scss that contains styles targeting classes 12 | /// for use with highlight.js. https://highlightjs.org 13 | class SyntaxHighlightBuilder extends Builder { 14 | @override 15 | Future build(BuildStep buildStep) async { 16 | final newAssetId = 17 | AssetId(buildStep.inputId.package, 'web/syntax_highlight.scss'); 18 | await writeAsset(buildStep, 19 | 'lib/builder/template/syntax_highlight.scss.mustache', {}, newAssetId); 20 | } 21 | 22 | @override 23 | Map> get buildExtensions => { 24 | r'$web$': ['syntax_highlight.scss'] 25 | }; 26 | } 27 | -------------------------------------------------------------------------------- /angular_gallery/lib/builder/template/gallery_route_library.dart.mustache: -------------------------------------------------------------------------------- 1 | import 'package:angular_router/angular_router.dart'; 2 | 3 | {{# examples }} 4 | import '{{{ dartImport }}}' deferred as {{ name }}; 5 | {{/ examples }} 6 | 7 | import 'home.template.dart' as home; 8 | 9 | /// Route definitions and loaders for each "@GallerySectionConfig" component. 10 | final List galleryRoutes = [ 11 | RouteDefinition( 12 | path: '/', 13 | component: home.HomeViewComponentNgFactory, 14 | useAsDefault: true, 15 | ), 16 | {{# examples }} 17 | RouteDefinition.defer( 18 | path: '{{ name }}', 19 | loader: () async { 20 | await {{ name }}.loadLibrary(); 21 | {{ name }}.initReflector(); 22 | return {{ name }}.{{ component }}NgFactory; 23 | } 24 | ), 25 | {{/ examples }} 26 | ]; 27 | -------------------------------------------------------------------------------- /angular_gallery/lib/builder/template/home.dart.mustache: -------------------------------------------------------------------------------- 1 | import 'package:angular/angular.dart'; 2 | 3 | @Component( 4 | selector: 'home-view', 5 | styleUrls: ['home.scss.css'], 6 | templateUrl: '{{{ htmlTemplateUrl }}}') 7 | class HomeViewComponent {} 8 | -------------------------------------------------------------------------------- /angular_gallery/lib/builder/template/style.scss.mustache: -------------------------------------------------------------------------------- 1 | @import 'package:angular_components/css/material/material'; 2 | 3 | html, body { 4 | height: 100%; 5 | margin: 0; 6 | padding: 0; 7 | width: 100%; 8 | } 9 | 10 | body { 11 | color: $mat-grey-900; 12 | font-family: $mat-font-family; 13 | font-size: $mat-font-size-body; 14 | font-style: normal; 15 | font-variant: normal; 16 | font-weight: normal; 17 | 18 | @include clearfix(); 19 | } 20 | -------------------------------------------------------------------------------- /angular_gallery/lib/gallery/gallery_tokens.dart: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | import 'package:angular/di.dart'; 6 | 7 | const bugUrl = OpaqueToken('bugUrl'); 8 | const sourcecodeUrl = OpaqueToken('sourcecodeUrl'); 9 | -------------------------------------------------------------------------------- /angular_gallery/lib/src/template_util.dart: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | import 'dart:async'; 6 | 7 | import 'package:build/build.dart'; 8 | import 'package:mustache/mustache.dart'; 9 | 10 | /// Writes a [newAssetId] via the provided [buildStep]. 11 | /// 12 | /// The contents of the asset is the result of rendering a mustache template 13 | /// with [mustacheContext]. The provided [templatePath] is assumed to be rooted 14 | /// in this library. 15 | Future writeAsset(BuildStep buildStep, String templatePath, 16 | Map mustacheContext, AssetId newAssetId) async { 17 | final templateId = AssetId('angular_gallery', templatePath); 18 | final mustacheTemplate = Template(await buildStep.readAsString(templateId)); 19 | await buildStep.writeAsString( 20 | newAssetId, mustacheTemplate.renderString(mustacheContext)); 21 | } 22 | -------------------------------------------------------------------------------- /angular_gallery/mono_pkg.yaml: -------------------------------------------------------------------------------- 1 | # See https://github.com/google/mono_repo.dart for details 2 | stages: 3 | - analyze_and_format_core: 4 | - group: 5 | - format 6 | - analyze: --fatal-infos . 7 | dart: 8 | - dev 9 | - group: 10 | - analyze: . 11 | dart: 12 | - 2.14.2 13 | 14 | cache: 15 | directories: 16 | - .dart_tool 17 | -------------------------------------------------------------------------------- /angular_gallery/pubspec.yaml: -------------------------------------------------------------------------------- 1 | name: angular_gallery 2 | publish_to: none 3 | environment: 4 | sdk: '>=2.10.5 <3.0.0' 5 | 6 | dependencies: 7 | angular: ^6.0.0 8 | angular_components: ^1.0.0 9 | angular_forms: ^3.0.0 10 | angular_router: ^2.0.0 11 | build: '>=0.11.1 <2.0.0' 12 | build_config: '>=0.2.6 <0.5.0' 13 | mustache: ^1.0.0 14 | 15 | dependency_overrides: 16 | angular_components: 17 | path: ../angular_components 18 | -------------------------------------------------------------------------------- /angular_gallery_section/build.yaml: -------------------------------------------------------------------------------- 1 | targets: 2 | $default: 3 | builders: 4 | angular|angular: 5 | generate_for: 6 | exclude: [ 7 | "lib/*.dart", 8 | "lib/annotation/**", 9 | "lib/builder/**", 10 | "lib/src/**", 11 | "lib/visitors/**", 12 | ] 13 | angular_components|scss_builder: 14 | enabled: True 15 | angular_gallery|angular_gallery: 16 | enabled: False 17 | 18 | builders: 19 | angular_gallery_section: 20 | target: ':angular_gallery_section' 21 | import: 'package:angular_gallery_section/builder.dart' 22 | builder_factories: [ 23 | 'galleryInfoBuilder', 24 | 'componentApiBuilder', 25 | 'gallerySectionBuilder' 26 | ] 27 | build_extensions: { 28 | ".dart": [".gallery_info.json", ".api.dart"], 29 | "$lib$": ["gallery_section.dart", "gallery_section_summary.json"]} 30 | auto_apply: dependents 31 | runs_before: ["angular|angular", "angular_components|scss_builder"] 32 | -------------------------------------------------------------------------------- /angular_gallery_section/lib/builder/template/style.css.mustache: -------------------------------------------------------------------------------- 1 | html, 2 | body { 3 | height: 100%; 4 | margin: 0; 5 | padding: 0; 6 | width: 100%; 7 | direction: {{direction}}; 8 | } 9 | 10 | body { 11 | font-family: Roboto, "Helvetica Neue", Arial, Helvetica, sans-serif; 12 | } 13 | 14 | body[dir="rtl"] { 15 | font-family: Noto Naskh Arabic UI, Roboto, "Helvetica Neue", Arial, Helvetica, sans-serif; 16 | } 17 | 18 | -------------------------------------------------------------------------------- /angular_gallery_section/lib/components/content/delayed_content.html: -------------------------------------------------------------------------------- 1 | 6 | 8 |
9 | 10 |
11 | -------------------------------------------------------------------------------- /angular_gallery_section/lib/components/content/delayed_content.scss: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | :host { 6 | flex-basis: 100%; 7 | } 8 | 9 | material-progress { 10 | display: block; 11 | } 12 | -------------------------------------------------------------------------------- /angular_gallery_section/lib/components/content/named_content.dart: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | import 'package:angular/angular.dart'; 6 | 7 | /// Simple pass-thru content container which announces its construction and 8 | /// displays a label (in a

tag) above the content. 9 | /// Only use this component in demos. 10 | /// 11 | /// __Attributes__ 12 | /// `name: string` -- Name of component. 13 | @Component( 14 | selector: 'named-content', 15 | template: r''' 16 |

{{label}}

17 | ''', 18 | // TODO(google): Change preserveWhitespace to false to improve codesize. 19 | preserveWhitespace: true, 20 | ) 21 | class NamedContentComponent { 22 | String get label => '$_componentName Content'; 23 | final String _componentName; 24 | NamedContentComponent(@Attribute('name') this._componentName) { 25 | print('Named Component "$_componentName" instantiated'); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /angular_gallery_section/lib/components/gallery_component/_mixins.scss: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | /// A mixin to customize the color scheme of the gallery component. 6 | @mixin gallery-component-theme($primary-color) { 7 | ::ng-deep .toc { 8 | border-left-color: $primary-color; 9 | } 10 | 11 | ::ng-deep h2, 12 | .doc ::ng-deep strong, 13 | ::ng-deep .property-type { 14 | color: $primary-color; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /angular_gallery_section/mono_pkg.yaml: -------------------------------------------------------------------------------- 1 | # See https://github.com/google/mono_repo.dart for details 2 | stages: 3 | - analyze_and_format_core: 4 | - group: 5 | - format 6 | - analyze: --fatal-infos . 7 | dart: 8 | - dev 9 | - group: 10 | - analyze: . 11 | dart: 12 | - 2.14.2 13 | 14 | cache: 15 | directories: 16 | - .dart_tool 17 | -------------------------------------------------------------------------------- /angular_gallery_section/pubspec.yaml: -------------------------------------------------------------------------------- 1 | name: angular_gallery_section 2 | publish_to: none 3 | 4 | environment: 5 | sdk: '>=2.10.5 <3.0.0' 6 | 7 | dependencies: 8 | analyzer: ^0.40.0 9 | angular: ^6.0.0 10 | angular_components: ^1.0.0 11 | angular_gallery: 12 | path: ../angular_gallery 13 | build: '>=0.11.1 <2.0.0' 14 | build_config: '>=0.2.6 <0.5.0' 15 | glob: ^1.1.5 16 | markdown: ^3.0.0 17 | mustache: ^1.0.0 18 | path: ^1.6.1 19 | sass: '>=1.15.3 <2.0.0' 20 | 21 | dependency_overrides: 22 | angular_components: 23 | path: ../angular_components 24 | -------------------------------------------------------------------------------- /examples/angular_components_example/lib/gallery/home.scss: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | @import 'package:angular_components/css/material/material'; 6 | @import 'package:angular_components/css/material/shadow'; 7 | 8 | :host { 9 | display: block; 10 | padding: $mat-grid * 4; 11 | max-width: $mat-grid * 90; 12 | 13 | h1 { 14 | @include mat-font-display-1(); 15 | color: $mat-blue; 16 | } 17 | 18 | h2 { 19 | @include mat-font-headline(); 20 | } 21 | 22 | h3 { 23 | @include mat-font-subhead(); 24 | } 25 | 26 | .links { 27 | list-style-type: none; 28 | 29 | li > a { 30 | @include mat-link(); 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /examples/angular_components_example/mono_pkg.yaml: -------------------------------------------------------------------------------- 1 | # See https://github.com/google/mono_repo.dart for details 2 | dart: 3 | - 2.14.2 4 | - dev 5 | 6 | stages: 7 | - build: 8 | - group: 9 | - command: dart pub run build_runner build web 10 | - command: dart pub run build_runner build web --release 11 | 12 | cache: 13 | directories: 14 | - .dart_to -------------------------------------------------------------------------------- /examples/app_layout_example/build.yaml: -------------------------------------------------------------------------------- 1 | targets: 2 | $default: 3 | builders: 4 | angular_components|scss_builder: 5 | enabled: True 6 | angular_gallery|angular_gallery: 7 | enabled: False 8 | angular_gallery_section|angular_gallery_section: 9 | options: 10 | staticImageServer: "https://raw.githubusercontent.com" 11 | -------------------------------------------------------------------------------- /examples/app_layout_example/lib/app_layout_example.scss: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | @import 'package:angular_components/app_layout/mixins'; 6 | 7 | :host { 8 | border: 1px solid; 9 | display: block; 10 | height: 400px; 11 | margin: 16px; 12 | overflow: hidden; 13 | position: relative; 14 | width: 800px; 15 | } 16 | 17 | .controls { 18 | align-items: flex-start; 19 | display: flex; 20 | flex-direction: column; 21 | } 22 | 23 | .custom-width { 24 | @include mat-drawer-width(50%); 25 | @include mat-temporary-drawer-width(50%); 26 | } 27 | -------------------------------------------------------------------------------- /examples/app_layout_example/lib/stacking_drawer_example.scss: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | @import 'package:angular_components/app_layout/mixins'; 6 | 7 | .drawer1 { 8 | @include mat-temporary-drawer-width(50%); 9 | } 10 | -------------------------------------------------------------------------------- /examples/app_layout_example/mono_pkg.yaml: -------------------------------------------------------------------------------- 1 | # See https://github.com/google/mono_repo.dart for details 2 | stages: 3 | - analyze_and_format_examples_1: 4 | - group: 5 | - format 6 | - analyze: --fatal-infos . 7 | dart: 8 | - dev 9 | - group: 10 | - analyze: . 11 | dart: 12 | - 2.14.2 13 | 14 | cache: 15 | directories: 16 | - .dart_tool 17 | -------------------------------------------------------------------------------- /examples/app_layout_example/pubspec.yaml: -------------------------------------------------------------------------------- 1 | name: app_layout_example 2 | publish_to: none 3 | 4 | environment: 5 | sdk: '>=2.10.5 <3.0.0' 6 | 7 | dependencies: 8 | angular: ^6.0.0 9 | angular_components: ^1.0.0 10 | angular_gallery: 11 | path: ../../angular_gallery 12 | angular_gallery_section: 13 | path: ../../angular_gallery_section 14 | build_config: '>=0.2.6 <0.5.0' 15 | -------------------------------------------------------------------------------- /examples/material_button_example/build.yaml: -------------------------------------------------------------------------------- 1 | targets: 2 | $default: 3 | builders: 4 | angular_components|scss_builder: 5 | enabled: True 6 | angular_gallery|angular_gallery: 7 | enabled: False 8 | -------------------------------------------------------------------------------- /examples/material_button_example/lib/buttons.dart: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | import 'package:angular/angular.dart'; 6 | import 'package:angular_components/material_button/material_button.dart'; 7 | import 'package:angular_components/material_icon/material_icon.dart'; 8 | 9 | @Component( 10 | selector: 'buttons', 11 | templateUrl: 'buttons.html', 12 | directives: [MaterialButtonComponent, MaterialIconComponent], 13 | ) 14 | class ButtonsExampleComponent {} 15 | -------------------------------------------------------------------------------- /examples/material_button_example/mono_pkg.yaml: -------------------------------------------------------------------------------- 1 | # See https://github.com/google/mono_repo.dart for details 2 | stages: 3 | - analyze_and_format_examples_1: 4 | - group: 5 | - format 6 | - analyze: --fatal-infos . 7 | dart: 8 | - dev 9 | - group: 10 | - analyze: . 11 | dart: 12 | - 2.14.2 13 | 14 | cache: 15 | directories: 16 | - .dart_tool 17 | -------------------------------------------------------------------------------- /examples/material_button_example/pubspec.yaml: -------------------------------------------------------------------------------- 1 | name: material_button_example 2 | publish_to: none 3 | 4 | environment: 5 | sdk: '>=2.10.5 <3.0.0' 6 | 7 | dependencies: 8 | angular: ^6.0.0 9 | angular_components: ^1.0.0 10 | angular_gallery: 11 | path: ../../angular_gallery 12 | angular_gallery_section: 13 | path: ../../angular_gallery_section 14 | build_config: '>=0.2.6 <0.5.0' 15 | -------------------------------------------------------------------------------- /examples/material_card_example/build.yaml: -------------------------------------------------------------------------------- 1 | targets: 2 | $default: 3 | builders: 4 | angular_components|scss_builder: 5 | enabled: True 6 | angular_gallery|angular_gallery: 7 | enabled: False 8 | -------------------------------------------------------------------------------- /examples/material_card_example/mono_pkg.yaml: -------------------------------------------------------------------------------- 1 | # See https://github.com/google/mono_repo.dart for details 2 | stages: 3 | - analyze_and_format_examples_1: 4 | - group: 5 | - format 6 | - analyze: --fatal-infos . 7 | dart: 8 | - dev 9 | - group: 10 | - analyze: . 11 | dart: 12 | - 2.14.2 13 | 14 | cache: 15 | directories: 16 | - .dart_tool 17 | -------------------------------------------------------------------------------- /examples/material_card_example/pubspec.yaml: -------------------------------------------------------------------------------- 1 | name: material_card_example 2 | publish_to: none 3 | 4 | environment: 5 | sdk: '>=2.10.5 <3.0.0' 6 | 7 | dependencies: 8 | angular: ^6.0.0 9 | angular_components: ^1.0.0 10 | angular_gallery: 11 | path: ../../angular_gallery 12 | angular_gallery_section: 13 | path: ../../angular_gallery_section 14 | build_config: '>=0.2.6 <0.5.0' 15 | -------------------------------------------------------------------------------- /examples/material_checkbox_example/build.yaml: -------------------------------------------------------------------------------- 1 | targets: 2 | $default: 3 | builders: 4 | angular_components|scss_builder: 5 | enabled: True 6 | angular_gallery|angular_gallery: 7 | enabled: False 8 | -------------------------------------------------------------------------------- /examples/material_checkbox_example/lib/material_checkbox_example.scss: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | @import 'package:angular_components/css/material/material'; 6 | @import 'package:angular_components/material_checkbox/mixins'; 7 | 8 | :host { 9 | @include material-checkbox-color($mat-pink-500, $modifier: '.custom-theme'); 10 | } 11 | 12 | .limited-width { 13 | width: $mat-grid * 20; 14 | } 15 | 16 | .debug-info { 17 | background: $mat-grey-200; 18 | } 19 | 20 | .help-icon { 21 | margin: 0 $mat-grid-type; 22 | } 23 | 24 | material-checkbox.top { 25 | align-items: flex-start; 26 | } 27 | 28 | .material-checkbox-no-left-margin { 29 | @include checkbox-no-left-margin; 30 | } 31 | -------------------------------------------------------------------------------- /examples/material_checkbox_example/mono_pkg.yaml: -------------------------------------------------------------------------------- 1 | # See https://github.com/google/mono_repo.dart for details 2 | stages: 3 | - analyze_and_format_examples_1: 4 | - group: 5 | - format 6 | - analyze: --fatal-infos . 7 | dart: 8 | - dev 9 | - group: 10 | - analyze: . 11 | dart: 12 | - 2.14.2 13 | 14 | cache: 15 | directories: 16 | - .dart_tool 17 | -------------------------------------------------------------------------------- /examples/material_checkbox_example/pubspec.yaml: -------------------------------------------------------------------------------- 1 | name: material_checkbox_example 2 | publish_to: none 3 | 4 | environment: 5 | sdk: '>=2.10.5 <3.0.0' 6 | 7 | dependencies: 8 | angular: ^6.0.0 9 | angular_components: ^1.0.0 10 | angular_forms: ^3.0.0 11 | angular_gallery: 12 | path: ../../angular_gallery 13 | angular_gallery_section: 14 | path: ../../angular_gallery_section 15 | build_config: '>=0.2.6 <0.5.0' 16 | -------------------------------------------------------------------------------- /examples/material_chips_example/build.yaml: -------------------------------------------------------------------------------- 1 | targets: 2 | $default: 3 | builders: 4 | angular_components|scss_builder: 5 | enabled: True 6 | angular_gallery|angular_gallery: 7 | enabled: False 8 | -------------------------------------------------------------------------------- /examples/material_chips_example/mono_pkg.yaml: -------------------------------------------------------------------------------- 1 | # See https://github.com/google/mono_repo.dart for details 2 | stages: 3 | - analyze_and_format_examples_1: 4 | - group: 5 | - format 6 | - analyze: --fatal-infos . 7 | dart: 8 | - dev 9 | - group: 10 | - analyze: . 11 | dart: 12 | - 2.14.2 13 | 14 | cache: 15 | directories: 16 | - .dart_tool 17 | -------------------------------------------------------------------------------- /examples/material_chips_example/pubspec.yaml: -------------------------------------------------------------------------------- 1 | name: material_chips_example 2 | publish_to: none 3 | 4 | environment: 5 | sdk: '>=2.10.5 <3.0.0' 6 | 7 | dependencies: 8 | angular: ^6.0.0 9 | angular_components: ^1.0.0 10 | angular_gallery: 11 | path: ../../angular_gallery 12 | angular_gallery_section: 13 | path: ../../angular_gallery_section 14 | build_config: '>=0.2.6 <0.5.0' 15 | -------------------------------------------------------------------------------- /examples/material_datepicker_example/build.yaml: -------------------------------------------------------------------------------- 1 | targets: 2 | $default: 3 | builders: 4 | angular_components|scss_builder: 5 | enabled: True 6 | angular_gallery|angular_gallery: 7 | enabled: False 8 | -------------------------------------------------------------------------------- /examples/material_datepicker_example/lib/date_input_demo.dart: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | import 'package:angular/angular.dart'; 6 | import 'package:angular_components/material_datepicker/date_input.dart'; 7 | import 'package:angular_components/material_datepicker/module.dart'; 8 | import 'package:angular_components/material_input/material_input.dart'; 9 | import 'package:angular_components/model/date/date.dart'; 10 | 11 | @Component( 12 | selector: 'date-input-demo', 13 | directives: [DateInputDirective, materialInputDirectives], 14 | providers: [datepickerBindings], 15 | templateUrl: 'date_input_demo.html', 16 | ) 17 | class DateInputDemoComponent { 18 | Date requiredDate = Date.today(); 19 | Date optionalDate; 20 | 21 | Date get today => Date.today(); 22 | 23 | String formatDate(Date date) => date == null ? '(null)' : date.toString(); 24 | 25 | void resetToToday() { 26 | requiredDate = today; 27 | optionalDate = today; 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /examples/material_datepicker_example/lib/date_range_input_demo.dart: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | import 'package:angular/angular.dart'; 6 | import 'package:angular_components/material_datepicker/date_range_input.dart'; 7 | import 'package:angular_components/material_datepicker/module.dart'; 8 | import 'package:angular_components/model/date/date.dart'; 9 | 10 | @Component( 11 | selector: 'date-range-input-demo', 12 | template: ''' 13 |

date-range-input

14 | It's two date-inputs glued together. 15 |
16 | 17 |
18 | Selected range: {{range}} 19 | ''', 20 | styles: ['date-range-input { width: 400px; }'], 21 | directives: [DateRangeInputComponent], 22 | providers: [datepickerBindings], 23 | ) 24 | class DateRangeInputDemoComponent { 25 | DateRange range = DateRange(Date.today().add(days: -7), Date.today()); 26 | } 27 | -------------------------------------------------------------------------------- /examples/material_datepicker_example/lib/material_date_range_picker_demo.scss: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | @import 'package:angular_components/css/material/material'; 6 | @import 'package:angular_components/css/material/shadow'; 7 | 8 | .main-example { 9 | display: flex; 10 | } 11 | 12 | .options-pane { 13 | @include material-shadow; 14 | 15 | margin: 0 $mat-grid * 4; 16 | padding: $mat-grid * 2 $mat-grid; 17 | width: $mat-grid * 42; 18 | } 19 | 20 | h4 { 21 | margin: $mat-grid; 22 | margin-top: 0; 23 | } 24 | 25 | .limit-label { 26 | margin: $mat-grid $mat-grid 0; 27 | } 28 | 29 | .range-limit { 30 | margin: 0 $mat-grid; 31 | } 32 | 33 | .selection-label, 34 | .height-info { 35 | margin: $mat-grid; 36 | } 37 | 38 | .simplified-example { 39 | display: inline-block; 40 | margin: 0 $mat-grid * 4; 41 | } 42 | 43 | .message-bar { 44 | border-top: 1px solid $mat-gray-300; 45 | display: flex; 46 | } 47 | -------------------------------------------------------------------------------- /examples/material_datepicker_example/lib/material_date_time_picker_demo.dart: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | import 'package:angular/angular.dart'; 6 | import 'package:angular_components/material_datepicker/material_date_time_picker.dart'; 7 | import 'package:angular_components/material_datepicker/module.dart'; 8 | import 'package:angular_components/utils/browser/window/module.dart'; 9 | 10 | @Component( 11 | selector: 'material-date-time-picker-demo', 12 | providers: [windowBindings, datepickerBindings], 13 | directives: [MaterialDateTimePickerComponent], 14 | templateUrl: 'material_date_time_picker_demo.html', 15 | ) 16 | class MaterialDateTimePickerDemoComponent { 17 | DateTime dateTime = DateTime.now(); 18 | DateTime optionalTime; 19 | } 20 | -------------------------------------------------------------------------------- /examples/material_datepicker_example/lib/material_date_time_picker_demo.html: -------------------------------------------------------------------------------- 1 | 6 |

material-date-time-picker

7 |
8 |

Required

9 | 11 | 12 |
13 |
14 |

Optional

15 | 17 | 18 |
19 |
20 |

Disabled

21 | 24 | 25 |
26 | -------------------------------------------------------------------------------- /examples/material_datepicker_example/lib/material_month_picker_demo.scss: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | @import 'package:angular_components/css/material/material'; 6 | 7 | .calendar { 8 | height: 40 * $mat-grid; 9 | } 10 | 11 | .inline-block { 12 | display: inline-block; 13 | } 14 | -------------------------------------------------------------------------------- /examples/material_datepicker_example/lib/material_time_picker_demo.dart: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | import 'package:angular/angular.dart'; 6 | import 'package:angular_components/material_datepicker/material_time_picker.dart'; 7 | import 'package:angular_components/material_datepicker/module.dart'; 8 | import 'package:angular_components/utils/browser/window/module.dart'; 9 | 10 | @Component( 11 | selector: 'material-time-picker-demo', 12 | providers: [windowBindings, datepickerBindings], 13 | directives: [MaterialTimePickerComponent], 14 | templateUrl: 'material_time_picker_demo.html', 15 | ) 16 | class MaterialTimePickerDemoComponent { 17 | DateTime time = DateTime.now(); 18 | DateTime optionalTime; 19 | } 20 | -------------------------------------------------------------------------------- /examples/material_datepicker_example/lib/material_time_picker_demo.html: -------------------------------------------------------------------------------- 1 | 6 |

material-time-picker

7 |
8 |

Required

9 | 11 | 12 |
13 |
14 |

Optional

15 | 17 | 18 |
19 |
20 |

Disabled

21 | 24 | 25 |
26 | -------------------------------------------------------------------------------- /examples/material_datepicker_example/mono_pkg.yaml: -------------------------------------------------------------------------------- 1 | # See https://github.com/google/mono_repo.dart for details 2 | stages: 3 | - analyze_and_format_examples_1: 4 | - group: 5 | - format 6 | - analyze: --fatal-infos . 7 | dart: 8 | - dev 9 | - group: 10 | - analyze: . 11 | dart: 12 | - 2.14.2 13 | 14 | cache: 15 | directories: 16 | - .dart_tool 17 | -------------------------------------------------------------------------------- /examples/material_datepicker_example/pubspec.yaml: -------------------------------------------------------------------------------- 1 | name: material_datepicker_example 2 | publish_to: none 3 | 4 | environment: 5 | sdk: '>=2.10.5 <3.0.0' 6 | 7 | dependencies: 8 | angular: ^6.0.0 9 | angular_components: ^1.0.0 10 | angular_gallery: 11 | path: ../../angular_gallery 12 | angular_gallery_section: 13 | path: ../../angular_gallery_section 14 | build_config: '>=0.2.6 <0.5.0' 15 | quiver: '>=0.24.0 <3.0.0' 16 | -------------------------------------------------------------------------------- /examples/material_dialog_example/build.yaml: -------------------------------------------------------------------------------- 1 | targets: 2 | $default: 3 | builders: 4 | angular_components|scss_builder: 5 | enabled: True 6 | angular_gallery|angular_gallery: 7 | enabled: False 8 | -------------------------------------------------------------------------------- /examples/material_dialog_example/mono_pkg.yaml: -------------------------------------------------------------------------------- 1 | # See https://github.com/google/mono_repo.dart for details 2 | stages: 3 | - analyze_and_format_examples_1: 4 | - group: 5 | - format 6 | - analyze: --fatal-infos . 7 | dart: 8 | - dev 9 | - group: 10 | - analyze: . 11 | dart: 12 | - 2.14.2 13 | 14 | cache: 15 | directories: 16 | - .dart_tool 17 | -------------------------------------------------------------------------------- /examples/material_dialog_example/pubspec.yaml: -------------------------------------------------------------------------------- 1 | name: material_dialog_example 2 | publish_to: none 3 | 4 | environment: 5 | sdk: '>=2.10.5 <3.0.0' 6 | 7 | dependencies: 8 | angular: ^6.0.0 9 | angular_components: ^1.0.0 10 | angular_gallery: 11 | path: ../../angular_gallery 12 | angular_gallery_section: 13 | path: ../../angular_gallery_section 14 | build_config: '>=0.2.6 <0.5.0' 15 | -------------------------------------------------------------------------------- /examples/material_expansionpanel_example/build.yaml: -------------------------------------------------------------------------------- 1 | targets: 2 | $default: 3 | builders: 4 | angular_components|scss_builder: 5 | enabled: True 6 | angular_gallery|angular_gallery: 7 | enabled: False 8 | -------------------------------------------------------------------------------- /examples/material_expansionpanel_example/mono_pkg.yaml: -------------------------------------------------------------------------------- 1 | # See https://github.com/google/mono_repo.dart for details 2 | stages: 3 | - analyze_and_format_examples_1: 4 | - group: 5 | - format 6 | - analyze: --fatal-infos . 7 | dart: 8 | - dev 9 | - group: 10 | - analyze: . 11 | dart: 12 | - 2.14.2 13 | 14 | cache: 15 | directories: 16 | - .dart_tool 17 | -------------------------------------------------------------------------------- /examples/material_expansionpanel_example/pubspec.yaml: -------------------------------------------------------------------------------- 1 | name: material_expansionpanel_example 2 | publish_to: none 3 | 4 | environment: 5 | sdk: '>=2.10.5 <3.0.0' 6 | 7 | dependencies: 8 | angular: ^6.0.0 9 | angular_components: ^1.0.0 10 | angular_forms: ^3.0.0 11 | angular_gallery: 12 | path: ../../angular_gallery 13 | angular_gallery_section: 14 | path: ../../angular_gallery_section 15 | build_config: '>=0.2.6 <0.5.0' 16 | -------------------------------------------------------------------------------- /examples/material_icon_example/build.yaml: -------------------------------------------------------------------------------- 1 | targets: 2 | $default: 3 | builders: 4 | angular_components|scss_builder: 5 | enabled: True 6 | angular_gallery|angular_gallery: 7 | enabled: False 8 | -------------------------------------------------------------------------------- /examples/material_icon_example/lib/example_icon.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /examples/material_icon_example/lib/material_icon_demo.scss: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | @import 'package:angular_components/css/material/material'; 6 | @import 'package:angular_components/material_icon/mixins'; 7 | 8 | $test-svg-icon: 'packages/material_icon_example/example_icon.svg'; 9 | 10 | .custom-size { 11 | @include material-icon-size($mat-grid * 5); 12 | } 13 | 14 | material-input { 15 | width: 250px; 16 | } 17 | 18 | .svg-icon { 19 | @include svg-icon(url($test-svg-icon)); 20 | } 21 | 22 | -------------------------------------------------------------------------------- /examples/material_icon_example/mono_pkg.yaml: -------------------------------------------------------------------------------- 1 | # See https://github.com/google/mono_repo.dart for details 2 | stages: 3 | - analyze_and_format_examples_1: 4 | - group: 5 | - format 6 | - analyze: --fatal-infos . 7 | dart: 8 | - dev 9 | - group: 10 | - analyze: . 11 | dart: 12 | - 2.14.2 13 | 14 | cache: 15 | directories: 16 | - .dart_tool 17 | -------------------------------------------------------------------------------- /examples/material_icon_example/pubspec.yaml: -------------------------------------------------------------------------------- 1 | name: material_icon_example 2 | publish_to: none 3 | 4 | environment: 5 | sdk: '>=2.10.5 <3.0.0' 6 | 7 | dependencies: 8 | angular: ^6.0.0 9 | angular_components: ^1.0.0 10 | angular_gallery: 11 | path: ../../angular_gallery 12 | angular_gallery_section: 13 | path: ../../angular_gallery_section 14 | build_config: '>=0.2.6 <0.5.0' 15 | -------------------------------------------------------------------------------- /examples/material_input_example/build.yaml: -------------------------------------------------------------------------------- 1 | targets: 2 | $default: 3 | builders: 4 | angular_components|scss_builder: 5 | enabled: True 6 | angular_gallery|angular_gallery: 7 | enabled: False 8 | -------------------------------------------------------------------------------- /examples/material_input_example/lib/material_auto_suggest_input_simple_demo.dart: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | import 'package:angular/angular.dart'; 6 | import 'package:angular_components/material_input/material_auto_suggest_input.dart'; 7 | 8 | @Component( 9 | selector: 'material-auto-suggest-input-simple-demo', 10 | directives: [MaterialAutoSuggestInputComponent], 11 | templateUrl: 'material_auto_suggest_input_simple_demo.html', 12 | styleUrls: ['material_auto_suggest_input_demo.scss.css'], 13 | ) 14 | class MaterialAutoSuggestInputSimpleDemoComponent { 15 | final values = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]; 16 | int selectedValue = 1; 17 | } 18 | -------------------------------------------------------------------------------- /examples/material_input_example/lib/material_auto_suggest_input_simple_demo.html: -------------------------------------------------------------------------------- 1 | 6 |
7 |

Simple single selection

8 | 11 | 12 |
Selected value: {{selectedValue}}
13 |
14 | -------------------------------------------------------------------------------- /examples/material_input_example/lib/material_input_mixins.dart: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | import 'package:angular/angular.dart'; 6 | import 'package:angular_components/material_input/material_input.dart'; 7 | 8 | @Component( 9 | selector: 'material-input-mixins', 10 | templateUrl: 'material_input_mixins.html', 11 | styleUrls: ['material_input_mixins.scss.css'], 12 | directives: [materialInputDirectives], 13 | preserveWhitespace: true, 14 | ) 15 | class MaterialInputMixinDemoComponent {} 16 | -------------------------------------------------------------------------------- /examples/material_input_example/lib/material_input_mixins.html: -------------------------------------------------------------------------------- 1 | 6 |
7 | Label overridden 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 23 | 24 | 25 | 27 | 28 | 29 |
30 | 31 | 34 | 35 | -------------------------------------------------------------------------------- /examples/material_input_example/lib/material_input_mixins.scss: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | @import 'package:angular_components/css/material/material'; 6 | @import 'package:angular_components/material_input/mixins'; 7 | 8 | material-input { 9 | &.red { 10 | @include input-label-color($mat-red); 11 | } 12 | 13 | &.blue { 14 | @include input-label-color($mat-blue); 15 | } 16 | } 17 | 18 | .grey-glyph { 19 | @include input-leading-glyph-color($mat-grey-400); 20 | } 21 | 22 | .disabled-black { 23 | @include material-input-disabled-input-color($mat-black); 24 | } 25 | -------------------------------------------------------------------------------- /examples/material_input_example/lib/material_percent_input_demo.dart: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | import 'package:angular/angular.dart'; 6 | import 'package:angular_forms/angular_forms.dart'; 7 | import 'package:angular_components/material_input/material_percent_directive.dart'; 8 | 9 | @Component( 10 | selector: 'material-percent-input-demo', 11 | styles: ['material-input[type=percent] { width: 120px; }'], 12 | templateUrl: 'material_percent_input_demo.html', 13 | directives: [ 14 | formDirectives, 15 | materialNumberInputDirectives, 16 | MaterialPercentInputDirective, 17 | NgFor 18 | ], 19 | preserveWhitespace: true, 20 | ) 21 | class MaterialPercentInputDemoComponent { 22 | num effort = 110; 23 | num initialValue = 87; 24 | List changes = []; 25 | void recordChange(num change) { 26 | changes.add(change); 27 | if (changes.length > 5) changes.removeAt(0); 28 | } 29 | 30 | Control formControl = Control(44); 31 | } 32 | -------------------------------------------------------------------------------- /examples/material_input_example/lib/material_percent_input_demo.html: -------------------------------------------------------------------------------- 1 | 6 | Effort level: 7 | 8 |
9 | At work, I always give {{effort}}% effort. 10 | 11 | 12 |

With manual event listeners

13 | 17 | 18 |
    19 |
  • Percentage changed to {{change}}
  • 20 |
21 | 22 |

With forms API

23 | 24 | 25 |
26 | {{formControl.value}}: {{formControl.status}} 27 | 28 | -------------------------------------------------------------------------------- /examples/material_input_example/mono_pkg.yaml: -------------------------------------------------------------------------------- 1 | # See https://github.com/google/mono_repo.dart for details 2 | stages: 3 | - analyze_and_format_examples_1: 4 | - group: 5 | - format 6 | # errors exist 7 | #- analyze: . 8 | dart: 9 | - dev 10 | # errors exist 11 | # - group: 12 | # - analyze: . 13 | # dart: 14 | # - 2.14.2 15 | 16 | cache: 17 | directories: 18 | - .dart_tool 19 | -------------------------------------------------------------------------------- /examples/material_input_example/pubspec.yaml: -------------------------------------------------------------------------------- 1 | name: material_input_example 2 | publish_to: none 3 | 4 | environment: 5 | sdk: '>=2.10.5 <3.0.0' 6 | 7 | dependencies: 8 | angular: ^6.0.0 9 | angular_components: ^1.0.0 10 | angular_forms: ^3.0.0 11 | angular_gallery: 12 | path: ../../angular_gallery 13 | angular_gallery_section: 14 | path: ../../angular_gallery_section 15 | build_config: '>=0.2.6 <0.5.0' 16 | intl: ^0.16.0 17 | -------------------------------------------------------------------------------- /examples/material_list_example/build.yaml: -------------------------------------------------------------------------------- 1 | targets: 2 | $default: 3 | builders: 4 | angular_components|scss_builder: 5 | enabled: True 6 | angular_gallery|angular_gallery: 7 | enabled: False 8 | -------------------------------------------------------------------------------- /examples/material_list_example/lib/examples.dart: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | import 'package:angular_components/material_list/material_list.dart'; 6 | import 'package:angular_components/material_list/material_list_item.dart'; 7 | import 'package:angular_gallery_section/annotation/gallery_section_config.dart'; 8 | import 'material_list_demo.dart'; 9 | 10 | @GallerySectionConfig( 11 | displayName: 'Material List', 12 | docs: [ 13 | MaterialListComponent, 14 | MaterialListItemComponent, 15 | ], 16 | demos: [ 17 | MaterialListDemoComponent, 18 | ], 19 | ) 20 | class MaterialListExamples {} 21 | -------------------------------------------------------------------------------- /examples/material_list_example/lib/material_list_demo.scss: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | @import 'package:angular_components/css/material/material'; 6 | @import 'package:angular_components/material_list/mixins'; 7 | 8 | .bordered-list { 9 | border: 1px solid $mat-black; 10 | border-radius: $mat-grid; 11 | margin: $mat-grid; 12 | overflow: hidden; 13 | } 14 | 15 | @include inline-material-list(':not(.stretched-list)'); 16 | -------------------------------------------------------------------------------- /examples/material_list_example/mono_pkg.yaml: -------------------------------------------------------------------------------- 1 | # See https://github.com/google/mono_repo.dart for details 2 | stages: 3 | - analyze_and_format_examples_1: 4 | - group: 5 | - format 6 | - analyze: --fatal-infos . 7 | dart: 8 | - dev 9 | - group: 10 | - analyze: . 11 | dart: 12 | - 2.14.2 13 | 14 | cache: 15 | directories: 16 | - .dart_tool 17 | -------------------------------------------------------------------------------- /examples/material_list_example/pubspec.yaml: -------------------------------------------------------------------------------- 1 | name: material_list_example 2 | publish_to: none 3 | 4 | environment: 5 | sdk: '>=2.10.5 <3.0.0' 6 | 7 | dependencies: 8 | angular: ^6.0.0 9 | angular_components: ^1.0.0 10 | angular_gallery: 11 | path: ../../angular_gallery 12 | angular_gallery_section: 13 | path: ../../angular_gallery_section 14 | build_config: '>=0.2.6 <0.5.0' 15 | -------------------------------------------------------------------------------- /examples/material_menu_example/build.yaml: -------------------------------------------------------------------------------- 1 | targets: 2 | $default: 3 | builders: 4 | angular_components|scss_builder: 5 | enabled: True 6 | angular_gallery|angular_gallery: 7 | enabled: False 8 | -------------------------------------------------------------------------------- /examples/material_menu_example/lib/demo.dart: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | import 'package:angular_components/material_menu/material_fab_menu.dart'; 6 | import 'package:angular_components/material_menu/material_menu.dart'; 7 | import 'package:angular_gallery_section/annotation/gallery_section_config.dart'; 8 | 9 | import 'material_fab_menu_demo.dart'; 10 | import 'material_menu_demo.dart'; 11 | 12 | @GallerySectionConfig( 13 | displayName: 'Material Menu', 14 | docs: [ 15 | MaterialMenuComponent, 16 | MaterialFabMenuComponent, 17 | ], 18 | demos: [ 19 | MaterialMenuDemoComponent, 20 | MaterialFabMenuDemoComponent, 21 | ], 22 | ) 23 | class MaterialMenuExamples {} 24 | -------------------------------------------------------------------------------- /examples/material_menu_example/lib/material_fab_menu_demo.dart: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | import 'package:angular/angular.dart'; 6 | import 'package:angular_components/material_menu/material_fab_menu.dart'; 7 | import 'package:angular_components/model/menu/menu.dart'; 8 | import 'package:angular_components/model/ui/icon.dart'; 9 | 10 | @Component( 11 | selector: 'material-fab-menu-demo', 12 | directives: [MaterialFabMenuComponent], 13 | templateUrl: 'material_fab_menu_demo.html', 14 | ) 15 | class MaterialFabMenuDemoComponent { 16 | final MenuItem menuItem = MenuItem('your label', 17 | icon: Icon('add'), 18 | subMenu: MenuModel([ 19 | MenuItemGroup([ 20 | MenuItem('item1-1', tooltip: 'your tooltip'), 21 | MenuItem('item1-2', tooltip: 'your second tooltip') 22 | ], 'group1'), 23 | MenuItemGroup([MenuItem('item2-1'), MenuItem('item2-2')], 'group2'), 24 | ])); 25 | } 26 | -------------------------------------------------------------------------------- /examples/material_menu_example/lib/material_fab_menu_demo.html: -------------------------------------------------------------------------------- 1 | 6 |
7 |

Material FAB Menu

8 | 9 | 10 |
11 | -------------------------------------------------------------------------------- /examples/material_menu_example/lib/material_menu_demo.scss: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | @import 'package:angular_components/material_menu/mixins'; 6 | 7 | .nounderline { 8 | @include dropdown-menu-nounderline; 9 | } 10 | 11 | .menu-item-text-wrap { 12 | @include menu-item-text-wrap; 13 | } 14 | -------------------------------------------------------------------------------- /examples/material_menu_example/mono_pkg.yaml: -------------------------------------------------------------------------------- 1 | # See https://github.com/google/mono_repo.dart for details 2 | stages: 3 | - analyze_and_format_examples_1: 4 | - group: 5 | - format 6 | - analyze: . 7 | dart: 8 | - dev 9 | - group: 10 | - analyze: . 11 | dart: 12 | - 2.14.2 13 | 14 | cache: 15 | directories: 16 | - .dart_tool 17 | -------------------------------------------------------------------------------- /examples/material_menu_example/pubspec.yaml: -------------------------------------------------------------------------------- 1 | name: material_menu_example 2 | publish_to: none 3 | 4 | environment: 5 | sdk: '>=2.10.5 <3.0.0' 6 | 7 | dependencies: 8 | angular: ^6.0.0 9 | angular_components: ^1.0.0 10 | angular_gallery: 11 | path: ../../angular_gallery 12 | angular_gallery_section: 13 | path: ../../angular_gallery_section 14 | build_config: '>=0.2.6 <0.5.0' 15 | observable: ^0.23.0 16 | -------------------------------------------------------------------------------- /examples/material_popup_example/build.yaml: -------------------------------------------------------------------------------- 1 | targets: 2 | $default: 3 | builders: 4 | angular_components|scss_builder: 5 | enabled: True 6 | angular_gallery|angular_gallery: 7 | enabled: False 8 | -------------------------------------------------------------------------------- /examples/material_popup_example/mono_pkg.yaml: -------------------------------------------------------------------------------- 1 | # See https://github.com/google/mono_repo.dart for details 2 | stages: 3 | - analyze_and_format_examples_2: 4 | - group: 5 | - format 6 | - analyze: --fatal-infos . 7 | dart: 8 | - dev 9 | - group: 10 | - analyze: . 11 | dart: 12 | - 2.14.2 13 | 14 | cache: 15 | directories: 16 | - .dart_tool 17 | -------------------------------------------------------------------------------- /examples/material_popup_example/pubspec.yaml: -------------------------------------------------------------------------------- 1 | name: material_popup_example 2 | publish_to: none 3 | 4 | environment: 5 | sdk: '>=2.10.5 <3.0.0' 6 | 7 | dependencies: 8 | angular: ^6.0.0 9 | angular_components: ^1.0.0 10 | angular_gallery: 11 | path: ../../angular_gallery 12 | angular_gallery_section: 13 | path: ../../angular_gallery_section 14 | build_config: '>=0.2.6 <0.5.0' 15 | -------------------------------------------------------------------------------- /examples/material_progress_example/build.yaml: -------------------------------------------------------------------------------- 1 | targets: 2 | $default: 3 | builders: 4 | angular_components|scss_builder: 5 | enabled: True 6 | angular_gallery|angular_gallery: 7 | enabled: False 8 | -------------------------------------------------------------------------------- /examples/material_progress_example/lib/material_progress_demo.dart: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | import 'package:angular/angular.dart'; 6 | import 'package:angular_components/material_progress/material_progress.dart'; 7 | import 'package:angular_gallery_section/annotation/gallery_section_config.dart'; 8 | 9 | @GallerySectionConfig( 10 | displayName: 'Material Progress', 11 | docs: [MaterialProgressComponent], 12 | demos: [MaterialProgressDemoComponent], 13 | ) 14 | class MaterialProgressExamples {} 15 | 16 | @Component( 17 | selector: 'material-progress-demo', 18 | templateUrl: 'material_progress_demo.html', 19 | styleUrls: ['material_progress_demo.scss.css'], 20 | directives: [MaterialProgressComponent], 21 | ) 22 | class MaterialProgressDemoComponent {} 23 | -------------------------------------------------------------------------------- /examples/material_progress_example/lib/material_progress_demo.scss: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | @import 'package:angular_components/css/material/material', 6 | 'package:angular_components/material_progress/mixins'; 7 | 8 | 9 | h2 { 10 | color: $mat-grey; 11 | font-family: Roboto, "Helvetica Neue", Arial, Helvetica, sans-serif; 12 | font-size: 16px; 13 | font-weight: normal; 14 | line-height: 40px; 15 | margin: 20px; 16 | } 17 | 18 | .custom-theme { 19 | @include material-progress-theme( 20 | $indeterminate-color: $mat-red-100, 21 | $active-color: $mat-red-500, 22 | $secondary-color: $mat-red-200); 23 | } 24 | -------------------------------------------------------------------------------- /examples/material_progress_example/mono_pkg.yaml: -------------------------------------------------------------------------------- 1 | # See https://github.com/google/mono_repo.dart for details 2 | stages: 3 | - analyze_and_format_examples_2: 4 | - group: 5 | - format 6 | - analyze: --fatal-infos . 7 | dart: 8 | - dev 9 | - group: 10 | - analyze: . 11 | dart: 12 | - 2.14.2 13 | 14 | cache: 15 | directories: 16 | - .dart_tool 17 | -------------------------------------------------------------------------------- /examples/material_progress_example/pubspec.yaml: -------------------------------------------------------------------------------- 1 | name: material_progress_example 2 | publish_to: none 3 | 4 | environment: 5 | sdk: '>=2.10.5 <3.0.0' 6 | 7 | dependencies: 8 | angular: ^6.0.0 9 | angular_components: ^1.0.0 10 | angular_gallery: 11 | path: ../../angular_gallery 12 | angular_gallery_section: 13 | path: ../../angular_gallery_section 14 | build_config: '>=0.2.6 <0.5.0' 15 | -------------------------------------------------------------------------------- /examples/material_radio_example/build.yaml: -------------------------------------------------------------------------------- 1 | targets: 2 | $default: 3 | builders: 4 | angular_components|scss_builder: 5 | enabled: True 6 | angular_gallery|angular_gallery: 7 | enabled: False 8 | -------------------------------------------------------------------------------- /examples/material_radio_example/mono_pkg.yaml: -------------------------------------------------------------------------------- 1 | # See https://github.com/google/mono_repo.dart for details 2 | stages: 3 | - analyze_and_format_examples_2: 4 | - group: 5 | - format 6 | - analyze: --fatal-infos . 7 | dart: 8 | - dev 9 | - group: 10 | - analyze: . 11 | dart: 12 | - 2.14.2 13 | 14 | cache: 15 | directories: 16 | - .dart_tool 17 | -------------------------------------------------------------------------------- /examples/material_radio_example/pubspec.yaml: -------------------------------------------------------------------------------- 1 | name: material_radio_example 2 | publish_to: none 3 | 4 | environment: 5 | sdk: '>=2.10.5 <3.0.0' 6 | 7 | dependencies: 8 | angular: ^6.0.0 9 | angular_components: ^1.0.0 10 | angular_forms: ^3.0.0 11 | angular_gallery: 12 | path: ../../angular_gallery 13 | angular_gallery_section: 14 | path: ../../angular_gallery_section 15 | build_config: '>=0.2.6 <0.5.0' 16 | -------------------------------------------------------------------------------- /examples/material_select_example/build.yaml: -------------------------------------------------------------------------------- 1 | targets: 2 | $default: 3 | builders: 4 | angular_components|scss_builder: 5 | enabled: True 6 | angular_gallery|angular_gallery: 7 | enabled: False 8 | -------------------------------------------------------------------------------- /examples/material_select_example/lib/material_dropdown_select_demo.scss: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | @import 'package:angular_components/css/material/material'; 6 | @import 'package:angular_components/css/material/shadow'; 7 | 8 | .example { 9 | @include shadow-elevation(2); 10 | margin-bottom: $mat-grid * 3; 11 | padding: $mat-grid * 2; 12 | max-width: $mat-grid * 84; 13 | 14 | &.example-with-options { 15 | display: flex; 16 | } 17 | } 18 | 19 | .example-pane { 20 | flex: 1; 21 | 22 | material-dropdown-select { 23 | width: $mat-grid * 25; 24 | padding: $mat-grid * 2 0; 25 | } 26 | } 27 | 28 | .options-pane { 29 | flex: 1; 30 | padding: $mat-grid * 2; 31 | background: $mat-gray-200; 32 | 33 | material-checkbox { 34 | margin-left: 0; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /examples/material_select_example/lib/material_dropdown_select_simple_demo.dart: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | import 'package:angular/angular.dart'; 6 | import 'package:angular_components/material_select/material_dropdown_select.dart'; 7 | 8 | @Component( 9 | selector: 'material-dropdown-select-simple-demo', 10 | directives: [MaterialDropdownSelectComponent], 11 | templateUrl: 'material_dropdown_select_simple_demo.html', 12 | styleUrls: ['material_dropdown_select_demo.scss.css'], 13 | ) 14 | class MaterialDropdownSelectSimpleDemoComponent { 15 | final values = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]; 16 | int selectedValue = 1; 17 | } 18 | -------------------------------------------------------------------------------- /examples/material_select_example/lib/material_dropdown_select_simple_demo.html: -------------------------------------------------------------------------------- 1 | 6 |
7 |

Simple single selection

8 | 12 | 13 |
14 | -------------------------------------------------------------------------------- /examples/material_select_example/lib/material_select_demo.scss: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | @import 'package:angular_components/css/material/material'; 6 | @import 'package:angular_components/material_select/mixins'; 7 | 8 | .bordered-list { 9 | border: 1px solid $mat-black; 10 | border-radius: $mat-grid; 11 | margin: $mat-grid; 12 | overflow: hidden; 13 | } 14 | 15 | .trigger-box { 16 | display: inline-flex; 17 | cursor: pointer; 18 | } 19 | 20 | .custom-selected-color { 21 | @include material-select-selected-color($mat-green-500); 22 | } 23 | -------------------------------------------------------------------------------- /examples/material_select_example/mono_pkg.yaml: -------------------------------------------------------------------------------- 1 | # See https://github.com/google/mono_repo.dart for details 2 | stages: 3 | - analyze_and_format_examples_2: 4 | - group: 5 | - format 6 | # errors exist 7 | #- analyze: . 8 | dart: 9 | - dev 10 | # errors exist 11 | # - group: 12 | # - analyze: . 13 | # dart: 14 | # - 2.14.2 15 | 16 | cache: 17 | directories: 18 | - .dart_tool 19 | -------------------------------------------------------------------------------- /examples/material_select_example/pubspec.yaml: -------------------------------------------------------------------------------- 1 | name: material_select_example 2 | publish_to: none 3 | 4 | environment: 5 | sdk: '>=2.10.5 <3.0.0' 6 | 7 | dependencies: 8 | angular: ^6.0.0 9 | angular_components: ^1.0.0 10 | angular_forms: ^3.0.0 11 | angular_gallery: 12 | path: ../../angular_gallery 13 | angular_gallery_section: 14 | path: ../../angular_gallery_section 15 | build_config: '>=0.2.6 <0.5.0' 16 | -------------------------------------------------------------------------------- /examples/material_slider_example/build.yaml: -------------------------------------------------------------------------------- 1 | targets: 2 | $default: 3 | builders: 4 | angular_components|scss_builder: 5 | enabled: True 6 | angular_gallery|angular_gallery: 7 | enabled: False 8 | -------------------------------------------------------------------------------- /examples/material_slider_example/lib/material_slider_example.scss: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | @import 'package:angular_components/css/material/material'; 6 | @import 'package:angular_components/material_slider/mixins'; 7 | 8 | :host { 9 | material-slider { 10 | display: inline-block; 11 | width: 400px; 12 | } 13 | 14 | @include slider-thumb-color('material-slider.custom-colors', $mat-orange); 15 | @include slider-track-color( 16 | 'material-slider.custom-colors', $mat-red-700, $mat-yellow-600); 17 | } 18 | -------------------------------------------------------------------------------- /examples/material_slider_example/mono_pkg.yaml: -------------------------------------------------------------------------------- 1 | # See https://github.com/google/mono_repo.dart for details 2 | stages: 3 | - analyze_and_format_examples_2: 4 | - group: 5 | - format 6 | - analyze: --fatal-infos . 7 | dart: 8 | - dev 9 | - group: 10 | - analyze: . 11 | dart: 12 | - 2.14.2 13 | 14 | cache: 15 | directories: 16 | - .dart_tool 17 | -------------------------------------------------------------------------------- /examples/material_slider_example/pubspec.yaml: -------------------------------------------------------------------------------- 1 | name: material_slider_example 2 | publish_to: none 3 | 4 | environment: 5 | sdk: '>=2.10.5 <3.0.0' 6 | 7 | dependencies: 8 | angular: ^6.0.0 9 | angular_components: ^1.0.0 10 | angular_gallery: 11 | path: ../../angular_gallery 12 | angular_gallery_section: 13 | path: ../../angular_gallery_section 14 | build_config: '>=0.2.6 <0.5.0' 15 | -------------------------------------------------------------------------------- /examples/material_spinner_example/build.yaml: -------------------------------------------------------------------------------- 1 | targets: 2 | $default: 3 | builders: 4 | angular_components|scss_builder: 5 | enabled: True 6 | angular_gallery|angular_gallery: 7 | enabled: False 8 | -------------------------------------------------------------------------------- /examples/material_spinner_example/lib/material_spinner_example.dart: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | import 'package:angular/angular.dart'; 6 | import 'package:angular_components/material_spinner/material_spinner.dart'; 7 | import 'package:angular_gallery_section/annotation/gallery_section_config.dart'; 8 | 9 | @GallerySectionConfig( 10 | displayName: 'Material Spinner', 11 | docs: [MaterialSpinnerComponent], 12 | demos: [MaterialSpinnerExample], 13 | ) 14 | class MaterialSpinnerGalleryConfig {} 15 | 16 | @Component( 17 | selector: 'material-spinner-example', 18 | directives: [MaterialSpinnerComponent], 19 | templateUrl: 'material_spinner_example.html', 20 | styleUrls: ['material_spinner_example.scss.css'], 21 | ) 22 | class MaterialSpinnerExample {} 23 | -------------------------------------------------------------------------------- /examples/material_spinner_example/lib/material_spinner_example.html: -------------------------------------------------------------------------------- 1 | 6 |

Different colors!

7 |
8 | 9 | 10 | 11 | 12 |
13 | 14 |

With text!

15 |
16 | 17 | Submitting... 18 |
19 | -------------------------------------------------------------------------------- /examples/material_spinner_example/lib/material_spinner_example.scss: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | @import 'package:angular_components/css/material/material'; 6 | 7 | p { 8 | font-weight: bold; 9 | } 10 | 11 | div { 12 | margin-bottom: $mat-grid * 4; 13 | } 14 | 15 | material-spinner { 16 | margin-right: $mat-grid; 17 | } 18 | 19 | .red { 20 | border-color: $mat-red; 21 | } 22 | 23 | .yellow { 24 | border-color: $mat-yellow; 25 | } 26 | 27 | .green { 28 | border-color: $mat-green; 29 | } 30 | -------------------------------------------------------------------------------- /examples/material_spinner_example/mono_pkg.yaml: -------------------------------------------------------------------------------- 1 | # See https://github.com/google/mono_repo.dart for details 2 | stages: 3 | - analyze_and_format_examples_2: 4 | - group: 5 | - format 6 | - analyze: --fatal-infos . 7 | dart: 8 | - dev 9 | - group: 10 | - analyze: . 11 | dart: 12 | - 2.14.2 13 | 14 | cache: 15 | directories: 16 | - .dart_tool 17 | -------------------------------------------------------------------------------- /examples/material_spinner_example/pubspec.yaml: -------------------------------------------------------------------------------- 1 | name: material_spinner_example 2 | publish_to: none 3 | 4 | environment: 5 | sdk: '>=2.10.5 <3.0.0' 6 | 7 | dependencies: 8 | angular: ^6.0.0 9 | angular_components: ^1.0.0 10 | angular_gallery: 11 | path: ../../angular_gallery 12 | angular_gallery_section: 13 | path: ../../angular_gallery_section 14 | build_config: '>=0.2.6 <0.5.0' 15 | -------------------------------------------------------------------------------- /examples/material_stepper_example/build.yaml: -------------------------------------------------------------------------------- 1 | targets: 2 | $default: 3 | builders: 4 | angular_components|scss_builder: 5 | enabled: True 6 | angular_gallery|angular_gallery: 7 | enabled: False 8 | -------------------------------------------------------------------------------- /examples/material_stepper_example/mono_pkg.yaml: -------------------------------------------------------------------------------- 1 | # See https://github.com/google/mono_repo.dart for details 2 | stages: 3 | - analyze_and_format_examples_2: 4 | - group: 5 | - format 6 | - analyze: --fatal-infos . 7 | dart: 8 | - dev 9 | - group: 10 | - analyze: . 11 | dart: 12 | - 2.14.2 13 | 14 | cache: 15 | directories: 16 | - .dart_tool 17 | -------------------------------------------------------------------------------- /examples/material_stepper_example/pubspec.yaml: -------------------------------------------------------------------------------- 1 | name: material_stepper_example 2 | publish_to: none 3 | 4 | environment: 5 | sdk: '>=2.10.5 <3.0.0' 6 | 7 | dependencies: 8 | angular: ^6.0.0 9 | angular_components: ^1.0.0 10 | angular_gallery: 11 | path: ../../angular_gallery 12 | angular_gallery_section: 13 | path: ../../angular_gallery_section 14 | build_config: '>=0.2.6 <0.5.0' 15 | -------------------------------------------------------------------------------- /examples/material_tab_example/build.yaml: -------------------------------------------------------------------------------- 1 | targets: 2 | $default: 3 | builders: 4 | angular_components|scss_builder: 5 | enabled: True 6 | angular_gallery|angular_gallery: 7 | enabled: False 8 | -------------------------------------------------------------------------------- /examples/material_tab_example/lib/examples.dart: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | import 'package:angular_components/material_tab/fixed_material_tab_strip.dart'; 6 | import 'package:angular_components/material_tab/material_tab.dart'; 7 | import 'package:angular_components/material_tab/material_tab_panel.dart'; 8 | import 'material_tab_panel_example.dart'; 9 | import 'material_tab_strip_example.dart'; 10 | import 'material_tab_strip_mixin_example.dart'; 11 | import 'package:angular_gallery_section/annotation/gallery_section_config.dart'; 12 | 13 | @GallerySectionConfig( 14 | displayName: 'Material Tab', 15 | docs: [ 16 | FixedMaterialTabStripComponent, 17 | MaterialTabPanelComponent, 18 | MaterialTabComponent 19 | ], 20 | demos: [ 21 | MaterialTabStripExample, 22 | MaterialTabPanelExample, 23 | MaterialTabStripMixinExample, 24 | ], 25 | ) 26 | class MaterialTabExamples {} 27 | -------------------------------------------------------------------------------- /examples/material_tab_example/lib/material_tab_panel_example.scss: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | @import 'package:angular_components/css/material/material'; 6 | @import 'package:angular_components/material_tab/mixins'; 7 | 8 | .tab-panel { width: 400px; height: 200px;} 9 | 10 | @include tab-panel-tab-strip-width('material-tab-panel[centerStrip]', 200px); 11 | 12 | @include tab-panel-accent-color('.tab-panel', $mat-red); 13 | -------------------------------------------------------------------------------- /examples/material_tab_example/lib/material_tab_strip_example.html: -------------------------------------------------------------------------------- 1 | 6 |
7 |

A tab strip with 3 tabs

8 | 11 | 12 |

Active Tab Index {{tabIndex}}

13 | 14 |
15 | 16 |
17 |

A tab strip with set width

18 | 21 | 22 |

Active Tab Index {{tabIndex2}}

23 |
24 | -------------------------------------------------------------------------------- /examples/material_tab_example/lib/material_tab_strip_mixin_example.html: -------------------------------------------------------------------------------- 1 | 6 |
7 |

A tab strip with 4 tabs : Custom colors and width

8 | 9 |
10 | -------------------------------------------------------------------------------- /examples/material_tab_example/lib/material_tab_strip_mixin_example.scss: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | @import 'package:angular_components/css/material/material'; 6 | @import 'package:angular_components/material_tab/mixins'; 7 | 8 | // Custom Tab styles 9 | @include tab-strip-color('material-tab-strip-mixin-example', 10 | $mat-gray-700, $mat-blue-500); 11 | @include tab-strip-selected-tab-color('material-tab-strip-mixin-example', $mat-green-500); 12 | -------------------------------------------------------------------------------- /examples/material_tab_example/mono_pkg.yaml: -------------------------------------------------------------------------------- 1 | # See https://github.com/google/mono_repo.dart for details 2 | stages: 3 | - analyze_and_format_examples_2: 4 | - group: 5 | - format 6 | - analyze: --fatal-infos . 7 | dart: 8 | - dev 9 | - group: 10 | - analyze: . 11 | dart: 12 | - 2.14.2 13 | 14 | cache: 15 | directories: 16 | - .dart_tool 17 | -------------------------------------------------------------------------------- /examples/material_tab_example/pubspec.yaml: -------------------------------------------------------------------------------- 1 | name: material_tab_example 2 | publish_to: none 3 | 4 | environment: 5 | sdk: '>=2.10.5 <3.0.0' 6 | 7 | dependencies: 8 | angular: ^6.0.0 9 | angular_components: ^1.0.0 10 | angular_gallery: 11 | path: ../../angular_gallery 12 | angular_gallery_section: 13 | path: ../../angular_gallery_section 14 | build_config: '>=0.2.6 <0.5.0' 15 | -------------------------------------------------------------------------------- /examples/material_toggle_example/build.yaml: -------------------------------------------------------------------------------- 1 | targets: 2 | $default: 3 | builders: 4 | angular_components|scss_builder: 5 | enabled: True 6 | angular_gallery|angular_gallery: 7 | enabled: False 8 | -------------------------------------------------------------------------------- /examples/material_toggle_example/lib/material_toggle_example.dart: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | import 'package:angular/angular.dart'; 6 | import 'package:angular_components/material_toggle/material_toggle.dart'; 7 | import 'package:angular_gallery_section/annotation/gallery_section_config.dart'; 8 | 9 | @GallerySectionConfig( 10 | displayName: 'Material Toggle', 11 | docs: [MaterialToggleComponent], 12 | demos: [MaterialToggleExampleComponent], 13 | ) 14 | @Component( 15 | selector: 'material-toggle-example', 16 | directives: [MaterialToggleComponent, NgClass, NgFor], 17 | styleUrls: ['material_toggle_example.scss.css'], 18 | templateUrl: 'material_toggle_example.html', 19 | ) 20 | class MaterialToggleExampleComponent { 21 | bool btEnabled = false; 22 | bool deviceVisible = false; 23 | 24 | bool basicState; 25 | 26 | String get btnToggleLabel => 27 | 'Tap to turn Bluetooth ${btEnabled ? 'OFF' : 'ON'}.'; 28 | } 29 | -------------------------------------------------------------------------------- /examples/material_toggle_example/lib/material_toggle_example.scss: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | @import 'package:angular_components/css/material/material'; 6 | @import 'package:angular_components/material_toggle/mixins'; 7 | 8 | material-toggle { 9 | padding: 12px; 10 | width: 320px; 11 | } 12 | 13 | .theme-red { 14 | @include material-toggle-theme($primary-color: $mat-red-500); 15 | } 16 | 17 | .theme-purple { 18 | @include material-toggle-theme($primary-color: $mat-purple-500); 19 | } 20 | 21 | .custom-theme { 22 | @include material-toggle-theme( 23 | $primary-color: $mat-light-green-500, 24 | $off-btn-color: $mat-lime-500); 25 | } 26 | 27 | .flip-label { 28 | @include flip-toggle-label-position(); 29 | } 30 | -------------------------------------------------------------------------------- /examples/material_toggle_example/mono_pkg.yaml: -------------------------------------------------------------------------------- 1 | # See https://github.com/google/mono_repo.dart for details 2 | stages: 3 | - analyze_and_format_examples_2: 4 | - group: 5 | - format 6 | - analyze: --fatal-infos . 7 | dart: 8 | - dev 9 | - group: 10 | - analyze: . 11 | dart: 12 | - 2.14.2 13 | 14 | cache: 15 | directories: 16 | - .dart_tool 17 | -------------------------------------------------------------------------------- /examples/material_toggle_example/pubspec.yaml: -------------------------------------------------------------------------------- 1 | name: material_toggle_example 2 | publish_to: none 3 | 4 | environment: 5 | sdk: '>=2.10.5 <3.0.0' 6 | 7 | dependencies: 8 | angular: ^6.0.0 9 | angular_components: ^1.0.0 10 | angular_gallery: 11 | path: ../../angular_gallery 12 | angular_gallery_section: 13 | path: ../../angular_gallery_section 14 | build_config: '>=0.2.6 <0.5.0' 15 | -------------------------------------------------------------------------------- /examples/material_tooltip_example/build.yaml: -------------------------------------------------------------------------------- 1 | targets: 2 | $default: 3 | builders: 4 | angular_components|scss_builder: 5 | enabled: True 6 | angular_gallery|angular_gallery: 7 | enabled: False 8 | -------------------------------------------------------------------------------- /examples/material_tooltip_example/lib/material_tooltip_example.scss: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | @import 'package:angular_components/css/material/material'; 6 | @import 'package:angular_gallery_section/demo_style'; 7 | 8 | :host { 9 | margin: $mat-grid; 10 | @include demo-style(); 11 | } 12 | 13 | .demo-glyph { 14 | margin: $mat-grid; 15 | } 16 | 17 | .source-popup { 18 | padding: $mat-grid; 19 | } 20 | 21 | .dark-background { 22 | background: $mat-gray-800; 23 | color: $mat-white; 24 | } 25 | -------------------------------------------------------------------------------- /examples/material_tooltip_example/mono_pkg.yaml: -------------------------------------------------------------------------------- 1 | # See https://github.com/google/mono_repo.dart for details 2 | stages: 3 | - analyze_and_format_examples_2: 4 | - group: 5 | - format 6 | - analyze: --fatal-infos . 7 | dart: 8 | - dev 9 | - group: 10 | - analyze: . 11 | dart: 12 | - 2.14.2 13 | 14 | cache: 15 | directories: 16 | - .dart_tool 17 | -------------------------------------------------------------------------------- /examples/material_tooltip_example/pubspec.yaml: -------------------------------------------------------------------------------- 1 | name: material_tooltip_example 2 | publish_to: none 3 | 4 | environment: 5 | sdk: '>=2.10.5 <3.0.0' 6 | 7 | dependencies: 8 | angular: ^6.0.0 9 | angular_components: ^1.0.0 10 | angular_gallery: 11 | path: ../../angular_gallery 12 | angular_gallery_section: 13 | path: ../../angular_gallery_section 14 | build_config: '>=0.2.6 <0.5.0' 15 | -------------------------------------------------------------------------------- /examples/material_tree_example/build.yaml: -------------------------------------------------------------------------------- 1 | targets: 2 | $default: 3 | builders: 4 | angular_components|scss_builder: 5 | enabled: True 6 | angular_gallery|angular_gallery: 7 | enabled: False 8 | -------------------------------------------------------------------------------- /examples/material_tree_example/lib/src/dividers.scss: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | @import 'package:angular_components/material_tree/mixins'; 6 | 7 | .tree-border-expanded { 8 | @include material-tree-border-expanded; 9 | } 10 | 11 | .tree-border-parent { 12 | @include material-tree-border-parent; 13 | } 14 | 15 | .tree-border-all { 16 | @include material-tree-border-all; 17 | } 18 | -------------------------------------------------------------------------------- /examples/material_tree_example/lib/src/material_shadow.scss: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | @import 'package:angular_components/css/material/shadow'; 6 | 7 | .shadow { 8 | @include shadow-elevation; 9 | } 10 | -------------------------------------------------------------------------------- /examples/material_tree_example/lib/src/material_tree_component_renderer.dart: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | import 'package:angular/angular.dart'; 6 | import 'package:angular_components/material_icon/material_icon.dart'; 7 | import 'package:angular_components/model/ui/has_renderer.dart'; 8 | 9 | /// An example component renderer that adds an android icon. 10 | @Component( 11 | selector: 'component-renderer-example', 12 | directives: [MaterialIconComponent], 13 | template: r''' 14 | {{value}} 15 | ''', 16 | styles: [':host {display: inline-block;}'], 17 | changeDetection: ChangeDetectionStrategy.OnPush, 18 | ) 19 | class ComponentRendererExample implements RendersValue { 20 | @override 21 | String value; 22 | } 23 | -------------------------------------------------------------------------------- /examples/material_tree_example/mono_pkg.yaml: -------------------------------------------------------------------------------- 1 | # See https://github.com/google/mono_repo.dart for details 2 | stages: 3 | - analyze_and_format_examples_2: 4 | - group: 5 | - format 6 | # errors exist 7 | #- analyze: . 8 | dart: 9 | - dev 10 | # errors exist 11 | # - group: 12 | # - analyze: . 13 | # dart: 14 | # - 2.14.2 15 | 16 | cache: 17 | directories: 18 | - .dart_tool 19 | -------------------------------------------------------------------------------- /examples/material_tree_example/pubspec.yaml: -------------------------------------------------------------------------------- 1 | name: material_tree_example 2 | publish_to: none 3 | 4 | environment: 5 | sdk: '>=2.10.5 <3.0.0' 6 | 7 | dependencies: 8 | angular: ^6.0.0 9 | angular_components: ^1.0.0 10 | angular_gallery: 11 | path: ../../angular_gallery 12 | angular_gallery_section: 13 | path: ../../angular_gallery_section 14 | build_config: '>=0.2.6 <0.5.0' 15 | -------------------------------------------------------------------------------- /examples/material_yes_no_buttons_example/build.yaml: -------------------------------------------------------------------------------- 1 | targets: 2 | $default: 3 | builders: 4 | angular_components|scss_builder: 5 | enabled: True 6 | angular_gallery|angular_gallery: 7 | enabled: False 8 | -------------------------------------------------------------------------------- /examples/material_yes_no_buttons_example/lib/material_yes_no_buttons_example.scss: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | @import 'package:angular_components/css/material/material'; 6 | @import 'package:angular_components/material_yes_no_buttons/mixins'; 7 | 8 | .red-yes { 9 | @include material-yes-button-color($mat-red-500); 10 | } 11 | 12 | .red-no { 13 | @include material-no-button-color($mat-red-500); 14 | @include material-no-button-text-color($mat-white); 15 | } 16 | 17 | .red-text-yes { 18 | @include material-yes-button-text-color($mat-red-500); 19 | } 20 | 21 | .red-text-no { 22 | @include material-no-button-text-color($mat-red-500); 23 | } 24 | -------------------------------------------------------------------------------- /examples/material_yes_no_buttons_example/mono_pkg.yaml: -------------------------------------------------------------------------------- 1 | # See https://github.com/google/mono_repo.dart for details 2 | stages: 3 | - analyze_and_format_examples_1: 4 | - group: 5 | - format 6 | - analyze: --fatal-infos . 7 | dart: 8 | - dev 9 | - group: 10 | - analyze: . 11 | dart: 12 | - 2.14.2 13 | 14 | cache: 15 | directories: 16 | - .dart_tool 17 | -------------------------------------------------------------------------------- /examples/material_yes_no_buttons_example/pubspec.yaml: -------------------------------------------------------------------------------- 1 | name: material_yes_no_buttons_example 2 | publish_to: none 3 | 4 | environment: 5 | sdk: '>=2.10.5 <3.0.0' 6 | 7 | dependencies: 8 | angular: ^6.0.0 9 | angular_components: ^1.0.0 10 | angular_gallery: 11 | path: ../../angular_gallery 12 | angular_gallery_section: 13 | path: ../../angular_gallery_section 14 | build_config: '>=0.2.6 <0.5.0' 15 | -------------------------------------------------------------------------------- /examples/scorecard_example/build.yaml: -------------------------------------------------------------------------------- 1 | targets: 2 | $default: 3 | builders: 4 | angular_components|scss_builder: 5 | enabled: True 6 | angular_gallery|angular_gallery: 7 | enabled: False 8 | -------------------------------------------------------------------------------- /examples/scorecard_example/mono_pkg.yaml: -------------------------------------------------------------------------------- 1 | # See https://github.com/google/mono_repo.dart for details 2 | stages: 3 | - analyze_and_format_examples_2: 4 | - group: 5 | - format 6 | - analyze: --fatal-infos . 7 | dart: 8 | - dev 9 | - group: 10 | - analyze: . 11 | dart: 12 | - 2.14.2 13 | 14 | cache: 15 | directories: 16 | - .dart_tool 17 | -------------------------------------------------------------------------------- /examples/scorecard_example/pubspec.yaml: -------------------------------------------------------------------------------- 1 | name: scorecard_example 2 | publish_to: none 3 | 4 | environment: 5 | sdk: '>=2.10.5 <3.0.0' 6 | 7 | dependencies: 8 | angular: ^6.0.0 9 | angular_components: ^1.0.0 10 | angular_forms: ^3.0.0 11 | angular_gallery: 12 | path: ../../angular_gallery 13 | angular_gallery_section: 14 | path: ../../angular_gallery_section 15 | build_config: '>=0.2.6 <0.5.0' 16 | -------------------------------------------------------------------------------- /examples/simple_html_example/build.yaml: -------------------------------------------------------------------------------- 1 | targets: 2 | $default: 3 | builders: 4 | angular_components|scss_builder: 5 | enabled: True 6 | angular_gallery|angular_gallery: 7 | enabled: False 8 | -------------------------------------------------------------------------------- /examples/simple_html_example/lib/basic_example/simple_html_example.html: -------------------------------------------------------------------------------- 1 | 6 |

SimpleHTML with default URI whitelist

7 | 8 |

9 | 10 |

11 | 12 |
    13 |
  • 14 |
  • 15 |
16 | 17 |

18 | The following message is removed due to disallowed HTML: 19 | [] 20 |

21 | 22 |

23 | 26 |

27 | 28 | 29 | -------------------------------------------------------------------------------- /examples/simple_html_example/lib/basic_example/simple_html_example.scss: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | $highlightColor: #f11; 6 | 7 | :host { 8 | // Use ng-deep with extreme caution here; it should only be used to apply 9 | // styles that are internal to the SimpleHTML contents, and should always be 10 | // scoped to the host. 11 | ::ng-deep .highlight { 12 | color: $highlightColor; 13 | font-variant: small-caps; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /examples/simple_html_example/lib/custom_whitelist_example/simple_html_custom_whitelist_example.html: -------------------------------------------------------------------------------- 1 | 6 |

SimpleHTML with a custom URI whitelist

7 | 8 |
    9 |
  • 10 |
  • (removed)
  • 11 |
  • (removed)
  • 12 |
13 | -------------------------------------------------------------------------------- /examples/simple_html_example/lib/gallery_section_config.dart: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | import 'package:angular_gallery_section/annotation/gallery_section_config.dart' 6 | show GallerySectionConfig; 7 | import 'package:angular_components/simple_html/simple_html.dart' 8 | show SimpleHtmlComponent; 9 | 10 | import 'basic_example/simple_html_example.dart'; 11 | import 'custom_whitelist_example/simple_html_custom_whitelist_example.dart'; 12 | 13 | @GallerySectionConfig( 14 | displayName: 'Simple HTML', 15 | docs: [ 16 | "package:angular_components/simple_html/README.md", 17 | SimpleHtmlComponent, 18 | ], 19 | demos: [ 20 | SimpleHtmlExampleComponent, 21 | SimpleHtmlCustomWhitelistExampleComponent, 22 | ], 23 | ) 24 | class SimpleHtmlExamples {} 25 | -------------------------------------------------------------------------------- /examples/simple_html_example/mono_pkg.yaml: -------------------------------------------------------------------------------- 1 | # See https://github.com/google/mono_repo.dart for details 2 | stages: 3 | - analyze_and_format_examples_2: 4 | - group: 5 | - format 6 | - analyze: --fatal-infos . 7 | dart: 8 | - dev 9 | - group: 10 | - analyze: . 11 | dart: 12 | - 2.14.2 13 | 14 | cache: 15 | directories: 16 | - .dart_tool 17 | -------------------------------------------------------------------------------- /examples/simple_html_example/pubspec.yaml: -------------------------------------------------------------------------------- 1 | name: simple_html_example 2 | publish_to: none 3 | 4 | environment: 5 | sdk: '>=2.10.5 <3.0.0' 6 | 7 | dependencies: 8 | angular: ^6.0.0 9 | angular_components: ^1.0.0 10 | angular_gallery: 11 | path: ../../angular_gallery 12 | angular_gallery_section: 13 | path: ../../angular_gallery_section 14 | build_config: '>=0.2.6 <0.5.0' 15 | intl: ^0.16.0 16 | -------------------------------------------------------------------------------- /mono_repo.yaml: -------------------------------------------------------------------------------- 1 | # See with https://github.com/google/mono_repo.dart for details on this file 2 | 3 | self_validate: analyze_and_format 4 | 5 | github: 6 | cron: '0 0 * * 0' # “At 00:00 (UTC) on Sunday.” 7 | stages: 8 | - analyze_and_format_core 9 | - analyze_and_format_examples_1 10 | - analyze_and_format_examples_2 11 | - unit_test 12 | - build 13 | 14 | merge_stages: 15 | - analyze_and_format_core 16 | - analyze_and_format_examples_1 17 | - analyze_and_format_examples_2 18 | -------------------------------------------------------------------------------- /tool/mono_repo_self_validate.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Created with package:mono_repo v2.5.0 3 | 4 | # Support built in commands on windows out of the box. 5 | function pub { 6 | if [[ $TRAVIS_OS_NAME == "windows" ]]; then 7 | command pub.bat "$@" 8 | else 9 | command pub "$@" 10 | fi 11 | } 12 | 13 | set -v -e 14 | pub global activate mono_repo 2.5.0 15 | pub global run mono_repo travis --validate 16 | --------------------------------------------------------------------------------