@papaemmelab/isabl-web 0.3.12 → 0.3.16
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/README.md +1 -2
- package/dist/isabl-web.common.js +323 -331
- package/dist/isabl-web.umd.js +323 -331
- package/dist/isabl-web.umd.min.js +3 -3
- package/package.json +1 -1
package/dist/isabl-web.common.js
CHANGED
|
@@ -89268,7 +89268,7 @@ exports = module.exports = __webpack_require__("2350")(false);
|
|
|
89268
89268
|
|
|
89269
89269
|
|
|
89270
89270
|
// module
|
|
89271
|
-
exports.push([module.i, ".isabl-base-card .v-data-table th.column.sortable.active.desc button.sort-icon{-webkit-transform:rotate(-180deg);transform:rotate(-180deg)}.isabl-base-card .v-data-table th.column.sortable.active button.sort-icon{color:var(--v-primary-base)}.isabl-base-card .v-data-table th.column.sortable button{font-size:13px!important;margin-left:4px}.isabl-base-card .v-data-table .v-data-table__wrapper{max-height:300px;overflow-y:auto}.isabl-base-card .v-data-table .table-cell{height:25px!important;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:300px;padding-left:5px!important}.isabl-base-card .v-data-table .table-cell .v-chip.v-size--small{height:20px}.isabl-base-card .v-data-table tr.table-headers.table-cell{position:sticky;top:0;background:#fff;cursor:pointer;height:32px}.isabl-base-card .v-data-table tr.table-headers.table-cell th{background:rgba(0,0,0,.04)}.isabl-base-card .v-data-table.theme--dark,.isabl-base-card .v-data-table.theme--dark tr.column-filters th,.isabl-base-card .v-data-table.theme--dark tr.table-headers.table-cell th{background:var(--v-surface-base)}.isabl-base-card .v-data-table th.column.sortable{padding:0 5px}.isabl-base-card .v-data-table tr.column-filters th{height:32px}.isabl-base-card .v-data-table .v-data-table__empty-wrapper>td{padding:0}.table-filter-input{min-width:150px}.table-filter-input .v-input__icon--append .v-icon{font-size:14px}.table-filter-input input{font-size:14px;font-weight:400;padding-left:6px!important}.table-filter-input label{font-size:13px;padding-left:6px}.column-filters{position:sticky;top:25px;background:#fff}.column-filters .v-select{margin:0}.column-filters .v-select .v-input__slot,.column-filters .v-select input{height:25px}.column-filters .v-select .v-icon{font-size:16px}.column-filters .v-select__selections{display:contents;max-width:120px;font-size:14px;font-weight:400}.column-filters .v-select__selections span,.column-filters .v-text-field .v-input__append-inner{padding:0}.v-list .v-list-item{min-height:25px}.v-list .v-list-item .v-list-item__title{font-size:14px;font-weight:400}.v-list .v-list-item .v-list-item__content{padding:0 10px}div.v-list--dense .v-list-item{min-height:25px;padding:0}div.v-list--dense .v-list-item .v-list-item__action{margin:0;padding:0 4px}div.v-list--dense .v-list-item .v-list-item__title{font-size:14px;font-weight:400}div.v-list--dense .v-list-item .v-list-item__content{padding:0}.v-select-list{overflow:hidden}.v-menu__content:not(.v-autocomplete__content) .v-list__tile{height:23px}table.v-table tbody tr{border:0!important}table.v-table thead tr{height:30px!important}table.v-table thead tr.v-datatable__progress{height:0!important;border-top:1px solid rgba(0,0,0,.05)}table.v-table thead th{padding-left:5px!important;padding-right:5px!important}div.v-data-table__actions{-ms-flex-wrap:nowrap;flex-wrap:nowrap}div.v-data-table__actions__pagination{width:100%;min-width:170px;margin:0 10px 0 10px}div.v-data-table__actions__select{white-space:normal;overflow:hidden;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;margin-right:5px;max-width:100px}div.v-data-table__actions__select .v-select{margin-left:25px;margin-right:0;margin-top:0;margin-bottom:0}div.v-data-table__actions__range-controls{width:100%}div.v-data-table__actions button{margin:0;margin-right:5px}.section-toggle{cursor:pointer}.isabl-base-card .v-data-footer{font-size:12px;padding:0}.isabl-base-card .v-data-footer div.v-select__selection{font-size:12px}.isabl-base-card .v-data-footer div.v-select{margin:4px 0 4px 16px}.v-data-footer__select .v-menu__content .v-list-item{min-height:25px;font-size:14px}.v-data-footer__select .v-menu__content .v-list-item .v-list-item__content{padding:0}code.markdown-style{padding:.2em .4em;margin:0;font-size:85%;background-color:rgba(175,184,193,.2);border-radius:6px;color:#24292f}.v-data-table .v-data-footer .v-data-footer__select{margin-left:0;margin-right:auto}.v-data-table .v-data-footer .v-data-footer__pagination{margin-left:auto;margin-right:auto}.v-data-table .v-data-footer .v-data-footer__icons-before{margin-left:auto;margin-right:0}.v-data-table .v-data-footer .v-data-footer__icons-after{margin-left:0;margin-right:0}", ""]);
|
|
89271
|
+
exports.push([module.i, ".isabl-base-card .v-data-table th.column.sortable.active.desc button.sort-icon{-webkit-transform:rotate(-180deg);transform:rotate(-180deg)}.isabl-base-card .v-data-table th.column.sortable.active button.sort-icon{color:var(--v-primary-base)}.isabl-base-card .v-data-table th.column.sortable button{font-size:13px!important;margin-left:4px}.isabl-base-card .v-data-table .v-data-table__wrapper{max-height:300px;overflow-y:auto}.isabl-base-card .v-data-table .table-cell{height:25px!important;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:300px;padding-left:5px!important}.isabl-base-card .v-data-table .table-cell .v-chip.v-size--small{height:20px}.isabl-base-card .v-data-table tr.table-headers.table-cell{position:sticky;top:0;background:#fff;cursor:pointer;height:32px}.isabl-base-card .v-data-table tr.table-headers.table-cell th{background:rgba(0,0,0,.04)}.isabl-base-card .v-data-table.theme--dark,.isabl-base-card .v-data-table.theme--dark tr.column-filters th,.isabl-base-card .v-data-table.theme--dark tr.table-headers.table-cell th{background:var(--v-surface-base)}.isabl-base-card .v-data-table th.column.sortable{padding:0 5px}.isabl-base-card .v-data-table tr.column-filters th{height:32px}.isabl-base-card .v-data-table .v-data-table__empty-wrapper>td{padding:0}.table-filter-input{min-width:150px}.table-filter-input .v-input__icon--append .v-icon{font-size:14px}.table-filter-input input{font-size:14px;font-weight:400;padding-left:6px!important}.table-filter-input label{font-size:13px;padding-left:6px}.column-filters{position:sticky;top:25px;background:#fff;z-index:10}.column-filters .v-select{margin:0}.column-filters .v-select .v-input__slot,.column-filters .v-select input{height:25px}.column-filters .v-select .v-icon{font-size:16px}.column-filters .v-select__selections{display:contents;max-width:120px;font-size:14px;font-weight:400}.column-filters .v-select__selections span,.column-filters .v-text-field .v-input__append-inner{padding:0}.v-list .v-list-item{min-height:25px}.v-list .v-list-item .v-list-item__title{font-size:14px;font-weight:400}.v-list .v-list-item .v-list-item__content{padding:0 10px}div.v-list--dense .v-list-item{min-height:25px;padding:0}div.v-list--dense .v-list-item .v-list-item__action{margin:0;padding:0 4px}div.v-list--dense .v-list-item .v-list-item__title{font-size:14px;font-weight:400}div.v-list--dense .v-list-item .v-list-item__content{padding:0}.v-select-list{overflow:hidden}.v-menu__content:not(.v-autocomplete__content) .v-list__tile{height:23px}table.v-table tbody tr{border:0!important}table.v-table thead tr{height:30px!important}table.v-table thead tr.v-datatable__progress{height:0!important;border-top:1px solid rgba(0,0,0,.05)}table.v-table thead th{padding-left:5px!important;padding-right:5px!important}div.v-data-table__actions{-ms-flex-wrap:nowrap;flex-wrap:nowrap}div.v-data-table__actions__pagination{width:100%;min-width:170px;margin:0 10px 0 10px}div.v-data-table__actions__select{white-space:normal;overflow:hidden;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;margin-right:5px;max-width:100px}div.v-data-table__actions__select .v-select{margin-left:25px;margin-right:0;margin-top:0;margin-bottom:0}div.v-data-table__actions__range-controls{width:100%}div.v-data-table__actions button{margin:0;margin-right:5px}.section-toggle{cursor:pointer}.isabl-base-card .v-data-footer{font-size:12px;padding:0}.isabl-base-card .v-data-footer div.v-select__selection{font-size:12px}.isabl-base-card .v-data-footer div.v-select{margin:4px 0 4px 16px}.v-data-footer__select .v-menu__content .v-list-item{min-height:25px;font-size:14px}.v-data-footer__select .v-menu__content .v-list-item .v-list-item__content{padding:0}code.markdown-style{padding:.2em .4em;margin:0;font-size:85%;background-color:rgba(175,184,193,.2);border-radius:6px;color:#24292f}.v-data-table .v-data-footer .v-data-footer__select{margin-left:0;margin-right:auto}.v-data-table .v-data-footer .v-data-footer__pagination{margin-left:auto;margin-right:auto}.v-data-table .v-data-footer .v-data-footer__icons-before{margin-left:auto;margin-right:0}.v-data-table .v-data-footer .v-data-footer__icons-after{margin-left:0;margin-right:0}", ""]);
|
|
89272
89272
|
|
|
89273
89273
|
// exports
|
|
89274
89274
|
|
|
@@ -91168,7 +91168,7 @@ module.exports = overArg;
|
|
|
91168
91168
|
/***/ "9224":
|
|
91169
91169
|
/***/ (function(module) {
|
|
91170
91170
|
|
|
91171
|
-
module.exports = JSON.parse("{\"name\":\"@papaemmelab/isabl-web\",\"version\":\"0.3.
|
|
91171
|
+
module.exports = JSON.parse("{\"name\":\"@papaemmelab/isabl-web\",\"version\":\"0.3.16\",\"scripts\":{\"serve\":\"vue-cli-service serve\",\"lint\":\"vue-cli-service lint\",\"build-lib\":\"vue-cli-service build --target lib --name isabl-web ./src/main.js\",\"build-wc\":\"vue-cli-service build --target wc --name isabl-web ./src/components/*.vue\",\"build-wc-async\":\"vue-cli-service build --target wc-async --name isabl-web ./src/components/*.vue\",\"publish-app\":\"yarn version --patch && yarn build-lib && yarn publish --access public\",\"dev\":\"yarn build-lib --watch\",\"test:unit\":\"vue-cli-service test:unit\",\"test:e2e\":\"vue-cli-service test:e2e\",\"test:travis\":\"yarn test:e2e --headless\",\"test:submissions\":\"node tests/utils/create_test_submission.js\",\"test:report-coverage\":\"nyc report --reporter=text-lcov > coverage.lcov && codecov -t $CODECOV_TOKEN\",\"demo\":\"nodemon demo/demo-app.js\"},\"dependencies\":{\"@mdi/font\":\"^7.0.96\",\"ansi_up\":\"^5\",\"axios\":\"^0.21.1\",\"crossfilter\":\"^1.3.12\",\"crossfilter2\":\"^1.4.7\",\"d3-tip\":\"^0.9.1\",\"dc\":\"3.1.2\",\"detect-csv\":\"^1.1.0\",\"js-md5\":\"^0.7.3\",\"minify-css-string\":\"^1.0.0\",\"moment\":\"^2.22.2\",\"register-service-worker\":\"^1.5.2\",\"v-hotkey\":\"^0.6.0\",\"vue\":\"^2.5.16\",\"vue-clipboard2\":\"^0.2.1\",\"vue-gallery\":\"^1.4.0\",\"vue-highlightjs\":\"^1.3.3\",\"vue-json-excel\":\"^0.2.5\",\"vue-observe-visibility\":\"^0.4.6\",\"vue-router\":\"^3.0.1\",\"vue-upload-component\":\"^2.8.11\",\"vuetify\":\"2.6.10\",\"vuex\":\"^3.0.1\",\"vuex-router-sync\":\"^5.0.0\"},\"devDependencies\":{\"@cypress/code-coverage\":\"^1.10.1\",\"@vue/cli-plugin-babel\":\"^3.3.0\",\"@vue/cli-plugin-e2e-cypress\":\"^3.3.0\",\"@vue/cli-plugin-eslint\":\"^3.3.0\",\"@vue/cli-plugin-pwa\":\"^3.3.0\",\"@vue/cli-plugin-unit-jest\":\"^3.3.0\",\"@vue/cli-service\":\"^3.3.0\",\"@vue/eslint-config-prettier\":\"^3.0.5\",\"@vue/test-utils\":\"^1.0.0-beta.20\",\"axios-mock-adapter\":\"^1.15.0\",\"babel-core\":\"7.0.0-bridge.0\",\"babel-jest\":\"^23.0.1\",\"babel-plugin-istanbul\":\"^5.2.0\",\"codecov\":\"^3.6.1\",\"eslint-plugin-vuetify\":\"^1.1.0\",\"express\":\"^4.16.3\",\"html-webpack-plugin\":\"^3.2.0\",\"istanbul-lib-coverage\":\"^2.0.5\",\"mini-css-extract-plugin\":\"^0.4.2\",\"nyc\":\"^14.1.1\",\"sass\":\"^1.55.0\",\"sass-loader\":\"^7.0.1\",\"vue-template-compiler\":\"^2.5.16\",\"xlsx-populate\":\"^1.19.1\"},\"browserslist\":[\"> 1%\",\"last 2 versions\",\"not ie <= 8\"],\"main\":\"./dist/isabl-web.umd.min.js\",\"license\":\"MIT\",\"files\":[\"dist/isabl-web*.js\"],\"author\":\"Juan S. Medina - Juan E. Arango\",\"description\":\"Isabl Frontend of the MSK Academic License.\",\"bugs\":{\"url\":\"https://github.com/papaemmelab/isabl_web/issues\"},\"homepage\":\"https://github.com/papaemmelab/isabl_web#readme\"}");
|
|
91172
91172
|
|
|
91173
91173
|
/***/ }),
|
|
91174
91174
|
|
|
@@ -209313,7 +209313,7 @@ var tableColumns = (cov_2ayx42smu.s[23]++, {
|
|
|
209313
209313
|
field: 'owner'
|
|
209314
209314
|
}, {
|
|
209315
209315
|
verboseName: 'Analyst',
|
|
209316
|
-
field: '
|
|
209316
|
+
field: 'analyst'
|
|
209317
209317
|
}, {
|
|
209318
209318
|
verboseName: 'Coordinator',
|
|
209319
209319
|
field: 'coordinator'
|
|
@@ -222354,12 +222354,12 @@ var EditProfileModal_component = normalizeComponent(
|
|
|
222354
222354
|
)
|
|
222355
222355
|
|
|
222356
222356
|
/* harmony default export */ var EditProfileModal = (EditProfileModal_component.exports);
|
|
222357
|
-
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"d220a428-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/projects/NewProjectModal.vue?vue&type=template&id=
|
|
222358
|
-
var
|
|
222359
|
-
var
|
|
222357
|
+
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"d220a428-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/projects/NewProjectModal.vue?vue&type=template&id=070ec06c&
|
|
222358
|
+
var NewProjectModalvue_type_template_id_070ec06c_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('base-modal',{attrs:{"show-modal":_vm.showModal,"max-width":"800px"},on:{"close-modal":_vm.closeModal},scopedSlots:_vm._u([{key:"title",fn:function(){return [_vm._v("Create Project")]},proxy:true},{key:"content",fn:function(){return [_c('v-container',{staticClass:"pa-0"},[_c('v-row',[_c('v-col',{attrs:{"cols":"16"}},[_c('v-text-field',{ref:"title",staticClass:"pt-6",attrs:{"v-show":_vm.showModal,"rules":[_vm.rules.required],"error-messages":_vm.errorMessages.title,"label":"Project Title","data-test":"new-project-title-input"},on:{"keyup":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"enter",13,$event.key,"Enter")){ return null; }return _vm.submit.apply(null, arguments)}},model:{value:(_vm.project.title),callback:function ($$v) {_vm.$set(_vm.project, "title", $$v)},expression:"project.title"}})],1)],1),_c('div',{directives:[{name:"show",rawName:"v-show",value:(_vm.showOptionalFields),expression:"showOptionalFields"}],staticClass:"pa-0"},[_c('v-row',[_c('v-col',{attrs:{"cols":"16"}},[_c('v-text-field',{ref:"shortTitle",attrs:{"rules":[_vm.rules.unicode, _vm.rules.min10],"error-messages":_vm.errorMessages.short_title,"label":"Project Short Title","data-test":"new-project-short-input","counter":"","dense":"","maxlength":"30","hint":"Think of the objective of the project."},model:{value:(_vm.project.shortTitle),callback:function ($$v) {_vm.$set(_vm.project, "shortTitle", $$v)},expression:"project.shortTitle"}})],1)],1),_c('v-row',[_c('v-col',{attrs:{"cols":"16"}},[_c('v-select',{ref:"group",attrs:{"items":_vm.groups,"return-object":"","item-text":"slug","label":"Group","dense":"","data-test":"new-project-groups-input"},model:{value:(_vm.project.group),callback:function ($$v) {_vm.$set(_vm.project, "group", $$v)},expression:"project.group"}})],1)],1),_c('v-row',[_c('v-col',{attrs:{"cols":"16"}},[_c('user-search-input',{ref:"principalInvestigator",attrs:{"model":_vm.project,"rules":[_vm.rules.email],"error-messages":_vm.errorMessages.principal_investigator,"field":"principalInvestigator","label":"Principal Investigator","data-test":"new-project-pi-input","hint":"Laboratory head or principal investigator","dense":""},on:{"update-value":_vm.updateValue}})],1)],1),_c('v-row',[_c('v-col',{attrs:{"cols":"16"}},[_c('user-search-input',{ref:"owner",attrs:{"model":_vm.project,"rules":[_vm.rules.email],"error-messages":_vm.errorMessages.owner,"field":"owner","label":"Project Owner","data-test":"new-project-owner-input","hint":"Who deals with the nitty-gritty of the project","dense":""},on:{"update-value":_vm.updateValue}})],1)],1),_c('v-row',[_c('v-col',{attrs:{"cols":"16"}},[_c('user-search-input',{ref:"coordinator",attrs:{"model":_vm.project,"rules":[_vm.rules.email],"error-messages":_vm.errorMessages.coordinator,"field":"coordinator","label":"Coordinator","data-test":"new-project-coord-input","hint":"Project manager or coordinator","dense":""},on:{"update-value":_vm.updateValue}})],1)],1),_c('v-row',[_c('v-col',{attrs:{"cols":"16"}},[_c('user-search-input',{ref:"analyst",attrs:{"model":_vm.project,"rules":[_vm.rules.email],"error-messages":_vm.errorMessages.analyst,"field":"analyst","label":"Data Analyst","data-test":"new-project-analyst-input","hint":"Person responsible for the data analysis"},on:{"update-value":_vm.updateValue}})],1)],1)],1)],1)]},proxy:true},{key:"footer-actions",fn:function(){return [_c('v-btn',{attrs:{"color":"primary darken-1","data-test":"new-project-optional-btn","text":""},on:{"click":_vm.toggleOptionalFields}},[_vm._v("Optional Fields")]),_c('v-btn',{attrs:{"color":"primary darken-1","data-test":"new-project-create-btn","text":""},on:{"click":_vm.submit}},[_vm._v("Create")])]},proxy:true}])})}
|
|
222359
|
+
var NewProjectModalvue_type_template_id_070ec06c_staticRenderFns = []
|
|
222360
222360
|
|
|
222361
222361
|
|
|
222362
|
-
// CONCATENATED MODULE: ./src/components/projects/NewProjectModal.vue?vue&type=template&id=
|
|
222362
|
+
// CONCATENATED MODULE: ./src/components/projects/NewProjectModal.vue?vue&type=template&id=070ec06c&
|
|
222363
222363
|
|
|
222364
222364
|
// EXTERNAL MODULE: ./node_modules/lodash/has.js
|
|
222365
222365
|
var has = __webpack_require__("3852");
|
|
@@ -224522,7 +224522,7 @@ var UserSearchInput_component = normalizeComponent(
|
|
|
224522
224522
|
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/projects/NewProjectModal.vue?vue&type=script&lang=js&
|
|
224523
224523
|
var cov_41uwsnrpn = function () {
|
|
224524
224524
|
var path = "/Users/juanes/papaemmelab/isabl_web/src/components/projects/NewProjectModal.vue";
|
|
224525
|
-
var hash = "
|
|
224525
|
+
var hash = "39bf82dbca3de1e3096f5011f5bbc47921642eb4";
|
|
224526
224526
|
var global = new Function("return this")();
|
|
224527
224527
|
var gcv = "__coverage__";
|
|
224528
224528
|
var coverageData = {
|
|
@@ -224560,272 +224560,272 @@ var cov_41uwsnrpn = function () {
|
|
|
224560
224560
|
},
|
|
224561
224561
|
"3": {
|
|
224562
224562
|
start: {
|
|
224563
|
-
line:
|
|
224563
|
+
line: 208,
|
|
224564
224564
|
column: 8
|
|
224565
224565
|
},
|
|
224566
224566
|
end: {
|
|
224567
|
-
line:
|
|
224568
|
-
column:
|
|
224567
|
+
line: 208,
|
|
224568
|
+
column: 26
|
|
224569
224569
|
}
|
|
224570
224570
|
},
|
|
224571
224571
|
"4": {
|
|
224572
224572
|
start: {
|
|
224573
224573
|
line: 210,
|
|
224574
|
-
column:
|
|
224574
|
+
column: 8
|
|
224575
224575
|
},
|
|
224576
224576
|
end: {
|
|
224577
|
-
line:
|
|
224578
|
-
column:
|
|
224577
|
+
line: 213,
|
|
224578
|
+
column: 9
|
|
224579
224579
|
}
|
|
224580
224580
|
},
|
|
224581
224581
|
"5": {
|
|
224582
224582
|
start: {
|
|
224583
|
-
line:
|
|
224584
|
-
column:
|
|
224583
|
+
line: 211,
|
|
224584
|
+
column: 10
|
|
224585
224585
|
},
|
|
224586
224586
|
end: {
|
|
224587
|
-
line:
|
|
224588
|
-
column:
|
|
224587
|
+
line: 211,
|
|
224588
|
+
column: 48
|
|
224589
224589
|
}
|
|
224590
224590
|
},
|
|
224591
224591
|
"6": {
|
|
224592
224592
|
start: {
|
|
224593
|
-
line:
|
|
224594
|
-
column:
|
|
224593
|
+
line: 212,
|
|
224594
|
+
column: 10
|
|
224595
224595
|
},
|
|
224596
224596
|
end: {
|
|
224597
|
-
line:
|
|
224598
|
-
column:
|
|
224597
|
+
line: 212,
|
|
224598
|
+
column: 26
|
|
224599
224599
|
}
|
|
224600
224600
|
},
|
|
224601
224601
|
"7": {
|
|
224602
224602
|
start: {
|
|
224603
|
-
line:
|
|
224603
|
+
line: 218,
|
|
224604
224604
|
column: 4
|
|
224605
224605
|
},
|
|
224606
224606
|
end: {
|
|
224607
|
-
line:
|
|
224608
|
-
column:
|
|
224607
|
+
line: 218,
|
|
224608
|
+
column: 26
|
|
224609
224609
|
}
|
|
224610
224610
|
},
|
|
224611
224611
|
"8": {
|
|
224612
224612
|
start: {
|
|
224613
|
-
line:
|
|
224613
|
+
line: 223,
|
|
224614
224614
|
column: 6
|
|
224615
224615
|
},
|
|
224616
224616
|
end: {
|
|
224617
|
-
line:
|
|
224618
|
-
column:
|
|
224617
|
+
line: 231,
|
|
224618
|
+
column: 8
|
|
224619
224619
|
}
|
|
224620
224620
|
},
|
|
224621
224621
|
"9": {
|
|
224622
224622
|
start: {
|
|
224623
|
-
line:
|
|
224623
|
+
line: 224,
|
|
224624
224624
|
column: 8
|
|
224625
224625
|
},
|
|
224626
224626
|
end: {
|
|
224627
|
-
line:
|
|
224628
|
-
column:
|
|
224627
|
+
line: 230,
|
|
224628
|
+
column: 9
|
|
224629
224629
|
}
|
|
224630
224630
|
},
|
|
224631
224631
|
"10": {
|
|
224632
224632
|
start: {
|
|
224633
|
-
line:
|
|
224634
|
-
column:
|
|
224633
|
+
line: 225,
|
|
224634
|
+
column: 10
|
|
224635
224635
|
},
|
|
224636
224636
|
end: {
|
|
224637
|
-
line:
|
|
224638
|
-
column:
|
|
224637
|
+
line: 225,
|
|
224638
|
+
column: 46
|
|
224639
224639
|
}
|
|
224640
224640
|
},
|
|
224641
224641
|
"11": {
|
|
224642
224642
|
start: {
|
|
224643
|
-
line:
|
|
224644
|
-
column:
|
|
224643
|
+
line: 226,
|
|
224644
|
+
column: 15
|
|
224645
224645
|
},
|
|
224646
224646
|
end: {
|
|
224647
|
-
line:
|
|
224648
|
-
column:
|
|
224647
|
+
line: 230,
|
|
224648
|
+
column: 9
|
|
224649
224649
|
}
|
|
224650
224650
|
},
|
|
224651
224651
|
"12": {
|
|
224652
224652
|
start: {
|
|
224653
|
-
line:
|
|
224654
|
-
column:
|
|
224653
|
+
line: 227,
|
|
224654
|
+
column: 10
|
|
224655
224655
|
},
|
|
224656
224656
|
end: {
|
|
224657
|
-
line:
|
|
224658
|
-
column:
|
|
224657
|
+
line: 227,
|
|
224658
|
+
column: 68
|
|
224659
224659
|
}
|
|
224660
224660
|
},
|
|
224661
224661
|
"13": {
|
|
224662
224662
|
start: {
|
|
224663
|
-
line:
|
|
224664
|
-
column:
|
|
224663
|
+
line: 228,
|
|
224664
|
+
column: 15
|
|
224665
224665
|
},
|
|
224666
224666
|
end: {
|
|
224667
|
-
line:
|
|
224668
|
-
column:
|
|
224667
|
+
line: 230,
|
|
224668
|
+
column: 9
|
|
224669
224669
|
}
|
|
224670
224670
|
},
|
|
224671
224671
|
"14": {
|
|
224672
224672
|
start: {
|
|
224673
|
-
line:
|
|
224674
|
-
column:
|
|
224673
|
+
line: 229,
|
|
224674
|
+
column: 10
|
|
224675
224675
|
},
|
|
224676
224676
|
end: {
|
|
224677
|
-
line:
|
|
224678
|
-
column:
|
|
224677
|
+
line: 229,
|
|
224678
|
+
column: 69
|
|
224679
224679
|
}
|
|
224680
224680
|
},
|
|
224681
224681
|
"15": {
|
|
224682
224682
|
start: {
|
|
224683
|
-
line:
|
|
224684
|
-
column:
|
|
224683
|
+
line: 234,
|
|
224684
|
+
column: 6
|
|
224685
224685
|
},
|
|
224686
224686
|
end: {
|
|
224687
|
-
line:
|
|
224688
|
-
column:
|
|
224687
|
+
line: 237,
|
|
224688
|
+
column: 7
|
|
224689
224689
|
}
|
|
224690
224690
|
},
|
|
224691
224691
|
"16": {
|
|
224692
224692
|
start: {
|
|
224693
|
-
line:
|
|
224694
|
-
column:
|
|
224693
|
+
line: 235,
|
|
224694
|
+
column: 25
|
|
224695
224695
|
},
|
|
224696
224696
|
end: {
|
|
224697
|
-
line:
|
|
224698
|
-
column:
|
|
224697
|
+
line: 235,
|
|
224698
|
+
column: 57
|
|
224699
224699
|
}
|
|
224700
224700
|
},
|
|
224701
224701
|
"17": {
|
|
224702
224702
|
start: {
|
|
224703
|
-
line:
|
|
224704
|
-
column:
|
|
224703
|
+
line: 236,
|
|
224704
|
+
column: 8
|
|
224705
224705
|
},
|
|
224706
224706
|
end: {
|
|
224707
|
-
line:
|
|
224708
|
-
column:
|
|
224707
|
+
line: 236,
|
|
224708
|
+
column: 38
|
|
224709
224709
|
}
|
|
224710
224710
|
},
|
|
224711
224711
|
"18": {
|
|
224712
224712
|
start: {
|
|
224713
|
-
line:
|
|
224713
|
+
line: 240,
|
|
224714
224714
|
column: 6
|
|
224715
224715
|
},
|
|
224716
224716
|
end: {
|
|
224717
|
-
line:
|
|
224718
|
-
column:
|
|
224717
|
+
line: 240,
|
|
224718
|
+
column: 56
|
|
224719
224719
|
}
|
|
224720
224720
|
},
|
|
224721
224721
|
"19": {
|
|
224722
224722
|
start: {
|
|
224723
|
-
line:
|
|
224723
|
+
line: 241,
|
|
224724
224724
|
column: 6
|
|
224725
224725
|
},
|
|
224726
224726
|
end: {
|
|
224727
|
-
line:
|
|
224728
|
-
column:
|
|
224727
|
+
line: 241,
|
|
224728
|
+
column: 44
|
|
224729
224729
|
}
|
|
224730
224730
|
},
|
|
224731
224731
|
"20": {
|
|
224732
224732
|
start: {
|
|
224733
224733
|
line: 242,
|
|
224734
|
-
column:
|
|
224734
|
+
column: 6
|
|
224735
224735
|
},
|
|
224736
224736
|
end: {
|
|
224737
224737
|
line: 242,
|
|
224738
|
-
column:
|
|
224738
|
+
column: 54
|
|
224739
224739
|
}
|
|
224740
224740
|
},
|
|
224741
224741
|
"21": {
|
|
224742
224742
|
start: {
|
|
224743
|
-
line:
|
|
224743
|
+
line: 245,
|
|
224744
224744
|
column: 6
|
|
224745
224745
|
},
|
|
224746
224746
|
end: {
|
|
224747
|
-
line:
|
|
224747
|
+
line: 245,
|
|
224748
224748
|
column: 32
|
|
224749
224749
|
}
|
|
224750
224750
|
},
|
|
224751
224751
|
"22": {
|
|
224752
224752
|
start: {
|
|
224753
|
-
line:
|
|
224753
|
+
line: 246,
|
|
224754
224754
|
column: 6
|
|
224755
224755
|
},
|
|
224756
224756
|
end: {
|
|
224757
|
-
line:
|
|
224758
|
-
column:
|
|
224757
|
+
line: 246,
|
|
224758
|
+
column: 70
|
|
224759
224759
|
}
|
|
224760
224760
|
},
|
|
224761
224761
|
"23": {
|
|
224762
224762
|
start: {
|
|
224763
|
-
line:
|
|
224763
|
+
line: 246,
|
|
224764
224764
|
column: 45
|
|
224765
224765
|
},
|
|
224766
224766
|
end: {
|
|
224767
|
-
line:
|
|
224768
|
-
column:
|
|
224767
|
+
line: 246,
|
|
224768
|
+
column: 69
|
|
224769
224769
|
}
|
|
224770
224770
|
},
|
|
224771
224771
|
"24": {
|
|
224772
224772
|
start: {
|
|
224773
|
-
line:
|
|
224773
|
+
line: 249,
|
|
224774
224774
|
column: 6
|
|
224775
224775
|
},
|
|
224776
224776
|
end: {
|
|
224777
|
-
line:
|
|
224777
|
+
line: 249,
|
|
224778
224778
|
column: 22
|
|
224779
224779
|
}
|
|
224780
224780
|
},
|
|
224781
224781
|
"25": {
|
|
224782
224782
|
start: {
|
|
224783
|
-
line:
|
|
224783
|
+
line: 250,
|
|
224784
224784
|
column: 6
|
|
224785
224785
|
},
|
|
224786
224786
|
end: {
|
|
224787
|
-
line:
|
|
224787
|
+
line: 250,
|
|
224788
224788
|
column: 31
|
|
224789
224789
|
}
|
|
224790
224790
|
},
|
|
224791
224791
|
"26": {
|
|
224792
224792
|
start: {
|
|
224793
|
-
line:
|
|
224793
|
+
line: 253,
|
|
224794
224794
|
column: 6
|
|
224795
224795
|
},
|
|
224796
224796
|
end: {
|
|
224797
|
-
line:
|
|
224797
|
+
line: 256,
|
|
224798
224798
|
column: 7
|
|
224799
224799
|
}
|
|
224800
224800
|
},
|
|
224801
224801
|
"27": {
|
|
224802
224802
|
start: {
|
|
224803
|
-
line:
|
|
224803
|
+
line: 259,
|
|
224804
224804
|
column: 6
|
|
224805
224805
|
},
|
|
224806
224806
|
end: {
|
|
224807
|
-
line:
|
|
224807
|
+
line: 259,
|
|
224808
224808
|
column: 32
|
|
224809
224809
|
}
|
|
224810
224810
|
},
|
|
224811
224811
|
"28": {
|
|
224812
224812
|
start: {
|
|
224813
|
-
line:
|
|
224813
|
+
line: 260,
|
|
224814
224814
|
column: 6
|
|
224815
224815
|
},
|
|
224816
224816
|
end: {
|
|
224817
224817
|
line: 260,
|
|
224818
|
-
column:
|
|
224818
|
+
column: 77
|
|
224819
224819
|
}
|
|
224820
224820
|
},
|
|
224821
224821
|
"29": {
|
|
224822
224822
|
start: {
|
|
224823
|
-
line:
|
|
224824
|
-
column:
|
|
224823
|
+
line: 260,
|
|
224824
|
+
column: 45
|
|
224825
224825
|
},
|
|
224826
224826
|
end: {
|
|
224827
|
-
line:
|
|
224828
|
-
column:
|
|
224827
|
+
line: 260,
|
|
224828
|
+
column: 76
|
|
224829
224829
|
}
|
|
224830
224830
|
},
|
|
224831
224831
|
"30": {
|
|
@@ -225010,7 +225010,7 @@ var cov_41uwsnrpn = function () {
|
|
|
225010
225010
|
column: 12
|
|
225011
225011
|
},
|
|
225012
225012
|
end: {
|
|
225013
|
-
line:
|
|
225013
|
+
line: 219,
|
|
225014
225014
|
column: 3
|
|
225015
225015
|
}
|
|
225016
225016
|
},
|
|
@@ -225020,118 +225020,118 @@ var cov_41uwsnrpn = function () {
|
|
|
225020
225020
|
name: "(anonymous_4)",
|
|
225021
225021
|
decl: {
|
|
225022
225022
|
start: {
|
|
225023
|
-
line:
|
|
225024
|
-
column:
|
|
225023
|
+
line: 221,
|
|
225024
|
+
column: 4
|
|
225025
225025
|
},
|
|
225026
225026
|
end: {
|
|
225027
|
-
line:
|
|
225028
|
-
column:
|
|
225027
|
+
line: 221,
|
|
225028
|
+
column: 5
|
|
225029
225029
|
}
|
|
225030
225030
|
},
|
|
225031
225031
|
loc: {
|
|
225032
225032
|
start: {
|
|
225033
|
-
line:
|
|
225034
|
-
column:
|
|
225033
|
+
line: 221,
|
|
225034
|
+
column: 22
|
|
225035
225035
|
},
|
|
225036
225036
|
end: {
|
|
225037
|
-
line:
|
|
225037
|
+
line: 232,
|
|
225038
225038
|
column: 5
|
|
225039
225039
|
}
|
|
225040
225040
|
},
|
|
225041
|
-
line:
|
|
225041
|
+
line: 221
|
|
225042
225042
|
},
|
|
225043
225043
|
"5": {
|
|
225044
225044
|
name: "(anonymous_5)",
|
|
225045
225045
|
decl: {
|
|
225046
225046
|
start: {
|
|
225047
|
-
line:
|
|
225048
|
-
column:
|
|
225047
|
+
line: 223,
|
|
225048
|
+
column: 36
|
|
225049
225049
|
},
|
|
225050
225050
|
end: {
|
|
225051
|
-
line:
|
|
225052
|
-
column:
|
|
225051
|
+
line: 223,
|
|
225052
|
+
column: 37
|
|
225053
225053
|
}
|
|
225054
225054
|
},
|
|
225055
225055
|
loc: {
|
|
225056
225056
|
start: {
|
|
225057
|
-
line:
|
|
225058
|
-
column:
|
|
225057
|
+
line: 223,
|
|
225058
|
+
column: 45
|
|
225059
225059
|
},
|
|
225060
225060
|
end: {
|
|
225061
|
-
line:
|
|
225062
|
-
column:
|
|
225061
|
+
line: 231,
|
|
225062
|
+
column: 7
|
|
225063
225063
|
}
|
|
225064
225064
|
},
|
|
225065
|
-
line:
|
|
225065
|
+
line: 223
|
|
225066
225066
|
},
|
|
225067
225067
|
"6": {
|
|
225068
225068
|
name: "(anonymous_6)",
|
|
225069
225069
|
decl: {
|
|
225070
225070
|
start: {
|
|
225071
|
-
line:
|
|
225071
|
+
line: 233,
|
|
225072
225072
|
column: 4
|
|
225073
225073
|
},
|
|
225074
225074
|
end: {
|
|
225075
|
-
line:
|
|
225075
|
+
line: 233,
|
|
225076
225076
|
column: 5
|
|
225077
225077
|
}
|
|
225078
225078
|
},
|
|
225079
225079
|
loc: {
|
|
225080
225080
|
start: {
|
|
225081
|
-
line:
|
|
225082
|
-
column:
|
|
225081
|
+
line: 233,
|
|
225082
|
+
column: 24
|
|
225083
225083
|
},
|
|
225084
225084
|
end: {
|
|
225085
|
-
line:
|
|
225085
|
+
line: 238,
|
|
225086
225086
|
column: 5
|
|
225087
225087
|
}
|
|
225088
225088
|
},
|
|
225089
|
-
line:
|
|
225089
|
+
line: 233
|
|
225090
225090
|
},
|
|
225091
225091
|
"7": {
|
|
225092
225092
|
name: "(anonymous_7)",
|
|
225093
225093
|
decl: {
|
|
225094
225094
|
start: {
|
|
225095
|
-
line:
|
|
225095
|
+
line: 239,
|
|
225096
225096
|
column: 4
|
|
225097
225097
|
},
|
|
225098
225098
|
end: {
|
|
225099
|
-
line:
|
|
225099
|
+
line: 239,
|
|
225100
225100
|
column: 5
|
|
225101
225101
|
}
|
|
225102
225102
|
},
|
|
225103
225103
|
loc: {
|
|
225104
225104
|
start: {
|
|
225105
|
-
line:
|
|
225106
|
-
column:
|
|
225105
|
+
line: 239,
|
|
225106
|
+
column: 27
|
|
225107
225107
|
},
|
|
225108
225108
|
end: {
|
|
225109
|
-
line:
|
|
225109
|
+
line: 243,
|
|
225110
225110
|
column: 5
|
|
225111
225111
|
}
|
|
225112
225112
|
},
|
|
225113
|
-
line:
|
|
225113
|
+
line: 239
|
|
225114
225114
|
},
|
|
225115
225115
|
"8": {
|
|
225116
225116
|
name: "(anonymous_8)",
|
|
225117
225117
|
decl: {
|
|
225118
225118
|
start: {
|
|
225119
225119
|
line: 244,
|
|
225120
|
-
column:
|
|
225120
|
+
column: 4
|
|
225121
225121
|
},
|
|
225122
225122
|
end: {
|
|
225123
225123
|
line: 244,
|
|
225124
|
-
column:
|
|
225124
|
+
column: 5
|
|
225125
225125
|
}
|
|
225126
225126
|
},
|
|
225127
225127
|
loc: {
|
|
225128
225128
|
start: {
|
|
225129
225129
|
line: 244,
|
|
225130
|
-
column:
|
|
225130
|
+
column: 16
|
|
225131
225131
|
},
|
|
225132
225132
|
end: {
|
|
225133
|
-
line:
|
|
225134
|
-
column:
|
|
225133
|
+
line: 247,
|
|
225134
|
+
column: 5
|
|
225135
225135
|
}
|
|
225136
225136
|
},
|
|
225137
225137
|
line: 244
|
|
@@ -225141,21 +225141,21 @@ var cov_41uwsnrpn = function () {
|
|
|
225141
225141
|
decl: {
|
|
225142
225142
|
start: {
|
|
225143
225143
|
line: 246,
|
|
225144
|
-
column:
|
|
225144
|
+
column: 36
|
|
225145
225145
|
},
|
|
225146
225146
|
end: {
|
|
225147
225147
|
line: 246,
|
|
225148
|
-
column:
|
|
225148
|
+
column: 37
|
|
225149
225149
|
}
|
|
225150
225150
|
},
|
|
225151
225151
|
loc: {
|
|
225152
225152
|
start: {
|
|
225153
225153
|
line: 246,
|
|
225154
|
-
column:
|
|
225154
|
+
column: 45
|
|
225155
225155
|
},
|
|
225156
225156
|
end: {
|
|
225157
|
-
line:
|
|
225158
|
-
column:
|
|
225157
|
+
line: 246,
|
|
225158
|
+
column: 69
|
|
225159
225159
|
}
|
|
225160
225160
|
},
|
|
225161
225161
|
line: 246
|
|
@@ -225164,76 +225164,100 @@ var cov_41uwsnrpn = function () {
|
|
|
225164
225164
|
name: "(anonymous_10)",
|
|
225165
225165
|
decl: {
|
|
225166
225166
|
start: {
|
|
225167
|
-
line:
|
|
225167
|
+
line: 248,
|
|
225168
225168
|
column: 4
|
|
225169
225169
|
},
|
|
225170
225170
|
end: {
|
|
225171
|
-
line:
|
|
225171
|
+
line: 248,
|
|
225172
225172
|
column: 5
|
|
225173
225173
|
}
|
|
225174
225174
|
},
|
|
225175
225175
|
loc: {
|
|
225176
225176
|
start: {
|
|
225177
|
-
line:
|
|
225178
|
-
column:
|
|
225177
|
+
line: 248,
|
|
225178
|
+
column: 17
|
|
225179
225179
|
},
|
|
225180
225180
|
end: {
|
|
225181
|
-
line:
|
|
225181
|
+
line: 251,
|
|
225182
225182
|
column: 5
|
|
225183
225183
|
}
|
|
225184
225184
|
},
|
|
225185
|
-
line:
|
|
225185
|
+
line: 248
|
|
225186
225186
|
},
|
|
225187
225187
|
"11": {
|
|
225188
225188
|
name: "(anonymous_11)",
|
|
225189
225189
|
decl: {
|
|
225190
225190
|
start: {
|
|
225191
|
-
line:
|
|
225191
|
+
line: 252,
|
|
225192
225192
|
column: 4
|
|
225193
225193
|
},
|
|
225194
225194
|
end: {
|
|
225195
|
-
line:
|
|
225195
|
+
line: 252,
|
|
225196
225196
|
column: 5
|
|
225197
225197
|
}
|
|
225198
225198
|
},
|
|
225199
225199
|
loc: {
|
|
225200
225200
|
start: {
|
|
225201
|
-
line:
|
|
225202
|
-
column:
|
|
225201
|
+
line: 252,
|
|
225202
|
+
column: 22
|
|
225203
225203
|
},
|
|
225204
225204
|
end: {
|
|
225205
|
-
line:
|
|
225205
|
+
line: 257,
|
|
225206
225206
|
column: 5
|
|
225207
225207
|
}
|
|
225208
225208
|
},
|
|
225209
|
-
line:
|
|
225209
|
+
line: 252
|
|
225210
225210
|
},
|
|
225211
225211
|
"12": {
|
|
225212
225212
|
name: "(anonymous_12)",
|
|
225213
225213
|
decl: {
|
|
225214
225214
|
start: {
|
|
225215
225215
|
line: 258,
|
|
225216
|
-
column:
|
|
225216
|
+
column: 4
|
|
225217
225217
|
},
|
|
225218
225218
|
end: {
|
|
225219
225219
|
line: 258,
|
|
225220
|
-
column:
|
|
225220
|
+
column: 5
|
|
225221
225221
|
}
|
|
225222
225222
|
},
|
|
225223
225223
|
loc: {
|
|
225224
225224
|
start: {
|
|
225225
225225
|
line: 258,
|
|
225226
|
-
column:
|
|
225226
|
+
column: 19
|
|
225227
225227
|
},
|
|
225228
225228
|
end: {
|
|
225229
|
-
line:
|
|
225230
|
-
column:
|
|
225229
|
+
line: 283,
|
|
225230
|
+
column: 5
|
|
225231
225231
|
}
|
|
225232
225232
|
},
|
|
225233
225233
|
line: 258
|
|
225234
225234
|
},
|
|
225235
225235
|
"13": {
|
|
225236
225236
|
name: "(anonymous_13)",
|
|
225237
|
+
decl: {
|
|
225238
|
+
start: {
|
|
225239
|
+
line: 260,
|
|
225240
|
+
column: 36
|
|
225241
|
+
},
|
|
225242
|
+
end: {
|
|
225243
|
+
line: 260,
|
|
225244
|
+
column: 37
|
|
225245
|
+
}
|
|
225246
|
+
},
|
|
225247
|
+
loc: {
|
|
225248
|
+
start: {
|
|
225249
|
+
line: 260,
|
|
225250
|
+
column: 45
|
|
225251
|
+
},
|
|
225252
|
+
end: {
|
|
225253
|
+
line: 260,
|
|
225254
|
+
column: 76
|
|
225255
|
+
}
|
|
225256
|
+
},
|
|
225257
|
+
line: 260
|
|
225258
|
+
},
|
|
225259
|
+
"14": {
|
|
225260
|
+
name: "(anonymous_14)",
|
|
225237
225261
|
decl: {
|
|
225238
225262
|
start: {
|
|
225239
225263
|
line: 263,
|
|
@@ -225256,8 +225280,8 @@ var cov_41uwsnrpn = function () {
|
|
|
225256
225280
|
},
|
|
225257
225281
|
line: 263
|
|
225258
225282
|
},
|
|
225259
|
-
"
|
|
225260
|
-
name: "(
|
|
225283
|
+
"15": {
|
|
225284
|
+
name: "(anonymous_15)",
|
|
225261
225285
|
decl: {
|
|
225262
225286
|
start: {
|
|
225263
225287
|
line: 274,
|
|
@@ -225318,202 +225342,169 @@ var cov_41uwsnrpn = function () {
|
|
|
225318
225342
|
"1": {
|
|
225319
225343
|
loc: {
|
|
225320
225344
|
start: {
|
|
225321
|
-
line:
|
|
225345
|
+
line: 210,
|
|
225322
225346
|
column: 8
|
|
225323
225347
|
},
|
|
225324
225348
|
end: {
|
|
225325
|
-
line:
|
|
225349
|
+
line: 213,
|
|
225326
225350
|
column: 9
|
|
225327
225351
|
}
|
|
225328
225352
|
},
|
|
225329
225353
|
type: "if",
|
|
225330
225354
|
locations: [{
|
|
225331
225355
|
start: {
|
|
225332
|
-
line:
|
|
225356
|
+
line: 210,
|
|
225333
225357
|
column: 8
|
|
225334
225358
|
},
|
|
225335
225359
|
end: {
|
|
225336
|
-
line:
|
|
225360
|
+
line: 213,
|
|
225337
225361
|
column: 9
|
|
225338
225362
|
}
|
|
225339
225363
|
}, {
|
|
225340
225364
|
start: {
|
|
225341
|
-
line:
|
|
225365
|
+
line: 210,
|
|
225342
225366
|
column: 8
|
|
225343
225367
|
},
|
|
225344
225368
|
end: {
|
|
225345
|
-
line:
|
|
225369
|
+
line: 213,
|
|
225346
225370
|
column: 9
|
|
225347
225371
|
}
|
|
225348
225372
|
}],
|
|
225349
|
-
line:
|
|
225373
|
+
line: 210
|
|
225350
225374
|
},
|
|
225351
225375
|
"2": {
|
|
225352
225376
|
loc: {
|
|
225353
225377
|
start: {
|
|
225354
|
-
line:
|
|
225355
|
-
column:
|
|
225378
|
+
line: 224,
|
|
225379
|
+
column: 8
|
|
225356
225380
|
},
|
|
225357
225381
|
end: {
|
|
225358
|
-
line:
|
|
225359
|
-
column:
|
|
225382
|
+
line: 230,
|
|
225383
|
+
column: 9
|
|
225360
225384
|
}
|
|
225361
225385
|
},
|
|
225362
225386
|
type: "if",
|
|
225363
225387
|
locations: [{
|
|
225364
225388
|
start: {
|
|
225365
|
-
line:
|
|
225366
|
-
column:
|
|
225389
|
+
line: 224,
|
|
225390
|
+
column: 8
|
|
225367
225391
|
},
|
|
225368
225392
|
end: {
|
|
225369
|
-
line:
|
|
225370
|
-
column:
|
|
225393
|
+
line: 230,
|
|
225394
|
+
column: 9
|
|
225371
225395
|
}
|
|
225372
225396
|
}, {
|
|
225373
225397
|
start: {
|
|
225374
|
-
line:
|
|
225375
|
-
column:
|
|
225398
|
+
line: 224,
|
|
225399
|
+
column: 8
|
|
225376
225400
|
},
|
|
225377
225401
|
end: {
|
|
225378
|
-
line:
|
|
225379
|
-
column:
|
|
225402
|
+
line: 230,
|
|
225403
|
+
column: 9
|
|
225380
225404
|
}
|
|
225381
225405
|
}],
|
|
225382
|
-
line:
|
|
225406
|
+
line: 224
|
|
225383
225407
|
},
|
|
225384
225408
|
"3": {
|
|
225385
225409
|
loc: {
|
|
225386
225410
|
start: {
|
|
225387
|
-
line:
|
|
225388
|
-
column:
|
|
225411
|
+
line: 226,
|
|
225412
|
+
column: 15
|
|
225389
225413
|
},
|
|
225390
225414
|
end: {
|
|
225391
|
-
line:
|
|
225392
|
-
column:
|
|
225415
|
+
line: 230,
|
|
225416
|
+
column: 9
|
|
225393
225417
|
}
|
|
225394
225418
|
},
|
|
225395
225419
|
type: "if",
|
|
225396
225420
|
locations: [{
|
|
225397
225421
|
start: {
|
|
225398
|
-
line:
|
|
225399
|
-
column:
|
|
225422
|
+
line: 226,
|
|
225423
|
+
column: 15
|
|
225400
225424
|
},
|
|
225401
225425
|
end: {
|
|
225402
|
-
line:
|
|
225403
|
-
column:
|
|
225426
|
+
line: 230,
|
|
225427
|
+
column: 9
|
|
225404
225428
|
}
|
|
225405
225429
|
}, {
|
|
225406
225430
|
start: {
|
|
225407
|
-
line:
|
|
225408
|
-
column:
|
|
225431
|
+
line: 226,
|
|
225432
|
+
column: 15
|
|
225409
225433
|
},
|
|
225410
225434
|
end: {
|
|
225411
|
-
line:
|
|
225412
|
-
column:
|
|
225435
|
+
line: 230,
|
|
225436
|
+
column: 9
|
|
225413
225437
|
}
|
|
225414
225438
|
}],
|
|
225415
|
-
line:
|
|
225439
|
+
line: 226
|
|
225416
225440
|
},
|
|
225417
225441
|
"4": {
|
|
225418
225442
|
loc: {
|
|
225419
225443
|
start: {
|
|
225420
|
-
line:
|
|
225421
|
-
column:
|
|
225444
|
+
line: 228,
|
|
225445
|
+
column: 15
|
|
225422
225446
|
},
|
|
225423
225447
|
end: {
|
|
225424
|
-
line:
|
|
225425
|
-
column:
|
|
225448
|
+
line: 230,
|
|
225449
|
+
column: 9
|
|
225426
225450
|
}
|
|
225427
225451
|
},
|
|
225428
225452
|
type: "if",
|
|
225429
225453
|
locations: [{
|
|
225430
225454
|
start: {
|
|
225431
|
-
line:
|
|
225432
|
-
column:
|
|
225455
|
+
line: 228,
|
|
225456
|
+
column: 15
|
|
225433
225457
|
},
|
|
225434
225458
|
end: {
|
|
225435
|
-
line:
|
|
225436
|
-
column:
|
|
225459
|
+
line: 230,
|
|
225460
|
+
column: 9
|
|
225437
225461
|
}
|
|
225438
225462
|
}, {
|
|
225439
225463
|
start: {
|
|
225440
|
-
line:
|
|
225441
|
-
column:
|
|
225464
|
+
line: 228,
|
|
225465
|
+
column: 15
|
|
225442
225466
|
},
|
|
225443
225467
|
end: {
|
|
225444
|
-
line:
|
|
225445
|
-
column:
|
|
225468
|
+
line: 230,
|
|
225469
|
+
column: 9
|
|
225446
225470
|
}
|
|
225447
225471
|
}],
|
|
225448
|
-
line:
|
|
225472
|
+
line: 228
|
|
225449
225473
|
},
|
|
225450
225474
|
"5": {
|
|
225451
225475
|
loc: {
|
|
225452
225476
|
start: {
|
|
225453
|
-
line:
|
|
225477
|
+
line: 234,
|
|
225454
225478
|
column: 6
|
|
225455
225479
|
},
|
|
225456
225480
|
end: {
|
|
225457
|
-
line:
|
|
225481
|
+
line: 237,
|
|
225458
225482
|
column: 7
|
|
225459
225483
|
}
|
|
225460
225484
|
},
|
|
225461
225485
|
type: "if",
|
|
225462
225486
|
locations: [{
|
|
225463
225487
|
start: {
|
|
225464
|
-
line:
|
|
225488
|
+
line: 234,
|
|
225465
225489
|
column: 6
|
|
225466
225490
|
},
|
|
225467
225491
|
end: {
|
|
225468
|
-
line:
|
|
225492
|
+
line: 237,
|
|
225469
225493
|
column: 7
|
|
225470
225494
|
}
|
|
225471
225495
|
}, {
|
|
225472
225496
|
start: {
|
|
225473
|
-
line:
|
|
225497
|
+
line: 234,
|
|
225474
225498
|
column: 6
|
|
225475
225499
|
},
|
|
225476
225500
|
end: {
|
|
225477
|
-
line:
|
|
225501
|
+
line: 237,
|
|
225478
225502
|
column: 7
|
|
225479
225503
|
}
|
|
225480
225504
|
}],
|
|
225481
|
-
line:
|
|
225505
|
+
line: 234
|
|
225482
225506
|
},
|
|
225483
225507
|
"6": {
|
|
225484
|
-
loc: {
|
|
225485
|
-
start: {
|
|
225486
|
-
line: 244,
|
|
225487
|
-
column: 45
|
|
225488
|
-
},
|
|
225489
|
-
end: {
|
|
225490
|
-
line: 244,
|
|
225491
|
-
column: 79
|
|
225492
|
-
}
|
|
225493
|
-
},
|
|
225494
|
-
type: "binary-expr",
|
|
225495
|
-
locations: [{
|
|
225496
|
-
start: {
|
|
225497
|
-
line: 244,
|
|
225498
|
-
column: 45
|
|
225499
|
-
},
|
|
225500
|
-
end: {
|
|
225501
|
-
line: 244,
|
|
225502
|
-
column: 56
|
|
225503
|
-
}
|
|
225504
|
-
}, {
|
|
225505
|
-
start: {
|
|
225506
|
-
line: 244,
|
|
225507
|
-
column: 60
|
|
225508
|
-
},
|
|
225509
|
-
end: {
|
|
225510
|
-
line: 244,
|
|
225511
|
-
column: 79
|
|
225512
|
-
}
|
|
225513
|
-
}],
|
|
225514
|
-
line: 244
|
|
225515
|
-
},
|
|
225516
|
-
"7": {
|
|
225517
225508
|
loc: {
|
|
225518
225509
|
start: {
|
|
225519
225510
|
line: 261,
|
|
@@ -225546,7 +225537,7 @@ var cov_41uwsnrpn = function () {
|
|
|
225546
225537
|
}],
|
|
225547
225538
|
line: 261
|
|
225548
225539
|
},
|
|
225549
|
-
"
|
|
225540
|
+
"7": {
|
|
225550
225541
|
loc: {
|
|
225551
225542
|
start: {
|
|
225552
225543
|
line: 275,
|
|
@@ -225636,7 +225627,8 @@ var cov_41uwsnrpn = function () {
|
|
|
225636
225627
|
"11": 0,
|
|
225637
225628
|
"12": 0,
|
|
225638
225629
|
"13": 0,
|
|
225639
|
-
"14": 0
|
|
225630
|
+
"14": 0,
|
|
225631
|
+
"15": 0
|
|
225640
225632
|
},
|
|
225641
225633
|
b: {
|
|
225642
225634
|
"0": [0, 0],
|
|
@@ -225646,8 +225638,7 @@ var cov_41uwsnrpn = function () {
|
|
|
225646
225638
|
"4": [0, 0],
|
|
225647
225639
|
"5": [0, 0],
|
|
225648
225640
|
"6": [0, 0],
|
|
225649
|
-
"7": [0, 0]
|
|
225650
|
-
"8": [0, 0]
|
|
225641
|
+
"7": [0, 0]
|
|
225651
225642
|
},
|
|
225652
225643
|
inputSourceMap: {
|
|
225653
225644
|
version: 3,
|
|
@@ -225656,10 +225647,10 @@ var cov_41uwsnrpn = function () {
|
|
|
225656
225647
|
mappings: ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyJA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA",
|
|
225657
225648
|
file: "NewProjectModal.vue",
|
|
225658
225649
|
sourceRoot: "src/components/projects",
|
|
225659
|
-
sourcesContent: ["<template>\n <base-modal\n :show-modal=\"showModal\"\n max-width=\"800px\"\n @close-modal=\"closeModal\"\n >\n <template v-slot:title>Create Project</template>\n\n <template v-slot:content>\n <v-container\n class=\"pa-0\"\n >\n <v-row>\n <v-col cols=\"16\">\n <v-text-field\n ref=\"title\"\n v-model=\"project.title\"\n :v-show=\"showModal\"\n :rules=\"[rules.required]\"\n :error-messages=\"errorMessages.title\"\n label=\"Project Title\"\n data-test=\"new-project-title-input\"\n class=\"pt-6\"\n @keyup.enter=\"submit\"\n />\n </v-col>\n </v-row>\n\n <div\n v-show=\"showOptionalFields\"\n class=\"pa-0\"\n >\n <v-row>\n <v-col cols=\"16\">\n <v-text-field\n ref=\"shortTitle\"\n v-model=\"project.shortTitle\"\n :rules=\"[rules.unicode, rules.min10]\"\n :error-messages=\"errorMessages.short_title\"\n label=\"Project Short Title\"\n data-test=\"new-project-short-input\"\n counter\n dense\n maxlength=\"30\"\n hint=\"Think of the objective of the project.\"\n />\n </v-col>\n </v-row>\n\n <v-row>\n <v-col cols=\"16\">\n <v-select\n ref=\"group\"\n v-model=\"project.group\"\n :items=\"groups\"\n return-object\n item-text=\"slug\"\n label=\"Group\"\n dense\n data-test=\"new-project-groups-input\"\n />\n </v-col>\n </v-row>\n <v-row>\n <v-col cols=\"16\">\n <user-search-input\n ref=\"principalInvestigator\"\n :model=\"project\"\n :rules=\"[rules.email]\"\n :error-messages=\"errorMessages.principal_investigator\"\n field=\"principalInvestigator\"\n label=\"Principal Investigator\"\n data-test=\"new-project-pi-input\"\n hint=\"Laboratory head or principal investigator\"\n dense\n @update-value=\"updateValue\"\n />\n </v-col>\n </v-row>\n\n <v-row>\n <v-col cols=\"16\">\n <user-search-input\n ref=\"owner\"\n :model=\"project\"\n :rules=\"[rules.email]\"\n :error-messages=\"errorMessages.owner\"\n field=\"owner\"\n label=\"Project Owner\"\n data-test=\"new-project-owner-input\"\n hint=\"Who deals with the nitty-gritty of the project\"\n dense\n @update-value=\"updateValue\"\n />\n </v-col>\n </v-row>\n\n <v-row>\n <v-col cols=\"16\">\n <user-search-input\n ref=\"coordinator\"\n :model=\"project\"\n :rules=\"[rules.email]\"\n :error-messages=\"errorMessages.coordinator\"\n field=\"coordinator\"\n label=\"Coordinator\"\n data-test=\"new-project-coord-input\"\n hint=\"Project manager or coordinator\"\n dense\n @update-value=\"updateValue\"\n />\n </v-col>\n </v-row>\n\n <v-row>\n <v-col cols=\"16\">\n <user-search-input\n ref=\"analyst\"\n :model=\"project\"\n :rules=\"[rules.email]\"\n :error-messages=\"errorMessages.analyst\"\n field=\"analyst\"\n label=\"Data Analyst\"\n data-test=\"new-project-analyst-input\"\n hint=\"Person responsible for the data analysis\"\n @update-value=\"updateValue\"\n />\n </v-col>\n </v-row>\n </div>\n\n </v-container>\n </template>\n\n <template v-slot:footer-actions>\n <v-btn\n color=\"primary darken-1\"\n data-test=\"new-project-optional-btn\"\n text\n @click=\"toggleOptionalFields\"\n >Optional Fields</v-btn>\n\n <v-btn\n color=\"primary darken-1\"\n data-test=\"new-project-create-btn\"\n text\n @click=\"submit\"\n >Create</v-btn>\n </template>\n </base-modal>\n</template>\n\n<script>\nimport has from 'lodash/has'\n\nimport BaseModal from '@/components/base/BaseModal.vue'\nimport GroupSearchInput from '@/components/projects/GroupSearchInput'\nimport UserSearchInput from '@/components/projects/UserSearchInput'\nimport rules from '@/utils/rules'\nimport { createRecord, fetchListRecords } from '@/utils/api'\nimport { SHOW_ALERT } from '@/store/actions/alert'\nimport { SHOW_PANEL } from '@/store/actions/panels'\n\nexport default {\n name: 'NewProjectModal',\n components: {\n BaseModal,\n GroupSearchInput,\n UserSearchInput\n },\n props: {\n showModal: {\n type: Boolean,\n default: false,\n required: true\n },\n projects: {\n type: Array,\n default: () => []\n }\n },\n data() {\n return {\n isLoading: false,\n errorMessages: {},\n formHasErrors: false,\n fieldsToValidate: [\n 'title',\n 'shortTitle',\n 'group',\n 'principalInvestigator',\n 'owner',\n 'coordinator',\n 'analyst'\n ],\n groups: [],\n project: {},\n refs: {},\n rules,\n showOptionalFields: false,\n users: [],\n usersQuery: ''\n }\n },\n watch: {\n showModal(value) {\n if (value) {\n // ensure autofocus: https://github.com/vuetifyjs/vuetify/issues/1587\n if (this.$refs.title) {\n this.$nextTick(this.$refs.title.focus)\n
|
|
225650
|
+
sourcesContent: ["<template>\n <base-modal\n :show-modal=\"showModal\"\n max-width=\"800px\"\n @close-modal=\"closeModal\"\n >\n <template v-slot:title>Create Project</template>\n\n <template v-slot:content>\n <v-container\n class=\"pa-0\"\n >\n <v-row>\n <v-col cols=\"16\">\n <v-text-field\n ref=\"title\"\n v-model=\"project.title\"\n :v-show=\"showModal\"\n :rules=\"[rules.required]\"\n :error-messages=\"errorMessages.title\"\n label=\"Project Title\"\n data-test=\"new-project-title-input\"\n class=\"pt-6\"\n @keyup.enter=\"submit\"\n />\n </v-col>\n </v-row>\n\n <div\n v-show=\"showOptionalFields\"\n class=\"pa-0\"\n >\n <v-row>\n <v-col cols=\"16\">\n <v-text-field\n ref=\"shortTitle\"\n v-model=\"project.shortTitle\"\n :rules=\"[rules.unicode, rules.min10]\"\n :error-messages=\"errorMessages.short_title\"\n label=\"Project Short Title\"\n data-test=\"new-project-short-input\"\n counter\n dense\n maxlength=\"30\"\n hint=\"Think of the objective of the project.\"\n />\n </v-col>\n </v-row>\n\n <v-row>\n <v-col cols=\"16\">\n <v-select\n ref=\"group\"\n v-model=\"project.group\"\n :items=\"groups\"\n return-object\n item-text=\"slug\"\n label=\"Group\"\n dense\n data-test=\"new-project-groups-input\"\n />\n </v-col>\n </v-row>\n <v-row>\n <v-col cols=\"16\">\n <user-search-input\n ref=\"principalInvestigator\"\n :model=\"project\"\n :rules=\"[rules.email]\"\n :error-messages=\"errorMessages.principal_investigator\"\n field=\"principalInvestigator\"\n label=\"Principal Investigator\"\n data-test=\"new-project-pi-input\"\n hint=\"Laboratory head or principal investigator\"\n dense\n @update-value=\"updateValue\"\n />\n </v-col>\n </v-row>\n\n <v-row>\n <v-col cols=\"16\">\n <user-search-input\n ref=\"owner\"\n :model=\"project\"\n :rules=\"[rules.email]\"\n :error-messages=\"errorMessages.owner\"\n field=\"owner\"\n label=\"Project Owner\"\n data-test=\"new-project-owner-input\"\n hint=\"Who deals with the nitty-gritty of the project\"\n dense\n @update-value=\"updateValue\"\n />\n </v-col>\n </v-row>\n\n <v-row>\n <v-col cols=\"16\">\n <user-search-input\n ref=\"coordinator\"\n :model=\"project\"\n :rules=\"[rules.email]\"\n :error-messages=\"errorMessages.coordinator\"\n field=\"coordinator\"\n label=\"Coordinator\"\n data-test=\"new-project-coord-input\"\n hint=\"Project manager or coordinator\"\n dense\n @update-value=\"updateValue\"\n />\n </v-col>\n </v-row>\n\n <v-row>\n <v-col cols=\"16\">\n <user-search-input\n ref=\"analyst\"\n :model=\"project\"\n :rules=\"[rules.email]\"\n :error-messages=\"errorMessages.analyst\"\n field=\"analyst\"\n label=\"Data Analyst\"\n data-test=\"new-project-analyst-input\"\n hint=\"Person responsible for the data analysis\"\n @update-value=\"updateValue\"\n />\n </v-col>\n </v-row>\n </div>\n\n </v-container>\n </template>\n\n <template v-slot:footer-actions>\n <v-btn\n color=\"primary darken-1\"\n data-test=\"new-project-optional-btn\"\n text\n @click=\"toggleOptionalFields\"\n >Optional Fields</v-btn>\n\n <v-btn\n color=\"primary darken-1\"\n data-test=\"new-project-create-btn\"\n text\n @click=\"submit\"\n >Create</v-btn>\n </template>\n </base-modal>\n</template>\n\n<script>\nimport has from 'lodash/has'\n\nimport BaseModal from '@/components/base/BaseModal.vue'\nimport GroupSearchInput from '@/components/projects/GroupSearchInput'\nimport UserSearchInput from '@/components/projects/UserSearchInput'\nimport rules from '@/utils/rules'\nimport { createRecord, fetchListRecords } from '@/utils/api'\nimport { SHOW_ALERT } from '@/store/actions/alert'\nimport { SHOW_PANEL } from '@/store/actions/panels'\n\nexport default {\n name: 'NewProjectModal',\n components: {\n BaseModal,\n GroupSearchInput,\n UserSearchInput\n },\n props: {\n showModal: {\n type: Boolean,\n default: false,\n required: true\n },\n projects: {\n type: Array,\n default: () => []\n }\n },\n data() {\n return {\n isLoading: false,\n errorMessages: {},\n formHasErrors: false,\n fieldsToValidate: [\n 'title',\n 'shortTitle',\n 'group',\n 'principalInvestigator',\n 'owner',\n 'coordinator',\n 'analyst'\n ],\n groups: [],\n project: {},\n refs: {},\n rules,\n showOptionalFields: false,\n users: [],\n usersQuery: ''\n }\n },\n watch: {\n showModal(value) {\n if (value) {\n this.fetchGroups()\n // ensure autofocus: https://github.com/vuetifyjs/vuetify/issues/1587\n if (this.$refs.title) {\n this.$nextTick(this.$refs.title.focus)\n this.resetForm()\n }\n }\n }\n },\n updated() {\n this.attachFieldRefs()\n },\n methods: {\n attachFieldRefs() {\n // Map all local and nested inputs to local 'refs' object\n this.fieldsToValidate.forEach(field => {\n if (has(this.$refs[field], 'reset')) {\n this.refs[field] = this.$refs[field]\n } else if (has(this.$refs[field], '$refs.userSearchInput.reset')) {\n this.refs[field] = this.$refs[field].$refs.userSearchInput\n } else if (has(this.$refs[field], '$refs.groupSearchInput.reset')) {\n this.refs[field] = this.$refs[field].$refs.groupSearchInput\n }\n })\n },\n async fetchGroups() {\n if (!this.groups.length) {\n const response = await fetchListRecords('groups')\n this.groups = response.results\n }\n },\n toggleOptionalFields() {\n this.showOptionalFields = !this.showOptionalFields\n this.$nextTick(this.$refs.title.focus)\n this.$nextTick(this.$refs.title.resetValidation)\n },\n resetForm() {\n this.formHasErrors = false\n this.fieldsToValidate.forEach(field => this.refs[field].reset())\n },\n closeModal() {\n this.resetForm()\n this.$emit('close-modal')\n },\n updateValue(data) {\n this.project = {\n ...this.project,\n ...data\n }\n },\n async submit() {\n this.formHasErrors = false\n this.fieldsToValidate.forEach(field => this.refs[field].validate(true))\n if (!this.formHasErrors) {\n createRecord('projects', this.project)\n .then(response => {\n const projectId = this.$get(response, 'pk', '')\n this.$store.dispatch(SHOW_ALERT, {\n message: `Project ${projectId} was succesfully created.`\n })\n\n this.$store.dispatch(SHOW_PANEL, {\n project: projectId\n })\n this.closeModal()\n })\n .catch(error => {\n if (error.response) {\n this.errorMessages = error.response.data\n this.$store.dispatch(SHOW_ALERT, {\n error: 'The project could not be created. Please try again.'\n })\n }\n })\n }\n }\n }\n}\n</script>\n\n<style lang=\"scss\">\n.v-expansion-panel__header {\n padding: 5px !important;\n}\n</style>\n"]
|
|
225660
225651
|
},
|
|
225661
225652
|
_coverageSchema: "43e27e138ebf9cfc5966b082cf9a028302ed4184",
|
|
225662
|
-
hash: "
|
|
225653
|
+
hash: "39bf82dbca3de1e3096f5011f5bbc47921642eb4"
|
|
225663
225654
|
};
|
|
225664
225655
|
var coverage = global[gcv] || (global[gcv] = {});
|
|
225665
225656
|
|
|
@@ -225889,63 +225880,67 @@ function NewProjectModalvue_type_script_lang_js_asyncToGenerator(fn) { return fu
|
|
|
225889
225880
|
if (value) {
|
|
225890
225881
|
cov_41uwsnrpn.b[0][0]++;
|
|
225891
225882
|
cov_41uwsnrpn.s[3]++;
|
|
225883
|
+
this.fetchGroups(); // ensure autofocus: https://github.com/vuetifyjs/vuetify/issues/1587
|
|
225884
|
+
|
|
225885
|
+
cov_41uwsnrpn.s[4]++;
|
|
225892
225886
|
|
|
225893
|
-
// ensure autofocus: https://github.com/vuetifyjs/vuetify/issues/1587
|
|
225894
225887
|
if (this.$refs.title) {
|
|
225895
225888
|
cov_41uwsnrpn.b[1][0]++;
|
|
225896
|
-
cov_41uwsnrpn.s[
|
|
225889
|
+
cov_41uwsnrpn.s[5]++;
|
|
225897
225890
|
this.$nextTick(this.$refs.title.focus);
|
|
225891
|
+
cov_41uwsnrpn.s[6]++;
|
|
225892
|
+
this.resetForm();
|
|
225898
225893
|
} else {
|
|
225899
225894
|
cov_41uwsnrpn.b[1][1]++;
|
|
225900
225895
|
}
|
|
225901
|
-
|
|
225902
|
-
cov_41uwsnrpn.s[5]++;
|
|
225903
|
-
this.fetchGroups();
|
|
225904
|
-
cov_41uwsnrpn.s[6]++;
|
|
225905
|
-
this.resetForm();
|
|
225906
225896
|
} else {
|
|
225907
225897
|
cov_41uwsnrpn.b[0][1]++;
|
|
225908
225898
|
}
|
|
225909
225899
|
}
|
|
225910
225900
|
},
|
|
225911
|
-
|
|
225912
|
-
var _this = this;
|
|
225913
|
-
|
|
225901
|
+
updated: function updated() {
|
|
225914
225902
|
cov_41uwsnrpn.f[3]++;
|
|
225915
225903
|
cov_41uwsnrpn.s[7]++;
|
|
225916
|
-
|
|
225917
|
-
|
|
225904
|
+
this.attachFieldRefs();
|
|
225905
|
+
},
|
|
225906
|
+
methods: {
|
|
225907
|
+
attachFieldRefs: function attachFieldRefs() {
|
|
225908
|
+
var _this = this;
|
|
225909
|
+
|
|
225918
225910
|
cov_41uwsnrpn.f[4]++;
|
|
225919
225911
|
cov_41uwsnrpn.s[8]++;
|
|
225920
|
-
|
|
225921
|
-
|
|
225922
|
-
cov_41uwsnrpn.
|
|
225912
|
+
// Map all local and nested inputs to local 'refs' object
|
|
225913
|
+
this.fieldsToValidate.forEach(function (field) {
|
|
225914
|
+
cov_41uwsnrpn.f[5]++;
|
|
225923
225915
|
cov_41uwsnrpn.s[9]++;
|
|
225924
|
-
_this.refs[field] = _this.$refs[field];
|
|
225925
|
-
} else {
|
|
225926
|
-
cov_41uwsnrpn.b[2][1]++;
|
|
225927
|
-
cov_41uwsnrpn.s[10]++;
|
|
225928
225916
|
|
|
225929
|
-
if (has_default()(_this.$refs[field], '
|
|
225930
|
-
cov_41uwsnrpn.b[
|
|
225931
|
-
cov_41uwsnrpn.s[
|
|
225932
|
-
_this.refs[field] = _this.$refs[field]
|
|
225917
|
+
if (has_default()(_this.$refs[field], 'reset')) {
|
|
225918
|
+
cov_41uwsnrpn.b[2][0]++;
|
|
225919
|
+
cov_41uwsnrpn.s[10]++;
|
|
225920
|
+
_this.refs[field] = _this.$refs[field];
|
|
225933
225921
|
} else {
|
|
225934
|
-
cov_41uwsnrpn.b[
|
|
225935
|
-
cov_41uwsnrpn.s[
|
|
225922
|
+
cov_41uwsnrpn.b[2][1]++;
|
|
225923
|
+
cov_41uwsnrpn.s[11]++;
|
|
225936
225924
|
|
|
225937
|
-
if (has_default()(_this.$refs[field], '$refs.
|
|
225938
|
-
cov_41uwsnrpn.b[
|
|
225939
|
-
cov_41uwsnrpn.s[
|
|
225940
|
-
_this.refs[field] = _this.$refs[field].$refs.
|
|
225925
|
+
if (has_default()(_this.$refs[field], '$refs.userSearchInput.reset')) {
|
|
225926
|
+
cov_41uwsnrpn.b[3][0]++;
|
|
225927
|
+
cov_41uwsnrpn.s[12]++;
|
|
225928
|
+
_this.refs[field] = _this.$refs[field].$refs.userSearchInput;
|
|
225941
225929
|
} else {
|
|
225942
|
-
cov_41uwsnrpn.b[
|
|
225930
|
+
cov_41uwsnrpn.b[3][1]++;
|
|
225931
|
+
cov_41uwsnrpn.s[13]++;
|
|
225932
|
+
|
|
225933
|
+
if (has_default()(_this.$refs[field], '$refs.groupSearchInput.reset')) {
|
|
225934
|
+
cov_41uwsnrpn.b[4][0]++;
|
|
225935
|
+
cov_41uwsnrpn.s[14]++;
|
|
225936
|
+
_this.refs[field] = _this.$refs[field].$refs.groupSearchInput;
|
|
225937
|
+
} else {
|
|
225938
|
+
cov_41uwsnrpn.b[4][1]++;
|
|
225939
|
+
}
|
|
225943
225940
|
}
|
|
225944
225941
|
}
|
|
225945
|
-
}
|
|
225946
|
-
}
|
|
225947
|
-
},
|
|
225948
|
-
methods: {
|
|
225942
|
+
});
|
|
225943
|
+
},
|
|
225949
225944
|
fetchGroups: function () {
|
|
225950
225945
|
var _fetchGroups = NewProjectModalvue_type_script_lang_js_asyncToGenerator( /*#__PURE__*/regenerator_default.a.mark(function _callee() {
|
|
225951
225946
|
var response;
|
|
@@ -225953,8 +225948,8 @@ function NewProjectModalvue_type_script_lang_js_asyncToGenerator(fn) { return fu
|
|
|
225953
225948
|
while (1) {
|
|
225954
225949
|
switch (_context.prev = _context.next) {
|
|
225955
225950
|
case 0:
|
|
225956
|
-
cov_41uwsnrpn.f[
|
|
225957
|
-
cov_41uwsnrpn.s[
|
|
225951
|
+
cov_41uwsnrpn.f[6]++;
|
|
225952
|
+
cov_41uwsnrpn.s[15]++;
|
|
225958
225953
|
|
|
225959
225954
|
if (this.groups.length) {
|
|
225960
225955
|
_context.next = 12;
|
|
@@ -225962,13 +225957,13 @@ function NewProjectModalvue_type_script_lang_js_asyncToGenerator(fn) { return fu
|
|
|
225962
225957
|
}
|
|
225963
225958
|
|
|
225964
225959
|
cov_41uwsnrpn.b[5][0]++;
|
|
225965
|
-
cov_41uwsnrpn.s[
|
|
225960
|
+
cov_41uwsnrpn.s[16]++;
|
|
225966
225961
|
_context.next = 7;
|
|
225967
225962
|
return fetchListRecords('groups');
|
|
225968
225963
|
|
|
225969
225964
|
case 7:
|
|
225970
225965
|
response = _context.sent;
|
|
225971
|
-
cov_41uwsnrpn.s[
|
|
225966
|
+
cov_41uwsnrpn.s[17]++;
|
|
225972
225967
|
this.groups = response.results;
|
|
225973
225968
|
_context.next = 13;
|
|
225974
225969
|
break;
|
|
@@ -225991,101 +225986,98 @@ function NewProjectModalvue_type_script_lang_js_asyncToGenerator(fn) { return fu
|
|
|
225991
225986
|
return fetchGroups;
|
|
225992
225987
|
}(),
|
|
225993
225988
|
toggleOptionalFields: function toggleOptionalFields() {
|
|
225994
|
-
cov_41uwsnrpn.f[
|
|
225995
|
-
cov_41uwsnrpn.s[17]++;
|
|
225996
|
-
this.showOptionalFields = !this.showOptionalFields;
|
|
225989
|
+
cov_41uwsnrpn.f[7]++;
|
|
225997
225990
|
cov_41uwsnrpn.s[18]++;
|
|
225998
|
-
this
|
|
225991
|
+
this.showOptionalFields = !this.showOptionalFields;
|
|
225999
225992
|
cov_41uwsnrpn.s[19]++;
|
|
225993
|
+
this.$nextTick(this.$refs.title.focus);
|
|
225994
|
+
cov_41uwsnrpn.s[20]++;
|
|
226000
225995
|
this.$nextTick(this.$refs.title.resetValidation);
|
|
226001
225996
|
},
|
|
226002
225997
|
resetForm: function resetForm() {
|
|
226003
|
-
|
|
226004
|
-
|
|
226005
|
-
var _ref = (cov_41uwsnrpn.s[20]++, this),
|
|
226006
|
-
refs = _ref.refs;
|
|
225998
|
+
var _this2 = this;
|
|
226007
225999
|
|
|
226000
|
+
cov_41uwsnrpn.f[8]++;
|
|
226008
226001
|
cov_41uwsnrpn.s[21]++;
|
|
226009
226002
|
this.formHasErrors = false;
|
|
226010
226003
|
cov_41uwsnrpn.s[22]++;
|
|
226011
226004
|
this.fieldsToValidate.forEach(function (field) {
|
|
226012
|
-
cov_41uwsnrpn.f[
|
|
226005
|
+
cov_41uwsnrpn.f[9]++;
|
|
226013
226006
|
cov_41uwsnrpn.s[23]++;
|
|
226014
|
-
return
|
|
226007
|
+
return _this2.refs[field].reset();
|
|
226015
226008
|
});
|
|
226016
226009
|
},
|
|
226017
226010
|
closeModal: function closeModal() {
|
|
226018
|
-
cov_41uwsnrpn.f[
|
|
226011
|
+
cov_41uwsnrpn.f[10]++;
|
|
226019
226012
|
cov_41uwsnrpn.s[24]++;
|
|
226020
226013
|
this.resetForm();
|
|
226021
226014
|
cov_41uwsnrpn.s[25]++;
|
|
226022
226015
|
this.$emit('close-modal');
|
|
226023
226016
|
},
|
|
226024
226017
|
updateValue: function updateValue(data) {
|
|
226025
|
-
cov_41uwsnrpn.f[
|
|
226018
|
+
cov_41uwsnrpn.f[11]++;
|
|
226026
226019
|
cov_41uwsnrpn.s[26]++;
|
|
226027
226020
|
this.project = NewProjectModalvue_type_script_lang_js_objectSpread(NewProjectModalvue_type_script_lang_js_objectSpread({}, this.project), data);
|
|
226028
226021
|
},
|
|
226029
226022
|
submit: function () {
|
|
226030
226023
|
var _submit = NewProjectModalvue_type_script_lang_js_asyncToGenerator( /*#__PURE__*/regenerator_default.a.mark(function _callee2() {
|
|
226031
|
-
var
|
|
226024
|
+
var _this3 = this;
|
|
226032
226025
|
|
|
226033
226026
|
return regenerator_default.a.wrap(function _callee2$(_context2) {
|
|
226034
226027
|
while (1) {
|
|
226035
226028
|
switch (_context2.prev = _context2.next) {
|
|
226036
226029
|
case 0:
|
|
226037
|
-
cov_41uwsnrpn.f[
|
|
226030
|
+
cov_41uwsnrpn.f[12]++;
|
|
226038
226031
|
cov_41uwsnrpn.s[27]++;
|
|
226039
226032
|
this.formHasErrors = false;
|
|
226040
226033
|
cov_41uwsnrpn.s[28]++;
|
|
226041
226034
|
this.fieldsToValidate.forEach(function (field) {
|
|
226042
|
-
cov_41uwsnrpn.f[
|
|
226035
|
+
cov_41uwsnrpn.f[13]++;
|
|
226043
226036
|
cov_41uwsnrpn.s[29]++;
|
|
226044
|
-
|
|
226045
|
-
_this2.refs[field].validate(true);
|
|
226037
|
+
return _this3.refs[field].validate(true);
|
|
226046
226038
|
});
|
|
226047
226039
|
cov_41uwsnrpn.s[30]++;
|
|
226048
226040
|
|
|
226049
226041
|
if (!this.formHasErrors) {
|
|
226050
|
-
cov_41uwsnrpn.b[
|
|
226042
|
+
cov_41uwsnrpn.b[6][0]++;
|
|
226051
226043
|
cov_41uwsnrpn.s[31]++;
|
|
226052
226044
|
createRecord('projects', this.project).then(function (response) {
|
|
226053
|
-
cov_41uwsnrpn.f[
|
|
226054
|
-
var projectId = (cov_41uwsnrpn.s[32]++,
|
|
226045
|
+
cov_41uwsnrpn.f[14]++;
|
|
226046
|
+
var projectId = (cov_41uwsnrpn.s[32]++, _this3.$get(response, 'pk', ''));
|
|
226055
226047
|
cov_41uwsnrpn.s[33]++;
|
|
226056
226048
|
|
|
226057
|
-
|
|
226049
|
+
_this3.$store.dispatch(SHOW_ALERT, {
|
|
226058
226050
|
message: "Project ".concat(projectId, " was succesfully created.")
|
|
226059
226051
|
});
|
|
226060
226052
|
|
|
226061
226053
|
cov_41uwsnrpn.s[34]++;
|
|
226062
226054
|
|
|
226063
|
-
|
|
226055
|
+
_this3.$store.dispatch(SHOW_PANEL, {
|
|
226064
226056
|
project: projectId
|
|
226065
226057
|
});
|
|
226066
226058
|
|
|
226067
226059
|
cov_41uwsnrpn.s[35]++;
|
|
226068
226060
|
|
|
226069
|
-
|
|
226061
|
+
_this3.closeModal();
|
|
226070
226062
|
}).catch(function (error) {
|
|
226071
|
-
cov_41uwsnrpn.f[
|
|
226063
|
+
cov_41uwsnrpn.f[15]++;
|
|
226072
226064
|
cov_41uwsnrpn.s[36]++;
|
|
226073
226065
|
|
|
226074
226066
|
if (error.response) {
|
|
226075
|
-
cov_41uwsnrpn.b[
|
|
226067
|
+
cov_41uwsnrpn.b[7][0]++;
|
|
226076
226068
|
cov_41uwsnrpn.s[37]++;
|
|
226077
|
-
|
|
226069
|
+
_this3.errorMessages = error.response.data;
|
|
226078
226070
|
cov_41uwsnrpn.s[38]++;
|
|
226079
226071
|
|
|
226080
|
-
|
|
226072
|
+
_this3.$store.dispatch(SHOW_ALERT, {
|
|
226081
226073
|
error: 'The project could not be created. Please try again.'
|
|
226082
226074
|
});
|
|
226083
226075
|
} else {
|
|
226084
|
-
cov_41uwsnrpn.b[
|
|
226076
|
+
cov_41uwsnrpn.b[7][1]++;
|
|
226085
226077
|
}
|
|
226086
226078
|
});
|
|
226087
226079
|
} else {
|
|
226088
|
-
cov_41uwsnrpn.b[
|
|
226080
|
+
cov_41uwsnrpn.b[6][1]++;
|
|
226089
226081
|
}
|
|
226090
226082
|
|
|
226091
226083
|
case 7:
|
|
@@ -226120,8 +226112,8 @@ var NewProjectModalvue_type_style_index_0_lang_scss_ = __webpack_require__("9434
|
|
|
226120
226112
|
|
|
226121
226113
|
var NewProjectModal_component = normalizeComponent(
|
|
226122
226114
|
projects_NewProjectModalvue_type_script_lang_js_,
|
|
226123
|
-
|
|
226124
|
-
|
|
226115
|
+
NewProjectModalvue_type_template_id_070ec06c_render,
|
|
226116
|
+
NewProjectModalvue_type_template_id_070ec06c_staticRenderFns,
|
|
226125
226117
|
false,
|
|
226126
226118
|
null,
|
|
226127
226119
|
null,
|
|
@@ -243678,8 +243670,8 @@ var BaseTabs_component = normalizeComponent(
|
|
|
243678
243670
|
)
|
|
243679
243671
|
|
|
243680
243672
|
/* harmony default export */ var BaseTabs = (BaseTabs_component.exports);
|
|
243681
|
-
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"d220a428-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/table/DataTable.vue?vue&type=template&id=
|
|
243682
|
-
var
|
|
243673
|
+
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"d220a428-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/table/DataTable.vue?vue&type=template&id=31c65eb2&
|
|
243674
|
+
var DataTablevue_type_template_id_31c65eb2_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-card',{class:['isabl-base-card no-shadow', _vm.cardClasses]},[_c('base-section-title',{attrs:{"show-more":_vm.showTable},on:{"toggle-show-more":function($event){_vm.showTable = !_vm.showTable}},scopedSlots:_vm._u([{key:"title",fn:function(){return [_vm._v("\n "+_vm._s(_vm._f("capitalize")(_vm.title || _vm.model))+"\n "),(_vm.infoText)?_c('v-tooltip',{attrs:{"top":""},scopedSlots:_vm._u([{key:"activator",fn:function(ref){
|
|
243683
243675
|
var on = ref.on;
|
|
243684
243676
|
return [_c('v-icon',_vm._g({staticClass:"pl-1",staticStyle:{"cursor":"help"},attrs:{"small":"","color":"grey lighten-2"}},on),[_vm._v("\n info\n ")])]}}],null,false,2192405103)},[_c('span',{attrs:{"text-center":""}},[_vm._v(_vm._s(_vm.infoText))])]):_vm._e()]},proxy:true},{key:"actions",fn:function(){return [(_vm.items)?_c('data-table-actions',{attrs:{"model":_vm.model,"items":_vm.items,"headers":_vm.headers,"global-search":_vm.globalSearch,"query-params":_vm.queryParams},on:{"fetch-data":_vm.updateSearchText}}):_vm._e()]},proxy:true}])}),_c('v-data-table',{directives:[{name:"show",rawName:"v-show",value:(_vm.showTable),expression:"showTable"}],attrs:{"headers":_vm.headers,"items":_vm.items,"server-items-length":_vm.totalItems,"loading":_vm.loading,"items-per-page":_vm.itemsPerPage,"page":_vm.page,"footer-props":{ itemsPerPageOptions: _vm.itemsPerPageItems, itemsPerPageText: '' },"loader-height":"2","calculate-widths":"","hide-default-header":"","dense":""},on:{"update:itemsPerPage":function($event){_vm.itemsPerPage=$event},"update:items-per-page":function($event){_vm.itemsPerPage=$event},"update:page":function($event){_vm.page=$event},"page-count":function($event){_vm.pageCount = $event}},scopedSlots:_vm._u([{key:"header",fn:function(ref){
|
|
243685
243677
|
var props = ref.props;
|
|
@@ -243704,10 +243696,10 @@ return [_c('span',{class:[
|
|
|
243704
243696
|
var pageStart = ref.pageStart;
|
|
243705
243697
|
var pageStop = ref.pageStop;
|
|
243706
243698
|
return [_c('span',{staticClass:"text-body-1"},[_vm._v("\n "+_vm._s(pageStart)+" - "+_vm._s(pageStop)+" of\n "),_c('span',{staticClass:"primary--text text-h6 mx-1"},[_vm._v(_vm._s(_vm._f("formatNumber")(_vm.totalItems)))])])]}}])})],1)}
|
|
243707
|
-
var
|
|
243699
|
+
var DataTablevue_type_template_id_31c65eb2_staticRenderFns = []
|
|
243708
243700
|
|
|
243709
243701
|
|
|
243710
|
-
// CONCATENATED MODULE: ./src/components/table/DataTable.vue?vue&type=template&id=
|
|
243702
|
+
// CONCATENATED MODULE: ./src/components/table/DataTable.vue?vue&type=template&id=31c65eb2&
|
|
243711
243703
|
|
|
243712
243704
|
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"d220a428-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/table/DataTableActions.vue?vue&type=template&id=0e1da098&
|
|
243713
243705
|
var DataTableActionsvue_type_template_id_0e1da098_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-row',{staticClass:"pa-0 ma-0 float-right"},[(_vm.searchText || _vm.showSearch)?_c('transition',{attrs:{"name":"slide"}},[_c('v-form',{on:{"submit":function($event){$event.preventDefault();}}},[_c('v-text-field',{ref:"input",staticClass:"pa-0 my-0 table-filter-input",attrs:{"autofocus":true,"append-icon":_vm.searchText ? 'close' : null,"label":"Search","data-test":"table-search-input","single-line":"","hide-details":"","dense":""},on:{"click:append":function($event){_vm.searchText ? (_vm.searchText = '') : null},"keyup":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"esc",27,$event.key,["Esc","Escape"])){ return null; }_vm.searchText = ''},"blur":_vm.onSearchInputBlur},model:{value:(_vm.searchText),callback:function ($$v) {_vm.searchText=$$v},expression:"searchText"}})],1)],1):_vm._e(),_c('v-speed-dial',{staticClass:"float-right",attrs:{"direction":"bottom","color":"primary","transition":"slide-y-transition","open-on-hover":""},scopedSlots:_vm._u([{key:"activator",fn:function(){return [_c('v-btn',{staticClass:"table-action-btn",attrs:{"fab":"","x-small":"","elevation":"0","color":"transparent"},on:{"click":function($event){_vm.showSearch = !_vm.showSearch}}},[(_vm.loading)?_c('v-progress-circular',{attrs:{"width":2,"size":18,"indeterminate":"","color":"primary"}}):(_vm.showActions || _vm.showSearch)?_c('v-icon',{attrs:{"small":""}},[_vm._v("\n search\n ")]):_c('v-icon',[_vm._v("\n more_vert\n ")])],1)]},proxy:true}]),model:{value:(_vm.showActions),callback:function ($$v) {_vm.showActions=$$v},expression:"showActions"}},[_c('JsonExcel',{attrs:{"fields":_vm.jsonHeaders,"fetch":_vm.fetchAllRecords,"worksheet":_vm.model,"name":_vm.exportedFilename,"before-finish":_vm.showFinishedAlert}},[_c('v-btn',{staticClass:"table-action-btn float-right",attrs:{"fab":"","x-small":""}},[_c('v-tooltip',{attrs:{"left":""},scopedSlots:_vm._u([{key:"activator",fn:function(ref){
|
|
@@ -247625,7 +247617,7 @@ var orderBy_default = /*#__PURE__*/__webpack_require__.n(orderBy);
|
|
|
247625
247617
|
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/table/DataTable.vue?vue&type=script&lang=js&
|
|
247626
247618
|
var cov_2h6d9k0h00 = function () {
|
|
247627
247619
|
var path = "/Users/juanes/papaemmelab/isabl_web/src/components/table/DataTable.vue";
|
|
247628
|
-
var hash = "
|
|
247620
|
+
var hash = "235fafbf88a72a48e239d67dc7b99e287750338d";
|
|
247629
247621
|
var global = new Function("return this")();
|
|
247630
247622
|
var gcv = "__coverage__";
|
|
247631
247623
|
var coverageData = {
|
|
@@ -251043,10 +251035,10 @@ var cov_2h6d9k0h00 = function () {
|
|
|
251043
251035
|
mappings: ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+NA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA",
|
|
251044
251036
|
file: "DataTable.vue",
|
|
251045
251037
|
sourceRoot: "src/components/table",
|
|
251046
|
-
sourcesContent: ["<template>\n <v-card :class=\"['isabl-base-card no-shadow', cardClasses]\">\n <base-section-title\n :show-more=\"showTable\"\n @toggle-show-more=\"showTable = !showTable\"\n >\n <template v-slot:title>\n {{ title || model | capitalize }}\n <v-tooltip\n v-if=\"infoText\"\n top\n >\n <template v-slot:activator=\"{ on }\">\n <v-icon\n small\n style=\"cursor: help\"\n color=\"grey lighten-2\"\n class=\"pl-1\"\n v-on=\"on\"\n >\n info\n </v-icon>\n </template>\n <span text-center>{{ infoText }}</span>\n </v-tooltip>\n </template>\n <template v-slot:actions>\n <data-table-actions\n v-if=\"items\"\n :model=\"model\"\n :items=\"items\"\n :headers=\"headers\"\n :global-search=\"globalSearch\"\n :query-params=\"queryParams\"\n @fetch-data=\"updateSearchText\"\n />\n </template>\n </base-section-title>\n\n <v-data-table\n v-show=\"showTable\"\n :headers=\"headers\"\n :items=\"items\"\n :server-items-length=\"totalItems\"\n :loading=\"loading\"\n :items-per-page.sync=\"itemsPerPage\"\n :page.sync=\"page\"\n :footer-props=\"{ itemsPerPageOptions: itemsPerPageItems, itemsPerPageText: '' }\"\n loader-height=\"2\"\n calculate-widths\n hide-default-header\n dense\n @page-count=\"pageCount = $event\"\n >\n <template v-slot:header=\"{ props }\">\n <tr class=\"table-headers text-left table-cell py-0 font-normal\">\n <th\n v-for=\"header in props.headers\"\n :key=\"header.text\"\n :class=\"[\n 'column sortable',\n sortByColumns.includes(header.value)\n ? 'asc active'\n : '',\n sortByColumns.includes(`-${header.value}`)\n ? 'desc active'\n : ''\n ]\"\n >\n <v-hover v-slot=\"{ hover }\">\n <span\n :class=\"[\n 'font-weight-medium',\n 'grey--text',\n ]\"\n >\n {{ header.text }}\n <v-icon\n :color=\"\n hover || sortByColumns.includes(header.value) || sortByColumns.includes(`-${header.value}`)\n ? 'text--darken-2'\n : 'transparent'\n \"\n class=\"sort-icon\"\n style=\"vertical-align: middle\"\n small\n @click=\"changeSort(header.value)\"\n >arrow_downward</v-icon>\n <v-icon\n :color=\"hover ? 'text--darken-2' : 'transparent'\"\n class=\"\"\n style=\"vertical-align: middle\"\n small\n @click=\"toggleColumnFilters\"\n >filter_list</v-icon>\n </span>\n </v-hover>\n </th>\n </tr>\n <tr\n v-if=\"showFilters\"\n class=\"column-filters\"\n >\n <th\n v-for=\"header in props.headers\"\n :key=\"header.text\"\n class=\"pa-0 ma-0\"\n >\n <data-table-date-picker\n v-if=\"header.filterType === 'date'\"\n :header=\"header\"\n @filter-search=\"filterSearch\"\n />\n <data-table-select-filter\n v-else\n :header=\"header\"\n :model=\"title || model\"\n @filter-search=\"filterSearch\"\n />\n </th>\n </tr>\n </template>\n <template v-slot:item=\"attrs\">\n <tr>\n <td\n v-for=\"(header, index) in attrs.headers\"\n :key=\"index + header.verboseName\"\n class=\"text-left table-cell py-0 text-body-1\"\n >\n <!-- if value is a model(s) link -->\n <span v-if=\"header.model\">\n <span v-if=\"Array.isArray(getValue(attrs.item, header))\">\n <span\n v-for=\"(value, index) in getValue(attrs.item, header)\"\n :key=\"index\"\n class=\"active-link\"\n @click=\"onClickRecord(value, header.model)\"\n v-html=\"\n highlightText(value, header) +\n `${index + 1 < getValue(attrs.item, header).length ? ', ' : ''}`\n \"\n />\n </span>\n\n <span v-else>\n <span\n class=\"active-link\"\n @click=\"onClickRecord(getValue(attrs.item, header), header.model)\"\n v-html=\"tableValue(attrs.item, header)\"\n />\n </span>\n </span>\n\n <!-- if value is analysis' result -->\n <span\n v-else-if=\"header.field === 'status'\"\n :class=\"classValue(attrs.item, header.field)\"\n v-html=\"tableValue(attrs.item, header)\"\n />\n\n <div\n v-else-if=\"header.field === 'resultName'\"\n class=\"mr-2\"\n >\n <result-chip\n :result=\"attrs.item\"\n :result-index=\"itemsPerPage * (page - 1) + attrs.index\"\n show-all\n @display-result=\"$emit('display-result', $event)\"\n />\n </div>\n\n <span\n v-else-if=\"header.field === 'resultKey'\"\n class=\"mr-2\"\n >\n <code class=\"markdown-style\" v-html=\"tableValue(attrs.item, header)\"/>\n </span>\n\n <!-- any other case -->\n <span\n v-else\n v-html=\"tableValue(attrs.item, header)\"\n />\n </td>\n </tr>\n </template>\n\n <template v-slot:no-data>\n <td\n :colspan=\"headers.length\"\n class=\"text-left table-cell pa-0 text-body-1\"\n >{{ loading ? 'Querying records...' : errorMessage || 'No records found.' }}</td>\n </template>\n\n <template v-slot:loading>\n <td\n :colspan=\"headers.length\"\n class=\"text-left table-cell pa-0 text-body-1\"\n >Querying records...</td>\n </template>\n\n <template v-slot:no-results>\n <td\n :colspan=\"headers.length\"\n class=\"text-left table-cell pa-0 text-body-1\"\n >{{ loading ? 'Querying records...' : 'No records found.' }}</td>\n </template>\n\n <template v-slot:footer.page-text=\"{ pageStart, pageStop }\">\n <span class=\"text-body-1\">\n {{ pageStart }} - {{ pageStop }} of\n <span\n class=\"primary--text text-h6 mx-1\"\n >{{ totalItems | formatNumber }}</span>\n </span>\n </template>\n\n </v-data-table>\n </v-card>\n</template>\n\n<script>\nimport { fetchListRecords } from '@/utils/api'\nimport { SHOW_ALERT } from '@/store/actions/alert'\nimport { SHOW_PANEL } from '@/store/actions/panels'\nimport { tableColumns } from '@/utils/tableColumns'\nimport BaseSectionTitle from '@/components/base/BaseSectionTitle.vue'\nimport DataTableActions from '@/components/table/DataTableActions.vue'\nimport DataTableSelectFilter from '@/components/table/DataTableSelectFilter.vue'\nimport DataTableDatePicker from '@/components/table/DataTableDatePicker.vue'\nimport ResultChip from '@/components/analyses/ResultChip'\nimport debounce from 'lodash/debounce'\nimport isEqual from 'lodash/isEqual'\nimport orderBy from 'lodash/orderBy'\n\nexport default {\n name: 'DataTable',\n components: {\n BaseSectionTitle,\n DataTableActions,\n DataTableSelectFilter,\n DataTableDatePicker,\n ResultChip,\n },\n props: {\n model: {\n type: String,\n required: false\n },\n title: {\n type: String,\n default: ''\n },\n globalSearch: {\n type: Boolean,\n default: false\n },\n params: {\n type: Object,\n default: () => ({})\n },\n // skip columns using the verbose name\n skipColumns: {\n type: Array,\n default: () => []\n },\n // columns using the verbose name\n headersKey: {\n type: String,\n default: ''\n },\n cardClasses: {\n type: String,\n default: ''\n },\n collapse: {\n type: Boolean,\n default: false\n },\n infoText: {\n type: String,\n default: ''\n },\n openRecordsInNewTab: {\n type: Boolean,\n default: false\n },\n data: {\n type: Array,\n default: () => []\n },\n filterRemotely: {\n type: Boolean,\n default: true,\n },\n initialSort: {\n type: Array,\n default: () => [\"-pk\"]\n },\n initialItemsPerPage: {\n type: Number,\n default: 5,\n }\n },\n data() {\n return {\n items: this.filterRemotely ? [] : this.data,\n totalItems: 0,\n loading: true,\n showTable: !this.collapse,\n showFilters: false,\n\n // table params\n headers: tableColumns[this.headersKey || this.model]\n .map(col => {\n col.text = col.verboseName\n col.value = col.field\n return col\n })\n .filter(col => !this.skipColumns.includes(col.verboseName)),\n page: 1,\n pageCount: 0,\n itemsPerPage: this.initialItemsPerPage,\n itemsPerPageItems: [3, 5, 10, 25, 50, 200, 500, 5000],\n sortByColumns: this.initialSort,\n\n // query params\n limit: null,\n offset: null,\n ordering: null,\n errorMessage: null,\n searchText: '',\n filterParams: {},\n queryParams: {}\n }\n },\n watch: {\n params(newParams, oldParams) {\n if (!isEqual(newParams, oldParams)) {\n this.fetchData()\n }\n },\n page() {\n this.updateTable()\n },\n sortByColumns() {\n this.updateTable()\n },\n itemsPerPage() {\n this.updateTable()\n },\n data() {\n this.updateTable()\n }\n },\n created() {\n this.fetchData = debounce(this._fetchData, 500)\n this.updateTable()\n },\n methods: {\n changeSort(column) {\n let sort = this.sortByColumns\n\n if (sort.includes(column)) {\n // Make ordering column -> None\n sort = sort.filter(columns => columns !== column)\n } else if (sort.includes(`-${column}`)) {\n // Make ordering -column -> column\n sort = sort.filter(columns => columns !== `-${column}`)\n sort.push(column)\n } else {\n // Make ordering None -> -column\n sort.push(`-${column}`)\n }\n\n // Move pk to last if exist\n sort.push(sort.splice(sort.indexOf('pk'), 1)[0])\n sort.push(sort.splice(sort.indexOf('-pk'), 1)[0])\n\n this.sortByColumns = sort\n },\n filterSearch(value, field, filter = 'icontains') {\n field = field.split('.').join('__')\n value = Array.isArray(value) ? value.join(',') : value\n\n // Ensure only one filter per key\n this.filterParams = Object.keys(this.filterParams)\n .filter(param => {\n const filterWithSameKey = `${field}__`\n return !param.includes(filterWithSameKey)\n })\n .reduce((obj, key) => {\n obj[key] = this.filterParams[key]\n return obj\n }, {})\n\n this.filterParams[`${field}__${filter}`] = value\n this.offset = null\n this.page = 1\n this.fetchData()\n\n // Track when user makes any string search\n window.analytics.track('Filter from table column', {\n model: this.model,\n query: this.filterParams\n })\n },\n\n columnValueList(val) {\n return this.items.map(d => d[val])\n },\n\n updateSearchText(text) {\n this.searchText = text\n this.offset = null\n this.page = 1\n this.fetchData()\n\n // Track when user makes any string search\n window.analytics.track('Searched From Table', {\n model: this.model,\n search: this.searchText,\n query: this.queryParams\n })\n },\n\n tableValue(item, header) {\n let value = this.getValue(item, header)\n return this.highlightText(value, header)\n },\n\n formatValue(value) {\n return this.highlightText(value)\n },\n\n getValue(item, header) {\n return this.$get(\n item,\n header.accessor || header.field,\n header.default || '-'\n )\n },\n\n isTableSmall() {\n let tables = document.getElementsByClassName('v-datatable__actions')\n return tables && tables.length > 0 && tables[0].offsetWidth < 400\n },\n\n classValue(item, accessor) {\n let value = this.$get(item, accessor)\n .toString()\n .toLowerCase()\n return `status-${value}`\n },\n\n highlightText(rawText, header) {\n header = header.value.split('.').join('__')\n const filterParams = {\n ...this.filterParams,\n search: this.searchText\n }\n let keywords = Object.entries(filterParams)\n .filter(([key, value]) => {\n return (\n value &&\n typeof value !== 'boolean' &&\n (key === 'search' || key.replace(/(__icontains)/, '') === header)\n )\n })\n .map(([, value]) => value.toString().toLowerCase())\n\n let { text, element } = this.$getInnerHtmlText(rawText)\n let shownText = text ? text.toString().slice(0, 41) : ''\n let highlightText = shownText\n\n // Search for match of full string if not each word\n let wordsToHighlight = []\n keywords.forEach(keyword => {\n keyword = keyword.trim()\n if (keyword && shownText.toLowerCase().includes(keyword)) {\n wordsToHighlight.push(keyword)\n } else {\n keyword.split(' ').forEach(word => {\n if (word && shownText.toLowerCase().includes(word)) {\n wordsToHighlight.push(word)\n }\n })\n }\n })\n\n // Highlight the matches\n if (wordsToHighlight.length) {\n const keywordRegex = new RegExp(`(${wordsToHighlight.join('|')})`, 'gi')\n highlightText = text\n .toString()\n .replace(keywordRegex, '<span class=\"highlight\">$1</span>')\n }\n return this.$setInnerHtmlText(element, highlightText)\n },\n\n updateTable() {\n this.limit = this.itemsPerPage\n this.offset = this.itemsPerPage * (this.page - 1)\n this.ordering = this.sortByColumns.join(',')\n\n if (this.filterRemotely) {\n // Make server-side filtering\n this.fetchData()\n } else {\n // Local Items\n this.loading = true\n let rows = this.data\n\n if (this.searchText) {\n rows = rows.filter((row) =>\n Object.values(row).some((column) =>\n column.toLowerCase().includes(this.searchText.toLowerCase())\n )\n )\n }\n if (this.sortByColumns.length) {\n const columns = []\n const order = []\n this.sortByColumns.forEach(param => {\n const [first, ...rest] = param\n if (first === '-') {\n columns.push(rest.join(''))\n order.push('desc')\n } else {\n columns.push(param)\n order.push('asc')\n }\n })\n rows = orderBy(rows, columns, order)\n }\n rows = rows.slice(this.offset, this.offset + this.limit)\n this.items = rows\n this.totalItems = this.data.length\n this.pages = Math.ceil(this.totalItems / this.items)\n this.loading = false\n }\n },\n\n _fetchData() {\n this.loading = true\n const {\n model,\n limit,\n offset,\n ordering,\n params,\n filterParams,\n searchText\n } = this\n\n this.queryParams = {\n ...params,\n ...filterParams,\n limit,\n offset,\n search: searchText,\n ordering,\n }\n\n this.$emit('fetch-data', this.queryParams)\n\n fetchListRecords(model, this.queryParams)\n .then(response => {\n if (searchText === this.searchText) {\n this.items = response.results\n this.totalItems = response.count\n this.pages = Math.ceil(response.count / limit)\n this.errorMessage = response.error || ''\n }\n })\n .catch(error => {\n let errorMessage = `Search failed: `\n if (error.response) {\n const errorMessages = Object.values(error.response.data).flat()\n errorMessage += errorMessages.length ? errorMessages[0] : '...'\n }\n this.$store.dispatch(SHOW_ALERT, {\n error: errorMessage\n })\n })\n .finally(() => (this.loading = false))\n },\n\n onClickRecord(value, model) {\n if (this.openRecordsInNewTab) {\n const queryParams = {\n individual: 'bioModel',\n sample: 'bioModel',\n experiment: 'bioModel'\n }\n const queryParam = this.$get(queryParams, model, model)\n window.open(`/?${queryParam}=${value}`, '_blank')\n } else {\n this.$store.dispatch(SHOW_PANEL, {\n [model]: value\n })\n }\n },\n\n toggleColumnFilters() {\n this.showFilters = !this.showFilters\n if (!this.showFilters) {\n this.filterParams = {}\n this.fetchData()\n }\n },\n }\n}\n</script>\n\n<style lang=\"scss\">\n\n.isabl-base-card .v-data-table {\n th.column.sortable.active.desc button.sort-icon {\n transform: rotate(-180deg);\n }\n th.column.sortable.active button.sort-icon {\n color: var(--v-primary-base);\n }\n th.column.sortable button {\n font-size: 13px !important;\n margin-left: 4px;\n }\n .v-data-table__wrapper {\n max-height: 300px;\n overflow-y: auto;\n }\n .table-cell {\n height: 25px !important;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n max-width: 300px;\n padding-left: 5px !important;\n .v-chip.v-size--small {\n height: 20px;\n }\n }\n tr.table-headers.table-cell {\n position: sticky;\n top: 0;\n background: white;\n cursor: pointer;\n height: 32px;\n th {\n // border-bottom: thin solid rgba(0,0,0,.12);\n background: rgba(0,0,0,.04);\n }\n }\n &.theme--dark, &.theme--dark tr.table-headers.table-cell th {\n background: var(--v-surface-base);\n }\n &.theme--dark tr.column-filters th {\n background: var(--v-surface-base);\n }\n th.column.sortable {\n padding: 0px 5px;\n }\n tr.column-filters th {\n height: 32px;\n }\n .v-data-table__empty-wrapper>td {\n padding: 0px;\n }\n}\n\n.table-filter-input {\n min-width: 150px;\n .v-input__icon--append .v-icon {\n font-size: 14px;\n }\n input {\n font-size: 14px;\n font-weight: 400;\n padding-left: 6px !important;\n }\n label {\n font-size: 13px;\n padding-left: 6px;\n }\n}\n.column-filters {\n position: sticky;\n top: 25px;\n background: white;\n .v-select {\n margin: 0px;\n .v-input__slot, input {\n height: 25px;\n }\n .v-icon {\n font-size: 16px;\n }\n }\n .v-select__selections {\n display: contents;\n max-width: 120px;\n font-size: 14px;\n font-weight: 400;\n span {\n padding: 0px;\n }\n }\n .v-text-field .v-input__append-inner {\n padding: 0px;\n }\n}\n\n.v-list .v-list-item {\n min-height: 25px;\n .v-list-item__title {\n font-size: 14px;\n font-weight: 400;\n }\n .v-list-item__content {\n padding: 0px 10px;\n }\n}\n\ndiv.v-list--dense .v-list-item {\n min-height: 25px;\n padding: 0px;\n .v-list-item__action {\n margin: 0px;\n padding: 0px 4px;\n }\n .v-list-item__title {\n font-size: 14px;\n font-weight: 400;\n }\n .v-list-item__content {\n padding: 0px;\n }\n}\n\n.v-select-list {\n overflow: hidden;\n}\n\n.v-menu__content:not(.v-autocomplete__content) {\n .v-list__tile {\n height: 23px;\n }\n}\ntable.v-table tbody tr {\n border: 0px !important;\n}\n\ntable.v-table thead {\n tr {\n height: 30px !important;\n }\n tr.v-datatable__progress {\n height: 0px !important;\n border-top: 1px solid rgba(0, 0, 0, 0.05);\n }\n th {\n padding-left: 5px !important;\n padding-right: 5px !important;\n }\n}\n\ndiv.v-data-table__actions {\n flex-wrap: nowrap;\n &__pagination {\n width: 100%;\n min-width: 170px;\n margin: 0 10px 0 10px;\n }\n &__select {\n white-space: normal;\n overflow: hidden;\n justify-content: flex-start;\n margin-right: 5px;\n max-width: 100px;\n .v-select {\n margin-left: 25px;\n margin-right: 0px;\n margin-top: 0px;\n margin-bottom: 0px;\n }\n }\n &__range-controls {\n width: 100%;\n }\n button {\n margin: 0px;\n margin-right: 5px;\n }\n}\n\n.section-toggle {\n cursor: pointer;\n}\n\n.isabl-base-card .v-data-footer {\n font-size: 12px;\n padding: 0px;\n div.v-select__selection {\n font-size: 12px;\n }\n div.v-select {\n margin: 4px 0px 4px 16px;\n }\n}\n.v-data-footer__select\n.v-menu__content .v-list-item {\n min-height: 25px;\n font-size: 14px;\n .v-list-item__content {\n padding: 0px;\n }\n}\n// Style taken from github\ncode.markdown-style {\n padding: 0.2em 0.4em;\n margin: 0;\n font-size: 85%;\n background-color: rgba(175,184,193,0.2);\n border-radius: 6px;\n color: #24292f;\n}\n\n.v-data-table .v-data-footer {\n .v-data-footer__select {\n margin-left: 0;\n margin-right: auto;\n }\n .v-data-footer__pagination {\n margin-left: auto;\n margin-right: auto;\n }\n .v-data-footer__icons-before {\n margin-left: auto;\n margin-right: 0;\n }\n .v-data-footer__icons-after {\n margin-left: 0;\n margin-right: 0;\n }\n}\n\n</style>\n"]
|
|
251038
|
+
sourcesContent: ["<template>\n <v-card :class=\"['isabl-base-card no-shadow', cardClasses]\">\n <base-section-title\n :show-more=\"showTable\"\n @toggle-show-more=\"showTable = !showTable\"\n >\n <template v-slot:title>\n {{ title || model | capitalize }}\n <v-tooltip\n v-if=\"infoText\"\n top\n >\n <template v-slot:activator=\"{ on }\">\n <v-icon\n small\n style=\"cursor: help\"\n color=\"grey lighten-2\"\n class=\"pl-1\"\n v-on=\"on\"\n >\n info\n </v-icon>\n </template>\n <span text-center>{{ infoText }}</span>\n </v-tooltip>\n </template>\n <template v-slot:actions>\n <data-table-actions\n v-if=\"items\"\n :model=\"model\"\n :items=\"items\"\n :headers=\"headers\"\n :global-search=\"globalSearch\"\n :query-params=\"queryParams\"\n @fetch-data=\"updateSearchText\"\n />\n </template>\n </base-section-title>\n\n <v-data-table\n v-show=\"showTable\"\n :headers=\"headers\"\n :items=\"items\"\n :server-items-length=\"totalItems\"\n :loading=\"loading\"\n :items-per-page.sync=\"itemsPerPage\"\n :page.sync=\"page\"\n :footer-props=\"{ itemsPerPageOptions: itemsPerPageItems, itemsPerPageText: '' }\"\n loader-height=\"2\"\n calculate-widths\n hide-default-header\n dense\n @page-count=\"pageCount = $event\"\n >\n <template v-slot:header=\"{ props }\">\n <tr class=\"table-headers text-left table-cell py-0 font-normal\">\n <th\n v-for=\"header in props.headers\"\n :key=\"header.text\"\n :class=\"[\n 'column sortable',\n sortByColumns.includes(header.value)\n ? 'asc active'\n : '',\n sortByColumns.includes(`-${header.value}`)\n ? 'desc active'\n : ''\n ]\"\n >\n <v-hover v-slot=\"{ hover }\">\n <span\n :class=\"[\n 'font-weight-medium',\n 'grey--text',\n ]\"\n >\n {{ header.text }}\n <v-icon\n :color=\"\n hover || sortByColumns.includes(header.value) || sortByColumns.includes(`-${header.value}`)\n ? 'text--darken-2'\n : 'transparent'\n \"\n class=\"sort-icon\"\n style=\"vertical-align: middle\"\n small\n @click=\"changeSort(header.value)\"\n >arrow_downward</v-icon>\n <v-icon\n :color=\"hover ? 'text--darken-2' : 'transparent'\"\n class=\"\"\n style=\"vertical-align: middle\"\n small\n @click=\"toggleColumnFilters\"\n >filter_list</v-icon>\n </span>\n </v-hover>\n </th>\n </tr>\n <tr\n v-if=\"showFilters\"\n class=\"column-filters\"\n >\n <th\n v-for=\"header in props.headers\"\n :key=\"header.text\"\n class=\"pa-0 ma-0\"\n >\n <data-table-date-picker\n v-if=\"header.filterType === 'date'\"\n :header=\"header\"\n @filter-search=\"filterSearch\"\n />\n <data-table-select-filter\n v-else\n :header=\"header\"\n :model=\"title || model\"\n @filter-search=\"filterSearch\"\n />\n </th>\n </tr>\n </template>\n <template v-slot:item=\"attrs\">\n <tr>\n <td\n v-for=\"(header, index) in attrs.headers\"\n :key=\"index + header.verboseName\"\n class=\"text-left table-cell py-0 text-body-1\"\n >\n <!-- if value is a model(s) link -->\n <span v-if=\"header.model\">\n <span v-if=\"Array.isArray(getValue(attrs.item, header))\">\n <span\n v-for=\"(value, index) in getValue(attrs.item, header)\"\n :key=\"index\"\n class=\"active-link\"\n @click=\"onClickRecord(value, header.model)\"\n v-html=\"\n highlightText(value, header) +\n `${index + 1 < getValue(attrs.item, header).length ? ', ' : ''}`\n \"\n />\n </span>\n\n <span v-else>\n <span\n class=\"active-link\"\n @click=\"onClickRecord(getValue(attrs.item, header), header.model)\"\n v-html=\"tableValue(attrs.item, header)\"\n />\n </span>\n </span>\n\n <!-- if value is analysis' result -->\n <span\n v-else-if=\"header.field === 'status'\"\n :class=\"classValue(attrs.item, header.field)\"\n v-html=\"tableValue(attrs.item, header)\"\n />\n\n <div\n v-else-if=\"header.field === 'resultName'\"\n class=\"mr-2\"\n >\n <result-chip\n :result=\"attrs.item\"\n :result-index=\"itemsPerPage * (page - 1) + attrs.index\"\n show-all\n @display-result=\"$emit('display-result', $event)\"\n />\n </div>\n\n <span\n v-else-if=\"header.field === 'resultKey'\"\n class=\"mr-2\"\n >\n <code class=\"markdown-style\" v-html=\"tableValue(attrs.item, header)\"/>\n </span>\n\n <!-- any other case -->\n <span\n v-else\n v-html=\"tableValue(attrs.item, header)\"\n />\n </td>\n </tr>\n </template>\n\n <template v-slot:no-data>\n <td\n :colspan=\"headers.length\"\n class=\"text-left table-cell pa-0 text-body-1\"\n >{{ loading ? 'Querying records...' : errorMessage || 'No records found.' }}</td>\n </template>\n\n <template v-slot:loading>\n <td\n :colspan=\"headers.length\"\n class=\"text-left table-cell pa-0 text-body-1\"\n >Querying records...</td>\n </template>\n\n <template v-slot:no-results>\n <td\n :colspan=\"headers.length\"\n class=\"text-left table-cell pa-0 text-body-1\"\n >{{ loading ? 'Querying records...' : 'No records found.' }}</td>\n </template>\n\n <template v-slot:footer.page-text=\"{ pageStart, pageStop }\">\n <span class=\"text-body-1\">\n {{ pageStart }} - {{ pageStop }} of\n <span\n class=\"primary--text text-h6 mx-1\"\n >{{ totalItems | formatNumber }}</span>\n </span>\n </template>\n\n </v-data-table>\n </v-card>\n</template>\n\n<script>\nimport { fetchListRecords } from '@/utils/api'\nimport { SHOW_ALERT } from '@/store/actions/alert'\nimport { SHOW_PANEL } from '@/store/actions/panels'\nimport { tableColumns } from '@/utils/tableColumns'\nimport BaseSectionTitle from '@/components/base/BaseSectionTitle.vue'\nimport DataTableActions from '@/components/table/DataTableActions.vue'\nimport DataTableSelectFilter from '@/components/table/DataTableSelectFilter.vue'\nimport DataTableDatePicker from '@/components/table/DataTableDatePicker.vue'\nimport ResultChip from '@/components/analyses/ResultChip'\nimport debounce from 'lodash/debounce'\nimport isEqual from 'lodash/isEqual'\nimport orderBy from 'lodash/orderBy'\n\nexport default {\n name: 'DataTable',\n components: {\n BaseSectionTitle,\n DataTableActions,\n DataTableSelectFilter,\n DataTableDatePicker,\n ResultChip,\n },\n props: {\n model: {\n type: String,\n required: false\n },\n title: {\n type: String,\n default: ''\n },\n globalSearch: {\n type: Boolean,\n default: false\n },\n params: {\n type: Object,\n default: () => ({})\n },\n // skip columns using the verbose name\n skipColumns: {\n type: Array,\n default: () => []\n },\n // columns using the verbose name\n headersKey: {\n type: String,\n default: ''\n },\n cardClasses: {\n type: String,\n default: ''\n },\n collapse: {\n type: Boolean,\n default: false\n },\n infoText: {\n type: String,\n default: ''\n },\n openRecordsInNewTab: {\n type: Boolean,\n default: false\n },\n data: {\n type: Array,\n default: () => []\n },\n filterRemotely: {\n type: Boolean,\n default: true,\n },\n initialSort: {\n type: Array,\n default: () => [\"-pk\"]\n },\n initialItemsPerPage: {\n type: Number,\n default: 5,\n }\n },\n data() {\n return {\n items: this.filterRemotely ? [] : this.data,\n totalItems: 0,\n loading: true,\n showTable: !this.collapse,\n showFilters: false,\n\n // table params\n headers: tableColumns[this.headersKey || this.model]\n .map(col => {\n col.text = col.verboseName\n col.value = col.field\n return col\n })\n .filter(col => !this.skipColumns.includes(col.verboseName)),\n page: 1,\n pageCount: 0,\n itemsPerPage: this.initialItemsPerPage,\n itemsPerPageItems: [3, 5, 10, 25, 50, 200, 500, 5000],\n sortByColumns: this.initialSort,\n\n // query params\n limit: null,\n offset: null,\n ordering: null,\n errorMessage: null,\n searchText: '',\n filterParams: {},\n queryParams: {}\n }\n },\n watch: {\n params(newParams, oldParams) {\n if (!isEqual(newParams, oldParams)) {\n this.fetchData()\n }\n },\n page() {\n this.updateTable()\n },\n sortByColumns() {\n this.updateTable()\n },\n itemsPerPage() {\n this.updateTable()\n },\n data() {\n this.updateTable()\n }\n },\n created() {\n this.fetchData = debounce(this._fetchData, 500)\n this.updateTable()\n },\n methods: {\n changeSort(column) {\n let sort = this.sortByColumns\n\n if (sort.includes(column)) {\n // Make ordering column -> None\n sort = sort.filter(columns => columns !== column)\n } else if (sort.includes(`-${column}`)) {\n // Make ordering -column -> column\n sort = sort.filter(columns => columns !== `-${column}`)\n sort.push(column)\n } else {\n // Make ordering None -> -column\n sort.push(`-${column}`)\n }\n\n // Move pk to last if exist\n sort.push(sort.splice(sort.indexOf('pk'), 1)[0])\n sort.push(sort.splice(sort.indexOf('-pk'), 1)[0])\n\n this.sortByColumns = sort\n },\n filterSearch(value, field, filter = 'icontains') {\n field = field.split('.').join('__')\n value = Array.isArray(value) ? value.join(',') : value\n\n // Ensure only one filter per key\n this.filterParams = Object.keys(this.filterParams)\n .filter(param => {\n const filterWithSameKey = `${field}__`\n return !param.includes(filterWithSameKey)\n })\n .reduce((obj, key) => {\n obj[key] = this.filterParams[key]\n return obj\n }, {})\n\n this.filterParams[`${field}__${filter}`] = value\n this.offset = null\n this.page = 1\n this.fetchData()\n\n // Track when user makes any string search\n window.analytics.track('Filter from table column', {\n model: this.model,\n query: this.filterParams\n })\n },\n\n columnValueList(val) {\n return this.items.map(d => d[val])\n },\n\n updateSearchText(text) {\n this.searchText = text\n this.offset = null\n this.page = 1\n this.fetchData()\n\n // Track when user makes any string search\n window.analytics.track('Searched From Table', {\n model: this.model,\n search: this.searchText,\n query: this.queryParams\n })\n },\n\n tableValue(item, header) {\n let value = this.getValue(item, header)\n return this.highlightText(value, header)\n },\n\n formatValue(value) {\n return this.highlightText(value)\n },\n\n getValue(item, header) {\n return this.$get(\n item,\n header.accessor || header.field,\n header.default || '-'\n )\n },\n\n isTableSmall() {\n let tables = document.getElementsByClassName('v-datatable__actions')\n return tables && tables.length > 0 && tables[0].offsetWidth < 400\n },\n\n classValue(item, accessor) {\n let value = this.$get(item, accessor)\n .toString()\n .toLowerCase()\n return `status-${value}`\n },\n\n highlightText(rawText, header) {\n header = header.value.split('.').join('__')\n const filterParams = {\n ...this.filterParams,\n search: this.searchText\n }\n let keywords = Object.entries(filterParams)\n .filter(([key, value]) => {\n return (\n value &&\n typeof value !== 'boolean' &&\n (key === 'search' || key.replace(/(__icontains)/, '') === header)\n )\n })\n .map(([, value]) => value.toString().toLowerCase())\n\n let { text, element } = this.$getInnerHtmlText(rawText)\n let shownText = text ? text.toString().slice(0, 41) : ''\n let highlightText = shownText\n\n // Search for match of full string if not each word\n let wordsToHighlight = []\n keywords.forEach(keyword => {\n keyword = keyword.trim()\n if (keyword && shownText.toLowerCase().includes(keyword)) {\n wordsToHighlight.push(keyword)\n } else {\n keyword.split(' ').forEach(word => {\n if (word && shownText.toLowerCase().includes(word)) {\n wordsToHighlight.push(word)\n }\n })\n }\n })\n\n // Highlight the matches\n if (wordsToHighlight.length) {\n const keywordRegex = new RegExp(`(${wordsToHighlight.join('|')})`, 'gi')\n highlightText = text\n .toString()\n .replace(keywordRegex, '<span class=\"highlight\">$1</span>')\n }\n return this.$setInnerHtmlText(element, highlightText)\n },\n\n updateTable() {\n this.limit = this.itemsPerPage\n this.offset = this.itemsPerPage * (this.page - 1)\n this.ordering = this.sortByColumns.join(',')\n\n if (this.filterRemotely) {\n // Make server-side filtering\n this.fetchData()\n } else {\n // Local Items\n this.loading = true\n let rows = this.data\n\n if (this.searchText) {\n rows = rows.filter((row) =>\n Object.values(row).some((column) =>\n column.toLowerCase().includes(this.searchText.toLowerCase())\n )\n )\n }\n if (this.sortByColumns.length) {\n const columns = []\n const order = []\n this.sortByColumns.forEach(param => {\n const [first, ...rest] = param\n if (first === '-') {\n columns.push(rest.join(''))\n order.push('desc')\n } else {\n columns.push(param)\n order.push('asc')\n }\n })\n rows = orderBy(rows, columns, order)\n }\n rows = rows.slice(this.offset, this.offset + this.limit)\n this.items = rows\n this.totalItems = this.data.length\n this.pages = Math.ceil(this.totalItems / this.items)\n this.loading = false\n }\n },\n\n _fetchData() {\n this.loading = true\n const {\n model,\n limit,\n offset,\n ordering,\n params,\n filterParams,\n searchText\n } = this\n\n this.queryParams = {\n ...params,\n ...filterParams,\n limit,\n offset,\n search: searchText,\n ordering,\n }\n\n this.$emit('fetch-data', this.queryParams)\n\n fetchListRecords(model, this.queryParams)\n .then(response => {\n if (searchText === this.searchText) {\n this.items = response.results\n this.totalItems = response.count\n this.pages = Math.ceil(response.count / limit)\n this.errorMessage = response.error || ''\n }\n })\n .catch(error => {\n let errorMessage = `Search failed: `\n if (error.response) {\n const errorMessages = Object.values(error.response.data).flat()\n errorMessage += errorMessages.length ? errorMessages[0] : '...'\n }\n this.$store.dispatch(SHOW_ALERT, {\n error: errorMessage\n })\n })\n .finally(() => (this.loading = false))\n },\n\n onClickRecord(value, model) {\n if (this.openRecordsInNewTab) {\n const queryParams = {\n individual: 'bioModel',\n sample: 'bioModel',\n experiment: 'bioModel'\n }\n const queryParam = this.$get(queryParams, model, model)\n window.open(`/?${queryParam}=${value}`, '_blank')\n } else {\n this.$store.dispatch(SHOW_PANEL, {\n [model]: value\n })\n }\n },\n\n toggleColumnFilters() {\n this.showFilters = !this.showFilters\n if (!this.showFilters) {\n this.filterParams = {}\n this.fetchData()\n }\n },\n }\n}\n</script>\n\n<style lang=\"scss\">\n\n.isabl-base-card .v-data-table {\n th.column.sortable.active.desc button.sort-icon {\n transform: rotate(-180deg);\n }\n th.column.sortable.active button.sort-icon {\n color: var(--v-primary-base);\n }\n th.column.sortable button {\n font-size: 13px !important;\n margin-left: 4px;\n }\n .v-data-table__wrapper {\n max-height: 300px;\n overflow-y: auto;\n }\n .table-cell {\n height: 25px !important;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n max-width: 300px;\n padding-left: 5px !important;\n .v-chip.v-size--small {\n height: 20px;\n }\n }\n tr.table-headers.table-cell {\n position: sticky;\n top: 0;\n background: white;\n cursor: pointer;\n height: 32px;\n th {\n // border-bottom: thin solid rgba(0,0,0,.12);\n background: rgba(0,0,0,.04);\n }\n }\n &.theme--dark, &.theme--dark tr.table-headers.table-cell th {\n background: var(--v-surface-base);\n }\n &.theme--dark tr.column-filters th {\n background: var(--v-surface-base);\n }\n th.column.sortable {\n padding: 0px 5px;\n }\n tr.column-filters th {\n height: 32px;\n }\n .v-data-table__empty-wrapper>td {\n padding: 0px;\n }\n}\n\n.table-filter-input {\n min-width: 150px;\n .v-input__icon--append .v-icon {\n font-size: 14px;\n }\n input {\n font-size: 14px;\n font-weight: 400;\n padding-left: 6px !important;\n }\n label {\n font-size: 13px;\n padding-left: 6px;\n }\n}\n.column-filters {\n position: sticky;\n top: 25px;\n background: white;\n z-index: 10;\n .v-select {\n margin: 0px;\n .v-input__slot, input {\n height: 25px;\n }\n .v-icon {\n font-size: 16px;\n }\n }\n .v-select__selections {\n display: contents;\n max-width: 120px;\n font-size: 14px;\n font-weight: 400;\n span {\n padding: 0px;\n }\n }\n .v-text-field .v-input__append-inner {\n padding: 0px;\n }\n}\n\n.v-list .v-list-item {\n min-height: 25px;\n .v-list-item__title {\n font-size: 14px;\n font-weight: 400;\n }\n .v-list-item__content {\n padding: 0px 10px;\n }\n}\n\ndiv.v-list--dense .v-list-item {\n min-height: 25px;\n padding: 0px;\n .v-list-item__action {\n margin: 0px;\n padding: 0px 4px;\n }\n .v-list-item__title {\n font-size: 14px;\n font-weight: 400;\n }\n .v-list-item__content {\n padding: 0px;\n }\n}\n\n.v-select-list {\n overflow: hidden;\n}\n\n.v-menu__content:not(.v-autocomplete__content) {\n .v-list__tile {\n height: 23px;\n }\n}\ntable.v-table tbody tr {\n border: 0px !important;\n}\n\ntable.v-table thead {\n tr {\n height: 30px !important;\n }\n tr.v-datatable__progress {\n height: 0px !important;\n border-top: 1px solid rgba(0, 0, 0, 0.05);\n }\n th {\n padding-left: 5px !important;\n padding-right: 5px !important;\n }\n}\n\ndiv.v-data-table__actions {\n flex-wrap: nowrap;\n &__pagination {\n width: 100%;\n min-width: 170px;\n margin: 0 10px 0 10px;\n }\n &__select {\n white-space: normal;\n overflow: hidden;\n justify-content: flex-start;\n margin-right: 5px;\n max-width: 100px;\n .v-select {\n margin-left: 25px;\n margin-right: 0px;\n margin-top: 0px;\n margin-bottom: 0px;\n }\n }\n &__range-controls {\n width: 100%;\n }\n button {\n margin: 0px;\n margin-right: 5px;\n }\n}\n\n.section-toggle {\n cursor: pointer;\n}\n\n.isabl-base-card .v-data-footer {\n font-size: 12px;\n padding: 0px;\n div.v-select__selection {\n font-size: 12px;\n }\n div.v-select {\n margin: 4px 0px 4px 16px;\n }\n}\n.v-data-footer__select\n.v-menu__content .v-list-item {\n min-height: 25px;\n font-size: 14px;\n .v-list-item__content {\n padding: 0px;\n }\n}\n// Style taken from github\ncode.markdown-style {\n padding: 0.2em 0.4em;\n margin: 0;\n font-size: 85%;\n background-color: rgba(175,184,193,0.2);\n border-radius: 6px;\n color: #24292f;\n}\n\n.v-data-table .v-data-footer {\n .v-data-footer__select {\n margin-left: 0;\n margin-right: auto;\n }\n .v-data-footer__pagination {\n margin-left: auto;\n margin-right: auto;\n }\n .v-data-footer__icons-before {\n margin-left: auto;\n margin-right: 0;\n }\n .v-data-footer__icons-after {\n margin-left: 0;\n margin-right: 0;\n }\n}\n\n</style>\n"]
|
|
251047
251039
|
},
|
|
251048
251040
|
_coverageSchema: "43e27e138ebf9cfc5966b082cf9a028302ed4184",
|
|
251049
|
-
hash: "
|
|
251041
|
+
hash: "235fafbf88a72a48e239d67dc7b99e287750338d"
|
|
251050
251042
|
};
|
|
251051
251043
|
var coverage = global[gcv] || (global[gcv] = {});
|
|
251052
251044
|
|
|
@@ -251905,8 +251897,8 @@ var DataTablevue_type_style_index_0_lang_scss_ = __webpack_require__("7bec");
|
|
|
251905
251897
|
|
|
251906
251898
|
var DataTable_component = normalizeComponent(
|
|
251907
251899
|
table_DataTablevue_type_script_lang_js_,
|
|
251908
|
-
|
|
251909
|
-
|
|
251900
|
+
DataTablevue_type_template_id_31c65eb2_render,
|
|
251901
|
+
DataTablevue_type_template_id_31c65eb2_staticRenderFns,
|
|
251910
251902
|
false,
|
|
251911
251903
|
null,
|
|
251912
251904
|
null,
|
|
@@ -265125,12 +265117,12 @@ var ProjectPanelvue_type_template_id_7c1bc440_staticRenderFns = []
|
|
|
265125
265117
|
|
|
265126
265118
|
// CONCATENATED MODULE: ./src/components/projects/ProjectPanel.vue?vue&type=template&id=7c1bc440&
|
|
265127
265119
|
|
|
265128
|
-
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"d220a428-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/dashboard/BaseDashboard.vue?vue&type=template&id=
|
|
265129
|
-
var
|
|
265130
|
-
var
|
|
265120
|
+
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"d220a428-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/dashboard/BaseDashboard.vue?vue&type=template&id=191c4226&
|
|
265121
|
+
var BaseDashboardvue_type_template_id_191c4226_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{ref:"dashboard"},[_c('v-card',{staticClass:"isabl-base-card",attrs:{"flat":""}},[_c('dc-graph',{attrs:{"model":_vm.model,"params":_vm.params,"items":_vm.items,"figures":_vm.figures,"loading":_vm.loading,"max-records":_vm.maxRecords,"total-items":_vm.totalItems,"is-embedded":_vm.isEmbedded},on:{"set-max-records":_vm.setMaxRecords,"set-options":_vm.setOptions}})],1)],1)}
|
|
265122
|
+
var BaseDashboardvue_type_template_id_191c4226_staticRenderFns = []
|
|
265131
265123
|
|
|
265132
265124
|
|
|
265133
|
-
// CONCATENATED MODULE: ./src/components/dashboard/BaseDashboard.vue?vue&type=template&id=
|
|
265125
|
+
// CONCATENATED MODULE: ./src/components/dashboard/BaseDashboard.vue?vue&type=template&id=191c4226&
|
|
265134
265126
|
|
|
265135
265127
|
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"d220a428-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/dashboard/DcGraph.vue?vue&type=template&id=7d68029b&
|
|
265136
265128
|
var DcGraphvue_type_template_id_7d68029b_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{ref:"main",class:['main-dc', !_vm.isEmbedded ? 'px-2' : '']},[_c('div',{directives:[{name:"show",rawName:"v-show",value:(_vm.loading),expression:"loading"}],staticClass:"overlay"},[_c('v-progress-circular',{staticClass:"loading",attrs:{"width":4,"size":40,"indeterminate":"","color":"primary"}}),_c('div',{staticClass:"mt-6"},[_vm._v("loading records...")])],1),_c('transition',{attrs:{"name":"slide-fade"}},[_c('data-table',{directives:[{name:"show",rawName:"v-show",value:(_vm.showPrefilterTable),expression:"showPrefilterTable"}],attrs:{"model":_vm.model,"params":_vm.params,"open-records-in-new-tab":!_vm.isEmbedded,"title":"Import Into dashboard","info-text":"Search and filter the records you may want to import into the interactive dashboard.","card-classes":"elevation-0 pa-0 mb-12"},on:{"fetch-data":_vm.setOptions}})],1),_c('div',{directives:[{name:"observe-visibility",rawName:"v-observe-visibility",value:(_vm.onVisible),expression:"onVisible"}],staticClass:"dashboard-graphs dc-data-count",attrs:{"id":("dc-data-count-" + _vm.uuid)}},[_c('v-container',{attrs:{"fluid":""}},[_c('v-row',{staticClass:"pb-6 justify-space-between"},[_c('v-col',{staticClass:"pa-0",attrs:{"cols":"4"}},[_c('h2',{staticClass:"isabl-section-title text-left"},[_vm._v(_vm._s(_vm._f("capitalize")(_vm.title || 'Interactive Dashboard')))])]),_c('v-col',{staticClass:"text-center pa-0",attrs:{"cols":"4"}},[_c('span',{staticClass:"filter-count primary--text"}),_vm._v(" selected out of\n "),_c('span',{staticClass:"total-count primary--text"}),(_vm.totalItems && _vm.totalItems > _vm.maxRecords)?_c('span',{staticClass:"total-items"},[_vm._v("\n /\n "),_c('span',{staticClass:"primary--text"},[_c('b',[_vm._v(_vm._s(_vm._f("formatNumber")(_vm.totalItems)))])])]):_vm._e(),_vm._v("\n records\n\n "),(_vm.totalItems && _vm.totalItems > _vm.maxRecords)?_c('v-tooltip',{attrs:{"top":""},scopedSlots:_vm._u([{key:"activator",fn:function(ref){
|
|
@@ -291760,7 +291752,7 @@ var DcGraph_component = normalizeComponent(
|
|
|
291760
291752
|
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/dashboard/BaseDashboard.vue?vue&type=script&lang=js&
|
|
291761
291753
|
var cov_21s3whnekh = function () {
|
|
291762
291754
|
var path = "/Users/juanes/papaemmelab/isabl_web/src/components/dashboard/BaseDashboard.vue";
|
|
291763
|
-
var hash = "
|
|
291755
|
+
var hash = "0b4078169eae16bef6c925f7ea045fdcabd12d44";
|
|
291764
291756
|
var global = new Function("return this")();
|
|
291765
291757
|
var gcv = "__coverage__";
|
|
291766
291758
|
var coverageData = {
|
|
@@ -292652,10 +292644,10 @@ var cov_21s3whnekh = function () {
|
|
|
292652
292644
|
mappings: ";;;;;;;;;;;;;;;;;;;;AAoBA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA",
|
|
292653
292645
|
file: "BaseDashboard.vue",
|
|
292654
292646
|
sourceRoot: "src/components/dashboard",
|
|
292655
|
-
sourcesContent: ["<template>\n <div ref=\"dashboard\">\n <v-card flat class=\"isabl-base-card\">\n <dc-graph\n :model=\"model\"\n :params=\"params\"\n :items=\"items\"\n :figures=\"figures\"\n :loading=\"loading\"\n :max-records=\"maxRecords\"\n :total-items=\"totalItems\"\n :is-embedded=\"isEmbedded\"\n @set-max-records=\"setMaxRecords\"\n @set-options=\"setOptions\"\n />\n </v-card>\n </div>\n</template>\n\n<script>\
|
|
292647
|
+
sourcesContent: ["<template>\n <div ref=\"dashboard\">\n <v-card flat class=\"isabl-base-card\">\n <dc-graph\n :model=\"model\"\n :params=\"params\"\n :items=\"items\"\n :figures=\"figures\"\n :loading=\"loading\"\n :max-records=\"maxRecords\"\n :total-items=\"totalItems\"\n :is-embedded=\"isEmbedded\"\n @set-max-records=\"setMaxRecords\"\n @set-options=\"setOptions\"\n />\n </v-card>\n </div>\n</template>\n\n<script>\nimport BasePanel from '@/components/base/BasePanel.vue'\nimport BaseSectionTitle from '@/components/base/BaseSectionTitle.vue'\nimport DataTable from '@/components/table/DataTable.vue'\nimport DcGraph from '@/components/dashboard/DcGraph.vue'\nimport { fetchListRecords } from '@/utils/api'\nimport { SHOW_ALERT } from '@/store/actions/alert'\n\nexport default {\n name: 'BaseDashboard',\n components: {\n BasePanel,\n BaseSectionTitle,\n DataTable,\n DcGraph\n },\n props: {\n params: {\n type: Object,\n default: () => ({})\n },\n isEmbedded: {\n type: Boolean,\n default: true\n },\n model: {\n type: String,\n required: true\n },\n figures: {\n type: Array,\n required: true\n },\n requiredFields: {\n type: Array,\n default: () => []\n }\n },\n data() {\n return {\n items: [],\n loading: false,\n maxRecords: 500,\n options: {},\n totalItems: null\n }\n },\n computed: {\n queryFields() {\n const fields = this.figures.map(figure => figure.queryFields)\n // flat and remove duplicates\n return [...new Set(fields.flat())]\n },\n fields() {\n return [\n ...new Set([\n 'pk',\n 'created',\n 'modified',\n 'analytics',\n ...this.requiredFields,\n ...this.queryFields\n ])\n ]\n .filter(i => !!i)\n .map(i => i.replace(/\\./g, '__'))\n }\n },\n created() {\n this.loading = true\n },\n methods: {\n setOptions(options) {\n delete options.offset\n this.options = options\n this.fetchData()\n },\n setMaxRecords(value) {\n if (value !== this.maxRecords) {\n this.maxRecords = value\n this.fetchData()\n }\n },\n fetchData() {\n this.loading = true\n\n const fields = this.fields.map(i => i.replace(/\\./g, '__'))\n fetchListRecords(this.model, {\n ...this.options,\n ...this.params,\n limit: this.maxRecords,\n distinct: true,\n fields,\n 'fields!': ''\n })\n .then(response => {\n this.items = response.results.map(r => {\n const result = {\n ...r,\n ...r.analytics\n }\n delete result.analytics\n return result\n })\n this.totalItems = response.count\n })\n .catch(error => {\n let errorMessage = `Search failed: `\n if (error.response) {\n const errorMessages = Object.values(error.response.data).flat()\n errorMessage += errorMessages.length ? errorMessages[0] : '...'\n }\n this.$store.dispatch(SHOW_ALERT, {\n error: errorMessage\n })\n })\n .finally(() => (this.loading = false))\n }\n }\n}\n</script>\n<style lang=\"scss\">\n.dashboard .panels {\n max-width: 95%;\n max-width: 1800px;\n padding-bottom: 100px;\n}\n</style>\n"]
|
|
292656
292648
|
},
|
|
292657
292649
|
_coverageSchema: "43e27e138ebf9cfc5966b082cf9a028302ed4184",
|
|
292658
|
-
hash: "
|
|
292650
|
+
hash: "0b4078169eae16bef6c925f7ea045fdcabd12d44"
|
|
292659
292651
|
};
|
|
292660
292652
|
var coverage = global[gcv] || (global[gcv] = {});
|
|
292661
292653
|
|
|
@@ -292886,8 +292878,8 @@ var BaseDashboardvue_type_style_index_0_lang_scss_ = __webpack_require__("f624")
|
|
|
292886
292878
|
|
|
292887
292879
|
var BaseDashboard_component = normalizeComponent(
|
|
292888
292880
|
dashboard_BaseDashboardvue_type_script_lang_js_,
|
|
292889
|
-
|
|
292890
|
-
|
|
292881
|
+
BaseDashboardvue_type_template_id_191c4226_render,
|
|
292882
|
+
BaseDashboardvue_type_template_id_191c4226_staticRenderFns,
|
|
292891
292883
|
false,
|
|
292892
292884
|
null,
|
|
292893
292885
|
null,
|