@itfin/components 1.2.134 → 1.2.136

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@itfin/components",
3
- "version": "1.2.134",
3
+ "version": "1.2.136",
4
4
  "author": "Vitalii Savchuk <esvit666@gmail.com>",
5
5
  "scripts": {
6
6
  "serve": "vue-cli-service serve",
@@ -96,6 +96,7 @@
96
96
  }
97
97
 
98
98
  input {
99
+ z-index: 2;
99
100
  position: absolute;
100
101
  top: 0;
101
102
  left: 0;
@@ -26,7 +26,10 @@
26
26
  @drop="reorderColumns"
27
27
  v-draggable="{ handle: true, payload: { index, column }, mirror: { yAxis:false } }"
28
28
  class="flex-grow-1 d-flex align-items-center itf-board-column__header justify-content-between">
29
- <div><slot name="header" :column="column">{{ column[columnNameKey] }}</slot></div>
29
+ <div>
30
+ <slot name="columnMarkup" :column="column" />
31
+ <slot name="header" :column="column">{{ column[columnNameKey] }}</slot>
32
+ </div>
30
33
  <div class="text-muted me-1"><slot name="header-addon" :column="column" :items="groupedItems[column.Id]">{{ (groupedItems[column.Id] || []).length }}</slot></div>
31
34
  </div>
32
35
  </itf-edit-button>
@@ -2,7 +2,9 @@
2
2
  <div class="itf-board-column-wrapper">
3
3
  <div class="itf-board-cards-wrapper" ref="container" :class="{'empty-column': !items.length}">
4
4
  <template v-if="!items.length">
5
- <slot name="empty"></slot>
5
+ <div class="empty-column-bg">
6
+ <slot name="empty"></slot>
7
+ </div>
6
8
  </template>
7
9
  <template v-else>
8
10
  <div v-for="(item, index) of items" :key="index" :data-card="index" :class="item.hidden ? 'd-none' : ''">
@@ -51,6 +51,11 @@ storiesOf('Common', module)
51
51
  <itf-board class="flex-grow-1" :columns.sync="columns" :column-orders.sync="columnOrders" :items.sync="tasks" column-sorting @update:item="onItemUpdate">
52
52
  <template #column="{ column, items }">
53
53
  <itf-board-column :column="column" :items="items" card-sorting @update:columns="columns = $event">
54
+ <template #empty>
55
+ <div>
56
+ Your ad can be here
57
+ </div>
58
+ </template>
54
59
  <template #item="{ item }">
55
60
  <itf-board-card :text="item.Name">
56
61
  <template #header>
@@ -1,6 +1,7 @@
1
1
  :root {
2
2
  --itf-board-column-hover-color: rgba(0, 0, 0, .05);
3
3
  --itf-board-column-width: 300px;
4
+ --itf-board-column-bg-color: #f4f5f7;
4
5
  --itf-board-placeholder-color: #47BEFF;
5
6
  --itf-board-placeholder-border-color: #0567eb;
6
7
  --itf-board-placeholder-bg-color: #ebeffe;
@@ -11,11 +12,12 @@
11
12
 
12
13
  [data-theme="dark"] {
13
14
  --itf-board-column-hover-color: rgba(255, 255, 255, .05);
15
+ --itf-board-column-bg-color: #2c2f33;
14
16
  --itf-board-placeholder-color: #FFCC00;
15
17
  --itf-board-placeholder-border-color: #FFCC00;
16
18
  --itf-board-placeholder-bg-color: #383b41;
17
- --itf-board-card-bg-color: #313337;
18
- --itf-board-card-border-color: #424448;
19
+ --itf-board-card-bg-color: #232529;
20
+ --itf-board-card-border-color: #393939;
19
21
  }
20
22
 
21
23
  .itf-board {
@@ -97,6 +99,22 @@
97
99
  left: -50px;
98
100
  }
99
101
  }
102
+
103
+ .empty-column-bg {
104
+ position: absolute;
105
+ width: 60%;
106
+ left: 50%;
107
+ top: 60px;
108
+ transform: translate(-50%);
109
+ opacity: .75;
110
+ z-index: 0;
111
+ user-select: none;
112
+ text-align: center;
113
+ }
114
+ }
115
+
116
+ .z-index-2 {
117
+ z-index: 2;
100
118
  }
101
119
 
102
120
  .itf-board-titles,
@@ -251,10 +269,11 @@
251
269
  .itf-board-cards-wrapper {
252
270
  display: flex;
253
271
  flex-direction: column;
254
- overflow: auto;
272
+ overflow: hidden;
255
273
  flex-grow: 1;
256
- padding-right: .25rem;
257
- padding-top: .5rem;
274
+ padding: .5rem .25rem 0;
275
+ background-color: var(--itf-board-column-bg-color);
276
+ border-radius: var(--bs-border-radius);
258
277
 
259
278
  > div:first-child > .itf-board-card-space > .itf-board-header-dropzone {
260
279
  top: -30px;
@@ -53,6 +53,7 @@ class itfModal extends Vue {
53
53
  @Prop({ type: Boolean, default: false }) closable
54
54
  @Prop({ type: Boolean, default: false }) closeIcon
55
55
  @Prop({ type: Boolean, default: false }) persistent
56
+ @Prop({ type: Boolean, default: false }) slider
56
57
  @Prop({ type: Boolean, default: false }) escClose
57
58
  @Prop({ type: Function, default: null }) onEscClose;
58
59
  @Prop({ type: Boolean, default: true }) appendToBody;
@@ -5,11 +5,13 @@
5
5
 
6
6
  <div class="option" v-for="(item, n) in itemsWithNames" :key="n">
7
7
  <label>
8
+ <slot name="itemMarkup" :item="item" />
8
9
  <input
9
10
  ref="input"
10
11
  type="radio"
11
12
  :name="name"
12
13
  :value="n"
14
+ v-tooltip="tooltipCallback(item)"
13
15
  :checked="isChecked(item)"
14
16
  @change="onItemChanged(item)" />
15
17
  <span>
@@ -32,9 +34,13 @@
32
34
  <script>
33
35
  import { Vue, Component, Model, Prop, Watch } from 'vue-property-decorator';
34
36
  import itfSelect from '../select/Select';
37
+ import tooltip from '../../directives/tooltip';
35
38
 
36
39
  export default @Component({
37
40
  name: 'itfSegmentedControl',
41
+ directives: {
42
+ tooltip
43
+ },
38
44
  components: {
39
45
  itfSelect
40
46
  }
@@ -46,6 +52,7 @@ class itfSegmentedControl extends Vue {
46
52
  @Prop({ type: String, default: 'Name' }) itemText;
47
53
  @Prop({ type: Boolean, default: false }) returnObject;
48
54
  @Prop({ type: Boolean, default: false }) disabled;
55
+ @Prop({ type: Function, default: () => null }) tooltipCallback;
49
56
 
50
57
  timers = [];
51
58