{{ enums }}
@@ -19,13 +20,12 @@ export default {
name: 'FlowAppEnumDocs',
computed: {
enums() {
- const _import = 'import FlowApp from \'@webitel/flow-ui-sdk/src/enums/FlowApp.enum\';\n';
+ const _import =
+ "import FlowApp from '@webitel/flow-ui-sdk/src/enums/FlowApp.enum';\n";
return enumReducer(FlowApp, _import);
},
},
};
-
+
diff --git a/docs/pages/webitel-flow-ui/locale/locale-docs.vue b/docs/pages/webitel-flow-ui/locale/locale-docs.vue
index 241dad4ba..ab740aea4 100644
--- a/docs/pages/webitel-flow-ui/locale/locale-docs.vue
+++ b/docs/pages/webitel-flow-ui/locale/locale-docs.vue
@@ -18,6 +18,4 @@ export default {
};
-
+
diff --git a/docs/pages/webitel-flow-ui/lookups/flow-type-applications/flow-type-applications-lookup-docs.vue b/docs/pages/webitel-flow-ui/lookups/flow-type-applications/flow-type-applications-lookup-docs.vue
index 38605e3d5..d93f0bfba 100644
--- a/docs/pages/webitel-flow-ui/lookups/flow-type-applications/flow-type-applications-lookup-docs.vue
+++ b/docs/pages/webitel-flow-ui/lookups/flow-type-applications/flow-type-applications-lookup-docs.vue
@@ -15,13 +15,12 @@ export default {
name: 'FlowTypeApplicationsLookupDocs',
computed: {
lookup() {
- const _import = 'import FlowTypeApplications from \'@webitel/flow-ui-sdk/src/lookups/FlowTypeApplications.lookup\';\n';
+ const _import =
+ "import FlowTypeApplications from '@webitel/flow-ui-sdk/src/lookups/FlowTypeApplications.lookup';\n";
return enumReducer(FlowTypeApplications, _import);
},
},
};
-
+
diff --git a/docs/pages/webitel-flow-ui/lookups/lookups-docs.vue b/docs/pages/webitel-flow-ui/lookups/lookups-docs.vue
index e4a79a45f..a212e3587 100644
--- a/docs/pages/webitel-flow-ui/lookups/lookups-docs.vue
+++ b/docs/pages/webitel-flow-ui/lookups/lookups-docs.vue
@@ -8,6 +8,4 @@ export default {
};
-
+
diff --git a/docs/pages/webitel-flow-ui/quick-start/quick-start.vue b/docs/pages/webitel-flow-ui/quick-start/quick-start.vue
index db503a1a6..5ab45aa24 100644
--- a/docs/pages/webitel-flow-ui/quick-start/quick-start.vue
+++ b/docs/pages/webitel-flow-ui/quick-start/quick-start.vue
@@ -29,20 +29,20 @@
diff --git a/docs/pages/webitel-ui/api/clients/Readme.md b/docs/pages/webitel-ui/api/clients/Readme.md
index 127f294e5..d84000993 100644
--- a/docs/pages/webitel-ui/api/clients/Readme.md
+++ b/docs/pages/webitel-ui/api/clients/Readme.md
@@ -76,13 +76,7 @@ const {
```js
import { media } from '@webitel/ui-sdk/src/api/clients';
-const {
- getList,
- get,
- add,
- delete: _delete,
- getLookup,
-} = media;
+const { getList, get, add, delete: _delete, getLookup } = media;
```
## Lists
@@ -90,15 +84,7 @@ const {
```js
import { lists } from '@webitel/ui-sdk/src/api/clients';
-const {
- getList,
- get,
- add,
- patch,
- update,
- delete: _delete,
- getLookup,
-} = lists;
+const { getList, get, add, patch, update, delete: _delete, getLookup } = lists;
```
## Gateways
@@ -118,7 +104,7 @@ const {
```
## Flows
-
+
```js
import { flows } from '@webitel/ui-sdk/src/api/clients';
@@ -130,7 +116,7 @@ const {
update,
delete: _delete,
getLookup,
-
+
getFlowTags,
} = flows;
```
@@ -185,20 +171,12 @@ const {
} = calendars;
```
-
## Buckets
```js
import { buckets } from '@webitel/ui-sdk/src/api/clients';
-const {
- getList,
- get,
- add,
- update,
- delete: _delete,
- getLookup,
-} = buckets;
+const { getList, get, add, update, delete: _delete, getLookup } = buckets;
```
## Agents
@@ -214,7 +192,7 @@ const {
update,
delete: _delete,
getLookup,
-
+
getAgentHistory,
getRegularAgentsOptions,
getAgentUsersOptions,
@@ -227,14 +205,7 @@ const {
```js
import { teams } from '@webitel/ui-sdk/src/api/clients';
-const {
- getList,
- get,
- add,
- update,
- delete: _delete,
- getLookup,
-} = teams;
+const { getList, get, add, update, delete: _delete, getLookup } = teams;
```
## Skills
@@ -242,12 +213,5 @@ const {
```js
import { skills } from '@webitel/ui-sdk/src/api/clients';
-const {
- getList,
- get,
- add,
- update,
- delete: _delete,
- getLookup,
-} = skills;
-```
\ No newline at end of file
+const { getList, get, add, update, delete: _delete, getLookup } = skills;
+```
diff --git a/docs/pages/webitel-ui/api/clients/_shared/generatePermissionsApi.js.md b/docs/pages/webitel-ui/api/clients/_shared/generatePermissionsApi.js.md
index 325d4a1cc..bc2668b48 100644
--- a/docs/pages/webitel-ui/api/clients/_shared/generatePermissionsApi.js.md
+++ b/docs/pages/webitel-ui/api/clients/_shared/generatePermissionsApi.js.md
@@ -13,7 +13,7 @@
return {
getPermissionsList,
patchPermissions,
-}
+};
```
## Використання
diff --git a/docs/pages/webitel-ui/api/transformers/Readme.md b/docs/pages/webitel-ui/api/transformers/Readme.md
index fd86cc6d8..9ecb6c863 100644
--- a/docs/pages/webitel-ui/api/transformers/Readme.md
+++ b/docs/pages/webitel-ui/api/transformers/Readme.md
@@ -117,9 +117,9 @@ import { notify } from '@webitel/ui-sdk/src/api/transformers';
// case 1
const notificationCallback = ({
- // callback which actually emits event with received
- callback,
- }) => {
+ // callback which actually emits event with received
+ callback,
+}) => {
callback({ type: 'success', text: 'custom message' });
};
@@ -139,11 +139,14 @@ Sanitize passed data.
```js
import { sanitize } from '@webitel/ui-sdk/src/api/transformers';
-
const fieldsToSend = ['field1', 'field2'];
// => { field1: 'value1', field2: 'value2' }
-sanitize(fieldsToSend)({ field1: 'value1', field2: 'value2', field3: 'value3' });
+sanitize(fieldsToSend)({
+ field1: 'value1',
+ field2: 'value2',
+ field3: 'value3',
+});
```
## starToSearch
@@ -165,23 +168,24 @@ starToSearch('search')({ search: 'string*' });
You can pass withContext option to pass context into transformer function as a second argument.
example:
+
```js
const context = {
- value: '1'
- // ...
-}
+ value: '1',
+ // ...
+};
convert = () => {
- return applyTransform({}, [
- transformSchema
- ], {
- withContext: context,
- })
-}
+ return applyTransform({}, [transformSchema], {
+ withContext: context,
+ });
+};
```
How it passes context into transformer function:
+
```js
-transformer(result, withContext)
+transformer(result, withContext);
```
+
That give you option to work with node context into transformer.
diff --git a/docs/pages/webitel-ui/assets/icons/icons-table.vue b/docs/pages/webitel-ui/assets/icons/icons-table.vue
index 708e98c55..d7496dac8 100644
--- a/docs/pages/webitel-ui/assets/icons/icons-table.vue
+++ b/docs/pages/webitel-ui/assets/icons/icons-table.vue
@@ -4,7 +4,7 @@
:track-by="null"
:value="size"
label="Size"
- style="width: 400px; margin-bottom: var(--spacing-md);"
+ style="width: 400px; margin-bottom: var(--spacing-md)"
@input="size = $event"
/>
@@ -14,9 +14,7 @@
:selectable="false"
>
- App Header
-App Navigator
-Header Actions
-Why to pass image itself as src prop?
@@ -44,7 +42,8 @@ export default { value: 'src', code: '', type: 'String', - description: 'Avatar pic. IMPORTANT: if this pic is stored locally in project, pass to this prop only pic, imported and passed to data as property', + description: + 'Avatar pic. IMPORTANT: if this pic is stored locally in project, pass to this prop only pic, imported and passed to data as property', }, { value: 'username', @@ -71,7 +70,9 @@ export default { value: 'status', code: ' ', type: 'String ', - options: ['AbstractUserStatus enum from @webitel/ui-sdk/src/enums/AbstractUserStatus'], + options: [ + 'AbstractUserStatus enum from @webitel/ui-sdk/src/enums/AbstractUserStatus', + ], default: 'AbstractUserStatus.OFFLINE', description: 'Color of the badge', }, diff --git a/docs/pages/webitel-ui/components/wt-badge/Readme.md b/docs/pages/webitel-ui/components/wt-badge/Readme.md index f79098d0f..8fc87cc55 100644 --- a/docs/pages/webitel-ui/components/wt-badge/Readme.md +++ b/docs/pages/webitel-ui/components/wt-badge/Readme.md @@ -8,11 +8,13 @@ import ExampleIconBadge from './examples/example-icon-badge.vue'; # WtBadge ## Props + ::: raw ::: ## Example Badge + ::: raw ::: @@ -22,6 +24,7 @@ import ExampleIconBadge from './examples/example-icon-badge.vue'; ::: ## Example Outside Badge + ::: raw ::: @@ -31,6 +34,7 @@ import ExampleIconBadge from './examples/example-icon-badge.vue'; ::: ## Example Icon Badge + ::: raw ::: diff --git a/docs/pages/webitel-ui/components/wt-badge/examples/example-badge.vue b/docs/pages/webitel-ui/components/wt-badge/examples/example-badge.vue index 68fc6af57..c965d0891 100644 --- a/docs/pages/webitel-ui/components/wt-badge/examples/example-badge.vue +++ b/docs/pages/webitel-ui/components/wt-badge/examples/example-badge.vue @@ -1,13 +1,16 @@ - + - +- + diff --git a/docs/pages/webitel-ui/components/wt-badge/examples/example-icon-badge.vue b/docs/pages/webitel-ui/components/wt-badge/examples/example-icon-badge.vue index 2a8531451..78cc7f0bb 100644 --- a/docs/pages/webitel-ui/components/wt-badge/examples/example-icon-badge.vue +++ b/docs/pages/webitel-ui/components/wt-badge/examples/example-icon-badge.vue @@ -1,13 +1,16 @@ - + - +- + diff --git a/docs/pages/webitel-ui/components/wt-badge/examples/example-outside-badge.vue b/docs/pages/webitel-ui/components/wt-badge/examples/example-outside-badge.vue index 5ddec55b8..19123a687 100644 --- a/docs/pages/webitel-ui/components/wt-badge/examples/example-outside-badge.vue +++ b/docs/pages/webitel-ui/components/wt-badge/examples/example-outside-badge.vue @@ -1,13 +1,19 @@ - + - -+ +- + diff --git a/docs/pages/webitel-ui/components/wt-badge/wt-badge-docs.vue b/docs/pages/webitel-ui/components/wt-badge/wt-badge-docs.vue index af34ff4f4..f4297a6a6 100644 --- a/docs/pages/webitel-ui/components/wt-badge/wt-badge-docs.vue +++ b/docs/pages/webitel-ui/components/wt-badge/wt-badge-docs.vue @@ -1,7 +1,5 @@ -+ - +- + diff --git a/docs/pages/webitel-ui/components/wt-button/Readme.md b/docs/pages/webitel-ui/components/wt-button/Readme.md index 0b555e7cd..71b9187e5 100644 --- a/docs/pages/webitel-ui/components/wt-button/Readme.md +++ b/docs/pages/webitel-ui/components/wt-button/Readme.md @@ -10,9 +10,11 @@ import ExampleButtonsDifferentColorLoaders from './examples/example-buttons-diff # WtButton ## Specs +Primary -Secondary -Disabled +Secondary +Disabled ## Button + ::: raw ::: @@ -22,6 +24,7 @@ import ExampleButtonsDifferentColorLoaders from './examples/example-buttons-diff ::: ## Different colors + ::: raw ::: @@ -31,6 +34,7 @@ import ExampleButtonsDifferentColorLoaders from './examples/example-buttons-diff ::: ## Small button + ::: raw ::: @@ -40,6 +44,7 @@ import ExampleButtonsDifferentColorLoaders from './examples/example-buttons-diff ::: ## Wide button + ::: raw ::: @@ -49,6 +54,7 @@ import ExampleButtonsDifferentColorLoaders from './examples/example-buttons-diff ::: ## Different colors with loaders + ::: raw ::: diff --git a/docs/pages/webitel-ui/components/wt-button/component-specs.vue b/docs/pages/webitel-ui/components/wt-button/component-specs.vue index 46726ea15..62e67ecbf 100644 --- a/docs/pages/webitel-ui/components/wt-button/component-specs.vue +++ b/docs/pages/webitel-ui/components/wt-button/component-specs.vue @@ -1,12 +1,9 @@ - + diff --git a/docs/pages/webitel-ui/components/wt-button/examples/example-button.vue b/docs/pages/webitel-ui/components/wt-button/examples/example-button.vue index d1d316718..8b68a24d6 100644 --- a/docs/pages/webitel-ui/components/wt-button/examples/example-button.vue +++ b/docs/pages/webitel-ui/components/wt-button/examples/example-button.vue @@ -9,7 +9,6 @@ const load = () => { loading.value = false; }, 0); }; - @@ -21,6 +20,4 @@ const load = () => { - + diff --git a/docs/pages/webitel-ui/components/wt-button/examples/example-buttons-different-color-loaders.vue b/docs/pages/webitel-ui/components/wt-button/examples/example-buttons-different-color-loaders.vue index 16b821e45..10d3d6569 100644 --- a/docs/pages/webitel-ui/components/wt-button/examples/example-buttons-different-color-loaders.vue +++ b/docs/pages/webitel-ui/components/wt-button/examples/example-buttons-different-color-loaders.vue @@ -1,20 +1,46 @@ - + - +- + diff --git a/docs/pages/webitel-ui/components/wt-button/examples/example-buttons-different-color.vue b/docs/pages/webitel-ui/components/wt-button/examples/example-buttons-different-color.vue index d92fb343b..fa50e251e 100644 --- a/docs/pages/webitel-ui/components/wt-button/examples/example-buttons-different-color.vue +++ b/docs/pages/webitel-ui/components/wt-button/examples/example-buttons-different-color.vue @@ -1,9 +1,9 @@ - + -Primary -Secondary -Disabled -Success -Error -Transfer -Job -info +Secondary +Disabled +Success +Error +Transfer +Job +info +- + diff --git a/docs/pages/webitel-ui/components/wt-button/examples/example-small-button.vue b/docs/pages/webitel-ui/components/wt-button/examples/example-small-button.vue index 2fb7856d2..d93890955 100644 --- a/docs/pages/webitel-ui/components/wt-button/examples/example-small-button.vue +++ b/docs/pages/webitel-ui/components/wt-button/examples/example-small-button.vue @@ -1,11 +1,7 @@ - +Primary Secondary Disabled @@ -15,6 +15,4 @@Small button - + diff --git a/docs/pages/webitel-ui/components/wt-button/examples/example-wide-button.vue b/docs/pages/webitel-ui/components/wt-button/examples/example-wide-button.vue index d30b7bda0..0d65fe51d 100644 --- a/docs/pages/webitel-ui/components/wt-button/examples/example-wide-button.vue +++ b/docs/pages/webitel-ui/components/wt-button/examples/example-wide-button.vue @@ -1,11 +1,7 @@ - +Wide button - + diff --git a/docs/pages/webitel-ui/components/wt-cc-agent-status-timers/wt-cc-agent-status-timers-docs.vue b/docs/pages/webitel-ui/components/wt-cc-agent-status-timers/wt-cc-agent-status-timers-docs.vue index 859dd71cf..db4b952c9 100644 --- a/docs/pages/webitel-ui/components/wt-cc-agent-status-timers/wt-cc-agent-status-timers-docs.vue +++ b/docs/pages/webitel-ui/components/wt-cc-agent-status-timers/wt-cc-agent-status-timers-docs.vue @@ -2,23 +2,25 @@- + diff --git a/docs/pages/webitel-ui/components/wt-checkbox/Readme.md b/docs/pages/webitel-ui/components/wt-checkbox/Readme.md index 61ed19637..619bdb80b 100644 --- a/docs/pages/webitel-ui/components/wt-checkbox/Readme.md +++ b/docs/pages/webitel-ui/components/wt-checkbox/Readme.md @@ -8,11 +8,13 @@ import ExampleMultipleCheckboxes from './examples/example-multiple-checkboxes.vu # WtCheckbox ## Props + ::: raw Agent Status Timers
- -Note! Component is loading on-demand, so you should import it directly from
++ Note! Component is loading on-demand, so you should import it directly + from +
import WtCcAgentStatusTimers from '@webitel/ui-sdk/src/components/on-demand/wt-cc-agent-status-timers/wt-cc-agent-status-timers.vue';
-+ <wt-cc-agent-status-timers :status="{ online: 10, offline: 20, pause: 30 }"></wt-cc-agent-status-timers>
+ ::: ## Example Checkbox + ::: raw ::: @@ -22,6 +24,7 @@ import ExampleMultipleCheckboxes from './examples/example-multiple-checkboxes.vu ::: ## Example Disabled Checkbox + ::: raw ::: @@ -31,6 +34,7 @@ import ExampleMultipleCheckboxes from './examples/example-multiple-checkboxes.vu ::: ## Example Multiple Checkboxes + ::: raw ::: diff --git a/docs/pages/webitel-ui/components/wt-checkbox/examples/example-checkbox.vue b/docs/pages/webitel-ui/components/wt-checkbox/examples/example-checkbox.vue index a14360131..92b866c70 100644 --- a/docs/pages/webitel-ui/components/wt-checkbox/examples/example-checkbox.vue +++ b/docs/pages/webitel-ui/components/wt-checkbox/examples/example-checkbox.vue @@ -12,6 +12,4 @@ const selected = ref(false); /> - + diff --git a/docs/pages/webitel-ui/components/wt-checkbox/examples/example-disabled-checkbox.vue b/docs/pages/webitel-ui/components/wt-checkbox/examples/example-disabled-checkbox.vue index 44356ffd3..c2486853e 100644 --- a/docs/pages/webitel-ui/components/wt-checkbox/examples/example-disabled-checkbox.vue +++ b/docs/pages/webitel-ui/components/wt-checkbox/examples/example-disabled-checkbox.vue @@ -12,6 +12,4 @@ const selected = ref(true); /> - + diff --git a/docs/pages/webitel-ui/components/wt-checkbox/examples/example-multiple-checkboxes.vue b/docs/pages/webitel-ui/components/wt-checkbox/examples/example-multiple-checkboxes.vue index 622ca0b41..39fa03c18 100644 --- a/docs/pages/webitel-ui/components/wt-checkbox/examples/example-multiple-checkboxes.vue +++ b/docs/pages/webitel-ui/components/wt-checkbox/examples/example-multiple-checkboxes.vue @@ -20,6 +20,4 @@ const selectedList = ref([options[0]]); /> - + diff --git a/docs/pages/webitel-ui/components/wt-checkbox/wt-checkbox-docs.vue b/docs/pages/webitel-ui/components/wt-checkbox/wt-checkbox-docs.vue index e56fe546f..9eeaebf28 100644 --- a/docs/pages/webitel-ui/components/wt-checkbox/wt-checkbox-docs.vue +++ b/docs/pages/webitel-ui/components/wt-checkbox/wt-checkbox-docs.vue @@ -3,15 +3,9 @@ event="change" prop="selected" /> - - - + + + - + diff --git a/docs/pages/webitel-ui/components/wt-chip/Readme.md b/docs/pages/webitel-ui/components/wt-chip/Readme.md index fd560a4f6..72955422e 100644 --- a/docs/pages/webitel-ui/components/wt-chip/Readme.md +++ b/docs/pages/webitel-ui/components/wt-chip/Readme.md @@ -8,11 +8,13 @@ import ExampleChipWithExtendedStyle from './examples/example-chip-with-extended- # WtChip ## Props + ::: raw ::: ## Example Chip + ::: raw ::: @@ -22,6 +24,7 @@ import ExampleChipWithExtendedStyle from './examples/example-chip-with-extended- ::: ## Example Chip with different colors + ::: raw ::: @@ -31,7 +34,9 @@ import ExampleChipWithExtendedStyle from './examples/example-chip-with-extended- ::: ## Example Chip with extended style + ### Chip style can be extended and re-used on any element + ::: raw ::: diff --git a/docs/pages/webitel-ui/components/wt-chip/examples/example-chip-different-colors.vue b/docs/pages/webitel-ui/components/wt-chip/examples/example-chip-different-colors.vue index 988a371e6..4bdd033a7 100644 --- a/docs/pages/webitel-ui/components/wt-chip/examples/example-chip-different-colors.vue +++ b/docs/pages/webitel-ui/components/wt-chip/examples/example-chip-different-colors.vue @@ -1,25 +1,24 @@ - +- + diff --git a/docs/pages/webitel-ui/components/wt-chip/examples/example-chip-with-extended-style.vue b/docs/pages/webitel-ui/components/wt-chip/examples/example-chip-with-extended-style.vue index 89c76694b..f5d4aafdd 100644 --- a/docs/pages/webitel-ui/components/wt-chip/examples/example-chip-with-extended-style.vue +++ b/docs/pages/webitel-ui/components/wt-chip/examples/example-chip-with-extended-style.vue @@ -1,13 +1,12 @@ - +{{color}} + >{{ color }}My Own Chip+ diff --git a/docs/pages/webitel-ui/components/wt-chip/wt-chip-docs.vue b/docs/pages/webitel-ui/components/wt-chip/wt-chip-docs.vue index 37a7db619..517dec678 100644 --- a/docs/pages/webitel-ui/components/wt-chip/wt-chip-docs.vue +++ b/docs/pages/webitel-ui/components/wt-chip/wt-chip-docs.vue @@ -1,7 +1,5 @@ -+ @@ -16,7 +14,16 @@ export default { value: 'color', code: ' ', type: 'String', - options: ['main', 'outline', 'accent', 'secondary', 'secondary-50', 'success', 'danger', 'transfer'], + options: [ + 'main', + 'outline', + 'accent', + 'secondary', + 'secondary-50', + 'success', + 'danger', + 'transfer', + ], default: 'main', description: '"main" and "outline" are chip-specific colors', }, @@ -28,6 +35,4 @@ export default { }; - + diff --git a/docs/pages/webitel-ui/components/wt-confirm-dialog/Readme.md b/docs/pages/webitel-ui/components/wt-confirm-dialog/Readme.md index 956f2d388..c5fad793e 100644 --- a/docs/pages/webitel-ui/components/wt-confirm-dialog/Readme.md +++ b/docs/pages/webitel-ui/components/wt-confirm-dialog/Readme.md @@ -7,9 +7,11 @@ import ExampleDeleteDialog from './examples/example-delete-dialog.vue'; # WtConfirmDialog ## Specs + ## Confirm delete dialog + ::: raw ::: @@ -19,6 +21,7 @@ import ExampleDeleteDialog from './examples/example-delete-dialog.vue'; ::: ## Table Confirm delete dialog + ::: raw ::: diff --git a/docs/pages/webitel-ui/components/wt-confirm-dialog/component-specs.vue b/docs/pages/webitel-ui/components/wt-confirm-dialog/component-specs.vue index dc66cb0df..f50b866e9 100644 --- a/docs/pages/webitel-ui/components/wt-confirm-dialog/component-specs.vue +++ b/docs/pages/webitel-ui/components/wt-confirm-dialog/component-specs.vue @@ -1,12 +1,9 @@ - + diff --git a/docs/pages/webitel-ui/components/wt-confirm-dialog/examples/example-delete-dialog.vue b/docs/pages/webitel-ui/components/wt-confirm-dialog/examples/example-delete-dialog.vue index 41f046e67..b107319ab 100644 --- a/docs/pages/webitel-ui/components/wt-confirm-dialog/examples/example-delete-dialog.vue +++ b/docs/pages/webitel-ui/components/wt-confirm-dialog/examples/example-delete-dialog.vue @@ -1,13 +1,15 @@ diff --git a/docs/pages/webitel-ui/components/wt-confirm-dialog/examples/example-table-delete-dialog.vue b/docs/pages/webitel-ui/components/wt-confirm-dialog/examples/example-table-delete-dialog.vue index 5bc745d6b..78a6a8154 100644 --- a/docs/pages/webitel-ui/components/wt-confirm-dialog/examples/example-table-delete-dialog.vue +++ b/docs/pages/webitel-ui/components/wt-confirm-dialog/examples/example-table-delete-dialog.vue @@ -13,20 +13,29 @@ const deleteMessage = computed(() => { count: t('webitelUI.deleteConfirmationPopup.deleteAll'), }); } - return t('webitelUI.deleteConfirmationPopup.tableAskingAlert', { count: deleteCount.value }, null); + return t( + 'webitelUI.deleteConfirmationPopup.tableAskingAlert', + { count: deleteCount.value }, + null, + ); }); const callback = async () => { - return new Promise(resolve => setTimeout(() => { - resolve() - }, 500)) -} + return new Promise((resolve) => + setTimeout(() => { + resolve(); + }, 500), + ); +}; - +Show dialog -+ { :callback="callback" @close="isShowDialog = false" > - + ` | Array of objects [{ text: text, ?disabled: boolean }] | | visible | Boolean | true | ` - + diff --git a/docs/pages/webitel-ui/components/wt-copy-action/Readme.md b/docs/pages/webitel-ui/components/wt-copy-action/Readme.md index 474aa3f13..bab44455a 100644 --- a/docs/pages/webitel-ui/components/wt-copy-action/Readme.md +++ b/docs/pages/webitel-ui/components/wt-copy-action/Readme.md @@ -6,11 +6,13 @@ import ExampleCopyAction from './examples/example-copy-action.vue'; # WtCopyAction ## Props + ::: raw` | | | width | ['String'] | auto | ` ` | | @@ -17,9 +17,9 @@ import ExampleContextMenu from './examples/example-context-menu.vue'; ## Events -| Value | Params | Description | -|--------------|--------------------------------------------------|-------------| -| click | `[{ name: 'Option and index', type: 'Object' }]` | | +| Value | Params | Description | +| ----- | ------------------------------------------------ | ----------- | +| click | `[{ name: 'Option and index', type: 'Object' }]` | | ## Example Context Menu diff --git a/docs/pages/webitel-ui/components/wt-context-menu/examples/example-context-menu.vue b/docs/pages/webitel-ui/components/wt-context-menu/examples/example-context-menu.vue index be47a6572..274bc1827 100644 --- a/docs/pages/webitel-ui/components/wt-context-menu/examples/example-context-menu.vue +++ b/docs/pages/webitel-ui/components/wt-context-menu/examples/example-context-menu.vue @@ -15,6 +15,4 @@ const options = [ ::: ## Example Copy Action + ::: raw ::: @@ -18,4 +20,3 @@ import ExampleCopyAction from './examples/example-copy-action.vue'; ::: details Code <<< ./examples/example-copy-action.vue ::: - diff --git a/docs/pages/webitel-ui/components/wt-copy-action/examples/example-copy-action.vue b/docs/pages/webitel-ui/components/wt-copy-action/examples/example-copy-action.vue index 940c805cd..439ec7724 100644 --- a/docs/pages/webitel-ui/components/wt-copy-action/examples/example-copy-action.vue +++ b/docs/pages/webitel-ui/components/wt-copy-action/examples/example-copy-action.vue @@ -1,10 +1,7 @@ - + - + diff --git a/docs/pages/webitel-ui/components/wt-copy-action/wt-copy-action.vue b/docs/pages/webitel-ui/components/wt-copy-action/wt-copy-action.vue index 0e54d5e3c..4fa94fd55 100644 --- a/docs/pages/webitel-ui/components/wt-copy-action/wt-copy-action.vue +++ b/docs/pages/webitel-ui/components/wt-copy-action/wt-copy-action.vue @@ -1,13 +1,8 @@ - - + + - - + diff --git a/docs/pages/webitel-ui/components/wt-datepicker/Readme.md b/docs/pages/webitel-ui/components/wt-datepicker/Readme.md index 234b92e7b..a79a013d5 100644 --- a/docs/pages/webitel-ui/components/wt-datepicker/Readme.md +++ b/docs/pages/webitel-ui/components/wt-datepicker/Readme.md @@ -11,9 +11,11 @@ import ExampleDatepickerDatetimeMode from './examples/example-datepicker-datetim ## PLUS ALL VUE DATEPICKER NATIVE PROPS + All passed but not declared props are passed to ` ` component as attributes ## Example Datepicker + ::: raw - + diff --git a/docs/pages/webitel-ui/components/wt-datepicker/examples/example-datepicker-datetime-mode.vue b/docs/pages/webitel-ui/components/wt-datepicker/examples/example-datepicker-datetime-mode.vue index b27fb7806..fd819416e 100644 --- a/docs/pages/webitel-ui/components/wt-datepicker/examples/example-datepicker-datetime-mode.vue +++ b/docs/pages/webitel-ui/components/wt-datepicker/examples/example-datepicker-datetime-mode.vue @@ -1,5 +1,4 @@ +::: @@ -23,6 +25,7 @@ All passed but not declared props are passed to ` ` component as ::: ## Example Datepicker Datetime Mode + ::: raw ::: @@ -30,4 +33,3 @@ All passed but not declared props are passed to ` ` component as ::: details Code <<< ./examples/example-datepicker-datetime-mode.vue ::: - diff --git a/docs/pages/webitel-ui/components/wt-datepicker/component-specs.vue b/docs/pages/webitel-ui/components/wt-datepicker/component-specs.vue index 5830b4721..9f4df98f7 100644 --- a/docs/pages/webitel-ui/components/wt-datepicker/component-specs.vue +++ b/docs/pages/webitel-ui/components/wt-datepicker/component-specs.vue @@ -6,6 +6,4 @@ import Component from '__lib__/components/wt-datepicker/wt-datepicker.vue'; - + diff --git a/docs/pages/webitel-ui/components/wt-dual-panel/Readme.md b/docs/pages/webitel-ui/components/wt-dual-panel/Readme.md index 9f102fefa..77b3e6543 100644 --- a/docs/pages/webitel-ui/components/wt-dual-panel/Readme.md +++ b/docs/pages/webitel-ui/components/wt-dual-panel/Readme.md @@ -6,9 +6,11 @@ import ExampleDualPanel from './examples/example-dual-panel.vue'; # WtDualPanel ## Specs + ## Dual Panel Example + ::: raw ::: @@ -16,5 +18,3 @@ import ExampleDualPanel from './examples/example-dual-panel.vue'; ::: details Code <<< ./examples/example-dual-panel.vue{js} ::: - - diff --git a/docs/pages/webitel-ui/components/wt-dual-panel/component-specs.vue b/docs/pages/webitel-ui/components/wt-dual-panel/component-specs.vue index 6e0fea439..1c6e33edd 100644 --- a/docs/pages/webitel-ui/components/wt-dual-panel/component-specs.vue +++ b/docs/pages/webitel-ui/components/wt-dual-panel/component-specs.vue @@ -1,12 +1,9 @@ - + diff --git a/docs/pages/webitel-ui/components/wt-dual-panel/examples/example-dual-panel.vue b/docs/pages/webitel-ui/components/wt-dual-panel/examples/example-dual-panel.vue index b36779c18..01c88e781 100644 --- a/docs/pages/webitel-ui/components/wt-dual-panel/examples/example-dual-panel.vue +++ b/docs/pages/webitel-ui/components/wt-dual-panel/examples/example-dual-panel.vue @@ -1,24 +1,16 @@ - + @@ -29,5 +21,4 @@ import { ComponentSize } from '../../../../../../src/enums/index.js'; const { t } = useI18n(); const size = ref(ComponentSize.MD); - diff --git a/docs/pages/webitel-ui/components/wt-dummy/Readme.md b/docs/pages/webitel-ui/components/wt-dummy/Readme.md index 18d2db0fa..b88bc939e 100644 --- a/docs/pages/webitel-ui/components/wt-dummy/Readme.md +++ b/docs/pages/webitel-ui/components/wt-dummy/Readme.md @@ -8,11 +8,13 @@ > то викиньте той `wt-dummy`, і заюзайте [`wt-empty`](../wt-empty/Readme.md). ## Props + ::: raw- + - - - - + +- + {{ t('reusable.edit') }} ::: ## Example Dummy + ::: raw ::: diff --git a/docs/pages/webitel-ui/components/wt-dummy/examples/example-dummy.vue b/docs/pages/webitel-ui/components/wt-dummy/examples/example-dummy.vue index 12a4a37bd..36610827a 100644 --- a/docs/pages/webitel-ui/components/wt-dummy/examples/example-dummy.vue +++ b/docs/pages/webitel-ui/components/wt-dummy/examples/example-dummy.vue @@ -1,11 +1,7 @@ - + - + diff --git a/docs/pages/webitel-ui/components/wt-dummy/wt-dummy-docs.vue b/docs/pages/webitel-ui/components/wt-dummy/wt-dummy-docs.vue index fbdd991e9..d33ac1a47 100644 --- a/docs/pages/webitel-ui/components/wt-dummy/wt-dummy-docs.vue +++ b/docs/pages/webitel-ui/components/wt-dummy/wt-dummy-docs.vue @@ -1,10 +1,6 @@ - - + + diff --git a/docs/pages/webitel-ui/components/wt-empty/examples/example-empty.vue b/docs/pages/webitel-ui/components/wt-empty/examples/example-empty.vue index 56b1e4f73..f5ff73cd3 100644 --- a/docs/pages/webitel-ui/components/wt-empty/examples/example-empty.vue +++ b/docs/pages/webitel-ui/components/wt-empty/examples/example-empty.vue @@ -23,6 +23,5 @@ const handleClick = (action) => { diff --git a/docs/pages/webitel-ui/components/wt-error-page/Readme.md b/docs/pages/webitel-ui/components/wt-error-page/Readme.md index 3154010cb..f99307e5c 100644 --- a/docs/pages/webitel-ui/components/wt-error-page/Readme.md +++ b/docs/pages/webitel-ui/components/wt-error-page/Readme.md @@ -7,11 +7,13 @@ import Example403ErrorPage from './examples/example-403-error-page.vue'; # WtErrorPage ## Props + ::: raw ::: ## Example 404 Error Page + ::: raw ::: @@ -21,6 +23,7 @@ import Example403ErrorPage from './examples/example-403-error-page.vue'; ::: ## Example 403 Error Page + ::: raw ::: diff --git a/docs/pages/webitel-ui/components/wt-error-page/examples/example-403-error-page.vue b/docs/pages/webitel-ui/components/wt-error-page/examples/example-403-error-page.vue index d7980a542..7d0245a07 100644 --- a/docs/pages/webitel-ui/components/wt-error-page/examples/example-403-error-page.vue +++ b/docs/pages/webitel-ui/components/wt-error-page/examples/example-403-error-page.vue @@ -1,14 +1,10 @@ - + - + diff --git a/docs/pages/webitel-ui/components/wt-error-page/examples/example-404-error-page.vue b/docs/pages/webitel-ui/components/wt-error-page/examples/example-404-error-page.vue index 7bd42aa44..55cf06081 100644 --- a/docs/pages/webitel-ui/components/wt-error-page/examples/example-404-error-page.vue +++ b/docs/pages/webitel-ui/components/wt-error-page/examples/example-404-error-page.vue @@ -1,14 +1,10 @@ - + - + diff --git a/docs/pages/webitel-ui/components/wt-error-page/wt-error-page-docs.vue b/docs/pages/webitel-ui/components/wt-error-page/wt-error-page-docs.vue index 7fc32c4a0..6e217919f 100644 --- a/docs/pages/webitel-ui/components/wt-error-page/wt-error-page-docs.vue +++ b/docs/pages/webitel-ui/components/wt-error-page/wt-error-page-docs.vue @@ -1,10 +1,6 @@ - - + + - + diff --git a/docs/pages/webitel-ui/components/wt-expansion-panel/Readme.md b/docs/pages/webitel-ui/components/wt-expansion-panel/Readme.md index cc7765eaf..cb7b41fc4 100644 --- a/docs/pages/webitel-ui/components/wt-expansion-panel/Readme.md +++ b/docs/pages/webitel-ui/components/wt-expansion-panel/Readme.md @@ -6,21 +6,21 @@ ## Props | Name | Type | Default | Description | -|-------------|---------|---------|--------------------------------------------------------------------------------------------------| +| ----------- | ------- | ------- | ------------------------------------------------------------------------------------------------ | | `size` | String | `md` | Size of the expansion panel. Can be `sm`, or `md`. | | `collapsed` | Boolean | `false` | Whether the expansion panel is initially collapsed. Also, can force expansion state, if changed. | ## Events | Name | Params | Description | -|----------|--------|---------------------------------------------| +| -------- | ------ | ------------------------------------------- | | `opened` | - | Emitted when the expansion panel is opened. | | `closed` | - | Emitted when the expansion panel is closed. | ## Slots | Name | Scope | Description | -|-----------|---------------------------------------|---------------------------------| +| --------- | ------------------------------------- | ------------------------------- | | `default` | - | Content of the expansion panel. | | `title` | - | Title of the expansion panel. | | `actions` | `{ open: function, opened: boolean }` | Actions of the expansion panel. | diff --git a/docs/pages/webitel-ui/components/wt-expansion-panel/examples/example-expansion-panel-different-sizes.vue b/docs/pages/webitel-ui/components/wt-expansion-panel/examples/example-expansion-panel-different-sizes.vue index 75bc1438c..fb92f085e 100644 --- a/docs/pages/webitel-ui/components/wt-expansion-panel/examples/example-expansion-panel-different-sizes.vue +++ b/docs/pages/webitel-ui/components/wt-expansion-panel/examples/example-expansion-panel-different-sizes.vue @@ -1,28 +1,20 @@ - + - +- + diff --git a/docs/pages/webitel-ui/components/wt-filters-panel-wrapper/Readme.md b/docs/pages/webitel-ui/components/wt-filters-panel-wrapper/Readme.md index d33de562e..ca8f03e5a 100644 --- a/docs/pages/webitel-ui/components/wt-filters-panel-wrapper/Readme.md +++ b/docs/pages/webitel-ui/components/wt-filters-panel-wrapper/Readme.md @@ -6,11 +6,13 @@ import ExampleTableActions from './examples/example-table-actions.vue'; # WtTableActions ## Props + ::: raw- - Md Title - - Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore - magna aliqua. + Md Title + Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod + tempor incididunt ut labore et dolore magna aliqua. - - Sm Title - - Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore - magna aliqua. + Sm Title + Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod + tempor incididunt ut labore et dolore magna aliqua. ::: ## Example Table Actions + ::: raw ::: diff --git a/docs/pages/webitel-ui/components/wt-filters-panel-wrapper/examples/example-table-actions.vue b/docs/pages/webitel-ui/components/wt-filters-panel-wrapper/examples/example-table-actions.vue index 474ea74d9..662b64e68 100644 --- a/docs/pages/webitel-ui/components/wt-filters-panel-wrapper/examples/example-table-actions.vue +++ b/docs/pages/webitel-ui/components/wt-filters-panel-wrapper/examples/example-table-actions.vue @@ -1,6 +1,4 @@ - + @@ -14,6 +12,4 @@ - + diff --git a/docs/pages/webitel-ui/components/wt-filters-panel-wrapper/wt-table-actions-docs.vue b/docs/pages/webitel-ui/components/wt-filters-panel-wrapper/wt-table-actions-docs.vue index 77d14d523..a34a3cb06 100644 --- a/docs/pages/webitel-ui/components/wt-filters-panel-wrapper/wt-table-actions-docs.vue +++ b/docs/pages/webitel-ui/components/wt-filters-panel-wrapper/wt-table-actions-docs.vue @@ -1,10 +1,6 @@ -- + + - + diff --git a/docs/pages/webitel-ui/components/wt-headline-nav/Readme.md b/docs/pages/webitel-ui/components/wt-headline-nav/Readme.md index 0985d59ec..2b2144d8d 100644 --- a/docs/pages/webitel-ui/components/wt-headline-nav/Readme.md +++ b/docs/pages/webitel-ui/components/wt-headline-nav/Readme.md @@ -6,11 +6,13 @@ import ExampleHeadlineNav from './examples/example-headline-nav.vue'; # WtHeadlineNav ## Props + ::: raw ::: ## Example: + ::: raw ::: diff --git a/docs/pages/webitel-ui/components/wt-headline-nav/examples/example-headline-nav.vue b/docs/pages/webitel-ui/components/wt-headline-nav/examples/example-headline-nav.vue index 071ea4d74..33495e7d8 100644 --- a/docs/pages/webitel-ui/components/wt-headline-nav/examples/example-headline-nav.vue +++ b/docs/pages/webitel-ui/components/wt-headline-nav/examples/example-headline-nav.vue @@ -1,17 +1,16 @@ - + - + diff --git a/docs/pages/webitel-ui/components/wt-headline-nav/wt-headline-nav-docs.vue b/docs/pages/webitel-ui/components/wt-headline-nav/wt-headline-nav-docs.vue index 14c020a91..188e0251c 100644 --- a/docs/pages/webitel-ui/components/wt-headline-nav/wt-headline-nav-docs.vue +++ b/docs/pages/webitel-ui/components/wt-headline-nav/wt-headline-nav-docs.vue @@ -1,22 +1,20 @@ - - + diff --git a/docs/pages/webitel-ui/components/wt-headline/Readme.md b/docs/pages/webitel-ui/components/wt-headline/Readme.md index b100fd4c7..de38d615a 100644 --- a/docs/pages/webitel-ui/components/wt-headline/Readme.md +++ b/docs/pages/webitel-ui/components/wt-headline/Readme.md @@ -6,11 +6,13 @@ import ExampleHeadline from './examples/example-headline.vue'; # WtHeadline ## Props + ::: raw+ ::: ## Example Headline + ::: raw ::: diff --git a/docs/pages/webitel-ui/components/wt-headline/examples/example-headline.vue b/docs/pages/webitel-ui/components/wt-headline/examples/example-headline.vue index 8cde99a4c..ad9aeb8a4 100644 --- a/docs/pages/webitel-ui/components/wt-headline/examples/example-headline.vue +++ b/docs/pages/webitel-ui/components/wt-headline/examples/example-headline.vue @@ -1,21 +1,15 @@ - + - - Headline - + Headline - + diff --git a/docs/pages/webitel-ui/components/wt-headline/wt-headline-docs.vue b/docs/pages/webitel-ui/components/wt-headline/wt-headline-docs.vue index 96f058e11..15f807e46 100644 --- a/docs/pages/webitel-ui/components/wt-headline/wt-headline-docs.vue +++ b/docs/pages/webitel-ui/components/wt-headline/wt-headline-docs.vue @@ -1,7 +1,5 @@ -- - Hello - +Hello there! @@ -24,6 +18,4 @@ + - + diff --git a/docs/pages/webitel-ui/components/wt-hint/Readme.md b/docs/pages/webitel-ui/components/wt-hint/Readme.md index 9e13c21c0..e731f76e6 100644 --- a/docs/pages/webitel-ui/components/wt-hint/Readme.md +++ b/docs/pages/webitel-ui/components/wt-hint/Readme.md @@ -6,16 +6,18 @@ import ExampleHint from './examples/example-hint.vue'; ## Props -| Prop | Type | Default | Code | Description | -|-------------------|----------|---------|-------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------| -| iconColor | String | 'info' | ` {{ hint }} ` | Prop for hint icon color. iconColor prop value can be the same as the color props values in the wt-icon component | +| Prop | Type | Default | Code | Description | +| --------- | ------ | ------- | --------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | +| iconColor | String | 'info' | `{{ hint }} ` | Prop for hint icon color. iconColor prop value can be the same as the color props values in the wt-icon component | + ## Slots -| Name | Scope | Description | -|------------|---------------------------------------------------------------------------------------|----------------------| -| default | | Default content slot | +| Name | Scope | Description | +| ------- | ----- | -------------------- | +| default | | Default content slot | ## Example Hint + ::: raw::: diff --git a/docs/pages/webitel-ui/components/wt-hint/examples/example-hint.vue b/docs/pages/webitel-ui/components/wt-hint/examples/example-hint.vue index 9b0c3382d..dfefb8ac0 100644 --- a/docs/pages/webitel-ui/components/wt-hint/examples/example-hint.vue +++ b/docs/pages/webitel-ui/components/wt-hint/examples/example-hint.vue @@ -1,13 +1,7 @@ - + - - lorem ipsum - +lorem ipsum - + diff --git a/docs/pages/webitel-ui/components/wt-icon-action/component-specs.vue b/docs/pages/webitel-ui/components/wt-icon-action/component-specs.vue index 8bb1bfa0d..15d7b3da0 100644 --- a/docs/pages/webitel-ui/components/wt-icon-action/component-specs.vue +++ b/docs/pages/webitel-ui/components/wt-icon-action/component-specs.vue @@ -6,6 +6,4 @@ import Component from '__lib__/components/wt-icon-action/wt-icon-action.vue';- + diff --git a/docs/pages/webitel-ui/components/wt-icon-action/examples/example-icon-action.vue b/docs/pages/webitel-ui/components/wt-icon-action/examples/example-icon-action.vue index 7e7302215..c379a30f9 100644 --- a/docs/pages/webitel-ui/components/wt-icon-action/examples/example-icon-action.vue +++ b/docs/pages/webitel-ui/components/wt-icon-action/examples/example-icon-action.vue @@ -12,26 +12,30 @@ const availableActions = Object.keys(IActionData); - - + diff --git a/docs/pages/webitel-ui/components/wt-icon-btn/Readme.md b/docs/pages/webitel-ui/components/wt-icon-btn/Readme.md index 72a49b352..455d62d3a 100644 --- a/docs/pages/webitel-ui/components/wt-icon-btn/Readme.md +++ b/docs/pages/webitel-ui/components/wt-icon-btn/Readme.md @@ -6,6 +6,7 @@ import ExampleIconBtn from './examples/example-icon-btn.vue'; # WtIconBtn ## Props + ::: raw+ IconAction.{{ item.action }}
::: @@ -13,6 +14,7 @@ import ExampleIconBtn from './examples/example-icon-btn.vue'; ### Note: all wt=icon props are passed as "$attrs" ## Example + ::: raw ::: diff --git a/docs/pages/webitel-ui/components/wt-icon-btn/examples/example-icon-btn.vue b/docs/pages/webitel-ui/components/wt-icon-btn/examples/example-icon-btn.vue index 0e29b2748..31bc70f36 100644 --- a/docs/pages/webitel-ui/components/wt-icon-btn/examples/example-icon-btn.vue +++ b/docs/pages/webitel-ui/components/wt-icon-btn/examples/example-icon-btn.vue @@ -9,6 +9,4 @@ const callAlert = () => window.alert('wt-icon-btn clicked'); > - + diff --git a/docs/pages/webitel-ui/components/wt-icon-btn/wt-icon-btn-docs.vue b/docs/pages/webitel-ui/components/wt-icon-btn/wt-icon-btn-docs.vue index df95ae338..9a58f4cb5 100644 --- a/docs/pages/webitel-ui/components/wt-icon-btn/wt-icon-btn-docs.vue +++ b/docs/pages/webitel-ui/components/wt-icon-btn/wt-icon-btn-docs.vue @@ -1,82 +1,77 @@ - - + diff --git a/docs/pages/webitel-ui/components/wt-icon/Readme.md b/docs/pages/webitel-ui/components/wt-icon/Readme.md index 9e4fee6ad..fcac4a1bd 100644 --- a/docs/pages/webitel-ui/components/wt-icon/Readme.md +++ b/docs/pages/webitel-ui/components/wt-icon/Readme.md @@ -7,12 +7,12 @@ const colors = ['default', 'active', 'disabled', 'primary', 'error', 'success', ## Props | Prop | Type | Default | Required | Code | Options | -|------------|---------|---------|----------|-----------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------| -| icon | String | | true | `- + + ` | | -| size | String | md | | ` ` | sm, md, lg, xl | -| color | String | default | | ` ` | default, active, disabled, primary, error, success, warning, on-dark, on-light, on-primary, info, chat, transfer, job | -| iconPrefix | String | `''` | | ` ` | | -| disabled | Boolean | false | | ` ` | | +| ---------- | ------- | ------- | -------- | --------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | +| icon | String | | true | ` ` | | +| size | String | md | | ` ` | sm, md, lg, xl | +| color | String | default | | ` ` | default, active, disabled, primary, error, success, warning, on-dark, on-light, on-primary, info, chat, transfer, job | +| iconPrefix | String | `''` | | ` ` | | +| disabled | Boolean | false | | ` ` | | ### Different colors: @@ -73,16 +73,17 @@ Then, these icons can be used as: `vite-plugin-svg-sprite` vite rule in vite.config.js
also collects all icons from `sprite` directories in project and adds it to final sprite. -*In fact, webitel-ui icons are added to sprite just cause they're imported from -"sprite" directory - just innode_modules
* +_In fact, webitel-ui icons are added to sprite just cause they're imported from +"sprite" directory - just innode_modules
_ -For stylistic purposes, it's recommended to allocate icons insrc/(app?)/assets/icons/sprite/*
, +For stylistic purposes, it's recommended to allocate icons insrc/(app?)/assets/icons/sprite/\*
, So that developers and designer could find (and then check or update) them in any project. All icons from this directory should be imported inindex.js
in this directory (create `index.js` if it doesn't exist). Then, `index.html` should be imported in `main.js`: +And, then, if you put some new icons in this directory, and import them in `index.js`, @@ -90,11 +91,11 @@ they automatically become available in project. ### Simple TODO: -* Create directory `src/(app?)/assets/icons/sprite/` (if doesn't exists) -* in this folder, create `index.js` (if doesn't exists) -* Import `index.js` to `>main.js` (if doesn't exists) -* Put icon to this directory, and import it to `index.js` -* That's all, you're awesome! +- Create directory `src/(app?)/assets/icons/sprite/` (if doesn't exists) +- in this folder, create `index.js` (if doesn't exists) +- Import `index.js` to `>main.js` (if doesn't exists) +- Put icon to this directory, and import it to `index.js` +- That's all, you're awesome! ## Icon sprites naming convention: @@ -102,17 +103,17 @@ App-specific icons are highly recommended to be named with the prefix correspond The reason is: when you see an icon usage, you will be able to distinguish `svg` location: in this app, or library - and update it, if needed. -*For example, if you want to move this icon from app to library, you just need to remove `icon-prefix` prop -from all icon usages (and, of course, rename the icon file)* +_For example, if you want to move this icon from app to library, you just need to remove `icon-prefix` prop +from all icon usages (and, of course, rename the icon file)_ ### Icon prefix corresponding to application: -* **Webitel UI:** no prefix -* **Admin:** `adm-` -* **Workspace:** `ws-` -* **Supervisor:** `sv-` -* **History:** `hs-` -* **Webitel CC UI:** `cc-` +- **Webitel UI:** no prefix +- **Admin:** `adm-` +- **Workspace:** `ws-` +- **Supervisor:** `sv-` +- **History:** `hs-` +- **Webitel CC UI:** `cc-` ## How to clean up icons before adding them to project? @@ -140,10 +141,8 @@ Correct: 5. **Remove** all `fill=""` with default color -*Default "fill" should be cleaned up, cause Figma adds it to icon by default, but we are +_Default "fill" should be cleaned up, cause Figma adds it to icon by default, but we are changing this fill in styles to suit our needs. -But! Specific colors should stay in svg-code. (for instance, red dot in `record` icon)* +But! Specific colors should stay in svg-code. (for instance, red dot in `record` icon)_ !["fill" should be removed](./assets/cleanup-svg-fill.png) - - diff --git a/docs/pages/webitel-ui/components/wt-image/component-specs.vue b/docs/pages/webitel-ui/components/wt-image/component-specs.vue index d7214f371..6ee60aa57 100644 --- a/docs/pages/webitel-ui/components/wt-image/component-specs.vue +++ b/docs/pages/webitel-ui/components/wt-image/component-specs.vue @@ -6,6 +6,4 @@ import Component from '__lib__/components/wt-image/wt-image.vue';import './assets/icons/sprite';
- + diff --git a/docs/pages/webitel-ui/components/wt-image/examples/example-image-sizes.vue b/docs/pages/webitel-ui/components/wt-image/examples/example-image-sizes.vue index 5b23d7216..6a808638e 100644 --- a/docs/pages/webitel-ui/components/wt-image/examples/example-image-sizes.vue +++ b/docs/pages/webitel-ui/components/wt-image/examples/example-image-sizes.vue @@ -1,8 +1,11 @@ - +@@ -22,17 +25,7 @@ const props = defineProps({}); const emit = defineEmits([]); -const sizes = [ - '3xs', - '2xs', - 'xs', - 'sm', - 'md', - 'lg', - 'xl', - '2xl', - '3xl', -]; +const sizes = ['3xs', '2xs', 'xs', 'sm', 'md', 'lg', 'xl', '2xl', '3xl']; + diff --git a/docs/pages/webitel-ui/components/wt-indicator/examples/example-indicator-different-colors.vue b/docs/pages/webitel-ui/components/wt-indicator/examples/example-indicator-different-colors.vue index bd18f47b3..00272add4 100644 --- a/docs/pages/webitel-ui/components/wt-indicator/examples/example-indicator-different-colors.vue +++ b/docs/pages/webitel-ui/components/wt-indicator/examples/example-indicator-different-colors.vue @@ -23,6 +23,4 @@ const colors = [ /> - + diff --git a/docs/pages/webitel-ui/components/wt-indicator/examples/example-indicator-different-sizes.vue b/docs/pages/webitel-ui/components/wt-indicator/examples/example-indicator-different-sizes.vue index 0f8734432..0a8e0a727 100644 --- a/docs/pages/webitel-ui/components/wt-indicator/examples/example-indicator-different-sizes.vue +++ b/docs/pages/webitel-ui/components/wt-indicator/examples/example-indicator-different-sizes.vue @@ -1,8 +1,5 @@ @@ -14,6 +11,4 @@ /> - + diff --git a/docs/pages/webitel-ui/components/wt-input-info/Readme.md b/docs/pages/webitel-ui/components/wt-input-info/Readme.md index b8a32c703..1c14d729e 100644 --- a/docs/pages/webitel-ui/components/wt-input-info/Readme.md +++ b/docs/pages/webitel-ui/components/wt-input-info/Readme.md @@ -7,11 +7,13 @@ import ExampleInvalidInputInfo from './examples/example-invalid-input-info.vue'; # WtInputInfo ## Props + ::: raw ::: ## Example Input Info + ::: raw ::: @@ -21,6 +23,7 @@ import ExampleInvalidInputInfo from './examples/example-invalid-input-info.vue'; ::: ## Example Invalid Input Info + ::: raw ::: diff --git a/docs/pages/webitel-ui/components/wt-input-info/examples/example-input-info.vue b/docs/pages/webitel-ui/components/wt-input-info/examples/example-input-info.vue index 9926f5176..eaad08646 100644 --- a/docs/pages/webitel-ui/components/wt-input-info/examples/example-input-info.vue +++ b/docs/pages/webitel-ui/components/wt-input-info/examples/example-input-info.vue @@ -1,11 +1,7 @@ - + Input info - + diff --git a/docs/pages/webitel-ui/components/wt-input-info/examples/example-invalid-input-info.vue b/docs/pages/webitel-ui/components/wt-input-info/examples/example-invalid-input-info.vue index 65a374db4..7ad1411b8 100644 --- a/docs/pages/webitel-ui/components/wt-input-info/examples/example-invalid-input-info.vue +++ b/docs/pages/webitel-ui/components/wt-input-info/examples/example-invalid-input-info.vue @@ -1,13 +1,7 @@ - + -- Invalid input info - +Invalid input info - + diff --git a/docs/pages/webitel-ui/components/wt-input-info/wt-input-info-docs.vue b/docs/pages/webitel-ui/components/wt-input-info/wt-input-info-docs.vue index 29721dd85..2c8349060 100644 --- a/docs/pages/webitel-ui/components/wt-input-info/wt-input-info-docs.vue +++ b/docs/pages/webitel-ui/components/wt-input-info/wt-input-info-docs.vue @@ -1,7 +1,5 @@ -+ @@ -27,5 +25,4 @@ export default { }; - + diff --git a/docs/pages/webitel-ui/components/wt-input/Readme.md b/docs/pages/webitel-ui/components/wt-input/Readme.md index c809cef95..09ebb444f 100644 --- a/docs/pages/webitel-ui/components/wt-input/Readme.md +++ b/docs/pages/webitel-ui/components/wt-input/Readme.md @@ -15,6 +15,7 @@ import ExamplePasswordInput from './examples/example-password-input.vue'; ::: ## Example Input + :::raw ::: @@ -24,6 +25,7 @@ import ExamplePasswordInput from './examples/example-password-input.vue'; ::: ## Example Disabled Input + :::raw ::: @@ -33,6 +35,7 @@ import ExamplePasswordInput from './examples/example-password-input.vue'; ::: ## Example Password Input + :::raw ::: @@ -42,6 +45,7 @@ import ExamplePasswordInput from './examples/example-password-input.vue'; ::: ## Example Invalid Input + :::raw ::: @@ -51,6 +55,7 @@ import ExamplePasswordInput from './examples/example-password-input.vue'; ::: ## Example Input After Slot + :::raw ::: @@ -58,5 +63,3 @@ import ExamplePasswordInput from './examples/example-password-input.vue'; ::: details Code <<< ./examples/example-input-after-slot.vue{highlightLines} ::: - - diff --git a/docs/pages/webitel-ui/components/wt-input/examples/example-input-after-slot.vue b/docs/pages/webitel-ui/components/wt-input/examples/example-input-after-slot.vue index fc2e3c3a5..e187ba7eb 100644 --- a/docs/pages/webitel-ui/components/wt-input/examples/example-input-after-slot.vue +++ b/docs/pages/webitel-ui/components/wt-input/examples/example-input-after-slot.vue @@ -6,9 +6,15 @@ > - + - + diff --git a/docs/pages/webitel-ui/components/wt-input/examples/example-invalid-input.vue b/docs/pages/webitel-ui/components/wt-input/examples/example-invalid-input.vue index 03a7b76cc..5c1ee0ea2 100644 --- a/docs/pages/webitel-ui/components/wt-input/examples/example-invalid-input.vue +++ b/docs/pages/webitel-ui/components/wt-input/examples/example-invalid-input.vue @@ -13,11 +13,14 @@ import { useVuelidate } from '@vuelidate/core'; const value = ref('invalid value'); -const v$ = useVuelidate(computed(() => ({ - value: { - required: () => false, - }, -})), { value }); +const v$ = useVuelidate( + computed(() => ({ + value: { + required: () => false, + }, + })), + { value }, +); v$.value.$touch(); diff --git a/docs/pages/webitel-ui/components/wt-input/wt-input-docs.vue b/docs/pages/webitel-ui/components/wt-input/wt-input-docs.vue index a01297eca..712e2b7a8 100644 --- a/docs/pages/webitel-ui/components/wt-input/wt-input-docs.vue +++ b/docs/pages/webitel-ui/components/wt-input/wt-input-docs.vue @@ -1,137 +1,137 @@ - + diff --git a/docs/pages/webitel-ui/components/wt-item-link/Readme.md b/docs/pages/webitel-ui/components/wt-item-link/Readme.md index e64519dfb..1f53235f5 100644 --- a/docs/pages/webitel-ui/components/wt-item-link/Readme.md +++ b/docs/pages/webitel-ui/components/wt-item-link/Readme.md @@ -5,6 +5,7 @@ import Specs from './component-specs.vue'; # WtItemLink ## Specs + - - - + + + ## Example Item Link diff --git a/docs/pages/webitel-ui/components/wt-item-link/component-specs.vue b/docs/pages/webitel-ui/components/wt-item-link/component-specs.vue index 57f98181e..b5db8881d 100644 --- a/docs/pages/webitel-ui/components/wt-item-link/component-specs.vue +++ b/docs/pages/webitel-ui/components/wt-item-link/component-specs.vue @@ -1,12 +1,9 @@ - + diff --git a/docs/pages/webitel-ui/components/wt-item-link/examples/example-item-link.vue b/docs/pages/webitel-ui/components/wt-item-link/examples/example-item-link.vue index 2841fdd40..36d7f0d13 100644 --- a/docs/pages/webitel-ui/components/wt-item-link/examples/example-item-link.vue +++ b/docs/pages/webitel-ui/components/wt-item-link/examples/example-item-link.vue @@ -1,16 +1,12 @@ - + - - Item link to dev - ++ Item link to dev + - + diff --git a/docs/pages/webitel-ui/components/wt-label/Readme.md b/docs/pages/webitel-ui/components/wt-label/Readme.md index e5ddbf84c..f2fdf2aed 100644 --- a/docs/pages/webitel-ui/components/wt-label/Readme.md +++ b/docs/pages/webitel-ui/components/wt-label/Readme.md @@ -9,11 +9,13 @@ import ExampleHintedLabel from './examples/example-hinted-label.vue'; # WtLabel ## Props + ::: raw::: ## Example label + ::: raw ::: @@ -21,7 +23,9 @@ import ExampleHintedLabel from './examples/example-hinted-label.vue'; ::: details Code <<< ./examples/example-label.vue ::: + ## Error label + ::: raw ::: @@ -31,6 +35,7 @@ import ExampleHintedLabel from './examples/example-hinted-label.vue'; ::: ## Disabled label + ::: raw ::: @@ -40,6 +45,7 @@ import ExampleHintedLabel from './examples/example-hinted-label.vue'; ::: ## Hinted label + ::: raw ::: diff --git a/docs/pages/webitel-ui/components/wt-label/examples/example-disabled-label.vue b/docs/pages/webitel-ui/components/wt-label/examples/example-disabled-label.vue index a4f2eb507..96c9b9aa8 100644 --- a/docs/pages/webitel-ui/components/wt-label/examples/example-disabled-label.vue +++ b/docs/pages/webitel-ui/components/wt-label/examples/example-disabled-label.vue @@ -1,15 +1,7 @@ - + - - Disabled label - +Disabled label - + diff --git a/docs/pages/webitel-ui/components/wt-label/examples/example-error-label.vue b/docs/pages/webitel-ui/components/wt-label/examples/example-error-label.vue index 09123003c..2007ddc25 100644 --- a/docs/pages/webitel-ui/components/wt-label/examples/example-error-label.vue +++ b/docs/pages/webitel-ui/components/wt-label/examples/example-error-label.vue @@ -1,15 +1,7 @@ - + -- Error label - +Error label - + diff --git a/docs/pages/webitel-ui/components/wt-label/examples/example-hinted-label.vue b/docs/pages/webitel-ui/components/wt-label/examples/example-hinted-label.vue index b5c9bfd35..b3568a528 100644 --- a/docs/pages/webitel-ui/components/wt-label/examples/example-hinted-label.vue +++ b/docs/pages/webitel-ui/components/wt-label/examples/example-hinted-label.vue @@ -1,15 +1,7 @@ - + -- Hinted label - +Hinted label - + diff --git a/docs/pages/webitel-ui/components/wt-label/examples/example-label.vue b/docs/pages/webitel-ui/components/wt-label/examples/example-label.vue index 97e20cf60..8a0232e92 100644 --- a/docs/pages/webitel-ui/components/wt-label/examples/example-label.vue +++ b/docs/pages/webitel-ui/components/wt-label/examples/example-label.vue @@ -1,13 +1,7 @@ - + -- Example label - +Example label - + diff --git a/docs/pages/webitel-ui/components/wt-label/wt-label-docs.vue b/docs/pages/webitel-ui/components/wt-label/wt-label-docs.vue index 2233d3466..6e2124715 100644 --- a/docs/pages/webitel-ui/components/wt-label/wt-label-docs.vue +++ b/docs/pages/webitel-ui/components/wt-label/wt-label-docs.vue @@ -1,59 +1,56 @@- - + diff --git a/docs/pages/webitel-ui/components/wt-load-bar/Readme.md b/docs/pages/webitel-ui/components/wt-load-bar/Readme.md index 3e4e40d53..9e5e5eea3 100644 --- a/docs/pages/webitel-ui/components/wt-load-bar/Readme.md +++ b/docs/pages/webitel-ui/components/wt-load-bar/Readme.md @@ -6,11 +6,13 @@ import ExampleLoadBar from './examples/example-load-bar.vue'; # WtLoadBar ## Props + ::: raw+ ::: ## Example Load Bar + ::: raw ::: diff --git a/docs/pages/webitel-ui/components/wt-load-bar/examples/example-load-bar.vue b/docs/pages/webitel-ui/components/wt-load-bar/examples/example-load-bar.vue index 6d4fc2c3e..bd4e8dbd5 100644 --- a/docs/pages/webitel-ui/components/wt-load-bar/examples/example-load-bar.vue +++ b/docs/pages/webitel-ui/components/wt-load-bar/examples/example-load-bar.vue @@ -1,6 +1,4 @@ - + - + diff --git a/docs/pages/webitel-ui/components/wt-load-bar/wt-load-bar-docs.vue b/docs/pages/webitel-ui/components/wt-load-bar/wt-load-bar-docs.vue index 74864ddf8..8cf44f61f 100644 --- a/docs/pages/webitel-ui/components/wt-load-bar/wt-load-bar-docs.vue +++ b/docs/pages/webitel-ui/components/wt-load-bar/wt-load-bar-docs.vue @@ -1,7 +1,5 @@ - + - + diff --git a/docs/pages/webitel-ui/components/wt-loader/Readme.md b/docs/pages/webitel-ui/components/wt-loader/Readme.md index a72a401ce..62703751d 100644 --- a/docs/pages/webitel-ui/components/wt-loader/Readme.md +++ b/docs/pages/webitel-ui/components/wt-loader/Readme.md @@ -7,11 +7,13 @@ import ExampleSmLoaderDifferentColors from './examples/example-sm-loader-differe # WtLoader ## Props + ::: raw ::: ## Example Loader Different Sizes + ::: raw ::: @@ -21,6 +23,7 @@ import ExampleSmLoaderDifferentColors from './examples/example-sm-loader-differe ::: ## Example Sm Loader Different Colors + ::: raw ::: @@ -28,4 +31,3 @@ import ExampleSmLoaderDifferentColors from './examples/example-sm-loader-differe ::: details Code <<< ./examples/example-sm-loader-different-colors.vue ::: - diff --git a/docs/pages/webitel-ui/components/wt-loader/examples/example-loader-different-sizes.vue b/docs/pages/webitel-ui/components/wt-loader/examples/example-loader-different-sizes.vue index 4174d920d..878d5a697 100644 --- a/docs/pages/webitel-ui/components/wt-loader/examples/example-loader-different-sizes.vue +++ b/docs/pages/webitel-ui/components/wt-loader/examples/example-loader-different-sizes.vue @@ -1,12 +1,8 @@ - + - + diff --git a/docs/pages/webitel-ui/components/wt-loader/examples/example-sm-loader-different-colors.vue b/docs/pages/webitel-ui/components/wt-loader/examples/example-sm-loader-different-colors.vue index 11f9f49e8..d415c51bf 100644 --- a/docs/pages/webitel-ui/components/wt-loader/examples/example-sm-loader-different-colors.vue +++ b/docs/pages/webitel-ui/components/wt-loader/examples/example-sm-loader-different-colors.vue @@ -1,10 +1,5 @@ @@ -16,6 +11,4 @@ /> - + diff --git a/docs/pages/webitel-ui/components/wt-loader/wt-loader-docs.vue b/docs/pages/webitel-ui/components/wt-loader/wt-loader-docs.vue index 98935e82c..8d3181f9a 100644 --- a/docs/pages/webitel-ui/components/wt-loader/wt-loader-docs.vue +++ b/docs/pages/webitel-ui/components/wt-loader/wt-loader-docs.vue @@ -1,7 +1,5 @@ - + - + diff --git a/docs/pages/webitel-ui/components/wt-logo/Readme.md b/docs/pages/webitel-ui/components/wt-logo/Readme.md index 3faeb7921..5729fdd3b 100644 --- a/docs/pages/webitel-ui/components/wt-logo/Readme.md +++ b/docs/pages/webitel-ui/components/wt-logo/Readme.md @@ -7,17 +7,19 @@ import ExampleLogo from './examples/example-logo.vue'; ## Props | Prop | Type | Default | Description | -|-----------|---------|---------|---------------------------------------| +| --------- | ------- | ------- | ------------------------------------- | | dark-mode | Boolean | false | changes logo depending on color theme | ## Examples ::: raw -::: +::: ::: details Code <<< ./examples/example-logo.vue ::: + ``` +``` diff --git a/docs/pages/webitel-ui/components/wt-logo/examples/example-logo.vue b/docs/pages/webitel-ui/components/wt-logo/examples/example-logo.vue index 93a55cd00..310e1f991 100644 --- a/docs/pages/webitel-ui/components/wt-logo/examples/example-logo.vue +++ b/docs/pages/webitel-ui/components/wt-logo/examples/example-logo.vue @@ -1,12 +1,8 @@ - + - - + + - + diff --git a/docs/pages/webitel-ui/components/wt-navigation-bar/Readme.md b/docs/pages/webitel-ui/components/wt-navigation-bar/Readme.md index 8b69bd6f9..7442c32db 100644 --- a/docs/pages/webitel-ui/components/wt-navigation-bar/Readme.md +++ b/docs/pages/webitel-ui/components/wt-navigation-bar/Readme.md @@ -6,11 +6,13 @@ import ExampleNavigationBar from './examples/example-navigation-bar.vue'; # WtNavigationBar ## Props + ::: raw ::: ## Example NavigationBar + ::: raw ::: diff --git a/docs/pages/webitel-ui/components/wt-navigation-bar/examples/example-navigation-bar.vue b/docs/pages/webitel-ui/components/wt-navigation-bar/examples/example-navigation-bar.vue index 322e1d36e..4b823ffc5 100644 --- a/docs/pages/webitel-ui/components/wt-navigation-bar/examples/example-navigation-bar.vue +++ b/docs/pages/webitel-ui/components/wt-navigation-bar/examples/example-navigation-bar.vue @@ -4,13 +4,17 @@ const currentApp = 'history'; const nav = [ { value: '1', name: 'Name 1', route: '/1' }, { - value: 'exp1', name: 'Expansion 1', subNav: [ + value: 'exp1', + name: 'Expansion 1', + subNav: [ { value: '2', name: 'Name 2', route: '/2' }, { value: '3', name: 'Name 3', route: '/3' }, ], }, { - value: 'exp2', name: 'Expansion 2', subNav: [ + value: 'exp2', + name: 'Expansion 2', + subNav: [ { value: '4', name: 'Name 4', route: '/4' }, { value: '5', name: 'Name 5', route: '/5' }, ], diff --git a/docs/pages/webitel-ui/components/wt-navigation-bar/wt-navigation-bar-docs.vue b/docs/pages/webitel-ui/components/wt-navigation-bar/wt-navigation-bar-docs.vue index 552991cc3..87d3f9fc5 100644 --- a/docs/pages/webitel-ui/components/wt-navigation-bar/wt-navigation-bar-docs.vue +++ b/docs/pages/webitel-ui/components/wt-navigation-bar/wt-navigation-bar-docs.vue @@ -1,7 +1,5 @@ - + - + diff --git a/docs/pages/webitel-ui/components/wt-notification/Readme.md b/docs/pages/webitel-ui/components/wt-notification/Readme.md index 73ea42d10..15faed48b 100644 --- a/docs/pages/webitel-ui/components/wt-notification/Readme.md +++ b/docs/pages/webitel-ui/components/wt-notification/Readme.md @@ -7,13 +7,13 @@ import ExampleNotification from './examples/example-notification.vue'; ## Props | Prop | Type | Default | Code | Description | Options | -|------|--------|---------|------------------------------------------------------|-------------|-------------------------------| +| ---- | ------ | ------- | ---------------------------------------------------- | ----------- | ----------------------------- | | type | String | success | ` ` | | info, error, warning, success | ## Events | Value | Params | Description | -|-------|--------|-------------| +| ----- | ------ | ----------- | | close | | | ## Example Notification diff --git a/docs/pages/webitel-ui/components/wt-notification/examples/example-notification.vue b/docs/pages/webitel-ui/components/wt-notification/examples/example-notification.vue index 615cfa31d..0ae5c35f6 100644 --- a/docs/pages/webitel-ui/components/wt-notification/examples/example-notification.vue +++ b/docs/pages/webitel-ui/components/wt-notification/examples/example-notification.vue @@ -1,14 +1,10 @@ - + - +- + diff --git a/docs/pages/webitel-ui/components/wt-notifications-bar/Readme.md b/docs/pages/webitel-ui/components/wt-notifications-bar/Readme.md index 00ce911ac..4621d75cc 100644 --- a/docs/pages/webitel-ui/components/wt-notifications-bar/Readme.md +++ b/docs/pages/webitel-ui/components/wt-notifications-bar/Readme.md @@ -5,26 +5,32 @@ import ExampleNotificationsBar from './examples/example-notifications-bar.vue'; # WtNotificationsBar ## Code + <wt-notifications-bar></wt-notifications-bar> ## Specification + Notification bar listens to eventBus 'notification' event and represents sent notifications using wt-notification component. 'notification' events should have the following format: + ```json { "type": "success", "message": "Notification message", - "timeout": 4000, //not required, default 4000ms + "timeout": 4000 //not required, default 4000ms } ``` + If 'timeout' is not specified notifications-bar message will be discarded after 4s. ## Important + Notifications bar won't work without eventBus, registered in plugin (check "Quick start" page). ## Example Notifications bar + ::: raw"error" notification "info" notification ::: diff --git a/docs/pages/webitel-ui/components/wt-notifications-bar/examples/example-notifications-bar.vue b/docs/pages/webitel-ui/components/wt-notifications-bar/examples/example-notifications-bar.vue index 7054eaf74..cabed46f9 100644 --- a/docs/pages/webitel-ui/components/wt-notifications-bar/examples/example-notifications-bar.vue +++ b/docs/pages/webitel-ui/components/wt-notifications-bar/examples/example-notifications-bar.vue @@ -10,21 +10,18 @@ function sendNotification(type) { - Send error notification + Send error notification Send info notification + >Send info notification --+ +- + diff --git a/docs/pages/webitel-ui/components/wt-page-header/Readme.md b/docs/pages/webitel-ui/components/wt-page-header/Readme.md index 6eec2b277..7e572bea0 100644 --- a/docs/pages/webitel-ui/components/wt-page-header/Readme.md +++ b/docs/pages/webitel-ui/components/wt-page-header/Readme.md @@ -6,11 +6,13 @@ import ExamplePageHeader from './examples/example-page-header.vue'; # WtPageHeader ## Props + ::: raw::: ## Example Page Header + ::: raw ::: diff --git a/docs/pages/webitel-ui/components/wt-page-header/examples/example-page-header.vue b/docs/pages/webitel-ui/components/wt-page-header/examples/example-page-header.vue index 7673f6af0..2f5400465 100644 --- a/docs/pages/webitel-ui/components/wt-page-header/examples/example-page-header.vue +++ b/docs/pages/webitel-ui/components/wt-page-header/examples/example-page-header.vue @@ -1,17 +1,9 @@ - + - - - Title Slot - + - + diff --git a/docs/pages/webitel-ui/components/wt-page-header/wt-page-header-docs.vue b/docs/pages/webitel-ui/components/wt-page-header/wt-page-header-docs.vue index 331f354d3..82b8e54f6 100644 --- a/docs/pages/webitel-ui/components/wt-page-header/wt-page-header-docs.vue +++ b/docs/pages/webitel-ui/components/wt-page-header/wt-page-header-docs.vue @@ -1,11 +1,6 @@ -+ Title Slot - - + + - + diff --git a/docs/pages/webitel-ui/components/wt-page-wrapper/Readme.md b/docs/pages/webitel-ui/components/wt-page-wrapper/Readme.md index 6fbb094cc..aecc6bb5e 100644 --- a/docs/pages/webitel-ui/components/wt-page-wrapper/Readme.md +++ b/docs/pages/webitel-ui/components/wt-page-wrapper/Readme.md @@ -6,11 +6,13 @@ import ExamplePageWrapper from './examples/example-page-wrapper.vue'; # WtPageWrapper ## Props + ::: raw ::: ## Example Page Wrapper + ::: raw ::: diff --git a/docs/pages/webitel-ui/components/wt-page-wrapper/examples/example-page-wrapper.vue b/docs/pages/webitel-ui/components/wt-page-wrapper/examples/example-page-wrapper.vue index dbb60066d..5dcc71c24 100644 --- a/docs/pages/webitel-ui/components/wt-page-wrapper/examples/example-page-wrapper.vue +++ b/docs/pages/webitel-ui/components/wt-page-wrapper/examples/example-page-wrapper.vue @@ -1,21 +1,17 @@ - + - + - + - + - + diff --git a/docs/pages/webitel-ui/components/wt-page-wrapper/wt-page-wrapper-docs.vue b/docs/pages/webitel-ui/components/wt-page-wrapper/wt-page-wrapper-docs.vue index 56cb66e69..2fd2de5e7 100644 --- a/docs/pages/webitel-ui/components/wt-page-wrapper/wt-page-wrapper-docs.vue +++ b/docs/pages/webitel-ui/components/wt-page-wrapper/wt-page-wrapper-docs.vue @@ -1,10 +1,6 @@ -- + + - + diff --git a/docs/pages/webitel-ui/components/wt-pagination/Readme.md b/docs/pages/webitel-ui/components/wt-pagination/Readme.md index e1c782513..b0368e1e0 100644 --- a/docs/pages/webitel-ui/components/wt-pagination/Readme.md +++ b/docs/pages/webitel-ui/components/wt-pagination/Readme.md @@ -6,11 +6,13 @@ import ExamplePagination from './examples/example-pagination.vue'; # WtPagination ## Props + ::: raw ::: ## Example Pagination + ::: raw ::: diff --git a/docs/pages/webitel-ui/components/wt-pagination/examples/example-pagination.vue b/docs/pages/webitel-ui/components/wt-pagination/examples/example-pagination.vue index c6a32892f..37212d32c 100644 --- a/docs/pages/webitel-ui/components/wt-pagination/examples/example-pagination.vue +++ b/docs/pages/webitel-ui/components/wt-pagination/examples/example-pagination.vue @@ -1,5 +1,4 @@ - + diff --git a/docs/pages/webitel-ui/components/wt-player/Readme.md b/docs/pages/webitel-ui/components/wt-player/Readme.md index 303cda534..ad62d7dee 100644 --- a/docs/pages/webitel-ui/components/wt-player/Readme.md +++ b/docs/pages/webitel-ui/components/wt-player/Readme.md @@ -6,11 +6,13 @@ import ExamplePlayer from './examples/example-player.vue'; # WtPlayer ## Props + ::: raw ::: ## Example Player + ::: raw ::: diff --git a/docs/pages/webitel-ui/components/wt-player/examples/example-player.vue b/docs/pages/webitel-ui/components/wt-player/examples/example-player.vue index e48cc0ad8..5bed7cea0 100644 --- a/docs/pages/webitel-ui/components/wt-player/examples/example-player.vue +++ b/docs/pages/webitel-ui/components/wt-player/examples/example-player.vue @@ -1,18 +1,17 @@ - + - + diff --git a/docs/pages/webitel-ui/components/wt-player/wt-player-docs.vue b/docs/pages/webitel-ui/components/wt-player/wt-player-docs.vue index 012b3f8ae..472ae441a 100644 --- a/docs/pages/webitel-ui/components/wt-player/wt-player-docs.vue +++ b/docs/pages/webitel-ui/components/wt-player/wt-player-docs.vue @@ -1,14 +1,19 @@ - - Important: player is looking for icons in {/{$baseURL}/}img/plyr.svg (or /img/plyr.svg by - default). - First, download plyr.svg from - Github and place it in project /public folder. - Then, $baseURL should be passed as global variable in plugins/webitel-ui.js: + Important: player is looking for icons in {/{$baseURL}/}img/plyr.svg + (or /img/plyr.svg by default). + First, download plyr.svg from + + Github + and place it in project /public folder. Then, $baseURL should be passed as + global variable in plugins/webitel-ui.js:
const globals = { @@ -18,12 +23,8 @@ Vue.use(WebitelUI, { eventBus, router, globals });
- + + - + diff --git a/docs/pages/webitel-ui/components/wt-popup/Readme.md b/docs/pages/webitel-ui/components/wt-popup/Readme.md index a982a9476..ba888d03b 100644 --- a/docs/pages/webitel-ui/components/wt-popup/Readme.md +++ b/docs/pages/webitel-ui/components/wt-popup/Readme.md @@ -6,9 +6,11 @@ import ExamplePopup from './examples/example-popup.vue'; # WtPopup ## Specs + ## Example Popup + ::: raw ::: diff --git a/docs/pages/webitel-ui/components/wt-popup/component-specs.vue b/docs/pages/webitel-ui/components/wt-popup/component-specs.vue index fbe0d855e..183e3a10e 100644 --- a/docs/pages/webitel-ui/components/wt-popup/component-specs.vue +++ b/docs/pages/webitel-ui/components/wt-popup/component-specs.vue @@ -1,12 +1,9 @@ - + diff --git a/docs/pages/webitel-ui/components/wt-popup/examples/example-popup.vue b/docs/pages/webitel-ui/components/wt-popup/examples/example-popup.vue index 4cac99bdf..48da089cc 100644 --- a/docs/pages/webitel-ui/components/wt-popup/examples/example-popup.vue +++ b/docs/pages/webitel-ui/components/wt-popup/examples/example-popup.vue @@ -5,26 +5,20 @@ const isPopup = ref(false); - Toggle popup - +Toggle popup - - + diff --git a/docs/pages/webitel-ui/components/wt-progress-bar/Readme.md b/docs/pages/webitel-ui/components/wt-progress-bar/Readme.md index 72eafb74d..f065105c0 100644 --- a/docs/pages/webitel-ui/components/wt-progress-bar/Readme.md +++ b/docs/pages/webitel-ui/components/wt-progress-bar/Readme.md @@ -6,11 +6,13 @@ import ExampleProgressBarDifferentColors from './examples/example-progress-bar-d # WtProgressBar ## Props + ::: raw- Popup header -
+Popup header
-- Lorem ipsum dolor sit amet, consectetur adipisicing - elit. Accusamus autem consequatur consequuntur earum, eius, exercitationem, expedita - fugiat mollitia nam nesciunt omnis placeat provident quos sed tempore ullam - voluptate. - Est, molestias. +
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusamus + autem consequatur consequuntur earum, eius, exercitationem, expedita + fugiat mollitia nam nesciunt omnis placeat provident quos sed tempore + ullam voluptate. Est, molestias.
@@ -44,6 +38,4 @@ const isPopup = ref(false);::: ## Example ProgressBar Different Colors + ::: raw ::: diff --git a/docs/pages/webitel-ui/components/wt-progress-bar/examples/example-progress-bar-different-colors.vue b/docs/pages/webitel-ui/components/wt-progress-bar/examples/example-progress-bar-different-colors.vue index 9d797f5dc..0d62bff58 100644 --- a/docs/pages/webitel-ui/components/wt-progress-bar/examples/example-progress-bar-different-colors.vue +++ b/docs/pages/webitel-ui/components/wt-progress-bar/examples/example-progress-bar-different-colors.vue @@ -1,15 +1,9 @@ - +- + diff --git a/docs/pages/webitel-ui/components/wt-progress-bar/wt-progress-bar-docs.vue b/docs/pages/webitel-ui/components/wt-progress-bar/wt-progress-bar-docs.vue index f823dc623..1cf502829 100644 --- a/docs/pages/webitel-ui/components/wt-progress-bar/wt-progress-bar-docs.vue +++ b/docs/pages/webitel-ui/components/wt-progress-bar/wt-progress-bar-docs.vue @@ -1,7 +1,5 @@ - + - + diff --git a/docs/pages/webitel-ui/components/wt-radio/Readme.md b/docs/pages/webitel-ui/components/wt-radio/Readme.md index 63f8e5d33..12611f5e2 100644 --- a/docs/pages/webitel-ui/components/wt-radio/Readme.md +++ b/docs/pages/webitel-ui/components/wt-radio/Readme.md @@ -7,11 +7,13 @@ import ExampleDisabledRadio from './examples/example-disabled-radio.vue'; # WtRadio ## Props + ::: raw ::: ## Example Radio + ::: raw ::: @@ -21,6 +23,7 @@ import ExampleDisabledRadio from './examples/example-disabled-radio.vue'; ::: ## Example Disabled Radio + ::: raw ::: @@ -28,4 +31,3 @@ import ExampleDisabledRadio from './examples/example-disabled-radio.vue'; ::: details Code <<< ./examples/example-disabled-radio.vue ::: - diff --git a/docs/pages/webitel-ui/components/wt-radio/examples/example-disabled-radio.vue b/docs/pages/webitel-ui/components/wt-radio/examples/example-disabled-radio.vue index 972ce1320..992d89d1b 100644 --- a/docs/pages/webitel-ui/components/wt-radio/examples/example-disabled-radio.vue +++ b/docs/pages/webitel-ui/components/wt-radio/examples/example-disabled-radio.vue @@ -1,5 +1,4 @@ - + diff --git a/docs/pages/webitel-ui/components/wt-rounded-action/Readme.md b/docs/pages/webitel-ui/components/wt-rounded-action/Readme.md index d6a124d4b..518c2d568 100644 --- a/docs/pages/webitel-ui/components/wt-rounded-action/Readme.md +++ b/docs/pages/webitel-ui/components/wt-rounded-action/Readme.md @@ -11,11 +11,13 @@ import ExampleSmallRoundedAction from './examples/example-small-rounded-action.v # WtRoundedAction ## Props + ::: raw ::: ## Different colors + ::: raw ::: @@ -25,6 +27,7 @@ import ExampleSmallRoundedAction from './examples/example-small-rounded-action.v ::: ## Active (pressed) buttons + ::: raw ::: @@ -34,6 +37,7 @@ import ExampleSmallRoundedAction from './examples/example-small-rounded-action.v ::: ## Wide buttons + ::: raw ::: @@ -43,6 +47,7 @@ import ExampleSmallRoundedAction from './examples/example-small-rounded-action.v ::: ## Rounded buttons + ::: raw ::: @@ -52,6 +57,7 @@ import ExampleSmallRoundedAction from './examples/example-small-rounded-action.v ::: ## Small (sm) buttons + ::: raw ::: @@ -61,6 +67,7 @@ import ExampleSmallRoundedAction from './examples/example-small-rounded-action.v ::: ## Loading-state buttons + ::: raw ::: @@ -68,4 +75,3 @@ import ExampleSmallRoundedAction from './examples/example-small-rounded-action.v ::: details Code <<< ./examples/example-loading-state-rounded-action.vue{js} ::: - diff --git a/docs/pages/webitel-ui/components/wt-rounded-action/examples/example-active-rounded-action.vue b/docs/pages/webitel-ui/components/wt-rounded-action/examples/example-active-rounded-action.vue index eb13af36a..6970b46c1 100644 --- a/docs/pages/webitel-ui/components/wt-rounded-action/examples/example-active-rounded-action.vue +++ b/docs/pages/webitel-ui/components/wt-rounded-action/examples/example-active-rounded-action.vue @@ -1,18 +1,41 @@ - + - -- - - - - + +- + diff --git a/docs/pages/webitel-ui/components/wt-rounded-action/examples/example-loading-state-rounded-action.vue b/docs/pages/webitel-ui/components/wt-rounded-action/examples/example-loading-state-rounded-action.vue index d9dd88f6e..4fa21905f 100644 --- a/docs/pages/webitel-ui/components/wt-rounded-action/examples/example-loading-state-rounded-action.vue +++ b/docs/pages/webitel-ui/components/wt-rounded-action/examples/example-loading-state-rounded-action.vue @@ -1,18 +1,47 @@ - + -+ + + + + -- - - - - + +- + diff --git a/docs/pages/webitel-ui/components/wt-rounded-action/examples/example-rounded-action-different-colors.vue b/docs/pages/webitel-ui/components/wt-rounded-action/examples/example-rounded-action-different-colors.vue index 43597aa22..ab3fe3be8 100644 --- a/docs/pages/webitel-ui/components/wt-rounded-action/examples/example-rounded-action-different-colors.vue +++ b/docs/pages/webitel-ui/components/wt-rounded-action/examples/example-rounded-action-different-colors.vue @@ -1,18 +1,35 @@ - + -+ + + + + -- - - - - + +- + diff --git a/docs/pages/webitel-ui/components/wt-rounded-action/examples/example-rounded-rounded-action.vue b/docs/pages/webitel-ui/components/wt-rounded-action/examples/example-rounded-rounded-action.vue index 5326fc62e..7dfa559df 100644 --- a/docs/pages/webitel-ui/components/wt-rounded-action/examples/example-rounded-rounded-action.vue +++ b/docs/pages/webitel-ui/components/wt-rounded-action/examples/example-rounded-rounded-action.vue @@ -1,18 +1,41 @@ - + -+ + + + + -- - - - - + +- + diff --git a/docs/pages/webitel-ui/components/wt-rounded-action/examples/example-small-rounded-action.vue b/docs/pages/webitel-ui/components/wt-rounded-action/examples/example-small-rounded-action.vue index bcbf9ad07..cd2e0705b 100644 --- a/docs/pages/webitel-ui/components/wt-rounded-action/examples/example-small-rounded-action.vue +++ b/docs/pages/webitel-ui/components/wt-rounded-action/examples/example-small-rounded-action.vue @@ -1,18 +1,41 @@ - + -+ + + + + -- - - - - + +- + diff --git a/docs/pages/webitel-ui/components/wt-rounded-action/examples/example-wide-rounded-action.vue b/docs/pages/webitel-ui/components/wt-rounded-action/examples/example-wide-rounded-action.vue index a33558665..ac27b8335 100644 --- a/docs/pages/webitel-ui/components/wt-rounded-action/examples/example-wide-rounded-action.vue +++ b/docs/pages/webitel-ui/components/wt-rounded-action/examples/example-wide-rounded-action.vue @@ -1,14 +1,22 @@ - + -+ + + + + -- + diff --git a/docs/pages/webitel-ui/components/wt-select/examples/example-disabled-select.vue b/docs/pages/webitel-ui/components/wt-select/examples/example-disabled-select.vue index 0c28e2033..d9d5c4fee 100644 --- a/docs/pages/webitel-ui/components/wt-select/examples/example-disabled-select.vue +++ b/docs/pages/webitel-ui/components/wt-select/examples/example-disabled-select.vue @@ -37,6 +37,4 @@ const value = ref(options[0]); /> - + diff --git a/docs/pages/webitel-ui/components/wt-select/examples/example-invalid-select.vue b/docs/pages/webitel-ui/components/wt-select/examples/example-invalid-select.vue index 17177db1c..03055a12e 100644 --- a/docs/pages/webitel-ui/components/wt-select/examples/example-invalid-select.vue +++ b/docs/pages/webitel-ui/components/wt-select/examples/example-invalid-select.vue @@ -20,11 +20,14 @@ const options = [ const value = ref(options[0]); const empty = ref(''); -const v$ = useVuelidate(computed(() => ({ - value: { - required: () => false, - }, -})), { value }); +const v$ = useVuelidate( + computed(() => ({ + value: { + required: () => false, + }, + })), + { value }, +); v$.value.$touch(); @@ -47,6 +50,4 @@ v$.value.$touch(); /> - + diff --git a/docs/pages/webitel-ui/components/wt-select/examples/example-multiple-select.vue b/docs/pages/webitel-ui/components/wt-select/examples/example-multiple-select.vue index 949471dd3..5b24cec51 100644 --- a/docs/pages/webitel-ui/components/wt-select/examples/example-multiple-select.vue +++ b/docs/pages/webitel-ui/components/wt-select/examples/example-multiple-select.vue @@ -16,10 +16,7 @@ const options = [ { name: 'Phoenix12', language: 'Elixir' }, ]; -const value = ref([ - options[0], - options[1], -]); +const value = ref([options[0], options[1]]); @@ -34,6 +31,4 @@ const value = ref([ /> - + diff --git a/docs/pages/webitel-ui/components/wt-select/examples/example-select.vue b/docs/pages/webitel-ui/components/wt-select/examples/example-select.vue index 24ce64160..f1f1c96e8 100644 --- a/docs/pages/webitel-ui/components/wt-select/examples/example-select.vue +++ b/docs/pages/webitel-ui/components/wt-select/examples/example-select.vue @@ -36,6 +36,4 @@ const empty = ref(''); /> - + diff --git a/docs/pages/webitel-ui/components/wt-select/examples/example-value-from-options-by-prop-select.vue b/docs/pages/webitel-ui/components/wt-select/examples/example-value-from-options-by-prop-select.vue new file mode 100644 index 000000000..53bfc2082 --- /dev/null +++ b/docs/pages/webitel-ui/components/wt-select/examples/example-value-from-options-by-prop-select.vue @@ -0,0 +1,29 @@ + + + + + + + diff --git a/docs/pages/webitel-ui/components/wt-slider/Readme.md b/docs/pages/webitel-ui/components/wt-slider/Readme.md index d44bec406..420931b90 100644 --- a/docs/pages/webitel-ui/components/wt-slider/Readme.md +++ b/docs/pages/webitel-ui/components/wt-slider/Readme.md @@ -8,11 +8,13 @@ import ExampleVerticalSlider from './examples/example-vertical-slider.vue'; # WtSlider ## Props + ::: raw- + +- + diff --git a/docs/pages/webitel-ui/components/wt-rounded-action/wt-rounded-action-docs.vue b/docs/pages/webitel-ui/components/wt-rounded-action/wt-rounded-action-docs.vue index 80fb26a0f..2106f6fba 100644 --- a/docs/pages/webitel-ui/components/wt-rounded-action/wt-rounded-action-docs.vue +++ b/docs/pages/webitel-ui/components/wt-rounded-action/wt-rounded-action-docs.vue @@ -1,11 +1,7 @@+ - @@ -21,7 +17,14 @@ export default { value: 'color', code: '- + + ', type: 'String', - options: ['secondary', 'accent', 'success', 'danger', 'hold', 'transfer'], + options: [ + 'secondary', + 'accent', + 'success', + 'danger', + 'hold', + 'transfer', + ], default: 'secondary', }, { @@ -33,7 +36,8 @@ export default { value: 'iconColor', code: ' ', type: 'String', - description: 'a prop for passing a specific color to icon. not for regular usage', + description: + 'a prop for passing a specific color to icon. not for regular usage', }, { value: 'rounded', @@ -68,15 +72,13 @@ export default { description: 'Controls button size', }, { - value: 'Plus all other wt-button props including "loading" :)' + value: 'Plus all other wt-button props including "loading" :)', }, ], events: [ { value: 'click', - params: [ - { name: 'event', type: 'Event' }, - ], + params: [{ name: 'event', type: 'Event' }], }, ], }), diff --git a/docs/pages/webitel-ui/components/wt-search-bar/Readme.md b/docs/pages/webitel-ui/components/wt-search-bar/Readme.md index 990dda6f2..aa67e152a 100644 --- a/docs/pages/webitel-ui/components/wt-search-bar/Readme.md +++ b/docs/pages/webitel-ui/components/wt-search-bar/Readme.md @@ -10,7 +10,7 @@ import ExampleSearchBarWithSearchModes from './examples/example-search-bar-with- ## Props | Name | Type | Default | Description | -|---------------------|----------|----------|-------------------------------------------| +| ------------------- | -------- | -------- | ----------------------------------------- | | `value` | `String` | `''` | The value of the search bar | | `placeholder` | `String` | 'Search' | The placeholder of the search bar | | `hint` | `String` | `''` | The hint of the search bar | @@ -22,14 +22,14 @@ import ExampleSearchBarWithSearchModes from './examples/example-search-bar-with- ## Events | Name | Params | Description | -|----------|-------------------|------------------------------------------------------------------------------------------------------------| +| -------- | ----------------- | ---------------------------------------------------------------------------------------------------------- | | `input` | `value`: `String` | Emitted when the value of the search bar changes (not debounced!) | | `search` | `value`: `String` | Sends changed value, immediately, or, if "debounced" is on, debounced. Recommended for api search requests | ## Slots | Name | Scope | Description | -|----------------------|------------------------|----------------------------------------------------------------------------| +| -------------------- | ---------------------- | -------------------------------------------------------------------------- | | `search-icon` | `{ invalid: Boolean }` | Change default search icon | | `additional-actions` | `{ invalid: Boolean }` | Adding additional functionality to search bar. For example wt-context-menu | diff --git a/docs/pages/webitel-ui/components/wt-search-bar/examples/example-hinted-search-bar.vue b/docs/pages/webitel-ui/components/wt-search-bar/examples/example-hinted-search-bar.vue index b1edcbd68..1a090702a 100644 --- a/docs/pages/webitel-ui/components/wt-search-bar/examples/example-hinted-search-bar.vue +++ b/docs/pages/webitel-ui/components/wt-search-bar/examples/example-hinted-search-bar.vue @@ -1,5 +1,4 @@ @@ -21,6 +24,4 @@ v$.value.$touch(); /> - + diff --git a/docs/pages/webitel-ui/components/wt-search-bar/examples/example-search-bar-with-search-modes.vue b/docs/pages/webitel-ui/components/wt-search-bar/examples/example-search-bar-with-search-modes.vue index 73a0998e8..8eccdd0be 100644 --- a/docs/pages/webitel-ui/components/wt-search-bar/examples/example-search-bar-with-search-modes.vue +++ b/docs/pages/webitel-ui/components/wt-search-bar/examples/example-search-bar-with-search-modes.vue @@ -1,5 +1,4 @@ # WtSelect @@ -13,7 +14,7 @@ import ExampleCustomValuesSelect from './examples/example-custom-values-select.v ## Props | Prop | Type | Default | Code | Description | -|-------------------|----------|-------------|----------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| ----------------- | -------- | ----------- | -------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | value | Any | | ` ` | | | options | Array | [] | ` ` | | | label | String | '' | ` ` | | @@ -34,7 +35,7 @@ import ExampleCustomValuesSelect from './examples/example-custom-values-select.v ## Events | Value | Params | Description | -|--------------|------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------| +| ------------ | ---------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | | input | `[{ name: 'value', type: ['String', 'Array'] }]` | | | reset | `[{ name: 'value', type: '[\'String\', \'Array\', \'Object\'] -- depends on value prop datatype' }]` | Emitted on "reset" icon click, along with "input" (input is emitted first) event with empty value | | closed | | | @@ -45,7 +46,7 @@ import ExampleCustomValuesSelect from './examples/example-custom-values-select.v ## Slots | Name | Scope | Description | -|-------------|----------------------------------------------------------------------------------------------------------------|----------------------------------------| +| ----------- | -------------------------------------------------------------------------------------------------------------- | -------------------------------------- | | label | `[{ name: 'label' }]` | Custom label slot | | option | `[{ name: 'option', description: 'option itself' },{ name: 'optionLabel', description: 'optionLabel prop' }]` | Watch vue-multiselect option slot | | singleLabel | `[{ name: 'option', description: 'option itself' },{ name: 'optionLabel', description: 'optionLabel prop' },]` | Watch vue-multiselect singleLabel slot | @@ -102,12 +103,22 @@ import ExampleCustomValuesSelect from './examples/example-custom-values-select.v <<< ./examples/example-custom-values-select.vue ::: +## Example Select With Value From Options By Prop + +::: raw + +::: + +::: details Code +<<< ./examples/example-value-from-options-by-prop-select.vue +::: + ## How to close Select programmatically? [Issue](https://github.com/shentao/vue-multiselect/pull/947/files/05760bd1e92ce53353a1733aee054a996738f181) ```js -closeSelect() +closeSelect(); { this.$refs['wt-select'].$refs['vue-multiselect'].deactivate(); // 'vue-multiselect' ref is always present } diff --git a/docs/pages/webitel-ui/components/wt-select/examples/example-custom-values-select.vue b/docs/pages/webitel-ui/components/wt-select/examples/example-custom-values-select.vue index 608ab7449..82ad7eedb 100644 --- a/docs/pages/webitel-ui/components/wt-select/examples/example-custom-values-select.vue +++ b/docs/pages/webitel-ui/components/wt-select/examples/example-custom-values-select.vue @@ -49,6 +49,4 @@ const singleValue = ref(''); ::: ## Example Slider + ::: raw ::: @@ -22,6 +24,7 @@ import ExampleVerticalSlider from './examples/example-vertical-slider.vue'; ::: ## Example Disabled Slider + ::: raw ::: @@ -31,6 +34,7 @@ import ExampleVerticalSlider from './examples/example-vertical-slider.vue'; ::: ## Example Vertical Slider + ::: raw ::: @@ -38,4 +42,3 @@ import ExampleVerticalSlider from './examples/example-vertical-slider.vue'; ::: details Code <<< ./examples/example-vertical-slider.vue ::: - diff --git a/docs/pages/webitel-ui/components/wt-slider/examples/example-disabled-slider.vue b/docs/pages/webitel-ui/components/wt-slider/examples/example-disabled-slider.vue index b9203ff1a..6c56de973 100644 --- a/docs/pages/webitel-ui/components/wt-slider/examples/example-disabled-slider.vue +++ b/docs/pages/webitel-ui/components/wt-slider/examples/example-disabled-slider.vue @@ -1,6 +1,4 @@ - + - + diff --git a/docs/pages/webitel-ui/components/wt-slider/examples/example-slider.vue b/docs/pages/webitel-ui/components/wt-slider/examples/example-slider.vue index 36645862f..c0d180259 100644 --- a/docs/pages/webitel-ui/components/wt-slider/examples/example-slider.vue +++ b/docs/pages/webitel-ui/components/wt-slider/examples/example-slider.vue @@ -14,6 +14,4 @@ const number = ref(70); /> - + diff --git a/docs/pages/webitel-ui/components/wt-slider/examples/example-vertical-slider.vue b/docs/pages/webitel-ui/components/wt-slider/examples/example-vertical-slider.vue index c08b5c7cc..67e5ea67f 100644 --- a/docs/pages/webitel-ui/components/wt-slider/examples/example-vertical-slider.vue +++ b/docs/pages/webitel-ui/components/wt-slider/examples/example-vertical-slider.vue @@ -16,6 +16,4 @@ const number = ref(70); /> - + diff --git a/docs/pages/webitel-ui/components/wt-slider/wt-slider-docs.vue b/docs/pages/webitel-ui/components/wt-slider/wt-slider-docs.vue index 47011e529..7eeb59f84 100644 --- a/docs/pages/webitel-ui/components/wt-slider/wt-slider-docs.vue +++ b/docs/pages/webitel-ui/components/wt-slider/wt-slider-docs.vue @@ -1,11 +1,7 @@ - - + + - + - + diff --git a/docs/pages/webitel-ui/components/wt-status-select/wt-status-select-docs.vue b/docs/pages/webitel-ui/components/wt-status-select/wt-status-select-docs.vue index a77056c8e..1e4411dee 100644 --- a/docs/pages/webitel-ui/components/wt-status-select/wt-status-select-docs.vue +++ b/docs/pages/webitel-ui/components/wt-status-select/wt-status-select-docs.vue @@ -5,8 +5,9 @@ import AgentStatus from '@webitel/ui-sdk/src/enums/AgentStatus/AgentStatus.enum'; - Enumerate with ONLINE ('online'), PAUSE ('pause'), OFFLINE ('offline'), BREAK_OUT ('break_out') values. Used - for agent status identifying and recommended for use in app logic + Enumerate with ONLINE ('online'), PAUSE ('pause'), OFFLINE ('offline'), + BREAK_OUT ('break_out') values. Used for agent status identifying and + recommended for use in app logic
@@ -23,12 +24,8 @@ prop="status" event="change" /> - @@ -25,6 +26,4 @@ export default { }; - + diff --git a/docs/pages/webitel-ui/locale/ua (uk)/Readme.md b/docs/pages/webitel-ui/locale/ua (uk)/Readme.md index c9cf7271b..5e33bd520 100644 --- a/docs/pages/webitel-ui/locale/ua (uk)/Readme.md +++ b/docs/pages/webitel-ui/locale/ua (uk)/Readme.md @@ -1,2 +1 @@ <<< ../../../../../src/locale/ua/ua.js - diff --git a/docs/pages/webitel-ui/mixins/mixins-docs.vue b/docs/pages/webitel-ui/mixins/mixins-docs.vue index bb439a974..32d694ff9 100644 --- a/docs/pages/webitel-ui/mixins/mixins-docs.vue +++ b/docs/pages/webitel-ui/mixins/mixins-docs.vue @@ -8,6 +8,4 @@ export default { }; - + diff --git a/docs/pages/webitel-ui/mixins/validation-mixin/validation-mixin-docs.vue b/docs/pages/webitel-ui/mixins/validation-mixin/validation-mixin-docs.vue index 2cbd3d468..b7c475836 100644 --- a/docs/pages/webitel-ui/mixins/validation-mixin/validation-mixin-docs.vue +++ b/docs/pages/webitel-ui/mixins/validation-mixin/validation-mixin-docs.vue @@ -3,8 +3,8 @@- + + - + diff --git a/docs/pages/webitel-ui/components/wt-stepper/Readme.md b/docs/pages/webitel-ui/components/wt-stepper/Readme.md index c3092aa45..0cefcfb8c 100644 --- a/docs/pages/webitel-ui/components/wt-stepper/Readme.md +++ b/docs/pages/webitel-ui/components/wt-stepper/Readme.md @@ -6,11 +6,13 @@ import ExampleStepper from './examples/example-stepper.vue'; # WtStepper ## Props + ::: raw ::: ## Example Stepper + ::: raw ::: diff --git a/docs/pages/webitel-ui/components/wt-stepper/examples/example-stepper.vue b/docs/pages/webitel-ui/components/wt-stepper/examples/example-stepper.vue index fb33da5fd..659376aa8 100644 --- a/docs/pages/webitel-ui/components/wt-stepper/examples/example-stepper.vue +++ b/docs/pages/webitel-ui/components/wt-stepper/examples/example-stepper.vue @@ -1,11 +1,7 @@ @@ -16,13 +12,9 @@ const active = ref(1); :steps="steps" /> - + Next step - + diff --git a/docs/pages/webitel-ui/components/wt-stepper/wt-stepper-docs.vue b/docs/pages/webitel-ui/components/wt-stepper/wt-stepper-docs.vue index 9db505249..4814bec67 100644 --- a/docs/pages/webitel-ui/components/wt-stepper/wt-stepper-docs.vue +++ b/docs/pages/webitel-ui/components/wt-stepper/wt-stepper-docs.vue @@ -1,10 +1,6 @@ -- + + - + diff --git a/docs/pages/webitel-ui/components/wt-switcher/Readme.md b/docs/pages/webitel-ui/components/wt-switcher/Readme.md index b19108cff..558d816a1 100644 --- a/docs/pages/webitel-ui/components/wt-switcher/Readme.md +++ b/docs/pages/webitel-ui/components/wt-switcher/Readme.md @@ -8,11 +8,13 @@ import ExampleSwitcherLabelLeft from './examples/example-switcher-label-left.vue # WtSwitcher ## Props + ::: raw ::: ## Example Switcher + ::: raw ::: @@ -22,6 +24,7 @@ import ExampleSwitcherLabelLeft from './examples/example-switcher-label-left.vue ::: ## Example Disabled Switcher + ::: raw ::: @@ -31,6 +34,7 @@ import ExampleSwitcherLabelLeft from './examples/example-switcher-label-left.vue ::: ## Example Switcher with Label Left + ::: raw ::: diff --git a/docs/pages/webitel-ui/components/wt-switcher/examples/example-disabled-switcher.vue b/docs/pages/webitel-ui/components/wt-switcher/examples/example-disabled-switcher.vue index 6d5ae0256..7e7016169 100644 --- a/docs/pages/webitel-ui/components/wt-switcher/examples/example-disabled-switcher.vue +++ b/docs/pages/webitel-ui/components/wt-switcher/examples/example-disabled-switcher.vue @@ -1,5 +1,4 @@ - + - + diff --git a/docs/pages/webitel-ui/components/wt-switcher/examples/example-switcher-label-left.vue b/docs/pages/webitel-ui/components/wt-switcher/examples/example-switcher-label-left.vue index bbb85ccce..15f423d6a 100644 --- a/docs/pages/webitel-ui/components/wt-switcher/examples/example-switcher-label-left.vue +++ b/docs/pages/webitel-ui/components/wt-switcher/examples/example-switcher-label-left.vue @@ -13,6 +13,4 @@ const value = ref(false); /> - + diff --git a/docs/pages/webitel-ui/components/wt-switcher/examples/example-switcher.vue b/docs/pages/webitel-ui/components/wt-switcher/examples/example-switcher.vue index 98f4766d5..be67ef5ed 100644 --- a/docs/pages/webitel-ui/components/wt-switcher/examples/example-switcher.vue +++ b/docs/pages/webitel-ui/components/wt-switcher/examples/example-switcher.vue @@ -12,6 +12,4 @@ const value = ref(false); /> - + diff --git a/docs/pages/webitel-ui/components/wt-switcher/wt-switcher-docs.vue b/docs/pages/webitel-ui/components/wt-switcher/wt-switcher-docs.vue index fb99d0a1a..ea452f8f3 100644 --- a/docs/pages/webitel-ui/components/wt-switcher/wt-switcher-docs.vue +++ b/docs/pages/webitel-ui/components/wt-switcher/wt-switcher-docs.vue @@ -1,16 +1,8 @@ - - - - + + + + - + diff --git a/docs/pages/webitel-ui/components/wt-table-actions/Readme.md b/docs/pages/webitel-ui/components/wt-table-actions/Readme.md index 1b394a72e..87e3dc35b 100644 --- a/docs/pages/webitel-ui/components/wt-table-actions/Readme.md +++ b/docs/pages/webitel-ui/components/wt-table-actions/Readme.md @@ -8,11 +8,13 @@ > і заюзайте [`wt-actions-bar`](../wt-action-bar/Readme.md). ## Props + ::: raw ::: ## Example Table Actions + ::: raw ::: diff --git a/docs/pages/webitel-ui/components/wt-table-actions/examples/example-table-actions.vue b/docs/pages/webitel-ui/components/wt-table-actions/examples/example-table-actions.vue index 3c47bb6bc..f209ca980 100644 --- a/docs/pages/webitel-ui/components/wt-table-actions/examples/example-table-actions.vue +++ b/docs/pages/webitel-ui/components/wt-table-actions/examples/example-table-actions.vue @@ -4,11 +4,16 @@ const callAlert = (arg) => alert(arg); - + diff --git a/docs/pages/webitel-ui/components/wt-table-actions/wt-table-actions-docs.vue b/docs/pages/webitel-ui/components/wt-table-actions/wt-table-actions-docs.vue index cb95f2876..02da53acc 100644 --- a/docs/pages/webitel-ui/components/wt-table-actions/wt-table-actions-docs.vue +++ b/docs/pages/webitel-ui/components/wt-table-actions/wt-table-actions-docs.vue @@ -1,10 +1,6 @@ - - + + @@ -19,8 +15,15 @@ export default { value: 'icons', code: ' ', type: 'Array', - options: ['import', 'export', 'filter-reset', 'column-select', 'refresh', 'settings'], - default: '[\'refresh\']', + options: [ + 'import', + 'export', + 'filter-reset', + 'column-select', + 'refresh', + 'settings', + ], + default: "['refresh']", }, ], events: [ @@ -41,5 +44,4 @@ export default { }; - + diff --git a/docs/pages/webitel-ui/components/wt-table-column-select/Readme.md b/docs/pages/webitel-ui/components/wt-table-column-select/Readme.md index 98638c42e..adfa24d00 100644 --- a/docs/pages/webitel-ui/components/wt-table-column-select/Readme.md +++ b/docs/pages/webitel-ui/components/wt-table-column-select/Readme.md @@ -6,11 +6,13 @@ import ExampleTableColumnSelect from './examples/example-table-column-select.vue # WtTableColumnSelect ## Props + ::: raw ::: ## Example Table Column Select + ::: raw ::: diff --git a/docs/pages/webitel-ui/components/wt-table-column-select/examples/example-table-column-select.vue b/docs/pages/webitel-ui/components/wt-table-column-select/examples/example-table-column-select.vue index 52ab32944..e3d2a5cd4 100644 --- a/docs/pages/webitel-ui/components/wt-table-column-select/examples/example-table-column-select.vue +++ b/docs/pages/webitel-ui/components/wt-table-column-select/examples/example-table-column-select.vue @@ -22,6 +22,4 @@ const headers = ref([ /> - + diff --git a/docs/pages/webitel-ui/components/wt-table-column-select/wt-table-column-select-docs.vue b/docs/pages/webitel-ui/components/wt-table-column-select/wt-table-column-select-docs.vue index 9e33d2d1f..74f7e01b8 100644 --- a/docs/pages/webitel-ui/components/wt-table-column-select/wt-table-column-select-docs.vue +++ b/docs/pages/webitel-ui/components/wt-table-column-select/wt-table-column-select-docs.vue @@ -3,12 +3,8 @@ event="change" prop="headers" /> - - + + - + diff --git a/docs/pages/webitel-ui/components/wt-table/Readme.md b/docs/pages/webitel-ui/components/wt-table/Readme.md index a62dc0565..123c0f8c6 100644 --- a/docs/pages/webitel-ui/components/wt-table/Readme.md +++ b/docs/pages/webitel-ui/components/wt-table/Readme.md @@ -6,9 +6,11 @@ import Specs from './component-specs.vue'; # WtTable ## Specs + ## Example Table + ::: raw ::: diff --git a/docs/pages/webitel-ui/components/wt-table/component-specs.vue b/docs/pages/webitel-ui/components/wt-table/component-specs.vue index c382adcc8..9cc68a1df 100644 --- a/docs/pages/webitel-ui/components/wt-table/component-specs.vue +++ b/docs/pages/webitel-ui/components/wt-table/component-specs.vue @@ -1,12 +1,9 @@ - + diff --git a/docs/pages/webitel-ui/components/wt-table/examples/example-table.vue b/docs/pages/webitel-ui/components/wt-table/examples/example-table.vue index c6f44eb16..48a04f668 100644 --- a/docs/pages/webitel-ui/components/wt-table/examples/example-table.vue +++ b/docs/pages/webitel-ui/components/wt-table/examples/example-table.vue @@ -52,6 +52,4 @@ const data = [ /> - + diff --git a/docs/pages/webitel-ui/components/wt-tabs/Readme.md b/docs/pages/webitel-ui/components/wt-tabs/Readme.md index 68546670a..4b20df684 100644 --- a/docs/pages/webitel-ui/components/wt-tabs/Readme.md +++ b/docs/pages/webitel-ui/components/wt-tabs/Readme.md @@ -8,20 +8,20 @@ import ExampleWideTabs from './examples/example-wide-tabs.vue'; ## Props | Name | Type | Default | Description | -|---------|----------|---------|-----------------------------------------------| +| ------- | -------- | ------- | --------------------------------------------- | | current | `Object` | `{}` | The value of the selected tab | | tabs | `Array` | `[]` | The list of tabs. Tracked by `value` property | ## Events | Name | Params | Description | -|--------|-----------------|--------------------------------------| +| ------ | --------------- | ------------------------------------ | | change | `tab`: `Object` | Returns tab object from list of tabs | ## Slots -| Name | Scope | Description | -|--------------|--------------------|--------------------------------------------------------------------------| +| Name | Scope | Description | +| ------------ | ------------------ | -------------------------------------------------------------------------- | | `:tab-value` | `{ tab, current }` | Override tab contents with passed tab from `tabs` object and `current` tab | ## Example Tabs diff --git a/docs/pages/webitel-ui/components/wt-tabs/examples/example-tabs.vue b/docs/pages/webitel-ui/components/wt-tabs/examples/example-tabs.vue index fb89a5710..f8df8f9d9 100644 --- a/docs/pages/webitel-ui/components/wt-tabs/examples/example-tabs.vue +++ b/docs/pages/webitel-ui/components/wt-tabs/examples/example-tabs.vue @@ -1,5 +1,5 @@ - # WtTagsInput ### This component is built on top of [Vue Multiselect](https://vue-multiselect.js.org/), like wt-select component. + **There will be described only differences from wt-select component. Same props, events and slots are listed on wt-select page. For more information, see WtSelect Docs** ## Props + ::: raw ::: ## Example Tags Input + ::: raw ::: @@ -28,6 +30,7 @@ For more information, see WtSelect Docs** ::: ## Example Taggable Tags Input + ::: raw ::: @@ -37,6 +40,7 @@ For more information, see WtSelect Docs** ::: ## Example Disabled Tags Input + ::: raw ::: @@ -46,6 +50,7 @@ For more information, see WtSelect Docs** ::: ## Example Invalid Tags Input + ::: raw ::: diff --git a/docs/pages/webitel-ui/components/wt-tags-input/examples/example-disabled-tags-input.vue b/docs/pages/webitel-ui/components/wt-tags-input/examples/example-disabled-tags-input.vue index 4ad5f31bd..5f342075b 100644 --- a/docs/pages/webitel-ui/components/wt-tags-input/examples/example-disabled-tags-input.vue +++ b/docs/pages/webitel-ui/components/wt-tags-input/examples/example-disabled-tags-input.vue @@ -7,10 +7,7 @@ const autocomplete = [ { name: 'Rails', language: 'Ruby' }, ]; -const value = ref([ - autocomplete[0], - autocomplete[1], -]); +const value = ref([autocomplete[0], autocomplete[1]]); @@ -33,6 +30,4 @@ const value = ref([ /> - + diff --git a/docs/pages/webitel-ui/components/wt-tags-input/examples/example-invalid-tags-input.vue b/docs/pages/webitel-ui/components/wt-tags-input/examples/example-invalid-tags-input.vue index 5a3791b15..cc06f17bf 100644 --- a/docs/pages/webitel-ui/components/wt-tags-input/examples/example-invalid-tags-input.vue +++ b/docs/pages/webitel-ui/components/wt-tags-input/examples/example-invalid-tags-input.vue @@ -8,17 +8,16 @@ const autocomplete = [ { name: 'Rails', language: 'Ruby' }, ]; -const value = ref([ - autocomplete[0], - autocomplete[1], -]); +const value = ref([autocomplete[0], autocomplete[1]]); - -const v$ = useVuelidate(computed(() => ({ - value: { - required: () => false, - }, -})), { value }); +const v$ = useVuelidate( + computed(() => ({ + value: { + required: () => false, + }, + })), + { value }, +); v$.value.$touch(); @@ -43,6 +42,4 @@ v$.value.$touch(); /> - + diff --git a/docs/pages/webitel-ui/components/wt-tags-input/examples/example-taggable-tags-input.vue b/docs/pages/webitel-ui/components/wt-tags-input/examples/example-taggable-tags-input.vue index 7b851b2b0..f25b57c56 100644 --- a/docs/pages/webitel-ui/components/wt-tags-input/examples/example-taggable-tags-input.vue +++ b/docs/pages/webitel-ui/components/wt-tags-input/examples/example-taggable-tags-input.vue @@ -18,6 +18,4 @@ const autocomplete = []; /> - + diff --git a/docs/pages/webitel-ui/components/wt-tags-input/examples/example-tags-input.vue b/docs/pages/webitel-ui/components/wt-tags-input/examples/example-tags-input.vue index 4c8d49389..61fd3db74 100644 --- a/docs/pages/webitel-ui/components/wt-tags-input/examples/example-tags-input.vue +++ b/docs/pages/webitel-ui/components/wt-tags-input/examples/example-tags-input.vue @@ -28,6 +28,4 @@ const autocomplete = [ /> - + diff --git a/docs/pages/webitel-ui/components/wt-tags-input/wt-tags-input-docs.vue b/docs/pages/webitel-ui/components/wt-tags-input/wt-tags-input-docs.vue index 0cb431358..20af14e5b 100644 --- a/docs/pages/webitel-ui/components/wt-tags-input/wt-tags-input-docs.vue +++ b/docs/pages/webitel-ui/components/wt-tags-input/wt-tags-input-docs.vue @@ -1,11 +1,7 @@ - - + + - + diff --git a/docs/pages/webitel-ui/components/wt-textarea/Readme.md b/docs/pages/webitel-ui/components/wt-textarea/Readme.md index 3e489e404..7eae4a753 100644 --- a/docs/pages/webitel-ui/components/wt-textarea/Readme.md +++ b/docs/pages/webitel-ui/components/wt-textarea/Readme.md @@ -13,6 +13,7 @@ import ExampleInvalidTextarea from './examples/example-invalid-textarea.vue'; ::: ## Example Textarea + :::raw ::: @@ -22,6 +23,7 @@ import ExampleInvalidTextarea from './examples/example-invalid-textarea.vue'; ::: ## Example Disabled Textarea + :::raw ::: @@ -31,6 +33,7 @@ import ExampleInvalidTextarea from './examples/example-invalid-textarea.vue'; ::: ## Example Invalid Textarea + :::raw ::: diff --git a/docs/pages/webitel-ui/components/wt-textarea/examples/example-invalid-textarea.vue b/docs/pages/webitel-ui/components/wt-textarea/examples/example-invalid-textarea.vue index 69e7d5f3f..17ba8e6d5 100644 --- a/docs/pages/webitel-ui/components/wt-textarea/examples/example-invalid-textarea.vue +++ b/docs/pages/webitel-ui/components/wt-textarea/examples/example-invalid-textarea.vue @@ -14,11 +14,14 @@ import { useVuelidate } from '@vuelidate/core'; const value = ref('invalid value'); -const v$ = useVuelidate(computed(() => ({ - value: { - required: () => false, - }, -})), { value }); +const v$ = useVuelidate( + computed(() => ({ + value: { + required: () => false, + }, + })), + { value }, +); v$.value.$touch(); diff --git a/docs/pages/webitel-ui/components/wt-textarea/wt-textarea-docs.vue b/docs/pages/webitel-ui/components/wt-textarea/wt-textarea-docs.vue index 67806deb6..c962fb907 100644 --- a/docs/pages/webitel-ui/components/wt-textarea/wt-textarea-docs.vue +++ b/docs/pages/webitel-ui/components/wt-textarea/wt-textarea-docs.vue @@ -1,14 +1,8 @@ - - - + + + - + diff --git a/docs/pages/webitel-ui/components/wt-time-input/Readme.md b/docs/pages/webitel-ui/components/wt-time-input/Readme.md index 98e69b70b..17f591173 100644 --- a/docs/pages/webitel-ui/components/wt-time-input/Readme.md +++ b/docs/pages/webitel-ui/components/wt-time-input/Readme.md @@ -7,11 +7,13 @@ import ExampleMinTimeInput from './examples/example-min-time-input.vue'; # WtTimeInput ## Props + ::: raw ::: ## Example Hour Time Input + ::: raw ::: @@ -21,6 +23,7 @@ import ExampleMinTimeInput from './examples/example-min-time-input.vue'; ::: ## Example Min Time Input + ::: raw ::: @@ -28,5 +31,3 @@ import ExampleMinTimeInput from './examples/example-min-time-input.vue'; ::: details Code <<< ./examples/example-min-time-input.vue ::: - - diff --git a/docs/pages/webitel-ui/components/wt-time-input/examples/example-hour-time-input.vue b/docs/pages/webitel-ui/components/wt-time-input/examples/example-hour-time-input.vue index 040005d0a..ef4af61fd 100644 --- a/docs/pages/webitel-ui/components/wt-time-input/examples/example-hour-time-input.vue +++ b/docs/pages/webitel-ui/components/wt-time-input/examples/example-hour-time-input.vue @@ -2,7 +2,6 @@ import { ref } from 'vue'; const value = ref(14); - @@ -14,6 +13,4 @@ const value = ref(14); /> - + diff --git a/docs/pages/webitel-ui/components/wt-time-input/examples/example-min-time-input.vue b/docs/pages/webitel-ui/components/wt-time-input/examples/example-min-time-input.vue index 23660dcc1..1224afc09 100644 --- a/docs/pages/webitel-ui/components/wt-time-input/examples/example-min-time-input.vue +++ b/docs/pages/webitel-ui/components/wt-time-input/examples/example-min-time-input.vue @@ -2,7 +2,6 @@ import { ref } from 'vue'; const value = ref(25); - @@ -14,6 +13,4 @@ const value = ref(25); /> - + diff --git a/docs/pages/webitel-ui/components/wt-time-input/wt-time-input-docs.vue b/docs/pages/webitel-ui/components/wt-time-input/wt-time-input-docs.vue index 4835d1c18..32512c114 100644 --- a/docs/pages/webitel-ui/components/wt-time-input/wt-time-input-docs.vue +++ b/docs/pages/webitel-ui/components/wt-time-input/wt-time-input-docs.vue @@ -1,15 +1,8 @@ - - - - + + + - + diff --git a/docs/pages/webitel-ui/components/wt-timepicker/Readme.md b/docs/pages/webitel-ui/components/wt-timepicker/Readme.md index 9b1221bce..21ca17111 100644 --- a/docs/pages/webitel-ui/components/wt-timepicker/Readme.md +++ b/docs/pages/webitel-ui/components/wt-timepicker/Readme.md @@ -10,7 +10,7 @@ import ExampleTimepickerDateMode from './examples/example-timepicker-date-mode.v ## Props | Prop | Type | Default | Code | Description | -|------------|----------------|------------|-------------------------------------------------------|--------------------------------------------------------------------------------------------------| +| ---------- | -------------- | ---------- | ----------------------------------------------------- | ------------------------------------------------------------------------------------------------ | | value | String, Number | 0 | ` ` | Time value in seconds (not milliseconds!) | | label | String | '' | ` ` | if passed, replaces "hour", "min", "sec" with a single label + format prop value | | format | String | 'hh:mm:ss' | ` ` | Controls visibility of inputs, depending on presence of h, m, s letters | @@ -23,10 +23,11 @@ import ExampleTimepickerDateMode from './examples/example-timepicker-date-mode.v ## Events | Value | Type | Description | -|-------|------------------------------------------------------------------|----------------------------------------------------| +| ----- | ---------------------------------------------------------------- | -------------------------------------------------- | | input | Number sec value or timestamp, depending on date-mode prop value | Event is triggered immediately after value change. | ## Example Timepicker + ::: raw ::: @@ -36,6 +37,7 @@ import ExampleTimepickerDateMode from './examples/example-timepicker-date-mode.v ::: ## Timepicker Date Mode + ::: raw ::: @@ -45,6 +47,7 @@ import ExampleTimepickerDateMode from './examples/example-timepicker-date-mode.v ::: ## Disabled Timepicker + ::: raw ::: @@ -54,6 +57,7 @@ import ExampleTimepickerDateMode from './examples/example-timepicker-date-mode.v ::: ## Invalid Timepicker + ::: raw ::: diff --git a/docs/pages/webitel-ui/components/wt-timepicker/examples/example-disabled-timepicker.vue b/docs/pages/webitel-ui/components/wt-timepicker/examples/example-disabled-timepicker.vue index cfe04a867..b7c3f9a1b 100644 --- a/docs/pages/webitel-ui/components/wt-timepicker/examples/example-disabled-timepicker.vue +++ b/docs/pages/webitel-ui/components/wt-timepicker/examples/example-disabled-timepicker.vue @@ -1,6 +1,4 @@ - + - + diff --git a/docs/pages/webitel-ui/components/wt-timepicker/examples/example-invalid-timepicker.vue b/docs/pages/webitel-ui/components/wt-timepicker/examples/example-invalid-timepicker.vue index 62f697645..35dd47524 100644 --- a/docs/pages/webitel-ui/components/wt-timepicker/examples/example-invalid-timepicker.vue +++ b/docs/pages/webitel-ui/components/wt-timepicker/examples/example-invalid-timepicker.vue @@ -4,11 +4,14 @@ import { computed, ref } from 'vue'; const value = ref(322); -const v$ = useVuelidate(computed(() => ({ - value: { - required: () => false, - }, -})), { value }); +const v$ = useVuelidate( + computed(() => ({ + value: { + required: () => false, + }, + })), + { value }, +); v$.value.$touch(); @@ -22,6 +25,4 @@ v$.value.$touch(); /> - + diff --git a/docs/pages/webitel-ui/components/wt-timepicker/examples/example-timepicker-date-mode.vue b/docs/pages/webitel-ui/components/wt-timepicker/examples/example-timepicker-date-mode.vue index ae8ad78bf..7cca1e9bc 100644 --- a/docs/pages/webitel-ui/components/wt-timepicker/examples/example-timepicker-date-mode.vue +++ b/docs/pages/webitel-ui/components/wt-timepicker/examples/example-timepicker-date-mode.vue @@ -12,6 +12,4 @@ const value = ref(Date.now()); value: {{ value }} - + diff --git a/docs/pages/webitel-ui/components/wt-timepicker/examples/example-timepicker.vue b/docs/pages/webitel-ui/components/wt-timepicker/examples/example-timepicker.vue index 7efd46e78..ed7b32e06 100644 --- a/docs/pages/webitel-ui/components/wt-timepicker/examples/example-timepicker.vue +++ b/docs/pages/webitel-ui/components/wt-timepicker/examples/example-timepicker.vue @@ -13,6 +13,4 @@ const value = ref(332); value: {{ value }} - + diff --git a/docs/pages/webitel-ui/components/wt-tooltip/Readme.md b/docs/pages/webitel-ui/components/wt-tooltip/Readme.md index 16c07668b..71b07f1e4 100644 --- a/docs/pages/webitel-ui/components/wt-tooltip/Readme.md +++ b/docs/pages/webitel-ui/components/wt-tooltip/Readme.md @@ -9,7 +9,7 @@ import ExampleTooltip from './examples/example-tooltip.vue'; ## Props | Prop | Type | Default | Code | Description | -|-----------------|---------|-----------------------------|----------------------------------------------------------|------------------------------------------------------------------------------------------------------| +| --------------- | ------- | --------------------------- | -------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | | placement | String | auto | ` ` | see [Floating UI](https://floating-ui.com/docs/tutorial#placements) docs, + "auto" for autoPlacement | | popper-class | String | | ` ` | add special class to a floating part of tooltip | | triggers | Array | ['hover', 'focus', 'touch'] | ` ` | see [Floating Vue](https://floating-vue.starpad.dev/api/#triggers) docs | @@ -20,10 +20,9 @@ import ExampleTooltip from './examples/example-tooltip.vue'; ## Slots | Name | Scope | Description | -|---------|-------|----------------------| +| ------- | ----- | -------------------- | | default | | Default content slot | - ## Example Tooltip ::: raw diff --git a/docs/pages/webitel-ui/components/wt-tooltip/examples/example-tooltip.vue b/docs/pages/webitel-ui/components/wt-tooltip/examples/example-tooltip.vue index 8d7966afb..8d6d131b4 100644 --- a/docs/pages/webitel-ui/components/wt-tooltip/examples/example-tooltip.vue +++ b/docs/pages/webitel-ui/components/wt-tooltip/examples/example-tooltip.vue @@ -1,18 +1,12 @@ - + - - + diff --git a/docs/pages/webitel-ui/components/wt-tree-table/Readme.md b/docs/pages/webitel-ui/components/wt-tree-table/Readme.md new file mode 100644 index 000000000..3a53996cb --- /dev/null +++ b/docs/pages/webitel-ui/components/wt-tree-table/Readme.md @@ -0,0 +1,19 @@ + + +# WtTreeTable + +## Specs +- Hover me! -+Hover me!Hello there!+ +## Tree Table +::: raw + +::: + +::: details Code +<<< ./examples/example-tree-table.vue +::: + diff --git a/docs/pages/webitel-ui/components/wt-tree-table/component-specs.vue b/docs/pages/webitel-ui/components/wt-tree-table/component-specs.vue new file mode 100644 index 000000000..f6389e19c --- /dev/null +++ b/docs/pages/webitel-ui/components/wt-tree-table/component-specs.vue @@ -0,0 +1,8 @@ + + + + + diff --git a/docs/pages/webitel-ui/components/wt-tree-table/examples/example-tree-table.vue b/docs/pages/webitel-ui/components/wt-tree-table/examples/example-tree-table.vue new file mode 100644 index 000000000..393153b4e --- /dev/null +++ b/docs/pages/webitel-ui/components/wt-tree-table/examples/example-tree-table.vue @@ -0,0 +1,41 @@ + + + + + + diff --git a/docs/pages/webitel-ui/components/wt-tree-table/examples/service.json b/docs/pages/webitel-ui/components/wt-tree-table/examples/service.json new file mode 100644 index 000000000..335280a61 --- /dev/null +++ b/docs/pages/webitel-ui/components/wt-tree-table/examples/service.json @@ -0,0 +1,408 @@ +{ + "page":1, + "items":[ + { + "id":"30", + "name":"Patch test", + "description":"description", + "prefix":"0-000120", + "code":"00-1214", + "sla":{ + "id":"2", + "name":"SLA - testing new2" + }, + "status":{ + "id":"4", + "name":"Fishiiiiiiiiikaaaa Status" + }, + "close_reason":{ + "id":"8", + "name":"name upd" + }, + "created_at":"1726240515960", + "updated_at":"1730426039302", + "created_by":{ + "id":"3", + "name":"Admооо" + }, + "updated_by":{ + "id":"3", + "name":"Admооо" + }, + "service":[ + { + "id":"31", + "name":"Upd child name", + "root_id":"30", + "sla":{ + + }, + "group":{ + + }, + "assignee":{ + + }, + "created_by":{ + + }, + "updated_by":{ + + }, + "catalog_id":"30", + "service":[ + { + "id":"38", + "name":"3rd", + "root_id":"31", + "sla":{ + + }, + "group":{ + + }, + "assignee":{ + + }, + "created_by":{ + + }, + "updated_by":{ + + }, + "catalog_id":"30", + "service":[ + { + "id":"39", + "name":"4th", + "root_id":"38", + "sla":{ + + }, + "group":{ + + }, + "assignee":{ + + }, + "created_by":{ + + }, + "updated_by":{ + + }, + "catalog_id":"30", + "service":[ + { + "id":"40", + "name":"name update for service", + "root_id":"39", + "sla":{ + + }, + "group":{ + + }, + "assignee":{ + + }, + "created_by":{ + + }, + "updated_by":{ + + }, + "catalog_id":"30", + "service":[ + { + "id":"41", + "name":"6th level", + "root_id":"40", + "sla":{ + + }, + "group":{ + + }, + "assignee":{ + + }, + "created_by":{ + + }, + "updated_by":{ + + }, + "catalog_id":"30" + } + ] + } + ] + } + ] + } + ] + }, + { + "id":"34", + "name":"new test 3", + "root_id":"30", + "sla":{ + + }, + "group":{ + + }, + "assignee":{ + + }, + "created_by":{ + + }, + "updated_by":{ + + }, + "catalog_id":"30", + "service": [ + { + "id":"51", + "name":"new test 6", + "root_id":"34", + "sla":{ + + }, + "group":{ + + }, + "assignee":{ + + }, + "created_by":{ + + }, + "updated_by":{ + + }, + "catalog_id":"30", + "service": [ + { + "id":"54", + "name":"new test 8", + "root_id":"51", + "sla":{ + + }, + "group":{ + + }, + "assignee":{ + + }, + "created_by":{ + + }, + "updated_by":{ + + }, + "catalog_id":"30" + } + ] + }, + { + "id":"52", + "name":"new test 7", + "root_id":"34", + "sla":{ + + }, + "group":{ + + }, + "assignee":{ + + }, + "created_by":{ + + }, + "updated_by":{ + + }, + "catalog_id":"30" + } + ] + }, + { + "id":"32", + "name":"new test", + "root_id":"30", + "sla":{ + + }, + "group":{ + + }, + "assignee":{ + + }, + "created_by":{ + + }, + "updated_by":{ + + }, + "catalog_id":"30" + } + ] + }, + { + "id":"36", + "name":"upd", + "description":"cat", + "prefix":"0000-111", + "code":"0000-111", + "sla":{ + "id":"2", + "name":"SLA - testing new2" + }, + "status":{ + "id":"4", + "name":"Fishiiiiiiiiikaaaa Status" + }, + "close_reason":{ + "id":"3", + "name":"Delivery was not sent" + }, + "created_at":"1728402613207", + "updated_at":"1730390103606", + "created_by":{ + "id":"3", + "name":"Admооо" + }, + "updated_by":{ + "id":"3", + "name":"Admооо" + }, + "service":[ + { + "id":"42", + "name":"another service", + "root_id":"36", + "sla":{ + + }, + "group":{ + + }, + "assignee":{ + + }, + "created_by":{ + + }, + "updated_by":{ + + }, + "catalog_id":"36", + "service":[ + { + "id":"43", + "name":"another service 2", + "root_id":"42", + "sla":{ + + }, + "group":{ + + }, + "assignee":{ + + }, + "created_by":{ + + }, + "updated_by":{ + + }, + "catalog_id":"36", + "service":[ + { + "id":"44", + "name":"another service 3", + "root_id":"43", + "sla":{ + + }, + "group":{ + + }, + "assignee":{ + + }, + "created_by":{ + + }, + "updated_by":{ + + }, + "catalog_id":"36", + "service":[ + { + "id":"33", + "name":"new test 2", + "root_id":"44", + "sla":{ + + }, + "group":{ + + }, + "assignee":{ + + }, + "created_by":{ + + }, + "updated_by":{ + + }, + "catalog_id":"36" + } + ] + } + ] + } + ] + } + ] + }, + { + "id":"45", + "name":"another service 5", + "description":"another description", + "prefix":"000-1111", + "code":"000-1111", + "sla":{ + "id":"1", + "name":"new name55" + }, + "status":{ + "id":"4", + "name":"Fishiiiiiiiiikaaaa Status" + }, + "close_reason":{ + "id":"3", + "name":"Delivery was not sent" + }, + "created_at":"1728920735481", + "updated_at":"1728920735481", + "created_by":{ + "id":"3", + "name":"Admооо" + }, + "updated_by":{ + "id":"3", + "name":"Admооо" + } + } + ] +} \ No newline at end of file diff --git a/docs/pages/webitel-ui/composables/use-access-control/Readme.md b/docs/pages/webitel-ui/composables/use-access-control/Readme.md index 26e327aa7..b248f3fd8 100644 --- a/docs/pages/webitel-ui/composables/use-access-control/Readme.md +++ b/docs/pages/webitel-ui/composables/use-access-control/Readme.md @@ -5,18 +5,17 @@ ## Return | Params | Description | -|---------------------|-----------------------------------| +| ------------------- | --------------------------------- | | hasReadAccess | чи є доступ на перегляд запису | | hasCreateAccess | чи є доступ на створення запису | | hasDeleteAccess | чи є доступ на видалення запису | | hasEditAccess | чи є доступ на редагування запису | | hasSaveActionAccess | чи є доступ на збереження запису | -| disableUserInput | заборона керування певним полем | +| disableUserInput | заборона керування певним полем | -Параметри `hasReadAccess`, `hasCreateAccess`, `hasDeleteAccess`, `hasEditAccess` розраховуються в +Параметри `hasReadAccess`, `hasCreateAccess`, `hasDeleteAccess`, `hasEditAccess` розраховуються в залежності від `route` сторінки, а саме його значення прокидується у `getter userinfo` і всередині аналізується на наявність доступів - ## Використання ```js @@ -28,7 +27,6 @@ const { hasDeleteAccess, hasEditAccess, hasSaveActionAccess, - disableUserInput + disableUserInput, } = useAccessControl(); - ``` diff --git a/docs/pages/webitel-ui/composables/use-cached-interval/Readme.md b/docs/pages/webitel-ui/composables/use-cached-interval/Readme.md index 64d86d20f..6e61e857c 100644 --- a/docs/pages/webitel-ui/composables/use-cached-interval/Readme.md +++ b/docs/pages/webitel-ui/composables/use-cached-interval/Readme.md @@ -6,7 +6,7 @@ We take startup time from parameter timeout, or localStorageKey, or 5 minutes by ## Input params | Params | Default | Description | -|-----------------|--------------|---------------------------------------------------| +| --------------- | ------------ | ------------------------------------------------- | | timeout | 5min | frequency of function calls | | localStorageKey | auto-refresh | key from localStorage where the timeout is stored | diff --git a/docs/pages/webitel-ui/composables/use-cached-item-instance-name/Readme.md b/docs/pages/webitel-ui/composables/use-cached-item-instance-name/Readme.md index 3258db93e..7c91062f8 100644 --- a/docs/pages/webitel-ui/composables/use-cached-item-instance-name/Readme.md +++ b/docs/pages/webitel-ui/composables/use-cached-item-instance-name/Readme.md @@ -8,14 +8,14 @@ ## Input params | Params | Default | Description | -|--------------|---------|-------------| +| ------------ | ------- | ----------- | | itemInstance | | | | namePath | name | | ## Return | Params | Description | -|--------|--------------------------------------------------------------------------------| +| ------ | ------------------------------------------------------------------------------ | | name | Значенння name з сутності itemInstance, яке було до редагування `itemInstance` | ## Приклад використання diff --git a/docs/pages/webitel-ui/composables/use-card-component/Readme.md b/docs/pages/webitel-ui/composables/use-card-component/Readme.md index d3474ccfd..1ee14d72a 100644 --- a/docs/pages/webitel-ui/composables/use-card-component/Readme.md +++ b/docs/pages/webitel-ui/composables/use-card-component/Readme.md @@ -10,7 +10,7 @@ Обєкт параметрів який має включати наступні значення: | Params | Description | -|--------------|--------------------------------------------------------------------| +| ------------ | ------------------------------------------------------------------ | | id | | | itemInstance | | | invalid | Boolean значення, яке вертається з перевірки на валідацію сторінки | @@ -23,7 +23,7 @@ ## Return | Params | Description | -|--------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| ------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | id | | | itemInstance | | | isNew | Якщо запис не має `id`, він вважаєаться новим (ще не створеним) | @@ -38,18 +38,11 @@ ```js import { useCardComponent } from '@webitel/ui-sdk/src/composables/useCard/useCardComponent.js'; -сonst +сonst; namespace = 'some-namespace'; -const { - id, - itemInstance, - loadItem, - addItem, - updateItem, - setId, - resetState, -} = useCardStore(namespace); +const { id, itemInstance, loadItem, addItem, updateItem, setId, resetState } = + useCardStore(namespace); const { id, @@ -59,7 +52,7 @@ const { disabledSave, saveText, save, - initialize + initialize, } = useCardComponent({ id, itemInstance, @@ -68,6 +61,6 @@ const { updateItem, setId, resetState, - invalid + invalid, }); ``` diff --git a/docs/pages/webitel-ui/composables/use-card-tabs/Readme.md b/docs/pages/webitel-ui/composables/use-card-tabs/Readme.md index 993123e57..c928bcd7c 100644 --- a/docs/pages/webitel-ui/composables/use-card-tabs/Readme.md +++ b/docs/pages/webitel-ui/composables/use-card-tabs/Readme.md @@ -6,13 +6,13 @@ ## Input params | Params | Description | -|--------|------------------------------------------------| +| ------ | ---------------------------------------------- | | tabs | Масив табів, які є наявні на сторінці сутності | ## Return | Params | Description | -|------------|-------------------------------------------------------------------------------| +| ---------- | ----------------------------------------------------------------------------- | | currentTab | Поточна відкрита таба. Розраховується від значення `route.name` або `tabs[0]` | | changeTab | Метод для зміни таби. Викликає `router` і пушить нове значення в нього | @@ -35,5 +35,4 @@ const tabs = [ ]; const { currentTab, changeTab } = useCardTabs(tabs); - ``` diff --git a/docs/pages/webitel-ui/composables/use-close/Readme.md b/docs/pages/webitel-ui/composables/use-close/Readme.md index cdf5141ea..61add6739 100644 --- a/docs/pages/webitel-ui/composables/use-close/Readme.md +++ b/docs/pages/webitel-ui/composables/use-close/Readme.md @@ -6,13 +6,13 @@ ## Input params | Params | Description | -|--------|--------------------------------------------------------------| +| ------ | ------------------------------------------------------------ | | name | Імя сторінки, куди треба повернутись після закриття поточної | ## Return | Params | Description | -|--------|-------------| +| ------ | ----------- | | close | | ## Використання @@ -21,6 +21,4 @@ import { useClose } from '@webitel/ui-sdk/src/composables/useClose/useClose.js'; const { close } = useClose('some-route'); - ``` - diff --git a/docs/pages/webitel-ui/composables/use-destroyable-sortable/Readme.md b/docs/pages/webitel-ui/composables/use-destroyable-sortable/Readme.md index 24118790f..c086be2dc 100644 --- a/docs/pages/webitel-ui/composables/use-destroyable-sortable/Readme.md +++ b/docs/pages/webitel-ui/composables/use-destroyable-sortable/Readme.md @@ -16,26 +16,27 @@ Bad decision, but I haven't come up with a better one ## Input params | Params | Description | -|---------|-------------| +| ------- | ----------- | | elRef | | | options | | ## Return | Params | Description | -|----------------|-------------| +| -------------- | ----------- | | reloadSortable | | ## Використання ```js // template - +; // script -import { - useDestroyableSortable, -} from '@webitel/ui-sdk/src/composables/useDestroyableSortable/useDestroyableSortable'; +import { useDestroyableSortable } from '@webitel/ui-sdk/src/composables/useDestroyableSortable/useDestroyableSortable'; const SortableWrapper = ref(null); @@ -46,4 +47,3 @@ const { reloadSortable } = useDestroyableSortable(SortableWrapper, { }, }); ``` - diff --git a/docs/pages/webitel-ui/composables/use-representable-agent-pause-cause/Readme.md b/docs/pages/webitel-ui/composables/use-representable-agent-pause-cause/Readme.md index 5ebe25e33..2b2ed1dbd 100644 --- a/docs/pages/webitel-ui/composables/use-representable-agent-pause-cause/Readme.md +++ b/docs/pages/webitel-ui/composables/use-representable-agent-pause-cause/Readme.md @@ -5,39 +5,38 @@ ## Input params | Params | Description | -|-------------|-------------| +| ----------- | ----------- | | pauseCauses | array | ## Return | Params | Description | -|-------------------------|-----------------------------------------------------------------------------------------------------------------------| +| ----------------------- | --------------------------------------------------------------------------------------------------------------------- | | representablePauseCause | Computed property that contains additionally calculated properties `duration`, `progressColor`, `isOverflow`, `limit` | ## Використання ```js -import { - useRepresentableAgentPauseCause -} from '@webitel/ui-sdk/src/composables/useRepresentableAgentPauseCause/useRepresentableAgentPauseCause'; +import { useRepresentableAgentPauseCause } from '@webitel/ui-sdk/src/composables/useRepresentableAgentPauseCause/useRepresentableAgentPauseCause'; const pauseCauses = ref([ { id: 30, name: 'Технічна перерва', - limit_min: 60 + limit_min: 60, }, { id: 69, name: 'Навчання', - limit_min: 120 + limit_min: 120, }, { id: 37, name: 'Обід', - limit_min: 23 + limit_min: 23, }, -]) +]); -const { representablePauseCause } = useRepresentableAgentPauseCause(pauseCauses); +const { representablePauseCause } = + useRepresentableAgentPauseCause(pauseCauses); ``` diff --git a/docs/pages/webitel-ui/composables/use-validate/Readme.md b/docs/pages/webitel-ui/composables/use-validate/Readme.md index 402d8d342..cc2e7ee86 100644 --- a/docs/pages/webitel-ui/composables/use-validate/Readme.md +++ b/docs/pages/webitel-ui/composables/use-validate/Readme.md @@ -7,14 +7,14 @@ ## Input params | Params | Description | -|--------|-----------------------------------------------------| +| ------ | --------------------------------------------------- | | schema | Схема, за якою треба перевірити данні на валідність | | data | Обєкт, який треба валідувати | ## Return | Params | Description | -|---------|-------------------------------------| +| ------- | ----------------------------------- | | v$ | Обєкт з результатом валідації форми | | invalid | Boolean значення `v$.$invalid` | @@ -23,7 +23,7 @@ ```js import { useValidate } from '@webitel/ui-sdk/src/composables/useValidate/useValidate.js'; -сonst +сonst; schema = { name: { required: true, @@ -39,12 +39,11 @@ schema = { }, }; -сonst +сonst; data = { name: 'some name', description: 'some description', }; const { v$, invalid } = useValidate(schema, { data }); - ``` diff --git a/docs/pages/webitel-ui/css/card-page/card-page.css.md b/docs/pages/webitel-ui/css/card-page/card-page.css.md index 8411029aa..ca3f3e5c2 100644 --- a/docs/pages/webitel-ui/css/card-page/card-page.css.md +++ b/docs/pages/webitel-ui/css/card-page/card-page.css.md @@ -1,53 +1,50 @@ # Card page styles ##### ! Стилі додаються автоматично в main.scss ! + #### Що це -Це стилі для сторінки-картки (після таблиці, накриклад: створення чи редагування запису) +Це стилі для сторінки-картки (після таблиці, накриклад: створення чи редагування запису) ## Які класи використовуються -- `opened-card` - загальний клас та обгортка сторінки, використовується з `wt-page-wrapper` +- `opened-card` - загальний клас та обгортка сторінки, використовується з `wt-page-wrapper` - `opened-card-form` - форма-обгортка для табів та прихованого інпуту - `opened-card-tabs` - обгортка для табів -- `opened-card-tabs__tab` - таб `router-view` +- `opened-card-tabs__tab` - таб `router-view` - `opened-card-header` - обгортка назви табу - `opened-card-header__title` - назву табу -- `opened-card-input-grid` - грід стилі таблиці +- `opened-card-input-grid` - грід стилі таблиці - `opened-card-input-grid--1-col` - модифікатор грід стилів - одна колонка (без розділень) - `opened-card-input-grid--w50` - модифікатор грід стилів - половина ширини - `opened-card-input-grid--w100` - модифікатор грід стилів - повна ширина - + ## Приклад використання ```vue -// crm, opened-sources.vue +// crm, opened-sources.vue- -// crm, opened-sources-general.vue +// crm, opened-sources-general.vuediff --git a/docs/pages/webitel-ui/directives/clickaway-directive/clickaway-directive-docs.vue b/docs/pages/webitel-ui/directives/clickaway-directive/clickaway-directive-docs.vue index 38ba46567..98fa134d3 100644 --- a/docs/pages/webitel-ui/directives/clickaway-directive/clickaway-directive-docs.vue +++ b/docs/pages/webitel-ui/directives/clickaway-directive/clickaway-directive-docs.vue @@ -2,9 +2,7 @@ - -- card title -
+card title
+...diff --git a/docs/pages/webitel-ui/css/table-page/table-page.css.md b/docs/pages/webitel-ui/css/table-page/table-page.css.md index 7b87457ad..0d293cbf3 100644 --- a/docs/pages/webitel-ui/css/table-page/table-page.css.md +++ b/docs/pages/webitel-ui/css/table-page/table-page.css.md @@ -1,6 +1,7 @@ # Table page styles ##### ! Стилі додаються автоматично в main.scss ! + #### Що це Це стилі для сторінки з стандартними таблицями. @@ -17,27 +18,23 @@ ## Приклад використання ```vue -// crm, the-sources.vue +// crm, the-sources.vue -+ - - table title -
-- ... -+table title
+...-+- ... - -... +@@ -26,6 +24,4 @@ export default { }; - + diff --git a/docs/pages/webitel-ui/directives/directives-docs.vue b/docs/pages/webitel-ui/directives/directives-docs.vue index fc50e933f..64b7ea77f 100644 --- a/docs/pages/webitel-ui/directives/directives-docs.vue +++ b/docs/pages/webitel-ui/directives/directives-docs.vue @@ -8,6 +8,4 @@ export default { }; - + diff --git a/docs/pages/webitel-ui/filters/filters-docs.vue b/docs/pages/webitel-ui/filters/filters-docs.vue index cf99ad6e9..6fbfcea05 100644 --- a/docs/pages/webitel-ui/filters/filters-docs.vue +++ b/docs/pages/webitel-ui/filters/filters-docs.vue @@ -8,6 +8,4 @@ export default { }; - + diff --git a/docs/pages/webitel-ui/filters/truncate-filter/truncate-filter-docs.vue b/docs/pages/webitel-ui/filters/truncate-filter/truncate-filter-docs.vue index 28e706250..5797a111a 100644 --- a/docs/pages/webitel-ui/filters/truncate-filter/truncate-filter-docs.vue +++ b/docs/pages/webitel-ui/filters/truncate-filter/truncate-filter-docs.vue @@ -7,7 +7,8 @@ Clickaway
- - click away - +click away <wt-button v-clickaway="handleClickAway">click away</wt-button>
<p>lorem ipsum dolor sit amet | truncate</p>
<p>lorem ipsum dolor sit amet | truncateFromEnd</p>
- Argument: string length (without dots). Default value: 18; + Argument: string length (without dots). + Default value: 18;truncateFromEnd is recommended for numbers.Validation Mixin
@@ -38,6 +39,4 @@ export default { }; - + diff --git a/docs/pages/webitel-ui/modules/Appearance/Readme.md b/docs/pages/webitel-ui/modules/Appearance/Readme.md index 7d53e6dc2..623969a4a 100644 --- a/docs/pages/webitel-ui/modules/Appearance/Readme.md +++ b/docs/pages/webitel-ui/modules/Appearance/Readme.md @@ -1,11 +1,15 @@ # Appearance Module ## Store + Store contains data, related to user interface appearance: + - theme ## WtDarkModeSwitcher + toggle dark mode switcher component, which: + 1. changes theme in store 2. changes theme in local storage 3. attaches theme class to `` tag diff --git a/docs/pages/webitel-ui/modules/Filters/Readme.md b/docs/pages/webitel-ui/modules/Filters/Readme.md index 887d3a844..933f65084 100644 --- a/docs/pages/webitel-ui/modules/Filters/Readme.md +++ b/docs/pages/webitel-ui/modules/Filters/Readme.md @@ -6,11 +6,11 @@ Недавно було додано: -* `components/filter-select.vue` -* `components/filter-datetime.vue` -* `store/actionsRESET_FILTERS` -* Автовстановлення `defaultValue` фільтрів від `value` -* на кожен фільтр додався геттер у сторі з його велью +- `components/filter-select.vue` +- `components/filter-datetime.vue` +- `store/actionsRESET_FILTERS` +- Автовстановлення `defaultValue` фільтрів від `value` +- на кожен фільтр додався геттер у сторі з його велью Всі ці зміни я не описую детально наразі, тому що дуже скоро має бути переробка фільтрів під новий юі і логіку, а отже, дуже ймовірно, що щось тут та й зміниться. @@ -39,7 +39,7 @@ ### Як працювали попередні фільтри? -[Детально, QueryFilters](../query-filters%20(old)/Readme.md) +[Детально, QueryFilters](<../query-filters%20(old)/Readme.md>) ## Як працюють нові фільтри? @@ -54,10 +54,10 @@ Це клас, який описує схему фільтра. Він містить в собі: -* `name` фільтра -* `value` фільтра -* `getters`/`setters`/`restores` -* додаткові необхідні параметри, такі як, наприклад, `localStorageKey`. +- `name` фільтра +- `value` фільтра +- `getters`/`setters`/`restores` +- додаткові необхідні параметри, такі як, наприклад, `localStorageKey`. ### Getters/Setters/Restores @@ -67,9 +67,9 @@ #### Getters -* `value` - повертає значення фільтра з обʼєкта схеми даних -* `query` - повертає значення фільтра з роута -* `localStorage` - повертає значення фільтра з localStorage +- `value` - повертає значення фільтра з обʼєкта схеми даних +- `query` - повертає значення фільтра з роута +- `localStorage` - повертає значення фільтра з localStorage #### Setters @@ -95,39 +95,39 @@ Restores використовуються для відновлення знач Наразі має тільки: -* `RESTORED` -* `FILTER_SET` -* `RESET` +- `RESTORED` +- `FILTER_SET` +- `RESET` ## Store Стор відповідає за: -* Зберігання [обʼєктів фільтрів](#обʼєкт-filterschema) (у `state`). -* Інтерфейси доступу до фільтрів (геттери/сеттери/рестори). -* (ан)сабскрайб на зміни фільтрів. +- Зберігання [обʼєктів фільтрів](#обʼєкт-filterschema) (у `state`). +- Інтерфейси доступу до фільтрів (геттери/сеттери/рестори). +- (ан)сабскрайб на зміни фільтрів. Використовувати слід за інтерфейсом: -* Взяти значення одного фільтра по нейму: +- Взяти значення одного фільтра по нейму: `GET_FILTER: (filterName: string) => filterValue: any` -* Взяти значення всіх фільтрів (зверніть увагу, треба викликати, як функцію): +- Взяти значення всіх фільтрів (зверніть увагу, треба викликати, як функцію): `GET_FILTERS: () => filters: { [filterName: string]: any }` -* Встановити значення фільтра: +- Встановити значення фільтра: `SET_FILTER: ({ name: string, value: any, silent: bool }) => void` Залежно від параметра `silent`, (не) емітиться подія `FILTER_SET`. -* Підписка на події у фільтрах (можна підписатися на все через `'*'`): +- Підписка на події у фільтрах (можна підписатися на все через `'*'`): `SUBSCRIBE: ({ event: FiltersEvent | '*', callback: fn: (payload) => => Promise | void })) => void` -* Відписка від **ВСІХ** подій у фільтрах: +- Відписка від **ВСІХ** подій у фільтрах: `FLUSH_SUBSCRIBERS: () => void` @@ -138,7 +138,9 @@ Restores використовуються для відновлення знач створені інстанси класу [`FilterSchema`](#обʼєкт-filterschema). ```javascript -const module = new FiltersStoreModule().addFilter([{ name: '...' }]).getModule(); +const module = new FiltersStoreModule() + .addFilter([{ name: '...' }]) + .getModule(); ``` ## Composables @@ -147,27 +149,27 @@ const module = new FiltersStoreModule().addFilter([{ name: '...' }]).getModule() ### Отримує: -* `namespace` - неймспейс **таблички** (!), які він має використовувати. +- `namespace` - неймспейс **таблички** (!), які він має використовувати. ### Вертає: #### Properties -* `namespace` - неймспейс фільтрів +- `namespace` - неймспейс фільтрів #### Methods -* `restoreFilters` - відновити фільтри -* `subscribe` - підписатися на події -* `flushSubscribers` - відписатися від усіх подій (**обовʼязково викликаєм на `onUnmounted`**) +- `restoreFilters` - відновити фільтри +- `subscribe` - підписатися на події +- `flushSubscribers` - відписатися від усіх подій (**обовʼязково викликаєм на `onUnmounted`**) ## Components "З коробки" є компоненти: -* `components/filter-pagination.vue` -* `components/filter-search.vue` -* `components/filter-table-fields.vue` +- `components/filter-pagination.vue` +- `components/filter-search.vue` +- `components/filter-table-fields.vue` Всі компоненти отримують `namespace` фільтрів як `props`, і самі взаємодіють зі стор модулем. @@ -178,7 +180,7 @@ const module = new FiltersStoreModule().addFilter([{ name: '...' }]).getModule() #### Props: | Name | Type | Default | Required | Description | -|-------------|--------|---------|----------|---------------------------| +| ----------- | ------ | ------- | -------- | ------------------------- | | `namespace` | String | - | + | Неймспейс фільтрів | | `isNext` | Bool | `false` | | Відобраення кнопки "Next" | @@ -189,7 +191,7 @@ const module = new FiltersStoreModule().addFilter([{ name: '...' }]).getModule() #### Props: | Name | Type | Default | Required | Description | -|------------------|--------|---------|----------|--------------------------------------------------------------------------------------------------------| +| ---------------- | ------ | ------- | -------- | ------------------------------------------------------------------------------------------------------ | | `namespace` | String | - | + | Неймспейс фільтрів | | `multisearch` | Bool | `false` | | Включити мультипошук з вибором поля, по якому ми шукаємо | | `name` | String | `'q'` | | Імʼя поля, по якому ми шукаємо | @@ -202,7 +204,7 @@ const module = new FiltersStoreModule().addFilter([{ name: '...' }]).getModule() #### Props: | Name | Type | Default | Required | Description | -|-----------------|--------|---------|----------|------------------------------------------------------| +| --------------- | ------ | ------- | -------- | ---------------------------------------------------- | | `namespace` | String | - | + | Неймспейс фільтрів | | `headers` | Array | - | + | Хедери таблички | | `staticHeaders` | Array | `[]` | | Масив `value` хедерів, обовʼязкових для відображення | @@ -214,7 +216,7 @@ const module = new FiltersStoreModule().addFilter([{ name: '...' }]).getModule() НЕМАЄ ПОТРЕБИ ВИКОНУВАТИ АПДЕЙТ ХЕДЕРІВ `@change`. | Name | Payload | Description | -|----------|---------|------------------------| +| -------- | ------- | ---------------------- | | `change` | Array | новий `headers` обʼєкт | ## Наглядно @@ -232,18 +234,20 @@ const module = new FiltersStoreModule().addFilter([{ name: '...' }]).getModule() import FiltersStoreModule from '@webitel/ui-sdk/src/modules/Filters/store/FiltersStoreModule.js'; -const module = new FiltersStoreModule().addFilter([ - { name: 'page', value: 1, defaultValue: 1 }, - { name: 'size', value: 10, defaultValue: 10 }, - { name: 'search' }, - { name: 'sort' }, - { - name: 'fields', - getters: ['value', 'query', 'localStorage'], - setters: ['value', 'query', 'localStorage'], - restores: ['query', 'localStorage'], - }, -]).getModule(); +const module = new FiltersStoreModule() + .addFilter([ + { name: 'page', value: 1, defaultValue: 1 }, + { name: 'size', value: 10, defaultValue: 10 }, + { name: 'search' }, + { name: 'sort' }, + { + name: 'fields', + getters: ['value', 'query', 'localStorage'], + setters: ['value', 'query', 'localStorage'], + restores: ['query', 'localStorage'], + }, + ]) + .getModule(); ``` ### Стор таблички @@ -266,41 +270,41 @@ const module = new createTableStoreModule({ - Mixin wraps up the validation implementation in the library, providing minimal methods - for computing the validation state. + Mixin wraps up the validation implementation in the library, providing + minimal methods for computing the validation state.
Props
@@ -18,10 +18,11 @@this.validationText // String: validation error text, has its own error prioritization
- this.validationText contains locales for some default validations, and it can be - extended with custom validation, passing them via 'custom-validation' prop. - It's also possible to overwrite text and localization of default validations, - using the same parameters as per custom validation. + this.validationText contains locales for some default validations, and + it can be extended with custom validation, passing them via + 'custom-validation' prop. It's also possible to overwrite text and + localization of default validations, using the same parameters as per + custom validation.
``` diff --git a/docs/pages/webitel-ui/modules/ObjectPermissions/components/component-specs.vue b/docs/pages/webitel-ui/modules/ObjectPermissions/components/component-specs.vue index 44279ef33..eea84344b 100644 --- a/docs/pages/webitel-ui/modules/ObjectPermissions/components/component-specs.vue +++ b/docs/pages/webitel-ui/modules/ObjectPermissions/components/component-specs.vue @@ -6,6 +6,4 @@ import Component from '__lib__/modules/ObjectPermissions/components/permissions-tab.vue'; - + diff --git a/docs/pages/webitel-ui/modules/ObjectPermissions/components/permissions-tab.vue.md b/docs/pages/webitel-ui/modules/ObjectPermissions/components/permissions-tab.vue.md index 809f16577..b7d5aebb3 100644 --- a/docs/pages/webitel-ui/modules/ObjectPermissions/components/permissions-tab.vue.md +++ b/docs/pages/webitel-ui/modules/ObjectPermissions/components/permissions-tab.vue.md @@ -14,7 +14,6 @@ По-правильному, таби мають відкриватись через роутер: ```vue - ``` diff --git a/docs/pages/webitel-ui/modules/ObjectPermissions/index.md b/docs/pages/webitel-ui/modules/ObjectPermissions/index.md index bab9b915f..ca438c895 100644 --- a/docs/pages/webitel-ui/modules/ObjectPermissions/index.md +++ b/docs/pages/webitel-ui/modules/ObjectPermissions/index.md @@ -36,7 +36,10 @@ ```js // user module routing -const PermissionsTab = () => import('@webitel/ui-sdk/src/modules/ObjectPermissions/components/permissions-tab.vue'); +const PermissionsTab = () => + import( + '@webitel/ui-sdk/src/modules/ObjectPermissions/components/permissions-tab.vue' + ); const UsersRoutes = [ // ... diff --git a/docs/pages/webitel-ui/modules/ObjectPermissions/store/index.js.md b/docs/pages/webitel-ui/modules/ObjectPermissions/store/index.js.md index 5df0d2c6d..1e3b99034 100644 --- a/docs/pages/webitel-ui/modules/ObjectPermissions/store/index.js.md +++ b/docs/pages/webitel-ui/modules/ObjectPermissions/store/index.js.md @@ -15,7 +15,8 @@ import { createObjectPermissionsStoreModule } from '@webitel/ui-sdk/src/modules/ const permissions = createObjectPermissionsStoreModule({ modules: { - table: { // note: this is a table module, child of permissions module + table: { + // note: this is a table module, child of permissions module getters: { PARENT_ID: (s, g, rootState) => rootState.directory.users.card.itemId, // required! }, diff --git a/docs/pages/webitel-ui/modules/TableComponentModule/composables/useTableEmpty.js.md b/docs/pages/webitel-ui/modules/TableComponentModule/composables/useTableEmpty.js.md index 0fb1693a6..4265352fe 100644 --- a/docs/pages/webitel-ui/modules/TableComponentModule/composables/useTableEmpty.js.md +++ b/docs/pages/webitel-ui/modules/TableComponentModule/composables/useTableEmpty.js.md @@ -3,20 +3,22 @@ Компоузабл, що розраховує стан [`wt-empty.vue`](../../../components/wt-empty/Readme.md) для таблиці. Підтримує різні причини порожньої таблиці, такі як: -* `error`: помилка при завантаженні даних -* `filters`: відсутність даних за вибраними фільтрами -* `empty`: відсутність даних, при скинутих фільтрах + +- `error`: помилка при завантаженні даних +- `filters`: відсутність даних за вибраними фільтрами +- `empty`: відсутність даних, при скинутих фільтрах ## Вхідні параметри ### 1: Дані таблиці + ```js useTableEmpty({ dataList, isLoading, error, filters, // обʼєкт фільтрів таблиці -}) +}); ``` ### 2: Overrides @@ -53,12 +55,14 @@ const { `overrides` мерджиться з `defaults` `deepmerge`'ом. Отже, збереження структури – обовʼязкове. > [!TIP] -> * `image` - обʼєкт зображення. -> * текстові поля - мають бути вже локалізовані. +> +> - `image` - обʼєкт зображення. +> - текстові поля - мають бути вже локалізовані. ### Схема даних, яку можна перевизначити ::: details Code + ```js const overrides = { // imported img object @@ -103,13 +107,14 @@ const overrides = { }, }; ``` + ::: ## Які фільтри включені в розрахунок причини `filters`? Працює по перевірці всіх існуючих фільтрів, з виключенням: -* `page` -* `size` -* `sort` -* `fields` +- `page` +- `size` +- `sort` +- `fields` diff --git a/docs/pages/webitel-ui/modules/agent-status-select/agent-status-select-docs.vue b/docs/pages/webitel-ui/modules/agent-status-select/agent-status-select-docs.vue index 0a83cc6a3..8cfb512dc 100644 --- a/docs/pages/webitel-ui/modules/agent-status-select/agent-status-select-docs.vue +++ b/docs/pages/webitel-ui/modules/agent-status-select/agent-status-select-docs.vue @@ -9,7 +9,7 @@ alt="agent status select select pic" width="171" height="153" - > + /> @@ -90,14 +93,16 @@ export default { code: '1) Status select view
@@ -68,12 +75,8 @@
- -
1) Status select view
consists of a component and api that returns possible statuses +1) Status select view
+ consists of a component and api that returns possible statuses2) Status select pause cause popup consists of:
- popup component- api that returns possible cause
- Pay attention: for the module to work correctly, you must have an API of a certain format in the store + Pay attention: for the module to work correctly, you must have + an API of a certain format in the store- - composable composable + useRepresentableAgentPauseCause - converts data into the required format + >useRepresentableAgentPauseCause + - converts data into the required format
- -
3) Status select error popup
consists of a component. Displayed if have errors after selecting a cause +3) Status select error popup
+ consists of a component. Displayed if have errors after selecting a + cause- - + + ', type: ['Number', 'String'], required: true, - description: 'Id of agent we\'re working on. Used for patching status changes and receiving pause causes.', + description: + "Id of agent we're working on. Used for patching status changes and receiving pause causes.", }, { value: 'status', code: ' ', type: 'String', - default: 'AgentStatus.OFFLINE // \'offline\'', - description: 'Agent status. Can be undefined, is agent wasn\'t loaded yet', + default: "AgentStatus.OFFLINE // 'offline'", + description: + "Agent status. Can be undefined, is agent wasn't loaded yet", }, { value: 'statusDuration', @@ -111,8 +116,8 @@ export default { { value: 'changed', params: 'status', - description: 'Status changed event' - } + description: 'Status changed event', + }, ], }), mounted() { diff --git a/docs/pages/webitel-ui/modules/audit-form/audit-form-module-docs.vue b/docs/pages/webitel-ui/modules/audit-form/audit-form-module-docs.vue index 1f5ea1e66..a67d2f2da 100644 --- a/docs/pages/webitel-ui/modules/audit-form/audit-form-module-docs.vue +++ b/docs/pages/webitel-ui/modules/audit-form/audit-form-module-docs.vue @@ -17,7 +17,7 @@ -import AuditForm from '@webitel/ui-sdk/src/modules/AuditForm/components/audit-form.vue';
+-+ - + @@ -95,24 +91,25 @@ const properties = [ type: 'String', required: true, options: ['create', 'fill'], - description: '"Fill" mode is for form filling, "create" -- for form creation' + description: + '"Fill" mode is for form filling, "create" -- for form creation', }, { value: 'questions', type: 'Array', required: true, - description: 'For questions format, see "Questions" above' + description: 'For questions format, see "Questions" above', }, { value: 'result', type: 'Array', - description: 'Result is autogenerated' + description: 'Result is autogenerated', }, { value: 'readonly', type: 'Boolean', default: false, - description: 'Shows form in readonly mode' + description: 'Shows form in readonly mode', }, ]; @@ -138,6 +135,4 @@ onMounted(() => { }); - + diff --git a/docs/pages/webitel-ui/modules/data-filter-module/data-filter-module-docs.vue b/docs/pages/webitel-ui/modules/data-filter-module/data-filter-module-docs.vue index ab4835fd3..44df96f0d 100644 --- a/docs/pages/webitel-ui/modules/data-filter-module/data-filter-module-docs.vue +++ b/docs/pages/webitel-ui/modules/data-filter-module/data-filter-module-docs.vue @@ -2,16 +2,16 @@ Query Filters Module
- Introduction: Query Filters Module contains necessary tools for filtering - data in applications + Introduction: Query Filters Module contains necessary + tools for filtering data in applications
Module has 3
/classes
filterSchema
classes to represent a filter:
BaseFilterSchema.js
- Base filter schema module which represents base filter schema, - shared across all filters in store, accepts following params: + Base filter schema module which represents base filter schema, shared + across all filters in store, accepts following params:
- @@ -21,39 +21,61 @@
value
(default = '')
ApiFilterSchema.js
used specifically for api-entities filtering (eg. agents or queues). - Extends
BaseFilterSchema
and accepts additional optional params: + ExtendsBaseFilterSchema
and accepts additional optional + params:-
- -
locale
-- $t locale paths. (default = { label: 'filter' } )- -
storedProp
- object property, stored in url (default = 'id' )- -
multiple
- select multiple value boolean (default = true )- -
closeOnSelect
- close select options after select (default = false )- +
API
- Options API method for options fetch, search and restoring selected values- +
+locale
-- $t locale paths. + (default = { label: 'filter' } ) +- +
+storedProp
- object property, stored in url + (default = 'id' ) +- +
+multiple
- select multiple value boolean + (default = true ) +- +
+closeOnSelect
- close select options after select + (default = false ) +- +
API
- Options API method for options fetch, search and + restoring selected values +
EnumFilterSchema.js
- used specifically for lookup-entities filtering (eg. direction or statuses). - Extends
BaseFilterSchema
and accepts additional optional params: + used specifically for lookup-entities filtering (eg. direction or + statuses). ExtendsBaseFilterSchema
and accepts + additional optional params:- -
-options
- Array of options within following format:{ value, locale?, name }
+options
- Array of options within following format: +{ value, locale?, name }
(if locale is passed, then name is overridden by $t(locale))- -
storedProp
- same asApiFilterSchema
, but (default = 'value' )- ...same as ApiFilterSchema, without
+API
- +
+storedProp
- same asApiFilterSchema
, but + (default = 'value' ) +- + ...same as ApiFilterSchema, without
API
+
/store
QueryFiltersStore.js
- extends
-+ extends + BaseStoreModule.js - Constructor: ({ state? }) -
+Constructor: ({ state? })
- getters:
- GET_FILTER(filterName): returns filter value by name
@@ -62,11 +84,14 @@
- actions:
- - SET_FILTER({ filter, value }): returns filter value by name. - If value is empty, sets defaultValue from filter schema. If filter is multiple, but value is not - array -- wraps it. + SET_FILTER({ filter, value }): returns filter value by name. If + value is empty, sets defaultValue from filter schema. If filter is + multiple, but value is not array -- wraps it. +
+- + RESET_FILTERS(): sets values of all filters equal to + defaultValue property in filter schema
-- RESET_FILTERS(): sets values of all filters equal to defaultValue property in filter schema
@@ -103,7 +128,10 @@ @@ -129,18 +163,23 @@Props:
- -
namespace
- [String] filters store namespace- +
filterQuery
- [String] store state apiFilterSchema prop and url query prop name- +
filterQuery
- [String] store state apiFilterSchema prop + and url query prop name +@@ -112,7 +140,10 @@ Props:
- -
namespace
- [String] filters store namespace- +
filterQuery
- [String] store state enumFilterSchema prop and url query prop name- +
filterQuery
- [String] store state enumFilterSchema + prop and url query prop name +@@ -121,7 +152,10 @@ Props:
- -
namespace
- [String] filters store namespace- +
filterQuery
- [String] store state baseFilterSchema prop and url query prop name (default='search')- +
filterQuery
- [String] store state baseFilterSchema + prop and url query prop name (default='search') +
/api
-
defaults.js
exports
+defaultParams
andlistResponseHandler
for select filters api+ exports
defaultParams
and +listResponseHandler
for select filters api +Internals
- If you need to create a custom filter, you should extend source mixins and override their default - methods. + If you need to create a custom filter, you should extend source mixins and + override their default methods.
For detailed information please check mixins code on - github. - These docs are in very bad condition now :( + github. These docs are in very bad condition now :(
@@ -282,10 +321,10 @@ export default { diff --git a/docs/pages/webitel-ui/modules/export-csv-module/export-csv-module-docs.vue b/docs/pages/webitel-ui/modules/export-csv-module/export-csv-module-docs.vue index 849bc42e8..60ccd1fc8 100644 --- a/docs/pages/webitel-ui/modules/export-csv-module/export-csv-module-docs.vue +++ b/docs/pages/webitel-ui/modules/export-csv-module/export-csv-module-docs.vue @@ -3,13 +3,14 @@Export CSV
- Includes CSVExport class and exportCSVMixin in /mixins folder to - wrap module logic and attach it to component easily. + Includes CSVExport class and exportCSVMixin in + /mixins folder to wrap module logic and attach it to component + easily.
Usage: - fetchMethod -- API call method, - options: { filename: String // name of downloaded file } + fetchMethod -- API call method, options: { filename: String // name of + downloaded file }-created() { this.initCSVExport(fetchMethod, options); @@ -19,19 +20,21 @@
params is usually a filters query params ( default: $route.query);@click="exportCSV(params)"
+
- In data, has isCSVLoading boolean indicator to track loading progress and CSVExport + In data, has isCSVLoading boolean indicator to track loading + progress and CSVExport property to control CSVExport class instance.
- In computed, mixin has CSVDownloadProgress for files fetch - and archive generation and isCSVLoading computed boolean indicator to track loading progress + In computed, mixin has CSVDownloadProgress for files fetch and + archive generation and isCSVLoading computed boolean indicator to + track loading progress
Exporting of selected rows only relies on selectedIds and - isAnySelected computed properties. - By default, they are computed like + isAnySelected computed properties. By default, they are computed + like
selectedIds() { @@ -58,6 +61,4 @@ export default { }; - + diff --git a/docs/pages/webitel-ui/modules/modules-docs.vue b/docs/pages/webitel-ui/modules/modules-docs.vue index 8509b018f..624e591a8 100644 --- a/docs/pages/webitel-ui/modules/modules-docs.vue +++ b/docs/pages/webitel-ui/modules/modules-docs.vue @@ -8,6 +8,4 @@ export default { }; - + diff --git a/docs/pages/webitel-ui/modules/notifications-module/md/notifications.en.md b/docs/pages/webitel-ui/modules/notifications-module/md/notifications.en.md index 084f1e876..c47f034da 100644 --- a/docs/pages/webitel-ui/modules/notifications-module/md/notifications.en.md +++ b/docs/pages/webitel-ui/modules/notifications-module/md/notifications.en.md @@ -1,11 +1,13 @@ # Notifications ## General + Notifications module implements all functionality, related to system notifications: + - Browser notifications API - Sound (ringing call, new chat message, etc) - Counter in tab title -Notifying user about events happening in app. + Notifying user about events happening in app. This module supports sync between tabs. @@ -15,37 +17,33 @@ This module supports sync between tabs. ## Store Action Interface Module provides user with following "public" actions: - - `INITIALIZE: (context)` + +- `INITIALIZE: (context)` Initializes module, subscriptions, broadcastChannel, etc. Should be dispatched before using this module. - - `DESTROY: (context)` +- `DESTROY: (context)` Destroys module and cleans up. Should be called before page unload `window.addEventListener('beforeunload')` in order for module to work correctly. In worst case, if many tabs are open, sound won't migrate from newer, to older one after the newer is closed. - - `PLAY_SOUND: (context, { action, sound })` +- `PLAY_SOUND: (context, { action, sound })` Playing sound: an event could be new chat message, ringing call, етс. `Action`- main -paramether which currently supports: - - `ChatActions.UserInvite` - - `ChatActions.Message` - - `ChatActions.Close` - - `CallActions.Ringing` +paramether which currently supports: - `ChatActions.UserInvite` - `ChatActions.Message` - `ChatActions.Close` - `CallActions.Ringing` with default sounds for each one. You can handle edge cases by passing your custom sound as `sound` param. `sound` could be file, or already `instanceof Audio`. - - `STOP_SOUND: (context)` +- `STOP_SOUND: (context)` Stop currently playing sound. **Attention! Don't stops call!** - - - `SEND_NOTIFICATION: ( +- `SEND_NOTIFICATION: ( context, { locale, @@ -58,6 +56,5 @@ Stop currently playing sound. Sends [Desktop Notification](https://developer.mozilla.org/en-US/docs/Web/API/Notifications_API/Using_the_Notifications_API). interval - interval before notification disappears. - - `INCREMENT_UNREAD_COUNT: (context)` -Increase tab title counter. Counter resets automatically at click on this tab. - +- `INCREMENT_UNREAD_COUNT: (context)` + Increase tab title counter. Counter resets automatically at click on this tab. diff --git a/docs/pages/webitel-ui/modules/notifications-module/md/notifications.ua.md b/docs/pages/webitel-ui/modules/notifications-module/md/notifications.ua.md index b455718d3..b7e1ec4ac 100644 --- a/docs/pages/webitel-ui/modules/notifications-module/md/notifications.ua.md +++ b/docs/pages/webitel-ui/modules/notifications-module/md/notifications.ua.md @@ -1,11 +1,13 @@ # Notifications ## Загальне + Модуль нотифікацій імплементує весь функціонал, пов'язаний з системними: + - Browser notifications API - Sound (ringing call, new chat message, etc) - Counter in tab title -нотифікаціями користувача про події. + нотифікаціями користувача про події. Підтримує синхронізацію роботи в декількох табах одночасно. @@ -15,38 +17,34 @@ ## Store Action Інтерфейс Модуль забезпечує користувача такими Store Actions для користування: - - `INITIALIZE: (context)` + +- `INITIALIZE: (context)` Ініціалізує модуль, підписки, broadcastChannel, etc. Треба викликати перед початком використання. Бажано на ініціалізації всього апплікейшена. - - `DESTROY: (context)` +- `DESTROY: (context)` Видаляє інстанс, робить cleanup. Треба викликати перед виключенням сторінки `window.addEventListener('beforeunload')` щоб все працювало корректно. В противному випадку, якщо відкрито декілька таб, звук не "перейде" з новішої на старішу при закритті нової. - - `PLAY_SOUND: (context, { action, sound })` +- `PLAY_SOUND: (context, { action, sound })` Пілікаємо певний звук: це може бути новий меседж, рінгінг дзвінка, етс. `Action`- основний -параметр наразі підтримує: - - `ChatActions.UserInvite` - - `ChatActions.Message` - - `ChatActions.Close` - - `CallActions.Ringing` +параметр наразі підтримує: - `ChatActions.UserInvite` - `ChatActions.Message` - `ChatActions.Close` - `CallActions.Ringing` із дефолтними для них звуками. Якщо необхідно обробити не зазначений вище кейс, або додати свій звук - можна передати `sound` параметром. `sound` може бути файлом, або `instanceof Audio`. - - `STOP_SOUND: (context)` +- `STOP_SOUND: (context)` Зупинити програвання поточного звуку. **Увага! Не зупиняє дзвінок!** - - - `SEND_NOTIFICATION: ( +- `SEND_NOTIFICATION: ( context, { locale, @@ -59,7 +57,6 @@ Відправити [Desktop Notification](https://developer.mozilla.org/en-US/docs/Web/API/Notifications_API/Using_the_Notifications_API). interval - інтервал перед пропаданням нотифікейшена. - - `INCREMENT_UNREAD_COUNT: (context)` -Збільшити каунтер у tab title. Ресетається каунтер автоматично, при кліку -по цій табі. - +- `INCREMENT_UNREAD_COUNT: (context)` + Збільшити каунтер у tab title. Ресетається каунтер автоматично, при кліку + по цій табі. diff --git a/docs/pages/webitel-ui/modules/notifications-module/notifications-module-docs.vue b/docs/pages/webitel-ui/modules/notifications-module/notifications-module-docs.vue index a5c36db53..fba763aa2 100644 --- a/docs/pages/webitel-ui/modules/notifications-module/notifications-module-docs.vue +++ b/docs/pages/webitel-ui/modules/notifications-module/notifications-module-docs.vue @@ -24,6 +24,4 @@ export default { }; - + diff --git a/docs/pages/webitel-ui/modules/query-filters (old)/Readme.md b/docs/pages/webitel-ui/modules/query-filters (old)/Readme.md index 95a19ca8b..a1bd5087b 100644 --- a/docs/pages/webitel-ui/modules/query-filters (old)/Readme.md +++ b/docs/pages/webitel-ui/modules/query-filters (old)/Readme.md @@ -1,4 +1,5 @@ # Query Filters + Так само відомі як "старі фільтри". ## Як працюють старі фільтри? @@ -38,7 +39,7 @@ set параметрів у store. Вони наслідують міксин р Все це виглядає приблизно так: -*Hint: "Open image in new tab" for better view.* +_Hint: "Open image in new tab" for better view._ ![](assets/old-schema.jpg) diff --git a/docs/pages/webitel-ui/plugins/plugins-docs.vue b/docs/pages/webitel-ui/plugins/plugins-docs.vue index 07f8f1e6d..f0b85cacb 100644 --- a/docs/pages/webitel-ui/plugins/plugins-docs.vue +++ b/docs/pages/webitel-ui/plugins/plugins-docs.vue @@ -8,6 +8,4 @@ export default { }; - + diff --git a/docs/pages/webitel-ui/quick-start/quick-start.vue b/docs/pages/webitel-ui/quick-start/quick-start.vue index 508f88651..3672be2de 100644 --- a/docs/pages/webitel-ui/quick-start/quick-start.vue +++ b/docs/pages/webitel-ui/quick-start/quick-start.vue @@ -43,7 +43,10 @@
Wt-icon installation:
-To use icons you need to install svg-sprite-loader and configure webpack build and import the sprite itself.
++ To use icons you need to install svg-sprite-loader and configure webpack + build and import the sprite itself. +
- Install sprite loader with npm: @@ -75,26 +78,26 @@ diff --git a/docs/pages/webitel-ui/scripts/case-converter-scripts/case-converter-scripts-docs.vue b/docs/pages/webitel-ui/scripts/case-converter-scripts/case-converter-scripts-docs.vue index 5b0df7d0a..79b2147cd 100644 --- a/docs/pages/webitel-ui/scripts/case-converter-scripts/case-converter-scripts-docs.vue +++ b/docs/pages/webitel-ui/scripts/case-converter-scripts/case-converter-scripts-docs.vue @@ -12,7 +12,12 @@
Available converters: -Important: to convert complex structure like Object or Array, use obj- prefixed scripts++ Important: to convert complex structure like Object or Array, use + obj- prefixed scripts +
- snakeToCamel
- kebabToCamel
@@ -26,10 +31,11 @@@@ -47,6 +53,4 @@ export default { }; - + diff --git a/docs/pages/webitel-ui/scripts/caseConverters/Readme.md b/docs/pages/webitel-ui/scripts/caseConverters/Readme.md index fd75b9ac8..9aab99506 100644 --- a/docs/pages/webitel-ui/scripts/caseConverters/Readme.md +++ b/docs/pages/webitel-ui/scripts/caseConverters/Readme.md @@ -3,14 +3,16 @@ Includes: **String (!)** converters: -* `camelToSnake`, -* `camelToKebab`, -* `snakeToCamel`, -* `snakeToKebab`, -* `kebabToCamel`, -* `kebabToSnake`, + +- `camelToSnake`, +- `camelToKebab`, +- `snakeToCamel`, +- `snakeToKebab`, +- `kebabToCamel`, +- `kebabToSnake`, **Object-like structures** converters: -* `objSnakeToCamel`, -* `objCamelToSnake`, -* `objCamelToKebab`, + +- `objSnakeToCamel`, +- `objCamelToSnake`, +- `objCamelToKebab`, diff --git a/docs/pages/webitel-ui/scripts/convert-duration-script/convert-duration-script-docs.vue b/docs/pages/webitel-ui/scripts/convert-duration-script/convert-duration-script-docs.vue index ba22b00b3..56fe904a9 100644 --- a/docs/pages/webitel-ui/scripts/convert-duration-script/convert-duration-script-docs.vue +++ b/docs/pages/webitel-ui/scripts/convert-duration-script/convert-duration-script-docs.vue @@ -3,7 +3,9 @@ Skipped keys
- obj- case converters have 2nd optional param, which accepts array of keys to prevent from - converting like: + obj- case converters have 2nd optional param, which accepts array of + keys to prevent from converting like:
- console.log(objCamelToSnake({ doNotConvertMe: 'helloThere!' }, ['doNotConvertMe'])) + console.log(objCamelToSnake({ doNotConvertMe: 'helloThere!' }, + ['doNotConvertMe']))
convertDuration
import Script from '@webitel/ui-sdk/src/scripts/Script'
- Converts duration from seconds (or null/undefined) to hh:mm:ss value.
++ Converts duration from seconds (or null/undefined) to hh:mm:ss value. +
Params:
- duration: [String, Number, any false value]
@@ -23,6 +25,4 @@ export default { }; - + diff --git a/docs/pages/webitel-ui/scripts/debounce-script/debounce-script-docs.vue b/docs/pages/webitel-ui/scripts/debounce-script/debounce-script-docs.vue index 6c29d41d2..57f1ae6c8 100644 --- a/docs/pages/webitel-ui/scripts/debounce-script/debounce-script-docs.vue +++ b/docs/pages/webitel-ui/scripts/debounce-script/debounce-script-docs.vue @@ -36,6 +36,4 @@ export default { }; - + diff --git a/docs/pages/webitel-ui/scripts/edit-proxy-script/edit-proxy-script-docs.vue b/docs/pages/webitel-ui/scripts/edit-proxy-script/edit-proxy-script-docs.vue index d0d79573c..9d44fcfc1 100644 --- a/docs/pages/webitel-ui/scripts/edit-proxy-script/edit-proxy-script-docs.vue +++ b/docs/pages/webitel-ui/scripts/edit-proxy-script/edit-proxy-script-docs.vue @@ -3,11 +3,14 @@editProxy
- Proxies passed object and after each object property assigning marks this object + Proxies passed object and after each object property assigning marks + this object
- Note: if you want _dirty property to be reactive, it should declared - before this object will be set to store or component data + Note: if you want _dirty property to be reactive, it should declared + before this object will be set to store or component data_dirty
flag totrue
Example usage:
@@ -32,6 +35,4 @@ export default { }; - + diff --git a/docs/pages/webitel-ui/scripts/event-bus-script/event-bus-script-docs.vue b/docs/pages/webitel-ui/scripts/event-bus-script/event-bus-script-docs.vue index eddc1e4be..e770b094e 100644 --- a/docs/pages/webitel-ui/scripts/event-bus-script/event-bus-script-docs.vue +++ b/docs/pages/webitel-ui/scripts/event-bus-script/event-bus-script-docs.vue @@ -18,6 +18,4 @@ export default { }; - + diff --git a/docs/pages/webitel-ui/scripts/is-empty-script/is-empty-script-docs.vue b/docs/pages/webitel-ui/scripts/is-empty-script/is-empty-script-docs.vue index 08309e751..83328f948 100644 --- a/docs/pages/webitel-ui/scripts/is-empty-script/is-empty-script-docs.vue +++ b/docs/pages/webitel-ui/scripts/is-empty-script/is-empty-script-docs.vue @@ -2,7 +2,10 @@@@ -18,6 +21,4 @@ export default { }; - + diff --git a/docs/pages/webitel-ui/scripts/logger/logger.js.md b/docs/pages/webitel-ui/scripts/logger/logger.js.md index 4c05d76cb..28d292854 100644 --- a/docs/pages/webitel-ui/scripts/logger/logger.js.md +++ b/docs/pages/webitel-ui/scripts/logger/logger.js.md @@ -15,7 +15,9 @@ // import { wtlog } from '@webitel/ui-sdk/scripts'; // with metadata -wtlog.warn({ entity: 'component', module: 'wt-notifications-bar' })('Some warning message'); +wtlog.warn({ entity: 'component', module: 'wt-notifications-bar' })( + 'Some warning message', +); // without metadata wtlog.log('Some warning message'); @@ -25,10 +27,10 @@ wtlog.log('Some warning message'); Так само, як і у обʼєкта `console`: -* `.log(...)` -* `.warn(...)` -* `.error(...)` -* `.info(...)` +- `.log(...)` +- `.warn(...)` +- `.error(...)` +- `.info(...)` ### Params @@ -43,11 +45,10 @@ wtlog.log('Some warning message'); > [!WARNING] > В такому разі, логер повертає лог-функцію, а там вже все [те саме](#message). -* `entity` - назва сутності, яка викликала лог (компонент, стор, апі, етс) -* `module` - назва модуля, який викликає лог (наразі, не придумав точного визначення, -тому, на ваш розсуд – але має бути чітко зрозуміло, куди лізти) -* `app` – назва апплікейшена. якщо передана, може переписати дефолтне (задане глобально). - +- `entity` - назва сутності, яка викликала лог (компонент, стор, апі, етс) +- `module` - назва модуля, який викликає лог (наразі, не придумав точного визначення, + тому, на ваш розсуд – але має бути чітко зрозуміло, куди лізти) +- `app` – назва апплікейшена. якщо передана, може переписати дефолтне (задане глобально). ## Installation @@ -74,7 +75,7 @@ window.wtlog = wtlog('appname'); import { _wtUiLog } from '../scripts/logger.js'; // зашитий ui-sdk app namespace // ... -_wtUiLog.warn({ entity: 'component', module: 'wt-notifications-bar' })('Some warning message'); +_wtUiLog.warn({ entity: 'component', module: 'wt-notifications-bar' })( + 'Some warning message', +); ``` - - diff --git a/docs/pages/webitel-ui/scripts/prettify-file-size-script/prettify-file-size-script.vue b/docs/pages/webitel-ui/scripts/prettify-file-size-script/prettify-file-size-script.vue index 02cf0411c..df3789e86 100644 --- a/docs/pages/webitel-ui/scripts/prettify-file-size-script/prettify-file-size-script.vue +++ b/docs/pages/webitel-ui/scripts/prettify-file-size-script/prettify-file-size-script.vue @@ -2,13 +2,15 @@ isEmpty
- Checks if value is "empty". Truthy for empty array, empty object, and falsy primitives, ex. (!!0, !!'')
++ Checks if value is "empty". Truthy for empty array, empty object, and + falsy primitives, ex. (!!0, !!'') +
@@ -33,6 +35,4 @@ export default { }; - + diff --git a/docs/pages/webitel-ui/scripts/prettify-time-script/prettify-time-script-docs.vue b/docs/pages/webitel-ui/scripts/prettify-time-script/prettify-time-script-docs.vue index 8a0aae4ec..b65c3c4f2 100644 --- a/docs/pages/webitel-ui/scripts/prettify-time-script/prettify-time-script-docs.vue +++ b/docs/pages/webitel-ui/scripts/prettify-time-script/prettify-time-script-docs.vue @@ -2,7 +2,10 @@ prettifyFileSize
- prettifies bytes number to string size script:
+prettifies bytes number to string size script:
- Prettified size is: {{ output }}++ Prettified size is: {{ output }} +@@ -18,6 +21,4 @@ export default { }; - + diff --git a/docs/pages/webitel-ui/scripts/prevent-hidden-page-calls-decorator-script/prevent-hidden-page-calls-decorator-script-docs.vue b/docs/pages/webitel-ui/scripts/prevent-hidden-page-calls-decorator-script/prevent-hidden-page-calls-decorator-script-docs.vue index 6457a530a..46528b110 100644 --- a/docs/pages/webitel-ui/scripts/prevent-hidden-page-calls-decorator-script/prevent-hidden-page-calls-decorator-script-docs.vue +++ b/docs/pages/webitel-ui/scripts/prevent-hidden-page-calls-decorator-script/prevent-hidden-page-calls-decorator-script-docs.vue @@ -31,6 +31,4 @@ export default { }; - + diff --git a/docs/pages/webitel-ui/scripts/scripts-docs.vue b/docs/pages/webitel-ui/scripts/scripts-docs.vue index 73f734866..5f766353b 100644 --- a/docs/pages/webitel-ui/scripts/scripts-docs.vue +++ b/docs/pages/webitel-ui/scripts/scripts-docs.vue @@ -8,6 +8,4 @@ export default { }; - + diff --git a/docs/pages/webitel-ui/scripts/sort-query-adapter-scripts/sort-query-adapter-scripts-docs.vue b/docs/pages/webitel-ui/scripts/sort-query-adapter-scripts/sort-query-adapter-scripts-docs.vue index 1668923e4..eeb2c417d 100644 --- a/docs/pages/webitel-ui/scripts/sort-query-adapter-scripts/sort-query-adapter-scripts-docs.vue +++ b/docs/pages/webitel-ui/scripts/sort-query-adapter-scripts/sort-query-adapter-scripts-docs.vue @@ -3,9 +3,9 @@ prettifyTime
- prettifies Date object or timestamp to time in format hh:mm (AM/PM, if locale is US)
++ prettifies Date object or timestamp to time in format hh:mm (AM/PM, if + locale is US) +
sortQueryAdapters
@@ -22,6 +22,4 @@ export default { }; - + diff --git a/docs/pages/webitel-ui/store/_Introduction/Readme.md b/docs/pages/webitel-ui/store/_Introduction/Readme.md index a7498fe83..63c36073d 100644 --- a/docs/pages/webitel-ui/store/_Introduction/Readme.md +++ b/docs/pages/webitel-ui/store/_Introduction/Readme.md @@ -27,7 +27,7 @@ import { createBaseStoreModule, useTableStore } from '@webitel/ui-sdk/store'; ### Також, важливо: -* **State НЕ копіюється**. Відповідно, при кожному створенні кастомного модуля в декількох кейсах треба передавати +- **State НЕ копіюється**. Відповідно, при кожному створенні кастомного модуля в декількох кейсах треба передавати окремий, новий, обʼєкт state в кожен кейс - тому що інакше це буде один обʼєкт між всіма стор модулями, який буде між ними шейритись. @@ -36,8 +36,7 @@ import { createBaseStoreModule, useTableStore } from '@webitel/ui-sdk/store'; має в собі пермішени. Якщо ми передамо один і той же обʼєкт state в кожен модуль, то при зміні стейту в одному модулі, він мінятиметься у інших._ - -* **State мерджиться глибоко**. Тобто, мерджиться навіть глибока вкладеність. АЛЕ! Не мерджаться обʼєкти, які не є +- **State мерджиться глибоко**. Тобто, мерджиться навіть глибока вкладеність. АЛЕ! Не мерджаться обʼєкти, які не є обʼєктами (наприклад, не змерджиться 2 мапи в одну, з ключами з обох мап) @@ -102,25 +101,22 @@ const createCustomStoreModule = (modules) => { На момент написання доки: -* `createBaseStoreModule` - базовий метод для створення стор модуля, який має в собі дефолтні методи для роботи зі +- `createBaseStoreModule` - базовий метод для створення стор модуля, який має в собі дефолтні методи для роботи зі стором. - -* `createTableStoreModule` + `useTableStoreModule` - метод для створення стора для таблиці сутностей, та компоузабл для +- `createTableStoreModule` + `useTableStoreModule` - метод для створення стора для таблиці сутностей, та компоузабл для інтеграції з компонентом. +- `createCardStoreModule` + `useCardStoreModule` - метод для створення стора для карточки сутності, + компоузабл. -* `createCardStoreModule` + `useCardStoreModule` - метод для створення стора для карточки сутності, + компоузабл. - - -* `createApiStoreModule` - метод для створення стора для апі, який вже має в собі методи для роботи з апі. +- `createApiStoreModule` - метод для створення стора для апі, який вже має в собі методи для роботи з апі. ## Коли що використовувати? ### Типовий розділ -* Робите складний розділ з таблицею та карточкою сутності? Вам треба майже все, дивіться +- Робите складний розділ з таблицею та карточкою сутності? Вам треба майже все, дивіться [how to: Integration between store modules](../../../docs/how-to/Integration%20between%20store%20modules/Readme.md). ### Тільки табличка diff --git a/docs/pages/webitel-ui/store/createApiStoreModule/Readme.md b/docs/pages/webitel-ui/store/createApiStoreModule/Readme.md index f9b4b9443..4edecda78 100644 --- a/docs/pages/webitel-ui/store/createApiStoreModule/Readme.md +++ b/docs/pages/webitel-ui/store/createApiStoreModule/Readme.md @@ -56,11 +56,15 @@ Зазвичай апі стор модуль використовується як чайлд іншого модуля зі своїм контекстом, який його викликає. ```js -import { createApiStoreModule, createBaseStoreModule } from '@webitel/ui-sdk/store'; +import { + createApiStoreModule, + createBaseStoreModule, +} from '@webitel/ui-sdk/store'; import smthApi from '../api/smth'; // { getList, get, ... } const actions = { - GET_LIST_OF_SMTH: (context) => context.dispatch('api/GET_LIST', { context, params: { smth: 'smth' } }), + GET_LIST_OF_SMTH: (context) => + context.dispatch('api/GET_LIST', { context, params: { smth: 'smth' } }), }; const apiModule = createApiStoreModule({ @@ -79,4 +83,3 @@ const baseModule = createBaseStoreModule({ export default baseModule; ``` - diff --git a/docs/pages/webitel-ui/store/createCardStoreModule/Readme.md b/docs/pages/webitel-ui/store/createCardStoreModule/Readme.md index 3c8da55f6..acc1a533d 100644 --- a/docs/pages/webitel-ui/store/createCardStoreModule/Readme.md +++ b/docs/pages/webitel-ui/store/createCardStoreModule/Readme.md @@ -53,7 +53,7 @@ i `createApiStoreModule` [дока](../createApiStoreModule/Readme.md). ### Params -* `namespace`: неймспейс сутності. +- `namespace`: неймспейс сутності. _Примітка: якщо неймспейс вже закінчується на `card`, то ще раз `card` дописуватись не буде._ @@ -64,16 +64,16 @@ _Примітка: якщо неймспейс вже закінчується ```javascript const { namespace: cardNamespace, - id, - itemInstance, - - loadItem, - addItem, - updateItem, - setId, - resetState, - setItemProp, - deleteItem, + id, + itemInstance, + + loadItem, + addItem, + updateItem, + setId, + resetState, + setItemProp, + deleteItem, } = useCardStore(namespace); ``` @@ -87,7 +87,10 @@ i [доку](../../../docs/how-to/Integration%20between%20store%20modules/Readme ```javascript // storeModule.js -import { createCardStoreModule, createApiStoreModule } from '@webitel/ui-sdk/store'; +import { + createCardStoreModule, + createApiStoreModule, +} from '@webitel/ui-sdk/store'; // import, setup api module diff --git a/docs/pages/webitel-ui/store/createTableStoreModule/Readme.md b/docs/pages/webitel-ui/store/createTableStoreModule/Readme.md index 29d4dbd19..5fac85ab8 100644 --- a/docs/pages/webitel-ui/store/createTableStoreModule/Readme.md +++ b/docs/pages/webitel-ui/store/createTableStoreModule/Readme.md @@ -4,8 +4,8 @@ This module contains the necessary tools for organizing data in a table view. **It includes:** -* `createTableStoreModule` -* `useTableStore` +- `createTableStoreModule` +- `useTableStore` **For integration with other store modules (like [API](../createApiStoreModule/Readme.md), @@ -23,19 +23,19 @@ Vuex store module which contains all necessary logic for working with tables. It contains all required state to power a table view: -* `dataList` - list of data items from the API -* `headers` - list of table headers -* `selected` - list of selected items from dataList (preserves original items references) -* `error` - error response object if error during dataList fetching was occured -* `isLoading` - boolean flag to indicate `dataList` loading state -* `isNextPage` - boolean flag to indicate if there is more data to load +- `dataList` - list of data items from the API +- `headers` - list of table headers +- `selected` - list of selected items from dataList (preserves original items references) +- `error` - error response object if error during dataList fetching was occured +- `isLoading` - boolean flag to indicate `dataList` loading state +- `isNextPage` - boolean flag to indicate if there is more data to load ### Getters -* `PARENT_ID` - **if table is nested, should be overriden**. -* `REQUIRED_FIELDS` - list of fields, which should always be included in `FIELDS` getter. `['id']` by default -* `FIELDS` - list of fields to get from API, depending on visible `headers` columns and `REQUIRED_FIELDS` -* `GET_LIST_PARAMS`: accepts override object and returns all request filters as params +- `PARENT_ID` - **if table is nested, should be overriden**. +- `REQUIRED_FIELDS` - list of fields, which should always be included in `FIELDS` getter. `['id']` by default +- `FIELDS` - list of fields to get from API, depending on visible `headers` columns and `REQUIRED_FIELDS` +- `GET_LIST_PARAMS`: accepts override object and returns all request filters as params **with overrides priority** ### Actions @@ -50,33 +50,33 @@ See source code ### Receives -* `namespace` - Vuex module namespace, **without `/table` suffix** +- `namespace` - Vuex module namespace, **without `/table` suffix** ### Returns #### Properties -* `tableNamespace` - Vuex table module namespace +- `tableNamespace` - Vuex table module namespace for others, see [store/state](#state) -* `dataList` -* `selected` -* `isLoading` -* `headers` -* `isNext` -* `error` +- `dataList` +- `selected` +- `isLoading` +- `headers` +- `isNext` +- `error` #### Methods see [store/actions](#actions) -* `loadData` -* `onFilterEvent` -* `patchProperty` -* `deleteData` -* `sort` -* `setSelected` +- `loadData` +- `onFilterEvent` +- `patchProperty` +- `deleteData` +- `sort` +- `setSelected` ## Details and design considerations @@ -89,5 +89,3 @@ However, it would be great to have them injected in table store, because they are used together inside one table namespace. So, I've not came up with a better decision than just to left them inside TableStoreModule. - - diff --git a/docs/pages/webitel-ui/store/helpers/get-namespaced-state-docs.vue b/docs/pages/webitel-ui/store/helpers/get-namespaced-state-docs.vue index 9884d264d..80d1b4e8c 100644 --- a/docs/pages/webitel-ui/store/helpers/get-namespaced-state-docs.vue +++ b/docs/pages/webitel-ui/store/helpers/get-namespaced-state-docs.vue @@ -24,6 +24,4 @@ export default { }; - + diff --git a/docs/pages/webitel-ui/store/modules/reactive-now-store-module-docs.vue b/docs/pages/webitel-ui/store/modules/reactive-now-store-module-docs.vue index 497c3e59a..ecc3ad0a8 100644 --- a/docs/pages/webitel-ui/store/modules/reactive-now-store-module-docs.vue +++ b/docs/pages/webitel-ui/store/modules/reactive-now-store-module-docs.vue @@ -2,7 +2,10 @@ - has SortSymbols values enum, - sortToQueryAdapter and queryToSortAdapter to convert '+', '-', and '' - (url and request formal) to 'asc', 'desc', null -- code logic format + has SortSymbols values enum, sortToQueryAdapter and queryToSortAdapter + to convert '+', '-', and '' (url and request formal) to 'asc', 'desc', + null -- code logic format
Reactive Now
- Module provides client with reactive
+now
property fromDate.now()
+ Module provides client with reactive
now
property from +Date.now()
+// store/index.js @@ -48,6 +51,4 @@ onMounted(() => { }); - + diff --git a/docs/pages/webitel-ui/store/store-docs.vue b/docs/pages/webitel-ui/store/store-docs.vue index 39db1f418..176642a59 100644 --- a/docs/pages/webitel-ui/store/store-docs.vue +++ b/docs/pages/webitel-ui/store/store-docs.vue @@ -8,6 +8,4 @@ export default { }; - + diff --git a/docs/pages/webitel-ui/style/border-radius/border-radius.vue b/docs/pages/webitel-ui/style/border-radius/border-radius.vue index d69671a7a..62a7684f7 100644 --- a/docs/pages/webitel-ui/style/border-radius/border-radius.vue +++ b/docs/pages/webitel-ui/style/border-radius/border-radius.vue @@ -5,7 +5,7 @@
@@ -23,11 +23,15 @@ export default { bRadius: [ { name: '--border-radius', - value: getComputedStyle(document.documentElement).getPropertyValue('--border-radius'), + value: getComputedStyle(document.documentElement).getPropertyValue( + '--border-radius', + ), }, { name: '--border-radius--pill', - value: getComputedStyle(document.documentElement).getPropertyValue('--border-radius--pill'), + value: getComputedStyle(document.documentElement).getPropertyValue( + '--border-radius--pill', + ), }, ], }), diff --git a/docs/pages/webitel-ui/style/breakpoints/breakpoints.vue b/docs/pages/webitel-ui/style/breakpoints/breakpoints.vue index 2a52b153f..5c26c69b3 100644 --- a/docs/pages/webitel-ui/style/breakpoints/breakpoints.vue +++ b/docs/pages/webitel-ui/style/breakpoints/breakpoints.vue @@ -8,25 +8,23 @@ href="https://material.io/design/layout/responsive-layout-grid.html#breakpoints" > Material Design docs - (or + + (or Vuetify + >Vuetify simplified docs) -- App has 4 main breakpoints: -
+App has 4 main breakpoints:
-
xs
: 600px (phones)sm
: 992px (tablets)md
: 1264px (tablets -> laptops)lg
: 1904px (laptops -> desktop)- and 5
+@media
queries: -and 5
@media
queries:$media: only screen
@@ -59,6 +57,4 @@ export default { }; - + diff --git a/docs/pages/webitel-ui/style/colors/colors.vue b/docs/pages/webitel-ui/style/colors/colors.vue index 7cebc4c23..1e7158257 100644 --- a/docs/pages/webitel-ui/style/colors/colors.vue +++ b/docs/pages/webitel-ui/style/colors/colors.vue @@ -1,8 +1,6 @@- - Main Colors -
+Main Colors
- {{ w.getComputedStyle(w.document.documentElement).getPropertyValue(item.color) }} + {{ + w + .getComputedStyle(w.document.documentElement) + .getPropertyValue(item.color) + }} @@ -45,12 +47,16 @@ :grid-actions="false" > - {{ w.getComputedStyle(w.document.documentElement).getPropertyValue(item.color) }} + {{ + w + .getComputedStyle(w.document.documentElement) + .getPropertyValue(item.color) + }} @@ -73,42 +79,34 @@ const mainColors = [ title: 'Main colors', colors: [ { - color: '--accent-color', name: 'Accent color', }, { - color: '--main-color', name: 'Main color', }, { - color: '--contrast-color', name: 'Contrast color', }, { - color: '--secondary-color', name: 'Secondary color', }, { - color: '--secondary-color-50', name: 'Secondary color 50', }, { - color: '--page-bg-color', name: 'Page background color', }, { - color: '--header-color', name: 'Header color', }, { - color: '--accent-secondary-color', name: 'Accent secondary color', }, @@ -118,67 +116,54 @@ const mainColors = [ title: 'Semantic colors', colors: [ { - color: '--disabled-color', name: 'Disabled color', }, { - color: '--true-color', name: 'True color', }, { - color: '--true--hover-color', name: 'True hover color', }, { - color: '--false-color', name: 'False color', }, { - color: '--false--hover-color', name: 'False hover color', }, { - color: '--hold-color', name: 'Hold color', }, { - color: '--hold--hover-color', name: 'Hold hover color', }, { - color: '--transfer-color', name: 'Transfer color', }, { - color: '--transfer--hover-color', name: 'Transfer hover color', }, { - color: '--job-color', name: 'Job color', }, { - color: '--job--hover-color', name: 'Job hover color', }, { - color: '--link-color', name: 'Link color', }, { - color: '--link--hover-color', name: 'Link hover color', }, @@ -188,22 +173,18 @@ const mainColors = [ title: 'Icon colors', colors: [ { - color: '--icon-color', name: 'Icon color', }, { - color: '--icon-color-secondary', name: 'Icon secondary color', }, { - color: '--icon-color--hover', name: 'Icon hover color', }, { - color: '--icon-color-disabled', name: 'Icon disabled color', }, @@ -213,47 +194,38 @@ const mainColors = [ title: 'Form colors', colors: [ { - color: '--form-input-color', name: 'User input color', }, { - color: '--form-label-color', name: 'Form label color', }, { - color: '--form-label--hover-color', name: 'Form label hover color', }, { - color: '--form-label--active-color', name: 'Form label active color', }, { - color: '--form-label--disabled-color', name: 'Form label disabled color', }, { - color: '--form-border-color', name: 'Form border color', }, { - color: '--form-border--hover-color', name: 'Form border hover color', }, { - color: '--form-border--disabled-color', name: 'Form border disabled color', }, { - color: '--form-placeholder-color', name: 'Form placeholder color', }, @@ -263,17 +235,14 @@ const mainColors = [ title: 'Outline colors', colors: [ { - color: '--form-outline-label-color', name: 'Form outline label color', }, { - color: '--form-outline-border-color', name: 'Form outline border color', }, { - color: '--form-outline-border--hover-color', name: 'Form outline border hover color', }, @@ -283,22 +252,18 @@ const mainColors = [ title: 'Text colors', colors: [ { - color: '--text-primary-color', name: 'Text primary color', }, { - color: '--text-outline-color', name: 'Text outline color', }, { - color: '--text-contrast-color', name: 'Text contrast color', }, { - color: '--text--disabled-color', name: 'Text disabled color', }, @@ -308,22 +273,18 @@ const mainColors = [ title: 'Chat colors', colors: [ { - color: '--chat-client-message-bg-color', name: 'Client message background', }, { - color: '--chat-agent-message-bg-color', name: 'Client message background', }, { - color: '--chat-client-attachment-bg-color', name: 'Agent message attachment background', }, { - color: '--chat-agent-attachment-bg-color', name: 'Agent message attachment background', }, @@ -353,8 +314,13 @@ const paletteRed = { const changeColor = (input, replacements) => { const capitalize = (str) => str.charAt(0).toUpperCase() + str.slice(1); let result = JSON.stringify(input); - replacements.forEach(({ from, to }) => result = result.replaceAll(from, to)); - replacements.forEach(({ from, to }) => result = result.replaceAll(capitalize(from), capitalize(to))); + replacements.forEach( + ({ from, to }) => (result = result.replaceAll(from, to)), + ); + replacements.forEach( + ({ from, to }) => + (result = result.replaceAll(capitalize(from), capitalize(to))), + ); return JSON.parse(result); }; @@ -394,7 +360,8 @@ const palette = [ + diff --git a/docs/pages/webitel-ui/style/elevations/elevations.vue b/docs/pages/webitel-ui/style/elevations/elevations.vue index 8e6faa09a..a6b129b89 100644 --- a/docs/pages/webitel-ui/style/elevations/elevations.vue +++ b/docs/pages/webitel-ui/style/elevations/elevations.vue @@ -5,7 +5,7 @@ @@ -21,12 +21,11 @@ export default { name: 'Elevations', data: () => ({ - elevations: [...Array(10).keys()] - .map((i) => ({ - name: `Elevation ${i + 1}`, - code: `--elevation-${i + 1}`, - description: '', - })), + elevations: [...Array(10).keys()].map((i) => ({ + name: `Elevation ${i + 1}`, + code: `--elevation-${i + 1}`, + description: '', + })), }), }; diff --git a/docs/pages/webitel-ui/style/spacings/md/general/general.en.md b/docs/pages/webitel-ui/style/spacings/md/general/general.en.md index 69c4ab631..d9ed5b8d7 100644 --- a/docs/pages/webitel-ui/style/spacings/md/general/general.en.md +++ b/docs/pages/webitel-ui/style/spacings/md/general/general.en.md @@ -3,6 +3,5 @@ Webitel styleguide spacing system is based on the size Multiplier. All size variables are made by multiplying this Multiplier. -This Multiplier isvar(--_spacing-multiplicator)
(*Not for use!*), +This Multiplier isvar(--\_spacing-multiplicator)
(_Not for use!_), which is equal to8px
- diff --git a/docs/pages/webitel-ui/style/spacings/md/general/general.ua.md b/docs/pages/webitel-ui/style/spacings/md/general/general.ua.md index 28a70b4f3..738fac7cb 100644 --- a/docs/pages/webitel-ui/style/spacings/md/general/general.ua.md +++ b/docs/pages/webitel-ui/style/spacings/md/general/general.ua.md @@ -3,7 +3,6 @@ Система відступів у стайлгайді Webitel базується на певному мультиплікаторі розміру, множеннями якого далі створюються змінні відступів необхідних розмірів. -Цим мультиплкатором єvar(--_spacing-multiplicator)
(Не для використання), +Цим мультиплкатором єvar(--\_spacing-multiplicator)
(Не для використання), який дорівнює8px
Далі, від цього мультиплікатора створюються змінні, які ми і використовуємо: - diff --git a/docs/pages/webitel-ui/style/spacings/md/general/index.js b/docs/pages/webitel-ui/style/spacings/md/general/index.js index 82a986d33..982f98519 100644 --- a/docs/pages/webitel-ui/style/spacings/md/general/index.js +++ b/docs/pages/webitel-ui/style/spacings/md/general/index.js @@ -2,5 +2,8 @@ import ua from './general.ua.md'; import en from './general.en.md'; export default { - ru: ua, en, ua, default: en, + ru: ua, + en, + ua, + default: en, }; diff --git a/docs/pages/webitel-ui/style/spacings/md/layouts/index.js b/docs/pages/webitel-ui/style/spacings/md/layouts/index.js index 0ccaca805..49e1756a9 100644 --- a/docs/pages/webitel-ui/style/spacings/md/layouts/index.js +++ b/docs/pages/webitel-ui/style/spacings/md/layouts/index.js @@ -2,5 +2,8 @@ import ua from './layouts.ua.md'; import en from './layouts.en.md'; export default { - ru: ua, en, ua, default: en, + ru: ua, + en, + ua, + default: en, }; diff --git a/docs/pages/webitel-ui/style/spacings/md/layouts/layouts.en.md b/docs/pages/webitel-ui/style/spacings/md/layouts/layouts.en.md index 56a29ffda..49e15d819 100644 --- a/docs/pages/webitel-ui/style/spacings/md/layouts/layouts.en.md +++ b/docs/pages/webitel-ui/style/spacings/md/layouts/layouts.en.md @@ -5,5 +5,3 @@ In Figma layouts, page spacings are represented on special type of layout: So that, each spacing variable has its visual color: ![Spacing colors](../../assets/spacing-colors.png) - - diff --git a/docs/pages/webitel-ui/style/spacings/md/layouts/layouts.ua.md b/docs/pages/webitel-ui/style/spacings/md/layouts/layouts.ua.md index ef9795378..925b49c93 100644 --- a/docs/pages/webitel-ui/style/spacings/md/layouts/layouts.ua.md +++ b/docs/pages/webitel-ui/style/spacings/md/layouts/layouts.ua.md @@ -5,5 +5,3 @@ А, кожен спейсинг має свій відповідний, умовний колір: ![Spacing colors](../../assets/spacing-colors.png) - - diff --git a/docs/pages/webitel-ui/style/spacings/spacings.vue b/docs/pages/webitel-ui/style/spacings/spacings.vue index ec1d03ef6..78f436974 100644 --- a/docs/pages/webitel-ui/style/spacings/spacings.vue +++ b/docs/pages/webitel-ui/style/spacings/spacings.vue @@ -11,14 +11,10 @@ v-for="({ name, value }, key) of spacings" :key="key" class="spacing-example" - :class="[ - `spacing-example--${name}`, - ]" + :class="[`spacing-example--${name}`]" :style="`padding: ${value}`" > -- {{ name }}: {{ value }} -+{{ name }}: {{ value }}({ + return ['3xs', '2xs', 'xs', 'sm', 'md', 'lg', 'xl', '2xl', '3xl'].map( + (name) => ({ name, - value: getComputedStyle(document.documentElement).getPropertyValue(`--spacing-${name}`), - })); + value: getComputedStyle(document.documentElement).getPropertyValue( + `--spacing-${name}`, + ), + }), + ); }, generalMd() { return generalMd[this.$i18n.locale] || generalMd.default; diff --git a/docs/pages/webitel-ui/style/style-docs.vue b/docs/pages/webitel-ui/style/style-docs.vue index 963fae153..575ace04f 100644 --- a/docs/pages/webitel-ui/style/style-docs.vue +++ b/docs/pages/webitel-ui/style/style-docs.vue @@ -8,6 +8,4 @@ export default { }; - + diff --git a/docs/pages/webitel-ui/style/typography/typography.vue b/docs/pages/webitel-ui/style/typography/typography.vue index 453ed751b..93c774c85 100644 --- a/docs/pages/webitel-ui/style/typography/typography.vue +++ b/docs/pages/webitel-ui/style/typography/typography.vue @@ -2,30 +2,24 @@ Typography
- - Heading: -
+Heading:
-- Heading-1: -
+Heading-1:
Usage:
-.heading { @extend %typo-heading-1; }
+.heading { @extend %typo-heading-1; }
-- Heading-2: -
+Heading-2:
Usage:
.heading { @extend %typo-heading-2; }
-- Heading-3: -
+Heading-3:
Usage:
.heading { @extend %typo-heading-3; } @@ -35,9 +29,7 @@
- - Subtitle: -
+Subtitle:
@@ -59,54 +51,34 @@- - Body: -
+Body:
-- Body-1: --- .body { @extend %typo-body-1; } -
+Body-1:+.body { @extend %typo-body-1; }
-- Body-2: --- .body { @extend %typo-body-2; } -
+Body-2:+.body { @extend %typo-body-2; }
- - Button: -
+Button:
--- .btn { @extend %typo-button; } -
+ +.btn { @extend %typo-button; }
- - Caption: -
+Caption:
-+.caption { @extend %typo-caption; }
@@ -115,14 +87,10 @@- - Overline: -
+Overline:
-@@ -123,6 +130,7 @@ // based on https://vuetifyjs.com/en/components/empty-states/ import { computed, useSlots } from 'vue'; + import ComponentSize from '../../enums/ComponentSize/ComponentSize.enum.js'; import { greaterOrEqual, smallerOrEqual } from '../../scripts/compareSize.ts'; import WtImage from '../wt-image/wt-image.vue'; @@ -137,7 +145,8 @@ const props = defineProps({ size: { type: String, default: ComponentSize.MD, - validator: (v) => [ComponentSize.SM, ComponentSize.MD, ComponentSize.LG].includes(v), + validator: (v) => + [ComponentSize.SM, ComponentSize.MD, ComponentSize.LG].includes(v), }, /** * shown only if prop or slot is provided @@ -238,11 +247,11 @@ const onSecondaryClick = onClick('secondary'); + diff --git a/src/components/wt-icon-action/wt-icon-action.vue b/src/components/wt-icon-action/wt-icon-action.vue index b98af2506..ccf9ebd91 100644 --- a/src/components/wt-icon-action/wt-icon-action.vue +++ b/src/components/wt-icon-action/wt-icon-action.vue @@ -24,14 +24,15 @@ const props = defineProps({ action: { type: String, required: true, - validator: (v) => Object.values([ - IconAction.DELETE, - IconAction.EDIT, - IconAction.ADD, - IconAction.HISTORY, - IconAction.DOWNLOAD, - IconAction.REFRESH, - ]).includes(v), + validator: (v) => + Object.values([ + IconAction.DELETE, + IconAction.EDIT, + IconAction.ADD, + IconAction.HISTORY, + IconAction.DOWNLOAD, + IconAction.REFRESH, + ]).includes(v), }, disabled: { type: Boolean, @@ -47,7 +48,9 @@ const iconAction = computed(() => { const data = IActionData[props.action]; if (!data) { - console.error(`Unknown action for wt-icon-action component: ${props.action}`); + console.error( + `Unknown action for wt-icon-action component: ${props.action}`, + ); return { icon: 'edit', hint: props.action }; } @@ -55,6 +58,4 @@ const iconAction = computed(() => { }); - + diff --git a/src/components/wt-icon-btn/_variables.scss b/src/components/wt-icon-btn/_variables.scss index d42fc254a..93f3522d9 100644 --- a/src/components/wt-icon-btn/_variables.scss +++ b/src/components/wt-icon-btn/_variables.scss @@ -1,4 +1,3 @@ - :root { --icon-btn-hover-color: var(--grey-darken-5); } @@ -6,4 +5,3 @@ :root.theme--dark { --icon-btn-hover-color: var(--grey-lighten-5); } - diff --git a/src/components/wt-icon-btn/wt-icon-btn.vue b/src/components/wt-icon-btn/wt-icon-btn.vue index f8b55ce79..314846968 100644 --- a/src/components/wt-icon-btn/wt-icon-btn.vue +++ b/src/components/wt-icon-btn/wt-icon-btn.vue @@ -17,20 +17,18 @@ - + diff --git a/src/components/wt-logo/wt-logo.vue b/src/components/wt-logo/wt-logo.vue index fd85167f9..f6a7cd924 100644 --- a/src/components/wt-logo/wt-logo.vue +++ b/src/components/wt-logo/wt-logo.vue @@ -15,11 +15,11 @@ const props = defineProps({ :src="darkMode ? LogoDark : LogoLight" alt="Webitel" class="wt-logo" - > + /> diff --git a/src/components/wt-pagination/_variables.scss b/src/components/wt-pagination/_variables.scss index 7566d7d43..3b4e1255b 100644 --- a/src/components/wt-pagination/_variables.scss +++ b/src/components/wt-pagination/_variables.scss @@ -1,5 +1,4 @@ - :root { --pagination-gap: var(--spacing-xs); --pagination-size-input-width: 70px; -} \ No newline at end of file +} diff --git a/src/components/wt-pagination/wt-pagination.vue b/src/components/wt-pagination/wt-pagination.vue index a261eb9c1..34ad95e0e 100644 --- a/src/components/wt-pagination/wt-pagination.vue +++ b/src/components/wt-pagination/wt-pagination.vue @@ -83,7 +83,8 @@ export default { }, created() { - if (this.debounce) this.changeSize = debounce(this.changeSize, this.debounceDelay); + if (this.debounce) + this.changeSize = debounce(this.changeSize, this.debounceDelay); }, methods: { @@ -106,11 +107,11 @@ export default { diff --git a/src/components/wt-popup/_variables.scss b/src/components/wt-popup/_variables.scss index 6a67804db..94238f386 100644 --- a/src/components/wt-popup/_variables.scss +++ b/src/components/wt-popup/_variables.scss @@ -1,4 +1,3 @@ - :root { --popup-wrapper-z-index: 11; diff --git a/src/components/wt-popup/wt-popup.vue b/src/components/wt-popup/wt-popup.vue index 2845020cb..89a15176b 100644 --- a/src/components/wt-popup/wt-popup.vue +++ b/src/components/wt-popup/wt-popup.vue @@ -1,15 +1,10 @@- Overline: -+Overline:.overline { @extend %typo-overline; }
diff --git a/docs/pages/webitel-ui/tests/axios-mock/Readme.md b/docs/pages/webitel-ui/tests/axios-mock/Readme.md index 500ebe6b5..5ffcfe9a5 100644 --- a/docs/pages/webitel-ui/tests/axios-mock/Readme.md +++ b/docs/pages/webitel-ui/tests/axios-mock/Readme.md @@ -32,6 +32,7 @@ const mock = axiosMock({ ## vi.mock vs vi.doMock? ### tldr; + `.mock` is hoisted, so it won't access any other variables, `.doMock` is not hoisted, so it will access other variables. diff --git a/docs/pages/webitel-ui/validators/variableSearchValidator/Readme.md b/docs/pages/webitel-ui/validators/variableSearchValidator/Readme.md index feaa5b9f5..d60679bf8 100644 --- a/docs/pages/webitel-ui/validators/variableSearchValidator/Readme.md +++ b/docs/pages/webitel-ui/validators/variableSearchValidator/Readme.md @@ -1,4 +1,5 @@ Validator for variable search string + ```js import variableSearchValidator from '@webitel/ui-sdk/src/validators/variableSearchValidator/variableSearchValidator'; diff --git a/docs/pages/webitel-ui/validators/websocketValidator/Readme.md b/docs/pages/webitel-ui/validators/websocketValidator/Readme.md index 6c3059ea5..631ecbce2 100644 --- a/docs/pages/webitel-ui/validators/websocketValidator/Readme.md +++ b/docs/pages/webitel-ui/validators/websocketValidator/Readme.md @@ -1,7 +1,8 @@ Validator for WebSocket URL string + ```javascript import websocketValidator from '@webitel/ui-sdk/src/validators/websocketValidator/websocketValidator'; -websocketValidator('wss://example.com') // true -websocketValidator('krokoziabra') // false +websocketValidator('wss://example.com'); // true +websocketValidator('krokoziabra'); // false ``` diff --git a/docs/postcss.config.mjs b/docs/postcss.config.mjs index ae2f7a924..847a8c05c 100644 --- a/docs/postcss.config.mjs +++ b/docs/postcss.config.mjs @@ -4,9 +4,9 @@ export default { prefix: ':not(:where(.vp-raw *))', includeFiles: [/vp-doc\.css/], transform(prefix, _selector) { - const [selector, pseudo = ''] = _selector.split(/(:\S*)$/) - return selector + prefix + pseudo - } - } - } + const [selector, pseudo = ''] = _selector.split(/(:\S*)$/); + return selector + prefix + pseudo; + }, + }, + }, }; diff --git a/docs/shared/component-events.vue b/docs/shared/component-events.vue index 7e422cc86..85f8cea15 100644 --- a/docs/shared/component-events.vue +++ b/docs/shared/component-events.vue @@ -1,7 +1,7 @@- + diff --git a/docs/shared/component-model.vue b/docs/shared/component-model.vue index f2926a443..4c1c5c95a 100644 --- a/docs/shared/component-model.vue +++ b/docs/shared/component-model.vue @@ -1,26 +1,29 @@ - Events:
+Events:
- + diff --git a/docs/shared/component-info.vue b/docs/shared/component-info.vue index 929159859..0ba88ffe5 100644 --- a/docs/shared/component-info.vue +++ b/docs/shared/component-info.vue @@ -36,53 +36,81 @@ const calcDefaultValue = (defaultValue) => { }; const result = computed(() => { - const propsTable = !!props.info?.props && markdownTable([ - ['Name', 'Required', 'Types', 'Default', 'Description', 'Example', 'Deprecated'], - ...props.info.props.map(({ - name, type, required, defaultValue, description, tags, - }) => { - const _name = `\`${name}\``; - const _type = `\`${type.name.split('|')}\``; - - const _defaultValue = calcDefaultValue(defaultValue); - - const example = tags?.example && tags.example.map(({ description }) => `\`\`\`${description} \`\`\``); - - const deprecated = !!tags?.deprecated ? '❗️' : ''; - - const _required = required ? '✅' : ''; - - return [_name, _required, _type, _defaultValue, description, example, deprecated]; - }), - ]); - - const eventsTable = !!props.info?.events && markdownTable([ - ['Name', 'Params', 'Description'], - ...props.info.events.map(({ name, params, description }) => { - const _name = `\`${name}\``; - return [_name, params, description]; - }), - ]); - - const slotsTable = !!props.info?.slots && markdownTable([ - ['Name', 'Scope', 'Description'], - ...props.info.slots.map(({ name, tags, scoped, description }) => { - const _name = `\`${name}\``; - - const scope = tags?.scope?.reduce((md, { description }) => { - return `${md} ${description}`; - }, ''); - return [_name, scope, description]; - }), - ]); + const propsTable = + !!props.info?.props && + markdownTable([ + [ + 'Name', + 'Required', + 'Types', + 'Default', + 'Description', + 'Example', + 'Deprecated', + ], + ...props.info.props.map( + ({ name, type, required, defaultValue, description, tags }) => { + const _name = `\`${name}\``; + const _type = `\`${type.name.split('|')}\``; + + const _defaultValue = calcDefaultValue(defaultValue); + + const example = + tags?.example && + tags.example.map( + ({ description }) => `\`\`\`${description} \`\`\``, + ); + + const deprecated = !!tags?.deprecated ? '❗️' : ''; + + const _required = required ? '✅' : ''; + + return [ + _name, + _required, + _type, + _defaultValue, + description, + example, + deprecated, + ]; + }, + ), + ]); + + const eventsTable = + !!props.info?.events && + markdownTable([ + ['Name', 'Params', 'Description'], + ...props.info.events.map(({ name, params, description }) => { + const _name = `\`${name}\``; + return [_name, params, description]; + }), + ]); + + const slotsTable = + !!props.info?.slots && + markdownTable([ + ['Name', 'Scope', 'Description'], + ...props.info.slots.map(({ name, tags, scoped, description }) => { + const _name = `\`${name}\``; + + const scope = tags?.scope?.reduce((md, { description }) => { + return `${md} ${description}`; + }, ''); + return [_name, scope, description]; + }), + ]); const mdResult = [ { heading: 'Props', data: propsTable }, { heading: 'Events', data: eventsTable }, { heading: 'Slots', data: slotsTable }, - ].filter(({ data: v }) => !!v).reduce((md, { heading, data }) => { - return `${md} ### ${heading} \n\n${data} \n\n`; - }, ''); + ] + .filter(({ data: v }) => !!v) + .reduce((md, { heading, data }) => { + return `${md} ### ${heading} \n\n${data} \n\n`; + }, ''); return md.render(mdResult); }); @@ -92,6 +120,4 @@ const result = computed(() => { - + diff --git a/docs/shared/component-props.vue b/docs/shared/component-props.vue index a6a878c1f..95aae2627 100644 --- a/docs/shared/component-props.vue +++ b/docs/shared/component-props.vue @@ -1,7 +1,7 @@ v-model:
-Prop: {{ prop }}-Event: {{ event }}++ Prop: {{ prop }} +++ Event: {{ event }} +- Props:
+Props:
import MdComponent from './md-component.vue'; - export default { - name: 'ComponentProps', - components: { MdComponent }, - props: { - properties: { - type: Array, - default: () => [], - }, +export default { + name: 'ComponentProps', + components: { MdComponent }, + props: { + properties: { + type: Array, + default: () => [], }, - computed: { - headers() { - return [ - { value: 'value', text: 'Name', width: '200px' }, - { value: 'required', text: 'Required', width: '70px' }, - { value: 'type', text: 'Type', width: '220px' }, - { value: 'default', text: 'Default', width: '160px' }, - { value: 'code', text: 'Example code' }, - { value: 'description', text: 'Description' }, - ]; - }, + }, + computed: { + headers() { + return [ + { value: 'value', text: 'Name', width: '200px' }, + { value: 'required', text: 'Required', width: '70px' }, + { value: 'type', text: 'Type', width: '220px' }, + { value: 'default', text: 'Default', width: '160px' }, + { value: 'code', text: 'Example code' }, + { value: 'description', text: 'Description' }, + ]; }, - }; + }, +}; - + diff --git a/docs/shared/component-slots.vue b/docs/shared/component-slots.vue index 9b5b2d4f7..d59a3bb75 100644 --- a/docs/shared/component-slots.vue +++ b/docs/shared/component-slots.vue @@ -1,7 +1,7 @@ - Slots:
+Slots:
- + diff --git a/eslint.config.js b/eslint.config.js new file mode 100644 index 000000000..8c3641c2a --- /dev/null +++ b/eslint.config.js @@ -0,0 +1,64 @@ +import eslint from '@eslint/js'; +import eslintConfigPrettier from 'eslint-config-prettier'; +import simpleImportSort from 'eslint-plugin-simple-import-sort'; +import eslintPluginVue from 'eslint-plugin-vue'; +import globals from 'globals'; +import typescriptEslint from 'typescript-eslint'; + +export default typescriptEslint.config( + { ignores: ['*.d.ts', '**/coverage', '**/dist'] }, + { + extends: [ + eslint.configs.recommended, + ...typescriptEslint.configs.recommended, + ...eslintPluginVue.configs['flat/recommended'], + ], + plugins: { + 'simple-import-sort': simpleImportSort, + }, + files: ['**/*.{ts,js,vue}'], + languageOptions: { + ecmaVersion: 'latest', + sourceType: 'module', + globals: globals.browser, + parserOptions: { + parser: typescriptEslint.parser, + }, + }, + rules: { + 'no-console': ['error', { allow: ['warn', 'error'] }], + 'vue/html-self-closing': [ + 'error', + { + html: { + void: 'always', // Enforce self-closing on void elements + normal: 'never', // Do not enforce self-closing on normal elements + component: 'always', // Enforce self-closing on custom components + }, + svg: 'always', // Enforce self-closing on SVG elements + math: 'always', // Enforce self-closing on MathML elements + }, + ], + 'vue/no-template-shadow': 'error', + 'vue/no-lone-template': 'error', + 'vue/prefer-use-template-ref': 'error', + 'vue/component-name-in-template-casing': [ + 'error', + 'kebab-case', + { + registeredComponentsOnly: true, + ignores: [], + }, + ], + '@typescript-eslint/no-unused-vars': [ + 'error', + { + varsIgnorePattern: '^_', // Ignore unused variables starting with an underscore + }, + ], + 'simple-import-sort/imports': 'error', + 'simple-import-sort/exports': 'error', + }, + }, + eslintConfigPrettier, +); diff --git a/index.html b/index.html index 91f589585..649ace00d 100644 --- a/index.html +++ b/index.html @@ -1,17 +1,32 @@ - + - - - - - - ui sdk - - - - - - + + + + + +ui sdk + + + + + + diff --git a/package-lock.json b/package-lock.json index 4f26a0f10..e893ec1e1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@webitel/ui-sdk", - "version": "24.12.29", + "version": "24.12.39", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@webitel/ui-sdk", - "version": "24.12.29", + "version": "24.12.39", "dependencies": { "@floating-ui/vue": "^1.1.5", "@morev/vue-transitions": "^3.0.5", @@ -14,6 +14,7 @@ "@vuelidate/validators": "^2.0.4", "@vuepic/vue-datepicker": "^4.5.1", "@vueuse/components": "^11.2.0", + "@webitel/styleguide": "^24.12.18", "autosize": "^6.0.1", "axios": "^1.7.7", "clipboard-copy": "^4.0.1", @@ -40,7 +41,7 @@ "xlsx": "^0.18.5" }, "devDependencies": { - "@biomejs/biome": "1.9.4", + "@eslint/js": "^9.17.0", "@tsconfig/node22": "^22.0.0", "@types/node": "^22.9.1", "@vitejs/plugin-vue": "^5.2.0", @@ -49,6 +50,11 @@ "@vue/compiler-sfc": "^3.5.13", "@vue/test-utils": "^2.4.6", "@vue/tsconfig": "^0.6.0", + "eslint": "^9.17.0", + "eslint-config-prettier": "^9.1.0", + "eslint-plugin-simple-import-sort": "^12.1.1", + "eslint-plugin-vue": "^9.32.0", + "globals": "^15.14.0", "globby": "^14.0.2", "happy-dom": "^15.11.6", "markdown-it": "^14.1.0", @@ -56,9 +62,11 @@ "path": "^0.12.7", "postcss": "^8.4.49", "postcss-prefix-selector": "^2.1.0", + "prettier": "^3.4.2", "prismjs": "^1.29.0", "sass": "^1.81.0", "typescript": "5.6.3", + "typescript-eslint": "^8.18.1", "typescript-plugin-css-modules": "^5.1.0", "vite": "^5.4.11", "vite-plugin-checker": "^0.8.0", @@ -604,6 +612,15 @@ "node": ">=6.9.0" } }, + "node_modules/@babel/traverse/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, "node_modules/@babel/types": { "version": "7.26.0", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.0.tgz", @@ -631,6 +648,8 @@ "dev": true, "hasInstallScript": true, "license": "MIT OR Apache-2.0", + "optional": true, + "peer": true, "bin": { "biome": "bin/biome" }, @@ -665,6 +684,7 @@ "os": [ "darwin" ], + "peer": true, "engines": { "node": ">=14.21.3" } @@ -682,6 +702,7 @@ "os": [ "darwin" ], + "peer": true, "engines": { "node": ">=14.21.3" } @@ -699,6 +720,7 @@ "os": [ "linux" ], + "peer": true, "engines": { "node": ">=14.21.3" } @@ -716,6 +738,7 @@ "os": [ "linux" ], + "peer": true, "engines": { "node": ">=14.21.3" } @@ -733,6 +756,7 @@ "os": [ "linux" ], + "peer": true, "engines": { "node": ">=14.21.3" } @@ -750,6 +774,7 @@ "os": [ "linux" ], + "peer": true, "engines": { "node": ">=14.21.3" } @@ -767,6 +792,7 @@ "os": [ "win32" ], + "peer": true, "engines": { "node": ">=14.21.3" } @@ -784,6 +810,7 @@ "os": [ "win32" ], + "peer": true, "engines": { "node": ">=14.21.3" } @@ -1230,6 +1257,217 @@ "node": ">=12" } }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz", + "integrity": "sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", + "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/config-array": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.19.1.tgz", + "integrity": "sha512-fo6Mtm5mWyKjA/Chy1BYTdn5mGJoDNjC7C64ug20ADsRDGrA85bN3uK3MaKbeRkRuuIEAR5N33Jr1pbm411/PA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/object-schema": "^2.1.5", + "debug": "^4.3.1", + "minimatch": "^3.1.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/config-array/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@eslint/config-array/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@eslint/core": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.9.1.tgz", + "integrity": "sha512-GuUdqkyyzQI5RMIWkHhvTWLCyLo1jNK3vzkSyaExH5kHPDHcuL2VOpHjmMY+y3+NC69qAKToBqldTBgYeLSr9Q==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.2.0.tgz", + "integrity": "sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^10.0.1", + "globals": "^14.0.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/eslintrc/node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/@eslint/eslintrc/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@eslint/eslintrc/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@eslint/js": { + "version": "9.17.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.17.0.tgz", + "integrity": "sha512-Sxc4hqcs1kTu0iID3kcZDW3JHq2a77HO9P8CP6YEA/FpH3Ll8UXE2r/86Rz9YJLKme39S9vU5OWNjC6Xl0Cr3w==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/object-schema": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.5.tgz", + "integrity": "sha512-o0bhxnL89h5Bae5T318nFoFzGy+YE5i/gGkoPAgkmTVdRKTiv3p8JHevPiPaMwoloKfEiiaHlawCqaZMqRm+XQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/plugin-kit": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.4.tgz", + "integrity": "sha512-zSkKow6H5Kdm0ZUQUB2kV5JIXqoG0+uH5YADhaEHswm664N9Db8dXSi0nMJpacpMf+MyyglF1vnZohpEg5yUtg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "levn": "^0.4.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, "node_modules/@floating-ui/core": { "version": "1.6.8", "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.8.tgz", @@ -1292,6 +1530,72 @@ } } }, + "node_modules/@humanfs/core": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", + "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node": { + "version": "0.16.6", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz", + "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanfs/core": "^0.19.1", + "@humanwhocodes/retry": "^0.3.0" + }, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", + "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/retry": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.1.tgz", + "integrity": "sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, "node_modules/@iconify-json/simple-icons": { "version": "1.2.12", "resolved": "https://registry.npmjs.org/@iconify-json/simple-icons/-/simple-icons-1.2.12.tgz", @@ -2308,6 +2612,13 @@ "@types/unist": "*" } }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/linkify-it": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-5.0.0.tgz", @@ -2375,27 +2686,233 @@ "dev": true, "license": "MIT", "dependencies": { - "postcss": "^8.0.0" + "postcss": "^8.0.0" + } + }, + "node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "license": "MIT" + }, + "node_modules/@types/web-bluetooth": { + "version": "0.0.20", + "resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.20.tgz", + "integrity": "sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==", + "license": "MIT" + }, + "node_modules/@types/webrtc": { + "version": "0.0.44", + "resolved": "https://registry.npmjs.org/@types/webrtc/-/webrtc-0.0.44.tgz", + "integrity": "sha512-4BJZdzrApNFeuXgucyqs24k69f7oti3wUcGEbFbaV08QBh7yEe3tnRRuYXlyXJNXiumpZujiZqUZZ2/gMSeO0g==", + "license": "MIT" + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "8.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.19.0.tgz", + "integrity": "sha512-NggSaEZCdSrFddbctrVjkVZvFC6KGfKfNK0CU7mNK/iKHGKbzT4Wmgm08dKpcZECBu9f5FypndoMyRHkdqfT1Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "8.19.0", + "@typescript-eslint/type-utils": "8.19.0", + "@typescript-eslint/utils": "8.19.0", + "@typescript-eslint/visitor-keys": "8.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.3.1", + "natural-compare": "^1.4.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "8.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.19.0.tgz", + "integrity": "sha512-6M8taKyOETY1TKHp0x8ndycipTVgmp4xtg5QpEZzXxDhNvvHOJi5rLRkLr8SK3jTgD5l4fTlvBiRdfsuWydxBw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/scope-manager": "8.19.0", + "@typescript-eslint/types": "8.19.0", + "@typescript-eslint/typescript-estree": "8.19.0", + "@typescript-eslint/visitor-keys": "8.19.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "8.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.19.0.tgz", + "integrity": "sha512-hkoJiKQS3GQ13TSMEiuNmSCvhz7ujyqD1x3ShbaETATHrck+9RaDdUbt+osXaUuns9OFwrDTTrjtwsU8gJyyRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.19.0", + "@typescript-eslint/visitor-keys": "8.19.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "8.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.19.0.tgz", + "integrity": "sha512-TZs0I0OSbd5Aza4qAMpp1cdCYVnER94IziudE3JU328YUHgWu9gwiwhag+fuLeJ2LkWLXI+F/182TbG+JaBdTg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/typescript-estree": "8.19.0", + "@typescript-eslint/utils": "8.19.0", + "debug": "^4.3.4", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" + } + }, + "node_modules/@typescript-eslint/types": { + "version": "8.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.19.0.tgz", + "integrity": "sha512-8XQ4Ss7G9WX8oaYvD4OOLCjIQYgRQxO+qCiR2V2s2GxI9AUpo7riNwo6jDhKtTcaJjT8PY54j2Yb33kWtSJsmA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "8.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.19.0.tgz", + "integrity": "sha512-WW9PpDaLIFW9LCbucMSdYUuGeFUz1OkWYS/5fwZwTA+l2RwlWFdJvReQqMUMBw4yJWJOfqd7An9uwut2Oj8sLw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.19.0", + "@typescript-eslint/visitor-keys": "8.19.0", + "debug": "^4.3.4", + "fast-glob": "^3.3.2", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <5.8.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "8.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.19.0.tgz", + "integrity": "sha512-PTBG+0oEMPH9jCZlfg07LCB2nYI0I317yyvXGfxnvGvw4SHIOuRnQ3kadyyXY6tGdChusIHIbM5zfIbp4M6tCg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@typescript-eslint/scope-manager": "8.19.0", + "@typescript-eslint/types": "8.19.0", + "@typescript-eslint/typescript-estree": "8.19.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "8.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.19.0.tgz", + "integrity": "sha512-mCFtBbFBJDCNCWUl5y6sZSCHXw1DEFEk3c/M3nRK2a4XUB8StGFtmcEMizdjKuBzB6e/smJAAWYug3VrdLMr1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.19.0", + "eslint-visitor-keys": "^4.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@types/unist": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", - "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", - "license": "MIT" - }, - "node_modules/@types/web-bluetooth": { - "version": "0.0.20", - "resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.20.tgz", - "integrity": "sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==", - "license": "MIT" - }, - "node_modules/@types/webrtc": { - "version": "0.0.44", - "resolved": "https://registry.npmjs.org/@types/webrtc/-/webrtc-0.0.44.tgz", - "integrity": "sha512-4BJZdzrApNFeuXgucyqs24k69f7oti3wUcGEbFbaV08QBh7yEe3tnRRuYXlyXJNXiumpZujiZqUZZ2/gMSeO0g==", - "license": "MIT" - }, "node_modules/@ungap/structured-clone": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", @@ -3157,6 +3674,11 @@ } } }, + "node_modules/@webitel/styleguide": { + "version": "24.12.20", + "resolved": "https://registry.npmjs.org/@webitel/styleguide/-/styleguide-24.12.20.tgz", + "integrity": "sha512-M7M+p68g/ICM/lIVAfZiPlEexS3LIw0vkkhD2kDUIN25mah0zv4afAefdycbYUojC/LLIvn5wxF5rBrPY6dA2g==" + }, "node_modules/abbrev": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-2.0.0.tgz", @@ -3179,6 +3701,16 @@ "node": ">=0.4.0" } }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, "node_modules/adler-32": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/adler-32/-/adler-32-1.3.1.tgz", @@ -3188,6 +3720,23 @@ "node": ">=0.8" } }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, "node_modules/algoliasearch": { "version": "5.15.0", "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-5.15.0.tgz", @@ -3967,6 +4516,16 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/caniuse-lite": { "version": "1.0.30001680", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001680.tgz", @@ -4930,6 +5489,13 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true, + "license": "MIT" + }, "node_modules/deepmerge": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", @@ -5508,24 +6074,350 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/esm-resolve": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/esm-resolve/-/esm-resolve-1.0.11.tgz", - "integrity": "sha512-LxF0wfUQm3ldUDHkkV2MIbvvY0TgzIpJ420jHSV1Dm+IlplBEWiJTKWM61GtxUfvjV6iD4OtTYFGAGM2uuIUWg==", + "node_modules/eslint": { + "version": "9.17.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.17.0.tgz", + "integrity": "sha512-evtlNcpJg+cZLcnVKwsai8fExnqjGPicK7gnUtlNuzu+Fv9bI0aLpND5T44VLQtoMEnI57LoXO9XAkIXwohKrA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.19.0", + "@eslint/core": "^0.9.0", + "@eslint/eslintrc": "^3.2.0", + "@eslint/js": "9.17.0", + "@eslint/plugin-kit": "^0.2.3", + "@humanfs/node": "^0.16.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.4.1", + "@types/estree": "^1.0.6", + "@types/json-schema": "^7.0.15", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.6", + "debug": "^4.3.2", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^8.2.0", + "eslint-visitor-keys": "^4.2.0", + "espree": "^10.3.0", + "esquery": "^1.5.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^8.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } + } + }, + "node_modules/eslint-config-prettier": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz", + "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==", + "dev": true, + "license": "MIT", + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-plugin-simple-import-sort": { + "version": "12.1.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-simple-import-sort/-/eslint-plugin-simple-import-sort-12.1.1.tgz", + "integrity": "sha512-6nuzu4xwQtE3332Uz0to+TxDQYRLTKRESSc2hefVT48Zc8JthmN23Gx9lnYhu0FtkRSL1oxny3kJ2aveVhmOVA==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "eslint": ">=5.0.0" + } + }, + "node_modules/eslint-plugin-vue": { + "version": "9.32.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.32.0.tgz", + "integrity": "sha512-b/Y05HYmnB/32wqVcjxjHZzNpwxj1onBOvqW89W+V+XNG1dRuaFbNd3vT9CLbr2LXjEoq+3vn8DanWf7XU22Ug==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "globals": "^13.24.0", + "natural-compare": "^1.4.0", + "nth-check": "^2.1.1", + "postcss-selector-parser": "^6.0.15", + "semver": "^7.6.3", + "vue-eslint-parser": "^9.4.3", + "xml-name-validator": "^4.0.0" + }, + "engines": { + "node": "^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.2.0 || ^7.0.0 || ^8.0.0 || ^9.0.0" + } + }, + "node_modules/eslint-plugin-vue/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint-plugin-vue/node_modules/postcss-selector-parser": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-plugin-vue/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint-scope": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.2.0.tgz", + "integrity": "sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/eslint/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/eslint/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/eslint/node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/eslint/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/esm-resolve": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/esm-resolve/-/esm-resolve-1.0.11.tgz", + "integrity": "sha512-LxF0wfUQm3ldUDHkkV2MIbvvY0TgzIpJ420jHSV1Dm+IlplBEWiJTKWM61GtxUfvjV6iD4OtTYFGAGM2uuIUWg==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/espree": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz", + "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.14.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, - "license": "Apache-2.0" - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "license": "BSD-2-Clause", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" + "dependencies": { + "estraverse": "^5.2.0" }, "engines": { - "node": ">=4" + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" } }, "node_modules/estree-walker": { @@ -5534,6 +6426,16 @@ "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", "license": "MIT" }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/events": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", @@ -5689,6 +6591,13 @@ "integrity": "sha512-dl0O9Vhju8IrcLndv2eU4ldt1ftXMqqfgN4H1cpmGV7P6jeB9FwpN9a2c8DPGE1Ys88rNUJVYDHq73CGAGOPfQ==", "license": "MIT" }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "license": "MIT" + }, "node_modules/fast-equals": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/fast-equals/-/fast-equals-5.0.1.tgz", @@ -5714,6 +6623,20 @@ "node": ">=8.6.0" } }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true, + "license": "MIT" + }, "node_modules/fast-safe-stringify": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", @@ -5729,6 +6652,19 @@ "reusify": "^1.0.4" } }, + "node_modules/file-entry-cache": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^4.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, "node_modules/file-saver-es": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/file-saver-es/-/file-saver-es-2.0.5.tgz", @@ -5788,6 +6724,27 @@ "node": ">=18" } }, + "node_modules/flat-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.4" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/flatted": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.2.tgz", + "integrity": "sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==", + "dev": true, + "license": "ISC" + }, "node_modules/focus-trap": { "version": "7.6.2", "resolved": "https://registry.npmjs.org/focus-trap/-/focus-trap-7.6.2.tgz", @@ -6140,12 +7097,16 @@ } }, "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "version": "15.14.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-15.14.0.tgz", + "integrity": "sha512-OkToC372DtlQeje9/zHIo5CT8lRP/FUgEOKBEhU4e0abL7J7CD24fD9ohiLN5hagG/kWCYj4K5oaxxtj2Z0Dig==", + "dev": true, "license": "MIT", "engines": { - "node": ">=4" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/globalthis": { @@ -6213,6 +7174,13 @@ "dev": true, "license": "ISC" }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true, + "license": "MIT" + }, "node_modules/graphlib": { "version": "2.1.8", "resolved": "https://registry.npmjs.org/graphlib/-/graphlib-2.1.8.tgz", @@ -6677,6 +7645,33 @@ "dev": true, "license": "MIT" }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -7463,6 +8458,13 @@ "node": ">=6" } }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true, + "license": "MIT" + }, "node_modules/json-refs": { "version": "3.0.13", "resolved": "https://registry.npmjs.org/json-refs/-/json-refs-3.0.13.tgz", @@ -7500,6 +8502,20 @@ "node": ">=6" } }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true, + "license": "MIT" + }, "node_modules/json5": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", @@ -7567,6 +8583,16 @@ "integrity": "sha512-tBNe0o3HAf8vo0BrOYnLPnXNo5A3KsRMnkBFYjh20Y3GPYGfgyoclEMgvVchx0nnL+mherPi74yLPIusHUQpZg==", "license": "(MIT OR GPL-3.0)" }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, "node_modules/kind-of": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", @@ -7679,6 +8705,20 @@ "semver": "bin/semver" } }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, "node_modules/lie": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", @@ -7786,6 +8826,13 @@ "dev": true, "license": "MIT" }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true, + "license": "MIT" + }, "node_modules/loupe": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.1.2.tgz", @@ -8422,6 +9469,13 @@ "integrity": "sha512-zkVhZUA3y8mbz652WrL5x0fB0ehrBkulWT3TomAQ9iDtyXZvzKeEA6GPxAItBYeNYl5yngKRX612qHOhvMkDeg==", "license": "MIT" }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, + "license": "MIT" + }, "node_modules/needle": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/needle/-/needle-3.3.1.tgz", @@ -8828,6 +9882,24 @@ "regex-recursion": "^4.2.1" } }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, "node_modules/os-browserify": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", @@ -8880,6 +9952,19 @@ "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", "license": "(MIT AND Zlib)" }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/parse-asn1": { "version": "5.1.7", "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.7.tgz", @@ -9380,6 +10465,32 @@ "url": "https://opencollective.com/preact" } }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.4.2.tgz", + "integrity": "sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ==", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, "node_modules/prismjs": { "version": "1.29.0", "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.29.0.tgz", @@ -9906,6 +11017,16 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, "node_modules/resolve-url": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", @@ -10908,6 +12029,19 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/strip-literal": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-2.1.0.tgz", @@ -11601,6 +12735,19 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/ts-api-utils": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.4.3.tgz", + "integrity": "sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "typescript": ">=4.2.0" + } + }, "node_modules/ts-map": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/ts-map/-/ts-map-1.0.3.tgz", @@ -11637,6 +12784,19 @@ "dev": true, "license": "MIT" }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, "node_modules/type-fest": { "version": "4.27.0", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.27.0.tgz", @@ -11811,6 +12971,29 @@ "node": ">=14.17" } }, + "node_modules/typescript-eslint": { + "version": "8.19.0", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.19.0.tgz", + "integrity": "sha512-Ni8sUkVWYK4KAcTtPjQ/UTiRk6jcsuDhPpxULapUDi8A/l8TSBk+t1GtJA1RsCzIJg0q6+J7bf35AwQigENWRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/eslint-plugin": "8.19.0", + "@typescript-eslint/parser": "8.19.0", + "@typescript-eslint/utils": "8.19.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" + } + }, "node_modules/typescript-plugin-css-modules": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/typescript-plugin-css-modules/-/typescript-plugin-css-modules-5.1.0.tgz", @@ -12924,6 +14107,79 @@ "node": ">=16.14" } }, + "node_modules/vue-eslint-parser": { + "version": "9.4.3", + "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.4.3.tgz", + "integrity": "sha512-2rYRLWlIpaiN8xbPiDyXZXRgLGOtWxERV7ND5fFAv5qo1D2N9Fu9MNajBNc6o13lZ+24DAWCkQCvj4klgmcITg==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.3.4", + "eslint-scope": "^7.1.1", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.3.1", + "esquery": "^1.4.0", + "lodash": "^4.17.21", + "semver": "^7.3.6" + }, + "engines": { + "node": "^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=6.0.0" + } + }, + "node_modules/vue-eslint-parser/node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/vue-eslint-parser/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/vue-eslint-parser/node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, "node_modules/vue-i18n": { "version": "9.14.1", "resolved": "https://registry.npmjs.org/vue-i18n/-/vue-i18n-9.14.1.tgz", @@ -13256,6 +14512,16 @@ "node": ">=0.8" } }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/wrap-ansi": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", @@ -13381,6 +14647,16 @@ "node": ">=0.8" } }, + "node_modules/xml-name-validator": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", + "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12" + } + }, "node_modules/xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", diff --git a/package.json b/package.json index dffe0e32f..899be4660 100644 --- a/package.json +++ b/package.json @@ -1,16 +1,16 @@ { "name": "@webitel/ui-sdk", - "version": "24.12.29", + "version": "24.12.39", "private": false, "scripts": { "dev": "vite", "build": "vite build", "serve": "vite preview", "test:unit": "vitest", - "lint-all": "npx @biomejs/biome check --write ./src", - "lint-all:unsafe": "npx @biomejs/biome check --write --unsafe ./src", - "lint-changed:unsafe": "npx @biomejs/biome check --write --unsafe --changed ./src", - "lint:pre-commit": "npx @biomejs/biome check --write ./src --unsafe --changed --no-errors-on-unmatched", + "lint:js": "eslint", + "lint:prettier": "prettier --check .", + "lint": "npm run lint:js && npm run lint:prettier", + "lint:fix": "prettier --write --list-different . && npm run lint:js --fix", "publish-lib": "npm run test:unit && npm run build && npm publish --access public", "publish-lib:testless": "npm run build && npm publish --access public", "docs:dev": "vitepress dev docs --port 8080", @@ -110,6 +110,7 @@ "@vuelidate/validators": "^2.0.4", "@vuepic/vue-datepicker": "^4.5.1", "@vueuse/components": "^11.2.0", + "@webitel/styleguide": "^24.12.18", "autosize": "^6.0.1", "axios": "^1.7.7", "clipboard-copy": "^4.0.1", @@ -136,7 +137,7 @@ "xlsx": "^0.18.5" }, "devDependencies": { - "@biomejs/biome": "1.9.4", + "@eslint/js": "^9.17.0", "@tsconfig/node22": "^22.0.0", "@types/node": "^22.9.1", "@vitejs/plugin-vue": "^5.2.0", @@ -145,6 +146,11 @@ "@vue/compiler-sfc": "^3.5.13", "@vue/test-utils": "^2.4.6", "@vue/tsconfig": "^0.6.0", + "eslint": "^9.17.0", + "eslint-config-prettier": "^9.1.0", + "eslint-plugin-simple-import-sort": "^12.1.1", + "eslint-plugin-vue": "^9.32.0", + "globals": "^15.14.0", "globby": "^14.0.2", "happy-dom": "^15.11.6", "markdown-it": "^14.1.0", @@ -152,9 +158,11 @@ "path": "^0.12.7", "postcss": "^8.4.49", "postcss-prefix-selector": "^2.1.0", + "prettier": "^3.4.2", "prismjs": "^1.29.0", "sass": "^1.81.0", "typescript": "5.6.3", + "typescript-eslint": "^8.18.1", "typescript-plugin-css-modules": "^5.1.0", "vite": "^5.4.11", "vite-plugin-checker": "^0.8.0", diff --git a/src/api/axios/generateInstance.js b/src/api/axios/generateInstance.js index 0130b1849..150ca460c 100644 --- a/src/api/axios/generateInstance.js +++ b/src/api/axios/generateInstance.js @@ -12,10 +12,14 @@ const generateInstance = ({ interceptors, baseURL } = {}) => { if (interceptors) { const { request, response } = interceptors; if (request) { - request.forEach((interceptor) => instance.interceptors.request.use(...interceptor)); + request.forEach((interceptor) => + instance.interceptors.request.use(...interceptor), + ); } if (response) { - response.forEach((interceptor) => instance.interceptors.response.use(...interceptor)); + response.forEach((interceptor) => + instance.interceptors.response.use(...interceptor), + ); } } diff --git a/src/api/clients/agents/agentChats.js b/src/api/clients/agents/agentChats.js index ef9284f24..4d48ae2ff 100644 --- a/src/api/clients/agents/agentChats.js +++ b/src/api/clients/agents/agentChats.js @@ -7,7 +7,8 @@ import { import applyTransform, { merge, notify, - snakeToCamel, starToSearch, + snakeToCamel, + starToSearch, } from '../../transformers/index.js'; import i18n from '../../../locale/i18n.js'; @@ -16,15 +17,14 @@ const { t } = i18n.global; const instance = getDefaultInstance(); const configuration = getDefaultOpenAPIConfig(); -const agentChatsService = new AgentChatServiceApiFactory(configuration, '', instance); +const agentChatsService = new AgentChatServiceApiFactory( + configuration, + '', + instance, +); const getChatsList = async (params) => { - const { - size, - page, - onlyClosed, - onlyUnprocessed, - } = applyTransform(params, [ + const { size, page, onlyClosed, onlyUnprocessed } = applyTransform(params, [ merge(getDefaultGetParams()), ]); @@ -38,9 +38,7 @@ const getChatsList = async (params) => { onlyClosed, onlyUnprocessed, ); - const { items, next } = applyTransform(response.data, [ - snakeToCamel(), - ]); + const { items, next } = applyTransform(response.data, [snakeToCamel()]); return { items, next, @@ -50,18 +48,19 @@ const getChatsList = async (params) => { } }; -const markChatProcessed = async (chatId) => { // add to chat unprocessedClose: true +const markChatProcessed = async (chatId) => { + // add to chat unprocessedClose: true try { const response = await agentChatsService.markChatProcessed(chatId); - return applyTransform(response.data, [ - snakeToCamel(), - ]); + return applyTransform(response.data, [snakeToCamel()]); } catch (err) { throw applyTransform(err, [ - notify(({ callback }) => callback({ - type: 'error', - text: t('errorNotifications.markChatProcessed'), - })), + notify(({ callback }) => + callback({ + type: 'error', + text: t('errorNotifications.markChatProcessed'), + }), + ), ]); } }; diff --git a/src/api/clients/agents/agents.js b/src/api/clients/agents/agents.js index e76f4ef7e..a62858e07 100644 --- a/src/api/clients/agents/agents.js +++ b/src/api/clients/agents/agents.js @@ -47,7 +47,10 @@ const getAgentsList = async (params) => { notTeamId, supervisorId, notSkillId, - } = applyTransform(params, [merge(getDefaultGetParams()), starToSearch('search')]); + } = applyTransform(params, [ + merge(getDefaultGetParams()), + starToSearch('search'), + ]); try { const response = await agentService.searchAgent( @@ -101,7 +104,10 @@ const getAgent = async ({ itemId: id }) => { try { const response = await agentService.readAgent(id); - return applyTransform(response.data, [snakeToCamel(), merge(defaultObject)]); + return applyTransform(response.data, [ + snakeToCamel(), + merge(defaultObject), + ]); } catch (err) { throw applyTransform(err, [notify]); } @@ -121,7 +127,10 @@ const fieldsToSend = [ ]; const addAgent = async ({ itemInstance }) => { - const item = applyTransform(itemInstance, [sanitize(fieldsToSend), camelToSnake()]); + const item = applyTransform(itemInstance, [ + sanitize(fieldsToSend), + camelToSnake(), + ]); try { const response = await agentService.createAgent(item); return applyTransform(response.data, [snakeToCamel()]); @@ -131,7 +140,10 @@ const addAgent = async ({ itemInstance }) => { }; const patchAgent = async ({ changes, id }) => { - const body = applyTransform(changes, [sanitize(fieldsToSend), camelToSnake()]); + const body = applyTransform(changes, [ + sanitize(fieldsToSend), + camelToSnake(), + ]); try { const response = await agentService.patchAgent(id, body); return applyTransform(response.data, [snakeToCamel()]); @@ -141,7 +153,10 @@ const patchAgent = async ({ changes, id }) => { }; const updateAgent = async ({ itemInstance, itemId: id }) => { - const item = applyTransform(itemInstance, [sanitize(fieldsToSend), camelToSnake()]); + const item = applyTransform(itemInstance, [ + sanitize(fieldsToSend), + camelToSnake(), + ]); try { const response = await agentService.updateAgent(id, item); return applyTransform(response.data, [snakeToCamel()]); @@ -173,7 +188,10 @@ const getAgentHistory = async (params) => { page, size, sort = '-joined_at', - } = applyTransform(params, [merge(getDefaultGetParams()), starToSearch('search')]); + } = applyTransform(params, [ + merge(getDefaultGetParams()), + starToSearch('search'), + ]); try { const response = await agentService.searchAgentStateHistory( @@ -204,7 +222,11 @@ const getAgentUsersOptions = async (params) => { ]); try { - const response = await agentService.searchLookupUsersAgentNotExists(page, size, search); + const response = await agentService.searchLookupUsersAgentNotExists( + page, + size, + search, + ); const { items, next } = applyTransform(response.data, [ snakeToCamel(), merge(getDefaultGetListResponse()), diff --git a/src/api/clients/buckets/buckets.js b/src/api/clients/buckets/buckets.js index d3d005d26..7371221d4 100644 --- a/src/api/clients/buckets/buckets.js +++ b/src/api/clients/buckets/buckets.js @@ -26,7 +26,14 @@ const getBucketsList = async (params) => { ]); try { - const response = await bucketService.searchBucket(page, size, search, sort, fields, id); + const response = await bucketService.searchBucket( + page, + size, + search, + sort, + fields, + id, + ); const { items, next } = applyTransform(response.data, [ snakeToCamel(), merge(getDefaultGetListResponse()), @@ -52,7 +59,10 @@ const getBucket = async ({ itemId: id }) => { const fieldsToSend = ['name', 'description']; const addBucket = async ({ itemInstance }) => { - const item = applyTransform(itemInstance, [sanitize(fieldsToSend), camelToSnake()]); + const item = applyTransform(itemInstance, [ + sanitize(fieldsToSend), + camelToSnake(), + ]); try { const response = await bucketService.createBucket(item); return applyTransform(response.data, [snakeToCamel()]); @@ -62,7 +72,10 @@ const addBucket = async ({ itemInstance }) => { }; const updateBucket = async ({ itemInstance, itemId: id }) => { - const item = applyTransform(itemInstance, [sanitize(fieldsToSend), camelToSnake()]); + const item = applyTransform(itemInstance, [ + sanitize(fieldsToSend), + camelToSnake(), + ]); try { const response = await bucketService.updateBucket(id, item); return applyTransform(response.data, [snakeToCamel()]); diff --git a/src/api/clients/calendars/calendars.js b/src/api/clients/calendars/calendars.js index a4941cce8..0e7f30780 100644 --- a/src/api/clients/calendars/calendars.js +++ b/src/api/clients/calendars/calendars.js @@ -18,7 +18,11 @@ import applyTransform, { const instance = getDefaultInstance(); const configuration = getDefaultOpenAPIConfig(); -const calendarService = new CalendarServiceApiFactory(configuration, '', instance); +const calendarService = new CalendarServiceApiFactory( + configuration, + '', + instance, +); const getCalendarList = async (params) => { const { page, size, search, sort, fields, id } = applyTransform(params, [ @@ -27,7 +31,14 @@ const getCalendarList = async (params) => { ]); try { - const response = await calendarService.searchCalendar(page, size, search, sort, fields, id); + const response = await calendarService.searchCalendar( + page, + size, + search, + sort, + fields, + id, + ); const { items, next } = applyTransform(response.data, [ snakeToCamel(), merge(getDefaultGetListResponse()), @@ -168,7 +179,14 @@ const getTimezonesLookup = async (params) => { ]); try { - const response = await calendarService.searchTimezones(page, size, search, sort, fields, id); + const response = await calendarService.searchTimezones( + page, + size, + search, + sort, + fields, + id, + ); const { items, next } = applyTransform(response.data, [ snakeToCamel(), merge(getDefaultGetListResponse()), diff --git a/src/api/clients/catalog/catalog.js b/src/api/clients/catalog/catalog.js index 7abe22278..b53118f7d 100644 --- a/src/api/clients/catalog/catalog.js +++ b/src/api/clients/catalog/catalog.js @@ -26,9 +26,7 @@ const getChatMessagesList = async ({ chatId }) => { try { const response = await catalogService.getHistory(chatId); - const { messages, peers } = applyTransform(response.data, [ - snakeToCamel(), - ]); + const { messages, peers } = applyTransform(response.data, [snakeToCamel()]); return { items: applyTransform({ messages, peers }, [mergeMessagesData]), peers, diff --git a/src/api/clients/chatGateways/chatGateways.js b/src/api/clients/chatGateways/chatGateways.js index 822e855a2..6ae50dcde 100644 --- a/src/api/clients/chatGateways/chatGateways.js +++ b/src/api/clients/chatGateways/chatGateways.js @@ -21,7 +21,15 @@ import webChatGateway from './defaults/webChatGateway.js'; const instance = getDefaultInstance(); const baseUrl = '/chat/bots'; -const fieldsToSend = ['name', 'uri', 'flow', 'enabled', 'provider', 'metadata', 'updates']; +const fieldsToSend = [ + 'name', + 'uri', + 'flow', + 'enabled', + 'provider', + 'metadata', + 'updates', +]; const convertWebchatSeconds = (num) => `${num}s`; @@ -31,13 +39,19 @@ const parseTimeoutSeconds = (item) => const webchatRequestConverter = (data) => { const copy = deepCopy(data); if (data.metadata.readTimeout) { - copy.metadata.readTimeout = convertWebchatSeconds(data.metadata.readTimeout); + copy.metadata.readTimeout = convertWebchatSeconds( + data.metadata.readTimeout, + ); } if (data.metadata.writeTimeout) { - copy.metadata.writeTimeout = convertWebchatSeconds(data.metadata.writeTimeout); + copy.metadata.writeTimeout = convertWebchatSeconds( + data.metadata.writeTimeout, + ); } if (data.metadata.handshakeTimeout) { - copy.metadata.handshakeTimeout = convertWebchatSeconds(data.metadata.handshakeTimeout); + copy.metadata.handshakeTimeout = convertWebchatSeconds( + data.metadata.handshakeTimeout, + ); } if (data.metadata.allowOrigin) { copy.metadata.allowOrigin = data.metadata.allowOrigin.join(); @@ -46,7 +60,9 @@ const webchatRequestConverter = (data) => { copy.metadata.view = JSON.stringify(data.metadata.view); copy.metadata.chat = JSON.stringify(data.metadata.chat); copy.metadata.appointment = JSON.stringify(data.metadata.appointment); - copy.metadata.alternativeChannels = JSON.stringify(data.metadata.alternativeChannels); + copy.metadata.alternativeChannels = JSON.stringify( + data.metadata.alternativeChannels, + ); copy.metadata.call = JSON.stringify(data.metadata.call); if (copy.metadata.captcha.enabled) { @@ -76,15 +92,21 @@ const viberRequestConverter = (item) => { const webChatResponseConverter = (data) => { const copy = deepCopy(data); - copy.metadata.allowOrigin = data.metadata.allowOrigin ? data.metadata.allowOrigin.split(',') : []; + copy.metadata.allowOrigin = data.metadata.allowOrigin + ? data.metadata.allowOrigin.split(',') + : []; if (data.metadata.readTimeout) { copy.metadata.readTimeout = parseTimeoutSeconds(data.metadata.readTimeout); } if (data.metadata.writeTimeout) { - copy.metadata.writeTimeout = parseTimeoutSeconds(data.metadata.writeTimeout); + copy.metadata.writeTimeout = parseTimeoutSeconds( + data.metadata.writeTimeout, + ); } if (data.metadata.handshakeTimeout) { - copy.metadata.handshakeTimeout = parseTimeoutSeconds(data.metadata.handshakeTimeout); + copy.metadata.handshakeTimeout = parseTimeoutSeconds( + data.metadata.handshakeTimeout, + ); } if (data.metadata.view) { copy.metadata.view = JSON.parse(data.metadata.view); @@ -96,7 +118,9 @@ const webChatResponseConverter = (data) => { copy.metadata.appointment = JSON.parse(data.metadata.appointment); } if (data.metadata.alternativeChannels) { - copy.metadata.alternativeChannels = JSON.parse(data.metadata.alternativeChannels); + copy.metadata.alternativeChannels = JSON.parse( + data.metadata.alternativeChannels, + ); } if (data.metadata.call) { copy.metadata.call = JSON.parse(data.metadata.call); @@ -118,8 +142,10 @@ const messengerResponseConverter = (item) => { const viberResponseConverter = (item) => { const copy = deepCopy(item); - if (item.metadata['btn.back.color']) copy.metadata.btnBackColor = item.metadata['btn.back.color']; - if (item.metadata['btn.font.color']) copy.metadata.btnFontColor = item.metadata['btn.font.color']; + if (item.metadata['btn.back.color']) + copy.metadata.btnBackColor = item.metadata['btn.back.color']; + if (item.metadata['btn.font.color']) + copy.metadata.btnFontColor = item.metadata['btn.font.color']; return copy; }; @@ -233,7 +259,10 @@ const updateChatGateway = async ({ itemInstance, itemId: id }) => { }; const patchChatGateway = async ({ changes, id }) => { - const body = applyTransform(changes, [sanitize(fieldsToSend), camelToSnake()]); + const body = applyTransform(changes, [ + sanitize(fieldsToSend), + camelToSnake(), + ]); const url = `${baseUrl}/${id}`; try { const response = await instance.patch(url, body); diff --git a/src/api/clients/communications/communications.js b/src/api/clients/communications/communications.js index f44dfe1a5..21db98cc7 100644 --- a/src/api/clients/communications/communications.js +++ b/src/api/clients/communications/communications.js @@ -18,7 +18,11 @@ import applyTransform, { const instance = getDefaultInstance(); const configuration = getDefaultOpenAPIConfig(); -const communicationService = new CommunicationTypeServiceApiFactory(configuration, '', instance); +const communicationService = new CommunicationTypeServiceApiFactory( + configuration, + '', + instance, +); const getCommunicationsList = async (params) => { const defaultObject = { @@ -64,7 +68,10 @@ const getCommunication = async ({ itemId: id }) => { const fieldsToSend = ['code', 'name', 'description', 'channel', 'default']; const addCommunication = async ({ itemInstance }) => { - const item = applyTransform(itemInstance, [sanitize(fieldsToSend), camelToSnake()]); + const item = applyTransform(itemInstance, [ + sanitize(fieldsToSend), + camelToSnake(), + ]); try { const response = await communicationService.createCommunicationType(item); return applyTransform(response.data, [snakeToCamel()]); @@ -74,9 +81,15 @@ const addCommunication = async ({ itemInstance }) => { }; const patchCommunication = async ({ changes, id }) => { - const body = applyTransform(changes, [sanitize(fieldsToSend), camelToSnake()]); + const body = applyTransform(changes, [ + sanitize(fieldsToSend), + camelToSnake(), + ]); try { - const response = await communicationService.patchCommunicationType(id, body); + const response = await communicationService.patchCommunicationType( + id, + body, + ); return applyTransform(response.data, [snakeToCamel()]); } catch (err) { throw applyTransform(err, [notify]); @@ -84,9 +97,15 @@ const patchCommunication = async ({ changes, id }) => { }; const updateCommunication = async ({ itemInstance, itemId: id }) => { - const item = applyTransform(itemInstance, [sanitize(fieldsToSend), camelToSnake()]); + const item = applyTransform(itemInstance, [ + sanitize(fieldsToSend), + camelToSnake(), + ]); try { - const response = await communicationService.updateCommunicationType(id, item); + const response = await communicationService.updateCommunicationType( + id, + item, + ); return applyTransform(response.data, [snakeToCamel()]); } catch (err) { throw applyTransform(err, [notify]); diff --git a/src/api/clients/configurations/configurations.js b/src/api/clients/configurations/configurations.js index e75225ffe..d8610e2b0 100644 --- a/src/api/clients/configurations/configurations.js +++ b/src/api/clients/configurations/configurations.js @@ -17,7 +17,11 @@ import applyTransform, { const instance = getDefaultInstance(); const configuration = getDefaultOpenAPIConfig(); -const configurationService = new SystemSettingServiceApiFactory(configuration, '', instance); +const configurationService = new SystemSettingServiceApiFactory( + configuration, + '', + instance, +); const getList = async (params) => { const { page, size, search, sort, fields, name } = applyTransform(params, [ @@ -59,7 +63,10 @@ const get = async ({ itemId: id }) => { const fieldsToSend = ['id', 'name', 'value']; const add = async ({ itemInstance }) => { - const item = applyTransform(itemInstance, [sanitize(fieldsToSend), camelToSnake()]); + const item = applyTransform(itemInstance, [ + sanitize(fieldsToSend), + camelToSnake(), + ]); try { const response = await configurationService.createSystemSetting(item); return applyTransform(response.data, [snakeToCamel()]); @@ -69,7 +76,10 @@ const add = async ({ itemInstance }) => { }; const update = async ({ itemInstance, itemId: id }) => { - const item = applyTransform(itemInstance, [sanitize(fieldsToSend), camelToSnake()]); + const item = applyTransform(itemInstance, [ + sanitize(fieldsToSend), + camelToSnake(), + ]); try { const response = await configurationService.updateSystemSetting(id, item); return applyTransform(response.data, [snakeToCamel()]); diff --git a/src/api/clients/flows/flow.js b/src/api/clients/flows/flow.js index 4a64ef026..ad0cc4c20 100644 --- a/src/api/clients/flows/flow.js +++ b/src/api/clients/flows/flow.js @@ -1,4 +1,7 @@ -import { EngineRoutingSchemaType, RoutingSchemaServiceApiFactory } from 'webitel-sdk'; +import { + EngineRoutingSchemaType, + RoutingSchemaServiceApiFactory, +} from 'webitel-sdk'; import { getDefaultGetListResponse, getDefaultGetParams, @@ -18,7 +21,11 @@ import applyTransform, { const instance = getDefaultInstance(); const configuration = getDefaultOpenAPIConfig(); -const flowService = new RoutingSchemaServiceApiFactory(configuration, '', instance); +const flowService = new RoutingSchemaServiceApiFactory( + configuration, + '', + instance, +); /* CONVERT "SCHEMA" FIELD TO JSON TO PREVENT ITS CHANGE @@ -39,18 +46,21 @@ const getFlowList = async (params) => { }; if (paramsCopy.type) { - const _type = Array.isArray(paramsCopy.type) ? paramsCopy.type : [paramsCopy.type]; + const _type = Array.isArray(paramsCopy.type) + ? paramsCopy.type + : [paramsCopy.type]; if (!paramsCopy.type.includes(EngineRoutingSchemaType.Default)) { _type.push(EngineRoutingSchemaType.Default); } paramsCopy.type = _type; } - const { page, size, search, sort, fields, id, name, type, tags } = applyTransform(paramsCopy, [ - merge(getDefaultGetParams()), - starToSearch('search'), - camelToSnake(doNotConvertKeys), - ]); + const { page, size, search, sort, fields, id, name, type, tags } = + applyTransform(paramsCopy, [ + merge(getDefaultGetParams()), + starToSearch('search'), + camelToSnake(doNotConvertKeys), + ]); try { const response = await flowService.searchRoutingSchema( @@ -107,7 +117,8 @@ const getFlow = async ({ itemId: id }) => { const preRequestHandler = (item) => ({ ...item, - schema: typeof item.schema === 'string' ? JSON.parse(item.schema) : item.schema, + schema: + typeof item.schema === 'string' ? JSON.parse(item.schema) : item.schema, }); const addFlow = async ({ itemInstance }) => { diff --git a/src/api/clients/gateways/gateways.js b/src/api/clients/gateways/gateways.js index ec101db11..774d88f08 100644 --- a/src/api/clients/gateways/gateways.js +++ b/src/api/clients/gateways/gateways.js @@ -105,7 +105,10 @@ const fieldsToSend = [ ]; const addGateway = async ({ itemInstance }) => { - const item = applyTransform(itemInstance, [sanitize(fieldsToSend), camelToSnake()]); + const item = applyTransform(itemInstance, [ + sanitize(fieldsToSend), + camelToSnake(), + ]); try { const response = await instance.post(baseUrl, item); return applyTransform(response.data, [snakeToCamel()]); @@ -114,7 +117,10 @@ const addGateway = async ({ itemInstance }) => { } }; const updateGateway = async ({ itemInstance, itemId: id }) => { - const item = applyTransform(itemInstance, [sanitize(fieldsToSend), camelToSnake()]); + const item = applyTransform(itemInstance, [ + sanitize(fieldsToSend), + camelToSnake(), + ]); const url = `${baseUrl}/${id}`; try { @@ -126,7 +132,10 @@ const updateGateway = async ({ itemInstance, itemId: id }) => { }; const patchGateway = async ({ changes, id }) => { - const body = applyTransform(changes, [sanitize(fieldsToSend), camelToSnake()]); + const body = applyTransform(changes, [ + sanitize(fieldsToSend), + camelToSnake(), + ]); const url = `${baseUrl}/${id}`; try { const response = await instance.patch(url, body); diff --git a/src/api/clients/lists/blacklists.js b/src/api/clients/lists/blacklists.js index bb701ae84..026ebeb31 100644 --- a/src/api/clients/lists/blacklists.js +++ b/src/api/clients/lists/blacklists.js @@ -33,7 +33,14 @@ const getBlacklistList = async (params) => { ]); try { - const response = await listService.searchList(page, size, search, sort, fields, id); + const response = await listService.searchList( + page, + size, + search, + sort, + fields, + id, + ); const { items, next } = applyTransform(response.data, [ snakeToCamel(), merge(getDefaultGetListResponse()), @@ -59,7 +66,10 @@ const getBlacklist = async ({ itemId: id }) => { const fieldsToSend = ['name', 'description']; const addBlacklist = async ({ itemInstance }) => { - const item = applyTransform(itemInstance, [sanitize(fieldsToSend), camelToSnake()]); + const item = applyTransform(itemInstance, [ + sanitize(fieldsToSend), + camelToSnake(), + ]); try { const response = await listService.createList(item); return applyTransform(response.data, [snakeToCamel()]); @@ -69,7 +79,10 @@ const addBlacklist = async ({ itemInstance }) => { }; const updateBlacklist = async ({ itemInstance, itemId: id }) => { - const item = applyTransform(itemInstance, [sanitize(fieldsToSend), camelToSnake()]); + const item = applyTransform(itemInstance, [ + sanitize(fieldsToSend), + camelToSnake(), + ]); try { const response = await listService.updateList(id, item); return applyTransform(response.data, [snakeToCamel()]); diff --git a/src/api/clients/media/media.js b/src/api/clients/media/media.js index 643dbe92c..4af9b148d 100644 --- a/src/api/clients/media/media.js +++ b/src/api/clients/media/media.js @@ -16,7 +16,11 @@ import applyTransform, { const instance = getDefaultInstance(); const configuration = getDefaultOpenAPIConfig(); -const mediaService = new MediaFileServiceApiFactory(configuration, '', instance); +const mediaService = new MediaFileServiceApiFactory( + configuration, + '', + instance, +); const token = localStorage.getItem('access-token'); const baseUrl = import.meta.env.VITE_API_URL; @@ -28,7 +32,14 @@ const getMediaList = async (params) => { ]); try { - const response = await mediaService.searchMediaFile(page, size, search, sort, fields, id); + const response = await mediaService.searchMediaFile( + page, + size, + search, + sort, + fields, + id, + ); const { items, next } = applyTransform(response.data, [ snakeToCamel(), merge(getDefaultGetListResponse()), @@ -73,7 +84,9 @@ const addMedia = async (params) => { formData.append('file', params.itemInstance); try { const response = await addMediaInstance.post(url, formData); - applyTransform(response, [notify(() => ({ type: 'success', text: 'Successfully added' }))]); + applyTransform(response, [ + notify(() => ({ type: 'success', text: 'Successfully added' })), + ]); return response; } catch (err) { throw applyTransform(err, [notify]); diff --git a/src/api/clients/queues/queues.js b/src/api/clients/queues/queues.js index 5115fee32..431c26660 100644 --- a/src/api/clients/queues/queues.js +++ b/src/api/clients/queues/queues.js @@ -68,10 +68,11 @@ const getQueuesList = async (params) => { priority: '0', }; - const { page, size, search, sort, fields, id, queueType, team, tags } = applyTransform(params, [ - merge(getDefaultGetParams()), - starToSearch('search'), - ]); + const { page, size, search, sort, fields, id, queueType, team, tags } = + applyTransform(params, [ + merge(getDefaultGetParams()), + starToSearch('search'), + ]); try { const response = await queueService.searchQueue( @@ -168,7 +169,10 @@ const updateQueue = async ({ itemInstance, itemId: id }) => { }; const patchQueue = async ({ id, changes }) => { - const item = applyTransform(changes, [sanitize(fieldsToSend), camelToSnake(doNotConvertKeys)]); + const item = applyTransform(changes, [ + sanitize(fieldsToSend), + camelToSnake(doNotConvertKeys), + ]); try { const response = await queueService.patchQueue(id, item); return applyTransform(response.data, [snakeToCamel(doNotConvertKeys)]); @@ -199,7 +203,13 @@ const getQueuesTags = async (params) => { camelToSnake(doNotConvertKeys), ]); try { - const response = await queueService.searchQueueTags(page, size, search, sort, fields); + const response = await queueService.searchQueueTags( + page, + size, + search, + sort, + fields, + ); const { items, next } = applyTransform(response.data, [ snakeToCamel(doNotConvertKeys), merge(getDefaultGetListResponse()), diff --git a/src/api/clients/roles/roles.js b/src/api/clients/roles/roles.js index 96a6e8e22..29761488e 100644 --- a/src/api/clients/roles/roles.js +++ b/src/api/clients/roles/roles.js @@ -62,7 +62,9 @@ const getRole = async ({ itemId: id }) => { const itemResponseHandler = (response) => { const copy = deepCopy(response); - copy.metadata.access = new ApplicationsAccess({ access: copy.metadata.access }).getAccess(); + copy.metadata.access = new ApplicationsAccess({ + access: copy.metadata.access, + }).getAccess(); return copy; }; diff --git a/src/api/clients/skills/skills.js b/src/api/clients/skills/skills.js index 0d9551335..e171b10b3 100644 --- a/src/api/clients/skills/skills.js +++ b/src/api/clients/skills/skills.js @@ -26,7 +26,14 @@ const getSkillsList = async (params) => { ]); try { - const response = await skillService.searchSkill(page, size, search, sort, fields, id); + const response = await skillService.searchSkill( + page, + size, + search, + sort, + fields, + id, + ); const { items, next } = applyTransform(response.data, [ snakeToCamel(), merge(getDefaultGetListResponse()), @@ -52,7 +59,10 @@ const getSkill = async ({ itemId: id }) => { const fieldsToSend = ['name', 'description']; const addSkill = async ({ itemInstance }) => { - const item = applyTransform(itemInstance, [sanitize(fieldsToSend), camelToSnake()]); + const item = applyTransform(itemInstance, [ + sanitize(fieldsToSend), + camelToSnake(), + ]); try { const response = await skillService.createSkill(item); return applyTransform(response.data, [snakeToCamel()]); @@ -62,7 +72,10 @@ const addSkill = async ({ itemInstance }) => { }; const updateSkill = async ({ itemInstance, itemId: id }) => { - const item = applyTransform(itemInstance, [sanitize(fieldsToSend), camelToSnake()]); + const item = applyTransform(itemInstance, [ + sanitize(fieldsToSend), + camelToSnake(), + ]); try { const response = await skillService.updateSkill(id, item); return applyTransform(response.data, [snakeToCamel()]); diff --git a/src/api/clients/teams/teams.js b/src/api/clients/teams/teams.js index 475c6796b..2206e1ba3 100644 --- a/src/api/clients/teams/teams.js +++ b/src/api/clients/teams/teams.js @@ -33,10 +33,11 @@ const fieldsToSend = [ ]; const getTeamsList = async (params) => { - const { page, size, search, sort, fields, id, strategy, adminId } = applyTransform(params, [ - merge(getDefaultGetParams()), - starToSearch('search'), - ]); + const { page, size, search, sort, fields, id, strategy, adminId } = + applyTransform(params, [ + merge(getDefaultGetParams()), + starToSearch('search'), + ]); try { const response = await teamService.searchAgentTeam( @@ -80,14 +81,20 @@ const getTeam = async ({ itemId: id }) => { try { const response = await teamService.readAgentTeam(id); - return applyTransform(response.data, [snakeToCamel(), merge(defaultObject)]); + return applyTransform(response.data, [ + snakeToCamel(), + merge(defaultObject), + ]); } catch (err) { throw applyTransform(err, [notify]); } }; const addTeam = async ({ itemInstance }) => { - const item = applyTransform(itemInstance, [sanitize(fieldsToSend), camelToSnake()]); + const item = applyTransform(itemInstance, [ + sanitize(fieldsToSend), + camelToSnake(), + ]); try { const response = await teamService.createAgentTeam(item); return applyTransform(response.data, [snakeToCamel()]); @@ -97,7 +104,10 @@ const addTeam = async ({ itemInstance }) => { }; const updateTeam = async ({ itemInstance, itemId: id }) => { - const item = applyTransform(itemInstance, [sanitize(fieldsToSend), camelToSnake()]); + const item = applyTransform(itemInstance, [ + sanitize(fieldsToSend), + camelToSnake(), + ]); try { const response = await teamService.updateAgentTeam(id, item); return applyTransform(response.data, [snakeToCamel()]); diff --git a/src/api/clients/users/__tests__/users.spec.js b/src/api/clients/users/__tests__/users.spec.js index b84e05f35..a3d855c59 100644 --- a/src/api/clients/users/__tests__/users.spec.js +++ b/src/api/clients/users/__tests__/users.spec.js @@ -209,7 +209,9 @@ describe('UsersAPI', () => { const UsersAPI = (await import('../users.js')).default; - expect(await UsersAPI.update({ itemInstance: {}, itemId: 1 })).toEqual(output); + expect(await UsersAPI.update({ itemInstance: {}, itemId: 1 })).toEqual( + output, + ); }); it('correctly computes "patch" method api call', async () => { diff --git a/src/api/clients/users/users.js b/src/api/clients/users/users.js index 32981c5a8..f39b25bad 100644 --- a/src/api/clients/users/users.js +++ b/src/api/clients/users/users.js @@ -157,7 +157,10 @@ const updateUser = async ({ itemInstance, itemId: id }) => { }; const patchUser = async ({ changes, id }) => { - const body = applyTransform(changes, [sanitize(fieldsToSend), camelToSnake(['profile'])]); + const body = applyTransform(changes, [ + sanitize(fieldsToSend), + camelToSnake(['profile']), + ]); const url = `${baseUrl}/${id}`; try { const response = await instance.patch(url, body); @@ -168,7 +171,10 @@ const patchUser = async ({ changes, id }) => { }; const patchUserPresence = async ({ changes, id }) => { - const body = applyTransform(changes, [sanitize(fieldsToSend), camelToSnake(['profile'])]); + const body = applyTransform(changes, [ + sanitize(fieldsToSend), + camelToSnake(['profile']), + ]); const url = `${baseUrl}/${id}/presence`; try { const response = await instance.patch(url, body); diff --git "a/src/api/clients/\321\201ontacts/contactChatMessagesHistory.js" "b/src/api/clients/\321\201ontacts/contactChatMessagesHistory.js" index 4f9b2c1ec..dccf040f9 100644 --- "a/src/api/clients/\321\201ontacts/contactChatMessagesHistory.js" +++ "b/src/api/clients/\321\201ontacts/contactChatMessagesHistory.js" @@ -4,7 +4,11 @@ import { getDefaultInstance, getDefaultOpenAPIConfig, } from '../../defaults/index.js'; -import applyTransform, { notify, snakeToCamel, merge } from '../../transformers/index.js'; +import applyTransform, { + notify, + snakeToCamel, + merge, +} from '../../transformers/index.js'; import i18n from '../../../locale/i18n.js'; const { t } = i18n.global; @@ -12,7 +16,11 @@ const { t } = i18n.global; const instance = getDefaultInstance(); const configuration = getDefaultOpenAPIConfig(); -const contactChatService = new ContactsChatCatalogApiFactory(configuration, '', instance); +const contactChatService = new ContactsChatCatalogApiFactory( + configuration, + '', + instance, +); const getChat = async ({ contactId, chatId }) => { const mergeChatMessagesData = ({ messages, peers }) => { @@ -26,7 +34,10 @@ const getChat = async ({ contactId, chatId }) => { }; try { - const response = await contactChatService.getContactChatHistory(contactId, chatId); + const response = await contactChatService.getContactChatHistory( + contactId, + chatId, + ); const { messages, peers } = applyTransform(response.data, [snakeToCamel()]); return { items: applyTransform({ messages, peers }, [mergeChatMessagesData]), @@ -39,7 +50,6 @@ const getChat = async ({ contactId, chatId }) => { // all messages from all contacts chats const getAllMessages = async (params) => { - const mergeMessagesData = ({ messages, peers, chats }) => { if (!messages) return []; return messages.map(({ from, chat, ...message }) => { @@ -51,11 +61,7 @@ const getAllMessages = async (params) => { }); }; - const { - contactId, - page, - size, - } = params; + const { contactId, page, size } = params; try { const response = await contactChatService.getContactChatHistory2( @@ -75,10 +81,12 @@ const getAllMessages = async (params) => { }; } catch (err) { throw applyTransform(err, [ - notify(({ callback }) => callback({ - type: 'error', - text: t('errorNotifications.chatHistoryApi'), - })), + notify(({ callback }) => + callback({ + type: 'error', + text: t('errorNotifications.chatHistoryApi'), + }), + ), ]); } }; diff --git "a/src/api/clients/\321\201ontacts/contacts.js" "b/src/api/clients/\321\201ontacts/contacts.js" index 8aaa31601..ed88e0daf 100644 --- "a/src/api/clients/\321\201ontacts/contacts.js" +++ "b/src/api/clients/\321\201ontacts/contacts.js" @@ -29,7 +29,17 @@ const formatAccessMode = (item) => ({ }); const getList = async (params) => { - const fieldsToSend = ['page', 'size', 'q', 'sort', 'fields', 'id', 'qin', 'groupId', 'notIdGroup']; + const fieldsToSend = [ + 'page', + 'size', + 'q', + 'sort', + 'fields', + 'id', + 'qin', + 'groupId', + 'notIdGroup', + ]; if (!params.fields) { params.fields = [ @@ -61,7 +71,7 @@ const getList = async (params) => { let changedParams; - if(params?.search) { + if (params?.search) { changedParams = { ...params, q: params.search }; } else if (params?.q && params?.qin) { changedParams = { ...params }; @@ -98,9 +108,14 @@ const getList = async (params) => { }; } - const transformations = [sanitize(fieldsToSend), merge(getDefaultGetParams()), camelToSnake()]; + const transformations = [ + sanitize(fieldsToSend), + merge(getDefaultGetParams()), + camelToSnake(), + ]; - const { page, size, q, sort, fields, id, qin, mode, group_id, not_id_group } = applyTransform(changedParams, transformations); + const { page, size, q, sort, fields, id, qin, mode, group_id, not_id_group } = + applyTransform(changedParams, transformations); try { const response = await contactService.searchContacts( @@ -116,13 +131,16 @@ const getList = async (params) => { not_id_group, ); - const { items, next } = applyTransform({ ...response.data, items: response.data.data || [] }, [ - snakeToCamel(), - merge(getDefaultGetListResponse()), - ]); + const { items, next } = applyTransform( + { ...response.data, items: response.data.data || [] }, + [snakeToCamel(), merge(getDefaultGetListResponse())], + ); return { - items: applyTransform(items, [(items) => items?.map((item) => formatAccessMode(item)), listResponseHandler]), + items: applyTransform(items, [ + (items) => items?.map((item) => formatAccessMode(item)), + listResponseHandler, + ]), next, }; } catch (err) { @@ -175,13 +193,17 @@ const fieldsToSend = ['name', 'labels', 'about', 'managers', 'timezones']; const sanitizeManagers = (itemInstance) => { // handle many managers and even no managers field cases - const managers = (itemInstance.managers || []).filter(({ user } = {}) => user.id); + const managers = (itemInstance.managers || []).filter( + ({ user } = {}) => user.id, + ); return { ...itemInstance, managers }; }; const sanitizeTimezones = (itemInstance) => { // handle many timezones and even no timezones field cases - const timezones = (itemInstance.timezones || []).filter(({ timezone } = {}) => timezone.id); + const timezones = (itemInstance.timezones || []).filter( + ({ timezone } = {}) => timezone.id, + ); return { ...itemInstance, timezones }; }; @@ -235,10 +257,11 @@ const deleteContact = async ({ id }) => { } }; -const getContactsLookup = (params) => getList({ - ...params, - fields: params.fields || ['id', 'name'], -}); +const getContactsLookup = (params) => + getList({ + ...params, + fields: params.fields || ['id', 'name'], + }); const ContactsAPI = { getList, diff --git a/src/api/history/transcript/callTranscript.js b/src/api/history/transcript/callTranscript.js index 8f8715d48..511a643ed 100644 --- a/src/api/history/transcript/callTranscript.js +++ b/src/api/history/transcript/callTranscript.js @@ -14,11 +14,19 @@ import applyTransform, { const instance = getDefaultInstance(); const configuration = getDefaultOpenAPIConfig(); -const transcriptService = new FileTranscriptServiceApiFactory(configuration, '', instance); +const transcriptService = new FileTranscriptServiceApiFactory( + configuration, + '', + instance, +); const getTranscript = async ({ id, page = 1, size = 10000 }) => { try { - const response = await transcriptService.getFileTranscriptPhrases(id, page, size); + const response = await transcriptService.getFileTranscriptPhrases( + id, + page, + size, + ); const { items } = applyTransform(response.data, [ snakeToCamel(), merge(getDefaultGetListResponse()), diff --git a/src/api/interceptors/request/updateToken.interceptor.js b/src/api/interceptors/request/updateToken.interceptor.js index 28aa72c3b..57229a050 100644 --- a/src/api/interceptors/request/updateToken.interceptor.js +++ b/src/api/interceptors/request/updateToken.interceptor.js @@ -1,6 +1,7 @@ const updateTokenInterceptor = [ (config) => { - config.headers['X-Webitel-Access'] = localStorage.getItem('access-token') || ''; + config.headers['X-Webitel-Access'] = + localStorage.getItem('access-token') || ''; return config; }, (error) => Promise.reject(error), diff --git a/src/api/transformers/applyTransform.js b/src/api/transformers/applyTransform.js index 1faf8550d..1ea88ef66 100644 --- a/src/api/transformers/applyTransform.js +++ b/src/api/transformers/applyTransform.js @@ -1,4 +1,8 @@ -const applyTransform = (target, transformers, { debug = false, withContext = null } = {}) => { +const applyTransform = ( + target, + transformers, + { debug = false, withContext = null } = {}, +) => { return transformers.reduce((result, transformer, index) => { if (debug) console.info(`applyTransform debug on step ${index}`, result); diff --git a/src/api/transformers/camelToSnake/camelToSnake.transformer.js b/src/api/transformers/camelToSnake/camelToSnake.transformer.js index 29171a903..8f2520052 100644 --- a/src/api/transformers/camelToSnake/camelToSnake.transformer.js +++ b/src/api/transformers/camelToSnake/camelToSnake.transformer.js @@ -1,4 +1,5 @@ import { objCamelToSnake } from '../../../scripts/caseConverters.js'; -const camelToSnakeTransformer = (skipKeys) => (obj) => objCamelToSnake(obj, skipKeys); +const camelToSnakeTransformer = (skipKeys) => (obj) => + objCamelToSnake(obj, skipKeys); export default camelToSnakeTransformer; diff --git a/src/api/transformers/snakeToCamel/snakeToCamel.transformer.js b/src/api/transformers/snakeToCamel/snakeToCamel.transformer.js index 8c9c4352c..98a268457 100644 --- a/src/api/transformers/snakeToCamel/snakeToCamel.transformer.js +++ b/src/api/transformers/snakeToCamel/snakeToCamel.transformer.js @@ -1,4 +1,5 @@ import { objSnakeToCamel } from '../../../scripts/caseConverters.js'; -const snakeToCamelTransformer = (skipKeys) => (obj) => objSnakeToCamel(obj, skipKeys); +const snakeToCamelTransformer = (skipKeys) => (obj) => + objSnakeToCamel(obj, skipKeys); export default snakeToCamelTransformer; diff --git a/src/assets/icons/sprite/index.js b/src/assets/icons/sprite/index.js index 5155bb73d..c98d1f936 100644 --- a/src/assets/icons/sprite/index.js +++ b/src/assets/icons/sprite/index.js @@ -118,6 +118,7 @@ import messengerWhatsapp from './messenger-whatsapp.svg'; import meta from './meta.svg'; import micMuted from './mic-muted.svg'; import mic from './mic.svg'; +import treeCollapse from './tree-collapse.svg'; import microsoft from './microsoft.svg'; import move from './move.svg'; import note from './note.svg'; @@ -126,7 +127,7 @@ import options from './options.svg'; import pause from './pause.svg'; import pin from './pin.svg'; import play from './play.svg'; -import plus from './plus.svg'; +import treeExpand from './tree-expand.svg'; import previewTagApplication from './preview-tag-application.svg'; import previewTagAudio from './preview-tag-audio.svg'; @@ -165,6 +166,8 @@ import stt from './stt.svg'; import telegramBot from './telegram-bot.svg'; import tick from './tick.svg'; import ttsDownload from './tts-download.svg'; +import treeLine from './tree-line.svg' +import treeCross from './tree-cross.svg' import undo from './undo.svg'; import unpin from './unpin.svg'; import upload from './upload.svg'; @@ -312,11 +315,12 @@ export default objCamelToKebab({ micMuted, microsoft, move, + treeCollapse, note, numpad, pause, play, - plus, + treeExpand, prompter, queueMember, radio, @@ -349,6 +353,8 @@ export default objCamelToKebab({ zoomIn, zoomOut, ttsDownload, + treeLine, + treeCross, stt, sttDownload, sttSearch, diff --git a/src/assets/icons/sprite/tree-collapse.svg b/src/assets/icons/sprite/tree-collapse.svg new file mode 100644 index 000000000..f4dd0a409 --- /dev/null +++ b/src/assets/icons/sprite/tree-collapse.svg @@ -0,0 +1,4 @@ + diff --git a/src/assets/icons/sprite/tree-cross.svg b/src/assets/icons/sprite/tree-cross.svg new file mode 100644 index 000000000..041a2e430 --- /dev/null +++ b/src/assets/icons/sprite/tree-cross.svg @@ -0,0 +1,5 @@ + diff --git a/src/assets/icons/sprite/plus.svg b/src/assets/icons/sprite/tree-expand.svg similarity index 100% rename from src/assets/icons/sprite/plus.svg rename to src/assets/icons/sprite/tree-expand.svg diff --git a/src/assets/icons/sprite/tree-line.svg b/src/assets/icons/sprite/tree-line.svg new file mode 100644 index 000000000..50214c6b5 --- /dev/null +++ b/src/assets/icons/sprite/tree-line.svg @@ -0,0 +1,10 @@ + diff --git a/src/components/index.js b/src/components/index.js index 9e1d0dbec..e24240512 100644 --- a/src/components/index.js +++ b/src/components/index.js @@ -17,8 +17,7 @@ import WtDummy from './wt-dummy/wt-dummy.vue'; import WtEmpty from './wt-empty/wt-empty.vue'; import WtErrorPage from './wt-error-page/wt-error-page.vue'; import WtExpansionPanel from './wt-expansion-panel/wt-expansion-panel.vue'; -import WtFiltersPanelWrapper - from './wt-filters-panel-wrapper/wt-filters-panel-wrapper.vue'; +import WtFiltersPanelWrapper from './wt-filters-panel-wrapper/wt-filters-panel-wrapper.vue'; import WtHeadlineNav from './wt-headline-nav/wt-headline-nav.vue'; import WtHeadline from './wt-headline/wt-headline.vue'; import WtHint from './wt-hint/wt-hint.vue'; @@ -29,8 +28,7 @@ import WtImage from './wt-image/wt-image.vue'; import WtIndicator from './wt-indicator/wt-indicator.vue'; import WtInputInfo from './wt-input-info/wt-input-info.vue'; import WtInput from './wt-input/wt-input.vue'; -import WtIntersectionObserver - from './wt-intersection-observer/wt-intersection-observer.vue'; +import WtIntersectionObserver from './wt-intersection-observer/wt-intersection-observer.vue'; import WtItemLink from './wt-item-link/wt-item-link.vue'; import WtLabel from './wt-label/wt-label.vue'; import WtLoadBar from './wt-load-bar/wt-load-bar.vue'; @@ -38,8 +36,7 @@ import WtLoader from './wt-loader/wt-loader.vue'; import WtLogo from './wt-logo/wt-logo.vue'; import WtNavigationBar from './wt-navigation-bar/wt-navigation-bar.vue'; import WtNotification from './wt-notification/wt-notification.vue'; -import WtNotificationsBar - from './wt-notifications-bar/wt-notifications-bar.vue'; +import WtNotificationsBar from './wt-notifications-bar/wt-notifications-bar.vue'; import WtPageHeader from './wt-page-header/wt-page-header.vue'; import WtPageWrapper from './wt-page-wrapper/wt-page-wrapper.vue'; import WtDualPanel from './wt-dual-panel/wt-dual-panel.vue'; @@ -56,20 +53,18 @@ import WtStatusSelect from './wt-status-select/wt-status-select.vue'; import WtStepper from './wt-stepper/wt-stepper.vue'; import WtSwitcher from './wt-switcher/wt-switcher.vue'; import WtTableActions from './wt-table-actions/wt-table-actions.vue'; -import WtTableColumnSelect - from './wt-table-column-select/wt-table-column-select.vue'; +import WtTableColumnSelect from './wt-table-column-select/wt-table-column-select.vue'; import WtTable from './wt-table/wt-table.vue'; +import WtTreeTable from './wt-tree-table/wt-tree-table.vue'; import WtTabs from './wt-tabs/wt-tabs.vue'; import WtTagsInput from './wt-tags-input/wt-tags-input.vue'; import WtTextarea from './wt-textarea/wt-textarea.vue'; import WtTimeInput from './wt-time-input/wt-time-input.vue'; import WtTimepicker from './wt-timepicker/wt-timepicker.vue'; import WtTooltip from './wt-tooltip/wt-tooltip.vue'; -import WtNavigationMenu - from './on-demand/wt-navigation-menu/components/wt-navigation-menu.vue'; +import WtNavigationMenu from './on-demand/wt-navigation-menu/components/wt-navigation-menu.vue'; import WtStartPage from './on-demand/wt-start-page/components/wt-start-page.vue'; -import WtSelectionPopup - from './on-demand/wt-selection-popup/wt-selection-popup.vue'; +import WtSelectionPopup from './on-demand/wt-selection-popup/wt-selection-popup.vue'; const Components = { WtActionBar, @@ -123,6 +118,7 @@ const Components = { WtPlayer, WtStatusSelect, WtTable, + WtTreeTable, WtTableActions, WtTableColumnSelect, WtButtonSelect, diff --git a/src/components/on-demand/wt-navigation-menu/components/_internals/nav-menu-lvl-1.vue b/src/components/on-demand/wt-navigation-menu/components/_internals/nav-menu-lvl-1.vue index 93c93f989..630bbf3f6 100644 --- a/src/components/on-demand/wt-navigation-menu/components/_internals/nav-menu-lvl-1.vue +++ b/src/components/on-demand/wt-navigation-menu/components/_internals/nav-menu-lvl-1.vue @@ -6,7 +6,9 @@ class="nav-menu__option" >-+