{"version":3,"file":"isStateIncludesOtherState.mjs","sources":[""],"sourcesContent":["import { isObjHasOwnProp, getObjLength } from \"@web3r/flowerkit/obj\";\r\nimport type { TIsStateIncludesOtherState } from \"../config/types\";\r\n\r\n/**\r\n * Проверяет, содержит ли одно состояние элементы другого\r\n * @returns {boolean}\r\n */\r\nexport const isStateIncludesOtherState = ({\r\n  firstState,\r\n  secondState,\r\n  anyValueMask = \"*\",\r\n}: TIsStateIncludesOtherState): boolean => {\r\n  const isPlainRecord = (value: unknown): value is Record<string, unknown> => {\r\n    return typeof value === \"object\" && value !== null && !Array.isArray(value);\r\n  };\r\n\r\n  let isSame = false;\r\n\r\n  if (isPlainRecord(firstState) && isPlainRecord(secondState)) {\r\n    Object.entries(firstState).forEach(([ key, value ]) => {\r\n      if (isObjHasOwnProp(secondState, key)) {\r\n        const comparedState = secondState[key];\r\n\r\n        if (Array.isArray(value)) {\r\n          isSame = value.includes(comparedState);\r\n        } else if (isPlainRecord(value) && isPlainRecord(comparedState)) {\r\n          isSame = getObjLength(value) === getObjLength(comparedState) &&\r\n            Object.entries(value).every(([ key, val ]) => {\r\n              if (isObjHasOwnProp(comparedState, key)) {\r\n                return val === anyValueMask ? true : val === comparedState[key];\r\n              }\r\n              return false;\r\n            });\r\n        } else {\r\n          isSame = value === comparedState;\r\n        }\r\n      }\r\n    });\r\n  }\r\n\r\n  return isSame;\r\n};\r\n"],"names":["isStateIncludesOtherState","firstState","secondState","anyValueMask","isPlainRecord","value","Array","isArray","isSame","Object","entries","forEach","key","isObjHasOwnProp","comparedState","includes","getObjLength","every","val"],"mappings":";;;;GAOO,MAAMA,0BAA4B,EACvCC,sBACAC,wBACAC,0BAAe,QAEf,MAAMC,cAAiBC,cACPA,QAAU,UAAYA,QAAU,OAASC,MAAMC,QAAQF,OAGvE,IAAIG,OAAS,MAEb,GAAIJ,cAAcH,aAAeG,cAAcF,aAC7CO,OAAOC,QAAQT,YAAYU,QAAQ,EAAGC,IAAKP,UACzC,GAAIQ,gBAAgBX,YAAaU,KAAM,CACrC,MAAME,cAAgBZ,YAAYU,KAElC,GAAIN,MAAMC,QAAQF,OAChBG,OAASH,MAAMU,SAASD,oBACnB,GAAIV,cAAcC,QAAUD,cAAcU,eAC/CN,OAASQ,aAAaX,SAAWW,aAAaF,gBAC5CL,OAAOC,QAAQL,OAAOY,MAAM,EAAGL,IAAKM,QAClC,GAAIL,gBAAgBC,cAAeF,KACjC,OAAOM,MAAQf,aAAe,KAAOe,MAAQJ,cAAcF,KAE7D,OAAO,aAGXJ,OAASH,QAAUS,aAEvB,IAIJ,OAAON"}