A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://github.com/vuematerial/vue-material/commit/ddee303 below:

reactive selection (#1674) · vuematerial/vue-material@ddee303 · GitHub

File tree Expand file treeCollapse file tree 4 files changed

+43

-28

lines changed

Filter options

Expand file treeCollapse file tree 4 files changed

+43

-28

lines changed Original file line number Diff line number Diff line change

@@ -27,8 +27,8 @@

27 27

<tbody v-else-if="value.length">

28 28

<md-table-row-ghost

29 29

v-for="(item, index) in value"

30 -

:key="getRowId(item[mdModelId])"

31 -

:md-id="getRowId(item[mdModelId])"

30 +

:key="getRowId(item, mdModelId)"

31 +

:md-id="getRowId(item, mdModelId)"

32 32

:md-index="index"

33 33

:md-item="item">

34 34

<slot name="md-table-row" :item="item" />

@@ -153,7 +153,8 @@

153 153

getModel: this.getModel,

154 154

getModelItem: this.getModelItem,

155 155

selectingMode: null

156 -

}

156 +

},

157 +

itemsUuidMap: new WeakMap()

157 158

}

158 159

},

159 160

computed: {

@@ -263,12 +264,21 @@

263 264

emitEvent (eventName, value) {

264 265

this.$emit(eventName, value)

265 266

},

266 -

getRowId (id) {

267 +

getRowId (item, propertyName) {

268 +

let id = item[propertyName]

269 + 267 270

if (id) {

268 271

return id

269 272

}

270 273 271 -

return 'md-row-' + MdUuid()

274 +

id = this.itemsUuidMap.get(item)

275 + 276 +

if (!id) {

277 +

id = 'md-row-' + MdUuid()

278 +

this.itemsUuidMap.set(item, id)

279 +

}

280 + 281 +

return id

272 282

},

273 283

setScroll ($event) {

274 284

raf(() => {

Original file line number Diff line number Diff line change

@@ -20,8 +20,11 @@

20 20

isSelected: false

21 21

}),

22 22

watch: {

23 -

value () {

24 -

this.isSelected = this.value

23 +

value: {

24 +

immediate: true,

25 +

handler (value) {

26 +

this.isSelected = value

27 +

}

25 28

}

26 29

},

27 30

methods: {

Original file line number Diff line number Diff line change

@@ -1,7 +1,8 @@

1 1

<template>

2 2

<tr class="md-table-row" :class="rowClasses" @click="onClick" v-on="$listeners">

3 3

<md-table-cell-selection

4 -

v-model="isSelected"

4 +

:value="isMultipleSelected"

5 +

@input="selected => selected ? addSelection() : removeSelection()"

5 6

:md-disabled="mdDisabled"

6 7

:md-selectable="mdSelectable === 'multiple'"

7 8

:md-row-id="mdIndex"

@@ -32,12 +33,14 @@

32 33

},

33 34

inject: ['MdTable'],

34 35

data: () => ({

35 -

index: null,

36 -

isSelected: false

36 +

index: null

37 37

}),

38 38

computed: {

39 39

selectableCount () {

40 -

return Object.keys(this.MdTable.selectable).length

40 +

return this.MdTable.selectable.length

41 +

},

42 +

isMultipleSelected () {

43 +

return this.MdTable.selectedItems.includes(this.mdItem)

41 44

},

42 45

isSingleSelected () {

43 46

return this.MdTable.singleSelection === this.mdItem

@@ -52,7 +55,7 @@

52 55

if (this.MdTable.hasValue) {

53 56

return {

54 57

'md-has-selection': !this.mdDisabled && (this.mdAutoSelect || this.hasSingleSelection),

55 -

'md-selected': this.isSelected,

58 +

'md-selected': this.isMultipleSelected,

56 59

'md-selected-single': this.isSingleSelected

57 60

}

58 61

}

@@ -69,18 +72,6 @@

69 72

this.addSelectableItem()

70 73

}

71 74

},

72 -

isSelected (val) {

73 -

let noChange = (val && this.isInSelectedItems) || (!val && !this.isInSelectedItems)

74 - 75 -

if (noChange) {

76 -

return false

77 -

}

78 - 79 -

this.MdTable.manageItemSelection(this.mdItem)

80 -

},

81 -

isInSelectedItems (val) {

82 -

this.isSelected = val

83 -

},

84 75

mdSelectable () {

85 76

this.MdTable.selectingMode = this.mdSelectable

86 77

},

@@ -100,7 +91,17 @@

100 91

}

101 92

},

102 93

toggleSelection () {

103 -

this.isSelected = !this.isSelected

94 +

this.MdTable.manageItemSelection(this.mdItem)

95 +

},

96 +

addSelection () {

97 +

if (!this.isMultipleSelected) {

98 +

this.MdTable.selectedItems.push(this.mdItem)

99 +

}

100 +

},

101 +

removeSelection () {

102 +

if (this.isMultipleSelected) {

103 +

this.MdTable.selectedItems = this.MdTable.selectedItems.filter(target => target !== this.mdItem)

104 +

}

104 105

},

105 106

selectRowIfSingle () {

106 107

if (this.MdTable.singleSelection === this.mdItem) {

@@ -132,8 +133,10 @@

132 133

}

133 134

},

134 135

created () {

135 -

this.addSelectableItem()

136 -

this.MdTable.selectingMode = this.mdSelectable

136 +

this.$nextTick(() => {

137 +

this.addSelectableItem()

138 +

this.MdTable.selectingMode = this.mdSelectable

139 +

})

137 140

},

138 141

beforeDestroy () {

139 142

this.removeSelectableItem()

Original file line number Diff line number Diff line change

@@ -1,7 +1,6 @@

1 1

<script>

2 2

export default {

3 3

name: 'MdTableRowGhost',

4 -

abstract: true,

5 4

props: {

6 5

mdIndex: [String, Number],

7 6

mdId: [String, Number],

You can’t perform that action at this time.


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4