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 +174 -0
- package/dist/lib-pajakio-v2.common.js +78 -42
- package/dist/lib-pajakio-v2.common.js.map +1 -1
- package/dist/lib-pajakio-v2.umd.js +78 -42
- package/dist/lib-pajakio-v2.umd.js.map +1 -1
- package/dist/lib-pajakio-v2.umd.min.js +1 -1
- package/dist/lib-pajakio-v2.umd.min.js.map +1 -1
- package/docs/specs/README.md +77 -0
- package/docs/specs/base-and-icons.md +154 -0
- package/docs/specs/date-picker.md +131 -0
- package/docs/specs/dropdowns.md +192 -0
- package/docs/specs/feedback-overlays.md +133 -0
- package/docs/specs/forms.md +286 -0
- package/docs/specs/navigation-layout.md +173 -0
- package/docs/specs/table-and-tabs.md +93 -0
- package/package.json +1 -1
- package/src/components/SideNav/index.vue +41 -1
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=
|
|
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
|
|
40875
|
-
const
|
|
40876
|
-
const
|
|
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
|
|
40879
|
+
const SideNavvue_type_template_id_2ca127f1_hoisted_4 = {
|
|
40880
40880
|
class: "side-nav__group"
|
|
40881
40881
|
};
|
|
40882
|
-
const
|
|
40883
|
-
const
|
|
40884
|
-
const
|
|
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
|
|
40889
|
-
const
|
|
40890
|
-
const
|
|
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
|
|
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,
|
|
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,
|
|
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",
|
|
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",
|
|
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,
|
|
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,
|
|
41025
|
-
}), 128))], 4)) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true)], 10,
|
|
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",
|
|
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=
|
|
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=
|
|
41195
|
-
var
|
|
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',
|
|
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
|