@economic/taco 2.3.0 → 2.4.1
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/dist/components/Header/components/Agreement/types.d.ts +1 -1
- package/dist/components/Menu/Context.d.ts +2 -0
- package/dist/components/Menu/components/Item.d.ts +3 -2
- package/dist/components/Provider/Localization.d.ts +12 -0
- package/dist/components/Provider/Provider.d.ts +6 -1
- package/dist/components/SearchInput2/SearchInput2.d.ts +2 -1
- package/dist/components/Spinner/Spinner.d.ts +2 -2
- package/dist/components/Table2/types.d.ts +1 -1
- package/dist/components/Table3/Table3.d.ts +1 -1
- package/dist/components/Table3/components/columns/internal/Selection.d.ts +1 -2
- package/dist/components/Table3/components/toolbar/Filter/filters/components/Filter.d.ts +1 -2
- package/dist/components/Table3/components/toolbar/Filter/filters/components/FilterComparator.d.ts +4 -4
- package/dist/components/Table3/components/toolbar/Filter/filters/components/FilterValue.d.ts +1 -1
- package/dist/components/Table3/hooks/features/useColumnFreezing.d.ts +2 -1
- package/dist/components/Table3/hooks/features/useCurrentRow.d.ts +1 -1
- package/dist/components/Table3/hooks/features/useEditing.d.ts +1 -2
- package/dist/components/Table3/hooks/features/usePauseHoverState.d.ts +1 -1
- package/dist/components/Table3/hooks/features/useRowClick.d.ts +1 -2
- package/dist/components/Table3/hooks/features/useRowSelection.d.ts +1 -1
- package/dist/components/Table3/hooks/features/useSettings.d.ts +2 -0
- package/dist/components/Table3/hooks/listeners/useSettingsStateListener.d.ts +2 -2
- package/dist/components/Table3/hooks/useTable.d.ts +2 -1
- package/dist/components/Table3/types.d.ts +24 -12
- package/dist/components/Table3/util/columns.d.ts +5 -4
- package/dist/esm/packages/taco/src/components/Menu/Context.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Menu/Menu.js +1 -0
- package/dist/esm/packages/taco/src/components/Menu/Menu.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Menu/components/Content.js +32 -2
- package/dist/esm/packages/taco/src/components/Menu/components/Content.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Menu/components/Item.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Provider/Localization.js +13 -1
- package/dist/esm/packages/taco/src/components/Provider/Localization.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Provider/Provider.js +11 -4
- package/dist/esm/packages/taco/src/components/Provider/Provider.js.map +1 -1
- package/dist/esm/packages/taco/src/components/SearchInput2/SearchInput2.js +30 -44
- package/dist/esm/packages/taco/src/components/SearchInput2/SearchInput2.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Select2/components/Edit.js +12 -1
- package/dist/esm/packages/taco/src/components/Select2/components/Edit.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Shortcut/Shortcut.js +1 -1
- package/dist/esm/packages/taco/src/components/Shortcut/Shortcut.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Spinner/Spinner.js +1 -1
- package/dist/esm/packages/taco/src/components/Spinner/Spinner.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table2/types.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/Table3.js +17 -16
- package/dist/esm/packages/taco/src/components/Table3/Table3.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/components/columns/cell/DisplayCell.js +5 -5
- package/dist/esm/packages/taco/src/components/Table3/components/columns/cell/DisplayCell.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/components/columns/cell/EditingCell.js +0 -2
- package/dist/esm/packages/taco/src/components/Table3/components/columns/cell/EditingCell.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/components/columns/footer/Footer.js +1 -1
- package/dist/esm/packages/taco/src/components/Table3/components/columns/footer/Footer.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/components/columns/header/Goto.js +1 -0
- package/dist/esm/packages/taco/src/components/Table3/components/columns/header/Goto.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/components/columns/header/Header.js +3 -4
- package/dist/esm/packages/taco/src/components/Table3/components/columns/header/Header.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/components/columns/header/Menu.js +5 -20
- package/dist/esm/packages/taco/src/components/Table3/components/columns/header/Menu.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/components/columns/internal/Actions.js +1 -1
- package/dist/esm/packages/taco/src/components/Table3/components/columns/internal/Actions.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/components/columns/internal/Selection.js +20 -6
- package/dist/esm/packages/taco/src/components/Table3/components/columns/internal/Selection.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Filter/filters/Filters.js +4 -2
- package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Filter/filters/Filters.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Filter/filters/components/Filter.js +2 -24
- package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Filter/filters/components/Filter.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Filter/filters/components/FilterComparator.js +68 -17
- package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Filter/filters/components/FilterComparator.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Filter/filters/components/FilterValue.js +31 -2
- package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Filter/filters/components/FilterValue.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Filter/filters/components/Placeholder.js +1 -5
- package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Filter/filters/components/Placeholder.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/components/toolbar/PrintButton/PrintIFrame.js +18 -25
- package/dist/esm/packages/taco/src/components/Table3/components/toolbar/PrintButton/PrintIFrame.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/components/toolbar/PrintButton/hooks/useParentStylesheets.js +5 -0
- package/dist/esm/packages/taco/src/components/Table3/components/toolbar/PrintButton/hooks/useParentStylesheets.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Search.js +40 -29
- package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Search.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Toolbar.js +6 -2
- package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Toolbar.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/hooks/features/useColumnFreezing.js +20 -16
- package/dist/esm/packages/taco/src/components/Table3/hooks/features/useColumnFreezing.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/hooks/features/useCurrentRow.js +1 -1
- package/dist/esm/packages/taco/src/components/Table3/hooks/features/useCurrentRow.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/hooks/features/useEditing.js +9 -13
- package/dist/esm/packages/taco/src/components/Table3/hooks/features/useEditing.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/hooks/features/usePauseHoverState.js +3 -0
- package/dist/esm/packages/taco/src/components/Table3/hooks/features/usePauseHoverState.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/hooks/features/useRowClick.js +1 -1
- package/dist/esm/packages/taco/src/components/Table3/hooks/features/useRowClick.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/hooks/features/useRowSelection.js +1 -1
- package/dist/esm/packages/taco/src/components/Table3/hooks/features/useRowSelection.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/hooks/features/useSettings.js +18 -0
- package/dist/esm/packages/taco/src/components/Table3/hooks/features/useSettings.js.map +1 -0
- package/dist/esm/packages/taco/src/components/Table3/hooks/listeners/useSettingsStateListener.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/hooks/useConvertChildrenToColumns.js +4 -6
- package/dist/esm/packages/taco/src/components/Table3/hooks/useConvertChildrenToColumns.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/hooks/useCssGrid.js +1 -1
- package/dist/esm/packages/taco/src/components/Table3/hooks/useTable.js +18 -12
- package/dist/esm/packages/taco/src/components/Table3/hooks/useTable.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/types.js +7 -5
- package/dist/esm/packages/taco/src/components/Table3/types.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/util/columns.js +26 -7
- package/dist/esm/packages/taco/src/components/Table3/util/columns.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/util/filtering.js +24 -6
- package/dist/esm/packages/taco/src/components/Table3/util/filtering.js.map +1 -1
- package/dist/esm/packages/taco/src/hooks/useDebouncedEffect.js +15 -0
- package/dist/esm/packages/taco/src/hooks/useDebouncedEffect.js.map +1 -0
- package/dist/esm/packages/taco/src/hooks/useLocalStorage.js +34 -0
- package/dist/esm/packages/taco/src/hooks/useLocalStorage.js.map +1 -0
- package/dist/esm/packages/taco/src/hooks/useTacoSettings.js +9 -0
- package/dist/esm/packages/taco/src/hooks/useTacoSettings.js.map +1 -0
- package/dist/esm/packages/taco/src/index.js +1 -1
- package/dist/esm/packages/taco/src/utils/keyboard.js +2 -2
- package/dist/esm/packages/taco/src/utils/keyboard.js.map +1 -1
- package/dist/hooks/useDebouncedEffect.d.ts +2 -0
- package/dist/hooks/useLocalStorage.d.ts +1 -0
- package/dist/hooks/useTacoSettings.d.ts +1 -0
- package/dist/taco.cjs.development.js +550 -340
- package/dist/taco.cjs.development.js.map +1 -1
- package/dist/taco.cjs.production.min.js +1 -1
- package/dist/taco.cjs.production.min.js.map +1 -1
- package/package.json +2 -2
- package/types.json +11529 -10643
- package/dist/components/Table3/components/toolbar/Filter/filters/components/Comparator.d.ts +0 -11
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Localization.js","sources":["../../../../../../../src/components/Provider/Localization.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Locale } from '../../types';\nimport { CalendarTexts } from '../Calendar/Calendar';\nimport { ComboboxTexts } from '../Combobox/Combobox';\nimport { DialogTexts } from '../Dialog/Dialog';\nimport { PaginationTexts } from '../Pagination/Pagination';\nimport { ListboxTexts } from '../Listbox/Listbox';\nimport { ToastsTexts } from '../Toast/Toast';\nimport { DatepickerTexts } from '../Datepicker/Datepicker';\nimport { HeaderTexts } from '../Header/Header';\nimport { HangerTexts } from '../Hanger/Hanger';\nimport { SelectTexts } from '../Select/Select';\nimport { TourTexts } from '../Tour/Tour';\nimport { TableTexts } from '../Table/Table';\nimport { Table2Texts } from '../Table2/Table2';\nimport { Table3Texts } from '../Table3/types';\nimport { SearchInputTexts } from '../SearchInput/SearchInput';\nimport { Select2Texts } from '../Select2/Select2';\nimport { BannerTexts } from '../Banner/Banner';\nimport { DrawerTexts } from '../Drawer/Drawer';\n\nexport type LocalizationTexts = {\n /** Localized texts and aria-labels for [Banner](component:banner) component */\n banner: BannerTexts;\n /** Localized texts and aria-labels for [Calendar](component:calendar) component */\n calendar: CalendarTexts;\n /** Localized texts and aria-labels for [Combobox](component:combobox) component */\n combobox: ComboboxTexts;\n /** Localized texts and aria-labels for [DatePicker](component:datepicker) component */\n datepicker: DatepickerTexts;\n /** Localized texts and aria-labels for [Dialog](component:dialog) component */\n dialog: DialogTexts;\n /** Localized texts and aria-labels for [Hanger](component:hanger) component */\n hanger: HangerTexts;\n /** Localized texts and aria-labels for [Header](component:header) component */\n header: HeaderTexts;\n /** Localized texts and aria-labels for [Listbox](component:listbox) component */\n listbox: ListboxTexts;\n /** Localized texts and aria-labels for [Pagination](component:pagination) component */\n pagination: PaginationTexts;\n /** Localized texts and aria-labels for [Table](component:table) component */\n table: TableTexts;\n /** Localized texts and aria-labels for [Table2](component:table2) component */\n table2: Table2Texts;\n /** Localized texts and aria-labels for [Table3](component:table3) component */\n table3: Table3Texts;\n /** Localized texts and aria-labels for [SearchInput](component:searchinput) component */\n searchInput: SearchInputTexts;\n /** Localized texts and aria-labels for [Select](component:select) component */\n select: SelectTexts;\n /** Localized texts and aria-labels for [Select2](component:select2) component */\n select2: Select2Texts;\n /** Localized texts and aria-labels for [Toast](component:toast) component */\n toasts: ToastsTexts;\n /** Localized texts and aria-labels for [Tour](component:tour) component */\n tour: TourTexts;\n /** Localized texts and aria-labels for [Drawer](component:drawer) component */\n drawer: DrawerTexts;\n};\n\nexport type Localization = {\n /**\n * Provide the language code used in application.\n * Default value is `en-GB`\n */\n locale: Locale;\n /** Provide the texts and aria-labels for components used within the provider */\n texts: LocalizationTexts;\n /** Provide the formatting */\n formatting: {\n /** Default value is `dd.mm.yy` */\n date: string;\n };\n};\n\nexport const defaultLocalisationTexts = {\n banner: {\n close: 'Close',\n },\n calendar: {\n months: [\n 'January',\n 'February',\n 'March',\n 'April',\n 'May',\n 'June',\n 'July',\n 'August',\n 'September',\n 'October',\n 'November',\n 'December',\n ],\n weekdaysShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n weekdays: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\n actions: {\n previousMonth: 'Previous month',\n nextMonth: 'Next month',\n previousYear: 'Previous year',\n nextYear: 'Next year',\n today: 'Today',\n },\n },\n combobox: {\n tooltip: 'Search in list',\n },\n datepicker: {\n calendar: 'Calendar',\n clear: 'Clear',\n expand: 'Show calendar',\n shortcuts: 'Shortcuts',\n },\n dialog: {\n close: 'Close',\n drag: 'Drag',\n },\n hanger: {\n close: 'Close',\n },\n header: {\n addAgreement: 'Add agreement',\n logout: 'Log off',\n more: 'More',\n new: 'New',\n search: 'Search for agreement...',\n },\n listbox: {\n loading: 'Loading results...',\n empty: 'No results found',\n allOption: 'All',\n },\n pagination: {\n label: 'Pagination',\n pageSize: 'Items per page',\n showingXofYofTotal: 'Showing [X] - [Y] of [total]',\n actions: {\n firstPage: 'Goto first page',\n firstPageWithShortcut: 'Goto first page (Home)',\n previousPage: 'Goto previous page',\n previousPageWithShortcut: 'Goto previous page (Page Up)',\n nextPage: 'Goto next page',\n nextPageWithShortcut: 'Goto next page (Page Down)',\n lastPage: 'Goto last page',\n lastPageWithShortcut: 'Goto last page (End)',\n pageX: 'Goto page [X]',\n },\n },\n table: {\n actions: 'Other actions',\n edit: 'Edit (e)',\n copy: 'Copy (c)',\n del: 'Delete (del)',\n newSubRow: 'New row (shift + n)',\n loading: 'Loading...',\n },\n table2: {\n columns: {\n resize: {\n tooltip: 'Resize column',\n },\n actions: {\n tooltip: 'Other actions',\n },\n drag: {\n tooltip: 'Drag row',\n },\n expansion: {\n collapse: 'Collapse row',\n collapseAll: 'Collapse all rows',\n expand: 'Expand row',\n expandAll: 'Expand all rows',\n },\n select: {\n deselect: 'Deselect row',\n deselectAll: 'Deselect all rows',\n select: 'Select row',\n selectAll: 'Select all rows',\n },\n menu: {\n hideColumn: 'Hide column',\n freezeColumns: (count = 1) => (count === 1 ? 'Freeze the first column' : `Freeze first ${count} columns`),\n unfreezeColumns: 'Unfreeze all columns',\n },\n },\n columnSettings: {\n search: 'Search column...',\n tooltip: 'Column settings',\n button: 'Columns',\n noResults: 'No results',\n },\n editing: {\n button: 'Edit',\n tooltip: 'Edit',\n tooltipDisabled: 'There are no visible columns that support editing',\n rowIndicator: {\n rowWillMove: 'Row will move due to sorting',\n rowWillBeHidden: 'Row will hide due to filtering',\n rowWillMoveReasonSearch:\n 'Due to a search filter applied to this table, this row will be hidden as soon as you select another row',\n rowWillMoveReasonFilter:\n \"Due to a filter applied to the column '[COLUMN]', this row will be hidden as soon as you select another row\",\n rowWillMoveReasonSorting:\n \"Due to sorting applied to the column '[COLUMN]', this row will move position as soon as you select another row\",\n },\n },\n filters: {\n button: 'Filters',\n buttons: {\n addNewFilter: 'Add new filter',\n clearFilters: 'Clear all filters',\n },\n comparators: {\n contains: 'Contains',\n doesNotContain: 'Does not contain',\n isEqualTo: 'Is',\n isNotEqualTo: 'Is not',\n isGreaterThan: 'Is greater than',\n isLessThan: 'Is less than',\n isBetween: 'Is between',\n isOneOf: 'Is one of',\n isNoneOf: 'Is none of',\n isAllOf: 'Is all of',\n isEmpty: 'Is empty',\n isNotEmpty: 'Is not empty',\n },\n conditions: {\n and: 'And',\n where: 'Where',\n },\n emptyFilter: {\n condition: 'Condition',\n value: 'Value',\n },\n tooltip: 'Apply filters',\n total: 'Viewing [CURRENT] of [TOTAL]',\n },\n footer: {\n summary: {\n records: 'Records:',\n selected: 'Records selected:',\n },\n },\n rowDensity: {\n tooltip: 'Row density',\n compact: 'compact',\n normal: 'normal',\n comfortable: 'comfortable',\n spacious: 'spacious',\n },\n search: {\n placeholder: 'Search...',\n },\n shortcuts: {\n tooltip: 'View keyboard shortcuts',\n search: 'Search',\n filter: 'Filter',\n previousRow: 'Previous row',\n nextRow: 'Next row',\n editCell: 'Edit cell',\n previousColumn: 'Previous column',\n nextColumn: 'Next column',\n rowClick: 'Activate current row',\n selectRow: 'Select current row',\n selectAllRows: 'Select all rows',\n expandRow: 'Expand current row',\n collapseRow: 'Collapse current row',\n },\n },\n table3: {\n columns: {\n actions: {\n tooltip: 'Row actions',\n },\n drag: {\n tooltip: 'Drag row',\n },\n expansion: {\n collapse: 'Collapse row',\n collapseAll: 'Collapse all rows',\n expand: 'Expand row',\n expandAll: 'Expand all rows',\n },\n menu: {\n freezeFirstColumn: 'Freeze the first column',\n freezeUptoColumn: `Freeze first [TOTAL] columns`,\n freezeColumns: (count = 1) => (count === 1 ? 'Freeze the first column' : `Freeze first ${count} columns`),\n gotoRow: 'Go to',\n hideColumn: 'Hide column',\n unfreezeColumns: 'Unfreeze all columns',\n },\n resize: {\n tooltip: 'Resize column',\n },\n select: {\n deselect: 'Deselect row',\n deselectAll: 'Deselect all rows',\n select: 'Select row',\n selectAll: 'Select all rows',\n },\n },\n columnSettings: {\n search: 'Search column...',\n tooltip: 'Columns',\n button: 'Columns',\n noResults: 'No results',\n },\n editing: {\n actions: {\n tooltip: 'Row actions',\n save: 'Save',\n clear: 'Clear changes',\n exit: 'Exit edit mode',\n },\n buttons: {\n edit: {\n text: 'Edit',\n tooltip: 'Edit',\n },\n },\n rowIndicator: {\n rowWillMove: 'Row will move due to sorting',\n rowWillBeHidden: 'Row will hide due to filtering',\n rowWillMoveReasonSearch:\n 'Due to a search filter applied to this table, this row will be hidden as soon as you select another row',\n rowWillMoveReasonFilter:\n \"Due to a filter applied to the column '[COLUMN]', this row will be hidden as soon as you select another row\",\n rowWillMoveReasonSorting:\n \"Due to sorting applied to the column '[COLUMN]', this row will move position as soon as you select another row\",\n },\n saving: {\n progress: 'Saving...',\n complete: 'Saved',\n },\n },\n filters: {\n button: 'Filters',\n buttons: {\n addFilter: 'Add new filter',\n clearFilters: 'Clear all filters',\n },\n comparators: {\n contains: 'Contains',\n doesNotContain: 'Does not contain',\n isEqualTo: 'Is',\n isNotEqualTo: 'Is not',\n isGreaterThan: 'Is greater than',\n isLessThan: 'Is less than',\n isBetween: 'Is between',\n isOneOf: 'Is one of',\n isNoneOf: 'Is none of',\n isAllOf: 'Is all of',\n isEmpty: 'Is empty',\n isNotEmpty: 'Is not empty',\n },\n conditions: {\n and: 'And',\n where: 'Where',\n },\n emptyFilter: {\n condition: 'Condition',\n value: 'Value',\n },\n tooltip: 'Apply filters',\n total: 'Viewing [CURRENT] of [TOTAL]',\n },\n fontSize: {\n tooltip: 'Font size',\n sizes: {\n small: 'Small',\n medium: 'Medium',\n large: 'Large',\n },\n },\n footer: {\n summary: {\n count: 'of',\n records: 'Records:',\n selected: 'Records selected:',\n },\n },\n print: {\n error: 'An error occurred while creating a print preview',\n loading: 'Creating a print preview',\n tooltip: 'Print',\n warningDialog: {\n title: 'Extra loading time',\n description:\n 'Please note that printing a large amount of data may result in a slightly longer waiting time due to data loading.',\n checkboxVisibilityLabel: \"Don't show again\",\n cancelButtonText: 'Cancel',\n printButtonText: 'Print',\n },\n },\n rowHeight: {\n tooltip: 'Row height',\n sizes: {\n short: 'Short',\n medium: 'Medium',\n tall: 'Tall',\n extraTall: 'Extra tall',\n },\n },\n search: {\n excludeUnmatchedResults: 'Hide unmatched records',\n placeholder: 'Search...',\n },\n shortcuts: {\n tooltip: 'View keyboard shortcuts',\n search: 'Search',\n filter: 'Filter',\n previousRow: 'Previous row',\n nextRow: 'Next row',\n editCell: 'Edit cell',\n previousColumn: 'Previous column',\n nextColumn: 'Next column',\n rowClick: 'Activate current row',\n selectRow: 'Select current row',\n selectAllRows: 'Select all rows',\n expandRow: 'Expand current row',\n collapseRow: 'Collapse current row',\n },\n },\n searchInput: {\n button: 'Search',\n findNext: 'Next',\n findPrevious: 'Previous',\n placeholder: 'Search...',\n clear: 'Clear',\n },\n select: {\n allOptionsSelected: 'All',\n },\n select2: {\n allSelect: 'Select all',\n allDeselect: 'Deselect all',\n cancel: 'Cancel',\n chooseColor: 'Pick a color',\n create: 'Create',\n delete: 'Delete',\n save: 'Save',\n search: 'Search...',\n searchOrCreate: 'Search or create...',\n },\n toasts: {\n dismiss: 'Dismiss',\n },\n tour: {\n back: 'Back',\n close: 'Close',\n skip: 'Close and complete',\n last: 'Done',\n next: 'Next',\n open: 'Open',\n },\n drawer: {\n close: 'Close',\n },\n};\n\nexport const defaultLocalizationContext: Localization = {\n locale: 'en-GB',\n texts: defaultLocalisationTexts,\n formatting: {\n date: 'dd.mm.yy',\n },\n};\n\nexport const LocalizationContext = React.createContext<Localization>(defaultLocalizationContext);\nexport interface LocalizationProviderProps {\n children: React.ReactNode;\n localization?: Localization;\n}\nexport const LocalizationProvider: React.FC<LocalizationProviderProps> = ({ localization, children }) => {\n return (\n <LocalizationContext.Provider value={localization ?? defaultLocalizationContext}>{children}</LocalizationContext.Provider>\n );\n};\n\nexport const useLocalization = () => React.useContext(LocalizationContext);\n"],"names":["defaultLocalisationTexts","banner","close","calendar","months","weekdaysShort","weekdays","actions","previousMonth","nextMonth","previousYear","nextYear","today","combobox","tooltip","datepicker","clear","expand","shortcuts","dialog","drag","hanger","header","addAgreement","logout","more","new","search","listbox","loading","empty","allOption","pagination","label","pageSize","showingXofYofTotal","firstPage","firstPageWithShortcut","previousPage","previousPageWithShortcut","nextPage","nextPageWithShortcut","lastPage","lastPageWithShortcut","pageX","table","edit","copy","del","newSubRow","table2","columns","resize","expansion","collapse","collapseAll","expandAll","select","deselect","deselectAll","selectAll","menu","hideColumn","freezeColumns","count","unfreezeColumns","columnSettings","button","noResults","editing","tooltipDisabled","rowIndicator","rowWillMove","rowWillBeHidden","rowWillMoveReasonSearch","rowWillMoveReasonFilter","rowWillMoveReasonSorting","filters","buttons","addNewFilter","clearFilters","comparators","contains","doesNotContain","isEqualTo","isNotEqualTo","isGreaterThan","isLessThan","isBetween","isOneOf","isNoneOf","isAllOf","isEmpty","isNotEmpty","conditions","and","where","emptyFilter","condition","value","total","footer","summary","records","selected","rowDensity","compact","normal","comfortable","spacious","placeholder","filter","previousRow","nextRow","editCell","previousColumn","nextColumn","rowClick","selectRow","selectAllRows","expandRow","collapseRow","table3","freezeFirstColumn","freezeUptoColumn","gotoRow","save","exit","text","saving","progress","complete","addFilter","fontSize","sizes","small","medium","large","print","error","warningDialog","title","description","checkboxVisibilityLabel","cancelButtonText","printButtonText","rowHeight","short","tall","extraTall","excludeUnmatchedResults","searchInput","findNext","findPrevious","allOptionsSelected","select2","allSelect","allDeselect","cancel","chooseColor","create","delete","searchOrCreate","toasts","dismiss","tour","back","skip","last","next","open","drawer","defaultLocalizationContext","locale","texts","formatting","date","LocalizationContext","React","LocalizationProvider","localization","children","Provider","useLocalization"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Localization.js","sources":["../../../../../../../src/components/Provider/Localization.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Locale } from '../../types';\nimport { CalendarTexts } from '../Calendar/Calendar';\nimport { ComboboxTexts } from '../Combobox/Combobox';\nimport { DialogTexts } from '../Dialog/Dialog';\nimport { PaginationTexts } from '../Pagination/Pagination';\nimport { ListboxTexts } from '../Listbox/Listbox';\nimport { ToastsTexts } from '../Toast/Toast';\nimport { DatepickerTexts } from '../Datepicker/Datepicker';\nimport { HeaderTexts } from '../Header/Header';\nimport { HangerTexts } from '../Hanger/Hanger';\nimport { SelectTexts } from '../Select/Select';\nimport { TourTexts } from '../Tour/Tour';\nimport { TableTexts } from '../Table/Table';\nimport { Table2Texts } from '../Table2/Table2';\nimport { Table3Texts } from '../Table3/types';\nimport { SearchInputTexts } from '../SearchInput/SearchInput';\nimport { Select2Texts } from '../Select2/Select2';\nimport { BannerTexts } from '../Banner/Banner';\nimport { DrawerTexts } from '../Drawer/Drawer';\n\nexport type LocalizationTexts = {\n /** Localized texts and aria-labels for [Banner](component:banner) component */\n banner: BannerTexts;\n /** Localized texts and aria-labels for [Calendar](component:calendar) component */\n calendar: CalendarTexts;\n /** Localized texts and aria-labels for [Combobox](component:combobox) component */\n combobox: ComboboxTexts;\n /** Localized texts and aria-labels for [DatePicker](component:datepicker) component */\n datepicker: DatepickerTexts;\n /** Localized texts and aria-labels for [Dialog](component:dialog) component */\n dialog: DialogTexts;\n /** Localized texts and aria-labels for [Hanger](component:hanger) component */\n hanger: HangerTexts;\n /** Localized texts and aria-labels for [Header](component:header) component */\n header: HeaderTexts;\n /** Localized texts and aria-labels for [Listbox](component:listbox) component */\n listbox: ListboxTexts;\n /** Localized texts and aria-labels for [Pagination](component:pagination) component */\n pagination: PaginationTexts;\n /** Localized texts and aria-labels for [Table](component:table) component */\n table: TableTexts;\n /** Localized texts and aria-labels for [Table2](component:table2) component */\n table2: Table2Texts;\n /** Localized texts and aria-labels for [Table3](component:table3) component */\n table3: Table3Texts;\n /** Localized texts and aria-labels for [SearchInput](component:searchinput) component */\n searchInput: SearchInputTexts;\n /** Localized texts and aria-labels for [Select](component:select) component */\n select: SelectTexts;\n /** Localized texts and aria-labels for [Select2](component:select2) component */\n select2: Select2Texts;\n /** Localized texts and aria-labels for [Toast](component:toast) component */\n toasts: ToastsTexts;\n /** Localized texts and aria-labels for [Tour](component:tour) component */\n tour: TourTexts;\n /** Localized texts and aria-labels for [Drawer](component:drawer) component */\n drawer: DrawerTexts;\n};\n\nexport type Localization = {\n /**\n * Provide the language code used in application.\n * Default value is `en-GB`\n */\n locale: Locale;\n /** Provide the texts and aria-labels for components used within the provider */\n texts: LocalizationTexts;\n /** Provide the formatting */\n formatting: {\n /** Default value is `dd.mm.yy` */\n date: string;\n };\n};\n\nexport const defaultLocalisationTexts = {\n banner: {\n close: 'Close',\n },\n calendar: {\n months: [\n 'January',\n 'February',\n 'March',\n 'April',\n 'May',\n 'June',\n 'July',\n 'August',\n 'September',\n 'October',\n 'November',\n 'December',\n ],\n weekdaysShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n weekdays: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\n actions: {\n previousMonth: 'Previous month',\n nextMonth: 'Next month',\n previousYear: 'Previous year',\n nextYear: 'Next year',\n today: 'Today',\n },\n },\n combobox: {\n tooltip: 'Search in list',\n },\n datepicker: {\n calendar: 'Calendar',\n clear: 'Clear',\n expand: 'Show calendar',\n shortcuts: 'Shortcuts',\n },\n dialog: {\n close: 'Close',\n drag: 'Drag',\n },\n hanger: {\n close: 'Close',\n },\n header: {\n addAgreement: 'Add agreement',\n logout: 'Log off',\n more: 'More',\n new: 'New',\n search: 'Search for agreement...',\n },\n listbox: {\n loading: 'Loading results...',\n empty: 'No results found',\n allOption: 'All',\n },\n pagination: {\n label: 'Pagination',\n pageSize: 'Items per page',\n showingXofYofTotal: 'Showing [X] - [Y] of [total]',\n actions: {\n firstPage: 'Goto first page',\n firstPageWithShortcut: 'Goto first page (Home)',\n previousPage: 'Goto previous page',\n previousPageWithShortcut: 'Goto previous page (Page Up)',\n nextPage: 'Goto next page',\n nextPageWithShortcut: 'Goto next page (Page Down)',\n lastPage: 'Goto last page',\n lastPageWithShortcut: 'Goto last page (End)',\n pageX: 'Goto page [X]',\n },\n },\n table: {\n actions: 'Other actions',\n edit: 'Edit (e)',\n copy: 'Copy (c)',\n del: 'Delete (del)',\n newSubRow: 'New row (shift + n)',\n loading: 'Loading...',\n },\n table2: {\n columns: {\n resize: {\n tooltip: 'Resize column',\n },\n actions: {\n tooltip: 'Other actions',\n },\n drag: {\n tooltip: 'Drag row',\n },\n expansion: {\n collapse: 'Collapse row',\n collapseAll: 'Collapse all rows',\n expand: 'Expand row',\n expandAll: 'Expand all rows',\n },\n select: {\n deselect: 'Deselect row',\n deselectAll: 'Deselect all rows',\n select: 'Select row',\n selectAll: 'Select all rows',\n },\n menu: {\n hideColumn: 'Hide column',\n freezeColumns: (count = 1) => (count === 1 ? 'Freeze the first column' : `Freeze first ${count} columns`),\n unfreezeColumns: 'Unfreeze all columns',\n },\n },\n columnSettings: {\n search: 'Search column...',\n tooltip: 'Column settings',\n button: 'Columns',\n noResults: 'No results',\n },\n editing: {\n button: 'Edit',\n tooltip: 'Edit',\n tooltipDisabled: 'There are no visible columns that support editing',\n rowIndicator: {\n rowWillMove: 'Row will move due to sorting',\n rowWillBeHidden: 'Row will hide due to filtering',\n rowWillMoveReasonSearch:\n 'Due to a search filter applied to this table, this row will be hidden as soon as you select another row',\n rowWillMoveReasonFilter:\n \"Due to a filter applied to the column '[COLUMN]', this row will be hidden as soon as you select another row\",\n rowWillMoveReasonSorting:\n \"Due to sorting applied to the column '[COLUMN]', this row will move position as soon as you select another row\",\n },\n },\n filters: {\n button: 'Filters',\n buttons: {\n addNewFilter: 'Add new filter',\n clearFilters: 'Clear all filters',\n },\n comparators: {\n contains: 'Contains',\n doesNotContain: 'Does not contain',\n isEqualTo: 'Is',\n isNotEqualTo: 'Is not',\n isGreaterThan: 'Is greater than',\n isLessThan: 'Is less than',\n isBetween: 'Is between',\n isOneOf: 'Is one of',\n isNoneOf: 'Is none of',\n isAllOf: 'Is all of',\n isEmpty: 'Is empty',\n isNotEmpty: 'Is not empty',\n },\n conditions: {\n and: 'And',\n where: 'Where',\n },\n emptyFilter: {\n condition: 'Condition',\n value: 'Value',\n },\n tooltip: 'Apply filters',\n total: 'Viewing [CURRENT] of [TOTAL]',\n },\n footer: {\n summary: {\n records: 'Records:',\n selected: 'Records selected:',\n },\n },\n rowDensity: {\n tooltip: 'Row density',\n compact: 'compact',\n normal: 'normal',\n comfortable: 'comfortable',\n spacious: 'spacious',\n },\n search: {\n placeholder: 'Search...',\n },\n shortcuts: {\n tooltip: 'View keyboard shortcuts',\n search: 'Search',\n filter: 'Filter',\n previousRow: 'Previous row',\n nextRow: 'Next row',\n editCell: 'Edit cell',\n previousColumn: 'Previous column',\n nextColumn: 'Next column',\n rowClick: 'Activate current row',\n selectRow: 'Select current row',\n selectAllRows: 'Select all rows',\n expandRow: 'Expand current row',\n collapseRow: 'Collapse current row',\n },\n },\n table3: {\n columns: {\n actions: {\n tooltip: 'Row actions',\n },\n drag: {\n tooltip: 'Drag row',\n },\n expansion: {\n collapse: 'Collapse row',\n collapseAll: 'Collapse all rows',\n expand: 'Expand row',\n expandAll: 'Expand all rows',\n },\n menu: {\n freezeFirstColumn: 'Freeze the first column',\n freezeUptoColumn: `Freeze first [TOTAL] columns`,\n freezeColumns: (count = 1) => (count === 1 ? 'Freeze the first column' : `Freeze first ${count} columns`),\n gotoRow: 'Go to',\n hideColumn: 'Hide column',\n unfreezeColumns: 'Unfreeze all columns',\n },\n resize: {\n tooltip: 'Resize column',\n },\n select: {\n deselect: 'Deselect row',\n deselectAll: 'Deselect all rows',\n select: 'Select row',\n selectAll: 'Select all rows',\n },\n },\n columnSettings: {\n search: 'Search column...',\n tooltip: 'Columns',\n button: 'Columns',\n noResults: 'No results',\n },\n editing: {\n actions: {\n tooltip: 'Row actions',\n save: 'Save',\n clear: 'Clear changes',\n exit: 'Exit edit mode',\n },\n buttons: {\n edit: {\n text: 'Edit',\n tooltip: 'Edit',\n },\n },\n rowIndicator: {\n rowWillMove: 'Row will move due to sorting',\n rowWillBeHidden: 'Row will hide due to filtering',\n rowWillMoveReasonSearch:\n 'Due to a search filter applied to this table, this row will be hidden as soon as you select another row',\n rowWillMoveReasonFilter:\n \"Due to a filter applied to the column '[COLUMN]', this row will be hidden as soon as you select another row\",\n rowWillMoveReasonSorting:\n \"Due to sorting applied to the column '[COLUMN]', this row will move position as soon as you select another row\",\n },\n saving: {\n progress: 'Saving...',\n complete: 'Saved',\n },\n },\n filters: {\n button: 'Filters',\n buttons: {\n addFilter: 'Add new filter',\n clearFilters: 'Clear all filters',\n },\n comparators: {\n contains: 'Contains',\n doesNotContain: 'Does not contain',\n isEqualTo: 'Is',\n isNotEqualTo: 'Is not',\n isGreaterThan: 'Is greater than',\n isLessThan: 'Is less than',\n isBetween: 'Is between',\n isOneOf: 'Is one of',\n isNoneOf: 'Is none of',\n isAllOf: 'Is all of',\n isEmpty: 'Is empty',\n isNotEmpty: 'Is not empty',\n isBefore: 'Is before',\n isAfter: 'Is after',\n isOnOrBefore: 'Is on or before',\n isOnOrAfter: 'Is on or after',\n isLessThanOrEqualTo: 'Is less than or equal to',\n isGreaterThanOrEqualTo: 'Is greater than or equal to',\n hasAnyOf: 'Has any of',\n hasAllOf: 'Has all of',\n hasNoneOf: 'Has none of',\n },\n conditions: {\n and: 'And',\n where: 'Where',\n },\n emptyFilter: {\n condition: 'Condition',\n value: 'Value',\n },\n tooltip: 'Apply filters',\n total: 'Viewing [CURRENT] of [TOTAL]',\n },\n fontSize: {\n tooltip: 'Font size',\n sizes: {\n small: 'Small',\n medium: 'Medium',\n large: 'Large',\n },\n },\n footer: {\n summary: {\n count: 'of',\n records: 'Records:',\n selected: 'Records selected:',\n },\n },\n print: {\n error: 'An error occurred while creating a print preview',\n loading: 'Creating a print preview',\n tooltip: 'Print',\n warningDialog: {\n title: 'Extra loading time',\n description:\n 'Please note that printing a large amount of data may result in a slightly longer waiting time due to data loading.',\n checkboxVisibilityLabel: \"Don't show again\",\n cancelButtonText: 'Cancel',\n printButtonText: 'Print',\n },\n },\n rowHeight: {\n tooltip: 'Row height',\n sizes: {\n short: 'Short',\n medium: 'Medium',\n tall: 'Tall',\n extraTall: 'Extra tall',\n },\n },\n search: {\n excludeUnmatchedResults: 'Hide unmatched records',\n placeholder: 'Search...',\n },\n shortcuts: {\n tooltip: 'View keyboard shortcuts',\n search: 'Search',\n filter: 'Filter',\n previousRow: 'Previous row',\n nextRow: 'Next row',\n editCell: 'Edit cell',\n previousColumn: 'Previous column',\n nextColumn: 'Next column',\n rowClick: 'Activate current row',\n selectRow: 'Select current row',\n selectAllRows: 'Select all rows',\n expandRow: 'Expand current row',\n collapseRow: 'Collapse current row',\n },\n otherOptions: {\n tooltip: 'Other options',\n },\n },\n searchInput: {\n button: 'Search',\n findNext: 'Next',\n findPrevious: 'Previous',\n placeholder: 'Search...',\n clear: 'Clear',\n },\n select: {\n allOptionsSelected: 'All',\n },\n select2: {\n allSelect: 'Select all',\n allDeselect: 'Deselect all',\n cancel: 'Cancel',\n chooseColor: 'Pick a color',\n create: 'Create',\n delete: 'Delete',\n save: 'Save',\n search: 'Search...',\n searchOrCreate: 'Search or create...',\n },\n toasts: {\n dismiss: 'Dismiss',\n },\n tour: {\n back: 'Back',\n close: 'Close',\n skip: 'Close and complete',\n last: 'Done',\n next: 'Next',\n open: 'Open',\n },\n drawer: {\n close: 'Close',\n },\n};\n\nexport const defaultLocalizationContext: Localization = {\n locale: 'en-GB',\n texts: defaultLocalisationTexts,\n formatting: {\n date: 'dd.mm.yy',\n },\n};\n\nexport const LocalizationContext = React.createContext<Localization>(defaultLocalizationContext);\nexport interface LocalizationProviderProps {\n children: React.ReactNode;\n localization?: Localization;\n}\nexport const LocalizationProvider: React.FC<LocalizationProviderProps> = ({ localization, children }) => {\n return (\n <LocalizationContext.Provider value={localization ?? defaultLocalizationContext}>{children}</LocalizationContext.Provider>\n );\n};\n\nexport const useLocalization = () => React.useContext(LocalizationContext);\n"],"names":["defaultLocalisationTexts","banner","close","calendar","months","weekdaysShort","weekdays","actions","previousMonth","nextMonth","previousYear","nextYear","today","combobox","tooltip","datepicker","clear","expand","shortcuts","dialog","drag","hanger","header","addAgreement","logout","more","new","search","listbox","loading","empty","allOption","pagination","label","pageSize","showingXofYofTotal","firstPage","firstPageWithShortcut","previousPage","previousPageWithShortcut","nextPage","nextPageWithShortcut","lastPage","lastPageWithShortcut","pageX","table","edit","copy","del","newSubRow","table2","columns","resize","expansion","collapse","collapseAll","expandAll","select","deselect","deselectAll","selectAll","menu","hideColumn","freezeColumns","count","unfreezeColumns","columnSettings","button","noResults","editing","tooltipDisabled","rowIndicator","rowWillMove","rowWillBeHidden","rowWillMoveReasonSearch","rowWillMoveReasonFilter","rowWillMoveReasonSorting","filters","buttons","addNewFilter","clearFilters","comparators","contains","doesNotContain","isEqualTo","isNotEqualTo","isGreaterThan","isLessThan","isBetween","isOneOf","isNoneOf","isAllOf","isEmpty","isNotEmpty","conditions","and","where","emptyFilter","condition","value","total","footer","summary","records","selected","rowDensity","compact","normal","comfortable","spacious","placeholder","filter","previousRow","nextRow","editCell","previousColumn","nextColumn","rowClick","selectRow","selectAllRows","expandRow","collapseRow","table3","freezeFirstColumn","freezeUptoColumn","gotoRow","save","exit","text","saving","progress","complete","addFilter","isBefore","isAfter","isOnOrBefore","isOnOrAfter","isLessThanOrEqualTo","isGreaterThanOrEqualTo","hasAnyOf","hasAllOf","hasNoneOf","fontSize","sizes","small","medium","large","print","error","warningDialog","title","description","checkboxVisibilityLabel","cancelButtonText","printButtonText","rowHeight","short","tall","extraTall","excludeUnmatchedResults","otherOptions","searchInput","findNext","findPrevious","allOptionsSelected","select2","allSelect","allDeselect","cancel","chooseColor","create","delete","searchOrCreate","toasts","dismiss","tour","back","skip","last","next","open","drawer","defaultLocalizationContext","locale","texts","formatting","date","LocalizationContext","React","LocalizationProvider","localization","children","Provider","useLocalization"],"mappings":"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"}
|
|
@@ -1,17 +1,24 @@
|
|
|
1
|
-
import { createElement } from 'react';
|
|
1
|
+
import { createContext, useMemo, createElement } from 'react';
|
|
2
2
|
import { Provider as Provider$1 } from '@radix-ui/react-tooltip';
|
|
3
3
|
import { LocalizationProvider } from './Localization.js';
|
|
4
4
|
import { ToastProvider } from '../Toast/Toaster.js';
|
|
5
5
|
|
|
6
|
+
const TacoContext = /*#__PURE__*/createContext({
|
|
7
|
+
uniqueUserIdentifier: ''
|
|
8
|
+
});
|
|
6
9
|
const Provider = props => {
|
|
7
10
|
const {
|
|
8
11
|
children,
|
|
9
|
-
localization
|
|
12
|
+
localization,
|
|
13
|
+
settings
|
|
10
14
|
} = props;
|
|
15
|
+
const context = useMemo(() => settings, [JSON.stringify(settings)]);
|
|
11
16
|
return /*#__PURE__*/createElement(LocalizationProvider, {
|
|
12
17
|
localization: localization
|
|
13
|
-
}, /*#__PURE__*/createElement(Provider
|
|
18
|
+
}, /*#__PURE__*/createElement(TacoContext.Provider, {
|
|
19
|
+
value: context
|
|
20
|
+
}, /*#__PURE__*/createElement(Provider$1, null, /*#__PURE__*/createElement(ToastProvider, null, children))));
|
|
14
21
|
};
|
|
15
22
|
|
|
16
|
-
export { Provider };
|
|
23
|
+
export { Provider, TacoContext };
|
|
17
24
|
//# sourceMappingURL=Provider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Provider.js","sources":["../../../../../../../src/components/Provider/Provider.tsx"],"sourcesContent":["import * as React from 'react';\nimport * as Tooltip from '@radix-ui/react-tooltip';\nimport { ToastProvider } from '../Toast/Toaster';\nimport { Localization, LocalizationProvider } from './Localization';\n\nexport type ProviderProps = {\n /** Content would be your application */\n children?: any;\n /** Define localized texts and formatted data in your application */\n localization?: Localization;\n};\n\nexport const Provider = (props: ProviderProps): JSX.Element => {\n const { children, localization } = props;\n\n return (\n <LocalizationProvider localization={localization}>\n <
|
|
1
|
+
{"version":3,"file":"Provider.js","sources":["../../../../../../../src/components/Provider/Provider.tsx"],"sourcesContent":["import * as React from 'react';\nimport * as Tooltip from '@radix-ui/react-tooltip';\nimport { ToastProvider } from '../Toast/Toaster';\nimport { Localization, LocalizationProvider } from './Localization';\n\nexport type TacoSettings = {\n uniqueUserIdentifier: string;\n};\n\nexport const TacoContext = React.createContext<TacoSettings>({\n uniqueUserIdentifier: '',\n});\n\nexport type ProviderProps = {\n /** Content would be your application */\n children?: any;\n /** Define localized texts and formatted data in your application */\n localization?: Localization;\n settings: TacoSettings;\n};\n\nexport const Provider = (props: ProviderProps): JSX.Element => {\n const { children, localization, settings } = props;\n\n const context = React.useMemo(() => settings, [JSON.stringify(settings)]);\n\n return (\n <LocalizationProvider localization={localization}>\n <TacoContext.Provider value={context}>\n <Tooltip.Provider>\n <ToastProvider>{children}</ToastProvider>\n </Tooltip.Provider>\n </TacoContext.Provider>\n </LocalizationProvider>\n );\n};\n"],"names":["TacoContext","React","uniqueUserIdentifier","Provider","props","children","localization","settings","context","JSON","stringify","LocalizationProvider","value","Tooltip","ToastProvider"],"mappings":";;;;;MASaA,WAAW,gBAAGC,aAAmB,CAAe;EACzDC,oBAAoB,EAAE;CACzB;MAUYC,QAAQ,GAAIC,KAAoB;EACzC,MAAM;IAAEC,QAAQ;IAAEC,YAAY;IAAEC;GAAU,GAAGH,KAAK;EAElD,MAAMI,OAAO,GAAGP,OAAa,CAAC,MAAMM,QAAQ,EAAE,CAACE,IAAI,CAACC,SAAS,CAACH,QAAQ,CAAC,CAAC,CAAC;EAEzE,oBACIN,cAACU,oBAAoB;IAACL,YAAY,EAAEA;kBAChCL,cAACD,WAAW,CAACG,QAAQ;IAACS,KAAK,EAAEJ;kBACzBP,cAACY,UAAgB,qBACbZ,cAACa,aAAa,QAAET,QAAQ,CAAiB,CAC1B,CACA,CACJ;AAE/B;;;;"}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import React__default from 'react';
|
|
2
2
|
import cn from 'classnames';
|
|
3
|
+
import { Icon } from '../Icon/Icon.js';
|
|
3
4
|
import { useMergedRef } from '../../hooks/useMergedRef.js';
|
|
4
5
|
import { useGlobalKeyDown } from '../../hooks/useGlobalKeyDown.js';
|
|
5
6
|
import { IconButton } from '../IconButton/IconButton.js';
|
|
6
7
|
import { useLocalization } from '../Provider/Localization.js';
|
|
7
8
|
import { Input } from '../Input/Input.js';
|
|
9
|
+
import { Spinner } from '../Spinner/Spinner.js';
|
|
8
10
|
import { Shortcut } from '../Shortcut/Shortcut.js';
|
|
9
11
|
|
|
10
12
|
const SearchInput2 = /*#__PURE__*/React__default.forwardRef(function SearchInput2(props, ref) {
|
|
@@ -12,9 +14,10 @@ const SearchInput2 = /*#__PURE__*/React__default.forwardRef(function SearchInput
|
|
|
12
14
|
const {
|
|
13
15
|
findCurrent,
|
|
14
16
|
findTotal,
|
|
17
|
+
loading = false,
|
|
18
|
+
onChange: handleChange,
|
|
15
19
|
onClickFindNext: handleClickFindNext,
|
|
16
20
|
onClickFindPrevious: handleClickFindPrevious,
|
|
17
|
-
onSearch: handleSearch,
|
|
18
21
|
settingsContent,
|
|
19
22
|
shortcut,
|
|
20
23
|
value,
|
|
@@ -22,13 +25,11 @@ const SearchInput2 = /*#__PURE__*/React__default.forwardRef(function SearchInput
|
|
|
22
25
|
} = props;
|
|
23
26
|
const internalRef = useMergedRef(ref);
|
|
24
27
|
const settingsRef = React__default.useRef(null);
|
|
25
|
-
const [internalValue, setInternalValue] = React__default.useState(value !== null && value !== void 0 ? value : '');
|
|
26
28
|
const [focused, setFocused] = React__default.useState(false);
|
|
27
29
|
const {
|
|
28
30
|
texts
|
|
29
31
|
} = useLocalization();
|
|
30
32
|
const isActive = value === null || value === void 0 ? void 0 : value.length;
|
|
31
|
-
const isSynced = internalValue === value;
|
|
32
33
|
const hasFind = handleClickFindNext && handleClickFindPrevious && findCurrent !== undefined && findTotal !== undefined;
|
|
33
34
|
useGlobalKeyDown(shortcut, event => {
|
|
34
35
|
if (document.activeElement !== internalRef.current) {
|
|
@@ -37,39 +38,25 @@ const SearchInput2 = /*#__PURE__*/React__default.forwardRef(function SearchInput
|
|
|
37
38
|
(_internalRef$current = internalRef.current) === null || _internalRef$current === void 0 ? void 0 : _internalRef$current.focus();
|
|
38
39
|
}
|
|
39
40
|
});
|
|
40
|
-
const handleSubmit = () => {
|
|
41
|
-
handleSearch(internalValue);
|
|
42
|
-
};
|
|
43
41
|
const handleBlur = event => {
|
|
44
42
|
var _settingsRef$current, _attributes$onBlur;
|
|
45
|
-
// trigger searches when leaving the field
|
|
46
|
-
if (!isSynced) {
|
|
47
|
-
handleSubmit();
|
|
48
|
-
}
|
|
49
43
|
if (settingsRef.current && (settingsRef.current === event.relatedTarget || (_settingsRef$current = settingsRef.current) !== null && _settingsRef$current !== void 0 && _settingsRef$current.contains(event.relatedTarget))) {
|
|
50
44
|
return;
|
|
51
45
|
}
|
|
52
46
|
setFocused(false);
|
|
53
47
|
(_attributes$onBlur = attributes.onBlur) === null || _attributes$onBlur === void 0 ? void 0 : _attributes$onBlur.call(attributes, event);
|
|
54
48
|
};
|
|
55
|
-
const handleChange = event => {
|
|
56
|
-
setInternalValue(event.target.value);
|
|
57
|
-
if (!event.target.value) {
|
|
58
|
-
handleClear();
|
|
59
|
-
}
|
|
60
|
-
};
|
|
61
49
|
const handleClear = () => {
|
|
62
50
|
requestAnimationFrame(() => {
|
|
63
51
|
var _internalRef$current2;
|
|
64
52
|
return (_internalRef$current2 = internalRef.current) === null || _internalRef$current2 === void 0 ? void 0 : _internalRef$current2.focus();
|
|
65
53
|
});
|
|
66
|
-
|
|
67
|
-
handleSearch('');
|
|
54
|
+
handleChange('');
|
|
68
55
|
};
|
|
69
56
|
const handleFocus = event => {
|
|
70
57
|
var _attributes$onFocus;
|
|
71
|
-
(_attributes$onFocus = attributes.onFocus) === null || _attributes$onFocus === void 0 ? void 0 : _attributes$onFocus.call(attributes, event);
|
|
72
58
|
setFocused(true);
|
|
59
|
+
(_attributes$onFocus = attributes.onFocus) === null || _attributes$onFocus === void 0 ? void 0 : _attributes$onFocus.call(attributes, event);
|
|
73
60
|
};
|
|
74
61
|
const handleKeyDown = event => {
|
|
75
62
|
var _props$onKeyDown;
|
|
@@ -79,14 +66,12 @@ const SearchInput2 = /*#__PURE__*/React__default.forwardRef(function SearchInput
|
|
|
79
66
|
}
|
|
80
67
|
if (event.key === 'Enter') {
|
|
81
68
|
event.preventDefault();
|
|
82
|
-
if (hasFind && isActive
|
|
69
|
+
if (hasFind && isActive) {
|
|
83
70
|
if (event.shiftKey) {
|
|
84
71
|
handleClickFindPrevious === null || handleClickFindPrevious === void 0 ? void 0 : handleClickFindPrevious();
|
|
85
72
|
} else {
|
|
86
73
|
handleClickFindNext === null || handleClickFindNext === void 0 ? void 0 : handleClickFindNext();
|
|
87
74
|
}
|
|
88
|
-
} else {
|
|
89
|
-
handleSearch(internalValue);
|
|
90
75
|
}
|
|
91
76
|
return;
|
|
92
77
|
}
|
|
@@ -96,8 +81,8 @@ const SearchInput2 = /*#__PURE__*/React__default.forwardRef(function SearchInput
|
|
|
96
81
|
}
|
|
97
82
|
};
|
|
98
83
|
let postfix;
|
|
99
|
-
if (!attributes.disabled && !attributes.readOnly && (
|
|
100
|
-
if (
|
|
84
|
+
if (!attributes.disabled && !attributes.readOnly && (value || focused)) {
|
|
85
|
+
if (value) {
|
|
101
86
|
postfix = /*#__PURE__*/React__default.createElement(IconButton, {
|
|
102
87
|
"aria-label": texts.searchInput.clear,
|
|
103
88
|
className: "scale-75 !bg-transparent hover:!bg-black/[0.08] [&>svg]:scale-125",
|
|
@@ -112,7 +97,9 @@ const SearchInput2 = /*#__PURE__*/React__default.forwardRef(function SearchInput
|
|
|
112
97
|
if (hasFind && isActive) {
|
|
113
98
|
postfix = /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement("span", {
|
|
114
99
|
className: "text-grey-700 flex h-4 items-center border-r border-black/[0.25] pr-2"
|
|
115
|
-
},
|
|
100
|
+
}, loading ? /*#__PURE__*/React__default.createElement(Spinner, {
|
|
101
|
+
className: "h-4 w-4"
|
|
102
|
+
}) : `${findCurrent !== null && findCurrent !== void 0 ? findCurrent : 0}/${findTotal !== null && findTotal !== void 0 ? findTotal : 0}`), findCurrent ? /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(IconButton, {
|
|
116
103
|
"aria-label": texts.searchInput.findPrevious,
|
|
117
104
|
className: "scale-75 !bg-transparent hover:!bg-black/[0.08] [&>svg]:scale-125",
|
|
118
105
|
icon: "chevron-up",
|
|
@@ -135,7 +122,7 @@ const SearchInput2 = /*#__PURE__*/React__default.forwardRef(function SearchInput
|
|
|
135
122
|
})) : texts.searchInput.findNext
|
|
136
123
|
})) : null, postfix);
|
|
137
124
|
}
|
|
138
|
-
} else if (shortcut && !focused && !
|
|
125
|
+
} else if (shortcut && !focused && !value) {
|
|
139
126
|
postfix = /*#__PURE__*/React__default.createElement(Shortcut, {
|
|
140
127
|
keys: shortcut,
|
|
141
128
|
onClickCapture: () => {
|
|
@@ -145,38 +132,37 @@ const SearchInput2 = /*#__PURE__*/React__default.forwardRef(function SearchInput
|
|
|
145
132
|
});
|
|
146
133
|
}
|
|
147
134
|
const className = cn('peer !pl-7', hasFind ? {
|
|
148
|
-
'!w-48': !
|
|
149
|
-
'!w-72':
|
|
135
|
+
'!w-48': !value && !focused,
|
|
136
|
+
'!w-72': value || focused
|
|
150
137
|
} : '!w-48', {
|
|
151
138
|
'!wcag-blue-100': isActive
|
|
152
139
|
}, props.className);
|
|
140
|
+
const icon = /*#__PURE__*/React__default.createElement(Icon, {
|
|
141
|
+
"aria-label": texts.searchInput.button,
|
|
142
|
+
className: "-ml-0.5 scale-95",
|
|
143
|
+
name: "search",
|
|
144
|
+
onClickCapture: () => {
|
|
145
|
+
var _internalRef$current4;
|
|
146
|
+
return (_internalRef$current4 = internalRef.current) === null || _internalRef$current4 === void 0 ? void 0 : _internalRef$current4.focus();
|
|
147
|
+
}
|
|
148
|
+
});
|
|
153
149
|
const input = /*#__PURE__*/React__default.createElement(Input, Object.assign({}, attributes, {
|
|
154
150
|
"aria-label": (_attributes$ariaLabe = attributes['aria-label']) !== null && _attributes$ariaLabe !== void 0 ? _attributes$ariaLabe : texts.searchInput.placeholder,
|
|
155
151
|
className: className,
|
|
156
152
|
"data-taco": "search-input2",
|
|
157
153
|
onBlur: handleBlur,
|
|
158
|
-
onChange: handleChange,
|
|
154
|
+
onChange: event => handleChange(event.target.value),
|
|
159
155
|
onFocus: handleFocus,
|
|
160
156
|
onKeyDown: handleKeyDown,
|
|
161
157
|
placeholder: (_attributes$placehold = attributes.placeholder) !== null && _attributes$placehold !== void 0 ? _attributes$placehold : texts.searchInput.placeholder,
|
|
162
|
-
prefix:
|
|
163
|
-
"aria-label": texts.searchInput.button,
|
|
164
|
-
className: "scale-75 !bg-transparent hover:!bg-black/[0.08] [&>svg]:scale-125",
|
|
165
|
-
disabled: attributes.disabled || attributes.readOnly,
|
|
166
|
-
icon: "search",
|
|
167
|
-
onMouseDown: handleSubmit,
|
|
168
|
-
tabIndex: -1,
|
|
169
|
-
tooltip: focused && !isSynced ? /*#__PURE__*/React__default.createElement(React__default.Fragment, null, texts.searchInput.button, " ", /*#__PURE__*/React__default.createElement(Shortcut, {
|
|
170
|
-
keys: "Enter"
|
|
171
|
-
})) : texts.searchInput.button
|
|
172
|
-
}),
|
|
158
|
+
prefix: icon,
|
|
173
159
|
postfix: postfix,
|
|
174
160
|
ref: internalRef,
|
|
175
|
-
value:
|
|
161
|
+
value: value !== null && value !== void 0 ? value : ''
|
|
176
162
|
}));
|
|
177
163
|
if (settingsContent) {
|
|
178
164
|
const handleSettingsBlur = event => {
|
|
179
|
-
if (event.currentTarget.contains(event.relatedTarget)) {
|
|
165
|
+
if (event.currentTarget.contains(event.relatedTarget) || event.currentTarget.contains(event.target)) {
|
|
180
166
|
return;
|
|
181
167
|
}
|
|
182
168
|
setFocused(false);
|
|
@@ -190,8 +176,8 @@ const SearchInput2 = /*#__PURE__*/React__default.forwardRef(function SearchInput
|
|
|
190
176
|
}, input, focused ? /*#__PURE__*/React__default.createElement("div", {
|
|
191
177
|
className: "border-grey-300 absolute left-0 right-0 top-full z-10 flex flex-col gap-y-4 rounded-b border border-t-0 bg-white p-3 shadow",
|
|
192
178
|
onClickCapture: () => {
|
|
193
|
-
var _internalRef$
|
|
194
|
-
return (_internalRef$
|
|
179
|
+
var _internalRef$current5;
|
|
180
|
+
return (_internalRef$current5 = internalRef.current) === null || _internalRef$current5 === void 0 ? void 0 : _internalRef$current5.focus();
|
|
195
181
|
},
|
|
196
182
|
tabIndex: -1
|
|
197
183
|
}, settingsContent) : null);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SearchInput2.js","sources":["../../../../../../../src/components/SearchInput2/SearchInput2.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\nimport { useGlobalKeyDown } from '../../hooks/useGlobalKeyDown';\nimport { useLocalization } from '../Provider/Localization';\nimport { IconButton } from '../IconButton/IconButton';\nimport { Input } from '../Input/Input';\nimport { Shortcut } from '../Shortcut/Shortcut';\nimport { useMergedRef } from '../../hooks/useMergedRef';\nimport { KeyDownHandlerOptions } from '../../utils/keyboard';\n\ninterface CommonSearchInput2Props\n extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'defaultValue' | 'onChange' | 'value'> {\n onSearch: (value: string) => void;\n settingsContent?: JSX.Element;\n shortcut?: string | KeyDownHandlerOptions;\n value?: string;\n}\n\ninterface BasicSearchInput2Props extends CommonSearchInput2Props {\n findCurrent?: never;\n findTotal?: never;\n onClickFindNext?: never;\n onClickFindPrevious?: never;\n}\n\ninterface ComplexSearchInput2Props extends CommonSearchInput2Props {\n findCurrent: number | null;\n findTotal: number | null;\n onClickFindNext: () => void;\n onClickFindPrevious: () => void;\n}\n\nexport type SearchInput2Props = BasicSearchInput2Props | ComplexSearchInput2Props;\n\nexport const SearchInput2 = React.forwardRef(function SearchInput2(props: SearchInput2Props, ref: React.Ref<HTMLInputElement>) {\n const {\n findCurrent,\n findTotal,\n onClickFindNext: handleClickFindNext,\n onClickFindPrevious: handleClickFindPrevious,\n onSearch: handleSearch,\n settingsContent,\n shortcut,\n value,\n ...attributes\n } = props;\n const internalRef = useMergedRef<HTMLInputElement>(ref);\n const settingsRef = React.useRef<HTMLDivElement>(null);\n const [internalValue, setInternalValue] = React.useState(value ?? '');\n const [focused, setFocused] = React.useState(false);\n const { texts } = useLocalization();\n const isActive = value?.length;\n const isSynced = internalValue === value;\n const hasFind = handleClickFindNext && handleClickFindPrevious && findCurrent !== undefined && findTotal !== undefined;\n\n useGlobalKeyDown(shortcut, (event: KeyboardEvent) => {\n if (document.activeElement !== internalRef.current) {\n event.preventDefault();\n internalRef.current?.focus();\n }\n });\n\n const handleSubmit = () => {\n handleSearch(internalValue);\n };\n\n const handleBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n // trigger searches when leaving the field\n if (!isSynced) {\n handleSubmit();\n }\n\n if (\n settingsRef.current &&\n (settingsRef.current === event.relatedTarget || settingsRef.current?.contains(event.relatedTarget))\n ) {\n return;\n }\n\n setFocused(false);\n attributes.onBlur?.(event);\n };\n\n const handleChange = event => {\n setInternalValue(event.target.value);\n\n if (!event.target.value) {\n handleClear();\n }\n };\n\n const handleClear = () => {\n requestAnimationFrame(() => internalRef.current?.focus());\n setInternalValue('');\n handleSearch('');\n };\n\n const handleFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n attributes.onFocus?.(event);\n setFocused(true);\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement>): void => {\n props.onKeyDown?.(event);\n\n if (event.isDefaultPrevented()) {\n return;\n }\n\n if (event.key === 'Enter') {\n event.preventDefault();\n\n if (hasFind && isActive && isSynced) {\n if (event.shiftKey) {\n handleClickFindPrevious?.();\n } else {\n handleClickFindNext?.();\n }\n } else {\n handleSearch(internalValue);\n }\n return;\n }\n\n if (event.key === 'Escape') {\n handleClear();\n return;\n }\n };\n\n let postfix;\n\n if (!attributes.disabled && !attributes.readOnly && (internalValue || focused)) {\n if (internalValue) {\n postfix = (\n <IconButton\n aria-label={texts.searchInput.clear}\n className=\"scale-75 !bg-transparent hover:!bg-black/[0.08] [&>svg]:scale-125\"\n icon=\"close\"\n onMouseDown={handleClear}\n tabIndex={-1}\n tooltip={\n focused ? (\n <>\n {texts.searchInput.clear} <Shortcut keys=\"Escape\" />\n </>\n ) : (\n texts.searchInput.clear\n )\n }\n />\n );\n }\n\n if (hasFind && isActive) {\n postfix = (\n <>\n <span className=\"text-grey-700 flex h-4 items-center border-r border-black/[0.25] pr-2\">\n {findCurrent ?? 0}/{findTotal ?? 0}\n </span>\n {findCurrent ? (\n <>\n <IconButton\n aria-label={texts.searchInput.findPrevious}\n className=\"scale-75 !bg-transparent hover:!bg-black/[0.08] [&>svg]:scale-125\"\n icon=\"chevron-up\"\n onMouseDown={handleClickFindPrevious}\n tabIndex={-1}\n tooltip={\n focused ? (\n <>\n {texts.searchInput.findPrevious} <Shortcut keys={{ shift: true, key: 'Enter' }} />\n </>\n ) : (\n texts.searchInput.findPrevious\n )\n }\n />\n <IconButton\n aria-label={texts.searchInput.findNext}\n className=\"scale-75 !bg-transparent hover:!bg-black/[0.08] [&>svg]:scale-125\"\n icon=\"chevron-down\"\n onMouseDown={handleClickFindNext}\n tabIndex={-1}\n tooltip={\n focused ? (\n <>\n {texts.searchInput.findNext} <Shortcut keys=\"Enter\" />\n </>\n ) : (\n texts.searchInput.findNext\n )\n }\n />\n </>\n ) : null}\n {postfix}\n </>\n );\n }\n } else if (shortcut && !focused && !internalValue) {\n postfix = <Shortcut keys={shortcut} onClickCapture={() => internalRef.current?.focus()} />;\n }\n\n const className = cn(\n 'peer !pl-7',\n hasFind\n ? {\n '!w-48': !internalValue && !focused,\n '!w-72': internalValue || focused,\n }\n : '!w-48',\n {\n '!wcag-blue-100': isActive,\n },\n props.className\n );\n\n const input = (\n <Input\n {...attributes}\n aria-label={attributes['aria-label'] ?? texts.searchInput.placeholder}\n className={className}\n data-taco=\"search-input2\"\n onBlur={handleBlur}\n onChange={handleChange}\n onFocus={handleFocus}\n onKeyDown={handleKeyDown}\n placeholder={attributes.placeholder ?? texts.searchInput.placeholder}\n prefix={\n <IconButton\n aria-label={texts.searchInput.button}\n className=\"scale-75 !bg-transparent hover:!bg-black/[0.08] [&>svg]:scale-125\"\n disabled={attributes.disabled || attributes.readOnly}\n icon=\"search\"\n onMouseDown={handleSubmit}\n tabIndex={-1}\n tooltip={\n focused && !isSynced ? (\n <>\n {texts.searchInput.button} <Shortcut keys=\"Enter\" />\n </>\n ) : (\n texts.searchInput.button\n )\n }\n />\n }\n postfix={postfix}\n ref={internalRef}\n value={internalValue}\n />\n );\n\n if (settingsContent) {\n const handleSettingsBlur = event => {\n if (event.currentTarget.contains(event.relatedTarget)) {\n return;\n }\n setFocused(false);\n };\n\n return (\n <div\n className={cn('relative', { \"[&_[data-taco='input-container']]:z-20\": focused })}\n onBlur={handleSettingsBlur}\n ref={settingsRef}>\n {input}\n {focused ? (\n <div\n className=\"border-grey-300 absolute left-0 right-0 top-full z-10 flex flex-col gap-y-4 rounded-b border border-t-0 bg-white p-3 shadow\"\n onClickCapture={() => internalRef.current?.focus()}\n tabIndex={-1}>\n {settingsContent}\n </div>\n ) : null}\n </div>\n );\n }\n\n return input;\n});\n"],"names":["SearchInput2","React","forwardRef","props","ref","findCurrent","findTotal","onClickFindNext","handleClickFindNext","onClickFindPrevious","handleClickFindPrevious","onSearch","handleSearch","settingsContent","shortcut","value","attributes","internalRef","useMergedRef","settingsRef","useRef","internalValue","setInternalValue","useState","focused","setFocused","texts","useLocalization","isActive","length","isSynced","hasFind","undefined","useGlobalKeyDown","event","document","activeElement","current","preventDefault","focus","handleSubmit","handleBlur","relatedTarget","contains","onBlur","handleChange","target","handleClear","requestAnimationFrame","handleFocus","onFocus","handleKeyDown","onKeyDown","isDefaultPrevented","key","shiftKey","postfix","disabled","readOnly","IconButton","searchInput","clear","className","icon","onMouseDown","tabIndex","tooltip","Shortcut","keys","findPrevious","shift","findNext","onClickCapture","cn","input","Input","placeholder","onChange","prefix","button","handleSettingsBlur","currentTarget"],"mappings":";;;;;;;;;MAkCaA,YAAY,gBAAGC,cAAK,CAACC,UAAU,CAAC,SAASF,YAAY,CAACG,KAAwB,EAAEC,GAAgC;;EACzH,MAAM;IACFC,WAAW;IACXC,SAAS;IACTC,eAAe,EAAEC,mBAAmB;IACpCC,mBAAmB,EAAEC,uBAAuB;IAC5CC,QAAQ,EAAEC,YAAY;IACtBC,eAAe;IACfC,QAAQ;IACRC,KAAK;IACL,GAAGC;GACN,GAAGb,KAAK;EACT,MAAMc,WAAW,GAAGC,YAAY,CAAmBd,GAAG,CAAC;EACvD,MAAMe,WAAW,GAAGlB,cAAK,CAACmB,MAAM,CAAiB,IAAI,CAAC;EACtD,MAAM,CAACC,aAAa,EAAEC,gBAAgB,CAAC,GAAGrB,cAAK,CAACsB,QAAQ,CAACR,KAAK,aAALA,KAAK,cAALA,KAAK,GAAI,EAAE,CAAC;EACrE,MAAM,CAACS,OAAO,EAAEC,UAAU,CAAC,GAAGxB,cAAK,CAACsB,QAAQ,CAAC,KAAK,CAAC;EACnD,MAAM;IAAEG;GAAO,GAAGC,eAAe,EAAE;EACnC,MAAMC,QAAQ,GAAGb,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEc,MAAM;EAC9B,MAAMC,QAAQ,GAAGT,aAAa,KAAKN,KAAK;EACxC,MAAMgB,OAAO,GAAGvB,mBAAmB,IAAIE,uBAAuB,IAAIL,WAAW,KAAK2B,SAAS,IAAI1B,SAAS,KAAK0B,SAAS;EAEtHC,gBAAgB,CAACnB,QAAQ,EAAGoB,KAAoB;IAC5C,IAAIC,QAAQ,CAACC,aAAa,KAAKnB,WAAW,CAACoB,OAAO,EAAE;MAAA;MAChDH,KAAK,CAACI,cAAc,EAAE;MACtB,wBAAArB,WAAW,CAACoB,OAAO,yDAAnB,qBAAqBE,KAAK,EAAE;;GAEnC,CAAC;EAEF,MAAMC,YAAY,GAAG;IACjB5B,YAAY,CAACS,aAAa,CAAC;GAC9B;EAED,MAAMoB,UAAU,GAAIP,KAAyC;;;IAEzD,IAAI,CAACJ,QAAQ,EAAE;MACXU,YAAY,EAAE;;IAGlB,IACIrB,WAAW,CAACkB,OAAO,KAClBlB,WAAW,CAACkB,OAAO,KAAKH,KAAK,CAACQ,aAAa,4BAAIvB,WAAW,CAACkB,OAAO,iDAAnB,qBAAqBM,QAAQ,CAACT,KAAK,CAACQ,aAAa,CAAC,CAAC,EACrG;MACE;;IAGJjB,UAAU,CAAC,KAAK,CAAC;IACjB,sBAAAT,UAAU,CAAC4B,MAAM,uDAAjB,wBAAA5B,UAAU,EAAUkB,KAAK,CAAC;GAC7B;EAED,MAAMW,YAAY,GAAGX,KAAK;IACtBZ,gBAAgB,CAACY,KAAK,CAACY,MAAM,CAAC/B,KAAK,CAAC;IAEpC,IAAI,CAACmB,KAAK,CAACY,MAAM,CAAC/B,KAAK,EAAE;MACrBgC,WAAW,EAAE;;GAEpB;EAED,MAAMA,WAAW,GAAG;IAChBC,qBAAqB,CAAC;MAAA;MAAA,gCAAM/B,WAAW,CAACoB,OAAO,0DAAnB,sBAAqBE,KAAK,EAAE;MAAC;IACzDjB,gBAAgB,CAAC,EAAE,CAAC;IACpBV,YAAY,CAAC,EAAE,CAAC;GACnB;EAED,MAAMqC,WAAW,GAAIf,KAAyC;;IAC1D,uBAAAlB,UAAU,CAACkC,OAAO,wDAAlB,yBAAAlC,UAAU,EAAWkB,KAAK,CAAC;IAC3BT,UAAU,CAAC,IAAI,CAAC;GACnB;EAED,MAAM0B,aAAa,GAAIjB,KAA4C;;IAC/D,oBAAA/B,KAAK,CAACiD,SAAS,qDAAf,sBAAAjD,KAAK,EAAa+B,KAAK,CAAC;IAExB,IAAIA,KAAK,CAACmB,kBAAkB,EAAE,EAAE;MAC5B;;IAGJ,IAAInB,KAAK,CAACoB,GAAG,KAAK,OAAO,EAAE;MACvBpB,KAAK,CAACI,cAAc,EAAE;MAEtB,IAAIP,OAAO,IAAIH,QAAQ,IAAIE,QAAQ,EAAE;QACjC,IAAII,KAAK,CAACqB,QAAQ,EAAE;UAChB7C,uBAAuB,aAAvBA,uBAAuB,uBAAvBA,uBAAuB,EAAI;SAC9B,MAAM;UACHF,mBAAmB,aAAnBA,mBAAmB,uBAAnBA,mBAAmB,EAAI;;OAE9B,MAAM;QACHI,YAAY,CAACS,aAAa,CAAC;;MAE/B;;IAGJ,IAAIa,KAAK,CAACoB,GAAG,KAAK,QAAQ,EAAE;MACxBP,WAAW,EAAE;MACb;;GAEP;EAED,IAAIS,OAAO;EAEX,IAAI,CAACxC,UAAU,CAACyC,QAAQ,IAAI,CAACzC,UAAU,CAAC0C,QAAQ,KAAKrC,aAAa,IAAIG,OAAO,CAAC,EAAE;IAC5E,IAAIH,aAAa,EAAE;MACfmC,OAAO,gBACHvD,6BAAC0D,UAAU;sBACKjC,KAAK,CAACkC,WAAW,CAACC,KAAK;QACnCC,SAAS,EAAC,mEAAmE;QAC7EC,IAAI,EAAC,OAAO;QACZC,WAAW,EAAEjB,WAAW;QACxBkB,QAAQ,EAAE,CAAC,CAAC;QACZC,OAAO,EACH1C,OAAO,gBACHvB,4DACKyB,KAAK,CAACkC,WAAW,CAACC,KAAK,oBAAE5D,6BAACkE,QAAQ;UAACC,IAAI,EAAC;UAAW,CACrD,GAEH1C,KAAK,CAACkC,WAAW,CAACC;QAIjC;;IAGL,IAAI9B,OAAO,IAAIH,QAAQ,EAAE;MACrB4B,OAAO,gBACHvD,yEACIA;QAAM6D,SAAS,EAAC;SACXzD,WAAW,aAAXA,WAAW,cAAXA,WAAW,GAAI,CAAC,OAAGC,SAAS,aAATA,SAAS,cAATA,SAAS,GAAI,CAAC,CAC/B,EACND,WAAW,gBACRJ,yEACIA,6BAAC0D,UAAU;sBACKjC,KAAK,CAACkC,WAAW,CAACS,YAAY;QAC1CP,SAAS,EAAC,mEAAmE;QAC7EC,IAAI,EAAC,YAAY;QACjBC,WAAW,EAAEtD,uBAAuB;QACpCuD,QAAQ,EAAE,CAAC,CAAC;QACZC,OAAO,EACH1C,OAAO,gBACHvB,4DACKyB,KAAK,CAACkC,WAAW,CAACS,YAAY,oBAAEpE,6BAACkE,QAAQ;UAACC,IAAI,EAAE;YAAEE,KAAK,EAAE,IAAI;YAAEhB,GAAG,EAAE;;UAAa,CACnF,GAEH5B,KAAK,CAACkC,WAAW,CAACS;QAG5B,eACFpE,6BAAC0D,UAAU;sBACKjC,KAAK,CAACkC,WAAW,CAACW,QAAQ;QACtCT,SAAS,EAAC,mEAAmE;QAC7EC,IAAI,EAAC,cAAc;QACnBC,WAAW,EAAExD,mBAAmB;QAChCyD,QAAQ,EAAE,CAAC,CAAC;QACZC,OAAO,EACH1C,OAAO,gBACHvB,4DACKyB,KAAK,CAACkC,WAAW,CAACW,QAAQ,oBAAEtE,6BAACkE,QAAQ;UAACC,IAAI,EAAC;UAAU,CACvD,GAEH1C,KAAK,CAACkC,WAAW,CAACW;QAG5B,CACH,GACH,IAAI,EACPf,OAAO,CAEf;;GAER,MAAM,IAAI1C,QAAQ,IAAI,CAACU,OAAO,IAAI,CAACH,aAAa,EAAE;IAC/CmC,OAAO,gBAAGvD,6BAACkE,QAAQ;MAACC,IAAI,EAAEtD,QAAQ;MAAE0D,cAAc,EAAE;QAAA;QAAA,gCAAMvD,WAAW,CAACoB,OAAO,0DAAnB,sBAAqBE,KAAK,EAAE;;MAAI;;EAG9F,MAAMuB,SAAS,GAAGW,EAAE,CAChB,YAAY,EACZ1C,OAAO,GACD;IACI,OAAO,EAAE,CAACV,aAAa,IAAI,CAACG,OAAO;IACnC,OAAO,EAAEH,aAAa,IAAIG;GAC7B,GACD,OAAO,EACb;IACI,gBAAgB,EAAEI;GACrB,EACDzB,KAAK,CAAC2D,SAAS,CAClB;EAED,MAAMY,KAAK,gBACPzE,6BAAC0E,KAAK,oBACE3D,UAAU;0CACFA,UAAU,CAAC,YAAY,CAAC,uEAAIU,KAAK,CAACkC,WAAW,CAACgB,WAAW;IACrEd,SAAS,EAAEA,SAAS;iBACV,eAAe;IACzBlB,MAAM,EAAEH,UAAU;IAClBoC,QAAQ,EAAEhC,YAAY;IACtBK,OAAO,EAAED,WAAW;IACpBG,SAAS,EAAED,aAAa;IACxByB,WAAW,2BAAE5D,UAAU,CAAC4D,WAAW,yEAAIlD,KAAK,CAACkC,WAAW,CAACgB,WAAW;IACpEE,MAAM,eACF7E,6BAAC0D,UAAU;oBACKjC,KAAK,CAACkC,WAAW,CAACmB,MAAM;MACpCjB,SAAS,EAAC,mEAAmE;MAC7EL,QAAQ,EAAEzC,UAAU,CAACyC,QAAQ,IAAIzC,UAAU,CAAC0C,QAAQ;MACpDK,IAAI,EAAC,QAAQ;MACbC,WAAW,EAAExB,YAAY;MACzByB,QAAQ,EAAE,CAAC,CAAC;MACZC,OAAO,EACH1C,OAAO,IAAI,CAACM,QAAQ,gBAChB7B,4DACKyB,KAAK,CAACkC,WAAW,CAACmB,MAAM,oBAAE9E,6BAACkE,QAAQ;QAACC,IAAI,EAAC;QAAU,CACrD,GAEH1C,KAAK,CAACkC,WAAW,CAACmB;MAG5B;IAENvB,OAAO,EAAEA,OAAO;IAChBpD,GAAG,EAAEa,WAAW;IAChBF,KAAK,EAAEM;KAEd;EAED,IAAIR,eAAe,EAAE;IACjB,MAAMmE,kBAAkB,GAAG9C,KAAK;MAC5B,IAAIA,KAAK,CAAC+C,aAAa,CAACtC,QAAQ,CAACT,KAAK,CAACQ,aAAa,CAAC,EAAE;QACnD;;MAEJjB,UAAU,CAAC,KAAK,CAAC;KACpB;IAED,oBACIxB;MACI6D,SAAS,EAAEW,EAAE,CAAC,UAAU,EAAE;QAAE,wCAAwC,EAAEjD;OAAS,CAAC;MAChFoB,MAAM,EAAEoC,kBAAkB;MAC1B5E,GAAG,EAAEe;OACJuD,KAAK,EACLlD,OAAO,gBACJvB;MACI6D,SAAS,EAAC,6HAA6H;MACvIU,cAAc,EAAE;QAAA;QAAA,gCAAMvD,WAAW,CAACoB,OAAO,0DAAnB,sBAAqBE,KAAK,EAAE;;MAClD0B,QAAQ,EAAE,CAAC;OACVpD,eAAe,CACd,GACN,IAAI,CACN;;EAId,OAAO6D,KAAK;AAChB,CAAC;;;;"}
|
|
1
|
+
{"version":3,"file":"SearchInput2.js","sources":["../../../../../../../src/components/SearchInput2/SearchInput2.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\nimport { useGlobalKeyDown } from '../../hooks/useGlobalKeyDown';\nimport { useLocalization } from '../Provider/Localization';\nimport { IconButton } from '../IconButton/IconButton';\nimport { Input } from '../Input/Input';\nimport { Shortcut } from '../Shortcut/Shortcut';\nimport { useMergedRef } from '../../hooks/useMergedRef';\nimport { KeyDownHandlerOptions } from '../../utils/keyboard';\nimport { Spinner } from '../Spinner/Spinner';\nimport { Icon } from '../Icon/Icon';\n\ninterface CommonSearchInput2Props\n extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'defaultValue' | 'onChange' | 'value'> {\n loading?: boolean;\n onChange: (value: string) => void;\n settingsContent?: JSX.Element;\n shortcut?: string | KeyDownHandlerOptions;\n value?: string;\n}\n\ninterface BasicSearchInput2Props extends CommonSearchInput2Props {\n findCurrent?: never;\n findTotal?: never;\n onClickFindNext?: never;\n onClickFindPrevious?: never;\n}\n\ninterface ComplexSearchInput2Props extends CommonSearchInput2Props {\n findCurrent: number | null;\n findTotal: number | null;\n onClickFindNext: () => void;\n onClickFindPrevious: () => void;\n}\n\nexport type SearchInput2Props = BasicSearchInput2Props | ComplexSearchInput2Props;\n\nexport const SearchInput2 = React.forwardRef(function SearchInput2(props: SearchInput2Props, ref: React.Ref<HTMLInputElement>) {\n const {\n findCurrent,\n findTotal,\n loading = false,\n onChange: handleChange,\n onClickFindNext: handleClickFindNext,\n onClickFindPrevious: handleClickFindPrevious,\n settingsContent,\n shortcut,\n value,\n ...attributes\n } = props;\n const internalRef = useMergedRef<HTMLInputElement>(ref);\n const settingsRef = React.useRef<HTMLDivElement>(null);\n const [focused, setFocused] = React.useState(false);\n const { texts } = useLocalization();\n const isActive = value?.length;\n const hasFind = handleClickFindNext && handleClickFindPrevious && findCurrent !== undefined && findTotal !== undefined;\n\n useGlobalKeyDown(shortcut, (event: KeyboardEvent) => {\n if (document.activeElement !== internalRef.current) {\n event.preventDefault();\n internalRef.current?.focus();\n }\n });\n\n const handleBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n if (\n settingsRef.current &&\n (settingsRef.current === event.relatedTarget || settingsRef.current?.contains(event.relatedTarget))\n ) {\n return;\n }\n\n setFocused(false);\n attributes.onBlur?.(event);\n };\n\n const handleClear = () => {\n requestAnimationFrame(() => internalRef.current?.focus());\n handleChange('');\n };\n\n const handleFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n setFocused(true);\n attributes.onFocus?.(event);\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement>): void => {\n props.onKeyDown?.(event);\n\n if (event.isDefaultPrevented()) {\n return;\n }\n if (event.key === 'Enter') {\n event.preventDefault();\n\n if (hasFind && isActive) {\n if (event.shiftKey) {\n handleClickFindPrevious?.();\n } else {\n handleClickFindNext?.();\n }\n }\n\n return;\n }\n\n if (event.key === 'Escape') {\n handleClear();\n return;\n }\n };\n\n let postfix;\n\n if (!attributes.disabled && !attributes.readOnly && (value || focused)) {\n if (value) {\n postfix = (\n <IconButton\n aria-label={texts.searchInput.clear}\n className=\"scale-75 !bg-transparent hover:!bg-black/[0.08] [&>svg]:scale-125\"\n icon=\"close\"\n onMouseDown={handleClear}\n tabIndex={-1}\n tooltip={\n focused ? (\n <>\n {texts.searchInput.clear} <Shortcut keys=\"Escape\" />\n </>\n ) : (\n texts.searchInput.clear\n )\n }\n />\n );\n }\n\n if (hasFind && isActive) {\n postfix = (\n <>\n <span className=\"text-grey-700 flex h-4 items-center border-r border-black/[0.25] pr-2\">\n {loading ? <Spinner className=\"h-4 w-4\" /> : `${findCurrent ?? 0}/${findTotal ?? 0}`}\n </span>\n {findCurrent ? (\n <>\n <IconButton\n aria-label={texts.searchInput.findPrevious}\n className=\"scale-75 !bg-transparent hover:!bg-black/[0.08] [&>svg]:scale-125\"\n icon=\"chevron-up\"\n onMouseDown={handleClickFindPrevious}\n tabIndex={-1}\n tooltip={\n focused ? (\n <>\n {texts.searchInput.findPrevious} <Shortcut keys={{ shift: true, key: 'Enter' }} />\n </>\n ) : (\n texts.searchInput.findPrevious\n )\n }\n />\n <IconButton\n aria-label={texts.searchInput.findNext}\n className=\"scale-75 !bg-transparent hover:!bg-black/[0.08] [&>svg]:scale-125\"\n icon=\"chevron-down\"\n onMouseDown={handleClickFindNext}\n tabIndex={-1}\n tooltip={\n focused ? (\n <>\n {texts.searchInput.findNext} <Shortcut keys=\"Enter\" />\n </>\n ) : (\n texts.searchInput.findNext\n )\n }\n />\n </>\n ) : null}\n {postfix}\n </>\n );\n }\n } else if (shortcut && !focused && !value) {\n postfix = <Shortcut keys={shortcut} onClickCapture={() => internalRef.current?.focus()} />;\n }\n\n const className = cn(\n 'peer !pl-7',\n hasFind\n ? {\n '!w-48': !value && !focused,\n '!w-72': value || focused,\n }\n : '!w-48',\n {\n '!wcag-blue-100': isActive,\n },\n props.className\n );\n\n const icon = (\n <Icon\n aria-label={texts.searchInput.button}\n className=\"-ml-0.5 scale-95\"\n name=\"search\"\n onClickCapture={() => internalRef.current?.focus()}\n />\n );\n\n const input = (\n <Input\n {...attributes}\n aria-label={attributes['aria-label'] ?? texts.searchInput.placeholder}\n className={className}\n data-taco=\"search-input2\"\n onBlur={handleBlur}\n onChange={event => handleChange(event.target.value)}\n onFocus={handleFocus}\n onKeyDown={handleKeyDown}\n placeholder={attributes.placeholder ?? texts.searchInput.placeholder}\n prefix={icon}\n postfix={postfix}\n ref={internalRef}\n value={value ?? ''}\n />\n );\n\n if (settingsContent) {\n const handleSettingsBlur = event => {\n if (event.currentTarget.contains(event.relatedTarget) || event.currentTarget.contains(event.target)) {\n return;\n }\n setFocused(false);\n };\n\n return (\n <div\n className={cn('relative', { \"[&_[data-taco='input-container']]:z-20\": focused })}\n onBlur={handleSettingsBlur}\n ref={settingsRef}>\n {input}\n {focused ? (\n <div\n className=\"border-grey-300 absolute left-0 right-0 top-full z-10 flex flex-col gap-y-4 rounded-b border border-t-0 bg-white p-3 shadow\"\n onClickCapture={() => internalRef.current?.focus()}\n tabIndex={-1}>\n {settingsContent}\n </div>\n ) : null}\n </div>\n );\n }\n\n return input;\n});\n"],"names":["SearchInput2","React","forwardRef","props","ref","findCurrent","findTotal","loading","onChange","handleChange","onClickFindNext","handleClickFindNext","onClickFindPrevious","handleClickFindPrevious","settingsContent","shortcut","value","attributes","internalRef","useMergedRef","settingsRef","useRef","focused","setFocused","useState","texts","useLocalization","isActive","length","hasFind","undefined","useGlobalKeyDown","event","document","activeElement","current","preventDefault","focus","handleBlur","relatedTarget","contains","onBlur","handleClear","requestAnimationFrame","handleFocus","onFocus","handleKeyDown","onKeyDown","isDefaultPrevented","key","shiftKey","postfix","disabled","readOnly","IconButton","searchInput","clear","className","icon","onMouseDown","tabIndex","tooltip","Shortcut","keys","Spinner","findPrevious","shift","findNext","onClickCapture","cn","Icon","button","name","input","Input","placeholder","target","prefix","handleSettingsBlur","currentTarget"],"mappings":"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"}
|
|
@@ -106,7 +106,17 @@ const EditPopover = props => {
|
|
|
106
106
|
setColor(initialColor);
|
|
107
107
|
};
|
|
108
108
|
const preventKeyDownPropagation = event => {
|
|
109
|
-
|
|
109
|
+
// Need to allow 'Escape', 'Tab', 'Shift + Tab' to support default focus and close behaviour of Radix Popover.
|
|
110
|
+
if (event.key === 'Escape' || event.key === 'Tab' || event.key === 'Tab' && event.shiftKey) {
|
|
111
|
+
return;
|
|
112
|
+
} else {
|
|
113
|
+
event.stopPropagation();
|
|
114
|
+
}
|
|
115
|
+
};
|
|
116
|
+
const popoverContentKeyDown = event => {
|
|
117
|
+
// Need to stop propagation of 'Tab', 'Shift + Tab' keys out of Popover content,
|
|
118
|
+
// to avoid 'Tab' key execution on Option component and closing the dropdown.
|
|
119
|
+
if (event.key === 'Tab' || event.key === 'Tab' && event.shiftKey) {
|
|
110
120
|
event.stopPropagation();
|
|
111
121
|
}
|
|
112
122
|
};
|
|
@@ -114,6 +124,7 @@ const EditPopover = props => {
|
|
|
114
124
|
onCloseAutoFocus: handleCloseAutoFocus,
|
|
115
125
|
onInteractOutside: handleInteractOutside,
|
|
116
126
|
onClick: event => event.stopPropagation(),
|
|
127
|
+
onKeyDown: popoverContentKeyDown,
|
|
117
128
|
placement: "right",
|
|
118
129
|
tabIndex: -1,
|
|
119
130
|
className: "focus:!shadow-none"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Edit.js","sources":["../../../../../../../../src/components/Select2/components/Edit.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\nimport * as RadioGroup from '@radix-ui/react-radio-group';\nimport { Button } from '../../Button/Button';\nimport { Input } from '../../Input/Input';\nimport { Popover, PopoverProps } from '../../Popover/Popover';\nimport { Icon } from '../../Icon/Icon';\nimport { Select2OptionValue } from '../types';\nimport { useSelect2Context } from './Context';\nimport { Field } from '../../Field/Field';\nimport { Group } from '../../Group/Group';\nimport { useLocalization } from '../../Provider/Localization';\nimport { Color } from '../../../types';\nimport { AVAILABLE_COLORS, getSubtleColorShadeClasses } from '../../../utils/tailwind';\n\nexport type EditPopoverProps = PopoverProps & {\n color?: Color;\n text: string;\n value: Select2OptionValue;\n};\n\nexport const EditPopover = (props: EditPopoverProps) => {\n const { color: initialColor, text: initialName, value, ...popoverProps } = props;\n const ref = React.useRef<HTMLInputElement>(null);\n const { onDelete, onEdit, searchRef, ref: selectRef } = useSelect2Context();\n const { texts } = useLocalization();\n const [name, setName] = React.useState(initialName);\n const [color, setColor] = React.useState(initialColor);\n const [validationError, setValidationError] = React.useState<Error | undefined>();\n\n const handleInputChange = event => {\n setName(event.target.value);\n setValidationError(undefined);\n };\n\n const handleInputKeyDown = close => async event => {\n event.stopPropagation();\n\n if (event.key === 'Escape') {\n close();\n } else if (event.key === 'Enter') {\n handleSave(close)(event);\n }\n };\n\n const handleDelete = close => async event => {\n event.stopPropagation();\n close();\n\n if (onDelete) {\n await onDelete(value);\n }\n };\n\n const handleSave = close => async event => {\n if (onEdit && (name !== initialName || color !== initialColor)) {\n try {\n await onEdit(value, name, color);\n close();\n } catch (error) {\n event.preventDefault();\n event.stopPropagation();\n setValidationError(error as Error);\n ref.current?.focus();\n }\n } else {\n close();\n }\n };\n\n const handleCloseAutoFocus = event => {\n event.preventDefault();\n setName(initialName);\n setColor(initialColor);\n setValidationError(undefined);\n\n if (searchRef?.current) {\n searchRef.current?.focus();\n } else {\n selectRef.current?.focus();\n }\n };\n\n const handleInteractOutside = () => {\n setName(initialName);\n setColor(initialColor);\n };\n\n const preventKeyDownPropagation = event => {\n if (event.key !== 'Escape') {\n event.stopPropagation();\n }\n };\n\n return (\n <Popover {...popoverProps}>\n <Popover.Content\n onCloseAutoFocus={handleCloseAutoFocus}\n onInteractOutside={handleInteractOutside}\n onClick={event => event.stopPropagation()}\n placement=\"right\"\n tabIndex={-1}\n className=\"focus:!shadow-none\">\n {({ close }) => (\n <>\n <div className=\"flex w-32 flex-col space-y-2\">\n {onEdit ? (\n <>\n <Field\n className={cn('!min-h-fit', { '!pb-0': !validationError })}\n invalid={!!validationError}\n message={validationError?.message}>\n <Input\n invalid={!!validationError}\n onChange={handleInputChange}\n onKeyDown={handleInputKeyDown(close)}\n ref={ref}\n value={name}\n />\n </Field>\n {initialColor ? (\n <>\n <h5>Colours</h5>\n <Colours\n color={color}\n onChangeColor={setColor}\n onKeyDown={preventKeyDownPropagation}\n />\n </>\n ) : null}\n <Group>\n <Button onClick={close}>{texts.select2.cancel}</Button>\n <Button appearance=\"primary\" onClick={handleSave(close)}>\n {texts.select2.save}\n </Button>\n </Group>\n </>\n ) : null}\n {onEdit && onDelete ? <hr /> : null}\n {onDelete ? (\n <button\n className=\"hover:text-grey-700 flex items-center justify-start gap-1\"\n onClick={handleDelete(close)}\n onKeyDown={preventKeyDownPropagation}>\n <Icon className=\"!h-5 !w-5\" name=\"delete-permanently\" /> {texts.select2.delete}\n </button>\n ) : null}\n </div>\n </>\n )}\n </Popover.Content>\n </Popover>\n );\n};\n\nconst Colours = props => {\n const { color, onChangeColor, onClick, onKeyDown } = props;\n const { texts } = useLocalization();\n\n return (\n <RadioGroup.Root\n aria-label={texts.select2.chooseColor}\n className=\"grid grid-cols-4 gap-2 focus:outline-none\"\n onClick={onClick}\n onKeyDown={onKeyDown}\n onValueChange={color => onChangeColor(color)}\n value={color}>\n {AVAILABLE_COLORS.map((availableColor: string) => (\n <RadioGroup.Item\n aria-label={color}\n className={cn(\n 'flex h-6 w-6 cursor-pointer items-center justify-center rounded',\n getSubtleColorShadeClasses(availableColor as Color)\n )}\n key={availableColor}\n onFocus={() => onChangeColor(availableColor)}\n value={availableColor}>\n <RadioGroup.Indicator asChild>\n <Icon name=\"tick\" className=\"!h-5 !w-5\" />\n </RadioGroup.Indicator>\n </RadioGroup.Item>\n ))}\n </RadioGroup.Root>\n );\n};\n"],"names":["EditPopover","props","color","initialColor","text","initialName","value","popoverProps","ref","React","useRef","onDelete","onEdit","searchRef","selectRef","useSelect2Context","texts","useLocalization","name","setName","useState","setColor","validationError","setValidationError","handleInputChange","event","target","undefined","handleInputKeyDown","close","stopPropagation","key","handleSave","handleDelete","error","preventDefault","current","focus","handleCloseAutoFocus","handleInteractOutside","preventKeyDownPropagation","Popover","Content","onCloseAutoFocus","onInteractOutside","onClick","placement","tabIndex","className","Field","cn","invalid","message","Input","onChange","onKeyDown","Colours","onChangeColor","Group","Button","select2","cancel","appearance","save","Icon","delete","RadioGroup","chooseColor","onValueChange","AVAILABLE_COLORS","map","availableColor","getSubtleColorShadeClasses","onFocus","asChild"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Edit.js","sources":["../../../../../../../../src/components/Select2/components/Edit.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\nimport * as RadioGroup from '@radix-ui/react-radio-group';\nimport { Button } from '../../Button/Button';\nimport { Input } from '../../Input/Input';\nimport { Popover, PopoverProps } from '../../Popover/Popover';\nimport { Icon } from '../../Icon/Icon';\nimport { Select2OptionValue } from '../types';\nimport { useSelect2Context } from './Context';\nimport { Field } from '../../Field/Field';\nimport { Group } from '../../Group/Group';\nimport { useLocalization } from '../../Provider/Localization';\nimport { Color } from '../../../types';\nimport { AVAILABLE_COLORS, getSubtleColorShadeClasses } from '../../../utils/tailwind';\n\nexport type EditPopoverProps = PopoverProps & {\n color?: Color;\n text: string;\n value: Select2OptionValue;\n};\n\nexport const EditPopover = (props: EditPopoverProps) => {\n const { color: initialColor, text: initialName, value, ...popoverProps } = props;\n const ref = React.useRef<HTMLInputElement>(null);\n const { onDelete, onEdit, searchRef, ref: selectRef } = useSelect2Context();\n const { texts } = useLocalization();\n const [name, setName] = React.useState(initialName);\n const [color, setColor] = React.useState(initialColor);\n const [validationError, setValidationError] = React.useState<Error | undefined>();\n\n const handleInputChange = event => {\n setName(event.target.value);\n setValidationError(undefined);\n };\n\n const handleInputKeyDown = close => async event => {\n event.stopPropagation();\n\n if (event.key === 'Escape') {\n close();\n } else if (event.key === 'Enter') {\n handleSave(close)(event);\n }\n };\n\n const handleDelete = close => async event => {\n event.stopPropagation();\n close();\n\n if (onDelete) {\n await onDelete(value);\n }\n };\n\n const handleSave = close => async event => {\n if (onEdit && (name !== initialName || color !== initialColor)) {\n try {\n await onEdit(value, name, color);\n close();\n } catch (error) {\n event.preventDefault();\n event.stopPropagation();\n setValidationError(error as Error);\n ref.current?.focus();\n }\n } else {\n close();\n }\n };\n\n const handleCloseAutoFocus = event => {\n event.preventDefault();\n setName(initialName);\n setColor(initialColor);\n setValidationError(undefined);\n\n if (searchRef?.current) {\n searchRef.current?.focus();\n } else {\n selectRef.current?.focus();\n }\n };\n\n const handleInteractOutside = () => {\n setName(initialName);\n setColor(initialColor);\n };\n\n const preventKeyDownPropagation = event => {\n // Need to allow 'Escape', 'Tab', 'Shift + Tab' to support default focus and close behaviour of Radix Popover.\n if (event.key === 'Escape' || event.key === 'Tab' || (event.key === 'Tab' && event.shiftKey)) {\n return;\n } else {\n event.stopPropagation();\n }\n };\n\n const popoverContentKeyDown = event => {\n // Need to stop propagation of 'Tab', 'Shift + Tab' keys out of Popover content,\n // to avoid 'Tab' key execution on Option component and closing the dropdown.\n if (event.key === 'Tab' || (event.key === 'Tab' && event.shiftKey)) {\n event.stopPropagation();\n }\n };\n\n return (\n <Popover {...popoverProps}>\n <Popover.Content\n onCloseAutoFocus={handleCloseAutoFocus}\n onInteractOutside={handleInteractOutside}\n onClick={event => event.stopPropagation()}\n onKeyDown={popoverContentKeyDown}\n placement=\"right\"\n tabIndex={-1}\n className=\"focus:!shadow-none\">\n {({ close }) => (\n <>\n <div className=\"flex w-32 flex-col space-y-2\">\n {onEdit ? (\n <>\n <Field\n className={cn('!min-h-fit', { '!pb-0': !validationError })}\n invalid={!!validationError}\n message={validationError?.message}>\n <Input\n invalid={!!validationError}\n onChange={handleInputChange}\n onKeyDown={handleInputKeyDown(close)}\n ref={ref}\n value={name}\n />\n </Field>\n {initialColor ? (\n <>\n <h5>Colours</h5>\n <Colours\n color={color}\n onChangeColor={setColor}\n onKeyDown={preventKeyDownPropagation}\n />\n </>\n ) : null}\n <Group>\n <Button onClick={close}>{texts.select2.cancel}</Button>\n <Button appearance=\"primary\" onClick={handleSave(close)}>\n {texts.select2.save}\n </Button>\n </Group>\n </>\n ) : null}\n {onEdit && onDelete ? <hr /> : null}\n {onDelete ? (\n <button\n className=\"hover:text-grey-700 flex items-center justify-start gap-1\"\n onClick={handleDelete(close)}\n onKeyDown={preventKeyDownPropagation}>\n <Icon className=\"!h-5 !w-5\" name=\"delete-permanently\" /> {texts.select2.delete}\n </button>\n ) : null}\n </div>\n </>\n )}\n </Popover.Content>\n </Popover>\n );\n};\n\nconst Colours = props => {\n const { color, onChangeColor, onClick, onKeyDown } = props;\n const { texts } = useLocalization();\n\n return (\n <RadioGroup.Root\n aria-label={texts.select2.chooseColor}\n className=\"grid grid-cols-4 gap-2 focus:outline-none\"\n onClick={onClick}\n onKeyDown={onKeyDown}\n onValueChange={color => onChangeColor(color)}\n value={color}>\n {AVAILABLE_COLORS.map((availableColor: string) => (\n <RadioGroup.Item\n aria-label={color}\n className={cn(\n 'flex h-6 w-6 cursor-pointer items-center justify-center rounded',\n getSubtleColorShadeClasses(availableColor as Color)\n )}\n key={availableColor}\n onFocus={() => onChangeColor(availableColor)}\n value={availableColor}>\n <RadioGroup.Indicator asChild>\n <Icon name=\"tick\" className=\"!h-5 !w-5\" />\n </RadioGroup.Indicator>\n </RadioGroup.Item>\n ))}\n </RadioGroup.Root>\n );\n};\n"],"names":["EditPopover","props","color","initialColor","text","initialName","value","popoverProps","ref","React","useRef","onDelete","onEdit","searchRef","selectRef","useSelect2Context","texts","useLocalization","name","setName","useState","setColor","validationError","setValidationError","handleInputChange","event","target","undefined","handleInputKeyDown","close","stopPropagation","key","handleSave","handleDelete","error","preventDefault","current","focus","handleCloseAutoFocus","handleInteractOutside","preventKeyDownPropagation","shiftKey","popoverContentKeyDown","Popover","Content","onCloseAutoFocus","onInteractOutside","onClick","onKeyDown","placement","tabIndex","className","Field","cn","invalid","message","Input","onChange","Colours","onChangeColor","Group","Button","select2","cancel","appearance","save","Icon","delete","RadioGroup","chooseColor","onValueChange","AVAILABLE_COLORS","map","availableColor","getSubtleColorShadeClasses","onFocus","asChild"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Shortcut.js","sources":["../../../../../../../src/components/Shortcut/Shortcut.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\nimport { isMacOs, KeyDownHandlerOptions } from '../../utils/keyboard';\n\nconst replaceWithShortform = (key: string) => {\n switch (key) {\n case 'Escape':\n return 'Esc';\n\n case 'Delete':\n return 'Del';\n\n case 'Space':\n case ' ':\n return '
|
|
1
|
+
{"version":3,"file":"Shortcut.js","sources":["../../../../../../../src/components/Shortcut/Shortcut.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\nimport { isMacOs, KeyDownHandlerOptions } from '../../utils/keyboard';\n\nconst replaceWithShortform = (key: string) => {\n switch (key) {\n case 'Escape':\n return 'Esc';\n\n case 'Delete':\n return 'Del';\n\n case 'Space':\n case ' ':\n return 'Space';\n\n case 'ArrowLeft':\n return '◄';\n\n case 'ArrowRight':\n return '►';\n\n case 'ArrowUp':\n return '▲';\n\n case 'ArrowDown':\n return '▼';\n\n default:\n return key.length === 1 ? key.toLocaleUpperCase() : key;\n }\n};\n\nconst getShortcutText = (key: string | KeyDownHandlerOptions) => {\n if (!key) {\n return [];\n }\n\n if (typeof key === 'string') {\n return [replaceWithShortform(key)];\n }\n\n const keys: string[] = [];\n\n if (key.shift) {\n keys.push(isMacOs() ? '⇧' : 'Shift');\n }\n\n if (key.meta) {\n keys.push(isMacOs() ? '⌘' : 'Ctrl');\n }\n\n keys.push(replaceWithShortform(key.key));\n\n return keys;\n};\n\nexport type ShortcutProps = Omit<React.HTMLAttributes<HTMLSpanElement>, 'children'> & {\n keys: string | KeyDownHandlerOptions;\n};\nexport const Shortcut = ({ keys, ...props }: ShortcutProps) => {\n const className = cn('inline-flex gap-0.5', props.className);\n const texts = getShortcutText(keys);\n\n return (\n <span {...props} className={className}>\n {texts.map(key => (\n <kbd\n key={key}\n className=\"font-display text-grey-700 [[data-taco=tooltip]_&]:bg-grey-300/[0.25] rounded-sm bg-black/[0.09] px-1 text-center font-bold [[data-taco=tooltip]_&]:text-white\">\n {key}\n </kbd>\n ))}\n </span>\n );\n};\n"],"names":["replaceWithShortform","key","length","toLocaleUpperCase","getShortcutText","keys","shift","push","isMacOs","meta","Shortcut","props","className","cn","texts","React","map"],"mappings":";;;;AAIA,MAAMA,oBAAoB,GAAIC,GAAW;EACrC,QAAQA,GAAG;IACP,KAAK,QAAQ;MACT,OAAO,KAAK;IAEhB,KAAK,QAAQ;MACT,OAAO,KAAK;IAEhB,KAAK,OAAO;IACZ,KAAK,GAAG;MACJ,OAAO,OAAO;IAElB,KAAK,WAAW;MACZ,OAAO,GAAG;IAEd,KAAK,YAAY;MACb,OAAO,GAAG;IAEd,KAAK,SAAS;MACV,OAAO,GAAG;IAEd,KAAK,WAAW;MACZ,OAAO,GAAG;IAEd;MACI,OAAOA,GAAG,CAACC,MAAM,KAAK,CAAC,GAAGD,GAAG,CAACE,iBAAiB,EAAE,GAAGF,GAAG;;AAEnE,CAAC;AAED,MAAMG,eAAe,GAAIH,GAAmC;EACxD,IAAI,CAACA,GAAG,EAAE;IACN,OAAO,EAAE;;EAGb,IAAI,OAAOA,GAAG,KAAK,QAAQ,EAAE;IACzB,OAAO,CAACD,oBAAoB,CAACC,GAAG,CAAC,CAAC;;EAGtC,MAAMI,IAAI,GAAa,EAAE;EAEzB,IAAIJ,GAAG,CAACK,KAAK,EAAE;IACXD,IAAI,CAACE,IAAI,CAACC,OAAO,EAAE,GAAG,GAAG,GAAG,OAAO,CAAC;;EAGxC,IAAIP,GAAG,CAACQ,IAAI,EAAE;IACVJ,IAAI,CAACE,IAAI,CAACC,OAAO,EAAE,GAAG,GAAG,GAAG,MAAM,CAAC;;EAGvCH,IAAI,CAACE,IAAI,CAACP,oBAAoB,CAACC,GAAG,CAACA,GAAG,CAAC,CAAC;EAExC,OAAOI,IAAI;AACf,CAAC;MAKYK,QAAQ,GAAG,CAAC;EAAEL,IAAI;EAAE,GAAGM;CAAsB;EACtD,MAAMC,SAAS,GAAGC,EAAE,CAAC,qBAAqB,EAAEF,KAAK,CAACC,SAAS,CAAC;EAC5D,MAAME,KAAK,GAAGV,eAAe,CAACC,IAAI,CAAC;EAEnC,oBACIU,uDAAUJ,KAAK;IAAEC,SAAS,EAAEA;MACvBE,KAAK,CAACE,GAAG,CAACf,GAAG,iBACVc;IACId,GAAG,EAAEA,GAAG;IACRW,SAAS,EAAC;KACTX,GAAG,CAEX,CAAC,CACC;AAEf;;;;"}
|