On peut maintenant selectionner des items avec le clavier

This commit is contained in:
Christophe 2021-03-21 22:49:00 +01:00
parent 9302b4f59d
commit afb29bd792
7 changed files with 18 additions and 1097 deletions

View file

@ -28,11 +28,6 @@
table-layout: auto;
}
.gamutable table .vue-dropdown-item > span {
display: inline-block;
min-height: 1rem;
}
.gamutable table thead {
border: 1px solid #777777;
}

View file

@ -1 +1 @@
{"version":3,"sources":["gamutable.scss","gamutable.css"],"names":[],"mappings":"AAAA;;EAGE,gBAAgB;ACAlB;;ADHA;EAME,iBAAiB;ACCnB;;ADEA;EACC,oBAAa;EAAb,aAAa;EACb,sBAA8B;MAA9B,8BAA8B;ACC/B;;ADCA;EACC,oBAAa;EAAb,aAAa;ACEd;;ADAA;EACC,qBAAqB;ACGtB;;ADAA;EAOC,eAAe;EACf,kBAAkB;ACHnB;;ADLA;EAGE,qBAAqB;EACrB,gBAAgB;ACMlB;;ADVA;EAUE,yBAAoC;ACItC;;ADdA;EAaE,oBAAa;EAAb,aAAa;ACKf;;ADlBA;EAgBE,oBAAY;MAAZ,YAAY;ACMd;;ADtBA;EAmBE,YAAY;EACZ,WAAW;ACOb;;AD3BA;EAwBE,eAAe;EACf,aAAa;ACOf;;ADhCA;EA4BE,UAAU;ACQZ;;ADLA;EACC,0CAA0C;ACQ3C;;ADLA;EACC,eAAe;ACQhB;;ADLA;EACC,WAAW;EACX,kBAAkB;ACQnB;;ADLA;EACC,UAAU;ACQX;;ADTA;EAGE,SAAS;ACUX;;ADNA;EACC,WAAW;EACX,cAAc;EACd,eAAe;EACf,kBAAkB;ACSnB;;ADPA;EACC,eAAe;EACf,qBAAqB;EACrB,yBAAyB;EACzB,yBAAyB;EACzB,kBAAkB;ACUnB;;ADfA;EAOE,yBAAyB;ACY3B;;ADRA;EACC,iBAAiB;ACWlB;;ADRA;EACC,oBAAa;EAAb,aAAa;EACb,mBAAe;MAAf,eAAe;ACWhB;;ADTA;EACC,UAAU;EACV,yBAAyB;EACzB,mBAAmB;EACnB,kBAAkB;ACYnB","file":"gamutable.css","sourcesContent":[".gamutable--surTable {\n\tselect,\n\tinput {\n\t\tmargin-bottom: 0;\n\t}\n\t.gamutable-nbrMax {\n\t\tmargin-left: 2rem;\n\t}\n}\n.gamutable--sousTable {\n\tdisplay: flex;\n\tjustify-content: space-between;\n}\n.gamutable--pagination {\n\tdisplay: flex;\n}\n.gamutable__input--rechercher {\n\tpadding: 0.25rem 1rem;\n}\n\n.gamutable table {\n\t// patch provisoire\n\t.vue-dropdown-item > span {\n\t\tdisplay: inline-block;\n\t\tmin-height: 1rem;\n\t}\n\n\tfont-size: 1rem;\n\ttable-layout: auto;\n\tthead {\n\t\tborder: 1px solid rgb(119, 119, 119);\n\t}\n\tth > div {\n\t\tdisplay: flex;\n\t}\n\t.label_tete_colonne {\n\t\tflex-grow: 1;\n\t}\n\t.iconeTri {\n\t\tfloat: right;\n\t\twidth: 1rem;\n\t\t//position: relative;\n\t}\n\t.tri_col {\n\t\tcursor: pointer;\n\t\tfill: #cecece;\n\t}\n\t.iconeTri > .active {\n\t\tfill: #000;\n\t}\n}\n#app .select {\n\tbackground-color: rgba(179, 209, 67, 0.47);\n}\n\ntd.id {\n\tcursor: pointer;\n}\n\nth.icone {\n\twidth: 30px;\n\ttext-align: center;\n}\n\ntr.filtreColonne th {\n\tpadding: 0;\n\tselect {\n\t\tmargin: 0;\n\t}\n}\n\ntd.icone > * {\n\twidth: 100%;\n\tdisplay: block;\n\tpadding: 0.5rem;\n\ttext-align: center;\n}\ndiv.gamutable .url_action {\n\tpadding: 0.2rem;\n\tdisplay: inline-block;\n\tbackground-color: #f5f5f5;\n\tborder: 1px solid #cecece;\n\tborder-radius: 5px;\n\t&:hover {\n\t\tbackground-color: #cecece;\n\t}\n}\n\ntd.icone i {\n\tfont-size: 1.8rem;\n}\n\n.vueBlocs {\n\tdisplay: flex;\n\tflex-wrap: wrap;\n}\n.vueBlocs-unbloc {\n\twidth: 23%;\n\tborder: 1px solid #cecece;\n\tmargin-bottom: 1rem;\n\tmargin-right: 1rem;\n}\n",".gamutable--surTable select,\n.gamutable--surTable input {\n margin-bottom: 0;\n}\n\n.gamutable--surTable .gamutable-nbrMax {\n margin-left: 2rem;\n}\n\n.gamutable--sousTable {\n display: flex;\n justify-content: space-between;\n}\n\n.gamutable--pagination {\n display: flex;\n}\n\n.gamutable__input--rechercher {\n padding: 0.25rem 1rem;\n}\n\n.gamutable table {\n font-size: 1rem;\n table-layout: auto;\n}\n\n.gamutable table .vue-dropdown-item > span {\n display: inline-block;\n min-height: 1rem;\n}\n\n.gamutable table thead {\n border: 1px solid #777777;\n}\n\n.gamutable table th > div {\n display: flex;\n}\n\n.gamutable table .label_tete_colonne {\n flex-grow: 1;\n}\n\n.gamutable table .iconeTri {\n float: right;\n width: 1rem;\n}\n\n.gamutable table .tri_col {\n cursor: pointer;\n fill: #cecece;\n}\n\n.gamutable table .iconeTri > .active {\n fill: #000;\n}\n\n#app .select {\n background-color: rgba(179, 209, 67, 0.47);\n}\n\ntd.id {\n cursor: pointer;\n}\n\nth.icone {\n width: 30px;\n text-align: center;\n}\n\ntr.filtreColonne th {\n padding: 0;\n}\n\ntr.filtreColonne th select {\n margin: 0;\n}\n\ntd.icone > * {\n width: 100%;\n display: block;\n padding: 0.5rem;\n text-align: center;\n}\n\ndiv.gamutable .url_action {\n padding: 0.2rem;\n display: inline-block;\n background-color: #f5f5f5;\n border: 1px solid #cecece;\n border-radius: 5px;\n}\n\ndiv.gamutable .url_action:hover {\n background-color: #cecece;\n}\n\ntd.icone i {\n font-size: 1.8rem;\n}\n\n.vueBlocs {\n display: flex;\n flex-wrap: wrap;\n}\n\n.vueBlocs-unbloc {\n width: 23%;\n border: 1px solid #cecece;\n margin-bottom: 1rem;\n margin-right: 1rem;\n}\n"]}
{"version":3,"sources":["gamutable.scss","gamutable.css"],"names":[],"mappings":"AAAA;;EAGE,gBAAgB;ACAlB;;ADHA;EAME,iBAAiB;ACCnB;;ADEA;EACC,oBAAa;EAAb,aAAa;EACb,sBAA8B;MAA9B,8BAA8B;ACC/B;;ADCA;EACC,oBAAa;EAAb,aAAa;ACEd;;ADAA;EACC,qBAAqB;ACGtB;;ADAA;EAOC,eAAe;EACf,kBAAkB;ACHnB;;ADLA;EAUE,yBAAoC;ACDtC;;ADTA;EAaE,oBAAa;EAAb,aAAa;ACAf;;ADbA;EAgBE,oBAAY;MAAZ,YAAY;ACCd;;ADjBA;EAmBE,YAAY;EACZ,WAAW;ACEb;;ADtBA;EAwBE,eAAe;EACf,aAAa;ACEf;;AD3BA;EA4BE,UAAU;ACGZ;;ADAA;EACC,0CAA0C;ACG3C;;ADAA;EACC,eAAe;ACGhB;;ADAA;EACC,WAAW;EACX,kBAAkB;ACGnB;;ADAA;EACC,UAAU;ACGX;;ADJA;EAGE,SAAS;ACKX;;ADDA;EACC,WAAW;EACX,cAAc;EACd,eAAe;EACf,kBAAkB;ACInB;;ADFA;EACC,eAAe;EACf,qBAAqB;EACrB,yBAAyB;EACzB,yBAAyB;EACzB,kBAAkB;ACKnB;;ADVA;EAOE,yBAAyB;ACO3B;;ADHA;EACC,iBAAiB;ACMlB;;ADHA;EACC,oBAAa;EAAb,aAAa;EACb,mBAAe;MAAf,eAAe;ACMhB;;ADJA;EACC,UAAU;EACV,yBAAyB;EACzB,mBAAmB;EACnB,kBAAkB;ACOnB","file":"gamutable.css","sourcesContent":[".gamutable--surTable {\n\tselect,\n\tinput {\n\t\tmargin-bottom: 0;\n\t}\n\t.gamutable-nbrMax {\n\t\tmargin-left: 2rem;\n\t}\n}\n.gamutable--sousTable {\n\tdisplay: flex;\n\tjustify-content: space-between;\n}\n.gamutable--pagination {\n\tdisplay: flex;\n}\n.gamutable__input--rechercher {\n\tpadding: 0.25rem 1rem;\n}\n\n.gamutable table {\n\t// patch provisoire\n\t// .vue-dropdown-item > span {\n\t// \tdisplay: inline-block;\n\t// \tmin-height: 1rem;\n\t// }\n\n\tfont-size: 1rem;\n\ttable-layout: auto;\n\tthead {\n\t\tborder: 1px solid rgb(119, 119, 119);\n\t}\n\tth > div {\n\t\tdisplay: flex;\n\t}\n\t.label_tete_colonne {\n\t\tflex-grow: 1;\n\t}\n\t.iconeTri {\n\t\tfloat: right;\n\t\twidth: 1rem;\n\t\t//position: relative;\n\t}\n\t.tri_col {\n\t\tcursor: pointer;\n\t\tfill: #cecece;\n\t}\n\t.iconeTri > .active {\n\t\tfill: #000;\n\t}\n}\n#app .select {\n\tbackground-color: rgba(179, 209, 67, 0.47);\n}\n\ntd.id {\n\tcursor: pointer;\n}\n\nth.icone {\n\twidth: 30px;\n\ttext-align: center;\n}\n\ntr.filtreColonne th {\n\tpadding: 0;\n\tselect {\n\t\tmargin: 0;\n\t}\n}\n\ntd.icone > * {\n\twidth: 100%;\n\tdisplay: block;\n\tpadding: 0.5rem;\n\ttext-align: center;\n}\ndiv.gamutable .url_action {\n\tpadding: 0.2rem;\n\tdisplay: inline-block;\n\tbackground-color: #f5f5f5;\n\tborder: 1px solid #cecece;\n\tborder-radius: 5px;\n\t&:hover {\n\t\tbackground-color: #cecece;\n\t}\n}\n\ntd.icone i {\n\tfont-size: 1.8rem;\n}\n\n.vueBlocs {\n\tdisplay: flex;\n\tflex-wrap: wrap;\n}\n.vueBlocs-unbloc {\n\twidth: 23%;\n\tborder: 1px solid #cecece;\n\tmargin-bottom: 1rem;\n\tmargin-right: 1rem;\n}\n",".gamutable--surTable select,\n.gamutable--surTable input {\n margin-bottom: 0;\n}\n\n.gamutable--surTable .gamutable-nbrMax {\n margin-left: 2rem;\n}\n\n.gamutable--sousTable {\n display: flex;\n justify-content: space-between;\n}\n\n.gamutable--pagination {\n display: flex;\n}\n\n.gamutable__input--rechercher {\n padding: 0.25rem 1rem;\n}\n\n.gamutable table {\n font-size: 1rem;\n table-layout: auto;\n}\n\n.gamutable table thead {\n border: 1px solid #777777;\n}\n\n.gamutable table th > div {\n display: flex;\n}\n\n.gamutable table .label_tete_colonne {\n flex-grow: 1;\n}\n\n.gamutable table .iconeTri {\n float: right;\n width: 1rem;\n}\n\n.gamutable table .tri_col {\n cursor: pointer;\n fill: #cecece;\n}\n\n.gamutable table .iconeTri > .active {\n fill: #000;\n}\n\n#app .select {\n background-color: rgba(179, 209, 67, 0.47);\n}\n\ntd.id {\n cursor: pointer;\n}\n\nth.icone {\n width: 30px;\n text-align: center;\n}\n\ntr.filtreColonne th {\n padding: 0;\n}\n\ntr.filtreColonne th select {\n margin: 0;\n}\n\ntd.icone > * {\n width: 100%;\n display: block;\n padding: 0.5rem;\n text-align: center;\n}\n\ndiv.gamutable .url_action {\n padding: 0.2rem;\n display: inline-block;\n background-color: #f5f5f5;\n border: 1px solid #cecece;\n border-radius: 5px;\n}\n\ndiv.gamutable .url_action:hover {\n background-color: #cecece;\n}\n\ntd.icone i {\n font-size: 1.8rem;\n}\n\n.vueBlocs {\n display: flex;\n flex-wrap: wrap;\n}\n\n.vueBlocs-unbloc {\n width: 23%;\n border: 1px solid #cecece;\n margin-bottom: 1rem;\n margin-right: 1rem;\n}\n"]}

View file

@ -20,10 +20,10 @@
.gamutable table {
// patch provisoire
.vue-dropdown-item > span {
display: inline-block;
min-height: 1rem;
}
// .vue-dropdown-item > span {
// display: inline-block;
// min-height: 1rem;
// }
font-size: 1rem;
table-layout: auto;

View file

@ -1,201 +1 @@
@keyframes loading {
0% {
transform: rotate(0deg);
}
to {
transform: rotate(360deg);
}
}
.icon.delete {
display: flex;
justify-content: center;
align-items: center;
padding: 0;
margin: 0;
border: 0;
background: 0 0;
height: 8px;
width: 8px;
min-height: 8px;
min-width: 8px;
max-height: 8px;
max-width: 8px;
cursor: pointer;
}
.icon.arrow-downward {
color: #999;
border-style: solid;
border-width: 4px 4px 0;
border-color: #999 transparent transparent;
content: '';
transition: transform 0.2s linear;
cursor: pointer;
}
.icon.arrow-downward.active {
transform: rotate(180deg);
}
.vue-select {
position: relative;
display: flex;
align-items: flex-start;
justify-content: flex-start;
flex-direction: column;
width: 150px;
border-radius: 4px;
border: 1px solid #999;
box-sizing: border-box;
outline: 0;
}
.vue-select[data-is-focusing='true']:not([data-visible-length='0']) {
border-bottom-left-radius: 0;
border-bottom-right-radius: 0;
}
.vue-select.disabled {
background-color: rgba(239, 239, 239);
}
.vue-dropdown[data-removable='false'] .vue-dropdown-item.selected:hover,
.vue-select.disabled *,
.vue-select.disabled input,
.vue-tags[data-removable='false'] .vue-tag.selected img:hover {
cursor: not-allowed;
}
.vue-select-header {
display: flex;
width: 100%;
align-items: center;
justify-content: space-between;
}
.vue-select-header > .icon.arrow-downward,
.vue-select-header > .icon.loading,
.vue-tag > span {
margin-right: 4px;
}
.vue-tags {
display: flex;
flex-wrap: wrap;
margin: 0;
padding: 2px;
min-height: calc(1rem + 4px);
user-select: none;
}
.vue-tags.collapsed {
flex-wrap: nowrap;
overflow: auto;
}
.vue-tag,
.vue-tag.selected {
align-items: center;
justify-content: center;
background-color: #999;
border-radius: 4px;
padding: 0 4px;
font-size: 0.8rem;
}
.vue-tag {
display: none;
list-style-type: none;
margin: 2px;
min-height: 1rem;
}
.vue-tag.selected {
display: flex;
}
.vue-dropdown,
.vue-input {
min-width: 0;
box-sizing: border-box;
}
.vue-input,
.vue-input > input {
border: 0;
outline: 0;
width: 100%;
}
.vue-input {
display: flex;
align-items: center;
border-radius: 4px;
max-width: 100%;
padding: 4px;
}
.vue-input > input {
min-width: 0;
font-size: 0.8rem;
padding: 0;
}
.vue-input > input[disabled] {
background-color: rgba(239, 239, 239);
}
.vue-input > input[readonly],
.vue-select-header > .vue-input > input[disabled] {
background-color: unset;
}
.vue-dropdown {
position: absolute;
background-color: #fff;
z-index: 1;
max-height: 300px;
overflow-y: auto;
width: inherit;
left: -1px;
margin: 0;
padding: 0;
border-bottom-left-radius: 4px;
border-bottom-right-radius: 4px;
border: 1px solid #999;
list-style-type: none;
}
.vue-dropdown[data-visible-length='0'] {
border: 0;
}
.vue-dropdown-item {
list-style-type: none;
padding: 4px;
cursor: pointer;
}
.vue-dropdown-item:last-child {
border-bottom-left-radius: 4px;
border-bottom-right-radius: 4px;
}
.vue-dropdown-item.highlighted {
background-color: #41b883;
}
.vue-dropdown-item.disabled {
background-color: rgba(239, 239, 239);
cursor: not-allowed;
}
.vue-dropdown-item.selected {
background-color: #f3f3f3;
}
.vue-dropdown-item.selected.highlighted {
background-color: #ff6a6a;
}
.vue-dropdown[data-addable='false'][data-multiple='true'] .vue-dropdown-item:not(.selected):hover {
cursor: not-allowed;
}
.icon.loading {
display: inline-block;
position: relative;
width: 8px;
min-width: 8px;
height: 8px;
min-height: 8px;
}
.icon.loading div {
box-sizing: border-box;
display: block;
position: absolute;
border: 1px solid #999;
width: 8px;
height: 8px;
border-radius: 50%;
animation: loading 1s cubic-bezier(0.5, 0, 0.5, 1) infinite;
border-color: #999 transparent transparent;
}
.icon.loading div:nth-child(1) {
animation-delay: -0.08s;
}
.icon.loading div:nth-child(2) {
animation-delay: -0.16s;
}
@keyframes loading{0%{transform:rotate(0deg)}to{transform:rotate(360deg)}}.icon.delete{display:flex;justify-content:center;align-items:center;padding:0;margin:0;border:0;background:0 0;height:8px;width:8px;min-height:8px;min-width:8px;max-height:8px;max-width:8px;cursor:pointer}.icon.arrow-downward{color:#999;border-style:solid;border-width:4px 4px 0;border-color:#999 transparent transparent;content:'';transition:transform .2s linear;cursor:pointer}.icon.arrow-downward.active{transform:rotate(180deg)}.vue-select{position:relative;display:flex;align-items:flex-start;justify-content:flex-start;flex-direction:column;width:150px;border-radius:4px;border:1px solid #999;box-sizing:border-box;outline:0}.vue-select[data-is-focusing=true]:not([data-visible-length='0']){border-bottom-left-radius:0;border-bottom-right-radius:0}.vue-select.disabled{background-color:rgba(239,239,239)}.vue-dropdown[data-removable=false] .vue-dropdown-item.selected:hover,.vue-select.disabled *,.vue-select.disabled input,.vue-tags[data-removable=false] .vue-tag.selected img:hover{cursor:not-allowed}.vue-select-header{display:flex;width:100%;align-items:center;justify-content:space-between}.vue-select-header>.icon.arrow-downward,.vue-select-header>.icon.loading,.vue-tag>span{margin-right:4px}.vue-tags{display:flex;flex-wrap:wrap;margin:0;padding:2px;min-height:calc(1rem + 4px);user-select:none}.vue-tags.collapsed{flex-wrap:nowrap;overflow:auto}.vue-tag,.vue-tag.selected{align-items:center;justify-content:center;background-color:#999;border-radius:4px;padding:0 4px;font-size:.8rem}.vue-tag{display:none;list-style-type:none;margin:2px;min-height:1rem}.vue-tag.selected{display:flex}.vue-dropdown,.vue-input{min-width:0;box-sizing:border-box}.vue-input,.vue-input>input{border:0;outline:0;width:100%}.vue-input{display:flex;align-items:center;border-radius:4px;max-width:100%;padding:4px}.vue-input>input{min-width:0;font-size:.8rem;padding:0}.vue-input>input[disabled]{background-color:rgba(239,239,239)}.vue-input>input[readonly],.vue-select-header>.vue-input>input[disabled]{background-color:unset}.vue-dropdown{position:absolute;background-color:#fff;z-index:1;max-height:300px;overflow-y:auto;width:inherit;left:-1px;margin:0;padding:0;border-bottom-left-radius:4px;border-bottom-right-radius:4px;border:1px solid #999;list-style-type:none}.vue-dropdown[data-visible-length='0']{border:0}.vue-dropdown-item{list-style-type:none;padding:4px;cursor:pointer;min-height:1rem}.vue-dropdown-item:last-child{border-bottom-left-radius:4px;border-bottom-right-radius:4px}.vue-dropdown-item.highlighted{background-color:#41b883}.vue-dropdown-item.disabled{background-color:rgba(239,239,239);cursor:not-allowed}.vue-dropdown-item.selected{background-color:#f3f3f3}.vue-dropdown-item.selected.highlighted{background-color:#ff6a6a}.vue-dropdown[data-addable=false][data-multiple=true] .vue-dropdown-item:not(.selected):hover{cursor:not-allowed}.icon.loading{display:inline-block;position:relative;width:8px;min-width:8px;height:8px;min-height:8px}.icon.loading div{box-sizing:border-box;display:block;position:absolute;border:1px solid #999;width:8px;height:8px;border-radius:50%;animation:loading 1s cubic-bezier(.5,0,.5,1) infinite;border-color:#999 transparent transparent}.icon.loading div:nth-child(1){animation-delay:-.08s}.icon.loading div:nth-child(2){animation-delay:-.16s}

View file

@ -332,8 +332,8 @@ let monTableau = {
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
if (this.filtrecolmulti === 'non') {
this.filtreCol.forEach((col) => {
let Tval = [''];
// let Tval = [];
// let Tval = [''];
let Tval = [];
this.tableau.forEach((t) => {
let valCol = t[this.champ_search][col];
if (Tval.indexOf(valCol) === -1) {
@ -386,8 +386,8 @@ let monTableau = {
if (config.filtreCol !== undefined) {
this.filtreColType = config.filtreCol;
Object.keys(this.filtreColType).forEach((col) => {
// let Tval = [];
let Tval = [''];
let Tval = [];
// let Tval = [''];
this.table.forEach((t) => {
let valCol = t[this.champ_search][col];
if (Tval.indexOf(valCol) === -1) {
@ -433,8 +433,8 @@ let monTableau = {
if (config.filtreCol !== undefined) {
this.filtreColType = config.filtreCol;
Object.keys(this.filtreColType).forEach((col) => {
let Tval = [''];
// let Tval = [];
// let Tval = [''];
let Tval = [];
this.table.forEach((t) => {
let valCol = t[this.champ_search][col];
if (valCol) {

View file

@ -374,7 +374,8 @@ var monTableau = {
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
if (this.filtrecolmulti === 'non') {
this.filtreCol.forEach(function (col) {
var Tval = ['']; // let Tval = [];
// let Tval = [''];
var Tval = [];
_this3.tableau.forEach(function (t) {
var valCol = t[_this3.champ_search][col];
@ -440,8 +441,7 @@ var monTableau = {
if (config.filtreCol !== undefined) {
this.filtreColType = config.filtreCol;
Object.keys(this.filtreColType).forEach(function (col) {
// let Tval = [];
var Tval = [''];
var Tval = []; // let Tval = [''];
_this4.table.forEach(function (t) {
var valCol = t[_this4.champ_search][col];
@ -500,7 +500,8 @@ var monTableau = {
if (config.filtreCol !== undefined) {
_this4.filtreColType = config.filtreCol;
Object.keys(_this4.filtreColType).forEach(function (col) {
var Tval = ['']; // let Tval = [];
// let Tval = [''];
var Tval = [];
_this4.table.forEach(function (t) {
var valCol = t[_this4.champ_search][col];

File diff suppressed because one or more lines are too long