@bagelink/vue 0.0.819 → 0.0.821

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/dist/style.css CHANGED
@@ -350,7 +350,7 @@ display: block;
350
350
  padding: 0;
351
351
  }
352
352
 
353
- .blocker[data-v-619a1cb2] {
353
+ .blocker[data-v-e588f5a7] {
354
354
  position: fixed;
355
355
  top: 0;
356
356
  left: 0;
@@ -358,7 +358,7 @@ display: block;
358
358
  height: 100%;
359
359
  z-index: 100;
360
360
  }
361
- .bgl-slider[data-v-619a1cb2] {
361
+ .bgl-slider[data-v-e588f5a7] {
362
362
  display: grid;
363
363
  position: relative;
364
364
  /* scroll-behavior: smooth; */
@@ -367,66 +367,44 @@ display: block;
367
367
  /* scroll-snap-type: x mandatory; */
368
368
  overflow-x: hidden;
369
369
  }
370
- .autoHeight[data-v-619a1cb2] {
370
+ .autoHeight[data-v-e588f5a7] {
371
371
  transition: height ease 0.7s;
372
372
  }
373
- .bgl-slider.allowScroll[data-v-619a1cb2] {
373
+ .bgl-slider.allowScroll[data-v-e588f5a7] {
374
374
  overflow-x: scroll;
375
375
  }
376
- .bgl-slider.slides-6[data-v-619a1cb2] {
377
- grid-auto-columns: 15.9%;
376
+ .bgl-slider[data-v-e588f5a7] {
377
+ grid-auto-columns: calc(100% / var(--item-count) - calc(var(--item-count) - 1) * 1%);
378
378
  gap: 1%;
379
379
  }
380
- .bgl-slider.slides-5[data-v-619a1cb2] {
381
- grid-auto-columns: 19.3%;
382
- gap: 1%;
383
- }
384
- .bgl-slider.slides-4[data-v-619a1cb2] {
385
- grid-auto-columns: 24.3%;
386
- gap: 1%;
387
- }
388
- .bgl-slider.slides-3[data-v-619a1cb2] {
389
- grid-auto-columns: 33%;
390
- gap: 1%;
380
+ .bgl-slider.odd[data-v-e588f5a7] {
381
+ grid-auto-columns: calc(100% / var(--item-count) - calc(var(--item-count) - 2) * 1%);
391
382
  }
392
- .bgl-slider.slides-2[data-v-619a1cb2] {
393
- grid-auto-columns: 50%;
394
- gap: 1%;
395
- }
396
- .bgl-slider.slides-1[data-v-619a1cb2] {
383
+ .bgl-slider.slides-1[data-v-e588f5a7] {
397
384
  grid-auto-columns: 100%;
385
+ gap: 0;
398
386
  }
399
- .bgl-slider[data-v-619a1cb2]::-webkit-scrollbar {
387
+ .bgl-slider[data-v-e588f5a7]::-webkit-scrollbar {
400
388
  display: none;
401
389
  }
402
- .bgl-slider[data-v-619a1cb2] * {
390
+ .bgl-slider[data-v-e588f5a7] * {
403
391
  scroll-snap-align: start;
404
392
  }
405
- .dragging.bgl-slider[data-v-619a1cb2] {
393
+ .dragging.bgl-slider[data-v-e588f5a7] {
406
394
  cursor: grabbing;
407
395
  cursor: -webkit-grabbing;
408
396
  scroll-snap-type: unset;
409
397
  }
410
- .clicking.bgl-slider[data-v-619a1cb2] {
398
+ .clicking.bgl-slider[data-v-e588f5a7] {
411
399
  scroll-behavior: unset;
412
400
  }
413
- .dragging.bgl-slider[data-v-619a1cb2] * {
401
+ .dragging.bgl-slider[data-v-e588f5a7] * {
414
402
  scroll-snap-align: unset;
415
403
  user-select: none;
416
404
  }
417
- @media screen and (max-width: 1280px) {
418
- .bgl-slider.slides-4[data-v-619a1cb2] {
419
- grid-auto-columns: 33%;
420
- }
421
- }
422
- @media screen and (max-width: 991px) {
423
- .bgl-slider.slides-4[data-v-619a1cb2] {
424
- grid-auto-columns: 50%;
425
- }
426
- }
427
405
  @media screen and (max-width: 600px) {
428
- .bgl-slider.slides-4[data-v-619a1cb2] {
429
- grid-auto-columns: 100%;
406
+ .bgl-slider.slides-1[data-v-e588f5a7] * {
407
+ margin-inline-start: 1%;
430
408
  }
431
409
  }
432
410
 
@@ -728,7 +706,7 @@ data[data-v-6c27f163] {
728
706
  }
729
707
  }
730
708
 
731
- .fileUploadWrap[data-v-1db5afa3] {
709
+ .fileUploadWrap[data-v-bfb0bd63] {
732
710
  outline: 1px solid var(--border-color);
733
711
  border-radius: var(--input-border-radius);
734
712
  text-align: center;
@@ -740,7 +718,7 @@ data[data-v-6c27f163] {
740
718
  background: var(--input-bg);
741
719
  height: 215px;
742
720
  }
743
- .bagel-input .fileUploadWrap.fileDropZone[data-v-1db5afa3] {
721
+ .bagel-input .fileUploadWrap.fileDropZone[data-v-bfb0bd63] {
744
722
  background: var(--input-bg);
745
723
  display: flex;
746
724
  align-items: center;
@@ -748,14 +726,14 @@ data[data-v-6c27f163] {
748
726
  color: var(--bgl-gray);
749
727
  flex-direction: column;
750
728
  }
751
- .fileUploadWrap.dragover[data-v-1db5afa3],
752
- .fileUploadWrap[data-v-1db5afa3]:hover {
729
+ .fileUploadWrap.dragover[data-v-bfb0bd63],
730
+ .fileUploadWrap[data-v-bfb0bd63]:hover {
753
731
  box-shadow: inset 0 0 10px #00000012;
754
732
  }
755
- .fileUploadWrap[style*="height: auto;"][data-v-1db5afa3] {
733
+ .fileUploadWrap[style*="height: auto;"][data-v-bfb0bd63] {
756
734
  min-height: 215px;
757
735
  }
758
- .multi-image-item-preview[data-v-1db5afa3] {
736
+ .multi-image-item-preview[data-v-bfb0bd63] {
759
737
  border: 1px solid var(--border-color) !important;
760
738
  border-radius: var(--input-border-radius);
761
739
  margin: 0.5rem !important;
@@ -769,12 +747,12 @@ data[data-v-6c27f163] {
769
747
  gap: 1rem;
770
748
  align-items: center;
771
749
  }
772
- .multi-image-item-preview p[data-v-1db5afa3] {
750
+ .multi-image-item-preview p[data-v-bfb0bd63] {
773
751
  overflow: hidden;
774
752
  text-overflow: ellipsis;
775
753
  white-space: nowrap;
776
754
  }
777
- .multi-preview[data-v-1db5afa3]{
755
+ .multi-preview[data-v-bfb0bd63]{
778
756
  width: 40px;
779
757
  height: 40px;
780
758
  border-radius: var(--input-border-radius);
@@ -785,17 +763,17 @@ data[data-v-6c27f163] {
785
763
  align-items: center;
786
764
  display: flex;
787
765
  }
788
- .bgl-single-preview[data-v-1db5afa3]{
766
+ .bgl-single-preview[data-v-bfb0bd63]{
789
767
  height: 100%;
790
768
  position: relative;
791
769
  }
792
- .bgl-single-preview + .fileUploadPlaceHolder[data-v-1db5afa3]{
770
+ .bgl-single-preview + .fileUploadPlaceHolder[data-v-bfb0bd63]{
793
771
  position: absolute;
794
772
  inset: 0;
795
773
  margin: auto;
796
774
  top: calc(50% - 2rem);
797
775
  }
798
- .single-image-item-preview[data-v-1db5afa3] {
776
+ .single-image-item-preview[data-v-bfb0bd63] {
799
777
  height: 100%;
800
778
  min-height: 100%;
801
779
  position: relative;
@@ -803,13 +781,13 @@ data[data-v-6c27f163] {
803
781
  align-items: center;
804
782
  justify-content: center;
805
783
  }
806
- .fileUploadWrap[style*="height: auto"] .single-image-item-preview[data-v-1db5afa3] {
784
+ .fileUploadWrap[style*="height: auto"] .single-image-item-preview[data-v-bfb0bd63] {
807
785
  min-height: 215px;
808
786
  }
809
- .fileUploadWrap[style*="height: auto"] .single-preview[data-v-1db5afa3] {
787
+ .fileUploadWrap[style*="height: auto"] .single-preview[data-v-bfb0bd63] {
810
788
  margin: 0rem !important;
811
789
  }
812
- .single-preview[data-v-1db5afa3]{
790
+ .single-preview[data-v-bfb0bd63]{
813
791
  border-radius: var(--input-border-radius);
814
792
  margin: 1rem;
815
793
  padding: 0px;
@@ -817,19 +795,31 @@ data[data-v-6c27f163] {
817
795
  height: calc(100% - 2rem);
818
796
  object-fit: cover;
819
797
  background: var(--bgl-gray-light);
820
- box-shadow: 0 0 10px #00000012;
821
798
  }
822
- .bgl_fill-image.single-image-item-preview[data-v-1db5afa3] {
799
+ .single-image-item-preview[data-v-bfb0bd63]:hover::after{
800
+ content: "zoom_in";
801
+ font-size: 32px;
802
+ font-family: "Material Symbols Outlined", serif;
803
+ position: absolute;
804
+ border-radius: 100%;
805
+ color: var(--bgl-white);
806
+ z-index: 9;
807
+ pointer-events: none;
808
+ }
809
+ .single-image-item-preview:hover img[data-v-bfb0bd63]{
810
+ filter: brightness(70%);
811
+ }
812
+ .bgl_fill-image.single-image-item-preview[data-v-bfb0bd63] {
823
813
  height: 100%;
824
814
  }
825
- .bgl_fill-image.single-image-item-preview .single-preview[data-v-1db5afa3]{
815
+ .bgl_fill-image.single-image-item-preview .single-preview[data-v-bfb0bd63]{
826
816
  border-radius: unset;
827
817
  object-fit: cover;
828
818
  box-shadow: unset;
829
819
  width: 100%;
830
820
  height: auto;
831
821
  }
832
- .single-image-item-preview .pie[data-v-1db5afa3] {
822
+ .single-image-item-preview .pie[data-v-bfb0bd63] {
833
823
  transform-origin: top;
834
824
  transform: scale(1.4);
835
825
  position: absolute;
@@ -843,31 +833,31 @@ data[data-v-6c27f163] {
843
833
  border: none !important;
844
834
  padding: 0 !important;
845
835
  }
846
- .bgl_oval-upload[data-v-1db5afa3] {
836
+ .bgl_oval-upload[data-v-bfb0bd63] {
847
837
  border-radius: 100% !important;
848
838
  overflow: hidden;
849
839
  }
850
- .bgl_oval-upload p[data-v-1db5afa3] {
840
+ .bgl_oval-upload p[data-v-bfb0bd63] {
851
841
  padding: 0.75rem !important;
852
842
  font-size: 12px
853
843
  }
854
- .bgl_oval-upload .fileUploadPlaceHolder[data-v-1db5afa3]{
844
+ .bgl_oval-upload .fileUploadPlaceHolder[data-v-bfb0bd63]{
855
845
  top: 0;
856
846
  }
857
- .bgl_oval-upload .pie[data-v-1db5afa3] {
847
+ .bgl_oval-upload .pie[data-v-bfb0bd63] {
858
848
  transform: scale(1);
859
849
  }
860
- .bgl_oval-upload span.bgl_icon-font.color-primary[data-v-1db5afa3] {
850
+ .bgl_oval-upload span.bgl_icon-font.color-primary[data-v-bfb0bd63] {
861
851
  transform: scale(0.4) !important;
862
852
  }
863
- .bgl_oval-upload .single-image-item-preview[data-v-1db5afa3]{
853
+ .bgl_oval-upload .single-image-item-preview[data-v-bfb0bd63]{
864
854
  height: 100%;
865
855
  }
866
- .bgl_oval-upload .single-preview[data-v-1db5afa3] {
856
+ .bgl_oval-upload .single-preview[data-v-bfb0bd63] {
867
857
  margin: 0;
868
858
  height: 100% !important;
869
859
  }
870
- .pie[data-v-1db5afa3] {
860
+ .pie[data-v-bfb0bd63] {
871
861
  width: 30px;
872
862
  height: 30px;
873
863
  position: relative;
@@ -875,7 +865,7 @@ data[data-v-6c27f163] {
875
865
  align-items: center;
876
866
  justify-content: center;
877
867
  }
878
- .pie[data-v-1db5afa3]:before {
868
+ .pie[data-v-bfb0bd63]:before {
879
869
  content: '';
880
870
  position: absolute;
881
871
  border-radius: 50%;
@@ -893,26 +883,26 @@ data[data-v-6c27f163] {
893
883
  #000 calc(100% - var(--b))
894
884
  );
895
885
  }
896
- .pie .success[data-v-1db5afa3] {
886
+ .pie .success[data-v-bfb0bd63] {
897
887
  transform: scale(0);
898
888
  opacity: 0;
899
889
  transition: all 0.3s ease-in-out;
900
890
  }
901
- .pie .progress[data-v-1db5afa3] {
891
+ .pie .progress[data-v-bfb0bd63] {
902
892
  position: absolute;
903
893
  font-size: 10px;
904
894
  }
905
- .pie.complete .progress[data-v-1db5afa3] {
895
+ .pie.complete .progress[data-v-bfb0bd63] {
906
896
  display: none;
907
897
  }
908
- .pie.complete .success[data-v-1db5afa3] {
898
+ .pie.complete .success[data-v-bfb0bd63] {
909
899
  transform: scale(1.3);
910
900
  opacity: 1;
911
901
  }
912
- .pie.complete[data-v-1db5afa3]:before {
902
+ .pie.complete[data-v-bfb0bd63]:before {
913
903
  background: conic-gradient(var(--bgl-green) calc(var(--p) * 1%), #0000 0);
914
904
  }
915
- .pie.complete[data-v-1db5afa3] {
905
+ .pie.complete[data-v-bfb0bd63] {
916
906
  color: var(--bgl-green);
917
907
  }
918
908
 
@@ -3160,25 +3150,25 @@ svg.leaflet-image-layer.leaflet-interactive path {
3160
3150
  }
3161
3151
  }
3162
3152
 
3163
- .bgl_pill-btn[data-v-8c7388de]{
3153
+ .bgl_pill-btn[data-v-40a0a2e2]{
3164
3154
  color: var(--pill-btn-color);
3165
3155
  background: var(--pill-btn-bg);
3166
3156
  width: calc(var(--pill-height) / 1.25)!important;
3167
3157
  height: calc(var(--pill-height) / 1.25)!important;
3168
3158
  }
3169
- .loading[data-v-8c7388de] {
3159
+ .loading[data-v-40a0a2e2] {
3170
3160
  border: 1px solid var(--bgl-light-text);
3171
3161
  border-bottom: 2px solid var(--bgl-light-text);
3172
- animation: spin-8c7388de 1s linear infinite;
3162
+ animation: spin-40a0a2e2 1s linear infinite;
3173
3163
  border-radius: 100px;
3174
3164
  width: 1rem;
3175
3165
  height: 1rem;
3176
3166
  margin: auto;
3177
3167
  }
3178
- .bgl_flatPill .loading[data-v-8c7388de] {
3168
+ .bgl_flatPill .loading[data-v-40a0a2e2] {
3179
3169
  border-bottom: 2px solid var(--bgl-text-color);
3180
3170
  }
3181
- @keyframes spin-8c7388de {
3171
+ @keyframes spin-40a0a2e2 {
3182
3172
  0% {
3183
3173
  transform: rotate(0deg);
3184
3174
  }
@@ -3186,11 +3176,11 @@ svg.leaflet-image-layer.leaflet-interactive path {
3186
3176
  transform: rotate(360deg);
3187
3177
  }
3188
3178
  }
3189
- .bgl_pill[data-v-8c7388de] {
3179
+ .bgl_pill[data-v-40a0a2e2] {
3190
3180
  padding-inline: 0.25rem;
3191
3181
  transition: var(--bgl-transition);
3192
- background-color: var(--4779ddec);
3193
- color: var(--04aaf136);
3182
+ background-color: var(--64b28dae);
3183
+ color: var(--e70b1a78);
3194
3184
  display: inline-block;
3195
3185
  margin-inline-end: 0.25rem;
3196
3186
  border-radius: var(--pill-border-radius);
@@ -3198,26 +3188,26 @@ svg.leaflet-image-layer.leaflet-interactive path {
3198
3188
  vertical-align: middle;
3199
3189
  margin-bottom: 0.25rem;
3200
3190
  }
3201
- .bgl_pill[disabled="true"][data-v-8c7388de] {
3191
+ .bgl_pill[disabled="true"][data-v-40a0a2e2] {
3202
3192
  opacity: 0.5;
3203
3193
  cursor: not-allowed;
3204
3194
  }
3205
- .bgl_pill-flex[data-v-8c7388de] {
3195
+ .bgl_pill-flex[data-v-40a0a2e2] {
3206
3196
  display: flex;
3207
3197
  align-items: center;
3208
3198
  gap: 0.25rem;
3209
3199
  justify-content: center;
3210
3200
  height: 100%;
3211
3201
  }
3212
- .bgl_pill.bgl_flatPill[data-v-8c7388de] {
3202
+ .bgl_pill.bgl_flatPill[data-v-40a0a2e2] {
3213
3203
  background: transparent;
3214
3204
  }
3215
- .bgl_pill.round[data-v-8c7388de] {
3205
+ .bgl_pill.round[data-v-40a0a2e2] {
3216
3206
  border-radius: 1000px;
3217
3207
  }
3218
- .bgl_pill-border[data-v-8c7388de] {
3219
- outline: 1px solid var(--4779ddec);
3220
- color: var(--4779ddec);
3208
+ .bgl_pill-border[data-v-40a0a2e2] {
3209
+ outline: 1px solid var(--64b28dae);
3210
+ color: var(--64b28dae);
3221
3211
  background: transparent;
3222
3212
  }
3223
3213
 
@@ -1,5 +1,5 @@
1
1
  import { Attributes, BglFormSchemaT } from '..';
2
- export declare function debounce<T extends (...args: any[]) => void>(func: T, wait: number): (...args: Parameters<T>) => void;
2
+ export declare function debounce<T extends (...args: Parameters<T>) => ReturnType<T>>(callback: T, wait: number, immediate?: boolean): (...args: Parameters<T>) => void;
3
3
  export declare function keyToLabel(key?: string): string | undefined;
4
4
  export declare function copyText(text: string, cb?: (msg: string) => void): Promise<void>;
5
5
  export declare function initials(...strArr: string[]): string;
@@ -17,6 +17,6 @@ export * as bagelFormUtils from './BagelFormUtils';
17
17
  export { useLang } from './lang';
18
18
  export { formatString } from './strings';
19
19
  export declare function getFallbackSchema<T>(data?: any[], showFields?: string[]): BglFormSchemaT<T>;
20
- export declare const sleep: (ms?: number) => Promise<unknown>;
20
+ export declare function sleep(ms?: number): Promise<unknown>;
21
21
  export declare function appendScript(src: string): Promise<void>;
22
22
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAE/D,wBAAgB,QAAQ,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,IAAI,CAYpH;AAED,wBAAgB,UAAU,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAK3D;AAED,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,iBAGtE;AAED,wBAAgB,QAAQ,CAAC,GAAG,MAAM,EAAE,MAAM,EAAE,UAG3C;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,IAAI,QAIrE;AAED,wBAAgB,QAAQ,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,OAAO,EAAE,GAAG,EAAE,UAKpE;AAED,wBAAgB,SAAS,CAAC,CAAC,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,EAAE,KAAK,CAAC,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,OAUhG;AAED,wBAAgB,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,OAM9C;AAED,wBAAgB,SAAS,CAAC,QAAQ,CAAC,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,EAAE,OAAO,CAAC,EAAE,MAAM,OAG5E;AAED,eAAO,MAAM,MAAM,eAAgB,GAAG,YAA0C,CAAA;AAEhF,OAAO,KAAK,cAAc,MAAM,kBAAkB,CAAA;AAElD,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAA;AAEhC,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAExC,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,GAAG,cAAc,CAAC,CAAC,CAAC,CAa3F;AAED,eAAO,MAAM,KAAK,QAAQ,MAAM,qBAA0D,CAAA;AAE1F,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAYvD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAE/D,wBAAgB,QAAQ,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,EAC3E,QAAQ,EAAE,CAAC,EACX,IAAI,EAAE,MAAM,EACZ,SAAS,CAAC,EAAE,OAAO,GACjB,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,IAAI,CAelC;AAED,wBAAgB,UAAU,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAQ3D;AAED,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,iBAGtE;AAED,wBAAgB,QAAQ,CAAC,GAAG,MAAM,EAAE,MAAM,EAAE,UAG3C;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,IAAI,QAIrE;AAED,wBAAgB,QAAQ,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,OAAO,EAAE,GAAG,EAAE,UAOpE;AAED,wBAAgB,SAAS,CAAC,CAAC,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,EACnD,KAAK,CAAC,EAAE,UAAU,EAClB,QAAQ,CAAC,EAAE,GAAG,EACd,GAAG,CAAC,EAAE,CAAC,OAaP;AAED,wBAAgB,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,OAO9C;AAED,wBAAgB,SAAS,CAAC,QAAQ,CAAC,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,EAAE,OAAO,CAAC,EAAE,MAAM,OAG5E;AAED,eAAO,MAAM,MAAM,eAAgB,GAAG,YAA0C,CAAA;AAEhF,OAAO,KAAK,cAAc,MAAM,kBAAkB,CAAA;AAElD,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAA;AAEhC,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAExC,wBAAgB,iBAAiB,CAAC,CAAC,EAClC,IAAI,CAAC,EAAE,GAAG,EAAE,EACZ,UAAU,CAAC,EAAE,MAAM,EAAE,GACnB,cAAc,CAAC,CAAC,CAAC,CAWnB;AAED,wBAAgB,KAAK,CAAC,EAAE,GAAE,MAAY,oBAErC;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAcvD"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@bagelink/vue",
3
3
  "type": "module",
4
- "version": "0.0.819",
4
+ "version": "0.0.821",
5
5
  "description": "Bagel core sdk packages",
6
6
  "author": {
7
7
  "name": "Neveh Allon",
@@ -25,6 +25,7 @@ const props = defineProps({
25
25
  })
26
26
  const emit = defineEmits(['update:index'])
27
27
  const bglSlider = $ref<HTMLElement>()
28
+ let itemCount = $ref(props.items)
28
29
  let activeSlideIndex = $ref(0)
29
30
  let isDragging = $ref(false)
30
31
  let startX = $ref(0)
@@ -55,6 +56,7 @@ function evalHeight() {
55
56
 
56
57
  function scrollEase(target: number, duration: number = 500) {
57
58
  if (!bglSlider) return
59
+ if (isPressed) return
58
60
  const start = bglSlider.scrollLeft
59
61
  const change = target - start
60
62
  const startTime = performance.now()
@@ -103,23 +105,29 @@ watch(
103
105
  emit('update:index', activeSlideIndex) }
104
106
  )
105
107
 
106
- function scrollEnd() {
107
- const slider = bglSlider
108
- if (!slider || props.items !== 1) return
109
- const nextSlide = Math.round(slider.scrollLeft / slider.offsetWidth)
108
+ function goToSlideScrollEnd() {
109
+ if (!bglSlider) return
110
+ const isDragForward = startX > bglSlider.offsetLeft
111
+ if (itemCount === 1) {
112
+ if (isDragForward) activeSlideIndex = Math.ceil(bglSlider.scrollLeft / bglSlider.offsetWidth)
113
+ else activeSlideIndex = Math.floor(bglSlider.scrollLeft / bglSlider.offsetWidth)
114
+ } else {
115
+ activeSlideIndex = Math.round(bglSlider.scrollLeft / bglSlider.offsetWidth)
116
+ }
117
+ startX = 0
118
+ const nextSlide = Math.round(bglSlider.scrollLeft / bglSlider.offsetWidth)
110
119
  goToSlide(nextSlide)
111
120
  }
112
121
 
122
+ let timeout: any = null
123
+
124
+ function scrollEnd() {
125
+ if (timeout) clearTimeout(timeout)
126
+ timeout = setTimeout(goToSlideScrollEnd, 400)
127
+ }
128
+
113
129
  function stopDragging(e: MouseEvent) {
114
130
  isPressed = false
115
- const slider = bglSlider
116
- if (!slider) return
117
- const isDragForward = startX > e.pageX + slider.offsetLeft
118
- if (isDragForward)
119
- activeSlideIndex = Math.ceil(slider.scrollLeft / slider.offsetWidth)
120
- else activeSlideIndex = Math.floor(slider.scrollLeft / slider.offsetWidth)
121
- if (props.items === 1) goToSlide(activeSlideIndex)
122
- startX = 0
123
131
  document.removeEventListener('mousemove', move)
124
132
  document.removeEventListener('mouseup', stopDragging)
125
133
  document.removeEventListener('dragend', stopDragging)
@@ -143,7 +151,7 @@ function startDragging(e: MouseEvent) {
143
151
  isPressed = true
144
152
  document.addEventListener('mousemove', move)
145
153
  document.addEventListener('mouseup', stopDragging)
146
- document.addEventListener('dragend', stopDragging)
154
+ // document.addEventListener('dragend', stopDragging)
147
155
  }
148
156
 
149
157
  function next() {
@@ -163,12 +171,18 @@ function prev() {
163
171
 
164
172
  function evalWidth() {
165
173
  if (!bglSlider) return
174
+ if (window.innerWidth < 600) itemCount = 1
175
+ else if (window.innerWidth < 991) itemCount = Math.min(props.items, 2)
176
+ else if (window.innerWidth < 1280) itemCount = Math.min(props.items, 3)
177
+ else itemCount = props.items
178
+ console.log(itemCount, window.innerWidth)
166
179
  goToSlide(activeSlideIndex)
167
180
  }
168
181
 
169
182
  onMounted(() => {
170
183
  window.addEventListener('resize', evalWidth)
171
184
  evalHeight()
185
+ evalWidth()
172
186
  disableDrag()
173
187
  })
174
188
 
@@ -182,10 +196,15 @@ onUnmounted(() => { window.removeEventListener('resize', evalWidth) })
182
196
  :class="{
183
197
  dragging: isDragging,
184
198
  clicking: isPressed,
185
- [`slides-${items}`]: true,
186
199
  allowScroll,
200
+ odd: itemCount % 2 !== 0,
201
+ [`slides-${itemCount}`]: itemCount === 1,
187
202
  }"
188
203
  class="bgl-slider"
204
+ :style="{
205
+ '--item-count': itemCount,
206
+ }"
207
+ @scroll.active="scrollEnd"
189
208
  @mousedown="startDragging"
190
209
  >
191
210
  <div v-if="isDragging" class="blocker" />
@@ -230,33 +249,18 @@ onUnmounted(() => { window.removeEventListener('resize', evalWidth) })
230
249
  overflow-x: scroll;
231
250
  }
232
251
 
233
- .bgl-slider.slides-6 {
234
- grid-auto-columns: 15.9%;
235
- gap: 1%;
236
- }
237
-
238
- .bgl-slider.slides-5 {
239
- grid-auto-columns: 19.3%;
240
- gap: 1%;
241
- }
242
-
243
- .bgl-slider.slides-4 {
244
- grid-auto-columns: 24.3%;
245
- gap: 1%;
246
- }
247
-
248
- .bgl-slider.slides-3 {
249
- grid-auto-columns: 33%;
252
+ .bgl-slider {
253
+ grid-auto-columns: calc(100% / var(--item-count) - calc(var(--item-count) - 1) * 1%);
250
254
  gap: 1%;
251
255
  }
252
256
 
253
- .bgl-slider.slides-2 {
254
- grid-auto-columns: 50%;
255
- gap: 1%;
257
+ .bgl-slider.odd {
258
+ grid-auto-columns: calc(100% / var(--item-count) - calc(var(--item-count) - 2) * 1%);
256
259
  }
257
260
 
258
261
  .bgl-slider.slides-1 {
259
262
  grid-auto-columns: 100%;
263
+ gap: 0;
260
264
  }
261
265
 
262
266
  .bgl-slider::-webkit-scrollbar {
@@ -282,21 +286,10 @@ onUnmounted(() => { window.removeEventListener('resize', evalWidth) })
282
286
  user-select: none;
283
287
  }
284
288
 
285
- @media screen and (max-width: 1280px) {
286
- .bgl-slider.slides-4 {
287
- grid-auto-columns: 33%;
288
- }
289
- }
290
-
291
- @media screen and (max-width: 991px) {
292
- .bgl-slider.slides-4 {
293
- grid-auto-columns: 50%;
294
- }
295
- }
296
-
297
289
  @media screen and (max-width: 600px) {
298
- .bgl-slider.slides-4 {
299
- grid-auto-columns: 100%;
290
+ .bgl-slider.slides-1 * {
291
+ margin-inline-start: 1%;
300
292
  }
293
+
301
294
  }
302
295
  </style>
@@ -1,7 +1,7 @@
1
1
  <script setup lang="ts">
2
- import type { MaterialIcons, ThemeType } from '@bagelink/vue'
3
2
  import { Btn, MaterialIcon } from '@bagelink/vue'
4
3
  import { useSlots } from 'vue'
4
+ import type { MaterialIcons, ThemeType } from '@bagelink/vue'
5
5
 
6
6
  interface BtnProp {
7
7
  icon: MaterialIcons
@@ -270,7 +270,16 @@ function drop(e: DragEvent) {
270
270
  class="single-image-item-preview"
271
271
  :class="{ 'bgl_fill-image': fill }"
272
272
  >
273
- <img v-if="isImage(file.extension || file.url)" v-lightbox class="single-preview" :src="file.url" alt="">
273
+ <div v-if="isImage(file.extension || file.url)" class="h-100">
274
+ <img v-lightbox class="single-preview" :src="file.url" alt="">
275
+ <div class="position-start m-05 gap-025 flex">
276
+ <Btn v-tooltip="'Delete'" color="gray" thin icon="delete" @click.stop="removeFile(file)" />
277
+ <Btn
278
+ v-tooltip="'Replace'" color="gray" thin icon="autorenew"
279
+ @click="browse"
280
+ />
281
+ </div>
282
+ </div>
274
283
  <Icon v-else :size="4" weight="2" icon="draft" class="color-primary w-100" />
275
284
  </div>
276
285
 
@@ -407,8 +416,21 @@ function drop(e: DragEvent) {
407
416
  height: calc(100% - 2rem);
408
417
  object-fit: cover;
409
418
  background: var(--bgl-gray-light);
410
- box-shadow: 0 0 10px #00000012;
411
419
  }
420
+ .single-image-item-preview:hover::after{
421
+ content: "zoom_in";
422
+ font-size: 32px;
423
+ font-family: "Material Symbols Outlined", serif;
424
+ position: absolute;
425
+ border-radius: 100%;
426
+ color: var(--bgl-white);
427
+ z-index: 9;
428
+ pointer-events: none;
429
+ }
430
+ .single-image-item-preview:hover img{
431
+ filter: brightness(70%);
432
+ }
433
+
412
434
  .bgl_fill-image.single-image-item-preview {
413
435
  height: 100%;
414
436
  }