@leaflink/stash 48.10.0 → 48.10.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/Accordion.js +1 -1
- package/dist/ActionsDropdown.js +1 -1
- package/dist/AddressSelect.js +1 -1
- package/dist/AddressSelect.js.map +1 -1
- package/dist/Alert.js +1 -1
- package/dist/Alert.js.map +1 -1
- package/dist/AppNavigationItem.js +1 -1
- package/dist/AppTopbar.js +1 -1
- package/dist/Avatar.vue.d.ts +1 -1
- package/dist/Badge.js.map +1 -1
- package/dist/Button.vue.d.ts +3 -1
- package/dist/CardMedia.js +1 -1
- package/dist/Carousel.js.map +1 -1
- package/dist/ChevronToggle.js +1 -1
- package/dist/ChevronToggle.vue_vue_type_script_setup_true_lang-1591294c.js.map +1 -1
- package/dist/Chip.js +1 -1
- package/dist/Chip.js.map +1 -1
- package/dist/Chip.vue.d.ts +1 -1
- package/dist/ConfirmationCodeInput.js.map +1 -1
- package/dist/ContextSwitcher.js.map +1 -1
- package/dist/Copy.js +1 -1
- package/dist/CurrencyInput.js +39 -34
- package/dist/CurrencyInput.js.map +1 -1
- package/dist/DataView.js +1 -1
- package/dist/DataView.js.map +1 -1
- package/dist/DataViewFilters.js +1 -1
- package/dist/DataViewFilters.js.map +1 -1
- package/dist/DataViewSortButton.js +1 -1
- package/dist/DataViewToolbar.js +1 -1
- package/dist/DatePicker.js +3355 -3368
- package/dist/DatePicker.js.map +1 -1
- package/dist/Dialog.js +75 -69
- package/dist/Dialog.js.map +1 -1
- package/dist/Dropdown.js +1 -1
- package/dist/Dropdown.js.map +1 -1
- package/dist/EmptyState.js +2 -2
- package/dist/Expand.vue_vue_type_script_setup_true_lang-1751f4a6.js.map +1 -1
- package/dist/FileUpload.js +1 -1
- package/dist/FileUpload.js.map +1 -1
- package/dist/FilterChip.js +1 -1
- package/dist/FilterDrawerItem.js +1 -1
- package/dist/FilterDropdown.js +1 -1
- package/dist/FilterSelect.js +1 -1
- package/dist/FilterSelect.js.map +1 -1
- package/dist/Filters.js +1 -1
- package/dist/Filters.js.map +1 -1
- package/dist/HttpError.js +2 -2
- package/dist/Icon.js +1 -1
- package/dist/Icon.js.map +1 -1
- package/dist/IconLabel.js +1 -1
- package/dist/IconLabel.vue.d.ts +1 -1
- package/dist/Illustration.js +3 -3
- package/dist/{Illustration.vue_vue_type_script_setup_true_lang-4b8944da.js → Illustration.vue_vue_type_script_setup_true_lang-e26c3841.js} +2 -2
- package/dist/{Illustration.vue_vue_type_script_setup_true_lang-4b8944da.js.map → Illustration.vue_vue_type_script_setup_true_lang-e26c3841.js.map} +1 -1
- package/dist/Image.js.map +1 -1
- package/dist/InlineEdit.js +1 -1
- package/dist/Input.js +1 -1
- package/dist/Input.js.map +1 -1
- package/dist/InputOptions.js +1 -1
- package/dist/LicenseChip.js +1 -1
- package/dist/ListView.js +2 -2
- package/dist/ListView.js.map +1 -1
- package/dist/Logo.vue_vue_type_script_setup_true_lang-d7da48a0.js.map +1 -1
- package/dist/Metric.vue.d.ts +1 -1
- package/dist/Modal.js +1 -1
- package/dist/Modals.js +6 -6
- package/dist/Modals.js.map +1 -1
- package/dist/ObfuscateText.js +1 -1
- package/dist/PageNavigation.js +1 -1
- package/dist/PageNavigation.js.map +1 -1
- package/dist/Paginate.js +1 -1
- package/dist/PlaidLink.js.map +1 -1
- package/dist/QuickAction.js +1 -1
- package/dist/RadioNew.js.map +1 -1
- package/dist/RangeInput.js +1 -1
- package/dist/SearchBar.js +1 -1
- package/dist/Select.js +709 -653
- package/dist/Select.js.map +1 -1
- package/dist/SelectStatus.js +1 -1
- package/dist/SelectStatus.js.map +1 -1
- package/dist/SelectStatus.vue.d.ts +1 -1
- package/dist/Skeleton.js.map +1 -1
- package/dist/Step.js +1 -1
- package/dist/Stepper.js +1 -1
- package/dist/Tab.js +1 -1
- package/dist/Tab.vue_vue_type_script_setup_true_lang-69d1b046.js.map +1 -1
- package/dist/Table.js +2 -2
- package/dist/TableCell.js +2 -2
- package/dist/TableHeaderCell.js +2 -2
- package/dist/TableHeaderRow.js +2 -2
- package/dist/TableRow.js +2 -2
- package/dist/TableRow.vue.d.ts +1 -1
- package/dist/Tabs.js +1 -1
- package/dist/TextEditor.js +991 -991
- package/dist/TextEditor.js.map +1 -1
- package/dist/Textarea.js.map +1 -1
- package/dist/Toast.js +274 -252
- package/dist/Toast.js.map +1 -1
- package/dist/Toasts.js +1 -1
- package/dist/ToastsPlugin.js +1 -1
- package/dist/components.css +2 -2
- package/dist/index-5e5945a9.js.map +1 -1
- package/dist/{index-79ce320f.js → index-9e1095ef.js} +6 -4
- package/dist/index-9e1095ef.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/isDefined-2ce6cde4.js.map +1 -1
- package/dist/observe.js.map +1 -1
- package/dist/searchFuzzy-74a7de1c.js.map +1 -1
- package/dist/sticky.js.map +1 -1
- package/dist/tailwind-base.js.map +1 -1
- package/dist/toTimeZone-e6e9ab75.js.map +1 -1
- package/dist/tooltip.js.map +1 -1
- package/dist/useGoogleMaps.js +109 -119
- package/dist/useGoogleMaps.js.map +1 -1
- package/dist/useModals.d.ts +6 -363
- package/dist/useModals.js.map +1 -1
- package/dist/useScriptTag.js.map +1 -1
- package/dist/useStepper.js.map +1 -1
- package/dist/useValidation.js.map +1 -1
- package/dist/utils/colorScheme.js.map +1 -1
- package/dist/utils/createQueryString.js.map +1 -1
- package/dist/utils/formatDateTime.js.map +1 -1
- package/dist/utils/helpers.js.map +1 -1
- package/dist/utils/i18n.js.map +1 -1
- package/dist/utils/storage.js.map +1 -1
- package/dist/viewable.js.map +1 -1
- package/package.json +30 -46
- package/dist/index-79ce320f.js.map +0 -1
package/dist/ListView.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListView.js","sources":["../src/components/ListView/components/BulkActions.vue","../src/components/ListView/components/LoadingManager.vue","../src/components/ListView/components/ListGroup.vue","../src/components/ListView/components/ListHeader.vue","../src/components/ListView/ListView.vue"],"sourcesContent":["<script>\n import { t } from '../../../locale';\n import Button from '../../Button/Button.vue';\n import Checkbox from '../../Checkbox/Checkbox.vue';\n\n export default {\n name: 'bulk-actions',\n\n components: {\n 'll-button': Button,\n 'll-checkbox': Checkbox,\n },\n\n props: {\n allowSelectAll: Boolean,\n isAllPageChecked: Boolean,\n isSomePageChecked: Boolean,\n hideBulkActionOptions: Boolean,\n hideNumberOfTotalSelected: Boolean,\n totalCount: {\n type: Number,\n default: 0,\n },\n totalSelectedCount: {\n type: Number,\n default: 0,\n },\n },\n\n emits: ['change:select-current', 'change:select-all', 'change:clear-selected'],\n\n data: function () {\n return {\n selectAllText: t('ll.listView.selectAll'),\n };\n },\n\n computed: {\n clearSelectedText() {\n if (this.allowSelectAll) {\n return t('ll.listView.deselectAllCount', { count: this.totalCount });\n }\n\n return t('ll.listView.clearSelection');\n },\n\n showSelectAll() {\n return [this.totalSelectedCount !== this.totalCount, this.allowSelectAll].every(Boolean);\n },\n\n numberOfTotalSelectedText() {\n return t('ll.listView.numberOfTotalSelected', {\n num: this.totalSelectedCount,\n total: this.totalCount,\n });\n },\n\n selectAllCountText() {\n return t('ll.listView.selectAllCount', { count: this.totalCount });\n },\n\n numItemsSelectedText() {\n return t('ll.listView.numItemsSelected', {\n totalSelectedCount: this.totalSelectedCount,\n totalCount: this.totalCount,\n });\n },\n },\n\n methods: {\n onSelectPage(value) {\n this.$emit('change:select-current', value);\n },\n\n selectAll() {\n this.$emit('change:select-all');\n },\n\n clearSelected() {\n this.$emit('change:clear-selected');\n },\n },\n };\n</script>\n\n<template>\n <div\n class=\"lg:tw-flex\"\n :class=\"[\n $style['select-bar'],\n {\n 'lg:tw-hidden': hideBulkActionOptions,\n },\n 'tw-p-3',\n ]\"\n >\n <div\n class=\"tw-flex tw-items-center\"\n :class=\"{\n 'tw-justify-between': !hideBulkActionOptions,\n }\"\n >\n <ll-checkbox\n data-test=\"checkbox|bulk-actions\"\n :class=\"$style.checkbox\"\n class=\"tw-m-0 lg:tw-hidden\"\n :checked=\"isSomePageChecked && !!totalCount\"\n :indeterminate=\"isSomePageChecked && !isAllPageChecked\"\n :label=\"!totalSelectedCount ? selectAllText : ''\"\n @update:checked=\"onSelectPage\"\n />\n <div\n v-if=\"!!totalSelectedCount && !hideBulkActionOptions\"\n class=\"tw-flex tw-flex-1 tw-items-center tw-justify-between\"\n >\n <div v-if=\"!hideNumberOfTotalSelected\" class=\"tw-text-xs\">\n {{ numberOfTotalSelectedText }}\n </div>\n <div :class=\"{ 'tw-ml-3': !hideNumberOfTotalSelected }\">\n <ll-button v-if=\"showSelectAll\" inline @click=\"selectAll\">{{ selectAllCountText }}</ll-button>\n <ll-button v-else inline @click=\"clearSelected\">\n {{ clearSelectedText }}\n </ll-button>\n </div>\n </div>\n <div v-else-if=\"hideBulkActionOptions && !!totalSelectedCount\" class=\"tw-ml-1.5 lg:tw-hidden\">\n <h4>{{ numItemsSelectedText }}</h4>\n </div>\n </div>\n <div v-if=\"!!totalSelectedCount && !hideBulkActionOptions\" :class=\"$style.actions\">\n <slot name=\"bulk-actions-content\"></slot>\n </div>\n </div>\n</template>\n\n<style module>\n .select-bar {\n @media screen('lg') {\n border-bottom: 1px solid var(--color-ice-200);\n justify-content: center;\n vertical-align: middle;\n }\n }\n\n .checkbox {\n flex: 0 0 auto;\n }\n\n .actions > * {\n margin-top: theme('spacing.6');\n width: 100%;\n\n @media screen('lg') {\n margin-left: theme('spacing.3');\n margin-top: 0;\n width: auto;\n }\n }\n</style>\n","<script>\n import EmptyState from '../../EmptyState/EmptyState.vue';\n import Loading from '../../Loading/Loading.vue';\n\n export default {\n name: 'loading-manager',\n\n components: {\n EmptyState,\n Loading,\n },\n\n props: {\n emptyStateText: {\n type: String,\n default: '',\n },\n\n loading: Boolean,\n\n results: {\n type: Array,\n default: () => [],\n },\n },\n };\n</script>\n\n<template>\n <Loading v-if=\"loading\" class=\"ll-bg-white\" />\n <transition-group v-else-if=\"results.length\" name=\"slide-y\" tag=\"ul\">\n <slot></slot>\n </transition-group>\n <EmptyState v-else class=\"ll-bg-white\" :class=\"$style['empty-state']\" :text=\"emptyStateText\" />\n</template>\n\n<style module>\n .empty-state {\n max-width: 100%;\n }\n</style>\n","<script>\n import { CSS_VARS } from '../../../constants';\n import sticky from '../../../directives/sticky/sticky';\n import { getCssVar } from '../../../utils/helpers';\n import Button from '../../Button/Button.vue';\n import Expand from '../../Expand/Expand.vue';\n import Icon from '../../Icon/Icon.vue';\n\n export default {\n name: 'list-group',\n\n components: {\n Expand,\n 'll-button': Button,\n Icon,\n },\n\n directives: {\n sticky,\n },\n\n props: {\n /**\n * Disables the gutters between adjacent ListGroup components.\n */\n disableExternalGutters: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Allows the list items to be collapsed\n */\n isCollapsible: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Allows the expanded content to be collapsed by default.\n * Note: has no effect unless the `isCollapsible` prop is `true`.\n */\n isCollapsedByDefault: {\n type: Boolean,\n default: false,\n },\n },\n\n data() {\n const isExpanded = !this.isCollapsible || !this.isCollapsedByDefault;\n\n return {\n isExpanded,\n isDoneExpanding: isExpanded,\n };\n },\n\n computed: {\n headerOffset() {\n return parseFloat(getCssVar(CSS_VARS.TOP_HEADER_HEIGHT));\n },\n },\n\n methods: {\n toggleExpand() {\n if (!this.isCollapsible) {\n return;\n }\n\n this.isExpanded = !this.isExpanded;\n\n if (!this.isExpanded) {\n this.isDoneExpanding = false;\n } // else wait for Expand to emit @after-expand\n },\n\n onHeaderClick(e) {\n // toggle the ListGroup, except when clicking the actions\n if (!this.$refs.actionsContainer.contains(e.target)) {\n this.toggleExpand();\n }\n },\n },\n };\n</script>\n\n<template>\n <div\n :class=\"[\n $style['list-group'],\n {\n 'disable-external-gutters': disableExternalGutters,\n 'is-collapsed': !isExpanded,\n },\n ]\"\n >\n <header\n class=\"tw-flex tw-items-center\"\n :class=\"[$style['main-header'], { 'tw-cursor-pointer': isCollapsible }]\"\n @click=\"onHeaderClick\"\n >\n <ll-button v-if=\"isCollapsible\" :class=\"['tw-mr-1.5 tw-text-ice-900', $style['expansion-toggle-button']]\" icon>\n <Icon :class=\"[isExpanded ? 'tw-rotate-270' : 'rotate-180']\" name=\"chevron-left\" />\n </ll-button>\n\n <div class=\"tw-flex-auto\">\n <slot name=\"title\"></slot>\n </div>\n\n <div ref=\"actionsContainer\">\n <slot name=\"actions\"></slot>\n </div>\n </header>\n\n <Expand :is-expanded=\"isExpanded\" @after-expand=\"isDoneExpanding = true\">\n <div :class=\"$style['expanded-content-wrapper']\">\n <header\n v-if=\"$slots['expanded-content-list-header']\"\n v-sticky=\"isExpanded && isDoneExpanding ? headerOffset : 0\"\n :class=\"$style['expanded-content-header']\"\n >\n <div class=\"tw-ll-grid tw-flex-1\" :class=\"$style['expanded-content-header-grid']\">\n <slot name=\"expanded-content-list-header\"></slot>\n </div>\n </header>\n <div :class=\"$style['expanded-content-list-items-wrapper']\">\n <transition-group name=\"fade\" mode=\"out-in\">\n <slot name=\"expanded-content-list-items\"></slot>\n </transition-group>\n </div>\n </div>\n </Expand>\n </div>\n</template>\n\n<style module>\n .main-header {\n @apply tw-shadow;\n\n background-color: var(--color-white);\n border-radius: theme('borderRadius.DEFAULT');\n margin-bottom: theme('spacing.6');\n padding: var(--grid-gutter);\n\n @media screen('lg') {\n border-bottom: theme('borderWidth.DEFAULT') solid var(--color-ice-200);\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n margin-bottom: 0;\n }\n }\n\n .expanded-content-wrapper {\n position: relative;\n width: 100%;\n }\n\n @media screen('lg') {\n .expanded-content-wrapper {\n @apply tw-shadow;\n }\n }\n\n .expanded-content-header {\n background-color: var(--color-white);\n border-bottom: theme('borderWidth.DEFAULT') solid var(--color-ice-200);\n color: var(--color-ice-900);\n display: none;\n font-weight: 500;\n padding: 0 theme('spacing.3');\n transition: padding theme('transitionDuration.150') theme('transitionTimingFunction.swing');\n z-index: 1;\n\n @media screen('lg') {\n align-items: center;\n display: flex;\n }\n\n &:global(.is-sticky) {\n @apply tw-shadow;\n\n border-radius: 0;\n z-index: calc(theme('zIndex.control') + 1);\n }\n }\n\n .expanded-content-header-grid {\n column-gap: 0;\n grid-column-gap: 0;\n\n > div {\n align-items: center;\n border-right: theme('borderWidth.DEFAULT') solid var(--color-ice-200);\n display: flex;\n font-size: theme('fontSize.xs');\n justify-content: space-between;\n padding: theme('spacing.3');\n\n &:last-of-type {\n border-right: 0;\n }\n }\n }\n\n .expansion-toggle-button:focus {\n box-shadow: none;\n }\n\n .list-group:global(.disable-external-gutters) {\n .main-header {\n @media screen('lg') {\n border-radius: 0;\n }\n }\n\n .expanded-content-list-items-wrapper > * {\n @media screen('lg') {\n border-bottom: theme('borderWidth.DEFAULT') solid var(--color-ice-200);\n border-radius: 0;\n }\n }\n\n &:last-of-type {\n &:global(.is-collapsed) .main-header,\n .expanded-content-list-items-wrapper > *:last-child {\n @media screen('lg') {\n border-bottom: none;\n border-bottom-left-radius: theme('borderRadius.DEFAULT');\n border-bottom-right-radius: theme('borderRadius.DEFAULT');\n }\n }\n }\n }\n</style>\n","<script>\n import Icon from '../../Icon/Icon.vue';\n\n export default {\n name: 'list-header',\n\n components: {\n 'll-icon': Icon,\n },\n\n props: {\n /**\n * keys to be sorted for the column\n * the first key should be the default sort value\n */\n sortKeys: {\n type: Array,\n required: true,\n validator: (value) => value.length === 2,\n },\n\n listViewRef: {\n type: Object,\n default: null,\n },\n },\n\n data() {\n return {\n isAscending: null,\n };\n },\n\n computed: {\n listViewInstance() {\n return this.listViewRef || this.$parent;\n },\n /**\n * Is the column currently sorted\n */\n isSorted() {\n return this.sortKeys.includes(this.listViewInstance.sortTerm);\n },\n\n /**\n * Show the top icon if it's not sorted or if the current sortTerm matches\n */\n showCaretUp() {\n return this.isAscending === null || this.sortKeys[0] === this.listViewInstance.sortTerm;\n },\n\n /**\n * Show the bottom icon if it's not sorted or if the current sortTerm matches\n */\n showCaretDown() {\n return this.isAscending === null || this.sortKeys[1] === this.listViewInstance.sortTerm;\n },\n },\n\n watch: {\n isSorted: {\n handler(value) {\n this.isAscending = value ? true : null;\n },\n immediate: true,\n },\n },\n\n methods: {\n /**\n * Sorts the column by the sort field\n */\n sort() {\n this.listViewInstance.onSort(this.sortKeys[this.isAscending ? 1 : 0]);\n this.isAscending = !this.isAscending;\n },\n },\n };\n</script>\n\n<template>\n <div :class=\"['tw-cursor-pointer', { 'tw-bg-blue-100': isSorted }]\" @click=\"sort\">\n <slot></slot>\n <div class=\"h-4 w-3 tw-relative tw-text-ice-700\" :class=\"{ 'is-active-sort': isSorted }\">\n <ll-icon\n v-if=\"showCaretUp\"\n name=\"caret-up\"\n class=\"tw-absolute\"\n :class=\"[$style.caret, $style['caret-up']]\"\n size=\"dense\"\n />\n <ll-icon\n v-if=\"showCaretDown\"\n name=\"caret-down\"\n class=\"tw-absolute\"\n :class=\"[$style.caret, $style['caret-down']]\"\n size=\"dense\"\n />\n </div>\n </div>\n</template>\n\n<style module>\n .caret-up {\n top: -5px;\n }\n\n .caret-down {\n top: 2px;\n }\n\n :global(.is-active-sort) .caret {\n top: -2px; /* vertically center the caret icon */\n }\n</style>\n","<script>\n import cloneDeep from 'lodash-es/cloneDeep';\n import { computed } from 'vue';\n\n import useSearch from '../../composables/useSearch/useSearch';\n import { CSS_VARS, LLLV_CHANGE_TRIGGERS } from '../../constants';\n import sticky from '../../directives/sticky/sticky';\n import { t } from '../../locale';\n import { persistentStorage } from '../../storage';\n import { filterItems as _filterItems, getCssVar, sortItems as _sortItems } from '../../utils/helpers';\n import Badge from '../Badge/Badge.vue';\n import Button from '../Button/Button.vue';\n import Checkbox from '../Checkbox/Checkbox.vue';\n import Dropdown from '../Dropdown/Dropdown.vue';\n import Expand from '../Expand/Expand.vue';\n import Filters from '../Filters/Filters.vue';\n import Icon from '../Icon/Icon.vue';\n import Input from '../Input/Input.vue';\n import Paginate from '../Paginate/Paginate.vue';\n import BulkActions from './components/BulkActions.vue';\n import LoadingManager from './components/LoadingManager.vue';\n\n export { default as BulkActions } from './components/BulkActions.vue';\n export { default as ListGroup } from './components/ListGroup.vue';\n export { default as ListHeader } from './components/ListHeader.vue';\n export { default as LoadingManager } from './components/LoadingManager.vue';\n\n const DEFAULT_SEARCH_SCHEMA = {\n isSearchable: true,\n placeholder: 'Search',\n searchBy: ['name'],\n };\n\n export default {\n name: 'll-list-view',\n\n components: {\n BulkActions,\n Filters,\n Paginate,\n LoadingManager,\n Badge,\n Button,\n Icon,\n Dropdown,\n Expand,\n Checkbox,\n Input,\n },\n\n directives: {\n sticky,\n },\n\n inject: {\n trackSearch: { default: () => () => {} },\n trackFilters: { default: () => () => {} },\n trackSort: { default: () => () => {} },\n trackResults: { default: () => () => {} },\n },\n\n props: {\n /**\n * Hide the '{number} of {total} selected' text for bulk actions\n */\n hideNumberOfTotalSelected: {\n type: Boolean,\n default: false,\n },\n /**\n * Hide the Select All checkbox for bulk actions\n */\n hideSelectAll: {\n type: Boolean,\n default: false,\n },\n /**\n * Text to render in EmptyState component if there are no results\n */\n emptyStateText: {\n type: String,\n default: '',\n },\n filterSchema: {\n type: Array,\n default: () => [],\n },\n /**\n * Make search fuzzy. Only for client side search.\n */\n fuzzySearch: {\n type: Boolean,\n default: false,\n },\n hideTotal: Boolean,\n initialPage: {\n type: Number,\n default: undefined,\n },\n /**\n * Can items on the page be selected for bulk actions\n */\n isSelectable: Boolean,\n /**\n * For loading data already paginated, filtered (including search), and sorted from a backend.\n * Defining this prop will disable the built-in search, filtering, sorting and pagination.\n * You will instead need to use the available events (`@change`, and `@change:` prefixed)\n * to know when to request new pages from your backend.\n * This requires providing `totalItemCount`.\n * Use the loading prop to indicate when data is being loaded.\n */\n isServerSide: Boolean,\n /**\n * The data for each row. Used in this file as this.internalItems (a copy) to allow mutation;\n */\n items: {\n type: Array,\n default: () => [],\n },\n /**\n * Default field to track selected items by\n */\n itemTrackBy: {\n type: String,\n default: 'id',\n },\n loading: Boolean,\n // Number of items to display per page\n pageSize: {\n type: Number,\n default: 50,\n },\n searchSchema: {\n type: Object,\n default: () => ({}),\n },\n // Provide an optional custom 'Sort by' label\n sortLabel: {\n type: String,\n default: () => t('ll.listView.sortBy'),\n },\n sortOnLoad: Boolean,\n sorts: {\n type: Object,\n default: () => ({}),\n },\n /**\n * Total number of unpaginated results\n * Required when `isServerSide` is `true`\n */\n totalItemCount: {\n type: Number,\n default: undefined,\n },\n /**\n * Validation schema function that returns an object\n */\n validationSchema: {\n type: Function,\n default: () => () => undefined,\n },\n /**\n * Whether to disable the sticky filters\n * if disabled, the following will happen\n * 1. pre-selected value(s) can be added to\n * the filter component's attributes to overwrite the sticky filters\n * 2. users will not have sticky filters on the page\n */\n disablePersistency: Boolean,\n /**\n * Whether to disable the ability of saving 'show-filters'\n * in local storage\n */\n disableShowFilter: Boolean,\n /**\n * Whether to disable the stickiness of the header.\n * Default is false. When true, neither the list headers nor\n * the bulk actions (when applicable) will be sticky.\n */\n disableStickyHeader: Boolean,\n /**\n * Whether to expand the filters section by default on load.\n */\n showFiltersOnLoad: Boolean,\n\n /**\n * Do not use the LoadingManager, and instead render the default slot as passed\n */\n disableLoader: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Override the header offset used to position the sticky header\n */\n stickyHeaderOffset: {\n type: Number,\n default: null,\n },\n /**\n * Prevent bulk actions dropdown from rendering\n */\n hideBulkActionOptions: {\n type: Boolean,\n default: false,\n },\n\n /**\n * If initial search term is provided, the list will be filtered on load.\n */\n initialSearchTerm: {\n type: String,\n default: '',\n },\n\n /**\n * Function that determines whether the item checkbox is disabled or not (default: false)\n */\n isItemDisabled: {\n type: Function,\n default: () => false,\n },\n },\n\n emits: [\n 'change',\n 'change:filter',\n 'change:page',\n 'change:search',\n 'change:sort',\n 'change:reset',\n 'filters-toggle-click',\n 'select-all',\n 'deselect-all',\n 'update-filters',\n 'updateResults',\n ],\n\n data() {\n return {\n internalItems: [],\n currentPage: this.initialPage || 1, // TODO: fetch from query params\n previousPage: null,\n sortOptionsWidth: 0,\n filters: {},\n filterText: t('ll.filter'),\n searchFor: () => {}, // initialized in the watch handler for internalItems\n searchTerm: this.initialSearchTerm,\n searchText: t('ll.search'),\n sortTerm: '',\n isLoadingSearchSchemaAction: false,\n isShowingFilters: !!(\n this.filterSchema?.length &&\n (this.showFiltersOnLoad || persistentStorage.get('show-filters'))\n ),\n isFiltering: false,\n results: [],\n selectedItems: [],\n };\n },\n\n computed: {\n /**\n * Returns true if any of its list items are truthy; otherwise returns false.\n * @returns {boolean}\n */\n isLoading() {\n return [this.loading, this.isLoadingSearchSchemaAction, this.isFiltering].some(Boolean);\n },\n\n totalCount() {\n return this.isServerSide ? this.totalItemCount : this.results.length;\n },\n\n /**\n * Helps determine if the list is filtered or not when there is an incomplete\n * result list, such as when isServerSide is true.\n */\n isFiltered() {\n return !!(this.numberOfFilters || this.searchTerm);\n },\n\n /**\n * Merges the searchSchema with the default value since all attributes are optional\n */\n internalSearchSchema() {\n return {\n ...DEFAULT_SEARCH_SCHEMA,\n searchBy: !this.searchSchema.isSearchable && DEFAULT_SEARCH_SCHEMA.searchBy,\n ...this.searchSchema,\n };\n },\n\n /**\n * Start of page\n */\n startIndex() {\n return this.pageSize * (this.currentPage - 1);\n },\n\n /**\n * End of page\n */\n endIndex() {\n return this.startIndex + this.pageSize;\n },\n\n /**\n * Slices the results set into a paginated segment.\n * @returns One page in the paginated set of results\n */\n paginated() {\n // Disables the built-in client-side pagination\n let paginated;\n\n if (this.isServerSide) {\n paginated = this.results;\n } else {\n const { endIndex, totalCount, results, startIndex } = this;\n\n paginated = results.slice(startIndex, Math.min(endIndex, totalCount));\n }\n\n this.$emit('updateResults', paginated);\n\n return paginated;\n },\n\n /**\n * Displays a visual indication for the number of results, or \"working\" if the\n * results are being determined.\n */\n total() {\n const current = this.pageSize * (this.currentPage - 1);\n const range = this.paginated.length ? `${current + 1} - ${current + this.paginated.length}` : 0;\n\n return this.isLoading\n ? t('ll.listView.calculating')\n : t('ll.listView.totalResults', { num: String(range), total: String(this.totalCount) });\n },\n\n /**\n * Determines if both #list-header and #list-items slots are used.\n * @returns {boolean}\n */\n useDefinedSlots() {\n return !!this.$slots['list-header'] && !!this.$slots['list-items'];\n },\n\n /**\n * Don't show total count if list items are selected and total is not hidden\n */\n shouldShowTotal() {\n return !this.totalSelectedCount && !this.hideTotal;\n },\n\n /**\n * Returns a list of the selected items' track by field\n */\n selectedItemIds() {\n return this.selectedItems.map((item) => item[this.itemTrackBy]);\n },\n\n /**\n * Returns a list of the paginated items' track by field\n */\n paginatedIds() {\n return this.paginated.map((item) => item[this.itemTrackBy]);\n },\n\n isAllPageChecked() {\n if (this.isServerSide) {\n return this.totalCount > 0 && this.totalCount === this.selectedItemIds.length;\n }\n\n return this.totalCount > 0 && this.paginatedIds.every((id) => this.selectedItemIds.includes(id));\n },\n\n isSomePageChecked() {\n if (this.isServerSide) {\n return this.totalCount > 0 && this.selectedItemIds.length > 0;\n }\n\n return this.totalCount > 0 && this.paginatedIds.some((id) => this.selectedItemIds.includes(id));\n },\n\n numberOfFilters() {\n return Object.keys(this.filters).reduce((acc, item) => {\n const filterBy = this.filters[item].filterBy;\n const isBoolean = typeof filterBy[0] === 'boolean';\n const isToggle = this.filters[item].filterType === 'll-checkbox';\n const isEmpty = !this.filters[item].filterType.length;\n const isInputOptionsIncomplete = this.filters[item].filterType === 'll-input-options' && filterBy[0] === '';\n\n /**\n * Don't include hidden or incomplete fields in the count:\n * - Hidden filter populated via another filter's onChange callback\n * - InputOptions with incomplete/missing values\n */\n if (isEmpty || isInputOptionsIncomplete) {\n return acc;\n }\n\n if (isBoolean || typeof filterBy[0] === 'string') {\n // Do not count toggle filters (eg. checkbox) with a `false` value\n return acc + (filterBy[0] || !isToggle ? 1 : 0);\n }\n\n return acc + (filterBy.length || 0);\n }, 0);\n },\n\n isSelectBarVisible() {\n return !!this.totalSelectedCount;\n },\n\n showPrimaryControls() {\n return this.internalSearchSchema.isSearchable || this.filterSchema.length;\n },\n\n showSecondaryControls() {\n return !!this.$slots['secondary-controls'];\n },\n\n isSortable() {\n return Object.keys(this.sorts).length > 0;\n },\n\n totalSelectedCount() {\n return this.selectedItems.length;\n },\n\n headerOffset() {\n // passing null to the v-sticky directive will prevent it from being attached to the node\n if (this.disableStickyHeader) {\n return null;\n }\n\n return this.stickyHeaderOffset ?? parseFloat(getCssVar(CSS_VARS.TOP_HEADER_HEIGHT));\n },\n },\n\n watch: {\n isShowingFilters(value) {\n if (!this.disableShowFilter) {\n persistentStorage.set('show-filters', value);\n }\n },\n\n items: {\n handler() {\n this.internalItems = cloneDeep(this.items);\n },\n immediate: true,\n deep: true,\n },\n\n internalItems: {\n handler() {\n if (this.isServerSide) {\n this.results = this.internalItems;\n\n this.trackResults({\n page: this.currentPage,\n results: this.results,\n search: this.searchTerm,\n });\n\n return;\n }\n\n const { searchFor } = useSearch({\n items: computed(() => this.internalItems),\n fieldNames: this.internalSearchSchema.searchBy.length\n ? this.internalSearchSchema.searchBy\n : [this.displayBy],\n trackBy: this.itemTrackBy,\n });\n\n this.searchFor = (searchTerm) => searchFor(searchTerm, { fuzzy: this.fuzzySearch });\n\n this.processResults();\n },\n immediate: true,\n },\n\n sortTerm() {\n if (this.isServerSide) {\n return;\n }\n\n this.processResults();\n },\n\n sorts: {\n handler(value) {\n const sortTerms = Object.keys(value);\n\n this.sortTerm = this.sortOnLoad && sortTerms.length ? sortTerms[0] : '';\n },\n immediate: true,\n },\n },\n\n created() {\n if (this.isServerSide) {\n if (this.totalItemCount === undefined) {\n throw new Error('`totalItemCount` is required when `isServerSide` is `true`.');\n }\n\n return;\n }\n\n if (this.searchSchema.action && this.internalItems.length) {\n throw new Error('You must pass either `action` or `items`, not both.');\n }\n\n if (this.searchTerm) {\n this.onSearch();\n }\n },\n\n methods: {\n /**\n * Processes the results with searchFor, filterItems, and/or sortItems.\n * Skipped when isServerSide is true because results are pre-processed.\n * @returns {Promise<void>}\n */\n async processResults() {\n if (this.searchSchema.action) {\n this.isLoadingSearchSchemaAction = true;\n let actionResponse;\n\n try {\n actionResponse = await this.searchSchema.action({ search: this.searchTerm });\n } finally {\n this.isLoadingSearchSchemaAction = false;\n }\n\n this.results = this.sortItems(this.filterItems(actionResponse?.results || []));\n } else {\n this.results = this.sortItems(this.filterItems(this.searchFor(this.searchTerm)));\n }\n\n this.trackResults({\n page: this.currentPage,\n results: this.results,\n search: this.searchTerm,\n });\n },\n\n /**\n * Filters the list of `items` based on options selected in the `filters` object\n * @param {array} items A list of items to filter.\n * @returns list of items filtered by the applied filters\n */\n filterItems(items) {\n return _filterItems(items, this.filters);\n },\n\n /**\n * Sorts a list of items based on options selected in the `sorts` object\n * @param {array} items A list of items to sort.\n * @returns list of items sorted according to the sort term.\n */\n sortItems(items) {\n return this.sortTerm ? _sortItems(items, this.sorts[this.sortTerm]) : items;\n },\n\n change({ trigger = '' } = {}) {\n const { currentPage, filters, isFiltered, pageSize, searchTerm, sortTerm } = this;\n\n const params = {\n filters,\n isFiltered,\n page: {\n number: currentPage,\n previousNumber: this.previousPage,\n size: pageSize,\n },\n search: searchTerm,\n sort: sortTerm,\n trigger,\n };\n\n this.$emit('change', params);\n },\n\n /**\n * Clear search term and reset results to their initial state\n */\n async clearSearchTerm() {\n this.searchTerm = '';\n await this.$attrs.onSearchTermClear?.();\n this.onSearch();\n },\n\n /**\n * Resets the results to their initial state on page load\n */\n reset() {\n this.$emit('change:reset');\n\n this.searchTerm = '';\n\n this.setPage({ pageNumber: 1 });\n\n if (this.isServerSide) {\n this.change({ trigger: LLLV_CHANGE_TRIGGERS.RESET });\n\n return;\n }\n\n this.processResults();\n },\n\n onSearchTermChange() {\n this.$attrs.onSearchTermChange?.(this.searchTerm);\n },\n\n /**\n * Event handler for when the user:\n * - clicks the Search button\n * - presses the enter key while focused on the search input\n * Calls a method in Filters that triggers `this.onFilter`. This is necessary\n * in order to persist the filters in local storage, which is handled internally\n * by Filters.\n */\n onSearch() {\n this.$refs.llFilters.applyFilters({ trigger: LLLV_CHANGE_TRIGGERS.SEARCH });\n },\n\n /**\n * Event handler for when the user:\n * - clicks the Apply button\n * - clicks the Search button (from `this.onSearch`)\n * - presses the enter key while focused on the search input (from `this.onSearch`)\n * @see: SELL-350\n * @param {object} [options] - optional parameters\n * @param {string} [options.trigger] - what caused the changes\n * @returns {Promise<void>}\n */\n async onFilter({ trigger = LLLV_CHANGE_TRIGGERS.APPLY } = {}) {\n this.setPage({ pageNumber: 1 });\n this.change({ trigger });\n this.trackSearch(this.searchTerm);\n this.trackFilters(this.filters);\n this.selectedItems = [];\n\n if (this.isServerSide) {\n return;\n }\n\n try {\n this.isFiltering = true;\n await this.processResults({ trigger });\n } finally {\n this.isFiltering = false;\n }\n\n this.$emit('change:search', this.searchTerm);\n this.$emit('change:filter', this.filters);\n this.$emit('update-filters', this.filters); // deprecated; replaced by change:filter\n this.clearSelected();\n },\n\n onFiltersToggleClick() {\n this.isShowingFilters = !this.isShowingFilters;\n\n this.$emit('filters-toggle-click', {\n isShowingFilters: this.isShowingFilters,\n });\n },\n\n /**\n * Extend the dropdown list so it does not shift when\n * the options drawer is open\n */\n onSortToggle() {\n // spacing added to the width of the dropdown container\n const spacing = 36;\n\n this.$nextTick(() => {\n this.sortOptionsWidth = `${this.$refs.sortOptions.clientWidth + spacing}px`;\n });\n },\n\n /**\n * Executes any side-effects when the sort `term` is changed\n * Always fires `change` automatically.\n * @param {string} term The updated sort term\n */\n onSort(term) {\n if (term === this.sortTerm) {\n return;\n }\n\n this.sortTerm = term;\n\n this.$emit('change:sort', term);\n this.trackSort(term);\n this.clearSelected();\n this.setPage({ pageNumber: 1 });\n this.change({ trigger: LLLV_CHANGE_TRIGGERS.SORT });\n },\n\n /**\n * Sets current page for the Paginator.\n * @param {Object} data\n * @param {number} data.pageNumber - the page number\n * @param {boolean} data.forceChange - flag to force the change\n */\n setPage({ pageNumber, forceChange = false } = {}) {\n this.previousPage = this.currentPage;\n\n this.currentPage = pageNumber;\n\n if (!this.isServerSide) {\n this.$emit('change:page', pageNumber);\n }\n\n if (forceChange) {\n this.change({ trigger: LLLV_CHANGE_TRIGGERS.PAGE });\n }\n },\n\n /**\n * Set the scroll position to the top of the list view.\n */\n scrollToTop() {\n this.$refs.scrollTarget && this.$refs.scrollTarget.scrollIntoView({ behavior: 'smooth', block: 'center' });\n },\n\n onPaginateSetPage(pageNumber) {\n this.setPage({ pageNumber, forceChange: true });\n this.scrollToTop();\n },\n\n /**\n * Selects or deselects all items on a page\n */\n onSelectPage(value) {\n this.$emit('select-all', value);\n\n if (value) {\n const items = Array.from(new Set([...this.selectedItems, ...this.paginated]));\n\n this.selectedItems = this.selectItems(items);\n } else {\n this.selectedItems = this.selectedItems.filter((item) => !this.paginatedIds.includes(item[this.itemTrackBy]));\n }\n },\n\n selectAll() {\n this.selectedItems = this.selectItems(this.results);\n },\n\n /**\n * Selects one item\n */\n onSelectItem({ item, value }) {\n if (this.isItemDisabled(item)) {\n return;\n }\n\n if (value) {\n this.selectedItems.push(item);\n } else {\n this.selectedItems = this.selectedItems.filter(\n (selectedItem) => selectedItem[this.itemTrackBy] !== item[this.itemTrackBy],\n );\n }\n },\n\n /**\n * Clears current selected items\n */\n clearSelected() {\n this.$emit('deselect-all');\n this.selectedItems = [];\n },\n\n selectItems(items) {\n return items.reduce((acc, item) => (this.isItemDisabled(item) ? acc : [...acc, item]), []);\n },\n },\n };\n</script>\n\n<template>\n <div>\n <div\n v-if=\"showPrimaryControls || showSecondaryControls\"\n ref=\"scrollTarget\"\n class=\"tw-mb-6\"\n :class=\"{ 'tw-ll-grid': showPrimaryControls && showSecondaryControls }\"\n >\n <div\n v-if=\"showPrimaryControls\"\n class=\"controls\"\n :class=\"[$style['legacy-box'], { 'tw-col-span-12 lg:tw-col-span-6': showSecondaryControls }]\"\n data-test=\"filters|controls\"\n >\n <div class=\"tw-ll-grid tw-grid-cols-4 md:tw-grid-cols-8 lg:tw-grid-cols-12\">\n <!-- Search -->\n <Input\n v-if=\"internalSearchSchema.isSearchable\"\n ref=\"search-input\"\n v-model=\"searchTerm\"\n class=\"tw-col-span-3 md:tw-col-span-4\"\n data-test=\"input|search-input\"\n :class=\"[$style['search-input'], { 'lg:tw-col-span-8': showSecondaryControls }]\"\n :hint-text=\"internalSearchSchema.hintText\"\n :label=\"searchText\"\n :placeholder=\"internalSearchSchema.placeholder\"\n @keyup.enter=\"!isLoading && onSearch()\"\n @change=\"onSearchTermChange\"\n >\n <template #append>\n <button\n v-if=\"searchTerm\"\n data-test=\"button|clear-search\"\n :class=\"$style['clear-button']\"\n :disabled=\"isLoading\"\n @click=\"clearSearchTerm\"\n >\n <Icon name=\"close\" />\n </button>\n <Button\n data-test=\"button|search-button\"\n :disabled=\"isLoading\"\n :class=\"$style['search-button']\"\n @click=\"onSearch\"\n >\n <Icon\n :class=\"{ 'tw-animate-spin tw-text-teal-500': isFiltering }\"\n :name=\"isFiltering ? 'working' : 'search'\"\n />\n </Button>\n </template>\n </Input>\n\n <!-- Filter Toggle -->\n <div\n v-if=\"filterSchema.length\"\n class=\"tw-col-span-1 tw-flex tw-items-end\"\n :class=\"[\n $style['filter-toggle-btn'],\n { [$style['filter-toggle-btn-with-hint-text']]: !!internalSearchSchema.hintText },\n ]\"\n >\n <Badge :content=\"numberOfFilters\">\n <Button\n secondary\n class=\"tw-relative tw-w-full tw-min-w-auto\"\n color=\"blue\"\n data-test=\"button|toggle-filters\"\n :disabled=\"isFiltering\"\n @click=\"onFiltersToggleClick\"\n >\n <Icon\n v-if=\"isFiltering\"\n name=\"working\"\n :class=\"[\n { 'tw-animate-spin': isFiltering },\n isShowingFilters ? 'tw-text-teal-500' : 'tw-text-ice-700',\n ]\"\n />\n <Icon v-else name=\"filter-line\" />\n {{ filterText }}\n </Button>\n </Badge>\n </div>\n\n <!-- Actions -->\n <div class=\"button-grid tw-col-span-1 tw-items-end tw-justify-end lg:tw-col-span-3\">\n <slot name=\"actions\"> </slot>\n </div>\n </div>\n\n <!-- Filters -->\n <Expand data-test=\"filters|content\" :class=\"$style['filters-expand']\" :is-expanded=\"isShowingFilters\">\n <div class=\"tw-relative tw-pt-12\" :class=\"$style['filters-wrapper']\">\n <Filters\n ref=\"llFilters\"\n :class=\"{ [$style['filters-half-width']]: showPrimaryControls && showSecondaryControls }\"\n :disable-apply=\"isLoading\"\n :disable-clear=\"isLoading || !numberOfFilters\"\n :disable-persistency=\"disablePersistency\"\n :schema=\"filterSchema\"\n :validation-schema=\"validationSchema\"\n @change=\"filters = $event\"\n @reset=\"reset\"\n @submit=\"onFilter\"\n />\n </div>\n </Expand>\n </div>\n\n <div\n v-if=\"showSecondaryControls\"\n class=\"secondary-controls\"\n :class=\"[$style['legacy-box'], { 'tw-col-span-12 tw-mt-0 lg:tw-col-span-6': showPrimaryControls }]\"\n >\n <slot name=\"secondary-controls\"></slot>\n </div>\n </div>\n\n <!-- @slot Renders custom content in the space below the filters and above the list -->\n <slot name=\"eyebrow\"></slot>\n\n <div\n v-if=\"shouldShowTotal || Object.keys(sorts).length\"\n class=\"tw-mb-1.5\"\n :class=\"shouldShowTotal ? $style['total-sort'] : 'tw-text-right'\"\n >\n <div v-if=\"shouldShowTotal\" class=\"tw-text-xs\">{{ total }}</div>\n\n <!-- Sort -->\n <Dropdown\n v-if=\"Object.keys(sorts).length\"\n :class=\"$style.dropdown\"\n :label=\"`${sortLabel} ${sortTerm}`\"\n @toggle.once=\"onSortToggle\"\n >\n <ul ref=\"sortOptions\" class=\"dropdown__list\" :style=\"{ minWidth: sortOptionsWidth }\">\n <li\n v-for=\"(sortOption, index) in Object.keys(sorts)\"\n :key=\"index\"\n :class=\"{ 'tw-bg-blue-100 tw-text-ice-700': sortOption === sortTerm }\"\n class=\"dropdown__item tw-rounded\"\n >\n <Button inline class=\"tw-items-center\" :class=\"$style['sort-option']\" @click=\"onSort(sortOption)\">\n {{ sortOption }}\n <Icon v-if=\"sortOption === sortTerm\" name=\"check\" class=\"tw-ml-auto tw-text-blue-500\" />\n </Button>\n </li>\n </ul>\n </Dropdown>\n </div>\n\n <!-- Defined Slots -->\n <div v-if=\"useDefinedSlots\" :class=\"$style['list-items']\">\n <header\n v-sticky=\"headerOffset\"\n data-test=\"header|defined-slot\"\n :class=\"[\n $style.header,\n {\n 'tw-m-0': !isSelectable,\n },\n ]\"\n class=\"tw-rounded\"\n >\n <div :class=\"$style['header-grid-container']\" class=\"tw-border-b tw-border-ice-200 tw-px-3\">\n <Checkbox\n v-if=\"isSelectable\"\n class=\"tw-ml-3\"\n :checked=\"isSomePageChecked\"\n :class=\"$style['select-all']\"\n :indeterminate=\"isSomePageChecked && !isAllPageChecked\"\n @update:checked=\"onSelectPage\"\n />\n <div class=\"tw-ll-grid tw-flex-1\" :class=\"$style['header-grid']\">\n <slot name=\"list-header\"> </slot>\n </div>\n </div>\n\n <!-- Select Bar -->\n <BulkActions\n v-if=\"isSelectable\"\n v-bind=\"{\n allowSelectAll: !hideSelectAll && !isServerSide,\n isAllPageChecked,\n isSomePageChecked,\n totalCount,\n totalSelectedCount,\n hideBulkActionOptions,\n hideNumberOfTotalSelected,\n }\"\n :class=\"!isSelectBarVisible && 'lg:tw-hidden'\"\n @change:clear-selected=\"clearSelected\"\n @change:select-current=\"onSelectPage\"\n @change:select-all=\"selectAll\"\n >\n <template #bulk-actions-content>\n <slot name=\"bulk-actions\" :selected-items=\"selectedItems\"> </slot>\n </template>\n </BulkActions>\n </header>\n\n <component\n :is=\"disableLoader ? 'div' : 'LoadingManager'\"\n :empty-state-text=\"emptyStateText\"\n :loading=\"isLoading\"\n :results=\"paginated\"\n >\n <slot\n name=\"list-items\"\n :clear-all=\"clearSelected\"\n :display-items=\"results\"\n :is-filtered=\"isFiltered\"\n :is-item-disabled=\"isItemDisabled\"\n :results=\"paginated\"\n :on-select=\"onSelectItem\"\n :selected-items=\"selectedItems\"\n ></slot>\n </component>\n </div>\n\n <!-- Default Slot -->\n <slot\n :current-page=\"currentPage\"\n :display-items=\"results\"\n :filters=\"filters\"\n :is-filtered=\"isFiltered\"\n :is-item-disabled=\"isItemDisabled\"\n :results=\"paginated\"\n :search-term=\"searchTerm\"\n :total=\"totalCount\"\n ></slot>\n\n <!-- Pagination -->\n <Paginate\n v-if=\"totalCount > pageSize\"\n :current-page=\"currentPage\"\n :list-length=\"totalCount\"\n :page-size=\"pageSize\"\n @set-page=\"onPaginateSetPage\"\n />\n </div>\n</template>\n\n<style module>\n .list-items {\n background-color: var(--color-ice-200);\n border-bottom-left-radius: theme('borderRadius.DEFAULT');\n border-bottom-right-radius: theme('borderRadius.DEFAULT');\n min-width: 100%;\n position: relative;\n }\n\n @media screen('lg') {\n .list-items {\n @apply tw-shadow;\n }\n }\n\n /* the .legacy-box styles are copied from .box in _box.scss */\n .legacy-box {\n @apply tw-shadow;\n\n background: var(--color-white);\n border-radius: theme('borderRadius.DEFAULT');\n padding: theme('spacing.6') var(--grid-gutter);\n }\n\n .header {\n background-color: var(--color-white);\n color: var(--color-ice-900);\n font-weight: 500;\n margin-bottom: theme('spacing.3');\n overflow: hidden;\n z-index: 1;\n\n &:global(.is-sticky) {\n @apply tw-shadow;\n\n border-radius: 0;\n overflow: visible;\n z-index: calc(theme('zIndex.control') + 1);\n\n &::before,\n &::after {\n background-color: var(--color-white);\n content: '';\n height: 100%;\n overflow-x: hidden;\n position: absolute;\n right: 100%;\n top: 0;\n width: theme('spacing.3');\n\n @media screen('lg') {\n content: none;\n }\n }\n\n &::after {\n left: 100%;\n right: auto;\n }\n }\n\n :global(.input--checkbox) {\n label {\n min-height: theme('spacing.6');\n }\n }\n\n @media screen('lg') {\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n margin-bottom: 0;\n }\n }\n\n .header-grid-container {\n display: none;\n transition: padding theme('transitionDuration.150') theme('transitionTimingFunction.swing');\n\n @media screen('lg') {\n align-items: center;\n display: flex;\n }\n }\n\n .header-grid {\n column-gap: 0 !important;\n grid-column-gap: 0 !important;\n\n > div {\n align-items: center;\n border-right: 1px solid var(--color-ice-200);\n display: flex;\n font-size: theme('fontSize.xs');\n justify-content: space-between;\n padding: theme('spacing.3');\n\n &:first-of-type {\n margin-left: calc(-1 * theme('spacing.3'));\n padding-left: theme('spacing.6');\n }\n\n &:last-of-type {\n border-right: 0;\n margin-right: calc(-1 * theme('spacing.3'));\n }\n }\n }\n\n .search-input {\n :global(input) {\n /* to prevent search text from overlapping the \"Clear\" button */\n padding-right: calc(theme('height.input') * 2) !important;\n }\n\n :global(.stash-input-append) {\n display: flex;\n justify-content: flex-end;\n width: 72px; /* double the the default width of 36px */\n\n .clear-button {\n color: var(--color-ice-700);\n height: 36px;\n margin: 0;\n min-width: 36px;\n padding: 0;\n width: 36px;\n\n &:disabled {\n color: var(--color-ice-500);\n cursor: default;\n }\n }\n\n .search-button {\n border-bottom-left-radius: 0;\n border-color: var(--color-blue-500);\n border-left: none;\n border-top-left-radius: 0;\n min-width: 36px;\n padding: 0 theme('spacing[1.5]');\n width: 36px;\n\n &:disabled {\n border-color: var(--color-ice-500);\n }\n }\n }\n }\n\n @media screen('md') {\n .total-sort {\n align-items: baseline;\n display: flex;\n justify-content: space-between;\n }\n }\n\n .filter-toggle-btn {\n min-width: fit-content !important; /* ensure this overrides the grid min-width applied */\n }\n\n .filter-toggle-btn-with-hint-text {\n /* search hint text has 16px of height and has 4px of margin top. Adding here directly to compensate that */\n margin-bottom: 20px;\n }\n\n @keyframes separator {\n 0% {\n opacity: 0;\n }\n\n 100% {\n opacity: 1;\n }\n }\n\n .filters-expand:global(.stash-expand--expanded) {\n .filters-wrapper::before {\n animation: separator theme('transitionDuration.300') theme('transitionTimingFunction.ease-in-out') 0.5s 1 forwards;\n background: var(--color-ice-200);\n content: '';\n height: theme('borderWidth.DEFAULT');\n left: calc(var(--grid-gutter) * -1);\n opacity: 0;\n position: absolute;\n right: calc(var(--grid-gutter) * -1);\n top: theme('spacing.6');\n }\n }\n\n .filters-half-width {\n @media screen('lg') {\n :global(.field-wrapper) {\n grid-column: span 6 / span 6; /* col-span-6 */\n }\n }\n }\n\n .dropdown :global(.tw-text-blue-500) {\n font-size: theme('fontSize.xs');\n }\n\n .sort-option {\n height: theme('spacing.9');\n }\n\n .select-all {\n width: theme('spacing.6');\n }\n</style>\n"],"names":["_sfc_main","Button","Checkbox","t","value","_createElementBlock","_ctx","$props","_createElementVNode","_createVNode","_component_ll_checkbox","_normalizeClass","$options","_openBlock","_hoisted_1","_hoisted_2","_toDisplayString","_createBlock","_component_ll_button","_hoisted_3","_renderSlot","EmptyState","Loading","_component_Loading","_TransitionGroup","_component_EmptyState","Expand","Icon","sticky","isExpanded","getCssVar","CSS_VARS","$data","args","_component_Icon","_component_Expand","_component_ll_icon","DEFAULT_SEARCH_SCHEMA","BulkActions","Filters","Paginate","LoadingManager","Badge","Dropdown","Input","_a","persistentStorage","paginated","endIndex","totalCount","results","startIndex","current","range","item","id","acc","filterBy","isBoolean","isToggle","isEmpty","isInputOptionsIncomplete","cloneDeep","searchFor","useSearch","computed","searchTerm","sortTerms","actionResponse","items","_filterItems","_sortItems","trigger","currentPage","filters","isFiltered","pageSize","sortTerm","params","_b","LLLV_CHANGE_TRIGGERS","term","pageNumber","forceChange","selectedItem","_component_Input","$event","_cache","_withKeys","_component_Button","_component_Badge","_createTextVNode","_component_Filters","_hoisted_4","_component_Dropdown","_Fragment","_renderList","sortOption","index","_component_Checkbox","_component_BulkActions","_mergeProps","_resolveDynamicComponent","_component_Paginate"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ListView.js","sources":["../src/components/ListView/components/BulkActions.vue","../src/components/ListView/components/LoadingManager.vue","../src/components/ListView/components/ListGroup.vue","../src/components/ListView/components/ListHeader.vue","../src/components/ListView/ListView.vue"],"sourcesContent":["<script>\n import { t } from '../../../locale';\n import Button from '../../Button/Button.vue';\n import Checkbox from '../../Checkbox/Checkbox.vue';\n\n export default {\n name: 'bulk-actions',\n\n components: {\n 'll-button': Button,\n 'll-checkbox': Checkbox,\n },\n\n props: {\n allowSelectAll: Boolean,\n isAllPageChecked: Boolean,\n isSomePageChecked: Boolean,\n hideBulkActionOptions: Boolean,\n hideNumberOfTotalSelected: Boolean,\n totalCount: {\n type: Number,\n default: 0,\n },\n totalSelectedCount: {\n type: Number,\n default: 0,\n },\n },\n\n emits: ['change:select-current', 'change:select-all', 'change:clear-selected'],\n\n data: function () {\n return {\n selectAllText: t('ll.listView.selectAll'),\n };\n },\n\n computed: {\n clearSelectedText() {\n if (this.allowSelectAll) {\n return t('ll.listView.deselectAllCount', { count: this.totalCount });\n }\n\n return t('ll.listView.clearSelection');\n },\n\n showSelectAll() {\n return [this.totalSelectedCount !== this.totalCount, this.allowSelectAll].every(Boolean);\n },\n\n numberOfTotalSelectedText() {\n return t('ll.listView.numberOfTotalSelected', {\n num: this.totalSelectedCount,\n total: this.totalCount,\n });\n },\n\n selectAllCountText() {\n return t('ll.listView.selectAllCount', { count: this.totalCount });\n },\n\n numItemsSelectedText() {\n return t('ll.listView.numItemsSelected', {\n totalSelectedCount: this.totalSelectedCount,\n totalCount: this.totalCount,\n });\n },\n },\n\n methods: {\n onSelectPage(value) {\n this.$emit('change:select-current', value);\n },\n\n selectAll() {\n this.$emit('change:select-all');\n },\n\n clearSelected() {\n this.$emit('change:clear-selected');\n },\n },\n };\n</script>\n\n<template>\n <div\n class=\"lg:tw-flex\"\n :class=\"[\n $style['select-bar'],\n {\n 'lg:tw-hidden': hideBulkActionOptions,\n },\n 'tw-p-3',\n ]\"\n >\n <div\n class=\"tw-flex tw-items-center\"\n :class=\"{\n 'tw-justify-between': !hideBulkActionOptions,\n }\"\n >\n <ll-checkbox\n data-test=\"checkbox|bulk-actions\"\n :class=\"$style.checkbox\"\n class=\"tw-m-0 lg:tw-hidden\"\n :checked=\"isSomePageChecked && !!totalCount\"\n :indeterminate=\"isSomePageChecked && !isAllPageChecked\"\n :label=\"!totalSelectedCount ? selectAllText : ''\"\n @update:checked=\"onSelectPage\"\n />\n <div\n v-if=\"!!totalSelectedCount && !hideBulkActionOptions\"\n class=\"tw-flex tw-flex-1 tw-items-center tw-justify-between\"\n >\n <div v-if=\"!hideNumberOfTotalSelected\" class=\"tw-text-xs\">\n {{ numberOfTotalSelectedText }}\n </div>\n <div :class=\"{ 'tw-ml-3': !hideNumberOfTotalSelected }\">\n <ll-button v-if=\"showSelectAll\" inline @click=\"selectAll\">{{ selectAllCountText }}</ll-button>\n <ll-button v-else inline @click=\"clearSelected\">\n {{ clearSelectedText }}\n </ll-button>\n </div>\n </div>\n <div v-else-if=\"hideBulkActionOptions && !!totalSelectedCount\" class=\"tw-ml-1.5 lg:tw-hidden\">\n <h4>{{ numItemsSelectedText }}</h4>\n </div>\n </div>\n <div v-if=\"!!totalSelectedCount && !hideBulkActionOptions\" :class=\"$style.actions\">\n <slot name=\"bulk-actions-content\"></slot>\n </div>\n </div>\n</template>\n\n<style module>\n .select-bar {\n @media screen('lg') {\n border-bottom: 1px solid var(--color-ice-200);\n justify-content: center;\n vertical-align: middle;\n }\n }\n\n .checkbox {\n flex: 0 0 auto;\n }\n\n .actions > * {\n margin-top: theme('spacing.6');\n width: 100%;\n\n @media screen('lg') {\n margin-left: theme('spacing.3');\n margin-top: 0;\n width: auto;\n }\n }\n</style>\n","<script>\n import EmptyState from '../../EmptyState/EmptyState.vue';\n import Loading from '../../Loading/Loading.vue';\n\n export default {\n name: 'loading-manager',\n\n components: {\n EmptyState,\n Loading,\n },\n\n props: {\n emptyStateText: {\n type: String,\n default: '',\n },\n\n loading: Boolean,\n\n results: {\n type: Array,\n default: () => [],\n },\n },\n };\n</script>\n\n<template>\n <Loading v-if=\"loading\" class=\"ll-bg-white\" />\n <transition-group v-else-if=\"results.length\" name=\"slide-y\" tag=\"ul\">\n <slot></slot>\n </transition-group>\n <EmptyState v-else class=\"ll-bg-white\" :class=\"$style['empty-state']\" :text=\"emptyStateText\" />\n</template>\n\n<style module>\n .empty-state {\n max-width: 100%;\n }\n</style>\n","<script>\n import { CSS_VARS } from '../../../constants';\n import sticky from '../../../directives/sticky/sticky';\n import { getCssVar } from '../../../utils/helpers';\n import Button from '../../Button/Button.vue';\n import Expand from '../../Expand/Expand.vue';\n import Icon from '../../Icon/Icon.vue';\n\n export default {\n name: 'list-group',\n\n components: {\n Expand,\n 'll-button': Button,\n Icon,\n },\n\n directives: {\n sticky,\n },\n\n props: {\n /**\n * Disables the gutters between adjacent ListGroup components.\n */\n disableExternalGutters: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Allows the list items to be collapsed\n */\n isCollapsible: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Allows the expanded content to be collapsed by default.\n * Note: has no effect unless the `isCollapsible` prop is `true`.\n */\n isCollapsedByDefault: {\n type: Boolean,\n default: false,\n },\n },\n\n data() {\n const isExpanded = !this.isCollapsible || !this.isCollapsedByDefault;\n\n return {\n isExpanded,\n isDoneExpanding: isExpanded,\n };\n },\n\n computed: {\n headerOffset() {\n return parseFloat(getCssVar(CSS_VARS.TOP_HEADER_HEIGHT));\n },\n },\n\n methods: {\n toggleExpand() {\n if (!this.isCollapsible) {\n return;\n }\n\n this.isExpanded = !this.isExpanded;\n\n if (!this.isExpanded) {\n this.isDoneExpanding = false;\n } // else wait for Expand to emit @after-expand\n },\n\n onHeaderClick(e) {\n // toggle the ListGroup, except when clicking the actions\n if (!this.$refs.actionsContainer.contains(e.target)) {\n this.toggleExpand();\n }\n },\n },\n };\n</script>\n\n<template>\n <div\n :class=\"[\n $style['list-group'],\n {\n 'disable-external-gutters': disableExternalGutters,\n 'is-collapsed': !isExpanded,\n },\n ]\"\n >\n <header\n class=\"tw-flex tw-items-center\"\n :class=\"[$style['main-header'], { 'tw-cursor-pointer': isCollapsible }]\"\n @click=\"onHeaderClick\"\n >\n <ll-button v-if=\"isCollapsible\" :class=\"['tw-mr-1.5 tw-text-ice-900', $style['expansion-toggle-button']]\" icon>\n <Icon :class=\"[isExpanded ? 'tw-rotate-270' : 'rotate-180']\" name=\"chevron-left\" />\n </ll-button>\n\n <div class=\"tw-flex-auto\">\n <slot name=\"title\"></slot>\n </div>\n\n <div ref=\"actionsContainer\">\n <slot name=\"actions\"></slot>\n </div>\n </header>\n\n <Expand :is-expanded=\"isExpanded\" @after-expand=\"isDoneExpanding = true\">\n <div :class=\"$style['expanded-content-wrapper']\">\n <header\n v-if=\"$slots['expanded-content-list-header']\"\n v-sticky=\"isExpanded && isDoneExpanding ? headerOffset : 0\"\n :class=\"$style['expanded-content-header']\"\n >\n <div class=\"tw-ll-grid tw-flex-1\" :class=\"$style['expanded-content-header-grid']\">\n <slot name=\"expanded-content-list-header\"></slot>\n </div>\n </header>\n <div :class=\"$style['expanded-content-list-items-wrapper']\">\n <transition-group name=\"fade\" mode=\"out-in\">\n <slot name=\"expanded-content-list-items\"></slot>\n </transition-group>\n </div>\n </div>\n </Expand>\n </div>\n</template>\n\n<style module>\n .main-header {\n @apply tw-shadow;\n\n background-color: var(--color-white);\n border-radius: theme('borderRadius.DEFAULT');\n margin-bottom: theme('spacing.6');\n padding: var(--grid-gutter);\n\n @media screen('lg') {\n border-bottom: theme('borderWidth.DEFAULT') solid var(--color-ice-200);\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n margin-bottom: 0;\n }\n }\n\n .expanded-content-wrapper {\n position: relative;\n width: 100%;\n }\n\n @media screen('lg') {\n .expanded-content-wrapper {\n @apply tw-shadow;\n }\n }\n\n .expanded-content-header {\n background-color: var(--color-white);\n border-bottom: theme('borderWidth.DEFAULT') solid var(--color-ice-200);\n color: var(--color-ice-900);\n display: none;\n font-weight: 500;\n padding: 0 theme('spacing.3');\n transition: padding theme('transitionDuration.150') theme('transitionTimingFunction.swing');\n z-index: 1;\n\n @media screen('lg') {\n align-items: center;\n display: flex;\n }\n\n &:global(.is-sticky) {\n @apply tw-shadow;\n\n border-radius: 0;\n z-index: calc(theme('zIndex.control') + 1);\n }\n }\n\n .expanded-content-header-grid {\n column-gap: 0;\n grid-column-gap: 0;\n\n > div {\n align-items: center;\n border-right: theme('borderWidth.DEFAULT') solid var(--color-ice-200);\n display: flex;\n font-size: theme('fontSize.xs');\n justify-content: space-between;\n padding: theme('spacing.3');\n\n &:last-of-type {\n border-right: 0;\n }\n }\n }\n\n .expansion-toggle-button:focus {\n box-shadow: none;\n }\n\n .list-group:global(.disable-external-gutters) {\n .main-header {\n @media screen('lg') {\n border-radius: 0;\n }\n }\n\n .expanded-content-list-items-wrapper > * {\n @media screen('lg') {\n border-bottom: theme('borderWidth.DEFAULT') solid var(--color-ice-200);\n border-radius: 0;\n }\n }\n\n &:last-of-type {\n &:global(.is-collapsed) .main-header,\n .expanded-content-list-items-wrapper > *:last-child {\n @media screen('lg') {\n border-bottom: none;\n border-bottom-left-radius: theme('borderRadius.DEFAULT');\n border-bottom-right-radius: theme('borderRadius.DEFAULT');\n }\n }\n }\n }\n</style>\n","<script>\n import Icon from '../../Icon/Icon.vue';\n\n export default {\n name: 'list-header',\n\n components: {\n 'll-icon': Icon,\n },\n\n props: {\n /**\n * keys to be sorted for the column\n * the first key should be the default sort value\n */\n sortKeys: {\n type: Array,\n required: true,\n validator: (value) => value.length === 2,\n },\n\n listViewRef: {\n type: Object,\n default: null,\n },\n },\n\n data() {\n return {\n isAscending: null,\n };\n },\n\n computed: {\n listViewInstance() {\n return this.listViewRef || this.$parent;\n },\n /**\n * Is the column currently sorted\n */\n isSorted() {\n return this.sortKeys.includes(this.listViewInstance.sortTerm);\n },\n\n /**\n * Show the top icon if it's not sorted or if the current sortTerm matches\n */\n showCaretUp() {\n return this.isAscending === null || this.sortKeys[0] === this.listViewInstance.sortTerm;\n },\n\n /**\n * Show the bottom icon if it's not sorted or if the current sortTerm matches\n */\n showCaretDown() {\n return this.isAscending === null || this.sortKeys[1] === this.listViewInstance.sortTerm;\n },\n },\n\n watch: {\n isSorted: {\n handler(value) {\n this.isAscending = value ? true : null;\n },\n immediate: true,\n },\n },\n\n methods: {\n /**\n * Sorts the column by the sort field\n */\n sort() {\n this.listViewInstance.onSort(this.sortKeys[this.isAscending ? 1 : 0]);\n this.isAscending = !this.isAscending;\n },\n },\n };\n</script>\n\n<template>\n <div :class=\"['tw-cursor-pointer', { 'tw-bg-blue-100': isSorted }]\" @click=\"sort\">\n <slot></slot>\n <div class=\"h-4 w-3 tw-relative tw-text-ice-700\" :class=\"{ 'is-active-sort': isSorted }\">\n <ll-icon\n v-if=\"showCaretUp\"\n name=\"caret-up\"\n class=\"tw-absolute\"\n :class=\"[$style.caret, $style['caret-up']]\"\n size=\"dense\"\n />\n <ll-icon\n v-if=\"showCaretDown\"\n name=\"caret-down\"\n class=\"tw-absolute\"\n :class=\"[$style.caret, $style['caret-down']]\"\n size=\"dense\"\n />\n </div>\n </div>\n</template>\n\n<style module>\n .caret-up {\n top: -5px;\n }\n\n .caret-down {\n top: 2px;\n }\n\n :global(.is-active-sort) .caret {\n top: -2px; /* vertically center the caret icon */\n }\n</style>\n","<script>\n import cloneDeep from 'lodash-es/cloneDeep';\n import { computed } from 'vue';\n\n import useSearch from '../../composables/useSearch/useSearch';\n import { CSS_VARS, LLLV_CHANGE_TRIGGERS } from '../../constants';\n import sticky from '../../directives/sticky/sticky';\n import { t } from '../../locale';\n import { persistentStorage } from '../../storage';\n import { filterItems as _filterItems, getCssVar, sortItems as _sortItems } from '../../utils/helpers';\n import Badge from '../Badge/Badge.vue';\n import Button from '../Button/Button.vue';\n import Checkbox from '../Checkbox/Checkbox.vue';\n import Dropdown from '../Dropdown/Dropdown.vue';\n import Expand from '../Expand/Expand.vue';\n import Filters from '../Filters/Filters.vue';\n import Icon from '../Icon/Icon.vue';\n import Input from '../Input/Input.vue';\n import Paginate from '../Paginate/Paginate.vue';\n import BulkActions from './components/BulkActions.vue';\n import LoadingManager from './components/LoadingManager.vue';\n\n export { default as BulkActions } from './components/BulkActions.vue';\n export { default as ListGroup } from './components/ListGroup.vue';\n export { default as ListHeader } from './components/ListHeader.vue';\n export { default as LoadingManager } from './components/LoadingManager.vue';\n\n const DEFAULT_SEARCH_SCHEMA = {\n isSearchable: true,\n placeholder: 'Search',\n searchBy: ['name'],\n };\n\n export default {\n name: 'll-list-view',\n\n components: {\n BulkActions,\n Filters,\n Paginate,\n LoadingManager,\n Badge,\n Button,\n Icon,\n Dropdown,\n Expand,\n Checkbox,\n Input,\n },\n\n directives: {\n sticky,\n },\n\n inject: {\n trackSearch: { default: () => () => {} },\n trackFilters: { default: () => () => {} },\n trackSort: { default: () => () => {} },\n trackResults: { default: () => () => {} },\n },\n\n props: {\n /**\n * Hide the '{number} of {total} selected' text for bulk actions\n */\n hideNumberOfTotalSelected: {\n type: Boolean,\n default: false,\n },\n /**\n * Hide the Select All checkbox for bulk actions\n */\n hideSelectAll: {\n type: Boolean,\n default: false,\n },\n /**\n * Text to render in EmptyState component if there are no results\n */\n emptyStateText: {\n type: String,\n default: '',\n },\n filterSchema: {\n type: Array,\n default: () => [],\n },\n /**\n * Make search fuzzy. Only for client side search.\n */\n fuzzySearch: {\n type: Boolean,\n default: false,\n },\n hideTotal: Boolean,\n initialPage: {\n type: Number,\n default: undefined,\n },\n /**\n * Can items on the page be selected for bulk actions\n */\n isSelectable: Boolean,\n /**\n * For loading data already paginated, filtered (including search), and sorted from a backend.\n * Defining this prop will disable the built-in search, filtering, sorting and pagination.\n * You will instead need to use the available events (`@change`, and `@change:` prefixed)\n * to know when to request new pages from your backend.\n * This requires providing `totalItemCount`.\n * Use the loading prop to indicate when data is being loaded.\n */\n isServerSide: Boolean,\n /**\n * The data for each row. Used in this file as this.internalItems (a copy) to allow mutation;\n */\n items: {\n type: Array,\n default: () => [],\n },\n /**\n * Default field to track selected items by\n */\n itemTrackBy: {\n type: String,\n default: 'id',\n },\n loading: Boolean,\n // Number of items to display per page\n pageSize: {\n type: Number,\n default: 50,\n },\n searchSchema: {\n type: Object,\n default: () => ({}),\n },\n // Provide an optional custom 'Sort by' label\n sortLabel: {\n type: String,\n default: () => t('ll.listView.sortBy'),\n },\n sortOnLoad: Boolean,\n sorts: {\n type: Object,\n default: () => ({}),\n },\n /**\n * Total number of unpaginated results\n * Required when `isServerSide` is `true`\n */\n totalItemCount: {\n type: Number,\n default: undefined,\n },\n /**\n * Validation schema function that returns an object\n */\n validationSchema: {\n type: Function,\n default: () => () => undefined,\n },\n /**\n * Whether to disable the sticky filters\n * if disabled, the following will happen\n * 1. pre-selected value(s) can be added to\n * the filter component's attributes to overwrite the sticky filters\n * 2. users will not have sticky filters on the page\n */\n disablePersistency: Boolean,\n /**\n * Whether to disable the ability of saving 'show-filters'\n * in local storage\n */\n disableShowFilter: Boolean,\n /**\n * Whether to disable the stickiness of the header.\n * Default is false. When true, neither the list headers nor\n * the bulk actions (when applicable) will be sticky.\n */\n disableStickyHeader: Boolean,\n /**\n * Whether to expand the filters section by default on load.\n */\n showFiltersOnLoad: Boolean,\n\n /**\n * Do not use the LoadingManager, and instead render the default slot as passed\n */\n disableLoader: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Override the header offset used to position the sticky header\n */\n stickyHeaderOffset: {\n type: Number,\n default: null,\n },\n /**\n * Prevent bulk actions dropdown from rendering\n */\n hideBulkActionOptions: {\n type: Boolean,\n default: false,\n },\n\n /**\n * If initial search term is provided, the list will be filtered on load.\n */\n initialSearchTerm: {\n type: String,\n default: '',\n },\n\n /**\n * Function that determines whether the item checkbox is disabled or not (default: false)\n */\n isItemDisabled: {\n type: Function,\n default: () => false,\n },\n },\n\n emits: [\n 'change',\n 'change:filter',\n 'change:page',\n 'change:search',\n 'change:sort',\n 'change:reset',\n 'filters-toggle-click',\n 'select-all',\n 'deselect-all',\n 'update-filters',\n 'updateResults',\n ],\n\n data() {\n return {\n internalItems: [],\n currentPage: this.initialPage || 1, // TODO: fetch from query params\n previousPage: null,\n sortOptionsWidth: 0,\n filters: {},\n filterText: t('ll.filter'),\n searchFor: () => {}, // initialized in the watch handler for internalItems\n searchTerm: this.initialSearchTerm,\n searchText: t('ll.search'),\n sortTerm: '',\n isLoadingSearchSchemaAction: false,\n isShowingFilters: !!(\n this.filterSchema?.length &&\n (this.showFiltersOnLoad || persistentStorage.get('show-filters'))\n ),\n isFiltering: false,\n results: [],\n selectedItems: [],\n };\n },\n\n computed: {\n /**\n * Returns true if any of its list items are truthy; otherwise returns false.\n * @returns {boolean}\n */\n isLoading() {\n return [this.loading, this.isLoadingSearchSchemaAction, this.isFiltering].some(Boolean);\n },\n\n totalCount() {\n return this.isServerSide ? this.totalItemCount : this.results.length;\n },\n\n /**\n * Helps determine if the list is filtered or not when there is an incomplete\n * result list, such as when isServerSide is true.\n */\n isFiltered() {\n return !!(this.numberOfFilters || this.searchTerm);\n },\n\n /**\n * Merges the searchSchema with the default value since all attributes are optional\n */\n internalSearchSchema() {\n return {\n ...DEFAULT_SEARCH_SCHEMA,\n searchBy: !this.searchSchema.isSearchable && DEFAULT_SEARCH_SCHEMA.searchBy,\n ...this.searchSchema,\n };\n },\n\n /**\n * Start of page\n */\n startIndex() {\n return this.pageSize * (this.currentPage - 1);\n },\n\n /**\n * End of page\n */\n endIndex() {\n return this.startIndex + this.pageSize;\n },\n\n /**\n * Slices the results set into a paginated segment.\n * @returns One page in the paginated set of results\n */\n paginated() {\n // Disables the built-in client-side pagination\n let paginated;\n\n if (this.isServerSide) {\n paginated = this.results;\n } else {\n const { endIndex, totalCount, results, startIndex } = this;\n\n paginated = results.slice(startIndex, Math.min(endIndex, totalCount));\n }\n\n this.$emit('updateResults', paginated);\n\n return paginated;\n },\n\n /**\n * Displays a visual indication for the number of results, or \"working\" if the\n * results are being determined.\n */\n total() {\n const current = this.pageSize * (this.currentPage - 1);\n const range = this.paginated.length ? `${current + 1} - ${current + this.paginated.length}` : 0;\n\n return this.isLoading\n ? t('ll.listView.calculating')\n : t('ll.listView.totalResults', { num: String(range), total: String(this.totalCount) });\n },\n\n /**\n * Determines if both #list-header and #list-items slots are used.\n * @returns {boolean}\n */\n useDefinedSlots() {\n return !!this.$slots['list-header'] && !!this.$slots['list-items'];\n },\n\n /**\n * Don't show total count if list items are selected and total is not hidden\n */\n shouldShowTotal() {\n return !this.totalSelectedCount && !this.hideTotal;\n },\n\n /**\n * Returns a list of the selected items' track by field\n */\n selectedItemIds() {\n return this.selectedItems.map((item) => item[this.itemTrackBy]);\n },\n\n /**\n * Returns a list of the paginated items' track by field\n */\n paginatedIds() {\n return this.paginated.map((item) => item[this.itemTrackBy]);\n },\n\n isAllPageChecked() {\n if (this.isServerSide) {\n return this.totalCount > 0 && this.totalCount === this.selectedItemIds.length;\n }\n\n return this.totalCount > 0 && this.paginatedIds.every((id) => this.selectedItemIds.includes(id));\n },\n\n isSomePageChecked() {\n if (this.isServerSide) {\n return this.totalCount > 0 && this.selectedItemIds.length > 0;\n }\n\n return this.totalCount > 0 && this.paginatedIds.some((id) => this.selectedItemIds.includes(id));\n },\n\n numberOfFilters() {\n return Object.keys(this.filters).reduce((acc, item) => {\n const filterBy = this.filters[item].filterBy;\n const isBoolean = typeof filterBy[0] === 'boolean';\n const isToggle = this.filters[item].filterType === 'll-checkbox';\n const isEmpty = !this.filters[item].filterType.length;\n const isInputOptionsIncomplete = this.filters[item].filterType === 'll-input-options' && filterBy[0] === '';\n\n /**\n * Don't include hidden or incomplete fields in the count:\n * - Hidden filter populated via another filter's onChange callback\n * - InputOptions with incomplete/missing values\n */\n if (isEmpty || isInputOptionsIncomplete) {\n return acc;\n }\n\n if (isBoolean || typeof filterBy[0] === 'string') {\n // Do not count toggle filters (eg. checkbox) with a `false` value\n return acc + (filterBy[0] || !isToggle ? 1 : 0);\n }\n\n return acc + (filterBy.length || 0);\n }, 0);\n },\n\n isSelectBarVisible() {\n return !!this.totalSelectedCount;\n },\n\n showPrimaryControls() {\n return this.internalSearchSchema.isSearchable || this.filterSchema.length;\n },\n\n showSecondaryControls() {\n return !!this.$slots['secondary-controls'];\n },\n\n isSortable() {\n return Object.keys(this.sorts).length > 0;\n },\n\n totalSelectedCount() {\n return this.selectedItems.length;\n },\n\n headerOffset() {\n // passing null to the v-sticky directive will prevent it from being attached to the node\n if (this.disableStickyHeader) {\n return null;\n }\n\n return this.stickyHeaderOffset ?? parseFloat(getCssVar(CSS_VARS.TOP_HEADER_HEIGHT));\n },\n },\n\n watch: {\n isShowingFilters(value) {\n if (!this.disableShowFilter) {\n persistentStorage.set('show-filters', value);\n }\n },\n\n items: {\n handler() {\n this.internalItems = cloneDeep(this.items);\n },\n immediate: true,\n deep: true,\n },\n\n internalItems: {\n handler() {\n if (this.isServerSide) {\n this.results = this.internalItems;\n\n this.trackResults({\n page: this.currentPage,\n results: this.results,\n search: this.searchTerm,\n });\n\n return;\n }\n\n const { searchFor } = useSearch({\n items: computed(() => this.internalItems),\n fieldNames: this.internalSearchSchema.searchBy.length\n ? this.internalSearchSchema.searchBy\n : [this.displayBy],\n trackBy: this.itemTrackBy,\n });\n\n this.searchFor = (searchTerm) => searchFor(searchTerm, { fuzzy: this.fuzzySearch });\n\n this.processResults();\n },\n immediate: true,\n },\n\n sortTerm() {\n if (this.isServerSide) {\n return;\n }\n\n this.processResults();\n },\n\n sorts: {\n handler(value) {\n const sortTerms = Object.keys(value);\n\n this.sortTerm = this.sortOnLoad && sortTerms.length ? sortTerms[0] : '';\n },\n immediate: true,\n },\n },\n\n created() {\n if (this.isServerSide) {\n if (this.totalItemCount === undefined) {\n throw new Error('`totalItemCount` is required when `isServerSide` is `true`.');\n }\n\n return;\n }\n\n if (this.searchSchema.action && this.internalItems.length) {\n throw new Error('You must pass either `action` or `items`, not both.');\n }\n\n if (this.searchTerm) {\n this.onSearch();\n }\n },\n\n methods: {\n /**\n * Processes the results with searchFor, filterItems, and/or sortItems.\n * Skipped when isServerSide is true because results are pre-processed.\n * @returns {Promise<void>}\n */\n async processResults() {\n if (this.searchSchema.action) {\n this.isLoadingSearchSchemaAction = true;\n let actionResponse;\n\n try {\n actionResponse = await this.searchSchema.action({ search: this.searchTerm });\n } finally {\n this.isLoadingSearchSchemaAction = false;\n }\n\n this.results = this.sortItems(this.filterItems(actionResponse?.results || []));\n } else {\n this.results = this.sortItems(this.filterItems(this.searchFor(this.searchTerm)));\n }\n\n this.trackResults({\n page: this.currentPage,\n results: this.results,\n search: this.searchTerm,\n });\n },\n\n /**\n * Filters the list of `items` based on options selected in the `filters` object\n * @param {array} items A list of items to filter.\n * @returns list of items filtered by the applied filters\n */\n filterItems(items) {\n return _filterItems(items, this.filters);\n },\n\n /**\n * Sorts a list of items based on options selected in the `sorts` object\n * @param {array} items A list of items to sort.\n * @returns list of items sorted according to the sort term.\n */\n sortItems(items) {\n return this.sortTerm ? _sortItems(items, this.sorts[this.sortTerm]) : items;\n },\n\n change({ trigger = '' } = {}) {\n const { currentPage, filters, isFiltered, pageSize, searchTerm, sortTerm } = this;\n\n const params = {\n filters,\n isFiltered,\n page: {\n number: currentPage,\n previousNumber: this.previousPage,\n size: pageSize,\n },\n search: searchTerm,\n sort: sortTerm,\n trigger,\n };\n\n this.$emit('change', params);\n },\n\n /**\n * Clear search term and reset results to their initial state\n */\n async clearSearchTerm() {\n this.searchTerm = '';\n await this.$attrs.onSearchTermClear?.();\n this.onSearch();\n },\n\n /**\n * Resets the results to their initial state on page load\n */\n reset() {\n this.$emit('change:reset');\n\n this.searchTerm = '';\n\n this.setPage({ pageNumber: 1 });\n\n if (this.isServerSide) {\n this.change({ trigger: LLLV_CHANGE_TRIGGERS.RESET });\n\n return;\n }\n\n this.processResults();\n },\n\n onSearchTermChange() {\n this.$attrs.onSearchTermChange?.(this.searchTerm);\n },\n\n /**\n * Event handler for when the user:\n * - clicks the Search button\n * - presses the enter key while focused on the search input\n * Calls a method in Filters that triggers `this.onFilter`. This is necessary\n * in order to persist the filters in local storage, which is handled internally\n * by Filters.\n */\n onSearch() {\n this.$refs.llFilters.applyFilters({ trigger: LLLV_CHANGE_TRIGGERS.SEARCH });\n },\n\n /**\n * Event handler for when the user:\n * - clicks the Apply button\n * - clicks the Search button (from `this.onSearch`)\n * - presses the enter key while focused on the search input (from `this.onSearch`)\n * @see: SELL-350\n * @param {object} [options] - optional parameters\n * @param {string} [options.trigger] - what caused the changes\n * @returns {Promise<void>}\n */\n async onFilter({ trigger = LLLV_CHANGE_TRIGGERS.APPLY } = {}) {\n this.setPage({ pageNumber: 1 });\n this.change({ trigger });\n this.trackSearch(this.searchTerm);\n this.trackFilters(this.filters);\n this.selectedItems = [];\n\n if (this.isServerSide) {\n return;\n }\n\n try {\n this.isFiltering = true;\n await this.processResults({ trigger });\n } finally {\n this.isFiltering = false;\n }\n\n this.$emit('change:search', this.searchTerm);\n this.$emit('change:filter', this.filters);\n this.$emit('update-filters', this.filters); // deprecated; replaced by change:filter\n this.clearSelected();\n },\n\n onFiltersToggleClick() {\n this.isShowingFilters = !this.isShowingFilters;\n\n this.$emit('filters-toggle-click', {\n isShowingFilters: this.isShowingFilters,\n });\n },\n\n /**\n * Extend the dropdown list so it does not shift when\n * the options drawer is open\n */\n onSortToggle() {\n // spacing added to the width of the dropdown container\n const spacing = 36;\n\n this.$nextTick(() => {\n this.sortOptionsWidth = `${this.$refs.sortOptions.clientWidth + spacing}px`;\n });\n },\n\n /**\n * Executes any side-effects when the sort `term` is changed\n * Always fires `change` automatically.\n * @param {string} term The updated sort term\n */\n onSort(term) {\n if (term === this.sortTerm) {\n return;\n }\n\n this.sortTerm = term;\n\n this.$emit('change:sort', term);\n this.trackSort(term);\n this.clearSelected();\n this.setPage({ pageNumber: 1 });\n this.change({ trigger: LLLV_CHANGE_TRIGGERS.SORT });\n },\n\n /**\n * Sets current page for the Paginator.\n * @param {Object} data\n * @param {number} data.pageNumber - the page number\n * @param {boolean} data.forceChange - flag to force the change\n */\n setPage({ pageNumber, forceChange = false } = {}) {\n this.previousPage = this.currentPage;\n\n this.currentPage = pageNumber;\n\n if (!this.isServerSide) {\n this.$emit('change:page', pageNumber);\n }\n\n if (forceChange) {\n this.change({ trigger: LLLV_CHANGE_TRIGGERS.PAGE });\n }\n },\n\n /**\n * Set the scroll position to the top of the list view.\n */\n scrollToTop() {\n this.$refs.scrollTarget && this.$refs.scrollTarget.scrollIntoView({ behavior: 'smooth', block: 'center' });\n },\n\n onPaginateSetPage(pageNumber) {\n this.setPage({ pageNumber, forceChange: true });\n this.scrollToTop();\n },\n\n /**\n * Selects or deselects all items on a page\n */\n onSelectPage(value) {\n this.$emit('select-all', value);\n\n if (value) {\n const items = Array.from(new Set([...this.selectedItems, ...this.paginated]));\n\n this.selectedItems = this.selectItems(items);\n } else {\n this.selectedItems = this.selectedItems.filter((item) => !this.paginatedIds.includes(item[this.itemTrackBy]));\n }\n },\n\n selectAll() {\n this.selectedItems = this.selectItems(this.results);\n },\n\n /**\n * Selects one item\n */\n onSelectItem({ item, value }) {\n if (this.isItemDisabled(item)) {\n return;\n }\n\n if (value) {\n this.selectedItems.push(item);\n } else {\n this.selectedItems = this.selectedItems.filter(\n (selectedItem) => selectedItem[this.itemTrackBy] !== item[this.itemTrackBy],\n );\n }\n },\n\n /**\n * Clears current selected items\n */\n clearSelected() {\n this.$emit('deselect-all');\n this.selectedItems = [];\n },\n\n selectItems(items) {\n return items.reduce((acc, item) => (this.isItemDisabled(item) ? acc : [...acc, item]), []);\n },\n },\n };\n</script>\n\n<template>\n <div>\n <div\n v-if=\"showPrimaryControls || showSecondaryControls\"\n ref=\"scrollTarget\"\n class=\"tw-mb-6\"\n :class=\"{ 'tw-ll-grid': showPrimaryControls && showSecondaryControls }\"\n >\n <div\n v-if=\"showPrimaryControls\"\n class=\"controls\"\n :class=\"[$style['legacy-box'], { 'tw-col-span-12 lg:tw-col-span-6': showSecondaryControls }]\"\n data-test=\"filters|controls\"\n >\n <div class=\"tw-ll-grid tw-grid-cols-4 md:tw-grid-cols-8 lg:tw-grid-cols-12\">\n <!-- Search -->\n <Input\n v-if=\"internalSearchSchema.isSearchable\"\n ref=\"search-input\"\n v-model=\"searchTerm\"\n class=\"tw-col-span-3 md:tw-col-span-4\"\n data-test=\"input|search-input\"\n :class=\"[$style['search-input'], { 'lg:tw-col-span-8': showSecondaryControls }]\"\n :hint-text=\"internalSearchSchema.hintText\"\n :label=\"searchText\"\n :placeholder=\"internalSearchSchema.placeholder\"\n @keyup.enter=\"!isLoading && onSearch()\"\n @change=\"onSearchTermChange\"\n >\n <template #append>\n <button\n v-if=\"searchTerm\"\n data-test=\"button|clear-search\"\n :class=\"$style['clear-button']\"\n :disabled=\"isLoading\"\n @click=\"clearSearchTerm\"\n >\n <Icon name=\"close\" />\n </button>\n <Button\n data-test=\"button|search-button\"\n :disabled=\"isLoading\"\n :class=\"$style['search-button']\"\n @click=\"onSearch\"\n >\n <Icon\n :class=\"{ 'tw-animate-spin tw-text-teal-500': isFiltering }\"\n :name=\"isFiltering ? 'working' : 'search'\"\n />\n </Button>\n </template>\n </Input>\n\n <!-- Filter Toggle -->\n <div\n v-if=\"filterSchema.length\"\n class=\"tw-col-span-1 tw-flex tw-items-end\"\n :class=\"[\n $style['filter-toggle-btn'],\n { [$style['filter-toggle-btn-with-hint-text']]: !!internalSearchSchema.hintText },\n ]\"\n >\n <Badge :content=\"numberOfFilters\">\n <Button\n secondary\n class=\"tw-relative tw-w-full tw-min-w-auto\"\n color=\"blue\"\n data-test=\"button|toggle-filters\"\n :disabled=\"isFiltering\"\n @click=\"onFiltersToggleClick\"\n >\n <Icon\n v-if=\"isFiltering\"\n name=\"working\"\n :class=\"[\n { 'tw-animate-spin': isFiltering },\n isShowingFilters ? 'tw-text-teal-500' : 'tw-text-ice-700',\n ]\"\n />\n <Icon v-else name=\"filter-line\" />\n {{ filterText }}\n </Button>\n </Badge>\n </div>\n\n <!-- Actions -->\n <div class=\"button-grid tw-col-span-1 tw-items-end tw-justify-end lg:tw-col-span-3\">\n <slot name=\"actions\"> </slot>\n </div>\n </div>\n\n <!-- Filters -->\n <Expand data-test=\"filters|content\" :class=\"$style['filters-expand']\" :is-expanded=\"isShowingFilters\">\n <div class=\"tw-relative tw-pt-12\" :class=\"$style['filters-wrapper']\">\n <Filters\n ref=\"llFilters\"\n :class=\"{ [$style['filters-half-width']]: showPrimaryControls && showSecondaryControls }\"\n :disable-apply=\"isLoading\"\n :disable-clear=\"isLoading || !numberOfFilters\"\n :disable-persistency=\"disablePersistency\"\n :schema=\"filterSchema\"\n :validation-schema=\"validationSchema\"\n @change=\"filters = $event\"\n @reset=\"reset\"\n @submit=\"onFilter\"\n />\n </div>\n </Expand>\n </div>\n\n <div\n v-if=\"showSecondaryControls\"\n class=\"secondary-controls\"\n :class=\"[$style['legacy-box'], { 'tw-col-span-12 tw-mt-0 lg:tw-col-span-6': showPrimaryControls }]\"\n >\n <slot name=\"secondary-controls\"></slot>\n </div>\n </div>\n\n <!-- @slot Renders custom content in the space below the filters and above the list -->\n <slot name=\"eyebrow\"></slot>\n\n <div\n v-if=\"shouldShowTotal || Object.keys(sorts).length\"\n class=\"tw-mb-1.5\"\n :class=\"shouldShowTotal ? $style['total-sort'] : 'tw-text-right'\"\n >\n <div v-if=\"shouldShowTotal\" class=\"tw-text-xs\">{{ total }}</div>\n\n <!-- Sort -->\n <Dropdown\n v-if=\"Object.keys(sorts).length\"\n :class=\"$style.dropdown\"\n :label=\"`${sortLabel} ${sortTerm}`\"\n @toggle.once=\"onSortToggle\"\n >\n <ul ref=\"sortOptions\" class=\"dropdown__list\" :style=\"{ minWidth: sortOptionsWidth }\">\n <li\n v-for=\"(sortOption, index) in Object.keys(sorts)\"\n :key=\"index\"\n :class=\"{ 'tw-bg-blue-100 tw-text-ice-700': sortOption === sortTerm }\"\n class=\"dropdown__item tw-rounded\"\n >\n <Button inline class=\"tw-items-center\" :class=\"$style['sort-option']\" @click=\"onSort(sortOption)\">\n {{ sortOption }}\n <Icon v-if=\"sortOption === sortTerm\" name=\"check\" class=\"tw-ml-auto tw-text-blue-500\" />\n </Button>\n </li>\n </ul>\n </Dropdown>\n </div>\n\n <!-- Defined Slots -->\n <div v-if=\"useDefinedSlots\" :class=\"$style['list-items']\">\n <header\n v-sticky=\"headerOffset\"\n data-test=\"header|defined-slot\"\n :class=\"[\n $style.header,\n {\n 'tw-m-0': !isSelectable,\n },\n ]\"\n class=\"tw-rounded\"\n >\n <div :class=\"$style['header-grid-container']\" class=\"tw-border-b tw-border-ice-200 tw-px-3\">\n <Checkbox\n v-if=\"isSelectable\"\n class=\"tw-ml-3\"\n :checked=\"isSomePageChecked\"\n :class=\"$style['select-all']\"\n :indeterminate=\"isSomePageChecked && !isAllPageChecked\"\n @update:checked=\"onSelectPage\"\n />\n <div class=\"tw-ll-grid tw-flex-1\" :class=\"$style['header-grid']\">\n <slot name=\"list-header\"> </slot>\n </div>\n </div>\n\n <!-- Select Bar -->\n <BulkActions\n v-if=\"isSelectable\"\n v-bind=\"{\n allowSelectAll: !hideSelectAll && !isServerSide,\n isAllPageChecked,\n isSomePageChecked,\n totalCount,\n totalSelectedCount,\n hideBulkActionOptions,\n hideNumberOfTotalSelected,\n }\"\n :class=\"!isSelectBarVisible && 'lg:tw-hidden'\"\n @change:clear-selected=\"clearSelected\"\n @change:select-current=\"onSelectPage\"\n @change:select-all=\"selectAll\"\n >\n <template #bulk-actions-content>\n <slot name=\"bulk-actions\" :selected-items=\"selectedItems\"> </slot>\n </template>\n </BulkActions>\n </header>\n\n <component\n :is=\"disableLoader ? 'div' : 'LoadingManager'\"\n :empty-state-text=\"emptyStateText\"\n :loading=\"isLoading\"\n :results=\"paginated\"\n >\n <slot\n name=\"list-items\"\n :clear-all=\"clearSelected\"\n :display-items=\"results\"\n :is-filtered=\"isFiltered\"\n :is-item-disabled=\"isItemDisabled\"\n :results=\"paginated\"\n :on-select=\"onSelectItem\"\n :selected-items=\"selectedItems\"\n ></slot>\n </component>\n </div>\n\n <!-- Default Slot -->\n <slot\n :current-page=\"currentPage\"\n :display-items=\"results\"\n :filters=\"filters\"\n :is-filtered=\"isFiltered\"\n :is-item-disabled=\"isItemDisabled\"\n :results=\"paginated\"\n :search-term=\"searchTerm\"\n :total=\"totalCount\"\n ></slot>\n\n <!-- Pagination -->\n <Paginate\n v-if=\"totalCount > pageSize\"\n :current-page=\"currentPage\"\n :list-length=\"totalCount\"\n :page-size=\"pageSize\"\n @set-page=\"onPaginateSetPage\"\n />\n </div>\n</template>\n\n<style module>\n .list-items {\n background-color: var(--color-ice-200);\n border-bottom-left-radius: theme('borderRadius.DEFAULT');\n border-bottom-right-radius: theme('borderRadius.DEFAULT');\n min-width: 100%;\n position: relative;\n }\n\n @media screen('lg') {\n .list-items {\n @apply tw-shadow;\n }\n }\n\n /* the .legacy-box styles are copied from .box in _box.scss */\n .legacy-box {\n @apply tw-shadow;\n\n background: var(--color-white);\n border-radius: theme('borderRadius.DEFAULT');\n padding: theme('spacing.6') var(--grid-gutter);\n }\n\n .header {\n background-color: var(--color-white);\n color: var(--color-ice-900);\n font-weight: 500;\n margin-bottom: theme('spacing.3');\n overflow: hidden;\n z-index: 1;\n\n &:global(.is-sticky) {\n @apply tw-shadow;\n\n border-radius: 0;\n overflow: visible;\n z-index: calc(theme('zIndex.control') + 1);\n\n &::before,\n &::after {\n background-color: var(--color-white);\n content: '';\n height: 100%;\n overflow-x: hidden;\n position: absolute;\n right: 100%;\n top: 0;\n width: theme('spacing.3');\n\n @media screen('lg') {\n content: none;\n }\n }\n\n &::after {\n left: 100%;\n right: auto;\n }\n }\n\n :global(.input--checkbox) {\n label {\n min-height: theme('spacing.6');\n }\n }\n\n @media screen('lg') {\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n margin-bottom: 0;\n }\n }\n\n .header-grid-container {\n display: none;\n transition: padding theme('transitionDuration.150') theme('transitionTimingFunction.swing');\n\n @media screen('lg') {\n align-items: center;\n display: flex;\n }\n }\n\n .header-grid {\n column-gap: 0 !important;\n grid-column-gap: 0 !important;\n\n > div {\n align-items: center;\n border-right: 1px solid var(--color-ice-200);\n display: flex;\n font-size: theme('fontSize.xs');\n justify-content: space-between;\n padding: theme('spacing.3');\n\n &:first-of-type {\n margin-left: calc(-1 * theme('spacing.3'));\n padding-left: theme('spacing.6');\n }\n\n &:last-of-type {\n border-right: 0;\n margin-right: calc(-1 * theme('spacing.3'));\n }\n }\n }\n\n .search-input {\n :global(input) {\n /* to prevent search text from overlapping the \"Clear\" button */\n padding-right: calc(theme('height.input') * 2) !important;\n }\n\n :global(.stash-input-append) {\n display: flex;\n justify-content: flex-end;\n width: 72px; /* double the the default width of 36px */\n\n .clear-button {\n color: var(--color-ice-700);\n height: 36px;\n margin: 0;\n min-width: 36px;\n padding: 0;\n width: 36px;\n\n &:disabled {\n color: var(--color-ice-500);\n cursor: default;\n }\n }\n\n .search-button {\n border-bottom-left-radius: 0;\n border-color: var(--color-blue-500);\n border-left: none;\n border-top-left-radius: 0;\n min-width: 36px;\n padding: 0 theme('spacing[1.5]');\n width: 36px;\n\n &:disabled {\n border-color: var(--color-ice-500);\n }\n }\n }\n }\n\n @media screen('md') {\n .total-sort {\n align-items: baseline;\n display: flex;\n justify-content: space-between;\n }\n }\n\n .filter-toggle-btn {\n min-width: fit-content !important; /* ensure this overrides the grid min-width applied */\n }\n\n .filter-toggle-btn-with-hint-text {\n /* search hint text has 16px of height and has 4px of margin top. Adding here directly to compensate that */\n margin-bottom: 20px;\n }\n\n @keyframes separator {\n 0% {\n opacity: 0;\n }\n\n 100% {\n opacity: 1;\n }\n }\n\n .filters-expand:global(.stash-expand--expanded) {\n .filters-wrapper::before {\n animation: separator theme('transitionDuration.300') theme('transitionTimingFunction.ease-in-out') 0.5s 1 forwards;\n background: var(--color-ice-200);\n content: '';\n height: theme('borderWidth.DEFAULT');\n left: calc(var(--grid-gutter) * -1);\n opacity: 0;\n position: absolute;\n right: calc(var(--grid-gutter) * -1);\n top: theme('spacing.6');\n }\n }\n\n .filters-half-width {\n @media screen('lg') {\n :global(.field-wrapper) {\n grid-column: span 6 / span 6; /* col-span-6 */\n }\n }\n }\n\n .dropdown :global(.tw-text-blue-500) {\n font-size: theme('fontSize.xs');\n }\n\n .sort-option {\n height: theme('spacing.9');\n }\n\n .select-all {\n width: theme('spacing.6');\n }\n</style>\n"],"names":["_sfc_main","Button","Checkbox","t","value","_createElementBlock","_ctx","$props","_createElementVNode","_createVNode","_component_ll_checkbox","_normalizeClass","$options","_openBlock","_hoisted_1","_hoisted_2","_toDisplayString","_createBlock","_component_ll_button","_hoisted_3","_renderSlot","EmptyState","Loading","_component_Loading","_TransitionGroup","_component_EmptyState","Expand","Icon","sticky","isExpanded","getCssVar","CSS_VARS","$data","args","_component_Icon","_component_Expand","_component_ll_icon","DEFAULT_SEARCH_SCHEMA","BulkActions","Filters","Paginate","LoadingManager","Badge","Dropdown","Input","_a","persistentStorage","paginated","endIndex","totalCount","results","startIndex","current","range","item","id","acc","filterBy","isBoolean","isToggle","isEmpty","isInputOptionsIncomplete","cloneDeep","searchFor","useSearch","computed","searchTerm","sortTerms","actionResponse","items","_filterItems","_sortItems","trigger","currentPage","filters","isFiltered","pageSize","sortTerm","params","_b","LLLV_CHANGE_TRIGGERS","term","pageNumber","forceChange","selectedItem","_component_Input","$event","_cache","_withKeys","_component_Button","_component_Badge","_createTextVNode","_component_Filters","_hoisted_4","_component_Dropdown","_Fragment","_renderList","sortOption","index","_component_Checkbox","_component_BulkActions","_mergeProps","_resolveDynamicComponent","_component_Paginate"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Logo.vue_vue_type_script_setup_true_lang-d7da48a0.js","sources":["../assets/logos/direct-pay-lockup.svg","../assets/logos/flex-pay-lockup.svg","../assets/logos/leaflink-brandmark.svg","../assets/logos/leaflink-lockup.svg","../assets/logos/marketplace-brandmark.svg","../assets/logos/payments-brandmark.svg","../assets/logos/payments-lockup.svg","../assets/logos/post-lockup.svg","../src/components/Logo/Logo.vue"],"sourcesContent":["import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n fill: \"#1E164B\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 107 24\"\n}\nconst _hoisted_2 = /*#__PURE__*/_createElementVNode(\"path\", {\n \"fill-rule\": \"evenodd\",\n \"clip-rule\": \"evenodd\",\n d: \"M6.746 2a4 4 0 0 0-4 4v12a4 4 0 0 0 4 4h12a4 4 0 0 0 4-4V6a4 4 0 0 0-4-4h-12Zm6.827 8.927c1.473.394 2.567 1.196 2.567 2.61 0 1.344-.936 2.313-2.244 2.63-.342.083-.614.368-.614.72v.18a.496.496 0 0 1-.992 0v-.215c0-.354-.263-.646-.601-.75-.973-.302-1.658-.964-1.933-1.782-.154-.457.253-.855.736-.855.485 0 .856.437 1.161.815.265.328.708.54 1.293.54.92 0 1.43-.539 1.43-1.195 0-.51-.365-.933-1.226-1.167l-1.137-.32c-1.983-.51-2.333-1.707-2.333-2.48 0-1.234.86-2.154 2.034-2.512.324-.1.576-.379.576-.717v-.183a.496.496 0 1 1 .992 0v.174c0 .34.26.62.587.714.941.269 1.618.91 1.871 1.779.133.457-.273.847-.75.847-.473 0-.827-.424-1.134-.793l-.03-.036c-.23-.275-.591-.44-1.04-.44-.773 0-1.327.482-1.327 1.124 0 .262.073.772 1.05 1.035l1.064.277Z\"\n}, null, -1)\nconst _hoisted_3 = /*#__PURE__*/_createElementVNode(\"path\", { d: \"M28.746 16.832h3.803c2.782 0 4.39-2.076 4.39-4.811 0-2.749-1.608-4.853-4.39-4.853h-3.803v9.664Zm2.195-1.922V9.09h1.608c1.44 0 2.18 1.416 2.18 2.931 0 1.5-.74 2.89-2.18 2.89H30.94ZM38.63 16.832h2.195V7.168H38.63v9.664ZM47.905 16.832h2.558l-2.488-3.52c1.551-.393 2.264-1.585 2.264-2.946 0-1.599-1.006-3.198-3.243-3.198h-3.942v9.664h2.195v-3.394h.433l2.223 3.394ZM45.249 9.09h1.453c.895 0 1.329.687 1.329 1.332s-.42 1.276-1.384 1.276h-1.398V9.09ZM54.218 14.91V13.06h3.495V11.08h-3.495V9.09h3.984V7.168h-6.179v9.664h6.305V14.91h-4.11ZM64.262 17a4.898 4.898 0 0 0 4.054-2.146l-1.706-1.192c-.503.785-1.244 1.262-2.264 1.262-1.65 0-2.768-1.346-2.768-2.945 0-1.599 1.16-2.903 2.782-2.903 1.006 0 1.747.477 2.25 1.262l1.706-1.192A4.899 4.899 0 0 0 64.262 7c-2.712 0-4.893 2.258-4.893 4.979 0 2.749 2.18 5.021 4.893 5.021ZM76.216 7.168h-7.283V9.09h2.544v7.742h2.195V9.09h2.544V7.168ZM85.39 7.168h-3.97v9.664h2.195V13.55h1.776c2.236 0 3.243-1.571 3.243-3.184 0-1.599-1.007-3.198-3.243-3.198Zm-.097 4.46h-1.678V9.09h1.692c.81 0 1.118.659 1.118 1.276s-.308 1.262-1.132 1.262ZM95.526 16.832h2.335L94.31 7.168h-2.39l-3.566 9.664h2.349l.713-2.244h3.383l.727 2.244Zm-3.509-4.152 1.077-3.38 1.09 3.38h-2.167ZM103.758 7.168l-2.265 3.563-2.222-3.563h-2.615l3.747 5.302v4.362h2.209v-4.32l3.76-5.344h-2.614Z\" }, null, -1)\nconst _hoisted_4 = [\n _hoisted_2,\n _hoisted_3\n]\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, _hoisted_4))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n fill: \"#1E164B\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 89 24\"\n}\nconst _hoisted_2 = /*#__PURE__*/_createElementVNode(\"path\", {\n \"fill-rule\": \"evenodd\",\n \"clip-rule\": \"evenodd\",\n d: \"M6 2a4 4 0 0 0-4 4v12a4 4 0 0 0 4 4h12a4 4 0 0 0 4-4V6a4 4 0 0 0-4-4H6Zm6.827 8.927c1.473.394 2.567 1.196 2.567 2.61 0 1.344-.936 2.313-2.244 2.63-.342.083-.614.368-.614.72v.18a.496.496 0 0 1-.992 0v-.215c0-.354-.264-.646-.602-.75-.972-.302-1.657-.964-1.932-1.782-.154-.457.253-.855.736-.855.485 0 .856.437 1.161.815.265.328.708.54 1.293.54.919 0 1.43-.539 1.43-1.195 0-.51-.365-.933-1.226-1.167l-1.137-.32c-1.983-.51-2.333-1.707-2.333-2.48 0-1.234.86-2.154 2.034-2.512.324-.1.576-.379.576-.717v-.183a.496.496 0 1 1 .992 0v.174c0 .34.26.62.587.714.941.269 1.618.91 1.871 1.779.133.457-.273.847-.75.847-.474 0-.827-.424-1.134-.793l-.03-.036c-.23-.275-.591-.44-1.04-.44-.773 0-1.327.482-1.327 1.124 0 .262.073.772 1.05 1.035l1.064.277Z\"\n}, null, -1)\nconst _hoisted_3 = /*#__PURE__*/_createElementVNode(\"path\", { d: \"M34.08 9.09V7.168H28v9.664h2.19V13.03h3.08v-1.908h-3.08V9.09h3.89ZM35.639 16.832h5.716V14.91h-3.527V7.168h-2.19v9.664ZM44.922 14.91V13.06h3.486V11.08h-3.486V9.09h3.974V7.168h-6.163v9.664h6.288V14.91h-4.1ZM58.978 16.832l-3.333-5.148 3.04-4.516h-2.621l-1.715 2.763-1.687-2.763h-2.65l3.026 4.516-3.304 5.148h2.565l2.05-3.394 2.05 3.394h2.579ZM67.82 7.168h-3.96v9.664h2.19V13.55h1.77c2.23 0 3.235-1.571 3.235-3.184 0-1.599-1.004-3.198-3.235-3.198Zm-.098 4.46H66.05V9.09h1.687c.809 0 1.116.659 1.116 1.276s-.307 1.262-1.13 1.262ZM77.929 16.832h2.328l-3.541-9.664H74.33l-3.555 9.664h2.342l.711-2.244h3.375l.725 2.244Zm-3.5-4.152 1.074-3.38 1.087 3.38H74.43ZM86.139 7.168l-2.259 3.563-2.217-3.563h-2.607l3.737 5.302v4.362h2.203v-4.32l3.75-5.344H86.14Z\" }, null, -1)\nconst _hoisted_4 = [\n _hoisted_2,\n _hoisted_3\n]\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, _hoisted_4))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n viewBox: \"0 0 29 24\",\n fill: \"#1E164B\",\n xmlns: \"http://www.w3.org/2000/svg\"\n}\nconst _hoisted_2 = /*#__PURE__*/_createElementVNode(\"path\", { d: \"M7.219 18.834v-4.518L0 23.633h4.195l3.092-3.99a4.956 4.956 0 0 1-.068-.81ZM14.74 22.248a3.8 3.8 0 0 1-2.657-1.094 3.68 3.68 0 0 1-1.097-2.621c0-.03.01-11.764.01-13.665.003-1.747 1.502-3.334 3.442-3.334.87 0 1.706.324 2.343.906A4.876 4.876 0 0 0 14.408.41a4.971 4.971 0 0 0-3.139-.193 4.902 4.902 0 0 0-2.61 1.726 4.771 4.771 0 0 0-1.007 2.932v13.942c0 2.522 2.11 4.803 4.9 4.803a4.904 4.904 0 0 0 2.834-.887c.345-.238.658-.517.932-.831a3.753 3.753 0 0 1-1.578.347Z\" }, null, -1)\nconst _hoisted_3 = /*#__PURE__*/_createElementVNode(\"path\", { d: \"M18.023 18.823v-4.518l-4.23 5.429c-.219.282-.53.48-.883.562-.351.081-.72.04-1.044-.117.265.46.641.848 1.094 1.132a3.338 3.338 0 0 0 3.073.248c.494-.207.929-.53 1.267-.941l.788-1.008a4.672 4.672 0 0 1-.065-.787ZM25.55 22.248a3.799 3.799 0 0 1-2.657-1.094 3.679 3.679 0 0 1-1.096-2.621l.01-13.665c0-1.746 1.5-3.33 3.441-3.33.868 0 1.703.325 2.338.907A4.875 4.875 0 0 0 25.216.414 4.971 4.971 0 0 0 22.077.22a4.902 4.902 0 0 0-2.61 1.723 4.77 4.77 0 0 0-1.01 2.931v13.942c0 2.522 2.111 4.803 4.9 4.803a4.904 4.904 0 0 0 2.835-.887c.345-.238.658-.517.932-.831a3.756 3.756 0 0 1-1.574.347Z\" }, null, -1)\nconst _hoisted_4 = /*#__PURE__*/_createElementVNode(\"path\", { d: \"m26.12 17.75-1.523 1.983c-.219.282-.53.48-.881.562-.352.081-.72.04-1.044-.116.266.46.642.848 1.095 1.132a3.339 3.339 0 0 0 3.073.248c.494-.207.929-.53 1.268-.941l.67-.865-2.657-2.003ZM25.243 1.989c-.547 0-1.084.147-1.553.425a2.99 2.99 0 0 0-1.11 1.15 1.58 1.58 0 0 1 1.973.31 1.52 1.52 0 0 1 .044 1.966L22.23 8.897v5.399l5.02-6.459a4.711 4.711 0 0 0 1.01-2.921 2.943 2.943 0 0 0-.897-2.073 3.038 3.038 0 0 0-2.119-.854ZM14.438 1.989a3.055 3.055 0 0 0-1.551.426 2.99 2.99 0 0 0-1.108 1.15 1.58 1.58 0 0 1 1.97.312 1.52 1.52 0 0 1 .044 1.963l-2.368 3.057v5.399l5.019-6.459a4.713 4.713 0 0 0 1.008-2.921 2.943 2.943 0 0 0-.897-2.073 3.038 3.038 0 0 0-2.117-.854Z\" }, null, -1)\nconst _hoisted_5 = [\n _hoisted_2,\n _hoisted_3,\n _hoisted_4\n]\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, _hoisted_5))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createStaticVNode as _createStaticVNode } from \"vue\"\n\nconst _hoisted_1 = {\n fill: \"#1E164B\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 139 24\"\n}\nconst _hoisted_2 = /*#__PURE__*/_createStaticVNode(\"<g clip-path=\\\"url(#logo_leaflink_lockup)\\\"><path d=\\\"M35.265.068h3.883V23.64h-3.883V.068ZM57.586 16.946H45.493c.433 2.143 2.11 3.232 4.422 3.232 1.708 0 3.316-.66 4.254-1.912l2.58 1.945c-1.44 2.242-4.188 3.429-7.036 3.429-4.689 0-8.24-3.231-8.24-8.045 0-4.912 3.752-8.013 8.207-8.013 4.49 0 8.007 3.069 8.007 7.88-.005.496-.038.992-.1 1.484Zm-3.786-2.67c-.234-2.11-1.876-3.33-4.053-3.33-2.11 0-3.785.989-4.254 3.33H53.8ZM76.628 7.913V23.64H72.74v-2.407c-1.071 1.648-3.282 2.407-5.196 2.407-4.12 0-7.709-3.132-7.709-8.045 0-4.944 3.552-8.013 7.672-8.013 1.977 0 4.158.759 5.226 2.374V7.91l3.894.003Zm-3.953 7.649c0-2.704-2.278-4.418-4.522-4.418-2.412 0-4.389 1.846-4.389 4.418s1.977 4.484 4.389 4.484c2.378 0 4.522-1.78 4.522-4.484ZM83.997 6.891v1.352h3.484v3.069h-3.484V23.64h-3.882V7.089C80.115 2.67 82.255 0 86.61 0h1.843l-1.072 3.56c-2.647 0-3.418 1.451-3.384 3.331ZM91.182.07h3.886v23.57h-3.886V.07ZM97.993 2.803c0-1.352 1.172-2.341 2.546-2.341 1.407 0 2.512.989 2.512 2.34 0 1.32-1.105 2.342-2.512 2.342-1.37 0-2.546-1.023-2.546-2.341Zm.606 5.44h3.886v15.396h-3.886V8.243ZM120.934 15.003v8.637h-3.885v-8.276c0-2.44-1.508-3.693-3.25-3.693-1.776 0-3.984.957-3.984 3.922v8.044h-3.891V8.243h3.886v2.44c.803-1.913 3.249-2.77 4.857-2.77 4.023 0 6.267 2.604 6.267 7.09ZM134.073 23.64l-6.098-6.99v6.99h-3.885V.068h3.885v13.087l4.489-4.912h5.059l-6.365 6.726 7.838 8.67h-4.923ZM7.219 18.834v-4.518L0 23.633h4.195l3.092-3.99a4.956 4.956 0 0 1-.068-.81ZM14.74 22.248a3.8 3.8 0 0 1-2.657-1.094 3.68 3.68 0 0 1-1.097-2.621c0-.03.01-11.764.01-13.665.003-1.747 1.502-3.334 3.442-3.334.87 0 1.706.324 2.343.906A4.876 4.876 0 0 0 14.408.41a4.971 4.971 0 0 0-3.139-.193 4.902 4.902 0 0 0-2.61 1.726 4.771 4.771 0 0 0-1.007 2.932v13.942c0 2.522 2.11 4.803 4.9 4.803a4.903 4.903 0 0 0 2.834-.887c.345-.238.658-.517.932-.831a3.753 3.753 0 0 1-1.578.347Z\\\"></path><path d=\\\"M18.023 18.823v-4.518l-4.23 5.429c-.219.282-.53.48-.883.562-.351.081-.72.04-1.044-.117.265.46.641.848 1.094 1.132a3.338 3.338 0 0 0 3.073.248c.494-.207.929-.53 1.267-.941l.788-1.008a4.672 4.672 0 0 1-.065-.787ZM25.55 22.248a3.799 3.799 0 0 1-2.657-1.094 3.679 3.679 0 0 1-1.096-2.621l.01-13.665c0-1.746 1.5-3.33 3.441-3.33.868 0 1.703.325 2.338.907A4.875 4.875 0 0 0 25.216.414 4.971 4.971 0 0 0 22.077.22a4.902 4.902 0 0 0-2.61 1.723 4.77 4.77 0 0 0-1.01 2.931v13.942c0 2.522 2.111 4.803 4.9 4.803a4.904 4.904 0 0 0 2.835-.887c.345-.238.658-.517.932-.831a3.756 3.756 0 0 1-1.574.347Z\\\"></path><path d=\\\"m26.12 17.75-1.523 1.983c-.219.282-.53.48-.881.562-.352.081-.72.04-1.044-.116.266.46.642.848 1.095 1.132a3.339 3.339 0 0 0 3.073.248c.494-.207.929-.53 1.268-.941l.67-.865-2.657-2.003ZM25.243 1.989c-.547 0-1.084.147-1.553.425a2.99 2.99 0 0 0-1.11 1.15 1.58 1.58 0 0 1 1.973.31 1.52 1.52 0 0 1 .044 1.966L22.23 8.897v5.399l5.02-6.459a4.711 4.711 0 0 0 1.01-2.921 2.943 2.943 0 0 0-.897-2.073 3.038 3.038 0 0 0-2.119-.854ZM14.438 1.989a3.055 3.055 0 0 0-1.551.426 2.99 2.99 0 0 0-1.108 1.15 1.58 1.58 0 0 1 1.97.312 1.52 1.52 0 0 1 .044 1.963l-2.368 3.057v5.399l5.019-6.459a4.713 4.713 0 0 0 1.008-2.921 2.943 2.943 0 0 0-.897-2.073 3.038 3.038 0 0 0-2.117-.854Z\\\"></path></g><defs><clipPath id=\\\"logo_leaflink_lockup\\\"><path fill=\\\"#fff\\\" d=\\\"M0 0h139v23.64H0z\\\"></path></clipPath></defs>\", 2)\nconst _hoisted_4 = [\n _hoisted_2\n]\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, _hoisted_4))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n fill: \"#1E164B\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\"\n}\nconst _hoisted_2 = /*#__PURE__*/_createElementVNode(\"path\", {\n \"fill-rule\": \"evenodd\",\n \"clip-rule\": \"evenodd\",\n d: \"M6 2a4 4 0 0 0-4 4v12a4 4 0 0 0 4 4h12a4 4 0 0 0 4-4V6a4 4 0 0 0-4-4H6Zm9.308 13.322V8.655a1.486 1.486 0 0 1 .027-.31 1.687 1.687 0 0 1 1.245-1.29 1.703 1.703 0 0 1 1.622.44l.035.037c.018.018.036.037.052.056a2.39 2.39 0 0 0-1.44-1.304 2.386 2.386 0 0 0-.749-.117 2.385 2.385 0 0 0-2.41 2.357v6.903a2.389 2.389 0 0 0 1.676 2.294 2.416 2.416 0 0 0 2.591-.773 1.85 1.85 0 0 1-2.108-.353 1.805 1.805 0 0 1-.517-1.01 2.54 2.54 0 0 1-.024-.263ZM12.6 10.164l-2.108 2.748-.227.296v-2.669l1.08-1.415c.047-.061.09-.126.126-.195.213-.415.131-.827-.21-1.048a.771.771 0 0 0-.694-.074l.015-.02.038-.047.021-.025a.669.669 0 0 1 .045-.05l.02-.019a1.485 1.485 0 0 1 2.438.543c.064.178.093.366.086.554a2.364 2.364 0 0 1-.61 1.398l-.02.023Zm-5.857 7.67 1.51-1.986a2.514 2.514 0 0 1-.031-.424v-2.203l-3.513 4.612h2.034Zm6.51-1.63.256-.35a4.485 4.485 0 0 1-.012-.077l-.011-.073v-.07l-.004-.034c-.003-.014-.003-.029-.003-.043v-2.319l-.131.179-.385.522c-.593.803-1.348 1.807-1.574 2.033a.778.778 0 0 1-.897.144.798.798 0 0 0 .055.087.953.953 0 0 0 .092.126c.01.014.02.026.032.039l.004.004.034.037.037.038a1.588 1.588 0 0 0 .454.317 1.642 1.642 0 0 0 2.003-.492l.04-.053.01-.014Zm5.236-7.458v-.004a1.465 1.465 0 0 0-.437-1.094 1.49 1.49 0 0 0-1.867-.185l-.059.043a1.473 1.473 0 0 0-.167.143l-.006.006c-.02.02-.04.04-.057.06l-.021.026-.038.047-.014.019a.774.774 0 0 1 .698.074c.34.221.422.633.209 1.048a1.308 1.308 0 0 1-.128.195l-1.077 1.415v2.669l.225-.296 2.115-2.755a2.367 2.367 0 0 0 .624-1.411Zm.22 7.181-.203.278-.012.016a1.367 1.367 0 0 1-.03.042l-.007.009a.101.101 0 0 1-.01.016l-.02.023-.04.05-.01.012a1.04 1.04 0 0 1-.068.076 1.646 1.646 0 0 1-2.274.035l-.006-.004-.006-.006a1.696 1.696 0 0 1-.292-.364l.003.003c.002 0 .003 0 .004.002l.003.001a.786.786 0 0 0 .898-.144c.114-.114.372-.436.77-.958l1.3.913Zm-8.656-7.273v6.666c0 .086.007.172.022.258v.006a1.805 1.805 0 0 0 .565 1.055 1.86 1.86 0 0 0 2.063.308 2.42 2.42 0 0 1-3.566.187 2.355 2.355 0 0 1-.702-1.706V8.522a2.388 2.388 0 0 1 2.412-2.355c.256-.001.51.04.752.12.443.147.834.42 1.125.782.127.16.233.335.314.52a1.703 1.703 0 0 0-1.707-.53c-.58.149-1.038.59-1.204 1.162a.684.684 0 0 0-.04.126c-.023.1-.034.204-.034.307Z\"\n}, null, -1)\nconst _hoisted_3 = [\n _hoisted_2\n]\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, _hoisted_3))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n fill: \"#1E164B\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\"\n}\nconst _hoisted_2 = /*#__PURE__*/_createElementVNode(\"path\", {\n \"fill-rule\": \"evenodd\",\n \"clip-rule\": \"evenodd\",\n d: \"M6 2a4 4 0 0 0-4 4v12a4 4 0 0 0 4 4h12a4 4 0 0 0 4-4V6a4 4 0 0 0-4-4H6Zm6.827 8.927c1.473.394 2.567 1.196 2.567 2.61 0 1.344-.936 2.313-2.244 2.63-.342.083-.614.368-.614.72v.18a.496.496 0 0 1-.992 0v-.215c0-.354-.264-.646-.602-.75-.972-.302-1.657-.964-1.932-1.782-.154-.457.253-.855.736-.855.485 0 .856.437 1.161.815.265.328.708.54 1.293.54.919 0 1.43-.539 1.43-1.195 0-.51-.365-.933-1.226-1.167l-1.137-.32c-1.983-.51-2.333-1.707-2.333-2.48 0-1.234.86-2.154 2.034-2.512.324-.1.576-.379.576-.717v-.183a.496.496 0 1 1 .992 0v.174c0 .34.26.62.587.714.941.269 1.618.91 1.871 1.779.133.457-.273.847-.75.847-.474 0-.827-.424-1.134-.793l-.03-.036c-.23-.275-.591-.44-1.04-.44-.773 0-1.327.482-1.327 1.124 0 .262.073.772 1.05 1.035l1.064.277Z\"\n}, null, -1)\nconst _hoisted_3 = [\n _hoisted_2\n]\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, _hoisted_3))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n fill: \"#1E164B\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 164 24\"\n}\nconst _hoisted_2 = /*#__PURE__*/_createElementVNode(\"path\", {\n \"fill-rule\": \"evenodd\",\n \"clip-rule\": \"evenodd\",\n d: \"M6 2a4 4 0 0 0-4 4v12a4 4 0 0 0 4 4h12a4 4 0 0 0 4-4V6a4 4 0 0 0-4-4H6Zm6.827 8.927c1.473.394 2.567 1.196 2.567 2.61 0 1.344-.936 2.313-2.244 2.63-.342.083-.614.368-.614.72v.18a.496.496 0 0 1-.992 0v-.215c0-.354-.264-.646-.602-.75-.972-.302-1.657-.964-1.932-1.782-.154-.457.253-.855.736-.855.485 0 .856.437 1.161.815.265.328.708.54 1.293.54.919 0 1.43-.539 1.43-1.195 0-.51-.365-.933-1.226-1.167l-1.137-.32c-1.983-.51-2.333-1.707-2.333-2.48 0-1.234.86-2.154 2.034-2.512.324-.1.576-.379.576-.717v-.183a.496.496 0 1 1 .992 0v.174c0 .34.26.62.587.714.941.269 1.618.91 1.871 1.779.133.457-.273.847-.75.847-.474 0-.827-.424-1.134-.793l-.03-.036c-.23-.275-.591-.44-1.04-.44-.773 0-1.327.482-1.327 1.124 0 .262.073.772 1.05 1.035l1.064.277Z\"\n}, null, -1)\nconst _hoisted_3 = /*#__PURE__*/_createElementVNode(\"path\", { d: \"M28 16.832h5.772V14.91H30.21V7.168H28v9.664ZM37.372 14.91V13.06h3.52V11.08h-3.52V9.09h4.012V7.168h-6.222v9.664h6.349V14.91h-4.139ZM49.31 16.832h2.351l-3.575-9.664h-2.407l-3.59 9.664h2.365l.718-2.244h3.407l.732 2.244Zm-3.533-4.152 1.084-3.38 1.098 3.38h-2.182ZM58.785 9.09V7.168h-6.137v9.664h2.21V13.03h3.111v-1.908h-3.11V9.09h3.926ZM60.36 16.832h5.771V14.91H62.57V7.168h-2.21v9.664ZM67.522 16.832h2.21V7.168h-2.21v9.664ZM77.1 7.168v5.484l-3.097-5.484h-2.027v9.664h2.21v-5.554l3.181 5.554h1.943V7.168H77.1ZM89.427 16.832 85.67 11.95l3.223-4.783H86.26l-2.52 3.9v-3.9h-2.21v9.664h2.21v-3.787l2.858 3.787h2.83ZM97.185 7.168h-3.998v9.664h2.21V13.55h1.788c2.252 0 3.266-1.571 3.266-3.184 0-1.599-1.014-3.198-3.266-3.198Zm-.098 4.46h-1.69V9.09h1.704c.816 0 1.126.659 1.126 1.276s-.31 1.262-1.14 1.262ZM107.391 16.832h2.351l-3.576-9.664h-2.407l-3.589 9.664h2.364l.718-2.244h3.407l.732 2.244Zm-3.533-4.152 1.084-3.38 1.098 3.38h-2.182ZM115.68 7.168l-2.281 3.563-2.238-3.563h-2.632l3.772 5.302v4.362h2.225v-4.32l3.786-5.344h-2.632ZM130.237 16.832l-1.182-9.664h-1.887l-2.787 6.045-2.829-6.045h-1.844l-1.197 9.664h2.267l.647-5.484 2.112 4.376h1.689l2.111-4.39.634 5.498h2.266ZM134.163 14.91V13.06h3.52V11.08h-3.52V9.09h4.012V7.168h-6.222v9.664h6.349V14.91h-4.139ZM145.229 7.168v5.484l-3.097-5.484h-2.027v9.664h2.21v-5.554l3.182 5.554h1.942V7.168h-2.21ZM156.163 7.168h-7.334V9.09h2.562v7.742h2.21V9.09h2.562V7.168ZM160.425 17c1.773 0 3.575-.926 3.575-3.001 0-1.754-1.408-2.469-2.787-2.89l-1.014-.308c-.901-.253-.957-.687-.957-.884 0-.533.451-.996 1.14-.996.76 0 1.112.491 1.112 1.066h2.21c0-1.879-1.421-2.987-3.279-2.987-1.929 0-3.421 1.22-3.421 2.96 0 .911.408 2.215 2.548 2.79l1.154.351c.859.28 1.07.631 1.07 1.01 0 .63-.549.996-1.267.996-.76 0-1.38-.477-1.38-1.094h-2.21c0 1.78 1.436 2.987 3.506 2.987Z\" }, null, -1)\nconst _hoisted_4 = [\n _hoisted_2,\n _hoisted_3\n]\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, _hoisted_4))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n fill: \"#1E164B\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 60 24\"\n}\nconst _hoisted_2 = /*#__PURE__*/_createElementVNode(\"path\", {\n \"fill-rule\": \"evenodd\",\n \"clip-rule\": \"evenodd\",\n d: \"M6.373 2a4 4 0 0 0-4 4v12a4 4 0 0 0 4 4h12a4 4 0 0 0 4-4V6a4 4 0 0 0-4-4h-12Zm6.827 8.927c1.473.394 2.567 1.196 2.567 2.61 0 1.344-.937 2.313-2.244 2.63-.342.083-.615.368-.615.72v.18a.496.496 0 0 1-.991 0v-.215c0-.354-.264-.646-.602-.75-.972-.302-1.657-.964-1.933-1.782-.154-.457.254-.855.736-.855.486 0 .856.437 1.162.815.265.328.708.54 1.293.54.919 0 1.429-.539 1.429-1.195 0-.51-.365-.933-1.225-1.167l-1.137-.32c-1.984-.51-2.334-1.707-2.334-2.48 0-1.234.86-2.154 2.035-2.512.323-.1.576-.379.576-.717v-.183a.496.496 0 1 1 .991 0v.174c0 .34.26.62.588.714.941.269 1.618.91 1.87 1.779.134.457-.272.847-.749.847-.474 0-.828-.424-1.134-.793l-.03-.036c-.23-.275-.592-.44-1.04-.44-.774 0-1.328.482-1.328 1.124 0 .262.073.772 1.05 1.035l1.065.277Z\"\n}, null, -1)\nconst _hoisted_3 = /*#__PURE__*/_createElementVNode(\"path\", { d: \"M59.12 7.177v1.722h-2.66v7.924h-1.947V8.899h-2.66V7.177h7.267ZM47.718 16.991c-2.058 0-3.472-1.274-3.472-2.968h1.946c.014.686.686 1.26 1.582 1.26.868 0 1.442-.476 1.442-1.162 0-.532-.392-.91-1.218-1.162l-1.176-.336c-2.114-.56-2.492-1.834-2.492-2.702 0-1.722 1.484-2.912 3.332-2.912 1.82 0 3.22 1.106 3.22 2.94h-1.946c0-.686-.476-1.218-1.316-1.218-.756 0-1.33.504-1.33 1.148 0 .238.07.742 1.078 1.022l1.078.308c1.456.406 2.73 1.176 2.73 2.814 0 1.918-1.638 2.968-3.458 2.968ZM39.582 16.991c-1.862 0-3.514-1.372-3.514-3.43 0-2.072 1.652-3.444 3.514-3.444 1.862 0 3.514 1.372 3.514 3.444 0 2.058-1.652 3.43-3.514 3.43Zm0-1.708c.91 0 1.652-.714 1.652-1.722 0-1.022-.742-1.736-1.652-1.736-.91 0-1.652.714-1.652 1.736 0 1.008.742 1.722 1.652 1.722ZM32.307 7.177c2.184 0 3.15 1.568 3.15 3.15 0 1.582-.966 3.122-3.15 3.122h-1.988v3.374h-1.946V7.177h3.934Zm-.098 4.564c.938 0 1.288-.728 1.288-1.414 0-.7-.35-1.428-1.26-1.428h-1.918v2.842h1.89Z\" }, null, -1)\nconst _hoisted_4 = [\n _hoisted_2,\n _hoisted_3\n]\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, _hoisted_4))\n}\nexport default { render: render }","<script lang=\"ts\" setup>\n import logger from '@leaflink/snitch';\n import { computed } from 'vue';\n\n import DirectPayLockup from './../../../assets/logos/direct-pay-lockup.svg';\n import FlexPayLockup from './../../../assets/logos/flex-pay-lockup.svg';\n import LeafLinkBrandmark from './../../../assets/logos/leaflink-brandmark.svg';\n import LeafLinkLockup from './../../../assets/logos/leaflink-lockup.svg';\n import MarketplaceBrandmark from './../../../assets/logos/marketplace-brandmark.svg';\n import PaymentsBrandmark from './../../../assets/logos/payments-brandmark.svg';\n import PaymentsLockup from './../../../assets/logos/payments-lockup.svg';\n import PostLockup from './../../../assets/logos/post-lockup.svg';\n\n export interface LogoProps {\n /**\n * brand to use for the logo. This, along with variant, will determine which logo to display.\n */\n brand?: 'leaflink' | 'payments' | 'marketplace' | 'flex-pay' | 'direct-pay' | 'post';\n\n /**\n * What color the logo should be.\n */\n color?: 'purple' | 'white';\n\n /**\n * Which variant of the logo to display.\n */\n variant?: 'lockup' | 'brandmark';\n\n /**\n * Width of the logo.\n */\n width?: string | number;\n\n /**\n * Height of the logo.\n */\n height?: string | number;\n }\n\n const props = withDefaults(defineProps<LogoProps>(), {\n brand: 'leaflink',\n color: 'purple',\n variant: 'lockup',\n width: undefined,\n height: undefined,\n });\n\n const emit =\n defineEmits<{\n /**\n * Fires when an invalid brand and variant combination is provided.\n */\n (e: 'error', msg: string): void;\n }>();\n\n const DEFAULT_LOGO_ATTRS = {\n LeafLinkLockup: {\n is: LeafLinkLockup,\n width: 139,\n height: 24,\n },\n PaymentsLockup: {\n is: PaymentsLockup,\n width: 164,\n height: 24,\n },\n LeafLinkBrandmark: {\n is: LeafLinkBrandmark,\n width: 29,\n height: 24,\n },\n MarketplaceBrandmark: {\n is: MarketplaceBrandmark,\n width: 24,\n height: 24,\n },\n PaymentsBrandmark: {\n is: PaymentsBrandmark,\n width: 24,\n height: 24,\n },\n DirectPayLockup: {\n is: DirectPayLockup,\n width: 107,\n height: 24,\n },\n FlexPayLockup: {\n is: FlexPayLockup,\n width: 89,\n height: 24,\n },\n PostLockup: {\n is: PostLockup,\n width: 60,\n height: 24,\n },\n };\n\n // Determine which logo to display based on brand and variant & set default sizes for convenience unless explicitly set.\n // Note: Setting default width or height on the SVG element itself will not allow the SVG to scale up above those values.\n const computedLogoAttrs = computed<{ is: string; width: number; height: number }>(() => {\n let attrs;\n\n if (props.brand === 'leaflink' && props.variant === 'lockup') {\n attrs = DEFAULT_LOGO_ATTRS['LeafLinkLockup'];\n }\n\n if (props.brand === 'leaflink' && props.variant === 'brandmark') {\n attrs = DEFAULT_LOGO_ATTRS['LeafLinkBrandmark'];\n }\n\n if (props.brand === 'marketplace' && props.variant === 'brandmark') {\n attrs = DEFAULT_LOGO_ATTRS['MarketplaceBrandmark'];\n }\n\n if (props.brand === 'payments' && props.variant === 'lockup') {\n attrs = DEFAULT_LOGO_ATTRS['PaymentsLockup'];\n }\n\n if (props.brand === 'direct-pay' && props.variant === 'lockup') {\n attrs = DEFAULT_LOGO_ATTRS['DirectPayLockup'];\n }\n\n if (props.brand === 'flex-pay' && props.variant === 'lockup') {\n attrs = DEFAULT_LOGO_ATTRS['FlexPayLockup'];\n }\n\n if (props.brand === 'post' && props.variant === 'lockup') {\n attrs = DEFAULT_LOGO_ATTRS['PostLockup'];\n }\n\n if (['payments', 'direct-pay', 'flex-pay', 'post'].includes(props.brand) && props.variant === 'brandmark') {\n attrs = DEFAULT_LOGO_ATTRS['PaymentsBrandmark'];\n }\n\n if (!attrs) {\n const msg = `Invalid brand and variant combination. There's no ${props.brand.replace(\n '-',\n ' ',\n )} ${props.variant.replace('-', ' ')} logo.`;\n logger.error(msg);\n emit('error', msg);\n\n return;\n }\n\n // If width or height is explicitly set, override the default values but do it individually.\n // SVG's will always maintain their aspect ratio, so setting one will scale the other accordingly, so if a user\n // sends in even ONE of these props, we want to make sure we delete both defaults so the SVG can scale in the\n // expected way.\n if (props.width || props.height) {\n delete attrs.width;\n delete attrs.height;\n if (props.width) {\n attrs.width = props.width;\n }\n if (props.height) {\n attrs.height = props.height;\n }\n }\n\n return attrs;\n });\n</script>\n\n<template>\n <component\n :is=\"computedLogoAttrs.is\"\n v-if=\"computedLogoAttrs\"\n class=\"stash-logo\"\n :class=\"[\n `stash-logo--${props.brand}`,\n `stash-logo--${props.variant}`,\n `stash-logo--${props.color}`,\n {\n 'tw-text-purple-500': props.color === 'purple',\n 'tw-text-white': props.color === 'white',\n },\n ]\"\n data-test=\"stash-logo\"\n fill=\"currentColor\"\n v-bind=\"computedLogoAttrs\"\n />\n</template>\n"],"names":["_hoisted_1","_hoisted_2","_createElementVNode","_hoisted_3","_hoisted_4","render","_ctx","_cache","_openBlock","_createElementBlock","DirectPayLockup","FlexPayLockup","_hoisted_5","LeafLinkBrandmark","_createStaticVNode","LeafLinkLockup","MarketplaceBrandmark","PaymentsBrandmark","PaymentsLockup","PostLockup","DEFAULT_LOGO_ATTRS","computedLogoAttrs","computed","attrs","props","msg","logger","emit"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Logo.vue_vue_type_script_setup_true_lang-d7da48a0.js","sources":["../assets/logos/direct-pay-lockup.svg","../assets/logos/flex-pay-lockup.svg","../assets/logos/leaflink-brandmark.svg","../assets/logos/leaflink-lockup.svg","../assets/logos/marketplace-brandmark.svg","../assets/logos/payments-brandmark.svg","../assets/logos/payments-lockup.svg","../assets/logos/post-lockup.svg","../src/components/Logo/Logo.vue"],"sourcesContent":["import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n fill: \"#1E164B\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 107 24\"\n}\nconst _hoisted_2 = /*#__PURE__*/_createElementVNode(\"path\", {\n \"fill-rule\": \"evenodd\",\n \"clip-rule\": \"evenodd\",\n d: \"M6.746 2a4 4 0 0 0-4 4v12a4 4 0 0 0 4 4h12a4 4 0 0 0 4-4V6a4 4 0 0 0-4-4h-12Zm6.827 8.927c1.473.394 2.567 1.196 2.567 2.61 0 1.344-.936 2.313-2.244 2.63-.342.083-.614.368-.614.72v.18a.496.496 0 0 1-.992 0v-.215c0-.354-.263-.646-.601-.75-.973-.302-1.658-.964-1.933-1.782-.154-.457.253-.855.736-.855.485 0 .856.437 1.161.815.265.328.708.54 1.293.54.92 0 1.43-.539 1.43-1.195 0-.51-.365-.933-1.226-1.167l-1.137-.32c-1.983-.51-2.333-1.707-2.333-2.48 0-1.234.86-2.154 2.034-2.512.324-.1.576-.379.576-.717v-.183a.496.496 0 1 1 .992 0v.174c0 .34.26.62.587.714.941.269 1.618.91 1.871 1.779.133.457-.273.847-.75.847-.473 0-.827-.424-1.134-.793l-.03-.036c-.23-.275-.591-.44-1.04-.44-.773 0-1.327.482-1.327 1.124 0 .262.073.772 1.05 1.035l1.064.277Z\"\n}, null, -1)\nconst _hoisted_3 = /*#__PURE__*/_createElementVNode(\"path\", { d: \"M28.746 16.832h3.803c2.782 0 4.39-2.076 4.39-4.811 0-2.749-1.608-4.853-4.39-4.853h-3.803v9.664Zm2.195-1.922V9.09h1.608c1.44 0 2.18 1.416 2.18 2.931 0 1.5-.74 2.89-2.18 2.89H30.94ZM38.63 16.832h2.195V7.168H38.63v9.664ZM47.905 16.832h2.558l-2.488-3.52c1.551-.393 2.264-1.585 2.264-2.946 0-1.599-1.006-3.198-3.243-3.198h-3.942v9.664h2.195v-3.394h.433l2.223 3.394ZM45.249 9.09h1.453c.895 0 1.329.687 1.329 1.332s-.42 1.276-1.384 1.276h-1.398V9.09ZM54.218 14.91V13.06h3.495V11.08h-3.495V9.09h3.984V7.168h-6.179v9.664h6.305V14.91h-4.11ZM64.262 17a4.898 4.898 0 0 0 4.054-2.146l-1.706-1.192c-.503.785-1.244 1.262-2.264 1.262-1.65 0-2.768-1.346-2.768-2.945 0-1.599 1.16-2.903 2.782-2.903 1.006 0 1.747.477 2.25 1.262l1.706-1.192A4.899 4.899 0 0 0 64.262 7c-2.712 0-4.893 2.258-4.893 4.979 0 2.749 2.18 5.021 4.893 5.021ZM76.216 7.168h-7.283V9.09h2.544v7.742h2.195V9.09h2.544V7.168ZM85.39 7.168h-3.97v9.664h2.195V13.55h1.776c2.236 0 3.243-1.571 3.243-3.184 0-1.599-1.007-3.198-3.243-3.198Zm-.097 4.46h-1.678V9.09h1.692c.81 0 1.118.659 1.118 1.276s-.308 1.262-1.132 1.262ZM95.526 16.832h2.335L94.31 7.168h-2.39l-3.566 9.664h2.349l.713-2.244h3.383l.727 2.244Zm-3.509-4.152 1.077-3.38 1.09 3.38h-2.167ZM103.758 7.168l-2.265 3.563-2.222-3.563h-2.615l3.747 5.302v4.362h2.209v-4.32l3.76-5.344h-2.614Z\" }, null, -1)\nconst _hoisted_4 = [\n _hoisted_2,\n _hoisted_3\n]\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, _hoisted_4))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n fill: \"#1E164B\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 89 24\"\n}\nconst _hoisted_2 = /*#__PURE__*/_createElementVNode(\"path\", {\n \"fill-rule\": \"evenodd\",\n \"clip-rule\": \"evenodd\",\n d: \"M6 2a4 4 0 0 0-4 4v12a4 4 0 0 0 4 4h12a4 4 0 0 0 4-4V6a4 4 0 0 0-4-4H6Zm6.827 8.927c1.473.394 2.567 1.196 2.567 2.61 0 1.344-.936 2.313-2.244 2.63-.342.083-.614.368-.614.72v.18a.496.496 0 0 1-.992 0v-.215c0-.354-.264-.646-.602-.75-.972-.302-1.657-.964-1.932-1.782-.154-.457.253-.855.736-.855.485 0 .856.437 1.161.815.265.328.708.54 1.293.54.919 0 1.43-.539 1.43-1.195 0-.51-.365-.933-1.226-1.167l-1.137-.32c-1.983-.51-2.333-1.707-2.333-2.48 0-1.234.86-2.154 2.034-2.512.324-.1.576-.379.576-.717v-.183a.496.496 0 1 1 .992 0v.174c0 .34.26.62.587.714.941.269 1.618.91 1.871 1.779.133.457-.273.847-.75.847-.474 0-.827-.424-1.134-.793l-.03-.036c-.23-.275-.591-.44-1.04-.44-.773 0-1.327.482-1.327 1.124 0 .262.073.772 1.05 1.035l1.064.277Z\"\n}, null, -1)\nconst _hoisted_3 = /*#__PURE__*/_createElementVNode(\"path\", { d: \"M34.08 9.09V7.168H28v9.664h2.19V13.03h3.08v-1.908h-3.08V9.09h3.89ZM35.639 16.832h5.716V14.91h-3.527V7.168h-2.19v9.664ZM44.922 14.91V13.06h3.486V11.08h-3.486V9.09h3.974V7.168h-6.163v9.664h6.288V14.91h-4.1ZM58.978 16.832l-3.333-5.148 3.04-4.516h-2.621l-1.715 2.763-1.687-2.763h-2.65l3.026 4.516-3.304 5.148h2.565l2.05-3.394 2.05 3.394h2.579ZM67.82 7.168h-3.96v9.664h2.19V13.55h1.77c2.23 0 3.235-1.571 3.235-3.184 0-1.599-1.004-3.198-3.235-3.198Zm-.098 4.46H66.05V9.09h1.687c.809 0 1.116.659 1.116 1.276s-.307 1.262-1.13 1.262ZM77.929 16.832h2.328l-3.541-9.664H74.33l-3.555 9.664h2.342l.711-2.244h3.375l.725 2.244Zm-3.5-4.152 1.074-3.38 1.087 3.38H74.43ZM86.139 7.168l-2.259 3.563-2.217-3.563h-2.607l3.737 5.302v4.362h2.203v-4.32l3.75-5.344H86.14Z\" }, null, -1)\nconst _hoisted_4 = [\n _hoisted_2,\n _hoisted_3\n]\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, _hoisted_4))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n viewBox: \"0 0 29 24\",\n fill: \"#1E164B\",\n xmlns: \"http://www.w3.org/2000/svg\"\n}\nconst _hoisted_2 = /*#__PURE__*/_createElementVNode(\"path\", { d: \"M7.219 18.834v-4.518L0 23.633h4.195l3.092-3.99a4.956 4.956 0 0 1-.068-.81ZM14.74 22.248a3.8 3.8 0 0 1-2.657-1.094 3.68 3.68 0 0 1-1.097-2.621c0-.03.01-11.764.01-13.665.003-1.747 1.502-3.334 3.442-3.334.87 0 1.706.324 2.343.906A4.876 4.876 0 0 0 14.408.41a4.971 4.971 0 0 0-3.139-.193 4.902 4.902 0 0 0-2.61 1.726 4.771 4.771 0 0 0-1.007 2.932v13.942c0 2.522 2.11 4.803 4.9 4.803a4.904 4.904 0 0 0 2.834-.887c.345-.238.658-.517.932-.831a3.753 3.753 0 0 1-1.578.347Z\" }, null, -1)\nconst _hoisted_3 = /*#__PURE__*/_createElementVNode(\"path\", { d: \"M18.023 18.823v-4.518l-4.23 5.429c-.219.282-.53.48-.883.562-.351.081-.72.04-1.044-.117.265.46.641.848 1.094 1.132a3.338 3.338 0 0 0 3.073.248c.494-.207.929-.53 1.267-.941l.788-1.008a4.672 4.672 0 0 1-.065-.787ZM25.55 22.248a3.799 3.799 0 0 1-2.657-1.094 3.679 3.679 0 0 1-1.096-2.621l.01-13.665c0-1.746 1.5-3.33 3.441-3.33.868 0 1.703.325 2.338.907A4.875 4.875 0 0 0 25.216.414 4.971 4.971 0 0 0 22.077.22a4.902 4.902 0 0 0-2.61 1.723 4.77 4.77 0 0 0-1.01 2.931v13.942c0 2.522 2.111 4.803 4.9 4.803a4.904 4.904 0 0 0 2.835-.887c.345-.238.658-.517.932-.831a3.756 3.756 0 0 1-1.574.347Z\" }, null, -1)\nconst _hoisted_4 = /*#__PURE__*/_createElementVNode(\"path\", { d: \"m26.12 17.75-1.523 1.983c-.219.282-.53.48-.881.562-.352.081-.72.04-1.044-.116.266.46.642.848 1.095 1.132a3.339 3.339 0 0 0 3.073.248c.494-.207.929-.53 1.268-.941l.67-.865-2.657-2.003ZM25.243 1.989c-.547 0-1.084.147-1.553.425a2.99 2.99 0 0 0-1.11 1.15 1.58 1.58 0 0 1 1.973.31 1.52 1.52 0 0 1 .044 1.966L22.23 8.897v5.399l5.02-6.459a4.711 4.711 0 0 0 1.01-2.921 2.943 2.943 0 0 0-.897-2.073 3.038 3.038 0 0 0-2.119-.854ZM14.438 1.989a3.055 3.055 0 0 0-1.551.426 2.99 2.99 0 0 0-1.108 1.15 1.58 1.58 0 0 1 1.97.312 1.52 1.52 0 0 1 .044 1.963l-2.368 3.057v5.399l5.019-6.459a4.713 4.713 0 0 0 1.008-2.921 2.943 2.943 0 0 0-.897-2.073 3.038 3.038 0 0 0-2.117-.854Z\" }, null, -1)\nconst _hoisted_5 = [\n _hoisted_2,\n _hoisted_3,\n _hoisted_4\n]\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, _hoisted_5))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createStaticVNode as _createStaticVNode } from \"vue\"\n\nconst _hoisted_1 = {\n fill: \"#1E164B\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 139 24\"\n}\nconst _hoisted_2 = /*#__PURE__*/_createStaticVNode(\"<g clip-path=\\\"url(#logo_leaflink_lockup)\\\"><path d=\\\"M35.265.068h3.883V23.64h-3.883V.068ZM57.586 16.946H45.493c.433 2.143 2.11 3.232 4.422 3.232 1.708 0 3.316-.66 4.254-1.912l2.58 1.945c-1.44 2.242-4.188 3.429-7.036 3.429-4.689 0-8.24-3.231-8.24-8.045 0-4.912 3.752-8.013 8.207-8.013 4.49 0 8.007 3.069 8.007 7.88-.005.496-.038.992-.1 1.484Zm-3.786-2.67c-.234-2.11-1.876-3.33-4.053-3.33-2.11 0-3.785.989-4.254 3.33H53.8ZM76.628 7.913V23.64H72.74v-2.407c-1.071 1.648-3.282 2.407-5.196 2.407-4.12 0-7.709-3.132-7.709-8.045 0-4.944 3.552-8.013 7.672-8.013 1.977 0 4.158.759 5.226 2.374V7.91l3.894.003Zm-3.953 7.649c0-2.704-2.278-4.418-4.522-4.418-2.412 0-4.389 1.846-4.389 4.418s1.977 4.484 4.389 4.484c2.378 0 4.522-1.78 4.522-4.484ZM83.997 6.891v1.352h3.484v3.069h-3.484V23.64h-3.882V7.089C80.115 2.67 82.255 0 86.61 0h1.843l-1.072 3.56c-2.647 0-3.418 1.451-3.384 3.331ZM91.182.07h3.886v23.57h-3.886V.07ZM97.993 2.803c0-1.352 1.172-2.341 2.546-2.341 1.407 0 2.512.989 2.512 2.34 0 1.32-1.105 2.342-2.512 2.342-1.37 0-2.546-1.023-2.546-2.341Zm.606 5.44h3.886v15.396h-3.886V8.243ZM120.934 15.003v8.637h-3.885v-8.276c0-2.44-1.508-3.693-3.25-3.693-1.776 0-3.984.957-3.984 3.922v8.044h-3.891V8.243h3.886v2.44c.803-1.913 3.249-2.77 4.857-2.77 4.023 0 6.267 2.604 6.267 7.09ZM134.073 23.64l-6.098-6.99v6.99h-3.885V.068h3.885v13.087l4.489-4.912h5.059l-6.365 6.726 7.838 8.67h-4.923ZM7.219 18.834v-4.518L0 23.633h4.195l3.092-3.99a4.956 4.956 0 0 1-.068-.81ZM14.74 22.248a3.8 3.8 0 0 1-2.657-1.094 3.68 3.68 0 0 1-1.097-2.621c0-.03.01-11.764.01-13.665.003-1.747 1.502-3.334 3.442-3.334.87 0 1.706.324 2.343.906A4.876 4.876 0 0 0 14.408.41a4.971 4.971 0 0 0-3.139-.193 4.902 4.902 0 0 0-2.61 1.726 4.771 4.771 0 0 0-1.007 2.932v13.942c0 2.522 2.11 4.803 4.9 4.803a4.903 4.903 0 0 0 2.834-.887c.345-.238.658-.517.932-.831a3.753 3.753 0 0 1-1.578.347Z\\\"></path><path d=\\\"M18.023 18.823v-4.518l-4.23 5.429c-.219.282-.53.48-.883.562-.351.081-.72.04-1.044-.117.265.46.641.848 1.094 1.132a3.338 3.338 0 0 0 3.073.248c.494-.207.929-.53 1.267-.941l.788-1.008a4.672 4.672 0 0 1-.065-.787ZM25.55 22.248a3.799 3.799 0 0 1-2.657-1.094 3.679 3.679 0 0 1-1.096-2.621l.01-13.665c0-1.746 1.5-3.33 3.441-3.33.868 0 1.703.325 2.338.907A4.875 4.875 0 0 0 25.216.414 4.971 4.971 0 0 0 22.077.22a4.902 4.902 0 0 0-2.61 1.723 4.77 4.77 0 0 0-1.01 2.931v13.942c0 2.522 2.111 4.803 4.9 4.803a4.904 4.904 0 0 0 2.835-.887c.345-.238.658-.517.932-.831a3.756 3.756 0 0 1-1.574.347Z\\\"></path><path d=\\\"m26.12 17.75-1.523 1.983c-.219.282-.53.48-.881.562-.352.081-.72.04-1.044-.116.266.46.642.848 1.095 1.132a3.339 3.339 0 0 0 3.073.248c.494-.207.929-.53 1.268-.941l.67-.865-2.657-2.003ZM25.243 1.989c-.547 0-1.084.147-1.553.425a2.99 2.99 0 0 0-1.11 1.15 1.58 1.58 0 0 1 1.973.31 1.52 1.52 0 0 1 .044 1.966L22.23 8.897v5.399l5.02-6.459a4.711 4.711 0 0 0 1.01-2.921 2.943 2.943 0 0 0-.897-2.073 3.038 3.038 0 0 0-2.119-.854ZM14.438 1.989a3.055 3.055 0 0 0-1.551.426 2.99 2.99 0 0 0-1.108 1.15 1.58 1.58 0 0 1 1.97.312 1.52 1.52 0 0 1 .044 1.963l-2.368 3.057v5.399l5.019-6.459a4.713 4.713 0 0 0 1.008-2.921 2.943 2.943 0 0 0-.897-2.073 3.038 3.038 0 0 0-2.117-.854Z\\\"></path></g><defs><clipPath id=\\\"logo_leaflink_lockup\\\"><path fill=\\\"#fff\\\" d=\\\"M0 0h139v23.64H0z\\\"></path></clipPath></defs>\", 2)\nconst _hoisted_4 = [\n _hoisted_2\n]\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, _hoisted_4))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n fill: \"#1E164B\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\"\n}\nconst _hoisted_2 = /*#__PURE__*/_createElementVNode(\"path\", {\n \"fill-rule\": \"evenodd\",\n \"clip-rule\": \"evenodd\",\n d: \"M6 2a4 4 0 0 0-4 4v12a4 4 0 0 0 4 4h12a4 4 0 0 0 4-4V6a4 4 0 0 0-4-4H6Zm9.308 13.322V8.655a1.486 1.486 0 0 1 .027-.31 1.687 1.687 0 0 1 1.245-1.29 1.703 1.703 0 0 1 1.622.44l.035.037c.018.018.036.037.052.056a2.39 2.39 0 0 0-1.44-1.304 2.386 2.386 0 0 0-.749-.117 2.385 2.385 0 0 0-2.41 2.357v6.903a2.389 2.389 0 0 0 1.676 2.294 2.416 2.416 0 0 0 2.591-.773 1.85 1.85 0 0 1-2.108-.353 1.805 1.805 0 0 1-.517-1.01 2.54 2.54 0 0 1-.024-.263ZM12.6 10.164l-2.108 2.748-.227.296v-2.669l1.08-1.415c.047-.061.09-.126.126-.195.213-.415.131-.827-.21-1.048a.771.771 0 0 0-.694-.074l.015-.02.038-.047.021-.025a.669.669 0 0 1 .045-.05l.02-.019a1.485 1.485 0 0 1 2.438.543c.064.178.093.366.086.554a2.364 2.364 0 0 1-.61 1.398l-.02.023Zm-5.857 7.67 1.51-1.986a2.514 2.514 0 0 1-.031-.424v-2.203l-3.513 4.612h2.034Zm6.51-1.63.256-.35a4.485 4.485 0 0 1-.012-.077l-.011-.073v-.07l-.004-.034c-.003-.014-.003-.029-.003-.043v-2.319l-.131.179-.385.522c-.593.803-1.348 1.807-1.574 2.033a.778.778 0 0 1-.897.144.798.798 0 0 0 .055.087.953.953 0 0 0 .092.126c.01.014.02.026.032.039l.004.004.034.037.037.038a1.588 1.588 0 0 0 .454.317 1.642 1.642 0 0 0 2.003-.492l.04-.053.01-.014Zm5.236-7.458v-.004a1.465 1.465 0 0 0-.437-1.094 1.49 1.49 0 0 0-1.867-.185l-.059.043a1.473 1.473 0 0 0-.167.143l-.006.006c-.02.02-.04.04-.057.06l-.021.026-.038.047-.014.019a.774.774 0 0 1 .698.074c.34.221.422.633.209 1.048a1.308 1.308 0 0 1-.128.195l-1.077 1.415v2.669l.225-.296 2.115-2.755a2.367 2.367 0 0 0 .624-1.411Zm.22 7.181-.203.278-.012.016a1.367 1.367 0 0 1-.03.042l-.007.009a.101.101 0 0 1-.01.016l-.02.023-.04.05-.01.012a1.04 1.04 0 0 1-.068.076 1.646 1.646 0 0 1-2.274.035l-.006-.004-.006-.006a1.696 1.696 0 0 1-.292-.364l.003.003c.002 0 .003 0 .004.002l.003.001a.786.786 0 0 0 .898-.144c.114-.114.372-.436.77-.958l1.3.913Zm-8.656-7.273v6.666c0 .086.007.172.022.258v.006a1.805 1.805 0 0 0 .565 1.055 1.86 1.86 0 0 0 2.063.308 2.42 2.42 0 0 1-3.566.187 2.355 2.355 0 0 1-.702-1.706V8.522a2.388 2.388 0 0 1 2.412-2.355c.256-.001.51.04.752.12.443.147.834.42 1.125.782.127.16.233.335.314.52a1.703 1.703 0 0 0-1.707-.53c-.58.149-1.038.59-1.204 1.162a.684.684 0 0 0-.04.126c-.023.1-.034.204-.034.307Z\"\n}, null, -1)\nconst _hoisted_3 = [\n _hoisted_2\n]\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, _hoisted_3))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n fill: \"#1E164B\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\"\n}\nconst _hoisted_2 = /*#__PURE__*/_createElementVNode(\"path\", {\n \"fill-rule\": \"evenodd\",\n \"clip-rule\": \"evenodd\",\n d: \"M6 2a4 4 0 0 0-4 4v12a4 4 0 0 0 4 4h12a4 4 0 0 0 4-4V6a4 4 0 0 0-4-4H6Zm6.827 8.927c1.473.394 2.567 1.196 2.567 2.61 0 1.344-.936 2.313-2.244 2.63-.342.083-.614.368-.614.72v.18a.496.496 0 0 1-.992 0v-.215c0-.354-.264-.646-.602-.75-.972-.302-1.657-.964-1.932-1.782-.154-.457.253-.855.736-.855.485 0 .856.437 1.161.815.265.328.708.54 1.293.54.919 0 1.43-.539 1.43-1.195 0-.51-.365-.933-1.226-1.167l-1.137-.32c-1.983-.51-2.333-1.707-2.333-2.48 0-1.234.86-2.154 2.034-2.512.324-.1.576-.379.576-.717v-.183a.496.496 0 1 1 .992 0v.174c0 .34.26.62.587.714.941.269 1.618.91 1.871 1.779.133.457-.273.847-.75.847-.474 0-.827-.424-1.134-.793l-.03-.036c-.23-.275-.591-.44-1.04-.44-.773 0-1.327.482-1.327 1.124 0 .262.073.772 1.05 1.035l1.064.277Z\"\n}, null, -1)\nconst _hoisted_3 = [\n _hoisted_2\n]\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, _hoisted_3))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n fill: \"#1E164B\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 164 24\"\n}\nconst _hoisted_2 = /*#__PURE__*/_createElementVNode(\"path\", {\n \"fill-rule\": \"evenodd\",\n \"clip-rule\": \"evenodd\",\n d: \"M6 2a4 4 0 0 0-4 4v12a4 4 0 0 0 4 4h12a4 4 0 0 0 4-4V6a4 4 0 0 0-4-4H6Zm6.827 8.927c1.473.394 2.567 1.196 2.567 2.61 0 1.344-.936 2.313-2.244 2.63-.342.083-.614.368-.614.72v.18a.496.496 0 0 1-.992 0v-.215c0-.354-.264-.646-.602-.75-.972-.302-1.657-.964-1.932-1.782-.154-.457.253-.855.736-.855.485 0 .856.437 1.161.815.265.328.708.54 1.293.54.919 0 1.43-.539 1.43-1.195 0-.51-.365-.933-1.226-1.167l-1.137-.32c-1.983-.51-2.333-1.707-2.333-2.48 0-1.234.86-2.154 2.034-2.512.324-.1.576-.379.576-.717v-.183a.496.496 0 1 1 .992 0v.174c0 .34.26.62.587.714.941.269 1.618.91 1.871 1.779.133.457-.273.847-.75.847-.474 0-.827-.424-1.134-.793l-.03-.036c-.23-.275-.591-.44-1.04-.44-.773 0-1.327.482-1.327 1.124 0 .262.073.772 1.05 1.035l1.064.277Z\"\n}, null, -1)\nconst _hoisted_3 = /*#__PURE__*/_createElementVNode(\"path\", { d: \"M28 16.832h5.772V14.91H30.21V7.168H28v9.664ZM37.372 14.91V13.06h3.52V11.08h-3.52V9.09h4.012V7.168h-6.222v9.664h6.349V14.91h-4.139ZM49.31 16.832h2.351l-3.575-9.664h-2.407l-3.59 9.664h2.365l.718-2.244h3.407l.732 2.244Zm-3.533-4.152 1.084-3.38 1.098 3.38h-2.182ZM58.785 9.09V7.168h-6.137v9.664h2.21V13.03h3.111v-1.908h-3.11V9.09h3.926ZM60.36 16.832h5.771V14.91H62.57V7.168h-2.21v9.664ZM67.522 16.832h2.21V7.168h-2.21v9.664ZM77.1 7.168v5.484l-3.097-5.484h-2.027v9.664h2.21v-5.554l3.181 5.554h1.943V7.168H77.1ZM89.427 16.832 85.67 11.95l3.223-4.783H86.26l-2.52 3.9v-3.9h-2.21v9.664h2.21v-3.787l2.858 3.787h2.83ZM97.185 7.168h-3.998v9.664h2.21V13.55h1.788c2.252 0 3.266-1.571 3.266-3.184 0-1.599-1.014-3.198-3.266-3.198Zm-.098 4.46h-1.69V9.09h1.704c.816 0 1.126.659 1.126 1.276s-.31 1.262-1.14 1.262ZM107.391 16.832h2.351l-3.576-9.664h-2.407l-3.589 9.664h2.364l.718-2.244h3.407l.732 2.244Zm-3.533-4.152 1.084-3.38 1.098 3.38h-2.182ZM115.68 7.168l-2.281 3.563-2.238-3.563h-2.632l3.772 5.302v4.362h2.225v-4.32l3.786-5.344h-2.632ZM130.237 16.832l-1.182-9.664h-1.887l-2.787 6.045-2.829-6.045h-1.844l-1.197 9.664h2.267l.647-5.484 2.112 4.376h1.689l2.111-4.39.634 5.498h2.266ZM134.163 14.91V13.06h3.52V11.08h-3.52V9.09h4.012V7.168h-6.222v9.664h6.349V14.91h-4.139ZM145.229 7.168v5.484l-3.097-5.484h-2.027v9.664h2.21v-5.554l3.182 5.554h1.942V7.168h-2.21ZM156.163 7.168h-7.334V9.09h2.562v7.742h2.21V9.09h2.562V7.168ZM160.425 17c1.773 0 3.575-.926 3.575-3.001 0-1.754-1.408-2.469-2.787-2.89l-1.014-.308c-.901-.253-.957-.687-.957-.884 0-.533.451-.996 1.14-.996.76 0 1.112.491 1.112 1.066h2.21c0-1.879-1.421-2.987-3.279-2.987-1.929 0-3.421 1.22-3.421 2.96 0 .911.408 2.215 2.548 2.79l1.154.351c.859.28 1.07.631 1.07 1.01 0 .63-.549.996-1.267.996-.76 0-1.38-.477-1.38-1.094h-2.21c0 1.78 1.436 2.987 3.506 2.987Z\" }, null, -1)\nconst _hoisted_4 = [\n _hoisted_2,\n _hoisted_3\n]\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, _hoisted_4))\n}\nexport default { render: render }","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n fill: \"#1E164B\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 60 24\"\n}\nconst _hoisted_2 = /*#__PURE__*/_createElementVNode(\"path\", {\n \"fill-rule\": \"evenodd\",\n \"clip-rule\": \"evenodd\",\n d: \"M6.373 2a4 4 0 0 0-4 4v12a4 4 0 0 0 4 4h12a4 4 0 0 0 4-4V6a4 4 0 0 0-4-4h-12Zm6.827 8.927c1.473.394 2.567 1.196 2.567 2.61 0 1.344-.937 2.313-2.244 2.63-.342.083-.615.368-.615.72v.18a.496.496 0 0 1-.991 0v-.215c0-.354-.264-.646-.602-.75-.972-.302-1.657-.964-1.933-1.782-.154-.457.254-.855.736-.855.486 0 .856.437 1.162.815.265.328.708.54 1.293.54.919 0 1.429-.539 1.429-1.195 0-.51-.365-.933-1.225-1.167l-1.137-.32c-1.984-.51-2.334-1.707-2.334-2.48 0-1.234.86-2.154 2.035-2.512.323-.1.576-.379.576-.717v-.183a.496.496 0 1 1 .991 0v.174c0 .34.26.62.588.714.941.269 1.618.91 1.87 1.779.134.457-.272.847-.749.847-.474 0-.828-.424-1.134-.793l-.03-.036c-.23-.275-.592-.44-1.04-.44-.774 0-1.328.482-1.328 1.124 0 .262.073.772 1.05 1.035l1.065.277Z\"\n}, null, -1)\nconst _hoisted_3 = /*#__PURE__*/_createElementVNode(\"path\", { d: \"M59.12 7.177v1.722h-2.66v7.924h-1.947V8.899h-2.66V7.177h7.267ZM47.718 16.991c-2.058 0-3.472-1.274-3.472-2.968h1.946c.014.686.686 1.26 1.582 1.26.868 0 1.442-.476 1.442-1.162 0-.532-.392-.91-1.218-1.162l-1.176-.336c-2.114-.56-2.492-1.834-2.492-2.702 0-1.722 1.484-2.912 3.332-2.912 1.82 0 3.22 1.106 3.22 2.94h-1.946c0-.686-.476-1.218-1.316-1.218-.756 0-1.33.504-1.33 1.148 0 .238.07.742 1.078 1.022l1.078.308c1.456.406 2.73 1.176 2.73 2.814 0 1.918-1.638 2.968-3.458 2.968ZM39.582 16.991c-1.862 0-3.514-1.372-3.514-3.43 0-2.072 1.652-3.444 3.514-3.444 1.862 0 3.514 1.372 3.514 3.444 0 2.058-1.652 3.43-3.514 3.43Zm0-1.708c.91 0 1.652-.714 1.652-1.722 0-1.022-.742-1.736-1.652-1.736-.91 0-1.652.714-1.652 1.736 0 1.008.742 1.722 1.652 1.722ZM32.307 7.177c2.184 0 3.15 1.568 3.15 3.15 0 1.582-.966 3.122-3.15 3.122h-1.988v3.374h-1.946V7.177h3.934Zm-.098 4.564c.938 0 1.288-.728 1.288-1.414 0-.7-.35-1.428-1.26-1.428h-1.918v2.842h1.89Z\" }, null, -1)\nconst _hoisted_4 = [\n _hoisted_2,\n _hoisted_3\n]\n\nexport function render(_ctx, _cache) {\n return (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, _hoisted_4))\n}\nexport default { render: render }","<script lang=\"ts\" setup>\n import logger from '@leaflink/snitch';\n import { computed } from 'vue';\n\n import DirectPayLockup from './../../../assets/logos/direct-pay-lockup.svg';\n import FlexPayLockup from './../../../assets/logos/flex-pay-lockup.svg';\n import LeafLinkBrandmark from './../../../assets/logos/leaflink-brandmark.svg';\n import LeafLinkLockup from './../../../assets/logos/leaflink-lockup.svg';\n import MarketplaceBrandmark from './../../../assets/logos/marketplace-brandmark.svg';\n import PaymentsBrandmark from './../../../assets/logos/payments-brandmark.svg';\n import PaymentsLockup from './../../../assets/logos/payments-lockup.svg';\n import PostLockup from './../../../assets/logos/post-lockup.svg';\n\n export interface LogoProps {\n /**\n * brand to use for the logo. This, along with variant, will determine which logo to display.\n */\n brand?: 'leaflink' | 'payments' | 'marketplace' | 'flex-pay' | 'direct-pay' | 'post';\n\n /**\n * What color the logo should be.\n */\n color?: 'purple' | 'white';\n\n /**\n * Which variant of the logo to display.\n */\n variant?: 'lockup' | 'brandmark';\n\n /**\n * Width of the logo.\n */\n width?: string | number;\n\n /**\n * Height of the logo.\n */\n height?: string | number;\n }\n\n const props = withDefaults(defineProps<LogoProps>(), {\n brand: 'leaflink',\n color: 'purple',\n variant: 'lockup',\n width: undefined,\n height: undefined,\n });\n\n const emit =\n defineEmits<{\n /**\n * Fires when an invalid brand and variant combination is provided.\n */\n (e: 'error', msg: string): void;\n }>();\n\n const DEFAULT_LOGO_ATTRS = {\n LeafLinkLockup: {\n is: LeafLinkLockup,\n width: 139,\n height: 24,\n },\n PaymentsLockup: {\n is: PaymentsLockup,\n width: 164,\n height: 24,\n },\n LeafLinkBrandmark: {\n is: LeafLinkBrandmark,\n width: 29,\n height: 24,\n },\n MarketplaceBrandmark: {\n is: MarketplaceBrandmark,\n width: 24,\n height: 24,\n },\n PaymentsBrandmark: {\n is: PaymentsBrandmark,\n width: 24,\n height: 24,\n },\n DirectPayLockup: {\n is: DirectPayLockup,\n width: 107,\n height: 24,\n },\n FlexPayLockup: {\n is: FlexPayLockup,\n width: 89,\n height: 24,\n },\n PostLockup: {\n is: PostLockup,\n width: 60,\n height: 24,\n },\n };\n\n // Determine which logo to display based on brand and variant & set default sizes for convenience unless explicitly set.\n // Note: Setting default width or height on the SVG element itself will not allow the SVG to scale up above those values.\n const computedLogoAttrs = computed<{ is: string; width: number; height: number }>(() => {\n let attrs;\n\n if (props.brand === 'leaflink' && props.variant === 'lockup') {\n attrs = DEFAULT_LOGO_ATTRS['LeafLinkLockup'];\n }\n\n if (props.brand === 'leaflink' && props.variant === 'brandmark') {\n attrs = DEFAULT_LOGO_ATTRS['LeafLinkBrandmark'];\n }\n\n if (props.brand === 'marketplace' && props.variant === 'brandmark') {\n attrs = DEFAULT_LOGO_ATTRS['MarketplaceBrandmark'];\n }\n\n if (props.brand === 'payments' && props.variant === 'lockup') {\n attrs = DEFAULT_LOGO_ATTRS['PaymentsLockup'];\n }\n\n if (props.brand === 'direct-pay' && props.variant === 'lockup') {\n attrs = DEFAULT_LOGO_ATTRS['DirectPayLockup'];\n }\n\n if (props.brand === 'flex-pay' && props.variant === 'lockup') {\n attrs = DEFAULT_LOGO_ATTRS['FlexPayLockup'];\n }\n\n if (props.brand === 'post' && props.variant === 'lockup') {\n attrs = DEFAULT_LOGO_ATTRS['PostLockup'];\n }\n\n if (['payments', 'direct-pay', 'flex-pay', 'post'].includes(props.brand) && props.variant === 'brandmark') {\n attrs = DEFAULT_LOGO_ATTRS['PaymentsBrandmark'];\n }\n\n if (!attrs) {\n const msg = `Invalid brand and variant combination. There's no ${props.brand.replace(\n '-',\n ' ',\n )} ${props.variant.replace('-', ' ')} logo.`;\n logger.error(msg);\n emit('error', msg);\n\n return;\n }\n\n // If width or height is explicitly set, override the default values but do it individually.\n // SVG's will always maintain their aspect ratio, so setting one will scale the other accordingly, so if a user\n // sends in even ONE of these props, we want to make sure we delete both defaults so the SVG can scale in the\n // expected way.\n if (props.width || props.height) {\n delete attrs.width;\n delete attrs.height;\n if (props.width) {\n attrs.width = props.width;\n }\n if (props.height) {\n attrs.height = props.height;\n }\n }\n\n return attrs;\n });\n</script>\n\n<template>\n <component\n :is=\"computedLogoAttrs.is\"\n v-if=\"computedLogoAttrs\"\n class=\"stash-logo\"\n :class=\"[\n `stash-logo--${props.brand}`,\n `stash-logo--${props.variant}`,\n `stash-logo--${props.color}`,\n {\n 'tw-text-purple-500': props.color === 'purple',\n 'tw-text-white': props.color === 'white',\n },\n ]\"\n data-test=\"stash-logo\"\n fill=\"currentColor\"\n v-bind=\"computedLogoAttrs\"\n />\n</template>\n"],"names":["_hoisted_1","_hoisted_2","_createElementVNode","_hoisted_3","_hoisted_4","render","_ctx","_cache","_openBlock","_createElementBlock","DirectPayLockup","FlexPayLockup","_hoisted_5","LeafLinkBrandmark","_createStaticVNode","LeafLinkLockup","MarketplaceBrandmark","PaymentsBrandmark","PaymentsLockup","PostLockup","DEFAULT_LOGO_ATTRS","computedLogoAttrs","computed","attrs","props","msg","logger","emit"],"mappings":"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"}
|
package/dist/Metric.vue.d.ts
CHANGED
|
@@ -122,7 +122,7 @@ declare enum StashCommonColors {
|
|
|
122
122
|
Red100 = "red-100",
|
|
123
123
|
Ice700 = "ice-700",
|
|
124
124
|
Ice500 = "ice-500",
|
|
125
|
-
Ice200 = "ice-200"
|
|
125
|
+
Ice200 = "ice-200",
|
|
126
126
|
Ice100 = "ice-100",
|
|
127
127
|
White = "white",
|
|
128
128
|
Black = "black"
|
package/dist/Modal.js
CHANGED
|
@@ -8,7 +8,7 @@ import M from "./Icon.js";
|
|
|
8
8
|
import { _ as U } from "./_plugin-vue_export-helper-dad06003.js";
|
|
9
9
|
import "lodash-es/get";
|
|
10
10
|
import "./Button.vue_used_vue_type_style_index_0_lang.module-a9290468.js";
|
|
11
|
-
import "./index-
|
|
11
|
+
import "./index-9e1095ef.js";
|
|
12
12
|
import "./Icon.vue_used_vue_type_style_index_0_lang.module-eb359559.js";
|
|
13
13
|
var W = /* @__PURE__ */ ((l) => (l.Narrow = "narrow", l.Medium = "medium", l.Wide = "wide", l))(W || {}), G = /* @__PURE__ */ ((l) => (l.Center = "center", l.Left = "left", l.Right = "right", l))(G || {});
|
|
14
14
|
const J = ["onKeydown"], Q = ["aria-labelledby"], X = { class: "tw-flex tw-place-items-center" }, Y = ["id"], Z = { class: "stash-modal__footer__actions tw-flex tw-flex-col tw-justify-end lg:tw-flex-row" }, ee = /* @__PURE__ */ N({
|