react-ui-basics 0.0.238 → 0.0.240

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/bundle.css CHANGED
@@ -555,6 +555,136 @@
555
555
  font-size: 24px;
556
556
  }
557
557
 
558
+ .DatePicker {
559
+ position: relative;
560
+ }
561
+
562
+ .DatePicker > .TextField {
563
+ width: 200px;
564
+ margin-bottom: 0px;
565
+ }
566
+
567
+ .DatePicker > .TextField input {
568
+ text-align: center;
569
+ }
570
+
571
+ .calendar {
572
+ user-select: none;
573
+ position: absolute;
574
+ top: 33px;
575
+ z-index: 10;
576
+ box-shadow: 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12), 0 2px 4px -1px rgba(0, 0, 0, 0.2);
577
+ border-radius: 4px;
578
+ overflow: hidden;
579
+ transition: 0.2s all ease;
580
+ opacity: 0;
581
+ visibility: hidden;
582
+ }
583
+
584
+ .calendar.focused {
585
+ opacity: 1;
586
+ visibility: visible;
587
+ }
588
+
589
+ .calendar .monthSelect {
590
+ align-items: center;
591
+ margin-bottom: 0;
592
+ background: white;
593
+ font-size: 12px;
594
+ color: rgb(170, 170, 170);
595
+ padding-right: 16px;
596
+ padding-left: 16px;
597
+ height: 40px;
598
+ }
599
+
600
+ .calendar .monthSelect span {
601
+ margin-right: auto;
602
+ }
603
+
604
+ .calendar .monthSelect .Button {
605
+ min-width: 25px;
606
+ min-height: 25px;
607
+ }
608
+
609
+ .calendar .monthSelect .Button .material-icons {
610
+ font-size: 16px;
611
+ }
612
+
613
+ .calendar .monthSelect .Button.disabled {
614
+ background: transparent;
615
+ }
616
+
617
+ .calendar .CalendarMonthView {
618
+ background: white;
619
+ }
620
+
621
+ .calendar .CalendarMonthView .headers, .calendar .CalendarMonthView .days {
622
+ margin-bottom: 0;
623
+ }
624
+
625
+ .calendar .CalendarMonthView .header {
626
+ font-size: 12px;
627
+ font-weight: bold;
628
+ text-align: center;
629
+ text-transform: uppercase;
630
+ margin: 5px;
631
+ }
632
+
633
+ .calendar .CalendarMonthView .day {
634
+ font-size: 10px;
635
+ }
636
+
637
+ .calendar .CalendarMonthView .day.notSelectedMonth {
638
+ color: #969696;
639
+ }
640
+
641
+ .calendar .CalendarMonthView .day span {
642
+ display: inline-flex;
643
+ justify-content: center;
644
+ align-items: center;
645
+ border-radius: 50%;
646
+ width: 25px;
647
+ height: 25px;
648
+ margin: 5px;
649
+ transition: 0.2s all ease;
650
+ cursor: pointer;
651
+ }
652
+
653
+ .calendar .CalendarMonthView .day span:hover {
654
+ background-color: #e6e6e6;
655
+ }
656
+
657
+ .calendar .CalendarMonthView .day span.inactive {
658
+ color: lightgray;
659
+ cursor: unset;
660
+ }
661
+
662
+ .calendar .CalendarMonthView .day span.inactive:hover {
663
+ background: unset;
664
+ }
665
+
666
+ .calendar .CalendarMonthView .day span.selected {
667
+ color: white;
668
+ background-color: #2196F3;
669
+ }
670
+
671
+ .calendar .CalendarMonthView .day span.selected:hover {
672
+ background-color: #51adf6;
673
+ }
674
+
675
+ .CircleProgress {
676
+ width: 48px;
677
+ height: 48px;
678
+ }
679
+
680
+ .CircleProgress .line {
681
+ stroke-width: 2px;
682
+ stroke: black;
683
+ stroke-linecap: square;
684
+ fill: none;
685
+ transition: stroke-dashoffset 0.2s ease;
686
+ }
687
+
558
688
  .Checkbox {
559
689
  position: relative;
560
690
  white-space: pre;
@@ -622,6 +752,33 @@
622
752
  background: rgba(0, 0, 0, 0.26);
623
753
  }
624
754
 
755
+ .DropFileInput {
756
+ flex-grow: 1;
757
+ }
758
+
759
+ .DropFileInput .Dropzone {
760
+ border: 1px dashed #808080;
761
+ padding: 12px;
762
+ display: flex;
763
+ flex-flow: row nowrap;
764
+ justify-content: center;
765
+ align-items: center;
766
+ color: gray;
767
+ cursor: pointer;
768
+ border-radius: 3px;
769
+ font-weight: normal;
770
+ line-height: 22px;
771
+ font-size: 14px;
772
+ color: #7E7E7E;
773
+ max-width: 100%;
774
+ word-break: break-all;
775
+ word-break: break-word;
776
+ }
777
+
778
+ .DropFileInput .Dropzone .icon.withText {
779
+ margin-right: 10px;
780
+ }
781
+
625
782
  .DialogModal {
626
783
  overflow: hidden;
627
784
  }
@@ -664,63 +821,6 @@
664
821
  margin-bottom: 0;
665
822
  }
666
823
 
667
- .DNDContainer {
668
- position: relative;
669
- }
670
-
671
- .DNDContainer .Draggable[draggable=true], .DNDContainer .Draggable [draggable=true] {
672
- cursor: pointer;
673
- }
674
-
675
- .DNDContainer .Draggable.placeholder {
676
- opacity: 0.2;
677
- }
678
-
679
- .DNDContainer .Draggable.copy {
680
- position: absolute;
681
- box-sizing: border-box;
682
- will-change: transform;
683
- opacity: 0;
684
- }
685
-
686
- .DNDContainer .Draggable.dragged {
687
- z-index: 10;
688
- }
689
-
690
- .DNDContainer .overlay {
691
- position: absolute;
692
- top: 0;
693
- left: 0;
694
- right: 0;
695
- bottom: 0;
696
- pointer-events: none;
697
- }
698
-
699
- .CalendarMonthView {
700
- display: flex;
701
- flex-flow: column nowrap;
702
- height: 100%;
703
- }
704
-
705
- .CalendarMonthView > .row {
706
- display: flex;
707
- flex-flow: row nowrap;
708
- }
709
-
710
- .CalendarMonthView .days {
711
- flex-grow: 1;
712
- position: relative;
713
- }
714
-
715
- .CalendarMonthView .day, .CalendarMonthView .header {
716
- flex-grow: 1;
717
- flex-basis: 1px;
718
- }
719
-
720
- .CalendarMonthView .day {
721
- height: 100%;
722
- }
723
-
724
824
  .Button {
725
825
  position: relative;
726
826
  min-width: 64px;
@@ -887,256 +987,29 @@
887
987
  border: 0;
888
988
  }
889
989
 
890
- .DropFileInput {
891
- flex-grow: 1;
990
+ .CalendarMonthView {
991
+ display: flex;
992
+ flex-flow: column nowrap;
993
+ height: 100%;
892
994
  }
893
995
 
894
- .DropFileInput .Dropzone {
895
- border: 1px dashed #808080;
896
- padding: 12px;
996
+ .CalendarMonthView > .row {
897
997
  display: flex;
898
998
  flex-flow: row nowrap;
899
- justify-content: center;
900
- align-items: center;
901
- color: gray;
902
- cursor: pointer;
903
- border-radius: 3px;
904
- font-weight: normal;
905
- line-height: 22px;
906
- font-size: 14px;
907
- color: #7E7E7E;
908
- max-width: 100%;
909
- word-break: break-all;
910
- word-break: break-word;
911
999
  }
912
1000
 
913
- .DropFileInput .Dropzone .icon.withText {
914
- margin-right: 10px;
1001
+ .CalendarMonthView .days {
1002
+ flex-grow: 1;
1003
+ position: relative;
915
1004
  }
916
1005
 
917
- .Button.FloatingActionButton {
918
- position: absolute;
919
- right: 16px;
920
- bottom: 16px;
921
- width: 56px;
922
- height: 56px;
923
- padding: 16px;
924
- transition: bottom 0.2s cubic-bezier(0.4, 0, 0.2, 1);
1006
+ .CalendarMonthView .day, .CalendarMonthView .header {
1007
+ flex-grow: 1;
1008
+ flex-basis: 1px;
925
1009
  }
926
1010
 
927
- .Button.FloatingActionButton.raised {
928
- transition: bottom 0.2s cubic-bezier(0.4, 0, 0.2, 1), color 0.2s ease-out, background-color 0.2s ease-out, box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);
929
- }
930
-
931
- .Button.FloatingActionButton.mini {
932
- width: 40px;
933
- height: 40px;
934
- padding: 8px;
935
- }
936
-
937
- .Button.FloatingActionButton.hidden {
938
- bottom: -100px;
939
- }
940
-
941
- .DatePicker {
942
- position: relative;
943
- }
944
-
945
- .DatePicker > .TextField {
946
- width: 200px;
947
- margin-bottom: 0px;
948
- }
949
-
950
- .DatePicker > .TextField input {
951
- text-align: center;
952
- }
953
-
954
- .calendar {
955
- user-select: none;
956
- position: absolute;
957
- top: 33px;
958
- z-index: 10;
959
- box-shadow: 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12), 0 2px 4px -1px rgba(0, 0, 0, 0.2);
960
- border-radius: 4px;
961
- overflow: hidden;
962
- transition: 0.2s all ease;
963
- opacity: 0;
964
- visibility: hidden;
965
- }
966
-
967
- .calendar.focused {
968
- opacity: 1;
969
- visibility: visible;
970
- }
971
-
972
- .calendar .monthSelect {
973
- align-items: center;
974
- margin-bottom: 0;
975
- background: white;
976
- font-size: 12px;
977
- color: rgb(170, 170, 170);
978
- padding-right: 16px;
979
- padding-left: 16px;
980
- height: 40px;
981
- }
982
-
983
- .calendar .monthSelect span {
984
- margin-right: auto;
985
- }
986
-
987
- .calendar .monthSelect .Button {
988
- min-width: 25px;
989
- min-height: 25px;
990
- }
991
-
992
- .calendar .monthSelect .Button .material-icons {
993
- font-size: 16px;
994
- }
995
-
996
- .calendar .monthSelect .Button.disabled {
997
- background: transparent;
998
- }
999
-
1000
- .calendar .CalendarMonthView {
1001
- background: white;
1002
- }
1003
-
1004
- .calendar .CalendarMonthView .headers, .calendar .CalendarMonthView .days {
1005
- margin-bottom: 0;
1006
- }
1007
-
1008
- .calendar .CalendarMonthView .header {
1009
- font-size: 12px;
1010
- font-weight: bold;
1011
- text-align: center;
1012
- text-transform: uppercase;
1013
- margin: 5px;
1014
- }
1015
-
1016
- .calendar .CalendarMonthView .day {
1017
- font-size: 10px;
1018
- }
1019
-
1020
- .calendar .CalendarMonthView .day.notSelectedMonth {
1021
- color: #969696;
1022
- }
1023
-
1024
- .calendar .CalendarMonthView .day span {
1025
- display: inline-flex;
1026
- justify-content: center;
1027
- align-items: center;
1028
- border-radius: 50%;
1029
- width: 25px;
1030
- height: 25px;
1031
- margin: 5px;
1032
- transition: 0.2s all ease;
1033
- cursor: pointer;
1034
- }
1035
-
1036
- .calendar .CalendarMonthView .day span:hover {
1037
- background-color: #e6e6e6;
1038
- }
1039
-
1040
- .calendar .CalendarMonthView .day span.inactive {
1041
- color: lightgray;
1042
- cursor: unset;
1043
- }
1044
-
1045
- .calendar .CalendarMonthView .day span.inactive:hover {
1046
- background: unset;
1047
- }
1048
-
1049
- .calendar .CalendarMonthView .day span.selected {
1050
- color: white;
1051
- background-color: #2196F3;
1052
- }
1053
-
1054
- .calendar .CalendarMonthView .day span.selected:hover {
1055
- background-color: #51adf6;
1056
- }
1057
-
1058
- .FilteredList {
1059
- max-height: 250px;
1060
- position: relative;
1061
- }
1062
-
1063
- .FilteredList.popup {
1064
- padding: 0;
1065
- visibility: hidden;
1066
- position: absolute;
1067
- background: white;
1068
- z-index: 4;
1069
- box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);
1070
- transition: top 0.2s ease-out, opacity 0.2s ease-out;
1071
- top: calc(100% + 4px);
1072
- opacity: 0;
1073
- border-radius: 2px;
1074
- }
1075
-
1076
- .FilteredList.popup.visible {
1077
- opacity: 1;
1078
- visibility: visible;
1079
- }
1080
-
1081
- .FilteredList.portal {
1082
- transition: opacity 0.2s ease-out;
1083
- }
1084
-
1085
- .FilteredList.inline {
1086
- max-height: 225px;
1087
- margin-top: 5px;
1088
- }
1089
-
1090
- .FilteredList .child {
1091
- display: flex;
1092
- flex-flow: row nowrap;
1093
- align-items: center;
1094
- white-space: nowrap;
1095
- font-size: 14px;
1096
- color: rgb(34, 34, 34);
1097
- height: 30px;
1098
- padding: 5px 10px;
1099
- padding-right: 15px;
1100
- cursor: pointer;
1101
- overflow: hidden;
1102
- border-left: 5px solid #4AC263;
1103
- padding-left: 15px;
1104
- margin-left: -5px;
1105
- }
1106
-
1107
- .FilteredList .child.hidden {
1108
- height: 0 !important;
1109
- padding: 0 !important;
1110
- }
1111
-
1112
- .FilteredList .child.selected {
1113
- background-color: #F0F0F0;
1114
- padding-left: 10px;
1115
- margin-left: 0px;
1116
- }
1117
-
1118
- .FilteredList .child.active {
1119
- background-color: rgb(238, 238, 238);
1120
- }
1121
-
1122
- .FilteredList .child {
1123
- margin-top: 8px;
1124
- }
1125
-
1126
- .FilteredList .child.hidden {
1127
- margin-top: 0;
1128
- }
1129
-
1130
- .FilteredList .child:not(.hidden) ~ .child {
1131
- margin-top: 0;
1132
- }
1133
-
1134
- .FilteredList .child:not(.hidden) ~ .child:last-child {
1135
- margin-bottom: 8px;
1136
- }
1137
-
1138
- .FilteredList .child:not(.hidden):last-child {
1139
- margin-bottom: 8px;
1011
+ .CalendarMonthView .day {
1012
+ height: 100%;
1140
1013
  }
1141
1014
 
1142
1015
  .Dropzone {
@@ -1199,209 +1072,214 @@
1199
1072
  z-index: 1;
1200
1073
  }
1201
1074
 
1202
- .CircleProgress {
1203
- width: 48px;
1204
- height: 48px;
1075
+ .Modal {
1076
+ display: block;
1077
+ position: fixed;
1078
+ top: 0;
1079
+ left: 0;
1080
+ right: 0;
1081
+ bottom: 100%;
1082
+ overflow-y: scroll;
1083
+ transition: bottom 0ms linear;
1084
+ transition-delay: 0.2s;
1205
1085
  }
1206
1086
 
1207
- .CircleProgress .line {
1208
- stroke-width: 2px;
1209
- stroke: black;
1210
- stroke-linecap: square;
1211
- fill: none;
1212
- transition: stroke-dashoffset 0.2s ease;
1087
+ .Modal.show {
1088
+ transition-delay: 0s;
1089
+ bottom: 0;
1213
1090
  }
1214
1091
 
1215
- .SpinningProgress {
1216
- width: 48px;
1217
- height: 48px;
1218
- position: relative;
1219
- margin: 0 auto;
1092
+ .Modal > .overlay {
1093
+ position: fixed;
1094
+ top: 0;
1095
+ bottom: 100%;
1096
+ left: 0;
1097
+ right: 0;
1098
+ transition: opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1);
1099
+ opacity: 0;
1100
+ background-color: black;
1101
+ pointer-events: none;
1220
1102
  }
1221
1103
 
1222
- .SpinningProgress:before {
1223
- content: "";
1224
- display: block;
1225
- padding-top: 100%;
1104
+ .Modal > .overlay.show {
1105
+ opacity: 0.5;
1106
+ bottom: 0;
1226
1107
  }
1227
1108
 
1228
- .SpinningProgress .circular {
1229
- animation: rotate 2s linear infinite;
1230
- height: 100%;
1231
- transform-origin: center center;
1232
- width: 100%;
1109
+ .Modal > .content {
1110
+ left: 50%;
1111
+ top: 10vh;
1112
+ margin-bottom: 10vh;
1113
+ font-size: 16px;
1114
+ padding: 0;
1115
+ opacity: 0;
1116
+ transition: opacity 0.25s ease, transform 0.25s ease;
1117
+ transform: scaleY(0) translateY(-200px) translateX(-50%);
1118
+ transform-origin: top;
1233
1119
  position: absolute;
1234
- top: 0;
1235
- bottom: 0;
1236
- left: 0;
1237
- right: 0;
1238
- margin: auto;
1120
+ border-radius: 2px;
1121
+ box-shadow: 0px 10px 20px rgba(0, 0, 0, 0.3);
1239
1122
  }
1240
1123
 
1241
- .SpinningProgress .line {
1242
- stroke: black;
1243
- stroke-width: 2px;
1244
- stroke-dasharray: 1, 96;
1245
- stroke-dashoffset: 0;
1246
- animation: dash 1.5s ease-in-out infinite, color 6s ease-in-out infinite;
1124
+ .Modal > .content.show {
1125
+ opacity: 1;
1126
+ transform: scaleY(1) translateY(0px) translateX(-50%);
1247
1127
  }
1248
1128
 
1249
- @keyframes rotate {
1250
- 100% {
1251
- transform: rotate(360deg);
1252
- }
1129
+ .Modal > .content > .Scrollable {
1130
+ overflow: visible;
1131
+ max-height: 80vh;
1253
1132
  }
1254
- @keyframes dash {
1255
- 0% {
1256
- stroke-dasharray: 1, 96;
1257
- stroke-dashoffset: 0;
1258
- }
1259
- 50% {
1260
- stroke-dasharray: 43, 96;
1261
- stroke-dashoffset: -17px;
1262
- }
1263
- 100% {
1264
- stroke-dasharray: 43, 96;
1265
- stroke-dashoffset: -53px;
1266
- }
1133
+
1134
+ .Modal > .content > .Scrollable > .viewport {
1135
+ min-width: 10px;
1136
+ min-height: 10px;
1267
1137
  }
1268
- .FormUploadProgress {
1138
+
1139
+ .Modal > .content > .Button.close {
1140
+ top: 10px;
1141
+ right: 10px;
1269
1142
  position: absolute;
1270
- left: 0;
1271
- right: 0;
1272
- top: 0;
1273
- bottom: 0;
1274
- background-color: rgba(255, 255, 255, 0.6);
1275
- z-index: 2;
1276
1143
  }
1277
1144
 
1278
- .FormUploadProgress.animated.mounting, .FormUploadProgress.animated.mounted {
1279
- transition-delay: 500ms;
1145
+ .DNDContainer {
1146
+ position: relative;
1280
1147
  }
1281
1148
 
1282
- .FormUploadProgress .wrapper {
1283
- position: sticky;
1284
- top: 40%;
1285
- margin-top: 40%;
1286
- margin-left: 50%;
1287
- transform: translateX(-50%);
1288
- display: flex;
1289
- flex-flow: column;
1290
- justify-content: center;
1291
- align-items: center;
1149
+ .DNDContainer .Draggable[draggable=true], .DNDContainer .Draggable [draggable=true] {
1150
+ cursor: pointer;
1292
1151
  }
1293
1152
 
1294
- .FormUploadProgress .wrapper .CircleProgress, .FormUploadProgress .wrapper .SpinningProgress {
1153
+ .DNDContainer .Draggable.placeholder {
1154
+ opacity: 0.2;
1155
+ }
1156
+
1157
+ .DNDContainer .Draggable.copy {
1158
+ position: absolute;
1159
+ box-sizing: border-box;
1160
+ will-change: transform;
1161
+ opacity: 0;
1162
+ }
1163
+
1164
+ .DNDContainer .Draggable.dragged {
1165
+ z-index: 10;
1166
+ }
1167
+
1168
+ .DNDContainer .overlay {
1295
1169
  position: absolute;
1296
- width: 107px;
1297
- height: 107px;
1298
1170
  top: 0;
1299
1171
  left: 0;
1172
+ right: 0;
1173
+ bottom: 0;
1174
+ pointer-events: none;
1300
1175
  }
1301
1176
 
1302
- .FormUploadProgress .wrapper .CircleProgress .line, .FormUploadProgress .wrapper .SpinningProgress .line {
1303
- stroke: #2196F3;
1177
+ .Button.FloatingActionButton {
1178
+ position: absolute;
1179
+ right: 16px;
1180
+ bottom: 16px;
1181
+ width: 56px;
1182
+ height: 56px;
1183
+ padding: 16px;
1184
+ transition: bottom 0.2s cubic-bezier(0.4, 0, 0.2, 1);
1304
1185
  }
1305
1186
 
1306
- .FormUploadProgress .wrapper > .progress {
1307
- width: 107px;
1308
- height: 107px;
1309
- min-height: 107px;
1310
- display: flex;
1311
- justify-content: center;
1312
- align-items: center;
1313
- box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.25);
1314
- border-radius: 50%;
1315
- background: white;
1187
+ .Button.FloatingActionButton.raised {
1188
+ transition: bottom 0.2s cubic-bezier(0.4, 0, 0.2, 1), color 0.2s ease-out, background-color 0.2s ease-out, box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);
1189
+ }
1190
+
1191
+ .Button.FloatingActionButton.mini {
1192
+ width: 40px;
1193
+ height: 40px;
1194
+ padding: 8px;
1195
+ }
1196
+
1197
+ .Button.FloatingActionButton.hidden {
1198
+ bottom: -100px;
1199
+ }
1200
+
1201
+ .FilteredList {
1202
+ max-height: 250px;
1316
1203
  position: relative;
1317
1204
  }
1318
1205
 
1319
- .FormUploadProgress .wrapper > .progress > .value {
1320
- display: inline-block;
1321
- margin-top: 5px;
1322
- font-weight: bold;
1323
- line-height: 16px;
1324
- font-size: 13px;
1325
- text-align: center;
1326
- color: #818181;
1206
+ .FilteredList.popup {
1207
+ padding: 0;
1208
+ visibility: hidden;
1209
+ position: absolute;
1210
+ background: white;
1211
+ z-index: 4;
1212
+ box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);
1213
+ transition: top 0.2s ease-out, opacity 0.2s ease-out;
1214
+ top: calc(100% + 4px);
1215
+ opacity: 0;
1216
+ border-radius: 2px;
1327
1217
  }
1328
1218
 
1329
- .FormUploadProgress .wrapper .cancel {
1330
- min-width: 107px;
1331
- margin-top: 20px;
1332
- background-color: white;
1333
- color: #F96B5C;
1334
- box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.25);
1219
+ .FilteredList.popup.visible {
1220
+ opacity: 1;
1221
+ visibility: visible;
1335
1222
  }
1336
1223
 
1337
- .Modal {
1338
- display: block;
1339
- position: fixed;
1340
- top: 0;
1341
- left: 0;
1342
- right: 0;
1343
- bottom: 100%;
1344
- overflow-y: scroll;
1345
- transition: bottom 0ms linear;
1346
- transition-delay: 0.2s;
1224
+ .FilteredList.portal {
1225
+ transition: opacity 0.2s ease-out;
1347
1226
  }
1348
1227
 
1349
- .Modal.show {
1350
- transition-delay: 0s;
1351
- bottom: 0;
1228
+ .FilteredList.inline {
1229
+ max-height: 225px;
1230
+ margin-top: 5px;
1231
+ }
1232
+
1233
+ .FilteredList .child {
1234
+ display: flex;
1235
+ flex-flow: row nowrap;
1236
+ align-items: center;
1237
+ white-space: nowrap;
1238
+ font-size: 14px;
1239
+ color: rgb(34, 34, 34);
1240
+ height: 30px;
1241
+ padding: 5px 10px;
1242
+ padding-right: 15px;
1243
+ cursor: pointer;
1244
+ overflow: hidden;
1245
+ border-left: 5px solid #4AC263;
1246
+ padding-left: 15px;
1247
+ margin-left: -5px;
1352
1248
  }
1353
1249
 
1354
- .Modal > .overlay {
1355
- position: fixed;
1356
- top: 0;
1357
- bottom: 100%;
1358
- left: 0;
1359
- right: 0;
1360
- transition: opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1);
1361
- opacity: 0;
1362
- background-color: black;
1363
- pointer-events: none;
1250
+ .FilteredList .child.hidden {
1251
+ height: 0 !important;
1252
+ padding: 0 !important;
1364
1253
  }
1365
1254
 
1366
- .Modal > .overlay.show {
1367
- opacity: 0.5;
1368
- bottom: 0;
1255
+ .FilteredList .child.selected {
1256
+ background-color: #F0F0F0;
1257
+ padding-left: 10px;
1258
+ margin-left: 0px;
1369
1259
  }
1370
1260
 
1371
- .Modal > .content {
1372
- left: 50%;
1373
- top: 10vh;
1374
- margin-bottom: 10vh;
1375
- font-size: 16px;
1376
- padding: 0;
1377
- opacity: 0;
1378
- transition: opacity 0.25s ease, transform 0.25s ease;
1379
- transform: scaleY(0) translateY(-200px) translateX(-50%);
1380
- transform-origin: top;
1381
- position: absolute;
1382
- border-radius: 2px;
1383
- box-shadow: 0px 10px 20px rgba(0, 0, 0, 0.3);
1261
+ .FilteredList .child.active {
1262
+ background-color: rgb(238, 238, 238);
1384
1263
  }
1385
1264
 
1386
- .Modal > .content.show {
1387
- opacity: 1;
1388
- transform: scaleY(1) translateY(0px) translateX(-50%);
1265
+ .FilteredList .child {
1266
+ margin-top: 8px;
1389
1267
  }
1390
1268
 
1391
- .Modal > .content > .Scrollable {
1392
- overflow: visible;
1393
- max-height: 80vh;
1269
+ .FilteredList .child.hidden {
1270
+ margin-top: 0;
1394
1271
  }
1395
1272
 
1396
- .Modal > .content > .Scrollable > .viewport {
1397
- min-width: 10px;
1398
- min-height: 10px;
1273
+ .FilteredList .child:not(.hidden) ~ .child {
1274
+ margin-top: 0;
1399
1275
  }
1400
1276
 
1401
- .Modal > .content > .Button.close {
1402
- top: 10px;
1403
- right: 10px;
1404
- position: absolute;
1277
+ .FilteredList .child:not(.hidden) ~ .child:last-child {
1278
+ margin-bottom: 8px;
1279
+ }
1280
+
1281
+ .FilteredList .child:not(.hidden):last-child {
1282
+ margin-bottom: 8px;
1405
1283
  }
1406
1284
 
1407
1285
  .Snackbar {
@@ -1449,43 +1327,6 @@
1449
1327
  color: #bf3727;
1450
1328
  }
1451
1329
 
1452
- .ModalMenu {
1453
- position: absolute;
1454
- top: 10px;
1455
- right: 50px;
1456
- }
1457
-
1458
- .ModalMenu .material-icons {
1459
- color: #818181;
1460
- }
1461
-
1462
- .ModalMenu .Button.animated {
1463
- position: absolute;
1464
- transition: opacity 150ms ease-in, right 200ms ease-in;
1465
- opacity: 0;
1466
- right: 0;
1467
- top: 0;
1468
- }
1469
-
1470
- .ModalMenu .Button.animated.mounting, .ModalMenu .Button.animated.mounted {
1471
- opacity: 1;
1472
- }
1473
-
1474
- .ModalMenu .Button.animated.unmounting {
1475
- transition: opacity 100ms ease-out, right 200ms ease-out;
1476
- }
1477
-
1478
- .ModalMenu .Button.active {
1479
- background: #EBEBEB;
1480
- }
1481
-
1482
- .ModalMenu .separator {
1483
- height: 24px;
1484
- width: 1px;
1485
- background-color: #D9D9D9;
1486
- margin-left: 4px;
1487
- }
1488
-
1489
1330
  .Scrollable {
1490
1331
  max-height: 250px;
1491
1332
  max-width: 250px;
@@ -1584,6 +1425,75 @@
1584
1425
  will-change: left;
1585
1426
  }
1586
1427
 
1428
+ .FormUploadProgress {
1429
+ position: absolute;
1430
+ left: 0;
1431
+ right: 0;
1432
+ top: 0;
1433
+ bottom: 0;
1434
+ background-color: rgba(255, 255, 255, 0.6);
1435
+ z-index: 2;
1436
+ }
1437
+
1438
+ .FormUploadProgress.animated.mounting, .FormUploadProgress.animated.mounted {
1439
+ transition-delay: 500ms;
1440
+ }
1441
+
1442
+ .FormUploadProgress .wrapper {
1443
+ position: sticky;
1444
+ top: 40%;
1445
+ margin-top: 40%;
1446
+ margin-left: 50%;
1447
+ transform: translateX(-50%);
1448
+ display: flex;
1449
+ flex-flow: column;
1450
+ justify-content: center;
1451
+ align-items: center;
1452
+ }
1453
+
1454
+ .FormUploadProgress .wrapper .CircleProgress, .FormUploadProgress .wrapper .SpinningProgress {
1455
+ position: absolute;
1456
+ width: 107px;
1457
+ height: 107px;
1458
+ top: 0;
1459
+ left: 0;
1460
+ }
1461
+
1462
+ .FormUploadProgress .wrapper .CircleProgress .line, .FormUploadProgress .wrapper .SpinningProgress .line {
1463
+ stroke: #2196F3;
1464
+ }
1465
+
1466
+ .FormUploadProgress .wrapper > .progress {
1467
+ width: 107px;
1468
+ height: 107px;
1469
+ min-height: 107px;
1470
+ display: flex;
1471
+ justify-content: center;
1472
+ align-items: center;
1473
+ box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.25);
1474
+ border-radius: 50%;
1475
+ background: white;
1476
+ position: relative;
1477
+ }
1478
+
1479
+ .FormUploadProgress .wrapper > .progress > .value {
1480
+ display: inline-block;
1481
+ margin-top: 5px;
1482
+ font-weight: bold;
1483
+ line-height: 16px;
1484
+ font-size: 13px;
1485
+ text-align: center;
1486
+ color: #818181;
1487
+ }
1488
+
1489
+ .FormUploadProgress .wrapper .cancel {
1490
+ min-width: 107px;
1491
+ margin-top: 20px;
1492
+ background-color: white;
1493
+ color: #F96B5C;
1494
+ box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.25);
1495
+ }
1496
+
1587
1497
  .Switch {
1588
1498
  display: inline-flex;
1589
1499
  padding-top: 5px;
@@ -1666,6 +1576,43 @@
1666
1576
  display: none;
1667
1577
  }
1668
1578
 
1579
+ .ModalMenu {
1580
+ position: absolute;
1581
+ top: 10px;
1582
+ right: 50px;
1583
+ }
1584
+
1585
+ .ModalMenu .material-icons {
1586
+ color: #818181;
1587
+ }
1588
+
1589
+ .ModalMenu .Button.animated {
1590
+ position: absolute;
1591
+ transition: opacity 150ms ease-in, right 200ms ease-in;
1592
+ opacity: 0;
1593
+ right: 0;
1594
+ top: 0;
1595
+ }
1596
+
1597
+ .ModalMenu .Button.animated.mounting, .ModalMenu .Button.animated.mounted {
1598
+ opacity: 1;
1599
+ }
1600
+
1601
+ .ModalMenu .Button.animated.unmounting {
1602
+ transition: opacity 100ms ease-out, right 200ms ease-out;
1603
+ }
1604
+
1605
+ .ModalMenu .Button.active {
1606
+ background: #EBEBEB;
1607
+ }
1608
+
1609
+ .ModalMenu .separator {
1610
+ height: 24px;
1611
+ width: 1px;
1612
+ background-color: #D9D9D9;
1613
+ margin-left: 4px;
1614
+ }
1615
+
1669
1616
  .Table {
1670
1617
  font-family: Roboto, sans-serif;
1671
1618
  font-size: 14px;
@@ -1788,6 +1735,59 @@
1788
1735
  margin: 0;
1789
1736
  }
1790
1737
 
1738
+ .SpinningProgress {
1739
+ width: 48px;
1740
+ height: 48px;
1741
+ position: relative;
1742
+ margin: 0 auto;
1743
+ }
1744
+
1745
+ .SpinningProgress:before {
1746
+ content: "";
1747
+ display: block;
1748
+ padding-top: 100%;
1749
+ }
1750
+
1751
+ .SpinningProgress .circular {
1752
+ animation: rotate 2s linear infinite;
1753
+ height: 100%;
1754
+ transform-origin: center center;
1755
+ width: 100%;
1756
+ position: absolute;
1757
+ top: 0;
1758
+ bottom: 0;
1759
+ left: 0;
1760
+ right: 0;
1761
+ margin: auto;
1762
+ }
1763
+
1764
+ .SpinningProgress .line {
1765
+ stroke: black;
1766
+ stroke-width: 2px;
1767
+ stroke-dasharray: 1, 96;
1768
+ stroke-dashoffset: 0;
1769
+ animation: dash 1.5s ease-in-out infinite, color 6s ease-in-out infinite;
1770
+ }
1771
+
1772
+ @keyframes rotate {
1773
+ 100% {
1774
+ transform: rotate(360deg);
1775
+ }
1776
+ }
1777
+ @keyframes dash {
1778
+ 0% {
1779
+ stroke-dasharray: 1, 96;
1780
+ stroke-dashoffset: 0;
1781
+ }
1782
+ 50% {
1783
+ stroke-dasharray: 43, 96;
1784
+ stroke-dashoffset: -17px;
1785
+ }
1786
+ 100% {
1787
+ stroke-dasharray: 43, 96;
1788
+ stroke-dashoffset: -53px;
1789
+ }
1790
+ }
1791
1791
  .TextField {
1792
1792
  position: relative;
1793
1793
  width: 100%;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-ui-basics",
3
- "version": "0.0.238",
3
+ "version": "0.0.240",
4
4
  "description": "",
5
5
  "module": "index.js",
6
6
  "_main": "index.cjs.js",
@@ -1,7 +1,7 @@
1
1
  declare const history: History;
2
- declare type HistoryAction = 'pushState' | 'replaceState';
3
- declare type HistoryActionArgs = Parameters<typeof history[HistoryAction]>;
4
- declare type HistoryMiddleware = (action: HistoryAction, args: HistoryActionArgs) => HistoryActionArgs;
2
+ export declare type HistoryAction = 'pushState' | 'replaceState';
3
+ export declare type HistoryActionArgs = Parameters<typeof history[HistoryAction]>;
4
+ export declare type HistoryMiddleware = (action: HistoryAction, args: HistoryActionArgs) => HistoryActionArgs;
5
5
  export declare const pushLocation: (path: string) => void;
6
6
  export declare const replaceLocation: (path: string) => void;
7
7
  export declare const addMiddleware: (middleware: HistoryMiddleware) => void;
@@ -22,13 +22,22 @@ const fireEvent = (name) => {
22
22
  };
23
23
  const pushLocation = (path) => path !== WINDOW.location.pathname && history[events[0]](null, null, path);
24
24
  const replaceLocation = (path) => history[events[1]](null, null, path);
25
+ const addMiddleware = (middleware) => {
26
+ middlewares.push(middleware);
27
+ };
28
+ const removeMiddleware = (middleware) => {
29
+ let index = middlewares.indexOf(middleware);
30
+ index !== -1 && middlewares.splice(index, 1);
31
+ };
25
32
  if (process.env.NODE_ENV !== 'production') {
26
33
  // will be removed in production build
27
34
  // needed only to prevent bundler to remove 'unused' functions
28
35
  window['history-tools'] = {
29
- replaceLocation
36
+ replaceLocation,
37
+ addMiddleware,
38
+ removeMiddleware,
30
39
  };
31
40
  }
32
41
 
33
- export { pushLocation, replaceLocation };
42
+ export { addMiddleware, pushLocation, removeMiddleware, replaceLocation };
34
43
  //# sourceMappingURL=HistoryTools.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"HistoryTools.js","sources":["../src/router/HistoryTools.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAEA,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;AAM/B,MAAM,WAAW,GAAwB,EAAE,CAAA;AAE3C,MAAM,MAAM,GAAoB,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;AAC9D,MAAM,CAAC,OAAO,CAAC,CAAC,IAAG;AACf,IAAA,IAAI,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAC1B,OAAO,CAAC,CAAC,CAAC,GAAG,YAAA;QACT,IAAI,IAAI,GAAG,SAAqC,CAAC;AACjD,QAAA,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE;AAClC,YAAA,IAAI,GAAG,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;AAC1B,YAAA,IAAI,CAAC,IAAI;gBAAE,MAAK;AACnB,SAAA;QACD,IAAI,IAAI,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACtC,SAAS,CAAC,CAAC,CAAC,CAAC;AACjB,KAAC,CAAA;AACL,CAAC,CAAC,CAAC;AAEH,MAAM,SAAS,GAAG,CAAC,IAAI,KAAI;AACvB,IAAA,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;AACnE,IAAA,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAChC,CAAC,CAAC;AAEK,MAAM,YAAY,GAAG,CAAC,IAAY,KAAK,IAAI,KAAK,MAAM,CAAC,QAAQ,CAAC,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE;MAE3G,eAAe,GAAG,CAAC,IAAY,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE;AAUtF,IAAI,MAAM,CAAC,4BAA4B,CAAC,EAAE;;;IAGtC,MAAM,CAAC,eAAe,CAAC,GAAG;QACtB,eAAe;KAClB,CAAA;AACJ;;;;"}
1
+ {"version":3,"file":"HistoryTools.js","sources":["../src/router/HistoryTools.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAEA,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;AAM/B,MAAM,WAAW,GAAwB,EAAE,CAAA;AAE3C,MAAM,MAAM,GAAoB,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;AAC9D,MAAM,CAAC,OAAO,CAAC,CAAC,IAAG;AACf,IAAA,IAAI,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAC1B,OAAO,CAAC,CAAC,CAAC,GAAG,YAAA;QACT,IAAI,IAAI,GAAG,SAAqC,CAAC;AACjD,QAAA,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE;AAClC,YAAA,IAAI,GAAG,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;AAC1B,YAAA,IAAI,CAAC,IAAI;gBAAE,MAAK;AACnB,SAAA;QACD,IAAI,IAAI,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACtC,SAAS,CAAC,CAAC,CAAC,CAAC;AACjB,KAAC,CAAA;AACL,CAAC,CAAC,CAAC;AAEH,MAAM,SAAS,GAAG,CAAC,IAAI,KAAI;AACvB,IAAA,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;AACnE,IAAA,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAChC,CAAC,CAAC;AAEK,MAAM,YAAY,GAAG,CAAC,IAAY,KAAK,IAAI,KAAK,MAAM,CAAC,QAAQ,CAAC,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE;MAE3G,eAAe,GAAG,CAAC,IAAY,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE;AAEzE,MAAA,aAAa,GAAG,CAAC,UAA6B,KAAI;AAC3D,IAAA,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACjC,EAAE;AACW,MAAA,gBAAgB,GAAG,CAAC,UAA6B,KAAI;IAC9D,IAAI,KAAK,GAAG,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAC5C,IAAA,KAAK,KAAK,CAAC,CAAC,IAAI,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AACjD,EAAE;AAEF,IAAI,MAAM,CAAC,4BAA4B,CAAC,EAAE;;;IAGtC,MAAM,CAAC,eAAe,CAAC,GAAG;QACtB,eAAe;QACf,aAAa;QACb,gBAAgB;KACnB,CAAA;AACJ;;;;"}
@@ -2,9 +2,9 @@ import {WINDOW} from "../Tools";
2
2
 
3
3
  const history = WINDOW.history;
4
4
 
5
- type HistoryAction = 'pushState' | 'replaceState';
6
- type HistoryActionArgs = Parameters<typeof history[HistoryAction]>;
7
- type HistoryMiddleware = (action: HistoryAction, args: HistoryActionArgs) => HistoryActionArgs;
5
+ export type HistoryAction = 'pushState' | 'replaceState';
6
+ export type HistoryActionArgs = Parameters<typeof history[HistoryAction]>;
7
+ export type HistoryMiddleware = (action: HistoryAction, args: HistoryActionArgs) => HistoryActionArgs;
8
8
 
9
9
  const middlewares: HistoryMiddleware[] = []
10
10
 
@@ -43,6 +43,8 @@ if (window['isNotProductionEnvironment']) {
43
43
  // will be removed in production build
44
44
  // needed only to prevent bundler to remove 'unused' functions
45
45
  window['history-tools'] = {
46
- replaceLocation
46
+ replaceLocation,
47
+ addMiddleware,
48
+ removeMiddleware,
47
49
  }
48
50
  }