UNPKG

@covalent/core

Version:

Core Teradata UI Platform for layouts, icons, custom components and themes. This should be added as a dependency for any project that wants to use layouts, icons and themes for Angular Material.

1 lines 305 kB
{"version":3,"file":"covalent-core-common.mjs","sources":["../tmp-esm2022/common/forms/auto-trim/auto-trim.directive.js","../tmp-esm2022/common/directives/fullscreen/fullscreen.directive.js","../tmp-esm2022/common/pipes/time-ago/time-ago.pipe.js","../tmp-esm2022/common/pipes/time-difference/time-difference.pipe.js","../tmp-esm2022/common/pipes/time-until/time-until.pipe.js","../tmp-esm2022/common/pipes/bytes/bytes.pipe.js","../tmp-esm2022/common/pipes/decimal-bytes/decimal-bytes.pipe.js","../tmp-esm2022/common/pipes/digits/digits.pipe.js","../tmp-esm2022/common/pipes/truncate/truncate.pipe.js","../tmp-esm2022/common/services/router-path.service.js","../tmp-esm2022/common/services/icon.service.js","../tmp-esm2022/common/common.module.js","../tmp-esm2022/common/animations/rotate/rotate.animation.js","../tmp-esm2022/common/animations/collapse/collapse.animation.js","../tmp-esm2022/common/animations/fade/fadeInOut.animation.js","../tmp-esm2022/common/animations/bounce/bounce.animation.js","../tmp-esm2022/common/animations/flash/flash.animation.js","../tmp-esm2022/common/animations/headshake/headshake.animation.js","../tmp-esm2022/common/animations/jello/jello.animation.js","../tmp-esm2022/common/animations/pulse/pulse.animation.js","../tmp-esm2022/common/behaviors/control-value-accesor.mixin.js","../tmp-esm2022/common/behaviors/disabled.mixin.js","../tmp-esm2022/common/behaviors/disable-ripple.mixin.js","../tmp-esm2022/common/directives/web-components/form-control.directive.js","../tmp-esm2022/common/forms/validators/validators.js","../tmp-esm2022/common/functions/clipboard.js","../tmp-esm2022/common/functions/convert.js","../tmp-esm2022/common/functions/download.js","../tmp-esm2022/common/functions/file.js","../tmp-esm2022/common/covalent-core-common.js"],"sourcesContent":["import { Directive, inject } from '@angular/core';\nimport { HostListener } from '@angular/core';\nimport { NgModel } from '@angular/forms';\nimport * as i0 from \"@angular/core\";\nexport class TdAutoTrimDirective {\n _model = inject(NgModel, { optional: true, host: true });\n /**\n * Listens to host's (blur) event and trims value.\n */\n onBlur() {\n if (this._model &&\n this._model.value &&\n typeof this._model.value === 'string') {\n this._model.update.emit(this._model.value.trim());\n }\n }\n static ɵfac = function TdAutoTrimDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TdAutoTrimDirective)(); };\n static ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: TdAutoTrimDirective, selectors: [[\"\", \"tdAutoTrim\", \"\"]], hostBindings: function TdAutoTrimDirective_HostBindings(rf, ctx) { if (rf & 1) {\n i0.ɵɵlistener(\"blur\", function TdAutoTrimDirective_blur_HostBindingHandler($event) { return ctx.onBlur($event); });\n } } });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(TdAutoTrimDirective, [{\n type: Directive,\n args: [{\n selector: '[tdAutoTrim]',\n }]\n }], null, { onBlur: [{\n type: HostListener,\n args: ['blur', ['$event']]\n }] }); })();\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0by10cmltLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jb21tb24vc3JjL2Zvcm1zL2F1dG8tdHJpbS9hdXRvLXRyaW0uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUt6QyxNQUFNLE9BQU8sbUJBQW1CO0lBQ3RCLE1BQU0sR0FBRyxNQUFNLENBQUMsT0FBTyxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUVqRTs7T0FFRztJQUVILE1BQU07UUFDSixJQUNFLElBQUksQ0FBQyxNQUFNO1lBQ1gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLO1lBQ2pCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEtBQUssUUFBUSxFQUNyQyxDQUFDO1lBQ0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7UUFDcEQsQ0FBQztJQUNILENBQUM7NkdBZlUsbUJBQW1COzZEQUFuQixtQkFBbUI7WUFBbkIsNEZBQUEsa0JBQWMsSUFBSzs7O2lGQUFuQixtQkFBbUI7Y0FIL0IsU0FBUztlQUFDO2dCQUNULFFBQVEsRUFBRSxjQUFjO2FBQ3pCO2dCQVFDLE1BQU07a0JBREwsWUFBWTttQkFBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSG9zdExpc3RlbmVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ01vZGVsIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbdGRBdXRvVHJpbV0nLFxufSlcbmV4cG9ydCBjbGFzcyBUZEF1dG9UcmltRGlyZWN0aXZlIHtcbiAgcHJpdmF0ZSBfbW9kZWwgPSBpbmplY3QoTmdNb2RlbCwgeyBvcHRpb25hbDogdHJ1ZSwgaG9zdDogdHJ1ZSB9KTtcblxuICAvKipcbiAgICogTGlzdGVucyB0byBob3N0J3MgKGJsdXIpIGV2ZW50IGFuZCB0cmltcyB2YWx1ZS5cbiAgICovXG4gIEBIb3N0TGlzdGVuZXIoJ2JsdXInLCBbJyRldmVudCddKVxuICBvbkJsdXIoKTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgdGhpcy5fbW9kZWwgJiZcbiAgICAgIHRoaXMuX21vZGVsLnZhbHVlICYmXG4gICAgICB0eXBlb2YgdGhpcy5fbW9kZWwudmFsdWUgPT09ICdzdHJpbmcnXG4gICAgKSB7XG4gICAgICB0aGlzLl9tb2RlbC51cGRhdGUuZW1pdCh0aGlzLl9tb2RlbC52YWx1ZS50cmltKCkpO1xuICAgIH1cbiAgfVxufVxuIl19","import { Directive, HostListener, ElementRef, inject } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport * as i0 from \"@angular/core\";\nexport class TdFullscreenDirective {\n _document = inject(DOCUMENT);\n _el = inject(ElementRef);\n fullScreenIsActive = false;\n fsChangeHandler(event) {\n this.fullScreenIsActive = event.srcElement === this._getFullScreenElement();\n }\n toggleFullScreen() {\n this._getFullScreenElement() === this._el.nativeElement\n ? this.exitFullScreen()\n : this.enterFullScreen();\n }\n enterFullScreen() {\n const { _el: { nativeElement }, } = this;\n const enterFullScreenMap = {\n requestFullscreen: () => nativeElement.requestFullscreen(), // Chrome\n webkitRequestFullscreen: () => nativeElement.webkitRequestFullscreen(), // Safari\n mozRequestFullScreen: () => nativeElement.mozRequestFullScreen(), // Firefox\n msRequestFullscreen: () => nativeElement.msRequestFullscreen(), // IE\n };\n for (const handler of Object.keys(enterFullScreenMap)) {\n if (nativeElement[handler]) {\n enterFullScreenMap[handler]();\n }\n }\n }\n exitFullScreen() {\n const exitFullScreenMap = {\n exitFullscreen: () => this._document.exitFullscreen(), // Chrome\n webkitExitFullscreen: () => this._document.webkitExitFullscreen(), // Safari\n mozCancelFullScreen: () => this._document.mozCancelFullScreen(), // Firefox\n msExitFullscreen: () => this._document.msExitFullscreen(), // IE\n };\n for (const handler of Object.keys(exitFullScreenMap)) {\n if (exitFullScreenMap[handler] &&\n this._getFullScreenElement() === this._el.nativeElement) {\n exitFullScreenMap[handler]();\n }\n }\n }\n _getFullScreenElement() {\n const tdFullScreenElementMap = {\n fullscreenElement: () => this._document.fullscreenElement, // Chrome, Opera\n webkitFullscreenElement: () => this._document.webkitFullscreenElement, // Safari\n mozFullscreenElement: () => this._document.mozFullscreenElement, // Firefox\n msFullscreenElement: () => this._document.msFullscreenElement, // IE, Edge\n };\n for (const props of Object.keys(tdFullScreenElementMap)) {\n if (tdFullScreenElementMap[props]) {\n return tdFullScreenElementMap[props]();\n }\n }\n return undefined;\n }\n static ɵfac = function TdFullscreenDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TdFullscreenDirective)(); };\n static ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: TdFullscreenDirective, selectors: [[\"\", \"tdFullScreen\", \"\"]], hostBindings: function TdFullscreenDirective_HostBindings(rf, ctx) { if (rf & 1) {\n i0.ɵɵlistener(\"fullscreenchange\", function TdFullscreenDirective_fullscreenchange_HostBindingHandler($event) { return ctx.fsChangeHandler($event); }, i0.ɵɵresolveDocument)(\"webkitfullscreenchange\", function TdFullscreenDirective_webkitfullscreenchange_HostBindingHandler($event) { return ctx.fsChangeHandler($event); }, i0.ɵɵresolveDocument)(\"mozfullscreenchange\", function TdFullscreenDirective_mozfullscreenchange_HostBindingHandler($event) { return ctx.fsChangeHandler($event); }, i0.ɵɵresolveDocument)(\"msfullscreenchange\", function TdFullscreenDirective_msfullscreenchange_HostBindingHandler($event) { return ctx.fsChangeHandler($event); }, i0.ɵɵresolveDocument);\n } }, exportAs: [\"tdFullScreen\"] });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(TdFullscreenDirective, [{\n type: Directive,\n args: [{\n selector: '[tdFullScreen]',\n exportAs: 'tdFullScreen',\n }]\n }], null, { fsChangeHandler: [{\n type: HostListener,\n args: ['document:fullscreenchange', ['$event']]\n }, {\n type: HostListener,\n args: ['document:webkitfullscreenchange', ['$event']]\n }, {\n type: HostListener,\n args: ['document:mozfullscreenchange', ['$event']]\n }, {\n type: HostListener,\n args: ['document:msfullscreenchange', ['$event']]\n }] }); })();\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVsbHNjcmVlbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tbW9uL3NyYy9kaXJlY3RpdmVzL2Z1bGxzY3JlZW4vZnVsbHNjcmVlbi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBZ0IzQyxNQUFNLE9BQU8scUJBQXFCO0lBQ3hCLFNBQVMsR0FBRyxNQUFNLENBQWMsUUFBUSxDQUFDLENBQUM7SUFDMUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUVqQyxrQkFBa0IsR0FBRyxLQUFLLENBQUM7SUFNcEIsZUFBZSxDQUFDLEtBQVk7UUFDakMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQyxVQUFVLEtBQUssSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7SUFDOUUsQ0FBQztJQUVNLGdCQUFnQjtRQUNyQixJQUFJLENBQUMscUJBQXFCLEVBQUUsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWE7WUFDckQsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDdkIsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRU0sZUFBZTtRQUNwQixNQUFNLEVBQ0osR0FBRyxFQUFFLEVBQUUsYUFBYSxFQUFFLEdBQ3ZCLEdBQTBCLElBQUksQ0FBQztRQUNoQyxNQUFNLGtCQUFrQixHQUFrQztZQUN4RCxpQkFBaUIsRUFBRSxHQUFHLEVBQUUsQ0FBQyxhQUFhLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxTQUFTO1lBQ3JFLHVCQUF1QixFQUFFLEdBQUcsRUFBRSxDQUFDLGFB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QVEsQ0FBQzs7a0JBQ3ZELFlBQVk7bUJBQUMsNkJBQTZCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEhvc3RMaXN0ZW5lciwgRWxlbWVudFJlZiwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbmludGVyZmFjZSBJRnNEb2N1bWVudCBleHRlbmRzIEhUTUxEb2N1bWVudCB7XG4gIGZ1bGxzY3JlZW5FbGVtZW50OiBFbGVtZW50O1xuICB3ZWJraXRGdWxsc2NyZWVuRWxlbWVudDogRWxlbWVudDtcbiAgbW96RnVsbHNjcmVlbkVsZW1lbnQ6IEVsZW1lbnQ7XG4gIG1zRnVsbHNjcmVlbkVsZW1lbnQ6IEVsZW1lbnQ7XG4gIHdlYmtpdEV4aXRGdWxsc2NyZWVuOiAoKSA9PiB2b2lkO1xuICBtb3pDYW5jZWxGdWxsU2NyZWVuOiAoKSA9PiB2b2lkO1xuICBtc0V4aXRGdWxsc2NyZWVuOiAoKSA9PiB2b2lkO1xufVxuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbdGRGdWxsU2NyZWVuXScsXG4gIGV4cG9ydEFzOiAndGRGdWxsU2NyZWVuJyxcbn0pXG5leHBvcnQgY2xhc3MgVGRGdWxsc2NyZWVuRGlyZWN0aXZlIHtcbiAgcHJpdmF0ZSBfZG9jdW1lbnQgPSBpbmplY3Q8SUZzRG9jdW1lbnQ+KERPQ1VNRU5UKTtcbiAgcHJpdmF0ZSBfZWwgPSBpbmplY3QoRWxlbWVudFJlZik7XG5cbiAgZnVsbFNjcmVlbklzQWN0aXZlID0gZmFsc2U7XG5cbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6ZnVsbHNjcmVlbmNoYW5nZScsIFsnJGV2ZW50J10pXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OndlYmtpdGZ1bGxzY3JlZW5jaGFuZ2UnLCBbJyRldmVudCddKVxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDptb3pmdWxsc2NyZWVuY2hhbmdlJywgWyckZXZlbnQnXSlcbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6bXNmdWxsc2NyZWVuY2hhbmdlJywgWyckZXZlbnQnXSlcbiAgcHVibGljIGZzQ2hhbmdlSGFuZGxlcihldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLmZ1bGxTY3JlZW5Jc0FjdGl2ZSA9IGV2ZW50LnNyY0VsZW1lbnQgPT09IHRoaXMuX2dldEZ1bGxTY3JlZW5FbGVtZW50KCk7XG4gIH1cblxuICBwdWJsaWMgdG9nZ2xlRnVsbFNjcmVlbigpOiB2b2lkIHtcbiAgICB0aGlzLl9nZXRGdWxsU2NyZWVuRWxlbWVudCgpID09PSB0aGlzLl9lbC5uYXRpdmVFbGVtZW50XG4gICAgICA/IHRoaXMuZXhpdEZ1bGxTY3JlZW4oKVxuICAgICAgOiB0aGlzLmVudGVyRnVsbFNjcmVlbigpO1xuICB9XG5cbiAgcHVibGljIGVudGVyRnVsbFNjcmVlbigpOiB2b2lkIHtcbiAgICBjb25zdCB7XG4gICAgICBfZWw6IHsgbmF0aXZlRWxlbWVudCB9LFxuICAgIH06IFRkRnVsbHNjcmVlbkRpcmVjdGl2ZSA9IHRoaXM7XG4gICAgY29uc3QgZW50ZXJGdWxsU2NyZWVuTWFwOiB7IFtrZXk6IHN0cmluZ106ICgpID0+IHZvaWQgfSA9IHtcbiAgICAgIHJlcXVlc3RGdWxsc2NyZWVuOiAoKSA9PiBuYXRpdmVFbGVtZW50LnJlcXVlc3RGdWxsc2NyZWVuKCksIC8vIENocm9tZVxuICAgICAgd2Via2l0UmVxdWVzdEZ1bGxzY3JlZW46ICgpID0+IG5hdGl2ZUVsZW1lbnQud2Via2l0UmVxdWVzdEZ1bGxzY3JlZW4oKSwgLy8gU2FmYXJpXG4gICAgICBtb3pSZXF1ZXN0RnVsbFNjcmVlbjogKCkgPT4gbmF0aXZlRWxlbWVudC5tb3pSZXF1ZXN0RnVsbFNjcmVlbigpLCAvLyBGaXJlZm94XG4gICAgICBtc1JlcXVlc3RGdWxsc2NyZWVuOiAoKSA9PiBuYXRpdmVFbGVtZW50Lm1zUmVxdWVzdEZ1bGxzY3JlZW4oKSwgLy8gSUVcbiAgICB9O1xuXG4gICAgZm9yIChjb25zdCBoYW5kbGVyIG9mIE9iamVjdC5rZXlzKGVudGVyRnVsbFNjcmVlbk1hcCkpIHtcbiAgICAgIGlmIChuYXRpdmVFbGVtZW50W2hhbmRsZXJdKSB7XG4gICAgICAgIGVudGVyRnVsbFNjcmVlbk1hcFtoYW5kbGVyXSgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBleGl0RnVsbFNjcmVlbigpOiB2b2lkIHtcbiAgICBjb25zdCBleGl0RnVsbFNjcmVlbk1hcDogeyBba2V5OiBzdHJpbmddOiAoKSA9PiB2b2lkIH0gPSB7XG4gICAgICBleGl0RnVsbHNjcmVlbjogKCkgPT4gdGhpcy5fZG9jdW1lbnQuZXhpdEZ1bGxzY3JlZW4oKSwgLy8gQ2hyb21lXG4gICAgICB3ZWJraXRFeGl0RnVsbHNjcmVlbjogKCkgPT4gdGhpcy5fZG9jdW1lbnQud2Via2l0RXhpdEZ1bGxzY3JlZW4oKSwgLy8gU2FmYXJpXG4gICAgICBtb3pDYW5jZWxGdWxsU2NyZWVuOiAoKSA9PiB0aGlzLl9kb2N1bWVudC5tb3pDYW5jZWxGdWxsU2NyZWVuKCksIC8vIEZpcmVmb3hcbiAgICAgIG1zRXhpdEZ1bGxzY3JlZW46ICgpID0+IHRoaXMuX2RvY3VtZW50Lm1zRXhpdEZ1bGxzY3JlZW4oKSwgLy8gSUVcbiAgICB9O1xuXG4gICAgZm9yIChjb25zdCBoYW5kbGVyIG9mIE9iamVjdC5rZXlzKGV4aXRGdWxsU2NyZWVuTWFwKSkge1xuICAgICAgaWYgKFxuICAgICAgICBleGl0RnVsbFNjcmVlbk1hcFtoYW5kbGVyXSAmJlxuICAgICAgICB0aGlzLl9nZXRGdWxsU2NyZWVuRWxlbWVudCgpID09PSB0aGlzLl9lbC5uYXRpdmVFbGVtZW50XG4gICAgICApIHtcbiAgICAgICAgZXhpdEZ1bGxTY3JlZW5NYXBbaGFuZGxlcl0oKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9nZXRGdWxsU2NyZWVuRWxlbWVudCgpOiBFbGVtZW50IHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCB0ZEZ1bGxTY3JlZW5FbGVtZW50TWFwOiB7IFtrZXk6IHN0cmluZ106ICgpID0+IEVsZW1lbnQgfSA9IHtcbiAgICAgIGZ1bGxzY3JlZW5FbGVtZW50OiAoKSA9PiB0aGlzLl9kb2N1bWVudC5mdWxsc2NyZWVuRWxlbWVudCwgLy8gQ2hyb21lLCBPcGVyYVxuICAgICAgd2Via2l0RnVsbHNjcmVlbkVsZW1lbnQ6ICgpID0+IHRoaXMuX2RvY3VtZW50LndlYmtpdEZ1bGxzY3JlZW5FbGVtZW50LCAvLyBTYWZhcmlcbiAgICAgIG1vekZ1bGxzY3JlZW5FbGVtZW50OiAoKSA9PiB0aGlzLl9kb2N1bWVudC5tb3pGdWxsc2NyZWVuRWxlbWVudCwgLy8gRmlyZWZveFxuICAgICAgbXNGdWxsc2NyZWVuRWxlbWVudDogKCkgPT4gdGhpcy5fZG9jdW1lbnQubXNGdWxsc2NyZWVuRWxlbWVudCwgLy8gSUUsIEVkZ2VcbiAgICB9O1xuICAgIGZvciAoY29uc3QgcHJvcHMgb2YgT2JqZWN0LmtleXModGRGdWxsU2NyZWVuRWxlbWVudE1hcCkpIHtcbiAgICAgIGlmICh0ZEZ1bGxTY3JlZW5FbGVtZW50TWFwW3Byb3BzXSkge1xuICAgICAgICByZXR1cm4gdGRGdWxsU2NyZWVuRWxlbWVudE1hcFtwcm9wc10oKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxufVxuIl19","import { Pipe } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class TdTimeAgoPipe {\n transform(time, reference) {\n // Convert time to date object if not already\n time = new Date(time);\n const ref = new Date(reference);\n // If not a valid timestamp, return 'Invalid Date'\n if (!time.getTime()) {\n return 'Invalid Date';\n }\n // For unit testing, we need to be able to declare a static start time\n // for calculations, or else speed of tests can bork.\n const startTime = isNaN(ref.getTime()) ? Date.now() : ref.getTime();\n let diff = Math.floor((startTime - time.getTime()) / 1000);\n if (diff < 2) {\n return '1 second ago';\n }\n if (diff < 60) {\n return Math.floor(diff) + ' seconds ago';\n }\n // Minutes\n diff = diff / 60;\n if (diff < 2) {\n return '1 minute ago';\n }\n if (diff < 60) {\n return Math.floor(diff) + ' minutes ago';\n }\n // Hours\n diff = diff / 60;\n if (diff < 2) {\n return '1 hour ago';\n }\n if (diff < 24) {\n return Math.floor(diff) + ' hours ago';\n }\n // Days\n diff = diff / 24;\n if (diff < 2) {\n return '1 day ago';\n }\n if (diff < 30) {\n return Math.floor(diff) + ' days ago';\n }\n // Months\n diff = diff / 30;\n if (diff < 2) {\n return '1 month ago';\n }\n if (diff < 12) {\n return Math.floor(diff) + ' months ago';\n }\n // Years\n diff = diff / 12;\n if (diff < 2) {\n return '1 year ago';\n }\n else {\n return Math.floor(diff) + ' years ago';\n }\n }\n static ɵfac = function TdTimeAgoPipe_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TdTimeAgoPipe)(); };\n static ɵpipe = /*@__PURE__*/ i0.ɵɵdefinePipe({ name: \"timeAgo\", type: TdTimeAgoPipe, pure: true });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(TdTimeAgoPipe, [{\n type: Pipe,\n args: [{\n name: 'timeAgo',\n }]\n }], null, null); })();\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1hZ28ucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jb21tb24vc3JjL3BpcGVzL3RpbWUtYWdvL3RpbWUtYWdvLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7O0FBS3BELE1BQU0sT0FBTyxhQUFhO0lBQ3hCLFNBQVMsQ0FBQyxJQUFTLEVBQUUsU0FBZTtRQUNsQyw2Q0FBNkM7UUFDN0MsSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RCLE1BQU0sR0FBRyxHQUFTLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRXRDLGtEQUFrRDtRQUNsRCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7WUFDcEIsT0FBTyxjQUFjLENBQUM7UUFDeEIsQ0FBQztRQUVELHNFQUFzRTtRQUN0RSxxREFBcUQ7UUFDckQsTUFBTSxTQUFTLEdBQVcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUM1RSxJQUFJLElBQUksR0FBVyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO1FBRW5FLElBQUksSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ2IsT0FBTyxjQUFjLENBQUM7UUFDeEIsQ0FBQztRQUNELElBQUksSUFBSSxHQUFHLEVBQUUsRUFBRSxDQUFDO1lBQ2QsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLGNBQWMsQ0FBQztRQUMzQyxDQUFDO1FBQ0QsVUFBVTtRQUNWLElBQUksR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLElBQUksSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ2IsT0FBTyxjQUFjLENBQUM7UUFDeEIsQ0FBQztRQUNELElBQUksSUFBSSxHQUFHLEVBQUUsRUFBRSxDQUFDO1lBQ2QsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLGNBQWMsQ0FBQztRQUMzQyxDQUFDO1FBQ0QsUUFBUTtRQUNSLElBQUksR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLElBQUksSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ2IsT0FBTyxZQUFZLENBQUM7UUFDdEIsQ0FBQztRQUNELElBQUksSUFBSSxHQUFHLEVBQUUsRUFBRSxDQUFDO1lBQ2QsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLFlBQVksQ0FBQztRQUN6QyxDQUFDO1FBQ0QsT0FBTztRQUNQLElBQUksR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLElBQUksSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ2IsT0FBTyxXQUFXLENBQUM7UUFDckIsQ0FBQztRQUNELElBQUksSUFBSSxHQUFHLEVBQUUsRUFBRSxDQUFDO1lBQ2QsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLFdBQVcsQ0FBQztRQUN4QyxDQUFDO1FBQ0QsU0FBUztRQUNULElBQUksR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLElBQUksSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ2IsT0FBTyxhQUFhLENBQUM7UUFDdkIsQ0FBQztRQUNELElBQUksSUFBSSxHQUFHLEVBQUUsRUFBRSxDQUFDO1lBQ2QsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLGFBQWEsQ0FBQztRQUMxQyxDQUFDO1FBQ0QsUUFBUTtRQUNSLElBQUksR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLElBQUksSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ2IsT0FBTyxZQUFZLENBQUM7UUFDdEIsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsWUFBWSxDQUFDO1FBQ3pDLENBQUM7SUFDSCxDQUFDO3VHQTdEVSxhQUFhOzBFQUFiLGFBQWE7O2lGQUFiLGFBQWE7Y0FIekIsSUFBSTtlQUFDO2dCQUNKLElBQUksRUFBRSxTQUFTO2FBQ2hCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AUGlwZSh7XG4gIG5hbWU6ICd0aW1lQWdvJyxcbn0pXG5leHBvcnQgY2xhc3MgVGRUaW1lQWdvUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICB0cmFuc2Zvcm0odGltZTogYW55LCByZWZlcmVuY2U/OiBhbnkpOiBzdHJpbmcge1xuICAgIC8vIENvbnZlcnQgdGltZSB0byBkYXRlIG9iamVjdCBpZiBub3QgYWxyZWFkeVxuICAgIHRpbWUgPSBuZXcgRGF0ZSh0aW1lKTtcbiAgICBjb25zdCByZWY6IERhdGUgPSBuZXcgRGF0ZShyZWZlcmVuY2UpO1xuXG4gICAgLy8gSWYgbm90IGEgdmFsaWQgdGltZXN0YW1wLCByZXR1cm4gJ0ludmFsaWQgRGF0ZSdcbiAgICBpZiAoIXRpbWUuZ2V0VGltZSgpKSB7XG4gICAgICByZXR1cm4gJ0ludmFsaWQgRGF0ZSc7XG4gICAgfVxuXG4gICAgLy8gRm9yIHVuaXQgdGVzdGluZywgd2UgbmVlZCB0byBiZSBhYmxlIHRvIGRlY2xhcmUgYSBzdGF0aWMgc3RhcnQgdGltZVxuICAgIC8vIGZvciBjYWxjdWxhdGlvbnMsIG9yIGVsc2Ugc3BlZWQgb2YgdGVzdHMgY2FuIGJvcmsuXG4gICAgY29uc3Qgc3RhcnRUaW1lOiBudW1iZXIgPSBpc05hTihyZWYuZ2V0VGltZSgpKSA/IERhdGUubm93KCkgOiByZWYuZ2V0VGltZSgpO1xuICAgIGxldCBkaWZmOiBudW1iZXIgPSBNYXRoLmZsb29yKChzdGFydFRpbWUgLSB0aW1lLmdldFRpbWUoKSkgLyAxMDAwKTtcblxuICAgIGlmIChkaWZmIDwgMikge1xuICAgICAgcmV0dXJuICcxIHNlY29uZCBhZ28nO1xuICAgIH1cbiAgICBpZiAoZGlmZiA8IDYwKSB7XG4gICAgICByZXR1cm4gTWF0aC5mbG9vcihkaWZmKSArICcgc2Vjb25kcyBhZ28nO1xuICAgIH1cbiAgICAvLyBNaW51dGVzXG4gICAgZGlmZiA9IGRpZmYgLyA2MDtcbiAgICBpZiAoZGlmZiA8IDIpIHtcbiAgICAgIHJldHVybiAnMSBtaW51dGUgYWdvJztcbiAgICB9XG4gICAgaWYgKGRpZmYgPCA2MCkge1xuICAgICAgcmV0dXJuIE1hdGguZmxvb3IoZGlmZikgKyAnIG1pbnV0ZXMgYWdvJztcbiAgICB9XG4gICAgLy8gSG91cnNcbiAgICBkaWZmID0gZGlmZiAvIDYwO1xuICAgIGlmIChkaWZmIDwgMikge1xuICAgICAgcmV0dXJuICcxIGhvdXIgYWdvJztcbiAgICB9XG4gICAgaWYgKGRpZmYgPCAyNCkge1xuICAgICAgcmV0dXJuIE1hdGguZmxvb3IoZGlmZikgKyAnIGhvdXJzIGFnbyc7XG4gICAgfVxuICAgIC8vIERheXNcbiAgICBkaWZmID0gZGlmZiAvIDI0O1xuICAgIGlmIChkaWZmIDwgMikge1xuICAgICAgcmV0dXJuICcxIGRheSBhZ28nO1xuICAgIH1cbiAgICBpZiAoZGlmZiA8IDMwKSB7XG4gICAgICByZXR1cm4gTWF0aC5mbG9vcihkaWZmKSArICcgZGF5cyBhZ28nO1xuICAgIH1cbiAgICAvLyBNb250aHNcbiAgICBkaWZmID0gZGlmZiAvIDMwO1xuICAgIGlmIChkaWZmIDwgMikge1xuICAgICAgcmV0dXJuICcxIG1vbnRoIGFnbyc7XG4gICAgfVxuICAgIGlmIChkaWZmIDwgMTIpIHtcbiAgICAgIHJldHVybiBNYXRoLmZsb29yKGRpZmYpICsgJyBtb250aHMgYWdvJztcbiAgICB9XG4gICAgLy8gWWVhcnNcbiAgICBkaWZmID0gZGlmZiAvIDEyO1xuICAgIGlmIChkaWZmIDwgMikge1xuICAgICAgcmV0dXJuICcxIHllYXIgYWdvJztcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIE1hdGguZmxvb3IoZGlmZikgKyAnIHllYXJzIGFnbyc7XG4gICAgfVxuICB9XG59XG4iXX0=","import { Pipe } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class TdTimeDifferencePipe {\n transform(start, end) {\n const startTime = new Date(start);\n let endTime;\n if (end !== undefined) {\n endTime = new Date(end);\n }\n else {\n endTime = new Date();\n }\n if (!startTime.getTime() || !endTime.getTime()) {\n return 'Invalid Date';\n }\n let diff = Math.floor((endTime.getTime() - startTime.getTime()) / 1000);\n const days = Math.floor(diff / (60 * 60 * 24));\n diff = diff - days * (60 * 60 * 24);\n const hours = Math.floor(diff / (60 * 60));\n diff = diff - hours * (60 * 60);\n const minutes = Math.floor(diff / 60);\n diff -= minutes * 60;\n const seconds = diff;\n const pad = '00';\n let daysFormatted = '';\n if (days > 0 && days < 2) {\n daysFormatted = ' day - ';\n }\n else if (days > 1) {\n daysFormatted = ' days - ';\n }\n return ((days > 0 ? days + daysFormatted : daysFormatted) +\n pad.substring(0, pad.length - (hours + '').length) +\n hours +\n ':' +\n pad.substring(0, pad.length - (minutes + '').length) +\n minutes +\n ':' +\n pad.substring(0, pad.length - (seconds + '').length) +\n seconds);\n }\n static ɵfac = function TdTimeDifferencePipe_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TdTimeDifferencePipe)(); };\n static ɵpipe = /*@__PURE__*/ i0.ɵɵdefinePipe({ name: \"timeDifference\", type: TdTimeDifferencePipe, pure: true });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(TdTimeDifferencePipe, [{\n type: Pipe,\n args: [{\n name: 'timeDifference',\n }]\n }], null, null); })();\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1kaWZmZXJlbmNlLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tbW9uL3NyYy9waXBlcy90aW1lLWRpZmZlcmVuY2UvdGltZS1kaWZmZXJlbmNlLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7O0FBS3BELE1BQU0sT0FBTyxvQkFBb0I7SUFDL0IsU0FBUyxDQUFDLEtBQVUsRUFBRSxHQUFTO1FBQzdCLE1BQU0sU0FBUyxHQUFTLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3hDLElBQUksT0FBYSxDQUFDO1FBRWxCLElBQUksR0FBRyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3RCLE9BQU8sR0FBRyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMxQixDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ3ZCLENBQUM7UUFFRCxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7WUFDL0MsT0FBTyxjQUFjLENBQUM7UUFDeEIsQ0FBQztRQUVELElBQUksSUFBSSxHQUFXLElBQUksQ0FBQyxLQUFLLENBQzNCLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxHQUFHLFNBQVMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FDakQsQ0FBQztRQUVGLE1BQU0sSUFBSSxHQUFXLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3ZELElBQUksR0FBRyxJQUFJLEdBQUcsSUFBSSxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUVwQyxNQUFNLEtBQUssR0FBVyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ25ELElBQUksR0FBRyxJQUFJLEdBQUcsS0FBSyxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBRWhDLE1BQU0sT0FBTyxHQUFXLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQzlDLElBQUksSUFBSSxPQUFPLEdBQUcsRUFBRSxDQUFDO1FBRXJCLE1BQU0sT0FBTyxHQUFXLElBQUksQ0FBQztRQUU3QixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUM7UUFFakIsSUFBSSxhQUFhLEdBQUcsRUFBRSxDQUFDO1FBRXZCLElBQUksSUFBSSxHQUFHLENBQUMsSUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDekIsYUFBYSxHQUFHLFNBQVMsQ0FBQztRQUM1QixDQUFDO2FBQU0sSUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDcEIsYUFBYSxHQUFHLFVBQVUsQ0FBQztRQUM3QixDQUFDO1FBRUQsT0FBTyxDQUNMLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLGFBQWEsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDO1lBQ2pELEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDO1lBQ2xELEtBQUs7WUFDTCxHQUFHO1lBQ0gsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUM7WUFDcEQsT0FBTztZQUNQLEdBQUc7WUFDSCxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQztZQUNwRCxPQUFPLENBQ1IsQ0FBQztJQUNKLENBQUM7OEdBbkRVLG9CQUFvQjtpRkFBcEIsb0JBQW9COztpRkFBcEIsb0JBQW9CO2NBSGhDLElBQUk7ZUFBQztnQkFDSixJQUFJLEVBQUUsZ0JBQWdCO2FBQ3ZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AUGlwZSh7XG4gIG5hbWU6ICd0aW1lRGlmZmVyZW5jZScsXG59KVxuZXhwb3J0IGNsYXNzIFRkVGltZURpZmZlcmVuY2VQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIHRyYW5zZm9ybShzdGFydDogYW55LCBlbmQ/OiBhbnkpOiBzdHJpbmcge1xuICAgIGNvbnN0IHN0YXJ0VGltZTogRGF0ZSA9IG5ldyBEYXRlKHN0YXJ0KTtcbiAgICBsZXQgZW5kVGltZTogRGF0ZTtcblxuICAgIGlmIChlbmQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgZW5kVGltZSA9IG5ldyBEYXRlKGVuZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGVuZFRpbWUgPSBuZXcgRGF0ZSgpO1xuICAgIH1cblxuICAgIGlmICghc3RhcnRUaW1lLmdldFRpbWUoKSB8fCAhZW5kVGltZS5nZXRUaW1lKCkpIHtcbiAgICAgIHJldHVybiAnSW52YWxpZCBEYXRlJztcbiAgICB9XG5cbiAgICBsZXQgZGlmZjogbnVtYmVyID0gTWF0aC5mbG9vcihcbiAgICAgIChlbmRUaW1lLmdldFRpbWUoKSAtIHN0YXJ0VGltZS5nZXRUaW1lKCkpIC8gMTAwMFxuICAgICk7XG5cbiAgICBjb25zdCBkYXlzOiBudW1iZXIgPSBNYXRoLmZsb29yKGRpZmYgLyAoNjAgKiA2MCAqIDI0KSk7XG4gICAgZGlmZiA9IGRpZmYgLSBkYXlzICogKDYwICogNjAgKiAyNCk7XG5cbiAgICBjb25zdCBob3VyczogbnVtYmVyID0gTWF0aC5mbG9vcihkaWZmIC8gKDYwICogNjApKTtcbiAgICBkaWZmID0gZGlmZiAtIGhvdXJzICogKDYwICogNjApO1xuXG4gICAgY29uc3QgbWludXRlczogbnVtYmVyID0gTWF0aC5mbG9vcihkaWZmIC8gNjApO1xuICAgIGRpZmYgLT0gbWludXRlcyAqIDYwO1xuXG4gICAgY29uc3Qgc2Vjb25kczogbnVtYmVyID0gZGlmZjtcblxuICAgIGNvbnN0IHBhZCA9ICcwMCc7XG5cbiAgICBsZXQgZGF5c0Zvcm1hdHRlZCA9ICcnO1xuXG4gICAgaWYgKGRheXMgPiAwICYmIGRheXMgPCAyKSB7XG4gICAgICBkYXlzRm9ybWF0dGVkID0gJyBkYXkgLSAnO1xuICAgIH0gZWxzZSBpZiAoZGF5cyA+IDEpIHtcbiAgICAgIGRheXNGb3JtYXR0ZWQgPSAnIGRheXMgLSAnO1xuICAgIH1cblxuICAgIHJldHVybiAoXG4gICAgICAoZGF5cyA+IDAgPyBkYXlzICsgZGF5c0Zvcm1hdHRlZCA6IGRheXNGb3JtYXR0ZWQpICtcbiAgICAgIHBhZC5zdWJzdHJpbmcoMCwgcGFkLmxlbmd0aCAtIChob3VycyArICcnKS5sZW5ndGgpICtcbiAgICAgIGhvdXJzICtcbiAgICAgICc6JyArXG4gICAgICBwYWQuc3Vic3RyaW5nKDAsIHBhZC5sZW5ndGggLSAobWludXRlcyArICcnKS5sZW5ndGgpICtcbiAgICAgIG1pbnV0ZXMgK1xuICAgICAgJzonICtcbiAgICAgIHBhZC5zdWJzdHJpbmcoMCwgcGFkLmxlbmd0aCAtIChzZWNvbmRzICsgJycpLmxlbmd0aCkgK1xuICAgICAgc2Vjb25kc1xuICAgICk7XG4gIH1cbn1cbiJdfQ==","import { Pipe } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class TdTimeUntilPipe {\n transform(time, reference) {\n // Convert time to date object if not already\n time = new Date(time);\n const ref = new Date(reference);\n // If not a valid timestamp, return 'Invalid Date'\n if (!time.getTime()) {\n return 'Invalid Date';\n }\n // For unit testing, we need to be able to declare a static start time\n // for calculations, or else speed of tests can bork.\n const startTime = isNaN(ref.getTime()) ? Date.now() : ref.getTime();\n let diff = Math.floor((time.getTime() - startTime) / 1000);\n if (diff < 2) {\n return 'in 1 second';\n }\n if (diff < 60) {\n return 'in ' + Math.floor(diff) + ' seconds';\n }\n // Minutes\n diff = diff / 60;\n if (diff < 2) {\n return 'in 1 minute';\n }\n if (diff < 60) {\n return 'in ' + Math.floor(diff) + ' minutes';\n }\n // Hours\n diff = diff / 60;\n if (diff < 2) {\n return 'in 1 hour';\n }\n if (diff < 24) {\n return 'in ' + Math.floor(diff) + ' hours';\n }\n // Days\n diff = diff / 24;\n if (diff < 2) {\n return 'in 1 day';\n }\n if (diff < 30) {\n return 'in ' + Math.floor(diff) + ' days';\n }\n // Months\n diff = diff / 30;\n if (diff < 2) {\n return 'in 1 month';\n }\n if (diff < 12) {\n return 'in ' + Math.floor(diff) + ' months';\n }\n // Years\n diff = diff / 12;\n if (diff < 2) {\n return 'in 1 year';\n }\n else {\n return 'in ' + Math.floor(diff) + ' years';\n }\n }\n static ɵfac = function TdTimeUntilPipe_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TdTimeUntilPipe)(); };\n static ɵpipe = /*@__PURE__*/ i0.ɵɵdefinePipe({ name: \"timeUntil\", type: TdTimeUntilPipe, pure: true });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(TdTimeUntilPipe, [{\n type: Pipe,\n args: [{\n name: 'timeUntil',\n }]\n }], null, null); })();\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS11bnRpbC5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2NvbW1vbi9zcmMvcGlwZXMvdGltZS11bnRpbC90aW1lLXVudGlsLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7O0FBS3BELE1BQU0sT0FBTyxlQUFlO0lBQzFCLFNBQVMsQ0FBQyxJQUFTLEVBQUUsU0FBZTtRQUNsQyw2Q0FBNkM7UUFDN0MsSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RCLE1BQU0sR0FBRyxHQUFTLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRXRDLGtEQUFrRDtRQUNsRCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7WUFDcEIsT0FBTyxjQUFjLENBQUM7UUFDeEIsQ0FBQztRQUVELHNFQUFzRTtRQUN0RSxxREFBcUQ7UUFDckQsTUFBTSxTQUFTLEdBQVcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUM1RSxJQUFJLElBQUksR0FBVyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxHQUFHLFNBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO1FBRW5FLElBQUksSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ2IsT0FBTyxhQUFhLENBQUM7UUFDdkIsQ0FBQztRQUNELElBQUksSUFBSSxHQUFHLEVBQUUsRUFBRSxDQUFDO1lBQ2QsT0FBTyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxVQUFVLENBQUM7UUFDL0MsQ0FBQztRQUNELFVBQVU7UUFDVixJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNqQixJQUFJLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNiLE9BQU8sYUFBYSxDQUFDO1FBQ3ZCLENBQUM7UUFDRCxJQUFJLElBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQztZQUNkLE9BQU8sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsVUFBVSxDQUFDO1FBQy9DLENBQUM7UUFDRCxRQUFRO1FBQ1IsSUFBSSxHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7UUFDakIsSUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDYixPQUFPLFdBQVcsQ0FBQztRQUNyQixDQUFDO1FBQ0QsSUFBSSxJQUFJLEdBQUcsRUFBRSxFQUFFLENBQUM7WUFDZCxPQUFPLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLFFBQVEsQ0FBQztRQUM3QyxDQUFDO1FBQ0QsT0FBTztRQUNQLElBQUksR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLElBQUksSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ2IsT0FBTyxVQUFVLENBQUM7UUFDcEIsQ0FBQztRQUNELElBQUksSUFBSSxHQUFHLEVBQUUsRUFBRSxDQUFDO1lBQ2QsT0FBTyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxPQUFPLENBQUM7UUFDNUMsQ0FBQztRQUNELFNBQVM7UUFDVCxJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNqQixJQUFJLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNiLE9BQU8sWUFBWSxDQUFDO1FBQ3RCLENBQUM7UUFDRCxJQUFJLElBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQztZQUNkLE9BQU8sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsU0FBUyxDQUFDO1FBQzlDLENBQUM7UUFDRCxRQUFRO1FBQ1IsSUFBSSxHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7UUFDakIsSUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDYixPQUFPLFdBQVcsQ0FBQztRQUNyQixDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsUUFBUSxDQUFDO1FBQzdDLENBQUM7SUFDSCxDQUFDO3lHQTdEVSxlQUFlOzRFQUFmLGVBQWU7O2lGQUFmLGVBQWU7Y0FIM0IsSUFBSTtlQUFDO2dCQUNKLElBQUksRUFBRSxXQUFXO2FBQ2xCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AUGlwZSh7XG4gIG5hbWU6ICd0aW1lVW50aWwnLFxufSlcbmV4cG9ydCBjbGFzcyBUZFRpbWVVbnRpbFBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgdHJhbnNmb3JtKHRpbWU6IGFueSwgcmVmZXJlbmNlPzogYW55KTogc3RyaW5nIHtcbiAgICAvLyBDb252ZXJ0IHRpbWUgdG8gZGF0ZSBvYmplY3QgaWYgbm90IGFscmVhZHlcbiAgICB0aW1lID0gbmV3IERhdGUodGltZSk7XG4gICAgY29uc3QgcmVmOiBEYXRlID0gbmV3IERhdGUocmVmZXJlbmNlKTtcblxuICAgIC8vIElmIG5vdCBhIHZhbGlkIHRpbWVzdGFtcCwgcmV0dXJuICdJbnZhbGlkIERhdGUnXG4gICAgaWYgKCF0aW1lLmdldFRpbWUoKSkge1xuICAgICAgcmV0dXJuICdJbnZhbGlkIERhdGUnO1xuICAgIH1cblxuICAgIC8vIEZvciB1bml0IHRlc3RpbmcsIHdlIG5lZWQgdG8gYmUgYWJsZSB0byBkZWNsYXJlIGEgc3RhdGljIHN0YXJ0IHRpbWVcbiAgICAvLyBmb3IgY2FsY3VsYXRpb25zLCBvciBlbHNlIHNwZWVkIG9mIHRlc3RzIGNhbiBib3JrLlxuICAgIGNvbnN0IHN0YXJ0VGltZTogbnVtYmVyID0gaXNOYU4ocmVmLmdldFRpbWUoKSkgPyBEYXRlLm5vdygpIDogcmVmLmdldFRpbWUoKTtcbiAgICBsZXQgZGlmZjogbnVtYmVyID0gTWF0aC5mbG9vcigodGltZS5nZXRUaW1lKCkgLSBzdGFydFRpbWUpIC8gMTAwMCk7XG5cbiAgICBpZiAoZGlmZiA8IDIpIHtcbiAgICAgIHJldHVybiAnaW4gMSBzZWNvbmQnO1xuICAgIH1cbiAgICBpZiAoZGlmZiA8IDYwKSB7XG4gICAgICByZXR1cm4gJ2luICcgKyBNYXRoLmZsb29yKGRpZmYpICsgJyBzZWNvbmRzJztcbiAgICB9XG4gICAgLy8gTWludXRlc1xuICAgIGRpZmYgPSBkaWZmIC8gNjA7XG4gICAgaWYgKGRpZmYgPCAyKSB7XG4gICAgICByZXR1cm4gJ2luIDEgbWludXRlJztcbiAgICB9XG4gICAgaWYgKGRpZmYgPCA2MCkge1xuICAgICAgcmV0dXJuICdpbiAnICsgTWF0aC5mbG9vcihkaWZmKSArICcgbWludXRlcyc7XG4gICAgfVxuICAgIC8vIEhvdXJzXG4gICAgZGlmZiA9IGRpZmYgLyA2MDtcbiAgICBpZiAoZGlmZiA8IDIpIHtcbiAgICAgIHJldHVybiAnaW4gMSBob3VyJztcbiAgICB9XG4gICAgaWYgKGRpZmYgPCAyNCkge1xuICAgICAgcmV0dXJuICdpbiAnICsgTWF0aC5mbG9vcihkaWZmKSArICcgaG91cnMnO1xuICAgIH1cbiAgICAvLyBEYXlzXG4gICAgZGlmZiA9IGRpZmYgLyAyNDtcbiAgICBpZiAoZGlmZiA8IDIpIHtcbiAgICAgIHJldHVybiAnaW4gMSBkYXknO1xuICAgIH1cbiAgICBpZiAoZGlmZiA8IDMwKSB7XG4gICAgICByZXR1cm4gJ2luICcgKyBNYXRoLmZsb29yKGRpZmYpICsgJyBkYXlzJztcbiAgICB9XG4gICAgLy8gTW9udGhzXG4gICAgZGlmZiA9IGRpZmYgLyAzMDtcbiAgICBpZiAoZGlmZiA8IDIpIHtcbiAgICAgIHJldHVybiAnaW4gMSBtb250aCc7XG4gICAgfVxuICAgIGlmIChkaWZmIDwgMTIpIHtcbiAgICAgIHJldHVybiAnaW4gJyArIE1hdGguZmxvb3IoZGlmZikgKyAnIG1vbnRocyc7XG4gICAgfVxuICAgIC8vIFllYXJzXG4gICAgZGlmZiA9IGRpZmYgLyAxMjtcbiAgICBpZiAoZGlmZiA8IDIpIHtcbiAgICAgIHJldHVybiAnaW4gMSB5ZWFyJztcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuICdpbiAnICsgTWF0aC5mbG9vcihkaWZmKSArICcgeWVhcnMnO1xuICAgIH1cbiAgfVxufVxuIl19","import { Pipe } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class TdBytesPipe {\n /* `bytes` needs to be `any` or TypeScript complains\n Tried both `number` and `number | string` */\n transform(bytes, precision = 2) {\n if (bytes === 0) {\n return '0 B';\n }\n else if (isNaN(parseInt(bytes, 10))) {\n /* If not a valid number, return 'Invalid Number' */\n return 'Invalid Number';\n }\n const k = 1024;\n const sizes = [\n 'B',\n 'KiB',\n 'MiB',\n 'GiB',\n 'TiB',\n 'PiB',\n 'EiB',\n 'ZiB',\n 'YiB',\n ];\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n // if less than 1\n if (i < 0) {\n return 'Invalid Number';\n }\n return (parseFloat((bytes / Math.pow(k, i)).toFixed(precision)) + ' ' + sizes[i]);\n }\n static ɵfac = function TdBytesPipe_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TdBytesPipe)(); };\n static ɵpipe = /*@__PURE__*/ i0.ɵɵdefinePipe({ name: \"bytes\", type: TdBytesPipe, pure: true });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(TdBytesPipe, [{\n type: Pipe,\n args: [{\n name: 'bytes',\n }]\n }], null, null); })();\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnl0ZXMucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jb21tb24vc3JjL3BpcGVzL2J5dGVzL2J5dGVzLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7O0FBS3BELE1BQU0sT0FBTyxXQUFXO0lBQ3RCO2dEQUM0QztJQUM1QyxTQUFTLENBQUMsS0FBVSxFQUFFLFNBQVMsR0FBRyxDQUFDO1FBQ2pDLElBQUksS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ2hCLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQzthQUFNLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ3RDLG9EQUFvRDtZQUNwRCxPQUFPLGdCQUFnQixDQUFDO1FBQzFCLENBQUM7UUFDRCxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUM7UUFDZixNQUFNLEtBQUssR0FBYTtZQUN0QixHQUFHO1lBQ0gsS0FBSztZQUNMLEtBQUs7WUFDTCxLQUFLO1lBQ0wsS0FBSztZQUNMLEtBQUs7WUFDTCxLQUFLO1lBQ0wsS0FBSztZQUNMLEtBQUs7U0FDTixDQUFDO1FBQ0YsTUFBTSxDQUFDLEdBQVcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM1RCxpQkFBaUI7UUFDakIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDVixPQUFPLGdCQUFnQixDQUFDO1FBQzFCLENBQUM7UUFDRCxPQUFPLENBQ0wsVUFBVSxDQUFDLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FDekUsQ0FBQztJQUNKLENBQUM7cUdBOUJVLFdBQVc7d0VBQVgsV0FBVzs7aUZBQVgsV0FBVztjQUh2QixJQUFJO2VBQUM7Z0JBQ0osSUFBSSxFQUFFLE9BQU87YUFDZCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQFBpcGUoe1xuICBuYW1lOiAnYnl0ZXMnLFxufSlcbmV4cG9ydCBjbGFzcyBUZEJ5dGVzUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICAvKiBgYnl0ZXNgIG5lZWRzIHRvIGJlIGBhbnlgIG9yIFR5cGVTY3JpcHQgY29tcGxhaW5zXG4gIFRyaWVkIGJvdGggYG51bWJlcmAgYW5kIGBudW1iZXIgfCBzdHJpbmdgICovXG4gIHRyYW5zZm9ybShieXRlczogYW55LCBwcmVjaXNpb24gPSAyKTogc3RyaW5nIHtcbiAgICBpZiAoYnl0ZXMgPT09IDApIHtcbiAgICAgIHJldHVybiAnMCBCJztcbiAgICB9IGVsc2UgaWYgKGlzTmFOKHBhcnNlSW50KGJ5dGVzLCAxMCkpKSB7XG4gICAgICAvKiBJZiBub3QgYSB2YWxpZCBudW1iZXIsIHJldHVybiAnSW52YWxpZCBOdW1iZXInICovXG4gICAgICByZXR1cm4gJ0ludmFsaWQgTnVtYmVyJztcbiAgICB9XG4gICAgY29uc3QgayA9IDEwMjQ7XG4gICAgY29uc3Qgc2l6ZXM6IHN0cmluZ1tdID0gW1xuICAgICAgJ0InLFxuICAgICAgJ0tpQicsXG4gICAgICAnTWlCJyxcbiAgICAgICdHaUInLFxuICAgICAgJ1RpQicsXG4gICAgICAnUGlCJyxcbiAgICAgICdFaUInLFxuICAgICAgJ1ppQicsXG4gICAgICAnWWlCJyxcbiAgICBdO1xuICAgIGNvbnN0IGk6IG51bWJlciA9IE1hdGguZmxvb3IoTWF0aC5sb2coYnl0ZXMpIC8gTWF0aC5sb2coaykpO1xuICAgIC8vIGlmIGxlc3MgdGhhbiAxXG4gICAgaWYgKGkgPCAwKSB7XG4gICAgICByZXR1cm4gJ0ludmFsaWQgTnVtYmVyJztcbiAgICB9XG4gICAgcmV0dXJuIChcbiAgICAgIHBhcnNlRmxvYXQoKGJ5dGVzIC8gTWF0aC5wb3coaywgaSkpLnRvRml4ZWQocHJlY2lzaW9uKSkgKyAnICcgKyBzaXplc1tpXVxuICAgICk7XG4gIH1cbn1cbiJdfQ==","import { Pipe } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class TdDecimalBytesPipe {\n /* `bytes` needs to be `any` or TypeScript complains\n Tried both `number` and `number | string` */\n transform(bytes, precision = 2) {\n if (bytes === 0) {\n return '0 B';\n }\n else if (isNaN(parseInt(bytes, 10))) {\n /* If not a valid number, return 'Invalid Number' */\n return 'Invalid Number';\n }\n const k = 1000;\n const sizes = [\n 'B',\n 'KB',\n 'MB',\n 'GB',\n 'TB',\n 'PB',\n 'EB',\n 'ZB',\n 'YB',\n ];\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n // if less than 1\n if (i < 0) {\n return 'Invalid Number';\n }\n return (parseFloat((bytes / Math.pow(k, i)).toFixed(precision)) + ' ' + sizes[i]);\n }\n static ɵfac = function TdDecimalBytesPipe_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TdDecimalBytesPipe)(); };\n static ɵpipe = /*@__PURE__*/ i0.ɵɵdefinePipe({ name: \"decimalBytes\", type: TdDecimalBytesPipe, pure: true });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(TdDecimalBytesPipe, [{\n type: Pipe,\n args: [{\n name: 'decimalBytes',\n }]\n }], null, null); })();\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjaW1hbC1ieXRlcy5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2NvbW1vbi9zcmMvcGlwZXMvZGVjaW1hbC1ieXRlcy9kZWNpbWFsLWJ5dGVzLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7O0FBS3BELE1BQU0sT0FBTyxrQkFBa0I7SUFDN0I7Z0RBQzRDO0lBQzVDLFNBQVMsQ0FBQyxLQUFVLEVBQUUsU0FBUyxHQUFHLENBQUM7UUFDakMsSUFBSSxLQUFLLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDaEIsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO2FBQU0sSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDdEMsb0RBQW9EO1lBQ3BELE9BQU8sZ0JBQWdCLENBQUM7UUFDMUIsQ0FBQztRQUNELE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQztRQUNmLE1BQU0sS0FBSyxHQUFhO1lBQ3RCLEdBQUc7WUFDSCxJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtTQUNMLENBQUM7UUFDRixNQUFNLENBQUMsR0FBVyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzVELGlCQUFpQjtRQUNqQixJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNWLE9BQU8sZ0JBQWdCLENBQUM7UUFDMUIsQ0FBQztRQUNELE9BQU8sQ0FDTCxVQUFVLENBQUMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxHQUFHLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUN6RSxDQUFDO0lBQ0osQ0FBQzs0R0E5QlUsa0JBQWtCOytFQUFsQixrQkFBa0I7O2lGQUFsQixrQkFBa0I7Y0FIOUIsSUFBSTtlQUFDO2dCQUNKLElBQUksRUFBRSxjQUFjO2FBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AUGlwZSh7XG4gIG5hbWU6ICdkZWNpbWFsQnl0ZXMnLFxufSlcbmV4cG9ydCBjbGFzcyBUZERlY2ltYWxCeXRlc1BpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgLyogYGJ5dGVzYCBuZWVkcyB0byBiZSBgYW55YCBvciBUeXBlU2NyaXB0IGNvbXBsYWluc1xuICBUcmllZCBib3RoIGBudW1iZXJgIGFuZCBgbnVtYmVyIHwgc3RyaW5nYCAqL1xuICB0cmFuc2Zvcm0oYnl0ZXM6IGFueSwgcHJlY2lzaW9uID0gMik6IHN0cmluZyB7XG4gICAgaWYgKGJ5dGVzID09PSAwKSB7XG4gICAgICByZXR1cm4gJzAgQic7XG4gICAgfSBlbHNlIGlmIChpc05hTihwYXJzZUludChieXRlcywgMTApKSkge1xuICAgICAgLyogSWYgbm90IGEgdmFsaWQgbnVtYmVyLCByZXR1cm4gJ0ludmFsaWQgTnVtYmVyJyAqL1xuICAgICAgcmV0dXJuICdJbnZhbGlkIE51bWJlcic7XG4gICAgfVxuICAgIGNvbnN0IGsgPSAxMDAwO1xuICAgIGNvbnN0IHNpemVzOiBzdHJpbmdbXSA9IFtcbiAgICAgICdCJyxcbiAgICAgICdLQicsXG4gICAgICAnTUInLFxuICAgICAgJ0dCJyxcbiAgICAgICdUQicsXG4gICAgICAnUEInLFxuICAgICAgJ0VCJyxcbiAgICAgICdaQicsXG4gICAgICAnWUInLFxuICAgIF07XG4gICAgY29uc3QgaTogbnVtYmVyID0gTWF0aC5mbG9vcihNYXRoLmxvZyhieXRlcykgLyBNYXRoLmxvZyhrKSk7XG4gICAgLy8gaWYgbGVzcyB0aGFuIDFcbiAgICBpZiAoaSA8IDApIHtcbiAgICAgIHJldHVybiAnSW52YWxpZCBOdW1iZXInO1xuICAgIH1cbiAgICByZXR1cm4gKFxuICAgICAgcGFyc2VGbG9hdCgoYnl0ZXMgLyBNYXRoLnBvdyhrLCBpKSkudG9GaXhlZChwcmVjaXNpb24pKSArICcgJyArIHNpemVzW2ldXG4gICAgKTtcbiAgfVxufVxuIl19","import { Pipe } from '@angular/core';\nimport { DecimalPipe } from '@angular/common';\nimport * as i0 from \"@angular/core\";\nexport class TdDigitsPipe {\n _locale = 'en';\n _decimalPipe;\n constructor() {\n this._decimalPipe = new DecimalPipe(this._locale);\n }\n set locale(locale) {\n this._locale = locale;\n this._decimalPipe = new DecimalPipe(this._locale);\n }\n /* `digits` needs to be type `digits: any` or TypeScript complains */\n transform(digits, precision = 1) {\n if (digits === 0) {\n return '0';\n }\n else if (isNaN(parseInt(digits, 10))) {\n /* If not a valid number, return the value */\n return digits;\n }\n else if (digits < 1) {\n return this._decimalPipe.transform(digits.toFixed(precision)) ?? '';\n }\n const k = 1000;\n const sizes = ['', 'K', 'M', 'B', 'T', 'Q'];\n const i = Math.floor(Math.log(digits) / Math.log(k));\n const size = sizes[i];\n return (this._decimalPipe.transform(parseFloat((digits / Math.pow(k, i)).toFixed(precision))) + (size ? ' ' + size : ''));\n }\n static ɵfac = function TdDigitsPipe_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TdDigitsPipe)(); };\n static ɵpipe = /*@__PURE__*/ i0.ɵɵdefinePipe({ name: \"digits\", type: TdDigitsPipe, pure: true });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(TdDigitsPipe, [{\n type: Pipe,\n args: [{\n name: 'digits',\n }]\n }], () => [], null); })();\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlnaXRzLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tbW9uL3NyYy9waXBlcy9kaWdpdHMvZGlnaXRzLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDcEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUk5QyxNQUFNLE9BQU8sWUFBWTtJQUNmLE9BQU8sR0FBRyxJQUFJLENBQUM7SUFDZixZQUFZLENBQWM7SUFFbEM7UUFDRSxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsSUFBSSxNQUFNLENBQUMsTUFBYztRQUN2QixJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUN0QixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksV