{"version":3,"file":"path-pattern.class-Dg95YGLM.js","sources":["../../../src/packages/core/router/path-pattern.class.ts"],"sourcesContent":["import { umbUrlPatternToString } from '../utils/path/url-pattern-to-string.function.js';\r\n\r\nexport type UmbPathPatternParamsType = { [key: string]: any };\r\n\r\n// Replaces property union type null with 'null' [NL]\r\ntype ReplaceNull = T extends null ? 'null' : T;\r\nexport type UmbPathPatternTypeAsEncodedParamsType = {\r\n\t[P in keyof T]: T[P] extends (infer R)[] ? ReplaceNull[] : ReplaceNull;\r\n};\r\n\r\nexport class UmbPathPattern<\r\n\tLocalParamsType extends UmbPathPatternParamsType = UmbPathPatternParamsType,\r\n\tBaseParamsType extends UmbPathPatternParamsType = LocalParamsType,\r\n> {\r\n\t#local: string;\r\n\t#base: string;\r\n\r\n\t/**\r\n\t * Get the params type of the path pattern\r\n\t * @public\r\n\t * @type {T}\r\n\t * @memberOf UmbPathPattern\r\n\t * @example `typeof MyPathPattern.PARAMS`\r\n\t */\r\n\treadonly PARAMS!: LocalParamsType;\r\n\r\n\t/**\r\n\t * Get absolute params type of the path pattern\r\n\t * @public\r\n\t * @type {T}\r\n\t * @memberOf UmbPathPattern\r\n\t * @example `typeof MyPathPattern.ABSOLUTE_PARAMS`\r\n\t */\r\n\treadonly ABSOLUTE_PARAMS!: LocalParamsType & BaseParamsType;\r\n\r\n\tconstructor(localPattern: string, basePath?: UmbPathPattern | string) {\r\n\t\tthis.#local = localPattern;\r\n\t\tbasePath = basePath?.toString() ?? '';\r\n\t\tthis.#base = basePath.lastIndexOf('/') !== basePath.length - 1 ? basePath + '/' : basePath;\r\n\t}\r\n\r\n\tgenerateLocal(params: LocalParamsType) {\r\n\t\treturn umbUrlPatternToString(this.#local, params);\r\n\t}\r\n\t/**\r\n\t * generate an absolute path from the path pattern\r\n\t * @param params\r\n\t * @param baseParams\r\n\t * @returns\r\n\t */\r\n\tgenerateAbsolute(params: LocalParamsType & BaseParamsType) {\r\n\t\treturn (\r\n\t\t\t(this.#base.indexOf(':') !== -1 ? umbUrlPatternToString(this.#base, params) : this.#base) +\r\n\t\t\tumbUrlPatternToString(this.#local, params)\r\n\t\t);\r\n\t}\r\n\r\n\ttoString() {\r\n\t\treturn this.#local;\r\n\t}\r\n}\r\n"],"names":["UmbPathPattern","#local","#base","localPattern","basePath","params","umbUrlPatternToString"],"mappings":";AAUO,MAAMA,EAGX;AAAA,EACDC;AAAA,EACAC;AAAA,EAoBA,YAAYC,GAAsBC,GAAoC;AACrE,SAAKH,KAASE,GACHC,IAAAA,GAAU,cAAc,IAC9B,KAAAF,KAAQE,EAAS,YAAY,GAAG,MAAMA,EAAS,SAAS,IAAIA,IAAW,MAAMA;AAAA,EAAA;AAAA,EAGnF,cAAcC,GAAyB;AAC/B,WAAAC,EAAsB,KAAKL,IAAQI,CAAM;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQjD,iBAAiBA,GAA0C;AAC1D,YACE,KAAKH,GAAM,QAAQ,GAAG,MAAM,KAAKI,EAAsB,KAAKJ,IAAOG,CAAM,IAAI,KAAKH,MACnFI,EAAsB,KAAKL,IAAQI,CAAM;AAAA,EAAA;AAAA,EAI3C,WAAW;AACV,WAAO,KAAKJ;AAAA,EAAA;AAEd;"}