@taiga-ui/kit
Version:
Taiga UI Angular main components kit
1 lines • 3.82 kB
Source Map (JSON)
{"version":3,"file":"taiga-ui-kit-pipes-hide-selected.mjs","sources":["../../../projects/kit/pipes/hide-selected/hide-selected.pipe.ts","../../../projects/kit/pipes/hide-selected/taiga-ui-kit-pipes-hide-selected.ts"],"sourcesContent":["import type {PipeTransform} from '@angular/core';\nimport {inject, Pipe} from '@angular/core';\nimport type {TuiIdentityMatcher} from '@taiga-ui/cdk/types';\nimport {tuiPure} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiTextfieldComponent} from '@taiga-ui/core/components/textfield';\nimport {TUI_ITEMS_HANDLERS} from '@taiga-ui/core/directives/items-handlers';\nimport {tuiIsFlat} from '@taiga-ui/kit/utils';\n\n@Pipe({\n standalone: true,\n name: 'tuiHideSelected',\n pure: false,\n})\nexport class TuiHideSelectedPipe implements PipeTransform {\n private readonly textfield = inject(TuiTextfieldComponent);\n private readonly handlers = inject(TUI_ITEMS_HANDLERS);\n\n public transform<T>(items: readonly T[] | null): readonly T[] | null;\n public transform<T>(\n items: ReadonlyArray<readonly T[]> | null,\n ): ReadonlyArray<readonly T[]> | null;\n public transform<T>(\n items: ReadonlyArray<readonly T[]> | readonly T[] | null,\n ): ReadonlyArray<readonly T[]> | readonly T[] | null {\n if (!items) {\n return null;\n }\n\n const value = this.textfield.control?.value || [];\n\n return tuiIsFlat(items)\n ? this.filter(items, value, this.handlers.identityMatcher())\n : this.filter2d(items, value, this.handlers.identityMatcher());\n }\n\n @tuiPure\n private filter2d<T>(\n items: ReadonlyArray<readonly T[]>,\n value: readonly T[],\n matcher: TuiIdentityMatcher<T>,\n ): ReadonlyArray<readonly T[]> {\n return items.map((subItems) => this.filter(subItems, value, matcher));\n }\n\n @tuiPure\n private filter<T>(\n items: readonly T[],\n value: readonly T[],\n matcher: TuiIdentityMatcher<T>,\n ): readonly T[] {\n return items.filter((item) =>\n value.every((selected) => !matcher(selected, item)),\n );\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;AAQA,MAKa,mBAAmB,CAAA;AALhC,IAAA,WAAA,GAAA;AAMqB,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC;AAC1C,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC;AAuC1D,KAAA;AAjCU,IAAA,SAAS,CACZ,KAAwD,EAAA;QAExD,IAAI,CAAC,KAAK,EAAE;AACR,YAAA,OAAO,IAAI,CAAC;AACf,SAAA;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC;QAElD,OAAO,SAAS,CAAC,KAAK,CAAC;AACnB,cAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC;AAC5D,cAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC,CAAC;KACtE;AAGO,IAAA,QAAQ,CACZ,KAAkC,EAClC,KAAmB,EACnB,OAA8B,EAAA;QAE9B,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;KACzE;AAGO,IAAA,MAAM,CACV,KAAmB,EACnB,KAAmB,EACnB,OAA8B,EAAA;QAE9B,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,KACrB,KAAK,CAAC,KAAK,CAAC,CAAC,QAAQ,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CACtD,CAAC;KACL;+GAxCQ,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAnB,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,KAAA,EAAA,CAAA,CAAA,EAAA;;AAuBpB,UAAA,CAAA;IADP,OAAO;AAOP,CAAA,EAAA,mBAAA,CAAA,SAAA,EAAA,UAAA,EAAA,IAAA,CAAA,CAAA;AAGO,UAAA,CAAA;IADP,OAAO;AASP,CAAA,EAAA,mBAAA,CAAA,SAAA,EAAA,QAAA,EAAA,IAAA,CAAA,CAAA;4FAxCQ,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAL/B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE,iBAAiB;AACvB,oBAAA,IAAI,EAAE,KAAK;AACd,iBAAA,CAAA;AAwBW,SAAA,CAAA,EAAA,cAAA,EAAA,EAAA,QAAQ,MASR,MAAM,EAAA,EAAA,EAAA,EAAA,CAAA;;AC7ClB;;AAEG;;;;"}