UNPKG

react-usemap-render-component

Version:

An npm package for rendering ReactJS components in a cleaner and more beautiful way, allowing elements to be passed to the components from the hook’s props.

1 lines 4.92 kB
{"version":3,"sources":["../src/utils/parseTypeItem.ts","../src/utils/handleKeyObject.ts","../src/index.tsx"],"names":["newKey","newItem"],"mappings":";;;;;AAYA,IAAM,aAA+B,GAAA,CAAC,EAAE,IAAA,EAAM,KAAU,KAAA;AACtD,EAAO,OAAA;AAAA,IACL,MAAQ,EAAA;AAAA,MACN,MAAQ,EAAA,GAAA;AAAA,MACR,OAAS,EAAA;AAAA,KACX;AAAA,IACA,QAAU,EAAA;AAAA,MACR,MAAQ,EAAA,GAAA;AAAA,MACR,OAAS,EAAA;AAAA;AACX,GACF;AACF,CAAA;AAEA,IAAO,qBAAQ,GAAA,aAAA;;;ACrBf,IAAM,kBAAmC,CAAC,EAAE,IAAM,EAAA,GAAA,EAAK,OAAY,KAAA;AACjE,EAAI,IAAA,CAAC,MAAa,OAAA,KAAA;AAElB,EAAI,IAAA,OAAO,IAAS,KAAA,QAAA,EAAiB,OAAA,KAAA;AAErC,EAAA,IAAI,QAAQ,OAAS,EAAA;AACnB,IAAO,OAAA,KAAA;AAAA;AAGT,EAAI,IAAA,GAAA,KAAQ,SAAa,IAAA,GAAA,IAAO,IAAM,EAAA;AACpC,IAAO,OAAA,CAAA,EAAG,IAAK,CAAA,GAAG,CAAC,CAAA,CAAA;AAAA;AAGrB,EAAI,IAAA,GAAA,KAAQ,SAAa,IAAA,IAAA,IAAQ,IAAM,EAAA;AAGrC,IAAA,MAAM,OAAU,GAAA,IAAA;AAEhB,IAAO,OAAA,CAAA,EAAG,QAAQ,EAAE,CAAA,CAAA;AAAA;AAGtB,EAAO,OAAA,KAAA;AACT,CAAA;AAEA,IAAO,uBAAQ,GAAA,eAAA;;;ACrBf,IAAM,MAAA,GAAiB,CAAC,EAAE,IAAA,EAAM,WAAW,MAAQ,EAAA,GAAG,OAAY,KAAA;AAChE,EAAA,MAAM,EAAE,GAAM,GAAA,SAAA,EAAc,GAAA,EAAE,GAAG,MAAO,EAAA;AAExC,EAAA,OACE,IAAK,CAAA,GAAA,CAAI,CAAC,IAAA,EAAM,KAAU,KAAA;AACxB,IAAA,IAAI,WAAmB,GAAA,KAAA;AAGvB,IAAI,IAAA,OAAO,SAAS,QAAU,EAAA;AAC5B,MAAM,MAAA,EAAE,MAAAA,EAAAA,OAAAA,EAAQ,OAAAC,EAAAA,QAAAA,EAAY,GAAA,qBAAA,CAAc,EAAE,IAAA,EAAM,GAAI,EAAC,CAAE,CAAA,MAAA;AAEzD,MAAA,WAAA,GAAc,wBAAgB,EAAE,IAAA,EAAMA,UAAS,GAAKD,EAAAA,OAAAA,EAAQ,OAAO,CAAA;AAEnE,MACE,uBAAA,KAAA,CAAA,aAAA;AAAA,QAAC,SAAA;AAAA,QAAA;AAAA,UACC,GAAK,EAAA,WAAA;AAAA,UACL,KAAA;AAAA,UAEC,GAAG,IAAA;AAAA,UACH,GAAG;AAAA;AAAA,OACN;AAAA;AAKJ,IAAM,MAAA,EAAE,QAAQ,OAAQ,EAAA,GAAI,sBAAc,EAAE,IAAA,EAAM,GAAI,EAAC,CAAE,CAAA,QAAA;AAEzD,IAAA,IAAI,WAAW,MAAQ,EAAA;AACrB,MAAc,WAAA,GAAA,OAAA;AAAA;AAGhB,IACE,uBAAA,KAAA,CAAA,aAAA;AAAA,MAAC,SAAA;AAAA,MAAA;AAAA,QACC,GAAK,EAAA,WAAA;AAAA,QACL,KAAA;AAAA,QAEC,GAAG;AAAA,OAAA;AAAA,MAEH;AAAA,KACH;AAAA,GAEH,CAAA;AAGL,CAAA;AAEA,IAAO,aAAQ,GAAA","file":"index.mjs","sourcesContent":["import { UseMapTypeData, KeyConfig, KeyConfigObject, KeyConfigNotObject, DataNoObject } from \"../types/types\"\r\n\r\ntype ParseTypeItemParams = {\r\n key: KeyConfig<UseMapTypeData> | \"default\"\r\n item: UseMapTypeData,\r\n}\r\n\r\ntype ParseTypeItem = ({ item, key }: ParseTypeItemParams) => {\r\n object: { newKey: KeyConfigObject<object> | \"default\", newItem: object }\r\n noObject: { newKey: KeyConfigNotObject | \"default\", newItem: DataNoObject }\r\n}\r\n\r\nconst parseTypeItem: ParseTypeItem = ({ item, key }) => {\r\n return {\r\n object: {\r\n newKey: key as KeyConfig<object> | \"default\",\r\n newItem: item as object\r\n },\r\n noObject: {\r\n newKey: key as KeyConfigNotObject | \"default\",\r\n newItem: item as DataNoObject\r\n }\r\n }\r\n}\r\n\r\nexport default parseTypeItem\r\n","import { KeyConfig, DataObject } from \"../types/types\"\r\n\r\ntype HandleKeyObject = <data extends object>({ item, key, index }: { item: data, key: KeyConfig<object> | \"default\", index: number }) => string | number\r\n\r\nconst handleKeyObject: HandleKeyObject = ({ item, key, index }) => {\r\n if (!item) return index\r\n\r\n if (typeof item !== \"object\") return index\r\n\r\n if (key === \"index\") {\r\n return index\r\n }\r\n\r\n if (key !== \"default\" && key in item) {\r\n return `${item[key]}`\r\n }\r\n // if is an object and have field id\r\n if (key === \"default\" && \"id\" in item) {\r\n type TypeItem = DataObject\r\n\r\n const newItem = item as TypeItem\r\n\r\n return `${newItem.id}`\r\n }\r\n\r\n return index\r\n}\r\n\r\nexport default handleKeyObject\r\n","import React, { Key } from \"react\"\n\nimport { UseMap } from \"./types/types\"\n\nimport parseTypeItem from \"./utils/parseTypeItem\"\nimport handleKeyObject from \"./utils/handleKeyObject\"\n\nconst useMap: UseMap = ({ data, Component, config, ...props }) => {\n const { key = \"default\" } = { ...config }\n\n return (\n data.map((item, index) => {\n let relativeKey: Key = index\n\n // if item is an object ***********************************\n if (typeof item === \"object\") {\n const { newKey, newItem } = parseTypeItem({ item, key }).object\n\n relativeKey = handleKeyObject({ item: newItem, key: newKey, index })\n\n return (\n <Component\n key={relativeKey}\n index={index}\n\n {...item}\n {...props}\n />\n )\n }\n\n // if item is not an object ***********************************\n const { newKey, newItem } = parseTypeItem({ item, key }).noObject\n\n if (newKey === \"item\") {\n relativeKey = newItem\n }\n\n return (\n <Component\n key={relativeKey}\n index={index}\n\n {...props}\n >\n {item}\n </Component>\n )\n })\n\n )\n}\n\nexport default useMap\n\nexport type {\n Component\n\n} from './types/types';"]}