diff --git a/apps/red-ui/src/app/components/downloads-list-screen/downloads-list-screen.component.ts b/apps/red-ui/src/app/components/downloads-list-screen/downloads-list-screen.component.ts index 673c7d0fa..ec5d9f628 100644 --- a/apps/red-ui/src/app/components/downloads-list-screen/downloads-list-screen.component.ts +++ b/apps/red-ui/src/app/components/downloads-list-screen/downloads-list-screen.component.ts @@ -3,13 +3,11 @@ import { FileDownloadService } from '@upload-download/services/file-download.ser import { DownloadStatusWrapper } from '@upload-download/model/download-status.wrapper'; import { DownloadControllerService } from '@redaction/red-ui-http'; import { BaseListingComponent } from '@shared/base/base-listing.component'; -import { FilterService } from '@iqser/common-ui'; +import { CircleButtonTypes, FilterService, SortingService } from '@iqser/common-ui'; import { SearchService } from '@shared/services/search.service'; import { ScreenStateService } from '@shared/services/screen-state.service'; -import { SortingService } from '@services/sorting.service'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; import { TableColConfig } from '@shared/components/table-col-name/table-col-name.component'; -import { CircleButtonTypes } from '@iqser/common-ui'; @Component({ selector: 'redaction-downloads-list-screen', diff --git a/apps/red-ui/src/app/modules/admin/dialogs/file-attributes-csv-import-dialog/active-fields-listing/active-fields-listing.component.ts b/apps/red-ui/src/app/modules/admin/dialogs/file-attributes-csv-import-dialog/active-fields-listing/active-fields-listing.component.ts index f45e4cf77..36951f4b0 100644 --- a/apps/red-ui/src/app/modules/admin/dialogs/file-attributes-csv-import-dialog/active-fields-listing/active-fields-listing.component.ts +++ b/apps/red-ui/src/app/modules/admin/dialogs/file-attributes-csv-import-dialog/active-fields-listing/active-fields-listing.component.ts @@ -1,13 +1,11 @@ import { Component, EventEmitter, Injector, Input, OnChanges, Output, SimpleChanges } from '@angular/core'; import { Field } from '../file-attributes-csv-import-dialog.component'; import { FileAttributeConfig } from '@redaction/red-ui-http'; -import { FilterService } from '@iqser/common-ui'; +import { CircleButtonTypes, FilterService, SortingService } from '@iqser/common-ui'; import { SearchService } from '@shared/services/search.service'; import { ScreenStateService } from '@shared/services/screen-state.service'; -import { SortingService } from '@services/sorting.service'; import { BaseListingComponent } from '@shared/base/base-listing.component'; import { fileAttributeTypesTranslations } from '../../../translations/file-attribute-types-translations'; -import { CircleButtonTypes } from '@iqser/common-ui'; @Component({ selector: 'redaction-active-fields-listing', diff --git a/apps/red-ui/src/app/modules/admin/dialogs/file-attributes-csv-import-dialog/file-attributes-csv-import-dialog.component.ts b/apps/red-ui/src/app/modules/admin/dialogs/file-attributes-csv-import-dialog/file-attributes-csv-import-dialog.component.ts index ae2aa660f..1c1001219 100644 --- a/apps/red-ui/src/app/modules/admin/dialogs/file-attributes-csv-import-dialog/file-attributes-csv-import-dialog.component.ts +++ b/apps/red-ui/src/app/modules/admin/dialogs/file-attributes-csv-import-dialog/file-attributes-csv-import-dialog.component.ts @@ -8,10 +8,9 @@ import { Observable } from 'rxjs'; import { map, startWith } from 'rxjs/operators'; import { Toaster } from '@services/toaster.service'; import { TranslateService } from '@ngx-translate/core'; -import { FilterService } from '@iqser/common-ui'; +import { FilterService, SortingService } from '@iqser/common-ui'; import { SearchService } from '@shared/services/search.service'; import { ScreenStateService } from '@shared/services/screen-state.service'; -import { SortingService } from '@services/sorting.service'; import { BaseListingComponent } from '@shared/base/base-listing.component'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; diff --git a/apps/red-ui/src/app/modules/admin/screens/default-colors/default-colors-screen.component.ts b/apps/red-ui/src/app/modules/admin/screens/default-colors/default-colors-screen.component.ts index c6dc1bd5f..c9a043270 100644 --- a/apps/red-ui/src/app/modules/admin/screens/default-colors/default-colors-screen.component.ts +++ b/apps/red-ui/src/app/modules/admin/screens/default-colors/default-colors-screen.component.ts @@ -5,14 +5,12 @@ import { ActivatedRoute } from '@angular/router'; import { PermissionsService } from '@services/permissions.service'; import { AdminDialogService } from '../../services/admin-dialog.service'; import { LoadingService } from '@services/loading.service'; -import { FilterService } from '@iqser/common-ui'; +import { CircleButtonTypes, FilterService, SortingService } from '@iqser/common-ui'; import { SearchService } from '@shared/services/search.service'; import { ScreenStateService } from '@shared/services/screen-state.service'; import { BaseListingComponent } from '@shared/base/base-listing.component'; import { DefaultColorType } from '@models/default-color-key.model'; -import { SortingService } from '@services/sorting.service'; import { defaultColorsTranslations } from '../../translations/default-colors-translations'; -import { CircleButtonTypes } from '@iqser/common-ui'; @Component({ templateUrl: './default-colors-screen.component.html', diff --git a/apps/red-ui/src/app/modules/admin/screens/dictionary-listing/dictionary-listing-screen.component.ts b/apps/red-ui/src/app/modules/admin/screens/dictionary-listing/dictionary-listing-screen.component.ts index 6d7059a0e..9de2315c1 100644 --- a/apps/red-ui/src/app/modules/admin/screens/dictionary-listing/dictionary-listing-screen.component.ts +++ b/apps/red-ui/src/app/modules/admin/screens/dictionary-listing/dictionary-listing-screen.component.ts @@ -9,13 +9,11 @@ import { ActivatedRoute } from '@angular/router'; import { TypeValueWrapper } from '@models/file/type-value.wrapper'; import { TranslateService } from '@ngx-translate/core'; import { LoadingService } from '@services/loading.service'; -import { FilterService } from '@iqser/common-ui'; +import { CircleButtonTypes, FilterService, IconButtonTypes, SortingService } from '@iqser/common-ui'; import { SearchService } from '@shared/services/search.service'; import { ScreenStateService } from '@shared/services/screen-state.service'; -import { SortingService } from '@services/sorting.service'; import { BaseListingComponent } from '@shared/base/base-listing.component'; import { AdminDialogService } from '../../services/admin-dialog.service'; -import { CircleButtonTypes, IconButtonTypes } from '@iqser/common-ui'; const toChartConfig = (dict: TypeValueWrapper): DoughnutChartConfig => ({ value: dict.entries?.length ?? 0, diff --git a/apps/red-ui/src/app/modules/admin/screens/dossier-attributes-listing/dossier-attributes-listing-screen.component.ts b/apps/red-ui/src/app/modules/admin/screens/dossier-attributes-listing/dossier-attributes-listing-screen.component.ts index 84b0a775b..deadcb650 100644 --- a/apps/red-ui/src/app/modules/admin/screens/dossier-attributes-listing/dossier-attributes-listing-screen.component.ts +++ b/apps/red-ui/src/app/modules/admin/screens/dossier-attributes-listing/dossier-attributes-listing-screen.component.ts @@ -5,14 +5,12 @@ import { AppStateService } from '@state/app-state.service'; import { ActivatedRoute } from '@angular/router'; import { AdminDialogService } from '../../services/admin-dialog.service'; import { LoadingService } from '@services/loading.service'; -import { SortingService } from '@services/sorting.service'; -import { FilterService } from '@iqser/common-ui'; +import { CircleButtonTypes, FilterService, IconButtonTypes, SortingService } from '@iqser/common-ui'; import { SearchService } from '@shared/services/search.service'; import { ScreenStateService } from '@shared/services/screen-state.service'; import { PermissionsService } from '@services/permissions.service'; import { DossierAttributesService } from '@shared/services/controller-wrappers/dossier-attributes.service'; import { dossierAttributeTypesTranslations } from '../../translations/dossier-attribute-types-translations'; -import { CircleButtonTypes, IconButtonTypes } from '@iqser/common-ui'; @Component({ templateUrl: './dossier-attributes-listing-screen.component.html', diff --git a/apps/red-ui/src/app/modules/admin/screens/dossier-template-listing/dossier-templates-listing-screen.component.ts b/apps/red-ui/src/app/modules/admin/screens/dossier-template-listing/dossier-templates-listing-screen.component.ts index 81159eb85..e96584882 100644 --- a/apps/red-ui/src/app/modules/admin/screens/dossier-template-listing/dossier-templates-listing-screen.component.ts +++ b/apps/red-ui/src/app/modules/admin/screens/dossier-template-listing/dossier-templates-listing-screen.component.ts @@ -6,12 +6,10 @@ import { AdminDialogService } from '../../services/admin-dialog.service'; import { DossierTemplateModelWrapper } from '@models/file/dossier-template-model.wrapper'; import { LoadingService } from '@services/loading.service'; import { DossierTemplateControllerService } from '@redaction/red-ui-http'; -import { FilterService } from '@iqser/common-ui'; +import { CircleButtonTypes, FilterService, IconButtonTypes, SortingService } from '@iqser/common-ui'; import { SearchService } from '@shared/services/search.service'; import { ScreenStateService } from '@shared/services/screen-state.service'; import { BaseListingComponent } from '@shared/base/base-listing.component'; -import { SortingService } from '@services/sorting.service'; -import { CircleButtonTypes, IconButtonTypes } from '@iqser/common-ui'; @Component({ templateUrl: './dossier-templates-listing-screen.component.html', diff --git a/apps/red-ui/src/app/modules/admin/screens/file-attributes-listing/file-attributes-listing-screen.component.ts b/apps/red-ui/src/app/modules/admin/screens/file-attributes-listing/file-attributes-listing-screen.component.ts index 94ccfe2dd..9b28c5299 100644 --- a/apps/red-ui/src/app/modules/admin/screens/file-attributes-listing/file-attributes-listing-screen.component.ts +++ b/apps/red-ui/src/app/modules/admin/screens/file-attributes-listing/file-attributes-listing-screen.component.ts @@ -5,13 +5,11 @@ import { AppStateService } from '@state/app-state.service'; import { ActivatedRoute } from '@angular/router'; import { AdminDialogService } from '../../services/admin-dialog.service'; import { LoadingService } from '@services/loading.service'; -import { FilterService } from '@iqser/common-ui'; +import { CircleButtonTypes, FilterService, IconButtonTypes, SortingService } from '@iqser/common-ui'; import { SearchService } from '@shared/services/search.service'; import { ScreenStateService } from '@shared/services/screen-state.service'; -import { SortingService } from '@services/sorting.service'; import { BaseListingComponent } from '@shared/base/base-listing.component'; import { fileAttributeTypesTranslations } from '../../translations/file-attribute-types-translations'; -import { CircleButtonTypes, IconButtonTypes } from '@iqser/common-ui'; @Component({ templateUrl: './file-attributes-listing-screen.component.html', diff --git a/apps/red-ui/src/app/modules/admin/screens/trash/trash-screen.component.ts b/apps/red-ui/src/app/modules/admin/screens/trash/trash-screen.component.ts index 0231d0d66..11d8cb85f 100644 --- a/apps/red-ui/src/app/modules/admin/screens/trash/trash-screen.component.ts +++ b/apps/red-ui/src/app/modules/admin/screens/trash/trash-screen.component.ts @@ -4,15 +4,13 @@ import { Dossier } from '@redaction/red-ui-http'; import { LoadingService } from '@services/loading.service'; import { AppConfigKey, AppConfigService } from '@app-config/app-config.service'; import * as moment from 'moment'; -import { FilterService } from '@iqser/common-ui'; +import { CircleButtonTypes, FilterService, SortingService } from '@iqser/common-ui'; import { SearchService } from '@shared/services/search.service'; import { ScreenStateService } from '@shared/services/screen-state.service'; -import { SortingService } from '@services/sorting.service'; import { BaseListingComponent } from '@shared/base/base-listing.component'; import { DossiersService } from '../../../dossier/services/dossiers.service'; -import { CircleButtonTypes } from '@iqser/common-ui'; import { AdminDialogService } from '../../services/admin-dialog.service'; -import { ConfirmationDialogInput, TitleColors } from '../../../shared/dialogs/confirmation-dialog/confirmation-dialog.component'; +import { ConfirmationDialogInput, TitleColors } from '@shared/dialogs/confirmation-dialog/confirmation-dialog.component'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; const HOURS_IN_A_DAY = 24; diff --git a/apps/red-ui/src/app/modules/admin/screens/user-listing/user-listing-screen.component.ts b/apps/red-ui/src/app/modules/admin/screens/user-listing/user-listing-screen.component.ts index 366af994d..488ab50d6 100644 --- a/apps/red-ui/src/app/modules/admin/screens/user-listing/user-listing-screen.component.ts +++ b/apps/red-ui/src/app/modules/admin/screens/user-listing/user-listing-screen.component.ts @@ -8,15 +8,13 @@ import { DoughnutChartConfig } from '@shared/components/simple-doughnut-chart/si import { TranslateChartService } from '@services/translate-chart.service'; import { LoadingService } from '@services/loading.service'; import { InitialsAvatarComponent } from '@shared/components/initials-avatar/initials-avatar.component'; -import { FilterService } from '@iqser/common-ui'; +import { CircleButtonTypes, FilterService, IconButtonTypes, SortingService } from '@iqser/common-ui'; import { SearchService } from '@shared/services/search.service'; import { ScreenStateService } from '@shared/services/screen-state.service'; -import { SortingService } from '@services/sorting.service'; import { BaseListingComponent } from '@shared/base/base-listing.component'; import { Observable } from 'rxjs'; import { map } from 'rxjs/operators'; import { rolesTranslations } from '../../../../translations/roles-translations'; -import { CircleButtonTypes, IconButtonTypes } from '@iqser/common-ui'; @Component({ templateUrl: './user-listing-screen.component.html', diff --git a/apps/red-ui/src/app/modules/dossier/screens/dossier-listing-screen/dossier-listing-screen.component.ts b/apps/red-ui/src/app/modules/dossier/screens/dossier-listing-screen/dossier-listing-screen.component.ts index 7d0c6e637..1c02d2f98 100644 --- a/apps/red-ui/src/app/modules/dossier/screens/dossier-listing-screen/dossier-listing-screen.component.ts +++ b/apps/red-ui/src/app/modules/dossier/screens/dossier-listing-screen/dossier-listing-screen.component.ts @@ -16,11 +16,10 @@ import { DossiersDialogService } from '../../services/dossiers-dialog.service'; import { OnAttach, OnDetach } from '@utils/custom-route-reuse.strategy'; import { UserPreferenceService } from '@services/user-preference.service'; import { ButtonConfig } from '@shared/components/page-header/models/button-config.model'; -import { FilterService, NestedFilter } from '@iqser/common-ui'; +import { FilterService, NestedFilter, SortingService } from '@iqser/common-ui'; import { SearchService } from '@shared/services/search.service'; import { ScreenStateService } from '@shared/services/screen-state.service'; import { BaseListingComponent } from '@shared/base/base-listing.component'; -import { SortingService } from '@services/sorting.service'; import { TableColConfig } from '@shared/components/table-col-name/table-col-name.component'; import { workloadTranslations } from '../../translations/workload-translations'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; diff --git a/apps/red-ui/src/app/modules/dossier/screens/dossier-overview-screen/dossier-overview-screen.component.ts b/apps/red-ui/src/app/modules/dossier/screens/dossier-overview-screen/dossier-overview-screen.component.ts index ceafa3721..e358ba1de 100644 --- a/apps/red-ui/src/app/modules/dossier/screens/dossier-overview-screen/dossier-overview-screen.component.ts +++ b/apps/red-ui/src/app/modules/dossier/screens/dossier-overview-screen/dossier-overview-screen.component.ts @@ -21,10 +21,9 @@ import { DossierWrapper } from '@state/model/dossier.wrapper'; import { OnAttach, OnDetach } from '@utils/custom-route-reuse.strategy'; import { AppConfigKey, AppConfigService } from '@app-config/app-config.service'; import { ActionConfig } from '@shared/components/page-header/models/action-config.model'; -import { NestedFilter, FilterService, keyChecker } from '@iqser/common-ui'; +import { CircleButtonTypes, FilterService, keyChecker, NestedFilter, SortingService } from '@iqser/common-ui'; import { SearchService } from '@shared/services/search.service'; import { ScreenStateService } from '@shared/services/screen-state.service'; -import { SortingService } from '@services/sorting.service'; import { BaseListingComponent } from '@shared/base/base-listing.component'; import { LoadingService } from '@services/loading.service'; import { DossierAttributesService } from '@shared/services/controller-wrappers/dossier-attributes.service'; @@ -33,7 +32,6 @@ import { UserPreferenceService } from '@services/user-preference.service'; import { workloadTranslations } from '../../translations/workload-translations'; import { fileStatusTranslations } from '../../translations/file-status-translations'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; -import { CircleButtonTypes } from '@iqser/common-ui'; import { TableColConfig } from '@shared/components/table-col-name/table-col-name.component'; import { annotationFilterChecker } from '@shared/components/filters/popup-filter/utils/filter-utils'; diff --git a/apps/red-ui/src/app/modules/dossier/screens/search-screen/search-screen.component.ts b/apps/red-ui/src/app/modules/dossier/screens/search-screen/search-screen.component.ts index d9564d3a3..20e835538 100644 --- a/apps/red-ui/src/app/modules/dossier/screens/search-screen/search-screen.component.ts +++ b/apps/red-ui/src/app/modules/dossier/screens/search-screen/search-screen.component.ts @@ -5,17 +5,15 @@ import { BehaviorSubject, Observable } from 'rxjs'; import { debounceTime, map, skip, switchMap, tap } from 'rxjs/operators'; import { ActivatedRoute, Router } from '@angular/router'; import { TableColConfig } from '@shared/components/table-col-name/table-col-name.component'; -import { FilterService } from '@iqser/common-ui'; +import { FilterService, keyChecker, SortingService } from '@iqser/common-ui'; import { SearchService } from '@shared/services/search.service'; import { ScreenStateService } from '@shared/services/screen-state.service'; -import { SortingService } from '@services/sorting.service'; import { AppStateService } from '@state/app-state.service'; import { FileStatusWrapper } from '@models/file/file-status.wrapper'; import { LoadingService } from '@services/loading.service'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; import { fileStatusTranslations } from '../../translations/file-status-translations'; import { SearchPositions } from '@shared/components/page-header/models/search-positions.type'; -import { keyChecker } from '@iqser/common-ui'; import { DossierWrapper } from '@state/model/dossier.wrapper'; import { TranslateService } from '@ngx-translate/core'; diff --git a/apps/red-ui/src/app/modules/shared/base/base-listing.component.ts b/apps/red-ui/src/app/modules/shared/base/base-listing.component.ts index 411655ed7..c667365b1 100644 --- a/apps/red-ui/src/app/modules/shared/base/base-listing.component.ts +++ b/apps/red-ui/src/app/modules/shared/base/base-listing.component.ts @@ -1,13 +1,11 @@ import { Component, Injector, OnDestroy, ViewChild } from '@angular/core'; -import { SortingOrders, SortingService } from '@services/sorting.service'; +import { AutoUnsubscribeComponent, FilterService, SortingOrders, SortingService } from '@iqser/common-ui'; import { CdkVirtualScrollViewport } from '@angular/cdk/scrolling'; import { SearchService } from '../services/search.service'; import { ScreenStateService } from '../services/screen-state.service'; import { combineLatest, Observable } from 'rxjs'; -import { AutoUnsubscribeComponent } from '@iqser/common-ui'; import { distinctUntilChanged, map, switchMap } from 'rxjs/operators'; import { PermissionsService } from '@services/permissions.service'; -import { FilterService } from '@iqser/common-ui'; @Component({ template: '' }) export abstract class BaseListingComponent extends AutoUnsubscribeComponent implements OnDestroy { diff --git a/apps/red-ui/src/app/modules/shared/components/table-col-name/table-col-name.component.ts b/apps/red-ui/src/app/modules/shared/components/table-col-name/table-col-name.component.ts index f3dd88176..2dbe2d863 100644 --- a/apps/red-ui/src/app/modules/shared/components/table-col-name/table-col-name.component.ts +++ b/apps/red-ui/src/app/modules/shared/components/table-col-name/table-col-name.component.ts @@ -1,5 +1,5 @@ import { Component, Input, Optional } from '@angular/core'; -import { SortingService } from '@services/sorting.service'; +import { SortingService } from '@iqser/common-ui'; export interface TableColConfig { readonly column?: string; diff --git a/apps/red-ui/src/app/modules/shared/pipes/sort-by.pipe.ts b/apps/red-ui/src/app/modules/shared/pipes/sort-by.pipe.ts index bb2ade371..974299f02 100644 --- a/apps/red-ui/src/app/modules/shared/pipes/sort-by.pipe.ts +++ b/apps/red-ui/src/app/modules/shared/pipes/sort-by.pipe.ts @@ -1,11 +1,11 @@ import { Pipe, PipeTransform } from '@angular/core'; -import { SortingService } from '@services/sorting.service'; +import { SortingOrder, SortingService } from '@iqser/common-ui'; @Pipe({ name: 'sortBy' }) export class SortByPipe implements PipeTransform { constructor(private readonly _sortingService: SortingService) {} - transform(value: T[], order = '', column: string = ''): T[] { + transform(value: T[], order: SortingOrder, column: string): T[] { return this._sortingService.sort(value, order, column); } } diff --git a/apps/red-ui/src/app/services/sorting.service.ts b/apps/red-ui/src/app/services/sorting.service.ts deleted file mode 100644 index 4b5fa976e..000000000 --- a/apps/red-ui/src/app/services/sorting.service.ts +++ /dev/null @@ -1,63 +0,0 @@ -import { Injectable } from '@angular/core'; -import { orderBy } from 'lodash'; -import { BehaviorSubject } from 'rxjs'; - -export const SortingOrders = { - asc: 'asc', - desc: 'desc' -} as const; - -export type SortingOrder = keyof typeof SortingOrders; - -export interface SortingOption { - readonly order: SortingOrder; - readonly column: string; -} - -@Injectable({ - providedIn: 'root' -}) -export class SortingService { - private readonly _sortingOption$ = new BehaviorSubject(null); - readonly sortingOption$ = this._sortingOption$.asObservable(); - - get sortingOption(): SortingOption { - return this._sortingOption$.getValue(); - } - - setSortingOption(value: SortingOption): void { - this._sortingOption$.next(value); - } - - sort(values: T[], order?: string, column?: string): T[] { - if (!values || !order) { - return values; - } // no array - if (!column) { - if (order === SortingOrders.asc) { - return values.sort(); - } else { - return values.sort().reverse(); - } - } // sort 1d array - if (values.length <= 1) { - return values; - } // array with only one item - return orderBy(values, [column], [order]); - } - - defaultSort(values: T[]) { - return this.sort(values, this.sortingOption?.order, this.sortingOption?.column); - } - - toggleSort(column: string) { - if (this.sortingOption.column === column) { - this._sortingOption$.next({ - column, - order: this.sortingOption.order === SortingOrders.asc ? SortingOrders.desc : SortingOrders.asc - }); - } else { - this._sortingOption$.next({ column, order: SortingOrders.asc }); - } - } -} diff --git a/libs/common-ui b/libs/common-ui index 3f9915434..98ae1d569 160000 --- a/libs/common-ui +++ b/libs/common-ui @@ -1 +1 @@ -Subproject commit 3f9915434d96fc93a41b7b448826e1ba6ea85839 +Subproject commit 98ae1d5698a838ed1e3febf0b30dfa81f44b2c16 diff --git a/package.json b/package.json index 3e44ad9dd..b6809138a 100644 --- a/package.json +++ b/package.json @@ -92,6 +92,7 @@ "@nrwl/workspace": "12.3.6", "@types/cypress": "^1.1.3", "@types/jest": "26.0.23", + "@types/lodash": "^4.14.172", "@types/node": "15.12.2", "@typescript-eslint/eslint-plugin": "4.26.1", "@typescript-eslint/parser": "4.26.1", diff --git a/yarn.lock b/yarn.lock index e71c35272..fde77360b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3178,6 +3178,11 @@ resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= +"@types/lodash@^4.14.172": + version "4.14.172" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.172.tgz#aad774c28e7bfd7a67de25408e03ee5a8c3d028a" + integrity sha512-/BHF5HAx3em7/KkzVKm3LrsD6HZAXuXO1AJZQ3cRRBZj4oHZDviWPYu0aEplAqDFNHZPW6d3G7KN+ONcCCC7pw== + "@types/minimatch@*", "@types/minimatch@^3.0.3": version "3.0.3" resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d"