-
Notifications
You must be signed in to change notification settings - Fork 22
Expand file tree
/
Copy pathjamStyles-min.jsxinc
More file actions
2 lines (2 loc) · 22.1 KB
/
jamStyles-min.jsxinc
File metadata and controls
2 lines (2 loc) · 22.1 KB
1
2
// jamStyles.jsxinc v4.5 (minified)
if(typeof jamStyles!=='object') {var jamStyles={};(function() {jamStyles.isStylesFile=function(file) {return(file.type==='8BSL')||file.name.match(/\.asl$/i);};jamStyles.isStylesPalette=function(file) {return file.name.match(/^Styles.psp$/i);};jamStyles.toLayerEffectsObject=function(layerEffects) {function restoreDesc(desc,hintData) {var restoredDesc={};for(var key in desc) {if(desc.hasOwnProperty(key)) {var value=desc[key];var typedValue=null;var restoredList;switch(key) {case"align":case"antiAlias":case"antialiasGloss":case"continuity":case"dither":case"enabled":case"invert":case"invertTexture":case"layerConceals":case"linked":case"reverse":case"showTransparency":case"useGlobalAngle":case"useShape":case"useTexture":case"vectorColor":typedValue=["<boolean>",value];break;case"book":case"ID":case"name":typedValue=["<string>",localize(value)];break;case"bookKey":typedValue=["<data>",value];break;case"bookID":case"location":case"midpoint":case"randomSeed":case"smoothness":typedValue=["<integer>",value];break;case"a":case"b":case"black":case"blue":case"brightness":case"cyan":case"gray":case"green":case"interpolation":case"luminance":case"magenta":case"red":case"saturation":case"yellowColor":typedValue=["<double>",value];break;case"angle":case"hue":case"localLightingAngle":case"localLightingAltitude":typedValue=["<unitDouble>",["angleUnit",value]];break;case"chokeMatte":case"highlightOpacity":case"inputRange":case"noise":case"opacity":case"scale":case"shadingNoise":case"shadowOpacity":case"strengthRatio":case"textureDepth":typedValue=["<unitDouble>",["percentUnit",value]];break;case"blur":case"distance":case"size":case"softness":typedValue=["<unitDouble>",["pixelsUnit",value]];break;case"horizontal":case"vertical":typedValue=(hintData)?["<unitDouble>",[hintData,value]]:["<double>",value];break;case"type":var enumType;switch(value) {case"linear":case"radial":case"angle":case"reflected":case"diamond":case"shapeburst":enumType="gradientType";break;case"foregroundColor":case"backgroundColor":case"userStop":enumType="colorStopType";break;} typedValue=["<enumerated>",[enumType,value]];break;case"colorSpace":typedValue=["<enumerated>",["colorSpace",value]];break;case"gradientForm":typedValue=["<enumerated>",["gradientForm",value]];break;case"paintType":typedValue=["<enumerated>",["frameFill",value]];break;case"bevelDirection":typedValue=["<enumerated>",["bevelEmbossStampStyle",value]];break;case"bevelStyle":typedValue=["<enumerated>",["bevelEmbossStyle",value]];break;case"bevelTechnique":typedValue=["<enumerated>",["bevelTechnique",value]];break;case"glowTechnique":typedValue=["<enumerated>",["matteTechnique",value]];break;case"innerGlowSource":typedValue=["<enumerated>",["innerGlowSourceType",value]];break;case"style":typedValue=["<enumerated>",["frameStyle",value]];break;case"highlightMode":case"mode":case"shadowMode":typedValue=["<enumerated>",["blendMode",value]];break;case"bevelEmboss":case"chromeFX":case"dropShadow":case"frameFX":case"gradientFill":case"innerGlow":case"innerShadow":case"outerGlow":case"pattern":case"patternFill":case"solidFill":typedValue=["<object>",[key,restoreDesc(value)]];break;case"color":case"highlightColor":case"shadowColor":var colorClass;if((("book"in value)&&("name"in value))||(("bookID"in value)&&("bookKey"in value))) {colorClass="bookColor";} else if(("cyan"in value)&&("magenta"in value)&&("yellowColor"in value)&&("black"in value)) {colorClass="CMYKColorClass";} else if("gray"in value) {colorClass="grayscale";} else if(("hue"in value)&&("saturation"in value)&&("brightness"in value)) {colorClass="HSBColorClass";} else if(("luminance"in value)&&("a"in value)&&("b"in value)) {colorClass="labColor";} else if(("red"in value)&&("green"in value)&&("blue"in value)) {colorClass="RGBColor";} typedValue=["<object>",[colorClass,restoreDesc(value)]];break;case"gradient":typedValue=["<object>",["gradientClassEvent",restoreDesc(value)]];break;case"mappingShape":case"transparencyShape":typedValue=["<object>",["shapingCurve",restoreDesc(value)]];break;case"offset":typedValue=["<object>",["point",restoreDesc(value,"percentUnit")]];break;case"phase":typedValue=["<object>",["point",restoreDesc(value)]];break;case"minimum":case"maximum":restoredList=[];for(var i=0;i<value.length;i++) {restoredList.push(["<integer>",value[i]]);} typedValue=["<list>",restoredList];break;case"colors":restoredList=[];for(var i=0;i<value.length;i++) {restoredList.push(["<object>",["colorStop",restoreDesc(value[i])]]);} typedValue=["<list>",restoredList];break;case"transparency":restoredList=[];for(var i=0;i<value.length;i++) {restoredList.push(["<object>",["transparencyStop",restoreDesc(value[i])]]);} typedValue=["<list>",restoredList];break;case"curve":restoredList=[];for(var i=0;i<value.length;i++) {restoredList.push(["<object>",["curvePoint",restoreDesc(value[i])]]);} typedValue=["<list>",restoredList];break;case"layerEffects":typedValue=["<object>",["layerEffects",restoreDesc(value)]];break;} if(typedValue) {restoredDesc[key]=typedValue;}}} return restoredDesc;} return restoreDesc({"layerEffects":layerEffects})["layerEffects"];};jamStyles.fromLayerEffectsObject=function(layerEffectsObject) {return jamEngine.simplifyObject(layerEffectsObject);};jamStyles.toBlendOptionsObject=function(blendOptions) {function restoreDesc(desc) {var restoredDesc={};for(var key in desc) {if(desc.hasOwnProperty(key)) {var value=desc[key];var typedValue=null;var restoredList;switch(key) {case"blendClipped":case"blendInterior":case"layerMaskAsGlobalMask":case"transparencyShapesLayer":case"vectorMaskAsGlobalMask":typedValue=["<boolean>",value];break;case"srcBlackMin":case"srcBlackMax":case"srcWhiteMin":case"srcWhiteMax":case"destBlackMin":case"destBlackMax":case"destWhiteMin":case"destWhiteMax":typedValue=["<integer>",value];break;case"fillOpacity":case"opacity":typedValue=["<unitDouble>",["percentUnit",value]];break;case"mode":typedValue=["<enumerated>",["blendMode",value]];break;case"knockout":typedValue=["<enumerated>",["knockout",value]];break;case"channel":typedValue=["<reference>",[["channel",["<enumerated>",["channel",value]]]]];break;case"blendRange":restoredList=[];for(var i=0;i<value.length;i++) {restoredList.push(["<object>",["blendRange",restoreDesc(value[i])]]);} typedValue=["<list>",restoredList];break;case"channelRestrictions":restoredList=[];for(var i=0;i<value.length;i++) {restoredList.push(["<enumerated>",["channel",value[i]]]);} typedValue=["<list>",restoredList];break;case"blendOptions":typedValue=["<object>",["blendOptions",restoreDesc(value)]];break;} if(typedValue) {restoredDesc[key]=typedValue;}}} return restoredDesc;} return restoreDesc({"blendOptions":blendOptions})["blendOptions"];};jamStyles.fromBlendOptionsObject=function(blendOptionsObject) {var replaceChannelHook=function(desc,key,getDefaultValue) {var replacedValue=undefined;if(key==="channel") {var value=getDefaultValue(desc,key);replacedValue=value[0]["channel"];} return replacedValue;};return jamEngine.simplifyObject(blendOptionsObject,replaceChannelHook);};jamStyles.toDocumentModeObject=function(documentMode) {function restoreDesc(desc) {var restoredDesc={};for(var key in desc) {if(desc.hasOwnProperty(key)) {var value=desc[key];var typedValue=null;switch(key) {case"colorSpace":typedValue=["<enumerated>",["colorSpace",value]];break;case"depth":typedValue=["<integer>",value];break;case"documentMode":typedValue=["<object>",["documentMode",restoreDesc(value)]];break;} if(typedValue) {restoredDesc[key]=typedValue;}}} return restoredDesc;} return restoreDesc({"documentMode":documentMode})["documentMode"];};jamStyles.fromDocumentModeObject=function(documentModeObject) {return jamEngine.simplifyObject(documentModeObject);};function getDocumentMode() {var documentMode={};var saveMeaningfulIds=jamEngine.meaningfulIds;var saveParseFriendly=jamEngine.parseFriendly;jamEngine.meaningfulIds=true;jamEngine.parseFriendly=true;var resultDescObj;resultDescObj=jamEngine.jsonGet ([["property",["<property>","mode"]],["document",["<enumerated>",["ordinal","targetEnum"]]]]);documentMode["colorSpace"]=resultDescObj["mode"][1][1];resultDescObj=jamEngine.jsonGet ([["property",["<property>","depth"]],["document",["<enumerated>",["ordinal","targetEnum"]]]]);documentMode["depth"]=resultDescObj["depth"][1];jamEngine.meaningfulIds=saveMeaningfulIds;jamEngine.parseFriendly=saveParseFriendly;return documentMode;} function getDocumentResolution() {var saveMeaningfulIds=jamEngine.meaningfulIds;var saveParseFriendly=jamEngine.parseFriendly;jamEngine.meaningfulIds=true;jamEngine.parseFriendly=true;var resultDescObj=jamEngine.jsonGet ([["property",["<property>","resolution"]],["document",["<enumerated>",["ordinal","targetEnum"]]]]);jamEngine.meaningfulIds=saveMeaningfulIds;jamEngine.parseFriendly=saveParseFriendly;return resultDescObj["resolution"][1][1];} jamStyles.setLayerStyle=function(layerStyleObj,ignoreScale) {if(layerStyleObj&&(("blendOptions"in layerStyleObj)||("layerEffects"in layerStyleObj))) {var layerDesc={};if("blendOptions"in layerStyleObj) {defaultBlendOptionsObj={"mode":"normal","opacity":100,"fillOpacity":100,"channelRestrictions":[],"knockout":"none","blendInterior":false,"blendClipped":true,"transparencyShapesLayer":true,"layerMaskAsGlobalMask":false,"vectorMaskAsGlobalMask":false,"blendRange":[]};var documentMode=getDocumentMode();var channelRestrictions;var blendRangeChannels;switch(documentMode["colorSpace"]) {case"CMYKColorEnum":case"CMYK64":channelRestrictions=["cyan","magenta","yellow","black"];blendRangeChannels=["gray","cyan","magenta","yellow","black"];break;case"duotone":case"grayScale":case"gray16":channelRestrictions=["black"];blendRangeChannels=["black"];break;case"labColor":case"lab48":channelRestrictions=["lightness","a","b"];blendRangeChannels=["lightness","a","b"];break;case"RGBColor":case"RGB48":channelRestrictions=["red","green","blue"];blendRangeChannels=["gray","red","green","blue"];break;} defaultBlendOptionsObj["channelRestrictions"]=channelRestrictions;for(var i=0;i<blendRangeChannels.length;i++) {defaultBlendRangeObj={"channel":blendRangeChannels[i],"srcBlackMin":0,"srcBlackMax":0,"srcWhiteMin":255,"srcWhiteMax":255,"destBlackMin":0,"destBlackMax":0,"destWhiteMin":255,"destWhiteMax":255};defaultBlendOptionsObj["blendRange"].push(defaultBlendRangeObj);} var blendOptionsObj=jamUtils.mergeData(layerStyleObj["blendOptions"],defaultBlendOptionsObj);var blendOptionsDesc=this.toBlendOptionsObject(blendOptionsObj)[1][1];for(var key in blendOptionsDesc) {if(blendOptionsDesc.hasOwnProperty(key)) {layerDesc[key]=blendOptionsDesc[key];}}} var layerEffects;if("layerEffects"in layerStyleObj) {layerEffects=layerStyleObj["layerEffects"];layerDesc["layerEffects"]=this.toLayerEffectsObject(layerEffects);} jamEngine.jsonPlay ("set",{"target":["<reference>",[["layer",["<enumerated>",["ordinal","targetEnum"]]]]],"to":["<object>",["layer",layerDesc]]});if(layerEffects) {if(("scale"in layerEffects)&&(!ignoreScale)) {this.scaleLayerEffects((getDocumentResolution()/72)/(layerEffects["scale"]/100)*100);}}} else {this.clearLayerStyle();}};function getPresetStylesCount() {var saveMeaningfulIds=jamEngine.meaningfulIds;var saveParseFriendly=jamEngine.parseFriendly;jamEngine.meaningfulIds=true;jamEngine.parseFriendly=true;var resultDescObj=jamEngine.jsonGet ([["property",["<property>","presetManager"]],["application",["<enumerated>",["ordinal","targetEnum"]]]]);var presetManagerArr=resultDescObj["presetManager"][1];var presetStylesCount;for(var i=0;i<presetManagerArr.length;i++) {var preset=presetManagerArr[i][1];if(preset[0]==="styleClass") {presetStylesCount=preset[1]["name"][1].length;break;}} jamEngine.meaningfulIds=saveMeaningfulIds;jamEngine.parseFriendly=saveParseFriendly;return presetStylesCount;} function isStyledLayer() {var saveMeaningfulIds=jamEngine.meaningfulIds;var saveParseFriendly=jamEngine.parseFriendly;jamEngine.meaningfulIds=true;jamEngine.parseFriendly=true;var isLayer=false;try {var resultDescObj=jamEngine.jsonGet ([["property",["<property>","background"]],["layer",["<enumerated>",["ordinal","targetEnum"]]]]);isLayer=!resultDescObj["background"][1];} catch(e) {} var saveMeaningfulIds=jamEngine.meaningfulIds;var saveParseFriendly=jamEngine.parseFriendly;return isLayer;} jamStyles.getLayerStyle=function() {var layerStyleObj=null;if(isStyledLayer()) {var presetStylesCountBefore=getPresetStylesCount();var date=new Date();var tempStyleName="Temp-Layer-Style-"+date.getTime();try {jamEngine.jsonPlay ("make",{"target":["<reference>",[["style",["<class>",null]]]],"name":["<string>",tempStyleName],"using":["<reference>",[["layer",["<enumerated>",["ordinal","targetEnum"]]]]],"blendOptions":["<boolean>",true],"layerEffects":["<boolean>",true]});} catch(e) {} var presetStylesCount=getPresetStylesCount();if(presetStylesCount===(presetStylesCountBefore+1)) {var tempStylesFile=new File(Folder.temp+"/"+tempStyleName+".asl");jamEngine.jsonPlay ("set",{"target":["<path>",tempStylesFile.fsName],"to":["<list>",[["<reference>",[["style",["<index>",presetStylesCount]]]]]]});jamEngine.jsonPlay ("delete",{"target":["<list>",[["<reference>",[["style",["<index>",presetStylesCount]]]]]]});var tempStylesFileData=this.dataFromStylesFile(tempStylesFile);if(typeof tempStylesFileData==='string') {alert(tempStylesFileData+"\n"+"Styles file: “"+File.decode(tempStylesFile.name)+"”");} else {layerStyleObj=tempStylesFileData["styles"][0];if("name"in layerStyleObj) {delete layerStyleObj["name"];} if("ID"in layerStyleObj) {delete layerStyleObj["ID"];} if("documentMode"in layerStyleObj) {delete layerStyleObj["documentMode"];} if("layerEffects"in layerStyleObj) {var layerEffects=layerStyleObj["layerEffects"];if("masterFXSwitch"in layerEffects) {delete layerEffects["masterFXSwitch"];}}} if(arguments.length>0) {var extraInfo=arguments[0];if(extraInfo&&(extraInfo.constructor===Object)) {if("patterns"in extraInfo) {var tempStylesFilePatterns=this.patternsFromStylesFile(tempStylesFile);if(typeof tempStylesFilePatterns==='string') {alert(tempStylesFilePatterns+"\n"+"Styles file: “"+File.decode(tempStylesFile.name)+"”");} else {extraInfo["patterns"]=tempStylesFilePatterns;}}}} tempStylesFile.remove();}} return layerStyleObj;};jamStyles.copyLayerStyle=function() {try {jamEngine.jsonPlay("copyEffects",null);} catch(e) {}};jamStyles.pasteLayerStyle=function() {try {jamEngine.jsonPlay("pasteEffects",{});} catch(e) {}};jamStyles.clearLayerStyle=function() {try {jamEngine.jsonPlay ("disableLayerStyle",{"target":["<reference>",[["layer",["<enumerated>",["ordinal","targetEnum"]]]]]});} catch(e) {}};jamStyles.applyLayerStyle=function(styleName,merge) {var descriptor={"target":["<reference>",[["style",["<name>",styleName]]]],"to":["<reference>",[["layer",["<enumerated>",["ordinal","targetEnum"]]]]]};if((typeof merge!=='undefined')&&merge) {descriptor["merge"]=["<boolean>",merge];} jamEngine.jsonPlay("applyStyle",descriptor);};jamStyles.scaleLayerEffects=function(scale) {jamEngine.jsonPlay("scaleEffectsEvent",{"scale":["<unitDouble>",["percentUnit",scale]]});};jamStyles.removeLayerEffect=function(effect) {try {jamEngine.jsonPlay ("disableSingleFX",{"target":["<reference>",[[effect,["<class>",null]],["layer",["<enumerated>",["ordinal","targetEnum"]]]]]});} catch(e) {}};jamStyles.removeLayerEffects=function(effects) {for(var i=0;i<effects.length;i++) {this.removeLayerEffect(effects[i]);}};jamStyles.removeAllLayerEffects=function() {try {jamEngine.jsonPlay ("disableLayerFX",{"target":["<reference>",[["layer",["<enumerated>",["ordinal","targetEnum"]]]]]});} catch(e) {}};jamStyles.showHideLayerEffects=function(effects,show) {var references=[];for(var i=0;i<effects.length;i++) {references.push (["<reference>",[[effects[i],["<class>",null]],["layer",["<enumerated>",["ordinal","targetEnum"]]]]]);} try {jamEngine.jsonPlay((show)?"show":"hide",{"target":["<list>",references]},DialogModes.NO);} catch(e) {}};jamStyles.showHideLayerEffect=function(effect,show) {this.showHideLayerEffects([effect],show);};jamStyles.showHideAllLayerEffects=function(show) {this.showHideLayerEffects(["layerEffects"],show);};jamStyles.showHideAllDocumentEffects=function(show) {jamEngine.jsonPlay ("set",{"target":["<reference>",[["property",["<property>","layerFXVisible"]],["document",["<enumerated>",["ordinal","targetEnum"]]]]],"to":["<object>",["layerFXVisible",{"layerFXVisible":["<boolean>",show||false]}]]});};function setGlobalAngle(target,globalLightingAngle,globalAltitude) {var globalAngle={"globalLightingAngle":["<unitDouble>",["angleUnit",globalLightingAngle]]};if(typeof globalAltitude!=='undefined') {globalAngle["globalAltitude"]=["<unitDouble>",["angleUnit",globalAltitude]];} jamEngine.jsonPlay ("set",{"target":["<reference>",[["property",["<property>","globalAngle"]],[target,["<enumerated>",["ordinal","targetEnum"]]]]],"to":["<object>",["globalAngle",globalAngle]]});};jamStyles.setApplicationGlobalAngle=function(globalLightingAngle,globalAltitude) {setGlobalAngle("application",globalLightingAngle,globalAltitude);};jamStyles.setDocumentGlobalAngle=function(globalLightingAngle,globalAltitude) {setGlobalAngle("document",globalLightingAngle,globalAltitude);};function readBEInt(file,byteCount) {var bytes=file.read(byteCount);var intValue=0;for(var index=0;index<byteCount;index++) {intValue=(intValue<<8)+bytes.charCodeAt(index);} return intValue;} function readUnicodeString(file) {var unicodeString="";var unicodeLength=readBEInt(file,4);for(var index=0;index<unicodeLength;index++) {var unicodeChar=readBEInt(file,2);if(unicodeChar!==0) {unicodeString+=String.fromCharCode(unicodeChar);}} return unicodeString;} function readBytes(file,byteCount) {return file.read(byteCount);} function readPascalString(file) {var stringLength=readBEInt(file,1);return readBytes(file,stringLength);} jamStyles.dataFromStylesFile=function(stylesFile,includePatternsInfo) {var imageModes=["Bitmap","Grayscale","Indexed","RGB","CMYK",null,null,"Multichannel","Duotone","Lab"];var file;if(typeof stylesFile==='string') {file=new File(stylesFile);} else if(stylesFile instanceof File) {file=stylesFile;} var fileData;if(file.open("r")) {try {file.encoding='BINARY';var formatVersion;if(this.isStylesPalette(file)) {formatVersion=2;} else if(this.isStylesFile(file)) {formatVersion=readBEInt(file,2);} if(formatVersion===2) {var magicNumber=file.read(4);if(magicNumber==='8BSL') {var subVersion=readBEInt(file,2);if(subVersion===3) {var patternsLength=readBEInt(file,4);var patternsEnd=file.tell()+patternsLength;if(includePatternsInfo) {var patterns=[];while(file.tell()<patternsEnd) {var pattern={};var patternLength=readBEInt(file,4);var patternEnd=file.tell()+patternLength;var patternVersion=readBEInt(file,4);pattern["version"]=patternVersion;if(patternVersion===1) {pattern["imageMode"]=imageModes[readBEInt(file,4)];pattern["height"]=readBEInt(file,2);pattern["width"]=readBEInt(file,2);pattern["name"]=readUnicodeString(file);pattern["ID"]=readPascalString(file);} else {pattern["error"]="Unsupported version";} patterns.push(pattern);file.seek(patternEnd+((4-(patternLength%4))%4),0);}} file.seek(patternsEnd,0);var saveMeaningfulIds=jamEngine.meaningfulIds;var saveParseFriendly=jamEngine.parseFriendly;jamEngine.meaningfulIds=true;jamEngine.parseFriendly=true;var actionDescriptor;var jsonDesc;var styles=[];var styleCount=readBEInt(file,4);for(var i=0;i<styleCount;i++) {var style={};var styleLength=readBEInt(file,4);var styleEnd=file.tell()+styleLength;actionDescriptor=jamActions.readActionDescriptor(file);jsonDesc=jamEngine.classIdAndActionDescriptorToJson(0,actionDescriptor)["<descriptor>"];style["name"]=jsonDesc["name"][1];style["ID"]=jsonDesc["ID"][1];actionDescriptor=jamActions.readActionDescriptor(file);jsonDesc=jamEngine.classIdAndActionDescriptorToJson(0,actionDescriptor)["<descriptor>"];if("documentMode"in jsonDesc) {style["documentMode"]=this.fromDocumentModeObject(jsonDesc["documentMode"]);} if("blendOptions"in jsonDesc) {style["blendOptions"]=this.fromBlendOptionsObject(jsonDesc["blendOptions"]);} if("layerEffects"in jsonDesc) {style["layerEffects"]=this.fromLayerEffectsObject(jsonDesc["layerEffects"]);} styles.push(style);file.seek(styleEnd,0);} jamEngine.meaningfulIds=saveMeaningfulIds;jamEngine.parseFriendly=saveParseFriendly;fileData={};if(includePatternsInfo) {fileData["patterns"]=patterns;} fileData["styles"]=styles;} else {throw new Error("[jamStyles.dataFromStylesFile] Unrecognized sub-version: "+subVersion);}} else {throw new Error("[jamStyles.dataFromStylesFile] Unrecognized magic number: "+magicNumber);}} else {throw new Error("[jamStyles.dataFromStylesFile] Unrecognized format version: "+formatVersion);}} catch(e) {fileData=e.message;} finally {file.close();}} else {fileData="[jamStyles.dataFromStylesFile] Cannot open file";} return fileData;};jamStyles.patternsFromStylesFile=function(stylesFile) {var file;if(typeof stylesFile==='string') {file=new File(stylesFile);} else if(stylesFile instanceof File) {file=stylesFile;} var patternsData;if(file.open("r")) {try {file.encoding='BINARY';var formatVersion;if(this.isStylesPalette(file)) {formatVersion=2;} else if(this.isStylesFile(file)) {formatVersion=readBEInt(file,2);} if(formatVersion===2) {var magicNumber=file.read(4);if(magicNumber==='8BSL') {var subVersion=readBEInt(file,2);if(subVersion===3) {var patternsLength=readBEInt(file,4);var patternsEnd=file.tell()+patternsLength;var patternsData=[];while(file.tell()<patternsEnd) {var patternLength=readBEInt(file,4);patternsData.push(readBytes(file,patternLength));file.seek((4-(patternLength%4))%4,1);}} else {throw new Error("[jamStyles.patternsFromStylesFile] Unrecognized sub-version: "+subVersion);}} else {throw new Error("[jamStyles.patternsFromStylesFile] Unrecognized magic number: "+magicNumber);}} else {throw new Error("[jamStyles.patternsFromStylesFile] Unrecognized format version: "+formatVersion);}} catch(e) {patternsData=e.message;} finally {file.close();}} else {patternsData="[jamStyles.patternsFromStylesFile] Cannot open file";} return patternsData;};jamStyles.patternsFileFromPatterns=function(patternsFile,patternsData) {var file;if(typeof patternsFile==='string') {file=new File(patternsFile);} else if(patternsFile instanceof File) {file=patternsFile;} if(file.open('w','8BPT','8BIM')) {file.encoding="BINARY";file.write('8BPT');file.write('\x00\x01');var count=patternsData.length;file.write(String.fromCharCode((count>>24)&0xFF,(count>>16)&0xFF,(count>>8)&0xFF,count&0xFF));for(var index=0;index<count;index++) {file.write(patternsData[index]);} file.close();}};}());}