react-ui-basics 0.0.166 → 0.0.169

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
@@ -458,19 +458,6 @@
458
458
  position: absolute;
459
459
  }
460
460
 
461
- .CircleProgress {
462
- width: 48px;
463
- height: 48px;
464
- }
465
-
466
- .CircleProgress .line {
467
- stroke-width: 2px;
468
- stroke: black;
469
- stroke-linecap: square;
470
- fill: none;
471
- transition: stroke-dashoffset 0.2s ease;
472
- }
473
-
474
461
  .DialogModal {
475
462
  overflow: hidden;
476
463
  }
@@ -513,6 +500,15 @@
513
500
  margin-bottom: 0;
514
501
  }
515
502
 
503
+ .animated {
504
+ transition: opacity 250ms ease;
505
+ opacity: 0;
506
+ }
507
+
508
+ .animated.mounting, .animated.mounted {
509
+ opacity: 1;
510
+ }
511
+
516
512
  .Checkbox {
517
513
  position: relative;
518
514
  white-space: pre;
@@ -580,6 +576,19 @@
580
576
  background: rgba(0, 0, 0, 0.26);
581
577
  }
582
578
 
579
+ .CircleProgress {
580
+ width: 48px;
581
+ height: 48px;
582
+ }
583
+
584
+ .CircleProgress .line {
585
+ stroke-width: 2px;
586
+ stroke: black;
587
+ stroke-linecap: square;
588
+ fill: none;
589
+ transition: stroke-dashoffset 0.2s ease;
590
+ }
591
+
583
592
  .DNDContainer {
584
593
  position: relative;
585
594
  }
@@ -639,39 +648,6 @@
639
648
  margin-right: 10px;
640
649
  }
641
650
 
642
- .animated {
643
- transition: opacity 250ms ease;
644
- opacity: 0;
645
- }
646
-
647
- .animated.mounting, .animated.mounted {
648
- opacity: 1;
649
- }
650
-
651
- .Button.FloatingActionButton {
652
- position: absolute;
653
- right: 16px;
654
- bottom: 16px;
655
- width: 56px;
656
- height: 56px;
657
- padding: 16px;
658
- transition: bottom 0.2s cubic-bezier(0.4, 0, 0.2, 1);
659
- }
660
-
661
- .Button.FloatingActionButton.raised {
662
- 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);
663
- }
664
-
665
- .Button.FloatingActionButton.mini {
666
- width: 40px;
667
- height: 40px;
668
- padding: 8px;
669
- }
670
-
671
- .Button.FloatingActionButton.hidden {
672
- bottom: -100px;
673
- }
674
-
675
651
  .FormUploadProgress {
676
652
  position: absolute;
677
653
  left: 0;
@@ -801,334 +777,283 @@
801
777
  z-index: 1;
802
778
  }
803
779
 
804
- .ImageGallery {
805
- position: fixed;
806
- top: 0;
807
- left: 0;
808
- bottom: 0;
809
- right: 0;
810
- z-index: 1000;
811
- background-color: rgba(0, 0, 0, 0.01);
812
- user-select: none;
780
+ .ModalMenu {
781
+ position: absolute;
782
+ top: 10px;
783
+ right: 50px;
813
784
  }
814
785
 
815
- .ImageGallery:focus {
816
- outline-width: 0px;
786
+ .ModalMenu .material-icons {
787
+ color: #818181;
817
788
  }
818
789
 
819
- .ImageGallery.animated {
820
- transition: background-color 0.25s ease;
790
+ .ModalMenu .Button.animated {
791
+ position: absolute;
792
+ transition: opacity 150ms ease-in, right 200ms ease-in;
793
+ opacity: 0;
794
+ right: 0;
795
+ top: 0;
796
+ }
797
+
798
+ .ModalMenu .Button.animated.mounting, .ModalMenu .Button.animated.mounted {
821
799
  opacity: 1;
822
800
  }
823
801
 
824
- .ImageGallery.mounting, .ImageGallery.mounted {
825
- background-color: rgba(0, 0, 0, 0.8);
802
+ .ModalMenu .Button.animated.unmounting {
803
+ transition: opacity 100ms ease-out, right 200ms ease-out;
826
804
  }
827
805
 
828
- .ImageGallery .image {
829
- position: absolute;
830
- cursor: grab;
806
+ .ModalMenu .Button.active {
807
+ background: #EBEBEB;
831
808
  }
832
809
 
833
- .ImageGallery .image .counter {
834
- display: none;
810
+ .ModalMenu .separator {
811
+ height: 24px;
812
+ width: 1px;
813
+ background-color: #D9D9D9;
814
+ margin-left: 4px;
835
815
  }
836
816
 
837
- .ImageGallery .image img {
838
- border-radius: 4px;
839
- max-width: 100%;
840
- min-width: 100%;
817
+ .Button.FloatingActionButton {
818
+ position: absolute;
819
+ right: 16px;
820
+ bottom: 16px;
821
+ width: 56px;
822
+ height: 56px;
823
+ padding: 16px;
824
+ transition: bottom 0.2s cubic-bezier(0.4, 0, 0.2, 1);
841
825
  }
842
826
 
843
- .ImageGallery .image.animated {
844
- transition: top 0.25s ease, left 0.25s ease, width 0.25s ease, height 0.25s ease, opacity 0.25s ease;
845
- will-change: top, left, width, height, opacity;
827
+ .Button.FloatingActionButton.raised {
828
+ 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);
846
829
  }
847
830
 
848
- .ImageGallery .image.animated.mounting, .ImageGallery .image.animated.mounted, .ImageGallery .image.animated.unmounting {
849
- opacity: 1;
831
+ .Button.FloatingActionButton.mini {
832
+ width: 40px;
833
+ height: 40px;
834
+ padding: 8px;
850
835
  }
851
836
 
852
- .ImageGallery .image.zoomed {
853
- text-align: center;
837
+ .Button.FloatingActionButton.hidden {
838
+ bottom: -100px;
839
+ }
840
+
841
+ .Scrollable {
842
+ max-height: 250px;
843
+ max-width: 250px;
844
+ padding-right: 5px;
845
+ position: relative;
846
+ display: flex;
847
+ flex-flow: column;
848
+ align-items: stretch;
854
849
  overflow: hidden;
855
850
  }
856
851
 
857
- .ImageGallery .image.dragging {
858
- transition: none;
859
- cursor: move;
852
+ .Scrollable:hover > .scrollbar.auto {
853
+ transition-delay: 0s;
854
+ opacity: 1;
860
855
  }
861
856
 
862
- .ImageGallery .image .close {
863
- position: absolute;
864
- top: -18px;
865
- right: -18px;
857
+ .Scrollable .viewport {
858
+ overflow-y: scroll;
859
+ overflow-x: scroll;
860
+ max-height: 100%;
861
+ scroll-behavior: smooth;
862
+ scrollbar-width: none;
866
863
  }
867
864
 
868
- .ImageGallery .image .spinner {
869
- position: absolute;
870
- top: 0;
871
- bottom: 0;
872
- left: 0;
873
- right: 0;
874
- background: rgba(0, 0, 0, 0.65);
865
+ .Scrollable .viewport::-webkit-scrollbar {
866
+ display: none;
875
867
  }
876
868
 
877
- .ImageGallery .image .spinner .SpinningProgress {
878
- position: absolute;
879
- top: 50%;
880
- left: 50%;
881
- margin-left: -24px;
882
- margin-top: -24px;
869
+ .Scrollable.without-scroll-horizontal {
870
+ max-width: unset;
883
871
  }
884
872
 
885
- .ImageGallery .image .spinner .SpinningProgress .line {
886
- stroke: #2196F3;
873
+ .Scrollable.without-scroll {
874
+ padding-right: 0;
875
+ max-height: unset;
887
876
  }
888
877
 
889
- .ImageGallery .Button.animated {
890
- transition: all 0.25s ease;
891
- opacity: 0;
892
- transform: scale(0);
878
+ .Scrollable.without-scroll > .viewport {
879
+ padding-right: 0;
880
+ margin-right: 0;
893
881
  }
894
882
 
895
- .ImageGallery .Button.animated.mounted, .ImageGallery .Button.animated.mounting {
896
- opacity: 1;
897
- transform: scale(1);
883
+ .Scrollable.without-scroll > .scrollbar {
884
+ visibility: hidden;
898
885
  }
899
886
 
900
- .ImageGallery .Button {
901
- color: white;
902
- background: rgba(0, 0, 0, 0.4);
887
+ .Scrollable .scrollbar {
888
+ position: absolute;
889
+ right: 0px;
890
+ top: 0px;
891
+ width: 5px;
892
+ transition: opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1);
893
+ transition-delay: 0.5s;
894
+ z-index: 1;
903
895
  }
904
896
 
905
- .ImageGallery .Button:hover {
906
- background: rgba(0, 0, 0, 0.7);
897
+ .Scrollable .scrollbar.auto, .Scrollable .scrollbar.hidden {
898
+ opacity: 0;
907
899
  }
908
900
 
909
- .ImageGallery > .arrow {
901
+ .Scrollable .scrollbar .thumb {
902
+ background-color: rgba(0, 0, 0, 0.3);
903
+ width: 5px;
910
904
  position: absolute;
911
- top: 50%;
912
- height: 76px;
913
- width: 76px;
914
- margin-top: -38px;
905
+ right: 0px;
906
+ top: 0px;
907
+ user-select: none;
908
+ will-change: top;
909
+ border-radius: 2px;
915
910
  }
916
911
 
917
- .ImageGallery > .arrow.left {
918
- left: 5%;
912
+ .Scrollable .scrollbar .thumb:hover {
913
+ background-color: rgba(0, 0, 0, 0.5);
919
914
  }
920
915
 
921
- .ImageGallery > .arrow.right {
922
- right: 5%;
916
+ .Scrollable .scrollbar .thumb:active {
917
+ background-color: rgba(0, 0, 0, 0.7);
923
918
  }
924
919
 
925
- .ImageGallery > .arrow .material-icons {
926
- font-size: 40px;
920
+ .Scrollable .scrollbar.horizontal {
921
+ left: 0px;
922
+ right: 0px;
923
+ height: 5px;
924
+ bottom: 0;
925
+ width: unset;
926
+ top: unset;
927
927
  }
928
928
 
929
- .ImageGallery .counter {
930
- position: absolute;
931
- top: 10px;
932
- left: 10px;
933
- color: white;
934
- font-size: 13px;
929
+ .Scrollable .scrollbar.horizontal .thumb {
930
+ height: 5px;
931
+ left: 0px;
932
+ bottom: 0px;
933
+ will-change: left;
935
934
  }
936
935
 
937
- .ImageGallery .previews {
938
- height: 80px;
939
- position: absolute;
940
- bottom: 15px;
941
- left: 50%;
942
- transform: translateX(-50%);
943
- padding: 0 45px;
944
- }
945
-
946
- .ImageGallery .previews .viewport {
947
- overflow: hidden;
936
+ .SpinningProgress {
937
+ width: 48px;
938
+ height: 48px;
948
939
  position: relative;
949
- height: 100%;
940
+ margin: 0 auto;
950
941
  }
951
942
 
952
- .ImageGallery .previews .container {
953
- position: relative;
954
- display: flex;
955
- flex-flow: row nowrap;
956
- height: 100%;
957
- transition: left 0.25s ease;
943
+ .SpinningProgress:before {
944
+ content: "";
945
+ display: block;
946
+ padding-top: 100%;
958
947
  }
959
948
 
960
- .ImageGallery .previews .preview {
961
- position: relative;
949
+ .SpinningProgress .circular {
950
+ animation: rotate 2s linear infinite;
962
951
  height: 100%;
963
- display: inline-block;
964
- width: 106.66px;
965
- overflow: hidden;
966
- margin-left: 12px;
967
- border-radius: 2px;
968
- cursor: pointer;
969
- box-sizing: border-box;
970
- }
971
-
972
- .ImageGallery .previews .preview:first-child {
973
- margin-left: 0;
974
- }
975
-
976
- .ImageGallery .previews .preview > .border {
977
- position: absolute;
978
- bottom: 0;
952
+ transform-origin: center center;
979
953
  width: 100%;
980
- height: 3px;
981
- }
982
-
983
- .ImageGallery .previews .preview > .border .line {
984
- left: 50%;
985
- width: 0;
986
- height: 3px;
987
- min-height: 3px;
988
- background-color: #4AC263;
989
- transition: all 0.2s ease;
990
- position: absolute;
991
- }
992
-
993
- .ImageGallery .previews .preview:after {
994
- content: "";
995
954
  position: absolute;
996
955
  top: 0;
997
- right: 0;
998
956
  bottom: 0;
999
957
  left: 0;
1000
- background: rgba(0, 0, 0, 0.35);
1001
- transition: background 0.2s ease;
1002
- }
1003
-
1004
- .ImageGallery .previews .preview:hover:after {
1005
- background: rgba(0, 0, 0, 0.1);
958
+ right: 0;
959
+ margin: auto;
1006
960
  }
1007
961
 
1008
- .ImageGallery .previews .preview.selected .border .line {
1009
- left: 0;
1010
- width: 100%;
962
+ .SpinningProgress .line {
963
+ stroke: black;
964
+ stroke-width: 2px;
965
+ stroke-dasharray: 1, 96;
966
+ stroke-dashoffset: 0;
967
+ animation: dash 1.5s ease-in-out infinite, color 6s ease-in-out infinite;
1011
968
  }
1012
969
 
1013
- .ImageGallery .previews .preview.selected:after {
1014
- background: rgba(0, 0, 0, 0);
970
+ @keyframes rotate {
971
+ 100% {
972
+ transform: rotate(360deg);
973
+ }
1015
974
  }
1016
-
1017
- .ImageGallery .previews > .arrow {
1018
- position: absolute;
1019
- top: 50%;
1020
- height: 30px;
1021
- width: 30px;
1022
- min-width: 30px;
1023
- min-height: 30px;
1024
- margin-top: -15px;
975
+ @keyframes dash {
976
+ 0% {
977
+ stroke-dasharray: 1, 96;
978
+ stroke-dashoffset: 0;
979
+ }
980
+ 50% {
981
+ stroke-dasharray: 43, 96;
982
+ stroke-dashoffset: -17px;
983
+ }
984
+ 100% {
985
+ stroke-dasharray: 43, 96;
986
+ stroke-dashoffset: -53px;
987
+ }
1025
988
  }
1026
-
1027
- .ImageGallery .previews > .arrow.left {
989
+ .Modal {
990
+ display: block;
991
+ position: fixed;
992
+ top: 0;
1028
993
  left: 0;
1029
- }
1030
-
1031
- .ImageGallery .previews > .arrow.right {
1032
994
  right: 0;
1033
- }
1034
-
1035
- .ImageGallery .previews > .arrow .material-icons {
1036
- font-size: 24px;
1037
- }
1038
-
1039
- .Scrollable {
1040
- max-height: 250px;
1041
- max-width: 250px;
1042
- padding-right: 5px;
1043
- position: relative;
1044
- display: flex;
1045
- flex-flow: column;
1046
- align-items: stretch;
1047
- overflow: hidden;
1048
- }
1049
-
1050
- .Scrollable:hover > .scrollbar.auto {
1051
- transition-delay: 0s;
1052
- opacity: 1;
1053
- }
1054
-
1055
- .Scrollable .viewport {
995
+ bottom: 100%;
1056
996
  overflow-y: scroll;
1057
- overflow-x: scroll;
1058
- max-height: 100%;
1059
- scroll-behavior: smooth;
1060
- scrollbar-width: none;
1061
- }
1062
-
1063
- .Scrollable .viewport::-webkit-scrollbar {
1064
- display: none;
1065
- }
1066
-
1067
- .Scrollable.without-scroll-horizontal {
1068
- max-width: unset;
1069
- }
1070
-
1071
- .Scrollable.without-scroll {
1072
- padding-right: 0;
1073
- max-height: unset;
1074
- }
1075
-
1076
- .Scrollable.without-scroll > .viewport {
1077
- padding-right: 0;
1078
- margin-right: 0;
997
+ transition: bottom 0ms linear;
998
+ transition-delay: 0.2s;
1079
999
  }
1080
1000
 
1081
- .Scrollable.without-scroll > .scrollbar {
1082
- visibility: hidden;
1001
+ .Modal.show {
1002
+ transition-delay: 0s;
1003
+ bottom: 0;
1083
1004
  }
1084
1005
 
1085
- .Scrollable .scrollbar {
1086
- position: absolute;
1087
- right: 0px;
1088
- top: 0px;
1089
- width: 5px;
1006
+ .Modal > .overlay {
1007
+ position: fixed;
1008
+ top: 0;
1009
+ bottom: 100%;
1010
+ left: 0;
1011
+ right: 0;
1090
1012
  transition: opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1);
1091
- transition-delay: 0.5s;
1092
- z-index: 1;
1013
+ opacity: 0;
1014
+ background-color: black;
1015
+ pointer-events: none;
1093
1016
  }
1094
1017
 
1095
- .Scrollable .scrollbar.auto, .Scrollable .scrollbar.hidden {
1096
- opacity: 0;
1018
+ .Modal > .overlay.show {
1019
+ opacity: 0.5;
1020
+ bottom: 0;
1097
1021
  }
1098
1022
 
1099
- .Scrollable .scrollbar .thumb {
1100
- background-color: rgba(0, 0, 0, 0.3);
1101
- width: 5px;
1023
+ .Modal > .content {
1024
+ left: 50%;
1025
+ top: 10vh;
1026
+ margin-bottom: 10vh;
1027
+ font-size: 16px;
1028
+ padding: 0;
1029
+ opacity: 0;
1030
+ transition: opacity 0.25s ease, transform 0.25s ease;
1031
+ transform: scaleY(0) translateY(-200px) translateX(-50%);
1032
+ transform-origin: top;
1102
1033
  position: absolute;
1103
- right: 0px;
1104
- top: 0px;
1105
- user-select: none;
1106
- will-change: top;
1107
1034
  border-radius: 2px;
1035
+ box-shadow: 0px 10px 20px rgba(0, 0, 0, 0.3);
1108
1036
  }
1109
1037
 
1110
- .Scrollable .scrollbar .thumb:hover {
1111
- background-color: rgba(0, 0, 0, 0.5);
1038
+ .Modal > .content.show {
1039
+ opacity: 1;
1040
+ transform: scaleY(1) translateY(0px) translateX(-50%);
1112
1041
  }
1113
1042
 
1114
- .Scrollable .scrollbar .thumb:active {
1115
- background-color: rgba(0, 0, 0, 0.7);
1043
+ .Modal > .content > .Scrollable {
1044
+ overflow: visible;
1045
+ max-height: 80vh;
1116
1046
  }
1117
1047
 
1118
- .Scrollable .scrollbar.horizontal {
1119
- left: 0px;
1120
- right: 0px;
1121
- height: 5px;
1122
- bottom: 0;
1123
- width: unset;
1124
- top: unset;
1048
+ .Modal > .content > .Scrollable > .viewport {
1049
+ min-width: 10px;
1050
+ min-height: 10px;
1125
1051
  }
1126
1052
 
1127
- .Scrollable .scrollbar.horizontal .thumb {
1128
- height: 5px;
1129
- left: 0px;
1130
- bottom: 0px;
1131
- will-change: left;
1053
+ .Modal > .content > .Button.close {
1054
+ top: 10px;
1055
+ right: 10px;
1056
+ position: absolute;
1132
1057
  }
1133
1058
 
1134
1059
  .Switch {
@@ -1213,139 +1138,14 @@
1213
1138
  display: none;
1214
1139
  }
1215
1140
 
1216
- .Modal {
1217
- display: block;
1218
- position: fixed;
1219
- top: 0;
1220
- left: 0;
1221
- right: 0;
1222
- bottom: 100%;
1223
- overflow-y: scroll;
1224
- transition: bottom 0ms linear;
1225
- transition-delay: 0.2s;
1226
- }
1227
-
1228
- .Modal.show {
1229
- transition-delay: 0s;
1230
- bottom: 0;
1231
- }
1232
-
1233
- .Modal > .overlay {
1234
- position: fixed;
1235
- top: 0;
1236
- bottom: 100%;
1237
- left: 0;
1238
- right: 0;
1239
- transition: opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1);
1240
- opacity: 0;
1241
- background-color: black;
1242
- pointer-events: none;
1243
- }
1244
-
1245
- .Modal > .overlay.show {
1246
- opacity: 0.5;
1247
- bottom: 0;
1248
- }
1249
-
1250
- .Modal > .content {
1251
- left: 50%;
1252
- top: 10vh;
1253
- margin-bottom: 10vh;
1254
- font-size: 16px;
1255
- padding: 0;
1256
- opacity: 0;
1257
- transition: opacity 0.25s ease, transform 0.25s ease;
1258
- transform: scaleY(0) translateY(-200px) translateX(-50%);
1259
- transform-origin: top;
1260
- position: absolute;
1261
- border-radius: 2px;
1262
- box-shadow: 0px 10px 20px rgba(0, 0, 0, 0.3);
1263
- }
1264
-
1265
- .Modal > .content.show {
1266
- opacity: 1;
1267
- transform: scaleY(1) translateY(0px) translateX(-50%);
1268
- }
1269
-
1270
- .Modal > .content > .Scrollable {
1271
- overflow: visible;
1272
- max-height: 80vh;
1273
- }
1274
-
1275
- .Modal > .content > .Scrollable > .viewport {
1276
- min-width: 10px;
1277
- min-height: 10px;
1278
- }
1279
-
1280
- .Modal > .content > .Button.close {
1281
- top: 10px;
1282
- right: 10px;
1283
- position: absolute;
1284
- }
1285
-
1286
- .ModalMenu {
1287
- position: absolute;
1288
- top: 10px;
1289
- right: 50px;
1290
- }
1291
-
1292
- .ModalMenu .material-icons {
1293
- color: #818181;
1294
- }
1295
-
1296
- .ModalMenu .Button.animated {
1297
- position: absolute;
1298
- transition: opacity 150ms ease-in, right 200ms ease-in;
1299
- opacity: 0;
1300
- right: 0;
1301
- top: 0;
1302
- }
1303
-
1304
- .ModalMenu .Button.animated.mounting, .ModalMenu .Button.animated.mounted {
1305
- opacity: 1;
1306
- }
1307
-
1308
- .ModalMenu .Button.animated.unmounting {
1309
- transition: opacity 100ms ease-out, right 200ms ease-out;
1310
- }
1311
-
1312
- .ModalMenu .Button.active {
1313
- background: #EBEBEB;
1314
- }
1315
-
1316
- .ModalMenu .separator {
1317
- height: 24px;
1318
- width: 1px;
1319
- background-color: #D9D9D9;
1320
- margin-left: 4px;
1321
- }
1322
-
1323
- .DNDContainer .DroppableList .Draggable {
1324
- transform: unset;
1325
- transition: unset;
1326
- opacity: 1;
1327
- }
1328
-
1329
- .DNDContainer .DroppableList .Draggable.dragged {
1330
- transition: unset !important;
1331
- }
1332
-
1333
- .DNDContainer .DroppableList.hover .Draggable {
1334
- transition: transform 0.2s ease-in;
1335
- }
1336
-
1337
- .DNDContainer .DroppableList.resetting .Draggable {
1338
- transition: transform 0.1s ease-in;
1339
- }
1340
-
1341
- .Snackbar {
1342
- transform: translateX(-50%);
1343
- overflow: hidden;
1344
- background-color: #323232;
1345
- padding: 14px 24px 14px 24px;
1346
- color: #fff;
1347
- min-width: 288px;
1348
- max-width: 568px;
1141
+ .Snackbar {
1142
+ transform: translateX(-50%);
1143
+ overflow: hidden;
1144
+ background-color: #323232;
1145
+ padding: 14px 24px 14px 24px;
1146
+ color: #fff;
1147
+ min-width: 288px;
1148
+ max-width: 568px;
1349
1149
  position: fixed;
1350
1150
  bottom: -50px;
1351
1151
  left: 50%;
@@ -1526,59 +1326,259 @@
1526
1326
  animation-name: shake;
1527
1327
  }
1528
1328
 
1529
- .SpinningProgress {
1530
- width: 48px;
1531
- height: 48px;
1329
+ .ImageGallery {
1330
+ position: fixed;
1331
+ top: 0;
1332
+ left: 0;
1333
+ bottom: 0;
1334
+ right: 0;
1335
+ z-index: 1000;
1336
+ background-color: rgba(0, 0, 0, 0.01);
1337
+ user-select: none;
1338
+ }
1339
+
1340
+ .ImageGallery:focus {
1341
+ outline-width: 0px;
1342
+ }
1343
+
1344
+ .ImageGallery.animated {
1345
+ transition: background-color 0.25s ease;
1346
+ opacity: 1;
1347
+ }
1348
+
1349
+ .ImageGallery.mounting, .ImageGallery.mounted {
1350
+ background-color: rgba(0, 0, 0, 0.8);
1351
+ }
1352
+
1353
+ .ImageGallery .image {
1354
+ position: absolute;
1355
+ cursor: grab;
1356
+ }
1357
+
1358
+ .ImageGallery .image .counter {
1359
+ display: none;
1360
+ }
1361
+
1362
+ .ImageGallery .image img {
1363
+ border-radius: 4px;
1364
+ max-width: 100%;
1365
+ min-width: 100%;
1366
+ }
1367
+
1368
+ .ImageGallery .image.animated {
1369
+ transition: top 0.25s ease, left 0.25s ease, width 0.25s ease, height 0.25s ease, opacity 0.25s ease;
1370
+ will-change: top, left, width, height, opacity;
1371
+ }
1372
+
1373
+ .ImageGallery .image.animated.mounting, .ImageGallery .image.animated.mounted, .ImageGallery .image.animated.unmounting {
1374
+ opacity: 1;
1375
+ }
1376
+
1377
+ .ImageGallery .image.zoomed {
1378
+ text-align: center;
1379
+ overflow: hidden;
1380
+ }
1381
+
1382
+ .ImageGallery .image.dragging {
1383
+ transition: none;
1384
+ cursor: move;
1385
+ }
1386
+
1387
+ .ImageGallery .image .close {
1388
+ position: absolute;
1389
+ top: -18px;
1390
+ right: -18px;
1391
+ }
1392
+
1393
+ .ImageGallery .image .spinner {
1394
+ position: absolute;
1395
+ top: 0;
1396
+ bottom: 0;
1397
+ left: 0;
1398
+ right: 0;
1399
+ background: rgba(0, 0, 0, 0.65);
1400
+ }
1401
+
1402
+ .ImageGallery .image .spinner .SpinningProgress {
1403
+ position: absolute;
1404
+ top: 50%;
1405
+ left: 50%;
1406
+ margin-left: -24px;
1407
+ margin-top: -24px;
1408
+ }
1409
+
1410
+ .ImageGallery .image .spinner .SpinningProgress .line {
1411
+ stroke: #2196F3;
1412
+ }
1413
+
1414
+ .ImageGallery .Button.animated {
1415
+ transition: all 0.25s ease;
1416
+ opacity: 0;
1417
+ transform: scale(0);
1418
+ }
1419
+
1420
+ .ImageGallery .Button.animated.mounted, .ImageGallery .Button.animated.mounting {
1421
+ opacity: 1;
1422
+ transform: scale(1);
1423
+ }
1424
+
1425
+ .ImageGallery .Button {
1426
+ color: white;
1427
+ background: rgba(0, 0, 0, 0.4);
1428
+ }
1429
+
1430
+ .ImageGallery .Button:hover {
1431
+ background: rgba(0, 0, 0, 0.7);
1432
+ }
1433
+
1434
+ .ImageGallery > .arrow {
1435
+ position: absolute;
1436
+ top: 50%;
1437
+ height: 76px;
1438
+ width: 76px;
1439
+ margin-top: -38px;
1440
+ }
1441
+
1442
+ .ImageGallery > .arrow.left {
1443
+ left: 5%;
1444
+ }
1445
+
1446
+ .ImageGallery > .arrow.right {
1447
+ right: 5%;
1448
+ }
1449
+
1450
+ .ImageGallery > .arrow .material-icons {
1451
+ font-size: 40px;
1452
+ }
1453
+
1454
+ .ImageGallery .counter {
1455
+ position: absolute;
1456
+ top: 10px;
1457
+ left: 10px;
1458
+ color: white;
1459
+ font-size: 13px;
1460
+ }
1461
+
1462
+ .ImageGallery .previews {
1463
+ height: 80px;
1464
+ position: absolute;
1465
+ bottom: 15px;
1466
+ left: 50%;
1467
+ transform: translateX(-50%);
1468
+ padding: 0 45px;
1469
+ }
1470
+
1471
+ .ImageGallery .previews .viewport {
1472
+ overflow: hidden;
1532
1473
  position: relative;
1533
- margin: 0 auto;
1474
+ height: 100%;
1534
1475
  }
1535
1476
 
1536
- .SpinningProgress:before {
1537
- content: "";
1538
- display: block;
1539
- padding-top: 100%;
1477
+ .ImageGallery .previews .container {
1478
+ position: relative;
1479
+ display: flex;
1480
+ flex-flow: row nowrap;
1481
+ height: 100%;
1482
+ transition: left 0.25s ease;
1540
1483
  }
1541
1484
 
1542
- .SpinningProgress .circular {
1543
- animation: rotate 2s linear infinite;
1485
+ .ImageGallery .previews .preview {
1486
+ position: relative;
1544
1487
  height: 100%;
1545
- transform-origin: center center;
1488
+ display: inline-block;
1489
+ width: 106.66px;
1490
+ overflow: hidden;
1491
+ margin-left: 12px;
1492
+ border-radius: 2px;
1493
+ cursor: pointer;
1494
+ box-sizing: border-box;
1495
+ }
1496
+
1497
+ .ImageGallery .previews .preview:first-child {
1498
+ margin-left: 0;
1499
+ }
1500
+
1501
+ .ImageGallery .previews .preview > .border {
1502
+ position: absolute;
1503
+ bottom: 0;
1546
1504
  width: 100%;
1505
+ height: 3px;
1506
+ }
1507
+
1508
+ .ImageGallery .previews .preview > .border .line {
1509
+ left: 50%;
1510
+ width: 0;
1511
+ height: 3px;
1512
+ min-height: 3px;
1513
+ background-color: #4AC263;
1514
+ transition: all 0.2s ease;
1515
+ position: absolute;
1516
+ }
1517
+
1518
+ .ImageGallery .previews .preview:after {
1519
+ content: "";
1547
1520
  position: absolute;
1548
1521
  top: 0;
1522
+ right: 0;
1549
1523
  bottom: 0;
1550
1524
  left: 0;
1525
+ background: rgba(0, 0, 0, 0.35);
1526
+ transition: background 0.2s ease;
1527
+ }
1528
+
1529
+ .ImageGallery .previews .preview:hover:after {
1530
+ background: rgba(0, 0, 0, 0.1);
1531
+ }
1532
+
1533
+ .ImageGallery .previews .preview.selected .border .line {
1534
+ left: 0;
1535
+ width: 100%;
1536
+ }
1537
+
1538
+ .ImageGallery .previews .preview.selected:after {
1539
+ background: rgba(0, 0, 0, 0);
1540
+ }
1541
+
1542
+ .ImageGallery .previews > .arrow {
1543
+ position: absolute;
1544
+ top: 50%;
1545
+ height: 30px;
1546
+ width: 30px;
1547
+ min-width: 30px;
1548
+ min-height: 30px;
1549
+ margin-top: -15px;
1550
+ }
1551
+
1552
+ .ImageGallery .previews > .arrow.left {
1553
+ left: 0;
1554
+ }
1555
+
1556
+ .ImageGallery .previews > .arrow.right {
1551
1557
  right: 0;
1552
- margin: auto;
1553
1558
  }
1554
1559
 
1555
- .SpinningProgress .line {
1556
- stroke: black;
1557
- stroke-width: 2px;
1558
- stroke-dasharray: 1, 96;
1559
- stroke-dashoffset: 0;
1560
- animation: dash 1.5s ease-in-out infinite, color 6s ease-in-out infinite;
1560
+ .ImageGallery .previews > .arrow .material-icons {
1561
+ font-size: 24px;
1561
1562
  }
1562
1563
 
1563
- @keyframes rotate {
1564
- 100% {
1565
- transform: rotate(360deg);
1566
- }
1564
+ .DNDContainer .DroppableList .Draggable {
1565
+ transform: unset;
1566
+ transition: unset;
1567
+ opacity: 1;
1567
1568
  }
1568
- @keyframes dash {
1569
- 0% {
1570
- stroke-dasharray: 1, 96;
1571
- stroke-dashoffset: 0;
1572
- }
1573
- 50% {
1574
- stroke-dasharray: 43, 96;
1575
- stroke-dashoffset: -17px;
1576
- }
1577
- 100% {
1578
- stroke-dasharray: 43, 96;
1579
- stroke-dashoffset: -53px;
1580
- }
1569
+
1570
+ .DNDContainer .DroppableList .Draggable.dragged {
1571
+ transition: unset !important;
1572
+ }
1573
+
1574
+ .DNDContainer .DroppableList.hover .Draggable {
1575
+ transition: transform 0.2s ease-in;
1576
+ }
1577
+
1578
+ .DNDContainer .DroppableList.resetting .Draggable {
1579
+ transition: transform 0.1s ease-in;
1581
1580
  }
1581
+
1582
1582
  .FilteredList {
1583
1583
  max-height: 250px;
1584
1584
  position: relative;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-ui-basics",
3
- "version": "0.0.166",
3
+ "version": "0.0.169",
4
4
  "description": "",
5
5
  "module": "index.js",
6
6
  "_main": "index.cjs.js",
package/router/Route.js CHANGED
@@ -36,9 +36,16 @@ var createUrlMatcher = function createUrlMatcher(path) {
36
36
  return true;
37
37
  };else if (variableNameIndex !== -1) {
38
38
  var variable = segment.substring(variableNameIndex + 1);
39
+ var regex = null;
39
40
  if (variable.indexOf('?') !== -1) variable = variable.substring(0, variable.indexOf('?'));
41
+ if (variable.indexOf('(') !== -1) {
42
+ var regexStart = variable.indexOf('(');
43
+ regex = new RegExp(variable.substring(regexStart));
44
+ variable = variable.substring(0, regexStart);
45
+ }
40
46
  var prefix = variableNameIndex && segment.substring(0, variableNameIndex);
41
47
  matcher = function matcher(p, params) {
48
+ if (regex && !!p && !p.match(regex)) return false;
42
49
  if (!p && !optionals[i]) return false;
43
50
  if (prefix) {
44
51
  if (p.indexOf(prefix) === 0) p = p.substring(variableNameIndex);else return false;
@@ -1 +1 @@
1
- {"version":3,"file":"Route.js","sources":["../../../../src/react-ui-basics/router/Route.js"],"sourcesContent":["import React from 'react';\nimport ReactCreateElement from '../ReactCreateElement';\nimport PropTypes from 'prop-types';\nimport './HistoryTools'\nimport {allPropsExcept, isDifferent, orNoop, setOf, WINDOW, addEventListener, removeEventListener} from \"../Tools\";\nimport {componentDidUpdate, render, PureComponent, componentDidMount, componentWillUnmount, propsGetter, stateGSs, setState} from \"../ReactConstants\";\n\nconst historyEvents = ['popstate', 'pushState', 'replaceState'];\n\nconst cleanPath = (path) => {\n if (path.length > 1 && path.lastIndexOf('/') === path.length - 1)\n return path.substring(0, path.length - 1);\n\n return path;\n};\n\nconst createUrlMatcher = path => {\n let matcher;\n const segments = path.split('/');\n const optionals = segments.map(it => it === '*' || it.indexOf('?') === it.length - 1);\n const containsVariables = path.indexOf(':') !== -1;\n const containsAnySegment = path.indexOf('*') !== -1;\n const containsNot = path.indexOf('!') !== -1;\n\n if (!containsAnySegment && !containsVariables && !containsNot) {\n matcher = (p) => p === path\n } else {\n const endsWithAny = path.lastIndexOf('*') === path.length - 1;\n const matchers = segments.map((segment, i) => {\n let matcher;\n const variableNameIndex = segment.indexOf(':');\n if (segment === '*')\n matcher = () => true;\n else if (variableNameIndex !== -1) {\n let variable = segment.substring(variableNameIndex + 1);\n if (variable.indexOf('?') !== -1)\n variable = variable.substring(0, variable.indexOf('?'));\n\n const prefix = variableNameIndex && segment.substring(0, variableNameIndex);\n matcher = (p, params) => {\n if (!p && !optionals[i])\n return false;\n if (prefix) {\n if (p.indexOf(prefix) === 0)\n p = p.substring(variableNameIndex);\n else\n return false;\n }\n\n params[variable] = p;\n return true;\n }\n } else if (segment.indexOf('!') === 0) {\n const not = segment.substring(1);\n matcher = (p) => p !== not;\n } else\n matcher = (p) => p === segment;\n return matcher;\n });\n\n matcher = (path, params) => {\n const segments = path.split('/');\n const length = Math.min(matchers.length, segments.length);\n\n // only exact match if mapping not ends with *\n if (!endsWithAny && matchers.length < segments.length)\n return false;\n\n // check that each segment matches\n for (let i = 0; i < length; i++) {\n if (!matchers[i](segments[i], params))\n return false;\n }\n\n // check that all other segments are optional\n for (let i = length; i < optionals.length; i++) {\n if (!optionals[i])\n return false;\n }\n\n return true;\n };\n }\n return matcher\n};\n\nconst createUrlMatchers = path => {\n if (Array.isArray(path)) {\n const matchers = path.map(it => createUrlMatcher(it));\n return (path, params) => {\n for (let i = 0; i < matchers.length; i++) {\n let props = {};\n if (matchers[i](path, props)) {\n Object.assign(params, props);\n return true;\n }\n }\n return false;\n }\n } else {\n return createUrlMatcher(path);\n }\n};\n\nconst selfProps = setOf([\n 'children',\n 'path',\n 'controller',\n 'onToggle',\n]);\n\nclass Route extends PureComponent {\n\n constructor(properties) {\n super(properties);\n const that = this;\n that.state = {};\n let matcher;\n\n const props = propsGetter(that);\n const [\n isRendering,\n paramsState,\n mergedPropsState,\n ] = stateGSs(that, 3);\n\n const process = () => {\n let params = {};\n let nextState = {};\n let isMatching = matcher(cleanPath(WINDOW.location.pathname), params);\n\n const toggle = isMatching !== isRendering();\n toggle && (nextState[isRendering] = isMatching);\n\n if (isDifferent(paramsState(), params)) {\n nextState[mergedPropsState] = Object.assign(allPropsExcept(props(), selfProps), params);\n nextState[paramsState] = params;\n }\n\n //set new state just once to avoid several renders\n setState(that, nextState, () => {\n toggle && orNoop(props().onToggle)(isMatching);\n })\n };\n\n that[componentDidUpdate] = (prevProps, prevState) => {\n if (props() !== prevProps) {\n let mergedProps = Object.assign(allPropsExcept(props(), selfProps), paramsState());\n if (isDifferent(mergedProps, mergedPropsState()))\n mergedPropsState(mergedProps);\n }\n };\n\n that[render] = () => {\n const {children, controller} = props();\n return (controller || DefaultController)(isRendering(), children, mergedPropsState());\n };\n\n that[componentDidMount] = () => {\n matcher = createUrlMatchers(props().path);\n\n historyEvents.forEach(it => {\n addEventListener(WINDOW, it, process);\n });\n process();\n };\n\n that[componentWillUnmount] = () => {\n historyEvents.forEach(it => {\n removeEventListener(WINDOW, it, process);\n });\n };\n }\n}\n\nif (window.isNotProductionEnvironment) {\n Route.propTypes = {\n path: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string)\n ]).isRequired,\n controller: PropTypes.func,\n onToggle: PropTypes.func,\n };\n}\n\nconst DefaultController = (matches, children, props) => {\n if (!matches || !children) return null;\n if (Object.keys(props).length > 0) {\n return React.Children.map(children, child => React.cloneElement(child, props));\n }\n return children;\n};\n\nexport default Route;"],"names":["historyEvents","cleanPath","path","length","lastIndexOf","substring","createUrlMatcher","matcher","segments","split","optionals","map","it","indexOf","containsVariables","containsAnySegment","containsNot","p","endsWithAny","matchers","segment","i","variableNameIndex","variable","prefix","params","not","Math","min","createUrlMatchers","Array","isArray","props","Object","assign","selfProps","setOf","Route","properties","that","state","propsGetter","stateGSs","isRendering","paramsState","mergedPropsState","process","nextState","isMatching","WINDOW","location","pathname","toggle","isDifferent","allPropsExcept","setState","orNoop","onToggle","componentDidUpdate","prevProps","prevState","mergedProps","render","children","controller","DefaultController","componentDidMount","forEach","addEventListener","componentWillUnmount","removeEventListener","PureComponent","window","isNotProductionEnvironment","propTypes","PropTypes","oneOfType","string","arrayOf","isRequired","func","matches","keys","React","Children","child","cloneElement"],"mappings":";;;;;;AAOA,IAAMA,aAAa,GAAG,CAAC,UAAD,EAAa,WAAb,EAA0B,cAA1B,CAAtB,CAAA;AAEA,IAAMC,SAAS,GAAG,SAAZA,SAAY,CAACC,IAAD,EAAU;AACxB,EAAA,IAAIA,IAAI,CAACC,MAAL,GAAc,CAAd,IAAmBD,IAAI,CAACE,WAAL,CAAiB,GAAjB,CAAA,KAA0BF,IAAI,CAACC,MAAL,GAAc,CAA/D,EACI,OAAOD,IAAI,CAACG,SAAL,CAAe,CAAf,EAAkBH,IAAI,CAACC,MAAL,GAAc,CAAhC,CAAP,CAAA;AAEJ,EAAA,OAAOD,IAAP,CAAA;AACH,CALD,CAAA;AAOA,IAAMI,gBAAgB,GAAG,SAAnBA,gBAAmB,CAAAJ,IAAI,EAAI;AAC7B,EAAA,IAAIK,OAAJ,CAAA;AACA,EAAA,IAAMC,QAAQ,GAAGN,IAAI,CAACO,KAAL,CAAW,GAAX,CAAjB,CAAA;AACA,EAAA,IAAMC,SAAS,GAAGF,QAAQ,CAACG,GAAT,CAAa,UAAAC,EAAE,EAAA;AAAA,IAAA,OAAIA,EAAE,KAAK,GAAP,IAAcA,EAAE,CAACC,OAAH,CAAW,GAAX,CAAoBD,KAAAA,EAAE,CAACT,MAAH,GAAY,CAAlD,CAAA;AAAA,GAAf,CAAlB,CAAA;AACA,EAAMW,IAAAA,iBAAiB,GAAGZ,IAAI,CAACW,OAAL,CAAa,GAAb,CAAsB,KAAA,CAAC,CAAjD,CAAA;AACA,EAAME,IAAAA,kBAAkB,GAAGb,IAAI,CAACW,OAAL,CAAa,GAAb,CAAsB,KAAA,CAAC,CAAlD,CAAA;AACA,EAAMG,IAAAA,WAAW,GAAGd,IAAI,CAACW,OAAL,CAAa,GAAb,CAAsB,KAAA,CAAC,CAA3C,CAAA;AAEA,EAAI,IAAA,CAACE,kBAAD,IAAuB,CAACD,iBAAxB,IAA6C,CAACE,WAAlD,EAA+D;AAC3DT,IAAAA,OAAO,GAAG,SAAA,OAAA,CAACU,CAAD,EAAA;AAAA,MAAOA,OAAAA,CAAC,KAAKf,IAAb,CAAA;AAAA,KAAV,CAAA;AACH,GAFD,MAEO;AACH,IAAA,IAAMgB,WAAW,GAAGhB,IAAI,CAACE,WAAL,CAAiB,GAAjB,CAAA,KAA0BF,IAAI,CAACC,MAAL,GAAc,CAA5D,CAAA;AACA,IAAMgB,IAAAA,QAAQ,GAAGX,QAAQ,CAACG,GAAT,CAAa,UAACS,OAAD,EAAUC,CAAV,EAAgB;AAC1C,MAAA,IAAId,OAAJ,CAAA;AACA,MAAA,IAAMe,iBAAiB,GAAGF,OAAO,CAACP,OAAR,CAAgB,GAAhB,CAA1B,CAAA;AACA,MAAA,IAAIO,OAAO,KAAK,GAAhB,EACIb,OAAO,GAAG,SAAA,OAAA,GAAA;AAAA,QAAA,OAAM,IAAN,CAAA;AAAA,OAAV,CADJ,KAEK,IAAIe,iBAAiB,KAAK,CAAC,CAA3B,EAA8B;AAC/B,QAAIC,IAAAA,QAAQ,GAAGH,OAAO,CAACf,SAAR,CAAkBiB,iBAAiB,GAAG,CAAtC,CAAf,CAAA;AACA,QAAIC,IAAAA,QAAQ,CAACV,OAAT,CAAiB,GAAjB,CAA0B,KAAA,CAAC,CAA/B,EACIU,QAAQ,GAAGA,QAAQ,CAAClB,SAAT,CAAmB,CAAnB,EAAsBkB,QAAQ,CAACV,OAAT,CAAiB,GAAjB,CAAtB,CAAX,CAAA;AAEJ,QAAMW,IAAAA,MAAM,GAAGF,iBAAiB,IAAIF,OAAO,CAACf,SAAR,CAAkB,CAAlB,EAAqBiB,iBAArB,CAApC,CAAA;AACAf,QAAAA,OAAO,GAAG,SAAA,OAAA,CAACU,CAAD,EAAIQ,MAAJ,EAAe;AACrB,UAAI,IAAA,CAACR,CAAD,IAAM,CAACP,SAAS,CAACW,CAAD,CAApB,EACI,OAAO,KAAP,CAAA;AACJ,UAAA,IAAIG,MAAJ,EAAY;AACR,YAAA,IAAIP,CAAC,CAACJ,OAAF,CAAUW,MAAV,CAAA,KAAsB,CAA1B,EACIP,CAAC,GAAGA,CAAC,CAACZ,SAAF,CAAYiB,iBAAZ,CAAJ,CADJ,KAGI,OAAO,KAAP,CAAA;AACP,WAAA;AAEDG,UAAAA,MAAM,CAACF,QAAD,CAAN,GAAmBN,CAAnB,CAAA;AACA,UAAA,OAAO,IAAP,CAAA;AACH,SAZD,CAAA;AAaH,OAnBI,MAmBE,IAAIG,OAAO,CAACP,OAAR,CAAgB,GAAhB,CAAyB,KAAA,CAA7B,EAAgC;AACnC,QAAA,IAAMa,GAAG,GAAGN,OAAO,CAACf,SAAR,CAAkB,CAAlB,CAAZ,CAAA;AACAE,QAAAA,OAAO,GAAG,SAAA,OAAA,CAACU,CAAD,EAAA;AAAA,UAAOA,OAAAA,CAAC,KAAKS,GAAb,CAAA;AAAA,SAAV,CAAA;AACH,OAHM,MAIHnB,OAAO,GAAG,SAAA,OAAA,CAACU,CAAD,EAAA;AAAA,QAAOA,OAAAA,CAAC,KAAKG,OAAb,CAAA;AAAA,OAAV,CAAA;AACJ,MAAA,OAAOb,OAAP,CAAA;AACH,KA9BgB,CAAjB,CAAA;AAgCAA,IAAAA,OAAO,GAAG,SAAA,OAAA,CAACL,IAAD,EAAOuB,MAAP,EAAkB;AACxB,MAAA,IAAMjB,QAAQ,GAAGN,IAAI,CAACO,KAAL,CAAW,GAAX,CAAjB,CAAA;AACA,MAAA,IAAMN,MAAM,GAAGwB,IAAI,CAACC,GAAL,CAAST,QAAQ,CAAChB,MAAlB,EAA0BK,QAAQ,CAACL,MAAnC,CAAf,CAFwB;AAKxB,MAAA,IAAI,CAACe,WAAD,IAAgBC,QAAQ,CAAChB,MAAT,GAAkBK,QAAQ,CAACL,MAA/C,EACI,OAAO,KAAP,CANoB;AASxB,MAAK,KAAA,IAAIkB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGlB,MAApB,EAA4BkB,CAAC,EAA7B,EAAiC;AAC7B,QAAA,IAAI,CAACF,QAAQ,CAACE,CAAD,CAAR,CAAYb,QAAQ,CAACa,CAAD,CAApB,EAAyBI,MAAzB,CAAL,EACI,OAAO,KAAP,CAAA;AACP,OAZuB;AAexB,MAAA,KAAK,IAAIJ,EAAC,GAAGlB,MAAb,EAAqBkB,EAAC,GAAGX,SAAS,CAACP,MAAnC,EAA2CkB,EAAC,EAA5C,EAAgD;AAC5C,QAAA,IAAI,CAACX,SAAS,CAACW,EAAD,CAAd,EACI,OAAO,KAAP,CAAA;AACP,OAAA;AAED,MAAA,OAAO,IAAP,CAAA;AACH,KArBD,CAAA;AAsBH,GAAA;AACD,EAAA,OAAOd,OAAP,CAAA;AACH,CApED,CAAA;AAsEA,IAAMsB,iBAAiB,GAAG,SAApBA,iBAAoB,CAAA3B,IAAI,EAAI;AAC9B,EAAA,IAAI4B,KAAK,CAACC,OAAN,CAAc7B,IAAd,CAAJ,EAAyB;AACrB,IAAA,IAAMiB,QAAQ,GAAGjB,IAAI,CAACS,GAAL,CAAS,UAAAC,EAAE,EAAA;AAAA,MAAIN,OAAAA,gBAAgB,CAACM,EAAD,CAApB,CAAA;AAAA,KAAX,CAAjB,CAAA;AACA,IAAA,OAAO,UAACV,IAAD,EAAOuB,MAAP,EAAkB;AACrB,MAAA,KAAK,IAAIJ,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGF,QAAQ,CAAChB,MAA7B,EAAqCkB,CAAC,EAAtC,EAA0C;AACtC,QAAIW,IAAAA,KAAK,GAAG,EAAZ,CAAA;AACA,QAAIb,IAAAA,QAAQ,CAACE,CAAD,CAAR,CAAYnB,IAAZ,EAAkB8B,KAAlB,CAAJ,EAA8B;AAC1BC,UAAAA,MAAM,CAACC,MAAP,CAAcT,MAAd,EAAsBO,KAAtB,CAAA,CAAA;AACA,UAAA,OAAO,IAAP,CAAA;AACH,SAAA;AACJ,OAAA;AACD,MAAA,OAAO,KAAP,CAAA;AACH,KATD,CAAA;AAUH,GAZD,MAYO;AACH,IAAO1B,OAAAA,gBAAgB,CAACJ,IAAD,CAAvB,CAAA;AACH,GAAA;AACJ,CAhBD,CAAA;AAkBA,IAAMiC,SAAS,GAAGC,KAAK,CAAC,CACpB,UADoB,EAEpB,MAFoB,EAGpB,YAHoB,EAIpB,UAJoB,CAAD,CAAvB,CAAA;IAOMC;;;AAEF,EAAA,SAAA,KAAA,CAAYC,UAAZ,EAAwB;AAAA,IAAA,IAAA,KAAA,CAAA;AAAA,IAAA,eAAA,CAAA,IAAA,EAAA,KAAA,CAAA,CAAA;AACpB,IAAA,KAAA,GAAA,MAAA,CAAA,IAAA,CAAA,IAAA,EAAMA,UAAN,CAAA,CAAA;AACA,IAAA,IAAMC,IAAI,GAAV,sBAAA,CAAA,KAAA,CAAA,CAAA;AACAA,IAAAA,IAAI,CAACC,KAAL,GAAa,EAAb,CAAA;AACA,IAAA,IAAIjC,OAAJ,CAAA;AAEA,IAAA,IAAMyB,KAAK,GAAGS,WAAW,CAACF,IAAD,CAAzB,CAAA;AACA,IAAA,IAAA,SAAA,GAIIG,QAAQ,CAACH,IAAD,EAAO,CAAP,CAJZ;AAAA,QAAA,UAAA,GAAA,cAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAA,QACII,WADJ,GAAA,UAAA,CAAA,CAAA,CAAA;AAAA,QAEIC,WAFJ,GAAA,UAAA,CAAA,CAAA,CAAA;AAAA,QAGIC,gBAHJ,GAAA,UAAA,CAAA,CAAA,CAAA,CAAA;AAMA,IAAA,IAAMC,OAAO,GAAG,SAAVA,OAAU,GAAM;AAClB,MAAIrB,IAAAA,MAAM,GAAG,EAAb,CAAA;AACA,MAAIsB,IAAAA,SAAS,GAAG,EAAhB,CAAA;AACA,MAAA,IAAIC,UAAU,GAAGzC,OAAO,CAACN,SAAS,CAACgD,MAAM,CAACC,QAAP,CAAgBC,QAAjB,CAAV,EAAsC1B,MAAtC,CAAxB,CAAA;AAEA,MAAA,IAAM2B,MAAM,GAAGJ,UAAU,KAAKL,WAAW,EAAzC,CAAA;AACAS,MAAAA,MAAM,KAAKL,SAAS,CAACJ,WAAD,CAAT,GAAyBK,UAA9B,CAAN,CAAA;AAEA,MAAA,IAAIK,WAAW,CAACT,WAAW,EAAZ,EAAgBnB,MAAhB,CAAf,EAAwC;AACpCsB,QAAAA,SAAS,CAACF,gBAAD,CAAT,GAA8BZ,MAAM,CAACC,MAAP,CAAcoB,cAAc,CAACtB,KAAK,EAAN,EAAUG,SAAV,CAA5B,EAAkDV,MAAlD,CAA9B,CAAA;AACAsB,QAAAA,SAAS,CAACH,WAAD,CAAT,GAAyBnB,MAAzB,CAAA;AACH,OAXiB;AAclB8B,MAAAA,QAAQ,CAAChB,IAAD,EAAOQ,SAAP,EAAkB,YAAM;AAC5BK,QAAAA,MAAM,IAAII,MAAM,CAACxB,KAAK,GAAGyB,QAAT,CAAN,CAAyBT,UAAzB,CAAV,CAAA;AACH,OAFO,CAAR,CAAA;AAGH,KAjBD,CAAA;AAmBAT,IAAAA,IAAI,CAACmB,kBAAD,CAAJ,GAA2B,UAACC,SAAD,EAAYC,SAAZ,EAA0B;AACjD,MAAI5B,IAAAA,KAAK,EAAO2B,KAAAA,SAAhB,EAA2B;AACvB,QAAA,IAAIE,WAAW,GAAG5B,MAAM,CAACC,MAAP,CAAcoB,cAAc,CAACtB,KAAK,EAAN,EAAUG,SAAV,CAA5B,EAAkDS,WAAW,EAA7D,CAAlB,CAAA;AACA,QAAIS,IAAAA,WAAW,CAACQ,WAAD,EAAchB,gBAAgB,EAA9B,CAAf,EACIA,gBAAgB,CAACgB,WAAD,CAAhB,CAAA;AACP,OAAA;AACJ,KAND,CAAA;AAQAtB,IAAAA,IAAI,CAACuB,MAAD,CAAJ,GAAe,YAAM;AACjB,MAAA,IAAA,MAAA,GAA+B9B,KAAK,EAApC;AAAA,UAAO+B,QAAP,UAAOA,QAAP;AAAA,UAAiBC,UAAjB,UAAiBA,UAAjB,CAAA;AACA,MAAA,OAAO,CAACA,UAAU,IAAIC,iBAAf,EAAkCtB,WAAW,EAA7C,EAAiDoB,QAAjD,EAA2DlB,gBAAgB,EAA3E,CAAP,CAAA;AACH,KAHD,CAAA;AAKAN,IAAAA,IAAI,CAAC2B,iBAAD,CAAJ,GAA0B,YAAM;AAC5B3D,MAAAA,OAAO,GAAGsB,iBAAiB,CAACG,KAAK,EAAA,CAAG9B,IAAT,CAA3B,CAAA;AAEAF,MAAAA,aAAa,CAACmE,OAAd,CAAsB,UAAAvD,EAAE,EAAI;AACxBwD,QAAAA,gBAAgB,CAACnB,MAAD,EAASrC,EAAT,EAAakC,OAAb,CAAhB,CAAA;AACH,OAFD,CAAA,CAAA;AAGAA,MAAAA,OAAO,EAAA,CAAA;AACV,KAPD,CAAA;AASAP,IAAAA,IAAI,CAAC8B,oBAAD,CAAJ,GAA6B,YAAM;AAC/BrE,MAAAA,aAAa,CAACmE,OAAd,CAAsB,UAAAvD,EAAE,EAAI;AACxB0D,QAAAA,mBAAmB,CAACrB,MAAD,EAASrC,EAAT,EAAakC,OAAb,CAAnB,CAAA;AACH,OAFD,CAAA,CAAA;AAGH,KAJD,CAAA;AAtDoB,IAAA,OAAA,KAAA,CAAA;AA2DvB,GAAA;;EA7DeyB;AAgEpB,IAAIC,MAAM,CAACC,0BAAX,EAAuC;AACnCpC,EAAAA,KAAK,CAACqC,SAAN,GAAkB;AACdxE,IAAAA,IAAI,EAAEyE,SAAS,CAACC,SAAV,CAAoB,CACtBD,SAAS,CAACE,MADY,EAEtBF,SAAS,CAACG,OAAV,CAAkBH,SAAS,CAACE,MAA5B,CAFsB,CAApB,CAAA,CAGHE,UAJW;AAKdf,IAAAA,UAAU,EAAEW,SAAS,CAACK,IALR;AAMdvB,IAAAA,QAAQ,EAAEkB,SAAS,CAACK,IAAAA;AANN,GAAlB,CAAA;AAQH,CAAA;AAED,IAAMf,iBAAiB,GAAG,SAApBA,iBAAoB,CAACgB,OAAD,EAAUlB,QAAV,EAAoB/B,KAApB,EAA8B;AACpD,EAAA,IAAI,CAACiD,OAAD,IAAY,CAAClB,QAAjB,EAA2B,OAAO,IAAP,CAAA;AAC3B,EAAI9B,IAAAA,MAAM,CAACiD,IAAP,CAAYlD,KAAZ,CAAmB7B,CAAAA,MAAnB,GAA4B,CAAhC,EAAmC;AAC/B,IAAOgF,OAAAA,KAAK,CAACC,QAAN,CAAezE,GAAf,CAAmBoD,QAAnB,EAA6B,UAAAsB,KAAK,EAAA;AAAA,MAAA,OAAIF,KAAK,CAACG,YAAN,CAAmBD,KAAnB,EAA0BrD,KAA1B,CAAJ,CAAA;AAAA,KAAlC,CAAP,CAAA;AACH,GAAA;AACD,EAAA,OAAO+B,QAAP,CAAA;AACH,CAND,CAAA;AAQA,cAAe1B,KAAf;;;;"}
1
+ {"version":3,"file":"Route.js","sources":["../../../../src/react-ui-basics/router/Route.js"],"sourcesContent":["import React from 'react';\nimport ReactCreateElement from '../ReactCreateElement';\nimport PropTypes from 'prop-types';\nimport './HistoryTools'\nimport {allPropsExcept, isDifferent, orNoop, setOf, WINDOW, addEventListener, removeEventListener} from \"../Tools\";\nimport {componentDidUpdate, render, PureComponent, componentDidMount, componentWillUnmount, propsGetter, stateGSs, setState} from \"../ReactConstants\";\n\nconst historyEvents = ['popstate', 'pushState', 'replaceState'];\n\nconst cleanPath = (path) => {\n if (path.length > 1 && path.lastIndexOf('/') === path.length - 1)\n return path.substring(0, path.length - 1);\n\n return path;\n};\n\nconst createUrlMatcher = path => {\n let matcher;\n const segments = path.split('/');\n const optionals = segments.map(it => it === '*' || it.indexOf('?') === it.length - 1);\n const containsVariables = path.indexOf(':') !== -1;\n const containsAnySegment = path.indexOf('*') !== -1;\n const containsNot = path.indexOf('!') !== -1;\n\n if (!containsAnySegment && !containsVariables && !containsNot) {\n matcher = (p) => p === path\n } else {\n const endsWithAny = path.lastIndexOf('*') === path.length - 1;\n const matchers = segments.map((segment, i) => {\n let matcher;\n const variableNameIndex = segment.indexOf(':');\n if (segment === '*')\n matcher = () => true;\n else if (variableNameIndex !== -1) {\n let variable = segment.substring(variableNameIndex + 1);\n let regex = null\n if (variable.indexOf('?') !== -1)\n variable = variable.substring(0, variable.indexOf('?'));\n if (variable.indexOf('(') !== -1) {\n let regexStart = variable.indexOf('(');\n regex = new RegExp(variable.substring(regexStart))\n variable = variable.substring(0, regexStart);\n }\n\n const prefix = variableNameIndex && segment.substring(0, variableNameIndex);\n matcher = (p, params) => {\n if (regex && !!p && !p.match(regex))\n return false\n\n if (!p && !optionals[i])\n return false;\n if (prefix) {\n if (p.indexOf(prefix) === 0)\n p = p.substring(variableNameIndex);\n else\n return false;\n }\n\n params[variable] = p;\n return true;\n }\n } else if (segment.indexOf('!') === 0) {\n const not = segment.substring(1);\n matcher = (p) => p !== not;\n } else\n matcher = (p) => p === segment;\n return matcher;\n });\n\n matcher = (path, params) => {\n const segments = path.split('/');\n const length = Math.min(matchers.length, segments.length);\n\n // only exact match if mapping not ends with *\n if (!endsWithAny && matchers.length < segments.length)\n return false;\n\n // check that each segment matches\n for (let i = 0; i < length; i++) {\n if (!matchers[i](segments[i], params))\n return false;\n }\n\n // check that all other segments are optional\n for (let i = length; i < optionals.length; i++) {\n if (!optionals[i])\n return false;\n }\n\n return true;\n };\n }\n return matcher\n};\n\nconst createUrlMatchers = path => {\n if (Array.isArray(path)) {\n const matchers = path.map(it => createUrlMatcher(it));\n return (path, params) => {\n for (let i = 0; i < matchers.length; i++) {\n let props = {};\n if (matchers[i](path, props)) {\n Object.assign(params, props);\n return true;\n }\n }\n return false;\n }\n } else {\n return createUrlMatcher(path);\n }\n};\n\nconst selfProps = setOf([\n 'children',\n 'path',\n 'controller',\n 'onToggle',\n]);\n\nclass Route extends PureComponent {\n\n constructor(properties) {\n super(properties);\n const that = this;\n that.state = {};\n let matcher;\n\n const props = propsGetter(that);\n const [\n isRendering,\n paramsState,\n mergedPropsState,\n ] = stateGSs(that, 3);\n\n const process = () => {\n let params = {};\n let nextState = {};\n let isMatching = matcher(cleanPath(WINDOW.location.pathname), params);\n\n const toggle = isMatching !== isRendering();\n toggle && (nextState[isRendering] = isMatching);\n\n if (isDifferent(paramsState(), params)) {\n nextState[mergedPropsState] = Object.assign(allPropsExcept(props(), selfProps), params);\n nextState[paramsState] = params;\n }\n\n //set new state just once to avoid several renders\n setState(that, nextState, () => {\n toggle && orNoop(props().onToggle)(isMatching);\n })\n };\n\n that[componentDidUpdate] = (prevProps, prevState) => {\n if (props() !== prevProps) {\n let mergedProps = Object.assign(allPropsExcept(props(), selfProps), paramsState());\n if (isDifferent(mergedProps, mergedPropsState()))\n mergedPropsState(mergedProps);\n }\n };\n\n that[render] = () => {\n const {children, controller} = props();\n return (controller || DefaultController)(isRendering(), children, mergedPropsState());\n };\n\n that[componentDidMount] = () => {\n matcher = createUrlMatchers(props().path);\n\n historyEvents.forEach(it => {\n addEventListener(WINDOW, it, process);\n });\n process();\n };\n\n that[componentWillUnmount] = () => {\n historyEvents.forEach(it => {\n removeEventListener(WINDOW, it, process);\n });\n };\n }\n}\n\nif (window.isNotProductionEnvironment) {\n Route.propTypes = {\n path: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string)\n ]).isRequired,\n controller: PropTypes.func,\n onToggle: PropTypes.func,\n };\n}\n\nconst DefaultController = (matches, children, props) => {\n if (!matches || !children) return null;\n if (Object.keys(props).length > 0) {\n return React.Children.map(children, child => React.cloneElement(child, props));\n }\n return children;\n};\n\nexport default Route;"],"names":["historyEvents","cleanPath","path","length","lastIndexOf","substring","createUrlMatcher","matcher","segments","split","optionals","map","it","indexOf","containsVariables","containsAnySegment","containsNot","p","endsWithAny","matchers","segment","i","variableNameIndex","variable","regex","regexStart","RegExp","prefix","params","match","not","Math","min","createUrlMatchers","Array","isArray","props","Object","assign","selfProps","setOf","Route","properties","that","state","propsGetter","stateGSs","isRendering","paramsState","mergedPropsState","process","nextState","isMatching","WINDOW","location","pathname","toggle","isDifferent","allPropsExcept","setState","orNoop","onToggle","componentDidUpdate","prevProps","prevState","mergedProps","render","children","controller","DefaultController","componentDidMount","forEach","addEventListener","componentWillUnmount","removeEventListener","PureComponent","window","isNotProductionEnvironment","propTypes","PropTypes","oneOfType","string","arrayOf","isRequired","func","matches","keys","React","Children","child","cloneElement"],"mappings":";;;;;;AAOA,IAAMA,aAAa,GAAG,CAAC,UAAD,EAAa,WAAb,EAA0B,cAA1B,CAAtB,CAAA;AAEA,IAAMC,SAAS,GAAG,SAAZA,SAAY,CAACC,IAAD,EAAU;AACxB,EAAA,IAAIA,IAAI,CAACC,MAAL,GAAc,CAAd,IAAmBD,IAAI,CAACE,WAAL,CAAiB,GAAjB,CAAA,KAA0BF,IAAI,CAACC,MAAL,GAAc,CAA/D,EACI,OAAOD,IAAI,CAACG,SAAL,CAAe,CAAf,EAAkBH,IAAI,CAACC,MAAL,GAAc,CAAhC,CAAP,CAAA;AAEJ,EAAA,OAAOD,IAAP,CAAA;AACH,CALD,CAAA;AAOA,IAAMI,gBAAgB,GAAG,SAAnBA,gBAAmB,CAAAJ,IAAI,EAAI;AAC7B,EAAA,IAAIK,OAAJ,CAAA;AACA,EAAA,IAAMC,QAAQ,GAAGN,IAAI,CAACO,KAAL,CAAW,GAAX,CAAjB,CAAA;AACA,EAAA,IAAMC,SAAS,GAAGF,QAAQ,CAACG,GAAT,CAAa,UAAAC,EAAE,EAAA;AAAA,IAAA,OAAIA,EAAE,KAAK,GAAP,IAAcA,EAAE,CAACC,OAAH,CAAW,GAAX,CAAoBD,KAAAA,EAAE,CAACT,MAAH,GAAY,CAAlD,CAAA;AAAA,GAAf,CAAlB,CAAA;AACA,EAAMW,IAAAA,iBAAiB,GAAGZ,IAAI,CAACW,OAAL,CAAa,GAAb,CAAsB,KAAA,CAAC,CAAjD,CAAA;AACA,EAAME,IAAAA,kBAAkB,GAAGb,IAAI,CAACW,OAAL,CAAa,GAAb,CAAsB,KAAA,CAAC,CAAlD,CAAA;AACA,EAAMG,IAAAA,WAAW,GAAGd,IAAI,CAACW,OAAL,CAAa,GAAb,CAAsB,KAAA,CAAC,CAA3C,CAAA;AAEA,EAAI,IAAA,CAACE,kBAAD,IAAuB,CAACD,iBAAxB,IAA6C,CAACE,WAAlD,EAA+D;AAC3DT,IAAAA,OAAO,GAAG,SAAA,OAAA,CAACU,CAAD,EAAA;AAAA,MAAOA,OAAAA,CAAC,KAAKf,IAAb,CAAA;AAAA,KAAV,CAAA;AACH,GAFD,MAEO;AACH,IAAA,IAAMgB,WAAW,GAAGhB,IAAI,CAACE,WAAL,CAAiB,GAAjB,CAAA,KAA0BF,IAAI,CAACC,MAAL,GAAc,CAA5D,CAAA;AACA,IAAMgB,IAAAA,QAAQ,GAAGX,QAAQ,CAACG,GAAT,CAAa,UAACS,OAAD,EAAUC,CAAV,EAAgB;AAC1C,MAAA,IAAId,OAAJ,CAAA;AACA,MAAA,IAAMe,iBAAiB,GAAGF,OAAO,CAACP,OAAR,CAAgB,GAAhB,CAA1B,CAAA;AACA,MAAA,IAAIO,OAAO,KAAK,GAAhB,EACIb,OAAO,GAAG,SAAA,OAAA,GAAA;AAAA,QAAA,OAAM,IAAN,CAAA;AAAA,OAAV,CADJ,KAEK,IAAIe,iBAAiB,KAAK,CAAC,CAA3B,EAA8B;AAC/B,QAAIC,IAAAA,QAAQ,GAAGH,OAAO,CAACf,SAAR,CAAkBiB,iBAAiB,GAAG,CAAtC,CAAf,CAAA;AACA,QAAIE,IAAAA,KAAK,GAAG,IAAZ,CAAA;AACA,QAAID,IAAAA,QAAQ,CAACV,OAAT,CAAiB,GAAjB,CAA0B,KAAA,CAAC,CAA/B,EACIU,QAAQ,GAAGA,QAAQ,CAAClB,SAAT,CAAmB,CAAnB,EAAsBkB,QAAQ,CAACV,OAAT,CAAiB,GAAjB,CAAtB,CAAX,CAAA;AACJ,QAAIU,IAAAA,QAAQ,CAACV,OAAT,CAAiB,GAAjB,CAA0B,KAAA,CAAC,CAA/B,EAAkC;AAC9B,UAAA,IAAIY,UAAU,GAAGF,QAAQ,CAACV,OAAT,CAAiB,GAAjB,CAAjB,CAAA;AACAW,UAAAA,KAAK,GAAG,IAAIE,MAAJ,CAAWH,QAAQ,CAAClB,SAAT,CAAmBoB,UAAnB,CAAX,CAAR,CAAA;AACAF,UAAAA,QAAQ,GAAGA,QAAQ,CAAClB,SAAT,CAAmB,CAAnB,EAAsBoB,UAAtB,CAAX,CAAA;AACH,SAAA;AAED,QAAME,IAAAA,MAAM,GAAGL,iBAAiB,IAAIF,OAAO,CAACf,SAAR,CAAkB,CAAlB,EAAqBiB,iBAArB,CAApC,CAAA;AACAf,QAAAA,OAAO,GAAG,SAAA,OAAA,CAACU,CAAD,EAAIW,MAAJ,EAAe;AACrB,UAAA,IAAIJ,KAAK,IAAI,CAAC,CAACP,CAAX,IAAgB,CAACA,CAAC,CAACY,KAAF,CAAQL,KAAR,CAArB,EACI,OAAO,KAAP,CAAA;AAEJ,UAAI,IAAA,CAACP,CAAD,IAAM,CAACP,SAAS,CAACW,CAAD,CAApB,EACI,OAAO,KAAP,CAAA;AACJ,UAAA,IAAIM,MAAJ,EAAY;AACR,YAAA,IAAIV,CAAC,CAACJ,OAAF,CAAUc,MAAV,CAAA,KAAsB,CAA1B,EACIV,CAAC,GAAGA,CAAC,CAACZ,SAAF,CAAYiB,iBAAZ,CAAJ,CADJ,KAGI,OAAO,KAAP,CAAA;AACP,WAAA;AAEDM,UAAAA,MAAM,CAACL,QAAD,CAAN,GAAmBN,CAAnB,CAAA;AACA,UAAA,OAAO,IAAP,CAAA;AACH,SAfD,CAAA;AAgBH,OA5BI,MA4BE,IAAIG,OAAO,CAACP,OAAR,CAAgB,GAAhB,CAAyB,KAAA,CAA7B,EAAgC;AACnC,QAAA,IAAMiB,GAAG,GAAGV,OAAO,CAACf,SAAR,CAAkB,CAAlB,CAAZ,CAAA;AACAE,QAAAA,OAAO,GAAG,SAAA,OAAA,CAACU,CAAD,EAAA;AAAA,UAAOA,OAAAA,CAAC,KAAKa,GAAb,CAAA;AAAA,SAAV,CAAA;AACH,OAHM,MAIHvB,OAAO,GAAG,SAAA,OAAA,CAACU,CAAD,EAAA;AAAA,QAAOA,OAAAA,CAAC,KAAKG,OAAb,CAAA;AAAA,OAAV,CAAA;AACJ,MAAA,OAAOb,OAAP,CAAA;AACH,KAvCgB,CAAjB,CAAA;AAyCAA,IAAAA,OAAO,GAAG,SAAA,OAAA,CAACL,IAAD,EAAO0B,MAAP,EAAkB;AACxB,MAAA,IAAMpB,QAAQ,GAAGN,IAAI,CAACO,KAAL,CAAW,GAAX,CAAjB,CAAA;AACA,MAAA,IAAMN,MAAM,GAAG4B,IAAI,CAACC,GAAL,CAASb,QAAQ,CAAChB,MAAlB,EAA0BK,QAAQ,CAACL,MAAnC,CAAf,CAFwB;AAKxB,MAAA,IAAI,CAACe,WAAD,IAAgBC,QAAQ,CAAChB,MAAT,GAAkBK,QAAQ,CAACL,MAA/C,EACI,OAAO,KAAP,CANoB;AASxB,MAAK,KAAA,IAAIkB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGlB,MAApB,EAA4BkB,CAAC,EAA7B,EAAiC;AAC7B,QAAA,IAAI,CAACF,QAAQ,CAACE,CAAD,CAAR,CAAYb,QAAQ,CAACa,CAAD,CAApB,EAAyBO,MAAzB,CAAL,EACI,OAAO,KAAP,CAAA;AACP,OAZuB;AAexB,MAAA,KAAK,IAAIP,EAAC,GAAGlB,MAAb,EAAqBkB,EAAC,GAAGX,SAAS,CAACP,MAAnC,EAA2CkB,EAAC,EAA5C,EAAgD;AAC5C,QAAA,IAAI,CAACX,SAAS,CAACW,EAAD,CAAd,EACI,OAAO,KAAP,CAAA;AACP,OAAA;AAED,MAAA,OAAO,IAAP,CAAA;AACH,KArBD,CAAA;AAsBH,GAAA;AACD,EAAA,OAAOd,OAAP,CAAA;AACH,CA7ED,CAAA;AA+EA,IAAM0B,iBAAiB,GAAG,SAApBA,iBAAoB,CAAA/B,IAAI,EAAI;AAC9B,EAAA,IAAIgC,KAAK,CAACC,OAAN,CAAcjC,IAAd,CAAJ,EAAyB;AACrB,IAAA,IAAMiB,QAAQ,GAAGjB,IAAI,CAACS,GAAL,CAAS,UAAAC,EAAE,EAAA;AAAA,MAAIN,OAAAA,gBAAgB,CAACM,EAAD,CAApB,CAAA;AAAA,KAAX,CAAjB,CAAA;AACA,IAAA,OAAO,UAACV,IAAD,EAAO0B,MAAP,EAAkB;AACrB,MAAA,KAAK,IAAIP,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGF,QAAQ,CAAChB,MAA7B,EAAqCkB,CAAC,EAAtC,EAA0C;AACtC,QAAIe,IAAAA,KAAK,GAAG,EAAZ,CAAA;AACA,QAAIjB,IAAAA,QAAQ,CAACE,CAAD,CAAR,CAAYnB,IAAZ,EAAkBkC,KAAlB,CAAJ,EAA8B;AAC1BC,UAAAA,MAAM,CAACC,MAAP,CAAcV,MAAd,EAAsBQ,KAAtB,CAAA,CAAA;AACA,UAAA,OAAO,IAAP,CAAA;AACH,SAAA;AACJ,OAAA;AACD,MAAA,OAAO,KAAP,CAAA;AACH,KATD,CAAA;AAUH,GAZD,MAYO;AACH,IAAO9B,OAAAA,gBAAgB,CAACJ,IAAD,CAAvB,CAAA;AACH,GAAA;AACJ,CAhBD,CAAA;AAkBA,IAAMqC,SAAS,GAAGC,KAAK,CAAC,CACpB,UADoB,EAEpB,MAFoB,EAGpB,YAHoB,EAIpB,UAJoB,CAAD,CAAvB,CAAA;IAOMC;;;AAEF,EAAA,SAAA,KAAA,CAAYC,UAAZ,EAAwB;AAAA,IAAA,IAAA,KAAA,CAAA;AAAA,IAAA,eAAA,CAAA,IAAA,EAAA,KAAA,CAAA,CAAA;AACpB,IAAA,KAAA,GAAA,MAAA,CAAA,IAAA,CAAA,IAAA,EAAMA,UAAN,CAAA,CAAA;AACA,IAAA,IAAMC,IAAI,GAAV,sBAAA,CAAA,KAAA,CAAA,CAAA;AACAA,IAAAA,IAAI,CAACC,KAAL,GAAa,EAAb,CAAA;AACA,IAAA,IAAIrC,OAAJ,CAAA;AAEA,IAAA,IAAM6B,KAAK,GAAGS,WAAW,CAACF,IAAD,CAAzB,CAAA;AACA,IAAA,IAAA,SAAA,GAIIG,QAAQ,CAACH,IAAD,EAAO,CAAP,CAJZ;AAAA,QAAA,UAAA,GAAA,cAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAA,QACII,WADJ,GAAA,UAAA,CAAA,CAAA,CAAA;AAAA,QAEIC,WAFJ,GAAA,UAAA,CAAA,CAAA,CAAA;AAAA,QAGIC,gBAHJ,GAAA,UAAA,CAAA,CAAA,CAAA,CAAA;AAMA,IAAA,IAAMC,OAAO,GAAG,SAAVA,OAAU,GAAM;AAClB,MAAItB,IAAAA,MAAM,GAAG,EAAb,CAAA;AACA,MAAIuB,IAAAA,SAAS,GAAG,EAAhB,CAAA;AACA,MAAA,IAAIC,UAAU,GAAG7C,OAAO,CAACN,SAAS,CAACoD,MAAM,CAACC,QAAP,CAAgBC,QAAjB,CAAV,EAAsC3B,MAAtC,CAAxB,CAAA;AAEA,MAAA,IAAM4B,MAAM,GAAGJ,UAAU,KAAKL,WAAW,EAAzC,CAAA;AACAS,MAAAA,MAAM,KAAKL,SAAS,CAACJ,WAAD,CAAT,GAAyBK,UAA9B,CAAN,CAAA;AAEA,MAAA,IAAIK,WAAW,CAACT,WAAW,EAAZ,EAAgBpB,MAAhB,CAAf,EAAwC;AACpCuB,QAAAA,SAAS,CAACF,gBAAD,CAAT,GAA8BZ,MAAM,CAACC,MAAP,CAAcoB,cAAc,CAACtB,KAAK,EAAN,EAAUG,SAAV,CAA5B,EAAkDX,MAAlD,CAA9B,CAAA;AACAuB,QAAAA,SAAS,CAACH,WAAD,CAAT,GAAyBpB,MAAzB,CAAA;AACH,OAXiB;AAclB+B,MAAAA,QAAQ,CAAChB,IAAD,EAAOQ,SAAP,EAAkB,YAAM;AAC5BK,QAAAA,MAAM,IAAII,MAAM,CAACxB,KAAK,GAAGyB,QAAT,CAAN,CAAyBT,UAAzB,CAAV,CAAA;AACH,OAFO,CAAR,CAAA;AAGH,KAjBD,CAAA;AAmBAT,IAAAA,IAAI,CAACmB,kBAAD,CAAJ,GAA2B,UAACC,SAAD,EAAYC,SAAZ,EAA0B;AACjD,MAAI5B,IAAAA,KAAK,EAAO2B,KAAAA,SAAhB,EAA2B;AACvB,QAAA,IAAIE,WAAW,GAAG5B,MAAM,CAACC,MAAP,CAAcoB,cAAc,CAACtB,KAAK,EAAN,EAAUG,SAAV,CAA5B,EAAkDS,WAAW,EAA7D,CAAlB,CAAA;AACA,QAAIS,IAAAA,WAAW,CAACQ,WAAD,EAAchB,gBAAgB,EAA9B,CAAf,EACIA,gBAAgB,CAACgB,WAAD,CAAhB,CAAA;AACP,OAAA;AACJ,KAND,CAAA;AAQAtB,IAAAA,IAAI,CAACuB,MAAD,CAAJ,GAAe,YAAM;AACjB,MAAA,IAAA,MAAA,GAA+B9B,KAAK,EAApC;AAAA,UAAO+B,QAAP,UAAOA,QAAP;AAAA,UAAiBC,UAAjB,UAAiBA,UAAjB,CAAA;AACA,MAAA,OAAO,CAACA,UAAU,IAAIC,iBAAf,EAAkCtB,WAAW,EAA7C,EAAiDoB,QAAjD,EAA2DlB,gBAAgB,EAA3E,CAAP,CAAA;AACH,KAHD,CAAA;AAKAN,IAAAA,IAAI,CAAC2B,iBAAD,CAAJ,GAA0B,YAAM;AAC5B/D,MAAAA,OAAO,GAAG0B,iBAAiB,CAACG,KAAK,EAAA,CAAGlC,IAAT,CAA3B,CAAA;AAEAF,MAAAA,aAAa,CAACuE,OAAd,CAAsB,UAAA3D,EAAE,EAAI;AACxB4D,QAAAA,gBAAgB,CAACnB,MAAD,EAASzC,EAAT,EAAasC,OAAb,CAAhB,CAAA;AACH,OAFD,CAAA,CAAA;AAGAA,MAAAA,OAAO,EAAA,CAAA;AACV,KAPD,CAAA;AASAP,IAAAA,IAAI,CAAC8B,oBAAD,CAAJ,GAA6B,YAAM;AAC/BzE,MAAAA,aAAa,CAACuE,OAAd,CAAsB,UAAA3D,EAAE,EAAI;AACxB8D,QAAAA,mBAAmB,CAACrB,MAAD,EAASzC,EAAT,EAAasC,OAAb,CAAnB,CAAA;AACH,OAFD,CAAA,CAAA;AAGH,KAJD,CAAA;AAtDoB,IAAA,OAAA,KAAA,CAAA;AA2DvB,GAAA;;EA7DeyB;AAgEpB,IAAIC,MAAM,CAACC,0BAAX,EAAuC;AACnCpC,EAAAA,KAAK,CAACqC,SAAN,GAAkB;AACd5E,IAAAA,IAAI,EAAE6E,SAAS,CAACC,SAAV,CAAoB,CACtBD,SAAS,CAACE,MADY,EAEtBF,SAAS,CAACG,OAAV,CAAkBH,SAAS,CAACE,MAA5B,CAFsB,CAApB,CAAA,CAGHE,UAJW;AAKdf,IAAAA,UAAU,EAAEW,SAAS,CAACK,IALR;AAMdvB,IAAAA,QAAQ,EAAEkB,SAAS,CAACK,IAAAA;AANN,GAAlB,CAAA;AAQH,CAAA;AAED,IAAMf,iBAAiB,GAAG,SAApBA,iBAAoB,CAACgB,OAAD,EAAUlB,QAAV,EAAoB/B,KAApB,EAA8B;AACpD,EAAA,IAAI,CAACiD,OAAD,IAAY,CAAClB,QAAjB,EAA2B,OAAO,IAAP,CAAA;AAC3B,EAAI9B,IAAAA,MAAM,CAACiD,IAAP,CAAYlD,KAAZ,CAAmBjC,CAAAA,MAAnB,GAA4B,CAAhC,EAAmC;AAC/B,IAAOoF,OAAAA,KAAK,CAACC,QAAN,CAAe7E,GAAf,CAAmBwD,QAAnB,EAA6B,UAAAsB,KAAK,EAAA;AAAA,MAAA,OAAIF,KAAK,CAACG,YAAN,CAAmBD,KAAnB,EAA0BrD,KAA1B,CAAJ,CAAA;AAAA,KAAlC,CAAP,CAAA;AACH,GAAA;AACD,EAAA,OAAO+B,QAAP,CAAA;AACH,CAND,CAAA;AAQA,cAAe1B,KAAf;;;;"}
@@ -25,7 +25,7 @@ var createProxy = function createProxy(target) {
25
25
  if (!isChanged()) return target;
26
26
  if (changedValue && !innerProxies) return changedValue;
27
27
  if (innerProxies) {
28
- var result = changedValue || _objectSpread2({}, target);
28
+ var result = changedValue || (Array.isArray(target) ? _toConsumableArray(target) : _objectSpread2({}, target));
29
29
  for (var key in innerProxies) {
30
30
  result[key] = innerProxies[key].bake();
31
31
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ProxyTools.js","sources":["../../../../src/react-ui-basics/store/ProxyTools.js"],"sourcesContent":["import {UNDEFINED} from \"../Tools\";\n\nexport const createProxy = (target) => {\n if(!target)\n return target\n if (target.__isProxy)\n return target;\n\n let changedValue = UNDEFINED;\n let deletedKeys = UNDEFINED;\n let innerProxies = UNDEFINED\n const isChanged = () => changedValue || (innerProxies && Object.values(innerProxies).some(it => it.__changed));\n\n return new Proxy(target, {\n get: function (target, prop) {\n if (prop === '__isProxy')\n return true\n if (prop === '__changed')\n return isChanged();\n if (prop === 'bake')\n return () => {\n // console.log('bake', changedValue, innerProxies)\n if (!isChanged())\n return target\n\n if (changedValue && !innerProxies)\n return changedValue\n\n if (innerProxies) {\n const result = changedValue || {...target};\n\n for (let key in innerProxies) {\n result[key] = innerProxies[key].bake()\n }\n return result\n }\n\n throw new Error('state not implemented yet')\n }\n\n // console.log('get', {target, prop})\n const innerProxy = innerProxies && innerProxies[prop];\n if (innerProxy)\n return innerProxy\n\n const changed = changedValue && changedValue[prop]\n if (changed !== UNDEFINED)\n return changed\n\n if (deletedKeys && deletedKeys[prop])\n return null\n\n const value = target[prop];\n if (value && typeof value === 'object') {\n !innerProxies && (innerProxies = {})\n return innerProxies[prop] = createProxy(value)\n }\n\n return value;\n },\n set: function (target, prop, newval) {\n // console.log('set', {target, prop, newval})\n if (!changedValue) changedValue = Array.isArray(target) ? [...target] : {...target}\n\n if (newval && typeof newval === 'object') {\n !innerProxies && (innerProxies = {})\n innerProxies[prop] = newval = createProxy(newval)\n } else {\n innerProxies && (delete innerProxies[prop])\n }\n changedValue[prop] = newval\n // console.log('changedValue', changedValue)\n return true;\n },\n deleteProperty: function (target, prop) {\n // console.log('delete', {target, prop})\n !changedValue && (changedValue = Array.isArray(target) ? [...target] : {...target})\n\n if (!prop in changedValue)\n return false;\n\n delete changedValue[prop]\n innerProxies && delete innerProxies[prop]\n !deletedKeys && (deletedKeys = {})\n deletedKeys[prop] = true;\n return true;\n }\n })\n}\n"],"names":["createProxy","target","__isProxy","changedValue","UNDEFINED","deletedKeys","innerProxies","isChanged","Object","values","some","it","__changed","Proxy","get","prop","result","_objectSpread","key","bake","Error","innerProxy","changed","value","set","newval","Array","isArray","deleteProperty"],"mappings":"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"}
1
+ {"version":3,"file":"ProxyTools.js","sources":["../../../../src/react-ui-basics/store/ProxyTools.js"],"sourcesContent":["import {UNDEFINED} from \"../Tools\";\n\nexport const createProxy = (target) => {\n if(!target)\n return target\n if (target.__isProxy)\n return target;\n\n let changedValue = UNDEFINED;\n let deletedKeys = UNDEFINED;\n let innerProxies = UNDEFINED\n const isChanged = () => changedValue || (innerProxies && Object.values(innerProxies).some(it => it.__changed));\n\n return new Proxy(target, {\n get: function (target, prop) {\n if (prop === '__isProxy')\n return true\n if (prop === '__changed')\n return isChanged();\n if (prop === 'bake')\n return () => {\n // console.log('bake', changedValue, innerProxies)\n if (!isChanged())\n return target\n\n if (changedValue && !innerProxies)\n return changedValue\n\n if (innerProxies) {\n const result = changedValue || (Array.isArray(target) ? [...target] : {...target});\n\n for (let key in innerProxies) {\n result[key] = innerProxies[key].bake()\n }\n return result\n }\n\n throw new Error('state not implemented yet')\n }\n\n // console.log('get', {target, prop})\n const innerProxy = innerProxies && innerProxies[prop];\n if (innerProxy)\n return innerProxy\n\n const changed = changedValue && changedValue[prop]\n if (changed !== UNDEFINED)\n return changed\n\n if (deletedKeys && deletedKeys[prop])\n return null\n\n const value = target[prop];\n if (value && typeof value === 'object') {\n !innerProxies && (innerProxies = {})\n return innerProxies[prop] = createProxy(value)\n }\n\n return value;\n },\n set: function (target, prop, newval) {\n // console.log('set', {target, prop, newval})\n if (!changedValue) changedValue = Array.isArray(target) ? [...target] : {...target}\n\n if (newval && typeof newval === 'object') {\n !innerProxies && (innerProxies = {})\n innerProxies[prop] = newval = createProxy(newval)\n } else {\n innerProxies && (delete innerProxies[prop])\n }\n changedValue[prop] = newval\n // console.log('changedValue', changedValue)\n return true;\n },\n deleteProperty: function (target, prop) {\n // console.log('delete', {target, prop})\n !changedValue && (changedValue = Array.isArray(target) ? [...target] : {...target})\n\n if (!prop in changedValue)\n return false;\n\n delete changedValue[prop]\n innerProxies && delete innerProxies[prop]\n !deletedKeys && (deletedKeys = {})\n deletedKeys[prop] = true;\n return true;\n }\n })\n}\n"],"names":["createProxy","target","__isProxy","changedValue","UNDEFINED","deletedKeys","innerProxies","isChanged","Object","values","some","it","__changed","Proxy","get","prop","result","Array","isArray","key","bake","Error","innerProxy","changed","value","set","newval","_objectSpread","deleteProperty"],"mappings":"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"}