@xsmusices/ui 1.44.15 → 1.44.18

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/index.d.ts CHANGED
@@ -121,7 +121,7 @@ interface XSItemData {
121
121
 
122
122
  declare class XSItemActionComponent {
123
123
  item: _angular_core.InputSignal<XSItemData>;
124
- size: _angular_core.InputSignal<"normal" | "profile" | "small">;
124
+ size: _angular_core.InputSignal<"small" | "normal" | "profile">;
125
125
  isLink: _angular_core.InputSignal<boolean>;
126
126
  showBorder: _angular_core.InputSignal<boolean>;
127
127
  rounded: _angular_core.InputSignal<boolean>;
@@ -328,7 +328,7 @@ interface XSItemsSliderTexts {
328
328
  declare class XSItemsSliderTitleButtonsComponent {
329
329
  label: _angular_core.InputSignal<string | undefined>;
330
330
  titleId: _angular_core.InputSignal<string | undefined>;
331
- type: _angular_core.InputSignal<"artist" | "equipment" | "media" | "organization" | "site" | "tip" | "event" | "setup">;
331
+ type: _angular_core.InputSignal<"artist" | "event" | "equipment" | "media" | "organization" | "site" | "tip" | "setup">;
332
332
  hasSortButton: _angular_core.InputSignal<boolean>;
333
333
  items: _angular_core.InputSignal<any[]>;
334
334
  manage: _angular_core.InputSignal<boolean>;
@@ -388,7 +388,7 @@ interface CommentI {
388
388
 
389
389
  declare class XSItemsSliderComponent implements AfterViewInit, OnDestroy, OnInit {
390
390
  scrollContainer: _angular_core.Signal<ElementRef<HTMLDivElement> | undefined>;
391
- type: _angular_core.InputSignal<"artist" | "equipment" | "media" | "organization" | "site" | "tip" | "event" | "setup">;
391
+ type: _angular_core.InputSignal<"artist" | "event" | "equipment" | "media" | "organization" | "site" | "tip" | "setup">;
392
392
  label: _angular_core.InputSignal<string | undefined>;
393
393
  items: _angular_core.InputSignal<XSItemData[]>;
394
394
  typeFrom: _angular_core.InputSignal<XSItemData | undefined>;
@@ -1154,12 +1154,21 @@ type ExternalTranslateService = {
1154
1154
  declare class XSFilterPanelComponent implements OnInit {
1155
1155
  scrollContainer: _angular_core.Signal<ElementRef<any> | undefined>;
1156
1156
  show: _angular_core.ModelSignal<boolean>;
1157
+ /**
1158
+ * Modo embebido (Fase 1 App): el panel se presenta como contenido dentro
1159
+ * de un XSModal y NO pinta su propio overlay, hoja, cabecera ni gestiona
1160
+ * Escape/foco (lo hace el modal anfitrión). La lógica de grupos, tipos de
1161
+ * filtro y eventos se conserva intacta. Por defecto false: comportamiento
1162
+ * histórico sin cambios.
1163
+ */
1164
+ embedded: _angular_core.InputSignal<boolean>;
1157
1165
  externalTranslateService: _angular_core.InputSignal<ExternalTranslateService | undefined>;
1158
1166
  _demoItems: _angular_core.WritableSignal<XSFilterGroup[]>;
1159
1167
  _data: _angular_core.WritableSignal<XSFilterGroup[]>;
1160
1168
  demoItems: _angular_core.InputSignal<XSFilterGroup[]>;
1161
1169
  data: _angular_core.InputSignal<XSFilterGroup[]>;
1162
1170
  activeFiltersCount: _angular_core.InputSignal<number>;
1171
+ layout: _angular_core.InputSignal<"bottom-sheet" | "side-panel">;
1163
1172
  panelClose: _angular_core.OutputEmitterRef<void>;
1164
1173
  applied: _angular_core.OutputEmitterRef<void>;
1165
1174
  filterChange: _angular_core.OutputEmitterRef<XSFilterChangeEvent>;
@@ -1209,7 +1218,7 @@ declare class XSFilterPanelComponent implements OnInit {
1209
1218
  handleClose(): void;
1210
1219
  handleApply(): void;
1211
1220
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<XSFilterPanelComponent, never>;
1212
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<XSFilterPanelComponent, "xs-filter-panel", never, { "show": { "alias": "show"; "required": false; "isSignal": true; }; "externalTranslateService": { "alias": "externalTranslateService"; "required": false; "isSignal": true; }; "demoItems": { "alias": "demoItems"; "required": false; "isSignal": true; }; "data": { "alias": "data"; "required": false; "isSignal": true; }; "activeFiltersCount": { "alias": "activeFiltersCount"; "required": false; "isSignal": true; }; }, { "show": "showChange"; "panelClose": "panelClose"; "applied": "applied"; "filterChange": "filterChange"; "clear": "clear"; }, never, never, true, never>;
1221
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<XSFilterPanelComponent, "xs-filter-panel", never, { "show": { "alias": "show"; "required": false; "isSignal": true; }; "embedded": { "alias": "embedded"; "required": false; "isSignal": true; }; "externalTranslateService": { "alias": "externalTranslateService"; "required": false; "isSignal": true; }; "demoItems": { "alias": "demoItems"; "required": false; "isSignal": true; }; "data": { "alias": "data"; "required": false; "isSignal": true; }; "activeFiltersCount": { "alias": "activeFiltersCount"; "required": false; "isSignal": true; }; "layout": { "alias": "layout"; "required": false; "isSignal": true; }; }, { "show": "showChange"; "panelClose": "panelClose"; "applied": "applied"; "filterChange": "filterChange"; "clear": "clear"; }, never, never, true, never>;
1213
1222
  }
1214
1223
 
1215
1224
  declare class XSSectionTitleComponent {
@@ -2041,7 +2050,7 @@ declare class XSButtonGroupService {
2041
2050
  declare class XSIconComponent {
2042
2051
  private library;
2043
2052
  icon: _angular_core.InputSignal<string | string[] | [IconPrefix, IconName] | _fortawesome_fontawesome_common_types.IconLookup>;
2044
- size: _angular_core.InputSignal<"normal" | "sm" | "xs" | "lg" | "xl" | "2xl" | "3xl" | "4xl" | "5xl" | "6xl" | "7xl">;
2053
+ size: _angular_core.InputSignal<"sm" | "normal" | "xs" | "lg" | "xl" | "2xl" | "3xl" | "4xl" | "5xl" | "6xl" | "7xl">;
2045
2054
  class: _angular_core.InputSignal<string>;
2046
2055
  resolvedIcon: _angular_core.Signal<IconProp | IconDefinition>;
2047
2056
  isValidIcon: _angular_core.Signal<boolean>;
@@ -2308,7 +2317,7 @@ declare class XSImageComponent {
2308
2317
  clickable: _angular_core.InputSignal<boolean | undefined>;
2309
2318
  item: _angular_core.InputSignal<XSImageItem | null | undefined>;
2310
2319
  typeItem: _angular_core.InputSignal<string | undefined>;
2311
- imageType: _angular_core.InputSignal<"normal" | "small" | undefined>;
2320
+ imageType: _angular_core.InputSignal<"small" | "normal" | undefined>;
2312
2321
  fallbackSrc: _angular_core.InputSignal<string | undefined>;
2313
2322
  loading: _angular_core.InputSignal<"lazy" | "eager" | undefined>;
2314
2323
  priority: _angular_core.InputSignal<boolean | undefined>;
@@ -3199,10 +3208,10 @@ declare class XSListComponent {
3199
3208
  label: _angular_core.InputSignal<string | undefined>;
3200
3209
  loadingAll: _angular_core.InputSignal<boolean>;
3201
3210
  initialLoading: _angular_core.InputSignal<boolean>;
3202
- columns: _angular_core.InputSignal<1 | 2 | 3>;
3211
+ columns: _angular_core.InputSignal<3 | 1 | 2>;
3203
3212
  isLink: _angular_core.InputSignal<boolean>;
3204
- size: _angular_core.InputSignal<"normal" | "profile" | "small">;
3205
- hasScroll: _angular_core.InputSignal<boolean | "mobile" | "lg" | "xl">;
3213
+ size: _angular_core.InputSignal<"small" | "normal" | "profile">;
3214
+ hasScroll: _angular_core.InputSignal<boolean | "lg" | "xl" | "mobile">;
3206
3215
  class: _angular_core.InputSignal<string | undefined>;
3207
3216
  rounded: _angular_core.InputSignal<boolean>;
3208
3217
  showChevron: _angular_core.InputSignal<boolean>;
@@ -4706,7 +4715,7 @@ declare class XSProfileExclusiveComponent {
4706
4715
  exclusive?: boolean;
4707
4716
  }>;
4708
4717
  readonly type: _angular_core.InputSignal<"artist" | "media">;
4709
- readonly subType: _angular_core.InputSignal<"podcast" | "set" | "track" | "radioshow" | undefined>;
4718
+ readonly subType: _angular_core.InputSignal<"track" | "set" | "podcast" | "radioshow" | undefined>;
4710
4719
  readonly message: _angular_core.InputSignal<string>;
4711
4720
  readonly link: _angular_core.InputSignal<boolean>;
4712
4721
  urlLogo: string;
@@ -4796,8 +4805,8 @@ interface ProfileImageItem {
4796
4805
 
4797
4806
  declare class XSProfileImageComponent implements OnInit {
4798
4807
  readonly item: _angular_core.InputSignal<ProfileImageItem>;
4799
- readonly type: _angular_core.InputSignal<"artist" | "equipment" | "media" | "organization" | "site" | "event">;
4800
- readonly subType: _angular_core.InputSignal<"club" | "podcast" | "radio" | "label" | "promoter" | "medio" | "festival" | "set" | "track" | "radioshow" | "collective" | undefined>;
4808
+ readonly type: _angular_core.InputSignal<"artist" | "event" | "equipment" | "media" | "organization" | "site">;
4809
+ readonly subType: _angular_core.InputSignal<"label" | "track" | "set" | "club" | "festival" | "podcast" | "radioshow" | "promoter" | "collective" | "radio" | "medio" | undefined>;
4801
4810
  readonly totalDays: _angular_core.InputSignal<number | undefined>;
4802
4811
  readonly heightImage: _angular_core.InputSignal<number>;
4803
4812
  readonly viewTransitionName: _angular_core.InputSignal<string | undefined>;
@@ -4887,7 +4896,7 @@ declare class XSProfileRandomFlagComponent {
4887
4896
  }
4888
4897
 
4889
4898
  declare class XSProfileSkeletonComponent {
4890
- readonly type: _angular_core.InputSignal<"artist" | "equipment" | "media" | "organization" | "site" | "tip" | "event">;
4899
+ readonly type: _angular_core.InputSignal<"artist" | "event" | "equipment" | "media" | "organization" | "site" | "tip">;
4891
4900
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<XSProfileSkeletonComponent, never>;
4892
4901
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<XSProfileSkeletonComponent, "xs-profile-skeleton", never, { "type": { "alias": "type"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
4893
4902
  }
@@ -5028,7 +5037,7 @@ declare class XSSendScraperComponent implements OnInit {
5028
5037
  protected stepLabels: _angular_core.Signal<string[]>;
5029
5038
  protected showSourceSelection: _angular_core.Signal<boolean>;
5030
5039
  protected canSearch: _angular_core.Signal<boolean>;
5031
- protected primaryVariant: _angular_core.Signal<"soundcloud" | "youtube">;
5040
+ protected primaryVariant: _angular_core.Signal<"youtube" | "soundcloud">;
5032
5041
  protected activeFormFields: _angular_core.Signal<FormlyFieldConfig<_ngx_formly_core.FormlyFieldProps & {
5033
5042
  [additionalProperties: string]: any;
5034
5043
  }>[]>;
@@ -5513,7 +5522,7 @@ declare class XSTableItemsComponent<TType extends string = XSTableHeaderType, TI
5513
5522
  getRemainingPercentage(item: TItem): number;
5514
5523
  getUrlStatsPage: (item: TItem) => string;
5515
5524
  getNameOrCategoryEvent(event: string, type: 'name' | 'category' | 'value'): string | null;
5516
- getSubStatePromotion(item: TItem): "finished" | "inProgress" | "schedule";
5525
+ getSubStatePromotion(item: TItem): "schedule" | "finished" | "inProgress";
5517
5526
  getColorForType(type: string): string;
5518
5527
  getColorForStyle(style: TItem): string;
5519
5528
  getLevelName: (item: TItem) => string | undefined;
@@ -5635,7 +5644,7 @@ declare class XSItemTypeComponent {
5635
5644
  itemType: _angular_core.InputSignal<XSGenericItemType>;
5636
5645
  isLink: _angular_core.InputSignal<boolean>;
5637
5646
  showChevron: _angular_core.InputSignal<boolean>;
5638
- size: _angular_core.InputSignal<"normal" | "profile" | "small">;
5647
+ size: _angular_core.InputSignal<"small" | "normal" | "profile">;
5639
5648
  rounded: _angular_core.InputSignal<boolean>;
5640
5649
  loading: _angular_core.InputSignal<boolean>;
5641
5650
  readonly onClick: _angular_core.OutputEmitterRef<XSItemData>;
@@ -5647,7 +5656,7 @@ declare abstract class XSItemTypeBaseComponent {
5647
5656
  item: _angular_core.InputSignal<XSItemData>;
5648
5657
  isLink: _angular_core.InputSignal<boolean>;
5649
5658
  showChevron: _angular_core.InputSignal<boolean>;
5650
- size: _angular_core.InputSignal<"normal" | "profile" | "small">;
5659
+ size: _angular_core.InputSignal<"small" | "normal" | "profile">;
5651
5660
  rounded: _angular_core.InputSignal<boolean>;
5652
5661
  loading: _angular_core.InputSignal<boolean>;
5653
5662
  readonly onClick: _angular_core.OutputEmitterRef<XSItemData>;
@@ -5865,7 +5874,7 @@ declare class XSMapInfoBlockComponent implements OnChanges {
5865
5874
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<XSMapInfoBlockComponent, "xs-map-info-block", never, { "item": { "alias": "item"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "subtype": { "alias": "subtype"; "required": false; "isSignal": true; }; "isLoading": { "alias": "isLoading"; "required": false; "isSignal": true; }; "showEvents": { "alias": "showEvents"; "required": false; "isSignal": true; }; }, { "type": "typeChange"; "subtype": "subtypeChange"; "clickItem": "clickItem"; "clickEvent": "clickEvent"; "closeClick": "closeClick"; }, never, ["[custom-info]", "*"], true, never>;
5866
5875
  }
5867
5876
 
5868
- declare const STANDALONE_PIPES: (typeof XSTypeUserPipe | typeof TruncateTextPipe | typeof SliceArrayPipe | typeof CountryFlagPipe | typeof DateLongPipe | typeof XSDateFormatPipe | typeof ImageApiPipe | typeof NumberDaysPipe | typeof VisitsMonthTotalPipe | typeof RandomImagePipe | typeof TimeAgoPipe | typeof TableLinkPipe | typeof TitleMediaPipe | typeof SocialPipe | typeof IncludeEventPipe | typeof FilterArrayPipe | typeof XSFindLabelByValuePipe)[];
5877
+ declare const STANDALONE_PIPES: (typeof CountryFlagPipe | typeof CountryNamePipe | typeof DateLongPipe | typeof XSDateFormatPipe | typeof ImageApiPipe | typeof SliceArrayPipe | typeof TruncateTextPipe | typeof NumberDaysPipe | typeof VisitsMonthTotalPipe | typeof RandomImagePipe | typeof TimeAgoPipe | typeof TableLinkPipe | typeof TitleMediaPipe | typeof SocialPipe | typeof IncludeEventPipe | typeof FilterArrayPipe | typeof XSFindLabelByValuePipe)[];
5869
5878
 
5870
5879
  declare const LIB_STORIES: Array<() => Promise<any>>;
5871
5880
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xsmusices/ui",
3
- "version": "1.44.15",
3
+ "version": "1.44.18",
4
4
  "publishConfig": {
5
5
  "registry": "https://registry.npmjs.org/"
6
6
  },
@@ -1 +0,0 @@
1
- {"version":3,"file":"xsmusices-ui-xs-filter-panel.xsstory-DbvxGppo.mjs","sources":["../../../projects/xs-ui/src/lib/components/ui/filter-panel/xstory/xs-filter-panel.xsstory.ts"],"sourcesContent":["import { StoryMeta } from '../../../../story.types';\nimport { XSFilterPanelComponent } from '../xs-filter-panel.component';\n\nexport const story: StoryMeta = {\n id: 'filter-panel',\n name: 'Filter Panel',\n type: 'component',\n subtype: 'Base',\n status: 'active',\n usage: ['admin', 'app', 'monitor'],\n multilanguage: true,\n updated: '2026-04-11T12:00:00.000Z',\n created: '2026-04-03T10:00:00.000Z',\n description:\n 'Panel de filtros avanzado que emerge desde la parte inferior. Soporta múltiples tipos de filtros: selección única, selección múltiple, booleanos, rangos numéricos, rangos de fechas y búsqueda selectiva. Permite organizar filtros por grupos (acordeones) con selección única y buscador contextual interno para cada grupo. Incluye lógica de \"Hecho\" para cerrar y \"Limpiar\" para resetear selecciones específicas. Optimizado para dispositivos móviles con scroll independiente y cabeceras sticky.',\n component: XSFilterPanelComponent,\n selector: 'xs-filter-panel',\n inputs: [\n {\n key: 'demoItems',\n label: 'Demo Items',\n type: 'json',\n default: [],\n },\n ],\n examples: [\n {\n name: 'Filtros de Clasificación',\n description:\n 'Ejemplo clásico de filtros para una aplicación de catálogo o marketplace.',\n inputs: {\n demoItems: [\n {\n id: 'country',\n title: 'Ubicación',\n selectedId: 'es',\n options: [\n { id: 'es', label: 'España' },\n { id: 'fr', label: 'Francia' },\n { id: 'it', label: 'Italia' },\n { id: 'pt', label: 'Portugal' },\n { id: 'de', label: 'Alemania' },\n { id: 'uk', label: 'Reino Unido' },\n ],\n },\n {\n id: 'category',\n title: 'Estilo Artístico',\n options: [\n { id: 'modern', label: 'Moderno' },\n { id: 'classic', label: 'Clásico' },\n { id: 'minimalist', label: 'Minimalista' },\n { id: 'industrial', label: 'Industrial' },\n { id: 'vintage', label: 'Vintage' },\n ],\n },\n {\n id: 'price-range',\n title: 'Rango de Precio',\n options: [\n { id: 'low', label: 'Económico' },\n { id: 'mid', label: 'Intermedio' },\n { id: 'high', label: 'Premium' },\n { id: 'luxury', label: 'Lujo' },\n ],\n },\n ],\n },\n },\n {\n name: 'Preferencias de Usuario',\n description:\n 'Uso del panel para configurar preferencias rápidas de la interfaz.',\n inputs: {\n demoItems: [\n {\n id: 'language',\n title: 'Idioma de la interfaz',\n selectedId: 'es-ES',\n options: [\n { id: 'es-ES', label: 'Español (España)' },\n { id: 'en-US', label: 'English (US)' },\n { id: 'fr-FR', label: 'Français' },\n { id: 'de-DE', label: 'Deutsch' },\n { id: 'jp-JP', label: '日本語' },\n ],\n },\n {\n id: 'theme',\n title: 'Tema Visual',\n selectedId: 'dark',\n options: [\n { id: 'light', label: 'Modo Claro' },\n { id: 'dark', label: 'Modo Oscuro' },\n { id: 'system', label: 'Sincronizar con Sistema' },\n ],\n },\n ],\n },\n },\n {\n name: 'Rango de Fechas',\n description:\n 'Ejemplo de filtro por rango de fechas para eventos o reservas.',\n inputs: {\n demoItems: [\n {\n id: 'date-range',\n title: 'Rango de Fechas',\n type: 'dateRange',\n dateFrom: '2026-04-01',\n dateTo: '2026-04-30',\n },\n {\n id: 'country',\n title: 'País',\n selectedId: 'es',\n options: [\n { id: 'es', label: 'España' },\n { id: 'mx', label: 'México' },\n { id: 'ar', label: 'Argentina' },\n ],\n },\n ],\n },\n },\n {\n name: 'Selección Múltiple',\n description:\n 'Ejemplo de filtro con selección múltiple para categorías.',\n inputs: {\n demoItems: [\n {\n id: 'categories',\n title: 'Categorías',\n type: 'multiSelect',\n selectedIds: ['rock', 'pop'],\n options: [\n { id: 'rock', label: 'Rock' },\n { id: 'pop', label: 'Pop' },\n { id: 'jazz', label: 'Jazz' },\n { id: 'electronic', label: 'Electrónica' },\n { id: 'classical', label: 'Clásica' },\n ],\n },\n {\n id: 'mood',\n title: 'Estado de Ánimo',\n type: 'multiSelect',\n options: [\n { id: 'energetic', label: 'Enérgico' },\n { id: 'relaxed', label: 'Relajado' },\n { id: 'melancholic', label: 'Melancólico' },\n { id: 'happy', label: 'Feliz' },\n ],\n },\n ],\n },\n },\n {\n name: 'Filtros Booleanos',\n description:\n 'Ejemplo de filtros booleanos para opciones de sí/no.',\n inputs: {\n demoItems: [\n {\n id: 'featured',\n title: 'Destacado',\n type: 'boolean',\n selectedBoolean: true,\n },\n {\n id: 'available',\n title: 'Disponible',\n type: 'boolean',\n selectedBoolean: false,\n },\n {\n id: 'premium',\n title: 'Premium',\n type: 'boolean',\n },\n ],\n },\n },\n {\n name: 'Rango Numérico',\n description:\n 'Ejemplo de filtro por rango numérico para precios o calificaciones.',\n inputs: {\n demoItems: [\n {\n id: 'price-range',\n title: 'Rango de Precio',\n type: 'range',\n minValue: 0,\n maxValue: 1000,\n selectedMin: 100,\n selectedMax: 500,\n },\n {\n id: 'rating',\n title: 'Calificación',\n type: 'range',\n minValue: 1,\n maxValue: 5,\n selectedMin: 3,\n },\n ],\n },\n },\n {\n name: 'Búsqueda Selectiva',\n description:\n 'Ejemplo de filtro con búsqueda para selección de elementos.',\n inputs: {\n demoItems: [\n {\n id: 'artist-search',\n title: 'Buscar Artista',\n type: 'searchSelect',\n searchPlaceholder:\n 'Escribe el nombre del artista...',\n selectedSearchValue: 'The Beatles',\n },\n {\n id: 'genre',\n title: 'Género',\n selectedId: 'rock',\n options: [\n { id: 'rock', label: 'Rock' },\n { id: 'pop', label: 'Pop' },\n { id: 'jazz', label: 'Jazz' },\n ],\n },\n ],\n },\n },\n {\n name: 'Filtros Combinados',\n description:\n 'Ejemplo que combina diferentes tipos de filtros para una búsqueda avanzada.',\n inputs: {\n demoItems: [\n {\n id: 'categories',\n title: 'Categorías',\n type: 'multiSelect',\n selectedIds: ['rock', 'pop'],\n options: [\n { id: 'rock', label: 'Rock' },\n { id: 'pop', label: 'Pop' },\n { id: 'jazz', label: 'Jazz' },\n { id: 'electronic', label: 'Electrónica' },\n ],\n },\n {\n id: 'price-range',\n title: 'Rango de Precio',\n type: 'range',\n minValue: 0,\n maxValue: 500,\n selectedMin: 50,\n selectedMax: 200,\n },\n {\n id: 'featured',\n title: 'Solo Destacados',\n type: 'boolean',\n selectedBoolean: true,\n },\n {\n id: 'date-range',\n title: 'Fecha de Evento',\n type: 'dateRange',\n dateFrom: '2026-05-01',\n dateTo: '2026-05-31',\n },\n {\n id: 'venue-search',\n title: 'Buscar Venue',\n type: 'searchSelect',\n searchPlaceholder: 'Nombre del lugar...',\n },\n ],\n },\n },\n ],\n coverage: {\n statements: 92,\n branches: 85,\n functions: 90,\n lines: 92,\n },\n};\n"],"names":[],"mappings":"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"}