Skip to content

Commit d761802

Browse files
author
Friedrich
committed
Merge pull request #822 from kossebau/moreSetPropertiesTyping
Stricter typing of the setProperties data
2 parents 8ee8e1a + f42f6de commit d761802

File tree

4 files changed

+23
-19
lines changed

4 files changed

+23
-19
lines changed

webodf/lib/ops/OpAddStyle.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ ops.OpAddStyle = function OpAddStyle() {
3333

3434
var memberid, timestamp,
3535
styleName, styleFamily, isAutomaticStyle,
36-
/**@type{Object}*/setProperties,
36+
/**@type{!odf.Formatting.StyleData}*/setProperties,
3737
/** @const */stylens = odf.Namespaces.stylens;
3838

3939
/**
@@ -110,7 +110,7 @@ ops.OpAddStyle = function OpAddStyle() {
110110
styleName:string,
111111
styleFamily:string,
112112
isAutomaticStyle:boolean,
113-
setProperties:Object
113+
setProperties:odf.Formatting.StyleData
114114
}}*/
115115
ops.OpAddStyle.Spec;
116116
/**@typedef{{
@@ -119,6 +119,6 @@ ops.OpAddStyle.Spec;
119119
styleName:string,
120120
styleFamily:string,
121121
isAutomaticStyle:(boolean|string),
122-
setProperties:Object
122+
setProperties:odf.Formatting.StyleData
123123
}}*/
124124
ops.OpAddStyle.InitSpec;

webodf/lib/ops/OpApplyDirectStyling.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ ops.OpApplyDirectStyling = function OpApplyDirectStyling() {
3636
position,
3737
/**@type {number}*/
3838
length,
39+
/**@type{!odf.Formatting.StyleData}*/
3940
setProperties,
4041
odfUtils = odf.OdfUtils,
4142
domUtils = core.DomUtils;
@@ -123,14 +124,14 @@ ops.OpApplyDirectStyling = function OpApplyDirectStyling() {
123124
timestamp:number,
124125
position:number,
125126
length:number,
126-
setProperties:!Object
127+
setProperties:!odf.Formatting.StyleData
127128
}}*/
128129
ops.OpApplyDirectStyling.Spec;
129130
/**@typedef{{
130131
memberid:string,
131132
timestamp:(number|undefined),
132133
position:number,
133134
length:number,
134-
setProperties:!Object
135+
setProperties:!odf.Formatting.StyleData
135136
}}*/
136137
ops.OpApplyDirectStyling.InitSpec;

webodf/lib/ops/OpUpdateParagraphStyle.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ ops.OpUpdateParagraphStyle = function OpUpdateParagraphStyle() {
3232
"use strict";
3333

3434
var memberid, timestamp, styleName,
35+
/**@type{!odf.Formatting.StyleData}*/
3536
setProperties,
3637
/**@type{{attributes:string}}*/
3738
removedProperties,
@@ -147,15 +148,15 @@ ops.OpUpdateParagraphStyle = function OpUpdateParagraphStyle() {
147148
memberid:string,
148149
timestamp:number,
149150
styleName:string,
150-
setProperties:Object,
151+
setProperties:!odf.Formatting.StyleData,
151152
removedProperties:{attributes:string}
152153
}}*/
153154
ops.OpUpdateParagraphStyle.Spec;
154155
/**@typedef{{
155156
memberid:string,
156157
timestamp:(number|undefined),
157158
styleName:string,
158-
setProperties:Object,
159+
setProperties:!odf.Formatting.StyleData,
159160
removedProperties:{attributes:string}
160161
}}*/
161162
ops.OpUpdateParagraphStyle.InitSpec;

webodf/lib/ops/OperationTransformMatrix.js

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -60,8 +60,8 @@ ops.OperationTransformMatrix = function OperationTransformMatrix() {
6060

6161
/**
6262
* Returns a list with all attributes in setProperties that refer to styleName
63-
* @param {Object} setProperties
64-
* @param {string} styleName
63+
* @param {?odf.Formatting.StyleData} setProperties
64+
* @param {!string} styleName
6565
* @return {!Array.<!string>}
6666
*/
6767
function getStyleReferencingAttributes(setProperties, styleName) {
@@ -80,8 +80,9 @@ ops.OperationTransformMatrix = function OperationTransformMatrix() {
8080
return attributes;
8181
}
8282
/**
83-
* @param {Object} setProperties
84-
* @param {string} deletedStyleName
83+
* @param {?odf.Formatting.StyleData} setProperties
84+
* @param {!string} deletedStyleName
85+
* @return {undefined}
8586
*/
8687
function dropStyleReferencingAttributes(setProperties, deletedStyleName) {
8788
/**
@@ -194,7 +195,7 @@ ops.OperationTransformMatrix = function OperationTransformMatrix() {
194195

195196
/**
196197
* Estimates if there are any properties set in the given properties object.
197-
* @param {!Object} properties
198+
* @param {!odf.Formatting.StyleData} properties
198199
* @return {!boolean}
199200
*/
200201
function hasProperties(properties) {
@@ -230,20 +231,21 @@ ops.OperationTransformMatrix = function OperationTransformMatrix() {
230231
}
231232

232233
/**
233-
* @param {Object.<string,Object.<string,*>>} minorSet
234-
* @param {Object.<string,{attributes:string}>} minorRem
235-
* @param {Object.<string,Object.<string,*>>} majorSet
236-
* @param {Object.<string,{attributes:string}>} majorRem
237-
* @param {string} propertiesName
234+
* @param {?odf.Formatting.StyleData} minorSet
235+
* @param {?Object.<string,{attributes:string}>} minorRem
236+
* @param {?odf.Formatting.StyleData} majorSet
237+
* @param {?Object.<string,{attributes:string}>} majorRem
238+
* @param {!string} propertiesName
238239
* @return {?{majorChanged:boolean,minorChanged:boolean}}
239240
*/
240241
function dropOverruledAndUnneededProperties(minorSet, minorRem, majorSet, majorRem, propertiesName) {
241-
var minorSP = minorSet ? minorSet[propertiesName] : null,
242+
var minorSP = /**@type{?odf.Formatting.StyleData}*/(minorSet ? minorSet[propertiesName] : null),
242243
minorRP = minorRem ? minorRem[propertiesName] : null,
243-
majorSP = majorSet ? majorSet[propertiesName] : null,
244+
majorSP = /**@type{?odf.Formatting.StyleData}*/(majorSet ? majorSet[propertiesName] : null),
244245
majorRP = majorRem ? majorRem[propertiesName] : null,
245246
result;
246247

248+
// TODO: also care for nested properties, like there can be e.g. with text:paragraph-properties
247249
result = dropOverruledAndUnneededAttributes(minorSP, minorRP, majorSP, majorRP);
248250

249251
// remove empty setProperties

0 commit comments

Comments
 (0)