@dereekb/dbx-web 8.11.2 → 8.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/extension/calendar/calendar.component.mjs +86 -0
- package/esm2020/lib/extension/calendar/calendar.module.mjs +74 -0
- package/esm2020/lib/extension/calendar/calendar.store.mjs +107 -0
- package/esm2020/lib/extension/calendar/index.mjs +4 -0
- package/esm2020/lib/extension/index.mjs +2 -0
- package/esm2020/lib/index.mjs +2 -1
- package/esm2020/lib/layout/column/two/two.column.component.mjs +6 -7
- package/esm2020/lib/layout/column/two/two.column.store.mjs +10 -1
- package/fesm2015/dereekb-dbx-web.mjs +260 -9
- package/fesm2015/dereekb-dbx-web.mjs.map +1 -1
- package/fesm2020/dereekb-dbx-web.mjs +261 -9
- package/fesm2020/dereekb-dbx-web.mjs.map +1 -1
- package/lib/extension/_extension.scss +38 -0
- package/lib/extension/calendar/_calendar.scss +188 -0
- package/lib/extension/calendar/calendar.component.d.ts +43 -0
- package/lib/extension/calendar/calendar.module.d.ts +22 -0
- package/lib/extension/calendar/calendar.store.d.ts +67 -0
- package/lib/extension/calendar/index.d.ts +3 -0
- package/lib/extension/calendar/style/_angular-calendar.scss +23 -0
- package/lib/extension/calendar/style/_variables.scss +76 -0
- package/lib/extension/calendar/style/common/calendar-tooltip.scss +113 -0
- package/lib/extension/calendar/style/day/calendar-day-view.scss +34 -0
- package/lib/extension/calendar/style/month/calendar-month-view.scss +221 -0
- package/lib/extension/calendar/style/week/calendar-week-view.scss +377 -0
- package/lib/extension/index.d.ts +1 -0
- package/lib/index.d.ts +1 -0
- package/lib/layout/column/_column.scss +17 -5
- package/lib/layout/column/two/two.column.component.d.ts +1 -1
- package/lib/layout/column/two/two.column.store.d.ts +15 -0
- package/lib/style/_all-core.scss +3 -1
- package/lib/style/_all-theme.scss +2 -0
- package/lib/style/_all-typography.scss +3 -1
- package/lib/style/_config.scss +30 -1
- package/lib/style/_core.scss +2 -3
- package/package.json +4 -3
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
@use '../style/config';
|
|
2
|
+
@use './calendar/calendar';
|
|
3
|
+
|
|
4
|
+
@mixin all-extension-core($theme-config) {
|
|
5
|
+
$calendar-enabled: 1;
|
|
6
|
+
|
|
7
|
+
@if ($theme-config != null) {
|
|
8
|
+
$calendar-enabled: config.get-dbx-extension-calendar-enabled($theme-config);
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
@if ($calendar-enabled == 1) {
|
|
12
|
+
@include calendar.core();
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
@mixin all-extension-typography($typography-config, $theme-config) {
|
|
17
|
+
$calendar-enabled: 1;
|
|
18
|
+
|
|
19
|
+
@if ($theme-config != null) {
|
|
20
|
+
$calendar-enabled: config.get-dbx-extension-calendar-enabled($theme-config);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
@if ($calendar-enabled == 1) {
|
|
24
|
+
@include calendar.typography($typography-config);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
@mixin all-extension-theme($theme-config) {
|
|
29
|
+
$calendar-enabled: 1;
|
|
30
|
+
|
|
31
|
+
@if ($theme-config != null) {
|
|
32
|
+
$calendar-enabled: config.get-dbx-extension-calendar-enabled($theme-config);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
@if ($calendar-enabled == 1) {
|
|
36
|
+
@include calendar.theme($theme-config);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
@use 'sass:map';
|
|
2
|
+
@use '../../style/theming';
|
|
3
|
+
@use './style/angular-calendar' as calendar;
|
|
4
|
+
|
|
5
|
+
// MARK: Variables
|
|
6
|
+
$calendar-header-height: theming.$content-navbar-height;
|
|
7
|
+
$calendar-title-height: 22px;
|
|
8
|
+
$calendar-week-content-header-height: 51px;
|
|
9
|
+
$calendar-month-content-header-height: 29px;
|
|
10
|
+
$calendar-scrollable-content-bottom-padding: 12px;
|
|
11
|
+
$calendar-week-content-all-day-events-height: 110px;
|
|
12
|
+
|
|
13
|
+
$calendar-title-and-header-height: calc($calendar-header-height + $calendar-title-height);
|
|
14
|
+
$calendar-content-border-consideration: 2px;
|
|
15
|
+
|
|
16
|
+
// MARK: Mixin
|
|
17
|
+
@mixin core() {
|
|
18
|
+
@include calendar.cal-core();
|
|
19
|
+
@include calendar.cal-theme(());
|
|
20
|
+
|
|
21
|
+
.dbx-calendar {
|
|
22
|
+
height: 100%;
|
|
23
|
+
|
|
24
|
+
.dbx-calendar-title {
|
|
25
|
+
height: $calendar-title-height;
|
|
26
|
+
font-weight: bold;
|
|
27
|
+
text-align: center;
|
|
28
|
+
margin: 0;
|
|
29
|
+
padding: 0;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
.dbx-calendar-header {
|
|
33
|
+
height: $calendar-header-height;
|
|
34
|
+
padding: 0px 8px;
|
|
35
|
+
|
|
36
|
+
display: flex;
|
|
37
|
+
width: 100%;
|
|
38
|
+
align-items: center;
|
|
39
|
+
box-sizing: border-box;
|
|
40
|
+
|
|
41
|
+
.dbx-calendar-controls {
|
|
42
|
+
width: 100%;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
.dbx-calendar-content {
|
|
47
|
+
height: 100%;
|
|
48
|
+
|
|
49
|
+
&.dbx-calendar-content-week {
|
|
50
|
+
height: calc(100% - $calendar-title-and-header-height - $calendar-week-content-header-height - $calendar-content-border-consideration);
|
|
51
|
+
margin-top: $calendar-week-content-header-height;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
&.dbx-calendar-content-month {
|
|
55
|
+
height: calc(100% - $calendar-title-and-header-height - $calendar-month-content-header-height - $calendar-content-border-consideration);
|
|
56
|
+
margin-top: $calendar-month-content-header-height;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
&.dbx-calendar-content-day .cal-week-view {
|
|
60
|
+
height: calc(100% - $calendar-title-and-header-height - $calendar-content-border-consideration);
|
|
61
|
+
overflow: auto;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
.cal-month-view {
|
|
66
|
+
position: relative;
|
|
67
|
+
width: 100%;
|
|
68
|
+
height: 100%;
|
|
69
|
+
|
|
70
|
+
.cal-header {
|
|
71
|
+
margin-top: -$calendar-month-content-header-height;
|
|
72
|
+
position: absolute;
|
|
73
|
+
top: 0;
|
|
74
|
+
left: 0;
|
|
75
|
+
right: 0;
|
|
76
|
+
box-sizing: border-box;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
.cal-days {
|
|
80
|
+
overflow: auto;
|
|
81
|
+
height: 100%;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
// Applies to both the day and week view.
|
|
86
|
+
.cal-week-view {
|
|
87
|
+
position: relative;
|
|
88
|
+
height: 100%;
|
|
89
|
+
width: 100%;
|
|
90
|
+
|
|
91
|
+
.cal-time-events {
|
|
92
|
+
.cal-day-column {
|
|
93
|
+
height: 1440px; // 1440 is the combined height of all the content.
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
.dbx-calendar-content-week {
|
|
99
|
+
.cal-week-view {
|
|
100
|
+
.cal-all-day-events {
|
|
101
|
+
// Day events set to specific height.
|
|
102
|
+
height: $calendar-week-content-all-day-events-height;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
.cal-day-headers {
|
|
106
|
+
margin-top: -$calendar-week-content-header-height;
|
|
107
|
+
position: absolute;
|
|
108
|
+
top: 0;
|
|
109
|
+
left: 0;
|
|
110
|
+
right: 0;
|
|
111
|
+
box-sizing: border-box;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
.cal-time-events {
|
|
115
|
+
// Weirdness caused by our hack for using the cal-day-headers as an absolute position.
|
|
116
|
+
overflow: auto;
|
|
117
|
+
padding-bottom: $calendar-scrollable-content-bottom-padding;
|
|
118
|
+
height: 100%;
|
|
119
|
+
box-sizing: border-box;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
.cal-day-view,
|
|
125
|
+
.cal-week-view {
|
|
126
|
+
.cal-event {
|
|
127
|
+
min-height: 25px;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
@mixin color($theme-config) {
|
|
134
|
+
$color-config: theming.get-color-config($theme-config);
|
|
135
|
+
$primary: map.get($color-config, 'primary');
|
|
136
|
+
$accent: map.get($color-config, 'accent');
|
|
137
|
+
$background: map.get($color-config, 'background');
|
|
138
|
+
$foreground: map.get($color-config, 'foreground');
|
|
139
|
+
|
|
140
|
+
$background-color: theming.get-color-from-palette($background, 'background');
|
|
141
|
+
$hover-color: theming.get-color-from-palette($background, 'hover');
|
|
142
|
+
$focused-color: theming.get-color-from-palette($background, 'focused-button');
|
|
143
|
+
$border-color: theming.get-color-from-palette($foreground, 'divider');
|
|
144
|
+
$text-color: theming.get-color-from-palette($foreground, 'text');
|
|
145
|
+
|
|
146
|
+
$event-icon-color: theming.get-color-from-palette($primary, 600);
|
|
147
|
+
$event-bg-color: theming.get-color-from-palette($primary, 800);
|
|
148
|
+
$event-text-color: theming.get-color-from-palette($primary, '800-contrast');
|
|
149
|
+
$highlight-color: theming.get-color-from-palette($accent, 300);
|
|
150
|
+
$weekend-color: theming.get-color-from-palette($accent, 500);
|
|
151
|
+
$badge-color: theming.get-color-from-palette($accent, 500);
|
|
152
|
+
$current-time-marker-color: theming.get-color-from-palette($accent, 400);
|
|
153
|
+
|
|
154
|
+
#{calendar.$cal-event-icon-color-var}: $event-icon-color; // text/border color
|
|
155
|
+
#{calendar.$cal-event-color-primary-var}: $event-text-color; // text/border color
|
|
156
|
+
#{calendar.$cal-event-color-secondary-var}: $event-bg-color; // event background color
|
|
157
|
+
#{calendar.$cal-border-color-var}: $border-color;
|
|
158
|
+
#{calendar.$cal-bg-primary-var}: $background-color;
|
|
159
|
+
#{calendar.$cal-bg-secondary-var}: $hover-color;
|
|
160
|
+
#{calendar.$cal-bg-active-var}: $hover-color;
|
|
161
|
+
#{calendar.$cal-bg-highlight-var}: rgba($highlight-color, 0.3);
|
|
162
|
+
#{calendar.$cal-today-bg-var}: $hover-color;
|
|
163
|
+
#{calendar.$cal-weekend-color-var}: $weekend-color;
|
|
164
|
+
#{calendar.$cal-badge-color-var}: $badge-color;
|
|
165
|
+
#{calendar.$cal-current-time-marker-color-var}: $current-time-marker-color;
|
|
166
|
+
#{calendar.$cal-white-var}: #fff;
|
|
167
|
+
#{calendar.$cal-gray-var}: #555;
|
|
168
|
+
#{calendar.$cal-black-var}: #000;
|
|
169
|
+
#{calendar.$cal-gradient-var}: inset 0 0 10px 0 rgba($background-color, 0.2);
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
@mixin typography($typography-config) {
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
@mixin theme($theme-config) {
|
|
176
|
+
@include theming.private-check-duplicate-theme-styles($theme-config, 'dbx-calendar') {
|
|
177
|
+
$color: theming.get-color-config($theme-config);
|
|
178
|
+
$typography: theming.get-typography-config($theme-config);
|
|
179
|
+
|
|
180
|
+
@if $color !=null {
|
|
181
|
+
@include color($theme-config);
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
@if $typography !=null {
|
|
185
|
+
@include typography($typography);
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { EventEmitter } from '@angular/core';
|
|
2
|
+
import { CalendarEvent } from 'angular-calendar';
|
|
3
|
+
import { DbxCalendarStore, CalendarDisplayType } from './calendar.store';
|
|
4
|
+
import { MatButtonToggleChange } from '@angular/material/button-toggle';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export interface DbxCalendarEvent<T> {
|
|
7
|
+
event: CalendarEvent<T>;
|
|
8
|
+
action?: string;
|
|
9
|
+
}
|
|
10
|
+
export declare class DbxCalendarComponent<T> {
|
|
11
|
+
readonly calendarStore: DbxCalendarStore<T>;
|
|
12
|
+
clickEvent: EventEmitter<DbxCalendarEvent<T>>;
|
|
13
|
+
readonly viewDate$: import("rxjs").Observable<Date>;
|
|
14
|
+
readonly events$: import("rxjs").Observable<{
|
|
15
|
+
title: string;
|
|
16
|
+
id?: string | number | undefined;
|
|
17
|
+
start: Date;
|
|
18
|
+
end?: Date | undefined;
|
|
19
|
+
color?: import("calendar-utils").EventColor | undefined;
|
|
20
|
+
actions?: import("calendar-utils").EventAction[] | undefined;
|
|
21
|
+
allDay?: boolean | undefined;
|
|
22
|
+
cssClass?: string | undefined;
|
|
23
|
+
resizable?: {
|
|
24
|
+
beforeStart?: boolean | undefined;
|
|
25
|
+
afterEnd?: boolean | undefined;
|
|
26
|
+
} | undefined;
|
|
27
|
+
draggable?: boolean | undefined;
|
|
28
|
+
meta?: any;
|
|
29
|
+
}[]>;
|
|
30
|
+
readonly activeDayIsOpen$: import("rxjs").Observable<boolean>;
|
|
31
|
+
readonly displayType$: import("rxjs").Observable<CalendarDisplayType>;
|
|
32
|
+
constructor(calendarStore: DbxCalendarStore<T>);
|
|
33
|
+
todayClicked(): void;
|
|
34
|
+
nextButtonClicked(): void;
|
|
35
|
+
previousButtonClicked(): void;
|
|
36
|
+
dayClicked({ date }: {
|
|
37
|
+
date: Date;
|
|
38
|
+
}): void;
|
|
39
|
+
eventClicked(action: string, event: CalendarEvent<T>): void;
|
|
40
|
+
typeToggleChanged(event: MatButtonToggleChange): void;
|
|
41
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DbxCalendarComponent<any>, never>;
|
|
42
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DbxCalendarComponent<any>, "dbx-calendar", never, {}, { "clickEvent": "clickEvent"; }, never, never>;
|
|
43
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
import * as i1 from "./calendar.component";
|
|
3
|
+
import * as i2 from "@angular/common";
|
|
4
|
+
import * as i3 from "@angular/material/icon";
|
|
5
|
+
import * as i4 from "@angular/material/button";
|
|
6
|
+
import * as i5 from "@angular/material/button-toggle";
|
|
7
|
+
import * as i6 from "angular-calendar";
|
|
8
|
+
import * as i7 from "@angular/flex-layout";
|
|
9
|
+
import * as i8 from "../../button/button.module";
|
|
10
|
+
export declare class DbxCalendarModule {
|
|
11
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DbxCalendarModule, never>;
|
|
12
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<DbxCalendarModule, [typeof i1.DbxCalendarComponent], [typeof i2.CommonModule, typeof i3.MatIconModule, typeof i4.MatButtonModule, typeof i5.MatButtonToggleModule, typeof i6.CalendarModule, typeof i6.CalendarDayModule, typeof i7.FlexLayoutModule, typeof i6.CalendarWeekModule, typeof i8.DbxButtonModule], [typeof i1.DbxCalendarComponent]>;
|
|
13
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<DbxCalendarModule>;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Provides default configuration for the DbxCalendarModule
|
|
17
|
+
*/
|
|
18
|
+
export declare class DbxCalendarRootModule {
|
|
19
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DbxCalendarRootModule, never>;
|
|
20
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<DbxCalendarRootModule, never, [typeof i6.CalendarModule], [typeof DbxCalendarModule]>;
|
|
21
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<DbxCalendarRootModule>;
|
|
22
|
+
}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { ComponentStore } from '@ngrx/component-store';
|
|
2
|
+
import { CalendarEvent } from 'angular-calendar';
|
|
3
|
+
import { Observable } from 'rxjs';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export declare enum CalendarDisplayType {
|
|
6
|
+
MONTH = "month",
|
|
7
|
+
WEEK = "week",
|
|
8
|
+
DAY = "day"
|
|
9
|
+
}
|
|
10
|
+
export interface CalendarViewDateRange {
|
|
11
|
+
type: CalendarDisplayType;
|
|
12
|
+
start: Date;
|
|
13
|
+
end: Date;
|
|
14
|
+
distance: number;
|
|
15
|
+
}
|
|
16
|
+
export interface CalendarState<T = any> {
|
|
17
|
+
/**
|
|
18
|
+
* Calendar display mode
|
|
19
|
+
*/
|
|
20
|
+
type: CalendarDisplayType;
|
|
21
|
+
/**
|
|
22
|
+
* Date that is selected.
|
|
23
|
+
*/
|
|
24
|
+
date: Date;
|
|
25
|
+
/**
|
|
26
|
+
* Whether or not the day was tapped/set twice.
|
|
27
|
+
*/
|
|
28
|
+
dateTappedTwice: boolean;
|
|
29
|
+
/**
|
|
30
|
+
* Set of calendar events.
|
|
31
|
+
*/
|
|
32
|
+
events: CalendarEvent<T>[];
|
|
33
|
+
}
|
|
34
|
+
export declare function visibleDateRangeForCalendarState(calendarState: CalendarState): CalendarViewDateRange;
|
|
35
|
+
export declare class DbxCalendarStore<T = any> extends ComponentStore<CalendarState<T>> {
|
|
36
|
+
constructor();
|
|
37
|
+
readonly tapNext: () => void;
|
|
38
|
+
readonly tapPrevious: () => void;
|
|
39
|
+
readonly date$: Observable<Date>;
|
|
40
|
+
readonly dateTappedTwice$: Observable<boolean>;
|
|
41
|
+
readonly events$: Observable<CalendarEvent<T>[]>;
|
|
42
|
+
readonly visibleEvents$: Observable<CalendarEvent<T>[]>;
|
|
43
|
+
readonly eventsForDateState$: Observable<{
|
|
44
|
+
date: Date;
|
|
45
|
+
events: CalendarEvent<any>[];
|
|
46
|
+
dateTappedTwice: boolean;
|
|
47
|
+
}>;
|
|
48
|
+
readonly eventsForDate$: Observable<CalendarEvent<any>[]>;
|
|
49
|
+
readonly visibleDateRange$: Observable<CalendarViewDateRange>;
|
|
50
|
+
readonly displayType$: Observable<CalendarDisplayType>;
|
|
51
|
+
/**
|
|
52
|
+
* Tap a day.
|
|
53
|
+
*
|
|
54
|
+
* - If the same day is presented, dateTappedTwice is flipped.
|
|
55
|
+
*/
|
|
56
|
+
readonly tapDay: (observableOrValue: Date | Observable<Date>) => import("rxjs").Subscription;
|
|
57
|
+
/**
|
|
58
|
+
* Set all events on the calendar.
|
|
59
|
+
*/
|
|
60
|
+
readonly setEvents: (observableOrValue: CalendarEvent<T>[] | Observable<CalendarEvent<T>[]>) => import("rxjs").Subscription;
|
|
61
|
+
/**
|
|
62
|
+
* Set all events on the calendar.
|
|
63
|
+
*/
|
|
64
|
+
readonly setDisplayType: (observableOrValue: CalendarDisplayType | Observable<CalendarDisplayType>) => import("rxjs").Subscription;
|
|
65
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DbxCalendarStore<any>, never>;
|
|
66
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<DbxCalendarStore<any>>;
|
|
67
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
@forward './variables';
|
|
2
|
+
|
|
3
|
+
@use './common/calendar-tooltip' as tooltip;
|
|
4
|
+
@use './day/calendar-day-view' as day;
|
|
5
|
+
@use './week/calendar-week-view' as week;
|
|
6
|
+
@use './month/calendar-month-view' as month;
|
|
7
|
+
|
|
8
|
+
@mixin cal-core() {
|
|
9
|
+
@include tooltip.cal-tooltip-core();
|
|
10
|
+
@include day.cal-day-view-core();
|
|
11
|
+
@include week.cal-week-view-core();
|
|
12
|
+
@include month.cal-month-view-core();
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
@mixin cal-theme($overrides: null) {
|
|
16
|
+
@if ($overrides == null) {
|
|
17
|
+
$overrides: ();
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
@include tooltip.cal-tooltip-theme($overrides);
|
|
21
|
+
@include month.cal-month-view-theme($overrides);
|
|
22
|
+
@include week.cal-week-view-theme($overrides);
|
|
23
|
+
}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
$cal-event-icon-color-var: --cal-event-icon-color;
|
|
2
|
+
$cal-event-color-primary-var: --cal-event-color-primary;
|
|
3
|
+
$cal-event-color-secondary-var: --cal-event-color-secondary;
|
|
4
|
+
$cal-border-color-var: --cal-border-color;
|
|
5
|
+
$cal-bg-primary-var: --cal-bg-primary;
|
|
6
|
+
$cal-bg-secondary-var: --cal-bg-secondary;
|
|
7
|
+
$cal-bg-active-var: --cal-bg-active;
|
|
8
|
+
$cal-bg-active-dragover-var: --cal-bg-active-dragover;
|
|
9
|
+
$cal-bg-highlight-var: --cal-bg-highlight;
|
|
10
|
+
$cal-today-bg-var: --cal-today-bg;
|
|
11
|
+
$cal-weekend-color-var: --cal-weekend-color;
|
|
12
|
+
$cal-badge-color-var: --cal-badge-color;
|
|
13
|
+
$cal-current-time-marker-color-var: --cal-current-time-marker-color;
|
|
14
|
+
$cal-white-var: --cal-white;
|
|
15
|
+
$cal-gray-var: --cal-gray;
|
|
16
|
+
$cal-black-var: --cal-black;
|
|
17
|
+
$cal-gradient-var: --cal-gradient;
|
|
18
|
+
|
|
19
|
+
$cal-event-icon-color: var($cal-event-icon-color-var);
|
|
20
|
+
$cal-event-color-primary: var($cal-event-color-primary-var);
|
|
21
|
+
$cal-event-color-secondary: var($cal-event-color-secondary-var);
|
|
22
|
+
$cal-border-color: var($cal-border-color-var);
|
|
23
|
+
$cal-bg-primary: var($cal-bg-primary-var);
|
|
24
|
+
$cal-bg-secondary: var($cal-bg-secondary-var);
|
|
25
|
+
$cal-bg-active: var($cal-bg-active-var);
|
|
26
|
+
$cal-bg-active-dragover: var($cal-bg-active-dragover-var);
|
|
27
|
+
$cal-bg-highlight: var($cal-bg-highlight-var);
|
|
28
|
+
$cal-today-bg: var($cal-today-bg-var);
|
|
29
|
+
$cal-weekend-color: var($cal-weekend-color-var);
|
|
30
|
+
$cal-badge-color: var($cal-badge-color-var);
|
|
31
|
+
$cal-current-time-marker-color: var($cal-current-time-marker-color-var);
|
|
32
|
+
$cal-white: var($cal-white-var);
|
|
33
|
+
$cal-gray: var($cal-gray-var);
|
|
34
|
+
$cal-black: var($cal-black-var);
|
|
35
|
+
$cal-gradient: var($cal-gradient-var);
|
|
36
|
+
|
|
37
|
+
$cal-hint-opacity: 0.7;
|
|
38
|
+
$cal-out-month-hint-opacity: 0.3;
|
|
39
|
+
|
|
40
|
+
$cal-vars: () !default;
|
|
41
|
+
$cal-vars: map-merge(
|
|
42
|
+
(
|
|
43
|
+
event-icon-color: $cal-event-icon-color,
|
|
44
|
+
// the default event primary color if not set on the event color object
|
|
45
|
+
event-color-primary: $cal-event-color-primary,
|
|
46
|
+
// the default event secondary color if not set on the event color object
|
|
47
|
+
event-color-secondary: $cal-event-color-secondary,
|
|
48
|
+
// the border color used between cells
|
|
49
|
+
border-color: $cal-border-color,
|
|
50
|
+
// the primary background of each component
|
|
51
|
+
bg-primary: $cal-bg-primary,
|
|
52
|
+
// the secondary background, used for alternating rows on the day and week views
|
|
53
|
+
bg-secondary: $cal-bg-secondary,
|
|
54
|
+
// the color used when hovering over cells and headers
|
|
55
|
+
bg-active: $cal-bg-active,
|
|
56
|
+
// the color used when hovering over cells and headers
|
|
57
|
+
bg-highlight: $cal-bg-highlight,
|
|
58
|
+
// the background color to mark today in the week view header
|
|
59
|
+
today-bg: $cal-today-bg,
|
|
60
|
+
// the color used to indicate a day is a weekend
|
|
61
|
+
weekend-color: $cal-weekend-color,
|
|
62
|
+
// the badge background color on the month view
|
|
63
|
+
badge-color: $cal-badge-color,
|
|
64
|
+
// the current time marker color on the week and day view
|
|
65
|
+
current-time-marker-color: $cal-current-time-marker-color,
|
|
66
|
+
// a standard white color used for tooltip text and month view event titles
|
|
67
|
+
white: $cal-white,
|
|
68
|
+
// a standard gray color used for the background color of the open month view events box
|
|
69
|
+
gray: $cal-gray,
|
|
70
|
+
// a standard black color used as the tooltip background and the gradient color of the open month view events
|
|
71
|
+
black: $cal-black,
|
|
72
|
+
// box shadow
|
|
73
|
+
gradient: $cal-gradient
|
|
74
|
+
),
|
|
75
|
+
$cal-vars
|
|
76
|
+
);
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
@use 'sass:map';
|
|
2
|
+
@use '../variables';
|
|
3
|
+
|
|
4
|
+
@mixin cal-tooltip-core() {
|
|
5
|
+
.cal-tooltip {
|
|
6
|
+
position: absolute;
|
|
7
|
+
z-index: 1070;
|
|
8
|
+
display: block;
|
|
9
|
+
font-style: normal;
|
|
10
|
+
font-weight: normal;
|
|
11
|
+
letter-spacing: normal;
|
|
12
|
+
line-break: auto;
|
|
13
|
+
line-height: 1.5;
|
|
14
|
+
text-align: start;
|
|
15
|
+
text-decoration: none;
|
|
16
|
+
text-shadow: none;
|
|
17
|
+
text-transform: none;
|
|
18
|
+
white-space: normal;
|
|
19
|
+
word-break: normal;
|
|
20
|
+
word-spacing: normal;
|
|
21
|
+
font-size: 11px;
|
|
22
|
+
word-wrap: break-word;
|
|
23
|
+
opacity: 0.9;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
.cal-tooltip.cal-tooltip-top {
|
|
27
|
+
padding: 5px 0;
|
|
28
|
+
margin-top: -3px;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
.cal-tooltip.cal-tooltip-top .cal-tooltip-arrow {
|
|
32
|
+
bottom: 0;
|
|
33
|
+
left: 50%;
|
|
34
|
+
margin-left: -5px;
|
|
35
|
+
border-width: 5px 5px 0;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
.cal-tooltip.cal-tooltip-right {
|
|
39
|
+
padding: 0 5px;
|
|
40
|
+
margin-left: 3px;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
.cal-tooltip.cal-tooltip-right .cal-tooltip-arrow {
|
|
44
|
+
top: 50%;
|
|
45
|
+
left: 0;
|
|
46
|
+
margin-top: -5px;
|
|
47
|
+
border-width: 5px 5px 5px 0;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
.cal-tooltip.cal-tooltip-bottom {
|
|
51
|
+
padding: 5px 0;
|
|
52
|
+
margin-top: 3px;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
.cal-tooltip.cal-tooltip-bottom .cal-tooltip-arrow {
|
|
56
|
+
top: 0;
|
|
57
|
+
left: 50%;
|
|
58
|
+
margin-left: -5px;
|
|
59
|
+
border-width: 0 5px 5px;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
.cal-tooltip.cal-tooltip-left {
|
|
63
|
+
padding: 0 5px;
|
|
64
|
+
margin-left: -3px;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
.cal-tooltip.cal-tooltip-left .cal-tooltip-arrow {
|
|
68
|
+
top: 50%;
|
|
69
|
+
right: 0;
|
|
70
|
+
margin-top: -5px;
|
|
71
|
+
border-width: 5px 0 5px 5px;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
.cal-tooltip-inner {
|
|
75
|
+
max-width: 200px;
|
|
76
|
+
padding: 3px 8px;
|
|
77
|
+
text-align: center;
|
|
78
|
+
border-radius: 0.25rem;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
.cal-tooltip-arrow {
|
|
82
|
+
position: absolute;
|
|
83
|
+
width: 0;
|
|
84
|
+
height: 0;
|
|
85
|
+
border-color: transparent;
|
|
86
|
+
border-style: solid;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
@mixin cal-tooltip-theme($overrides) {
|
|
91
|
+
$theme: map-merge(variables.$cal-vars, $overrides);
|
|
92
|
+
|
|
93
|
+
.cal-tooltip.cal-tooltip-top .cal-tooltip-arrow {
|
|
94
|
+
border-top-color: map-get($theme, black);
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
.cal-tooltip.cal-tooltip-right .cal-tooltip-arrow {
|
|
98
|
+
border-right-color: map-get($theme, black);
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
.cal-tooltip.cal-tooltip-bottom .cal-tooltip-arrow {
|
|
102
|
+
border-bottom-color: map-get($theme, black);
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
.cal-tooltip.cal-tooltip-left .cal-tooltip-arrow {
|
|
106
|
+
border-left-color: map-get($theme, black);
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
.cal-tooltip-inner {
|
|
110
|
+
color: map-get($theme, white);
|
|
111
|
+
background-color: map-get($theme, black);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
@use 'sass:map';
|
|
2
|
+
@use '../variables';
|
|
3
|
+
|
|
4
|
+
@mixin cal-day-view-core() {
|
|
5
|
+
.cal-day-view {
|
|
6
|
+
/* stylelint-disable-next-line selector-type-no-unknown */
|
|
7
|
+
mwl-calendar-week-view-header {
|
|
8
|
+
display: none;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
.cal-events-container {
|
|
12
|
+
margin-left: 70px;
|
|
13
|
+
|
|
14
|
+
[dir='rtl'] & {
|
|
15
|
+
margin-left: initial;
|
|
16
|
+
margin-right: 70px;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
.cal-day-column {
|
|
21
|
+
border-left: 0;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
.cal-current-time-marker {
|
|
25
|
+
margin-left: 70px;
|
|
26
|
+
width: calc(100% - 70px);
|
|
27
|
+
|
|
28
|
+
[dir='rtl'] & {
|
|
29
|
+
margin-left: initial;
|
|
30
|
+
margin-right: 70px;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|