capibara 1.1.17 → 1.1.21

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "capibara",
3
- "version": "1.1.17",
3
+ "version": "1.1.21",
4
4
  "main": "dist/index.js",
5
5
  "repository": {
6
6
  "type": "git",
@@ -4,7 +4,6 @@ import dateUtils from '../util/dateUtils';
4
4
  import tableElements from '../util/tableElements';
5
5
  import styleUtils from '../util/styleUtils';
6
6
 
7
-
8
7
  /**
9
8
  * Capibara, planilla para despliegue de datos por fecha como GANTT
10
9
  * orientado inicialmente a datos diarios de items
@@ -14,7 +13,6 @@ import styleUtils from '../util/styleUtils';
14
13
  export class Capibara{
15
14
 
16
15
 
17
-
18
16
  /**
19
17
  * @constructor
20
18
  * Instancia variables de planilla Capibara, con configuracion
@@ -30,18 +28,21 @@ export class Capibara{
30
28
 
31
29
  if(this.containerElement == null) console.error("Elemento dom segun config.selector, no encontrado");
32
30
 
33
- this.initialized = false;
34
- this.$capibara = null;
35
- this.$elements = {};
36
- this.tabSelected = null;
37
- this.$inputsNavRight = [];
38
- this.selected = [];
39
- this.config = config;
40
- this.lastDataDay = null;
41
- this.isShowNavExtended = false;
42
- this.isShowNavInitial = true;
43
- this.isShowNavButtons = true;
44
- this.isMobile = false;
31
+ this.initialized = false;
32
+ this.$capibara = null;
33
+ this.$elements = {};
34
+ this.tabSelected = null;
35
+ this.$inputsNavRight = [];
36
+ this.selected = [];
37
+ this.config = config;
38
+ this.lastDataDay = null;
39
+ this.isShowNavExtended = false;
40
+ this.isShowNavInitial = true;
41
+ this.isShowNavButtons = true;
42
+ this.isMobile = false;
43
+ this.lastMousePosition = null;
44
+ this.isVisibleContextMenu = false;
45
+
45
46
  }
46
47
 
47
48
 
@@ -55,17 +56,17 @@ export class Capibara{
55
56
  * - crea planilla llamando a drawTable
56
57
  * - Agrega eventos a planilla
57
58
  * - mueve scroll al medio de la tabla
58
- *
59
59
  */
60
60
  init(){
61
61
 
62
62
  this.tabSelected = null;
63
63
  this.$capibara = null;
64
64
  this.$elements = {};
65
- this.$inputsNavRight = [];
65
+ this.$inputsNavRight = [];
66
66
  this.selected = [];
67
67
  this.lastDataDay = null;
68
68
  this.isMobile = utils.checkIsMobile();
69
+ this.isVisibleContextMenu = false;
69
70
 
70
71
  this.setAllCSSVariables();
71
72
  this.drawTable();
@@ -98,7 +99,7 @@ export class Capibara{
98
99
  let initialTab = config.timeline.tabs[0];
99
100
 
100
101
  let $capibara = tableElements.createAgTable(config);
101
- let $corner = tableElements.createCorner(config);
102
+ let $corner = tableElements.createCorner(config, initialTab);
102
103
  let $cornerRight = tableElements.createCornerRight(config);
103
104
  let $headerTop = tableElements.createHeaderTop(config);
104
105
  let $header = tableElements.createHeader(config);
@@ -113,8 +114,11 @@ export class Capibara{
113
114
  let $plotHorizontalContainer = tableElements.createPlotHorizontalContainer(config);
114
115
  let $detailDay = tableElements.createDetailDay(config,config.data[0].children[0]);
115
116
 
117
+ let { elem:$contextMenu, isVisible } = tableElements.createContextMenu({config});
118
+ this.isVisibleContextMenu = isVisible;
119
+
116
120
  let $navRight, inputs;
117
- ({element:$navRight, inputs} = tableElements.createNavRight(config, $navRight));
121
+ ({element:$navRight, inputs} = tableElements.createNavRight(config));
118
122
 
119
123
  let start = new Date(config.timeline.start);
120
124
  let end = new Date(config.timeline.end);
@@ -129,9 +133,10 @@ export class Capibara{
129
133
 
130
134
  let $background = tableElements.createBackground(config);
131
135
  let $container = dom.createElement("div", { className:"container-tl"});
132
- let $table = dom.createElement("div", { className: "table"}, {style:{width:width}});
133
136
  let $dayMouseOver = dom.createElement("div", { className: "day-mouse-over"});
134
137
 
138
+ let $table = dom.createElement("div", { className: "table"}, {style:{width:width}});
139
+
135
140
  $table.appendChild($background);
136
141
  $table.appendChild($dayMouseOver);
137
142
  $table.appendChild($detailDay);
@@ -158,12 +163,14 @@ export class Capibara{
158
163
  $capibara.appendChild($cornerRight);
159
164
  $capibara.appendChild($container);
160
165
  $capibara.appendChild($navRight);
166
+ if($contextMenu) $capibara.appendChild($contextMenu);
161
167
 
162
168
 
163
169
  this.$inputsNavRight = inputs;
164
170
  this.$capibara = $capibara;
165
171
  this.$elements = {
166
172
  $detailDay,
173
+ $contextMenu,
167
174
  $floatBoxContainer,
168
175
  $selectContainer,
169
176
  $table,
@@ -259,6 +266,8 @@ export class Capibara{
259
266
 
260
267
  if(redraw){
261
268
  this.redraw({
269
+ cornerLeft: true,
270
+ navLeft: true,
262
271
  navRight: true,
263
272
  floatBox:true
264
273
  })
@@ -303,7 +312,7 @@ export class Capibara{
303
312
  */
304
313
  setShowNavInitial(isShowNavInitial){
305
314
  this.isShowNavInitial = isShowNavInitial;
306
- styleUtils.setNavLeftInitialStyle(this.config, this.isShowNavInitial);
315
+ styleUtils.setNavLeftInitialStyle(this.config, this.isShowNavInitial, this.tabSelected);
307
316
  }
308
317
 
309
318
  /**
@@ -311,14 +320,14 @@ export class Capibara{
311
320
  */
312
321
  setShowNavExtended(isShowNavExtended){
313
322
  this.isShowNavExtended = isShowNavExtended;
314
- styleUtils.setNavLeftExtendedStyle(this.config, this.isShowNavExtended);
323
+ styleUtils.setNavLeftExtendedStyle(this.config, this.isShowNavExtended, this.tabSelected);
315
324
  }
316
325
  /**
317
326
  * Muestra/Oculta Sidebar buttons
318
327
  */
319
328
  setShowNavButtons(isShowNavButtons){
320
329
  this.isShowNavButtons = isShowNavButtons;
321
- styleUtils.setNavLeftButtonsStyle(this.config, this.isShowNavButtons);
330
+ styleUtils.setNavLeftButtonsStyle(this.config, this.isShowNavButtons, this.tabSelected);
322
331
  }
323
332
 
324
333
 
@@ -622,12 +631,62 @@ export class Capibara{
622
631
  * @param {Object} evt - Evento de mouseleave
623
632
  */
624
633
  mouseMoveOnTable(evt){
625
- let pos = utils.eventToPosition(this.config, evt, this.$elements.$table);
634
+ if(this.isVisibleContextMenu) return;
635
+ let pos = utils.eventToPosition(this.config, evt, this.$elements.$table);
636
+ if(this.lastMousePosition == null ||
637
+ this.lastMousePosition.left != pos.left ||
638
+ this.lastMousePosition.top != pos.top
639
+ ){
626
640
  this.$elements.$dayMouseOver.style.transform = "translate("+pos.left+"px ,"+pos.top+"px)";
627
641
  evt.preventDefault();
628
- };
642
+ this.lastMousePosition = pos;
643
+ }
644
+ };
645
+
646
+
647
+
648
+ rightClickOnCapibara(evt){
649
+ if(this.config.timeline.contextMenu){
650
+ this.hideDetailDay();
651
+ evt.preventDefault();
652
+ }
653
+ };
654
+
655
+ rightClickOnTable(evt){
656
+ if(this.config.timeline.contextMenu){
657
+ this.hideDetailDay();
658
+ this.showContextMenu(evt);
659
+ evt.preventDefault();
660
+ }
661
+ };
662
+
663
+ showContextMenu(evt){
664
+
665
+ let date = utils.getDayByEvent(this.config, evt, this.$elements.$table);
666
+ let item = utils.getItemByEvent(this.config, evt, this.$elements.$table);
667
+
668
+ if(this.isVisibleContextMenu) {
669
+ this.hideContextMenu();
670
+ return;
671
+ }
629
672
 
673
+ let position = utils.eventToPosition(this.config, evt, this.$elements.$table);
674
+ let { elem:$elem, isVisible } = tableElements.createContextMenu({
675
+ config: this.config,
676
+ evt,
677
+ position,
678
+ date,
679
+ item,
680
+ selected: this.selected
681
+ });
630
682
 
683
+ if($elem){
684
+ this.isVisibleContextMenu = isVisible;
685
+ this.$elements.$contextMenu.replaceWith($elem);
686
+ this.$elements.$contextMenu = $elem;
687
+ }
688
+ evt.preventDefault();
689
+ }
631
690
 
632
691
  /**
633
692
  * Captura el evento click en $table, para seleccionar dias
@@ -736,6 +795,11 @@ export class Capibara{
736
795
  let index = utils.indexSelectedDay(this.selected, {date, item});
737
796
  this.selected.splice(index, 1);
738
797
  }
798
+
799
+ this.selected.forEach((s, index) => {
800
+ s.index = index+1;
801
+ })
802
+
739
803
  if(redraw){
740
804
  this.redrawSelection()
741
805
  }
@@ -752,7 +816,13 @@ export class Capibara{
752
816
 
753
817
  if(index < 0){
754
818
 
755
- this.selected.push({date, item, pos});
819
+ this.selected.push({
820
+ index: 0,
821
+ date,
822
+ item,
823
+ pos,
824
+ });
825
+
756
826
  let dataDay = null;
757
827
  if(item.data){
758
828
  dataDay = item.data.find(d => {
@@ -788,6 +858,10 @@ export class Capibara{
788
858
  }
789
859
  })
790
860
 
861
+ this.selected.forEach((s, index) => {
862
+ s.index = index+1;
863
+ })
864
+
791
865
  if(redraw){
792
866
  this.redrawSelection()
793
867
  }
@@ -834,6 +908,13 @@ export class Capibara{
834
908
  this.$elements.$detailDay.classList.add("dd-hide");
835
909
  };
836
910
 
911
+ hideContextMenu(){
912
+ this.$elements.$contextMenu.classList.add("cm-hide");
913
+ this.isVisibleContextMenu = false;
914
+ };
915
+
916
+
917
+
837
918
 
838
919
 
839
920
  /**
@@ -843,8 +924,8 @@ export class Capibara{
843
924
  * @param {Object} evt - evento de mousemove, para posiciones en pantalla
844
925
  */
845
926
  refreshDetailDayPosition(position){
846
- let dayWidth = parseFloat(utils.getCSSVariable("--day-width"));
847
- let itemHeight = parseFloat(utils.getCSSVariable("--item-height"));
927
+ let dayWidth = parseFloat(utils.getCSSVariable(this.config, "--day-width"));
928
+ let itemHeight = parseFloat(utils.getCSSVariable(this.config, "--item-height"));
848
929
 
849
930
  this.$elements.$detailDay.style.top = position.top + "px";
850
931
  this.$elements.$detailDay.style.left = position.left + dayWidth + "px";
@@ -904,6 +985,17 @@ export class Capibara{
904
985
  }
905
986
  }
906
987
 
988
+ clickDateHeader(evt){
989
+ let date = evt.detail.date;
990
+ this.selected = [];
991
+ this.config.data.forEach(parent => {
992
+ parent.children.forEach(item => {
993
+ this.selectByItemDate(date, item, false);
994
+ });
995
+ });
996
+ this.redrawSelection();
997
+ }
998
+
907
999
  /**
908
1000
  * Captura evento window resize
909
1001
  * para verificar si es mobile o no
@@ -953,28 +1045,35 @@ export class Capibara{
953
1045
  }
954
1046
 
955
1047
 
956
-
957
1048
  /**
958
1049
  * Agrega eventos a los elementos del dom de la planilla
959
1050
  * usando el objecto $capibara
960
1051
  */
961
1052
  addEvents(){
962
- this.$capibara.addEventListener("toggleDark", this.toggleDark.bind(this));
963
- this.$capibara.addEventListener("toggleHeader", this.toggleHeader.bind(this));
964
- this.$capibara.addEventListener("toggleSidebar", this.toggleSidebar.bind(this));
965
- this.$capibara.addEventListener("toggleSidebarRight", this.toggleSidebarRight.bind(this));
966
- this.$capibara.addEventListener("saveMultiInput", this.saveInputsNavRight.bind(this));
967
- this.$capibara.addEventListener("cancelMultiInput", this.cancelMultiInput.bind(this));
968
- this.$capibara.addEventListener("overNavItem", this.overNavItem.bind(this));
969
- this.$capibara.addEventListener("leaveNavItem", this.leaveNavItem.bind(this));
970
- this.$capibara.addEventListener("clickNavLeftTreeIcon", this.clickNavLeftTreeIcon.bind(this));
971
- this.$capibara.addEventListener("mouseOverFloatBox", this.mouseOverFloatBox.bind(this));
972
- this.$capibara.addEventListener("selectTabHeader", e => { this.selectTab(e.detail.tab); });
1053
+ this.$capibara.addEventListener("click" , this.hideContextMenu.bind(this));
1054
+ this.$capibara.addEventListener("contextmenu" , this.rightClickOnCapibara.bind(this));
1055
+ this.$capibara.addEventListener("toggleDark" , this.toggleDark.bind(this));
1056
+ this.$capibara.addEventListener("toggleHeader" , this.toggleHeader.bind(this));
1057
+ this.$capibara.addEventListener("toggleSidebar" , this.toggleSidebar.bind(this));
1058
+ this.$capibara.addEventListener("toggleSidebarRight" , this.toggleSidebarRight.bind(this));
1059
+ this.$capibara.addEventListener("saveMultiInput" , this.saveInputsNavRight.bind(this));
1060
+ this.$capibara.addEventListener("cancelMultiInput" , this.cancelMultiInput.bind(this));
1061
+ this.$capibara.addEventListener("overNavItem" , this.overNavItem.bind(this));
1062
+ this.$capibara.addEventListener("leaveNavItem" , this.leaveNavItem.bind(this));
1063
+ this.$capibara.addEventListener("clickNavLeftTreeIcon" , this.clickNavLeftTreeIcon.bind(this));
1064
+ this.$capibara.addEventListener("mouseOverFloatBox" , this.mouseOverFloatBox.bind(this));
1065
+ this.$capibara.addEventListener("selectTabHeader" , e => { this.selectTab(e.detail.tab); });
973
1066
 
974
1067
  this.$elements.$floatBoxContainer.addEventListener("mousemove", this.mouseMoveOnFlexBoxContainer.bind(this));
975
1068
  this.$elements.$floatBoxContainer.addEventListener("mouseleave", this.mouseLeaveOnFloatBoxContainer.bind(this));
1069
+
976
1070
  this.$elements.$table.addEventListener("mousemove", this.mouseMoveOnTable.bind(this) );
977
1071
  this.$elements.$table.addEventListener("click", this.clickOnTable.bind(this));
1072
+ this.$elements.$table.addEventListener("contextmenu", this.rightClickOnTable.bind(this));
1073
+
1074
+ this.$elements.$container.addEventListener("scroll", this.hideContextMenu.bind(this));
1075
+
1076
+ this.$elements.$container.addEventListener("clickDate", this.clickDateHeader.bind(this));
978
1077
 
979
1078
  window.addEventListener('resize',this.onWindowResize.bind(this));
980
1079
 
@@ -1027,11 +1126,14 @@ export class Capibara{
1027
1126
  }
1028
1127
 
1029
1128
  if(options.navLeft){
1030
- tableElements.redrawNavLeft(this.$elements.$navLeft, this.config);
1129
+ tableElements.redrawNavLeft(this.$elements.$navLeft, this.config, this.tabSelected);
1130
+ styleUtils.setNavStyle(this.config);
1131
+ styleUtils.setNavLeftInitialStyle(this.config, this.isShowNavInitial, this.tabSelected);
1132
+ styleUtils.setNavLeftExtendedStyle(this.config, this.isShowNavExtended, this.tabSelected);
1031
1133
  }
1032
1134
 
1033
1135
  if(options.cornerLeft){
1034
- tableElements.redrawCorner(this.$elements.$corner, this.config);
1136
+ tableElements.redrawCorner(this.$elements.$corner, this.config, this.tabSelected);
1035
1137
  }
1036
1138
 
1037
1139
  if(options.navRight){
@@ -1069,13 +1171,13 @@ export class Capibara{
1069
1171
  focusOnFloatBox({pos, evt}){
1070
1172
  if(this.isMobile){
1071
1173
  let containerWidth = this.$elements.$container.clientWidth;
1072
- let dayWidth = parseFloat(utils.getCSSVariable("--day-width"));
1073
- let navWidth = parseFloat(utils.getCSSVariable("--nav-width"));
1174
+ let dayWidth = parseFloat(utils.getCSSVariable(this.config, "--day-width"));
1175
+ let navWidth = parseFloat(utils.getCSSVariable(this.config, "--nav-width"));
1074
1176
  let left = pos.left - containerWidth + 1.5 * dayWidth + navWidth;
1075
1177
 
1076
1178
  //let containerHeight = this.$elements.$container.clientHeight;
1077
- let itemHeight = parseFloat(utils.getCSSVariable("--item-height"));
1078
- //let headerHeight = parseFloat(utils.getCSSVariable("--header-height"));
1179
+ let itemHeight = parseFloat(utils.getCSSVariable(this.config, "--item-height"));
1180
+ //let headerHeight = parseFloat(utils.getCSSVariable(this.config, "--header-height"));
1079
1181
  let top = pos.top - 0.5 * itemHeight;
1080
1182
 
1081
1183
  let position = utils.eventToPosition(this.config, evt, this.$elements.$table);
@@ -1098,11 +1200,12 @@ export class Capibara{
1098
1200
  */
1099
1201
  setAllCSSVariables(){
1100
1202
  let config = this.config;
1203
+ //styleUtils.cleanStyle(config);
1101
1204
  styleUtils.setHeaderStyle(config);
1102
1205
  styleUtils.setNavStyle(config);
1103
- styleUtils.setNavLeftInitialStyle(config, this.isShowNavInitial);
1104
- styleUtils.setNavLeftExtendedStyle(config, this.isShowNavExtended);
1105
- styleUtils.setNavLeftButtonsStyle(config, this.isShowNavButtons);
1206
+ styleUtils.setNavLeftInitialStyle(config, this.isShowNavInitial, this.tabSelected);
1207
+ styleUtils.setNavLeftExtendedStyle(config, this.isShowNavExtended, this.tabSelected);
1208
+ styleUtils.setNavLeftButtonsStyle(config, this.isShowNavButtons, this.tabSelected);
1106
1209
  styleUtils.setTableStyle(config);
1107
1210
  }
1108
1211
 
@@ -85,10 +85,14 @@
85
85
  margin: 1px;
86
86
  vertical-align: middle;
87
87
  border: 1px solid rgba(255, 255, 255, 0.8);
88
+ backdrop-filter: blur(2px);
88
89
  &.diamond{
89
90
  border-radius: 0;
90
91
  transform: rotate(45deg) skew(10deg, 10deg);
91
92
  }
93
+ &.outlined{
94
+ background-color: transparent;
95
+ }
92
96
  }
93
97
 
94
98
  span.data {
@@ -103,15 +107,55 @@
103
107
  font-weight: bold;
104
108
  box-shadow: inset 0px 0px 10px rgba(255, 255, 255, 0.2);
105
109
  border-radius: 3px;
110
+ color: white;
106
111
 
107
- &:not(.data-outlined){
112
+ &:not(.shape-outlined){
108
113
  border: 1px solid rgba(255, 255, 255, 0.2);
109
114
  }
110
- &.data-outlined{
115
+
116
+ &.shape-outlined{
111
117
  background: transparent;
112
118
  border-width: 2px;
113
119
  border-color: grey;
114
120
  border-style: solid;
121
+ backdrop-filter: blur(2px);
122
+ }
123
+
124
+ &.shape-bar{
125
+ height: calc(var(--item-height) / 4);
126
+ line-height: calc(var(--item-height) / 4 + 1);
127
+ color: transparent;
128
+ border-radius: 1px;
129
+ border: 1px solid white;
130
+ margin: 0px 0px -1px 0px;
131
+ }
132
+
133
+ &.shape-bar-outlined{
134
+ height: calc(var(--item-height) / 4);
135
+ line-height: 0px;
136
+ color: transparent;
137
+ border-radius: 1px;
138
+ border: 1px solid white;
139
+ margin: 0px 0px -1px 0px;
140
+ border-width: 2px;
141
+ border-color: grey;
142
+ border-style: solid;
143
+ backdrop-filter: blur(2px);
144
+ }
145
+
146
+ }
147
+ }
148
+ }
149
+
150
+ @each $nameTheme , $theme in $themes {
151
+ &#{$nameTheme}{
152
+ .float-box-container{
153
+ .float-box{
154
+ span.data{
155
+ &.shape-bar{
156
+ border-color: mapGet($theme,floatBox, shapeBar,border);
157
+ }
158
+ }
115
159
  }
116
160
  }
117
161
  }
@@ -103,6 +103,17 @@
103
103
  box-shadow: 0px 2px 5px rgba(0, 0, 0, 0.3);
104
104
  }
105
105
 
106
+ &--icon{
107
+ display: inline-block;
108
+ width: 0.75em;
109
+ height: 0.75em;
110
+ border-radius: 50%;
111
+ margin: 1em;
112
+ background: grey;
113
+ box-shadow: 0px 1px 3px rgba(0, 0, 0, 0.3);
114
+ margin:0 0.25em 0 0;
115
+ }
116
+
106
117
  &:hover .mini-input-section--tooltip{
107
118
  display: block;
108
119
  }
@@ -0,0 +1,58 @@
1
+ .capibara {
2
+ .cap-context-menu-container {
3
+ position: absolute;
4
+ left: 0;
5
+ top: 0;
6
+ z-index: 10;
7
+
8
+ &.cm-hide {
9
+ .cap-context-menu {
10
+ visibility: hidden;
11
+ opacity: 0;
12
+ }
13
+ }
14
+
15
+ .cap-context-menu {
16
+ position: absolute;
17
+ min-width: 150px;
18
+ z-index: 2;
19
+ border-radius: 3px;
20
+ border: 1px solid grey;
21
+ background: rgb(255, 255, 255);
22
+ box-shadow: 0 3px 5px -1px rgba(0, 0, 0, 0.2),
23
+ 0 6px 10px 0 rgba(0, 0, 0, 0.14), 0 1px 18px 0 rgba(0, 0, 0, 0.12);
24
+ font-size: 0.75em;
25
+ transition: all 0.1s linear;
26
+ visibility: visible;
27
+ opacity: 1;
28
+ padding: 0.4em 0px;
29
+
30
+ &--item {
31
+ padding: 0.5em 1em;
32
+ &:hover {
33
+ background: rgba(20, 20, 20, 0.2);
34
+ }
35
+ &.is-disabled {
36
+ opacity: 0.5;
37
+ }
38
+ }
39
+ }
40
+ }
41
+
42
+
43
+
44
+ @each $nameTheme , $theme in $themes {
45
+ &#{$nameTheme}{
46
+ .cap-context-menu-container{
47
+ .cap-context-menu{
48
+ color: mapGet($theme, detailDay, color);
49
+ border-color: mapGet($theme, detailDay, border);
50
+ background: mapGet($theme, detailDay, background);
51
+ }
52
+ }
53
+ }
54
+ }
55
+
56
+
57
+
58
+ }
@@ -135,16 +135,19 @@
135
135
  flex-direction: row;
136
136
 
137
137
  .left-icon {
138
- width: 6px;
139
- height: 6px;
138
+ width: 8px;
139
+ height: 8px;
140
140
  min-height: unset !important;
141
- left: 0;
141
+ left: 1px;
142
142
  top: 10px;
143
143
  border-radius: 50%;
144
144
  &.diamond{
145
145
  border-radius: 0;
146
146
  transform: rotate(45deg) skew(10deg, 10deg);
147
147
  }
148
+ &.outlined{
149
+ background: transparent;
150
+ }
148
151
  }
149
152
 
150
153
  .name {
@@ -179,6 +179,9 @@
179
179
  //background: var(--header-dia-active-background) ;
180
180
  //color: white;
181
181
  }
182
+ &.is-clickeable{
183
+ cursor:pointer;
184
+ }
182
185
  }
183
186
  }
184
187
  }
@@ -236,6 +239,14 @@
236
239
  background: mapGet($theme,header, days, active, background);
237
240
  color: mapGet($theme,header, days, active, color);
238
241
  }
242
+ &.is-clickeable{
243
+ &:hover{
244
+ background: rgba(100, 100, 100, 0.4);
245
+ }
246
+ &:active{
247
+ background: rgba(100, 100, 100, 0.6);
248
+ }
249
+ }
239
250
  }
240
251
  }
241
252
  }
@@ -11,7 +11,7 @@
11
11
  .plot-vertical{
12
12
  background: rgba(0, 0, 0, 0.3);
13
13
  width: var(--day-width);
14
- height: calc(100vh - var(--header-height ) + var(--header-top-height));
14
+ height: calc(100vh - (var(--header-height ) + var(--header-top-height)));
15
15
  position: absolute;
16
16
  top: 0px;
17
17
  left: 0px;
@@ -13,6 +13,25 @@
13
13
  position: absolute;
14
14
  background: rgba(189,189,189,0.4);
15
15
  box-shadow: inset 0px 0px 5px rgba(189,189,189,0.8);
16
+ &[selected-index]{
17
+ &::after{
18
+ content:attr(selected-index);
19
+ display: block;
20
+ position:absolute;
21
+ left:-2px;
22
+ top: -2px;
23
+ background: red;
24
+ font-size: 0.75em;
25
+ color: white;
26
+ width: 1.3em;
27
+ height:1.3em;
28
+ border-radius:50%;
29
+ border: 1px solid blue;
30
+ z-index: 2;
31
+ text-align: center;
32
+ font-weight:bold;
33
+ }
34
+ }
16
35
  }
17
36
 
18
37
  }
@@ -5,7 +5,7 @@
5
5
  left: calc( var(--nav-width ) + var(--initial-nav-width ) + var(--ex-nav-width ) + var(--btn-nav-width) );
6
6
  top: var(--header-height) ;
7
7
  width: calc(100% - var(--nav-width ) - var(--initial-nav-width ) - var(--ex-nav-width ) - var(--btn-nav-width));
8
- height: calc(100% - var(--header-height));
8
+ max-height: calc(100% - var(--header-height));
9
9
  margin-top: -1px;
10
10
 
11
11
  .day-mouse-over{
@@ -21,8 +21,8 @@
21
21
  top: 0px;
22
22
  content: "";
23
23
  width: 2px;
24
- height: calc(100vh - var(--header-height) + var(--header-top-height));
25
- background: rgba(183, 28, 28, 0.6);
24
+ height: calc(100vh - (var(--header-height) + var(--header-top-height)));
25
+ background: rgba(183, 28, 28, 0.4);
26
26
  }
27
27
  }
28
28
 
@@ -28,6 +28,7 @@
28
28
  @import "layout/table";
29
29
  @import "layout/selectContainer";
30
30
  @import "layout/detail_day";
31
+ @import "layout/contextMenu";
31
32
 
32
33
  @import "components/input_nav";
33
34
  @import "components/buttons";