@hashicorp/design-system-components 5.1.0-rc-20251125203828 → 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.
Files changed (53) hide show
  1. package/declarations/components/hds/filter-bar/{filter-group/checkbox.d.ts → checkbox.d.ts} +4 -5
  2. package/declarations/components/hds/filter-bar/{filter-group/date.d.ts → date.d.ts} +6 -6
  3. package/declarations/components/hds/filter-bar/{filter-group/index.d.ts → filter-group.d.ts} +12 -12
  4. package/declarations/components/hds/filter-bar/{dropdown.d.ts → filters-dropdown.d.ts} +4 -4
  5. package/declarations/components/hds/filter-bar/{filter-group/generic.d.ts → generic.d.ts} +3 -3
  6. package/declarations/components/hds/filter-bar/index.d.ts +3 -3
  7. package/declarations/components/hds/filter-bar/{filter-group/radio.d.ts → radio.d.ts} +4 -5
  8. package/declarations/components/hds/filter-bar/{filter-group/numerical.d.ts → range.d.ts} +9 -9
  9. package/declarations/components/hds/filter-bar/types.d.ts +12 -13
  10. package/declarations/components.d.ts +7 -7
  11. package/declarations/template-registry.d.ts +19 -19
  12. package/dist/_app_/components/hds/filter-bar/{dropdown.js → checkbox.js} +1 -1
  13. package/dist/_app_/components/hds/filter-bar/{filter-group/date.js → date.js} +1 -1
  14. package/dist/_app_/components/hds/filter-bar/filter-group.js +1 -1
  15. package/dist/_app_/components/hds/filter-bar/filters-dropdown.js +1 -0
  16. package/dist/_app_/components/hds/filter-bar/{filter-group/generic.js → generic.js} +1 -1
  17. package/dist/_app_/components/hds/filter-bar/{filter-group/radio.js → radio.js} +1 -1
  18. package/dist/_app_/components/hds/filter-bar/range.js +1 -0
  19. package/dist/components/hds/advanced-table/index.js +1 -1
  20. package/dist/components/hds/filter-bar/{filter-group/checkbox.js → checkbox.js} +6 -7
  21. package/dist/components/hds/filter-bar/checkbox.js.map +1 -0
  22. package/dist/components/hds/filter-bar/{filter-group/date.js → date.js} +5 -5
  23. package/dist/components/hds/filter-bar/date.js.map +1 -0
  24. package/dist/components/hds/filter-bar/{filter-group/index.js → filter-group.js} +11 -12
  25. package/dist/components/hds/filter-bar/filter-group.js.map +1 -0
  26. package/dist/components/hds/filter-bar/{dropdown.js → filters-dropdown.js} +7 -7
  27. package/dist/components/hds/filter-bar/filters-dropdown.js.map +1 -0
  28. package/dist/components/hds/filter-bar/{filter-group/generic.js → generic.js} +4 -4
  29. package/dist/components/hds/filter-bar/generic.js.map +1 -0
  30. package/dist/components/hds/filter-bar/index.js +18 -21
  31. package/dist/components/hds/filter-bar/index.js.map +1 -1
  32. package/dist/components/hds/filter-bar/{filter-group/radio.js → radio.js} +6 -7
  33. package/dist/components/hds/filter-bar/radio.js.map +1 -0
  34. package/dist/components/hds/filter-bar/range.js +163 -0
  35. package/dist/components/hds/filter-bar/range.js.map +1 -0
  36. package/dist/components/hds/filter-bar/types.js +10 -10
  37. package/dist/components/hds/filter-bar/types.js.map +1 -1
  38. package/dist/components.js +8 -8
  39. package/dist/styles/@hashicorp/design-system-components.css +77 -62
  40. package/dist/styles/components/filter-bar.scss +90 -74
  41. package/package.json +7 -7
  42. package/translations/hds/components/filter-bar/en-us.yaml +1 -1
  43. package/dist/_app_/components/hds/filter-bar/filter-group/checkbox.js +0 -1
  44. package/dist/_app_/components/hds/filter-bar/filter-group/numerical.js +0 -1
  45. package/dist/components/hds/filter-bar/dropdown.js.map +0 -1
  46. package/dist/components/hds/filter-bar/filter-group/checkbox.js.map +0 -1
  47. package/dist/components/hds/filter-bar/filter-group/date.js.map +0 -1
  48. package/dist/components/hds/filter-bar/filter-group/generic.js.map +0 -1
  49. package/dist/components/hds/filter-bar/filter-group/index.js.map +0 -1
  50. package/dist/components/hds/filter-bar/filter-group/numerical.js +0 -163
  51. package/dist/components/hds/filter-bar/filter-group/numerical.js.map +0 -1
  52. package/dist/components/hds/filter-bar/filter-group/radio.js.map +0 -1
  53. /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":"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"}
@@ -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 '../tabs/tab.js';
6
- import '../tabs/panel.js';
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-bar__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 \"numerical\")}}\n <Hds::FilterBar::FilterGroup::Numerical @keyFilter={{this.keyFilter}} @onChange={{this.onNumericalChange}} />\n {{else if (eq @type \"date\")}}\n <Hds::FilterBar::FilterGroup::Date @keyFilter={{this.keyFilter}} @onChange={{this.onDateChange}} @type=\"date\" />\n {{else if (eq @type \"datetime\")}}\n <Hds::FilterBar::FilterGroup::Date\n @keyFilter={{this.keyFilter}}\n @onChange={{this.onDateChange}}\n @type=\"datetime\"\n />\n {{else if (eq @type \"time\")}}\n <Hds::FilterBar::FilterGroup::Date @keyFilter={{this.keyFilter}} @onChange={{this.onDateChange}} @type=\"time\" />\n {{else if (eq @type \"generic\")}}\n {{yield\n (hash\n Generic=(component\n \"hds/filter-bar/filter-group/generic\" keyFilter=this.keyFilter onChange=this.onGenericChange\n )\n )\n }}\n {{else}}\n <div class=\"hds-filter-bar__filter-group__values-list\">\n <div class=\"hds-filter-bar__filter-group__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__filter-group__list\">\n {{yield\n (hash\n Checkbox=(component\n \"hds/filter-bar/filter-group/checkbox\" keyFilter=this.keyFilter onChange=this.onSelectionChange\n )\n Radio=(component\n \"hds/filter-bar/filter-group/radio\" keyFilter=this.keyFilter onChange=this.onSelectionChange\n )\n )\n }}\n </ul>\n </div>\n {{/if}}\n </Panel>\n{{/let}}");
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, label) {
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
- onNumericalChange(selector, value) {
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, "onNumericalChange", [action]);
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-bar__filter-group__selection-option');
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-bar__filter-group__selection-option--hidden');
215
+ item.classList.remove('hds-filter-bar__filters-dropdown__filter-option--hidden');
217
216
  } else {
218
- item.classList.add('hds-filter-bar__filter-group__selection-option--hidden');
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=index.js.map
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/index.js';
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 HdsFilterBarDropdown extends Component {
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-bar__dropdown'];
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, HdsFilterBarDropdown);
117
+ setComponentTemplate(TEMPLATE, HdsFilterBarFiltersDropdown);
118
118
 
119
- export { HdsFilterBarDropdown as default };
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-bar__filter-group__filter-generic\">\n <Hds::Layout::Flex class=\"hds-filter-bar__filter-group__fields\" @direction=\"column\" @gap=\"16\">\n {{yield (hash updateFilter=this.updateFilter)}}\n </Hds::Layout::Flex>\n <div class=\"hds-filter-bar__filter-group__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>");
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 HdsFilterBarFilterGroupGeneric extends Component {
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, HdsFilterBarFilterGroupGeneric);
40
+ setComponentTemplate(TEMPLATE, HdsFilterBarGeneric);
41
41
 
42
- export { HdsFilterBarFilterGroupGeneric as default };
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 { NUMERICAL_SELECTORS_TEXT } from './filter-group/numerical.js';
10
- import { DATE_SELECTORS_TEXT } from './filter-group/date.js';
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 Dropdown=(component\n \"hds/filter-bar/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 \"numerical\")}}\n <Hds::Tag\n @text=\"{{this._filterKeyText key filter}} {{this._numericalFilterText 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}}: {{if item.text item.text 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>");
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 this.hasActiveFilters;
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
- result.value = data.value;
142
- }
143
- if ('label' in data) {
144
- result.label = data.label;
138
+ return {
139
+ value: data.value
140
+ };
145
141
  }
146
- return result;
142
+ return {
143
+ value: ''
144
+ };
147
145
  };
148
146
  _filterText = filter => {
149
147
  const result = this._filterData(filter.data);
150
- const resultLabel = result?.label;
151
- const resultValue = result?.value;
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
- _numericalFilterText = filter => {
164
+ _rangeFilterText = filter => {
168
165
  const data = filter.data;
169
- if (filter.type === 'numerical' && 'selector' in data && 'value' in data) {
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.numerical-filter.separator', {
169
+ const separatorText = this.hdsIntl.t('hds.components.filter-bar.filter-text.range-filter.separator', {
173
170
  default: 'and'
174
171
  });
175
- return `${NUMERICAL_SELECTORS_TEXT[selector]} ${data.value.start} ${separatorText} ${data.value.end}`;
172
+ return `${RANGE_SELECTORS_TEXT[selector]} ${data.value.start} ${separatorText} ${data.value.end}`;
176
173
  } else if (typeof data.value !== 'object') {
177
- return `${NUMERICAL_SELECTORS_TEXT[selector]} ${data.value}`;
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; text?: 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,IACkB;AACxC,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-bar__filter-group__selection-option\">\n <Hds::Form::Radio::Field checked={{this.isChecked}} @value={{@value}} {{on \"change\" this.onChange}} as |F|>\n <F.Label>{{@label}}</F.Label>\n </Hds::Form::Radio::Field>\n</li>");
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 HdsFilterBarFilterGroupRadio extends Component {
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, label);
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, HdsFilterBarFilterGroupRadio);
37
+ setComponentTemplate(TEMPLATE, HdsFilterBarRadio);
39
38
 
40
- export { HdsFilterBarFilterGroupRadio as default };
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;;;;"}