@hashicorp/design-system-components 5.1.0-rc-20251125211530 → 5.1.0-rc-20251202110410
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/declarations/components/hds/filter-bar/{filter-group/checkbox.d.ts → checkbox.d.ts} +4 -5
- package/declarations/components/hds/filter-bar/{filter-group/date.d.ts → date.d.ts} +6 -6
- package/declarations/components/hds/filter-bar/{filter-group/index.d.ts → filter-group.d.ts} +12 -12
- package/declarations/components/hds/filter-bar/{dropdown.d.ts → filters-dropdown.d.ts} +4 -4
- package/declarations/components/hds/filter-bar/{filter-group/generic.d.ts → generic.d.ts} +3 -3
- package/declarations/components/hds/filter-bar/index.d.ts +3 -3
- package/declarations/components/hds/filter-bar/{filter-group/radio.d.ts → radio.d.ts} +4 -5
- package/declarations/components/hds/filter-bar/{filter-group/numerical.d.ts → range.d.ts} +9 -9
- package/declarations/components/hds/filter-bar/types.d.ts +12 -13
- package/declarations/components.d.ts +7 -7
- package/declarations/template-registry.d.ts +19 -19
- package/dist/_app_/components/hds/filter-bar/{dropdown.js → checkbox.js} +1 -1
- package/dist/_app_/components/hds/filter-bar/{filter-group/date.js → date.js} +1 -1
- package/dist/_app_/components/hds/filter-bar/filter-group.js +1 -1
- package/dist/_app_/components/hds/filter-bar/filters-dropdown.js +1 -0
- package/dist/_app_/components/hds/filter-bar/{filter-group/generic.js → generic.js} +1 -1
- package/dist/_app_/components/hds/filter-bar/{filter-group/radio.js → radio.js} +1 -1
- package/dist/_app_/components/hds/filter-bar/range.js +1 -0
- package/dist/components/hds/advanced-table/index.js +1 -1
- package/dist/components/hds/filter-bar/{filter-group/checkbox.js → checkbox.js} +6 -7
- package/dist/components/hds/filter-bar/checkbox.js.map +1 -0
- package/dist/components/hds/filter-bar/{filter-group/date.js → date.js} +5 -5
- package/dist/components/hds/filter-bar/date.js.map +1 -0
- package/dist/components/hds/filter-bar/{filter-group/index.js → filter-group.js} +11 -12
- package/dist/components/hds/filter-bar/filter-group.js.map +1 -0
- package/dist/components/hds/filter-bar/{dropdown.js → filters-dropdown.js} +7 -7
- package/dist/components/hds/filter-bar/filters-dropdown.js.map +1 -0
- package/dist/components/hds/filter-bar/{filter-group/generic.js → generic.js} +4 -4
- package/dist/components/hds/filter-bar/generic.js.map +1 -0
- package/dist/components/hds/filter-bar/index.js +18 -21
- package/dist/components/hds/filter-bar/index.js.map +1 -1
- package/dist/components/hds/filter-bar/{filter-group/radio.js → radio.js} +6 -7
- package/dist/components/hds/filter-bar/radio.js.map +1 -0
- package/dist/components/hds/filter-bar/range.js +163 -0
- package/dist/components/hds/filter-bar/range.js.map +1 -0
- package/dist/components/hds/filter-bar/types.js +10 -10
- package/dist/components/hds/filter-bar/types.js.map +1 -1
- package/dist/components.js +8 -8
- package/dist/styles/@hashicorp/design-system-components.css +77 -62
- package/dist/styles/components/filter-bar.scss +90 -74
- package/package.json +7 -7
- package/translations/hds/components/filter-bar/en-us.yaml +1 -1
- package/dist/_app_/components/hds/filter-bar/filter-group/checkbox.js +0 -1
- package/dist/_app_/components/hds/filter-bar/filter-group/numerical.js +0 -1
- package/dist/components/hds/filter-bar/dropdown.js.map +0 -1
- package/dist/components/hds/filter-bar/filter-group/checkbox.js.map +0 -1
- package/dist/components/hds/filter-bar/filter-group/date.js.map +0 -1
- package/dist/components/hds/filter-bar/filter-group/generic.js.map +0 -1
- package/dist/components/hds/filter-bar/filter-group/index.js.map +0 -1
- package/dist/components/hds/filter-bar/filter-group/numerical.js +0 -163
- package/dist/components/hds/filter-bar/filter-group/numerical.js.map +0 -1
- package/dist/components/hds/filter-bar/filter-group/radio.js.map +0 -1
- /package/translations/hds/components/filter-bar/{filter-group/numerical → range}/en-us.yaml +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"date.js","sources":["../../../../src/components/hds/filter-bar/date.ts"],"sourcesContent":["/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { action } from '@ember/object';\nimport { tracked } from '@glimmer/tracking';\nimport type Owner from '@ember/owner';\nimport { guidFor } from '@ember/object/internals';\nimport { service } from '@ember/service';\n\nimport type HdsIntlService from '../../../services/hds-intl';\nimport type { HdsFormTextInputTypes } from '../form/text-input/types.ts';\n\nimport type {\n HdsFilterBarFilter,\n HdsFilterBarDateFilterSelector,\n HdsFilterBarDateFilterValue,\n} from './types.ts';\nimport { HdsFilterBarDateFilterSelectorValues } from './types.ts';\n\nexport const DATE_SELECTORS: HdsFilterBarDateFilterSelector[] = Object.values(\n HdsFilterBarDateFilterSelectorValues\n);\n\nexport const DATE_SELECTORS_TEXT: Record<\n HdsFilterBarDateFilterSelector,\n string\n> = {\n [HdsFilterBarDateFilterSelectorValues.before]: 'before',\n [HdsFilterBarDateFilterSelectorValues.exactly]: 'exactly',\n [HdsFilterBarDateFilterSelectorValues.after]: 'after',\n [HdsFilterBarDateFilterSelectorValues.between]: 'between',\n};\n\nexport const DATE_SELECTORS_INPUT_TEXT: Record<\n HdsFilterBarDateFilterSelector,\n string\n> = {\n [HdsFilterBarDateFilterSelectorValues.before]: 'Before',\n [HdsFilterBarDateFilterSelectorValues.exactly]: 'Exactly',\n [HdsFilterBarDateFilterSelectorValues.after]: 'After',\n [HdsFilterBarDateFilterSelectorValues.between]: 'Between',\n};\n\nexport interface HdsFilterBarDateSignature {\n Args: {\n keyFilter: HdsFilterBarFilter | undefined;\n type?: 'date' | 'time' | 'datetime';\n onChange?: (\n selector?: HdsFilterBarDateFilterSelector,\n value?: HdsFilterBarDateFilterValue\n ) => void;\n };\n Blocks: {\n default: [];\n };\n Element: HTMLDivElement;\n}\n\nexport default class HdsFilterBarDate extends Component<HdsFilterBarDateSignature> {\n @service hdsIntl!: HdsIntlService;\n\n @tracked private _selector: HdsFilterBarDateFilterSelector | undefined;\n @tracked private _value: string | undefined;\n @tracked private _betweenValueStart: string | undefined;\n @tracked private _betweenValueEnd: string | undefined;\n\n private _selectorValues = DATE_SELECTORS;\n private _selectorInputId = 'selector-input-' + guidFor(this);\n private _valueInputId = 'value-input-' + guidFor(this);\n private _betweenValueStartInputId =\n 'between-value-start-input-' + guidFor(this);\n private _betweenValueEndInputId = 'between-value-end-input-' + guidFor(this);\n\n constructor(owner: Owner, args: HdsFilterBarDateSignature['Args']) {\n super(owner, args);\n\n const { keyFilter } = this.args;\n if (\n keyFilter &&\n (keyFilter.type === 'date' ||\n keyFilter.type === 'time' ||\n keyFilter.type === 'datetime')\n ) {\n const data = keyFilter.data;\n this._selector = data.selector;\n if (data.selector === 'between') {\n if (\n data.value &&\n typeof data.value === 'object' &&\n 'start' in data.value &&\n 'end' in data.value\n ) {\n this._betweenValueStart = data.value.start;\n this._betweenValueEnd = data.value.end;\n }\n } else {\n this._value = data.value as string;\n }\n }\n }\n\n get type(): 'date' | 'time' | 'datetime' {\n return this.args.type || 'date';\n }\n\n get inputType(): HdsFormTextInputTypes {\n if (this.type === 'datetime') {\n return 'datetime-local';\n }\n return this.type;\n }\n\n get selectorLabelText(): string {\n return this.hdsIntl.t(`hds.components.filter-bar.date.${this.type}.label`, {\n default: 'Date is',\n });\n }\n\n @action\n onSelectorChange(event: Event): void {\n const select = event.target as HTMLSelectElement;\n this._selector = select.value as HdsFilterBarDateFilterSelector;\n if (this._selector === 'between') {\n this._value = undefined;\n } else {\n this._betweenValueStart = undefined;\n this._betweenValueEnd = undefined;\n }\n this._onChange();\n }\n\n @action\n onValueChange(event: Event): void {\n const input = event.target as HTMLInputElement;\n this._value = input.value;\n this._onChange();\n }\n\n @action\n onBetweenValueStartChange(event: Event): void {\n const input = event.target as HTMLInputElement;\n this._betweenValueStart = input.value;\n this._onChange();\n }\n\n @action\n onBetweenValueEndChange(event: Event): void {\n const input = event.target as HTMLInputElement;\n this._betweenValueEnd = input.value;\n this._onChange();\n }\n\n @action\n onClear(): void {\n this._resetInputValues();\n this._onChange();\n }\n\n private _onChange(): void {\n const { onChange } = this.args;\n if (onChange && typeof onChange === 'function') {\n if (\n this._selector === 'between' &&\n this._betweenValueStart !== undefined &&\n this._betweenValueEnd !== undefined\n ) {\n onChange(this._selector, {\n start: this._betweenValueStart,\n end: this._betweenValueEnd,\n });\n } else {\n onChange(this._selector, this._value);\n }\n }\n }\n\n private _selectorText = (\n selector: HdsFilterBarDateFilterSelector\n ): string => {\n return this.hdsIntl.t(\n `hds.components.filter-bar.date.selector-input.${selector}`,\n {\n default: DATE_SELECTORS_INPUT_TEXT[selector],\n }\n );\n };\n\n private _resetInputValues = (): void => {\n this._selector = undefined;\n this._value = undefined;\n this._betweenValueStart = undefined;\n this._betweenValueEnd = undefined;\n };\n}\n"],"names":["DATE_SELECTORS","Object","values","HdsFilterBarDateFilterSelectorValues","DATE_SELECTORS_TEXT","before","exactly","after","between","DATE_SELECTORS_INPUT_TEXT","HdsFilterBarDate","Component","g","prototype","service","i","void 0","tracked","_selectorValues","_selectorInputId","guidFor","_valueInputId","_betweenValueStartInputId","_betweenValueEndInputId","constructor","owner","args","keyFilter","type","data","_selector","selector","value","_betweenValueStart","start","_betweenValueEnd","end","_value","inputType","selectorLabelText","hdsIntl","t","default","onSelectorChange","event","select","target","undefined","_onChange","n","action","onValueChange","input","onBetweenValueStartChange","onBetweenValueEndChange","onClear","_resetInputValues","onChange","_selectorText","setComponentTemplate","TEMPLATE"],"mappings":";;;;;;;;;;;;AAAA;AACA;AACA;AACA;;AAmBO,MAAMA,cAAgD,GAAGC,MAAM,CAACC,MAAM,CAC3EC,oCACF;AAEO,MAAMC,mBAGZ,GAAG;AACF,EAAA,CAACD,oCAAoC,CAACE,MAAM,GAAG,QAAQ;AACvD,EAAA,CAACF,oCAAoC,CAACG,OAAO,GAAG,SAAS;AACzD,EAAA,CAACH,oCAAoC,CAACI,KAAK,GAAG,OAAO;EACrD,CAACJ,oCAAoC,CAACK,OAAO,GAAG;AAClD;AAEO,MAAMC,yBAGZ,GAAG;AACF,EAAA,CAACN,oCAAoC,CAACE,MAAM,GAAG,QAAQ;AACvD,EAAA,CAACF,oCAAoC,CAACG,OAAO,GAAG,SAAS;AACzD,EAAA,CAACH,oCAAoC,CAACI,KAAK,GAAG,OAAO;EACrD,CAACJ,oCAAoC,CAACK,OAAO,GAAG;AAClD;AAiBe,MAAME,gBAAgB,SAASC,SAAS,CAA4B;AAAA,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,SAAA,EAAA,CAChFC,OAAO,CAAA,CAAA;AAAA;AAAA,EAAA,QAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,SAAA,CAAA,EAAAC,MAAA;AAAA,EAAA;IAAAJ,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,WAAA,EAAA,CAEPI,OAAO,CAAA,CAAA;AAAA;AAAA,EAAA,UAAA,IAAAF,CAAA,CAAA,IAAA,EAAA,WAAA,CAAA,EAAAC,MAAA;AAAA,EAAA;IAAAJ,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,QAAA,EAAA,CACPI,OAAO,CAAA,CAAA;AAAA;AAAA,EAAA,OAAA,IAAAF,CAAA,CAAA,IAAA,EAAA,QAAA,CAAA,EAAAC,MAAA;AAAA,EAAA;IAAAJ,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,oBAAA,EAAA,CACPI,OAAO,CAAA,CAAA;AAAA;AAAA,EAAA,mBAAA,IAAAF,CAAA,CAAA,IAAA,EAAA,oBAAA,CAAA,EAAAC,MAAA;AAAA,EAAA;IAAAJ,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,kBAAA,EAAA,CACPI,OAAO,CAAA,CAAA;AAAA;AAAA,EAAA,iBAAA,IAAAF,CAAA,CAAA,IAAA,EAAA,kBAAA,CAAA,EAAAC,MAAA;AAEAE,EAAAA,eAAe,GAAGlB,cAAc;AAChCmB,EAAAA,gBAAgB,GAAG,iBAAiB,GAAGC,OAAO,CAAC,IAAI,CAAC;AACpDC,EAAAA,aAAa,GAAG,cAAc,GAAGD,OAAO,CAAC,IAAI,CAAC;AAC9CE,EAAAA,yBAAyB,GAC/B,4BAA4B,GAAGF,OAAO,CAAC,IAAI,CAAC;AACtCG,EAAAA,uBAAuB,GAAG,0BAA0B,GAAGH,OAAO,CAAC,IAAI,CAAC;AAE5EI,EAAAA,WAAWA,CAACC,KAAY,EAAEC,IAAuC,EAAE;AACjE,IAAA,KAAK,CAACD,KAAK,EAAEC,IAAI,CAAC;IAElB,MAAM;AAAEC,MAAAA;KAAW,GAAG,IAAI,CAACD,IAAI;IAC/B,IACEC,SAAS,KACRA,SAAS,CAACC,IAAI,KAAK,MAAM,IACxBD,SAAS,CAACC,IAAI,KAAK,MAAM,IACzBD,SAAS,CAACC,IAAI,KAAK,UAAU,CAAC,EAChC;AACA,MAAA,MAAMC,IAAI,GAAGF,SAAS,CAACE,IAAI;AAC3B,MAAA,IAAI,CAACC,SAAS,GAAGD,IAAI,CAACE,QAAQ;AAC9B,MAAA,IAAIF,IAAI,CAACE,QAAQ,KAAK,SAAS,EAAE;QAC/B,IACEF,IAAI,CAACG,KAAK,IACV,OAAOH,IAAI,CAACG,KAAK,KAAK,QAAQ,IAC9B,OAAO,IAAIH,IAAI,CAACG,KAAK,IACrB,KAAK,IAAIH,IAAI,CAACG,KAAK,EACnB;AACA,UAAA,IAAI,CAACC,kBAAkB,GAAGJ,IAAI,CAACG,KAAK,CAACE,KAAK;AAC1C,UAAA,IAAI,CAACC,gBAAgB,GAAGN,IAAI,CAACG,KAAK,CAACI,GAAG;AACxC,QAAA;AACF,MAAA,CAAC,MAAM;AACL,QAAA,IAAI,CAACC,MAAM,GAAGR,IAAI,CAACG,KAAe;AACpC,MAAA;AACF,IAAA;AACF,EAAA;EAEA,IAAIJ,IAAIA,GAAiC;AACvC,IAAA,OAAO,IAAI,CAACF,IAAI,CAACE,IAAI,IAAI,MAAM;AACjC,EAAA;EAEA,IAAIU,SAASA,GAA0B;AACrC,IAAA,IAAI,IAAI,CAACV,IAAI,KAAK,UAAU,EAAE;AAC5B,MAAA,OAAO,gBAAgB;AACzB,IAAA;IACA,OAAO,IAAI,CAACA,IAAI;AAClB,EAAA;EAEA,IAAIW,iBAAiBA,GAAW;IAC9B,OAAO,IAAI,CAACC,OAAO,CAACC,CAAC,CAAC,CAAA,+BAAA,EAAkC,IAAI,CAACb,IAAI,CAAA,MAAA,CAAQ,EAAE;AACzEc,MAAAA,OAAO,EAAE;AACX,KAAC,CAAC;AACJ,EAAA;EAGAC,gBAAgBA,CAACC,KAAY,EAAQ;AACnC,IAAA,MAAMC,MAAM,GAAGD,KAAK,CAACE,MAA2B;AAChD,IAAA,IAAI,CAAChB,SAAS,GAAGe,MAAM,CAACb,KAAuC;AAC/D,IAAA,IAAI,IAAI,CAACF,SAAS,KAAK,SAAS,EAAE;MAChC,IAAI,CAACO,MAAM,GAAGU,SAAS;AACzB,IAAA,CAAC,MAAM;MACL,IAAI,CAACd,kBAAkB,GAAGc,SAAS;MACnC,IAAI,CAACZ,gBAAgB,GAAGY,SAAS;AACnC,IAAA;IACA,IAAI,CAACC,SAAS,EAAE;AAClB,EAAA;AAAC,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAApC,SAAA,EAAA,kBAAA,EAAA,CAXAqC,MAAM,CAAA,CAAA;AAAA;EAcPC,aAAaA,CAACP,KAAY,EAAQ;AAChC,IAAA,MAAMQ,KAAK,GAAGR,KAAK,CAACE,MAA0B;AAC9C,IAAA,IAAI,CAACT,MAAM,GAAGe,KAAK,CAACpB,KAAK;IACzB,IAAI,CAACgB,SAAS,EAAE;AAClB,EAAA;AAAC,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAApC,SAAA,EAAA,eAAA,EAAA,CALAqC,MAAM,CAAA,CAAA;AAAA;EAQPG,yBAAyBA,CAACT,KAAY,EAAQ;AAC5C,IAAA,MAAMQ,KAAK,GAAGR,KAAK,CAACE,MAA0B;AAC9C,IAAA,IAAI,CAACb,kBAAkB,GAAGmB,KAAK,CAACpB,KAAK;IACrC,IAAI,CAACgB,SAAS,EAAE;AAClB,EAAA;AAAC,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAApC,SAAA,EAAA,2BAAA,EAAA,CALAqC,MAAM,CAAA,CAAA;AAAA;EAQPI,uBAAuBA,CAACV,KAAY,EAAQ;AAC1C,IAAA,MAAMQ,KAAK,GAAGR,KAAK,CAACE,MAA0B;AAC9C,IAAA,IAAI,CAACX,gBAAgB,GAAGiB,KAAK,CAACpB,KAAK;IACnC,IAAI,CAACgB,SAAS,EAAE;AAClB,EAAA;AAAC,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAApC,SAAA,EAAA,yBAAA,EAAA,CALAqC,MAAM,CAAA,CAAA;AAAA;AAQPK,EAAAA,OAAOA,GAAS;IACd,IAAI,CAACC,iBAAiB,EAAE;IACxB,IAAI,CAACR,SAAS,EAAE;AAClB,EAAA;AAAC,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAApC,SAAA,EAAA,SAAA,EAAA,CAJAqC,MAAM,CAAA,CAAA;AAAA;AAMCF,EAAAA,SAASA,GAAS;IACxB,MAAM;AAAES,MAAAA;KAAU,GAAG,IAAI,CAAC/B,IAAI;AAC9B,IAAA,IAAI+B,QAAQ,IAAI,OAAOA,QAAQ,KAAK,UAAU,EAAE;AAC9C,MAAA,IACE,IAAI,CAAC3B,SAAS,KAAK,SAAS,IAC5B,IAAI,CAACG,kBAAkB,KAAKc,SAAS,IACrC,IAAI,CAACZ,gBAAgB,KAAKY,SAAS,EACnC;AACAU,QAAAA,QAAQ,CAAC,IAAI,CAAC3B,SAAS,EAAE;UACvBI,KAAK,EAAE,IAAI,CAACD,kBAAkB;UAC9BG,GAAG,EAAE,IAAI,CAACD;AACZ,SAAC,CAAC;AACJ,MAAA,CAAC,MAAM;QACLsB,QAAQ,CAAC,IAAI,CAAC3B,SAAS,EAAE,IAAI,CAACO,MAAM,CAAC;AACvC,MAAA;AACF,IAAA;AACF,EAAA;EAEQqB,aAAa,GACnB3B,QAAwC,IAC7B;IACX,OAAO,IAAI,CAACS,OAAO,CAACC,CAAC,CACnB,CAAA,8CAAA,EAAiDV,QAAQ,CAAA,CAAE,EAC3D;MACEW,OAAO,EAAEjC,yBAAyB,CAACsB,QAAQ;AAC7C,KACF,CAAC;EACH,CAAC;EAEOyB,iBAAiB,GAAGA,MAAY;IACtC,IAAI,CAAC1B,SAAS,GAAGiB,SAAS;IAC1B,IAAI,CAACV,MAAM,GAAGU,SAAS;IACvB,IAAI,CAACd,kBAAkB,GAAGc,SAAS;IACnC,IAAI,CAACZ,gBAAgB,GAAGY,SAAS;EACnC,CAAC;AACH;AAACY,oBAAA,CAAAC,QAAA,EAvIoBlD,gBAAgB,CAAA;;;;"}
|
|
@@ -2,8 +2,8 @@ import Component from '@glimmer/component';
|
|
|
2
2
|
import { action } from '@ember/object';
|
|
3
3
|
import { tracked } from '@glimmer/tracking';
|
|
4
4
|
import { modifier } from 'ember-modifier';
|
|
5
|
-
import '
|
|
6
|
-
import '
|
|
5
|
+
import './tabs/tab.js';
|
|
6
|
+
import './tabs/panel.js';
|
|
7
7
|
import './generic.js';
|
|
8
8
|
import './checkbox.js';
|
|
9
9
|
import './radio.js';
|
|
@@ -11,7 +11,7 @@ import { precompileTemplate } from '@ember/template-compilation';
|
|
|
11
11
|
import { g, i, n } from 'decorator-transforms/runtime';
|
|
12
12
|
import { setComponentTemplate } from '@ember/component';
|
|
13
13
|
|
|
14
|
-
var TEMPLATE = precompileTemplate("{{!\n Copyright (c) HashiCorp, Inc.\n SPDX-License-Identifier: MPL-2.0\n}}\n{{#let @tab as |Tab|}}\n <Tab @numFilters={{this.numFilters}}>\n {{@text}}\n </Tab>\n{{/let}}\n{{#let @panel as |Panel|}}\n <Panel {{this._setUpFilterPanel}}>\n {{#if @searchEnabled}}\n <div class=\"hds-filter-
|
|
14
|
+
var TEMPLATE = precompileTemplate("{{!\n Copyright (c) HashiCorp, Inc.\n SPDX-License-Identifier: MPL-2.0\n}}\n{{#let @tab as |Tab|}}\n <Tab @numFilters={{this.numFilters}}>\n {{@text}}\n </Tab>\n{{/let}}\n{{#let @panel as |Panel|}}\n <Panel {{this._setUpFilterPanel}}>\n {{#if @searchEnabled}}\n <div class=\"hds-filter-bar__filters-dropdown__filter-group__search\">\n <Hds::Form::TextInput::Base\n @type=\"search\"\n placeholder={{hds-t \"components.filter-bar.filter-group.search-input-placeholder\" default=\"Search\"}}\n {{on \"input\" this.onSearch}}\n />\n </div>\n {{/if}}\n {{#if (eq @type \"range\")}}\n <Hds::FilterBar::Range @keyFilter={{this.keyFilter}} @onChange={{this.onRangeChange}} />\n {{else if (eq @type \"date\")}}\n <Hds::FilterBar::Date @keyFilter={{this.keyFilter}} @onChange={{this.onDateChange}} @type=\"date\" />\n {{else if (eq @type \"datetime\")}}\n <Hds::FilterBar::Date @keyFilter={{this.keyFilter}} @onChange={{this.onDateChange}} @type=\"datetime\" />\n {{else if (eq @type \"time\")}}\n <Hds::FilterBar::Date @keyFilter={{this.keyFilter}} @onChange={{this.onDateChange}} @type=\"time\" />\n {{else if (eq @type \"generic\")}}\n {{yield\n (hash Generic=(component \"hds/filter-bar/generic\" keyFilter=this.keyFilter onChange=this.onGenericChange))\n }}\n {{else}}\n <div class=\"hds-filter-bar__filters-dropdown__filter-group__values-list\">\n <div class=\"hds-filter-bar__filters-dropdown__clear\">\n <Hds::Button\n @text={{hds-t \"hds.components.filter-bar.filter-group.clear\" default=\"Clear selection\"}}\n @color=\"tertiary\"\n @icon=\"rotate-ccw\"\n {{on \"click\" this.onClear}}\n />\n </div>\n <ul class=\"hds-filter-bar__filters-dropdown__filter-group__list\">\n {{yield\n (hash\n Checkbox=(component \"hds/filter-bar/checkbox\" keyFilter=this.keyFilter onChange=this.onSelectionChange)\n Radio=(component \"hds/filter-bar/radio\" keyFilter=this.keyFilter onChange=this.onSelectionChange)\n )\n }}\n </ul>\n </div>\n {{/if}}\n </Panel>\n{{/let}}");
|
|
15
15
|
|
|
16
16
|
/**
|
|
17
17
|
* Copyright (c) HashiCorp, Inc.
|
|
@@ -66,11 +66,10 @@ class HdsFilterBarFilterGroup extends Component {
|
|
|
66
66
|
}
|
|
67
67
|
return 0;
|
|
68
68
|
}
|
|
69
|
-
onSelectionChange(event
|
|
69
|
+
onSelectionChange(event) {
|
|
70
70
|
const addFilter = value => {
|
|
71
71
|
const newFilter = {
|
|
72
|
-
value: value
|
|
73
|
-
label: label
|
|
72
|
+
value: value
|
|
74
73
|
};
|
|
75
74
|
if (this.type === 'single-select') {
|
|
76
75
|
this.internalFilters = newFilter;
|
|
@@ -115,7 +114,7 @@ class HdsFilterBarFilterGroup extends Component {
|
|
|
115
114
|
static {
|
|
116
115
|
n(this.prototype, "onSelectionChange", [action]);
|
|
117
116
|
}
|
|
118
|
-
|
|
117
|
+
onRangeChange(selector, value) {
|
|
119
118
|
const addFilter = () => {
|
|
120
119
|
const newFilter = {
|
|
121
120
|
selector: selector,
|
|
@@ -136,7 +135,7 @@ class HdsFilterBarFilterGroup extends Component {
|
|
|
136
135
|
}
|
|
137
136
|
}
|
|
138
137
|
static {
|
|
139
|
-
n(this.prototype, "
|
|
138
|
+
n(this.prototype, "onRangeChange", [action]);
|
|
140
139
|
}
|
|
141
140
|
onDateChange(selector, value) {
|
|
142
141
|
const addFilter = () => {
|
|
@@ -206,16 +205,16 @@ class HdsFilterBarFilterGroup extends Component {
|
|
|
206
205
|
return classes.join(' ');
|
|
207
206
|
}
|
|
208
207
|
onSearch = event => {
|
|
209
|
-
const listItems = this._panelElement.querySelectorAll('.hds-filter-
|
|
208
|
+
const listItems = this._panelElement.querySelectorAll('.hds-filter-bar__filters-dropdown__filter-option');
|
|
210
209
|
const input = event.target;
|
|
211
210
|
listItems.forEach(item => {
|
|
212
211
|
if (item.textContent) {
|
|
213
212
|
const text = item.textContent.toLowerCase();
|
|
214
213
|
const searchText = input.value.toLowerCase();
|
|
215
214
|
if (text.includes(searchText)) {
|
|
216
|
-
item.classList.remove('hds-filter-
|
|
215
|
+
item.classList.remove('hds-filter-bar__filters-dropdown__filter-option--hidden');
|
|
217
216
|
} else {
|
|
218
|
-
item.classList.add('hds-filter-
|
|
217
|
+
item.classList.add('hds-filter-bar__filters-dropdown__filter-option--hidden');
|
|
219
218
|
}
|
|
220
219
|
}
|
|
221
220
|
});
|
|
@@ -224,4 +223,4 @@ class HdsFilterBarFilterGroup extends Component {
|
|
|
224
223
|
setComponentTemplate(TEMPLATE, HdsFilterBarFilterGroup);
|
|
225
224
|
|
|
226
225
|
export { HdsFilterBarFilterGroup as default };
|
|
227
|
-
//# sourceMappingURL=
|
|
226
|
+
//# sourceMappingURL=filter-group.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filter-group.js","sources":["../../../../src/components/hds/filter-bar/filter-group.ts"],"sourcesContent":["/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { action } from '@ember/object';\nimport { tracked } from '@glimmer/tracking';\nimport { modifier } from 'ember-modifier';\nimport type { WithBoundArgs } from '@glint/template';\n\nimport HdsFilterBarTabsTab from './tabs/tab.ts';\nimport HdsFilterBarTabsPanel from './tabs/panel.ts';\nimport type { HdsTabsPanelSignature } from '../tabs/panel.ts';\n\nimport HdsFilterBarGeneric from './generic.ts';\nimport HdsFilterBarCheckbox from './checkbox.ts';\nimport HdsFilterBarRadio from './radio.ts';\n\nimport type {\n HdsFilterBarFilter,\n HdsFilterBarFilters,\n HdsFilterBarFilterType,\n HdsFilterBarData,\n HdsFilterBarGenericFilter,\n HdsFilterBarGenericFilterData,\n HdsFilterBarRangeFilterData,\n HdsFilterBarRangeFilterSelector,\n HdsFilterBarRangeFilterValue,\n HdsFilterBarDateFilterData,\n HdsFilterBarDateFilterSelector,\n HdsFilterBarDateFilterValue,\n} from './types.ts';\n\nexport interface HdsFilterBarFilterGroupSignature {\n Args: {\n tab?: WithBoundArgs<typeof HdsFilterBarTabsTab, never>;\n panel?: WithBoundArgs<typeof HdsFilterBarTabsPanel, never>;\n key: string;\n text: string;\n type?: HdsFilterBarFilterType;\n filters: HdsFilterBarFilters;\n searchEnabled?: boolean;\n onChange: (key: string, keyFilter?: HdsFilterBarFilter) => void;\n };\n Blocks: {\n default: [\n {\n Generic?: WithBoundArgs<typeof HdsFilterBarGeneric, 'keyFilter'>;\n Checkbox?: WithBoundArgs<\n typeof HdsFilterBarCheckbox,\n 'keyFilter' | 'onChange'\n >;\n Radio?: WithBoundArgs<\n typeof HdsFilterBarRadio,\n 'keyFilter' | 'onChange'\n >;\n },\n ];\n };\n Element: HdsTabsPanelSignature['Element'];\n}\n\nexport default class HdsFilterBarFilterGroup extends Component<HdsFilterBarFilterGroupSignature> {\n @tracked internalFilters: HdsFilterBarData | undefined = [];\n\n private _panelElement!: HdsTabsPanelSignature['Element'];\n\n private _setUpFilterPanel = modifier(\n (element: HdsTabsPanelSignature['Element']) => {\n this._panelElement = element;\n\n if (this.keyFilter) {\n this.internalFilters = JSON.parse(\n JSON.stringify(this.keyFilter.data)\n ) as HdsFilterBarData;\n }\n }\n );\n\n get type(): HdsFilterBarFilterType {\n const { type } = this.args;\n\n if (!type) {\n return 'multi-select';\n }\n return type;\n }\n\n get keyFilter(): HdsFilterBarFilter | undefined {\n const { filters, key } = this.args;\n\n if (!filters) {\n return undefined;\n }\n return filters[key];\n }\n\n get numFilters(): number {\n const { filters, key } = this.args;\n if (filters && key in filters) {\n const keyFilters = filters[key]?.data;\n if (Array.isArray(keyFilters)) {\n return keyFilters.length;\n } else if (keyFilters) {\n return 1;\n }\n }\n return 0;\n }\n\n @action\n onSelectionChange(event: Event): void {\n const addFilter = (value: unknown): void => {\n const newFilter = {\n value: value,\n } as HdsFilterBarGenericFilterData;\n if (this.type === 'single-select') {\n this.internalFilters = newFilter;\n } else {\n if (Array.isArray(this.internalFilters)) {\n this.internalFilters.push(newFilter);\n } else {\n this.internalFilters = [newFilter];\n }\n }\n };\n\n const removeFilter = (value: string): void => {\n if (this.type === 'single-select') {\n this.internalFilters = undefined;\n } else {\n if (Array.isArray(this.internalFilters)) {\n const newFilter = [] as HdsFilterBarGenericFilterData[];\n this.internalFilters.forEach((filter) => {\n if (filter.value != value) {\n newFilter.push(filter);\n }\n });\n this.internalFilters = newFilter;\n } else {\n this.internalFilters = [];\n }\n }\n };\n\n const input = event.target as HTMLInputElement;\n\n if (input.checked) {\n addFilter(input.value);\n } else {\n removeFilter(input.value);\n }\n\n const { onChange } = this.args;\n if (onChange && typeof onChange === 'function') {\n onChange(this.args.key, this.formattedFilters);\n }\n }\n\n @action\n onRangeChange(\n selector?: HdsFilterBarRangeFilterSelector,\n value?: HdsFilterBarRangeFilterValue\n ): void {\n const addFilter = (): HdsFilterBarData => {\n const newFilter = {\n selector: selector,\n value: value,\n } as HdsFilterBarRangeFilterData;\n return newFilter;\n };\n\n if (selector && value) {\n this.internalFilters = addFilter();\n } else {\n this.internalFilters = undefined;\n }\n\n const { onChange } = this.args;\n if (onChange && typeof onChange === 'function') {\n onChange(this.args.key, this.formattedFilters);\n }\n }\n\n @action\n onDateChange(\n selector?: HdsFilterBarDateFilterSelector,\n value?: HdsFilterBarDateFilterValue\n ): void {\n const addFilter = (): HdsFilterBarData => {\n const newFilter = {\n selector: selector,\n value: value,\n } as HdsFilterBarDateFilterData;\n return newFilter;\n };\n\n if (selector && value) {\n this.internalFilters = addFilter();\n } else {\n this.internalFilters = undefined;\n }\n\n const { onChange } = this.args;\n if (onChange && typeof onChange === 'function') {\n onChange(this.args.key, this.formattedFilters);\n }\n }\n\n @action\n onGenericChange(filter?: HdsFilterBarGenericFilter): void {\n if (filter) {\n this.internalFilters = filter.data;\n filter.text = this.args.text;\n } else {\n this.internalFilters = undefined;\n }\n\n const { onChange } = this.args;\n if (onChange && typeof onChange === 'function') {\n onChange(this.args.key, filter);\n }\n }\n\n @action\n onClear(): void {\n this.internalFilters = undefined;\n\n const { onChange } = this.args;\n if (onChange && typeof onChange === 'function') {\n onChange(this.args.key, this.formattedFilters);\n }\n }\n\n get formattedFilters(): HdsFilterBarFilter | undefined {\n if (\n this.internalFilters === undefined ||\n (Array.isArray(this.internalFilters) && this.internalFilters.length === 0)\n ) {\n return undefined;\n }\n return {\n type: this.type,\n text: this.args.text,\n data: this.internalFilters,\n } as HdsFilterBarFilter;\n }\n\n get classNames(): string {\n const classes = ['hds-filter-bar__filter-group'];\n\n classes.push(`hds-filter-bar__dropdown--type-${this.type}`);\n\n return classes.join(' ');\n }\n\n private onSearch = (event: Event) => {\n const listItems = this._panelElement.querySelectorAll(\n '.hds-filter-bar__filters-dropdown__filter-option'\n );\n const input = event.target as HTMLInputElement;\n listItems.forEach((item) => {\n if (item.textContent) {\n const text = item.textContent.toLowerCase();\n const searchText = input.value.toLowerCase();\n if (text.includes(searchText)) {\n item.classList.remove(\n 'hds-filter-bar__filters-dropdown__filter-option--hidden'\n );\n } else {\n item.classList.add(\n 'hds-filter-bar__filters-dropdown__filter-option--hidden'\n );\n }\n }\n });\n };\n}\n"],"names":["HdsFilterBarFilterGroup","Component","g","prototype","tracked","i","void 0","_panelElement","_setUpFilterPanel","modifier","element","keyFilter","internalFilters","JSON","parse","stringify","data","type","args","filters","key","undefined","numFilters","keyFilters","Array","isArray","length","onSelectionChange","event","addFilter","value","newFilter","push","removeFilter","forEach","filter","input","target","checked","onChange","formattedFilters","n","action","onRangeChange","selector","onDateChange","onGenericChange","text","onClear","classNames","classes","join","onSearch","listItems","querySelectorAll","item","textContent","toLowerCase","searchText","includes","classList","remove","add","setComponentTemplate","TEMPLATE"],"mappings":"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"}
|
|
@@ -2,19 +2,19 @@ import Component from '@glimmer/component';
|
|
|
2
2
|
import { action } from '@ember/object';
|
|
3
3
|
import { tracked } from '@glimmer/tracking';
|
|
4
4
|
import { modifier } from 'ember-modifier';
|
|
5
|
-
import './filter-group
|
|
5
|
+
import './filter-group.js';
|
|
6
6
|
import { precompileTemplate } from '@ember/template-compilation';
|
|
7
7
|
import { g, i, n } from 'decorator-transforms/runtime';
|
|
8
8
|
import { setComponentTemplate } from '@ember/component';
|
|
9
9
|
|
|
10
|
-
var TEMPLATE = precompileTemplate("{{!\n Copyright (c) HashiCorp, Inc.\n SPDX-License-Identifier: MPL-2.0\n}}\n<Hds::Dropdown\n @listPosition=\"bottom-left\"\n @height=\"600px\"\n @width=\"600px\"\n class={{this.classNames}}\n @onClose={{this._onClose}}\n {{this._syncFilters @filters}}\n as |D|\n>\n <D.ToggleButton\n @icon=\"filter\"\n @text={{hds-t \"hds.components.filter-bar.dropdown.toggle-button\" default=\"Filters\"}}\n @color=\"secondary\"\n @size=\"small\"\n />\n <D.Generic>\n <Hds::FilterBar::Tabs @ariaLabel=\"Filter bar tabs\" as |T|>\n {{yield\n (hash\n FilterGroup=(component\n \"hds/filter-bar/filter-group\" tab=T.Tab panel=T.Panel onChange=this.onFilter filters=this.internalFilters\n )\n close=D.close\n )\n }}\n </Hds::FilterBar::Tabs>\n </D.Generic>\n <D.Footer @hasDivider={{true}}>\n <Hds::ButtonSet>\n {{#unless this.isLiveFilter}}\n <Hds::Button\n @text={{hds-t \"hds.components.filter-bar.dropdown.apply\" default=\"Apply filters\"}}\n @size=\"small\"\n {{on \"click\" (fn this.onApply D.close)}}\n />\n {{/unless}}\n <Hds::Button\n @text={{hds-t \"hds.components.filter-bar.dropdown.clear\" default=\"Clear all filters\"}}\n @color=\"secondary\"\n @size=\"small\"\n {{on \"click\" (fn this.onClear D.close)}}\n />\n </Hds::ButtonSet>\n </D.Footer>\n</Hds::Dropdown>");
|
|
10
|
+
var TEMPLATE = precompileTemplate("{{!\n Copyright (c) HashiCorp, Inc.\n SPDX-License-Identifier: MPL-2.0\n}}\n<Hds::Dropdown\n @listPosition=\"bottom-left\"\n @height=\"600px\"\n @width=\"600px\"\n class={{this.classNames}}\n @onClose={{this._onClose}}\n {{this._syncFilters @filters}}\n as |D|\n>\n <D.ToggleButton\n @icon=\"filter\"\n @text={{hds-t \"hds.components.filter-bar.filters-dropdown.toggle-button\" default=\"Filters\"}}\n @color=\"secondary\"\n @size=\"small\"\n />\n <D.Generic>\n <Hds::FilterBar::Tabs @ariaLabel=\"Filter bar tabs\" as |T|>\n {{yield\n (hash\n FilterGroup=(component\n \"hds/filter-bar/filter-group\" tab=T.Tab panel=T.Panel onChange=this.onFilter filters=this.internalFilters\n )\n close=D.close\n )\n }}\n </Hds::FilterBar::Tabs>\n </D.Generic>\n <D.Footer @hasDivider={{true}}>\n <Hds::ButtonSet>\n {{#unless this.isLiveFilter}}\n <Hds::Button\n @text={{hds-t \"hds.components.filter-bar.filters-dropdown.apply\" default=\"Apply filters\"}}\n @size=\"small\"\n {{on \"click\" (fn this.onApply D.close)}}\n />\n {{/unless}}\n <Hds::Button\n @text={{hds-t \"hds.components.filter-bar.filters-dropdown.clear\" default=\"Clear all filters\"}}\n @color=\"secondary\"\n @size=\"small\"\n {{on \"click\" (fn this.onClear D.close)}}\n />\n </Hds::ButtonSet>\n </D.Footer>\n</Hds::Dropdown>");
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
13
|
* Copyright (c) HashiCorp, Inc.
|
|
14
14
|
* SPDX-License-Identifier: MPL-2.0
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
|
-
class
|
|
17
|
+
class HdsFilterBarFiltersDropdown extends Component {
|
|
18
18
|
static {
|
|
19
19
|
g(this.prototype, "internalFilters", [tracked], function () {
|
|
20
20
|
return {};
|
|
@@ -71,7 +71,7 @@ class HdsFilterBarDropdown extends Component {
|
|
|
71
71
|
n(this.prototype, "onClear", [action]);
|
|
72
72
|
}
|
|
73
73
|
get classNames() {
|
|
74
|
-
const classes = ['hds-filter-
|
|
74
|
+
const classes = ['hds-filter-bar__filters-dropdown'];
|
|
75
75
|
return classes.join(' ');
|
|
76
76
|
}
|
|
77
77
|
_updateFilter(key, keyFilter) {
|
|
@@ -114,7 +114,7 @@ class HdsFilterBarDropdown extends Component {
|
|
|
114
114
|
}
|
|
115
115
|
};
|
|
116
116
|
}
|
|
117
|
-
setComponentTemplate(TEMPLATE,
|
|
117
|
+
setComponentTemplate(TEMPLATE, HdsFilterBarFiltersDropdown);
|
|
118
118
|
|
|
119
|
-
export {
|
|
120
|
-
//# sourceMappingURL=dropdown.js.map
|
|
119
|
+
export { HdsFilterBarFiltersDropdown as default };
|
|
120
|
+
//# sourceMappingURL=filters-dropdown.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filters-dropdown.js","sources":["../../../../src/components/hds/filter-bar/filters-dropdown.ts"],"sourcesContent":["/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { action } from '@ember/object';\nimport { tracked } from '@glimmer/tracking';\nimport { modifier } from 'ember-modifier';\nimport type Owner from '@ember/owner';\nimport type { WithBoundArgs } from '@glint/template';\n\nimport HdsFilterBarFilterGroup from './filter-group.ts';\nimport type { HdsFilterBarFilters, HdsFilterBarFilter } from './types.ts';\n\nimport type { HdsDropdownSignature } from '../dropdown/index.ts';\n\nexport interface HdsFilterBarFiltersDropdownSignature {\n Args: HdsDropdownSignature['Args'] & {\n filters: HdsFilterBarFilters;\n isLiveFilter: boolean;\n onFilter?: (filters: HdsFilterBarFilters) => void;\n };\n Blocks: {\n default: [\n {\n FilterGroup?: WithBoundArgs<\n typeof HdsFilterBarFilterGroup,\n 'tab' | 'panel' | 'filters' | 'onChange'\n >;\n },\n ];\n };\n Element: HTMLDivElement;\n}\n\nexport default class HdsFilterBarFiltersDropdown extends Component<\n HdsDropdownSignature & HdsFilterBarFiltersDropdownSignature\n> {\n @tracked internalFilters: HdsFilterBarFilters = {};\n\n constructor(\n owner: Owner,\n args: HdsFilterBarFiltersDropdownSignature['Args']\n ) {\n super(owner, args);\n\n const { filters } = this.args;\n\n if (filters) {\n this.internalFilters = { ...filters };\n }\n }\n\n private _syncFilters = modifier(\n (_element, [_filters]: [HdsFilterBarFilters | undefined]) => {\n if (_filters) {\n this.internalFilters = _filters;\n }\n }\n );\n\n get isLiveFilter(): boolean {\n return this.args.isLiveFilter || false;\n }\n\n @action\n onFilter(key: string, keyFilter?: HdsFilterBarFilter): void {\n this.internalFilters = this._updateFilter(key, keyFilter);\n\n if (this.isLiveFilter) {\n this._applyFilters();\n }\n }\n\n @action\n onApply(closeDropdown?: () => void): void {\n this._applyFilters(closeDropdown);\n }\n\n @action\n onClear(closeDropdown?: () => void): void {\n const { onFilter } = this.args;\n this.internalFilters = {};\n\n if (onFilter && typeof onFilter === 'function') {\n onFilter(this.internalFilters);\n }\n\n if (closeDropdown && typeof closeDropdown === 'function') {\n closeDropdown();\n }\n }\n\n get classNames(): string {\n const classes = ['hds-filter-bar__filters-dropdown'];\n\n return classes.join(' ');\n }\n\n private _updateFilter(\n key: string,\n keyFilter?: HdsFilterBarFilter\n ): HdsFilterBarFilters {\n const newFilters = {} as HdsFilterBarFilters;\n\n Object.keys(this.internalFilters).forEach((k) => {\n newFilters[k] = JSON.parse(\n JSON.stringify(this.internalFilters[k])\n ) as HdsFilterBarFilter;\n });\n if (\n keyFilter === undefined ||\n (Array.isArray(keyFilter) && keyFilter.length === 0)\n ) {\n delete newFilters[key];\n } else {\n Object.assign(newFilters, { [key]: keyFilter });\n }\n\n return { ...newFilters };\n }\n\n private _applyFilters = (closeDropdown?: () => void): void => {\n const { onFilter } = this.args;\n if (onFilter && typeof onFilter === 'function') {\n onFilter(this.internalFilters);\n }\n\n if (closeDropdown && typeof closeDropdown === 'function') {\n closeDropdown();\n }\n };\n\n private _onClose = (): void => {\n const { filters } = this.args;\n if (filters) {\n this.internalFilters = { ...filters };\n } else {\n this.internalFilters = {};\n }\n };\n}\n"],"names":["HdsFilterBarFiltersDropdown","Component","g","prototype","tracked","i","void 0","constructor","owner","args","filters","internalFilters","_syncFilters","modifier","_element","_filters","isLiveFilter","onFilter","key","keyFilter","_updateFilter","_applyFilters","n","action","onApply","closeDropdown","onClear","classNames","classes","join","newFilters","Object","keys","forEach","k","JSON","parse","stringify","undefined","Array","isArray","length","assign","_onClose","setComponentTemplate","TEMPLATE"],"mappings":"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"}
|
|
@@ -4,14 +4,14 @@ import { precompileTemplate } from '@ember/template-compilation';
|
|
|
4
4
|
import { n } from 'decorator-transforms/runtime';
|
|
5
5
|
import { setComponentTemplate } from '@ember/component';
|
|
6
6
|
|
|
7
|
-
var TEMPLATE = precompileTemplate("{{!\n Copyright (c) HashiCorp, Inc.\n SPDX-License-Identifier: MPL-2.0\n}}\n<div class=\"hds-filter-
|
|
7
|
+
var TEMPLATE = precompileTemplate("{{!\n Copyright (c) HashiCorp, Inc.\n SPDX-License-Identifier: MPL-2.0\n}}\n<div class=\"hds-filter-bar__filters-dropdown__filter-generic\">\n <Hds::Layout::Flex class=\"hds-filter-bar__filters-dropdown__fields\" @direction=\"column\" @gap=\"16\">\n {{yield (hash updateFilter=this.updateFilter)}}\n </Hds::Layout::Flex>\n <div class=\"hds-filter-bar__filters-dropdown__clear\">\n <Hds::Button\n @text={{hds-t \"hds.components.filter-bar.date.clear\" default=\"Clear filter\"}}\n @color=\"tertiary\"\n @icon=\"rotate-ccw\"\n @isInline={{true}}\n {{on \"click\" this.onClear}}\n />\n </div>\n</div>");
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
10
|
* Copyright (c) HashiCorp, Inc.
|
|
11
11
|
* SPDX-License-Identifier: MPL-2.0
|
|
12
12
|
*/
|
|
13
13
|
|
|
14
|
-
class
|
|
14
|
+
class HdsFilterBarGeneric extends Component {
|
|
15
15
|
updateFilter(filter) {
|
|
16
16
|
console.log('Update filter action triggered', filter);
|
|
17
17
|
const {
|
|
@@ -37,7 +37,7 @@ class HdsFilterBarFilterGroupGeneric extends Component {
|
|
|
37
37
|
n(this.prototype, "onClear", [action]);
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
|
-
setComponentTemplate(TEMPLATE,
|
|
40
|
+
setComponentTemplate(TEMPLATE, HdsFilterBarGeneric);
|
|
41
41
|
|
|
42
|
-
export {
|
|
42
|
+
export { HdsFilterBarGeneric as default };
|
|
43
43
|
//# sourceMappingURL=generic.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generic.js","sources":["../../../../src/components/hds/filter-bar/generic.ts"],"sourcesContent":["/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { action } from '@ember/object';\n\nimport type { HdsFilterBarFilter, HdsFilterBarGenericFilter } from './types.ts';\n\nexport interface HdsFilterBarGenericSignature {\n Args: {\n keyFilter: HdsFilterBarFilter | undefined;\n onChange?: (filter?: HdsFilterBarGenericFilter) => void;\n };\n Blocks: {\n default: [\n {\n updateFilter: (filter: HdsFilterBarGenericFilter) => void;\n },\n ];\n };\n Element: HTMLDivElement;\n}\n\nexport default class HdsFilterBarGeneric extends Component<HdsFilterBarGenericSignature> {\n @action\n updateFilter(filter: HdsFilterBarGenericFilter): void {\n console.log('Update filter action triggered', filter);\n const { onChange } = this.args;\n if (onChange && typeof onChange === 'function') {\n onChange(filter);\n }\n }\n\n @action\n onClear(): void {\n console.log('Clear action triggered');\n const { onChange } = this.args;\n if (onChange && typeof onChange === 'function') {\n onChange();\n }\n }\n}\n"],"names":["HdsFilterBarGeneric","Component","updateFilter","filter","console","log","onChange","args","n","prototype","action","onClear","setComponentTemplate","TEMPLATE"],"mappings":";;;;;;;;AAAA;AACA;AACA;AACA;;AAsBe,MAAMA,mBAAmB,SAASC,SAAS,CAA+B;EAEvFC,YAAYA,CAACC,MAAiC,EAAQ;AACpDC,IAAAA,OAAO,CAACC,GAAG,CAAC,gCAAgC,EAAEF,MAAM,CAAC;IACrD,MAAM;AAAEG,MAAAA;KAAU,GAAG,IAAI,CAACC,IAAI;AAC9B,IAAA,IAAID,QAAQ,IAAI,OAAOA,QAAQ,KAAK,UAAU,EAAE;MAC9CA,QAAQ,CAACH,MAAM,CAAC;AAClB,IAAA;AACF,EAAA;AAAC,EAAA;IAAAK,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,cAAA,EAAA,CAPAC,MAAM,CAAA,CAAA;AAAA;AAUPC,EAAAA,OAAOA,GAAS;AACdP,IAAAA,OAAO,CAACC,GAAG,CAAC,wBAAwB,CAAC;IACrC,MAAM;AAAEC,MAAAA;KAAU,GAAG,IAAI,CAACC,IAAI;AAC9B,IAAA,IAAID,QAAQ,IAAI,OAAOA,QAAQ,KAAK,UAAU,EAAE;AAC9CA,MAAAA,QAAQ,EAAE;AACZ,IAAA;AACF,EAAA;AAAC,EAAA;IAAAE,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,SAAA,EAAA,CAPAC,MAAM,CAAA,CAAA;AAAA;AAQT;AAACE,oBAAA,CAAAC,QAAA,EAlBoBb,mBAAmB,CAAA;;;;"}
|
|
@@ -4,15 +4,15 @@ import { tracked } from '@glimmer/tracking';
|
|
|
4
4
|
import { service } from '@ember/service';
|
|
5
5
|
import '../dropdown/index.js';
|
|
6
6
|
import '../yield/index.js';
|
|
7
|
-
import './dropdown.js';
|
|
7
|
+
import './filters-dropdown.js';
|
|
8
8
|
import { isArray } from '@ember/array';
|
|
9
|
-
import {
|
|
10
|
-
import { DATE_SELECTORS_TEXT } from './
|
|
9
|
+
import { RANGE_SELECTORS_TEXT } from './range.js';
|
|
10
|
+
import { DATE_SELECTORS_TEXT } from './date.js';
|
|
11
11
|
import { precompileTemplate } from '@ember/template-compilation';
|
|
12
12
|
import { g, i, n } from 'decorator-transforms/runtime';
|
|
13
13
|
import { setComponentTemplate } from '@ember/component';
|
|
14
14
|
|
|
15
|
-
var TEMPLATE = precompileTemplate("{{!\n Copyright (c) HashiCorp, Inc.\n SPDX-License-Identifier: MPL-2.0\n}}\n<div class=\"hds-filter-bar\" ...attributes>\n <Hds::Layout::Flex @align=\"end\" @gap=\"8\" class=\"hds-filter-bar__actions\">\n <Hds::Button\n @text={{if\n this._isExpanded\n (hds-t \"hds.components.filter-bar.expand-collapse-button.collapse\" default=\"Collapse filters\")\n (hds-t \"hds.components.filter-bar.expand-collapse-button.expand\" default=\"Expand filters\")\n }}\n @color=\"secondary\"\n @size=\"small\"\n @icon={{if this._isExpanded \"unfold-close\" \"unfold-open\"}}\n @isIconOnly={{true}}\n {{on \"click\" this.toggleExpand}}\n />\n {{yield\n (hash\n
|
|
15
|
+
var TEMPLATE = precompileTemplate("{{!\n Copyright (c) HashiCorp, Inc.\n SPDX-License-Identifier: MPL-2.0\n}}\n<div class=\"hds-filter-bar\" ...attributes>\n <Hds::Layout::Flex @align=\"end\" @gap=\"8\" class=\"hds-filter-bar__actions\">\n <Hds::Button\n @text={{if\n this._isExpanded\n (hds-t \"hds.components.filter-bar.expand-collapse-button.collapse\" default=\"Collapse filters\")\n (hds-t \"hds.components.filter-bar.expand-collapse-button.expand\" default=\"Expand filters\")\n }}\n @color=\"secondary\"\n @size=\"small\"\n @icon={{if this._isExpanded \"unfold-close\" \"unfold-open\"}}\n @isIconOnly={{true}}\n {{on \"click\" this.toggleExpand}}\n />\n {{yield\n (hash\n FiltersDropdown=(component\n \"hds/filter-bar/filters-dropdown\" filters=@filters isLiveFilter=@isLiveFilter onFilter=this.onFilter\n )\n )\n }}\n {{#if @hasSearch}}\n <Hds::Form::TextInput::Base\n @type=\"search\"\n @width=\"320px\"\n @value={{this.searchValue}}\n class=\"hds-filter-bar__search\"\n placeholder={{hds-t \"hds.components.filter-bar.search.placeholder\" default=\"Search\"}}\n aria-label={{hds-t \"hds.components.filter-bar.search.aria-label\" default=\"Search filters\"}}\n name=\"search\"\n {{on \"change\" this.onSearch}}\n />\n {{/if}}\n <Hds::Layout::Flex @gap=\"8\" @align=\"center\" class=\"hds-filter-bar__actions__right\">\n {{yield (hash ActionsGeneric=(component \"hds/yield\"))}}\n {{yield (hash ActionsDropdown=(component \"hds/dropdown\"))}}\n </Hds::Layout::Flex>\n </Hds::Layout::Flex>\n {{#if this._isExpanded}}\n <div class=\"hds-filter-bar__filters\">\n {{#if this.hasActiveFilters}}\n {{#each-in @filters as |key filter|}}\n {{#if filter.data}}\n {{#if (eq filter.type \"single-select\")}}\n <Hds::Tag\n @text=\"{{this._filterKeyText key filter}}: {{this._filterText filter}}\"\n @onDismiss={{fn this.onFilterDismiss key}}\n />\n {{else if (eq filter.type \"range\")}}\n <Hds::Tag\n @text=\"{{this._filterKeyText key filter}} {{this._rangeFilterText filter}}\"\n @onDismiss={{fn this.onFilterDismiss key}}\n />\n {{else if (or (eq filter.type \"date\") (eq filter.type \"datetime\") (eq filter.type \"time\"))}}\n <Hds::Tag\n @text=\"{{this._filterKeyText key filter}} {{this._dateFilterText filter}}\"\n @onDismiss={{fn this.onFilterDismiss key}}\n />\n {{else if (eq filter.type \"search\")}}\n <Hds::Tag\n @text=\"{{this._filterKeyText key filter}}: {{this._filterText filter}}\"\n @onDismiss={{fn this.onFilterDismiss key}}\n />\n {{else if (eq filter.type \"generic\")}}\n <Hds::Tag\n @text=\"{{this._filterKeyText key filter}} {{this._genericFilterText filter}}\"\n @onDismiss={{fn this.onFilterDismiss key}}\n />\n {{else if (eq filter.type \"multi-select\")}}\n {{#each (this._filterArrayData filter.data) as |item|}}\n <Hds::Tag\n @text=\"{{this._filterKeyText key filter}}: {{item.value}}\"\n @onDismiss={{fn this.onFilterDismiss key item.value}}\n />\n {{/each}}\n {{/if}}\n {{/if}}\n {{/each-in}}\n <Hds::Button\n class=\"hds-filter-bar__clear-button\"\n @text=\"Clear all filters\"\n @color=\"tertiary\"\n @icon=\"x\"\n @size=\"small\"\n {{on \"click\" this.clearFilters}}\n />\n {{else}}\n <Hds::Text::Body @size={{100}} @color=\"faint\">\n {{hds-t \"hds.components.filter-bar.no-filters-applied\" default=\"No filters applied\"}}\n </Hds::Text::Body>\n {{/if}}\n </div>\n {{/if}}\n</div>");
|
|
16
16
|
|
|
17
17
|
/**
|
|
18
18
|
* Copyright (c) HashiCorp, Inc.
|
|
@@ -26,7 +26,7 @@ class HdsFilterBar extends Component {
|
|
|
26
26
|
#hdsIntl = (i(this, "hdsIntl"), void 0);
|
|
27
27
|
static {
|
|
28
28
|
g(this.prototype, "_isExpanded", [tracked], function () {
|
|
29
|
-
return
|
|
29
|
+
return false;
|
|
30
30
|
});
|
|
31
31
|
}
|
|
32
32
|
#_isExpanded = (i(this, "_isExpanded"), void 0);
|
|
@@ -134,22 +134,19 @@ class HdsFilterBar extends Component {
|
|
|
134
134
|
}
|
|
135
135
|
};
|
|
136
136
|
_filterData = data => {
|
|
137
|
-
const result = {
|
|
138
|
-
value: ''
|
|
139
|
-
};
|
|
140
137
|
if ('value' in data) {
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
result.label = data.label;
|
|
138
|
+
return {
|
|
139
|
+
value: data.value
|
|
140
|
+
};
|
|
145
141
|
}
|
|
146
|
-
return
|
|
142
|
+
return {
|
|
143
|
+
value: ''
|
|
144
|
+
};
|
|
147
145
|
};
|
|
148
146
|
_filterText = filter => {
|
|
149
147
|
const result = this._filterData(filter.data);
|
|
150
|
-
const
|
|
151
|
-
|
|
152
|
-
return resultLabel ?? resultValue;
|
|
148
|
+
const resultText = result?.value;
|
|
149
|
+
return resultText ?? '';
|
|
153
150
|
};
|
|
154
151
|
_filterArrayData = data => {
|
|
155
152
|
if (isArray(data)) {
|
|
@@ -164,17 +161,17 @@ class HdsFilterBar extends Component {
|
|
|
164
161
|
return key;
|
|
165
162
|
}
|
|
166
163
|
};
|
|
167
|
-
|
|
164
|
+
_rangeFilterText = filter => {
|
|
168
165
|
const data = filter.data;
|
|
169
|
-
if (filter.type === '
|
|
166
|
+
if (filter.type === 'range' && 'selector' in data && 'value' in data) {
|
|
170
167
|
const selector = data.selector;
|
|
171
168
|
if (selector === 'between' && typeof data.value === 'object' && data.value !== null) {
|
|
172
|
-
const separatorText = this.hdsIntl.t('hds.components.filter-bar.filter-text.
|
|
169
|
+
const separatorText = this.hdsIntl.t('hds.components.filter-bar.filter-text.range-filter.separator', {
|
|
173
170
|
default: 'and'
|
|
174
171
|
});
|
|
175
|
-
return `${
|
|
172
|
+
return `${RANGE_SELECTORS_TEXT[selector]} ${data.value.start} ${separatorText} ${data.value.end}`;
|
|
176
173
|
} else if (typeof data.value !== 'object') {
|
|
177
|
-
return `${
|
|
174
|
+
return `${RANGE_SELECTORS_TEXT[selector]} ${data.value}`;
|
|
178
175
|
}
|
|
179
176
|
return '';
|
|
180
177
|
} else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/components/hds/filter-bar/index.ts"],"sourcesContent":["/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { action } from '@ember/object';\nimport { tracked } from '@glimmer/tracking';\nimport { service } from '@ember/service';\n\nimport type { WithBoundArgs } from '@glint/template';\n\nimport type HdsIntlService from '../../../services/hds-intl';\nimport type {\n HdsFilterBarFilters,\n HdsFilterBarFilter,\n HdsFilterBarFilterType,\n HdsFilterBarData,\n HdsFilterBarGenericFilterData,\n} from './types.ts';\nimport HdsDropdown from '../dropdown/index.ts';\nimport HdsYield from '../yield/index.ts';\nimport HdsFilterBarDropdown from './dropdown.ts';\nimport { isArray } from '@ember/array';\n\nimport { NUMERICAL_SELECTORS_TEXT } from './filter-group/numerical.ts';\nimport { DATE_SELECTORS_TEXT } from './filter-group/date.ts';\n\nexport interface HdsFilterBarSignature {\n Args: {\n filters: HdsFilterBarFilters;\n isLiveFilter?: boolean;\n hasSearch?: boolean;\n onFilter?: (filters: HdsFilterBarFilters) => void;\n };\n Blocks: {\n default?: [\n {\n ActionsDropdown?: WithBoundArgs<typeof HdsDropdown, never>;\n ActionsGeneric?: WithBoundArgs<typeof HdsYield, never>;\n Dropdown?: WithBoundArgs<\n typeof HdsFilterBarDropdown,\n 'filters' | 'isLiveFilter' | 'onFilter'\n >;\n },\n ];\n };\n Element: HTMLDivElement;\n}\n\nexport default class HdsFilterBar extends Component<HdsFilterBarSignature> {\n @service hdsIntl!: HdsIntlService;\n\n @tracked _isExpanded: boolean = this.hasActiveFilters;\n\n get searchValue(): string {\n const { filters } = this.args;\n if (filters['search']) {\n return this._filterText(filters['search']);\n }\n return '';\n }\n\n @action\n onFilter(filters: HdsFilterBarFilters): void {\n const { onFilter } = this.args;\n if (onFilter && typeof onFilter === 'function') {\n onFilter(filters);\n\n if (Object.keys(filters).length > 0) {\n this._isExpanded = true;\n } else {\n this._isExpanded = false;\n }\n }\n }\n\n @action\n clearFilters(): void {\n const { onFilter } = this.args;\n if (onFilter && typeof onFilter === 'function') {\n onFilter({});\n this._isExpanded = false;\n }\n }\n\n @action\n onSearch(event: Event): void {\n const { filters } = this.args;\n const input = event.target as HTMLInputElement;\n const value = input?.value;\n\n const newFilters = {} as HdsFilterBarFilters;\n\n Object.keys(filters).forEach((k) => {\n newFilters[k] = JSON.parse(\n JSON.stringify(filters[k])\n ) as HdsFilterBarFilter;\n });\n\n if (value.length > 0) {\n newFilters['search'] = {\n type: 'search',\n text: 'Search',\n data: { value },\n };\n } else {\n delete newFilters['search'];\n }\n\n this.onFilter({ ...newFilters });\n }\n\n @action\n toggleExpand(): void {\n this._isExpanded = !this._isExpanded;\n }\n\n get hasActiveFilters(): boolean {\n return Object.keys(this.args.filters).length > 0;\n }\n\n private onFilterDismiss = (key: string, filterValue?: unknown): void => {\n const { filters } = this.args;\n if (filters && filters[key]) {\n const keyFilter: HdsFilterBarFilter = filters[key];\n const newFilters = {} as HdsFilterBarFilters;\n\n Object.keys(filters).forEach((k) => {\n newFilters[k] = JSON.parse(\n JSON.stringify(filters[k])\n ) as HdsFilterBarFilter;\n });\n\n if (keyFilter.type === 'multi-select' && isArray(keyFilter.data)) {\n const newKeyfilter = keyFilter.data?.filter(\n (item) => item.value !== filterValue\n );\n if (newKeyfilter.length === 0) {\n delete newFilters[key];\n } else {\n newFilters[key] = {\n type: 'multi-select',\n text: keyFilter.text,\n data: newKeyfilter,\n };\n }\n } else {\n delete newFilters[key];\n }\n\n this.onFilter({ ...newFilters });\n }\n };\n\n private _filterData = (\n data: HdsFilterBarData\n ): HdsFilterBarGenericFilterData => {\n const result = {\n value: '',\n } as HdsFilterBarGenericFilterData;\n if ('value' in data) {\n result.value = data.value;\n }\n if ('label' in data) {\n result.label = data.label;\n }\n return result;\n };\n\n private _filterText = (filter: HdsFilterBarFilter): string => {\n const result = this._filterData(filter.data);\n const resultLabel = result?.label as string;\n const resultValue = result?.value as string;\n return resultLabel ?? resultValue;\n };\n\n private _filterArrayData = (\n data: HdsFilterBarData\n ): { value: unknown; label?: string }[] => {\n if (isArray(data)) {\n return data.map((item) => this._filterData(item));\n }\n return [];\n };\n\n private _filterKeyText = (key: string, data: HdsFilterBarFilter): string => {\n if (data.text) {\n return data.text;\n } else {\n return key;\n }\n };\n\n private _numericalFilterText = (filter: HdsFilterBarFilter): string => {\n const data = filter.data;\n\n if (filter.type === 'numerical' && 'selector' in data && 'value' in data) {\n const selector = data.selector as keyof typeof NUMERICAL_SELECTORS_TEXT;\n if (\n selector === 'between' &&\n typeof data.value === 'object' &&\n data.value !== null\n ) {\n const separatorText = this.hdsIntl.t(\n 'hds.components.filter-bar.filter-text.numerical-filter.separator',\n {\n default: 'and',\n }\n );\n return `${NUMERICAL_SELECTORS_TEXT[selector]} ${data.value.start} ${separatorText} ${data.value.end}`;\n } else if (typeof data.value !== 'object') {\n return `${NUMERICAL_SELECTORS_TEXT[selector]} ${data.value}`;\n }\n return '';\n } else {\n return '';\n }\n };\n\n private _dateFilterText = (filter: HdsFilterBarFilter): string => {\n const data = filter.data;\n\n if (\n (filter.type === 'date' ||\n filter.type === 'datetime' ||\n filter.type === 'time') &&\n 'selector' in data &&\n 'value' in data\n ) {\n const selector = data.selector as keyof typeof DATE_SELECTORS_TEXT;\n if (\n selector === 'between' &&\n typeof data.value === 'object' &&\n data.value !== null\n ) {\n const separatorText = this.hdsIntl.t(\n 'hds.components.filter-bar.filter-text.date-filter.separator',\n {\n default: 'and',\n }\n );\n const startDateText = this._dateDisplayText(\n data.value.start as string,\n filter.type\n );\n const endDateText = this._dateDisplayText(\n data.value.end as string,\n filter.type\n );\n return `${DATE_SELECTORS_TEXT[selector]} ${startDateText} ${separatorText} ${endDateText}`;\n } else if (data.value !== null && typeof data.value !== 'object') {\n const dateText = this._dateDisplayText(\n data.value as string,\n filter.type\n );\n return `${DATE_SELECTORS_TEXT[selector]} ${dateText}`;\n }\n return '';\n } else {\n return '';\n }\n };\n\n private _dateDisplayText = (\n dateString: string,\n filterType: HdsFilterBarFilterType\n ): string => {\n let date;\n if (filterType === 'time') {\n date = new Date(`1970-01-01T${dateString}`);\n } else {\n date = new Date(dateString);\n }\n\n let options = {};\n if (filterType === 'date') {\n options = { dateStyle: 'short' };\n } else if (filterType === 'time') {\n options = { timeStyle: 'short' };\n } else {\n options = { dateStyle: 'short', timeStyle: 'short' };\n }\n\n const newDate = new Intl.DateTimeFormat(undefined, options);\n return newDate.format(date);\n };\n\n private _genericFilterText = (filter: HdsFilterBarFilter): string => {\n if ('dismissTagText' in filter) {\n return filter.dismissTagText ?? '';\n } else {\n return '';\n }\n };\n}\n"],"names":["HdsFilterBar","Component","g","prototype","service","i","void 0","tracked","hasActiveFilters","searchValue","filters","args","_filterText","onFilter","Object","keys","length","_isExpanded","n","action","clearFilters","onSearch","event","input","target","value","newFilters","forEach","k","JSON","parse","stringify","type","text","data","toggleExpand","onFilterDismiss","key","filterValue","keyFilter","isArray","newKeyfilter","filter","item","_filterData","result","label","resultLabel","resultValue","_filterArrayData","map","_filterKeyText","_numericalFilterText","selector","separatorText","hdsIntl","t","default","NUMERICAL_SELECTORS_TEXT","start","end","_dateFilterText","startDateText","_dateDisplayText","endDateText","DATE_SELECTORS_TEXT","dateText","dateString","filterType","date","Date","options","dateStyle","timeStyle","newDate","Intl","DateTimeFormat","undefined","format","_genericFilterText","dismissTagText","setComponentTemplate","TEMPLATE"],"mappings":";;;;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;;AA+Ce,MAAMA,YAAY,SAASC,SAAS,CAAwB;AAAA,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,SAAA,EAAA,CACxEC,OAAO,CAAA,CAAA;AAAA;AAAA,EAAA,QAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,SAAA,CAAA,EAAAC,MAAA;AAAA,EAAA;IAAAJ,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,aAAA,EAAA,CAEPI,OAAO,CAAA,EAAA,YAAA;MAAA,OAAwB,IAAI,CAACC,gBAAgB;AAAA,IAAA,CAAA,CAAA;AAAA;AAAA,EAAA,YAAA,IAAAH,CAAA,CAAA,IAAA,EAAA,aAAA,CAAA,EAAAC,MAAA;EAErD,IAAIG,WAAWA,GAAW;IACxB,MAAM;AAAEC,MAAAA;KAAS,GAAG,IAAI,CAACC,IAAI;AAC7B,IAAA,IAAID,OAAO,CAAC,QAAQ,CAAC,EAAE;MACrB,OAAO,IAAI,CAACE,WAAW,CAACF,OAAO,CAAC,QAAQ,CAAC,CAAC;AAC5C,IAAA;AACA,IAAA,OAAO,EAAE;AACX,EAAA;EAGAG,QAAQA,CAACH,OAA4B,EAAQ;IAC3C,MAAM;AAAEG,MAAAA;KAAU,GAAG,IAAI,CAACF,IAAI;AAC9B,IAAA,IAAIE,QAAQ,IAAI,OAAOA,QAAQ,KAAK,UAAU,EAAE;MAC9CA,QAAQ,CAACH,OAAO,CAAC;MAEjB,IAAII,MAAM,CAACC,IAAI,CAACL,OAAO,CAAC,CAACM,MAAM,GAAG,CAAC,EAAE;QACnC,IAAI,CAACC,WAAW,GAAG,IAAI;AACzB,MAAA,CAAC,MAAM;QACL,IAAI,CAACA,WAAW,GAAG,KAAK;AAC1B,MAAA;AACF,IAAA;AACF,EAAA;AAAC,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAAf,SAAA,EAAA,UAAA,EAAA,CAZAgB,MAAM,CAAA,CAAA;AAAA;AAePC,EAAAA,YAAYA,GAAS;IACnB,MAAM;AAAEP,MAAAA;KAAU,GAAG,IAAI,CAACF,IAAI;AAC9B,IAAA,IAAIE,QAAQ,IAAI,OAAOA,QAAQ,KAAK,UAAU,EAAE;MAC9CA,QAAQ,CAAC,EAAE,CAAC;MACZ,IAAI,CAACI,WAAW,GAAG,KAAK;AAC1B,IAAA;AACF,EAAA;AAAC,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAAf,SAAA,EAAA,cAAA,EAAA,CAPAgB,MAAM,CAAA,CAAA;AAAA;EAUPE,QAAQA,CAACC,KAAY,EAAQ;IAC3B,MAAM;AAAEZ,MAAAA;KAAS,GAAG,IAAI,CAACC,IAAI;AAC7B,IAAA,MAAMY,KAAK,GAAGD,KAAK,CAACE,MAA0B;AAC9C,IAAA,MAAMC,KAAK,GAAGF,KAAK,EAAEE,KAAK;IAE1B,MAAMC,UAAU,GAAG,EAAyB;IAE5CZ,MAAM,CAACC,IAAI,CAACL,OAAO,CAAC,CAACiB,OAAO,CAAEC,CAAC,IAAK;AAClCF,MAAAA,UAAU,CAACE,CAAC,CAAC,GAAGC,IAAI,CAACC,KAAK,CACxBD,IAAI,CAACE,SAAS,CAACrB,OAAO,CAACkB,CAAC,CAAC,CAC3B,CAAuB;AACzB,IAAA,CAAC,CAAC;AAEF,IAAA,IAAIH,KAAK,CAACT,MAAM,GAAG,CAAC,EAAE;MACpBU,UAAU,CAAC,QAAQ,CAAC,GAAG;AACrBM,QAAAA,IAAI,EAAE,QAAQ;AACdC,QAAAA,IAAI,EAAE,QAAQ;AACdC,QAAAA,IAAI,EAAE;AAAET,UAAAA;AAAM;OACf;AACH,IAAA,CAAC,MAAM;MACL,OAAOC,UAAU,CAAC,QAAQ,CAAC;AAC7B,IAAA;IAEA,IAAI,CAACb,QAAQ,CAAC;MAAE,GAAGa;AAAW,KAAC,CAAC;AAClC,EAAA;AAAC,EAAA;IAAAR,CAAA,CAAA,IAAA,CAAAf,SAAA,EAAA,UAAA,EAAA,CAzBAgB,MAAM,CAAA,CAAA;AAAA;AA4BPgB,EAAAA,YAAYA,GAAS;AACnB,IAAA,IAAI,CAAClB,WAAW,GAAG,CAAC,IAAI,CAACA,WAAW;AACtC,EAAA;AAAC,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAAf,SAAA,EAAA,cAAA,EAAA,CAHAgB,MAAM,CAAA,CAAA;AAAA;EAKP,IAAIX,gBAAgBA,GAAY;AAC9B,IAAA,OAAOM,MAAM,CAACC,IAAI,CAAC,IAAI,CAACJ,IAAI,CAACD,OAAO,CAAC,CAACM,MAAM,GAAG,CAAC;AAClD,EAAA;AAEQoB,EAAAA,eAAe,GAAGA,CAACC,GAAW,EAAEC,WAAqB,KAAW;IACtE,MAAM;AAAE5B,MAAAA;KAAS,GAAG,IAAI,CAACC,IAAI;AAC7B,IAAA,IAAID,OAAO,IAAIA,OAAO,CAAC2B,GAAG,CAAC,EAAE;AAC3B,MAAA,MAAME,SAA6B,GAAG7B,OAAO,CAAC2B,GAAG,CAAC;MAClD,MAAMX,UAAU,GAAG,EAAyB;MAE5CZ,MAAM,CAACC,IAAI,CAACL,OAAO,CAAC,CAACiB,OAAO,CAAEC,CAAC,IAAK;AAClCF,QAAAA,UAAU,CAACE,CAAC,CAAC,GAAGC,IAAI,CAACC,KAAK,CACxBD,IAAI,CAACE,SAAS,CAACrB,OAAO,CAACkB,CAAC,CAAC,CAC3B,CAAuB;AACzB,MAAA,CAAC,CAAC;AAEF,MAAA,IAAIW,SAAS,CAACP,IAAI,KAAK,cAAc,IAAIQ,OAAO,CAACD,SAAS,CAACL,IAAI,CAAC,EAAE;AAChE,QAAA,MAAMO,YAAY,GAAGF,SAAS,CAACL,IAAI,EAAEQ,MAAM,CACxCC,IAAI,IAAKA,IAAI,CAAClB,KAAK,KAAKa,WAC3B,CAAC;AACD,QAAA,IAAIG,YAAY,CAACzB,MAAM,KAAK,CAAC,EAAE;UAC7B,OAAOU,UAAU,CAACW,GAAG,CAAC;AACxB,QAAA,CAAC,MAAM;UACLX,UAAU,CAACW,GAAG,CAAC,GAAG;AAChBL,YAAAA,IAAI,EAAE,cAAc;YACpBC,IAAI,EAAEM,SAAS,CAACN,IAAI;AACpBC,YAAAA,IAAI,EAAEO;WACP;AACH,QAAA;AACF,MAAA,CAAC,MAAM;QACL,OAAOf,UAAU,CAACW,GAAG,CAAC;AACxB,MAAA;MAEA,IAAI,CAACxB,QAAQ,CAAC;QAAE,GAAGa;AAAW,OAAC,CAAC;AAClC,IAAA;EACF,CAAC;EAEOkB,WAAW,GACjBV,IAAsB,IACY;AAClC,IAAA,MAAMW,MAAM,GAAG;AACbpB,MAAAA,KAAK,EAAE;KACyB;IAClC,IAAI,OAAO,IAAIS,IAAI,EAAE;AACnBW,MAAAA,MAAM,CAACpB,KAAK,GAAGS,IAAI,CAACT,KAAK;AAC3B,IAAA;IACA,IAAI,OAAO,IAAIS,IAAI,EAAE;AACnBW,MAAAA,MAAM,CAACC,KAAK,GAAGZ,IAAI,CAACY,KAAK;AAC3B,IAAA;AACA,IAAA,OAAOD,MAAM;EACf,CAAC;EAEOjC,WAAW,GAAI8B,MAA0B,IAAa;IAC5D,MAAMG,MAAM,GAAG,IAAI,CAACD,WAAW,CAACF,MAAM,CAACR,IAAI,CAAC;AAC5C,IAAA,MAAMa,WAAW,GAAGF,MAAM,EAAEC,KAAe;AAC3C,IAAA,MAAME,WAAW,GAAGH,MAAM,EAAEpB,KAAe;IAC3C,OAAOsB,WAAW,IAAIC,WAAW;EACnC,CAAC;EAEOC,gBAAgB,GACtBf,IAAsB,IACmB;AACzC,IAAA,IAAIM,OAAO,CAACN,IAAI,CAAC,EAAE;AACjB,MAAA,OAAOA,IAAI,CAACgB,GAAG,CAAEP,IAAI,IAAK,IAAI,CAACC,WAAW,CAACD,IAAI,CAAC,CAAC;AACnD,IAAA;AACA,IAAA,OAAO,EAAE;EACX,CAAC;AAEOQ,EAAAA,cAAc,GAAGA,CAACd,GAAW,EAAEH,IAAwB,KAAa;IAC1E,IAAIA,IAAI,CAACD,IAAI,EAAE;MACb,OAAOC,IAAI,CAACD,IAAI;AAClB,IAAA,CAAC,MAAM;AACL,MAAA,OAAOI,GAAG;AACZ,IAAA;EACF,CAAC;EAEOe,oBAAoB,GAAIV,MAA0B,IAAa;AACrE,IAAA,MAAMR,IAAI,GAAGQ,MAAM,CAACR,IAAI;AAExB,IAAA,IAAIQ,MAAM,CAACV,IAAI,KAAK,WAAW,IAAI,UAAU,IAAIE,IAAI,IAAI,OAAO,IAAIA,IAAI,EAAE;AACxE,MAAA,MAAMmB,QAAQ,GAAGnB,IAAI,CAACmB,QAAiD;AACvE,MAAA,IACEA,QAAQ,KAAK,SAAS,IACtB,OAAOnB,IAAI,CAACT,KAAK,KAAK,QAAQ,IAC9BS,IAAI,CAACT,KAAK,KAAK,IAAI,EACnB;QACA,MAAM6B,aAAa,GAAG,IAAI,CAACC,OAAO,CAACC,CAAC,CAClC,kEAAkE,EAClE;AACEC,UAAAA,OAAO,EAAE;AACX,SACF,CAAC;AACD,QAAA,OAAO,GAAGC,wBAAwB,CAACL,QAAQ,CAAC,CAAA,CAAA,EAAInB,IAAI,CAACT,KAAK,CAACkC,KAAK,CAAA,CAAA,EAAIL,aAAa,CAAA,CAAA,EAAIpB,IAAI,CAACT,KAAK,CAACmC,GAAG,CAAA,CAAE;MACvG,CAAC,MAAM,IAAI,OAAO1B,IAAI,CAACT,KAAK,KAAK,QAAQ,EAAE;QACzC,OAAO,CAAA,EAAGiC,wBAAwB,CAACL,QAAQ,CAAC,CAAA,CAAA,EAAInB,IAAI,CAACT,KAAK,CAAA,CAAE;AAC9D,MAAA;AACA,MAAA,OAAO,EAAE;AACX,IAAA,CAAC,MAAM;AACL,MAAA,OAAO,EAAE;AACX,IAAA;EACF,CAAC;EAEOoC,eAAe,GAAInB,MAA0B,IAAa;AAChE,IAAA,MAAMR,IAAI,GAAGQ,MAAM,CAACR,IAAI;IAExB,IACE,CAACQ,MAAM,CAACV,IAAI,KAAK,MAAM,IACrBU,MAAM,CAACV,IAAI,KAAK,UAAU,IAC1BU,MAAM,CAACV,IAAI,KAAK,MAAM,KACxB,UAAU,IAAIE,IAAI,IAClB,OAAO,IAAIA,IAAI,EACf;AACA,MAAA,MAAMmB,QAAQ,GAAGnB,IAAI,CAACmB,QAA4C;AAClE,MAAA,IACEA,QAAQ,KAAK,SAAS,IACtB,OAAOnB,IAAI,CAACT,KAAK,KAAK,QAAQ,IAC9BS,IAAI,CAACT,KAAK,KAAK,IAAI,EACnB;QACA,MAAM6B,aAAa,GAAG,IAAI,CAACC,OAAO,CAACC,CAAC,CAClC,6DAA6D,EAC7D;AACEC,UAAAA,OAAO,EAAE;AACX,SACF,CAAC;AACD,QAAA,MAAMK,aAAa,GAAG,IAAI,CAACC,gBAAgB,CACzC7B,IAAI,CAACT,KAAK,CAACkC,KAAK,EAChBjB,MAAM,CAACV,IACT,CAAC;AACD,QAAA,MAAMgC,WAAW,GAAG,IAAI,CAACD,gBAAgB,CACvC7B,IAAI,CAACT,KAAK,CAACmC,GAAG,EACdlB,MAAM,CAACV,IACT,CAAC;QACD,OAAO,CAAA,EAAGiC,mBAAmB,CAACZ,QAAQ,CAAC,CAAA,CAAA,EAAIS,aAAa,CAAA,CAAA,EAAIR,aAAa,CAAA,CAAA,EAAIU,WAAW,CAAA,CAAE;AAC5F,MAAA,CAAC,MAAM,IAAI9B,IAAI,CAACT,KAAK,KAAK,IAAI,IAAI,OAAOS,IAAI,CAACT,KAAK,KAAK,QAAQ,EAAE;AAChE,QAAA,MAAMyC,QAAQ,GAAG,IAAI,CAACH,gBAAgB,CACpC7B,IAAI,CAACT,KAAK,EACViB,MAAM,CAACV,IACT,CAAC;AACD,QAAA,OAAO,GAAGiC,mBAAmB,CAACZ,QAAQ,CAAC,CAAA,CAAA,EAAIa,QAAQ,CAAA,CAAE;AACvD,MAAA;AACA,MAAA,OAAO,EAAE;AACX,IAAA,CAAC,MAAM;AACL,MAAA,OAAO,EAAE;AACX,IAAA;EACF,CAAC;AAEOH,EAAAA,gBAAgB,GAAGA,CACzBI,UAAkB,EAClBC,UAAkC,KACvB;AACX,IAAA,IAAIC,IAAI;IACR,IAAID,UAAU,KAAK,MAAM,EAAE;AACzBC,MAAAA,IAAI,GAAG,IAAIC,IAAI,CAAC,CAAA,WAAA,EAAcH,UAAU,EAAE,CAAC;AAC7C,IAAA,CAAC,MAAM;AACLE,MAAAA,IAAI,GAAG,IAAIC,IAAI,CAACH,UAAU,CAAC;AAC7B,IAAA;IAEA,IAAII,OAAO,GAAG,EAAE;IAChB,IAAIH,UAAU,KAAK,MAAM,EAAE;AACzBG,MAAAA,OAAO,GAAG;AAAEC,QAAAA,SAAS,EAAE;OAAS;AAClC,IAAA,CAAC,MAAM,IAAIJ,UAAU,KAAK,MAAM,EAAE;AAChCG,MAAAA,OAAO,GAAG;AAAEE,QAAAA,SAAS,EAAE;OAAS;AAClC,IAAA,CAAC,MAAM;AACLF,MAAAA,OAAO,GAAG;AAAEC,QAAAA,SAAS,EAAE,OAAO;AAAEC,QAAAA,SAAS,EAAE;OAAS;AACtD,IAAA;IAEA,MAAMC,OAAO,GAAG,IAAIC,IAAI,CAACC,cAAc,CAACC,SAAS,EAAEN,OAAO,CAAC;AAC3D,IAAA,OAAOG,OAAO,CAACI,MAAM,CAACT,IAAI,CAAC;EAC7B,CAAC;EAEOU,kBAAkB,GAAIrC,MAA0B,IAAa;IACnE,IAAI,gBAAgB,IAAIA,MAAM,EAAE;AAC9B,MAAA,OAAOA,MAAM,CAACsC,cAAc,IAAI,EAAE;AACpC,IAAA,CAAC,MAAM;AACL,MAAA,OAAO,EAAE;AACX,IAAA;EACF,CAAC;AACH;AAACC,oBAAA,CAAAC,QAAA,EArPoBlF,YAAY,CAAA;;;;"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/components/hds/filter-bar/index.ts"],"sourcesContent":["/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { action } from '@ember/object';\nimport { tracked } from '@glimmer/tracking';\nimport { service } from '@ember/service';\n\nimport type { WithBoundArgs } from '@glint/template';\n\nimport type HdsIntlService from '../../../services/hds-intl';\nimport type {\n HdsFilterBarFilters,\n HdsFilterBarFilter,\n HdsFilterBarFilterType,\n HdsFilterBarData,\n HdsFilterBarGenericFilterData,\n} from './types.ts';\nimport HdsDropdown from '../dropdown/index.ts';\nimport HdsYield from '../yield/index.ts';\nimport HdsFilterBarFiltersDropdown from './filters-dropdown.ts';\nimport { isArray } from '@ember/array';\n\nimport { RANGE_SELECTORS_TEXT } from './range.ts';\nimport { DATE_SELECTORS_TEXT } from './date.ts';\n\nexport interface HdsFilterBarSignature {\n Args: {\n filters: HdsFilterBarFilters;\n isLiveFilter?: boolean;\n hasSearch?: boolean;\n onFilter?: (filters: HdsFilterBarFilters) => void;\n };\n Blocks: {\n default?: [\n {\n ActionsDropdown?: WithBoundArgs<typeof HdsDropdown, never>;\n ActionsGeneric?: WithBoundArgs<typeof HdsYield, never>;\n FiltersDropdown?: WithBoundArgs<\n typeof HdsFilterBarFiltersDropdown,\n 'filters' | 'isLiveFilter' | 'onFilter'\n >;\n },\n ];\n };\n Element: HTMLDivElement;\n}\n\nexport default class HdsFilterBar extends Component<HdsFilterBarSignature> {\n @service hdsIntl!: HdsIntlService;\n\n @tracked _isExpanded: boolean = false;\n\n get searchValue(): string {\n const { filters } = this.args;\n if (filters['search']) {\n return this._filterText(filters['search']);\n }\n return '';\n }\n\n @action\n onFilter(filters: HdsFilterBarFilters): void {\n const { onFilter } = this.args;\n if (onFilter && typeof onFilter === 'function') {\n onFilter(filters);\n\n if (Object.keys(filters).length > 0) {\n this._isExpanded = true;\n } else {\n this._isExpanded = false;\n }\n }\n }\n\n @action\n clearFilters(): void {\n const { onFilter } = this.args;\n if (onFilter && typeof onFilter === 'function') {\n onFilter({});\n this._isExpanded = false;\n }\n }\n\n @action\n onSearch(event: Event): void {\n const { filters } = this.args;\n const input = event.target as HTMLInputElement;\n const value = input?.value;\n\n const newFilters = {} as HdsFilterBarFilters;\n\n Object.keys(filters).forEach((k) => {\n newFilters[k] = JSON.parse(\n JSON.stringify(filters[k])\n ) as HdsFilterBarFilter;\n });\n\n if (value.length > 0) {\n newFilters['search'] = {\n type: 'search',\n text: 'Search',\n data: { value },\n };\n } else {\n delete newFilters['search'];\n }\n\n this.onFilter({ ...newFilters });\n }\n\n @action\n toggleExpand(): void {\n this._isExpanded = !this._isExpanded;\n }\n\n get hasActiveFilters(): boolean {\n return Object.keys(this.args.filters).length > 0;\n }\n\n private onFilterDismiss = (key: string, filterValue?: unknown): void => {\n const { filters } = this.args;\n if (filters && filters[key]) {\n const keyFilter: HdsFilterBarFilter = filters[key];\n const newFilters = {} as HdsFilterBarFilters;\n\n Object.keys(filters).forEach((k) => {\n newFilters[k] = JSON.parse(\n JSON.stringify(filters[k])\n ) as HdsFilterBarFilter;\n });\n\n if (keyFilter.type === 'multi-select' && isArray(keyFilter.data)) {\n const newKeyfilter = keyFilter.data?.filter(\n (item) => item.value !== filterValue\n );\n if (newKeyfilter.length === 0) {\n delete newFilters[key];\n } else {\n newFilters[key] = {\n type: 'multi-select',\n text: keyFilter.text,\n data: newKeyfilter,\n };\n }\n } else {\n delete newFilters[key];\n }\n\n this.onFilter({ ...newFilters });\n }\n };\n\n private _filterData = (\n data: HdsFilterBarData\n ): HdsFilterBarGenericFilterData => {\n if ('value' in data) {\n return { value: data.value };\n }\n return { value: '' };\n };\n\n private _filterText = (filter: HdsFilterBarFilter): string => {\n const result = this._filterData(filter.data);\n const resultText = result?.value as string;\n return resultText ?? '';\n };\n\n private _filterArrayData = (data: HdsFilterBarData): { value: unknown }[] => {\n if (isArray(data)) {\n return data.map((item) => this._filterData(item));\n }\n return [];\n };\n\n private _filterKeyText = (key: string, data: HdsFilterBarFilter): string => {\n if (data.text) {\n return data.text;\n } else {\n return key;\n }\n };\n\n private _rangeFilterText = (filter: HdsFilterBarFilter): string => {\n const data = filter.data;\n\n if (filter.type === 'range' && 'selector' in data && 'value' in data) {\n const selector = data.selector as keyof typeof RANGE_SELECTORS_TEXT;\n if (\n selector === 'between' &&\n typeof data.value === 'object' &&\n data.value !== null\n ) {\n const separatorText = this.hdsIntl.t(\n 'hds.components.filter-bar.filter-text.range-filter.separator',\n {\n default: 'and',\n }\n );\n return `${RANGE_SELECTORS_TEXT[selector]} ${data.value.start} ${separatorText} ${data.value.end}`;\n } else if (typeof data.value !== 'object') {\n return `${RANGE_SELECTORS_TEXT[selector]} ${data.value}`;\n }\n return '';\n } else {\n return '';\n }\n };\n\n private _dateFilterText = (filter: HdsFilterBarFilter): string => {\n const data = filter.data;\n\n if (\n (filter.type === 'date' ||\n filter.type === 'datetime' ||\n filter.type === 'time') &&\n 'selector' in data &&\n 'value' in data\n ) {\n const selector = data.selector as keyof typeof DATE_SELECTORS_TEXT;\n if (\n selector === 'between' &&\n typeof data.value === 'object' &&\n data.value !== null\n ) {\n const separatorText = this.hdsIntl.t(\n 'hds.components.filter-bar.filter-text.date-filter.separator',\n {\n default: 'and',\n }\n );\n const startDateText = this._dateDisplayText(\n data.value.start as string,\n filter.type\n );\n const endDateText = this._dateDisplayText(\n data.value.end as string,\n filter.type\n );\n return `${DATE_SELECTORS_TEXT[selector]} ${startDateText} ${separatorText} ${endDateText}`;\n } else if (data.value !== null && typeof data.value !== 'object') {\n const dateText = this._dateDisplayText(\n data.value as string,\n filter.type\n );\n return `${DATE_SELECTORS_TEXT[selector]} ${dateText}`;\n }\n return '';\n } else {\n return '';\n }\n };\n\n private _dateDisplayText = (\n dateString: string,\n filterType: HdsFilterBarFilterType\n ): string => {\n let date;\n if (filterType === 'time') {\n date = new Date(`1970-01-01T${dateString}`);\n } else {\n date = new Date(dateString);\n }\n\n let options = {};\n if (filterType === 'date') {\n options = { dateStyle: 'short' };\n } else if (filterType === 'time') {\n options = { timeStyle: 'short' };\n } else {\n options = { dateStyle: 'short', timeStyle: 'short' };\n }\n\n const newDate = new Intl.DateTimeFormat(undefined, options);\n return newDate.format(date);\n };\n\n private _genericFilterText = (filter: HdsFilterBarFilter): string => {\n if ('dismissTagText' in filter) {\n return filter.dismissTagText ?? '';\n } else {\n return '';\n }\n };\n}\n"],"names":["HdsFilterBar","Component","g","prototype","service","i","void 0","tracked","searchValue","filters","args","_filterText","onFilter","Object","keys","length","_isExpanded","n","action","clearFilters","onSearch","event","input","target","value","newFilters","forEach","k","JSON","parse","stringify","type","text","data","toggleExpand","hasActiveFilters","onFilterDismiss","key","filterValue","keyFilter","isArray","newKeyfilter","filter","item","_filterData","result","resultText","_filterArrayData","map","_filterKeyText","_rangeFilterText","selector","separatorText","hdsIntl","t","default","RANGE_SELECTORS_TEXT","start","end","_dateFilterText","startDateText","_dateDisplayText","endDateText","DATE_SELECTORS_TEXT","dateText","dateString","filterType","date","Date","options","dateStyle","timeStyle","newDate","Intl","DateTimeFormat","undefined","format","_genericFilterText","dismissTagText","setComponentTemplate","TEMPLATE"],"mappings":"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"}
|
|
@@ -4,21 +4,20 @@ import { precompileTemplate } from '@ember/template-compilation';
|
|
|
4
4
|
import { n } from 'decorator-transforms/runtime';
|
|
5
5
|
import { setComponentTemplate } from '@ember/component';
|
|
6
6
|
|
|
7
|
-
var TEMPLATE = precompileTemplate("{{!\n Copyright (c) HashiCorp, Inc.\n SPDX-License-Identifier: MPL-2.0\n}}\n<li class=\"hds-filter-
|
|
7
|
+
var TEMPLATE = precompileTemplate("{{!\n Copyright (c) HashiCorp, Inc.\n SPDX-License-Identifier: MPL-2.0\n}}\n<li class=\"hds-filter-bar__filters-dropdown__filter-option\">\n <Hds::Form::Radio::Field checked={{this.isChecked}} @value={{@value}} {{on \"change\" this.onChange}} as |F|>\n <F.Label>{{yield}}</F.Label>\n </Hds::Form::Radio::Field>\n</li>");
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
10
|
* Copyright (c) HashiCorp, Inc.
|
|
11
11
|
* SPDX-License-Identifier: MPL-2.0
|
|
12
12
|
*/
|
|
13
13
|
|
|
14
|
-
class
|
|
14
|
+
class HdsFilterBarRadio extends Component {
|
|
15
15
|
onChange(event) {
|
|
16
16
|
const {
|
|
17
|
-
onChange
|
|
18
|
-
label
|
|
17
|
+
onChange
|
|
19
18
|
} = this.args;
|
|
20
19
|
if (onChange && typeof onChange === 'function') {
|
|
21
|
-
onChange(event
|
|
20
|
+
onChange(event);
|
|
22
21
|
}
|
|
23
22
|
}
|
|
24
23
|
static {
|
|
@@ -35,7 +34,7 @@ class HdsFilterBarFilterGroupRadio extends Component {
|
|
|
35
34
|
return false;
|
|
36
35
|
}
|
|
37
36
|
}
|
|
38
|
-
setComponentTemplate(TEMPLATE,
|
|
37
|
+
setComponentTemplate(TEMPLATE, HdsFilterBarRadio);
|
|
39
38
|
|
|
40
|
-
export {
|
|
39
|
+
export { HdsFilterBarRadio as default };
|
|
41
40
|
//# sourceMappingURL=radio.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"radio.js","sources":["../../../../src/components/hds/filter-bar/radio.ts"],"sourcesContent":["/**\n * Copyright (c) HashiCorp, Inc.\n * SPDX-License-Identifier: MPL-2.0\n */\n\nimport Component from '@glimmer/component';\nimport { action } from '@ember/object';\n\nimport type { HdsFilterBarFilter } from './types.ts';\n\nexport interface HdsFilterBarRadioSignature {\n Args: {\n value?: string;\n keyFilter: HdsFilterBarFilter | undefined;\n onChange?: (event: Event) => void;\n };\n Blocks: {\n default: [];\n };\n Element: HTMLDivElement;\n}\n\nexport default class HdsFilterBarRadio extends Component<HdsFilterBarRadioSignature> {\n @action\n onChange(event: Event): void {\n const { onChange } = this.args;\n if (onChange && typeof onChange === 'function') {\n onChange(event);\n }\n }\n\n get isChecked(): boolean {\n const { keyFilter, value } = this.args;\n if (\n keyFilter &&\n keyFilter.type === 'single-select' &&\n value &&\n 'value' in keyFilter.data\n ) {\n return keyFilter.data.value === value;\n }\n return false;\n }\n}\n"],"names":["HdsFilterBarRadio","Component","onChange","event","args","n","prototype","action","isChecked","keyFilter","value","type","data","setComponentTemplate","TEMPLATE"],"mappings":";;;;;;;;AAAA;AACA;AACA;AACA;;AAmBe,MAAMA,iBAAiB,SAASC,SAAS,CAA6B;EAEnFC,QAAQA,CAACC,KAAY,EAAQ;IAC3B,MAAM;AAAED,MAAAA;KAAU,GAAG,IAAI,CAACE,IAAI;AAC9B,IAAA,IAAIF,QAAQ,IAAI,OAAOA,QAAQ,KAAK,UAAU,EAAE;MAC9CA,QAAQ,CAACC,KAAK,CAAC;AACjB,IAAA;AACF,EAAA;AAAC,EAAA;IAAAE,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,UAAA,EAAA,CANAC,MAAM,CAAA,CAAA;AAAA;EAQP,IAAIC,SAASA,GAAY;IACvB,MAAM;MAAEC,SAAS;AAAEC,MAAAA;KAAO,GAAG,IAAI,CAACN,IAAI;AACtC,IAAA,IACEK,SAAS,IACTA,SAAS,CAACE,IAAI,KAAK,eAAe,IAClCD,KAAK,IACL,OAAO,IAAID,SAAS,CAACG,IAAI,EACzB;AACA,MAAA,OAAOH,SAAS,CAACG,IAAI,CAACF,KAAK,KAAKA,KAAK;AACvC,IAAA;AACA,IAAA,OAAO,KAAK;AACd,EAAA;AACF;AAACG,oBAAA,CAAAC,QAAA,EArBoBd,iBAAiB,CAAA;;;;"}
|