{"version":3,"file":"ssv-ngx.ux.mjs","sources":["../../../../libs/ngx.ux/src/viewport/viewport-data/viewport-data-matcher.ts","../../../../libs/ngx.ux/src/platform/window.ts","../../../../libs/ngx.ux/src/viewport/viewport.model.ts","../../../../libs/ngx.ux/src/viewport/viewport-server-size.service.ts","../../../../libs/ngx.ux/src/viewport/viewport.util.ts","../../../../libs/ngx.ux/src/viewport/viewport.options.ts","../../../../libs/ngx.ux/src/viewport/viewport.service.ts","../../../../libs/ngx.ux/src/viewport/viewport-data/viewport-data.utils.ts","../../../../libs/ngx.ux/src/viewport/viewport-data/viewport-data.service.ts","../../../../libs/ngx.ux/src/viewport/viewport-data/viewport-data.pipe.ts","../../../../libs/ngx.ux/src/viewport/viewport-matcher-var.directive.ts","../../../../libs/ngx.ux/src/viewport/viewport-matcher.directive.ts","../../../../libs/ngx.ux/src/viewport/viewport.module.ts","../../../../libs/ngx.ux/src/ux.module.ts","../../../../libs/ngx.ux/src/version.ts","../../../../libs/ngx.ux/src/ssv-ngx.ux.ts"],"sourcesContent":["import type { Dictionary } from \"../../internal/internal.model\";\nimport type { ViewportSizeTypeInfo } from \"../viewport.model\";\n\nexport type ViewportDataConfig<TValue = unknown, TData = Dictionary<TValue>> = TData & {\n\tdefault?: TValue\n};\n\nexport enum ViewportDataMatchStrategy {\n\t/** Indicates that size should match exact or default. */\n\texact,\n\n\t/** Indicates that size matches when exact match, first match smaller (down) or default. */\n\tsmaller,\n\n\t/** Indicates that size matches when exact match, first match larger (up) or default. */\n\tlarger,\n\n\t/** Indicates that size matches when exact match, or it tries both smaller/larger (smaller is preferred) until match or default. */\n\tclosestSmallerFirst,\n\n\t/** Indicates that size matches when exact match, or it tries both larger/smaller (larger is preferred) until match or default. */\n\tclosestLargerFirst,\n}\nexport type ViewportDataMatchStrategyLiteral = keyof typeof ViewportDataMatchStrategy;\n\nexport interface ViewportDataMatcher<T = unknown> {\n\t(\n\t\tdataConfig: ViewportDataConfig<T>,\n\t\tcurrentSizeType: ViewportSizeTypeInfo,\n\t\tsizeTypes: ViewportSizeTypeInfo[],\n\t\tsizeTypeMap: Dictionary<ViewportSizeTypeInfo>,\n\t): T | undefined;\n}\n\n/**\n * Utility function to match data based on strategy and size.\n *\n * @param dataConfig Data config to generate rules based on.\n * @param sizeType Size type to get data for.\n * @param strategy Strategy to use when building rules.\n * @param sizeTypes Available size types ordered by index type. (Can be obtained from `ViewportService`)\n * @param sizeTypeMap Available size type map. (Can be obtained from `ViewportService`)\n * @returns Returns the matched data value.\n */\nexport function matchViewportData<T>(\n\tdataConfig: ViewportDataConfig<T>,\n\tsizeType: ViewportSizeTypeInfo,\n\tstrategy: ViewportDataMatchStrategy,\n\tsizeTypes: ViewportSizeTypeInfo[],\n\tsizeTypeMap: Dictionary<ViewportSizeTypeInfo>,\n): T | undefined {\n\tconst matchFn = matchStrategyHandlerMap[strategy];\n\tif (!matchFn) {\n\t\tthrow Error(`matchViewportData: Viewport Data strategy not implemented. Strategy: '${strategy}'`);\n\t}\n\tconst data = matchFn(dataConfig, sizeType, sizeTypes, sizeTypeMap) as T;\n\tif (data !== undefined) {\n\t\treturn data;\n\t}\n\treturn dataConfig.default;\n}\n\n\nconst matchStrategyHandlerMap: Dictionary<ViewportDataMatcher> = {\n\t[ViewportDataMatchStrategy.exact]: matchWithExact,\n\t[ViewportDataMatchStrategy.larger]: matchWithLargerMatch,\n\t[ViewportDataMatchStrategy.smaller]: matchWithSmallerMatch,\n\t[ViewportDataMatchStrategy.closestSmallerFirst]: matchWithClosestSmallerFirstMatch,\n\t[ViewportDataMatchStrategy.closestLargerFirst]: matchWithClosestLargerFirstMatch,\n};\n\nfunction matchWithExact<T>(\n\tdataConfig: ViewportDataConfig<T>,\n\tcurrentSizeType: ViewportSizeTypeInfo,\n): T | undefined {\n\treturn dataConfig[currentSizeType.name];\n}\n\nfunction matchWithLargerMatch<T>(\n\tdataConfig: ViewportDataConfig<T>,\n\tcurrentSizeType: ViewportSizeTypeInfo,\n\tsizeTypes: ViewportSizeTypeInfo[],\n): T | undefined {\n\tlet data = dataConfig[currentSizeType.name];\n\tif (data !== undefined) {\n\t\treturn data;\n\t}\n\n\tconst largestTypeIdx = sizeTypes[sizeTypes.length - 1].type;\n\tif (currentSizeType.type >= largestTypeIdx) {\n\t\treturn undefined;\n\t}\n\n\tfor (let index = currentSizeType.type; index < sizeTypes.length; index++) {\n\t\tconst sizeType = sizeTypes[index];\n\t\tdata = dataConfig[sizeType.name];\n\t\tif (data !== undefined) {\n\t\t\treturn data;\n\t\t}\n\t}\n\n\treturn undefined;\n}\n\nfunction matchWithSmallerMatch<T>(\n\tdataConfig: ViewportDataConfig<T>,\n\tcurrentSizeType: ViewportSizeTypeInfo,\n\tsizeTypes: ViewportSizeTypeInfo[],\n): T | undefined {\n\tlet data = dataConfig[currentSizeType.name];\n\tif (data !== undefined) {\n\t\treturn data;\n\t}\n\n\tif (currentSizeType.type <= 0) {\n\t\treturn undefined;\n\t}\n\n\t// eslint-disable-next-line for-direction\n\tfor (let index = currentSizeType.type; index < sizeTypes.length; index--) {\n\t\tconst sizeType = sizeTypes[index];\n\t\tdata = dataConfig[sizeType.name];\n\t\tif (data !== undefined) {\n\t\t\treturn data;\n\t\t}\n\t}\n\n\treturn undefined;\n}\n\nfunction matchWithClosestSmallerFirstMatch<T>(\n\tdataConfig: ViewportDataConfig<T>,\n\tcurrentSizeType: ViewportSizeTypeInfo,\n\tsizeTypes: ViewportSizeTypeInfo[],\n): T | undefined {\n\treturn closestMatch(dataConfig, currentSizeType, sizeTypes, true);\n}\n\nfunction matchWithClosestLargerFirstMatch<T>(\n\tdataConfig: ViewportDataConfig<T>,\n\tcurrentSizeType: ViewportSizeTypeInfo,\n\tsizeTypes: ViewportSizeTypeInfo[],\n): T | undefined {\n\treturn closestMatch(dataConfig, currentSizeType, sizeTypes, false);\n}\n\nfunction closestMatch<T>(\n\tdataConfig: ViewportDataConfig<T>,\n\tcurrentSizeType: ViewportSizeTypeInfo,\n\tsizeTypes: ViewportSizeTypeInfo[],\n\tisSmallerFirst: boolean\n): T | undefined {\n\tlet data = dataConfig[currentSizeType.name];\n\tif (data !== undefined) {\n\t\treturn data;\n\t}\n\n\tlet downIndex = currentSizeType.type;\n\tlet upIndex = currentSizeType.type;\n\n\t \n\tfor (let index = 0; index < sizeTypes.length; index++) {\n\t\tfor (const idx of isSmallerFirst ? [--downIndex, ++upIndex] : [++upIndex, --downIndex]) {\n\t\t\tconst sizeType = sizeTypes[idx];\n\t\t\tif (sizeType) {\n\t\t\t\tdata = dataConfig[sizeType.name];\n\t\t\t\tif (data !== undefined) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn undefined;\n}\n","import { InjectionToken, Injectable, inject } from \"@angular/core\";\n\nexport const WINDOW = new InjectionToken<Window>(\"Window\", {\n\tfactory: () => _window() as Window,\n});\n\nexport function _window(): unknown {\n\tif (typeof window !== \"undefined\") {\n\t\treturn window;\n\t}\n\treturn {};\n}\n\n@Injectable({\n\tprovidedIn: \"root\",\n})\nexport class WindowRef {\n\n\tprivate readonly window = inject(WINDOW);\n\n\t/** Window underlying native object. */\n\tget native(): Window {\n\t\treturn this.window as Window;\n\t}\n\n\t/** Determines whether native element is supported or not. Generally `false` when executing in SSR. */\n\tget hasNative(): boolean {\n\t\treturn !!this.native.window;\n\t}\n\n}\n","/**\n * The indices of each breakpoint provided based on the `UX_VIEWPORT_DEFAULT_BREAKPOINTS`.\n * @see UX_VIEWPORT_DEFAULT_BREAKPOINTS\n */\nexport enum ViewportSizeType {\n\txsmall = 0,\n\tsmall = 1,\n\tmedium = 2,\n\tlarge = 3,\n\txlarge = 4,\n\txxlarge = 5,\n\txxlarge1 = 6,\n}\n\nexport enum ComparisonOperation {\n\tequals = \"=\",\n\tnotEquals = \"<>\",\n\tlessThan = \"<\",\n\tlessOrEqualThan = \"<=\",\n\tgreaterThan = \">\",\n\tgreaterOrEqualThan = \">=\",\n}\n\nexport type ComparisonOperationKeyType = keyof typeof ComparisonOperation;\nexport type ComparisonOperationValueType = \"=\" | \"<>\" | \"<\" | \"<=\" | \">\" | \">=\"; // todo: find a better way to do this\nexport type ComparisonOperationLiteral = ComparisonOperationKeyType | ComparisonOperationValueType;\n\nexport enum DeviceType {\n\tdesktop = \"desktop\",\n\tmobile = \"mobile\",\n\ttablet = \"tablet\"\n}\n\nexport interface ViewportSize {\n\twidth: number;\n\theight: number;\n}\n\nexport interface ViewportSizeTypeInfo {\n\ttype: number;\n\tname: string;\n\twidthThreshold: number;\n}\n\nexport interface ViewportMatchConditions {\n\tsizeType?: string | string[] | null;\n\tsizeTypeExclude?: string | string[] | null;\n\texpression?: ViewportSizeMatcherExpression;\n}\n\nexport interface ViewportSizeMatcherExpression {\n\tsize: string;\n\toperation: ComparisonOperationLiteral;\n}\n","import { Injectable, InjectionToken, inject } from \"@angular/core\";\n\nimport { DeviceType, ViewportSize } from \"./viewport.model\";\n\n// todo: make this configurable\n/** Viewport size for SSR. */\nconst viewportSizeSSR: Record<DeviceType, ViewportSize> = {\n\t[DeviceType.desktop]: {\n\t\twidth: 1366,\n\t\theight: 768,\n\t},\n\t[DeviceType.tablet]: {\n\t\twidth: 768,\n\t\theight: 1024,\n\t},\n\t[DeviceType.mobile]: {\n\t\twidth: 414,\n\t\theight: 736,\n\t},\n};\n\nexport const VIEWPORT_SSR_DEVICE = new InjectionToken<DeviceType>(\"UX_VIEWPORT_SSR_DEVICE\", {\n\tfactory: () => DeviceType.desktop,\n\tprovidedIn: \"platform\",\n});\n\n@Injectable({\n\tprovidedIn: \"root\",\n})\nexport class ViewportServerSizeService {\n\n\tprivate readonly deviceType = inject(VIEWPORT_SSR_DEVICE);\n\n\tget(): ViewportSize {\n\t\treturn viewportSizeSSR[this.deviceType] || viewportSizeSSR[DeviceType.desktop];\n\t}\n\n}\n","import { Dictionary } from \"../internal/internal.model\";\nimport {\n\tComparisonOperation,\n\tViewportSizeMatcherExpression,\n\tViewportSizeTypeInfo,\n\tViewportMatchConditions\n} from \"./viewport.model\";\n\nexport function isViewportSizeMatcherExpression(value: unknown): value is ViewportSizeMatcherExpression {\n\tif (typeof value !== \"object\" || !value) {\n\t\treturn false;\n\t}\n\tconst args: Partial<ViewportSizeMatcherExpression> = value;\n\tif (args.size && args.operation) {\n\t\treturn true;\n\t}\n\treturn false;\n}\n\nexport function isViewportSizeMatcherTupleExpression(arg: unknown): arg is [ComparisonOperation, string] {\n\tif (!arg) {\n\t\treturn false;\n\t}\n\tif (Array.isArray(arg)) {\n\t\tif (arg.length === 2) {\n\t\t\tconst [op] = arg;\n\t\t\treturn operations.includes(op);\n\t\t}\n\t}\n\treturn false;\n}\n\n\nconst operations = Object.values(ComparisonOperation);\n\nexport const COMPARISON_OPERATION_FUNC_MAPPING: Dictionary<(a: number, b: number) => boolean> = {\n\t[ComparisonOperation.equals]: (a: number, b: number) => a === b,\n\t[ComparisonOperation.notEquals]: (a: number, b: number) => a !== b,\n\t[ComparisonOperation.lessThan]: (a: number, b: number) => a < b,\n\t[ComparisonOperation.lessOrEqualThan]: (a: number, b: number) => a <= b,\n\t[ComparisonOperation.greaterThan]: (a: number, b: number) => a > b,\n\t[ComparisonOperation.greaterOrEqualThan]: (a: number, b: number) => a >= b,\n};\n\nexport function isViewportConditionMatch(\n\tevaluateSize: ViewportSizeTypeInfo,\n\tconditions: ViewportMatchConditions,\n\tviewportSizeTypeInfoRefs: Dictionary<ViewportSizeTypeInfo>\n): boolean {\n\tconst isExcluded = match(conditions.sizeTypeExclude, evaluateSize.name, false);\n\tlet isIncluded;\n\tlet isExpressionTruthy;\n\n\tif (!isExcluded && conditions.expression) {\n\t\tconst ref = viewportSizeTypeInfoRefs[conditions.expression.size];\n\t\tif(!ref) {\n\t\t\tthrow new Error(`Viewport size type is invalid. Size type: '${conditions.expression.size}'`);\n\t\t}\n\t\tconst expMatcher = COMPARISON_OPERATION_FUNC_MAPPING[conditions.expression.operation];\n\n\t\tisExpressionTruthy = expMatcher(evaluateSize.type, ref.type);\n\t} else {\n\t\tisIncluded = match(conditions.sizeType, evaluateSize.name, true);\n\t}\n\n\tconst shouldRender = (isExpressionTruthy || isIncluded) && !isExcluded;\n\t// console.warn(\">>> shouldRender\", { evaluateSize, conditions, shouldRender });\n\treturn !!shouldRender;\n}\n\nfunction match(value: string | string[] | null | undefined, targetValue: string, defaultValue: boolean) {\n\tif (!value) {\n\t\treturn defaultValue;\n\t}\n\n\treturn Array.isArray(value)\n\t\t? value.includes(targetValue)\n\t\t: value === targetValue;\n}\n\nexport function getSizeTypeInfo(width: number, sizeTypes: ViewportSizeTypeInfo[]): ViewportSizeTypeInfo {\n\tconst lastEntryIndex = sizeTypes.length - 1;\n\n\tfor (let idx = 0; idx < lastEntryIndex; idx++) {\n\t\tconst viewportSizeTypeInfo = sizeTypes[idx];\n\n\t\tif (width <= viewportSizeTypeInfo.widthThreshold) {\n\t\t\treturn viewportSizeTypeInfo;\n\t\t}\n\t}\n\n\treturn sizeTypes[lastEntryIndex];\n}\n\n/**\n * Converts the breakpoints into a 2 dimensional array containing the name and width, and sorted from\n *  smallest to largest.\n * @param breakpoints the breakpoints obtained from the config\n * @internal\n */\nfunction getSortedBreakpoints(breakpoints: Dictionary<number>): [string, number][] {\n\treturn Object.entries(breakpoints)\n\t\t.sort(([, widthA], [, widthB]) => widthA - widthB);\n}\n\n/**\n * A util function which generates the ViewportSizeTypeInfo.type for each breakpoint.\n * @param breakpoints the custom breakpoints\n */\nexport function generateViewportSizeType<T extends Record<string, number>>(breakpoints: T): T & Record<number, string> {\n\treturn Object.freeze(\n\t\tgetSortedBreakpoints(breakpoints).reduce<Record<number | string, string | number>>(\n\t\t\t(dictionary, [name], index) => {\n\t\t\t\tdictionary[name] = index;\n\t\t\t\tdictionary[index] = name;\n\t\t\t\treturn dictionary;\n\t\t\t}, {}\n\t\t)\n\t) as T & Record<number, string>;\n}\n\n/**\n * Pre-processes the given breakpoints into an ordered list from smallest to largest while generating\n *  all the necessary information on the viewport.\n * @param breakpoints the breakpoints obtained from the config\n * @internal\n */\nexport function generateViewportSizeTypeInfoList(breakpoints: Dictionary<number>): ViewportSizeTypeInfo[] {\n\treturn getSortedBreakpoints(breakpoints)\n\t\t.map(([name, width], index) =>\n\t\t\t(Object.freeze({\n\t\t\t\tname,\n\t\t\t\ttype: index,\n\t\t\t\twidthThreshold: width\n\t\t\t}))\n\t\t);\n}\n\n/**\n * Converts the breakpoint list into a dictionary while using the name as key.\n * @param breakpointList the list of breakpoints\n * @internal\n */\nexport function generateViewportSizeTypeInfoRefs(breakpointList: ViewportSizeTypeInfo[]): Dictionary<ViewportSizeTypeInfo> {\n\treturn Object.freeze(\n\t\tbreakpointList.reduce<Dictionary<ViewportSizeTypeInfo>>((dictionary, breakpoint) => {\n\t\t\tdictionary[breakpoint.name] = breakpoint;\n\t\t\tdictionary[breakpoint.type] = breakpoint;\n\t\t\treturn dictionary;\n\t\t}, {})\n\t);\n}\n","import { type EnvironmentProviders, InjectionToken, makeEnvironmentProviders } from \"@angular/core\";\n\nimport type { Dictionary } from \"../internal/internal.model\";\nimport { ViewportDataMatchStrategy } from \"./viewport-data/viewport-data-matcher\";\nimport { VIEWPORT_SSR_DEVICE } from \"./viewport-server-size.service\";\nimport { DeviceType } from \"./viewport.model\";\n\n/** Default viewport breakpoints. */\nexport const UX_VIEWPORT_DEFAULT_BREAKPOINTS: Dictionary<number> = {\n\txsmall: 450,\n\tsmall: 767,\n\tmedium: 992,\n\tlarge: 1200,\n\txlarge: 1500,\n\txxlarge: 1920,\n\txxlarge1: 2100,\n};\n\nexport interface UxViewportOptions {\n\t/** Polling speed on resizing (in milliseconds). e.g. the higher the number the longer it takes to recalculate. */\n\tresizePollingSpeed: number;\n\n\t/** Breakpoints to use. Key needs to match the size type and the value the width threshold.\n\t * e.g. given width '1000' and `medium` is set to '992' => `large`.\n\t */\n\tbreakpoints: Dictionary<number>;\n\n\t/** Default data match strategy to use. */\n\tdefaultDataMatchStrategy: ViewportDataMatchStrategy;\n}\n\nconst DEFAULT_OPTIONS = Object.freeze<UxViewportOptions>({\n\tresizePollingSpeed: 33,\n\tbreakpoints: UX_VIEWPORT_DEFAULT_BREAKPOINTS,\n\tdefaultDataMatchStrategy: ViewportDataMatchStrategy.smaller,\n});\n\nexport const VIEWPORT_OPTIONS = new InjectionToken<UxViewportOptions>(\"SSV_UX_VIEWPORT_OPTIONS\", {\n\tfactory: () => DEFAULT_OPTIONS,\n});\n\nexport function provideSsvUxViewportOptions(\n\toptions: Partial<UxViewportOptions> | ((defaults: Readonly<UxViewportOptions>) => Partial<UxViewportOptions>),\n\t...features: EnvironmentProviders[]\n): EnvironmentProviders {\n\treturn makeEnvironmentProviders([\n\t\t{\n\t\t\tprovide: VIEWPORT_OPTIONS,\n\t\t\tuseFactory: () => {\n\t\t\t\tlet opts = typeof options === \"function\" ? options(DEFAULT_OPTIONS) : options;\n\t\t\t\topts = opts\n\t\t\t\t\t? {\n\t\t\t\t\t\t...DEFAULT_OPTIONS,\n\t\t\t\t\t\t...opts, // NOTE: breakpoints shoudn't be merged\n\t\t\t\t\t}\n\t\t\t\t\t: DEFAULT_OPTIONS;\n\t\t\t\treturn opts;\n\t\t\t},\n\t\t},\n\t\t...features,\n\t]);\n}\n\nexport function withViewportSsrDevice(options: DeviceType | (() => DeviceType)): EnvironmentProviders {\n\treturn makeEnvironmentProviders([\n\t\t{\n\t\t\tprovide: VIEWPORT_SSR_DEVICE,\n\t\t\tuseFactory: () => {\n\t\t\t\tconst deviceType = typeof options === \"function\" ? options() : options;\n\t\t\t\treturn deviceType;\n\t\t\t},\n\t\t},\n\t]);\n}","import { Injectable, Signal, inject } from \"@angular/core\";\nimport { toSignal } from \"@angular/core/rxjs-interop\";\nimport {\n\tObservable,\n\tfromEvent,\n\tmap,\n\tdistinctUntilChanged,\n\tstartWith,\n\tshare,\n\tshareReplay,\n\tauditTime,\n\tof,\n} from \"rxjs\";\n\nimport { ViewportSizeTypeInfo, ViewportSize } from \"./viewport.model\";\nimport { WindowRef } from \"../platform/window\";\nimport { ViewportServerSizeService } from \"./viewport-server-size.service\";\nimport { generateViewportSizeTypeInfoList, generateViewportSizeTypeInfoRefs, getSizeTypeInfo } from \"./viewport.util\";\nimport { VIEWPORT_OPTIONS } from \"./viewport.options\";\n\n@Injectable({\n\tprovidedIn: \"root\",\n})\nexport class ViewportService {\n\n\treadonly #viewportServerSize = inject(ViewportServerSizeService);\n\treadonly #windowRef = inject(WindowRef);\n\treadonly #config = inject(VIEWPORT_OPTIONS);\n\n\t/** Viewport size types list ordered by type, smallest to largest. */\n\treadonly sizeTypes = generateViewportSizeTypeInfoList(this.#config.breakpoints);\n\n\t/** Size types refs of the generated viewport size type info. */\n\treadonly sizeTypeMap = generateViewportSizeTypeInfoRefs(this.sizeTypes);\n\n\t/** Viewport size signal (which is also throttled). */\n\treadonly viewportSize: Signal<ViewportSize>;\n\n\t/** Viewport size type signal (which is also throttled). */\n\treadonly sizeType: Signal<ViewportSizeTypeInfo>;\n\n\t/** Window resize observable. */\n\treadonly resizeSnap$: Observable<ViewportSize>;\n\n\t/** Window resize observable (which is also throttled). */\n\treadonly resize$: Observable<ViewportSize>;\n\n\t/** Viewport size type observable (which is also throttled). */\n\treadonly sizeType$: Observable<ViewportSizeTypeInfo>;\n\n\t/** Viewport size type observable. */\n\treadonly sizeTypeSnap$: Observable<ViewportSizeTypeInfo>;\n\n\t/** Viewport size type snapshot of the last value. (Prefer use `sizeType$` observable when possible.) */\n\tget sizeTypeSnapshot(): ViewportSizeTypeInfo { return this.sizeType(); }\n\n\t/** Viewport size observable (which is also throttled). */\n\treadonly size$: Observable<ViewportSize>;\n\n\t/** Viewport size observable. */\n\treadonly sizeSnap$: Observable<ViewportSize>;\n\n\tconstructor(\n\t) {\n\t\tif (this.#windowRef.hasNative) {\n\t\t\tthis.resizeSnap$ = fromEvent<Event>(this.#windowRef.native, \"resize\").pipe(\n\t\t\t\tmap(() => this.getViewportSize()),\n\t\t\t\tshare()\n\t\t\t);\n\n\t\t\tthis.resize$ = this.resizeSnap$.pipe(\n\t\t\t\tauditTime(this.#config.resizePollingSpeed),\n\t\t\t\tshare(),\n\t\t\t);\n\t\t} else {\n\t\t\tthis.resizeSnap$ = this.resize$ = of(this.#viewportServerSize.get());\n\t\t}\n\t\tconst size = this.getViewportSize();\n\n\t\tconst sizeFn = (obs$: Observable<ViewportSize>) => obs$.pipe(\n\t\t\tstartWith(size),\n\t\t\tdistinctUntilChanged((a, b) => a.width === b.width && a.height === b.height),\n\t\t\tshareReplay(1),\n\t\t);\n\n\t\tthis.sizeSnap$ = sizeFn(this.resizeSnap$);\n\t\tthis.size$ = sizeFn(this.resize$);\n\n\t\tconst sizeTypeFn = (obs$: Observable<ViewportSize>) => obs$.pipe(\n\t\t\tdistinctUntilChanged((a, b) => a.width === b.width),\n\t\t\tmap(x => getSizeTypeInfo(x.width, this.sizeTypes)),\n\t\t\tdistinctUntilChanged(),\n\t\t\tshareReplay(1),\n\t\t);\n\n\t\tthis.sizeType$ = sizeTypeFn(this.size$);\n\t\tthis.sizeTypeSnap$ = sizeTypeFn(this.sizeSnap$);\n\n\t\tthis.viewportSize = toSignal(this.size$, { initialValue: size });\n\t\tthis.sizeType = toSignal(this.sizeTypeSnap$, { initialValue: getSizeTypeInfo(size.width, this.sizeTypes) });\n\t}\n\n\t/** Returns the current viewport size */\n\tprivate getViewportSize(): ViewportSize {\n\t\tif (!this.#windowRef.hasNative) {\n\t\t\treturn this.#viewportServerSize.get();\n\t\t}\n\n\t\tconst ua = navigator.userAgent.toLowerCase();\n\t\tif (ua.indexOf(\"safari\") !== -1 && ua.indexOf(\"chrome\") === -1) { // safari subtracts the scrollbar width\n\t\t\treturn {\n\t\t\t\twidth: this.#windowRef.native.document.documentElement.clientWidth,\n\t\t\t\theight: this.#windowRef.native.document.documentElement.clientHeight,\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\twidth: this.#windowRef.native.innerWidth,\n\t\t\theight: this.#windowRef.native.innerHeight,\n\t\t};\n\t}\n\n}\n","import { Dictionary } from \"../../internal/internal.model\";\nimport { ViewportSizeTypeInfo } from \"../viewport.model\";\nimport { ViewportDataConfig, ViewportDataMatchStrategy } from \"./viewport-data-matcher\";\n\nexport interface ViewportDataRule<T> {\n\tmin?: number;\n\tmax?: number;\n\tvalue: T;\n}\n\n/**\n * Utility function to generate rules based on strategies.\n *\n * @param dataConfig Data config to generate rules based on.\n * @param strategy Strategy to use when building rules.\n * @param sizeTypes Available size types ordered by index type. (Can be obtained from `ViewportService`)\n * @param sizeTypeMap Available size type map. (Can be obtained from `ViewportService`)\n * @returns Returns a collection of rules (ordered).\n */\nexport function generateViewportRulesRangeFromDataMatcher<T>(\n\tdataConfig: ViewportDataConfig<T>,\n\tstrategy: ViewportDataMatchStrategy,\n\tsizeTypes: ViewportSizeTypeInfo[],\n\tsizeTypeMap: Dictionary<ViewportSizeTypeInfo>,\n): ViewportDataRule<T>[] {\n\tconst ruleBuilderFn = matchStrategyHandlerMap[strategy];\n\tif (!ruleBuilderFn) {\n\t\tthrow Error(`generateViewportRulesRangeFromDataMatcher: Viewport Data strategy not implemented. Strategy: '${strategy}'`);\n\t}\n\n\tlet dataSizes: ViewportSizeTypeInfo[] = [];\n\tfor (const key in dataConfig) {\n\t\tif (Object.prototype.hasOwnProperty.call(dataConfig, key)) {\n\t\t\tconst data = dataConfig[key];\n\t\t\tif (data === undefined) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst size = sizeTypeMap[key];\n\t\t\tif (size) {\n\t\t\t\tdataSizes.push(size);\n\t\t\t}\n\t\t}\n\t}\n\tdataSizes = dataSizes.sort(({ type: typeA }, { type: typeB }) => typeA - typeB);\n\n\tconst rules: ViewportDataRule<T>[] = [];\n\tif (dataConfig.default) {\n\t\trules.push({ value: dataConfig.default, min: undefined, max: undefined });\n\t}\n\n\tlet prevRule: ViewportDataRule<T> | undefined;\n\tfor (let index = 0; index < dataSizes.length; index++) {\n\t\tconst prevDataSize = dataSizes[index - 1];\n\t\tconst nextDataSize = dataSizes[index + 1];\n\t\tconst dataSize = dataSizes[index];\n\t\tconst prevSize = sizeTypes[dataSize.type - 1];\n\t\t// const nextSize = sizeTypes[dataSize.type + 1];\n\t\tconst data = dataConfig[dataSize.name];\n\t\tconst rule: ViewportDataRule<T> = {\n\t\t\tvalue: data,\n\t\t\tmin: undefined,\n\t\t\tmax: undefined,\n\t\t};\n\n\t\truleBuilderFn(rule, dataSize, nextDataSize, prevDataSize, prevSize, prevRule, sizeTypes);\n\n\t\tprevRule = rule;\n\t\trules.push(rule);\n\t}\n\treturn rules;\n}\n\nexport interface ViewportRuleRangeBuilder<T = unknown> {\n\t(\n\t\trule: ViewportDataRule<T>,\n\t\tdataSize: ViewportSizeTypeInfo,\n\t\tnextDataSize: ViewportSizeTypeInfo | undefined,\n\t\tprevDataSize: ViewportSizeTypeInfo | undefined,\n\t\tprevSize: ViewportSizeTypeInfo | undefined,\n\t\tprevRule: ViewportDataRule<T> | undefined,\n\t\tsizeTypes: ViewportSizeTypeInfo[],\n\t): void;\n}\n\nconst matchStrategyHandlerMap: Dictionary<ViewportRuleRangeBuilder> = {\n\t[ViewportDataMatchStrategy.exact]: (rule, dataSize, _nextDataSize, _prevDataSize, prevSize) => {\n\t\trule.max = dataSize.widthThreshold;\n\t\tif (prevSize) {\n\t\t\trule.min = prevSize.widthThreshold + 1;\n\t\t}\n\t},\n\t[ViewportDataMatchStrategy.smaller]: (rule, dataSize, nextDataSize, _prevDataSize, prevSize) => {\n\t\tif (nextDataSize) {\n\t\t\trule.max = dataSize.widthThreshold;\n\t\t}\n\t\tif (prevSize) {\n\t\t\trule.min = prevSize.widthThreshold + 1;\n\t\t}\n\t},\n\t[ViewportDataMatchStrategy.larger]: (rule, dataSize, _nextDataSize, prevDataSize) => {\n\t\tif (dataSize) {\n\t\t\trule.max = dataSize.widthThreshold;\n\t\t}\n\t\tif (prevDataSize) {\n\t\t\trule.min = prevDataSize.widthThreshold + 1;\n\t\t}\n\t},\n\t[ViewportDataMatchStrategy.closestSmallerFirst]: (rule, dataSize, nextDataSize, _prevDataSize, _prevSize, prevRule, sizeTypes) => {\n\t\tif (nextDataSize) {\n\t\t\trule.max = calculateClosestWidthThreshold(nextDataSize, dataSize, sizeTypes, true);\n\t\t}\n\t\tif (prevRule?.max) {\n\t\t\trule.min = prevRule.max + 1;\n\t\t}\n\t},\n\t[ViewportDataMatchStrategy.closestLargerFirst]: (rule, dataSize, nextDataSize, _prevDataSize, _prevSize, prevRule, sizeTypes) => {\n\t\tif (nextDataSize) {\n\t\t\trule.max = calculateClosestWidthThreshold(nextDataSize, dataSize, sizeTypes, false);\n\t\t}\n\t\tif (prevRule?.max) {\n\t\t\trule.min = prevRule.max + 1;\n\t\t}\n\t},\n};\n\nfunction calculateClosestWidthThreshold(\n\tnextDataSize: ViewportSizeTypeInfo,\n\tdataSize: ViewportSizeTypeInfo,\n\tsizeTypes: ViewportSizeTypeInfo[],\n\tisSmallerPreferred: boolean,\n) {\n\tconst fn = isSmallerPreferred ? Math.ceil : Math.floor;\n\t// get closest between curr and next\n\tconst diffIndex = fn((nextDataSize.type - dataSize.type - 1) / 2);\n\tconst diffNextSize = sizeTypes[dataSize.type + diffIndex];\n\treturn (diffNextSize || dataSize).widthThreshold;\n}\n","import { inject, Injectable } from \"@angular/core\";\nimport { Observable, distinctUntilChanged, map } from \"rxjs\";\n\nimport { ViewportSizeTypeInfo } from \"../viewport.model\";\nimport { ViewportService } from \"../viewport.service\";\nimport { matchViewportData, ViewportDataConfig, ViewportDataMatchStrategy } from \"./viewport-data-matcher\";\nimport { generateViewportRulesRangeFromDataMatcher, ViewportDataRule } from \"./viewport-data.utils\";\nimport { VIEWPORT_OPTIONS } from \"../viewport.options\";\n\n@Injectable({\n\tprovidedIn: \"root\",\n})\nexport class ViewportDataService {\n\n\treadonly #viewport = inject(ViewportService);\n\treadonly #config = inject(VIEWPORT_OPTIONS);\n\n\t/** Get data for match. */\n\tget<T>(\n\t\tdataConfig: ViewportDataConfig<T>,\n\t\tstrategy: ViewportDataMatchStrategy = this.#config.defaultDataMatchStrategy,\n\t\tsizeType: ViewportSizeTypeInfo = this.#viewport.sizeTypeSnapshot\n\t): T | undefined {\n\t\treturn matchViewportData(dataConfig, sizeType, strategy, this.#viewport.sizeTypes, this.#viewport.sizeTypeMap);\n\t}\n\n\t/** Get data for match as observable. */\n\tget$<T>(dataConfig: ViewportDataConfig<T>, strategy?: ViewportDataMatchStrategy, throttle = true): Observable<T | undefined> {\n\t\treturn (throttle ? this.#viewport.sizeType$ : this.#viewport.sizeTypeSnap$).pipe(\n\t\t\tmap(sizeType => this.get<T>(dataConfig, strategy, sizeType)),\n\t\t\tdistinctUntilChanged(),\n\t\t);\n\t}\n\n\t/** Generate rules based on strategies for data. */\n\tgenerateRules<T>(\n\t\tdataConfig: ViewportDataConfig<T>,\n\t\tstrategy: ViewportDataMatchStrategy = this.#config.defaultDataMatchStrategy,\n\t): ViewportDataRule<T>[] {\n\t\treturn generateViewportRulesRangeFromDataMatcher(\n\t\t\tdataConfig,\n\t\t\tstrategy,\n\t\t\tthis.#viewport.sizeTypes,\n\t\t\tthis.#viewport.sizeTypeMap\n\t\t);\n\t}\n\n}\n","import { Subscription, tap } from \"rxjs\";\nimport { Pipe, PipeTransform, OnDestroy, ChangeDetectorRef, inject } from \"@angular/core\";\n\nimport { ViewportDataConfig, ViewportDataMatchStrategy, ViewportDataMatchStrategyLiteral } from \"./viewport-data-matcher\";\nimport { ViewportDataService } from \"./viewport-data.service\";\n\n\n@Pipe({\n\tname: \"ssvViewportData\",\n\tpure: false,\n\tstandalone: true,\n})\nexport class ViewportDataPipe implements PipeTransform, OnDestroy {\n\t#viewportData = inject(ViewportDataService);\n\t#cdr = inject(ChangeDetectorRef);\n\n\tprivate markForTransform = true;\n\tprivate value: unknown;\n\tprivate data: ViewportDataConfig | undefined;\n\tprivate strategy: ViewportDataMatchStrategyLiteral | undefined;\n\tprivate data$$ = Subscription.EMPTY;\n\n\ttransform(data: ViewportDataConfig, strategy: ViewportDataMatchStrategyLiteral): unknown {\n\t\tif (!this.markForTransform && data === this.data && strategy === this.strategy) {\n\t\t\treturn this.value;\n\t\t}\n\t\tthis.data = data;\n\t\tthis.strategy = strategy;\n\n\t\tthis.data$$.unsubscribe();\n\t\tthis.data$$ = this.#viewportData.get$(data, ViewportDataMatchStrategy[strategy]).pipe(\n\t\t\ttap(value => {\n\t\t\t\tthis.markForTransform = true;\n\t\t\t\tthis.value = value;\n\t\t\t\tthis.#cdr.markForCheck();\n\t\t\t}),\n\t\t).subscribe();\n\n\t\tthis.markForTransform = false;\n\t\treturn this.value;\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis.data$$.unsubscribe();\n\t}\n\n}\n","import { OnInit, OnDestroy, Directive, Input, TemplateRef, ViewContainerRef, EmbeddedViewRef, inject } from \"@angular/core\";\nimport { combineLatest, ReplaySubject, Subject, tap, map, takeUntil } from \"rxjs\";\n\nimport { ViewportService } from \"./viewport.service\";\nimport {\n\tisViewportSizeMatcherExpression,\n\tisViewportSizeMatcherTupleExpression,\n\tisViewportConditionMatch\n} from \"./viewport.util\";\nimport { ViewportMatchConditions, ViewportSizeMatcherExpression } from \"./viewport.model\";\n\nconst NAME_CAMEL = \"ssvViewportMatcherVar\";\n\nexport class SsvViewportMatcherVarContext {\n\n\tconstructor(\n\t\tpublic $implicit = false,\n\t) { }\n\n}\n\n@Directive({\n\tselector: `[${NAME_CAMEL}]`,\n\tstandalone: true,\n})\nexport class SsvViewportMatcherVarDirective implements OnInit, OnDestroy {\n\t#viewport = inject(ViewportService);\n\t#viewContainer = inject(ViewContainerRef);\n\t#templateRef = inject<TemplateRef<SsvViewportMatcherVarContext>>(TemplateRef);\n\n\tprivate _matchConditions: ViewportMatchConditions = {};\n\tprivate _context = new SsvViewportMatcherVarContext();\n\tprivate readonly _destroy$ = new Subject<void>();\n\tprivate readonly _update$ = new ReplaySubject<void>(1);\n\tprivate _viewRef!: EmbeddedViewRef<SsvViewportMatcherVarContext>;\n\n\t@Input(`${NAME_CAMEL}When`) set condition(value: string | string[] | ViewportSizeMatcherExpression) {\n\t\tif (isViewportSizeMatcherExpression(value)) {\n\t\t\tthis._matchConditions.expression = value;\n\t\t} else if (isViewportSizeMatcherTupleExpression(value)) {\n\t\t\tconst [op, size] = value;\n\t\t\tthis._matchConditions.expression = {\n\t\t\t\toperation: op,\n\t\t\t\tsize\n\t\t\t};\n\t\t} else {\n\t\t\tthis._matchConditions.sizeType = value;\n\t\t}\n\n\t\tthis._update$.next();\n\t}\n\n\tngOnInit(): void {\n\t\tthis.updateView();\n\t\tcombineLatest([this.#viewport.sizeType$, this._update$]).pipe(\n\t\t\tmap(([sizeType]) => isViewportConditionMatch(sizeType, this._matchConditions, this.#viewport.sizeTypeMap)),\n\t\t\ttap(x => this._context.$implicit = x),\n\t\t\ttap(() => this._viewRef.markForCheck()),\n\t\t\ttakeUntil(this._destroy$),\n\t\t).subscribe();\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis._destroy$.next();\n\t\tthis._destroy$.complete();\n\t}\n\n\tprivate updateView(): void {\n\t\tthis.#viewContainer.clear();\n\t\tthis._viewRef = this.#viewContainer.createEmbeddedView(this.#templateRef, this._context);\n\t}\n\n}\n","import { OnInit, OnDestroy, Directive, Renderer2, ViewContainerRef, Input, EmbeddedViewRef, TemplateRef, ChangeDetectorRef, inject } from \"@angular/core\";\nimport { Subscription, Subject, tap, filter, pairwise, startWith } from \"rxjs\";\n\nimport { ViewportService } from \"./viewport.service\";\nimport {\n\tisViewportSizeMatcherExpression,\n\tisViewportSizeMatcherTupleExpression,\n\tisViewportConditionMatch\n} from \"./viewport.util\";\nimport { ViewportSizeTypeInfo, ViewportMatchConditions, ViewportSizeMatcherExpression } from \"./viewport.model\";\n\nexport class SsvViewportMatcherContext implements ViewportMatchConditions {\n\n\tsizeType: string | string[] | null = null;\n\tsizeTypeExclude: string | string[] | null = null;\n\texpression?: ViewportSizeMatcherExpression;\n\n}\n\n@Directive({\n\tselector: \"[ssvViewportMatcher]\",\n\texportAs: \"ssvViewportMatcher\",\n\tstandalone: true,\n})\nexport class SsvViewportMatcherDirective implements OnInit, OnDestroy {\n\t#viewport = inject(ViewportService);\n\t#renderer = inject(Renderer2);\n\t#viewContainer = inject(ViewContainerRef);\n\t#cdr = inject(ChangeDetectorRef);\n\n\tsizeInfo: ViewportSizeTypeInfo | undefined;\n\n\tprivate _context: SsvViewportMatcherContext = new SsvViewportMatcherContext();\n\tprivate _thenTemplateRef: TemplateRef<SsvViewportMatcherContext> | null = null;\n\tprivate _elseTemplateRef: TemplateRef<SsvViewportMatcherContext> | null = null;\n\tprivate _thenViewRef: EmbeddedViewRef<SsvViewportMatcherContext> | null = null;\n\tprivate _elseViewRef: EmbeddedViewRef<SsvViewportMatcherContext> | null = null;\n\tprivate sizeType$$ = Subscription.EMPTY;\n\tprivate cssClass$$ = Subscription.EMPTY;\n\tprivate readonly _update$ = new Subject<SsvViewportMatcherContext>();\n\n\t@Input() set ssvViewportMatcher(value: string | string[] | ViewportSizeMatcherExpression) {\n\t\tif (isViewportSizeMatcherExpression(value)) {\n\t\t\tthis._context.expression = value;\n\t\t} else if (isViewportSizeMatcherTupleExpression(value)) {\n\t\t\tconst [op, size] = value;\n\t\t\tthis._context.expression = {\n\t\t\t\toperation: op,\n\t\t\t\tsize\n\t\t\t};\n\t\t} else {\n\t\t\tthis._context.sizeType = value;\n\t\t}\n\n\t\tif (this.sizeInfo) {\n\t\t\tthis._update$.next(this._context);\n\t\t}\n\t}\n\n\t@Input() set ssvViewportMatcherExclude(value: string | string[]) {\n\t\tthis._context.sizeTypeExclude = value;\n\n\t\tif (this.sizeInfo) {\n\t\t\tthis._update$.next(this._context);\n\t\t}\n\t}\n\n\t@Input() set ssvViewportMatcherElse(templateRef: TemplateRef<SsvViewportMatcherContext> | null) {\n\t\tthis._elseTemplateRef = templateRef;\n\t\tthis._elseViewRef = null; // clear previous view if any.\n\t\tif (this.sizeInfo) {\n\t\t\tthis._update$.next(this._context);\n\t\t}\n\t}\n\n\tconstructor() {\n\t\tconst templateRef = inject<TemplateRef<SsvViewportMatcherContext>>(TemplateRef);\n\n\t\tthis._thenTemplateRef = templateRef;\n\t}\n\n\tngOnInit(): void {\n\t\t// console.log(\"ssvViewportMatcher init\");\n\n\t\tthis._update$\n\t\t\t.pipe(\n\t\t\t\t// tap(x => console.log(\">>> ssvViewportMatcher - update triggered\", x)),\n\t\t\t\tfilter(() => !!this.sizeInfo),\n\t\t\t\t// tap(x => console.log(\">>> ssvViewportMatcher - updating...\", x)),\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n\t\t\t\ttap(() => this._updateView(this.sizeInfo!)),\n\t\t\t\ttap(() => this.#cdr.markForCheck())\n\t\t\t)\n\t\t\t.subscribe();\n\n\t\tthis.sizeType$$ = this.#viewport.sizeType$\n\t\t\t.pipe(\n\t\t\t\t// tap(x => console.log(\"ssvViewportMatcher - sizeType changed\", x)),\n\t\t\t\ttap(x => this.sizeInfo = x),\n\t\t\t\ttap(() => this._update$.next(this._context)),\n\t\t\t)\n\t\t\t.subscribe();\n\n\t\tthis.cssClass$$ = this.#viewport.sizeType$\n\t\t\t.pipe(\n\t\t\t\tstartWith<ViewportSizeTypeInfo | undefined>(undefined),\n\t\t\t\tfilter(() => !!(this._thenViewRef || this._elseViewRef)),\n\t\t\t\tpairwise(),\n\t\t\t\ttap(([prev, curr]) => {\n\t\t\t\t\tconst el: Element = this._thenViewRef\n\t\t\t\t\t\t? this._thenViewRef.rootNodes[0]\n\t\t\t\t\t\t: this._elseViewRef?.rootNodes[0];\n\n\t\t\t\t\tif (!el.classList) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tif (prev) {\n\t\t\t\t\t\tthis.#renderer.removeClass(el, `ssv-vp-size--${prev.name}`);\n\t\t\t\t\t}\n\t\t\t\t\tthis.#renderer.addClass(el, `ssv-vp-size--${curr?.name}`);\n\t\t\t\t}),\n\t\t\t)\n\t\t\t.subscribe();\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis.cssClass$$.unsubscribe();\n\t\tthis.sizeType$$.unsubscribe();\n\t\tthis._update$.complete();\n\t}\n\n\tprivate _updateView(sizeInfo: ViewportSizeTypeInfo) {\n\t\tif (isViewportConditionMatch(sizeInfo, this._context, this.#viewport.sizeTypeMap)) {\n\t\t\tif (!this._thenViewRef) {\n\t\t\t\tthis.#viewContainer.clear();\n\t\t\t\tthis._elseViewRef = null;\n\n\t\t\t\tif (this._thenTemplateRef) {\n\t\t\t\t\tthis._thenViewRef = this.#viewContainer.createEmbeddedView(\n\t\t\t\t\t\tthis._thenTemplateRef,\n\t\t\t\t\t\tthis._context,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tif (!this._elseViewRef) {\n\t\t\t\tthis.#viewContainer.clear();\n\t\t\t\tthis._thenViewRef = null;\n\n\t\t\t\tif (this._elseTemplateRef) {\n\t\t\t\t\tthis._elseViewRef = this.#viewContainer.createEmbeddedView(\n\t\t\t\t\t\tthis._elseTemplateRef,\n\t\t\t\t\t\tthis._context,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n}\n","import { NgModule } from \"@angular/core\";\n\nimport { ViewportDataPipe } from \"./viewport-data/viewport-data.pipe\";\nimport { SsvViewportMatcherVarDirective } from \"./viewport-matcher-var.directive\";\nimport { SsvViewportMatcherDirective } from \"./viewport-matcher.directive\";\n\nconst EXPORTED_IMPORTS = [\n\tSsvViewportMatcherDirective,\n\tSsvViewportMatcherVarDirective,\n\tViewportDataPipe,\n];\n\n@NgModule({\n\timports: [EXPORTED_IMPORTS],\n\texports: [EXPORTED_IMPORTS]\n})\nexport class SsvUxViewportModule {\n\n}","import { NgModule } from \"@angular/core\";\n\nimport { SsvUxViewportModule } from \"./viewport/viewport.module\";\n\nconst EXPORTED_IMPORTS = [\n\tSsvUxViewportModule,\n];\n\n@NgModule({\n\timports: [EXPORTED_IMPORTS],\n\texports: [EXPORTED_IMPORTS]\n})\nexport class SsvUxModule {\n\n}","export const VERSION = \"3.3.0-dev.76\";\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["matchStrategyHandlerMap","EXPORTED_IMPORTS"],"mappings":"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"}