@tekkare/auriga 0.1.4 → 0.1.6

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 (45) hide show
  1. package/dist/module.json +1 -1
  2. package/dist/runtime/components/argAdvancedSearchBar.vue +2 -1
  3. package/dist/runtime/components/argChart.vue +691 -0
  4. package/dist/runtime/components/argChart.vue.d.ts +119 -0
  5. package/dist/runtime/components/argCheckbox.vue +153 -0
  6. package/dist/runtime/components/argCheckbox.vue.d.ts +58 -0
  7. package/dist/runtime/components/argComplexSelect.vue +141 -40
  8. package/dist/runtime/components/argComplexSelect.vue.d.ts +55 -0
  9. package/dist/runtime/components/argDropdownSelect.vue +36 -29
  10. package/dist/runtime/components/argDropdownSelect.vue.d.ts +21 -11
  11. package/dist/runtime/components/argFilterCard.vue +130 -0
  12. package/dist/runtime/components/argFilterCard.vue.d.ts +19 -0
  13. package/dist/runtime/components/argFlag.vue +277 -0
  14. package/dist/runtime/components/argFlag.vue.d.ts +258 -0
  15. package/dist/runtime/components/argFooter.vue +41 -0
  16. package/dist/runtime/components/argFooter.vue.d.ts +2 -0
  17. package/dist/runtime/components/argHeader.vue +96 -0
  18. package/dist/runtime/components/argHeader.vue.d.ts +44 -0
  19. package/dist/runtime/components/argHeaderTabs.vue +7 -3
  20. package/dist/runtime/components/argInfoBar.vue +0 -0
  21. package/dist/runtime/components/argLineBreak.vue +21 -0
  22. package/dist/runtime/components/argLineBreak.vue.d.ts +2 -0
  23. package/dist/runtime/components/argMainLayout.vue +56 -0
  24. package/dist/runtime/components/argMainLayout.vue.d.ts +2 -0
  25. package/dist/runtime/components/argMenuItem.vue +73 -0
  26. package/dist/runtime/components/argMenuItem.vue.d.ts +36 -0
  27. package/dist/runtime/components/argMenuLink.vue +39 -0
  28. package/dist/runtime/components/argMenuLink.vue.d.ts +32 -0
  29. package/dist/runtime/components/argNavBar.vue +320 -0
  30. package/dist/runtime/components/argNavBar.vue.d.ts +35 -0
  31. package/dist/runtime/components/argNote.vue +87 -0
  32. package/dist/runtime/components/argNote.vue.d.ts +42 -0
  33. package/dist/runtime/components/argSidebar.vue +110 -0
  34. package/dist/runtime/components/argSidebar.vue.d.ts +33 -0
  35. package/dist/runtime/components/argSimpleLabel.vue +56 -13
  36. package/dist/runtime/components/argSimpleLabel.vue.d.ts +18 -0
  37. package/dist/runtime/components/argStyle.vue +10 -0
  38. package/dist/runtime/components/argSubMenu.vue +67 -0
  39. package/dist/runtime/components/argSubMenu.vue.d.ts +30 -0
  40. package/dist/runtime/components/argSwitch.vue +158 -0
  41. package/dist/runtime/components/argSwitch.vue.d.ts +45 -0
  42. package/dist/runtime/components/argTable.vue +201 -141
  43. package/dist/runtime/components/argTable.vue.d.ts +22 -3
  44. package/dist/runtime/components/argTooltip.vue +1 -1
  45. package/package.json +6 -3
@@ -0,0 +1,119 @@
1
+ declare const _default: import("vue").DefineComponent<{
2
+ options: {
3
+ type: ObjectConstructor;
4
+ required: false;
5
+ default(): {};
6
+ };
7
+ series: {
8
+ type: ArrayConstructor;
9
+ required: true;
10
+ };
11
+ type: {
12
+ type: StringConstructor;
13
+ required: true;
14
+ };
15
+ height: {
16
+ type: StringConstructor;
17
+ default: string;
18
+ };
19
+ width: {
20
+ type: StringConstructor;
21
+ default: string;
22
+ };
23
+ categories: {
24
+ type: ArrayConstructor;
25
+ required: true;
26
+ };
27
+ colors: {
28
+ type: ArrayConstructor;
29
+ required: false;
30
+ default: () => string[];
31
+ };
32
+ withPercentages: {
33
+ type: BooleanConstructor;
34
+ default: boolean;
35
+ };
36
+ compactValues: {
37
+ type: BooleanConstructor;
38
+ default: boolean;
39
+ };
40
+ french: {
41
+ type: BooleanConstructor;
42
+ default: boolean;
43
+ };
44
+ hideLegend: {
45
+ type: BooleanConstructor;
46
+ default: boolean;
47
+ };
48
+ tooltipOptions: {
49
+ type: ObjectConstructor;
50
+ default: undefined;
51
+ };
52
+ }, {
53
+ percentage: (partialValue: any, totalValue: any) => number;
54
+ chartKey: import("vue").Ref<number>;
55
+ chartType: import("vue").ComputedRef<string>;
56
+ chartOptions: import("vue").ComputedRef<Record<string, any>>;
57
+ }, any, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
58
+ options: {
59
+ type: ObjectConstructor;
60
+ required: false;
61
+ default(): {};
62
+ };
63
+ series: {
64
+ type: ArrayConstructor;
65
+ required: true;
66
+ };
67
+ type: {
68
+ type: StringConstructor;
69
+ required: true;
70
+ };
71
+ height: {
72
+ type: StringConstructor;
73
+ default: string;
74
+ };
75
+ width: {
76
+ type: StringConstructor;
77
+ default: string;
78
+ };
79
+ categories: {
80
+ type: ArrayConstructor;
81
+ required: true;
82
+ };
83
+ colors: {
84
+ type: ArrayConstructor;
85
+ required: false;
86
+ default: () => string[];
87
+ };
88
+ withPercentages: {
89
+ type: BooleanConstructor;
90
+ default: boolean;
91
+ };
92
+ compactValues: {
93
+ type: BooleanConstructor;
94
+ default: boolean;
95
+ };
96
+ french: {
97
+ type: BooleanConstructor;
98
+ default: boolean;
99
+ };
100
+ hideLegend: {
101
+ type: BooleanConstructor;
102
+ default: boolean;
103
+ };
104
+ tooltipOptions: {
105
+ type: ObjectConstructor;
106
+ default: undefined;
107
+ };
108
+ }>>, {
109
+ options: Record<string, any>;
110
+ width: string;
111
+ height: string;
112
+ colors: unknown[];
113
+ withPercentages: boolean;
114
+ compactValues: boolean;
115
+ french: boolean;
116
+ hideLegend: boolean;
117
+ tooltipOptions: Record<string, any>;
118
+ }, {}>;
119
+ export default _default;
@@ -0,0 +1,153 @@
1
+ <template>
2
+ <div
3
+ class="filter_box"
4
+ @focus="selectOption = true"
5
+ @focusout="selectOption = false"
6
+ tabindex="0"
7
+ :class="selectOption ? 'open' : ''"
8
+ >
9
+ <div @click="selectFilter()">
10
+ <arg-icon
11
+ :name="iconFilter"
12
+ :class="[
13
+ 'flex',
14
+ returnValue ? 'filter_icon_check' : 'filter_icon_select',
15
+ disable ? 'disable' : 'filter_icon_select',
16
+ ]"
17
+ size="24"
18
+ :color="iconColor"
19
+ />
20
+ </div>
21
+ <p>{{ filterTitle }}</p>
22
+ <arg-tooltip
23
+ v-if="infoIcon"
24
+ :tooltip-text="tooltipText"
25
+ class="filter_tooltip flex"
26
+ >
27
+ <arg-icon name="Info" color="var(--cool-grey)" size="16" />
28
+ </arg-tooltip>
29
+ </div>
30
+ </template>
31
+
32
+ <script>
33
+ import argIcon from "./argIcon.vue";
34
+ import {
35
+ ref,
36
+ computed,
37
+ watch,
38
+ defineComponent
39
+ } from "vue";
40
+ export default defineComponent({
41
+ name: "argCheckbox",
42
+ components: { argIcon },
43
+ props: {
44
+ filterTitle: {
45
+ type: String,
46
+ required: true
47
+ },
48
+ tooltipText: {
49
+ type: String,
50
+ default: ""
51
+ },
52
+ infoIcon: {
53
+ type: Boolean,
54
+ default: false
55
+ },
56
+ defaultSelect: {
57
+ type: Boolean,
58
+ default: false
59
+ },
60
+ disable: {
61
+ type: Boolean,
62
+ default: false
63
+ }
64
+ },
65
+ emits: ["handleClick", "update:Click"],
66
+ setup(props, { emit }) {
67
+ const returnValue = ref(false);
68
+ const selectOption = ref(false);
69
+ returnValue.value = props.defaultSelect;
70
+ watch(
71
+ () => props.defaultSelect,
72
+ (new_default_select) => {
73
+ returnValue.value = new_default_select;
74
+ }
75
+ );
76
+ const iconFilter = computed(() => {
77
+ if (props.disable) {
78
+ return "MinusSquareDisable";
79
+ } else {
80
+ if (returnValue.value === true) {
81
+ return "CheckSquareFill";
82
+ } else
83
+ return "Square";
84
+ }
85
+ });
86
+ const iconColor = computed(() => {
87
+ if (props.disable) {
88
+ return "var(--independence)";
89
+ } else {
90
+ if (returnValue.value === true) {
91
+ return "var(--accent)";
92
+ } else
93
+ return "var(--wild-blue-yonder)";
94
+ }
95
+ });
96
+ function selectFilter() {
97
+ if (!props.disable) {
98
+ returnValue.value = !returnValue.value;
99
+ emit("handleClick", returnValue);
100
+ emit("update:Click", returnValue);
101
+ }
102
+ }
103
+ return {
104
+ iconFilter,
105
+ iconColor,
106
+ selectFilter,
107
+ selectOption,
108
+ returnValue
109
+ };
110
+ }
111
+ });
112
+ </script>
113
+ <style scoped>
114
+ .filter_box {
115
+ background: var(--pure-white);
116
+ display: flex;
117
+ flex-direction: row;
118
+ align-items: center;
119
+ padding: 0px 12px;
120
+ gap: 8px;
121
+ border: 1px solid var(--dividers);
122
+ border-radius: 8px;
123
+ font-weight: 700;
124
+ font-size: 14px;
125
+ line-height: 16px;
126
+ height: 40px;
127
+ width: 228px;
128
+ }
129
+ .filter_tooltip {
130
+ margin-left: auto !important;
131
+ }
132
+ .filter_icon_select,
133
+ .filter_icon_check {
134
+ cursor: pointer;
135
+ }
136
+ .filter_icon_select:hover {
137
+ color: var(--primary) !important;
138
+ }
139
+ .filter_icon_check:hover {
140
+ color: var(--primary-hover2) !important;
141
+ }
142
+ .disable {
143
+ cursor: initial;
144
+ }
145
+
146
+ .disable:hover {
147
+ color: var(--independence) !important;
148
+ }
149
+
150
+ .flex {
151
+ display: flex;
152
+ }
153
+ </style>
@@ -0,0 +1,58 @@
1
+ declare const _default: import("vue").DefineComponent<{
2
+ filterTitle: {
3
+ type: StringConstructor;
4
+ required: true;
5
+ };
6
+ tooltipText: {
7
+ type: StringConstructor;
8
+ default: string;
9
+ };
10
+ infoIcon: {
11
+ type: BooleanConstructor;
12
+ default: boolean;
13
+ };
14
+ defaultSelect: {
15
+ type: BooleanConstructor;
16
+ default: boolean;
17
+ };
18
+ disable: {
19
+ type: BooleanConstructor;
20
+ default: boolean;
21
+ };
22
+ }, {
23
+ iconFilter: import("vue").ComputedRef<"MinusSquareDisable" | "CheckSquareFill" | "Square">;
24
+ iconColor: import("vue").ComputedRef<"var(--wild-blue-yonder)" | "var(--independence)" | "var(--accent)">;
25
+ selectFilter: () => void;
26
+ selectOption: import("vue").Ref<boolean>;
27
+ returnValue: import("vue").Ref<boolean>;
28
+ }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("handleClick" | "update:Click")[], "handleClick" | "update:Click", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
29
+ filterTitle: {
30
+ type: StringConstructor;
31
+ required: true;
32
+ };
33
+ tooltipText: {
34
+ type: StringConstructor;
35
+ default: string;
36
+ };
37
+ infoIcon: {
38
+ type: BooleanConstructor;
39
+ default: boolean;
40
+ };
41
+ defaultSelect: {
42
+ type: BooleanConstructor;
43
+ default: boolean;
44
+ };
45
+ disable: {
46
+ type: BooleanConstructor;
47
+ default: boolean;
48
+ };
49
+ }>> & {
50
+ onHandleClick?: ((...args: any[]) => any) | undefined;
51
+ "onUpdate:Click"?: ((...args: any[]) => any) | undefined;
52
+ }, {
53
+ disable: boolean;
54
+ tooltipText: string;
55
+ infoIcon: boolean;
56
+ defaultSelect: boolean;
57
+ }, {}>;
58
+ export default _default;
@@ -1,14 +1,28 @@
1
1
  <template>
2
2
  <div>
3
3
  <!-- Simple select -->
4
- <arg-simple-label
5
- :disabled="disabled"
6
- id="simple-select-complex"
7
- @click.stop="changeDisplay()"
8
- :class="isDisplay ? 'open' : ''"
9
- >
10
- <slot></slot>
11
- </arg-simple-label>
4
+ <div class="oip_select_display">
5
+ <p class="oip_filter_label">{{ complex_label }}</p>
6
+ <arg-simple-label
7
+ :disabled="disabled"
8
+ :show_amount="show_amount"
9
+ :amount_value="del_table.length"
10
+ id="simple-select-complex"
11
+ @click="changeDisplay()"
12
+ :class="isDisplay ? 'open' : ''"
13
+ >
14
+ <span
15
+ :class="[
16
+ show_amount === true ? 'oip_crop big' : 'oip_crop small',
17
+ del_table.map((elem) => elem).length > 0 ? '' : 'oip_empty_select',
18
+ ]"
19
+ >
20
+ {{
21
+ del_table.map((elem) => elem).length > 0 ? getAllSelect : empty_msg
22
+ }}
23
+ </span>
24
+ </arg-simple-label>
25
+ </div>
12
26
  <!-- Complex select -->
13
27
  <div
14
28
  :style="isDisplay === false ? 'display : none' : ''"
@@ -44,6 +58,7 @@
44
58
  </div>
45
59
  </div>
46
60
  </div>
61
+ <p v-if="reachMax" class="warning_text">{{ reach_max_msg }}</p>
47
62
  <div class="oip_select_complex_all_selection">
48
63
  <div class="oip_select_complex_add_selection">
49
64
  <div class="oip_select_complex_all_title">
@@ -55,6 +70,12 @@
55
70
  >
56
71
  Select all
57
72
  </div>
73
+ <div
74
+ v-if="max_amount !== null"
75
+ class="oip_select_complex_all_tittle_right"
76
+ >
77
+ Maximum selection: {{ max_amount }} items
78
+ </div>
58
79
  </div>
59
80
  <div class="oip_search_container">
60
81
  <arg-icon size="20" name="MagnifyingGlass"></arg-icon>
@@ -75,7 +96,7 @@
75
96
  ></arg-icon>
76
97
  </div>
77
98
  <!-- List -->
78
- <div class="oip_select_complex_selection_container">
99
+ <div v-if="!loading" class="oip_select_complex_selection_container">
79
100
  <div
80
101
  class="oip_select_complex_selection_loop add"
81
102
  v-for="(element, index) of filterNameAdd"
@@ -86,13 +107,29 @@
86
107
  >
87
108
  <arg-icon
88
109
  size="16"
89
- :name="hoverAdd === index ? 'PlusCircleFill' : 'PlusCircle'"
110
+ :class="
111
+ max_amount !== null && del_table.length >= max_amount
112
+ ? 'disable'
113
+ : ''
114
+ "
115
+ :name="
116
+ hoverAdd === index ||
117
+ (max_amount !== null &&
118
+ del_table.length >= max_amount &&
119
+ !del_table.includes(element) &&
120
+ !del_table.includes(index))
121
+ ? 'PlusCircleFill'
122
+ : 'PlusCircle'
123
+ "
90
124
  ></arg-icon>
91
125
  <div class="oip_select_complex_selection_loop_name">
92
126
  {{ element }}
93
127
  </div>
94
128
  </div>
95
129
  </div>
130
+ <div v-else class="oip_select_complex_selection_container">
131
+ <arg-data-loader />
132
+ </div>
96
133
  </div>
97
134
  <div class="oip_select_complex_del_selection">
98
135
  <div class="oip_select_complex_all_title">
@@ -154,7 +191,9 @@
154
191
  import argSimpleLabel from "./argSimpleLabel.vue";
155
192
  import argBtn from "./argBtn.vue";
156
193
  import argIcon from "./argIcon.vue";
194
+ import argDataLoader from "./argDataLoader.vue";
157
195
  import {
196
+ onBeforeMount,
158
197
  ref,
159
198
  computed,
160
199
  watch,
@@ -162,7 +201,7 @@ import {
162
201
  } from "vue";
163
202
  export default defineComponent({
164
203
  name: "argComplexSelect",
165
- components: { argSimpleLabel, argBtn, argIcon },
204
+ components: { argSimpleLabel, argBtn, argIcon, argDataLoader },
166
205
  props: {
167
206
  element_table: { type: Array, required: true },
168
207
  search_placeholder: { type: String, default: "Search" },
@@ -176,7 +215,16 @@ export default defineComponent({
176
215
  default: () => []
177
216
  },
178
217
  show_select_all: { type: Boolean, default: false },
179
- max_result: { type: Number, default: 500 }
218
+ max_result: { type: Number, default: 500 },
219
+ show_amount: { type: Boolean, default: true },
220
+ max_amount: { type: Number, default: null },
221
+ reach_max_msg: {
222
+ type: String,
223
+ default: "You've reached the maximum amount of items you can select"
224
+ },
225
+ loading: { type: Boolean, default: false },
226
+ empty_msg: { type: String, default: "No selection" },
227
+ complex_label: { type: String, required: true }
180
228
  },
181
229
  emits: ["changeElement", "changeAddInputValue", "update:Selection"],
182
230
  setup(props, { emit }) {
@@ -190,25 +238,28 @@ export default defineComponent({
190
238
  const uid = ref(0);
191
239
  const hoverAdd = ref(null);
192
240
  const hoverRemove = ref(null);
193
- del_table.value = Object.assign([], [...new Set(props.already_selected)]);
194
- add_table.value = Object.assign(
195
- [],
196
- [...new Set(props.element_table)].filter(
197
- (item) => !del_table.value.includes(item)
198
- )
199
- );
200
- save_table.value.add = Object.assign(
201
- [],
202
- [...new Set(props.element_table)].filter(
203
- (item) => !del_table.value.includes(item)
204
- )
205
- );
206
- uid.value = Math.floor(Math.random() * (100 - 1) + 1);
207
- if (props.already_selected.length > 0) {
208
- if (!props.need_apply) {
209
- apply_function();
241
+ const reachMax = ref(false);
242
+ onBeforeMount(() => {
243
+ del_table.value = Object.assign([], [...new Set(props.already_selected)]);
244
+ add_table.value = Object.assign(
245
+ [],
246
+ [...new Set(props.element_table)].filter(
247
+ (item) => !del_table.value.includes(item)
248
+ )
249
+ );
250
+ save_table.value.add = Object.assign(
251
+ [],
252
+ [...new Set(props.element_table)].filter(
253
+ (item) => !del_table.value.includes(item)
254
+ )
255
+ );
256
+ uid.value = Math.floor(Math.random() * (100 - 1) + 1);
257
+ if (props.already_selected.length > 0) {
258
+ if (!props.need_apply) {
259
+ apply_function();
260
+ }
210
261
  }
211
- }
262
+ });
212
263
  watch(
213
264
  () => props.element_table,
214
265
  (new_element_table) => {
@@ -254,6 +305,18 @@ export default defineComponent({
254
305
  }
255
306
  }
256
307
  );
308
+ const getAllSelect = computed(() => {
309
+ const fullSelect = del_table.value.map((elem) => elem);
310
+ let filterFill = ``;
311
+ for (let i = 0; i < fullSelect.length; i++) {
312
+ if (i === 0) {
313
+ filterFill = fullSelect[i];
314
+ } else {
315
+ filterFill = `${filterFill}, ${fullSelect[i]}`;
316
+ }
317
+ }
318
+ return filterFill;
319
+ });
257
320
  const filterNameAdd = computed(() => {
258
321
  if (searchNameAdd.value !== null) {
259
322
  return add_table.value.filter(
@@ -271,7 +334,9 @@ export default defineComponent({
271
334
  return del_table.value;
272
335
  });
273
336
  function changeInput() {
274
- emit("changeAddInputValue", searchNameAdd);
337
+ setTimeout(() => {
338
+ emit("changeAddInputValue", searchNameAdd);
339
+ }, 500);
275
340
  }
276
341
  function isInViewport(el) {
277
342
  const rect = el.getBoundingClientRect();
@@ -303,19 +368,25 @@ export default defineComponent({
303
368
  }
304
369
  function add_element(element) {
305
370
  smart_selection_selected.value = void 0;
306
- del_table.value.push(element);
307
- add_table.value.splice(add_table.value.indexOf(element), 1);
308
- if (!props.need_apply) {
309
- apply_function();
310
- }
371
+ if (props.max_amount === null || props.max_amount !== null && del_table.value.length < props.max_amount) {
372
+ del_table.value.push(element);
373
+ add_table.value.splice(add_table.value.indexOf(element), 1);
374
+ if (!props.need_apply) {
375
+ apply_function();
376
+ }
377
+ } else
378
+ reachMax.value = true;
311
379
  }
312
380
  function del_element(element) {
313
381
  smart_selection_selected.value = void 0;
314
382
  add_table.value.push(element);
315
- del_table.value.splice(del_table.value.indexOf(element, 1));
383
+ del_table.value.splice(del_table.value.indexOf(element), 1);
316
384
  if (!props.need_apply) {
317
385
  apply_function();
318
386
  }
387
+ if (reachMax.value === true && del_table.value.length < props.max_amount) {
388
+ reachMax.value = false;
389
+ }
319
390
  }
320
391
  function add_all_element() {
321
392
  smart_selection_selected.value = void 0;
@@ -424,7 +495,9 @@ export default defineComponent({
424
495
  apply_function,
425
496
  smart_selection_select_item,
426
497
  cancel_function,
427
- change_save_table
498
+ change_save_table,
499
+ getAllSelect,
500
+ reachMax
428
501
  };
429
502
  }
430
503
  });
@@ -443,6 +516,13 @@ export default defineComponent({
443
516
  border-right: 1px solid var(--dividers);
444
517
  }
445
518
 
519
+ .oip_select_complex_all_tittle_right {
520
+ font-weight: 500;
521
+ font-size: 12px;
522
+ line-height: 22px;
523
+ vertical-align: bottom;
524
+ }
525
+
446
526
  .oip_select_complex_all_tittle_right.add {
447
527
  font-weight: 500;
448
528
  font-size: 12px;
@@ -451,6 +531,9 @@ export default defineComponent({
451
531
  color: var(--primary);
452
532
  cursor: pointer;
453
533
  }
534
+ .oip_select_complex_selection_loop.add svg.disable {
535
+ color: var(--cool-grey) !important;
536
+ }
454
537
 
455
538
  .oip_select_complex_all_tittle_right.del {
456
539
  font-weight: 500;
@@ -544,14 +627,32 @@ export default defineComponent({
544
627
  .oip_tag.is_disable {
545
628
  cursor: pointer !important;
546
629
  }
630
+ </style>
547
631
 
632
+ <style scoped>
548
633
  .oip_select_complex_selection_loop > svg.add {
549
634
  width: 19px;
550
635
  height: 19px;
551
636
  margin: -2px;
552
637
  }
553
638
 
554
- h1 {
555
- margin: 0px !important;
639
+ .warning_text {
640
+ color: var(--system-alert);
641
+ margin-bottom: 12px;
642
+ font-weight: 500;
643
+ font-size: 14px;
644
+ line-height: 22px;
645
+ padding: 0px 16px;
646
+ }
647
+ .oip_crop {
648
+ overflow: hidden;
649
+ white-space: nowrap;
650
+ text-overflow: ellipsis;
651
+ }
652
+ .oip_crop.big {
653
+ width: 85% !important;
654
+ }
655
+ .oip_crop.small {
656
+ width: 98% !important;
556
657
  }
557
658
  </style>