{"version":3,"file":"usitsdasdesign-dds-ng-shared-sort-by.mjs","sources":["../../src/app/dds/shared/sort-by/sort-by.pipe.ts","../../src/app/dds/shared/sort-by/sort-by.module.ts","../../src/app/dds/shared/sort-by/usitsdasdesign-dds-ng-shared-sort-by.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\nimport { SortOptions, TableDataTypes } from '@usitsdasdesign/dds-ng/shared';\n\n@Pipe({\n  name: 'sort',\n  pure: true,\n  standalone: true\n})\nexport class SortPipe implements PipeTransform {\n  transform<T extends Date | string | number | Object>(value: T[], options: SortOptions): T[] {\n    // Return the original array if no value or options are provided\n    if (!value || !options) {\n      return value;\n    }\n\n    const prop: string = options.property;\n    // Check if the data type is date\n    if (options.dataType === TableDataTypes.date) {\n      // Sort the array based on date values\n      return value.sort((a: T, b: T) =>\n        this.getTime(new Date(<Date | string | number>a)) < this.getTime(new Date(<Date | string | number>b))\n          ? -1\n          : 1 * (options.descending ? -1 : 1)\n      );\n    } else {\n      // Sort the array based on the specified property\n      return value.sort((a: T, b: T) => {\n        if ((a[prop] === null || a[prop] === undefined) && (b[prop] === null || b[prop] === undefined)) return 0;\n        if (a[prop] === null || a[prop] === undefined) return options.descending ? 1 : -1;\n        if (b[prop] === null || b[prop] === undefined) return options.descending ? -1 : 1;\n        return (a[prop] < b[prop] ? -1 : 1) * (options.descending ? -1 : 1);\n      });\n    }\n  }\n\n  // Helper method to get the time value of a date\n  getTime(date: Date) {\n    return date != null ? date.getTime() : 0;\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { SortPipe } from './sort-by.pipe';\n\n@NgModule({\n  declarations: [],\n  imports: [SortPipe],\n  exports: [SortPipe],\n})\nexport class SortByModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;MAQa,QAAQ,CAAA;IACnB,SAAS,CAA4C,KAAU,EAAE,OAAoB,EAAA;;AAEnF,QAAA,IAAI,CAAC,KAAK,IAAI,CAAC,OAAO,EAAE;AACtB,YAAA,OAAO,KAAK;QACd;AAEA,QAAA,MAAM,IAAI,GAAW,OAAO,CAAC,QAAQ;;QAErC,IAAI,OAAO,CAAC,QAAQ,KAAK,cAAc,CAAC,IAAI,EAAE;;AAE5C,YAAA,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAI,EAAE,CAAI,KAC3B,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAyB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAyB,CAAC,CAAC;kBAChG,CAAC;AACH,kBAAE,CAAC,IAAI,OAAO,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CACtC;QACH;aAAO;;YAEL,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAI,EAAE,CAAI,KAAI;AAC/B,gBAAA,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,SAAS,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC;AAAE,oBAAA,OAAO,CAAC;AACxG,gBAAA,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,SAAS;AAAE,oBAAA,OAAO,OAAO,CAAC,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC;AACjF,gBAAA,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,SAAS;AAAE,oBAAA,OAAO,OAAO,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC;AACjF,gBAAA,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AACrE,YAAA,CAAC,CAAC;QACJ;IACF;;AAGA,IAAA,OAAO,CAAC,IAAU,EAAA;AAChB,QAAA,OAAO,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC;IAC1C;8GA9BW,QAAQ,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;4GAAR,QAAQ,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,CAAA;;2FAAR,QAAQ,EAAA,UAAA,EAAA,CAAA;kBALpB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,MAAM;AACZ,oBAAA,IAAI,EAAE,IAAI;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;MCCY,YAAY,CAAA;8GAAZ,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;+GAAZ,YAAY,EAAA,OAAA,EAAA,CAHb,QAAQ,CAAA,EAAA,OAAA,EAAA,CACR,QAAQ,CAAA,EAAA,CAAA,CAAA;+GAEP,YAAY,EAAA,CAAA,CAAA;;2FAAZ,YAAY,EAAA,UAAA,EAAA,CAAA;kBALxB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE,EAAE;oBAChB,OAAO,EAAE,CAAC,QAAQ,CAAC;oBACnB,OAAO,EAAE,CAAC,QAAQ,CAAC;AACpB,iBAAA;;;ACPD;;AAEG;;;;"}