@iankibetsh/shframework 0.7.1 → 0.7.3
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/dist/library.mjs.css +47 -15
- package/dist/library.js +185 -81
- package/dist/library.mjs +186 -82
- package/package.json +1 -1
|
@@ -31,25 +31,36 @@
|
|
|
31
31
|
opacity: 0.5;
|
|
32
32
|
}
|
|
33
33
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
--ck-z-modal: calc(var(--ck-z-default) + 999) !important;
|
|
34
|
+
.colored-toast.swal2-icon-success {
|
|
35
|
+
background-color: #a5dc86 !important;
|
|
37
36
|
}
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
37
|
+
|
|
38
|
+
.colored-toast.swal2-icon-error {
|
|
39
|
+
background-color: #f27474 !important;
|
|
41
40
|
}
|
|
42
|
-
|
|
43
|
-
|
|
41
|
+
|
|
42
|
+
.colored-toast.swal2-icon-warning {
|
|
43
|
+
background-color: #f8bb86 !important;
|
|
44
44
|
}
|
|
45
45
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
46
|
+
.colored-toast.swal2-icon-info {
|
|
47
|
+
background-color: #3fc3ee !important;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
.colored-toast.swal2-icon-question {
|
|
51
|
+
background-color: #87adbd !important;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
.colored-toast .swal2-title {
|
|
55
|
+
color: white;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
.colored-toast .swal2-close {
|
|
59
|
+
color: white;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
.colored-toast .swal2-html-container {
|
|
63
|
+
color: white;
|
|
53
64
|
}
|
|
54
65
|
|
|
55
66
|
.sh-selected-item{
|
|
@@ -67,6 +78,27 @@
|
|
|
67
78
|
margin-right: 0.255em;
|
|
68
79
|
}
|
|
69
80
|
|
|
81
|
+
:root {
|
|
82
|
+
--ck-z-default: 10555 !important;
|
|
83
|
+
--ck-z-modal: calc(var(--ck-z-default) + 999) !important;
|
|
84
|
+
}
|
|
85
|
+
.mceToolbar td {
|
|
86
|
+
display:table-row;
|
|
87
|
+
float: left;
|
|
88
|
+
}
|
|
89
|
+
.mceToolbar td:nth-of-type(11){
|
|
90
|
+
clear: left;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
@media screen and (max-width:600px) {
|
|
94
|
+
.sh-editor{
|
|
95
|
+
width: 100% !important;
|
|
96
|
+
}
|
|
97
|
+
table.mceLayout, textarea.tinyMCE {
|
|
98
|
+
width: 100% !important;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
|
|
70
102
|
.sh-forgot-link, .sh-register-link{
|
|
71
103
|
cursor: pointer;
|
|
72
104
|
}
|
package/dist/library.js
CHANGED
|
@@ -2894,6 +2894,7 @@ function getMenuCount (url) {
|
|
|
2894
2894
|
console.log(res);
|
|
2895
2895
|
});
|
|
2896
2896
|
}
|
|
2897
|
+
|
|
2897
2898
|
const Toast = Swal__default["default"].mixin({
|
|
2898
2899
|
toast: true,
|
|
2899
2900
|
position: 'top-end',
|
|
@@ -2909,10 +2910,16 @@ const Toast = Swal__default["default"].mixin({
|
|
|
2909
2910
|
toast.addEventListener('mouseleave', Swal__default["default"].resumeTimer);
|
|
2910
2911
|
}
|
|
2911
2912
|
});
|
|
2912
|
-
function showToast (message, toastType) {
|
|
2913
|
+
function showToast (message, toastType, position) {
|
|
2913
2914
|
if (!toastType) {
|
|
2914
2915
|
toastType = 'success';
|
|
2915
2916
|
}
|
|
2917
|
+
if(!position){
|
|
2918
|
+
position = window.swalPosition;
|
|
2919
|
+
}
|
|
2920
|
+
Toast.mixin({
|
|
2921
|
+
position: position
|
|
2922
|
+
});
|
|
2916
2923
|
Toast.fire({
|
|
2917
2924
|
icon: toastType,
|
|
2918
2925
|
title: message
|
|
@@ -2978,7 +2985,7 @@ var shRepo = {
|
|
|
2978
2985
|
var script$5 = {
|
|
2979
2986
|
name: 'sh-table',
|
|
2980
2987
|
props: ['endPoint', 'headers', 'pageCount', 'actions', 'hideCount', 'hideLoadMore', 'links', 'reload', 'hideSearch', 'sharedData', 'searchPlaceholder', 'event', 'displayMore', 'displayMoreBtnClass', 'moreDetailsColumns', 'moreDetailsFields', 'hasDownload', 'downloadFields', 'tableHover'],
|
|
2981
|
-
inject: ['channel'
|
|
2988
|
+
inject: ['channel'],
|
|
2982
2989
|
data () {
|
|
2983
2990
|
return {
|
|
2984
2991
|
order_by: '',
|
|
@@ -2994,11 +3001,20 @@ var script$5 = {
|
|
|
2994
3001
|
moreDetailsId: null,
|
|
2995
3002
|
moreDetailsModel: null,
|
|
2996
3003
|
downloading: false,
|
|
2997
|
-
appUrl: window.VITE_APP_API_URL
|
|
3004
|
+
appUrl: window.VITE_APP_API_URL,
|
|
3005
|
+
hasCanvas: 0,
|
|
3006
|
+
selectedRecord: null
|
|
2998
3007
|
}
|
|
2999
3008
|
},
|
|
3000
3009
|
mounted () {
|
|
3001
3010
|
if (this.event) ;
|
|
3011
|
+
if(this.actions && this.actions.actions){
|
|
3012
|
+
this.actions.actions.forEach(action => {
|
|
3013
|
+
if(action.canvasComponent){
|
|
3014
|
+
this.hasCanvas = true;
|
|
3015
|
+
}
|
|
3016
|
+
});
|
|
3017
|
+
}
|
|
3002
3018
|
},
|
|
3003
3019
|
methods: {
|
|
3004
3020
|
newRecordAdded: function (ev) {
|
|
@@ -3010,6 +3026,7 @@ var script$5 = {
|
|
|
3010
3026
|
console.log(event, record);
|
|
3011
3027
|
},
|
|
3012
3028
|
rowSelected: function (row) {
|
|
3029
|
+
this.selectedRecord = row;
|
|
3013
3030
|
this.$emit('rowSelected', row);
|
|
3014
3031
|
},
|
|
3015
3032
|
changeKey: function (key, value) {
|
|
@@ -3174,6 +3191,7 @@ var script$5 = {
|
|
|
3174
3191
|
this.reloadData();
|
|
3175
3192
|
},
|
|
3176
3193
|
components: {
|
|
3194
|
+
ShCanvas: script$8,
|
|
3177
3195
|
pagination: script$6
|
|
3178
3196
|
},
|
|
3179
3197
|
computed: {
|
|
@@ -3304,13 +3322,14 @@ const _hoisted_46 = {
|
|
|
3304
3322
|
key: 0,
|
|
3305
3323
|
style: {"white-space":"nowrap"}
|
|
3306
3324
|
};
|
|
3307
|
-
const _hoisted_47 = ["
|
|
3308
|
-
const _hoisted_48 =
|
|
3309
|
-
const _hoisted_49 = {
|
|
3325
|
+
const _hoisted_47 = ["href"];
|
|
3326
|
+
const _hoisted_48 = ["title", "onClick"];
|
|
3327
|
+
const _hoisted_49 = { key: 5 };
|
|
3328
|
+
const _hoisted_50 = {
|
|
3310
3329
|
key: 0,
|
|
3311
3330
|
class: "text-center"
|
|
3312
3331
|
};
|
|
3313
|
-
const
|
|
3332
|
+
const _hoisted_51 = /*#__PURE__*/vue.createElementVNode("div", { class: "text-center" }, [
|
|
3314
3333
|
/*#__PURE__*/vue.createElementVNode("div", {
|
|
3315
3334
|
class: "spinner-border",
|
|
3316
3335
|
role: "status"
|
|
@@ -3318,42 +3337,44 @@ const _hoisted_50 = /*#__PURE__*/vue.createElementVNode("div", { class: "text-ce
|
|
|
3318
3337
|
/*#__PURE__*/vue.createElementVNode("span", { class: "visually-hidden" }, "Loading...")
|
|
3319
3338
|
])
|
|
3320
3339
|
], -1 /* HOISTED */);
|
|
3321
|
-
const
|
|
3322
|
-
|
|
3340
|
+
const _hoisted_52 = [
|
|
3341
|
+
_hoisted_51
|
|
3323
3342
|
];
|
|
3324
|
-
const
|
|
3325
|
-
const
|
|
3343
|
+
const _hoisted_53 = { key: 1 };
|
|
3344
|
+
const _hoisted_54 = {
|
|
3326
3345
|
key: 2,
|
|
3327
3346
|
class: "mobile-list-items"
|
|
3328
3347
|
};
|
|
3329
|
-
const
|
|
3330
|
-
const
|
|
3348
|
+
const _hoisted_55 = ["onClick"];
|
|
3349
|
+
const _hoisted_56 = {
|
|
3331
3350
|
key: 0,
|
|
3332
3351
|
class: "mb-1 font-weight-bold text-capitalize profile-form-title"
|
|
3333
3352
|
};
|
|
3334
|
-
const
|
|
3353
|
+
const _hoisted_57 = {
|
|
3335
3354
|
key: 1,
|
|
3336
3355
|
class: "mb-1 font-weight-bold text-capitalize profile-form-title"
|
|
3337
3356
|
};
|
|
3338
|
-
const
|
|
3357
|
+
const _hoisted_58 = {
|
|
3339
3358
|
key: 2,
|
|
3340
3359
|
class: "mb-1 font-weight-bold text-capitalize profile-form-title"
|
|
3341
3360
|
};
|
|
3342
|
-
const
|
|
3343
|
-
const
|
|
3361
|
+
const _hoisted_59 = { key: 1 };
|
|
3362
|
+
const _hoisted_60 = {
|
|
3344
3363
|
key: 2,
|
|
3345
3364
|
class: "text-primary fw-bold"
|
|
3346
3365
|
};
|
|
3347
|
-
const _hoisted_60 = ["innerHTML"];
|
|
3348
3366
|
const _hoisted_61 = ["innerHTML"];
|
|
3349
3367
|
const _hoisted_62 = ["innerHTML"];
|
|
3350
|
-
const _hoisted_63 =
|
|
3351
|
-
const _hoisted_64 = {
|
|
3352
|
-
const _hoisted_65 =
|
|
3368
|
+
const _hoisted_63 = ["innerHTML"];
|
|
3369
|
+
const _hoisted_64 = /*#__PURE__*/vue.createElementVNode("hr", { class: "my-2" }, null, -1 /* HOISTED */);
|
|
3370
|
+
const _hoisted_65 = { key: 0 };
|
|
3371
|
+
const _hoisted_66 = ["href"];
|
|
3372
|
+
const _hoisted_67 = ["title", "onClick"];
|
|
3353
3373
|
|
|
3354
3374
|
function render$1(_ctx, _cache, $props, $setup, $data, $options) {
|
|
3355
3375
|
const _component_router_link = vue.resolveComponent("router-link");
|
|
3356
3376
|
const _component_pagination = vue.resolveComponent("pagination");
|
|
3377
|
+
const _component_sh_canvas = vue.resolveComponent("sh-canvas");
|
|
3357
3378
|
|
|
3358
3379
|
return (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$5, [
|
|
3359
3380
|
($props.hasDownload)
|
|
@@ -3531,27 +3552,55 @@ function render$1(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
3531
3552
|
? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 0 }, [
|
|
3532
3553
|
(!act.validator || act.validator(record))
|
|
3533
3554
|
? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 0 }, [
|
|
3534
|
-
(act.
|
|
3535
|
-
? (vue.openBlock(), vue.createElementBlock("
|
|
3555
|
+
(act.canvasId)
|
|
3556
|
+
? (vue.openBlock(), vue.createElementBlock("a", {
|
|
3536
3557
|
key: 0,
|
|
3537
|
-
|
|
3538
|
-
|
|
3539
|
-
onClick: $event => ($options.doEmitAction(act.emits,record))
|
|
3540
|
-
}, vue.toDisplayString(act.label), 11 /* TEXT, CLASS, PROPS */, _hoisted_47))
|
|
3541
|
-
: vue.createCommentVNode("v-if", true),
|
|
3542
|
-
(!act.emits)
|
|
3543
|
-
? (vue.openBlock(), vue.createBlock(_component_router_link, {
|
|
3544
|
-
key: 1,
|
|
3545
|
-
title: act.title,
|
|
3546
|
-
to: $options.replaceActionUrl(act.path,record),
|
|
3558
|
+
href: '#' + act.canvasId,
|
|
3559
|
+
"data-bs-toggle": "offcanvas",
|
|
3547
3560
|
class: vue.normalizeClass(act.class)
|
|
3548
|
-
},
|
|
3549
|
-
|
|
3550
|
-
vue.
|
|
3551
|
-
|
|
3552
|
-
|
|
3553
|
-
|
|
3554
|
-
|
|
3561
|
+
}, [
|
|
3562
|
+
(act.icon)
|
|
3563
|
+
? (vue.openBlock(), vue.createElementBlock("span", {
|
|
3564
|
+
key: 0,
|
|
3565
|
+
class: vue.normalizeClass(act.icon)
|
|
3566
|
+
}, null, 2 /* CLASS */))
|
|
3567
|
+
: vue.createCommentVNode("v-if", true),
|
|
3568
|
+
vue.createTextVNode(" " + vue.toDisplayString(act.label), 1 /* TEXT */)
|
|
3569
|
+
], 10 /* CLASS, PROPS */, _hoisted_47))
|
|
3570
|
+
: (act.emits)
|
|
3571
|
+
? (vue.openBlock(), vue.createElementBlock("button", {
|
|
3572
|
+
key: 1,
|
|
3573
|
+
title: act.title,
|
|
3574
|
+
class: vue.normalizeClass(act.class ? act.class:'btn btn-default'),
|
|
3575
|
+
onClick: $event => ($options.doEmitAction(act.emits,record))
|
|
3576
|
+
}, [
|
|
3577
|
+
(act.icon)
|
|
3578
|
+
? (vue.openBlock(), vue.createElementBlock("span", {
|
|
3579
|
+
key: 0,
|
|
3580
|
+
class: vue.normalizeClass(act.icon)
|
|
3581
|
+
}, null, 2 /* CLASS */))
|
|
3582
|
+
: vue.createCommentVNode("v-if", true),
|
|
3583
|
+
vue.createTextVNode(" " + vue.toDisplayString(act.label), 1 /* TEXT */)
|
|
3584
|
+
], 10 /* CLASS, PROPS */, _hoisted_48))
|
|
3585
|
+
: (!act.emits)
|
|
3586
|
+
? (vue.openBlock(), vue.createBlock(_component_router_link, {
|
|
3587
|
+
key: 2,
|
|
3588
|
+
title: act.title,
|
|
3589
|
+
to: $options.replaceActionUrl(act.path,record),
|
|
3590
|
+
class: vue.normalizeClass(act.class)
|
|
3591
|
+
}, {
|
|
3592
|
+
default: vue.withCtx(() => [
|
|
3593
|
+
(act.icon)
|
|
3594
|
+
? (vue.openBlock(), vue.createElementBlock("span", {
|
|
3595
|
+
key: 0,
|
|
3596
|
+
class: vue.normalizeClass(act.icon)
|
|
3597
|
+
}, null, 2 /* CLASS */))
|
|
3598
|
+
: vue.createCommentVNode("v-if", true),
|
|
3599
|
+
vue.createTextVNode(" " + vue.toDisplayString(act.label), 1 /* TEXT */)
|
|
3600
|
+
]),
|
|
3601
|
+
_: 2 /* DYNAMIC */
|
|
3602
|
+
}, 1032 /* PROPS, DYNAMIC_SLOTS */, ["title", "to", "class"]))
|
|
3603
|
+
: vue.createCommentVNode("v-if", true)
|
|
3555
3604
|
], 64 /* STABLE_FRAGMENT */))
|
|
3556
3605
|
: vue.createCommentVNode("v-if", true)
|
|
3557
3606
|
], 64 /* STABLE_FRAGMENT */))
|
|
@@ -3565,15 +3614,15 @@ function render$1(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
3565
3614
|
: vue.createCommentVNode("v-if", true)
|
|
3566
3615
|
])
|
|
3567
3616
|
], 2 /* CLASS */))
|
|
3568
|
-
: (vue.openBlock(), vue.createElementBlock("div",
|
|
3617
|
+
: (vue.openBlock(), vue.createElementBlock("div", _hoisted_49, [
|
|
3569
3618
|
($data.loading === 'loading')
|
|
3570
|
-
? (vue.openBlock(), vue.createElementBlock("div",
|
|
3619
|
+
? (vue.openBlock(), vue.createElementBlock("div", _hoisted_50, _hoisted_52))
|
|
3571
3620
|
: ($data.loading === 'error')
|
|
3572
|
-
? (vue.openBlock(), vue.createElementBlock("div",
|
|
3621
|
+
? (vue.openBlock(), vue.createElementBlock("div", _hoisted_53, [
|
|
3573
3622
|
vue.createElementVNode("span", null, vue.toDisplayString($data.loading_error), 1 /* TEXT */)
|
|
3574
3623
|
]))
|
|
3575
3624
|
: ($data.loading === 'done')
|
|
3576
|
-
? (vue.openBlock(), vue.createElementBlock("div",
|
|
3625
|
+
? (vue.openBlock(), vue.createElementBlock("div", _hoisted_54, [
|
|
3577
3626
|
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList($data.records, (record, index) => {
|
|
3578
3627
|
return (vue.openBlock(), vue.createElementBlock(vue.Fragment, {
|
|
3579
3628
|
key: record.id
|
|
@@ -3588,10 +3637,10 @@ function render$1(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
3588
3637
|
key: key[0]
|
|
3589
3638
|
}, [
|
|
3590
3639
|
(typeof key === 'string' )
|
|
3591
|
-
? (vue.openBlock(), vue.createElementBlock("p",
|
|
3640
|
+
? (vue.openBlock(), vue.createElementBlock("p", _hoisted_56, vue.toDisplayString(key.replace(/_/g, ' ')), 1 /* TEXT */))
|
|
3592
3641
|
: (typeof key === 'function')
|
|
3593
|
-
? (vue.openBlock(), vue.createElementBlock("p",
|
|
3594
|
-
: (vue.openBlock(), vue.createElementBlock("p",
|
|
3642
|
+
? (vue.openBlock(), vue.createElementBlock("p", _hoisted_57, vue.toDisplayString(key(null).replace(/_/g, ' ')), 1 /* TEXT */))
|
|
3643
|
+
: (vue.openBlock(), vue.createElementBlock("p", _hoisted_58, vue.toDisplayString(key[1].replace(/_/g, ' ')), 1 /* TEXT */)),
|
|
3595
3644
|
vue.createElementVNode("span", null, [
|
|
3596
3645
|
(typeof key === 'string' && $props.links && $props.links[key])
|
|
3597
3646
|
? (vue.openBlock(), vue.createBlock(_component_router_link, {
|
|
@@ -3601,29 +3650,29 @@ function render$1(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
3601
3650
|
innerHTML: record[key]
|
|
3602
3651
|
}, null, 8 /* PROPS */, ["to", "class", "innerHTML"]))
|
|
3603
3652
|
: ($options.getFieldType(key) === 'numeric')
|
|
3604
|
-
? (vue.openBlock(), vue.createElementBlock("span",
|
|
3653
|
+
? (vue.openBlock(), vue.createElementBlock("span", _hoisted_59, vue.toDisplayString(Intl.NumberFormat().format(record[key])), 1 /* TEXT */))
|
|
3605
3654
|
: ($options.getFieldType(key) === 'money')
|
|
3606
|
-
? (vue.openBlock(), vue.createElementBlock("span",
|
|
3655
|
+
? (vue.openBlock(), vue.createElementBlock("span", _hoisted_60, "KES " + vue.toDisplayString(Intl.NumberFormat().format(record[key])), 1 /* TEXT */))
|
|
3607
3656
|
: (typeof key === 'string')
|
|
3608
3657
|
? (vue.openBlock(), vue.createElementBlock("span", {
|
|
3609
3658
|
key: 3,
|
|
3610
3659
|
innerHTML: record[key]
|
|
3611
|
-
}, null, 8 /* PROPS */,
|
|
3660
|
+
}, null, 8 /* PROPS */, _hoisted_61))
|
|
3612
3661
|
: (typeof key === 'function')
|
|
3613
3662
|
? (vue.openBlock(), vue.createElementBlock("span", {
|
|
3614
3663
|
key: 4,
|
|
3615
3664
|
innerHTML: key(record, index )
|
|
3616
|
-
}, null, 8 /* PROPS */,
|
|
3665
|
+
}, null, 8 /* PROPS */, _hoisted_62))
|
|
3617
3666
|
: (vue.openBlock(), vue.createElementBlock("span", {
|
|
3618
3667
|
key: 5,
|
|
3619
3668
|
innerHTML: record[key[0]]
|
|
3620
|
-
}, null, 8 /* PROPS */,
|
|
3669
|
+
}, null, 8 /* PROPS */, _hoisted_63))
|
|
3621
3670
|
]),
|
|
3622
|
-
|
|
3671
|
+
_hoisted_64
|
|
3623
3672
|
], 64 /* STABLE_FRAGMENT */))
|
|
3624
3673
|
}), 128 /* KEYED_FRAGMENT */)),
|
|
3625
3674
|
($props.actions)
|
|
3626
|
-
? (vue.openBlock(), vue.createElementBlock("div",
|
|
3675
|
+
? (vue.openBlock(), vue.createElementBlock("div", _hoisted_65, [
|
|
3627
3676
|
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList($props.actions.actions, (act) => {
|
|
3628
3677
|
return (vue.openBlock(), vue.createElementBlock(vue.Fragment, {
|
|
3629
3678
|
key: act.path
|
|
@@ -3632,27 +3681,55 @@ function render$1(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
3632
3681
|
? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 0 }, [
|
|
3633
3682
|
(!act.validator || act.validator(record))
|
|
3634
3683
|
? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 0 }, [
|
|
3635
|
-
(act.
|
|
3636
|
-
? (vue.openBlock(), vue.createElementBlock("
|
|
3684
|
+
(act.canvasId)
|
|
3685
|
+
? (vue.openBlock(), vue.createElementBlock("a", {
|
|
3637
3686
|
key: 0,
|
|
3638
|
-
|
|
3639
|
-
|
|
3640
|
-
onClick: $event => ($options.doEmitAction(act.emits,record))
|
|
3641
|
-
}, vue.toDisplayString(act.label), 11 /* TEXT, CLASS, PROPS */, _hoisted_65))
|
|
3642
|
-
: vue.createCommentVNode("v-if", true),
|
|
3643
|
-
(!act.emits)
|
|
3644
|
-
? (vue.openBlock(), vue.createBlock(_component_router_link, {
|
|
3645
|
-
key: 1,
|
|
3646
|
-
title: act.title,
|
|
3647
|
-
to: $options.replaceActionUrl(act.path,record),
|
|
3687
|
+
href: '#' + act.canvasId,
|
|
3688
|
+
"data-bs-toggle": "offcanvas",
|
|
3648
3689
|
class: vue.normalizeClass(act.class)
|
|
3649
|
-
},
|
|
3650
|
-
|
|
3651
|
-
vue.
|
|
3652
|
-
|
|
3653
|
-
|
|
3654
|
-
|
|
3655
|
-
|
|
3690
|
+
}, [
|
|
3691
|
+
(act.icon)
|
|
3692
|
+
? (vue.openBlock(), vue.createElementBlock("span", {
|
|
3693
|
+
key: 0,
|
|
3694
|
+
class: vue.normalizeClass(act.icon)
|
|
3695
|
+
}, null, 2 /* CLASS */))
|
|
3696
|
+
: vue.createCommentVNode("v-if", true),
|
|
3697
|
+
vue.createTextVNode(" " + vue.toDisplayString(act.label), 1 /* TEXT */)
|
|
3698
|
+
], 10 /* CLASS, PROPS */, _hoisted_66))
|
|
3699
|
+
: (act.emits)
|
|
3700
|
+
? (vue.openBlock(), vue.createElementBlock("button", {
|
|
3701
|
+
key: 1,
|
|
3702
|
+
title: act.title,
|
|
3703
|
+
class: vue.normalizeClass(act.class ? act.class:'btn btn-default'),
|
|
3704
|
+
onClick: $event => ($options.doEmitAction(act.emits,record))
|
|
3705
|
+
}, [
|
|
3706
|
+
(act.icon)
|
|
3707
|
+
? (vue.openBlock(), vue.createElementBlock("span", {
|
|
3708
|
+
key: 0,
|
|
3709
|
+
class: vue.normalizeClass(act.icon)
|
|
3710
|
+
}, null, 2 /* CLASS */))
|
|
3711
|
+
: vue.createCommentVNode("v-if", true),
|
|
3712
|
+
vue.createTextVNode(" " + vue.toDisplayString(act.label), 1 /* TEXT */)
|
|
3713
|
+
], 10 /* CLASS, PROPS */, _hoisted_67))
|
|
3714
|
+
: (!act.emits)
|
|
3715
|
+
? (vue.openBlock(), vue.createBlock(_component_router_link, {
|
|
3716
|
+
key: 2,
|
|
3717
|
+
title: act.title,
|
|
3718
|
+
to: $options.replaceActionUrl(act.path,record),
|
|
3719
|
+
class: vue.normalizeClass(act.class)
|
|
3720
|
+
}, {
|
|
3721
|
+
default: vue.withCtx(() => [
|
|
3722
|
+
(act.icon)
|
|
3723
|
+
? (vue.openBlock(), vue.createElementBlock("span", {
|
|
3724
|
+
key: 0,
|
|
3725
|
+
class: vue.normalizeClass(act.icon)
|
|
3726
|
+
}, null, 2 /* CLASS */))
|
|
3727
|
+
: vue.createCommentVNode("v-if", true),
|
|
3728
|
+
vue.createTextVNode(" " + vue.toDisplayString(act.label), 1 /* TEXT */)
|
|
3729
|
+
]),
|
|
3730
|
+
_: 2 /* DYNAMIC */
|
|
3731
|
+
}, 1032 /* PROPS, DYNAMIC_SLOTS */, ["title", "to", "class"]))
|
|
3732
|
+
: vue.createCommentVNode("v-if", true)
|
|
3656
3733
|
], 64 /* STABLE_FRAGMENT */))
|
|
3657
3734
|
: vue.createCommentVNode("v-if", true)
|
|
3658
3735
|
], 64 /* STABLE_FRAGMENT */))
|
|
@@ -3661,7 +3738,7 @@ function render$1(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
3661
3738
|
}), 128 /* KEYED_FRAGMENT */))
|
|
3662
3739
|
]))
|
|
3663
3740
|
: vue.createCommentVNode("v-if", true)
|
|
3664
|
-
], 8 /* PROPS */,
|
|
3741
|
+
], 8 /* PROPS */, _hoisted_55)
|
|
3665
3742
|
], 64 /* STABLE_FRAGMENT */))
|
|
3666
3743
|
}), 128 /* KEYED_FRAGMENT */))
|
|
3667
3744
|
]))
|
|
@@ -3677,6 +3754,32 @@ function render$1(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
3677
3754
|
onChangeKey: $options.changeKey,
|
|
3678
3755
|
"load-more": "1"
|
|
3679
3756
|
}, null, 8 /* PROPS */, ["onLoadMoreRecords", "hide-load-more", "hide-count", "pagination_data", "onChangeKey"]))
|
|
3757
|
+
: vue.createCommentVNode("v-if", true),
|
|
3758
|
+
($props.actions)
|
|
3759
|
+
? (vue.openBlock(true), vue.createElementBlock(vue.Fragment, { key: 7 }, vue.renderList($props.actions.actions, (action) => {
|
|
3760
|
+
return (vue.openBlock(), vue.createElementBlock(vue.Fragment, {
|
|
3761
|
+
key: action.label
|
|
3762
|
+
}, [
|
|
3763
|
+
(action.canvasId)
|
|
3764
|
+
? (vue.openBlock(), vue.createBlock(_component_sh_canvas, {
|
|
3765
|
+
key: 0,
|
|
3766
|
+
"canvas-title": action.canvasTitle,
|
|
3767
|
+
"canvas-id": action.canvasId,
|
|
3768
|
+
onOffcanvasClosed: _cache[3] || (_cache[3] = $event => ($options.rowSelected(null)))
|
|
3769
|
+
}, {
|
|
3770
|
+
default: vue.withCtx(() => [
|
|
3771
|
+
($data.selectedRecord)
|
|
3772
|
+
? (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(action.canvasComponent), {
|
|
3773
|
+
key: 0,
|
|
3774
|
+
record: $data.selectedRecord
|
|
3775
|
+
}, null, 8 /* PROPS */, ["record"]))
|
|
3776
|
+
: vue.createCommentVNode("v-if", true)
|
|
3777
|
+
]),
|
|
3778
|
+
_: 2 /* DYNAMIC */
|
|
3779
|
+
}, 1032 /* PROPS, DYNAMIC_SLOTS */, ["canvas-title", "canvas-id"]))
|
|
3780
|
+
: vue.createCommentVNode("v-if", true)
|
|
3781
|
+
], 64 /* STABLE_FRAGMENT */))
|
|
3782
|
+
}), 128 /* KEYED_FRAGMENT */))
|
|
3680
3783
|
: vue.createCommentVNode("v-if", true)
|
|
3681
3784
|
]))
|
|
3682
3785
|
}
|
|
@@ -3982,11 +4085,11 @@ const useUserStore = pinia.defineStore('user-store', {
|
|
|
3982
4085
|
}
|
|
3983
4086
|
});
|
|
3984
4087
|
|
|
3985
|
-
const _hoisted_1$2 = /*#__PURE__*/vue.createElementVNode("h5", null, "Departments
|
|
4088
|
+
const _hoisted_1$2 = /*#__PURE__*/vue.createElementVNode("h5", null, "Departments", -1 /* HOISTED */);
|
|
3986
4089
|
const _hoisted_2$2 = {
|
|
3987
4090
|
"data-bs-toggle": "modal",
|
|
3988
4091
|
ref: "addDeptBtn",
|
|
3989
|
-
href: "#department_modal",
|
|
4092
|
+
href: "#sh-department_modal",
|
|
3990
4093
|
class: "btn btn-info btn-sm"
|
|
3991
4094
|
};
|
|
3992
4095
|
const _hoisted_3$2 = /*#__PURE__*/vue.createElementVNode("i", { class: "fa fa-plus" }, null, -1 /* HOISTED */);
|
|
@@ -4014,7 +4117,8 @@ vue.onMounted(() => {
|
|
|
4014
4117
|
});
|
|
4015
4118
|
|
|
4016
4119
|
function departmentAdded (response) {
|
|
4017
|
-
|
|
4120
|
+
shRepo.showToast('Department added');
|
|
4121
|
+
reload.value += 1;
|
|
4018
4122
|
}
|
|
4019
4123
|
|
|
4020
4124
|
return (_ctx, _cache) => {
|
|
@@ -4022,8 +4126,6 @@ return (_ctx, _cache) => {
|
|
|
4022
4126
|
_hoisted_1$2,
|
|
4023
4127
|
vue.createElementVNode("a", _hoisted_2$2, _hoisted_5$2, 512 /* NEED_PATCH */),
|
|
4024
4128
|
vue.createVNode(script$5, {
|
|
4025
|
-
reload: vue.unref(reload),
|
|
4026
|
-
onRowSelected: _ctx.rowSelected,
|
|
4027
4129
|
headers: ['id','name','description', 'created_at'],
|
|
4028
4130
|
"end-point": "admin/departments/list",
|
|
4029
4131
|
actions: {
|
|
@@ -4036,9 +4138,9 @@ return (_ctx, _cache) => {
|
|
|
4036
4138
|
}
|
|
4037
4139
|
]
|
|
4038
4140
|
}
|
|
4039
|
-
}
|
|
4141
|
+
}),
|
|
4040
4142
|
vue.createVNode(script$7, {
|
|
4041
|
-
"modal-id": "department_modal",
|
|
4143
|
+
"modal-id": "sh-department_modal",
|
|
4042
4144
|
"modal-title": "Department Form"
|
|
4043
4145
|
}, {
|
|
4044
4146
|
default: vue.withCtx(() => [
|
|
@@ -4385,6 +4487,7 @@ const ShFrontend = {
|
|
|
4385
4487
|
app.provide('sessionTimeout',options.sessionTimeout);
|
|
4386
4488
|
ShStorage.setItem('sessionTimeout',options.sessionTimeout);
|
|
4387
4489
|
}
|
|
4490
|
+
const swalPosition = options.swalPosition ?? 'top-end';
|
|
4388
4491
|
const loginEndpoint = options.loginEndpoint ?? 'auth/login';
|
|
4389
4492
|
const registerEndpoint = options.registerEndpoint ?? 'auth/register';
|
|
4390
4493
|
const registerTitle = options.registerTitle ?? 'Create a new account';
|
|
@@ -4400,6 +4503,7 @@ const ShFrontend = {
|
|
|
4400
4503
|
app.provide('registerSubTitle', registerSubTitle);
|
|
4401
4504
|
app.provide('redirectLogin', redirectLogin);
|
|
4402
4505
|
app.provide('redirectRegister', redirectRegister);
|
|
4506
|
+
window.swalPosition = swalPosition;
|
|
4403
4507
|
if(options.router) {
|
|
4404
4508
|
options.router.addRoute({
|
|
4405
4509
|
path: '/sh-auth',
|
package/dist/library.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import Axios from 'axios';
|
|
2
2
|
import moment from 'moment';
|
|
3
|
-
import { inject, openBlock, createElementBlock, createElementVNode, createTextVNode, toDisplayString, createCommentVNode, withDirectives, Fragment, renderList, vModelSelect, vModelText, resolveComponent, withModifiers, createVNode, ref, onMounted, unref, normalizeClass, createBlock, renderSlot, createStaticVNode, withCtx,
|
|
3
|
+
import { inject, openBlock, createElementBlock, createElementVNode, createTextVNode, toDisplayString, createCommentVNode, withDirectives, Fragment, renderList, vModelSelect, vModelText, resolveComponent, withModifiers, createVNode, ref, onMounted, unref, normalizeClass, createBlock, renderSlot, createStaticVNode, withCtx, resolveDynamicComponent, shallowRef, computed, isRef, vModelCheckbox, watch, pushScopeId, popScopeId } from 'vue';
|
|
4
4
|
import NProgress from 'nprogress';
|
|
5
5
|
import Editor from '@tinymce/tinymce-vue';
|
|
6
6
|
import Swal from 'sweetalert2';
|
|
@@ -2882,6 +2882,7 @@ function getMenuCount (url) {
|
|
|
2882
2882
|
console.log(res);
|
|
2883
2883
|
});
|
|
2884
2884
|
}
|
|
2885
|
+
|
|
2885
2886
|
const Toast = Swal.mixin({
|
|
2886
2887
|
toast: true,
|
|
2887
2888
|
position: 'top-end',
|
|
@@ -2897,10 +2898,16 @@ const Toast = Swal.mixin({
|
|
|
2897
2898
|
toast.addEventListener('mouseleave', Swal.resumeTimer);
|
|
2898
2899
|
}
|
|
2899
2900
|
});
|
|
2900
|
-
function showToast (message, toastType) {
|
|
2901
|
+
function showToast (message, toastType, position) {
|
|
2901
2902
|
if (!toastType) {
|
|
2902
2903
|
toastType = 'success';
|
|
2903
2904
|
}
|
|
2905
|
+
if(!position){
|
|
2906
|
+
position = window.swalPosition;
|
|
2907
|
+
}
|
|
2908
|
+
Toast.mixin({
|
|
2909
|
+
position: position
|
|
2910
|
+
});
|
|
2904
2911
|
Toast.fire({
|
|
2905
2912
|
icon: toastType,
|
|
2906
2913
|
title: message
|
|
@@ -2966,7 +2973,7 @@ var shRepo = {
|
|
|
2966
2973
|
var script$5 = {
|
|
2967
2974
|
name: 'sh-table',
|
|
2968
2975
|
props: ['endPoint', 'headers', 'pageCount', 'actions', 'hideCount', 'hideLoadMore', 'links', 'reload', 'hideSearch', 'sharedData', 'searchPlaceholder', 'event', 'displayMore', 'displayMoreBtnClass', 'moreDetailsColumns', 'moreDetailsFields', 'hasDownload', 'downloadFields', 'tableHover'],
|
|
2969
|
-
inject: ['channel'
|
|
2976
|
+
inject: ['channel'],
|
|
2970
2977
|
data () {
|
|
2971
2978
|
return {
|
|
2972
2979
|
order_by: '',
|
|
@@ -2982,11 +2989,20 @@ var script$5 = {
|
|
|
2982
2989
|
moreDetailsId: null,
|
|
2983
2990
|
moreDetailsModel: null,
|
|
2984
2991
|
downloading: false,
|
|
2985
|
-
appUrl: window.VITE_APP_API_URL
|
|
2992
|
+
appUrl: window.VITE_APP_API_URL,
|
|
2993
|
+
hasCanvas: 0,
|
|
2994
|
+
selectedRecord: null
|
|
2986
2995
|
}
|
|
2987
2996
|
},
|
|
2988
2997
|
mounted () {
|
|
2989
2998
|
if (this.event) ;
|
|
2999
|
+
if(this.actions && this.actions.actions){
|
|
3000
|
+
this.actions.actions.forEach(action => {
|
|
3001
|
+
if(action.canvasComponent){
|
|
3002
|
+
this.hasCanvas = true;
|
|
3003
|
+
}
|
|
3004
|
+
});
|
|
3005
|
+
}
|
|
2990
3006
|
},
|
|
2991
3007
|
methods: {
|
|
2992
3008
|
newRecordAdded: function (ev) {
|
|
@@ -2998,6 +3014,7 @@ var script$5 = {
|
|
|
2998
3014
|
console.log(event, record);
|
|
2999
3015
|
},
|
|
3000
3016
|
rowSelected: function (row) {
|
|
3017
|
+
this.selectedRecord = row;
|
|
3001
3018
|
this.$emit('rowSelected', row);
|
|
3002
3019
|
},
|
|
3003
3020
|
changeKey: function (key, value) {
|
|
@@ -3162,6 +3179,7 @@ var script$5 = {
|
|
|
3162
3179
|
this.reloadData();
|
|
3163
3180
|
},
|
|
3164
3181
|
components: {
|
|
3182
|
+
ShCanvas: script$8,
|
|
3165
3183
|
pagination: script$6
|
|
3166
3184
|
},
|
|
3167
3185
|
computed: {
|
|
@@ -3292,13 +3310,14 @@ const _hoisted_46 = {
|
|
|
3292
3310
|
key: 0,
|
|
3293
3311
|
style: {"white-space":"nowrap"}
|
|
3294
3312
|
};
|
|
3295
|
-
const _hoisted_47 = ["
|
|
3296
|
-
const _hoisted_48 =
|
|
3297
|
-
const _hoisted_49 = {
|
|
3313
|
+
const _hoisted_47 = ["href"];
|
|
3314
|
+
const _hoisted_48 = ["title", "onClick"];
|
|
3315
|
+
const _hoisted_49 = { key: 5 };
|
|
3316
|
+
const _hoisted_50 = {
|
|
3298
3317
|
key: 0,
|
|
3299
3318
|
class: "text-center"
|
|
3300
3319
|
};
|
|
3301
|
-
const
|
|
3320
|
+
const _hoisted_51 = /*#__PURE__*/createElementVNode("div", { class: "text-center" }, [
|
|
3302
3321
|
/*#__PURE__*/createElementVNode("div", {
|
|
3303
3322
|
class: "spinner-border",
|
|
3304
3323
|
role: "status"
|
|
@@ -3306,42 +3325,44 @@ const _hoisted_50 = /*#__PURE__*/createElementVNode("div", { class: "text-center
|
|
|
3306
3325
|
/*#__PURE__*/createElementVNode("span", { class: "visually-hidden" }, "Loading...")
|
|
3307
3326
|
])
|
|
3308
3327
|
], -1 /* HOISTED */);
|
|
3309
|
-
const
|
|
3310
|
-
|
|
3328
|
+
const _hoisted_52 = [
|
|
3329
|
+
_hoisted_51
|
|
3311
3330
|
];
|
|
3312
|
-
const
|
|
3313
|
-
const
|
|
3331
|
+
const _hoisted_53 = { key: 1 };
|
|
3332
|
+
const _hoisted_54 = {
|
|
3314
3333
|
key: 2,
|
|
3315
3334
|
class: "mobile-list-items"
|
|
3316
3335
|
};
|
|
3317
|
-
const
|
|
3318
|
-
const
|
|
3336
|
+
const _hoisted_55 = ["onClick"];
|
|
3337
|
+
const _hoisted_56 = {
|
|
3319
3338
|
key: 0,
|
|
3320
3339
|
class: "mb-1 font-weight-bold text-capitalize profile-form-title"
|
|
3321
3340
|
};
|
|
3322
|
-
const
|
|
3341
|
+
const _hoisted_57 = {
|
|
3323
3342
|
key: 1,
|
|
3324
3343
|
class: "mb-1 font-weight-bold text-capitalize profile-form-title"
|
|
3325
3344
|
};
|
|
3326
|
-
const
|
|
3345
|
+
const _hoisted_58 = {
|
|
3327
3346
|
key: 2,
|
|
3328
3347
|
class: "mb-1 font-weight-bold text-capitalize profile-form-title"
|
|
3329
3348
|
};
|
|
3330
|
-
const
|
|
3331
|
-
const
|
|
3349
|
+
const _hoisted_59 = { key: 1 };
|
|
3350
|
+
const _hoisted_60 = {
|
|
3332
3351
|
key: 2,
|
|
3333
3352
|
class: "text-primary fw-bold"
|
|
3334
3353
|
};
|
|
3335
|
-
const _hoisted_60 = ["innerHTML"];
|
|
3336
3354
|
const _hoisted_61 = ["innerHTML"];
|
|
3337
3355
|
const _hoisted_62 = ["innerHTML"];
|
|
3338
|
-
const _hoisted_63 =
|
|
3339
|
-
const _hoisted_64 = {
|
|
3340
|
-
const _hoisted_65 =
|
|
3356
|
+
const _hoisted_63 = ["innerHTML"];
|
|
3357
|
+
const _hoisted_64 = /*#__PURE__*/createElementVNode("hr", { class: "my-2" }, null, -1 /* HOISTED */);
|
|
3358
|
+
const _hoisted_65 = { key: 0 };
|
|
3359
|
+
const _hoisted_66 = ["href"];
|
|
3360
|
+
const _hoisted_67 = ["title", "onClick"];
|
|
3341
3361
|
|
|
3342
3362
|
function render$1(_ctx, _cache, $props, $setup, $data, $options) {
|
|
3343
3363
|
const _component_router_link = resolveComponent("router-link");
|
|
3344
3364
|
const _component_pagination = resolveComponent("pagination");
|
|
3365
|
+
const _component_sh_canvas = resolveComponent("sh-canvas");
|
|
3345
3366
|
|
|
3346
3367
|
return (openBlock(), createElementBlock("div", _hoisted_1$5, [
|
|
3347
3368
|
($props.hasDownload)
|
|
@@ -3519,27 +3540,55 @@ function render$1(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
3519
3540
|
? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
|
|
3520
3541
|
(!act.validator || act.validator(record))
|
|
3521
3542
|
? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
|
|
3522
|
-
(act.
|
|
3523
|
-
? (openBlock(), createElementBlock("
|
|
3543
|
+
(act.canvasId)
|
|
3544
|
+
? (openBlock(), createElementBlock("a", {
|
|
3524
3545
|
key: 0,
|
|
3525
|
-
|
|
3526
|
-
|
|
3527
|
-
onClick: $event => ($options.doEmitAction(act.emits,record))
|
|
3528
|
-
}, toDisplayString(act.label), 11 /* TEXT, CLASS, PROPS */, _hoisted_47))
|
|
3529
|
-
: createCommentVNode("v-if", true),
|
|
3530
|
-
(!act.emits)
|
|
3531
|
-
? (openBlock(), createBlock(_component_router_link, {
|
|
3532
|
-
key: 1,
|
|
3533
|
-
title: act.title,
|
|
3534
|
-
to: $options.replaceActionUrl(act.path,record),
|
|
3546
|
+
href: '#' + act.canvasId,
|
|
3547
|
+
"data-bs-toggle": "offcanvas",
|
|
3535
3548
|
class: normalizeClass(act.class)
|
|
3536
|
-
},
|
|
3537
|
-
|
|
3538
|
-
|
|
3539
|
-
|
|
3540
|
-
|
|
3541
|
-
|
|
3542
|
-
|
|
3549
|
+
}, [
|
|
3550
|
+
(act.icon)
|
|
3551
|
+
? (openBlock(), createElementBlock("span", {
|
|
3552
|
+
key: 0,
|
|
3553
|
+
class: normalizeClass(act.icon)
|
|
3554
|
+
}, null, 2 /* CLASS */))
|
|
3555
|
+
: createCommentVNode("v-if", true),
|
|
3556
|
+
createTextVNode(" " + toDisplayString(act.label), 1 /* TEXT */)
|
|
3557
|
+
], 10 /* CLASS, PROPS */, _hoisted_47))
|
|
3558
|
+
: (act.emits)
|
|
3559
|
+
? (openBlock(), createElementBlock("button", {
|
|
3560
|
+
key: 1,
|
|
3561
|
+
title: act.title,
|
|
3562
|
+
class: normalizeClass(act.class ? act.class:'btn btn-default'),
|
|
3563
|
+
onClick: $event => ($options.doEmitAction(act.emits,record))
|
|
3564
|
+
}, [
|
|
3565
|
+
(act.icon)
|
|
3566
|
+
? (openBlock(), createElementBlock("span", {
|
|
3567
|
+
key: 0,
|
|
3568
|
+
class: normalizeClass(act.icon)
|
|
3569
|
+
}, null, 2 /* CLASS */))
|
|
3570
|
+
: createCommentVNode("v-if", true),
|
|
3571
|
+
createTextVNode(" " + toDisplayString(act.label), 1 /* TEXT */)
|
|
3572
|
+
], 10 /* CLASS, PROPS */, _hoisted_48))
|
|
3573
|
+
: (!act.emits)
|
|
3574
|
+
? (openBlock(), createBlock(_component_router_link, {
|
|
3575
|
+
key: 2,
|
|
3576
|
+
title: act.title,
|
|
3577
|
+
to: $options.replaceActionUrl(act.path,record),
|
|
3578
|
+
class: normalizeClass(act.class)
|
|
3579
|
+
}, {
|
|
3580
|
+
default: withCtx(() => [
|
|
3581
|
+
(act.icon)
|
|
3582
|
+
? (openBlock(), createElementBlock("span", {
|
|
3583
|
+
key: 0,
|
|
3584
|
+
class: normalizeClass(act.icon)
|
|
3585
|
+
}, null, 2 /* CLASS */))
|
|
3586
|
+
: createCommentVNode("v-if", true),
|
|
3587
|
+
createTextVNode(" " + toDisplayString(act.label), 1 /* TEXT */)
|
|
3588
|
+
]),
|
|
3589
|
+
_: 2 /* DYNAMIC */
|
|
3590
|
+
}, 1032 /* PROPS, DYNAMIC_SLOTS */, ["title", "to", "class"]))
|
|
3591
|
+
: createCommentVNode("v-if", true)
|
|
3543
3592
|
], 64 /* STABLE_FRAGMENT */))
|
|
3544
3593
|
: createCommentVNode("v-if", true)
|
|
3545
3594
|
], 64 /* STABLE_FRAGMENT */))
|
|
@@ -3553,15 +3602,15 @@ function render$1(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
3553
3602
|
: createCommentVNode("v-if", true)
|
|
3554
3603
|
])
|
|
3555
3604
|
], 2 /* CLASS */))
|
|
3556
|
-
: (openBlock(), createElementBlock("div",
|
|
3605
|
+
: (openBlock(), createElementBlock("div", _hoisted_49, [
|
|
3557
3606
|
($data.loading === 'loading')
|
|
3558
|
-
? (openBlock(), createElementBlock("div",
|
|
3607
|
+
? (openBlock(), createElementBlock("div", _hoisted_50, _hoisted_52))
|
|
3559
3608
|
: ($data.loading === 'error')
|
|
3560
|
-
? (openBlock(), createElementBlock("div",
|
|
3609
|
+
? (openBlock(), createElementBlock("div", _hoisted_53, [
|
|
3561
3610
|
createElementVNode("span", null, toDisplayString($data.loading_error), 1 /* TEXT */)
|
|
3562
3611
|
]))
|
|
3563
3612
|
: ($data.loading === 'done')
|
|
3564
|
-
? (openBlock(), createElementBlock("div",
|
|
3613
|
+
? (openBlock(), createElementBlock("div", _hoisted_54, [
|
|
3565
3614
|
(openBlock(true), createElementBlock(Fragment, null, renderList($data.records, (record, index) => {
|
|
3566
3615
|
return (openBlock(), createElementBlock(Fragment, {
|
|
3567
3616
|
key: record.id
|
|
@@ -3576,10 +3625,10 @@ function render$1(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
3576
3625
|
key: key[0]
|
|
3577
3626
|
}, [
|
|
3578
3627
|
(typeof key === 'string' )
|
|
3579
|
-
? (openBlock(), createElementBlock("p",
|
|
3628
|
+
? (openBlock(), createElementBlock("p", _hoisted_56, toDisplayString(key.replace(/_/g, ' ')), 1 /* TEXT */))
|
|
3580
3629
|
: (typeof key === 'function')
|
|
3581
|
-
? (openBlock(), createElementBlock("p",
|
|
3582
|
-
: (openBlock(), createElementBlock("p",
|
|
3630
|
+
? (openBlock(), createElementBlock("p", _hoisted_57, toDisplayString(key(null).replace(/_/g, ' ')), 1 /* TEXT */))
|
|
3631
|
+
: (openBlock(), createElementBlock("p", _hoisted_58, toDisplayString(key[1].replace(/_/g, ' ')), 1 /* TEXT */)),
|
|
3583
3632
|
createElementVNode("span", null, [
|
|
3584
3633
|
(typeof key === 'string' && $props.links && $props.links[key])
|
|
3585
3634
|
? (openBlock(), createBlock(_component_router_link, {
|
|
@@ -3589,29 +3638,29 @@ function render$1(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
3589
3638
|
innerHTML: record[key]
|
|
3590
3639
|
}, null, 8 /* PROPS */, ["to", "class", "innerHTML"]))
|
|
3591
3640
|
: ($options.getFieldType(key) === 'numeric')
|
|
3592
|
-
? (openBlock(), createElementBlock("span",
|
|
3641
|
+
? (openBlock(), createElementBlock("span", _hoisted_59, toDisplayString(Intl.NumberFormat().format(record[key])), 1 /* TEXT */))
|
|
3593
3642
|
: ($options.getFieldType(key) === 'money')
|
|
3594
|
-
? (openBlock(), createElementBlock("span",
|
|
3643
|
+
? (openBlock(), createElementBlock("span", _hoisted_60, "KES " + toDisplayString(Intl.NumberFormat().format(record[key])), 1 /* TEXT */))
|
|
3595
3644
|
: (typeof key === 'string')
|
|
3596
3645
|
? (openBlock(), createElementBlock("span", {
|
|
3597
3646
|
key: 3,
|
|
3598
3647
|
innerHTML: record[key]
|
|
3599
|
-
}, null, 8 /* PROPS */,
|
|
3648
|
+
}, null, 8 /* PROPS */, _hoisted_61))
|
|
3600
3649
|
: (typeof key === 'function')
|
|
3601
3650
|
? (openBlock(), createElementBlock("span", {
|
|
3602
3651
|
key: 4,
|
|
3603
3652
|
innerHTML: key(record, index )
|
|
3604
|
-
}, null, 8 /* PROPS */,
|
|
3653
|
+
}, null, 8 /* PROPS */, _hoisted_62))
|
|
3605
3654
|
: (openBlock(), createElementBlock("span", {
|
|
3606
3655
|
key: 5,
|
|
3607
3656
|
innerHTML: record[key[0]]
|
|
3608
|
-
}, null, 8 /* PROPS */,
|
|
3657
|
+
}, null, 8 /* PROPS */, _hoisted_63))
|
|
3609
3658
|
]),
|
|
3610
|
-
|
|
3659
|
+
_hoisted_64
|
|
3611
3660
|
], 64 /* STABLE_FRAGMENT */))
|
|
3612
3661
|
}), 128 /* KEYED_FRAGMENT */)),
|
|
3613
3662
|
($props.actions)
|
|
3614
|
-
? (openBlock(), createElementBlock("div",
|
|
3663
|
+
? (openBlock(), createElementBlock("div", _hoisted_65, [
|
|
3615
3664
|
(openBlock(true), createElementBlock(Fragment, null, renderList($props.actions.actions, (act) => {
|
|
3616
3665
|
return (openBlock(), createElementBlock(Fragment, {
|
|
3617
3666
|
key: act.path
|
|
@@ -3620,27 +3669,55 @@ function render$1(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
3620
3669
|
? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
|
|
3621
3670
|
(!act.validator || act.validator(record))
|
|
3622
3671
|
? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
|
|
3623
|
-
(act.
|
|
3624
|
-
? (openBlock(), createElementBlock("
|
|
3672
|
+
(act.canvasId)
|
|
3673
|
+
? (openBlock(), createElementBlock("a", {
|
|
3625
3674
|
key: 0,
|
|
3626
|
-
|
|
3627
|
-
|
|
3628
|
-
onClick: $event => ($options.doEmitAction(act.emits,record))
|
|
3629
|
-
}, toDisplayString(act.label), 11 /* TEXT, CLASS, PROPS */, _hoisted_65))
|
|
3630
|
-
: createCommentVNode("v-if", true),
|
|
3631
|
-
(!act.emits)
|
|
3632
|
-
? (openBlock(), createBlock(_component_router_link, {
|
|
3633
|
-
key: 1,
|
|
3634
|
-
title: act.title,
|
|
3635
|
-
to: $options.replaceActionUrl(act.path,record),
|
|
3675
|
+
href: '#' + act.canvasId,
|
|
3676
|
+
"data-bs-toggle": "offcanvas",
|
|
3636
3677
|
class: normalizeClass(act.class)
|
|
3637
|
-
},
|
|
3638
|
-
|
|
3639
|
-
|
|
3640
|
-
|
|
3641
|
-
|
|
3642
|
-
|
|
3643
|
-
|
|
3678
|
+
}, [
|
|
3679
|
+
(act.icon)
|
|
3680
|
+
? (openBlock(), createElementBlock("span", {
|
|
3681
|
+
key: 0,
|
|
3682
|
+
class: normalizeClass(act.icon)
|
|
3683
|
+
}, null, 2 /* CLASS */))
|
|
3684
|
+
: createCommentVNode("v-if", true),
|
|
3685
|
+
createTextVNode(" " + toDisplayString(act.label), 1 /* TEXT */)
|
|
3686
|
+
], 10 /* CLASS, PROPS */, _hoisted_66))
|
|
3687
|
+
: (act.emits)
|
|
3688
|
+
? (openBlock(), createElementBlock("button", {
|
|
3689
|
+
key: 1,
|
|
3690
|
+
title: act.title,
|
|
3691
|
+
class: normalizeClass(act.class ? act.class:'btn btn-default'),
|
|
3692
|
+
onClick: $event => ($options.doEmitAction(act.emits,record))
|
|
3693
|
+
}, [
|
|
3694
|
+
(act.icon)
|
|
3695
|
+
? (openBlock(), createElementBlock("span", {
|
|
3696
|
+
key: 0,
|
|
3697
|
+
class: normalizeClass(act.icon)
|
|
3698
|
+
}, null, 2 /* CLASS */))
|
|
3699
|
+
: createCommentVNode("v-if", true),
|
|
3700
|
+
createTextVNode(" " + toDisplayString(act.label), 1 /* TEXT */)
|
|
3701
|
+
], 10 /* CLASS, PROPS */, _hoisted_67))
|
|
3702
|
+
: (!act.emits)
|
|
3703
|
+
? (openBlock(), createBlock(_component_router_link, {
|
|
3704
|
+
key: 2,
|
|
3705
|
+
title: act.title,
|
|
3706
|
+
to: $options.replaceActionUrl(act.path,record),
|
|
3707
|
+
class: normalizeClass(act.class)
|
|
3708
|
+
}, {
|
|
3709
|
+
default: withCtx(() => [
|
|
3710
|
+
(act.icon)
|
|
3711
|
+
? (openBlock(), createElementBlock("span", {
|
|
3712
|
+
key: 0,
|
|
3713
|
+
class: normalizeClass(act.icon)
|
|
3714
|
+
}, null, 2 /* CLASS */))
|
|
3715
|
+
: createCommentVNode("v-if", true),
|
|
3716
|
+
createTextVNode(" " + toDisplayString(act.label), 1 /* TEXT */)
|
|
3717
|
+
]),
|
|
3718
|
+
_: 2 /* DYNAMIC */
|
|
3719
|
+
}, 1032 /* PROPS, DYNAMIC_SLOTS */, ["title", "to", "class"]))
|
|
3720
|
+
: createCommentVNode("v-if", true)
|
|
3644
3721
|
], 64 /* STABLE_FRAGMENT */))
|
|
3645
3722
|
: createCommentVNode("v-if", true)
|
|
3646
3723
|
], 64 /* STABLE_FRAGMENT */))
|
|
@@ -3649,7 +3726,7 @@ function render$1(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
3649
3726
|
}), 128 /* KEYED_FRAGMENT */))
|
|
3650
3727
|
]))
|
|
3651
3728
|
: createCommentVNode("v-if", true)
|
|
3652
|
-
], 8 /* PROPS */,
|
|
3729
|
+
], 8 /* PROPS */, _hoisted_55)
|
|
3653
3730
|
], 64 /* STABLE_FRAGMENT */))
|
|
3654
3731
|
}), 128 /* KEYED_FRAGMENT */))
|
|
3655
3732
|
]))
|
|
@@ -3665,6 +3742,32 @@ function render$1(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
3665
3742
|
onChangeKey: $options.changeKey,
|
|
3666
3743
|
"load-more": "1"
|
|
3667
3744
|
}, null, 8 /* PROPS */, ["onLoadMoreRecords", "hide-load-more", "hide-count", "pagination_data", "onChangeKey"]))
|
|
3745
|
+
: createCommentVNode("v-if", true),
|
|
3746
|
+
($props.actions)
|
|
3747
|
+
? (openBlock(true), createElementBlock(Fragment, { key: 7 }, renderList($props.actions.actions, (action) => {
|
|
3748
|
+
return (openBlock(), createElementBlock(Fragment, {
|
|
3749
|
+
key: action.label
|
|
3750
|
+
}, [
|
|
3751
|
+
(action.canvasId)
|
|
3752
|
+
? (openBlock(), createBlock(_component_sh_canvas, {
|
|
3753
|
+
key: 0,
|
|
3754
|
+
"canvas-title": action.canvasTitle,
|
|
3755
|
+
"canvas-id": action.canvasId,
|
|
3756
|
+
onOffcanvasClosed: _cache[3] || (_cache[3] = $event => ($options.rowSelected(null)))
|
|
3757
|
+
}, {
|
|
3758
|
+
default: withCtx(() => [
|
|
3759
|
+
($data.selectedRecord)
|
|
3760
|
+
? (openBlock(), createBlock(resolveDynamicComponent(action.canvasComponent), {
|
|
3761
|
+
key: 0,
|
|
3762
|
+
record: $data.selectedRecord
|
|
3763
|
+
}, null, 8 /* PROPS */, ["record"]))
|
|
3764
|
+
: createCommentVNode("v-if", true)
|
|
3765
|
+
]),
|
|
3766
|
+
_: 2 /* DYNAMIC */
|
|
3767
|
+
}, 1032 /* PROPS, DYNAMIC_SLOTS */, ["canvas-title", "canvas-id"]))
|
|
3768
|
+
: createCommentVNode("v-if", true)
|
|
3769
|
+
], 64 /* STABLE_FRAGMENT */))
|
|
3770
|
+
}), 128 /* KEYED_FRAGMENT */))
|
|
3668
3771
|
: createCommentVNode("v-if", true)
|
|
3669
3772
|
]))
|
|
3670
3773
|
}
|
|
@@ -3970,11 +4073,11 @@ const useUserStore = defineStore('user-store', {
|
|
|
3970
4073
|
}
|
|
3971
4074
|
});
|
|
3972
4075
|
|
|
3973
|
-
const _hoisted_1$2 = /*#__PURE__*/createElementVNode("h5", null, "Departments
|
|
4076
|
+
const _hoisted_1$2 = /*#__PURE__*/createElementVNode("h5", null, "Departments", -1 /* HOISTED */);
|
|
3974
4077
|
const _hoisted_2$2 = {
|
|
3975
4078
|
"data-bs-toggle": "modal",
|
|
3976
4079
|
ref: "addDeptBtn",
|
|
3977
|
-
href: "#department_modal",
|
|
4080
|
+
href: "#sh-department_modal",
|
|
3978
4081
|
class: "btn btn-info btn-sm"
|
|
3979
4082
|
};
|
|
3980
4083
|
const _hoisted_3$2 = /*#__PURE__*/createElementVNode("i", { class: "fa fa-plus" }, null, -1 /* HOISTED */);
|
|
@@ -4002,7 +4105,8 @@ onMounted(() => {
|
|
|
4002
4105
|
});
|
|
4003
4106
|
|
|
4004
4107
|
function departmentAdded (response) {
|
|
4005
|
-
|
|
4108
|
+
shRepo.showToast('Department added');
|
|
4109
|
+
reload.value += 1;
|
|
4006
4110
|
}
|
|
4007
4111
|
|
|
4008
4112
|
return (_ctx, _cache) => {
|
|
@@ -4010,8 +4114,6 @@ return (_ctx, _cache) => {
|
|
|
4010
4114
|
_hoisted_1$2,
|
|
4011
4115
|
createElementVNode("a", _hoisted_2$2, _hoisted_5$2, 512 /* NEED_PATCH */),
|
|
4012
4116
|
createVNode(script$5, {
|
|
4013
|
-
reload: unref(reload),
|
|
4014
|
-
onRowSelected: _ctx.rowSelected,
|
|
4015
4117
|
headers: ['id','name','description', 'created_at'],
|
|
4016
4118
|
"end-point": "admin/departments/list",
|
|
4017
4119
|
actions: {
|
|
@@ -4024,9 +4126,9 @@ return (_ctx, _cache) => {
|
|
|
4024
4126
|
}
|
|
4025
4127
|
]
|
|
4026
4128
|
}
|
|
4027
|
-
}
|
|
4129
|
+
}),
|
|
4028
4130
|
createVNode(script$7, {
|
|
4029
|
-
"modal-id": "department_modal",
|
|
4131
|
+
"modal-id": "sh-department_modal",
|
|
4030
4132
|
"modal-title": "Department Form"
|
|
4031
4133
|
}, {
|
|
4032
4134
|
default: withCtx(() => [
|
|
@@ -4373,6 +4475,7 @@ const ShFrontend = {
|
|
|
4373
4475
|
app.provide('sessionTimeout',options.sessionTimeout);
|
|
4374
4476
|
ShStorage.setItem('sessionTimeout',options.sessionTimeout);
|
|
4375
4477
|
}
|
|
4478
|
+
const swalPosition = options.swalPosition ?? 'top-end';
|
|
4376
4479
|
const loginEndpoint = options.loginEndpoint ?? 'auth/login';
|
|
4377
4480
|
const registerEndpoint = options.registerEndpoint ?? 'auth/register';
|
|
4378
4481
|
const registerTitle = options.registerTitle ?? 'Create a new account';
|
|
@@ -4388,6 +4491,7 @@ const ShFrontend = {
|
|
|
4388
4491
|
app.provide('registerSubTitle', registerSubTitle);
|
|
4389
4492
|
app.provide('redirectLogin', redirectLogin);
|
|
4390
4493
|
app.provide('redirectRegister', redirectRegister);
|
|
4494
|
+
window.swalPosition = swalPosition;
|
|
4391
4495
|
if(options.router) {
|
|
4392
4496
|
options.router.addRoute({
|
|
4393
4497
|
path: '/sh-auth',
|