{"version":3,"file":"unaryOperators.mjs","sources":["../../../src/utils/unaryOperators.ts"],"sourcesContent":["import { Registry, RegistryItem } from './Registry';\n\nexport enum UnaryOperationID {\n  Abs = 'abs',\n  Exp = 'exp',\n  Ln = 'ln',\n  Round = 'round',\n  Floor = 'floor',\n  Ceil = 'ceil',\n  Percent = 'percent',\n}\n\nexport type UnaryOperation = (value: number, total?: number) => number;\n\ninterface UnaryOperatorInfo extends RegistryItem {\n  operation: UnaryOperation;\n  unaryOperationID: UnaryOperationID;\n}\n\nexport const unaryOperators = new Registry<UnaryOperatorInfo>(() => {\n  return [\n    {\n      id: UnaryOperationID.Abs,\n      name: 'Absolute value',\n      operation: (value: number) => Math.abs(value),\n      unaryOperationID: UnaryOperationID.Abs,\n    },\n    {\n      id: UnaryOperationID.Exp,\n      name: 'Natural exponent',\n      operation: (value: number) => Math.exp(value),\n      unaryOperationID: UnaryOperationID.Exp,\n    },\n    {\n      id: UnaryOperationID.Ln,\n      name: 'Natural logarithm',\n      operation: (value: number) => Math.log(value),\n      unaryOperationID: UnaryOperationID.Ln,\n    },\n    {\n      id: UnaryOperationID.Round,\n      name: 'Round',\n      operation: (value: number) => Math.round(value),\n      unaryOperationID: UnaryOperationID.Round,\n    },\n    {\n      id: UnaryOperationID.Floor,\n      name: 'Floor',\n      operation: (value: number) => Math.floor(value),\n      unaryOperationID: UnaryOperationID.Floor,\n    },\n    {\n      id: UnaryOperationID.Ceil,\n      name: 'Ceiling',\n      operation: (value: number) => Math.ceil(value),\n      unaryOperationID: UnaryOperationID.Ceil,\n    },\n    {\n      id: UnaryOperationID.Percent,\n      name: 'Percentage',\n      operation: (value: number, total = 1) => value / (total || 1),\n      unaryOperationID: UnaryOperationID.Percent,\n    },\n  ];\n});\n"],"names":["UnaryOperationID"],"mappings":";;;AAEO,IAAK,gBAAA,qBAAAA,iBAAAA,KAAL;AACL,EAAAA,kBAAA,KAAA,CAAA,GAAM,KAAA;AACN,EAAAA,kBAAA,KAAA,CAAA,GAAM,KAAA;AACN,EAAAA,kBAAA,IAAA,CAAA,GAAK,IAAA;AACL,EAAAA,kBAAA,OAAA,CAAA,GAAQ,OAAA;AACR,EAAAA,kBAAA,OAAA,CAAA,GAAQ,OAAA;AACR,EAAAA,kBAAA,MAAA,CAAA,GAAO,MAAA;AACP,EAAAA,kBAAA,SAAA,CAAA,GAAU,SAAA;AAPA,EAAA,OAAAA,iBAAAA;AAAA,CAAA,EAAA,gBAAA,IAAA,EAAA;AAiBL,MAAM,cAAA,GAAiB,IAAI,QAAA,CAA4B,MAAM;AAClE,EAAA,OAAO;AAAA,IACL;AAAA,MACE,EAAA,EAAI,KAAA;AAAA,MACJ,IAAA,EAAM,gBAAA;AAAA,MACN,SAAA,EAAW,CAAC,KAAA,KAAkB,IAAA,CAAK,IAAI,KAAK,CAAA;AAAA,MAC5C,gBAAA,EAAkB,KAAA;AAAA,KACpB;AAAA,IACA;AAAA,MACE,EAAA,EAAI,KAAA;AAAA,MACJ,IAAA,EAAM,kBAAA;AAAA,MACN,SAAA,EAAW,CAAC,KAAA,KAAkB,IAAA,CAAK,IAAI,KAAK,CAAA;AAAA,MAC5C,gBAAA,EAAkB,KAAA;AAAA,KACpB;AAAA,IACA;AAAA,MACE,EAAA,EAAI,IAAA;AAAA,MACJ,IAAA,EAAM,mBAAA;AAAA,MACN,SAAA,EAAW,CAAC,KAAA,KAAkB,IAAA,CAAK,IAAI,KAAK,CAAA;AAAA,MAC5C,gBAAA,EAAkB,IAAA;AAAA,KACpB;AAAA,IACA;AAAA,MACE,EAAA,EAAI,OAAA;AAAA,MACJ,IAAA,EAAM,OAAA;AAAA,MACN,SAAA,EAAW,CAAC,KAAA,KAAkB,IAAA,CAAK,MAAM,KAAK,CAAA;AAAA,MAC9C,gBAAA,EAAkB,OAAA;AAAA,KACpB;AAAA,IACA;AAAA,MACE,EAAA,EAAI,OAAA;AAAA,MACJ,IAAA,EAAM,OAAA;AAAA,MACN,SAAA,EAAW,CAAC,KAAA,KAAkB,IAAA,CAAK,MAAM,KAAK,CAAA;AAAA,MAC9C,gBAAA,EAAkB,OAAA;AAAA,KACpB;AAAA,IACA;AAAA,MACE,EAAA,EAAI,MAAA;AAAA,MACJ,IAAA,EAAM,SAAA;AAAA,MACN,SAAA,EAAW,CAAC,KAAA,KAAkB,IAAA,CAAK,KAAK,KAAK,CAAA;AAAA,MAC7C,gBAAA,EAAkB,MAAA;AAAA,KACpB;AAAA,IACA;AAAA,MACE,EAAA,EAAI,SAAA;AAAA,MACJ,IAAA,EAAM,YAAA;AAAA,MACN,WAAW,CAAC,KAAA,EAAe,KAAA,GAAQ,CAAA,KAAM,SAAS,KAAA,IAAS,CAAA,CAAA;AAAA,MAC3D,gBAAA,EAAkB,SAAA;AAAA;AACpB,GACF;AACF,CAAC;;;;"}