@itfin/components 1.2.31 → 1.2.34
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/ITFComponents.common.js +0 -2
- package/dist/ITFComponents.common.js.map +1 -1
- package/dist/ITFComponents.umd.js +0 -2
- package/dist/ITFComponents.umd.js.map +1 -1
- package/package.json +16 -20
- package/src/assets/images/pdf-viewer/loading-icon.svg +26 -0
- package/src/assets/images/pdf-viewer/shadow.png +0 -0
- package/src/assets/images/pdf-viewer/treeitem-collapsed.png +0 -0
- package/src/assets/images/pdf-viewer/treeitem-collapsed@2x.png +0 -0
- package/src/assets/images/pdf-viewer/treeitem-expanded.png +0 -0
- package/src/assets/images/pdf-viewer/treeitem-expanded@2x.png +0 -0
- package/src/assets/scss/_css_variables.scss +17 -0
- package/src/assets/scss/_input-addon.scss +1 -1
- package/src/assets/scss/components/_air-select.scss +111 -0
- package/src/assets/scss/components/_avatar.scss +36 -0
- package/src/assets/scss/components/_button.scss +110 -0
- package/src/assets/scss/components/_card.scss +7 -0
- package/src/assets/scss/components/_checkbox.scss +83 -0
- package/src/{components/datepicker/datepicker.scss → assets/scss/components/_datepicker.scss} +314 -1
- package/src/assets/scss/components/_dropdown.scss +78 -0
- package/src/assets/scss/components/_form.scss +22 -0
- package/src/assets/scss/components/_icon.scss +5 -0
- package/src/assets/scss/components/_modal.scss +9 -0
- package/src/assets/scss/components/_pagination.scss +12 -0
- package/src/assets/scss/components/_pdf-viewer.scss +4 -0
- package/src/assets/scss/components/_popover.scss +37 -0
- package/src/assets/scss/components/_segmeneted-control.scss +138 -0
- package/src/assets/scss/components/_select.scss +76 -0
- package/src/assets/scss/components/_table.scss +278 -0
- package/src/{components/tabs/tabs.scss → assets/scss/components/_tabs.scss} +1 -1
- package/src/assets/scss/components/_text-field.scss +36 -0
- package/src/assets/scss/components/_toaster.scss +97 -0
- package/src/assets/scss/components/_tree-view.scss +17 -0
- package/src/{components/wizard/wizard.scss → assets/scss/components/_wizard.scss} +1 -1
- package/src/{components/pdf-viewer/styles → assets/scss/components/pdf-viewer}/_annotation_layer_builder.scss +0 -0
- package/src/{components/pdf-viewer/styles → assets/scss/components/pdf-viewer}/_colors.scss +1 -1
- package/src/{components/pdf-viewer/styles → assets/scss/components/pdf-viewer}/_pdf_viewer.scss +2 -2
- package/src/{components/pdf-viewer/styles → assets/scss/components/pdf-viewer}/_text_layer_builder.scss +0 -0
- package/src/{components/pdf-viewer/styles → assets/scss/components/pdf-viewer}/_variables.scss +0 -0
- package/src/{components/pdf-viewer/styles → assets/scss/components/pdf-viewer}/_viewer.scss +7 -6
- package/src/assets/scss/components/{_animations.scss → select/_animations.scss} +0 -0
- package/src/assets/scss/components/{_clear.scss → select/_clear.scss} +0 -0
- package/src/assets/scss/components/{_component.scss → select/_component.scss} +0 -0
- package/src/assets/scss/components/{_dropdown-menu.scss → select/_dropdown-menu.scss} +0 -0
- package/src/assets/scss/components/{_dropdown-option.scss → select/_dropdown-option.scss} +0 -0
- package/src/assets/scss/components/{_dropdown-toggle.scss → select/_dropdown-toggle.scss} +0 -0
- package/src/assets/scss/components/{_open-indicator.scss → select/_open-indicator.scss} +0 -0
- package/src/assets/scss/components/{_search-input.scss → select/_search-input.scss} +0 -0
- package/src/assets/scss/components/{_selected.scss → select/_selected.scss} +1 -1
- package/src/assets/scss/components/{_spinner.scss → select/_spinner.scss} +0 -0
- package/src/assets/scss/components/{_states.scss → select/_states.scss} +0 -0
- package/src/assets/scss/components/{_variables.scss → select/_variables.scss} +0 -0
- package/src/assets/scss/main.scss +24 -2
- package/src/components/alert/Alert.vue +0 -4
- package/src/components/app/App.vue +0 -66
- package/src/components/app/ToastContainer.vue +0 -35
- package/src/components/app/ToastMessage.vue +0 -7
- package/src/components/avatar/Avatar.vue +0 -38
- package/src/components/button/Button.vue +0 -142
- package/src/components/card/Card.vue +0 -10
- package/src/components/card/CardBody.vue +0 -3
- package/src/components/checkbox/Checkbox.vue +0 -54
- package/src/components/checkbox/CheckboxGroup.vue +0 -3
- package/src/components/checkbox/Radio.vue +0 -36
- package/src/components/checkbox/RadioGroup.vue +0 -3
- package/src/components/datepicker/DatePicker.vue +0 -39
- package/src/components/datepicker/DatePickerInline.vue +11 -43
- package/src/components/datepicker/DateRangePicker.vue +0 -58
- package/src/components/datepicker/DateRangePickerInline.vue +10 -39
- package/src/components/datepicker/MonthPicker.vue +0 -34
- package/src/components/datepicker/PeriodPicker.vue +0 -97
- package/src/components/datepicker/index.stories.js +6 -6
- package/src/components/dropdown/Dropdown.vue +0 -14
- package/src/components/form/Form.vue +0 -4
- package/src/components/form/Label.vue +0 -24
- package/src/components/icon/Icon.vue +0 -8
- package/src/components/modal/Modal.vue +0 -13
- package/src/components/pagination/Pagination.vue +0 -14
- package/src/components/pdf-viewer/PdfViewerSpa.vue +0 -3
- package/src/components/popover/ConfirmPopover.vue +0 -5
- package/src/components/popover/Popover.vue +0 -35
- package/src/components/segmented-control/SegmentedControl.vue +0 -140
- package/src/components/select/AirSelect.vue +0 -113
- package/src/components/select/Dropdown.vue +0 -70
- package/src/components/select/Select.vue +0 -78
- package/src/components/table/Table.vue +0 -279
- package/src/components/tabs/Tab.vue +0 -5
- package/src/components/tabs/TabContent.vue +0 -5
- package/src/components/tabs/Tabs.vue +0 -1
- package/src/components/text-field/TextField.vue +0 -15
- package/src/components/text-field/Textarea.vue +0 -30
- package/src/components/tooltip/Tooltip.vue +0 -1
- package/src/components/tree/TreeView.vue +0 -19
- package/src/components/wizard/Sidebar.vue +0 -4
- package/src/components/wizard/Step.vue +0 -5
- package/src/components/wizard/Wizard.vue +0 -1
- package/src/directives/visible.js +1 -1
- package/src/index.stories.js +1 -0
- package/src/components/pdf-viewer/styles/index.css +0 -0
- package/src/components/pdf-viewer/styles/index.scss +0 -4
|
@@ -28,41 +28,6 @@
|
|
|
28
28
|
</div>
|
|
29
29
|
</transition>
|
|
30
30
|
</template>
|
|
31
|
-
<style lang="scss">
|
|
32
|
-
.itf-toast-wrapper {
|
|
33
|
-
max-width: 100%;
|
|
34
|
-
}
|
|
35
|
-
.itf-toast-fade-enter-active {
|
|
36
|
-
animation: itf-toast-fade-in-down 0.3s;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
.itf-toast-fade-leave-active {
|
|
40
|
-
animation: itf-toast-fade-out 0.3s;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
@keyframes itf-toast-fade-in-down {
|
|
44
|
-
0% {
|
|
45
|
-
opacity: 0;
|
|
46
|
-
transform: translateY(-20px);
|
|
47
|
-
}
|
|
48
|
-
100% {
|
|
49
|
-
opacity: 1;
|
|
50
|
-
transform: translateY(0px);
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
@keyframes itf-toast-fade-out {
|
|
55
|
-
0% {
|
|
56
|
-
opacity: 1;
|
|
57
|
-
margin-top: 0;
|
|
58
|
-
}
|
|
59
|
-
100% {
|
|
60
|
-
opacity: 0;
|
|
61
|
-
margin-top: -45px;
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
</style>
|
|
66
31
|
<script>
|
|
67
32
|
import { Vue, Component, Watch } from 'vue-property-decorator';
|
|
68
33
|
import ToastMessage from './ToastMessage.vue';
|
|
@@ -28,13 +28,6 @@
|
|
|
28
28
|
</div>
|
|
29
29
|
</div>
|
|
30
30
|
</template>
|
|
31
|
-
<style lang="scss" scoped>
|
|
32
|
-
@import '../../assets/scss/variables';
|
|
33
|
-
|
|
34
|
-
.itf-toast-message {
|
|
35
|
-
z-index: $zindex-toaster;
|
|
36
|
-
}
|
|
37
|
-
</style>
|
|
38
31
|
<script>
|
|
39
32
|
import { Vue, Component, Prop, Emit } from 'vue-property-decorator';
|
|
40
33
|
import itfButton from '../button/Button';
|
|
@@ -28,44 +28,6 @@
|
|
|
28
28
|
</div>
|
|
29
29
|
</div>
|
|
30
30
|
</template>
|
|
31
|
-
<style lang="scss" scoped>
|
|
32
|
-
@import '../../assets/scss/variables';
|
|
33
|
-
|
|
34
|
-
.itf-avatar {
|
|
35
|
-
--positive: #{$green};
|
|
36
|
-
|
|
37
|
-
position: relative;
|
|
38
|
-
display: inline-block;
|
|
39
|
-
font-size: 0;
|
|
40
|
-
line-height: 0;
|
|
41
|
-
vertical-align: middle;
|
|
42
|
-
|
|
43
|
-
.shadow {
|
|
44
|
-
stroke-width: 2;
|
|
45
|
-
stroke: rgba(0, 0, 0, 0.1);
|
|
46
|
-
fill: none;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
.status-badge {
|
|
50
|
-
position: absolute;
|
|
51
|
-
pointer-events: none;
|
|
52
|
-
border-radius: 50%;
|
|
53
|
-
background-color: var(--positive);
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
.feature-icon {
|
|
57
|
-
width: 3rem;
|
|
58
|
-
height: 3rem;
|
|
59
|
-
border-radius: 0.5rem;
|
|
60
|
-
overflow: hidden;
|
|
61
|
-
|
|
62
|
-
img {
|
|
63
|
-
max-width: 100%;
|
|
64
|
-
max-height: 100%;
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
</style>
|
|
69
31
|
<script>
|
|
70
32
|
import { Vue, Component, Watch, Prop } from 'vue-property-decorator';
|
|
71
33
|
|
|
@@ -1,145 +1,3 @@
|
|
|
1
|
-
<style lang="scss">
|
|
2
|
-
@import '../../assets/scss/main';
|
|
3
|
-
|
|
4
|
-
:root {
|
|
5
|
-
--itf-button-basic-bg-color: rgba(9, 30, 66, 0.08);
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
[data-theme="dark"] {
|
|
9
|
-
--itf-button-basic-bg-color: rgba(246, 225, 189, 0.08);
|
|
10
|
-
|
|
11
|
-
.itf-button.btn {
|
|
12
|
-
&.btn-secondary {
|
|
13
|
-
&, &.disabled {
|
|
14
|
-
background-color: $dark-btn-secondary-color;
|
|
15
|
-
border-color: $dark-btn-secondary-color;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
&:active, &:focus {
|
|
19
|
-
background-color: lighten($dark-btn-secondary-color, 5%);
|
|
20
|
-
border-color: lighten($dark-btn-secondary-color, 5%);
|
|
21
|
-
}
|
|
22
|
-
&:hover {
|
|
23
|
-
background-color: lighten($dark-btn-secondary-color, 10%);
|
|
24
|
-
border-color: lighten($dark-btn-secondary-color, 10%);
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
&.btn-primary {
|
|
28
|
-
&, &.disabled {
|
|
29
|
-
background-color: $dark-btn-primary-color;
|
|
30
|
-
border-color: $dark-btn-primary-color;
|
|
31
|
-
color: $body-color;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
&:active, &:focus {
|
|
35
|
-
color: $body-color;
|
|
36
|
-
background-color: darken($dark-btn-primary-color, 5%);
|
|
37
|
-
border-color: darken($dark-btn-primary-color, 5%);
|
|
38
|
-
box-shadow: 0 0 0 0.125rem mix($dark-btn-primary-color, $dark-body-bg, 50%);
|
|
39
|
-
}
|
|
40
|
-
&:hover {
|
|
41
|
-
color: $body-color;
|
|
42
|
-
background-color: darken($dark-btn-primary-color, 10%);
|
|
43
|
-
border-color: darken($dark-btn-primary-color, 10%);
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
.itf-button.btn {
|
|
50
|
-
display: inline-flex;
|
|
51
|
-
align-items: center;
|
|
52
|
-
position: relative;
|
|
53
|
-
|
|
54
|
-
&.btn-primary {
|
|
55
|
-
color: #fff; // @todo remove when remove vuetify
|
|
56
|
-
}
|
|
57
|
-
&.itf-button__block {
|
|
58
|
-
display: block;
|
|
59
|
-
width: 100%;
|
|
60
|
-
}
|
|
61
|
-
& > div {
|
|
62
|
-
pointer-events: none;
|
|
63
|
-
}
|
|
64
|
-
.itf-spinner {
|
|
65
|
-
position: absolute;
|
|
66
|
-
top: 50%;
|
|
67
|
-
left: 50%;
|
|
68
|
-
margin: -0.75rem;
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
&.loading {
|
|
72
|
-
cursor: progress;
|
|
73
|
-
pointer-events: none;
|
|
74
|
-
color: transparent;
|
|
75
|
-
|
|
76
|
-
&.btn-sm .itf-spinner {
|
|
77
|
-
width: 1rem;
|
|
78
|
-
height: 1rem;
|
|
79
|
-
margin: -0.5rem;
|
|
80
|
-
}
|
|
81
|
-
&.btn-lg .itf-spinner {
|
|
82
|
-
width: 1.75rem;
|
|
83
|
-
height: 1.75rem;
|
|
84
|
-
margin: -0.875rem;
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
&.btn-basic {
|
|
88
|
-
&:hover, &.active {
|
|
89
|
-
background-color: var(--itf-button-basic-bg-color);
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
&.btn-icon {
|
|
93
|
-
padding: 0.25rem;
|
|
94
|
-
svg {
|
|
95
|
-
width: 1.5rem;
|
|
96
|
-
height: 1.5rem;
|
|
97
|
-
}
|
|
98
|
-
&.btn-sm {
|
|
99
|
-
svg {
|
|
100
|
-
width: 1.3125rem;
|
|
101
|
-
height: 1.3125rem;
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
&.btn-lg {
|
|
105
|
-
svg {
|
|
106
|
-
width: 1.875rem;
|
|
107
|
-
height: 1.875rem;
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
</style>
|
|
113
|
-
<!---template>
|
|
114
|
-
|
|
115
|
-
<nuxt-link
|
|
116
|
-
@click.native="$emit('click', $event)"
|
|
117
|
-
:disabled="disabled"
|
|
118
|
-
:target="target"
|
|
119
|
-
:tag="isLink ? 'a' : 'button'"
|
|
120
|
-
:event="isLink ? 'click' : []"
|
|
121
|
-
:class="{
|
|
122
|
-
[`btn-${color}`]: color,
|
|
123
|
-
'itf-button__block': block,
|
|
124
|
-
'labeled': labeled,
|
|
125
|
-
'disabled': disabled || loading,
|
|
126
|
-
'btn-primary': primary,
|
|
127
|
-
'btn-basic': !primary && !secondary && !color,
|
|
128
|
-
'btn-secondary': secondary,
|
|
129
|
-
'btn-sm': small,
|
|
130
|
-
'btn-lg': large,
|
|
131
|
-
// 'px-3': small && !icon,
|
|
132
|
-
// 'px-5': large && !icon,
|
|
133
|
-
// 'px-4': !icon && !large && !small,
|
|
134
|
-
'btn-icon': icon,
|
|
135
|
-
'loading': loading
|
|
136
|
-
}">
|
|
137
|
-
<div class="itf-spinner" :class="{'itf-spinner__white': primary}" v-if="loading"></div>
|
|
138
|
-
<div v-if="loading && loadingText">{{loadingText}}</div>
|
|
139
|
-
<slot v-else></slot>
|
|
140
|
-
</nuxt-link>
|
|
141
|
-
|
|
142
|
-
</template-->
|
|
143
1
|
<script>
|
|
144
2
|
import { Vue, Component, Prop } from 'vue-property-decorator';
|
|
145
3
|
|
|
@@ -5,16 +5,6 @@
|
|
|
5
5
|
</div>
|
|
6
6
|
|
|
7
7
|
</template>
|
|
8
|
-
<style lang="scss">
|
|
9
|
-
@import '../../assets/scss/variables';
|
|
10
|
-
//@import '~bootstrap/scss/card';
|
|
11
|
-
|
|
12
|
-
.card {
|
|
13
|
-
& > .itf-loading {
|
|
14
|
-
border-radius: $card-border-radius;
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
</style>
|
|
18
8
|
<script>
|
|
19
9
|
import { Vue, Component } from 'vue-property-decorator';
|
|
20
10
|
|
|
@@ -11,60 +11,6 @@
|
|
|
11
11
|
</div>
|
|
12
12
|
|
|
13
13
|
</template>
|
|
14
|
-
<style lang="scss">
|
|
15
|
-
@import '../../assets/scss/variables';
|
|
16
|
-
|
|
17
|
-
.itf-checkbox {
|
|
18
|
-
.form-check-input, .form-check-label {
|
|
19
|
-
cursor: pointer;
|
|
20
|
-
}
|
|
21
|
-
&__large.form-check {
|
|
22
|
-
padding-left: $form-check-padding-start * 2;
|
|
23
|
-
min-height: 2.5rem;
|
|
24
|
-
|
|
25
|
-
.form-check-label {
|
|
26
|
-
padding-top: 0.25rem;
|
|
27
|
-
}
|
|
28
|
-
.form-check-input {
|
|
29
|
-
margin-top: 0;
|
|
30
|
-
width: $form-check-input-width * 2;
|
|
31
|
-
height: $form-check-input-width * 2;
|
|
32
|
-
margin-left: -$form-check-padding-start * 2;
|
|
33
|
-
border-radius: 0.75rem;
|
|
34
|
-
}
|
|
35
|
-
&.form-switch {
|
|
36
|
-
padding-left: $form-switch-padding-start * 2;
|
|
37
|
-
|
|
38
|
-
.form-check-input {
|
|
39
|
-
width: $form-switch-width * 2;
|
|
40
|
-
margin-left: -$form-switch-padding-start * 2;
|
|
41
|
-
border-radius: 100px;
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
&__medium.form-check {
|
|
46
|
-
padding-left: $form-check-padding-start * 1.5;
|
|
47
|
-
min-height: 2rem;
|
|
48
|
-
|
|
49
|
-
.form-check-input {
|
|
50
|
-
margin-top: 0;
|
|
51
|
-
width: $form-check-input-width * 1.5;
|
|
52
|
-
height: $form-check-input-width * 1.5;
|
|
53
|
-
margin-left: -$form-check-padding-start * 1.5;
|
|
54
|
-
border-radius: 0.5rem;
|
|
55
|
-
}
|
|
56
|
-
&.form-switch {
|
|
57
|
-
padding-left: $form-switch-padding-start * 1.5;
|
|
58
|
-
|
|
59
|
-
.form-check-input {
|
|
60
|
-
width: $form-switch-width * 1.5;
|
|
61
|
-
margin-left: -$form-switch-padding-start * 1.5;
|
|
62
|
-
border-radius: 100px;
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
</style>
|
|
68
14
|
<script>
|
|
69
15
|
import { Vue, Component, Prop, Model, Inject } from 'vue-property-decorator';
|
|
70
16
|
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
|
|
3
2
|
<div class="itf-radio form-check" :class="{ 'itf-radio__large': large, 'itf-radio__medium': medium }">
|
|
4
3
|
<input class="form-check-input" :id="id" type="radio" :name="radioName" v-model="isChecked" :value="true" :disabled="disabled" />
|
|
5
4
|
<label :for="id" slot="label" class="form-check-label">
|
|
@@ -7,42 +6,7 @@
|
|
|
7
6
|
<slot name="icon"></slot>
|
|
8
7
|
</label>
|
|
9
8
|
</div>
|
|
10
|
-
|
|
11
9
|
</template>
|
|
12
|
-
<style lang="scss">
|
|
13
|
-
@import '../../assets/scss/variables';
|
|
14
|
-
|
|
15
|
-
.itf-radio {
|
|
16
|
-
.form-check-input, .form-check-label {
|
|
17
|
-
cursor: pointer;
|
|
18
|
-
}
|
|
19
|
-
&__large.form-check {
|
|
20
|
-
padding-left: $form-check-padding-start * 2;
|
|
21
|
-
min-height: 2.5rem;
|
|
22
|
-
|
|
23
|
-
.form-check-label {
|
|
24
|
-
padding-top: 0.25rem;
|
|
25
|
-
}
|
|
26
|
-
.form-check-input {
|
|
27
|
-
margin-top: 0;
|
|
28
|
-
width: $form-check-input-width * 2;
|
|
29
|
-
height: $form-check-input-width * 2;
|
|
30
|
-
margin-left: -$form-check-padding-start * 2;
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
&__medium.form-check {
|
|
34
|
-
padding-left: $form-check-padding-start * 1.5;
|
|
35
|
-
min-height: 2rem;
|
|
36
|
-
|
|
37
|
-
.form-check-input {
|
|
38
|
-
margin-top: 0;
|
|
39
|
-
width: $form-check-input-width * 1.5;
|
|
40
|
-
height: $form-check-input-width * 1.5;
|
|
41
|
-
margin-left: -$form-check-padding-start * 1.5;
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
</style>
|
|
46
10
|
<script>
|
|
47
11
|
import { Vue, Component, Prop, Model, Inject } from 'vue-property-decorator';
|
|
48
12
|
|
|
@@ -49,45 +49,6 @@
|
|
|
49
49
|
</div>
|
|
50
50
|
</div>
|
|
51
51
|
</template>
|
|
52
|
-
<style lang="scss">
|
|
53
|
-
@import '../../assets/scss/variables';
|
|
54
|
-
@import '../../assets/scss/directives/tooltip';
|
|
55
|
-
@import '../../assets/scss/input-addon';
|
|
56
|
-
|
|
57
|
-
[data-theme="dark"] {
|
|
58
|
-
.itf-datepicker {
|
|
59
|
-
&__dropdown {
|
|
60
|
-
background-color: $dark-body-bg;
|
|
61
|
-
border-color: $dark-border-color;
|
|
62
|
-
box-shadow: 0 0 0 2px $dark-input-focus-border;
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
.itf-datepicker {
|
|
68
|
-
&.with-addon .addon-end {
|
|
69
|
-
pointer-events: all;
|
|
70
|
-
padding-right: 0.25rem;
|
|
71
|
-
}
|
|
72
|
-
.form-control {
|
|
73
|
-
border-radius: $input-border-radius !important;
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
&__dropdown {
|
|
77
|
-
width: max-content;
|
|
78
|
-
border: $input-border-width solid $input-border-color;
|
|
79
|
-
border-radius: $input-border-radius;
|
|
80
|
-
background-color: $body-bg;
|
|
81
|
-
overflow: hidden;
|
|
82
|
-
@if $enable-shadows {
|
|
83
|
-
@include box-shadow($input-box-shadow, $input-btn-focus-box-shadow);
|
|
84
|
-
} @else {
|
|
85
|
-
// Avoid using mixin so we can pass custom focus shadow properly
|
|
86
|
-
box-shadow: $input-btn-focus-box-shadow;
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
</style>
|
|
91
52
|
<script>
|
|
92
53
|
import {
|
|
93
54
|
Vue, Component, Prop, Inject
|
|
@@ -20,51 +20,9 @@
|
|
|
20
20
|
</div>
|
|
21
21
|
</div>
|
|
22
22
|
</template>
|
|
23
|
-
<style lang="scss">
|
|
24
|
-
@import '../../assets/scss/variables';
|
|
25
|
-
//@import '~bootstrap/scss/nav';
|
|
26
|
-
//@import '~bootstrap/scss/buttons';
|
|
27
|
-
@import './datepicker.scss';
|
|
28
|
-
|
|
29
|
-
.itf-datepicker-inline {
|
|
30
|
-
display: inline-flex;
|
|
31
|
-
|
|
32
|
-
@include media-breakpoint-down(sm) {
|
|
33
|
-
display: inline-block !important;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
[data-theme="dark"] & {
|
|
37
|
-
.btn-outline-primary {
|
|
38
|
-
&.active {
|
|
39
|
-
color: $dark-body-bg;
|
|
40
|
-
background-color: $dark-primary;
|
|
41
|
-
border-color: $dark-primary;
|
|
42
|
-
}
|
|
43
|
-
&:hover {
|
|
44
|
-
color: $dark-body-bg;
|
|
45
|
-
background-color: darken($dark-primary, 10%);
|
|
46
|
-
border-color: darken($dark-primary, 10%);
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
.air-datepicker-title {
|
|
52
|
-
padding: 0 0.75rem;
|
|
53
|
-
height: 32px;
|
|
54
|
-
line-height: 32px;
|
|
55
|
-
color: var(--adp-nav-color-secondary);
|
|
56
|
-
}
|
|
57
|
-
.btn {
|
|
58
|
-
border-color: transparent;
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
</style>
|
|
62
23
|
<script>
|
|
63
24
|
import { Vue, Component, Prop } from 'vue-property-decorator';
|
|
64
25
|
import { DateTime } from 'luxon';
|
|
65
|
-
import AirDatepicker from 'air-datepicker';
|
|
66
|
-
import localeEn from 'air-datepicker/locale/en';
|
|
67
|
-
import localeUk from 'air-datepicker/locale/uk';
|
|
68
26
|
import ITFSettings from '../../ITFSettings';
|
|
69
27
|
|
|
70
28
|
export default @Component({
|
|
@@ -104,11 +62,21 @@ class itfDatePickerInline extends Vue {
|
|
|
104
62
|
this.createCalendar();
|
|
105
63
|
}
|
|
106
64
|
|
|
107
|
-
createCalendar() {
|
|
65
|
+
async createCalendar() {
|
|
108
66
|
if (this.calendar) {
|
|
109
67
|
this.destroyCalendar();
|
|
110
68
|
}
|
|
111
69
|
|
|
70
|
+
const [
|
|
71
|
+
{ default: AirDatepicker },
|
|
72
|
+
{ default: localeEn },
|
|
73
|
+
{ default: localeUk }
|
|
74
|
+
] = await Promise.all([
|
|
75
|
+
import('babel-loader!air-datepicker/air-datepicker.js'),
|
|
76
|
+
import('babel-loader!air-datepicker/locale/en'),
|
|
77
|
+
import('babel-loader!air-datepicker/locale/uk')
|
|
78
|
+
]);
|
|
79
|
+
|
|
112
80
|
this.calendar = new AirDatepicker(this.$refs.calendar, {
|
|
113
81
|
locale: this.$i18n.locale === 'en' ? localeEn : localeUk,
|
|
114
82
|
firstDay: 1,
|
|
@@ -68,64 +68,6 @@
|
|
|
68
68
|
</div>
|
|
69
69
|
</div>
|
|
70
70
|
</template>
|
|
71
|
-
<style lang="scss">
|
|
72
|
-
@import '../../assets/scss/variables';
|
|
73
|
-
@import '../../assets/scss/input-addon';
|
|
74
|
-
|
|
75
|
-
.itf-daterange-picker {
|
|
76
|
-
display: flex;
|
|
77
|
-
.input-group-text.hidden {
|
|
78
|
-
visibility: hidden;
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
&.with-addon .addon-end {
|
|
82
|
-
pointer-events: all;
|
|
83
|
-
padding-right: 0.25rem;
|
|
84
|
-
}
|
|
85
|
-
&__dropdown {
|
|
86
|
-
width: max-content;
|
|
87
|
-
overflow: hidden;
|
|
88
|
-
border: $input-border-width solid $input-border-color;
|
|
89
|
-
border-radius: $input-border-radius;
|
|
90
|
-
background-color: $body-bg;
|
|
91
|
-
@if $enable-shadows {
|
|
92
|
-
@include box-shadow($input-box-shadow, $input-btn-focus-box-shadow);
|
|
93
|
-
} @else {
|
|
94
|
-
// Avoid using mixin so we can pass custom focus shadow properly
|
|
95
|
-
box-shadow: $input-btn-focus-box-shadow;
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
.form-control.focused, .form-control.focused input.form-control {
|
|
100
|
-
background-color: $input-focus-border-color;
|
|
101
|
-
}
|
|
102
|
-
[data-theme="dark"] & {
|
|
103
|
-
&__dropdown {
|
|
104
|
-
box-shadow: 0 0 0 2px $dark-input-focus-border;
|
|
105
|
-
}
|
|
106
|
-
.form-control.focused, .form-control.focused input.form-control {
|
|
107
|
-
background-color: $dark-input-focus-border-color;
|
|
108
|
-
}
|
|
109
|
-
.input-group-text {
|
|
110
|
-
color: #fff;
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
.form-control input.form-control {
|
|
114
|
-
border: 0 none;
|
|
115
|
-
padding: 0;
|
|
116
|
-
max-width: 100px;
|
|
117
|
-
|
|
118
|
-
&:focus, &:active {
|
|
119
|
-
border: 0;
|
|
120
|
-
box-shadow: none;
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
.input-group-text {
|
|
124
|
-
border: 0 none;
|
|
125
|
-
background: transparent;
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
</style>
|
|
129
71
|
<script>
|
|
130
72
|
import { Vue, Component, Prop, Inject } from 'vue-property-decorator';
|
|
131
73
|
import { IMask, IMaskComponent } from 'vue-imask';
|
|
@@ -20,47 +20,9 @@
|
|
|
20
20
|
</div>
|
|
21
21
|
</div>
|
|
22
22
|
</template>
|
|
23
|
-
<style lang="scss">
|
|
24
|
-
@import '../../assets/scss/variables';
|
|
25
|
-
//@import '~bootstrap/scss/nav';
|
|
26
|
-
//@import '~bootstrap/scss/buttons';
|
|
27
|
-
@import './datepicker.scss';
|
|
28
|
-
|
|
29
|
-
.itf-datepicker-inline {
|
|
30
|
-
display: inline-flex;
|
|
31
|
-
|
|
32
|
-
[data-theme="dark"] & {
|
|
33
|
-
.btn-outline-primary {
|
|
34
|
-
&.active {
|
|
35
|
-
color: $dark-body-bg;
|
|
36
|
-
background-color: $dark-primary;
|
|
37
|
-
border-color: $dark-primary;
|
|
38
|
-
}
|
|
39
|
-
&:hover {
|
|
40
|
-
color: $dark-body-bg;
|
|
41
|
-
background-color: darken($dark-primary, 10%);
|
|
42
|
-
border-color: darken($dark-primary, 10%);
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
.air-datepicker-title {
|
|
48
|
-
padding: 0 0.75rem;
|
|
49
|
-
height: 32px;
|
|
50
|
-
line-height: 32px;
|
|
51
|
-
color: var(--adp-nav-color-secondary);
|
|
52
|
-
}
|
|
53
|
-
.btn {
|
|
54
|
-
border-color: transparent;
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
</style>
|
|
58
23
|
<script>
|
|
59
24
|
import { Vue, Component, Prop } from 'vue-property-decorator';
|
|
60
25
|
import { DateTime } from 'luxon';
|
|
61
|
-
import AirDatepicker from 'air-datepicker/air-datepicker.js';
|
|
62
|
-
import localeEn from 'air-datepicker/locale/en';
|
|
63
|
-
import localeUk from 'air-datepicker/locale/uk';
|
|
64
26
|
import ITFSettings from '../../ITFSettings';
|
|
65
27
|
|
|
66
28
|
export default @Component({
|
|
@@ -98,10 +60,19 @@ class itfDatePickerInline extends Vue {
|
|
|
98
60
|
this.createCalendar();
|
|
99
61
|
}
|
|
100
62
|
|
|
101
|
-
createCalendar() {
|
|
63
|
+
async createCalendar() {
|
|
102
64
|
if (this.calendar) {
|
|
103
65
|
this.destroyCalendar();
|
|
104
66
|
}
|
|
67
|
+
const [
|
|
68
|
+
{ default: AirDatepicker },
|
|
69
|
+
{ default: localeEn },
|
|
70
|
+
{ default: localeUk }
|
|
71
|
+
] = await Promise.all([
|
|
72
|
+
import('babel-loader!air-datepicker/air-datepicker.js'),
|
|
73
|
+
import('babel-loader!air-datepicker/locale/en'),
|
|
74
|
+
import('babel-loader!air-datepicker/locale/uk')
|
|
75
|
+
]);
|
|
105
76
|
|
|
106
77
|
this.calendar = new AirDatepicker(this.$refs.calendar, {
|
|
107
78
|
firstDay: 1,
|
|
@@ -31,40 +31,6 @@
|
|
|
31
31
|
</div>
|
|
32
32
|
</div>
|
|
33
33
|
</template>
|
|
34
|
-
<style lang="scss">
|
|
35
|
-
@import '../../assets/scss/variables';
|
|
36
|
-
@import '../../assets/scss/directives/tooltip';
|
|
37
|
-
@import '../../assets/scss/input-addon';
|
|
38
|
-
|
|
39
|
-
.itf-monthpicker {
|
|
40
|
-
.form-control {
|
|
41
|
-
background-color: $input-bg;
|
|
42
|
-
|
|
43
|
-
&:focus {
|
|
44
|
-
background-color: $body-bg;
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
&__dropdown {
|
|
48
|
-
width: max-content;
|
|
49
|
-
border: $input-border-width solid $input-border-color;
|
|
50
|
-
border-radius: $input-border-radius;
|
|
51
|
-
background-color: $body-bg;
|
|
52
|
-
overflow: hidden;
|
|
53
|
-
@if $enable-shadows {
|
|
54
|
-
@include box-shadow($input-box-shadow, $input-btn-focus-box-shadow);
|
|
55
|
-
} @else {
|
|
56
|
-
// Avoid using mixin so we can pass custom focus shadow properly
|
|
57
|
-
box-shadow: $input-btn-focus-box-shadow;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
[data-theme="dark"] & {
|
|
61
|
-
background-color: $dark-body-bg;
|
|
62
|
-
border-color: $dark-border-color;
|
|
63
|
-
box-shadow: 0 0 0 2px $dark-input-focus-border;
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
</style>
|
|
68
34
|
<script>
|
|
69
35
|
import { Vue, Component, Prop, Inject } from 'vue-property-decorator';
|
|
70
36
|
import { DateTime } from 'luxon';
|