@byu-oit/vue-decision-processing-components 8.35.7 → 8.35.9

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.
@@ -0,0 +1,41 @@
1
+ name: Deployment
2
+
3
+ on:
4
+ push:
5
+ branches: [ main ]
6
+
7
+ env:
8
+ node_version: "14"
9
+
10
+ jobs:
11
+ publish:
12
+ concurrency: publish
13
+ name: Publish npm package
14
+ runs-on: ubuntu-latest
15
+ steps:
16
+ - name: Check out
17
+ uses: actions/checkout@v3
18
+
19
+ - name: Set up Node.js
20
+ uses: actions/setup-node@v4
21
+ with:
22
+ node-version: ${{ env.node_version }}
23
+ registry-url: https://npm.pkg.github.com
24
+ scope: '@byu-oit'
25
+
26
+ - name: Publish
27
+ run: npm publish
28
+ env:
29
+ NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
30
+
31
+ - name: Set up Node.js
32
+ uses: actions/setup-node@v4
33
+ with:
34
+ node-version: ${{ env.node_version }}
35
+ registry-url: https://registry.npmjs.org
36
+ scope: '@byu-oit'
37
+
38
+ - name: Publish
39
+ run: npm publish --access public
40
+ env:
41
+ NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
package/CHANGELOG.md CHANGED
@@ -2,6 +2,12 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
4
4
 
5
+ ### [8.35.8](https://github.com/byu-oit/vue-decision-processing-components/compare/v.8.35.8...v8.35.7) (2023-12-13)
6
+
7
+ ### Bug Fixes
8
+
9
+ * adjusts active admit periods ([eb5e9db](https://github.com/byu-oit/vue-decision-processing-components/commit/eb5e9dbcfd3aa8c3ae18b2caa88e1aecc9c1cda9))
10
+
5
11
 
6
12
  ### [8.35.7](https://github.com/byu-oit/vue-decision-processing-components/compare/v.8.35.7...v8.35.6) (2023-12-13)
7
13
 
@@ -35,7 +35,6 @@
35
35
  <th>Mission Name</th>
36
36
  <th>Mission Type</th>
37
37
  <th>Mission Language</th>
38
- <th>Mission Email</th>
39
38
  <th>Mission Dates</th>
40
39
  <th>Months of Service</th>
41
40
  </tr>
@@ -45,7 +44,6 @@
45
44
  <td>{{mission.name}}</td>
46
45
  <td>{{mission.type}}</td>
47
46
  <td>{{mission.language}}</td>
48
- <td>{{mission.missionEmail}}</td>
49
47
  <td>{{mission.startMonth}} - {{mission.endMonth}}</td>
50
48
  <td>{{monthsOfService}}</td>
51
49
  </tr>
@@ -58,6 +56,8 @@
58
56
  </template>
59
57
  <script>
60
58
  import { mapState } from 'vuex'
59
+ import dayjs from 'dayjs';
60
+
61
61
 
62
62
  export default {
63
63
  name: 'DetailsMission',
@@ -75,7 +75,7 @@
75
75
  const yyyyMm = /^[0-9]{4}-[0-9]{1,2}$/
76
76
  const startMonth = this.mission.startMonth
77
77
  if (!startMonth || !yyyyMm.test(startMonth)) return ''
78
- const endMonth = this.mission.endMonth
78
+ const endMonth = (this.mission.endMonth === 'Ongoing') ? dayjs().format('YYYY-MM') : dayjs(this.mission.startMonth).format('YYYY-MM')
79
79
  if (!endMonth || !yyyyMm.test(endMonth)) return ''
80
80
  const [endY, endM] = endMonth.split('-')
81
81
  const [startY, startM] = startMonth.split('-')
@@ -50,11 +50,6 @@ export default {
50
50
  type: Array,
51
51
  default() {
52
52
  return [
53
- '20223',
54
- '20225',
55
- '20231',
56
- '20233',
57
- '20235',
58
53
  '20241',
59
54
  '20243',
60
55
  '20245'
package/Queues.vue CHANGED
@@ -14,255 +14,265 @@
14
14
  limitations under the License.
15
15
  -->
16
16
  <template>
17
- <section class="content-padding">
18
- <h1 class="queue-title">
19
- {{packetListName}}
20
- <button class="btn btn-outline-primary" @click="refresh">
21
- <span class="sr-only">Refresh</span>
22
- <font-awesome-icon :icon="syncIcon" />
23
- </button>
24
- </h1>
25
- <div>
17
+ <section class="content-padding">
18
+ <h1 class="queue-title">
19
+ {{packetListName}}
20
+ <button class="btn btn-outline-primary" @click="refresh">
21
+ <span class="sr-only">Refresh</span>
22
+ <font-awesome-icon :icon="syncIcon" />
23
+ </button>
24
+ <p>{{packetListName}}</p>
25
+ <button vue-if="packetListName == 'Auto Admit'" class="btn btn-outline-primary" @click="SubmitAuto">
26
+ <span class="">Submit Applications</span>
27
+ </button>
28
+ </h1>
26
29
  <div>
27
- <ul class="pagination">
28
- <li class="page-item" v-if="notFirstPage">
29
- <a class="page-link" href="`?offset=0`" aria-label="First" @click.prevent="loadPage('first')">First</a>
30
- </li>
31
- <li class="page-item" v-if="notFirstPage">
32
- <a class="page-link" :href="`?offset=${prevPageOffset}`" aria-label="Previous" @click.prevent="loadPage('prev')">
33
- <span aria-hidden="true"><font-awesome-icon :icon="prevIcon" /></span>
34
- <span class="sr-only">Previous</span>
35
- </a>
36
- </li>
37
- <li v-for="page in pageCount" :class="{ 'page-item': true, active: isPageActive(page) }">
38
- <a v-if="page !== '...'"
39
- class="page-link"
40
- :href="`?offset=${(page - 1) * query.limit}`"
41
- @click.prevent="loadPage(page)">{{page}}</a>
42
- <span v-else class="page-link disabled">{{page}}</span>
43
- </li>
44
- <li class="page-item" v-if="notLastPage">
45
- <a class="page-link" :href="`?offset=${nextPageOffset}`" aria-label="Next" @click.prevent="loadPage('next')">
46
- <span aria-hidden="true"><font-awesome-icon :icon="nextIcon" /></span>
47
- <span class="sr-only">Next</span>
48
- </a>
49
- </li>
50
- <li class="page-item" v-if="notLastPage">
51
- <a class="page-link" :href="`?offset=${lastPageOffset}`" aria-label="Last" @click.prevent="loadPage('last')">Last</a>
52
- </li>
53
- </ul>
54
- <span class="match-caption">
30
+ <div>
31
+ <ul class="pagination">
32
+ <li class="page-item" v-if="notFirstPage">
33
+ <a class="page-link" href="`?offset=0`" aria-label="First" @click.prevent="loadPage('first')">First</a>
34
+ </li>
35
+ <li class="page-item" v-if="notFirstPage">
36
+ <a class="page-link" :href="`?offset=${prevPageOffset}`" aria-label="Previous" @click.prevent="loadPage('prev')">
37
+ <span aria-hidden="true"><font-awesome-icon :icon="prevIcon" /></span>
38
+ <span class="sr-only">Previous</span>
39
+ </a>
40
+ </li>
41
+ <li v-for="page in pageCount" :class="{ 'page-item': true, active: isPageActive(page) }">
42
+ <a v-if="page !== '...'"
43
+ class="page-link"
44
+ :href="`?offset=${(page - 1) * query.limit}`"
45
+ @click.prevent="loadPage(page)">{{page}}</a>
46
+ <span v-else class="page-link disabled">{{page}}</span>
47
+ </li>
48
+ <li class="page-item" v-if="notLastPage">
49
+ <a class="page-link" :href="`?offset=${nextPageOffset}`" aria-label="Next" @click.prevent="loadPage('next')">
50
+ <span aria-hidden="true"><font-awesome-icon :icon="nextIcon" /></span>
51
+ <span class="sr-only">Next</span>
52
+ </a>
53
+ </li>
54
+ <li class="page-item" v-if="notLastPage">
55
+ <a class="page-link" :href="`?offset=${lastPageOffset}`" aria-label="Last" @click.prevent="loadPage('last')">Last</a>
56
+ </li>
57
+ </ul>
58
+ <span class="match-caption">
55
59
  {{currentPage}} of {{total}}
56
60
  </span>
57
- <table class="table table-hover table-bordered">
58
- <caption>
59
- {{currentPage}} of {{total}}
60
- </caption>
61
- <thead class="thead-light">
61
+ <table class="table table-hover table-bordered">
62
+ <caption>
63
+ {{currentPage}} of {{total}}
64
+ </caption>
65
+ <thead class="thead-light">
62
66
  <tr>
63
67
  <slot name="columns">
64
- <sortable-header @click="sortByName" v-bind="$props" field="applicant_name">Name</sortable-header>
65
- <th>ID</th>
66
- <th>Type</th>
67
- <th>Major</th>
68
- <sortable-header @click="sortByAdmitPeriod" v-bind="$props" field="admit_period">Admit Period</sortable-header>
69
- <sortable-header @click="sortByNextAction" v-bind="$props" field="next_action">Next Action</sortable-header>
68
+ <sortable-header @click="sortByName" v-bind="$props" field="applicant_name">Name</sortable-header>
69
+ <th>ID</th>
70
+ <th>Type</th>
71
+ <th>Major</th>
72
+ <sortable-header @click="sortByAdmitPeriod" v-bind="$props" field="admit_period">Admit Period</sortable-header>
73
+ <sortable-header @click="sortByNextAction" v-bind="$props" field="next_action">Next Action</sortable-header>
70
74
  </slot>
71
75
  </tr>
72
- </thead>
73
- <tbody>
76
+ </thead>
77
+ <tbody>
74
78
  <tr v-for="(row, i) of data" :key="row.application_uuid">
75
79
  <slot v-bind:row="row" v-bind:i="i">
76
- <td><router-link :to="`/detail/${row.application_uuid}`">{{row.applicant_name}}</router-link></td>
77
- <td>{{row.applicant_id}}</td>
78
- <td>{{row.applicant_type}}</td>
79
- <td>{{row.applicant_major}}</td>
80
- <td>{{row.admit_period}}</td>
81
- <td>{{row.next_action_date | dateTime}}</td>
80
+ <td><router-link :to="`/detail/${row.application_uuid}`">{{row.applicant_name}}</router-link></td>
81
+ <td>{{row.applicant_id}}</td>
82
+ <td>{{row.applicant_type}}</td>
83
+ <td>{{row.applicant_major}}</td>
84
+ <td>{{row.admit_period}}</td>
85
+ <td>{{row.next_action_date | dateTime}}</td>
82
86
  </slot>
83
87
  </tr>
84
- </tbody>
85
- </table>
86
- <ul class="pagination">
87
- <li class="page-item" v-if="notFirstPage">
88
- <a class="page-link" href="`?offset=0`" aria-label="First" @click.prevent="loadPage('first')">First</a>
89
- </li>
90
- <li class="page-item" v-if="notFirstPage">
91
- <a class="page-link" :href="`?offset=${prevPageOffset}`" aria-label="Previous" @click.prevent="loadPage('prev')">
92
- <span aria-hidden="true"><font-awesome-icon :icon="prevIcon" /></span>
93
- <span class="sr-only">Previous</span>
94
- </a>
95
- </li>
96
- <li v-for="page in pageCount" :class="{ 'page-item': true, active: isPageActive(page) }">
97
- <a v-if="page !== '...'"
98
- class="page-link"
99
- :href="`?offset=${(page - 1) * query.limit}`"
100
- @click.prevent="loadPage(page)">{{page}}</a>
101
- <span v-else class="page-link disabled">{{page}}</span>
102
- </li>
103
- <li class="page-item" v-if="notLastPage">
104
- <a class="page-link" :href="`?offset=${nextPageOffset}`" aria-label="Next" @click.prevent="loadPage('next')">
105
- <span aria-hidden="true"><font-awesome-icon :icon="nextIcon" /></span>
106
- <span class="sr-only">Next</span>
107
- </a>
108
- </li>
109
- <li class="page-item" v-if="notLastPage">
110
- <a class="page-link" :href="`?offset=${lastPageOffset}`" aria-label="Last" @click.prevent="loadPage('last')">Last</a>
111
- </li>
112
- </ul>
88
+ </tbody>
89
+ </table>
90
+ <ul class="pagination">
91
+ <li class="page-item" v-if="notFirstPage">
92
+ <a class="page-link" href="`?offset=0`" aria-label="First" @click.prevent="loadPage('first')">First</a>
93
+ </li>
94
+ <li class="page-item" v-if="notFirstPage">
95
+ <a class="page-link" :href="`?offset=${prevPageOffset}`" aria-label="Previous" @click.prevent="loadPage('prev')">
96
+ <span aria-hidden="true"><font-awesome-icon :icon="prevIcon" /></span>
97
+ <span class="sr-only">Previous</span>
98
+ </a>
99
+ </li>
100
+ <li v-for="page in pageCount" :class="{ 'page-item': true, active: isPageActive(page) }">
101
+ <a v-if="page !== '...'"
102
+ class="page-link"
103
+ :href="`?offset=${(page - 1) * query.limit}`"
104
+ @click.prevent="loadPage(page)">{{page}}</a>
105
+ <span v-else class="page-link disabled">{{page}}</span>
106
+ </li>
107
+ <li class="page-item" v-if="notLastPage">
108
+ <a class="page-link" :href="`?offset=${nextPageOffset}`" aria-label="Next" @click.prevent="loadPage('next')">
109
+ <span aria-hidden="true"><font-awesome-icon :icon="nextIcon" /></span>
110
+ <span class="sr-only">Next</span>
111
+ </a>
112
+ </li>
113
+ <li class="page-item" v-if="notLastPage">
114
+ <a class="page-link" :href="`?offset=${lastPageOffset}`" aria-label="Last" @click.prevent="loadPage('last')">Last</a>
115
+ </li>
116
+ </ul>
117
+ </div>
113
118
  </div>
114
- </div>
115
- </section>
119
+ </section>
116
120
  </template>
117
121
  <script>
118
- import SortableHeader from './SortableHeader'
119
- import range from 'lodash.range'
120
- import { mapState, mapGetters, mapActions } from 'vuex'
121
- import { FontAwesomeIcon } from '@fortawesome/vue-fontawesome'
122
- import { faAngleDoubleLeft, faAngleDoubleRight, faSync } from '@fortawesome/free-solid-svg-icons'
123
- import { dateTimeFormat } from './dateTimeFormat'
124
-
125
- const pageSlice = (curr, total) => {
126
- console.log(`in page Slice\ncurr=${curr}, total=${total}`)
127
- if (curr < 4) {
128
- return range(1, 6).concat(['...'])
129
- } else if (curr > total - 3) {
130
- return ['...'].concat(range(total - 4, total + 1))
131
- }
132
- return ['...'].concat(range(curr - 2, curr + 3)).concat(['...'])
122
+ import SortableHeader from './SortableHeader'
123
+ import range from 'lodash.range'
124
+ import { mapState, mapGetters, mapActions } from 'vuex'
125
+ import { FontAwesomeIcon } from '@fortawesome/vue-fontawesome'
126
+ import { faAngleDoubleLeft, faAngleDoubleRight, faSync } from '@fortawesome/free-solid-svg-icons'
127
+ import { dateTimeFormat } from './dateTimeFormat'
128
+ import api from '../../../src/api/index'
129
+ const pageSlice = (curr, total) => {
130
+ console.log(`in page Slice\ncurr=${curr}, total=${total}`)
131
+ if (curr < 4) {
132
+ return range(1, 6).concat(['...'])
133
+ } else if (curr > total - 3) {
134
+ return ['...'].concat(range(total - 4, total + 1))
133
135
  }
136
+ return ['...'].concat(range(curr - 2, curr + 3)).concat(['...'])
137
+ }
134
138
 
135
- export default {
136
- name: 'Queues',
137
- props: ['listType', 'offset', 'sort', 'order'],
138
- computed: {
139
- currentPage () {
140
- const {offset, limit} = this.query
141
- const firstIndex = offset
142
- const lastIndex = Math.min(firstIndex + limit, this.total)
143
- return Math.min(firstIndex + 1, lastIndex) + ' - ' + (lastIndex)
144
- },
145
- notFirstPage () {
146
- const {offset} = this.query
147
- return offset > 0
148
- },
149
- notLastPage () {
150
- const {offset, limit} = this.query
151
- const total = this.total
152
- return offset + limit < total
153
- },
154
- pageCount () {
155
- const {offset, limit} = this.query
156
- const total = this.total
157
- const pages = Math.ceil(total / limit)
158
- const curr = Math.ceil(offset / limit)
159
- return pages < 2
160
- ? []
161
- : pages > 6
162
- ? pageSlice(curr + 1, pages)
163
- : pages
164
- },
165
- searchOptions () {
166
- return {
167
- listType: this.listType,
168
- offset: this.offset,
169
- sort: this.sort,
170
- order: this.order
171
- }
172
- },
173
- ...mapState({
174
- data: state => state.packetList.data,
175
- total: state => state.packetList.total
176
- }),
177
- ...mapGetters(['packetListName', 'packetListQuery']),
178
- query () { return this.packetListQuery },
179
- syncIcon () { return faSync },
180
- nextIcon () { return faAngleDoubleRight },
181
- prevIcon () { return faAngleDoubleLeft }
139
+ export default {
140
+ name: 'Queues',
141
+ props: ['listType', 'offset', 'sort', 'order'],
142
+ computed: {
143
+ currentPage () {
144
+ const {offset, limit} = this.query
145
+ const firstIndex = offset
146
+ const lastIndex = Math.min(firstIndex + limit, this.total)
147
+ return Math.min(firstIndex + 1, lastIndex) + ' - ' + (lastIndex)
148
+ },
149
+ notFirstPage () {
150
+ const {offset} = this.query
151
+ return offset > 0
182
152
  },
183
- components: {
184
- FontAwesomeIcon,
185
- SortableHeader
153
+ notLastPage () {
154
+ const {offset, limit} = this.query
155
+ const total = this.total
156
+ return offset + limit < total
186
157
  },
187
- filters: {
188
- dateTime: dateTimeFormat
158
+ pageCount () {
159
+ const {offset, limit} = this.query
160
+ const total = this.total
161
+ const pages = Math.ceil(total / limit)
162
+ const curr = Math.ceil(offset / limit)
163
+ return pages < 2
164
+ ? []
165
+ : pages > 6
166
+ ? pageSlice(curr + 1, pages)
167
+ : pages
189
168
  },
190
- watch: {
191
- '$route'() {
192
- this.fetchAndUpdate(this.listType, this.searchOptions)
193
- },
194
- '$props'() {
195
- this.fetchAndUpdate(this.listType, this.searchOptions)
169
+ searchOptions () {
170
+ return {
171
+ listType: this.listType,
172
+ offset: this.offset,
173
+ sort: this.sort,
174
+ order: this.order
196
175
  }
197
176
  },
198
- mounted: function () {
199
- this.fetchAndUpdate(this.listType, this.searchOptions, false)
177
+ ...mapState({
178
+ data: state => state.packetList.data,
179
+ total: state => state.packetList.total
180
+ }),
181
+ ...mapGetters(['packetListName', 'packetListQuery']),
182
+ query () { return this.packetListQuery },
183
+ syncIcon () { return faSync },
184
+ nextIcon () { return faAngleDoubleRight },
185
+ prevIcon () { return faAngleDoubleLeft }
186
+ },
187
+ components: {
188
+ FontAwesomeIcon,
189
+ SortableHeader
190
+ },
191
+ filters: {
192
+ dateTime: dateTimeFormat
193
+ },
194
+ watch: {
195
+ '$route'() {
196
+ this.fetchAndUpdate(this.listType, this.searchOptions)
197
+ },
198
+ '$props'() {
199
+ this.fetchAndUpdate(this.listType, this.searchOptions)
200
+ }
201
+ },
202
+ mounted: function () {
203
+ this.fetchAndUpdate(this.listType, this.searchOptions, false)
204
+ },
205
+ methods: {
206
+ ...mapActions(['fetchPacketList','CallAutoAdmitDecision']),
207
+ nextPageOffset () {
208
+ const {offset, limit} = this.query
209
+ return offset + limit
210
+ },
211
+ prevPageOffset () {
212
+ const {offset, limit} = this.query
213
+ return offset - limit
214
+ },
215
+ lastPageOffset () {
216
+ const {limit} = this.query
217
+ const total = this.total
218
+ return Math.floor(total / limit) * limit
219
+ },
220
+ sortBy (query, field) {
221
+ const { sort, order } = query
222
+ const newSort = field
223
+ const newOrder = (sort === field && order === 'asc') ? 'desc' : 'asc'
224
+ const routerQuery = { sort: newSort, order: newOrder, offset: 0 }
225
+ this.$router.push({path: `/list/${this.listType}`, query: routerQuery})
226
+ window.scrollTo(0, 0)
227
+ },
228
+ sortByName () { this.sortBy(this.query, 'applicant_name') },
229
+ sortByAdmitPeriod () { this.sortBy(this.query, 'admit_period') },
230
+ sortByNextAction () { this.sortBy(this.query, 'next_action_date') },
231
+ fetchAndUpdate (listType, query, force = true) {
232
+ this.fetchPacketList({...query, listType, force})
233
+ },
234
+ refresh () {
235
+ this.fetchAndUpdate(this.listType, this.query)
200
236
  },
201
- methods: {
202
- ...mapActions(['fetchPacketList']),
203
- nextPageOffset () {
204
- const {offset, limit} = this.query
205
- return offset + limit
206
- },
207
- prevPageOffset () {
208
- const {offset, limit} = this.query
209
- return offset - limit
210
- },
211
- lastPageOffset () {
212
- const {limit} = this.query
213
- const total = this.total
214
- return Math.floor(total / limit) * limit
215
- },
216
- sortBy (query, field) {
217
- const { sort, order } = query
218
- const newSort = field
219
- const newOrder = (sort === field && order === 'asc') ? 'desc' : 'asc'
220
- const routerQuery = { sort: newSort, order: newOrder, offset: 0 }
221
- this.$router.push({path: `/list/${this.listType}`, query: routerQuery})
222
- window.scrollTo(0, 0)
223
- },
224
- sortByName () { this.sortBy(this.query, 'applicant_name') },
225
- sortByAdmitPeriod () { this.sortBy(this.query, 'admit_period') },
226
- sortByNextAction () { this.sortBy(this.query, 'next_action_date') },
227
- fetchAndUpdate (listType, query, force = true) {
228
- this.fetchPacketList({...query, listType, force})
229
- },
230
- refresh () {
231
- this.fetchAndUpdate(this.listType, this.query)
232
- },
233
- loadPage (page) {
234
- const {limit, offset, sort, order} = this.query
235
- const total = this.total
236
- const newOffset = page === 'first' ? 0
237
- : page === 'last' ? this.lastPageOffset()
238
- : page === 'next' ? this.nextPageOffset()
239
- : page === 'prev' ? this.prevPageOffset()
240
- : (page - 1) * limit
241
- this.$router.push({ path: `/list/${this.listType}`, query: {offset: newOffset, sort, order} })
242
- window.scrollTo(0, 0)
243
- },
244
- isPageActive (page) {
245
- if (page === '...') return false
246
237
 
247
- const { limit, offset } = this.query
248
- const pageOffset = (page - 1) * limit
249
- return pageOffset === offset
250
- }
238
+ SubmitAuto () {
239
+ console.log('submitAuto')
240
+ this.CallAutoAdmitDecision()
241
+ },
242
+
243
+ loadPage (page) {
244
+ const {limit, offset, sort, order} = this.query
245
+ const total = this.total
246
+ const newOffset = page === 'first' ? 0
247
+ : page === 'last' ? this.lastPageOffset()
248
+ : page === 'next' ? this.nextPageOffset()
249
+ : page === 'prev' ? this.prevPageOffset()
250
+ : (page - 1) * limit
251
+ this.$router.push({ path: `/list/${this.listType}`, query: {offset: newOffset, sort, order} })
252
+ window.scrollTo(0, 0)
253
+ },
254
+ isPageActive (page) {
255
+ if (page === '...') return false
256
+
257
+ const { limit, offset } = this.query
258
+ const pageOffset = (page - 1) * limit
259
+ return pageOffset === offset
251
260
  }
252
261
  }
262
+ }
253
263
  </script>
254
264
  <style scoped>
255
- .queue-title {
256
- display: grid;
257
- grid-template-columns: auto auto 1fr;
258
- grid-gap: 0.5rem;
259
- align-items: center;
260
- }
261
- .sortable {
262
- cursor: pointer;
263
- }
264
- .match-caption {
265
- padding-left: .75rem;
266
- color: var(--gray, #6c757d);
267
- }
265
+ .queue-title {
266
+ display: grid;
267
+ grid-template-columns: auto auto 1fr;
268
+ grid-gap: 0.5rem;
269
+ align-items: center;
270
+ }
271
+ .sortable {
272
+ cursor: pointer;
273
+ }
274
+ .match-caption {
275
+ padding-left: .75rem;
276
+ color: var(--gray, #6c757d);
277
+ }
268
278
  </style>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@byu-oit/vue-decision-processing-components",
3
- "version": "8.35.7",
3
+ "version": "8.35.9",
4
4
  "description": "Vue components shared between decision processing systems for the CES schools.",
5
5
  "dependencies": {
6
6
  "@fortawesome/fontawesome-free": "^5.15.4",
@@ -9,11 +9,13 @@
9
9
  "@fortawesome/free-solid-svg-icons": "^5.15.4",
10
10
  "@fortawesome/vue-fontawesome": "^2.0.10",
11
11
  "csv-string": "^4.0.1",
12
+ "dayjs": "^1.11.11",
12
13
  "is-iso-date": "0.0.1",
13
14
  "lodash.get": "^4.4.2",
14
15
  "lodash.range": "^3.2.0",
15
16
  "s-age": "^1.1.2",
16
- "vue2-datepicker": "^3.10.4"
17
+ "vue2-datepicker": "^3.10.4",
18
+ "vuex": "^4.1.0"
17
19
  },
18
20
  "devDependencies": {
19
21
  "standard-version": "^9.3.2"