@bagelink/vue 1.2.109 → 1.2.111

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/style.css CHANGED
@@ -1,4 +1,18 @@
1
1
  @import url('https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200');@import url('https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.7.2/css/all.min.css');@import url('https://fonts.googleapis.com/css2?family=Lexend:wght@100;200;300;400;500;600;700;800;900&display=swap');
2
+ .expand-enter-active,
3
+ .expand-leave-active {
4
+ transition: all 0.2s;
5
+ transition-delay: 0ms;
6
+ }
7
+ .expand-enter-from,
8
+ .expand-leave-to {
9
+ max-height: 0;
10
+ }
11
+ .expand-enter-to,
12
+ .expand-leave-from {
13
+ max-height: 300px;
14
+ }
15
+
2
16
  .accordion-item[data-v-3334f637] {
3
17
  border-bottom: 1px solid var(--border-color);
4
18
  transition: all 0.2s;
@@ -41,20 +55,6 @@
41
55
  text-decoration: underline;
42
56
  }
43
57
 
44
- .expand-enter-active,
45
- .expand-leave-active {
46
- transition: all 0.2s;
47
- transition-delay: 0ms;
48
- }
49
- .expand-enter-from,
50
- .expand-leave-to {
51
- max-height: 0;
52
- }
53
- .expand-enter-to,
54
- .expand-leave-from {
55
- max-height: 300px;
56
- }
57
-
58
58
  .bgl_btn[data-v-99c4aa53] {
59
59
  --btn-bg: var(--bgl-primary);
60
60
  --btn-color: var(--bgl-light-text);
@@ -262,10 +262,6 @@ display: block;
262
262
  object-fit: cover;
263
263
  }
264
264
 
265
- .inline[data-v-689f051f] {
266
- display: inline;
267
- }
268
-
269
265
  .pill {
270
266
  border-radius: 10px;
271
267
  padding: 4px 8px;
@@ -308,6 +304,10 @@ display: block;
308
304
  color: var(--bgl-red);
309
305
  }
310
306
 
307
+ .inline[data-v-689f051f] {
308
+ display: inline;
309
+ }
310
+
311
311
  .bgl_vid iframe[data-v-006552f6],
312
312
  .bgl_vid video[data-v-006552f6] {
313
313
  width: 100%;
@@ -1406,6 +1406,12 @@ fieldset[data-v-f7e758e5] {
1406
1406
  color: var(--label-color) !important;
1407
1407
  }
1408
1408
 
1409
+ /* Global styles */
1410
+ pre code.hljs {
1411
+ padding: 0 !important;
1412
+ background: transparent !important;
1413
+ }
1414
+
1409
1415
  .code-editor-container[data-v-6ab9613f] {
1410
1416
  margin-bottom: 0.5rem;
1411
1417
  height: 100%;
@@ -1474,12 +1480,6 @@ fieldset[data-v-f7e758e5] {
1474
1480
  color: transparent;
1475
1481
  }
1476
1482
 
1477
- /* Global styles */
1478
- pre code.hljs {
1479
- padding: 0 !important;
1480
- background: transparent !important;
1481
- }
1482
-
1483
1483
  .colorInputPick{
1484
1484
  --input-font-size: 12px;
1485
1485
  height: calc(var(--input-height) - 9px) !important;
@@ -2148,42 +2148,6 @@ input[type="range"][data-v-46e22f3e]:active::-webkit-slider-thumb {
2148
2148
  }
2149
2149
  .resize-observer[data-v-b329ee4c]{position:absolute;top:0;left:0;z-index:-1;width:100%;height:100%;border:none;background-color:transparent;pointer-events:none;display:block;overflow:hidden;opacity:0}.resize-observer[data-v-b329ee4c] object{display:block;position:absolute;top:0;left:0;height:100%;width:100%;overflow:hidden;pointer-events:none;z-index:-1}.v-popper__popper{z-index:10000;top:0;left:0;outline:none}.v-popper__popper.v-popper__popper--hidden{visibility:hidden;opacity:0;transition:opacity .15s,visibility .15s;pointer-events:none}.v-popper__popper.v-popper__popper--shown{visibility:visible;opacity:1;transition:opacity .15s}.v-popper__popper.v-popper__popper--skip-transition,.v-popper__popper.v-popper__popper--skip-transition>.v-popper__wrapper{transition:none!important}.v-popper__backdrop{position:absolute;top:0;left:0;width:100%;height:100%;display:none}.v-popper__inner{position:relative;box-sizing:border-box;overflow-y:auto}.v-popper__inner>div{position:relative;z-index:1;max-width:inherit;max-height:inherit}.v-popper__arrow-container{position:absolute;width:10px;height:10px}.v-popper__popper--arrow-overflow .v-popper__arrow-container,.v-popper__popper--no-positioning .v-popper__arrow-container{display:none}.v-popper__arrow-inner,.v-popper__arrow-outer{border-style:solid;position:absolute;top:0;left:0;width:0;height:0}.v-popper__arrow-inner{visibility:hidden;border-width:7px}.v-popper__arrow-outer{border-width:6px}.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-inner{left:-2px}.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-outer,.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-outer{left:-1px}.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-outer{border-bottom-width:0;border-left-color:transparent!important;border-right-color:transparent!important;border-bottom-color:transparent!important}.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-inner{top:-2px}.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-container{top:0}.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-outer{border-top-width:0;border-left-color:transparent!important;border-right-color:transparent!important;border-top-color:transparent!important}.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-inner{top:-4px}.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-outer{top:-6px}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-inner{top:-2px}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-outer,.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-outer{top:-1px}.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-outer{border-left-width:0;border-left-color:transparent!important;border-top-color:transparent!important;border-bottom-color:transparent!important}.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-inner{left:-4px}.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-outer{left:-6px}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-container{right:-10px}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-outer{border-right-width:0;border-top-color:transparent!important;border-right-color:transparent!important;border-bottom-color:transparent!important}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-inner{left:-2px}.v-popper--theme-tooltip .v-popper__inner{background:rgba(0,0,0,.8);color:#fff;border-radius:6px;padding:7px 12px 6px}.v-popper--theme-tooltip .v-popper__arrow-outer{border-color:#000c}.v-popper--theme-dropdown .v-popper__inner{background:#fff;color:#000;border-radius:6px;border:1px solid #ddd;box-shadow:0 6px 30px #0000001a}.v-popper--theme-dropdown .v-popper__arrow-inner{visibility:visible;border-color:#fff}.v-popper--theme-dropdown .v-popper__arrow-outer{border-color:#ddd}
2150
2150
 
2151
- .selectinput[data-v-c16650b4] {
2152
- width: 100%;
2153
- }
2154
- .selectinput-option[data-v-c16650b4] {
2155
- padding: 6px 12px;
2156
- cursor: pointer;
2157
- border-radius: 5px;
2158
- transition: all 0.2s;
2159
- display: grid;
2160
- grid-template-columns:1fr;
2161
- justify-content: space-between;
2162
- width: 100%;
2163
- font-size: var(--input-font-size);
2164
- margin-block: 0.15rem;
2165
- }
2166
- .selectinput-option .bgl_icon-font[data-v-c16650b4]{
2167
- line-height: normal;
2168
- }
2169
- .selectinput-options.multiselect .selectinput-option[data-v-c16650b4] {
2170
- grid-template-columns: 10px 1fr;
2171
- }
2172
- .selectinput-options[data-v-c16650b4] {
2173
- max-height: 300px;
2174
- overflow-y: auto;
2175
- }
2176
- .selectinput-option[data-v-c16650b4]:hover, .highlight[data-v-c16650b4] {
2177
- background: var(--bgl-gray-20);
2178
- }
2179
- .isEmpty p[data-v-c16650b4] {
2180
- opacity: 0.3;
2181
- }
2182
- .selected[data-v-c16650b4]{
2183
- /* background: var(--bgl-primary-tint); */
2184
- background: var(--bgl-selected);
2185
- }
2186
-
2187
2151
  .bagel-input label {
2188
2152
  font-size: var(--label-font-size);
2189
2153
  }
@@ -2224,6 +2188,42 @@ input[type="range"][data-v-46e22f3e]:active::-webkit-slider-thumb {
2224
2188
  /* color: var(--input-color); */
2225
2189
  }
2226
2190
 
2191
+ .selectinput[data-v-c16650b4] {
2192
+ width: 100%;
2193
+ }
2194
+ .selectinput-option[data-v-c16650b4] {
2195
+ padding: 6px 12px;
2196
+ cursor: pointer;
2197
+ border-radius: 5px;
2198
+ transition: all 0.2s;
2199
+ display: grid;
2200
+ grid-template-columns:1fr;
2201
+ justify-content: space-between;
2202
+ width: 100%;
2203
+ font-size: var(--input-font-size);
2204
+ margin-block: 0.15rem;
2205
+ }
2206
+ .selectinput-option .bgl_icon-font[data-v-c16650b4]{
2207
+ line-height: normal;
2208
+ }
2209
+ .selectinput-options.multiselect .selectinput-option[data-v-c16650b4] {
2210
+ grid-template-columns: 10px 1fr;
2211
+ }
2212
+ .selectinput-options[data-v-c16650b4] {
2213
+ max-height: 300px;
2214
+ overflow-y: auto;
2215
+ }
2216
+ .selectinput-option[data-v-c16650b4]:hover, .highlight[data-v-c16650b4] {
2217
+ background: var(--bgl-gray-20);
2218
+ }
2219
+ .isEmpty p[data-v-c16650b4] {
2220
+ opacity: 0.3;
2221
+ }
2222
+ .selected[data-v-c16650b4]{
2223
+ /* background: var(--bgl-primary-tint); */
2224
+ background: var(--bgl-selected);
2225
+ }
2226
+
2227
2227
  .bgl_input .canvas {
2228
2228
  width: 100%;
2229
2229
  height: 100%;
@@ -2239,6 +2239,40 @@ input[type="range"][data-v-46e22f3e]:active::-webkit-slider-thumb {
2239
2239
  border-radius: var(--input-border-radius);
2240
2240
  }
2241
2241
 
2242
+ .table-row .bagel-input input,
2243
+ .table-row .bagel-input textarea,
2244
+ .table-row .bagel-input .input {
2245
+ border-radius: 0;
2246
+ background: transparent;
2247
+ color: var(--bgl-text-color);
2248
+ }
2249
+ .table-row .bagel-input textarea {
2250
+ resize: none;
2251
+ min-height: 40px;
2252
+ overflow: auto;
2253
+ margin: 0px;
2254
+ padding: 0.64rem 0.7rem 0;
2255
+ }
2256
+ .table-row .bagel-input {
2257
+ margin: 0;
2258
+ }
2259
+ .table-row .bagel-input input:focus-visible,
2260
+ .table-row .bagel-input textarea:focus-visible,
2261
+ .table-row .bagel-input .input:focus-visible {
2262
+ background: var(--border-color);
2263
+ }
2264
+ .ghost {
2265
+ opacity: 0;
2266
+ background: #c8ebfb;
2267
+ }
2268
+ .sortable-chosen {
2269
+ cursor: grabbing !important;
2270
+ border-color: transparent;
2271
+ background: var(--bgl-box-bg);
2272
+ border-radius: 10px;
2273
+ box-shadow: 0 0 10px 0 rgb(0 0 0 /20%);
2274
+ }
2275
+
2242
2276
  .table-side-scroll[data-v-e9632f79] {
2243
2277
  overflow: auto;
2244
2278
  margin-inline-start: -1rem;
@@ -2345,40 +2379,6 @@ input[type="range"][data-v-46e22f3e]:active::-webkit-slider-thumb {
2345
2379
  opacity: 1;
2346
2380
  }
2347
2381
 
2348
- .table-row .bagel-input input,
2349
- .table-row .bagel-input textarea,
2350
- .table-row .bagel-input .input {
2351
- border-radius: 0;
2352
- background: transparent;
2353
- color: var(--bgl-text-color);
2354
- }
2355
- .table-row .bagel-input textarea {
2356
- resize: none;
2357
- min-height: 40px;
2358
- overflow: auto;
2359
- margin: 0px;
2360
- padding: 0.64rem 0.7rem 0;
2361
- }
2362
- .table-row .bagel-input {
2363
- margin: 0;
2364
- }
2365
- .table-row .bagel-input input:focus-visible,
2366
- .table-row .bagel-input textarea:focus-visible,
2367
- .table-row .bagel-input .input:focus-visible {
2368
- background: var(--border-color);
2369
- }
2370
- .ghost {
2371
- opacity: 0;
2372
- background: #c8ebfb;
2373
- }
2374
- .sortable-chosen {
2375
- cursor: grabbing !important;
2376
- border-color: transparent;
2377
- background: var(--bgl-box-bg);
2378
- border-radius: 10px;
2379
- box-shadow: 0 0 10px 0 rgb(0 0 0 /20%);
2380
- }
2381
-
2382
2382
  .tel-input[data-v-24f599bf] {
2383
2383
  direction: ltr;
2384
2384
  text-align: left;
@@ -2812,6 +2812,24 @@ input[type="range"][data-v-46e22f3e]:active::-webkit-slider-thumb {
2812
2812
  background-color: var(--skeleton-bg);
2813
2813
  }
2814
2814
 
2815
+ .fileColSelect{
2816
+ --input-bg: var(--bgl-green-light);
2817
+ }
2818
+ .fileColSelect .bgl_icon-font{
2819
+ color: var(--bgl-green);
2820
+ line-height: 0;
2821
+ }
2822
+ .hideLabel label{
2823
+ font-size: 0 !important;
2824
+ }
2825
+ .mapping-table .selectinput-btn:disabled{
2826
+ background: var(--input-bg) !important;
2827
+ cursor: not-allowed !important;
2828
+ }
2829
+ .field-label{
2830
+ --pill-height: 20px;
2831
+ }
2832
+
2815
2833
  .bgl_bottombar .bgl_btn-flex{
2816
2834
  flex-direction: column;
2817
2835
  height: 60px;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@bagelink/vue",
3
3
  "type": "module",
4
- "version": "1.2.109",
4
+ "version": "1.2.111",
5
5
  "description": "Bagel core sdk packages",
6
6
  "author": {
7
7
  "name": "Neveh Allon",
@@ -9,6 +9,8 @@ const props = withDefaults(defineProps<{
9
9
  color?: string
10
10
  round?: boolean
11
11
  weight?: number | string
12
+ fontAwesome?: boolean
13
+ fill?: boolean
12
14
  }>(), {
13
15
  size: 1
14
16
  })
@@ -16,6 +18,7 @@ const props = withDefaults(defineProps<{
16
18
  const iconRender = $computed(() => props.icon || props.name) as IconType
17
19
 
18
20
  const iconRenderType = $computed(() => {
21
+ if (props.fontAwesome && (FONT_AWESOME_ICONS.includes(iconRender) || FONT_AWESOME_BRANDS_ICONS.includes(iconRender))) return 'font-awesome'
19
22
  if (MATERIAL_ICONS.includes(iconRender)) return 'material'
20
23
  if (FONT_AWESOME_ICONS.includes(iconRender) || FONT_AWESOME_BRANDS_ICONS.includes(iconRender)) return 'font-awesome'
21
24
  return 'material'
@@ -31,7 +34,7 @@ const isFaBrand = $computed(() => FONT_AWESOME_BRANDS_ICONS.includes(iconRender)
31
34
  :class="{ 'round flex aspect-ratio-1 justify-content-center': round }"
32
35
  :style="{ 'fontSize': `${size}rem`,
33
36
  color,
34
- 'font-variation-settings': `'wght' ${weight || 400}`,
37
+ 'font-variation-settings': `'FILL' ${fill ? 1 : 0}, 'wght' ${weight || 400}`,
35
38
  'width': round ? `calc(${size}rem * 2)` : 'auto',
36
39
  'height': round ? `calc(${size}rem * 2)` : 'auto',
37
40
  }"
@@ -40,7 +43,15 @@ const isFaBrand = $computed(() => FONT_AWESOME_BRANDS_ICONS.includes(iconRender)
40
43
  </span>
41
44
  <span
42
45
  v-else-if="iconRenderType === 'font-awesome'"
43
- class="fa far bgl_icon-font" :class="[`fa-${iconRender}`, { 'fa-brands': isFaBrand }]"
46
+ class="fa bgl_icon-font"
47
+ :class="[
48
+ `fa-${iconRender}`,
49
+ {
50
+ 'fa-brands': isFaBrand,
51
+ 'fa-solid': fill,
52
+ 'far': !fill && !isFaBrand,
53
+ },
54
+ ]"
44
55
  :style="{ 'fontSize': `${size}rem`, color, 'font-variation-settings': `'wght' ${weight || 400}` }"
45
56
  />
46
57
  </template>
@@ -1535,116 +1535,109 @@ function getRelatedFieldWithDefaults(parentId: string, field: any) {
1535
1535
  </div>
1536
1536
 
1537
1537
  <!-- Step 2: Sheet selection and configuration -->
1538
- <div v-if="file && !isLoading && sheetNames.length > 0" class="config-section">
1539
- <div class="file-info mb-1">
1540
- <div class="file-chip">
1541
- {{ file.name }}
1542
- </div>
1543
- <Btn thin round value="Change File" @click="file = null" />
1544
- </div>
1545
- <SelectInput v-if="sheetNames.length > 1" v-model="selectedSheet" :options="sheetNames" label="Select Sheet" />
1546
- <div class="header-config">
1547
- <CheckInput v-model="hasHeaders" label="Mark this if file has a header row" />
1538
+ <div class="overflow h-100p">
1539
+ <div v-if="file && !isLoading && sheetNames.length > 0" class="config-section flex gap-05 pb-2">
1540
+ <Btn v-tooltip="'Change File'" :value="file.name" thin round iconEnd="edit" @click="file = null" />
1541
+ <SelectInput v-if="sheetNames.length > 1" v-model="selectedSheet" :options="sheetNames" label="Select Sheet" />
1542
+ <CheckInput v-model="hasHeaders" label="Mark this if file has a header row" class="m-0" />
1548
1543
  </div>
1549
- </div>
1550
1544
 
1551
- <!-- Step 3: Field Mapping -->
1552
- <Card v-if="file && !isLoading && fileHeaders.length > 0" class="overflow h-100p">
1553
- <h3 class="mt-0">
1554
- Map Fields
1555
- </h3>
1556
- <p class="instructions">
1557
- Match each required field to a column from your file, set default values, or configure transformations
1558
- </p>
1559
-
1560
- <div class="mapping-table">
1561
- <table class="tbl">
1562
- <thead>
1563
- <tr>
1564
- <th>Schema Field</th>
1565
- <th>File Column</th>
1566
- <th>Default Value</th>
1567
- <th>Data Type</th>
1568
- <th>Actions</th>
1569
- </tr>
1570
- </thead>
1571
- <tbody>
1572
- <tr v-for="field in schemaFields" :key="field.id" :class="{ 'array-field-row': field.isArrayField || field.$el === 'array' }">
1573
- <td>
1574
- <div class="field-label">
1575
- {{ field.label }}
1576
- <span v-if="field.isArrayField">↳</span>
1577
- <Pill v-if="field.$el === 'array'" outline thin value="Array" />
1578
- <!-- <span v-if="field.$el === 'array'" class="array-parent-indicator">[Array]</span> -->
1579
- <span v-if="isFieldRequired(field)">*</span>
1580
- <span v-if="getFieldDescription(field).isConditional">†</span>
1581
- </div>
1582
- <div v-if="field.disabled" class="field-disabled-reason">
1583
- {{ field.disabledReason }}
1584
- </div>
1585
- <div v-if="getFieldDescription(field).isConditional">
1586
- {{ getFieldDescription(field).description }}
1587
- </div>
1588
- </td>
1589
- <td>
1590
- <SelectInput
1591
- v-model="fieldMapping[field.id]"
1592
- :options="fileHeaders"
1593
- :required="isFieldRequired(field)"
1594
- :disabled="field.disabled"
1595
- @change="handleSelectChange($event, field.id)"
1545
+ <!-- Step 3: Field Mapping -->
1546
+ <div v-if="file && !isLoading && fileHeaders.length > 0">
1547
+ <!-- <h3 class="mt-0">
1548
+ Map Fields
1549
+ </h3> -->
1550
+ <p class="label pb-1 border-bottom mb-1">
1551
+ Match each required field to a column from your file, set default values, or configure transformations
1552
+ </p>
1553
+
1554
+ <div class="mapping-table">
1555
+ <div class="grid grid-wrap-5 gap-1 bold pb-1">
1556
+ <p>Schema Field</p>
1557
+ <p>Column from File</p>
1558
+ <p>Default Value</p>
1559
+ <p>Data Type</p>
1560
+ <p>Actions</p>
1561
+ </div>
1562
+
1563
+ <div v-for="field in schemaFields" :key="field.id" class="grid grid-wrap-5 gap-1" :class="{ 'array-field-row': field.isArrayField || field.$el === 'array' }">
1564
+ <div>
1565
+ <div class="field-label">
1566
+ {{ field.label }}
1567
+ <span v-if="field.isArrayField">↳</span>
1568
+ <Pill v-if="field.$el === 'array'" class="txt10 ms-05" round thin value="Array" />
1569
+ <!-- <span v-if="field.$el === 'array'" class="array-parent-indicator">[Array]</span> -->
1570
+ <span v-if="isFieldRequired(field)">*</span>
1571
+ <span v-if="getFieldDescription(field).isConditional">†</span>
1572
+ </div>
1573
+ <div v-if="field.disabled" class="field-disabled-reason">
1574
+ {{ field.disabledReason }}
1575
+ </div>
1576
+ <div v-if="getFieldDescription(field).isConditional">
1577
+ {{ getFieldDescription(field).description }}
1578
+ </div>
1579
+ </div>
1580
+ <td class="fileColSelect">
1581
+ <SelectInput
1582
+ v-model="fieldMapping[field.id]"
1583
+ icon="table_chart"
1584
+ :options="fileHeaders"
1585
+ :required="isFieldRequired(field)"
1586
+ :disabled="field.disabled"
1587
+ @change="handleSelectChange($event, field.id)"
1588
+ />
1589
+ </td>
1590
+ <div>
1591
+ <!-- Default Value Input -->
1592
+ <div class="default-value-container hideLabel">
1593
+ {{ initDefaultValue(field.id) }}
1594
+ <component
1595
+ :is="renderField(getFieldWithDefaults(field))"
1596
1596
  />
1597
- </td>
1598
- <td>
1599
- <!-- Default Value Input -->
1600
- <div class="default-value-container">
1601
- {{ initDefaultValue(field.id) }}
1602
- <component
1603
- :is="renderField(getFieldWithDefaults(field))"
1604
- />
1605
- </div>
1606
- </td>
1607
- <td>
1608
- <SelectInput
1609
- v-model="fieldDataTypes[field.id]"
1610
- :options="dataTypeOptions"
1611
- :disabled="!fieldMapping[field.id] && !defaultValues[field.id]"
1597
+ </div>
1598
+ </div>
1599
+ <div>
1600
+ <SelectInput
1601
+ v-model="fieldDataTypes[field.id]"
1602
+ :options="dataTypeOptions"
1603
+ :disabled="!fieldMapping[field.id] && !defaultValues[field.id]"
1604
+ />
1605
+ </div>
1606
+ <div>
1607
+ <div class="flex gap-05">
1608
+ <Btn
1609
+ v-tooltip="'Transform'"
1610
+ thin
1611
+ :disabled="field.disabled"
1612
+ icon="transform"
1613
+ @click="openTransformDialog(field)"
1612
1614
  />
1613
- </td>
1614
- <td>
1615
- <div class="action-buttons-cell">
1616
- <Btn
1617
- v-tooltip="'Transform'"
1618
- thin
1619
- :disabled="field.disabled"
1620
- icon="transform"
1621
- @click="openTransformDialog(field)"
1622
- />
1623
- <Btn v-if="field.$el === 'array'" v-tooltip="'Related File'" thin icon="attach_file" :disabled="field.disabled" @click="openRelatedDialog(field)" />
1624
- </div>
1625
- </td>
1626
- </tr>
1627
- </tbody>
1628
- </table>
1629
- </div>
1615
+ <Btn v-if="field.$el === 'array'" v-tooltip="'Related File'" thin icon="attach_file" :disabled="field.disabled" @click="openRelatedDialog(field)" />
1616
+ </div>
1617
+ </div>
1618
+ </div>
1619
+ </div>
1630
1620
 
1631
- <div v-if="mappingComplete" class="action-buttons">
1632
- <Btn @click="showPreview">
1633
- Preview Data
1634
- </Btn>
1635
- </div>
1636
- <div v-else class="action-buttons">
1637
- <div class="mapping-incomplete-message">
1638
- Please map the required fields to continue
1621
+ <div v-if="mappingComplete" class="action-buttons">
1622
+ <Btn @click="showPreview">
1623
+ Preview Data
1624
+ </Btn>
1625
+ </div>
1626
+ <div v-else class="action-buttons">
1627
+ <div class="mapping-incomplete-message">
1628
+ Please map the required fields to continue
1629
+ </div>
1639
1630
  </div>
1640
1631
  </div>
1641
- </Card>
1632
+ </div>
1642
1633
 
1643
1634
  <!-- Transformation Modal -->
1644
1635
  <Modal v-model:visible="showTransformDialog" title="Configure Transformations" width="800">
1645
1636
  <div v-if="selectedTransformField">
1646
- <p>Create transformations for <strong>{{ selectedTransformField.label }}</strong></p>
1647
- <Btn icon="auto_awesome" thin value="Autodetect" @click="autoPopulateTransformations(selectedTransformField.id)" />
1637
+ <div class="flex space-between gap-1 mb-1">
1638
+ <p>Create transformations for <strong>{{ selectedTransformField.label }}</strong></p>
1639
+ <Btn icon="auto_awesome" thin value="Autodetect" @click="autoPopulateTransformations(selectedTransformField.id)" />
1640
+ </div>
1648
1641
  <table>
1649
1642
  <thead>
1650
1643
  <tr>
@@ -1700,16 +1693,20 @@ function getRelatedFieldWithDefaults(parentId: string, field: any) {
1700
1693
  </tr>
1701
1694
  </tbody>
1702
1695
  </table>
1703
- <Btn thin value="Close" @click="showTransformDialog = false" />
1696
+ <div class="flex pt-05">
1697
+ <Btn class="ms-auto" value="Close" @click="showTransformDialog = false" />
1698
+ </div>
1704
1699
  </div>
1705
1700
  </Modal>
1706
1701
 
1707
1702
  <!-- Related File Modal -->
1708
1703
  <Modal v-model:visible="showRelatedDialog" title="Configure Related Data" width="900">
1709
1704
  <div v-if="selectedRelationField">
1710
- <p>Upload a file with related data for {{ selectedRelationField.label }}</p>
1705
+ <p class="pb-05">
1706
+ Upload a file with related data for {{ selectedRelationField.label }}
1707
+ </p>
1711
1708
 
1712
- <div v-if="!relatedFiles[selectedRelationField.id]">
1709
+ <div v-if="!relatedFiles[selectedRelationField.id]" class="mb-05">
1713
1710
  <DragOver
1714
1711
  accept=".csv,.xls,.xlsx"
1715
1712
  @addFiles="(files) => { if (files[0]) processRelatedFile(selectedRelationField!.id, files[0]) }"
@@ -1795,7 +1792,9 @@ function getRelatedFieldWithDefaults(parentId: string, field: any) {
1795
1792
  </table>
1796
1793
  </div>
1797
1794
  </div>
1798
- <Btn value="Close" @click="showRelatedDialog = false" />
1795
+ <div class="flex pt-05">
1796
+ <Btn class="ms-auto" value="Close" @click="showRelatedDialog = false" />
1797
+ </div>
1799
1798
  </div>
1800
1799
  </Modal>
1801
1800
 
@@ -1916,3 +1915,23 @@ function getRelatedFieldWithDefaults(parentId: string, field: any) {
1916
1915
  </Modal>
1917
1916
  </Card>
1918
1917
  </template>
1918
+
1919
+ <style>
1920
+ .fileColSelect{
1921
+ --input-bg: var(--bgl-green-light);
1922
+ }
1923
+ .fileColSelect .bgl_icon-font{
1924
+ color: var(--bgl-green);
1925
+ line-height: 0;
1926
+ }
1927
+ .hideLabel label{
1928
+ font-size: 0 !important;
1929
+ }
1930
+ .mapping-table .selectinput-btn:disabled{
1931
+ background: var(--input-bg) !important;
1932
+ cursor: not-allowed !important;
1933
+ }
1934
+ .field-label{
1935
+ --pill-height: 20px;
1936
+ }
1937
+ </style>
@@ -1,23 +0,0 @@
1
- export interface TimeUnit {
2
- singular: string;
3
- plural: string;
4
- }
5
- export type TranslationValue = string | TimeUnit;
6
- export interface LanguageTranslations {
7
- [key: string]: TranslationValue;
8
- }
9
- export type AvailableTimeLanguages = 'en' | 'es' | 'fr' | 'he';
10
- export type DayFormatTypes = 'DD' | 'DDD' | 'DDDD';
11
- export type MonthFormatTypes = 'MM' | 'MMM' | 'MMMM';
12
- export type YearFormatTypes = 'YY' | 'YYYY';
13
- export type HourFormatTypes = 'HH';
14
- export type MinuteFormatTypes = 'mm';
15
- export type SecondFormatTypes = 'ss';
16
- export type MillisecondFormatTypes = 'sss';
17
- export type AmPmFormatTypes = 'AmPm';
18
- export type DateFormatSeparatorTypes = '/' | '-' | ' ' | ':' | '.';
19
- export type CommonDateFormats = `${DayFormatTypes}${DateFormatSeparatorTypes}${MonthFormatTypes}${DateFormatSeparatorTypes}${YearFormatTypes}` | 'DD.MM.YY' | 'DD.MM.YYYY' | 'DD/MM/YY' | 'DD/MM/YYYY' | 'MM.DD.YY' | 'MM.DD.YYYY' | 'MM/DD/YY' | 'MM/DD/YYYY' | 'YYYY-MM-DD' | 'YY-MM-DD' | 'DD MMM YYYY' | 'DD MMMM YYYY' | 'DDD, DD MMM' | 'DDDD, DD MMMM' | 'MMM DD' | 'MMMM DD';
20
- export type CommonTimeFormats = 'HH:mm' | 'HH:mm:ss' | 'HH:mm:ss:sss' | 'HH:MM' | 'HH:mm AmPm';
21
- export type CommonDateTimeFormats = `${CommonDateFormats} ${CommonTimeFormats}` | `${CommonTimeFormats}, ${CommonDateFormats}` | 'YYYY-MM-DD HH:MM';
22
- export type DateTimeAcceptedFormats = CommonDateFormats | CommonTimeFormats | CommonDateTimeFormats;
23
- //# sourceMappingURL=timeago.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"timeago.d.ts","sourceRoot":"","sources":["../../src/types/timeago.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,QAAQ;IACxB,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;CACd;AAED,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,QAAQ,CAAA;AAEhD,MAAM,WAAW,oBAAoB;IACpC,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,CAAA;CAC/B;AAED,MAAM,MAAM,sBAAsB,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAA;AAE9D,MAAM,MAAM,cAAc,GAAG,IAAI,GAAG,KAAK,GAAG,MAAM,CAAA;AAClD,MAAM,MAAM,gBAAgB,GAAG,IAAI,GAAG,KAAK,GAAG,MAAM,CAAA;AACpD,MAAM,MAAM,eAAe,GAAG,IAAI,GAAG,MAAM,CAAA;AAC3C,MAAM,MAAM,eAAe,GAAG,IAAI,CAAA;AAClC,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAAA;AACpC,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAAA;AACpC,MAAM,MAAM,sBAAsB,GAAG,KAAK,CAAA;AAC1C,MAAM,MAAM,eAAe,GAAG,MAAM,CAAA;AAEpC,MAAM,MAAM,wBAAwB,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAA;AAGlE,MAAM,MAAM,iBAAiB,GAC1B,GAAG,cAAc,GAAG,wBAAwB,GAAG,gBAAgB,GAAG,wBAAwB,GAAG,eAAe,EAAE,GAC9G,UAAU,GAAG,YAAY,GAAG,UAAU,GAAG,YAAY,GACrD,UAAU,GAAG,YAAY,GAAG,UAAU,GAAG,YAAY,GACrD,YAAY,GAAG,UAAU,GACzB,aAAa,GAAG,cAAc,GAC9B,aAAa,GAAG,eAAe,GAC/B,QAAQ,GAAG,SAAS,CAAA;AAEvB,MAAM,MAAM,iBAAiB,GAC1B,OAAO,GAAG,UAAU,GAAG,cAAc,GACrC,OAAO,GACP,YAAY,CAAA;AAGf,MAAM,MAAM,qBAAqB,GAC9B,GAAG,iBAAiB,IAAI,iBAAiB,EAAE,GAC3C,GAAG,iBAAiB,KAAK,iBAAiB,EAAE,GAC5C,kBAAkB,CAAA;AAGrB,MAAM,MAAM,uBAAuB,GAChC,iBAAiB,GACjB,iBAAiB,GACjB,qBAAqB,CAAA"}