eservices-core 1.0.491 → 1.0.492

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -8,6 +8,7 @@ export declare class List<T = {}> extends EventEmitter {
8
8
  static readonly EVENT_DATA = "list-data: update";
9
9
  static readonly EVENT_CONFIG_UPDATE = "list-config:update";
10
10
  static readonly EVENT_ORDER_UPDATE = "list-order:update";
11
+ static readonly EVENT_FILTERS_UPDATE = "list-filters:update";
11
12
  /**
12
13
  * @description Используется для идентификации ячейки таблицы. В случае для new/updated используется, как уникальный
13
14
  * идентификатор записей.
@@ -23,6 +24,8 @@ export declare class List<T = {}> extends EventEmitter {
23
24
  private emitUpdateConfig;
24
25
  get order(): IListOrder;
25
26
  set order(newOrder: IListOrder);
27
+ get filters(): IListFilter[];
28
+ set filters(newFilters: IListFilter[]);
26
29
  constructor(params: IListParams);
27
30
  set wait(v: boolean);
28
31
  /**
@@ -139,6 +142,10 @@ export declare function useListConfig(list: List): Partial<IListCell>[];
139
142
  * @description Возвращает реактивный экземпляр сортировки списка
140
143
  * */
141
144
  export declare function useListOrder(list: List): IListOrder;
145
+ /**
146
+ * @description Возвращает реактивный массив фильтров для списка
147
+ * */
148
+ export declare function useListFilter(list: List): IListFilter[];
142
149
  export declare type ListCellType = 'date' | 'dateWithTime' | 'toggle' | 'select';
143
150
  export interface IDefaultListData {
144
151
  [LIST_ROW_KEY]: number;
@@ -174,4 +181,8 @@ export interface IReadParams {
174
181
  limit: number;
175
182
  offset: number;
176
183
  }
184
+ export interface IListFilter {
185
+ label: string;
186
+ name: string;
187
+ }
177
188
  export {};
package/dist/index.d.ts CHANGED
@@ -60,12 +60,12 @@ import useFormMetadata from "./hooks/use-form-metadata";
60
60
  import useFormAction from "./hooks/use-form-action";
61
61
  import useFormLabel from "./hooks/use-form-label";
62
62
  import useFormRequestData from "./hooks/use-form-request-data";
63
- import { useListFilter, useListState } from "./classes/List";
63
+ import { useListState } from "./classes/List";
64
64
  import useCustomerState from "./hooks/use-customer-state";
65
65
  import { useTableRequest, useTableState } from "./classes/table/Table";
66
66
  import { useCommunication } from "./classes/Communication";
67
67
  import useFormRequest from "./hooks/use-form-request";
68
- import { useProvideList, useListConfig, useListOrder } from "./classes/new/List";
68
+ import { useProvideList, useListConfig, useListOrder, useListFilter } from "./classes/new/List";
69
69
  import { SYMBOL_ROW } from "./classes/table/Table";
70
70
  export {
71
71
  /**
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * eservices-core v1.0.491
2
+ * eservices-core v1.0.492
3
3
  * (c) 2023 ESERVICES
4
4
  */
5
5
  'use strict';
@@ -2574,13 +2574,6 @@ function useListState$1(list) {
2574
2574
  array,
2575
2575
  state
2576
2576
  };
2577
- }
2578
- function useListFilter(defaultFilter, onFilter) {
2579
- const filters = vue.ref(defaultFilter);
2580
- vue.watch(() => filters.value, (v) => onFilter());
2581
- return {
2582
- filters
2583
- };
2584
2577
  }
2585
2578
 
2586
2579
  const SYMBOL_ROW = Symbol("__ROW_INDEX__");
@@ -2741,7 +2734,7 @@ function useTableRequest(table, options) {
2741
2734
  var css_248z$j = "*{\r\n --extra-fast :0.1s;\r\n --fast :0.2s;\r\n --medium :0.3s;\r\n\r\n box-sizing: border-box;\r\n --primary: #3949ab\r\n}\r\nhtml, body, #app{\r\n height: 100%;\r\n}\r\nbody{\r\n margin: 0;\r\n}\r\nul{\r\n text-align: left;\r\n}\r\n.flex{\r\n display: flex;\r\n}\r\n.flex_column{\r\n display: flex;\r\n flex-direction: column;\r\n}\r\n.flex_center{\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n}\r\n.flex_full{\r\n flex-grow: 1;\r\n}\r\n.grid{\r\n display: grid;\r\n}\r\n.link{\r\n text-decoration: var(--link-decoration);\r\n color: var(--link-color);\r\n}\r\n.link_hover-underline:hover,\r\n.link_hover_underline:hover{\r\n text-decoration: underline;\r\n}\r\n.link_full{\r\n position: absolute;\r\n height: 100%;\r\n width: 100%;\r\n left: 0;\r\n top:0;\r\n}\r\n.text_sm{\r\n font-weight: 400;\r\n font-size: 12px;\r\n line-height: 16px;\r\n}\r\n.text_md{\r\n font-size: 14px;\r\n line-height: 20px;\r\n}\r\n.text_lg{\r\n font-size: 16px;\r\n line-height: 24px;\r\n}\r\n.text_size_xxl{\r\n font-size: 18px;\r\n line-height: 25px;\r\n}\r\n.text_center{\r\n text-align: center;\r\n}\r\n.text_bold{\r\n font-weight: 600;\r\n}\r\n.text_nowrap{\r\n white-space: nowrap;\r\n}\r\n.text_right{\r\n text-align: right;\r\n}\r\n.text_center{\r\n text-align: center;\r\n}\r\n.text_size_sm{\r\n font-size: 12px;\r\n line-height: 130%;\r\n}\r\n.text_size_md{\r\n font-size: 14px;\r\n line-height: 140%;\r\n}\r\n.text_error{\r\n color: red;\r\n}\r\n.title_sm{\r\n font-weight: 600;\r\n font-size: 16px;\r\n line-height: 24px;\r\n}\r\n.title_md{\r\n font-weight: 600;\r\n font-size: 24px;\r\n line-height: 32px;\r\n}\r\n.title_lg{\r\n font-weight: bold;\r\n font-size: 32px;\r\n line-height: 48px;\r\n}\r\n.title_xxl{\r\n font-weight: bold;\r\n font-size: 48px;\r\n line-height: 64px;\r\n}\r\n.cursor_pointer{\r\n cursor: pointer;\r\n}\r\n.cursor_default{\r\n cursor: default;\r\n}\r\nbutton{\r\n outline: none;\r\n user-select: none;\r\n\r\n transition: background-color 0.2s;\r\n}\r\n.button{\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n\r\n outline: none;\r\n}\r\n.button_main{\r\n background-color: var(--button-background);\r\n color: var(--button-color);\r\n}\r\n.button_main:focus{\r\n background-color: var(--button-background-active);\r\n}\r\n.button_main:active{\r\n background-color: var(--button-background-active);\r\n}\r\n.button_white{\r\n background-color: var(--white);\r\n color: var(--main);\r\n}\r\n.button_sm{\r\n height: 30px;\r\n width: 130px;\r\n}\r\n.button_shadow{\r\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.25);\r\n}\r\n.button_lg{\r\n font-weight: 600;\r\n font-size: 16px;\r\n line-height: 24px;\r\n\r\n padding: 12px 0;\r\n height: 50px;\r\n width: 200px;\r\n}\r\n.button_disabled{\r\n background-color: var(--gray-1);\r\n}\r\n.button_resolve{\r\n background-color: var(--main);\r\n color: var(--white);\r\n border-radius: 2px;\r\n}\r\n.button_reject{\r\n border: 1px solid var(--color-dark);\r\n border-radius: 2px;\r\n}\r\n.button_md{\r\n height: 30px;\r\n padding: 0 10px;\r\n\r\n min-width: 80px;\r\n}\r\n.button_disabled{\r\n background-color: var(--button-disabled-background-color);\r\n cursor: pointer !important;\r\n}\r\n*{\r\n\r\n\r\n\r\n}\r\n.color_main,\r\n.color__text_main{\r\n color: var(--main);\r\n}\r\n.color__text_black{\r\n color: var(--black-1);\r\n}\r\n.color__text_gray{\r\n color: var(--text-gray);\r\n}\r\n.color__text_red,\r\n.color_red{\r\n color: var(--red);\r\n}\r\n.color__text_white{\r\n color: var(--white);\r\n}\r\n.background_orange{\r\n background-color: var(--orange)\r\n}\r\n.background_red{\r\n background-color: var(--red)\r\n}\r\n.color_dark{\r\n color: var(--dark);\r\n}\r\n.color_light{\r\n color: var(--light);\r\n}\r\n.move-vertical-enter-active,\r\n.move-vertical-leave-active {\r\n transition: transform 0.5s ease;\r\n}\r\n.move-vertical-enter-from,\r\n.move-vertical-leave-to {\r\n transform: translateY(-10px);\r\n}\r\n.move-horizontal-enter-active,\r\n.move-horizontal-leave-active {\r\n transition: transform 0.5s;\r\n}\r\n.move-horizontal-enter-from,\r\n.move-horizontal-leave-to {\r\n transform: translateX(-40px);\r\n}\r\n.modal-vertical-enter-active , .modal-vertical-leave-active, .modal-default {\r\n transition: transform var(--medium);\r\n}\r\n.modal-vertical-enter-active .modal-default, .modal-vertical-leave-active .modal-default{\r\n transform: translateY(-100px);\r\n}\r\n.move-vertical-fast-enter-active,\r\n.move-vertical-fast-leave-active {\r\n transition: transform var(--fast) ease;\r\n}\r\n.move-vertical-fast-enter-from,\r\n.move-vertical-fast-leave-to {\r\n transform: translateY(-20px);\r\n}\r\n.slide-up-enter-active,\r\n.slide-up-leave-active {\r\n transition: transform var(--fast) ease, opacity var(--fast);\r\n\r\n}\r\n.slide-up-enter-from,\r\n.slide-up-leave-to {\r\n transform: translateY(20px);\r\n opacity: 0;\r\n}\r\n.opacity-enter-active,\r\n.opacity-leave-active {\r\n transition: opacity var(--fast) ease;\r\n}\r\n.opacity-enter-from,\r\n.opacity-leave-to {\r\n opacity: 0;\r\n}\r\n.modal-default{\r\n background-color: var(--white);\r\n position: relative;\r\n z-index: 1;\r\n\r\n width: auto;\r\n\r\n background: var(--white);\r\n border-radius: var(--border-radius);\r\n\r\n\r\n}\r\n.modal-default__head{\r\n background-color: var(--black-1);\r\n text-align: center;\r\n padding: 5px 0;\r\n border-radius: 6px 6px 0 0;\r\n}\r\n.modal-default__body{\r\n gap: 20px;\r\n padding: 0 15px;\r\n}\r\n.modal-default__foot{\r\n padding: 30px 0;\r\n display: flex;\r\n justify-content: center;\r\n}\r\n.tooltip-help-elem{}\r\n.hint-tooltip{\r\n display: block;\r\n\r\n z-index: 222;\r\n margin: auto;\r\n pointer-events: none;\r\n\r\n box-shadow: 0 0 0 9999px rgba(0,0,0,0.5);\r\n}\r\n.tooltip-help-circle-in,\r\n.tooltip-help-circle-out{\r\n border-radius: 50%;\r\n}\r\n.tooltip-help-undefined{\r\n border-radius: 50px;\r\n}\r\n.tooltip-card{\r\n position: fixed;\r\n z-index: 315;\r\n\r\n display: flex;\r\n flex-direction: column;\r\n\r\n width: 480px;\r\n height: fit-content;\r\n\r\n margin: auto;\r\n\r\n border-radius: 10px;\r\n background-color: var(--hint-background);\r\n\r\n cursor: default;\r\n}\r\n.tooltip-card__foot{\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n\r\n background-color: var(--hint-background-navigation);\r\n border-radius: 10px;\r\n\r\n padding: 20px ;\r\n}\r\n.tooltip-card__foot-current{\r\n font-weight: 600;\r\n font-size: 20px;\r\n line-height: 24px;\r\n\r\n color: var(--white);\r\n}\r\n.tooltip-card__body{\r\n position: relative;\r\n display: flex;\r\n flex-direction: column;\r\n\r\n gap: 8px;\r\n\r\n padding: 20px 20px 10px 20px;\r\n}\r\n.tooltip-card__body-title{\r\n font-weight: bold;\r\n font-size: 20px;\r\n line-height: 24px;\r\n\r\n color: var(--white);\r\n}\r\n.tooltip-card__body-text{\r\n font-size: 16px;\r\n line-height: 24px;\r\n\r\n color: var(--white);\r\n}\r\n.tooltip-card__foot-button_back{\r\n background-color: var(--main-1);\r\n}\r\n.tooltip-card__foot-button_next{\r\n background-color: var(--hint);\r\n}\r\n.tooltip-card__body-close{\r\n position: absolute;\r\n right: 22px;\r\n top: 12px;\r\n width: 20px;\r\n height: 16px;\r\n opacity: 0.3;\r\n\r\n cursor: pointer;\r\n}\r\n.tooltip-card__body-close:hover {\r\n opacity: 1;\r\n}\r\n.tooltip-card__body-close:before,\r\n.tooltip-card__body-close:after {\r\n position: absolute;\r\n left: 15px;\r\n content: ' ';\r\n height: 21px;\r\n width: 2px;\r\n background-color: white;\r\n}\r\n.tooltip-card__body-close:before {\r\n transform: rotate(45deg);\r\n}\r\n.tooltip-card__body-close:after {\r\n transform: rotate(-45deg);\r\n}\r\n.tooltip-card-container-wrap{\r\n pointer-events: none;\r\n position: absolute;\r\n left: 0;\r\n top:0;\r\n\r\n z-index: 123132;\r\n\r\n height: 100%;\r\n width: 100%;\r\n}\r\n.tooltip-card-container-wrap>div{\r\n\r\n height: 100%;\r\n width: 100%;\r\n\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n}\r\n.tester-box-tooltip{\r\n pointer-events: all;\r\n}\r\n.position_relative{\r\n position: relative;\r\n}\r\n.position_absolute{\r\n position: absolute;\r\n}\r\n.gap_5{\r\n gap: 5px;\r\n}\r\n.gap_10{\r\n gap: 10px;\r\n}\r\n.gap_20{\r\n gap: 20px;\r\n}\r\n.margin-0{\r\n margin: 0;\r\n}\r\n.widget-input{\r\n\tbackground-color: var(--input-background);\r\n\tborder: var(--input-border);\r\n\tborder-radius: var(--input-border-radius);\r\n\tcolor: var(--input-color);\r\n}\r\n.widget-input:disabled{\r\n\tbackground-color: var(--input-background-disabled);\r\n\tborder: var(--input-border-disabled);\r\n}\r\n.widget-input[error=\"true\"] {\r\n\tborder: var(--input-border-error);\r\n}\r\n.widget-input::placeholder{\r\n\tcolor: var(--input-placeholder-color);\r\n}\r\n.widget-input:disabled::placeholder{\r\n\tcolor: var(--input-placeholder-color-disabled);\r\n}\r\n.input_error{\r\n\tborder: 1px solid red !important;\r\n}\r\n.input_size_md{\r\n\theight: var(--input-height);\r\n}\r\n.input-title{\r\n\tfont-size: 12px;\r\n\tline-height: 16px;\r\n\tcolor: #667085;\r\n\r\n\tmargin: 4px 0;\r\n}\r\n.widget-table{\r\n border-collapse: collapse;\r\n}\r\n.widget-table_mini{\r\n\r\n}\r\n.widget-table_mini p{\r\n margin: 0;\r\n}\r\n.widget-table_mini{\r\n\r\n}\r\n.list-cell-link>a{\r\n position: absolute;\r\n left: 0;\r\n top:0;\r\n z-index: 1;\r\n height: 100%;\r\n width: 100%;\r\n\r\n cursor: pointer;\r\n}\r\n.list-cell-link>p{\r\n font-weight: 500;\r\n}\r\n.widget-table__cell{\r\n padding: 0 20px;\r\n font-weight: 400;\r\n font-size: 14px;\r\n line-height: 19px;\r\n\r\n color: #4F4F4F;\r\n}\r\n.widget-table-cell_use{\r\n cursor: pointer;\r\n}\r\n.widget-table-cell_select{\r\n width: min-content ;\r\n}\r\n.table-cell-toggle{\r\n --border-color: black;\r\n position: relative;\r\n display: grid;\r\n place-content: center;\r\n border: 1px solid var(--border-color);\r\n height: 15px;\r\n aspect-ratio: 1 / 1;\r\n border-radius: 50%;\r\n}\r\n.table-cell-toggle_active:after {\r\n content: \"\";\r\n border-radius: 50%;\r\n background-color: var(--border-color);\r\n height: 9px;\r\n aspect-ratio: 1/1;\r\n}\r\n.widget-list-cell-text {\r\n\r\n}\r\n";
2742
2735
  styleInject(css_248z$j);
2743
2736
 
2744
- var _primaryKeys, _config, _order, _wait, _readData, _saveData;
2737
+ var _primaryKeys, _config, _order, _filters, _wait, _readData, _saveData;
2745
2738
  const LIST_ROW_KEY = '_______LIST_______ROW_______INDEX________NAME_______';
2746
2739
  class List$1 extends EventEmitter {
2747
2740
  constructor(params) {
@@ -2762,6 +2755,7 @@ class List$1 extends EventEmitter {
2762
2755
  * */
2763
2756
  _config.set(this, []);
2764
2757
  _order.set(this, []);
2758
+ _filters.set(this, []);
2765
2759
  _wait.set(this, false);
2766
2760
  _readData.set(this, (...args) => Promise);
2767
2761
  _saveData.set(this, () => { });
@@ -2787,6 +2781,13 @@ class List$1 extends EventEmitter {
2787
2781
  __classPrivateFieldSet(this, _order, newOrder);
2788
2782
  this.emit(List$1.EVENT_ORDER_UPDATE, this.order);
2789
2783
  }
2784
+ get filters() {
2785
+ return __classPrivateFieldGet(this, _filters);
2786
+ }
2787
+ set filters(newFilters) {
2788
+ __classPrivateFieldSet(this, _filters, newFilters);
2789
+ this.emit(List$1.EVENT_FILTERS_UPDATE, this.filters);
2790
+ }
2790
2791
  set wait(v) {
2791
2792
  __classPrivateFieldSet(this, _wait, v);
2792
2793
  this.emit(jenesiusVueForm.Form.EVENT_WAIT, __classPrivateFieldGet(this, _wait));
@@ -2959,13 +2960,14 @@ class List$1 extends EventEmitter {
2959
2960
  };
2960
2961
  }
2961
2962
  }
2962
- _primaryKeys = new WeakMap(), _config = new WeakMap(), _order = new WeakMap(), _wait = new WeakMap(), _readData = new WeakMap(), _saveData = new WeakMap();
2963
+ _primaryKeys = new WeakMap(), _config = new WeakMap(), _order = new WeakMap(), _filters = new WeakMap(), _wait = new WeakMap(), _readData = new WeakMap(), _saveData = new WeakMap();
2963
2964
  /**
2964
2965
  * @description Event triggers when array was updated, set new or pushed new, or updated, or deleted.
2965
2966
  * */
2966
2967
  List$1.EVENT_DATA = 'list-data: update';
2967
2968
  List$1.EVENT_CONFIG_UPDATE = 'list-config:update';
2968
2969
  List$1.EVENT_ORDER_UPDATE = 'list-order:update';
2970
+ List$1.EVENT_FILTERS_UPDATE = 'list-filters:update';
2969
2971
  /**
2970
2972
  * @description Хук используется для того, чтобы подключить считывание данных с листу.
2971
2973
  * Т.к. Filter или order могут меняться readParams может выступать не только как объект, но и фнкция, которая будет возв
@@ -3092,6 +3094,17 @@ function useListOrder(list) {
3092
3094
  list.read();
3093
3095
  });
3094
3096
  return order;
3097
+ }
3098
+ /**
3099
+ * @description Возвращает реактивный массив фильтров для списка
3100
+ * */
3101
+ function useListFilter(list) {
3102
+ const filters = vue.reactive(list.filters);
3103
+ list.on(List$1.EVENT_FILTERS_UPDATE, arr => {
3104
+ filters.splice(0, filters.length, ...arr);
3105
+ list.read();
3106
+ });
3107
+ return filters;
3095
3108
  }
3096
3109
 
3097
3110
  class Table extends List$1 {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "eservices-core",
3
- "version": "1.0.491",
3
+ "version": "1.0.492",
4
4
  "description": "Core library",
5
5
  "author": "",
6
6
  "scripts": {