@bagelink/vue 0.0.1167 → 0.0.1174

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
@@ -356,13 +356,13 @@ display: block;
356
356
  padding: 0;
357
357
  }
358
358
 
359
- .BglCarousel[data-v-b4d71e9e] {
359
+ .BglCarousel[data-v-519e4d32] {
360
360
  position: relative;
361
361
  width: 100%;
362
362
  overflow: hidden;
363
363
  touch-action: pan-y pinch-zoom; /* Allow vertical scrolling */
364
364
  }
365
- .bgl-slider[data-v-b4d71e9e] {
365
+ .bgl-slider[data-v-519e4d32] {
366
366
  display: flex;
367
367
  position: relative;
368
368
  width: 100%;
@@ -375,26 +375,26 @@ display: block;
375
375
  -webkit-user-select: none;
376
376
  user-select: none;
377
377
  }
378
- .bgl-slider[data-v-b4d71e9e] > * {
378
+ .bgl-slider[data-v-519e4d32] > * {
379
379
  flex: 0 0 calc((100% - (var(--item-count) - 1) * 1%) / var(--item-count));
380
380
  width: calc((100% - (var(--item-count) - 1) * 1%) / var(--item-count));
381
381
  min-width: calc((100% - (var(--item-count) - 1) * 1%) / var(--item-count));
382
382
  position: relative;
383
383
  overflow: hidden;
384
384
  }
385
- .bgl-slider.slides-1[data-v-b4d71e9e] > * {
385
+ .bgl-slider.slides-1[data-v-519e4d32] > * {
386
386
  flex: 0 0 100%;
387
387
  width: 100%;
388
388
  min-width: 100%;
389
389
  }
390
- .dragging .bgl-slider[data-v-b4d71e9e] > * {
390
+ .dragging .bgl-slider[data-v-519e4d32] > * {
391
391
  pointer-events: none;
392
392
  user-select: none;
393
393
  }
394
- .autoHeight[data-v-b4d71e9e] {
394
+ .autoHeight[data-v-519e4d32] {
395
395
  transition: height ease 0.7s;
396
396
  }
397
- .dots[data-v-b4d71e9e] {
397
+ .dots[data-v-519e4d32] {
398
398
  display: flex;
399
399
  justify-content: center;
400
400
  align-items: center;
@@ -402,7 +402,7 @@ display: block;
402
402
  margin-top: 1rem;
403
403
  gap: 8px;
404
404
  }
405
- .dot[data-v-b4d71e9e] {
405
+ .dot[data-v-519e4d32] {
406
406
  height: 10px;
407
407
  width: 10px;
408
408
  border-radius: 50%;
@@ -411,10 +411,10 @@ display: block;
411
411
  transition: opacity 0.3s ease;
412
412
  cursor: pointer;
413
413
  }
414
- .dot[data-v-b4d71e9e]:hover {
414
+ .dot[data-v-519e4d32]:hover {
415
415
  opacity: 0.6;
416
416
  }
417
- .dot.current[data-v-b4d71e9e] {
417
+ .dot.current[data-v-519e4d32] {
418
418
  opacity: 0.8;
419
419
  }
420
420
 
@@ -472,22 +472,22 @@ display: block;
472
472
  font-size: 0.95rem;
473
473
  }
474
474
 
475
- .table-list-wrap[data-v-18572328] {
475
+ .table-list-wrap[data-v-a1cf8002] {
476
476
  min-height: 150px;
477
477
  }
478
- .selected[data-v-18572328] {
478
+ .selected[data-v-a1cf8002] {
479
479
  background: var(--bgl-primary-tint);
480
480
  }
481
- tbody tr.selected[data-v-18572328]:hover {
481
+ tbody tr.selected[data-v-a1cf8002]:hover {
482
482
  background: var(--bgl-primary-light);
483
483
  }
484
- .loading-table[data-v-18572328] {
484
+ .loading-table[data-v-a1cf8002] {
485
485
  position: relative;
486
486
  }
487
- .inset[data-v-18572328] {
487
+ .inset[data-v-a1cf8002] {
488
488
  inset: 0;
489
489
  }
490
- .loading-table-animation[data-v-18572328] {
490
+ .loading-table-animation[data-v-a1cf8002] {
491
491
  --size: 60px;
492
492
  top: 30vh;
493
493
  inset-inline-start: calc(50% - var(--size));
@@ -495,9 +495,9 @@ tbody tr.selected[data-v-18572328]:hover {
495
495
  border-top: 4px solid var(--bgl-primary);
496
496
  width: var(--size);
497
497
  height: var(--size);
498
- animation: loading-table-18572328 1s linear infinite;
498
+ animation: loading-table-a1cf8002 1s linear infinite;
499
499
  }
500
- @keyframes loading-table-18572328 {
500
+ @keyframes loading-table-a1cf8002 {
501
501
  0% {
502
502
  transform: translate(-50%, -50%) rotate(0deg);
503
503
  }
@@ -505,51 +505,51 @@ tbody tr.selected[data-v-18572328]:hover {
505
505
  transform: translate(-50%, -50%) rotate(360deg);
506
506
  }
507
507
  }
508
- .list-arrows[data-v-18572328] {
508
+ .list-arrows[data-v-a1cf8002] {
509
509
  opacity: 0;
510
510
  }
511
- .list-arrows .bgl_icon-font[data-v-18572328] {
511
+ .list-arrows .bgl_icon-font[data-v-a1cf8002] {
512
512
  transition: all ease-in-out 0.2s;
513
513
  }
514
- .list-arrows.sorted[data-v-18572328] {
514
+ .list-arrows.sorted[data-v-a1cf8002] {
515
515
  opacity: 1;
516
516
  }
517
- .col img[data-v-18572328] {
517
+ .col img[data-v-a1cf8002] {
518
518
  height: 35px;
519
519
  margin-top: -14px;
520
520
  margin-bottom: -14px;
521
521
  border-radius: 5px;
522
522
  }
523
- .list-arrows.sorted .desc[data-v-18572328] {
523
+ .list-arrows.sorted .desc[data-v-a1cf8002] {
524
524
  transform: rotate(180deg);
525
525
  display: inline-block;
526
526
  }
527
- table[data-v-18572328] {
527
+ table[data-v-a1cf8002] {
528
528
  border-spacing: 0 15px;
529
529
  border-collapse: collapse;
530
530
  width: 100%;
531
531
  }
532
- th[data-v-18572328] {
532
+ th[data-v-a1cf8002] {
533
533
  font-size: 0.8rem;
534
534
  color: var(--bgl-black-tint);
535
535
  position: sticky;
536
536
  top: 0;
537
537
  z-index: 2;
538
538
  background: var(--bgl-box-bg);
539
- height: var(--0984904d);
539
+ height: var(--0c6a620a);
540
540
  vertical-align: bottom;
541
541
  font-weight: 400;
542
542
  text-align: start;
543
543
  }
544
- .embedded-field[data-v-18572328] {
544
+ .embedded-field[data-v-a1cf8002] {
545
545
  margin-bottom: -0.2rem;
546
546
  margin-top: -0.2rem;
547
547
  }
548
- .row[data-v-18572328] {
548
+ .row[data-v-a1cf8002] {
549
549
  border-bottom: 1px solid var(--border-color);
550
550
  cursor: pointer;
551
551
  }
552
- .row.first-row[data-v-18572328] {
552
+ .row.first-row[data-v-a1cf8002] {
553
553
  font-size: 0.8rem;
554
554
  color: var(--bgl-black-tint);
555
555
  position: sticky;
@@ -558,7 +558,7 @@ th[data-v-18572328] {
558
558
  background: var(--bgl-box-bg);
559
559
  vertical-align: bottom;
560
560
  }
561
- .row.first-row[data-v-18572328]::after {
561
+ .row.first-row[data-v-a1cf8002]::after {
562
562
  content: '';
563
563
  border-bottom: 1px solid var(--border-color);
564
564
  position: absolute;
@@ -566,11 +566,11 @@ th[data-v-18572328] {
566
566
  right: 0;
567
567
  bottom: -1px;
568
568
  }
569
- .first-row .col[data-v-18572328] {
569
+ .first-row .col[data-v-a1cf8002] {
570
570
  cursor: pointer;
571
571
  background: var(--bgl-box-bg);
572
572
  }
573
- .col[data-v-18572328] {
573
+ .col[data-v-a1cf8002] {
574
574
  white-space: nowrap;
575
575
  padding: 0.75rem 1rem;
576
576
  transition: var(--bgl-transition);
@@ -580,19 +580,19 @@ th[data-v-18572328] {
580
580
  overflow: hidden;
581
581
  max-width: 30vw;
582
582
  }
583
- .col[data-v-18572328]:has(.bagel-input) {
583
+ .col[data-v-a1cf8002]:has(.bagel-input) {
584
584
  padding: 0rem 0.25rem;
585
585
  }
586
- .col > div[data-v-18572328] {
586
+ .col > div[data-v-a1cf8002] {
587
587
  display: flex;
588
588
  gap: 0.5rem;
589
589
  }
590
- .max-col-width[data-v-18572328] {
590
+ .max-col-width[data-v-a1cf8002] {
591
591
  max-width: 30vw;
592
592
  overflow: hidden;
593
593
  text-overflow: ellipsis;
594
594
  }
595
- .col.check .bgl_icon-font[data-v-18572328] {
595
+ .col.check .bgl_icon-font[data-v-a1cf8002] {
596
596
  border-radius: 100%;
597
597
  background: var(--bgl-blue-20);
598
598
  color: var(--bgl-primary);
@@ -603,35 +603,35 @@ th[data-v-18572328] {
603
603
  justify-content: center;
604
604
  margin-top: -2px;
605
605
  }
606
- .rows[data-v-18572328] {
606
+ .rows[data-v-a1cf8002] {
607
607
  font-size: 0.88em;
608
608
  }
609
- .table-list[data-v-18572328] {
609
+ .table-list[data-v-a1cf8002] {
610
610
  height: 100%;
611
611
  position: relative;
612
612
  padding-left: 0 !important;
613
613
  padding-right: 0 !important;
614
614
  overflow: auto;
615
615
  }
616
- .BagelTable .table-list[data-v-18572328] {
616
+ .BagelTable .table-list[data-v-a1cf8002] {
617
617
  overflow: unset;
618
618
  }
619
- .row-item[data-v-18572328] {
620
- height: var(--0984904d);
619
+ .row-item[data-v-a1cf8002] {
620
+ height: var(--0c6a620a);
621
621
  transition: all 200ms ease;
622
622
  }
623
- .row-item[data-v-18572328]:hover {
623
+ .row-item[data-v-a1cf8002]:hover {
624
624
  background: var(--bgl-gray-light);
625
625
  }
626
- .row-item input[type='checkbox'][data-v-18572328] {
626
+ .row-item input[type='checkbox'][data-v-a1cf8002] {
627
627
  margin-top: 0.45rem !important;
628
628
  accent-color: var(--bgl-accent-color);
629
629
  }
630
- .infinite-wrapper[data-v-18572328] {
630
+ .infinite-wrapper[data-v-a1cf8002] {
631
631
  overflow-y: auto;
632
632
  width: 100%;
633
633
  }
634
- input[type='checkbox'][data-v-18572328] {
634
+ input[type='checkbox'][data-v-a1cf8002] {
635
635
  margin-top: 0.3rem !important;
636
636
  accent-color: var(--bgl-accent-color);
637
637
  transform: scale(1.2);
@@ -643,7 +643,7 @@ input[type='checkbox'][data-v-18572328] {
643
643
  height: 0.85rem;
644
644
  width: 0.85rem;
645
645
  }
646
- input[type='checkbox'][data-v-18572328]::before {
646
+ input[type='checkbox'][data-v-a1cf8002]::before {
647
647
  content: '';
648
648
  height: 0.85rem;
649
649
  width: 0.85rem;
@@ -656,18 +656,18 @@ input[type='checkbox'][data-v-18572328]::before {
656
656
  transform: scale(1);
657
657
  position: absolute;
658
658
  }
659
- input[type='checkbox'][data-v-18572328]:hover::before {
659
+ input[type='checkbox'][data-v-a1cf8002]:hover::before {
660
660
  opacity: 0.2;
661
661
  transform: scale(2);
662
662
  }
663
- [lang='he'] [dir='ltr'][data-v-18572328] {
663
+ [lang='he'] [dir='ltr'][data-v-a1cf8002] {
664
664
  text-align: right;
665
665
  }
666
- th input[type='checkbox'][data-v-18572328] {
666
+ th input[type='checkbox'][data-v-a1cf8002] {
667
667
  transform: translateY(0.2rem) scale(1.2);
668
668
  accent-color: var(--bgl-accent-color);
669
669
  }
670
- th[data-v-18572328]::after {
670
+ th[data-v-a1cf8002]::after {
671
671
  content: '';
672
672
  border-bottom: 1px solid var(--border-color);
673
673
  position: absolute;
@@ -675,24 +675,24 @@ th[data-v-18572328]::after {
675
675
  right: 0;
676
676
  bottom: -1px;
677
677
  }
678
- tr[data-v-18572328] {
678
+ tr[data-v-a1cf8002] {
679
679
  border-bottom: 1px solid var(--border-color);
680
680
  cursor: pointer;
681
681
  align-items: center;
682
682
  }
683
- td[data-v-18572328],
684
- th[data-v-18572328] {
683
+ td[data-v-a1cf8002],
684
+ th[data-v-a1cf8002] {
685
685
  white-space: nowrap;
686
686
  padding: 0.75rem 0.65rem;
687
687
  transition: var(--bgl-transition);
688
688
  line-height: 1;
689
689
  }
690
- tbody tr[data-v-18572328] {
690
+ tbody tr[data-v-a1cf8002] {
691
691
  font-size: 0.88em;
692
- height: var(--0984904d);
692
+ height: var(--0c6a620a);
693
693
  transition: all 200ms ease;
694
694
  }
695
- tbody tr[data-v-18572328]:hover {
695
+ tbody tr[data-v-a1cf8002]:hover {
696
696
  background: var(--bgl-gray-light);
697
697
  }
698
698
 
@@ -3437,11 +3437,11 @@ body:has(.bg-dark.is-active) {
3437
3437
  border-radius: var(--card-border-radius);
3438
3438
  }
3439
3439
 
3440
- .modal-title[data-v-7a736620] {
3440
+ .modal-title[data-v-1c0f6894] {
3441
3441
  margin-top: 0.5rem;
3442
3442
  }
3443
3443
  @media screen and (max-width: 910px) {
3444
- .modal-title[data-v-7a736620] {
3444
+ .modal-title[data-v-1c0f6894] {
3445
3445
  margin-top: 1rem;
3446
3446
  }
3447
3447
  }
@@ -1,5 +1,5 @@
1
1
  import { IconType, MaterialIcons } from '../components/Icon/types';
2
- export type { ModalApi, ModalComponentProps, ModalComponentProps as ModalFormComponentProps, ModalFormOptions, ModalOptions, } from '../plugins/modal';
2
+ export type { ModalComponentProps, ModalComponentProps as ModalFormComponentProps, ModalOptions, } from '../plugins/modalTypes';
3
3
  export type { IconType, MaterialIcons };
4
4
  export * from './BagelForm';
5
5
  export * from './BtnOptions';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACX,QAAQ,EACR,mBAAmB,EACnB,mBAAmB,IAAI,uBAAuB,EAC9C,gBAAgB,EAChB,YAAY,GACZ,MAAM,kBAAkB,CAAA;AAEzB,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AAEvE,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAA;AAEvC,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,YAAY,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAA;AAEzC,YAAY,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACxC,YAAY,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAE/D,MAAM,MAAM,GAAG,GAAG;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,CAAC,EAAE,QAAQ,CAAA;CACf,GAAG,MAAM,CAAA;AAEV,MAAM,MAAM,SAAS,GACpB,OAAO,GACL,OAAO,GACP,KAAK,GACL,MAAM,GACN,YAAY,GACZ,OAAO,GACP,OAAO,GACP,QAAQ,GACR,SAAS,GACT,MAAM,CAAA;AAET,MAAM,MAAM,MAAM,GACf,MAAM,GACN,MAAM,GACN;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,GACtB;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,CAAA;AAE5C,MAAM,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACX,mBAAmB,EACnB,mBAAmB,IAAI,uBAAuB,EAC9C,YAAY,GACZ,MAAM,uBAAuB,CAAA;AAE9B,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AAEvE,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAA;AAEvC,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,YAAY,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAA;AAEzC,YAAY,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACxC,YAAY,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAE/D,MAAM,MAAM,GAAG,GAAG;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,CAAC,EAAE,QAAQ,CAAA;CACf,GAAG,MAAM,CAAA;AAEV,MAAM,MAAM,SAAS,GACpB,OAAO,GACL,OAAO,GACP,KAAK,GACL,MAAM,GACN,YAAY,GACZ,OAAO,GACP,OAAO,GACP,QAAQ,GACR,SAAS,GACT,MAAM,CAAA;AAET,MAAM,MAAM,MAAM,GACf,MAAM,GACN,MAAM,GACN;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,GACtB;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,CAAA;AAE5C,MAAM,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA"}
@@ -29,7 +29,9 @@ interface NumFieldOptions extends InputOptions {
29
29
  center?: boolean;
30
30
  }
31
31
  type RichTextOptions = InputOptions;
32
- export declare function getBaseField<T>(id?: string, labelOrRest?: string | Partial<Field<T>>, rest?: Partial<Field<T>>): Field<T>;
32
+ export declare function getBaseField<T extends {
33
+ [key: string]: any;
34
+ }>(id?: keyof T extends string ? keyof T : string, labelOrRest?: string | Partial<Field<T>>, rest?: Partial<Field<T>>): Field<T>;
33
35
  export declare function richText(id: string, label?: string, options?: RichTextOptions): {
34
36
  $el: string;
35
37
  class: string | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"BagelFormUtils.d.ts","sourceRoot":"","sources":["../../src/utils/BagelFormUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BagelFormUtils.d.ts","sourceRoot":"","sources":["../../src/utils/BagelFormUtils.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@bagelink/vue",
3
3
  "type": "module",
4
- "version": "0.0.1167",
4
+ "version": "0.0.1174",
5
5
  "description": "Bagel core sdk packages",
6
6
  "author": {
7
7
  "name": "Neveh Allon",
@@ -53,12 +53,11 @@ let startY = $ref(0)
53
53
  let translateX = $ref(0)
54
54
  let lastX = $ref(0)
55
55
  let lastTime = $ref(0)
56
- let swipeVelocity = $ref(0)
57
56
  let accumulatedDeltaX = $ref(0)
58
57
 
59
- let timeout: NodeJS.Timeout
60
- let wheelTimeout: NodeJS.Timeout
61
- let autoPlayInterval: NodeJS.Timeout
58
+ let timeout: NodeJS.Timeout | undefined
59
+ let wheelTimeout: NodeJS.Timeout | undefined
60
+ let autoPlayInterval: NodeJS.Timeout | undefined
62
61
 
63
62
  // Add interface for velocity tracking
64
63
  interface VelocitySample {
@@ -319,7 +318,6 @@ function onTouchStart(e: TouchEvent) {
319
318
  lastTime = Date.now()
320
319
  translateX = getCurrentTransform()
321
320
  velocityTracker = [{ time: lastTime, position: lastX }]
322
- swipeVelocity = 0
323
321
  isPressed = true
324
322
  hasScrollDirectionLock = false
325
323
 
@@ -368,9 +366,6 @@ function onTouchMove(e: TouchEvent) {
368
366
  const cutoffTime = now - VELOCITY_SAMPLE_DURATION
369
367
  velocityTracker = velocityTracker.filter((sample: VelocitySample) => sample.time >= cutoffTime)
370
368
 
371
- // Calculate instantaneous velocity for immediate feedback
372
- swipeVelocity = getAverageVelocity()
373
-
374
369
  if (Math.abs(deltaX) > THRESHOLDS.TOUCH) {
375
370
  isDragging = true
376
371
  e.preventDefault() // Only prevent default if we're sure it's a horizontal drag
@@ -486,7 +481,6 @@ function onTouchEnd() {
486
481
  }, duration)
487
482
 
488
483
  velocityTracker = []
489
- swipeVelocity = 0
490
484
  isDragging = false
491
485
  hasScrollDirectionLock = false
492
486
  }
@@ -6,7 +6,7 @@ import {
6
6
  Icon,
7
7
  keyToLabel,
8
8
  } from '@bagelink/vue'
9
- import { useSlots, watch, computed, ref } from 'vue'
9
+ import { useSlots, watch, computed } from 'vue'
10
10
  import { useSchemaField } from '../../composables/useSchemaField'
11
11
  import { useTableData } from './useTableData'
12
12
  import { useTableSelection } from './useTableSelection'
@@ -37,7 +37,6 @@ const selectedItems = defineModel<string[]>(
37
37
  )
38
38
 
39
39
  const data = computed(() => props.data)
40
- const currentRowId = ref<string>('')
41
40
 
42
41
  const {
43
42
  computedSchema,
@@ -89,7 +88,7 @@ function renderFieldForRow(field: BaseBagelField<T>, row: T) {
89
88
  mode: 'table',
90
89
  getRowData: () => row
91
90
  })
92
- return renderField(field, slots)
91
+ return renderField({ ...field, label: '' }, slots)
93
92
  }
94
93
 
95
94
  const computedItemHeight = $computed(() => `${itemHeight.value}px`)
@@ -1,42 +1,31 @@
1
- <script lang="ts" setup>
2
- import type { BglFormSchemaFnT, BtnOptions } from '@bagelink/vue'
1
+ <script lang="ts" setup generic="T extends {[key:string]:any}">
2
+ import type { ModalFormOptions } from '../plugins/modalTypes'
3
3
  import { Btn, Modal, useBagel, BagelForm } from '@bagelink/vue'
4
4
 
5
- const props = defineProps<{
6
- side?: boolean
7
- title?: string
8
- width?: string
9
- dismissable?: boolean
10
- actions?: BtnOptions[]
11
- schema: BglFormSchemaFnT<any>
5
+ // eslint-disable-next-line vue/prop-name-casing
6
+ const props = defineProps<ModalFormOptions<T>>()
12
7
 
13
- onSubmit?: (formData: any) => Promise<void>
14
- onDuplicate?: (formData: any) => Promise<void>
15
- submitText?: string
16
- cancelText?: string
17
- deleteText?: string
18
- duplicateText?: string
19
- onDelete?: (formData: any) => void
20
- visible?: boolean
21
- onError?: (err: any) => void
22
- modelValue?: { [key: string]: any }
8
+ const emit = defineEmits<{
9
+ 'update:modelValue': [value: T]
10
+ 'update:visible': [value: boolean]
23
11
  }>()
24
12
 
25
- const emit = defineEmits(['update:visible'])
26
-
27
13
  const bagel = useBagel()
28
14
 
29
15
  const modal = $ref<InstanceType<typeof Modal>>()
30
16
 
31
- const computedFormSchema = $computed(() => {
32
- if (typeof props.schema === 'function') return props.schema()
33
- return props.schema
17
+ const formData = defineModel<T>('modelValue', {
18
+ default: {} as Partial<T>,
34
19
  })
35
20
 
36
- const formData = defineModel<{ [key: string]: any }>('modelValue', {
37
- default: {},
38
- })
39
- const form = $ref<InstanceType<typeof BagelForm>>()
21
+ interface BagelFormInstance<T> {
22
+ validateForm: () => boolean
23
+ deleteItem?: () => void
24
+ isDirty?: boolean
25
+ clearForm?: () => void
26
+ }
27
+
28
+ const form = $ref<BagelFormInstance<T>>()
40
29
  const closeModal = () => modal?.closeModal()
41
30
 
42
31
  let submitting = $ref(false)
@@ -81,7 +70,8 @@ defineExpose({ setFormValues })
81
70
  v-if="visible"
82
71
  ref="form"
83
72
  v-model="formData"
84
- :schema="computedFormSchema"
73
+ :schema="schema"
74
+ @update:modelValue="emit('update:modelValue', $event)"
85
75
  @submit="runSubmit"
86
76
  />
87
77
  <template v-if="onDelete || onSubmit" #footer>
@@ -105,7 +95,7 @@ defineExpose({ setFormValues })
105
95
  icon="copy_all"
106
96
  flat
107
97
  :value="duplicateText || 'Duplicate'"
108
- @click="onDuplicate"
98
+ @click="onDuplicate?.(formData)"
109
99
  />
110
100
  <Btn v-if="onSubmit" :value="submitText || 'Submit'" @click="runSubmit" />
111
101
  </div>
@@ -1,79 +1,85 @@
1
- <script setup lang="ts">
2
- import type { BglFormSchemaT, BglFormSchemaFnT, Field } from '@bagelink/vue'
1
+ <script setup lang="ts" generic="T extends {[key:string]:any}">
2
+ import type { BglFormSchemaFnT, Field } from '@bagelink/vue'
3
3
  import type { VNode } from 'vue'
4
- import { watch } from 'vue'
4
+ import { onMounted, watch, ref } from 'vue'
5
5
  import { useSchemaField } from '../../composables/useSchemaField'
6
6
 
7
- interface Props {
8
- modelValue?: Record<string, any>
9
- schema?: BglFormSchemaFnT
7
+ export interface BagelFormProps<T extends { [key: string]: any }> {
8
+ modelValue?: T
9
+ schema?: BglFormSchemaFnT<T>
10
10
  }
11
11
 
12
- const props = withDefaults(defineProps<Props>(), {
12
+ const props = withDefaults(defineProps<BagelFormProps<T>>(), {
13
13
  modelValue: undefined,
14
14
  schema: undefined
15
15
  })
16
16
 
17
17
  const emit = defineEmits<{
18
- (e: 'update:modelValue', value: Record<string, any>): void
19
- (e: 'submit', value: Record<string, any>): void
18
+ (e: 'update:modelValue', value: T): void
19
+ (e: 'submit', value: T): void
20
20
  }>()
21
21
 
22
- const form = $ref<HTMLFormElement>()
23
- let formData = $ref(props.modelValue ? { ...props.modelValue } : {})
24
- let initialFormData = $ref(props.modelValue ? { ...props.modelValue } : {})
22
+ const form = ref<HTMLFormElement>()
23
+ const formData = ref<T>(structuredClone(props.modelValue ?? {} as T))
24
+ const initialFormData = ref<T>(structuredClone(props.modelValue ?? {} as T))
25
+
26
+ onMounted(() => {
27
+ if (props.modelValue) {
28
+ initialFormData.value = structuredClone(props.modelValue)
29
+ }
30
+ })
25
31
 
26
32
  // Keep formData in sync with modelValue prop only if it's provided
27
33
  watch(() => props.modelValue, (newValue) => {
28
34
  if (newValue !== undefined) {
29
- formData = { ...newValue }
35
+ formData.value = structuredClone(newValue)
30
36
  }
31
37
  }, { immediate: true, deep: true })
32
38
 
33
- const resolvedSchema = $computed<BglFormSchemaT | undefined>(() => {
39
+ const resolvedSchema = $computed<BglFormSchemaFnT<T> | undefined>(() => {
34
40
  if (!props.schema) return undefined
35
41
  return typeof props.schema === 'function' ? props.schema() : props.schema
36
42
  })
37
43
 
38
44
  const isDirty = $computed(() => {
39
- const current = JSON.stringify(formData)
40
- const initial = JSON.stringify(initialFormData)
45
+ const current = JSON.stringify(formData.value)
46
+ const initial = JSON.stringify(initialFormData.value)
41
47
  return current !== initial
42
48
  })
43
49
 
44
50
  function updateFormData(fieldId: string, value: any) {
45
- formData = {
46
- ...formData,
51
+ formData.value = {
52
+ ...formData.value,
47
53
  [fieldId]: value
48
54
  }
49
- emit('update:modelValue', formData)
55
+ emit('update:modelValue', formData.value)
50
56
  }
51
57
 
52
58
  function handleSubmit() {
53
- emit('submit', formData)
54
- initialFormData = { ...formData }
59
+ emit('submit', formData.value)
60
+ initialFormData.value = structuredClone(formData.value)
55
61
  }
56
62
 
57
63
  function shouldRenderField(field: Field): boolean {
58
64
  const condition = field.vIf ?? field['v-if']
59
65
  if (condition === undefined) return true
60
66
  return typeof condition === 'function'
61
- ? condition(formData[field.id as string], formData)
67
+ ? condition(formData.value[field.id as keyof T], formData.value)
62
68
  : !!condition
63
69
  }
64
70
 
65
71
  function validateForm() {
66
- if (!form) return false
67
- return form.reportValidity()
72
+ if (!form.value) return false
73
+ return form.value.reportValidity()
68
74
  }
69
75
 
70
- const { renderField } = useSchemaField<Record<string, any>>({
76
+ const { renderField } = useSchemaField<T>({
71
77
  mode: 'form',
72
- getRowData: () => formData,
78
+ getRowData: () => formData.value,
73
79
  onUpdate: (field, value) => {
74
80
  if (!field.id) return
75
81
  updateFormData(field.id, value)
76
- field.onUpdate?.(value, formData)
82
+ field.onUpdate?.(value, formData.value)
77
83
  }
78
84
  })
79
85
 
@@ -88,7 +94,7 @@ defineExpose({ form, isDirty, validateForm })
88
94
  <template>
89
95
  <form ref="form" @submit.prevent="handleSubmit">
90
96
  <template v-if="resolvedSchema">
91
- <template v-for="(field) in resolvedSchema" :key="field.id">
97
+ <template v-for="field in (resolvedSchema as Field[])" :key="field.id">
92
98
  <component :is="renderSchemaField(field)" />
93
99
  </template>
94
100
  </template>