@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.
Files changed (100) hide show
  1. package/dist/ITFComponents.common.js +0 -2
  2. package/dist/ITFComponents.common.js.map +1 -1
  3. package/dist/ITFComponents.umd.js +0 -2
  4. package/dist/ITFComponents.umd.js.map +1 -1
  5. package/package.json +16 -20
  6. package/src/assets/images/pdf-viewer/loading-icon.svg +26 -0
  7. package/src/assets/images/pdf-viewer/shadow.png +0 -0
  8. package/src/assets/images/pdf-viewer/treeitem-collapsed.png +0 -0
  9. package/src/assets/images/pdf-viewer/treeitem-collapsed@2x.png +0 -0
  10. package/src/assets/images/pdf-viewer/treeitem-expanded.png +0 -0
  11. package/src/assets/images/pdf-viewer/treeitem-expanded@2x.png +0 -0
  12. package/src/assets/scss/_css_variables.scss +17 -0
  13. package/src/assets/scss/_input-addon.scss +1 -1
  14. package/src/assets/scss/components/_air-select.scss +111 -0
  15. package/src/assets/scss/components/_avatar.scss +36 -0
  16. package/src/assets/scss/components/_button.scss +110 -0
  17. package/src/assets/scss/components/_card.scss +7 -0
  18. package/src/assets/scss/components/_checkbox.scss +83 -0
  19. package/src/{components/datepicker/datepicker.scss → assets/scss/components/_datepicker.scss} +314 -1
  20. package/src/assets/scss/components/_dropdown.scss +78 -0
  21. package/src/assets/scss/components/_form.scss +22 -0
  22. package/src/assets/scss/components/_icon.scss +5 -0
  23. package/src/assets/scss/components/_modal.scss +9 -0
  24. package/src/assets/scss/components/_pagination.scss +12 -0
  25. package/src/assets/scss/components/_pdf-viewer.scss +4 -0
  26. package/src/assets/scss/components/_popover.scss +37 -0
  27. package/src/assets/scss/components/_segmeneted-control.scss +138 -0
  28. package/src/assets/scss/components/_select.scss +76 -0
  29. package/src/assets/scss/components/_table.scss +278 -0
  30. package/src/{components/tabs/tabs.scss → assets/scss/components/_tabs.scss} +1 -1
  31. package/src/assets/scss/components/_text-field.scss +36 -0
  32. package/src/assets/scss/components/_toaster.scss +97 -0
  33. package/src/assets/scss/components/_tree-view.scss +17 -0
  34. package/src/{components/wizard/wizard.scss → assets/scss/components/_wizard.scss} +1 -1
  35. package/src/{components/pdf-viewer/styles → assets/scss/components/pdf-viewer}/_annotation_layer_builder.scss +0 -0
  36. package/src/{components/pdf-viewer/styles → assets/scss/components/pdf-viewer}/_colors.scss +1 -1
  37. package/src/{components/pdf-viewer/styles → assets/scss/components/pdf-viewer}/_pdf_viewer.scss +2 -2
  38. package/src/{components/pdf-viewer/styles → assets/scss/components/pdf-viewer}/_text_layer_builder.scss +0 -0
  39. package/src/{components/pdf-viewer/styles → assets/scss/components/pdf-viewer}/_variables.scss +0 -0
  40. package/src/{components/pdf-viewer/styles → assets/scss/components/pdf-viewer}/_viewer.scss +7 -6
  41. package/src/assets/scss/components/{_animations.scss → select/_animations.scss} +0 -0
  42. package/src/assets/scss/components/{_clear.scss → select/_clear.scss} +0 -0
  43. package/src/assets/scss/components/{_component.scss → select/_component.scss} +0 -0
  44. package/src/assets/scss/components/{_dropdown-menu.scss → select/_dropdown-menu.scss} +0 -0
  45. package/src/assets/scss/components/{_dropdown-option.scss → select/_dropdown-option.scss} +0 -0
  46. package/src/assets/scss/components/{_dropdown-toggle.scss → select/_dropdown-toggle.scss} +0 -0
  47. package/src/assets/scss/components/{_open-indicator.scss → select/_open-indicator.scss} +0 -0
  48. package/src/assets/scss/components/{_search-input.scss → select/_search-input.scss} +0 -0
  49. package/src/assets/scss/components/{_selected.scss → select/_selected.scss} +1 -1
  50. package/src/assets/scss/components/{_spinner.scss → select/_spinner.scss} +0 -0
  51. package/src/assets/scss/components/{_states.scss → select/_states.scss} +0 -0
  52. package/src/assets/scss/components/{_variables.scss → select/_variables.scss} +0 -0
  53. package/src/assets/scss/main.scss +24 -2
  54. package/src/components/alert/Alert.vue +0 -4
  55. package/src/components/app/App.vue +0 -66
  56. package/src/components/app/ToastContainer.vue +0 -35
  57. package/src/components/app/ToastMessage.vue +0 -7
  58. package/src/components/avatar/Avatar.vue +0 -38
  59. package/src/components/button/Button.vue +0 -142
  60. package/src/components/card/Card.vue +0 -10
  61. package/src/components/card/CardBody.vue +0 -3
  62. package/src/components/checkbox/Checkbox.vue +0 -54
  63. package/src/components/checkbox/CheckboxGroup.vue +0 -3
  64. package/src/components/checkbox/Radio.vue +0 -36
  65. package/src/components/checkbox/RadioGroup.vue +0 -3
  66. package/src/components/datepicker/DatePicker.vue +0 -39
  67. package/src/components/datepicker/DatePickerInline.vue +11 -43
  68. package/src/components/datepicker/DateRangePicker.vue +0 -58
  69. package/src/components/datepicker/DateRangePickerInline.vue +10 -39
  70. package/src/components/datepicker/MonthPicker.vue +0 -34
  71. package/src/components/datepicker/PeriodPicker.vue +0 -97
  72. package/src/components/datepicker/index.stories.js +6 -6
  73. package/src/components/dropdown/Dropdown.vue +0 -14
  74. package/src/components/form/Form.vue +0 -4
  75. package/src/components/form/Label.vue +0 -24
  76. package/src/components/icon/Icon.vue +0 -8
  77. package/src/components/modal/Modal.vue +0 -13
  78. package/src/components/pagination/Pagination.vue +0 -14
  79. package/src/components/pdf-viewer/PdfViewerSpa.vue +0 -3
  80. package/src/components/popover/ConfirmPopover.vue +0 -5
  81. package/src/components/popover/Popover.vue +0 -35
  82. package/src/components/segmented-control/SegmentedControl.vue +0 -140
  83. package/src/components/select/AirSelect.vue +0 -113
  84. package/src/components/select/Dropdown.vue +0 -70
  85. package/src/components/select/Select.vue +0 -78
  86. package/src/components/table/Table.vue +0 -279
  87. package/src/components/tabs/Tab.vue +0 -5
  88. package/src/components/tabs/TabContent.vue +0 -5
  89. package/src/components/tabs/Tabs.vue +0 -1
  90. package/src/components/text-field/TextField.vue +0 -15
  91. package/src/components/text-field/Textarea.vue +0 -30
  92. package/src/components/tooltip/Tooltip.vue +0 -1
  93. package/src/components/tree/TreeView.vue +0 -19
  94. package/src/components/wizard/Sidebar.vue +0 -4
  95. package/src/components/wizard/Step.vue +0 -5
  96. package/src/components/wizard/Wizard.vue +0 -1
  97. package/src/directives/visible.js +1 -1
  98. package/src/index.stories.js +1 -0
  99. package/src/components/pdf-viewer/styles/index.css +0 -0
  100. 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
 
@@ -5,9 +5,6 @@
5
5
  </div>
6
6
 
7
7
  </template>
8
- <style lang="scss">
9
- @import '../../assets/scss/variables';
10
- </style>
11
8
  <script>
12
9
  import { Vue, Component } from 'vue-property-decorator';
13
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
 
@@ -5,9 +5,6 @@
5
5
  </div>
6
6
 
7
7
  </template>
8
- <style>
9
-
10
- </style>
11
8
  <script>
12
9
  import { Vue, Component, Prop, Model } from 'vue-property-decorator';
13
10
 
@@ -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
 
@@ -5,9 +5,6 @@
5
5
  </fieldset>
6
6
 
7
7
  </template>
8
- <style>
9
-
10
- </style>
11
8
  <script>
12
9
  import { Vue, Component, Prop, Model } from 'vue-property-decorator';
13
10
 
@@ -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';