{"version":3,"file":"ngxtension-repeat-pipe.mjs","sources":["../../../../libs/ngxtension/repeat-pipe/src/repeat-pipe.ts","../../../../libs/ngxtension/repeat-pipe/src/ngxtension-repeat-pipe.ts"],"sourcesContent":["import { Pipe, type PipeTransform } from '@angular/core';\n\nexport const lengthErrorMessageBuilder = (value: unknown) =>\n\t`[Repeat] repeat requires an integer but \"${value}\" is passed in`;\n\nexport const startAtErrorMessageBuilder = (value: unknown) =>\n\t`[Repeat] repeat startAt requires an integer but \"${value}\" is passed in`;\n\n/**\n * Returns an array of numbers starting from a given startAt value up to a specified length.\n *\n * - **Positive length** → ascending sequence  (`startAt`, `startAt + 1`, …)\n * - **Negative length** → descending sequence (`startAt`, `startAt - 1`, …)\n * - **Zero**           → empty array\n *\n * @param {number} length - The number of elements to include in the resulting array (positive = ascending, negative = descending).\n * @param {number} [startAt=0] - The value at which to start the sequence. Defaults to 0 if not provided.\n * @returns {number[]} - An array of numbers starting from startAt and incremented/decremented by 1 up to the specified length.\n * @throws {Error} - If length is not an integer.\n *\n * @example\n * ```html\n * @for (i of 5 | repeat; track i) {\n * <p>Nr. {{i}}</p>\n * }\n *\n * <hr/>\n *\n * @for (i of 5 | repeat: 5; track i) {\n * <p>Nr. {{i}}</p>\n * }\n *\n * <hr/>\n *\n * @for (year of -5 | repeat: 2026; track year) {\n * <p>{{ year }}</p>\n * }\n *\n * <!-- Output -->\n * Nr. 0\n * Nr. 1\n * Nr. 2\n * Nr. 3\n * Nr. 4\n * ----------------\n * Nr. 5\n * Nr. 6\n * Nr. 7\n * Nr. 8\n * Nr. 9\n * ----------------\n * 2026\n * 2025\n * 2024\n * 2023\n * 2022\n * ```\n */\n@Pipe({\n\tstandalone: true,\n\tname: 'repeat',\n})\nexport class RepeatPipe implements PipeTransform {\n\t/**\n\t * Returns an array of numbers starting from a given startAt value up to a specified length.\n\t *\n\t * - **Positive length** → ascending sequence  (`startAt`, `startAt + 1`, …)\n\t * - **Negative length** → descending sequence (`startAt`, `startAt - 1`, …)\n\t * - **Zero**           → empty array\n\t *\n\t * @param {number} length - The number of elements to include in the resulting array (positive = ascending, negative = descending).\n\t * @param {number} [startAt=0] - The value at which to start the sequence. Defaults to 0 if not provided.\n\t * @returns {number[]} - An array of numbers starting from startAt and incremented/decremented by 1 up to the specified length.\n\t * @throws {Error} - If length is not an integer.\n\t *\n\t * @example\n\t * ```html\n\t * @for (i of 5 | repeat; track i) {\n\t * <p>Nr. {{i}}</p>\n\t * }\n\t *\n\t * <hr/>\n\t *\n\t * @for (i of 5 | repeat: 5; track i) {\n\t * <p>Nr. {{i}}</p>\n\t * }\n\t *\n\t * <hr/>\n\t *\n\t * @for (year of -5 | repeat: 2026; track year) {\n\t * <p>{{ year }}</p>\n\t * }\n\t *\n\t * <!-- Output -->\n\t * Nr. 0\n\t * Nr. 1\n\t * Nr. 2\n\t * Nr. 3\n\t * Nr. 4\n\t * ----------------\n\t * Nr. 5\n\t * Nr. 6\n\t * Nr. 7\n\t * Nr. 8\n\t * Nr. 9\n\t * ----------------\n\t * 2026\n\t * 2025\n\t * 2024\n\t * 2023\n\t * 2022\n\t * ```\n\t */\n\ttransform(length: number, startAt = 0): number[] {\n\t\tif (Number.isNaN(length) || !Number.isInteger(length)) {\n\t\t\tthrow new Error(lengthErrorMessageBuilder(length));\n\t\t}\n\t\tif (Number.isNaN(startAt) || !Number.isInteger(startAt)) {\n\t\t\tthrow new Error(startAtErrorMessageBuilder(startAt));\n\t\t}\n\n\t\tconst step = length < 0 ? -1 : 1;\n\n\t\treturn Array.from(\n\t\t\t{ length: Math.abs(length) },\n\t\t\t(_, index) => startAt + index * step,\n\t\t);\n\t}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;AAEO,MAAM,yBAAyB,GAAG,CAAC,KAAc,KACvD,CAAA,yCAAA,EAA4C,KAAK,CAAA,cAAA,CAAgB,CAAC;AAE5D,MAAM,0BAA0B,GAAG,CAAC,KAAc,KACxD,CAAA,iDAAA,EAAoD,KAAK,CAAA,cAAA,CAAgB,CAAC;AAE3E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiDG;MAKU,UAAU,CAAA;AACtB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiDG;AACH,IAAA,SAAS,CAAC,MAAc,EAAE,OAAO,GAAG,CAAC,EAAA;AACpC,QAAA,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACtD,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC,CAAC;SACnD;AACD,QAAA,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YACxD,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,OAAO,CAAC,CAAC,CAAC;SACrD;AAED,QAAA,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AAEjC,QAAA,OAAO,KAAK,CAAC,IAAI,CAChB,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAC5B,CAAC,CAAC,EAAE,KAAK,KAAK,OAAO,GAAG,KAAK,GAAG,IAAI,CACpC,CAAC;KACF;8GAjEW,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;4GAAV,UAAU,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,QAAA,EAAA,CAAA,CAAA,EAAA;;2FAAV,UAAU,EAAA,UAAA,EAAA,CAAA;kBAJtB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACL,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE,QAAQ;AACd,iBAAA,CAAA;;;AC7DD;;AAEG;;;;"}