Skip to content

Commit

Permalink
feat(stark-ui): implement stark-date-time-picker module/component
Browse files Browse the repository at this point in the history
  • Loading branch information
carlo-nomes authored and christophercr committed Jun 5, 2019
1 parent 9429f4f commit 6075e6a
Show file tree
Hide file tree
Showing 32 changed files with 2,202 additions and 38 deletions.
49 changes: 25 additions & 24 deletions packages/stark-ui/assets/stark-ui-bundle.scss
Original file line number Diff line number Diff line change
@@ -1,55 +1,56 @@
/* Stark styles */
@import "../assets/styles/base";
@import "../assets/styles/base"; /* contains basic style corrections needed by the app to render correctly, so it should be loaded first */
@import "../assets/theming/base-theme";
@import "../assets/styles/components/button";
@import "../assets/styles/components/button-theme";
@import "../assets/styles/components/icon";
@import "../assets/styles/components/card";
@import "../assets/styles/components/card-theme";
@import "../assets/styles/components/header";
@import "../assets/styles/components/header-theme";
@import "../assets/styles/components/icon";
/* Stark components */
@import "../src/modules/app-logo/components/app-logo.component";
@import "../src/modules/app-logo/components/app-logo-theme";
@import "../src/modules/app-data/components/app-data.component";
@import "../src/modules/action-bar/components/action-bar-theme";
@import "../src/modules/action-bar/components/action-bar.component";
@import "../src/modules/app-data/components/app-data-theme";
@import "../src/modules/app-footer/components/app-footer.component";
@import "../src/modules/app-data/components/app-data.component";
@import "../src/modules/app-footer/components/app-footer-theme";
@import "../src/modules/app-menu/components/app-menu.component";
@import "../src/modules/app-footer/components/app-footer.component";
@import "../src/modules/app-logo/components/app-logo-theme";
@import "../src/modules/app-logo/components/app-logo.component";
@import "../src/modules/app-menu/components/app-menu-theme";
@import "../src/modules/action-bar/components/action-bar.component";
@import "../src/modules/action-bar/components/action-bar-theme";
@import "../src/modules/app-sidebar/components/app-sidebar.component";
@import "../src/modules/app-menu/components/app-menu.component";
@import "../src/modules/app-sidebar/components/app-sidebar-theme";
@import "../src/modules/app-sidebar/components/app-sidebar.component";
@import "../src/modules/breadcrumb/components/breadcrumb.component";
@import "../src/modules/collapsible/components/collapsible.component";
@import "../src/modules/collapsible/components/collapsible-theme";
@import "../src/modules/collapsible/components/collapsible.component";
@import "../src/modules/date-range-picker/components/date-range-picker.component";
@import "../src/modules/date-time-picker/components/date-time-picker.component";
@import "../src/modules/dialogs/components/alert-dialog-theme";
@import "../src/modules/dialogs/components/alert-dialog.component";
@import "../src/modules/dialogs/components/confirm-dialog-theme";
@import "../src/modules/dialogs/components/prompt-dialog.component";
@import "../src/modules/dialogs/components/prompt-dialog-theme";
@import "../src/modules/dialogs/components/prompt-dialog.component";
@import "../src/modules/dropdown/components/dropdown-theme";
@import "../src/modules/dropdown/components/dropdown.component";
@import "../src/modules/generic-search/components/generic-search/generic-search.component";
@import "../src/modules/language-selector/components/language-selector.component";
@import "../src/modules/message-pane/components/message-pane.component";
@import "../src/modules/message-pane/components/message-pane-theme";
@import "../src/modules/minimap/components/minimap.component";
@import "../src/modules/message-pane/components/message-pane.component";
@import "../src/modules/minimap/components/minimap-theme";
@import "../src/modules/slider/components/slider-theme";
@import "../src/modules/pagination/components/pagination.component";
@import "../src/modules/minimap/components/minimap.component";
@import "../src/modules/pagination/components/pagination-theme";
@import "../src/modules/pagination/components/pagination.component";
@import "../src/modules/pretty-print/components/pretty-print.component";
@import "../src/modules/table/components/table.component";
@import "../src/modules/table/components/table-theme";
@import "../src/modules/table/components/dialogs/multisort.component";
@import "../src/modules/dropdown/components/dropdown-theme";
@import "../src/modules/route-search/components/route-search.component";
@import "../src/modules/route-search/components/route-search-theme";
@import "../src/modules/toast-notification/components/toast-notification.component";
@import "../src/modules/toast-notification/components/toast-notification-theme";
@import "../src/modules/dropdown/components/dropdown.component";
@import "../src/modules/route-search/components/route-search.component";
@import "../src/modules/session-ui/components/session-card/session-card.component";
@import "../src/modules/slider/components/slider-theme";
@import "../src/modules/table/components/dialogs/multisort.component";
@import "../src/modules/table/components/table-theme";
@import "../src/modules/table/components/table.component";
@import "../src/modules/toast-notification/components/toast-notification-theme";
@import "../src/modules/toast-notification/components/toast-notification.component";
/* Stark session-ui pages */
@import "../src/modules/session-ui/pages/session-ui-pages";
@import "../src/modules/session-ui/pages/login/login-page.component";
Expand Down
1 change: 1 addition & 0 deletions packages/stark-ui/src/modules.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ export * from "./modules/breadcrumb";
export * from "./modules/collapsible";
export * from "./modules/date-picker";
export * from "./modules/date-range-picker";
export * from "./modules/date-time-picker";
export * from "./modules/dialogs";
export * from "./modules/dropdown";
export * from "./modules/generic-search";
Expand Down
2 changes: 2 additions & 0 deletions packages/stark-ui/src/modules/date-time-picker.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
export * from "./date-time-picker/date-time-picker.module";
export * from "./date-time-picker/components";
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
/**
* @ignore
*/
export const translationsEn: object = {
STARK: {
DATE_TIME_PICKER: {
CLEAR_DATETIME: "Clear datetime"
}
}
};
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
/**
* @ignore
*/
export const translationsFr: object = {
STARK: {
DATE_TIME_PICKER: {
CLEAR_DATETIME: "Effacer la date et l'heure"
}
}
};
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
/**
* @ignore
*/
export const translationsNl: object = {
STARK: {
DATE_TIME_PICKER: {
CLEAR_DATETIME: "Verwijder datetime"
}
}
};
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export * from "./components/date-time-picker.component";
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
<div class="date-time-wrapper" [formGroup]="dateTimeFormGroup">
<stark-date-picker
[pickerId]="pickerId"
[pickerName]="pickerName"
formControlName="date"
(dateChange)="onDateTimeChange()"
[dateFilter]="dateFilter"
[dateMask]="dateMask"
[required]="required"
[max]="max"
[min]="min"
></stark-date-picker>

<input
matInput
#timeInput
id="{{ pickerId + '-time-input' }}"
name="{{ pickerName + '-time-input' }}"
class="time-input"
formControlName="time"
(change)="onDateTimeChange()"
[starkTimestampMask]="timeMask"
[required]="required"
/>
<div class="mat-form-field-suffix mat-datepicker-toggle">
<button mat-icon-button (click)="focusTimeInput($event)" [disabled]="disabled">
<mat-icon svgIcon="clock"></mat-icon>
</button>
</div>
</div>

<button
mat-icon-button
(click)="clearDateTime()"
class="clear-date-time-button"
[ngClass]="{ hidden: disabled || !focused || (!dateTimeFormGroup.value.date && !dateTimeFormGroup.value.time) }"
>
<mat-icon svgIcon="close" [matTooltip]="'STARK.DATE_TIME_PICKER.CLEAR_DATETIME' | translate"></mat-icon>
</button>
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
/* The 'stark-date-time-picker-form-field-wrapper' is added dynamically by the component to the surrounding form field wrapper*/
.mat-form-field .mat-form-field-wrapper.stark-date-time-picker-form-field-wrapper {
width: 280px;
}

.stark-date-time-picker {
display: flex;

.date-time-wrapper {
width: 100%;
display: flex;

input {
text-align: left;
}

/* Date */
> .stark-date-picker {
flex: 2;
max-width: 200px;
}

/* Time */
> .time-input {
flex: 1;
max-width: 60px;
}
}

.mat-datepicker-toggle {
transition: color 500ms;
}

/*
&:not(.floating) .mat-datepicker-toggle {
color: rgba(0, 0, 0, 0);
}
*/

.clear-date-time-button {
height: 20px;
width: 20px;
line-height: 20px;
position: absolute;
margin-left: 280px; /* should be the same width of the 'stark-date-time-picker-form-field-wrapper' (see above) */

&.hidden {
display: none;
}
}
}
Loading

0 comments on commit 6075e6a

Please sign in to comment.