diff --git a/src/CONST/index.ts b/src/CONST/index.ts index a295f031849a..6df0005d0f61 100644 --- a/src/CONST/index.ts +++ b/src/CONST/index.ts @@ -7928,6 +7928,11 @@ const CONST = { search: true, reportView: true, }, + HELD: { + column: this.TABLE_COLUMNS.HELD, + search: true, + reportView: true, + }, MCC: {column: this.TABLE_COLUMNS.MCC, search: true, reportView: true}, TAX_CODE: { column: this.TABLE_COLUMNS.TAX_CODE, @@ -8223,6 +8228,7 @@ const CONST = { ORIGINAL_AMOUNT: 'originalamount', REIMBURSABLE: 'reimbursable', BILLABLE: 'billable', + HELD: 'held', TAX_RATE: 'taxrate', TOTAL_AMOUNT: 'amount', ATTENDEES: 'attendees', @@ -8373,6 +8379,7 @@ const CONST = { REIMBURSABLE: 'reimbursable', BILLABLE: 'billable', DECLINED: 'declined', + HELD: 'held', POLICY_ID: 'policyID', ACTION: 'action', HAS: 'has', @@ -8465,6 +8472,7 @@ const CONST = { REIMBURSABLE: 'reimbursable', BILLABLE: 'billable', DECLINED: 'declined', + HELD: 'held', ACTION: 'action', HAS: 'has', PURCHASE_AMOUNT: 'purchase-amount', @@ -8505,6 +8513,7 @@ const CONST = { [this.TABLE_COLUMNS.ORIGINAL_AMOUNT]: 'purchase-amount', [this.TABLE_COLUMNS.REIMBURSABLE]: 'reimbursable', [this.TABLE_COLUMNS.BILLABLE]: 'billable', + [this.TABLE_COLUMNS.HELD]: 'held', [this.TABLE_COLUMNS.TAX_RATE]: 'tax-rate', [this.TABLE_COLUMNS.TOTAL_AMOUNT]: 'amount', [this.TABLE_COLUMNS.TOTAL]: 'total', diff --git a/src/components/Search/FilterComponents/ListFilterContent.tsx b/src/components/Search/FilterComponents/ListFilterContent.tsx index 6f0a3a984c39..5ff18f53fd99 100644 --- a/src/components/Search/FilterComponents/ListFilterContent.tsx +++ b/src/components/Search/FilterComponents/ListFilterContent.tsx @@ -50,6 +50,7 @@ type SingleSelectFilterKeys = | typeof CONST.SEARCH.SYNTAX_FILTER_KEYS.BILLABLE | typeof CONST.SEARCH.SYNTAX_FILTER_KEYS.REIMBURSABLE | typeof CONST.SEARCH.SYNTAX_FILTER_KEYS.DECLINED + | typeof CONST.SEARCH.SYNTAX_FILTER_KEYS.HELD | typeof CONST.SEARCH.SYNTAX_FILTER_KEYS.WITHDRAWAL_TYPE | typeof CONST.SEARCH.SYNTAX_FILTER_KEYS.TRANSACTION_STATUS; type SingleSelectListFilterContentProps = SearchFilterCommonProps & { @@ -252,6 +253,7 @@ function ListFilterContent({ case CONST.SEARCH.SYNTAX_FILTER_KEYS.BILLABLE: case CONST.SEARCH.SYNTAX_FILTER_KEYS.REIMBURSABLE: case CONST.SEARCH.SYNTAX_FILTER_KEYS.DECLINED: + case CONST.SEARCH.SYNTAX_FILTER_KEYS.HELD: case CONST.SEARCH.SYNTAX_FILTER_KEYS.TRANSACTION_STATUS: case CONST.SEARCH.SYNTAX_FILTER_KEYS.WITHDRAWAL_TYPE: { const isSingleSelectFilterValue = (v: ListFilterContentProps['value']): v is SingleSelectListFilterContentProps['value'] => { diff --git a/src/components/Search/SearchTableHeader.tsx b/src/components/Search/SearchTableHeader.tsx index b1477a3c0545..82029790529d 100644 --- a/src/components/Search/SearchTableHeader.tsx +++ b/src/components/Search/SearchTableHeader.tsx @@ -136,6 +136,10 @@ const getExpenseHeaders = (groupBy?: SearchGroupBy): SearchColumnConfig[] => [ columnName: CONST.SEARCH.TABLE_COLUMNS.BILLABLE, translationKey: 'common.billable', }, + { + columnName: CONST.SEARCH.TABLE_COLUMNS.HELD, + translationKey: 'search.filters.held', + }, { columnName: CONST.SEARCH.TABLE_COLUMNS.MCC, translationKey: 'common.mcc', diff --git a/src/components/Search/SortableTableHeader.tsx b/src/components/Search/SortableTableHeader.tsx index e370e4558e3a..868623144a45 100644 --- a/src/components/Search/SortableTableHeader.tsx +++ b/src/components/Search/SortableTableHeader.tsx @@ -83,7 +83,8 @@ function SortableTableHeader({ const isSortable = shouldShowSorting && isColumnSortable; const sortByColumnName = sortColumnName ?? columnName; const isActive = sortBy === sortByColumnName; - const isReimbursableOrBillableColumn = columnName === CONST.SEARCH.TABLE_COLUMNS.REIMBURSABLE || columnName === CONST.SEARCH.TABLE_COLUMNS.BILLABLE; + const isYesNoColumn = + columnName === CONST.SEARCH.TABLE_COLUMNS.REIMBURSABLE || columnName === CONST.SEARCH.TABLE_COLUMNS.BILLABLE || columnName === CONST.SEARCH.TABLE_COLUMNS.HELD; const isConversionAmountColumn = columnName === CONST.SEARCH.TABLE_COLUMNS.GROUP_AMOUNT_DEBITED || columnName === CONST.SEARCH.TABLE_COLUMNS.GROUP_AMOUNT_REIMBURSED || @@ -91,7 +92,7 @@ function SortableTableHeader({ columnName === CONST.SEARCH.TABLE_COLUMNS.AMOUNT_REIMBURSED; const textStyle = [ columnName === CONST.SEARCH.TABLE_COLUMNS.RECEIPT ? StyleUtils.getTextOverflowStyle('clip') : null, - isReimbursableOrBillableColumn || isConversionAmountColumn ? styles.flexShrink1 : null, + isYesNoColumn || isConversionAmountColumn ? styles.flexShrink1 : null, ]; return ( diff --git a/src/components/TransactionItemRow/TransactionItemRowWide.tsx b/src/components/TransactionItemRow/TransactionItemRowWide.tsx index 8c373a607527..24dd60496ff4 100644 --- a/src/components/TransactionItemRow/TransactionItemRowWide.tsx +++ b/src/components/TransactionItemRow/TransactionItemRowWide.tsx @@ -42,6 +42,7 @@ import { getTaxName, isDeletedTransaction as isDeletedTransactionUtil, isExpenseUnreported, + isOnHold, isPerDiemRequest, isScanning, isTimeRequest, @@ -178,6 +179,20 @@ function TransactionItemRowWide({ fullHeightMainRowStyle = hasValidationMessage ? styles.mnh13 : styles.tableRowHeight; } + const renderYesNoCell = (columnName: SearchColumnType, value: boolean) => ( + + + {value ? translate('common.yes') : translate('common.no')} + + + ); + const renderColumn = (column: SearchColumnType): React.ReactNode => { const shouldHideTaxValueByRequestType = isTimeRequest(transactionItem) || isPerDiemRequest(transactionItem); switch (column) { @@ -338,33 +353,11 @@ function TransactionItemRowWide({ ); case CONST.SEARCH.TABLE_COLUMNS.REIMBURSABLE: - return ( - - - {getReimbursable(transactionItem) ? translate('common.yes') : translate('common.no')} - - - ); + return renderYesNoCell(column, getReimbursable(transactionItem)); case CONST.SEARCH.TABLE_COLUMNS.BILLABLE: - return ( - - - {transactionItem.billable ? translate('common.yes') : translate('common.no')} - - - ); + return renderYesNoCell(column, !!transactionItem.billable); + case CONST.SEARCH.TABLE_COLUMNS.HELD: + return renderYesNoCell(column, isOnHold(transactionItem)); case CONST.SEARCH.TABLE_COLUMNS.ACTION: return ( value.includes(autocompleteValue.toLowerCase()) && !alreadyAutocompletedKeys.has(value)).sort(); return filteredValues.map((value) => ({ diff --git a/src/languages/de.ts b/src/languages/de.ts index aff85e69838e..26a4aaaef043 100644 --- a/src/languages/de.ts +++ b/src/languages/de.ts @@ -10291,6 +10291,7 @@ Fügen Sie weitere Ausgabelimits hinzu, um den Cashflow Ihres Unternehmens zu sc withdrawn: 'Zurückgezogen', billable: 'Abrechenbar', rejected: 'Abgelehnt', + held: 'Zurückgestellt', reimbursable: 'Erstattungsfähig', purchaseCurrency: 'Kaufwährung', sortOrder: { diff --git a/src/languages/el.ts b/src/languages/el.ts index cda27383978a..1e519358e78b 100644 --- a/src/languages/el.ts +++ b/src/languages/el.ts @@ -10495,6 +10495,7 @@ ${reportName}`, withdrawn: 'Ανακλήθηκε', billable: 'Χρεώσιμη', rejected: 'Απορρίφθηκε', + held: 'Σε αναμονή', reimbursable: 'Επανεντάξιμο', purchaseCurrency: 'Νόμισμα αγοράς', sortOrder: { diff --git a/src/languages/en.ts b/src/languages/en.ts index 237106085e90..d8f78ebdb445 100644 --- a/src/languages/en.ts +++ b/src/languages/en.ts @@ -10540,6 +10540,7 @@ const translations = { withdrawn: 'Withdrawn', billable: 'Billable', rejected: 'Rejected', + held: 'Held', reimbursable: 'Reimbursable', purchaseCurrency: 'Purchase currency', sortOrder: { diff --git a/src/languages/es.ts b/src/languages/es.ts index d7ad5a7a7bd2..f12aacdb8c22 100644 --- a/src/languages/es.ts +++ b/src/languages/es.ts @@ -10135,6 +10135,7 @@ ${reportName}`, withdrawn: 'Retirada', billable: 'Facturable', rejected: 'Rechazado', + held: 'Retenido', reimbursable: 'Reembolsable', purchaseCurrency: 'Moneda de compra', sortOrder: { diff --git a/src/languages/fr.ts b/src/languages/fr.ts index a089625e7b51..967d6d854e77 100644 --- a/src/languages/fr.ts +++ b/src/languages/fr.ts @@ -10321,6 +10321,7 @@ Ajoutez davantage de règles de dépenses pour protéger la trésorerie de l’e withdrawn: 'Retiré', billable: 'Facturable', rejected: 'Rejeté', + held: 'En attente', reimbursable: 'Remboursable', purchaseCurrency: 'Devise d’achat', sortOrder: { diff --git a/src/languages/it.ts b/src/languages/it.ts index 6eb2a2e9909e..fd89633c7f77 100644 --- a/src/languages/it.ts +++ b/src/languages/it.ts @@ -10242,6 +10242,7 @@ Aggiungi altre regole di spesa per proteggere il flusso di cassa aziendale.`, withdrawn: 'Ritirata', billable: 'Fatturabile', rejected: 'Rifiutato', + held: 'In sospeso', reimbursable: 'Rimborsabile', purchaseCurrency: 'Valuta di acquisto', sortOrder: { diff --git a/src/languages/ja.ts b/src/languages/ja.ts index 58a13bfcc91e..915933948396 100644 --- a/src/languages/ja.ts +++ b/src/languages/ja.ts @@ -10099,6 +10099,7 @@ ${reportName}`, withdrawn: '取下済み', billable: '請求可能', rejected: '却下済み', + held: '保留中', reimbursable: '払い戻し対象', purchaseCurrency: '購入通貨', sortOrder: { diff --git a/src/languages/nl.ts b/src/languages/nl.ts index 55d382cb1f87..22748c991bb5 100644 --- a/src/languages/nl.ts +++ b/src/languages/nl.ts @@ -10209,6 +10209,7 @@ er bestedingsregels toe om de kasstroom van het bedrijf te beschermen.`, withdrawn: 'Ingetrokken', billable: 'Factureerbaar', rejected: 'Afgekeurd', + held: 'In de wacht', reimbursable: 'Vergoedbaar', purchaseCurrency: 'Aankoopvaluta', sortOrder: { diff --git a/src/languages/pl.ts b/src/languages/pl.ts index 17a89282fbea..1f3841d2f6ae 100644 --- a/src/languages/pl.ts +++ b/src/languages/pl.ts @@ -10225,6 +10225,7 @@ Dodaj więcej zasad wydatków, żeby chronić płynność finansową firmy.`, withdrawn: 'Wycofano', billable: 'Fakturowalne', rejected: 'Odrzucone', + held: 'Wstrzymane', reimbursable: 'Podlegające zwrotowi', purchaseCurrency: 'Waluta zakupu', sortOrder: { diff --git a/src/languages/pt-BR.ts b/src/languages/pt-BR.ts index 274d62903144..c7666b311c56 100644 --- a/src/languages/pt-BR.ts +++ b/src/languages/pt-BR.ts @@ -10206,6 +10206,7 @@ Adicione mais regras de gasto para proteger o fluxo de caixa da empresa.`, withdrawn: 'Retirado', billable: 'Faturável', rejected: 'Rejeitado', + held: 'Em espera', reimbursable: 'Reembolsável', purchaseCurrency: 'Moeda de compra', sortOrder: { diff --git a/src/languages/zh-hans.ts b/src/languages/zh-hans.ts index 79dafb4321f5..f55630b6dcf1 100644 --- a/src/languages/zh-hans.ts +++ b/src/languages/zh-hans.ts @@ -9830,6 +9830,7 @@ ${reportName}`, withdrawn: '已撤回', billable: '可计费', rejected: '已拒绝', + held: '已搁置', reimbursable: '可报销', purchaseCurrency: '购买货币', sortOrder: { diff --git a/src/libs/ReportUtils.ts b/src/libs/ReportUtils.ts index 061db3d917ff..95c996cd4cc4 100644 --- a/src/libs/ReportUtils.ts +++ b/src/libs/ReportUtils.ts @@ -15042,6 +15042,7 @@ const sortableColumnNames = [ CONST.SEARCH.TABLE_COLUMNS.TOTAL, CONST.SEARCH.TABLE_COLUMNS.REIMBURSABLE, CONST.SEARCH.TABLE_COLUMNS.BILLABLE, + CONST.SEARCH.TABLE_COLUMNS.HELD, CONST.SEARCH.TABLE_COLUMNS.EXCHANGE_RATE, CONST.SEARCH.TABLE_COLUMNS.ORIGINAL_AMOUNT, CONST.SEARCH.TABLE_COLUMNS.MCC, @@ -15119,6 +15120,8 @@ function getTransactionSortValue( return getReimbursable(transaction) ? 1 : 0; case CONST.SEARCH.TABLE_COLUMNS.BILLABLE: return transaction.billable ? 1 : 0; + case CONST.SEARCH.TABLE_COLUMNS.HELD: + return isOnHoldTransactionUtils(transaction) ? 1 : 0; case CONST.SEARCH.TABLE_COLUMNS.EXCHANGE_RATE: return getExchangeRate(transaction, report?.currency); case CONST.SEARCH.TABLE_COLUMNS.ORIGINAL_AMOUNT: diff --git a/src/libs/SearchAutocompleteUtils.ts b/src/libs/SearchAutocompleteUtils.ts index bd9b0493df22..d1655df8114a 100644 --- a/src/libs/SearchAutocompleteUtils.ts +++ b/src/libs/SearchAutocompleteUtils.ts @@ -287,6 +287,7 @@ function filterOutRangesWithCorrectValue( case CONST.SEARCH.SYNTAX_FILTER_KEYS.BILLABLE: case CONST.SEARCH.SYNTAX_FILTER_KEYS.REIMBURSABLE: case CONST.SEARCH.SYNTAX_FILTER_KEYS.DECLINED: + case CONST.SEARCH.SYNTAX_FILTER_KEYS.HELD: return booleanList.includes(range.value); case CONST.SEARCH.SYNTAX_FILTER_KEYS.DATE: case CONST.SEARCH.SYNTAX_FILTER_KEYS.SUBMITTED: diff --git a/src/libs/SearchParser/autocompleteParser.js b/src/libs/SearchParser/autocompleteParser.js index 43808487599a..12522b663f5f 100644 --- a/src/libs/SearchParser/autocompleteParser.js +++ b/src/libs/SearchParser/autocompleteParser.js @@ -229,97 +229,98 @@ function peg$parse(input, options) { var peg$c43 = "withdrawal-id"; var peg$c44 = "billable"; var peg$c45 = "declined"; - var peg$c46 = "reimbursable"; - var peg$c47 = "type"; - var peg$c48 = "status"; - var peg$c49 = "sortBy"; - var peg$c50 = "sort-by"; - var peg$c51 = "sortOrder"; - var peg$c52 = "sort-order"; - var peg$c53 = "policyID"; - var peg$c54 = "workspace"; - var peg$c55 = "submitted"; - var peg$c56 = "approved"; - var peg$c57 = "anyapproval"; - var peg$c58 = "any-approval"; - var peg$c59 = "paid"; - var peg$c60 = "exported"; - var peg$c61 = "posted"; - var peg$c62 = "withdrawn"; - var peg$c63 = "groupby"; - var peg$c64 = "group-by"; - var peg$c65 = "limit"; - var peg$c66 = "feed"; - var peg$c67 = "title"; - var peg$c68 = "submitteruserid"; - var peg$c69 = "submitter-user-id"; - var peg$c70 = "submitterpayrollid"; - var peg$c71 = "submitter-payroll-id"; - var peg$c72 = "orderdealnumbers"; - var peg$c73 = "order-deal-numbers"; - var peg$c74 = "assignee"; - var peg$c75 = "createdby"; - var peg$c76 = "created-by"; - var peg$c77 = "action"; - var peg$c78 = "total"; - var peg$c79 = "has"; - var peg$c80 = "is"; - var peg$c81 = "purchaseamount"; - var peg$c82 = "purchase-amount"; - var peg$c83 = "purchasecurrency"; - var peg$c84 = "purchase-currency"; - var peg$c85 = "amountdebited"; - var peg$c86 = "amount-debited"; - var peg$c87 = "amountreimbursed"; - var peg$c88 = "amount-reimbursed"; - var peg$c89 = "columns"; - var peg$c90 = "view"; - var peg$c91 = "compare"; - var peg$c92 = "per-diem"; - var peg$c93 = "drafts"; - var peg$c94 = "draft"; - var peg$c95 = "tax"; - var peg$c96 = "policy-name"; - var peg$c97 = "long-report-id"; - var peg$c98 = "exported-to"; - var peg$c99 = "exportedto"; - var peg$c100 = "exchange-rate"; - var peg$c101 = "reimbursable-total"; - var peg$c102 = "non-reimbursable-total"; - var peg$c103 = "group-from"; - var peg$c104 = "group-expenses"; - var peg$c105 = "group-total"; - var peg$c106 = "group-card"; - var peg$c107 = "group-feed"; - var peg$c108 = "group-bank-account"; - var peg$c109 = "group-withdrawn"; - var peg$c110 = "group-withdrawal-id"; - var peg$c111 = "group-amount-debited"; - var peg$c112 = "group-amount-reimbursed"; - var peg$c113 = "group-category"; - var peg$c114 = "group-tag"; - var peg$c115 = "group-merchant"; - var peg$c116 = "group-day"; - var peg$c117 = "group-month"; - var peg$c118 = "group-week"; - var peg$c119 = "group-year"; - var peg$c120 = "group-quarter"; - var peg$c121 = "*:"; - var peg$c122 = "!="; - var peg$c123 = ">="; - var peg$c124 = ">"; - var peg$c125 = "<="; - var peg$c126 = "<"; - var peg$c127 = "\\"; - var peg$c128 = "\u201C"; - var peg$c129 = "\u201D"; - var peg$c130 = "\""; - var peg$c131 = "footercount"; - var peg$c132 = "footer-count"; - var peg$c133 = "footercurrency"; - var peg$c134 = "footer-currency"; - var peg$c135 = "footertotal"; - var peg$c136 = "footer-total"; + var peg$c46 = "held"; + var peg$c47 = "reimbursable"; + var peg$c48 = "type"; + var peg$c49 = "status"; + var peg$c50 = "sortBy"; + var peg$c51 = "sort-by"; + var peg$c52 = "sortOrder"; + var peg$c53 = "sort-order"; + var peg$c54 = "policyID"; + var peg$c55 = "workspace"; + var peg$c56 = "submitted"; + var peg$c57 = "approved"; + var peg$c58 = "anyapproval"; + var peg$c59 = "any-approval"; + var peg$c60 = "paid"; + var peg$c61 = "exported"; + var peg$c62 = "posted"; + var peg$c63 = "withdrawn"; + var peg$c64 = "groupby"; + var peg$c65 = "group-by"; + var peg$c66 = "limit"; + var peg$c67 = "feed"; + var peg$c68 = "title"; + var peg$c69 = "submitteruserid"; + var peg$c70 = "submitter-user-id"; + var peg$c71 = "submitterpayrollid"; + var peg$c72 = "submitter-payroll-id"; + var peg$c73 = "orderdealnumbers"; + var peg$c74 = "order-deal-numbers"; + var peg$c75 = "assignee"; + var peg$c76 = "createdby"; + var peg$c77 = "created-by"; + var peg$c78 = "action"; + var peg$c79 = "total"; + var peg$c80 = "has"; + var peg$c81 = "is"; + var peg$c82 = "purchaseamount"; + var peg$c83 = "purchase-amount"; + var peg$c84 = "purchasecurrency"; + var peg$c85 = "purchase-currency"; + var peg$c86 = "amountdebited"; + var peg$c87 = "amount-debited"; + var peg$c88 = "amountreimbursed"; + var peg$c89 = "amount-reimbursed"; + var peg$c90 = "columns"; + var peg$c91 = "view"; + var peg$c92 = "compare"; + var peg$c93 = "per-diem"; + var peg$c94 = "drafts"; + var peg$c95 = "draft"; + var peg$c96 = "tax"; + var peg$c97 = "policy-name"; + var peg$c98 = "long-report-id"; + var peg$c99 = "exported-to"; + var peg$c100 = "exportedto"; + var peg$c101 = "exchange-rate"; + var peg$c102 = "reimbursable-total"; + var peg$c103 = "non-reimbursable-total"; + var peg$c104 = "group-from"; + var peg$c105 = "group-expenses"; + var peg$c106 = "group-total"; + var peg$c107 = "group-card"; + var peg$c108 = "group-feed"; + var peg$c109 = "group-bank-account"; + var peg$c110 = "group-withdrawn"; + var peg$c111 = "group-withdrawal-id"; + var peg$c112 = "group-amount-debited"; + var peg$c113 = "group-amount-reimbursed"; + var peg$c114 = "group-category"; + var peg$c115 = "group-tag"; + var peg$c116 = "group-merchant"; + var peg$c117 = "group-day"; + var peg$c118 = "group-month"; + var peg$c119 = "group-week"; + var peg$c120 = "group-year"; + var peg$c121 = "group-quarter"; + var peg$c122 = "*:"; + var peg$c123 = "!="; + var peg$c124 = ">="; + var peg$c125 = ">"; + var peg$c126 = "<="; + var peg$c127 = "<"; + var peg$c128 = "\\"; + var peg$c129 = "\u201C"; + var peg$c130 = "\u201D"; + var peg$c131 = "\""; + var peg$c132 = "footercount"; + var peg$c133 = "footer-count"; + var peg$c134 = "footercurrency"; + var peg$c135 = "footer-currency"; + var peg$c136 = "footertotal"; + var peg$c137 = "footer-total"; var peg$r0 = /^[ \t\r\n\xA0,:=<>!]/; var peg$r1 = /^[:=]/; @@ -385,114 +386,115 @@ function peg$parse(input, options) { var peg$e46 = peg$literalExpectation("withdrawal-id", true); var peg$e47 = peg$literalExpectation("billable", true); var peg$e48 = peg$literalExpectation("declined", true); - var peg$e49 = peg$literalExpectation("reimbursable", true); - var peg$e50 = peg$literalExpectation("type", true); - var peg$e51 = peg$literalExpectation("status", true); - var peg$e52 = peg$literalExpectation("sortBy", false); - var peg$e53 = peg$literalExpectation("sort-by", true); - var peg$e54 = peg$literalExpectation("sortOrder", false); - var peg$e55 = peg$literalExpectation("sort-order", true); - var peg$e56 = peg$literalExpectation("policyID", false); - var peg$e57 = peg$literalExpectation("workspace", true); - var peg$e58 = peg$literalExpectation("submitted", true); - var peg$e59 = peg$literalExpectation("approved", true); - var peg$e60 = peg$literalExpectation("anyApproval", true); - var peg$e61 = peg$literalExpectation("any-approval", true); - var peg$e62 = peg$literalExpectation("paid", true); - var peg$e63 = peg$literalExpectation("exported", true); - var peg$e64 = peg$literalExpectation("posted", true); - var peg$e65 = peg$literalExpectation("withdrawn", true); - var peg$e66 = peg$literalExpectation("groupBy", true); - var peg$e67 = peg$literalExpectation("group-by", true); - var peg$e68 = peg$literalExpectation("limit", true); - var peg$e69 = peg$literalExpectation("feed", true); - var peg$e70 = peg$literalExpectation("title", true); - var peg$e71 = peg$literalExpectation("submitterUserID", true); - var peg$e72 = peg$literalExpectation("submitter-user-id", true); - var peg$e73 = peg$literalExpectation("submitterPayrollID", true); - var peg$e74 = peg$literalExpectation("submitter-payroll-id", true); - var peg$e75 = peg$literalExpectation("orderDealNumbers", true); - var peg$e76 = peg$literalExpectation("order-deal-numbers", true); - var peg$e77 = peg$literalExpectation("assignee", true); - var peg$e78 = peg$literalExpectation("createdBy", true); - var peg$e79 = peg$literalExpectation("created-by", true); - var peg$e80 = peg$literalExpectation("action", true); - var peg$e81 = peg$literalExpectation("total", true); - var peg$e82 = peg$literalExpectation("has", true); - var peg$e83 = peg$literalExpectation("is", true); - var peg$e84 = peg$literalExpectation("purchaseAmount", true); - var peg$e85 = peg$literalExpectation("purchase-amount", true); - var peg$e86 = peg$literalExpectation("purchaseCurrency", true); - var peg$e87 = peg$literalExpectation("purchase-currency", true); - var peg$e88 = peg$literalExpectation("amountDebited", true); - var peg$e89 = peg$literalExpectation("amount-debited", true); - var peg$e90 = peg$literalExpectation("amountReimbursed", true); - var peg$e91 = peg$literalExpectation("amount-reimbursed", true); - var peg$e92 = peg$literalExpectation("columns", true); - var peg$e93 = peg$literalExpectation("view", true); - var peg$e94 = peg$literalExpectation("compare", true); - var peg$e95 = peg$literalExpectation("per-diem", true); - var peg$e96 = peg$literalExpectation("drafts", true); - var peg$e97 = peg$literalExpectation("draft", true); - var peg$e98 = peg$literalExpectation("tax", true); - var peg$e99 = peg$literalExpectation("policy-name", true); - var peg$e100 = peg$literalExpectation("long-report-id", true); - var peg$e101 = peg$literalExpectation("exported-to", true); - var peg$e102 = peg$classExpectation([":", "="], false, false); - var peg$e103 = peg$literalExpectation("exportedTo", true); - var peg$e104 = peg$literalExpectation("exchange-rate", true); - var peg$e105 = peg$literalExpectation("reimbursable-total", true); - var peg$e106 = peg$literalExpectation("non-reimbursable-total", true); - var peg$e107 = peg$literalExpectation("group-from", true); - var peg$e108 = peg$literalExpectation("group-expenses", true); - var peg$e109 = peg$literalExpectation("group-total", true); - var peg$e110 = peg$literalExpectation("group-card", true); - var peg$e111 = peg$literalExpectation("group-feed", true); - var peg$e112 = peg$literalExpectation("group-bank-account", true); - var peg$e113 = peg$literalExpectation("group-withdrawn", true); - var peg$e114 = peg$literalExpectation("group-withdrawal-id", true); - var peg$e115 = peg$literalExpectation("group-amount-debited", true); - var peg$e116 = peg$literalExpectation("group-amount-reimbursed", true); - var peg$e117 = peg$literalExpectation("group-category", true); - var peg$e118 = peg$literalExpectation("group-tag", true); - var peg$e119 = peg$literalExpectation("group-merchant", true); - var peg$e120 = peg$literalExpectation("group-day", true); - var peg$e121 = peg$literalExpectation("group-month", true); - var peg$e122 = peg$literalExpectation("group-week", true); - var peg$e123 = peg$literalExpectation("group-year", true); - var peg$e124 = peg$literalExpectation("group-quarter", true); - var peg$e125 = peg$otherExpectation("operator"); - var peg$e126 = peg$literalExpectation("*:", false); - var peg$e127 = peg$literalExpectation("!=", false); - var peg$e128 = peg$literalExpectation(">=", false); - var peg$e129 = peg$literalExpectation(">", false); - var peg$e130 = peg$literalExpectation("<=", false); - var peg$e131 = peg$literalExpectation("<", false); - var peg$e132 = peg$literalExpectation("\\", false); - var peg$e133 = peg$classExpectation([",", "\"", "\u201D", "\u201C", "\\"], false, false); - var peg$e134 = peg$otherExpectation("word"); - var peg$e135 = peg$classExpectation([" ", ",", "\t", "\n", "\r", "\xA0"], true, false); - var peg$e136 = peg$otherExpectation("whitespace"); - var peg$e137 = peg$classExpectation([" ", "\t", "\r", "\n", "\xA0"], false, false); - var peg$e138 = peg$otherExpectation("quote"); - var peg$e139 = peg$classExpectation([" ", ",", "\"", "\u201D", "\u201C", "\t", "\n", "\r", "\xA0"], true, false); - var peg$e140 = peg$classExpectation(["\"", ["\u201C", "\u201D"]], false, false); - var peg$e141 = peg$classExpectation(["\"", "\u201D", "\u201C", "\r", "\n"], true, false); - var peg$e142 = peg$literalExpectation("\u201C", false); - var peg$e143 = peg$literalExpectation("\u201D", false); - var peg$e144 = peg$literalExpectation("\"", false); - var peg$e145 = peg$classExpectation([" ", "\t", "\n", "\r", "\xA0", ["a", "z"], ["A", "Z"], ["0", "9"]], false, false); - var peg$e146 = peg$classExpectation([["a", "z"], ["A", "Z"], ["0", "9"]], false, false); - var peg$e147 = peg$classExpectation([" ", "\t", "\n", "\r", "\xA0"], false, false); - var peg$e148 = peg$classExpectation([" ", "\t", "\n", "\r", "\xA0", ["a", "z"], ["A", "Z"]], false, false); - var peg$e149 = peg$classExpectation([","], false, false); - var peg$e150 = peg$classExpectation([" ", "\t", "\n", "\r", "\xA0", ","], false, false); - var peg$e151 = peg$literalExpectation("footerCount", true); - var peg$e152 = peg$literalExpectation("footer-count", true); - var peg$e153 = peg$literalExpectation("footerCurrency", true); - var peg$e154 = peg$literalExpectation("footer-currency", true); - var peg$e155 = peg$literalExpectation("footerTotal", true); - var peg$e156 = peg$literalExpectation("footer-total", true); + var peg$e49 = peg$literalExpectation("held", true); + var peg$e50 = peg$literalExpectation("reimbursable", true); + var peg$e51 = peg$literalExpectation("type", true); + var peg$e52 = peg$literalExpectation("status", true); + var peg$e53 = peg$literalExpectation("sortBy", false); + var peg$e54 = peg$literalExpectation("sort-by", true); + var peg$e55 = peg$literalExpectation("sortOrder", false); + var peg$e56 = peg$literalExpectation("sort-order", true); + var peg$e57 = peg$literalExpectation("policyID", false); + var peg$e58 = peg$literalExpectation("workspace", true); + var peg$e59 = peg$literalExpectation("submitted", true); + var peg$e60 = peg$literalExpectation("approved", true); + var peg$e61 = peg$literalExpectation("anyApproval", true); + var peg$e62 = peg$literalExpectation("any-approval", true); + var peg$e63 = peg$literalExpectation("paid", true); + var peg$e64 = peg$literalExpectation("exported", true); + var peg$e65 = peg$literalExpectation("posted", true); + var peg$e66 = peg$literalExpectation("withdrawn", true); + var peg$e67 = peg$literalExpectation("groupBy", true); + var peg$e68 = peg$literalExpectation("group-by", true); + var peg$e69 = peg$literalExpectation("limit", true); + var peg$e70 = peg$literalExpectation("feed", true); + var peg$e71 = peg$literalExpectation("title", true); + var peg$e72 = peg$literalExpectation("submitterUserID", true); + var peg$e73 = peg$literalExpectation("submitter-user-id", true); + var peg$e74 = peg$literalExpectation("submitterPayrollID", true); + var peg$e75 = peg$literalExpectation("submitter-payroll-id", true); + var peg$e76 = peg$literalExpectation("orderDealNumbers", true); + var peg$e77 = peg$literalExpectation("order-deal-numbers", true); + var peg$e78 = peg$literalExpectation("assignee", true); + var peg$e79 = peg$literalExpectation("createdBy", true); + var peg$e80 = peg$literalExpectation("created-by", true); + var peg$e81 = peg$literalExpectation("action", true); + var peg$e82 = peg$literalExpectation("total", true); + var peg$e83 = peg$literalExpectation("has", true); + var peg$e84 = peg$literalExpectation("is", true); + var peg$e85 = peg$literalExpectation("purchaseAmount", true); + var peg$e86 = peg$literalExpectation("purchase-amount", true); + var peg$e87 = peg$literalExpectation("purchaseCurrency", true); + var peg$e88 = peg$literalExpectation("purchase-currency", true); + var peg$e89 = peg$literalExpectation("amountDebited", true); + var peg$e90 = peg$literalExpectation("amount-debited", true); + var peg$e91 = peg$literalExpectation("amountReimbursed", true); + var peg$e92 = peg$literalExpectation("amount-reimbursed", true); + var peg$e93 = peg$literalExpectation("columns", true); + var peg$e94 = peg$literalExpectation("view", true); + var peg$e95 = peg$literalExpectation("compare", true); + var peg$e96 = peg$literalExpectation("per-diem", true); + var peg$e97 = peg$literalExpectation("drafts", true); + var peg$e98 = peg$literalExpectation("draft", true); + var peg$e99 = peg$literalExpectation("tax", true); + var peg$e100 = peg$literalExpectation("policy-name", true); + var peg$e101 = peg$literalExpectation("long-report-id", true); + var peg$e102 = peg$literalExpectation("exported-to", true); + var peg$e103 = peg$classExpectation([":", "="], false, false); + var peg$e104 = peg$literalExpectation("exportedTo", true); + var peg$e105 = peg$literalExpectation("exchange-rate", true); + var peg$e106 = peg$literalExpectation("reimbursable-total", true); + var peg$e107 = peg$literalExpectation("non-reimbursable-total", true); + var peg$e108 = peg$literalExpectation("group-from", true); + var peg$e109 = peg$literalExpectation("group-expenses", true); + var peg$e110 = peg$literalExpectation("group-total", true); + var peg$e111 = peg$literalExpectation("group-card", true); + var peg$e112 = peg$literalExpectation("group-feed", true); + var peg$e113 = peg$literalExpectation("group-bank-account", true); + var peg$e114 = peg$literalExpectation("group-withdrawn", true); + var peg$e115 = peg$literalExpectation("group-withdrawal-id", true); + var peg$e116 = peg$literalExpectation("group-amount-debited", true); + var peg$e117 = peg$literalExpectation("group-amount-reimbursed", true); + var peg$e118 = peg$literalExpectation("group-category", true); + var peg$e119 = peg$literalExpectation("group-tag", true); + var peg$e120 = peg$literalExpectation("group-merchant", true); + var peg$e121 = peg$literalExpectation("group-day", true); + var peg$e122 = peg$literalExpectation("group-month", true); + var peg$e123 = peg$literalExpectation("group-week", true); + var peg$e124 = peg$literalExpectation("group-year", true); + var peg$e125 = peg$literalExpectation("group-quarter", true); + var peg$e126 = peg$otherExpectation("operator"); + var peg$e127 = peg$literalExpectation("*:", false); + var peg$e128 = peg$literalExpectation("!=", false); + var peg$e129 = peg$literalExpectation(">=", false); + var peg$e130 = peg$literalExpectation(">", false); + var peg$e131 = peg$literalExpectation("<=", false); + var peg$e132 = peg$literalExpectation("<", false); + var peg$e133 = peg$literalExpectation("\\", false); + var peg$e134 = peg$classExpectation([",", "\"", "\u201D", "\u201C", "\\"], false, false); + var peg$e135 = peg$otherExpectation("word"); + var peg$e136 = peg$classExpectation([" ", ",", "\t", "\n", "\r", "\xA0"], true, false); + var peg$e137 = peg$otherExpectation("whitespace"); + var peg$e138 = peg$classExpectation([" ", "\t", "\r", "\n", "\xA0"], false, false); + var peg$e139 = peg$otherExpectation("quote"); + var peg$e140 = peg$classExpectation([" ", ",", "\"", "\u201D", "\u201C", "\t", "\n", "\r", "\xA0"], true, false); + var peg$e141 = peg$classExpectation(["\"", ["\u201C", "\u201D"]], false, false); + var peg$e142 = peg$classExpectation(["\"", "\u201D", "\u201C", "\r", "\n"], true, false); + var peg$e143 = peg$literalExpectation("\u201C", false); + var peg$e144 = peg$literalExpectation("\u201D", false); + var peg$e145 = peg$literalExpectation("\"", false); + var peg$e146 = peg$classExpectation([" ", "\t", "\n", "\r", "\xA0", ["a", "z"], ["A", "Z"], ["0", "9"]], false, false); + var peg$e147 = peg$classExpectation([["a", "z"], ["A", "Z"], ["0", "9"]], false, false); + var peg$e148 = peg$classExpectation([" ", "\t", "\n", "\r", "\xA0"], false, false); + var peg$e149 = peg$classExpectation([" ", "\t", "\n", "\r", "\xA0", ["a", "z"], ["A", "Z"]], false, false); + var peg$e150 = peg$classExpectation([","], false, false); + var peg$e151 = peg$classExpectation([" ", "\t", "\n", "\r", "\xA0", ","], false, false); + var peg$e152 = peg$literalExpectation("footerCount", true); + var peg$e153 = peg$literalExpectation("footer-count", true); + var peg$e154 = peg$literalExpectation("footerCurrency", true); + var peg$e155 = peg$literalExpectation("footer-currency", true); + var peg$e156 = peg$literalExpectation("footerTotal", true); + var peg$e157 = peg$literalExpectation("footer-total", true); var peg$f0 = function(ranges) { return { autocomplete, ranges }; }; var peg$f1 = function(filters) { return filters.filter(Boolean).flat(); }; @@ -592,113 +594,114 @@ function peg$parse(input, options) { var peg$f34 = function() { return "withdrawalID"; }; var peg$f35 = function() { return "billable"; }; var peg$f36 = function() { return "declined"; }; - var peg$f37 = function() { return "reimbursable"; }; - var peg$f38 = function() { return "type"; }; - var peg$f39 = function() { return "status"; }; - var peg$f40 = function() { return "sortBy"; }; - var peg$f41 = function() { return "sortOrder"; }; - var peg$f42 = function() { return "policyID"; }; - var peg$f43 = function() { return "submitted"; }; - var peg$f44 = function() { return "approved"; }; - var peg$f45 = function() { return "anyApproval"; }; + var peg$f37 = function() { return "held"; }; + var peg$f38 = function() { return "reimbursable"; }; + var peg$f39 = function() { return "type"; }; + var peg$f40 = function() { return "status"; }; + var peg$f41 = function() { return "sortBy"; }; + var peg$f42 = function() { return "sortOrder"; }; + var peg$f43 = function() { return "policyID"; }; + var peg$f44 = function() { return "submitted"; }; + var peg$f45 = function() { return "approved"; }; var peg$f46 = function() { return "anyApproval"; }; - var peg$f47 = function() { return "paid"; }; - var peg$f48 = function() { return "exported"; }; - var peg$f49 = function() { return "posted"; }; - var peg$f50 = function() { return "withdrawn"; }; - var peg$f51 = function() { return "groupBy"; }; - var peg$f52 = function() { return "limit"; }; - var peg$f53 = function() { return "feed"; }; - var peg$f54 = function() { return "title"; }; - var peg$f55 = function() { return "submitterUserID"; }; - var peg$f56 = function() { return "submitterPayrollID"; }; - var peg$f57 = function() { return "orderDealNumbers"; }; - var peg$f58 = function() { return "assignee"; }; - var peg$f59 = function() { return "createdBy"; }; - var peg$f60 = function() { return "action"; }; - var peg$f61 = function() {return "total"; }; - var peg$f62 = function() {return "has"; }; - var peg$f63 = function() {return "is"; }; - var peg$f64 = function() {return "purchaseAmount"}; - var peg$f65 = function() {return "purchaseCurrency"}; - var peg$f66 = function() {return "amountDebited"}; - var peg$f67 = function() {return "amountReimbursed"}; - var peg$f68 = function() { + var peg$f47 = function() { return "anyApproval"; }; + var peg$f48 = function() { return "paid"; }; + var peg$f49 = function() { return "exported"; }; + var peg$f50 = function() { return "posted"; }; + var peg$f51 = function() { return "withdrawn"; }; + var peg$f52 = function() { return "groupBy"; }; + var peg$f53 = function() { return "limit"; }; + var peg$f54 = function() { return "feed"; }; + var peg$f55 = function() { return "title"; }; + var peg$f56 = function() { return "submitterUserID"; }; + var peg$f57 = function() { return "submitterPayrollID"; }; + var peg$f58 = function() { return "orderDealNumbers"; }; + var peg$f59 = function() { return "assignee"; }; + var peg$f60 = function() { return "createdBy"; }; + var peg$f61 = function() { return "action"; }; + var peg$f62 = function() {return "total"; }; + var peg$f63 = function() {return "has"; }; + var peg$f64 = function() {return "is"; }; + var peg$f65 = function() {return "purchaseAmount"}; + var peg$f66 = function() {return "purchaseCurrency"}; + var peg$f67 = function() {return "amountDebited"}; + var peg$f68 = function() {return "amountReimbursed"}; + var peg$f69 = function() { isColumnsContext = true; return "columns"; }; - var peg$f69 = function() {return "view"}; - var peg$f70 = function() {return "compare"}; - var peg$f71 = function() { return isColumnsContext; }; - var peg$f72 = function() { return "perDiem"; }; - var peg$f73 = function() { return "drafts"; }; - var peg$f74 = function() { return "originalamount"; }; - var peg$f75 = function() { return "taxAmount"; }; - var peg$f76 = function() { return "taxrate"; }; - var peg$f77 = function() { return "policyname"; }; - var peg$f78 = function() { return "withdrawalID"; }; - var peg$f79 = function() { return "bankAccount"; }; - var peg$f80 = function() { return "reportID"; }; - var peg$f81 = function() { return "base62ReportID"; }; - var peg$f82 = function() { return "exportedto"; }; - var peg$f83 = function() { return "exportedTo"; }; + var peg$f70 = function() {return "view"}; + var peg$f71 = function() {return "compare"}; + var peg$f72 = function() { return isColumnsContext; }; + var peg$f73 = function() { return "perDiem"; }; + var peg$f74 = function() { return "drafts"; }; + var peg$f75 = function() { return "originalamount"; }; + var peg$f76 = function() { return "taxAmount"; }; + var peg$f77 = function() { return "taxrate"; }; + var peg$f78 = function() { return "policyname"; }; + var peg$f79 = function() { return "withdrawalID"; }; + var peg$f80 = function() { return "bankAccount"; }; + var peg$f81 = function() { return "reportID"; }; + var peg$f82 = function() { return "base62ReportID"; }; + var peg$f83 = function() { return "exportedto"; }; var peg$f84 = function() { return "exportedTo"; }; - var peg$f85 = function() { return "exchangeRate"; }; - var peg$f86 = function() { return "reimbursableTotal"; }; - var peg$f87 = function() { return "nonReimbursableTotal"; }; - var peg$f88 = function() { return "groupFrom"; }; - var peg$f89 = function() { return "groupExpenses"; }; - var peg$f90 = function() { return "groupTotal"; }; - var peg$f91 = function() { return "groupCard"; }; - var peg$f92 = function() { return "groupFeed"; }; - var peg$f93 = function() { return "groupBankAccount"; }; - var peg$f94 = function() { return "groupWithdrawn"; }; - var peg$f95 = function() { return "groupWithdrawalID"; }; - var peg$f96 = function() { return "groupAmountDebited"; }; - var peg$f97 = function() { return "groupAmountReimbursed"; }; - var peg$f98 = function() { return "amountDebited"; }; - var peg$f99 = function() { return "amountReimbursed"; }; - var peg$f100 = function() { return "groupCategory"; }; - var peg$f101 = function() { return "groupTag"; }; - var peg$f102 = function() { return "groupMerchant"; }; - var peg$f103 = function() { return "groupday"; }; - var peg$f104 = function() { return "groupmonth"; }; - var peg$f105 = function() { return "groupweek"; }; - var peg$f106 = function() { return "groupyear"; }; - var peg$f107 = function() { return "groupquarter"; }; - var peg$f108 = function() { return "contains"; }; - var peg$f109 = function() { return "eq"; }; - var peg$f110 = function() { return "neq"; }; - var peg$f111 = function() { return "gte"; }; - var peg$f112 = function() { return "gt"; }; - var peg$f113 = function() { return "lte"; }; - var peg$f114 = function() { return "lt"; }; - var peg$f115 = function(o) { + var peg$f85 = function() { return "exportedTo"; }; + var peg$f86 = function() { return "exchangeRate"; }; + var peg$f87 = function() { return "reimbursableTotal"; }; + var peg$f88 = function() { return "nonReimbursableTotal"; }; + var peg$f89 = function() { return "groupFrom"; }; + var peg$f90 = function() { return "groupExpenses"; }; + var peg$f91 = function() { return "groupTotal"; }; + var peg$f92 = function() { return "groupCard"; }; + var peg$f93 = function() { return "groupFeed"; }; + var peg$f94 = function() { return "groupBankAccount"; }; + var peg$f95 = function() { return "groupWithdrawn"; }; + var peg$f96 = function() { return "groupWithdrawalID"; }; + var peg$f97 = function() { return "groupAmountDebited"; }; + var peg$f98 = function() { return "groupAmountReimbursed"; }; + var peg$f99 = function() { return "amountDebited"; }; + var peg$f100 = function() { return "amountReimbursed"; }; + var peg$f101 = function() { return "groupCategory"; }; + var peg$f102 = function() { return "groupTag"; }; + var peg$f103 = function() { return "groupMerchant"; }; + var peg$f104 = function() { return "groupday"; }; + var peg$f105 = function() { return "groupmonth"; }; + var peg$f106 = function() { return "groupweek"; }; + var peg$f107 = function() { return "groupyear"; }; + var peg$f108 = function() { return "groupquarter"; }; + var peg$f109 = function() { return "contains"; }; + var peg$f110 = function() { return "eq"; }; + var peg$f111 = function() { return "neq"; }; + var peg$f112 = function() { return "gte"; }; + var peg$f113 = function() { return "gt"; }; + var peg$f114 = function() { return "lte"; }; + var peg$f115 = function() { return "lt"; }; + var peg$f116 = function(o) { if (nameOperator) { expectingNestedQuote = (o === "eq" || o === "contains"); } isColumnsContext = false; return o; }; - var peg$f116 = function(c) { return c; }; - var peg$f117 = function(chars) { return chars.join("").trim(); }; - var peg$f118 = function() { + var peg$f117 = function(c) { return c; }; + var peg$f118 = function(chars) { return chars.join("").trim(); }; + var peg$f119 = function() { isColumnsContext = false; return "and"; }; - var peg$f119 = function() { return expectingNestedQuote; }; - var peg$f120 = function(start, inner, end) { //handle no-breaking space + var peg$f120 = function() { return expectingNestedQuote; }; + var peg$f121 = function(start, inner, end) { //handle no-breaking space return [...start, '"', ...inner, '"', ...end].join(""); }; - var peg$f121 = function(start) {return "“"}; - var peg$f122 = function(start) {return "”"}; - var peg$f123 = function(start) {return "\""}; - var peg$f124 = function(start, inner, end) { + var peg$f122 = function(start) {return "“"}; + var peg$f123 = function(start) {return "”"}; + var peg$f124 = function(start) {return "\""}; + var peg$f125 = function(start, inner, end) { return [...start, '"', ...inner, '"'].join(""); }; - var peg$f125 = function() { return "footerCount"; }; - var peg$f126 = function() { return "footerCurrency"; }; - var peg$f127 = function() { return "footerTotal"; }; + var peg$f126 = function() { return "footerCount"; }; + var peg$f127 = function() { return "footerCurrency"; }; + var peg$f128 = function() { return "footerTotal"; }; var peg$currPos = options.peg$currPos | 0; var peg$savedPos = peg$currPos; var peg$posDetailsCache = [{ line: 1, column: 1 }]; @@ -1171,69 +1174,72 @@ function peg$parse(input, options) { if (s1 === peg$FAILED) { s1 = peg$parsedeclined(); if (s1 === peg$FAILED) { - s1 = peg$parsepolicyID(); + s1 = peg$parseheld(); if (s1 === peg$FAILED) { - s1 = peg$parseaction(); + s1 = peg$parsepolicyID(); if (s1 === peg$FAILED) { - s1 = peg$parsedate(); + s1 = peg$parseaction(); if (s1 === peg$FAILED) { - s1 = peg$parsesubmitted(); + s1 = peg$parsedate(); if (s1 === peg$FAILED) { - s1 = peg$parseanyApproval(); + s1 = peg$parsesubmitted(); if (s1 === peg$FAILED) { - s1 = peg$parseapproved(); + s1 = peg$parseanyApproval(); if (s1 === peg$FAILED) { - s1 = peg$parsepaid(); + s1 = peg$parseapproved(); if (s1 === peg$FAILED) { - s1 = peg$parseexportedTo(); + s1 = peg$parsepaid(); if (s1 === peg$FAILED) { - s1 = peg$parseexported(); + s1 = peg$parseexportedTo(); if (s1 === peg$FAILED) { - s1 = peg$parsewithdrawn(); + s1 = peg$parseexported(); if (s1 === peg$FAILED) { - s1 = peg$parseposted(); + s1 = peg$parsewithdrawn(); if (s1 === peg$FAILED) { - s1 = peg$parsehas(); + s1 = peg$parseposted(); if (s1 === peg$FAILED) { - s1 = peg$parseis(); + s1 = peg$parsehas(); if (s1 === peg$FAILED) { - s1 = peg$parsepurchaseCurrency(); + s1 = peg$parseis(); if (s1 === peg$FAILED) { - s1 = peg$parsepurchaseAmount(); + s1 = peg$parsepurchaseCurrency(); if (s1 === peg$FAILED) { - s1 = peg$parseamountDebited(); + s1 = peg$parsepurchaseAmount(); if (s1 === peg$FAILED) { - s1 = peg$parseamountReimbursed(); + s1 = peg$parseamountDebited(); if (s1 === peg$FAILED) { - s1 = peg$parseamount(); + s1 = peg$parseamountReimbursed(); if (s1 === peg$FAILED) { - s1 = peg$parsemerchant(); + s1 = peg$parseamount(); if (s1 === peg$FAILED) { - s1 = peg$parsedescription(); + s1 = peg$parsemerchant(); if (s1 === peg$FAILED) { - s1 = peg$parsereportID(); + s1 = peg$parsedescription(); if (s1 === peg$FAILED) { - s1 = peg$parsewithdrawalID(); + s1 = peg$parsereportID(); if (s1 === peg$FAILED) { - s1 = peg$parsetitle(); + s1 = peg$parsewithdrawalID(); if (s1 === peg$FAILED) { - s1 = peg$parsesubmitterUserID(); + s1 = peg$parsetitle(); if (s1 === peg$FAILED) { - s1 = peg$parsesubmitterPayrollID(); + s1 = peg$parsesubmitterUserID(); if (s1 === peg$FAILED) { - s1 = peg$parseorderDealNumbers(); + s1 = peg$parsesubmitterPayrollID(); if (s1 === peg$FAILED) { - s1 = peg$parsereportFieldDynamic(); + s1 = peg$parseorderDealNumbers(); if (s1 === peg$FAILED) { - s1 = peg$parsecolumns(); + s1 = peg$parsereportFieldDynamic(); if (s1 === peg$FAILED) { - s1 = peg$parselimit(); + s1 = peg$parsecolumns(); if (s1 === peg$FAILED) { - s1 = peg$parsefooterCount(); + s1 = peg$parselimit(); if (s1 === peg$FAILED) { - s1 = peg$parsefooterCurrency(); + s1 = peg$parsefooterCount(); if (s1 === peg$FAILED) { - s1 = peg$parsefooterTotal(); + s1 = peg$parsefooterCurrency(); + if (s1 === peg$FAILED) { + s1 = peg$parsefooterTotal(); + } } } } @@ -2095,13 +2101,13 @@ function peg$parse(input, options) { return s0; } - function peg$parsereimbursable() { + function peg$parseheld() { var s0, s1; s0 = peg$currPos; - s1 = input.substr(peg$currPos, 12); + s1 = input.substr(peg$currPos, 4); if (s1.toLowerCase() === peg$c46) { - peg$currPos += 12; + peg$currPos += 4; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e49); } @@ -2115,13 +2121,13 @@ function peg$parse(input, options) { return s0; } - function peg$parsetype() { + function peg$parsereimbursable() { var s0, s1; s0 = peg$currPos; - s1 = input.substr(peg$currPos, 4); + s1 = input.substr(peg$currPos, 12); if (s1.toLowerCase() === peg$c47) { - peg$currPos += 4; + peg$currPos += 12; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e50); } @@ -2135,13 +2141,13 @@ function peg$parse(input, options) { return s0; } - function peg$parsestatus() { + function peg$parsetype() { var s0, s1; s0 = peg$currPos; - s1 = input.substr(peg$currPos, 6); + s1 = input.substr(peg$currPos, 4); if (s1.toLowerCase() === peg$c48) { - peg$currPos += 6; + peg$currPos += 4; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e51); } @@ -2155,28 +2161,48 @@ function peg$parse(input, options) { return s0; } + function peg$parsestatus() { + var s0, s1; + + s0 = peg$currPos; + s1 = input.substr(peg$currPos, 6); + if (s1.toLowerCase() === peg$c49) { + peg$currPos += 6; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$e52); } + } + if (s1 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$f40(); + } + s0 = s1; + + return s0; + } + function peg$parsesortBy() { var s0, s1; - if (input.substr(peg$currPos, 6) === peg$c49) { - s0 = peg$c49; + if (input.substr(peg$currPos, 6) === peg$c50) { + s0 = peg$c50; peg$currPos += 6; } else { s0 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e52); } + if (peg$silentFails === 0) { peg$fail(peg$e53); } } if (s0 === peg$FAILED) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 7); - if (s1.toLowerCase() === peg$c50) { + if (s1.toLowerCase() === peg$c51) { peg$currPos += 7; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e53); } + if (peg$silentFails === 0) { peg$fail(peg$e54); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f40(); + s1 = peg$f41(); } s0 = s1; } @@ -2187,25 +2213,25 @@ function peg$parse(input, options) { function peg$parsesortOrder() { var s0, s1; - if (input.substr(peg$currPos, 9) === peg$c51) { - s0 = peg$c51; + if (input.substr(peg$currPos, 9) === peg$c52) { + s0 = peg$c52; peg$currPos += 9; } else { s0 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e54); } + if (peg$silentFails === 0) { peg$fail(peg$e55); } } if (s0 === peg$FAILED) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 10); - if (s1.toLowerCase() === peg$c52) { + if (s1.toLowerCase() === peg$c53) { peg$currPos += 10; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e55); } + if (peg$silentFails === 0) { peg$fail(peg$e56); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f41(); + s1 = peg$f42(); } s0 = s1; } @@ -2216,25 +2242,25 @@ function peg$parse(input, options) { function peg$parsepolicyID() { var s0, s1; - if (input.substr(peg$currPos, 8) === peg$c53) { - s0 = peg$c53; + if (input.substr(peg$currPos, 8) === peg$c54) { + s0 = peg$c54; peg$currPos += 8; } else { s0 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e56); } + if (peg$silentFails === 0) { peg$fail(peg$e57); } } if (s0 === peg$FAILED) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 9); - if (s1.toLowerCase() === peg$c54) { + if (s1.toLowerCase() === peg$c55) { peg$currPos += 9; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e57); } + if (peg$silentFails === 0) { peg$fail(peg$e58); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f42(); + s1 = peg$f43(); } s0 = s1; } @@ -2247,15 +2273,15 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 9); - if (s1.toLowerCase() === peg$c55) { + if (s1.toLowerCase() === peg$c56) { peg$currPos += 9; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e58); } + if (peg$silentFails === 0) { peg$fail(peg$e59); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f43(); + s1 = peg$f44(); } s0 = s1; @@ -2267,15 +2293,15 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 8); - if (s1.toLowerCase() === peg$c56) { + if (s1.toLowerCase() === peg$c57) { peg$currPos += 8; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e59); } + if (peg$silentFails === 0) { peg$fail(peg$e60); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f44(); + s1 = peg$f45(); } s0 = s1; @@ -2287,29 +2313,29 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 11); - if (s1.toLowerCase() === peg$c57) { + if (s1.toLowerCase() === peg$c58) { peg$currPos += 11; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e60); } + if (peg$silentFails === 0) { peg$fail(peg$e61); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f45(); + s1 = peg$f46(); } s0 = s1; if (s0 === peg$FAILED) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 12); - if (s1.toLowerCase() === peg$c58) { + if (s1.toLowerCase() === peg$c59) { peg$currPos += 12; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e61); } + if (peg$silentFails === 0) { peg$fail(peg$e62); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f46(); + s1 = peg$f47(); } s0 = s1; } @@ -2322,15 +2348,15 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 4); - if (s1.toLowerCase() === peg$c59) { + if (s1.toLowerCase() === peg$c60) { peg$currPos += 4; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e62); } + if (peg$silentFails === 0) { peg$fail(peg$e63); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f47(); + s1 = peg$f48(); } s0 = s1; @@ -2342,15 +2368,15 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 8); - if (s1.toLowerCase() === peg$c60) { + if (s1.toLowerCase() === peg$c61) { peg$currPos += 8; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e63); } + if (peg$silentFails === 0) { peg$fail(peg$e64); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f48(); + s1 = peg$f49(); } s0 = s1; @@ -2362,15 +2388,15 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 6); - if (s1.toLowerCase() === peg$c61) { + if (s1.toLowerCase() === peg$c62) { peg$currPos += 6; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e64); } + if (peg$silentFails === 0) { peg$fail(peg$e65); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f49(); + s1 = peg$f50(); } s0 = s1; @@ -2382,15 +2408,15 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 9); - if (s1.toLowerCase() === peg$c62) { + if (s1.toLowerCase() === peg$c63) { peg$currPos += 9; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e65); } + if (peg$silentFails === 0) { peg$fail(peg$e66); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f50(); + s1 = peg$f51(); } s0 = s1; @@ -2401,24 +2427,24 @@ function peg$parse(input, options) { var s0, s1; s0 = input.substr(peg$currPos, 7); - if (s0.toLowerCase() === peg$c63) { + if (s0.toLowerCase() === peg$c64) { peg$currPos += 7; } else { s0 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e66); } + if (peg$silentFails === 0) { peg$fail(peg$e67); } } if (s0 === peg$FAILED) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 8); - if (s1.toLowerCase() === peg$c64) { + if (s1.toLowerCase() === peg$c65) { peg$currPos += 8; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e67); } + if (peg$silentFails === 0) { peg$fail(peg$e68); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f51(); + s1 = peg$f52(); } s0 = s1; } @@ -2431,15 +2457,15 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 5); - if (s1.toLowerCase() === peg$c65) { + if (s1.toLowerCase() === peg$c66) { peg$currPos += 5; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e68); } + if (peg$silentFails === 0) { peg$fail(peg$e69); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f52(); + s1 = peg$f53(); } s0 = s1; @@ -2451,15 +2477,15 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 4); - if (s1.toLowerCase() === peg$c66) { + if (s1.toLowerCase() === peg$c67) { peg$currPos += 4; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e69); } + if (peg$silentFails === 0) { peg$fail(peg$e70); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f53(); + s1 = peg$f54(); } s0 = s1; @@ -2471,15 +2497,15 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 5); - if (s1.toLowerCase() === peg$c67) { + if (s1.toLowerCase() === peg$c68) { peg$currPos += 5; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e70); } + if (peg$silentFails === 0) { peg$fail(peg$e71); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f54(); + s1 = peg$f55(); } s0 = s1; @@ -2490,24 +2516,24 @@ function peg$parse(input, options) { var s0, s1; s0 = input.substr(peg$currPos, 15); - if (s0.toLowerCase() === peg$c68) { + if (s0.toLowerCase() === peg$c69) { peg$currPos += 15; } else { s0 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e71); } + if (peg$silentFails === 0) { peg$fail(peg$e72); } } if (s0 === peg$FAILED) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 17); - if (s1.toLowerCase() === peg$c69) { + if (s1.toLowerCase() === peg$c70) { peg$currPos += 17; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e72); } + if (peg$silentFails === 0) { peg$fail(peg$e73); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f55(); + s1 = peg$f56(); } s0 = s1; } @@ -2519,24 +2545,24 @@ function peg$parse(input, options) { var s0, s1; s0 = input.substr(peg$currPos, 18); - if (s0.toLowerCase() === peg$c70) { + if (s0.toLowerCase() === peg$c71) { peg$currPos += 18; } else { s0 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e73); } + if (peg$silentFails === 0) { peg$fail(peg$e74); } } if (s0 === peg$FAILED) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 20); - if (s1.toLowerCase() === peg$c71) { + if (s1.toLowerCase() === peg$c72) { peg$currPos += 20; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e74); } + if (peg$silentFails === 0) { peg$fail(peg$e75); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f56(); + s1 = peg$f57(); } s0 = s1; } @@ -2548,24 +2574,24 @@ function peg$parse(input, options) { var s0, s1; s0 = input.substr(peg$currPos, 16); - if (s0.toLowerCase() === peg$c72) { + if (s0.toLowerCase() === peg$c73) { peg$currPos += 16; } else { s0 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e75); } + if (peg$silentFails === 0) { peg$fail(peg$e76); } } if (s0 === peg$FAILED) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 18); - if (s1.toLowerCase() === peg$c73) { + if (s1.toLowerCase() === peg$c74) { peg$currPos += 18; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e76); } + if (peg$silentFails === 0) { peg$fail(peg$e77); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f57(); + s1 = peg$f58(); } s0 = s1; } @@ -2578,15 +2604,15 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 8); - if (s1.toLowerCase() === peg$c74) { + if (s1.toLowerCase() === peg$c75) { peg$currPos += 8; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e77); } + if (peg$silentFails === 0) { peg$fail(peg$e78); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f58(); + s1 = peg$f59(); } s0 = s1; @@ -2597,24 +2623,24 @@ function peg$parse(input, options) { var s0, s1; s0 = input.substr(peg$currPos, 9); - if (s0.toLowerCase() === peg$c75) { + if (s0.toLowerCase() === peg$c76) { peg$currPos += 9; } else { s0 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e78); } + if (peg$silentFails === 0) { peg$fail(peg$e79); } } if (s0 === peg$FAILED) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 10); - if (s1.toLowerCase() === peg$c76) { + if (s1.toLowerCase() === peg$c77) { peg$currPos += 10; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e79); } + if (peg$silentFails === 0) { peg$fail(peg$e80); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f59(); + s1 = peg$f60(); } s0 = s1; } @@ -2627,15 +2653,15 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 6); - if (s1.toLowerCase() === peg$c77) { + if (s1.toLowerCase() === peg$c78) { peg$currPos += 6; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e80); } + if (peg$silentFails === 0) { peg$fail(peg$e81); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f60(); + s1 = peg$f61(); } s0 = s1; @@ -2647,15 +2673,15 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 5); - if (s1.toLowerCase() === peg$c78) { + if (s1.toLowerCase() === peg$c79) { peg$currPos += 5; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e81); } + if (peg$silentFails === 0) { peg$fail(peg$e82); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f61(); + s1 = peg$f62(); } s0 = s1; @@ -2667,15 +2693,15 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 3); - if (s1.toLowerCase() === peg$c79) { + if (s1.toLowerCase() === peg$c80) { peg$currPos += 3; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e82); } + if (peg$silentFails === 0) { peg$fail(peg$e83); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f62(); + s1 = peg$f63(); } s0 = s1; @@ -2687,15 +2713,15 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 2); - if (s1.toLowerCase() === peg$c80) { + if (s1.toLowerCase() === peg$c81) { peg$currPos += 2; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e83); } + if (peg$silentFails === 0) { peg$fail(peg$e84); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f63(); + s1 = peg$f64(); } s0 = s1; @@ -2706,24 +2732,24 @@ function peg$parse(input, options) { var s0, s1; s0 = input.substr(peg$currPos, 14); - if (s0.toLowerCase() === peg$c81) { + if (s0.toLowerCase() === peg$c82) { peg$currPos += 14; } else { s0 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e84); } + if (peg$silentFails === 0) { peg$fail(peg$e85); } } if (s0 === peg$FAILED) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 15); - if (s1.toLowerCase() === peg$c82) { + if (s1.toLowerCase() === peg$c83) { peg$currPos += 15; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e85); } + if (peg$silentFails === 0) { peg$fail(peg$e86); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f64(); + s1 = peg$f65(); } s0 = s1; } @@ -2735,24 +2761,24 @@ function peg$parse(input, options) { var s0, s1; s0 = input.substr(peg$currPos, 16); - if (s0.toLowerCase() === peg$c83) { + if (s0.toLowerCase() === peg$c84) { peg$currPos += 16; } else { s0 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e86); } + if (peg$silentFails === 0) { peg$fail(peg$e87); } } if (s0 === peg$FAILED) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 17); - if (s1.toLowerCase() === peg$c84) { + if (s1.toLowerCase() === peg$c85) { peg$currPos += 17; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e87); } + if (peg$silentFails === 0) { peg$fail(peg$e88); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f65(); + s1 = peg$f66(); } s0 = s1; } @@ -2764,24 +2790,24 @@ function peg$parse(input, options) { var s0, s1; s0 = input.substr(peg$currPos, 13); - if (s0.toLowerCase() === peg$c85) { + if (s0.toLowerCase() === peg$c86) { peg$currPos += 13; } else { s0 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e88); } + if (peg$silentFails === 0) { peg$fail(peg$e89); } } if (s0 === peg$FAILED) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 14); - if (s1.toLowerCase() === peg$c86) { + if (s1.toLowerCase() === peg$c87) { peg$currPos += 14; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e89); } + if (peg$silentFails === 0) { peg$fail(peg$e90); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f66(); + s1 = peg$f67(); } s0 = s1; } @@ -2793,24 +2819,24 @@ function peg$parse(input, options) { var s0, s1; s0 = input.substr(peg$currPos, 16); - if (s0.toLowerCase() === peg$c87) { + if (s0.toLowerCase() === peg$c88) { peg$currPos += 16; } else { s0 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e90); } + if (peg$silentFails === 0) { peg$fail(peg$e91); } } if (s0 === peg$FAILED) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 17); - if (s1.toLowerCase() === peg$c88) { + if (s1.toLowerCase() === peg$c89) { peg$currPos += 17; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e91); } + if (peg$silentFails === 0) { peg$fail(peg$e92); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f67(); + s1 = peg$f68(); } s0 = s1; } @@ -2823,15 +2849,15 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 7); - if (s1.toLowerCase() === peg$c89) { + if (s1.toLowerCase() === peg$c90) { peg$currPos += 7; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e92); } + if (peg$silentFails === 0) { peg$fail(peg$e93); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f68(); + s1 = peg$f69(); } s0 = s1; @@ -2843,15 +2869,15 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 4); - if (s1.toLowerCase() === peg$c90) { + if (s1.toLowerCase() === peg$c91) { peg$currPos += 4; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e93); } + if (peg$silentFails === 0) { peg$fail(peg$e94); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f69(); + s1 = peg$f70(); } s0 = s1; @@ -2863,15 +2889,15 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 7); - if (s1.toLowerCase() === peg$c91) { + if (s1.toLowerCase() === peg$c92) { peg$currPos += 7; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e94); } + if (peg$silentFails === 0) { peg$fail(peg$e95); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f70(); + s1 = peg$f71(); } s0 = s1; @@ -2883,7 +2909,7 @@ function peg$parse(input, options) { s0 = peg$currPos; peg$savedPos = peg$currPos; - s1 = peg$f71(); + s1 = peg$f72(); if (s1) { s1 = undefined; } else { @@ -3018,11 +3044,11 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 8); - if (s1.toLowerCase() === peg$c92) { + if (s1.toLowerCase() === peg$c93) { peg$currPos += 8; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e95); } + if (peg$silentFails === 0) { peg$fail(peg$e96); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; @@ -3037,7 +3063,7 @@ function peg$parse(input, options) { } if (s2 !== peg$FAILED) { peg$savedPos = s0; - s0 = peg$f72(); + s0 = peg$f73(); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -3055,19 +3081,19 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 6); - if (s1.toLowerCase() === peg$c93) { + if (s1.toLowerCase() === peg$c94) { peg$currPos += 6; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e96); } + if (peg$silentFails === 0) { peg$fail(peg$e97); } } if (s1 === peg$FAILED) { s1 = input.substr(peg$currPos, 5); - if (s1.toLowerCase() === peg$c94) { + if (s1.toLowerCase() === peg$c95) { peg$currPos += 5; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e97); } + if (peg$silentFails === 0) { peg$fail(peg$e98); } } } if (s1 !== peg$FAILED) { @@ -3083,7 +3109,7 @@ function peg$parse(input, options) { } if (s2 !== peg$FAILED) { peg$savedPos = s0; - s0 = peg$f73(); + s0 = peg$f74(); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -3101,11 +3127,11 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 15); - if (s1.toLowerCase() === peg$c82) { + if (s1.toLowerCase() === peg$c83) { peg$currPos += 15; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e85); } + if (peg$silentFails === 0) { peg$fail(peg$e86); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; @@ -3120,7 +3146,7 @@ function peg$parse(input, options) { } if (s2 !== peg$FAILED) { peg$savedPos = s0; - s0 = peg$f74(); + s0 = peg$f75(); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -3138,11 +3164,11 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 3); - if (s1.toLowerCase() === peg$c95) { + if (s1.toLowerCase() === peg$c96) { peg$currPos += 3; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e98); } + if (peg$silentFails === 0) { peg$fail(peg$e99); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; @@ -3157,7 +3183,7 @@ function peg$parse(input, options) { } if (s2 !== peg$FAILED) { peg$savedPos = s0; - s0 = peg$f75(); + s0 = peg$f76(); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -3194,7 +3220,7 @@ function peg$parse(input, options) { } if (s2 !== peg$FAILED) { peg$savedPos = s0; - s0 = peg$f76(); + s0 = peg$f77(); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -3212,11 +3238,11 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 11); - if (s1.toLowerCase() === peg$c96) { + if (s1.toLowerCase() === peg$c97) { peg$currPos += 11; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e99); } + if (peg$silentFails === 0) { peg$fail(peg$e100); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; @@ -3231,7 +3257,7 @@ function peg$parse(input, options) { } if (s2 !== peg$FAILED) { peg$savedPos = s0; - s0 = peg$f77(); + s0 = peg$f78(); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -3268,7 +3294,7 @@ function peg$parse(input, options) { } if (s2 !== peg$FAILED) { peg$savedPos = s0; - s0 = peg$f78(); + s0 = peg$f79(); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -3305,7 +3331,7 @@ function peg$parse(input, options) { } if (s2 !== peg$FAILED) { peg$savedPos = s0; - s0 = peg$f79(); + s0 = peg$f80(); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -3323,11 +3349,11 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 14); - if (s1.toLowerCase() === peg$c97) { + if (s1.toLowerCase() === peg$c98) { peg$currPos += 14; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e100); } + if (peg$silentFails === 0) { peg$fail(peg$e101); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; @@ -3342,7 +3368,7 @@ function peg$parse(input, options) { } if (s2 !== peg$FAILED) { peg$savedPos = s0; - s0 = peg$f80(); + s0 = peg$f81(); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -3379,7 +3405,7 @@ function peg$parse(input, options) { } if (s2 !== peg$FAILED) { peg$savedPos = s0; - s0 = peg$f81(); + s0 = peg$f82(); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -3397,11 +3423,11 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 11); - if (s1.toLowerCase() === peg$c98) { + if (s1.toLowerCase() === peg$c99) { peg$currPos += 11; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e101); } + if (peg$silentFails === 0) { peg$fail(peg$e102); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; @@ -3416,7 +3442,7 @@ function peg$parse(input, options) { } if (s2 !== peg$FAILED) { peg$savedPos = s0; - s0 = peg$f82(); + s0 = peg$f83(); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -3441,7 +3467,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s2 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e102); } + if (peg$silentFails === 0) { peg$fail(peg$e103); } } if (s2 !== peg$FAILED) { s1 = [s1, s2]; @@ -3460,11 +3486,11 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 10); - if (s1.toLowerCase() === peg$c99) { + if (s1.toLowerCase() === peg$c100) { peg$currPos += 10; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e103); } + if (peg$silentFails === 0) { peg$fail(peg$e104); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; @@ -3479,7 +3505,7 @@ function peg$parse(input, options) { } if (s2 !== peg$FAILED) { peg$savedPos = s0; - s0 = peg$f83(); + s0 = peg$f84(); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -3491,11 +3517,11 @@ function peg$parse(input, options) { if (s0 === peg$FAILED) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 11); - if (s1.toLowerCase() === peg$c98) { + if (s1.toLowerCase() === peg$c99) { peg$currPos += 11; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e101); } + if (peg$silentFails === 0) { peg$fail(peg$e102); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; @@ -3510,7 +3536,7 @@ function peg$parse(input, options) { } if (s2 !== peg$FAILED) { peg$savedPos = s0; - s0 = peg$f84(); + s0 = peg$f85(); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -3529,11 +3555,11 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 13); - if (s1.toLowerCase() === peg$c100) { + if (s1.toLowerCase() === peg$c101) { peg$currPos += 13; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e104); } + if (peg$silentFails === 0) { peg$fail(peg$e105); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; @@ -3548,7 +3574,7 @@ function peg$parse(input, options) { } if (s2 !== peg$FAILED) { peg$savedPos = s0; - s0 = peg$f85(); + s0 = peg$f86(); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -3566,11 +3592,11 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 18); - if (s1.toLowerCase() === peg$c101) { + if (s1.toLowerCase() === peg$c102) { peg$currPos += 18; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e105); } + if (peg$silentFails === 0) { peg$fail(peg$e106); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; @@ -3585,7 +3611,7 @@ function peg$parse(input, options) { } if (s2 !== peg$FAILED) { peg$savedPos = s0; - s0 = peg$f86(); + s0 = peg$f87(); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -3603,11 +3629,11 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 22); - if (s1.toLowerCase() === peg$c102) { + if (s1.toLowerCase() === peg$c103) { peg$currPos += 22; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e106); } + if (peg$silentFails === 0) { peg$fail(peg$e107); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; @@ -3622,7 +3648,7 @@ function peg$parse(input, options) { } if (s2 !== peg$FAILED) { peg$savedPos = s0; - s0 = peg$f87(); + s0 = peg$f88(); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -3640,11 +3666,11 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 10); - if (s1.toLowerCase() === peg$c103) { + if (s1.toLowerCase() === peg$c104) { peg$currPos += 10; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e107); } + if (peg$silentFails === 0) { peg$fail(peg$e108); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; @@ -3659,7 +3685,7 @@ function peg$parse(input, options) { } if (s2 !== peg$FAILED) { peg$savedPos = s0; - s0 = peg$f88(); + s0 = peg$f89(); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -3677,11 +3703,11 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 14); - if (s1.toLowerCase() === peg$c104) { + if (s1.toLowerCase() === peg$c105) { peg$currPos += 14; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e108); } + if (peg$silentFails === 0) { peg$fail(peg$e109); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; @@ -3696,7 +3722,7 @@ function peg$parse(input, options) { } if (s2 !== peg$FAILED) { peg$savedPos = s0; - s0 = peg$f89(); + s0 = peg$f90(); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -3714,11 +3740,11 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 11); - if (s1.toLowerCase() === peg$c105) { + if (s1.toLowerCase() === peg$c106) { peg$currPos += 11; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e109); } + if (peg$silentFails === 0) { peg$fail(peg$e110); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; @@ -3733,7 +3759,7 @@ function peg$parse(input, options) { } if (s2 !== peg$FAILED) { peg$savedPos = s0; - s0 = peg$f90(); + s0 = peg$f91(); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -3751,11 +3777,11 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 10); - if (s1.toLowerCase() === peg$c106) { + if (s1.toLowerCase() === peg$c107) { peg$currPos += 10; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e110); } + if (peg$silentFails === 0) { peg$fail(peg$e111); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; @@ -3770,7 +3796,7 @@ function peg$parse(input, options) { } if (s2 !== peg$FAILED) { peg$savedPos = s0; - s0 = peg$f91(); + s0 = peg$f92(); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -3788,11 +3814,11 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 10); - if (s1.toLowerCase() === peg$c107) { + if (s1.toLowerCase() === peg$c108) { peg$currPos += 10; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e111); } + if (peg$silentFails === 0) { peg$fail(peg$e112); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; @@ -3807,7 +3833,7 @@ function peg$parse(input, options) { } if (s2 !== peg$FAILED) { peg$savedPos = s0; - s0 = peg$f92(); + s0 = peg$f93(); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -3825,11 +3851,11 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 18); - if (s1.toLowerCase() === peg$c108) { + if (s1.toLowerCase() === peg$c109) { peg$currPos += 18; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e112); } + if (peg$silentFails === 0) { peg$fail(peg$e113); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; @@ -3844,7 +3870,7 @@ function peg$parse(input, options) { } if (s2 !== peg$FAILED) { peg$savedPos = s0; - s0 = peg$f93(); + s0 = peg$f94(); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -3862,11 +3888,11 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 15); - if (s1.toLowerCase() === peg$c109) { + if (s1.toLowerCase() === peg$c110) { peg$currPos += 15; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e113); } + if (peg$silentFails === 0) { peg$fail(peg$e114); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; @@ -3881,7 +3907,7 @@ function peg$parse(input, options) { } if (s2 !== peg$FAILED) { peg$savedPos = s0; - s0 = peg$f94(); + s0 = peg$f95(); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -3899,11 +3925,11 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 19); - if (s1.toLowerCase() === peg$c110) { + if (s1.toLowerCase() === peg$c111) { peg$currPos += 19; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e114); } + if (peg$silentFails === 0) { peg$fail(peg$e115); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; @@ -3918,7 +3944,7 @@ function peg$parse(input, options) { } if (s2 !== peg$FAILED) { peg$savedPos = s0; - s0 = peg$f95(); + s0 = peg$f96(); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -3936,11 +3962,11 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 20); - if (s1.toLowerCase() === peg$c111) { + if (s1.toLowerCase() === peg$c112) { peg$currPos += 20; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e115); } + if (peg$silentFails === 0) { peg$fail(peg$e116); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; @@ -3955,7 +3981,7 @@ function peg$parse(input, options) { } if (s2 !== peg$FAILED) { peg$savedPos = s0; - s0 = peg$f96(); + s0 = peg$f97(); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -3973,11 +3999,11 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 23); - if (s1.toLowerCase() === peg$c112) { + if (s1.toLowerCase() === peg$c113) { peg$currPos += 23; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e116); } + if (peg$silentFails === 0) { peg$fail(peg$e117); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; @@ -3992,7 +4018,7 @@ function peg$parse(input, options) { } if (s2 !== peg$FAILED) { peg$savedPos = s0; - s0 = peg$f97(); + s0 = peg$f98(); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -4010,11 +4036,11 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 14); - if (s1.toLowerCase() === peg$c86) { + if (s1.toLowerCase() === peg$c87) { peg$currPos += 14; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e89); } + if (peg$silentFails === 0) { peg$fail(peg$e90); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; @@ -4029,7 +4055,7 @@ function peg$parse(input, options) { } if (s2 !== peg$FAILED) { peg$savedPos = s0; - s0 = peg$f98(); + s0 = peg$f99(); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -4047,11 +4073,11 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 17); - if (s1.toLowerCase() === peg$c88) { + if (s1.toLowerCase() === peg$c89) { peg$currPos += 17; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e91); } + if (peg$silentFails === 0) { peg$fail(peg$e92); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; @@ -4066,7 +4092,7 @@ function peg$parse(input, options) { } if (s2 !== peg$FAILED) { peg$savedPos = s0; - s0 = peg$f99(); + s0 = peg$f100(); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -4084,11 +4110,11 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 14); - if (s1.toLowerCase() === peg$c113) { + if (s1.toLowerCase() === peg$c114) { peg$currPos += 14; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e117); } + if (peg$silentFails === 0) { peg$fail(peg$e118); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; @@ -4103,7 +4129,7 @@ function peg$parse(input, options) { } if (s2 !== peg$FAILED) { peg$savedPos = s0; - s0 = peg$f100(); + s0 = peg$f101(); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -4121,11 +4147,11 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 9); - if (s1.toLowerCase() === peg$c114) { + if (s1.toLowerCase() === peg$c115) { peg$currPos += 9; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e118); } + if (peg$silentFails === 0) { peg$fail(peg$e119); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; @@ -4140,7 +4166,7 @@ function peg$parse(input, options) { } if (s2 !== peg$FAILED) { peg$savedPos = s0; - s0 = peg$f101(); + s0 = peg$f102(); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -4158,11 +4184,11 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 14); - if (s1.toLowerCase() === peg$c115) { + if (s1.toLowerCase() === peg$c116) { peg$currPos += 14; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e119); } + if (peg$silentFails === 0) { peg$fail(peg$e120); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; @@ -4177,7 +4203,7 @@ function peg$parse(input, options) { } if (s2 !== peg$FAILED) { peg$savedPos = s0; - s0 = peg$f102(); + s0 = peg$f103(); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -4195,11 +4221,11 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 9); - if (s1.toLowerCase() === peg$c116) { + if (s1.toLowerCase() === peg$c117) { peg$currPos += 9; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e120); } + if (peg$silentFails === 0) { peg$fail(peg$e121); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; @@ -4214,7 +4240,7 @@ function peg$parse(input, options) { } if (s2 !== peg$FAILED) { peg$savedPos = s0; - s0 = peg$f103(); + s0 = peg$f104(); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -4232,11 +4258,11 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 11); - if (s1.toLowerCase() === peg$c117) { + if (s1.toLowerCase() === peg$c118) { peg$currPos += 11; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e121); } + if (peg$silentFails === 0) { peg$fail(peg$e122); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; @@ -4251,7 +4277,7 @@ function peg$parse(input, options) { } if (s2 !== peg$FAILED) { peg$savedPos = s0; - s0 = peg$f104(); + s0 = peg$f105(); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -4269,11 +4295,11 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 10); - if (s1.toLowerCase() === peg$c118) { + if (s1.toLowerCase() === peg$c119) { peg$currPos += 10; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e122); } + if (peg$silentFails === 0) { peg$fail(peg$e123); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; @@ -4288,7 +4314,7 @@ function peg$parse(input, options) { } if (s2 !== peg$FAILED) { peg$savedPos = s0; - s0 = peg$f105(); + s0 = peg$f106(); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -4306,11 +4332,11 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 10); - if (s1.toLowerCase() === peg$c119) { + if (s1.toLowerCase() === peg$c120) { peg$currPos += 10; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e123); } + if (peg$silentFails === 0) { peg$fail(peg$e124); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; @@ -4325,7 +4351,7 @@ function peg$parse(input, options) { } if (s2 !== peg$FAILED) { peg$savedPos = s0; - s0 = peg$f106(); + s0 = peg$f107(); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -4343,11 +4369,11 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 13); - if (s1.toLowerCase() === peg$c120) { + if (s1.toLowerCase() === peg$c121) { peg$currPos += 13; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e124); } + if (peg$silentFails === 0) { peg$fail(peg$e125); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; @@ -4362,7 +4388,7 @@ function peg$parse(input, options) { } if (s2 !== peg$FAILED) { peg$savedPos = s0; - s0 = peg$f107(); + s0 = peg$f108(); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -4380,16 +4406,16 @@ function peg$parse(input, options) { peg$silentFails++; s0 = peg$currPos; - if (input.substr(peg$currPos, 2) === peg$c121) { - s1 = peg$c121; + if (input.substr(peg$currPos, 2) === peg$c122) { + s1 = peg$c122; peg$currPos += 2; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e126); } + if (peg$silentFails === 0) { peg$fail(peg$e127); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f108(); + s1 = peg$f109(); } s0 = s1; if (s0 === peg$FAILED) { @@ -4399,81 +4425,81 @@ function peg$parse(input, options) { peg$currPos++; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e102); } + if (peg$silentFails === 0) { peg$fail(peg$e103); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f109(); + s1 = peg$f110(); } s0 = s1; if (s0 === peg$FAILED) { s0 = peg$currPos; - if (input.substr(peg$currPos, 2) === peg$c122) { - s1 = peg$c122; + if (input.substr(peg$currPos, 2) === peg$c123) { + s1 = peg$c123; peg$currPos += 2; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e127); } + if (peg$silentFails === 0) { peg$fail(peg$e128); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f110(); + s1 = peg$f111(); } s0 = s1; if (s0 === peg$FAILED) { s0 = peg$currPos; - if (input.substr(peg$currPos, 2) === peg$c123) { - s1 = peg$c123; + if (input.substr(peg$currPos, 2) === peg$c124) { + s1 = peg$c124; peg$currPos += 2; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e128); } + if (peg$silentFails === 0) { peg$fail(peg$e129); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f111(); + s1 = peg$f112(); } s0 = s1; if (s0 === peg$FAILED) { s0 = peg$currPos; if (input.charCodeAt(peg$currPos) === 62) { - s1 = peg$c124; + s1 = peg$c125; peg$currPos++; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e129); } + if (peg$silentFails === 0) { peg$fail(peg$e130); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f112(); + s1 = peg$f113(); } s0 = s1; if (s0 === peg$FAILED) { s0 = peg$currPos; - if (input.substr(peg$currPos, 2) === peg$c125) { - s1 = peg$c125; + if (input.substr(peg$currPos, 2) === peg$c126) { + s1 = peg$c126; peg$currPos += 2; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e130); } + if (peg$silentFails === 0) { peg$fail(peg$e131); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f113(); + s1 = peg$f114(); } s0 = s1; if (s0 === peg$FAILED) { s0 = peg$currPos; if (input.charCodeAt(peg$currPos) === 60) { - s1 = peg$c126; + s1 = peg$c127; peg$currPos++; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e131); } + if (peg$silentFails === 0) { peg$fail(peg$e132); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f114(); + s1 = peg$f115(); } s0 = s1; } @@ -4485,7 +4511,7 @@ function peg$parse(input, options) { peg$silentFails--; if (s0 === peg$FAILED) { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e125); } + if (peg$silentFails === 0) { peg$fail(peg$e126); } } return s0; @@ -4498,7 +4524,7 @@ function peg$parse(input, options) { s1 = peg$parseoperator(); if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f115(s1); + s1 = peg$f116(s1); } s0 = s1; @@ -4510,11 +4536,11 @@ function peg$parse(input, options) { s0 = peg$currPos; if (input.charCodeAt(peg$currPos) === 92) { - s1 = peg$c127; + s1 = peg$c128; peg$currPos++; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e132); } + if (peg$silentFails === 0) { peg$fail(peg$e133); } } if (s1 !== peg$FAILED) { s2 = input.charAt(peg$currPos); @@ -4522,11 +4548,11 @@ function peg$parse(input, options) { peg$currPos++; } else { s2 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e133); } + if (peg$silentFails === 0) { peg$fail(peg$e134); } } if (s2 !== peg$FAILED) { peg$savedPos = s0; - s0 = peg$f116(s2); + s0 = peg$f117(s2); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -4552,7 +4578,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s2 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e135); } + if (peg$silentFails === 0) { peg$fail(peg$e136); } } } if (s2 !== peg$FAILED) { @@ -4565,7 +4591,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s2 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e135); } + if (peg$silentFails === 0) { peg$fail(peg$e136); } } } } @@ -4574,13 +4600,13 @@ function peg$parse(input, options) { } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f117(s1); + s1 = peg$f118(s1); } s0 = s1; peg$silentFails--; if (s0 === peg$FAILED) { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e134); } + if (peg$silentFails === 0) { peg$fail(peg$e135); } } return s0; @@ -4592,7 +4618,7 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = peg$parse_(); peg$savedPos = s0; - s1 = peg$f118(); + s1 = peg$f119(); s0 = s1; return s0; @@ -4608,7 +4634,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e137); } + if (peg$silentFails === 0) { peg$fail(peg$e138); } } while (s1 !== peg$FAILED) { s0.push(s1); @@ -4617,12 +4643,12 @@ function peg$parse(input, options) { peg$currPos++; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e137); } + if (peg$silentFails === 0) { peg$fail(peg$e138); } } } peg$silentFails--; s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e136); } + if (peg$silentFails === 0) { peg$fail(peg$e137); } return s0; } @@ -4632,7 +4658,7 @@ function peg$parse(input, options) { s0 = peg$currPos; peg$savedPos = peg$currPos; - s1 = peg$f119(); + s1 = peg$f120(); if (s1) { s1 = undefined; } else { @@ -4669,7 +4695,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s2 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e139); } + if (peg$silentFails === 0) { peg$fail(peg$e140); } } while (s2 !== peg$FAILED) { s1.push(s2); @@ -4678,7 +4704,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s2 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e139); } + if (peg$silentFails === 0) { peg$fail(peg$e140); } } } s2 = input.charAt(peg$currPos); @@ -4686,7 +4712,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s2 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e140); } + if (peg$silentFails === 0) { peg$fail(peg$e141); } } if (s2 !== peg$FAILED) { s3 = []; @@ -4697,7 +4723,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s4 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e141); } + if (peg$silentFails === 0) { peg$fail(peg$e142); } } } while (s4 !== peg$FAILED) { @@ -4709,7 +4735,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s4 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e141); } + if (peg$silentFails === 0) { peg$fail(peg$e142); } } } } @@ -4718,7 +4744,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s4 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e140); } + if (peg$silentFails === 0) { peg$fail(peg$e141); } } if (s4 !== peg$FAILED) { s5 = []; @@ -4727,7 +4753,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s6 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e135); } + if (peg$silentFails === 0) { peg$fail(peg$e136); } } while (s6 !== peg$FAILED) { s5.push(s6); @@ -4736,11 +4762,11 @@ function peg$parse(input, options) { peg$currPos++; } else { s6 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e135); } + if (peg$silentFails === 0) { peg$fail(peg$e136); } } } peg$savedPos = s0; - s0 = peg$f120(s1, s3, s5); + s0 = peg$f121(s1, s3, s5); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -4752,7 +4778,7 @@ function peg$parse(input, options) { peg$silentFails--; if (s0 === peg$FAILED) { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e138); } + if (peg$silentFails === 0) { peg$fail(peg$e139); } } return s0; @@ -4769,7 +4795,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s2 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e139); } + if (peg$silentFails === 0) { peg$fail(peg$e140); } } while (s2 !== peg$FAILED) { s1.push(s2); @@ -4778,7 +4804,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s2 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e139); } + if (peg$silentFails === 0) { peg$fail(peg$e140); } } } s2 = input.charAt(peg$currPos); @@ -4786,7 +4812,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s2 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e140); } + if (peg$silentFails === 0) { peg$fail(peg$e141); } } if (s2 !== peg$FAILED) { s3 = []; @@ -4797,7 +4823,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s4 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e141); } + if (peg$silentFails === 0) { peg$fail(peg$e142); } } if (s4 === peg$FAILED) { s4 = peg$currPos; @@ -4813,15 +4839,15 @@ function peg$parse(input, options) { } if (s5 !== peg$FAILED) { if (input.charCodeAt(peg$currPos) === 8220) { - s6 = peg$c128; + s6 = peg$c129; peg$currPos++; } else { s6 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e142); } + if (peg$silentFails === 0) { peg$fail(peg$e143); } } if (s6 !== peg$FAILED) { peg$savedPos = s4; - s4 = peg$f121(s1); + s4 = peg$f122(s1); } else { peg$currPos = s4; s4 = peg$FAILED; @@ -4844,15 +4870,15 @@ function peg$parse(input, options) { } if (s5 !== peg$FAILED) { if (input.charCodeAt(peg$currPos) === 8221) { - s6 = peg$c129; + s6 = peg$c130; peg$currPos++; } else { s6 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e143); } + if (peg$silentFails === 0) { peg$fail(peg$e144); } } if (s6 !== peg$FAILED) { peg$savedPos = s4; - s4 = peg$f122(s1); + s4 = peg$f123(s1); } else { peg$currPos = s4; s4 = peg$FAILED; @@ -4875,15 +4901,15 @@ function peg$parse(input, options) { } if (s5 !== peg$FAILED) { if (input.charCodeAt(peg$currPos) === 34) { - s6 = peg$c130; + s6 = peg$c131; peg$currPos++; } else { s6 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e144); } + if (peg$silentFails === 0) { peg$fail(peg$e145); } } if (s6 !== peg$FAILED) { peg$savedPos = s4; - s4 = peg$f123(s1); + s4 = peg$f124(s1); } else { peg$currPos = s4; s4 = peg$FAILED; @@ -4905,7 +4931,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s4 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e141); } + if (peg$silentFails === 0) { peg$fail(peg$e142); } } if (s4 === peg$FAILED) { s4 = peg$currPos; @@ -4921,15 +4947,15 @@ function peg$parse(input, options) { } if (s5 !== peg$FAILED) { if (input.charCodeAt(peg$currPos) === 8220) { - s6 = peg$c128; + s6 = peg$c129; peg$currPos++; } else { s6 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e142); } + if (peg$silentFails === 0) { peg$fail(peg$e143); } } if (s6 !== peg$FAILED) { peg$savedPos = s4; - s4 = peg$f121(s1); + s4 = peg$f122(s1); } else { peg$currPos = s4; s4 = peg$FAILED; @@ -4952,15 +4978,15 @@ function peg$parse(input, options) { } if (s5 !== peg$FAILED) { if (input.charCodeAt(peg$currPos) === 8221) { - s6 = peg$c129; + s6 = peg$c130; peg$currPos++; } else { s6 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e143); } + if (peg$silentFails === 0) { peg$fail(peg$e144); } } if (s6 !== peg$FAILED) { peg$savedPos = s4; - s4 = peg$f122(s1); + s4 = peg$f123(s1); } else { peg$currPos = s4; s4 = peg$FAILED; @@ -4983,15 +5009,15 @@ function peg$parse(input, options) { } if (s5 !== peg$FAILED) { if (input.charCodeAt(peg$currPos) === 34) { - s6 = peg$c130; + s6 = peg$c131; peg$currPos++; } else { s6 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e144); } + if (peg$silentFails === 0) { peg$fail(peg$e145); } } if (s6 !== peg$FAILED) { peg$savedPos = s4; - s4 = peg$f123(s1); + s4 = peg$f124(s1); } else { peg$currPos = s4; s4 = peg$FAILED; @@ -5008,7 +5034,7 @@ function peg$parse(input, options) { s4 = peg$parseclosingQuote(); if (s4 !== peg$FAILED) { peg$savedPos = s0; - s0 = peg$f124(s1, s3, s4); + s0 = peg$f125(s1, s3, s4); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -5020,7 +5046,7 @@ function peg$parse(input, options) { peg$silentFails--; if (s0 === peg$FAILED) { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e138); } + if (peg$silentFails === 0) { peg$fail(peg$e139); } } return s0; @@ -5035,7 +5061,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e140); } + if (peg$silentFails === 0) { peg$fail(peg$e141); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; @@ -5073,7 +5099,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s2 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e145); } + if (peg$silentFails === 0) { peg$fail(peg$e146); } } while (s2 !== peg$FAILED) { s1.push(s2); @@ -5082,7 +5108,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s2 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e145); } + if (peg$silentFails === 0) { peg$fail(peg$e146); } } } s2 = []; @@ -5091,7 +5117,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s3 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e146); } + if (peg$silentFails === 0) { peg$fail(peg$e147); } } while (s3 !== peg$FAILED) { s2.push(s3); @@ -5100,7 +5126,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s3 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e146); } + if (peg$silentFails === 0) { peg$fail(peg$e147); } } } s3 = []; @@ -5109,7 +5135,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s4 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e147); } + if (peg$silentFails === 0) { peg$fail(peg$e148); } } while (s4 !== peg$FAILED) { s3.push(s4); @@ -5118,7 +5144,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s4 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e147); } + if (peg$silentFails === 0) { peg$fail(peg$e148); } } } s4 = peg$parseoperator(); @@ -5137,7 +5163,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s2 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e148); } + if (peg$silentFails === 0) { peg$fail(peg$e149); } } while (s2 !== peg$FAILED) { s1.push(s2); @@ -5146,7 +5172,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s2 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e148); } + if (peg$silentFails === 0) { peg$fail(peg$e149); } } } s2 = peg$currPos; @@ -5193,7 +5219,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s0 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e149); } + if (peg$silentFails === 0) { peg$fail(peg$e150); } } } } @@ -5209,7 +5235,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s0 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e150); } + if (peg$silentFails === 0) { peg$fail(peg$e151); } } if (s0 === peg$FAILED) { s0 = peg$currPos; @@ -5238,24 +5264,24 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 11); - if (s1.toLowerCase() === peg$c131) { + if (s1.toLowerCase() === peg$c132) { peg$currPos += 11; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e151); } + if (peg$silentFails === 0) { peg$fail(peg$e152); } } if (s1 === peg$FAILED) { s1 = input.substr(peg$currPos, 12); - if (s1.toLowerCase() === peg$c132) { + if (s1.toLowerCase() === peg$c133) { peg$currPos += 12; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e152); } + if (peg$silentFails === 0) { peg$fail(peg$e153); } } } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f125(); + s1 = peg$f126(); } s0 = s1; @@ -5267,24 +5293,24 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 14); - if (s1.toLowerCase() === peg$c133) { + if (s1.toLowerCase() === peg$c134) { peg$currPos += 14; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e153); } + if (peg$silentFails === 0) { peg$fail(peg$e154); } } if (s1 === peg$FAILED) { s1 = input.substr(peg$currPos, 15); - if (s1.toLowerCase() === peg$c134) { + if (s1.toLowerCase() === peg$c135) { peg$currPos += 15; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e154); } + if (peg$silentFails === 0) { peg$fail(peg$e155); } } } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f126(); + s1 = peg$f127(); } s0 = s1; @@ -5296,24 +5322,24 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 11); - if (s1.toLowerCase() === peg$c135) { + if (s1.toLowerCase() === peg$c136) { peg$currPos += 11; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e155); } + if (peg$silentFails === 0) { peg$fail(peg$e156); } } if (s1 === peg$FAILED) { s1 = input.substr(peg$currPos, 12); - if (s1.toLowerCase() === peg$c136) { + if (s1.toLowerCase() === peg$c137) { peg$currPos += 12; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e156); } + if (peg$silentFails === 0) { peg$fail(peg$e157); } } } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f127(); + s1 = peg$f128(); } s0 = s1; diff --git a/src/libs/SearchParser/autocompleteParser.peggy b/src/libs/SearchParser/autocompleteParser.peggy index 966f5aec3edf..35dae8ec51d3 100644 --- a/src/libs/SearchParser/autocompleteParser.peggy +++ b/src/libs/SearchParser/autocompleteParser.peggy @@ -112,6 +112,7 @@ autocompleteKey "key" / reimbursable / billable / declined + / held / policyID / action / date diff --git a/src/libs/SearchParser/baseRules.peggy b/src/libs/SearchParser/baseRules.peggy index 3cecfde34284..b89c857c3875 100644 --- a/src/libs/SearchParser/baseRules.peggy +++ b/src/libs/SearchParser/baseRules.peggy @@ -69,6 +69,7 @@ withdrawalID / "withdrawal-id"i { return "withdrawalID"; } billable = "billable"i { return "billable"; } declined = "declined"i { return "declined"; } +held = "held"i { return "held"; } reimbursable = "reimbursable"i { return "reimbursable"; } type = "type"i { return "type"; } status = "status"i { return "status"; } diff --git a/src/libs/SearchParser/searchParser.js b/src/libs/SearchParser/searchParser.js index ac786bf9fe6f..c495e910937b 100644 --- a/src/libs/SearchParser/searchParser.js +++ b/src/libs/SearchParser/searchParser.js @@ -230,97 +230,98 @@ function peg$parse(input, options) { var peg$c43 = "withdrawal-id"; var peg$c44 = "billable"; var peg$c45 = "declined"; - var peg$c46 = "reimbursable"; - var peg$c47 = "type"; - var peg$c48 = "status"; - var peg$c49 = "sortBy"; - var peg$c50 = "sort-by"; - var peg$c51 = "sortOrder"; - var peg$c52 = "sort-order"; - var peg$c53 = "policyID"; - var peg$c54 = "workspace"; - var peg$c55 = "submitted"; - var peg$c56 = "approved"; - var peg$c57 = "anyapproval"; - var peg$c58 = "any-approval"; - var peg$c59 = "paid"; - var peg$c60 = "exported"; - var peg$c61 = "posted"; - var peg$c62 = "withdrawn"; - var peg$c63 = "groupby"; - var peg$c64 = "group-by"; - var peg$c65 = "limit"; - var peg$c66 = "feed"; - var peg$c67 = "title"; - var peg$c68 = "submitteruserid"; - var peg$c69 = "submitter-user-id"; - var peg$c70 = "submitterpayrollid"; - var peg$c71 = "submitter-payroll-id"; - var peg$c72 = "orderdealnumbers"; - var peg$c73 = "order-deal-numbers"; - var peg$c74 = "assignee"; - var peg$c75 = "createdby"; - var peg$c76 = "created-by"; - var peg$c77 = "action"; - var peg$c78 = "total"; - var peg$c79 = "has"; - var peg$c80 = "is"; - var peg$c81 = "purchaseamount"; - var peg$c82 = "purchase-amount"; - var peg$c83 = "purchasecurrency"; - var peg$c84 = "purchase-currency"; - var peg$c85 = "amountdebited"; - var peg$c86 = "amount-debited"; - var peg$c87 = "amountreimbursed"; - var peg$c88 = "amount-reimbursed"; - var peg$c89 = "columns"; - var peg$c90 = "view"; - var peg$c91 = "compare"; - var peg$c92 = "per-diem"; - var peg$c93 = "drafts"; - var peg$c94 = "draft"; - var peg$c95 = "tax"; - var peg$c96 = "policy-name"; - var peg$c97 = "long-report-id"; - var peg$c98 = "exported-to"; - var peg$c99 = "exportedto"; - var peg$c100 = "exchange-rate"; - var peg$c101 = "reimbursable-total"; - var peg$c102 = "non-reimbursable-total"; - var peg$c103 = "group-from"; - var peg$c104 = "group-expenses"; - var peg$c105 = "group-total"; - var peg$c106 = "group-card"; - var peg$c107 = "group-feed"; - var peg$c108 = "group-bank-account"; - var peg$c109 = "group-withdrawn"; - var peg$c110 = "group-withdrawal-id"; - var peg$c111 = "group-amount-debited"; - var peg$c112 = "group-amount-reimbursed"; - var peg$c113 = "group-category"; - var peg$c114 = "group-tag"; - var peg$c115 = "group-merchant"; - var peg$c116 = "group-day"; - var peg$c117 = "group-month"; - var peg$c118 = "group-week"; - var peg$c119 = "group-year"; - var peg$c120 = "group-quarter"; - var peg$c121 = "*:"; - var peg$c122 = "!="; - var peg$c123 = ">="; - var peg$c124 = ">"; - var peg$c125 = "<="; - var peg$c126 = "<"; - var peg$c127 = "\\"; - var peg$c128 = "\u201C"; - var peg$c129 = "\u201D"; - var peg$c130 = "\""; - var peg$c131 = "footercount"; - var peg$c132 = "footer-count"; - var peg$c133 = "footercurrency"; - var peg$c134 = "footer-currency"; - var peg$c135 = "footertotal"; - var peg$c136 = "footer-total"; + var peg$c46 = "held"; + var peg$c47 = "reimbursable"; + var peg$c48 = "type"; + var peg$c49 = "status"; + var peg$c50 = "sortBy"; + var peg$c51 = "sort-by"; + var peg$c52 = "sortOrder"; + var peg$c53 = "sort-order"; + var peg$c54 = "policyID"; + var peg$c55 = "workspace"; + var peg$c56 = "submitted"; + var peg$c57 = "approved"; + var peg$c58 = "anyapproval"; + var peg$c59 = "any-approval"; + var peg$c60 = "paid"; + var peg$c61 = "exported"; + var peg$c62 = "posted"; + var peg$c63 = "withdrawn"; + var peg$c64 = "groupby"; + var peg$c65 = "group-by"; + var peg$c66 = "limit"; + var peg$c67 = "feed"; + var peg$c68 = "title"; + var peg$c69 = "submitteruserid"; + var peg$c70 = "submitter-user-id"; + var peg$c71 = "submitterpayrollid"; + var peg$c72 = "submitter-payroll-id"; + var peg$c73 = "orderdealnumbers"; + var peg$c74 = "order-deal-numbers"; + var peg$c75 = "assignee"; + var peg$c76 = "createdby"; + var peg$c77 = "created-by"; + var peg$c78 = "action"; + var peg$c79 = "total"; + var peg$c80 = "has"; + var peg$c81 = "is"; + var peg$c82 = "purchaseamount"; + var peg$c83 = "purchase-amount"; + var peg$c84 = "purchasecurrency"; + var peg$c85 = "purchase-currency"; + var peg$c86 = "amountdebited"; + var peg$c87 = "amount-debited"; + var peg$c88 = "amountreimbursed"; + var peg$c89 = "amount-reimbursed"; + var peg$c90 = "columns"; + var peg$c91 = "view"; + var peg$c92 = "compare"; + var peg$c93 = "per-diem"; + var peg$c94 = "drafts"; + var peg$c95 = "draft"; + var peg$c96 = "tax"; + var peg$c97 = "policy-name"; + var peg$c98 = "long-report-id"; + var peg$c99 = "exported-to"; + var peg$c100 = "exportedto"; + var peg$c101 = "exchange-rate"; + var peg$c102 = "reimbursable-total"; + var peg$c103 = "non-reimbursable-total"; + var peg$c104 = "group-from"; + var peg$c105 = "group-expenses"; + var peg$c106 = "group-total"; + var peg$c107 = "group-card"; + var peg$c108 = "group-feed"; + var peg$c109 = "group-bank-account"; + var peg$c110 = "group-withdrawn"; + var peg$c111 = "group-withdrawal-id"; + var peg$c112 = "group-amount-debited"; + var peg$c113 = "group-amount-reimbursed"; + var peg$c114 = "group-category"; + var peg$c115 = "group-tag"; + var peg$c116 = "group-merchant"; + var peg$c117 = "group-day"; + var peg$c118 = "group-month"; + var peg$c119 = "group-week"; + var peg$c120 = "group-year"; + var peg$c121 = "group-quarter"; + var peg$c122 = "*:"; + var peg$c123 = "!="; + var peg$c124 = ">="; + var peg$c125 = ">"; + var peg$c126 = "<="; + var peg$c127 = "<"; + var peg$c128 = "\\"; + var peg$c129 = "\u201C"; + var peg$c130 = "\u201D"; + var peg$c131 = "\""; + var peg$c132 = "footercount"; + var peg$c133 = "footer-count"; + var peg$c134 = "footercurrency"; + var peg$c135 = "footer-currency"; + var peg$c136 = "footertotal"; + var peg$c137 = "footer-total"; var peg$r0 = /^[^ \t\r\n\xA0]/; var peg$r1 = /^[ \t\r\n\xA0,:=<>!]/; @@ -389,114 +390,115 @@ function peg$parse(input, options) { var peg$e48 = peg$literalExpectation("withdrawal-id", true); var peg$e49 = peg$literalExpectation("billable", true); var peg$e50 = peg$literalExpectation("declined", true); - var peg$e51 = peg$literalExpectation("reimbursable", true); - var peg$e52 = peg$literalExpectation("type", true); - var peg$e53 = peg$literalExpectation("status", true); - var peg$e54 = peg$literalExpectation("sortBy", false); - var peg$e55 = peg$literalExpectation("sort-by", true); - var peg$e56 = peg$literalExpectation("sortOrder", false); - var peg$e57 = peg$literalExpectation("sort-order", true); - var peg$e58 = peg$literalExpectation("policyID", false); - var peg$e59 = peg$literalExpectation("workspace", true); - var peg$e60 = peg$literalExpectation("submitted", true); - var peg$e61 = peg$literalExpectation("approved", true); - var peg$e62 = peg$literalExpectation("anyApproval", true); - var peg$e63 = peg$literalExpectation("any-approval", true); - var peg$e64 = peg$literalExpectation("paid", true); - var peg$e65 = peg$literalExpectation("exported", true); - var peg$e66 = peg$literalExpectation("posted", true); - var peg$e67 = peg$literalExpectation("withdrawn", true); - var peg$e68 = peg$literalExpectation("groupBy", true); - var peg$e69 = peg$literalExpectation("group-by", true); - var peg$e70 = peg$literalExpectation("limit", true); - var peg$e71 = peg$literalExpectation("feed", true); - var peg$e72 = peg$literalExpectation("title", true); - var peg$e73 = peg$literalExpectation("submitterUserID", true); - var peg$e74 = peg$literalExpectation("submitter-user-id", true); - var peg$e75 = peg$literalExpectation("submitterPayrollID", true); - var peg$e76 = peg$literalExpectation("submitter-payroll-id", true); - var peg$e77 = peg$literalExpectation("orderDealNumbers", true); - var peg$e78 = peg$literalExpectation("order-deal-numbers", true); - var peg$e79 = peg$literalExpectation("assignee", true); - var peg$e80 = peg$literalExpectation("createdBy", true); - var peg$e81 = peg$literalExpectation("created-by", true); - var peg$e82 = peg$literalExpectation("action", true); - var peg$e83 = peg$literalExpectation("total", true); - var peg$e84 = peg$literalExpectation("has", true); - var peg$e85 = peg$literalExpectation("is", true); - var peg$e86 = peg$literalExpectation("purchaseAmount", true); - var peg$e87 = peg$literalExpectation("purchase-amount", true); - var peg$e88 = peg$literalExpectation("purchaseCurrency", true); - var peg$e89 = peg$literalExpectation("purchase-currency", true); - var peg$e90 = peg$literalExpectation("amountDebited", true); - var peg$e91 = peg$literalExpectation("amount-debited", true); - var peg$e92 = peg$literalExpectation("amountReimbursed", true); - var peg$e93 = peg$literalExpectation("amount-reimbursed", true); - var peg$e94 = peg$literalExpectation("columns", true); - var peg$e95 = peg$literalExpectation("view", true); - var peg$e96 = peg$literalExpectation("compare", true); - var peg$e97 = peg$literalExpectation("per-diem", true); - var peg$e98 = peg$literalExpectation("drafts", true); - var peg$e99 = peg$literalExpectation("draft", true); - var peg$e100 = peg$literalExpectation("tax", true); - var peg$e101 = peg$literalExpectation("policy-name", true); - var peg$e102 = peg$literalExpectation("long-report-id", true); - var peg$e103 = peg$literalExpectation("exported-to", true); - var peg$e104 = peg$classExpectation([":", "="], false, false); - var peg$e105 = peg$literalExpectation("exportedTo", true); - var peg$e106 = peg$literalExpectation("exchange-rate", true); - var peg$e107 = peg$literalExpectation("reimbursable-total", true); - var peg$e108 = peg$literalExpectation("non-reimbursable-total", true); - var peg$e109 = peg$literalExpectation("group-from", true); - var peg$e110 = peg$literalExpectation("group-expenses", true); - var peg$e111 = peg$literalExpectation("group-total", true); - var peg$e112 = peg$literalExpectation("group-card", true); - var peg$e113 = peg$literalExpectation("group-feed", true); - var peg$e114 = peg$literalExpectation("group-bank-account", true); - var peg$e115 = peg$literalExpectation("group-withdrawn", true); - var peg$e116 = peg$literalExpectation("group-withdrawal-id", true); - var peg$e117 = peg$literalExpectation("group-amount-debited", true); - var peg$e118 = peg$literalExpectation("group-amount-reimbursed", true); - var peg$e119 = peg$literalExpectation("group-category", true); - var peg$e120 = peg$literalExpectation("group-tag", true); - var peg$e121 = peg$literalExpectation("group-merchant", true); - var peg$e122 = peg$literalExpectation("group-day", true); - var peg$e123 = peg$literalExpectation("group-month", true); - var peg$e124 = peg$literalExpectation("group-week", true); - var peg$e125 = peg$literalExpectation("group-year", true); - var peg$e126 = peg$literalExpectation("group-quarter", true); - var peg$e127 = peg$otherExpectation("operator"); - var peg$e128 = peg$literalExpectation("*:", false); - var peg$e129 = peg$literalExpectation("!=", false); - var peg$e130 = peg$literalExpectation(">=", false); - var peg$e131 = peg$literalExpectation(">", false); - var peg$e132 = peg$literalExpectation("<=", false); - var peg$e133 = peg$literalExpectation("<", false); - var peg$e134 = peg$literalExpectation("\\", false); - var peg$e135 = peg$classExpectation([",", "\"", "\u201D", "\u201C", "\\"], false, false); - var peg$e136 = peg$otherExpectation("word"); - var peg$e137 = peg$classExpectation([" ", ",", "\t", "\n", "\r", "\xA0"], true, false); - var peg$e138 = peg$otherExpectation("whitespace"); - var peg$e139 = peg$classExpectation([" ", "\t", "\r", "\n", "\xA0"], false, false); - var peg$e140 = peg$otherExpectation("quote"); - var peg$e141 = peg$classExpectation([" ", ",", "\"", "\u201D", "\u201C", "\t", "\n", "\r", "\xA0"], true, false); - var peg$e142 = peg$classExpectation(["\"", ["\u201C", "\u201D"]], false, false); - var peg$e143 = peg$classExpectation(["\"", "\u201D", "\u201C", "\r", "\n"], true, false); - var peg$e144 = peg$literalExpectation("\u201C", false); - var peg$e145 = peg$literalExpectation("\u201D", false); - var peg$e146 = peg$literalExpectation("\"", false); - var peg$e147 = peg$classExpectation([" ", "\t", "\n", "\r", "\xA0", ["a", "z"], ["A", "Z"], ["0", "9"]], false, false); - var peg$e148 = peg$classExpectation([["a", "z"], ["A", "Z"], ["0", "9"]], false, false); - var peg$e149 = peg$classExpectation([" ", "\t", "\n", "\r", "\xA0"], false, false); - var peg$e150 = peg$classExpectation([" ", "\t", "\n", "\r", "\xA0", ["a", "z"], ["A", "Z"]], false, false); - var peg$e151 = peg$classExpectation([","], false, false); - var peg$e152 = peg$classExpectation([" ", "\t", "\n", "\r", "\xA0", ","], false, false); - var peg$e153 = peg$literalExpectation("footerCount", true); - var peg$e154 = peg$literalExpectation("footer-count", true); - var peg$e155 = peg$literalExpectation("footerCurrency", true); - var peg$e156 = peg$literalExpectation("footer-currency", true); - var peg$e157 = peg$literalExpectation("footerTotal", true); - var peg$e158 = peg$literalExpectation("footer-total", true); + var peg$e51 = peg$literalExpectation("held", true); + var peg$e52 = peg$literalExpectation("reimbursable", true); + var peg$e53 = peg$literalExpectation("type", true); + var peg$e54 = peg$literalExpectation("status", true); + var peg$e55 = peg$literalExpectation("sortBy", false); + var peg$e56 = peg$literalExpectation("sort-by", true); + var peg$e57 = peg$literalExpectation("sortOrder", false); + var peg$e58 = peg$literalExpectation("sort-order", true); + var peg$e59 = peg$literalExpectation("policyID", false); + var peg$e60 = peg$literalExpectation("workspace", true); + var peg$e61 = peg$literalExpectation("submitted", true); + var peg$e62 = peg$literalExpectation("approved", true); + var peg$e63 = peg$literalExpectation("anyApproval", true); + var peg$e64 = peg$literalExpectation("any-approval", true); + var peg$e65 = peg$literalExpectation("paid", true); + var peg$e66 = peg$literalExpectation("exported", true); + var peg$e67 = peg$literalExpectation("posted", true); + var peg$e68 = peg$literalExpectation("withdrawn", true); + var peg$e69 = peg$literalExpectation("groupBy", true); + var peg$e70 = peg$literalExpectation("group-by", true); + var peg$e71 = peg$literalExpectation("limit", true); + var peg$e72 = peg$literalExpectation("feed", true); + var peg$e73 = peg$literalExpectation("title", true); + var peg$e74 = peg$literalExpectation("submitterUserID", true); + var peg$e75 = peg$literalExpectation("submitter-user-id", true); + var peg$e76 = peg$literalExpectation("submitterPayrollID", true); + var peg$e77 = peg$literalExpectation("submitter-payroll-id", true); + var peg$e78 = peg$literalExpectation("orderDealNumbers", true); + var peg$e79 = peg$literalExpectation("order-deal-numbers", true); + var peg$e80 = peg$literalExpectation("assignee", true); + var peg$e81 = peg$literalExpectation("createdBy", true); + var peg$e82 = peg$literalExpectation("created-by", true); + var peg$e83 = peg$literalExpectation("action", true); + var peg$e84 = peg$literalExpectation("total", true); + var peg$e85 = peg$literalExpectation("has", true); + var peg$e86 = peg$literalExpectation("is", true); + var peg$e87 = peg$literalExpectation("purchaseAmount", true); + var peg$e88 = peg$literalExpectation("purchase-amount", true); + var peg$e89 = peg$literalExpectation("purchaseCurrency", true); + var peg$e90 = peg$literalExpectation("purchase-currency", true); + var peg$e91 = peg$literalExpectation("amountDebited", true); + var peg$e92 = peg$literalExpectation("amount-debited", true); + var peg$e93 = peg$literalExpectation("amountReimbursed", true); + var peg$e94 = peg$literalExpectation("amount-reimbursed", true); + var peg$e95 = peg$literalExpectation("columns", true); + var peg$e96 = peg$literalExpectation("view", true); + var peg$e97 = peg$literalExpectation("compare", true); + var peg$e98 = peg$literalExpectation("per-diem", true); + var peg$e99 = peg$literalExpectation("drafts", true); + var peg$e100 = peg$literalExpectation("draft", true); + var peg$e101 = peg$literalExpectation("tax", true); + var peg$e102 = peg$literalExpectation("policy-name", true); + var peg$e103 = peg$literalExpectation("long-report-id", true); + var peg$e104 = peg$literalExpectation("exported-to", true); + var peg$e105 = peg$classExpectation([":", "="], false, false); + var peg$e106 = peg$literalExpectation("exportedTo", true); + var peg$e107 = peg$literalExpectation("exchange-rate", true); + var peg$e108 = peg$literalExpectation("reimbursable-total", true); + var peg$e109 = peg$literalExpectation("non-reimbursable-total", true); + var peg$e110 = peg$literalExpectation("group-from", true); + var peg$e111 = peg$literalExpectation("group-expenses", true); + var peg$e112 = peg$literalExpectation("group-total", true); + var peg$e113 = peg$literalExpectation("group-card", true); + var peg$e114 = peg$literalExpectation("group-feed", true); + var peg$e115 = peg$literalExpectation("group-bank-account", true); + var peg$e116 = peg$literalExpectation("group-withdrawn", true); + var peg$e117 = peg$literalExpectation("group-withdrawal-id", true); + var peg$e118 = peg$literalExpectation("group-amount-debited", true); + var peg$e119 = peg$literalExpectation("group-amount-reimbursed", true); + var peg$e120 = peg$literalExpectation("group-category", true); + var peg$e121 = peg$literalExpectation("group-tag", true); + var peg$e122 = peg$literalExpectation("group-merchant", true); + var peg$e123 = peg$literalExpectation("group-day", true); + var peg$e124 = peg$literalExpectation("group-month", true); + var peg$e125 = peg$literalExpectation("group-week", true); + var peg$e126 = peg$literalExpectation("group-year", true); + var peg$e127 = peg$literalExpectation("group-quarter", true); + var peg$e128 = peg$otherExpectation("operator"); + var peg$e129 = peg$literalExpectation("*:", false); + var peg$e130 = peg$literalExpectation("!=", false); + var peg$e131 = peg$literalExpectation(">=", false); + var peg$e132 = peg$literalExpectation(">", false); + var peg$e133 = peg$literalExpectation("<=", false); + var peg$e134 = peg$literalExpectation("<", false); + var peg$e135 = peg$literalExpectation("\\", false); + var peg$e136 = peg$classExpectation([",", "\"", "\u201D", "\u201C", "\\"], false, false); + var peg$e137 = peg$otherExpectation("word"); + var peg$e138 = peg$classExpectation([" ", ",", "\t", "\n", "\r", "\xA0"], true, false); + var peg$e139 = peg$otherExpectation("whitespace"); + var peg$e140 = peg$classExpectation([" ", "\t", "\r", "\n", "\xA0"], false, false); + var peg$e141 = peg$otherExpectation("quote"); + var peg$e142 = peg$classExpectation([" ", ",", "\"", "\u201D", "\u201C", "\t", "\n", "\r", "\xA0"], true, false); + var peg$e143 = peg$classExpectation(["\"", ["\u201C", "\u201D"]], false, false); + var peg$e144 = peg$classExpectation(["\"", "\u201D", "\u201C", "\r", "\n"], true, false); + var peg$e145 = peg$literalExpectation("\u201C", false); + var peg$e146 = peg$literalExpectation("\u201D", false); + var peg$e147 = peg$literalExpectation("\"", false); + var peg$e148 = peg$classExpectation([" ", "\t", "\n", "\r", "\xA0", ["a", "z"], ["A", "Z"], ["0", "9"]], false, false); + var peg$e149 = peg$classExpectation([["a", "z"], ["A", "Z"], ["0", "9"]], false, false); + var peg$e150 = peg$classExpectation([" ", "\t", "\n", "\r", "\xA0"], false, false); + var peg$e151 = peg$classExpectation([" ", "\t", "\n", "\r", "\xA0", ["a", "z"], ["A", "Z"]], false, false); + var peg$e152 = peg$classExpectation([","], false, false); + var peg$e153 = peg$classExpectation([" ", "\t", "\n", "\r", "\xA0", ","], false, false); + var peg$e154 = peg$literalExpectation("footerCount", true); + var peg$e155 = peg$literalExpectation("footer-count", true); + var peg$e156 = peg$literalExpectation("footerCurrency", true); + var peg$e157 = peg$literalExpectation("footer-currency", true); + var peg$e158 = peg$literalExpectation("footerTotal", true); + var peg$e159 = peg$literalExpectation("footer-total", true); var peg$f0 = function(filters) { return applyDefaults(filters); }; var peg$f1 = function(head, tail) { @@ -627,113 +629,114 @@ function peg$parse(input, options) { var peg$f35 = function() { return "withdrawalID"; }; var peg$f36 = function() { return "billable"; }; var peg$f37 = function() { return "declined"; }; - var peg$f38 = function() { return "reimbursable"; }; - var peg$f39 = function() { return "type"; }; - var peg$f40 = function() { return "status"; }; - var peg$f41 = function() { return "sortBy"; }; - var peg$f42 = function() { return "sortOrder"; }; - var peg$f43 = function() { return "policyID"; }; - var peg$f44 = function() { return "submitted"; }; - var peg$f45 = function() { return "approved"; }; - var peg$f46 = function() { return "anyApproval"; }; + var peg$f38 = function() { return "held"; }; + var peg$f39 = function() { return "reimbursable"; }; + var peg$f40 = function() { return "type"; }; + var peg$f41 = function() { return "status"; }; + var peg$f42 = function() { return "sortBy"; }; + var peg$f43 = function() { return "sortOrder"; }; + var peg$f44 = function() { return "policyID"; }; + var peg$f45 = function() { return "submitted"; }; + var peg$f46 = function() { return "approved"; }; var peg$f47 = function() { return "anyApproval"; }; - var peg$f48 = function() { return "paid"; }; - var peg$f49 = function() { return "exported"; }; - var peg$f50 = function() { return "posted"; }; - var peg$f51 = function() { return "withdrawn"; }; - var peg$f52 = function() { return "groupBy"; }; - var peg$f53 = function() { return "limit"; }; - var peg$f54 = function() { return "feed"; }; - var peg$f55 = function() { return "title"; }; - var peg$f56 = function() { return "submitterUserID"; }; - var peg$f57 = function() { return "submitterPayrollID"; }; - var peg$f58 = function() { return "orderDealNumbers"; }; - var peg$f59 = function() { return "assignee"; }; - var peg$f60 = function() { return "createdBy"; }; - var peg$f61 = function() { return "action"; }; - var peg$f62 = function() {return "total"; }; - var peg$f63 = function() {return "has"; }; - var peg$f64 = function() {return "is"; }; - var peg$f65 = function() {return "purchaseAmount"}; - var peg$f66 = function() {return "purchaseCurrency"}; - var peg$f67 = function() {return "amountDebited"}; - var peg$f68 = function() {return "amountReimbursed"}; - var peg$f69 = function() { + var peg$f48 = function() { return "anyApproval"; }; + var peg$f49 = function() { return "paid"; }; + var peg$f50 = function() { return "exported"; }; + var peg$f51 = function() { return "posted"; }; + var peg$f52 = function() { return "withdrawn"; }; + var peg$f53 = function() { return "groupBy"; }; + var peg$f54 = function() { return "limit"; }; + var peg$f55 = function() { return "feed"; }; + var peg$f56 = function() { return "title"; }; + var peg$f57 = function() { return "submitterUserID"; }; + var peg$f58 = function() { return "submitterPayrollID"; }; + var peg$f59 = function() { return "orderDealNumbers"; }; + var peg$f60 = function() { return "assignee"; }; + var peg$f61 = function() { return "createdBy"; }; + var peg$f62 = function() { return "action"; }; + var peg$f63 = function() {return "total"; }; + var peg$f64 = function() {return "has"; }; + var peg$f65 = function() {return "is"; }; + var peg$f66 = function() {return "purchaseAmount"}; + var peg$f67 = function() {return "purchaseCurrency"}; + var peg$f68 = function() {return "amountDebited"}; + var peg$f69 = function() {return "amountReimbursed"}; + var peg$f70 = function() { isColumnsContext = true; return "columns"; }; - var peg$f70 = function() {return "view"}; - var peg$f71 = function() {return "compare"}; - var peg$f72 = function() { return isColumnsContext; }; - var peg$f73 = function() { return "perDiem"; }; - var peg$f74 = function() { return "drafts"; }; - var peg$f75 = function() { return "originalamount"; }; - var peg$f76 = function() { return "taxAmount"; }; - var peg$f77 = function() { return "taxrate"; }; - var peg$f78 = function() { return "policyname"; }; - var peg$f79 = function() { return "withdrawalID"; }; - var peg$f80 = function() { return "bankAccount"; }; - var peg$f81 = function() { return "reportID"; }; - var peg$f82 = function() { return "base62ReportID"; }; - var peg$f83 = function() { return "exportedto"; }; - var peg$f84 = function() { return "exportedTo"; }; + var peg$f71 = function() {return "view"}; + var peg$f72 = function() {return "compare"}; + var peg$f73 = function() { return isColumnsContext; }; + var peg$f74 = function() { return "perDiem"; }; + var peg$f75 = function() { return "drafts"; }; + var peg$f76 = function() { return "originalamount"; }; + var peg$f77 = function() { return "taxAmount"; }; + var peg$f78 = function() { return "taxrate"; }; + var peg$f79 = function() { return "policyname"; }; + var peg$f80 = function() { return "withdrawalID"; }; + var peg$f81 = function() { return "bankAccount"; }; + var peg$f82 = function() { return "reportID"; }; + var peg$f83 = function() { return "base62ReportID"; }; + var peg$f84 = function() { return "exportedto"; }; var peg$f85 = function() { return "exportedTo"; }; - var peg$f86 = function() { return "exchangeRate"; }; - var peg$f87 = function() { return "reimbursableTotal"; }; - var peg$f88 = function() { return "nonReimbursableTotal"; }; - var peg$f89 = function() { return "groupFrom"; }; - var peg$f90 = function() { return "groupExpenses"; }; - var peg$f91 = function() { return "groupTotal"; }; - var peg$f92 = function() { return "groupCard"; }; - var peg$f93 = function() { return "groupFeed"; }; - var peg$f94 = function() { return "groupBankAccount"; }; - var peg$f95 = function() { return "groupWithdrawn"; }; - var peg$f96 = function() { return "groupWithdrawalID"; }; - var peg$f97 = function() { return "groupAmountDebited"; }; - var peg$f98 = function() { return "groupAmountReimbursed"; }; - var peg$f99 = function() { return "amountDebited"; }; - var peg$f100 = function() { return "amountReimbursed"; }; - var peg$f101 = function() { return "groupCategory"; }; - var peg$f102 = function() { return "groupTag"; }; - var peg$f103 = function() { return "groupMerchant"; }; - var peg$f104 = function() { return "groupday"; }; - var peg$f105 = function() { return "groupmonth"; }; - var peg$f106 = function() { return "groupweek"; }; - var peg$f107 = function() { return "groupyear"; }; - var peg$f108 = function() { return "groupquarter"; }; - var peg$f109 = function() { return "contains"; }; - var peg$f110 = function() { return "eq"; }; - var peg$f111 = function() { return "neq"; }; - var peg$f112 = function() { return "gte"; }; - var peg$f113 = function() { return "gt"; }; - var peg$f114 = function() { return "lte"; }; - var peg$f115 = function() { return "lt"; }; - var peg$f116 = function(o) { + var peg$f86 = function() { return "exportedTo"; }; + var peg$f87 = function() { return "exchangeRate"; }; + var peg$f88 = function() { return "reimbursableTotal"; }; + var peg$f89 = function() { return "nonReimbursableTotal"; }; + var peg$f90 = function() { return "groupFrom"; }; + var peg$f91 = function() { return "groupExpenses"; }; + var peg$f92 = function() { return "groupTotal"; }; + var peg$f93 = function() { return "groupCard"; }; + var peg$f94 = function() { return "groupFeed"; }; + var peg$f95 = function() { return "groupBankAccount"; }; + var peg$f96 = function() { return "groupWithdrawn"; }; + var peg$f97 = function() { return "groupWithdrawalID"; }; + var peg$f98 = function() { return "groupAmountDebited"; }; + var peg$f99 = function() { return "groupAmountReimbursed"; }; + var peg$f100 = function() { return "amountDebited"; }; + var peg$f101 = function() { return "amountReimbursed"; }; + var peg$f102 = function() { return "groupCategory"; }; + var peg$f103 = function() { return "groupTag"; }; + var peg$f104 = function() { return "groupMerchant"; }; + var peg$f105 = function() { return "groupday"; }; + var peg$f106 = function() { return "groupmonth"; }; + var peg$f107 = function() { return "groupweek"; }; + var peg$f108 = function() { return "groupyear"; }; + var peg$f109 = function() { return "groupquarter"; }; + var peg$f110 = function() { return "contains"; }; + var peg$f111 = function() { return "eq"; }; + var peg$f112 = function() { return "neq"; }; + var peg$f113 = function() { return "gte"; }; + var peg$f114 = function() { return "gt"; }; + var peg$f115 = function() { return "lte"; }; + var peg$f116 = function() { return "lt"; }; + var peg$f117 = function(o) { if (nameOperator) { expectingNestedQuote = (o === "eq" || o === "contains"); } isColumnsContext = false; return o; }; - var peg$f117 = function(c) { return c; }; - var peg$f118 = function(chars) { return chars.join("").trim(); }; - var peg$f119 = function() { + var peg$f118 = function(c) { return c; }; + var peg$f119 = function(chars) { return chars.join("").trim(); }; + var peg$f120 = function() { isColumnsContext = false; return "and"; }; - var peg$f120 = function() { return expectingNestedQuote; }; - var peg$f121 = function(start, inner, end) { //handle no-breaking space + var peg$f121 = function() { return expectingNestedQuote; }; + var peg$f122 = function(start, inner, end) { //handle no-breaking space return [...start, '"', ...inner, '"', ...end].join(""); }; - var peg$f122 = function(start) {return "“"}; - var peg$f123 = function(start) {return "”"}; - var peg$f124 = function(start) {return "\""}; - var peg$f125 = function(start, inner, end) { + var peg$f123 = function(start) {return "“"}; + var peg$f124 = function(start) {return "”"}; + var peg$f125 = function(start) {return "\""}; + var peg$f126 = function(start, inner, end) { return [...start, '"', ...inner, '"'].join(""); }; - var peg$f126 = function() { return "footerCount"; }; - var peg$f127 = function() { return "footerCurrency"; }; - var peg$f128 = function() { return "footerTotal"; }; + var peg$f127 = function() { return "footerCount"; }; + var peg$f128 = function() { return "footerCurrency"; }; + var peg$f129 = function() { return "footerTotal"; }; var peg$currPos = options.peg$currPos | 0; var peg$savedPos = peg$currPos; var peg$posDetailsCache = [{ line: 1, column: 1 }]; @@ -1329,27 +1332,30 @@ function peg$parse(input, options) { if (s1 === peg$FAILED) { s1 = peg$parsedeclined(); if (s1 === peg$FAILED) { - s1 = peg$parseaction(); + s1 = peg$parseheld(); if (s1 === peg$FAILED) { - s1 = peg$parsehas(); + s1 = peg$parseaction(); if (s1 === peg$FAILED) { - s1 = peg$parseis(); + s1 = peg$parsehas(); if (s1 === peg$FAILED) { - s1 = peg$parsepurchaseCurrency(); + s1 = peg$parseis(); if (s1 === peg$FAILED) { - s1 = peg$parsepurchaseAmount(); + s1 = peg$parsepurchaseCurrency(); if (s1 === peg$FAILED) { - s1 = peg$parsepolicyID(); + s1 = peg$parsepurchaseAmount(); if (s1 === peg$FAILED) { - s1 = peg$parsestatus(); + s1 = peg$parsepolicyID(); if (s1 === peg$FAILED) { - s1 = peg$parsefooterCount(); + s1 = peg$parsestatus(); if (s1 === peg$FAILED) { - s1 = peg$parsefooterCurrency(); + s1 = peg$parsefooterCount(); if (s1 === peg$FAILED) { - s1 = peg$parsefooterTotal(); + s1 = peg$parsefooterCurrency(); if (s1 === peg$FAILED) { - s1 = peg$parsereportFieldDynamic(); + s1 = peg$parsefooterTotal(); + if (s1 === peg$FAILED) { + s1 = peg$parsereportFieldDynamic(); + } } } } @@ -2299,13 +2305,13 @@ function peg$parse(input, options) { return s0; } - function peg$parsereimbursable() { + function peg$parseheld() { var s0, s1; s0 = peg$currPos; - s1 = input.substr(peg$currPos, 12); + s1 = input.substr(peg$currPos, 4); if (s1.toLowerCase() === peg$c46) { - peg$currPos += 12; + peg$currPos += 4; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e51); } @@ -2319,13 +2325,13 @@ function peg$parse(input, options) { return s0; } - function peg$parsetype() { + function peg$parsereimbursable() { var s0, s1; s0 = peg$currPos; - s1 = input.substr(peg$currPos, 4); + s1 = input.substr(peg$currPos, 12); if (s1.toLowerCase() === peg$c47) { - peg$currPos += 4; + peg$currPos += 12; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e52); } @@ -2339,13 +2345,13 @@ function peg$parse(input, options) { return s0; } - function peg$parsestatus() { + function peg$parsetype() { var s0, s1; s0 = peg$currPos; - s1 = input.substr(peg$currPos, 6); + s1 = input.substr(peg$currPos, 4); if (s1.toLowerCase() === peg$c48) { - peg$currPos += 6; + peg$currPos += 4; } else { s1 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e53); } @@ -2359,28 +2365,48 @@ function peg$parse(input, options) { return s0; } + function peg$parsestatus() { + var s0, s1; + + s0 = peg$currPos; + s1 = input.substr(peg$currPos, 6); + if (s1.toLowerCase() === peg$c49) { + peg$currPos += 6; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$e54); } + } + if (s1 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$f41(); + } + s0 = s1; + + return s0; + } + function peg$parsesortBy() { var s0, s1; - if (input.substr(peg$currPos, 6) === peg$c49) { - s0 = peg$c49; + if (input.substr(peg$currPos, 6) === peg$c50) { + s0 = peg$c50; peg$currPos += 6; } else { s0 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e54); } + if (peg$silentFails === 0) { peg$fail(peg$e55); } } if (s0 === peg$FAILED) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 7); - if (s1.toLowerCase() === peg$c50) { + if (s1.toLowerCase() === peg$c51) { peg$currPos += 7; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e55); } + if (peg$silentFails === 0) { peg$fail(peg$e56); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f41(); + s1 = peg$f42(); } s0 = s1; } @@ -2391,25 +2417,25 @@ function peg$parse(input, options) { function peg$parsesortOrder() { var s0, s1; - if (input.substr(peg$currPos, 9) === peg$c51) { - s0 = peg$c51; + if (input.substr(peg$currPos, 9) === peg$c52) { + s0 = peg$c52; peg$currPos += 9; } else { s0 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e56); } + if (peg$silentFails === 0) { peg$fail(peg$e57); } } if (s0 === peg$FAILED) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 10); - if (s1.toLowerCase() === peg$c52) { + if (s1.toLowerCase() === peg$c53) { peg$currPos += 10; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e57); } + if (peg$silentFails === 0) { peg$fail(peg$e58); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f42(); + s1 = peg$f43(); } s0 = s1; } @@ -2420,25 +2446,25 @@ function peg$parse(input, options) { function peg$parsepolicyID() { var s0, s1; - if (input.substr(peg$currPos, 8) === peg$c53) { - s0 = peg$c53; + if (input.substr(peg$currPos, 8) === peg$c54) { + s0 = peg$c54; peg$currPos += 8; } else { s0 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e58); } + if (peg$silentFails === 0) { peg$fail(peg$e59); } } if (s0 === peg$FAILED) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 9); - if (s1.toLowerCase() === peg$c54) { + if (s1.toLowerCase() === peg$c55) { peg$currPos += 9; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e59); } + if (peg$silentFails === 0) { peg$fail(peg$e60); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f43(); + s1 = peg$f44(); } s0 = s1; } @@ -2451,15 +2477,15 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 9); - if (s1.toLowerCase() === peg$c55) { + if (s1.toLowerCase() === peg$c56) { peg$currPos += 9; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e60); } + if (peg$silentFails === 0) { peg$fail(peg$e61); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f44(); + s1 = peg$f45(); } s0 = s1; @@ -2471,15 +2497,15 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 8); - if (s1.toLowerCase() === peg$c56) { + if (s1.toLowerCase() === peg$c57) { peg$currPos += 8; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e61); } + if (peg$silentFails === 0) { peg$fail(peg$e62); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f45(); + s1 = peg$f46(); } s0 = s1; @@ -2491,29 +2517,29 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 11); - if (s1.toLowerCase() === peg$c57) { + if (s1.toLowerCase() === peg$c58) { peg$currPos += 11; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e62); } + if (peg$silentFails === 0) { peg$fail(peg$e63); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f46(); + s1 = peg$f47(); } s0 = s1; if (s0 === peg$FAILED) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 12); - if (s1.toLowerCase() === peg$c58) { + if (s1.toLowerCase() === peg$c59) { peg$currPos += 12; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e63); } + if (peg$silentFails === 0) { peg$fail(peg$e64); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f47(); + s1 = peg$f48(); } s0 = s1; } @@ -2526,15 +2552,15 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 4); - if (s1.toLowerCase() === peg$c59) { + if (s1.toLowerCase() === peg$c60) { peg$currPos += 4; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e64); } + if (peg$silentFails === 0) { peg$fail(peg$e65); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f48(); + s1 = peg$f49(); } s0 = s1; @@ -2546,15 +2572,15 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 8); - if (s1.toLowerCase() === peg$c60) { + if (s1.toLowerCase() === peg$c61) { peg$currPos += 8; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e65); } + if (peg$silentFails === 0) { peg$fail(peg$e66); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f49(); + s1 = peg$f50(); } s0 = s1; @@ -2566,15 +2592,15 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 6); - if (s1.toLowerCase() === peg$c61) { + if (s1.toLowerCase() === peg$c62) { peg$currPos += 6; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e66); } + if (peg$silentFails === 0) { peg$fail(peg$e67); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f50(); + s1 = peg$f51(); } s0 = s1; @@ -2586,15 +2612,15 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 9); - if (s1.toLowerCase() === peg$c62) { + if (s1.toLowerCase() === peg$c63) { peg$currPos += 9; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e67); } + if (peg$silentFails === 0) { peg$fail(peg$e68); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f51(); + s1 = peg$f52(); } s0 = s1; @@ -2605,24 +2631,24 @@ function peg$parse(input, options) { var s0, s1; s0 = input.substr(peg$currPos, 7); - if (s0.toLowerCase() === peg$c63) { + if (s0.toLowerCase() === peg$c64) { peg$currPos += 7; } else { s0 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e68); } + if (peg$silentFails === 0) { peg$fail(peg$e69); } } if (s0 === peg$FAILED) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 8); - if (s1.toLowerCase() === peg$c64) { + if (s1.toLowerCase() === peg$c65) { peg$currPos += 8; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e69); } + if (peg$silentFails === 0) { peg$fail(peg$e70); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f52(); + s1 = peg$f53(); } s0 = s1; } @@ -2635,15 +2661,15 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 5); - if (s1.toLowerCase() === peg$c65) { + if (s1.toLowerCase() === peg$c66) { peg$currPos += 5; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e70); } + if (peg$silentFails === 0) { peg$fail(peg$e71); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f53(); + s1 = peg$f54(); } s0 = s1; @@ -2655,15 +2681,15 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 4); - if (s1.toLowerCase() === peg$c66) { + if (s1.toLowerCase() === peg$c67) { peg$currPos += 4; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e71); } + if (peg$silentFails === 0) { peg$fail(peg$e72); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f54(); + s1 = peg$f55(); } s0 = s1; @@ -2675,15 +2701,15 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 5); - if (s1.toLowerCase() === peg$c67) { + if (s1.toLowerCase() === peg$c68) { peg$currPos += 5; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e72); } + if (peg$silentFails === 0) { peg$fail(peg$e73); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f55(); + s1 = peg$f56(); } s0 = s1; @@ -2694,24 +2720,24 @@ function peg$parse(input, options) { var s0, s1; s0 = input.substr(peg$currPos, 15); - if (s0.toLowerCase() === peg$c68) { + if (s0.toLowerCase() === peg$c69) { peg$currPos += 15; } else { s0 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e73); } + if (peg$silentFails === 0) { peg$fail(peg$e74); } } if (s0 === peg$FAILED) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 17); - if (s1.toLowerCase() === peg$c69) { + if (s1.toLowerCase() === peg$c70) { peg$currPos += 17; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e74); } + if (peg$silentFails === 0) { peg$fail(peg$e75); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f56(); + s1 = peg$f57(); } s0 = s1; } @@ -2723,24 +2749,24 @@ function peg$parse(input, options) { var s0, s1; s0 = input.substr(peg$currPos, 18); - if (s0.toLowerCase() === peg$c70) { + if (s0.toLowerCase() === peg$c71) { peg$currPos += 18; } else { s0 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e75); } + if (peg$silentFails === 0) { peg$fail(peg$e76); } } if (s0 === peg$FAILED) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 20); - if (s1.toLowerCase() === peg$c71) { + if (s1.toLowerCase() === peg$c72) { peg$currPos += 20; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e76); } + if (peg$silentFails === 0) { peg$fail(peg$e77); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f57(); + s1 = peg$f58(); } s0 = s1; } @@ -2752,24 +2778,24 @@ function peg$parse(input, options) { var s0, s1; s0 = input.substr(peg$currPos, 16); - if (s0.toLowerCase() === peg$c72) { + if (s0.toLowerCase() === peg$c73) { peg$currPos += 16; } else { s0 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e77); } + if (peg$silentFails === 0) { peg$fail(peg$e78); } } if (s0 === peg$FAILED) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 18); - if (s1.toLowerCase() === peg$c73) { + if (s1.toLowerCase() === peg$c74) { peg$currPos += 18; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e78); } + if (peg$silentFails === 0) { peg$fail(peg$e79); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f58(); + s1 = peg$f59(); } s0 = s1; } @@ -2782,15 +2808,15 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 8); - if (s1.toLowerCase() === peg$c74) { + if (s1.toLowerCase() === peg$c75) { peg$currPos += 8; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e79); } + if (peg$silentFails === 0) { peg$fail(peg$e80); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f59(); + s1 = peg$f60(); } s0 = s1; @@ -2801,24 +2827,24 @@ function peg$parse(input, options) { var s0, s1; s0 = input.substr(peg$currPos, 9); - if (s0.toLowerCase() === peg$c75) { + if (s0.toLowerCase() === peg$c76) { peg$currPos += 9; } else { s0 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e80); } + if (peg$silentFails === 0) { peg$fail(peg$e81); } } if (s0 === peg$FAILED) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 10); - if (s1.toLowerCase() === peg$c76) { + if (s1.toLowerCase() === peg$c77) { peg$currPos += 10; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e81); } + if (peg$silentFails === 0) { peg$fail(peg$e82); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f60(); + s1 = peg$f61(); } s0 = s1; } @@ -2831,15 +2857,15 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 6); - if (s1.toLowerCase() === peg$c77) { + if (s1.toLowerCase() === peg$c78) { peg$currPos += 6; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e82); } + if (peg$silentFails === 0) { peg$fail(peg$e83); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f61(); + s1 = peg$f62(); } s0 = s1; @@ -2851,15 +2877,15 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 5); - if (s1.toLowerCase() === peg$c78) { + if (s1.toLowerCase() === peg$c79) { peg$currPos += 5; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e83); } + if (peg$silentFails === 0) { peg$fail(peg$e84); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f62(); + s1 = peg$f63(); } s0 = s1; @@ -2871,15 +2897,15 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 3); - if (s1.toLowerCase() === peg$c79) { + if (s1.toLowerCase() === peg$c80) { peg$currPos += 3; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e84); } + if (peg$silentFails === 0) { peg$fail(peg$e85); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f63(); + s1 = peg$f64(); } s0 = s1; @@ -2891,15 +2917,15 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 2); - if (s1.toLowerCase() === peg$c80) { + if (s1.toLowerCase() === peg$c81) { peg$currPos += 2; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e85); } + if (peg$silentFails === 0) { peg$fail(peg$e86); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f64(); + s1 = peg$f65(); } s0 = s1; @@ -2910,24 +2936,24 @@ function peg$parse(input, options) { var s0, s1; s0 = input.substr(peg$currPos, 14); - if (s0.toLowerCase() === peg$c81) { + if (s0.toLowerCase() === peg$c82) { peg$currPos += 14; } else { s0 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e86); } + if (peg$silentFails === 0) { peg$fail(peg$e87); } } if (s0 === peg$FAILED) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 15); - if (s1.toLowerCase() === peg$c82) { + if (s1.toLowerCase() === peg$c83) { peg$currPos += 15; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e87); } + if (peg$silentFails === 0) { peg$fail(peg$e88); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f65(); + s1 = peg$f66(); } s0 = s1; } @@ -2939,24 +2965,24 @@ function peg$parse(input, options) { var s0, s1; s0 = input.substr(peg$currPos, 16); - if (s0.toLowerCase() === peg$c83) { + if (s0.toLowerCase() === peg$c84) { peg$currPos += 16; } else { s0 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e88); } + if (peg$silentFails === 0) { peg$fail(peg$e89); } } if (s0 === peg$FAILED) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 17); - if (s1.toLowerCase() === peg$c84) { + if (s1.toLowerCase() === peg$c85) { peg$currPos += 17; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e89); } + if (peg$silentFails === 0) { peg$fail(peg$e90); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f66(); + s1 = peg$f67(); } s0 = s1; } @@ -2968,24 +2994,24 @@ function peg$parse(input, options) { var s0, s1; s0 = input.substr(peg$currPos, 13); - if (s0.toLowerCase() === peg$c85) { + if (s0.toLowerCase() === peg$c86) { peg$currPos += 13; } else { s0 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e90); } + if (peg$silentFails === 0) { peg$fail(peg$e91); } } if (s0 === peg$FAILED) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 14); - if (s1.toLowerCase() === peg$c86) { + if (s1.toLowerCase() === peg$c87) { peg$currPos += 14; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e91); } + if (peg$silentFails === 0) { peg$fail(peg$e92); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f67(); + s1 = peg$f68(); } s0 = s1; } @@ -2997,24 +3023,24 @@ function peg$parse(input, options) { var s0, s1; s0 = input.substr(peg$currPos, 16); - if (s0.toLowerCase() === peg$c87) { + if (s0.toLowerCase() === peg$c88) { peg$currPos += 16; } else { s0 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e92); } + if (peg$silentFails === 0) { peg$fail(peg$e93); } } if (s0 === peg$FAILED) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 17); - if (s1.toLowerCase() === peg$c88) { + if (s1.toLowerCase() === peg$c89) { peg$currPos += 17; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e93); } + if (peg$silentFails === 0) { peg$fail(peg$e94); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f68(); + s1 = peg$f69(); } s0 = s1; } @@ -3027,15 +3053,15 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 7); - if (s1.toLowerCase() === peg$c89) { + if (s1.toLowerCase() === peg$c90) { peg$currPos += 7; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e94); } + if (peg$silentFails === 0) { peg$fail(peg$e95); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f69(); + s1 = peg$f70(); } s0 = s1; @@ -3047,15 +3073,15 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 4); - if (s1.toLowerCase() === peg$c90) { + if (s1.toLowerCase() === peg$c91) { peg$currPos += 4; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e95); } + if (peg$silentFails === 0) { peg$fail(peg$e96); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f70(); + s1 = peg$f71(); } s0 = s1; @@ -3067,15 +3093,15 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 7); - if (s1.toLowerCase() === peg$c91) { + if (s1.toLowerCase() === peg$c92) { peg$currPos += 7; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e96); } + if (peg$silentFails === 0) { peg$fail(peg$e97); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f71(); + s1 = peg$f72(); } s0 = s1; @@ -3087,7 +3113,7 @@ function peg$parse(input, options) { s0 = peg$currPos; peg$savedPos = peg$currPos; - s1 = peg$f72(); + s1 = peg$f73(); if (s1) { s1 = undefined; } else { @@ -3222,11 +3248,11 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 8); - if (s1.toLowerCase() === peg$c92) { + if (s1.toLowerCase() === peg$c93) { peg$currPos += 8; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e97); } + if (peg$silentFails === 0) { peg$fail(peg$e98); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; @@ -3241,7 +3267,7 @@ function peg$parse(input, options) { } if (s2 !== peg$FAILED) { peg$savedPos = s0; - s0 = peg$f73(); + s0 = peg$f74(); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -3259,19 +3285,19 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 6); - if (s1.toLowerCase() === peg$c93) { + if (s1.toLowerCase() === peg$c94) { peg$currPos += 6; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e98); } + if (peg$silentFails === 0) { peg$fail(peg$e99); } } if (s1 === peg$FAILED) { s1 = input.substr(peg$currPos, 5); - if (s1.toLowerCase() === peg$c94) { + if (s1.toLowerCase() === peg$c95) { peg$currPos += 5; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e99); } + if (peg$silentFails === 0) { peg$fail(peg$e100); } } } if (s1 !== peg$FAILED) { @@ -3287,7 +3313,7 @@ function peg$parse(input, options) { } if (s2 !== peg$FAILED) { peg$savedPos = s0; - s0 = peg$f74(); + s0 = peg$f75(); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -3305,11 +3331,11 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 15); - if (s1.toLowerCase() === peg$c82) { + if (s1.toLowerCase() === peg$c83) { peg$currPos += 15; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e87); } + if (peg$silentFails === 0) { peg$fail(peg$e88); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; @@ -3324,7 +3350,7 @@ function peg$parse(input, options) { } if (s2 !== peg$FAILED) { peg$savedPos = s0; - s0 = peg$f75(); + s0 = peg$f76(); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -3342,11 +3368,11 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 3); - if (s1.toLowerCase() === peg$c95) { + if (s1.toLowerCase() === peg$c96) { peg$currPos += 3; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e100); } + if (peg$silentFails === 0) { peg$fail(peg$e101); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; @@ -3361,7 +3387,7 @@ function peg$parse(input, options) { } if (s2 !== peg$FAILED) { peg$savedPos = s0; - s0 = peg$f76(); + s0 = peg$f77(); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -3398,7 +3424,7 @@ function peg$parse(input, options) { } if (s2 !== peg$FAILED) { peg$savedPos = s0; - s0 = peg$f77(); + s0 = peg$f78(); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -3416,11 +3442,11 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 11); - if (s1.toLowerCase() === peg$c96) { + if (s1.toLowerCase() === peg$c97) { peg$currPos += 11; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e101); } + if (peg$silentFails === 0) { peg$fail(peg$e102); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; @@ -3435,7 +3461,7 @@ function peg$parse(input, options) { } if (s2 !== peg$FAILED) { peg$savedPos = s0; - s0 = peg$f78(); + s0 = peg$f79(); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -3472,7 +3498,7 @@ function peg$parse(input, options) { } if (s2 !== peg$FAILED) { peg$savedPos = s0; - s0 = peg$f79(); + s0 = peg$f80(); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -3509,7 +3535,7 @@ function peg$parse(input, options) { } if (s2 !== peg$FAILED) { peg$savedPos = s0; - s0 = peg$f80(); + s0 = peg$f81(); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -3527,11 +3553,11 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 14); - if (s1.toLowerCase() === peg$c97) { + if (s1.toLowerCase() === peg$c98) { peg$currPos += 14; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e102); } + if (peg$silentFails === 0) { peg$fail(peg$e103); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; @@ -3546,7 +3572,7 @@ function peg$parse(input, options) { } if (s2 !== peg$FAILED) { peg$savedPos = s0; - s0 = peg$f81(); + s0 = peg$f82(); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -3583,7 +3609,7 @@ function peg$parse(input, options) { } if (s2 !== peg$FAILED) { peg$savedPos = s0; - s0 = peg$f82(); + s0 = peg$f83(); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -3601,11 +3627,11 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 11); - if (s1.toLowerCase() === peg$c98) { + if (s1.toLowerCase() === peg$c99) { peg$currPos += 11; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e103); } + if (peg$silentFails === 0) { peg$fail(peg$e104); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; @@ -3620,7 +3646,7 @@ function peg$parse(input, options) { } if (s2 !== peg$FAILED) { peg$savedPos = s0; - s0 = peg$f83(); + s0 = peg$f84(); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -3645,7 +3671,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s2 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e104); } + if (peg$silentFails === 0) { peg$fail(peg$e105); } } if (s2 !== peg$FAILED) { s1 = [s1, s2]; @@ -3664,11 +3690,11 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 10); - if (s1.toLowerCase() === peg$c99) { + if (s1.toLowerCase() === peg$c100) { peg$currPos += 10; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e105); } + if (peg$silentFails === 0) { peg$fail(peg$e106); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; @@ -3683,7 +3709,7 @@ function peg$parse(input, options) { } if (s2 !== peg$FAILED) { peg$savedPos = s0; - s0 = peg$f84(); + s0 = peg$f85(); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -3695,11 +3721,11 @@ function peg$parse(input, options) { if (s0 === peg$FAILED) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 11); - if (s1.toLowerCase() === peg$c98) { + if (s1.toLowerCase() === peg$c99) { peg$currPos += 11; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e103); } + if (peg$silentFails === 0) { peg$fail(peg$e104); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; @@ -3714,7 +3740,7 @@ function peg$parse(input, options) { } if (s2 !== peg$FAILED) { peg$savedPos = s0; - s0 = peg$f85(); + s0 = peg$f86(); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -3733,11 +3759,11 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 13); - if (s1.toLowerCase() === peg$c100) { + if (s1.toLowerCase() === peg$c101) { peg$currPos += 13; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e106); } + if (peg$silentFails === 0) { peg$fail(peg$e107); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; @@ -3752,7 +3778,7 @@ function peg$parse(input, options) { } if (s2 !== peg$FAILED) { peg$savedPos = s0; - s0 = peg$f86(); + s0 = peg$f87(); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -3770,11 +3796,11 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 18); - if (s1.toLowerCase() === peg$c101) { + if (s1.toLowerCase() === peg$c102) { peg$currPos += 18; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e107); } + if (peg$silentFails === 0) { peg$fail(peg$e108); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; @@ -3789,7 +3815,7 @@ function peg$parse(input, options) { } if (s2 !== peg$FAILED) { peg$savedPos = s0; - s0 = peg$f87(); + s0 = peg$f88(); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -3807,11 +3833,11 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 22); - if (s1.toLowerCase() === peg$c102) { + if (s1.toLowerCase() === peg$c103) { peg$currPos += 22; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e108); } + if (peg$silentFails === 0) { peg$fail(peg$e109); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; @@ -3826,7 +3852,7 @@ function peg$parse(input, options) { } if (s2 !== peg$FAILED) { peg$savedPos = s0; - s0 = peg$f88(); + s0 = peg$f89(); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -3844,11 +3870,11 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 10); - if (s1.toLowerCase() === peg$c103) { + if (s1.toLowerCase() === peg$c104) { peg$currPos += 10; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e109); } + if (peg$silentFails === 0) { peg$fail(peg$e110); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; @@ -3863,7 +3889,7 @@ function peg$parse(input, options) { } if (s2 !== peg$FAILED) { peg$savedPos = s0; - s0 = peg$f89(); + s0 = peg$f90(); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -3881,11 +3907,11 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 14); - if (s1.toLowerCase() === peg$c104) { + if (s1.toLowerCase() === peg$c105) { peg$currPos += 14; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e110); } + if (peg$silentFails === 0) { peg$fail(peg$e111); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; @@ -3900,7 +3926,7 @@ function peg$parse(input, options) { } if (s2 !== peg$FAILED) { peg$savedPos = s0; - s0 = peg$f90(); + s0 = peg$f91(); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -3918,11 +3944,11 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 11); - if (s1.toLowerCase() === peg$c105) { + if (s1.toLowerCase() === peg$c106) { peg$currPos += 11; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e111); } + if (peg$silentFails === 0) { peg$fail(peg$e112); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; @@ -3937,7 +3963,7 @@ function peg$parse(input, options) { } if (s2 !== peg$FAILED) { peg$savedPos = s0; - s0 = peg$f91(); + s0 = peg$f92(); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -3955,11 +3981,11 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 10); - if (s1.toLowerCase() === peg$c106) { + if (s1.toLowerCase() === peg$c107) { peg$currPos += 10; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e112); } + if (peg$silentFails === 0) { peg$fail(peg$e113); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; @@ -3974,7 +4000,7 @@ function peg$parse(input, options) { } if (s2 !== peg$FAILED) { peg$savedPos = s0; - s0 = peg$f92(); + s0 = peg$f93(); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -3992,11 +4018,11 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 10); - if (s1.toLowerCase() === peg$c107) { + if (s1.toLowerCase() === peg$c108) { peg$currPos += 10; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e113); } + if (peg$silentFails === 0) { peg$fail(peg$e114); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; @@ -4011,7 +4037,7 @@ function peg$parse(input, options) { } if (s2 !== peg$FAILED) { peg$savedPos = s0; - s0 = peg$f93(); + s0 = peg$f94(); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -4029,11 +4055,11 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 18); - if (s1.toLowerCase() === peg$c108) { + if (s1.toLowerCase() === peg$c109) { peg$currPos += 18; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e114); } + if (peg$silentFails === 0) { peg$fail(peg$e115); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; @@ -4048,7 +4074,7 @@ function peg$parse(input, options) { } if (s2 !== peg$FAILED) { peg$savedPos = s0; - s0 = peg$f94(); + s0 = peg$f95(); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -4066,11 +4092,11 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 15); - if (s1.toLowerCase() === peg$c109) { + if (s1.toLowerCase() === peg$c110) { peg$currPos += 15; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e115); } + if (peg$silentFails === 0) { peg$fail(peg$e116); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; @@ -4085,7 +4111,7 @@ function peg$parse(input, options) { } if (s2 !== peg$FAILED) { peg$savedPos = s0; - s0 = peg$f95(); + s0 = peg$f96(); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -4103,11 +4129,11 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 19); - if (s1.toLowerCase() === peg$c110) { + if (s1.toLowerCase() === peg$c111) { peg$currPos += 19; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e116); } + if (peg$silentFails === 0) { peg$fail(peg$e117); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; @@ -4122,7 +4148,7 @@ function peg$parse(input, options) { } if (s2 !== peg$FAILED) { peg$savedPos = s0; - s0 = peg$f96(); + s0 = peg$f97(); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -4140,11 +4166,11 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 20); - if (s1.toLowerCase() === peg$c111) { + if (s1.toLowerCase() === peg$c112) { peg$currPos += 20; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e117); } + if (peg$silentFails === 0) { peg$fail(peg$e118); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; @@ -4159,7 +4185,7 @@ function peg$parse(input, options) { } if (s2 !== peg$FAILED) { peg$savedPos = s0; - s0 = peg$f97(); + s0 = peg$f98(); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -4177,11 +4203,11 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 23); - if (s1.toLowerCase() === peg$c112) { + if (s1.toLowerCase() === peg$c113) { peg$currPos += 23; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e118); } + if (peg$silentFails === 0) { peg$fail(peg$e119); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; @@ -4196,7 +4222,7 @@ function peg$parse(input, options) { } if (s2 !== peg$FAILED) { peg$savedPos = s0; - s0 = peg$f98(); + s0 = peg$f99(); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -4214,11 +4240,11 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 14); - if (s1.toLowerCase() === peg$c86) { + if (s1.toLowerCase() === peg$c87) { peg$currPos += 14; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e91); } + if (peg$silentFails === 0) { peg$fail(peg$e92); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; @@ -4233,7 +4259,7 @@ function peg$parse(input, options) { } if (s2 !== peg$FAILED) { peg$savedPos = s0; - s0 = peg$f99(); + s0 = peg$f100(); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -4251,11 +4277,11 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 17); - if (s1.toLowerCase() === peg$c88) { + if (s1.toLowerCase() === peg$c89) { peg$currPos += 17; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e93); } + if (peg$silentFails === 0) { peg$fail(peg$e94); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; @@ -4270,7 +4296,7 @@ function peg$parse(input, options) { } if (s2 !== peg$FAILED) { peg$savedPos = s0; - s0 = peg$f100(); + s0 = peg$f101(); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -4288,11 +4314,11 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 14); - if (s1.toLowerCase() === peg$c113) { + if (s1.toLowerCase() === peg$c114) { peg$currPos += 14; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e119); } + if (peg$silentFails === 0) { peg$fail(peg$e120); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; @@ -4307,7 +4333,7 @@ function peg$parse(input, options) { } if (s2 !== peg$FAILED) { peg$savedPos = s0; - s0 = peg$f101(); + s0 = peg$f102(); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -4325,11 +4351,11 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 9); - if (s1.toLowerCase() === peg$c114) { + if (s1.toLowerCase() === peg$c115) { peg$currPos += 9; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e120); } + if (peg$silentFails === 0) { peg$fail(peg$e121); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; @@ -4344,7 +4370,7 @@ function peg$parse(input, options) { } if (s2 !== peg$FAILED) { peg$savedPos = s0; - s0 = peg$f102(); + s0 = peg$f103(); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -4362,11 +4388,11 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 14); - if (s1.toLowerCase() === peg$c115) { + if (s1.toLowerCase() === peg$c116) { peg$currPos += 14; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e121); } + if (peg$silentFails === 0) { peg$fail(peg$e122); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; @@ -4381,7 +4407,7 @@ function peg$parse(input, options) { } if (s2 !== peg$FAILED) { peg$savedPos = s0; - s0 = peg$f103(); + s0 = peg$f104(); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -4399,11 +4425,11 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 9); - if (s1.toLowerCase() === peg$c116) { + if (s1.toLowerCase() === peg$c117) { peg$currPos += 9; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e122); } + if (peg$silentFails === 0) { peg$fail(peg$e123); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; @@ -4418,7 +4444,7 @@ function peg$parse(input, options) { } if (s2 !== peg$FAILED) { peg$savedPos = s0; - s0 = peg$f104(); + s0 = peg$f105(); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -4436,11 +4462,11 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 11); - if (s1.toLowerCase() === peg$c117) { + if (s1.toLowerCase() === peg$c118) { peg$currPos += 11; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e123); } + if (peg$silentFails === 0) { peg$fail(peg$e124); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; @@ -4455,7 +4481,7 @@ function peg$parse(input, options) { } if (s2 !== peg$FAILED) { peg$savedPos = s0; - s0 = peg$f105(); + s0 = peg$f106(); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -4473,11 +4499,11 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 10); - if (s1.toLowerCase() === peg$c118) { + if (s1.toLowerCase() === peg$c119) { peg$currPos += 10; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e124); } + if (peg$silentFails === 0) { peg$fail(peg$e125); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; @@ -4492,7 +4518,7 @@ function peg$parse(input, options) { } if (s2 !== peg$FAILED) { peg$savedPos = s0; - s0 = peg$f106(); + s0 = peg$f107(); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -4510,11 +4536,11 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 10); - if (s1.toLowerCase() === peg$c119) { + if (s1.toLowerCase() === peg$c120) { peg$currPos += 10; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e125); } + if (peg$silentFails === 0) { peg$fail(peg$e126); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; @@ -4529,7 +4555,7 @@ function peg$parse(input, options) { } if (s2 !== peg$FAILED) { peg$savedPos = s0; - s0 = peg$f107(); + s0 = peg$f108(); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -4547,11 +4573,11 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 13); - if (s1.toLowerCase() === peg$c120) { + if (s1.toLowerCase() === peg$c121) { peg$currPos += 13; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e126); } + if (peg$silentFails === 0) { peg$fail(peg$e127); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; @@ -4566,7 +4592,7 @@ function peg$parse(input, options) { } if (s2 !== peg$FAILED) { peg$savedPos = s0; - s0 = peg$f108(); + s0 = peg$f109(); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -4584,16 +4610,16 @@ function peg$parse(input, options) { peg$silentFails++; s0 = peg$currPos; - if (input.substr(peg$currPos, 2) === peg$c121) { - s1 = peg$c121; + if (input.substr(peg$currPos, 2) === peg$c122) { + s1 = peg$c122; peg$currPos += 2; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e128); } + if (peg$silentFails === 0) { peg$fail(peg$e129); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f109(); + s1 = peg$f110(); } s0 = s1; if (s0 === peg$FAILED) { @@ -4603,81 +4629,81 @@ function peg$parse(input, options) { peg$currPos++; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e104); } + if (peg$silentFails === 0) { peg$fail(peg$e105); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f110(); + s1 = peg$f111(); } s0 = s1; if (s0 === peg$FAILED) { s0 = peg$currPos; - if (input.substr(peg$currPos, 2) === peg$c122) { - s1 = peg$c122; + if (input.substr(peg$currPos, 2) === peg$c123) { + s1 = peg$c123; peg$currPos += 2; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e129); } + if (peg$silentFails === 0) { peg$fail(peg$e130); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f111(); + s1 = peg$f112(); } s0 = s1; if (s0 === peg$FAILED) { s0 = peg$currPos; - if (input.substr(peg$currPos, 2) === peg$c123) { - s1 = peg$c123; + if (input.substr(peg$currPos, 2) === peg$c124) { + s1 = peg$c124; peg$currPos += 2; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e130); } + if (peg$silentFails === 0) { peg$fail(peg$e131); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f112(); + s1 = peg$f113(); } s0 = s1; if (s0 === peg$FAILED) { s0 = peg$currPos; if (input.charCodeAt(peg$currPos) === 62) { - s1 = peg$c124; + s1 = peg$c125; peg$currPos++; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e131); } + if (peg$silentFails === 0) { peg$fail(peg$e132); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f113(); + s1 = peg$f114(); } s0 = s1; if (s0 === peg$FAILED) { s0 = peg$currPos; - if (input.substr(peg$currPos, 2) === peg$c125) { - s1 = peg$c125; + if (input.substr(peg$currPos, 2) === peg$c126) { + s1 = peg$c126; peg$currPos += 2; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e132); } + if (peg$silentFails === 0) { peg$fail(peg$e133); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f114(); + s1 = peg$f115(); } s0 = s1; if (s0 === peg$FAILED) { s0 = peg$currPos; if (input.charCodeAt(peg$currPos) === 60) { - s1 = peg$c126; + s1 = peg$c127; peg$currPos++; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e133); } + if (peg$silentFails === 0) { peg$fail(peg$e134); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f115(); + s1 = peg$f116(); } s0 = s1; } @@ -4689,7 +4715,7 @@ function peg$parse(input, options) { peg$silentFails--; if (s0 === peg$FAILED) { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e127); } + if (peg$silentFails === 0) { peg$fail(peg$e128); } } return s0; @@ -4702,7 +4728,7 @@ function peg$parse(input, options) { s1 = peg$parseoperator(); if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f116(s1); + s1 = peg$f117(s1); } s0 = s1; @@ -4714,11 +4740,11 @@ function peg$parse(input, options) { s0 = peg$currPos; if (input.charCodeAt(peg$currPos) === 92) { - s1 = peg$c127; + s1 = peg$c128; peg$currPos++; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e134); } + if (peg$silentFails === 0) { peg$fail(peg$e135); } } if (s1 !== peg$FAILED) { s2 = input.charAt(peg$currPos); @@ -4726,11 +4752,11 @@ function peg$parse(input, options) { peg$currPos++; } else { s2 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e135); } + if (peg$silentFails === 0) { peg$fail(peg$e136); } } if (s2 !== peg$FAILED) { peg$savedPos = s0; - s0 = peg$f117(s2); + s0 = peg$f118(s2); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -4756,7 +4782,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s2 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e137); } + if (peg$silentFails === 0) { peg$fail(peg$e138); } } } if (s2 !== peg$FAILED) { @@ -4769,7 +4795,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s2 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e137); } + if (peg$silentFails === 0) { peg$fail(peg$e138); } } } } @@ -4778,13 +4804,13 @@ function peg$parse(input, options) { } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f118(s1); + s1 = peg$f119(s1); } s0 = s1; peg$silentFails--; if (s0 === peg$FAILED) { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e136); } + if (peg$silentFails === 0) { peg$fail(peg$e137); } } return s0; @@ -4796,7 +4822,7 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = peg$parse_(); peg$savedPos = s0; - s1 = peg$f119(); + s1 = peg$f120(); s0 = s1; return s0; @@ -4812,7 +4838,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e139); } + if (peg$silentFails === 0) { peg$fail(peg$e140); } } while (s1 !== peg$FAILED) { s0.push(s1); @@ -4821,12 +4847,12 @@ function peg$parse(input, options) { peg$currPos++; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e139); } + if (peg$silentFails === 0) { peg$fail(peg$e140); } } } peg$silentFails--; s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e138); } + if (peg$silentFails === 0) { peg$fail(peg$e139); } return s0; } @@ -4836,7 +4862,7 @@ function peg$parse(input, options) { s0 = peg$currPos; peg$savedPos = peg$currPos; - s1 = peg$f120(); + s1 = peg$f121(); if (s1) { s1 = undefined; } else { @@ -4873,7 +4899,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s2 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e141); } + if (peg$silentFails === 0) { peg$fail(peg$e142); } } while (s2 !== peg$FAILED) { s1.push(s2); @@ -4882,7 +4908,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s2 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e141); } + if (peg$silentFails === 0) { peg$fail(peg$e142); } } } s2 = input.charAt(peg$currPos); @@ -4890,7 +4916,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s2 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e142); } + if (peg$silentFails === 0) { peg$fail(peg$e143); } } if (s2 !== peg$FAILED) { s3 = []; @@ -4901,7 +4927,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s4 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e143); } + if (peg$silentFails === 0) { peg$fail(peg$e144); } } } while (s4 !== peg$FAILED) { @@ -4913,7 +4939,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s4 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e143); } + if (peg$silentFails === 0) { peg$fail(peg$e144); } } } } @@ -4922,7 +4948,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s4 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e142); } + if (peg$silentFails === 0) { peg$fail(peg$e143); } } if (s4 !== peg$FAILED) { s5 = []; @@ -4931,7 +4957,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s6 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e137); } + if (peg$silentFails === 0) { peg$fail(peg$e138); } } while (s6 !== peg$FAILED) { s5.push(s6); @@ -4940,11 +4966,11 @@ function peg$parse(input, options) { peg$currPos++; } else { s6 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e137); } + if (peg$silentFails === 0) { peg$fail(peg$e138); } } } peg$savedPos = s0; - s0 = peg$f121(s1, s3, s5); + s0 = peg$f122(s1, s3, s5); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -4956,7 +4982,7 @@ function peg$parse(input, options) { peg$silentFails--; if (s0 === peg$FAILED) { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e140); } + if (peg$silentFails === 0) { peg$fail(peg$e141); } } return s0; @@ -4973,7 +4999,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s2 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e141); } + if (peg$silentFails === 0) { peg$fail(peg$e142); } } while (s2 !== peg$FAILED) { s1.push(s2); @@ -4982,7 +5008,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s2 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e141); } + if (peg$silentFails === 0) { peg$fail(peg$e142); } } } s2 = input.charAt(peg$currPos); @@ -4990,7 +5016,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s2 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e142); } + if (peg$silentFails === 0) { peg$fail(peg$e143); } } if (s2 !== peg$FAILED) { s3 = []; @@ -5001,7 +5027,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s4 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e143); } + if (peg$silentFails === 0) { peg$fail(peg$e144); } } if (s4 === peg$FAILED) { s4 = peg$currPos; @@ -5017,15 +5043,15 @@ function peg$parse(input, options) { } if (s5 !== peg$FAILED) { if (input.charCodeAt(peg$currPos) === 8220) { - s6 = peg$c128; + s6 = peg$c129; peg$currPos++; } else { s6 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e144); } + if (peg$silentFails === 0) { peg$fail(peg$e145); } } if (s6 !== peg$FAILED) { peg$savedPos = s4; - s4 = peg$f122(s1); + s4 = peg$f123(s1); } else { peg$currPos = s4; s4 = peg$FAILED; @@ -5048,15 +5074,15 @@ function peg$parse(input, options) { } if (s5 !== peg$FAILED) { if (input.charCodeAt(peg$currPos) === 8221) { - s6 = peg$c129; + s6 = peg$c130; peg$currPos++; } else { s6 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e145); } + if (peg$silentFails === 0) { peg$fail(peg$e146); } } if (s6 !== peg$FAILED) { peg$savedPos = s4; - s4 = peg$f123(s1); + s4 = peg$f124(s1); } else { peg$currPos = s4; s4 = peg$FAILED; @@ -5079,15 +5105,15 @@ function peg$parse(input, options) { } if (s5 !== peg$FAILED) { if (input.charCodeAt(peg$currPos) === 34) { - s6 = peg$c130; + s6 = peg$c131; peg$currPos++; } else { s6 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e146); } + if (peg$silentFails === 0) { peg$fail(peg$e147); } } if (s6 !== peg$FAILED) { peg$savedPos = s4; - s4 = peg$f124(s1); + s4 = peg$f125(s1); } else { peg$currPos = s4; s4 = peg$FAILED; @@ -5109,7 +5135,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s4 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e143); } + if (peg$silentFails === 0) { peg$fail(peg$e144); } } if (s4 === peg$FAILED) { s4 = peg$currPos; @@ -5125,15 +5151,15 @@ function peg$parse(input, options) { } if (s5 !== peg$FAILED) { if (input.charCodeAt(peg$currPos) === 8220) { - s6 = peg$c128; + s6 = peg$c129; peg$currPos++; } else { s6 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e144); } + if (peg$silentFails === 0) { peg$fail(peg$e145); } } if (s6 !== peg$FAILED) { peg$savedPos = s4; - s4 = peg$f122(s1); + s4 = peg$f123(s1); } else { peg$currPos = s4; s4 = peg$FAILED; @@ -5156,15 +5182,15 @@ function peg$parse(input, options) { } if (s5 !== peg$FAILED) { if (input.charCodeAt(peg$currPos) === 8221) { - s6 = peg$c129; + s6 = peg$c130; peg$currPos++; } else { s6 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e145); } + if (peg$silentFails === 0) { peg$fail(peg$e146); } } if (s6 !== peg$FAILED) { peg$savedPos = s4; - s4 = peg$f123(s1); + s4 = peg$f124(s1); } else { peg$currPos = s4; s4 = peg$FAILED; @@ -5187,15 +5213,15 @@ function peg$parse(input, options) { } if (s5 !== peg$FAILED) { if (input.charCodeAt(peg$currPos) === 34) { - s6 = peg$c130; + s6 = peg$c131; peg$currPos++; } else { s6 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e146); } + if (peg$silentFails === 0) { peg$fail(peg$e147); } } if (s6 !== peg$FAILED) { peg$savedPos = s4; - s4 = peg$f124(s1); + s4 = peg$f125(s1); } else { peg$currPos = s4; s4 = peg$FAILED; @@ -5212,7 +5238,7 @@ function peg$parse(input, options) { s4 = peg$parseclosingQuote(); if (s4 !== peg$FAILED) { peg$savedPos = s0; - s0 = peg$f125(s1, s3, s4); + s0 = peg$f126(s1, s3, s4); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -5224,7 +5250,7 @@ function peg$parse(input, options) { peg$silentFails--; if (s0 === peg$FAILED) { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e140); } + if (peg$silentFails === 0) { peg$fail(peg$e141); } } return s0; @@ -5239,7 +5265,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e142); } + if (peg$silentFails === 0) { peg$fail(peg$e143); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; @@ -5277,7 +5303,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s2 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e147); } + if (peg$silentFails === 0) { peg$fail(peg$e148); } } while (s2 !== peg$FAILED) { s1.push(s2); @@ -5286,7 +5312,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s2 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e147); } + if (peg$silentFails === 0) { peg$fail(peg$e148); } } } s2 = []; @@ -5295,7 +5321,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s3 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e148); } + if (peg$silentFails === 0) { peg$fail(peg$e149); } } while (s3 !== peg$FAILED) { s2.push(s3); @@ -5304,7 +5330,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s3 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e148); } + if (peg$silentFails === 0) { peg$fail(peg$e149); } } } s3 = []; @@ -5313,7 +5339,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s4 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e149); } + if (peg$silentFails === 0) { peg$fail(peg$e150); } } while (s4 !== peg$FAILED) { s3.push(s4); @@ -5322,7 +5348,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s4 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e149); } + if (peg$silentFails === 0) { peg$fail(peg$e150); } } } s4 = peg$parseoperator(); @@ -5341,7 +5367,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s2 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e150); } + if (peg$silentFails === 0) { peg$fail(peg$e151); } } while (s2 !== peg$FAILED) { s1.push(s2); @@ -5350,7 +5376,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s2 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e150); } + if (peg$silentFails === 0) { peg$fail(peg$e151); } } } s2 = peg$currPos; @@ -5397,7 +5423,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s0 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e151); } + if (peg$silentFails === 0) { peg$fail(peg$e152); } } } } @@ -5413,7 +5439,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s0 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e152); } + if (peg$silentFails === 0) { peg$fail(peg$e153); } } if (s0 === peg$FAILED) { s0 = peg$currPos; @@ -5442,24 +5468,24 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 11); - if (s1.toLowerCase() === peg$c131) { + if (s1.toLowerCase() === peg$c132) { peg$currPos += 11; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e153); } + if (peg$silentFails === 0) { peg$fail(peg$e154); } } if (s1 === peg$FAILED) { s1 = input.substr(peg$currPos, 12); - if (s1.toLowerCase() === peg$c132) { + if (s1.toLowerCase() === peg$c133) { peg$currPos += 12; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e154); } + if (peg$silentFails === 0) { peg$fail(peg$e155); } } } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f126(); + s1 = peg$f127(); } s0 = s1; @@ -5471,24 +5497,24 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 14); - if (s1.toLowerCase() === peg$c133) { + if (s1.toLowerCase() === peg$c134) { peg$currPos += 14; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e155); } + if (peg$silentFails === 0) { peg$fail(peg$e156); } } if (s1 === peg$FAILED) { s1 = input.substr(peg$currPos, 15); - if (s1.toLowerCase() === peg$c134) { + if (s1.toLowerCase() === peg$c135) { peg$currPos += 15; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e156); } + if (peg$silentFails === 0) { peg$fail(peg$e157); } } } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f127(); + s1 = peg$f128(); } s0 = s1; @@ -5500,24 +5526,24 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = input.substr(peg$currPos, 11); - if (s1.toLowerCase() === peg$c135) { + if (s1.toLowerCase() === peg$c136) { peg$currPos += 11; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e157); } + if (peg$silentFails === 0) { peg$fail(peg$e158); } } if (s1 === peg$FAILED) { s1 = input.substr(peg$currPos, 12); - if (s1.toLowerCase() === peg$c136) { + if (s1.toLowerCase() === peg$c137) { peg$currPos += 12; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e158); } + if (peg$silentFails === 0) { peg$fail(peg$e159); } } } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f128(); + s1 = peg$f129(); } s0 = s1; diff --git a/src/libs/SearchParser/searchParser.peggy b/src/libs/SearchParser/searchParser.peggy index 75238c3cbcfc..679a79d3a4fb 100644 --- a/src/libs/SearchParser/searchParser.peggy +++ b/src/libs/SearchParser/searchParser.peggy @@ -323,6 +323,7 @@ key "key" / reimbursable / billable / declined + / held / action / has / is diff --git a/src/libs/SearchQueryUtils.ts b/src/libs/SearchQueryUtils.ts index d97328d375b5..28d9717c4e50 100644 --- a/src/libs/SearchQueryUtils.ts +++ b/src/libs/SearchQueryUtils.ts @@ -1414,6 +1414,7 @@ function buildQueryStringFromFilterFormValues(filterValues: Partial filterValues.at(0) === value); } diff --git a/src/libs/SearchUIUtils.ts b/src/libs/SearchUIUtils.ts index 574c73b8a824..a6f697f9319b 100644 --- a/src/libs/SearchUIUtils.ts +++ b/src/libs/SearchUIUtils.ts @@ -239,6 +239,7 @@ import { getTransactionViolations, hasDisplayableMCC, isDeletedTransaction, + isOnHold, isPending, isScanning, isViolationDismissed, @@ -332,6 +333,7 @@ const transactionColumnNamesToSortingProperty: TransactionSorting = { [CONST.SEARCH.TABLE_COLUMNS.ORIGINAL_AMOUNT]: 'originalAmount' as const, [CONST.SEARCH.TABLE_COLUMNS.REIMBURSABLE]: 'reimbursable' as const, [CONST.SEARCH.TABLE_COLUMNS.BILLABLE]: 'billable' as const, + [CONST.SEARCH.TABLE_COLUMNS.HELD]: null, [CONST.SEARCH.TABLE_COLUMNS.MCC]: 'mcc' as const, [CONST.SEARCH.TABLE_COLUMNS.TAX_CODE]: 'taxCode' as const, [CONST.SEARCH.TABLE_COLUMNS.TYPE]: null, @@ -3951,7 +3953,7 @@ function compareValues(a: unknown, b: unknown, sortOrder: SortOrder, sortBy: str /** * @private * Gets the value to use for sorting a transaction by a given property. - * Handles special cases like comments and boolean fields (reimbursable, billable). + * Handles special cases like comments and boolean fields (reimbursable, billable, held). */ function getTransactionSortValue(transaction: TransactionListItemType, sortingProperty: string): unknown { if (sortingProperty === 'comment') { @@ -3963,6 +3965,10 @@ function getTransactionSortValue(transaction: TransactionListItemType, sortingPr return boolValue ? CONST.SEARCH.BOOLEAN.YES : CONST.SEARCH.BOOLEAN.NO; } + if (sortingProperty === CONST.SEARCH.TABLE_COLUMNS.HELD) { + return isOnHold(transaction) ? CONST.SEARCH.BOOLEAN.YES : CONST.SEARCH.BOOLEAN.NO; + } + return transaction[sortingProperty as keyof TransactionListItemType]; } @@ -4143,15 +4149,18 @@ function getSortedTransactionData( }); } - if (!sortingProperty) { + // Held has no property of its own on the row, so getTransactionSortValue reads it from the hold on the transaction comment + const sortKey = sortBy === CONST.SEARCH.TABLE_COLUMNS.HELD ? sortBy : sortingProperty; + + if (!sortKey) { return data; } return data.sort((a, b) => { - const aValue = getTransactionSortValue(a, sortingProperty); - const bValue = getTransactionSortValue(b, sortingProperty); + const aValue = getTransactionSortValue(a, sortKey); + const bValue = getTransactionSortValue(b, sortKey); - const primaryComparison = compareValues(aValue, bValue, sortOrder, sortingProperty, localeCompare); + const primaryComparison = compareValues(aValue, bValue, sortOrder, sortKey, localeCompare); if (primaryComparison !== 0) { return primaryComparison; @@ -4526,6 +4535,8 @@ function getSearchColumnTranslationKey(column: SearchSortBy, type?: SearchDataTy return 'common.reimbursable'; case CONST.SEARCH.TABLE_COLUMNS.BILLABLE: return 'common.billable'; + case CONST.SEARCH.TABLE_COLUMNS.HELD: + return 'search.filters.held'; case CONST.SEARCH.TABLE_COLUMNS.MCC: return 'common.mcc'; case CONST.SEARCH.TABLE_COLUMNS.TAX_CODE: @@ -5706,6 +5717,10 @@ const FILTER_VIEW_MAP = { labelKey: 'search.has', icon: 'Paperclip', }, + [CONST.SEARCH.SYNTAX_FILTER_KEYS.HELD]: { + labelKey: 'search.filters.held', + icon: 'Stopwatch', + }, [CONST.SEARCH.SYNTAX_FILTER_KEYS.IN]: { labelKey: 'common.in', icon: 'Inbox', @@ -5998,7 +6013,9 @@ function getDisplayValue( key === FILTER_KEYS.REIMBURSABLE || key === FILTER_KEYS.REIMBURSABLE_NOT || key === FILTER_KEYS.DECLINED || - key === FILTER_KEYS.DECLINED_NOT + key === FILTER_KEYS.DECLINED_NOT || + key === FILTER_KEYS.HELD || + key === FILTER_KEYS.HELD_NOT ) { const formValue = form[key]; return formValue ? translate(`common.${formValue}`) : undefined; @@ -6303,7 +6320,7 @@ function mapFiltersFormToLabelValueList( } function getSingleSelectFilterOptions(filterKey: SearchAdvancedFiltersKey, translate: LocalizedTranslate) { - if (filterKey === FILTER_KEYS.BILLABLE || filterKey === FILTER_KEYS.REIMBURSABLE || filterKey === FILTER_KEYS.DECLINED) { + if (filterKey === FILTER_KEYS.BILLABLE || filterKey === FILTER_KEYS.REIMBURSABLE || filterKey === FILTER_KEYS.DECLINED || filterKey === FILTER_KEYS.HELD) { return Object.values(CONST.SEARCH.BOOLEAN).map((value) => ({value, text: translate(`common.${value}`)})); } @@ -6680,6 +6697,7 @@ function getColumnsToShow({ [CONST.SEARCH.TABLE_COLUMNS.ORIGINAL_AMOUNT]: false, [CONST.SEARCH.TABLE_COLUMNS.REIMBURSABLE]: shouldShowReimbursableColumn, [CONST.SEARCH.TABLE_COLUMNS.BILLABLE]: shouldShowBillableColumn, + [CONST.SEARCH.TABLE_COLUMNS.HELD]: false, [CONST.SEARCH.TABLE_COLUMNS.COMMENTS]: shouldShowCommentsColumn, [CONST.SEARCH.TABLE_COLUMNS.TOTAL_AMOUNT]: true, [CONST.SEARCH.TABLE_COLUMNS.TOTAL]: false, @@ -6708,6 +6726,7 @@ function getColumnsToShow({ [CONST.SEARCH.TABLE_COLUMNS.VIOLATIONS]: false, [CONST.SEARCH.TABLE_COLUMNS.REIMBURSABLE]: false, [CONST.SEARCH.TABLE_COLUMNS.BILLABLE]: false, + [CONST.SEARCH.TABLE_COLUMNS.HELD]: false, [CONST.SEARCH.TABLE_COLUMNS.MCC]: false, [CONST.SEARCH.TABLE_COLUMNS.TAX_CODE]: false, [CONST.SEARCH.TABLE_COLUMNS.TAX_RATE]: false, @@ -7147,6 +7166,7 @@ function getTableMinWidth( } else if ( column === CONST.SEARCH.TABLE_COLUMNS.REIMBURSABLE || column === CONST.SEARCH.TABLE_COLUMNS.BILLABLE || + column === CONST.SEARCH.TABLE_COLUMNS.HELD || column === CONST.SEARCH.TABLE_COLUMNS.MCC || column === CONST.SEARCH.TABLE_COLUMNS.TAX_CODE ) { diff --git a/src/styles/utils/index.ts b/src/styles/utils/index.ts index c67a6f25b9ee..82951fac73fa 100644 --- a/src/styles/utils/index.ts +++ b/src/styles/utils/index.ts @@ -2122,6 +2122,7 @@ const createStyleUtils = (theme: ThemeColors, styles: ThemeStyles) => ({ break; case CONST.SEARCH.TABLE_COLUMNS.REIMBURSABLE: case CONST.SEARCH.TABLE_COLUMNS.BILLABLE: + case CONST.SEARCH.TABLE_COLUMNS.HELD: columnWidth = {...getWidthStyle(variables.w80)}; break; case CONST.SEARCH.TABLE_COLUMNS.MCC: diff --git a/src/types/form/SearchAdvancedFiltersForm.ts b/src/types/form/SearchAdvancedFiltersForm.ts index b0744c0c3c8f..b4675ca215ee 100644 --- a/src/types/form/SearchAdvancedFiltersForm.ts +++ b/src/types/form/SearchAdvancedFiltersForm.ts @@ -249,6 +249,8 @@ const FILTER_KEYS = { DECLINED_NOT: 'declinedNot', DECLINED: 'declined', + HELD_NOT: 'heldNot', + HELD: 'held', ACTION_NOT: 'actionNot', ACTION: 'action', @@ -359,6 +361,8 @@ const ALLOWED_TYPE_FILTERS: Record> = { FILTER_KEYS.BILLABLE_NOT, FILTER_KEYS.DECLINED, FILTER_KEYS.DECLINED_NOT, + FILTER_KEYS.HELD, + FILTER_KEYS.HELD_NOT, FILTER_KEYS.REPORT_ID, FILTER_KEYS.REPORT_ID_NOT, FILTER_KEYS.SUBMITTED_ON, @@ -939,6 +943,8 @@ type SearchAdvancedFiltersForm = Form< [FILTER_KEYS.DECLINED]: BooleanValue; [FILTER_KEYS.DECLINED_NOT]: BooleanValue; + [FILTER_KEYS.HELD]: BooleanValue; + [FILTER_KEYS.HELD_NOT]: BooleanValue; [FILTER_KEYS.ACTION]: string; [FILTER_KEYS.ACTION_NOT]: string; diff --git a/tests/unit/ReportUtilsTest.ts b/tests/unit/ReportUtilsTest.ts index 550153d198d6..0ce2ea42401c 100644 --- a/tests/unit/ReportUtilsTest.ts +++ b/tests/unit/ReportUtilsTest.ts @@ -25293,6 +25293,20 @@ describe('ReportUtils', () => { expect(getTransactionSortValue(nonBillable, CONST.SEARCH.TABLE_COLUMNS.BILLABLE, mockReport, mockPolicy)).toBe(0); }); + it('should return 1 for an expense on hold and 0 for one that is not', () => { + // Given an expense on hold and an expense whose hold was removed, which leaves an empty hold + const held = createMockTransaction({comment: {hold: '123'}}); + const unheld = createMockTransaction({comment: {hold: ''}}); + + // When their held sort values are read + const heldSortValue = getTransactionSortValue(held, CONST.SEARCH.TABLE_COLUMNS.HELD, mockReport, mockPolicy); + const unheldSortValue = getTransactionSortValue(unheld, CONST.SEARCH.TABLE_COLUMNS.HELD, mockReport, mockPolicy); + + // Then only the expense on hold sorts as held + expect(heldSortValue).toBe(1); + expect(unheldSortValue).toBe(0); + }); + it('should return amount for TOTAL_AMOUNT column', () => { const transaction = createMockTransaction({amount: 5000}); const result = getTransactionSortValue(transaction, CONST.SEARCH.TABLE_COLUMNS.TOTAL_AMOUNT, mockReport, mockPolicy); diff --git a/tests/unit/Search/SearchQueryUtilsTest.ts b/tests/unit/Search/SearchQueryUtilsTest.ts index 9e80544b68e4..6c5f44fe8b83 100644 --- a/tests/unit/Search/SearchQueryUtilsTest.ts +++ b/tests/unit/Search/SearchQueryUtilsTest.ts @@ -638,6 +638,48 @@ describe('SearchQueryUtils', () => { expect(result).toEqual('type:expense -declined:no'); }); + test('held filter value', () => { + // Given the Held filter set to yes on an expense search + const filterValues: Partial = { + type: 'expense', + held: 'yes', + }; + + // When the query string is built from the form + const result = buildQueryStringFromFilterFormValues(filterValues); + + // Then the filter is written with the held key + expect(result).toEqual('type:expense held:yes'); + }); + + test('negated held filter value', () => { + // Given the Held filter negated on an expense search + const filterValues: Partial = { + type: 'expense', + heldNot: 'no', + }; + + // When the query string is built from the form + const result = buildQueryStringFromFilterFormValues(filterValues); + + // Then the held key gets the "-" prefix + expect(result).toEqual('type:expense -held:no'); + }); + + test('held filter is dropped for expense reports', () => { + // Given the Held filter set on an expense report search, which only supports it for expenses + const filterValues: Partial = { + type: 'expense-report', + held: 'yes', + }; + + // When the query string is built from the form + const result = buildQueryStringFromFilterFormValues(filterValues); + + // Then the held filter is not written + expect(result).toEqual('type:expense-report'); + }); + test('negated receipt type filter value', () => { const filterValues: Partial = { type: 'expense', @@ -2288,6 +2330,52 @@ describe('SearchQueryUtils', () => { expect(result.declined).toBeUndefined(); }); + test('held filter populates the form with a yes or no value', () => { + // Given a query that filters expenses on whether they are on hold + const queryJSON = buildSearchQueryJSON('sortBy:date sortOrder:desc type:expense held:yes'); + + if (!queryJSON) { + throw new Error('Failed to parse query string'); + } + + // When the form values are built from the query + const result = buildFilterFormValuesFromQuery(queryJSON, {}, {}, {}, {}, {}, {}); + + // Then the Held filter holds the yes value + expect(result.held).toEqual('yes'); + }); + + test('held filter ignores values other than yes and no', () => { + // Given a hand-typed query with a value the boolean filter does not accept + const queryJSON = buildSearchQueryJSON('sortBy:date sortOrder:desc type:expense held:maybe'); + + if (!queryJSON) { + throw new Error('Failed to parse query string'); + } + + // When the form values are built from the query + const result = buildFilterFormValuesFromQuery(queryJSON, {}, {}, {}, {}, {}, {}); + + // Then the invalid value is dropped instead of being shown as a selection + expect(result.held).toBeUndefined(); + }); + + test('negated held filter populates heldNot', () => { + // Given a query that excludes held expenses with the "-" prefix + const queryJSON = buildSearchQueryJSON('sortBy:date sortOrder:desc type:expense -held:yes'); + + if (!queryJSON) { + throw new Error('Failed to parse query string'); + } + + // When the form values are built from the query + const result = buildFilterFormValuesFromQuery(queryJSON, {}, {}, {}, {}, {}, {}); + + // Then the value lands in the negated form key only + expect(result.heldNot).toEqual('yes'); + expect(result.held).toBeUndefined(); + }); + test('negated receipt type filter populates receiptTypeNot', () => { // Negation in the query syntax uses the "-" prefix, which round-trips to the receiptTypeNot form value. const queryString = 'sortBy:date sortOrder:desc type:expense -receipt-type:hotel'; diff --git a/tests/unit/Search/SearchUIUtilsTest.ts b/tests/unit/Search/SearchUIUtilsTest.ts index b8d2f954557c..94e48f59c01f 100644 --- a/tests/unit/Search/SearchUIUtilsTest.ts +++ b/tests/unit/Search/SearchUIUtilsTest.ts @@ -8510,6 +8510,7 @@ describe('SearchUIUtils', () => { it.each([ {columnName: 'Reimbursable', sortBy: CONST.SEARCH.TABLE_COLUMNS.REIMBURSABLE, boolOverride: {reimbursable: true}}, {columnName: 'Billable', sortBy: CONST.SEARCH.TABLE_COLUMNS.BILLABLE, boolOverride: {billable: true}}, + {columnName: 'Held', sortBy: CONST.SEARCH.TABLE_COLUMNS.HELD, boolOverride: {comment: {hold: '123'}}}, ])('should still tie-break tied $columnName rows by inserted honoring sortOrder', ({sortBy, boolOverride}) => { // Guards against this fix over-reaching: boolean columns resolve to a non-empty "yes"/"no" value, so every row // ties on the primary comparison but is NOT empty — the inserted/transactionID tie breaker must still run and @@ -8547,6 +8548,43 @@ describe('SearchUIUtils', () => { expect(descendingResult.map((item) => ('transactionID' in item ? item.transactionID : undefined))).toEqual(['bool-mar', 'bool-feb', 'bool-jan']); }); + it('should sort the held column by whether the expense is on hold, with expenses not on hold first when ascending', () => { + // Given one expense on hold, one that was unheld (its hold is an empty string), and one that was never held + const baseTransaction = transactionsListItems.at(0); + if (!baseTransaction) { + throw new Error('Missing base transaction fixture'); + } + const transactions: TransactionListItemType[] = [ + {...baseTransaction, transactionID: 'held', keyForList: 'held', inserted: '2024-01-01', comment: {hold: '123'}}, + {...baseTransaction, transactionID: 'unheld', keyForList: 'unheld', inserted: '2024-02-02', comment: {hold: ''}}, + {...baseTransaction, transactionID: 'never-held', keyForList: 'never-held', inserted: '2024-03-03', comment: {}}, + ]; + + // When the expenses are sorted by the held column in both directions + const ascendingResult = SearchUIUtils.getSortedSections( + CONST.SEARCH.DATA_TYPES.EXPENSE, + [...transactions], + localeCompare, + translateLocal, + CONST.SEARCH.TABLE_COLUMNS.HELD, + CONST.SEARCH.SORT_ORDER.ASC, + undefined, + ); + const descendingResult = SearchUIUtils.getSortedSections( + CONST.SEARCH.DATA_TYPES.EXPENSE, + [...transactions], + localeCompare, + translateLocal, + CONST.SEARCH.TABLE_COLUMNS.HELD, + CONST.SEARCH.SORT_ORDER.DESC, + undefined, + ); + + // Then the expense on hold comes last ascending and first descending, and the unheld expense counts as not held + expect(ascendingResult.map((item) => ('transactionID' in item ? item.transactionID : undefined))).toEqual(['unheld', 'never-held', 'held']); + expect(descendingResult.map((item) => ('transactionID' in item ? item.transactionID : undefined))).toEqual(['held', 'never-held', 'unheld']); + }); + it('should sort the exported-to column by export name, with never exported rows first when ascending', () => { // The backend sorts this column by the name of the export, so the local sort has to do the same instead of // only sorting on whether the report was exported. Rows that were never exported have no name, so they end diff --git a/tests/unit/Search/__snapshots__/ColumnAvailabilityTest.ts.snap b/tests/unit/Search/__snapshots__/ColumnAvailabilityTest.ts.snap index c85a7d23b544..d4443f54c67c 100644 --- a/tests/unit/Search/__snapshots__/ColumnAvailabilityTest.ts.snap +++ b/tests/unit/Search/__snapshots__/ColumnAvailabilityTest.ts.snap @@ -19,6 +19,7 @@ exports[`Column availability single source of truth the derived picker lists mat "originalamount", "reimbursable", "billable", + "held", "mcc", "taxCode", "taxrate", @@ -61,6 +62,7 @@ exports[`Column availability single source of truth the derived picker lists mat "base62ReportID", "reimbursable", "billable", + "held", "mcc", "taxCode", "taxrate", diff --git a/tests/unit/SearchParserTest.ts b/tests/unit/SearchParserTest.ts index 50801385c9cb..f95119159ee6 100644 --- a/tests/unit/SearchParserTest.ts +++ b/tests/unit/SearchParserTest.ts @@ -1393,6 +1393,34 @@ const keywordTests = [ }, }, }, + { + query: 'held:yes', + expected: { + type: 'expense', + sortBy: 'date', + sortOrder: 'desc', + view: 'table', + filters: { + operator: 'eq', + left: 'held', + right: 'yes', + }, + }, + }, + { + query: '-held:no', + expected: { + type: 'expense', + sortBy: 'date', + sortOrder: 'desc', + view: 'table', + filters: { + operator: 'neq', + left: 'held', + right: 'no', + }, + }, + }, { query: 'columns:per-diem,drafts,draft,tax-rate,policy-name,withdrawal-id,bank-account', expected: { diff --git a/tests/unit/hooks/useAutocompleteSuggestions.test.ts b/tests/unit/hooks/useAutocompleteSuggestions.test.ts index 4c4776b020fc..7c4d766a900e 100644 --- a/tests/unit/hooks/useAutocompleteSuggestions.test.ts +++ b/tests/unit/hooks/useAutocompleteSuggestions.test.ts @@ -475,6 +475,21 @@ describe('useAutocompleteSuggestions', () => { expect(result.current.at(0)?.filterKey).toBe(CONST.SEARCH.SYNTAX_FILTER_KEYS.DECLINED); }); + it('returns yes and no suggestions for held key', () => { + // Given the user has typed the held key with no value yet + parseForAutocomplete.mockReturnValue({ + autocomplete: {key: CONST.SEARCH.SYNTAX_FILTER_KEYS.HELD, value: ''}, + ranges: [], + }); + + // When suggestions are computed + const {result} = renderHook(() => useAutocompleteSuggestions({...defaultParams, autocompleteQueryValue: 'held:'})); + + // Then both boolean values are suggested for the held key + expect(result.current.map((suggestion) => suggestion.text)).toEqual([CONST.SEARCH.BOOLEAN.NO, CONST.SEARCH.BOOLEAN.YES]); + expect(result.current.at(0)?.filterKey).toBe(CONST.SEARCH.SYNTAX_FILTER_KEYS.HELD); + }); + it('returns in: suggestions for chat reports', () => { parseForAutocomplete.mockReturnValue({ autocomplete: {key: CONST.SEARCH.SYNTAX_FILTER_KEYS.IN, value: 'gen'},