Muhammad Iqbal Afandi 3 лет назад
Родитель
Сommit
04709d1273
36 измененных файлов: 1299 добавлений и 83 удалений
  1. 28
    3
      app/Http/Controllers/UserController.php
  2. 32
    0
      app/Http/Requests/User/ChangePasswordRequest.php
  3. 3
    1
      lang/id/messages.php
  4. 2
    2
      public/js/resources_js_pages_customer_Create_vue.js
  5. 2
    2
      public/js/resources_js_pages_customer_Edit_vue.js
  6. 2
    2
      public/js/resources_js_pages_customer_Index_vue.js
  7. 11
    11
      public/js/resources_js_pages_discount_Index_vue.js
  8. 2
    2
      public/js/resources_js_pages_expense_Create_vue.js
  9. 2
    2
      public/js/resources_js_pages_expense_Index_vue.js
  10. 2
    2
      public/js/resources_js_pages_expense_Show_vue.js
  11. 2
    2
      public/js/resources_js_pages_laundry_Create_vue.js
  12. 2
    2
      public/js/resources_js_pages_laundry_Edit_vue.js
  13. 2
    2
      public/js/resources_js_pages_laundry_Index_vue.js
  14. 2
    2
      public/js/resources_js_pages_mutation_Report_vue.js
  15. 2
    2
      public/js/resources_js_pages_outlet_Create_vue.js
  16. 2
    2
      public/js/resources_js_pages_outlet_Edit_vue.js
  17. 2
    2
      public/js/resources_js_pages_outlet_Index_vue.js
  18. 2
    2
      public/js/resources_js_pages_product_Create_vue.js
  19. 2
    2
      public/js/resources_js_pages_product_Edit_vue.js
  20. 2
    2
      public/js/resources_js_pages_product_Index_vue.js
  21. 2
    2
      public/js/resources_js_pages_transaction_Create_vue.js
  22. 2
    2
      public/js/resources_js_pages_transaction_Index_vue.js
  23. 2
    2
      public/js/resources_js_pages_transaction_Report_vue.js
  24. 2
    2
      public/js/resources_js_pages_transaction_Show_vue.js
  25. 6
    3
      public/js/resources_js_pages_user_Create_vue.js
  26. 6
    3
      public/js/resources_js_pages_user_Edit_vue.js
  27. 2
    2
      public/js/resources_js_pages_user_Index_vue.js
  28. 660
    7
      public/js/resources_js_pages_user_Show_vue.js
  29. 347
    3
      public/js/vue.js
  30. 2
    2
      resources/js/components/AppTopBar.vue
  31. 2
    2
      resources/js/pages/discount/Index.vue
  32. 7
    1
      resources/js/pages/user/Create.vue
  33. 7
    1
      resources/js/pages/user/Edit.vue
  34. 141
    4
      resources/js/pages/user/Show.vue
  35. 4
    0
      resources/js/vue.js
  36. 1
    0
      routes/web.php

+ 28
- 3
app/Http/Controllers/UserController.php Просмотреть файл

@@ -3,12 +3,14 @@
3 3
 namespace App\Http\Controllers;
4 4
 
5 5
 use App\Http\Controllers\Controller;
6
+use App\Http\Requests\User\ChangePasswordRequest;
6 7
 use App\Http\Requests\User\StoreUserRequest;
7 8
 use App\Http\Requests\User\UpdateUserRequest;
8 9
 use App\Models\Outlet;
9 10
 use App\Models\Role;
10 11
 use App\Models\User;
11 12
 use Illuminate\Support\Facades\Auth;
13
+use Illuminate\Support\Facades\Hash;
12 14
 
13 15
 class UserController extends Controller
14 16
 {
@@ -95,12 +97,13 @@ class UserController extends Controller
95 97
     {
96 98
         return inertia('user/Show', [
97 99
             'user' => [
100
+                'id' => $user->id,
98 101
                 'name' => $user->name,
99 102
                 'phone' => $user->phone,
100 103
                 'email' => $user->email,
101
-                'gender' => $user->gender_id,
102
-                'role' => $user->role->name,
103
-                'outlet' => $user->outlet->name,
104
+                'gender_id' => (int) $user->getRawOriginal('gender_id'),
105
+                'outlet_id' => $user->outlet_id,
106
+                'role_id' => $user->role_id,
104 107
             ],
105 108
             'roles' => Role::whereNotIn('id', [1])
106 109
                 ->get()
@@ -108,6 +111,11 @@ class UserController extends Controller
108 111
                     'label' => $role->name,
109 112
                     'value' => $role->id,
110 113
                 ]),
114
+            'outlets' => Outlet::get()
115
+                ->transform(fn($outlet) => [
116
+                    'label' => $outlet->name,
117
+                    'value' => $outlet->id,
118
+                ]),
111 119
             'genders' => [
112 120
                 ['label' => 'Perempuan', 'value' => 1],
113 121
                 ['label' => 'Laki-laki', 'value' => 2],
@@ -201,4 +209,21 @@ class UserController extends Controller
201 209
 
202 210
         return back()->with('success', $msg);
203 211
     }
212
+
213
+    /**
214
+     * Change Password
215
+     *
216
+     * @param  \Illuminate\Http\Request  $request
217
+     * @return \Illuminate\Http\Response
218
+     */
219
+    public function changePassword(ChangePasswordRequest $request)
220
+    {
221
+        if (!Hash::check($request->current_password, auth()->user()->password)) {
222
+            return back()->with('error', __('messages.error.store.change-password'));
223
+        }
224
+
225
+        auth()->user()->update(['password' => bcrypt($request->password)]);
226
+
227
+        return back()->with('success', __('messages.success.update.change-password'));
228
+    }
204 229
 }

+ 32
- 0
app/Http/Requests/User/ChangePasswordRequest.php Просмотреть файл

@@ -0,0 +1,32 @@
1
+<?php
2
+
3
+namespace App\Http\Requests\User;
4
+
5
+use Illuminate\Foundation\Http\FormRequest;
6
+use Illuminate\Validation\Rules\Password;
7
+
8
+class ChangePasswordRequest extends FormRequest
9
+{
10
+    /**
11
+     * Determine if the user is authorized to make this request.
12
+     *
13
+     * @return bool
14
+     */
15
+    public function authorize()
16
+    {
17
+        return true;
18
+    }
19
+
20
+    /**
21
+     * Get the validation rules that apply to the request.
22
+     *
23
+     * @return array
24
+     */
25
+    public function rules()
26
+    {
27
+        return [
28
+            'old_password' => 'required',
29
+            'new_password' => ['required', 'confirmed', Password::defaults()],
30
+        ];
31
+    }
32
+}

+ 3
- 1
lang/id/messages.php Просмотреть файл

@@ -22,7 +22,7 @@ return [
22 22
             'verify_email' => 'Link verifikasi email berhasil terkirim',
23 23
         ],
24 24
         'store' => [
25
-            'discount' => 'Diskon berhasil ditambahkan',
25
+            'discount' => 'Diskon berhasil diubah',
26 26
             'expense' => 'Pengeluaran berhasil ditambahkan',
27 27
             'transaction' => 'Transaksi berhasil ditambahkan',
28 28
             'user' => 'Akun user berhasil ditambahkan',
@@ -32,6 +32,7 @@ return [
32 32
             'product' => 'Data product berhasil ditambahkan',
33 33
         ],
34 34
         'update' => [
35
+            'change-password' => 'Password berhasil diubah',
35 36
             'transaction_status' => 'Status transaksi berhasil diubah',
36 37
             'user' => 'Akun user berhasil diubah',
37 38
             'customer' => 'Akun customer berhasil diubah',
@@ -50,6 +51,7 @@ return [
50 51
 
51 52
     'error' => [
52 53
         'store' => [
54
+            'change-password' => 'Password lama salah',
53 55
             'expense' => 'Pengeluaran gagal ditambahkan',
54 56
             'transaction' => 'Transaksi gagal ditambahkan',
55 57
         ],

+ 2
- 2
public/js/resources_js_pages_customer_Create_vue.js Просмотреть файл

@@ -1032,7 +1032,7 @@ var _hoisted_10 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElement
1032 1032
 /* HOISTED */
1033 1033
 );
1034 1034
 
1035
-var _hoisted_11 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("span", null, "Pengaturan Profil", -1
1035
+var _hoisted_11 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("span", null, "Profil Saya", -1
1036 1036
 /* HOISTED */
1037 1037
 );
1038 1038
 
@@ -1077,7 +1077,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
1077 1077
 
1078 1078
   }, 8
1079 1079
   /* PROPS */
1080
-  , ["href"])), [[_directive_tooltip, 'Pengaturan Profil', void 0, {
1080
+  , ["href"])), [[_directive_tooltip, 'Profil Saya', void 0, {
1081 1081
     bottom: true
1082 1082
   }]]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)(((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)($setup["Link"], {
1083 1083
     href: _ctx.route('logout'),

+ 2
- 2
public/js/resources_js_pages_customer_Edit_vue.js Просмотреть файл

@@ -1373,7 +1373,7 @@ var _hoisted_10 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElement
1373 1373
 /* HOISTED */
1374 1374
 );
1375 1375
 
1376
-var _hoisted_11 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("span", null, "Pengaturan Profil", -1
1376
+var _hoisted_11 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("span", null, "Profil Saya", -1
1377 1377
 /* HOISTED */
1378 1378
 );
1379 1379
 
@@ -1418,7 +1418,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
1418 1418
 
1419 1419
   }, 8
1420 1420
   /* PROPS */
1421
-  , ["href"])), [[_directive_tooltip, 'Pengaturan Profil', void 0, {
1421
+  , ["href"])), [[_directive_tooltip, 'Profil Saya', void 0, {
1422 1422
     bottom: true
1423 1423
   }]]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)(((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)($setup["Link"], {
1424 1424
     href: _ctx.route('logout'),

+ 2
- 2
public/js/resources_js_pages_customer_Index_vue.js Просмотреть файл

@@ -946,7 +946,7 @@ var _hoisted_10 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElement
946 946
 /* HOISTED */
947 947
 );
948 948
 
949
-var _hoisted_11 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("span", null, "Pengaturan Profil", -1
949
+var _hoisted_11 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("span", null, "Profil Saya", -1
950 950
 /* HOISTED */
951 951
 );
952 952
 
@@ -991,7 +991,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
991 991
 
992 992
   }, 8
993 993
   /* PROPS */
994
-  , ["href"])), [[_directive_tooltip, 'Pengaturan Profil', void 0, {
994
+  , ["href"])), [[_directive_tooltip, 'Profil Saya', void 0, {
995 995
     bottom: true
996 996
   }]]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)(((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)($setup["Link"], {
997 997
     href: _ctx.route('logout'),

+ 11
- 11
public/js/resources_js_pages_discount_Index_vue.js Просмотреть файл

@@ -936,7 +936,7 @@ var _hoisted_10 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElement
936 936
 /* HOISTED */
937 937
 );
938 938
 
939
-var _hoisted_11 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("span", null, "Pengaturan Profil", -1
939
+var _hoisted_11 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("span", null, "Profil Saya", -1
940 940
 /* HOISTED */
941 941
 );
942 942
 
@@ -981,7 +981,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
981 981
 
982 982
   }, 8
983 983
   /* PROPS */
984
-  , ["href"])), [[_directive_tooltip, 'Pengaturan Profil', void 0, {
984
+  , ["href"])), [[_directive_tooltip, 'Profil Saya', void 0, {
985 985
     bottom: true
986 986
   }]]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)(((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)($setup["Link"], {
987 987
     href: _ctx.route('logout'),
@@ -1072,18 +1072,15 @@ var _withScopeId = function _withScopeId(n) {
1072 1072
   return (0,vue__WEBPACK_IMPORTED_MODULE_0__.pushScopeId)("data-v-d76e7be6"), n = n(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.popScopeId)(), n;
1073 1073
 };
1074 1074
 
1075
-var _hoisted_1 = /*#__PURE__*/_withScopeId(function () {
1076
-  return /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("h1", null, "Diskon", -1
1077
-  /* HOISTED */
1078
-  );
1079
-});
1080
-
1081
-var _hoisted_2 = {
1075
+var _hoisted_1 = {
1082 1076
   "class": "grid"
1083 1077
 };
1084
-var _hoisted_3 = {
1078
+var _hoisted_2 = {
1085 1079
   "class": "col-fixed"
1086 1080
 };
1081
+
1082
+var _hoisted_3 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)(" Diskon ");
1083
+
1087 1084
 var _hoisted_4 = {
1088 1085
   "class": "flex flex-column sm:flex-row sm:justify-content-between sm:align-items-center"
1089 1086
 };
@@ -1096,7 +1093,10 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
1096 1093
     title: "Pengaturan Diskon"
1097 1094
   }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup["AppLayout"], null, {
1098 1095
     "default": (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {
1099
-      return [_hoisted_1, (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_2, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_3, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_Card, null, {
1096
+      return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_1, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_2, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_Card, null, {
1097
+        title: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {
1098
+          return [_hoisted_3];
1099
+        }),
1100 1100
         content: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {
1101 1101
           return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup["AppInputNumber"], {
1102 1102
             label: "Jumlah diskon",

+ 2
- 2
public/js/resources_js_pages_expense_Create_vue.js Просмотреть файл

@@ -1055,7 +1055,7 @@ var _hoisted_10 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElement
1055 1055
 /* HOISTED */
1056 1056
 );
1057 1057
 
1058
-var _hoisted_11 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("span", null, "Pengaturan Profil", -1
1058
+var _hoisted_11 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("span", null, "Profil Saya", -1
1059 1059
 /* HOISTED */
1060 1060
 );
1061 1061
 
@@ -1100,7 +1100,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
1100 1100
 
1101 1101
   }, 8
1102 1102
   /* PROPS */
1103
-  , ["href"])), [[_directive_tooltip, 'Pengaturan Profil', void 0, {
1103
+  , ["href"])), [[_directive_tooltip, 'Profil Saya', void 0, {
1104 1104
     bottom: true
1105 1105
   }]]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)(((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)($setup["Link"], {
1106 1106
     href: _ctx.route('logout'),

+ 2
- 2
public/js/resources_js_pages_expense_Index_vue.js Просмотреть файл

@@ -984,7 +984,7 @@ var _hoisted_10 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElement
984 984
 /* HOISTED */
985 985
 );
986 986
 
987
-var _hoisted_11 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("span", null, "Pengaturan Profil", -1
987
+var _hoisted_11 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("span", null, "Profil Saya", -1
988 988
 /* HOISTED */
989 989
 );
990 990
 
@@ -1029,7 +1029,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
1029 1029
 
1030 1030
   }, 8
1031 1031
   /* PROPS */
1032
-  , ["href"])), [[_directive_tooltip, 'Pengaturan Profil', void 0, {
1032
+  , ["href"])), [[_directive_tooltip, 'Profil Saya', void 0, {
1033 1033
     bottom: true
1034 1034
   }]]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)(((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)($setup["Link"], {
1035 1035
     href: _ctx.route('logout'),

+ 2
- 2
public/js/resources_js_pages_expense_Show_vue.js Просмотреть файл

@@ -706,7 +706,7 @@ var _hoisted_10 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElement
706 706
 /* HOISTED */
707 707
 );
708 708
 
709
-var _hoisted_11 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("span", null, "Pengaturan Profil", -1
709
+var _hoisted_11 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("span", null, "Profil Saya", -1
710 710
 /* HOISTED */
711 711
 );
712 712
 
@@ -751,7 +751,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
751 751
 
752 752
   }, 8
753 753
   /* PROPS */
754
-  , ["href"])), [[_directive_tooltip, 'Pengaturan Profil', void 0, {
754
+  , ["href"])), [[_directive_tooltip, 'Profil Saya', void 0, {
755 755
     bottom: true
756 756
   }]]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)(((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)($setup["Link"], {
757 757
     href: _ctx.route('logout'),

+ 2
- 2
public/js/resources_js_pages_laundry_Create_vue.js Просмотреть файл

@@ -1058,7 +1058,7 @@ var _hoisted_10 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElement
1058 1058
 /* HOISTED */
1059 1059
 );
1060 1060
 
1061
-var _hoisted_11 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("span", null, "Pengaturan Profil", -1
1061
+var _hoisted_11 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("span", null, "Profil Saya", -1
1062 1062
 /* HOISTED */
1063 1063
 );
1064 1064
 
@@ -1103,7 +1103,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
1103 1103
 
1104 1104
   }, 8
1105 1105
   /* PROPS */
1106
-  , ["href"])), [[_directive_tooltip, 'Pengaturan Profil', void 0, {
1106
+  , ["href"])), [[_directive_tooltip, 'Profil Saya', void 0, {
1107 1107
     bottom: true
1108 1108
   }]]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)(((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)($setup["Link"], {
1109 1109
     href: _ctx.route('logout'),

+ 2
- 2
public/js/resources_js_pages_laundry_Edit_vue.js Просмотреть файл

@@ -1316,7 +1316,7 @@ var _hoisted_10 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElement
1316 1316
 /* HOISTED */
1317 1317
 );
1318 1318
 
1319
-var _hoisted_11 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("span", null, "Pengaturan Profil", -1
1319
+var _hoisted_11 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("span", null, "Profil Saya", -1
1320 1320
 /* HOISTED */
1321 1321
 );
1322 1322
 
@@ -1361,7 +1361,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
1361 1361
 
1362 1362
   }, 8
1363 1363
   /* PROPS */
1364
-  , ["href"])), [[_directive_tooltip, 'Pengaturan Profil', void 0, {
1364
+  , ["href"])), [[_directive_tooltip, 'Profil Saya', void 0, {
1365 1365
     bottom: true
1366 1366
   }]]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)(((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)($setup["Link"], {
1367 1367
     href: _ctx.route('logout'),

+ 2
- 2
public/js/resources_js_pages_laundry_Index_vue.js Просмотреть файл

@@ -945,7 +945,7 @@ var _hoisted_10 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElement
945 945
 /* HOISTED */
946 946
 );
947 947
 
948
-var _hoisted_11 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("span", null, "Pengaturan Profil", -1
948
+var _hoisted_11 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("span", null, "Profil Saya", -1
949 949
 /* HOISTED */
950 950
 );
951 951
 
@@ -990,7 +990,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
990 990
 
991 991
   }, 8
992 992
   /* PROPS */
993
-  , ["href"])), [[_directive_tooltip, 'Pengaturan Profil', void 0, {
993
+  , ["href"])), [[_directive_tooltip, 'Profil Saya', void 0, {
994 994
     bottom: true
995 995
   }]]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)(((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)($setup["Link"], {
996 996
     href: _ctx.route('logout'),

+ 2
- 2
public/js/resources_js_pages_mutation_Report_vue.js Просмотреть файл

@@ -999,7 +999,7 @@ var _hoisted_10 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElement
999 999
 /* HOISTED */
1000 1000
 );
1001 1001
 
1002
-var _hoisted_11 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("span", null, "Pengaturan Profil", -1
1002
+var _hoisted_11 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("span", null, "Profil Saya", -1
1003 1003
 /* HOISTED */
1004 1004
 );
1005 1005
 
@@ -1044,7 +1044,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
1044 1044
 
1045 1045
   }, 8
1046 1046
   /* PROPS */
1047
-  , ["href"])), [[_directive_tooltip, 'Pengaturan Profil', void 0, {
1047
+  , ["href"])), [[_directive_tooltip, 'Profil Saya', void 0, {
1048 1048
     bottom: true
1049 1049
   }]]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)(((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)($setup["Link"], {
1050 1050
     href: _ctx.route('logout'),

+ 2
- 2
public/js/resources_js_pages_outlet_Create_vue.js Просмотреть файл

@@ -969,7 +969,7 @@ var _hoisted_10 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElement
969 969
 /* HOISTED */
970 970
 );
971 971
 
972
-var _hoisted_11 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("span", null, "Pengaturan Profil", -1
972
+var _hoisted_11 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("span", null, "Profil Saya", -1
973 973
 /* HOISTED */
974 974
 );
975 975
 
@@ -1014,7 +1014,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
1014 1014
 
1015 1015
   }, 8
1016 1016
   /* PROPS */
1017
-  , ["href"])), [[_directive_tooltip, 'Pengaturan Profil', void 0, {
1017
+  , ["href"])), [[_directive_tooltip, 'Profil Saya', void 0, {
1018 1018
     bottom: true
1019 1019
   }]]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)(((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)($setup["Link"], {
1020 1020
     href: _ctx.route('logout'),

+ 2
- 2
public/js/resources_js_pages_outlet_Edit_vue.js Просмотреть файл

@@ -1004,7 +1004,7 @@ var _hoisted_10 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElement
1004 1004
 /* HOISTED */
1005 1005
 );
1006 1006
 
1007
-var _hoisted_11 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("span", null, "Pengaturan Profil", -1
1007
+var _hoisted_11 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("span", null, "Profil Saya", -1
1008 1008
 /* HOISTED */
1009 1009
 );
1010 1010
 
@@ -1049,7 +1049,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
1049 1049
 
1050 1050
   }, 8
1051 1051
   /* PROPS */
1052
-  , ["href"])), [[_directive_tooltip, 'Pengaturan Profil', void 0, {
1052
+  , ["href"])), [[_directive_tooltip, 'Profil Saya', void 0, {
1053 1053
     bottom: true
1054 1054
   }]]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)(((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)($setup["Link"], {
1055 1055
     href: _ctx.route('logout'),

+ 2
- 2
public/js/resources_js_pages_outlet_Index_vue.js Просмотреть файл

@@ -946,7 +946,7 @@ var _hoisted_10 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElement
946 946
 /* HOISTED */
947 947
 );
948 948
 
949
-var _hoisted_11 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("span", null, "Pengaturan Profil", -1
949
+var _hoisted_11 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("span", null, "Profil Saya", -1
950 950
 /* HOISTED */
951 951
 );
952 952
 
@@ -991,7 +991,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
991 991
 
992 992
   }, 8
993 993
   /* PROPS */
994
-  , ["href"])), [[_directive_tooltip, 'Pengaturan Profil', void 0, {
994
+  , ["href"])), [[_directive_tooltip, 'Profil Saya', void 0, {
995 995
     bottom: true
996 996
   }]]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)(((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)($setup["Link"], {
997 997
     href: _ctx.route('logout'),

+ 2
- 2
public/js/resources_js_pages_product_Create_vue.js Просмотреть файл

@@ -1058,7 +1058,7 @@ var _hoisted_10 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElement
1058 1058
 /* HOISTED */
1059 1059
 );
1060 1060
 
1061
-var _hoisted_11 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("span", null, "Pengaturan Profil", -1
1061
+var _hoisted_11 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("span", null, "Profil Saya", -1
1062 1062
 /* HOISTED */
1063 1063
 );
1064 1064
 
@@ -1103,7 +1103,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
1103 1103
 
1104 1104
   }, 8
1105 1105
   /* PROPS */
1106
-  , ["href"])), [[_directive_tooltip, 'Pengaturan Profil', void 0, {
1106
+  , ["href"])), [[_directive_tooltip, 'Profil Saya', void 0, {
1107 1107
     bottom: true
1108 1108
   }]]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)(((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)($setup["Link"], {
1109 1109
     href: _ctx.route('logout'),

+ 2
- 2
public/js/resources_js_pages_product_Edit_vue.js Просмотреть файл

@@ -1316,7 +1316,7 @@ var _hoisted_10 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElement
1316 1316
 /* HOISTED */
1317 1317
 );
1318 1318
 
1319
-var _hoisted_11 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("span", null, "Pengaturan Profil", -1
1319
+var _hoisted_11 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("span", null, "Profil Saya", -1
1320 1320
 /* HOISTED */
1321 1321
 );
1322 1322
 
@@ -1361,7 +1361,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
1361 1361
 
1362 1362
   }, 8
1363 1363
   /* PROPS */
1364
-  , ["href"])), [[_directive_tooltip, 'Pengaturan Profil', void 0, {
1364
+  , ["href"])), [[_directive_tooltip, 'Profil Saya', void 0, {
1365 1365
     bottom: true
1366 1366
   }]]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)(((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)($setup["Link"], {
1367 1367
     href: _ctx.route('logout'),

+ 2
- 2
public/js/resources_js_pages_product_Index_vue.js Просмотреть файл

@@ -945,7 +945,7 @@ var _hoisted_10 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElement
945 945
 /* HOISTED */
946 946
 );
947 947
 
948
-var _hoisted_11 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("span", null, "Pengaturan Profil", -1
948
+var _hoisted_11 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("span", null, "Profil Saya", -1
949 949
 /* HOISTED */
950 950
 );
951 951
 
@@ -990,7 +990,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
990 990
 
991 991
   }, 8
992 992
   /* PROPS */
993
-  , ["href"])), [[_directive_tooltip, 'Pengaturan Profil', void 0, {
993
+  , ["href"])), [[_directive_tooltip, 'Profil Saya', void 0, {
994 994
     bottom: true
995 995
   }]]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)(((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)($setup["Link"], {
996 996
     href: _ctx.route('logout'),

+ 2
- 2
public/js/resources_js_pages_transaction_Create_vue.js Просмотреть файл

@@ -1645,7 +1645,7 @@ var _hoisted_10 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElement
1645 1645
 /* HOISTED */
1646 1646
 );
1647 1647
 
1648
-var _hoisted_11 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("span", null, "Pengaturan Profil", -1
1648
+var _hoisted_11 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("span", null, "Profil Saya", -1
1649 1649
 /* HOISTED */
1650 1650
 );
1651 1651
 
@@ -1690,7 +1690,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
1690 1690
 
1691 1691
   }, 8
1692 1692
   /* PROPS */
1693
-  , ["href"])), [[_directive_tooltip, 'Pengaturan Profil', void 0, {
1693
+  , ["href"])), [[_directive_tooltip, 'Profil Saya', void 0, {
1694 1694
     bottom: true
1695 1695
   }]]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)(((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)($setup["Link"], {
1696 1696
     href: _ctx.route('logout'),

+ 2
- 2
public/js/resources_js_pages_transaction_Index_vue.js Просмотреть файл

@@ -1714,7 +1714,7 @@ var _hoisted_10 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElement
1714 1714
 /* HOISTED */
1715 1715
 );
1716 1716
 
1717
-var _hoisted_11 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("span", null, "Pengaturan Profil", -1
1717
+var _hoisted_11 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("span", null, "Profil Saya", -1
1718 1718
 /* HOISTED */
1719 1719
 );
1720 1720
 
@@ -1759,7 +1759,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
1759 1759
 
1760 1760
   }, 8
1761 1761
   /* PROPS */
1762
-  , ["href"])), [[_directive_tooltip, 'Pengaturan Profil', void 0, {
1762
+  , ["href"])), [[_directive_tooltip, 'Profil Saya', void 0, {
1763 1763
     bottom: true
1764 1764
   }]]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)(((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)($setup["Link"], {
1765 1765
     href: _ctx.route('logout'),

+ 2
- 2
public/js/resources_js_pages_transaction_Report_vue.js Просмотреть файл

@@ -989,7 +989,7 @@ var _hoisted_10 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElement
989 989
 /* HOISTED */
990 990
 );
991 991
 
992
-var _hoisted_11 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("span", null, "Pengaturan Profil", -1
992
+var _hoisted_11 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("span", null, "Profil Saya", -1
993 993
 /* HOISTED */
994 994
 );
995 995
 
@@ -1034,7 +1034,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
1034 1034
 
1035 1035
   }, 8
1036 1036
   /* PROPS */
1037
-  , ["href"])), [[_directive_tooltip, 'Pengaturan Profil', void 0, {
1037
+  , ["href"])), [[_directive_tooltip, 'Profil Saya', void 0, {
1038 1038
     bottom: true
1039 1039
   }]]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)(((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)($setup["Link"], {
1040 1040
     href: _ctx.route('logout'),

+ 2
- 2
public/js/resources_js_pages_transaction_Show_vue.js Просмотреть файл

@@ -713,7 +713,7 @@ var _hoisted_10 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElement
713 713
 /* HOISTED */
714 714
 );
715 715
 
716
-var _hoisted_11 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("span", null, "Pengaturan Profil", -1
716
+var _hoisted_11 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("span", null, "Profil Saya", -1
717 717
 /* HOISTED */
718 718
 );
719 719
 
@@ -758,7 +758,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
758 758
 
759 759
   }, 8
760 760
   /* PROPS */
761
-  , ["href"])), [[_directive_tooltip, 'Pengaturan Profil', void 0, {
761
+  , ["href"])), [[_directive_tooltip, 'Profil Saya', void 0, {
762 762
     bottom: true
763 763
   }]]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)(((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)($setup["Link"], {
764 764
     href: _ctx.route('logout'),

+ 6
- 3
public/js/resources_js_pages_user_Create_vue.js Просмотреть файл

@@ -1033,7 +1033,7 @@ var _hoisted_10 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElement
1033 1033
 /* HOISTED */
1034 1034
 );
1035 1035
 
1036
-var _hoisted_11 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("span", null, "Pengaturan Profil", -1
1036
+var _hoisted_11 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("span", null, "Profil Saya", -1
1037 1037
 /* HOISTED */
1038 1038
 );
1039 1039
 
@@ -1078,7 +1078,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
1078 1078
 
1079 1079
   }, 8
1080 1080
   /* PROPS */
1081
-  , ["href"])), [[_directive_tooltip, 'Pengaturan Profil', void 0, {
1081
+  , ["href"])), [[_directive_tooltip, 'Profil Saya', void 0, {
1082 1082
     bottom: true
1083 1083
   }]]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)(((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)($setup["Link"], {
1084 1084
     href: _ctx.route('logout'),
@@ -1275,8 +1275,11 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
1275 1275
             label: "Simpan",
1276 1276
             icon: "pi pi-check",
1277 1277
             "class": "p-button-text",
1278
+            disabled: $setup.form.processing,
1278 1279
             onClick: $setup.submit
1279
-          })])];
1280
+          }, null, 8
1281
+          /* PROPS */
1282
+          , ["disabled"])])];
1280 1283
         }),
1281 1284
         _: 1
1282 1285
         /* STABLE */

+ 6
- 3
public/js/resources_js_pages_user_Edit_vue.js Просмотреть файл

@@ -1289,7 +1289,7 @@ var _hoisted_10 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElement
1289 1289
 /* HOISTED */
1290 1290
 );
1291 1291
 
1292
-var _hoisted_11 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("span", null, "Pengaturan Profil", -1
1292
+var _hoisted_11 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("span", null, "Profil Saya", -1
1293 1293
 /* HOISTED */
1294 1294
 );
1295 1295
 
@@ -1334,7 +1334,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
1334 1334
 
1335 1335
   }, 8
1336 1336
   /* PROPS */
1337
-  , ["href"])), [[_directive_tooltip, 'Pengaturan Profil', void 0, {
1337
+  , ["href"])), [[_directive_tooltip, 'Profil Saya', void 0, {
1338 1338
     bottom: true
1339 1339
   }]]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)(((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)($setup["Link"], {
1340 1340
     href: _ctx.route('logout'),
@@ -1559,8 +1559,11 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
1559 1559
             label: "Simpan",
1560 1560
             "class": "p-button-text",
1561 1561
             icon: "pi pi-check",
1562
+            disabled: $setup.form.processing,
1562 1563
             onClick: $setup.submit
1563
-          })])])];
1564
+          }, null, 8
1565
+          /* PROPS */
1566
+          , ["disabled"])])])];
1564 1567
         }),
1565 1568
         _: 1
1566 1569
         /* STABLE */

+ 2
- 2
public/js/resources_js_pages_user_Index_vue.js Просмотреть файл

@@ -946,7 +946,7 @@ var _hoisted_10 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElement
946 946
 /* HOISTED */
947 947
 );
948 948
 
949
-var _hoisted_11 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("span", null, "Pengaturan Profil", -1
949
+var _hoisted_11 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("span", null, "Profil Saya", -1
950 950
 /* HOISTED */
951 951
 );
952 952
 
@@ -991,7 +991,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
991 991
 
992 992
   }, 8
993 993
   /* PROPS */
994
-  , ["href"])), [[_directive_tooltip, 'Pengaturan Profil', void 0, {
994
+  , ["href"])), [[_directive_tooltip, 'Profil Saya', void 0, {
995 995
     bottom: true
996 996
   }]]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)(((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)($setup["Link"], {
997 997
     href: _ctx.route('logout'),

+ 660
- 7
public/js/resources_js_pages_user_Show_vue.js Просмотреть файл

@@ -1,6 +1,160 @@
1 1
 "use strict";
2 2
 (self["webpackChunk"] = self["webpackChunk"] || []).push([["resources_js_pages_user_Show_vue"],{
3 3
 
4
+/***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/components/AppDropdown.vue?vue&type=script&setup=true&lang=js":
5
+/*!****************************************************************************************************************************************************************************************************************!*\
6
+  !*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/components/AppDropdown.vue?vue&type=script&setup=true&lang=js ***!
7
+  \****************************************************************************************************************************************************************************************************************/
8
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
9
+
10
+__webpack_require__.r(__webpack_exports__);
11
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
12
+/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
13
+/* harmony export */ });
14
+/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.esm-bundler.js");
15
+
16
+/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
17
+  props: {
18
+    label: {
19
+      type: String,
20
+      required: true
21
+    },
22
+    optionLabel: {
23
+      type: String,
24
+      "default": 'label'
25
+    },
26
+    optionValue: {
27
+      type: String,
28
+      "default": 'value'
29
+    },
30
+    optionDisabled: {
31
+      type: String,
32
+      "default": 'disabled'
33
+    },
34
+    options: {
35
+      type: Array,
36
+      required: true
37
+    },
38
+    placeholder: {
39
+      type: String,
40
+      required: true
41
+    },
42
+    error: {
43
+      type: String,
44
+      "default": null
45
+    },
46
+    modelValue: null
47
+  },
48
+  emits: ['update:modelValue'],
49
+  setup: function setup(__props, _ref) {
50
+    var expose = _ref.expose;
51
+    expose();
52
+    var props = __props;
53
+    var isError = (0,vue__WEBPACK_IMPORTED_MODULE_0__.computed)(function () {
54
+      return props.error ? true : false;
55
+    });
56
+    var forLabel = (0,vue__WEBPACK_IMPORTED_MODULE_0__.computed)(function () {
57
+      return props.label ? props.label.toLowerCase().replace(/\s+/g, '-') : null;
58
+    });
59
+    var ariaDescribedbyLabel = (0,vue__WEBPACK_IMPORTED_MODULE_0__.computed)(function () {
60
+      return props.label ? props.label.toLowerCase().replace(/\s+/g, '-') + '-help' : null;
61
+    });
62
+
63
+    var selectedDropdownLabel = function selectedDropdownLabel(value) {
64
+      var result = props.options.find(function (option) {
65
+        return option[props.optionValue] == value;
66
+      });
67
+
68
+      if (result) {
69
+        return result[props.optionLabel];
70
+      }
71
+    };
72
+
73
+    var __returned__ = {
74
+      props: props,
75
+      isError: isError,
76
+      forLabel: forLabel,
77
+      ariaDescribedbyLabel: ariaDescribedbyLabel,
78
+      selectedDropdownLabel: selectedDropdownLabel,
79
+      computed: vue__WEBPACK_IMPORTED_MODULE_0__.computed
80
+    };
81
+    Object.defineProperty(__returned__, '__isScriptSetup', {
82
+      enumerable: false,
83
+      value: true
84
+    });
85
+    return __returned__;
86
+  }
87
+});
88
+
89
+/***/ }),
90
+
91
+/***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/components/AppInputText.vue?vue&type=script&setup=true&lang=js":
92
+/*!*****************************************************************************************************************************************************************************************************************!*\
93
+  !*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/components/AppInputText.vue?vue&type=script&setup=true&lang=js ***!
94
+  \*****************************************************************************************************************************************************************************************************************/
95
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
96
+
97
+__webpack_require__.r(__webpack_exports__);
98
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
99
+/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
100
+/* harmony export */ });
101
+/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.esm-bundler.js");
102
+
103
+/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
104
+  props: {
105
+    type: {
106
+      type: String,
107
+      "default": 'text'
108
+    },
109
+    label: {
110
+      type: String,
111
+      required: true
112
+    },
113
+    disabled: {
114
+      type: Boolean,
115
+      "default": false
116
+    },
117
+    placeholder: {
118
+      type: String,
119
+      required: true
120
+    },
121
+    error: {
122
+      type: String,
123
+      "default": null
124
+    },
125
+    modelValue: null
126
+  },
127
+  emits: ['update:modelValue'],
128
+  setup: function setup(__props, _ref) {
129
+    var expose = _ref.expose;
130
+    expose();
131
+    var props = __props;
132
+    var isError = (0,vue__WEBPACK_IMPORTED_MODULE_0__.computed)(function () {
133
+      return props.error ? true : false;
134
+    });
135
+    var forLabel = (0,vue__WEBPACK_IMPORTED_MODULE_0__.computed)(function () {
136
+      return props.label.toLowerCase().replace(/\s+/g, '-');
137
+    });
138
+    var ariaDescribedbyLabel = (0,vue__WEBPACK_IMPORTED_MODULE_0__.computed)(function () {
139
+      return props.label.toLowerCase().replace(/\s+/g, '-') + '-help';
140
+    });
141
+    var __returned__ = {
142
+      props: props,
143
+      isError: isError,
144
+      forLabel: forLabel,
145
+      ariaDescribedbyLabel: ariaDescribedbyLabel,
146
+      computed: vue__WEBPACK_IMPORTED_MODULE_0__.computed
147
+    };
148
+    Object.defineProperty(__returned__, '__isScriptSetup', {
149
+      enumerable: false,
150
+      value: true
151
+    });
152
+    return __returned__;
153
+  }
154
+});
155
+
156
+/***/ }),
157
+
4 158
 /***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/components/AppMessage.vue?vue&type=script&setup=true&lang=js":
5 159
 /*!***************************************************************************************************************************************************************************************************************!*\
6 160
   !*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/components/AppMessage.vue?vue&type=script&setup=true&lang=js ***!
@@ -321,20 +475,57 @@ __webpack_require__.r(__webpack_exports__);
321 475
 /* harmony export */ });
322 476
 /* harmony import */ var _inertiajs_inertia_vue3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @inertiajs/inertia-vue3 */ "./node_modules/@inertiajs/inertia-vue3/dist/index.js");
323 477
 /* harmony import */ var _layouts_AppLayout_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/layouts/AppLayout.vue */ "./resources/js/layouts/AppLayout.vue");
478
+/* harmony import */ var _components_AppInputText_vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/components/AppInputText.vue */ "./resources/js/components/AppInputText.vue");
479
+/* harmony import */ var _components_AppDropdown_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/components/AppDropdown.vue */ "./resources/js/components/AppDropdown.vue");
480
+
481
+
324 482
 
325 483
 
326 484
 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
327 485
   props: {
328 486
     user: Object,
329 487
     roles: Array,
488
+    outlets: Array,
330 489
     genders: Array
331 490
   },
332 491
   setup: function setup(__props, _ref) {
333 492
     var expose = _ref.expose;
334 493
     expose();
494
+    var props = __props;
495
+    var form = (0,_inertiajs_inertia_vue3__WEBPACK_IMPORTED_MODULE_0__.useForm)({
496
+      name: props.user.name,
497
+      phone: props.user.phone,
498
+      email: props.user.email,
499
+      gender_id: props.user.gender_id,
500
+      outlet_id: props.user.outlet_id,
501
+      role_id: props.user.role_id
502
+    });
503
+
504
+    var submit = function submit() {
505
+      form.put(route('users.update', props.user.id));
506
+    };
507
+
508
+    var formChangePassword = (0,_inertiajs_inertia_vue3__WEBPACK_IMPORTED_MODULE_0__.useForm)({
509
+      old_password: '',
510
+      new_password: '',
511
+      new_password_confirmation: ''
512
+    });
513
+
514
+    var changePassword = function changePassword() {
515
+      formChangePassword.post(route('users.change-password', props.user.id));
516
+    };
517
+
335 518
     var __returned__ = {
519
+      props: props,
520
+      form: form,
521
+      submit: submit,
522
+      formChangePassword: formChangePassword,
523
+      changePassword: changePassword,
336 524
       Head: _inertiajs_inertia_vue3__WEBPACK_IMPORTED_MODULE_0__.Head,
337
-      AppLayout: _layouts_AppLayout_vue__WEBPACK_IMPORTED_MODULE_1__["default"]
525
+      useForm: _inertiajs_inertia_vue3__WEBPACK_IMPORTED_MODULE_0__.useForm,
526
+      AppLayout: _layouts_AppLayout_vue__WEBPACK_IMPORTED_MODULE_1__["default"],
527
+      AppInputText: _components_AppInputText_vue__WEBPACK_IMPORTED_MODULE_2__["default"],
528
+      AppDropdown: _components_AppDropdown_vue__WEBPACK_IMPORTED_MODULE_3__["default"]
338 529
     };
339 530
     Object.defineProperty(__returned__, '__isScriptSetup', {
340 531
       enumerable: false,
@@ -346,6 +537,86 @@ __webpack_require__.r(__webpack_exports__);
346 537
 
347 538
 /***/ }),
348 539
 
540
+/***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/components/AppDropdown.vue?vue&type=template&id=ce0d1992":
541
+/*!*********************************************************************************************************************************************************************************************************************************************************************************!*\
542
+  !*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/components/AppDropdown.vue?vue&type=template&id=ce0d1992 ***!
543
+  \*********************************************************************************************************************************************************************************************************************************************************************************/
544
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
545
+
546
+__webpack_require__.r(__webpack_exports__);
547
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
548
+/* harmony export */   "render": () => (/* binding */ render)
549
+/* harmony export */ });
550
+/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.esm-bundler.js");
551
+
552
+var _hoisted_1 = {
553
+  "class": "field"
554
+};
555
+var _hoisted_2 = ["for"];
556
+var _hoisted_3 = {
557
+  key: 0
558
+};
559
+var _hoisted_4 = {
560
+  key: 1
561
+};
562
+var _hoisted_5 = ["id"];
563
+function render(_ctx, _cache, $props, $setup, $data, $options) {
564
+  var _component_Dropdown = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)("Dropdown");
565
+
566
+  return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)("div", _hoisted_1, [$props.label ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)("label", {
567
+    key: 0,
568
+    "for": $setup.forLabel
569
+  }, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($props.label), 9
570
+  /* TEXT, PROPS */
571
+  , _hoisted_2)) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)("v-if", true), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_Dropdown, {
572
+    "class": (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)(["w-full", {
573
+      'p-invalid': $setup.isError
574
+    }]),
575
+    id: $setup.forLabel,
576
+    "aria-describedby": $setup.ariaDescribedbyLabel,
577
+    "option-disabled": $props.optionDisabled,
578
+    "option-label": $props.optionLabel,
579
+    "option-value": $props.optionValue,
580
+    placeholder: $props.placeholder,
581
+    options: $props.options,
582
+    "model-value": $props.modelValue,
583
+    onChange: _cache[0] || (_cache[0] = function ($event) {
584
+      return _ctx.$emit('update:modelValue', $event.value);
585
+    })
586
+  }, {
587
+    value: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function (slotProps) {
588
+      return [slotProps.value ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)("div", _hoisted_3, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($setup.selectedDropdownLabel(slotProps.value)), 1
589
+      /* TEXT */
590
+      )) : ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)("div", _hoisted_4, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(slotProps.placeholder), 1
591
+      /* TEXT */
592
+      ))];
593
+    }),
594
+    option: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function (_ref) {
595
+      var option = _ref.option,
596
+          index = _ref.index;
597
+      return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.renderSlot)(_ctx.$slots, "option", {
598
+        option: option,
599
+        index: index
600
+      })];
601
+    }),
602
+    _: 3
603
+    /* FORWARDED */
604
+
605
+  }, 8
606
+  /* PROPS */
607
+  , ["class", "id", "aria-describedby", "option-disabled", "option-label", "option-value", "placeholder", "options", "model-value"]), $props.error ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)("small", {
608
+    key: 1,
609
+    id: $setup.ariaDescribedbyLabel,
610
+    "class": (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)({
611
+      'p-error': $setup.isError
612
+    })
613
+  }, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($props.error), 11
614
+  /* TEXT, CLASS, PROPS */
615
+  , _hoisted_5)) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)("v-if", true)]);
616
+}
617
+
618
+/***/ }),
619
+
349 620
 /***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/components/AppFooter.vue?vue&type=template&id=4ab6097e":
350 621
 /*!*******************************************************************************************************************************************************************************************************************************************************************************!*\
351 622
   !*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/components/AppFooter.vue?vue&type=template&id=4ab6097e ***!
@@ -379,6 +650,59 @@ function render(_ctx, _cache) {
379 650
 
380 651
 /***/ }),
381 652
 
653
+/***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/components/AppInputText.vue?vue&type=template&id=16729fe1":
654
+/*!**********************************************************************************************************************************************************************************************************************************************************************************!*\
655
+  !*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/components/AppInputText.vue?vue&type=template&id=16729fe1 ***!
656
+  \**********************************************************************************************************************************************************************************************************************************************************************************/
657
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
658
+
659
+__webpack_require__.r(__webpack_exports__);
660
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
661
+/* harmony export */   "render": () => (/* binding */ render)
662
+/* harmony export */ });
663
+/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.esm-bundler.js");
664
+
665
+var _hoisted_1 = {
666
+  "class": "field"
667
+};
668
+var _hoisted_2 = ["for"];
669
+var _hoisted_3 = ["id"];
670
+function render(_ctx, _cache, $props, $setup, $data, $options) {
671
+  var _component_InputText = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)("InputText");
672
+
673
+  return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)("div", _hoisted_1, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("label", {
674
+    "for": $setup.forLabel
675
+  }, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($props.label), 9
676
+  /* TEXT, PROPS */
677
+  , _hoisted_2), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_InputText, {
678
+    "class": (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)(["w-full", {
679
+      'p-invalid': $setup.isError
680
+    }]),
681
+    id: $setup.forLabel,
682
+    "aria-describedby": $setup.ariaDescribedbyLabel,
683
+    "model-value": $props.modelValue,
684
+    type: $props.type,
685
+    placeholder: $props.placeholder,
686
+    value: $props.modelValue,
687
+    disabled: $props.disabled,
688
+    onInput: _cache[0] || (_cache[0] = function ($event) {
689
+      return _ctx.$emit('update:modelValue', $event.target.value);
690
+    })
691
+  }, null, 8
692
+  /* PROPS */
693
+  , ["class", "id", "aria-describedby", "model-value", "type", "placeholder", "value", "disabled"]), $props.error ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)("small", {
694
+    key: 0,
695
+    id: $setup.ariaDescribedbyLabel,
696
+    "class": (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)({
697
+      'p-error': $setup.isError
698
+    })
699
+  }, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($props.error), 11
700
+  /* TEXT, CLASS, PROPS */
701
+  , _hoisted_3)) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)("v-if", true)]);
702
+}
703
+
704
+/***/ }),
705
+
382 706
 /***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/components/AppMessage.vue?vue&type=template&id=07159051":
383 707
 /*!********************************************************************************************************************************************************************************************************************************************************************************!*\
384 708
   !*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/components/AppMessage.vue?vue&type=template&id=07159051 ***!
@@ -708,7 +1032,7 @@ var _hoisted_10 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElement
708 1032
 /* HOISTED */
709 1033
 );
710 1034
 
711
-var _hoisted_11 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("span", null, "Pengaturan Profil", -1
1035
+var _hoisted_11 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("span", null, "Profil Saya", -1
712 1036
 /* HOISTED */
713 1037
 );
714 1038
 
@@ -753,7 +1077,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
753 1077
 
754 1078
   }, 8
755 1079
   /* PROPS */
756
-  , ["href"])), [[_directive_tooltip, 'Pengaturan Profil', void 0, {
1080
+  , ["href"])), [[_directive_tooltip, 'Profil Saya', void 0, {
757 1081
     bottom: true
758 1082
   }]]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)(((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)($setup["Link"], {
759 1083
     href: _ctx.route('logout'),
@@ -839,14 +1163,229 @@ __webpack_require__.r(__webpack_exports__);
839 1163
 /* harmony export */ });
840 1164
 /* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.esm-bundler.js");
841 1165
 
1166
+var _hoisted_1 = {
1167
+  "class": "grid"
1168
+};
1169
+var _hoisted_2 = {
1170
+  "class": "col-12 md:col-8"
1171
+};
1172
+
1173
+var _hoisted_3 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createTextVNode)("Profil Saya");
1174
+
1175
+var _hoisted_4 = {
1176
+  "class": "grid"
1177
+};
1178
+var _hoisted_5 = {
1179
+  "class": "col-12 md:col-6"
1180
+};
1181
+var _hoisted_6 = {
1182
+  "class": "col-12 md:col-6"
1183
+};
1184
+var _hoisted_7 = {
1185
+  "class": "col-12 md:col-6"
1186
+};
1187
+var _hoisted_8 = {
1188
+  "class": "col-12 md:col-6"
1189
+};
1190
+var _hoisted_9 = {
1191
+  "class": "col-12 flex justify-content-end"
1192
+};
1193
+var _hoisted_10 = {
1194
+  "class": "grid"
1195
+};
1196
+var _hoisted_11 = {
1197
+  "class": "col-12 md:col-6"
1198
+};
1199
+var _hoisted_12 = {
1200
+  "class": "field"
1201
+};
1202
+
1203
+var _hoisted_13 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("label", {
1204
+  "for": "old_password"
1205
+}, "Password Lama", -1
1206
+/* HOISTED */
1207
+);
1208
+
1209
+var _hoisted_14 = {
1210
+  "class": "col-12 md:col-6"
1211
+};
1212
+var _hoisted_15 = {
1213
+  "class": "field"
1214
+};
1215
+
1216
+var _hoisted_16 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("label", {
1217
+  "for": "new_password"
1218
+}, "Password Baru", -1
1219
+/* HOISTED */
1220
+);
1221
+
1222
+var _hoisted_17 = {
1223
+  "class": "col-12 md:col-6"
1224
+};
1225
+var _hoisted_18 = {
1226
+  "class": "field"
1227
+};
1228
+
1229
+var _hoisted_19 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("label", {
1230
+  "for": "new_password_confirmation"
1231
+}, "Konfirmasi Password", -1
1232
+/* HOISTED */
1233
+);
1234
+
1235
+var _hoisted_20 = {
1236
+  "class": "col-12 flex justify-content-end"
1237
+};
842 1238
 function render(_ctx, _cache, $props, $setup, $data, $options) {
1239
+  var _component_Button = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)("Button");
1240
+
1241
+  var _component_TabPanel = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)("TabPanel");
1242
+
1243
+  var _component_Password = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)("Password");
1244
+
1245
+  var _component_TabView = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)("TabView");
1246
+
1247
+  var _component_Card = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)("Card");
1248
+
843 1249
   return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(vue__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup["Head"], {
844
-    title: "User Profile"
1250
+    title: "Profil Saya"
845 1251
   }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup["AppLayout"], null, {
846 1252
     "default": (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {
847
-      return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("h1", null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)($props.user.name), 1
848
-      /* TEXT */
849
-      )];
1253
+      return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_1, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_2, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_Card, null, {
1254
+        title: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {
1255
+          return [_hoisted_3];
1256
+        }),
1257
+        content: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {
1258
+          return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_TabView, {
1259
+            lazy: ""
1260
+          }, {
1261
+            "default": (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {
1262
+              return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_TabPanel, {
1263
+                header: "Ubah Profil"
1264
+              }, {
1265
+                "default": (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {
1266
+                  return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_4, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_5, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup["AppInputText"], {
1267
+                    label: "Nama",
1268
+                    placeholder: "nama",
1269
+                    error: $setup.form.errors.name,
1270
+                    modelValue: $setup.form.name,
1271
+                    "onUpdate:modelValue": _cache[0] || (_cache[0] = function ($event) {
1272
+                      return $setup.form.name = $event;
1273
+                    })
1274
+                  }, null, 8
1275
+                  /* PROPS */
1276
+                  , ["error", "modelValue"])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_6, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup["AppInputText"], {
1277
+                    label: "Nomor HP",
1278
+                    placeholder: "nomor hp",
1279
+                    error: $setup.form.errors.phone,
1280
+                    modelValue: $setup.form.phone,
1281
+                    "onUpdate:modelValue": _cache[1] || (_cache[1] = function ($event) {
1282
+                      return $setup.form.phone = $event;
1283
+                    })
1284
+                  }, null, 8
1285
+                  /* PROPS */
1286
+                  , ["error", "modelValue"])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_7, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup["AppInputText"], {
1287
+                    label: "Email",
1288
+                    placeholder: "email",
1289
+                    error: $setup.form.errors.email,
1290
+                    modelValue: $setup.form.email,
1291
+                    "onUpdate:modelValue": _cache[2] || (_cache[2] = function ($event) {
1292
+                      return $setup.form.email = $event;
1293
+                    })
1294
+                  }, null, 8
1295
+                  /* PROPS */
1296
+                  , ["error", "modelValue"])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_8, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup["AppDropdown"], {
1297
+                    label: "Jenis Kelamin",
1298
+                    placeholder: "pilih satu",
1299
+                    modelValue: $setup.form.gender_id,
1300
+                    "onUpdate:modelValue": _cache[3] || (_cache[3] = function ($event) {
1301
+                      return $setup.form.gender_id = $event;
1302
+                    }),
1303
+                    options: $props.genders,
1304
+                    error: $setup.form.errors.gender_id
1305
+                  }, null, 8
1306
+                  /* PROPS */
1307
+                  , ["modelValue", "options", "error"])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_9, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_Button, {
1308
+                    label: "Simpan",
1309
+                    icon: "pi pi-check",
1310
+                    "class": "p-button-text",
1311
+                    disabled: $setup.form.processing,
1312
+                    onClick: $setup.submit
1313
+                  }, null, 8
1314
+                  /* PROPS */
1315
+                  , ["disabled"])])])];
1316
+                }),
1317
+                _: 1
1318
+                /* STABLE */
1319
+
1320
+              }), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_TabPanel, {
1321
+                header: "Ubah Password"
1322
+              }, {
1323
+                "default": (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(function () {
1324
+                  return [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_10, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_11, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_12, [_hoisted_13, (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_Password, {
1325
+                    id: "old_password",
1326
+                    label: "Password Lama",
1327
+                    placeholder: "password lama",
1328
+                    "class": "w-full",
1329
+                    inputClass: "w-full",
1330
+                    toggleMask: true,
1331
+                    error: $setup.form.errors.old_password,
1332
+                    modelValue: $setup.formChangePassword.old_password,
1333
+                    "onUpdate:modelValue": _cache[4] || (_cache[4] = function ($event) {
1334
+                      return $setup.formChangePassword.old_password = $event;
1335
+                    })
1336
+                  }, null, 8
1337
+                  /* PROPS */
1338
+                  , ["error", "modelValue"])])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_14, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_15, [_hoisted_16, (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_Password, {
1339
+                    id: "new_password",
1340
+                    label: "Password Baru",
1341
+                    placeholder: "password baru",
1342
+                    "class": "w-full",
1343
+                    inputClass: "w-full",
1344
+                    toggleMask: true,
1345
+                    error: $setup.formChangePassword.errors.new_password,
1346
+                    modelValue: $setup.formChangePassword.new_password,
1347
+                    "onUpdate:modelValue": _cache[5] || (_cache[5] = function ($event) {
1348
+                      return $setup.formChangePassword.new_password = $event;
1349
+                    })
1350
+                  }, null, 8
1351
+                  /* PROPS */
1352
+                  , ["error", "modelValue"])])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_17, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_18, [_hoisted_19, (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_Password, {
1353
+                    id: "new_password_confirmation",
1354
+                    label: "Konfirmasi Password",
1355
+                    placeholder: "konfirmasi password",
1356
+                    "class": "w-full",
1357
+                    inputClass: "w-full",
1358
+                    toggleMask: true,
1359
+                    modelValue: $setup.formChangePassword.new_password_confirmation,
1360
+                    "onUpdate:modelValue": _cache[6] || (_cache[6] = function ($event) {
1361
+                      return $setup.formChangePassword.new_password_confirmation = $event;
1362
+                    })
1363
+                  }, null, 8
1364
+                  /* PROPS */
1365
+                  , ["modelValue"])])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_20, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_Button, {
1366
+                    label: "Simpan",
1367
+                    icon: "pi pi-check",
1368
+                    "class": "p-button-text",
1369
+                    disabled: $setup.formChangePassword.processing,
1370
+                    onClick: $setup.changePassword
1371
+                  }, null, 8
1372
+                  /* PROPS */
1373
+                  , ["disabled"])])])];
1374
+                }),
1375
+                _: 1
1376
+                /* STABLE */
1377
+
1378
+              })];
1379
+            }),
1380
+            _: 1
1381
+            /* STABLE */
1382
+
1383
+          })];
1384
+        }),
1385
+        _: 1
1386
+        /* STABLE */
1387
+
1388
+      })])])];
850 1389
     }),
851 1390
     _: 1
852 1391
     /* STABLE */
@@ -1013,6 +1552,33 @@ exports["default"] = (sfc, props) => {
1013 1552
 };
1014 1553
 
1015 1554
 
1555
+/***/ }),
1556
+
1557
+/***/ "./resources/js/components/AppDropdown.vue":
1558
+/*!*************************************************!*\
1559
+  !*** ./resources/js/components/AppDropdown.vue ***!
1560
+  \*************************************************/
1561
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1562
+
1563
+__webpack_require__.r(__webpack_exports__);
1564
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1565
+/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
1566
+/* harmony export */ });
1567
+/* harmony import */ var _AppDropdown_vue_vue_type_template_id_ce0d1992__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AppDropdown.vue?vue&type=template&id=ce0d1992 */ "./resources/js/components/AppDropdown.vue?vue&type=template&id=ce0d1992");
1568
+/* harmony import */ var _AppDropdown_vue_vue_type_script_setup_true_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AppDropdown.vue?vue&type=script&setup=true&lang=js */ "./resources/js/components/AppDropdown.vue?vue&type=script&setup=true&lang=js");
1569
+/* harmony import */ var _home_dijitalcode_Projects_bamslaundry_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./node_modules/vue-loader/dist/exportHelper.js */ "./node_modules/vue-loader/dist/exportHelper.js");
1570
+
1571
+
1572
+
1573
+
1574
+;
1575
+const __exports__ = /*#__PURE__*/(0,_home_dijitalcode_Projects_bamslaundry_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__["default"])(_AppDropdown_vue_vue_type_script_setup_true_lang_js__WEBPACK_IMPORTED_MODULE_1__["default"], [['render',_AppDropdown_vue_vue_type_template_id_ce0d1992__WEBPACK_IMPORTED_MODULE_0__.render],['__file',"resources/js/components/AppDropdown.vue"]])
1576
+/* hot reload */
1577
+if (false) {}
1578
+
1579
+
1580
+/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (__exports__);
1581
+
1016 1582
 /***/ }),
1017 1583
 
1018 1584
 /***/ "./resources/js/components/AppFooter.vue":
@@ -1036,6 +1602,33 @@ const __exports__ = /*#__PURE__*/(0,_home_dijitalcode_Projects_bamslaundry_node_
1036 1602
 if (false) {}
1037 1603
 
1038 1604
 
1605
+/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (__exports__);
1606
+
1607
+/***/ }),
1608
+
1609
+/***/ "./resources/js/components/AppInputText.vue":
1610
+/*!**************************************************!*\
1611
+  !*** ./resources/js/components/AppInputText.vue ***!
1612
+  \**************************************************/
1613
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1614
+
1615
+__webpack_require__.r(__webpack_exports__);
1616
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1617
+/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
1618
+/* harmony export */ });
1619
+/* harmony import */ var _AppInputText_vue_vue_type_template_id_16729fe1__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AppInputText.vue?vue&type=template&id=16729fe1 */ "./resources/js/components/AppInputText.vue?vue&type=template&id=16729fe1");
1620
+/* harmony import */ var _AppInputText_vue_vue_type_script_setup_true_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AppInputText.vue?vue&type=script&setup=true&lang=js */ "./resources/js/components/AppInputText.vue?vue&type=script&setup=true&lang=js");
1621
+/* harmony import */ var _home_dijitalcode_Projects_bamslaundry_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./node_modules/vue-loader/dist/exportHelper.js */ "./node_modules/vue-loader/dist/exportHelper.js");
1622
+
1623
+
1624
+
1625
+
1626
+;
1627
+const __exports__ = /*#__PURE__*/(0,_home_dijitalcode_Projects_bamslaundry_node_modules_vue_loader_dist_exportHelper_js__WEBPACK_IMPORTED_MODULE_2__["default"])(_AppInputText_vue_vue_type_script_setup_true_lang_js__WEBPACK_IMPORTED_MODULE_1__["default"], [['render',_AppInputText_vue_vue_type_template_id_16729fe1__WEBPACK_IMPORTED_MODULE_0__.render],['__file',"resources/js/components/AppInputText.vue"]])
1628
+/* hot reload */
1629
+if (false) {}
1630
+
1631
+
1039 1632
 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (__exports__);
1040 1633
 
1041 1634
 /***/ }),
@@ -1200,6 +1793,36 @@ if (false) {}
1200 1793
 
1201 1794
 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (__exports__);
1202 1795
 
1796
+/***/ }),
1797
+
1798
+/***/ "./resources/js/components/AppDropdown.vue?vue&type=script&setup=true&lang=js":
1799
+/*!************************************************************************************!*\
1800
+  !*** ./resources/js/components/AppDropdown.vue?vue&type=script&setup=true&lang=js ***!
1801
+  \************************************************************************************/
1802
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1803
+
1804
+__webpack_require__.r(__webpack_exports__);
1805
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1806
+/* harmony export */   "default": () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_AppDropdown_vue_vue_type_script_setup_true_lang_js__WEBPACK_IMPORTED_MODULE_0__["default"])
1807
+/* harmony export */ });
1808
+/* harmony import */ var _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_AppDropdown_vue_vue_type_script_setup_true_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./AppDropdown.vue?vue&type=script&setup=true&lang=js */ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/components/AppDropdown.vue?vue&type=script&setup=true&lang=js");
1809
+ 
1810
+
1811
+/***/ }),
1812
+
1813
+/***/ "./resources/js/components/AppInputText.vue?vue&type=script&setup=true&lang=js":
1814
+/*!*************************************************************************************!*\
1815
+  !*** ./resources/js/components/AppInputText.vue?vue&type=script&setup=true&lang=js ***!
1816
+  \*************************************************************************************/
1817
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1818
+
1819
+__webpack_require__.r(__webpack_exports__);
1820
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1821
+/* harmony export */   "default": () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_AppInputText_vue_vue_type_script_setup_true_lang_js__WEBPACK_IMPORTED_MODULE_0__["default"])
1822
+/* harmony export */ });
1823
+/* harmony import */ var _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_AppInputText_vue_vue_type_script_setup_true_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./AppInputText.vue?vue&type=script&setup=true&lang=js */ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/components/AppInputText.vue?vue&type=script&setup=true&lang=js");
1824
+ 
1825
+
1203 1826
 /***/ }),
1204 1827
 
1205 1828
 /***/ "./resources/js/components/AppMessage.vue?vue&type=script&setup=true&lang=js":
@@ -1290,6 +1913,21 @@ __webpack_require__.r(__webpack_exports__);
1290 1913
 /* harmony import */ var _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_Show_vue_vue_type_script_setup_true_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./Show.vue?vue&type=script&setup=true&lang=js */ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/pages/user/Show.vue?vue&type=script&setup=true&lang=js");
1291 1914
  
1292 1915
 
1916
+/***/ }),
1917
+
1918
+/***/ "./resources/js/components/AppDropdown.vue?vue&type=template&id=ce0d1992":
1919
+/*!*******************************************************************************!*\
1920
+  !*** ./resources/js/components/AppDropdown.vue?vue&type=template&id=ce0d1992 ***!
1921
+  \*******************************************************************************/
1922
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1923
+
1924
+__webpack_require__.r(__webpack_exports__);
1925
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1926
+/* harmony export */   "render": () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_vue_loader_dist_templateLoader_js_ruleSet_1_rules_2_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_AppDropdown_vue_vue_type_template_id_ce0d1992__WEBPACK_IMPORTED_MODULE_0__.render)
1927
+/* harmony export */ });
1928
+/* harmony import */ var _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_vue_loader_dist_templateLoader_js_ruleSet_1_rules_2_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_AppDropdown_vue_vue_type_template_id_ce0d1992__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[2]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./AppDropdown.vue?vue&type=template&id=ce0d1992 */ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/components/AppDropdown.vue?vue&type=template&id=ce0d1992");
1929
+
1930
+
1293 1931
 /***/ }),
1294 1932
 
1295 1933
 /***/ "./resources/js/components/AppFooter.vue?vue&type=template&id=4ab6097e":
@@ -1305,6 +1943,21 @@ __webpack_require__.r(__webpack_exports__);
1305 1943
 /* harmony import */ var _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_vue_loader_dist_templateLoader_js_ruleSet_1_rules_2_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_AppFooter_vue_vue_type_template_id_4ab6097e__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[2]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./AppFooter.vue?vue&type=template&id=4ab6097e */ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/components/AppFooter.vue?vue&type=template&id=4ab6097e");
1306 1944
 
1307 1945
 
1946
+/***/ }),
1947
+
1948
+/***/ "./resources/js/components/AppInputText.vue?vue&type=template&id=16729fe1":
1949
+/*!********************************************************************************!*\
1950
+  !*** ./resources/js/components/AppInputText.vue?vue&type=template&id=16729fe1 ***!
1951
+  \********************************************************************************/
1952
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1953
+
1954
+__webpack_require__.r(__webpack_exports__);
1955
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1956
+/* harmony export */   "render": () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_vue_loader_dist_templateLoader_js_ruleSet_1_rules_2_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_AppInputText_vue_vue_type_template_id_16729fe1__WEBPACK_IMPORTED_MODULE_0__.render)
1957
+/* harmony export */ });
1958
+/* harmony import */ var _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_vue_loader_dist_templateLoader_js_ruleSet_1_rules_2_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_AppInputText_vue_vue_type_template_id_16729fe1__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[2]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./AppInputText.vue?vue&type=template&id=16729fe1 */ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/components/AppInputText.vue?vue&type=template&id=16729fe1");
1959
+
1960
+
1308 1961
 /***/ }),
1309 1962
 
1310 1963
 /***/ "./resources/js/components/AppMessage.vue?vue&type=template&id=07159051":

+ 347
- 3
public/js/vue.js Просмотреть файл

@@ -42541,6 +42541,346 @@ const StyleClass = {
42541 42541
 /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (StyleClass);
42542 42542
 
42543 42543
 
42544
+/***/ }),
42545
+
42546
+/***/ "./node_modules/primevue/tabpanel/tabpanel.esm.js":
42547
+/*!********************************************************!*\
42548
+  !*** ./node_modules/primevue/tabpanel/tabpanel.esm.js ***!
42549
+  \********************************************************/
42550
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
42551
+
42552
+"use strict";
42553
+__webpack_require__.r(__webpack_exports__);
42554
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
42555
+/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
42556
+/* harmony export */ });
42557
+/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.esm-bundler.js");
42558
+
42559
+
42560
+var script = {
42561
+    name: 'TabPanel',
42562
+    props: {
42563
+        header: null,
42564
+        disabled: Boolean
42565
+    }
42566
+};
42567
+
42568
+function render(_ctx, _cache, $props, $setup, $data, $options) {
42569
+  return (0,vue__WEBPACK_IMPORTED_MODULE_0__.renderSlot)(_ctx.$slots, "default")
42570
+}
42571
+
42572
+script.render = render;
42573
+
42574
+/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (script);
42575
+
42576
+
42577
+/***/ }),
42578
+
42579
+/***/ "./node_modules/primevue/tabview/tabview.esm.js":
42580
+/*!******************************************************!*\
42581
+  !*** ./node_modules/primevue/tabview/tabview.esm.js ***!
42582
+  \******************************************************/
42583
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
42584
+
42585
+"use strict";
42586
+__webpack_require__.r(__webpack_exports__);
42587
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
42588
+/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
42589
+/* harmony export */ });
42590
+/* harmony import */ var primevue_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! primevue/utils */ "./node_modules/primevue/utils/utils.esm.js");
42591
+/* harmony import */ var primevue_ripple__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! primevue/ripple */ "./node_modules/primevue/ripple/ripple.esm.js");
42592
+/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.esm-bundler.js");
42593
+
42594
+
42595
+
42596
+
42597
+var script = {
42598
+    name: 'TabView',
42599
+    emits: ['update:activeIndex', 'tab-change', 'tab-click'],
42600
+    props: {
42601
+        activeIndex: {
42602
+            type: Number,
42603
+            default: 0
42604
+        },
42605
+        lazy: {
42606
+            type: Boolean,
42607
+            default: false
42608
+        },
42609
+        scrollable: {
42610
+            type: Boolean,
42611
+            default: false
42612
+        }
42613
+    },
42614
+    data() {
42615
+        return {
42616
+            d_activeIndex: this.activeIndex,
42617
+            backwardIsDisabled: true,
42618
+            forwardIsDisabled: false
42619
+        }
42620
+    },
42621
+    watch: {
42622
+        activeIndex(newValue) {
42623
+            this.d_activeIndex = newValue;
42624
+
42625
+            this.updateScrollBar(newValue);
42626
+        }
42627
+    },
42628
+    updated() {
42629
+        this.updateInkBar();
42630
+    },
42631
+    mounted() {
42632
+        this.updateInkBar();
42633
+    },
42634
+    methods: {
42635
+        onTabClick(event, i) {
42636
+            if (!this.isTabDisabled(this.tabs[i]) && i !== this.d_activeIndex) {
42637
+                this.d_activeIndex = i;
42638
+                this.$emit('update:activeIndex', this.d_activeIndex);
42639
+
42640
+                this.$emit('tab-change', {
42641
+                    originalEvent: event,
42642
+                    index: i
42643
+                });
42644
+
42645
+                this.updateScrollBar(i);
42646
+            }
42647
+
42648
+            this.$emit('tab-click', {
42649
+                originalEvent: event,
42650
+                index: i
42651
+            });
42652
+        },
42653
+        onTabKeydown(event, i) {
42654
+            if (event.which === 13) {
42655
+                this.onTabClick(event, i);
42656
+            }
42657
+        },
42658
+        updateInkBar() {
42659
+            let tabHeader = this.$refs.nav.children[this.d_activeIndex];
42660
+            this.$refs.inkbar.style.width = primevue_utils__WEBPACK_IMPORTED_MODULE_0__.DomHandler.getWidth(tabHeader) + 'px';
42661
+            this.$refs.inkbar.style.left =  primevue_utils__WEBPACK_IMPORTED_MODULE_0__.DomHandler.getOffset(tabHeader).left - primevue_utils__WEBPACK_IMPORTED_MODULE_0__.DomHandler.getOffset(this.$refs.nav).left + 'px';
42662
+        },
42663
+        updateScrollBar(index) {
42664
+            let tabHeader = this.$refs.nav.children[index];
42665
+            tabHeader.scrollIntoView({ block: 'nearest' });
42666
+        },
42667
+        updateButtonState() {
42668
+            const content = this.$refs.content;
42669
+            const { scrollLeft, scrollWidth } = content;
42670
+            const width = primevue_utils__WEBPACK_IMPORTED_MODULE_0__.DomHandler.getWidth(content);
42671
+
42672
+            this.backwardIsDisabled = scrollLeft === 0;
42673
+            this.forwardIsDisabled = parseInt(scrollLeft) === scrollWidth - width;
42674
+        },
42675
+        getKey(tab, i) {
42676
+            return (tab.props && tab.props.header) ? tab.props.header : i;
42677
+        },
42678
+        isTabDisabled(tab) {
42679
+            return (tab.props && tab.props.disabled);
42680
+        },
42681
+        isTabPanel(child) {
42682
+            return child.type.name === 'TabPanel'
42683
+        },
42684
+        onScroll(event) {
42685
+            this.scrollable && this.updateButtonState();
42686
+
42687
+            event.preventDefault();
42688
+        },
42689
+        getVisibleButtonWidths() {
42690
+            const { prevBtn, nextBtn } = this.$refs;
42691
+
42692
+            return [prevBtn, nextBtn].reduce((acc, el) => el ? acc + primevue_utils__WEBPACK_IMPORTED_MODULE_0__.DomHandler.getWidth(el) : acc, 0);
42693
+        },
42694
+        navBackward() {
42695
+            const content = this.$refs.content;
42696
+            const width = primevue_utils__WEBPACK_IMPORTED_MODULE_0__.DomHandler.getWidth(content) - this.getVisibleButtonWidths();
42697
+            const pos = content.scrollLeft - width;
42698
+            content.scrollLeft = pos <= 0 ? 0 : pos;
42699
+        },
42700
+        navForward() {
42701
+            const content = this.$refs.content;
42702
+            const width = primevue_utils__WEBPACK_IMPORTED_MODULE_0__.DomHandler.getWidth(content) - this.getVisibleButtonWidths();
42703
+            const pos = content.scrollLeft + width;
42704
+            const lastPos = content.scrollWidth - width;
42705
+
42706
+            content.scrollLeft = pos >= lastPos ? lastPos : pos;
42707
+        }
42708
+    },
42709
+    computed: {
42710
+        contentClasses() {
42711
+			return ['p-tabview p-component', {'p-tabview-scrollable': this.scrollable}];
42712
+		},
42713
+        prevButtonClasses() {
42714
+            return ['p-tabview-nav-prev p-tabview-nav-btn p-link']
42715
+        },
42716
+        nextButtonClasses() {
42717
+            return ['p-tabview-nav-next p-tabview-nav-btn p-link']
42718
+        },
42719
+        tabs() {
42720
+            const tabs = [];
42721
+            this.$slots.default().forEach(child => {
42722
+                    if (this.isTabPanel(child)) {
42723
+                        tabs.push(child);
42724
+                    }
42725
+                    else if (child.children && child.children instanceof Array) {
42726
+                        child.children.forEach(nestedChild => {
42727
+                            if (this.isTabPanel(nestedChild)) {
42728
+                                tabs.push(nestedChild);
42729
+                            }
42730
+                        });
42731
+                    }
42732
+                }
42733
+            );
42734
+            return tabs;
42735
+        }
42736
+    },
42737
+    directives: {
42738
+        'ripple': primevue_ripple__WEBPACK_IMPORTED_MODULE_1__["default"]
42739
+    }
42740
+};
42741
+
42742
+const _hoisted_1 = { class: "p-tabview-nav-container" };
42743
+const _hoisted_2 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_2__.createVNode)("span", { class: "pi pi-chevron-left" }, null, -1);
42744
+const _hoisted_3 = {
42745
+  ref: "nav",
42746
+  class: "p-tabview-nav",
42747
+  role: "tablist"
42748
+};
42749
+const _hoisted_4 = {
42750
+  key: 0,
42751
+  class: "p-tabview-title"
42752
+};
42753
+const _hoisted_5 = {
42754
+  ref: "inkbar",
42755
+  class: "p-tabview-ink-bar"
42756
+};
42757
+const _hoisted_6 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_2__.createVNode)("span", { class: "pi pi-chevron-right" }, null, -1);
42758
+const _hoisted_7 = { class: "p-tabview-panels" };
42759
+const _hoisted_8 = {
42760
+  key: 0,
42761
+  class: "p-tabview-panel",
42762
+  role: "tabpanel"
42763
+};
42764
+
42765
+function render(_ctx, _cache, $props, $setup, $data, $options) {
42766
+  const _directive_ripple = (0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveDirective)("ripple");
42767
+
42768
+  return ((0,vue__WEBPACK_IMPORTED_MODULE_2__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createBlock)("div", { class: $options.contentClasses }, [
42769
+    (0,vue__WEBPACK_IMPORTED_MODULE_2__.createVNode)("div", _hoisted_1, [
42770
+      ($props.scrollable && !$data.backwardIsDisabled)
42771
+        ? (0,vue__WEBPACK_IMPORTED_MODULE_2__.withDirectives)(((0,vue__WEBPACK_IMPORTED_MODULE_2__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createBlock)("button", {
42772
+            key: 0,
42773
+            ref: "prevBtn",
42774
+            class: $options.prevButtonClasses,
42775
+            onClick: _cache[1] || (_cache[1] = (...args) => ($options.navBackward && $options.navBackward(...args))),
42776
+            type: "button"
42777
+          }, [
42778
+            _hoisted_2
42779
+          ], 2)), [
42780
+            [_directive_ripple]
42781
+          ])
42782
+        : (0,vue__WEBPACK_IMPORTED_MODULE_2__.createCommentVNode)("", true),
42783
+      (0,vue__WEBPACK_IMPORTED_MODULE_2__.createVNode)("div", {
42784
+        ref: "content",
42785
+        class: "p-tabview-nav-content",
42786
+        onScroll: _cache[2] || (_cache[2] = (...args) => ($options.onScroll && $options.onScroll(...args)))
42787
+      }, [
42788
+        (0,vue__WEBPACK_IMPORTED_MODULE_2__.createVNode)("ul", _hoisted_3, [
42789
+          ((0,vue__WEBPACK_IMPORTED_MODULE_2__.openBlock)(true), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createBlock)(vue__WEBPACK_IMPORTED_MODULE_2__.Fragment, null, (0,vue__WEBPACK_IMPORTED_MODULE_2__.renderList)($options.tabs, (tab, i) => {
42790
+            return ((0,vue__WEBPACK_IMPORTED_MODULE_2__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createBlock)("li", {
42791
+              role: "presentation",
42792
+              key: $options.getKey(tab,i),
42793
+              class: [{'p-highlight': ($data.d_activeIndex === i), 'p-disabled': $options.isTabDisabled(tab)}]
42794
+            }, [
42795
+              (0,vue__WEBPACK_IMPORTED_MODULE_2__.withDirectives)((0,vue__WEBPACK_IMPORTED_MODULE_2__.createVNode)("a", {
42796
+                role: "tab",
42797
+                class: "p-tabview-nav-link",
42798
+                onClick: $event => ($options.onTabClick($event, i)),
42799
+                onKeydown: $event => ($options.onTabKeydown($event, i)),
42800
+                tabindex: $options.isTabDisabled(tab) ? null : '0',
42801
+                "aria-selected": $data.d_activeIndex === i
42802
+              }, [
42803
+                (tab.props && tab.props.header)
42804
+                  ? ((0,vue__WEBPACK_IMPORTED_MODULE_2__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createBlock)("span", _hoisted_4, (0,vue__WEBPACK_IMPORTED_MODULE_2__.toDisplayString)(tab.props.header), 1))
42805
+                  : (0,vue__WEBPACK_IMPORTED_MODULE_2__.createCommentVNode)("", true),
42806
+                (tab.children && tab.children.header)
42807
+                  ? ((0,vue__WEBPACK_IMPORTED_MODULE_2__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createBlock)((0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveDynamicComponent)(tab.children.header), { key: 1 }))
42808
+                  : (0,vue__WEBPACK_IMPORTED_MODULE_2__.createCommentVNode)("", true)
42809
+              ], 40, ["onClick", "onKeydown", "tabindex", "aria-selected"]), [
42810
+                [_directive_ripple]
42811
+              ])
42812
+            ], 2))
42813
+          }), 128)),
42814
+          (0,vue__WEBPACK_IMPORTED_MODULE_2__.createVNode)("li", _hoisted_5, null, 512)
42815
+        ], 512)
42816
+      ], 544),
42817
+      ($props.scrollable && !$data.forwardIsDisabled)
42818
+        ? (0,vue__WEBPACK_IMPORTED_MODULE_2__.withDirectives)(((0,vue__WEBPACK_IMPORTED_MODULE_2__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createBlock)("button", {
42819
+            key: 1,
42820
+            ref: "nextBtn",
42821
+            class: $options.nextButtonClasses,
42822
+            onClick: _cache[3] || (_cache[3] = (...args) => ($options.navForward && $options.navForward(...args))),
42823
+            type: "button"
42824
+          }, [
42825
+            _hoisted_6
42826
+          ], 2)), [
42827
+            [_directive_ripple]
42828
+          ])
42829
+        : (0,vue__WEBPACK_IMPORTED_MODULE_2__.createCommentVNode)("", true)
42830
+    ]),
42831
+    (0,vue__WEBPACK_IMPORTED_MODULE_2__.createVNode)("div", _hoisted_7, [
42832
+      ((0,vue__WEBPACK_IMPORTED_MODULE_2__.openBlock)(true), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createBlock)(vue__WEBPACK_IMPORTED_MODULE_2__.Fragment, null, (0,vue__WEBPACK_IMPORTED_MODULE_2__.renderList)($options.tabs, (tab, i) => {
42833
+        return ((0,vue__WEBPACK_IMPORTED_MODULE_2__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createBlock)(vue__WEBPACK_IMPORTED_MODULE_2__.Fragment, {
42834
+          key: $options.getKey(tab,i)
42835
+        }, [
42836
+          ($props.lazy ? ($data.d_activeIndex === i) : true)
42837
+            ? (0,vue__WEBPACK_IMPORTED_MODULE_2__.withDirectives)(((0,vue__WEBPACK_IMPORTED_MODULE_2__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createBlock)("div", _hoisted_8, [
42838
+                ((0,vue__WEBPACK_IMPORTED_MODULE_2__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_2__.createBlock)((0,vue__WEBPACK_IMPORTED_MODULE_2__.resolveDynamicComponent)(tab)))
42839
+              ], 512)), [
42840
+                [vue__WEBPACK_IMPORTED_MODULE_2__.vShow, $props.lazy ? true: ($data.d_activeIndex === i)]
42841
+              ])
42842
+            : (0,vue__WEBPACK_IMPORTED_MODULE_2__.createCommentVNode)("", true)
42843
+        ], 64))
42844
+      }), 128))
42845
+    ])
42846
+  ], 2))
42847
+}
42848
+
42849
+function styleInject(css, ref) {
42850
+  if ( ref === void 0 ) ref = {};
42851
+  var insertAt = ref.insertAt;
42852
+
42853
+  if (!css || typeof document === 'undefined') { return; }
42854
+
42855
+  var head = document.head || document.getElementsByTagName('head')[0];
42856
+  var style = document.createElement('style');
42857
+  style.type = 'text/css';
42858
+
42859
+  if (insertAt === 'top') {
42860
+    if (head.firstChild) {
42861
+      head.insertBefore(style, head.firstChild);
42862
+    } else {
42863
+      head.appendChild(style);
42864
+    }
42865
+  } else {
42866
+    head.appendChild(style);
42867
+  }
42868
+
42869
+  if (style.styleSheet) {
42870
+    style.styleSheet.cssText = css;
42871
+  } else {
42872
+    style.appendChild(document.createTextNode(css));
42873
+  }
42874
+}
42875
+
42876
+var css_248z = "\n.p-tabview-nav-container {\n    position: relative;\n}\n.p-tabview-scrollable .p-tabview-nav-container {\n    overflow: hidden;\n}\n.p-tabview-nav-content {\n    overflow-x: auto;\n    overflow-y: hidden;\n    scroll-behavior: smooth;\n    scrollbar-width: none;\n    -ms-scroll-chaining: contain auto;\n        overscroll-behavior: contain auto;\n}\n.p-tabview-nav {\n    display: -webkit-box;\n    display: -ms-flexbox;\n    display: flex;\n    margin: 0;\n    padding: 0;\n    list-style-type: none;\n    -webkit-box-flex: 1;\n        -ms-flex: 1 1 auto;\n            flex: 1 1 auto;\n}\n.p-tabview-nav-link {\n    cursor: pointer;\n    -webkit-user-select: none;\n       -moz-user-select: none;\n        -ms-user-select: none;\n            user-select: none;\n    display: -webkit-box;\n    display: -ms-flexbox;\n    display: flex;\n    -webkit-box-align: center;\n        -ms-flex-align: center;\n            align-items: center;\n    position: relative;\n    text-decoration: none;\n    overflow: hidden;\n}\n.p-tabview-ink-bar {\n    display: none;\n    z-index: 1;\n}\n.p-tabview-nav-link:focus {\n    z-index: 1;\n}\n.p-tabview-title {\n    line-height: 1;\n    white-space: nowrap;\n}\n.p-tabview-nav-btn {\n    position: absolute;\n    top: 0;\n    z-index: 2;\n    height: 100%;\n    display: -webkit-box;\n    display: -ms-flexbox;\n    display: flex;\n    -webkit-box-align: center;\n        -ms-flex-align: center;\n            align-items: center;\n    -webkit-box-pack: center;\n        -ms-flex-pack: center;\n            justify-content: center;\n}\n.p-tabview-nav-prev {\n    left: 0;\n}\n.p-tabview-nav-next {\n    right: 0;\n}\n.p-tabview-nav-content::-webkit-scrollbar {\n    display: none;\n}\n";
42877
+styleInject(css_248z);
42878
+
42879
+script.render = render;
42880
+
42881
+/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (script);
42882
+
42883
+
42544 42884
 /***/ }),
42545 42885
 
42546 42886
 /***/ "./node_modules/primevue/tooltip/tooltip.esm.js":
@@ -57438,7 +57778,7 @@ module.exports = JSON.parse('{"name":"axios","version":"0.21.4","description":"P
57438 57778
 /******/ 		// This function allow to reference async chunks
57439 57779
 /******/ 		__webpack_require__.u = (chunkId) => {
57440 57780
 /******/ 			// return url for filenames based on template
57441
-/******/ 			return "js/" + chunkId + ".js?id=" + {"resources_js_pages_Access_vue":"a18ed856923fae52","resources_js_pages_auth_ForgotPassword_vue":"c9f401672b6f2423","resources_js_pages_auth_Login_vue":"cb0cb153b976d2c1","resources_js_pages_auth_ResetPassword_vue":"1078df5cebf2e3c6","resources_js_pages_auth_VerifyEmail_vue":"2c5cb3cdec6b103a","resources_js_pages_customer_Create_vue":"2ab1bfe966d63c05","resources_js_pages_customer_Edit_vue":"eec13676f1adcd9d","resources_js_pages_customer_Index_vue":"4259b986f780abc9","resources_js_pages_customer_TableHeader_js":"71be5afdca048a9c","resources_js_pages_discount_Index_vue":"233f32fa40a8873f","resources_js_pages_expense_Create_vue":"e126aeeceebab2d9","resources_js_pages_expense_Index_vue":"366a899860cfffd9","resources_js_pages_expense_Show_vue":"0477597884668aa1","resources_js_pages_expense_TableHeader_js":"72e3dee74175b1c0","resources_js_pages_laundry_Create_vue":"af84a8b9ddaf4406","resources_js_pages_laundry_Edit_vue":"bdb956a88c1696cb","resources_js_pages_laundry_Index_vue":"28054a4617f340a0","resources_js_pages_laundry_TableHeader_js":"494e577855bbcaf6","resources_js_pages_mutation_Report_vue":"d24c1606a05c9043","resources_js_pages_mutation_TableHeader_js":"82c2999bd7d098a1","resources_js_pages_outlet_Create_vue":"e331847fbc3b8be5","resources_js_pages_outlet_Edit_vue":"4167cc036f2e0427","resources_js_pages_outlet_Index_vue":"b772fcbc6d0ae225","resources_js_pages_outlet_TableHeader_js":"498bf7e64bc0d0c4","resources_js_pages_product_Create_vue":"d1cd523702069b99","resources_js_pages_product_Edit_vue":"09eaa29d70ca40a1","resources_js_pages_product_Index_vue":"3af202784c744a88","resources_js_pages_product_TableHeader_js":"b8eaaa9de25a2322","resources_js_pages_transaction_Create_vue":"84996ab918119341","resources_js_pages_transaction_Index_vue":"0098f876145404c5","resources_js_pages_transaction_Report_vue":"79eae94abc7140c4","resources_js_pages_transaction_Show_vue":"57f1269962828f65","resources_js_pages_transaction_TableHeader_js":"ba35ab28bb4ac891","resources_js_pages_user_Create_vue":"bf32e243021c2c18","resources_js_pages_user_Edit_vue":"a89fcc013120d065","resources_js_pages_user_Index_vue":"45349fb80815d068","resources_js_pages_user_Show_vue":"75c79b3167b7f393","resources_js_pages_user_TableHeader_js":"5653ecbcd70fd235"}[chunkId] + "";
57781
+/******/ 			return "js/" + chunkId + ".js?id=" + {"resources_js_pages_Access_vue":"a18ed856923fae52","resources_js_pages_auth_ForgotPassword_vue":"c9f401672b6f2423","resources_js_pages_auth_Login_vue":"cb0cb153b976d2c1","resources_js_pages_auth_ResetPassword_vue":"1078df5cebf2e3c6","resources_js_pages_auth_VerifyEmail_vue":"2c5cb3cdec6b103a","resources_js_pages_customer_Create_vue":"43d285d678ba8793","resources_js_pages_customer_Edit_vue":"01d10f0dd19b734c","resources_js_pages_customer_Index_vue":"0ca5a813eacb510a","resources_js_pages_customer_TableHeader_js":"71be5afdca048a9c","resources_js_pages_discount_Index_vue":"92526f49d3e0a66d","resources_js_pages_expense_Create_vue":"18c4b47fcb9e103a","resources_js_pages_expense_Index_vue":"d195311d84b82d44","resources_js_pages_expense_Show_vue":"4801bedc7912088f","resources_js_pages_expense_TableHeader_js":"72e3dee74175b1c0","resources_js_pages_laundry_Create_vue":"aae1027a621900d5","resources_js_pages_laundry_Edit_vue":"160898ea138ee162","resources_js_pages_laundry_Index_vue":"29e5e4317fa0862d","resources_js_pages_laundry_TableHeader_js":"494e577855bbcaf6","resources_js_pages_mutation_Report_vue":"d74f6004bddcfdc6","resources_js_pages_mutation_TableHeader_js":"82c2999bd7d098a1","resources_js_pages_outlet_Create_vue":"48bdc532cf3f8c62","resources_js_pages_outlet_Edit_vue":"32338ffd7c28e656","resources_js_pages_outlet_Index_vue":"e1f9a19ae0ffa3df","resources_js_pages_outlet_TableHeader_js":"498bf7e64bc0d0c4","resources_js_pages_product_Create_vue":"4e737e98d38eca28","resources_js_pages_product_Edit_vue":"ddac8c4ce1363cc3","resources_js_pages_product_Index_vue":"ff1e209ae8b6ebbd","resources_js_pages_product_TableHeader_js":"b8eaaa9de25a2322","resources_js_pages_transaction_Create_vue":"bc8669735a72a0ec","resources_js_pages_transaction_Index_vue":"6da809da30371f6f","resources_js_pages_transaction_Report_vue":"eeca91c15c146171","resources_js_pages_transaction_Show_vue":"2087aac76bbbf7f1","resources_js_pages_transaction_TableHeader_js":"ba35ab28bb4ac891","resources_js_pages_user_Create_vue":"1f5759b89d51290b","resources_js_pages_user_Edit_vue":"8e9cac16a201e333","resources_js_pages_user_Index_vue":"e798523892e8e90c","resources_js_pages_user_Show_vue":"ec4048350fb26f43","resources_js_pages_user_TableHeader_js":"5653ecbcd70fd235"}[chunkId] + "";
57442 57782
 /******/ 		};
57443 57783
 /******/ 	})();
57444 57784
 /******/ 	
@@ -57665,7 +58005,11 @@ __webpack_require__.r(__webpack_exports__);
57665 58005
 /* harmony import */ var primevue_paginator__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! primevue/paginator */ "./node_modules/primevue/paginator/paginator.esm.js");
57666 58006
 /* harmony import */ var primevue_password__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! primevue/password */ "./node_modules/primevue/password/password.esm.js");
57667 58007
 /* harmony import */ var primevue_ripple__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! primevue/ripple */ "./node_modules/primevue/ripple/ripple.esm.js");
57668
-/* harmony import */ var primevue_tooltip__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! primevue/tooltip */ "./node_modules/primevue/tooltip/tooltip.esm.js");
58008
+/* harmony import */ var primevue_tabview__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! primevue/tabview */ "./node_modules/primevue/tabview/tabview.esm.js");
58009
+/* harmony import */ var primevue_tabpanel__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! primevue/tabpanel */ "./node_modules/primevue/tabpanel/tabpanel.esm.js");
58010
+/* harmony import */ var primevue_tooltip__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! primevue/tooltip */ "./node_modules/primevue/tooltip/tooltip.esm.js");
58011
+
58012
+
57669 58013
 
57670 58014
 
57671 58015
 
@@ -57716,7 +58060,7 @@ __webpack_require__.r(__webpack_exports__);
57716 58060
       methods: {
57717 58061
         route: route
57718 58062
       }
57719
-    }).directive('styleclass', primevue_styleclass__WEBPACK_IMPORTED_MODULE_9__["default"]).directive('ripple', primevue_ripple__WEBPACK_IMPORTED_MODULE_26__["default"]).directive('tooltip', primevue_tooltip__WEBPACK_IMPORTED_MODULE_27__["default"]).component('AutoComplete', primevue_autocomplete__WEBPACK_IMPORTED_MODULE_10__["default"]).component('Button', primevue_button__WEBPACK_IMPORTED_MODULE_12__["default"]).component('Badge', primevue_badge__WEBPACK_IMPORTED_MODULE_11__["default"]).component('Card', primevue_card__WEBPACK_IMPORTED_MODULE_14__["default"]).component('Calendar', primevue_calendar__WEBPACK_IMPORTED_MODULE_13__["default"]).component('Column', primevue_column__WEBPACK_IMPORTED_MODULE_15__["default"]).component('DataTable', primevue_datatable__WEBPACK_IMPORTED_MODULE_16__["default"]).component('Dialog', primevue_dialog__WEBPACK_IMPORTED_MODULE_17__["default"]).component('Divider', primevue_divider__WEBPACK_IMPORTED_MODULE_18__["default"]).component('Dropdown', primevue_dropdown__WEBPACK_IMPORTED_MODULE_19__["default"]).component('Editor', primevue_editor__WEBPACK_IMPORTED_MODULE_20__["default"]).component('InputNumber', primevue_inputnumber__WEBPACK_IMPORTED_MODULE_21__["default"]).component('InputText', primevue_inputtext__WEBPACK_IMPORTED_MODULE_22__["default"]).component('Message', primevue_message__WEBPACK_IMPORTED_MODULE_23__["default"]).component('Paginator', primevue_paginator__WEBPACK_IMPORTED_MODULE_24__["default"]).component('Password', primevue_password__WEBPACK_IMPORTED_MODULE_25__["default"]).mount(el);
58063
+    }).directive('styleclass', primevue_styleclass__WEBPACK_IMPORTED_MODULE_9__["default"]).directive('ripple', primevue_ripple__WEBPACK_IMPORTED_MODULE_26__["default"]).directive('tooltip', primevue_tooltip__WEBPACK_IMPORTED_MODULE_29__["default"]).component('AutoComplete', primevue_autocomplete__WEBPACK_IMPORTED_MODULE_10__["default"]).component('Button', primevue_button__WEBPACK_IMPORTED_MODULE_12__["default"]).component('Badge', primevue_badge__WEBPACK_IMPORTED_MODULE_11__["default"]).component('Card', primevue_card__WEBPACK_IMPORTED_MODULE_14__["default"]).component('Calendar', primevue_calendar__WEBPACK_IMPORTED_MODULE_13__["default"]).component('Column', primevue_column__WEBPACK_IMPORTED_MODULE_15__["default"]).component('DataTable', primevue_datatable__WEBPACK_IMPORTED_MODULE_16__["default"]).component('Dialog', primevue_dialog__WEBPACK_IMPORTED_MODULE_17__["default"]).component('Divider', primevue_divider__WEBPACK_IMPORTED_MODULE_18__["default"]).component('Dropdown', primevue_dropdown__WEBPACK_IMPORTED_MODULE_19__["default"]).component('Editor', primevue_editor__WEBPACK_IMPORTED_MODULE_20__["default"]).component('InputNumber', primevue_inputnumber__WEBPACK_IMPORTED_MODULE_21__["default"]).component('InputText', primevue_inputtext__WEBPACK_IMPORTED_MODULE_22__["default"]).component('Message', primevue_message__WEBPACK_IMPORTED_MODULE_23__["default"]).component('Paginator', primevue_paginator__WEBPACK_IMPORTED_MODULE_24__["default"]).component('Password', primevue_password__WEBPACK_IMPORTED_MODULE_25__["default"]).component('TabView', primevue_tabview__WEBPACK_IMPORTED_MODULE_27__["default"]).component('TabPanel', primevue_tabpanel__WEBPACK_IMPORTED_MODULE_28__["default"]).mount(el);
57720 58064
   }
57721 58065
 });
57722 58066
 _inertiajs_progress__WEBPACK_IMPORTED_MODULE_7__.InertiaProgress.init({

+ 2
- 2
resources/js/components/AppTopBar.vue Просмотреть файл

@@ -36,10 +36,10 @@ defineEmits(['menu-toggle'])
36 36
         <Link
37 37
           :href="route('users.show', $page.props.auth.user.id)"
38 38
           class="p-link layout-topbar-button"
39
-          v-tooltip.bottom="'Pengaturan Profil'"
39
+          v-tooltip.bottom="'Profil Saya'"
40 40
         >
41 41
           <i class="pi pi-user"></i>
42
-          <span>Pengaturan Profil</span>
42
+          <span>Profil Saya</span>
43 43
         </Link>
44 44
 
45 45
         <Link

+ 2
- 2
resources/js/pages/discount/Index.vue Просмотреть файл

@@ -28,11 +28,11 @@ const submit = () => {
28 28
   <Head title="Pengaturan Diskon" />
29 29
 
30 30
   <AppLayout>
31
-    <h1>Diskon</h1>
32
-
33 31
     <div class="grid">
34 32
       <div class="col-fixed">
35 33
         <Card>
34
+          <template #title> Diskon </template>
35
+
36 36
           <template #content>
37 37
             <AppInputNumber
38 38
               label="Jumlah diskon"

+ 7
- 1
resources/js/pages/user/Create.vue Просмотреть файл

@@ -86,7 +86,13 @@ const submit = () => {
86 86
 
87 87
           <template #footer>
88 88
             <div class="flex justify-content-end">
89
-              <Button label="Simpan" icon="pi pi-check" class="p-button-text" @click="submit" />
89
+              <Button
90
+                label="Simpan"
91
+                icon="pi pi-check"
92
+                class="p-button-text"
93
+                :disabled="form.processing"
94
+                @click="submit"
95
+              />
90 96
             </div>
91 97
           </template>
92 98
         </Card>

+ 7
- 1
resources/js/pages/user/Edit.vue Просмотреть файл

@@ -120,7 +120,13 @@ watch(errors, () => {
120 120
                   :href="route('users.block', user.id)"
121 121
                 />
122 122
 
123
-                <Button label="Simpan" class="p-button-text" icon="pi pi-check" @click="submit" />
123
+                <Button
124
+                  label="Simpan"
125
+                  class="p-button-text"
126
+                  icon="pi pi-check"
127
+                  :disabled="form.processing"
128
+                  @click="submit"
129
+                />
124 130
               </div>
125 131
             </div>
126 132
           </template>

+ 141
- 4
resources/js/pages/user/Show.vue Просмотреть файл

@@ -1,18 +1,155 @@
1 1
 <script setup>
2
-import { Head } from '@inertiajs/inertia-vue3'
2
+import { Head, useForm } from '@inertiajs/inertia-vue3'
3 3
 import AppLayout from '@/layouts/AppLayout.vue'
4
+import AppInputText from '@/components/AppInputText.vue'
5
+import AppDropdown from '@/components/AppDropdown.vue'
4 6
 
5
-defineProps({
7
+const props = defineProps({
6 8
   user: Object,
7 9
   roles: Array,
10
+  outlets: Array,
8 11
   genders: Array,
9 12
 })
13
+
14
+const form = useForm({
15
+  name: props.user.name,
16
+  phone: props.user.phone,
17
+  email: props.user.email,
18
+  gender_id: props.user.gender_id,
19
+  outlet_id: props.user.outlet_id,
20
+  role_id: props.user.role_id,
21
+})
22
+
23
+const submit = () => {
24
+  form.put(route('users.update', props.user.id))
25
+}
26
+
27
+const formChangePassword = useForm({
28
+  old_password: '',
29
+  new_password: '',
30
+  new_password_confirmation: '',
31
+})
32
+
33
+const changePassword = () => {
34
+  formChangePassword.post(route('users.change-password', props.user.id))
35
+}
10 36
 </script>
11 37
 
12 38
 <template>
13
-  <Head title="User Profile" />
39
+  <Head title="Profil Saya" />
14 40
 
15 41
   <AppLayout>
16
-    <h1>{{ user.name }}</h1>
42
+    <div class="grid">
43
+      <div class="col-12 md:col-8">
44
+        <Card>
45
+          <template #title>Profil Saya</template>
46
+
47
+          <template #content>
48
+            <TabView lazy>
49
+              <TabPanel header="Ubah Profil">
50
+                <div class="grid">
51
+                  <div class="col-12 md:col-6">
52
+                    <AppInputText label="Nama" placeholder="nama" :error="form.errors.name" v-model="form.name" />
53
+                  </div>
54
+
55
+                  <div class="col-12 md:col-6">
56
+                    <AppInputText
57
+                      label="Nomor HP"
58
+                      placeholder="nomor hp"
59
+                      :error="form.errors.phone"
60
+                      v-model="form.phone"
61
+                    />
62
+                  </div>
63
+
64
+                  <div class="col-12 md:col-6">
65
+                    <AppInputText label="Email" placeholder="email" :error="form.errors.email" v-model="form.email" />
66
+                  </div>
67
+
68
+                  <div class="col-12 md:col-6">
69
+                    <AppDropdown
70
+                      label="Jenis Kelamin"
71
+                      placeholder="pilih satu"
72
+                      v-model="form.gender_id"
73
+                      :options="genders"
74
+                      :error="form.errors.gender_id"
75
+                    />
76
+                  </div>
77
+
78
+                  <div class="col-12 flex justify-content-end">
79
+                    <Button
80
+                      label="Simpan"
81
+                      icon="pi pi-check"
82
+                      class="p-button-text"
83
+                      :disabled="form.processing"
84
+                      @click="submit"
85
+                    />
86
+                  </div>
87
+                </div>
88
+              </TabPanel>
89
+              <TabPanel header="Ubah Password">
90
+                <div class="grid">
91
+                  <div class="col-12 md:col-6">
92
+                    <div class="field">
93
+                      <label for="old_password">Password Lama</label>
94
+                      <Password
95
+                        id="old_password"
96
+                        label="Password Lama"
97
+                        placeholder="password lama"
98
+                        class="w-full"
99
+                        inputClass="w-full"
100
+                        :toggleMask="true"
101
+                        :error="form.errors.old_password"
102
+                        v-model="formChangePassword.old_password"
103
+                      />
104
+                    </div>
105
+                  </div>
106
+
107
+                  <div class="col-12 md:col-6">
108
+                    <div class="field">
109
+                      <label for="new_password">Password Baru</label>
110
+                      <Password
111
+                        id="new_password"
112
+                        label="Password Baru"
113
+                        placeholder="password baru"
114
+                        class="w-full"
115
+                        inputClass="w-full"
116
+                        :toggleMask="true"
117
+                        :error="formChangePassword.errors.new_password"
118
+                        v-model="formChangePassword.new_password"
119
+                      />
120
+                    </div>
121
+                  </div>
122
+
123
+                  <div class="col-12 md:col-6">
124
+                    <div class="field">
125
+                      <label for="new_password_confirmation">Konfirmasi Password</label>
126
+                      <Password
127
+                        id="new_password_confirmation"
128
+                        label="Konfirmasi Password"
129
+                        placeholder="konfirmasi password"
130
+                        class="w-full"
131
+                        inputClass="w-full"
132
+                        :toggleMask="true"
133
+                        v-model="formChangePassword.new_password_confirmation"
134
+                      />
135
+                    </div>
136
+                  </div>
137
+
138
+                  <div class="col-12 flex justify-content-end">
139
+                    <Button
140
+                      label="Simpan"
141
+                      icon="pi pi-check"
142
+                      class="p-button-text"
143
+                      :disabled="formChangePassword.processing"
144
+                      @click="changePassword"
145
+                    />
146
+                  </div>
147
+                </div>
148
+              </TabPanel>
149
+            </TabView>
150
+          </template>
151
+        </Card>
152
+      </div>
153
+    </div>
17 154
   </AppLayout>
18 155
 </template>

+ 4
- 0
resources/js/vue.js Просмотреть файл

@@ -26,6 +26,8 @@ import Message from 'primevue/message'
26 26
 import Paginator from 'primevue/paginator'
27 27
 import Password from 'primevue/password'
28 28
 import Ripple from 'primevue/ripple'
29
+import TabView from 'primevue/tabview'
30
+import TabPanel from 'primevue/tabpanel'
29 31
 import Tooltip from 'primevue/tooltip'
30 32
 
31 33
 createInertiaApp({
@@ -55,6 +57,8 @@ createInertiaApp({
55 57
       .component('Message', Message)
56 58
       .component('Paginator', Paginator)
57 59
       .component('Password', Password)
60
+      .component('TabView', TabView)
61
+      .component('TabPanel', TabPanel)
58 62
       .mount(el)
59 63
   },
60 64
 })

+ 1
- 0
routes/web.php Просмотреть файл

@@ -28,6 +28,7 @@ Route::middleware(['auth'])->group(function () {
28 28
     Route::get('/', [TransactionController::class, 'index']);
29 29
 
30 30
     Route::delete('/users/block/{user}', [UserController::class, 'block'])->name('users.block');
31
+    Route::post('/users/change-password/{user}', [UserController::class, 'changePassword'])->name('users.change-password');
31 32
     Route::resource('/users', UserController::class);
32 33
 
33 34
     Route::resource('/customers', CustomerController::class);