@taiga-ui/kit
Version:
Taiga UI Angular main components kit
1 lines • 6.42 kB
Source Map (JSON)
{"version":3,"file":"taiga-ui-kit-components-filter.mjs","sources":["../../../projects/kit/components/filter/filter.component.ts","../../../projects/kit/components/filter/filter.template.html","../../../projects/kit/components/filter/taiga-ui-kit-components-filter.ts"],"sourcesContent":["import {NgForOf, NgIf} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n inject,\n Input,\n Output,\n} from '@angular/core';\nimport {FormsModule} from '@angular/forms';\nimport {TuiControl} from '@taiga-ui/cdk/classes';\nimport {TUI_DEFAULT_IDENTITY_MATCHER, TUI_FALSE_HANDLER} from '@taiga-ui/cdk/constants';\nimport {tuiFallbackValueProvider} from '@taiga-ui/cdk/tokens';\nimport type {\n TuiBooleanHandler,\n TuiHandler,\n TuiIdentityMatcher,\n} from '@taiga-ui/cdk/types';\nimport {TuiHintOverflow} from '@taiga-ui/core/directives/hint';\nimport type {TuiSizeL, TuiSizeS} from '@taiga-ui/core/types';\nimport {TuiBadge} from '@taiga-ui/kit/components/badge';\nimport {TUI_BLOCK_OPTIONS, TuiBlock} from '@taiga-ui/kit/components/block';\nimport type {PolymorpheusContent} from '@taiga-ui/polymorpheus';\nimport {PolymorpheusOutlet, PolymorpheusTemplate} from '@taiga-ui/polymorpheus';\n\n@Component({\n standalone: true,\n selector: 'tui-filter',\n imports: [\n FormsModule,\n NgForOf,\n NgIf,\n PolymorpheusOutlet,\n PolymorpheusTemplate,\n TuiBadge,\n TuiBlock,\n TuiHintOverflow,\n ],\n templateUrl: './filter.template.html',\n styleUrls: ['./filter.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [tuiFallbackValueProvider([])],\n host: {\n '[attr.data-size]': 'size',\n },\n})\nexport class TuiFilter<T> extends TuiControl<readonly T[]> {\n @Input()\n public identityMatcher: TuiIdentityMatcher<T> = TUI_DEFAULT_IDENTITY_MATCHER;\n\n @Input()\n public items: readonly T[] = [];\n\n @Input()\n public size: TuiSizeL | TuiSizeS = inject(TUI_BLOCK_OPTIONS).size;\n\n @Input()\n public disabledItemHandler: TuiBooleanHandler<T> = TUI_FALSE_HANDLER;\n\n @Output()\n public readonly toggledItem = new EventEmitter<T>();\n\n @Input()\n public content: PolymorpheusContent = ({$implicit}) => String($implicit);\n\n @Input()\n public badgeHandler: TuiHandler<T, number> = (item) => Number(item);\n\n public onCheckbox(value: boolean, item: T): void {\n this.toggledItem.emit(item);\n this.onChange(\n value\n ? [...this.value(), item]\n : this.value().filter((arrItem) => !this.identityMatcher(arrItem, item)),\n );\n }\n\n protected isCheckboxEnabled(item: T): boolean {\n return this.value().some((arrItem) => this.identityMatcher(arrItem, item));\n }\n}\n","<label\n *ngFor=\"let item of items\"\n appearance=\"\"\n class=\"t-item\"\n [tuiBlock]=\"size\"\n>\n <span\n *polymorpheusOutlet=\"content as text; context: {$implicit: item}\"\n tuiHintOverflow\n class=\"t-text\"\n >\n {{ text }}\n </span>\n <tui-badge\n *ngIf=\"badgeHandler(item) as badgeValue\"\n appearance=\"neutral\"\n [size]=\"size\"\n >\n {{ badgeValue }}\n </tui-badge>\n <input\n tuiBlock\n type=\"checkbox\"\n [disabled]=\"disabledItemHandler(item)\"\n [ngModel]=\"isCheckboxEnabled(item)\"\n [ngModelOptions]=\"{standalone: true}\"\n (ngModelChange)=\"onCheckbox($event, item)\"\n />\n</label>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;AAyBA,MAqBa,SAAa,SAAQ,UAAwB,CAAA;AArB1D,IAAA,WAAA,GAAA;;QAuBW,IAAe,CAAA,eAAA,GAA0B,4BAA4B,CAAC;QAGtE,IAAK,CAAA,KAAA,GAAiB,EAAE,CAAC;AAGzB,QAAA,IAAA,CAAA,IAAI,GAAwB,MAAM,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC;QAG3D,IAAmB,CAAA,mBAAA,GAAyB,iBAAiB,CAAC;AAGrD,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAK,CAAC;AAG7C,QAAA,IAAA,CAAA,OAAO,GAAwB,CAAC,EAAC,SAAS,EAAC,KAAK,MAAM,CAAC,SAAS,CAAC,CAAC;QAGlE,IAAY,CAAA,YAAA,GAA0B,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC;AAcvE,KAAA;IAZU,UAAU,CAAC,KAAc,EAAE,IAAO,EAAA;AACrC,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5B,IAAI,CAAC,QAAQ,CACT,KAAK;cACC,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC;cACvB,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAC/E,CAAC;KACL;AAES,IAAA,iBAAiB,CAAC,IAAO,EAAA;QAC/B,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;KAC9E;+GAjCQ,SAAS,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAT,SAAS,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,OAAA,EAAA,IAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,SAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,EAAA,SAAA,EALP,CAAC,wBAAwB,CAAC,EAAE,CAAC,CAAC,ECzC7C,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,yuBA6BA,EDAQ,MAAA,EAAA,CAAA,uRAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,WAAW,ghBACX,OAAO,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACP,IAAI,EACJ,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,kBAAkB,8HAElB,QAAQ,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACR,QAAQ,EAAA,QAAA,EAAA,iCAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACR,eAAe,EAAA,QAAA,EAAA,mBAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FAUV,SAAS,EAAA,UAAA,EAAA,CAAA;kBArBrB,SAAS;iCACM,IAAI,EAAA,QAAA,EACN,YAAY,EACb,OAAA,EAAA;wBACL,WAAW;wBACX,OAAO;wBACP,IAAI;wBACJ,kBAAkB;wBAClB,oBAAoB;wBACpB,QAAQ;wBACR,QAAQ;wBACR,eAAe;qBAClB,EAGgB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACpC,SAAA,EAAA,CAAC,wBAAwB,CAAC,EAAE,CAAC,CAAC,EACnC,IAAA,EAAA;AACF,wBAAA,kBAAkB,EAAE,MAAM;AAC7B,qBAAA,EAAA,QAAA,EAAA,yuBAAA,EAAA,MAAA,EAAA,CAAA,uRAAA,CAAA,EAAA,CAAA;8BAIM,eAAe,EAAA,CAAA;sBADrB,KAAK;gBAIC,KAAK,EAAA,CAAA;sBADX,KAAK;gBAIC,IAAI,EAAA,CAAA;sBADV,KAAK;gBAIC,mBAAmB,EAAA,CAAA;sBADzB,KAAK;gBAIU,WAAW,EAAA,CAAA;sBAD1B,MAAM;gBAIA,OAAO,EAAA,CAAA;sBADb,KAAK;gBAIC,YAAY,EAAA,CAAA;sBADlB,KAAK;;;AEjEV;;AAEG;;;;"}