{"version":3,"file":"StatusTag-FMwefaBx.js","sources":["../../../app/javascript/dashboards/components/common/StatusTag.tsx"],"sourcesContent":["import React from 'react';\nimport { Tag } from '@angellist/adapt';\nimport { formatTitle } from '../../helpers/utils';\n\ntype TagIntent =\n  | 'neutral'\n  | 'info'\n  | 'success'\n  | 'warning'\n  | 'danger'\n  | 'draft'\n  | 'new'\n  | 'other'\n  | 'inProgress'\n  | 'pending'\n  | 'complete'\n  | 'postComplete'\n  | 'canceled';\n\ntype Props = {\n  as?: 'div' | 'span';\n  label?: string;\n  status?: string;\n  intent?: TagIntent;\n  emphasis?: boolean;\n  icon?: any;\n  whiteSpace?:\n    | 'inherit'\n    | 'initial'\n    | 'normal'\n    | 'nowrap'\n    | 'pre'\n    | 'pre-line'\n    | 'pre-wrap'\n    | undefined;\n};\n\nconst TAG_INTENT_STATUSES: { [key: string]: string[] } = {\n  draft: [\n    'draft',\n    'no_vested',\n    'not_delivered',\n    'not_submitted',\n    'not_yet_started',\n    'unissued',\n  ],\n  new: [],\n  neutral: [\n    'closedbycustomer',\n    'invited',\n    'suspectedfraud',\n    'created',\n    'auditor',\n    'clicked',\n    'company_live',\n    'irs_number',\n    'live',\n    'not_seen',\n    'offer_portal_manager',\n    'open',\n    'opened',\n    'physical',\n    'state_filings',\n    'stock_issuance',\n    'tax_id_number',\n    'vesting',\n    'virtual',\n  ],\n  other: ['clearing', 'viewer', 'expired', 'forfeited'],\n  info: [],\n  success: [\n    'approved',\n    'editor',\n    'lawyer_approved',\n    'seen',\n    'submitted',\n    'succeeded',\n    'success',\n    'surrendered',\n    'uploaded',\n  ],\n  warning: [\n    'awaiting_documents',\n    'awaiting_esigns',\n    'awaiting_funds',\n    'awaiting_signature',\n    'awaitingbackimage',\n    'awaitingdocuments',\n    'awaitingfrontimage',\n    'awaitingimages',\n    'needs_co_founder_signatures',\n    'owner',\n    'recommended',\n  ],\n  danger: [\n    'denied',\n    'inactive',\n    'invalid',\n    'priority',\n    'required',\n    'returned',\n    'stolen',\n    'forfeited',\n  ],\n  inProgress: ['in_progress', 'in_review', 'inprogress', 'processing'],\n  pending: [\n    'pending',\n    'pending_acceptance',\n    'pending_approval',\n    'pending_issuance',\n    'pending_payment',\n    'pending_review',\n    'pendingreview',\n    'requires_company_signature',\n    'invited',\n  ],\n  complete: [\n    'complete',\n    'completed',\n    'delivered',\n    'outstanding',\n    'raising',\n    'externally_executed',\n    'fund_recieved',\n    'funds_received',\n    'sent',\n    'signed',\n    'vested',\n    'active',\n    'yes',\n    'amendment_complete',\n  ],\n  postComplete: [\n    'closed',\n    'ended',\n    'esop_manager',\n    'executed',\n    'fully_exercised',\n    'repurchased',\n    'exercised',\n    'partially_exercised',\n    'early_exercised',\n    'viewed',\n  ],\n  canceled: [\n    'cancelled',\n    'closedbycustomer',\n    'failed',\n    'frozen',\n    'lost',\n    'rejected',\n  ],\n};\n\nconst tagStatusMapping: { [key: string]: TagIntent } = {};\n\nObject.keys(TAG_INTENT_STATUSES).forEach((intent: TagIntent) => {\n  TAG_INTENT_STATUSES[intent].forEach((status) => {\n    tagStatusMapping[status] = intent;\n  });\n});\n\nexport const STATUS_TAG_INTENT_MAPPING = tagStatusMapping;\n\nexport const getStatusTagProps = (\n  status?: string,\n  label?: string,\n  intent?: TagIntent,\n) => {\n  const tagIntent =\n    intent || STATUS_TAG_INTENT_MAPPING[status.toLowerCase()] || 'neutral';\n  const tagLabel = label || formatTitle(status);\n\n  return {\n    intent: tagIntent,\n    label: tagLabel,\n  };\n};\n\nconst StatusTag = (props: Props) => {\n  const { status, intent, label, whiteSpace, ...rest } = props;\n  if (status || label) {\n    const { label: tagLabel, intent: tagIntent } = getStatusTagProps(\n      status,\n      label,\n      intent,\n    );\n\n    return (\n      <Tag intent={tagIntent} whiteSpace={whiteSpace || 'nowrap'} {...rest}>\n        {tagLabel}\n      </Tag>\n    );\n  }\n\n  return null;\n};\n\nexport default StatusTag;\n"],"names":["TAG_INTENT_STATUSES","tagStatusMapping","intent","status","STATUS_TAG_INTENT_MAPPING","getStatusTagProps","label","tagIntent","tagLabel","formatTitle","StatusTag","props","whiteSpace","rest","jsx","Tag"],"mappings":"2HAqCA,MAAMA,EAAmD,CACvD,MAAO,CACL,QACA,YACA,gBACA,gBACA,kBACA,UACF,EACA,IAAK,CAAC,EACN,QAAS,CACP,mBACA,UACA,iBACA,UACA,UACA,UACA,eACA,aACA,OACA,WACA,uBACA,OACA,SACA,WACA,gBACA,iBACA,gBACA,UACA,SACF,EACA,MAAO,CAAC,WAAY,SAAU,UAAW,WAAW,EACpD,KAAM,CAAC,EACP,QAAS,CACP,WACA,SACA,kBACA,OACA,YACA,YACA,UACA,cACA,UACF,EACA,QAAS,CACP,qBACA,kBACA,iBACA,qBACA,oBACA,oBACA,qBACA,iBACA,8BACA,QACA,aACF,EACA,OAAQ,CACN,SACA,WACA,UACA,WACA,WACA,WACA,SACA,WACF,EACA,WAAY,CAAC,cAAe,YAAa,aAAc,YAAY,EACnE,QAAS,CACP,UACA,qBACA,mBACA,mBACA,kBACA,iBACA,gBACA,6BACA,SACF,EACA,SAAU,CACR,WACA,YACA,YACA,cACA,UACA,sBACA,gBACA,iBACA,OACA,SACA,SACA,SACA,MACA,oBACF,EACA,aAAc,CACZ,SACA,QACA,eACA,WACA,kBACA,cACA,YACA,sBACA,kBACA,QACF,EACA,SAAU,CACR,YACA,mBACA,SACA,SACA,OACA,UACF,CACF,EAEMC,EAAiD,CAAA,EAEvD,OAAO,KAAKD,CAAmB,EAAE,QAASE,GAAsB,CAC9DF,EAAoBE,CAAM,EAAE,QAASC,GAAW,CAC9CF,EAAiBE,CAAM,EAAID,CAAA,CAC5B,CACH,CAAC,EAEM,MAAME,EAA4BH,EAE5BI,EAAoB,CAC/BF,EACAG,EACAJ,IACG,CACH,MAAMK,EACJL,GAAUE,EAA0BD,EAAO,YAAA,CAAa,GAAK,UACzDK,EAAWF,GAASG,EAAYN,CAAM,EAErC,MAAA,CACL,OAAQI,EACR,MAAOC,CAAA,CAEX,EAEME,EAAaC,GAAiB,CAClC,KAAM,CAAE,OAAAR,EAAQ,OAAAD,EAAQ,MAAAI,EAAO,WAAAM,EAAY,GAAGC,CAAS,EAAAF,EACvD,GAAIR,GAAUG,EAAO,CACnB,KAAM,CAAE,MAAOE,EAAU,OAAQD,CAAc,EAAAF,EAC7CF,EACAG,EACAJ,CAAA,EAIA,OAAAY,EAAA,IAACC,GAAI,OAAQR,EAAW,WAAYK,GAAc,SAAW,GAAGC,EAC7D,SACHL,CAAA,CAAA,CAEJ,CAEO,OAAA,IACT"}