@dartcom/ui-kit 10.5.10 → 10.5.11

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/index.cjs CHANGED
@@ -7527,6 +7527,166 @@ class AlertStore {
7527
7527
  }
7528
7528
  const alertStore = new AlertStore();
7529
7529
 
7530
+ class CollectionService {
7531
+ props;
7532
+ _items = observable.map();
7533
+ constructor(props) {
7534
+ this.props = props;
7535
+ makeAutoObservable(this);
7536
+ }
7537
+ /**
7538
+ * Возаращает id по самому элементу коллекции
7539
+ */
7540
+ getIdByItem(item) {
7541
+ return this.props.getId(item);
7542
+ }
7543
+ /**
7544
+ * Возвращает observable-коллекцию элементов в виде Map.
7545
+ */
7546
+ get items() {
7547
+ return this._items;
7548
+ }
7549
+ /**
7550
+ * Возвращает все элементы коллекции в виде обычного массива.
7551
+ */
7552
+ get list() {
7553
+ return Array.from(this.items.values());
7554
+ }
7555
+ /**
7556
+ * Возвращает все элементы, у которых значение указанного поля
7557
+ * строго равно переданному значению.
7558
+ *
7559
+ * @typeParam K Ключ поля элемента.
7560
+ * @param key Поле, по которому выполняется поиск.
7561
+ * @param value Значение, с которым сравнивается поле.
7562
+ * @returns Массив всех найденных элементов. Если совпадений нет, вернётся пустой массив.
7563
+ */
7564
+ findAllBy(key, value) {
7565
+ return this.list.filter((item) => item[key] === value);
7566
+ }
7567
+ /**
7568
+ * Возвращает все элементы, у которых значение указанного поля
7569
+ * входит в список переданных значений.
7570
+ *
7571
+ * @typeParam K Ключ поля элемента.
7572
+ * @param key Поле, по которому выполняется поиск.
7573
+ * @param values Набор допустимых значений поля.
7574
+ * @returns Массив всех найденных элементов. Если совпадений нет, вернётся пустой массив.
7575
+ */
7576
+ findAllIn(key, values) {
7577
+ const valuesSet = new Set(values);
7578
+ return this.list.filter((item) => valuesSet.has(item[key]));
7579
+ }
7580
+ /**
7581
+ * Возвращает все элементы, которые одновременно соответствуют
7582
+ * всем переданным критериям.
7583
+ *
7584
+ * Метод выполняет точное сравнение по каждому полю.
7585
+ * Если передан пустой объект критериев, будут возвращены все элементы коллекции.
7586
+ *
7587
+ * @param criteria Объект с набором полей и значений для поиска.
7588
+ * @returns Массив всех элементов, удовлетворяющих всем условиям сразу.
7589
+ */
7590
+ findAllWhere(criteria) {
7591
+ const entries = Object.entries(criteria);
7592
+ return this.list.filter((item) => entries.every(([key, value]) => item[key] === value));
7593
+ }
7594
+ /**
7595
+ * Возвращает элемент по его идентификатору.
7596
+ *
7597
+ * @param id Идентификатор элемента.
7598
+ * @returns Найденный элемент или undefined, если элемента с таким id нет.
7599
+ */
7600
+ getById(id) {
7601
+ const item = this.items.get(id);
7602
+ return item;
7603
+ }
7604
+ /**
7605
+ * Добавляет элемент в коллекцию.
7606
+ *
7607
+ * @param item Элемент для добавления или замены.
7608
+ */
7609
+ add(item) {
7610
+ this._items.set(this.props.getId(item), item);
7611
+ }
7612
+ /**
7613
+ * Добавляет в коллекцию несколько элементов подряд.
7614
+ *
7615
+ * @param items Массив элементов для добавления.
7616
+ */
7617
+ addMany(items) {
7618
+ items.forEach((item) => {
7619
+ this.add(item);
7620
+ });
7621
+ }
7622
+ /**
7623
+ * Удаляет элемент из коллекции по id.
7624
+ *
7625
+ * @param id Идентификатор удаляемого элемента.
7626
+ */
7627
+ delete(id) {
7628
+ this._items.delete(id);
7629
+ }
7630
+ /**
7631
+ * Удаляет из коллекции несколько элементов по списку id.
7632
+ *
7633
+ * @param ids Массив идентификаторов для удаления.
7634
+ */
7635
+ deleteMany(ids) {
7636
+ ids.forEach((id) => {
7637
+ this.delete(id);
7638
+ });
7639
+ }
7640
+ /**
7641
+ * Полностью очищает коллекцию и сбрасывает служебные состояния выбора.
7642
+ */
7643
+ clear() {
7644
+ this._items.clear();
7645
+ this.updatedId = null;
7646
+ this.selectedId = null;
7647
+ this.deletedId = null;
7648
+ }
7649
+ _updatedId = null;
7650
+ get updatedId() {
7651
+ return this._updatedId;
7652
+ }
7653
+ set updatedId(value) {
7654
+ this._updatedId = value;
7655
+ }
7656
+ get updatedItem() {
7657
+ if (this.updatedId != null) {
7658
+ const item = this.getById(this.updatedId);
7659
+ return item;
7660
+ }
7661
+ }
7662
+ _selectedId = null;
7663
+ get selectedId() {
7664
+ return this._selectedId;
7665
+ }
7666
+ set selectedId(value) {
7667
+ this._selectedId = value;
7668
+ }
7669
+ get selectedItem() {
7670
+ if (this.selectedId != null) {
7671
+ const item = this.getById(this.selectedId);
7672
+ return item;
7673
+ }
7674
+ }
7675
+ _deletedId = null;
7676
+ get deletedId() {
7677
+ return this._deletedId;
7678
+ }
7679
+ set deletedId(value) {
7680
+ this._deletedId = value;
7681
+ }
7682
+ get deletedItem() {
7683
+ if (this.deletedId != null) {
7684
+ const item = this.getById(this.deletedId);
7685
+ return item;
7686
+ }
7687
+ }
7688
+ }
7689
+
7530
7690
  class LocalStateService {
7531
7691
  constructor() { }
7532
7692
  load(name) {
@@ -48528,6 +48688,7 @@ exports.Button = Button;
48528
48688
  exports.CSVUploader = CSVUploader;
48529
48689
  exports.Card = CustomCard;
48530
48690
  exports.Checkbox = CustomCheckbox;
48691
+ exports.CollectionService = CollectionService;
48531
48692
  exports.CopyText = CopyText;
48532
48693
  exports.DartcomAuthProvider = auth;
48533
48694
  exports.DartcomInitializeProvider = DartcomInitializeProvider;
package/dist/index.esm.js CHANGED
@@ -1 +1 @@
1
- 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{modalStyle}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{RootStore,rootStore}from"./providers/mobx/store.esm.js";export{AlertStore,alertStore}from"./providers/mobx/stores/alert.esm.js";export{AuthStore,authStore}from"./providers/mobx/stores/auth.esm.js";export{ModalStore,modalStore}from"./providers/mobx/stores/modal.esm.js";export{DartcomMobxProvider,StoreContext}from"./providers/mobx/mobx.esm.js";export{default as DartcomProviders}from"./providers/providers.esm.js";export{ApiService}from"./services/api/api.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,mapService}from"./services/map/map.esm.js";export{queryService}from"./services/query/query.esm.js";
1
+ 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{modalStyle}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{RootStore,rootStore}from"./providers/mobx/store.esm.js";export{AlertStore,alertStore}from"./providers/mobx/stores/alert.esm.js";export{AuthStore,authStore}from"./providers/mobx/stores/auth.esm.js";export{ModalStore,modalStore}from"./providers/mobx/stores/modal.esm.js";export{DartcomMobxProvider,StoreContext}from"./providers/mobx/mobx.esm.js";export{default as DartcomProviders}from"./providers/providers.esm.js";export{ApiService}from"./services/api/api.esm.js";export{CollectionService}from"./services/collection/collection.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,mapService}from"./services/map/map.esm.js";export{queryService}from"./services/query/query.esm.js";
@@ -1 +1 @@
1
- import"../../../_virtual/uuid.esm.js";import"../../../node_modules/notistack/notistack.esm.esm.js";import"./alert.esm.js";import"./modal.esm.js";import"../mobx.esm.js";import{localStateService as s}from"../../../services/local-state/local-state.esm.js";import"axios";import"../../../_virtual/leaflet-src.esm.js";import"../../../services/query/query.esm.js";import{makeAutoObservable as e,reaction as t}from"../../../node_modules/mobx/dist/mobx.esm.esm.js";class o{constructor(){e(this),t(()=>this.isUnauthorized,e=>{e&&(s.remove("access_token"),s.remove("token_type"))})}_isUnauthorized=!1;get isUnauthorized(){return this._isUnauthorized}set isUnauthorized(s){this._isUnauthorized=s}}const i=new o;export{o as AuthStore,i as authStore};
1
+ import"../../../_virtual/uuid.esm.js";import"../../../node_modules/notistack/notistack.esm.esm.js";import"./alert.esm.js";import"./modal.esm.js";import"../mobx.esm.js";import{localStateService as s}from"../../../services/local-state/local-state.esm.js";import"axios";import{makeAutoObservable as e,reaction as t}from"../../../node_modules/mobx/dist/mobx.esm.esm.js";import"../../../_virtual/leaflet-src.esm.js";import"../../../services/query/query.esm.js";class o{constructor(){e(this),t(()=>this.isUnauthorized,e=>{e&&(s.remove("access_token"),s.remove("token_type"))})}_isUnauthorized=!1;get isUnauthorized(){return this._isUnauthorized}set isUnauthorized(s){this._isUnauthorized=s}}const i=new o;export{o as AuthStore,i as authStore};
@@ -0,0 +1,99 @@
1
+ import { Nullable, StringOrNumber } from '../../lib';
2
+ export declare class CollectionService<T, Id extends StringOrNumber> {
3
+ private readonly props;
4
+ private _items;
5
+ constructor(props: {
6
+ getId: (item: T) => Id;
7
+ });
8
+ /**
9
+ * Возаращает id по самому элементу коллекции
10
+ */
11
+ getIdByItem(item: T): Id;
12
+ /**
13
+ * Возвращает observable-коллекцию элементов в виде Map.
14
+ */
15
+ get items(): import("mobx").ObservableMap<StringOrNumber, T>;
16
+ /**
17
+ * Возвращает все элементы коллекции в виде обычного массива.
18
+ */
19
+ get list(): T[];
20
+ /**
21
+ * Возвращает все элементы, у которых значение указанного поля
22
+ * строго равно переданному значению.
23
+ *
24
+ * @typeParam K Ключ поля элемента.
25
+ * @param key Поле, по которому выполняется поиск.
26
+ * @param value Значение, с которым сравнивается поле.
27
+ * @returns Массив всех найденных элементов. Если совпадений нет, вернётся пустой массив.
28
+ */
29
+ findAllBy<K extends keyof T>(key: K, value: T[K]): T[];
30
+ /**
31
+ * Возвращает все элементы, у которых значение указанного поля
32
+ * входит в список переданных значений.
33
+ *
34
+ * @typeParam K Ключ поля элемента.
35
+ * @param key Поле, по которому выполняется поиск.
36
+ * @param values Набор допустимых значений поля.
37
+ * @returns Массив всех найденных элементов. Если совпадений нет, вернётся пустой массив.
38
+ */
39
+ findAllIn<K extends keyof T>(key: K, values: readonly T[K][]): T[];
40
+ /**
41
+ * Возвращает все элементы, которые одновременно соответствуют
42
+ * всем переданным критериям.
43
+ *
44
+ * Метод выполняет точное сравнение по каждому полю.
45
+ * Если передан пустой объект критериев, будут возвращены все элементы коллекции.
46
+ *
47
+ * @param criteria Объект с набором полей и значений для поиска.
48
+ * @returns Массив всех элементов, удовлетворяющих всем условиям сразу.
49
+ */
50
+ findAllWhere(criteria: Partial<T>): T[];
51
+ /**
52
+ * Возвращает элемент по его идентификатору.
53
+ *
54
+ * @param id Идентификатор элемента.
55
+ * @returns Найденный элемент или undefined, если элемента с таким id нет.
56
+ */
57
+ getById(id: Id): T | undefined;
58
+ /**
59
+ * Добавляет элемент в коллекцию.
60
+ *
61
+ * @param item Элемент для добавления или замены.
62
+ */
63
+ add(item: T): void;
64
+ /**
65
+ * Добавляет в коллекцию несколько элементов подряд.
66
+ *
67
+ * @param items Массив элементов для добавления.
68
+ */
69
+ addMany(items: T[]): void;
70
+ /**
71
+ * Удаляет элемент из коллекции по id.
72
+ *
73
+ * @param id Идентификатор удаляемого элемента.
74
+ */
75
+ delete(id: Id): void;
76
+ /**
77
+ * Удаляет из коллекции несколько элементов по списку id.
78
+ *
79
+ * @param ids Массив идентификаторов для удаления.
80
+ */
81
+ deleteMany(ids: Id[]): void;
82
+ /**
83
+ * Полностью очищает коллекцию и сбрасывает служебные состояния выбора.
84
+ */
85
+ clear(): void;
86
+ private _updatedId;
87
+ get updatedId(): Nullable<Id>;
88
+ set updatedId(value: Nullable<Id>);
89
+ get updatedItem(): T | undefined;
90
+ private _selectedId;
91
+ get selectedId(): Nullable<Id>;
92
+ set selectedId(value: Nullable<Id>);
93
+ get selectedItem(): T | undefined;
94
+ private _deletedId;
95
+ get deletedId(): Nullable<Id>;
96
+ set deletedId(value: Nullable<Id>);
97
+ get deletedItem(): T | undefined;
98
+ }
99
+ //# sourceMappingURL=collection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collection.d.ts","sourceRoot":"","sources":["../../../src/services/collection/collection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAIjD,qBAAa,iBAAiB,CAAC,CAAC,EAAE,EAAE,SAAS,cAAc;IAIvD,OAAO,CAAC,QAAQ,CAAC,KAAK;IAHxB,OAAO,CAAC,MAAM,CAAuC;gBAGlC,KAAK,EAAE;QACtB,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC;KACxB;IAKH;;OAEG;IACI,WAAW,CAAC,IAAI,EAAE,CAAC;IAI1B;;OAEG;IACH,IAAW,KAAK,oDAEf;IAED;;OAEG;IACH,IAAW,IAAI,QAEd;IAED;;;;;;;;OAQG;IACI,SAAS,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;IAIvD;;;;;;;;OAQG;IACI,SAAS,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE;IAMnE;;;;;;;;;OASG;IACI,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;IAQxC;;;;;OAKG;IACI,OAAO,CAAC,EAAE,EAAE,EAAE;IAMrB;;;;OAIG;IACI,GAAG,CAAC,IAAI,EAAE,CAAC;IAIlB;;;;OAIG;IACI,OAAO,CAAC,KAAK,EAAE,CAAC,EAAE;IAMzB;;;;OAIG;IACI,MAAM,CAAC,EAAE,EAAE,EAAE;IAIpB;;;;OAIG;IACI,UAAU,CAAC,GAAG,EAAE,EAAE,EAAE;IAM3B;;OAEG;IACI,KAAK;IAQZ,OAAO,CAAC,UAAU,CAAsB;IACxC,IAAW,SAAS,iBAEnB;IACD,IAAW,SAAS,CAAC,KAAK,cAAA,EAEzB;IACD,IAAW,WAAW,kBAMrB;IAED,OAAO,CAAC,WAAW,CAAsB;IACzC,IAAW,UAAU,iBAEpB;IACD,IAAW,UAAU,CAAC,KAAK,cAAA,EAE1B;IACD,IAAW,YAAY,kBAMtB;IAED,OAAO,CAAC,UAAU,CAAsB;IACxC,IAAW,SAAS,iBAEnB;IACD,IAAW,SAAS,CAAC,KAAK,cAAA,EAEzB;IACD,IAAW,WAAW,kBAMrB;CACF"}
@@ -0,0 +1 @@
1
+ import{observable as e,makeAutoObservable as t}from"../../node_modules/mobx/dist/mobx.esm.esm.js";class d{props;_items=e.map();constructor(e){this.props=e,t(this)}getIdByItem(e){return this.props.getId(e)}get items(){return this._items}get list(){return Array.from(this.items.values())}findAllBy(e,t){return this.list.filter(d=>d[e]===t)}findAllIn(e,t){const d=new Set(t);return this.list.filter(t=>d.has(t[e]))}findAllWhere(e){const t=Object.entries(e);return this.list.filter(e=>t.every(([t,d])=>e[t]===d))}getById(e){return this.items.get(e)}add(e){this._items.set(this.props.getId(e),e)}addMany(e){e.forEach(e=>{this.add(e)})}delete(e){this._items.delete(e)}deleteMany(e){e.forEach(e=>{this.delete(e)})}clear(){this._items.clear(),this.updatedId=null,this.selectedId=null,this.deletedId=null}_updatedId=null;get updatedId(){return this._updatedId}set updatedId(e){this._updatedId=e}get updatedItem(){if(null!=this.updatedId){return this.getById(this.updatedId)}}_selectedId=null;get selectedId(){return this._selectedId}set selectedId(e){this._selectedId=e}get selectedItem(){if(null!=this.selectedId){return this.getById(this.selectedId)}}_deletedId=null;get deletedId(){return this._deletedId}set deletedId(e){this._deletedId=e}get deletedItem(){if(null!=this.deletedId){return this.getById(this.deletedId)}}}export{d as CollectionService};
@@ -0,0 +1,2 @@
1
+ export * from './collection';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/collection/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC"}
@@ -1,4 +1,5 @@
1
1
  export * from './api';
2
+ export * from './collection';
2
3
  export * from './local-state';
3
4
  export * from './localization';
4
5
  export * from './logger';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAC;AACtB,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,OAAO,CAAC;AACtB,cAAc,SAAS,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,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,OAAO,CAAC;AACtB,cAAc,SAAS,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dartcom/ui-kit",
3
- "version": "10.5.10",
3
+ "version": "10.5.11",
4
4
  "description": "Кастомная библиотека компонентов Dartcom",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",