@dartcom/ui-kit 10.6.1 → 10.6.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/buttons/icon/constants.d.ts +3 -0
- package/dist/components/buttons/icon/constants.d.ts.map +1 -1
- package/dist/components/buttons/icon/constants.esm.js +1 -1
- package/dist/index.cjs +129 -85
- package/dist/index.esm.js +1 -1
- package/dist/services/collection/collection.service.d.ts +35 -60
- package/dist/services/collection/collection.service.d.ts.map +1 -1
- package/dist/services/collection/collection.service.esm.js +1 -1
- package/dist/services/index.d.ts +1 -0
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/scalar-id/index.d.ts +2 -0
- package/dist/services/scalar-id/index.d.ts.map +1 -0
- package/dist/services/scalar-id/scalar-id.constants.d.ts +2 -0
- package/dist/services/scalar-id/scalar-id.constants.d.ts.map +1 -0
- package/dist/services/scalar-id/scalar-id.constants.esm.js +1 -0
- package/dist/services/scalar-id/scalar-id.service.d.ts +49 -0
- package/dist/services/scalar-id/scalar-id.service.d.ts.map +1 -0
- package/dist/services/scalar-id/scalar-id.service.esm.js +1 -0
- package/package.json +1 -1
|
@@ -23,5 +23,8 @@ export declare const icons: {
|
|
|
23
23
|
close: import("@mui/material/OverridableComponent").OverridableComponent<import("@mui/material").SvgIconTypeMap<{}, "svg">> & {
|
|
24
24
|
muiName: string;
|
|
25
25
|
};
|
|
26
|
+
copy: import("@mui/material/OverridableComponent").OverridableComponent<import("@mui/material").SvgIconTypeMap<{}, "svg">> & {
|
|
27
|
+
muiName: string;
|
|
28
|
+
};
|
|
26
29
|
};
|
|
27
30
|
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/components/buttons/icon/constants.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/components/buttons/icon/constants.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAUjB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import i from"@mui/icons-material/Clear";import m from"@mui/icons-material/CloseOutlined";import o from"@mui/icons-material/
|
|
1
|
+
import i from"@mui/icons-material/Clear";import m from"@mui/icons-material/CloseOutlined";import o from"@mui/icons-material/ContentCopy";import r from"@mui/icons-material/Delete";import t from"@mui/icons-material/Edit";import e from"@mui/icons-material/Moving";import a from"@mui/icons-material/RestartAlt";import l from"@mui/icons-material/Save";import s from"@mui/icons-material/Visibility";const n={reset:a,edit:t,move:e,save:l,delete:r,clear:i,show:s,close:m,copy:o};export{n as icons};
|
package/dist/index.cjs
CHANGED
|
@@ -9,6 +9,7 @@ var ArrowDownwardIcon = require('@mui/icons-material/ArrowDownward');
|
|
|
9
9
|
var IconButton$1 = require('@mui/material/IconButton');
|
|
10
10
|
var ClearIcon = require('@mui/icons-material/Clear');
|
|
11
11
|
var CloseIcon = require('@mui/icons-material/CloseOutlined');
|
|
12
|
+
var ContentCopyIcon = require('@mui/icons-material/ContentCopy');
|
|
12
13
|
var DeleteIcon = require('@mui/icons-material/Delete');
|
|
13
14
|
var EditIcon = require('@mui/icons-material/Edit');
|
|
14
15
|
var MovingIcon = require('@mui/icons-material/Moving');
|
|
@@ -5661,6 +5662,66 @@ class ApiService {
|
|
|
5661
5662
|
}
|
|
5662
5663
|
}
|
|
5663
5664
|
|
|
5665
|
+
const defaultId = null;
|
|
5666
|
+
|
|
5667
|
+
/**
|
|
5668
|
+
* ScalarIdService<Id>
|
|
5669
|
+
*
|
|
5670
|
+
* Небольшой сервис для хранения одного "текущего" идентификатора.
|
|
5671
|
+
* Подходит для:
|
|
5672
|
+
* - последнего обновлённого элемента (updatedId);
|
|
5673
|
+
* - последнего удалённого элемента (deletedId);
|
|
5674
|
+
* - текущего выделенного элемента (selectedId), если нужен один.
|
|
5675
|
+
*
|
|
5676
|
+
* Возможности:
|
|
5677
|
+
* - value: текущее значение или null;
|
|
5678
|
+
* - isSet: флаг, установлен ли id;
|
|
5679
|
+
* - set / reset: явное управление значением.
|
|
5680
|
+
*
|
|
5681
|
+
* Пример:
|
|
5682
|
+
* const updated = new ScalarIdService<string>();
|
|
5683
|
+
* updated.set('42');
|
|
5684
|
+
* updated.isSet; // true
|
|
5685
|
+
* updated.value; // '42'
|
|
5686
|
+
* updated.reset();
|
|
5687
|
+
*/
|
|
5688
|
+
class ScalarIdService {
|
|
5689
|
+
/**
|
|
5690
|
+
* Внутреннее хранилище идентификатора.
|
|
5691
|
+
* null означает "ничего не выбрано / не установлено".
|
|
5692
|
+
*/
|
|
5693
|
+
_value = defaultId;
|
|
5694
|
+
constructor() {
|
|
5695
|
+
makeAutoObservable(this, {}, { autoBind: true });
|
|
5696
|
+
}
|
|
5697
|
+
/**
|
|
5698
|
+
* Текущее значение id или null, если значение не установлено.
|
|
5699
|
+
*/
|
|
5700
|
+
get value() {
|
|
5701
|
+
return this._value;
|
|
5702
|
+
}
|
|
5703
|
+
/**
|
|
5704
|
+
* Установить новое значение id.
|
|
5705
|
+
*
|
|
5706
|
+
* @param value Новое значение или null для сброса.
|
|
5707
|
+
*/
|
|
5708
|
+
set(value) {
|
|
5709
|
+
this._value = value;
|
|
5710
|
+
}
|
|
5711
|
+
/**
|
|
5712
|
+
* Сбросить значение id в null.
|
|
5713
|
+
*/
|
|
5714
|
+
reset() {
|
|
5715
|
+
this._value = defaultId;
|
|
5716
|
+
}
|
|
5717
|
+
/**
|
|
5718
|
+
* Признак, что значение установлено (отлично от null).
|
|
5719
|
+
*/
|
|
5720
|
+
get isSet() {
|
|
5721
|
+
return this._value !== defaultId;
|
|
5722
|
+
}
|
|
5723
|
+
}
|
|
5724
|
+
|
|
5664
5725
|
/**
|
|
5665
5726
|
* SetService<T>
|
|
5666
5727
|
*
|
|
@@ -5789,18 +5850,23 @@ class CollectionService {
|
|
|
5789
5850
|
props;
|
|
5790
5851
|
_items = observable.map();
|
|
5791
5852
|
selectedIds = new SetService();
|
|
5853
|
+
_idSlots = new Map();
|
|
5792
5854
|
constructor(props) {
|
|
5793
5855
|
this.props = props;
|
|
5856
|
+
const { slots = [] } = props;
|
|
5794
5857
|
makeAutoObservable(this);
|
|
5858
|
+
slots.forEach((slotName) => {
|
|
5859
|
+
this._idSlots.set(slotName, new ScalarIdService());
|
|
5860
|
+
});
|
|
5795
5861
|
}
|
|
5796
5862
|
/**
|
|
5797
|
-
*
|
|
5863
|
+
* Возвращает id по самому элементу коллекции.
|
|
5798
5864
|
*/
|
|
5799
5865
|
getIdByItem(item) {
|
|
5800
5866
|
return this.props.getId(item);
|
|
5801
5867
|
}
|
|
5802
5868
|
/**
|
|
5803
|
-
* Возвращает observable
|
|
5869
|
+
* Возвращает observable‑коллекцию элементов в виде Map.
|
|
5804
5870
|
*/
|
|
5805
5871
|
get items() {
|
|
5806
5872
|
return this._items;
|
|
@@ -5809,90 +5875,35 @@ class CollectionService {
|
|
|
5809
5875
|
* Возвращает все элементы коллекции в виде обычного массива.
|
|
5810
5876
|
*/
|
|
5811
5877
|
get list() {
|
|
5812
|
-
return Array.from(this.items.values());
|
|
5878
|
+
return Object.freeze(Array.from(this.items.values()));
|
|
5813
5879
|
}
|
|
5814
|
-
/**
|
|
5815
|
-
* Возвращает все элементы, у которых значение указанного поля
|
|
5816
|
-
* строго равно переданному значению.
|
|
5817
|
-
*
|
|
5818
|
-
* @typeParam K Ключ поля элемента.
|
|
5819
|
-
* @param key Поле, по которому выполняется поиск.
|
|
5820
|
-
* @param value Значение, с которым сравнивается поле.
|
|
5821
|
-
* @returns Массив всех найденных элементов. Если совпадений нет, вернётся пустой массив.
|
|
5822
|
-
*/
|
|
5823
5880
|
findAllBy(key, value) {
|
|
5824
5881
|
return this.list.filter((item) => item[key] === value);
|
|
5825
5882
|
}
|
|
5826
|
-
/**
|
|
5827
|
-
* Возвращает все элементы, у которых значение указанного поля
|
|
5828
|
-
* входит в список переданных значений.
|
|
5829
|
-
*
|
|
5830
|
-
* @typeParam K Ключ поля элемента.
|
|
5831
|
-
* @param key Поле, по которому выполняется поиск.
|
|
5832
|
-
* @param values Набор допустимых значений поля.
|
|
5833
|
-
* @returns Массив всех найденных элементов. Если совпадений нет, вернётся пустой массив.
|
|
5834
|
-
*/
|
|
5835
5883
|
findAllIn(key, values) {
|
|
5836
5884
|
const valuesSet = new Set(values);
|
|
5837
5885
|
return this.list.filter((item) => valuesSet.has(item[key]));
|
|
5838
5886
|
}
|
|
5839
|
-
/**
|
|
5840
|
-
* Возвращает все элементы, которые одновременно соответствуют
|
|
5841
|
-
* всем переданным критериям.
|
|
5842
|
-
*
|
|
5843
|
-
* Метод выполняет точное сравнение по каждому полю.
|
|
5844
|
-
* Если передан пустой объект критериев, будут возвращены все элементы коллекции.
|
|
5845
|
-
*
|
|
5846
|
-
* @param criteria Объект с набором полей и значений для поиска.
|
|
5847
|
-
* @returns Массив всех элементов, удовлетворяющих всем условиям сразу.
|
|
5848
|
-
*/
|
|
5849
5887
|
findAllWhere(criteria) {
|
|
5850
5888
|
const entries = Object.entries(criteria);
|
|
5851
5889
|
return this.list.filter((item) => entries.every(([key, value]) => item[key] === value));
|
|
5852
5890
|
}
|
|
5853
|
-
/**
|
|
5854
|
-
* Возвращает элемент по его идентификатору.
|
|
5855
|
-
*
|
|
5856
|
-
* @param id Идентификатор элемента.
|
|
5857
|
-
* @returns Найденный элемент или undefined, если элемента с таким id нет.
|
|
5858
|
-
*/
|
|
5859
5891
|
getById(id) {
|
|
5860
|
-
|
|
5861
|
-
return item;
|
|
5892
|
+
return this.items.get(id) ?? null;
|
|
5862
5893
|
}
|
|
5863
|
-
/**
|
|
5864
|
-
* Добавляет элемент в коллекцию.
|
|
5865
|
-
*
|
|
5866
|
-
* @param item Элемент для добавления или замены.
|
|
5867
|
-
*/
|
|
5868
5894
|
add(item) {
|
|
5869
5895
|
const key = this.props.getId(item);
|
|
5870
5896
|
const value = this.props.normalizeItem(item);
|
|
5871
5897
|
this._items.set(key, value);
|
|
5872
5898
|
}
|
|
5873
|
-
/**
|
|
5874
|
-
* Добавляет в коллекцию несколько элементов подряд.
|
|
5875
|
-
*
|
|
5876
|
-
* @param items Массив элементов для добавления.
|
|
5877
|
-
*/
|
|
5878
5899
|
addMany(items) {
|
|
5879
5900
|
items.forEach((item) => {
|
|
5880
5901
|
this.add(item);
|
|
5881
5902
|
});
|
|
5882
5903
|
}
|
|
5883
|
-
/**
|
|
5884
|
-
* Удаляет элемент из коллекции по id.
|
|
5885
|
-
*
|
|
5886
|
-
* @param id Идентификатор удаляемого элемента.
|
|
5887
|
-
*/
|
|
5888
5904
|
delete(id) {
|
|
5889
5905
|
this._items.delete(id);
|
|
5890
5906
|
}
|
|
5891
|
-
/**
|
|
5892
|
-
* Удаляет из коллекции несколько элементов по списку id.
|
|
5893
|
-
*
|
|
5894
|
-
* @param ids Массив идентификаторов для удаления.
|
|
5895
|
-
*/
|
|
5896
5907
|
deleteMany(ids) {
|
|
5897
5908
|
ids.forEach((id) => {
|
|
5898
5909
|
this.delete(id);
|
|
@@ -5903,41 +5914,72 @@ class CollectionService {
|
|
|
5903
5914
|
*/
|
|
5904
5915
|
clear() {
|
|
5905
5916
|
this._items.clear();
|
|
5906
|
-
this.
|
|
5907
|
-
this.deletedId = null;
|
|
5917
|
+
this.resetSlots();
|
|
5908
5918
|
this.selectedIds.clear();
|
|
5909
5919
|
}
|
|
5910
|
-
|
|
5911
|
-
|
|
5912
|
-
|
|
5913
|
-
|
|
5914
|
-
|
|
5915
|
-
|
|
5920
|
+
/**
|
|
5921
|
+
* Запрос на получение отделельного экзепляра ScalarIdService
|
|
5922
|
+
*
|
|
5923
|
+
* @param name Имя слота.
|
|
5924
|
+
* @returns ScalarIdService по имени слота, если он был сконфигурирован.
|
|
5925
|
+
*/
|
|
5926
|
+
getIdSlot(name) {
|
|
5927
|
+
return this._idSlots.get(name) ?? null;
|
|
5916
5928
|
}
|
|
5917
|
-
|
|
5918
|
-
|
|
5919
|
-
|
|
5920
|
-
|
|
5929
|
+
/**
|
|
5930
|
+
* Возвращает id, хранящемуся в указанном слоте.
|
|
5931
|
+
*
|
|
5932
|
+
* @param name Имя слота.
|
|
5933
|
+
*/
|
|
5934
|
+
getIdBySlot(name) {
|
|
5935
|
+
const slot = this.getIdSlot(name);
|
|
5936
|
+
if (slot) {
|
|
5937
|
+
return slot.value;
|
|
5921
5938
|
}
|
|
5939
|
+
return null;
|
|
5922
5940
|
}
|
|
5923
|
-
|
|
5924
|
-
|
|
5925
|
-
|
|
5926
|
-
|
|
5927
|
-
|
|
5928
|
-
|
|
5941
|
+
/**
|
|
5942
|
+
* Возвращает элемент коллекции по id, хранящемуся в указанном слоте.
|
|
5943
|
+
*
|
|
5944
|
+
* @param name Имя слота.
|
|
5945
|
+
*/
|
|
5946
|
+
getItemBySlot(name) {
|
|
5947
|
+
const slot = this.getIdSlot(name);
|
|
5948
|
+
if (slot && slot.isSet && slot.value !== null) {
|
|
5949
|
+
return this.getById(slot.value);
|
|
5950
|
+
}
|
|
5951
|
+
return null;
|
|
5929
5952
|
}
|
|
5930
|
-
|
|
5931
|
-
|
|
5953
|
+
/**
|
|
5954
|
+
* Устанавливает id в указанный слот.
|
|
5955
|
+
*
|
|
5956
|
+
* @param name Имя слота.
|
|
5957
|
+
* @param value Новое значения id в слоте.
|
|
5958
|
+
*/
|
|
5959
|
+
setIdSlot(name, value) {
|
|
5960
|
+
const slot = this.getIdSlot(name);
|
|
5961
|
+
if (slot) {
|
|
5962
|
+
slot.set(value);
|
|
5963
|
+
}
|
|
5932
5964
|
}
|
|
5933
|
-
|
|
5934
|
-
|
|
5935
|
-
|
|
5936
|
-
|
|
5965
|
+
/**
|
|
5966
|
+
* Сбрасывает id в указанном слоте.
|
|
5967
|
+
*
|
|
5968
|
+
* @param name Имя слота.
|
|
5969
|
+
*/
|
|
5970
|
+
resetIdSlot(name) {
|
|
5971
|
+
const slot = this.getIdSlot(name);
|
|
5972
|
+
if (slot) {
|
|
5973
|
+
slot.reset();
|
|
5937
5974
|
}
|
|
5938
5975
|
}
|
|
5939
|
-
|
|
5940
|
-
|
|
5976
|
+
/**
|
|
5977
|
+
* Сбрасывает все слоты.
|
|
5978
|
+
*/
|
|
5979
|
+
resetSlots() {
|
|
5980
|
+
this._idSlots.forEach((slot) => {
|
|
5981
|
+
slot.reset();
|
|
5982
|
+
});
|
|
5941
5983
|
}
|
|
5942
5984
|
}
|
|
5943
5985
|
|
|
@@ -17585,6 +17627,7 @@ const icons = {
|
|
|
17585
17627
|
clear: ClearIcon,
|
|
17586
17628
|
show: VisibilityIcon,
|
|
17587
17629
|
close: CloseIcon,
|
|
17630
|
+
copy: ContentCopyIcon,
|
|
17588
17631
|
};
|
|
17589
17632
|
|
|
17590
17633
|
const StyledIconButton = material.styled(material.IconButton)(() => {
|
|
@@ -48362,6 +48405,7 @@ exports.Modal = modal;
|
|
|
48362
48405
|
exports.ModalContainer = ModalContainer;
|
|
48363
48406
|
exports.NoData = NoData;
|
|
48364
48407
|
exports.Paragraph = Paragraph;
|
|
48408
|
+
exports.ScalarIdService = ScalarIdService;
|
|
48365
48409
|
exports.Select = FormSelect;
|
|
48366
48410
|
exports.SetService = SetService;
|
|
48367
48411
|
exports.Tabs = Tabs;
|
package/dist/index.esm.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{alertStore}from"./stores/alert/alert.esm.js";export{modalStore}from"./stores/modal/modal.esm.js";export{Operations}from"./lib/types.esm.js";export{useDeviceType}from"./lib/hooks/useDeviceType.esm.js";export{useGetUser,useLazyGetUser}from"./lib/hooks/useGetUser.esm.js";export{useShowErrorSnackbar}from"./lib/hooks/useShowErrorSnackbar.esm.js";export{useShowSnackbar}from"./lib/hooks/useShowSnackbar.esm.js";export{useSignIn}from"./lib/hooks/useSignIn.esm.js";export{useSignOut}from"./lib/hooks/useSignOut.esm.js";export{copyInformation,encodeString,getEntityNames,getImageSrc,getNewId,getUniqueKey,getUrlencodedBody,showSnackbar}from"./lib/utils.esm.js";export{_testApiKeys}from"./configs/global/constants.esm.js";export{GlobalConfig}from"./configs/global/global.esm.js";export{API_METHODS}from"./constants/api.esm.js";export{PanelsNames}from"./constants/map.esm.js";export{arraySchema,dateRequiredSchema,dateSchema,getStringRequiredSchema,getStringSchema,numberRequiredSchema,numberSchema}from"./constants/schema.esm.js";export{default as Accordion}from"./components/accordion/accordion.esm.js";export{default as AlertDialog}from"./components/alert-dialog/alert-dialog.esm.js";export{default as Button}from"./components/buttons/button/button.esm.js";export{default as DeleteButton}from"./components/buttons/delete/delete.esm.js";export{default as IconButton}from"./components/buttons/icon/icon.esm.js";export{default as UploadButton}from"./components/buttons/upload/upload.esm.js";export{default as Card}from"./components/card/card.esm.js";export{default as Checkbox}from"./components/checkbox/checkbox.esm.js";export{default as CopyText}from"./components/copy-text/copy-text.esm.js";export{default as DateField}from"./components/date-field/date-field.esm.js";export{default as DragList}from"./components/drag-list/drag-list.esm.js";export{default as DraggableContainer}from"./components/draggable-container/draggable-container.esm.js";export{default as ErrorBoundary}from"./components/error-boundary/error-boundary.esm.js";export{default as FormErrorMessage}from"./components/form/error-message/error-message.esm.js";export{default as Form}from"./components/form/form.esm.js";export{useFormContext}from"./components/form/hooks/useFormContext.esm.js";export{default as Input}from"./components/input/input.esm.js";export{SourceLayers,TangramSourceNames}from"./components/layers/leaflet/lib/types.esm.js";export{getAllLayers,getAllPointLayers,getAllPolygonLayers,getAllPolylineLayers,getBackendDate,getLayerModalsNames,getLayerName,getValidLayer}from"./components/layers/leaflet/lib/utils.esm.js";export{sourceUrl,tile_size}from"./components/layers/leaflet/config/constants.esm.js";export{getBuildingLayers}from"./components/layers/leaflet/layers/building/utils.esm.js";export{getBuiltupAreaLayers}from"./components/layers/leaflet/layers/builtup-area/utils.esm.js";export{getAdminAreaLayers}from"./components/layers/leaflet/layers/admin-area/utils.esm.js";export{getCameraLayers}from"./components/layers/leaflet/layers/camera/lib/utils.esm.js";export{cameraConfig}from"./components/layers/leaflet/layers/camera/config/constants.esm.js";export{getCityPOILayers}from"./components/layers/leaflet/layers/city-POI/utils.esm.js";export{getConditionLayers}from"./components/layers/leaflet/layers/condition/utils.esm.js";export{getFacilityAreaLayers}from"./components/layers/leaflet/layers/facility-area/utils.esm.js";export{landuseAreaFeatureTypes,landuseAreaLayerGeometryData,landuseAreaLayerLabelData}from"./components/layers/leaflet/layers/landuse-area/constants.esm.js";export{getLanduseAreaGeometryLayer,getLanduseAreaLabelLayer,getLanduseAreaLayers}from"./components/layers/leaflet/layers/landuse-area/utils.esm.js";export{getLaneMarkingArrowLayers}from"./components/layers/leaflet/layers/lane-marking-arrow/utils.esm.js";export{getLinkLayers}from"./components/layers/leaflet/layers/link/utils.esm.js";export{getNatureFieldLayers}from"./components/layers/leaflet/layers/nature-field/utils.esm.js";export{getNatureForestGeometryLayer,getNatureForestLayers}from"./components/layers/leaflet/layers/nature-forest/utils.esm.js";export{getOceanAreaLayers}from"./components/layers/leaflet/layers/ocean-area/utils.esm.js";export{getOneWayLayers}from"./components/layers/leaflet/layers/one-way/utils.esm.js";export{getPillarLayers}from"./components/layers/leaflet/layers/pillar/lib/utils.esm.js";export{pillarConfig}from"./components/layers/leaflet/layers/pillar/config/constants.esm.js";export{catIds,text_source}from"./components/layers/leaflet/layers/POI/constants.esm.js";export{getDefaultPOI,getPOILayers,getPOITypeLayer}from"./components/layers/leaflet/layers/POI/utils.esm.js";export{getPointAddressLayers}from"./components/layers/leaflet/layers/point-address/utils.esm.js";export{getRailroadLayers}from"./components/layers/leaflet/layers/railroad/utils.esm.js";export{getTrafficSignImgSrc,getTrafficSignLayers,parseTrafficSignCSVFile}from"./components/layers/leaflet/layers/traffic-sign/lib/utils.esm.js";export{allTrafficSigns,trafficSignConfig,trafficSigns,trafficSignsDop}from"./components/layers/leaflet/layers/traffic-sign/config/constants.esm.js";export{getTrafficSignalLayers}from"./components/layers/leaflet/layers/traffic-signal/lib/utils.esm.js";export{trafficSignalConfig}from"./components/layers/leaflet/layers/traffic-signal/config/constants.esm.js";export{getWaterAreaLayers}from"./components/layers/leaflet/layers/water-area/utils.esm.js";export{getWaterLinkLayers}from"./components/layers/leaflet/layers/water-link/utils.esm.js";export{default as LeafletLayer}from"./components/layers/leaflet/leaflet.esm.js";export{TangramLayer}from"./components/layers/leaflet/services/tangram-layer.esm.js";export{default as List}from"./components/list/list.esm.js";export{default as Loader}from"./components/loader/loader.esm.js";export{default as Modal}from"./components/modal/modal.esm.js";export{ModalContainer}from"./components/modal/styles.esm.js";export{default as NoData}from"./components/no-data/no-data.esm.js";export{default as Paragraph}from"./components/paragraph/paragraph.esm.js";export{default as Select}from"./components/select/select.esm.js";export{default as Tabs}from"./components/tabs/tabs.esm.js";export{default as TextField}from"./components/text-field/text-field.esm.js";export{CSVUploader}from"./components/uploader/csv/csv.esm.js";export{default as ExcelUploader}from"./components/uploader/excel/excel.esm.js";export{default as AuthPage}from"./pages/auth/auth.esm.js";export{default as DartcomAuthProvider}from"./providers/auth/auth.esm.js";export{default as DartcomInitializeProvider}from"./providers/initialize/initialize.esm.js";export{default as DartcomLocalizationProvider}from"./providers/localization/localization.esm.js";export{default as DartcomProviders}from"./providers/providers.esm.js";export{ApiService}from"./services/api/api.service.esm.js";export{CollectionService}from"./services/collection/collection.service.esm.js";export{GeometryHistoryService}from"./services/geometry-history/geometry-history.service.esm.js";export{localStateService}from"./services/local-state/local-state.esm.js";export{localizationService}from"./services/localization/localization.esm.js";export{loggerService}from"./services/logger/logger.esm.js";export{mapService}from"./services/map/map.service.esm.js";export{queryService}from"./services/query/query.esm.js";export{SetService}from"./services/set/set.service.esm.js";
|
|
1
|
+
export{alertStore}from"./stores/alert/alert.esm.js";export{modalStore}from"./stores/modal/modal.esm.js";export{Operations}from"./lib/types.esm.js";export{useDeviceType}from"./lib/hooks/useDeviceType.esm.js";export{useGetUser,useLazyGetUser}from"./lib/hooks/useGetUser.esm.js";export{useShowErrorSnackbar}from"./lib/hooks/useShowErrorSnackbar.esm.js";export{useShowSnackbar}from"./lib/hooks/useShowSnackbar.esm.js";export{useSignIn}from"./lib/hooks/useSignIn.esm.js";export{useSignOut}from"./lib/hooks/useSignOut.esm.js";export{copyInformation,encodeString,getEntityNames,getImageSrc,getNewId,getUniqueKey,getUrlencodedBody,showSnackbar}from"./lib/utils.esm.js";export{_testApiKeys}from"./configs/global/constants.esm.js";export{GlobalConfig}from"./configs/global/global.esm.js";export{API_METHODS}from"./constants/api.esm.js";export{PanelsNames}from"./constants/map.esm.js";export{arraySchema,dateRequiredSchema,dateSchema,getStringRequiredSchema,getStringSchema,numberRequiredSchema,numberSchema}from"./constants/schema.esm.js";export{default as Accordion}from"./components/accordion/accordion.esm.js";export{default as AlertDialog}from"./components/alert-dialog/alert-dialog.esm.js";export{default as Button}from"./components/buttons/button/button.esm.js";export{default as DeleteButton}from"./components/buttons/delete/delete.esm.js";export{default as IconButton}from"./components/buttons/icon/icon.esm.js";export{default as UploadButton}from"./components/buttons/upload/upload.esm.js";export{default as Card}from"./components/card/card.esm.js";export{default as Checkbox}from"./components/checkbox/checkbox.esm.js";export{default as CopyText}from"./components/copy-text/copy-text.esm.js";export{default as DateField}from"./components/date-field/date-field.esm.js";export{default as DragList}from"./components/drag-list/drag-list.esm.js";export{default as DraggableContainer}from"./components/draggable-container/draggable-container.esm.js";export{default as ErrorBoundary}from"./components/error-boundary/error-boundary.esm.js";export{default as FormErrorMessage}from"./components/form/error-message/error-message.esm.js";export{default as Form}from"./components/form/form.esm.js";export{useFormContext}from"./components/form/hooks/useFormContext.esm.js";export{default as Input}from"./components/input/input.esm.js";export{SourceLayers,TangramSourceNames}from"./components/layers/leaflet/lib/types.esm.js";export{getAllLayers,getAllPointLayers,getAllPolygonLayers,getAllPolylineLayers,getBackendDate,getLayerModalsNames,getLayerName,getValidLayer}from"./components/layers/leaflet/lib/utils.esm.js";export{sourceUrl,tile_size}from"./components/layers/leaflet/config/constants.esm.js";export{getBuildingLayers}from"./components/layers/leaflet/layers/building/utils.esm.js";export{getBuiltupAreaLayers}from"./components/layers/leaflet/layers/builtup-area/utils.esm.js";export{getAdminAreaLayers}from"./components/layers/leaflet/layers/admin-area/utils.esm.js";export{getCameraLayers}from"./components/layers/leaflet/layers/camera/lib/utils.esm.js";export{cameraConfig}from"./components/layers/leaflet/layers/camera/config/constants.esm.js";export{getCityPOILayers}from"./components/layers/leaflet/layers/city-POI/utils.esm.js";export{getConditionLayers}from"./components/layers/leaflet/layers/condition/utils.esm.js";export{getFacilityAreaLayers}from"./components/layers/leaflet/layers/facility-area/utils.esm.js";export{landuseAreaFeatureTypes,landuseAreaLayerGeometryData,landuseAreaLayerLabelData}from"./components/layers/leaflet/layers/landuse-area/constants.esm.js";export{getLanduseAreaGeometryLayer,getLanduseAreaLabelLayer,getLanduseAreaLayers}from"./components/layers/leaflet/layers/landuse-area/utils.esm.js";export{getLaneMarkingArrowLayers}from"./components/layers/leaflet/layers/lane-marking-arrow/utils.esm.js";export{getLinkLayers}from"./components/layers/leaflet/layers/link/utils.esm.js";export{getNatureFieldLayers}from"./components/layers/leaflet/layers/nature-field/utils.esm.js";export{getNatureForestGeometryLayer,getNatureForestLayers}from"./components/layers/leaflet/layers/nature-forest/utils.esm.js";export{getOceanAreaLayers}from"./components/layers/leaflet/layers/ocean-area/utils.esm.js";export{getOneWayLayers}from"./components/layers/leaflet/layers/one-way/utils.esm.js";export{getPillarLayers}from"./components/layers/leaflet/layers/pillar/lib/utils.esm.js";export{pillarConfig}from"./components/layers/leaflet/layers/pillar/config/constants.esm.js";export{catIds,text_source}from"./components/layers/leaflet/layers/POI/constants.esm.js";export{getDefaultPOI,getPOILayers,getPOITypeLayer}from"./components/layers/leaflet/layers/POI/utils.esm.js";export{getPointAddressLayers}from"./components/layers/leaflet/layers/point-address/utils.esm.js";export{getRailroadLayers}from"./components/layers/leaflet/layers/railroad/utils.esm.js";export{getTrafficSignImgSrc,getTrafficSignLayers,parseTrafficSignCSVFile}from"./components/layers/leaflet/layers/traffic-sign/lib/utils.esm.js";export{allTrafficSigns,trafficSignConfig,trafficSigns,trafficSignsDop}from"./components/layers/leaflet/layers/traffic-sign/config/constants.esm.js";export{getTrafficSignalLayers}from"./components/layers/leaflet/layers/traffic-signal/lib/utils.esm.js";export{trafficSignalConfig}from"./components/layers/leaflet/layers/traffic-signal/config/constants.esm.js";export{getWaterAreaLayers}from"./components/layers/leaflet/layers/water-area/utils.esm.js";export{getWaterLinkLayers}from"./components/layers/leaflet/layers/water-link/utils.esm.js";export{default as LeafletLayer}from"./components/layers/leaflet/leaflet.esm.js";export{TangramLayer}from"./components/layers/leaflet/services/tangram-layer.esm.js";export{default as List}from"./components/list/list.esm.js";export{default as Loader}from"./components/loader/loader.esm.js";export{default as Modal}from"./components/modal/modal.esm.js";export{ModalContainer}from"./components/modal/styles.esm.js";export{default as NoData}from"./components/no-data/no-data.esm.js";export{default as Paragraph}from"./components/paragraph/paragraph.esm.js";export{default as Select}from"./components/select/select.esm.js";export{default as Tabs}from"./components/tabs/tabs.esm.js";export{default as TextField}from"./components/text-field/text-field.esm.js";export{CSVUploader}from"./components/uploader/csv/csv.esm.js";export{default as ExcelUploader}from"./components/uploader/excel/excel.esm.js";export{default as AuthPage}from"./pages/auth/auth.esm.js";export{default as DartcomAuthProvider}from"./providers/auth/auth.esm.js";export{default as DartcomInitializeProvider}from"./providers/initialize/initialize.esm.js";export{default as DartcomLocalizationProvider}from"./providers/localization/localization.esm.js";export{default as DartcomProviders}from"./providers/providers.esm.js";export{ApiService}from"./services/api/api.service.esm.js";export{CollectionService}from"./services/collection/collection.service.esm.js";export{GeometryHistoryService}from"./services/geometry-history/geometry-history.service.esm.js";export{localStateService}from"./services/local-state/local-state.esm.js";export{localizationService}from"./services/localization/localization.esm.js";export{loggerService}from"./services/logger/logger.esm.js";export{mapService}from"./services/map/map.service.esm.js";export{queryService}from"./services/query/query.esm.js";export{ScalarIdService}from"./services/scalar-id/scalar-id.service.esm.js";export{SetService}from"./services/set/set.service.esm.js";
|
|
@@ -1,100 +1,75 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { StringOrNumber } from '../../lib';
|
|
2
|
+
import { ScalarIdService } from '../scalar-id';
|
|
2
3
|
import { SetService } from '../set';
|
|
3
|
-
export declare class CollectionService<T, Id extends StringOrNumber> {
|
|
4
|
+
export declare class CollectionService<T, Id extends StringOrNumber, TSlots extends string> {
|
|
4
5
|
private readonly props;
|
|
5
6
|
private readonly _items;
|
|
6
7
|
readonly selectedIds: SetService<Id>;
|
|
8
|
+
private readonly _idSlots;
|
|
7
9
|
constructor(props: {
|
|
8
10
|
getId: (item: T) => Id;
|
|
9
11
|
normalizeItem: (item: T) => T;
|
|
12
|
+
slots?: readonly TSlots[];
|
|
10
13
|
});
|
|
11
14
|
/**
|
|
12
|
-
*
|
|
15
|
+
* Возвращает id по самому элементу коллекции.
|
|
13
16
|
*/
|
|
14
17
|
getIdByItem(item: T): Id;
|
|
15
18
|
/**
|
|
16
|
-
* Возвращает observable
|
|
19
|
+
* Возвращает observable‑коллекцию элементов в виде Map.
|
|
17
20
|
*/
|
|
18
21
|
get items(): import("mobx").ObservableMap<StringOrNumber, T>;
|
|
19
22
|
/**
|
|
20
23
|
* Возвращает все элементы коллекции в виде обычного массива.
|
|
21
24
|
*/
|
|
22
|
-
get list(): T[];
|
|
23
|
-
/**
|
|
24
|
-
* Возвращает все элементы, у которых значение указанного поля
|
|
25
|
-
* строго равно переданному значению.
|
|
26
|
-
*
|
|
27
|
-
* @typeParam K Ключ поля элемента.
|
|
28
|
-
* @param key Поле, по которому выполняется поиск.
|
|
29
|
-
* @param value Значение, с которым сравнивается поле.
|
|
30
|
-
* @returns Массив всех найденных элементов. Если совпадений нет, вернётся пустой массив.
|
|
31
|
-
*/
|
|
25
|
+
get list(): readonly T[];
|
|
32
26
|
findAllBy<K extends keyof T>(key: K, value: T[K]): T[];
|
|
33
|
-
/**
|
|
34
|
-
* Возвращает все элементы, у которых значение указанного поля
|
|
35
|
-
* входит в список переданных значений.
|
|
36
|
-
*
|
|
37
|
-
* @typeParam K Ключ поля элемента.
|
|
38
|
-
* @param key Поле, по которому выполняется поиск.
|
|
39
|
-
* @param values Набор допустимых значений поля.
|
|
40
|
-
* @returns Массив всех найденных элементов. Если совпадений нет, вернётся пустой массив.
|
|
41
|
-
*/
|
|
42
27
|
findAllIn<K extends keyof T>(key: K, values: readonly T[K][]): T[];
|
|
28
|
+
findAllWhere(criteria: Partial<T>): T[];
|
|
29
|
+
getById(id: Id): NonNullable<T> | null;
|
|
30
|
+
add(item: T): void;
|
|
31
|
+
addMany(items: T[]): void;
|
|
32
|
+
delete(id: Id): void;
|
|
33
|
+
deleteMany(ids: Id[]): void;
|
|
43
34
|
/**
|
|
44
|
-
*
|
|
45
|
-
* всем переданным критериям.
|
|
46
|
-
*
|
|
47
|
-
* Метод выполняет точное сравнение по каждому полю.
|
|
48
|
-
* Если передан пустой объект критериев, будут возвращены все элементы коллекции.
|
|
49
|
-
*
|
|
50
|
-
* @param criteria Объект с набором полей и значений для поиска.
|
|
51
|
-
* @returns Массив всех элементов, удовлетворяющих всем условиям сразу.
|
|
35
|
+
* Полностью очищает коллекцию и сбрасывает служебные состояния выбора.
|
|
52
36
|
*/
|
|
53
|
-
|
|
37
|
+
clear(): void;
|
|
54
38
|
/**
|
|
55
|
-
*
|
|
39
|
+
* Запрос на получение отделельного экзепляра ScalarIdService
|
|
56
40
|
*
|
|
57
|
-
* @param
|
|
58
|
-
* @returns
|
|
41
|
+
* @param name Имя слота.
|
|
42
|
+
* @returns ScalarIdService по имени слота, если он был сконфигурирован.
|
|
59
43
|
*/
|
|
60
|
-
|
|
44
|
+
getIdSlot(name: TSlots): ScalarIdService<Id> | null;
|
|
61
45
|
/**
|
|
62
|
-
*
|
|
46
|
+
* Возвращает id, хранящемуся в указанном слоте.
|
|
63
47
|
*
|
|
64
|
-
* @param
|
|
48
|
+
* @param name Имя слота.
|
|
65
49
|
*/
|
|
66
|
-
|
|
50
|
+
getIdBySlot(name: TSlots): import("../../lib").Nullable<Id>;
|
|
67
51
|
/**
|
|
68
|
-
*
|
|
52
|
+
* Возвращает элемент коллекции по id, хранящемуся в указанном слоте.
|
|
69
53
|
*
|
|
70
|
-
* @param
|
|
54
|
+
* @param name Имя слота.
|
|
71
55
|
*/
|
|
72
|
-
|
|
56
|
+
getItemBySlot(name: TSlots): NonNullable<T> | null;
|
|
73
57
|
/**
|
|
74
|
-
*
|
|
58
|
+
* Устанавливает id в указанный слот.
|
|
75
59
|
*
|
|
76
|
-
* @param
|
|
60
|
+
* @param name Имя слота.
|
|
61
|
+
* @param value Новое значения id в слоте.
|
|
77
62
|
*/
|
|
78
|
-
|
|
63
|
+
setIdSlot(name: TSlots, value: Id): void;
|
|
79
64
|
/**
|
|
80
|
-
*
|
|
65
|
+
* Сбрасывает id в указанном слоте.
|
|
81
66
|
*
|
|
82
|
-
* @param
|
|
67
|
+
* @param name Имя слота.
|
|
83
68
|
*/
|
|
84
|
-
|
|
69
|
+
resetIdSlot(name: TSlots): void;
|
|
85
70
|
/**
|
|
86
|
-
*
|
|
71
|
+
* Сбрасывает все слоты.
|
|
87
72
|
*/
|
|
88
|
-
|
|
89
|
-
private _updatedId;
|
|
90
|
-
get updatedId(): Nullable<Id>;
|
|
91
|
-
set updatedId(value: Nullable<Id>);
|
|
92
|
-
get updatedItem(): T | undefined;
|
|
93
|
-
get isUpdated(): boolean;
|
|
94
|
-
private _deletedId;
|
|
95
|
-
get deletedId(): Nullable<Id>;
|
|
96
|
-
set deletedId(value: Nullable<Id>);
|
|
97
|
-
get deletedItem(): T | undefined;
|
|
98
|
-
get isDeleted(): boolean;
|
|
73
|
+
resetSlots(): void;
|
|
99
74
|
}
|
|
100
75
|
//# sourceMappingURL=collection.service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collection.service.d.ts","sourceRoot":"","sources":["../../../src/services/collection/collection.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"collection.service.d.ts","sourceRoot":"","sources":["../../../src/services/collection/collection.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAIvC,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEpC,qBAAa,iBAAiB,CAC5B,CAAC,EACD,EAAE,SAAS,cAAc,EACzB,MAAM,SAAS,MAAM;IASnB,OAAO,CAAC,QAAQ,CAAC,KAAK;IAPxB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuC;IAE9D,SAAgB,WAAW,iBAAwB;IAEnD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA0C;gBAGhD,KAAK,EAAE;QACtB,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC;QACvB,aAAa,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC;QAC9B,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;KAC3B;IAWH;;OAEG;IACI,WAAW,CAAC,IAAI,EAAE,CAAC;IAI1B;;OAEG;IACH,IAAW,KAAK,oDAEf;IAED;;OAEG;IACH,IAAW,IAAI,iBAEd;IAEM,SAAS,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;IAIhD,SAAS,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE;IAM5D,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;IAQjC,OAAO,CAAC,EAAE,EAAE,EAAE;IAId,GAAG,CAAC,IAAI,EAAE,CAAC;IAQX,OAAO,CAAC,KAAK,EAAE,CAAC,EAAE;IAMlB,MAAM,CAAC,EAAE,EAAE,EAAE;IAIb,UAAU,CAAC,GAAG,EAAE,EAAE,EAAE;IAM3B;;OAEG;IACI,KAAK;IAQZ;;;;;OAKG;IACI,SAAS,CAAC,IAAI,EAAE,MAAM;IAI7B;;;;OAIG;IACI,WAAW,CAAC,IAAI,EAAE,MAAM;IAU/B;;;;OAIG;IACI,aAAa,CAAC,IAAI,EAAE,MAAM;IAUjC;;;;;OAKG;IACI,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE;IAQxC;;;;OAIG;IACI,WAAW,CAAC,IAAI,EAAE,MAAM;IAQ/B;;OAEG;IACI,UAAU;CAKlB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{observable as
|
|
1
|
+
import{observable as t,makeAutoObservable as e}from"../../node_modules/mobx/dist/mobx.esm.esm.js";import{ScalarIdService as s}from"../scalar-id/scalar-id.service.esm.js";import{SetService as r}from"../set/set.service.esm.js";class i{props;_items=t.map();selectedIds=new r;_idSlots=new Map;constructor(t){this.props=t;const{slots:r=[]}=t;e(this),r.forEach(t=>{this._idSlots.set(t,new s)})}getIdByItem(t){return this.props.getId(t)}get items(){return this._items}get list(){return Object.freeze(Array.from(this.items.values()))}findAllBy(t,e){return this.list.filter(s=>s[t]===e)}findAllIn(t,e){const s=new Set(e);return this.list.filter(e=>s.has(e[t]))}findAllWhere(t){const e=Object.entries(t);return this.list.filter(t=>e.every(([e,s])=>t[e]===s))}getById(t){return this.items.get(t)??null}add(t){const e=this.props.getId(t),s=this.props.normalizeItem(t);this._items.set(e,s)}addMany(t){t.forEach(t=>{this.add(t)})}delete(t){this._items.delete(t)}deleteMany(t){t.forEach(t=>{this.delete(t)})}clear(){this._items.clear(),this.resetSlots(),this.selectedIds.clear()}getIdSlot(t){return this._idSlots.get(t)??null}getIdBySlot(t){const e=this.getIdSlot(t);return e?e.value:null}getItemBySlot(t){const e=this.getIdSlot(t);return e&&e.isSet&&null!==e.value?this.getById(e.value):null}setIdSlot(t,e){const s=this.getIdSlot(t);s&&s.set(e)}resetIdSlot(t){const e=this.getIdSlot(t);e&&e.reset()}resetSlots(){this._idSlots.forEach(t=>{t.reset()})}}export{i as CollectionService};
|
package/dist/services/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAC;AACtB,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,OAAO,CAAC;AACtB,cAAc,SAAS,CAAC;AACxB,cAAc,OAAO,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAC;AACtB,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,OAAO,CAAC;AACtB,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,OAAO,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/scalar-id/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scalar-id.constants.d.ts","sourceRoot":"","sources":["../../../src/services/scalar-id/scalar-id.constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS,MAAO,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const l=null;export{l as defaultId};
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { Nullable } from '../../lib';
|
|
2
|
+
/**
|
|
3
|
+
* ScalarIdService<Id>
|
|
4
|
+
*
|
|
5
|
+
* Небольшой сервис для хранения одного "текущего" идентификатора.
|
|
6
|
+
* Подходит для:
|
|
7
|
+
* - последнего обновлённого элемента (updatedId);
|
|
8
|
+
* - последнего удалённого элемента (deletedId);
|
|
9
|
+
* - текущего выделенного элемента (selectedId), если нужен один.
|
|
10
|
+
*
|
|
11
|
+
* Возможности:
|
|
12
|
+
* - value: текущее значение или null;
|
|
13
|
+
* - isSet: флаг, установлен ли id;
|
|
14
|
+
* - set / reset: явное управление значением.
|
|
15
|
+
*
|
|
16
|
+
* Пример:
|
|
17
|
+
* const updated = new ScalarIdService<string>();
|
|
18
|
+
* updated.set('42');
|
|
19
|
+
* updated.isSet; // true
|
|
20
|
+
* updated.value; // '42'
|
|
21
|
+
* updated.reset();
|
|
22
|
+
*/
|
|
23
|
+
export declare class ScalarIdService<Id> {
|
|
24
|
+
/**
|
|
25
|
+
* Внутреннее хранилище идентификатора.
|
|
26
|
+
* null означает "ничего не выбрано / не установлено".
|
|
27
|
+
*/
|
|
28
|
+
private _value;
|
|
29
|
+
constructor();
|
|
30
|
+
/**
|
|
31
|
+
* Текущее значение id или null, если значение не установлено.
|
|
32
|
+
*/
|
|
33
|
+
get value(): Nullable<Id>;
|
|
34
|
+
/**
|
|
35
|
+
* Установить новое значение id.
|
|
36
|
+
*
|
|
37
|
+
* @param value Новое значение или null для сброса.
|
|
38
|
+
*/
|
|
39
|
+
set(value: Id): void;
|
|
40
|
+
/**
|
|
41
|
+
* Сбросить значение id в null.
|
|
42
|
+
*/
|
|
43
|
+
reset(): void;
|
|
44
|
+
/**
|
|
45
|
+
* Признак, что значение установлено (отлично от null).
|
|
46
|
+
*/
|
|
47
|
+
get isSet(): boolean;
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=scalar-id.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scalar-id.service.d.ts","sourceRoot":"","sources":["../../../src/services/scalar-id/scalar-id.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAMjC;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,eAAe,CAAC,EAAE;IAC7B;;;OAGG;IACH,OAAO,CAAC,MAAM,CAA2B;;IAMzC;;OAEG;IACH,IAAW,KAAK,iBAEf;IAED;;;;OAIG;IACI,GAAG,CAAC,KAAK,EAAE,EAAE;IAIpB;;OAEG;IACI,KAAK;IAIZ;;OAEG;IACH,IAAW,KAAK,YAEf;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{makeAutoObservable as s}from"../../node_modules/mobx/dist/mobx.esm.esm.js";import{defaultId as t}from"./scalar-id.constants.esm.js";class e{_value=t;constructor(){s(this,{},{autoBind:!0})}get value(){return this._value}set(s){this._value=s}reset(){this._value=t}get isSet(){return this._value!==t}}export{e as ScalarIdService};
|