{"version":3,"file":"index.mjs","sources":["../../admin/src/pluginId.ts","../../admin/src/utils/getTranslation.ts","../../admin/src/components/LookupEnumIcon.tsx","../../admin/src/components/MultiLookupEnumIcon.tsx","../../admin/src/index.ts"],"sourcesContent":["import jsonPackage from \"../../package.json\";\nexport default jsonPackage.strapi.name;\n","import pluginId from '../pluginId';\n\nconst getTranslation = (id: string) => `${pluginId}.${id}`;\n\nexport { getTranslation };\n","import React from 'react';\n\nfunction Icon() {\n  return (\n    <svg\n      xmlns=\"http://www.w3.org/2000/svg\"\n      width=\"16\"\n      height=\"16\"\n      className=\"sc-blHHSb fTSiDe\"\n      version=\"1.1\"\n      viewBox=\"0 0 32 32\"\n    >\n      <rect\n        width=\"31\"\n        height=\"23\"\n        x=\"0.5\"\n        y=\"4.5\"\n        fill=\"#fbe7e7\"\n        fillOpacity=\"1\"\n        stroke=\"#872525\"\n        strokeOpacity=\"1\"\n        rx=\"2.5\"\n      ></rect>\n      <path\n        fill=\"#7a3030\"\n        fillOpacity=\"1\"\n        d=\"M9.679 7.18a.75.75 0 00-1.358 0l-4 8.5a.75.75 0 001.357.64l.974-2.07h4.695l.974 2.07a.75.75 0 101.358-.64zm-2.32 5.57l1.64-3.489 1.643 3.489zm9.14-3c-.865 0-1.547.241-2.027.717a.75.75 0 101.056 1.063c.188-.187.516-.283.972-.283.584 0 1.074.323 1.21.757a3 3 0 00-1.21-.254c-1.516 0-2.75 1.121-2.75 2.5s1.234 2.5 2.75 2.5c.479.001.95-.114 1.375-.336A.75.75 0 0019.25 16v-3.75c0-1.379-1.234-2.5-2.75-2.5m0 5.5c-.687 0-1.25-.449-1.25-1 0-.551.563-1 1.25-1s1.25.449 1.25 1c0 .551-.562 1-1.25 1\"\n      ></path>\n      <g\n        stroke=\"#020101\"\n        strokeDasharray=\"none\"\n        strokeOpacity=\"1\"\n        transform=\"translate(1.285 -1.897)\"\n      >\n        <circle\n          cx=\"15.212\"\n          cy=\"16.58\"\n          r=\"5.432\"\n          fill=\"#efe7fb\"\n          fillOpacity=\"0.559\"\n          strokeWidth=\"0.6\"\n        ></circle>\n        <path\n          fill=\"none\"\n          fillOpacity=\"1\"\n          strokeLinecap=\"round\"\n          strokeWidth=\"1.623\"\n          d=\"M19.427 20.761l4.94 4.94\"\n        ></path>\n        <path\n          fill=\"none\"\n          fillOpacity=\"1\"\n          strokeLinecap=\"round\"\n          strokeWidth=\"2.84\"\n          d=\"M21.133 22.443l3.172 3.172\"\n        ></path>\n      </g>\n    </svg>\n  );\n}\n\nexport default Icon;\n","import React from 'react';\n\nfunction Icon() {\n  return (\n    <svg\n      xmlns=\"http://www.w3.org/2000/svg\"\n      width=\"16\"\n      height=\"16\"\n      className=\"sc-blHHSb fTSiDe\"\n      viewBox=\"0 0 32 32\"\n    >\n      <rect width=\"31\" height=\"23\" x=\"0.5\" y=\"4.5\" fill=\"#fbe7e7\" stroke=\"#872525\" rx=\"2.5\"></rect>\n      <g fill=\"#7a3030\" transform=\"translate(.612 1.407)\">\n        <path d=\"M9.68 7.18a.75.75 0 00-1.358 0l-4 8.5a.75.75 0 001.357.64l.974-2.07h4.695l.974 2.07a.75.75 0 101.358-.64zm-2.32 5.57L9 9.26l1.643 3.49zm9.14-3c-.865 0-1.547.24-2.027.717a.75.75 0 101.056 1.063c.188-.187.516-.283.972-.283.584 0 1.074.323 1.21.757a3 3 0 00-1.21-.254c-1.516 0-2.75 1.12-2.75 2.5s1.234 2.5 2.75 2.5c.479 0 .95-.114 1.375-.336A.75.75 0 0019.25 16v-3.75c0-1.38-1.234-2.5-2.75-2.5m0 5.5c-.687 0-1.25-.45-1.25-1s.563-1 1.25-1 1.25.449 1.25 1-.562 1-1.25 1\"></path>\n        <path\n          strokeLinecap=\"round\"\n          strokeWidth=\"1.153\"\n          d=\"M2.045 18.326h3.36v-.922h-2.16v-10.8h2.16v-.92h-3.36z\"\n        ></path>\n        <path\n          strokeLinecap=\"round\"\n          strokeWidth=\"1.154\"\n          d=\"M27.645 18.326h-3.36v-.922h2.16v-10.8h-2.16v-.92h3.36z\"\n        ></path>\n        <circle cx=\"20.807\" cy=\"15.922\" r=\"0.817\"></circle>\n        <circle cx=\"23.01\" cy=\"15.922\" r=\"0.817\"></circle>\n        <circle cx=\"25.09\" cy=\"15.922\" r=\"0.817\"></circle>\n      </g>\n      <g stroke=\"#020101\" transform=\"translate(1.286 -1.896)\">\n        <circle\n          cx=\"15.212\"\n          cy=\"16.58\"\n          r=\"5.431\"\n          fill=\"#efe7fb\"\n          fillOpacity=\"0.559\"\n          strokeWidth=\"0.6\"\n        ></circle>\n        <path\n          fill=\"none\"\n          strokeLinecap=\"round\"\n          strokeWidth=\"1.623\"\n          d=\"M19.427 20.761l4.94 4.94\"\n        ></path>\n        <path\n          fill=\"none\"\n          strokeLinecap=\"round\"\n          strokeWidth=\"2.84\"\n          d=\"M21.133 22.443l3.172 3.172\"\n        ></path>\n      </g>\n    </svg>\n  );\n}\n\nexport default Icon;\n","import { getTranslation } from './utils/getTranslation';\nimport LookupEnumIcon from './components/LookupEnumIcon'\nimport MultiLookupEnumIcon from './components/MultiLookupEnumIcon'\n\nimport { StrapiApp, getFetchClient } from '@strapi/strapi/admin';\nimport pluginId from \"./pluginId\";\n\nexport default {\n  async register(app: StrapiApp) {\n\n    const { get } = getFetchClient();\n    const contentTypesResp = await get<{ data: { uid: string; schema: { kind: 'collectionType' | 'singleType' } }[] }>(\n      \"/content-type-builder/content-types\"\n    );\n\n\n    const contentTypeOptions: string[] = (!contentTypesResp.status || contentTypesResp.status === 200) ?\n      contentTypesResp.data.data.filter(item => item.schema.kind === 'singleType').map(item => item.uid)\n      : [];\n\n\n    app.customFields.register(\n      [{\n        name: \"lookup-enum\",\n        pluginId,\n        type: \"string\",\n        icon: LookupEnumIcon,\n        intlLabel: {\n          id: \"lookup-enum.label\",\n          defaultMessage: \"Lookup enum\",\n        },\n        intlDescription: {\n          id: \"lookup-enum.description\",\n          defaultMessage: \"Like enum field , but options are extracted from a field provided by a single content type!\",\n        },\n        description: {\n          id: \"lookup-enum.description\",\n          defaultMessage: \"Like enum field , but options are extracted from a field provided by a single content type!\",\n        },\n      },\n      {\n        name: \"multi-lookup-enum\",\n        pluginId,\n        type: \"json\",\n        icon: MultiLookupEnumIcon,\n        intlLabel: {\n          id: \"multi-lookup-enum.label\",\n          defaultMessage: \"Multiple lookup enum\",\n        },\n        intlDescription: {\n          id: \"multi-lookup-enum.description\",\n          defaultMessage: \"Multiple selection enum field , options are extracted from a field provided by a single content type!\",\n        },\n      },\n      ].map((item) => (\n        {\n          ...(item as any),\n\n          components: {\n\n            Input: async () => {\n              const makeDynamicEnum =\n                (await import(\n              /* webpackChunkName: \"lookup-enum\" */ \"./components/DynamicEnum\"\n                )).default;\n              const component = makeDynamicEnum(item.type === 'json');\n              return { default: component }\n            }\n          },\n          options: {\n\n            base: [\n\n              {\n                sectionTitle: {\n                  id: getTranslation('lookup-enum.options.advanced.optionsSection'),\n                  defaultMessage: 'Options source',\n                },\n                items: [\n                  {\n                    intlLabel: {\n                      id: getTranslation('lookup-enum.options.base.lookupSingleType'),\n                      defaultMessage: 'Single-Type',\n                    },\n                    name: 'options.lookupSingleType' as any,\n                    type: 'select',\n                    description: {\n                      id: getTranslation('lookup-enum.options.base.description'),\n                      defaultMessage: 'Lookup Single-Type entity',\n                    },\n                    options: contentTypeOptions.map((value) => {\n                      return {\n                        key: value,\n                        value,\n                        metadatas: {\n                          intlLabel: { id: `${value}.no-override`, defaultMessage: value },\n                        },\n                      }\n                    })\n                  },\n                  {\n                    intlLabel: {\n                      id: getTranslation('lookup-enum.options.base.lookupField'),\n                      defaultMessage: 'Lookup field',\n                    },\n                    name: 'options.lookupField' as any,\n                    type: 'text',\n\n                    description: {\n                      id: getTranslation('lookup-enum.options.base.description'),\n                      defaultMessage: 'Single-type text field where options are extracted using spaces,tabs and returns as delimiter.',\n                    },\n                  }\n                ]\n              },\n\n            ],\n            advanced: [\n              {\n                sectionTitle: {\n                  id: getTranslation('lookup-enum.options.advanced.settings'),\n                  defaultMessage: 'Settings',\n                },\n                items: [\n                  {\n                    name: 'required',\n                    type: 'checkbox',\n                    intlLabel: {\n                      id: 'form.attribute.item.requiredField',\n                      defaultMessage: 'Required field',\n                    },\n                    description: {\n                      id: 'form.attribute.item.requiredField.description',\n                      defaultMessage: \"You won't be able to create an entry if this field is empty\",\n                    },\n                  },\n                  {\n                    name: 'unique',\n                    type: 'checkbox',\n                    intlLabel: {\n                      id: 'form.attribute.item.uniqueField',\n                      defaultMessage: 'Unique field',\n                    },\n                    description: {\n                      id: 'form.attribute.item.uniqueField.description',\n                      defaultMessage: \"You won't be able to create an entry if there is an existing entry with identical content\",\n                    },\n                  },\n                  {\n                    name: 'private',\n                    type: 'checkbox',\n                    intlLabel: {\n                      id: 'form.attribute.item.privateField',\n                      defaultMessage: 'Private field',\n                    },\n                    description: {\n                      id: 'form.attribute.item.privateField.description',\n                      defaultMessage: \"This field will not show up in the API response\",\n                    },\n                  },\n                ],\n              }\n            ]\n\n          }\n        })\n      )\n    );\n\n\n\n\n\n  },\n\n  async registerTrads(app: any) {\n    const { locales } = app;\n\n    const importedTranslations = await Promise.all(\n      (locales as string[]).map((locale) => {\n        return import(`./translations/${locale}.json`)\n          .then(({ default: data }) => {\n            return {\n              data: getTranslation(data),\n              locale,\n            };\n          })\n          .catch(() => {\n            return {\n              data: {},\n              locale,\n            };\n          });\n      })\n    );\n\n    return importedTranslations;\n  },\n};\n"],"names":["Icon","LookupEnumIcon","MultiLookupEnumIcon"],"mappings":"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"}