{"version":3,"sources":["webpack:///src/views/Invoices/InvoiceEditor.vue","webpack:///./src/views/Invoices/InvoiceEditor.vue","webpack:///./src/views/Invoices/InvoiceEditor.vue?62ee","webpack:///./src/views/Invoices/InvoiceEditor.vue?d88e","webpack:///./src/eventbus/event-bus.js","webpack:///./src/providers/currency.js","webpack:///./src/views/Invoices/InvoiceEditor.vue?c5be","webpack:///./src/views/Invoices/InvoiceEditor.vue?5fd9","webpack:///./src/views/Invoices/InvoiceEditor.vue?af8b","webpack:///./src/views/Invoices/InvoiceEditor.vue?cd45"],"names":["InvoiceEditorAddress","InvoiceEditorDetails","InvoiceEditorLines","InvoiceEditorTotals","InvoiceEditorFooter","InvoiceSummary","rowUid","components","data","locationId","Number","$route","params","mInvoice","mLines","currencies","paymentTermDays","defaultTaxRate","isLoading","isSaving","saveQueued","isBusy","showFinaliseConfirm","showDiscardConfirm","showPreview","isLoadingPreview","computed","_objectSpread","mapState","mapGetters","displayCurrencyIso","CurrencyIso","locationCurrencyIso","hasRecipient","a","InvoiceAddress","Company","trim","SendToName","hasPricedLine","some","r","IsTextRow","Amount","PricePerItem","hasValidDates","issue","toDate","IssueDate","due","DueDate","getTime","canFinalise","Id","created","_this","_asyncToGenerator","_regenerator","m","_callee","invoiceId","w","_context","n","invoiceRights","hasEditRights","$router","replace","name","Promise","all","loadCurrencies","loadSettings","loadInvoice","initNewInvoice","methods","blankInvoice","Code","StatusId","CurrencyId","defaultCurrencyId","Language","locationState","Settings","DefaultLanguage","Reference","Footer","DebtorId","Date","addDays","CompanyId","Address","PostalCode","City","Country","EmailTo","PoNumber","VatNumber","NoTax","TotalExclTax","TotalInclTax","TaxLines","_this2","_callee2","response","_t","_context2","p","currencyProvider","getCurrencies","v","status","_this3","_callee3","term","_t2","_context3","invoiceProvider","getLocationInvoiceSettings","PaymentTerm","isNaN","iso","match","find","c","_this4","_callee4","_context4","save","_this5","_callee5","inv","isStandaloneConcept","_t3","_context5","getInvoiceById","ReservationIds","length","syncFromServer","goBackToList","_this6","_callee6","payload","_t4","_context6","buildPayload","updateStandaloneInvoice","createStandaloneInvoice","EventBus","$emit","type","message","$t","f","_this7","LocationId","toIso","InvoiceLines","filter","row","_isNew","_editing","map","index","buildLine","isText","amount","price","LineType","Text","ShowDate","TaxPercentage","Deductible","SortOrder","ShowPrice","_this8","CurrencyISO","ActivationDate","localCountry","CompanyName","undefined","anyEditing","editable","l","isEditableLine","sort","x","y","toEditorRow","line","generated","includes","TextGroupId","_uid","_draft","addLine","push","addTextLine","startEditLine","cancelEditLine","splice","saveLine","discardLine","finalise","_this9","_callee7","_t5","_context7","acceptInvoice","discard","_this0","_callee8","_t6","_context8","rejectInvoice","openPreview","_this1","_callee9","_context9","closePreview","value","$options","filters","dateObjectIsoDateString","indexOf","parseIsoDateStringToDate","render","_vm","_c","_self","staticClass","on","click","attrs","icon","_v","_s","_e","class","disabled","address","invoice","lines","currencyIso","editLine","cancelLine","reorder","$event","modalTitle","buttonLabelConfirm","onClickCancel","onClickSave","showModal","modalSize","closeModal","scopedSlots","_u","key","fn","proxy","confirmButtonCssClass","drawerTitle","showDrawer","onClickClose","position","drawerSize","staticRenderFns","_withStripped","Vue","axios","get","concat","process","headers","apiToken","profileToken","store","getters"],"mappings":"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","file":"js/invoices-editor.js?id=eb26a40fffb0a063aeab","sourcesContent":["<template>\n  <div class=\"section\">\n    <div class=\"container\">\n      <ui-loader v-if=\"isLoading\" />\n\n      <div v-else-if=\"mInvoice\">\n        <!-- Header -->\n        <div class=\"level is-mobile mb-5\">\n          <div class=\"level-left\">\n            <div class=\"level-item\">\n              <div>\n                <a class=\"has-text-grey\" @click=\"goBackToList\">\n                  <span class=\"icon is-small\">\n                    <font-awesome-icon :icon=\"['fas', 'chevron-left']\" />\n                  </span>\n                  <span>{{\n                    $t('Components.Invoices.InvoiceEditor.Button_BackToList')\n                  }}</span>\n                </a>\n                <h1 class=\"title is-4 mt-2\">\n                  {{ $t('Components.Invoices.InvoiceEditor.Title_NewInvoice') }}\n                  <span v-if=\"mInvoice.Code\" class=\"has-text-grey-light\"\n                    >&mdash; {{ mInvoice.Code }}</span\n                  >\n                </h1>\n              </div>\n            </div>\n          </div>\n          <div class=\"level-right\">\n            <div class=\"level-item\">\n              <transition name=\"fade\">\n                <span v-if=\"isSaving\" class=\"is-size-7 has-text-grey mr-3\">\n                  {{ $t('Components.Invoices.InvoiceEditor.Text_Saving') }}\n                </span>\n              </transition>\n            </div>\n            <div class=\"level-item\">\n              <a\n                class=\"button is-light is-small\"\n                :class=\"{ 'is-loading': isLoadingPreview }\"\n                :disabled=\"!mInvoice.Id || isSaving || isLoadingPreview\"\n                @click=\"openPreview\"\n              >\n                <span class=\"icon is-small\">\n                  <font-awesome-icon :icon=\"['fas', 'eye']\" />\n                </span>\n                <span>{{\n                  $t('Components.Invoices.InvoiceEditor.Button_Preview')\n                }}</span>\n              </a>\n            </div>\n          </div>\n        </div>\n\n        <div class=\"columns\">\n          <div class=\"column is-7\">\n            <InvoiceEditorAddress\n              :address=\"mInvoice.InvoiceAddress\"\n              :locationId=\"locationId\"\n              @save=\"save\"\n            />\n          </div>\n          <div class=\"column is-5\">\n            <InvoiceEditorDetails\n              :invoice=\"mInvoice\"\n              :currencies=\"currencies\"\n              @save=\"save\"\n            />\n          </div>\n        </div>\n\n        <InvoiceEditorLines\n          :lines=\"mLines\"\n          :currencyIso=\"displayCurrencyIso\"\n          @addLine=\"addLine\"\n          @addTextLine=\"addTextLine\"\n          @editLine=\"startEditLine\"\n          @cancelLine=\"cancelEditLine\"\n          @saveLine=\"saveLine\"\n          @discardLine=\"discardLine\"\n          @reorder=\"save\"\n        />\n\n        <div class=\"mb-5\">\n          <InvoiceEditorTotals\n            :invoice=\"mInvoice\"\n            :currencyIso=\"displayCurrencyIso\"\n          />\n        </div>\n\n        <div>\n          <InvoiceEditorFooter :invoice=\"mInvoice\" @save=\"save\" />\n        </div>\n\n        <!-- Actions -->\n        <div class=\"level is-mobile mt-5 pt-4 actionBar\">\n          <div class=\"level-left\">\n            <div class=\"level-item\">\n              <a class=\"button is-danger is-outlined\" :class=\"{ 'is-loading': isBusy }\" :disabled=\"isSaving || isBusy\" @click=\"showDiscardConfirm = true\">\n                <span class=\"icon is-small\">\n                  <font-awesome-icon :icon=\"['fas', 'trash-alt']\" />\n                </span>\n                <span>{{\n                  $t('Components.Invoices.InvoiceEditor.Button_Discard')\n                }}</span>\n              </a>\n            </div>\n          </div>\n          <div class=\"level-right\">\n            <div class=\"level-item\">\n              <p v-if=\"!canFinalise\" class=\"is-size-7 has-text-grey mr-3\">\n                {{ $t('Components.Invoices.InvoiceEditor.Text_FinaliseHint') }}\n              </p>\n              <a class=\"button is-primary\" :class=\"{ 'is-loading': isBusy }\" :disabled=\"!canFinalise || isSaving || isBusy\" @click=\"showFinaliseConfirm = true\">\n                <span class=\"icon is-small\">\n                  <font-awesome-icon :icon=\"['fas', 'check']\" />\n                </span>\n                <span>{{\n                  $t('Components.Invoices.InvoiceEditor.Button_Finalise')\n                }}</span>\n              </a>\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n\n    <!-- Confirm finalise -->\n    <ui-component-modal\n      v-if=\"showFinaliseConfirm\"\n      :modalTitle=\"$t('Components.Invoices.InvoiceEditor.Confirm_FinaliseTitle')\"\n      :buttonLabelConfirm=\"$t('Components.Invoices.InvoiceEditor.Button_Finalise')\"\n      :isSaving=\"isBusy\"\n      :onClickCancel=\"() => (showFinaliseConfirm = false)\"\n      :onClickSave=\"finalise\"\n      :showModal=\"showFinaliseConfirm\"\n      @closeModal=\"showFinaliseConfirm = false\"\n      modalSize=\"small\"\n    >\n      <template v-slot:content>\n        <p>{{ $t('Components.Invoices.InvoiceEditor.Confirm_FinaliseText') }}</p>\n      </template>\n    </ui-component-modal>\n\n    <!-- Confirm discard -->\n    <ui-component-modal\n      v-if=\"showDiscardConfirm\"\n      :modalTitle=\"$t('Components.Invoices.InvoiceEditor.Confirm_DiscardTitle')\"\n      :buttonLabelConfirm=\"$t('Components.Invoices.InvoiceEditor.Button_Discard')\"\n      confirmButtonCssClass=\"is-danger\"\n      :isSaving=\"isBusy\"\n      :onClickCancel=\"() => (showDiscardConfirm = false)\"\n      :onClickSave=\"discard\"\n      :showModal=\"showDiscardConfirm\"\n      @closeModal=\"showDiscardConfirm = false\"\n      modalSize=\"small\"\n    >\n      <template v-slot:content>\n        <p>{{ $t('Components.Invoices.InvoiceEditor.Confirm_DiscardText') }}</p>\n      </template>\n    </ui-component-modal>\n\n    <!-- Invoice preview -->\n    <ui-component-drawer\n      v-if=\"showPreview\"\n      :drawerTitle=\"$t('Components.Invoices.InvoiceEditor.Title_Preview')\"\n      :showDrawer=\"showPreview\"\n      :onClickClose=\"closePreview\"\n      position=\"right\"\n      drawerSize=\"extra-large\"\n    >\n      <template v-slot:content>\n        <InvoiceSummary\n          v-if=\"mInvoice.Id\"\n          :invoiceId=\"mInvoice.Id\"\n          :locationId=\"locationId\"\n        />\n      </template>\n    </ui-component-drawer>\n  </div>\n</template>\n\n<script>\nimport { mapState, mapGetters } from 'vuex'\nimport { addDays } from 'date-fns'\nimport { EventBus } from '@/eventbus/event-bus'\nimport invoiceProvider from '@/providers/invoice'\nimport currencyProvider from '@/providers/currency'\n\nconst InvoiceEditorAddress = () =>\n  import('@/components/Invoices/Editor/InvoiceEditorAddress')\nconst InvoiceEditorDetails = () =>\n  import('@/components/Invoices/Editor/InvoiceEditorDetails')\nconst InvoiceEditorLines = () =>\n  import('@/components/Invoices/Editor/InvoiceEditorLines')\nconst InvoiceEditorTotals = () =>\n  import('@/components/Invoices/Editor/InvoiceEditorTotals')\nconst InvoiceEditorFooter = () =>\n  import('@/components/Invoices/Editor/InvoiceEditorFooter')\nconst InvoiceSummary = () => import('@/components/Invoices/InvoiceSummary')\n\n// Client-side row identity so v-for keys stay stable within a render\nlet rowUid = 0\n\nexport default {\n  components: {\n    InvoiceEditorAddress,\n    InvoiceEditorDetails,\n    InvoiceEditorLines,\n    InvoiceEditorTotals,\n    InvoiceEditorFooter,\n    InvoiceSummary,\n  },\n\n  data() {\n    return {\n      locationId: Number(this.$route.params.locationId),\n      mInvoice: null,\n      mLines: [],\n      currencies: [],\n      paymentTermDays: 14,\n      defaultTaxRate: 21,\n      isLoading: true,\n      isSaving: false,\n      saveQueued: false,\n      isBusy: false,\n      showFinaliseConfirm: false,\n      showDiscardConfirm: false,\n      showPreview: false,\n      isLoadingPreview: false,\n    }\n  },\n\n  computed: {\n    ...mapState('locationStore', ['locationState']),\n    ...mapGetters('locationStore', ['invoiceRights', 'locationCurrencyIso']),\n\n    displayCurrencyIso() {\n      return (\n        (this.mInvoice && this.mInvoice.CurrencyIso) ||\n        this.locationCurrencyIso ||\n        'EUR'\n      )\n    },\n\n    hasRecipient() {\n      if (!this.mInvoice) return false\n      const a = this.mInvoice.InvoiceAddress\n      return !!(a.Company && a.Company.trim()) || !!(a.SendToName && a.SendToName.trim())\n    },\n\n    hasPricedLine() {\n      return this.mLines.some(\n        (r) => !r.IsTextRow && Number(r.Amount) * Number(r.PricePerItem) > 0\n      )\n    },\n\n    hasValidDates() {\n      if (!this.mInvoice) return false\n      const issue = this.toDate(this.mInvoice.IssueDate)\n      const due = this.toDate(this.mInvoice.DueDate)\n      return !!issue && !!due && due.getTime() >= issue.getTime()\n    },\n\n    canFinalise() {\n      return (\n        !!this.mInvoice &&\n        !!this.mInvoice.Id &&\n        this.hasRecipient &&\n        this.hasPricedLine &&\n        this.hasValidDates\n      )\n    },\n  },\n\n  async created() {\n    if (!this.invoiceRights || !this.invoiceRights.hasEditRights) {\n      this.$router.replace({\n        name: 'invoices-list',\n        params: { locationId: this.locationId },\n      })\n      return\n    }\n\n    await Promise.all([this.loadCurrencies(), this.loadSettings()])\n\n    const invoiceId = this.$route.params.invoiceId\n    if (invoiceId) {\n      await this.loadInvoice(Number(invoiceId))\n    } else {\n      await this.initNewInvoice()\n    }\n\n    this.isLoading = false\n  },\n\n  methods: {\n    blankInvoice() {\n      return {\n        Id: 0,\n        Code: '',\n        StatusId: 0,\n        CurrencyId: this.defaultCurrencyId(),\n        CurrencyIso: this.locationCurrencyIso || 'EUR',\n        Language:\n          (this.locationState && this.locationState.Settings.DefaultLanguage) ||\n          'en',\n        Reference: '',\n        Footer: '',\n        DebtorId: '',\n        IssueDate: new Date(),\n        DueDate: addDays(new Date(), this.paymentTermDays),\n        InvoiceAddress: {\n          CompanyId: 0,\n          Company: '',\n          Address: '',\n          PostalCode: '',\n          City: '',\n          Country: '',\n          SendToName: '',\n          EmailTo: '',\n          PoNumber: '',\n          VatNumber: '',\n          NoTax: false,\n        },\n        TotalExclTax: 0,\n        TotalInclTax: 0,\n        TaxLines: [],\n      }\n    },\n\n    async loadCurrencies() {\n      try {\n        const response = await currencyProvider.methods.getCurrencies()\n        if (response.status === 200) {\n          this.currencies = response.data\n        }\n      } catch (e) {\n        this.currencies = []\n      }\n    },\n\n    async loadSettings() {\n      try {\n        const response = await invoiceProvider.methods.getLocationInvoiceSettings(\n          this.locationId\n        )\n        if (response.status === 200 && response.data) {\n          const term = Number(response.data.PaymentTerm)\n          if (!isNaN(term) && term > 0) {\n            this.paymentTermDays = term\n          }\n        }\n      } catch (e) {\n        // keep default payment term\n      }\n    },\n\n    defaultCurrencyId() {\n      const iso = this.locationCurrencyIso\n      const match = this.currencies.find((c) => c.Code === iso)\n      return match ? match.Id : 46\n    },\n\n    async initNewInvoice() {\n      this.mInvoice = this.blankInvoice()\n      this.mLines = []\n      // Eager POST so we have an Id and server-calculated totals from the start\n      await this.save()\n    },\n\n    async loadInvoice(invoiceId) {\n      try {\n        const response = await invoiceProvider.methods.getInvoiceById(invoiceId)\n        if (response.status === 200) {\n          const inv = response.data\n          const isStandaloneConcept =\n            inv.StatusId === 0 &&\n            (!inv.ReservationIds || inv.ReservationIds.length === 0)\n          if (!isStandaloneConcept) {\n            this.$router.replace({\n              name: 'invoices-list-detail',\n              params: { locationId: this.locationId, invoiceId },\n            })\n            return\n          }\n          this.mInvoice = this.blankInvoice()\n          this.syncFromServer(inv)\n        }\n      } catch (e) {\n        this.goBackToList()\n      }\n    },\n\n    /**\n     * Serialized save: every header blur, row save, discard and reorder calls\n     * this. While a save is in flight, the latest request is queued and runs\n     * once the current one resolves (last-write-wins, no out-of-order results).\n     */\n    async save() {\n      if (!this.mInvoice) return\n      if (this.isSaving) {\n        this.saveQueued = true\n        return\n      }\n      this.isSaving = true\n      try {\n        do {\n          this.saveQueued = false\n          const payload = this.buildPayload()\n          let response\n          if (this.mInvoice.Id) {\n            response = await invoiceProvider.methods.updateStandaloneInvoice(\n              payload\n            )\n          } else {\n            response = await invoiceProvider.methods.createStandaloneInvoice(\n              payload\n            )\n          }\n          if (response && response.status === 200) {\n            this.syncFromServer(response.data)\n          }\n        } while (this.saveQueued)\n      } catch (e) {\n        EventBus.$emit('showToast', {\n          type: 'danger',\n          message: this.$t('Components.Invoices.InvoiceEditor.Toast_SaveError'),\n        })\n      } finally {\n        this.isSaving = false\n      }\n    },\n\n    buildPayload() {\n      const a = this.mInvoice.InvoiceAddress\n      return {\n        Id: this.mInvoice.Id,\n        LocationId: this.locationId,\n        InvoiceAddress: {\n          CompanyId: a.CompanyId || 0,\n          Company: a.Company || '',\n          Address: a.Address || '',\n          PostalCode: a.PostalCode || '',\n          City: a.City || '',\n          Country: a.Country === '' || a.Country === null ? '' : a.Country,\n          SendToName: a.SendToName || '',\n          EmailTo: a.EmailTo || '',\n          PoNumber: a.PoNumber || '',\n          VatNumber: a.VatNumber || '',\n          NoTax: !!a.NoTax,\n        },\n        DebtorId: this.mInvoice.DebtorId || '',\n        Reference: this.mInvoice.Reference || '',\n        IssueDate: this.toIso(this.mInvoice.IssueDate),\n        DueDate: this.toIso(this.mInvoice.DueDate),\n        CurrencyId: Number(this.mInvoice.CurrencyId) || 46,\n        Language: this.mInvoice.Language || 'en',\n        Footer: this.mInvoice.Footer || '',\n        // Brand-new rows that are still open in the editor have not been\n        // committed yet, so a background save (address blur, reorder, footer)\n        // must not persist them as empty placeholder lines.\n        InvoiceLines: this.mLines\n          .filter((row) => !(row._isNew && row._editing))\n          .map((row, index) => this.buildLine(row, index)),\n      }\n    },\n\n    buildLine(row, index) {\n      const isText = !!row.IsTextRow\n      const amount = Number(row.Amount) || 0\n      const price = Number(row.PricePerItem) || 0\n      return {\n        LineType: 2, // Option; the API maps any non-Space line to Option\n        Amount: isText ? 0 : amount,\n        Text: row.Text || '',\n        Date: '1900-01-01',\n        ShowDate: false,\n        CurrencyId: Number(this.mInvoice.CurrencyId) || 46,\n        PricePerItem: isText ? 0 : price,\n        TotalExclTax: isText ? 0 : amount * price,\n        TaxPercentage: isText ? 0 : Number(row.TaxPercentage) || 0,\n        Deductible: true,\n        IsTextRow: isText,\n        SortOrder: (index + 1) * 10,\n        ShowPrice: isText ? false : row.ShowPrice !== false,\n      }\n    },\n\n    syncFromServer(inv) {\n      this.mInvoice.Id = inv.Id\n      this.mInvoice.Code = inv.Code || ''\n      this.mInvoice.StatusId = inv.StatusId\n      this.mInvoice.CurrencyId = inv.CurrencyId || this.mInvoice.CurrencyId\n      this.mInvoice.CurrencyIso =\n        inv.CurrencyIso || inv.CurrencyISO || this.mInvoice.CurrencyIso\n      this.mInvoice.Language = inv.Language || this.mInvoice.Language\n      this.mInvoice.Reference = inv.Reference || ''\n      this.mInvoice.Footer = inv.Footer || ''\n      this.mInvoice.DebtorId = inv.DebtorId || ''\n\n      const issue = this.toDate(inv.ActivationDate)\n      const due = this.toDate(inv.DueDate)\n      if (issue) this.mInvoice.IssueDate = issue\n      if (due) this.mInvoice.DueDate = due\n\n      const localCountry = this.mInvoice.InvoiceAddress.Country\n      this.mInvoice.InvoiceAddress = {\n        CompanyId: inv.CompanyId || 0,\n        Company: inv.CompanyName || '',\n        Address: inv.Address || '',\n        PostalCode: inv.PostalCode || '',\n        City: inv.City || '',\n        // Country round-trips as a numeric code; keep the local value to avoid\n        // the select losing its selection on a type-mismatch from the server.\n        Country: inv.Country !== undefined && inv.Country !== null && inv.Country !== '' ? inv.Country : localCountry,\n        SendToName: inv.SendToName || '',\n        EmailTo: inv.EmailTo || '',\n        PoNumber: inv.PoNumber || '',\n        VatNumber: inv.VatNumber || '',\n        NoTax: !!inv.NoTax,\n      }\n\n      this.mInvoice.TotalExclTax = inv.TotalExclTax || 0\n      this.mInvoice.TotalInclTax = inv.TotalInclTax || 0\n      this.mInvoice.TaxLines = inv.TaxLines || []\n\n      // Only rebuild the rows from the server when nothing is being edited.\n      // If a row is open (or a brand-new row is uncommitted) keep the local\n      // rows so a background save doesn't discard in-progress edits — their\n      // committed values were already sent, so the local set stays in sync.\n      const anyEditing = this.mLines.some((r) => r._editing)\n      if (!anyEditing) {\n        const editable = (inv.InvoiceLines || [])\n          .filter((l) => this.isEditableLine(l))\n          .sort((x, y) => (x.SortOrder || 0) - (y.SortOrder || 0))\n        this.mLines = editable.map((l) => this.toEditorRow(l))\n      }\n    },\n\n    isEditableLine(line) {\n      // Exclude server-generated lines: Payment (3), TaxPercentageTotal (4),\n      // TaxPercentageExclTotal (5). Everything else is user-editable.\n      const generated = [3, 4, 5]\n      return !generated.includes(line.TextGroupId)\n    },\n\n    toEditorRow(line) {\n      rowUid += 1\n      return {\n        _uid: rowUid,\n        Amount: line.IsTextRow ? 1 : line.Amount || 0,\n        Text: line.Text || '',\n        PricePerItem: line.PricePerItem || 0,\n        TaxPercentage: line.TaxPercentage || 0,\n        IsTextRow: !!line.IsTextRow,\n        ShowPrice: line.ShowPrice !== false,\n        // Saved rows render read-only until the user opens them.\n        _editing: false,\n        _isNew: false,\n        _draft: null,\n      }\n    },\n\n    addLine() {\n      rowUid += 1\n      this.mLines.push({\n        _uid: rowUid,\n        Amount: 1,\n        Text: '',\n        PricePerItem: 0,\n        TaxPercentage: this.defaultTaxRate,\n        IsTextRow: false,\n        ShowPrice: true,\n        _editing: true,\n        _isNew: true,\n        _draft: {\n          Amount: 1,\n          Text: '',\n          PricePerItem: 0,\n          TaxPercentage: this.defaultTaxRate,\n        },\n      })\n    },\n\n    addTextLine() {\n      rowUid += 1\n      this.mLines.push({\n        _uid: rowUid,\n        Amount: 1,\n        Text: '',\n        PricePerItem: 0,\n        TaxPercentage: 0,\n        IsTextRow: true,\n        ShowPrice: false,\n        _editing: true,\n        _isNew: true,\n        _draft: {\n          Amount: 1,\n          Text: '',\n          PricePerItem: 0,\n          TaxPercentage: 0,\n        },\n      })\n    },\n\n    startEditLine(index) {\n      const row = this.mLines[index]\n      if (!row) return\n      // Snapshot the committed values into a draft so Cancel can revert.\n      row._draft = {\n        Amount: row.Amount,\n        Text: row.Text,\n        PricePerItem: row.PricePerItem,\n        TaxPercentage: row.TaxPercentage,\n      }\n      row._editing = true\n    },\n\n    cancelEditLine(index) {\n      const row = this.mLines[index]\n      if (!row) return\n      // A brand-new row was never persisted — just drop it, no server call.\n      if (row._isNew) {\n        this.mLines.splice(index, 1)\n        return\n      }\n      // Existing row: discard the draft, committed values are untouched.\n      row._draft = null\n      row._editing = false\n    },\n\n    saveLine(index) {\n      const row = this.mLines[index]\n      if (!row) return\n      // Commit the draft onto the row, then persist the whole invoice.\n      if (row._draft) {\n        row.Amount = row._draft.Amount\n        row.Text = row._draft.Text\n        row.PricePerItem = row._draft.PricePerItem\n        row.TaxPercentage = row._draft.TaxPercentage\n        row._draft = null\n      }\n      row._editing = false\n      row._isNew = false\n      this.save()\n    },\n\n    discardLine(index) {\n      this.mLines.splice(index, 1)\n      this.save()\n    },\n\n    async finalise() {\n      this.showFinaliseConfirm = false\n      this.isBusy = true\n      try {\n        await this.save()\n        const response = await invoiceProvider.methods.acceptInvoice(\n          this.mInvoice.Id\n        )\n        if (response.status === 200) {\n          EventBus.$emit('showToast', {\n            type: 'success',\n            message: this.$t(\n              'Components.Invoices.InvoiceEditor.Toast_Finalised'\n            ),\n          })\n          this.$router.push({\n            name: 'invoices-list-detail',\n            params: { locationId: this.locationId, invoiceId: this.mInvoice.Id },\n          })\n        }\n      } catch (e) {\n        EventBus.$emit('showToast', {\n          type: 'danger',\n          message: this.$t('Components.Invoices.InvoiceEditor.Toast_SaveError'),\n        })\n      } finally {\n        this.isBusy = false\n      }\n    },\n\n    async discard() {\n      this.showDiscardConfirm = false\n      this.isBusy = true\n      try {\n        const response = await invoiceProvider.methods.rejectInvoice(\n          this.mInvoice.Id\n        )\n        if (response.status === 200) {\n          EventBus.$emit('showToast', {\n            type: 'info',\n            message: this.$t(\n              'Components.Invoices.InvoiceEditor.Toast_Discarded'\n            ),\n          })\n          this.goBackToList()\n        }\n      } catch (e) {\n        EventBus.$emit('showToast', {\n          type: 'danger',\n          message: this.$t('Components.Invoices.InvoiceEditor.Toast_SaveError'),\n        })\n      } finally {\n        this.isBusy = false\n      }\n    },\n\n    goBackToList() {\n      this.$router.push({\n        name: 'invoices-list',\n        params: { locationId: this.locationId },\n      })\n    },\n\n    async openPreview() {\n      if (!this.mInvoice.Id || this.isLoadingPreview) return;\n      this.isLoadingPreview = true;\n      // Persist the latest edits first so the preview reflects what's on screen;\n      // InvoiceSummary fetches the invoice fresh by id.\n      await this.save()\n      this.isLoadingPreview = false;\n      this.showPreview = true;\n    },\n\n    closePreview() {\n      this.showPreview = false;\n    },\n\n    toIso(value) {\n      if (!value) return this.$options.filters.dateObjectIsoDateString(new Date())\n      if (typeof value === 'string') return value\n      return this.$options.filters.dateObjectIsoDateString(value)\n    },\n\n    toDate(value) {\n      if (!value) return null\n      if (value instanceof Date) return value\n      if (typeof value === 'string') {\n        if (value.indexOf('0001-01-01') === 0 || value.indexOf('1900-01-01') === 0) {\n          return null\n        }\n        return this.$options.filters.parseIsoDateStringToDate(value)\n      }\n      return null\n    },\n  },\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.actionBar {\n  border-top: 1px solid $grey-lighter;\n}\n</style>\n","var render = function render() {\n  var _vm = this,\n    _c = _vm._self._c\n  return _c(\n    \"div\",\n    { staticClass: \"section\" },\n    [\n      _c(\n        \"div\",\n        { staticClass: \"container\" },\n        [\n          _vm.isLoading\n            ? _c(\"ui-loader\")\n            : _vm.mInvoice\n            ? _c(\n                \"div\",\n                [\n                  _c(\"div\", { staticClass: \"level is-mobile mb-5\" }, [\n                    _c(\"div\", { staticClass: \"level-left\" }, [\n                      _c(\"div\", { staticClass: \"level-item\" }, [\n                        _c(\"div\", [\n                          _c(\n                            \"a\",\n                            {\n                              staticClass: \"has-text-grey\",\n                              on: { click: _vm.goBackToList },\n                            },\n                            [\n                              _c(\n                                \"span\",\n                                { staticClass: \"icon is-small\" },\n                                [\n                                  _c(\"font-awesome-icon\", {\n                                    attrs: { icon: [\"fas\", \"chevron-left\"] },\n                                  }),\n                                ],\n                                1\n                              ),\n                              _c(\"span\", [\n                                _vm._v(\n                                  _vm._s(\n                                    _vm.$t(\n                                      \"Components.Invoices.InvoiceEditor.Button_BackToList\"\n                                    )\n                                  )\n                                ),\n                              ]),\n                            ]\n                          ),\n                          _c(\"h1\", { staticClass: \"title is-4 mt-2\" }, [\n                            _vm._v(\n                              \" \" +\n                                _vm._s(\n                                  _vm.$t(\n                                    \"Components.Invoices.InvoiceEditor.Title_NewInvoice\"\n                                  )\n                                ) +\n                                \" \"\n                            ),\n                            _vm.mInvoice.Code\n                              ? _c(\n                                  \"span\",\n                                  { staticClass: \"has-text-grey-light\" },\n                                  [_vm._v(\"— \" + _vm._s(_vm.mInvoice.Code))]\n                                )\n                              : _vm._e(),\n                          ]),\n                        ]),\n                      ]),\n                    ]),\n                    _c(\"div\", { staticClass: \"level-right\" }, [\n                      _c(\n                        \"div\",\n                        { staticClass: \"level-item\" },\n                        [\n                          _c(\"transition\", { attrs: { name: \"fade\" } }, [\n                            _vm.isSaving\n                              ? _c(\n                                  \"span\",\n                                  {\n                                    staticClass: \"is-size-7 has-text-grey mr-3\",\n                                  },\n                                  [\n                                    _vm._v(\n                                      \" \" +\n                                        _vm._s(\n                                          _vm.$t(\n                                            \"Components.Invoices.InvoiceEditor.Text_Saving\"\n                                          )\n                                        ) +\n                                        \" \"\n                                    ),\n                                  ]\n                                )\n                              : _vm._e(),\n                          ]),\n                        ],\n                        1\n                      ),\n                      _c(\"div\", { staticClass: \"level-item\" }, [\n                        _c(\n                          \"a\",\n                          {\n                            staticClass: \"button is-light is-small\",\n                            class: { \"is-loading\": _vm.isLoadingPreview },\n                            attrs: {\n                              disabled:\n                                !_vm.mInvoice.Id ||\n                                _vm.isSaving ||\n                                _vm.isLoadingPreview,\n                            },\n                            on: { click: _vm.openPreview },\n                          },\n                          [\n                            _c(\n                              \"span\",\n                              { staticClass: \"icon is-small\" },\n                              [\n                                _c(\"font-awesome-icon\", {\n                                  attrs: { icon: [\"fas\", \"eye\"] },\n                                }),\n                              ],\n                              1\n                            ),\n                            _c(\"span\", [\n                              _vm._v(\n                                _vm._s(\n                                  _vm.$t(\n                                    \"Components.Invoices.InvoiceEditor.Button_Preview\"\n                                  )\n                                )\n                              ),\n                            ]),\n                          ]\n                        ),\n                      ]),\n                    ]),\n                  ]),\n                  _c(\"div\", { staticClass: \"columns\" }, [\n                    _c(\n                      \"div\",\n                      { staticClass: \"column is-7\" },\n                      [\n                        _c(\"InvoiceEditorAddress\", {\n                          attrs: {\n                            address: _vm.mInvoice.InvoiceAddress,\n                            locationId: _vm.locationId,\n                          },\n                          on: { save: _vm.save },\n                        }),\n                      ],\n                      1\n                    ),\n                    _c(\n                      \"div\",\n                      { staticClass: \"column is-5\" },\n                      [\n                        _c(\"InvoiceEditorDetails\", {\n                          attrs: {\n                            invoice: _vm.mInvoice,\n                            currencies: _vm.currencies,\n                          },\n                          on: { save: _vm.save },\n                        }),\n                      ],\n                      1\n                    ),\n                  ]),\n                  _c(\"InvoiceEditorLines\", {\n                    attrs: {\n                      lines: _vm.mLines,\n                      currencyIso: _vm.displayCurrencyIso,\n                    },\n                    on: {\n                      addLine: _vm.addLine,\n                      addTextLine: _vm.addTextLine,\n                      editLine: _vm.startEditLine,\n                      cancelLine: _vm.cancelEditLine,\n                      saveLine: _vm.saveLine,\n                      discardLine: _vm.discardLine,\n                      reorder: _vm.save,\n                    },\n                  }),\n                  _c(\n                    \"div\",\n                    { staticClass: \"mb-5\" },\n                    [\n                      _c(\"InvoiceEditorTotals\", {\n                        attrs: {\n                          invoice: _vm.mInvoice,\n                          currencyIso: _vm.displayCurrencyIso,\n                        },\n                      }),\n                    ],\n                    1\n                  ),\n                  _c(\n                    \"div\",\n                    [\n                      _c(\"InvoiceEditorFooter\", {\n                        attrs: { invoice: _vm.mInvoice },\n                        on: { save: _vm.save },\n                      }),\n                    ],\n                    1\n                  ),\n                  _c(\n                    \"div\",\n                    { staticClass: \"level is-mobile mt-5 pt-4 actionBar\" },\n                    [\n                      _c(\"div\", { staticClass: \"level-left\" }, [\n                        _c(\"div\", { staticClass: \"level-item\" }, [\n                          _c(\n                            \"a\",\n                            {\n                              staticClass: \"button is-danger is-outlined\",\n                              class: { \"is-loading\": _vm.isBusy },\n                              attrs: { disabled: _vm.isSaving || _vm.isBusy },\n                              on: {\n                                click: function ($event) {\n                                  _vm.showDiscardConfirm = true\n                                },\n                              },\n                            },\n                            [\n                              _c(\n                                \"span\",\n                                { staticClass: \"icon is-small\" },\n                                [\n                                  _c(\"font-awesome-icon\", {\n                                    attrs: { icon: [\"fas\", \"trash-alt\"] },\n                                  }),\n                                ],\n                                1\n                              ),\n                              _c(\"span\", [\n                                _vm._v(\n                                  _vm._s(\n                                    _vm.$t(\n                                      \"Components.Invoices.InvoiceEditor.Button_Discard\"\n                                    )\n                                  )\n                                ),\n                              ]),\n                            ]\n                          ),\n                        ]),\n                      ]),\n                      _c(\"div\", { staticClass: \"level-right\" }, [\n                        _c(\"div\", { staticClass: \"level-item\" }, [\n                          !_vm.canFinalise\n                            ? _c(\n                                \"p\",\n                                { staticClass: \"is-size-7 has-text-grey mr-3\" },\n                                [\n                                  _vm._v(\n                                    \" \" +\n                                      _vm._s(\n                                        _vm.$t(\n                                          \"Components.Invoices.InvoiceEditor.Text_FinaliseHint\"\n                                        )\n                                      ) +\n                                      \" \"\n                                  ),\n                                ]\n                              )\n                            : _vm._e(),\n                          _c(\n                            \"a\",\n                            {\n                              staticClass: \"button is-primary\",\n                              class: { \"is-loading\": _vm.isBusy },\n                              attrs: {\n                                disabled:\n                                  !_vm.canFinalise ||\n                                  _vm.isSaving ||\n                                  _vm.isBusy,\n                              },\n                              on: {\n                                click: function ($event) {\n                                  _vm.showFinaliseConfirm = true\n                                },\n                              },\n                            },\n                            [\n                              _c(\n                                \"span\",\n                                { staticClass: \"icon is-small\" },\n                                [\n                                  _c(\"font-awesome-icon\", {\n                                    attrs: { icon: [\"fas\", \"check\"] },\n                                  }),\n                                ],\n                                1\n                              ),\n                              _c(\"span\", [\n                                _vm._v(\n                                  _vm._s(\n                                    _vm.$t(\n                                      \"Components.Invoices.InvoiceEditor.Button_Finalise\"\n                                    )\n                                  )\n                                ),\n                              ]),\n                            ]\n                          ),\n                        ]),\n                      ]),\n                    ]\n                  ),\n                ],\n                1\n              )\n            : _vm._e(),\n        ],\n        1\n      ),\n      _vm.showFinaliseConfirm\n        ? _c(\"ui-component-modal\", {\n            attrs: {\n              modalTitle: _vm.$t(\n                \"Components.Invoices.InvoiceEditor.Confirm_FinaliseTitle\"\n              ),\n              buttonLabelConfirm: _vm.$t(\n                \"Components.Invoices.InvoiceEditor.Button_Finalise\"\n              ),\n              isSaving: _vm.isBusy,\n              onClickCancel: () => (_vm.showFinaliseConfirm = false),\n              onClickSave: _vm.finalise,\n              showModal: _vm.showFinaliseConfirm,\n              modalSize: \"small\",\n            },\n            on: {\n              closeModal: function ($event) {\n                _vm.showFinaliseConfirm = false\n              },\n            },\n            scopedSlots: _vm._u(\n              [\n                {\n                  key: \"content\",\n                  fn: function () {\n                    return [\n                      _c(\"p\", [\n                        _vm._v(\n                          _vm._s(\n                            _vm.$t(\n                              \"Components.Invoices.InvoiceEditor.Confirm_FinaliseText\"\n                            )\n                          )\n                        ),\n                      ]),\n                    ]\n                  },\n                  proxy: true,\n                },\n              ],\n              null,\n              false,\n              244595212\n            ),\n          })\n        : _vm._e(),\n      _vm.showDiscardConfirm\n        ? _c(\"ui-component-modal\", {\n            attrs: {\n              modalTitle: _vm.$t(\n                \"Components.Invoices.InvoiceEditor.Confirm_DiscardTitle\"\n              ),\n              buttonLabelConfirm: _vm.$t(\n                \"Components.Invoices.InvoiceEditor.Button_Discard\"\n              ),\n              confirmButtonCssClass: \"is-danger\",\n              isSaving: _vm.isBusy,\n              onClickCancel: () => (_vm.showDiscardConfirm = false),\n              onClickSave: _vm.discard,\n              showModal: _vm.showDiscardConfirm,\n              modalSize: \"small\",\n            },\n            on: {\n              closeModal: function ($event) {\n                _vm.showDiscardConfirm = false\n              },\n            },\n            scopedSlots: _vm._u(\n              [\n                {\n                  key: \"content\",\n                  fn: function () {\n                    return [\n                      _c(\"p\", [\n                        _vm._v(\n                          _vm._s(\n                            _vm.$t(\n                              \"Components.Invoices.InvoiceEditor.Confirm_DiscardText\"\n                            )\n                          )\n                        ),\n                      ]),\n                    ]\n                  },\n                  proxy: true,\n                },\n              ],\n              null,\n              false,\n              2800909749\n            ),\n          })\n        : _vm._e(),\n      _vm.showPreview\n        ? _c(\"ui-component-drawer\", {\n            attrs: {\n              drawerTitle: _vm.$t(\n                \"Components.Invoices.InvoiceEditor.Title_Preview\"\n              ),\n              showDrawer: _vm.showPreview,\n              onClickClose: _vm.closePreview,\n              position: \"right\",\n              drawerSize: \"extra-large\",\n            },\n            scopedSlots: _vm._u(\n              [\n                {\n                  key: \"content\",\n                  fn: function () {\n                    return [\n                      _vm.mInvoice.Id\n                        ? _c(\"InvoiceSummary\", {\n                            attrs: {\n                              invoiceId: _vm.mInvoice.Id,\n                              locationId: _vm.locationId,\n                            },\n                          })\n                        : _vm._e(),\n                    ]\n                  },\n                  proxy: true,\n                },\n              ],\n              null,\n              false,\n              1658440869\n            ),\n          })\n        : _vm._e(),\n    ],\n    1\n  )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \"/**\\n* Colors\\n*/\\n/**\\n* Text sizes\\n*/\\n/**\\n* Column settings\\n*/\\n/**\\n* Font properties\\n*/\\n.actionBar[data-v-2a8735ab] {\\n  border-top: 1px solid hsl(0, 0%, 86%);\\n}\", \"\"]);\n// Exports\nmodule.exports = exports;\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InvoiceEditor.vue?vue&type=style&index=0&id=2a8735ab&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"4b66b45d\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(module.hot) {\n // When the styles change, update the <style> tags\n if(!content.locals) {\n   module.hot.accept(\"!!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InvoiceEditor.vue?vue&type=style&index=0&id=2a8735ab&lang=scss&scoped=true\", function() {\n     var newContent = require(\"!!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InvoiceEditor.vue?vue&type=style&index=0&id=2a8735ab&lang=scss&scoped=true\");\n     if(newContent.__esModule) newContent = newContent.default;\n     if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n     update(newContent);\n   });\n }\n // When the module is disposed, remove the <style> tags\n module.hot.dispose(function() { update(); });\n}","import Vue from 'vue'\nexport const EventBus = new Vue()\n\nexport default EventBus\n","import axios from 'axios'\nimport store from '../store'\n\nexport default {\n  methods: {\n    async getCurrencies() {\n      const response = await axios.get(\n        `${process.env.VUE_APP_API_BASE_URL}/api/v1/currency`,\n        {\n          headers: {\n            'Content-type': 'application/json',\n            apiToken: process.env.VUE_APP_API_KEY,\n            profileToken: store.getters['profileStore/getProfileToken'],\n          },\n        }\n      )\n      return response\n    },\n  },\n}\n","import { render, staticRenderFns } from \"./InvoiceEditor.vue?vue&type=template&id=2a8735ab&scoped=true\"\nimport script from \"./InvoiceEditor.vue?vue&type=script&lang=js\"\nexport * from \"./InvoiceEditor.vue?vue&type=script&lang=js\"\nimport style0 from \"./InvoiceEditor.vue?vue&type=style&index=0&id=2a8735ab&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"2a8735ab\",\n  null\n  \n)\n\n/* hot reload */\nif (module.hot) {\n  var api = require(\"/github/workspace/node_modules/vue-hot-reload-api/dist/index.js\")\n  api.install(require('vue'))\n  if (api.compatible) {\n    module.hot.accept()\n    if (!api.isRecorded('2a8735ab')) {\n      api.createRecord('2a8735ab', component.options)\n    } else {\n      api.reload('2a8735ab', component.options)\n    }\n    module.hot.accept(\"./InvoiceEditor.vue?vue&type=template&id=2a8735ab&scoped=true\", function () {\n      api.rerender('2a8735ab', {\n        render: render,\n        staticRenderFns: staticRenderFns\n      })\n    })\n  }\n}\ncomponent.options.__file = \"src/views/Invoices/InvoiceEditor.vue\"\nexport default component.exports","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InvoiceEditor.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InvoiceEditor.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/vue-style-loader/index.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InvoiceEditor.vue?vue&type=style&index=0&id=2a8735ab&lang=scss&scoped=true\"","export * from \"-!../../../node_modules/cache-loader/dist/cjs.js?{\\\"cacheDirectory\\\":\\\"node_modules/.cache/vue-loader\\\",\\\"cacheIdentifier\\\":\\\"d2a26fb4-vue-loader-template\\\"}!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InvoiceEditor.vue?vue&type=template&id=2a8735ab&scoped=true\""],"sourceRoot":""}