@bagelink/vue 0.0.237 → 0.0.241
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/components/Btn.vue.d.ts +1 -1
- package/dist/components/Btn.vue.d.ts.map +1 -1
- package/dist/components/Drop.vue.d.ts +34 -0
- package/dist/components/Drop.vue.d.ts.map +1 -0
- package/dist/components/FileUploader.vue.d.ts +60 -0
- package/dist/components/FileUploader.vue.d.ts.map +1 -0
- package/dist/components/Modal.vue.d.ts.map +1 -1
- package/dist/components/ModalForm.vue.d.ts.map +1 -1
- package/dist/components/TableSchema.vue.d.ts +2 -0
- package/dist/components/TableSchema.vue.d.ts.map +1 -1
- package/dist/components/form/BglField.vue.d.ts.map +1 -1
- package/dist/components/form/BglForm.vue.d.ts.map +1 -1
- package/dist/components/form/ItemRef.vue.d.ts +1 -0
- package/dist/components/form/ItemRef.vue.d.ts.map +1 -1
- package/dist/components/form/inputs/SelectField.vue.d.ts +1 -4
- package/dist/components/form/inputs/SelectField.vue.d.ts.map +1 -1
- package/dist/components/form/inputs/TextInput.vue.d.ts +1 -1
- package/dist/components/form/inputs/TextInput.vue.d.ts.map +1 -1
- package/dist/components/form/inputs/ToggleInput.vue.d.ts +6 -6
- package/dist/index.cjs +1714 -1706
- package/dist/index.mjs +1714 -1706
- package/dist/plugins/bagel.d.ts +1 -1
- package/dist/style.css +105 -80
- package/dist/types/index.d.ts +1 -1
- package/package.json +4 -4
- package/src/components/Btn.vue +4 -1
- package/src/components/Modal.vue +4 -2
- package/src/components/ModalForm.vue +33 -6
- package/src/components/TableSchema.vue +11 -54
- package/src/components/form/BglField.vue +21 -6
- package/src/components/form/BglForm.vue +32 -6
- package/src/plugins/modal.ts +1 -1
- package/src/styles/modal.css +26 -14
- package/src/styles/theme.css +19 -4
- package/tsconfig.json +7 -3
package/dist/plugins/bagel.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { InjectionKey, Plugin } from 'vue';
|
|
2
|
-
import { Bagel } from '
|
|
2
|
+
import { Bagel } from '../../../sdk/src/index.ts';
|
|
3
3
|
export declare const bagelInjectionKey: InjectionKey<Bagel>;
|
|
4
4
|
export declare const i18nTInjectionKey: InjectionKey<(key: string) => string>;
|
|
5
5
|
export declare function useBagel(): Bagel;
|
package/dist/style.css
CHANGED
|
@@ -306,16 +306,16 @@
|
|
|
306
306
|
}
|
|
307
307
|
}
|
|
308
308
|
|
|
309
|
-
.loading[data-v-
|
|
309
|
+
.loading[data-v-1a7bde1e] {
|
|
310
310
|
border: 1px solid var(--bgl-white);
|
|
311
311
|
border-bottom: 2px solid var(--bgl-white);
|
|
312
|
-
animation: spin-
|
|
312
|
+
animation: spin-1a7bde1e 1s linear infinite;
|
|
313
313
|
border-radius: 100px;
|
|
314
314
|
width: 1rem;
|
|
315
315
|
height: 1rem;
|
|
316
316
|
margin: auto;
|
|
317
317
|
}
|
|
318
|
-
@keyframes spin-
|
|
318
|
+
@keyframes spin-1a7bde1e {
|
|
319
319
|
0% {
|
|
320
320
|
transform: rotate(0deg);
|
|
321
321
|
}
|
|
@@ -323,7 +323,7 @@
|
|
|
323
323
|
transform: rotate(360deg);
|
|
324
324
|
}
|
|
325
325
|
}
|
|
326
|
-
.btn-icon[data-v-
|
|
326
|
+
.btn-icon[data-v-1a7bde1e] {
|
|
327
327
|
height: var(--btn-height);
|
|
328
328
|
width: var(--btn-height);
|
|
329
329
|
border-radius: 100%;
|
|
@@ -333,97 +333,97 @@
|
|
|
333
333
|
flex-shrink: 0;
|
|
334
334
|
transition: var(--bgl-transition);
|
|
335
335
|
}
|
|
336
|
-
.btn[data-v-
|
|
336
|
+
.btn[data-v-1a7bde1e] {
|
|
337
337
|
padding-left: var(--btn-padding);
|
|
338
338
|
padding-right: var(--btn-padding);
|
|
339
339
|
transition: var(--bgl-transition);
|
|
340
340
|
text-decoration: none;
|
|
341
341
|
}
|
|
342
|
-
.btn[disabled="true"][data-v-
|
|
342
|
+
.btn[disabled="true"][data-v-1a7bde1e] {
|
|
343
343
|
opacity: 0.5;
|
|
344
344
|
cursor: not-allowed;
|
|
345
345
|
}
|
|
346
|
-
.btn-flex[data-v-
|
|
346
|
+
.btn-flex[data-v-1a7bde1e] {
|
|
347
347
|
display: flex;
|
|
348
348
|
align-items: center;
|
|
349
349
|
gap: 0.5rem;
|
|
350
350
|
justify-content: center;
|
|
351
351
|
}
|
|
352
|
-
.btn .icon-font[data-v-
|
|
352
|
+
.btn .icon-font[data-v-1a7bde1e] {
|
|
353
353
|
font-size: calc(var(--input-font-size) * 1.3);
|
|
354
354
|
}
|
|
355
|
-
.btn[data-v-
|
|
356
|
-
.btn-icon[data-v-
|
|
357
|
-
background-color: var(--
|
|
358
|
-
color: var(--
|
|
355
|
+
.btn[data-v-1a7bde1e],
|
|
356
|
+
.btn-icon[data-v-1a7bde1e] {
|
|
357
|
+
background-color: var(--566fc0e2);
|
|
358
|
+
color: var(--03adf93d);
|
|
359
359
|
}
|
|
360
|
-
.btn[data-v-
|
|
361
|
-
.btn-icon[data-v-
|
|
360
|
+
.btn[data-v-1a7bde1e]:hover,
|
|
361
|
+
.btn-icon[data-v-1a7bde1e]:hover {
|
|
362
362
|
filter: var(--bgl-hover-filter);
|
|
363
363
|
}
|
|
364
|
-
.btn[data-v-
|
|
365
|
-
.btn-icon[data-v-
|
|
364
|
+
.btn[data-v-1a7bde1e]:active,
|
|
365
|
+
.btn-icon[data-v-1a7bde1e]:active {
|
|
366
366
|
filter: var(--bgl-active-filter);
|
|
367
367
|
}
|
|
368
|
-
.btn.flatBtn[data-v-
|
|
368
|
+
.btn.flatBtn[data-v-1a7bde1e] {
|
|
369
369
|
padding-left: var(--btn-padding);
|
|
370
370
|
padding-right: var(--btn-padding);
|
|
371
371
|
background: transparent;
|
|
372
372
|
}
|
|
373
|
-
.btn-icon.flatBtn[data-v-
|
|
373
|
+
.btn-icon.flatBtn[data-v-1a7bde1e] {
|
|
374
374
|
background: transparent;
|
|
375
375
|
}
|
|
376
|
-
.btn.flatBtn[data-v-
|
|
377
|
-
.btn-icon.flatBtn[data-v-
|
|
376
|
+
.btn.flatBtn[data-v-1a7bde1e]:hover,
|
|
377
|
+
.btn-icon.flatBtn[data-v-1a7bde1e]:hover {
|
|
378
378
|
filter: var(--bgl-active-filter);
|
|
379
379
|
}
|
|
380
|
-
.btn.flatBtn[data-v-
|
|
381
|
-
.btn-icon.flatBtn[data-v-
|
|
380
|
+
.btn.flatBtn[data-v-1a7bde1e]:active,
|
|
381
|
+
.btn-icon.flatBtn[data-v-1a7bde1e]:active {
|
|
382
382
|
background: var(--bgl-white);
|
|
383
383
|
filter: var(--bgl-hover-filter);
|
|
384
384
|
}
|
|
385
|
-
.btn.flatBtn.red[data-v-
|
|
386
|
-
.btn-icon.flatBtn.red[data-v-
|
|
385
|
+
.btn.flatBtn.red[data-v-1a7bde1e],
|
|
386
|
+
.btn-icon.flatBtn.red[data-v-1a7bde1e] {
|
|
387
387
|
color: var(--bgl-red);
|
|
388
388
|
}
|
|
389
|
-
.btn.flatBtn.light[data-v-
|
|
390
|
-
.btn-icon.flatBtn.light[data-v-
|
|
389
|
+
.btn.flatBtn.light[data-v-1a7bde1e],
|
|
390
|
+
.btn-icon.flatBtn.light[data-v-1a7bde1e] {
|
|
391
391
|
color: var(--bgl-primary-tint);
|
|
392
392
|
}
|
|
393
|
-
.btn.flatBtn.black[data-v-
|
|
394
|
-
.btn-icon.flatBtn.black[data-v-
|
|
393
|
+
.btn.flatBtn.black[data-v-1a7bde1e],
|
|
394
|
+
.btn-icon.flatBtn.black[data-v-1a7bde1e] {
|
|
395
395
|
color: var(--bgl-black);
|
|
396
396
|
}
|
|
397
|
-
.btn.flatBtn.gray[data-v-
|
|
398
|
-
.btn-icon.flatBtn.gray[data-v-
|
|
397
|
+
.btn.flatBtn.gray[data-v-1a7bde1e],
|
|
398
|
+
.btn-icon.flatBtn.gray[data-v-1a7bde1e] {
|
|
399
399
|
color: var(--bgl-gray);
|
|
400
400
|
}
|
|
401
|
-
.btn.thin[data-v-
|
|
401
|
+
.btn.thin[data-v-1a7bde1e] {
|
|
402
402
|
padding-left: calc(var(--btn-padding) / 2);
|
|
403
403
|
padding-right: calc(var(--btn-padding) / 2);
|
|
404
404
|
}
|
|
405
|
-
.btn.round[data-v-
|
|
405
|
+
.btn.round[data-v-1a7bde1e] {
|
|
406
406
|
border-radius: calc(var(--btn-border-radius) * 2);
|
|
407
407
|
}
|
|
408
|
-
.btn-icon.thin[data-v-
|
|
408
|
+
.btn-icon.thin[data-v-1a7bde1e] {
|
|
409
409
|
height: calc(var(--btn-height) / 1.5);
|
|
410
410
|
width: calc(var(--btn-height) / 1.5);
|
|
411
411
|
line-height: 1;
|
|
412
412
|
}
|
|
413
|
-
[dir="rtl"] .icon-font[data-v-
|
|
413
|
+
[dir="rtl"] .icon-font[data-v-1a7bde1e] {
|
|
414
414
|
transform: rotateY(180deg);
|
|
415
415
|
}
|
|
416
|
-
.btn-border[data-v-
|
|
417
|
-
outline: 1px solid var(--
|
|
418
|
-
color: var(--
|
|
416
|
+
.btn-border[data-v-1a7bde1e] {
|
|
417
|
+
outline: 1px solid var(--566fc0e2);
|
|
418
|
+
color: var(--566fc0e2);
|
|
419
419
|
background: transparent;
|
|
420
420
|
}
|
|
421
|
-
.btn-border[data-v-
|
|
421
|
+
.btn-border[data-v-1a7bde1e]:hover {
|
|
422
422
|
color: var(--bgl-white);
|
|
423
|
-
background: var(--
|
|
423
|
+
background: var(--566fc0e2);
|
|
424
424
|
filter: brightness(100%);
|
|
425
425
|
}
|
|
426
|
-
.btn-border[data-v-
|
|
426
|
+
.btn-border[data-v-1a7bde1e]:active {
|
|
427
427
|
filter: brightness(80%);
|
|
428
428
|
}
|
|
429
429
|
.bg-dark {
|
|
@@ -434,23 +434,28 @@
|
|
|
434
434
|
bottom: 0;
|
|
435
435
|
background-color: rgba(0, 0, 0, 0.7);
|
|
436
436
|
z-index: 999;
|
|
437
|
-
display: flex;
|
|
438
|
-
justify-content: center;
|
|
439
|
-
align-items: center;
|
|
440
437
|
pointer-events: none;
|
|
441
438
|
opacity: 0;
|
|
442
439
|
transition: all ease-in-out 0.3s;
|
|
440
|
+
max-height: 100vh;
|
|
443
441
|
overflow: auto;
|
|
442
|
+
margin: 0 auto;
|
|
443
|
+
width: 100%;
|
|
444
|
+
text-align: center;
|
|
445
|
+
display: grid;
|
|
446
|
+
align-items: center;
|
|
444
447
|
}
|
|
445
448
|
|
|
449
|
+
|
|
446
450
|
.modal {
|
|
447
451
|
width: 96%;
|
|
448
452
|
max-width: 680px;
|
|
449
453
|
transform: scale(0.5);
|
|
450
454
|
opacity: 0;
|
|
451
455
|
transition: all ease-in-out 0.15s;
|
|
452
|
-
margin-
|
|
453
|
-
margin-
|
|
456
|
+
margin-left: auto;
|
|
457
|
+
margin-right: auto;
|
|
458
|
+
height: fit-content;
|
|
454
459
|
}
|
|
455
460
|
|
|
456
461
|
.small-modal .modal {
|
|
@@ -465,7 +470,7 @@
|
|
|
465
470
|
position: -webkit-sticky;
|
|
466
471
|
position: sticky;
|
|
467
472
|
padding-top: 1rem;
|
|
468
|
-
top:
|
|
473
|
+
top: 0rem;
|
|
469
474
|
z-index: 3;
|
|
470
475
|
background: var(--bgl-white);
|
|
471
476
|
}
|
|
@@ -478,13 +483,17 @@
|
|
|
478
483
|
inset-inline-end: -600px;
|
|
479
484
|
transform: scale(1);
|
|
480
485
|
opacity: 1;
|
|
481
|
-
position: fixed;
|
|
482
|
-
top: 20px;
|
|
483
|
-
bottom: 20px;
|
|
486
|
+
/* position: fixed; */
|
|
487
|
+
/* top: 20px; */
|
|
488
|
+
/* bottom: 20px; */
|
|
484
489
|
max-width: 600px;
|
|
485
490
|
width: 90%;
|
|
486
|
-
margin-top:
|
|
487
|
-
margin-bottom:
|
|
491
|
+
margin-top: 20px;
|
|
492
|
+
margin-bottom: 20px;
|
|
493
|
+
margin-inline-start: auto;
|
|
494
|
+
margin-inline-end: 20px;
|
|
495
|
+
min-height: calc(100vh - 40px);
|
|
496
|
+
|
|
488
497
|
}
|
|
489
498
|
|
|
490
499
|
.is-active .modal {
|
|
@@ -504,6 +513,7 @@
|
|
|
504
513
|
|
|
505
514
|
.is-side.bg-dark.is-active {
|
|
506
515
|
opacity: 1;
|
|
516
|
+
align-items: stretch;
|
|
507
517
|
}
|
|
508
518
|
|
|
509
519
|
.is-side.is-active .modal {
|
|
@@ -512,20 +522,21 @@
|
|
|
512
522
|
|
|
513
523
|
@media screen and (max-width: 910px) {
|
|
514
524
|
.tool-bar {
|
|
515
|
-
margin: -
|
|
525
|
+
margin: -1rem 0rem 1rem;
|
|
526
|
+
padding-bottom: 1rem;
|
|
516
527
|
align-items: center;
|
|
517
528
|
}
|
|
518
529
|
|
|
519
530
|
.is-active.is-side .modal {
|
|
520
|
-
|
|
531
|
+
margin-inline-end: 5%;
|
|
532
|
+
margin-inline-start: 5%;
|
|
521
533
|
}
|
|
522
534
|
}
|
|
523
|
-
|
|
524
|
-
.modal-title[data-v-6badff9e] {
|
|
535
|
+
.modal-title[data-v-766bb68f] {
|
|
525
536
|
margin-top: 0.5rem;
|
|
526
537
|
}
|
|
527
538
|
@media screen and (max-width: 910px) {
|
|
528
|
-
.modal-title[data-v-
|
|
539
|
+
.modal-title[data-v-766bb68f] {
|
|
529
540
|
margin-top: 1rem;
|
|
530
541
|
}
|
|
531
542
|
}
|
|
@@ -716,37 +727,37 @@
|
|
|
716
727
|
border-radius: var(--btn-border-radius);
|
|
717
728
|
}
|
|
718
729
|
|
|
719
|
-
.list-arrows[data-v-
|
|
730
|
+
.list-arrows[data-v-56ec9012] {
|
|
720
731
|
opacity: 0;
|
|
721
732
|
}
|
|
722
|
-
.list-arrows .icon-font[data-v-
|
|
733
|
+
.list-arrows .icon-font[data-v-56ec9012] {
|
|
723
734
|
transition: all ease-in-out 0.2s;
|
|
724
735
|
}
|
|
725
|
-
.list-arrows.sorted[data-v-
|
|
736
|
+
.list-arrows.sorted[data-v-56ec9012] {
|
|
726
737
|
opacity: 1;
|
|
727
738
|
}
|
|
728
|
-
.col img[data-v-
|
|
739
|
+
.col img[data-v-56ec9012] {
|
|
729
740
|
height: 35px;
|
|
730
741
|
margin-top: -14px;
|
|
731
742
|
margin-bottom: -14px;
|
|
732
743
|
border-radius: 5px;
|
|
733
744
|
}
|
|
734
|
-
.list-arrows.sorted .desc[data-v-
|
|
745
|
+
.list-arrows.sorted .desc[data-v-56ec9012] {
|
|
735
746
|
transform: rotate(180deg);
|
|
736
747
|
}
|
|
737
|
-
table[data-v-
|
|
748
|
+
table[data-v-56ec9012] {
|
|
738
749
|
border-collapse: separate;
|
|
739
750
|
border-spacing: 0 15px;
|
|
740
751
|
border-collapse: collapse;
|
|
741
752
|
}
|
|
742
|
-
th[data-v-
|
|
753
|
+
th[data-v-56ec9012] {
|
|
743
754
|
font-weight: 400;
|
|
744
755
|
}
|
|
745
|
-
.row[data-v-
|
|
756
|
+
.row[data-v-56ec9012] {
|
|
746
757
|
border-bottom: 1px solid var(--border-color);
|
|
747
758
|
cursor: pointer;
|
|
748
759
|
}
|
|
749
|
-
.row.first-row[data-v-
|
|
760
|
+
.row.first-row[data-v-56ec9012] {
|
|
750
761
|
font-size: 0.8rem;
|
|
751
762
|
color: var(--bgl-black-tint);
|
|
752
763
|
position: sticky;
|
|
@@ -756,7 +767,7 @@ th[data-v-a167604a] {
|
|
|
756
767
|
height: 50px;
|
|
757
768
|
vertical-align: bottom;
|
|
758
769
|
}
|
|
759
|
-
.row.first-row[data-v-
|
|
770
|
+
.row.first-row[data-v-56ec9012]::after {
|
|
760
771
|
content: "";
|
|
761
772
|
border-bottom: 1px solid var(--border-color);
|
|
762
773
|
position: absolute;
|
|
@@ -764,11 +775,11 @@ th[data-v-a167604a] {
|
|
|
764
775
|
right: 0;
|
|
765
776
|
bottom: -1px;
|
|
766
777
|
}
|
|
767
|
-
.first-row .col[data-v-
|
|
778
|
+
.first-row .col[data-v-56ec9012] {
|
|
768
779
|
cursor: pointer;
|
|
769
780
|
background: var(--bgl-white);
|
|
770
781
|
}
|
|
771
|
-
.col[data-v-
|
|
782
|
+
.col[data-v-56ec9012] {
|
|
772
783
|
white-space: nowrap;
|
|
773
784
|
padding: 14px;
|
|
774
785
|
transition: var(--bgl-transition);
|
|
@@ -777,16 +788,16 @@ th[data-v-a167604a] {
|
|
|
777
788
|
padding-right: 1rem;
|
|
778
789
|
align-items: center;
|
|
779
790
|
}
|
|
780
|
-
.col>div[data-v-
|
|
791
|
+
.col>div[data-v-56ec9012] {
|
|
781
792
|
display: flex;
|
|
782
793
|
gap: 0.5rem;
|
|
783
794
|
}
|
|
784
|
-
.max-col-width[data-v-
|
|
795
|
+
.max-col-width[data-v-56ec9012] {
|
|
785
796
|
max-width: 30vw;
|
|
786
797
|
overflow: hidden;
|
|
787
798
|
text-overflow: ellipsis;
|
|
788
799
|
}
|
|
789
|
-
.col.check .icon-font[data-v-
|
|
800
|
+
.col.check .icon-font[data-v-56ec9012] {
|
|
790
801
|
border-radius: 100%;
|
|
791
802
|
background: var(--bgl-blue-20);
|
|
792
803
|
color: var(--bgl-primary);
|
|
@@ -797,27 +808,27 @@ th[data-v-a167604a] {
|
|
|
797
808
|
justify-content: center;
|
|
798
809
|
margin-top: -2px;
|
|
799
810
|
}
|
|
800
|
-
.rows[data-v-
|
|
811
|
+
.rows[data-v-56ec9012] {
|
|
801
812
|
font-size: 0.8125em;
|
|
802
813
|
}
|
|
803
|
-
.table-list[data-v-
|
|
814
|
+
.table-list[data-v-56ec9012] {
|
|
804
815
|
height: 100%;
|
|
805
816
|
position: relative;
|
|
806
817
|
padding-left: 0 !important;
|
|
807
818
|
padding-right: 0 !important;
|
|
808
819
|
overflow: auto;
|
|
809
820
|
}
|
|
810
|
-
.BagelTable .table-list[data-v-
|
|
821
|
+
.BagelTable .table-list[data-v-56ec9012] {
|
|
811
822
|
overflow: unset;
|
|
812
823
|
}
|
|
813
|
-
.row-item[data-v-
|
|
824
|
+
.row-item[data-v-56ec9012] {
|
|
814
825
|
height: 50px;
|
|
815
826
|
transition: all 200ms ease;
|
|
816
827
|
}
|
|
817
|
-
.row-item[data-v-
|
|
828
|
+
.row-item[data-v-56ec9012]:hover {
|
|
818
829
|
background: var(--bgl-gray-light);
|
|
819
830
|
}
|
|
820
|
-
.infinite-wrapper[data-v-
|
|
831
|
+
.infinite-wrapper[data-v-56ec9012] {
|
|
821
832
|
overflow-y: auto;
|
|
822
833
|
width: 100%;
|
|
823
834
|
}
|
|
@@ -2859,10 +2870,17 @@ h6 {}
|
|
|
2859
2870
|
font-weight: 600;
|
|
2860
2871
|
font-size: 20px;
|
|
2861
2872
|
margin-top: 0.5rem;
|
|
2862
|
-
margin-bottom:
|
|
2873
|
+
margin-bottom: 0 !important;
|
|
2863
2874
|
width: 100%;
|
|
2864
2875
|
-webkit-padding-end: 40px;
|
|
2865
2876
|
padding-inline-end: 40px;
|
|
2877
|
+
line-height: 2;
|
|
2878
|
+
display: -webkit-box;
|
|
2879
|
+
max-width: 100%;
|
|
2880
|
+
-webkit-line-clamp: 1;
|
|
2881
|
+
-webkit-box-orient: vertical;
|
|
2882
|
+
overflow: hidden;
|
|
2883
|
+
text-overflow: ellipsis;
|
|
2866
2884
|
}
|
|
2867
2885
|
.modal-footer {
|
|
2868
2886
|
gap: 1rem;
|
|
@@ -2870,6 +2888,13 @@ h6 {}
|
|
|
2870
2888
|
justify-content: space-between;
|
|
2871
2889
|
align-items: center;
|
|
2872
2890
|
}
|
|
2891
|
+
.modal-footer>div {
|
|
2892
|
+
gap: 1rem;
|
|
2893
|
+
display: flex;
|
|
2894
|
+
justify-content: space-between;
|
|
2895
|
+
align-items: center;
|
|
2896
|
+
gap: 0;
|
|
2897
|
+
}
|
|
2873
2898
|
* {
|
|
2874
2899
|
box-sizing: border-box;
|
|
2875
2900
|
}
|
|
@@ -3180,7 +3205,7 @@ h6 {}
|
|
|
3180
3205
|
}
|
|
3181
3206
|
.list-view {
|
|
3182
3207
|
grid-area: list-view;
|
|
3183
|
-
grid-template-areas: "list-header"
|
|
3208
|
+
grid-template-areas: "list-header""list-content";
|
|
3184
3209
|
grid-template-columns: 1fr;
|
|
3185
3210
|
overflow-y: auto;
|
|
3186
3211
|
grid-template-rows: -webkit-max-content 1fr;
|
|
@@ -3204,7 +3229,7 @@ h6 {}
|
|
|
3204
3229
|
transform: translateX(-20px);
|
|
3205
3230
|
opacity: 0;
|
|
3206
3231
|
}
|
|
3207
|
-
.grid
|
|
3232
|
+
.grid>* {
|
|
3208
3233
|
min-height: 0;
|
|
3209
3234
|
}
|
|
3210
3235
|
.view-wrapper {
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export type { MaterialIcons } from './materialIcons';
|
|
2
|
-
export type { Tables, TableToTypeMapping } from '
|
|
2
|
+
export type { Tables, TableToTypeMapping } from '../../../sdk/src/index.ts';
|
|
3
3
|
export type { StorageFile } from './file';
|
|
4
4
|
export type { NavLink } from '../components/NavBar.vue';
|
|
5
5
|
export * from './BtnOptions';
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bagelink/vue",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.0.
|
|
4
|
+
"version": "0.0.241",
|
|
5
5
|
"description": "Bagel core sdk packages",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "Neveh Allon",
|
|
@@ -51,8 +51,8 @@
|
|
|
51
51
|
"./vite.config.ts"
|
|
52
52
|
],
|
|
53
53
|
"devDependencies": {
|
|
54
|
-
"@vue-macros/reactivity-transform": "^0.4.
|
|
55
|
-
"vue": "^3.4.
|
|
54
|
+
"@vue-macros/reactivity-transform": "^0.4.3",
|
|
55
|
+
"vue": "^3.4.15"
|
|
56
56
|
},
|
|
57
57
|
"peerDependencies": {
|
|
58
58
|
"@bagelink/sdk": "*",
|
|
@@ -113,7 +113,7 @@
|
|
|
113
113
|
"access": "public"
|
|
114
114
|
},
|
|
115
115
|
"dependencies": {
|
|
116
|
-
"type-fest": "^4.10.
|
|
116
|
+
"type-fest": "^4.10.2",
|
|
117
117
|
"vue-multiselect": "3.0.0-beta.3"
|
|
118
118
|
},
|
|
119
119
|
"scripts": {
|
package/src/components/Btn.vue
CHANGED
|
@@ -59,7 +59,10 @@ const props = withDefaults(
|
|
|
59
59
|
);
|
|
60
60
|
|
|
61
61
|
const computedTheme = $computed(
|
|
62
|
-
() =>
|
|
62
|
+
() => {
|
|
63
|
+
if (props.disabled) return 'gray-light';
|
|
64
|
+
return (props?.color || props?.theme);
|
|
65
|
+
},
|
|
63
66
|
);
|
|
64
67
|
|
|
65
68
|
const computedDefaultColors = $computed(
|
package/src/components/Modal.vue
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div
|
|
3
|
-
|
|
2
|
+
<div
|
|
3
|
+
class="bg-dark" :class="{ 'is-side': side, 'is-active': isActive }"
|
|
4
|
+
@click="() => (dismissable ? closeModal() : '')" @keydown.esc="closeModal"
|
|
5
|
+
>
|
|
4
6
|
<Card class="modal" @click.stop>
|
|
5
7
|
<header class="tool-bar">
|
|
6
8
|
<slot name="toolbar" />
|
|
@@ -1,12 +1,39 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<Modal
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
<Modal
|
|
3
|
+
:side="side"
|
|
4
|
+
ref="modal"
|
|
5
|
+
:dismissable="dismissable"
|
|
6
|
+
:title="title"
|
|
7
|
+
>
|
|
8
|
+
<BagelForm
|
|
9
|
+
v-model="formData"
|
|
10
|
+
:schema="computedFormSchema"
|
|
11
|
+
/>
|
|
12
|
+
<template
|
|
13
|
+
#footer
|
|
14
|
+
v-if="onDelete || onSubmit"
|
|
15
|
+
>
|
|
5
16
|
<div>
|
|
6
|
-
<Btn
|
|
7
|
-
|
|
17
|
+
<Btn
|
|
18
|
+
thin
|
|
19
|
+
flat
|
|
20
|
+
value="Cancel"
|
|
21
|
+
@click="closeModal()"
|
|
22
|
+
/>
|
|
23
|
+
<Btn
|
|
24
|
+
thin
|
|
25
|
+
icon="delete"
|
|
26
|
+
v-if="onDelete"
|
|
27
|
+
flat
|
|
28
|
+
value="Delete"
|
|
29
|
+
@click="runDelete()"
|
|
30
|
+
color="red"
|
|
31
|
+
/>
|
|
8
32
|
</div>
|
|
9
|
-
<Btn
|
|
33
|
+
<Btn
|
|
34
|
+
value="Submit"
|
|
35
|
+
@click="runSubmit()"
|
|
36
|
+
/>
|
|
10
37
|
</template>
|
|
11
38
|
</Modal>
|
|
12
39
|
</template>
|
|
@@ -2,62 +2,21 @@
|
|
|
2
2
|
<div class="table-list-wrap h-100">
|
|
3
3
|
<table class="infinite-wrapper">
|
|
4
4
|
<thead class="row first-row">
|
|
5
|
-
<th
|
|
6
|
-
class="col"
|
|
7
|
-
v-for="field in computedSchema"
|
|
8
|
-
:key="field.id"
|
|
9
|
-
@click="sort(field?.id || '')"
|
|
10
|
-
>
|
|
5
|
+
<th class="col" v-for="field in computedSchema" :key="field.id" @click="sort(field?.id || '')">
|
|
11
6
|
<div class="flex">
|
|
12
7
|
{{ field.id }}
|
|
13
|
-
<div
|
|
14
|
-
class="
|
|
15
|
-
:class="{ sorted: sortField === field.id }"
|
|
16
|
-
>
|
|
17
|
-
<MaterialIcon
|
|
18
|
-
:class="{ desc: sortDirection === 'DESC' }"
|
|
19
|
-
icon="keyboard_arrow_up"
|
|
20
|
-
/>
|
|
8
|
+
<div class="list-arrows" :class="{ sorted: sortField === field.id }">
|
|
9
|
+
<MaterialIcon :class="{ desc: sortDirection === 'DESC' }" icon="keyboard_arrow_up" />
|
|
21
10
|
</div>
|
|
22
11
|
</div>
|
|
23
12
|
</th>
|
|
24
13
|
</thead>
|
|
25
|
-
<tbody
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
>
|
|
30
|
-
<tr
|
|
31
|
-
@click="selectElement(row)"
|
|
32
|
-
class="row row-item position-relative"
|
|
33
|
-
v-for="row in data"
|
|
34
|
-
:key="row.id"
|
|
35
|
-
>
|
|
36
|
-
<td
|
|
37
|
-
class="col"
|
|
38
|
-
v-for="field in computedSchema"
|
|
39
|
-
:key="`${field.id}-${row.id}`"
|
|
40
|
-
>
|
|
41
|
-
<slot
|
|
42
|
-
v-if="field.id && slots[field.id]"
|
|
43
|
-
:name="field.id"
|
|
44
|
-
:row="row"
|
|
45
|
-
:field="field"
|
|
46
|
-
/>
|
|
14
|
+
<tbody ref="infinite" class="rows infinite" :class="{ loading }">
|
|
15
|
+
<tr v-for="row in data" :key="row.id" @click="selectElement(row)" class="row row-item position-relative">
|
|
16
|
+
<td class="col" v-for="field in computedSchema" :key="`${field.id}-${row.id}`">
|
|
17
|
+
<slot v-if="field.id && slots[field.id]" :name="field.id" :row="row" :field="field" />
|
|
47
18
|
<div v-else>
|
|
48
|
-
<
|
|
49
|
-
:is="field.$el || 'div'"
|
|
50
|
-
v-if="iffer(field, row)"
|
|
51
|
-
v-bind="bindAttrs(field.attrs, denullify(row, field.id), row)"
|
|
52
|
-
:class="classify(denullify(row, field.id), row, field.class, field.attrs?.class)"
|
|
53
|
-
:src="field.$el === 'img' && field.id ? row[field.id]?.url : ''"
|
|
54
|
-
:modelValue="field.id ? row[field.id] : ''"
|
|
55
|
-
@update:modelValue="($event: any) => field?.onUpdate?.($event, denullify(row, field.id), row)"
|
|
56
|
-
>
|
|
57
|
-
{{
|
|
58
|
-
field?.transform?.(denullify(row, field.id), row) || denullify(row, field.id) || ""
|
|
59
|
-
}}
|
|
60
|
-
</component>
|
|
19
|
+
<BglField :field="field" :modelValue="row" />
|
|
61
20
|
</div>
|
|
62
21
|
</td>
|
|
63
22
|
</tr>
|
|
@@ -71,11 +30,8 @@
|
|
|
71
30
|
import { useSlots } from 'vue';
|
|
72
31
|
import {
|
|
73
32
|
type BglFormSchemaT,
|
|
74
|
-
bindAttrs,
|
|
75
|
-
classify,
|
|
76
|
-
denullify,
|
|
77
33
|
MaterialIcon,
|
|
78
|
-
|
|
34
|
+
BglField,
|
|
79
35
|
} from '@bagelink/vue';
|
|
80
36
|
|
|
81
37
|
const slots = useSlots();
|
|
@@ -93,7 +49,7 @@ const computedSchema = $computed(() => {
|
|
|
93
49
|
return props.schema;
|
|
94
50
|
});
|
|
95
51
|
|
|
96
|
-
const emit = defineEmits(['select']);
|
|
52
|
+
const emit = defineEmits(['select', 'orderBy']);
|
|
97
53
|
|
|
98
54
|
const selectElement = (data: Record<string, any>) => emit('select', data);
|
|
99
55
|
|
|
@@ -108,6 +64,7 @@ const sort = (fieldname: string) => {
|
|
|
108
64
|
sortField = fieldname;
|
|
109
65
|
sortDirection = 'ASC';
|
|
110
66
|
}
|
|
67
|
+
emit('orderBy', `${fieldname} ${sortDirection}`.trim());
|
|
111
68
|
};
|
|
112
69
|
</script>
|
|
113
70
|
|
|
@@ -1,11 +1,26 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<component
|
|
3
|
-
:
|
|
4
|
-
|
|
5
|
-
:
|
|
6
|
-
|
|
2
|
+
<component
|
|
3
|
+
:required="field.required"
|
|
4
|
+
v-bind="bindAttrs(field?.attrs || {}, fieldData, modelValue)"
|
|
5
|
+
:class="classify(fieldData, modelValue, field.class, field.attrs?.class)"
|
|
6
|
+
v-if="iffer(field, fieldData)"
|
|
7
|
+
:is="is"
|
|
8
|
+
:label="field.label"
|
|
9
|
+
:id="field.id"
|
|
10
|
+
:placeholder="field.placeholder || field.label"
|
|
11
|
+
v-model="fieldData"
|
|
12
|
+
:defaultValue="field.defaultValue"
|
|
13
|
+
:options="field.options"
|
|
14
|
+
:hint="field.hint"
|
|
15
|
+
@update:modelValue="($event: any) => field?.onUpdate?.($event, denullify(fieldData, field.id), formData)"
|
|
16
|
+
>
|
|
7
17
|
{{ field.transform?.(fieldData, modelValue) || fieldData || '' }}
|
|
8
|
-
<BglField
|
|
18
|
+
<BglField
|
|
19
|
+
v-model="formData"
|
|
20
|
+
v-for="(child, ii) in field.children"
|
|
21
|
+
:key="child.id || ii"
|
|
22
|
+
:field="child"
|
|
23
|
+
/>
|
|
9
24
|
</component>
|
|
10
25
|
</template>
|
|
11
26
|
|