Skip to content
This repository was archived by the owner on May 20, 2023. It is now read-only.

Commit afdf2bd

Browse files
committed
Add Material Datepicker components to open source release.
PiperOrigin-RevId: 189415606
1 parent bc5be5e commit afdf2bd

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

63 files changed

+10555
-14
lines changed

CHANGELOG.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,11 @@
1+
## 0.9.0-alpha+8
2+
3+
> NOTE: This code is considered production quality, but depends on angular:
4+
> 5.0.0-alpha+8. The alpha tag represents the evolving nature of the AngularDart
5+
> API, not code quality (5.0.0-alpha+8 is used in production Google apps).
6+
7+
* Add Material Datepicker components.
8+
19
## 0.9.0-alpha+7
210

311
> NOTE: This code is considered production quality, but depends on angular:

lib/angular_components.dart

Lines changed: 40 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,23 @@ import 'glyph/glyph.dart';
2020
import 'highlighted_text/highlighted_text.dart';
2121
import 'highlighted_text/highlighted_value.dart';
2222
import 'laminate/components/modal/modal.dart';
23-
import 'laminate/popup/module.dart';
2423
import 'laminate/popup/popup.dart';
2524
import 'material_button/material_button.dart';
2625
import 'material_button/material_fab.dart';
2726
import 'material_checkbox/material_checkbox.dart'
2827
show MaterialCheckboxComponent;
2928
import 'material_chips/material_chip.dart';
3029
import 'material_chips/material_chips.dart';
30+
import 'material_datepicker/date_input.dart';
31+
import 'material_datepicker/date_range_editor.dart';
32+
import 'material_datepicker/date_range_input.dart';
33+
import 'material_datepicker/material_calendar_picker.dart';
34+
import 'material_datepicker/material_date_range_picker.dart';
35+
import 'material_datepicker/material_date_time_picker.dart';
36+
import 'material_datepicker/material_datepicker.dart';
37+
import 'material_datepicker/material_month_picker.dart';
38+
import 'material_datepicker/material_time_picker.dart';
39+
import 'material_datepicker/module.dart';
3140
import 'material_dialog/material_dialog.dart';
3241
import 'material_expansionpanel/material_expansionpanel.dart';
3342
import 'material_expansionpanel/material_expansionpanel_auto_dismiss.dart';
@@ -57,6 +66,7 @@ import 'material_ripple/material_ripple.dart';
5766
import 'material_select/display_name.dart';
5867
import 'material_select/dropdown_button.dart';
5968
import 'material_select/material_dropdown_select.dart';
69+
import 'material_select/material_dropdown_select_accessor.dart';
6070
import 'material_select/material_select.dart';
6171
import 'material_select/material_select_dropdown_item.dart';
6272
import 'material_select/material_select_item.dart';
@@ -107,6 +117,21 @@ export 'material_checkbox/material_checkbox.dart'
107117
show MaterialCheckboxComponent;
108118
export 'material_chips/material_chip.dart';
109119
export 'material_chips/material_chips.dart';
120+
export 'material_datepicker/calendar.dart';
121+
export 'material_datepicker/comparison.dart';
122+
export 'material_datepicker/date_input.dart';
123+
export 'material_datepicker/date_range_editor.dart';
124+
export 'material_datepicker/date_range_input.dart';
125+
export 'material_datepicker/material_calendar_picker.dart';
126+
export 'material_datepicker/material_date_range_picker.dart';
127+
export 'material_datepicker/material_date_time_picker.dart';
128+
export 'material_datepicker/material_datepicker.dart';
129+
export 'material_datepicker/material_month_picker.dart';
130+
export 'material_datepicker/material_time_picker.dart';
131+
export 'material_datepicker/model.dart';
132+
export 'material_datepicker/module.dart';
133+
export 'material_datepicker/next_prev_buttons.dart';
134+
export 'material_datepicker/preset.dart';
110135
export 'material_dialog/material_dialog.dart';
111136
export 'material_expansionpanel/material_expansionpanel.dart';
112137
export 'material_expansionpanel/material_expansionpanel_auto_dismiss.dart';
@@ -142,6 +167,7 @@ export 'material_select/activation_handler.dart';
142167
export 'material_select/display_name.dart';
143168
export 'material_select/dropdown_button.dart';
144169
export 'material_select/material_dropdown_select.dart';
170+
export 'material_select/material_dropdown_select_accessor.dart';
145171
export 'material_select/material_select.dart';
146172
export 'material_select/material_select_base.dart';
147173
export 'material_select/material_select_dropdown_item.dart';
@@ -166,6 +192,7 @@ export 'mixins/has_tab_index.dart';
166192
export 'mixins/highlight_assistant_mixin.dart';
167193
export 'mixins/material_dropdown_base.dart';
168194
export 'mixins/track_layout_changes.dart';
195+
export 'model/date/date.dart';
169196
export 'model/selection/select.dart';
170197
export 'model/selection/selection_model.dart';
171198
export 'model/selection/selection_options.dart';
@@ -191,8 +218,12 @@ const List<dynamic> materialDirectives = const [
191218
CheckNonNegativeValidator,
192219
ClickableTooltipTargetDirective,
193220
DarkThemeDirective,
221+
DateInputDirective,
222+
DateRangeEditorComponent,
223+
DateRangeInputComponent,
194224
DeferredContentDirective,
195225
displayNameRendererDirective,
226+
DropdownSelectValueAccessor,
196227
DropdownButtonComponent,
197228
DropdownMenuComponent,
198229
DynamicComponent,
@@ -209,9 +240,13 @@ const List<dynamic> materialDirectives = const [
209240
LowerBoundValidator,
210241
MaterialAutoSuggestInputComponent,
211242
MaterialButtonComponent,
243+
MaterialCalendarPickerComponent,
212244
MaterialCheckboxComponent,
213245
MaterialChipComponent,
214246
MaterialChipsComponent,
247+
MaterialDatepickerComponent,
248+
MaterialDateRangePickerComponent,
249+
MaterialDateTimePickerComponent,
215250
MaterialDialogComponent,
216251
MaterialDropdownSelectComponent,
217252
MaterialExpansionPanel,
@@ -229,6 +264,7 @@ const List<dynamic> materialDirectives = const [
229264
MaterialListComponent,
230265
MaterialListItemComponent,
231266
MaterialMenuComponent,
267+
MaterialMonthPickerComponent,
232268
MaterialMultilineInputComponent,
233269
materialNumberInputDirectives,
234270
MaterialPaperTooltipComponent,
@@ -246,6 +282,7 @@ const List<dynamic> materialDirectives = const [
246282
MaterialSpinnerComponent,
247283
MaterialTabComponent,
248284
MaterialTabPanelComponent,
285+
MaterialTimePickerComponent,
249286
MaterialTemporaryDrawerComponent,
250287
MaterialTreeComponent,
251288
MaterialTreeDropdownComponent,
@@ -256,6 +293,7 @@ const List<dynamic> materialDirectives = const [
256293
MaterialYesNoButtonsComponent,
257294
MenuPopupComponent,
258295
MenuRootDirective,
296+
MultiDropdownSelectValueAccessor,
259297
ModalComponent,
260298
NgModel,
261299
PositiveNumValidator,
@@ -271,5 +309,5 @@ const List<dynamic> materialDirectives = const [
271309

272310
/// A convenience list of all providers exposed by this package.
273311
const List<dynamic> materialProviders = const [
274-
popupBindings,
312+
datepickerBindings,
275313
];
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
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+
// CSS constants for datepicker components.
6+
@import 'package:angular_components/css/material/material';
7+
8+
// Hopefully this never changes
9+
$days-per-week: 7;
10+
11+
// The scrollbar width varies between 4px (material style in Chrome) and 17px
12+
// (system style IE). This number is choosen to be in the middle, so in Chrome
13+
// it doesn't look like there's extra padding on the right, while in IE the
14+
// scrollbar doesn't overlap with the dates.
15+
$cal-scrollbar-width: $mat-grid;
16+
17+
// Line width of the circle around the current date
18+
$cal-today-border-width: 1px;
19+
20+
// Months can have up to 6 partial weeks. We also may need space for a
21+
// title, but a 6-week month will always have an inline title.
22+
// (Proof: Longest month is 31 days. 28 of those days will appear in the
23+
// middle 4 weeks, leaving 3 days. To reach 6 weeks, there must be at least
24+
// 1 day before and after the middle 4 weeks. Therefore there can be at
25+
// most 2 days in the first week, giving enough space for an inline title.)
26+
$week-rows-in-month: 6; // DUPLICATED: material_calendar_picker.dart
27+
28+
$icon-size: $mat-grid * 3;
29+
$icon-button-size: $icon-size;
30+
31+
// Max-height of the entire preset list
32+
$preset-list-max-height: $mat-grid * 67;
33+
34+
/// Regular calendar sizes.
35+
$cal-date-size: 48px; // DUPLICATED: material_calendar_picker.dart
36+
$cal-title-padding: $mat-grid-type * 3;
37+
$cal-horizontal-padding: $mat-grid;
38+
$cal-width: $cal-date-size * $days-per-week
39+
+ $cal-scrollbar-width;
40+
41+
/// Compact calendar sizes.
42+
$cal-date-compact-size: 36px; // DUPLICATED: material_calendar_picker.dart
43+
$cal-title-compact-padding: $mat-grid-type * 3;
44+
$cal-compact-horizontal-padding: $mat-grid;
45+
$cal-compact-width: $cal-date-compact-size * $days-per-week
46+
+ $cal-scrollbar-width;
47+
48+
/// The margin between the highlight and the edge of the cell.
49+
$cal-highlight-margin: 2px;
50+
51+
/// Picker sizes.
52+
$picker-horizontal-padding: $mat-grid * 3;
53+
$picker-vertical-padding: $mat-grid * 2;
54+
55+
/// Compact picker sizes.
56+
$picker-compact-horizontal-padding: $mat-grid-type * 5;
57+
$picker-compact-vertical-padding: $mat-grid * 2;
58+
59+
/// material-date-range-picker whitespace.
60+
$date-range-picker-horizontal-padding: 2 * $mat-grid;
61+
$date-range-picker-vertical-padding: 10px;
62+
63+
/// Color for drop shadows.
64+
$cal-shadow-color: rgba(0, 0, 0, .26);
65+
66+
/// Custom tab under basic mode.
67+
$cal-basic-custom-margin: 9px;
68+
$cal-basic-custom-line-height: 17px;

0 commit comments

Comments
 (0)