{"version":3,"file":"index.mjs","sources":[""],"sourcesContent":["import { defaultColumns, defaultGaps, defaultProps } from \"../config\";\r\nimport type { IGrid } from \"../config/types\";\r\n\r\n/**\r\n * Получает адаптированное значение для `align` или `justify`\r\n * @param from{*}\r\n * @returns {string[]}\r\n */\r\nconst getPropAdapter = (from: unknown): string[] => {\r\n\r\n  const [ defaultDesktop, defaultTablet, defaultMobile ] = defaultProps;\r\n\r\n  switch (true) {\r\n    case (Array.isArray(from) && from.every((item) => typeof item === \"string\" && item.length > 0)): {\r\n      if (from.length === 3) {\r\n        return from;\r\n      } else {\r\n        const [\r\n          desktop = defaultDesktop,\r\n          tablet = defaultTablet,\r\n          mobile = defaultMobile,\r\n        ] = from;\r\n        return [ desktop, tablet, mobile ]\r\n          .map((item) => item.toString());\r\n      }\r\n    }\r\n    case typeof from === \"string\":\r\n      return [ from.toString(), defaultTablet, defaultMobile ];\r\n    default:\r\n      console.error(`[Grid] Value \"${from}\" as align or justify isn't supported`);\r\n      return [ defaultDesktop, defaultTablet, defaultMobile ];\r\n  }\r\n};\r\n\r\n/**\r\n * Получает массив колонок для сетки\r\n * @param from{number|number[]}\r\n * @returns {IGrid[\"columns\"]}\r\n */\r\nconst getColumnsAdapter = (from: IGrid[\"columns\"]): number[] | \"auto\"[] => {\r\n\r\n  const isNumber = (item: unknown) => Number.isFinite(item) && Number(item) > 0;\r\n\r\n  const [ defaultDesktop, defaultTablet, defaultMobile ] = defaultColumns;\r\n\r\n  switch (true) {\r\n    case from === \"auto\" || Array.isArray(from) && from.every((item) => item === \"auto\"):\r\n      return [ \"auto\", \"auto\", \"auto\" ];\r\n    case Array.isArray(from) && from.every((item: number | string) => isNumber(item)): {\r\n      if (from.length === 3) {\r\n        return from;\r\n      } else {\r\n        const [\r\n          desktop = defaultDesktop,\r\n          tablet = defaultTablet,\r\n          mobile = defaultMobile,\r\n        ] = from;\r\n        return [ desktop, tablet, mobile ]\r\n          .map((item) => Number(item));\r\n      }\r\n    }\r\n    case isNumber(Number(from)):\r\n      return [ Number(from), defaultTablet, defaultMobile ];\r\n    default:\r\n      console.error(`[Grid] Value \"${from}\" as columns count isn't supported`);\r\n      return [ defaultDesktop, defaultTablet, defaultMobile ];\r\n  }\r\n\r\n};\r\n\r\n/**\r\n * Получает адаптированный массив полей\r\n * @param from{string|string[]}\r\n * @returns {string[]}\r\n */\r\nconst getGapAdapter = (from: IGrid[\"gaps\"]): string[] => {\r\n\r\n  const [ defaultDesktop, defaultTablet, defaultMobile ] = defaultGaps;\r\n\r\n  switch (true) {\r\n    case Array.isArray(from) && from.every((item) => typeof item === \"string\" && item.length > 0):\r\n      if (from.length === 3) {\r\n        return from;\r\n      } else {\r\n        const [\r\n          desktop = defaultDesktop,\r\n          tablet = defaultTablet,\r\n          mobile = defaultMobile,\r\n        ] = from;\r\n        return [ desktop, tablet, mobile ]\r\n          .map((item) => item.toString());\r\n      }\r\n    case typeof from === \"string\":\r\n      return [ from.toString(), defaultTablet, defaultMobile ];\r\n    default:\r\n      console.error(`[Grid] Value \"${from}\" as gap isn't supported`);\r\n      return [ defaultDesktop, defaultTablet, defaultMobile ];\r\n  }\r\n};\r\n\r\n/**\r\n * Проверяет, являются ли два объекта одинаковыми\r\n * @returns {boolean}\r\n */\r\nconst isSameObjects = (one: unknown, two: unknown): boolean => {\r\n  return !!(one && two) ? JSON.stringify(one) === JSON.stringify(two) : false;\r\n};\r\n\r\nexport {\r\n  getColumnsAdapter,\r\n  getGapAdapter,\r\n  getPropAdapter,\r\n  isSameObjects,\r\n};\r\n"],"names":["getPropAdapter","from","defaultDesktop","defaultTablet","defaultMobile","defaultProps","Array","isArray","every","item","length","desktop","tablet","mobile","map","toString","console","error","getColumnsAdapter","isNumber","Number","isFinite","defaultColumns","getGapAdapter","defaultGaps","isSameObjects","one","two","JSON","stringify"],"mappings":";;;;;GAQA,MAAMA,eAAkBC,OAEtB,MAAQC,eAAgBC,cAAeC,eAAkBC,aAEzD,OAAQ,MACN,KAAMC,MAAMC,QAAQN,OAASA,KAAKO,MAAOC,aAAgBA,OAAS,UAAYA,KAAKC,OAAS,GAC1F,GAAIT,KAAKS,SAAW,EAClB,OAAOT,SACF,CACL,MACEU,QAAUT,eACVU,OAAST,cACTU,OAAST,eACPH,KACJ,MAAO,CAAEU,QAASC,OAAQC,QACvBC,IAAKL,MAASA,KAAKM,WACxB,CAEF,YAAYd,OAAS,SACnB,MAAO,CAAEA,KAAKc,WAAYZ,cAAeC,eAC3C,QACEY,QAAQC,MAAM,iBAAiBhB,6CAC/B,MAAO,CAAEC,eAAgBC,cAAeC;;;;;GAS9C,MAAMc,kBAAqBjB,OAEzB,MAAMkB,SAAYV,MAAkBW,OAAOC,SAASZ,OAASW,OAAOX,MAAQ,EAE5E,MAAQP,eAAgBC,cAAeC,eAAkBkB,eAEzD,OAAQ,MACN,KAAKrB,OAAS,QAAUK,MAAMC,QAAQN,OAASA,KAAKO,MAAOC,MAASA,OAAS,QAC3E,MAAO,CAAE,OAAQ,OAAQ,QAC3B,KAAKH,MAAMC,QAAQN,OAASA,KAAKO,MAAOC,MAA0BU,SAASV,OACzE,GAAIR,KAAKS,SAAW,EAClB,OAAOT,SACF,CACL,MACEU,QAAUT,eACVU,OAAST,cACTU,OAAST,eACPH,KACJ,MAAO,CAAEU,QAASC,OAAQC,QACvBC,IAAKL,MAASW,OAAOX,MAC1B,CAEF,KAAKU,SAASC,OAAOnB,OACnB,MAAO,CAAEmB,OAAOnB,MAAOE,cAAeC,eACxC,QACEY,QAAQC,MAAM,iBAAiBhB,0CAC/B,MAAO,CAAEC,eAAgBC,cAAeC;;;;;GAU9C,MAAMmB,cAAiBtB,OAErB,MAAQC,eAAgBC,cAAeC,eAAkBoB,YAEzD,OAAQ,MACN,KAAKlB,MAAMC,QAAQN,OAASA,KAAKO,MAAOC,aAAgBA,OAAS,UAAYA,KAAKC,OAAS,GACzF,GAAIT,KAAKS,SAAW,EAClB,OAAOT,SACF,CACL,MACEU,QAAUT,eACVU,OAAST,cACTU,OAAST,eACPH,KACJ,MAAO,CAAEU,QAASC,OAAQC,QACvBC,IAAKL,MAASA,KAAKM,WACxB,CACF,YAAYd,OAAS,SACnB,MAAO,CAAEA,KAAKc,WAAYZ,cAAeC,eAC3C,QACEY,QAAQC,MAAM,iBAAiBhB,gCAC/B,MAAO,CAAEC,eAAgBC,cAAeC;;;;GAQ9C,MAAMqB,cAAgB,CAACC,IAAcC,SACzBD,KAAOC,KAAOC,KAAKC,UAAUH,OAASE,KAAKC,UAAUF,KAAO"}