-
-
Notifications
You must be signed in to change notification settings - Fork 162
/
Copy pathmain.js.map
1 lines (1 loc) · 427 KB
/
main.js.map
1
{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///external \"./lib/dart_style\"","webpack:///external \"./lib/js-yaml\"","webpack:///./src/ui/styles.styl","webpack:///./node_modules/css-loader/dist/runtime/api.js","webpack:///./node_modules/css-loader/dist/runtime/getUrl.js","webpack:///./node_modules/preact/dist/preact.module.js","webpack:///./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack:///./src/core/constants.js","webpack:///./src/core/context.js","webpack:///./src/core/dart_export.js","webpack:///./src/core/decorators/abstractdecorator.js","webpack:///./src/core/decorators/blend.js","webpack:///./src/core/decorators/blur.js","webpack:///./src/core/decorators/comment.js","webpack:///./src/core/decorators/layout.js","webpack:///./src/core/decorators/ontap.js","webpack:///./src/core/decorators/prototypeinteraction.js","webpack:///./src/core/image_export.js","webpack:///./src/core/log.js","webpack:///./src/core/nodes/abstractnode.js","webpack:///./src/core/nodes/abstractwidget.js","webpack:///./src/core/nodes/artboard.js","webpack:///./src/core/nodes/component.js","webpack:///./src/core/nodes/container.js","webpack:///./src/core/nodes/grid.js","webpack:///./src/core/nodes/group.js","webpack:///./src/core/nodes/path.js","webpack:///./src/core/nodes/shape.js","webpack:///./src/core/nodes/text.js","webpack:///./src/core/nodetype.js","webpack:///./src/core/parameter.js","webpack:///./src/core/parse.js","webpack:///./src/core/project.js","webpack:///./src/core/proptype.js","webpack:///./src/core/pubspec.js","webpack:///./src/core/semver.js","webpack:///./src/ui/alert.jsx","webpack:///./src/ui/assets/bg-transparent.png","webpack:///./src/ui/assets/icon-edit.png","webpack:///./src/ui/assets/icon-error.png","webpack:///./src/ui/assets/icon-folder.png","webpack:///./src/ui/assets/icon-info.png","webpack:///./src/ui/assets/icon-warning.png","webpack:///./src/ui/assets/[email protected]","webpack:///./src/ui/assets/[email protected]","webpack:///./src/ui/formutils.jsx","webpack:///./src/ui/main.jsx","webpack:///./src/ui/preview.jsx","webpack:///./src/ui/render_preview.js","webpack:///./src/ui/results.jsx","webpack:///./src/ui/settings.jsx","webpack:///./src/ui/styles.styl?8277","webpack:///./src/utils/debug.js","webpack:///./src/utils/exportutils.js","webpack:///./src/utils/layoututils.js","webpack:///./src/utils/nameutils.js","webpack:///./src/utils/nodeutils.js","webpack:///./src/utils/utils.js","webpack:///./src/version.js","webpack:///external \"application\"","webpack:///external \"assets\"","webpack:///external \"clipboard\"","webpack:///external \"os\"","webpack:///external \"scenegraph\"","webpack:///external \"uxp\""],"names":["PropType","require","ExportMode","Object","freeze","INLINE","METHOD","BUILDER","CUSTOM","exports","ExportModeOptions","id","label","DEFAULT_CUSTOM_CODE","DEFAULT_CLASS_PREFIX","DEFAULT_COLORS_CLASS_NAME","DEFAULT_CHAR_STYLES_CLASS_NAME","HELP_URL","REQUIRED_PARAM","_","DEFAULT_PLUGIN_DATA","WIDGET_PREFIX","ENABLE_PROTOTYPE","NORMALIZE_NAME_CASE","INCLUDE_NAME_COMMENTS","Log","trace","ContextTarget","FILES","CLIPBOARD","Context","constructor","target","_debugLog","_userLog","log","widgetNameSet","artboards","masterComponents","componentInstances","widgets","widgetStack","resultMessage","_gridDepth","_fonts","fonts","keys","_currentWidget","stack","l","length","useDebugLog","useUserLog","pushGrid","popGrid","inGrid","pushWidget","node","widgetName","push","popWidget","pop","addArtboard","_checkWidgetName","symbolId","addFont","font","xdNode","addComponentInstance","instances","isMaster","i","getComponentFromXdNode","instance","getArtboardFromXdNode","guid","addImport","name","isWidget","scope","widget","usesPinned","addBuildMethod","str","addShapeData","removeShapeData","addParam","param","addChildParam","finish","error","xd","assets","clipboard","$","NodeUtils","ExportUtils","cleanIdentifierName","cleanDartName","parse","formatDart","NodeType","project","alert","checkXDVersion","getTextStyleParamList","getTextStyle","copySelected","selection","root","getSelectedItem","type","getType","isCopyable","ROOT","WIDGET","ctx","result","layout","enabled","_formatDart","serialize","slice","copyText","dump","exportAll","checkRoot","codeF","code","count","total","assign","n","getProp","INCLUDE_IN_EXPORT_PROJECT","fileName","writeWidget","exportColors","exportCharStyles","validate","getExportAllMessage","exportSelected","msg","SymbolInstance","getCmdKeyStr","fileStr","serializeWidget","writeFile","EXPORT_COLORS","entries","colors","get","lists","usedNames","names","className","COLORS_CLASS_NAME","asset","warn","isGradient","color","match","exec","o","parseInt","getGradientTypeFromAsset","getGradientFromAsset","getColor","s","_getColorList","EXPORT_CHAR_STYLES","characterStyles","CHAR_STYLES_CLASS_NAME","style","nestInFunct","e","module","AbstractDecorator","cosmetic","nodeStr","_serialize","Blend","create","blend","blendMode","MODE_MAP","bounds","boundsInParent","mode","region","Group","isFixedSize","lx","fix","x","ly","y","lw","width","lh","height","Container","Blur","blur","visible","isBackgroundEffect","Math","round","brightnessAmount","clipType","Rectangle","filterParam","_getImageFilterParam","_getImageFilter","sigStr","blurAmount","nodetype","Comment","hasDefaultName","shorten","getXDLabel","getAlignment","addSizedBox","getGroupContentBounds","hasComplexTransform","Layout","reset","LayoutType","NONE","direction","LayoutDirection","BOTH","padding","isResponsive","shouldExpand","shouldFixSize","calculate","constraints","resizeConstraints","values","parent","xdParentLayout","tmp","pBounds","parentBounds","adjustedBounds","isVertical","orientation","VERTICAL","HORIZONTAL","shouldPin","_isFullWidth","_isFullHeight","PINNED","TRANSLATE","top","right","bottom","left","_isFullSize","_getPadding","_getAlignment","CENTER","ALIGN","alignment","_transform","_expand","_padding","_translate","_center","_align","_pinned","_getHPin","_getVPin","b","pb","_getDefaultPin","_getPin","cSt","cSz","cEnd","bSt","bSz","pSz","end","middle","params","joinValues","isOrigin","almostEqual","transform","flipY","_getAngle","rotation","size","r","t","hStr","w","vStr","h","PI","_isCentered","x1","x2","y1","y2","OnTap","getParam","onTap","PrototypeInteraction","getInteractionCount","list","triggeredInteractions","interaction","trigger","action","transition","artboard","destination","_getTransitionParam","_getEaseParam","_getDurationParam","TRANSITION_TYPE_MAP","dir","TRANSITION_SIDE_MAP","fromSide","ease","TRANSITION_EASE_MAP","easing","duration","app","exportImage","getImageName","imageF","images","data","_scanForImages","_exportImageData","exportAllImages","imageNames","includeInExportAll","_pruneImageMap","getImagePath","_getImageFileName","path","activeNames","map","children","forEach","child","fill","ImageFill","_ImageData","add","imgW","naturalWidth","imgH","naturalHeight","RESOLUTION_AWARE","_exportImageFile","maxW","maxH","aspect","maxScale","min","max","imagesX3","imagesX2","xNode","rect","file","getFile","note","getRelPath","_getRenditionType","opts","outputFile","scale","RenditionType","JPG","quality","createRenditions","then","results","catch","mimeType","PNG","_getImageExtension","ext","globalBounds","version","message","startTime","Date","now","severity","LogSeverity","NOTE","entry","Entry","hash","getResults","warnings","errors","WARNING","ERROR","debug","time","padStart","padEnd","fatal","FATAL","getHash","toString","BLACKWATCH_PLAID","getAdjustedBounds","Parameter","AbstractNode","parameters","decorators","hasDecorators","_cache","_getLayout","hasChildren","xdId","xdName","addDecorator","decorator","key","value","getParamName","_decorate","_getChildList","childStr","_getChildStack","AbstractWidget","_childParameters","_buildMethods","_memberNames","_shapeData","_imports","getWidgetName","propStr","paramStr","nullsafe","NULL_SAFE","required","bodyStr","_serializeWidgetBody","importStr","_getImportListString","shapeDataStr","_getShapeDataProps","buildMethodsStr","_getBuildMethods","_checkMemberName","shape","k","getShapeDataName","toSvgString","imports","isWidgetImport","_getParamList","Artboard","_getBackgroundColorParam","fillEnabled","Color","stops","colorStops","DartType","Component","tapCB","TAP_CALLBACK_NAME","TAP_CB","master","Ellipse","RadialGradient","AngularGradient","getAssetImage","IMAGE_PARAM_NAME","IMAGE","isRect","_getSizeParams","_getColorOrDecorationParam","_getMarginParam","radiusX","radiusY","margin","stroke","hasRoundedCorners","shadow","_getFillParam","_getDecorationParam","getParamList","_getBorderRadiusParam","_getBorderParam","_getBoxShadowParam","startsWith","blurFillOpacity","fillOpacity","opacity","getOpacity","image","_getBoxFit","scaleBehavior","_getOpacityColorFilterParam","gradient","getGradientParam","SCALE_COVER","strokeEnabled","strokePosition","GraphicNode","INNER_STROKE","strokeJoins","STROKE_JOIN_MITER","dashes","strokeDashArray","reduce","a","strokeWidth","radiusStr","_getBorderRadiusForEllipse","_getBorderRadiusForRectangle","radii","cornerRadii","tl","topLeft","tr","topRight","br","bottomRight","bl","bottomLeft","_getRadiusParam","getString","getScrollView","Grid","RepeatGrid","item","DATA_PARAM_NAME","GRID_DATA","paddingX","paddingY","itemIsResponsive","_itemIsResponsive","_stripVirtualGroup","_getParams","childData","Array","paramVarStr","ns","vals","mapParamName","childDataStr","join","dataParamName","itemStr","xSpacing","ySpacing","cellW","cellSize","cellH","aspectRatio","cols","colCount","delta","abs","kids","_diff","xdNodes","Text","pName","TEXT_PARAM_NAME","_getName","_diffField","_getText","_getImage","childNode","at","valueF","force","diff","text","normalizeSpacings","normalizePadding","mergeBounds","ScrollableGroup","buildMethodName","_mode","EXPORT_MODE","BUILD_METHOD_NAME","getDefaultBuildMethodName","background","_normalizeChildren","_getCustomCode","mask","_serializeFlex","_addPadding","_addBackground","_addScrolling","CUSTOM_CODE","index","tag","repStr","settings","JSON","_getFlexChildren","space","xdLayout","spaces","spacings","reverse","localBounds","bg","bgNode","pad","homogenous","vp","viewport","Path","Polygon","Line","BooleanGroup","Shape","fromPath","nodes","rejectNextAdd","viewBox","_svgString","_calculateViewBox","vb","aggressive","canAdd","hasInteraction","svg","fit","transformRect","getSvgId","_svgId","vx","vy","vw","vh","_serializeSvgGroup","_calculateAggregateViewBox","hasLink","hasTap","ignoreTransform","_serializeSvgNode","xform","_getSvgTransform","pathStr","pathData","hasImageFill","hasGradientFill","LinearGradient","getRGBHex","CENTER_STROKE","imagePath","imageWidth","imageHeight","strokeOpacity","strokeDash","strokeGap","strokeOffset","strokeDashOffset","strokeMiterLimit","strokeCap","strokeEndCaps","strokeJoin","fillAttrib","strokeAttrib","STROKE_CAP_BUTT","hasShadow","filterAttrib","defs","stop","offset","startX","startY","endX","endY","inv","gradientTransform","invert","start","transformPoint","fx","fy","fr","startR","cx","cy","endR","c","d","f","translate","transformAttrib","minX","Number","MAX_VALUE","minY","maxX","maxY","boundsR","boundsB","STRING","COLOR_PARAM_NAME","COLOR","styleRanges","_getTextRich","clippedByArea","_addSizeBox","getStyleParam","_getTextStyleParamList","lineSpacing","_getTextHeightBehavior","_getTextAlignParam","_getSoftWrapParam","styles","j","defaultStyleParams","hasTextHeight","styleParams","getParamDelta","_getTextSpan","substr","layoutBox","POINT","textAlign","_getTextAlign","align","isDefault","FIXED_HEIGHT","isStyleRange","_checkForUnsupportedFeatures","_getFontFamily","_getFontFamilyParam","_getFontSizeParam","_getColorParam","_getLetterSpacingParam","_getFontStyleParam","_getFontWeightParam","_getTextDecorationParam","_getHeightParam","_getShadowsParam","textScript","textTransform","paragraphSpacing","getFlutterFont","fontFamily","fontSize","charSpacing","_getFontStyle","fontStyle","toLowerCase","FONT_STYLES_RE","val","FONT_STYLES","weight","_getFontWeight","FONT_WEIGHTS_RE","FONT_WEIGHTS","u","underline","strikethrough","_getShadow","_buildStyleRegExp","RegExp","TEXT","GROUP","GRID","SHAPE","getLabel","cleanFileName","ParseMode","NORMAL","SYMBOLS_AS_GROUPS","targetXdNode","gatherWidgets","parseScenegraphNode","combineShapes","NODE_FACTORIES","DECORATOR_FACTORIES","ignoreVisible","isArtboard","isComponent","RootNode","parsed","parseChildren","addWidgetImports","fixCase","hasCombinedShapes","isFile","inGroup","shapeIndex","maxCount","aggressiveGroup","COMBINE_SHAPES","onlyChild","splice","fs","storage","localFileSystem","Pubspec","projectAlert","prompt","Project","_Folder","EXPORT_PATH","CODE_PATH","DefaultPath","CODE","IMAGE_PATH","IMAGE_X2","IMAGE_X3","hasRoot","promptForRoot","readFile","PUBSPEC_WARNING","pubspec","checkFonts","_checkDependencies","checkAssets","getFolder","_verifyRoot","_f","_path","nativePath","setProp","_prop","getEntry","read","concat","checkDependencies","XD_PACKAGE","checkNullSafe","prop","defaultPath","_parent","_defaultPath","_getF","createFile","overwrite","_getFullPath","content","write","_getRelPath","fullPath","parentF","_getNestedF","split","err","shift","createFolder","isFolder","_hasRootPath","cleanPath","WIDGET_NAME","FLUTTER_FONT","IMAGE_FILL_NAME","INCLUDE_IN_EXPORT_ALL_IMAGES","FLATTEN_TO_IMAGE","yaml","SemVer","load","_warn","reason","flutter","family","_checkListEntries","_checkMapEntries","dependencies","paths","errs","sdk","environment","sdkResult","requiresAtLeast","adobe_xd","xdResult","_logMissingEntry","noun","_hasMissingEntries","missing","comparisonFunction","_checkListEntry","low","high","isValid","_low","_high","_isValid","isLessThan","isSatisfiedBy","Version","compare","includesAtLeast","getInvalid","isInvalid","test","v","charAt","major","minor","patch","re","constraint","build","isNaN","isEqual","isGreaterThan","versionString","fullVersionString","parts","render","Fragment","iconError","iconWarning","iconPlugin","dialog","callback","closeDialog","preventDefault","close","openDialog","contents","cb","document","createElement","body","appendChild","showModal","Chrome","title","cancel","cta","default","closeLabel","__html","cancelLabel","ctaLabel","resultsAlert","getResultsCategory","copyResults","codeEditorAlert","handler","querySelector","getCategoryString","trim","icon","getCategoryTitle","editDocument","initInputHandlers","component","handleInput","handleNodeInputChanged","handleBlurAsCleanPath","handleBlur","handleBlurAsClassName","handleBlurAsCustomCode","cleanCustomCode","event","state","editLabel","setFlutterFont","props","setImageName","setState","cleanFxn","TextInputWithLabel","Label","TextInput","onBlur","placeholder","readonly","TextArea","Checkbox","Select","options","os","Preview","Results","Settings","nodeutils","image_export","dart_export","FlutterPanel","context","notifier","listen","updateResults","exportSelectedItem","selected","copySelectedItem","multi","isRoot","hasImage","getContainingComponent","platform","Notifier","notify","panelHolder","update","show","items","panels","flutterPanel","commands","_testDartStyle","_printdumpNodePluginData","_imageFlipTest","_dumpTransformData","_dumpLayoutData","render_preview","rendition","componentDidMount","renderPreview","shouldComponentUpdate","nextProps","nextState","getPreview","isMultiple","noPreview","toUpperCase","previewFile","initPreview","getTemporaryFolder","folder","retryCount","delay","format","formats","binary","base64ArrayBuffer","arrayBuffer","base64","encodings","bytes","Uint8Array","byteLength","byteRemainder","mainLength","chunk","shell","xdVersionOk","xdVersionRequired","errorMsg","getErrorMsg","hasErrors","Alert","iconFolder","iconEdit","iconInfo","isComponentInstance","ComponentWarning","getWarning","some","ProjectSettings","pluginData","setProjectFolder","getState","TextSettings","flutterFont","WidgetSettings","getDefaultWidgetName","GridSettings","hasParam","ShapeSettings","GroupSettings","renderModeOptions","arr","openCodeEditor","rest","console","_printParameters","depth","printParameters","_printTree","clear","stringify","imgSrc","__dumpTransformData","_calculateTransform","__pointToString","topLeftInParent","__rectToString","__calculateTransform","lb","_dumpPluginData","_dumpNodePluginData","el","maxT","toFixed","BOOL","getARGBHexWithOpacity","escapeString","getGradient","_getLinearGradient","_getRadialGradient","_getSweepGradient","xdColorAsset","_getColorsParam","gradientType","RADIAL","_getScrollDirectionParam","_getTransformParam","_getRotationMtx","mtx","cos","sin","scrollingType","PANNING","bip","getScrollOffset","offsetX","offsetY","DART_RESERVED_WORDS","DART_RESERVED_WORDS_MAP","buildMap","replace","cleanClassName","words","findWords","word","prev","isSingleCap","pushNonEmpty","lastIndex","inclusive","fontMap","xdFont","_getWidgetPrefix","_getNormalizeNames","getImageHash","getImageId","imageMap","assetId","_getImageFillName","fillStr","num","digits","p","pow","capitalize","getColorComponent","g","Promise","setTimeout","url","defaultParams","enumName","enumeration","charCodeAt","v0","v1","delimiter","filter","isIdentityTransform","xdVersion"],"mappings":";;QAAA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;;QAGA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA,0CAA0C,gCAAgC;QAC1E;QACA;;QAEA;QACA;QACA;QACA,wDAAwD,kBAAkB;QAC1E;QACA,iDAAiD,cAAc;QAC/D;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,yCAAyC,iCAAiC;QAC1E,gHAAgH,mBAAmB,EAAE;QACrI;QACA;;QAEA;QACA;QACA;QACA,2BAA2B,0BAA0B,EAAE;QACvD,iCAAiC,eAAe;QAChD;QACA;QACA;;QAEA;QACA,sDAAsD,+DAA+D;;QAErH;QACA;;;QAGA;QACA;;;;;;;;;;;;AClFA,6C;;;;;;;;;;;ACAA,0C;;;;;;;;;;;ACAA;AACA,kCAAkC,mBAAO,CAAC,wGAAmD;AAC7F,sCAAsC,mBAAO,CAAC,8GAAsD;AACpG,oCAAoC,mBAAO,CAAC,yDAAsB;AAClE,oCAAoC,mBAAO,CAAC,yDAAsB;AAClE,oCAAoC,mBAAO,CAAC,uEAA6B;AACzE;AACA;AACA;AACA;AACA;AACA,cAAc,QAAS,kBAAkB,gEAAgE,gEAAgE,GAAG,KAAK,mBAAmB,GAAG,WAAW,+BAA+B,GAAG,cAAc,gBAAgB,gBAAgB,8BAA8B,mBAAmB,GAAG,UAAU,mBAAmB,8BAA8B,mBAAmB,2BAA2B,kBAAkB,GAAG,oBAAoB,gCAAgC,qBAAqB,gBAAgB,mBAAmB,oBAAoB,kBAAkB,2BAA2B,mCAAmC,GAAG,uCAAuC,mBAAmB,kBAAkB,2BAA2B,cAAc,GAAG,kDAAkD,kBAAkB,GAAG,8CAA8C,mBAAmB,gBAAgB,kBAAkB,GAAG,uCAAuC,mBAAmB,0BAA0B,wBAAwB,wBAAwB,GAAG,4CAA4C,wCAAwC,GAAG,6CAA6C,6DAA6D,GAAG,sBAAsB,kBAAkB,2BAA2B,GAAG,sCAAsC,qBAAqB,gEAAgE,gBAAgB,kBAAkB,iBAAiB,4BAA4B,8BAA8B,GAAG,mDAAmD,gBAAgB,iBAAiB,wBAAwB,qBAAqB,GAAG,kDAAkD,kBAAkB,uBAAuB,uBAAuB,2BAA2B,qBAAqB,GAAG,4CAA4C,wBAAwB,GAAG,wDAAwD,mBAAmB,GAAG,yDAAyD,kBAAkB,GAAG,iCAAiC,yBAAyB,GAAG,uBAAuB,kBAAkB,2BAA2B,gCAAgC,uBAAuB,uBAAuB,GAAG,0EAA0E,kBAAkB,wBAAwB,gBAAgB,GAAG,wFAAwF,cAAc,qBAAqB,GAAG,gDAAgD,iBAAiB,wBAAwB,oCAAoC,GAAG,8CAA8C,uBAAuB,qBAAqB,GAAG,8BAA8B,qBAAqB,GAAG,+EAA+E,oBAAoB,GAAG,qCAAqC,kBAAkB,oBAAoB,gBAAgB,GAAG,oCAAoC,kBAAkB,sBAAsB,2BAA2B,mBAAmB,GAAG,0CAA0C,iBAAiB,gBAAgB,sBAAsB,GAAG,uCAAuC,mBAAmB,mBAAmB,GAAG,oCAAoC,oBAAoB,GAAG,iDAAiD,qBAAqB,GAAG,uFAAuF,gBAAgB,cAAc,GAAG,+IAA+I,qBAAqB,GAAG,8BAA8B,yBAAyB,gBAAgB,GAAG,iDAAiD,kBAAkB,sBAAsB,mBAAmB,qBAAqB,gBAAgB,2BAA2B,0BAA0B,wBAAwB,cAAc,mBAAmB,GAAG,sEAAsE,mBAAmB,oBAAoB,GAAG,sDAAsD,qBAAqB,GAAG,8BAA8B,wBAAwB,iBAAiB,oBAAoB,kBAAkB,gBAAgB,2BAA2B,GAAG,kCAAkC,gBAAgB,0BAA0B,uBAAuB,iBAAiB,GAAG,sBAAsB,2BAA2B,sBAAsB,mBAAmB,GAAG,wBAAwB,0BAA0B,wBAAwB,wBAAwB,GAAG,6BAA6B,sBAAsB,GAAG,4BAA4B,kBAAkB,2BAA2B,wBAAwB,sBAAsB,GAAG,2DAA2D,mBAAmB,wBAAwB,0BAA0B,wBAAwB,GAAG,6BAA6B,qBAAqB,gBAAgB,GAAG,4BAA4B,mBAAmB,GAAG,UAAU,qBAAqB,kBAAkB,wBAAwB,GAAG,4BAA4B,mBAAmB,GAAG,gBAAgB,kBAAkB,kCAAkC,2BAA2B,GAAG,aAAa,0BAA0B,GAAG,uBAAuB,iBAAiB,gBAAgB,sBAAsB,wBAAwB,GAAG,gBAAgB,sBAAsB,qBAAqB,iBAAiB,kCAAkC,qBAAqB,qBAAqB,qBAAqB,wBAAwB,GAAG,sBAAsB,sBAAsB,GAAG,sCAAsC,wBAAwB,GAAG,iBAAiB,cAAc,eAAe,GAAG,uBAAuB,gBAAgB,qBAAqB,kBAAkB,sCAAsC,qBAAqB,GAAG;AAC99L;AACA;;;;;;;;;;;;;ACba;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;;AAEhB;AACA;AACA;;AAEA;AACA,4CAA4C,qBAAqB;AACjE;;AAEA;AACA,KAAK;AACL,IAAI;AACJ;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,qBAAqB,iBAAiB;AACtC;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,qBAAqB;AACzC;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,8BAA8B;;AAE9B;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA,CAAC;;;AAGD;AACA;AACA;AACA,qDAAqD,cAAc;AACnE;AACA,C;;;;;;;;;;;;AC7Fa;;AAEb;AACA;AACA;AACA;AACA,GAAG;;;AAGH;;AAEA;AACA;AACA,GAAG;;;AAGH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;;AAGA;AACA;AACA;;AAEA;AACA,E;;;;;;;;;;;;ACjCA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAAsB,sEAAsE,gBAAgB,yBAAyB,SAAS,cAAc,mBAAmB,oBAAoB,kBAAkB,uBAAuB,6CAA6C,oCAAoC,mBAAmB,iBAAiB,sIAAsI,gCAAgC,oBAAoB,OAAO,iGAAiG,6BAA6B,aAAa,SAAS,cAAc,kBAAkB,gBAAgB,4BAA4B,gBAAgB,0DAA0D,UAAU,eAAe,oDAAoD,0CAA0C,cAAc,QAAQ,gCAAgC,8BAA8B,eAAe,wCAAwC,uBAAuB,MAAM,aAAa,cAAc,8FAA8F,aAAa,kBAAkB,yBAAyB,2BAA2B,EAAE,UAAU,4EAA4E,gFAAgF,8BAA8B,2CAA2C,sEAAsE,YAAY,sFAAsF,aAAa,IAAI,KAAK,4CAA4C,YAAY,MAAM,OAAO,0HAA0H,iDAAiD,wCAAwC,gDAAgD,KAAK,YAAY,uBAAuB,qBAAqB,oBAAoB,+BAA+B,sDAAsD,aAAa,4DAA4D,IAAI,qBAAqB,QAAQ,IAAI,0BAA0B,aAAa,WAAW,0BAA0B,kBAAkB,mEAAmE,qCAAqC,WAAW,gBAAgB,uIAAuI,SAAS,sBAAsB,MAAM,sCAAsC,mGAAmG,kBAAkB,0FAA0F,sBAAsB,cAAc,0FAA0F,gEAAgE,KAAK,+EAA+E,4CAA4C,sJAAsJ,+ZAA+Z,cAAc,qCAAqC,8BAA8B,iCAAiC,sCAAsC,gBAAgB,IAAI,2BAA2B,yPAAyP,sIAAsI,6NAA6N,KAAK,gMAAgM,iGAAiG,eAAe,8BAA8B,QAAQ,gHAAgH,4BAA4B,EAAE,iNAAiN,2LAA2L,kCAAkC,mBAAmB,SAAS,aAAa,aAAa,gBAAgB,qCAAqC,IAAI,oCAAoC,UAAU,EAAE,SAAS,gBAAgB,EAAE,4BAA4B,kCAAkC,gDAAgD,WAAW,4EAA4E,cAAc,MAAM,YAAY,mDAAmD,wGAAwG,8EAA8E,eAAe,oHAAoH,iBAAiB,KAAK,sBAAsB,kDAAkD,kEAAkE,gQAAgQ,SAAS,kBAAkB,IAAI,sCAAsC,SAAS,YAAY,kBAAkB,UAAU,sKAAsK,8BAA8B,yBAAyB,SAAS,WAAW,kBAAkB,mBAAmB,WAAW,sBAAsB,cAAc,kBAAkB,6BAA6B,kBAAkB,UAAU,0LAA0L,gBAAgB,SAAS,gBAAgB,eAAe,8GAA8G,cAAc,QAAQ,IAAI,2CAA2C,qBAAqB,sBAAsB,aAAa,mEAAmE,oBAAoB,wCAAwC,sCAAsC,uBAAuB,EAAE,sBAAsB,UAAU,6BAA6B,kCAAkC,uCAAuC,eAAe,kCAAkC,GAAG,kBAAkB,YAAY,OAAO,yBAAyB,0MAA0M,SAAS,IAAI,SAAS,eAAe,uCAAuC,oCAAoC,MAAM,8CAA8C,8HAA8H,qCAAqC,oDAAoD,0HAAkU;AAC57R;;;;;;;;;;;;;ACDa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,uDAAuD;;AAEvD;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;;AAEA;AACA,iBAAiB,iBAAiB;AAClC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,gBAAgB,KAAwC,GAAG,sBAAiB,GAAG,SAAI;;AAEnF;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA,kCAAkC;;AAElC;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA,yDAAyD;AACzD,GAAG;;AAEH;;;AAGA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA,0BAA0B;AAC1B;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,gCAAgC,kCAAkC;AAClE;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,E;;;;;;;;;;;AC7OA;;;;;;;;;;;AAYA,MAAMA,WAAWC,mBAAOA,CAAC,gDAAR,CAAjB;;AAEA;AACA,IAAIC,aAAaC,OAAOC,MAAP,CA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","file":"main.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./src/ui/main.jsx\");\n","module.exports = require(\"./lib/dart_style\");","module.exports = require(\"./lib/js-yaml\");","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_GET_URL_IMPORT___ = require(\"../../node_modules/css-loader/dist/runtime/getUrl.js\");\nvar ___CSS_LOADER_URL_IMPORT_0___ = require(\"./assets/[email protected]\");\nvar ___CSS_LOADER_URL_IMPORT_1___ = require(\"./assets/[email protected]\");\nvar ___CSS_LOADER_URL_IMPORT_2___ = require(\"./assets/bg-transparent.png\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\nvar ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___);\nvar ___CSS_LOADER_URL_REPLACEMENT_2___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_2___);\n// Module\nexports.push([module.id, \"ignore.ignore {\\n background: url(\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \");\\n background: url(\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \");\\n}\\na {\\n color: #0d66d0;\\n}\\na:hover {\\n text-decoration: underline;\\n}\\n.separator {\\n width: 100%;\\n height: 2px;\\n background-color: #eaeaea;\\n margin: 16px 0;\\n}\\n.label {\\n color: #8e8e8e;\\n text-transform: uppercase;\\n font-size: 9px;\\n letter-spacing: 0.18em;\\n margin: 8px 0;\\n}\\n#panel-container {\\n height: calc(100vh - 110px);\\n max-width: 400px;\\n width: 100%;\\n margin: 0 auto;\\n font-size: 10px;\\n display: flex;\\n flex-direction: column;\\n justify-content: space-between;\\n}\\n#panel-container .actions-container {\\n flex: 0 1 auto;\\n display: flex;\\n flex-direction: column;\\n margin: 0;\\n}\\n#panel-container .actions-container .separator {\\n margin: 8px 0;\\n}\\n#panel-container .actions-container button {\\n display: block;\\n width: 100%;\\n margin: 4px 0;\\n}\\n#panel-container .options-container {\\n overflow: auto;\\n margin-bottom: 0.5rem;\\n margin-right: -12px;\\n padding-right: 12px;\\n}\\n#panel-container[data-platform*='win32'] {\\n font-family: 'Segoe UI', sans-serif;\\n}\\n#panel-container[data-platform*='darwin'] {\\n font-family: -apple-system, 'Helvetica Neue', sans-serif;\\n}\\n.preview-container {\\n display: flex;\\n flex-direction: column;\\n}\\n.preview-container .preview-canvas {\\n background: #fff;\\n background: url(\" + ___CSS_LOADER_URL_REPLACEMENT_2___ + \");\\n width: 100%;\\n height: 160px;\\n padding: 4px;\\n margin: 0 auto 4px auto;\\n border: solid 1px #eaeaea;\\n}\\n.preview-container .preview-canvas .preview-img {\\n width: 100%;\\n height: 100%;\\n object-fit: contain;\\n overflow: hidden;\\n}\\n.preview-container .preview-canvas .preview-no {\\n display: none;\\n line-height: 144px;\\n text-align: center;\\n letter-spacing: 0.05em;\\n font-weight: 600;\\n}\\n.preview-container .preview-canvas.multi {\\n background: #e1e1e1;\\n}\\n.preview-container .preview-canvas.multi .preview-no {\\n display: block;\\n}\\n.preview-container .preview-canvas.multi .preview-img {\\n display: none;\\n}\\n.preview-container .separator {\\n margin: 4px 0 12px 0;\\n}\\n.settings-container {\\n display: flex;\\n flex-direction: column;\\n justify-content: flex-start;\\n align-items: start;\\n overflow-x: hidden;\\n}\\n.settings-container .project-row,\\n.settings-container .customcode-row {\\n display: flex;\\n flex-direction: row;\\n width: 100%;\\n}\\n.settings-container .project-row button,\\n.settings-container .customcode-row button {\\n margin: 0;\\n margin-left: 2px;\\n}\\n.settings-container .customcode-row textarea {\\n height: 64px;\\n background: #f3f3f3;\\n font-family: Courier !important;\\n}\\n.settings-container .customcode-row button {\\n margin-left: -36px;\\n margin-top: 32px;\\n}\\n.settings-container .label {\\n margin-top: 16px;\\n}\\n.settings-container .separator + .label,\\n.settings-container *:first-child {\\n margin-top: 0px;\\n}\\n.settings-container .wrapping-row {\\n display: flex;\\n flex-wrap: wrap;\\n width: 100%;\\n}\\n.settings-container .warning-row {\\n display: flex;\\n font-weight: bold;\\n letter-spacing: 0.05em;\\n color: #f1aa25;\\n}\\n.settings-container .warning-row .icon {\\n height: 12px;\\n width: 12px;\\n margin-right: 8px;\\n}\\n.settings-container .warning-text p {\\n color: #3f3f3f;\\n margin: 12px 0;\\n}\\n.settings-container * + .warning {\\n margin-top: 8px;\\n}\\n.settings-container * + .warning .warning-row {\\n margin-top: 12px;\\n}\\n.settings-container .settings__text-input,\\n.settings-container .settings__textarea {\\n width: 100%;\\n margin: 0;\\n}\\n.settings-container .settings__text-input + .settings__checkbox-label,\\n.settings-container .settings__textarea + .settings__checkbox-label {\\n margin-top: 12px;\\n}\\n.settings-container select {\\n margin: 12px 0 4px 0;\\n width: 100%;\\n}\\n.settings-container .settings__checkbox-label {\\n display: flex;\\n flex-wrap: nowrap;\\n color: #3f3f3f;\\n max-width: 195px;\\n width: 100%;\\n justify-content: start;\\n align-content: center;\\n align-items: center;\\n margin: 0;\\n padding: 2px 0;\\n}\\n.settings-container .settings__checkbox-label input[type=checkbox] {\\n margin-left: 0;\\n margin-right: 0;\\n}\\n.settings-container .settings__checkbox-label span {\\n margin-top: -3px;\\n}\\n.settings-container p.note {\\n background: #eaeaea;\\n padding: 4px;\\n font-size: 10px;\\n margin: 4px 0;\\n width: 100%;\\n letter-spacing: 0.05em;\\n}\\n.settings-container p.note img {\\n height: 1em;\\n margin-bottom: -0.2em;\\n margin-top: -0.2em;\\n opacity: 0.5;\\n}\\n.results-container {\\n letter-spacing: 0.05em;\\n font-weight: bold;\\n color: #8e8e8e;\\n}\\n.results-container a {\\n display: inline-block;\\n margin-bottom: -2px;\\n font-weight: normal;\\n}\\n.results-container a.help {\\n font-weight: bold;\\n}\\n.results-container a img {\\n height: 1.1em;\\n margin-bottom: -0.25em;\\n margin-top: -0.25em;\\n margin-right: 2px;\\n}\\n.results-container .version,\\n.results-container .alert {\\n color: #3f3f3f;\\n background: #eaeaea;\\n padding: 0.25em 0.5em;\\n margin-right: 0.5em;\\n}\\n.results-container .alert {\\n background: #b20;\\n color: #fff;\\n}\\n.results-container .vdiv {\\n padding: 0 6px;\\n}\\ndialog {\\n max-width: 600px;\\n padding: 16px;\\n padding-bottom: 8px;\\n}\\ndialog .text-information {\\n color: #8e8e8e;\\n}\\ndialog .icon {\\n height: 1.4em;\\n margin: -0.2em 0.2em 0 -0.2em;\\n vertical-align: middle;\\n}\\ndialog hr {\\n margin: 12px 0 12px 0;\\n}\\ndialog .result-icon {\\n height: 16px;\\n width: 16px;\\n margin-right: 8px;\\n margin-bottom: -3px;\\n}\\ndialog .list {\\n max-height: 200px;\\n min-height: 24px;\\n width: 500px;\\n border-top: 2px solid #e1e1e1;\\n background: #fff;\\n overflow-y: auto;\\n margin-top: 16px;\\n margin-bottom: 32px;\\n}\\ndialog .list > div {\\n padding: 8px 16px;\\n}\\ndialog .list > div:nth-child(even) {\\n background: #fafafa;\\n}\\ndialog footer {\\n margin: 0;\\n padding: 0;\\n}\\ndialog .code-editor {\\n width: 100%;\\n min-width: 480px;\\n height: 200px;\\n font-family: monospace !important;\\n white-space: pre;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\n// eslint-disable-next-line func-names\nmodule.exports = function (useSourceMap) {\n var list = []; // return the list of modules as css string\n\n list.toString = function toString() {\n return this.map(function (item) {\n var content = cssWithMappingToString(item, useSourceMap);\n\n if (item[2]) {\n return \"@media \".concat(item[2], \" {\").concat(content, \"}\");\n }\n\n return content;\n }).join('');\n }; // import a list of modules into the list\n // eslint-disable-next-line func-names\n\n\n list.i = function (modules, mediaQuery, dedupe) {\n if (typeof modules === 'string') {\n // eslint-disable-next-line no-param-reassign\n modules = [[null, modules, '']];\n }\n\n var alreadyImportedModules = {};\n\n if (dedupe) {\n for (var i = 0; i < this.length; i++) {\n // eslint-disable-next-line prefer-destructuring\n var id = this[i][0];\n\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n\n for (var _i = 0; _i < modules.length; _i++) {\n var item = [].concat(modules[_i]);\n\n if (dedupe && alreadyImportedModules[item[0]]) {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n if (mediaQuery) {\n if (!item[2]) {\n item[2] = mediaQuery;\n } else {\n item[2] = \"\".concat(mediaQuery, \" and \").concat(item[2]);\n }\n }\n\n list.push(item);\n }\n };\n\n return list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n var content = item[1] || ''; // eslint-disable-next-line prefer-destructuring\n\n var cssMapping = item[3];\n\n if (!cssMapping) {\n return content;\n }\n\n if (useSourceMap && typeof btoa === 'function') {\n var sourceMapping = toComment(cssMapping);\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || '').concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n }\n\n return [content].join('\\n');\n} // Adapted from convert-source-map (MIT)\n\n\nfunction toComment(sourceMap) {\n // eslint-disable-next-line no-undef\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n return \"/*# \".concat(data, \" */\");\n}","\"use strict\";\n\nmodule.exports = function (url, options) {\n if (!options) {\n // eslint-disable-next-line no-param-reassign\n options = {};\n } // eslint-disable-next-line no-underscore-dangle, no-param-reassign\n\n\n url = url && url.__esModule ? url.default : url;\n\n if (typeof url !== 'string') {\n return url;\n } // If url is already wrapped in quotes, remove them\n\n\n if (/^['\"].*['\"]$/.test(url)) {\n // eslint-disable-next-line no-param-reassign\n url = url.slice(1, -1);\n }\n\n if (options.hash) {\n // eslint-disable-next-line no-param-reassign\n url += options.hash;\n } // Should url be wrapped?\n // See https://drafts.csswg.org/css-values-3/#urls\n\n\n if (/[\"'() \\t\\n]/.test(url) || options.needQuotes) {\n return \"\\\"\".concat(url.replace(/\"/g, '\\\\\"').replace(/\\n/g, '\\\\n'), \"\\\"\");\n }\n\n return url;\n};","var n,l,u,t,i,o,r,f={},e=[],c=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord/i;function s(n,l){for(var u in l)n[u]=l[u];return n}function a(n){var l=n.parentNode;l&&l.removeChild(n)}function h(n,l,u){var t,i=arguments,o={};for(t in l)\"key\"!==t&&\"ref\"!==t&&(o[t]=l[t]);if(arguments.length>3)for(u=[u],t=3;t<arguments.length;t++)u.push(i[t]);if(null!=u&&(o.children=u),\"function\"==typeof n&&null!=n.defaultProps)for(t in n.defaultProps)void 0===o[t]&&(o[t]=n.defaultProps[t]);return v(n,o,l&&l.key,l&&l.ref)}function v(l,u,t,i){var o={type:l,props:u,key:t,ref:i,__k:null,__:null,__b:0,__e:null,__d:null,__c:null,constructor:void 0};return n.vnode&&n.vnode(o),o}function p(){return{}}function y(n){return n.children}function d(n,l){this.props=n,this.context=l}function m(n,l){if(null==l)return n.__?m(n.__,n.__.__k.indexOf(n)+1):null;for(var u;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e)return u.__e;return\"function\"==typeof n.type?m(n):null}function w(n){var l,u;if(null!=(n=n.__)&&null!=n.__c){for(n.__e=n.__c.base=null,l=0;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e){n.__e=n.__c.base=u.__e;break}return w(n)}}function g(l){(!l.__d&&(l.__d=!0)&&1===u.push(l)||i!==n.debounceRendering)&&((i=n.debounceRendering)||t)(k)}function k(){var n,l,t,i,o,r,f;for(u.sort(function(n,l){return l.__v.__b-n.__v.__b});n=u.pop();)n.__d&&(t=void 0,i=void 0,r=(o=(l=n).__v).__e,(f=l.__P)&&(t=[],i=T(f,o,s({},o),l.__n,void 0!==f.ownerSVGElement,null,t,null==r?m(o):r),$(t,o),i!=r&&w(o)))}function _(n,l,u,t,i,o,r,c,s){var h,v,p,y,d,w,g,k=u&&u.__k||e,_=k.length;if(c==f&&(c=null!=o?o[0]:_?m(u,0):null),h=0,l.__k=b(l.__k,function(u){if(null!=u){if(u.__=l,u.__b=l.__b+1,null===(p=k[h])||p&&u.key==p.key&&u.type===p.type)k[h]=void 0;else for(v=0;v<_;v++){if((p=k[v])&&u.key==p.key&&u.type===p.type){k[v]=void 0;break}p=null}if(y=T(n,u,p=p||f,t,i,o,r,c,s),(v=u.ref)&&p.ref!=v&&(g||(g=[]),p.ref&&g.push(p.ref,null,u),g.push(v,u.__c||y,u)),null!=y){if(null==w&&(w=y),null!=u.__d)y=u.__d,u.__d=null;else if(o==p||y!=c||null==y.parentNode){n:if(null==c||c.parentNode!==n)n.appendChild(y);else{for(d=c,v=0;(d=d.nextSibling)&&v<_;v+=2)if(d==y)break n;n.insertBefore(y,c)}\"option\"==l.type&&(n.value=\"\")}c=y.nextSibling,\"function\"==typeof l.type&&(l.__d=y)}}return h++,u}),l.__e=w,null!=o&&\"function\"!=typeof l.type)for(h=o.length;h--;)null!=o[h]&&a(o[h]);for(h=_;h--;)null!=k[h]&&A(k[h],k[h]);if(g)for(h=0;h<g.length;h++)z(g[h],g[++h],g[++h])}function b(n,l,u){if(null==u&&(u=[]),null==n||\"boolean\"==typeof n)l&&u.push(l(null));else if(Array.isArray(n))for(var t=0;t<n.length;t++)b(n[t],l,u);else u.push(l?l(\"string\"==typeof n||\"number\"==typeof n?v(null,n,null,null):null!=n.__e||null!=n.__c?v(n.type,n.props,n.key,null):n):n);return u}function x(n,l,u,t,i){var o;for(o in u)o in l||P(n,o,null,u[o],t);for(o in l)i&&\"function\"!=typeof l[o]||\"value\"===o||\"checked\"===o||u[o]===l[o]||P(n,o,l[o],u[o],t)}function C(n,l,u){\"-\"===l[0]?n.setProperty(l,u):n[l]=\"number\"==typeof u&&!1===c.test(l)?u+\"px\":null==u?\"\":u}function P(n,l,u,t,i){var o,r,f,e,c;if(i?\"className\"===l&&(l=\"class\"):\"class\"===l&&(l=\"className\"),\"key\"===l||\"children\"===l);else if(\"style\"===l)if(o=n.style,\"string\"==typeof u)o.cssText=u;else{if(\"string\"==typeof t&&(o.cssText=\"\",t=null),t)for(r in t)u&&r in u||C(o,r,\"\");if(u)for(f in u)t&&u[f]===t[f]||C(o,f,u[f])}else\"o\"===l[0]&&\"n\"===l[1]?(e=l!==(l=l.replace(/Capture$/,\"\")),c=l.toLowerCase(),l=(c in n?c:l).slice(2),u?(t||n.addEventListener(l,N,e),(n.l||(n.l={}))[l]=u):n.removeEventListener(l,N,e)):\"list\"!==l&&\"tagName\"!==l&&\"form\"!==l&&\"type\"!==l&&!i&&l in n?n[l]=null==u?\"\":u:\"function\"!=typeof u&&\"dangerouslySetInnerHTML\"!==l&&(l!==(l=l.replace(/^xlink:?/,\"\"))?null==u||!1===u?n.removeAttributeNS(\"http://www.w3.org/1999/xlink\",l.toLowerCase()):n.setAttributeNS(\"http://www.w3.org/1999/xlink\",l.toLowerCase(),u):null==u||!1===u?n.removeAttribute(l):n.setAttribute(l,u))}function N(l){this.l[l.type](n.event?n.event(l):l)}function T(l,u,t,i,o,r,f,e,c){var a,h,v,p,m,w,g,k,x,C,P=u.type;if(void 0!==u.constructor)return null;(a=n.__b)&&a(u);try{n:if(\"function\"==typeof P){if(k=u.props,x=(a=P.contextType)&&i[a.__c],C=a?x?x.props.value:a.__:i,t.__c?g=(h=u.__c=t.__c).__=h.__E:(\"prototype\"in P&&P.prototype.render?u.__c=h=new P(k,C):(u.__c=h=new d(k,C),h.constructor=P,h.render=D),x&&x.sub(h),h.props=k,h.state||(h.state={}),h.context=C,h.__n=i,v=h.__d=!0,h.__h=[]),null==h.__s&&(h.__s=h.state),null!=P.getDerivedStateFromProps&&(h.__s==h.state&&(h.__s=s({},h.__s)),s(h.__s,P.getDerivedStateFromProps(k,h.__s))),p=h.props,m=h.state,v)null==P.getDerivedStateFromProps&&null!=h.componentWillMount&&h.componentWillMount(),null!=h.componentDidMount&&h.__h.push(h.componentDidMount);else{if(null==P.getDerivedStateFromProps&&k!==p&&null!=h.componentWillReceiveProps&&h.componentWillReceiveProps(k,C),!h.__e&&null!=h.shouldComponentUpdate&&!1===h.shouldComponentUpdate(k,h.__s,C)){for(h.props=k,h.state=h.__s,h.__d=!1,h.__v=u,u.__e=t.__e,u.__k=t.__k,h.__h.length&&f.push(h),a=0;a<u.__k.length;a++)u.__k[a]&&(u.__k[a].__=u);break n}null!=h.componentWillUpdate&&h.componentWillUpdate(k,h.__s,C),null!=h.componentDidUpdate&&h.__h.push(function(){h.componentDidUpdate(p,m,w)})}h.context=C,h.props=k,h.state=h.__s,(a=n.__r)&&a(u),h.__d=!1,h.__v=u,h.__P=l,a=h.render(h.props,h.state,h.context),u.__k=b(null!=a&&a.type==y&&null==a.key?a.props.children:a),null!=h.getChildContext&&(i=s(s({},i),h.getChildContext())),v||null==h.getSnapshotBeforeUpdate||(w=h.getSnapshotBeforeUpdate(p,m)),_(l,u,t,i,o,r,f,e,c),h.base=u.__e,h.__h.length&&f.push(h),g&&(h.__E=h.__=null),h.__e=null}else u.__e=j(t.__e,u,t,i,o,r,f,c);(a=n.diffed)&&a(u)}catch(l){n.__e(l,u,t)}return u.__e}function $(l,u){n.__c&&n.__c(u,l),l.some(function(u){try{l=u.__h,u.__h=[],l.some(function(n){n.call(u)})}catch(l){n.__e(l,u.__v)}})}function j(n,l,u,t,i,o,r,c){var s,a,h,v,p,y=u.props,d=l.props;if(i=\"svg\"===l.type||i,null==n&&null!=o)for(s=0;s<o.length;s++)if(null!=(a=o[s])&&(null===l.type?3===a.nodeType:a.localName===l.type)){n=a,o[s]=null;break}if(null==n){if(null===l.type)return document.createTextNode(d);n=i?document.createElementNS(\"http://www.w3.org/2000/svg\",l.type):document.createElement(l.type),o=null}if(null===l.type)null!=o&&(o[o.indexOf(n)]=null),y!==d&&n.data!=d&&(n.data=d);else if(l!==u){if(null!=o&&(o=e.slice.call(n.childNodes)),h=(y=u.props||f).dangerouslySetInnerHTML,v=d.dangerouslySetInnerHTML,!c){if(y===f)for(y={},p=0;p<n.attributes.length;p++)y[n.attributes[p].name]=n.attributes[p].value;(v||h)&&(v&&h&&v.__html==h.__html||(n.innerHTML=v&&v.__html||\"\"))}x(n,d,y,i,c),l.__k=l.props.children,v||_(n,l,u,t,\"foreignObject\"!==l.type&&i,o,r,f,c),c||(\"value\"in d&&void 0!==d.value&&d.value!==n.value&&(n.value=null==d.value?\"\":d.value),\"checked\"in d&&void 0!==d.checked&&d.checked!==n.checked&&(n.checked=d.checked))}return n}function z(l,u,t){try{\"function\"==typeof l?l(u):l.current=u}catch(l){n.__e(l,t)}}function A(l,u,t){var i,o,r;if(n.unmount&&n.unmount(l),(i=l.ref)&&(i.current&&i.current!==l.__e||z(i,null,u)),t||\"function\"==typeof l.type||(t=null!=(o=l.__e)),l.__e=l.__d=null,null!=(i=l.__c)){if(i.componentWillUnmount)try{i.componentWillUnmount()}catch(l){n.__e(l,u)}i.base=i.__P=null}if(i=l.__k)for(r=0;r<i.length;r++)i[r]&&A(i[r],u,t);null!=o&&a(o)}function D(n,l,u){return this.constructor(n,u)}function E(l,u,t){var i,r,c;n.__&&n.__(l,u),r=(i=t===o)?null:t&&t.__k||u.__k,l=h(y,null,[l]),c=[],T(u,(i?u:t||u).__k=l,r||f,f,void 0!==u.ownerSVGElement,t&&!i?[t]:r?null:e.slice.call(u.childNodes),c,t||f,i),$(c,l)}function H(n,l){E(n,l,o)}function I(n,l){return l=s(s({},n.props),l),arguments.length>2&&(l.children=e.slice.call(arguments,2)),v(n.type,l,l.key||n.key,l.ref||n.ref)}function L(n){var l={},u={__c:\"__cC\"+r++,__:n,Consumer:function(n,l){return n.children(l)},Provider:function(n){var t,i=this;return this.getChildContext||(t=[],this.getChildContext=function(){return l[u.__c]=i,l},this.shouldComponentUpdate=function(l){n.value!==l.value&&t.some(function(n){n.context=l.value,g(n)})},this.sub=function(n){t.push(n);var l=n.componentWillUnmount;n.componentWillUnmount=function(){t.splice(t.indexOf(n),1),l&&l.call(n)}}),n.children}};return u.Consumer.contextType=u,u}n={__e:function(n,l){for(var u,t;l=l.__;)if((u=l.__c)&&!u.__)try{if(u.constructor&&null!=u.constructor.getDerivedStateFromError&&(t=!0,u.setState(u.constructor.getDerivedStateFromError(n))),null!=u.componentDidCatch&&(t=!0,u.componentDidCatch(n)),t)return g(u.__E=u)}catch(l){n=l}throw n}},l=function(n){return null!=n&&void 0===n.constructor},d.prototype.setState=function(n,l){var u;u=this.__s!==this.state?this.__s:this.__s=s({},this.state),\"function\"==typeof n&&(n=n(u,this.props)),n&&s(u,n),null!=n&&this.__v&&(this.__e=!1,l&&this.__h.push(l),g(this))},d.prototype.forceUpdate=function(n){this.__v&&(this.__e=!0,n&&this.__h.push(n),g(this))},d.prototype.render=y,u=[],t=\"function\"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,o=f,r=0;export{E as render,H as hydrate,h as createElement,h,y as Fragment,p as createRef,l as isValidElement,d as Component,I as cloneElement,L as createContext,b as toChildArray,A as _unmount,n as options};\n//# sourceMappingURL=preact.module.js.map\n","\"use strict\";\n\nvar isOldIE = function isOldIE() {\n var memo;\n return function memorize() {\n if (typeof memo === 'undefined') {\n // Test for IE <= 9 as proposed by Browserhacks\n // @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805\n // Tests for existence of standard globals is to allow style-loader\n // to operate correctly into non-standard environments\n // @see https://github.com/webpack-contrib/style-loader/issues/177\n memo = Boolean(window && document && document.all && !window.atob);\n }\n\n return memo;\n };\n}();\n\nvar getTarget = function getTarget() {\n var memo = {};\n return function memorize(target) {\n if (typeof memo[target] === 'undefined') {\n var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n\n memo[target] = styleTarget;\n }\n\n return memo[target];\n };\n}();\n\nvar stylesInDom = {};\n\nfunction modulesToDom(moduleId, list, options) {\n for (var i = 0; i < list.length; i++) {\n var part = {\n css: list[i][1],\n media: list[i][2],\n sourceMap: list[i][3]\n };\n\n if (stylesInDom[moduleId][i]) {\n stylesInDom[moduleId][i](part);\n } else {\n stylesInDom[moduleId].push(addStyle(part, options));\n }\n }\n}\n\nfunction insertStyleElement(options) {\n var style = document.createElement('style');\n var attributes = options.attributes || {};\n\n if (typeof attributes.nonce === 'undefined') {\n var nonce = typeof __webpack_nonce__ !== 'undefined' ? __webpack_nonce__ : null;\n\n if (nonce) {\n attributes.nonce = nonce;\n }\n }\n\n Object.keys(attributes).forEach(function (key) {\n style.setAttribute(key, attributes[key]);\n });\n\n if (typeof options.insert === 'function') {\n options.insert(style);\n } else {\n var target = getTarget(options.insert || 'head');\n\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n\n target.appendChild(style);\n }\n\n return style;\n}\n\nfunction removeStyleElement(style) {\n // istanbul ignore if\n if (style.parentNode === null) {\n return false;\n }\n\n style.parentNode.removeChild(style);\n}\n/* istanbul ignore next */\n\n\nvar replaceText = function replaceText() {\n var textStore = [];\n return function replace(index, replacement) {\n textStore[index] = replacement;\n return textStore.filter(Boolean).join('\\n');\n };\n}();\n\nfunction applyToSingletonTag(style, index, remove, obj) {\n var css = remove ? '' : obj.css; // For old IE\n\n /* istanbul ignore if */\n\n if (style.styleSheet) {\n style.styleSheet.cssText = replaceText(index, css);\n } else {\n var cssNode = document.createTextNode(css);\n var childNodes = style.childNodes;\n\n if (childNodes[index]) {\n style.removeChild(childNodes[index]);\n }\n\n if (childNodes.length) {\n style.insertBefore(cssNode, childNodes[index]);\n } else {\n style.appendChild(cssNode);\n }\n }\n}\n\nfunction applyToTag(style, options, obj) {\n var css = obj.css;\n var media = obj.media;\n var sourceMap = obj.sourceMap;\n\n if (media) {\n style.setAttribute('media', media);\n } else {\n style.removeAttribute('media');\n }\n\n if (sourceMap && btoa) {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n } // For old IE\n\n /* istanbul ignore if */\n\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n while (style.firstChild) {\n style.removeChild(style.firstChild);\n }\n\n style.appendChild(document.createTextNode(css));\n }\n}\n\nvar singleton = null;\nvar singletonCounter = 0;\n\nfunction addStyle(obj, options) {\n var style;\n var update;\n var remove;\n\n if (options.singleton) {\n var styleIndex = singletonCounter++;\n style = singleton || (singleton = insertStyleElement(options));\n update = applyToSingletonTag.bind(null, style, styleIndex, false);\n remove = applyToSingletonTag.bind(null, style, styleIndex, true);\n } else {\n style = insertStyleElement(options);\n update = applyToTag.bind(null, style, options);\n\n remove = function remove() {\n removeStyleElement(style);\n };\n }\n\n update(obj);\n return function updateStyle(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap) {\n return;\n }\n\n update(obj = newObj);\n } else {\n remove();\n }\n };\n}\n\nmodule.exports = function (moduleId, list, options) {\n options = options || {}; // Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\n // tags it will allow on a page\n\n if (!options.singleton && typeof options.singleton !== 'boolean') {\n options.singleton = isOldIE();\n }\n\n moduleId = options.base ? moduleId + options.base : moduleId;\n list = list || [];\n\n if (!stylesInDom[moduleId]) {\n stylesInDom[moduleId] = [];\n }\n\n modulesToDom(moduleId, list, options);\n return function update(newList) {\n newList = newList || [];\n\n if (Object.prototype.toString.call(newList) !== '[object Array]') {\n return;\n }\n\n if (!stylesInDom[moduleId]) {\n stylesInDom[moduleId] = [];\n }\n\n modulesToDom(moduleId, newList, options);\n\n for (var j = newList.length; j < stylesInDom[moduleId].length; j++) {\n stylesInDom[moduleId][j]();\n }\n\n stylesInDom[moduleId].length = newList.length;\n\n if (stylesInDom[moduleId].length === 0) {\n delete stylesInDom[moduleId];\n }\n };\n};","/*\nCopyright 2020 Adobe\nAll Rights Reserved.\n\nNOTICE: Adobe permits you to use, modify, and distribute this file in\naccordance with the terms of the Adobe license agreement accompanying\nit. If you have received this file from a source other than Adobe,\nthen your use, modification, or distribution of it requires the prior\nwritten permission of Adobe. \n*/\n\n\nconst PropType = require(\"../core/proptype\");\n\n// a collection of miscellaneous constants that don't warrant their own files.\nlet ExportMode = Object.freeze({\n\tINLINE: \"inline\",\n\tMETHOD: \"method\",\n\tBUILDER: \"builder\",\n\tCUSTOM: \"custom\"\n});\nexports.ExportMode = ExportMode;\n\nexports.ExportModeOptions = [\n\t{id: ExportMode.INLINE, label: \"Export as inline code (default)\"},\n\t{id: ExportMode.METHOD, label: \"Export as build method\"},\n\t{id: ExportMode.BUILDER, label: \"Replace with builder param\"},\n\t{id: ExportMode.CUSTOM, label: \"Replace with custom code\"},\n];\n\nexports.DEFAULT_CUSTOM_CODE = \"Text('Hello World')\";\nexports.DEFAULT_CLASS_PREFIX = \"XD\";\nexports.DEFAULT_COLORS_CLASS_NAME = \"XDColors\";\nexports.DEFAULT_CHAR_STYLES_CLASS_NAME = \"XDTextStyles\";\nexports.HELP_URL = \"https://github.com/AdobeXD/xd-to-flutter-plugin/blob/master/README.md\";\nexports.REQUIRED_PARAM = {_:\"required param\"};\n\nexports.DEFAULT_PLUGIN_DATA = {\n\t[PropType.WIDGET_PREFIX]: exports.DEFAULT_CLASS_PREFIX,\n\t[PropType.ENABLE_PROTOTYPE]: true,\n\t[PropType.NORMALIZE_NAME_CASE]: true,\n\t[PropType.INCLUDE_NAME_COMMENTS]: true,\n};\n","/*\nCopyright 2020 Adobe\nAll Rights Reserved.\n\nNOTICE: Adobe permits you to use, modify, and distribute this file in\naccordance with the terms of the Adobe license agreement accompanying\nit. If you have received this file from a source other than Adobe,\nthen your use, modification, or distribution of it requires the prior\nwritten permission of Adobe. \n*/\n\nconst { Log } = require(\"./log\");\nconst { trace } = require('../utils/debug');\n\nconst ContextTarget = {\n\tFILES: 1,\n\tCLIPBOARD: 2,\n}\nexports.ContextTarget = ContextTarget;\n\nclass Context {\n\n\tconstructor(target) {\n\t\tthis._debugLog = new Log();\n\t\tthis._userLog = new Log();\n\t\tthis.log = this._userLog;\n\t\tthis.widgetNameSet = {};\n\t\tthis.artboards = {};\n\t\tthis.masterComponents = {};\n\t\tthis.componentInstances = {};\n\t\tthis.target = target;\n\t\tthis.widgets = {};\n\t\tthis.widgetStack = [];\n\t\tthis.resultMessage = null;\n\t\tthis._gridDepth = 0;\n\t\tthis._fonts = {};\n\t}\n\n\tget fonts() {\n\t\treturn Object.keys(this._fonts);\n\t}\n\n\tget _currentWidget() {\n\t\tlet stack = this.widgetStack, l = stack.length;\n\t\treturn l > 0 ? stack[l-1] : null;\n\t}\n\n\tuseDebugLog() {\n\t\tthis.log = this._debugLog;\n\t}\n\n\tuseUserLog() {\n\t\tthis.log = this._userLog;\n\t}\n\n\tpushGrid() {\n\t\tthis._gridDepth++;\n\t}\n\tpopGrid() {\n\t\tthis._gridDepth--;\n\t}\n\t\n\tget inGrid() { return this._gridDepth > 0; }\n\n\tpushWidget(node) {\n\t\tthis.widgets[node.widgetName] = node;\n\t\tthis.widgetStack.push(node);\n\t}\n\n\tpopWidget() {\n\t\tthis.widgetStack.pop();\n\t}\n\n\taddArtboard(node) {\n\t\tif (!this._checkWidgetName(node)) { return; }\n\t\tthis.artboards[node.symbolId] = node;\n\t\tthis.widgetNameSet[node.widgetName] = true;\n\t}\n\n\taddFont(font, xdNode) {\n\t\t// currently not using xdNode, but it's passed in so we can report it if needed.\n\t\tthis._fonts[font] = true;\n\t}\n\n\taddComponentInstance(node) {\n\t\tlet instances = this.componentInstances[node.symbolId];\n\t\tif (!instances) { instances = this.componentInstances[node.symbolId] = []; }\n\t\tif (node.isMaster && !this._checkWidgetName(node)) { return; }\n\t\t// Check if it's already in the instance list:\n\t\tfor (let i = 0; i < instances.length; ++i) {\n\t\t\tif (instances[i].xdNode === node.xdNode) { return; }\n\t\t}\n\t\tinstances.push(node);\n\t\tif (node.isMaster) {\n\t\t\tthis.masterComponents[node.symbolId] = node;\n\t\t\tthis.widgetNameSet[node.widgetName] = true;\n\t\t}\n\t}\n\n\tgetComponentFromXdNode(xdNode) {\n\t\tlet instances = this.componentInstances[xdNode.symbolId];\n\t\tfor (let i = 0; instances && i < instances.length; ++i) {\n\t\t\tlet instance = instances[i];\n\t\t\t// Comparing using equality to test if these xdNodes are the same reference\n\t\t\tif (instance.xdNode === xdNode) { return instance; }\n\t\t}\n\t\treturn null;\n\t}\n\n\tgetArtboardFromXdNode(xdNode) {\n\t\treturn this.artboards[xdNode.guid];\n\t}\n\n\taddImport(name, isWidget, scope) {\n\t\tlet widget = this._currentWidget;\n\t\tif (widget) { widget.addImport(name, isWidget, scope); }\n\t}\n\n\tusesPinned() {\n\t\tthis.addImport(\"package:adobe_xd/pinned.dart\");\n\t}\n\n\taddBuildMethod(name, str) {\n\t\tif (!this._currentWidget) { return; }\n\t\tthis._currentWidget.addBuildMethod(name, str, this);\n\t}\n\n\taddShapeData(node) {\n\t\tlet widget = this._currentWidget;\n\t\tif (widget) {\n\t\t\twidget.addShapeData(node);\n\t\t\tthis.addImport(\"package:flutter_svg/flutter_svg.dart\");\n\t\t}\n\t}\n\n\tremoveShapeData(node) {\n\t\tlet widget = this._currentWidget;\n\t\tif (widget) { widget.removeShapeData(node); }\n\t}\n\n\taddParam(param) {\n\t\tlet widget = this._currentWidget;\n\t\tif (!this.inGrid && widget) { widget.addChildParam(param, this); }\n\t}\n\n\t// Post process data gathered during the parse stage and seal the object\n\tfinish() {\n\t\tObject.freeze(this);\n\t}\n\n\t_checkWidgetName(node) {\n\t\tlet name = node.widgetName;\n\t\tif (!name) {\n\t\t\tthis.log.error(`Empty widget name.`, node.xdNode);\n\t\t\treturn false;\n\t\t}\n\t\tif (this.widgetNameSet[name]) {\n\t\t\tthis.log.error(`Duplicate widget name: ${name}.`, node.xdNode);\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t}\n\n}\n\nexports.Context = Context;\n","/*\nCopyright 2020 Adobe\nAll Rights Reserved.\n\nNOTICE: Adobe permits you to use, modify, and distribute this file in\naccordance with the terms of the Adobe license agreement accompanying\nit. If you have received this file from a source other than Adobe,\nthen your use, modification, or distribution of it requires the prior\nwritten permission of Adobe. \n*/\n\nconst xd = require(\"scenegraph\");\nconst assets = require(\"assets\");\nconst clipboard = require(\"clipboard\");\n\nconst $ = require(\"../utils/utils\");\nconst NodeUtils = require(\"../utils/nodeutils\");\nconst ExportUtils = require(\"../utils/exportutils\");\nconst { cleanIdentifierName, cleanDartName } = require(\"../utils/nameutils\");\n\nconst { trace } = require('../utils/debug');\nconst { Context, ContextTarget } = require(\"./context\");\nconst { parse } = require(\"./parse\");\nconst { formatDart } = require(\"../lib/dart_style\");\nconst PropType = require(\"./proptype\");\nconst NodeType = require(\"./nodetype\");\nconst { project } = require(\"./project\");\nconst { alert } = require(\"../ui/alert\");\nconst { checkXDVersion } = require(\"../version\");\nconst { getTextStyleParamList, getTextStyle } = require(\"./nodes/text\");\nconst { DEFAULT_COLORS_CLASS_NAME, DEFAULT_CHAR_STYLES_CLASS_NAME } = require(\"../core/constants\");\n\nasync function copySelected(selection, root) {\n\tif (!checkXDVersion()) { return; }\n\tlet xdNode = $.getSelectedItem(selection);\n\tif (!xdNode) { alert(\"Select a single item to copy.\"); return; }\n\tlet type = NodeType.getType(xdNode);\n\tlet isCopyable = type !== NodeType.ROOT && type !== NodeType.WIDGET;\n\tif (!isCopyable) {\n\t\talert(\"The selected item cannot be copied.\");\n\t\treturn null;\n\t}\n\n\tlet ctx = new Context(ContextTarget.CLIPBOARD);\n\n\tlet result, node = parse(root, xdNode, ctx);\n\tif (node) {\n\t\tnode.layout.enabled = false;\n\t\tresult = _formatDart(node.serialize(ctx)+';', true, ctx);\n\t}\n\n\tif (result && result.length > 1) {\n\t\tresult = result.slice(0, -1); // strip off trailing ';'\n\t\tclipboard.copyText(result);\n\t\tctx.resultMessage = \"Flutter code copied to clipboard\";\n\t} else {\n\t\tctx.resultMessage = \"Unable to export this node\";\n\t}\n\t\n\tctx.log.dump(ctx.resultMessage);\n\treturn ctx;\n}\n\nasync function exportAll(selection, root) {\n\tif (!checkXDVersion()) { return; }\n\tlet ctx = new Context(ContextTarget.FILES);\n\n\tif (!await project.checkRoot()) { return null; }\n\tlet codeF = project.code;\n\n\tlet count = 0, total = 0;\n\t// Parse entire document, getting all artboards and components, combining them in one object for iteration\n\tparse(root, null, ctx);\n\tlet widgets = Object.assign({}, ctx.artboards, ctx.masterComponents);\n\t// Write each widget to disk\n\tfor (let n in widgets) {\n\t\tif (NodeUtils.getProp(widgets[n].xdNode, PropType.INCLUDE_IN_EXPORT_PROJECT) === false)\n\t\t\tcontinue;\n\t\t++total;\n\t\tlet fileName = await writeWidget(widgets[n], codeF, ctx);\n\t\tif (fileName) { count++; }\n\t}\n\n\tawait exportColors(ctx);\n\tawait exportCharStyles(ctx);\n\tawait project.validate(ctx);\n\n\tctx.resultMessage = $.getExportAllMessage(count, total, \"widget\");\n\n\tctx.log.dump(ctx.resultMessage);\n\treturn ctx;\n}\n\nasync function exportSelected(selection, root) {\n\tif (!checkXDVersion()) { return; }\n\tlet xdNode = $.getSelectedItem(selection);\n\tif (!xdNode) { alert(\"Select an Artboard or Master Component.\"); return null; }\n\n\tif (!NodeUtils.isWidget(xdNode)) {\n\t\tlet msg = \"Only Artboards and Master Components can be exported as Widgets.\";\n\t\tif (xdNode instanceof xd.SymbolInstance) {\n\t\t\tmsg += ` Press <b>${$.getCmdKeyStr()}-Shift-K</b> to locate the Master Component.`;\n\t\t}\n\t\talert(msg);\n\t\treturn null;\n\t}\n\n\tif (!await project.checkRoot()) { return null; }\n\tlet codeF = project.code;\n\n\tlet ctx = new Context(ContextTarget.FILES);\n\tlet fileName, node = parse(root, xdNode, ctx);\n\tif (node) {\n\t\t// Write the widget we have selected to disk\n\t\tfileName = await writeWidget(node, codeF, ctx);\n\t}\n\n\tawait project.validate(ctx);\n\n\tctx.resultMessage = fileName ? `Exported '${fileName}' successfully` : \"Widget export failed\";\n\t\n\tctx.log.dump(ctx.resultMessage);\n\treturn ctx;\n}\n\n//Writes a single artboard / component to dart file\nasync function writeWidget(node, codeF, ctx) {\n\tlet fileName = node.widgetName + \".dart\";\n\tlet fileStr = node.serializeWidget(ctx);\n\tfileStr = _formatDart(fileStr, false, ctx, node);\n\t\n\tif (!fileStr) { return null; }\n\n\tawait codeF.writeFile(fileName, fileStr, ctx);\n\treturn fileName;\n}\n\nasync function exportColors(ctx) {\n\tif (!NodeUtils.getProp(xd.root, PropType.EXPORT_COLORS)) { return; }\n\tlet entries = assets.colors.get();\n\tif (!entries) { return; }\n\tlet lists = {}, usedNames = {}, names = [];\n\tlet className = cleanDartName(NodeUtils.getProp(xd.root, PropType.COLORS_CLASS_NAME)) || \n\t\tDEFAULT_COLORS_CLASS_NAME;\n\t\n\tlet str = `import 'package:flutter/material.dart';\\n\\nclass ${className} {\\n`;\n\tfor (let i=0, l=entries.length; i<l; i++) {\n\t\tlet asset = entries[i], name = cleanIdentifierName(asset.name);\n\t\tif (!name) { continue; }\n\t\tif (usedNames[name]) {\n\t\t\tctx.log.warn(`Duplicate color asset name: ${name}`);\n\t\t\tcontinue;\n\t\t}\n\t\tusedNames[name] = true;\n\t\tnames.push(name);\n\t\tlet isGradient = !asset.color;\n\t\tlet match = /(.+?)(\\d+)$/.exec(name);\n\t\tif (match) {\n\t\t\tlet o = lists[match[1]];\n\t\t\tif (!o) {\n\t\t\t\to = lists[match[1]] = [];\n\t\t\t\to.isGradient = isGradient;\n\t\t\t}\n\t\t\tif (o.isGradient !== isGradient) {\n\t\t\t\tctx.log.warn(`Color asset lists can't mix colors and gradients (${match[1]})`);\n\t\t\t} else {\n\t\t\t\to[parseInt(match[2])] = name;\n\t\t\t}\n\t\t}\n\t\tif (isGradient) {\n\t\t\tlet type = ExportUtils.getGradientTypeFromAsset(asset);\n\t\t\tstr += `\\tstatic const ${type} ${name} = ${ExportUtils.getGradientFromAsset(asset)};\\n`;\n\t\t} else {\n\t\t\tstr += `\\tstatic const Color ${name} = ${ExportUtils.getColor(asset.color)};\\n`;\n\t\t}\n\t}\n\tstr += '\\n';\n\tfor (let n in lists) {\n\t\tlet s = _getColorList(lists[n], n, true);\n\t\tif (s) { str += `${s}\\n`; }\n\t}\n\tstr += '\\n}';\n\tstr = _formatDart(str, false, ctx, null);\n\tawait project.code.writeFile(`${className}.dart`, str, ctx);\n}\n\nfunction _getColorList(o, name, validate) {\n\tif (validate && (!o[0] || !o[1])) { return ''; }\n\tlet type = o.isGradient ? 'Gradient' : 'Color';\n\tlet str = `\\tstatic const List<${type}> ${name} = const [`;\n\tfor (let i=0; true; i++) {\n\t\tif (!o[i]) { break; }\n\t\tstr += `${i===0 ? '' : ', '}${o[i]}`;\n\t}\n\treturn str + '];';\n}\n\nasync function exportCharStyles(ctx) {\n\tif (!NodeUtils.getProp(xd.root, PropType.EXPORT_CHAR_STYLES)) { return; }\n\tlet entries = assets.characterStyles.get();\n\tif (!entries || entries.length === 0) { return; }\n\tlet usedNames = {}, names = [];\n\tlet className = cleanDartName(NodeUtils.getProp(xd.root, PropType.CHAR_STYLES_CLASS_NAME)) ||\n\t\tDEFAULT_CHAR_STYLES_CLASS_NAME;\n\tlet str = `import 'package:flutter/material.dart';\\n\\nclass ${className} {\\n`;\n\tfor (let i=0, l=entries.length; i<l; i++) {\n\t\tlet asset = entries[i], name = cleanIdentifierName(asset.name);\n\t\tif (!name) { continue; }\n\t\tif (usedNames[name]) {\n\t\t\tctx.log.warn(`Duplicate character style asset name: ${name}`);\n\t\t\tcontinue;\n\t\t}\n\t\tusedNames[name] = true;\n\t\tnames.push(name);\n\t\tlet style = getTextStyle(getTextStyleParamList(asset.style, false, ctx));\n\t\tif (style) { str += `\\tstatic const TextStyle ${name} = const ${style};\\n`; }\n\t}\n\tstr += '\\n}';\n\tstr = _formatDart(str, false, ctx, null);\n\tawait project.code.writeFile(`${className}.dart`, str, ctx);\n}\n\nfunction _formatDart(str, nestInFunct, ctx, node) {\n\tlet result = null, xdNode = node && node.xdNode;\n\ttry {\n\t\tresult = formatDart(str, nestInFunct);\n\t} catch(e) {\n\t\ttrace(e);\n\t\tctx.log.error('Unable to format the exported source code.', xdNode);\n\t}\n\treturn result;\n}\n\nmodule.exports = {\n\tcopySelected,\n\texportSelected,\n\texportAll,\n\texportColors,\n};\n","/*\nCopyright 2020 Adobe\nAll Rights Reserved.\n\nNOTICE: Adobe permits you to use, modify, and distribute this file in\naccordance with the terms of the Adobe license agreement accompanying\nit. If you have received this file from a source other than Adobe,\nthen your use, modification, or distribution of it requires the prior\nwritten permission of Adobe. \n*/\n\n// Decorates an AbstractNode, typically by wrapping the widget.\nclass AbstractDecorator {\n\t// AbstractDecorators should also have a static `create(node, ctx)` method\n\t// that returns an instance if appropriate.\n\n\tconstructor(node, ctx, cosmetic=false) {\n\t\tthis.node = node;\n\t\tthis.cosmetic = cosmetic;\n\t}\n\n\tget xdNode() {\n\t\treturn this.node && this.node.xdNode;\n\t}\n\n\tserialize(nodeStr, ctx) {\n\t\treturn this._serialize(nodeStr, ctx);\n\t}\n\n\t_serialize(nodeStr, ctx) {\n\t\treturn nodeStr;\n\t}\n}\nexports.AbstractDecorator = AbstractDecorator;\n","/*\nCopyright 2020 Adobe\nAll Rights Reserved.\n\nNOTICE: Adobe permits you to use, modify, and distribute this file in\naccordance with the terms of the Adobe license agreement accompanying\nit. If you have received this file from a source other than Adobe,\nthen your use, modification, or distribution of it requires the prior\nwritten permission of Adobe. \n*/\n\nconst xd = require(\"scenegraph\");\n\nconst $ = require(\"../../utils/utils\");\nconst { AbstractDecorator } = require(\"./abstractdecorator\");\n\nclass Blend extends AbstractDecorator {\n\tstatic create(node, ctx) {\n\t\tlet xdNode = node.xdNode, blend = xdNode.blendMode;\n\t\tif (!blend || blend === \"pass-through\" || blend === \"normal\") { return; }\n\t\tif (!Blend.MODE_MAP[blend]) {\n\t\t\tctx.log.warn(`Unsupported blend mode '${blend}'`, xdNode);\n\t\t\treturn;\n\t\t}\n\t\tctx.addImport(\"package:adobe_xd/blend_mask.dart\", false);\n\t\treturn new Blend(node, ctx);\n\t}\n\n\t_serialize(nodeStr, ctx) {\n\t\tlet xdNode = this.node.xdNode, bounds = xdNode.boundsInParent;\n\t\tlet mode = Blend.MODE_MAP[xdNode.blendMode], region = \"\";\n\n\t\tif (xdNode instanceof xd.Group && this.node.layout.isFixedSize) {\n\t\t\tlet lx = $.fix(bounds.x), ly = $.fix(bounds.y);\n\t\t\tlet lw = $.fix(bounds.width), lh = $.fix(bounds.height);\n\t\t\tregion = `region: Offset(${lx}, ${ly}) & Size(${lw}, ${lh}), `;\n\t\t}\n\n\t\tlet str = \"BlendMask(\" +\n\t\t\t`blendMode: BlendMode.${mode || \"src\"}, ` +\n\t\t\t//`opacity: ${xdNode.opacity}, ` +\n\t\t\tregion +\n\t\t\t`child: ${nodeStr}, ` +\n\t\t\")\";\n\n\t\treturn str;\n\t}\n}\nexports.Blend = Blend;\n\nBlend.MODE_MAP = {\n\t\"pass-through\": \"src\",\n\t\"normal\": \"srcOver\",\n\t\"darken\": \"darken\",\n\t\"multiply\": \"multiply\",\n\t\"color-burn\": \"colorBurn\",\n\t\"lighten\": \"lighten\",\n\t\"screen\": \"screen\",\n\t\"color-dodge\": \"colorDodge\",\n\t\"overlay\": \"overlay\",\n\t\"soft-light\": \"softLight\",\n\t\"hard-light\": \"hardLight\",\n\t\"difference\": \"difference\",\n\t\"exclusion\": \"exclusion\",\n\t\"hue\": \"hue\",\n\t\"saturation\": \"saturation\",\n\t\"color\": \"color\",\n\t\"luminosity\": \"luminosity\",\n}\n\n","/*\nCopyright 2020 Adobe\nAll Rights Reserved.\n\nNOTICE: Adobe permits you to use, modify, and distribute this file in\naccordance with the terms of the Adobe license agreement accompanying\nit. If you have received this file from a source other than Adobe,\nthen your use, modification, or distribution of it requires the prior\nwritten permission of Adobe. \n*/\n\nconst xd = require(\"scenegraph\");\n\nconst $ = require(\"../../utils/utils\");\nconst { AbstractDecorator } = require(\"./abstractdecorator\");\nconst { Container } = require(\"../nodes/container\");\n\nclass Blur extends AbstractDecorator {\n\tstatic create(node, ctx) {\n\t\tlet xdNode = node.xdNode, blur = xdNode.blur;\n\t\tif (blur && blur.visible) {\n\t\t\tif (!(node instanceof Container)) {\n\t\t\t\tctx.log.warn(\"Blur is currently only supported on rectangles and ellipses.\", xdNode);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (!blur.isBackgroundEffect) {\n\t\t\t\tctx.log.warn(\"Object blur is not supported.\", xdNode);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (blur.isBackgroundEffect && Math.round(xdNode.blur.brightnessAmount) !== 0) {\n\t\t\t\tctx.log.warn(\"Brightness is currently not supported on blurs.\", xdNode);\n\t\t\t}\n\t\t\tctx.addImport(\"dart:ui\", false, \"ui\");\n\t\t\treturn new Blur(node, ctx);\n\t\t}\n\t}\n\n\t_serialize(nodeStr, ctx) {\n\t\tlet xdNode = this.node.xdNode, blur = xdNode.blur;\n\t\tlet clipType = xdNode instanceof xd.Rectangle ? \"ClipRect\" : \"ClipOval\";\n\t\tlet filterParam = _getImageFilterParam(blur, ctx);\n\t\treturn `${clipType}(child: BackdropFilter(${filterParam}child: ${nodeStr}, ), )`;\n\t}\n}\nexports.Blur = Blur;\n\n\nfunction _getImageFilterParam(blur, ctx) {\n\t// currently just exports blurs.\n\treturn `filter: ${_getImageFilter(blur, ctx)}, `;\n}\n\nfunction _getImageFilter(blur, ctx) {\n\tlet sigStr = $.fix(blur.blurAmount, 0);\n\treturn `ui.ImageFilter.blur(sigmaX: ${sigStr}, sigmaY: ${sigStr})`;\n}","/*\nCopyright 2020 Adobe\nAll Rights Reserved.\n\nNOTICE: Adobe permits you to use, modify, and distribute this file in\naccordance with the terms of the Adobe license agreement accompanying\nit. If you have received this file from a source other than Adobe,\nthen your use, modification, or distribution of it requires the prior\nwritten permission of Adobe. \n*/\n\nconst $ = require(\"../../utils/utils\");\nconst { AbstractDecorator } = require(\"./abstractdecorator\");\nconst nodetype = require(\"../nodetype\");\n\nclass Comment extends AbstractDecorator {\n\tstatic create(node, ctx) {\n\t\tif (Comment.enabled && !node.xdNode.hasDefaultName) {\n\t\t\treturn new Comment(node, ctx, true);\n\t\t}\n\t}\n\n\t_serialize(nodeStr, ctx) {\n\t\tlet xdNode = this.node.xdNode;\n\t\tlet name = $.shorten(xdNode.name, 20), type = nodetype.getXDLabel(xdNode);\n\t\treturn `\\n // Adobe XD layer: '${name}' (${type})\\n${nodeStr}`;\n\t}\n}\nComment.enabled = true;\n\nexports.Comment = Comment;","/*\nCopyright 2020 Adobe\nAll Rights Reserved.\n\nNOTICE: Adobe permits you to use, modify, and distribute this file in\naccordance with the terms of the Adobe license agreement accompanying\nit. If you have received this file from a source other than Adobe,\nthen your use, modification, or distribution of it requires the prior\nwritten permission of Adobe. \n*/\n\nconst $ = require(\"../../utils/utils\");\nconst { getAlignment } = require(\"../../utils/exportutils\");\nconst { addSizedBox, getGroupContentBounds, hasComplexTransform } = require(\"../../utils/layoututils\");\n\nconst { AbstractDecorator } = require(\"./abstractdecorator\");\n\nclass Layout extends AbstractDecorator {\n\tstatic create(node, ctx) { throw(\"Layout.create() called.\"); }\n\n\tconstructor(node, ctx) {\n\t\tsuper(node, ctx);\n\t\tthis.enabled = true; // set to false to disable layout without changing settings.\n\t}\n\n\treset() {\n\t\t// these properties are set in calculate():\n\t\tthis.type = LayoutType.NONE;\n\t\tthis.direction = LayoutDirection.BOTH; // for stack layouts\n\t\tthis.padding = null;\n\t\tthis.isFixedSize = false; // indicates layout should fix the size, can be adjusted externally\n\t\tthis.isResponsive = false; // will move or resize when parent resizes. Ex. Center is both fixed size and responsive.\n\n\t\t// these properties are set by the target or its parent after .calculate() is run\n\t\t// they only affect serialize:\n\t\tthis.shouldExpand = false; // indicates that a SizedBox.expand should be added. Defaults to false.\n\t\tthis.shouldFixSize = false; // indicates that a SizedBox should be added. Defaults to the value of isFixedSize.\n\t}\n\n\tcalculate(ctx) {\n\t\t// this precalculates the layout details. These properties can be overridden,\n\t\t// for example, by the node itself or its parent node.\n\t\tlet node = this.node, xdNode = this.xdNode;\n\t\tlet constraints = xdNode.layout.resizeConstraints, o = constraints && constraints.values;\n\t\tlet parent = xdNode.parent, xdParentLayout = parent && parent.layout;\n\t\tlet tmp, pBounds, bounds;\n\n\t\tthis.reset();\n\n\t\tif (!xdParentLayout) { // widget definition\n\t\t\tthis.enabled = false;\n\t\t\treturn this;\n\t\t}\n\n\t\tthis.parentBounds = pBounds = getGroupContentBounds(parent);\n\t\tthis.bounds = bounds = node.adjustedBounds;\n\n\t\tif (xdParentLayout && xdParentLayout.type === \"stack\") {\n\t\t\t// In a stack.\n\t\t\tlet isVertical = xdParentLayout.stack.orientation === \"vertical\";\n\t\t\tthis.direction = isVertical ? LayoutDirection.VERTICAL : LayoutDirection.HORIZONTAL;\n\t\t\tlet shouldPin = o && (\n\t\t\t\t(isVertical && !o.width && this._isFullWidth()) ||\n\t\t\t\t(!isVertical && !o.height && this._isFullHeight())\n\t\t\t);\n\t\t\tthis.type = shouldPin ? LayoutType.NONE : LayoutType.PINNED;\n\t\t\tthis.isResponsive = shouldPin;\n\t\t\tthis.isFixedSize = !shouldPin;\n\t\t} else if (!bounds || !o) {\n\t\t\t// missing either bounds (rare) or constraints (not set to responsive)\n\t\t\tthis.type = LayoutType.TRANSLATE;\n\t\t\tthis.isFixedSize = true;\n\t\t} else if (o.top && o.right && o.bottom && o.left) {\n\t\t\tthis.type = LayoutType.NONE;\n\t\t\tif (!this._isFullSize()) { this.padding = this._getPadding(); }\n\t\t\tthis.isResponsive = true;\n\t\t} else if (o.width && o.height && (tmp = this._getAlignment(o))) {\n\t\t\tthis.type = (tmp === \"Alignment.center\") ? LayoutType.CENTER : LayoutType.ALIGN;\n\t\t\tthis.isFixedSize = true;\n\t\t\tthis.isResponsive = true;\n\t\t\tthis.alignment = tmp;\n\t\t} else {\n\t\t\tthis.type = LayoutType.PINNED;\n\t\t\tthis.isResponsive = true;\n\t\t}\n\t\tthis.shouldFixSize = this.isFixedSize;\n\n\t\t// ideally this would get moved to _serialize(), in case someone changes it:\n\t\tif (this.type === LayoutType.PINNED) { ctx.usesPinned(); }\n\t\treturn this;\n\t}\n\n\t_serialize(nodeStr, ctx) {\n\t\tlet node = this.node, type = this.type;\n\n\t\tif (!this.enabled) { return nodeStr; }\n\n\t\t// work from inside out:\n\t\tnodeStr = this._transform(nodeStr, ctx);\n\t\tif (this.shouldFixSize) { nodeStr = addSizedBox(nodeStr, this.bounds, ctx); }\n\t\telse { nodeStr = this._expand(nodeStr, ctx); }\n\n\t\tif (this.padding) { nodeStr = this._padding(nodeStr, ctx); }\n\t\t\n\t\tif (type === LayoutType.NONE) { return nodeStr; }\n\t\tif (type === LayoutType.TRANSLATE) { return this._translate(nodeStr, ctx); }\n\t\tif (type === LayoutType.CENTER) { return this._center(nodeStr, ctx); }\n\t\tif (type === LayoutType.ALIGN) { return this._align(nodeStr, ctx); }\n\t\tif (type === LayoutType.PINNED) { return this._pinned(nodeStr, ctx); }\n\t\tctx.log.error(`Unexpected layout type: ${this.type}`, node.xdNode);\n\t}\n\n\t_expand(nodeStr, ctx) {\n\t\t// PINNED doesn't require expansion, and other types are all fixed size.\n\t\tif (this.shouldExpand && !this.isFixedSize && this.type === LayoutType.NONE) {\n\t\t\treturn `SizedBox.expand(child: ${nodeStr})`;\n\t\t}\n\t\treturn nodeStr;\n\t}\n\n\t_pinned(nodeStr, ctx) {\n\t\t// TODO: update Pinned to accept null for unnecessary (congruent) pins? ie. optimize for layout direction (vertical/horizontal/both).\n\t\t// ^ can use _isFullWidth/Height\n\t\tlet constraints = this.xdNode.layout.resizeConstraints;\n\t\tlet o = constraints && constraints.values;\n\t\treturn \"Pinned.fromPins(\" +\n\t\t\tthis._getHPin(o, this.bounds, this.parentBounds) + \", \" +\n\t\t\tthis._getVPin(o, this.bounds, this.parentBounds) + \", \" +\n\t\t\t`child: ${nodeStr}, ` +\n\t\t\")\";\n\t}\n\n\t_getHPin(o, b, pb) {\n\t\tif (this.direction === LayoutDirection.HORIZONTAL) { return this._getDefaultPin(); }\n\t\treturn this._getPin(o.left, o.width, o.right, b.x, b.width, pb.width);\n\t}\n\n\t_getVPin(o, b, pb) {\n\t\tif (this.direction === LayoutDirection.VERTICAL) { return this._getDefaultPin(); }\n\t\treturn this._getPin(o.top, o.height, o.bottom, b.y, b.height, pb.height);\n\t}\n\t\n\t_getDefaultPin() {\n\t\treturn \"Pin()\";\n\t}\n\n\t_getPin(cSt, cSz, cEnd, bSt, bSz, pSz) {\n\t\t// c = constraints, b = bounds, p = parent bounds\n\t\tlet fix = $.fix, end = pSz - (bSt + bSz);\n\t\tlet middle = (pSz === bSz) ? 0.5 : bSt / (pSz - bSz);\n\t\tlet params = [\n\t\t\t(cSz ? `size: ${fix(bSz)}` : null),\n\t\t\t(cSt ? `start: ${fix(bSt)}` : null),\n\t\t\t(cEnd ? `end: ${fix(end)}` : null),\n\t\t\t(!cSt && !cSz ? `startFraction: ${fix(bSt/pSz, 4)}` : null),\n\t\t\t(!cEnd && !cSz ? `endFraction: ${fix(end/pSz, 4)}` : null),\n\t\t\t(cSz && !cSt && !cEnd ? `middle: ${fix(middle, 4)}` : null)\n\t\t];\n\t\treturn \"Pin(\" + $.joinValues(params) + \")\";\n\t}\n\n\t_translate(nodeStr, ctx) {\n\t\tlet bounds = this.bounds;\n\t\tlet isOrigin = $.almostEqual(bounds.x, 0, 0.1) && $.almostEqual(bounds.y, 0, 0.1);\n\t\treturn isOrigin ? nodeStr : \"Transform.translate(\" +\n\t\t\t`offset: Offset(${$.fix(bounds.x)}, ${$.fix(bounds.y)}), ` +\n\t\t\t`child: ${nodeStr},` +\n\t\t\")\";\n\t}\n\n\t_padding(nodeStr, ctx) {\n\t\treturn !this.padding ? \"\" : \"Padding(\" +\n\t\t\t`padding: ${this.padding},` +\n\t\t\t`child: ${nodeStr}, ` +\n\t\t\")\";\n\t}\n\n\t_align(nodeStr, ctx) {\n\t\treturn !this.alignment ? \"\" : \"Align(\" +\n\t\t\t`alignment: ${this.alignment}, ` +\n\t\t\t`child: ${nodeStr}, ` +\n\t\t\")\";\n\t}\n\n\t_center(nodeStr, ctx) {\n\t\treturn `Center(child: ${nodeStr},)`;\n\t}\n\n\t_transform(nodeStr, ctx) {\n\t\tlet transform = this.node.transform;\n\n\t\tif (this.isResponsive && !hasComplexTransform(this.node, \"Rotation and flip are not fully supported in responsive layouts.\", ctx)) {\n\t\t\treturn nodeStr;\n\t\t}\n\t\tif (transform.flipY) {\n\t\t\tnodeStr = 'Transform(' +\n\t\t\t\t'alignment: Alignment.center, ' +\n\t\t\t\t`transform: Matrix4.identity()..rotateZ(${this._getAngle(transform.rotation)})..scale(1.0, -1.0), ` +\n\t\t\t\t`child: ${nodeStr}, ` +\n\t\t\t')';\n\t\t} else if (transform.rotation % 360 !== 0) {\n\t\t\tnodeStr = 'Transform.rotate(' +\n\t\t\t\t`angle: ${this._getAngle(transform.rotation)}, ` +\n\t\t\t\t`child: ${nodeStr}, ` +\n\t\t\t')';\n\t\t}\n\t\treturn nodeStr;\n\t}\n\n\t_getPadding() {\n\t\tlet size = this.parentBounds, bounds = this.bounds;\n\t\tlet l = bounds.x, r = size.width - (l + bounds.width);\n\t\tlet t = bounds.y, b = size.height - (t + bounds.height);\n\n\t\tif ($.almostEqual(l, r, 0.5) && $.almostEqual(t, b, 0.5)) {\n\t\t\tif ($.almostEqual(l, t, 0.5)) {\n\t\t\t\treturn `EdgeInsets.all(${$.fix(l)})`;\n\t\t\t}\n\t\t\treturn \"EdgeInsets.symmetric(\" +\n\t\t\t\t`horizontal: ${$.fix(l)}, ` +\n\t\t\t\t`vertical: ${$.fix(t)} ` +\n\t\t\t\")\";\n\t\t}\n\t\t// leave out trailing commas to prevent auto-format from putting every value on a new line:\n\t\treturn \"EdgeInsets.fromLTRB(\" +\n\t\t\t`${$.fix(l)}, ${$.fix(t)}, ${$.fix(r)}, ${$.fix(b)} ` +\n\t\t\")\";\n\t}\n\n\t_getAlignment(o) {\n\t\tlet size = this.parentBounds, bounds = this.bounds;\n\t\tlet hStr, x = bounds.x, w = size.width - bounds.width;\n\t\tlet vStr, y = bounds.y, h = size.height - bounds.height;\n\n\t\tif ($.almostEqual(y, 0, 0.5)) { vStr = \"top\"; }\n\t\telse if ($.almostEqual(y, h/2, 0.5)) { vStr = \"center\"; }\n\t\telse if ($.almostEqual(y, h, 0.5)) { vStr = \"bottom\"; }\n\n\t\tif ((o.top && vStr !== \"top\") || (o.bottom && vStr !== \"bottom\")) { return; }\n\n\t\tif ($.almostEqual(x, 0, 0.5)) { hStr = \"Left\"; }\n\t\telse if ($.almostEqual(x, w/2, 0.5)) { hStr = \"Center\"; }\n\t\telse if ($.almostEqual(x, w, 0.5)) { hStr = \"Right\"; }\n\n\t\tif ((o.left && hStr !== \"Left\") || (o.right && hStr !== \"Right\")) { return; }\n\t\t\n\t\tlet str = (hStr && vStr) ? vStr + hStr : null;\n\t\tif (str === \"centerCenter\") { str = \"center\"; }\n\t\tif (str) { return `Alignment.${str}`; }\n\t\treturn getAlignment(x/w, y/h);\n\t}\n\t\n\t_getAngle(rotation) {\n\t\treturn $.fix(rotation / 180 * Math.PI, 4);\n\t}\n\n\t_isFullWidth() {\n\t\treturn $.almostEqual(this.bounds.x, 0, 0.5) &&\n\t\t\t$.almostEqual(this.bounds.width, this.parentBounds.width, 0.5);\n\t}\n\n\t_isFullHeight() {\n\t\treturn $.almostEqual(this.bounds.y, 0, 0.5) &&\n\t\t\t$.almostEqual(this.bounds.height, this.parentBounds.height, 0.5);\n\t}\n\n\t_isFullSize() {\n\t\treturn this._isFullWidth() && this._isFullHeight();\n\t}\n\n\t_isCentered() {\n\t\tlet size = this.parentBounds, bounds = this.bounds;\n\t\tlet x1 = bounds.x + bounds.width/2, x2 = size.width/2;\n\t\tlet y1 = bounds.y + bounds.height/2, y2 = size.height/2;\n\t\treturn $.almostEqual(x1, x2, 0.5) && $.almostEqual(y1, y2, 0.5);\n\t}\n}\n\nexports.Layout = Layout;\n\nvar LayoutType = Object.freeze({\n\tPINNED: \"pinned\",\n\tALIGN: \"align\",\n\tCENTER: \"center\",\n\tTRANSLATE: \"translate\",\n\tNONE: \"none\",\n});\nexports.LayoutType = LayoutType;\n\nvar LayoutDirection = Object.freeze({\n\tVERTICAL: \"vertical\",\n\tHORIZONTAL: \"horizontal\",\n\tBOTH: \"both\",\n});\nexports.LayoutDirection = LayoutDirection;","/*\nCopyright 2020 Adobe\nAll Rights Reserved.\n\nNOTICE: Adobe permits you to use, modify, and distribute this file in\naccordance with the terms of the Adobe license agreement accompanying\nit. If you have received this file from a source other than Adobe,\nthen your use, modification, or distribution of it requires the prior\nwritten permission of Adobe. \n*/\n\nconst { AbstractDecorator } = require(\"./abstractdecorator\");\nconst { Group } = require(\"../nodes/group\");\n\nclass OnTap extends AbstractDecorator {\n\tstatic create(node, ctx) {\n\t\tif (!(node instanceof Group)) { return; }\n\t\tif (node.getParam(\"onTap\")) {\n\t\t\treturn new OnTap(node, ctx);\n\t\t}\n\t}\n\n\t_serialize(nodeStr, ctx) {\n\t\treturn OnTap.get(nodeStr, this.node.getParam(\"onTap\").name);\n\t}\n}\nexports.OnTap = OnTap;\n\nOnTap.get = function(nodeStr, onTap) {\n\t// This is also used by Component._serialize()\n\tif (!nodeStr || !onTap) { return nodeStr; }\n\treturn 'GestureDetector(' +\n\t\t`onTap: ()=> ${onTap}?.call(), ` +\n\t\t`child: ${nodeStr}, ` +\n\t')';\n}","/*\nCopyright 2020 Adobe\nAll Rights Reserved.\n\nNOTICE: Adobe permits you to use, modify, and distribute this file in\naccordance with the terms of the Adobe license agreement accompanying\nit. If you have received this file from a source other than Adobe,\nthen your use, modification, or distribution of it requires the prior\nwritten permission of Adobe. \n*/\n\nconst xd = require(\"scenegraph\");\n\nconst $ = require(\"../../utils/utils\");\nconst NodeUtils = require(\"../../utils/nodeutils\");\nconst { AbstractDecorator } = require(\"./abstractdecorator\");\nconst PropType = require(\"../proptype\");\n\nclass PrototypeInteraction extends AbstractDecorator {\n\tstatic create(node, ctx) {\n\t\tif (NodeUtils.getInteractionCount(node.xdNode) < 1) { return; }\n\n\t\tlet xdNode = node.xdNode, list = xdNode.triggeredInteractions, interaction = list[0];\n\t\tif (list.length > 1) {\n\t\t\treturn ctx.log.warn(`Multiple prototype interactions on one object is not supported.`, xdNode);\n\t\t}\n\t\tif (interaction.trigger.type !== \"tap\") {\n\t\t\treturn ctx.log.warn(`Unsupported trigger '${interaction.trigger.type}'. Only tap is supported.`, xdNode);\n\t\t}\n\t\tlet type = interaction.action.type;\n\t\tif (type !== \"goToArtboard\" && type !== \"goBack\") {\n\t\t\treturn ctx.log.warn(`Unsupported action type '${type}'.`, xdNode);\n\t\t}\n\t\tctx.addImport(\"package:adobe_xd/page_link.dart\");\n\t\treturn new PrototypeInteraction(node, ctx);\n\t}\n\n\t_serialize(nodeStr, ctx) {\n\t\tlet xdNode = this.node.xdNode, interaction = xdNode.triggeredInteractions[0];\n\t\tlet action = interaction.action, transition = action.transition;\n\t\tif (action.type === \"goBack\") {\n\t\t\t// PageLink treats an empty builder as \"go back\".\n\t\t\treturn `PageLink(links: [PageLinkInfo(), ], child: ${nodeStr}, )`;\n\t\t}\n\t\t// goToArtboard.\n\t\tlet artboard = ctx.getArtboardFromXdNode(action.destination);\n\t\tif (!artboard) {\n\t\t\tctx.log.error(`Couldn't add prototype link to '${action.destination.name}'. This is likely due to a duplicate Artboard name.`);\n\t\t\treturn nodeStr;\n\t\t}\n\t\treturn 'PageLink(' +\n\t\t\t'links: [PageLinkInfo(' +\n\t\t\t\t_getTransitionParam(transition, xdNode, ctx) +\n\t\t\t\t_getEaseParam(transition, xdNode, ctx) +\n\t\t\t\t_getDurationParam(transition, xdNode, ctx) +\n\t\t\t\t`pageBuilder: () => ${artboard.serialize(ctx)}, ` +\n\t\t\t'), ], ' + \n\t\t\t`child: ${nodeStr}, ` +\n\t\t')';\n\t}\n}\nexports.PrototypeInteraction = PrototypeInteraction;\n\nfunction _getTransitionParam(transition, xdNode, ctx) {\n\tlet type = TRANSITION_TYPE_MAP[transition.type] || \"\";\n\tlet dir = TRANSITION_SIDE_MAP[transition.fromSide] || \"\";\n\tif (!type) { ctx.log.warn(`Transition type not supported: '${transition.type}'.`, xdNode); }\n\treturn !type ? '' : `transition: LinkTransition.${type}${dir}, `;\n}\n\nfunction _getEaseParam(transition, xdNode, ctx) {\n\tlet ease = TRANSITION_EASE_MAP[transition.easing] || \"\";\n\tif (!ease) { ctx.log.warn(`Ease not supported: '${transition.easing}'.`, xdNode); }\n\treturn !ease ? '' : `ease: Curves.${ease}, `;\n}\n\nfunction _getDurationParam(transition, xdNode, ctx) {\n\treturn `duration: ${$.fix(transition.duration, 4)}, `;\n}\n\nconst TRANSITION_TYPE_MAP = {\n\t\"slide\": \"Slide\",\n\t\"push\": \"Push\",\n\t\"dissolve\": \"Fade\",\n}\n\nconst TRANSITION_SIDE_MAP = {\n\t\"L\": \"Left\",\n\t\"R\": \"Right\",\n\t\"T\": \"Down\",\n\t\"B\": \"Up\"\n}\n\nconst TRANSITION_EASE_MAP = {\n\t\"linear\": \"linear\",\n\t\"ease-in\": \"easeIn\",\n\t\"ease-out\": \"easeOut\",\n\t\"ease-in-out\": \"easeInOut\",\n\t\"wind-up\": \"slowMiddle\",\n\t\"bounce\": \"bounceIn\",\n\t\"snap\": \"easeInOutExpo\",\n}","/*\nCopyright 2020 Adobe\nAll Rights Reserved.\n\nNOTICE: Adobe permits you to use, modify, and distribute this file in\naccordance with the terms of the Adobe license agreement accompanying\nit. If you have received this file from a source other than Adobe,\nthen your use, modification, or distribution of it requires the prior\nwritten permission of Adobe. \n*/\n\nconst xd = require(\"scenegraph\");\nconst app = require(\"application\");\n\nconst $ = require(\"../utils/utils\");\nconst NodeUtils = require(\"../utils/nodeutils\");\nconst { Context, ContextTarget } = require(\"./context\");\nconst { project } = require(\"./project\");\nconst PropType = require(\"./proptype\");\nconst { alert } = require(\"../ui/alert\");\nconst { trace } = require('../utils/debug');\nconst { checkXDVersion } = require(\"../version\");\n\nasync function exportImage(selection, root) {\n\tif (!checkXDVersion()) { return; }\n\tlet xdNode = $.getSelectedItem(selection), name = NodeUtils.getImageName(xdNode);\n\tif (!name) { alert(\"You must set an image name before exporting.\"); return; }\n\n\tif (!await project.checkRoot()) { return null; }\n\tlet imageF = project.images;\n\n\t// Do a full scan so we have maxW/maxH values:\n\tlet data = _scanForImages(root, {})[name];\n\tlet ctx = new Context(ContextTarget.FILES);\n\tlet fileName = await _exportImageData(data, name, imageF, ctx);\n\tctx.resultMessage = fileName ? `Exported '${fileName}' successfully` : \"Image export failed\";\n\n\tctx.log.dump(ctx.resultMessage);\n\treturn ctx;\n}\nexports.exportImage = exportImage;\n\n\nasync function exportAllImages(selection, root) {\n\tif (!checkXDVersion()) { return; }\n\tif (!await project.checkRoot()) { return null; }\n\tlet imageF = project.images;\n\n\tlet ctx = new Context(ContextTarget.FILES);\n\tlet imageNames = _scanForImages(root, {}), count = 0, total = 0;\n\tfor (let n in imageNames) {\n\t\tlet data = imageNames[n];\n\t\tif (!data.includeInExportAll) { continue; }\n\t\ttotal++;\n\t\tlet fileName = await _exportImageData(data, n, imageF, ctx);\n\t\tif (fileName) { count++; }\n\t}\n\t_pruneImageMap(imageNames);\n\n\tctx.resultMessage = $.getExportAllMessage(count, total, \"named image\");\n\n\tctx.log.dump(ctx.resultMessage);\n\treturn ctx;\n}\nexports.exportAllImages = exportAllImages;\n\n\nfunction getImagePath(xdNode) {\n\tlet name = _getImageFileName(xdNode);\n\treturn name ? `${project.images.path}/${name}` : null;\n}\nexports.getImagePath = getImagePath;\n\n\nfunction _pruneImageMap(activeNames) {\n\t// TODO: GS: might be worth pruning the image map stored on the root.\n\t// Leaving it intact means we would remember the image name even if they removed an image / exported / added it back.\n}\n\nfunction _scanForImages(xdNode, map) {\n\t// TODO: GS: should we warn about every unnamed image?\n\txdNode.children.forEach((child, i) => {\n\t\tif (!child.visible) { return; }\n\t\tif (child.fill instanceof xd.ImageFill) {\n\t\t\tlet name = NodeUtils.getImageName(child);\n\t\t\tif (name) { map[name] = (map[name] || new _ImageData()).add(child); }\n\t\t} else if (child.children) { _scanForImages(child, map); }\n\t});\n\treturn map;\n}\n\n\nasync function _exportImageData(data, name, imageF, ctx) {\n\tlet xdNode = data.xdNode, fill = xdNode.fill;\n\tlet imgW = fill.naturalWidth, imgH = fill.naturalHeight;\n\n\tif (!NodeUtils.getProp(xd.root, PropType.RESOLUTION_AWARE)) {\n\t\treturn await _exportImageFile(data.xdNode, name, imgW, imgH, imageF, ctx);\n\t}\n\n\t// Resolution aware export:\n\tlet maxW = data.maxW, maxH = data.maxH;\n\tlet aspect = imgW/imgH, maxScale = Math.min(imgW/maxW, imgH/maxH);\n\tlet w = Math.max(maxW, maxH*aspect)+0.5 | 0, h = w / aspect + 0.5 | 0;\n\n\tlet fileName = await _exportImageFile(xdNode, name, w, h, imageF, ctx);\n\tif (!fileName) { return null; }\n\n\tif (maxScale >= 3 && (imageF = project.imagesX3)) {\n\t\tawait _exportImageFile(xdNode, name, w*3, h*3, imageF, ctx);\n\t}\n\tif (maxScale >= 2 && (imageF = project.imagesX2)) {\n\t\tawait _exportImageFile(xdNode, name, w*2, h*2, imageF, ctx);\n\t}\n\treturn fileName;\n}\n\nasync function _exportImageFile(xdNode, name, w, h, imageF, ctx) {\n\tif (!imageF) { return; }\n\n\t// Gets the selected node's image fill, creates a new xd.Rectangle node using the fill\n\t// at the natural size of the image, and then renders it to an image file.\n\n\t// There are two ways we could approach this.\n\t// One is to have this method return a rendition entry, and return it, then run them all at once.\n\t// The other is running them one at a time. This approach would let us show a progress bar,\n\t// and deal with errors individually, but may be slower?\n\tif (!(xdNode.fill instanceof xd.ImageFill)) {\n\t\tctx.log.error('Tried to export an image from a node that does not have an image fill.', xNode);\n\t\treturn;\n\t}\n\n\tlet rect = new xd.Rectangle();\n\trect.fill = xdNode.fill;\n\trect.width = w;\n\trect.height = h;\n\n\tlet fileName = _getImageFileName(xdNode);\n\n\tlet file = await imageF.getFile(fileName, ctx);\n\n\tif (!file) {\n\t\tctx.log.error(`Could not create image file ('${fileName}').`, null);\n\t\treturn null;\n\t}\n\t\n\tctx.log.note(`Write image '${$.getRelPath(file, ctx)}'`);\n\n\tlet type = _getRenditionType(xdNode);\n\tlet opts = {\n\t\tnode: rect,\n\t\toutputFile: file,\n\t\ttype,\n\t\tscale: 1.0,\n\t};\n\tif (type === app.RenditionType.JPG) { opts.quality = 80; }\n\n\tawait app.createRenditions([opts]).then(results => {\n\t\t//ctx.log.note(`Image output to: ${results[0].outputFile.nativePath}`);\n\t}).catch(error => {\n\t\tctx.log.error(`Unable to export image ('${name}'): ${error}`, null);\n\t\tfileName = null;\n\t});\n\treturn fileName;\n}\n\nfunction _getRenditionType(xdNode) {\n\tlet fill = xdNode.fill;\n\tif (!fill || !(fill instanceof xd.ImageFill)) { return null; }\n\treturn fill.mimeType === 'image/jpeg' ? app.RenditionType.JPG : app.RenditionType.PNG\n}\n\nfunction _getImageExtension(xdNode) {\n\tlet type = _getRenditionType(xdNode);\n\treturn !type ? null : type === app.RenditionType.JPG ? \"jpg\" : \"png\";\n}\n\nfunction _getImageFileName(xdNode) {\n\tlet ext = _getImageExtension(xdNode), name = NodeUtils.getImageName(xdNode);\n\treturn ext && name ? `${name}.${ext}` : null;\n}\n\nclass _ImageData {\n\tconstructor(xdNode) {\n\t\tthis.xdNode = null;\n\t\tthis.count = this.maxW = this.maxH = 0;\n\t\tthis.includeInExportAll = true;\n\t\tthis.add(xdNode);\n\t}\n\n\tadd(xdNode) {\n\t\tif (!xdNode) { return this; }\n\t\tthis.count++;\n\t\tthis.xdNode = xdNode;\n\t\tlet bounds = xdNode.globalBounds;\n\t\tthis.maxW = Math.max(this.maxW, bounds.width);\n\t\tthis.maxH = Math.max(this.maxH, bounds.height);\n\t\t//if (NodeUtils.getProp(xdNode, PropType.INCLUDE_IN_EXPORT_ALL_IMAGES)) { this.includeInExportAll = true; }\n\t\treturn this;\n\t}\n}","/*\nCopyright 2020 Adobe\nAll Rights Reserved.\n\nNOTICE: Adobe permits you to use, modify, and distribute this file in\naccordance with the terms of the Adobe license agreement accompanying\nit. If you have received this file from a source other than Adobe,\nthen your use, modification, or distribution of it requires the prior\nwritten permission of Adobe. \n*/\n\nconst $ = require('../utils/utils');\nconst { trace } = require('../utils/debug');\nconst version = require(\"../version\");\n\nclass Log {\n\tconstructor(message) {\n\t\tthis.entries = {};\n\t\tthis.log = [];\n\t\tthis.startTime = Date.now();\n\t\tmessage && this.add(message);\n\t}\n\n\tadd(message, severity = LogSeverity.NOTE, xdNode = null) {\n\t\tif (xdNode) {\n\t\t\tmessage = `[${$.shorten(xdNode.name, 20)}] ${message}`;\n\t\t}\n\t\tlet entry = new Entry(message, severity);\n\t\tthis.log.push(entry);\n\t\tlet o = this.entries[entry.hash] = (this.entries[entry.hash] || entry);\n\t\to.count += 1;\n\t\treturn o;\n\t}\n\n\tgetResults() {\n\t\tlet entries = this.entries, results = {warnings:[], errors:[]}\n\t\tfor (let n in entries) {\n\t\t\tlet o = entries[n], severity = o.severity;\n\t\t\tif (severity === LogSeverity.WARNING) { results.warnings.push(o); }\n\t\t\telse if (severity === LogSeverity.ERROR) { results.errors.push(o); }\n\t\t}\n\t\treturn results;\n\t}\n\n\tdump(message) {\n\t\t// if in debug mode, this ends the log and traces the result.\n\t\tif (!version.debug) { return; }\n\t\tthis.add(\"Complete\" + (message ? \": \" + message : \"\"));\n\t\tlet str = \"\", log = this.log, t = this.startTime;\n\t\tfor (let i=0; i<log.length; i++) {\n\t\t\tlet o = log[i];\n\t\t\tstr += (o.time - t + \"ms\").padStart(7, \" \") + \" \";\n\t\t\tstr += (\"\".padStart(o.severity, \"*\")).padEnd(4, \" \");\n\t\t\tstr += o.message + \"\\n\";\n\t\t}\n\t\ttrace(str);\n\t}\n\n\t// These methods should always have a void return, so they can be included in an empty return.\n\tnote(message, xdNode) {\n\t\tthis.add(message, LogSeverity.NOTE, xdNode);\n\t}\n\n\twarn(message, xdNode) {\n\t\tthis.add(message, LogSeverity.WARNING, xdNode);\n\t}\n\n\terror(message, xdNode) {\n\t\tthis.add(message, LogSeverity.ERROR, xdNode);\n\t}\n\n\tfatal(message, xdNode) {\n\t\tthis.add(message, LogSeverity.FATAL, xdNode);\n\t}\n}\nexports.Log = Log;\n\nclass Entry {\n\tconstructor(message, severity = LogSeverity.NOTE) {\n\t\tthis.message = message;\n\t\tthis.severity = severity;\n\t\tthis.count = 0;\n\t\tthis.hash = $.getHash(`${this.message}${this.severity}`);\n\t\tthis.time = Date.now();\n\t}\n\n\ttoString() {\n\t\treturn this.message + (this.count > 1 ? ` (x${this.count})` : '');\n\t}\n}\n\nconst LogSeverity = Object.freeze({\n\tNOTE: 0, // Not surfaced to user, dev log.\n\tWARNING: 1, // Surfaced as warning.\n\tERROR: 2, // Surfaced as error.\n\tFATAL: 3, // Unlikely to be used. Plugin is in an unrecoverable state.\n\tBLACKWATCH_PLAID: 11, // Pee pee pants\n});\n","/*\nCopyright 2020 Adobe\nAll Rights Reserved.\n\nNOTICE: Adobe permits you to use, modify, and distribute this file in\naccordance with the terms of the Adobe license agreement accompanying\nit. If you have received this file from a source other than Adobe,\nthen your use, modification, or distribution of it requires the prior\nwritten permission of Adobe. \n*/\n\nconst $ = require(\"../../utils/utils\");\nconst { getAdjustedBounds } = require(\"../../utils/layoututils\");\n\nconst { Parameter } = require(\"../parameter\");\nconst { Layout } = require(\"../decorators/layout\");\n\n// Abstract class representing the minimum interface required for an export node.\nclass AbstractNode {\n\t// Nodes should also have a static `create(xdNode, ctx)` method\n\t// that returns an instance if appropriate for the xdNode.\n\n\tconstructor(xdNode, ctx) {\n\t\tthis.xdNode = xdNode;\n\t\tthis.parameters = null;\n\t\tthis.children = null;\n\t\tthis.decorators = null;\n\t\tthis.hasDecorators = false; // indicates this node has non-cosmetic decorators.\n\t\tthis._cache = null;\n\t\tthis.layout = this._getLayout(ctx);\n\t}\n\n\tget hasChildren() {\n\t\treturn !!(this.children && this.children.length);\n\t}\n\n\tget xdId() {\n\t\treturn this.xdNode ? this.xdNode.guid : null;\n\t}\n\n\tget xdName() {\n\t\treturn this.xdNode ? this.xdNode.name : null;\n\t}\n\n\tget adjustedBounds() {\n\t\treturn getAdjustedBounds(this.xdNode);\n\t}\n\n\taddDecorator(decorator) {\n\t\tthis.decorators = this.decorators || [];\n\t\tthis.decorators.push(decorator);\n\t\tif (!decorator.cosmetic) { this.hasDecorators = true; }\n\t}\n\n\taddParam(key, name, type, value) {\n\t\tif (!name || !key) { return null; }\n\t\tlet param = new Parameter(name, type, value);\n\t\tif (!this.parameters) { this.parameters = {}; }\n\t\treturn this.parameters[key] = param;\n\t}\n\n\tgetParam(key) {\n\t\treturn this.parameters && this.parameters[key];\n\t}\n\n\tgetParamName(key) {\n\t\tlet param = this.getParam(key);\n\t\treturn (param && param.name) || null;\n\t}\n\n\tget transform() {\n\t\t// currently supports rotation & flipY.\n\t\treturn {rotation: this.xdNode.rotation, flipY: false};\n\t}\n\n\ttoString(ctx) {\n\t\treturn `[${this.constructor.name}]`;\n\t}\n\n\tserialize(ctx) {\n\t\tif (this._cache === null) {\n\t\t\tlet nodeStr = this._serialize(ctx);\n\t\t\tthis._cache = this._decorate(nodeStr, ctx);\n\t\t}\n\t\treturn this._cache;\n\t}\n\n\t_serialize(ctx) {\n\t\treturn \"\";\n\t}\n\n\t_decorate(nodeStr, ctx) {\n\t\tif (!nodeStr) { return nodeStr; }\n\t\tlet decorators = this.decorators, l = nodeStr && decorators ? decorators.length : 0;\n\t\tfor (let i=0; i<l; i++) { nodeStr = decorators[i].serialize(nodeStr, ctx); }\n\t\tnodeStr = this.layout.serialize(nodeStr, ctx);\n\t\treturn nodeStr;\n\t}\n\n\t_getChildList(children, ctx) {\n\t\tlet str = \"\";\n\t\tif (!children || children.length == 0) { return str; }\n\t\tchildren.forEach(node => {\n\t\t\tlet childStr = node && node.serialize(ctx);\n\t\t\tif (childStr) { str += childStr + \", \"; }\n\t\t});\n\t\treturn str;\n\t}\n\n\t_getChildStack(children, ctx) {\n\t\treturn `Stack(children: <Widget>[${this._getChildList(children, ctx)}], )`;\n\t}\n\n\t// can be overridden by subclasses to set layout properties:\n\t_getLayout(ctx) {\n\t\treturn (new Layout(this)).calculate(ctx);\n\t}\n}\nexports.AbstractNode = AbstractNode;\n","/*\nCopyright 2020 Adobe\nAll Rights Reserved.\n\nNOTICE: Adobe permits you to use, modify, and distribute this file in\naccordance with the terms of the Adobe license agreement accompanying\nit. If you have received this file from a source other than Adobe,\nthen your use, modification, or distribution of it requires the prior\nwritten permission of Adobe. \n*/\n\nconst xd = require(\"scenegraph\");\n\nconst NodeUtils = require(\"../../utils/nodeutils\");\n\nconst { AbstractNode } = require(\"./abstractnode\");\nconst { ContextTarget } = require(\"../context\");\nconst PropType = require(\"../proptype\");\nconst { REQUIRED_PARAM } = require(\"../constants\");\n\n// Base class for nodes that create new Widgets (ex. components or artboards)\n// TODO: should this extend Group?\nclass AbstractWidget extends AbstractNode {\n\n\tconstructor(xdNode, ctx) {\n\t\tsuper(xdNode, ctx);\n\t\tthis.children = [];\n\t\tthis._childParameters = {};\n\t\tthis._buildMethods = {};\n\t\tthis._memberNames = {};\n\t\tthis._shapeData = {};\n\t\tthis._imports = {};\n\t}\n\n\tget symbolId() {\n\t\treturn this.xdNode.symbolId;\n\t}\n\n\tget widgetName() {\n\t\treturn NodeUtils.getWidgetName(this.xdNode);\n\t}\n\n\tserialize(ctx) {\n\t\t// serialize a widget instance. Bypass cache & _decorate.\n\t\treturn this._serialize(ctx);\n\t}\n\n\tserializeWidget(ctx) {\n\t\t// serialize the widget class\n\t\tctx.pushWidget(this);\n\t\tlet params = this._childParameters, propStr = \"\", paramStr = \"\";\n\t\tlet nullsafe = !!NodeUtils.getProp(xd.root, PropType.NULL_SAFE);\n\t\tfor (let n in params) {\n\t\t\tlet param = params[n], value = param.value, required = false;\n\t\t\tif (param.value === REQUIRED_PARAM) {\n\t\t\t\trequired = true;\n\t\t\t\tvalue = null;\n\t\t\t}\n\t\t\tif (required) { paramStr += `${nullsafe ? \"\" : \"@\"}required `; }\n\t\t\tparamStr += `this.${param.name}${value ? ` = ${value}` : \"\"}, `;\n\t\t\tpropStr += `final ${param.type}${nullsafe && !required && !value ? \"?\" : \"\"} ${param.name};\\n`;\n\t\t}\n\n\t\tlet bodyStr = this._serializeWidgetBody(ctx);\n\t\tlet importStr = this._getImportListString(ctx);\n\t\tlet shapeDataStr = this._getShapeDataProps(ctx);\n\t\tlet buildMethodsStr = this._getBuildMethods(ctx);\n\t\tlet str = importStr + \"\\n\" +\n\t\t\t`class ${this.widgetName} extends StatelessWidget {\\n` +\n\t\t\t\tpropStr +\n\t\t\t\t`${this.widgetName}({ Key${nullsafe ? \"?\" : \"\"} key, ${paramStr}}) : super(key: key);\\n` +\n\t\t\t\t`@override\\nWidget build(BuildContext context) { return ${bodyStr}; }` +\n\t\t\t\tbuildMethodsStr +\n\t\t\t\"}\\n\" +\n\t\t\tshapeDataStr;\n\n\t\tctx.popWidget();\n\t\treturn str;\n\t}\n\n\taddBuildMethod(name, str, ctx) {\n\t\tthis._checkMemberName(name, \"build method\", ctx);\n\t\tthis._buildMethods[name] = str;\n\t}\n\n\taddShapeData(shape) {\n\t\t// TODO: GS: Switching this to use a unique shape ID (NOT svgId) could simplify a few things\n\t\tthis._shapeData[shape.xdNode.guid] = shape;\n\t}\n\n\tremoveShapeData(shape) {\n\t\tdelete(this._shapeData[shape.xdNode.guid]);\n\t}\n\n\taddImport(name, isWidget, scope) {\n\t\tthis._imports[name] = {name, isWidget, scope};\n\t}\n\n\taddChildParam(param, ctx) {\n\t\tif (!param || !param.name) { return; }\n\t\tthis._checkMemberName(param.name, `parameter of type ${param.type}`, ctx);\n\t\tthis._childParameters[param.name] = param;\n\t}\n\n\t_checkMemberName(name, type, ctx) {\n\t\tif (!this.xdNode.isMaster) { return; }\n\t\tlet t = this._memberNames[name];\n\t\tif (t && t === type) {\n\t\t\tctx.log.warn(`A ${type} name was defined twice on '${this.widgetName}': '${name}'`);\n\t\t} else if (t && t !== type) {\n\t\t\tctx.log.error(`A ${type} was defined with the same name as a ${t} on '${this.widgetName}': '${name}'`);\n\t\t\t//ctx.log.warn(`Duplicate member name (param) on '${this.widgetName}': ${name}.`);\n\t\t}\n\t\tthis._memberNames[name] = type;\n\t}\n\n\t_serializeWidgetBody(ctx) {\n\t\tthrow(\"_serializeWidgetBody must be implemented.\");\n\t}\n\n\t_getBuildMethods(ctx) {\n\t\tlet str = \"\", o = this._buildMethods;\n\t\tfor (let n in o) {\n\t\t\tstr += `\\n\\nWidget ${n}(context) {\\nreturn ${o[n]};\\n}`\n\t\t}\n\t\treturn str;\n\t}\n\n\t_getShapeDataProps(ctx) {\n\t\tlet str = \"\", names = {};\n\t\tfor (let [k, node] of Object.entries(this._shapeData)) {\n\t\t\tconst name = NodeUtils.getShapeDataName(node, ctx);\n\t\t\tif (names[name]) { continue; }\n\t\t\tnames[name] = true;\n\t\t\tstr += `const String ${name} = '${node.toSvgString(ctx)}';\\n`;\n\t\t}\n\t\treturn str;\n\t}\n\n\t_getImportListString(ctx) {\n\t\tlet str = \"import 'package:flutter/material.dart';\\n\";\n\t\tlet imports = this._imports;\n\t\tfor (let n in imports) {\n\t\t\tlet o = imports[n];\n\t\t\tif (ctx.target === ContextTarget.FILES || !o.isWidgetImport) {\n\t\t\t\tstr += `import '${o.name}'${o.scope ? `as ${o.scope}` : ''};\\n`;\n\t\t\t}\n\t\t}\n\t\treturn str;\n\t}\n\n\t_getParamList(ctx) {\n\t\tlet str = \"\", params = this._childParameters;\n\t\tfor (let n in params) {\n\t\t\tlet param = params[n], value = param.value;\n\t\t\tstr += value ? `${param.name}: ${value}, ` : \"\";\n\t\t}\n\t\treturn str;\n\t}\n}\nexports.AbstractWidget = AbstractWidget;\n\n","/*\nCopyright 2020 Adobe\nAll Rights Reserved.\n\nNOTICE: Adobe permits you to use, modify, and distribute this file in\naccordance with the terms of the Adobe license agreement accompanying\nit. If you have received this file from a source other than Adobe,\nthen your use, modification, or distribution of it requires the prior\nwritten permission of Adobe. \n*/\n\nconst xd = require(\"scenegraph\");\n\nconst { AbstractWidget } = require(\"./abstractwidget\");\nconst { getColor } = require(\"../../utils/exportutils\");\n\nclass Artboard extends AbstractWidget {\n\tstatic create(xdNode, ctx) { throw(\"Artboard.create() called.\"); }\n\n\tget symbolId() {\n\t\treturn this.xdNode.guid;\n\t}\n\n\t_serialize(ctx) {\n\t\treturn `${this.widgetName}(${this._getParamList(ctx)})`;\n\t}\n\n\tget adjustedBounds() {\n\t\t// we don't want the artboard's position in the document.\n\t\tlet xdNode = this.xdNode;\n\t\treturn {x: 0, y: 0, width: xdNode.width, height: xdNode.height};\n\t}\n\n\t_serializeWidgetBody(ctx) {\n\t\treturn `Scaffold(${this._getBackgroundColorParam(ctx)}body: ${this._getChildStack(this.children, ctx)}, )`;\n\t}\n\n\t_getBackgroundColorParam(ctx) {\n\t\tlet xdNode = this.xdNode, fill = xdNode.fillEnabled && xdNode.fill, color;\n\t\tif (fill instanceof xd.Color) { color = fill; }\n\t\telse if (fill) {\n\t\t\tctx.log.warn(\"Only solid color backgrounds are supported for artboards.\", xdNode);\n\t\t\tlet stops = fill.colorStops;\n\t\t\tif (stops && stops.length > 0) { color = stops[0].color; }\n\t\t}\n\t\treturn color ? `backgroundColor: ${getColor(color)}, ` : \"\";\n\t}\n}\n\nexports.Artboard = Artboard;\n","/*\nCopyright 2020 Adobe\nAll Rights Reserved.\n\nNOTICE: Adobe permits you to use, modify, and distribute this file in\naccordance with the terms of the Adobe license agreement accompanying\nit. If you have received this file from a source other than Adobe,\nthen your use, modification, or distribution of it requires the prior\nwritten permission of Adobe. \n*/\n\nconst NodeUtils = require(\"../../utils/nodeutils\");\nconst { DartType } = require(\"../../utils/exportutils\");\n\nconst { AbstractWidget } = require(\"./abstractwidget\");\nconst PropType = require(\"../proptype\");\nconst { ContextTarget } = require(\"../context\");\nconst { OnTap } = require(\"../decorators/ontap\");\nconst { Parameter } = require(\"../parameter\");\n\nclass Component extends AbstractWidget {\n\tstatic create(xdNode, ctx) { throw(\"Component.create() called.\"); }\n\n\tconstructor(xdNode, ctx) {\n\t\tsuper(xdNode, ctx);\n\n\t\tlet tapCB = NodeUtils.getProp(this.xdNode, PropType.TAP_CALLBACK_NAME);\n\t\tif (tapCB) { this.addChildParam(new Parameter(tapCB, DartType.TAP_CB), ctx); }\n\t}\n\n\tget isMaster() {\n\t\treturn this.xdNode.isMaster;\n\t}\n\n\t_serialize(ctx) {\n\t\tlet master = ctx.masterComponents[this.symbolId];\n\t\tif (!master) {\n\t\t\tctx.log.error('Master component could not be found.', this.xdNode);\n\t\t\treturn \"Container()\";\n\t\t}\n\t\tif (ctx.target === ContextTarget.CLIPBOARD) {\n\t\t\tctx.log.warn(`Component widget ${master.widgetName} not exported during copy to clipboard operation.`, null);\n\t\t}\n\t\tlet str = `${master.widgetName}(${this._getParamList(ctx)})`;\n\t\treturn this._decorate(str, ctx);\n\t}\n\n\t_serializeWidgetBody(ctx) {\n\t\tlet str = this._getChildStack(this.children, ctx);\n\t\t// for Component, onTap is not handled by the decorator, because it isn't instance based:\n\t\treturn OnTap.get(str, NodeUtils.getProp(this.xdNode, PropType.TAP_CALLBACK_NAME));\n\t}\n}\n\nexports.Component = Component;\n","/*\nCopyright 2020 Adobe\nAll Rights Reserved.\n\nNOTICE: Adobe permits you to use, modify, and distribute this file in\naccordance with the terms of the Adobe license agreement accompanying\nit. If you have received this file from a source other than Adobe,\nthen your use, modification, or distribution of it requires the prior\nwritten permission of Adobe. \n*/\n\nconst xd = require(\"scenegraph\");\n\nconst $ = require(\"../../utils/utils\");\nconst ExportUtils = require(\"../../utils/exportutils\");\nconst NodeUtils = require(\"../../utils/nodeutils\");\n\nconst { AbstractNode } = require(\"./abstractnode\");\nconst PropType = require(\"../proptype\");\n\n// Represents an Ellipse or Rectangle that can be exported as a decorated Container\nclass Container extends AbstractNode {\n\tstatic create(xdNode, ctx) {\n\t\tif (xdNode instanceof xd.Rectangle || xdNode instanceof xd.Ellipse) {\n\t\t\tif (xdNode.fillEnabled &&\n\t\t\t\t(xdNode.fill instanceof xd.RadialGradient || xdNode.fill instanceof xd.AngularGradient)) {\n\t\t\t\tctx.addImport(\"package:adobe_xd/gradient_xd_transform.dart\");\n\t\t\t}\n\t\t\treturn new Container(xdNode, ctx);\n\t\t}\n\t}\n\n\tconstructor(xdNode, ctx) {\n\t\tsuper(xdNode, ctx);\n\t\tif (xdNode.fill instanceof xd.ImageFill) {\n\t\t\tlet value = ExportUtils.getAssetImage(xdNode, ctx);\n\t\t\tctx.addParam(this.addParam(\"fill\", NodeUtils.getProp(xdNode, PropType.IMAGE_PARAM_NAME), ExportUtils.DartType.IMAGE, value));\n\t\t}\n\t}\n\n\tget isRect() {\n\t\treturn this.xdNode instanceof xd.Rectangle\n\t}\n\n\t_serialize(ctx) {\n\t\treturn \"Container(\" +\n\t\t\tthis._getSizeParams(ctx) +\n\t\t\tthis._getColorOrDecorationParam(ctx) +\n\t\t\tthis._getMarginParam(ctx) +\n\t\t\")\";\n\t}\n\n\t_getSizeParams(ctx) {\n\t\tlet layout = this.layout;\n\t\tif (!layout.enabled || !layout.shouldFixSize) { return \"\"; }\n\t\tlayout.shouldFixSize = false; // indicate that it's been handled\n\t\tlet o = this.xdNode, isRect = this.isRect;\n\t\tlet w = $.fix(isRect ? o.width : o.radiusX * 2, 0);\n\t\tlet h = $.fix(isRect ? o.height : o.radiusY * 2, 0);\n\t\treturn `width: ${w}, height: ${h}, `;\n\t}\n\n\t_getMarginParam(ctx) {\n\t\tlet layout = this.layout;\n\t\tlet margin = layout.enabled && layout.padding;\n\t\tif (!margin) { return \"\"; }\n\t\tlayout.padding = null; // indicate that it's been handled\n\t\treturn `margin: ${margin}, `;\n\t}\n\n\t/** BOXDECORATION */\n\t_getColorOrDecorationParam(ctx) {\n\t\tlet xdNode = this.xdNode;\n\t\tif (this.isRect && !xdNode.stroke && !xdNode.hasRoundedCorners && !xdNode.shadow && xdNode.fill instanceof xd.Color) {\n\t\t\treturn this._getFillParam(ctx);\n\t\t} else {\n\t\t\treturn this._getDecorationParam(ctx);\n\t\t}\n\t}\n\n\t_getDecorationParam(ctx) {\n\t\tlet str = $.getParamList([\n\t\t\tthis._getBorderRadiusParam(ctx),\n\t\t\tthis._getBorderParam(ctx),\n\t\t\tthis._getBoxShadowParam(ctx)\n\t\t]);\n\t\tlet fill = this._getFillParam(ctx);\n\t\tif (!str && fill.startsWith(\"color: \")) {\n\t\t\treturn fill;\n\t\t}\n\t\treturn `decoration: BoxDecoration(${fill + str}), `;\n\t}\n\n\t/** FILL & STROKE */\n\t_getFillParam(ctx) {\n\t\tlet xdNode = this.xdNode, fill = xdNode.fillEnabled && xdNode.fill;\n\t\tif (!fill) { return \"\"; }\n\t\tlet blur = xdNode.blur;\n\t\tlet blurFillOpacity = (blur && blur.visible && blur.isBackgroundEffect) ? blur.fillOpacity : 1.0;\n\t\tlet opacity = NodeUtils.getOpacity(xdNode) * blurFillOpacity;\n\t\tif (fill instanceof xd.Color) {\n\t\t\treturn `color: ${ExportUtils.getColor(xdNode.fill, opacity)}, `;\n\t\t}\n\t\tif (fill instanceof xd.ImageFill) {\n\t\t\tlet image = this.getParamName(\"fill\") || ExportUtils.getAssetImage(xdNode, ctx);\n\t\t\treturn \"image: DecorationImage(\"+\n\t\t\t\t` image: ${image},` +\n\t\t\t\t` fit: ${this._getBoxFit(fill.scaleBehavior)},` +\n\t\t\t\tthis._getOpacityColorFilterParam(opacity) +\n\t\t\t\"), \";\n\t\t}\n\t\tlet gradient = ExportUtils.getGradientParam(fill, opacity);\n\t\tif (gradient) { return gradient; }\n\t\tctx.log.warn(`Unrecognized fill type ('${fill.constructor.name}').`, xdNode);\n\t}\n\n\t_getBoxFit(scaleBehavior, ctx) {\n\t\t// Flutter default is BoxFit.scaleDown, so this is always needed.\n\t\treturn `BoxFit.${scaleBehavior === xd.ImageFill.SCALE_COVER ? 'cover' : 'fill'}`;\n\t}\n\n\t_getOpacityColorFilterParam(opacity) {\n\t\tif (opacity >= 1) { return ''; }\n\t\treturn `colorFilter: new ColorFilter.mode(Colors.black.withOpacity(${$.fix(opacity, 2)}), BlendMode.dstIn), `;\n\t}\n\n\t_getBorderParam(ctx) {\n\t\tlet xdNode = this.xdNode;\n\t\tif (!xdNode.strokeEnabled) { return \"\"; }\n\t\tif (xdNode.strokePosition !== xd.GraphicNode.INNER_STROKE) {\n\t\t\tctx.log.warn('Only inner strokes are supported on rectangles & ellipses.', xdNode);\n\t\t}\n\t\tif (xdNode.strokeJoins !== xd.GraphicNode.STROKE_JOIN_MITER) {\n\t\t\tctx.log.warn('Only miter stroke joins are supported on rectangles & ellipses.', xdNode);\n\t\t}\n\t\tlet dashes = xdNode.strokeDashArray;\n\t\tif (dashes && dashes.length && dashes.reduce((a, b) => a + b)) {\n\t\t\tctx.log.warn('Dashed lines are not supported on rectangles & ellipses.', xdNode);\n\t\t}\n\t\tlet color = xdNode.stroke && ExportUtils.getColor(xdNode.stroke, NodeUtils.getOpacity(xdNode));\n\t\treturn color ? `border: Border.all(width: ${$.fix(xdNode.strokeWidth, 2)}, color: ${color}), ` : \"\";\n\t}\n\n\t/** BORDERRADIUS */\n\t_getBorderRadiusParam(ctx) {\n\t\tlet xdNode = this.xdNode, radiusStr;\n\t\tif (xdNode instanceof xd.Ellipse) {\n\t\t\tradiusStr = this._getBorderRadiusForEllipse(ctx);\n\t\t} else if (xdNode.hasRoundedCorners) {\n\t\t\tradiusStr = this._getBorderRadiusForRectangle(ctx);\n\t\t}\n\t\treturn radiusStr ? `borderRadius: ${radiusStr}, ` : \"\";\n\t}\n\n\t_getBorderRadiusForEllipse(ctx) {\n\t\t// use a really high number so it works if it is resized.\n\t\t// using shape: BoxShape.circle doesn't work with ovals\n\t\treturn `BorderRadius.all(Radius.elliptical(9999.0, 9999.0))`;\n\t}\n\n\t_getBorderRadiusForRectangle(ctx) {\n\t\tlet radii = this.xdNode.cornerRadii;\n\t\tlet tl = radii.topLeft, tr = radii.topRight, br = radii.bottomRight, bl = radii.bottomLeft;\n\t\tif (tl === tr && tl === br && tl === bl) {\n\t\t\treturn `BorderRadius.circular(${$.fix(tl, 2)})`;\n\t\t} else {\n\t\t\treturn 'BorderRadius.only(' +\n\t\t\t\tthis._getRadiusParam(\"topLeft\", tl) +\n\t\t\t\tthis._getRadiusParam(\"topRight\", tr) +\n\t\t\t\tthis._getRadiusParam(\"bottomRight\", br) +\n\t\t\t\tthis._getRadiusParam(\"bottomLeft\", bl) +\n\t\t\t')';\n\t\t}\n\t}\n\n\t_getRadiusParam(param, value) {\n\t\tif (value <= 1) { return ''; }\n\t\treturn `${param}: Radius.circular(${$.fix(value, 2)}), `;\n\t}\n\n\n\t/** SHADOWS */\n\t_getBoxShadowParam(ctx) {\n\t\tlet xdNode = this.xdNode, s = xdNode.shadow;\n\t\tif (!s || !s.visible) { return \"\"; }\n\t\treturn \"boxShadow: [BoxShadow(\" +\n\t\t\t`color: ${ExportUtils.getColor(s.color, NodeUtils.getOpacity(xdNode))}, ` +\n\t\t\t`offset: Offset(${s.x}, ${s.y}), ` +\n\t\t\t`blurRadius: ${s.blur}, ` +\n\t\t\"), ], \";\n\t}\n\n}\nexports.Container = Container;\n\n","/*\nCopyright 2020 Adobe\nAll Rights Reserved.\n\nNOTICE: Adobe permits you to use, modify, and distribute this file in\naccordance with the terms of the Adobe license agreement accompanying\nit. If you have received this file from a source other than Adobe,\nthen your use, modification, or distribution of it requires the prior\nwritten permission of Adobe. \n*/\n\nconst xd = require(\"scenegraph\");\n\nconst $ = require(\"../../utils/utils\");\nconst NodeUtils = require(\"../../utils/nodeutils\");\nconst { getString, getAssetImage, DartType, getScrollView } = require(\"../../utils/exportutils\");\n\nconst { AbstractNode } = require(\"./abstractnode\");\nconst PropType = require(\"../proptype\");\n \nclass Grid extends AbstractNode {\n\tstatic create(xdNode, ctx) {\n\t\tif (xdNode instanceof xd.RepeatGrid) {\n\t\t\treturn new Grid(xdNode, ctx);\n\t\t}\n\t}\n\n\tconstructor(xdNode, ctx) {\n\t\tsuper(xdNode, ctx);\n\t\tthis.item = null;\n\t\t// TODO: it would be nice to include the first child in the default value,\n\t\t// but that's tricky if we need to add the param in the constructor instead of _serialize\n\t\tctx.addParam(this.addParam(\"data\", NodeUtils.getProp(xdNode, PropType.DATA_PARAM_NAME), DartType.GRID_DATA, \"const []\"));\n\t}\n\t\n\t_serialize(ctx) {\n\t\tlet o = this.xdNode, item = this.item, layout = item.layout;\n\t\tif (!item || o.children.length < 1) {\n\t\t\tctx.log.error( \"Repeat grid has no children.\", o);\n\t\t\treturn \"\";\n\t\t}\n\t\tif (item.children.length < 1) {\n\t\t\tctx.log.warn(\"Repeat grid item is empty.\", o);\n\t\t\treturn \"\";\n\t\t}\n\t\tif (o.paddingX < 0 || o.paddingY < 0) {\n\t\t\tctx.log.warn(\"Negative grid spacing is not supported.\", o);\n\t\t}\n\t\t\n\t\tlet itemIsResponsive= this._itemIsResponsive();\n\t\tif (itemIsResponsive) {\n\t\t\titem = this._stripVirtualGroup(item);\n\t\t\t// disable any layout on the inner group:\n\t\t\tlayout.enabled = false;\n\t\t} else {\n\t\t\t// TODO: should we strip the virtual group if there is only a single child?\n\t\t\t// disable layout except adding a sized box:\n\t\t\tlayout.reset();\n\t\t\tlayout.shouldFixSize = true;\n\t\t}\n\n\t\t// TODO: it would be great to add explicit types to the params at some point\n\t\t// ex. children: <Map<String, dynamic>>\n\t\t// ex. final String value = o['foo'];\n\t\tlet params = this._getParams(ctx);\n\t\tlet l=o.children.length, childData = new Array(l).fill(\"\"), paramVarStr = \"\";\n\t\tlet ns = !!NodeUtils.getProp(xd.root, PropType.NULL_SAFE) ? \"!\" : \"\";\n\n\t\tfor (let n in params) {\n\t\t\tlet vals = params[n];\n\t\t\tparamVarStr += `final ${n} = ${Grid.mapParamName}['${n}']${ns};\\n`;\n\t\t\tfor (let i=0; i<l; i++) {\n\t\t\t\tchildData[i] += `'${n}': ${vals[i]}, `;\n\t\t\t}\n\t\t}\n\t\tlet childDataStr = `[{${childData.join(\"}, {\")}}]`;\n\n\t\tlet dataParamName = NodeUtils.getProp(o, PropType.DATA_PARAM_NAME);\n\t\tif (dataParamName) {\n\t\t\tchildDataStr = dataParamName;\n\t\t}\n\t\t\n\t\tlet itemStr = item.serialize(ctx);\n\n\t\tlet xSpacing = Math.max(0, o.paddingX), ySpacing = Math.max(0, o.paddingY);\n\t\tlet cellW = o.cellSize.width, cellH = o.cellSize.height;\n\t\tlet aspectRatio = $.fix(cellW / cellH, 2);\n\t\t\n\t\tlet cols = (o.width + xSpacing) / (o.cellSize.width + xSpacing);\n\t\tlet colCount = Math.round(cols), delta = Math.abs(cols - colCount);\n\n\t\tif (delta > 0.15) {\n\t\t\tctx.log.warn(\"Partial columns are not supported in repeat grids.\", o);\n\t\t}\n\n\t\tlet str = itemIsResponsive ?\n\t\t\t`GridView.count(` +\n\t\t\t\t`mainAxisSpacing: ${ySpacing}, crossAxisSpacing: ${xSpacing}, ` +\n\t\t\t\t`crossAxisCount: ${colCount}, ` +\n\t\t\t\t`childAspectRatio: ${aspectRatio}, ` +\n\t\t\t\t`children: ${childDataStr}.map((${Grid.mapParamName}) { ${paramVarStr} return ${itemStr}; }).toList(),` +\n\t\t\t')'\n\t\t\t:\n\t\t\tgetScrollView(`Wrap(` +\n\t\t\t\t'alignment: WrapAlignment.center, ' +\n\t\t\t\t`spacing: ${xSpacing}, runSpacing: ${ySpacing}, ` +\n\t\t\t\t`children: ${childDataStr}.map((${Grid.mapParamName}) { ${paramVarStr} return ${itemStr}; }).toList(),` +\n\t\t\t')', this, ctx);\n\t\t\n\t\treturn str;\n\t}\n\n\t_itemIsResponsive() {\n\t\t// check to see if the virtual group has a single child:\n\t\tlet item = this.item, kids = item && item.children;\n\t\tif (!kids || kids.length !== 1) { return false; }\n\t\t// now check if that child has children and if they are responsive\n\t\tkids = kids[0].children;\n\t\treturn !!(kids && kids.length > 0 && kids[0].layout.isResponsive);\n\t}\n\n\t_stripVirtualGroup(item) {\n\t\tlet kids = item && item.children;\n\t\treturn !kids || kids.length !== 1 ? item : kids[0];\n\t}\n\t\n\t_getParams(ctx) {\n\t\tlet params = {};\n\t\tthis._diff(this.item, this.xdNode.children.map(o => o), params, ctx);\n\t\treturn params;\n\t}\n\n\t_diff(node, xdNodes, params, ctx) {\n\t\tif (!node || !xdNodes || xdNodes.length < 1) { return; }\n\t\tlet master = xdNodes[0];\n\t\t\n\t\t// Currently in XD, only text content and image fills can be different in grid items.\n\t\tif (master instanceof xd.Text) {\n\t\t\tlet pName = NodeUtils.getProp(master, PropType.TEXT_PARAM_NAME);\n\t\t\tlet name = pName || this._getName(params, \"text\");\n\t\t\tif (this._diffField(params, xdNodes, name, this._getText, !!pName, ctx)) {\n\t\t\t\tnode.addParam(\"text\", name);\n\t\t\t}\n\t\t} else if ((master instanceof xd.Rectangle || master instanceof xd.Ellipse) && master.fill instanceof xd.ImageFill) {\n\t\t\tlet pName = NodeUtils.getProp(master, PropType.IMAGE_PARAM_NAME);\n\t\t\tlet name = pName || this._getName(params, \"image\");\n\t\t\tif (this._diffField(params, xdNodes, name, this._getImage, !!pName, ctx)) {\n\t\t\t\tnode.addParam(\"fill\", name);\n\t\t\t}\n\t\t}\n\t\t\n\t\tfor (let i=0, l=node.children && node.children.length; i<l; i++) {\n\t\t\tlet childNode = node.children[i];\n\t\t\tthis._diff(childNode, xdNodes.map(o => o.children.at(i)), params, ctx);\n\t\t};\n\t}\n\n\t_getName(params, name) {\n\t\tlet count = 0, n = name;\n\t\twhile (params[n]) { n = name + \"_\" + (count++); }\n\t\treturn n;\n\t}\n\n\t_diffField(params, xdNodes, name, valueF, force, ctx) {\n\t\tlet a = valueF(xdNodes[0]), values=[], diff=!!force;\n\t\tfor (let i=0, l=xdNodes.length; i<l; i++) {\n\t\t\tlet xdNode = xdNodes[i], b = valueF(xdNode, ctx);\n\t\t\tif (a !== b) { diff = true; }\n\t\t\tvalues[i] = b;\n\t\t}\n\t\tif (diff) { params[name] = values; }\n\t\treturn diff;\n\t}\n\n\t_getText(xdNode, ctx) { return getString(xdNode.text); }\n\n\t_getImage(xdNode, ctx) { return getAssetImage(xdNode, ctx); }\n\t\n}\n\nGrid.mapParamName = 'itemData';\nexports.Grid = Grid;\n","/*\nCopyright 2020 Adobe\nAll Rights Reserved.\n\nNOTICE: Adobe permits you to use, modify, and distribute this file in\naccordance with the terms of the Adobe license agreement accompanying\nit. If you have received this file from a source other than Adobe,\nthen your use, modification, or distribution of it requires the prior\nwritten permission of Adobe. \n*/\n\nconst xd = require(\"scenegraph\");\n\nconst NodeUtils = require(\"../../utils/nodeutils\");\nconst { getScrollView, DartType } = require(\"../../utils/exportutils\");\nconst { normalizeSpacings, normalizePadding, getGroupContentBounds, hasComplexTransform, mergeBounds, LayoutType } = require(\"../../utils/layoututils\");\n\nconst { AbstractNode } = require(\"./abstractnode\");\nconst PropType = require(\"../proptype\");\nconst { fix } = require(\"../../utils/utils\");\nconst { addSizedBox } = require(\"../../utils/layoututils\");\nconst { ExportMode, DEFAULT_CUSTOM_CODE, REQUIRED_PARAM } = require(\"../constants\");\n\n\nclass Group extends AbstractNode {\n\tstatic create(xdNode, ctx) {\n\t\tif (xdNode instanceof xd.Group || xdNode instanceof xd.ScrollableGroup) {\n\t\t\treturn new Group(xdNode, ctx);\n\t\t}\n\t}\n\n\tconstructor(xdNode, ctx) {\n\t\tsuper(xdNode, ctx);\n\t\tthis.children = [];\n\t\t\n\t\tlet mode = this.mode;\n\t\tif (mode === ExportMode.INLINE || mode === ExportMode.METHOD) {\n\t\t\tctx.addParam(this.addParam(\"onTap\", NodeUtils.getProp(this.xdNode, PropType.TAP_CALLBACK_NAME), DartType.TAP_CB));\n\t\t} else if (mode === ExportMode.BUILDER) {\n\t\t\tctx.addParam(this.addParam(\"builder\", this.buildMethodName, DartType.BUILDER, REQUIRED_PARAM));\n\t\t}\n\t}\n\n\tget mode() {\n\t\tif (!this._mode) {\n\t\t\tthis._mode = NodeUtils.getProp(this.xdNode, PropType.EXPORT_MODE) ||\n\t\t\t\tExportMode.INLINE;\n\t\t}\n\t\treturn this._mode;\n\t}\n\n\tget buildMethodName() {\n\t\treturn NodeUtils.getProp(this.xdNode, PropType.BUILD_METHOD_NAME) ||\n\t\t\tNodeUtils.getDefaultBuildMethodName(this.xdNode);\n\t}\n\n\tget background() {\n\t\tlet padding = this.xdNode.layout.padding;\n\t\treturn padding && padding.background;\n\t}\n\n\tserialize(ctx) {\n\t\tlet nodeStr = this._serialize(ctx);\n\t\tif (this.mode === ExportMode.CUSTOM || this.mode === ExportMode.BUILDER) {\n\t\t\t// don't decorate or add layout\n\t\t\t// TODO: what about the Comment decorator?\n\t\t\treturn nodeStr;\n\t\t}\n\t\tnodeStr = this._decorate(nodeStr, ctx);\n\n\t\tif (this.mode === ExportMode.METHOD) {\n\t\t\t// TODO: should we add the decorations inside, or outside of the method? What about layout?\n\t\t\tctx.addBuildMethod(this.buildMethodName, nodeStr);\n\t\t\treturn `${this.buildMethodName}(context)`;\n\t\t}\n\t\treturn nodeStr;\n\t}\n\n\t_normalizeChildren() {\n\t\t// removes the background child if appropriate.\n\t\treturn this.children.slice(!!this.background ? 1 : 0);\n\t}\n\n\t_serialize(ctx) {\n\t\t// TODO: reconcile decorators with export modes.\n\t\tif (this.mode === ExportMode.CUSTOM) {\n\t\t\treturn this._getCustomCode(ctx);\n\t\t} else if (this.mode === ExportMode.BUILDER) {\n\t\t\treturn `${this.buildMethodName}(context)`;\n\t\t}\n\n\t\tif (!this.hasChildren) { return \"\"; }\n\n\t\tlet xdNode = this.xdNode, layout = xdNode.layout, str;\n\t\tif (xdNode.mask) { ctx.log.warn(\"Group masks aren't supported.\", xdNode); }\n\n\t\t// determine group type:\n\t\tif (layout.type == \"stack\") {\n\t\t\tstr = this._serializeFlex(ctx);\n\t\t} else {\n\t\t\tstr = this._getChildStack(this._normalizeChildren(), ctx);\n\t\t}\n\n\t\tstr = this._addPadding(str, ctx);\n\t\tstr = this._addBackground(str, ctx);\n\t\tstr = this._addScrolling(str, ctx);\n\t\treturn str;\n\t}\n\n\t_getCustomCode(ctx) {\n\t\tlet str = NodeUtils.getProp(this.xdNode, PropType.CUSTOM_CODE) || DEFAULT_CUSTOM_CODE;\n\t\tlet match = /<(CHILDREN|THIS)({[^}]*?})?>/.exec(str);\n\t\tif (!match) { return str; }\n\n\t\tlet i=match.index, l=match[0].length, tag=match[1], repStr=null, settings = {};\n\t\tif (match[2]) {\n\t\t\ttry { settings = JSON.parse(match[2]); }\n\t\t\tcatch (e) { ctx.log.warn(`Unable to parse tag settings in custom code: ${e}`, this.xdNode); }\n\t\t}\n\n\t\tif (tag === \"CHILDREN\") {\n\t\t\t// <CHILDREN{'layout':'size|none'}>\n\t\t\tif (settings.layout === \"none\") {\n\t\t\t\tthis.children.forEach(o => o.layout.enabled = false);\n\t\t\t} else if (settings.layout === \"size\") {\n\t\t\t\tthis.children.forEach(o => o.layout.reset(true));\n\t\t\t}\n\t\t\trepStr = this._getChildList(this.children, ctx);\n\t\t} else if (tag === \"THIS\") {\n\t\t\t// <THIS{'decorators':false}>\n\t\t\t// TODO: provide separate options for layout vs other decorators?\n\t\t\tlet mode = this._mode;\n\t\t\tthis._mode = ExportMode.INLINE;\n\t\t\trepStr = settings.decorators ? this.serialize(ctx) : this._serialize(ctx);\n\t\t\tthis._mode = mode;\n\t\t}\n\t\treturn repStr == null ? str : str.slice(0, i) + repStr + str.slice(i+l);\n\t}\n\n\t_serializeFlex(ctx) {\n\t\tlet xdNode = this.xdNode, layout = xdNode.layout;\n\t\tlet isVertical = layout.stack.orientation == \"vertical\";\n\n\t\tlet str = (isVertical ? \"Column(\" : \"Row(\") +\n\t\t\t\"crossAxisAlignment: CrossAxisAlignment.stretch, \" +\n\t\t\t`children: <Widget>[${this._getFlexChildren(ctx)}], ` +\n\t\t\")\";\n\t\treturn str;\n\t}\n\n\t_getFlexChildren(ctx) {\n\t\tlet str = \"\", space;\n\t\tlet xdNode = this.xdNode, xdLayout = xdNode.layout;\n\t\tlet isVertical = xdLayout.stack.orientation === \"vertical\";\n\t\tlet spaces = normalizeSpacings(xdLayout.stack.spacings, this.children.length-1).reverse();\n\t\tlet kids = this._normalizeChildren().reverse();\n\n\t\tkids.forEach((node, i) => {\n\t\t\tif (!node) { return; }\n\t\t\tnode.layout.shouldFixSize = false; // handled below\n\n\t\t\tlet childStr = node.serialize(ctx);\n\t\t\tlet size = isVertical ? node.xdNode.localBounds.height : node.xdNode.localBounds.width;\n\t\t\tchildStr = `SizedBox(${isVertical ? 'height' : 'width'}: ${fix(size)}, child: ${childStr}, )`;\n\t\t\tif (!childStr) { return; }\n\n\t\t\tif (space = spaces[i-1]) {\n\t\t\t\tstr += `SizedBox(${isVertical ? 'height' : 'width'}: ${fix(space)}, ), `;\n\t\t\t}\n\n\t\t\tstr += childStr + \", \";\n\t\t});\n\t\treturn str;\n\t}\n\n\t_addBackground(str, ctx) {\n\t\tlet bg = this.background, bgNode = this.children[0];\n\t\tif (!bg) { return str; }\n\t\tbgNode.layout.enabled = false;\n\t\t// this is just for the error generation:\n\t\thasComplexTransform(bgNode, \"Rotation and flip are not supported for background elements.\", ctx);\n\t\treturn 'Stack(children: [\\n' +\n\t\t\t'// background:\\n' +\n\t\t\t`Positioned.fill(child: ${bgNode.serialize(ctx)}, ), ` +\n\t\t\t`Positioned.fill(child: ${str}, ), ` +\n\t\t'], )';\n\t}\n\n\t_addPadding(str, ctx) {\n\t\tlet padding = this.xdNode.layout.padding;\n\t\tlet pad = normalizePadding(padding && padding.values);\n\t\tif (!pad) { return str; }\n\t\treturn 'Padding(' +\n\t\t\t`padding: EdgeInsets.` + (pad.homogenous ?\n\t\t\t\t`all(${fix(pad.top)})` :\n\t\t\t\t`fromLTRB(${fix(pad.left)}, ${fix(pad.top)}, ${fix(pad.right)}, ${fix(pad.bottom)})`) +\n\t\t\t`, child: ${str}, ` +\n\t\t')';\n\t}\n\n\t_addScrolling(str, ctx) {\n\t\tlet xdNode = this.xdNode, vp = xdNode.viewport;\n\t\tif (!(xdNode instanceof xd.ScrollableGroup) || !vp) { return str; }\n\t\tstr = addSizedBox(str, mergeBounds(this.xdNode.children), ctx);\n\t\treturn getScrollView(str, this, ctx);\n\t}\n\n}\nexports.Group = Group;\n","/*\nCopyright 2020 Adobe\nAll Rights Reserved.\n\nNOTICE: Adobe permits you to use, modify, and distribute this file in\naccordance with the terms of the Adobe license agreement accompanying\nit. If you have received this file from a source other than Adobe,\nthen your use, modification, or distribution of it requires the prior\nwritten permission of Adobe. \n*/\n\nconst xd = require(\"scenegraph\");\n\nconst { AbstractNode } = require(\"./abstractnode\");\n\nclass Path extends AbstractNode {\n\tstatic create(xdNode, ctx) {\n\t\tif (xdNode instanceof xd.Path || xdNode instanceof xd.Polygon || xdNode instanceof xd.Line || xdNode instanceof xd.BooleanGroup) {\n\t\t\treturn new Path(xdNode, ctx);\n\t\t}\n\t}\n\n\tserialize(ctx) {\n\t\t// Path objects are converted to Shapes in combineShapes\n\t\tthrow(\"Path.serialize() called.\");\n\t}\n}\nexports.Path = Path;\n\n","const xd = require(\"scenegraph\");\n\nconst $ = require(\"../../utils/utils\");\nconst { AbstractNode } = require(\"./abstractnode\");\nconst { getOpacity } = require(\"../../utils/nodeutils\");\nconst { ContextTarget } = require(\"../context\");\nconst { getImagePath } = require(\"../image_export\");\nconst NodeUtils = require(\"../../utils/nodeutils\");\nconst PropType = require(\"../proptype\");\n\nconst { Container } = require(\"./container\");\nconst { Path } = require(\"./path\");\n\nclass Shape extends AbstractNode {\n\tstatic create(xdNode, ctx) { throw(\"Shape.create() called.\"); }\n\n\tstatic fromPath(node, ctx) {\n\t\t// creates a Shape from a single path. Used by Copy Selected.\n\t\tlet shape = new Shape(node.xdNode, ctx);\n\t\tshape.add(node);\n\t\treturn shape;\n\t}\n\n\t// Collection of Path, Container, & Shape nodes that can be \n\t// written to a single SVG string. Created by combineShapes.\n\tconstructor(xdNode, ctx) {\n\t\tsuper(xdNode, ctx);\n\t\tthis.nodes = [];\n\t\tthis.rejectNextAdd = false;\n\t\tthis.viewBox = null;\n\t\tthis._svgString = null;\n\t}\n\n\tget count() {\n\t\treturn this.nodes.length;\n\t}\n\n\tget adjustedBounds() {\n\t\tif (!this.nodes) { return null; }\n\t\t// Based on the composite view box, and not concerned with transformations.\n\t\tthis._calculateViewBox();\n\t\tlet xdNode = this.xdNode, pb = xdNode.parent.localBounds, vb = this.viewBox;\n\t\treturn {\n\t\t\tx: vb.x - pb.x,\n\t\t\ty: vb.y - pb.y,\n\t\t\twidth: vb.width,\n\t\t\theight: vb.height,\n\t\t}\n\t}\n\n\tget transform() {\n\t\t// The SVG string already accounts for the transform.\n\t\treturn {rotation: 0, flipY: false};\n\t}\n\n\tadd(node, aggressive=false) {\n\t\t// returns true if the node was added, false if not.\n\t\tif (this.rejectNextAdd || !Shape.canAdd(node, aggressive)) {\n\t\t\tthis.rejectNextAdd = false;\n\t\t\treturn false;\n\t\t}\n\t\tif (Shape.hasInteraction(node) || node.hasDecorators || node.layout.isResponsive) {\n\t\t\tif (this.nodes.length) { return false; }\n\t\t\tthis.decorators = node.decorators;\n\t\t\tthis.rejectNextAdd = true;\n\t\t}\n\t\t// Shapes are added directly to the node list, others are added as xdNodes:\n\t\tif (!(node instanceof Shape)) { node = node.xdNode; }\n\t\tthis.nodes.push(node);\n\t\treturn true;\n\t}\n\n\t_serialize(ctx) {\n\t\tlet layout = this.layout;\n\t\t// need to recalculate the layout because bounds may have changed due to shape collapsing:\n\t\tlayout.calculate(ctx);\n\t\t\n\t\tlet svg;\n\t\tif (ctx.target === ContextTarget.CLIPBOARD) {\n\t\t\tsvg = `'${this.toSvgString(ctx)}'`;\n\t\t} else {\n\t\t\tsvg = NodeUtils.getShapeDataName(this, ctx);\n\t\t}\n\t\tif (!layout.isFixedSize) { layout.shouldExpand = true; }\n\t\tlet fit = !layout.isFixedSize ? \"fit: BoxFit.fill, \" : \"\";\n\t\treturn `SvgPicture.string(${svg}, allowDrawingOutsideViewBox: true, ${fit})`;\n\t}\n\n\tget boundsInParent() {\n\t\tthis._calculateViewBox();\n\t\treturn this.xdNode.transform.transformRect(this.viewBox);\n\t}\n\n\tgetSvgId(ctx) {\n\t\tif (this._svgId) { return this._svgId; }\n\t\tthis._svgId = $.getHash(this.toSvgString(ctx)).toString(36);\n\t\treturn this._svgId;\n\t}\n\n\ttoSvgString(ctx) {\n\t\tif (this._svgString) { return this._svgString; }\n\t\tthis._calculateViewBox();\n\n\t\tlet vx = $.fix(this.viewBox.x);\n\t\tlet vy = $.fix(this.viewBox.y);\n\t\tlet vw = $.fix(this.viewBox.width);\n\t\tlet vh = $.fix(this.viewBox.height);\n\n\t\tlet svg = _serializeSvgGroup(this, ctx, true);\n\t\tthis._svgString = `<svg viewBox=\"${vx} ${vy} ${vw} ${vh}\" >${svg}</svg>`;\n\t\treturn this._svgString;\n\t}\n\n\t_calculateViewBox() {\n\t\tif (this.viewBox) { return; }\n\t\tlet o = this.viewBox = _calculateAggregateViewBox(this.nodes);\n\t\t// ensure a minimum width/height for shapes comprising of just a line:\n\t\to.width = Math.max(1, o.width);\n\t\to.height = Math.max(1, o.height);\n\t}\n\n}\nShape.canAdd = function(node, aggressive=false) {\n\tlet xdNode = node && node.xdNode;\n\treturn node instanceof Path || node instanceof Shape ||\n\t\t(aggressive && node instanceof Container &&\n\t\t\t!(xdNode.fillEnabled && xdNode.fill instanceof xd.ImageFill) &&\n\t\t\t!(xdNode.shadow && xdNode.shadow.visible) &&\n\t\t\t!node.hasDecorators\n\t\t);\n}\nShape.hasInteraction = function(node) {\n\tlet hasLink = NodeUtils.getInteractionCount(node.xdNode) > 0;\n\tlet hasTap = NodeUtils.getProp(node.xdNode, PropType.TAP_CALLBACK_NAME);\n\treturn !!(hasLink || hasTap);\n}\n\nexports.Shape = Shape;\n\nfunction _serializeSvgGroup(node, ctx, ignoreTransform=false) {\n\tlet result = \"\";\n\tfor (let i = 0; i < node.nodes.length; ++i) {\n\t\tlet o = node.nodes[i];\n\t\tif (o instanceof Shape) {\n\t\t\tresult += _serializeSvgGroup(o, ctx);\n\t\t} else {\n\t\t\tresult += _serializeSvgNode(o, ctx);\n\t\t}\n\t}\n\tif (!ignoreTransform) {\n\t\tlet xform = _getSvgTransform(node.xdNode.transform);\n\t\tresult = `<g transform=\"${xform}\">${result}</g>`;\n\t}\n\treturn result;\n}\n\nfunction _serializeSvgNode(xdNode, ctx) {\n\t// TODO: CE: Pull some of this code out into utility functions\n\tlet o = xdNode, pathStr = o.pathData;\n\tlet opacity = getOpacity(o), fill = \"none\", fillOpacity = opacity;\n\tlet hasImageFill = false, hasGradientFill = false;\n\tif (o.fill && o.fillEnabled) {\n\t\thasImageFill = (o.fill instanceof xd.ImageFill);\n\t\thasGradientFill = (o.fill instanceof xd.LinearGradient)\n\t\t\t|| (o.fill instanceof xd.RadialGradient)\n\t\t//\t|| (o.fill instanceof xd.AngularGradient); // not supported in SVG yet\n\t\tif (hasGradientFill) {\n\t\t\tfill = \"url(#gradient)\";\n\t\t} else if (o.fill instanceof xd.Color) {\n\t\t\tfill = \"#\" + $.getRGBHex(o.fill);\n\t\t\tfillOpacity = (o.fill.a / 255.0) * opacity;\n\t\t} else if (o.fill instanceof xd.AngularGradient) {\n\t\t\tctx.log.warn('Angular gradient fills are not supported on shapes.', o);\n\t\t} else if (hasImageFill) {\n\t\t\t// TODO: Flutter SVG doesn't support image fills yet.\n\t\t\thasImageFill = false;\n\t\t\t//fill = \"url(#image)\";\n\t\t\tctx.log.warn('Image fills are not supported on shapes.', o);\n\t\t} else {\n\t\t\tctx.log.warn(`Unrecognized fill type: ${o.fill.constructor.name}.`, o);\n\t\t}\n\t}\n\t\n\tif (o.strokeEnabled && o.strokePosition !== xd.GraphicNode.CENTER_STROKE) {\n\t\tctx.log.warn('Only center strokes are supported on shapes.', o);\n\t}\n\n\tlet imagePath = hasImageFill ? getImagePath(o) : \"\";\n\tlet imageWidth = $.fix(hasImageFill ? o.fill.naturalWidth : 0);\n\tlet imageHeight = $.fix(hasImageFill ? o.fill.naturalHeight : 0);\n\tlet stroke = (o.stroke && o.strokeEnabled) ? \"#\" + $.getRGBHex(o.stroke) : \"none\";\n\tlet strokeOpacity = (o.stroke && o.strokeEnabled) ? (o.stroke.a / 255.0) * opacity : opacity;\n\tlet strokeWidth = o.strokeWidth;\n\tlet strokeDash = o.strokeDashArray.length > 0 ? o.strokeDashArray[0] : 0;\n\tlet strokeGap = o.strokeDashArray.length > 1 ? o.strokeDashArray[1] : strokeDash;\n\tlet strokeOffset = o.strokeDashArray.length > 0 ? o.strokeDashOffset : 0;\n\tlet strokeMiterLimit = o.strokeJoins === xd.GraphicNode.STROKE_JOIN_MITER ? o.strokeMiterLimit : 0;\n\tlet strokeCap = o.strokeEndCaps;\n\tlet strokeJoin = o.strokeJoins;\n\t\n\tlet fillAttrib = `fill=\"${fill}\"`;\n\tif (fillOpacity != 1.0)\n\t\tfillAttrib += ` fill-opacity=\"${$.fix(fillOpacity, 2)}\"`;\n\tlet\tstrokeAttrib = `stroke=\"${stroke}\" stroke-width=\"${strokeWidth}\"`;\n\n\tif (strokeOpacity != 1.0)\n\t\tstrokeAttrib += ` stroke-opacity=\"${$.fix(strokeOpacity, 2)}\"`;\n\tif (strokeGap != 0)\n\t\tstrokeAttrib += ` stroke-dasharray=\"${strokeDash} ${strokeGap}\"`;\n\tif (strokeOffset != 0)\n\t\tstrokeAttrib += ` stroke-dashoffset=\"${strokeOffset}\"`;\n\tif (strokeMiterLimit != 0)\n\t\tstrokeAttrib += ` stroke-miterlimit=\"${strokeMiterLimit}\"`;\n\tif (strokeCap != xd.GraphicNode.STROKE_CAP_BUTT)\n\t\tstrokeAttrib += ` stroke-linecap=\"${strokeCap}\"`;\n\tif (strokeJoin != xd.GraphicNode.STROKE_JOIN_MITER)\n\t\tstrokeAttrib += ` stroke-linejoin=\"${strokeJoin}\"`;\n\n\tlet hasShadow = o.shadow && o.shadow.visible;\n\tif (hasShadow) {\n\t\t// TODO: Flutter SVG doesn't support shadows yet.\n\t\thasShadow = false;\n\t\tctx.log.warn('Shadows are not supported on shapes.', o);\n\t}\n\tlet filterAttrib = hasShadow ? `filter=\"url(#shadow)\"` : \"\";\n\n\tlet defs = \"\";\n\tif (hasShadow) {\n\t\tdefs += `<filter id=\"shadow\"><feDropShadow dx=\"${o.shadow.x}\" dy=\"${o.shadow.y}\" stdDeviation=\"${o.shadow.blur}\"/></filter>`;\n\t}\n\tif (hasImageFill) {\n\t\tdefs += `<pattern id=\"image\" patternUnits=\"userSpaceOnUse\" width=\"${imageWidth}\" height=\"${imageHeight}\"><image xlink:href=\"${imagePath}\" x=\"0\" y=\"0\" width=\"${imageWidth}\" height=\"${imageHeight}\" /></pattern>`;\n\t}\n\tif (hasGradientFill) {\n\t\tlet colorStops = '';\n\t\tfor (let stop of o.fill.colorStops) {\n\t\t\tconst offset = $.fix(stop.stop, 6);\n\t\t\tconst color = $.getRGBHex(stop.color);\n\t\t\tconst opacity = stop.color.a !== 255 ? `stop-opacity=\"${$.fix(stop.color.a / 255.0, 2)}\"` : \"\";\n\t\t\tcolorStops += `<stop offset=\"${offset}\" stop-color=\"#${color}\" ${opacity}/>`;\n\t\t}\n\t\tif (o.fill instanceof xd.LinearGradient) {\n\t\t\tconst x1 = $.fix(o.fill.startX, 6);\n\t\t\tconst y1 = $.fix(o.fill.startY, 6);\n\t\t\tconst x2 = $.fix(o.fill.endX, 6);\n\t\t\tconst y2 = $.fix(o.fill.endY, 6);\n\t\t\tdefs += `<linearGradient id=\"gradient\" x1=\"${x1}\" y1=\"${y1}\" x2=\"${x2}\" y2=\"${y2}\">`;\n\t\t\tdefs += colorStops;\n\t\t\tdefs += `</linearGradient>`;\n\t\t} else if (o.fill instanceof xd.RadialGradient) {\n\t\t\tconst inv = o.fill.gradientTransform.invert();\n\t\t\tconst start = inv.transformPoint({ x: o.fill.startX, y: o.fill.startY });\n\t\t\tconst end = inv.transformPoint({ x: o.fill.endX, y: o.fill.endY });\n\t\t\tconst fx = $.fix(start.x, 6);\n\t\t\tconst fy = $.fix(start.y, 6);\n\t\t\tconst fr = $.fix(o.fill.startR, 6);\n\t\t\tconst cx = $.fix(end.x, 6);\n\t\t\tconst cy = $.fix(end.y, 6);\n\t\t\tconst r = $.fix(o.fill.endR, 6);\n\t\t\tconst a = $.fix(o.fill.gradientTransform.a, 6);\n\t\t\tconst b = $.fix(o.fill.gradientTransform.b, 6);\n\t\t\tconst c = $.fix(o.fill.gradientTransform.c, 6);\n\t\t\tconst d = $.fix(o.fill.gradientTransform.d, 6);\n\t\t\tconst e = $.fix(o.fill.gradientTransform.e, 6);\n\t\t\tconst f = $.fix(o.fill.gradientTransform.f, 6);\n\t\t\tlet xform=\"\";\n\t\t\tif (a !== 1.0 || b !== 0.0 || c !== 0.0 || d !== 1.0 || e !== 0.0 || f !== 0.0) {\n\t\t\t\txform = `gradientTransform=\"matrix(${a} ${b} ${c} ${d} ${e} ${f})\"`;\n\t\t\t}\n\t\t\tdefs += `<radialGradient id=\"gradient\" ${xform} fx=\"${fx}\" fy=\"${fy}\" fr=\"${fr}\" cx=\"${cx}\" cy=\"${cy}\" r=\"${r}\">`;\n\t\t\tdefs += colorStops;\n\t\t\tdefs += `</radialGradient>`;\n\t\t}\n\t}\n\tdefs = defs ? `<defs>${defs}</defs>` : \"\";\n\n\to.transform.translate(o.localBounds.x, o.localBounds.y);\n\tconst xform = _getSvgTransform(o.transform);\n\tlet transformAttrib = xform ? `transform=\"${xform}\"` : \"\";\n\n\tlet str = `${defs}<path ${transformAttrib} d=\"${pathStr}\" ${fillAttrib} ${strokeAttrib} ${filterAttrib}/>`;\n\treturn str;\n}\n\nfunction _getSvgTransform(transform) {\n\tlet result;\n\n\tif (transform.a !== 1.0 || transform.b !== 0.0 || transform.c !== 0.0 || transform.d !== 1.0) {\n\t\t// Use full transform\n\t\tconst a = $.fix(transform.a, 6);\n\t\tconst b = $.fix(transform.b, 6);\n\t\tconst c = $.fix(transform.c, 6);\n\t\tconst d = $.fix(transform.d, 6);\n\t\tconst e = $.fix(transform.e, 2);\n\t\tconst f = $.fix(transform.f, 2);\n\t\tresult = `matrix(${a}, ${b}, ${c}, ${d}, ${e}, ${f})`;\n\t} else if (transform.e !== 0.0 || transform.f !== 0.0) {\n\t\t// Use offset transform\n\t\tconst e = $.fix(transform.e, 2);\n\t\tconst f = $.fix(transform.f, 2);\n\t\tresult = `translate(${e}, ${f})`;\n\t} else {\n\t\tresult = \"\";\n\t}\n\treturn result;\n}\n\nfunction _calculateAggregateViewBox(nodes) {\n\tlet minX = Number.MAX_VALUE;\n\tlet minY = Number.MAX_VALUE;\n\tlet maxX = -Number.MAX_VALUE;\n\tlet maxY = -Number.MAX_VALUE;\n\n\tfor (let o of nodes) {\n\t\tlet boundsR = o.boundsInParent.x + o.boundsInParent.width;\n\t\tlet boundsB = o.boundsInParent.y + o.boundsInParent.height;\n\t\tif (o.boundsInParent.x < minX) { minX = o.boundsInParent.x; }\n\t\tif (o.boundsInParent.y < minY) { minY = o.boundsInParent.y; }\n\t\tif (boundsR > maxX) { maxX = boundsR; }\n\t\tif (boundsB > maxY) { maxY = boundsB; }\n\t}\n\n\treturn { x: minX, y: minY, width: maxX - minX, height: maxY - minY };\n}\n","/*\nCopyright 2020 Adobe\nAll Rights Reserved.\n\nNOTICE: Adobe permits you to use, modify, and distribute this file in\naccordance with the terms of the Adobe license agreement accompanying\nit. If you have received this file from a source other than Adobe,\nthen your use, modification, or distribution of it requires the prior\nwritten permission of Adobe. \n*/\n\nconst xd = require(\"scenegraph\");\n\nconst $ = require(\"../../utils/utils\");\nconst NodeUtils = require(\"../../utils/nodeutils\");\nconst { getColor, getString, getScrollView, DartType } = require(\"../../utils/exportutils\");\n\nconst { AbstractNode } = require(\"./abstractnode\");\nconst PropType = require(\"../proptype\");\nconst { LayoutType } = require(\"../decorators/layout\");\n\n/*\nNotes:\n- Line height in XD is a fixed pixel value. In Flutter it is a multiplier of the largest text in a line. This causes differences in rich text with different sizes.\n*/\n\nclass Text extends AbstractNode {\n\tstatic create(xdNode, ctx) {\n\t\tif (xdNode instanceof xd.Text) {\n\t\t\treturn new Text(xdNode, ctx);\n\t\t}\n\t}\n\n\tconstructor(xdNode, ctx) {\n\t\tsuper(xdNode, ctx);\n\t\tctx.addParam(this.addParam(\"text\", NodeUtils.getProp(xdNode, PropType.TEXT_PARAM_NAME), DartType.STRING, getString(xdNode.text)));\n\t\tctx.addParam(this.addParam(\"fill\", NodeUtils.getProp(xdNode, PropType.COLOR_PARAM_NAME), DartType.COLOR, getColor(xdNode.fill)));\n\t}\n\n\tget transform() {\n\t\tlet o = this.xdNode;\n\t\treturn {rotation: o.rotation, flipY: o.flipY};\n\t}\n\n\t_serialize(ctx) {\n\t\tlet str, o = this.xdNode, layout = this.layout;\n\n\t\tif (o.styleRanges.length <= 1 || this.getParam(\"text\") || this.getParam(\"fill\")) {\n\t\t\tstr = this._getText(ctx);\n\t\t} else {\n\t\t\tstr = this._getTextRich(ctx);\n\t\t}\n\n\t\tif (o.clippedByArea) {\n\t\t\tstr = getScrollView(str, this, ctx);\n\t\t}\n\t\tif (!layout.isFixedSize) {\n\t\t\tlayout.shouldExpand = true;\n\t\t} else if (layout.type === LayoutType.TRANSLATE) {\n\t\t\tstr = this._addSizeBox(str, ctx);\n\t\t}\n\t\treturn str;\n\t}\n\n\t_getText(ctx) {\n\t\tlet o = this.xdNode, text = this.getParamName(\"text\") || getString(o.text);\n\t\treturn \"Text(\" +\n\t\t\t`${text}, ` +\n\t\t\tgetStyleParam(this._getTextStyleParamList(o, false, ctx)) +\n\t\t\t(o.lineSpacing !== 0 ? this._getTextHeightBehavior() : \"\") +\n\t\t\tthis._getTextAlignParam() +\n\t\t\tthis._getSoftWrapParam() +\n\t\t\")\";\n\t}\n\t\n\t_getTextRich(ctx) {\n\t\tlet xdNode = this.xdNode, text = xdNode.text;\n\t\tlet styles = xdNode.styleRanges;\n\t\tlet str = \"\", j=0;\n\t\tlet defaultStyleParams = this._getTextStyleParamList(styles[0], true, ctx);\n\t\tlet hasTextHeight = false;\n\t\n\t\tfor (let i=0; i<styles.length; i++) {\n\t\t\tlet style = styles[i], l = style.length;\n\t\t\thasTextHeight = hasTextHeight || style.lineSpacing !== 0;\n\t\t\tif (l === 0) { continue; }\n\t\t\tlet styleParams = this._getTextStyleParamList(style, false, ctx);\n\t\t\tlet delta = $.getParamDelta(defaultStyleParams, styleParams);\n\t\t\tif (i === styles.length - 1) { l = text.length - j; } // for some reason, XD doesn't always return the correct length for the last entry.\n\t\t\tstr += this._getTextSpan(delta, text.substr(j, l)) + \", \";\n\t\t\tj += l;\n\t\t}\n\t\n\t\t// Export a rich text object with an empty root span setting a default style.\n\t\t// Child spans set their style as a delta of the default.\n\t\treturn \"Text.rich(TextSpan(\" +\n\t\t\tgetStyleParam(defaultStyleParams) +\n\t\t\t` children: [${str}], ),` +\n\t\t\t(hasTextHeight ? this._getTextHeightBehavior() : \"\") +\n\t\t\tthis._getTextAlignParam() +\n\t\t\tthis._getSoftWrapParam() +\n\t\t\")\";\n\t}\n\n\t_getTextSpan(styleParams, text) {\n\t\treturn \"TextSpan(\" +\n\t\t\t` text: ${getString(text)}, ` +\n\t\t\tgetStyleParam(styleParams) +\n\t\t\")\";\n\t}\n\n\t_getSoftWrapParam() {\n\t\tif (this.xdNode.layoutBox.type !== xd.Text.POINT) { return \"\"; }\n\t\treturn \"softWrap: false, \";\n\t}\n\n\t_getTextAlignParam() {\n\t\tif (this.xdNode.textAlign === \"left\") { return \"\"; }\n\t\treturn `textAlign: ${this._getTextAlign(this.xdNode.textAlign)}, `;\n\t}\n\n\t_getTextAlign(align) {\n\t\treturn \"TextAlign.\" + (align === \"right\" ? \"right\" : align === \"center\" ? \"center\" : \"left\");\n\t}\n\n\t_getTextHeightBehavior() {\n\t\t// TODO: this could potentially use some fuzzy logic to only apply to fields that are multi-line,\n\t\t// and just omit the line height for single line text.\n\t\t// ex. if (nodeHeight < textHeight * 1.2)\n\t\t// it's a bit esoteric though, and could cause confusion\n\t\treturn \"textHeightBehavior: TextHeightBehavior(applyHeightToFirstAscent: false), \";\n\t}\n\n\t_getTextStyleParamList(o, isDefault, ctx) {\n\t\treturn getTextStyleParamList(o, isDefault, ctx, this.xdNode, this.getParamName(\"fill\"));\n\t}\n\n\t_addSizeBox(str, ctx) {\n\t\tlet o = this.xdNode, type = o.layoutBox.type, layout = this.layout;\n\t\tif (type === xd.Text.FIXED_HEIGHT || !layout.enabled) { return str; } // let layout handle it\n\n\t\tlet bounds = layout.bounds, w = bounds.width;\n\t\tlayout.shouldFixSize = false;\n\n\t\tif (type === xd.Text.POINT) {\n\t\t\tif (o.textAlign === \"right\") {\n\t\t\t\tw += bounds.x;\n\t\t\t\tbounds.x = 0;\n\t\t\t} else if (o.textAlign === \"center\") {\n\t\t\t\tw += bounds.x;\n\t\t\t\tbounds.x /= 2;\n\t\t\t} else { return str; }\n\t\t}\n\t\tstr = `SizedBox(width: ${$.fix(w, 0)}, child: ${str},)`;\n\t\treturn str;\n\t}\n}\nexports.Text = Text;\n\n\nfunction getTextStyleParamList(o, isDefault, ctx, xdNode=null, fill=null) {\n\tlet isStyleRange = o.length != null;\n\n\t// kind of an unusual place for this, but we want to run it on every style object:\n\t_checkForUnsupportedFeatures(o, xdNode, ctx);\n\tctx.addFont(_getFontFamily(o), xdNode);\n\n\t// Builds an array of style parameters.\n\treturn [\n\t\t_getFontFamilyParam(o),\n\t\t_getFontSizeParam(o),\n\t\t_getColorParam(o, fill),\n\t\t_getLetterSpacingParam(o),\n\t\t// The default style doesn't include weight, decoration, or style (italic):\n\t\t(isDefault ? null : _getFontStyleParam(o)),\n\t\t(isDefault ? null : _getFontWeightParam(o)),\n\t\t(isDefault ? null : _getTextDecorationParam(o)),\n\t\t// Line height & shadows are set at the node level in XD, so not included for ranges:\n\t\t(!isStyleRange || isDefault ? _getHeightParam(xdNode || o) : null),\n\t\t(!isStyleRange || isDefault ? _getShadowsParam(xdNode || o) : null),\n\t];\n}\nexports.getTextStyleParamList = getTextStyleParamList;\n\nfunction getStyleParam(styleParams) {\n\tif (!styleParams) { return \"\"; }\n\tlet str = getTextStyle(styleParams);\n\treturn !str ? \"\" : `style: ${str}, `;\n}\nexports.getStyleParam = getStyleParam;\n\nfunction getTextStyle(styleParams) {\n\tlet str = $.getParamList(styleParams);\n\treturn !str ? \"\" : `TextStyle(${str})`;\n}\nexports.getTextStyle = getTextStyle;\n\nfunction _checkForUnsupportedFeatures(o, xdNode, ctx) {\n\tif (o.textScript !== \"none\") {\n\t\t// super / subscript\n\t\tctx.log.warn(\"Superscript & subscript are not currently supported.\", xdNode);\n\t}\n\tif (o.textTransform !== \"none\") {\n\t\t// uppercase / lowercase / titlecase\n\t\tctx.log.warn(\"Text transformations (all caps, title case, lowercase) are not currently supported.\", xdNode);\n\t}\n\tif (o.paragraphSpacing) {\n\t\tctx.log.warn(\"Paragraph spacing is not currently supported.\", xdNode);\n\t}\n\tif (o.strokeEnabled && o.stroke) {\n\t\t// outline text\n\t\tctx.log.warn(\"Text border is not currently supported.\", xdNode);\n\t}\n}\n\nfunction _getFontFamilyParam(o) {\n\treturn `fontFamily: '${_getFontFamily(o)}', `;\n}\n\nfunction _getFontFamily(o) {\n\treturn NodeUtils.getFlutterFont(o.fontFamily) || o.fontFamily;\n}\n\nfunction _getFontSizeParam(o) {\n\treturn `fontSize: ${o.fontSize}, `;\n}\n\nfunction _getColorParam(o, fill) {\n\treturn `color: ${fill || getColor(o.fill, NodeUtils.getOpacity(o))}, `;\n}\n\nfunction _getLetterSpacingParam(o) {\n\t// Flutter uses pixel values for letterSpacing.\n\t// XD uses increments of 1/1000 of the font size.\n\treturn (o.charSpacing === 0 ? \"\" : `letterSpacing: ${o.charSpacing / 1000 * o.fontSize}, `);\n}\n\nfunction _getFontStyleParam(o) {\n\tlet style = _getFontStyle(o.fontStyle);\n\treturn style ? `fontStyle: ${style}, ` : \"\";\n}\n\nfunction _getFontStyle(style) {\n\tstyle = style.toLowerCase();\n\tlet match = style.match(FONT_STYLES_RE);\n\tlet val = match && FONT_STYLES[match];\n\treturn val ? \"FontStyle.\" + val : null;\n}\n\nfunction _getFontWeightParam(o) {\n\tlet weight = _getFontWeight(o.fontStyle);\n\treturn weight ? `fontWeight: ${weight}, ` : \"\";\n}\n\nfunction _getFontWeight(style) {\n\tstyle = style.toLowerCase();\n\tlet match = style.match(FONT_WEIGHTS_RE);\n\tlet val = match && FONT_WEIGHTS[match];\n\treturn val ? \"FontWeight.\" + val : null;\n}\n\nfunction _getTextDecorationParam(o) {\n\tlet u = o.underline, s = o.strikethrough, str = \"\";\n\tif (!u && !s) { return str; }\n\tif (u && s) {\n\t\tstr = \"TextDecoration.combine([TextDecoration.underline, TextDecoration.lineThrough])\";\n\t} else {\n\t\tstr = `TextDecoration.${u ? \"underline\" : \"lineThrough\"}`;\n\t}\n\treturn `decoration: ${str}, `;\n}\n\nfunction _getHeightParam(o) {\n\t// XD reports a lineSpacing of 0 to indicate default spacing.\n\t// Flutter uses a multiplier against the font size for its \"height\" value.\n\t// XD uses a pixel value.\n\treturn (o.lineSpacing === 0 ? \"\" : `height: ${o.lineSpacing / o.fontSize}, `);\n}\n\nfunction _getShadowsParam(xdNode) {\n\treturn (xdNode.shadow == null || !xdNode.shadow.visible ? \"\" :\n\t\t`shadows: [${_getShadow(xdNode.shadow)}], `);\n}\n\nfunction _getShadow(shadow) {\n\tlet o = shadow;\n\treturn `Shadow(color: ${getColor(o.color)}, ` +\n\t\t(o.x || o.y ? `offset: Offset(${o.x}, ${o.y}), ` : \"\") +\n\t\t(o.blur ? `blurRadius: ${o.blur}, ` : \"\") +\n\t\")\";\n}\n\n\nfunction _buildStyleRegExp(map) {\n\tlet list = [];\n\tfor (let n in map) { list.push(n); }\n\treturn new RegExp(list.join(\"|\"), \"ig\");\n}\n\n// Used to translate font weight names from XD to Flutter constants:\n// https://www.webtype.com/info/articles/fonts-weights/\nconst FONT_WEIGHTS = {\n\t\"thin\": \"w100\",\n\t\"hairline\": \"w100\",\n\t\"extralight\": \"w200\",\n\t\"ultralight\": \"w200\",\n\t\"light\": \"w300\",\n\t\"book\": \"w300\",\n\t\"demi\": \"w300\",\n\n\t\"normal\": null, // w400\n\t\"regular\": null,\n\t\"plain\": null,\n\n\t\"medium\": \"w500\",\n\t\"semibold\": \"w600\",\n\t\"demibold\": \"w600\",\n\t\"bold\": \"w700\", // or \"bold\"\n\t\"extrabold\": \"w800\",\n\t\"heavy\": \"w800\",\n\t\"black\": \"w900\",\n\t\"poster\": \"w900\",\n}\nconst FONT_WEIGHTS_RE = _buildStyleRegExp(FONT_WEIGHTS);\n\nconst FONT_STYLES = {\n\t\"italic\": \"italic\",\n\t\"oblique\": \"italic\",\n}\nconst FONT_STYLES_RE = _buildStyleRegExp(FONT_STYLES);\n","/*\nCopyright 2020 Adobe\nAll Rights Reserved.\n\nNOTICE: Adobe permits you to use, modify, and distribute this file in\naccordance with the terms of the Adobe license agreement accompanying\nit. If you have received this file from a source other than Adobe,\nthen your use, modification, or distribution of it requires the prior\nwritten permission of Adobe. \n*/\n\nconst xd = require(\"scenegraph\");\n\nfunction getType(xdNode) {\n if (xdNode instanceof xd.Text) { return exports.TEXT; }\n if (xdNode instanceof xd.Group || xdNode instanceof xd.ScrollableGroup) { return exports.GROUP; }\n if (xdNode instanceof xd.RepeatGrid) { return exports.GRID; }\n\tif (xdNode instanceof xd.SymbolInstance || xdNode instanceof xd.Artboard) {\n return exports.WIDGET;\n }\n if (xdNode instanceof xd.Path || xdNode instanceof xd.Polygon ||\n xdNode instanceof xd.Rectangle || xdNode instanceof xd.Ellipse ||\n xdNode instanceof xd.BooleanGroup || xdNode instanceof xd.Line) {\n return exports.SHAPE;\n }\n return exports.ROOT;\n}\nexports.getType = getType;\n\nfunction getXDLabel(xdNode) {\n\tif (xdNode == null) { return \"none\"; }\n\t// not necessarily the ideal location for this method, but it's good to maintain proximity to the other similar methods.\n\tif (xdNode instanceof xd.Text) { return \"text\"; }\n if (xdNode instanceof xd.Group || xdNode instanceof xd.ScrollableGroup) { return \"group\"; }\n\tif (xdNode instanceof xd.RepeatGrid) { return \"grid\"; }\n if (xdNode instanceof xd.SymbolInstance) { return \"component\"; }\n if (xdNode instanceof xd.Artboard) { return \"artboard\"; }\n if (xdNode instanceof xd.Path || xdNode instanceof xd.Polygon ||\n xdNode instanceof xd.Rectangle || xdNode instanceof xd.Ellipse ||\n xdNode instanceof xd.BooleanGroup || xdNode instanceof xd.Line) {\n return \"shape\";\n }\n return \"unknown element\";\n}\nexports.getXDLabel = getXDLabel;\n\nfunction getLabel(xdNode) {\n\t// this works fine for now.\n\treturn getType(xdNode);\n}\nexports.getLabel = getLabel;\n\nexports.TEXT = \"text\";\nexports.GROUP = \"group\";\nexports.WIDGET = \"widget\";\nexports.SHAPE = \"shape\";\nexports.ROOT = \"root\";\nexports.GRID = \"grid\";\n","/*\nCopyright 2020 Adobe\nAll Rights Reserved.\n\nNOTICE: Adobe permits you to use, modify, and distribute this file in\naccordance with the terms of the Adobe license agreement accompanying\nit. If you have received this file from a source other than Adobe,\nthen your use, modification, or distribution of it requires the prior\nwritten permission of Adobe. \n*/\n\nclass Parameter {\n\tconstructor(name, type=null, value=null) {\n\t\tthis.name = name;\n\t\tthis.type = type; // the Dart type\n\t\tthis.value = value; // always the string value or null\n\t}\n}\nexports.Parameter = Parameter;\n","/*\nCopyright 2020 Adobe\nAll Rights Reserved.\n\nNOTICE: Adobe permits you to use, modify, and distribute this file in\naccordance with the terms of the Adobe license agreement accompanying\nit. If you have received this file from a source other than Adobe,\nthen your use, modification, or distribution of it requires the prior\nwritten permission of Adobe. \n*/\n\nconst xd = require(\"scenegraph\");\n\nconst NodeUtils = require(\"../utils/nodeutils\");\nconst { cleanFileName } = require(\"../utils/nameutils\");\nconst PropType = require(\"./proptype\");\nconst { getXDLabel } = require(\"./nodetype\");\nconst { trace } = require('../utils/debug');\n\nconst { Artboard } = require(\"./nodes/artboard\");\nconst { Group } = require(\"./nodes/group\");\nconst { Container } = require(\"./nodes/container\");\nconst { Text } = require(\"./nodes/text\");\nconst { Component } = require(\"./nodes/component\");\nconst { Path } = require(\"./nodes/path\");\nconst { Grid } = require(\"./nodes/grid\");\n\nconst { Shape } = require(\"./nodes/shape\");\nconst { Blur } = require(\"./decorators/blur\");\nconst { Blend } = require(\"./decorators/blend\");\nconst { OnTap } = require(\"./decorators/ontap\");\nconst { PrototypeInteraction } = require(\"./decorators/prototypeinteraction\");\nconst { Comment } = require(\"./decorators/comment\");\nconst { LayoutType } = require(\"./decorators/layout\");\n\nconst ParseMode = Object.freeze({\n\tNORMAL : 0,\n\tSYMBOLS_AS_GROUPS : 1,\n});\n\n\nfunction parse(root, targetXdNode, ctx) {\n\t// set initial properties:\n\tComment.enabled = !!NodeUtils.getProp(xd.root, PropType.INCLUDE_NAME_COMMENTS);\n\n\t// Grab components and artboard from the root nodes\n\tgatherWidgets(root, ctx);\n\n\t// Parse components and artboard\n\tconst widgets = Object.assign({}, ctx.artboards, ctx.masterComponents);\n\tfor (let widget of Object.values(widgets)) {\n\t\tif (!targetXdNode || widget.xdNode === targetXdNode) {\n\t\t\t// This widget is being exported by the user\n\t\t\tctx.useUserLog();\n\t\t} else {\n\t\t\t// This widget must be parsed because it's state is needed but the user hasn't explicitly\n\t\t\t// requested to export this widget so filter the log messages\n\t\t\tctx.useDebugLog();\n\t\t}\n\t\tlet o = parseScenegraphNode(widget.xdNode, ctx, ParseMode.NORMAL, true);\n\t\tcombineShapes(o, ctx);\n\t}\n\tctx.useUserLog();\n\n\tif (!targetXdNode) { return null; }\n\n\tlet node = parseScenegraphNode(targetXdNode, ctx, ParseMode.NORMAL, true);\n\tif (node instanceof Path) { node = Shape.fromPath(node, ctx); }\n\telse { combineShapes(node, ctx); }\n\n\treturn node;\n}\nexports.parse = parse;\n\nfunction gatherWidgets(xdNode, ctx) {\n\tif (xdNode instanceof xd.SymbolInstance) {\n\t\tctx.addComponentInstance(new Component(xdNode, ctx));\n\t} else if (xdNode instanceof xd.Artboard) {\n\t\tctx.addArtboard(new Artboard(xdNode, ctx));\n\t}\n\tif (xdNode.children) { xdNode.children.forEach((o) => gatherWidgets(o, ctx)); }\n}\n\nlet NODE_FACTORIES = [\n\tGrid, Path, Container, Group, Text, // instantiated via .create\n\t// Artboard, Component, Shape are special cases.\n]\nlet DECORATOR_FACTORIES = [ // order determines nesting order, first will be innermost\n\tPrototypeInteraction, OnTap, Blur, Blend, Comment, // instantiated via .create\n\t// Layout is a special case.\n]\n\nfunction parseScenegraphNode(xdNode, ctx, mode, ignoreVisible=false) {\n\tif (!ignoreVisible && !xdNode.visible) { return null; }\n\n\tlet node = null, isWidget = false;\n\tlet isArtboard = xdNode instanceof xd.Artboard, isComponent = xdNode instanceof xd.SymbolInstance;\n\t\n\tif (xdNode instanceof xd.RootNode) {\n\t\tthrow(\"parseScenegraphNode() run on RootNode\");\n\t} else if (isComponent && mode === ParseMode.SYMBOLS_AS_GROUPS) {\n\t\tnode = new Group(xdNode, ctx);\n\t} else if (isArtboard || isComponent) {\n\t\tnode = isArtboard ? ctx.getArtboardFromXdNode(xdNode) : ctx.getComponentFromXdNode(xdNode);\n\t\tif (node) {\n\t\t\tif (node.parsed) { return node; }\n\t\t\tif (node.layout.type === LayoutType.PINNED) {\n\t\t\t\t// since components can be parsed out of order\n\t\t\t\tctx.usesPinned();\n\t\t\t}\n\t\t\tnode.parsed = isWidget = true;\n\t\t}\n\t} else {\n\t\tfor (let i=0; i<NODE_FACTORIES.length && !node; i++) {\n\t\t\tnode = NODE_FACTORIES[i].create(xdNode, ctx);\n\t\t}\n\t}\n\tif (!node) {\n\t\tctx.log.error(`Unable to create export node from ${getXDLabel(xdNode)} named '${xdNode.constructor.name}'.`, xdNode);\n\t\treturn null;\n\t}\n\n\t// post processing:\n\tif (isWidget) {\n\t\tctx.pushWidget(node);\n\t\tparseChildren(node, ctx, mode);\n\t\tctx.popWidget();\n\t} else if (node instanceof Group) {\n\t\tparseChildren(node, ctx, mode);\n\t} else if (node instanceof Grid) {\n\t\tif (ctx.inGrid) {\n\t\t\tctx.log.warn(\"Nested repeat grids are currently unsupported, and may result in unexpected behaviour.\", xdNode);\n\t\t}\n\t\tlet kids = node.xdNode.children, child = kids && kids.at(0);\n\t\tctx.pushGrid();\n\t\tnode.item = child && parseScenegraphNode(child, ctx, ParseMode.SYMBOLS_AS_GROUPS);\n\t\tctx.popGrid();\n\t\tcombineShapes(node.item, ctx);\n\t}\n\n\taddWidgetImports(node, ctx);\n\n\t// add decorators:\n\tfor (let i=0; i<DECORATOR_FACTORIES.length; i++) {\n\t\tlet decorator = DECORATOR_FACTORIES[i].create(node, ctx);\n\t\tif (decorator) { node.addDecorator(decorator); }\n\t}\n\treturn node;\n}\n\nfunction parseChildren(node, ctx, mode) {\n\tlet xdNodes = node.xdNode.children;\n\tfor (let i = 0; i < xdNodes.length; ++i) {\n\t\tnode.children.push(parseScenegraphNode(xdNodes.at(i), ctx, mode, false));\n\t}\n}\n\nfunction addWidgetImports(node, ctx) {\n\tlet xdNode = node.xdNode, fixCase = !!NodeUtils.getProp(xd.root, PropType.NORMALIZE_NAME_CASE);\n\n\t// Gather imports for components\n\tif (xdNode instanceof xd.SymbolInstance) {\n\t\tlet master = ctx.masterComponents[xdNode.symbolId];\n\t\tif (master) { ctx.addImport(`./${cleanFileName(master.widgetName, fixCase)}.dart`, true); }\n\t\telse { trace(`Didn't add import for component '${xdNode.name}' because the master was not found`); }\n\t}\n\n\t// Gather imports for interactions on nodes that reference other artboards\n\tlet l = NodeUtils.getInteractionCount(xdNode);\n\tfor (let i = 0; i < l; ++i) {\n\t\tlet action = xdNode.triggeredInteractions[i].action;\n\t\tif (action.type !== \"goToArtboard\") { continue; }\n\t\tlet artboard = ctx.getArtboardFromXdNode(action.destination);\n\t\tif (artboard) { ctx.addImport(`./${cleanFileName(artboard.widgetName, fixCase)}.dart`, true); }\n\t\telse { trace(`Didn't add import for destination artboard '${action.destination.name}' because it was not found. This is likely due to a duplicate name.`); }\n\t}\n}\n\nfunction combineShapes(node, ctx, aggressive=false) {\n\t// TODO: currently only subgroups set to \"Combine Shapes\" will be collapsed back into a\n\t// parent that is also set to \"Combine Shapes\". It would be nice if a CS parent could\n\t// combine in any subgroups if they are ONLY comprised of shapes.\n\n\t// Combines shapes into a single SVG output. In normal mode, it will only combine adjacent Path nodes.\n\t// In aggressive mode, it will combine Path & Container, and collapse groups that only contain those elements.\n\tif (!node || !node.children || node.children.length < 1 || node.hasCombinedShapes) { return; }\n\tnode.hasCombinedShapes = true;\n\tlet isFile = (node instanceof Artboard) || (node instanceof Component);\n\tif (isFile) { ctx.pushWidget(node); }\n\n\tlet inGroup = (node instanceof Artboard) || (node instanceof Component) || (node instanceof Group);\n\tlet shapeIndex, shape = null, kids = node.children;\n\tlet maxCount = kids.length * 2; // TODO: GS: This is a temporary fail-safe, since infinite loops can take down XD.\n\t\n\t// This iterates one extra time with a null child to resolve the final shape:\n\tfor (let i = 0; i <= kids.length; i++) {\n\t\tif (--maxCount < 0) { throw(\"infinite loop in combineShapes\"); }\n\n\t\tlet child = kids[i];\n\t\tif (child && child.children) {\n\t\t\tlet aggressiveGroup = aggressive || NodeUtils.getProp(child.xdNode, PropType.COMBINE_SHAPES);\n\t\t\tcombineShapes(child, ctx, aggressiveGroup);\n\t\t\t\n\t\t\tlet onlyChild = child.children.length === 1 && child.children[0];\n\t\t\tif (aggressiveGroup && inGroup && child instanceof Group && onlyChild instanceof Shape && !Shape.hasInteraction(child)) {\n\t\t\t\t// the only child was a Shape, so we can strip the group and leave just the shape.\n\t\t\t\t// this is currently necessary despite the check below, because the id changes when the xdNode changes:\n\t\t\t\tctx.removeShapeData(onlyChild);\n\t\t\t\t// set the shape's xdNode to the group, so it uses its transform:\n\t\t\t\tonlyChild.xdNode = child.xdNode;\n\t\t\t\t// similarly copy the group's decorators onto the child:\n\t\t\t\t// TODO: GS: test this with a blend on the child & on the group.\n\t\t\t\tonlyChild.decorators = child.decorators;\n\t\t\t\tkids.splice(i, 1, onlyChild);\n\t\t\t\tchild = onlyChild;\n\t\t\t\t// does not become the active shape because it has to be nested to retain transform.\n\t\t\t}\n\t\t}\n\t\tif (!shape && Shape.canAdd(child, aggressive)) {\n\t\t\t// start a new shape, the child will be added to it below.\n\t\t\tshape = new Shape(child.xdNode, ctx);\n\t\t\tshapeIndex = i;\n\t\t}\n\t\tif (shape && shape.add(child, aggressive)) {\n\t\t\t// Added.\n\t\t\tif (child instanceof Shape) { ctx.removeShapeData(child) }\n\t\t} else if (shape) {\n\t\t\t// Not able to add the child to the current shape, so end it.\n\t\t\tctx.addShapeData(shape);\n\t\t\tkids.splice(shapeIndex, shape.count, shape);\n\t\t\ti -= shape.count - 1;\n\t\t\tshape = null;\n\t\t\t// If the child can be added, then iterate over it again, so it starts a new shape.\n\t\t\t// This typically happens because it had interactivity.\n\t\t\tif (Shape.canAdd(child, aggressive)) { i--; continue; }\n\t\t}\n\t}\n\tif (isFile) { ctx.popWidget(); }\n}\n","/*\nCopyright 2020 Adobe\nAll Rights Reserved.\n\nNOTICE: Adobe permits you to use, modify, and distribute this file in\naccordance with the terms of the Adobe license agreement accompanying\nit. If you have received this file from a source other than Adobe,\nthen your use, modification, or distribution of it requires the prior\nwritten permission of Adobe. \n*/\n\nconst xd = require(\"scenegraph\");\nconst fs = require(\"uxp\").storage.localFileSystem;\n\nconst $ = require(\"../utils/utils\");\nconst { cleanFileName } = require(\"../utils/nameutils\");\nconst NodeUtils = require(\"../utils/nodeutils\");\nconst PropType = require(\"./proptype\");\nconst { Pubspec } = require('./pubspec');\nconst { Log } = require('./log');\nconst { projectAlert, prompt } = require(\"../ui/alert\");\n\nclass Project {\n\tconstructor() {\n\t\tthis.root = new _Folder(null, PropType.EXPORT_PATH, null);\n\t\tthis.code = new _Folder(this.root, PropType.CODE_PATH, DefaultPath.CODE);\n\t\tthis.images = new _Folder(this.root, PropType.IMAGE_PATH, DefaultPath.IMAGE);\n\t\tthis.imagesX2 = new _Folder(this.images, null, DefaultPath.IMAGE_X2);\n\t\tthis.imagesX3 = new _Folder(this.images, null, DefaultPath.IMAGE_X3);\n\t}\n\n\tasync checkRoot(alert = true) {\n\t\tif (this.hasRoot) { return true; }\n\t\tif (alert) {\n\t\t\tlet result = await projectAlert(this);\n\t\t\tif (!result) { return false; }\n\t\t}\n\t\treturn (await this.promptForRoot());\n\t}\n\n\tasync validate(ctx) {\n\t\t// check for pubspec.yaml\n\t\tlet str = await this.root.readFile(\"pubspec.yaml\");\n\t\tif (!str) { ctx.log.warn(Project.PUBSPEC_WARNING, null); return false; } \n\t\tlet pubspec = new Pubspec(str, ctx.log);\n\t\tpubspec.checkFonts(ctx.fonts);\n\t\tthis._checkDependencies(pubspec);\n\t\t// Flutter asset directories always end in `/`:\n\t\tpubspec.checkAssets([this.images.path + '/']);\n\t\treturn true;\n\t}\n\n\tasync promptForRoot() {\n\t\tlet f = await fs.getFolder();\n\t\tif (!f) { return false; }\n\t\tif (!(await this._verifyRoot(f))) { return false; }\n\t\tthis.root._f = f;\n\t\tthis.root._path = f.nativePath;\n\t\tNodeUtils.setProp(xd.root, this.root._prop, this.root._path);\n\t\treturn true;\n\t}\n\n\tget hasRoot() {\n\t\treturn !!this.root._f;\n\t}\n\n\tasync _verifyRoot(f) {\n\t\t// we can't run this through _Folder, because we're verifying before we assign it to the folder.\n\t\t// this doesn't check images or fonts, since they may not have been set up yet.\n\t\tlet file;\n\t\ttry { file = await f.getEntry('pubspec.yaml'); } catch (e) {}\n\t\tif (!file) { return prompt(Project.PUBSPEC_WARNING); }\n\t\tlet log = new Log(), str = await file.read();\n\t\tif (!str) { log.warn(\"Unable to read pubspec.yaml.\", null); }\n\t\telse { this._checkDependencies(new Pubspec(str, log)); }\n\t\tlet results = log.getResults();\n\t\tstr = results.errors.concat(results.warnings).reduce((s,o) => `${s}<div> • ${o}</div>`, '');\n\t\treturn !str || prompt(`Warnings were generated while validating your Flutter project.${str}`);\n\t}\n\n\t_checkDependencies(pubspec) {\n\t\tlet result = pubspec.checkDependencies([Project.XD_PACKAGE]);\n\t\t// check null safe only if it's enabled & we found adobe_xd:\n\t\tif (result && !!NodeUtils.getProp(xd.root, PropType.NULL_SAFE)) {\n\t\t\tresult = pubspec.checkNullSafe();\n\t\t}\n\t\treturn result;\n\t}\n}\n\nclass _Folder {\n\tconstructor(parent, prop, defaultPath) {\n\t\tthis._parent = parent;\n\t\tthis._prop = prop;\n\t\tthis._defaultPath = defaultPath;\n\t\tthis._path = null;\n\t\tthis._f = null; // UXP filesystem reference\n\t}\n\n\tasync getFile(name, ctx, create=true) {\n\t\tlet file = null, f = await this._getF(ctx);\n\t\tif (!f) { return null; }\n\t\tlet fixCase = !!NodeUtils.getProp(xd.root, PropType.NORMALIZE_NAME_CASE);\n\t\tname = cleanFileName(name, fixCase);\n\t\tif (create) {\n\t\t\ttry { file = f.createFile(name, { overwrite: true }); }\n\t\t\tcatch (e) { ctx.log.error(`Unable to create file ('${this._getFullPath()}${name}'): ${e}`, null); }\n\t\t} else {\n\t\t\ttry { file = await f.getEntry(name); }\n\t\t\tcatch (e) {}\n\t\t\tif (file && !file.isFile) { file = null; }\n\t\t}\n\t\treturn file;\n\t}\n\n\tasync writeFile(name, content, ctx) {\n\t\tlet file = await this.getFile(name, ctx);\n\t\tif (!file) { return false; }\n\t\tctx.log.note(`Write file '${$.getRelPath(file, ctx)}'`);\n\t\ttry { file.write(content); } catch (e) { return false; }\n\t\treturn true;\n\t}\n\n\tasync readFile(name, ctx) {\n\t\tlet file = await this.getFile(name, ctx, false);\n\t\tif (!file) { return null; }\n\t\treturn await file.read();\n\t}\n\n\tget path() {\n\t\treturn this._getRelPath();\n\t}\n\n\tasync _getF(ctx) {\n\t\tif (!this._parent) { return this._f; } // root\n\n\t\tlet fullPath = this._getFullPath();\n\t\tif (this._f && fullPath === this._path) { return this._f; } // cached reference\n\n\t\tlet parentF = await this._parent._getF(ctx);\n\t\tthis._f = await this._getNestedF(parentF, this._getRelPath().split('/'), ctx);\n\t\treturn this._f;\n\t}\n\n\tasync _getNestedF(parentF, names, ctx) {\n\t\tif (!parentF) { return null; }\n\t\tlet f, err, name = names.shift().substr(0, 160);\n\t\t// check if it already exists:\n\t\ttry { f = await parentF.getEntry(name); } catch (e) { }\n\t\tif (!f) {\n\t\t\t// create it:\n\t\t\ttry { f = await parentF.createFolder(name); }\n\t\t\tcatch (e) { err = e; }\n\t\t} else if (!f.isFolder) {\n\t\t\terr = 'A file with that name already exists.'; // tested.\n\t\t\tf = null;\n\t\t}\n\t\tif (err) { ctx.log.error(`Unable to create folder ('${this._getFullPath()}'): ${err}`, null); }\n\t\treturn names.length && f ? this._getNestedF(f, names) : f;\n\t}\n\n\t_hasRootPath() {\n\t\tif (!this._parent) { return !!this._f; }\n\t\treturn this._parent._hasRootPath();\n\t}\n\n\t_getFullPath() {\n\t\tif (!this._parent) { return this._f && this._f.nativePath; } // root\n\t\treturn this._parent._getFullPath() + this._getRelPath() + '/';\n\t}\n\n\t_getRelPath() {\n\t\tlet path = (this._prop && NodeUtils.getProp(xd.root, this._prop)) || this._defaultPath;\n\t\treturn $.cleanPath(path);\n\t}\n}\n\nProject.PUBSPEC_WARNING = 'A \"pubspec.yaml\" file was not found in the specified Flutter project folder.';\nProject.XD_PACKAGE = 'adobe_xd';\n\nlet DefaultPath = Object.freeze({\n\tROOT: \"Select a project path.\", // only used for placeholder UI\n\tCODE: \"lib\",\n\tIMAGE: \"assets/images\",\n\tIMAGE_X2: \"2.0x\",\n\tIMAGE_X3: \"3.0x\",\n});\n\nlet project = new Project();\n\nmodule.exports = {\n\tDefaultPath,\n\tproject,\n};","/*\nCopyright 2020 Adobe\nAll Rights Reserved.\n\nNOTICE: Adobe permits you to use, modify, and distribute this file in\naccordance with the terms of the Adobe license agreement accompanying\nit. If you have received this file from a source other than Adobe,\nthen your use, modification, or distribution of it requires the prior\nwritten permission of Adobe. \n*/\n\nmodule.exports = Object.freeze({\n\t// Project\n\tEXPORT_PATH: \"exportPath\",\n\tCODE_PATH: \"codePath\",\n\tIMAGE_PATH: \"imagePath\",\n\tWIDGET_PREFIX: \"widgetPrefix\",\n\tENABLE_PROTOTYPE: \"enablePrototype\",\n\tRESOLUTION_AWARE: \"resolutionAware\",\n\tNULL_SAFE: \"nullSafe\",\n\tINCLUDE_NAME_COMMENTS: \"includeNameComments\",\n\tNORMALIZE_NAME_CASE: \"normalizeNameCase\",\n\tEXPORT_COLORS: \"exportColors\",\n\tCOLORS_CLASS_NAME: \"colorsClassName\",\n\tEXPORT_CHAR_STYLES: \"exportCharStyles\",\n\tCHAR_STYLES_CLASS_NAME: \"charStylesClassName\",\n\n\t// Component / Artboard\n\tINCLUDE_IN_EXPORT_PROJECT: \"addToExportAll\",\n\tWIDGET_NAME: \"widgetName\",\n\tTAP_CALLBACK_NAME: \"tapCallbackName\",\n\n\t// Text\n\tFLUTTER_FONT: \"flutterFont\",\n\tTEXT_PARAM_NAME: \"textParamName\",\n\tCOLOR_PARAM_NAME: \"colorParamName\",\n\n\t// Shapes\n\tIMAGE_FILL_NAME: \"imageFillName\",\n\tIMAGE_PARAM_NAME: \"imageParamName\",\n\tINCLUDE_IN_EXPORT_ALL_IMAGES: \"includeInExportAllImages\",\n\n\t// Groups\n\tCOMBINE_SHAPES: \"combineShapes\",\n\tEXPORT_MODE: \"exportMode\",\n\tBUILD_METHOD_NAME: \"buildMethodName\",\n\tCUSTOM_CODE: \"customCode\",\n\n\t// Grid\n\tDATA_PARAM_NAME: \"dataParamName\",\n\n\t// Shared\n\tFLATTEN_TO_IMAGE: \"flattenToImage\",\n});\n\n","/*\nCopyright 2020 Adobe\nAll Rights Reserved.\n\nNOTICE: Adobe permits you to use, modify, and distribute this file in\naccordance with the terms of the Adobe license agreement accompanying\nit. If you have received this file from a source other than Adobe,\nthen your use, modification, or distribution of it requires the prior\nwritten permission of Adobe. \n*/\n\n\n// NOTE: if we ever need to write YAML, we should evaluate https://www.npmjs.com/package/yaml\n// because it may allow us to preserve comments.\nconst yaml = require(\"../lib/js-yaml\");\nconst { SemVer } = require(\"./semver\");\n\nclass Pubspec {\n\tconstructor(str, log) {\n\t\tthis.log = log;\n\t\tlet err;\n\t\ttry { this.yaml = yaml.load(str); } catch(e) { err = e; }\n\t\tif (!this.yaml) { this._warn(`Unable to parse pubspec.yaml${err ? ': '+ err.reason : ''}`); }\n\t}\n\n\tcheckFonts(fonts) {\n\t\tif (!this.yaml) { return false; } // already threw a parsing error\n\t\tlet list = this.yaml.flutter && this.yaml.flutter.fonts;\n\t\tlet f = (val, o) => o.family === val;\n\t\treturn this._checkListEntries(fonts, list, 'flutter/fonts', f);\n\t}\n\n\tcheckDependencies(names) {\n\t\tif (!this.yaml) { return false; }\n\t\treturn this._checkMapEntries(names, this.yaml.dependencies, 'dependencies');\n\t}\n\n\tcheckAssets(paths) {\n\t\tif (!this.yaml) { return false; }\n\t\tlet list = this.yaml.flutter && this.yaml.flutter.assets;\n\t\treturn this._checkListEntries(paths, list, 'flutter/assets');\n\t}\n\n\tcheckNullSafe() {\n\t\tlet yaml = this.yaml, errs=[];\n\t\tif (!yaml) { return null; } // already threw a parsing error\n\n\t\tlet sdk = yaml.environment && yaml.environment.sdk;\n\t\tlet sdkResult = SemVer.parse(sdk).requiresAtLeast(\"2.12.0\");\n\t\tif (sdkResult === false) { errs.push(\"a minimum Dart SDK constraint of 2.12.0 or higher\"); }\n\n\t\tlet adobe_xd = yaml.dependencies && yaml.dependencies.adobe_xd;\n\t\tlet xdResult = (!adobe_xd || !!adobe_xd.path) ? null : SemVer.parse(adobe_xd).requiresAtLeast(\"2.0.0\");\n\t\tif (xdResult === false) { errs.push(\"adobe_xd 2.0.0 or higher\"); }\n\t\t\n\t\tif (errs.length) { this._warn(`Null safety requires ${errs.join(\" and \")}. Update your pubspec.yaml or disable 'Export Null Safe Code'.`); }\n\t\treturn xdResult === false || sdkResult === false ? false :\n\t\t\txdResult === true && sdkResult === true ? true : null;\n\t}\n\n\t_warn(str) {\n\t\tthis.log && this.log.warn(str);\n\t\treturn false;\n\t}\n\n\t_logMissingEntry(noun) {\n\t\treturn this._warn(`Could not find ${noun} entry in pubspec.yaml.`);\n\t}\n\n\t_hasMissingEntries(values, noun) {\n\t\tif (!values || values.length === 0) { return true; }\n\t\treturn this._warn(`Could not find ${noun} entry in pubspec.yaml for: ${values.join(', ')}.`);\n\t}\n\n\t_checkMapEntries(keys, map, noun) {\n\t\t// checks for the existence of entries with the specified key names\n\t\tif (!map) { return this._logMissingEntry(noun); }\n\t\tlet missing = [];\n\t\tfor (let i=0, l=keys.length; i<l; i++) {\n\t\t\tif (!map[keys[i]]) { missing.push(keys[i]); }\n\t\t}\n\t\treturn this._hasMissingEntries(missing, noun);\n\t}\n\n\t_checkListEntries(values, list, noun, comparisonFunction=null) {\n\t\t// checks for the existence of entries in list that match the specified values\n\t\t// if a comparisonFunction is provided, it is used to determine the match\n\t\tif (!list) { return this._logMissingEntry(noun); }\n\t\tlet missing = [], f = comparisonFunction || ((val, o) => val === o);\n\t\tfor (let i=0, l=values.length; i<l; i++) {\n\t\t\tif (!this._checkListEntry(values[i], list, f)) { missing.push(values[i]); }\n\t\t}\n\t\treturn this._hasMissingEntries(missing, noun);\n\t}\n\n\t_checkListEntry(value, list, f) {\n\t\tfor (let i=0, l=list.length; i<l; i++) {\n\t\t\tlet o = list[i];\n\t\t\tif (f(value, o)) { return true; }\n\t\t}\n\t\treturn false;\n\t}\n}\n\nmodule.exports = {\n\tPubspec\n};","/*\nCopyright 2020 Adobe\nAll Rights Reserved.\n\nNOTICE: Adobe permits you to use, modify, and distribute this file in\naccordance with the terms of the Adobe license agreement accompanying\nit. If you have received this file from a source other than Adobe,\nthen your use, modification, or distribution of it requires the prior\nwritten permission of Adobe. \n*/\n\n// Temporary test harness: https://jsfiddle.net/10Lra6jg/8/\n\nclass SemVer {\n\tconstructor(low, high, isValid=true) {\n\t\tthis._low = low;\n\t\tthis._high = high;\n\t\tthis._isValid = (low == null || low.isValid) && (high == null || high.isValid) && isValid !== false;\n\t}\n\n\tget isValid() {\n\t\treturn this._isValid &&\n\t\t\t!(this._high && !this._low) && // invalid if it has a high, but not a low\n\t\t\t(this._high == null || this._low.isLessThan(this._high)); // valid if low < high\n\t}\n\n\tisSatisfiedBy(version) {\n\t\tversion = Version.parse(version);\n\t\tif (!version || !version.isValid || !this.isValid) { return null; }\n\t\tif (this._low && this._low.compare(version) > 0) { return false; } // if lowVersion > version, return false\n\t\tif (this._high && this._high.compare(version) <= 0) { return false; } // if highVersion <= version, return false\n\t\treturn true;\n\t}\n\n\tincludesAtLeast(version) {\n\t\tversion = Version.parse(version);\n\t\tif (!version || !version.isValid || !this.isValid) { return null; }\n\t\treturn this._high == null || this._high.compare(version) > 0; // no upper constraint or it's >= version\n\t}\n\n\trequiresAtLeast(version) {\n\t\tversion = Version.parse(version);\n\t\tif (!version || !version.isValid || !this.isValid) { return null; }\n\t\treturn this._low.compare(version) >= 0; // low is >= version\n\t}\n}\n\nSemVer.getInvalid = function() {\n\tlet o = new SemVer(null, null, false);\n\to.isInvalid = true;\n\treturn o;\n}\n\nSemVer.parse = function(str) {\n\tif (str === null || str === \"\" || /any/i.test(str)) {\n\t\treturn new SemVer(null, null);\n\t}\n\tlet v, o = /^[\\s'\"]*([^'\"]+)[\\s'\"]*$/.exec(str);\n\tstr = o && o[1];\n\tif (!str) { return false; }\n\tif (str.charAt(0) === \"^\") {\n\t\t// Caret syntax: ^1.2.3\n\t\tv = Version.parse(str.slice(1));\n\t\treturn new SemVer(v, v.major === 0 ? new Version(0, v.minor+1, 0) : new Version(v.major+1, 0, 0));\n\t}\n\tif (/[0-9]/.test(str.charAt(0))) {\n\t\t// Concrete version: 1.2.3\n\t\tif (/\\s/.test(str)) { return SemVer.getInvalid(); } // more than one constraint\n\t\tv = Version.parse(str);\n\t\treturn new SemVer(v, new Version(v.major, v.minor, v.patch+1));\n\t}\n\t// comparative: >=1.2.3 <2.0.0\n\tlet low = null, high = null;\n\twhile (true) {\n\t\tlet re = /^\\s*((?:<|>)?=?)\\s*([0-9.]+)/, o = re.exec(str);\n\t\tif (!o) { break; }\n\t\tstr = str.slice(o[0].length);\n\t\tlet constraint = o[1], v = Version.parse(o[2]);\n\t\tif (!v.isValid || !constraint || !o[2]) { return SemVer.getInvalid(); }\n\t\tif (constraint.charAt(0) === \">\") {\n\t\t\tif (low) { return SemVer.getInvalid(); } // already have a lower constraint\n\t\t\tif (constraint.charAt(1) !== \"=\") { v.patch++; }\n\t\t\tlow = v;\n\t\t} else {\n\t\t\tif (high) { return SemVer.getInvalid(); } // already have a higher constraint\n\t\t\tif (constraint.charAt(1) === \"=\") { v.patch++; }\n\t\t\thigh = v;\n\t\t}\n\t}\n\tif (!low & !high) { return SemVer.getInvalid(); } // unable to parse any constraints\n\treturn new SemVer(low, high);\n}\n\nclass Version {\n\tconstructor(major, minor, patch, build, label) {\n\t\tthis.major = major;\n\t\tthis.minor = minor;\n\t\tthis.patch = patch;\n\t\tthis.build = build || null;\n\t\tthis.label = label || null;\n\t}\n\n\tget isValid() {\n\t\treturn this._isValid(this.major) && this._isValid(this.minor) && this._isValid(this.patch);\n\t}\n\n\t_isValid(val) {\n\t\treturn !(isNaN(val) || val == null || val !== (val|0));\n\t}\n\n\tisEqual(v) { return this.compare(v) === 0; }\n\tisGreaterThan(v) { return this.compare(v) > 0; }\n\tisLessThan(v) { return this.compare(v) < 0; }\n\n\tcompare(v) {\n\t\t// returns +1 if greater, 0 if equal, -1 if less\n\t\tlet o = this;\n\t\tif (o.major > v.major) { return 1; } else if (o.major < v.major) { return -1; }\n\t\tif (o.minor > v.minor) { return 1; } else if (o.minor < v.minor) { return -1; }\n\t\tif (o.patch > v.patch) { return 1; } else if (o.patch < v.patch) { return -1; }\n\t\treturn 0; // equal\n\t}\n\n\tget versionString() {\n\t\treturn `${this.major}.${this.minor}.${this.patch}`;\n\t}\n\n\tget fullVersionString() {\n\t\treturn this.versionString + (this.build ? '+' + this.build : '') + (this.label ? '-' + this.label : '');\n\t}\n\n\ttoString() {\n\t\treturn `Version[${this.fullVersionString}]`;\n\t}\n}\n\nVersion.parse = function(str) {\n\tif (str instanceof Version) { return str; }\n\tlet o = /\\s*v?([^-+\\s]+)\\s*(?:\\+([^-]+))?\\s*-?\\s*(.*)/.exec(str);\n\tif (!o || o[1] == null) { return new Version(); }\n\tlet version = o[1], build = o[2], label = o[3];\n\tlet parts = version && version.split(\".\").map((s) => parseInt(s));\n\treturn new Version(parts[0], parts[1], parts[2], build, label);\n}\n\n\nmodule.exports = {\n\tVersion, SemVer\n};\n","/*\nCopyright 2020 Adobe\nAll Rights Reserved.\n\nNOTICE: Adobe permits you to use, modify, and distribute this file in\naccordance with the terms of the Adobe license agreement accompanying\nit. If you have received this file from a source other than Adobe,\nthen your use, modification, or distribution of it requires the prior\nwritten permission of Adobe. \n*/\n\nconst { h, render, Component, Fragment } = require(\"preact\");\nconst clipboard = require(\"clipboard\");\n\nconst iconError = require('./assets/icon-error.png');\nconst iconWarning = require('./assets/icon-warning.png');\nconst iconPlugin = require('./assets/[email protected]');\n\n// docs for dialog UI: https://adobexdplatform.com/plugin-docs/reference/ui/dialogs/\n\nlet dialog, callback;\n\nfunction closeDialog(value, e) {\n\te && e.preventDefault();\n\tcallback && callback(value, dialog);\n dialog && dialog.close(value);\n\tdialog = callback = null;\n}\n\nasync function openDialog(contents, cb=null) {\n\t// returns true if the user clicked the cta\n\tdialog = document.createElement('dialog');\n\tcallback = cb;\n\trender(contents, dialog);\n\tlet value = await document.body.appendChild(dialog).showModal();\n\tif (value === \"reasonCanceled\") { value = null; } // esc key pressed\n\treturn value;\n}\n\nfunction Chrome(title, content, cancel, cta='OK') {\n\t// currently returns true if the cta is clicked, false if cancel is clicked\n\t// callback is called with the return value before the dialog is closed, to maintain edit privileges\n\treturn <form method=\"dialog\" onSubmit={(e) => closeDialog(true, e)}>\n\t\t{title && <Fragment>\n\t\t\t<h1>\n\t\t\t\t<img class=\"icon\" src={iconPlugin.default} />\n\t\t\t\t<span>{title}</span>\n\t\t\t</h1>\n\t\t\t<hr/>\n\t\t</Fragment>}\n\t\t{content}\n\t\t<footer>\n\t\t\t{cancel && <button onClick={(e) => closeDialog(false, e)} type=\"reset\" uxp-variant=\"primary\">{cancel}</button>}\n\t\t\t<button type=\"submit\" uxp-variant=\"cta\" uxp-selected=\"true\" autofocus=\"autofocus\">{cta}</button>\n\t\t</footer>\n\t</form>;\n}\n\nasync function alert(msg, title=null, closeLabel='OK') {\n await openDialog(Chrome(title, <p dangerouslySetInnerHTML={{__html: msg}}/>, null, closeLabel));\n}\n\nasync function prompt(msg, title=null, cancelLabel='Cancel', ctaLabel='Continue') {\n\t// note: html injection is to let us show lists.\n return await openDialog(Chrome(title, <p dangerouslySetInnerHTML={{__html: msg}}/>, cancelLabel, ctaLabel));\n}\n\nasync function projectAlert(project) {\n\treturn await openDialog(Chrome(\n\t\t'Set a Flutter Project Folder',\n\t\t<Fragment>\n\t\t\t<p class='text'>Before exporting, you must select the Flutter project folder to export into.</p>\n <p class='text-information'>Due to current restrictions in Adobe XD, you will have to do this each time you open this file.</p>\n\t\t</Fragment>,\n\t\t'Cancel', 'Continue'\n\t));\n}\n\nasync function resultsAlert(results) {\n\t//results.errors = [\"This is an error!\"]; // for testing since we throw so few errors.\n\treturn await openDialog(Chrome(\n\t\tnull, // each category creates it's own header.\n\t\t<Fragment>\n\t\t\t{getResultsCategory(results.errors, \"Error\", iconError)}\n\t\t\t{getResultsCategory(results.warnings, \"Warning\", iconWarning)}\n\t\t</Fragment>,\n\t\t'Copy To Clipboard', 'Close'\n\t\t),\n\t\t(v,_) => (v === false) && copyResults(results)\n\t);\n}\n\nasync function codeEditorAlert(code, handler) {\n\treturn await openDialog(Chrome(\n\t\t\"Custom Code\",\n\t\t<Fragment>\n\t\t\t<p class=\"text\">\n\t\t\t\tPaste code here without a trailing semicolon or comma.\n\t\t\t\tRead the Custom Code section of the <a href=\"https://github.com/AdobeXD/xd-to-flutter-plugin/blob/master/README.md\">README</a> for more info.\n\t\t\t</p>\n\t\t\t<p class=\"text-information\">Unfortunately, XD plugin limitations prevent showing a proper code editor here.</p>\n\t\t\t<textarea class=\"code-editor\" id=\"editor\" value={code || ''} onKeyDown={(o) => o.preventDefault()}/>\n\t\t</Fragment>,\n\t\t'Cancel', 'Save'\n\t\t),\n\t\t(v,d) => v && handler(d.querySelector('#editor').value),\n\t);\n}\n\nfunction copyResults(results) {\n\tlet str = getCategoryString(results.errors, \"Error\") + '\\n\\n'\n\t\t+ getCategoryString(results.warnings, \"Warning\");\n\tclipboard.copyText(str.trim());\n}\n\nfunction getResultsCategory(list, title, icon) {\n\tlet l = list.length;\n\treturn (!l ? null :\n\t\t<Fragment>\n\t\t\t<h1>\n\t\t\t\t<img src={icon.default} alt=\"icon\" class=\"result-icon\" />\n\t\t\t\t{getCategoryTitle(list, title)}\n\t\t\t</h1>\n\t\t\t<div class='list'>{list.map(o => (\n\t\t\t\t<div>{o.toString()}</div>\n\t\t\t))}</div>\n\t\t</Fragment>\n\t);\n}\n\nfunction getCategoryString(list, title) {\n\tif (list.length === 0) { return ''; }\n\tlet str = getCategoryTitle(list, title) + ':';\n\treturn list.reduce((s, o) => s + '\\n' + o.toString(), str)\n}\nfunction getCategoryTitle(list, title) {\n\tlet l = list.length;\n\treturn l + ' ' + title + (l > 1 ? 's' : '');\n}\n\nmodule.exports = { alert, prompt, projectAlert, resultsAlert, codeEditorAlert };","export default __webpack_public_path__ + \"images/bg-transparent.png\";","export default __webpack_public_path__ + \"images/icon-edit.png\";","export default __webpack_public_path__ + \"images/icon-error.png\";","export default __webpack_public_path__ + \"images/icon-folder.png\";","export default __webpack_public_path__ + \"images/icon-info.png\";","export default __webpack_public_path__ + \"images/icon-warning.png\";","export default __webpack_public_path__ + \"images/[email protected]\";","export default __webpack_public_path__ + \"images/[email protected]\";","/*\nCopyright 2020 Adobe\nAll Rights Reserved.\n\nNOTICE: Adobe permits you to use, modify, and distribute this file in\naccordance with the terms of the Adobe license agreement accompanying\nit. If you have received this file from a source other than Adobe,\nthen your use, modification, or distribution of it requires the prior\nwritten permission of Adobe. \n*/\n\nconst { editDocument } = require(\"application\");\nconst { h, Fragment } = require(\"preact\");\n\nconst NodeUtils = require(\"../utils/nodeutils\");\nconst $ = require(\"../utils/utils\");\nconst { cleanDartName } = require(\"../utils/nameutils\");\nconst PropType = require(\"../core/proptype\");\n\n\nfunction initInputHandlers(component) {\n // Inject a button handler, that passes the current component to the shared handler to retain scope\n component.handleInput = (e) => handleNodeInputChanged(component, e);\n\n component.handleBlurAsCleanPath = (e) => handleBlur(component, e, $.cleanPath);\n component.handleBlurAsClassName = (e) => handleBlur(component, e, cleanDartName);\n component.handleBlurAsCustomCode = (e) => handleBlur(component, e, $.cleanCustomCode);\n};\n\n//Handles any input changes, and writes them into the node metadata\nfunction handleNodeInputChanged(c, event) {\n\tlet target = event.target, name = target.name || target.id;\n let value = target.type === 'checkbox' ? !c.state[name] : target.value;\n\n editDocument({ editLabel: \"Updated Flutter Data\" }, function (selection) {\n if (name === PropType.FLUTTER_FONT) {\n NodeUtils.setFlutterFont(c.props.node.fontFamily, value);\n } else if (name === PropType.IMAGE_FILL_NAME) {\n NodeUtils.setImageName(c.props.node, value);\n } else {\n // Update component state\n let state = c.state;\n state[name] = value;\n // Inject latest component state, into the node's metadata\n\t\t\tlet node = c.props.node;\n //NodeUtils.setProp(node, name, value);\n NodeUtils.setState(node, state);\n }\n });\n c.setState({ [name]: value });\n}\n\n\nfunction handleBlur(c, event, cleanFxn) {\n let target = event.target, name = target.name || target.id;\n let value = cleanFxn(c.state[name]);\n let node = c.props.node;\n\n editDocument({ editLabel: \"Updated Flutter Data\" }, function (_) {\n let state = c.state;\n state[name] = value;\n //NodeUtils.setProp(node, name, value);\n NodeUtils.setState(node, state);\n });\n\n c.setState({ [name]: value })\n}\n\nfunction TextInputWithLabel(props) {\n return (\n <Fragment>\n {Label(props)}\n {TextInput(props)}\n </Fragment>\n );\n}\n\nfunction TextInput(props) {\n return (<input type=\"text\" class='settings__text-input'\n name={props.name}\n onblur={props.onBlur}\n placeholder={props.placeholder}\n\t\tonInput={props.handleInput}\n\t\treadonly={props.readonly}\n value={props.value || (props.name && props.state[props.name]) || ''}\n />);\n}\n\nfunction TextArea(props) {\n\t// textarea elements don't pass their name through events, so add id too:\n return (<textarea class='settings__textarea'\n\t\tid={props.name}\n name={props.name}\n onblur={props.onBlur}\n placeholder={props.placeholder}\n\t\tonInput={props.handleInput}\n\t\treadonly={props.readonly}\n value={props.value || (props.name && props.state[props.name]) || ''}\n />);\n}\n\nfunction Label(props) {\n return (<label class='label'>{props.label}</label>);\n}\n\nfunction Checkbox(props) {\n return (\n <label class='settings__checkbox-label'>\n <input type=\"checkbox\"\n name={props.name}\n onClick={props.handleInput}\n checked={props.state[props.name] || false}\n />\n <span>{props.label}</span>\n </label>\n );\n}\n\nfunction Select(props) {\n\tlet val = props.state[props.name], opts = props.options;\n\tif (val == null && props.default) {\n\t\tval = props.default === true ? opts[0].id : props.default;\n\t}\n\t// select elements don't pass their name through onChange events, so add id too:\n\treturn <select class=\"settings__select\"\n\t\tname={props.name}\n\t\tid={props.name}\n\t\tonChange={props.handleInput}\n\t\tvalue={val}>\n\t\t\t{opts.map((o) => <option value={o.id} type='option'>{o.label || o.id}</option>)}\n\t</select>;\n}\n\nmodule.exports = {\n initInputHandlers,\n TextInputWithLabel,\n TextInput,\n\tTextArea,\n Label,\n Checkbox,\n\tSelect\n};\n","/*\nCopyright 2020 Adobe\nAll Rights Reserved.\n\nNOTICE: Adobe permits you to use, modify, and distribute this file in\naccordance with the terms of the Adobe license agreement accompanying\nit. If you have received this file from a source other than Adobe,\nthen your use, modification, or distribution of it requires the prior\nwritten permission of Adobe. \n*/\n\nconst { h, render, Component } = require(\"preact\");\nconst { editDocument } = require(\"application\");\nconst os = require('os');\n\nconst Preview = require('./preview');\nconst Results = require('./results');\nconst Settings = require('./settings');\nconst NodeType = require(\"../core/nodetype\");\nconst nodeutils = require(\"../utils/nodeutils\");\nrequire(\"./styles.styl\");\n\nconst xd = require(\"scenegraph\");\nconst image_export = require(\"../core/image_export\");\nconst dart_export = require(\"../core/dart_export\");\n\nconst debug = require('../utils/debug');\nconst trace = debug.trace;\n\nclass FlutterPanel extends Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\t\tthis.state = { context: null }\n\t\tprops.notifier.listen((o) => this.updateResults(o));\n\t}\n\n\texportSelectedItem() {\n\t\teditDocument({ editLabel: \"Export widget\" }, async (selected, root) => {\n\t\t\tthis.updateResults(await dart_export.exportSelected(selected, root));\n\t\t});\n\t}\n\n\tcopySelectedItem() {\n\t\teditDocument({ editLabel: \"Copy selected item to clipboard\" }, async (selected, root) => {\n\t\t\tthis.updateResults(await dart_export.copySelected(selected, root));\n\t\t});\n\t}\n\n\texportAll() {\n\t\teditDocument({ editLabel: \"Export all widgets\" }, async (selected, root) => {\n\t\t\tthis.updateResults(await dart_export.exportAll(selected, root));\n\t\t});\n\t}\n\n\texportImage() {\n\t\teditDocument({ editLabel: \"Export image\" }, async (selected, root) => {\n\t\t\tthis.updateResults(await image_export.exportImage(selected, root));\n\t\t});\n\t}\n\n\texportAllImages() {\n\t\teditDocument({ editLabel: \"Export all images\" }, async (selected, root) => {\n\t\t\tthis.updateResults(await image_export.exportAllImages(selected, root));\n\t\t});\n\t}\n\n\tupdateResults(ctx) {\n\t\tthis.setState({ context: ctx });\n\t\tif (!ctx) { trace(\"NO RESULT RETURNED!\"); return; }\n\t\tif (!ctx.log) { trace(\"UNEXPECTED RESULT OBJECT!\"); return; }\n\t}\n\n\trender(props, state) {\n\t\tlet multi = !!(props.selected && props.selected.length > 1);\n\t\tlet xdNode = !multi && props.selected && props.selected[0];\n\t\tlet type = NodeType.getType(xdNode);\n\t\tlet isRoot = type === NodeType.ROOT;\n\t\tlet isWidget = nodeutils.isWidget(xdNode);\n\t\tlet isCopyable = type !== NodeType.ROOT && type !== NodeType.WIDGET;\n\t\tlet hasImage = xdNode && xdNode.fill && xdNode.fill instanceof xd.ImageFill;\n\t\tlet component = nodeutils.getContainingComponent(xdNode, true);\n\n\t\treturn (\n\t\t\t<div id='panel-container' data-platform={os.platform()}>\n\t\t\t\t<div class='options-container'>\n\t\t\t\t\t{!isRoot || multi ? <Preview node={xdNode} /> : null}\n\t\t\t\t\t<Settings node={isRoot ? xd.root : xdNode} component={component} multi={multi} />\n\t\t\t\t</div>\n\t\t\t\t<div class='actions-container'>\n\t\t\t\t\t<Results context={state.context} node={xdNode} />\n\t\t\t\t\t<span class='separator' />\n\t\t\t\t\t{hasImage ? <button uxp-variant=\"primary\" onClick={() => this.exportImage()}>Export Image</button> : null}\n\t\t\t\t\t{isCopyable ? <button uxp-variant=\"primary\" onClick={() => this.copySelectedItem()}>Copy Selected</button> : null}\n\t\t\t\t\t{isWidget ? <button uxp-variant=\"primary\" onClick={() => this.exportSelectedItem()}>Export Widget</button> : null}\n\t\t\t\t\t{isRoot ? <button uxp-variant=\"primary\" onClick={() => this.exportAllImages()}>Export All Images</button> : null}\n\t\t\t\t\t<button uxp-variant=\"cta\" onClick={() => this.exportAll()}>Export All Widgets</button>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t);\n\t}\n}\n\n\nclass Notifier {\n\tlisten(f) { this.f = f; }\n\tnotify(o) { this.f && this.f(o); }\n}\n\nlet panelHolder, notifier = new Notifier();\n\n\nfunction create() {\n\tif (panelHolder == null) {\n\t\tpanelHolder = document.createElement(\"div\");\n\t\tupdate();\n\t}\n\treturn panelHolder\n}\n\nfunction show(event) {\n\tif (!panelHolder) event.node.appendChild(create());\n}\n\nfunction update(selection) {\n\tlet items = selection && selection.items;\n\trender(<FlutterPanel key='panel' selected={items} notifier={notifier} />, panelHolder);\n}\n\nasync function exportAll(selection, root) {\n\tnotifier.notify(await dart_export.exportAll(selection, root));\n}\n\nasync function exportSelected(selection, root) {\n\tnotifier.notify(await dart_export.exportSelected(selection, root));\n}\n\nasync function copySelected(selection, root) {\n\tnotifier.notify(await dart_export.copySelected(selection, root));\n}\n\n\nmodule.exports = {\n\tpanels: {\n\t\tflutterPanel: {\n\t\t\tshow,\n\t\t\tupdate,\n\t\t}\n\t},\n\tcommands: {\n\t\texportAll,\n\t\texportSelected,\n\t\tcopySelected,\n\n\t\t// debug menu items, enable in manifest.json:\n\t\t_testDartStyle: debug._testDartStyle,\n\t\t_printdumpNodePluginData: debug._printdumpNodePluginData,\n\t\t_imageFlipTest: debug._imageFlipTest,\n\t\t_dumpTransformData: debug._dumpTransformData,\n\t\t_dumpLayoutData: debug._dumpLayoutData,\n\t}\n\n};\n","/*\nCopyright 2020 Adobe\nAll Rights Reserved.\n\nNOTICE: Adobe permits you to use, modify, and distribute this file in\naccordance with the terms of the Adobe license agreement accompanying\nit. If you have received this file from a source other than Adobe,\nthen your use, modification, or distribution of it requires the prior\nwritten permission of Adobe. \n*/\n\nconst { h, Component, Fragment } = require('preact');\nconst NodeType = require('../core/nodetype');\nconst render_preview = require('./render_preview');\nconst { trace } = require('../utils/debug');\n\n\nclass Preview extends Component {\n constructor(props) {\n super(props);\n\t\tthis.state = { rendition: '' }\n }\n\n componentDidMount() {\n\t\tthis.renderPreview(this.props.node);\n }\n\n shouldComponentUpdate(nextProps, nextState) {\n\t\t// render new preview only if the props changed:\n\t\tif (this.props !== nextProps) { this.renderPreview(nextProps.node); }\n\t\treturn true;\n }\n\n async renderPreview(node) {\n\t\ttry {\n\t\t\tthis.setState({ rendition: await render_preview.getPreview(node) });\n\t\t} catch (e) {\n\t\t\ttrace('error rendering preview', e);\n\t\t}\n\t}\n\n render() {\n\t\tlet isMultiple = !this.props.node;\n\t\tlet noPreview = isMultiple || this.state.rendition === null;\n\t\tlet label = isMultiple ? 'MULTIPLE' : NodeType.getXDLabel(this.props.node);\n return (\n\t\t\t<div class='preview-container'>\n\t\t\t\t<div class={`preview-canvas${noPreview ? ' multi' : ' '}`}>\n\t\t\t\t\t<img class='preview-img' src={this.state.rendition} alt=\"preview\" />\n\t\t\t\t\t<div class='preview-no label'>PREVIEW NOT AVAILABLE</div>\n\t\t\t\t</div>\n\t\t\t\t<span class='label'>SELECTION: <b>{label.toUpperCase()}</b> </span>\n\t\t\t\t<span class='separator' />\n\t\t\t</div>\n );\n }\n}\n\n\n\nmodule.exports = Preview;","/*\nCopyright 2020 Adobe\nAll Rights Reserved.\n\nNOTICE: Adobe permits you to use, modify, and distribute this file in\naccordance with the terms of the Adobe license agreement accompanying\nit. If you have received this file from a source other than Adobe,\nthen your use, modification, or distribution of it requires the prior\nwritten permission of Adobe. \n*/\n\nconst app = require('application');\nconst fs = require('uxp').storage;\nconst $ = require('../utils/utils');\n\nlet previewFile;\n\nfunction initPreview() {\n\t(fs.localFileSystem.getTemporaryFolder()).then((folder) => {\n\t\t(folder.createFile('XD_Flutter_preview.png', { overwrite: true })).then((f) => {\n\t\t\tpreviewFile = f;\n\t\t})\n\t});\n}\ninitPreview();\n\nasync function getPreview(node, retryCount=0) {\n\t// return null when something goes wrong, empty string for an empty preview\n\tif (!node) { return ''; }\n\tif (!previewFile) { return null; }\n\tlet bounds = node.localBounds;\n\tlet scale = Math.min(20, 200 / bounds.height, 400 / bounds.width) * 3; // for hi-dpi\n\ttry {\n\t\tawait app.createRenditions([{\n\t\t\tnode, scale,\n\t\t\toutputFile: previewFile,\n\t\t\ttype: app.RenditionType.PNG,\n\t\t}]);\n\t} catch(e) {\n\t\tif (retryCount > 0) {\n\t\t\tawait $.delay(100);\n\t\t\treturn await getPreview(node, retryCount-1);\n\t\t} else {\n\t\t\treturn null;\n\t\t}\n\t}\n\tconst data = await previewFile.read({ format: fs.formats.binary });\n\treturn 'data:image/png;base64,' + base64ArrayBuffer(data);\n}\nexports.getPreview = getPreview;\n\nfunction base64ArrayBuffer(arrayBuffer) {\n let base64 = '';\n const encodings = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\n const bytes = new Uint8Array(arrayBuffer);\n const byteLength = bytes.byteLength;\n const byteRemainder = byteLength % 3;\n const mainLength = byteLength - byteRemainder;\n\n let a, b, c, d;\n let chunk;\n\n // Main loop deals with bytes in chunks of 3\n for (var i = 0; i < mainLength; i = i + 3) {\n // Combine the three bytes into a single integer\n chunk = (bytes[i] << 16) | (bytes[i + 1] << 8) | bytes[i + 2];\n\n // Use bitmasks to extract 6-bit segments from the triplet\n a = (chunk & 16515072) >> 18; // 16515072 = (2^6 - 1) << 18\n b = (chunk & 258048) >> 12; // 258048 = (2^6 - 1) << 12\n c = (chunk & 4032) >> 6; // 4032 = (2^6 - 1) << 6\n d = chunk & 63; // 63 = 2^6 - 1\n\n // Convert the raw binary segments to the appropriate ASCII encoding\n base64 += encodings[a] + encodings[b] + encodings[c] + encodings[d];\n }\n\n // Deal with the remaining bytes and padding\n if (byteRemainder == 1) {\n chunk = bytes[mainLength];\n\n a = (chunk & 252) >> 2; // 252 = (2^6 - 1) << 2\n\n // Set the 4 least significant bits to zero\n b = (chunk & 3) << 4; // 3 = 2^2 - 1\n\n base64 += encodings[a] + encodings[b] + '==';\n } else if (byteRemainder == 2) {\n chunk = (bytes[mainLength] << 8) | bytes[mainLength + 1];\n\n a = (chunk & 64512) >> 10; // 64512 = (2^6 - 1) << 10\n b = (chunk & 1008) >> 4; // 1008 = (2^6 - 1) << 4\n\n // Set the 2 least significant bits to zero\n c = (chunk & 15) << 2; // 15 = 2^4 - 1\n\n base64 += encodings[a] + encodings[b] + encodings[c] + '=';\n }\n\n return base64;\n}","/*\nCopyright 2020 Adobe\nAll Rights Reserved.\n\nNOTICE: Adobe permits you to use, modify, and distribute this file in\naccordance with the terms of the Adobe license agreement accompanying\nit. If you have received this file from a source other than Adobe,\nthen your use, modification, or distribution of it requires the prior\nwritten permission of Adobe. \n*/\n\nconst { h, Component, Fragment } = require(\"preact\");\nconst { resultsAlert } = require('./alert');\nconst version = require('../version');\nconst { shell } = require('uxp');\nconst { HELP_URL } = require('../core/constants');\n\nconst iconError = require('./assets/icon-error.png');\n\nclass Results extends Component {\n constructor(props) {\n super(props);\n }\n\n shouldComponentUpdate(nextProps) {\n if (this.props.node !== nextProps.node) {\n this.setState({ results: null })\n return true;\n }\n if (this.props.context === nextProps.context) return false;\n if (nextProps.context && nextProps.context.log) {\n this.setState({ results: nextProps.context.log.getResults() })\n }\n }\n\n render(props, state) {\n\t\tif (!version.xdVersionOk) {\n\t\t\treturn <div class='results-container'>\n\t\t\t\t<div class='version alert'>{`Version ${version.xdVersionRequired}+ of Adobe XD is required (v${version.version})`}</div>\n\t\t\t</div>\n\t\t}\n if (!props.context || !state.results) {\n return <div class='results-container'>\n\t\t\t\t<span class={`version${version.debug ? ' alert' : ''}`}>{`${version.label} v${version.version}`}</span>\n\t\t\t\t<a class='help' href={HELP_URL}>Need help?</a>\n\t\t\t</div>;\n }\n if (!props.context.log) { return <p>UNEXPECTED RESULT OBJECT!</p>; }\n\n\t\tlet results = state.results, errorMsg = this.getErrorMsg(results);\n return (<Fragment>\n\t\t\t{results && <div class='results-container'>\n\t\t\t\t{props.context.resultMessage}{(errorMsg) ? ': ' : '.'}{errorMsg}\n\t\t\t</div>}\n\t\t</Fragment> );\n\t}\n\t\n\tgetErrorMsg(results) {\n\t\tif (!results) { return null; }\n\t\tlet count = results.errors.length, hasErrors = count > 0;\n\t\tlet noun = count ? 'error' : 'warning';\n\t\tif (!count) { count = results.warnings.length; }\n\t\tlet s = count > 1 ? 's' : '';\n\t\treturn !count ? null : <a onClick={() => resultsAlert(results)}>\n\t\t\t{hasErrors ? <img src={iconError.default}/> : null}\n\t\t\t{`${count} ${noun}${s}`}\n\t\t</a>;\n\t}\n}\n\nmodule.exports = Results;","/*\nCopyright 2020 Adobe\nAll Rights Reserved.\n\nNOTICE: Adobe permits you to use, modify, and distribute this file in\naccordance with the terms of the Adobe license agreement accompanying\nit. If you have received this file from a source other than Adobe,\nthen your use, modification, or distribution of it requires the prior\nwritten permission of Adobe. \n*/\n\nconst xd = require(\"scenegraph\");\nconst { editDocument } = require(\"application\");\nconst { h, Component, Fragment } = require(\"preact\");\n\nconst $ = require(\"../utils/utils\");\nconst { project } = require('../core/project');\nconst NodeUtils = require(\"../utils/nodeutils\");\nconst { initInputHandlers, TextInputWithLabel, Label, TextInput, TextArea, Checkbox, Select } = require(\"./formutils\");\n\nconst NodeType = require(\"../core/nodetype\");\nconst PropType = require(\"../core/proptype\");\nconst { DEFAULT_PLUGIN_DATA, DEFAULT_COLORS_CLASS_NAME, DEFAULT_CHAR_STYLES_CLASS_NAME } = require(\"../core/constants\");\nconst { DefaultPath } = require(\"../core/project\");\nconst Alert = require(\"./alert\");\n\nconst iconFolder = require('./assets/icon-folder.png');\nconst iconEdit = require('./assets/icon-edit.png');\nconst iconWarning = require('./assets/icon-warning.png');\nconst iconInfo = require('./assets/icon-info.png');\n\nconst { ExportMode, ExportModeOptions, DEFAULT_CUSTOM_CODE } = require('../core/constants');\n\nfunction Settings(props) {\n\tlet type = NodeType.getType(props.node);\n\tif (props.multi) {\n\t\treturn <div>Select a single element to modify settings.</div>;\n\t}\n\tif (isComponentInstance(props) && !hasImage(props)) {\n\t\treturn <ComponentWarning key={props.node.guid} {...props} />;\n\t}\n switch (type) {\n case NodeType.TEXT:\n return <TextSettings key={props.node.guid} {...props} />;\n case NodeType.GROUP:\n return <GroupSettings key={props.node.guid} {...props} />;\n\t\tcase NodeType.GRID:\n return <GridSettings key={props.node.guid} {...props} />;\n case NodeType.WIDGET:\n return <WidgetSettings key={props.node.guid} {...props} />;\n case NodeType.SHAPE:\n return <ShapeSettings key={props.node.guid} {...props} />;\n default:\n return <ProjectSettings {...props} />;\n }\n}\nmodule.exports = Settings;\n\nfunction isComponentInstance(props) {\n\treturn props.component && !props.component.isMaster\n}\n\nfunction hasImage(props) {\n\treturn props.node.fill && props.node.fill instanceof xd.ImageFill\n}\n\nclass ComponentWarning extends Component {\n constructor(props) {\n super(props);\n }\n\n render(_, state) {\n return (\n\t\t\t<div class='settings-container'>\n\t\t\t\t{getWarning(this.props)}\n\t\t\t</div>\n );\n }\n}\n\nfunction getWarning(props, some=false) {\n\tlet isComponent = props.node === props.component;\n\tlet type = isComponent ? 'element' : NodeType.getXDLabel(props.node);\n\treturn <div class=\"warning\">\n\t\t{some ? <span class='separator'/> : null}\n\t\t<div class=\"warning-row\">\n\t\t\t<img src={iconWarning.default} alt=\"icon\" class=\"icon\" />\n\t\t\t<div>EDITING COMPONENT</div>\n\t\t</div>\n\t\t<div class=\"warning-text\">\n\t\t\t<p>\n\t\t\tThe selected {type} is {isComponent ? '' : 'part of'} a component instance.\n\t\t\t</p><p>\n\t\t\tTo modify {some ? 'some ' : ''}settings on this {type} you must edit the Master Component.\n\t\t\t</p><p>\n\t\t\tPress <b>{$.getCmdKeyStr()}-Shift-K</b> to locate the Master Component.\n\t\t\t</p>\n\t\t</div>\n\t</div>\n}\n\n\nclass ProjectSettings extends Component {\n constructor(props) {\n super(props);\n initInputHandlers(this);\n this.state = xd.root.pluginData || DEFAULT_PLUGIN_DATA;\n }\n\n setProjectFolder() {\n editDocument((_) => project.promptForRoot());\n }\n\n shouldComponentUpdate() {\n this.setState(NodeUtils.getState(xd.root));\n }\n\n render(_, state) {\n return (\n <div class='settings-container'>\n <Label label={\"FLUTTER PROJECT\"} />\n <div class='project-row'>\n <TextInput name={PropType.EXPORT_PATH} placeholder={DefaultPath.ROOT} state={state} handleInput={this.handleInput} readonly />\n <button uxp-variant=\"action\" onClick={this.setProjectFolder}><img src={iconFolder.default} alt=\"icon-folder\" /></button>\n </div>\n\n <TextInputWithLabel\n name={PropType.CODE_PATH}\n label={\"CODE PATH\"}\n placeholder={DefaultPath.CODE}\n state={state}\n handleInput={this.handleInput}\n onBlur={this.handleBlurAsCleanPath} />\n\n <TextInputWithLabel\n name={PropType.IMAGE_PATH}\n label={\"IMAGE PATH\"}\n placeholder={DefaultPath.IMAGE}\n state={state}\n handleInput={this.handleInput}\n onBlur={this.handleBlurAsCleanPath} />\n\n <TextInputWithLabel\n name={PropType.WIDGET_PREFIX}\n\t\t\t\t\tlabel={\"WIDGET NAME PREFIX\"}\n\t\t\t\t\tplaceholder=''\n state={state}\n handleInput={this.handleInput}\n onBlur={this.handleBlurAsClassName} />\n\n\n <span class='separator' />\n <label class='label'>SETTINGS</label>\n\n <div class='wrapping-row'>\n <Checkbox\n name={PropType.ENABLE_PROTOTYPE}\n label={\"Prototype Interactions\"}\n state={state}\n handleInput={this.handleInput} />\n\n <Checkbox\n name={PropType.RESOLUTION_AWARE}\n label={\"Resolution Aware Images\"}\n state={state}\n handleInput={this.handleInput} />\n\n\t\t\t\t\t<Checkbox\n\t\t\t\t\t\tname={PropType.NULL_SAFE}\n\t\t\t\t\t\tlabel={\"Export Null Safe Code\"}\n\t\t\t\t\t\tstate={state}\n\t\t\t\t\t\thandleInput={this.handleInput} />\n\n <Checkbox\n name={PropType.NORMALIZE_NAME_CASE}\n label={\"Normalize Names\"}\n state={state}\n handleInput={this.handleInput} />\n\n <Checkbox\n name={PropType.INCLUDE_NAME_COMMENTS}\n label={\"Layer Name Comments\"}\n state={state}\n handleInput={this.handleInput} />\n </div>\n\n <span class='separator' />\n <label class='label'>EXPORT ASSETS</label>\n\n\t\t\t\t<Checkbox\n\t\t\t\t\tname={PropType.EXPORT_COLORS}\n\t\t\t\t\tlabel={\"Colors\"}\n\t\t\t\t\tstate={state}\n\t\t\t\t\thandleInput={this.handleInput} />\n\t\t\t\t\n\t\t\t\t{!state[PropType.EXPORT_COLORS] ? null :\n\t\t\t\t<TextInput\n\t\t\t\t\tname={PropType.COLORS_CLASS_NAME}\n\t\t\t\t\tplaceholder={DEFAULT_COLORS_CLASS_NAME}\n\t\t\t\t\tstate={state}\n\t\t\t\t\thandleInput={this.handleInput}\n\t\t\t\t\tonBlur={this.handleBlurAsClassName} />\n\t\t\t\t}\n\n\t\t\t\t<Checkbox\n\t\t\t\t\tname={PropType.EXPORT_CHAR_STYLES}\n\t\t\t\t\tlabel={\"Character Styles\"}\n\t\t\t\t\tstate={state}\n\t\t\t\t\thandleInput={this.handleInput} />\n\t\t\t\t\n\t\t\t\t{!state[PropType.EXPORT_CHAR_STYLES] ? null :\n\t\t\t\t<TextInput\n\t\t\t\t\tname={PropType.CHAR_STYLES_CLASS_NAME}\n\t\t\t\t\tplaceholder={DEFAULT_CHAR_STYLES_CLASS_NAME}\n\t\t\t\t\tstate={state}\n\t\t\t\t\thandleInput={this.handleInput}\n\t\t\t\t\tonBlur={this.handleBlurAsClassName} />\n\t\t\t\t}\n </div>\n );\n }\n}\n\nclass TextSettings extends Component {\n constructor(props) {\n super(props);\n initInputHandlers(this);\n let state = this.props.node.pluginData || {};\n state.flutterFont = NodeUtils.getFlutterFont(this.props.node.fontFamily);\n this.state = state;\n }\n\n shouldComponentUpdate(nextProps) {\n let state = nextProps.node.pluginData || {};\n state[PropType.FLUTTER_FONT] = NodeUtils.getFlutterFont(nextProps.node.fontFamily);\n this.setState(state);\n }\n\n render(_, state) {\n return (\n <div class='settings-container'>\n <TextInputWithLabel\n name={PropType.FLUTTER_FONT}\n label={\"FLUTTER FONT\"}\n placeholder={this.props.node.fontFamily}\n state={state}\n handleInput={this.handleInput} />\n\n <TextInputWithLabel\n name={PropType.TEXT_PARAM_NAME}\n label={\"TEXT PARAMETER\"}\n state={state}\n handleInput={this.handleInput}\n onBlur={this.handleBlurAsClassName} />\n\n <TextInputWithLabel\n name={PropType.COLOR_PARAM_NAME}\n label={\"COLOR PARAMETER\"}\n state={state}\n handleInput={this.handleInput}\n onBlur={this.handleBlurAsClassName} />\n </div>\n );\n }\n}\n\nclass WidgetSettings extends Component {\n constructor(props) {\n super(props);\n initInputHandlers(this);\n\t\tthis.state = props.node.pluginData || {[PropType.INCLUDE_IN_EXPORT_PROJECT]:true};\n }\n\n shouldComponentUpdate() {\n\t\t// this is necessary to react to Undo\n this.setState(NodeUtils.getState(this.props.node));\n }\n\n render(_, state) {\n\t\tlet isComponent = this.props.node instanceof xd.SymbolInstance;\n return (\n <div class='settings-container'>\n <Checkbox\n name={PropType.INCLUDE_IN_EXPORT_PROJECT}\n label={\"Include in Export All Widgets\"}\n state={state}\n handleInput={this.handleInput} />\n\n <TextInputWithLabel\n name={PropType.WIDGET_NAME}\n\t\t\t\t\tlabel={\"WIDGET NAME\"}\n\t\t\t\t\tplaceholder={NodeUtils.getDefaultWidgetName(this.props.node)}\n state={state}\n handleInput={this.handleInput}\n onBlur={this.handleBlurAsClassName} />\n\n {isComponent && <TextInputWithLabel\n name={PropType.TAP_CALLBACK_NAME}\n label={\"TAP CALLBACK NAME\"}\n state={state}\n handleInput={this.handleInput}\n onBlur={this.handleBlurAsClassName} />}\n </div>\n );\n }\n}\n\nclass GridSettings extends Component {\n constructor(props) {\n super(props);\n initInputHandlers(this);\n\t\tthis.state = props.node.pluginData || {};\n }\n\n shouldComponentUpdate() {\n\t\t// this is necessary to react to Undo\n this.setState(NodeUtils.getState(this.props.node));\n }\n\n render(_, state) {\n\t\tlet hasParam = !!state[PropType.DATA_PARAM_NAME];\n return (\n <div class='settings-container'>\n\n\t\t\t\t<TextInputWithLabel\n name={PropType.DATA_PARAM_NAME}\n label={\"DATA PARAMETER\"}\n state={state}\n handleInput={this.handleInput}\n onBlur={this.handleBlurAsClassName} />\n\t\t\t\t\n\t\t\t\t{\n\t\t\t\t!hasParam ? null :\n\t\t\t\t\t<p class=\"note\"><img src={iconInfo.default}/> the data parameter value will default to an empty list.</p>\n\t\t\t\t}\n\n </div>\n );\n }\n}\n\nclass ShapeSettings extends Component {\n constructor(props) {\n super(props);\n initInputHandlers(this);\n let state = props.node.pluginData || {};\n state[PropType.IMAGE_FILL_NAME] = NodeUtils.getImageName(props.node);\n this.state = state;\n }\n\n shouldComponentUpdate(nextProps) {\n let state = nextProps.pluginData || {};\n state[PropType.IMAGE_FILL_NAME] = NodeUtils.getImageName(nextProps.node);\n this.setState(state);\n return true;\n }\n\n render(_, state) {\n return (!hasImage(this.props) ? null :\n <div class='settings-container'>\n\t\t\t\t\n\t\t\t\t<TextInputWithLabel\n\t\t\t\t\tname={PropType.IMAGE_FILL_NAME}\n\t\t\t\t\tlabel={\"IMAGE EXPORT NAME\"}\n\t\t\t\t\tstate={state}\n\t\t\t\t\thandleInput={this.handleInput} />\n\t\t\t\t{isComponentInstance(this.props) ?\n\t\t\t\t\tgetWarning(this.props, true)\n\t\t\t\t\t:\n\t\t\t\t\t<TextInputWithLabel\n\t\t\t\t\t\tname={PropType.IMAGE_PARAM_NAME}\n\t\t\t\t\t\tlabel={\"IMAGE PARAMETER\"}\n\t\t\t\t\t\tstate={state}\n\t\t\t\t\t\thandleInput={this.handleInput}\n\t\t\t\t\t\tonBlur={this.handleBlurAsClassName} />\n\t\t\t\t}\n\t\t\t</div>\n );\n }\n}\n\nclass GroupSettings extends Component {\n constructor(props) {\n super(props);\n initInputHandlers(this);\n this.state = props.node.pluginData || {};\n }\n\n shouldComponentUpdate() {\n\t\t// this is necessary to react to Undo\n this.setState(NodeUtils.getState(this.props.node));\n }\n\n render(_, state) {\n return (\n <div class='settings-container'>\n\t\t\t\t<Select\n\t\t\t\t\tname={PropType.EXPORT_MODE}\n\t\t\t\t\toptions={ExportModeOptions}\n\t\t\t\t\tdefault={true}\n\t\t\t\t\tstate={state}\n\t\t\t\t\thandleInput={this.handleInput}/>\n\t\t\t\t\n\t\t\t\t{this.renderModeOptions(state)}\n </div>\n );\n }\n\n\trenderModeOptions(state) {\n\t\tlet arr = [], mode = state[PropType.EXPORT_MODE];\n\t\tif (mode === ExportMode.CUSTOM) {\n\t\t\tlet code = state[PropType.CUSTOM_CODE] || DEFAULT_CUSTOM_CODE;\n\t\t\tarr.push(<div class='customcode-row'>\n\t\t\t\t\t<TextArea\n\t\t\t\t\t\tname={PropType.CUSTOM_CODE}\n\t\t\t\t\t\tstate={state}\n\t\t\t\t\t\tplaceholder={DEFAULT_CUSTOM_CODE}\n\t\t\t\t\t\thandleInput={this.handleInput}\n\t\t\t\t\t\tonBlur={this.handleBlurAsCustomCode} />\n\t\t\t\t\t<button\n\t\t\t\t\t\tuxp-variant=\"action\"\n\t\t\t\t\t\tonClick={() => this.openCodeEditor(code)}>\n\t\t\t\t\t\t\t<img src={iconEdit.default} alt=\"icon-edit\" />\n\t\t\t\t\t\t</button>\n\t\t\t\t</div>)\n\t\t}\n\t\tif (mode === ExportMode.METHOD || mode === ExportMode.BUILDER) {\n\t\t\tarr.push(<TextInput\n\t\t\t\tname={PropType.BUILD_METHOD_NAME}\n\t\t\t\tplaceholder={NodeUtils.getDefaultBuildMethodName(this.props.node)}\n\t\t\t\tstate={state}\n\t\t\t\thandleInput={this.handleInput}\n\t\t\t\tonBlur={this.handleBlurAsClassName} />);\n\t\t}\n\t\tif (mode === ExportMode.METHOD || mode === ExportMode.INLINE || mode == null) {\n\t\t\t\n\t\t\tarr.push(<TextInputWithLabel\n\t\t\t\tname={PropType.TAP_CALLBACK_NAME}\n\t\t\t\tlabel={\"TAP CALLBACK NAME\"}\n\t\t\t\tstate={state}\n\t\t\t\thandleInput={this.handleInput}\n\t\t\t\tonBlur={this.handleBlurAsClassName} />);\n\n\t\t\tarr.push(<Checkbox\n\t\t\t\tname={PropType.COMBINE_SHAPES}\n\t\t\t\tlabel={\"Combine Shapes\"}\n\t\t\t\tstate={state}\n\t\t\t\thandleInput={this.handleInput} />);\n\t\t}\n\t\t\n\t\treturn arr;\n\t}\n\n\tasync openCodeEditor(code) {\n\t\tawait Alert.codeEditorAlert(code, (value) => {\n\t\t\tlet name = PropType.CUSTOM_CODE;\n\t\t\tif (value === DEFAULT_CUSTOM_CODE) { value = null; }\n else { value = $.cleanCustomCode(value); }\n\t\t\teditDocument({ editLabel: \"Updated Flutter Data\" }, (_) => {\n\t\t\t\tthis.state[name] = value;\n\t\t\t\tNodeUtils.setState(this.props.node, this.state);\n\t\t\t});\n\t\t\tthis.setState({ [name]: value })\n\t\t});\n\t}\n}\n\n","var api = require(\"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/stylus-loader/index.js!./styles.styl\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(module.id, content, options);\n\nvar exported = content.locals ? content.locals : {};\n\n\n\nmodule.exports = exported;","/*\nCopyright 2020 Adobe\nAll Rights Reserved.\n\nNOTICE: Adobe permits you to use, modify, and distribute this file in\naccordance with the terms of the Adobe license agreement accompanying\nit. If you have received this file from a source other than Adobe,\nthen your use, modification, or distribution of it requires the prior\nwritten permission of Adobe. \n*/\n\nconst xd = require(\"scenegraph\");\nconst { formatDart } = require(\"../lib/dart_style\");\nconst $ = require(\"./utils\");\nconst version = require(\"../version\");\n\nfunction trace(...rest) {\n\tversion.debug && console.log(...rest);\n}\nexports.trace = trace;\n\nfunction _printParameters(n, depth) {\n\tlet d = depth || 0;\n\tlet t = \"\";\n\tfor (let i = 0; i < d; ++i)\n\t\tt += \" \";\n\ttrace(`${t}node - ${n.constructor.name}`);\n\tif (n.parameters) {\n\t\tlet values = Object.entries(n.parameters);\n\t\tfor (let [key, value] of values) {\n\t\t\ttrace(` ${t}${key}`);\n\t\t}\n\t}\n\tif (n.children) {\n\t\tn.children.forEach((child) => {\n\t\t\tprintParameters(child, d + 1);\n\t\t});\n\t}\n}\nexports._printParameters = _printParameters;\n\nfunction _printTree(node, t=\"\") {\n\tlet str = `\\n${t}${node.xdNode.name}(${node.constructor.name}, ${node.xdNode.constructor.name})`;\n\tlet kids = node.children;\n\tfor (var i=0; kids && (i<kids.length); i++) {\n\t\tstr += _printTree(kids[i], t+\"\\t\");\n\t}\n\tif (!t) { trace(str); }\n\treturn str;\n}\nexports._printTree = _printTree;\n\n\n// Everything below is designed to be used as a menu item:\n\nfunction _dumpLayoutData(selection, root) {\n\tlet xdNode = selection.items[0];\n\tconsole.clear();\n\ttrace(JSON.stringify(xdNode.layout, null, \"\\t\"));\n}\nexports._dumpLayoutData = _dumpLayoutData;\n\n\nfunction _imageFlipTest(selection, root) {\n\tlet items = selection.items, imgSrc, target;\n\tfor (let i=0; i < items.length; i++) {\n\t\tlet o = items[i];\n\t\tif (o.fill instanceof xd.ImageFill) { imgSrc = o; }\n\t\telse if (o instanceof xd.Rectangle) { target = o; }\n\t}\n\tif (!imgSrc || !target) { trace(\"select two rectangles, one with an image fill, one without.\"); return; }\n\ttarget.fill = imgSrc.fill;\n\ttrace(\"src matrix:\", imgSrc.transform);\n}\nexports._imageFlipTest = _imageFlipTest;\n\nfunction _dumpTransformData(selection, root) {\n\tconsole.clear();\n\t__dumpTransformData(selection.items);\n\ttrace(\"***** Calculated values: *****\");\n\t_calculateTransform(selection, root);\n}\nexports._dumpTransformData = _dumpTransformData;\n\nfunction __dumpTransformData(items, t=\"\") {\n\tif (!items || !items.length) { return; }\n\titems.forEach(o => {\n\t\ttrace(`${t}-> ${o.name}`);\n\t\ttrace(`${t} • topLeftInParent: ${__pointToString(o.topLeftInParent)}`);\n\t\ttrace(`${t} • rotation: ${$.fix(o.rotation)}`);\n\t\ttrace(`${t} • localBounds: ${__rectToString(o.localBounds)}`);\n\t\ttrace(`${t} • boundsInParent: ${__rectToString(o.boundsInParent)}`);\n\t\ttrace(`${t} • matrix: ${o.transform}`);\n\t\t__dumpTransformData(o.children, t+\" \");\n\t})\n}\n\nfunction _calculateTransform(selection, root) {\n\t__calculateTransform(selection.items);\n}\n\nfunction __calculateTransform(items, t=\"\") {\n\tif (!items || !items.length) { return; }\n\titems.forEach(o => {\n\t\t// Artboards always return 0,0,w,h for their localBounds, even when content exceeds the canvas edges\n\t\tlet lb = o.localBounds, pb = o.parent.localBounds, tl = o.topLeftInParent;\n\t\tif (o instanceof xd.Artboard) { tl = pb = {x:0, y:0}; }\n\t\tlet rect = {\n\t\t\tx: tl.x - pb.x,\n\t\t\ty: tl.y - pb.y,\n\t\t\twidth: lb.width,\n\t\t\theight: lb.height,\n\t\t}\n\t\ttrace(`${t}-> ${o.name}`);\n\t\ttrace(`${t} • rotation: ${$.fix(o.rotation)}`);\n\t\ttrace(`${t} • rect: ${__rectToString(rect)}`);\n\t\t__calculateTransform(o.children, t+\" \");\n\t})\n}\n\nfunction __rectToString(o) {\n\treturn `{x:${$.fix(o.x)}, y:${$.fix(o.y)}, w:${$.fix(o.width)}, h:${$.fix(o.height)}}`;\n}\n\nfunction __pointToString(o) {\n\treturn `{x:${$.fix(o.x)}, y:${$.fix(o.y)}}}`;\n}\n\n\nasync function _printdumpNodePluginData(selection, root) {\n\tlet _dumpPluginData = (pluginData, depth) => {\n\t\tif (!pluginData)\n\t\t\treturn;\n\t\tlet t = \"\";\n\t\tfor (let i = 0; i < depth; ++i)\n\t\t\tt += \" \";\n\t\tfor (let [k, v] of Object.entries(pluginData)) {\n\t\t\ttrace(`${t}${k} => ${v}`);\n\t\t}\n\t};\n\tlet _dumpNodePluginData = (xdNode, depth) => {\n\t\tif (!xdNode)\n\t\t\treturn;\n\t\tlet d = depth || 0;\n\t\t_dumpPluginData(xdNode.pluginData, d);\n\t\txdNode.children.forEach((child) => {\n\t\t\t_dumpNodePluginData(child, d + 1);\n\t\t});\n\t};\n\tfor (let i = 0; i < selection.items.length; ++i) {\n\t\tlet item = selection.items[i];\n\t\t_dumpNodePluginData(item);\n\t}\n}\nexports._printdumpNodePluginData = _printdumpNodePluginData;\n\n/* for performance testing the formatDart method: */\nasync function _testDartStyle(selection, root) {\n\tlet el = selection.items[0];\n\tif (!(el instanceof xd.Text)) { trace(\"select text\"); return; }\n\tlet str = el.text, count=0, maxT=1000, result;\n\tlet t = Date.now();\n\twhile (Date.now() - t < maxT) {\n\t\tresult = formatDart(str);\n\t\tcount++;\n\t}\n\tt = Date.now() - t;\n\ttrace(result);\n\ttrace(\"-------------------\");\n\ttrace(str.length + \" characters formatted\");\n\ttrace(count + \" iterations took \" + t + \"ms (avg: \" + (t/count).toFixed(1) + \"ms)\");\n}\nexports._testDartStyle = _testDartStyle;","/*\nCopyright 2020 Adobe\nAll Rights Reserved.\n\nNOTICE: Adobe permits you to use, modify, and distribute this file in\naccordance with the terms of the Adobe license agreement accompanying\nit. If you have received this file from a source other than Adobe,\nthen your use, modification, or distribution of it requires the prior\nwritten permission of Adobe. \n*/\n\nconst xd = require(\"scenegraph\");\nconst assets = require(\"assets\");\n\nconst $ = require(\"./utils\");\nconst { getImagePath } = require(\"../core/image_export\");\n\nexports.DartType = Object.freeze({\n\tBOOL: \"bool\",\n\tCOLOR: \"Color\",\n\tIMAGE: \"ImageProvider\",\n\tSTRING: \"String\",\n\tTAP_CB: \"VoidCallback\",\n\tBUILDER: \"WidgetBuilder\",\n\tGRID_DATA: \"List<Map<String, dynamic>>\"\n});\n\nfunction getColor(color, opacity=1.0) {\n\tif (color == null || opacity <= 0) { return \"Colors.transparent\"; }\n\treturn \"const Color(0x\" + $.getARGBHexWithOpacity(color, opacity) + \")\";\n}\nexports.getColor = getColor;\n\n\nfunction getAssetImage(xdNode, ctx) {\n\tlet path = getImagePath(xdNode);\n\tif (!path && ctx) { ctx.log.warn('Image does not have a Flutter image name.', xdNode); }\n\treturn `const AssetImage('${path || ''}')`;\n}\nexports.getAssetImage = getAssetImage;\n\nfunction getString(str) {\n\treturn `'${$.escapeString(str)}'`;\n}\nexports.getString = getString;\n\n\nfunction getGradientParam(fill, opacity) {\n\tlet gradient = getGradient(fill, opacity);\n\treturn gradient ? `gradient: ${gradient}, ` : '';\n}\nexports.getGradientParam = getGradientParam;\n\nfunction getGradient(fill, opacity) {\n\t// Note: XD API docs say this should be called `LinearGradientFill`\n\treturn fill instanceof xd.LinearGradient ? _getLinearGradient(fill, opacity) :\n\t\t fill instanceof xd.RadialGradient ? _getRadialGradient(fill, opacity) :\n\t\t\tfill instanceof xd.AngularGradient ? _getSweepGradient(fill, opacity) :\n\t\t '';\n}\nexports.getGradient = getGradient;\n\nfunction getGradientFromAsset(xdColorAsset) {\n\treturn `const ${getGradientTypeFromAsset(xdColorAsset)}(` +\n\t\t_getColorsParam(xdColorAsset.colorStops) +\n\t')';\n}\nexports.getGradientFromAsset = getGradientFromAsset;\n\nfunction getGradientTypeFromAsset(xdColorAsset) {\n\treturn xdColorAsset.gradientType === assets.RADIAL ? \"RadialGradient\" : \"LinearGradient\";\n}\nexports.getGradientTypeFromAsset = getGradientTypeFromAsset;\n\nfunction getScrollView(childStr, node, ctx) {\n\treturn 'SingleChildScrollView(' +\n\t\t'primary: false,' + // avoid vertical scroll views on desktop trying to share PrimaryScrollController.\n\t\t_getScrollDirectionParam(node, ctx) +\n\t\t`child: ${childStr}, ` +\n\t')';\n}\nexports.getScrollView = getScrollView;\n\nfunction getAlignment(x, y) {\n\t// XD uses 0 to 1, Flutter uses -1 to +1.\n\treturn `Alignment(${$.fix(x*2-1, 3)}, ${$.fix(y*2-1, 3)})`;\n}\nexports.getAlignment = getAlignment;\n\n\nfunction _getLinearGradient(fill, opacity=1) {\n\treturn 'LinearGradient('+\n\t\t`begin: ${getAlignment(fill.startX, fill.startY)},` +\n\t\t`end: ${getAlignment(fill.endX, fill.endY)},` +\n\t\t_getColorsParam(fill.colorStops, opacity) +\n\t')';\n}\n\nfunction _getRadialGradient(fill, opacity=1) {\n\t// Flutter always draws relative to the shortest edge, whereas XD draws the gradient\n\t// stretched to the aspect ratio of its container.\n\treturn 'RadialGradient('+\n\t\t`center: ${getAlignment(fill.startX, fill.startY)}, ` +\n\t\t(fill.startX === fill.endX && fill.startY === fill.endY ? '' :\n\t\t\t`focal: ${getAlignment(fill.endX, fill.endY)}, `) +\n\t\t(fill.startR === 0 ? '' : `focalRadius: ${$.fix(fill.startR, 3)}, `) +\n\t\t`radius: ${$.fix(fill.endR, 3)}, ` +\n\t\t_getColorsParam(fill.colorStops, opacity) +\n\t\t_getTransformParam(fill) +\n\t')';\n}\n\nfunction _getSweepGradient(fill, opacity=1) {\n\t// Flutter's SweepGradient always starts at 0 deg (right). `startAngle` only affects color placement.\n\t// Also, `transform` is multiplied against the `center`.\n\t// As such, we need to rotate & move the gradient via GradientXDTransform\n\t\n\treturn 'SweepGradient('+\n\t\t`center: ${getAlignment(fill.startX, fill.startY)}, ` +\n\t\t`startAngle: 0.0, endAngle: ${$.fix(Math.PI*2, 4)}, ` +\n\t\t_getColorsParam(fill.colorStops, opacity) +\n\t\t_getTransformParam(fill, _getRotationMtx(fill.rotation / 180 * Math.PI)) +\n\t')';\n}\n\nfunction _getColorsParam(arr, opacity) {\n\tlet l = arr.length, stops = [], colors = [];\n\tfor (let i=0; i<l; i++) {\n\t\tlet s = arr[i];\n\t\tstops.push($.fix(s.stop, 3));\n\t\tcolors.push(getColor(s.color, opacity));\n\t}\n\treturn `colors: [${colors.join(\", \")}], stops: [${stops.join(\", \")}], `;\n}\n\nfunction _getTransformParam(fill, mtx) {\n\t// The GradientXDTransform is needed even if there is no transformation in order to fix the aspect ratio.\n\tlet o = mtx || fill.gradientTransform;\n\treturn 'transform: GradientXDTransform(' +\n\t\t`${$.fix(o.a, 3)}, ${$.fix(o.b, 3)}, ${$.fix(o.c, 3)}, ` +\n\t\t`${$.fix(o.d, 3)}, ${$.fix(o.e, 3)}, ${$.fix(o.f, 3)}, ` +\n\t\t`${getAlignment(fill.startX, fill.startY)}), `;\n}\n\nfunction _getRotationMtx(r) {\n\treturn {\n\t\ta: Math.cos(r), b: Math.sin(r), e: 0,\n\t\tc:-Math.sin(r), d: Math.cos(r), f: 0,\n\t}\n}\n\nfunction _getScrollDirectionParam(node, ctx) {\n\tlet dir = node.xdNode.scrollingType;\n\tif (dir === xd.ScrollableGroup.PANNING) {\n\t\tctx.log.warn(\"Panning scroll groups are not supported.\", node.xdNode);\n\t}\n\treturn dir === xd.ScrollableGroup.HORIZONTAL ? \"scrollDirection: Axis.horizontal, \" : \"\";\n}","/*\nCopyright 2020 Adobe\nAll Rights Reserved.\n\nNOTICE: Adobe permits you to use, modify, and distribute this file in\naccordance with the terms of the Adobe license agreement accompanying\nit. If you have received this file from a source other than Adobe,\nthen your use, modification, or distribution of it requires the prior\nwritten permission of Adobe. \n*/\n\n/*\nThis file comprises a number of helper functions for getting, translating\nor normalizing XD API values related to layout or transformation.\n*/\n\nconst $ = require(\"./utils\");\n\nfunction addSizedBox(nodeStr, size, ctx) {\n\treturn `SizedBox(width: ${$.fix(size.width, 0)}, height: ${$.fix(size.height, 0)}, child: ${nodeStr},)`;\n}\nexports.addSizedBox = addSizedBox;\n\nfunction getGroupContentBounds(xdNode, ctx) {\n\t// adjusts group bounds to account for inner padding.\n\tlet b = xdNode.localBounds;\n\tlet pad = normalizePadding(xdNode.layout.padding && xdNode.layout.padding.values);\n\t\n\treturn !pad ? b : {\n\t\tx: b.x + pad.left,\n\t\ty: b.y + pad.top,\n\t\twidth: b.width - pad.left - pad.right,\n\t\theight: b.height - pad.top - pad.bottom\n\t}\n}\nexports.getGroupContentBounds = getGroupContentBounds; \n\nfunction getAdjustedBounds(xdNode, ctx) {\n\t// finds the untransformed bounds within the parent, adjusting for parent padding and scrolling\n\n\t// Note: Artboards always return x/y=0 & w/h = specified size for localBounds, even if children exceed edges.\n\tlet bip = xdNode.boundsInParent, lb = xdNode.localBounds;\n\tlet parent = xdNode.parent, pb = parent.localBounds;\n\n\t// calculate the untransformed top left corner, by finding the center\n\t// and subtracting half the untransformed w & h:\n\tlet x = bip.x + bip.width/2 - lb.width/2;\n\tlet y = bip.y + bip.height/2 - lb.height/2;\n\tlet b = {\n\t\tx: x - pb.x,\n\t\ty: y - pb.y,\n\t\twidth: lb.width,\n\t\theight: lb.height,\n\t}\n\n\t// adjust for parent padding:\n\tlet pad = normalizePadding(parent.layout.padding && parent.layout.padding.values);\n\tif (pad) {\n\t\tb.x -= pad.left;\n\t\tb.y -= pad.top;\n\t}\n\n\t// adjust for scrolling:\n\tlet offset = getScrollOffset(xdNode.parent, ctx);\n\tif (offset) {\n\t\tb.x += offset.x;\n\t\tb.y += offset.y;\n\t}\n\n\treturn b;\n}\nexports.getAdjustedBounds = getAdjustedBounds;\n\nfunction getScrollOffset(xdNode, ctx) {\n\tlet vp = xdNode.viewport;\n\tif (!vp) { return null; }\n\treturn {x: vp.offsetX||0, y: vp.offsetY||0};\n}\nexports.getScrollOffset = getScrollOffset;\n\nfunction normalizePadding(pad) {\n\t// XD padding can be a rect object or a single value\n\t// returns null if no padding, otherwise returns a rect object\n\tif (!pad) { return null; }\n\tif (isNaN(pad)) { return pad; } // already a rect\n\treturn {top: pad, right: pad, bottom: pad, left: pad, homogenous: true}\n}\nexports.normalizePadding = normalizePadding;\n\nfunction mergeBounds(xdNodes) {\n\tif (!xdNodes || xdNodes.length === 0) { return null; }\n\tlet o = {l: null, t: null, b: null, r: null};\n\txdNodes.forEach((node)=>{\n\t\tlet bip = node.boundsInParent\n\t\tlet l=bip.x, t=bip.y, r=l+bip.width, b=t+bip.height;\n\t\tif (o.l === null || l < o.l) { o.l = l; }\n\t\tif (o.t === null || t < o.t) { o.t = t; }\n\t\tif (o.r === null || r > o.r) { o.r = r; }\n\t\tif (o.b === null || b > o.b) { o.b = b; }\n\t});\n\treturn {x: o.l, y: o.t, width: o.r-o.l, height: o.b-o.t};\n}\nexports.mergeBounds = mergeBounds;\n\nfunction normalizeSpacings(spaces, length) {\n\t// XD spacing can be a list or a single value, this method always returns an Array\n\t// the value \"arrays\" XD returns aren't actually of type Array:\n\tif (spaces.map) { return spaces.map((o) => o); }\n\tif (spaces == null) { spaces = 0; }\n\treturn Array(length).fill(spaces);\n}\nexports.normalizeSpacings = normalizeSpacings;\n\nfunction hasComplexTransform(node, error, ctx) {\n\tlet o = node.transform;\n\tif (!o.flipY && o.rotation % 360 === 0) { return false; }\n\tif (error && ctx) { ctx.log.warn(error, node.xdNode); }\n\treturn true;\n}\nexports.hasComplexTransform = hasComplexTransform;","/*\nCopyright 2020 Adobe\nAll Rights Reserved.\n\nNOTICE: Adobe permits you to use, modify, and distribute this file in\naccordance with the terms of the Adobe license agreement accompanying\nit. If you have received this file from a source other than Adobe,\nthen your use, modification, or distribution of it requires the prior\nwritten permission of Adobe. \n*/\n\nconst $ = require(\"./utils\");\n\nexports.DART_RESERVED_WORDS = [\n\t// reserved words:\n\t\"assert\", \"break\", \"case\", \"catch\", \"class\", \"const\", \"continue\", \"default\",\n\t\"do\", \"else\", \"enum\", \"extends\", \"false\", \"final\", \"finally\", \"for\", \"if\", \"in\",\n\t\"is\", \"new\", \"null\", \"rethrow\", \"return\", \"super\", \"switch\", \"this\", \"throw\",\n\t\"true\", \"try\", \"var\", \"void\", \"while\", \"with\",\n\t// keywords:\n\t\"async\", \"hide\", \"on\", \"show\", \"sync\",\n\t// identifiers:\n\t\"abstract\", \"as\", \"covariant\", \"deferred\", \"export\", \"factory\",\n\t\"Function\", \"get\", \"implements\", \"import\", \"interface\", \"library\", \"mixin\",\n\t\"operator\", \"part\", \"set\", \"static\", \"typedef\",\n\t\"await\", \"yield\",\n\t// types:\n\t\"bool\", \"double\", \"dynamic\", \"int\", \"List\", \"Map\", \"String\",\n];\n\nexports.DART_RESERVED_WORDS_MAP = $.buildMap(exports.DART_RESERVED_WORDS);\n\n// clean a Dart name without consideration for case:\nfunction cleanDartName(name) {\n\tif (!name) { return \"\"; }\n\tname = name.replace(/^[\\W\\d]+|\\W/ig, '');\n\tif (exports.DART_RESERVED_WORDS_MAP[name]) { name += \"_\"; }\n\treturn name;\n}\nexports.cleanDartName = cleanDartName;\n\nfunction cleanClassName(name, fixCase=true) {\n\tif (!fixCase) { return cleanDartName(name); }\n\tlet words = findWords(name), n = \"\";\n for (let i=0; i<words.length; i++) {\n let word = words[i];\n if (!word) { continue; }\n n += word[0].toUpperCase() + word.slice(1);\n }\n return cleanDartName(n);\n}\nexports.cleanClassName = cleanClassName;\n\n// just a class name with a lowercase first char:\nfunction cleanIdentifierName(name, fixCase=true) {\n if (!(name = cleanClassName(name, fixCase))) { return name; }\n // TODO: catch things like: ADBTester --> adbTester instead of aDBTester? Less important than for file names\n return name[0].toLowerCase() + name.slice(1);\n}\nexports.cleanIdentifierName = cleanIdentifierName;\n\nfunction cleanFileName(name, fixCase=true) {\n\t// remove bad chars including /\n\tif (!(name = name.replace(/[\\/\\\\:*?\"<>|#]]+/ig, '')) || !fixCase) { return name; }\n\tlet words = findWords(name), n = \"\", prev;\n for (let i=0; i<words.length; i++) {\n let word = words[i];\n if (!word) { continue; }\n // catch things like: ADBTester --> adb_tester instead of a_d_b_tester\n if (isSingleCap(word) && isSingleCap(prev)) { }\n else if (i > 0) { n += \"_\"; } \n prev = word;\n n += word.toLowerCase();\n }\n return n;\n}\nexports.cleanFileName = cleanFileName;\n\n\nfunction pushNonEmpty(arr, val) {\n\tif (val) { arr.push(val); }\n}\n\nfunction findWords(str) {\n if (!str) { return []; }\n let re = /[-A-Z_ ]/g, arr=[], i=0, o;\n while (o = re.exec(str)) {\n let c = o[0];\n pushNonEmpty(arr, str.slice(i, re.lastIndex-1));\n i = re.lastIndex-1;\n if (c === \"-\" || c === \"_\" || c === \" \") { ++i; }\n }\n pushNonEmpty(arr, str.slice(i));\n return arr;\n}\n\nfunction isSingleCap(str) {\n\tif (!str || str.length !== 1) { return false; }\n return str.toLowerCase() !== str;\n}","/*\nCopyright 2020 Adobe\nAll Rights Reserved.\n\nNOTICE: Adobe permits you to use, modify, and distribute this file in\naccordance with the terms of the Adobe license agreement accompanying\nit. If you have received this file from a source other than Adobe,\nthen your use, modification, or distribution of it requires the prior\nwritten permission of Adobe. \n*/\n\nconst xd = require(\"scenegraph\");\nconst $ = require(\"./utils\");\nconst { cleanClassName, cleanDartName } = require(\"../utils/nameutils\");\nconst PropType = require(\"../core/proptype\");\nconst { DEFAULT_CLASS_PREFIX } = require(\"../core/constants\");\n\n\nfunction getContainingComponent(xdNode, inclusive=false) {\n\tif (!xdNode || xdNode === xd.root) { return null; }\n\tif (inclusive && xdNode instanceof xd.SymbolInstance) { return xdNode; }\n\treturn getContainingComponent(xdNode.parent, true);\n}\nexports.getContainingComponent = getContainingComponent;\n\nfunction getOpacity(xdNode) {\n\t// TODO: CE: Calculate opacity based off of parents compositing mode (whether or not it exports a blend mask widget that has it's own opacity and forces compositing)\n\tlet o = xdNode, opacity = 1.0;\n\twhile (o) {\n\t\tif (o.opacity != null) { opacity *= o.opacity; }\n\t\to = o.parent;\n\t}\n\treturn opacity;\n}\nexports.getOpacity = getOpacity;\n\nfunction getProp(xdNode, prop) {\n let o = xdNode.pluginData;\n return o && o[prop];\n}\nexports.getProp = getProp;\n\nfunction setProp(xdNode, prop, value) {\n\tlet o = xdNode.pluginData || {};\n\to[prop] = value;\n\txdNode.pluginData = o;\n}\nexports.setProp = setProp;\n\nfunction getInteractionCount(xdNode) {\n\tif (!xdNode || !xdNode.triggeredInteractions) { return 0; }\n\tlet enabled = getProp(xd.root, PropType.ENABLE_PROTOTYPE);\n\treturn enabled === false ? 0 : xdNode.triggeredInteractions.length;\n}\nexports.getInteractionCount = getInteractionCount;\n\nfunction getFlutterFont(font) {\n let o = xd.root.pluginData;\n return (o && o.fontMap && o.fontMap[font]) || null;\n}\nexports.getFlutterFont = getFlutterFont;\n\nfunction setFlutterFont(xdFont, flutterFont) {\n let o = xd.root.pluginData || {};\n if (!o.fontMap) { o.fontMap = {}; }\n o.fontMap[xdFont] = flutterFont;\n xd.root.pluginData = o;\n}\nexports.setFlutterFont = setFlutterFont;\n\nfunction getWidgetName(xdNode) {\n\tif (!isWidget(xdNode)) { return null; }\n\tlet name = getProp(xdNode, PropType.WIDGET_NAME) || getDefaultWidgetName(xdNode);\n return cleanDartName(_getWidgetPrefix() + name);\n}\nexports.getWidgetName = getWidgetName;\n\nfunction getDefaultWidgetName(xdNode) {\n\tif (!isWidget(xdNode)) { return null; }\n\treturn cleanClassName(xdNode.name, _getNormalizeNames());\n}\nexports.getDefaultWidgetName = getDefaultWidgetName;\n\n\nfunction getDefaultBuildMethodName(xdNode) {\n\treturn \"build\" + cleanClassName(xdNode.name, _getNormalizeNames());\n}\nexports.getDefaultBuildMethodName = getDefaultBuildMethodName;\n\nfunction _getWidgetPrefix() {\n\tlet o = xd.root.pluginData;\n\treturn o ? o[PropType.WIDGET_PREFIX] || '' : DEFAULT_CLASS_PREFIX;\n}\n\nfunction isWidget(xdNode) {\n\t// returns true if the xdNode is an exportable widget.\n\treturn xdNode instanceof xd.Artboard || (xdNode instanceof xd.SymbolInstance && xdNode.isMaster);\n}\nexports.isWidget = isWidget;\n\nfunction getImageName(xdNode) {\n\tif (!xdNode.fill) { return null; }\n\tlet name, hash = getImageHash(xdNode), id = getImageId(xdNode);\n\tlet o = xd.root.pluginData, map = o && o.imageMap;\n\tif (id) { name = map && map[id]; }\n if (!name && hash) { // for backwards compatibility.\n\t\tname = map && map[hash];\n }\n return name || getProp(xdNode, PropType.IMAGE_FILL_NAME) || null;\n}\nexports.getImageName = getImageName;\n\nfunction setImageName(xdNode, name) {\n let hash = getImageHash(xdNode);\n if (hash) {\n\t\t// set in both the global hash, and on the instance\n\t\t// in case a future version of XD breaks the hash again.\n let o = xd.root.pluginData || {};\n if (!o.imageMap) { o.imageMap = {}; }\n o.imageMap[getImageId(xdNode)] = name;\n xd.root.pluginData = o;\n }\n setProp(xdNode, PropType.IMAGE_FILL_NAME, name);\n}\nexports.setImageName = setImageName;\n\nfunction setState(xdNode, value){\n xdNode.pluginData = value;\n}\nexports.setState = setState;\n\nfunction getState(xdNode){\n return xdNode.pluginData || {};\n}\nexports.getState = getState;\n\nfunction getImageId(xdNode) {\n\treturn xdNode.fill && xdNode.fill.assetId;\n}\n\nfunction getImageHash(xdNode) {\n\t// This only works on images that have been dragged into XD from the file system.\n\tlet path = _getImageFillName(xdNode.fill);\n\treturn path ? $.getHash(path) : null;\n}\nexports.getImageHash = getImageHash;\n\nfunction _getImageFillName(fill) {\n\tif (!fill) { return null; }\n\t// this is a huge hack, because ImageFill doesn't have a .file property\n\tlet fillStr = fill.toString().replace(/\\\\/g, '/');\n\t// as of XD29, this returns a file name & dimensions\n\tlet match = /ImageFill\\(([^<][^(]+)\\)/.exec(fillStr);\n\treturn match ? match[1] : null;\n}\n\nfunction getShapeDataName(shape, ctx) {\n\treturn '_svg_' + cleanDartName(shape.getSvgId(ctx));\n}\nexports.getShapeDataName = getShapeDataName;\n\n\nfunction _getNormalizeNames() {\n\treturn !!getProp(xd.root, PropType.NORMALIZE_NAME_CASE);\n}","/*\nCopyright 2020 Adobe\nAll Rights Reserved.\n\nNOTICE: Adobe permits you to use, modify, and distribute this file in\naccordance with the terms of the Adobe license agreement accompanying\nit. If you have received this file from a source other than Adobe,\nthen your use, modification, or distribution of it requires the prior\nwritten permission of Adobe. \n*/\n\nconst os = require('os'); // used by getCmdKeyStr\n\nfunction fix(num, digits=1) {\n\tlet p = Math.pow(10, digits);\n\tnum = Math.round(num * p) / p;\n\treturn num + (num === (num|0) ? '.0' : '');\n}\nexports.fix = fix;\n\nfunction capitalize(str) {\n\treturn str[0].toUpperCase() + str.substr(1);\n}\nexports.capitalize = capitalize;\n\nfunction shorten(str, length) {\n\treturn str && str.length > length ? str.substr(0, length-1) + \"…\" : str;\n}\nexports.shorten = shorten;\n\nfunction getColorComponent(val) {\n\treturn (val < 0x10 ? \"0\" : \"\") + Math.round(val).toString(16);\n}\nexports.getColorComponent = getColorComponent;\n\nfunction getARGBHexWithOpacity(color, opacity=1) {\n\tif (color == null) { return \"00000000\"; }\n\treturn getColorComponent(color.a * opacity) +\n\t\tgetColorComponent(color.r) +\n\t\tgetColorComponent(color.g) +\n\t\tgetColorComponent(color.b);\n}\nexports.getARGBHexWithOpacity = getARGBHexWithOpacity;\n\nfunction getRGBHex(color) {\n\tif (color == null) { return \"000000\"; }\n\treturn getColorComponent(color.r) +\n\t\tgetColorComponent(color.g) +\n\t\tgetColorComponent(color.b);\n}\nexports.getRGBHex = getRGBHex;\n\nfunction delay(t) {\n\treturn new Promise(f => setTimeout(f, t));\n}\nexports.delay = delay;\n\nfunction buildMap(arr, value=true) {\n\treturn arr.reduce((o,s) => (o[s] = value, o), {});\n}\nexports.buildMap = buildMap;\n\nfunction getRelPath(file, ctx) {\n\tif (!file) { return \"\"; }\n\t// this expects a url format like: 'blob:/blob-1/filepath/etc/filename.ext\n\tlet o = /:\\/.+?\\/(.+)$/.exec(file.url || \"\");\n\tif (!o || !o[1]) {\n\t\tctx && ctx.log.note(`Unable to parse relative path from URL ('${file.url}')`);\n\t\treturn file.name;\n\t}\n\treturn o[1]\n}\nexports.getRelPath = getRelPath;\n\nfunction cleanPath(path) {\n\t// remove bad chars & leading or trailing /\n\treturn path.replace(/^\\/|\\/$|[\\\\:*?\"<>|#]+/g, '');\n}\nexports.cleanPath = cleanPath;\n\nfunction cleanCustomCode(code) {\n\t// remove trailing spaces, commas, or semi-colons\n\treturn code.replace(/[\\s,;]+$/g, '');\n}\nexports.cleanCustomCode = cleanCustomCode;\n\nfunction getParamList(arr) {\n\tlet str = '';\n\tarr.forEach((o) => { if (o) { str += o; } });\n\treturn str;\n}\nexports.getParamList = getParamList;\n\nfunction getParamDelta(defaultParams, params) {\n\t// Compares an array of params to an array of default params,\n\t// and returns a new array containing only the entries that differ,\n\t// or null if there is no difference.\n\tlet delta = null;\n\tfor (let i=0; i<params.length; i++) {\n\t\tif (defaultParams[i] === params[i]) { continue; }\n\t\tif (delta === null) { delta = []; }\n\t\tdelta.push(params[i]);\n\t}\n\treturn delta;\n}\nexports.getParamDelta = getParamDelta;\n\nfunction escapeString(str) {\n\treturn str.replace(/(['\\\\$])/g, '\\\\$1') // escaped characters\n\t\t.replace(/\\n/g, '\\\\n'); // line breaks\n}\nexports.escapeString = escapeString;\n\nfunction getSelectedItem(selection){\n\treturn selection.items.length === 1 ? selection.items[0] : null;\n}\nexports.getSelectedItem = getSelectedItem;\n\nfunction enumName(enumeration, value) {\n\tfor (let [k, v] of Object.entries(enumeration)) {\n\t\tif (v == value) {\n\t\t\treturn k;\n\t\t}\n\t}\n\treturn \"\";\n}\nexports.enumName = enumName;\n\nfunction getHash(str) {\n\tlet hash = 0;\n\tfor (let i = 0; i < str.length; ++i) {\n\t\t// Original fn: h = c + (h << 6) + (h << 16) - h\n\t\t// Idk if the bit version or multiply version is faster, it probably doesn't matter\n\t\thash = hash * 65599 + str.charCodeAt(i) | 0; // Prime multiply, add character to hash, convert to int\n\t}\n\treturn hash;\n}\nexports.getHash = getHash;\n\nfunction getExportAllMessage(count, total, noun) {\n\tlet s = total === 1 ? '' : 's';\n\tif (total === 0) { return `No ${noun}s found to export`; }\n\tif (count === total) { return `Exported ${count} ${noun}${s}`; }\n\tif (count > 0) { return `Exported ${count} of ${total} ${noun}${s}`; }\n\treturn `Failed to export ${total} ${noun}${s}`;\n}\nexports.getExportAllMessage = getExportAllMessage;\n\nfunction getCmdKeyStr() {\n\treturn os.platform() === \"darwin\" ? \"Cmd\" : \"Ctrl\";\n}\nexports.getCmdKeyStr = getCmdKeyStr;\n\nfunction almostEqual(v0, v1, d=0.01) {\n\treturn Math.abs(v1-v0) < d;\n}\nexports.almostEqual = almostEqual;\n\nfunction joinValues(arr, delimiter=\", \") {\n\treturn arr.filter(n => n != null && n !== \"\").join(delimiter);\n}\nexports.joinValues = joinValues;\n\n\nfunction isIdentityTransform(o) {\n\t// unused.\n\treturn (o.a === 1 && o.b === 0 && o.c === 0 && o.d === 1 && o.e === 0 && o.f === 0);\n}","/*\nCopyright 2020 Adobe\nAll Rights Reserved.\n\nNOTICE: Adobe permits you to use, modify, and distribute this file in\naccordance with the terms of the Adobe license agreement accompanying\nit. If you have received this file from a source other than Adobe,\nthen your use, modification, or distribution of it requires the prior\nwritten permission of Adobe. \n*/\n\n\nconst app = require(\"application\");\nconst { alert } = require(\"./ui/alert\");\n\n// Update for new builds:\nexports.version = \"4.0.0\";\nexports.debug = false;\nexports.xdVersionRequired = 42; // the actual minimum XD version required to run the plugin.\n\n// Calculated:\nexports.xdVersion = parseInt(app.version);\nexports.xdVersionOk = (exports.xdVersion >= exports.xdVersionRequired);\nexports.label = exports.debug ? 'DEBUG' : 'Release';\n\n// Methods:\nfunction checkXDVersion() {\n\tif (exports.xdVersionOk) { return true; }\n\talert(\n\t\t`XD to Flutter plugin (v${exports.version}) requires Adobe XD version ` +\n\t\t`${exports.xdVersionRequired} or higher.` +\n\t\t`<br><br>Current version is ${app.version}. Please upgrade.`\n\t);\n\treturn false;\n}\nexports.checkXDVersion = checkXDVersion;","module.exports = require(\"application\");","module.exports = require(\"assets\");","module.exports = require(\"clipboard\");","module.exports = require(\"os\");","module.exports = require(\"scenegraph\");","module.exports = require(\"uxp\");"],"sourceRoot":""}