iran-license-plate
Version:
A general react component for Iran license plate.
1 lines • 29.3 kB
Source Map (JSON)
{"version":3,"sources":["../src/IranLicensePlate/components/IranSvg.tsx","../src/IranLicensePlate/index.tsx","../src/IranLicensePlate/helper.tsx","../src/IranLicensePlate/components/images.tsx","../src/IranLicensePlate/components/FreeImage.tsx","../src/IranLicensePlate/components/Spinner.tsx"],"sourcesContent":["export const IranSvg = (props: React.SVGProps<SVGSVGElement>) => {\n return (\n <svg\n {...props}\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"currentColor\"\n width=\"16.167\"\n height=\"3.664\"\n viewBox=\"0 0 16.167 3.664\"\n >\n <g id=\"Group_12203\" data-name=\"Group 12203\" transform=\"translate(0 0)\">\n <path\n id=\"Path_1648\"\n data-name=\"Path 1648\"\n d=\"M-3223.412-2468.545h-.955v-3.664h.955Z\"\n transform=\"translate(3239.58 2472.21)\"\n />\n <path\n id=\"Path_1650\"\n data-name=\"Path 1650\"\n d=\"M-3223.412-2468.545h-.955v-3.664h.955Z\"\n transform=\"translate(3231.002 2472.21)\"\n />\n <path\n id=\"Path_1650-2\"\n data-name=\"Path 1650\"\n d=\"M-3223.412-2471.392h-.955v-.817h.955Z\"\n transform=\"translate(3226.851 2473.437)\"\n />\n <path\n id=\"Path_1650-3\"\n data-name=\"Path 1650\"\n d=\"M-3223.412-2471.392h-.955v-.817h.955Z\"\n transform=\"translate(3237.623 2475.054)\"\n />\n <path\n id=\"Path_1650-4\"\n data-name=\"Path 1650\"\n d=\"M-3223.412-2471.392h-.955v-.817h.955Z\"\n transform=\"translate(3235.713 2475.057)\"\n />\n <path\n id=\"Path_1649\"\n data-name=\"Path 1649\"\n d=\"M-3230.345-2468.2h-.955v-2.185h4.664v-.522h.955v1.477h-4.664Z\"\n transform=\"translate(3239.892 2471.857)\"\n />\n <path\n id=\"Path_1651\"\n data-name=\"Path 1651\"\n d=\"M-3232.92-2467.552h-5.924v-2.435h.955v1.48h4.014v-1.48h.955Z\"\n transform=\"translate(3238.844 2471.213)\"\n />\n </g>\n </svg>\n );\n};\n","import { IranSvg } from \"./components/IranSvg\";\nimport disableSvg from \"./assets/disable.svg\";\nimport IranFlag from \"./assets/Flag.png\";\nimport React, { HTMLAttributes } from \"react\";\nimport { getPlaqueInfo } from \"./helper\";\nimport FreeImage from \"./components/FreeImage\";\nimport { SpinnerSvg } from \"./components/Spinner\";\n\ninterface LicenseNumberProp extends HTMLAttributes<HTMLDivElement> {\n serial?: string;\n isLoading?: boolean;\n isUnknown?: boolean;\n}\nexport const IranLicensePlate = ({\n serial,\n className,\n style,\n isLoading,\n isUnknown,\n}: LicenseNumberProp) => {\n const iranRegularRGX =\n /(?<region>\\w{2})(?<CityNumber>\\d{2})-(?<Section2>\\d{3})(?<Letter>\\w)(?<Section4>\\d{2})(-(?<Expire>\\d{4}))?/;\n\n const iranFreeRGX = /(?<region>\\w*)(?<CityNumber>\\d{2})-(?<Section2>\\d{5})/;\n\n if (!serial || isUnknown || isLoading) {\n return (\n <>\n <div\n dir=\"rtl\"\n className={\n (isLoading ? \" ip-animate-pulse ip-duration-100\" : \"\") +\n \" ip-grid ip-min-w-[175px] ip-bg-red-600 ip-text-white ip-border-black ip-border-2 ip-rounded-lg ip-relative ip-overflow-hidden ip-grid-cols-12 ip-w-full ip-aspect-[18/4] ip-text-[1em] \" +\n className\n }\n style={{\n fontFamily: \"IranSansNumber\",\n backgroundColor: \"#ffffff\",\n color: \"#000000\",\n minWidth: \"175px\",\n ...style,\n }}\n >\n <div className=\"ip-col-span-11 ip-flex ip-min-h-0\">\n <div className=\"ip-aspect-square ip-border-black ip-border-l-2 ip-h-full ip-grid ip-text-[1.2em]\">\n <IranSvg className=\"ip-w-full ip-h-full ip-aspect-[0.5/1] ip-px-2 ip-pt-0.5 \" />\n <div className=\"ip-grid ip-aspect-[1.5/1] ip-h-fit ip-px-1\">\n <p className=\"ip-text-[1.2em] ip-grid ip-items-center ip-leading-none ip-font-semibold ip-text-center\">\n --\n </p>\n </div>\n </div>\n <div className=\" ip-grow ip-text-[2.2em] ip-font-semibold ip-flex ip-items-center ip-justify-around\">\n <p> --- </p>\n <div className=\"ip-flex ip-flex-col ip-h-full ip-leading-none ip-justify-center\">\n <p className=\"ip-leading-[0.6em]\">\n {isLoading ? (\n <SpinnerSvg width={\"1.2em\"} height={\"1.2em\"} />\n ) : (\n \"؟\"\n )}\n </p>\n </div>\n <p> -- </p>\n </div>\n </div>\n <div className=\"ip-col-span-1 ip-p-0.5 ip-bg-[#003399] ip-flex ip-flex-col ip-text-[1em] \">\n <img\n src={IranFlag}\n alt=\"Flag\"\n className=\"p-[0.1rem] pt-[0.2rem] \"\n />\n <div\n dir=\"ltr\"\n className=\"ip-w-full ip-flex ip-flex-col ip-text-[0.43em] ip-items-start ip-mt-auto ip-text-white\"\n >\n <p className=\"\">I.R.</p>\n <p className=\"\">IRAN</p>\n </div>\n </div>\n </div>\n </>\n );\n }\n\n if (serial.match(iranRegularRGX)) {\n const matches = iranRegularRGX.exec(serial);\n const info = getPlaqueInfo(matches?.groups?.Letter);\n return (\n <>\n <div\n dir=\"rtl\"\n className={\n \"ip-grid ip-min-w-[175px] ip-bg-red-600 ip-text-white ip-border-black ip-border-2 ip-rounded-lg ip-relative ip-overflow-hidden ip-grid-cols-12 ip-w-full ip-aspect-[18/4] ip-text-[1em] \" +\n className\n }\n style={{\n fontFamily: \"IranSansNumber\",\n backgroundColor: info.bg,\n color: info.text,\n minWidth: \"175px\",\n ...style,\n }}\n >\n <div className=\"ip-col-span-11 ip-flex ip-min-h-0\">\n <div className=\"ip-aspect-square ip-border-black ip-border-l-2 ip-h-full ip-grid ip-text-[1.2em]\">\n <IranSvg className=\"ip-w-full ip-h-full ip-aspect-[0.5/1] ip-px-2 ip-pt-0.5 \" />\n <div className=\"ip-grid ip-aspect-[1.5/1] ip-h-fit ip-px-1\">\n <p className=\"ip-text-[1.2em] ip-grid ip-items-center ip-leading-none ip-font-semibold ip-text-center\">\n {matches?.groups?.CityNumber}\n </p>\n\n {matches?.groups?.Expire ? (\n <p\n style={{ borderColor: info.text }}\n className=\"ip-text-[0.8em] ip-leading-none ip-border-t-2 ip-pt-1 ip-font-semibold ip-text-center\"\n >\n {[\n matches?.groups?.Expire.slice(0, 2),\n matches?.groups?.Expire.slice(2),\n ].join(\"/\")}\n </p>\n ) : (\n <></>\n )}\n </div>\n </div>\n <div className=\" ip-grow ip-text-[2.2em] ip-font-semibold ip-flex ip-items-center ip-justify-around\">\n <p> {matches?.groups?.Section2}</p>\n <div className=\"ip-flex ip-flex-col ip-h-full ip-leading-none ip-justify-center\">\n <p\n className=\"ip-w-full ip-font-extralight ip-text-[0.4em]\"\n style={{\n fontFamily: \"sans-serif\",\n }}\n >\n {info.type === \"taxi\" ? \"TAXI\" : \"\"}\n </p>\n {info.type === \"handicapped\" ? (\n <img src={disableSvg} className=\"ip-w-[1em] ip-h-[1em] \" />\n ) : (\n <p className=\"ip-leading-[0.6em]\">{info.letter}</p>\n )}\n </div>\n <p> {matches?.groups?.Section4}</p>\n </div>\n </div>\n <div className=\"ip-col-span-1 ip-p-0.5 ip-bg-[#003399] ip-flex ip-flex-col ip-text-[1em] \">\n <img\n src={IranFlag}\n alt=\"Flag\"\n className=\"p-[0.1rem] pt-[0.2rem] \"\n />\n <div\n dir=\"ltr\"\n className=\"ip-w-full ip-flex ip-flex-col ip-text-[0.43em] ip-items-start ip-mt-auto ip-text-white\"\n >\n <p className=\"\">I.R.</p>\n <p className=\"\">IRAN</p>\n </div>\n </div>\n </div>\n </>\n );\n }\n\n // Azad\n\n if (serial.match(iranFreeRGX)) {\n const matches = iranFreeRGX.exec(serial);\n const isPublic = matches?.groups?.CityNumber\n ? +matches?.groups?.CityNumber % 2 !== 0\n : true;\n return (\n <>\n <div\n dir=\"rtl\"\n className={\n \"ip-grid ip-min-w-[175px] ip-border-black ip-border-2 ip-rounded-lg ip-relative ip-overflow-hidden ip-grid-cols-12 ip-w-full ip-text-[1em] \" +\n className\n }\n style={{\n backgroundColor: isPublic ? \"#ffffff\" : \"#ffca0b\",\n color: \"#000000\",\n minWidth: \"175px\",\n ...style,\n }}\n >\n <div className=\"ip-grid ip-aspect-[10/5] ip-w-full ip-col-span-9\">\n <div\n className=\" ip-grid ip-grid-cols-12 ip-aspect-[10/4] ip-tracking-widest \"\n style={{\n fontFamily: \"IranSansNumber\",\n }}\n >\n <div className=\"ip-col-span-5 ip-border-black ip-border-l-2 ip-h-full ip-grid ip-text-[1.2em]\">\n <div className=\"ip-grid ip-h-full ip-text-[1.7em]\">\n <p className=\"ip-text-[1.2em] ip-grid ip-items-center ip-leading-none ip-font-semibold ip-text-center\">\n {matches?.groups?.CityNumber}\n </p>\n </div>\n </div>\n <div className=\"ip-col-span-7 ip-grow ip-text-[2.5em] ip-font-semibold ip-flex ip-items-center ip-justify-around\">\n <p> {matches?.groups?.Section2}</p>\n </div>\n </div>\n\n <div className=\" ip-grid ip-grid-cols-12 ip-aspect-[11/2] ip-border-black ip-border-t-2\">\n <div className=\"ip-col-span-5 ip-border-black ip-border-l-2 ip-h-full ip-grid ip-text-[1.2em]\">\n <div className=\"ip-grid ip-h-full ip-text-[1.4em]\">\n <p className=\"ip-text-[1.2em] ip-grid ip-items-center ip-leading-none ip-font-semibold ip-text-center\">\n {matches?.groups?.CityNumber}\n </p>\n </div>\n </div>\n <div className=\"ip-col-span-7 ip-grow ip-text-[2.2em] ip-font-semibold ip-flex ip-items-center ip-justify-around\">\n <p> {matches?.groups?.Section2}</p>\n </div>\n </div>\n </div>\n <div className=\"ip-col-span-3 ip-p-0.5 ip-bg-[#003399] ip-flex ip-flex-col ip-text-[1em] \">\n <div className=\"ip-flex ip-w-full ip-gap-2\">\n <div\n dir=\"ltr\"\n className=\"ip-w-full ip-flex ip-flex-col ip-text-[0.43em] ip-items-start ip-mt-auto ip-text-white\"\n >\n <p className=\"\">I.R.</p>\n <p className=\"\">IRAN</p>\n </div>\n <img\n src={IranFlag}\n alt=\"Flag\"\n className=\"p-[0.1rem] pt-[0.2rem] ip-flex ip-w-1/2\"\n />\n </div>\n <div className=\"ip-w-full ip-h-full ip-flex ip-items-center ip-justify-center ip-p-4\">\n <FreeImage region={matches?.groups?.region as any} />\n </div>\n <div\n dir=\"ltr\"\n className=\"ip-w-full ip-text-center ip-text-[1em] ip-items-center ip-mt-auto ip-text-white\"\n >\n <p className=\"ip-text-center\">\n {matches?.groups?.region === \"CHFZ\"\n ? \"CH.F.Z\"\n : matches?.groups?.region}\n </p>\n </div>\n </div>\n </div>\n </>\n );\n }\n\n return <>Wrong Serial?</>;\n};\n\nexport default IranLicensePlate;\n","const governmental = () => {\n return {\n type: \"governmental\",\n letter: \"الف\",\n bg: \"#ee161f\",\n text: \"#ffffff\",\n };\n};\n\nconst personal = (farsiLetter: string) => {\n return {\n type: \"personal\",\n letter: farsiLetter,\n bg: \"#ffffff\",\n text: \"#000000\",\n };\n};\nconst handicapped = () => {\n return {\n type: \"handicapped\",\n letter: \"ژ\",\n bg: \"#ffffff\",\n text: \"#000000\",\n };\n};\nconst temporary = () => {\n return {\n type: \"temporary\",\n letter: \"گ\",\n bg: \"#ffffff\",\n text: \"#000000\",\n };\n};\n\nconst taxi = () => {\n return {\n type: \"taxi\",\n letter: \"ت\",\n bg: \"#ffca0b\",\n text: \"#000000\",\n };\n};\nconst publicPlaque = () => {\n return {\n type: \"public\",\n letter: \"ع\",\n bg: \"#ffca0b\",\n text: \"#000000\",\n };\n};\nconst agriculture = () => {\n return {\n type: \"agriculture\",\n letter: \"ک\",\n bg: \"#ffca0b\",\n text: \"#000000\",\n };\n};\n\nconst police = () => {\n return {\n type: \"police\",\n letter: \"پ\",\n bg: \"#005224\",\n text: \"#ffffff\",\n };\n};\nconst sepah = () => {\n return {\n type: \"sepah\",\n letter: \"ث\",\n bg: \"#005224\",\n text: \"#ffffff\",\n };\n};\nconst military = () => {\n return {\n type: \"military\",\n letter: \"ش\",\n bg: \"#cfa260\",\n text: \"#000000\",\n };\n};\n\nconst headquarter = () => {\n return {\n type: \"headquarter\",\n letter: \"ف\",\n bg: \"#0079c1\",\n text: \"#ffffff\",\n };\n};\nconst ministry = () => {\n return {\n type: \"ministry\",\n letter: \"ز\",\n bg: \"#0079c1\",\n text: \"#ffffff\",\n };\n};\n\nconst diplomatic = () => {\n return {\n type: \"diplomatic\",\n letter: \"D\",\n bg: \"#00a2e8\",\n text: \"#000000\",\n };\n};\nconst service = () => {\n return {\n type: \"service\",\n letter: \"S\",\n bg: \"#00a2e8\",\n text: \"#000000\",\n };\n};\n\ninterface PlaqueInfo {\n type:\n | \"governmental\"\n | \"personal\"\n | \"handicapped\"\n | \"taxi\"\n | \"police\"\n | \"sepah\"\n | \"military\"\n | \"ministry\"\n | \"headquarter\"\n | \"agriculture\"\n | \"temporary\"\n | \"diplomatic\"\n | \"service\";\n letter: string;\n bg: string;\n text: string;\n}\n\nexport function getPlaqueInfo(letter?: string): PlaqueInfo {\n const AvailibleLetters = {\n f: () => governmental(), //الف\n b: () => personal(\"ب\"), // ب\n j: () => personal(\"ج\"), // ج\n d: () => personal(\"د\"), // د\n s: () => personal(\"س\"), // س\n c: () => personal(\"ص\"), // ص\n t: () => personal(\"ط\"), // ط\n q: () => personal(\"ق\"), // ق\n l: () => personal(\"ل\"), // ل\n m: () => personal(\"م\"), // م\n n: () => personal(\"ن\"), // ن\n v: () => personal(\"و\"), // و\n h: () => personal(\"هـ\"), // ه\n y: () => personal(\"ی\"), // ی\n //\n H: () => handicapped(), // ژ\n //\n T: () => taxi(), // ت\n A: () => publicPlaque(), // ع\n //\n P: () => police(), // پ\n C: () => sepah(), // ث\n M: () => military(), // ش\n //\n Z: () => ministry(), // ز\n F: () => headquarter(), // ف\n //\n K: () => agriculture(), // ک\n G: () => temporary(), // گ\n //\n D: () => diplomatic(), // D\n S: () => service(), // S\n };\n //@ts-ignore\n return AvailibleLetters[letter || \"b\"]();\n}\n","import { DetailedHTMLProps, HTMLAttributes, ImgHTMLAttributes } from \"react\";\n\nimport anzali from \"../assets/images/anzali.svg\";\nimport maku from \"../assets/images/maku.svg\";\nimport aras from \"../assets/images/aras.svg\";\nimport arvand from \"../assets/images/arvand.svg\";\nimport cHfz from \"../assets/images/chfz.svg\";\nimport kish from \"../assets/images/kish.svg\";\nimport qeshm from \"../assets/images/qeshm.svg\";\n\nexport const AnzaliSVG = (\n props: DetailedHTMLProps<\n ImgHTMLAttributes<HTMLImageElement>,\n HTMLImageElement\n >\n) => {\n return <img src={anzali} alt=\"\" {...props} />;\n};\n\nexport const MakuSVG = (\n props: DetailedHTMLProps<\n ImgHTMLAttributes<HTMLImageElement>,\n HTMLImageElement\n >\n) => {\n return <img src={maku} alt=\"\" {...props} />;\n};\n\nexport const ArasSVG = (\n props: DetailedHTMLProps<\n ImgHTMLAttributes<HTMLImageElement>,\n HTMLImageElement\n >\n) => {\n return <img src={aras} alt=\"\" {...props} />;\n};\n\nexport const ArvandSVG = (\n props: DetailedHTMLProps<\n ImgHTMLAttributes<HTMLImageElement>,\n HTMLImageElement\n >\n) => {\n return <img src={arvand} alt=\"\" {...props} />;\n};\n\nexport const CHfzSVG = (\n props: DetailedHTMLProps<\n ImgHTMLAttributes<HTMLImageElement>,\n HTMLImageElement\n >\n) => {\n return <img src={cHfz} alt=\"\" {...props} />;\n};\n\nexport const KishSVG = (\n props: DetailedHTMLProps<\n ImgHTMLAttributes<HTMLImageElement>,\n HTMLImageElement\n >\n) => {\n return <img src={kish} alt=\"\" {...props} />;\n};\n\nexport const QeshmSVG = (\n props: DetailedHTMLProps<\n ImgHTMLAttributes<HTMLImageElement>,\n HTMLImageElement\n >\n) => {\n return <img src={qeshm} alt=\"\" {...props} />;\n};\n","import React from \"react\";\nimport {\n AnzaliSVG,\n ArasSVG,\n ArvandSVG,\n CHfzSVG,\n KishSVG,\n MakuSVG,\n QeshmSVG,\n} from \"./images\";\n\ninterface IFreeImage {\n region?: \"KISH\" | \"QESHM\" | \"MAKU\" | \"ARVAND\" | \"ANZALI\" | \"ARAS\" | \"CHFZ\";\n}\nconst FreeImage = ({ region }: IFreeImage) => {\n switch (region) {\n case \"ANZALI\":\n return <AnzaliSVG width={\"100%\"} height={\"100%\"} />;\n case \"ARAS\":\n return <ArasSVG width={\"100%\"} height={\"100%\"} />;\n case \"ARVAND\":\n return <ArvandSVG width={\"100%\"} height={\"100%\"} />;\n case \"CHFZ\":\n return <CHfzSVG width={\"70%\"} height={\"70%\"} />;\n case \"KISH\":\n return <KishSVG width={\"100%\"} height={\"100%\"} />;\n case \"MAKU\":\n return <MakuSVG width={\"100%\"} height={\"100%\"} />;\n case \"QESHM\":\n return <QeshmSVG width={\"100%\"} height={\"100%\"} />;\n default:\n return <></>;\n }\n};\n\nexport default FreeImage;\n","export const SpinnerSvg = (props: React.SVGProps<SVGSVGElement>) => {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"20px\"\n height=\"20px\"\n {...props}\n viewBox=\"0 0 100 100\"\n preserveAspectRatio=\"xMidYMid\"\n >\n <circle\n cx=\"50\"\n cy=\"50\"\n fill=\"none\"\n stroke=\"currentColor\"\n r=\"35\"\n strokeDasharray=\"164.93361431346415 56.97787143782138\"\n >\n <animateTransform\n attributeName=\"transform\"\n type=\"rotate\"\n repeatCount=\"indefinite\"\n dur=\"1s\"\n values=\"0 50 50;360 50 50\"\n keyTimes=\"0;1\"\n ></animateTransform>\n </circle>\n </svg>\n );\n};\n"],"mappings":"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","names":["jsx","jsx","jsx","Fragment","jsx","jsxs"]}