lib-pajakio-v2 1.0.24 → 1.0.25

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/AGENTS.md ADDED
@@ -0,0 +1,174 @@
1
+ # Panduan Library Component Pajak.io
2
+
3
+ Dokumen ini menjelaskan cara memakai `lib-pajakio-v2`, daftar component yang diekspor, teknologi yang dipakai, dan syarat minimal agar library bisa digunakan di project lain.
4
+
5
+ ## Ringkasan
6
+
7
+ `lib-pajakio-v2` adalah library UI berbasis Vue untuk aplikasi Pajak.io/Fintax. Entry point library berada di `src/install.js` dan mengekspor named component dari `src/components/index.js`.
8
+
9
+ Package:
10
+
11
+ - Nama package: `lib-pajakio-v2`
12
+ - Versi saat dokumen dibuat: `1.0.24`
13
+ - Main bundle: `dist/lib-pajakio-v2.common.js`
14
+ - Style bundle: `dist/lib-pajakio-v2.css`
15
+
16
+ ## Bahasa dan teknologi
17
+
18
+ Library ini memakai:
19
+
20
+ - JavaScript
21
+ - Vue Single File Component (`.vue`)
22
+ - Vue 3
23
+ - SCSS/Sass
24
+ - HTML template Vue
25
+ - CSS utility class lokal dari `src/assets/style`
26
+
27
+ Build tool yang tersedia:
28
+
29
+ - Vue CLI untuk build library (`npm run build-library`)
30
+ - Vite untuk development/build aplikasi demo (`npm run dev`, `npm run build:vite`)
31
+
32
+ ## Syarat penggunaan di project lain
33
+
34
+ Project yang memakai library ini sebaiknya memenuhi syarat berikut:
35
+
36
+ - Menggunakan Vue 3.
37
+ - Menggunakan bundler yang mendukung Vue SFC dan CSS import, misalnya Vite atau Vue CLI.
38
+ - Meng-install dependency runtime yang dibutuhkan component:
39
+ - `vue`
40
+ - `vue-router` jika memakai component yang memakai `<router-link>` atau `$route`, seperti `DashboardFooter` dan sebagian alur `DashboardHeader`.
41
+ - `js-cookie` jika memakai `DashboardHeader` dengan fitur session/logout.
42
+ - Mengimpor CSS library agar styling component aktif.
43
+ - Memastikan alias `@` di project consumer tidak bentrok bila memakai source component langsung. Untuk penggunaan normal dari package, gunakan bundle `dist`.
44
+ - Menyediakan data props dengan shape yang sesuai. Beberapa component masih mengakses property object secara langsung, jadi nilai `null`/shape berbeda bisa memicu error.
45
+
46
+ ## Instalasi dan penggunaan
47
+
48
+ Install package dari registry/private registry yang digunakan project:
49
+
50
+ ```bash
51
+ npm install lib-pajakio-v2
52
+ ```
53
+
54
+ Import component yang dibutuhkan:
55
+
56
+ ```js
57
+ import { BaseButton, FormInput, DatePicker } from "lib-pajakio-v2";
58
+ import "lib-pajakio-v2/dist/lib-pajakio-v2.css";
59
+ ```
60
+
61
+ Contoh pemakaian di Vue:
62
+
63
+ ```vue
64
+ <template>
65
+ <form-input v-model="name" placeholder="Nama wajib pajak">
66
+ <template #label>
67
+ <typo-text variant="body-1-bold">Nama</typo-text>
68
+ </template>
69
+ </form-input>
70
+
71
+ <base-button variant="primary" icon-left="save">
72
+ Simpan
73
+ </base-button>
74
+ </template>
75
+
76
+ <script>
77
+ import { BaseButton, FormInput, TypoText } from "lib-pajakio-v2";
78
+ import "lib-pajakio-v2/dist/lib-pajakio-v2.css";
79
+
80
+ export default {
81
+ components: { BaseButton, FormInput, TypoText },
82
+ data() {
83
+ return { name: "" };
84
+ },
85
+ };
86
+ </script>
87
+ ```
88
+
89
+ Library ini belum menyediakan plugin installer global (`app.use(...)`). Cara paling aman adalah import named component dan register di component/page yang membutuhkan.
90
+
91
+ ## Development library
92
+
93
+ Install dependency:
94
+
95
+ ```bash
96
+ npm install
97
+ ```
98
+
99
+ Jalankan demo Vue CLI:
100
+
101
+ ```bash
102
+ npm run serve
103
+ ```
104
+
105
+ Jalankan demo Vite:
106
+
107
+ ```bash
108
+ npm run dev
109
+ ```
110
+
111
+ Build library:
112
+
113
+ ```bash
114
+ npm run build-library
115
+ ```
116
+
117
+ ## Component yang tersedia
118
+
119
+ Named export dari `src/components/index.js`:
120
+
121
+ - `AnimatedIconLogo`
122
+ - `BaseButton`
123
+ - `BaseIcon`
124
+ - `BaseTable`
125
+ - `Breadcrumbs`
126
+ - `DashboardFooter`
127
+ - `DashboardHeader`
128
+ - `DatePicker`
129
+ - `Dropdown`
130
+ - `DropdownCheckbox`
131
+ - `DropdownCompany`
132
+ - `DropdownMultipleTag`
133
+ - `DropdownSearchList`
134
+ - `DropdownSelect`
135
+ - `ExpansionPanel`
136
+ - `FormCheckbox`
137
+ - `FormGroupCheckbox`
138
+ - `FormInput`
139
+ - `FormInputTag`
140
+ - `FormRadio`
141
+ - `FormSwitch`
142
+ - `FormTextarea`
143
+ - `FormWysiwyg`
144
+ - `LoadingIcon`
145
+ - `ModalDialog`
146
+ - `SideNav`
147
+ - `Snackbar`
148
+ - `Stepper`
149
+ - `TablePagination`
150
+ - `Tabmenu`
151
+ - `TypoText`
152
+
153
+ Ada juga banyak component SVG icon di `src/components/Icons/*`. Icon individual tidak diekspor satu per satu dari package utama, tetapi digunakan melalui `BaseIcon` dengan prop `iconName`.
154
+
155
+ ## Struktur dokumentasi component
156
+
157
+ Detail component, props, events, slots, dan contoh penggunaan ada di:
158
+
159
+ - `docs/specs/README.md`
160
+ - `docs/specs/base-and-icons.md`
161
+ - `docs/specs/forms.md`
162
+ - `docs/specs/dropdowns.md`
163
+ - `docs/specs/date-picker.md`
164
+ - `docs/specs/navigation-layout.md`
165
+ - `docs/specs/feedback-overlays.md`
166
+ - `docs/specs/table-and-tabs.md`
167
+
168
+ ## Catatan integrasi penting
169
+
170
+ - Mayoritas input memakai kontrak `v-model` Vue 3, yaitu prop `modelValue` dan event `update:modelValue`.
171
+ - Beberapa component memakai event custom seperti `clickPage`, `changeSize`, `actionMenu`, `handleClose`, atau `actionRoute`.
172
+ - Component `FormInput`, `FormTextarea`, `FormInputTag`, dan `FormWysiwyg` menerima slot `label`.
173
+ - Component `Dropdown`, `DropdownCheckbox`, `DropdownCompany`, `ModalDialog`, `ExpansionPanel`, dan `Snackbar` mengandalkan slot untuk isi yang fleksibel.
174
+ - `DashboardHeader` melakukan redirect logout dan membaca cookie `pajakio`; pakai component ini hanya bila aplikasi consumer memang punya flow session yang kompatibel.
@@ -512,17 +512,6 @@ module.exports = function (it) {
512
512
  /* unused harmony reexport * */
513
513
 
514
514
 
515
- /***/ }),
516
-
517
- /***/ "2334":
518
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
519
-
520
- "use strict";
521
- /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_v16_dist_index_js_ref_1_1_index_vue_vue_type_style_index_0_id_504d1e58_lang_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("c8a1");
522
- /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_v16_dist_index_js_ref_1_1_index_vue_vue_type_style_index_0_id_504d1e58_lang_scss__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_v16_dist_index_js_ref_1_1_index_vue_vue_type_style_index_0_id_504d1e58_lang_scss__WEBPACK_IMPORTED_MODULE_0__);
523
- /* unused harmony reexport * */
524
-
525
-
526
515
  /***/ }),
527
516
 
528
517
  /***/ "23cb":
@@ -1631,6 +1620,13 @@ module.exports = store.inspectSource;
1631
1620
 
1632
1621
  /***/ }),
1633
1622
 
1623
+ /***/ "8b87":
1624
+ /***/ (function(module, exports, __webpack_require__) {
1625
+
1626
+ // extracted by mini-css-extract-plugin
1627
+
1628
+ /***/ }),
1629
+
1634
1630
  /***/ "8bbf":
1635
1631
  /***/ (function(module, exports) {
1636
1632
 
@@ -2074,6 +2070,17 @@ module.exports = function (input, pref) {
2074
2070
  };
2075
2071
 
2076
2072
 
2073
+ /***/ }),
2074
+
2075
+ /***/ "c082":
2076
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
2077
+
2078
+ "use strict";
2079
+ /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_v16_dist_index_js_ref_1_1_index_vue_vue_type_style_index_0_id_2ca127f1_lang_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("8b87");
2080
+ /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_v16_dist_index_js_ref_1_1_index_vue_vue_type_style_index_0_id_2ca127f1_lang_scss__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_v16_dist_index_js_ref_1_1_index_vue_vue_type_style_index_0_id_2ca127f1_lang_scss__WEBPACK_IMPORTED_MODULE_0__);
2081
+ /* unused harmony reexport * */
2082
+
2083
+
2077
2084
  /***/ }),
2078
2085
 
2079
2086
  /***/ "c24d":
@@ -2179,13 +2186,6 @@ var store = module.exports = globalThis[SHARED] || defineGlobalProperty(SHARED,
2179
2186
  /* unused harmony reexport * */
2180
2187
 
2181
2188
 
2182
- /***/ }),
2183
-
2184
- /***/ "c8a1":
2185
- /***/ (function(module, exports, __webpack_require__) {
2186
-
2187
- // extracted by mini-css-extract-plugin
2188
-
2189
2189
  /***/ }),
2190
2190
 
2191
2191
  /***/ "c8ba":
@@ -40869,29 +40869,29 @@ var FormSwitchvue_type_style_index_0_id_7b52b7b6_lang_scss_scoped_true = __webpa
40869
40869
  const FormSwitch_exports_ = /*#__PURE__*/exportHelper_default()(FormSwitchvue_type_script_lang_js, [['render',FormSwitchvue_type_template_id_7b52b7b6_scoped_true_render],['__scopeId',"data-v-7b52b7b6"]])
40870
40870
 
40871
40871
  /* harmony default export */ var FormSwitch = (FormSwitch_exports_);
40872
- // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/vue-loader-v16/dist/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader-v16/dist??ref--1-1!./src/components/SideNav/index.vue?vue&type=template&id=504d1e58
40872
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/vue-loader-v16/dist/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader-v16/dist??ref--1-1!./src/components/SideNav/index.vue?vue&type=template&id=2ca127f1
40873
40873
 
40874
- const SideNavvue_type_template_id_504d1e58_hoisted_1 = ["src"];
40875
- const SideNavvue_type_template_id_504d1e58_hoisted_2 = ["src"];
40876
- const SideNavvue_type_template_id_504d1e58_hoisted_3 = {
40874
+ const SideNavvue_type_template_id_2ca127f1_hoisted_1 = ["src"];
40875
+ const SideNavvue_type_template_id_2ca127f1_hoisted_2 = ["src"];
40876
+ const SideNavvue_type_template_id_2ca127f1_hoisted_3 = {
40877
40877
  class: "side-nav__content"
40878
40878
  };
40879
- const SideNavvue_type_template_id_504d1e58_hoisted_4 = {
40879
+ const SideNavvue_type_template_id_2ca127f1_hoisted_4 = {
40880
40880
  class: "side-nav__group"
40881
40881
  };
40882
- const SideNavvue_type_template_id_504d1e58_hoisted_5 = ["id"];
40883
- const SideNavvue_type_template_id_504d1e58_hoisted_6 = ["onClick"];
40884
- const SideNavvue_type_template_id_504d1e58_hoisted_7 = {
40882
+ const SideNavvue_type_template_id_2ca127f1_hoisted_5 = ["id"];
40883
+ const SideNavvue_type_template_id_2ca127f1_hoisted_6 = ["onClick"];
40884
+ const SideNavvue_type_template_id_2ca127f1_hoisted_7 = {
40885
40885
  key: 0,
40886
40886
  class: "side-nav__badge"
40887
40887
  };
40888
- const SideNavvue_type_template_id_504d1e58_hoisted_8 = ["onClick"];
40889
- const SideNavvue_type_template_id_504d1e58_hoisted_9 = ["data-title"];
40890
- const SideNavvue_type_template_id_504d1e58_hoisted_10 = {
40888
+ const SideNavvue_type_template_id_2ca127f1_hoisted_8 = ["onClick"];
40889
+ const SideNavvue_type_template_id_2ca127f1_hoisted_9 = ["data-title"];
40890
+ const SideNavvue_type_template_id_2ca127f1_hoisted_10 = {
40891
40891
  key: 0,
40892
40892
  class: "side-nav__divider"
40893
40893
  };
40894
- function SideNavvue_type_template_id_504d1e58_render(_ctx, _cache, $props, $setup, $data, $options) {
40894
+ function SideNavvue_type_template_id_2ca127f1_render(_ctx, _cache, $props, $setup, $data, $options) {
40895
40895
  const _component_base_icon = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["resolveComponent"])("base-icon");
40896
40896
  const _component_typo_text = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["resolveComponent"])("typo-text");
40897
40897
  return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("aside", {
@@ -40914,7 +40914,7 @@ function SideNavvue_type_template_id_504d1e58_render(_ctx, _cache, $props, $setu
40914
40914
  class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])(["side-nav__logo", {
40915
40915
  'side-nav__logo--collapsed': !$data.menuOpen
40916
40916
  }])
40917
- }, null, 10, SideNavvue_type_template_id_504d1e58_hoisted_1)]), $options.showCollapseButton ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("button", {
40917
+ }, null, 10, SideNavvue_type_template_id_2ca127f1_hoisted_1)]), $options.showCollapseButton ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("button", {
40918
40918
  key: 0,
40919
40919
  type: "button",
40920
40920
  class: "side-nav__toggle",
@@ -40924,7 +40924,7 @@ function SideNavvue_type_template_id_504d1e58_render(_ctx, _cache, $props, $setu
40924
40924
  src: $data.menuOpen ? $data.collapseClose : $data.collapseOpen,
40925
40925
  alt: "Toggle navigation",
40926
40926
  class: "side-nav__toggle-icon"
40927
- }, null, 8, SideNavvue_type_template_id_504d1e58_hoisted_2)])) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true)], 2), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", SideNavvue_type_template_id_504d1e58_hoisted_3, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("button", {
40927
+ }, null, 8, SideNavvue_type_template_id_2ca127f1_hoisted_2)])) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true)], 2), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", SideNavvue_type_template_id_2ca127f1_hoisted_3, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("button", {
40928
40928
  class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])(["side-nav__item", {
40929
40929
  'is-active': $props.activeSideNav === 'dashboard',
40930
40930
  'is-disabled': false
@@ -40946,7 +40946,7 @@ function SideNavvue_type_template_id_504d1e58_render(_ctx, _cache, $props, $setu
40946
40946
  }, null, -1)), (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(true), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])(external_commonjs_vue_commonjs2_vue_root_Vue_["Fragment"], null, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["renderList"])($data.menuStructure, (menu, i) => {
40947
40947
  return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])(external_commonjs_vue_commonjs2_vue_root_Vue_["Fragment"], {
40948
40948
  key: i
40949
- }, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", SideNavvue_type_template_id_504d1e58_hoisted_4, [$data.menuOpen && menu.groupTitle ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createBlock"])(_component_typo_text, {
40949
+ }, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", SideNavvue_type_template_id_2ca127f1_hoisted_4, [$data.menuOpen && menu.groupTitle ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createBlock"])(_component_typo_text, {
40950
40950
  key: 0,
40951
40951
  class: "side-nav__group-title",
40952
40952
  variant: "caption-bold"
@@ -40978,7 +40978,7 @@ function SideNavvue_type_template_id_504d1e58_render(_ctx, _cache, $props, $setu
40978
40978
  class: "side-nav__label",
40979
40979
  variant: $options.isParentActive(data) ? 'body-1-bold' : 'body-1-regular'
40980
40980
  }, {
40981
- default: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withCtx"])(() => [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createTextVNode"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(data.label) + " ", 1), data.slug === 'ematerai' ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("span", SideNavvue_type_template_id_504d1e58_hoisted_7, " NEW ! ")) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true)]),
40981
+ default: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withCtx"])(() => [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createTextVNode"])(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(data.label) + " ", 1), data.slug === 'ematerai' ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("span", SideNavvue_type_template_id_2ca127f1_hoisted_7, " NEW ! ")) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true)]),
40982
40982
  _: 2
40983
40983
  }, 1032, ["variant"])) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true), data.children.length > 0 && $data.menuOpen ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", {
40984
40984
  key: 1,
@@ -40990,7 +40990,7 @@ function SideNavvue_type_template_id_504d1e58_render(_ctx, _cache, $props, $setu
40990
40990
  color: "#B0B8C2",
40991
40991
  width: "18",
40992
40992
  height: "18"
40993
- }, null, 8, ["iconName"])], 2)) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true)], 10, SideNavvue_type_template_id_504d1e58_hoisted_6), $data.menuOpen ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", {
40993
+ }, null, 8, ["iconName"])], 2)) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true)], 10, SideNavvue_type_template_id_2ca127f1_hoisted_6), $data.menuOpen ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", {
40994
40994
  key: 0,
40995
40995
  class: "side-nav__children",
40996
40996
  style: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeStyle"])({
@@ -41021,12 +41021,12 @@ function SideNavvue_type_template_id_504d1e58_render(_ctx, _cache, $props, $setu
41021
41021
  height: "16",
41022
41022
  iconName: "info_outline",
41023
41023
  color: "#383E45"
41024
- })], 8, SideNavvue_type_template_id_504d1e58_hoisted_9)) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true)], 10, SideNavvue_type_template_id_504d1e58_hoisted_8);
41025
- }), 128))], 4)) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true)], 10, SideNavvue_type_template_id_504d1e58_hoisted_5);
41026
- }), 128))]), i < $data.menuStructure.length - 1 ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", SideNavvue_type_template_id_504d1e58_hoisted_10)) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true)], 64);
41024
+ })], 8, SideNavvue_type_template_id_2ca127f1_hoisted_9)) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true)], 10, SideNavvue_type_template_id_2ca127f1_hoisted_8);
41025
+ }), 128))], 4)) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true)], 10, SideNavvue_type_template_id_2ca127f1_hoisted_5);
41026
+ }), 128))]), i < $data.menuStructure.length - 1 ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", SideNavvue_type_template_id_2ca127f1_hoisted_10)) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true)], 64);
41027
41027
  }), 128))])], 2);
41028
41028
  }
41029
- // CONCATENATED MODULE: ./src/components/SideNav/index.vue?vue&type=template&id=504d1e58
41029
+ // CONCATENATED MODULE: ./src/components/SideNav/index.vue?vue&type=template&id=2ca127f1
41030
41030
 
41031
41031
  // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader-v16/dist??ref--1-1!./src/components/SideNav/index.vue?vue&type=script&lang=js
41032
41032
 
@@ -41084,12 +41084,17 @@ const collapseClose = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0
41084
41084
  list: {
41085
41085
  handler() {
41086
41086
  this.setMenuStructure();
41087
+ this.redirectInactiveActiveSideNav();
41087
41088
  },
41088
41089
  deep: true
41090
+ },
41091
+ activeSideNav() {
41092
+ this.redirectInactiveActiveSideNav();
41089
41093
  }
41090
41094
  },
41091
41095
  mounted() {
41092
41096
  this.setMenuStructure();
41097
+ this.redirectInactiveActiveSideNav();
41093
41098
  this.updateIsMobile();
41094
41099
  window.addEventListener("resize", this.updateIsMobile);
41095
41100
  document.addEventListener("click", this.handleClickOutside);
@@ -41145,6 +41150,37 @@ const collapseClose = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0
41145
41150
  console.warn("List or children is undefined!");
41146
41151
  }
41147
41152
  },
41153
+ buildModuleUrl(path) {
41154
+ const baseUrl = typeof window !== "undefined" ? window.location.origin : "";
41155
+ const normalizedPath = path.startsWith("/") ? path : `/${path}`;
41156
+ return `${baseUrl}${normalizedPath}`;
41157
+ },
41158
+ isActiveSideNavInactive() {
41159
+ if (!this.activeSideNav || this.activeSideNav === "dashboard") {
41160
+ return false;
41161
+ }
41162
+ return this.menuStructure.some(menu => {
41163
+ return (menu.groupMenu || []).some(menuItem => {
41164
+ if (menuItem.slug === this.activeSideNav) {
41165
+ return menuItem.active === false;
41166
+ }
41167
+ if (Array.isArray(menuItem.children)) {
41168
+ const child = menuItem.children.find(item => item.slug === this.activeSideNav);
41169
+ return Boolean(child && (child.active === false || menuItem.active === false));
41170
+ }
41171
+ return false;
41172
+ });
41173
+ });
41174
+ },
41175
+ redirectInactiveActiveSideNav() {
41176
+ if (!this.isActiveSideNavInactive() || typeof window === "undefined") {
41177
+ return;
41178
+ }
41179
+ const dashboardUrl = this.buildModuleUrl("/dashboard");
41180
+ if (window.location.href !== dashboardUrl) {
41181
+ window.location.href = dashboardUrl;
41182
+ }
41183
+ },
41148
41184
  clickNav(data) {
41149
41185
  if (data && typeof data === "object" && data.active === false) {
41150
41186
  return;
@@ -41191,8 +41227,8 @@ const collapseClose = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0
41191
41227
  });
41192
41228
  // CONCATENATED MODULE: ./src/components/SideNav/index.vue?vue&type=script&lang=js
41193
41229
 
41194
- // EXTERNAL MODULE: ./src/components/SideNav/index.vue?vue&type=style&index=0&id=504d1e58&lang=scss
41195
- var SideNavvue_type_style_index_0_id_504d1e58_lang_scss = __webpack_require__("2334");
41230
+ // EXTERNAL MODULE: ./src/components/SideNav/index.vue?vue&type=style&index=0&id=2ca127f1&lang=scss
41231
+ var SideNavvue_type_style_index_0_id_2ca127f1_lang_scss = __webpack_require__("c082");
41196
41232
 
41197
41233
  // CONCATENATED MODULE: ./src/components/SideNav/index.vue
41198
41234
 
@@ -41202,7 +41238,7 @@ var SideNavvue_type_style_index_0_id_504d1e58_lang_scss = __webpack_require__("2
41202
41238
 
41203
41239
 
41204
41240
 
41205
- const SideNav_exports_ = /*#__PURE__*/exportHelper_default()(SideNavvue_type_script_lang_js, [['render',SideNavvue_type_template_id_504d1e58_render]])
41241
+ const SideNav_exports_ = /*#__PURE__*/exportHelper_default()(SideNavvue_type_script_lang_js, [['render',SideNavvue_type_template_id_2ca127f1_render]])
41206
41242
 
41207
41243
  /* harmony default export */ var SideNav = (SideNav_exports_);
41208
41244
  // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/vue-loader-v16/dist/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader-v16/dist??ref--1-1!./src/components/Snackbar/index.vue?vue&type=template&id=e0e5b538