@scbt-ecom/ui 0.164.0 → 0.165.0
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/lib/exports/utils.js +1 -1
- package/dist/lib/shared/utils/index.js +1 -1
- package/dist/lib/shared/utils/variables/index.js +2 -0
- package/dist/lib/shared/utils/variables/index.js.map +1 -0
- package/dist/lib/shared/utils/variables/types.js +2 -0
- package/dist/lib/shared/utils/variables/types.js.map +1 -0
- package/dist/lib/shared/utils/variables/variableResolver.js +2 -0
- package/dist/lib/shared/utils/variables/variableResolver.js.map +1 -0
- package/dist/stats.html +1 -1
- package/dist/types/lib/shared/utils/index.d.ts +1 -0
- package/dist/types/lib/shared/utils/variables/index.d.ts +2 -0
- package/dist/types/lib/shared/utils/variables/types.d.ts +17 -0
- package/dist/types/lib/shared/utils/variables/variableResolver.d.ts +10 -0
- package/package.json +1 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{createPhoneNumber as
|
|
1
|
+
import{createPhoneNumber as o}from"../shared/utils/createPhoneNumber.js";import{scrollToElement as m}from"../shared/utils/scrollToElement.js";import{cn as f}from"../shared/utils/cn.js";import{isClient as p}from"../shared/utils/isClient.js";import{capitalize as s}from"../shared/utils/capitalize.js";import{mergeRefs as n}from"../shared/utils/mergeRefs.js";import{TypeGuards as d}from"../shared/utils/typeGuards.js";import{getUuid as b}from"../shared/utils/uuid.js";import{localStorageActions as A}from"../shared/utils/localStorageActions.js";import{assertUnreachable as h}from"../shared/utils/assertUnreachable.js";import{ErrorBoundary as y}from"../shared/utils/ErrorBoundary.js";import{sessionStorageActions as E}from"../shared/utils/sessionStorage.js";import{VariableContextHolder as P}from"../shared/utils/variableHolder/variableContextHolder.js";import{extractTextFromHtml as S}from"../shared/utils/extractTextFromHtml.js";import{defaultAllowedPrefixes as w,variableResolver as z}from"../shared/utils/variables/variableResolver.js";export{y as ErrorBoundary,d as TypeGuards,P as VariableContextHolder,h as assertUnreachable,s as capitalize,f as cn,o as createPhoneNumber,w as defaultAllowedPrefixes,S as extractTextFromHtml,b as getUuid,p as isClient,A as localStorageActions,n as mergeRefs,m as scrollToElement,E as sessionStorageActions,z as variableResolver};
|
|
2
2
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{createPhoneNumber as
|
|
1
|
+
import{createPhoneNumber as o}from"./createPhoneNumber.js";import{scrollToElement as m}from"./scrollToElement.js";import{cn as f}from"./cn.js";import{isClient as p}from"./isClient.js";import{capitalize as s}from"./capitalize.js";import{mergeRefs as n}from"./mergeRefs.js";import{TypeGuards as d}from"./typeGuards.js";import{getUuid as b}from"./uuid.js";import{localStorageActions as A}from"./localStorageActions.js";import{assertUnreachable as h}from"./assertUnreachable.js";import{ErrorBoundary as y}from"./ErrorBoundary.js";import{sessionStorageActions as E}from"./sessionStorage.js";import{extractTextFromHtml as P}from"./extractTextFromHtml.js";import{VariableContextHolder as S}from"./variableHolder/variableContextHolder.js";import{defaultAllowedPrefixes as w,variableResolver as z}from"./variables/variableResolver.js";export{y as ErrorBoundary,d as TypeGuards,S as VariableContextHolder,h as assertUnreachable,s as capitalize,f as cn,o as createPhoneNumber,w as defaultAllowedPrefixes,P as extractTextFromHtml,b as getUuid,p as isClient,A as localStorageActions,n as mergeRefs,m as scrollToElement,E as sessionStorageActions,z as variableResolver};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const y=["$","@","#"],v=()=>{const i=[],p=new Map,u=(e,r)=>(i.push({start:e,end:r}),f),a=e=>(e?.forEach(({key:r,value:t})=>{p.set(r,t)}),f),c=e=>e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),$=(e,r)=>{const t=r||y;for(const n of t){const s=`${n}{`,o="}";if(e.startsWith(s)&&e.endsWith(o))return e.slice(s.length,-o.length)}return e},x=(e,r)=>`${(r||["$"])[0]}{${e}}`,l=e=>{if(typeof e=="string")return b(e);if(Array.isArray(e))return e.map(r=>l(r));if(typeof e=="object"&&e!==null){const r={};for(const t in e)r[t]=l(e[t]);return r}return e},b=e=>{let r=e;for(const{start:t,end:n}of i){const s=new RegExp(`${c(t)}(.*?)${c(n)}`,"g");r=r.replace(s,(o,g)=>{const h=`${t}${g}${n}`;return p.get(h)??o})}return r},f={addPattern:u,addVariables:a,unwrapVariable:$,wrapVariable:x,escapeVariable:c,resolve:l};return f};export{y as defaultAllowedPrefixes,v as variableResolver};
|
|
2
|
+
//# sourceMappingURL=variableResolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"variableResolver.js","sources":["../../../../../lib/shared/utils/variables/variableResolver.ts"],"sourcesContent":["import { type AllowedVariablePrefix, type Resolved, type VariablePattern, type VariableType } from './types'\n\nexport const defaultAllowedPrefixes: AllowedVariablePrefix[] = ['$', '@', '#']\n\nexport const variableResolver = <Variable extends VariableType>() => {\n const patterns: VariablePattern[] = []\n const variables: Map<string, string> = new Map()\n\n const addPattern = (start: VariablePattern['start'], end: VariablePattern['end']) => {\n patterns.push({ start, end })\n return resolver\n }\n\n const addVariables = (vars: Variable[]) => {\n vars?.forEach(({ key, value }) => {\n variables.set(key, value)\n })\n return resolver\n }\n\n const escapeVariable = (string: string): string => {\n return string.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')\n }\n\n const unwrapVariable = (string: string, allowedPrefixes?: AllowedVariablePrefix[]): string => {\n const prefixes = allowedPrefixes || defaultAllowedPrefixes\n for (const prefix of prefixes) {\n const start = `${prefix}{`\n const end = '}'\n if (string.startsWith(start) && string.endsWith(end)) {\n return string.slice(start.length, -end.length)\n }\n }\n\n return string // не соответствует ни одному шаблону\n }\n\n const wrapVariable = (string: string, allowedPrefixes?: AllowedVariablePrefix[]): string => {\n const prefixes = allowedPrefixes || ['$']\n const prefix = prefixes[0]\n return `${prefix}{${string}}`\n }\n\n const resolve = <T>(data: T): Resolved<T> => {\n if (typeof data === 'string') {\n return replaceInString(data) as Resolved<T>\n }\n\n if (Array.isArray(data)) {\n return data.map((item) => resolve(item)) as Resolved<T>\n }\n\n if (typeof data === 'object' && data !== null) {\n const result = {} as Record<keyof T, unknown>\n for (const key in data) {\n result[key] = resolve(data[key])\n }\n return result as Resolved<T>\n }\n\n return data as Resolved<T>\n }\n\n const replaceInString = (str: string): string => {\n let result = str\n for (const { start, end } of patterns) {\n const regex = new RegExp(`${escapeVariable(start)}(.*?)${escapeVariable(end)}`, 'g')\n result = result.replace(regex, (match, varName) => {\n const fullKey = `${start}${varName}${end}`\n return variables.get(fullKey) ?? match\n })\n }\n return result\n }\n\n const resolver = {\n addPattern,\n addVariables,\n unwrapVariable,\n wrapVariable,\n escapeVariable,\n resolve\n }\n\n return resolver\n}\n"],"names":["defaultAllowedPrefixes","variableResolver","patterns","variables","addPattern","start","end","resolver","addVariables","vars","key","value","escapeVariable","string","unwrapVariable","allowedPrefixes","prefixes","prefix","wrapVariable","resolve","data","replaceInString","item","result","str","regex","match","varName","fullKey"],"mappings":"AAEO,MAAMA,EAAkD,CAAC,IAAK,IAAK,GAAG,EAEhEC,EAAmB,IAAqC,CACnE,MAAMC,EAA8B,CAAA,EAC9BC,MAAqC,IAErCC,EAAa,CAACC,EAAiCC,KACnDJ,EAAS,KAAK,CAAE,MAAAG,EAAO,IAAAC,CAAA,CAAK,EACrBC,GAGHC,EAAgBC,IACpBA,GAAM,QAAQ,CAAC,CAAE,IAAAC,EAAK,MAAAC,KAAY,CAChCR,EAAU,IAAIO,EAAKC,CAAK,CAC1B,CAAC,EACMJ,GAGHK,EAAkBC,GACfA,EAAO,QAAQ,sBAAuB,MAAM,EAG/CC,EAAiB,CAACD,EAAgBE,IAAsD,CAC5F,MAAMC,EAAWD,GAAmBf,EACpC,UAAWiB,KAAUD,EAAU,CAC7B,MAAMX,EAAQ,GAAGY,CAAM,IACjBX,EAAM,IACZ,GAAIO,EAAO,WAAWR,CAAK,GAAKQ,EAAO,SAASP,CAAG,EACjD,OAAOO,EAAO,MAAMR,EAAM,OAAQ,CAACC,EAAI,MAAM,CAEjD,CAEA,OAAOO,CACT,EAEMK,EAAe,CAACL,EAAgBE,IAG7B,IAFUA,GAAmB,CAAC,GAAG,GAChB,CAAC,CACT,IAAIF,CAAM,IAGtBM,EAAcC,GAAyB,CAC3C,GAAI,OAAOA,GAAS,SAClB,OAAOC,EAAgBD,CAAI,EAG7B,GAAI,MAAM,QAAQA,CAAI,EACpB,OAAOA,EAAK,IAAKE,GAASH,EAAQG,CAAI,CAAC,EAGzC,GAAI,OAAOF,GAAS,UAAYA,IAAS,KAAM,CAC7C,MAAMG,EAAS,CAAA,EACf,UAAWb,KAAOU,EAChBG,EAAOb,CAAG,EAAIS,EAAQC,EAAKV,CAAG,CAAC,EAEjC,OAAOa,CACT,CAEA,OAAOH,CACT,EAEMC,EAAmBG,GAAwB,CAC/C,IAAID,EAASC,EACb,SAAW,CAAE,MAAAnB,EAAO,IAAAC,CAAA,IAASJ,EAAU,CACrC,MAAMuB,EAAQ,IAAI,OAAO,GAAGb,EAAeP,CAAK,CAAC,QAAQO,EAAeN,CAAG,CAAC,GAAI,GAAG,EACnFiB,EAASA,EAAO,QAAQE,EAAO,CAACC,EAAOC,IAAY,CACjD,MAAMC,EAAU,GAAGvB,CAAK,GAAGsB,CAAO,GAAGrB,CAAG,GACxC,OAAOH,EAAU,IAAIyB,CAAO,GAAKF,CACnC,CAAC,CACH,CACA,OAAOH,CACT,EAEMhB,EAAW,CACf,WAAAH,EACA,aAAAI,EACA,eAAAM,EACA,aAAAI,EACA,eAAAN,EACA,QAAAO,CAAA,EAGF,OAAOZ,CACT"}
|