{"version":3,"sources":["time.ts"],"sourcesContent":["import { Unit, code_to_extended_symbol} from \"../compiler/unit_codes.ts\";\nimport { Quantity } from \"./quantity.ts\";\n\nexport class Time extends Date {\n\n\n\tconstructor(time:string|number|Date = new Date()) {\n\t\tif (typeof time == \"string\") super(Date.parse(time.replace(/~/g,\"\")))\n\t\telse if (time instanceof Date) super(time)\n\t\telse super(time);\n\t}\n\n\toverride toString(): string {\n\t\treturn `~${this.toISOString().replace(\"T\",\" \").replace(\"Z\",\"\")}~`\n\t}\n\n\tplus(time:Quantity<Unit.SECOND|Unit.CMO>): Time\n\tplus(amount: number, unit: code_to_extended_symbol<Unit.SECOND|Unit.CMO>): Time\n\tplus(time:Quantity<Unit.SECOND|Unit.CMO>|number, unit?: code_to_extended_symbol<Unit.SECOND|Unit.CMO>) {\n\t\tif (typeof time == \"number\") {\n\t\t\tif (unit == undefined) throw new Error(\"unit is required\")\n\t\t\telse time = new Quantity(time, unit)\n\t\t}\n\n\t\tif (time.hasBaseUnit('s')) {\n\t\t\treturn new Time(this.getTime()+(time.value*1000))\n\t\t}\n\t\telse if (time.hasBaseUnit('Cmo')) {\n\t\t\tconst new_time = new Time(this);\n\t\t\tnew_time.add(time);\n\t\t\treturn new_time\n\t\t}\n\t\telse {\n\t\t\tthrow new Error(\"Invalid time unit\")\n\t\t}\n\t}\n\n\tminus(time:Quantity<Unit.SECOND|Unit.CMO>): Time\n\tminus(amount: number, unit: code_to_extended_symbol<Unit.SECOND|Unit.CMO>): Time\n\tminus(time:Quantity<Unit.SECOND|Unit.CMO>|number, unit?: code_to_extended_symbol<Unit.SECOND|Unit.CMO>) {\n\t\tif (typeof time == \"number\") {\n\t\t\tif (unit == undefined) throw new Error(\"unit is required\")\n\t\t\telse time = new Quantity(time, unit)\n\t\t}\n\n\t\tif (time.hasBaseUnit('s')) {\n\t\t\treturn new Time(this.getTime()-(time.value*1000))\n\t\t}\n\t\telse if (time.hasBaseUnit('Cmo')) {\n\t\t\tconst new_time = new Time(this);\n\t\t\tnew_time.subtract(time);\n\t\t\treturn new_time\n\t\t}\n\t\telse {\n\t\t\tthrow new Error(\"Invalid time unit\")\n\t\t}\n\t}\n\n\n\n\tadd(time:Quantity<Unit.SECOND|Unit.CMO>): void\n\tadd(amount: number, unit: code_to_extended_symbol<Unit.SECOND|Unit.CMO>): void\n\tadd(time:Quantity<Unit.SECOND|Unit.CMO>|number, unit?: code_to_extended_symbol<Unit.SECOND|Unit.CMO>) {\n\t\tif (typeof time == \"number\") {\n\t\t\tif (unit == undefined) throw new Error(\"unit is required\")\n\t\t\telse time = new Quantity(time, unit)\n\t\t}\n\n\t\tif (time.hasBaseUnit('s')) {\n\t\t\tthis.setTime(this.getTime()+(time.value*1000))\n\t\t}\n\t\telse if (time.hasBaseUnit('Cmo')) {\n\t\t\tthis.setMonth(this.getMonth()+time.value);\n\t\t}\n\t\telse {\n\t\t\tthrow new Error(\"Invalid time unit\")\n\t\t}\n\t}\n\n\tsubtract(time:Quantity<Unit.SECOND|Unit.CMO>): void\n\tsubtract(amount: number, unit: code_to_extended_symbol<Unit.SECOND|Unit.CMO>): void\n\tsubtract(time:Quantity<Unit.SECOND|Unit.CMO>|number, unit?: code_to_extended_symbol<Unit.SECOND|Unit.CMO>) {\n\t\tif (typeof time == \"number\") {\n\t\t\tif (unit == undefined) throw new Error(\"unit is required\")\n\t\t\telse time = new Quantity(time, unit)\n\t\t}\n\n\t\tif (time.hasBaseUnit('s')) {\n\t\t\tthis.setTime(this.getTime()-(time.value*1000))\n\t\t}\n\t\telse if (time.hasBaseUnit('Cmo')) {\n\t\t\tthis.setMonth(this.getMonth()-time.value);\n\t\t}\n\t\telse {\n\t\t\tthrow new Error(\"Invalid time unit\")\n\t\t}\n\t}\n\n}"],"names":["Quantity","Time","Date","constructor","time","parse","replace","toString","toISOString","plus","unit","undefined","Error","hasBaseUnit","getTime","value","new_time","add","minus","subtract","setTime","setMonth","getMonth"],"mappings":"AACA,SAASA,QAAQ,QAAQ,gBAAgB;AAEzC,OAAO,MAAMC,aAAaC;IAGzBC,YAAYC,OAA0B,IAAIF,MAAM,CAAE;QAC9B,YAAf,OAAOE,OAAkB,KAAK,CAACF,KAAKG,KAAK,CAACD,KAAKE,OAAO,CAAC,MAAK,QACjC,KAAK,CAACF;IAEtC;IAESG,WAAmB;QAC3B,OAAO,CAAC,CAAC,EAAE,IAAI,CAACC,WAAW,GAAGF,OAAO,CAAC,KAAI,KAAKA,OAAO,CAAC,KAAI,IAAI,CAAC,CAAC;IAClE;IAIAG,KAAKL,IAA0C,EAAEM,IAAoD,EAAE;QACtG,IAAI,AAAe,YAAf,OAAON,MAAkB;YAC5B,IAAIM,AAAQC,KAAAA,KAARD,MAAmB,MAAM,AAAIE,MAAM;YAClCR,OAAO,IAAIJ,SAASI,MAAMM;QAChC;QAEA,IAAIN,KAAKS,WAAW,CAAC,MACpB,OAAO,IAAIZ,KAAK,IAAI,CAACa,OAAO,KAAIV,AAAW,OAAXA,KAAKW,KAAK;QAEtC,IAAIX,KAAKS,WAAW,CAAC,QAAQ;YACjC,IAAMG,WAAW,IAAIf,KAAK,IAAI;YAE9B,OADAe,SAASC,GAAG,CAACb,OACNY;QACR;QAEC,MAAM,AAAIJ,MAAM;IAElB;IAIAM,MAAMd,IAA0C,EAAEM,IAAoD,EAAE;QACvG,IAAI,AAAe,YAAf,OAAON,MAAkB;YAC5B,IAAIM,AAAQC,KAAAA,KAARD,MAAmB,MAAM,AAAIE,MAAM;YAClCR,OAAO,IAAIJ,SAASI,MAAMM;QAChC;QAEA,IAAIN,KAAKS,WAAW,CAAC,MACpB,OAAO,IAAIZ,KAAK,IAAI,CAACa,OAAO,KAAIV,AAAW,OAAXA,KAAKW,KAAK;QAEtC,IAAIX,KAAKS,WAAW,CAAC,QAAQ;YACjC,IAAMG,WAAW,IAAIf,KAAK,IAAI;YAE9B,OADAe,SAASG,QAAQ,CAACf,OACXY;QACR;QAEC,MAAM,AAAIJ,MAAM;IAElB;IAMAK,IAAIb,IAA0C,EAAEM,IAAoD,EAAE;QACrG,IAAI,AAAe,YAAf,OAAON,MAAkB;YAC5B,IAAIM,AAAQC,KAAAA,KAARD,MAAmB,MAAM,AAAIE,MAAM;YAClCR,OAAO,IAAIJ,SAASI,MAAMM;QAChC;QAEA,IAAIN,KAAKS,WAAW,CAAC,MACpB,IAAI,CAACO,OAAO,CAAC,IAAI,CAACN,OAAO,KAAIV,AAAW,OAAXA,KAAKW,KAAK;aAEnC,IAAIX,KAAKS,WAAW,CAAC,QACzB,IAAI,CAACQ,QAAQ,CAAC,IAAI,CAACC,QAAQ,KAAGlB,KAAKW,KAAK;aAGxC,MAAM,AAAIH,MAAM;IAElB;IAIAO,SAASf,IAA0C,EAAEM,IAAoD,EAAE;QAC1G,IAAI,AAAe,YAAf,OAAON,MAAkB;YAC5B,IAAIM,AAAQC,KAAAA,KAARD,MAAmB,MAAM,AAAIE,MAAM;YAClCR,OAAO,IAAIJ,SAASI,MAAMM;QAChC;QAEA,IAAIN,KAAKS,WAAW,CAAC,MACpB,IAAI,CAACO,OAAO,CAAC,IAAI,CAACN,OAAO,KAAIV,AAAW,OAAXA,KAAKW,KAAK;aAEnC,IAAIX,KAAKS,WAAW,CAAC,QACzB,IAAI,CAACQ,QAAQ,CAAC,IAAI,CAACC,QAAQ,KAAGlB,KAAKW,KAAK;aAGxC,MAAM,AAAIH,MAAM;IAElB;AAED","sourceRoot":"/lib/datex-core-js-legacy-0.3.15/types/","file":"time.ts"}