| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 /** | 4 /** |
| 5 * @unrestricted | 5 * @unrestricted |
| 6 */ | 6 */ |
| 7 WebInspector.CSSValue = class { | 7 SDK.CSSValue = class { |
| 8 /** | 8 /** |
| 9 * @param {!Protocol.CSS.Value} payload | 9 * @param {!Protocol.CSS.Value} payload |
| 10 */ | 10 */ |
| 11 constructor(payload) { | 11 constructor(payload) { |
| 12 this.text = payload.text; | 12 this.text = payload.text; |
| 13 if (payload.range) | 13 if (payload.range) |
| 14 this.range = WebInspector.TextRange.fromObject(payload.range); | 14 this.range = Common.TextRange.fromObject(payload.range); |
| 15 } | 15 } |
| 16 | 16 |
| 17 /** | 17 /** |
| 18 * @param {!WebInspector.CSSModel.Edit} edit | 18 * @param {!SDK.CSSModel.Edit} edit |
| 19 */ | 19 */ |
| 20 rebase(edit) { | 20 rebase(edit) { |
| 21 if (!this.range) | 21 if (!this.range) |
| 22 return; | 22 return; |
| 23 this.range = this.range.rebaseAfterTextEdit(edit.oldRange, edit.newRange); | 23 this.range = this.range.rebaseAfterTextEdit(edit.oldRange, edit.newRange); |
| 24 } | 24 } |
| 25 }; | 25 }; |
| 26 | 26 |
| 27 /** | 27 /** |
| 28 * @unrestricted | 28 * @unrestricted |
| 29 */ | 29 */ |
| 30 WebInspector.CSSRule = class { | 30 SDK.CSSRule = class { |
| 31 /** | 31 /** |
| 32 * @param {!WebInspector.CSSModel} cssModel | 32 * @param {!SDK.CSSModel} cssModel |
| 33 * @param {{style: !Protocol.CSS.CSSStyle, styleSheetId: (string|undefined), o
rigin: !Protocol.CSS.StyleSheetOrigin}} payload | 33 * @param {{style: !Protocol.CSS.CSSStyle, styleSheetId: (string|undefined), o
rigin: !Protocol.CSS.StyleSheetOrigin}} payload |
| 34 */ | 34 */ |
| 35 constructor(cssModel, payload) { | 35 constructor(cssModel, payload) { |
| 36 this._cssModel = cssModel; | 36 this._cssModel = cssModel; |
| 37 this.styleSheetId = payload.styleSheetId; | 37 this.styleSheetId = payload.styleSheetId; |
| 38 | 38 |
| 39 if (this.styleSheetId) { | 39 if (this.styleSheetId) { |
| 40 var styleSheetHeader = cssModel.styleSheetHeaderForId(this.styleSheetId); | 40 var styleSheetHeader = cssModel.styleSheetHeaderForId(this.styleSheetId); |
| 41 this.sourceURL = styleSheetHeader.sourceURL; | 41 this.sourceURL = styleSheetHeader.sourceURL; |
| 42 } | 42 } |
| 43 this.origin = payload.origin; | 43 this.origin = payload.origin; |
| 44 this.style = new WebInspector.CSSStyleDeclaration( | 44 this.style = new SDK.CSSStyleDeclaration( |
| 45 this._cssModel, this, payload.style, WebInspector.CSSStyleDeclaration.Ty
pe.Regular); | 45 this._cssModel, this, payload.style, SDK.CSSStyleDeclaration.Type.Regula
r); |
| 46 } | 46 } |
| 47 | 47 |
| 48 /** | 48 /** |
| 49 * @param {!WebInspector.CSSModel.Edit} edit | 49 * @param {!SDK.CSSModel.Edit} edit |
| 50 */ | 50 */ |
| 51 rebase(edit) { | 51 rebase(edit) { |
| 52 if (this.styleSheetId !== edit.styleSheetId) | 52 if (this.styleSheetId !== edit.styleSheetId) |
| 53 return; | 53 return; |
| 54 this.style.rebase(edit); | 54 this.style.rebase(edit); |
| 55 } | 55 } |
| 56 | 56 |
| 57 /** | 57 /** |
| 58 * @return {string} | 58 * @return {string} |
| 59 */ | 59 */ |
| (...skipping 29 matching lines...) Expand all Loading... |
| 89 * @return {boolean} | 89 * @return {boolean} |
| 90 */ | 90 */ |
| 91 isRegular() { | 91 isRegular() { |
| 92 return this.origin === Protocol.CSS.StyleSheetOrigin.Regular; | 92 return this.origin === Protocol.CSS.StyleSheetOrigin.Regular; |
| 93 } | 93 } |
| 94 }; | 94 }; |
| 95 | 95 |
| 96 /** | 96 /** |
| 97 * @unrestricted | 97 * @unrestricted |
| 98 */ | 98 */ |
| 99 WebInspector.CSSStyleRule = class extends WebInspector.CSSRule { | 99 SDK.CSSStyleRule = class extends SDK.CSSRule { |
| 100 /** | 100 /** |
| 101 * @param {!WebInspector.CSSModel} cssModel | 101 * @param {!SDK.CSSModel} cssModel |
| 102 * @param {!Protocol.CSS.CSSRule} payload | 102 * @param {!Protocol.CSS.CSSRule} payload |
| 103 * @param {boolean=} wasUsed | 103 * @param {boolean=} wasUsed |
| 104 */ | 104 */ |
| 105 constructor(cssModel, payload, wasUsed) { | 105 constructor(cssModel, payload, wasUsed) { |
| 106 super(cssModel, payload); | 106 super(cssModel, payload); |
| 107 | 107 |
| 108 this._reinitializeSelectors(payload.selectorList); | 108 this._reinitializeSelectors(payload.selectorList); |
| 109 this.media = payload.media ? WebInspector.CSSMedia.parseMediaArrayPayload(cs
sModel, payload.media) : []; | 109 this.media = payload.media ? SDK.CSSMedia.parseMediaArrayPayload(cssModel, p
ayload.media) : []; |
| 110 this.wasUsed = wasUsed || false; | 110 this.wasUsed = wasUsed || false; |
| 111 } | 111 } |
| 112 | 112 |
| 113 /** | 113 /** |
| 114 * @param {!WebInspector.CSSModel} cssModel | 114 * @param {!SDK.CSSModel} cssModel |
| 115 * @param {string} selectorText | 115 * @param {string} selectorText |
| 116 * @return {!WebInspector.CSSStyleRule} | 116 * @return {!SDK.CSSStyleRule} |
| 117 */ | 117 */ |
| 118 static createDummyRule(cssModel, selectorText) { | 118 static createDummyRule(cssModel, selectorText) { |
| 119 var dummyPayload = { | 119 var dummyPayload = { |
| 120 selectorList: { | 120 selectorList: { |
| 121 selectors: [{text: selectorText}], | 121 selectors: [{text: selectorText}], |
| 122 }, | 122 }, |
| 123 style: | 123 style: |
| 124 {styleSheetId: '0', range: new WebInspector.TextRange(0, 0, 0, 0), sho
rthandEntries: [], cssProperties: []} | 124 {styleSheetId: '0', range: new Common.TextRange(0, 0, 0, 0), shorthand
Entries: [], cssProperties: []} |
| 125 }; | 125 }; |
| 126 return new WebInspector.CSSStyleRule(cssModel, /** @type {!Protocol.CSS.CSSR
ule} */ (dummyPayload)); | 126 return new SDK.CSSStyleRule(cssModel, /** @type {!Protocol.CSS.CSSRule} */ (
dummyPayload)); |
| 127 } | 127 } |
| 128 | 128 |
| 129 /** | 129 /** |
| 130 * @param {!Protocol.CSS.SelectorList} selectorList | 130 * @param {!Protocol.CSS.SelectorList} selectorList |
| 131 */ | 131 */ |
| 132 _reinitializeSelectors(selectorList) { | 132 _reinitializeSelectors(selectorList) { |
| 133 /** @type {!Array.<!WebInspector.CSSValue>} */ | 133 /** @type {!Array.<!SDK.CSSValue>} */ |
| 134 this.selectors = []; | 134 this.selectors = []; |
| 135 for (var i = 0; i < selectorList.selectors.length; ++i) | 135 for (var i = 0; i < selectorList.selectors.length; ++i) |
| 136 this.selectors.push(new WebInspector.CSSValue(selectorList.selectors[i])); | 136 this.selectors.push(new SDK.CSSValue(selectorList.selectors[i])); |
| 137 } | 137 } |
| 138 | 138 |
| 139 /** | 139 /** |
| 140 * @param {string} newSelector | 140 * @param {string} newSelector |
| 141 * @return {!Promise.<boolean>} | 141 * @return {!Promise.<boolean>} |
| 142 */ | 142 */ |
| 143 setSelectorText(newSelector) { | 143 setSelectorText(newSelector) { |
| 144 var styleSheetId = this.styleSheetId; | 144 var styleSheetId = this.styleSheetId; |
| 145 if (!styleSheetId) | 145 if (!styleSheetId) |
| 146 throw 'No rule stylesheet id'; | 146 throw 'No rule stylesheet id'; |
| 147 var range = this.selectorRange(); | 147 var range = this.selectorRange(); |
| 148 if (!range) | 148 if (!range) |
| 149 throw 'Rule selector is not editable'; | 149 throw 'Rule selector is not editable'; |
| 150 return this._cssModel.setSelectorText(styleSheetId, range, newSelector); | 150 return this._cssModel.setSelectorText(styleSheetId, range, newSelector); |
| 151 } | 151 } |
| 152 | 152 |
| 153 /** | 153 /** |
| 154 * @return {string} | 154 * @return {string} |
| 155 */ | 155 */ |
| 156 selectorText() { | 156 selectorText() { |
| 157 return this.selectors.select('text').join(', '); | 157 return this.selectors.select('text').join(', '); |
| 158 } | 158 } |
| 159 | 159 |
| 160 /** | 160 /** |
| 161 * @return {?WebInspector.TextRange} | 161 * @return {?Common.TextRange} |
| 162 */ | 162 */ |
| 163 selectorRange() { | 163 selectorRange() { |
| 164 var firstRange = this.selectors[0].range; | 164 var firstRange = this.selectors[0].range; |
| 165 if (!firstRange) | 165 if (!firstRange) |
| 166 return null; | 166 return null; |
| 167 var lastRange = this.selectors.peekLast().range; | 167 var lastRange = this.selectors.peekLast().range; |
| 168 return new WebInspector.TextRange( | 168 return new Common.TextRange( |
| 169 firstRange.startLine, firstRange.startColumn, lastRange.endLine, lastRan
ge.endColumn); | 169 firstRange.startLine, firstRange.startColumn, lastRange.endLine, lastRan
ge.endColumn); |
| 170 } | 170 } |
| 171 | 171 |
| 172 /** | 172 /** |
| 173 * @param {number} selectorIndex | 173 * @param {number} selectorIndex |
| 174 * @return {number} | 174 * @return {number} |
| 175 */ | 175 */ |
| 176 lineNumberInSource(selectorIndex) { | 176 lineNumberInSource(selectorIndex) { |
| 177 var selector = this.selectors[selectorIndex]; | 177 var selector = this.selectors[selectorIndex]; |
| 178 if (!selector || !selector.range || !this.styleSheetId) | 178 if (!selector || !selector.range || !this.styleSheetId) |
| (...skipping 10 matching lines...) Expand all Loading... |
| 189 var selector = this.selectors[selectorIndex]; | 189 var selector = this.selectors[selectorIndex]; |
| 190 if (!selector || !selector.range || !this.styleSheetId) | 190 if (!selector || !selector.range || !this.styleSheetId) |
| 191 return undefined; | 191 return undefined; |
| 192 var styleSheetHeader = this._cssModel.styleSheetHeaderForId(this.styleSheetI
d); | 192 var styleSheetHeader = this._cssModel.styleSheetHeaderForId(this.styleSheetI
d); |
| 193 console.assert(styleSheetHeader); | 193 console.assert(styleSheetHeader); |
| 194 return styleSheetHeader.columnNumberInSource(selector.range.startLine, selec
tor.range.startColumn); | 194 return styleSheetHeader.columnNumberInSource(selector.range.startLine, selec
tor.range.startColumn); |
| 195 } | 195 } |
| 196 | 196 |
| 197 /** | 197 /** |
| 198 * @override | 198 * @override |
| 199 * @param {!WebInspector.CSSModel.Edit} edit | 199 * @param {!SDK.CSSModel.Edit} edit |
| 200 */ | 200 */ |
| 201 rebase(edit) { | 201 rebase(edit) { |
| 202 if (this.styleSheetId !== edit.styleSheetId) | 202 if (this.styleSheetId !== edit.styleSheetId) |
| 203 return; | 203 return; |
| 204 if (this.selectorRange().equal(edit.oldRange)) { | 204 if (this.selectorRange().equal(edit.oldRange)) { |
| 205 this._reinitializeSelectors(/** @type {!Protocol.CSS.SelectorList} */ (edi
t.payload)); | 205 this._reinitializeSelectors(/** @type {!Protocol.CSS.SelectorList} */ (edi
t.payload)); |
| 206 } else { | 206 } else { |
| 207 for (var i = 0; i < this.selectors.length; ++i) | 207 for (var i = 0; i < this.selectors.length; ++i) |
| 208 this.selectors[i].rebase(edit); | 208 this.selectors[i].rebase(edit); |
| 209 } | 209 } |
| 210 for (var media of this.media) | 210 for (var media of this.media) |
| 211 media.rebase(edit); | 211 media.rebase(edit); |
| 212 | 212 |
| 213 super.rebase(edit); | 213 super.rebase(edit); |
| 214 } | 214 } |
| 215 }; | 215 }; |
| 216 | 216 |
| 217 | 217 |
| 218 /** | 218 /** |
| 219 * @unrestricted | 219 * @unrestricted |
| 220 */ | 220 */ |
| 221 WebInspector.CSSKeyframesRule = class { | 221 SDK.CSSKeyframesRule = class { |
| 222 /** | 222 /** |
| 223 * @param {!WebInspector.CSSModel} cssModel | 223 * @param {!SDK.CSSModel} cssModel |
| 224 * @param {!Protocol.CSS.CSSKeyframesRule} payload | 224 * @param {!Protocol.CSS.CSSKeyframesRule} payload |
| 225 */ | 225 */ |
| 226 constructor(cssModel, payload) { | 226 constructor(cssModel, payload) { |
| 227 this._cssModel = cssModel; | 227 this._cssModel = cssModel; |
| 228 this._animationName = new WebInspector.CSSValue(payload.animationName); | 228 this._animationName = new SDK.CSSValue(payload.animationName); |
| 229 this._keyframes = payload.keyframes.map(keyframeRule => new WebInspector.CSS
KeyframeRule(cssModel, keyframeRule)); | 229 this._keyframes = payload.keyframes.map(keyframeRule => new SDK.CSSKeyframeR
ule(cssModel, keyframeRule)); |
| 230 } | 230 } |
| 231 | 231 |
| 232 /** | 232 /** |
| 233 * @return {!WebInspector.CSSValue} | 233 * @return {!SDK.CSSValue} |
| 234 */ | 234 */ |
| 235 name() { | 235 name() { |
| 236 return this._animationName; | 236 return this._animationName; |
| 237 } | 237 } |
| 238 | 238 |
| 239 /** | 239 /** |
| 240 * @return {!Array.<!WebInspector.CSSKeyframeRule>} | 240 * @return {!Array.<!SDK.CSSKeyframeRule>} |
| 241 */ | 241 */ |
| 242 keyframes() { | 242 keyframes() { |
| 243 return this._keyframes; | 243 return this._keyframes; |
| 244 } | 244 } |
| 245 }; | 245 }; |
| 246 | 246 |
| 247 /** | 247 /** |
| 248 * @unrestricted | 248 * @unrestricted |
| 249 */ | 249 */ |
| 250 WebInspector.CSSKeyframeRule = class extends WebInspector.CSSRule { | 250 SDK.CSSKeyframeRule = class extends SDK.CSSRule { |
| 251 /** | 251 /** |
| 252 * @param {!WebInspector.CSSModel} cssModel | 252 * @param {!SDK.CSSModel} cssModel |
| 253 * @param {!Protocol.CSS.CSSKeyframeRule} payload | 253 * @param {!Protocol.CSS.CSSKeyframeRule} payload |
| 254 */ | 254 */ |
| 255 constructor(cssModel, payload) { | 255 constructor(cssModel, payload) { |
| 256 super(cssModel, payload); | 256 super(cssModel, payload); |
| 257 this._reinitializeKey(payload.keyText); | 257 this._reinitializeKey(payload.keyText); |
| 258 } | 258 } |
| 259 | 259 |
| 260 /** | 260 /** |
| 261 * @return {!WebInspector.CSSValue} | 261 * @return {!SDK.CSSValue} |
| 262 */ | 262 */ |
| 263 key() { | 263 key() { |
| 264 return this._keyText; | 264 return this._keyText; |
| 265 } | 265 } |
| 266 | 266 |
| 267 /** | 267 /** |
| 268 * @param {!Protocol.CSS.Value} payload | 268 * @param {!Protocol.CSS.Value} payload |
| 269 */ | 269 */ |
| 270 _reinitializeKey(payload) { | 270 _reinitializeKey(payload) { |
| 271 this._keyText = new WebInspector.CSSValue(payload); | 271 this._keyText = new SDK.CSSValue(payload); |
| 272 } | 272 } |
| 273 | 273 |
| 274 /** | 274 /** |
| 275 * @override | 275 * @override |
| 276 * @param {!WebInspector.CSSModel.Edit} edit | 276 * @param {!SDK.CSSModel.Edit} edit |
| 277 */ | 277 */ |
| 278 rebase(edit) { | 278 rebase(edit) { |
| 279 if (this.styleSheetId !== edit.styleSheetId || !this._keyText.range) | 279 if (this.styleSheetId !== edit.styleSheetId || !this._keyText.range) |
| 280 return; | 280 return; |
| 281 if (edit.oldRange.equal(this._keyText.range)) | 281 if (edit.oldRange.equal(this._keyText.range)) |
| 282 this._reinitializeKey(/** @type {!Protocol.CSS.Value} */ (edit.payload)); | 282 this._reinitializeKey(/** @type {!Protocol.CSS.Value} */ (edit.payload)); |
| 283 else | 283 else |
| 284 this._keyText.rebase(edit); | 284 this._keyText.rebase(edit); |
| 285 | 285 |
| 286 super.rebase(edit); | 286 super.rebase(edit); |
| 287 } | 287 } |
| 288 | 288 |
| 289 /** | 289 /** |
| 290 * @param {string} newKeyText | 290 * @param {string} newKeyText |
| 291 * @return {!Promise.<boolean>} | 291 * @return {!Promise.<boolean>} |
| 292 */ | 292 */ |
| 293 setKeyText(newKeyText) { | 293 setKeyText(newKeyText) { |
| 294 var styleSheetId = this.styleSheetId; | 294 var styleSheetId = this.styleSheetId; |
| 295 if (!styleSheetId) | 295 if (!styleSheetId) |
| 296 throw 'No rule stylesheet id'; | 296 throw 'No rule stylesheet id'; |
| 297 var range = this._keyText.range; | 297 var range = this._keyText.range; |
| 298 if (!range) | 298 if (!range) |
| 299 throw 'Keyframe key is not editable'; | 299 throw 'Keyframe key is not editable'; |
| 300 return this._cssModel.setKeyframeKey(styleSheetId, range, newKeyText); | 300 return this._cssModel.setKeyframeKey(styleSheetId, range, newKeyText); |
| 301 } | 301 } |
| 302 }; | 302 }; |
| OLD | NEW |