tide-design-system 2.0.0 → 2.0.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.
Files changed (101) hide show
  1. package/dist/{IconAccountBalance-91cf067b.js → IconAccountBalance-0c552905.js} +1 -1
  2. package/dist/{IconAdd-95c51c0e.js → IconAdd-50766b43.js} +1 -1
  3. package/dist/{IconAi-08172540.js → IconAi-3f1ad2fe.js} +1 -1
  4. package/dist/{IconAlignSpace-9ab2bdf2.js → IconAlignSpace-804660fd.js} +1 -1
  5. package/dist/{IconApplePay-1ee6317b.js → IconApplePay-75b9850c.js} +1 -1
  6. package/dist/{IconArrowBack-a2226a94.js → IconArrowBack-3bde832a.js} +1 -1
  7. package/dist/{IconArrowForward-e1ca9957.js → IconArrowForward-0582323f.js} +1 -1
  8. package/dist/{IconArrowRight-53382084.js → IconArrowRight-c37875ce.js} +1 -1
  9. package/dist/{IconAssignment-332c2b2b.js → IconAssignment-b9549d2c.js} +1 -1
  10. package/dist/{IconAwardStar-1ca35385.js → IconAwardStar-a1b0a840.js} +1 -1
  11. package/dist/{IconBookmark-49b42628.js → IconBookmark-26e82ff4.js} +1 -1
  12. package/dist/{IconCalendarMonth-22c938d7.js → IconCalendarMonth-55806114.js} +1 -1
  13. package/dist/{IconCall-989a47fc.js → IconCall-dfc29049.js} +1 -1
  14. package/dist/{IconCheck-a3467b47.js → IconCheck-1d4a84f9.js} +1 -1
  15. package/dist/{IconChevronLeft-c1d90bb7.js → IconChevronLeft-8a9307a6.js} +1 -1
  16. package/dist/{IconChevronRight-ad47891f.js → IconChevronRight-46940da9.js} +1 -1
  17. package/dist/{IconClear-7c8fad4e.js → IconClear-1dc6a4df.js} +1 -1
  18. package/dist/{IconClose-4b6c5aed.js → IconClose-93976f13.js} +1 -1
  19. package/dist/{IconCycle-99d40f2d.js → IconCycle-b8bc8146.js} +1 -1
  20. package/dist/{IconDelete-446eff93.js → IconDelete-2970a09b.js} +1 -1
  21. package/dist/{IconDiamond-765a7d8d.js → IconDiamond-ba4bae95.js} +1 -1
  22. package/dist/{IconEdit-ce05f3b5.js → IconEdit-3612d58e.js} +1 -1
  23. package/dist/{IconError-7983707a.js → IconError-643df67d.js} +1 -1
  24. package/dist/{IconExpandContent-8b6e2125.js → IconExpandContent-71109869.js} +1 -1
  25. package/dist/{IconExpandLess-9e23f1e9.js → IconExpandLess-9c6c12b6.js} +1 -1
  26. package/dist/{IconExpandMore-ded098a7.js → IconExpandMore-fcd92910.js} +1 -1
  27. package/dist/{IconFacebook-3cab65a8.js → IconFacebook-b0d62bbb.js} +1 -1
  28. package/dist/{IconFavorite-5fe831f4.js → IconFavorite-d59dfc0b.js} +1 -1
  29. package/dist/{IconFavoriteFilled-58fa0bf7.js → IconFavoriteFilled-fd2c5862.js} +1 -1
  30. package/dist/{IconFormatBold-889f6b8b.js → IconFormatBold-6f1aa639.js} +1 -1
  31. package/dist/{IconFormatItalic-103eba00.js → IconFormatItalic-a82848b2.js} +1 -1
  32. package/dist/{IconFormatListBulleted-4c824025.js → IconFormatListBulleted-4f4a0a99.js} +1 -1
  33. package/dist/{IconForum-abc2fe82.js → IconForum-194dedbd.js} +1 -1
  34. package/dist/{IconGoogle-281b6d80.js → IconGoogle-46e6c4f1.js} +1 -1
  35. package/dist/{IconGooglePay-cc83c5c8.js → IconGooglePay-090b70a8.js} +1 -1
  36. package/dist/{IconGrid-ef763745.js → IconGrid-0f7c079c.js} +1 -1
  37. package/dist/{IconHelp-2ad33f76.js → IconHelp-e91f36a5.js} +1 -1
  38. package/dist/{IconInfo-5878df77.js → IconInfo-df1f06a5.js} +1 -1
  39. package/dist/{IconInsertText-0c62badf.js → IconInsertText-e371c1cd.js} +1 -1
  40. package/dist/{IconInstagram-69e21cfb.js → IconInstagram-af4ea628.js} +1 -1
  41. package/dist/{IconIosShare-be5f117c.js → IconIosShare-7253c1df.js} +1 -1
  42. package/dist/{IconLayout-c1ffbcd3.js → IconLayout-225d9fb6.js} +1 -1
  43. package/dist/{IconLinkedIn-807ef6f5.js → IconLinkedIn-ab7e007c.js} +1 -1
  44. package/dist/{IconLocalShipping-2c6d71e0.js → IconLocalShipping-2c8ac96c.js} +1 -1
  45. package/dist/{IconLock-9178e816.js → IconLock-b4e1bd5d.js} +1 -1
  46. package/dist/{IconMail-0123a7c6.js → IconMail-50eca4b4.js} +1 -1
  47. package/dist/{IconMenu-33ed2d99.js → IconMenu-7789a1f9.js} +1 -1
  48. package/dist/{IconMoreHoriz-c281099f.js → IconMoreHoriz-35960212.js} +1 -1
  49. package/dist/{IconNotifications-89f80e0f.js → IconNotifications-a6690c77.js} +1 -1
  50. package/dist/{IconOpenInNew-87ad0454.js → IconOpenInNew-8b812d7f.js} +1 -1
  51. package/dist/{IconPalette-7ee5b40c.js → IconPalette-18b6e766.js} +1 -1
  52. package/dist/{IconPaypal-e311eadd.js → IconPaypal-75ff8ed5.js} +1 -1
  53. package/dist/{IconPerson-932fbcbc.js → IconPerson-3c8a4c27.js} +1 -1
  54. package/dist/{IconPhotoCamera-fdbd5767.js → IconPhotoCamera-0fbb9344.js} +1 -1
  55. package/dist/{IconPinterest-2d19c2eb.js → IconPinterest-28ae7c92.js} +1 -1
  56. package/dist/{IconPlayArrow-9837a5c0.js → IconPlayArrow-6d779a71.js} +1 -1
  57. package/dist/{IconRemove-29ef8f82.js → IconRemove-1f655305.js} +1 -1
  58. package/dist/{IconRoundedCorners-8ad194fc.js → IconRoundedCorners-1f9eba28.js} +1 -1
  59. package/dist/{IconSearch-5ff23d26.js → IconSearch-c6843cf3.js} +1 -1
  60. package/dist/{IconSell-0e0ecd20.js → IconSell-c7818ac8.js} +1 -1
  61. package/dist/{IconShare-47084765.js → IconShare-b81bc4cd.js} +1 -1
  62. package/dist/{IconShoppingCart-9d6495b3.js → IconShoppingCart-b6cc2022.js} +1 -1
  63. package/dist/{IconSms-5ba18382.js → IconSms-dc4c1454.js} +1 -1
  64. package/dist/{IconStar-ef69284b.js → IconStar-c4305bd6.js} +1 -1
  65. package/dist/{IconSwapVert-05e14e3d.js → IconSwapVert-00e66af6.js} +1 -1
  66. package/dist/{IconThreeDRotation-2433b2e8.js → IconThreeDRotation-b19a9312.js} +1 -1
  67. package/dist/{IconTune-3c6452f0.js → IconTune-dee47734.js} +1 -1
  68. package/dist/{IconTwitter-a634cef4.js → IconTwitter-2ab4e06b.js} +1 -1
  69. package/dist/{IconVideocam-5712435e.js → IconVideocam-0d0142aa.js} +1 -1
  70. package/dist/{IconViewInAr-d38a23d5.js → IconViewInAr-7cd92579.js} +1 -1
  71. package/dist/{IconVisibility-8cdf7151.js → IconVisibility-84655778.js} +1 -1
  72. package/dist/{IconWarning-b9e61180.js → IconWarning-cab4938a.js} +1 -1
  73. package/dist/{IconYoutube-92447826.js → IconYoutube-ab7e33d3.js} +1 -1
  74. package/dist/css/dynamic-utilities.css +0 -1
  75. package/dist/css/main.css +0 -1
  76. package/dist/css/utilities.css +9 -8
  77. package/dist/css/variables.css +21 -17
  78. package/dist/index-32686488.js +2106 -0
  79. package/dist/style.css +1 -1
  80. package/dist/tide-design-system.js +48 -0
  81. package/dist/types/FacetRange.ts +84 -0
  82. package/dist/types/Field.ts +0 -1
  83. package/dist/types/Form.ts +57 -0
  84. package/dist/types/Realm.ts +1 -0
  85. package/dist/types/Select.ts +6 -0
  86. package/dist/types/Storybook.ts +206 -1
  87. package/dist/types/Styles.ts +64 -30
  88. package/dist/types/Validation.ts +7 -1
  89. package/dist/utilities/format.ts +75 -39
  90. package/dist/utilities/storybook.ts +35 -1
  91. package/dist/utilities/validation.ts +139 -34
  92. package/package.json +1 -1
  93. package/dist/css/dynamic-inputs.css +0 -43
  94. package/dist/index-c5bc4216.js +0 -1910
  95. package/dist/tide2-design-system.js +0 -36
  96. package/dist/types/StorybookStyles.ts +0 -209
  97. package/dist/types/Vehicle.ts +0 -139
  98. package/dist/types/VehicleDetail.ts +0 -44
  99. package/dist/types/index.d.ts +0 -7
  100. package/dist/utilities/forms.ts +0 -47
  101. package/dist/utilities/media.ts +0 -77
@@ -1,36 +0,0 @@
1
- import { T as d, a as s, b as T, c as t, d as n, e as o, f as r, g as u, h as g, i as p, j as I, k as c, l as B, m, n as C, o as l, p as h, q as x, r as A, s as P, t as b, u as k, v, w as S, x as f, y as D, z as L, A as M, B as j, C as q, D as w, E as y } from "./index-c5bc4216.js";
2
- import "vue";
3
- export {
4
- d as TideAccordionItem,
5
- s as TideAlert,
6
- T as TideBadge,
7
- t as TideBadgeCounter,
8
- n as TideBadgeMisc,
9
- o as TideBadgePremium,
10
- r as TideBadgeTrustedPartner,
11
- u as TideBreadCrumbs,
12
- g as TideButton,
13
- p as TideButtonIcon,
14
- I as TideButtonPagination,
15
- c as TideCard,
16
- B as TideCarousel,
17
- m as TideChipAction,
18
- C as TideChipFilter,
19
- l as TideChipInput,
20
- h as TideColumns,
21
- x as TideDivider,
22
- A as TideIcon,
23
- P as TideImage,
24
- b as TideIndicator,
25
- k as TideInputRadio,
26
- v as TideInputSelect,
27
- S as TideInputText,
28
- f as TideInputTextarea,
29
- D as TideLink,
30
- L as TideModal,
31
- M as TidePagination,
32
- j as TideSeoLinks,
33
- q as TideSvgIcon,
34
- w as TideTabs,
35
- y as TideToggle
36
- };
@@ -1,209 +0,0 @@
1
- /* eslint vue/sort-keys: 0 */
2
- // ^ Storybook controls are based on iterating over object properties instead of array slots (bad form), so these can't be ordered alphabetically.
3
-
4
- import { CSS } from '@/types/Styles';
5
-
6
- export const BADGE_TRUSTED = {
7
- YEARS_5: '5',
8
- YEARS_10: '10',
9
- YEARS_15: '15',
10
- };
11
-
12
- export const BORDER_RADIUS = {
13
- '0.25 REM': 'tide-radius-1/4',
14
- '0.5 REM': 'tide-radius-1/2',
15
- '1 REM': 'tide-radius-1',
16
- 'Full': 'tide-radius-full',
17
- };
18
-
19
- export const BORDER_SIDE = {
20
- Full: 'tide-border',
21
- Top: 'tide-border-top',
22
- Right: 'tide-border-right',
23
- Bottom: 'tide-border-bottom',
24
- Left: 'tide-border-left',
25
- };
26
-
27
- export const BORDER_WIDTH = {
28
- '1px': '1',
29
- '2px': '2',
30
- };
31
-
32
- export const DISPLAY = {
33
- 'Block': 'tide-display-block',
34
- 'Contents': 'tide-contents',
35
- 'Flex': 'tide-display-flex',
36
- 'Grid': 'tide-display-grid',
37
- 'Inline Block': 'tide-display-inline-block',
38
- 'Inline Flex': 'tide-display-inline-flex',
39
- 'Inline': 'tide-display-inline',
40
- 'None (Hidden)': 'tide-display-none',
41
- };
42
-
43
- export const FLEX_AXIS1 = {
44
- Around: 'tide-axis1-around',
45
- Between: 'tide-axis1-between',
46
- Center: 'tide-axis1-center',
47
- End: 'tide-axis1-end',
48
- Start: 'tide-axis1-start',
49
- };
50
-
51
- export const FLEX_AXIS2 = {
52
- Center: 'tide-axis2-center',
53
- End: 'tide-axis2-end',
54
- Normal: 'tide-axis2-normal',
55
- Start: 'tide-axis2-start',
56
- };
57
-
58
- export const FLEX_DIRECTION = {
59
- Column: 'tide-flex-column',
60
- Row: 'tide-flex-row',
61
- };
62
-
63
- export const FONT_SIZE = {
64
- '12px': 'tide-font-12',
65
- '14px': 'tide-font-14',
66
- '16px': 'tide-font-16',
67
- '20px': 'tide-font-20',
68
- '24px': 'tide-font-24',
69
- '32px': 'tide-font-32',
70
- };
71
-
72
- export const FONT_WEIGHT = {
73
- '400 Regular': 'tide-font-400',
74
- '500 Medium': 'tide-font-500',
75
- '600 Semibold': 'tide-font-600',
76
- '700 Bold': 'tide-font-700',
77
- };
78
-
79
- export const GAP = {
80
- '4 REM': 'tide-gap-4',
81
- '2 REM': 'tide-gap-2',
82
- '1 REM': 'tide-gap-1',
83
- '0.5 REM': 'tide-gap-1/2',
84
- '0.25 REM': 'tide-gap-1/4',
85
- };
86
-
87
- export const LINK_SIZE = {
88
- TWELVE: 'tide-font-12',
89
- FOURTEEN: 'tide-font-14',
90
- SIXTEEN: 'tide-font-16',
91
- };
92
-
93
- export const MARGIN = {
94
- 'Full 4 REM': 'tide-margin-4',
95
- 'Full 2 REM': 'tide-margin-2',
96
- 'Full 1 REM': 'tide-margin-1',
97
- 'Full 0.5 REM': 'tide-margin-1/2',
98
- 'Full 0.25 REM': 'tide-margin-1/4',
99
-
100
- 'X-axis Auto': 'tide-margin-x-auto',
101
- 'X-axis 4 REM': 'tide-margin-x-4',
102
- 'X-axis 2 REM': 'tide-margin-x-2',
103
- 'X-axis 1 REM': 'tide-margin-x-1',
104
- 'X-axis 0.5 REM': 'tide-margin-x-1/2',
105
- 'X-axis 0.25 REM': 'tide-margin-x-1/4',
106
-
107
- 'Y-axis 4 REM': 'tide-margin-y-4',
108
- 'Y-axis 2 REM': 'tide-margin-y-2',
109
- 'Y-axis 1 REM': 'tide-margin-y-1',
110
- 'Y-axis 0.5 REM': 'tide-margin-y-1/2',
111
- 'Y-axis 0.25 REM': 'tide-margin-y-1/4',
112
-
113
- 'Top 4 REM': 'tide-margin-top-4',
114
- 'Top 2 REM': 'tide-margin-top-2',
115
- 'Top 1 REM': 'tide-margin-top-1',
116
- 'Top 0.5 REM': 'tide-margin-top-1/2',
117
- 'Top 0.25 REM': 'tide-margin-top-1/4',
118
-
119
- 'Right Auto': 'tide-margin-right-auto',
120
- 'Right 4 REM': 'tide-margin-right-4',
121
- 'Right 2 REM': 'tide-margin-right-2',
122
- 'Right 1 REM': 'tide-margin-right-1',
123
- 'Right 0.5 REM': 'tide-margin-right-1/2',
124
- 'Right 0.25 REM': 'tide-margin-right-1/4',
125
-
126
- 'Bottom 4 REM': 'tide-margin-bottom-4',
127
- 'Bottom 2 REM': 'tide-margin-bottom-2',
128
- 'Bottom 1 REM': 'tide-margin-bottom-1',
129
- 'Bottom 0.5 REM': 'tide-margin-bottom-1/2',
130
- 'Bottom 0.25 REM': 'tide-margin-bottom-1/4',
131
-
132
- 'Left Auto': 'tide-margin-left-auto',
133
- 'Left 4 REM': 'tide-margin-left-4',
134
- 'Left 2 REM': 'tide-margin-left-2',
135
- 'Left 1 REM': 'tide-margin-left-1',
136
- 'Left 0.5 REM': 'tide-margin-left-1/2',
137
- 'Left 0.25 REM': 'tide-margin-left-1/4',
138
- };
139
-
140
- export const PADDING = {
141
- 'Full 4 REM': 'tide-padding-4',
142
- 'Full 2 REM': 'tide-padding-2',
143
- 'Full 1 REM': 'tide-padding-1',
144
- 'Full 0.5 REM': 'tide-padding-1/2',
145
- 'Full 0.25 REM': 'tide-padding-1/4',
146
-
147
- 'X-axis 4 REM': 'tide-padding-x-4',
148
- 'X-axis 2 REM': 'tide-padding-x-2',
149
- 'X-axis 1 REM': 'tide-padding-x-1',
150
- 'X-axis 0.5 REM': 'tide-padding-x-1/2',
151
- 'X-axis 0.25 REM': 'tide-padding-x-1/4',
152
-
153
- 'Y-axis 4 REM': 'tide-padding-y-4',
154
- 'Y-axis 2 REM': 'tide-padding-y-2',
155
- 'Y-axis 1 REM': 'tide-padding-y-1',
156
- 'Y-axis 0.5 REM': 'tide-padding-y-1/2',
157
- 'Y-axis 0.25 REM': 'tide-padding-y-1/4',
158
-
159
- 'Top 4 REM': 'tide-padding-top-4',
160
- 'Top 2 REM': 'tide-padding-top-2',
161
- 'Top 1 REM': 'tide-padding-top-1',
162
- 'Top 0.5 REM': 'tide-padding-top-1/2',
163
- 'Top 0.25 REM': 'tide-padding-top-1/4',
164
-
165
- 'Right 4 REM': 'tide-padding-right-4',
166
- 'Right 2 REM': 'tide-padding-right-2',
167
- 'Right 1 REM': 'tide-padding-right-1',
168
- 'Right 0.5 REM': 'tide-padding-right-1/2',
169
- 'Right 0.25 REM': 'tide-padding-right-1/4',
170
-
171
- 'Bottom 4 REM': 'tide-padding-bottom-4',
172
- 'Bottom 2 REM': 'tide-padding-bottom-2',
173
- 'Bottom 1 REM': 'tide-padding-bottom-1',
174
- 'Bottom 0.5 REM': 'tide-padding-bottom-1/2',
175
- 'Bottom 0.25 REM': 'tide-padding-bottom-1/4',
176
-
177
- 'Left 4 REM': 'tide-padding-left-4',
178
- 'Left 2 REM': 'tide-padding-left-2',
179
- 'Left 1 REM': 'tide-padding-left-1',
180
- 'Left 0.5 REM': 'tide-padding-left-1/2',
181
- 'Left 0.25 REM': 'tide-padding-left-1/4',
182
- };
183
-
184
- export const SHADOW = {
185
- Bottom: 'tide-shadow-bottom',
186
- Top: 'tide-shadow-top',
187
- };
188
-
189
- export const TYPOGRAPHY = {
190
- DISPLAY_1: [CSS.FONT.SIZE.THIRTY_TWO, CSS.FONT.WEIGHT.SEVEN_HUNDRED],
191
- HEADLINE_1: [CSS.FONT.SIZE.TWENTY_FOUR, CSS.FONT.WEIGHT.SEVEN_HUNDRED],
192
- HEADLINE_2: [CSS.FONT.SIZE.TWENTY, CSS.FONT.WEIGHT.SEVEN_HUNDRED],
193
- HEADLINE_3: [CSS.FONT.SIZE.SIXTEEN, CSS.FONT.WEIGHT.SEVEN_HUNDRED],
194
- TITLE_1: [CSS.FONT.SIZE.TWENTY, CSS.FONT.WEIGHT.SIX_HUNDRED],
195
- TITLE_2: [CSS.FONT.SIZE.SIXTEEN, CSS.FONT.WEIGHT.SIX_HUNDRED],
196
- BODY_1: [CSS.FONT.SIZE.SIXTEEN, CSS.FONT.WEIGHT.FOUR_HUNDRED],
197
- BODY_2: [CSS.FONT.SIZE.FOURTEEN, CSS.FONT.WEIGHT.FOUR_HUNDRED],
198
- LABEL_1: [CSS.FONT.SIZE.SIXTEEN, CSS.FONT.WEIGHT.FIVE_HUNDRED],
199
- LABEL_1_SEMIBOLD: [CSS.FONT.SIZE.SIXTEEN, CSS.FONT.WEIGHT.SIX_HUNDRED],
200
- LABEL_2: [CSS.FONT.SIZE.FOURTEEN, CSS.FONT.WEIGHT.FIVE_HUNDRED],
201
- LABEL_2_SEMIBOLD: [CSS.FONT.SIZE.FOURTEEN, CSS.FONT.WEIGHT.SIX_HUNDRED],
202
- LABEL_3: [CSS.FONT.SIZE.TWELVE, CSS.FONT.WEIGHT.FIVE_HUNDRED],
203
- LINK_1: [CSS.FONT.SIZE.SIXTEEN, CSS.FONT.WEIGHT.SEVEN_HUNDRED],
204
- LINK_2: [CSS.FONT.SIZE.FOURTEEN, CSS.FONT.WEIGHT.SEVEN_HUNDRED],
205
- LINK_3: [CSS.FONT.SIZE.TWELVE, CSS.FONT.WEIGHT.SEVEN_HUNDRED],
206
- BUTTON_1: [CSS.FONT.SIZE.SIXTEEN, CSS.FONT.WEIGHT.SIX_HUNDRED],
207
- };
208
-
209
- export type Typography = (typeof TYPOGRAPHY)[keyof typeof TYPOGRAPHY];
@@ -1,139 +0,0 @@
1
- export type Vehicle = {
2
- adAttribs: {
3
- itemUrl: string;
4
- makeAnOffer: string;
5
- priceDisclaimer: string;
6
- requestAPrice: string;
7
- videoBorchueNarationStyle: string;
8
- };
9
- adDetailUrl: string;
10
- adFeatures: {
11
- buyNow: boolean;
12
- featuredHomepage: boolean;
13
- featuredSearch: boolean;
14
- hideFloorPlans: boolean;
15
- oneYearPackage: boolean;
16
- paaVideo: boolean;
17
- premium: boolean;
18
- topPremium: boolean;
19
- };
20
- adId: number;
21
- adListingPosition: number;
22
- categoryName: string[];
23
- city: string;
24
- cityStateFacet: string;
25
- classId: string;
26
- className: string;
27
- companyName: string;
28
- condition: string[];
29
- createDate: string;
30
- createDateFormatted: string;
31
- customerId: string;
32
- dealerFeatures: {
33
- deactivateContactDealer: boolean;
34
- hasAccessIndustryAero: boolean;
35
- hasAccessIndustryCycle: boolean;
36
- hasAccessIndustryEquipment: boolean;
37
- hasAccessIndustryNextruck: boolean;
38
- hasAccessIndustryRV: boolean;
39
- hasAccessIndustryRentalsCycle: boolean;
40
- hasAccessIndustryRentalsRv: boolean;
41
- hasAccessIndustryRockAndDirt: boolean;
42
- hasAccessIndustryTradeAPlane: boolean;
43
- hasAccessIndustryTradeEquip: boolean;
44
- hasAccessIndustryTrailer: boolean;
45
- hasAccessIndustryTruck: boolean;
46
- hasAdLocationLockdown: boolean;
47
- hasAdPearance: boolean;
48
- hasAutoSelectUnusedBundle: boolean;
49
- hasClickToCall: boolean;
50
- hasClickToWeb: boolean;
51
- hasContactAtOnce: boolean;
52
- hasContactAtOnceTexting: boolean;
53
- hasCoreLite: boolean;
54
- hasDealDesignation: boolean;
55
- hasDealerCoreLeadManager: boolean;
56
- hasDigitalRetailingBuyNow: boolean;
57
- hasDigitalRetailingEnhancedLead: boolean;
58
- hasFacebookRetargeting: boolean;
59
- hasGreenFlag: boolean;
60
- hasHideDealerWebsiteLink: boolean;
61
- hasHideFactorySpecs: boolean;
62
- hasHideFinance: boolean;
63
- hasHideInspection: boolean;
64
- hasHideLoanCalculator: boolean;
65
- hasHideShipping: boolean;
66
- hasHideStandardFeatures: boolean;
67
- hasHideTaglines: boolean;
68
- hasInternetAdvertising: boolean;
69
- hasMakeAnOffer: boolean;
70
- hasMakeAnOfferPrice: boolean;
71
- hasMapIt: boolean;
72
- hasOctaneFinance: boolean;
73
- hasOptOutDealerGroupLeaderboard: boolean;
74
- hasOptOutDealerGroupRollup: boolean;
75
- hasOptOutDealerGroupSharedLogin: boolean;
76
- hasOptOutDealerGroupWebsite: boolean;
77
- hasRemoveLoanCalcDealerFinancing: boolean;
78
- hasRemoveVinFromDisplay: boolean;
79
- hasRental: boolean;
80
- hasRequestBestPrice: boolean;
81
- hasRequestPrice: boolean;
82
- hasRequestQuotePreorder: boolean;
83
- hasRequestQuoteWeBuy: boolean;
84
- hasRequestTradeIn: boolean;
85
- hasShiftDigital: boolean;
86
- hasShowListingAddress: boolean;
87
- hasShutOffAdvertising: boolean;
88
- hasShutOffDigitRetailVDP: boolean;
89
- hasSuggestedTrucks: boolean;
90
- hasTalkingBrochure: boolean;
91
- hasTiChat: boolean;
92
- hasTiChatGuestDisabled: boolean;
93
- hasTiChatManaged: boolean;
94
- hasTradeIn: boolean;
95
- hasTradeInFeature: boolean;
96
- hasTradertraxxCombinedExperience: boolean;
97
- hasVideo: boolean;
98
- hasVideoChatRequest: boolean;
99
- hasVr: boolean;
100
- isHibernate: boolean;
101
- removeRequestPhotoVideo: boolean;
102
- };
103
- dealerGroupDealerCount: string;
104
- dealerGroupId: string;
105
- dealerGroupName: string;
106
- dealerId: string;
107
- dealerPhone: string[];
108
- dealerWebsiteUrl: string;
109
- description: string;
110
- isBuynow: string;
111
- isFeatured: string;
112
- isPremium: string;
113
- isToppremium: string;
114
- latitude: string;
115
- longitude: string;
116
- makeFacet: string[];
117
- makeId: string[];
118
- makeName: string[];
119
- meta: {
120
- engine: string;
121
- id: string;
122
- score: number;
123
- };
124
- mfrSerialNum: null;
125
- modelFacet: string[];
126
- modelName: string[];
127
- msrp: null;
128
- phone: string;
129
- photoCount: number;
130
- photoIds: string[];
131
- price: number;
132
- rebate: null;
133
- schemeCode: string;
134
- sellerType: string;
135
- stateCode: string;
136
- trimName: string[];
137
- websiteUrl: null;
138
- year: number;
139
- };
@@ -1,44 +0,0 @@
1
- export type VehicleDetail = {
2
- id: string;
3
- adUrl: string;
4
- breadcrumbs: { text: string; link: string }[];
5
- categoryName: string | null;
6
- className: string;
7
- condition: string;
8
- customerId: string;
9
- dealerId: string;
10
- dealerLogo: { url: string };
11
- dealerMapUrl: string;
12
- dealerName: string;
13
- dealerRepeatTag: string;
14
- features: { id: string; name: string }[];
15
- makeAnOfferPrice: string | null;
16
- makeDisplayName: string;
17
- modelDisplayName: string;
18
- phone: string;
19
- photos: { url: string }[];
20
- price: string;
21
- realmId: string;
22
- state: string;
23
- trimName: string;
24
- year: string;
25
- zip: string;
26
- formattedPhone: string;
27
- description: string;
28
- miles: string;
29
- location: string;
30
- locationDistance: string;
31
- details: { [key: string]: string };
32
- factorySpecs: string | null;
33
- localDelivery: string;
34
- emailSellerUrl: string;
35
- dealerLink: string;
36
- realmUrl: string;
37
- realmName: string;
38
- isSmsAvailable: boolean;
39
- isChatAvailable: boolean;
40
- isDealerWebsiteAvailable: boolean;
41
- video?: { thumbnail: string; url: string };
42
- vrUrl: string;
43
- floorPlanMediaId: string | null;
44
- };
@@ -1,7 +0,0 @@
1
- type MyName = {
2
- fname: string;
3
- mname: string;
4
- lname: string;
5
- };
6
-
7
- export type { MyName };
@@ -1,47 +0,0 @@
1
- import type { Ref } from 'vue';
2
- import type { SelectOption } from '@/types/Select';
3
- import type { ValidationError, Validator } from '@/types/Validation';
4
-
5
- import { errorMessageDefault, validateProperty } from '@/utilities/validation';
6
-
7
- export const getFieldHasError = (errorFromProps: ValidationError, errorFromRef: ValidationError) =>
8
- errorFromProps !== false || errorFromRef !== false;
9
-
10
- export const getSelectOptionsFromStrings = (strings: string[]) =>
11
- strings.map(
12
- (option) =>
13
- ({
14
- label: option,
15
- value: option,
16
- } as SelectOption)
17
- );
18
-
19
- export const getSupportingText = (errorFromProps: ValidationError, errorFromRef: ValidationError) => {
20
- // error in props takes precedence over validation error
21
- if (typeof errorFromProps === 'string' && errorFromProps.length > 0) return errorFromProps;
22
-
23
- return typeof errorFromRef === 'string' && errorFromRef.length > 0 ? errorFromRef : errorMessageDefault;
24
- };
25
-
26
- export const handleFieldValidation = ({
27
- error,
28
- errorFromProps,
29
- validators,
30
- value,
31
- }: {
32
- error: Ref<ValidationError>;
33
- errorFromProps: ValidationError;
34
- validators?: Validator[];
35
- value: Ref<string>;
36
- }) => {
37
- // error in props takes precedence over validation error
38
- error.value = errorFromProps;
39
-
40
- if (!errorFromProps && validators) {
41
- const validation = validateProperty(value.value, validators);
42
-
43
- if (!validation.valid) {
44
- error.value = validation.message;
45
- }
46
- }
47
- };
@@ -1,77 +0,0 @@
1
- import { MEDIA_SLIDE_TYPES, type ListingMedia } from '@/types/ListingMedia';
2
- import type { VehicleDetail } from '@/types/VehicleDetail';
3
-
4
- export function getIdFromYoutubeUrl(url: string): string {
5
- const prefixes = [
6
- 'http://www.youtube.com/v/',
7
- 'https://www.youtube.com/v/',
8
- 'http://www.youtube.com/watch?v=',
9
- 'https://www.youtube.com/watch?v=',
10
- 'http://youtu.be/',
11
- 'https://youtu.be/',
12
- ];
13
-
14
- let id = url;
15
- prefixes.forEach((separator) => {
16
- if (url.includes(separator)) {
17
- id = url.split(separator).join('');
18
- }
19
- });
20
-
21
- return id;
22
- }
23
-
24
- export function getListingMediaSlides(vehicle: VehicleDetail): ListingMedia[] {
25
- const slides: ListingMedia[] = [];
26
-
27
- // insert at a specific index but also handle cases where the index is out of bounds
28
- const insertSlideAtIndex = (slide: ListingMedia, index: number) => {
29
- slides.splice(Math.min(index, slides.length), 0, slide);
30
- };
31
-
32
- vehicle.photos.forEach((photo) => {
33
- slides.push({
34
- imageUrl: String(photo.url),
35
- type: MEDIA_SLIDE_TYPES.IMAGE.IMAGE,
36
- });
37
- });
38
-
39
- if (vehicle.floorPlanMediaId) {
40
- insertSlideAtIndex(
41
- {
42
- imageUrl: String(vehicle.floorPlanMediaId),
43
- type: MEDIA_SLIDE_TYPES.IMAGE.FLOORPLAN,
44
- },
45
- 1
46
- );
47
- }
48
-
49
- if (vehicle.video) {
50
- insertSlideAtIndex(
51
- {
52
- imageUrl: String(vehicle.video.thumbnail),
53
- type: MEDIA_SLIDE_TYPES.VIDEO,
54
- videoUrl: String(vehicle.video.url),
55
- },
56
- 2
57
- );
58
- }
59
-
60
- if (vehicle.vrUrl) {
61
- insertSlideAtIndex(
62
- {
63
- imageUrl: vehicle.photos?.[0]?.url && String(vehicle.photos[0].url),
64
- type: MEDIA_SLIDE_TYPES.VR,
65
- vrUrl: String(vehicle.vrUrl),
66
- },
67
- 3
68
- );
69
- }
70
-
71
- return slides;
72
- }
73
-
74
- export function getSlideIndex(slideToFind: ListingMedia, allSlides: ListingMedia[]): number {
75
- // TODO: find a better way of matching a slide. this is not good.
76
- return allSlides.findIndex((slide) => slide === slideToFind);
77
- }