{
  "version": 3,
  "sources": ["../index.ts", "../src/index.ts"],
  "sourcesContent": ["export * from './src'\n", "import { unwrap, toJS } from '@tko/observable'\n\nconst sproto = String.prototype\n\nexport interface Filters {\n  uppercase(value)\n  lowercase(value)\n  default(value, defaultValue)\n  replace(value, search, replace)\n  fit(value, length, replacement, trimWhere)\n  json(rootObject, space, replacer)\n  number(value)\n}\n\nconst filters: Filters = {\n  // Convert value to uppercase\n  uppercase: function (value) {\n    return sproto.toUpperCase.call(unwrap(value))\n  },\n\n  // Convert value to lowercase\n  lowercase: function (value) {\n    return sproto.toLowerCase.call(unwrap(value))\n  },\n\n  // Return default value if the input value is empty or null\n  default: function (value, defaultValue) {\n    value = unwrap(value)\n    if (typeof value === 'function') {\n      return value\n    }\n    if (typeof value === 'string') {\n      return sproto.trim.call(value) === '' ? defaultValue : value\n    }\n    return value == null || value.length == 0 ? defaultValue : value\n  },\n\n  // Return the value with the search string replaced with the replacement string\n  replace: function (value, search, replace) {\n    return sproto.replace.call(unwrap(value), search, replace)\n  },\n\n  fit: function (value, length, replacement, trimWhere) {\n    value = unwrap(value)\n    if (length && ('' + value).length > length) {\n      replacement = '' + (replacement || '...')\n      length = length - replacement.length\n      value = '' + value\n      switch (trimWhere) {\n        case 'left':\n          return replacement + value.slice(-length)\n        case 'middle': {\n          const leftLen = Math.ceil(length / 2)\n          return value.substring(0, leftLen) + replacement + value.slice(leftLen - length)\n        }\n        default:\n          return value.substring(0, length) + replacement\n      }\n    } else {\n      return value\n    }\n  },\n\n  // Convert a model object to JSON\n  json: function (rootObject, space, replacer) {\n    // replacer and space are optional\n    return JSON.stringify(toJS(rootObject), replacer, space)\n  },\n\n  // Format a number using the browser's toLocaleString\n  number: function (value) {\n    return (+unwrap(value)).toLocaleString()\n  }\n}\n\n// Export the filters object for general access\nexport { filters }\n"],
  "mappings": ";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,wBAA6B;AAE7B,IAAM,SAAS,OAAO;AAYtB,IAAM,UAAmB;AAAA;AAAA,EAEvB,WAAW,SAAU,OAAO;AAC1B,WAAO,OAAO,YAAY,SAAK,0BAAO,KAAK,CAAC;AAAA,EAC9C;AAAA;AAAA,EAGA,WAAW,SAAU,OAAO;AAC1B,WAAO,OAAO,YAAY,SAAK,0BAAO,KAAK,CAAC;AAAA,EAC9C;AAAA;AAAA,EAGA,SAAS,SAAU,OAAO,cAAc;AACtC,gBAAQ,0BAAO,KAAK;AACpB,QAAI,OAAO,UAAU,YAAY;AAC/B,aAAO;AAAA,IACT;AACA,QAAI,OAAO,UAAU,UAAU;AAC7B,aAAO,OAAO,KAAK,KAAK,KAAK,MAAM,KAAK,eAAe;AAAA,IACzD;AACA,WAAO,SAAS,QAAQ,MAAM,UAAU,IAAI,eAAe;AAAA,EAC7D;AAAA;AAAA,EAGA,SAAS,SAAU,OAAO,QAAQ,SAAS;AACzC,WAAO,OAAO,QAAQ,SAAK,0BAAO,KAAK,GAAG,QAAQ,OAAO;AAAA,EAC3D;AAAA,EAEA,KAAK,SAAU,OAAO,QAAQ,aAAa,WAAW;AACpD,gBAAQ,0BAAO,KAAK;AACpB,QAAI,WAAW,KAAK,OAAO,SAAS,QAAQ;AAC1C,oBAAc,MAAM,eAAe;AACnC,eAAS,SAAS,YAAY;AAC9B,cAAQ,KAAK;AACb,cAAQ,WAAW;AAAA,QACjB,KAAK;AACH,iBAAO,cAAc,MAAM,MAAM,CAAC,MAAM;AAAA,QAC1C,KAAK,UAAU;AACb,gBAAM,UAAU,KAAK,KAAK,SAAS,CAAC;AACpC,iBAAO,MAAM,UAAU,GAAG,OAAO,IAAI,cAAc,MAAM,MAAM,UAAU,MAAM;AAAA,QACjF;AAAA,QACA;AACE,iBAAO,MAAM,UAAU,GAAG,MAAM,IAAI;AAAA,MACxC;AAAA,IACF,OAAO;AACL,aAAO;AAAA,IACT;AAAA,EACF;AAAA;AAAA,EAGA,MAAM,SAAU,YAAY,OAAO,UAAU;AAE3C,WAAO,KAAK,cAAU,wBAAK,UAAU,GAAG,UAAU,KAAK;AAAA,EACzD;AAAA;AAAA,EAGA,QAAQ,SAAU,OAAO;AACvB,YAAQ,KAAC,0BAAO,KAAK,GAAG,eAAe;AAAA,EACzC;AACF;",
  "names": []
}
