{"version":3,"file":"index.cjs","sources":["../../../../../../../../src/mods/kdbx/headers/inner/data/index.ts"],"sourcesContent":["import { Base64 } from \"@hazae41/base64\"\nimport { Cursor } from \"@hazae41/cursor\"\n\nexport namespace Data {\n\n  export class AsString {\n\n    constructor(\n      readonly element: Element\n    ) { }\n\n    get() {\n      return this.element.innerHTML\n    }\n\n    set(value: string) {\n      this.element.innerHTML = value\n    }\n\n  }\n\n  export class AsBoolean {\n\n    constructor(\n      readonly element: Element\n    ) { }\n\n    get() {\n      return this.element.innerHTML === \"True\"\n    }\n\n    set(value: boolean) {\n      this.element.innerHTML = value ? \"True\" : \"False\"\n    }\n\n  }\n\n  export class AsInteger {\n\n    constructor(\n      readonly element: Element\n    ) { }\n\n    getOrThrow() {\n      const value = this.element.innerHTML\n\n      if (!value)\n        throw new Error()\n\n      const number = Number(value)\n\n      if (!Number.isSafeInteger(number))\n        throw new Error()\n\n      return number\n    }\n\n    setOrThrow(value: number) {\n      if (!Number.isSafeInteger(value))\n        throw new Error()\n      this.element.innerHTML = String(value)\n    }\n\n    incrementOrThrow() {\n      this.setOrThrow(this.getOrThrow() + 1)\n    }\n\n  }\n\n  export class AsDate {\n\n    constructor(\n      readonly element: Element\n    ) { }\n\n    getOrThrow() {\n      const value = this.element.innerHTML\n\n      if (!value)\n        throw new Error()\n\n      const binary = Base64.decodePaddedOrThrow(value)\n      const cursor = new Cursor(binary)\n\n      const raw = cursor.readUint64OrThrow(true)\n      const fix = raw - 62135596800n\n\n      return new Date(Number(fix * 1000n))\n    }\n\n    setOrThrow(value: Date) {\n      const fix = BigInt(value.getTime()) / 1000n\n      const raw = fix + 62135596800n\n\n      const cursor = new Cursor(new Uint8Array(8))\n      cursor.writeUint64OrThrow(raw, true)\n\n      this.element.innerHTML = Base64.encodePaddedOrThrow(cursor.bytes)\n    }\n\n  }\n\n}"],"names":["Data","Base64","cursor","Cursor"],"mappings":"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"}