{"version":3,"sources":["webpack:///./src/app/error.ts","webpack:///./src/app/resources/designTemplates.ts","webpack:///./src/app/services/loadDesignHelper.service.ts","webpack:///./src/app/resources/textRender.ts","webpack:///./src/app/services/imageHelper.service.ts","webpack:///./src/app/resources/category.ts","webpack:///./src/app/resources/designs.ts","webpack:///./src/app/resources/search.ts","webpack:///./src/app/resources/clipartCategory.ts","webpack:///./src/app/resources/clipartIcons.ts","webpack:///./src/app/resources/clipartSearchTerms.ts","webpack:///./src/app/resources/createDesign.ts","webpack:///./src/app/resources/customer.service.ts","webpack:///./src/app/resources/personalizationSizes.ts","webpack:///./src/app/resources/products.ts","webpack:///./src/app/resources/proofedArtwork.ts","webpack:///./src/app/resources/removeBackground.ts","webpack:///./src/app/resources/sharedDesigns.ts","webpack:///./src/app/resources/textBorders.ts","webpack:///./src/app/resources/textEffects.ts","webpack:///./src/app/resources/textShapes.ts","webpack:///./src/app/services/appState.service.ts","webpack:///./src/app/services/textHelper.service.ts","webpack:///./src/environments/environment.ts","webpack:///./src/app/services/decorationGroupHelper.service.ts","webpack:///./src/app/services/selectedDesignColors.service.ts","webpack:///./src/app/services/productsHelper.service.ts","webpack:///./src/app/components/base.class.ts","webpack:///./src/app/services/designHelper.service.ts","webpack:///./src/app/appEvents.ts","webpack:///./src/app/services/productColorSelection.service.ts","webpack:///./src/app/components/desktop/add/addClipart.component.ts","webpack:///./src/app/components/desktop/add/addImage.component.ts","webpack:///./src/app/components/desktop/add/addProduct.component.ts","webpack:///./src/app/components/desktop/add/addProovedArtwork.component.ts","webpack:///./src/app/components/desktop/add/addTemplate.component.ts","webpack:///./src/app/components/desktop/add/addText.component.ts","webpack:///./src/app/components/desktop/add/changeItem.component.ts","webpack:///./src/app/components/desktop/add/editImageAndClipart.component.ts","webpack:///./src/app/components/desktop/add/personalization.component.ts","webpack:///./src/app/components/desktop/add/previewYourDesign.component.ts","webpack:///./src/app/components/desktop/add/yourDesigns.component.ts","webpack:///./src/app/components/desktop/add/yourItem.component.ts","webpack:///./src/app/components/desktop/add/yourQuote.component.ts","webpack:///./src/app/components/desktop/common/changeZIndex.component.ts","webpack:///./src/app/components/desktop/common/colorSelection.component.ts","webpack:///./src/app/components/desktop/common/confirmation.popup.component.ts","webpack:///./src/app/components/desktop/common/duplicate.component.ts","webpack:///./src/app/components/desktop/common/header.component.ts","webpack:///./src/app/components/desktop/common/slider.component.ts","webpack:///./src/app/components/desktop/design/designView.component.ts","webpack:///./src/app/components/desktop/design/saveDesign.component.ts","webpack:///./src/app/components/desktop/share/share.component.ts","webpack:///./src/app/components/main.component.ts","webpack:///./src/app/components/share/sharedDesign.component.ts","webpack:///./src/app/components/test/colorDetection.component.ts","webpack:///./src/app/directives/textElement.directive.ts","webpack:///./src/app/resources/checkout.ts","webpack:///./src/app/resources/clipartContent.ts","webpack:///./src/app/resources/defaults.ts","webpack:///./src/app/resources/designTemplateCategory.ts","webpack:///./src/app/resources/designTemplateTags.ts","webpack:///./src/app/resources/design_colors.ts","webpack:///./src/app/resources/fonts.ts","webpack:///./src/app/resources/textAlignment.ts","webpack:///./src/app/services/designColorsProcessor.service.ts","webpack:///./src/app/services/fontProcessor.service.ts","webpack:///./src/app/services/priceProcessor.service.ts","webpack:///./src/app/services/shareHelper.service.ts","webpack:///./src/app/resources/guid.ts","webpack:///./src async","webpack:///./src/main.ts","webpack:///./src/app/services/elementPositionHelper.service.ts","webpack:///./src/app/app.component.ts","webpack:///./src/app/app.config.service.ts","webpack:///./src/app/app.module.ts","webpack:///./src/app/app.routes.ts","webpack:///./src/app/components/add/clipart.component.ts","webpack:///./src/app/components/choose/chooseSize.component.ts","webpack:///./src/app/components/color/colors.component.ts","webpack:///./src/app/components/common/spinner.component.ts","webpack:///./src/app/components/common/toggleSwitch.component.ts","webpack:///./src/app/components/desktop/add/addOrderNotes.component.ts","webpack:///./src/app/components/desktop/add/designTemplates.component.ts","webpack:///./src/app/components/mobile/add/addClipart.component.ts","webpack:///./src/app/components/mobile/add/addImage.component.ts","webpack:///./src/app/components/mobile/add/addProduct.component.ts","webpack:///./src/app/components/mobile/add/addProovedArtwork.component.ts","webpack:///./src/app/components/mobile/add/addTemplate.component.ts","webpack:///./src/app/components/mobile/add/addText.component.ts","webpack:///./src/app/components/mobile/add/changeItem.component.ts","webpack:///./src/app/components/mobile/add/editImageAndClipart.component.ts","webpack:///./src/app/components/mobile/add/personalization.component.ts","webpack:///./src/app/components/mobile/add/previewYourDesign.component.ts","webpack:///./src/app/components/mobile/add/yourDesigns.component.ts","webpack:///./src/app/components/mobile/add/yourItem.component.ts","webpack:///./src/app/components/mobile/add/yourQuote.component.ts","webpack:///./src/app/components/mobile/common/changeZIndex.component.ts","webpack:///./src/app/components/mobile/common/colorSelection.component.ts","webpack:///./src/app/components/mobile/common/confirmation.popup.component.ts","webpack:///./src/app/components/mobile/common/duplicate.component.ts","webpack:///./src/app/components/mobile/common/header.component.ts","webpack:///./src/app/components/mobile/common/slider.component.ts","webpack:///./src/app/components/mobile/design/designView.component.ts","webpack:///./src/app/components/mobile/design/saveDesign.component.ts","webpack:///./src/app/components/mobile/share/share.component.ts","webpack:///./src/app/components/product/guideline.component.ts","webpack:///./src/app/components/product/productViewLoaded.component.ts","webpack:///./src/app/components/product/saving.component.ts","webpack:///./src/app/directives/AppHeight.directive.ts","webpack:///./src/app/directives/clipartColor.directive.ts","webpack:///./src/app/directives/displaySize.directive.ts","webpack:///./src/app/directives/draggable.directive.ts","webpack:///./src/app/directives/dropdown.directive.ts","webpack:///./src/app/directives/droppable.directive.ts","webpack:///./src/app/directives/editableAreaPosition.directive.ts","webpack:///./src/app/directives/elementSpy.directive.ts","webpack:///./src/app/directives/emptyTextPreventer.directive.ts","webpack:///./src/app/directives/imageElementMap.directive.ts","webpack:///./src/app/directives/imageUpload.directive.ts","webpack:///./src/app/directives/limitInput.directive.ts","webpack:///./src/app/directives/multiSelectDrag.directive.ts","webpack:///./src/app/directives/multiSelectResize.directive.ts","webpack:///./src/app/directives/placeResize.directive.ts","webpack:///./src/app/directives/popupHandler.directive.ts","webpack:///./src/app/directives/positionElement.directive.ts","webpack:///./src/app/directives/resizable.directive.ts","webpack:///./src/app/directives/rotateElement.directive.ts","webpack:///./src/app/directives/screenshotCreator.directive.ts","webpack:///./src/app/directives/selectable.directive.ts","webpack:///./src/app/directives/svgTextElement.directive.ts","webpack:///./src/app/directives/svgTextResizable.directive.ts","webpack:///./src/app/directives/textImageElement.directive.ts","webpack:///./src/app/directives/textResizable.directive.ts","webpack:///./src/app/directives/zeroQuantityPreventer.directive.ts","webpack:///./src/app/directives/zoomSlider.directive.ts","webpack:///./src/app/pipes/categoryMatch.pipe.ts","webpack:///./src/app/pipes/designTypeMatch.pipe.ts","webpack:///./src/app/pipes/fontMatch.pipe.ts","webpack:///./src/app/pipes/personalizationSizeMatch.pipe.ts","webpack:///./src/app/pipes/productColors.pipe.ts","webpack:///./src/app/pipes/productMatch.pipe.ts","webpack:///./src/app/services/s3Processor.service.ts","webpack:///./src/app/pipes/productSizeMatch.pipe.ts","webpack:///./src/app/resources/clipartIcon.ts","webpack:///./src/app/resources/clipart_svgs.ts","webpack:///./src/app/resources/clipart_tags.ts","webpack:///./src/app/resources/price.ts","webpack:///./src/app/resources/signed_urls.ts","webpack:///./src/app/services/createDesign.service.ts","webpack:///./src/app/resources/imageRender.ts","webpack:///./src/app/services/saveProcessor.service.ts","webpack:///./src/app/services/selectedDesignElements.service.ts","webpack:///./src/app/app.component.css"],"names":[],"mappings":"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","file":"main.bf53e3b9169dfe47380b.bundle.js","sourcesContent":["export class Error {\r\n static handleError(error: any){\r\n console.error(error);\r\n let message: string = error.message + \" \" + error.stack;\r\n return message;\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/error.ts","import {Injectable} from \"@angular/core\";\r\nimport {Observable} from 'rxjs/Observable';\r\nimport {Http, Response, Headers, URLSearchParams, RequestOptions} from '@angular/http';\r\nimport 'rxjs/add/operator/map';\r\nimport 'rxjs/add/operator/catch';\r\n\r\nimport {CONFIG} from '../../environments/environment';\r\nimport {Error} from \"../error\";\r\n\r\n@Injectable()\r\nexport class DesignTemplateService {\r\n private templateUrl: string;\r\n private designTemplateUrl: string;\r\n private designTemplateStatusUrl: string;\r\n private headers: Headers;\r\n \r\n constructor(private http: Http) {\r\n this.headers = new Headers();\r\n this.headers.append('Content-Type', 'application/json');\r\n this.templateUrl = CONFIG.api.host + \"/templates/?userToken=\" + CONFIG.userToken;\r\n this.designTemplateUrl = CONFIG.api.host + \"/designTemplates/?userToken=\" + CONFIG.userToken;\r\n this.designTemplateStatusUrl = CONFIG.api.host + \"/designTemplateStatus/?userToken=\" + CONFIG.userToken;\r\n }\r\n \r\n get(isTemplateApprover: boolean, isTemplateDesigner: boolean, id?: number) {\r\n if(id) {\r\n var params = new URLSearchParams();\r\n params.set('id', id.toString());\r\n if(!isTemplateApprover && !isTemplateDesigner) {\r\n return this.http.get(this.templateUrl, {search: params})\r\n .map(response => response.json())\r\n .catch(this.handleError);\r\n }\r\n else {\r\n return this.http.get(this.designTemplateUrl, {search: params})\r\n .map(response => response.json())\r\n .catch(this.handleError);\r\n }\r\n }\r\n else {\r\n return this.getAll();\r\n }\r\n }\r\n\r\n getByTagId(tagId?: number) {\r\n if(tagId) {\r\n var params = new URLSearchParams();\r\n params.set('tagId', tagId.toString());\r\n params.set('getByTag', 'true');\r\n return this.http.get(this.designTemplateUrl, {search: params})\r\n .map(response => response.json())\r\n .catch(this.handleError);\r\n }\r\n }\r\n\r\n getByTagName(name: string) {\r\n if(name) {\r\n var params = new URLSearchParams();\r\n params.set('name', name);\r\n params.set('getByTag', 'true');\r\n return this.http.get(this.designTemplateUrl, {search: params})\r\n .map(response => response.json())\r\n .catch(this.handleError);\r\n }\r\n }\r\n\r\n getName(name: string) {\r\n if(name) {\r\n var params = new URLSearchParams();\r\n params.set('name', name.toString());\r\n return this.http.get(this.designTemplateUrl, {search: params})\r\n .map(response => response.json())\r\n .catch(this.handleError);\r\n }\r\n }\r\n \r\n getAll() {\r\n return this.http.get(this.designTemplateUrl)\r\n .map(response => response.json())\r\n .catch(this.handleError);\r\n }\r\n \r\n post(designTemplate: any) {\r\n let options = new RequestOptions({headers: this.headers});\r\n return this.http.post(this.designTemplateUrl, JSON.stringify(designTemplate), options)\r\n .map((res) => res.json())\r\n .catch(this.handleError);\r\n }\r\n\r\n put(designTemplate: any) {\r\n let options = new RequestOptions({headers: this.headers});\r\n return this.http.put(this.designTemplateUrl, JSON.stringify(designTemplate), options)\r\n .map((res) => res.json())\r\n .catch(this.handleError);\r\n }\r\n\r\n updateStatus(id: any, status: any) {\r\n let options = new RequestOptions({headers: this.headers});\r\n let model = {\r\n id: id,\r\n status: status\r\n }\r\n return this.http.post(this.designTemplateStatusUrl, JSON.stringify(model), options)\r\n .map((res) => res.json())\r\n .catch(this.handleError);\r\n }\r\n \r\n delete(id: number) {\r\n if(id) {\r\n let options = new RequestOptions({headers: this.headers});\r\n let url = this.designTemplateUrl + \"&id=\" + id.toString();\r\n return this.http.delete(url, options)\r\n .catch(this.handleError);\r\n }\r\n }\r\n \r\n private handleError (error: any) {\r\n // TODO: Log this error to the server.\r\n return Observable.throw(Error.handleError(error) || 'Server error');\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/resources/designTemplates.ts","import {Injectable} from \"@angular/core\";\r\nimport {Observable} from \"rxjs/Observable\";\r\n\r\nimport {DesignsService} from \"../resources/designs\";\r\nimport {SelectedDesignColorsService} from \"../services/selectedDesignColors.service\";\r\ndeclare var _ : any; \r\n\r\n@Injectable()\r\nexport class LoadDesignHelperService {\r\n // TODO: Test this service\r\n constructor(private designsService: DesignsService){}\r\n \r\n XHR (designId: number){\r\n return this.designsService.get(designId);\r\n }\r\n\r\n OrderDesign(designId: number) {\r\n return this.designsService.getOrderDesign(designId);\r\n }\r\n \r\n findSavedProduct(savedProductId: any, products: any) {\r\n var savedProduct: any;\r\n savedProduct = _.findWhere(products, {\r\n id: savedProductId\r\n });\r\n return savedProduct;\r\n }\r\n \r\n findSavedColor(savedColorId: any, colors: any) {\r\n var savedColor: any;\r\n savedColor = _.findWhere(colors, {\r\n id: savedColorId\r\n });\r\n return savedColor;\r\n }\r\n\r\n findColor(colorId: any, colors: any) {\r\n var color: any;\r\n color = _.findWhere(colors, {\r\n id: colorId\r\n });\r\n return color;\r\n }\r\n \r\n findSize(savedSizeId: any, sizes: any) {\r\n var size: any;\r\n size = _.findWhere(sizes, {\r\n id: savedSizeId\r\n });\r\n return size;\r\n }\r\n \r\n findSavedProductView(savedProductViewId: any, views: any) {\r\n var savedProductView: any;\r\n savedProductView = _.findWhere(views, {\r\n id: savedProductViewId\r\n });\r\n return savedProductView;\r\n }\r\n\r\n findSavedProductViewByLocationId(locationId: any, views: any) {\r\n var savedProductView: any;\r\n savedProductView = _.findWhere(views, {\r\n locationId: locationId\r\n });\r\n return savedProductView;\r\n }\r\n \r\n findSavedFont(fontId: any, fonts: any) {\r\n var savedFont: any;\r\n savedFont = _.findWhere(fonts, {\r\n id: fontId\r\n });\r\n return savedFont;\r\n }\r\n \r\n findSavedDesignColors(designColorId: any, designColors: any) {\r\n var savedDesignColor: any;\r\n savedDesignColor = _.findWhere(designColors, {\r\n id: designColorId\r\n });\r\n return savedDesignColor;\r\n }\r\n \r\n findSavedDesignElementColors(colorIds: any, designColors: any) {\r\n var colorId: any, colors: any, savedColor: any, i: any, len: any;\r\n colors = [];\r\n for (i = 0, len = colorIds.length; i < len; i++) {\r\n colorId = colorIds[i];\r\n savedColor = this.findSavedDesignColors(colorId, designColors);\r\n colors.push(savedColor);\r\n }\r\n return colors;\r\n }\r\n \r\n clearDefaultQuantities(savedColorSizes: any, sizes: any) {\r\n var allSavedColorSizeIds: any, unsavedSize: any, unsavedSizes: any, i: any, len: any, results: any;\r\n allSavedColorSizeIds = _.pluck(savedColorSizes, 'sizeId');\r\n unsavedSizes = _.reject(sizes, function(size: any) {\r\n return _.contains(allSavedColorSizeIds, size.id);\r\n });\r\n results = [];\r\n for (i = 0, len = unsavedSizes.length; i < len; i++) {\r\n unsavedSize = unsavedSizes[i];\r\n results.push(unsavedSize.quantity = 0);\r\n }\r\n return results;\r\n }\r\n \r\n setColorSizes(savedColorSizes: any, sizes: any) {\r\n let savedColorSize: any, size: any, i: any, len: any;\r\n let colorSizes: any = JSON.parse(JSON.stringify(sizes));\r\n for (i = 0, len = savedColorSizes.length; i < len; i++) {\r\n savedColorSize = savedColorSizes[i];\r\n size = this.findSize(savedColorSize.id, colorSizes);\r\n if(size) {\r\n size.quantity = savedColorSize.quantity;\r\n }\r\n }\r\n return colorSizes;\r\n }\r\n \r\n clearSelectionColorQuantities(selectionColor: any) {\r\n var i: any, len: any;\r\n for(i = 0, len = selectionColor.sizes.length; i < len; i++) {\r\n var size = selectionColor.sizes[i];\r\n size.quantity = 0;\r\n }\r\n }\r\n\r\n setSelectionDefaultQuantity(lastSelectedColor: any, selection: any) {\r\n selection.sizes = _.map(lastSelectedColor.sizes, _.clone);\r\n }\r\n \r\n removeColorSelection(selection: any, selectedColor: any) {\r\n if(selectedColor) {\r\n selection.splice(_.indexOf(selection, _.findWhere(selection, {id: selectedColor.id})), 1);\r\n }\r\n }\r\n \r\n getColor(product: any, colorId: any){\r\n var color: any;\r\n color = _.where(product.colors, {\r\n id: colorId\r\n });\r\n \r\n var selectionColor: any = {\r\n id: color[0].id,\r\n hex: color[0].hex,\r\n name: color[0].name,\r\n sizes: _.map(product.sizes, _.clone) \r\n };\r\n this.clearSelectionColorQuantities(selectionColor);\r\n return selectionColor;\r\n }\r\n\r\n getImageSource(product: any, colorId: any) {\r\n if(product) {\r\n var color: any;\r\n color = _.findWhere(product.colors, {\r\n id: colorId\r\n });\r\n\r\n if(color) {\r\n return color.mainImageSource;\r\n }\r\n }\r\n return \"\";\r\n }\r\n \r\n getColorSelection(product: any, selection: any, color: any) {\r\n var findColor: any;\r\n var selectionColor: any;\r\n \r\n findColor = _.where(selection, {\r\n id: color.id \r\n });\r\n \r\n if(findColor.length === 0) {\r\n selectionColor = {\r\n id: color.id,\r\n hex: color.hex,\r\n name: color.name,\r\n sizes: _.map(product.sizes, _.clone),\r\n showPopup: false,\r\n showPersonalizationQuantityWarning: false,\r\n imageSource: color.mainImageSource,\r\n personalizationGroups: [],\r\n };\r\n this.clearSelectionColorQuantities(selectionColor);\r\n }\r\n return selectionColor;\r\n }\r\n \r\n findSizesFromSelection(product: any, colorId: any, selection: any){\r\n var color: any;\r\n color = _.where(selection, {\r\n id: colorId\r\n });\r\n if(color.length === 0) {\r\n color = this.getColor(product, colorId);\r\n selection.push(color);\r\n }\r\n else {\r\n color = color[0];\r\n }\r\n return color.sizes;\r\n }\r\n \r\n setOrderSelection(product: any, savedColorSizes: any, selection: any){\r\n let savedColorSize: any, size: any, i: any, len: any, sizes: any;\r\n \r\n selection.splice(0, selection.length);\r\n for (i = 0, len = savedColorSizes.length; i < len; i++) {\r\n savedColorSize = savedColorSizes[i];\r\n sizes = this.findSizesFromSelection(product, savedColorSize.colorId, selection);\r\n size = this.findSize(savedColorSize.sizeId, sizes);\r\n if(size) {\r\n size.quantity = savedColorSize.quantity;\r\n }\r\n }\r\n return this.clearDefaultQuantities(savedColorSizes, sizes);\r\n }\r\n \r\n getTotalQuantity(savedColorSizes: any) {\r\n let savedColorSize: any, i: any, len: any;\r\n let totalCount = 0;\r\n for (i = 0, len = savedColorSizes.length; i < len; i++) {\r\n savedColorSize = savedColorSizes[i];\r\n totalCount += savedColorSize.quantity;\r\n }\r\n return totalCount;\r\n }\r\n \r\n prepDesignElements(args: any) {\r\n var designElements: any, savedDesignElement: any, i: any, len: any, ref: any;\r\n designElements = [];\r\n ref = args.savedView.designElements;\r\n for (i = 0, len = ref.length; i < len; i++) {\r\n savedDesignElement = JSON.parse(JSON.stringify(ref[i]));\r\n if(args.isPromo && savedDesignElement.isPersonalization) {\r\n continue;\r\n }\r\n savedDesignElement.font = this.findSavedFont(savedDesignElement.fontId, args.fonts);\r\n if (savedDesignElement.colorId) {\r\n savedDesignElement.color = this.findSavedDesignColors(savedDesignElement.colorId, args.designColors);\r\n }\r\n if (savedDesignElement.colors) {\r\n savedDesignElement.colors = this.findSavedDesignElementColors(savedDesignElement.colors, args.designColors);\r\n }\r\n designElements.push(savedDesignElement);\r\n }\r\n return designElements;\r\n }\r\n\r\n prepDesignView(productView: any, savedView: any) {\r\n if(productView && savedView) {\r\n productView.borderBox = {\r\n position : {\r\n left: savedView.borderBox.position.left,\r\n top:savedView.borderBox.position.top, \r\n },\r\n scaleX: savedView.borderBox.scaleX? savedView.borderBox.scaleX : 1,\r\n scaleY: savedView.borderBox.scaleY? savedView.borderBox.scaleY : 1,\r\n size: {\r\n height: savedView.borderBox.size.height? savedView.borderBox.size.height : 0,\r\n width: savedView.borderBox.size.width? savedView.borderBox.size.width : 0,\r\n }\r\n }\r\n productView.screenshotSource = savedView.screenshotSource;\r\n productView.artboardMoved = savedView.artboardMoved;\r\n productView.size = {\r\n height: savedView.size.height? savedView.size.height : 0,\r\n width: savedView.size.width? savedView.size.width : 0,\r\n };\r\n if(savedView.imageSize) {\r\n productView.imageSize = {\r\n height: savedView.imageSize.height,\r\n width: savedView.imageSize.width,\r\n }\r\n }\r\n if(savedView.imageContainerSize) {\r\n productView.imageContainerSize = {\r\n height: savedView.imageContainerSize.height,\r\n width: savedView.imageContainerSize.width,\r\n }\r\n }\r\n } \r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/services/loadDesignHelper.service.ts","import {Injectable} from \"@angular/core\";\r\nimport {Observable} from 'rxjs/Observable';\r\nimport {Http, Response, Headers, URLSearchParams, RequestOptions} from '@angular/http';\r\nimport 'rxjs/add/operator/map';\r\nimport 'rxjs/add/operator/catch';\r\n\r\nimport {CONFIG} from '../../environments/environment';\r\nimport {SavedDesignModel} from \"../models/savedDesign.model\";\r\nimport {Error} from \"../error\";\r\n\r\ndeclare var $: any;\r\n\r\n@Injectable()\r\nexport class TextRenderService {\r\n private url: string;\r\n private headers: Headers;\r\n \r\n constructor(private http: Http) {\r\n this.headers = new Headers();\r\n this.headers.append('Content-Type', 'application/json');\r\n this.url = CONFIG.api.host + \"/renderText/?userToken=\" + CONFIG.userToken;\r\n }\r\n \r\n get(designElement: any) {\r\n if(designElement) {\r\n var params = new URLSearchParams();\r\n let clonedElement = this.getClonedElement(designElement);\r\n params.set('designElementModel', JSON.stringify(clonedElement));\r\n return this.http.get(this.url, {search: params})\r\n .catch(this.handleError);\r\n }\r\n }\r\n\r\n post(designElement: any) {\r\n let options = new RequestOptions({headers: this.headers});\r\n let clonedElement = this.getClonedElement(designElement);\r\n return this.http.post(this.url, JSON.stringify(clonedElement), options)\r\n .map((res) => res.json())\r\n .catch(this.handleError);\r\n }\r\n\r\n private getClonedElement(designElement: any) {\r\n let $el = designElement.$el;\r\n let source = designElement.source;\r\n designElement.$el = null;\r\n designElement.source = null;\r\n let clonedElement = $.extend(true, {}, designElement);\r\n designElement.$el = $el;\r\n designElement.source = source;\r\n return clonedElement;\r\n }\r\n \r\n private handleError (error: any) {\r\n // TODO: Log this error to the server.\r\n return Observable.throw(Error.handleError(error) || 'Server error');\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/resources/textRender.ts","import { Injectable } from \"@angular/core\";\r\nimport { Observable, Observer } from \"rxjs\";\r\nimport { AppEvents } from \"../appEvents\";\r\nimport { ImageRenderService } from \"../resources/imageRender\";\r\nimport { ProductsHelperService } from \"./productsHelper.service\";\r\nimport { GuidService } from \"../resources/guid\";\r\nimport { DecorationGroupHelperService } from \"./decorationGroupHelper.service\";\r\n\r\n@Injectable()\r\nexport class ImageHelperService {\r\n \r\n appEvents: AppEvents = new AppEvents();\r\n \r\n constructor(protected renderImageService: ImageRenderService, protected productsHelper: ProductsHelperService,\r\n protected guidService: GuidService, protected decorationGroupHelper: DecorationGroupHelperService){\r\n \r\n }\r\n\r\n getDesignElementFromImage(source: any, imageObject: any, guid: any, productView: any, product: any, designElement: any,\r\n isEmbroidery: any, desktop: boolean) {\r\n \r\n return Observable.create((observer: any) => {\r\n var myImg = new Image();\r\n myImg.onload = () => {\r\n let width = myImg.width;\r\n let height = myImg.height;\r\n let scale = 1;\r\n if(width > 100 && width > height) {\r\n scale = 100 / width;\r\n }\r\n else if(height > 100) {\r\n scale = 100 / height;\r\n }\r\n width = (width * scale) * 100 / productView.borderBox.size.width ;\r\n height = (height * scale) * 100 / productView.borderBox.size.height;\r\n\r\n designElement.id = guid;\r\n designElement.type = \"image\";\r\n designElement.originalSource = source;\r\n designElement.source = imageObject.url;\r\n designElement.originalWidth = imageObject.width;\r\n designElement.originalHeight = imageObject.height;\r\n designElement.originalRatio = imageObject.width / imageObject.height;\r\n designElement.lowResolution = false;\r\n designElement.maxEmbroiderySizeReached = false;\r\n designElement.sourceWithoutBackground = \"\";\r\n designElement.isFullColor = product.printAvailable;\r\n designElement.isEmbroidery = (isEmbroidery)? isEmbroidery : this.productsHelper.isEmbroideryOnly(product);\r\n designElement.isPromo = product.promoAvailable;\r\n designElement.isArtworkEmbroidered = isEmbroidery;\r\n\r\n designElement.colorHex = \"\";\r\n designElement.fontSize = 0;\r\n if(!designElement.colors) {\r\n designElement.colors = [];\r\n }\r\n designElement.foundColors = imageObject.colors;\r\n designElement.totalImageColors = imageObject.totalImageColors;\r\n designElement.isArtworkColorChanged = false;\r\n designElement.locationId = productView.locationId;\r\n designElement.rotationAngle = \"0\";\r\n designElement.rotationPosition = {\r\n position: {\r\n top: 0,\r\n left: 0\r\n },\r\n isUpdated: false\r\n };\r\n designElement.position = {\r\n top: 0,\r\n left: 0\r\n };\r\n designElement.size = {\r\n width: width,\r\n height: height\r\n };\r\n designElement.borderBox = {\r\n position: {\r\n left: 0,\r\n top: 0,\r\n },\r\n scaleX: 0,\r\n scaleY: 0,\r\n size: {\r\n width: width,\r\n height: height\r\n }\r\n };\r\n designElement.zIndex = productView.designElements.length * 100;\r\n designElement.removeBackground = false;\r\n designElement.pixelsPerInch = productView.borderBox.size.pixelsPerInch;\r\n designElement.isLocked = false;\r\n designElement.isPercent = true;\r\n designElement.isImageLoaded = desktop ? true : false;\r\n observer.next(designElement);\r\n }\r\n myImg.src = imageObject.url;\r\n });\r\n }\r\n\r\n addImage(product: any, productView: any, source: any, desktop: boolean, isEmbroidery: any) {\r\n var designElement: any;\r\n return Observable.create((observer: any) => {\r\n this.guidService.getNewGuid().subscribe((guid: any) => {\r\n // check if the source image needs rendering\r\n this.renderImageService.getByPixels(source, 5, product.maxPrintColors).subscribe((obj) => {\r\n if(!obj.isMediaCorrupted) {\r\n designElement = {};\r\n this.getDesignElementFromImage(source, obj, guid, productView, product, designElement, isEmbroidery, desktop).subscribe((designElement: any)=> {\r\n this.appEvents.emitCurrentDesignElementChange(designElement);\r\n productView.designElements.push(designElement);\r\n this.decorationGroupHelper.addElement(designElement, productView);\r\n this.appEvents.emitProductViewDesignElementsChange(productView.designElements);\r\n this.appEvents.emitCurrentDesignChanged(true);\r\n this.appEvents.emitSaveState();\r\n if(!desktop) {\r\n this.appEvents.emitOpenModalChange(\"mobileMain\");\r\n }\r\n observer.next(true);\r\n });\r\n }\r\n else {\r\n observer.next(false);\r\n }\r\n });\r\n });\r\n });\r\n\r\n \r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/services/imageHelper.service.ts","import {Injectable} from '@angular/core';\r\nimport {Observable} from 'rxjs/Observable';\r\nimport {Http, URLSearchParams, Response} from '@angular/http';\r\nimport 'rxjs/add/operator/map';\r\nimport 'rxjs/add/operator/catch';\r\n\r\nimport {CONFIG} from '../../environments/environment';\r\nimport {Error} from \"../error\";\r\n\r\n@Injectable()\r\nexport class CategoryService {\r\n private categoryUrl : string;\r\n \r\n constructor(private http: Http){\r\n this.categoryUrl = CONFIG.api.host + \"/category\";\r\n }\r\n \r\n getCategories(){\r\n return this.http.get(this.categoryUrl)\r\n .map((res: Response) => res.json())\r\n .catch(this.handleError);\r\n }\r\n\r\n getSimilarProductsByCategories(productId: any, noOfColors: any, locationId: any, decorationType: any) {\r\n var params = new URLSearchParams();\r\n params.set('productId', productId);\r\n params.set('noOfColors', noOfColors);\r\n params.set('locationId', locationId);\r\n params.set('decorationType', decorationType);\r\n return this.http.get(this.categoryUrl + \"/GetSimilar\", {search: params})\r\n .map((res: Response) => res.json())\r\n .catch(this.handleError);\r\n }\r\n \r\n private handleError (error: any) {\r\n // TODO: Log this error to the server.\r\n return Observable.throw(Error.handleError(error) || 'Server error');\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/resources/category.ts","import {Injectable} from \"@angular/core\";\r\nimport {Observable} from 'rxjs/Observable';\r\nimport {Http, Response, Headers, URLSearchParams, RequestOptions} from '@angular/http';\r\nimport 'rxjs/add/operator/map';\r\nimport 'rxjs/add/operator/catch';\r\n\r\nimport {CONFIG} from '../../environments/environment';\r\nimport {SavedDesignModel} from \"../models/savedDesign.model\";\r\nimport {Error} from \"../error\";\r\n\r\n@Injectable()\r\nexport class DesignsService {\r\n private designsUrl: string;\r\n private orderDesignUrl: string;\r\n private headers: Headers;\r\n \r\n constructor(private http: Http) {\r\n this.headers = new Headers();\r\n this.headers.append('Content-Type', 'application/json');\r\n this.designsUrl = CONFIG.api.host + \"/Designs/?userToken=\" + CONFIG.userToken;\r\n this.orderDesignUrl = CONFIG.api.host + \"/OrderDesign?userToken=\" + CONFIG.userToken;\r\n }\r\n \r\n get(id?: number) {\r\n if(id) {\r\n var params = new URLSearchParams();\r\n params.set('id', id.toString());\r\n return this.http.get(this.designsUrl, {search: params})\r\n .map(response => response.json())\r\n .catch(this.handleError);\r\n }\r\n else {\r\n return this.getAll();\r\n }\r\n }\r\n\r\n getOrderDesign(id?: number) {\r\n if(id) {\r\n var params = new URLSearchParams();\r\n params.set('id', id.toString());\r\n return this.http.get(this.orderDesignUrl, {search: params})\r\n .map(response => response.json())\r\n .catch(this.handleError);\r\n }\r\n return null;\r\n }\r\n\r\n getName(name: string) {\r\n if(name) {\r\n var params = new URLSearchParams();\r\n params.set('name', name.toString());\r\n return this.http.get(this.designsUrl, {search: params})\r\n .map(response => response.json())\r\n .catch(this.handleError);\r\n }\r\n }\r\n \r\n getAll() {\r\n return this.http.get(this.designsUrl)\r\n .map(response => response.json())\r\n .catch(this.handleError);\r\n }\r\n \r\n post(design: SavedDesignModel) {\r\n let options = new RequestOptions({headers: this.headers});\r\n return this.http.post(this.designsUrl, JSON.stringify(design), options)\r\n .map((res) => res.json())\r\n .catch(this.handleError);\r\n }\r\n \r\n delete(id: number) {\r\n if(id) {\r\n let options = new RequestOptions({headers: this.headers});\r\n let url = this.designsUrl + \"&id=\" + id.toString();\r\n return this.http.delete(url, options)\r\n .catch(this.handleError);\r\n }\r\n }\r\n \r\n private handleError (error: any) {\r\n // TODO: Log this error to the server.\r\n return Observable.throw(Error.handleError(error) || 'Server error');\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/resources/designs.ts","import {Injectable} from '@angular/core';\r\nimport {Observable} from 'rxjs/Observable';\r\nimport {Http, URLSearchParams, Response} from '@angular/http';\r\nimport 'rxjs/add/operator/map';\r\nimport 'rxjs/add/operator/catch';\r\n\r\nimport {CONFIG} from '../../environments/environment';\r\nimport {Error} from \"../error\";\r\n\r\n@Injectable()\r\nexport class SearchService {\r\n private url : string;\r\n \r\n constructor(private http: Http){\r\n this.url = CONFIG.api.host + \"/search\";\r\n }\r\n \r\n get(keywords: string){\r\n var params = new URLSearchParams();\r\n params.set('text', keywords);\r\n return this.http.get(this.url, {search: params})\r\n .map((res: Response) => res.json())\r\n .catch(this.handleError);\r\n }\r\n \r\n private handleError (error: any) {\r\n // TODO: Log this error to the server.\r\n return Observable.throw(Error.handleError(error) || 'Server error');\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/resources/search.ts","import {Injectable} from \"@angular/core\";\r\nimport {Observable} from \"rxjs/Observable\";\r\nimport {Http, URLSearchParams, Response} from \"@angular/http\";\r\nimport \"rxjs/add/operator/map\";\r\nimport \"rxjs/add/operator/catch\";\r\n\r\nimport {CONFIG} from \"../../environments/environment\";\r\nimport {Error} from \"../error\";\r\n\r\n@Injectable()\r\nexport class ClipartCategoryService {\r\n private clipartCategoryUrl: string;\r\n \r\n constructor(private http: Http){\r\n this.clipartCategoryUrl = CONFIG.api.host + \"/clipartcategory\";\r\n }\r\n \r\n getAll(){\r\n return this.http.get(this.clipartCategoryUrl)\r\n .map((res: Response) => res.json())\r\n .catch(this.handleError);\r\n }\r\n \r\n private handleError (error: any) {\r\n // TODO: Log this error to the server.\r\n return Observable.throw(Error.handleError(error) || 'Server error');\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/resources/clipartCategory.ts","import {Injectable} from \"@angular/core\";\r\nimport {Observable} from \"rxjs/Observable\";\r\nimport {Http, URLSearchParams, Response} from \"@angular/http\";\r\nimport \"rxjs/add/operator/map\";\r\nimport \"rxjs/add/operator/catch\";\r\n\r\nimport {CONFIG} from \"../../environments/environment\";\r\nimport {Error} from \"../error\";\r\n\r\n\r\n// This service gets the icons from the noun project site.\r\n\r\n@Injectable()\r\nexport class ClipartIconsService {\r\n private clipartUrl: string;\r\n private limit: number;\r\n \r\n constructor(private http: Http) {\r\n this.clipartUrl = CONFIG.api.host + \"/clipart/icons/\";\r\n this.limit = CONFIG.clipart.limit;\r\n }\r\n \r\n get(searchTerm: string, offset: number) {\r\n if(searchTerm) {\r\n \r\n let url = this.clipartUrl + searchTerm + \"/\" + this.limit + \"/\" + offset;\r\n var params = new URLSearchParams();\r\n \r\n return this.http.get(url)\r\n .map((res: Response) => res.json())\r\n .catch(this.handleError);\r\n }\r\n }\r\n \r\n private handleError (error: any) {\r\n // TODO: Log this error to the server.\r\n return Observable.throw(Error.handleError(error) || 'Server error');\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/resources/clipartIcons.ts","import {Injectable} from \"@angular/core\";\r\nimport {Observable} from \"rxjs/Observable\";\r\nimport {Http, URLSearchParams, Response} from \"@angular/http\";\r\nimport \"rxjs/add/operator/map\";\r\nimport \"rxjs/add/operator/catch\";\r\n\r\nimport {CONFIG} from \"../../environments/environment\";\r\nimport {Error} from \"../error\";\r\n\r\n@Injectable()\r\nexport class ClipartSearchTermsService {\r\n private clipartSearchTermsUrl: string;\r\n \r\n constructor(private http: Http){\r\n this.clipartSearchTermsUrl = CONFIG.api.host + \"/clipartSearchTerms\";\r\n }\r\n \r\n get(id?: number){\r\n if(id){\r\n var params = new URLSearchParams();\r\n params.set(\"id\", id.toString());\r\n \r\n return this.http.get(this.clipartSearchTermsUrl, {search: params})\r\n .map((res: Response) => res.json())\r\n .catch(this.handleError);\r\n }\r\n else{\r\n return this.getAll();\r\n }\r\n }\r\n \r\n getAll(){\r\n return this.http.get(this.clipartSearchTermsUrl)\r\n .map((res: Response) => res.json())\r\n .catch(this.handleError);\r\n }\r\n \r\n \r\n private handleError (error: any) {\r\n // TODO: Log this error to the server.\r\n return Observable.throw(Error.handleError(error) || 'Server error');\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/resources/clipartSearchTerms.ts","import {Injectable} from '@angular/core';\r\nimport {Observable} from 'rxjs/Observable';\r\nimport {Http, Response} from '@angular/http';\r\nimport 'rxjs/add/operator/map';\r\nimport 'rxjs/add/operator/catch';\r\n\r\nimport {CONFIG} from '../../environments/environment';\r\nimport {Error} from \"../error\";\r\n\r\n@Injectable()\r\nexport class CreateDesignService {\r\n private createDesignUrl : string;\r\n \r\n constructor(private http: Http){\r\n this.createDesignUrl = CONFIG.api.host + \"/CreateDesign?guid=\";\r\n }\r\n \r\n getDesignByGroupId(groupId: any) {\r\n let url = this.createDesignUrl + groupId + \"&userToken=\" + CONFIG.userToken;\r\n return this.http.get(url)\r\n .map((res: Response) => res.json())\r\n .catch(this.handleError);\r\n }\r\n \r\n private handleError (error: any) {\r\n // TODO: Log this error to the server.\r\n return Observable.throw(Error.handleError(error) || 'Server error');\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/resources/createDesign.ts","import {Injectable} from \"@angular/core\";\r\nimport {Observable} from \"rxjs/Observable\";\r\nimport {Http, Response, Headers, URLSearchParams, RequestOptions} from '@angular/http';\r\nimport 'rxjs/add/operator/map';\r\nimport {CONFIG} from '../../environments/environment';\r\nimport {Error} from \"../error\";\r\n\r\n@Injectable()\r\nexport class CustomerService {\r\n private designsUrl: string;\r\n private headers: Headers;\r\n \r\n constructor(private http: Http) {\r\n this.headers = new Headers();\r\n this.headers.append('Content-Type', 'application/json');\r\n this.designsUrl = CONFIG.api.host + \"/customer/?userToken=\" + CONFIG.userToken;\r\n }\r\n\r\n get() {\r\n return this.http.get(this.designsUrl)\r\n .map(response => response.json())\r\n .catch(this.handleError);\r\n }\r\n \r\n private handleError (error: any) {\r\n // TODO: Log this error to the server.\r\n return Observable.throw(Error.handleError(error) || 'Server error');\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/resources/customer.service.ts","import {Injectable} from \"@angular/core\";\r\nimport {Observable} from \"rxjs/Observable\";\r\nimport {Http, URLSearchParams, Response} from \"@angular/http\";\r\nimport \"rxjs/add/operator/map\";\r\nimport \"rxjs/add/operator/catch\";\r\n\r\nimport {CONFIG} from \"../../environments/environment\";\r\nimport {Error} from \"../error\";\r\n\r\n@Injectable()\r\nexport class PersonalizationSizeService {\r\n private url: string;\r\n private personalizationSizes: any;\r\n \r\n constructor(private http: Http) {\r\n this.url = CONFIG.api.host + \"/personalizationSize\";\r\n }\r\n\r\n setSizes(sizes: any) {\r\n this.personalizationSizes = sizes;\r\n }\r\n\r\n getSizes() {\r\n return this.personalizationSizes;\r\n }\r\n \r\n get() {\r\n return this.http.get(this.url)\r\n .map((res: Response) => res.json())\r\n .catch(this.handleError);\r\n }\r\n \r\n private handleError (error: any) {\r\n // TODO: Log this error to the server.\r\n return Observable.throw(Error.handleError(error) || 'Server error');\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/resources/personalizationSizes.ts","import {Injectable} from '@angular/core';\r\nimport {Observable} from 'rxjs/Observable';\r\nimport {Http, URLSearchParams, Response} from '@angular/http';\r\nimport 'rxjs/add/operator/map';\r\nimport 'rxjs/add/operator/catch';\r\n\r\nimport {CONFIG} from '../../environments/environment';\r\nimport {ProductModel} from '../models/product.model';\r\nimport {Error} from \"../error\";\r\n\r\n@Injectable()\r\nexport class ProductsService {\r\n private productsUrl : string;\r\n \r\n constructor(private http: Http){\r\n this.productsUrl = CONFIG.api.host + \"/products?userToken=\" + CONFIG.userToken;\r\n }\r\n \r\n getProducts(id?: string){\r\n if(id){\r\n var params = new URLSearchParams();\r\n params.set('id', id);\r\n return this.http.get(this.productsUrl , { search: params })\r\n .map(response => {\r\n return > response.json();\r\n })\r\n // .map((products: Array) => {\r\n // let result: Array = [];\r\n // if(products){\r\n // products.forEach((product) =>{\r\n // result.push(\r\n // new ProductModel(product.brand, product.category, product.colors,\r\n // product.description, product.printAvailable, product.embroideryAvailable,\r\n // product.id, product.mainImageSource, product.name, product.sizes, product.views)\r\n // ); \r\n // });\r\n // }\r\n // return result;\r\n // })\r\n // TODO : comment the .do call\r\n //.do(data => console.log(data))\r\n .catch(this.handleError);\r\n }\r\n else{\r\n return this.getAll();\r\n }\r\n }\r\n \r\n getAll(){\r\n \r\n return this.http.get(this.productsUrl)\r\n .map(response => response.json())\r\n // // .map((products: Object[]) => {\r\n // // let result: Array = [];\r\n // // if(products){\r\n // // products.forEach((product) =>{\r\n // // let p: ProductModel = product;\r\n // // result.push(\r\n // // new ProductModel(p.brand, p.category, p.colors,\r\n // // p.description, p.printAvailable, p.embroideryAvailable,\r\n // // p.id, p.mainImageSource, p.name, p.sizes, p.views)\r\n // // ); \r\n // // });\r\n // // }\r\n // // return result;\r\n // // })\r\n // // TODO : comment the .do call\r\n // //.do(data => console.log(data))\r\n .catch(this.handleError);\r\n }\r\n \r\n private handleError (error: any) {\r\n // TODO: Log this error to the server.\r\n return Observable.throw(Error.handleError(error) || 'Server error');\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/resources/products.ts","import {Injectable} from \"@angular/core\";\r\nimport {Observable} from \"rxjs/Observable\";\r\nimport {Http, Response} from \"@angular/http\";\r\nimport \"rxjs/add/operator/map\";\r\nimport \"rxjs/add/operator/catch\";\r\n\r\nimport {CONFIG} from \"../../environments/environment\";\r\nimport {Error} from \"../error\";\r\n\r\n@Injectable() \r\nexport class ProofedArtworkService {\r\n private url: string;\r\n\r\n constructor(private http: Http) {\r\n this.url = CONFIG.api.host + \"/ProofedArtwork/?userToken=\" + CONFIG.userToken;\r\n }\r\n\r\n get() {\r\n return this.http.get(this.url)\r\n .map((res: Response) => res.json())\r\n .catch(this.handleError);\r\n }\r\n\r\n private handleError (error: any) {\r\n // TODO: Log this error to the server.\r\n return Observable.throw(Error.handleError(error) || 'Server error');\r\n }\r\n}\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/resources/proofedArtwork.ts","import {Injectable} from \"@angular/core\";\r\nimport {Observable} from 'rxjs/Observable';\r\nimport {Http, Response, Headers, URLSearchParams, RequestOptions} from '@angular/http';\r\nimport 'rxjs/add/operator/map';\r\nimport 'rxjs/add/operator/catch';\r\nimport {CONFIG} from '../../environments/environment';\r\nimport {Error} from \"../error\";\r\n\r\n@Injectable()\r\nexport class RemoveBackgroundService {\r\n private url: string;\r\n \r\n constructor(private http: Http) {\r\n this.url = CONFIG.api.host + \"/removeBackground/?userToken=\" + CONFIG.userToken;\r\n }\r\n \r\n get(url: any) {\r\n var params = new URLSearchParams();\r\n params.set('url', url);\r\n return this.http.get(this.url, {search: params})\r\n .map(response => response.json())\r\n .catch(this.handleError);\r\n }\r\n \r\n private handleError (error: any) {\r\n // TODO: Log this error to the server.\r\n return Observable.throw(Error.handleError(error) || 'Server error');\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/resources/removeBackground.ts","import {Injectable} from \"@angular/core\";\r\nimport {Observable} from \"rxjs/Observable\";\r\nimport {Http, URLSearchParams, Headers, Response, RequestOptions} from \"@angular/http\";\r\nimport \"rxjs/add/operator/map\";\r\nimport \"rxjs/add/operator/catch\";\r\n\r\nimport {SavedDesignModel} from \"../models/savedDesign.model\";\r\nimport {CONFIG} from \"../../environments/environment\";\r\nimport {Error} from \"../error\";\r\n\r\n@Injectable()\r\nexport class SharedDesignsService{\r\n private designsUrl: string;\r\n private headers: Headers;\r\n\r\n constructor(private http: Http){\r\n this.headers = new Headers();\r\n this.headers.append('Content-Type', 'application/json');\r\n this.designsUrl = CONFIG.api.host + \"/SharedDesigns?userToken=\" + CONFIG.userToken;\r\n }\r\n \r\n get(id?: number){\r\n if(id){\r\n var params = new URLSearchParams();\r\n params.set(\"id\", id.toString());\r\n \r\n return this.http.get(this.designsUrl, {search: params})\r\n .map((res: Response) => res.json())\r\n .catch(this.handleError);\r\n }\r\n }\r\n\r\n post(design: any) {\r\n let options = new RequestOptions({headers: this.headers});\r\n return this.http.post(this.designsUrl, JSON.stringify(design), options)\r\n .map((res) => res.json())\r\n .catch(this.handleError);\r\n }\r\n \r\n private handleError (error: any) {\r\n // TODO: Log this error to the server.\r\n return Observable.throw(Error.handleError(error) || 'Server error');\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/resources/sharedDesigns.ts","import {Injectable} from \"@angular/core\";\r\nimport {Observable} from \"rxjs/Observable\";\r\nimport {Http, URLSearchParams, Response} from \"@angular/http\";\r\nimport \"rxjs/add/operator/map\";\r\nimport \"rxjs/add/operator/catch\";\r\n\r\nimport {CONFIG} from \"../../environments/environment\";\r\nimport {Error} from \"../error\";\r\n\r\n@Injectable()\r\nexport class TextBordersService {\r\n private url: string;\r\n private borders: any;\r\n \r\n constructor(private http: Http) {\r\n this.url = CONFIG.api.host + \"/TextBorder\";\r\n }\r\n\r\n getBorders() {\r\n return this.borders;\r\n }\r\n\r\n setBorders(borders: any) {\r\n this.borders = borders;\r\n }\r\n \r\n get() {\r\n return this.http.get(this.url)\r\n .map((res: Response) => res.json())\r\n .catch(this.handleError);\r\n }\r\n \r\n private handleError (error: any) {\r\n // TODO: Log this error to the server.\r\n return Observable.throw(Error.handleError(error) || 'Server error');\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/resources/textBorders.ts","import {Injectable} from \"@angular/core\";\r\nimport {Observable} from \"rxjs/Observable\";\r\nimport {Http, URLSearchParams, Response} from \"@angular/http\";\r\nimport \"rxjs/add/operator/map\";\r\nimport \"rxjs/add/operator/catch\";\r\n\r\nimport {CONFIG} from \"../../environments/environment\";\r\nimport {Error} from \"../error\";\r\n\r\n@Injectable()\r\nexport class TextEffectsService {\r\n private url: string;\r\n private effects: any;\r\n \r\n constructor(private http: Http) {\r\n this.url = CONFIG.api.host + \"/TextEffect\";\r\n }\r\n \r\n setEffects(effects: any) {\r\n this.effects = effects;\r\n }\r\n\r\n getEffects() {\r\n return this.effects;\r\n }\r\n\r\n get() {\r\n return this.http.get(this.url)\r\n .map((res: Response) => res.json())\r\n .catch(this.handleError);\r\n }\r\n \r\n private handleError (error: any) {\r\n // TODO: Log this error to the server.\r\n return Observable.throw(Error.handleError(error) || 'Server error');\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/resources/textEffects.ts","import {Injectable} from \"@angular/core\";\r\nimport {Observable} from \"rxjs/Observable\";\r\nimport {Http, URLSearchParams, Response} from \"@angular/http\";\r\nimport \"rxjs/add/operator/map\";\r\nimport \"rxjs/add/operator/catch\";\r\n\r\nimport {CONFIG} from \"../../environments/environment\";\r\nimport {Error} from \"../error\";\r\n\r\n@Injectable()\r\nexport class TextShapesService {\r\n private url: string;\r\n private shapes: any;\r\n \r\n constructor(private http: Http) {\r\n this.url = CONFIG.api.host + \"/TextShape\";\r\n }\r\n\r\n getShapes() {\r\n return this.shapes;\r\n }\r\n\r\n setShapes(shapes: any) {\r\n this.shapes = shapes;\r\n }\r\n \r\n get() {\r\n return this.http.get(this.url)\r\n .map((res: Response) => res.json())\r\n .catch(this.handleError);\r\n }\r\n \r\n private handleError (error: any) {\r\n // TODO: Log this error to the server.\r\n return Observable.throw(Error.handleError(error) || 'Server error');\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/resources/textShapes.ts","import {Injectable} from \"@angular/core\";\r\nimport {AppEvents} from \"../appEvents\";\r\n\r\ndeclare var _: any;\r\n\r\n@Injectable()\r\nexport class AppStateService {\r\n\r\n private MaxStates: number = 10;\r\n states: any = [];\r\n appEvents: AppEvents = new AppEvents();\r\n\r\n reset() {\r\n this.states = [];\r\n }\r\n\r\n getStatesByView(locationId: any) {\r\n var viewStates: any;\r\n viewStates = _.findWhere(this.states, {\r\n locationId: locationId\r\n });\r\n return viewStates;\r\n }\r\n\r\n changeStateLocationId(oldLocationId: any, newLocationId: any) {\r\n let viewStates = this.getStatesByView(oldLocationId);\r\n if(viewStates) {\r\n viewStates.locationId = newLocationId;\r\n }\r\n }\r\n\r\n canUndoRedo(locationId: any) {\r\n let viewStates = this.getStatesByView(locationId);\r\n let canUndo: boolean = false;\r\n let canRedo: boolean = false;\r\n if(viewStates) {\r\n if(viewStates.currentIndex > 0) {\r\n canUndo = true;\r\n }\r\n if(viewStates.currentIndex < viewStates.states.length - 1) {\r\n canRedo = true;\r\n }\r\n }\r\n return {\r\n canUndo: canUndo,\r\n canRedo: canRedo,\r\n }\r\n }\r\n\r\n addAndRemoveStates(decorationGroup: any, productId: any, locationId: any, view: any, productColors: any, defaultPersonalizationGroup: any, clearView: boolean = false) {\r\n let viewState = this.getStatesByView(locationId);\r\n \r\n let state: any = {\r\n products: [],\r\n view: view,\r\n defaultPersonalizationGroup: (defaultPersonalizationGroup != null) ? JSON.parse(JSON.stringify(defaultPersonalizationGroup)) : null,\r\n };\r\n \r\n if(decorationGroup) {\r\n decorationGroup.products.forEach((selectedProduct) => {\r\n let product: any = {\r\n id: selectedProduct.id,\r\n productColors: (selectedProduct.selection != null) ? JSON.parse(JSON.stringify(selectedProduct.selection)) : null,\r\n }\r\n state.products.push(product);\r\n });\r\n }\r\n else {\r\n let product: any = {\r\n id: productId,\r\n productColors: (productColors != null) ? JSON.parse(JSON.stringify(productColors)) : null,\r\n }\r\n state.products.push(product);\r\n }\r\n\r\n if(clearView && viewState) {\r\n viewState.states = [];\r\n viewState.currentIndex = -1;\r\n }\r\n\r\n if(!viewState) {\r\n viewState = {\r\n locationId: locationId,\r\n states: [],\r\n currentIndex: -1\r\n };\r\n this.states.push(viewState);\r\n }\r\n\r\n viewState.currentIndex++;\r\n\r\n // remove any extra elements from the array\r\n while(viewState.states.length > (viewState.currentIndex)) {\r\n viewState.states.pop();\r\n }\r\n \r\n viewState.states.push(state);\r\n\r\n // if there are more states than the max allowed states, then remove the initial state\r\n // if(viewStates.states.length > this.MaxStates) {\r\n // viewStates.states.splice(0, 1);\r\n // viewStates.currentIndex--;\r\n // }\r\n }\r\n\r\n getCurrentState(locationId: any) {\r\n let viewStates = this.getStatesByView(locationId);\r\n if(!viewStates) {\r\n if(viewStates.currentIndex >= 0 && viewStates.currentIndex < viewStates.states.length) {\r\n return viewStates.states[viewStates.currentIndex];\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n undoState(locationId: any) {\r\n let viewStates = this.getStatesByView(locationId);\r\n if(viewStates) {\r\n if(viewStates.currentIndex > 0) {\r\n viewStates.currentIndex--;\r\n return viewStates.states[viewStates.currentIndex];\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n redoState(locationId: any) {\r\n let viewStates = this.getStatesByView(locationId);\r\n if(viewStates) {\r\n if(viewStates.currentIndex < (viewStates.states.length - 1)) {\r\n viewStates.currentIndex++;\r\n return viewStates.states[viewStates.currentIndex];\r\n }\r\n }\r\n return null;\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/services/appState.service.ts","import { Injectable } from \"@angular/core\";\r\nimport { PersonalizationSizeService } from \"app/resources/personalizationSizes\";\r\nimport { TextShapesService } from \"app/resources/textShapes\";\r\nimport { TextEffectsService } from \"app/resources/textEffects\";\r\nimport { TextBordersService } from \"app/resources/textBorders\";\r\n\r\ndeclare var _ : any;\r\n\r\n@Injectable()\r\nexport class TextHelperService {\r\n \r\n constructor(private personalizationSizeService: PersonalizationSizeService, private textShapesService: TextShapesService,\r\n private textEffectsService: TextEffectsService, private textBorderService: TextBordersService) {\r\n \r\n }\r\n\r\n getDefaultShape(currentShape: any) {\r\n if(!currentShape) {\r\n currentShape = this.textShapesService.getShapes()[0];\r\n }\r\n return {\r\n id: currentShape.id,\r\n name: currentShape.name,\r\n bend: currentShape.bend,\r\n color: currentShape.color,\r\n leftScale: currentShape.leftScale,\r\n rightScale: currentShape.rightScale,\r\n tilt: currentShape.tilt,\r\n underline: currentShape.underline,\r\n vertical: currentShape.vertical,\r\n wordSpacing: currentShape.wordSpacing,\r\n requiresBend: currentShape.requiresBend,\r\n requiresLeftScale: currentShape.requiresLeftScale,\r\n requiresRightScale: currentShape.requiresRightScale,\r\n requiresTilt: currentShape.requiresTilt,\r\n requiresUnderline: currentShape.requiresUnderline,\r\n requiresVertical: currentShape.requiresVertical,\r\n requiresWordSpacing: currentShape.requiresWordSpacing,\r\n };\r\n }\r\n\r\n getDefaultEffect(currentEffect: any) {\r\n if(!currentEffect) {\r\n currentEffect = this.textEffectsService.getEffects()[0];\r\n }\r\n return {\r\n id: currentEffect.id,\r\n name: currentEffect.name,\r\n color: currentEffect.color,\r\n offsetX: currentEffect.offsetX,\r\n offsetY: currentEffect.offsetY,\r\n opacity: currentEffect.opacity,\r\n size: currentEffect.size,\r\n requiresOffsetX: currentEffect.requiresOffsetX,\r\n requiresOffsetY: currentEffect.requiresOffsetY,\r\n requiresOpacity: currentEffect.requiresOpacity,\r\n requiresSize: currentEffect.requiresSize,\r\n };\r\n }\r\n\r\n getDefaultBorder(currentBorder: any) {\r\n if(!currentBorder) {\r\n currentBorder = this.textBorderService.getBorders()[0];\r\n }\r\n return {\r\n id: currentBorder.id,\r\n name: currentBorder.name,\r\n color: currentBorder.color,\r\n width: currentBorder.width,\r\n };\r\n }\r\n\r\n getDefaultPersonalizationSize(height: any, productView: any) {\r\n let personalizationSizes: any = this.personalizationSizeService.getSizes();\r\n if(productView) {\r\n let editableArea = productView.borderBox.size;\r\n if(personalizationSizes) {\r\n let maxPossibleHeight = editableArea.height / editableArea.pixelsPerInch;\r\n if(height > maxPossibleHeight) {\r\n let filteredSizes = _.filter(personalizationSizes, (size) => {\r\n return size.height < maxPossibleHeight;\r\n });\r\n if(filteredSizes.length > 0) {\r\n return filteredSizes[filteredSizes.length - 1];\r\n }\r\n }\r\n }\r\n }\r\n return _.findWhere(personalizationSizes, {\r\n height: height\r\n });\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/services/textHelper.service.ts","// The file contents for the current environment will overwrite these during build.\r\n// The build system defaults to the dev environment which uses `environment.ts`, but if you do\r\n// `ng build --env=prod` then `environment.prod.ts` will be used instead.\r\n// The list of which env maps to which file can be found in `.angular-cli.json`.\r\n\r\nexport class CONFIG {\r\n static production = true;\r\n static defaultProductId: string = \"\";\r\n static header = {\r\n height: 94\r\n };\r\n static designElement = {\r\n fontSize: 20,\r\n padding: 12\r\n };\r\n static dpi = 72;\r\n static proovedArtworkHost = \"\";\r\n static api = {\r\n host: \"\",\r\n images: \"\"\r\n };\r\n static designer = {\r\n host: \"\",\r\n cartUrl: \"\"\r\n };\r\n static clipart = {\r\n limit: 52,\r\n };\r\n static maxZoom = 1.4;\r\n static pixelCount = 5;\r\n static s3Bucket: string = \"\";\r\n static s3Credentials: string = \"\";\r\n static imagesHost: string = \"\";\r\n static imagesOnEntripy: string = \"\";\r\n static userToken: string = \"\";\r\n\r\n constructor(){\r\n }\r\n}\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/environments/environment.ts","import {Injectable} from '@angular/core';\r\nimport 'rxjs/Rx';\r\nimport {Observable} from \"rxjs/Observable\";\r\nimport { SaveProcessorService } from './saveProcessor.service';\r\nimport { ProductColorSelectionService } from './productColorSelection.service';\r\nimport { TextRenderService } from 'app/resources/textRender';\r\nimport {AppEvents} from \"../appEvents\";\r\n\r\ndeclare var _ : any;\r\n\r\n@Injectable()\r\nexport class DecorationGroupHelperService {\r\n \r\n _decorationGroups: any = [];\r\n appEvents: AppEvents = new AppEvents();\r\n \r\n constructor(\r\n protected saveProcessor: SaveProcessorService, \r\n protected colorSelection: ProductColorSelectionService,\r\n protected renderTextService: TextRenderService\r\n ) {\r\n } \r\n\r\n resetCollection() {\r\n while(this._decorationGroups.length > 0) {\r\n this._decorationGroups.pop();\r\n }\r\n this._decorationGroups = [];\r\n }\r\n\r\n getDecorationGroupById(id: any) {\r\n return _.findWhere(this._decorationGroups, {\r\n id: id\r\n });\r\n }\r\n\r\n getFirstOrDefaultGroup() {\r\n if(this._decorationGroups && this._decorationGroups.length > 0) {\r\n return this._decorationGroups[0];\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n\r\n getSelectionByProductId(decorationGroupId: any, productId: any) {\r\n let dg = this.getDecorationGroupById(decorationGroupId);\r\n if(dg) {\r\n let product = _.findWhere(dg.products, {\r\n id: productId\r\n });\r\n if(product) {\r\n return product.selection;\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n decorationGroupExists() {\r\n if(this._decorationGroups && this._decorationGroups.length > 0) {\r\n return true;\r\n } \r\n return false;\r\n } \r\n\r\n createTemporaryDecorationGroup(product: any, selection: any) {\r\n let decorationGroup: any = {\r\n products: [],\r\n }\r\n let p: any = {\r\n id: product.id,\r\n product: product,\r\n selection: selection,\r\n totalPersonalizations: 0,\r\n personalizationGroupsEntered: 0,\r\n };\r\n decorationGroup.products.push(p);\r\n return decorationGroup;\r\n }\r\n\r\n createDecorationGroup() {\r\n let decorationGroup: any = {\r\n id: 0,\r\n products: [],\r\n }\r\n this._decorationGroups.push(decorationGroup);\r\n return decorationGroup; \r\n }\r\n\r\n copyViewsToDecorationGroup(decorationGroupId: any, product: any) {\r\n let dg = this.getDecorationGroupById(decorationGroupId);\r\n if(dg && product) {\r\n product.views.forEach((view) => {\r\n dg.views.push(this.saveProcessor.cleanView(view, true));\r\n });\r\n }\r\n }\r\n\r\n copyElements(currentProduct: any, newProduct: any) {\r\n currentProduct.views.forEach(view => {\r\n let newView = _.findWhere(newProduct.views, {\r\n locationId: view.locationId\r\n }); \r\n if(newView) {\r\n newView.hidden = view.hidden;\r\n\r\n // copy elements\r\n view.designElements.forEach(element => {\r\n element.locationId = newView.locationId;\r\n newView.designElements.push(element);\r\n });\r\n\r\n // copy element colors\r\n newView.selectedColors = view.selectedColors;\r\n }\r\n }); \r\n }\r\n\r\n updateSelectedColorInView(view: any, color: any, updateOrAdd: boolean) {\r\n if(this.decorationGroupExists()) {\r\n if(view && color) {\r\n this._decorationGroups.forEach((group) => {\r\n if(group && group.products) {\r\n group.products.forEach((product) => {\r\n let vw: any = _.findWhere(product.product.views, {\r\n locationId: view.locationId\r\n });\r\n if(vw && vw.id != view.id) {\r\n // don't do anything for delete, color is always removed first, if add or update, it is added back again\r\n vw.selectedColors = vw.selectedColors.filter( (c) => { \r\n return c.id !== color.id;\r\n });\r\n if(updateOrAdd) {\r\n vw.selectedColors.push(color);\r\n }\r\n }\r\n });\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n replaceSelectedColorInView(view: any, color: any): void {\r\n\r\n if(!view || !color) {\r\n return;\r\n }\r\n\r\n view.selectedColors = [color];\r\n\r\n view.designElements.forEach((designElement) => {\r\n designElement.colorId = color.id;\r\n designElement.colors = [color];\r\n designElement.color = color;\r\n designElement.colorHex = color.hex;\r\n \r\n if (designElement.type === 'text') {\r\n designElement.textShape.color = color.hex;\r\n this.renderTextService.post(designElement).subscribe((src) => {\r\n if (src) {\r\n designElement.originalRatio = src.width / src.height;\r\n designElement.source = src.base64;\r\n this.appEvents.emitCurrentDesignChanged(true);\r\n this.appEvents.emitAutoSave();\r\n }\r\n });\r\n }\r\n\r\n if (designElement.type === 'clipart') {\r\n\r\n this.appEvents.emitClipartColorChanged(designElement);\r\n this.appEvents.emitCurrentDesignChanged(true);\r\n this.appEvents.emitSaveState();\r\n\r\n }\r\n });\r\n\r\n }\r\n\r\n addElement(element: any, excludeView: any) {\r\n if(this.decorationGroupExists()) {\r\n if(element) {\r\n this._decorationGroups.forEach((group) => {\r\n if(group && group.products) {\r\n group.products.forEach((product) => {\r\n let view: any = _.findWhere(product.product.views, {\r\n locationId: excludeView.locationId\r\n });\r\n if(view && view.id != excludeView.id) {\r\n view.designElements.push(element);\r\n }\r\n });\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n addPersonalization(groupId: any, header:any, value: any, productColorId: any, productSizeId: any, \r\n designElementId: any, locationName: any, locationId: any) {\r\n if(this.decorationGroupExists()) {\r\n let personalizationAdded: boolean = false;\r\n\r\n this._decorationGroups.forEach((group) => {\r\n group.products.forEach((product) => {\r\n\r\n // add personalization only one time.\r\n if(!personalizationAdded) {\r\n this.colorSelection.addPersonalizationBySelection(product.selection, groupId, header, value, \r\n productColorId, productSizeId, designElementId, locationName, locationId);\r\n personalizationAdded = true;\r\n }\r\n else {\r\n this.colorSelection.addPersonalizationGroupToSelection(product.selection, header, value, \r\n productColorId, designElementId, locationName, locationId);\r\n }\r\n });\r\n });\r\n }\r\n else {\r\n this.colorSelection.addPersonalization(groupId, header, value, \r\n productColorId, productSizeId, designElementId, locationName, locationId);\r\n }\r\n }\r\n\r\n removePersonalization(designElementId: any) {\r\n if(this.decorationGroupExists()) {\r\n this._decorationGroups.forEach((group) => {\r\n if(group && group.products) {\r\n group.products.forEach((product) => {\r\n this.colorSelection.removePersonalizationFromSelection(product.selection, designElementId);\r\n });\r\n }\r\n });\r\n }\r\n }\r\n\r\n addExistingProduct(decorationGroupId: any, currentProduct: any, color: any) {\r\n let dg = this.getDecorationGroupById(decorationGroupId);\r\n if(dg) {\r\n let product = _.findWhere(dg.products, {\r\n id: currentProduct.id\r\n });\r\n if(!product) {\r\n let selection: any = this.colorSelection.cloneSelection();\r\n product = {\r\n id: currentProduct.id,\r\n product: currentProduct,\r\n color: color,\r\n selection: selection,\r\n totalPersonalizations: 0,\r\n personalizationGroupsEntered: 0,\r\n };\r\n dg.products.push(product);\r\n }\r\n }\r\n }\r\n\r\n addNewProduct(decorationGroupId: any, newProduct: any, newColor: any) {\r\n let dg = this.getDecorationGroupById(decorationGroupId);\r\n if(dg) {\r\n let product = _.findWhere(dg.products, {\r\n id: newProduct.id\r\n });\r\n if(!product) {\r\n let defaultGroup = this.colorSelection.getDefaultGroup();\r\n //this.colorSelection.resetSelection();\r\n let selection: any = [];\r\n this.colorSelection.addColorToSelection(newProduct, newColor, selection);\r\n if(defaultGroup) {\r\n this.colorSelection.addDefaultGroupBySelection(defaultGroup, newProduct, selection);\r\n }\r\n this.colorSelection.setDefaultQuantity(newProduct);\r\n\r\n product = {\r\n id: newProduct.id,\r\n product: newProduct,\r\n color: newColor,\r\n selection: selection,\r\n totalPersonalizations: 0,\r\n personalizationGroupsEntered: 0,\r\n };\r\n dg.products.push(product);\r\n }\r\n }\r\n }\r\n\r\n addProductBySelection(decorationGroupId: any, newProduct: any, selection: any, color: any) {\r\n let dg = this.getDecorationGroupById(decorationGroupId);\r\n if(dg) {\r\n let product = _.findWhere(dg.products, {\r\n id: newProduct.id\r\n });\r\n if(!product) {\r\n let defaultGroup = this.colorSelection.getDefaultGroup();\r\n\r\n product = {\r\n id: newProduct.id,\r\n product: newProduct,\r\n color: color,\r\n selection: selection,\r\n totalPersonalizations: 0,\r\n personalizationGroupsEntered: 0,\r\n };\r\n dg.products.push(product);\r\n }\r\n }\r\n }\r\n\r\n changeProduct(decorationGroupId: any, oldProduct: any, newProduct: any, newColor: any, newSelection: any) {\r\n let dg = this.getDecorationGroupById(decorationGroupId);\r\n if(dg) {\r\n let product = _.findWhere(dg.products, {\r\n id: oldProduct.id\r\n });\r\n\r\n if(product) {\r\n product.id = newProduct.id;\r\n product.product = newProduct;\r\n product.color = newColor; \r\n product.selection = newSelection;\r\n }\r\n }\r\n }\r\n \r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/services/decorationGroupHelper.service.ts","import {Injectable} from \"@angular/core\";\r\nimport {AppEvents} from \"../appEvents\";\r\nimport { DecorationGroupHelperService } from \"./decorationGroupHelper.service\";\r\n\r\ndeclare var _: any;\r\n\r\n@Injectable()\r\nexport class SelectedDesignColorsService {\r\n\r\n selectedDesignColors: any = [];\r\n appEvents: AppEvents = new AppEvents();\r\n\r\n constructor(private decorationGroupHelper: DecorationGroupHelperService) {\r\n\r\n }\r\n\r\n reset() {\r\n this.selectedDesignColors = [];\r\n }\r\n\r\n resetView(view: any) {\r\n view.selectedColors = [];\r\n }\r\n\r\n contains(color: any) {\r\n var findColor: any;\r\n findColor = _.where(this.selectedDesignColors, {\r\n id: color.id\r\n });\r\n return findColor.length > 0; \r\n }\r\n\r\n colorIsContainedMoreThanOnce(view: any, color: any) {\r\n if(view) {\r\n var findColor: any;\r\n findColor = _.findWhere(view.selectedColors, {\r\n id: color.id\r\n });\r\n if(findColor != null) {\r\n return findColor.count >= 2; \r\n }\r\n }\r\n return false;\r\n }\r\n\r\n colorIsContainedInView(view: any, color: any) {\r\n if(view) {\r\n var findColor: any;\r\n findColor = _.findWhere(view.selectedColors, {\r\n id: color.id\r\n });\r\n if(findColor != null) {\r\n return findColor.count >= 1; \r\n }\r\n }\r\n return false;\r\n }\r\n\r\n setSelectedColorInView(view: any, color: any) {\r\n if(!this.colorIsContainedInView(view, color)) {\r\n color.count = 1;\r\n view.selectedColors.push(color);\r\n }\r\n else {\r\n color.count++;\r\n }\r\n this.decorationGroupHelper.updateSelectedColorInView(view, color, true);\r\n }\r\n\r\n addColorToView(view: any, color: any) {\r\n if(!this.colorIsContainedInView(view, color)) {\r\n color.count = 1;\r\n view.selectedColors.push(color);\r\n }\r\n else {\r\n if(color.count) {\r\n color.count++;\r\n }\r\n else {\r\n color.count = 1;\r\n }\r\n }\r\n this.decorationGroupHelper.updateSelectedColorInView(view, color, true);\r\n }\r\n\r\n removeColorFromView(view: any, color: any) {\r\n if(this.colorIsContainedInView(view, color)) {\r\n if(!color.count) {\r\n color.count = 0;\r\n }\r\n else {\r\n color.count--;\r\n }\r\n if(color.count == 0) { \r\n view.selectedColors = view.selectedColors.filter( (c) => { \r\n return c.id !== color.id;\r\n });\r\n this.decorationGroupHelper.updateSelectedColorInView(view, color, false);\r\n }\r\n else {\r\n this.decorationGroupHelper.updateSelectedColorInView(view, color, true);\r\n }\r\n }\r\n }\r\n\r\n updateColorInView(view: any, removeColor: any, addColor: any) {\r\n if(view) {\r\n if(removeColor) {\r\n this.removeColorFromView(view, removeColor);\r\n }\r\n if(addColor) {\r\n this.addColorToView(view, addColor);\r\n }\r\n }\r\n }\r\n\r\n getDefaultDesignColorFromView(view: any, product: any) {\r\n if(view && view.selectedColors && view.selectedColors.length >= product.maxPrintColors) {\r\n return view.selectedColors[0];\r\n }\r\n return null;\r\n }\r\n\r\n isColorAllowed(view: any, product: any, color: any, removeColor: any) {\r\n if(view && view.selectedColors && product) {\r\n if(this.colorIsContainedInView(view, color)) {\r\n return true;\r\n }\r\n else if(view.selectedColors.length < product.maxPrintColors) {\r\n return true;\r\n }\r\n else if (view.selectedColors.length == product.maxPrintColors && removeColor && removeColor.count <= 1)\r\n {\r\n return true;\r\n }\r\n // if(!product.isLastColorFullColor && view.selectedColors.length >= product.maxPrintColors) {\r\n // return this.colorIsContainedInView(view, color) || (removeColor && removeColor.count <= 1);\r\n // }\r\n // else {\r\n // return true;\r\n // }\r\n }\r\n return false;\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/services/selectedDesignColors.service.ts","import {Injectable} from '@angular/core';\r\nimport 'rxjs/Rx';\r\nimport {Observable} from \"rxjs/Observable\";\r\n\r\nimport {ProductModel} from '../models/product.model';\r\nimport {ProductsService} from '../resources/products';\r\nimport {AppEvents} from \"../appEvents\";\r\n\r\n@Injectable()\r\nexport class ProductsHelperService{\r\n appEvents: AppEvents = new AppEvents(); \r\n refreshMessage: string = \"\";\r\n \r\n constructor(private productsService: ProductsService) {} //, private commonProductEvents: CommonProductEventsService){}\r\n \r\n getProducts(){\r\n return this.productsService.getAll().subscribe( rawProducts => {\r\n let products = this.cleanProducts(rawProducts);\r\n this.appEvents.emitProductsChange(products);\r\n return products;\r\n });\r\n }\r\n \r\n getProduct(id: any, fireProductDetailsEvent: boolean = true){\r\n return this.productsService.getProducts(id).subscribe( rawProduct => {\r\n this.replaceDefaultQuantityWithQuantity(rawProduct);\r\n if(fireProductDetailsEvent) {\r\n this.appEvents.emitProductDetailsChange(rawProduct);\r\n }\r\n return rawProduct;\r\n });\r\n }\r\n \r\n returnProductObservable(id: any) {\r\n return this.productsService.getProducts(id);\r\n }\r\n \r\n getProductObservable(id: any, fireProductDetailsEvent: boolean = true) {\r\n return Observable.create((observer: any) => { \r\n this.productsService.getProducts(id).subscribe( rawProduct => {\r\n this.replaceDefaultQuantityWithQuantity(rawProduct);\r\n if(fireProductDetailsEvent) {\r\n this.appEvents.emitProductDetailsChange(rawProduct);\r\n }\r\n return observer.next(rawProduct);\r\n });\r\n });\r\n }\r\n \r\n cleanProducts(products: any) {\r\n var product: any, i: any, len: any;\r\n for (i = 0, len = products.length; i < len; i++) {\r\n product = products[i];\r\n this.replaceDefaultQuantityWithQuantity(product);\r\n }\r\n return products;\r\n }\r\n \r\n replaceDefaultQuantityWithQuantity(product: any) {\r\n var size: any, i: any, len: any, ref: any, results: any;\r\n ref = product.sizes;\r\n results = [];\r\n for (i = 0, len = ref.length; i < len; i++) {\r\n size = ref[i];\r\n size.quantity = size.defaultQuantity;\r\n size.count = 0;\r\n results.push(delete size.defaultQuantity);\r\n }\r\n return results;\r\n }\r\n\r\n isEmbroideryOnly(product: any) {\r\n if (product.embroideryAvailable && (!product.printAvailable && !product.promoAvailable)) {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n\r\n checkIfProductViewsNeedsRefresh(product: any) {\r\n let needRefresh: boolean = false;\r\n this.refreshMessage = \"\";\r\n let viewNames: string = \"\";\r\n if(product) {\r\n product.views.forEach((view) => {\r\n if(view.needRefresh) {\r\n if(viewNames.length > 0) {\r\n viewNames += \", \";\r\n }\r\n viewNames += view.name;\r\n needRefresh = true;\r\n }\r\n });\r\n if(needRefresh) {\r\n this.refreshMessage = viewNames;\r\n }\r\n }\r\n return needRefresh;\r\n }\r\n\r\n getRefreshMessage() {\r\n return this.refreshMessage;\r\n }\r\n\r\n getLocationIds(product: any) {\r\n let locationIds: string = \"\";\r\n if(product) {\r\n product.views.forEach((view) => {\r\n if(locationIds.length > 0) {\r\n locationIds += \",\";\r\n }\r\n locationIds += view.locationId;\r\n });\r\n }\r\n return locationIds;\r\n }\r\n\r\n getDecorationTypes(product: any) {\r\n let decorationTypes: string = \"\";\r\n if(product) {\r\n if(product.embroideryAvailable) {\r\n decorationTypes += \"EMB\";\r\n }\r\n if(product.printAvailable) {\r\n if(decorationTypes.length > 0) {\r\n decorationTypes += \",\";\r\n }\r\n decorationTypes += \"SP\";\r\n }\r\n }\r\n return decorationTypes;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/services/productsHelper.service.ts","export class BaseClass {\r\n\r\n checkWhiteColor(color: any) {\r\n if(color && color.hex == '#FFFFFF') {\r\n return true;\r\n }\r\n return false;\r\n }\r\n \r\n backgroundImageStyle(imageSource: any) {\r\n return {\r\n \"background-image\": \"url(\" + (imageSource) + \")\"\r\n };\r\n }\r\n\r\n backgroundImageAngColor(color) {\r\n if(color) {\r\n return {\r\n \"background-image\": \"url(\" + (color.mainImageSource) + \")\",\r\n \"background-color\": color.hex,\r\n };\r\n }\r\n }\r\n\r\n backgroundColorStyle (color: any) {\r\n if (color) {\r\n return {\r\n 'background-color': color.hex\r\n };\r\n }\r\n }\r\n\r\n colorStyle(color: any) {\r\n return {\r\n \"background-color\": color.hex\r\n };\r\n }\r\n\r\n styleColor(color: any) {\r\n let hex: any = this.getColor(color.hex);\r\n if (hex === \"#FFFFFF\") {\r\n return {\r\n \"background-image\": \"url(http://s3.amazonaws.com/entripydesignstudioreadonly/images/toprightWhite.svg)\"\r\n };\r\n }\r\n else {\r\n return {\r\n \"background-image\": \"url(http://s3.amazonaws.com/entripydesignstudioreadonly/images/toprightBlack.svg)\"\r\n };\r\n }\r\n }\r\n\r\n // Invert Color: https://stackoverflow.com/questions/35969656/how-can-i-generate-the-opposite-color-according-to-current-color\r\n getColor(hex) {\r\n if (hex.indexOf('#') === 0) {\r\n hex = hex.slice(1);\r\n }\r\n // convert 3-digit hex to 6-digits.\r\n if (hex.length === 3) {\r\n hex = hex[0] + hex[0] + hex[1] + hex[1] + hex[2] + hex[2];\r\n }\r\n if (hex.length === 6) {\r\n let r = parseInt(hex.slice(0, 2), 16),\r\n g = parseInt(hex.slice(2, 4), 16),\r\n b = parseInt(hex.slice(4, 6), 16);\r\n // http://stackoverflow.com/a/3943023/112731\r\n return (r * 0.299 + g * 0.587 + b * 0.114) > 186\r\n ? '#7d7b7b'\r\n : '#C8C8C8';\r\n }\r\n }\r\n\r\n productTextureImageStyle(_product: any, _color: any) : any {\r\n var textureImageUrl : null;\r\n var hex: null;\r\n\r\n if(_product && _product.defaultTextureImage) {\r\n textureImageUrl = _product.defaultTextureImage;\r\n }\r\n if(_color && _color.textureImage) {\r\n textureImageUrl = _color.textureImage;\r\n }\r\n if (_color) {\r\n hex = _color.hex\r\n }\r\n if(textureImageUrl) {\r\n return {\r\n 'background-image': \"url('\" + (encodeURI(textureImageUrl)) + \"')\",\r\n 'background-color': hex\r\n };\r\n }\r\n else {\r\n return {\r\n 'background-color': hex\r\n };\r\n }\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/base.class.ts","import {Injectable} from \"@angular/core\";\r\n\r\ndeclare var _ : any;\r\n\r\n@Injectable()\r\nexport class DesignHelperService {\r\n \r\n constructor(){}\r\n \r\n totalProductCount(sizes: any) {\r\n var quantities: any, sum: any;\r\n quantities = _.pluck(sizes, 'quantity') || [];\r\n sum = _.reduce(quantities, (sum: any, quantity: any) => {\r\n return sum + (quantity || 0);\r\n }, 0);\r\n return sum;\r\n }\r\n\r\n totalProductCountFromDecorationGroup(decorationGroup: any) {\r\n if(decorationGroup) {\r\n decorationGroup.products.forEach((product) => {\r\n product.totalPersonalizations = this.totalProductCountFromSelection(product.selection); \r\n });\r\n }\r\n }\r\n\r\n totalProductCountForMultipleProducts(products: any) {\r\n let total: number = 0;\r\n if(products) {\r\n products.forEach((product: any) => {\r\n total += this.totalProductCountFromSelection(product.selection); \r\n });\r\n }\r\n return total;\r\n }\r\n\r\n totalProductCountFromSelection(selection: any) {\r\n var quantities: any, total: number = 0;\r\n var i: any, len: any, colorSelection: any;\r\n if(selection) {\r\n for(i = 0, len = selection.length; i < len; i++) {\r\n colorSelection = selection[i];\r\n quantities = _.pluck(colorSelection.sizes, 'quantity') || [];\r\n total += _.reduce(quantities, (sum: any, quantity: any) => {\r\n return sum + (quantity || 0);\r\n }, 0);\r\n }\r\n }\r\n return total;\r\n }\r\n\r\n totalProductCountByAvailableSizes(selection: any, colors: any) {\r\n var quantities: number = 0;\r\n var i: any, len: any, colorSelection: any;\r\n if(selection) {\r\n for(i = 0, len = selection.length; i < len; i++) {\r\n colorSelection = selection[i];\r\n quantities += this.getQuantitiesByAvailableSizes(colorSelection, colors);\r\n }\r\n }\r\n return quantities;\r\n }\r\n\r\n getTotalQuantitiesBySelection(selectedColor: any) {\r\n let total = 0;\r\n if(selectedColor) {\r\n let quantities = _.pluck(selectedColor.sizes, 'quantity') || [];\r\n total += _.reduce(quantities, (sum: any, quantity: any) => {\r\n return sum + (quantity || 0);\r\n }, 0);\r\n }\r\n return total;\r\n }\r\n\r\n getQuantitiesByAvailableSizes(selectedColor: any, colors: any) {\r\n let quantities : number = 0;\r\n let color = _.findWhere(colors, {\r\n id: selectedColor.id\r\n });\r\n let availableSizes = color ? color.availableSizes : void 0;\r\n if(availableSizes) {\r\n selectedColor.sizes.forEach(size => {\r\n if(_.contains(availableSizes, size.id)) {\r\n quantities += size.quantity;\r\n }\r\n });\r\n }\r\n return quantities;\r\n }\r\n\r\n totalCurrentDesignElements(views: any) {\r\n var designElementArrays: any;\r\n designElementArrays = _.pluck(views, 'designElements');\r\n let count = 0;\r\n designElementArrays.forEach((elements) => {\r\n elements.forEach(element => {\r\n if(!element.isDeleted) {\r\n count++;\r\n }\r\n });\r\n });\r\n return count;\r\n }\r\n \r\n totalDesignElementCount(product: any) {\r\n return this.totalCurrentDesignElements(product.views);\r\n }\r\n \r\n isValidDesign(product: any) {\r\n var designElementCount: any;\r\n designElementCount = this.totalDesignElementCount(product);\r\n return designElementCount > 0;\r\n }\r\n \r\n deservesPriceTrigger(newDesignElements: any, oldDesignElements: any, product: any) {\r\n return this.colorCountChanged(newDesignElements, oldDesignElements) || this.finalElementRemovedOrFirstAdded(newDesignElements, oldDesignElements);\r\n }\r\n \r\n colorCountChanged(newDesignElements: any, oldDesignElements: any) {\r\n return this.productViewColorCount(newDesignElements) !== this.productViewColorCount(oldDesignElements);\r\n }\r\n \r\n productViewColorCount(designElements: any) {\r\n var color: any, colorIds: any, designElement: any, i: any, j: any, len: any, len1: any, ref: any;\r\n colorIds = [];\r\n for (i = 0, len = designElements.length; i < len; i++) {\r\n designElement = designElements[i];\r\n if (designElement.type === 'text' || designElement.type === 'clipart') {\r\n colorIds.push(designElement.color.id);\r\n } \r\n else {\r\n if (designElement.colors.length) {\r\n ref = designElement.colors;\r\n for (j = 0, len1 = ref.length; j < len1; j++) {\r\n color = ref[j];\r\n colorIds.push(color.id);\r\n }\r\n } \r\n else {\r\n colorIds.push(0, 0, 0, 0, 0, 0, 0, 0, 0, 0);\r\n }\r\n }\r\n }\r\n return _.uniq(colorIds).length;\r\n }\r\n \r\n finalElementRemovedOrFirstAdded(newDesignElements: any, oldDesignElements: any) {\r\n return newDesignElements.length + oldDesignElements.length === 1;\r\n }\r\n \r\n cleanPrice(pricePerProduct: any, totalProductCount: any) {\r\n var roundedPrice: any, unroundedPrice: any;\r\n unroundedPrice = pricePerProduct * totalProductCount;\r\n roundedPrice = Math.round(unroundedPrice * 100) / 100;\r\n return roundedPrice.toFixed(2);\r\n }\r\n \r\n getDefaultLocationId(locations: any) {\r\n var defaultLocation: any;\r\n defaultLocation = _.findWhere(locations, {\r\n isDefault: true\r\n });\r\n return defaultLocation.id;\r\n }\r\n\r\n getBoundaryFromCorners(leftTop: any, leftBottom: any, rightTop: any, rightBottom: any) {\r\n let arrayY = [leftTop.top, leftBottom.top, rightTop.top, rightBottom.top];\r\n arrayY.sort(function(a,b) { return a-b});\r\n let arrayX = [leftTop.left, leftBottom.left, rightTop.left, rightBottom.left];\r\n arrayX.sort(function(a,b) { return a-b});\r\n\r\n return {\r\n top: Math.round(arrayY[0]),\r\n bottom: Math.round(arrayY[arrayY.length-1]),\r\n left: Math.round(arrayX[0]),\r\n right: Math.round(arrayX[arrayX.length-1])\r\n }\r\n }\r\n\r\n getBoundaryFromElement() {\r\n\r\n }\r\n\r\n validateQuantity(_product: any, totalCount: any) {\r\n let hasEmbroideredElement: boolean = false;\r\n let quantity = {\r\n valid: false,\r\n minimum: 0,\r\n }\r\n for(let i = 0; i < _product.views.length ; i++) {\r\n let view = _product.views[i];\r\n for(let j = 0; j < view.designElements.length; j++) {\r\n let element = view.designElements[j];\r\n if(element.isEmbroidery && !element.isPersonalization) {\r\n // story 11048 - replace the above condition with this line\r\n //if(element.isEmbroidery && element.type !== \"text\") { \r\n hasEmbroideredElement = true;\r\n }\r\n }\r\n }\r\n\r\n let isValid = false;\r\n if(hasEmbroideredElement) {\r\n if(totalCount >= _product.minimumBuyQuantityEmbroidery) {\r\n quantity.valid = true;\r\n quantity.minimum = _product.minimumBuyQuantityEmbroidery;\r\n }\r\n quantity.minimum = _product.minimumBuyQuantityEmbroidery;\r\n }\r\n else if(totalCount >= _product.minimumBuyQuantityDigital) {\r\n quantity.valid = true;\r\n quantity.minimum = _product.minimumBuyQuantityDigital;\r\n }\r\n else {\r\n quantity.minimum = _product.minimumBuyQuantityDigital;\r\n }\r\n return quantity;\r\n }\r\n\r\n cleanViews(product: any) {\r\n product.views.forEach(view => {\r\n view.screenshotSource = void 0;\r\n view.designElements = [];\r\n });\r\n }\r\n\r\n hasAnyEmbroideredElement(product: any) {\r\n if(product && product.views.length > 0) {\r\n for(let i = 0; i < product.views.length ; i++) {\r\n let view = product.views[i];\r\n for(let j = 0; j < view.designElements.length; j++) {\r\n let element = view.designElements[j];\r\n if(element.isEmbroidery && !element.isPersonalization) {\r\n // story 11048 - replace the above condition with this line\r\n // if(element.isEmbroidery && element.type !== \"text\") {\r\n return true;\r\n }\r\n }\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n checkQuantityForMultipleProducts(products: any) {\r\n let quantity = {\r\n valid: false,\r\n minQuantities: 0\r\n }\r\n\r\n let count = this.totalProductCountForMultipleProducts(products);\r\n if(products) {\r\n products.forEach((product: any) => {\r\n let productQuantity: any = this.checkQuantity(product.product, product.selection);\r\n if(quantity.minQuantities < productQuantity.minQuantities) {\r\n quantity.minQuantities = productQuantity.minQuantities;\r\n }\r\n });\r\n if(count >= quantity.minQuantities) {\r\n quantity.valid = true;\r\n }\r\n }\r\n\r\n return quantity;\r\n }\r\n\r\n checkQuantity(product: any, selection: any) {\r\n let quantity = {\r\n valid: false,\r\n minQuantities: 0\r\n }\r\n if(product) {\r\n let count = this.totalProductCountFromSelection(selection);\r\n if(this.hasAnyEmbroideredElement(product)) {\r\n if(count >= product.minimumBuyQuantityEmbroidery) {\r\n quantity.valid = true;\r\n }\r\n else {\r\n quantity.minQuantities = product.minimumBuyQuantityEmbroidery;\r\n }\r\n }\r\n else if(count >= product.minimumBuyQuantityDigital) {\r\n quantity.valid = true;\r\n }\r\n else {\r\n quantity.minQuantities = product.minimumBuyQuantityDigital;\r\n }\r\n return quantity;\r\n }\r\n }\r\n\r\n designHasMoreColorsThanMaxPrintColors(product: any) {\r\n let colorsSelected: any = [];\r\n\r\n product.views.forEach((view: any) => { \r\n view.designElements.forEach((element: any) => {\r\n if(element.colors.length > 0) {\r\n element.colors.forEach((color) => {\r\n this.addColorToArray(color.id, colorsSelected);\r\n });\r\n }\r\n else {\r\n this.addColorToArray(element.colorId, colorsSelected);\r\n }\r\n });\r\n });\r\n\r\n if(colorsSelected.length > product.maxPrintColors) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n addColorToArray(colorId: any, colorsSelected: any) {\r\n if(colorsSelected) {\r\n if(!_.contains(colorsSelected, colorId)) {\r\n colorsSelected.push(colorId);\r\n }\r\n }\r\n }\r\n\r\n removeExtraPrintColorsFromDesignElements(element:any, product: any) {\r\n if(element.type == \"image\" && element.colors && element.colors.length > product.maxPrintColors) {\r\n let noOfElementsToBeRemoved = element.colors.length - product.maxPrintColors;\r\n let index = product.maxPrintColors;\r\n element.colors.splice(index, noOfElementsToBeRemoved);\r\n }\r\n if(product.printAvailable) {\r\n if(product.maxPrintColors == 0) {\r\n element.isFullColor = true;\r\n }\r\n }\r\n else if(product.promoAvailable) {\r\n element.isFullColor = false;\r\n element.isEmbroidery = false;\r\n element.isPromo = true;\r\n if(element.textEffect) {\r\n element.textEffect.name = \"None\";\r\n element.textEffect.id = 0;\r\n element.textEffect.color = null;\r\n }\r\n if(element.textBorder) {\r\n element.textBorder.name = \"None\";\r\n element.textBorder.id = 0;\r\n element.textBorder.color = null;\r\n }\r\n }\r\n else {\r\n element.isEmbroidery = true;\r\n }\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/services/designHelper.service.ts","import {Subject} from \"rxjs/Subject\";\r\nimport {Observable} from \"rxjs/Observable\";\r\n\r\nexport class AppEvents{\r\n // for changeDetection\r\n private static _markForChangeDetection = new Subject();\r\n \r\n // for products\r\n private static _products = new Subject();\r\n private static _fonts = new Subject();\r\n private static _designColors = new Subject();\r\n private static _productViewDesignElements = new Subject();\r\n private static _currentDesignElement = new Subject();\r\n private static _productView = new Subject();\r\n private static _productViewBorderBox = new Subject();\r\n private static _productSize = new Subject();\r\n private static _product = new Subject();\r\n private static _productDetails = new Subject();\r\n private static _totalProductCount = new Subject();\r\n private static _setProductView = new Subject ();\r\n private static _productFont = new Subject ();\r\n private static _currentDesignElementText = new Subject();\r\n private static _currentDesignElementRotation = new Subject();\r\n private static _currentDesignElementLock = new Subject();\r\n private static _productViewLoaded = new Subject();\r\n \r\n // for design\r\n private static _loadSavedDesign = new Subject();\r\n private static _currentDesignChanged = new Subject();\r\n private static _maxSizeReached = new Subject();\r\n\r\n private static _validDesign = new Subject();\r\n\r\n // for design templates\r\n private static _createNewTemplate = new Subject();\r\n private static _designTemplateSaved = new Subject();\r\n \r\n // for color\r\n private static _color = new Subject();\r\n private static _colorSelection = new Subject();\r\n \r\n // for screen shot view\r\n // private static _screenshotGetSharableSource = new Subject();\r\n // private static _screenshotReturnSharableSource = new Subject();\r\n // private static _screenshotPerformSource = new Subject();\r\n // private static _screenshotDoneSource = new Subject();\r\n \r\n // for files\r\n private static _imageErrorSource = new Subject();\r\n private static _imageFileUploadedSource = new Subject();\r\n private static _imageFileUploadingSource = new Subject();\r\n private static _imageTooBig = new Subject();\r\n \r\n // for price\r\n private static _priceGetSource = new Subject();\r\n \r\n // for modal\r\n private static _openModal = new Subject();\r\n private static _closeModal = new Subject();\r\n \r\n // for clipart add\r\n private static _addClipart = new Subject();\r\n private static _clipartWhite = new Subject();\r\n private static _clipartColor = new Subject();\r\n\r\n // for new image source from graphics mill\r\n private static _imageSource = new Subject();\r\n private static _resizeBoxSource = new Subject();\r\n \r\n static markChangeDetectionO = AppEvents._markForChangeDetection.asObservable();\r\n \r\n static productsO = AppEvents._products.asObservable();\r\n static fontsO = AppEvents._fonts.asObservable();\r\n static designColorsO = AppEvents._designColors.asObservable();\r\n \r\n static productViewDesignElementsO = AppEvents._productViewDesignElements.asObservable();\r\n static currentDesignElementO = AppEvents._currentDesignElement.asObservable();\r\n static productViewO = AppEvents._productView.asObservable();\r\n static productViewBorderBoxO = AppEvents._productViewBorderBox.asObservable();\r\n static productSizeO = AppEvents._productSize.asObservable();\r\n static productO = AppEvents._product.asObservable();\r\n static productDetailsO = AppEvents._productDetails.asObservable();\r\n static totalProductCountO = AppEvents._totalProductCount.asObservable();\r\n static setProductViewO = AppEvents._setProductView.asObservable();\r\n static colorO = AppEvents._color.asObservable();\r\n static productFontO = AppEvents._productFont.asObservable();\r\n static currentDesignElementTextO = AppEvents._currentDesignElementText.asObservable();\r\n static currentDesignElementRotationO = AppEvents._currentDesignElementRotation.asObservable();\r\n static currentDesignElementLockO = AppEvents._currentDesignElementLock.asObservable();\r\n static loadDesignO = AppEvents._loadSavedDesign.asObservable();\r\n static currentDesignChangedO = AppEvents._currentDesignChanged.asObservable();\r\n static productViewLoadedO = AppEvents._productViewLoaded.asObservable();\r\n static maxSizeReachedO = AppEvents._maxSizeReached.asObservable();\r\n\r\n static validDesignO = AppEvents._validDesign.asObservable();\r\n\r\n static createNewTemplateO = AppEvents._createNewTemplate.asObservable();\r\n static designTemplateSavedO = AppEvents._designTemplateSaved.asObservable();\r\n \r\n static colorSelectionO = AppEvents._colorSelection.asObservable();\r\n \r\n // static screenShotGetSharable = AppEvents._screenshotGetSharableSource.asObservable();\r\n // static screenshotReturnSharable = AppEvents._screenshotReturnSharableSource.asObservable();\r\n // static screenshotPerform = AppEvents._screenshotPerformSource.asObservable();\r\n \r\n private static _saveDesignSource = new Subject();\r\n static saveDesignO = AppEvents._saveDesignSource.asObservable();\r\n private static _saveTemplateSource = new Subject();\r\n static saveTemplateO = AppEvents._saveTemplateSource.asObservable();\r\n private static _completeCheckoutSource = new Subject();\r\n static completeCheckoutO = AppEvents._completeCheckoutSource.asObservable();\r\n\r\n private static _refreshSavedDesignView = new Subject();\r\n static refreshSavedDesignViewO = AppEvents._refreshSavedDesignView.asObservable();\r\n\r\n private static _designView = new Subject();\r\n static designViewO = AppEvents._designView.asObservable();\r\n \r\n static imageError = AppEvents._imageErrorSource.asObservable();\r\n static imageFileUploaded = AppEvents._imageFileUploadedSource.asObservable();\r\n static imageFileUploading = AppEvents._imageFileUploadingSource.asObservable();\r\n static imageTooBigError = AppEvents._imageTooBig.asObservable();\r\n \r\n static priceGet = AppEvents._priceGetSource.asObservable();\r\n static openModalO = AppEvents._openModal.asObservable();\r\n static closeModalO = AppEvents._closeModal.asObservable();\r\n \r\n static addClipartO = AppEvents._addClipart.asObservable();\r\n static clipartWhiteO = AppEvents._clipartWhite.asObservable();\r\n static clipartColorO = AppEvents._clipartColor.asObservable();\r\n\r\n static imageSourceO = AppEvents._imageSource.asObservable();\r\n static resizeBoxO = AppEvents._resizeBoxSource.asObservable();\r\n\r\n private static _designHasMorePrintColors = new Subject();\r\n static designHasMorePrintColorsO = AppEvents._designHasMorePrintColors.asObservable();\r\n emitDesignHasMorePrintColors(value: boolean) {\r\n AppEvents._designHasMorePrintColors.next(value);\r\n }\r\n\r\n private static _saveStateChange = new Subject();\r\n static saveStateChangeO = AppEvents._saveStateChange.asObservable();\r\n emitSaveState() {\r\n AppEvents._saveStateChange.next();\r\n }\r\n\r\n private static _personalizationChange = new Subject();\r\n static personalizationChangeO = AppEvents._personalizationChange.asObservable();\r\n emitPersonalizationChange(value: number) {\r\n AppEvents._personalizationChange.next(value);\r\n }\r\n\r\n private static _designOutsidePrintArea = new Subject();\r\n static designOutsidePrintAreaO = AppEvents._designOutsidePrintArea.asObservable();\r\n emitDesignOutsidePrintArea(value: any) {\r\n AppEvents._designOutsidePrintArea.next(value);\r\n }\r\n\r\n private static _moveArtboard = new Subject();\r\n static moveArtboardO = AppEvents._moveArtboard.asObservable();\r\n emitMoveArtboard(value: any) {\r\n AppEvents._moveArtboard.next(value);\r\n }\r\n\r\n private static _repositionArtboard = new Subject();\r\n static repositionArtboardO = AppEvents._repositionArtboard.asObservable();\r\n emitRepositionArtboard(value: any) {\r\n AppEvents._repositionArtboard.next(value);\r\n }\r\n\r\n private static _repositionElement = new Subject();\r\n static repositionElementO = AppEvents._repositionElement.asObservable();\r\n emitRepositionElement(value: any) {\r\n AppEvents._repositionElement.next(value);\r\n }\r\n\r\n private static _rotationPosition = new Subject();\r\n static rotationPositionO = AppEvents._rotationPosition.asObservable();\r\n emitRotationPosition(value: any) {\r\n AppEvents._rotationPosition.next(value);\r\n }\r\n\r\n private static _calculatePersonalizationCost = new Subject();\r\n static calculatePersonalizationCostO = AppEvents._calculatePersonalizationCost.asObservable();\r\n emitCalculatePersonalizationCost() {\r\n AppEvents._calculatePersonalizationCost.next();\r\n }\r\n\r\n private static openPersonalizationModal = new Subject();\r\n static openPersonalizationModalO = AppEvents.openPersonalizationModal.asObservable();\r\n emitOpenPersonalizationModal(isCheckout: boolean) {\r\n AppEvents.openPersonalizationModal.next(isCheckout);\r\n }\r\n\r\n private static _autoSave = new Subject();\r\n static autoSaveO = AppEvents._autoSave.asObservable();\r\n emitAutoSave() {\r\n AppEvents._autoSave.next();\r\n }\r\n\r\n private static _hasMultipleElements = new Subject();\r\n static hasMultipleElementsO = AppEvents._hasMultipleElements.asObservable();\r\n emitMultipleElementsSelected(surroundingBox: any) {\r\n AppEvents._hasMultipleElements.next(surroundingBox);\r\n }\r\n\r\n private static _addProduct = new Subject();\r\n static addProductO = AppEvents._addProduct.asObservable();\r\n emitAddProduct(decorationGroup: any) {\r\n AppEvents._addProduct.next(decorationGroup);\r\n }\r\n\r\n private static _changeProduct = new Subject();\r\n static changeProductO = AppEvents._changeProduct.asObservable();\r\n emitChangeProduct(product: any) {\r\n AppEvents._changeProduct.next(product);\r\n }\r\n\r\n private static _setDecorationGroup = new Subject();\r\n static setDecorationGroupO = AppEvents._setDecorationGroup.asObservable();\r\n emitNewDecorationGroup(decorationGroup: any) {\r\n AppEvents._setDecorationGroup.next(decorationGroup);\r\n }\r\n\r\n emitRefreshSavedDesignView() {\r\n AppEvents._refreshSavedDesignView.next();\r\n }\r\n \r\n emitMarkChangeDetection(value: any){\r\n AppEvents._markForChangeDetection.next(true);\r\n }\r\n \r\n emitProductsChange(value: any){\r\n AppEvents._products.next(value);\r\n }\r\n \r\n emitFontsChange(value: any){\r\n AppEvents._fonts.next(value);\r\n }\r\n \r\n emitDesignColorsChange(value: any){\r\n AppEvents._designColors.next(value);\r\n }\r\n \r\n emitProductViewDesignElementsChange(value: any) {\r\n AppEvents._productViewDesignElements.next(value);\r\n }\r\n \r\n emitCurrentDesignElementChange(value: any) {\r\n AppEvents._currentDesignElement.next(value);\r\n }\r\n \r\n emitCurrentDesignElementTextChanged(value: any){\r\n AppEvents._currentDesignElementText.next(value);\r\n }\r\n\r\n emitCurrentDesignElementRotationChanged(value: any) {\r\n AppEvents._currentDesignElementRotation.next(value);\r\n }\r\n\r\n emitCurrentDesignElementLockChanged(value: any) {\r\n AppEvents._currentDesignElementLock.next(value);\r\n }\r\n\r\n emitDesignViewChanged(value: any) {\r\n AppEvents._designView.next(value);\r\n }\r\n \r\n emitLoadSavedDesign(value: any) {\r\n AppEvents._loadSavedDesign.next(value);\r\n }\r\n\r\n emitCreateNewDesignTemplate() {\r\n AppEvents._createNewTemplate.next();\r\n }\r\n\r\n emitDesignTemplateSaved() {\r\n AppEvents._designTemplateSaved.next();\r\n }\r\n \r\n emitCurrentDesignChanged(value: any) {\r\n AppEvents._currentDesignChanged.next(value);\r\n }\r\n\r\n emitMaxSizeReached(value: any) {\r\n AppEvents._maxSizeReached.next(value);\r\n }\r\n\r\n emitValidDesign(value: any) {\r\n AppEvents._validDesign.next(value);\r\n }\r\n \r\n emitProductViewChange(value: any) {\r\n AppEvents._productView.next(value);\r\n }\r\n\r\n emitSetProductViewBorderBox(value: any) {\r\n AppEvents._productViewBorderBox.next(value);\r\n }\r\n\r\n emitProductViewLoaded(value: any) {\r\n AppEvents._productViewLoaded.next(value);\r\n }\r\n\r\n emitProductSizeChange(value: any) {\r\n AppEvents._productSize.next(value);\r\n }\r\n \r\n emitProductChange(value: any) {\r\n AppEvents._product.next(value);\r\n }\r\n \r\n emitProductDetailsChange(value: any){\r\n AppEvents._productDetails.next(value);\r\n }\r\n \r\n emitTotalProductCountChange(value: any){\r\n AppEvents._totalProductCount.next(value);\r\n }\r\n \r\n emitSetProductViewChange(value: any){\r\n AppEvents._setProductView.next(value);\r\n }\r\n \r\n emitColorChange(value: any) {\r\n AppEvents._color.next(value);\r\n }\r\n \r\n emitColorSelectionChange(value: any){\r\n AppEvents._colorSelection.next(value);\r\n }\r\n \r\n emitProductFontChange(value: any){\r\n AppEvents._productFont.next(value);\r\n }\r\n \r\n emitSaveDesign(checkout: any) {\r\n AppEvents._saveDesignSource.next(checkout);\r\n }\r\n \r\n emitSaveDesignTemplate() {\r\n AppEvents._saveTemplateSource.next();\r\n }\r\n\r\n emitCompleteCheckout() {\r\n AppEvents._completeCheckoutSource.next();\r\n }\r\n \r\n emitImageError(value: any) {\r\n AppEvents._imageErrorSource.next(value);\r\n }\r\n\r\n emitImageTooBig(value: any) {\r\n AppEvents._imageTooBig.next(value);\r\n }\r\n \r\n emitImageFileUploaded(value: any) {\r\n AppEvents._imageFileUploadedSource.next(value);\r\n }\r\n \r\n emitImageFileUploading(value: any) {\r\n AppEvents._imageFileUploadingSource.next(value);\r\n }\r\n \r\n emitPriceGet(value: any) {\r\n AppEvents._priceGetSource.next(value);\r\n }\r\n \r\n emitOpenModalChange(value: any) {\r\n AppEvents._openModal.next(value);\r\n }\r\n \r\n emitCloseModalChange(value: any) {\r\n AppEvents._closeModal.next(value);\r\n }\r\n \r\n emitAddClipartChange(value: any){\r\n AppEvents._addClipart.next(value);\r\n } \r\n \r\n emitClipartWhiteChange(value: any){\r\n AppEvents._clipartWhite.next(value);\r\n }\r\n \r\n emitClipartColorChanged(value: any){\r\n AppEvents._clipartColor.next(value);\r\n }\r\n\r\n emitImageSourceChanged(value: any){\r\n AppEvents._imageSource.next(value);\r\n }\r\n\r\n resizeBox(value: any){\r\n AppEvents._resizeBoxSource.next(value);\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/appEvents.ts","import {Injectable} from \"@angular/core\";\r\nimport {LoadDesignHelperService} from \"./loadDesignHelper.service\";\r\nimport {DesignHelperService} from \"./designHelper.service\";\r\nimport {AppEvents} from \"../appEvents\";\r\n\r\ndeclare var _: any;\r\ndeclare var $: any;\r\n\r\n@Injectable()\r\nexport class ProductColorSelectionService {\r\n\r\n _selection: any = []; // product color and quantities\r\n _defaultGroup: any;\r\n appEvents: AppEvents = new AppEvents();\r\n\r\n constructor(private loadDesignHelper: LoadDesignHelperService, private designsHelper: DesignHelperService) {\r\n } \r\n\r\n resetSelection() {\r\n while(this._selection.length > 0) {\r\n this._selection.pop();\r\n }\r\n this._defaultGroup = null;\r\n }\r\n\r\n setExistingSelection(selection: any) {\r\n this._selection = selection;\r\n }\r\n\r\n overrideSelection(selection: any) {\r\n this.resetSelection();\r\n selection.forEach(element => {\r\n this._selection.push(element);\r\n });\r\n this.appEvents.emitColorSelectionChange(this._selection);\r\n }\r\n\r\n overridePersonalizationGroups(selection: any, destinationSelection: any) {\r\n if(selection && destinationSelection) {\r\n selection.forEach((sourceColor: any) => {\r\n let destinationColor = _.findWhere(destinationSelection, {id: sourceColor.id});\r\n if(destinationColor) {\r\n destinationColor.personalizationGroups = [];\r\n sourceColor.personalizationGroups.forEach((group: any) => {\r\n let clonedGroup = JSON.parse(JSON.stringify(group));\r\n destinationColor.personalizationGroups.push(group);\r\n });\r\n }\r\n });\r\n }\r\n }\r\n\r\n overrideDefaultGroup(defaultGroup: any) {\r\n if(defaultGroup) {\r\n this._defaultGroup = defaultGroup;\r\n }\r\n }\r\n\r\n getClonedDefaultGroup() {\r\n if(this._defaultGroup) {\r\n return JSON.parse(JSON.stringify(this._defaultGroup));\r\n }\r\n else return null;\r\n }\r\n\r\n cloneSelection() {\r\n if(this._selection) {\r\n return JSON.parse(JSON.stringify(this._selection));\r\n }\r\n else return null;\r\n }\r\n\r\n copySelections(selectionsDestination: any, selectionsSource: any, product: any) {\r\n\r\n // copy default group based on source\r\n if(!this._defaultGroup) {\r\n this.copyDefaultGroup(selectionsSource, product);\r\n }\r\n\r\n if(this.hasPersonalizations(selectionsSource) && this.designsHelper.totalProductCountFromSelection(selectionsSource) > 0) {\r\n selectionsDestination.forEach((destination) => {\r\n let source = _.findWhere(selectionsSource, {id: destination.id});\r\n destination.personalizationGroups = [];\r\n destination.imageSource = this.loadDesignHelper.getImageSource(product, destination.id);\r\n\r\n if(source) {\r\n let j: any = 1;\r\n if(source.imageSource) {\r\n destination.imageSource = source.imageSource;\r\n }\r\n else {\r\n let productColor = _.findWhere(product.colors, {id: source.id});\r\n if(productColor) {\r\n destination.imageSource = productColor.mainImageSource;\r\n }\r\n }\r\n destination.showPopup = source.showPopup;\r\n destination.showPersonalizationQuantityWarning = source.showPersonalizationQuantityWarning;\r\n \r\n destination.sizes.forEach((size) => {\r\n if(size.quantity > 0) {\r\n let personalizationGroups = _.filter(source.personalizationGroups, (group) => {\r\n if(group.size) {\r\n return group.size.id == size.id;\r\n }\r\n return false;\r\n });\r\n if(personalizationGroups) {\r\n let i: any = 0;\r\n while(i < size.quantity && i < personalizationGroups.length) {\r\n let group = personalizationGroups[i];\r\n let personalizationGroup = {\r\n id: group.id,\r\n size: group.size,\r\n showSize: false,\r\n index: j,\r\n personalizations: [],\r\n };\r\n destination.personalizationGroups.push(personalizationGroup);\r\n size.count++;\r\n \r\n group.personalizations.forEach((p) => {\r\n let view = _.find(product.views, (view) => {\r\n return (view.locationId == p.locationId);\r\n });\r\n if(!view) {\r\n view = product.views[0];\r\n }\r\n let personalization: any = {\r\n value: p.value,\r\n header: p.header,\r\n productColorId: destination.id,\r\n designElementId: p.designElementId,\r\n locationName: view.name,\r\n locationId: view.locationId,\r\n };\r\n personalizationGroup.personalizations.push(personalization);\r\n });\r\n i++;\r\n j++;\r\n }\r\n }\r\n }\r\n });\r\n }\r\n });\r\n }\r\n else {\r\n selectionsSource.forEach((sourceColor) => {\r\n let destinationColor = _.findWhere(selectionsDestination, {id: sourceColor.id});\r\n if(destinationColor) {\r\n if(sourceColor.imageSource) {\r\n destinationColor.imageSource = sourceColor.imageSource;\r\n }\r\n else {\r\n let productColor = _.findWhere(product.colors, {id: sourceColor.id});\r\n if(productColor) {\r\n destinationColor.imageSource = productColor.mainImageSource;\r\n }\r\n }\r\n\r\n destinationColor.showPopup = sourceColor.showPopup;\r\n destinationColor.showPersonalizationQuantityWarning = sourceColor.showPersonalizationQuantityWarning;\r\n destinationColor.personalizationGroups = [];\r\n sourceColor.personalizationGroups.forEach((group) => {\r\n let personalizationGroup = {\r\n id: group.id,\r\n size: group.size,\r\n showSize: false,\r\n index: group.index,\r\n personalizations: [],\r\n };\r\n if(!destinationColor.personalizationGroups) {\r\n destinationColor.personalizationGroups = [];\r\n }\r\n destinationColor.personalizationGroups.push(personalizationGroup);\r\n \r\n group.personalizations.forEach((p) => {\r\n let view = _.find(product.views, (view) => {\r\n return (view.locationId == p.locationId);\r\n });\r\n if(!view) {\r\n view = product.views[0];\r\n }\r\n let personalization: any = {\r\n value: p.value,\r\n header: p.header,\r\n productColorId: destinationColor.id,\r\n designElementId: p.designElementId,\r\n locationName: view.name,\r\n locationId: view.locationId,\r\n };\r\n personalizationGroup.personalizations.push(personalization);\r\n });\r\n });\r\n \r\n //copy size counts\r\n sourceColor.sizes.forEach((size) => {\r\n if(size.count > 0) {\r\n let selectedSize = _.findWhere(destinationColor.sizes, {id: size.id});\r\n if(selectedSize) {\r\n selectedSize.count = size.count;\r\n selectedSize.quantity = size.quantity;\r\n }\r\n }\r\n });\r\n }\r\n });\r\n }\r\n }\r\n\r\n removeExtraPersonalizationGroups(selection: any, colorSizes: any) {\r\n if(selection && colorSizes) {\r\n colorSizes.forEach((colorSize) => {\r\n let colorSelection = _.findWhere(selection, {id: colorSize.colorId});\r\n if(colorSelection) {\r\n let size = _.findWhere(colorSelection.sizes, {id: colorSize.sizeId});\r\n if(size && colorSelection.personalizationGroups) {\r\n if(size.quantity < colorSelection.personalizationGroups.length) {\r\n this.deleteGroupIfQuantityIsReduced(colorSelection, size);\r\n }\r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n setDefaultGroupHeader(designElement: any) {\r\n if(designElement && this._selection && this._selection.length > 0) {\r\n let defaultGroup = this.getDefaultGroup();\r\n if(defaultGroup) {\r\n defaultGroup.personalizations.forEach(personalization => {\r\n if(personalization.designElementId == designElement.id) {\r\n if(designElement.personalizationName) {\r\n personalization.header = designElement.personalizationName;\r\n }\r\n else {\r\n personalization.header = designElement.text;\r\n }\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n setSelection(product: any, color: any) {\r\n if(this._selection === void 0 || this._selection.length === 0) {\r\n let selection: any = {\r\n id: color.id,\r\n hex: color.hex,\r\n name: color.name,\r\n sizes: _.map(product.sizes, _.clone),\r\n showPopup: false,\r\n showPersonalizationQuantityWarning: false,\r\n imageSource: color.mainImageSource,\r\n personalizationGroups: [],\r\n };\r\n this._selection.push(selection);\r\n this.appEvents.emitColorSelectionChange(this._selection);\r\n }\r\n }\r\n\r\n mapColorAndSizesInSelection(product: any, color: any) {\r\n if(product && color) {\r\n var productColor = _.findWhere(product.colors, {\r\n id: color.id\r\n });\r\n if(productColor) {\r\n color.hex = productColor.hex,\r\n color.name = productColor.name,\r\n color.imageSource = productColor.mainImageSource,\r\n color.sizes = this.loadDesignHelper.setColorSizes(color.sizes, product.sizes);\r\n }\r\n }\r\n }\r\n\r\n addColorToSelection(product: any, addColor: any, selection: any) {\r\n if(addColor) {\r\n var selectionColor = this.loadDesignHelper.getColorSelection(product, this._selection, addColor);\r\n if (selectionColor) {\r\n selection.push(selectionColor);\r\n return selectionColor;\r\n }\r\n }\r\n }\r\n\r\n addColor(product: any, addColor: any) {\r\n this.addColorToSelection(product, addColor, this._selection);\r\n }\r\n\r\n deleteColor(selectedColor: any) {\r\n if(this._selection.length > 1) {\r\n this.loadDesignHelper.removeColorSelection(this._selection, selectedColor);\r\n let count = this.designsHelper.totalProductCountFromSelection(this._selection);\r\n if(count === 0) {\r\n this.loadDesignHelper.setSelectionDefaultQuantity(selectedColor, this._selection[0]);\r\n count = this.designsHelper.totalProductCountFromSelection(this._selection);\r\n }\r\n this.appEvents.emitTotalProductCountChange(count);\r\n }\r\n }\r\n\r\n deleteMultiProductColor(selectedColor: any, selection: any = null) {\r\n if(!selection) {\r\n selection = this._selection;\r\n }\r\n this.loadDesignHelper.removeColorSelection(selection, selectedColor);\r\n }\r\n\r\n setDefaultQuantity(product: any) {\r\n let defaultSize = _.find(product.sizes, (size) => {\r\n return size.quantity > 0;\r\n });\r\n if(defaultSize && this._selection.length > 0) {\r\n this._selection[0].sizes.forEach(size => {\r\n if(size.id === defaultSize.id) {\r\n size.quantity = defaultSize.quantity;\r\n }\r\n });\r\n }\r\n }\r\n\r\n getDefaultGroup() {\r\n return this._defaultGroup;\r\n }\r\n\r\n copyDefaultGroup(selections: any, product: any) {\r\n if(selections && selections.length > 0) {\r\n let filteredSelections: any;\r\n filteredSelections = _.filter(selections, (selection) => {\r\n return selection.personalizationGroups && selection.personalizationGroups.length > 0;\r\n });\r\n\r\n if(filteredSelections && filteredSelections.length > 0) {\r\n let firstGroup: any = filteredSelections[0].personalizationGroups[0];\r\n this._defaultGroup = {\r\n id: firstGroup.id,\r\n size: null,\r\n showSize: false,\r\n personalizations: [],\r\n index: 0,\r\n };\r\n firstGroup.personalizations.forEach((p) => {\r\n let view = _.find(product.views, (view) => {\r\n return (view.locationId == p.locationId);\r\n });\r\n if(!view) {\r\n view = product.views[0];\r\n }\r\n let personalization: any = {\r\n value: p.value,\r\n header: p.header,\r\n designElementId: p.designElementId,\r\n locationName: view.name,\r\n locationId: view.locationId,\r\n };\r\n this._defaultGroup.personalizations.push(personalization);\r\n });\r\n }\r\n }\r\n }\r\n\r\n addDefaultGroupBySelection(defaultGroup: any, product: any, selection: any) {\r\n if(defaultGroup) {\r\n let selectedColor = selection[0];\r\n\r\n let personalizationGroup = {\r\n id: defaultGroup.id,\r\n size: null,\r\n showSize: false,\r\n personalizations: [],\r\n index: 0,\r\n };\r\n\r\n if(!selectedColor.personalizationGroups) {\r\n selectedColor.personalizationGroups = [];\r\n }\r\n selectedColor.personalizationGroups.push(personalizationGroup);\r\n\r\n if(!personalizationGroup.index) {\r\n personalizationGroup.index = selectedColor.personalizationGroups.length;\r\n }\r\n\r\n defaultGroup.personalizations.forEach((p) => {\r\n let view = _.find(product.views, (view) => {\r\n return (view.locationId == p.locationId);\r\n });\r\n if(!view) {\r\n view = product.views[0];\r\n }\r\n let personalization: any = {\r\n value: p.value,\r\n header: p.header,\r\n productColorId: selectedColor.id,\r\n designElementId: p.designElementId,\r\n locationName: view.name,\r\n locationId: view.locationId,\r\n };\r\n\r\n // update personalization view information (location name and id)\r\n p.locationName = personalization.locationName;\r\n p.locationId = personalization.locationId;\r\n\r\n personalizationGroup.personalizations.push(personalization);\r\n });\r\n \r\n this.appEvents.emitCalculatePersonalizationCost();\r\n }\r\n }\r\n\r\n addDefaultGroup(defaultGroup: any, product: any) {\r\n if(this._selection && this._selection.length > 0) {\r\n this.addDefaultGroupBySelection(defaultGroup, product, this._selection);\r\n }\r\n }\r\n\r\n updatePersonalizationColorId(selectedColor: any) {\r\n if(selectedColor) {\r\n selectedColor.personalizationGroups.forEach((group) => {\r\n group.personalizations.forEach((personalization) => {\r\n personalization.productColorId = selectedColor.id;\r\n });\r\n });\r\n }\r\n }\r\n\r\n addPersonalizationGroup(selectedColor:any, defaultGroup: any, guid: any) {\r\n if(selectedColor) {\r\n let personalizationGroup: any;\r\n let size: any;\r\n size = _.find(selectedColor.sizes, (size) => {\r\n return size.quantity > 0 && size.quantity > size.count;\r\n });\r\n\r\n if(size) {\r\n size.count++;\r\n personalizationGroup = {\r\n id: guid,\r\n size: size,\r\n showSize: false,\r\n personalizations: [],\r\n };\r\n\r\n if(!selectedColor.personalizationGroups) {\r\n selectedColor.personalizationGroups = [];\r\n }\r\n selectedColor.personalizationGroups.push(personalizationGroup);\r\n \r\n if(!personalizationGroup.index) {\r\n personalizationGroup.index = selectedColor.personalizationGroups.length;\r\n }\r\n\r\n let assignValue: boolean = false;\r\n if(selectedColor.personalizationGroups.length == 1) {\r\n assignValue = true;\r\n }\r\n \r\n if(defaultGroup) {\r\n defaultGroup.personalizations.forEach((p) => {\r\n let personalization: any = {\r\n value: assignValue ? p.value : \"\",\r\n header: p.header,\r\n productColorId: selectedColor.id,\r\n designElementId: p.designElementId,\r\n locationName: p.locationName,\r\n locationId: p.locationId,\r\n };\r\n personalizationGroup.personalizations.push(personalization);\r\n });\r\n }\r\n\r\n // can't call this here. With multi products, it messes up the personalization count\r\n // this.appEvents.emitCalculatePersonalizationCost();\r\n }\r\n }\r\n }\r\n\r\n removePersonalizationGroup(selectedColor:any, group: any) {\r\n if(selectedColor && group) {\r\n selectedColor.personalizationGroups.splice(_.indexOf(selectedColor.personalizationGroups, \r\n _.findWhere(selectedColor.personalizationGroups, {id: group.id})), 1);\r\n \r\n // reset size counter\r\n let size = _.findWhere(selectedColor.sizes, {id: group.size.id});\r\n if(size) {\r\n size.count--;\r\n }\r\n\r\n // reset index for the groups\r\n let groupIndex: number = 1;\r\n selectedColor.personalizationGroups.forEach((group) => {\r\n group.index = groupIndex++;\r\n });\r\n\r\n this.appEvents.emitCalculatePersonalizationCost();\r\n }\r\n }\r\n\r\n updatePersonalizationHeader(text: any, designElementId: any) {\r\n // update header in the default group\r\n if(this._defaultGroup) {\r\n let personalization = _.findWhere(this._defaultGroup.personalizations, {designElementId: designElementId});\r\n if(personalization) {\r\n personalization.header = text;\r\n }\r\n }\r\n\r\n this._selection.forEach((selection) => {\r\n if(selection.personalizationGroups) {\r\n selection.personalizationGroups.forEach((group) => {\r\n // set header\r\n let personalization = _.findWhere(group.personalizations, {designElementId: designElementId});\r\n if(personalization) {\r\n personalization.header = text;\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n addPersonalizationBySelection(selections: any, groupId: any, header:any, value: any, productColorId: any, productSizeId: any, \r\n designElementId: any, locationName: any, locationId: any) {\r\n\r\n // check if a default group exits, if not, create one\r\n if(!this._defaultGroup) {\r\n this._defaultGroup = {\r\n id : groupId,\r\n size : void 0,\r\n showSize : false,\r\n personalizations : [],\r\n index : 0,\r\n };\r\n }\r\n\r\n // add personalization to the default group\r\n if(this._defaultGroup) {\r\n let personalization: any = {\r\n header: header,\r\n value: value,\r\n designElementId: designElementId,\r\n locationName: locationName,\r\n locationId: locationId,\r\n };\r\n this._defaultGroup.personalizations.push(personalization);\r\n }\r\n\r\n // go through each selection groups and add this personalization\r\n this.addPersonalizationGroupToSelection(selections, header, value, productColorId, designElementId, locationName, locationId);\r\n \r\n this.appEvents.emitCalculatePersonalizationCost();\r\n }\r\n\r\n addPersonalizationGroupToSelection(selections: any, header:any, value: any, productColorId: any, designElementId: any, locationName: any, locationId: any) {\r\n if(selections) {\r\n selections.forEach((selection) => {\r\n selection.personalizationGroups.forEach((group) => {\r\n // create new personalization\r\n let personalizationFromGroup: any = _.findWhere(group.personalizations, {\r\n designElementId: designElementId\r\n })\r\n if(!personalizationFromGroup) {\r\n let personalization: any = {\r\n header: header,\r\n value: value,\r\n productColorId: productColorId,\r\n designElementId: designElementId,\r\n locationName: locationName,\r\n locationId: locationId,\r\n };\r\n //personalization.value = (group.id === groupId) ? value : \"\";\r\n group.personalizations.push(personalization);\r\n }\r\n });\r\n });\r\n }\r\n }\r\n\r\n addPersonalization(groupId: any, header:any, value: any, productColorId: any, productSizeId: any, \r\n designElementId: any, locationName: any, locationId: any) {\r\n this.addPersonalizationBySelection(this._selection, groupId, header, value, \r\n productColorId, productSizeId, designElementId, locationName, locationId); \r\n }\r\n\r\n removePersonalizationFromSelection(selections: any, designElementId: any) {\r\n selections.forEach((selection) => {\r\n selection.personalizationGroups.forEach(group => {\r\n let personalizations: any = _.where(group.personalizations, {designElementId: designElementId});\r\n if(personalizations) {\r\n personalizations.forEach(personalization => {\r\n group.personalizations.splice(_.indexOf(group.personalizations, personalization), 1);\r\n });\r\n }\r\n });\r\n });\r\n\r\n // remove personalization from the default group\r\n if(this._defaultGroup) {\r\n let personalization = _.findWhere(this._defaultGroup.personalizations, {designElementId: designElementId});\r\n if(personalization) {\r\n this._defaultGroup.personalizations.splice(_.indexOf(this._defaultGroup.personalizations, personalization), 1);\r\n }\r\n }\r\n\r\n // if there are no more personalizations left in the group, delete all the groups and reset size counter.\r\n let defaultGroup = this.getDefaultGroup();\r\n if(defaultGroup && defaultGroup.personalizations.length == 0) {\r\n selections.forEach((selection) => { \r\n selection.personalizationGroups = [];\r\n selection.sizes.forEach((size) => {\r\n size.count = 0;\r\n });\r\n });\r\n }\r\n }\r\n\r\n removePersonalization(designElementId: any) {\r\n this.removePersonalizationFromSelection(this._selection, designElementId);\r\n\r\n // this._selection.forEach((selection) => {\r\n // selection.personalizationGroups.forEach(group => {\r\n // let personalizations: any = _.where(group.personalizations, {designElementId: designElementId});\r\n // if(personalizations) {\r\n // personalizations.forEach(personalization => {\r\n // group.personalizations.splice(_.indexOf(group.personalizations, personalization), 1);\r\n // });\r\n // }\r\n // });\r\n // });\r\n\r\n // // remove personalization from the default group\r\n // if(this._defaultGroup) {\r\n // let personalization = _.findWhere(this._defaultGroup.personalizations, {designElementId: designElementId});\r\n // if(personalization) {\r\n // this._defaultGroup.personalizations.splice(_.indexOf(this._defaultGroup.personalizations, personalization), 1);\r\n // }\r\n // }\r\n\r\n // // if there are no more personalizations left in the group, delete all the groups and reset size counter.\r\n // let defaultGroup = this.getDefaultGroup();\r\n // if(defaultGroup && defaultGroup.personalizations.length == 0) {\r\n // this._selection.forEach((selection) => { \r\n // selection.personalizationGroups = [];\r\n // selection.sizes.forEach((size) => {\r\n // size.count = 0;\r\n // });\r\n // });\r\n // }\r\n\r\n this.appEvents.emitCalculatePersonalizationCost();\r\n }\r\n\r\n deleteGroupIfQuantityIsReduced(selectedColor: any, size: any) {\r\n if(selectedColor && size) {\r\n if(selectedColor.personalizationGroups && selectedColor.personalizationGroups.length > 0) {\r\n let groups = _.filter(selectedColor.personalizationGroups, (group) => {\r\n if(group.size) {\r\n return (group.size.id == size.id);\r\n }\r\n return false;\r\n });\r\n if(groups && groups.length > size.quantity) {\r\n for(let i = groups.length; i > size.quantity ; i--) {\r\n let group = groups[i-1];\r\n size.count--;\r\n this.removePersonalizationGroup(selectedColor, group);\r\n }\r\n }\r\n }\r\n\r\n this.appEvents.emitCalculatePersonalizationCost();\r\n }\r\n }\r\n\r\n hasPersonalizations(selections: any = null) { \r\n if(this._defaultGroup) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n totalPersonalizationNamesAndNumbers() {\r\n let total: number = 0;\r\n\r\n this._selection.forEach((selection) => {\r\n if(selection.personalizationGroups) {\r\n selection.personalizationGroups.forEach((group) => {\r\n if(group.personalizations && group.personalizations.length > 0) {\r\n group.personalizations.forEach(personalization => {\r\n if(personalization.value && personalization.value != \"\") {\r\n total++;\r\n }\r\n });\r\n }\r\n });\r\n }\r\n });\r\n\r\n return total;\r\n }\r\n\r\n personalizationGroupsEnteredByDecorationGroup(decorationGroup: any) {\r\n let total: any = 0;\r\n if(decorationGroup) {\r\n decorationGroup.products.forEach((product) => {\r\n product.personalizationGroupsEntered = this.personalizationGroupsEntered(product.selection);\r\n product.selection.forEach((selectedColor: any) => {\r\n selectedColor.showPersonalizationQuantityWarning = this.personalizationMoreThanQuantities(selectedColor);\r\n });\r\n total += product.personalizationGroupsEntered;\r\n });\r\n }\r\n return total;\r\n }\r\n\r\n personalizationMoreThanQuantities(selectedColor: any) {\r\n let showWarning: boolean = false;\r\n if(selectedColor) {\r\n selectedColor.sizes.forEach((size) => {\r\n if(size.quantity < size.count) {\r\n showWarning = true;\r\n }\r\n });\r\n }\r\n return showWarning;\r\n }\r\n\r\n personalizationGroupsEntered(selections: any) {\r\n let total: number = 0;\r\n selections.forEach((selection) => {\r\n let size = _.find(selection.sizes, (size)=> {\r\n return size.quantity > 0;\r\n });\r\n if(size) {\r\n if(selection.personalizationGroups) {\r\n total += selection.personalizationGroups.length;\r\n }\r\n }\r\n });\r\n return total;\r\n }\r\n\r\n totalPersonalizations() {\r\n let total = 0;\r\n let defaultGroup = this.getDefaultGroup();\r\n\r\n if(defaultGroup && defaultGroup.personalizations) {\r\n total = defaultGroup.personalizations.length;\r\n }\r\n return total;\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/services/productColorSelection.service.ts","import {Component, OnInit, Input} from \"@angular/core\";\r\nimport {ClipartIconsService} from \"../../../resources/clipartIcons\";\r\nimport {ClipartCategoryService} from \"../../../resources/clipartCategory\";\r\nimport {ClipartSearchTermsService} from \"../../../resources/clipartSearchTerms\";\r\nimport {S3ProcessorService} from \"../../../services/s3Processor.service\";\r\nimport {AppEvents} from \"../../../appEvents\";\r\nimport {CONFIG} from \"../../../../environments/environment\";\r\nimport { ProductsHelperService } from \"../../../services/productsHelper.service\";\r\nimport { SelectedDesignColorsService } from \"../../../services/selectedDesignColors.service\";\r\nimport { GuidService } from \"../../../resources/guid\";\r\nimport { DecorationGroupHelperService } from \"app/services/decorationGroupHelper.service\";\r\n\r\ndeclare var _: any;\r\ndeclare var $: any;\r\n\r\n@Component(\r\n {\r\n selector: \"ecc-add-clipart\", \r\n template:\r\n `\r\n
\r\n
\r\n
Add Clipart
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
Categories
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
{{selectedCategory?.name}}
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
To apply a clipart, select it and click Add button
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n Add\r\n
\r\n
\r\n
\r\n
\r\n No results found. Try searching something else.\r\n
\r\n
\r\n Load More\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n\r\n\r\n\r\n\r\n `,\r\n }\r\n)\r\nexport class AddClipartComponent implements OnInit {\r\n\r\n @Input() set product(_product: any) {\r\n if(_product){\r\n this._product = _product;\r\n }\r\n } \r\n @Input() set pView(_productViewMap: any) {\r\n if(_productViewMap){\r\n this._productViewMap = _productViewMap;\r\n this._productView = _productViewMap.get('productView');\r\n }\r\n } \r\n @Input() set currentDesignElement(_currentDesignElementMap: any) {\r\n if(_currentDesignElementMap){\r\n this._currentDesignElementMap = _currentDesignElementMap;\r\n this._currentDesignElement = _currentDesignElementMap.get('currentDesignElement');\r\n } \r\n } \r\n @Input() set designColors(_designColors: any) {\r\n if(_designColors){\r\n this._designColors = _designColors;\r\n }\r\n } \r\n @Input() isDesignTemplate: boolean = false;\r\n @Input() desktop: boolean = true;\r\n\r\n protected _product: any;\r\n protected _currentDesignElement: any;\r\n protected _currentDesignElementMap: any;\r\n protected _productView: any;\r\n protected _productViewMap: any;\r\n protected _designColors: any;\r\n protected _isScreenPrint: boolean = false;\r\n protected rotationAngle: any = \"0\";\r\n\r\n selectedCategory: any = null;\r\n selectedSvg: any = null;\r\n svgsInView: boolean = false;\r\n isSearching: boolean = false;\r\n svgs: any = [];\r\n searchTerms: any = [];\r\n clipartCategories: any = [];\r\n showCategory: boolean = true;\r\n showTerms: boolean = false;\r\n appEvents: AppEvents = new AppEvents();\r\n searchText: string;\r\n offset: number = 0;\r\n searchTimeout: any;\r\n runSpinner: boolean = false;\r\n loadMore: boolean = false;\r\n \r\n constructor(protected clipartService: ClipartIconsService, protected s3ProcessorService: S3ProcessorService,\r\n protected clipartCategoryService: ClipartCategoryService, protected clipartSearchTermsService: ClipartSearchTermsService,\r\n protected productsHelper: ProductsHelperService, protected selectedColorsService: SelectedDesignColorsService,\r\n protected guidService: GuidService, protected decorationGroupHelper: DecorationGroupHelperService)\r\n {} \r\n \r\n ngOnInit() {\r\n this.reset();\r\n\r\n // load clipart category\r\n this.loadClipartCategory();\r\n }\r\n\r\n openModal(modalStr: any) {\r\n this.appEvents.emitOpenModalChange(modalStr);\r\n }\r\n\r\n searchTextUpdated() {\r\n this.svgs = [];\r\n this.selectedSvg = null;\r\n if (this.searchTimeout !== void 0) {\r\n clearTimeout(this.searchTimeout);\r\n }\r\n this.searchTimeout = setTimeout((t: any) => {\r\n this.offset = 0;\r\n this.runSpinner = true;\r\n this.searchTimeout = void 0;\r\n this.selectedSvg = null;\r\n this.getClipartIcons();\r\n }, 1000);\r\n }\r\n\r\n back() {\r\n this.selectedSvg = null;\r\n if(this.svgsInView) {\r\n this.svgsInView = false;\r\n this.searchText = \"\";\r\n this.svgs = [];\r\n }\r\n else if(this.showTerms) {\r\n this.showTerms = false;\r\n this.searchTerms = [];\r\n this.showCategory = true;\r\n this.selectedCategory = null;\r\n }\r\n else {\r\n this.openModal('addImage');\r\n }\r\n }\r\n\r\n selectCategory(category: any) {\r\n if(category) {\r\n this.selectedCategory = category;\r\n this.showTerms = true;\r\n this.showCategory = false;\r\n this.clipartSearchTermsService.get(category.id).subscribe((searchTerms) => {\r\n $.merge(this.searchTerms, searchTerms);\r\n },\r\n (error) => {\r\n this.showTerms = false;\r\n this.showCategory = true;\r\n });\r\n }\r\n }\r\n\r\n selectSearchTerm(searchTerm) {\r\n if(searchTerm && searchTerm.searchTerms) {\r\n this.searchText = searchTerm.searchTerms;\r\n this.searchTextUpdated();\r\n } \r\n }\r\n\r\n loadClipartCategory() {\r\n this.clipartCategoryService.getAll().subscribe((categories) => {\r\n $.merge(this.clipartCategories, categories);\r\n },\r\n (error) => {\r\n });\r\n }\r\n\r\n loadMoreIcons() {\r\n this.runSpinner = true;\r\n this.clipartService.get(this.searchText.trim(), this.offset).subscribe((svgs) => {\r\n this.offset += CONFIG.clipart.limit;\r\n \r\n if(svgs.length < CONFIG.clipart.limit) {\r\n this.loadMore = false;\r\n }\r\n else {\r\n this.loadMore = true;\r\n }\r\n\r\n $.merge(this.svgs, svgs);\r\n this.runSpinner = false;\r\n this.svgsInView = true;\r\n },\r\n (error) => {\r\n this.loadMore = false;\r\n this.runSpinner = false;\r\n });\r\n }\r\n\r\n getClipartIcons() {\r\n if(this.searchText) {\r\n this.clipartService.get(this.searchText.trim(), this.offset).subscribe((svgs) => {\r\n this.offset += CONFIG.clipart.limit;\r\n this.svgs = svgs;\r\n\r\n if(svgs.length < CONFIG.clipart.limit) {\r\n this.loadMore = false;\r\n }\r\n else {\r\n this.loadMore = true;\r\n }\r\n\r\n this.runSpinner = false;\r\n this.svgsInView = true;\r\n });\r\n }\r\n else {\r\n this.reset();\r\n }\r\n }\r\n\r\n addClipart(selectedSvg: any) {\r\n this.runSpinner = true;\r\n this.s3ProcessorService.uploadClipart(selectedSvg.icon_url).subscribe((url: any) => {\r\n if(url) {\r\n selectedSvg.icon_url = url[0];\r\n }\r\n this.addClipartElement(selectedSvg);\r\n });\r\n }\r\n\r\n addClipartElement(clipart: any) { \r\n let designElement: any;\r\n let defaultColor = this.defaultClipartColor(this._currentDesignElement);\r\n\r\n this.guidService.getNewGuid().subscribe((guid: any) => {\r\n designElement = {\r\n id: guid,\r\n type: \"clipart\",\r\n sourceId: clipart.id,\r\n source: clipart.icon_url,\r\n color: defaultColor,\r\n colorHex: defaultColor.hex,\r\n isEmbroidery: this.productsHelper.isEmbroideryOnly(this._product),\r\n locationId: this._productView.locationId,\r\n maxEmbroiderySizeReached: false,\r\n whiteIsRemoved: true, // clipart doesn't have white color anymore\r\n rotationAngle: \"0\",\r\n rotationPosition: {\r\n position: {\r\n top: 0,\r\n left: 0\r\n },\r\n isUpdated: false\r\n },\r\n position: {\r\n top: 0,\r\n left: 0\r\n },\r\n paper: void 0,\r\n size: void 0,\r\n borderBox: {\r\n position: {\r\n left: 0,\r\n top: 0,\r\n },\r\n scaleX: 0,\r\n scaleY: 0,\r\n size: {\r\n width: 0,\r\n height: 0\r\n }\r\n },\r\n zIndex: this._productView.designElements.length * 100,\r\n pixelsPerInch: this._productView.borderBox.size.pixelsPerInch,\r\n isLocked: false,\r\n isPercent: true,\r\n };\r\n\r\n if(!designElement.colors) {\r\n designElement.colors = [];\r\n }\r\n designElement.colors.push(defaultColor);\r\n this.selectedColorsService.updateColorInView(this._productView, null, defaultColor);\r\n\r\n return setTimeout(() => {\r\n this.appEvents.emitCurrentDesignElementChange(designElement);\r\n this._productView.designElements.push(designElement);\r\n this.decorationGroupHelper.addElement(designElement, this._productView);\r\n this.appEvents.emitProductViewDesignElementsChange(this._productView.designElements);\r\n this.appEvents.emitCurrentDesignChanged(true);\r\n this.appEvents.emitSaveState();\r\n this.runSpinner = false;\r\n if(!this.desktop) {\r\n this.openModal(\"mobileMain\");\r\n }\r\n });\r\n });\r\n }\r\n\r\n defaultClipartColor(_currentDesignElement: any) {\r\n if (_currentDesignElement && _currentDesignElement.color) {\r\n return _currentDesignElement.color;\r\n } \r\n else {\r\n let designColor = this.selectedColorsService.getDefaultDesignColorFromView(this._productView, this._product);\r\n if(!designColor) {\r\n designColor = this._designColors[0];\r\n } \r\n return designColor;\r\n }\r\n }\r\n \r\n selectSvg (svg: any) {\r\n this.selectedSvg = svg;\r\n return false;\r\n }\r\n\r\n reset () {\r\n this.svgs = [];\r\n this.svgsInView = false;\r\n this.selectedSvg = null;\r\n this.isSearching = false;\r\n this.runSpinner = false;\r\n this.loadMore = false;\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/desktop/add/addClipart.component.ts","import {Component, Input, Output, EventEmitter, OnDestroy, ChangeDetectionStrategy, OnInit} from \"@angular/core\";\r\nimport {Subscription} from \"rxjs/Subscription\";\r\n\r\nimport {AppEvents} from \"../../../appEvents\";\r\nimport {BaseClass} from \"../../../components/base.class\"; \r\nimport {RemoveBackgroundService} from \"../../../resources/removeBackground\";\r\nimport {ImageRenderService} from \"../../../resources/imageRender\";\r\nimport {DesignHelperService} from \"../../../services/designHelper.service\";\r\nimport {SelectedDesignColorsService} from \"../../../services/selectedDesignColors.service\";\r\nimport { ProductsHelperService } from \"../../../services/productsHelper.service\";\r\nimport { ImageHelperService } from \"../../../services/imageHelper.service\";\r\nimport { CONFIG } from \"../../../../environments/environment\";\r\nimport { GuidService } from \"../../../resources/guid\";\r\nimport { S3ProcessorService } from \"app/services/s3Processor.service\";\r\n\r\ndeclare var $: any;\r\ndeclare var _: any;\r\n\r\n@Component(\r\n {\r\n selector: \"ecc-add-image\",\r\n template:\r\n `\r\n\r\n
\r\n
\r\n
Add Image
\r\n
\r\n
Uploaded image should be jpeg | gif | png | psd | tif | svg | bmp | eps | pdf | webp, less than 15MB
\r\n
The uploaded file type is not supported
\r\n
The image, you are trying to upload, might be corrupted. Please choose another image.
\r\n
The file size should be less than 15MB
\r\n \r\n
\r\n File Uploading...\r\n
\r\n
Note!\r\n To see your previously saved proofed work, \r\n Login\r\n
\r\n
\r\n \r\n \r\n \r\n\r\n `,\r\n }\r\n)\r\nexport class AddImageComponent extends BaseClass implements OnDestroy, OnInit {\r\n \r\n @Input() set product(_product: any) {\r\n if(_product){\r\n this._product = _product;\r\n }\r\n } \r\n @Input() set pView(_productViewMap: any) {\r\n if(_productViewMap){\r\n this._productViewMap = _productViewMap;\r\n this._productView = _productViewMap.get('productView');\r\n }\r\n } \r\n @Input() set currentDesignElement(_currentDesignElementMap: any) {\r\n if(_currentDesignElementMap){\r\n this._currentDesignElementMap = _currentDesignElementMap;\r\n this._currentDesignElement = _currentDesignElementMap.get('currentDesignElement');\r\n } \r\n } \r\n @Input() set designColors(_designColors: any) {\r\n if(_designColors){\r\n this._designColors = _designColors;\r\n }\r\n } \r\n @Input() set modal(_modal: string) {\r\n this._modal = _modal;\r\n }\r\n @Input() set Customer (customer: any) {\r\n this.customer = customer;\r\n }\r\n @Input() isDesignTemplate: boolean = false;\r\n @Input() desktop: boolean = true;\r\n @Input() content: any;\r\n @Input() designId: any;\r\n\r\n _product: any;\r\n _currentDesignElement: any;\r\n _currentDesignElementMap: any;\r\n _productView: any;\r\n _productViewMap: any;\r\n _designColors: any;\r\n _modal: string;\r\n fileUploading: boolean = false;\r\n imageError: boolean;\r\n imageTooBig: boolean;\r\n imageCorrupted: boolean = false;\r\n appEvents: AppEvents = new AppEvents();\r\n toggle: boolean = true;\r\n _isScreenPrint: boolean = false;\r\n showEmbroideryConfirmation: boolean = false;\r\n lastPrintType : string = 'digital';\r\n customer: any;\r\n rotationAngle: any = \"0\";\r\n showColorSelection: boolean = false;\r\n fileUploadingSubscription: Subscription;\r\n fileUploadedSubscription: Subscription;\r\n imageErrorSubscription: Subscription;\r\n imageTooBigSubscription: Subscription;\r\n maxSizeReachedSubscription: Subscription;\r\n\r\n constructor(protected designsHelper: DesignHelperService, protected selectedColorsService: SelectedDesignColorsService,\r\n protected renderImageService: ImageRenderService, protected removeBackground: RemoveBackgroundService,\r\n protected productsHelper: ProductsHelperService, protected imageHelper: ImageHelperService,\r\n protected guidService: GuidService, protected fileProcessor: S3ProcessorService) { \r\n super();\r\n this.fileUploadedSubscription = AppEvents.imageFileUploaded.subscribe((src) => {\r\n this.imageTooBig = false;\r\n this.imageCorrupted = false;\r\n this.addImage(src);\r\n });\r\n this.fileUploadingSubscription = AppEvents.imageFileUploading.subscribe((msg) => {\r\n this.fileUploading = true;\r\n });\r\n this.imageErrorSubscription = AppEvents.imageError.subscribe((imageError) => {\r\n this.imageError = imageError;\r\n if(imageError) {\r\n this.fileUploading = false;\r\n }\r\n });\r\n this.imageTooBigSubscription = AppEvents.imageTooBigError.subscribe((error) => {\r\n this.fileUploading = false;\r\n this.imageTooBig = error;\r\n });\r\n this.maxSizeReachedSubscription = AppEvents.maxSizeReachedO.subscribe((element) => {\r\n if(this._currentDesignElement === element) {\r\n // Do nothing\r\n // this event will trigger angular to show warning\r\n }\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.imageTooBig = false;\r\n this.imageCorrupted = false;\r\n }\r\n \r\n ngOnDestroy() {\r\n this.fileUploadedSubscription.unsubscribe();\r\n this.fileUploadingSubscription.unsubscribe();\r\n this.imageErrorSubscription.unsubscribe();\r\n this.maxSizeReachedSubscription.unsubscribe();\r\n this.imageTooBigSubscription.unsubscribe();\r\n }\r\n\r\n fileChange(event: any) {\r\n let fileList: FileList = event.target.files;\r\n if(fileList.length > 0) {\r\n let file: File = fileList[0];\r\n this.fileProcessor.uploadImage(file);\r\n }\r\n }\r\n\r\n encodeURI() {\r\n if(this._product) {\r\n let url = '/login?returnUrl=/designer/product/' + this._product.id;\r\n let contentStr = (this.content) ? \"?content=\" + this.content : \"?content=\";\r\n let designStr = (this.designId) ? \"&design=\" + this.designId : \"&design=\";\r\n let viewStr = (this._productView) ? \"&view=\" + this._productView.id : \"&view=\";\r\n\r\n return url + encodeURIComponent(contentStr + designStr + viewStr);\r\n }\r\n else {\r\n return '/login?returnUrl=/designer';\r\n }\r\n }\r\n\r\n openFileModal() {\r\n $('input.standart-button.standart-button--color2.file-input').trigger('click');\r\n }\r\n \r\n openModal(modalStr: any){\r\n this.appEvents.emitOpenModalChange(modalStr);\r\n }\r\n\r\n openModalArtwork(modalStr: any) {\r\n if(this.customer && this.customer.loggedIn) {\r\n this.appEvents.emitOpenModalChange(modalStr);\r\n }\r\n }\r\n \r\n addImage(source: any) {\r\n this.imageHelper.addImage(this._product, this._productView, source, this.desktop, this.productsHelper.isEmbroideryOnly(this._product)).subscribe((result: boolean)=> {\r\n if(result) {\r\n this.fileUploading = false;\r\n if(!this.desktop) {\r\n this.openModal(\"mobileMain\");\r\n }\r\n }\r\n else {\r\n this.imageCorrupted = true;\r\n this.fileUploading = false;\r\n }\r\n });\r\n // var designElement: any;\r\n\r\n // this.guidService.getNewGuid().subscribe((guid: any) => {\r\n // // check if the source image needs rendering\r\n // this.renderImageService.getByPixels(source, CONFIG.pixelCount).subscribe((obj) => {\r\n // if(!obj.isMediaCorrupted) {\r\n // var myImg = new Image();\r\n // myImg.onload = () => {\r\n // let width = myImg.width;\r\n // let height = myImg.height;\r\n // let scale = 1;\r\n // if(width > 100 && width > height) {\r\n // scale = 100 / width;\r\n // }\r\n // else if(height > 100) {\r\n // scale = 100 / height;\r\n // }\r\n // // width = (width * scale) ;\r\n // // height = (height * scale);\r\n // width = (width * scale) * 100 / this._productView.borderBox.size.width ;\r\n // height = (height * scale) * 100 / this._productView.borderBox.size.height;\r\n\r\n // designElement = {\r\n // id: guid,\r\n // type: \"image\",\r\n // originalSource: source,\r\n // source: obj.url,\r\n // originalWidth: obj.width,\r\n // originalHeight: obj.height,\r\n // originalRatio: obj.width / obj.height,\r\n // lowResolution: false,\r\n // maxEmbroiderySizeReached: false,\r\n // sourceWithoutBackground: \"\",\r\n // isFullColor: this._product.printAvailable,\r\n // isEmbroidery: this.productsHelper.isEmbroideryOnly(this._product),\r\n // isArtworkEmbroidered: false,\r\n // colorHex: \"\",\r\n // fontSize: 0,\r\n // colors: [],\r\n // foundColors: obj.colors,\r\n // locationId: this._productView.locationId,\r\n // rotationAngle: \"0\",\r\n // position: {\r\n // top: 0,\r\n // left: 0\r\n // },\r\n // size: {\r\n // width: width,\r\n // height: height\r\n // },\r\n // borderBox: {\r\n // position: {\r\n // left: 0,\r\n // top: 0,\r\n // },\r\n // scaleX: 0,\r\n // scaleY: 0,\r\n // size: {\r\n // width: width,\r\n // height: height\r\n // }\r\n // },\r\n // zIndex: this._productView.designElements.length * 100,\r\n // removeBackground: false,\r\n // pixelsPerInch: this._productView.borderBox.size.pixelsPerInch,\r\n // isLocked: false,\r\n // isPercent: true,\r\n // isImageLoaded: false,\r\n // };\r\n // if(this.desktop) {\r\n // // on desktop, we want to show color selection popup if the product has max color limit.\r\n // designElement.isImageLoaded = true;\r\n // }\r\n // return setTimeout(() => {\r\n // this.appEvents.emitCurrentDesignElementChange(designElement);\r\n // this._productView.designElements.push(designElement);\r\n // this.appEvents.emitProductViewDesignElementsChange(this._productView.designElements);\r\n // this.appEvents.emitCurrentDesignChanged(true);\r\n // this.appEvents.emitSaveState();\r\n // this.fileUploading = false;\r\n // if(!this.desktop) {\r\n // this.openModal(\"mobileMain\");\r\n // }\r\n // });\r\n // }\r\n // myImg.src = obj.url;\r\n // }\r\n // else {\r\n // this.imageCorrupted = true;\r\n // this.fileUploading = false;\r\n // }\r\n // });\r\n // });\r\n }\r\n\r\n toggleBackground() {\r\n if(this._currentDesignElement.removeBackground === void 0) {\r\n this._currentDesignElement.removeBackground = false; \r\n }\r\n if(!this._currentDesignElement.sourceWithoutBackground) {\r\n this.removeBackground.get(this._currentDesignElement.source).subscribe((obj) => {\r\n this._currentDesignElement.sourceWithoutBackground = obj.url;\r\n this._currentDesignElement.removeBackground = !this._currentDesignElement.removeBackground;\r\n this.appEvents.emitCurrentDesignElementChange(this._currentDesignElement);\r\n });\r\n }\r\n else {\r\n this._currentDesignElement.removeBackground = !this._currentDesignElement.removeBackground;\r\n this.appEvents.emitCurrentDesignElementChange(this._currentDesignElement);\r\n }\r\n this.appEvents.emitAutoSave();\r\n }\r\n \r\n getClipartInitialSize(f: any) {\r\n let bBox: any, editableAreaWidth: any, ratio: any, size: any, targetHeight: any, targetWidth: any;\r\n bBox = f.selectAll('*').getBBox();\r\n editableAreaWidth = $('.editable-area').width();\r\n targetWidth = editableAreaWidth / 2;\r\n ratio = targetWidth / bBox.width;\r\n targetHeight = bBox.height * ratio;\r\n size = {\r\n width: targetWidth,\r\n height: targetHeight\r\n };\r\n return size;\r\n }\r\n \r\n setClipartColor(color: any) {\r\n let removeColor = this._currentDesignElement.color;\r\n if(removeColor !== color) {\r\n this._currentDesignElement.color = color;\r\n this._currentDesignElement.colorHex = color.hex;\r\n this.selectedColorsService.updateColorInView(this._productView, removeColor, color);\r\n this.appEvents.emitClipartColorChanged(this._currentDesignElement);\r\n this.appEvents.emitPriceGet(\"\");\r\n this.appEvents.emitCurrentDesignChanged(true);\r\n this.appEvents.emitSaveState();\r\n }\r\n return false;\r\n }\r\n \r\n //$scope.toggleWhiteIsRemoved\r\n toggleWhiteIsRemoved(_currentDesignElement: any) {\r\n _currentDesignElement.whiteIsRemoved = !_currentDesignElement.whiteIsRemoved;\r\n this.appEvents.emitClipartWhiteChange(_currentDesignElement);\r\n this.appEvents.emitPriceGet(\"\");\r\n this.appEvents.emitCurrentDesignChanged(true);\r\n this.appEvents.emitSaveState();\r\n return false;\r\n }\r\n\r\n toggleEmbroidery() {\r\n if(this.productsHelper.isEmbroideryOnly(this._product)) {\r\n return;\r\n }\r\n // if switching back from screen print\r\n if(this.showColorSelection) {\r\n this.setEmbroidery();\r\n }\r\n else if(!this._currentDesignElement.isEmbroidery) {\r\n this.showEmbroideryConfirmation = true;\r\n }\r\n else {\r\n this._currentDesignElement.isEmbroidery = false;\r\n this.appEvents.emitCurrentDesignElementChange(this._currentDesignElement);\r\n this.appEvents.emitPriceGet(\"\");\r\n this.appEvents.emitCurrentDesignChanged(true);\r\n this.appEvents.emitSaveState();\r\n }\r\n }\r\n\r\n closeColorSelection(printType: any) {\r\n if(this._currentDesignElement.colors.length === 0) {\r\n if(printType === \"screen\") {\r\n printType = \"digital\";\r\n }\r\n this.togglePrintType(printType);\r\n }\r\n this.showColorSelection = false;\r\n }\r\n\r\n setEmbroidery() {\r\n this.showEmbroideryConfirmation = false;\r\n this._currentDesignElement.isEmbroidery = true;\r\n this._currentDesignElement.isFullColor = false;\r\n this._isScreenPrint = false;\r\n this.resetScreenColors();\r\n this.appEvents.emitCurrentDesignElementChange(this._currentDesignElement);\r\n this.appEvents.emitPriceGet(\"\");\r\n this.appEvents.emitCurrentDesignChanged(true);\r\n this.appEvents.emitSaveState();\r\n }\r\n\r\n cancelEmbroidery() {\r\n this.showEmbroideryConfirmation = false;\r\n this._currentDesignElement.isEmbroidery = false;\r\n this.togglePrintType(this.lastPrintType);\r\n delete this._currentDesignElement.location;\r\n }\r\n \r\n onFileUploading(msg: any) {\r\n this.fileUploading = true;\r\n }\r\n \r\n onImageError(imageError: any) {\r\n // TODO: check if $timeout is required here.\r\n this.imageError = imageError;\r\n }\r\n \r\n onFileUploaded(src: any) {\r\n this.addImage(src);\r\n //this.fileUploading = false;\r\n }\r\n \r\n // trustSrc = function(src) { // this function was not called anywhere.\r\n // return $sce.trustAsResourceUrl(src);\r\n // };\r\n\r\n pluralize(count: any, word: any) {\r\n if (count === 1) {\r\n return \"\" + count + \" \" + word;\r\n } else {\r\n return \"\" + count + \" \" + word + \"s\";\r\n }\r\n }\r\n \r\n togglePrintType(printType: string) {\r\n\r\n if(this._currentDesignElement.isFullColor) {\r\n this.lastPrintType = \"digital\";\r\n }\r\n else if (this._currentDesignElement.isEmbroidery) {\r\n this.lastPrintType = \"embroidery\";\r\n }\r\n else {\r\n this.lastPrintType = \"screen\";\r\n }\r\n\r\n if(printType === 'digital') {\r\n this._currentDesignElement.isFullColor = true;\r\n this._currentDesignElement.isEmbroidery = false;\r\n this._isScreenPrint = false;\r\n this.appEvents.emitPriceGet(\"\");\r\n this.appEvents.emitCurrentDesignChanged(true);\r\n this.appEvents.emitSaveState();\r\n }\r\n else if(printType === 'screen') {\r\n this._currentDesignElement.isFullColor = false;\r\n this._currentDesignElement.isEmbroidery = false;\r\n this._isScreenPrint = true;\r\n this.showColorSelection = true;\r\n this.appEvents.emitPriceGet(\"\");\r\n this.appEvents.emitCurrentDesignChanged(true);\r\n this.appEvents.emitSaveState();\r\n }\r\n else if (printType === 'embroidery') {\r\n if(!this._currentDesignElement.isEmbroidery) {\r\n this.toggleEmbroidery();\r\n }\r\n else {\r\n \r\n }\r\n }\r\n\r\n if(this._currentDesignElement.isFullColor || this._currentDesignElement.isEmbroidery) {\r\n this.resetScreenColors();\r\n }\r\n\r\n if (!this._currentDesignElement.isEmbroidery) {\r\n delete this._currentDesignElement.location;\r\n }\r\n return false;\r\n }\r\n\r\n resetScreenColors() {\r\n if(this._currentDesignElement.colors) {\r\n this._currentDesignElement.colors.forEach( (color, index) => {\r\n this.selectedColorsService.updateColorInView(this._productView, color, null);\r\n });\r\n this._currentDesignElement.colors.length = 0;\r\n }\r\n }\r\n\r\n //$scope.addOrRemoveColor\r\n addOrRemoveColor(color: any) {\r\n let index: any;\r\n this.toggle = false;\r\n if (this.colorSelected(color)) {\r\n index = _.indexOf(this._currentDesignElement.colors, color);\r\n this._currentDesignElement.colors.splice(index, 1);\r\n this.selectedColorsService.updateColorInView(this._productView, color, null);\r\n } \r\n else {\r\n this._currentDesignElement.colors.push(color);\r\n this.selectedColorsService.updateColorInView(this._productView, null, color);\r\n }\r\n this.appEvents.emitPriceGet(\"\");\r\n this.appEvents.emitCurrentDesignChanged(true);\r\n this.appEvents.emitSaveState();\r\n }\r\n\r\n //$scope.colorSelected\r\n colorSelected(color: any) {\r\n let colors: any;\r\n if (this._currentDesignElement !== void 0) {\r\n colors = this._currentDesignElement.colors || [];\r\n return _.contains(this._currentDesignElement.colors, color);\r\n }\r\n }\r\n \r\n setToggle(toggle: boolean) {\r\n this.toggle = toggle;\r\n }\r\n\r\n selectedColor(color) {\r\n return this.selectedColorsService.colorIsContainedInView(this._productView, color);\r\n }\r\n\r\n backgroundColor() {\r\n if(this.productsHelper.isEmbroideryOnly(this._product)) {\r\n return {\r\n \"background-color\": \"gray\"\r\n }\r\n }\r\n return {\r\n \"background-color\": \"white\"\r\n }\r\n }\r\n\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/desktop/add/addImage.component.ts","import {Component, Input, Output, EventEmitter, OnInit} from \"@angular/core\";\r\n\r\nimport {BaseClass} from \"../../base.class\";\r\nimport {AppEvents} from \"../../../appEvents\";\r\nimport {ProductsHelperService} from \"../../../services/productsHelper.service\"\r\nimport {ProductColorSelectionService} from \"../../../services/productColorSelection.service\";\r\nimport { CategoryService } from \"../../../resources/category\";\r\nimport { SearchService } from \"../../../resources/search\";\r\nimport { DecorationGroupHelperService } from \"app/services/decorationGroupHelper.service\";\r\nimport { GuidService } from \"app/resources/guid\";\r\n\r\ndeclare var _:any;\r\n\r\n@Component(\r\n {\r\n selector: \"ecc-add-product\",\r\n template: \r\n `\r\n
\r\n
\r\n
\r\n
Add Product
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
    \r\n
  • {{category.name}}
  • \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
{{repeatProduct.name}}
\r\n
\r\n
\r\n
\r\n
\r\n
Sorry, no matches found for “{{keywords}}”
\r\n
Sorry, we can't find that product. Please refine your search. You may enter a product code (\"363M\"), a brand name (\"Nike\") or product type such as \"hooded sweatshirt\".
Still can't find what you're looking for? Our client service specialists can be reached through live chat, email or phone.
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{{previewProduct?.name}}
\r\n
\r\n \r\n
\r\n
Available сolors
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Product Details
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n Note! Selected product is already added to your design. Please choose another product.\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n `\r\n }\r\n)\r\nexport class AddProductComponent extends BaseClass implements OnInit {\r\n \r\n @Input() set product(_product: any){ // get it from $scope.product\r\n if(_product){\r\n this._product = _product;\r\n this.description = _product.description;\r\n }\r\n }\r\n @Input() set color(_color: any){ // get it from $scope.color\r\n if(_color){\r\n this._color = _color;\r\n }\r\n }\r\n @Input() desktop: boolean = true;\r\n @Input() set decorationGroupId (id: any) {\r\n if(id) {\r\n this._decorationGroupId = id;\r\n }\r\n }\r\n @Input() set groupedProducts(products: any) {\r\n if(products) {\r\n this._groupedProducts = products;\r\n }\r\n } \r\n @Output() switchView: EventEmitter = new EventEmitter();\r\n \r\n _product: any;\r\n _color: any;\r\n _decorationGroupId: any;\r\n _groupedProducts: any;\r\n displayProducts: any = [];\r\n selectedProduct: any;\r\n selectedCategory: any;\r\n previewColor: any;\r\n categories: any;\r\n previewProduct: any;\r\n description: any;\r\n showProductDetails: boolean = false;\r\n keywords: string = \"\";\r\n searchTimeout: any;\r\n showSearchIsEmptyMessage: boolean = false;\r\n appEvents: AppEvents = new AppEvents();\r\n \r\n constructor(protected productsService: ProductsHelperService, protected productColorSelection: ProductColorSelectionService,\r\n protected categoryService: CategoryService, protected searchService: SearchService,\r\n protected decorationGroupHelper: DecorationGroupHelperService, protected guidService: GuidService) {\r\n super(); \r\n }\r\n \r\n ngOnInit() {\r\n this.reset(); \r\n }\r\n\r\n reset() {\r\n this.previewProduct = this._product;\r\n this.previewColor = this._color;\r\n this.description = this._product.description;\r\n\r\n let locationIds = this.productsService.getLocationIds(this._product);\r\n let decorationTypes = this.productsService.getDecorationTypes(this._product);\r\n\r\n this.categoryService.getSimilarProductsByCategories(this._product.id, this._product.maxPrintColors,\r\n locationIds, decorationTypes).subscribe((categories) => {\r\n this.categories = categories;\r\n this.setSelectedProductCategory(void 0);\r\n });\r\n }\r\n\r\n openModal(modalStr) {\r\n this.appEvents.emitOpenModalChange(modalStr);\r\n }\r\n\r\n isSizeAvailable(selectedColor: any, size : any) {\r\n if(selectedColor) {\r\n var lColor = _.findWhere(this._product.colors, {\r\n id: selectedColor.id\r\n });\r\n if(lColor) {\r\n let sizeExists = _.contains(lColor.availableSizes, size);\r\n return sizeExists;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n getSizeById(previewProduct: any, sizeId: any) {\r\n let size = _.findWhere(previewProduct.sizes, {\r\n id: sizeId\r\n });\r\n if(size) {\r\n return size.name;\r\n }\r\n return \"\";\r\n }\r\n \r\n addProduct(newColor: any, newProduct: any) {\r\n // check if decorationGroup array exist\r\n if(!this.decorationGroupHelper.decorationGroupExists()) {\r\n // if it doesn't exist, create it\r\n this.guidService.getNewGuid().subscribe((guid: any) => {\r\n // create a new decoration group, assign a new guid to it\r\n let newDecorationGroup: any = this.decorationGroupHelper.createDecorationGroup();\r\n newDecorationGroup.id = guid;\r\n\r\n // copy elements from current product to new product\r\n this.decorationGroupHelper.copyElements(this._product, newProduct);\r\n\r\n // add existing product to decoration group products collection, along with color sizes and selection\r\n this.decorationGroupHelper.addExistingProduct(guid, this._product, this._color);\r\n\r\n // add new product to decoration group products collection, along with color sizes and selection\r\n this.decorationGroupHelper.addNewProduct(guid, newProduct, newColor);\r\n\r\n // emit new decorationGroup\r\n this.appEvents.emitNewDecorationGroup(newDecorationGroup);\r\n \r\n // emit add product event\r\n this.appEvents.emitAddProduct(newProduct);\r\n\r\n this.switchView.emit();\r\n });\r\n }\r\n else {\r\n // copy elements from current product to new product\r\n this.decorationGroupHelper.copyElements(this._product, newProduct);\r\n\r\n // get decoration group by id and add product to the products collection along with selection\r\n this.decorationGroupHelper.addNewProduct(this._decorationGroupId, newProduct, newColor);\r\n\r\n // emit add product event\r\n this.appEvents.emitAddProduct(newProduct);\r\n\r\n this.switchView.emit();\r\n }\r\n }\r\n\r\n showSameProductMessage() {\r\n if(this._groupedProducts) {\r\n let existingProduct = _.findWhere(this._groupedProducts, {\r\n id: this.previewProduct.id\r\n });\r\n if(existingProduct) {\r\n return true;\r\n }\r\n }\r\n else if (this._product.id == this.previewProduct.id) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n \r\n setPreviewProduct(selectedProduct: any) {\r\n if(selectedProduct) {\r\n this.selectedProduct = selectedProduct;\r\n this.productsService.returnProductObservable(selectedProduct.id).subscribe( rawProduct => {\r\n this.productsService.replaceDefaultQuantityWithQuantity(rawProduct);\r\n this.previewProduct = rawProduct;\r\n this.previewColor = rawProduct.colors[0];\r\n this.description = rawProduct.description;\r\n this.showProductDetails = true;\r\n });\r\n }\r\n return false;\r\n }\r\n \r\n setPreviewColor(_color: any) {\r\n this.previewColor = _color;\r\n return false;\r\n }\r\n\r\n setSelectedProductCategory(category: any) {\r\n if(!category) {\r\n category = _.findWhere(this.categories, {\r\n id: this._product.categoryId\r\n });\r\n }\r\n if(!category) {\r\n category = _.findWhere(this.categories, {\r\n id: 1\r\n });\r\n if(!category && this.categories.length > 0) {\r\n category = this.categories[0];\r\n }\r\n }\r\n if(category) {\r\n this.selectedCategory = category;\r\n this.displayProducts = category.products;\r\n }\r\n return false;\r\n }\r\n\r\n searchTextUpdated() {\r\n if (this.searchTimeout !== void 0) {\r\n clearTimeout(this.searchTimeout);\r\n }\r\n this.searchTimeout = setTimeout((t: any) => {\r\n if(this.keywords != \"\") {\r\n this.searchService.get(this.keywords).subscribe((result) => {\r\n if(result && result.length > 0) {\r\n this.displayProducts = result;\r\n this.showSearchIsEmptyMessage = false;\r\n }\r\n else {\r\n this.displayProducts = [];\r\n this.showSearchIsEmptyMessage = true;\r\n }\r\n });\r\n }\r\n }, 1000);\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/desktop/add/addProduct.component.ts","import {Component, OnInit, Input, Output, EventEmitter} from \"@angular/core\";\r\nimport {ProofedArtworkService} from \"../../../resources/proofedArtwork\";\r\nimport {AppEvents} from \"../../../appEvents\";\r\nimport { ImageRenderService } from \"../../../resources/imageRender\";\r\nimport { ProductsHelperService } from \"../../../services/productsHelper.service\";\r\nimport { ImageHelperService } from \"../../../services/imageHelper.service\";\r\nimport { CONFIG } from \"../../../../environments/environment\";\r\n\r\n@Component({\r\n selector: \"ecc-add-proofed-artwork\",\r\n template:\r\n `\r\n
\r\n
\r\n
Your Artwork
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
To apply your artwork, select it and click Add button
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n Add\r\n
\r\n
\r\n
\r\n
\r\n Note! This artwork can only be embroidered\r\n
\r\n
\r\n You don't have any proofed artwork.\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n `\r\n})\r\nexport class AddProofedArtworkComponent implements OnInit {\r\n \r\n @Input() set product(_product: any) {\r\n if(_product){\r\n this._product = _product;\r\n }\r\n } \r\n @Input() set pView(_productViewMap: any) {\r\n if(_productViewMap){\r\n this._productView = _productViewMap.get('productView');\r\n }\r\n }\r\n @Input() desktop: boolean = true;\r\n @Output() setArtWork: EventEmitter = new EventEmitter();\r\n \r\n artworks: any;\r\n selectedArtwork: any;\r\n _product: any;\r\n _productView: any; \r\n runSpinner: boolean = false; \r\n showMessage: boolean = false;\r\n appEvents: AppEvents = new AppEvents();\r\n \r\n constructor(protected proofedArtworkService: ProofedArtworkService, protected renderImageService: ImageRenderService,\r\n protected productsHelper: ProductsHelperService, protected imageHelper: ImageHelperService) { }\r\n\r\n ngOnInit() {\r\n this.getArtworks();\r\n }\r\n\r\n openModal(modalStr: any) {\r\n this.appEvents.emitOpenModalChange(modalStr);\r\n }\r\n\r\n back() {\r\n this.openModal('addImage');\r\n }\r\n\r\n getArtworks() {\r\n this.runSpinner = true;\r\n this.proofedArtworkService.get().subscribe((artworks) => {\r\n this.artworks = artworks;\r\n this.runSpinner = false;\r\n });\r\n }\r\n\r\n selectArtwork(artwork) {\r\n this.selectedArtwork = artwork;\r\n }\r\n\r\n addArtwork(selectedArtwork) {\r\n if (selectedArtwork) {\r\n if(selectedArtwork.isArtworkEmbroidered && !this._product.embroideryAvailable) {\r\n this.showMessage = true;\r\n return false;\r\n }\r\n this.showMessage = false;\r\n let url: any = CONFIG.proovedArtworkHost + selectedArtwork.source;\r\n this.imageHelper.addImage(this._product, this._productView, url, this.desktop, selectedArtwork.isEmbroidery).subscribe(()=> {\r\n // do nothing for now.\r\n });\r\n }\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/desktop/add/addProovedArtwork.component.ts","import {Component, OnInit, Output, EventEmitter, Input} from \"@angular/core\";\r\nimport {DesignTemplateService} from \"../../../resources/designTemplates\";\r\nimport {DesignTemplateCategoryService} from \"../../../resources/designTemplateCategory\";\r\nimport {DesignTemplateTagsService} from \"../../../resources/designTemplateTags\";\r\nimport {AppEvents} from \"../../../appEvents\";\r\nimport {CONFIG} from \"../../../../environments/environment\";\r\n\r\ndeclare var _: any;\r\ndeclare var $: any;\r\n\r\n@Component(\r\n {\r\n selector: \"ecc-add-template\", \r\n template:\r\n `\r\n
\r\n
\r\n
Add Templates
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
Categories
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
{{selectedCategory?.name}}
\r\n
\r\n
\r\n {{tag.name}}\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
0\" class=\"studio__block-inner-caption\">To use a template, select it and click Add button
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n Add\r\n
\r\n
\r\n
\r\n
\r\n No results found. Try some other category.\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n\r\n
\r\n `,\r\n }\r\n)\r\nexport class AddTemplateComponent implements OnInit {\r\n \r\n selectedCategory: any = null;\r\n selectedTemplate: any = null;\r\n templatesInView: boolean = false;\r\n isSearching: boolean = false;\r\n templates: any = [];\r\n templateTags: any = [];\r\n templateCategories: any = [];\r\n showCategory: boolean = true;\r\n showTags: boolean = false;\r\n appEvents: AppEvents = new AppEvents();\r\n runSpinner: boolean = false;\r\n currentIndex: number = 0;\r\n maxViews: number = 0;\r\n imagePath: string;\r\n searchText: string = \"\";\r\n searchTimeout: any;\r\n isSwitchOn: boolean = false;\r\n\r\n @Input() desktop: boolean = false;\r\n @Input() productColor: any;\r\n @Output() applyTemplate: EventEmitter = new EventEmitter();\r\n \r\n constructor(private designTemplateService: DesignTemplateService,\r\n private designTemplateCategoryService: DesignTemplateCategoryService, private designTemplateTagsService: DesignTemplateTagsService)\r\n {} \r\n \r\n ngOnInit() {\r\n this.imagePath = CONFIG.imagesHost;\r\n this.reset();\r\n // load template category\r\n this.getTemplateCategories();\r\n }\r\n\r\n backgroundColor(selection: any) {\r\n let hex: any = \"#000000\";\r\n\r\n if(this.isSwitchOn && this.productColor) {\r\n hex = this.productColor.hex;\r\n }\r\n else if(selection && selection.length > 0) {\r\n hex = selection[0].hex;\r\n }\r\n return {\r\n \"background-color\": hex\r\n }\r\n }\r\n\r\n toggleSwitched(isSwitchOn: boolean) {\r\n this.isSwitchOn = isSwitchOn;\r\n }\r\n\r\n changeIndex(index: number) {\r\n this.currentIndex = index;\r\n }\r\n\r\n apply() {\r\n if(this.selectedTemplate) {\r\n this.applyTemplate.emit(this.selectedTemplate);\r\n }\r\n }\r\n\r\n openModal(modalStr: any) {\r\n this.appEvents.emitOpenModalChange(modalStr);\r\n }\r\n\r\n searchTextUpdated() {\r\n if (this.searchTimeout !== void 0) {\r\n clearTimeout(this.searchTimeout);\r\n }\r\n this.searchTimeout = setTimeout((t: any) => {\r\n this.templates = [];\r\n this.runSpinner = true;\r\n this.searchTimeout = void 0;\r\n this.getTemplatesUsingSearchText();\r\n }, 1000);\r\n }\r\n\r\n back() {\r\n if(this.templatesInView) {\r\n this.templatesInView = false;\r\n this.selectedTemplate = void 0;\r\n this.currentIndex = 0;\r\n this.maxViews = 0;\r\n this.templates = [];\r\n this.searchText = \"\";\r\n }\r\n else if(this.showTags) {\r\n this.showTags = false;\r\n this.showCategory = true;\r\n this.templateTags = [];\r\n }\r\n else if(!this.desktop) {\r\n this.openModal('mobileAddImage');\r\n }\r\n }\r\n\r\n selectCategory(category: any) {\r\n if(category) {\r\n this.selectedCategory = category;\r\n this.showTags = true;\r\n this.showCategory = false;\r\n this.designTemplateTagsService.get(category.id).subscribe((templateTags) => {\r\n $.merge(this.templateTags, templateTags);\r\n },\r\n (error) => {\r\n this.showTags = false;\r\n this.showCategory = true;\r\n });\r\n }\r\n }\r\n\r\n selectTag(tag) {\r\n if(tag) {\r\n this.templates = [];\r\n this.runSpinner = true;\r\n this.getTemplates(tag);\r\n } \r\n }\r\n\r\n getTemplateCategories() {\r\n this.designTemplateCategoryService.getAll().subscribe((categories) => {\r\n $.merge(this.templateCategories, categories);\r\n },\r\n (error) => {\r\n });\r\n }\r\n\r\n getTemplatesUsingSearchText() {\r\n if(this.searchText != \"\") {\r\n this.designTemplateService.getByTagName(this.searchText).subscribe((templates) => {\r\n this.templates = templates;\r\n this.runSpinner = false;\r\n this.showCategory = false;\r\n this.templatesInView = true;\r\n });\r\n }\r\n else {\r\n this.reset();\r\n }\r\n }\r\n\r\n getTemplates(tag: any) {\r\n if(tag) {\r\n this.designTemplateService.getByTagId(tag.id).subscribe((templates) => {\r\n this.templates = templates;\r\n this.runSpinner = false;\r\n this.templatesInView = true;\r\n });\r\n }\r\n else {\r\n this.reset();\r\n }\r\n }\r\n\r\n selectTemplate (template: any) {\r\n this.currentIndex = 0;\r\n this.selectedTemplate = template;\r\n this.maxViews = template.savedDesign.design.views.length;\r\n return false;\r\n }\r\n\r\n reset () {\r\n this.templates = [];\r\n this.templatesInView = false;\r\n this.selectedTemplate = null;\r\n this.isSearching = false;\r\n this.runSpinner = false;\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/desktop/add/addTemplate.component.ts","import {Component, Input, Output, EventEmitter, ChangeDetectionStrategy, OnDestroy, OnInit, ElementRef, AnimationStyleMetadata} from \"@angular/core\";\r\nimport {Subscription} from \"rxjs/Subscription\";\r\n\r\nimport {BaseClass} from \"../../../components/base.class\";\r\nimport {TextRenderService} from \"../../../resources/textRender\";\r\nimport {TextAlignmentService} from \"../../../resources/textAlignment\";\r\nimport {DesignHelperService} from \"../../../services/designHelper.service\";\r\nimport {SelectedDesignColorsService} from \"../../../services/selectedDesignColors.service\";\r\nimport {AppEvents} from \"../../../appEvents\";\r\n\r\nimport {CONFIG} from \"../../../../environments/environment\";\r\nimport { GuidService } from \"../../../resources/guid\";\r\nimport { ProductColorSelectionService } from \"../../../services/productColorSelection.service\";\r\nimport { TextHelperService } from \"app/services/textHelper.service\";\r\nimport { DecorationGroupHelperService } from \"app/services/decorationGroupHelper.service\";\r\n\r\ndeclare var _: any;\r\ndeclare var $: any;\r\n\r\n@Component(\r\n {\r\n selector: \"ecc-add-text\",\r\n template:\r\n `\r\n
\r\n \r\n
\r\n
Add Text
\r\n
\r\n
\r\n
\r\n
Text
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n A personalization is a text that will be uniquely defined for each item for $6.95\r\n
\r\n
\r\n
\r\n
\r\n Add Text\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n
Add Names & Numbers
\r\n
Add names and/or numbers to each item for $6.95 each
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n Add Names & Numbers\r\n
\r\n Note! You'll be able to define the names and numbers before adding this design to your shopping cart.\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
Text Settings
\r\n
\r\n
\r\n
Personalization Settings
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
Text
\r\n
\r\n
\r\n
Shape
\r\n
\r\n
\r\n
effect
\r\n
\r\n
\r\n
outline
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Text
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
Embroidered text cannot contain
special characters.
\r\n
\r\n
\r\n
\r\n
Height
\r\n
\r\n
\r\n \r\n
    \r\n
  • {{personalizationSize.label}}
  • \r\n
\r\n
\r\n
\r\n
Font
\r\n
\r\n
\r\n \r\n
\r\n
\r\n {{_text}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
Text Color
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{_color.name}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Selected Color:
\r\n
\r\n
\r\n
\r\n {{textPopupSelectedColor?.name}}\r\n
\r\n
\r\n
\r\n
\r\n You have reached maximum design colors for this product. You can only select one of the colors used in the design view.\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
color currently used on this design view
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Object Position
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
Align
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
{{alignment.name}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Unlocked
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
Locked
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Rotation (-180 to 180)
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
Shape
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
{{shape.name}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
{{shape.name}}
\r\n
\r\n
\r\n
\r\n
\r\n
Bend (0 to 1)
\r\n \r\n
\r\n
\r\n
Left Scale (0 to 5)
\r\n \r\n
\r\n
\r\n
Right Scale (0 to 5)
\r\n \r\n
\r\n
\r\n
Tilt (-10 to +10)
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
Letter Spacing (-1 to +1)
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
{{effect.name}}
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Color
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{_currentEffectColor?.name}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Selected Color:
\r\n
\r\n
\r\n
\r\n {{effectPopupSelectedColor?.name}}\r\n
\r\n
\r\n
\r\n
\r\n You have reached maximum design colors for this product. You can only select one of the colors used in the design view.\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
color currently used on this design view
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Opacity (0 to 1)
\r\n \r\n
\r\n
\r\n
Size (0 to 10)
\r\n \r\n
\r\n
\r\n
Offset X (-1 to +1)
\r\n \r\n
\r\n
\r\n
Offset Y (-1 to +1)
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{{border.name}}
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Color
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{_currentBorderColor?.name}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Selected Color:
\r\n
\r\n
\r\n
\r\n {{outlinePopupSelectedColor?.name}}\r\n
\r\n
\r\n
\r\n
\r\n You have reached maximum design colors for this product. You can only select one of the colors used in the design view.\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
color currently used on this design view
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Width (0 to 10)
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Note! You have reached the maximum allowable size\r\n
\r\n
\r\n Note! Only embroidery option is available for this product\r\n
\r\n \r\n
\r\n Note! Effect can not be applied to an embroidered element\r\n
\r\n
\r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n `,\r\n }\r\n)\r\nexport class AddTextComponent extends BaseClass implements OnDestroy, OnInit {\r\n \r\n @Input() set currentDesignElement(cde: any){ // get this from $scope.currentDesignElement. TODO: test if currentDesignElement is updated properly.. when updated outside.\r\n if(cde){\r\n this.showMaxColorWarning = false;\r\n this._currentDesignElement = cde.get('currentDesignElement');\r\n if(this._currentDesignElement){\r\n this._text = this._currentDesignElement.text;\r\n this._font = this._currentDesignElement.font;\r\n if(this._currentDesignElement.font){\r\n this._fontName = this._currentDesignElement.font.name;\r\n }\r\n if(this._currentDesignElement.isPersonalization && this._currentDesignElement.personalizationSize){\r\n this._heightLabel = this._currentDesignElement.personalizationSize.label;\r\n }\r\n if(this._currentDesignElement.color){\r\n this._color = this._currentDesignElement.color;\r\n this._currentDesignElement.textShape.color = this._color.hex;\r\n }\r\n this.rotationAngle = this._currentDesignElement.rotationAngle;\r\n this._currentShape = this._currentDesignElement.textShape;\r\n this._currentEffect = this._currentDesignElement.textEffect;\r\n this._currentBorder = this._currentDesignElement.textBorder;\r\n if(this._designColors && this._currentDesignElement.textEffect.color) {\r\n this._currentEffectColor = _.findWhere(this._designColors, {\r\n hex: this._currentDesignElement.textEffect.color\r\n });\r\n }\r\n if(this._designColors && this._currentDesignElement.textBorder.color) {\r\n this._currentBorderColor = _.findWhere(this._designColors, {\r\n hex: this._currentDesignElement.textBorder.color\r\n });\r\n }\r\n }\r\n }\r\n } \r\n \r\n @Input() set pView(pv: any){\r\n if(pv) {\r\n this._productView = pv.get('productView');\r\n }\r\n } // get this from $scope.productView\r\n @Input() set designColors(_designColors: any){\r\n if(_designColors){\r\n this._designColors = _designColors;\r\n }\r\n } // get this from $scope.designColors\r\n @Input() set fonts(_fonts: any){\r\n if(_fonts){\r\n this._fonts = _fonts;\r\n }\r\n } // get this from $scope.fonts\r\n @Input() embroideryAvailable: boolean = false;\r\n @Input() set product(_product: any) {\r\n if (_product) {\r\n this._product = _product;\r\n if (this.isEmbroideryOnly() && this._currentDesignElement) {\r\n this._currentDesignElement.isEmbroidery = true;\r\n }\r\n }\r\n }\r\n @Input() set shapes(_shapes: any) {\r\n if(_shapes) {\r\n this._shapes = _shapes;\r\n this._filteredShapes = _.filter(this._shapes, (shape: any) => {\r\n return shape.requiresVertical;\r\n });\r\n }\r\n }\r\n @Input() set effects(_effects: any) {\r\n if(_effects) {\r\n this._effects = _effects;\r\n }\r\n }\r\n @Input() set borders(_borders: any) {\r\n if(_borders) {\r\n this._borders = _borders;\r\n }\r\n }\r\n @Input() set personalizationSizes(sizes: any){\r\n if(sizes){\r\n this._personalizationSizes = sizes;\r\n }\r\n } \r\n @Input() isDesignTemplate: boolean = false;\r\n @Input() desktop: boolean = true;\r\n @Input() noOfPersonalizations: number;\r\n @Input() maxPersonalizations: number;\r\n @Input() defaultGroupId: any;\r\n @Input() productColor: any;\r\n\r\n //@Output() setCDElement: EventEmitter = new EventEmitter(); // call setCurrentDesignElement() function on the parent component\r\n \r\n newText: string;\r\n _currentDesignElement: any;\r\n _text: string;\r\n _font: any;\r\n _fontName: string;\r\n _color: any;\r\n _productView: any;\r\n _designColors: any;\r\n _fonts: any;\r\n showEmbroideryConfirmation: boolean = false;\r\n showPersonalizationMessage: boolean = false;\r\n //showPersonalizationModal: boolean = false;\r\n _product: any;\r\n rotationAngle: any = \"0\";\r\n _tabView: any = \"\";\r\n showFonts: boolean = false;\r\n showTextPopup: boolean = false;\r\n showEffectPopup: boolean = false;\r\n showOutlinePopup: boolean = false;\r\n showMaxColorWarning: boolean = false;\r\n textPopupSelectedColor: any = null;\r\n effectPopupSelectedColor: any = null;\r\n outlinePopupSelectedColor: any = null;\r\n entripyImagePath: any ;\r\n\r\n namePersonalization: any = \"\";\r\n numberPersonalization: any = \"\";\r\n _isName: boolean = false;\r\n _isNumber: boolean = false;\r\n _isPersonalization: boolean = false;\r\n maxNameLength: number = 25;\r\n maxNumberLength: number = 2;\r\n showPersonalizationSize: boolean = false;\r\n _heightLabel: any;\r\n _personalizationSizes: any;\r\n\r\n _currentShape: any;\r\n _currentEffect: any;\r\n _currentEffectColor: any;\r\n _currentBorder: any;\r\n _currentBorderColor: any;\r\n _shapes: any;\r\n _filteredShapes: any;\r\n _effects: any;\r\n _borders: any;\r\n _multiline: boolean = false;\r\n _alignments: any;\r\n showAlignment: boolean = false;\r\n maxSizeReachedSubscription: Subscription;\r\n appEvents: AppEvents = new AppEvents();\r\n invalidPersonalizationCharacters = false;\r\n \r\n constructor(protected el: ElementRef, protected designsHelper: DesignHelperService, \r\n protected selectedColorsService: SelectedDesignColorsService,\r\n protected renderTextService: TextRenderService, protected textAlignmentService: TextAlignmentService,\r\n protected guidService: GuidService, protected colorSelectionService: ProductColorSelectionService,\r\n protected textHelperService: TextHelperService, protected decorationGroupHelper: DecorationGroupHelperService) { \r\n super();\r\n this.maxSizeReachedSubscription = AppEvents.maxSizeReachedO.subscribe((element) => {\r\n if(this._currentDesignElement === element) {\r\n }\r\n });\r\n } \r\n\r\n ngOnDestroy() { \r\n this.maxSizeReachedSubscription.unsubscribe();\r\n }\r\n\r\n ngOnInit() {\r\n this.entripyImagePath = CONFIG.imagesOnEntripy;\r\n if(!this._currentShape && this._shapes) {\r\n this._currentShape = this._shapes[0];\r\n }\r\n if(!this._currentEffect && this._effects) {\r\n this._currentEffect = this._effects[0];\r\n }\r\n if(!this._currentBorder && this._borders) {\r\n this._currentBorder = this._borders[0];\r\n }\r\n if(!this._currentEffectColor && this._designColors && this._currentDesignElement && this._currentDesignElement.textEffect.color) {\r\n this._currentEffectColor = _.findWhere(this._designColors, {\r\n hex: this._currentDesignElement.textEffect.color\r\n });\r\n }\r\n if(!this._currentBorderColor && this._designColors && this._currentDesignElement && this._currentDesignElement.textBorder.color) {\r\n this._currentBorderColor = _.findWhere(this._designColors, {\r\n hex: this._currentDesignElement.textBorder.color\r\n });\r\n }\r\n this.initializeShapeEffectAndBorder();\r\n if(!this._alignments) {\r\n this._alignments = this.textAlignmentService.get();\r\n }\r\n }\r\n\r\n setTabView(tabView: any) {\r\n this._tabView = tabView || '';\r\n this.showMaxColorWarning = false;\r\n }\r\n\r\n toggleFont() {\r\n this.showFonts = !this.showFonts;\r\n }\r\n\r\n addText(text: any, isPersonalization: boolean = false, isNumber: boolean = false, personalizationName: any = void 0, personalizationSize: any = void 0) {\r\n\r\n if (!text || text.length == 0) {\r\n return;\r\n }\r\n\r\n let designElement: any;\r\n //let workingArea = document.getElementById(\"current-product-view-img\");\r\n let workingArea = document.getElementById(\"editable-area\");\r\n let width = workingArea ? $(workingArea).width() : 500;\r\n let height = workingArea ? $(workingArea).height(): 600;\r\n\r\n if(this._isPersonalization && this.noOfPersonalizations < this.maxPersonalizations) {\r\n text = text.replace(/\\r\\n|\\r|\\n/g, \" \");\r\n isPersonalization = true;\r\n if(!personalizationSize) {\r\n personalizationSize = this.textHelperService.getDefaultPersonalizationSize(1.0, this._productView); \r\n }\r\n if(!personalizationName) {\r\n personalizationName = \"Text(\" + this._productView.name + \")\";\r\n }\r\n this.appEvents.emitPersonalizationChange(1);\r\n this._isPersonalization = false;\r\n this._multiline = false;\r\n this.noOfPersonalizations++;\r\n }\r\n\r\n this.guidService.getNewGuid().subscribe((guid: any) => {\r\n if (text && text.length > 0) {\r\n this._currentShape = void 0;\r\n this._currentEffect = void 0;\r\n this._currentBorder = void 0;\r\n let defaultFont = this.defaultFont(this._currentDesignElement, isPersonalization);\r\n let defaultColor = this.defaultTextColor(this._currentDesignElement);\r\n let defaultAlignment = this.defaultAlignment(this._currentDesignElement);\r\n designElement = {\r\n id: guid,\r\n type: \"text\",\r\n text: text,\r\n color: defaultColor,\r\n colorId: defaultColor.id,\r\n colors: [],\r\n font: defaultFont,\r\n fontId: defaultFont.id,\r\n fontSize: CONFIG.designElement.fontSize,\r\n isEmbroidery: this.isEmbroideryOnly(),\r\n isPromo: this._product.promoAvailable,\r\n locationId: this._productView.locationId,\r\n rotationAngle: \"0\",\r\n rotationPosition: {\r\n position: {\r\n top: 0,\r\n left: 0\r\n },\r\n isUpdated: false\r\n },\r\n maxEmbroiderySizeReached: false,\r\n maxDimension: width > height ? width : height,\r\n position: {\r\n top: 0,\r\n left: 0\r\n },\r\n size: {\r\n width: width,\r\n height: height\r\n },\r\n borderBox: {\r\n position: {\r\n left: 0,\r\n top: 0,\r\n },\r\n scaleX: 0,\r\n scaleY: 0,\r\n size: {\r\n width: 0,\r\n height: 0\r\n }\r\n },\r\n zIndex: this._productView.designElements.length * 100,\r\n textShape: this.textHelperService.getDefaultShape(this._currentShape),\r\n textEffect: this.textHelperService.getDefaultEffect(this._currentEffect),\r\n textBorder: this.textHelperService.getDefaultBorder(this._currentBorder),\r\n multiline: this._multiline,\r\n alignment: defaultAlignment,\r\n pixelsPerInch: this._productView.borderBox.size.pixelsPerInch,\r\n printableAreaSize: this._productView.borderBox.size,\r\n isLocked: false,\r\n isPercent: true,\r\n };\r\n\r\n designElement.isPersonalization = isPersonalization;\r\n designElement.isNumber = isNumber;\r\n designElement.personalizationName = personalizationName;\r\n designElement.personalizationSize = personalizationSize;\r\n\r\n if(isPersonalization) {\r\n this.decorationGroupHelper.addPersonalization(this.defaultGroupId, designElement.personalizationName, text, \r\n this.productColor ? this.productColor.id : 0, 0, guid, this._productView.name, this._productView.locationId);\r\n // this.colorSelectionService.addPersonalization(this.defaultGroupId, designElement.personalizationName, text, \r\n // this.productColor ? this.productColor.id : 0, 0, guid, this._productView.name, this._productView.locationId);\r\n }\r\n\r\n // add color to colors array for price calculations\r\n designElement.colors.push(defaultColor);\r\n designElement.textShape.color = defaultColor.hex;\r\n\r\n this.renderTextService.post(designElement).subscribe((src) => {\r\n designElement.source = src.base64;\r\n designElement.size.height = src.height;\r\n designElement.size.width = src.width;\r\n this._productView.designElements.push(designElement);\r\n this.decorationGroupHelper.addElement(designElement, this._productView);\r\n this.appEvents.emitCurrentDesignElementChange(designElement);\r\n this.appEvents.emitProductViewDesignElementsChange(this._productView.designElements);\r\n this.appEvents.emitProductViewChange(this._productView);\r\n this.appEvents.emitCurrentDesignChanged(true);\r\n this.appEvents.emitSaveState();\r\n this.newText = '';\r\n this._multiline = false;\r\n this.resetPersonalization();\r\n });\r\n }\r\n });\r\n }\r\n\r\n enterPersonalizations() {\r\n let decorationGroup: any = this.decorationGroupHelper.getFirstOrDefaultGroup();\r\n let totalProductCount: any; \r\n if(decorationGroup) {\r\n totalProductCount = this.designsHelper.totalProductCountForMultipleProducts(decorationGroup.products);\r\n }\r\n else {\r\n totalProductCount = this.designsHelper.totalProductCountFromSelection(this.colorSelectionService._selection);\r\n }\r\n if(totalProductCount > 0) {\r\n // open personalization modal\r\n this.appEvents.emitOpenPersonalizationModal(false);\r\n }\r\n else {\r\n // check if any quantity is assigned. If not, show the message, else open personalization popup\r\n this.showPersonalizationMessage = true;\r\n }\r\n }\r\n\r\n //enterPersonalizations() {\r\n // let totalProductCount = this.designsHelper.totalProductCountFromSelection(this.colorSelectionService._selection);\r\n\r\n // if(totalProductCount > 0) {\r\n // // open personalization modal\r\n // this.showPersonalizationModal = true;\r\n // }\r\n // else {\r\n // // check if any quantity is assigned. If not, show the message, else open personalization popup\r\n // this.showPersonalizationMessage = true;\r\n // }\r\n //}\r\n\r\n savePersonalization() {\r\n this.showPersonalizationMessage = false;\r\n this.appEvents.emitOpenModalChange(\"chooseProduct\");\r\n }\r\n\r\n //closePersonalizationModal(goForward: boolean) {\r\n // this.showPersonalizationModal = false;\r\n //}\r\n\r\n setAlignment(alignment) {\r\n if(alignment) {\r\n this._currentDesignElement.alignment = alignment.id;\r\n this.showAlignment = false;\r\n this.renderTextToImage();\r\n }\r\n }\r\n\r\n toggleTextPopup(color: any) {\r\n this.showTextPopup = !this.showTextPopup;\r\n if(this.showTextPopup) {\r\n this.textPopupSelectedColor = color;\r\n }\r\n }\r\n\r\n toggleAlignment() {\r\n this.showAlignment = !this.showAlignment;\r\n }\r\n\r\n renderTextToImage() {\r\n this.renderTextService.post(this._currentDesignElement).subscribe((src) => {\r\n if(src) {\r\n this._currentDesignElement.originalRatio = src.width / src.height;\r\n this._currentDesignElement.source = src.base64;\r\n this.appEvents.emitCurrentDesignElementChange(this._currentDesignElement);\r\n this.appEvents.emitAutoSave();\r\n // this.appEvents.emitImageSourceChanged({\r\n // designElement: this._currentDesignElement,\r\n // source: src.base64\r\n // }); \r\n }\r\n });\r\n }\r\n\r\n initializeShapeEffectAndBorder() {\r\n if(this._currentDesignElement) {\r\n if(!this._currentDesignElement.textShape) {\r\n this._currentDesignElement.textShape = this.textHelperService.getDefaultShape(this._currentShape);\r\n }\r\n if(!this._currentDesignElement.textEffect) {\r\n this._currentDesignElement.textEffect = this.textHelperService.getDefaultEffect(this._currentEffect);\r\n }\r\n if(!this._currentDesignElement.textBorder) {\r\n this._currentDesignElement.textBorder = this.textHelperService.getDefaultBorder(this._currentBorder);\r\n }\r\n }\r\n }\r\n\r\n addEffectColor(addColor: any) {\r\n if(!this.isColorAllowed(addColor, this._currentEffectColor)) {\r\n // show error message\r\n this.showMaxColorWarning = true;\r\n event.stopPropagation();\r\n return false;\r\n }\r\n else if(addColor) {\r\n this.showMaxColorWarning = false;\r\n if(this._currentEffectColor) {\r\n this.removeColor(this._currentEffectColor);\r\n }\r\n this._currentEffectColor = addColor;\r\n this._currentDesignElement.textEffect.color = addColor.hex;\r\n this.addColor(addColor);\r\n this.renderTextToImage();\r\n this.appEvents.emitPriceGet(\"\");\r\n }\r\n }\r\n\r\n addBorderColor(addColor) {\r\n if(!this.isColorAllowed(addColor, this._currentBorderColor)) {\r\n // show error message\r\n this.showMaxColorWarning = true;\r\n event.stopPropagation();\r\n return false;\r\n }\r\n else if(addColor) {\r\n this.showMaxColorWarning = false;\r\n if(this._currentBorderColor) {\r\n this.removeColor(this._currentBorderColor);\r\n }\r\n this._currentBorderColor = addColor;\r\n this._currentDesignElement.textBorder.color = addColor.hex;\r\n this.addColor(addColor);\r\n this.renderTextToImage();\r\n this.appEvents.emitPriceGet(\"\");\r\n }\r\n }\r\n\r\n addColor(color: any) {\r\n this._currentDesignElement.colors.push(color);\r\n this.selectedColorsService.updateColorInView(this._productView, null, color);\r\n }\r\n\r\n removeColor(color: any) {\r\n let index: any;\r\n if (_.contains(this._currentDesignElement.colors, color)) {\r\n index = _.indexOf(this._currentDesignElement.colors, color);\r\n this._currentDesignElement.colors.splice(index, 1);\r\n this.selectedColorsService.updateColorInView(this._productView, color, null);\r\n } \r\n }\r\n\r\n rotationChanged(angle: any) {\r\n this._currentDesignElement.rotationAngle = angle;\r\n this.appEvents.emitCurrentDesignElementRotationChanged(this._currentDesignElement); \r\n this.appEvents.emitRotationPosition(this._currentDesignElement);\r\n }\r\n\r\n spacingChanged(spacing: any) {\r\n this._currentDesignElement.textShape.wordSpacing = spacing;\r\n this.renderTextToImage();\r\n }\r\n\r\n bendChanged(bend: any) {\r\n this._currentDesignElement.textShape.bend = bend;\r\n this.renderTextToImage();\r\n }\r\n\r\n rightScaleChanged(scale: any) {\r\n this._currentDesignElement.textShape.rightScale = scale;\r\n this.renderTextToImage();\r\n }\r\n\r\n leftScaleChanged(scale: any) {\r\n this._currentDesignElement.textShape.leftScale = scale;\r\n this.renderTextToImage();\r\n }\r\n\r\n tiltChanged(tilt: any) {\r\n this._currentDesignElement.textShape.tilt = tilt;\r\n this.renderTextToImage();\r\n }\r\n \r\n opacityChanged(opacity: any) {\r\n this._currentDesignElement.textEffect.opacity = opacity;\r\n this.renderTextToImage();\r\n }\r\n\r\n sizeChanged(size: any) {\r\n this._currentDesignElement.textEffect.size = size;\r\n this.renderTextToImage();\r\n }\r\n\r\n offsetXChanged(offsetX: any) {\r\n this._currentDesignElement.textEffect.offsetX = offsetX;\r\n this.renderTextToImage();\r\n }\r\n\r\n offsetYChanged(offsetY: any) {\r\n this._currentDesignElement.textEffect.offsetY = offsetY;\r\n this.renderTextToImage();\r\n }\r\n\r\n widthChanged(width: any) {\r\n this._currentDesignElement.textBorder.width = width;\r\n this.renderTextToImage();\r\n }\r\n\r\n setText(text?: string) {\r\n let renderNewText: boolean = false;\r\n if(text){\r\n this._text = text;\r\n }\r\n if(this._text !== this._currentDesignElement.text) {\r\n renderNewText = true;\r\n }\r\n this._currentDesignElement.fontSize = this.getNewFontSize();\r\n this._currentDesignElement.text = this._text; \r\n if(this._currentDesignElement.isPersonalization) {\r\n this.colorSelectionService.updatePersonalizationHeader(this._currentDesignElement.personalizationName, this._currentDesignElement.id);\r\n }\r\n this.appEvents.emitCurrentDesignElementTextChanged(this._currentDesignElement); \r\n if(renderNewText) {\r\n this.renderTextToImage();\r\n }\r\n }\r\n\r\n textChanged() {\r\n return true;\r\n }\r\n\r\n setNewSize() {\r\n let newLength = this._text.length;\r\n let oldLength = this._currentDesignElement.text.length;\r\n let ratio = (newLength > 0) ? oldLength / newLength : 1;\r\n this._currentDesignElement.size.width = this._currentDesignElement.size.width * ratio;\r\n this._currentDesignElement.size.height = this._currentDesignElement.size.height * ratio;\r\n this._currentDesignElement.fontSize = this._currentDesignElement.fontSize * ratio;\r\n }\r\n\r\n getNewFontSize() {\r\n let newLength = this._text.length;\r\n let oldLength = this._currentDesignElement.text.length;\r\n let ratio = (newLength > 0) ? oldLength / newLength : 1;\r\n return this._currentDesignElement.fontSize * ratio;\r\n }\r\n\r\n isColorAllowed(color, removeColor) {\r\n return this.selectedColorsService.isColorAllowed(this._productView, this._product, color, removeColor);\r\n }\r\n\r\n setTextColor(event: any, color: any) {\r\n let removeColor = this._currentDesignElement.color;\r\n\r\n // if promo item, change all design element colors\r\n if(!this.isColorAllowed(color, null) && this._product.promoAvailable && this._product.maxPrintColors === 1) {\r\n this._currentDesignElement.color = color;\r\n\r\n this.decorationGroupHelper.replaceSelectedColorInView(this._productView, color)\r\n this.selectedColorsService.reset();\r\n this.selectedColorsService.addColorToView(this._productView, color);\r\n this.appEvents.emitCurrentDesignElementChange(this._currentDesignElement);\r\n return false;\r\n }\r\n \r\n if(!this.isColorAllowed(color, removeColor)) {\r\n // show error message\r\n this.showMaxColorWarning = true;\r\n event.stopPropagation();\r\n return false;\r\n }\r\n this.showMaxColorWarning = false;\r\n if(removeColor !== color) {\r\n this.removeColor(removeColor);\r\n this.addColor(color);\r\n this._currentDesignElement.color = color;\r\n this._currentDesignElement.textShape.color = color.hex;\r\n //this.selectedColorsService.updateColorInView(this._productView, removeColor, color);\r\n this.appEvents.emitCurrentDesignElementChange(this._currentDesignElement);\r\n this.appEvents.emitPriceGet(\"\");\r\n this.appEvents.emitCurrentDesignChanged(true);\r\n this.renderTextToImage();\r\n }\r\n\r\n return false; \r\n }\r\n\r\n selectedColor(color) {\r\n return this.selectedColorsService.colorIsContainedInView(this._productView, color);\r\n }\r\n \r\n setFont(font: any) {\r\n this.showFonts = false;\r\n this._currentDesignElement.font = font;\r\n this._currentDesignElement.fontId = font.id;\r\n this.appEvents.emitProductFontChange(this._currentDesignElement);\r\n this.appEvents.emitCurrentDesignElementChange(this._currentDesignElement);\r\n this.appEvents.emitCurrentDesignChanged(true);\r\n this.renderTextToImage();\r\n return false;\r\n }\r\n\r\n setShape(shape: any) {\r\n this._currentShape = shape;\r\n this._currentDesignElement.textShape.name = shape.name;\r\n this._currentDesignElement.textShape.id = shape.id;\r\n this._currentDesignElement.textShape.bend = shape.bend;\r\n this._currentDesignElement.textShape.leftScale = shape.leftScale;\r\n this._currentDesignElement.textShape.rightScale = shape.rightScale;\r\n this._currentDesignElement.textShape.tilt = shape.tilt;\r\n this._currentDesignElement.textShape.requiresBend = shape.requiresBend;\r\n this._currentDesignElement.textShape.requiresLeftScale = shape.requiresLeftScale;\r\n this._currentDesignElement.textShape.requiresRightScale = shape.requiresRightScale;\r\n this._currentDesignElement.textShape.requiresTilt = shape.requiresTilt;\r\n this._currentDesignElement.textShape.requiresWordSpacing = shape.requiresWordSpacing;\r\n this._currentDesignElement.textShape.requiresVertical = shape.requiresVertical;\r\n this._currentDesignElement.textShape.requiresUnderline = shape.requiresUnderline;\r\n this.renderTextToImage();\r\n }\r\n\r\n setEffect(effect: any) {\r\n let color = null;\r\n this.showMaxColorWarning = false;\r\n if(this._currentEffectColor) {\r\n // remove existing selected effect color from color array\r\n this.removeColor(this._currentEffectColor);\r\n this._currentEffectColor = void 0;\r\n }\r\n if (effect.id !== 0) {\r\n if(!this._currentEffectColor) {\r\n this._currentEffectColor = this.selectedColorsService.getDefaultDesignColorFromView(this._productView, this._product); \r\n if(!this._currentEffectColor) {\r\n this._currentEffectColor = this._designColors[0];\r\n }\r\n }\r\n color = !effect.color ? !this._currentEffectColor ? this._designColors[0] : this._currentEffectColor : effect.color;\r\n this.addColor(color);\r\n }\r\n this._currentDesignElement.textEffect.name = effect.name;\r\n this._currentDesignElement.textEffect.id = effect.id;\r\n this._currentDesignElement.textEffect.color = color? color.hex: null;\r\n this._currentDesignElement.textEffect.offsetX = effect.offsetX;\r\n this._currentDesignElement.textEffect.offsetY = effect.offsetY;\r\n this._currentDesignElement.textEffect.opacity = effect.opacity;\r\n this._currentDesignElement.textEffect.size = effect.size;\r\n this._currentDesignElement.textEffect.requiresOffsetX = effect.requiresOffsetX;\r\n this._currentDesignElement.textEffect.requiresOffsetY = effect.requiresOffsetY;\r\n this._currentDesignElement.textEffect.requiresOpacity = effect.requiresOpacity;\r\n this._currentDesignElement.textEffect.requiresSize = effect.requiresSize;\r\n this._currentEffect = effect;\r\n \r\n this.appEvents.emitPriceGet(\"\");\r\n this.renderTextToImage();\r\n }\r\n\r\n setBorder(border: any) {\r\n let color = null;\r\n this.showMaxColorWarning = false;\r\n if(this._currentBorderColor) {\r\n // remove existing selected border color from color array\r\n this.removeColor(this._currentBorderColor);\r\n this._currentBorderColor = void 0;\r\n }\r\n if(border.id !== 0) {\r\n if(!this._currentBorderColor) {\r\n this._currentBorderColor = this.selectedColorsService.getDefaultDesignColorFromView(this._productView, this._product); \r\n if(!this._currentBorderColor) {\r\n this._currentBorderColor = this._designColors[0];\r\n }\r\n }\r\n color = !border.color ? !this._currentBorderColor ? this._designColors[0] : this._currentBorderColor : border.color;\r\n this.addColor(color);\r\n }\r\n this._currentDesignElement.textBorder.name = border.name;\r\n this._currentDesignElement.textBorder.id = border.id;\r\n this._currentDesignElement.textBorder.color = color? color.hex: null;\r\n this._currentDesignElement.textBorder.width = border.width;\r\n this._currentBorder = border;\r\n\r\n this.appEvents.emitPriceGet(\"\");\r\n this.renderTextToImage();\r\n }\r\n\r\n setEmbroidery() {\r\n this.showEmbroideryConfirmation = false;\r\n this._currentDesignElement.isEmbroidery = true;\r\n\r\n // effect can not be applied to an embroidered element\r\n if(this._currentEffect) {\r\n this._currentEffect = void 0;\r\n this._currentDesignElement.textEffect = this.textHelperService.getDefaultEffect(this._currentEffect);\r\n }\r\n\r\n // filter font if it not available for embroidery\r\n if(this.updateFont()) {\r\n this.renderTextToImage();\r\n }\r\n\r\n // if the element is personalized and if the height is greater than max height, reset personalization size\r\n if(this._currentDesignElement.isPersonalization) {\r\n // filter _personalizationSize if it is not available for embroidery \r\n if(!this._currentDesignElement.personalizationSize.isEmbroideryAllowed) {\r\n let height = this._currentDesignElement.personalizationSize.height;\r\n let validPersonalizationSizes = _.filter(this._personalizationSizes, (size) => {\r\n return size.isEmbroideryAllowed && size.height < height;\r\n });\r\n if(validPersonalizationSizes) {\r\n this._currentDesignElement.personalizationSize = validPersonalizationSizes[validPersonalizationSizes.length - 1];\r\n }\r\n }\r\n this.renderTextToImage();\r\n }\r\n this.appEvents.emitCurrentDesignElementChange(this._currentDesignElement);\r\n this.appEvents.emitPriceGet(\"\");\r\n this.appEvents.emitCurrentDesignChanged(true);\r\n }\r\n\r\n updateFont() {\r\n if(!this._currentDesignElement.font.availableForEmbroidery) {\r\n let font = _.findWhere(this._fonts, {availableForEmbroidery: true});\r\n this._currentDesignElement.font = font;\r\n this._currentDesignElement.fontId = font.id;\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n cancelEmbroidery() {\r\n this.showEmbroideryConfirmation = false;\r\n this._currentDesignElement.isEmbroidery = false;\r\n $('#checkEmbroidery').prop(\"checked\", false);\r\n delete this._currentDesignElement.location;\r\n }\r\n\r\n toggleEmbroidery() {\r\n // for products with embroidery only option\r\n if (this.isEmbroideryOnly()) {\r\n return;\r\n }\r\n\r\n //This means we are switching from non-emb to emb\r\n if(!this._currentDesignElement.isEmbroidery){\r\n let regexp = new RegExp('^[A-Za-z0-9 \"\\n\"]+$');\r\n if(!regexp.test(this._text)){\r\n this.invalidPersonalizationCharacters = true;\r\n $('#checkEmbroidery').prop(\"checked\", false);\r\n return;\r\n }\r\n else{\r\n this.invalidPersonalizationCharacters = false;\r\n }\r\n }\r\n\r\n if(!this._currentDesignElement.isEmbroidery) {\r\n this.showEmbroideryConfirmation = true;\r\n }\r\n else {\r\n this._currentDesignElement.isEmbroidery = false;\r\n this._currentDesignElement.maxEmbroiderySizeReached = false;\r\n $('#checkEmbroidery').prop(\"checked\", false);\r\n this.appEvents.emitCurrentDesignElementChange(this._currentDesignElement);\r\n this.appEvents.emitPriceGet(\"\");\r\n this.appEvents.emitCurrentDesignChanged(true);\r\n this.appEvents.emitSaveState();\r\n }\r\n }\r\n\r\n removeSpecialCharacters(event) {\r\n if(this._currentDesignElement.isEmbroidery){\r\n let k = event.charCode; // k = event.keyCode; (Both can be used)\r\n return((k > 64 && k < 91) || (k > 96 && k < 123) || k == 32 || k == 8 || (k >= 48 && k <= 57));\r\n }\r\n\r\n return true;\r\n }\r\n\r\n toggleUnderline() {\r\n this._currentDesignElement.textShape.underline = !this._currentDesignElement.textShape.underline;\r\n $('#chkShapeUnderline').prop(\"checked\", this._currentDesignElement.textShape.underline);\r\n this.renderTextToImage();\r\n }\r\n\r\n toggleVertical() {\r\n this._currentDesignElement.textShape.vertical = !this._currentDesignElement.textShape.vertical;\r\n $('#chkShapeVertical').prop(\"checked\", this._currentDesignElement.textShape.vertical);\r\n this._currentDesignElement.imageFlipped = true;\r\n this.renderTextToImage();\r\n }\r\n\r\n toggleMultiline() {\r\n this._multiline = !this._multiline;\r\n if(this._multiline) {\r\n this._isPersonalization = false;\r\n }\r\n }\r\n\r\n toggleNames() {\r\n this._isName = !this._isName;\r\n this.namePersonalization = \"\";\r\n }\r\n\r\n toggleNumbers() {\r\n this._isNumber = !this._isNumber;\r\n this.numberPersonalization = \"\";\r\n }\r\n\r\n togglePersonalization() {\r\n this._isPersonalization = !this._isPersonalization;\r\n if(this._isPersonalization) {\r\n if(this.newText) {\r\n this.newText = this.newText.replace(/\\r\\n|\\r|\\n/g, \" \");\r\n let personalization = this.textHelperService.getDefaultPersonalizationSize(1.0, this._productView);\r\n if(personalization && this.newText.length > personalization.maxCharacters) {\r\n this.newText = this.newText.substring(0, personalization.maxCharacters);\r\n } \r\n }\r\n this._multiline = false;\r\n }\r\n }\r\n\r\n togglePersonalizationSize() {\r\n this.showPersonalizationSize = !this.showPersonalizationSize;\r\n }\r\n\r\n setPersonalizationSize(personalizationSize: any) {\r\n this.showPersonalizationSize = false;\r\n this._currentDesignElement.personalizationSize = personalizationSize;\r\n this.appEvents.emitCurrentDesignElementChange(this._currentDesignElement);\r\n // this.appEvents.emitCurrentDesignChanged(true);\r\n this.renderTextToImage();\r\n return false;\r\n }\r\n\r\n changeName() {\r\n if(this.namePersonalization) {\r\n if(this.namePersonalization.length > this.maxNameLength) {\r\n this.namePersonalization = this.namePersonalization.substring(0, this.maxNameLength);\r\n }\r\n }\r\n }\r\n\r\n changeNumber() {\r\n if(this.numberPersonalization) {\r\n if(this.numberPersonalization.length > this.maxNumberLength) {\r\n this.numberPersonalization = this.numberPersonalization.substring(0, this.maxNumberLength);\r\n }\r\n }\r\n }\r\n\r\n addNamesAndNumbers() {\r\n if(this.noOfPersonalizations < this.maxPersonalizations) {\r\n if(this._isName && this.noOfPersonalizations < this.maxPersonalizations) {\r\n // add text\r\n if(this.namePersonalization.length == 0) {\r\n this.namePersonalization = \"Personalization\";\r\n }\r\n this._isPersonalization = true;\r\n let personalizationLabel = \"Name(\" + this._productView.name + \")\";\r\n this.addText(this.namePersonalization, true, false, personalizationLabel, this.textHelperService.getDefaultPersonalizationSize(1.0, this._productView));\r\n // may have to add the personalization group here??\r\n }\r\n if(this._isNumber && this.noOfPersonalizations < this.maxPersonalizations) {\r\n // add text\r\n if(this.numberPersonalization.length == 0) {\r\n this.numberPersonalization = \"00\";\r\n }\r\n this._isPersonalization = true;\r\n let personalizationLabel = \"Number(\" + this._productView.name + \")\";\r\n this.addText(this.numberPersonalization, true, true, personalizationLabel, this.textHelperService.getDefaultPersonalizationSize(8.0, this._productView));\r\n // may have to add the personalization group here??\r\n }\r\n this.resetPersonalization();\r\n }\r\n }\r\n\r\n getDefaultMaxLength(height: any) {\r\n let personalization = this.textHelperService.getDefaultPersonalizationSize(height, this._productView);\r\n if(personalization) {\r\n return personalization.maxCharacters;\r\n }\r\n }\r\n\r\n getDefaultNameMaxLength() {\r\n let personalization = this.textHelperService.getDefaultPersonalizationSize(1.0, this._productView);\r\n if(personalization) {\r\n this.maxNameLength = personalization.maxCharacters;\r\n }\r\n return this.maxNameLength;\r\n }\r\n\r\n getDefaultNumberMaxLength() {\r\n let personalization = this.textHelperService.getDefaultPersonalizationSize(8.0, this._productView);\r\n if(personalization) {\r\n this.maxNumberLength = personalization.maxCharacters;\r\n }\r\n return this.maxNumberLength;\r\n }\r\n\r\n resetPersonalization() {\r\n this.namePersonalization = \"\";\r\n this.numberPersonalization = \"\";\r\n this._isName = false;\r\n this._isNumber = false;\r\n }\r\n \r\n setLocation(location: any) {\r\n this._currentDesignElement.location = location;\r\n return false;\r\n }\r\n\r\n defaultTextColor(_currentDesignElement: any) {\r\n if (_currentDesignElement && _currentDesignElement.color) {\r\n return _currentDesignElement.color;\r\n } else {\r\n let designColor = this.selectedColorsService.getDefaultDesignColorFromView(this._productView, this._product);\r\n if(!designColor) {\r\n designColor = this._designColors[0];\r\n } \r\n this.selectedColorsService.addColorToView(this._productView, designColor);\r\n return designColor;\r\n }\r\n }\r\n\r\n defaultFont(_currentDesignElement: any, isPersonalization: any) {\r\n if (_currentDesignElement && _currentDesignElement.font) {\r\n return _currentDesignElement.font;\r\n } else {\r\n if(isPersonalization && this.isEmbroideryOnly()) {\r\n return _.findWhere(this._fonts, {availableForPersonalization: true, availableForEmbroidery: true});\r\n }\r\n else if(isPersonalization) {\r\n return _.findWhere(this._fonts, {availableForPersonalization: true});\r\n }\r\n else if(this.isEmbroideryOnly()) {\r\n return _.findWhere(this._fonts, {availableForEmbroidery: true});\r\n }\r\n else {\r\n return this._fonts[0];\r\n }\r\n }\r\n }\r\n\r\n defaultAlignment(_currentDesignElement: any) {\r\n if (_currentDesignElement) {\r\n return _currentDesignElement.alignment;\r\n } else {\r\n return this._alignments[0].id;\r\n }\r\n }\r\n \r\n fontStyle(font: any) {\r\n let fontFamily: any, fontStyle: any, fontWeight: any, style: any;\r\n if (font !== void 0) {\r\n fontFamily = font.cssString || \"\";\r\n fontWeight = font.weight || \"\";\r\n fontStyle = font.style || \"\";\r\n return style = {\r\n fontFamily: fontFamily,\r\n fontWeight: fontWeight,\r\n fontStyle: fontStyle\r\n };\r\n }\r\n }\r\n\r\n isEmbroideryOnly() {\r\n if (this._product.embroideryAvailable && (!this._product.printAvailable && !this._product.promoAvailable)) {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n\r\n lockElement(isLocked: any) {\r\n this._currentDesignElement.isLocked = isLocked;\r\n this.appEvents.emitCurrentDesignElementLockChanged(this._currentDesignElement);\r\n this.appEvents.emitCurrentDesignElementChange(this._currentDesignElement);\r\n this.appEvents.emitCurrentDesignChanged(true);\r\n this.appEvents.emitSaveState();\r\n }\r\n\r\n backgroundColor() {\r\n if(this.isEmbroideryOnly()) {\r\n return {\r\n \"background-color\": \"gray\"\r\n }\r\n }\r\n return {\r\n \"background-color\": \"white\"\r\n }\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/desktop/add/addText.component.ts","import {Component, Input, Output, EventEmitter, OnInit} from \"@angular/core\";\r\n\r\nimport {BaseClass} from \"../../base.class\";\r\nimport {AppEvents} from \"../../../appEvents\";\r\nimport {ProductsHelperService} from \"../../../services/productsHelper.service\"\r\nimport {ProductColorSelectionService} from \"../../../services/productColorSelection.service\";\r\nimport {SelectedDesignColorsService} from \"../../../services/selectedDesignColors.service\";\r\nimport { CategoryService } from \"../../../resources/category\";\r\nimport { SearchService } from \"../../../resources/search\";\r\nimport { DecorationGroupHelperService } from \"app/services/decorationGroupHelper.service\";\r\nimport { DesignHelperService } from \"app/services/designHelper.service\";\r\n\r\ndeclare var _:any;\r\ndeclare var Swiper: any;\r\n\r\n@Component(\r\n {\r\n selector: \"ecc-change-item\",\r\n template: \r\n `\r\n
\r\n
\r\n
\r\n
Change Item
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
    \r\n
  • {{category.name}}
  • \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
{{repeatProduct.name}}
\r\n
\r\n
\r\n
\r\n
\r\n
Sorry, no matches found for “{{keywords}}”
\r\n
Sorry, we can't find that product. Please refine your search. You may enter a product code (\"363M\"), a brand name (\"Nike\") or product type such as \"hooded sweatshirt\".
Still can't find what you're looking for? Our client service specialists can be reached through live chat, email or phone.
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{{previewProduct?.name}}
\r\n
\r\n \r\n
\r\n
Available сolors
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Product Details
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n This product is out of stock.\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n `\r\n }\r\n)\r\nexport class ChangeItemComponent extends BaseClass implements OnInit {\r\n \r\n @Input() set products(_products: any){\r\n if(_products){\r\n this._products = _products;\r\n }\r\n }\r\n @Input() set product(_product: any){ // get it from $scope.product\r\n if(_product){\r\n this._product = _product;\r\n this.description = _product.description;\r\n }\r\n }\r\n @Input() set color(_color: any){ // get it from $scope.color\r\n if(_color){\r\n this._color = _color;\r\n }\r\n }\r\n @Input() desktop: boolean = true;\r\n @Input() design: any;\r\n @Input() decorationGroupId: any;\r\n @Output() switchView: EventEmitter = new EventEmitter();\r\n \r\n _product: any;\r\n _color: any;\r\n _products: any;\r\n displayProducts: any = [];\r\n selectedProduct: any;\r\n selectedCategory: any;\r\n previewColor: any;\r\n categories: any;\r\n previewProduct: any;\r\n description: any;\r\n swiperModalMini: any;\r\n swiperModal: any;\r\n showProductDetails: boolean = false;\r\n keywords: string = \"\";\r\n searchTimeout: any;\r\n showSearchIsEmptyMessage: boolean = false;\r\n appEvents: AppEvents = new AppEvents();\r\n \r\n constructor(protected productsService: ProductsHelperService, protected productColorSelection: ProductColorSelectionService,\r\n protected selectedDesignColors: SelectedDesignColorsService, protected categoryService: CategoryService,\r\n protected searchService: SearchService, protected decorationGroupHelper: DecorationGroupHelperService,\r\n protected designHelperService: DesignHelperService) {\r\n super(); \r\n }\r\n \r\n ngOnInit() {\r\n this.reset(); \r\n }\r\n\r\n openModal(modalStr) {\r\n this.appEvents.emitOpenModalChange(modalStr);\r\n }\r\n\r\n isSizeAvailable(selectedColor: any, size : any) {\r\n if(selectedColor) {\r\n var lColor = _.findWhere(this._product.colors, {\r\n id: selectedColor.id\r\n });\r\n if(lColor) {\r\n let sizeExists = _.contains(lColor.availableSizes, size);\r\n return sizeExists;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n getSizeById(previewProduct: any, sizeId: any) {\r\n let size = _.findWhere(previewProduct.sizes, {\r\n id: sizeId\r\n });\r\n if(size) {\r\n return size.name;\r\n }\r\n return \"\";\r\n }\r\n \r\n setColorAndProduct(newColor: any, newProduct: any) {\r\n let oldProduct: any = this._product;\r\n this.removeExtraPrintColorsFromDesignElements(newProduct);\r\n this.appEvents.emitProductChange(newProduct);\r\n let defaultGroup = this.productColorSelection.getDefaultGroup();\r\n this.productColorSelection.resetSelection();\r\n this.productColorSelection.addColor(newProduct, newColor);\r\n if(defaultGroup) {\r\n this.productColorSelection.addDefaultGroup(defaultGroup, newProduct);\r\n }\r\n this.productColorSelection.setDefaultQuantity(newProduct);\r\n this.appEvents.emitColorChange(newColor);\r\n this.decorationGroupHelper.changeProduct(this.decorationGroupId, oldProduct, newProduct, newColor, this.productColorSelection._selection);\r\n this.appEvents.emitColorSelectionChange(this.productColorSelection._selection);\r\n this.appEvents.emitPriceGet(\"\");\r\n this.switchView.emit();\r\n this.appEvents.emitDesignOutsidePrintArea({\r\n designElement: null,\r\n showMessage: false\r\n });\r\n if(!this.desktop) {\r\n this.showProductDetails = false;\r\n this.openModal(\"mobileChooseProduct\");\r\n }\r\n if(newProduct.promoAvailable) {\r\n // check max design colors, if more than max print colors, show a message.\r\n this.appEvents.emitDesignHasMorePrintColors(this.designHelperService.designHasMoreColorsThanMaxPrintColors(newProduct));\r\n }\r\n }\r\n\r\n removeExtraPrintColorsFromDesignElements(newProduct: any) {\r\n let maxColorsAllowed = newProduct.maxPrintColors;\r\n this._product.views.forEach((view) => {\r\n view.designElements.forEach((element) => {\r\n this.designHelperService.removeExtraPrintColorsFromDesignElements(element, newProduct);\r\n });\r\n });\r\n }\r\n \r\n setPreviewProduct(selectedProduct: any) {\r\n if(selectedProduct) {\r\n this.selectedProduct = selectedProduct;\r\n this.productsService.returnProductObservable(selectedProduct.id).subscribe( rawProduct => {\r\n this.productsService.replaceDefaultQuantityWithQuantity(rawProduct);\r\n this.previewProduct = rawProduct;\r\n this.previewColor = rawProduct.colors[0];\r\n this.description = rawProduct.description;\r\n this.showProductDetails = true;\r\n });\r\n }\r\n return false;\r\n }\r\n \r\n setPreviewColor(_color: any) {\r\n this.previewColor = _color;\r\n return false;\r\n }\r\n\r\n setSelectedProductCategory(category: any) {\r\n if(!category) {\r\n category = _.findWhere(this.categories, {\r\n id: this._product.categoryId\r\n });\r\n }\r\n if(!category) {\r\n category = _.findWhere(this.categories, {\r\n id: 1\r\n });\r\n }\r\n\r\n this.selectedCategory = category;\r\n this.displayProducts = category.products;\r\n return false;\r\n }\r\n\r\n reset() {\r\n this.previewProduct = this._product;\r\n this.previewColor = this._color;\r\n this.description = this._product.description;\r\n\r\n this.categoryService.getCategories().subscribe((categories) => {\r\n this.categories = categories;\r\n this.setSelectedProductCategory(void 0);\r\n });\r\n }\r\n\r\n searchTextUpdated() {\r\n if (this.searchTimeout !== void 0) {\r\n clearTimeout(this.searchTimeout);\r\n }\r\n this.searchTimeout = setTimeout((t: any) => {\r\n if(this.keywords != \"\") {\r\n this.searchService.get(this.keywords).subscribe((result) => {\r\n if(result && result.length > 0) {\r\n this.displayProducts = result;\r\n this.showSearchIsEmptyMessage = false;\r\n }\r\n else {\r\n this.displayProducts = [];\r\n this.showSearchIsEmptyMessage = true;\r\n }\r\n });\r\n }\r\n }, 1000);\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/desktop/add/changeItem.component.ts","import {Component, Input, Output, EventEmitter, OnDestroy, ChangeDetectionStrategy, OnInit} from \"@angular/core\";\r\nimport {Subscription} from \"rxjs/Subscription\";\r\n\r\nimport {AppEvents} from \"../../../appEvents\";\r\nimport {BaseClass} from \"../../../components/base.class\"; \r\nimport {RemoveBackgroundService} from \"../../../resources/removeBackground\";\r\nimport {ImageRenderService} from \"../../../resources/imageRender\";\r\nimport {DesignHelperService} from \"../../../services/designHelper.service\";\r\nimport {SelectedDesignColorsService} from \"../../../services/selectedDesignColors.service\";\r\nimport { ProductsHelperService } from \"../../../services/productsHelper.service\";\r\nimport { ImageHelperService } from \"../../../services/imageHelper.service\";\r\nimport {CONFIG} from \"../../../../environments/environment\";\r\nimport { DecorationGroupHelperService } from \"app/services/decorationGroupHelper.service\";\r\n\r\ndeclare var $: any;\r\ndeclare var _: any;\r\n\r\n@Component(\r\n {\r\n selector: \"ecc-edit-image-clipart\",\r\n template:\r\n `\r\n
\r\n
\r\n
Image settings
\r\n
Clipart settings
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
Edit Image
\r\n
Edit Clipart
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n Flip Horizontally\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n Flip Vertically\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
0\" class=\"col-12\">\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n Edit Colors\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
Clipart Color
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{_currentDesignElement.color.name}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Selected Color:
\r\n
\r\n
\r\n
\r\n {{clipartPopupSelectedColor?.name}}\r\n
\r\n
\r\n
\r\n
\r\n You have reached maximum design colors for this product. You can only select one of the colors used in the design view.\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
color currently used on this design view
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
Object Position
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n
\r\n
Unlocked
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
Locked
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
Rotation (-180 to 180)
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n Uploaded image is too small for the current print size\r\n
\r\n\r\n
\r\n \r\n Note! You have reached the maximum allowable size\r\n
\r\n\r\n
\r\n Note! Only embroidery option is available for this product\r\n
\r\n\r\n
\r\n Note! This artwork can only be embroidered\r\n
\r\n
\r\n\r\n \r\n \r\n `,\r\n }\r\n)\r\nexport class EditImageAndClipartComponent extends BaseClass implements OnDestroy, OnInit {\r\n \r\n @Input() set product(_product: any) {\r\n if(_product){\r\n this._product = _product;\r\n }\r\n } \r\n @Input() set pView(_productViewMap: any) {\r\n if(_productViewMap){\r\n this._productView = _productViewMap.get('productView');\r\n }\r\n } \r\n @Input() set currentDesignElement(_currentDesignElementMap: any) {\r\n if(_currentDesignElementMap){\r\n this._currentDesignElement = _currentDesignElementMap.get('currentDesignElement');\r\n if(this._currentDesignElement) {\r\n if(this._currentDesignElement.type === \"image\")\r\n {\r\n this._isScreenPrint = false;\r\n if(this._currentDesignElement.colors && this._currentDesignElement.colors.length > 0) {\r\n this._isScreenPrint = true;\r\n }\r\n else if(this._currentDesignElement.isFullColor === false && this._currentDesignElement.isEmbroidery === false) {\r\n this._currentDesignElement.isFullColor = true;\r\n this._isScreenPrint = false;\r\n }\r\n }\r\n this.rotationAngle = this._currentDesignElement.rotationAngle;\r\n }\r\n } \r\n } \r\n @Input() set designColors(_designColors: any) {\r\n if(_designColors){\r\n this._designColors = _designColors;\r\n }\r\n } \r\n @Input() isDesignTemplate: boolean = false;\r\n @Input() desktop: boolean = true;\r\n\r\n _product: any;\r\n _currentDesignElement: any;\r\n _productView: any;\r\n _designColors: any;\r\n imageError: boolean;\r\n appEvents: AppEvents = new AppEvents();\r\n toggle: boolean = true;\r\n _isScreenPrint: boolean = false;\r\n showEmbroideryConfirmation: boolean = false;\r\n lastPrintType : string = 'digital';\r\n rotationAngle: any = \"0\";\r\n showColorSelection: boolean = false;\r\n entripyImagePath: any ;\r\n showClipartColorPopup:any;\r\n clipartPopupSelectedColor: any;\r\n imageErrorSubscription: Subscription;\r\n maxSizeReachedSubscription: Subscription;\r\n showMaxColorWarning: boolean = false;\r\n\r\n constructor(protected designsHelper: DesignHelperService, protected selectedColorsService: SelectedDesignColorsService,\r\n protected renderImageService: ImageRenderService, protected removeBackground: RemoveBackgroundService,\r\n protected productsHelper: ProductsHelperService, protected imageHelper: ImageHelperService,\r\n protected decorationGroupHelper: DecorationGroupHelperService) { \r\n super();\r\n this.imageErrorSubscription = AppEvents.imageError.subscribe((imageError) => {\r\n this.imageError = imageError;\r\n });\r\n this.maxSizeReachedSubscription = AppEvents.maxSizeReachedO.subscribe((element) => {\r\n if(this._currentDesignElement === element) {\r\n // Do nothing\r\n // this event will trigger angular to show warning\r\n }\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.entripyImagePath = CONFIG.imagesOnEntripy;\r\n let emborideryOnly = this.productsHelper.isEmbroideryOnly(this._product);\r\n if(this._currentDesignElement && this._currentDesignElement.isImageLoaded) {\r\n if(emborideryOnly) {\r\n this._currentDesignElement.isFullColor = false;\r\n this._currentDesignElement.isEmbroidery = true;\r\n }\r\n else {\r\n if((this._currentDesignElement.foundColors && this._currentDesignElement.foundColors.length <= this._product.maxPrintColors)\r\n || !this._product.isLastColorFullColor) {\r\n this.togglePrintType(\"screen\", true);\r\n if(this._currentDesignElement.colors && this._currentDesignElement.colors.length == 0 && \r\n this._currentDesignElement.foundColors && this._currentDesignElement.foundColors.length > 0) {\r\n let i: any = this._productView.selectedColors ? this._productView.selectedColors.length : 0;\r\n this._currentDesignElement.foundColors.forEach((color) => {\r\n // total view colors should be less than max print colors and color id should not be -1 (unknown color)\r\n if(i <= this._product.maxPrintColors && color.id != -1) {\r\n this.addOrRemoveColor(color, true);\r\n }\r\n i++;\r\n });\r\n }\r\n }\r\n else {\r\n this._currentDesignElement.isFullColor = true;\r\n this._currentDesignElement.isEmbroidery = false;\r\n }\r\n }\r\n this._currentDesignElement.isImageLoaded = false;\r\n }\r\n }\r\n \r\n ngOnDestroy() {\r\n this.imageErrorSubscription.unsubscribe();\r\n this.maxSizeReachedSubscription.unsubscribe();\r\n }\r\n\r\n flipHorizontally() {\r\n this._currentDesignElement.isFlippedHorizontally = !this._currentDesignElement.isFlippedHorizontally;\r\n //this.appEvents.emitDesignViewChanged(this._currentDesignElement);\r\n }\r\n\r\n flipVertically() {\r\n this._currentDesignElement.isFlippedVertically = !this._currentDesignElement.isFlippedVertically;\r\n //this.appEvents.emitDesignViewChanged(this._currentDesignElement);\r\n }\r\n\r\n openModal(){\r\n if(this._currentDesignElement.type == 'image') {\r\n this.appEvents.emitOpenModalChange(\"addImage\");\r\n }\r\n else if(this._currentDesignElement.type == 'clipart') {\r\n this.appEvents.emitOpenModalChange(\"addClipart\");\r\n }\r\n }\r\n\r\n toggleBackground() {\r\n if(this._currentDesignElement.removeBackground === void 0) {\r\n this._currentDesignElement.removeBackground = false; \r\n }\r\n if(!this._currentDesignElement.sourceWithoutBackground) {\r\n this.removeBackground.get(this._currentDesignElement.source).subscribe((obj) => {\r\n this._currentDesignElement.sourceWithoutBackground = obj.url;\r\n this._currentDesignElement.removeBackground = !this._currentDesignElement.removeBackground;\r\n this.appEvents.emitCurrentDesignElementChange(this._currentDesignElement);\r\n });\r\n }\r\n else {\r\n this._currentDesignElement.removeBackground = !this._currentDesignElement.removeBackground;\r\n this.appEvents.emitCurrentDesignElementChange(this._currentDesignElement);\r\n }\r\n if(!this._currentDesignElement.removeBackground) {\r\n $('#checkRemoveBackGround').prop(\"checked\", false);\r\n }\r\n }\r\n\r\n isColorAllowed(color: any, removeColor: any) {\r\n return this.selectedColorsService.isColorAllowed(this._productView, this._product, color, removeColor);\r\n }\r\n \r\n setClipartColor(event: any, color: any) {\r\n let removeColor = this._currentDesignElement.color;\r\n\r\n // if promo item, change all design element colors\r\n if(!this.isColorAllowed(color, null) && this._product.promoAvailable && this._product.maxPrintColors === 1) {\r\n this.decorationGroupHelper.replaceSelectedColorInView(this._productView, color)\r\n this.selectedColorsService.reset();\r\n this.selectedColorsService.addColorToView(this._productView, color);\r\n return false;\r\n }\r\n\r\n if(!this.isColorAllowed(color, removeColor)) {\r\n // show error message\r\n this.showMaxColorWarning = true;\r\n event.stopPropagation();\r\n return false;\r\n }\r\n let index: any;\r\n if(removeColor !== color) {\r\n this._currentDesignElement.color = color;\r\n this._currentDesignElement.colorHex = color.hex;\r\n \r\n index = _.indexOf(this._currentDesignElement.colors, removeColor);\r\n this._currentDesignElement.colors.splice(index, 1);\r\n this._currentDesignElement.colors.push(color);\r\n\r\n if(this.desktop) {\r\n this.selectedColorsService.updateColorInView(this._productView, removeColor, color);\r\n }\r\n else {\r\n this.selectedColorsService.updateColorInView(this._productView, removeColor, null);\r\n }\r\n this.appEvents.emitClipartColorChanged(this._currentDesignElement);\r\n this.appEvents.emitPriceGet(\"\");\r\n this.appEvents.emitCurrentDesignChanged(true);\r\n this.appEvents.emitSaveState();\r\n }\r\n return false;\r\n }\r\n\r\n isEmbroideryOnly() {\r\n if(this._currentDesignElement) {\r\n if(this.productsHelper.isEmbroideryOnly(this._product) || this._currentDesignElement.isArtworkEmbroidered) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n \r\n toggleEmbroidery() {\r\n if(this.productsHelper.isEmbroideryOnly(this._product)) {\r\n return;\r\n }\r\n // if switching back from screen print\r\n if(this.showColorSelection) {\r\n this.setEmbroidery();\r\n }\r\n else if(!this._currentDesignElement.isEmbroidery) {\r\n this.showEmbroideryConfirmation = true;\r\n }\r\n else {\r\n this._currentDesignElement.isEmbroidery = false;\r\n this._currentDesignElement.maxEmbroiderySizeReached = false;\r\n $('#checkEmbroidery').prop(\"checked\", false);\r\n this.appEvents.emitCurrentDesignElementChange(this._currentDesignElement);\r\n this.appEvents.emitPriceGet(\"\");\r\n this.appEvents.emitCurrentDesignChanged(true);\r\n this.appEvents.emitSaveState();\r\n }\r\n }\r\n\r\n closeColorSelection(printType: any) {\r\n if(this._currentDesignElement.colors.length === 0) {\r\n if(printType === \"screen\") {\r\n printType = \"digital\";\r\n }\r\n this.togglePrintType(printType);\r\n }\r\n this.showColorSelection = false;\r\n }\r\n\r\n setEmbroidery() {\r\n this.showEmbroideryConfirmation = false;\r\n this._currentDesignElement.isEmbroidery = true;\r\n this._currentDesignElement.isFullColor = false;\r\n this._isScreenPrint = false;\r\n $('#checkSelectedColors').prop(\"checked\", false);\r\n $('#checkFullColor').prop(\"checked\", false);\r\n this.resetScreenColors();\r\n this.appEvents.emitCurrentDesignElementChange(this._currentDesignElement);\r\n this.appEvents.emitPriceGet(\"\");\r\n this.appEvents.emitCurrentDesignChanged(true);\r\n this.appEvents.emitSaveState();\r\n }\r\n\r\n cancelEmbroidery() {\r\n this.showEmbroideryConfirmation = false;\r\n this._currentDesignElement.isEmbroidery = false;\r\n $('#checkEmbroidery').prop(\"checked\", false);\r\n this.togglePrintType(this.lastPrintType);\r\n delete this._currentDesignElement.location;\r\n }\r\n \r\n togglePrintType(printType: string, isInitializing: boolean = false) {\r\n\r\n if(this._currentDesignElement.isFullColor) {\r\n this.lastPrintType = \"digital\";\r\n }\r\n else if (this._currentDesignElement.isEmbroidery) {\r\n this.lastPrintType = \"embroidery\";\r\n }\r\n else {\r\n this.lastPrintType = \"screen\";\r\n }\r\n\r\n if(printType === 'digital') {\r\n this._currentDesignElement.isFullColor = true;\r\n this._currentDesignElement.isEmbroidery = false;\r\n $('#checkEmbroidery').prop(\"checked\", false);\r\n $('#checkSelectedColors').prop(\"checked\", false);\r\n this._isScreenPrint = false;\r\n this.appEvents.emitPriceGet(\"\");\r\n this.appEvents.emitCurrentDesignChanged(true);\r\n if(!isInitializing) {\r\n this.appEvents.emitSaveState();\r\n }\r\n }\r\n else if(printType === 'screen') {\r\n this._currentDesignElement.isFullColor = false;\r\n this._currentDesignElement.isEmbroidery = false;\r\n $('#checkEmbroidery').prop(\"checked\", false);\r\n $('#checkFullColor').prop(\"checked\", false);\r\n this._isScreenPrint = true;\r\n this.showColorSelection = true;\r\n this.appEvents.emitPriceGet(\"\");\r\n this.appEvents.emitCurrentDesignChanged(true);\r\n if(!isInitializing) {\r\n this.appEvents.emitSaveState();\r\n }\r\n }\r\n else if (printType === 'embroidery') {\r\n // if(!this._currentDesignElement.isEmbroidery) {\r\n // this.toggleEmbroidery();\r\n // }\r\n if(this.productsHelper.isEmbroideryOnly(this._product) || this._currentDesignElement.isArtworkEmbroidered) {\r\n event.stopPropagation(); \r\n return false;\r\n }\r\n // if switching back from screen print\r\n if(this.showColorSelection) {\r\n this.setEmbroidery();\r\n }\r\n else if(!this._currentDesignElement.isEmbroidery) {\r\n this.showEmbroideryConfirmation = true;\r\n }\r\n else {\r\n this._currentDesignElement.isEmbroidery = false;\r\n this._currentDesignElement.maxEmbroiderySizeReached = false;\r\n $('#checkEmbroidery').prop(\"checked\", false);\r\n this.appEvents.emitCurrentDesignElementChange(this._currentDesignElement);\r\n this.appEvents.emitPriceGet(\"\");\r\n this.appEvents.emitCurrentDesignChanged(true);\r\n if(!isInitializing) {\r\n this.appEvents.emitSaveState();\r\n }\r\n }\r\n }\r\n\r\n if(this._currentDesignElement.isFullColor || this._currentDesignElement.isEmbroidery) {\r\n this.resetScreenColors();\r\n }\r\n\r\n if (!this._currentDesignElement.isEmbroidery) {\r\n delete this._currentDesignElement.location;\r\n }\r\n return false;\r\n }\r\n\r\n resetScreenColors() {\r\n if(this._currentDesignElement.colors) {\r\n this._currentDesignElement.colors.forEach( (color, index) => {\r\n this.selectedColorsService.updateColorInView(this._productView, color, null);\r\n });\r\n this._currentDesignElement.colors.length = 0;\r\n }\r\n }\r\n\r\n //$scope.addOrRemoveColor\r\n addOrRemoveColor(color: any, isInitializing: boolean = false) {\r\n let index: any;\r\n this.toggle = false;\r\n if (this.colorSelected(color)) {\r\n // index = _.indexOf(this._currentDesignElement.colors, color);\r\n // this._currentDesignElement.colors.splice(index, 1);\r\n\r\n this._currentDesignElement.colors = _.filter(this._currentDesignElement.colors, (c) => {\r\n return color.id != c.id;\r\n });\r\n this.selectedColorsService.updateColorInView(this._productView, color, null);\r\n } \r\n else {\r\n let cl = _.findWhere(this._designColors, {\r\n id: color.id\r\n });\r\n if(cl) {\r\n this._currentDesignElement.colors.push(cl);\r\n this.selectedColorsService.updateColorInView(this._productView, null, cl);\r\n }\r\n }\r\n this.appEvents.emitPriceGet(\"\");\r\n this.appEvents.emitCurrentDesignChanged(true);\r\n if(!isInitializing) {\r\n this.appEvents.emitSaveState();\r\n }\r\n }\r\n\r\n setToggle(toggle: boolean) {\r\n this.toggle = toggle;\r\n }\r\n \r\n //$scope.colorSelected\r\n colorIsInView(color) {\r\n return this.selectedColorsService.colorIsContainedInView(this._productView, color);\r\n }\r\n\r\n colorSelected(color: any) {\r\n let colors: any;\r\n if (this._currentDesignElement !== void 0) {\r\n colors = this._currentDesignElement.colors || [];\r\n let findColor: any;\r\n findColor = _.where(colors, {\r\n id: color.id\r\n });\r\n return findColor.length > 0;\r\n }\r\n }\r\n\r\n selectedColorInView(color) {\r\n let colorIsContainedMoreThanOnce: any = this.selectedColorsService.colorIsContainedMoreThanOnce(this._productView, color);\r\n let colorIsInViewFlag: any = this.selectedColorsService.colorIsContainedInView(this._productView, color); \r\n let colorIsInElementFlag: any = this.colorSelected(color);\r\n\r\n if(colorIsContainedMoreThanOnce || (colorIsInViewFlag && !colorIsInElementFlag)) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n \r\n backgroundColor() {\r\n if(this.productsHelper.isEmbroideryOnly(this._product)) {\r\n return {\r\n \"background-color\": \"gray\"\r\n }\r\n }\r\n return {\r\n \"background-color\": \"white\"\r\n }\r\n }\r\n\r\n lockElement(isLocked: any) {\r\n this._currentDesignElement.isLocked = isLocked;\r\n this.appEvents.emitCurrentDesignElementLockChanged(this._currentDesignElement);\r\n this.appEvents.emitCurrentDesignElementChange(this._currentDesignElement);\r\n this.appEvents.emitCurrentDesignChanged(true);\r\n this.appEvents.emitSaveState();\r\n }\r\n\r\n rotationChanged(angle) {\r\n this._currentDesignElement.rotationAngle = angle;\r\n this.appEvents.emitCurrentDesignElementRotationChanged(this._currentDesignElement); \r\n this.appEvents.emitRotationPosition(this._currentDesignElement);\r\n this.appEvents.emitAutoSave();\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/desktop/add/editImageAndClipart.component.ts","import {Component, Input, Output, EventEmitter, OnInit} from \"@angular/core\";\r\n\r\nimport {BaseClass} from \"../../base.class\";\r\nimport {AppEvents} from \"../../../appEvents\";\r\nimport {ProductColorSelectionService} from \"../../../services/productColorSelection.service\";\r\nimport { DesignHelperService } from \"../../../services/designHelper.service\";\r\nimport {CONFIG} from \"../../../../environments/environment\";\r\nimport { GuidService } from \"../../../resources/guid\";\r\nimport { DecorationGroupHelperService } from \"app/services/decorationGroupHelper.service\";\r\n\r\ndeclare var _:any;\r\n\r\n@Component(\r\n {\r\n selector: \"ecc-personalization\",\r\n template: \r\n `\r\n
\r\n
\r\n
\r\n
Personalize Your Products
\r\n \r\n \r\n
\r\n
\r\n
{{selectedProduct.product?.sku}}: {{selectedProduct.product?.name}}
\r\n
Personalizations: \r\n \r\n {{selectedProduct.personalizationGroupsEntered}} of {{selectedProduct.totalPersonalizations}} items\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n {{selectedColor.name}}\r\n
\r\n
\r\n \r\n
\r\n
\r\n {{personalization.header}}\r\n
\r\n
\r\n Sizes\r\n
\r\n
\r\n Qty\r\n
\r\n
\r\n Delete\r\n
\r\n
\r\n \r\n
0\">\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
    \r\n
  • {{size.name}} ({{size.count}}/{{size.quantity}})
  • \r\n
\r\n
\r\n
\r\n
\r\n {{group.index}}/{{getSelectionTotalQuantities(selectedColor)}}\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n You have too many personalizations for this color. Please delete personalizations or add more quantities. \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n Add another item\r\n
\r\n
\r\n
\r\n \r\n
0 && selectedColor.personalizationGroups.length >= getSelectionTotalQuantities(selectedColor)\"\r\n class=\"col-12 shopping-cart__artwork-decoration-cntrl\" style=\"text-align: right; padding: 25px 20px; color: #33cc00; height: unset;\">\r\n Personalizations complete for this item\r\n
\r\n \r\n
\r\n Please assign quantities to this color in Your Item section\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n `\r\n }\r\n)\r\nexport class PersonalizationComponent extends BaseClass implements OnInit {\r\n \r\n @Input() set product(_product: any){ // get it from $scope.product\r\n if(_product){\r\n this._product = _product;\r\n }\r\n }\r\n @Input() checkout: boolean = true;\r\n @Input() isDesignTemplate: boolean = false;\r\n @Output() closeModal: any = new EventEmitter();\r\n \r\n _product: any;\r\n //_selection: any;\r\n _decorationGroup: any;\r\n _defaultGroup: any;\r\n //totalPersonalizations: number = 0;\r\n //personalizationGroupsEntered: number = 0;\r\n arePersonalizationsValid = true;\r\n imagePath: any;\r\n \r\n appEvents: AppEvents = new AppEvents();\r\n \r\n constructor(protected productColorSelectionService: ProductColorSelectionService,\r\n protected designHelperService: DesignHelperService, protected guidService: GuidService, protected decorationGroupHelper: DecorationGroupHelperService) {\r\n super(); \r\n this.imagePath = CONFIG.imagesOnEntripy;\r\n }\r\n \r\n ngOnInit() {\r\n this._decorationGroup = this.decorationGroupHelper.getFirstOrDefaultGroup();\r\n if(!this._decorationGroup) {\r\n this._decorationGroup = this.decorationGroupHelper.createTemporaryDecorationGroup(this._product, this.productColorSelectionService._selection);\r\n }\r\n //this._selection = this.productColorSelectionService._selection;\r\n this._defaultGroup = this.productColorSelectionService.getDefaultGroup();\r\n this.designHelperService.totalProductCountFromDecorationGroup(this._decorationGroup);\r\n let totalPersonaliztionGroups: any = this.productColorSelectionService.personalizationGroupsEnteredByDecorationGroup(this._decorationGroup);\r\n \r\n if(this._decorationGroup && this._decorationGroup.products && this._decorationGroup.products.length > 0 \r\n && totalPersonaliztionGroups == 0 && this._decorationGroup.products[0].selection.length > 0) {\r\n // add a default personalization row to the first selected color.\r\n this.addGroup(this._decorationGroup.products[0].selection[0], this._decorationGroup.products[0]);\r\n }\r\n }\r\n\r\n removeSpecialCharacters(event, personalization) {\r\n let designElements = this._product.views.map(function(v){\r\n return v.designElements.filter(de => de.isPersonalization);\r\n });\r\n \r\n let designElement = designElements.reduce((a, v) => a.concat(v), []);\r\n let selectedDesignElement = designElement.filter(d => d.id == personalization.designElementId)\r\n\r\n if(selectedDesignElement[0] && selectedDesignElement[0].isEmbroidery){\r\n let k = event.charCode; // k = event.keyCode; (Both can be used)\r\n return((k > 64 && k < 91) || (k > 96 && k < 123) || k == 32 || k == 8 || (k >= 48 && k <= 57));\r\n }\r\n\r\n return true;\r\n }\r\n\r\n personalizationUpdated() {\r\n this.appEvents.emitCalculatePersonalizationCost();\r\n }\r\n\r\n save() {\r\n this.closeModal.emit(true);\r\n }\r\n\r\n //save(goForward: boolean) {\r\n // this.closeModal.emit(goForward);\r\n // if(!this.isDesignTemplate) {\r\n // this.appEvents.emitSaveDesign(goForward);\r\n // }\r\n // else {\r\n // this.appEvents.emitSaveDesignTemplate();\r\n // }\r\n //}\r\n\r\n close() {\r\n this.closeModal.emit(false);\r\n }\r\n\r\n getHeader(personalization: any) {\r\n if(personalization.header && personalization.header.length > 8) {\r\n return personalization.header.substring(0,8) + '...';\r\n }\r\n return personalization.header;\r\n }\r\n\r\n setSize(selectedColor: any, group: any, size: any) {\r\n if(group && size && size.quantity > size.count) {\r\n let oldSize = group.size;\r\n if(oldSize) {\r\n // reset size counter\r\n let size = _.findWhere(selectedColor.sizes, {id: oldSize.id});\r\n if(size) {\r\n size.count--;\r\n }\r\n }\r\n group.size = size;\r\n size.count++;\r\n group.showSize = !group.showSize;\r\n }\r\n }\r\n\r\n hideSizeDropdowns(group: any, selectedProduct: any) {\r\n selectedProduct.selection.forEach((selectedColor) => {\r\n if(selectedColor) {\r\n let groups = _.filter(selectedColor.personalizationGroups, (g) => {\r\n return g.showSize;\r\n });\r\n groups.forEach((g) => {\r\n if(g !== group) {\r\n g.showSize = false;\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n toggleSize(group: any, selectedProduct: any) {\r\n if(group) {\r\n this.hideSizeDropdowns(group, selectedProduct);\r\n group.showSize = !group.showSize;\r\n }\r\n }\r\n\r\n getSizeName(group: any, selectedColor: any) {\r\n if(group && group.size) {\r\n return group.size.name;\r\n }\r\n else {\r\n let size = _.find(selectedColor.sizes, (s) => {\r\n return s.quantity > 0 && s.quantity > s.count;\r\n });\r\n if(size) {\r\n size.count++;\r\n group.size = size;\r\n return size.name;\r\n }\r\n else {\r\n return \"\";\r\n }\r\n }\r\n }\r\n\r\n getSelectionTotalQuantities(selectedColor: any) {\r\n return this.designHelperService.getTotalQuantitiesBySelection(selectedColor);\r\n }\r\n\r\n addGroup(selectedColor: any, selectedProduct: any) {\r\n if(selectedColor && this._defaultGroup) {\r\n // get new group id\r\n this.guidService.getNewGuid().subscribe((guid: any) => {\r\n this.productColorSelectionService.addPersonalizationGroup(selectedColor, this._defaultGroup, guid);\r\n selectedProduct.personalizationGroupsEntered++;\r\n });\r\n }\r\n }\r\n\r\n deleteGroup(selectedColor:any, group: any, selectedProduct: any) {\r\n if(selectedColor && group) {\r\n this.productColorSelectionService.removePersonalizationGroup(selectedColor, group);\r\n selectedProduct.personalizationGroupsEntered--;\r\n }\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/desktop/add/personalization.component.ts","import {Component, Input, Output, EventEmitter, OnInit} from \"@angular/core\";\r\n\r\nimport {LoadDesignHelperService} from \"../../../services/loadDesignHelper.service\";\r\nimport {AppEvents} from \"../../../appEvents\";\r\nimport {CONFIG} from \"../../../../environments/environment\";\r\nimport { ProductColorSelectionService } from \"../../../services/productColorSelection.service\";\r\nimport { GuidService } from \"../../../resources/guid\";\r\nimport { SelectedDesignColorsService } from \"../../../services/selectedDesignColors.service\";\r\nimport { DecorationGroupHelperService } from \"app/services/decorationGroupHelper.service\";\r\nimport { DesignHelperService } from \"app/services/designHelper.service\";\r\n\r\ndeclare var _: any;\r\ndeclare var $: any;\r\n\r\n@Component({\r\n selector: \"ecc-preview-your-design\",\r\n template:\r\n `\r\n
\r\n
\r\n
\r\n
\r\n
{{_design?.name}}
\r\n
Select locations to be applied to the current design
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
Please choose atleast one location to apply.
\r\n
\r\n
\r\n
\r\n `\r\n})\r\nexport class PreviewYourDesignComponent implements OnInit {\r\n \r\n @Input() set design(design: string) {\r\n if(design) {\r\n this._design = design;\r\n }\r\n }\r\n\r\n @Input() set product(product: any) {\r\n if(product) {\r\n this._product = product;\r\n }\r\n }\r\n\r\n @Input() set fonts(_fonts: string) {\r\n if(_fonts) {\r\n this._fonts = _fonts;\r\n }\r\n }\r\n\r\n @Input() set designColors(_designColors: any) {\r\n if(_designColors) {\r\n this._designColors = _designColors;\r\n }\r\n }\r\n @Input() desktop: boolean = true;\r\n @Input() currentView: any;\r\n @Input() set selection(selection: any) {\r\n this._selection = selection;\r\n } \r\n @Input() maxPersonalizations: any;\r\n @Input() noOfPersonalizations: any;\r\n @Input() productColor: any;\r\n @Input() defaultGroupId: any;\r\n @Output() onCancel: EventEmitter = new EventEmitter();\r\n\r\n _design: any;\r\n _product: any;\r\n _views: any = [];\r\n _fonts: any;\r\n _designColors: any;\r\n savedDesign: any;\r\n _designProducts: any;\r\n _currentDesignProduct: any;\r\n selectedView: any;\r\n _selection: any;\r\n entripyImagePath: any;\r\n locationError: boolean = false;\r\n appEvents: AppEvents = new AppEvents();\r\n\r\n constructor(private loadDesignHelper: LoadDesignHelperService, protected colorSelectionService: ProductColorSelectionService,\r\n protected guidService: GuidService, private selectedColorsService: SelectedDesignColorsService, \r\n protected decorationGroupHelper: DecorationGroupHelperService, protected designHelperService: DesignHelperService) {}\r\n\r\n ngOnInit() {\r\n this.entripyImagePath = CONFIG.imagesOnEntripy;\r\n // get the design views\r\n this.loadSavedDesign();\r\n }\r\n\r\n openModal(modalStr: any) {\r\n this.appEvents.emitOpenModalChange(modalStr);\r\n }\r\n \r\n toggleViewCheck(view: any) {\r\n view.checked = !view.checked;\r\n }\r\n\r\n setView(view) {\r\n this.selectedView = view;\r\n }\r\n\r\n loadSavedDesign() {\r\n if(this._design) {\r\n this.loadDesignHelper.XHR(this._design.id).subscribe((design) => {\r\n this.savedDesign = design;\r\n this._designProducts = design.products;\r\n this._currentDesignProduct = _.findWhere(design.products, {\r\n productId: this._product.id\r\n });\r\n if(!this._currentDesignProduct) {\r\n this._currentDesignProduct = design.products[0];\r\n }\r\n if(this._views && this._views.length > 0) {\r\n this._views.splice(0, this._views.length);\r\n } \r\n // add views, that can be applied to the current product, to the _views array\r\n let viewIds: any;\r\n viewIds = _.pluck(this._product.views, \"locationId\");\r\n this._currentDesignProduct.views.forEach((view) => {\r\n //if(_.contains(viewIds, view.locationId)) {\r\n let newView: any = {\r\n locationId: view.locationId,\r\n name: view.name,\r\n checked: false,\r\n designElements: view.designElements,\r\n screenshotSource: view.screenshotSource\r\n }\r\n this._views.push(newView);\r\n //}\r\n });\r\n // assign first view as the default selected view\r\n this.selectedView = this._views[0];\r\n });\r\n }\r\n }\r\n\r\n getClonedElement(designElement: any) {\r\n let $el = designElement.$el;\r\n designElement.$el = void 0;\r\n let clonedElement = $.extend(true, {}, designElement);\r\n designElement.$el = $el;\r\n return clonedElement;\r\n }\r\n\r\n clickApply() {\r\n // add the selected view design elements to the designElements array\r\n let locationSelected: boolean = false;\r\n this._views.forEach((view) => {\r\n if(view.checked) {\r\n locationSelected = true;\r\n let productView: any = this.loadDesignHelper.findSavedProductViewByLocationId(view.locationId, this._product.views);\r\n let productViewChanged: boolean = false;\r\n if(!productView) {\r\n productView = this._product.views[0];\r\n }\r\n if(productView) {\r\n let designElements = this.loadDesignHelper.prepDesignElements({\r\n fonts: this._fonts,\r\n designColors: this._designColors,\r\n savedView: view,\r\n isPromo: this._product.promoAvailable\r\n });\r\n designElements.forEach( (designElement) => {\r\n this.designHelperService.removeExtraPrintColorsFromDesignElements(designElement, this._product);\r\n\r\n designElement.colors.forEach(color => {\r\n this.selectedColorsService.setSelectedColorInView(productView, color);\r\n });\r\n\r\n if(!designElement.isPersonalization || (designElement.isPersonalization && this.noOfPersonalizations < this.maxPersonalizations)) {\r\n let newDesignElement = this.getClonedElement(designElement);\r\n if(newDesignElement.locationId != productView.locationId) {\r\n newDesignElement.position.top = newDesignElement.position.left = 0;\r\n newDesignElement.position.right = newDesignElement.position.right - newDesignElement.size.width;\r\n newDesignElement.position.bottom = newDesignElement.position.bottom - newDesignElement.size.height;\r\n newDesignElement.locationId = productView.locationId;\r\n }\r\n productView.designElements.push(newDesignElement);\r\n productViewChanged = true;\r\n\r\n if(designElement.isPersonalization) {\r\n this.appEvents.emitPersonalizationChange(1);\r\n this.noOfPersonalizations++;\r\n this.decorationGroupHelper.addPersonalization(this.defaultGroupId, designElement.personalizationName, designElement.text, \r\n this.productColor ? this.productColor.id : 0, 0, designElement.id, productView.name, productView.locationId);\r\n }\r\n }\r\n });\r\n\r\n this.appEvents.emitProductViewDesignElementsChange(productView.designElements);\r\n if(productViewChanged && this.currentView === productView) {\r\n this.appEvents.emitProductViewChange(productView);\r\n }\r\n productViewChanged = false;\r\n }\r\n this.appEvents.emitCurrentDesignChanged(true);\r\n this.appEvents.emitSaveState();\r\n }\r\n });\r\n\r\n if(this._product.promoAvailable) {\r\n // check max design colors, if more than max print colors, show a message.\r\n this.appEvents.emitDesignHasMorePrintColors(this.designHelperService.designHasMoreColorsThanMaxPrintColors(this._product));\r\n }\r\n\r\n if(!locationSelected) {\r\n this.locationError = true;\r\n return false;\r\n }\r\n else if (this.desktop) {\r\n this.onCancel.emit(\"Cancel\");\r\n }\r\n else {\r\n this.openModal(\"mobileMain\");\r\n }\r\n }\r\n\r\n clickCancel() {\r\n this.onCancel.emit(\"Cancel\");\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/desktop/add/previewYourDesign.component.ts","import {Component, Input, Output, OnInit, EventEmitter, OnDestroy} from \"@angular/core\";\r\nimport {DesignsService} from \"../../../resources/designs\";\r\nimport {AppEvents} from \"../../../appEvents\";\r\nimport {SelectedDesignColorsService} from \"../../../services/selectedDesignColors.service\";\r\nimport {CONFIG} from \"../../../../environments/environment\";\r\nimport {Subscription} from \"rxjs/Subscription\";\r\n\r\ndeclare var _ : any;\r\n\r\n@Component({\r\n selector: \"ecc-your-designs\",\r\n template: \r\n`\r\n
\r\n
\r\n
Your Designs
\r\n
\r\n \r\n
Don’t see your designs? \r\n Login\r\n
\r\n
\r\n
\r\n
{{design.name}}
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Preview\r\n
\r\n
\r\n Edit\r\n
\r\n
\r\n Delete\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n\r\n\r\n\r\n\r\n \r\n\r\n `,\r\n})\r\nexport class YourDesignsComponent implements OnInit, OnDestroy {\r\n \r\n @Input() set Customer (customer: any) {\r\n this.customer = customer;\r\n }\r\n \r\n @Input() set CurrentDesignId (id: any) {\r\n this.currentDesignId = id;\r\n }\r\n \r\n @Input() set currentDesignChanged(designChanged: boolean) {\r\n this._currentDesignChanged = designChanged;\r\n }\r\n\r\n @Input() set product(product: any) {\r\n if(product) {\r\n this._product = product;\r\n }\r\n }\r\n\r\n @Input() set fonts(_fonts: string) {\r\n if(_fonts) {\r\n this._fonts = _fonts;\r\n }\r\n }\r\n\r\n @Input() set designColors(_designColors: any) {\r\n if(_designColors) {\r\n this._designColors = _designColors;\r\n }\r\n }\r\n @Input() desktop: boolean = true;\r\n @Input() currentView: any;\r\n @Input() viewId: any;\r\n @Input() content: any;\r\n @Input() set selection(selection: any) {\r\n this._selection = selection;\r\n } \r\n @Input() maxPersonalizations: any;\r\n @Input() noOfPersonalizations: any;\r\n @Input() productColor: any;\r\n @Input() defaultGroupId: any;\r\n\r\n @Output() resetDesign: EventEmitter = new EventEmitter();\r\n @Output() saveDesign: EventEmitter = new EventEmitter();\r\n \r\n customer: any;\r\n savedDesigns: any;\r\n currentDesignId: any;\r\n _currentDesignChanged: boolean = false;\r\n showDeleteConfirmation: boolean = false;\r\n showPreviewDesignPopup: boolean = false;\r\n designToBeDeleted: any;\r\n previewedDesign: any;\r\n sharedDesign: any;\r\n _product: any;\r\n _fonts: any;\r\n _designColors: any;\r\n appEvents: AppEvents = new AppEvents();\r\n entripyImagePath: any;\r\n imagesPath: string;\r\n showEditChangeConfirmation: boolean = false;\r\n designToBeViewed: any;\r\n showShare: boolean = false;\r\n _selection: any;\r\n\r\n refreshDesignViewSubscription: Subscription;\r\n \r\n constructor(private designService: DesignsService, private selectedColorsService: SelectedDesignColorsService) { \r\n this.refreshDesignViewSubscription = AppEvents.refreshSavedDesignViewO.subscribe(() => {\r\n this.getDesigns();\r\n });\r\n }\r\n \r\n ngOnInit() {\r\n // get designs\r\n this.getDesigns();\r\n this.entripyImagePath = CONFIG.imagesOnEntripy; \r\n this.imagesPath = CONFIG.imagesHost; \r\n }\r\n\r\n ngOnDestroy() {\r\n this.refreshDesignViewSubscription.unsubscribe();\r\n }\r\n\r\n encodeURI() {\r\n if(this._product) {\r\n let url = '/login?returnUrl=/designer/product/' + this._product.id;\r\n let contentStr = (this.content) ? \"?content=\" + this.content : \"?content=\";\r\n let designStr = (this.currentDesignId) ? \"&design=\" + this.currentDesignId : \"&design=\";\r\n let viewStr = (this.viewId) ? \"&view=\" + this.viewId : \"&view=\";\r\n return url + encodeURIComponent(contentStr + designStr + viewStr);\r\n }\r\n else {\r\n return '/login?returnUrl=/designer';\r\n }\r\n }\r\n\r\n openModal(modalStr: any) {\r\n this.appEvents.emitOpenModalChange(modalStr);\r\n }\r\n \r\n getDesigns() {\r\n this.designService.get().subscribe((designs) => {\r\n this.savedDesigns = designs;\r\n });\r\n }\r\n\r\n resetColorSelection() {\r\n this._product.views.forEach(view => {\r\n this.selectedColorsService.resetView(view);\r\n });\r\n }\r\n\r\n // preview Design \r\n previewDesign(design) {\r\n this.previewedDesign = design;\r\n this.showPreviewDesignPopup = true;\r\n }\r\n \r\n // preview Design \r\n shareDesign(design) {\r\n this.sharedDesign = design;\r\n this.showShare = true;\r\n }\r\n\r\n // delete selected design\r\n deleteDesign(design) {\r\n // confirm popup\r\n this.designToBeDeleted = design;\r\n this.showDeleteConfirmation = true;\r\n }\r\n \r\n onDeleteOk() {\r\n // delete design\r\n this.designService.delete(this.designToBeDeleted.id).subscribe( () => {\r\n // delete the element from the savedDesigns\r\n this.savedDesigns = _.without(this.savedDesigns, _.findWhere(this.savedDesigns, { id: parseInt(this.designToBeDeleted.id) }));\r\n \r\n // present a blank design if the design.id === current design id\r\n if(this.designToBeDeleted.id === this.currentDesignId) {\r\n this.resetDesign.emit(this.currentDesignId);\r\n }\r\n \r\n // reset selected colors array\r\n \r\n this.showDeleteConfirmation = false;\r\n });\r\n }\r\n\r\n editDesign(design, desktop) {\r\n this.designToBeViewed = design;\r\n if (this._currentDesignChanged) {\r\n // ask user if he/she wants to save the current design first??\r\n this.showEditChangeConfirmation = true;\r\n }\r\n else {\r\n if(!desktop)\r\n {\r\n this.openModal('mobileMain');\r\n }\r\n this.selectedColorsService.reset();\r\n this.appEvents.emitLoadSavedDesign(this.designToBeViewed.id);\r\n }\r\n }\r\n \r\n onViewChangeOk() {\r\n // load the selected design\r\n this.showEditChangeConfirmation = false;\r\n this.saveDesign.emit(this.designToBeViewed.id); \r\n if(!this.desktop)\r\n {\r\n this.openModal('mobileMain');\r\n } \r\n }\r\n onViewChangeCancel() {\r\n this.showEditChangeConfirmation = false;\r\n this.selectedColorsService.reset();\r\n this.appEvents.emitLoadSavedDesign(this.designToBeViewed.id);\r\n if(!this.desktop)\r\n {\r\n this.openModal('mobileMain');\r\n } \r\n }\r\n onCancel() {\r\n this.showDeleteConfirmation = false;\r\n this.showPreviewDesignPopup = false;\r\n return false;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/desktop/add/yourDesigns.component.ts","import {Component, Input, Output, EventEmitter, OnDestroy, OnInit} from \"@angular/core\";\r\n\r\nimport {ProductColorSelectionService} from \"../../../services/productColorSelection.service\";\r\nimport {LoadDesignHelperService} from \"../../../services/loadDesignHelper.service\";\r\nimport {DesignHelperService} from \"../../../services/designHelper.service\";\r\nimport {BaseClass} from \"../../base.class\";\r\nimport {AppEvents} from \"../../../appEvents\";\r\nimport {CONFIG} from \"../../../../environments/environment\";\r\nimport { GuidService } from \"../../../resources/guid\";\r\n\r\ndeclare var _ : any;\r\ndeclare var $ : any;\r\ndeclare var Swiper: any;\r\n\r\n@Component(\r\n {\r\n selector: \"ecc-your-item\",\r\n template:\r\n `\r\n
\r\n
\r\n
{{_product?.name}}
\r\n
{{_product?.sku}}
\r\n
\r\n
\r\n
Change Item
\r\n
Add Product
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n Add another product\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Choose color, size and quantities
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{selectedColor.name}}\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
Selected Color:
\r\n
\r\n
\r\n
\r\n {{popupSelectedColor?.name}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
1\" class=\"col-12 align-self-end shopping-cart__artwork-decoration-cntrl\" style=\"padding: 5px 0 5px 20px; text-align: left;\">\r\n View\r\n
\r\n \r\n
\r\n
\r\n
\r\n
{{size.name}}
\r\n \r\n
\r\n
\r\n
\r\n This color is no longer available, please choose another color.\r\n
\r\n
\r\n You have too many personalizations for this color. Please delete personalizations or add more quantities. \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n Add another color\r\n
\r\n
\r\n
\r\n
Note! Minimum quantity of {{minQuantities}} is required
\r\n
\r\n\r\n \r\n\r\n `,\r\n }\r\n)\r\nexport class YourItemComponent extends BaseClass implements OnDestroy, OnInit {\r\n \r\n @Input() set product(_product: any){\r\n if(_product){\r\n this._product = _product;\r\n this.previewColor = _product.colors[0];\r\n }\r\n }\r\n @Input() set products(_products: any){\r\n if(_products){\r\n this._products = _products;\r\n }\r\n }\r\n @Input() set color(_color: any){ // get it from $scope.color\r\n if(_color){\r\n this._color = _color;\r\n }\r\n }\r\n @Input() set selection(selection: any) {\r\n this._selection = selection;\r\n if(!_.contains(selection, this._selectedColor)) {\r\n this._selectedColor = this._selection[0];\r\n }\r\n } \r\n @Input() desktop: boolean = true;\r\n @Input() isDesignTemplate: boolean = false;\r\n @Input() set minQty(minQty : any) {\r\n if(minQty) {\r\n this.minQuantities = minQty;\r\n }\r\n }\r\n @Input() set qtyError (minQtyError: any) {\r\n if(minQtyError) {\r\n this.minQtyError = minQtyError;\r\n }\r\n }\r\n @Input() set similarProducts(similarProducts: any) {\r\n if(similarProducts) {\r\n this._similarProducts = similarProducts;\r\n }\r\n }\r\n @Input() set groupedProducts(products: any) {\r\n if(products) {\r\n this._groupedProducts = products;\r\n }\r\n }\r\n @Output() setOpenModal: EventEmitter = new EventEmitter(); // set to $scope.openModal()\r\n\r\n _product: any;\r\n _products: any;\r\n _similarProducts: any;\r\n _groupedProducts: any;\r\n _color: any;\r\n _selection: any;\r\n _selectedColor: any;\r\n colorToBeDeleted: any;\r\n popupSelectedColor: any;\r\n imagePath: any;\r\n isValid:boolean = true;\r\n previewColor: any;\r\n minQuantities: any;\r\n minQtyError: boolean = false;\r\n //swiperObj: any;\r\n showDeletePopup: boolean = false;\r\n appEvents: AppEvents = new AppEvents();\r\n\r\n constructor(protected designsHelper: DesignHelperService, protected productColorSelection: ProductColorSelectionService,\r\n protected colorHelper: LoadDesignHelperService, protected guidService: GuidService) {\r\n super();\r\n this.imagePath = CONFIG.imagesOnEntripy;\r\n }\r\n\r\n ngOnDestroy() {\r\n }\r\n\r\n ngOnInit() {\r\n // if the total quantity is less than minimum quantity, show warning.\r\n if(this._product) {\r\n this.setQuantityError();\r\n }\r\n this.initializeSwiper();\r\n }\r\n\r\n initializeSwiper() {\r\n // if(!this.swiperObj) {\r\n // this.swiperObj = new Swiper('.swiper-container', {\r\n // spaceBetween: 10,\r\n // centeredSlides: true,\r\n // loop: true,\r\n // });\r\n // }\r\n }\r\n\r\n nextProduct() {\r\n // if(this.swiperObj) {\r\n // this.swiperObj.slideTo(this.swiperObj.activeIndex + 1);\r\n // }\r\n }\r\n\r\n previousProduct() {\r\n // if(this.swiperObj) {\r\n // this.swiperObj.slideTo(this.swiperObj.activeIndex - 1);\r\n // }\r\n }\r\n\r\n changeProduct(selectedProduct: any) {\r\n if(selectedProduct && this._product && selectedProduct.id != this._product.id) {\r\n this.setSelectedProduct(selectedProduct);\r\n }\r\n return false;\r\n }\r\n\r\n setQuantityError() {\r\n let quantity: any;\r\n\r\n if(this._groupedProducts) {\r\n quantity = this.designsHelper.checkQuantityForMultipleProducts(this._groupedProducts);\r\n }\r\n else {\r\n quantity = this.designsHelper.checkQuantity(this._product, this._selection);\r\n }\r\n this.minQtyError = !quantity.valid;\r\n this.minQuantities = quantity.minQuantities;\r\n }\r\n\r\n toggleColorPopup(selectedColor: any) {\r\n this.popupSelectedColor = this.colorHelper.findSavedColor(selectedColor.id, this._product.colors);\r\n selectedColor.showPopup = !selectedColor.showPopup;\r\n }\r\n\r\n mouseOver(productColor) {\r\n this.popupSelectedColor = productColor;\r\n }\r\n\r\n checkIfColorIsDeleted(selectedColor: any) {\r\n if(selectedColor) {\r\n let productColor: any = _.findWhere(this._product.colors, {\r\n id: selectedColor.id\r\n })\r\n if(productColor && productColor.isDeleted) {\r\n selectedColor.sizes.forEach((size: any) => {\r\n size.quantity = 0;\r\n });\r\n if(selectedColor.personalizationGroups && selectedColor.personalizationGroups.length > 0) {\r\n selectedColor.personalizationGroups = [];\r\n }\r\n\r\n if(!productColor.priceReCalculated) {\r\n let totalProductCount: any = this.designsHelper.totalProductCountFromSelection(this.productColorSelection._selection);\r\n this.appEvents.emitTotalProductCountChange(totalProductCount);\r\n productColor.priceReCalculated = true;\r\n }\r\n\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n changeSelectedColor(selectedColor: any, productColor: any) {\r\n selectedColor.showPopup = !selectedColor.showPopup;\r\n \r\n selectedColor.id = productColor.id;\r\n selectedColor.hex = productColor.hex;\r\n selectedColor.name = productColor.name;\r\n\r\n this.productColorSelection.updatePersonalizationColorId(selectedColor);\r\n\r\n // set size to zero if the selected color size is not available\r\n let sizes = _.map(this._product.sizes, _.clone);\r\n selectedColor.sizes.forEach(size => {\r\n if(!this.isSizeAvailable(selectedColor, size)) {\r\n size.quantity = 0;\r\n size.count = 0;\r\n }\r\n });\r\n\r\n // if the total quantity is less than minimum quantity, show warning.\r\n this.setQuantityError();\r\n\r\n this.onSetColor(selectedColor);\r\n }\r\n\r\n\r\n isSizeAvailable(selectedColor: any, size : any) {\r\n // this.isValid = this.checkQuantity();\r\n if(selectedColor) {\r\n var lColor = _.findWhere(this._product.colors, {\r\n id: selectedColor.id\r\n });\r\n if(lColor) {\r\n let sizeExists = _.contains(lColor.availableSizes, size.id);\r\n if(!sizeExists && size.quantity > 0) {\r\n size.quantity = 0;\r\n }\r\n return sizeExists;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n setQuantity(selectedColor:any, size: any, quantity: any) {\r\n if(!size.quantity) {\r\n size.quantity = 0;\r\n }\r\n\r\n let count: any;\r\n if(this._groupedProducts) {\r\n count = this.designsHelper.totalProductCountForMultipleProducts(this._groupedProducts);\r\n }\r\n else {\r\n count = this.designsHelper.totalProductCountFromSelection(this._selection);\r\n }\r\n\r\n selectedColor.showPersonalizationQuantityWarning = this.productColorSelection.personalizationMoreThanQuantities(selectedColor);\r\n\r\n if(count === 0) {\r\n size.quantity = count = 1;\r\n }\r\n\r\n // check if the design has any embroidery, if yes, count should be more than or equal to the minimum quantity.\r\n let chkQuantity: any;\r\n \r\n if(this._groupedProducts) {\r\n chkQuantity = this.designsHelper.checkQuantityForMultipleProducts(this._groupedProducts);\r\n }\r\n else {\r\n chkQuantity = this.designsHelper.checkQuantity(this._product, this._selection);\r\n }\r\n\r\n if(chkQuantity.valid) {\r\n this.minQtyError = false;\r\n }\r\n else {\r\n this.minQtyError = true;\r\n }\r\n this.appEvents.emitTotalProductCountChange(count);\r\n }\r\n\r\n selectInput(quantity){\r\n $(quantity).select();\r\n }\r\n\r\n openModal(value: any) {\r\n \r\n this.setOpenModal.emit(value);\r\n return false;\r\n }\r\n\r\n onSetColor(selectedColor: any) {\r\n this._selectedColor = selectedColor;\r\n this.setProductViewColor(this._selectedColor.id);\r\n } \r\n\r\n onAddColor() {\r\n let addColor: any = this.getNextProductColor();\r\n let newColor : any = this.productColorSelection.addColorToSelection(this._product, addColor, this._selection);\r\n if(newColor) {\r\n this.guidService.getNewGuid().subscribe((guid: any) => {\r\n this.productColorSelection.addPersonalizationGroup(newColor, this.productColorSelection.getDefaultGroup(), guid);\r\n });\r\n }\r\n }\r\n\r\n setSelectedProduct(selectedProduct: any) {\r\n this.productColorSelection.setExistingSelection(selectedProduct.selection);\r\n this._selection = selectedProduct.selection;\r\n this._selectedColor = this._selection[0];\r\n this.appEvents.emitChangeProduct(selectedProduct);\r\n if(this._selectedColor && selectedProduct.product) {\r\n let color: any = _.findWhere(selectedProduct.product.colors, {\r\n id: this._selectedColor.id\r\n });\r\n if(color) {\r\n this.appEvents.emitColorChange(color);\r\n }\r\n }\r\n }\r\n\r\n onDelete(selectedColor: any) {\r\n if(selectedColor) {\r\n if(selectedColor.personalizationGroups.length > 0) {\r\n selectedColor.personalizationGroups.forEach((group) => {\r\n this.productColorSelection.removePersonalizationGroup(selectedColor, group);\r\n });\r\n }\r\n if(this._groupedProducts && this._groupedProducts.length > 1) {\r\n this.colorToBeDeleted = selectedColor;\r\n if(this._selection.length == 1) {\r\n // show popup\r\n this.showDeletePopup = true;\r\n }\r\n else {\r\n this.deleteSelectedColor();\r\n }\r\n }\r\n else {\r\n this.productColorSelection.deleteColor(selectedColor);\r\n if(selectedColor === this._selectedColor) {\r\n this._selectedColor = this._selection[0];\r\n this.setProductViewColor(this._selectedColor.id);\r\n }\r\n }\r\n }\r\n }\r\n\r\n deleteSelectedColor() {\r\n let selectedColor: any = this.colorToBeDeleted;\r\n this.productColorSelection.deleteMultiProductColor(selectedColor, this._selection);\r\n if(this._selection.length == 0) {\r\n let selectedProduct = _.find(this._groupedProducts, (product) => {\r\n return this._product.id != product.id;\r\n });\r\n if(selectedProduct) {\r\n this._groupedProducts.splice(_.indexOf(this._groupedProducts, _.findWhere(this._groupedProducts, {id: this._product.id})), 1);\r\n this.appEvents.emitChangeProduct(this._groupedProducts[0]);\r\n }\r\n }\r\n else if(selectedColor === this._selectedColor) {\r\n this._selectedColor = this._selection[0];\r\n this.setProductViewColor(this._selectedColor.id);\r\n }\r\n this.showDeletePopup = false;\r\n this.colorToBeDeleted = null;\r\n }\r\n\r\n cancelDelete() {\r\n this.colorToBeDeleted = null;\r\n this.showDeletePopup = false;\r\n }\r\n\r\n getNextProductColor() {\r\n let selectedColorIds = _.pluck(this._selection, 'id');\r\n let colors: any = []; \r\n this._product.colors.forEach(lColor => {\r\n if(!_.contains(selectedColorIds, lColor.id)) {\r\n colors.push(lColor);\r\n }\r\n });\r\n if(colors.length > 0) {\r\n return colors[0];\r\n }\r\n return null;\r\n }\r\n\r\n crossColor(productColor: any, selectedColor: any) {\r\n let selectedColorIds = _.pluck(this._selection, 'id');\r\n if(productColor.id != selectedColor.id) {\r\n if(_.contains(selectedColorIds, productColor.id)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n setProductViewColor(colorId: any) {\r\n let lColor = this.colorHelper.findSavedColor(colorId, this._product.colors);\r\n if(lColor) {\r\n this.appEvents.emitColorChange(lColor);\r\n this.appEvents.emitPriceGet(\"\");\r\n }\r\n }\r\n\r\n productImage(product: any) {\r\n if (product && product.selection.length > 0) {\r\n return encodeURI(product.selection[0].imageSource);\r\n } \r\n else if (product && product.color) {\r\n return encodeURI(product.color.mainImageSource);\r\n }\r\n }\r\n\r\n productBackground(product: any) {\r\n if(product && product.selection.length > 0) {\r\n return {\r\n 'background-color': product.selection[0].hex\r\n };\r\n }\r\n else if (product && product.color) {\r\n return {\r\n 'background-color': product.color.hex\r\n };\r\n }\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/desktop/add/yourItem.component.ts","import {Component, Input, Output, EventEmitter, OnDestroy, OnInit, ChangeDetectorRef} from \"@angular/core\";\r\nimport {Subscription} from \"rxjs/Subscription\";\r\nimport {DesignHelperService} from \"../../../services/designHelper.service\";\r\nimport {AppEvents} from \"../../../appEvents\";\r\nimport { ProductColorSelectionService } from \"../../../services/productColorSelection.service\";\r\nimport { ProductsHelperService } from \"../../../services/productsHelper.service\";\r\nimport { DecorationGroupHelperService } from \"app/services/decorationGroupHelper.service\";\r\n\r\n@Component(\r\n {\r\n selector: \"ecc-your-quote\",\r\n template:\r\n `\r\n
\r\n
Your Quote
\r\n
\r\n
Quantity
\r\n
\r\n
\r\n Minimum quantity of {{minQty}} required. Click \"Your Item\" in left side panel and add quantity.\r\n
\r\n
\r\n
\r\n
Unit Price
\r\n
\r\n
\r\n
\r\n
0\" class=\"your-quote__line\">\r\n
Personalization
\r\n
\r\n
\r\n
\r\n
\r\n
Sub total
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Sub total
\r\n
--.--
\r\n
\r\n Add To Cart\r\n Update Cart\r\n
\r\n \r\n\r\n \r\n\r\n `,\r\n }\r\n)\r\nexport class YourQuoteComponent implements OnDestroy, OnInit {\r\n \r\n @Input() gettingPrice: boolean; \r\n @Input() unitPrice: number = 0; \r\n @Input() unitPriceWithDiscount: number = 0;\r\n @Input() totalPrice: number = 0;\r\n @Input() totalPriceWithDiscount: number = 0; \r\n @Input() totalProducts: number = 0;\r\n @Input() minQty: number;\r\n @Input() set qtyError(minQtyError: boolean) {\r\n this._minQtyError = minQtyError;\r\n }\r\n @Input() design: any;\r\n @Input() isDesignTemplate: boolean = false;\r\n @Input() product: any;\r\n @Input() set selection(_selection: any) {\r\n if(_selection) {\r\n this._selection = _selection;\r\n }\r\n }\r\n @Input() isValidDesign: any;\r\n @Input() personalizationCharge: any;\r\n @Input() set productView(_productView: any) {\r\n if(_productView) {\r\n this._productView = _productView.get('productView');\r\n }\r\n }\r\n @Input() set currentDesignElement(currentDesignElementMap: any) {\r\n if(currentDesignElementMap) {\r\n this._currentDesignElement = currentDesignElementMap.get('currentDesignElement');\r\n }\r\n }\r\n @Input() desktop: boolean = true;\r\n @Input() defaultGroupId: any;\r\n @Input() productColor: any;\r\n @Input() isElementOutsidePrintableArea: any;\r\n \r\n addToCartClicked: boolean = false;\r\n personalizationsEntered: number = 0;\r\n _selection: any;\r\n designOutsideError: boolean = false;\r\n _productView: any;\r\n _currentDesignElement: any;\r\n _minQtyError: boolean = false;\r\n _decorationGroup: any;\r\n \r\n changePersonalizationCostSubscription: Subscription;\r\n designOutsidePrintAreaSubscription: Subscription;\r\n openPersonalizationModalSubscription: Subscription;\r\n appEvents: AppEvents = new AppEvents();\r\n\r\n constructor(protected productColorSelectionService: ProductColorSelectionService, protected productsHelper: ProductsHelperService,\r\n protected cd: ChangeDetectorRef, protected decorationGroupHelper: DecorationGroupHelperService) { \r\n this.changePersonalizationCostSubscription = AppEvents.calculatePersonalizationCostO.subscribe(() => {\r\n this._decorationGroup = this.decorationGroupHelper.getFirstOrDefaultGroup();\r\n if(this._decorationGroup) {\r\n this.personalizationsEntered = this.productColorSelectionService.personalizationGroupsEnteredByDecorationGroup(this._decorationGroup);\r\n }\r\n else {\r\n this.personalizationsEntered = this.productColorSelectionService.totalPersonalizationNamesAndNumbers();\r\n }\r\n });\r\n\r\n this.openPersonalizationModalSubscription = AppEvents.openPersonalizationModalO.subscribe((isCheckout) => {\r\n this.onCheckout(isCheckout);\r\n });\r\n\r\n // story - 10898 - uncomment this code when we want to hide add to cart button when a design element is outside printable area\r\n // this.designOutsidePrintAreaSubscription = AppEvents.designOutsidePrintAreaO.subscribe((obj) => {\r\n // if(obj) {\r\n // // hide add to cart button\r\n // this.designOutsideError = obj.showMessage;\r\n // }\r\n // else {\r\n // // show add to cart button\r\n // this.designOutsideError = false;\r\n // }\r\n // });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.changePersonalizationCostSubscription.unsubscribe();\r\n this.openPersonalizationModalSubscription.unsubscribe();\r\n // story - 10898 - uncomment this code when we want to hide add to cart button when a design element is outside printable area\r\n //this.designOutsidePrintAreaSubscription.unsubscribe();\r\n }\r\n\r\n ngOnInit() {\r\n if(this.design.continue) {\r\n this.onCheckout(true);\r\n }\r\n this._decorationGroup = this.decorationGroupHelper.getFirstOrDefaultGroup();\r\n if(this._decorationGroup) {\r\n this.personalizationsEntered = this.productColorSelectionService.personalizationGroupsEnteredByDecorationGroup(this._decorationGroup);\r\n }\r\n else {\r\n this.personalizationsEntered = this.productColorSelectionService.totalPersonalizationNamesAndNumbers();\r\n }\r\n }\r\n\r\n roundToTwo(num: number) { \r\n return Math.round(num * 100) / 100;\r\n }\r\n\r\n getPersonalizationPrice() {\r\n return this.personalizationsEntered + \" X $\" + this.roundToTwo(this.personalizationCharge);\r\n }\r\n\r\n getTotalPrice() {\r\n let total: any = this.totalPrice;\r\n if(this.personalizationsEntered > 0) {\r\n total += (this.personalizationsEntered * this.personalizationCharge);\r\n }\r\n return total > 0 ? '$' + this.roundToTwo(total) : '$--.--';\r\n }\r\n\r\n getSavedTotal() {\r\n return this.totalPriceWithDiscount > 0 ? 'Save $' + this.roundToTwo(this.totalPrice - this.totalPriceWithDiscount) : '$--.--';\r\n }\r\n\r\n getTotalPriceWithDiscount() {\r\n let total: any = this.totalPriceWithDiscount;\r\n if(this.personalizationsEntered > 0) {\r\n total += (this.personalizationsEntered * this.personalizationCharge);\r\n }\r\n return total > 0 ? '$' + this.roundToTwo(total) : '$--.--';\r\n }\r\n\r\n getTotalQuantity() {\r\n return this.totalProducts > 0 ? this.totalProducts : '-';\r\n }\r\n\r\n getUnitPrice() {\r\n return this.unitPrice > 0.00 ? '$' + this.unitPrice : '$--.--';\r\n }\r\n\r\n getUnitDiscountPrice() {\r\n return this.unitPriceWithDiscount > 0 ? '$' + this.unitPriceWithDiscount : '$--.--';\r\n }\r\n \r\n onCheckout(isCheckout: boolean) { \r\n if(this._currentDesignElement) {\r\n this.appEvents.emitCurrentDesignElementChange(null);\r\n }\r\n setTimeout((t: any) => {\r\n if(!this.checkAndTriggerColorSelection()) {\r\n this.design.checkout = isCheckout;\r\n this.design.continue = false;\r\n this.addToCartClicked = true;\r\n this.cd.detectChanges();\r\n }\r\n }, 50); \r\n }\r\n\r\n checkAndTriggerColorSelection() {\r\n let triggerColorSelection: boolean = false;\r\n let newView: any = null;\r\n let newElement: any = null;\r\n\r\n if(this.productsHelper.isEmbroideryOnly(this.product)) {\r\n return false;\r\n }\r\n\r\n this.product.views.some((view) => {\r\n view.designElements.some((element) => {\r\n if(!element.isEmbroidery && this.product.maxPrintColors > 0 && !this.product.isLastColorFullColor && element.type == 'image') {\r\n if(!element.colors || element.colors.length == 0) {\r\n triggerColorSelection = true;\r\n newView = view;\r\n newElement = element;\r\n }\r\n }\r\n return triggerColorSelection;\r\n });\r\n return triggerColorSelection;\r\n });\r\n\r\n if(newView && newElement) {\r\n if(this._productView.id !== newView.id) {\r\n this._productView.hidden = true;\r\n newView.hidden = false;\r\n this.appEvents.emitProductViewChange(newView);\r\n }\r\n\r\n newElement.isImageLoaded = true;\r\n newElement.checkout = true;\r\n this.design.continue = true;\r\n\r\n this.appEvents.emitOpenModalChange(\"addImage\");\r\n this.appEvents.emitCurrentDesignElementChange(newElement);\r\n if(!this.desktop) {\r\n this.appEvents.emitOpenModalChange('mobileEditImage');\r\n }\r\n }\r\n return triggerColorSelection;\r\n }\r\n\r\n designSaved() {\r\n this.addToCartClicked = false;\r\n }\r\n\r\n closePersonalizationModal() {\r\n this.addToCartClicked = false;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/desktop/add/yourQuote.component.ts","import {Component, Input, OnInit, ElementRef} from \"@angular/core\";\r\nimport {AppEvents} from \"../../../appEvents\";\r\nimport {CONFIG} from \"../../../../environments/environment\";\r\n\r\ndeclare var _: any;\r\ndeclare var $: any;\r\n\r\n@Component(\r\n {\r\n selector:\"ecc-change-z-index\",\r\n template: \r\n `\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n `\r\n }\r\n)\r\nexport class ChangeZIndexComponent implements OnInit{\r\n \r\n @Input() set designElements(_designElements: any){ // $scope.productView.designElements\r\n if(_designElements){\r\n this._designElements = _designElements;\r\n }\r\n }\r\n @Input() set designElement(_designElement: any){ // #designElement of productView.designElements\r\n if(_designElement){\r\n this._designElement = _designElement;\r\n }\r\n }\r\n @Input() showZIndex: boolean;\r\n @Input() set pView(pv: any) {\r\n if(pv) {\r\n this._productView = pv;\r\n }\r\n }\r\n\r\n _designElements: any;\r\n _designElement: any;\r\n _productView: any;\r\n imagesPath: string;\r\n entripyImagePath: any;\r\n appEvents: AppEvents = new AppEvents();\r\n\r\n constructor(private el: ElementRef) { \r\n\r\n }\r\n \r\n ngOnInit() {\r\n this.imagesPath = CONFIG.imagesHost;\r\n this.entripyImagePath = CONFIG.imagesOnEntripy;\r\n }\r\n \r\n bringToFront(designElement: any) {\r\n let element: any, higherElements: any, referenceZIndex: any, topZIndex: any, zIndeces: any, i: any, len: any;\r\n referenceZIndex = _.clone(designElement.zIndex);\r\n zIndeces = _.pluck(this._designElements, 'zIndex');\r\n topZIndex = _.max(zIndeces);\r\n higherElements = _.filter(this._designElements, (element: any) => {\r\n return element.zIndex >= referenceZIndex;\r\n });\r\n for (i = 0, len = higherElements.length; i < len; i++) {\r\n element = higherElements[i];\r\n element.zIndex -= 100;\r\n }\r\n designElement.zIndex = topZIndex;\r\n return false;\r\n }\r\n \r\n sendToBack(designElement: any) {\r\n var bottomZIndex: any, element: any, lowerElements: any, referenceZIndex: any, zIndeces: any, i: any, len: any;\r\n referenceZIndex = _.clone(designElement.zIndex);\r\n zIndeces = _.pluck(this._designElements, 'zIndex');\r\n bottomZIndex = _.min(zIndeces);\r\n lowerElements = _.filter(this._designElements, (element: any) => {\r\n return element.zIndex <= referenceZIndex;\r\n });\r\n for (i = 0, len = lowerElements.length; i < len; i++) {\r\n element = lowerElements[i];\r\n element.zIndex += 100;\r\n }\r\n designElement.zIndex = bottomZIndex;\r\n return false;\r\n }\r\n\r\n bringForward(designElement: any) {\r\n var nextHighestElement: any, nextHighestZIndex: any, referenceZIndex: any;\r\n referenceZIndex = _.clone(designElement.zIndex);\r\n nextHighestElement = _.find(this._designElements, (element: any) => {\r\n return (element.zIndex - referenceZIndex) === 100;\r\n });\r\n if (nextHighestElement !== void 0) {\r\n nextHighestZIndex = _.clone(nextHighestElement.zIndex);\r\n nextHighestElement.zIndex = referenceZIndex;\r\n designElement.zIndex = nextHighestZIndex;\r\n }\r\n return false;\r\n }\r\n \r\n sendBackward(designElement: any) {\r\n var nextLowestElement: any, nextLowestZIndex: any, referenceZIndex: any;\r\n referenceZIndex = _.clone(designElement.zIndex);\r\n nextLowestElement = _.find(this._designElements, (element: any) => {\r\n return (element.zIndex - referenceZIndex) === -100;\r\n });\r\n if (nextLowestElement !== void 0) {\r\n nextLowestZIndex = _.clone(nextLowestElement.zIndex);\r\n nextLowestElement.zIndex = referenceZIndex;\r\n designElement.zIndex = nextLowestZIndex;\r\n }\r\n return false;\r\n }\r\n \r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/desktop/common/changeZIndex.component.ts","import {Component, Input, Output, EventEmitter, OnInit} from \"@angular/core\";\r\nimport {BaseClass} from \"../../../components/base.class\";\r\nimport {SelectedDesignColorsService} from \"../../../services/selectedDesignColors.service\";\r\nimport { AppEvents } from \"../../../appEvents\";\r\nimport { DecorationGroupHelperService } from \"app/services/decorationGroupHelper.service\";\r\n\r\ndeclare var _ : any;\r\n\r\n@Component(\r\n {\r\n selector: \"ecc-color-selection\",\r\n template:\r\n `\r\n
\r\n
\r\n
\r\n
\r\n
Color Selection
\r\n
Choose the colors that you would like to see in your design.
\r\n
0\" class=\"colorSelectionWarning\">This product supports up to {{_maxPrintColors}} colour 1\">s. \r\n = _maxPrintColors\">You can select existing colour 1\">s used on another element on this design. \r\n = _maxPrintColors\">If you want to select more colours, select Full Color option. \r\n
\r\n
0 && product.isLastColorFullColor\" class=\"col-12\">\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
Selected Colors: \r\n {{color.name}}\r\n None\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Indicates the color that is currently used
on another element on this design
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Selected Colors: \r\n None\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Indicates the color that is currently used
on another element on this design
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Please choose a color to continue.
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n `\r\n }\r\n)\r\nexport class ColorSelectionComponent extends BaseClass implements OnInit {\r\n\r\n @Input() showColorSelection: boolean = false;\r\n @Input() set designColors(colors: any) {\r\n if(colors) {\r\n this._designColors = colors;\r\n }\r\n }\r\n @Input() set productView(view: any) {\r\n if(view) {\r\n this._productView = view;\r\n }\r\n }\r\n @Input() set designElement(element: any) {\r\n if(element) {\r\n this._currentDesignElement = element;\r\n }\r\n }\r\n @Input() lastPrintType: string;\r\n @Input() product: any;\r\n @Output() closeSelection: EventEmitter = new EventEmitter(); \r\n @Output() resetScreenColors: EventEmitter = new EventEmitter(); \r\n @Output() setColor: EventEmitter = new EventEmitter(); \r\n\r\n _designColors: any;\r\n _productView: any;\r\n _currentDesignElement: any;\r\n _maxPrintColors: number = 0;\r\n _selectedColorsInView: number = 0;\r\n showMessage: boolean = false;\r\n appEvents: AppEvents = new AppEvents();\r\n \r\n constructor(\r\n private selectedColorsService: SelectedDesignColorsService,\r\n private decorationGroupHelper: DecorationGroupHelperService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this._maxPrintColors = this.product.maxPrintColors;\r\n this._selectedColorsInView = this._productView.selectedColors.length;\r\n }\r\n\r\n closeModal() {\r\n if(this._currentDesignElement.isFullColor && this._currentDesignElement.colors.length > 0) {\r\n this.resetScreenColors.emit();\r\n }\r\n this.closeSelection.emit(this.lastPrintType);\r\n }\r\n\r\n toggleFullColor() {\r\n this._currentDesignElement.isFullColor = !this._currentDesignElement.isFullColor;\r\n }\r\n\r\n continueToCheckout() {\r\n if(!this._currentDesignElement.colors || this._currentDesignElement.colors.length == 0) {\r\n this.showMessage = true;\r\n }\r\n else {\r\n this.showMessage = false;\r\n this._currentDesignElement.checkout = false;\r\n this.closeSelection.emit(this.lastPrintType);\r\n this.appEvents.emitOpenModalChange('mobileChooseProduct');\r\n this.appEvents.emitOpenPersonalizationModal(true);\r\n }\r\n }\r\n\r\n isColorAllowed(color, removeColor) {\r\n return this.selectedColorsService.isColorAllowed(this._productView, this.product, color, removeColor);;\r\n }\r\n\r\n addOrRemoveColor(event: any, color: any) {\r\n let colorIsSelected = this.colorSelected(color);\r\n\r\n if(!colorIsSelected) {\r\n if(!this.isColorAllowed(color, null)) {\r\n if(this.product.promoAvailable && this.product.maxPrintColors === 1) {\r\n this.decorationGroupHelper.replaceSelectedColorInView(this._productView, color)\r\n this.selectedColorsService.reset();\r\n this.selectedColorsService.addColorToView(this._productView, color);\r\n return false;\r\n }\r\n \r\n event.stopPropagation();\r\n return false;\r\n }\r\n else {\r\n let foundColor = _.findWhere(this._currentDesignElement.foundColors, {id : color.id})\r\n if(!foundColor) {\r\n this._currentDesignElement.isArtworkColorChanged = true;\r\n }\r\n }\r\n }\r\n else {\r\n this._currentDesignElement.isArtworkColorChanged = true;\r\n }\r\n this.setColor.emit(color);\r\n this._selectedColorsInView = this._productView.selectedColors.length;\r\n }\r\n\r\n selectedColorInView(color) {\r\n let colorIsContainedMoreThanOnce: any = this.selectedColorsService.colorIsContainedMoreThanOnce(this._productView, color);\r\n let colorIsInViewFlag: any = this.selectedColorsService.colorIsContainedInView(this._productView, color); \r\n let colorIsInElementFlag: any = this.colorSelected(color);\r\n\r\n if(colorIsContainedMoreThanOnce || (colorIsInViewFlag && !colorIsInElementFlag)) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n colorSelected(color: any) {\r\n let colors: any;\r\n if (this._currentDesignElement !== void 0) {\r\n colors = this._currentDesignElement.colors || [];\r\n let cl = _.findWhere(colors, {\r\n id: color.id\r\n });\r\n if(cl) {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/desktop/common/colorSelection.component.ts","import {Component, Input, Output, EventEmitter, OnInit} from \"@angular/core\";\r\n\r\n@Component({\r\n selector: \"ecc-confirmation\",\r\n template:\r\n `\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n `\r\n})\r\nexport class ConfirmationComponent {\r\n \r\n @Input() set message(message: string) {\r\n if(message) {\r\n this._message = message;\r\n }\r\n }\r\n @Input() set question(question: string) {\r\n if(question) {\r\n this._question = question;\r\n }\r\n }\r\n @Input() set okText(okText: string) {\r\n if(okText) {\r\n this._okText = okText;\r\n }\r\n }\r\n @Input() set cancelText(cancelText: string) {\r\n if(cancelText) {\r\n this._cancelText = cancelText;\r\n }\r\n }\r\n @Input() set isMessageBold (isBold: any) {\r\n if(isBold !== null) {\r\n this._isMessageBold = isBold;\r\n }\r\n }\r\n @Input() messageFontSize: any;\r\n @Input() descriptionFontSize: any;\r\n \r\n @Output() onOk: EventEmitter = new EventEmitter();\r\n @Output() onCancel: EventEmitter = new EventEmitter();\r\n \r\n _message: string;\r\n _question: string;\r\n _okText: string;\r\n _cancelText: string;\r\n _isMessageBold: boolean = false;\r\n \r\n clickOK() {\r\n this.onOk.emit(\"OK\");\r\n }\r\n \r\n clickCancel() {\r\n this.onCancel.emit(\"Cancel\");\r\n }\r\n\r\n getMessageStyle() {\r\n let fontSize = 16;\r\n let fontWeight = \"500\";\r\n\r\n if(this._isMessageBold) {\r\n fontWeight = \"bold\";\r\n }\r\n if(this.messageFontSize) {\r\n fontSize = this.messageFontSize;\r\n }\r\n return {\r\n 'font-weight' : fontWeight,\r\n 'font-size': fontSize + \"px\",\r\n }\r\n }\r\n\r\n getDescriptionStyle() {\r\n let fontSize = 16;\r\n let fontWeight = \"500\";\r\n\r\n if(this.descriptionFontSize) {\r\n fontSize = this.descriptionFontSize;\r\n }\r\n return {\r\n 'font-weight' : fontWeight, \r\n \"font-size\": fontSize + \"px\"\r\n };\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/desktop/common/confirmation.popup.component.ts","import {Component, Input, OnInit, OnDestroy} from '@angular/core';\r\nimport {SelectedDesignColorsService} from \"../../../services/selectedDesignColors.service\";\r\nimport {AppEvents} from \"../../../appEvents\";\r\nimport {CONFIG} from \"../../../../environments/environment\";\r\n\r\ndeclare var _: any;\r\ndeclare var $: any;\r\n\r\n@Component({\r\n selector: 'ecc-duplicate',\r\n template : \r\n `\r\n
Copy To
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
{{view.name}}
\r\n
\r\n
\r\n
\r\n\r\n `,\r\n})\r\nexport class DuplicateComponent { \r\n\r\n @Input() set product(product: any) {\r\n if(product) {\r\n this._product = product;\r\n }\r\n }\r\n\r\n @Input() set views(views: any) {\r\n if(views) {\r\n this._views = views;\r\n }\r\n }\r\n\r\n @Input() set currentView(_view: any) {\r\n if(_view) {\r\n this._currentView = _view;\r\n }\r\n }\r\n\r\n @Input() set designElement(_designElement: any) {\r\n if(_designElement) {\r\n this._currentDesignElement = _designElement;\r\n }\r\n }\r\n\r\n _product: any;\r\n _views: any;\r\n _currentView: any;\r\n _currentDesignElement: any;\r\n appEvents: AppEvents = new AppEvents();\r\n show: boolean = false;\r\n entripyImagePath: any;\r\n\r\n constructor(private selectedColorsService: SelectedDesignColorsService) {\r\n }\r\n\r\n ngOnInit() {\r\n this.entripyImagePath = CONFIG.imagesOnEntripy;\r\n }\r\n\r\n toggleShow() {\r\n this.show = !this.show;\r\n }\r\n\r\n getClonedElement(designElement: any) {\r\n let $el = designElement.$el;\r\n designElement.$el = void 0;\r\n let clonedElement = $.extend(true, {}, designElement);\r\n designElement.$el = $el;\r\n return clonedElement;\r\n }\r\n\r\n copyElementToView(view:any) {\r\n if(view) {\r\n let duplicatedElement = this.getClonedElement(this._currentDesignElement);\r\n duplicatedElement.locationId = view.locationId;\r\n\r\n this.assignZIndex(view, duplicatedElement);\r\n this.applyPosition(duplicatedElement, view);\r\n this.applySize(duplicatedElement, view);\r\n view.designElements.push(duplicatedElement);\r\n\r\n // we'll have to modify the colors if the product view already has maxed out colors. \r\n // show some warning to the user\r\n // modify color on user's behalf??\r\n \r\n if(this._currentView !== view) {\r\n let colors = duplicatedElement.colors;\r\n }\r\n\r\n duplicatedElement.colors.forEach(color => {\r\n this.selectedColorsService.updateColorInView(view, null, color);\r\n });\r\n\r\n if(this._currentView !== view) {\r\n this._currentView.hidden = true;\r\n }\r\n view.hidden = false;\r\n this._currentView = view;\r\n this._currentView.zoomScale = 1;\r\n this.appEvents.emitProductViewChange(view);\r\n this.appEvents.emitPriceGet(\"\");\r\n //this.appEvents.emitCurrentDesignElementChange(duplicatedElement);\r\n\r\n if(!view.borderBox || !view.borderBox.size || view.borderBox.size.width == 0 || view.borderBox.size.height == 0) {\r\n this.appEvents.emitSetProductViewBorderBox(view);\r\n }\r\n\r\n this.toggleShow();\r\n }\r\n }\r\n\r\n assignZIndex(view: any, designElement: any) {\r\n let zIndeces = _.pluck(view.designElements, 'zIndex');\r\n if(zIndeces && zIndeces.length > 0) {\r\n let topZIndex = _.max(zIndeces);\r\n designElement.zIndex = topZIndex + 100;\r\n }\r\n }\r\n\r\n applyPosition(duplicatedElement: any, view: any) {\r\n let elementLeft, elementTop, viewRight, viewBottom, elementRight, elementBottom : any;\r\n if(duplicatedElement.position && view.borderBox && view.borderBox.position && view.borderBox.size\r\n && this._currentView && this._currentView.borderBox && this._currentView.borderBox.position) {\r\n \r\n elementLeft = duplicatedElement.position.left + this._currentView.borderBox.position.left;\r\n elementRight = elementLeft + duplicatedElement.size.width;\r\n elementTop = duplicatedElement.position.top + this._currentView.borderBox.position.top;\r\n elementBottom = elementTop + duplicatedElement.size.height;\r\n viewRight = view.borderBox.position.left + view.borderBox.size.width;\r\n viewBottom = view.borderBox.position.top + view.borderBox.size.height;\r\n\r\n if(elementLeft < view.borderBox.position.left || elementLeft > viewRight \r\n || elementTop < view.borderBox.position.top || elementTop > viewBottom \r\n || elementRight < view.borderBox.position.left || elementRight > viewRight \r\n || elementBottom < view.borderBox.position.top || elementBottom > viewBottom ) {\r\n \r\n duplicatedElement.position.left = 0;\r\n duplicatedElement.position.top = 0; \r\n }\r\n else {\r\n duplicatedElement.position.left = duplicatedElement.position.left + 5;\r\n duplicatedElement.position.top = duplicatedElement.position.top + 5; \r\n }\r\n }\r\n else {\r\n duplicatedElement.position.left = duplicatedElement.position.left + 5;\r\n duplicatedElement.position.top = duplicatedElement.position.top + 5; \r\n }\r\n }\r\n\r\n applySize(duplicatedElement: any, view: any) {\r\n if(duplicatedElement.size && view.borderBox && view.borderBox.size) {\r\n let maxHeight, maxWidth: any;\r\n maxHeight = (duplicatedElement.isEmbroidery) ? view.maxEmbroideryHeight : view.borderBox.size.height;\r\n maxWidth = (duplicatedElement.isEmbroidery) ? view.maxEmbroideryWidth : view.borderBox.size.width;\r\n\r\n let sourceBorderBoxRatio = this._currentView.borderBox.size.height / this._currentView.borderBox.size.width;\r\n let destinationBorderBoxRatio = view.borderBox.size.height / view.borderBox.size.width;\r\n duplicatedElement.duplicated = true;\r\n\r\n if(duplicatedElement.type == 'clipart') {\r\n duplicatedElement.duplicated = true;\r\n duplicatedElement.sizeInPx = {\r\n width: duplicatedElement.size.width * this._currentView.borderBox.size.width / 100,\r\n height: duplicatedElement.size.width * this._currentView.borderBox.size.height / 100\r\n }\r\n }\r\n }\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/desktop/common/duplicate.component.ts","import {Component, Input, OnInit, OnDestroy} from '@angular/core';\r\nimport {CONFIG} from \"../../../../environments/environment\";\r\nimport {AppEvents} from \"../../../appEvents\";\r\n\r\n@Component({\r\n selector: 'ecc-header',\r\n template : \r\n `\r\n
\r\n
\r\n
\r\n \r\n
\r\n
Need Assistance?
\r\n
Call Us: 1-866-368-7479
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n `,\r\n})\r\nexport class HeaderComponent { \r\n \r\n @Input() customer: any;\r\n @Input() product: any;\r\n @Input() showLogin: boolean = false;\r\n @Input() set currentDesignChanged(designChanged: boolean) {\r\n this._currentDesignChanged = designChanged;\r\n }\r\n @Input() content: any;\r\n @Input() designId: any;\r\n @Input() viewId: any;\r\n\r\n protected imagePath: string;\r\n _currentDesignChanged: boolean = false;\r\n showViewChangeConfirmation: boolean = false;\r\n lastUrl: any;\r\n appEvents: AppEvents = new AppEvents();\r\n\r\n constructor() {\r\n this.imagePath = CONFIG.imagesOnEntripy;\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n loginOrSignup(url: any) {\r\n if(this.product && !this.customer.loggedIn) {\r\n let contentStr = (this.content) ? \"?content=\" + this.content : \"?content=\";\r\n let designStr = (this.designId) ? \"&design=\" + this.designId : \"&design=\";\r\n let viewStr = (this.viewId) ? \"&view=\" + this.viewId : \"&view=\";\r\n\r\n this.lastUrl = url + '/designer/product/' + this.product.id + encodeURIComponent(contentStr + designStr + viewStr);\r\n }\r\n else {\r\n this.lastUrl = url + '/designer';\r\n }\r\n // this is done using the move away popup.\r\n // if(this._currentDesignChanged) {\r\n // this.showViewChangeConfirmation = true;\r\n // }\r\n // else {\r\n // return window.location.replace(this.lastUrl);\r\n // }\r\n return window.location.replace(this.lastUrl);\r\n }\r\n\r\n stayHere() {\r\n this.showViewChangeConfirmation = false;\r\n }\r\n\r\n moveAway() {\r\n this.showViewChangeConfirmation = false;\r\n return window.location.replace(this.lastUrl);\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/desktop/common/header.component.ts","import {Component, Input, OnInit, Output, EventEmitter, ElementRef} from '@angular/core';\r\nimport {CONFIG} from \"../../../../environments/environment\";\r\n\r\ndeclare var slider: any;\r\ndeclare var $: any;\r\n\r\n@Component({\r\n selector: 'ecc-slider',\r\n template: \r\n `\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n `,\r\n})\r\nexport class SliderComponent implements OnInit {\r\n\r\n handleRotate: any;\r\n slider: any;\r\n angle: any;\r\n \r\n @Input() set sliderValue(angle: any) {\r\n this.angle = angle;\r\n if(this.slider) {\r\n this.slider.slider( \"value\", angle );\r\n this.handleRotate.val(angle);\r\n }\r\n };\r\n @Input() min: any;\r\n @Input() max: any;\r\n @Input() step: any;\r\n @Input() snap: boolean = false;\r\n @Output() setValue: EventEmitter = new EventEmitter();\r\n\r\n constructor(private el: ElementRef) { \r\n }\r\n\r\n ngOnInit () {\r\n this.handleRotate = $(this.el.nativeElement).find(\"#slider_amount\");\r\n this.slider = $(this.el.nativeElement).find(\"#slider_rotate\").slider({\r\n range: \"min\",\r\n min: this.min,\r\n max: this.max,\r\n value: this.angle,\r\n //step: this.step || 1,\r\n snap: this.snap,\r\n snapValue: 45,\r\n snapOffset: 5,\r\n slide: (event, ui) => {\r\n this.handleRotate.val(ui.value);\r\n },\r\n stop: (event, ui) => {\r\n this.setValue.emit(ui.value);\r\n }\r\n });\r\n this.handleRotate.val(this.angle);\r\n }\r\n\r\n stepValue(value: any) {\r\n let modValue: any = value % 45;\r\n\r\n modValue = Math.abs(modValue);\r\n // 85 - 95\r\n if((modValue >= 0 && modValue <= 5) || (modValue >= 40 && modValue < 45)) {\r\n return 5;\r\n }\r\n else {\r\n return 1;\r\n }\r\n }\r\n\r\n valueChanged(angle: any) {\r\n this.angle = angle;\r\n this.slider.slider( \"value\", angle );\r\n this.setValue.emit(angle);\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/desktop/common/slider.component.ts","import {Component, Input, Output, EventEmitter, OnInit, OnDestroy, ChangeDetectionStrategy, ViewChildren, QueryList, ViewChild, ElementRef, ChangeDetectorRef, AfterViewChecked} from \"@angular/core\";\r\nimport {Subscription} from \"rxjs/Subscription\";\r\nimport {AppEvents} from \"../../../appEvents\";\r\nimport {SelectedDesignColorsService} from \"../../../services/selectedDesignColors.service\";\r\nimport {TextElementDirective} from \"../../../directives/textElement.directive\";\r\nimport {BaseClass} from \"../../base.class\";\r\nimport {CONFIG} from \"../../../../environments/environment\";\r\nimport { ProductColorSelectionService } from \"../../../services/productColorSelection.service\";\r\nimport { SelectedDesignElementsService } from \"../../../services/selectedDesignElements.service\";\r\nimport { ProductsHelperService } from \"app/services/productsHelper.service\";\r\nimport { DecorationGroupHelperService } from \"app/services/decorationGroupHelper.service\";\r\n\r\ndeclare var _: any;\r\ndeclare var $: any;\r\ndeclare var slider: any;\r\n\r\n@Component(\r\n {\r\n selector: \"ecc-design-view\",\r\n template: \r\n `\r\n
\r\n
\r\n Your design may be outside the printable area. \r\n Learn More\r\n
\r\n
\r\n The product you are trying to design is out of stock.\r\n
\r\n
0 && !_product?.isLastColorFullColor\" class=\"text-center font-weight-bold mt-1 small\" style=\"color: red;\">\r\n This product only supports {{_product?.maxPrintColors}} colour 1\">s for your design\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
{{designElement.inches}}
\r\n \r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
{{designElement.inches}}
\r\n \r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
{{designElement.inches}}
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n Zoom\r\n
\r\n
\r\n\r\nWe will send you a design proof so you can review the final placement before your order is printed.'\" [okText]=\"'Close'\">\r\n\r\n\r\n\r\n \r\n \r\n `, \r\n changeDetection: ChangeDetectionStrategy.Default, // don't delete/change this. It controls the interaction between clicks on the left section and the design view\r\n }\r\n)\r\nexport class DesignViewComponent extends BaseClass implements OnDestroy, OnInit {\r\n \r\n @Input() set color(_color: any) {\r\n if(_color){\r\n this._color = _color;\r\n }\r\n }\r\n @Input() set product(_product: any) {\r\n if(_product){\r\n this._product = _product;\r\n }\r\n }\r\n @Input() set pView(_productView: any){\r\n if(_productView){\r\n this._productView = _productView.get('productView');\r\n if(this._productView) {\r\n this._productView.needRefresh = false;\r\n this.productViewImageStyle(this._productView);\r\n if(this._productView.zoomScale && this._productView.zoomScale > 1) {\r\n this.zoomed = true;\r\n this.zoomScale = this._productView.zoomScale;\r\n }\r\n else {\r\n this.zoomScale = 1;\r\n this.zoomed = false;\r\n }\r\n }\r\n }\r\n }\r\n @Input() set currentDesignElement(_currentDesignElement: any){\r\n if(_currentDesignElement){\r\n this._currentDesignElement = _currentDesignElement.get('currentDesignElement');\r\n this.handleNewCurrentDesignElement(this._currentDesignElement);\r\n }\r\n }\r\n @Input() set selection(_selection: any){\r\n if(_selection){\r\n this._selection = _selection;\r\n }\r\n }\r\n @Input() set design(_design: any) {\r\n if(_design){\r\n this._design = _design;\r\n }\r\n }\r\n @Input() imagesPath: any;\r\n @Input() desktop: boolean = true;\r\n @Input() isValidDesign: boolean = false;\r\n @Input() isDesignTemplate: boolean = false;\r\n \r\n @Output() setContent: EventEmitter = new EventEmitter(); // set $scope.switchContent()\r\n @Output() setElementOutside: EventEmitter = new EventEmitter();\r\n\r\n @ViewChildren(TextElementDirective) textElements: QueryList;\r\n \r\n _color: any;\r\n _product: any;\r\n _currentDesignElement: any = null;\r\n _productView: any;\r\n _selection: any;\r\n changingSizes: boolean = false; // TODO: test this variable logic..\r\n appEvents: AppEvents = new AppEvents();\r\n editableAreaSize: any = void 0;\r\n textApplied: number = 0;\r\n _elementSize: any = null;\r\n _currentZoom: any = 1;\r\n _offset: any = 25;\r\n zoomed: boolean = false;\r\n zoomScale: any = 1;\r\n dx: any = 0;\r\n dy: any = 0;\r\n showDesignOutsideMessage: boolean = false;\r\n showMaxPrintColorsMessage: boolean = false;\r\n designOutsideCount: number = 0;\r\n learnMore: boolean = false;\r\n // productViewImageLoaded: boolean = false;\r\n\r\n entripyImagePath: any;\r\n _design: any;\r\n deleteConfirmation: boolean = false;\r\n designElementToBeDeleted: any;\r\n\r\n currentIndex: number = 0; \r\n surroundingBox: any;\r\n deleteMultipleElementsConfirmation: boolean = false;\r\n\r\n _swiper: any;\r\n refreshDesignViewSubscription: Subscription;\r\n designOutsidePrintAreaSubscription: Subscription;\r\n multipleElementsSubscription: Subscription;\r\n \r\n // config: SwiperOptions = {\r\n // spaceBetween: 30,\r\n // followFinger: false,\r\n // //allowTouchMove: false, // Update swiper library with this variable. It's not defined by default\r\n // };\r\n \r\n constructor(protected el: ElementRef, protected selectedColorsService: SelectedDesignColorsService, \r\n protected colorSelectionService: ProductColorSelectionService, private selectedElementsService: SelectedDesignElementsService,\r\n private cd: ChangeDetectorRef, private productsHelper: ProductsHelperService,\r\n protected decorationGroupHelper: DecorationGroupHelperService) { \r\n super();\r\n this.refreshDesignViewSubscription = AppEvents.refreshSavedDesignViewO.subscribe(() => {\r\n if(this._product && this.desktop) {\r\n this.setProductView(this._product.views[0]);\r\n }\r\n });\r\n this.designOutsidePrintAreaSubscription = AppEvents.designOutsidePrintAreaO.subscribe((obj) => {\r\n if(obj.designElement) {\r\n this.displayPrintMessage(obj);\r\n }\r\n else {\r\n this.showDesignOutsideMessage = obj.showMessage;\r\n if(obj.showMessage) {\r\n this.cd.detectChanges();\r\n }\r\n }\r\n \r\n this.setElementOutside.emit(obj);\r\n });\r\n this.multipleElementsSubscription = AppEvents.hasMultipleElementsO.subscribe((surroundingBox: any) => {\r\n if(surroundingBox) {\r\n this.surroundingBox = surroundingBox;\r\n }\r\n else {\r\n this.surroundingBox = null;\r\n }\r\n this.cd.detectChanges();\r\n });\r\n }\r\n \r\n ngOnInit(){\r\n this.entripyImagePath = CONFIG.imagesOnEntripy;\r\n }\r\n\r\n // slideProductView(productView: any, viewSwiper: any) {\r\n // let index = _.indexOf(this._product.views, productView);\r\n // viewSwiper.swiper.slideTo(index, 400);\r\n // this._swiper = viewSwiper;\r\n // }\r\n \r\n ngOnDestroy(){\r\n this.refreshDesignViewSubscription.unsubscribe();\r\n this.designOutsidePrintAreaSubscription.unsubscribe();\r\n this.multipleElementsSubscription.unsubscribe();\r\n }\r\n\r\n showLearnMore(learnMore: boolean) {\r\n this.learnMore = learnMore;\r\n }\r\n\r\n displayPrintMessage(obj) {\r\n if(obj.showMessage) {\r\n this.showDesignOutsideMessage = true;\r\n obj.designElement.outsidePrintableArea = true;\r\n }\r\n else {\r\n let showMessage = false;\r\n obj.designElement.outsidePrintableArea = false;\r\n\r\n this._product.views.forEach(view => {\r\n view.designElements.forEach(element => {\r\n if(element.outsidePrintableArea) {\r\n showMessage = true;\r\n }\r\n });\r\n });\r\n\r\n this.showDesignOutsideMessage = showMessage;\r\n }\r\n }\r\n\r\n dontDoAnything(event: any) {\r\n if(event) {\r\n event.stopPropagation();\r\n }\r\n }\r\n\r\n resetSelectable() {\r\n this.selectedElementsService.reset();\r\n $(\"#current-product-view-img\").selectable(\"enable\");\r\n }\r\n\r\n onProductViewClick() {\r\n // if multiple elements are selected, enable selectable, clear selection\r\n if(this.selectedElementsService.hasElements()) {\r\n this.resetSelectable();\r\n }\r\n\r\n if(this._currentDesignElement && !this._currentDesignElement.resize) {\r\n this._currentDesignElement = null;\r\n $('.current-product-view-img').find(\".design-element\").removeClass(\"border\");\r\n $('.current-product-view-img').find(\".design-element img\").removeClass(\"border\");\r\n this.appEvents.emitCurrentDesignElementChange(this._currentDesignElement);\r\n }\r\n }\r\n\r\n imageLoaded(prodView: any) {\r\n if(prodView !== this._productView) {\r\n prodView.hidden = true;\r\n prodView.productViewImageLoaded = false;\r\n }\r\n else {\r\n prodView.productViewImageLoaded = true;\r\n }\r\n }\r\n\r\n elementResize(_size: any) {\r\n let test: any = 0\r\n test = test + 1;\r\n this._elementSize = {\r\n element: this._currentDesignElement,\r\n size: _size,\r\n }\r\n }\r\n\r\n getScale() {\r\n return 25 / (25 * this._currentZoom);\r\n }\r\n\r\n zoomWarningElement() {\r\n let scale: any = this.getScale();\r\n return {\r\n 'top': -this._offset + \"px\",\r\n 'left': -this._offset + \"px\",\r\n 'transform': \"scale(\" + scale + \")\"\r\n };\r\n }\r\n\r\n setResolution(element: any) {\r\n if(this._currentDesignElement === element) {\r\n this._currentDesignElement.lowResolution = element.lowResolution;\r\n }\r\n }\r\n\r\n getImageSource(designElement) {\r\n if(designElement.removeBackground) {\r\n return designElement.sourceWithoutBackground;\r\n }\r\n return designElement.source;\r\n }\r\n \r\n productViewImageStyle(productView: any) {\r\n var matchingImage: any;\r\n if(this._color && productView) {\r\n matchingImage = _.findWhere(this._color.images, {\r\n viewId: productView.id\r\n });\r\n if(matchingImage) {\r\n return {\r\n 'background-image': \"url('\" + (encodeURI(matchingImage.imageSource)) + \"')\"\r\n };\r\n }\r\n }\r\n }\r\n\r\n productViewImage(productView: any) {\r\n var matchingImage: any;\r\n if(this._color && productView) {\r\n matchingImage = _.findWhere(this._color.images, {\r\n viewId: productView.id\r\n });\r\n if(matchingImage) {\r\n return encodeURI(matchingImage.imageSource);\r\n }\r\n }\r\n }\r\n\r\n setSource(productView) {\r\n var matchingImage: any;\r\n if (this._color && productView) {\r\n matchingImage = _.findWhere(this._color.images, {\r\n viewId: productView.id\r\n });\r\n if(matchingImage) {\r\n return encodeURI(matchingImage.imageSource);\r\n }\r\n }\r\n }\r\n\r\n productViewBackgroundColor(color: any) {\r\n if (color) {\r\n return {\r\n 'background-color': color.hex\r\n };\r\n }\r\n }\r\n\r\n setTogglable(show: boolean, designElement: any) {\r\n designElement.showZIndex = show;\r\n designElement.rightClick = show;\r\n }\r\n \r\n zIndexStyle(designElement: any) {\r\n return {\r\n 'z-index': designElement.zIndex\r\n };\r\n }\r\n\r\n setProductView(productView: any, viewSwiper: any = null) {\r\n if(productView) {\r\n // if(viewSwiper) {\r\n // this.slideProductView(productView, viewSwiper);\r\n // }\r\n if(this._productView) {\r\n this._productView.hidden = true;\r\n //this._productView.selectedColors = [];\r\n }\r\n productView.hidden = false;\r\n productView.needRefresh = false;\r\n this._productView = productView;\r\n this._productView.zoomScale = 1;\r\n this.productViewImageStyle(productView);\r\n this.appEvents.emitProductViewChange(productView);\r\n this.appEvents.emitCurrentDesignElementChange(null);\r\n }\r\n else if(this._product){\r\n this._productView = this._product.views[0];\r\n this._productView.zoomScale = 1;\r\n this.productViewImageStyle(this._productView);\r\n }\r\n this.selectedElementsService.reset();\r\n this.appEvents.emitMultipleElementsSelected(null);\r\n }\r\n \r\n startCheckout(isChooseSize: boolean) {\r\n //this.setStartCheckout.emit(isChooseSize);\r\n }\r\n \r\n // this function has different way of calculating scale. It takes studio view as the container to calculate scale.\r\n getZoomScale00() {\r\n let $studioView, $swiperContainer, $currentProductView, $editableArea, $studioViewContent, left, top : any;\r\n \r\n $studioView = $(this.el.nativeElement).find(\".studio__view\");\r\n $studioViewContent = $(this.el.nativeElement).find(\".studio__view-content\");\r\n $swiperContainer = $(this.el.nativeElement).find(\".swiper-container\");\r\n $currentProductView = $(this.el.nativeElement).find('#current-product-view-img');\r\n $editableArea = $(this.el.nativeElement).find('.editable-area');\r\n\r\n left = ($studioView.width() - $swiperContainer.width()) / 2 + $editableArea[0].offsetLeft;\r\n top = ($studioViewContent.innerHeight() - $studioViewContent.height()) + $editableArea[0].offsetTop;\r\n\r\n let topScale, leftScale: any;\r\n\r\n topScale = ($editableArea.height() + top) / $editableArea.height();\r\n leftScale = ($editableArea.width() + left) / $editableArea.width();\r\n\r\n return topScale < leftScale ? topScale : leftScale;\r\n }\r\n\r\n // this function takes current product view as the container to calculate scale.\r\n getZoomScale() {\r\n let $editableArea, $currentProductView : any;\r\n let heightScale, widthScale: any;\r\n \r\n $editableArea = $(this.el.nativeElement).find('.editable-area');\r\n $currentProductView = $(this.el.nativeElement).find('#current-product-view-img');\r\n\r\n this.dx = ($currentProductView.width() / 2) - ($editableArea[0].offsetLeft + $editableArea.width() / 2); // dx = Cx - (left + width/2)\r\n this.dy = ($currentProductView.height() / 2) - ($editableArea[0].offsetTop + $editableArea.height() / 2); // dy = Cy - (top + height/2)\r\n\r\n heightScale = $currentProductView.height() / $editableArea.height(); // 40 is the total padding at the top and bottom.\r\n widthScale = $currentProductView.width() / $editableArea.width();\r\n\r\n return heightScale < widthScale ? heightScale : widthScale;\r\n }\r\n\r\n zoom() {\r\n let matrixStr: any = \"\";\r\n let translateX: any = 0;\r\n let translateY: any = 0;\r\n\r\n if(this.zoomed) {\r\n this.zoomScale = 1;\r\n this.zoomed = false;\r\n }\r\n else {\r\n this.zoomed = true;\r\n this.zoomScale = this.getZoomScale();\r\n translateX = this.dx * this.zoomScale;\r\n translateY = this.dy * this.zoomScale;\r\n }\r\n this._productView.zoomScale = this.zoomScale;\r\n\r\n matrixStr = this.zoomScale + \",0,0,\" + this.zoomScale + \",\" + translateX + \",\" + translateY;\r\n $(this.el.nativeElement).find('#current-product-view-img').css({\"-webkit-transform\" : \"matrix(\" + matrixStr + \")\", \"transform\" : \"matrix(\" + matrixStr + \")\"});\r\n }\r\n\r\n setImageElementSize(size: any, designElement: any){\r\n let test: any = 0\r\n test = test + 1;\r\n if(designElement){\r\n designElement.size = size;\r\n }\r\n }\r\n\r\n resetDesignColorSelection(designElement) {\r\n if(designElement) {\r\n if(designElement.color) {\r\n this.selectedColorsService.updateColorInView(this._productView, designElement.color, null);\r\n }\r\n else if(designElement.colors) {\r\n designElement.colors.forEach( (color, index) => {\r\n this.selectedColorsService.updateColorInView(this._productView, color, null);\r\n });\r\n }\r\n }\r\n }\r\n\r\n deleteMultipleElements() {\r\n this.deleteMultipleElementsConfirmation = true;\r\n }\r\n\r\n cancelSelectedElementsDelete() {\r\n this.deleteMultipleElementsConfirmation = false;\r\n }\r\n \r\n deleteSelectedElements() {\r\n if(this.selectedElementsService.hasElements()) {\r\n let personalizationCount: any = 0;\r\n this.selectedElementsService.selectedDesignElements.forEach((element) => {\r\n let isPersonalization: any = element.isPersonalization;\r\n let designElementId = element.id;\r\n this.displayPrintMessage({\r\n designElement: element,\r\n showMessage: false\r\n });\r\n this.resetDesignColorSelection(element);\r\n //let index = this._productView.designElements.indexOf(element);\r\n //this._productView.designElements.splice(index, 1);\r\n element.isDeleted = true;\r\n if(isPersonalization) {\r\n personalizationCount--;\r\n this.colorSelectionService.removePersonalization(designElementId);\r\n }\r\n });\r\n this.appEvents.emitPersonalizationChange(personalizationCount);\r\n this.appEvents.emitCalculatePersonalizationCost();\r\n this.appEvents.emitProductViewDesignElementsChange(this._productView.designElements);\r\n this.appEvents.emitProductViewChange(this._productView);\r\n this.appEvents.emitCurrentDesignElementChange(null);\r\n this.appEvents.emitCurrentDesignChanged(true);\r\n this.appEvents.emitMultipleElementsSelected(null);\r\n //this.appEvents.emitSaveState();\r\n }\r\n this.deleteMultipleElementsConfirmation = false;\r\n }\r\n\r\n deleteElement(designElement: any) {\r\n this.designElementToBeDeleted = designElement;\r\n this.deleteConfirmation = true;\r\n }\r\n\r\n okDeleteElement() {\r\n this.deleteConfirmation = false;\r\n if(this.designElementToBeDeleted) {\r\n let isPersonalization: any = this.designElementToBeDeleted.isPersonalization;\r\n let designElementId = this.designElementToBeDeleted.id;\r\n this.displayPrintMessage({\r\n designElement: this.designElementToBeDeleted,\r\n showMessage: false\r\n });\r\n this.resetDesignColorSelection(this.designElementToBeDeleted);\r\n //let index = this._productView.designElements.indexOf(this.designElementToBeDeleted);\r\n //this._productView.designElements.splice(index, 1);\r\n this.designElementToBeDeleted.isDeleted = true;\r\n this.designElementToBeDeleted = null;\r\n this.appEvents.emitProductViewDesignElementsChange(this._productView.designElements);\r\n this.appEvents.emitProductViewChange(this._productView);\r\n this.appEvents.emitCurrentDesignElementChange(null);\r\n this.appEvents.emitCurrentDesignChanged(true);\r\n if(isPersonalization) {\r\n this.colorSelectionService.removePersonalization(designElementId);\r\n this.decorationGroupHelper.removePersonalization(designElementId);\r\n this.appEvents.emitCalculatePersonalizationCost();\r\n this.appEvents.emitPersonalizationChange(-1);\r\n }\r\n this.appEvents.emitSaveState();\r\n }\r\n }\r\n\r\n cancelDeleteElement() {\r\n this.designElementToBeDeleted = null;\r\n this.deleteConfirmation = false;\r\n }\r\n \r\n setCurrentDesignElement(event: any, designElement: any) {\r\n if(designElement && !this.selectedElementsService.hasElements()){\r\n this.handleNewCurrentDesignElement(designElement);\r\n this._currentDesignElement = designElement;\r\n this.appEvents.emitCurrentDesignElementChange(designElement);\r\n if(event) {\r\n event.stopPropagation();\r\n }\r\n }\r\n else if(!designElement) {\r\n // un select all elements\r\n this.appEvents.emitCurrentDesignElementChange(null);\r\n }\r\n }\r\n\r\n emitContent(value: any) {\r\n this.setContent.emit(value);\r\n }\r\n\r\n handleNewCurrentDesignElement(designElement: any) {\r\n if(designElement){\r\n if (designElement.type === 'clipart' || designElement.type === 'image') {\r\n return this.setContent.emit('addImage');\r\n } else if (designElement.type === 'text') {\r\n return this.setContent.emit('addText');\r\n }\r\n }\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/desktop/design/designView.component.ts","import {Component, Input, Output, EventEmitter, OnInit} from \"@angular/core\";\r\nimport {DesignsService} from \"../../../resources/designs\";\r\nimport {DesignTemplateService} from \"../../../resources/designTemplates\";\r\nimport {SaveProcessorService} from \"../../../services/saveProcessor.service\";\r\n\r\nimport {CONFIG} from \"../../../../environments/environment\";\r\nimport {AppEvents} from \"../../../appEvents\";\r\nimport { DesignHelperService } from \"../../../services/designHelper.service\";\r\nimport { ProductColorSelectionService } from \"../../../services/productColorSelection.service\";\r\nimport { ProductsHelperService } from \"app/services/productsHelper.service\";\r\nimport { DecorationGroupHelperService } from \"app/services/decorationGroupHelper.service\";\r\n\r\ndeclare var $: any;\r\n\r\n@Component(\r\n {\r\n selector: \"ecc-save-design\",\r\n template:\r\n `\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
WARNING
\r\n
\r\n Your design is outside the printable area, which will get cut off during printing. Please ensure your design is within the box. \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Save your design
\r\n
\r\n Once you save your design any changes you make are Autosaved.
You can access your saved designs at anytime by clicking Your Designs
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
This design name already exists, please choose a different name.
\r\n
Please name your design.
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n \r\n\r\n\r\n \r\n `\r\n }\r\n)\r\nexport class SaveDesignComponent implements OnInit {\r\n \r\n @Input() set design(_design: any) {\r\n if(_design){\r\n this._design = _design;\r\n this.designName = this._design.designName;\r\n }\r\n }\r\n @Input() isDesignTemplate: boolean = false;\r\n @Input() set product(_product: any) {\r\n if(_product){\r\n this._product = _product;\r\n }\r\n }\r\n @Input() set selection(_selection: any){\r\n if(_selection){\r\n this._selection = _selection;\r\n }\r\n }\r\n @Input() addToCart: boolean = false;\r\n @Input() defaultGroupId: any;\r\n @Input() productColor: any;\r\n @Input() isOutsideDesignArea: any;\r\n @Output() closeSaveModal: any = new EventEmitter();\r\n \r\n _design: any;\r\n _product: any;\r\n _selection: any;\r\n minQtyError: any;\r\n minQuantities: any;\r\n designName: any;\r\n openModal: boolean = false;\r\n showSpinner: boolean = false;\r\n nameExists: boolean = false;\r\n emptyName: boolean = false;\r\n entripyImagePath: any;\r\n showPersonalizationModal : boolean = false;\r\n needRefresh: boolean = false;\r\n isWarningAccepted = false;\r\n refreshMessage: string = \"\";\r\n appEvents: AppEvents = new AppEvents();\r\n\r\n constructor(private designService: DesignsService, private saveProcessor: SaveProcessorService,\r\n private designTemplateService: DesignTemplateService, private designsHelper: DesignHelperService,\r\n protected colorSelectionService :ProductColorSelectionService,\r\n protected productHelper: ProductsHelperService, protected decorationGroupHelper: DecorationGroupHelperService) {\r\n }\r\n\r\n ngOnInit() {\r\n this.entripyImagePath = CONFIG.imagesOnEntripy;\r\n // this.needRefresh = this.productHelper.checkIfProductViewsNeedsRefresh(this._product);\r\n // if(!this.needRefresh) {\r\n // if(!this.designName) {\r\n // this.openModal = true;\r\n // }\r\n // else {\r\n // this.showSpinner = true;\r\n // this.checkPersonalizationAndSave();\r\n // }\r\n // }\r\n // else {\r\n // this.refreshMessage = this.productHelper.getRefreshMessage();\r\n // }\r\n if(!this.designName) {\r\n this.openModal = true;\r\n }\r\n else {\r\n this.showSpinner = true;\r\n this.checkPersonalizationAndSave();\r\n }\r\n }\r\n \r\n acceptDesignWarning(){\r\n this.isWarningAccepted = true;\r\n }\r\n\r\n saveDesignName() {\r\n if(!this.designName || this.designName === '') {\r\n $(\"#inputDesignName\").select();\r\n this.emptyName = true;\r\n return false;\r\n }\r\n // else if(!this.isDesignTemplate && this.minQtyError) {\r\n // return false;\r\n // }\r\n this.showSpinner = true;\r\n if(!this.isDesignTemplate) {\r\n this.designService.getName(this.designName).subscribe((response) => {\r\n this.nameExists = response;\r\n if(!this.nameExists) {\r\n this.assignNameAndSave(this.designName);\r\n }\r\n else {\r\n this.showSpinner = false;\r\n }\r\n });\r\n }\r\n else {\r\n this.designTemplateService.getName(this.designName).subscribe((response) => {\r\n this.nameExists = response;\r\n if(!this.nameExists) {\r\n this.assignNameAndSave(this.designName);\r\n }\r\n else {\r\n this.showSpinner = false;\r\n }\r\n });\r\n }\r\n }\r\n\r\n assignNameAndSave(name: string) {\r\n this.showSpinner = true;\r\n this._design.designName = this.designName;\r\n this.checkPersonalizationAndSave();\r\n //this.saveDesign();\r\n }\r\n\r\n checkPersonalizationAndSave() {\r\n this.showSpinner = false;\r\n this.openModal = false;\r\n\r\n if(this.addToCart && this.viewHasPersonalization()) {\r\n if(!this.colorSelectionService.hasPersonalizations()) {\r\n // add personalizations - this condition arises when user added a text to cart with empty personalizations\r\n this._product.views.forEach((view) => {\r\n view.designElements.forEach((element) => {\r\n if(element.isPersonalization && !element.isDeleted) {\r\n this.decorationGroupHelper.addPersonalization(this.defaultGroupId, element.personalizationName, element.text, \r\n this.productColor ? this.productColor.id : 0, 0, element.id, view.name, view.locationId);\r\n }\r\n });\r\n });\r\n\r\n } \r\n this.showPersonalizationModal = true;\r\n }\r\n else {\r\n this.saveDesign();\r\n }\r\n }\r\n\r\n viewHasPersonalization() {\r\n let hasPersonalization: boolean = false;\r\n this._product.views.forEach((view) => {\r\n view.designElements.forEach((element) => {\r\n if(element.isPersonalization && !element.isDeleted) {\r\n hasPersonalization = true;\r\n }\r\n });\r\n });\r\n return hasPersonalization;\r\n }\r\n\r\n closePersonalizationModal(goForward: boolean) {\r\n this.showPersonalizationModal = false;\r\n this.close();\r\n if(goForward) {\r\n this.saveDesign();\r\n }\r\n else {\r\n this._design.checkout = false;\r\n }\r\n }\r\n\r\n saveDesign() {\r\n if(!this.isDesignTemplate) {\r\n this.appEvents.emitSaveDesign(this._design.checkout);\r\n //this.appEvents.emitSaveDesign(false);\r\n }\r\n else {\r\n this.appEvents.emitSaveDesignTemplate();\r\n }\r\n this.close();\r\n }\r\n\r\n close() {\r\n this.needRefresh = false;\r\n this.openModal = false;\r\n this.closeSaveModal.emit();\r\n }\r\n\r\n onChange() {\r\n this.nameExists = false;\r\n this.emptyName = false;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/desktop/design/saveDesign.component.ts","import {Component, Input, Output, EventEmitter, OnDestroy} from \"@angular/core\";\r\nimport {Router} from \"@angular/router\";\r\nimport {Subscription} from \"rxjs/Subscription\";\r\nimport {ShareHelperService} from \"../../../services/shareHelper.service\";\r\nimport {SaveProcessorService} from \"../../../services/saveProcessor.service\";\r\nimport {SharedDesignsService} from \"../../../resources/sharedDesigns\";\r\nimport {AppEvents} from \"../../../appEvents\";\r\n\r\ndeclare var $:any ;\r\n\r\n@Component(\r\n {\r\n selector: \"ecc-share\",\r\n template: \r\n`\r\n
\r\n
\r\n
Share
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
Share a design screenshot
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Share your design URL
\r\n
\r\n {{designURL}}\r\n
\r\n
\r\n \r\n
\r\n Note! Save your design to share it!
\r\n \r\n
\r\n` \r\n }\r\n)\r\nexport class ShareComponent implements OnDestroy {\r\n \r\n @Input() set designId(designId: string){ // get this from $rootScope.design.id\r\n this.designURL = \"\";\r\n if(designId){\r\n this._designId = designId;\r\n this.designURL = this.shareHelper.shareUrl(designId);\r\n } \r\n }\r\n @Input() set pView(_view: any){\r\n if(_view){\r\n this.view = _view.get('productView');\r\n }\r\n } \r\n @Input() imagesPath: any; \r\n @Input() productId: any;\r\n @Input() inCart: any;\r\n @Input() designName: any;\r\n @Input() selection: any;\r\n @Input() desktop: boolean = true;\r\n @Input() views: any;\r\n \r\n @Output() setSavingAndProcessing: EventEmitter = new EventEmitter(); // set to $scope.saving and $scope.isProcessing\r\n @Output() onCancel: EventEmitter = new EventEmitter();\r\n @Output() switchView: EventEmitter = new EventEmitter();\r\n \r\n \r\n _designId: string;\r\n designURL: string;\r\n view: any;\r\n sharableSubscription: Subscription;\r\n appEvents: AppEvents = new AppEvents();\r\n \r\n constructor(private router: Router, private shareHelper: ShareHelperService,\r\n private sharedDesignService: SharedDesignsService, private saveProcessor: SaveProcessorService) { //, private commonEvents: CommonEventsService) {\r\n }\r\n \r\n ngOnDestroy() {\r\n }\r\n\r\n back() {\r\n this.switchView.emit();\r\n }\r\n\r\n copyUrlToClipboard() {\r\n $('#shareURL').select();\r\n document.execCommand(\"copy\");\r\n }\r\n \r\n shareWithNetwork(network: any) {\r\n let shareWindow: any;\r\n shareWindow = window.open('about:blank', '', 'left=20,top=20,width=400,height=300,toolbar=0,resizable=1');\r\n\r\n if(this.view)\r\n {\r\n this.views = [];\r\n this.views.push(this.view);\r\n }\r\n\r\n let design = {\r\n id: this._designId,\r\n design: {\r\n name: this.designName,\r\n productId: this.productId,\r\n inCart: this.inCart,\r\n views: this.views,\r\n },\r\n colorSizes: this.saveProcessor.getColorSizesFromSelection(this.selection),\r\n sharedDesign: true,\r\n };\r\n\r\n // create a call to web api to create screen shot and in the subscribe call back, call the onReturnSharableSrc function.\r\n this.sharedDesignService.post(design).subscribe((response) => {\r\n if(response && response.design && response.design.views.length > 0) {\r\n this.onReturnSharableSrc({\r\n network: network,\r\n localSource: response.design.views[0].screenshotSource,\r\n shareWindow: shareWindow,\r\n designId: this._designId\r\n });\r\n }\r\n });\r\n }\r\n \r\n onReturnSharableSrc(args: any) {\r\n this.shareHelper.share({\r\n network: args.network,\r\n localSource: args.localSource,\r\n shareWindow: args.shareWindow,\r\n designId: this._designId\r\n }).subscribe(() => {\r\n this.setSavingAndProcessing.emit(false);\r\n });\r\n }\r\n\r\n clickCancel() {\r\n this.onCancel.emit(\"Cancel\");\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/desktop/share/share.component.ts","import {Component, OnInit, OnDestroy, Input, ChangeDetectorRef, AfterViewChecked} from \"@angular/core\";\r\nimport { Router, ActivatedRoute, Params } from '@angular/router';\r\nimport {Subscription} from \"rxjs/Subscription\";\r\nimport { Observable } from 'rxjs/Observable';\r\n\r\nimport {SignedUrlsService} from \"../resources/signed_urls\";\r\nimport {ProductsService} from '../resources/products';\r\nimport {PriceService} from \"../resources/price\";\r\nimport {FontsService} from '../resources/fonts';\r\nimport {DesignColorsService} from \"../resources/design_colors\";\r\nimport {ClipartSvgsService} from \"../resources/clipart_svgs\";\r\nimport {ClipartTagsService} from \"../resources/clipart_tags\";\r\nimport {TextShapesService} from \"../resources/textShapes\";\r\nimport {TextEffectsService} from \"../resources/textEffects\";\r\nimport {TextBordersService} from \"../resources/textBorders\";\r\nimport {CustomerService} from \"../resources/customer.service\";\r\nimport {DesignHelperService} from \"../services/designHelper.service\";\r\nimport {DesignTemplateService} from \"../resources/designTemplates\";\r\nimport {PersonalizationSizeService} from \"../resources/personalizationSizes\";\r\n\r\nimport {S3ProcessorService} from \"../services/s3Processor.service\";\r\nimport {SaveProcessorService} from \"../services/saveProcessor.service\";\r\nimport {CheckoutService} from \"../resources/checkout\";\r\n\r\nimport {DesignColorsProcessorService} from \"../services/designColorsProcessor.service\";\r\nimport {FontProcessorService} from '../services/fontProcessor.service';\r\nimport {LoadDesignHelperService} from '../services/loadDesignHelper.service';\r\nimport {PriceProcessorService} from \"../services/priceProcessor.service\";\r\nimport {ProductsHelperService} from \"../services/productsHelper.service\";\r\nimport {ShareHelperService} from \"../services/shareHelper.service\";\r\nimport {ProductColorSelectionService} from \"../services/productColorSelection.service\";\r\n\r\nimport {BaseClass} from \"./base.class\";\r\nimport {CONFIG} from \"../../environments/environment\";\r\nimport {AppEvents} from \"../appEvents\";\r\nimport { DefaultsService } from \"../resources/defaults\";\r\nimport { SelectedDesignColorsService } from \"../services/selectedDesignColors.service\";\r\nimport { SelectedDesignElementsService } from \"../services/selectedDesignElements.service\";\r\nimport { AppStateService } from \"../services/appState.service\";\r\nimport { CreateDesignHelperService } from \"app/services/createDesign.service\";\r\nimport { CreateDesignService } from \"app/resources/createDesign\";\r\nimport { DecorationGroupHelperService } from \"app/services/decorationGroupHelper.service\";\r\nimport { forEach } from \"@angular/router/src/utils/collection\";\r\nimport { GuidService } from \"app/resources/guid\";\r\nimport { ElementPositionHelperService } from \"app/services/elementPositionHelper.service\";\r\n\r\ndeclare var _: any;\r\ndeclare var Immutable: any;\r\ndeclare var $: any;\r\ndeclare var fbq: any;\r\n\r\n@Component({\r\n selector: \"ecc-main\",\r\n host:{\r\n //\"(window:resize)\": \"onWindowsResize($event)\"\r\n \"(window:beforeunload)\": \"showWindowsUnloadConfirmation($event)\"\r\n },\r\n //templateUrl: \"/content/designer/app/scripts/components/main.component.html\",\r\n template: \r\n `\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
WARNING
\r\n
\r\n Your design is outside the printable area, which will get cut off during printing. Please ensure your\r\n design is within the box.\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
Switch Mode
\r\n
\r\n
Current Mode: Designer
\r\n
Current Mode: Standard
\r\n
Click following link to switch between designer mode and standard mode.
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Multiple Selections
\r\n
\r\n
Multiple Elements Selected
\r\n
Move them around the canvas or resize them all together.
\r\n
Select each element individually to edit its attributes.
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n \r\n Save Design\r\n
\r\n
0\" style=\"color: #ffcc00; font-weight: 500;\">\r\n \r\n Autosave Enabled\r\n
\r\n
\r\n\r\n
\r\n
\r\n + {{ notes ? 'Edit' : 'Add' }} Order Note\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n Undo\r\n
\r\n
\r\n
\r\n Redo\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n Item\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n Add Art\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n Add Text\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n Designs\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n Save\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n help\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
Need Assistance?
\r\n
We’re here to help!
\r\n
Call Us
\r\n
(905) 844-1291
\r\n
Hours
\r\n
\r\n
Mon. - Fri. 8:30 am to 10:00 pm
\r\n
Sat. 10:00 am to 2:00 pm
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n
Note! By uploading an image, you guarantee that your use of the image does not infringe any rights or laws.
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n\r\n \r\n\r\n `,\r\n})\r\nexport class MainComponent extends BaseClass implements OnInit, OnDestroy {\r\n \r\n // @Input() productId: any; // this is from the query string / route params..\r\n // @Input() designId: any; // this is from the query string / route params..\r\n \r\n defaults: any;\r\n products: any;\r\n designColors: any;\r\n fonts: any;\r\n productId: any;\r\n designId: any;\r\n templateId: any;\r\n orderDesignId: any;\r\n orderGroupId: any;\r\n viewId: any;\r\n loadDesign: boolean = false;\r\n defaultProductColorId: any;\r\n textShapes: any = void 0;\r\n textEffects: any = void 0;\r\n textBorders: any = void 0;\r\n openPersonalizationModal: boolean = false;\r\n decorationGroupId: any;\r\n notes: string;\r\n\r\n saving: boolean = false;\r\n saveClicked: boolean = false;\r\n isProcessing: boolean = false;\r\n content: string = '';\r\n product: any;\r\n similarProducts: any = [];\r\n color: any;\r\n modal: string;\r\n imagesPath: string;\r\n entripyImagePath: string;\r\n priceTimeoutId: any = void 0;\r\n gettingPrice: boolean = false;\r\n totalProductCount: any;\r\n design: any = {\r\n designName: \"\",\r\n id: 0\r\n };\r\n inCart: boolean = false;\r\n checkingOut: boolean = false; \r\n isChooseSize: boolean = false; \r\n isValidDesign: boolean = false;\r\n minQtyError: boolean = false;\r\n minQty: number;\r\n\r\n selection: any = []; // product color and quantities\r\n decorationGroup: any;\r\n \r\n _currentDesignElement: any;\r\n _productView: any;\r\n _currentDesignElementMap: any ; \r\n _productViewMap: any ; \r\n customer: any;\r\n pricePerProductModel: any;\r\n\r\n isDesignTemplate: boolean = false;\r\n selectedTemplate: any = void 0;\r\n switchModeConfirmation: boolean = false;\r\n showTemplateApplyConfirmation: boolean = false;\r\n showMaxPrintColorMessage : boolean = false;\r\n designExceedsMaxPrintColors: boolean = false;\r\n loadTemplate: boolean = false;\r\n colorId: any;\r\n\r\n loadNewDesignId: any;\r\n currentDesignChanged: boolean = false;\r\n showSpinner: boolean = false;\r\n desktop: boolean = true;\r\n fromCheckout:boolean = false;\r\n\r\n canUndo: boolean = false;\r\n canRedo: boolean = false;\r\n\r\n noOfPersonalizations: number = 0;\r\n personalizationSizes: any;\r\n elementsAdded: boolean = false;\r\n elementOutsidePrintableArea: any = false;\r\n showOutsideWarningPopup: boolean = false;\r\n\r\n appEvents: AppEvents = new AppEvents();\r\n \r\n productsSubscription: Subscription;\r\n fontsSubscription: Subscription;\r\n designColorsSubscription: Subscription;\r\n productSizeSubscription: Subscription;\r\n productSubscription: Subscription;\r\n productDetailsSubscription: Subscription;\r\n priceSubscription: Subscription;\r\n saveDesignSubscription: Subscription;\r\n autoSaveSubscription: Subscription;\r\n saveTemplateSubscription: Subscription;\r\n completeCheckoutSubscription: Subscription;\r\n colorSubscription: Subscription;\r\n designElementsSubscription: Subscription;\r\n productViewSubscription: Subscription;\r\n openModalSubscription: Subscription;\r\n closeModalSubscription: Subscription;\r\n totalProductCountSubscription: Subscription;\r\n currentDesignElementSubscription: Subscription;\r\n loadSavedDesignSubscription: Subscription;\r\n createDesignTemplateSubscription: Subscription;\r\n currentDesignChangedSubscription: Subscription;\r\n colorSelectionSubscription: Subscription;\r\n personalizationChangeSubscription: Subscription;\r\n multipleElementsSubscription: Subscription;\r\n saveStateChangeSubscription: Subscription;\r\n addProductSubscription: Subscription;\r\n setDecorationGroupSubscription: Subscription;\r\n changedProductSubscription: Subscription;\r\n designHasMorePrintColorsSubscription: Subscription;\r\n \r\n constructor(private route: ActivatedRoute, private router: Router, \r\n private defaultsService: DefaultsService,\r\n private productsService: ProductsHelperService, private designColorsProcessor: DesignColorsProcessorService, \r\n private fontsProcessor: FontProcessorService, private s3Processor: S3ProcessorService,\r\n private designsHelper: DesignHelperService, private loadDesignHelper: LoadDesignHelperService,\r\n private saveProcessor: SaveProcessorService, private priceProcessor: PriceProcessorService, private checkoutService: CheckoutService,\r\n private customerService: CustomerService, private productColorSelection: ProductColorSelectionService,\r\n private textShapesService: TextShapesService, private textEffectsService: TextEffectsService, private textBordersService: TextBordersService,\r\n private designTemplateService: DesignTemplateService, private productResourceService: ProductsService,\r\n private personalizationSizeService: PersonalizationSizeService, private selectedColorsService: SelectedDesignColorsService,\r\n private cd: ChangeDetectorRef, private selectedElementsService: SelectedDesignElementsService,\r\n private statesService: AppStateService, private createDesignService: CreateDesignService,\r\n private decorationGroupHelper: DecorationGroupHelperService, protected guidService: GuidService,\r\n private elementPositionHelper: ElementPositionHelperService) {\r\n super();\r\n \r\n this.productsSubscription = AppEvents.productsO.subscribe((products) => {\r\n this.products = products;\r\n this.reset();\r\n });\r\n this.fontsSubscription = AppEvents.fontsO.subscribe((fonts) =>{\r\n this.fonts = fonts; \r\n });\r\n this.designColorsSubscription = AppEvents.designColorsO.subscribe((designColors) =>{\r\n this.designColors = designColors; \r\n });\r\n this.productSizeSubscription = AppEvents.productSizeO.subscribe((newSizes) => {\r\n // Note: commented out following calculations because the total count has to be calculated using the selection array.\r\n //this.totalProductCount = this.orderHelper.totalProductCount(newSizes);\r\n //this.getPriceAfterTimeout(1000);\r\n });\r\n this.productSubscription = AppEvents.productO.subscribe((newProduct) => {\r\n if(this.product !== newProduct){\r\n this.copyDesignElementsToNewProduct(newProduct);\r\n //this.product = newProduct;\r\n //this.setProductView(void 0);\r\n //this.productColorSelection.resetSelection();\r\n //this.noOfPersonalizations = 0;\r\n //this.resetDesignNameAndValidity();\r\n //this.isValidDesign = false;\r\n this.facebookViewContent();\r\n this.totalProductCount = this.designsHelper.totalProductCountByAvailableSizes(this.productColorSelection._selection, newProduct.colors);\r\n //let quantity: any = this.designsHelper.validateQuantity(this.product, this.totalProductCount);\r\n //this.setMinimumQuantityError(quantity);\r\n this.setQuantityError();\r\n }\r\n this.closeModal();\r\n });\r\n this.productDetailsSubscription = AppEvents.productDetailsO.subscribe((product) => {\r\n this.product = product;\r\n this.setColor(void 0);\r\n this.setProductView(void 0);\r\n this.setSelection();\r\n // let defaultGroup = this.decorationGroupHelper.getFirstOrDefaultGroup();\r\n // if(!defaultGroup) {\r\n // this.guidService.getNewGuid().subscribe((guid: any) => {\r\n // defaultGroup = this.decorationGroupHelper.createDecorationGroup();\r\n // defaultGroup.id = guid;\r\n // this.decorationGroupHelper.addExistingProduct(guid, this.product, this.color);\r\n // });\r\n // }\r\n // else {\r\n\r\n // }\r\n this.product.views.forEach(view => {\r\n this.statesService.addAndRemoveStates(this.decorationGroup, this.product.id, \r\n view.locationId, this.saveProcessor.cleanView(view, false), \r\n this.selection, this.productColorSelection.getClonedDefaultGroup());\r\n });\r\n this.facebookViewContent();\r\n this.setQuantityError();\r\n this.getPriceAfterTimeout(1000);\r\n });\r\n this.changedProductSubscription = AppEvents.changeProductO.subscribe((changedProduct: any) => { \r\n if(changedProduct) {\r\n this.product = changedProduct.product;\r\n this.setColor(changedProduct.color);\r\n this.selection = changedProduct.selection ? changedProduct.selection : this.selection;\r\n let selectedView: any = _.findWhere(changedProduct.product.views, {\r\n hidden: false || void 0\r\n });\r\n selectedView = selectedView || changedProduct.product.views[0]; \r\n selectedView.needRefresh = true;\r\n selectedView.hidden = false;\r\n this.viewId = selectedView.id;\r\n this.appEvents.emitProductViewChange(selectedView);\r\n //this.setProductView(selectedView);\r\n }\r\n });\r\n this.addProductSubscription = AppEvents.addProductO.subscribe((newProduct: any) => { \r\n if(newProduct && this.decorationGroup) {\r\n let selection: any = this.decorationGroupHelper.getSelectionByProductId(this.decorationGroup.id, newProduct.id);\r\n if(selection && selection.length > 0) {\r\n let color = selection[0];\r\n if(color) {\r\n let selectedColor = _.findWhere(newProduct.colors, {\r\n id: color.id \r\n });\r\n if(selectedColor) {\r\n this.showSpinner = true;\r\n this.product = newProduct;\r\n this.selection = selection;\r\n this.setColor(selectedColor);\r\n let view: any = _.findWhere(newProduct.views, {\r\n hidden: false\r\n });\r\n // if(view) {\r\n // this.refreshNewProductViews(newProduct).subscribe(() => {\r\n // view.hidden = false;\r\n // this.setProductView(view);\r\n // this.showSpinner = false;\r\n // }); \r\n // }\r\n // else {\r\n // this.refreshNewProductViews(newProduct).subscribe(() => {\r\n // this.setProductView(void 0);\r\n // this.showSpinner = false;\r\n // }); \r\n // }\r\n this.setProductView(view);\r\n this.showSpinner = false;\r\n this.facebookViewContent();\r\n // do state management here (undo/redo)\r\n }\r\n }\r\n }\r\n this.setQuantityError();\r\n }\r\n });\r\n this.setDecorationGroupSubscription = AppEvents.setDecorationGroupO.subscribe((group: any) => { \r\n this.decorationGroup = group;\r\n });\r\n this.colorSubscription = AppEvents.colorO.subscribe((color) => {\r\n this.color = color;\r\n this.setSelection();\r\n //let quantity: any = this.designsHelper.validateQuantity(this.product, this.totalProductCount);\r\n //this.setMinimumQuantityError(quantity);\r\n this.setQuantityError();\r\n if(this.decorationGroup) {\r\n this.totalProductCount = this.designsHelper.totalProductCountForMultipleProducts(this.decorationGroup.products);\r\n }\r\n else {\r\n this.totalProductCount = this.designsHelper.totalProductCountFromSelection(this.productColorSelection._selection);\r\n }\r\n });\r\n this.designElementsSubscription = AppEvents.productViewDesignElementsO.subscribe((newDesignElements) => {\r\n this.totalProductCount = this.designsHelper.totalProductCountByAvailableSizes(this.productColorSelection._selection, this.product.colors);\r\n this.isValidDesign = this.designsHelper.isValidDesign(this.product);\r\n //let quantity: any = this.designsHelper.validateQuantity(this.product, this.totalProductCount);\r\n //this.setMinimumQuantityError(quantity);\r\n this.setQuantityError();\r\n if (!this.saving) {\r\n this.getPriceAfterTimeout(1000); \r\n }\r\n });\r\n this.productViewSubscription = AppEvents.productViewO.subscribe((newProductView) => {\r\n this.setProductView(newProductView);\r\n if(newProductView) {\r\n this.viewId = newProductView.id;\r\n this.setUndoRedoState(newProductView);\r\n }\r\n });\r\n this.currentDesignElementSubscription = AppEvents.currentDesignElementO.subscribe((designElement) => {\r\n this._currentDesignElement = designElement;\r\n this._currentDesignElementMap = Immutable.Map({});\r\n this._currentDesignElementMap = this._currentDesignElementMap.set('currentDesignElement', designElement);\r\n });\r\n this.totalProductCountSubscription = AppEvents.totalProductCountO.subscribe((count) => {\r\n this.totalProductCount = count;\r\n this.setQuantityError();\r\n this.pricePerProductModel = null;\r\n // this check is required for promo items\r\n if(!this.minQtyError) {\r\n this.getPriceAfterTimeout(1000);\r\n }\r\n });\r\n this.priceSubscription = AppEvents.priceGet.subscribe((val) => {\r\n // check if the total product count is more than or equal to the min Qty\r\n let quantity: any;\r\n this.pricePerProductModel = null;\r\n if(this.decorationGroup && this.decorationGroup.products) {\r\n quantity = this.designsHelper.checkQuantityForMultipleProducts(this.decorationGroup.products)\r\n }\r\n else {\r\n quantity = this.designsHelper.checkQuantity(this.product, this.selection);\r\n }\r\n this.minQtyError = quantity.valid? false: true;\r\n this.minQty = quantity.minQuantities;\r\n if(quantity.valid) {\r\n this.getPriceAfterTimeout(1000);\r\n }\r\n });\r\n this.autoSaveSubscription = AppEvents.autoSaveO.subscribe(() => {\r\n this.autoSaveByTime();\r\n this.saveApplicationState(); // may be we'll have to move this if this is called multiple times during adding an element.\r\n });\r\n this.saveDesignSubscription = AppEvents.saveDesignO.subscribe((checkout) => {\r\n this.fromCheckout = checkout;\r\n if(checkout) {\r\n this.completeCheckout();\r\n }\r\n else {\r\n this.completeSave();\r\n }\r\n });\r\n this.saveTemplateSubscription = AppEvents.saveTemplateO.subscribe(() => {\r\n this.saveTemplate();\r\n });\r\n this.completeCheckoutSubscription = AppEvents.completeCheckoutO.subscribe(() => {\r\n this.completeCheckout();\r\n });\r\n this.openModalSubscription = AppEvents.openModalO.subscribe((modalStr) => {\r\n this.openModal(modalStr); \r\n });\r\n this.closeModalSubscription = AppEvents.closeModalO.subscribe((modalStr) => {\r\n this.closeModal(); \r\n });\r\n this.loadSavedDesignSubscription = AppEvents.loadDesignO.subscribe((designId) => {\r\n this.loadSavedDesign(designId);\r\n this.isValidDesign = true; \r\n this.loadNewDesignId = void 0;\r\n });\r\n\r\n this.createDesignTemplateSubscription = AppEvents.createNewTemplateO.subscribe(() => {\r\n this.isValidDesign = false;\r\n this.color = void 0;\r\n this.resetDesignNameAndValidity();\r\n // this will reset product and it's views\r\n this.reset();\r\n // this will show the design template section\r\n this.content = \"createDesignTemplate\";\r\n });\r\n\r\n this.currentDesignChangedSubscription = AppEvents.currentDesignChangedO.subscribe((changed: boolean) => {\r\n this.currentDesignChanged = changed;\r\n let totalElements = this.designsHelper.totalDesignElementCount(this.product);\r\n if(totalElements <= 0) {\r\n if(this.decorationGroup) {\r\n this.totalProductCount = this.designsHelper.totalProductCountForMultipleProducts(this.decorationGroup.products);\r\n }\r\n else {\r\n this.totalProductCount = this.designsHelper.totalProductCountFromSelection(this.productColorSelection._selection);\r\n } \r\n }\r\n this.autoSaveByTime();\r\n });\r\n this.colorSelectionSubscription = AppEvents.colorSelectionO.subscribe((selection) => {\r\n this.selection = selection;\r\n });\r\n this.personalizationChangeSubscription = AppEvents.personalizationChangeO.subscribe((change: number) => {\r\n this.noOfPersonalizations = this.noOfPersonalizations + change;\r\n });\r\n this.multipleElementsSubscription = AppEvents.hasMultipleElementsO.subscribe((surroundingBox: any) => {\r\n if(surroundingBox) {\r\n this.resetContent(\"multipleSelection\");\r\n this.cd.detectChanges();\r\n }\r\n });\r\n this.saveStateChangeSubscription = AppEvents.saveStateChangeO.subscribe(() => {\r\n this.saveApplicationState();\r\n });\r\n this.designHasMorePrintColorsSubscription = AppEvents.designHasMorePrintColorsO.subscribe((hasMoreColors: boolean) => {\r\n this.designExceedsMaxPrintColors = hasMoreColors;\r\n if(this.designExceedsMaxPrintColors) {\r\n this.showMaxPrintColorMessage = true;\r\n }\r\n });\r\n }\r\n\r\n getRouteParameter() { \r\n\r\n var paramId: any;\r\n this.route.params.subscribe(params => {\r\n paramId = params['id'];\r\n });\r\n\r\n this.route.queryParams.subscribe(params => {\r\n let id = params[\"colorId\"];\r\n let content = params[\"content\"];\r\n let designId = params[\"design\"];\r\n let viewId = params[\"view\"];\r\n let pm = params[\"pm\"];\r\n let order = params[\"order\"];\r\n let groupId = params[\"groupId\"];\r\n let p = params[\"p\"]; // product id when a design template is loaded\r\n let c = params[\"c\"]; // product color id when a design template is loaded \r\n let guid = params[\"guid\"];\r\n\r\n if(id) {\r\n this.defaultProductColorId = +id;\r\n }\r\n if(content) {\r\n this.content = content;\r\n }\r\n if(designId) {\r\n this.designId = +designId;\r\n this.loadDesign = true;\r\n }\r\n if(viewId) {\r\n this.viewId = +viewId;\r\n }\r\n if(pm) {\r\n this.openPersonalizationModal = true;\r\n }\r\n if(order) {\r\n this.orderDesignId = +order;\r\n this.orderGroupId = groupId;\r\n }\r\n if(p) {\r\n this.productId = +p;\r\n }\r\n if(c) {\r\n this.colorId = +c;\r\n }\r\n if(guid) {\r\n this.decorationGroupId = guid;\r\n }\r\n });\r\n\r\n var element: any;\r\n if(this.route.snapshot.url.length > 0) {\r\n element = this.route.snapshot.url[0].path;\r\n }\r\n if(this.route.snapshot.url.length > 1) {\r\n element = this.route.snapshot.url[1].path;\r\n }\r\n\r\n if(element === 'template') {\r\n // use loadTemplate to load a template on a product. It's not for viewing.\r\n this.loadTemplate = true;\r\n this.templateId = (paramId !== void 0) ? paramId : null;\r\n }\r\n else if(element === 'viewTemplate') {\r\n this.templateId = (paramId !== void 0) ? paramId : null;\r\n }\r\n else if(element === 'product') {\r\n this.productId = (paramId !== void 0) ? paramId : null; \r\n }\r\n else {\r\n this.designId = (paramId !== void 0) ? paramId : null; \r\n }\r\n }\r\n \r\n ngOnInit() {\r\n this.showSpinner = true;\r\n this.getRouteParameter();\r\n this.checkScreenWidth();\r\n this.imagesPath = CONFIG.imagesHost;\r\n this.entripyImagePath = CONFIG.imagesOnEntripy;\r\n this.defaultsService.getDefaults().subscribe((defaults: any) => {\r\n this.defaults = defaults;\r\n this.productsService.getProducts();\r\n });\r\n this.fontsProcessor.getFonts().subscribe((fonts: any) => {\r\n });\r\n this.designColorsProcessor.getDesignColors();\r\n this.customerService.get().subscribe((customer) => {\r\n this.customer = customer;\r\n });\r\n this.textShapesService.get().subscribe((shapes) => {\r\n this.textShapes = shapes;\r\n this.textShapesService.setShapes(shapes);\r\n });\r\n this.textEffectsService.get().subscribe((effects) => {\r\n this.textEffects = effects;\r\n this.textEffectsService.setEffects(effects);\r\n });\r\n this.textBordersService.get().subscribe((borders) => {\r\n this.textBorders = borders;\r\n this.textBordersService.setBorders(borders);\r\n });\r\n this.personalizationSizeService.get().subscribe((sizes)=> {\r\n this.personalizationSizes = sizes;\r\n this.personalizationSizeService.setSizes(this.personalizationSizes);\r\n });\r\n $(window).resize((event) => {\r\n this.checkScreenWidth();\r\n });\r\n }\r\n\r\n ngOnDestroy(){\r\n this.productSizeSubscription.unsubscribe();\r\n this.productsSubscription.unsubscribe();\r\n this.productSubscription.unsubscribe();\r\n this.productDetailsSubscription.unsubscribe();\r\n this.priceSubscription.unsubscribe();\r\n this.saveDesignSubscription.unsubscribe();\r\n this.saveTemplateSubscription.unsubscribe();\r\n this.completeCheckoutSubscription.unsubscribe();\r\n this.colorSubscription.unsubscribe();\r\n this.designElementsSubscription.unsubscribe();\r\n this.productViewSubscription.unsubscribe();\r\n this.openModalSubscription.unsubscribe();\r\n this.closeModalSubscription.unsubscribe();\r\n this.totalProductCountSubscription.unsubscribe();\r\n this.currentDesignElementSubscription.unsubscribe();\r\n this.loadSavedDesignSubscription.unsubscribe();\r\n this.currentDesignChangedSubscription.unsubscribe();\r\n this.colorSelectionSubscription.unsubscribe();\r\n this.createDesignTemplateSubscription.unsubscribe();\r\n this.personalizationChangeSubscription.unsubscribe();\r\n this.autoSaveSubscription.unsubscribe();\r\n this.multipleElementsSubscription.unsubscribe();\r\n this.saveStateChangeSubscription.unsubscribe();\r\n this.addProductSubscription.unsubscribe();\r\n this.setDecorationGroupSubscription.unsubscribe();\r\n this.changedProductSubscription.unsubscribe();\r\n this.designHasMorePrintColorsSubscription.unsubscribe();\r\n }\r\n\r\n autoSaveTimeout: any;\r\n autoSaveByTime() {\r\n if(this.design && this.design.id && this.design.id > 0) {\r\n if (this.autoSaveTimeout !== void 0) {\r\n clearTimeout(this.autoSaveTimeout);\r\n }\r\n this.autoSaveTimeout = setTimeout((t: any) => {\r\n this.autoSaveTimeout = void 0;\r\n if(this.isDesignTemplate) {\r\n this.saveTemplate(false);\r\n }\r\n else {\r\n this.completeSave(false);\r\n }\r\n }, 2000);\r\n }\r\n }\r\n\r\n saveApplicationState() {\r\n let currentView = _.findWhere(this.product.views, {\r\n id: this.viewId\r\n });\r\n if(currentView) {\r\n this.statesService.addAndRemoveStates(this.decorationGroup, this.product.id, currentView.locationId, \r\n this.saveProcessor.cleanView(currentView, false), this.selection, this.productColorSelection.getClonedDefaultGroup());\r\n this.setUndoRedoState(currentView);\r\n }\r\n }\r\n\r\n setUndoRedoState(currentView: any) {\r\n if(currentView) {\r\n let canUndoRedo : any = this.statesService.canUndoRedo(currentView.locationId);\r\n this.canUndo = canUndoRedo.canUndo;\r\n this.canRedo = canUndoRedo.canRedo;\r\n }\r\n }\r\n \r\n undoClicked() {\r\n if(this.canUndo) {\r\n this.updateProductView(this.statesService.undoState(this._productView.locationId));\r\n this.setUndoRedoState(this._productView);\r\n this.autoSaveByTime();\r\n }\r\n }\r\n\r\n redoClicked() {\r\n if(this.canRedo) {\r\n this.updateProductView(this.statesService.redoState(this._productView.locationId));\r\n this.setUndoRedoState(this._productView);\r\n this.autoSaveByTime();\r\n }\r\n }\r\n\r\n refreshView(currentView: any) {\r\n //this.appEvents.emitProductViewChange(currentView);\r\n // this.appEvents.emitCurrentDesignChanged(true); \r\n this.appEvents.emitCurrentDesignElementChange(null);\r\n this.appEvents.emitProductViewDesignElementsChange(currentView.designElements); \r\n this.appEvents.emitMultipleElementsSelected(null);\r\n this.appEvents.emitPriceGet(\"\");\r\n }\r\n\r\n updateProductViewOld(savedState: any) {\r\n if(savedState) {\r\n let savedProductView: any = savedState.view;\r\n let savedSelection: any = savedState.productColors;\r\n let defaultPersonalizationGroup = savedState.defaultPersonalizationGroup;\r\n \r\n if(savedProductView) {\r\n let currentView = _.findWhere(this.product.views, {\r\n locationId: savedProductView.locationId\r\n });\r\n if(currentView && currentView.designElements) {\r\n // TODO: check if the product was updated during the undo\r\n \r\n while(currentView.designElements.length > 0) {\r\n currentView.designElements.pop();\r\n }\r\n\r\n savedProductView.designElements.forEach(element => {\r\n currentView.designElements.push(element);\r\n });\r\n\r\n currentView.screenshotSource = savedProductView.screenshotSource;\r\n currentView.artboardMoved = savedProductView.artboardMoved;\r\n currentView.editableArea = JSON.parse(JSON.stringify(savedProductView.editableArea));\r\n currentView.guidelines = JSON.parse(JSON.stringify(savedProductView.guidelines));\r\n currentView.embroideryRatioWidth = savedProductView.embroideryRatioWidth;\r\n currentView.embroideryRatioHeight = savedProductView.embroideryRatioHeight;\r\n currentView.size = JSON.parse(JSON.stringify(savedProductView.size));\r\n currentView.imageSize = JSON.parse(JSON.stringify(savedProductView.imageSize));\r\n currentView.borderBox = JSON.parse(JSON.stringify(savedProductView.borderBox));\r\n currentView.selectedColors = this.saveProcessor.cleanColorSelection(savedProductView.selectedColors); \r\n \r\n // reposition art board if required\r\n if(currentView.designElements && currentView.designElements.length > 0) {\r\n let designElementForMove = currentView.designElements[0];\r\n let moveElementBy = {\r\n designElement: designElementForMove,\r\n position: designElementForMove.position,\r\n width: designElementForMove.size.width,\r\n height: designElementForMove.size.height,\r\n };\r\n this.appEvents.emitRepositionArtboard(moveElementBy);\r\n }\r\n \r\n // refresh current view\r\n this.refreshView(currentView);\r\n }\r\n }\r\n\r\n if(savedSelection) {\r\n //this.productColorSelection.overridePersonalizationGroups(savedSelection);\r\n }\r\n\r\n if(defaultPersonalizationGroup) {\r\n this.productColorSelection.overrideDefaultGroup(defaultPersonalizationGroup);\r\n }\r\n }\r\n }\r\n\r\n updateProductView(savedState: any) {\r\n if(savedState) {\r\n let decorationGroup = this.decorationGroup;\r\n let savedProductView: any = savedState.view;\r\n let groupedProducts: any = savedState.products;\r\n let defaultPersonalizationGroup = savedState.defaultPersonalizationGroup;\r\n\r\n // if there are multiple products, undo should update all the product views.\r\n if(this.decorationGroup) {\r\n this.decorationGroup.products.forEach((selectedProduct) => {\r\n this.updateProductViewByProduct(savedProductView, selectedProduct.product);\r\n });\r\n }\r\n else {\r\n this.updateProductViewByProduct(savedProductView, this.product);\r\n }\r\n\r\n this.refreshView(this._productView);\r\n\r\n if(groupedProducts) {\r\n //this.productColorSelection.overrideSelection(savedSelection);\r\n groupedProducts.forEach((groupedProduct) => {\r\n if(this.decorationGroup) {\r\n let product = _.findWhere(this.decorationGroup.products, {\r\n id: groupedProduct.id\r\n });\r\n if(product) {\r\n this.productColorSelection.overridePersonalizationGroups(groupedProduct.productColors, product.selection);\r\n this.appEvents.emitCalculatePersonalizationCost();\r\n }\r\n }\r\n else {\r\n this.productColorSelection.overridePersonalizationGroups(groupedProduct.productColors, this.selection);\r\n this.appEvents.emitCalculatePersonalizationCost();\r\n }\r\n });\r\n }\r\n\r\n if(defaultPersonalizationGroup) {\r\n this.productColorSelection.overrideDefaultGroup(defaultPersonalizationGroup);\r\n }\r\n }\r\n }\r\n\r\n updateProductViewByProduct(savedProductView: any, product: any) {\r\n if(savedProductView && product) {\r\n let currentView = _.findWhere(product.views, {\r\n locationId: savedProductView.locationId\r\n });\r\n if(currentView && currentView.designElements) {\r\n while(currentView.designElements.length > 0) {\r\n currentView.designElements.pop();\r\n }\r\n\r\n savedProductView.designElements.forEach(element => {\r\n currentView.designElements.push(element);\r\n });\r\n\r\n // reposition art board if current product view is same as the view worked on by the user\r\n if(this._productView && this._productView.id == currentView.id && \r\n currentView.designElements && currentView.designElements.length > 0) {\r\n let designElementForMove = currentView.designElements[0];\r\n let moveElementBy = {\r\n designElement: designElementForMove,\r\n position: designElementForMove.position,\r\n width: designElementForMove.size.width,\r\n height: designElementForMove.size.height,\r\n };\r\n this.appEvents.emitRepositionArtboard(moveElementBy);\r\n\r\n // // refresh current view\r\n // this.refreshView(currentView);\r\n }\r\n }\r\n }\r\n }\r\n\r\n updateDesignElement(designElement: any) {\r\n if(designElement) {\r\n \r\n this.product.views.forEach(view => {\r\n let element = _.findWhere(view.designElements, {\r\n id: designElement.id\r\n });\r\n if(element) {\r\n if(element.$el) {\r\n designElement.$el = element.$el;\r\n }\r\n let index = this._productView.designElements.indexOf(element);\r\n view.designElements.splice(index, 1);\r\n view.designElements.splice(index, 0, designElement);\r\n this.appEvents.emitCurrentDesignElementChange(designElement);\r\n }\r\n });\r\n // newProductView.designElements.forEach(element => {\r\n // if(element.type == \"text\") {\r\n // this.appEvents.emitInitializeTextElement(element);\r\n // }\r\n // });\r\n }\r\n }\r\n\r\n saveButtonClick(saveClicked: any) {\r\n this.saveClicked = saveClicked;\r\n }\r\n\r\n updateOrderNotes(notes: string) {\r\n this.notes = notes;\r\n }\r\n\r\n checkScreenWidth() {\r\n let width = window.innerWidth\r\n || document.documentElement.clientWidth\r\n || document.body.clientWidth;\r\n\r\n if(width < 1200 && this.desktop) { // 1200 and more is for desktop\r\n this.desktop = false;\r\n //this.switchContent(\"mobileMain\");\r\n this.content = \"mobileMain\";\r\n this.resetView();\r\n }\r\n else if(width > 1200 && !this.desktop) {// 1200 and more is for desktop\r\n this.desktop = true;\r\n window.scrollTo(0, document.body.scrollHeight);\r\n // this.switchContent(\"\");\r\n this.content = \"chooseProduct\";\r\n this.resetView();\r\n }\r\n }\r\n\r\n resetView() {\r\n if(this._productView) {\r\n this._productView.imageSize = null;\r\n this._productView.productViewImageLoaded = false;\r\n }\r\n }\r\n \r\n setArtwork(artwork: any) {\r\n this.appEvents.emitImageFileUploaded(artwork);\r\n }\r\n\r\n setQuantityError() {\r\n let quantity: any;\r\n if(this.decorationGroup && this.decorationGroup.products) {\r\n quantity = this.designsHelper.checkQuantityForMultipleProducts(this.decorationGroup.products);\r\n }\r\n else {\r\n quantity = this.designsHelper.checkQuantity(this.product, this.selection);\r\n }\r\n this.minQtyError = quantity.valid? false: true;\r\n this.minQty = quantity.minQuantities;\r\n }\r\n\r\n setMinimumQuantityError(quantity: any) {\r\n this.minQtyError = quantity.valid? false: true;\r\n this.minQty = quantity.minimum;\r\n }\r\n \r\n switchContent(contentStr: any) {\r\n this.content = contentStr || this.content || 'chooseProduct';\r\n if(this.desktop) {\r\n this.appEvents.emitCurrentDesignElementChange(null); \r\n this.selectedElementsService.reset();\r\n this.appEvents.emitMultipleElementsSelected(null);\r\n }\r\n }\r\n \r\n resetContent(contentStr: any) { // this is called from product view\r\n this.content = contentStr || 'chooseProduct';\r\n }\r\n\r\n setElementOutsideArea(isOutsideArea: any) :void{\r\n this.elementOutsidePrintableArea = isOutsideArea;\r\n }\r\n\r\n resetDesignNameAndValidity() {\r\n if(this.design) {\r\n this.design.designName = \"\";\r\n this.design.inCart = false;\r\n if(this.design.id !== void 0) {\r\n this.design.id = 0;\r\n }\r\n }\r\n this.isValidDesign = false;\r\n }\r\n\r\n setProduct(product: any) {\r\n if(product) {\r\n this.product = product;\r\n }\r\n else if(this.defaults && this.defaults.productId) {\r\n this.product = _.findWhere(this.products, {\r\n id: parseInt(this.defaults.productId)\r\n });\r\n }\r\n if(!this.product) {\r\n this.product = this.products[0];\r\n }\r\n if(this.product.colors && this.product.colors.length === 0){\r\n this.productsService.getProduct(this.product.id);\r\n }\r\n this.showSpinner = false;\r\n }\r\n \r\n setColor(color: any) {\r\n if(color){\r\n this.color = color;\r\n }\r\n else if (this.defaultProductColorId) {\r\n this.color = _.findWhere(this.product.colors, {\r\n id: this.defaultProductColorId\r\n });\r\n }\r\n if(!this.color && this.product) {\r\n this.color = this.product.colors[0];\r\n }\r\n }\r\n \r\n setProductView(productView: any) {\r\n this._productView = productView || this.getProductView();\r\n this._productViewMap = Immutable.Map({});\r\n this._productViewMap = this._productViewMap.set('productView', this._productView);\r\n }\r\n\r\n getProductView() {\r\n let productView: any;\r\n\r\n if(this.viewId) {\r\n productView = _.findWhere(this.product.views, {\r\n id: this.viewId\r\n });\r\n }\r\n\r\n if(!productView) {\r\n productView = this.product.views[0];\r\n this.viewId = productView.id;\r\n productView.hidden = false;\r\n }\r\n return productView;\r\n }\r\n\r\n copyDesignElementsToNewProduct(newProduct: any) {\r\n // carry forward existing elements from the design\r\n let hasElement: boolean = false;\r\n let viewMatched: boolean = true;\r\n\r\n this.product.views.forEach(view => {\r\n let updateState: boolean = false;\r\n let newView = _.findWhere(newProduct.views, {\r\n locationId: view.locationId\r\n }); \r\n if(!newView) {\r\n newView = newProduct.views[0];\r\n viewMatched = false;\r\n this.statesService.changeStateLocationId(view.locationId, newView.locationId);\r\n }\r\n view.designElements.forEach(element => {\r\n if(element.isPersonalization && !viewMatched) {\r\n element.personalizationSize = this.personalizationSizes[0];\r\n element.needsRefresh = true;\r\n }\r\n if(newProduct.promoAvailable && element.isPersonalization) {\r\n }\r\n else {\r\n element.locationId = newView.locationId;\r\n newView.designElements.push(element);\r\n hasElement = true;\r\n updateState = true;\r\n } \r\n });\r\n viewMatched = true;\r\n });\r\n \r\n this.setProduct(newProduct);\r\n //this.resetDesignNameAndValidity();\r\n if(hasElement) {\r\n this.isValidDesign = true;\r\n }\r\n this.setProductView(void 0);\r\n }\r\n \r\n setSelection() {\r\n this.productColorSelection.setSelection(this.product, this.color);\r\n }\r\n \r\n setSavingAndProcessing(val: boolean) {\r\n this.saving = this.isProcessing = val;\r\n }\r\n\r\n openModalMobile(modalStr: any) {\r\n this.modal = modalStr;\r\n this.content = modalStr || 'chooseProduct';\r\n this.appEvents.emitCurrentDesignElementChange(null); \r\n this._currentDesignElement = null;\r\n }\r\n \r\n openModal(modalStr: any) {\r\n this.modal = modalStr;\r\n this.switchContent(modalStr);\r\n }\r\n\r\n closeModal() {\r\n if (!this.saving) {\r\n this.modal = null;\r\n }\r\n $(window).scrollTop(0);\r\n }\r\n\r\n displayOverlay(modal: any) {\r\n return ['changeProduct', 'addProduct', 'addClipart', 'checkout', 'chooseDesignNameSave', 'chooseDesignNameCheckout', 'addProofedArtwork', 'addTemplate'].indexOf(modal) > -1 || this.saving;\r\n }\r\n\r\n displayChooseDesignName(modal: any) {\r\n return ['chooseDesignNameCheckout', 'chooseDesignNameSave'].indexOf(modal) > -1;\r\n }\r\n \r\n getPriceAfterTimeout(duration: any) {\r\n if(!this.isDesignTemplate) {\r\n this.gettingPrice = true;\r\n if (this.priceTimeoutId !== void 0) {\r\n clearTimeout(this.priceTimeoutId);\r\n }\r\n\r\n this.priceTimeoutId = setTimeout((t: any) => {\r\n this.priceTimeoutId = void 0;\r\n this.getPrice();\r\n }, duration);\r\n }\r\n }\r\n \r\n getPrice() {\r\n if(this.design && this.product && this.color){\r\n let designName = \"\";\r\n let dg: any;\r\n\r\n if(this.design){\r\n designName = this.design.designName;\r\n }\r\n if(!this.decorationGroup) {\r\n dg = this.decorationGroupHelper.createTemporaryDecorationGroup(this.product, this.selection);\r\n }\r\n else {\r\n dg = this.decorationGroup;\r\n }\r\n let args: any = {\r\n decorationGroup: dg,\r\n designName: designName,\r\n };\r\n this.priceProcessor.perform(args).subscribe( (pricePerProduct: any) => {\r\n this.pricePerProductModel = pricePerProduct;\r\n this.gettingPrice = false;\r\n });\r\n }\r\n }\r\n\r\n cancelGetPrice() {\r\n this.gettingPrice = false;\r\n clearTimeout(this.priceTimeoutId);\r\n this.priceTimeoutId = void 0;\r\n }\r\n\r\n loadOrderORSavedDesign(design: any) {\r\n // load common properties from design\r\n if (design.convertedDesign || (design && design.id) || (design && design.orderDesignId)) {\r\n\r\n this.design = {\r\n id: design.id,\r\n inCart: design.inCart,\r\n designName: design.name,\r\n isOrderDesign: design.isOrderDesign,\r\n orderDesignId: design.orderDesignId,\r\n orderGroupId: this.orderGroupId,\r\n orderCustomerId: design.orderCustomerId,\r\n orderRivisionId : design.orderRivisionId, \r\n };\r\n this.notes = design.notes;\r\n this.inCart = design.inCart;\r\n this.productColorSelection.resetSelection();\r\n this.decorationGroupHelper.resetCollection();\r\n this.statesService.reset();\r\n\r\n let newDecorationGroup: any = this.decorationGroupHelper.createDecorationGroup();\r\n newDecorationGroup.id = design.decorationGroupId;\r\n let noOfProductsInDesign: number = design.products.length;\r\n let currentCount: number = 1;\r\n this.noOfPersonalizations = 0;\r\n this.elementsAdded = false;\r\n this.totalProductCount = 0;\r\n\r\n // foreach product in design.products\r\n design.products.forEach((designProduct: any) => {\r\n // created this promise because we want to wait for the product to be loaded and added before working on the next one.\r\n this.loadProductAndConvertItToDesign(design, newDecorationGroup, designProduct).subscribe((response) => {\r\n\r\n // add new product to decoration group products collection, along with color sizes and selection\r\n let defaultColor: any = this.loadDesignHelper.findSavedColor(designProduct.colorSizes[0].colorId, response.product.colors);\r\n this.decorationGroupHelper.addProductBySelection(newDecorationGroup.id, response.product, response.selection, defaultColor);\r\n // TODO: get quantity count for all the products\r\n this.totalProductCount += this.loadDesignHelper.getTotalQuantity(designProduct.colorSizes);\r\n\r\n // if this is the final product in the design, fire required events\r\n if(currentCount == noOfProductsInDesign) {\r\n // assign default decoration group\r\n this.appEvents.emitNewDecorationGroup(newDecorationGroup);\r\n \r\n // set this.product\r\n this.product = response.product;\r\n \r\n // set this.color\r\n this.setColor(defaultColor);\r\n \r\n // set default view\r\n this.setProductView(void 0);\r\n\r\n // set this.selection\r\n this.selection = response.selection;\r\n this.productColorSelection.setExistingSelection(this.selection);\r\n\r\n // set initial app state\r\n this.product.views.forEach(view => {\r\n\r\n // add personalizations\r\n // let personalizedElements = _.where(view.designElements, {isPersonalization: true});\r\n // if(personalizedElements.length > 0) {\r\n // personalizedElements.forEach(personalizedElement => {\r\n // this.decorationGroupHelper.addPersonalization(this.decorationGroupId, personalizedElement.personalizationName, personalizedElement.text, \r\n // this.color ? this.color.id : 0, 0, personalizedElement.id, view.name, view.locationId);\r\n // });\r\n // }\r\n \r\n if(!this.elementOutsidePrintableArea){\r\n view.designElements.some(element => {\r\n if(element.outsidePrintableArea){\r\n this.appEvents.emitDesignOutsidePrintArea({\r\n designElement: element,\r\n showMessage: true\r\n });\r\n return true;\r\n }\r\n });\r\n }\r\n\r\n this.statesService.addAndRemoveStates(this.decorationGroup, this.product.id, \r\n view.locationId, this.saveProcessor.cleanView(view, false), \r\n this.selection, this.productColorSelection.getClonedDefaultGroup());\r\n });\r\n\r\n this.appEvents.emitCalculatePersonalizationCost();\r\n\r\n this.isValidDesign = this.designsHelper.isValidDesign(this.product);\r\n\r\n this.setQuantityError();\r\n\r\n if(!this.minQtyError && this.isValidDesign) {\r\n this.getPriceAfterTimeout(100);\r\n }\r\n\r\n this.showSpinner = false;\r\n if(this.openPersonalizationModal) {\r\n this.appEvents.emitOpenPersonalizationModal(true);\r\n this.openPersonalizationModal = false;\r\n }\r\n }\r\n else if (currentCount == 1) {\r\n this.product = response.product;\r\n }\r\n\r\n currentCount++;\r\n });\r\n });\r\n }\r\n }\r\n \r\n loadProductAndConvertItToDesign(design: any, newDecorationGroup: any, designProduct: any) {\r\n return Observable.create((observer: any) => { \r\n // get product\r\n this.productsService.getProductObservable(designProduct.productId, false).subscribe((returnedProduct : any) => {\r\n let colorSizes: any = designProduct.colorSizes;\r\n let selection: any;\r\n let views: any = designProduct.views;\r\n\r\n // map selection\r\n if(designProduct.selection.length > 0) {\r\n selection = JSON.parse(JSON.stringify(designProduct.selection));\r\n }\r\n\r\n // extra work for converted design\r\n if(design.convertedDesign) {\r\n if(designProduct.selection.length > 0) {\r\n selection.forEach((selectedColor: any) => {\r\n this.productColorSelection.mapColorAndSizesInSelection(returnedProduct, selectedColor);\r\n });\r\n }\r\n }\r\n\r\n // map views\r\n designProduct.views.forEach((savedView: any) => {\r\n let productView: any = this.loadDesignHelper.findSavedProductViewByLocationId(savedView.locationId, returnedProduct.views);\r\n this.loadDesignHelper.prepDesignView(productView, savedView);\r\n\r\n // map design elements only for the first product\r\n if(!this.elementsAdded) {\r\n\r\n this.productColorSelection.copyDefaultGroup(selection, returnedProduct);\r\n this.productColorSelection.copySelections(this.selection, selection, returnedProduct);\r\n \r\n let designElements: any = this.loadDesignHelper.prepDesignElements({\r\n fonts: this.fonts,\r\n designColors: this.designColors,\r\n savedView: savedView\r\n });\r\n \r\n this.removeExtraPrintColorsFromDesignElements(designElements, returnedProduct);\r\n\r\n designElements.forEach((element) => {\r\n element.colors.forEach((color) => {\r\n this.selectedColorsService.setSelectedColorInView(productView, color);\r\n });\r\n });\r\n\r\n let personalizedElements = _.where(designElements, {isPersonalization: true});\r\n if(personalizedElements.length > 0) {\r\n this.noOfPersonalizations += personalizedElements.length;\r\n personalizedElements.forEach(personalizedElement => {\r\n this.productColorSelection.setDefaultGroupHeader(personalizedElement);\r\n\r\n // this.decorationGroupHelper.addPersonalization(this.decorationGroupId, personalizedElement.personalizationName, personalizedElement.text, \r\n // this.color ? this.color.id : 0, 0, personalizedElement.id, productView.name, productView.locationId);\r\n \r\n if(design.convertedDesign) {\r\n personalizedElement.assignDimensions = true;\r\n }\r\n });\r\n }\r\n if(design.convertedDesign) {\r\n productView.needRefresh = true;\r\n }\r\n productView.designElements = [];\r\n designElements.forEach((element) => {\r\n productView.designElements.push(element);\r\n });\r\n }\r\n else {\r\n if(this.product && this.product.views) {\r\n let matchingView = _.findWhere(this.product.views, {\r\n locationId: productView.locationId\r\n });\r\n if(matchingView) {\r\n productView.designElements = [];\r\n matchingView.designElements.forEach((element) => {\r\n productView.designElements.push(element);\r\n });\r\n productView.selectedColors = matchingView.selectedColors;\r\n }\r\n }\r\n }\r\n });\r\n\r\n let response: any = {\r\n product: returnedProduct,\r\n selection: selection,\r\n }\r\n this.elementsAdded = true;\r\n return observer.next(response);\r\n });\r\n });\r\n }\r\n \r\n loadSavedDesign(designId: any) {\r\n this.showSpinner = true;\r\n this.loadDesignHelper.XHR(designId).subscribe((design) => {\r\n this.loadOrderORSavedDesign(design);\r\n });\r\n }\r\n\r\n loadOrderDesign(designId: any) {\r\n this.showSpinner = true;\r\n this.loadDesignHelper.OrderDesign(designId).subscribe((design) => {\r\n if(design) {\r\n this.loadOrderORSavedDesign(design);\r\n }\r\n else {\r\n this.showSpinner = false;\r\n }\r\n });\r\n }\r\n\r\n removeExtraPrintColorsFromDesignElements(designElements:any, product: any) {\r\n designElements.forEach(element => {\r\n let noOfElementsToBeRemoved = element.colors.length - product.maxPrintColors;\r\n let index = product.maxPrintColors;\r\n element.colors.splice(index, noOfElementsToBeRemoved);\r\n if(product.printAvailable) {\r\n if(product.maxPrintColors == 0) {\r\n element.isFullColor = true;\r\n }\r\n }\r\n else if (product.promoAvailable) {\r\n element.isPromo = true;\r\n }\r\n else {\r\n element.isEmbroidery = true;\r\n }\r\n });\r\n }\r\n \r\n loadProduct(productId: any) {\r\n let product: any;\r\n product = _.findWhere(this.products, {\r\n id: parseInt(productId)\r\n });\r\n if (product) {\r\n this.setProduct(product);\r\n }\r\n //return $location.search('productId', null);\r\n //return {productId: null};\r\n }\r\n \r\n reset() {\r\n this.saving = this.isProcessing = false;\r\n this.switchContent(void 0);\r\n this.noOfPersonalizations = 0;\r\n \r\n if(this.decorationGroupId) {\r\n this.createDesignFromDecorationGroup();\r\n }\r\n else if(this.templateId) {\r\n this.loadDesignTemplate(this.templateId);\r\n if(!this.loadTemplate) {\r\n this.isDesignTemplate = true;\r\n }\r\n }\r\n else if(this.orderDesignId) {\r\n this.loadOrderDesign(this.orderDesignId);\r\n this.isValidDesign = true;\r\n this.loadDesign = false;\r\n }\r\n else if(this.loadDesign && this.customer.loggedIn) {\r\n this.loadSavedDesign(this.designId);\r\n this.isValidDesign = true;\r\n this.loadDesign = false;\r\n }\r\n else if (this.productId) {\r\n this.loadProduct(this.productId);\r\n }\r\n else if (this.designId) {\r\n this.loadSavedDesign(this.designId);\r\n this.isValidDesign = true;\r\n }\r\n else {\r\n this.setProduct(void 0);\r\n }\r\n \r\n this.getPriceAfterTimeout(1000);\r\n }\r\n \r\n // This function is called when the current design is deleted from the saved design section\r\n resetDesign(deletedDesignId: any) {\r\n // if the deletedDesignId is in the url, delete the parameter\r\n this.saving = this.isProcessing = this.isValidDesign = false;\r\n if(!this.isDesignTemplate) {\r\n this.switchContent(void 0);\r\n }\r\n else {\r\n this.switchContent(\"createDesignTemplate\");\r\n }\r\n \r\n this.resetDesignNameAndValidity();\r\n // this.setProduct(void 0);\r\n // this.productColorSelection.resetSelection();\r\n // this.setProductView(void 0);\r\n this.color = void 0;\r\n this.reset();\r\n }\r\n \r\n startCheckout(isChooseSize: boolean) {\r\n let targetModal: any;\r\n targetModal = isChooseSize ? 'checkout' : this.design.designName ? 'checkout' : 'chooseDesignNameCheckout';\r\n this.isChooseSize = isChooseSize;\r\n this.openModal(targetModal);\r\n }\r\n \r\n startSave(viaString: any) {\r\n this.saving = true;\r\n this.isProcessing = true;\r\n\r\n if(this.isDesignTemplate) {\r\n this.saveTemplate();\r\n }\r\n else if (viaString === 'viaSave') {\r\n this.completeSave();\r\n } \r\n else {\r\n this.completeCheckout();\r\n }\r\n }\r\n\r\n save(args: any) {\r\n if (!this.saving) {\r\n if (this.design && this.design.designName) {\r\n this.startSave('viaSave');\r\n } \r\n else {\r\n return this.openModal('chooseDesignNameSave');\r\n }\r\n }\r\n }\r\n \r\n saveCurrentDesignAndLoadNewDesign(designId: any) {\r\n this.loadNewDesignId = designId;\r\n this.save(\"\");\r\n }\r\n\r\n saveCurrentDesignAndLoadNewDesignTemplate(designTemplateId: any) {\r\n this.loadNewDesignId = designTemplateId;\r\n this.saveTemplate();\r\n }\r\n\r\n applyTemplate(selectedTemplate: any) {\r\n this.selectedTemplate = selectedTemplate;\r\n\r\n // if the current design has design elements, show user a popup if he/she wants to keep the elements\r\n if(this.designsHelper.totalCurrentDesignElements(this.product.views) > 0) {\r\n this.showTemplateApplyConfirmation = true;\r\n }\r\n // else add design template elements to the current views\r\n else {\r\n this.applyTemplateElements(false);\r\n }\r\n }\r\n\r\n keepElements() {\r\n this.showTemplateApplyConfirmation = false;\r\n this.applyTemplateElements(true);\r\n }\r\n\r\n dontKeepElements() {\r\n this.showTemplateApplyConfirmation = false;\r\n this.applyTemplateElements(false);\r\n }\r\n\r\n applyTemplateElements(keepElements: boolean) {\r\n if(this.selectedTemplate) {\r\n if(!keepElements) {\r\n // remove existing elements\r\n this.product.views.forEach(view => {\r\n if(view.designElements.length > 0) {\r\n view.designElements = [];\r\n }\r\n });\r\n }\r\n // add template elements\r\n this.selectedTemplate.savedDesign.design.views.forEach(view => {\r\n let newView = _.findWhere(this.product.views, {\r\n locationId: view.locationId\r\n }); \r\n if(!newView) {\r\n newView = this.product.views[0];\r\n }\r\n let designElements = this.loadDesignHelper.prepDesignElements({\r\n fonts: this.fonts,\r\n designColors: this.designColors,\r\n savedView: view\r\n });\r\n designElements.forEach(element => {\r\n element.locationId = newView.locationId;\r\n element.isEmbroidery = this.isEmbroideryOnly();\r\n newView.designElements.push(element);\r\n });\r\n });\r\n this.appEvents.emitProductViewDesignElementsChange(this._productView.designElements);\r\n this.appEvents.emitCurrentDesignChanged(true);\r\n //this.appEvents.emitSaveState();\r\n this.selectedTemplate = void 0;\r\n }\r\n }\r\n\r\n isEmbroideryOnly() {\r\n if (this.product.embroideryAvailable && (!this.product.printAvailable && !this.product.promoAvailable)) {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n\r\n saveTemplate(showSpinner: boolean = true) {\r\n this.showSpinner = showSpinner;\r\n // save template\r\n let args: any = {\r\n product: this.product,\r\n color: this.color,\r\n name: this.design.designName,\r\n selection: this.selection\r\n };\r\n if(!this.totalProductCount) {\r\n if(this.decorationGroup) {\r\n this.totalProductCount = this.designsHelper.totalProductCountForMultipleProducts(this.decorationGroup.products);\r\n }\r\n else {\r\n this.totalProductCount = this.designsHelper.totalProductCountFromSelection(this.selection);\r\n }\r\n if(this.totalProductCount <= 0) {\r\n this.selection.forEach((selectedColor) => {\r\n if(selectedColor.sizes.length > 0) {\r\n selectedColor.sizes[0].quantity = 1;\r\n }\r\n });\r\n }\r\n }\r\n this.saveProcessor.saveDesignTemplate(args, this.design.id).subscribe((designId: any) => {\r\n if (designId) {\r\n this.design.id = designId;\r\n }\r\n this.saving = false; \r\n this.isProcessing = false;\r\n this.currentDesignChanged = false;\r\n this.showSpinner = false;\r\n\r\n if (this.loadNewDesignId) {\r\n this.loadDesignTemplate(this.loadNewDesignId);\r\n }\r\n\r\n this.appEvents.emitDesignTemplateSaved();\r\n });\r\n }\r\n\r\n loadDesignTemplate(id: any) {\r\n this.showSpinner = true;\r\n this.designTemplateService.get(this.customer.isTemplateApprover, this.customer.isTemplateDesigner, id).subscribe((designTemplate) => {\r\n let designElements: any, productView: any, savedView: any, i: any, len: any, ref: any, results: any, product: any;\r\n if (designTemplate && designTemplate.id) {\r\n if(!this.loadTemplate) {\r\n this.design = {\r\n id: designTemplate.id,\r\n designName: designTemplate.name\r\n };\r\n }\r\n this.isValidDesign = true;\r\n let prodId = this.productId > 0 ? this.productId: designTemplate.savedDesign.design.productId; \r\n product = this.loadDesignHelper.findSavedProduct(prodId, this.products);\r\n this.productColorSelection.resetSelection();\r\n this.statesService.reset();\r\n\r\n this.productsService.getProductObservable(product.id).subscribe((returnedProduct : any) => {\r\n this.product = returnedProduct;\r\n \r\n // choose product color based on either query string or design template or default product color\r\n let cId = this.colorId > 0 ? this.colorId : \r\n designTemplate.savedDesign.colorSizes.length > 0 ? designTemplate.savedDesign.colorSizes[0].colorId : 0;\r\n let color = this.loadDesignHelper.findSavedColor(cId, this.product.colors);\r\n this.setColor(color);\r\n this.productColorSelection.resetSelection();\r\n this.productColorSelection.addColor(this.product, this.color);\r\n\r\n // if(!this.loadTemplate) {\r\n // this.loadDesignHelper.setOrderSelection(this.product, designTemplate.savedDesign.colorSizes, this.selection);\r\n // }\r\n this.appEvents.emitColorSelectionChange(this.selection);\r\n ref = designTemplate.savedDesign.design.views;\r\n results = [];\r\n this.noOfPersonalizations = 0;\r\n this.statesService.reset();\r\n for (i = 0, len = ref.length; i < len; i++) {\r\n savedView = ref[i];\r\n productView = this.loadDesignHelper.findSavedProductView(savedView.id, this.product.views);\r\n if(!productView) {\r\n productView = this.product.views[0];\r\n }\r\n this.loadDesignHelper.prepDesignView(productView, savedView);\r\n designElements = this.loadDesignHelper.prepDesignElements({\r\n fonts: this.fonts,\r\n designColors: this.designColors,\r\n savedView: savedView\r\n });\r\n let personalizedElements = _.where(designElements, {isPersonalization: true});\r\n if(personalizedElements.length > 0) {\r\n this.noOfPersonalizations += personalizedElements.length;\r\n }\r\n results.push(productView.designElements = designElements);\r\n // following call is made through the getProductObservable () above\r\n this.statesService.addAndRemoveStates(this.decorationGroup, this.product.id, \r\n productView.locationId, this.saveProcessor.cleanView(productView, false), \r\n this.selection, this.productColorSelection.getClonedDefaultGroup(), true);\r\n }\r\n this.showSpinner = false;\r\n });\r\n } \r\n });\r\n }\r\n \r\n switchModeCancel() {\r\n this.switchModeConfirmation = false;\r\n }\r\n \r\n switchModeOk() {\r\n this.switchModeConfirmation = false;\r\n this.currentDesignChanged = false;\r\n this.isDesignTemplate = !this.isDesignTemplate;\r\n this.noOfPersonalizations = 0;\r\n this.resetDesignNameAndValidity();\r\n this.designsHelper.cleanViews(this.product);\r\n this.appEvents.emitRefreshSavedDesignView();\r\n }\r\n\r\n showWindowsUnloadConfirmation(event: any) {\r\n if(this.currentDesignChanged) {\r\n let message: any = \"You have un saved changes. Are you sure you want to leave?\";\r\n event.returnValue = message;\r\n return message;\r\n }\r\n }\r\n \r\n showSwitchModeConfirmation() {\r\n if(this.currentDesignChanged) {\r\n this.switchModeConfirmation = true;\r\n }\r\n else {\r\n this.switchModeOk();\r\n }\r\n }\r\n\r\n resetDesignTemplate(templateId: any) {\r\n this.noOfPersonalizations = 0;\r\n this.resetDesignNameAndValidity();\r\n this.designsHelper.cleanViews(this.product);\r\n this.setProductView(void 0);\r\n this.currentDesignChanged = false;\r\n }\r\n \r\n saveFromDesignNameModal(viaString: any) {\r\n if (this.design && this.design.designName && this.design.designName.length > 0) {\r\n if (viaString === 'viaSave') {\r\n this.closeModal();\r\n this.startSave(viaString);\r\n } \r\n else {\r\n this.closeModal();\r\n this.openModal(\"checkout\");\r\n }\r\n }\r\n }\r\n\r\n completeSave(showSpinner: boolean = true) {\r\n this.showSpinner = showSpinner;\r\n let decorationGroupLocal: any = this.decorationGroup;\r\n let currentProduct: any = this.product;\r\n let currentColor: any = this.color;\r\n let currentSelection: any = this.selection;\r\n let currentView: any = this._productView;\r\n let args: any;\r\n\r\n //this.refreshDecorationGroupBeforeCheckout().subscribe((returnValue: any) => {\r\n\r\n if(this.decorationGroup) {\r\n args = {\r\n decorationGroup: this.decorationGroup,\r\n designName: this.design.designName,\r\n isOrderDesign: this.design.isOrderDesign ? this.design.isOrderDesign: false,\r\n orderDesignId: this.design.orderDesignId ? this.design.orderDesignId: 0,\r\n orderGroupId: this.design.orderGroupId ? this.design.orderGroupId : null,\r\n orderCustomerId: this.design.orderCustomerId,\r\n orderRivisionId : this.design.orderRivisionId, \r\n decorationGroupId: this.decorationGroup.id,\r\n };\r\n }\r\n else {\r\n args = {\r\n product: this.product,\r\n color: this.color,\r\n designName: this.design.designName,\r\n selection: this.selection,\r\n isOrderDesign: this.design.isOrderDesign ? this.design.isOrderDesign: false,\r\n orderDesignId: this.design.orderDesignId ? this.design.orderDesignId: 0,\r\n orderGroupId: this.design.orderGroupId ? this.design.orderGroupId : null,\r\n orderCustomerId: this.design.orderCustomerId,\r\n orderRivisionId : this.design.orderRivisionId, \r\n decorationGroupId: this.design.decorationGroupId,\r\n };\r\n }\r\n this.saveProcessor.perform(args, this.design.id, this.inCart).subscribe((designId: any) => {\r\n if (designId) {\r\n this.design.id = designId;\r\n this.saving = false; // Moved this from the finally block to here..\r\n this.isProcessing = false;\r\n this.currentDesignChanged = false;\r\n this.showSpinner = false;\r\n }\r\n if (this.loadNewDesignId) {\r\n this.appEvents.emitLoadSavedDesign(this.loadNewDesignId);\r\n }\r\n });\r\n //});\r\n }\r\n\r\n refreshDecorationGroupBeforeCheckout() {\r\n return this.refreshDecorationGroupProducts(this.decorationGroup.products);\r\n }\r\n\r\n refreshDecorationGroupProducts(products: any) {\r\n let next: any;\r\n return Observable.create((observer: any) => {\r\n let i: any = 0, _len = products.length;\r\n next = () => {\r\n let currentProduct: any = products[i].product;\r\n let selection: any = products[i].selection;\r\n let defaultColor: any = _.findWhere(currentProduct.colors, {\r\n id: selection[0].id \r\n });\r\n\r\n this.product = currentProduct;\r\n this.setColor(defaultColor);\r\n\r\n this.refreshNewProductViews(currentProduct).subscribe(() => {\r\n i++;\r\n if(i == _len) {\r\n return observer.next();\r\n }\r\n else {\r\n return setTimeout(next);\r\n }\r\n });\r\n };\r\n setTimeout(next);\r\n });\r\n }\r\n\r\n refreshDecorationGroupViews(product: any) {\r\n let next: any;\r\n let views: any = product.views;\r\n return Observable.create((observer: any) => {\r\n let i: any = 0, _len = views.length;\r\n next = () => {\r\n this.refreshDecorationGroupView(views[i]).subscribe(() => {\r\n i++;\r\n if(i == _len) {\r\n return observer.next(product);\r\n }\r\n else {\r\n return setTimeout(next);\r\n }\r\n });\r\n };\r\n setTimeout(next);\r\n });\r\n }\r\n\r\n refreshDecorationGroupView(view: any) {\r\n let next: any, i = 0;\r\n return Observable.create((observer: any) => {\r\n this.appEvents.emitProductViewChange(view);\r\n next = () => {\r\n return observer.next(view);\r\n }\r\n setTimeout(next, 400); \r\n });\r\n }\r\n\r\n refreshNewProductViews(product: any) {\r\n let next: any;\r\n let views: any = product.views;\r\n return Observable.create((observer: any) => {\r\n let i: any = 0, _len = views.length;\r\n next = () => {\r\n this.refreshNewProductView(views[i]).subscribe(() => {\r\n views[i].hidden = true;\r\n i++;\r\n \r\n if(i == _len) {\r\n return observer.next(product);\r\n }\r\n else {\r\n return setTimeout(next);\r\n }\r\n });\r\n };\r\n setTimeout(next);\r\n });\r\n }\r\n\r\n checkIfViewCalculationsAreComplete(view: any) {\r\n if(view.imageContainerSize && view.imageSize &&\r\n view.imageContainerSize.height > 0 && view.imageContainerSize.width > 0 && \r\n view.imageSize.height > 0 && view.imageSize.width > 0) { \r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n refreshNewProductView(view: any) {\r\n let next: any\r\n return Observable.create((observer: any) => {\r\n view.hidden = false;\r\n this.setProductView(view);\r\n next = () => {\r\n if(this.checkIfViewCalculationsAreComplete(view)) {\r\n return observer.next(view);\r\n }\r\n else {\r\n setTimeout(next, 200); \r\n }\r\n }\r\n setTimeout(next, 400); \r\n // if(this.desktop) {\r\n // setTimeout(next, 400); \r\n // }\r\n // else {\r\n // setTimeout(next, 800); \r\n // }\r\n });\r\n }\r\n\r\n checkout(isCheckout: boolean) {\r\n if(isCheckout) {\r\n if (!this.checkingOut) {\r\n this.startSave('viaCheckout');\r\n this.checkingOut = true;\r\n }\r\n }\r\n else {\r\n this.closeModal();\r\n }\r\n }\r\n\r\n completeCheckoutWithSingleProduct() {\r\n this.showSpinner = true;\r\n let args: any = {\r\n product: this.product,\r\n color: this.color,\r\n designName: this.design.designName,\r\n selection: this.selection,\r\n isOrderDesign: this.design.isOrderDesign ? this.design.isOrderDesign: false,\r\n orderDesignId: this.design.orderDesignId ? this.design.orderDesignId: 0,\r\n orderGroupId: this.design.orderGroupId ? this.design.orderGroupId : null,\r\n orderCustomerId: this.design.orderCustomerId,\r\n orderRivisionId : this.design.orderRivisionId, \r\n decorationGroupId: this.design.decorationGroupId,\r\n notes: this.notes,\r\n };\r\n\r\n this.checkoutService.save(args, this.design.id, this.inCart).subscribe(() => {\r\n\r\n // check design colors. It should not exceed max print colors for promo\r\n if(this.product.promoAvailable) {\r\n this.designExceedsMaxPrintColors = this.designsHelper.designHasMoreColorsThanMaxPrintColors(this.product);\r\n if(this.designExceedsMaxPrintColors) {\r\n this.showMaxPrintColorMessage = true;\r\n this.showSpinner = false;\r\n return;\r\n }\r\n }\r\n \r\n this.inCart = true;\r\n this.currentDesignChanged = false;\r\n this.facebookAddToCart();\r\n return window.location.replace(CONFIG.designer.cartUrl);\r\n });\r\n }\r\n\r\n completeCheckoutWithMultipleProducts() {\r\n this.showSpinner = true;\r\n let args: any;\r\n // check design colors. It should not exceed max print colors for promo\r\n if(this.product.promoAvailable) {\r\n this.designExceedsMaxPrintColors = this.designsHelper.designHasMoreColorsThanMaxPrintColors(this.product);\r\n if(this.designExceedsMaxPrintColors) {\r\n this.showMaxPrintColorMessage = true;\r\n this.showSpinner = false;\r\n return false;\r\n }\r\n }\r\n\r\n if(!this.desktop) {\r\n this.appEvents.emitOpenModalChange(\"mobileMain\");\r\n } \r\n\r\n this.refreshDecorationGroupBeforeCheckout().subscribe((returnValue: any) => { \r\n args = {\r\n decorationGroup: this.decorationGroup,\r\n designName: this.design.designName,\r\n isOrderDesign: this.design.isOrderDesign ? this.design.isOrderDesign: false,\r\n orderDesignId: this.design.orderDesignId ? this.design.orderDesignId: 0,\r\n orderGroupId: this.design.orderGroupId ? this.design.orderGroupId : null,\r\n orderCustomerId: this.design.orderCustomerId,\r\n orderRivisionId : this.design.orderRivisionId, \r\n decorationGroupId: this.decorationGroup.id,\r\n notes: this.notes,\r\n };\r\n\r\n this.checkoutService.save(args, this.design.id, this.inCart).subscribe(() => {\r\n this.inCart = true;\r\n this.currentDesignChanged = false;\r\n this.facebookAddToCart();\r\n return window.location.replace(CONFIG.designer.cartUrl);\r\n });\r\n });\r\n }\r\n \r\n completeCheckout() {\r\n if(!this.elementOutsidePrintableArea.showMessage){\r\n this.completeCheckoutAfterWarning();\r\n return;\r\n }\r\n \r\n this.showOutsideWarningPopup = true;\r\n }\r\n\r\n acceptDesignWarning(){\r\n this.completeCheckoutAfterWarning();\r\n this.showOutsideWarningPopup = false;\r\n }\r\n\r\n closeWarningPopup(){\r\n this.showOutsideWarningPopup = false;\r\n }\r\n\r\n completeCheckoutAfterWarning(){\r\n if(!this.decorationGroup) {\r\n this.completeCheckoutWithSingleProduct();\r\n }\r\n else {\r\n this.completeCheckoutWithMultipleProducts();\r\n }\r\n }\r\n\r\n facebookViewContent() {\r\n if(this.product) {\r\n fbq('track', 'ViewContent', {\r\n content_name: this.product.name,\r\n content_ids: this.product.sku,\r\n content_type: 'product',\r\n value: this.product.minPrice,\r\n currency: 'CAD'\r\n });\r\n }\r\n }\r\n\r\n facebookAddToCart() {\r\n if(this.product && this.pricePerProductModel) {\r\n fbq('track', 'AddToCart', {\r\n content_name: this.product.name,\r\n content_ids: this.product.sku,\r\n content_type: 'product',\r\n value: Math.round(this.getTotalPrice() * 100) / 100,\r\n currency: 'CAD'\r\n });\r\n }\r\n }\r\n\r\n getTotalPrice() {\r\n let total = this.pricePerProductModel.totalPriceWithDiscount !== this.pricePerProductModel.totalPrice ? \r\n this.pricePerProductModel.totalPriceWithDiscount : this.pricePerProductModel.totalPrice;\r\n let personalizationsEntered: any = this.productColorSelection.totalPersonalizationNamesAndNumbers();\r\n if(personalizationsEntered > 0 && this.defaults) {\r\n total += (personalizationsEntered * this.defaults.personalizationArtChargePerUnit);\r\n }\r\n return total;\r\n }\r\n\r\n createDesignFromDecorationGroup() {\r\n if(this.decorationGroupId) {\r\n this.showSpinner = true;\r\n this.createDesignService.getDesignByGroupId(this.decorationGroupId).subscribe((design) => {\r\n design.convertedDesign = true;\r\n this.loadOrderORSavedDesign(design);\r\n });\r\n }\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/main.component.ts","import {Component, Input, OnInit} from \"@angular/core\";\r\nimport { Router, ActivatedRoute, Params } from '@angular/router';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport {SharedDesignsService} from \"../../resources/sharedDesigns\";\r\nimport {CONFIG} from \"../../../environments/environment\";\r\n\r\ndeclare var $: any;\r\n\r\n@Component(\r\n {\r\n selector: \"ecc-shared-design\",\r\n template:\r\n `\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Product: {{design?.productName}}
\r\n
Design: {{design?.designName}}
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \"\"\r\n
\r\n
\r\n
\r\n `\r\n }\r\n)\r\nexport class SharedDesignComponent implements OnInit {\r\n design: any; \r\n imagesPath = CONFIG.imagesHost;\r\n selectedScreenshotSource: any;\r\n id: any;\r\n href:string;\r\n \r\n constructor(private route: ActivatedRoute, private router: Router, private sharedDesignsService: SharedDesignsService){}\r\n \r\n getRouteParameter() { \r\n this.id = this.route.snapshot.params['id'];\r\n }\r\n \r\n ngOnInit() {\r\n this.getRouteParameter();\r\n this.getSharedDesign(this.id);\r\n }\r\n\r\n getSharedDesign(id: any) {\r\n this.sharedDesignsService.get(id).subscribe((design) => {\r\n this.design = design;\r\n this.buildHref();\r\n this.reset();\r\n });\r\n }\r\n \r\n setSelectedScreenshotSource(screenshotSource: any) {\r\n this.selectedScreenshotSource = screenshotSource || this.design.screenshotSources[0];\r\n }\r\n \r\n reset() {\r\n this.setSelectedScreenshotSource(void 0);\r\n }\r\n\r\n buildHref() :string\r\n {\r\n this.href = \"/designer\";\r\n if(this.design)\r\n {\r\n this.href = \"/designer/product/\" + this.design.productId; \r\n }\r\n\r\n return this.href;\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/share/sharedDesign.component.ts","import {Component, Input, OnInit, OnDestroy} from \"@angular/core\";\r\nimport { Subscription } from \"rxjs\";\r\nimport { ImageRenderService } from \"../../resources/imageRender\";\r\nimport { AppEvents } from \"../../appEvents\";\r\nimport { CustomerService } from \"../../resources/customer.service\";\r\nimport { S3ProcessorService } from \"app/services/s3Processor.service\";\r\n\r\ndeclare var $: any;\r\ndeclare var _: any;\r\n\r\n@Component(\r\n {\r\n selector: \"ecc-test-colors-design\",\r\n template:\r\n `\r\n \r\n \r\n
\r\n
Uploaded image should be jpeg | gif | png | psd | tif | svg | bmp | eps | pdf | webp, less than 15MB
\r\n
The uploaded file type is not supported
\r\n
The file size should be less than 15MB
\r\n
\r\n \r\n Upload Your File\r\n
\r\n
\r\n File Uploading...\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n Skip Pixels: \r\n \r\n
\r\n
\r\n Max Colors: \r\n \r\n
\r\n
\r\n Time taken: {{totalTime}} miliseconds\r\n
\r\n
\r\n
\r\n
\r\n
Dimension: {{width}} x {{height}}
\r\n \r\n
\r\n
\r\n
\r\n
Color: {{color.name}} ({{color.hex}})
\r\n
\r\n
Count: {{color.times}} ({{color.percent}}%)
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n `\r\n }\r\n)\r\nexport class ColorDetectionComponent implements OnInit, OnDestroy {\r\n \r\n fileUploading: boolean = false;\r\n imageError: boolean;\r\n imageTooBig: boolean;\r\n imageUrl: any;\r\n customer: any;\r\n width: any;\r\n height: any;\r\n colors: any;\r\n totalTime: any;\r\n skipPixels: number = 5;\r\n maxColors: number = 5;\r\n\r\n fileUploadingSubscription: Subscription;\r\n fileUploadedSubscription: Subscription;\r\n imageErrorSubscription: Subscription;\r\n imageTooBigSubscription: Subscription;\r\n\r\n constructor(protected renderImageService: ImageRenderService, protected customerService: CustomerService, \r\n protected fileProcessor: S3ProcessorService){\r\n this.fileUploadedSubscription = AppEvents.imageFileUploaded.subscribe((src) => {\r\n this.imageTooBig = false;\r\n this.imageUploaded(src);\r\n });\r\n this.fileUploadingSubscription = AppEvents.imageFileUploading.subscribe((msg) => {\r\n this.fileUploading = true;\r\n });\r\n this.imageErrorSubscription = AppEvents.imageError.subscribe((imageError) => {\r\n this.fileUploading = false;\r\n this.imageError = imageError;\r\n });\r\n this.imageTooBigSubscription = AppEvents.imageTooBigError.subscribe((error) => {\r\n this.fileUploading = false;\r\n this.imageTooBig = error;\r\n });\r\n }\r\n \r\n ngOnInit() {\r\n this.imageTooBig = false; \r\n this.customerService.get().subscribe((customer) => {\r\n this.customer = customer;\r\n }); \r\n }\r\n\r\n ngOnDestroy() {\r\n this.fileUploadedSubscription.unsubscribe();\r\n this.fileUploadingSubscription.unsubscribe();\r\n this.imageErrorSubscription.unsubscribe();\r\n this.imageTooBigSubscription.unsubscribe();\r\n }\r\n\r\n fileChange(event: any) {\r\n let fileList: FileList = event.target.files;\r\n if(fileList.length > 0) {\r\n let file: File = fileList[0];\r\n this.fileProcessor.uploadImage(file);\r\n }\r\n }\r\n\r\n openFileModal() {\r\n $('input.standart-button.standart-button--color2.file-input').trigger('click');\r\n }\r\n\r\n imageUploaded(source: any) {\r\n let startTime = performance.now();\r\n this.renderImageService.getByPixels(source, this.skipPixels, this.maxColors).subscribe((obj) => {\r\n \r\n let endTime = performance.now();\r\n this.totalTime = endTime - startTime;\r\n\r\n if(obj) {\r\n this.width = obj.width;\r\n this.height = obj.height;\r\n this.colors = obj.colors;\r\n this.imageUrl = obj.url;\r\n this.fileUploading = false;\r\n\r\n let totalPixels = this.width * this.height / (this.skipPixels * this.skipPixels);\r\n \r\n this.colors.forEach((cl) => {\r\n let percent = (cl.times / totalPixels) * 100;\r\n cl.percent = Math.round(percent * 100) / 100;\r\n });\r\n }\r\n });\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/test/colorDetection.component.ts","import {Directive, ElementRef, Input, HostBinding, OnDestroy, ChangeDetectorRef, Output, EventEmitter, OnInit} from \"@angular/core\";\r\nimport {Subscription} from \"rxjs/Subscription\";\r\nimport {AppEvents} from \"../appEvents\";\r\n\r\ndeclare var $: any;\r\ndeclare var Raphael: any;\r\n\r\n@Directive(\r\n {\r\n selector: \"[ecc-text-element-map]\",\r\n }\r\n)\r\nexport class TextElementDirective implements OnDestroy, OnInit{\r\n \r\n // @HostBinding('style.color')\r\n // @Input() colorHex : string;\r\n\r\n @Input() set designEl(_designElement: any){\r\n if(_designElement){\r\n this._designElement = _designElement;\r\n this.setTextElement(_designElement);\r\n }\r\n }\r\n \r\n @Input() set colorHex( _hex: string){\r\n if(this.rText) {\r\n this.rText.attr({'fill': _hex});\r\n }\r\n }\r\n \r\n @Input() set text(_text: string){\r\n if(this._designElement) {\r\n this._designElement.text = _text;\r\n this.setText(this._designElement);\r\n }\r\n }\r\n @Input() set embroidery(embroidery: boolean) {\r\n this.isEmbroidery = embroidery;\r\n }\r\n @Input() maxWidthRatio : number = 1;\r\n @Output() setTextApplied: EventEmitter = new EventEmitter();\r\n \r\n _designElement: any; \r\n isEmbroidery: boolean = false;\r\n textApplied: number = 0;\r\n\r\n fontSubscription: Subscription;\r\n textSubscription: Subscription;\r\n rotationSubscription: Subscription;\r\n\r\n paper: any; // Raphael canvas\r\n rText: any; // Raphael text\r\n ft: any; // Free transform\r\n textAttributes : any ;\r\n\r\n constructor(private el: ElementRef, private cd: ChangeDetectorRef){\r\n this.fontSubscription = AppEvents.productFontO.subscribe((designElement) => {\r\n if(this._designElement === designElement){\r\n this.setTextElement(designElement);\r\n }\r\n });\r\n this.textSubscription = AppEvents.currentDesignElementTextO.subscribe((designElement) => {\r\n if(this._designElement === designElement){\r\n this.setText(designElement);\r\n }\r\n });\r\n this.rotationSubscription = AppEvents.currentDesignElementRotationO.subscribe((designElement) => {\r\n if(this._designElement === designElement) {\r\n this.setRotation(designElement.rotationAngle, false);\r\n }\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.setTextApplied.emit(this.textApplied++);\r\n }\r\n \r\n ngOnDestroy(){\r\n this.fontSubscription.unsubscribe();\r\n this.textSubscription.unsubscribe();\r\n this.rotationSubscription.unsubscribe();\r\n }\r\n\r\n setRotation(angle: any, setAttribute: boolean) {\r\n if(!setAttribute) {\r\n this.animate(this.rText, angle);\r\n }\r\n else {\r\n if(this.textAttributesChanged()) {\r\n this.animate(this.rText, angle);\r\n let gbox = this.rText.getBBox(false);\r\n let size = (gbox.width > gbox.height) ? gbox.width: gbox.height ;\r\n this.rText.attr({x: size / 2, y: size / 2});\r\n this.paper.setSize(size, size);\r\n this.assignTextAttributes();\r\n }\r\n }\r\n }\r\n\r\n textAttributesChanged() {\r\n let changed: boolean = false;\r\n\r\n if(this.textAttributes.fill !== this.rText.attrs.fill\r\n || this.textAttributes[\"font-family\"] !== this.rText.attrs[\"font-family\"]\r\n || this.textAttributes[\"font-size\"] !== this.rText.attrs[\"font-size\"]\r\n || this.textAttributes.stroke !== this.rText.attrs.stroke\r\n || this.textAttributes.text !== this.rText.attrs.text\r\n || this.textAttributes[\"text-anchor\"] !== this.rText.attrs[\"text-anchor\"]\r\n || this.textAttributes.x !== this.rText.attrs.x\r\n || this.textAttributes.y !== this.rText.attrs.y\r\n ) {\r\n changed = true;\r\n }\r\n\r\n return changed;\r\n }\r\n\r\n assignTextAttributes() {\r\n this.textAttributes = $.extend(true, {}, this.rText.attrs);\r\n }\r\n\r\n animate(element, angle) {\r\n let transformString = \"R\" + angle;\r\n element.animate({\"transform\": transformString}, 1);\r\n }\r\n\r\n setFontSize(_designElement: any) {\r\n if(this._designElement === _designElement) {\r\n this.setText(_designElement);\r\n }\r\n }\r\n \r\n setText(_designElement: any) {\r\n if(this.rText) {\r\n this.rText.attr({text: _designElement.text, 'font-size': _designElement.fontSize});\r\n let gbox = this.rText.getBBox(true);\r\n\r\n //check if the element width exceeds the editorial area\r\n // let editableArea = $(this.el.nativeElement).closest('.editable-area');\r\n // let productViewArea = $(this.el.nativeElement).closest('.current-product-view-img');\r\n // let maxWidth = productViewArea.width();\r\n // if(this.isEmbroidery) {\r\n // maxWidth = editableArea.width() * this.maxWidthRatio;\r\n // }\r\n // if(maxWidth < gbox.width) {\r\n // let ratio = maxWidth / gbox.width;\r\n // _designElement.fontSize = _designElement.fontSize * ratio;\r\n // this.rText.attr({text: _designElement.text, 'text-anchor':'start', 'font-size': _designElement.fontSize});\r\n // gbox = this.rText.getBBox(true);\r\n // }\r\n\r\n this.setRotation(_designElement.rotationAngle, true);\r\n }\r\n }\r\n\r\n setTextElement(_designElement: any){\r\n let color: any;\r\n //, family: any, style: any, weight: any;\r\n color = _designElement.color || \"\";\r\n //family = _designElement.font.cssString || _designElement.font.name;\r\n //style = _designElement.font.style || \"\";\r\n //weight = _designElement.font.weight || \"\"; \r\n\r\n if(!this.paper) {\r\n this.paper = Raphael(this.el.nativeElement);\r\n this.rText = this.paper.text(0, 0, ' ');\r\n this.assignTextAttributes();\r\n }\r\n if(this.rText) {\r\n this.rText.attr({'fill': color.hex});\r\n }\r\n this.setTextApplied.emit(this.textApplied++);\r\n }\r\n \r\n /*\r\n OR you can also use the setter like this to detect the change..\r\n @Input() set colorHex( hex: string){\r\n this.el.nativeElement.style.color = hex;\r\n }\r\n */\r\n \r\n /**\r\n OR you can use ngOnChanges life cycle hook to update the changes.\r\n */\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/directives/textElement.directive.ts","import {Injectable} from \"@angular/core\";\r\nimport {Http, Response, Headers, RequestOptions} from \"@angular/http\";\r\nimport {Observable} from \"rxjs/Observable\";\r\nimport \"rxjs/add/operator/map\";\r\nimport \"rxjs/add/operator/catch\";\r\n\r\nimport {CONFIG} from \"../../environments/environment\";\r\nimport {Error} from \"../error\";\r\nimport {SavedDesignModel} from \"../models/savedDesign.model\";\r\nimport {SaveProcessorService} from \"../services/saveProcessor.service\";\r\n\r\n@Injectable()\r\nexport class CheckoutService{\r\n private cartUrl: string;\r\n private headers: Headers;\r\n \r\n constructor(private http: Http, private saveProcessorService: SaveProcessorService) {\r\n this.cartUrl = CONFIG.api.host + \"/AddToCart/?userToken=\" + CONFIG.userToken;\r\n this.headers = new Headers();\r\n this.headers.append('Content-Type', 'application/json'); \r\n }\r\n \r\n XHR(design: any) {\r\n let options = new RequestOptions({headers: this.headers});\r\n let data = JSON.stringify(design);\r\n return this.http.post(this.cartUrl, data, options)\r\n //.map((res) => res.json())\r\n .catch(this.handleError);\r\n }\r\n \r\n save(args: any, designId: any, inCart: any) {\r\n // TODO: debug and test this method.\r\n return Observable.create((observer: any) => {\r\n this.saveProcessorService.prepOrder(args, designId, inCart).subscribe((design: any) => {\r\n this.XHR(design).subscribe((response) => {\r\n return observer.next();\r\n });\r\n });\r\n });\r\n }\r\n \r\n private handleError (error: any) {\r\n // TODO: Log this error to the server.\r\n return Observable.throw(Error.handleError(error) || 'Server error');\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/resources/checkout.ts","import {Injectable} from \"@angular/core\";\r\nimport {Observable} from 'rxjs/Observable';\r\nimport {Http, Response, Headers, URLSearchParams, RequestOptions} from '@angular/http';\r\nimport 'rxjs/add/operator/map';\r\nimport 'rxjs/add/operator/catch';\r\nimport {CONFIG} from '../../environments/environment';\r\nimport {Error} from \"../error\";\r\n\r\n@Injectable()\r\nexport class ClipartContentService {\r\n private url: string;\r\n \r\n constructor(private http: Http) {\r\n this.url = CONFIG.api.host + \"/clipartContent/?userToken=\" + CONFIG.userToken;\r\n }\r\n \r\n get(url: any) {\r\n var params = new URLSearchParams();\r\n params.set('url', url);\r\n return this.http.get(this.url, {search: params})\r\n .map(response => response.json())\r\n .catch(this.handleError);\r\n }\r\n \r\n private handleError (error: any) {\r\n // TODO: Log this error to the server.\r\n return Observable.throw(Error.handleError(error) || 'Server error');\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/resources/clipartContent.ts","import {Injectable} from '@angular/core';\r\nimport {Observable} from 'rxjs/Observable';\r\nimport {Http, URLSearchParams, Response} from '@angular/http';\r\nimport 'rxjs/add/operator/map';\r\nimport 'rxjs/add/operator/catch';\r\n\r\nimport {CONFIG} from '../../environments/environment';\r\nimport {ProductModel} from '../models/product.model';\r\nimport {Error} from \"../error\";\r\n\r\n@Injectable()\r\nexport class DefaultsService {\r\n private defaultsUrl : string;\r\n \r\n constructor(private http: Http){\r\n this.defaultsUrl = CONFIG.api.host + \"/defaults\";\r\n }\r\n \r\n getDefaults(){\r\n return this.http.get(this.defaultsUrl)\r\n .map((res: Response) => res.json())\r\n .catch(this.handleError);\r\n }\r\n \r\n private handleError (error: any) {\r\n // TODO: Log this error to the server.\r\n return Observable.throw(Error.handleError(error) || 'Server error');\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/resources/defaults.ts","import {Injectable} from \"@angular/core\";\r\nimport {Observable} from \"rxjs/Observable\";\r\nimport {Http, URLSearchParams, Response} from \"@angular/http\";\r\nimport \"rxjs/add/operator/map\";\r\nimport \"rxjs/add/operator/catch\";\r\n\r\nimport {CONFIG} from \"../../environments/environment\";\r\nimport {Error} from \"../error\";\r\n\r\n@Injectable()\r\nexport class DesignTemplateCategoryService {\r\n private designTemplateCategoryUrl: string;\r\n \r\n constructor(private http: Http){\r\n this.designTemplateCategoryUrl = CONFIG.api.host + \"/designTemplateCategory\";\r\n }\r\n \r\n getAll(){\r\n return this.http.get(this.designTemplateCategoryUrl)\r\n .map((res: Response) => res.json())\r\n .catch(this.handleError);\r\n }\r\n \r\n private handleError (error: any) {\r\n // TODO: Log this error to the server.\r\n return Observable.throw(Error.handleError(error) || 'Server error');\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/resources/designTemplateCategory.ts","import {Injectable} from \"@angular/core\";\r\nimport {Observable} from \"rxjs/Observable\";\r\nimport {Http, URLSearchParams, Response} from \"@angular/http\";\r\nimport \"rxjs/add/operator/map\";\r\nimport \"rxjs/add/operator/catch\";\r\n\r\nimport {CONFIG} from \"../../environments/environment\";\r\nimport {Error} from \"../error\";\r\n\r\n@Injectable()\r\nexport class DesignTemplateTagsService {\r\n private designTemplateTagsUrl: string;\r\n \r\n constructor(private http: Http){\r\n this.designTemplateTagsUrl = CONFIG.api.host + \"/designTemplateTag\";\r\n }\r\n \r\n get(id?: number){\r\n if(id){\r\n var params = new URLSearchParams();\r\n params.set(\"id\", id.toString());\r\n \r\n return this.http.get(this.designTemplateTagsUrl, {search: params})\r\n .map((res: Response) => res.json())\r\n .catch(this.handleError);\r\n }\r\n else{\r\n return this.getAll();\r\n }\r\n }\r\n \r\n getAll(){\r\n return this.http.get(this.designTemplateTagsUrl)\r\n .map((res: Response) => res.json())\r\n .catch(this.handleError);\r\n }\r\n \r\n \r\n private handleError (error: any) {\r\n // TODO: Log this error to the server.\r\n return Observable.throw(Error.handleError(error) || 'Server error');\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/resources/designTemplateTags.ts","import {Injectable} from \"@angular/core\";\r\nimport {Observable} from \"rxjs/Observable\";\r\nimport {Http, URLSearchParams, Response} from \"@angular/http\";\r\nimport \"rxjs/add/operator/map\";\r\nimport \"rxjs/add/operator/catch\";\r\n\r\nimport {CONFIG} from \"../../environments/environment\";\r\nimport {Error} from \"../error\";\r\n\r\n@Injectable()\r\nexport class DesignColorsService{\r\n private designColorUrl: string;\r\n \r\n constructor(private http: Http){\r\n this.designColorUrl = CONFIG.api.host + \"/DesignColors\";\r\n }\r\n \r\n get(id?: number){\r\n if(id){\r\n var params = new URLSearchParams();\r\n params.set(\"id\", id.toString());\r\n \r\n return this.http.get(this.designColorUrl, {search: params})\r\n .map((res: Response) => res.json())\r\n .catch(this.handleError);\r\n }\r\n else{\r\n return this.getAll();\r\n }\r\n }\r\n \r\n getAll(){\r\n return this.http.get(this.designColorUrl)\r\n .map((res: Response) => res.json())\r\n .catch(this.handleError);\r\n }\r\n \r\n private handleError (error: any) {\r\n // TODO: Log this error to the server.\r\n return Observable.throw(Error.handleError(error) || 'Server error');\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/resources/design_colors.ts","import {Injectable} from \"@angular/core\";\r\nimport {Observable} from \"rxjs/Observable\";\r\nimport {Http, URLSearchParams, Response} from \"@angular/http\";\r\nimport \"rxjs/add/operator/map\";\r\nimport \"rxjs/add/operator/catch\";\r\n\r\nimport {CONFIG} from \"../../environments/environment\";\r\nimport {Error} from \"../error\";\r\n\r\n@Injectable()\r\nexport class FontsService {\r\n private fontsUrl: string;\r\n \r\n constructor(private http: Http){\r\n this.fontsUrl = CONFIG.api.host + \"/fonts\";\r\n }\r\n \r\n get(id?: number){\r\n if(id){\r\n var params = new URLSearchParams();\r\n params.set(\"id\", id.toString());\r\n \r\n return this.http.get(this.fontsUrl, {search: params})\r\n .map((res: Response) => res.json())\r\n .catch(this.handleError);\r\n }\r\n else{\r\n return this.getAll();\r\n }\r\n }\r\n \r\n getAll(){\r\n return this.http.get(this.fontsUrl)\r\n .map((res: Response) => res.json())\r\n .catch(this.handleError);\r\n }\r\n \r\n \r\n private handleError (error: any) {\r\n // TODO: Log this error to the server.\r\n return Observable.throw(Error.handleError(error) || 'Server error');\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/resources/fonts.ts","import {Injectable} from \"@angular/core\";\r\nimport {Observable} from \"rxjs/Observable\";\r\nimport {Http, URLSearchParams, Response} from \"@angular/http\";\r\nimport \"rxjs/add/operator/map\";\r\nimport \"rxjs/add/operator/catch\";\r\n\r\n@Injectable()\r\nexport class TextAlignmentService {\r\n alignments: any = [];\r\n \r\n constructor(private http: Http) {\r\n this.alignments.push({name: \"Left\", id: 0});\r\n //this.alignments.push({name: \"Top\", id: 1});\r\n this.alignments.push({name: \"Center\", id: 2});\r\n this.alignments.push({name: \"Right\", id: 3});\r\n //this.alignments.push({name: \"Bottom\", id: 4});\r\n //this.alignments.push({name: \"Justified\", id: 5});\r\n }\r\n \r\n get() {\r\n return this.alignments;\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/resources/textAlignment.ts","import {Injectable} from \"@angular/core\";\r\n\r\nimport {DesignColorsService} from \"../resources/design_colors\";\r\n//import {CommonProductEventsService} from \"../services/commonProductEvents.service\";\r\nimport {AppEvents} from \"../appEvents\";\r\n\r\n\r\n@Injectable()\r\nexport class DesignColorsProcessorService {\r\n \r\n appEvents: AppEvents = new AppEvents();\r\n \r\n constructor(private designColors: DesignColorsService){} //, private commonProductEvents: CommonProductEventsService){}\r\n \r\n getDesignColors(){\r\n this.designColors.getAll().subscribe((colors) => {\r\n this.appEvents.emitDesignColorsChange(colors);\r\n return colors; \r\n });\r\n }\r\n \r\n getDesignColorsById(id: any){\r\n this.designColors.get(id).subscribe((colors) => {\r\n this.appEvents.emitDesignColorsChange(colors);\r\n return colors; \r\n });\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/services/designColorsProcessor.service.ts","import {Injectable} from '@angular/core';\r\nimport {Observable} from 'rxjs/Observable';\r\n\r\nimport {FontsService} from '../resources/fonts';\r\n//import {CommonProductEventsService} from \"../services/commonProductEvents.service\";\r\nimport {AppEvents} from \"../appEvents\";\r\n\r\ndeclare var WebFont: any;\r\n\r\n@Injectable()\r\nexport class FontProcessorService{\r\n appEvents: AppEvents = new AppEvents();\r\n \r\n constructor(private fontsService: FontsService){} //, private commonProductEvents: CommonProductEventsService){}\r\n \r\n getFonts (){\r\n return Observable.create((observer: any) => {\r\n this.fontsService.get().subscribe((rawFonts) => {\r\n var fonts: any;\r\n //fonts = this.clean(rawFonts);\r\n //this.loadFromGoogle(fonts);\r\n this.appEvents.emitFontsChange(rawFonts);\r\n return observer.next(rawFonts);\r\n });\r\n });\r\n }\r\n \r\n loadFromGoogle(fonts: any) {\r\n var googleStrings: any;\r\n googleStrings = fonts.map((font: any) => {\r\n return font.name;\r\n });\r\n return WebFont.load({\r\n google: {\r\n families: googleStrings\r\n }\r\n });\r\n }\r\n \r\n clean(rawFonts: any) {\r\n var font: any, fonts: any, rawFont: any, i: any, len: any;\r\n fonts = [];\r\n for (i = 0, len = rawFonts.length; i < len; i++) {\r\n rawFont = rawFonts[i];\r\n font = {\r\n id: rawFont.id,\r\n name: rawFont.name,\r\n googleString: rawFont.googleString,\r\n cssString: this.getCssString(rawFont.googleString)\r\n };\r\n if (this.fontDirty(rawFont.googleString) && this.fontHasWeight(rawFont.googleString)) {\r\n font.weight = this.getFontWeight(rawFont.googleString);\r\n }\r\n if (this.fontDirty(rawFont.googleString) && this.fontHasStyle(rawFont.googleString)) {\r\n font.style = 'italic';\r\n }\r\n fonts.push(font);\r\n }\r\n return fonts;\r\n }\r\n \r\n fontDirty(googleString: any) {\r\n return googleString.indexOf(':') !== -1;\r\n }\r\n \r\n getFontWeight(googleString: any) {\r\n return googleString.match(/(.+)\\:(.+)/)[2].match(/(\\d+)/)[1];\r\n }\r\n \r\n getCssString(googleString: any) {\r\n if (this.fontDirty(googleString)) {\r\n return googleString.match(/(.+)\\:(.+)/)[1];\r\n } else {\r\n return googleString;\r\n }\r\n }\r\n \r\n fontHasWeight(googleString: any) {\r\n return googleString.match(/(.+)\\:(.+)/)[2].match(/(\\d+)/) !== null;\r\n }\r\n \r\n fontHasStyle(googleString: any) {\r\n return googleString.match(/(.+)\\:(.+)/)[2].match(/(\\D+)/) !== null;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/services/fontProcessor.service.ts","import {Injectable} from \"@angular/core\";\r\nimport {Observable} from \"rxjs/Observable\";\r\nimport {Http, Headers, Response, RequestOptions} from \"@angular/http\";\r\n\r\n//service\r\nimport {SaveProcessorService} from \"./saveProcessor.service\";\r\nimport {CONFIG} from \"../../environments/environment\";\r\nimport {Error} from \"../error\";\r\n\r\n@Injectable()\r\nexport class PriceProcessorService{\r\n private priceUrl: string;\r\n private headers: Headers;\r\n \r\n constructor(private http: Http, private saveProcessorService: SaveProcessorService){\r\n this.priceUrl = CONFIG.api.host + \"/Price/?userToken=\" + CONFIG.userToken ; // TODO: this user token should be read from cookie??\r\n this.headers = new Headers();\r\n this.headers.append('Content-Type', 'application/json');\r\n }\r\n \r\n perform(args: any) {\r\n let design: any = this.saveProcessorService.createDesignFromDecorationGroup(args.decorationGroup);\r\n // let design = {\r\n // design: {\r\n // productId: args.product.id,\r\n // views: this.cleanViews(args.product.views)\r\n // },\r\n // colorSizes: this.saveProcessorService.getColorSizesFromSelection(args.selection)\r\n // };\r\n \r\n return Observable.create((observer: any) => {\r\n this.XHR(design).subscribe(\r\n (response) =>{\r\n let data = response;\r\n return observer.next(response);\r\n }, \r\n (error) => {\r\n return observer.error(error);\r\n });\r\n });\r\n }\r\n \r\n cleanViews(rawViews: any) {\r\n var rawView: any, view: any, views: any, i: any, len: any;\r\n views = [];\r\n for (i = 0, len = rawViews.length; i < len; i++) {\r\n rawView = rawViews[i];\r\n \r\n if (rawView.designElements.length > 0) {\r\n view = {\r\n id: rawView.id,\r\n locationId: rawView.locationId,\r\n designElements: this.saveProcessorService.cleanDesignElements(rawView.designElements),\r\n selectedColors: this.saveProcessorService.cleanColorSelection(rawView.selectedColors),\r\n };\r\n views.push(view);\r\n }\r\n }\r\n return views;\r\n }\r\n \r\n private XHR(design: any) {\r\n // TODO: test this function\r\n let options = new RequestOptions({headers: this.headers});\r\n return this.http.post( this.priceUrl, JSON.stringify(design), options)\r\n .map((res) => res.json())\r\n .catch(this.handleError);\r\n }\r\n \r\n private handleError (error: any) {\r\n // TODO: Log this error to the server.\r\n return Observable.throw(Error.handleError(error) || 'Server error');\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/services/priceProcessor.service.ts","import {Injectable} from \"@angular/core\";\r\nimport {Observable} from \"rxjs/Observable\";\r\n\r\n// service\r\nimport {S3ProcessorService} from \"./s3Processor.service\";\r\nimport {CONFIG} from \"../../environments/environment\";\r\n\r\ndeclare var _ : any;\r\ndeclare var FB: any;\r\ndeclare var $ : any;\r\n\r\n@Injectable()\r\nexport class ShareHelperService{\r\n \r\n constructor(private s3ProcessorService: S3ProcessorService){}\r\n \r\n share(args: any) {\r\n return Observable.create((observer: any) => {\r\n observer.next(this[args.network]({\r\n shareableImageSource: args.localSource,\r\n shareWindow: args.shareWindow,\r\n designId: args.designId\r\n }));\r\n });\r\n }\r\n \r\n shareUrl(designId: string) {\r\n // Note: rootdesignId should come from rootScope.design.id\r\n return CONFIG.designer.host + \"/share/\" + designId;\r\n }\r\n \r\n findBestView(views: any) {\r\n return _.max(views, function(view: any) {\r\n return view.designElements.length;\r\n });\r\n }\r\n \r\n facebook(args: any) {\r\n var queryStr: any, shareRoot: any;\r\n shareRoot = \"//facebook.com/sharer/sharer.php?\";\r\n queryStr = $.param({\r\n u: this.shareUrl(args.designId),\r\n });\r\n return args.shareWindow.location.replace(shareRoot + queryStr);\r\n }\r\n \r\n twitter(args: any) {\r\n // Note: rootdesignId should come from rootScope.design.id\r\n var queryStr: any, shareRoot: any;\r\n shareRoot = \"//twitter.com/share?\";\r\n queryStr = $.param({\r\n url: this.shareUrl(args.designId),\r\n text: \"check out this design built with the @Entripy design studio: \"\r\n });\r\n return args.shareWindow.location.replace(shareRoot + queryStr);\r\n }\r\n \r\n pinterest(args: any) {\r\n var queryStr: any, shareRoot: any;\r\n shareRoot = \"//www.pinterest.com/pin/create/button/?\";\r\n queryStr = $.param({\r\n url: this.shareUrl(args.designId),\r\n media: args.shareableImageSource,\r\n description: \"Check out this design built with the Entripy Design Studio!\"\r\n });\r\n return args.shareWindow.location.replace(shareRoot + queryStr);\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/services/shareHelper.service.ts","import {Injectable} from '@angular/core';\r\nimport {Observable} from 'rxjs/Observable';\r\nimport {Http, URLSearchParams, Response} from '@angular/http';\r\nimport 'rxjs/add/operator/map';\r\nimport 'rxjs/add/operator/catch';\r\n\r\nimport {CONFIG} from '../../environments/environment';\r\nimport {ProductModel} from '../models/product.model';\r\nimport {Error} from \"../error\";\r\n\r\n@Injectable()\r\nexport class GuidService {\r\n private guidUrl : string;\r\n \r\n constructor(private http: Http){\r\n this.guidUrl = CONFIG.api.host + \"/guid\";\r\n }\r\n \r\n getNewGuid(){\r\n return this.http.get(this.guidUrl)\r\n .map((res: Response) => res.json())\r\n .catch(this.handleError);\r\n }\r\n \r\n private handleError (error: any) {\r\n // TODO: Log this error to the server.\r\n return Observable.throw(Error.handleError(error) || 'Server error');\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/resources/guid.ts","function webpackEmptyContext(req) {\n\tthrow new Error(\"Cannot find module '\" + req + \"'.\");\n}\nwebpackEmptyContext.keys = function() { return []; };\nwebpackEmptyContext.resolve = webpackEmptyContext;\nmodule.exports = webpackEmptyContext;\nwebpackEmptyContext.id = 603;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src async\n// module id = 603\n// module chunks = 1","import { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\n\r\nimport { AppModule } from './app/app.module';\r\nimport { CONFIG } from './environments/environment';\r\n\r\nenableProdMode();\r\nplatformBrowserDynamic().bootstrapModule(AppModule);\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/main.ts","import {Injectable} from \"@angular/core\";\r\nimport {Observable} from \"rxjs/Observable\";\r\n\r\nimport {DesignsService} from \"../resources/designs\";\r\nimport {SelectedDesignColorsService} from \"../services/selectedDesignColors.service\";\r\ndeclare var _ : any; \r\n\r\n@Injectable()\r\nexport class ElementPositionHelperService {\r\n constructor(){}\r\n \r\n getElementPosition(designElement:any, elementTop: any, elementLeft: any, elementWidth:any, elementHeight: any,\r\n artboardWidth: any, artboardHeight: any) {\r\n let position = JSON.parse(JSON.stringify(designElement.position));\r\n let angle = Number(designElement.rotationAngle);\r\n\r\n // position top and left are required for text resize and they are in px\r\n position.top = elementTop;\r\n position.left = elementLeft;\r\n position.bottom = position.top + elementHeight;\r\n position.right = position.left + elementWidth;\r\n\r\n if(angle != 0) {\r\n if(angle < 0) {\r\n angle = 180 + angle;\r\n }\r\n let radians = angle * Math.PI / 180;\r\n let cos = Math.cos(radians);\r\n let sine = Math.sin(radians);\r\n\r\n cos = (cos < 0) ? cos * -1 : cos;\r\n sine = (sine < 0) ? sine * -1 : sine;\r\n\r\n position.top = elementTop;\r\n position.left = elementLeft;\r\n\r\n let x = sine * elementHeight;\r\n let x1 = cos * elementWidth;\r\n let y = cos * elementHeight;\r\n let y1 = sine * elementWidth;\r\n\r\n position.right = position.left + x + x1;\r\n position.bottom = position.top + y + y1;\r\n\r\n // don't convert them into percent\r\n // position.top = position.top * 100 / artboardHeight;\r\n // position.bottom = position.bottom * 100 / artboardHeight;\r\n // position.left = position.left * 100 / artboardWidth;\r\n // position.right = position.right * 100 / artboardWidth;\r\n }\r\n return position;\r\n }\r\n\r\n getRotatedElementPosition(designElement: any, currentPosition: any, artboardWidth: any, artboardHeight: any, resultInPercent: boolean = true) {\r\n let position = JSON.parse(JSON.stringify(designElement.position));\r\n let angle = Number(designElement.rotationAngle);\r\n\r\n if(!position.bottom) {\r\n position.bottom = position.top + designElement.size.height;\r\n }\r\n if(!position.right) {\r\n position.right = position.left + designElement.size.width;\r\n }\r\n\r\n if(angle != 0) {\r\n if(angle < 0) {\r\n angle = 180 + angle;\r\n }\r\n let radians = angle * Math.PI / 180;\r\n let cos = Math.cos(radians);\r\n let sine = Math.sin(radians);\r\n\r\n cos = (cos < 0) ? cos * -1 : cos;\r\n sine = (sine < 0) ? sine * -1 : sine;\r\n\r\n position.top = currentPosition.top;\r\n position.left = currentPosition.left;\r\n\r\n let x = sine * designElement.$el.height();\r\n let x1 = cos * designElement.$el.width();\r\n let y = cos * designElement.$el.height();\r\n let y1 = sine * designElement.$el.width();\r\n\r\n position.right = position.left + x + x1;\r\n position.bottom = position.top + y + y1;\r\n\r\n // convert them into percent\r\n position.top = position.top * 100 / artboardHeight;\r\n position.bottom = position.bottom * 100 / artboardHeight;\r\n position.left = position.left * 100 / artboardWidth;\r\n position.right = position.right * 100 / artboardWidth;\r\n }\r\n \r\n if(resultInPercent) {\r\n return position;\r\n }\r\n else {\r\n position.top = position.top * artboardHeight / 100;\r\n position.bottom = position.bottom * artboardHeight / 100;\r\n position.left = position.left * artboardWidth / 100;\r\n position.right = position.right * artboardWidth / 100;\r\n return position;\r\n }\r\n }\r\n\r\n assignRotationPosition(designElement: any, currentPosition: any) {\r\n if(designElement) {\r\n if(!designElement.rotationPosition.position) {\r\n designElement.rotationPosition.position = {\r\n top: 0,\r\n left: 0\r\n };\r\n } \r\n\r\n designElement.rotationPosition.position.top = currentPosition.top;\r\n designElement.rotationPosition.position.left = currentPosition.left;\r\n designElement.rotationPosition.isUpdated = true;\r\n }\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/services/elementPositionHelper.service.ts","import { Component, OnInit, OnDestroy, } from '@angular/core';\r\nimport {Observable} from 'rxjs/Observable';\r\nimport \"rxjs/Rx\";\r\n\r\n// services\r\nimport {SignedUrlsService} from \"./resources/signed_urls\";\r\nimport {ProductsService} from './resources/products';\r\nimport {PriceService} from \"./resources/price\";\r\nimport {DesignsService} from './resources/designs';\r\nimport {DesignTemplateService} from './resources/designTemplates';\r\nimport {DesignTemplateCategoryService} from './resources/designTemplateCategory';\r\nimport {DesignTemplateTagsService} from './resources/designTemplateTags';\r\nimport {FontsService} from './resources/fonts';\r\nimport {ClipartCategoryService} from './resources/clipartCategory';\r\nimport {ClipartSearchTermsService} from './resources/clipartSearchTerms';\r\nimport {SharedDesignsService} from \"./resources/sharedDesigns\";\r\nimport {DesignColorsService} from \"./resources/design_colors\";\r\nimport {ClipartSvgsService} from \"./resources/clipart_svgs\";\r\nimport {ClipartTagsService} from \"./resources/clipart_tags\";\r\nimport {ClipartIconsService} from \"./resources/clipartIcons\";\r\nimport {ClipartIconService} from \"./resources/clipartIcon\";\r\nimport {ProofedArtworkService} from \"./resources/proofedArtwork\";\r\nimport {TextShapesService} from \"./resources/textShapes\";\r\nimport {TextEffectsService} from \"./resources/textEffects\";\r\nimport {TextBordersService} from \"./resources/textBorders\";\r\nimport {TextRenderService} from \"./resources/textRender\";\r\nimport {ImageRenderService} from \"./resources/imageRender\";\r\nimport {ClipartContentService} from \"./resources/clipartContent\";\r\nimport {RemoveBackgroundService} from \"./resources/removeBackground\";\r\nimport {TextAlignmentService} from \"./resources/textAlignment\";\r\nimport {CustomerService} from \"./resources/customer.service\";\r\nimport {DesignHelperService} from \"./services/designHelper.service\";\r\nimport {ProductColorSelectionService} from \"./services/productColorSelection.service\";\r\nimport { ImageHelperService } from \"./services/imageHelper.service\";\r\nimport { DefaultsService } from \"./resources/defaults\";\r\nimport { GuidService } from \"./resources/guid\";\r\nimport { CategoryService } from \"./resources/category\";\r\nimport {PersonalizationSizeService} from \"./resources/personalizationSizes\";\r\nimport { SearchService } from './resources/search';\r\n\r\nimport {S3ProcessorService} from \"./services/s3Processor.service\";\r\nimport {SaveProcessorService} from \"./services/saveProcessor.service\";\r\nimport {CheckoutService} from \"./resources/checkout\";\r\n\r\nimport {DesignColorsProcessorService} from \"./services/designColorsProcessor.service\";\r\nimport {SelectedDesignColorsService} from \"./services/selectedDesignColors.service\";\r\nimport {FontProcessorService} from './services/fontProcessor.service';\r\nimport {LoadDesignHelperService} from \"./services/loadDesignHelper.service\";\r\nimport {PriceProcessorService} from \"./services/priceProcessor.service\";\r\nimport {ProductsHelperService} from \"./services/productsHelper.service\";\r\nimport {ShareHelperService} from \"./services/shareHelper.service\";\r\nimport {ElementPositionHelperService} from \"./services/elementPositionHelper.service\";\r\nimport {SelectedDesignElementsService} from \"./services/selectedDesignElements.service\";\r\nimport {AppStateService} from \"./services/appState.service\";\r\nimport { CreateDesignHelperService } from './services/createDesign.service';\r\nimport { CreateDesignService } from './resources/createDesign';\r\nimport { TextHelperService } from \"./services/textHelper.service\";\r\nimport { DecorationGroupHelperService } from './services/decorationGroupHelper.service';\r\n\r\nimport {CONFIG} from \"../environments/environment\";\r\n\r\ndeclare var $: any;\r\n\r\n@Component({\r\n selector: 'entripy-app',\r\n providers:[\r\n DefaultsService, CategoryService, GuidService,\r\n ProductsService, FontsService, ClipartCategoryService, ClipartSearchTermsService, DesignColorsService, \r\n TextShapesService, TextEffectsService, TextBordersService, TextRenderService, TextAlignmentService, ImageRenderService, RemoveBackgroundService,\r\n ClipartSvgsService, ClipartTagsService, ClipartIconsService, ClipartIconService, ProofedArtworkService, SharedDesignsService, DesignsService, PriceService, SignedUrlsService, DesignHelperService, \r\n ImageHelperService,\r\n S3ProcessorService, FontProcessorService, ProductsHelperService, DesignColorsProcessorService, SelectedDesignColorsService, SaveProcessorService, \r\n PriceProcessorService, LoadDesignHelperService, CheckoutService, ShareHelperService, CustomerService, \r\n ProductColorSelectionService, ClipartContentService, DesignTemplateService, DesignTemplateCategoryService, DesignTemplateTagsService,\r\n ElementPositionHelperService, PersonalizationSizeService, SearchService, SelectedDesignElementsService,\r\n AppStateService, CreateDesignHelperService, CreateDesignService, TextHelperService, DecorationGroupHelperService\r\n ],\r\n template: `\r\n \r\n `,\r\n styleUrls: ['./app.component.css']\r\n})\r\nexport class AppComponent implements OnInit, OnDestroy {\r\n constructor(){}\r\n\r\n ngOnInit() { \r\n console.log(\"appComponent: Initialized\");\r\n this.setUserToken();\r\n }\r\n \r\n setUserToken(){\r\n let inputToken = $('#userToken');\r\n if(inputToken && inputToken.val() !== ''){\r\n CONFIG.userToken = inputToken.val();\r\n }\r\n }\r\n \r\n ngOnDestroy() { } \r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/app.component.ts","import { Injectable } from '@angular/core';\r\nimport { Http } from '@angular/http';\r\nimport {CONFIG} from \"environments/environment\";\r\n\r\n\r\n@Injectable()\r\nexport class AppConfigService {\r\n private appConfig;\r\n\r\n constructor(private http: Http) { }\r\n\r\n loadAppConfig() {\r\n var baseURL = window.location.protocol + '//' + window.location.host;\r\n return this.http.get(baseURL + '/DSConfig.json')\r\n .toPromise()\r\n .then(data => {\r\n this.appConfig = data.json();\r\n this.updateConfig(this.appConfig);\r\n });\r\n }\r\n\r\n updateConfig(config: any) {\r\n CONFIG.production = config.production;\r\n CONFIG.defaultProductId = config.defaultProductId;\r\n CONFIG.header.height = config.header.height;\r\n CONFIG.designElement.fontSize = config.designElement.fontSize;\r\n CONFIG.designElement.padding = config.designElement.padding;\r\n CONFIG.dpi = config.dpi;\r\n CONFIG.clipart.limit = config.clipart.limit;\r\n CONFIG.maxZoom = config.maxZoom;\r\n CONFIG.pixelCount = config.pixelCount;\r\n CONFIG.userToken = config.userToken;\r\n\r\n CONFIG.proovedArtworkHost = config.proovedArtworkHost;\r\n CONFIG.designer.host = config.designer.host;\r\n CONFIG.designer.cartUrl = config.designer.cartUrl;\r\n CONFIG.api.host = config.api.host;\r\n CONFIG.api.images = config.api.images;\r\n\r\n CONFIG.s3Bucket = config.s3Bucket;\r\n CONFIG.s3Credentials = config.s3Credentials;\r\n CONFIG.imagesHost = config.imagesHost;\r\n CONFIG.imagesOnEntripy = config.imagesOnEntripy;\r\n }\r\n\r\n getConfig() {\r\n return this.appConfig;\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/app.config.service.ts","import { BrowserModule } from '@angular/platform-browser';\r\nimport { NgModule, APP_INITIALIZER } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { HttpModule } from '@angular/http';\r\n// import { SwiperModule } from 'angular2-useful-swiper';\r\n\r\nimport {AppRoutingModule} from './app.routes';\r\nimport { AppComponent } from './app.component';\r\n\r\nimport {CategoryMatchPipe} from \"./pipes/categoryMatch.pipe\";\r\nimport {FontMatchPipe} from \"./pipes/fontMatch.pipe\";\r\nimport {PersonalizationSizeMatchPipe} from \"./pipes/personalizationSizeMatch.pipe\";\r\nimport {ProductSizeMatchPipe} from \"./pipes/productSizeMatch.pipe\";\r\nimport {ProductColorsMatchPipe} from \"./pipes/productColors.pipe\";\r\nimport {DesignTypeMatchPipe} from \"./pipes/designTypeMatch.pipe\";\r\nimport {ProductMatchPipe} from \"./pipes/productMatch.pipe\";\r\n\r\nimport {AppHeightDirective} from \"./directives/AppHeight.directive\";\r\nimport {ClipartColorMapDirective} from \"./directives/clipartColor.directive\";\r\nimport {DraggableDirective} from \"./directives/draggable.directive\";\r\nimport {DropdownDirective} from \"./directives/dropdown.directive\";\r\nimport {DroppableDirective} from \"./directives/droppable.directive\";\r\nimport {EditableAreaPositionDirective} from \"./directives/editableAreaPosition.directive\";\r\nimport {EmptyTextPreventerDirective} from \"./directives/emptyTextPreventer.directive\";\r\nimport {LimitInputDirective} from \"./directives/limitInput.directive\";\r\nimport {ImageElementMapDirective} from \"./directives/imageElementMap.directive\";\r\nimport {TextImageElementDirective} from \"./directives/textImageElement.directive\";\r\nimport {ImageUploadDirective} from \"./directives/imageUpload.directive\";\r\nimport {PlaceResizeDirective} from \"./directives/placeResize.directive\";\r\nimport {PopupHandlerDirective} from \"./directives/popupHandler.directive\";\r\nimport {PositionElementDirective} from \"./directives/positionElement.directive\";\r\nimport {ResizableDirective} from \"./directives/resizable.directive\";\r\nimport {ScreenshotCreatorDirective} from \"./directives/screenshotCreator.directive\";\r\nimport {TextElementDirective} from \"./directives/textElement.directive\";\r\nimport {TextResizableDirective} from \"./directives/textResizable.directive\";\r\nimport {SvgTextElementDirective} from \"./directives/svgTextElement.directive\";\r\nimport {SvgTextResizableDirective} from \"./directives/svgTextResizable.directive\";\r\nimport {ZeroQuantityPreventerDirective} from \"./directives/zeroQuantityPreventer.directive\";\r\nimport {RotateElementDirective} from \"./directives/rotateElement.directive\";\r\nimport {SpyDirective} from \"./directives/elementSpy.directive\";\r\nimport {DisplaySizeDirective} from \"./directives/displaySize.directive\";\r\nimport {ZoomSliderDirective} from \"./directives/zoomSlider.directive\";\r\nimport { SelectableDirective } from './directives/selectable.directive';\r\nimport {MultiSelectDragDirective} from \"./directives/multiSelectDrag.directive\";\r\nimport {MultiSelectResizeDirective} from \"./directives/multiSelectResize.directive\";\r\n\r\nimport {HeaderComponent} from \"./components/desktop/common/header.component\";\r\nimport {ChangeZIndexComponent} from \"./components/desktop/common/changeZIndex.component\";\r\nimport {DuplicateComponent} from \"./components/desktop/common/duplicate.component\";\r\nimport {SliderComponent} from \"./components/desktop/common/slider.component\";\r\nimport {ConfirmationComponent} from \"./components/desktop/common/confirmation.popup.component\";\r\nimport {ColorSelectionComponent} from \"./components/desktop/common/colorSelection.component\";\r\nimport {YourItemComponent} from \"./components/desktop/add/yourItem.component\";\r\nimport {ChangeItemComponent} from \"./components/desktop/add/changeItem.component\";\r\nimport {AddImageComponent} from \"./components/desktop/add/addImage.component\";\r\nimport {AddClipartComponent} from \"./components/desktop/add/addClipart.component\";\r\nimport {AddProofedArtworkComponent} from \"./components/desktop/add/addProovedArtwork.component\";\r\nimport {AddTextComponent} from \"./components/desktop/add/addText.component\";\r\nimport {YourQuoteComponent} from \"./components/desktop/add/yourQuote.component\";\r\nimport {YourDesignsComponent} from \"./components/desktop/add/yourDesigns.component\";\r\nimport {PreviewYourDesignComponent} from \"./components/desktop/add/previewYourDesign.component\";\r\nimport {EditImageAndClipartComponent} from \"./components/desktop/add/editImageAndClipart.component\";\r\nimport {ShareComponent} from \"./components/desktop/share/share.component\";\r\nimport {DesignViewComponent} from \"./components/desktop/design/designView.component\";\r\nimport {SaveDesignComponent} from \"./components/desktop/design/saveDesign.component\";\r\nimport {DesignTemplatesComponent} from \"./components/desktop/add/designTemplates.component\";\r\nimport {AddTemplateComponent} from \"./components/desktop/add/addTemplate.component\";\r\nimport {PersonalizationComponent} from \"./components/desktop/add/personalization.component\";\r\nimport {MobilePersonalizationComponent} from \"./components/mobile/add/personalization.component\";\r\nimport {AddProductComponent} from \"./components/desktop/add/addProduct.component\";\r\nimport {AddOrderNotesComponent} from \"./components/desktop/add/addOrderNotes.component\";\r\n\r\nimport {MobileHeaderComponent} from \"./components/mobile/common/header.component\";\r\nimport {MobileChangeZIndexComponent} from \"./components/mobile/common/changeZIndex.component\";\r\nimport {MobileDuplicateComponent} from \"./components/mobile/common/duplicate.component\";\r\nimport {MobileSliderComponent} from \"./components/mobile/common/slider.component\";\r\nimport {MobileConfirmationComponent} from \"./components/mobile/common/confirmation.popup.component\";\r\nimport {MobileColorSelectionComponent} from \"./components/mobile/common/colorSelection.component\";\r\nimport {MobileYourItemComponent} from \"./components/mobile/add/yourItem.component\";\r\nimport {MobileChangeItemComponent} from \"./components/mobile/add/changeItem.component\";\r\nimport {MobileAddImageComponent} from \"./components/mobile/add/addImage.component\";\r\nimport {MobileAddClipartComponent} from \"./components/mobile/add/addClipart.component\";\r\nimport {MobileAddProofedArtworkComponent} from \"./components/mobile/add/addProovedArtwork.component\";\r\nimport {MobileAddTextComponent} from \"./components/mobile/add/addText.component\";\r\nimport {MobileYourQuoteComponent} from \"./components/mobile/add/yourQuote.component\";\r\nimport {MobileYourDesignsComponent} from \"./components/mobile/add/yourDesigns.component\";\r\nimport {MobilePreviewYourDesignComponent} from \"./components/mobile/add/previewYourDesign.component\";\r\nimport {MobileEditImageAndClipartComponent} from \"./components/mobile/add/editImageAndClipart.component\";\r\nimport {MobileShareComponent} from \"./components/mobile/share/share.component\";\r\nimport {MobileDesignViewComponent} from \"./components/mobile/design/designView.component\";\r\nimport {MobileSaveDesignComponent} from \"./components/mobile/design/saveDesign.component\";\r\nimport {MobileAddTemplateComponent} from \"./components/mobile/add/addTemplate.component\";\r\nimport {MobileAddProductComponent} from \"./components/mobile/add/addProduct.component\";\r\n\r\nimport {ClipartComponent} from \"./components/add/clipart.component\";\r\nimport {ChooseDesignNameComponent} from \"./components/choose/chooseDesignName.component\";\r\nimport {ChooseSizeComponent} from \"./components/choose/chooseSize.component\";\r\nimport {ColorsComponent} from \"./components/color/colors.component\";\r\nimport {GuidelineComponent} from \"./components/product/guideline.component\";\r\nimport {ProductViewLoadedComponent} from \"./components/product/productViewLoaded.component\";\r\nimport {SavingComponent} from \"./components/product/saving.component\";\r\n\r\n\r\nimport {MainComponent} from \"./components/main.component\";\r\nimport {SpinnerComponent} from \"./components/common/spinner.component\";\r\nimport {SharedDesignComponent} from \"./components/share/sharedDesign.component\";\r\nimport {ColorDetectionComponent} from './components/test/colorDetection.component';\r\nimport {ToggleSwitchComponent} from './components/common/toggleSwitch.component';\r\n\r\nimport { AppConfigService } from './app.config.service';\r\n\r\nexport function appInitializerFn (appConfig: AppConfigService) {\r\n return () => {\r\n return appConfig.loadAppConfig();\r\n };\r\n};\r\n\r\n@NgModule({\r\n declarations: [\r\n AppComponent, \r\n CategoryMatchPipe, DesignTypeMatchPipe, ProductMatchPipe, PersonalizationSizeMatchPipe, FontMatchPipe, ProductSizeMatchPipe,\r\n ProductColorsMatchPipe, \r\n ImageUploadDirective, DropdownDirective, EmptyTextPreventerDirective, ZeroQuantityPreventerDirective, \r\n LimitInputDirective, DroppableDirective,\r\n PopupHandlerDirective, EditableAreaPositionDirective, DraggableDirective, ClipartColorMapDirective,\r\n PlaceResizeDirective, ScreenshotCreatorDirective, ResizableDirective, ImageElementMapDirective, TextImageElementDirective,\r\n PositionElementDirective, SvgTextResizableDirective, SvgTextElementDirective, TextResizableDirective, TextElementDirective,\r\n RotateElementDirective, SpyDirective, DisplaySizeDirective, ZoomSliderDirective, SelectableDirective, MultiSelectDragDirective,\r\n MultiSelectResizeDirective,\r\n \r\n ChangeZIndexComponent, DuplicateComponent, SliderComponent, ConfirmationComponent, \r\n HeaderComponent, YourItemComponent, ChangeItemComponent, AddImageComponent, AddClipartComponent, AddProofedArtworkComponent, \r\n AddTextComponent, YourQuoteComponent, YourDesignsComponent, ShareComponent, PreviewYourDesignComponent,\r\n DesignViewComponent, ColorSelectionComponent, EditImageAndClipartComponent, SaveDesignComponent, \r\n DesignTemplatesComponent, AddTemplateComponent, PersonalizationComponent, AddProductComponent, AddOrderNotesComponent,\r\n \r\n MobileChangeZIndexComponent, MobileDuplicateComponent, MobileSliderComponent,\r\n MobileHeaderComponent, MobileYourItemComponent, MobileChangeItemComponent, MobileAddImageComponent, MobileAddClipartComponent, MobileAddProofedArtworkComponent,\r\n MobileAddTextComponent, MobileYourQuoteComponent, MobileYourDesignsComponent, MobileShareComponent, MobilePreviewYourDesignComponent,\r\n MobileDesignViewComponent, MobileColorSelectionComponent, MobileEditImageAndClipartComponent, MobileSaveDesignComponent,\r\n MobileAddTemplateComponent, MobileConfirmationComponent, MobileAddProductComponent, MobilePersonalizationComponent, \r\n \r\n SpinnerComponent, ClipartComponent, ColorsComponent, ToggleSwitchComponent, \r\n SharedDesignComponent, ColorDetectionComponent, \r\n AppHeightDirective, SavingComponent, ChooseSizeComponent, GuidelineComponent, ProductViewLoadedComponent,\r\n MainComponent,\r\n ],\r\n imports: [\r\n BrowserModule,\r\n AppRoutingModule, \r\n FormsModule,\r\n HttpModule,\r\n //SwiperModule\r\n ],\r\n providers: [\r\n AppConfigService,\r\n {\r\n provide: APP_INITIALIZER,\r\n useFactory: appInitializerFn,\r\n multi: true,\r\n deps: [AppConfigService]\r\n }\r\n ],\r\n bootstrap: [AppComponent]\r\n})\r\nexport class AppModule { }\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/app.module.ts","// - Routes instead of RouteConfig\r\n// - RouterModule instead of provideRoutes\r\nimport { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\n\r\nimport { ColorDetectionComponent } from './components/test/colorDetection.component';\r\nimport { SharedDesignComponent } from './components/share/sharedDesign.component';\r\nimport { MainComponent } from './components/main.component';\r\n\r\nconst appRoutes: Routes = [\r\n {\r\n path: 'designer/share/:id',\r\n component: SharedDesignComponent,\r\n },\r\n {\r\n path: 'designer/test/colors',\r\n component: ColorDetectionComponent,\r\n },\r\n {\r\n path: 'designer/product/:id',\r\n component: MainComponent,\r\n },\r\n {\r\n path: 'designer/order/:id',\r\n component: MainComponent,\r\n },\r\n {\r\n path: 'designer/viewTemplate/:id',\r\n component: MainComponent, \r\n },\r\n {\r\n path: 'designer/template/:id',\r\n component: MainComponent, \r\n },\r\n {\r\n path: 'designer/createDesign/:guid',\r\n component: MainComponent, \r\n },\r\n {\r\n path: 'designer/:id',\r\n component: MainComponent,\r\n },\r\n {\r\n path: 'designer',\r\n component: MainComponent,\r\n },\r\n];\r\n\r\n@NgModule({\r\n imports: [\r\n RouterModule.forRoot(appRoutes)\r\n ],\r\n exports: [\r\n RouterModule\r\n ]\r\n})\r\nexport class AppRoutingModule {}\n\n\n// WEBPACK FOOTER //\n// ./src/app/app.routes.ts","import {Component, OnInit} from \"@angular/core\";\r\nimport {ClipartIconsService} from \"../../resources/clipartIcons\";\r\nimport {ClipartCategoryService} from \"../../resources/clipartCategory\";\r\nimport {ClipartSearchTermsService} from \"../../resources/clipartSearchTerms\";\r\nimport {S3ProcessorService} from \"../../services/s3Processor.service\";\r\nimport {AppEvents} from \"../../appEvents\";\r\nimport {CONFIG} from \"../../../environments/environment\";\r\n\r\ndeclare var _: any;\r\ndeclare var $: any;\r\n\r\n@Component(\r\n {\r\n selector: \"ecc-clipart\", \r\n //templateUrl: \"/content/designer/app/scripts/components/add/clipart.component.html\",\r\n template:\r\n `\r\n
\r\n
\r\n

Search Clipart

\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n {{category.name}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{searchTerm.name}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n No results found. Try searching something else.\r\n
\r\n
\r\n Load More\r\n
\r\n
\r\n \r\n
\r\n\r\n \r\n
\r\n `,\r\n }\r\n)\r\nexport class ClipartComponent implements OnInit {\r\n \r\n selectedSvg: any = null;\r\n svgsInView: boolean = false;\r\n isSearching: boolean = false;\r\n svgs: any = [];\r\n searchTerms: any = [];\r\n clipartCategories: any = [];\r\n showCategory: boolean = true;\r\n showTerms: boolean = false;\r\n appEvents: AppEvents = new AppEvents();\r\n searchText: string;\r\n offset: number = 0;\r\n searchTimeout: any;\r\n runSpinner: boolean = false;\r\n loadMore: boolean = false;\r\n \r\n constructor(private clipartService: ClipartIconsService, private s3ProcessorService: S3ProcessorService,\r\n private clipartCategoryService: ClipartCategoryService, private clipartSearchTermsService: ClipartSearchTermsService)\r\n {} \r\n \r\n ngOnInit() {\r\n this.reset();\r\n\r\n // load clipart category\r\n this.loadClipartCategory();\r\n }\r\n\r\n searchTextUpdated() {\r\n this.svgs = [];\r\n if (this.searchTimeout !== void 0) {\r\n clearTimeout(this.searchTimeout);\r\n }\r\n this.searchTimeout = setTimeout((t: any) => {\r\n this.offset = 0;\r\n this.runSpinner = true;\r\n this.searchTimeout = void 0;\r\n this.getClipartIcons();\r\n }, 1000);\r\n }\r\n\r\n back() {\r\n if(this.svgsInView) {\r\n this.svgsInView = false;\r\n this.searchText = \"\";\r\n this.svgs = [];\r\n }\r\n else if(this.showTerms) {\r\n this.showTerms = false;\r\n this.showCategory = true;\r\n this.searchTerms = [];\r\n }\r\n }\r\n\r\n selectCategory(category: any) {\r\n if(category) {\r\n this.showTerms = true;\r\n this.showCategory = false;\r\n this.clipartSearchTermsService.get(category.id).subscribe((searchTerms) => {\r\n $.merge(this.searchTerms, searchTerms);\r\n },\r\n (error) => {\r\n this.showTerms = false;\r\n this.showCategory = true;\r\n });\r\n }\r\n }\r\n\r\n selectSearchTerm(searchTerm) {\r\n if(searchTerm && searchTerm.searchTerms) {\r\n this.searchText = searchTerm.searchTerms;\r\n this.searchTextUpdated();\r\n } \r\n }\r\n\r\n loadClipartCategory() {\r\n this.clipartCategoryService.getAll().subscribe((categories) => {\r\n $.merge(this.clipartCategories, categories);\r\n },\r\n (error) => {\r\n });\r\n }\r\n\r\n loadMoreIcons() {\r\n this.runSpinner = true;\r\n this.clipartService.get(this.searchText.trim(), this.offset).subscribe((svgs) => {\r\n this.offset += CONFIG.clipart.limit;\r\n \r\n if(svgs.length < CONFIG.clipart.limit) {\r\n this.loadMore = false;\r\n }\r\n else {\r\n this.loadMore = true;\r\n }\r\n\r\n $.merge(this.svgs, svgs);\r\n this.runSpinner = false;\r\n this.svgsInView = true;\r\n },\r\n (error) => {\r\n this.loadMore = false;\r\n this.runSpinner = false;\r\n });\r\n }\r\n\r\n getClipartIcons() {\r\n if(this.searchText) {\r\n this.clipartService.get(this.searchText.trim(), this.offset).subscribe((svgs) => {\r\n this.offset += CONFIG.clipart.limit;\r\n this.svgs = svgs;\r\n\r\n if(svgs.length < CONFIG.clipart.limit) {\r\n this.loadMore = false;\r\n }\r\n else {\r\n this.loadMore = true;\r\n }\r\n\r\n this.runSpinner = false;\r\n this.svgsInView = true;\r\n });\r\n }\r\n else {\r\n this.reset();\r\n }\r\n }\r\n\r\n addClipart(selectedSvg: any){\r\n this.s3ProcessorService.uploadClipart(selectedSvg.icon_url)\r\n .subscribe((url: any) => {\r\n selectedSvg.icon_url = url;\r\n this.appEvents.emitAddClipartChange(selectedSvg);\r\n this.appEvents.emitCloseModalChange(\"close\");\r\n });\r\n }\r\n \r\n selectSvg (svg: any) {\r\n this.selectedSvg = svg;\r\n return false;\r\n }\r\n\r\n reset () {\r\n this.svgs = [];\r\n this.svgsInView = false;\r\n this.selectedSvg = null;\r\n this.isSearching = false;\r\n this.runSpinner = false;\r\n this.loadMore = false;\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/add/clipart.component.ts","import {Component, Input, OnDestroy} from \"@angular/core\";\r\nimport {BaseClass} from \"../base.class\";\r\nimport {AppEvents} from \"../../appEvents\";\r\nimport {DesignHelperService} from \"../../services/designHelper.service\";\r\n\r\ndeclare var _ : any;\r\n\r\n@Component(\r\n {\r\n selector: \"ecc-choose-size\",\r\n providers: [DesignHelperService],\r\n template:\r\n `\r\n
\r\n
\r\n
\r\n
{{size.name}}
\r\n \r\n
\r\n
\r\n
\r\n `,\r\n }\r\n)\r\nexport class ChooseSizeComponent extends BaseClass {\r\n \r\n @Input() set product(_product: any) {\r\n if(_product) {\r\n this._product = _product;\r\n }\r\n } \r\n \r\n @Input() set selectedColor(_color: any) {\r\n if(_color) {\r\n this._selectedColor = _color;\r\n }\r\n }\r\n @Input() set selection(_selection: any){\r\n if(_selection){\r\n this._selection = _selection;\r\n this._colorSelection = _selection[0];\r\n }\r\n }\r\n \r\n @Input() totalProductCount: number; //scope.totalProductCount\r\n \r\n appEvents: AppEvents = new AppEvents();\r\n _selectedColor: any;\r\n _product: any;\r\n _selection: any;\r\n _colorSelection: any;\r\n \r\n constructor(private designsHelper: DesignHelperService) { \r\n super();\r\n }\r\n \r\n setQuantity(size: any, quantity: any) {\r\n let count = this.designsHelper.totalProductCountFromSelection(this._selection);\r\n if(count === 0) {\r\n size.quantity = count = 1;\r\n }\r\n this.appEvents.emitTotalProductCountChange(count);\r\n }\r\n \r\n isSizeAvailable(size : any) {\r\n if(this._selectedColor) {\r\n return _.contains(this._selectedColor.availableSizes, size.id);\r\n }\r\n }\r\n \r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/choose/chooseSize.component.ts","import {Component, Input, Output, EventEmitter} from \"@angular/core\";\r\n\r\nimport {BaseClass} from \"../base.class\";\r\n//import {CommonProductEventsService} from \"../../services/commonProductEvents.service\";\r\nimport {AppEvents} from \"../../appEvents\";\r\n\r\n@Component(\r\n {\r\n selector: \"ecc-colors\",\r\n template:\r\n `\r\n
\r\n
Colour
\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n `\r\n }\r\n)\r\nexport class ColorsComponent extends BaseClass {\r\n \r\n @Input() set product(_product: any){\r\n if(_product){\r\n this.colors = _product.colors;\r\n }\r\n }\r\n //@Output() setColor: EventEmitter = new EventEmitter(); // set to $scope.setColor()\r\n \r\n colors: any;\r\n appEvents: AppEvents = new AppEvents();\r\n \r\n constructor(){ //private commonProductEvents: CommonProductEventsService) {\r\n super();\r\n }\r\n \r\n onSetColor(color: any) {\r\n this.appEvents.emitColorChange(color);\r\n return false;\r\n } \r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/color/colors.component.ts","import {Component, Input, OnInit, OnDestroy} from '@angular/core';\r\nimport {CONFIG} from \"../../../environments/environment\";\r\n\r\n@Component({\r\n selector: 'ecc-spinner',\r\n styles:[`\r\n .spinner {\r\n text-align: center;\r\n height: 100%;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n }\r\n `],\r\n template : \r\n `\r\n
\r\n \r\n
\r\n `,\r\n})\r\nexport class SpinnerComponent { \r\n private runSpinner: boolean = false;\r\n private imagesPath: string;\r\n\r\n @Input() set isRunning(isRunning: boolean) {\r\n this.runSpinner = isRunning;\r\n }\r\n\r\n ngOnInit() {\r\n this.imagesPath = CONFIG.imagesHost;\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/common/spinner.component.ts","import {Component, EventEmitter, Output, Input} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ecc-toggle-switch',\r\n styles:[`\r\n /* The toggle-switch - the box around the slider */\r\n .toggle-switch {\r\n position: relative;\r\n display: inline-block;\r\n width: 42px;\r\n height: 26px;\r\n }\r\n \r\n /* Hide default HTML checkbox */\r\n .toggle-switch input {\r\n opacity: 0;\r\n width: 0;\r\n height: 0;\r\n }\r\n \r\n /* The toggle-slider */\r\n .toggle-slider {\r\n position: absolute;\r\n cursor: pointer;\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n bottom: 0;\r\n background-color: #ccc;\r\n -webkit-transition: .4s;\r\n transition: .4s;\r\n border-radius: 34px;\r\n }\r\n \r\n .toggle-slider:before {\r\n position: absolute;\r\n content: \"\";\r\n height: 18px;\r\n width: 18px;\r\n left: 4px;\r\n bottom: 4px;\r\n background-color: white;\r\n -webkit-transition: .4s;\r\n transition: .4s;\r\n border-radius: 34px;\r\n }\r\n \r\n input:checked + .toggle-slider {\r\n background-color: #2196F3;\r\n }\r\n \r\n input:focus + .toggle-slider {\r\n box-shadow: 0 0 1px #2196F3;\r\n }\r\n \r\n input:checked + .toggle-slider:before {\r\n -webkit-transform: translateX(17px);\r\n -ms-transform: translateX(17px);\r\n transform: translateX(17px);\r\n }\r\n `],\r\n template : \r\n `\r\n
\r\n
\r\n \r\n
\r\n
\r\n {{this.label}}\r\n
\r\n
\r\n `,\r\n})\r\nexport class ToggleSwitchComponent { \r\n \r\n @Input() label: any;\r\n @Output() toggleSwitched: EventEmitter = new EventEmitter();\r\n\r\n toggleChecked: boolean = false;\r\n\r\n toggleSwitchClicked() {\r\n this.toggleChecked = !this.toggleChecked;\r\n this.toggleSwitched.emit(this.toggleChecked);\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/common/toggleSwitch.component.ts","import { Component, Input, Output, EventEmitter, OnInit } from \"@angular/core\";\r\n\r\nimport { BaseClass } from \"../../base.class\";\r\nimport { AppEvents } from \"../../../appEvents\";\r\nimport { ProductsHelperService } from \"../../../services/productsHelper.service\"\r\nimport { ProductColorSelectionService } from \"../../../services/productColorSelection.service\";\r\nimport { CategoryService } from \"../../../resources/category\";\r\nimport { SearchService } from \"../../../resources/search\";\r\nimport { DecorationGroupHelperService } from \"app/services/decorationGroupHelper.service\";\r\nimport { GuidService } from \"app/resources/guid\";\r\n\r\ndeclare var _: any;\r\n\r\n@Component(\r\n {\r\n selector: \"ecc-add-order-notes\",\r\n template:\r\n `\r\n
\r\n
\r\n \r\n
\r\n
\r\n
Add a note to this order
\r\n \r\n
\r\n
\r\n \r\n
\r\n
Enter any instruction/concern
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n `\r\n }\r\n)\r\nexport class AddOrderNotesComponent extends BaseClass implements OnInit {\r\n\r\n _modalName: string;\r\n _decorationGroupId: string;\r\n _currentNotes: string = '';\r\n _notes: string = '';\r\n\r\n @Input() set notes(value: string) {\r\n if (value) {\r\n this._notes = value;\r\n this._currentNotes = value;\r\n }\r\n }\r\n @Output() notesChange = new EventEmitter();\r\n\r\n @Input() set decorationGroupId(id: string) {\r\n if (id) {\r\n this._decorationGroupId = id;\r\n }\r\n }\r\n\r\n constructor(protected productsService: ProductsHelperService, protected productColorSelection: ProductColorSelectionService,\r\n protected categoryService: CategoryService, protected searchService: SearchService,\r\n protected decorationGroupHelper: DecorationGroupHelperService, protected guidService: GuidService) {\r\n super();\r\n }\r\n\r\n appEvents: AppEvents = new AppEvents();\r\n\r\n ngOnInit() {\r\n this.reset();\r\n }\r\n\r\n reset() {\r\n\r\n }\r\n\r\n saveNotes() {\r\n this._notes = this._currentNotes;\r\n this.notesChange.emit(this._currentNotes);\r\n }\r\n\r\n closeModal() {\r\n this._currentNotes = this._notes;\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/desktop/add/addOrderNotes.component.ts","import {Component, Input, Output, OnInit, EventEmitter, OnDestroy} from \"@angular/core\";\r\nimport {DesignTemplateService} from \"../../../resources/designTemplates\";\r\nimport {SelectedDesignColorsService} from \"../../../services/selectedDesignColors.service\";\r\nimport {AppEvents} from \"../../../appEvents\";\r\nimport {Subscription} from \"rxjs/Subscription\";\r\n\r\ndeclare var _ : any;\r\n\r\n@Component({\r\n selector: \"ecc-design-templates\",\r\n template: \r\n `\r\n
\r\n
\r\n
Design Templates
\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n
Name: {{design.name}}
\r\n
Status: {{design.status}}
\r\n
\r\n
\r\n
\r\n Note\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n View\r\n
\r\n
\r\n Submit\r\n
\r\n
\r\n Delete\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n\r\n
\r\n `,\r\n})\r\nexport class DesignTemplatesComponent implements OnInit, OnDestroy {\r\n \r\n @Input() set Customer (customer: any) {\r\n this.customer = customer;\r\n }\r\n \r\n @Input() set CurrentDesignTemplateId (id: any) {\r\n this.currentDesignTemplateId = id;\r\n }\r\n \r\n @Input() set CurrentDesignTemplateChanged(designChanged: boolean) {\r\n this.currentDesignTemplateChanged = designChanged;\r\n }\r\n\r\n @Input() set Product(product: any) {\r\n this.product = product;\r\n }\r\n\r\n @Output() resetDesign: EventEmitter = new EventEmitter();\r\n @Output() saveDesign: EventEmitter = new EventEmitter();\r\n @Output() loadDesign: EventEmitter = new EventEmitter();\r\n \r\n customer: any;\r\n savedTemplates: any;\r\n currentDesignTemplateId: any;\r\n currentDesignTemplateChanged: boolean = false;\r\n showDeleteConfirmation: boolean = false;\r\n showViewChangeConfirmation: boolean = false;\r\n showApprovalConfirmation: boolean = false;\r\n showCreateNewConfirmation: boolean = false;\r\n showNotePopup: boolean = false;\r\n designToBeDeleted: any;\r\n designToBeViewed: any;\r\n designToBeSaved: any;\r\n product: any;\r\n note: any;\r\n appEvents: AppEvents = new AppEvents();\r\n designTemplateSaved: Subscription;\r\n \r\n constructor(private designTemplateService: DesignTemplateService, private selectedColorsService: SelectedDesignColorsService) {\r\n this.designTemplateSaved = AppEvents.designTemplateSavedO.subscribe(() =>{\r\n this.getDesigns();\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.designTemplateSaved.unsubscribe();\r\n }\r\n \r\n ngOnInit() {\r\n // get designs\r\n this.getDesigns();\r\n }\r\n \r\n getDesigns() {\r\n this.designTemplateService.get(this.customer.isTemplateApprover, this.customer.isTemplateDesigner).subscribe((designs) => {\r\n this.savedTemplates = designs;\r\n });\r\n }\r\n\r\n resetColorSelection() {\r\n this.product.views.forEach(view => {\r\n this.selectedColorsService.resetView(view);\r\n });\r\n }\r\n\r\n backgroundColor(selection: any) {\r\n if(selection && selection.length > 0) {\r\n return {\r\n \"background-color\": selection[0].hex\r\n }\r\n }\r\n }\r\n\r\n createNewDesignOk() {\r\n // load new design template\r\n this.showCreateNewConfirmation = false;\r\n }\r\n \r\n createNewDesignCancel() {\r\n this.showCreateNewConfirmation = false;\r\n this.resetColorSelection();\r\n this.appEvents.emitCreateNewDesignTemplate();\r\n }\r\n \r\n createNewTemplate() {\r\n if(this.currentDesignTemplateChanged) {\r\n // ask user if he/she wants to save the current design first??\r\n this.showCreateNewConfirmation = true;\r\n }\r\n else {\r\n this.resetColorSelection();\r\n this.appEvents.emitCreateNewDesignTemplate();\r\n }\r\n }\r\n\r\n viewNote(design) {\r\n this.note = design.note;\r\n this.showNotePopup = true;\r\n }\r\n\r\n closeNotePopup() {\r\n this.showNotePopup = false;\r\n this.note = null;\r\n }\r\n \r\n // get selected design\r\n viewDesign(design) {\r\n this.designToBeViewed = design;\r\n if(this.currentDesignTemplateChanged) {\r\n // ask user if he/she wants to save the current design first??\r\n this.showViewChangeConfirmation = true;\r\n }\r\n else {\r\n this.resetColorSelection();\r\n this.loadDesign.emit(this.designToBeViewed.id);\r\n }\r\n }\r\n \r\n onViewChangeOk() {\r\n // load the selected design\r\n this.showViewChangeConfirmation = false;\r\n }\r\n \r\n onViewChangeCancel() {\r\n this.showViewChangeConfirmation = false;\r\n this.resetColorSelection();\r\n this.appEvents.emitCurrentDesignChanged(false);\r\n this.loadDesign.emit(this.designToBeViewed.id);\r\n }\r\n\r\n // submit for approval\r\n submitForApproval(design) {\r\n this.designToBeSaved = design;\r\n this.showApprovalConfirmation = true;\r\n }\r\n\r\n onApprovalOk() {\r\n this.showApprovalConfirmation = false;\r\n this.resetColorSelection();\r\n \r\n // update approval status for the design\r\n this.designTemplateService.updateStatus(this.designToBeSaved.id, \"Pending\").subscribe(() => {\r\n // reload design templates\r\n this.designTemplateService.get(this.customer.isTemplateApprover, this.customer.isTemplateDesigner).subscribe((designs) => {\r\n this.savedTemplates = designs;\r\n if(this.designToBeSaved.id === this.currentDesignTemplateId) {\r\n this.resetDesign.emit(this.currentDesignTemplateId);\r\n }\r\n });\r\n \r\n });\r\n }\r\n \r\n onApprovalCancel() {\r\n this.showApprovalConfirmation = false;\r\n }\r\n\r\n // delete selected design\r\n deleteDesign(design) {\r\n // confirm popup\r\n this.designToBeDeleted = design;\r\n this.showDeleteConfirmation = true;\r\n }\r\n \r\n onDeleteOk() {\r\n // delete design\r\n this.designTemplateService.delete(this.designToBeDeleted.id).subscribe( () => {\r\n // delete the element from the savedDesigns\r\n this.savedTemplates = _.without(this.savedTemplates, _.findWhere(this.savedTemplates, { id: parseInt(this.designToBeDeleted.id) }));\r\n });\r\n \r\n // present a blank design if the design.id === current design id\r\n if(this.designToBeDeleted.id === this.currentDesignTemplateId) {\r\n this.resetDesign.emit(this.currentDesignTemplateId);\r\n }\r\n\r\n // reset selected colors array\r\n this.resetColorSelection();\r\n this.showDeleteConfirmation = false;\r\n }\r\n \r\n onCancel() {\r\n this.showDeleteConfirmation = false;\r\n this.showViewChangeConfirmation = false;\r\n this.showCreateNewConfirmation = false;\r\n this.showApprovalConfirmation = false;\r\n this.showNotePopup = false;\r\n return false;\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/desktop/add/designTemplates.component.ts","import {Component, OnInit} from \"@angular/core\";\r\nimport {ClipartIconsService} from \"../../../resources/clipartIcons\";\r\nimport {ClipartCategoryService} from \"../../../resources/clipartCategory\";\r\nimport {ClipartSearchTermsService} from \"../../../resources/clipartSearchTerms\";\r\nimport {S3ProcessorService} from \"../../../services/s3Processor.service\";\r\nimport {AppEvents} from \"../../../appEvents\";\r\nimport {CONFIG} from \"../../../../environments/environment\";\r\nimport { AddClipartComponent } from \"../../desktop/add/addClipart.component\";\r\nimport { ProductsHelperService } from \"../../../services/productsHelper.service\";\r\nimport { SelectedDesignColorsService } from \"../../../services/selectedDesignColors.service\";\r\n\r\ndeclare var _: any;\r\ndeclare var $: any;\r\n\r\n@Component(\r\n {\r\n selector: \"ecc-mobile-add-clipart\", \r\n template:\r\n `\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n Clipart Selection\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
Categories
\r\n
\r\n
\r\n
\r\n
\r\n
{{category.name}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{{selectedCategory?.name}}
\r\n
\r\n
\r\n
\r\n
\r\n
{{searchTerm.name}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n Add\r\n
\r\n
\r\n
\r\n
\r\n No results found. Try searching something else.\r\n
\r\n
\r\n Load More\r\n
\r\n
\r\n \r\n
\r\n
\r\n `,\r\n }\r\n)\r\nexport class MobileAddClipartComponent extends AddClipartComponent {\r\n \r\n back() {\r\n this.selectedSvg = null;\r\n if(this.svgsInView) {\r\n this.svgsInView = false;\r\n this.searchText = \"\";\r\n this.svgs = [];\r\n }\r\n else if(this.showTerms) {\r\n this.showTerms = false;\r\n this.searchTerms = [];\r\n this.showCategory = true;\r\n this.selectedCategory = null;\r\n }\r\n else {\r\n this.openModal('mobileAddImage');\r\n }\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/mobile/add/addClipart.component.ts","import {Component, Input, Output, EventEmitter, OnDestroy, ChangeDetectionStrategy} from \"@angular/core\";\r\nimport {Subscription} from \"rxjs/Subscription\";\r\n\r\nimport {AppEvents} from \"../../../appEvents\";\r\nimport {RemoveBackgroundService} from \"../../../resources/removeBackground\";\r\nimport {ImageRenderService} from \"../../../resources/imageRender\";\r\nimport {DesignHelperService} from \"../../../services/designHelper.service\";\r\nimport {SelectedDesignColorsService} from \"../../../services/selectedDesignColors.service\";\r\nimport {BaseClass} from \"../../../components/base.class\";\r\nimport { AddImageComponent } from \"../../desktop/add/addImage.component\";\r\nimport { ImageHelperService } from \"../../../services/imageHelper.service\";\r\nimport { ProductsHelperService } from \"../../../services/productsHelper.service\";\r\n\r\ndeclare var $: any;\r\ndeclare var _: any;\r\n\r\n@Component(\r\n {\r\n selector: \"ecc-mobile-add-image\",\r\n template:\r\n `\r\n
\r\n
\r\n Add Art\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
Uploaded image should be jpeg | gif | png | psd | tif | svg | bmp | eps | pdf | webp, less than 15MB
\r\n
The uploaded file type is not supported
\r\n
The image, you are trying to upload, might be corrupted. Please choose another image.
\r\n
The file size should be less than 15MB
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
*New* Design Templates
\r\n
Get started with a professionally designed template created by our team of amazing artists.
\r\n \r\n
\r\n
\r\n File Uploading...\r\n
\r\n
To see your previously saved proofed work, \r\n Login
\r\n
\r\n
\r\n \r\n \r\n `,\r\n }\r\n)\r\nexport class MobileAddImageComponent extends AddImageComponent implements OnDestroy {\r\n\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/mobile/add/addImage.component.ts","import {Component, Input, Output, EventEmitter, OnInit} from \"@angular/core\";\r\n\r\nimport {BaseClass} from \"../../base.class\";\r\nimport {AppEvents} from \"../../../appEvents\";\r\nimport {ProductsHelperService} from \"../../../services/productsHelper.service\"\r\nimport {ProductColorSelectionService} from \"../../../services/productColorSelection.service\";\r\nimport {SelectedDesignColorsService} from \"../../../services/selectedDesignColors.service\";\r\nimport { ChangeItemComponent } from \"../../desktop/add/changeItem.component\";\r\nimport { AddProductComponent } from \"app/components/desktop/add/addProduct.component\";\r\n\r\ndeclare var _:any;\r\n\r\n@Component(\r\n {\r\n selector: \"ecc-mobile-add-product\",\r\n template: \r\n `\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n Add Product\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
    \r\n
  • {{category.name}}
  • \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
{{repeatProduct.name}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n Change Item\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
{{previewProduct?.name}}
\r\n
\r\n \r\n
\r\n Note! Selected product is already added to your design. Please choose another product.\r\n
\r\n
\r\n Add This Item\r\n
\r\n
\r\n
Available сolors
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Available Sizes
\r\n
\r\n {{getSizeById(previewProduct, size)}}\r\n
\r\n
Product Details
\r\n
\r\n
\r\n
\r\n\r\n `\r\n }\r\n)\r\nexport class MobileAddProductComponent extends AddProductComponent{\r\n \r\n back() {\r\n this.switchView.emit();\r\n }\r\n\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/mobile/add/addProduct.component.ts","import {Component, OnInit, Output, EventEmitter} from \"@angular/core\";\r\nimport {ProofedArtworkService} from \"../../../resources/proofedArtwork\";\r\nimport {AppEvents} from \"../../../appEvents\";\r\nimport { AddProofedArtworkComponent } from \"../../desktop/add/addProovedArtwork.component\";\r\nimport { ImageRenderService } from \"../../../resources/imageRender\";\r\nimport { ProductsHelperService } from \"../../../services/productsHelper.service\";\r\nimport { ImageHelperService } from \"../../../services/imageHelper.service\";\r\n\r\n@Component({\r\n selector: \"ecc-mobile-add-proofed-artwork\",\r\n template:\r\n `\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n Your Proofed Artwork\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
To apply your artwork, select it and click Add button
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n Add\r\n
\r\n
\r\n
\r\n
\r\n You don't have any proofed artwork.\r\n
\r\n
\r\n \r\n
\r\n
\r\n `\r\n})\r\nexport class MobileAddProofedArtworkComponent extends AddProofedArtworkComponent {\r\n\r\n constructor(protected proofedArtworkService: ProofedArtworkService, protected renderImageService: ImageRenderService,\r\n protected productsHelper: ProductsHelperService, protected imageHelper: ImageHelperService) {\r\n super(proofedArtworkService, renderImageService, productsHelper, imageHelper);\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/mobile/add/addProovedArtwork.component.ts","import {Component, OnInit, Output, EventEmitter} from \"@angular/core\";\r\nimport {DesignTemplateService} from \"../../../resources/designTemplates\";\r\nimport {DesignTemplateCategoryService} from \"../../../resources/designTemplateCategory\";\r\nimport {DesignTemplateTagsService} from \"../../../resources/designTemplateTags\";\r\nimport {AppEvents} from \"../../../appEvents\";\r\nimport {CONFIG} from \"../../../../environments/environment\";\r\nimport { AddTemplateComponent } from \"../../desktop/add/addTemplate.component\";\r\n\r\ndeclare var _: any;\r\ndeclare var $: any;\r\n\r\n@Component(\r\n {\r\n selector: \"ecc-mobile-add-template\", \r\n template:\r\n `\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n Template Selection\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
Categories
\r\n
\r\n
\r\n
\r\n
\r\n
{{category.name}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{{selectedCategory?.name}}
\r\n
\r\n
\r\n
\r\n
\r\n
{{tag.name}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n Add\r\n
\r\n
\r\n
\r\n
\r\n No results found. Try other category.\r\n
\r\n
\r\n \r\n
\r\n
\r\n `,\r\n }\r\n)\r\nexport class MobileAddTemplateComponent extends AddTemplateComponent {\r\n \r\n applyMobile() {\r\n this.apply();\r\n this.openModal('mobileMain');\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/mobile/add/addTemplate.component.ts","import {Component, Input, Output, EventEmitter, ChangeDetectionStrategy, OnDestroy, OnInit, ElementRef} from \"@angular/core\";\r\nimport {Subscription} from \"rxjs/Subscription\";\r\n\r\nimport {BaseClass} from \"../../../components/base.class\";\r\nimport {TextRenderService} from \"../../../resources/textRender\";\r\nimport {TextAlignmentService} from \"../../../resources/textAlignment\";\r\nimport {DesignHelperService} from \"../../../services/designHelper.service\";\r\nimport {SelectedDesignColorsService} from \"../../../services/selectedDesignColors.service\";\r\nimport { AddTextComponent } from \"../../desktop/add/addText.component\";\r\nimport {AppEvents} from \"../../../appEvents\";\r\n\r\nimport {CONFIG} from \"../../../../environments/environment\";\r\n\r\ndeclare var _: any;\r\ndeclare var $: any;\r\n\r\n@Component(\r\n {\r\n selector: \"ecc-mobile-add-text\",\r\n template:\r\n `\r\n
\r\n
\r\n Add Text\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
Add Names & Numbers
\r\n
Add names and/or numbers to each item for $6.95 each
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n Note! You'll be able to define the names and numbers before adding this design to your shopping cart.\r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n \r\n \r\n
\r\n
\r\n Edit Text\r\n Edit Personalization\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
Object Position
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
Align
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
{{alignment.name}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Unlocked
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
Locked
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Embroider this text
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Height
\r\n
\r\n
\r\n
\r\n
{{_heightLabel}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Font
\r\n
\r\n
\r\n
\r\n
{{_fontName}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Art Color
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{_color.name}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
Rotation
\r\n
\r\n
\r\n
\r\n
{{_currentDesignElement?.rotationAngle}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Text Shape
\r\n
\r\n
\r\n
\r\n
{{_currentShape?.name}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Text Effect
\r\n
\r\n
\r\n
\r\n
{{_currentEffect?.name}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Outline
\r\n
\r\n
\r\n
\r\n
{{_currentBorder?.name}}
\r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n
\r\n \r\n Note! You have reached the maximum allowable size\r\n
\r\n
\r\n \r\n Note!*Only embroidery option is available for this product\r\n
\r\n
\r\n \r\n Note! You'll be able to define the names and numbers before adding this design to your shopping cart.\r\n
\r\n
\r\n\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n Colors Available\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n You have reached maximum design colors for this product. You can only select one of the colors used in the design view.\r\n
\r\n
{{_color.name}}
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
color currently used on this design view
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n Text Font\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n Edit Height\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n Rotation (-180 to 180)\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n Text Shape\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
{{shape.name}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
{{shape.name}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Bend (0 to 1)
\r\n \r\n
\r\n
\r\n
Left Scale (0 to 5)
\r\n \r\n
\r\n
\r\n
Right Scale (0 to 5)
\r\n \r\n
\r\n
\r\n
Tilt (-10 to +10)
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
Letter Spacing (-1 to +1)
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n Text Effect\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{{effect.name}}
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Color
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{_currentEffectColor?.name}}\r\n
\r\n
\r\n
\r\n You have reached maximum design colors for this product. You can only select one of the colors used in the design view.\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
color currently used on this design view
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Opacity (0 to 1)
\r\n \r\n
\r\n
\r\n
Size (0 to 10)
\r\n \r\n
\r\n
\r\n
Offset X (-1 to +1)
\r\n \r\n
\r\n
\r\n
Offset Y (-1 to +1)
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n Note! Effect can not be applied to an embroidered element\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n Outline\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{{border.name}}
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Color
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{_currentBorderColor?.name}}\r\n
\r\n
\r\n
\r\n You have reached maximum design colors for this product. You can only select one of the colors used in the design view.\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
color currently used on this design view
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Width (0 to 10)
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n\r\n \r\n\r\n `,\r\n }\r\n)\r\nexport class MobileAddTextComponent extends AddTextComponent {\r\n\r\n view: any = \"main\";\r\n _design: any;\r\n _selection: any;\r\n showPersonalizationInfo: boolean = false;\r\n showPersonalizationModal: boolean = false;\r\n\r\n @Input() set design(_design: any) {\r\n this._design = _design;\r\n }\r\n\r\n openModal(modalStr: any) {\r\n this.appEvents.emitOpenModalChange(modalStr);\r\n }\r\n\r\n toggleView(viewStr: any = \"main\") {\r\n this.view = viewStr;\r\n }\r\n\r\n setFontAndChangeView(font: any) {\r\n this.setFont(font);\r\n this.toggleView();\r\n }\r\n\r\n setHeightAndChangeView(size: any) {\r\n this.setPersonalizationSize(size);\r\n this.toggleView();\r\n }\r\n\r\n setTextColorMobile(event: any, color: any) {\r\n this.setTextColor(event, color);\r\n if(!this.showMaxColorWarning) {\r\n this.toggleView();\r\n }\r\n }\r\n\r\n textChangedMobile() {\r\n this.textChanged();\r\n this.openModal('mobileMain');\r\n }\r\n\r\n addTextMobile() {\r\n this.addText(this.newText);\r\n this.openModal(\"mobileMain\");\r\n }\r\n\r\n addNamesAndNumbersMobile() {\r\n this.addNamesAndNumbers();\r\n this.openModal(\"mobileMain\");\r\n }\r\n\r\n togglePersonalizationInfo() {\r\n this.showPersonalizationInfo = !this.showPersonalizationInfo;\r\n }\r\n\r\n enterPersonalizations() {\r\n let totalProductCount: any; \r\n this._selection = this.colorSelectionService._selection;\r\n let decorationGroup: any = this.decorationGroupHelper.getFirstOrDefaultGroup();\r\n if(decorationGroup) {\r\n totalProductCount = this.designsHelper.totalProductCountForMultipleProducts(decorationGroup.products);\r\n }\r\n else {\r\n totalProductCount = this.designsHelper.totalProductCountFromSelection(this.colorSelectionService._selection);\r\n }\r\n if(totalProductCount > 0) {\r\n this.showPersonalizationModal = true;\r\n }\r\n else {\r\n // check if any quantity is assigned. If not, show the message, else open personalization popup\r\n this.showPersonalizationMessage = true;\r\n }\r\n }\r\n\r\n savePersonalization() {\r\n this.showPersonalizationMessage = false;\r\n this.openModal(\"mobileChooseProduct\");\r\n }\r\n\r\n closePersonalizationModal() {\r\n this.showPersonalizationModal = false;\r\n }\r\n\r\n // this is a sample of how to move the views in the design view\r\n // changeColor() {\r\n // this._currentDesignElement.changeColor = true;\r\n // this._currentDesignElement.lastView = \"mobileAddText\";\r\n // this.openModal('mobileMain');\r\n // this.appEvents.emitCurrentDesignElementsChange(this._currentDesignElement);\r\n // }\r\n\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/mobile/add/addText.component.ts","import {Component, Input, Output, EventEmitter, OnInit} from \"@angular/core\";\r\n\r\nimport {BaseClass} from \"../../base.class\";\r\nimport {AppEvents} from \"../../../appEvents\";\r\nimport {ProductsHelperService} from \"../../../services/productsHelper.service\"\r\nimport {ProductColorSelectionService} from \"../../../services/productColorSelection.service\";\r\nimport {SelectedDesignColorsService} from \"../../../services/selectedDesignColors.service\";\r\nimport { ChangeItemComponent } from \"../../desktop/add/changeItem.component\";\r\n\r\ndeclare var _:any;\r\n\r\n@Component(\r\n {\r\n selector: \"ecc-mobile-change-item\",\r\n template: \r\n `\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n Change Item\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
    \r\n
  • {{category.name}}
  • \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
{{repeatProduct.name}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n Change Item\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
{{previewProduct?.name}}
\r\n
\r\n \r\n
\r\n Choose This Item\r\n
\r\n
\r\n
Available сolors
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Available Sizes
\r\n
\r\n {{getSizeById(previewProduct, size)}}\r\n
\r\n
Product Details
\r\n
\r\n
\r\n
\r\n\r\n `\r\n }\r\n)\r\nexport class MobileChangeItemComponent extends ChangeItemComponent{\r\n \r\n back() {\r\n this.switchView.emit();\r\n }\r\n\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/mobile/add/changeItem.component.ts","import {Component, Input, Output, EventEmitter, OnDestroy, ChangeDetectionStrategy, OnInit} from \"@angular/core\";\r\nimport {Subscription} from \"rxjs/Subscription\";\r\n\r\nimport {AppEvents} from \"../../../appEvents\";\r\nimport {BaseClass} from \"../../../components/base.class\"; \r\nimport {RemoveBackgroundService} from \"../../../resources/removeBackground\";\r\nimport {ImageRenderService} from \"../../../resources/imageRender\";\r\nimport {DesignHelperService} from \"../../../services/designHelper.service\";\r\nimport {SelectedDesignColorsService} from \"../../../services/selectedDesignColors.service\";\r\nimport { ProductsHelperService } from \"../../../services/productsHelper.service\";\r\nimport { ImageHelperService } from \"../../../services/imageHelper.service\";\r\nimport { EditImageAndClipartComponent } from \"../../desktop/add/editImageAndClipart.component\";\r\nimport {CONFIG} from \"../../../../environments/environment\";\r\n\r\n@Component(\r\n {\r\n selector: \"ecc-mobile-edit-image-clipart\",\r\n template:\r\n `\r\n
\r\n
\r\n Edit Art\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n Flip Horizontally\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n Flip Vertically\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Object Position
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
Unlocked
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
Locked
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Remove Background
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Embroider this art
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Full Color
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
0\" class=\"m-studio__line\"> \r\n
\r\n
\r\n
Selected Colors
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n Edit Colors\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Art Color
\r\n
\r\n
\r\n
\r\n
\r\n {{_currentDesignElement?.color.name}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Rotation
\r\n
\r\n
\r\n
\r\n
{{_currentDesignElement?.rotationAngle}}
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n Note! You have reached the maximum allowable size\r\n
\r\n
\r\n \r\n Note!*Only embroidery option is available for this product\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n Rotation (-180 to 180)\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n Colors Available\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
{{_currentDesignElement?.color.name}}
\r\n
\r\n You have reached maximum design colors for this product. You can only select one of the colors used in the design view.\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
color currently used on this design view
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n Selected Colors\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n `,\r\n }\r\n)\r\nexport class MobileEditImageAndClipartComponent extends EditImageAndClipartComponent implements OnInit {\r\n \r\n view: any = \"main\";\r\n\r\n @Input() design: any;\r\n\r\n ngOnInit() {\r\n this.entripyImagePath = CONFIG.imagesOnEntripy;\r\n if(this._currentDesignElement && this._currentDesignElement.isImageLoaded && !this._product.isLastColorFullColor\r\n && this._product.maxPrintColors > 0 && !this.productsHelper.isEmbroideryOnly(this._product)) {\r\n if(this.design && this.design.continue) {\r\n this.togglePrintTypeMobile(\"screen\");\r\n }\r\n this._currentDesignElement.isImageLoaded = false;\r\n }\r\n else if(this._currentDesignElement){\r\n this._currentDesignElement.isImageLoaded = false;\r\n } \r\n }\r\n\r\n toggleView(viewStr: any = \"main\") {\r\n this.view = viewStr;\r\n if(this.view == 'main') {\r\n this.showColorSelection = false;\r\n }\r\n }\r\n\r\n back() {\r\n this.appEvents.emitOpenModalChange('mobileMain');\r\n }\r\n\r\n flipHorizontallyMobile() {\r\n this.flipHorizontally();\r\n this.back();\r\n }\r\n\r\n flipVerticallyMobile() {\r\n this.flipVertically();\r\n this.back();\r\n }\r\n\r\n showScreenPrint() {\r\n this.showColorSelection = true;\r\n this.view = 'showColorSelection';\r\n }\r\n\r\n closeColorSelectionMobile(event: any) {\r\n this.closeColorSelection(event);\r\n this.view = \"main\";\r\n }\r\n\r\n togglePrintTypeMobile(printType: any) {\r\n this.togglePrintType(printType);\r\n if(this.showColorSelection) {\r\n this.view = \"showColorSelection\";\r\n }\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/mobile/add/editImageAndClipart.component.ts","import {Component, Input, Output, EventEmitter, OnInit} from \"@angular/core\";\r\n\r\nimport {BaseClass} from \"../../base.class\";\r\nimport {AppEvents} from \"../../../appEvents\";\r\nimport {ProductColorSelectionService} from \"../../../services/productColorSelection.service\";\r\nimport { DesignHelperService } from \"../../../services/designHelper.service\";\r\nimport {CONFIG} from \"../../../../environments/environment\";\r\nimport { GuidService } from \"../../../resources/guid\";\r\nimport { PersonalizationComponent } from \"../../desktop/add/personalization.component\";\r\nimport { Subscription } from \"rxjs\";\r\n\r\ndeclare var _:any;\r\n\r\n@Component(\r\n {\r\n selector: \"ecc-mobile-personalization\",\r\n template: \r\n `\r\n
\r\n
\r\n
\r\n Enter your personalizations\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{{selectedProduct.product?.sku}}: {{selectedProduct.product?.name}}
\r\n
Personalizations: \r\n \r\n {{selectedProduct.personalizationGroupsEntered}} of {{selectedProduct.totalPersonalizations}} items\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
Select color to personalize
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
0\" style=\"background: #f2f2f2; padding:5px; margin-top: 20px;\">\r\n
\r\n
\r\n {{selectionColor.name}}: \r\n {{group.index}} of {{getSelectionTotalQuantities(selectionColor)}}\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
0\" style=\"width: 100%;\">\r\n
\r\n {{personalization.header}}\r\n \r\n
\r\n
\r\n \r\n
0\" style=\"padding:10px 0 0 0;\">\r\n Size\r\n
\r\n \r\n
    \r\n
  • {{size.name}}({{size.count}}/{{size.quantity}})
  • \r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n \r\n
\r\n You have too many personalizations for this color. Please delete personalizations or add more quantities. \r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n Add another item\r\n
\r\n
\r\n
\r\n \r\n
0 && selectionColor.personalizationGroups.length >= getSelectionTotalQuantities(selectionColor)\"\r\n class=\"col-12 shopping-cart__artwork-decoration-cntrl\" style=\"text-align: left; padding: 25px 20px; color: #33cc00; height: unset;\">\r\n Personalizations complete for this item\r\n
\r\n\r\n
\r\n Please assign quantities to this color in Your Item section\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n \r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n `\r\n }\r\n)\r\nexport class MobilePersonalizationComponent extends PersonalizationComponent {\r\n \r\n ngOnInit() {\r\n super.ngOnInit();\r\n if(this._decorationGroup && this._decorationGroup.products && this._decorationGroup.products.length > 0 \r\n && this._decorationGroup.products[0].selection.length > 0) {\r\n this._decorationGroup.products.forEach((p) => {\r\n if(p.selection.length > 0) {\r\n p.selection[0].isSelected = true;\r\n }\r\n });\r\n }\r\n }\r\n\r\n selectColor(selectedProduct: any, selectedColor: any) {\r\n if(!selectedColor.personalizationGroups) {\r\n selectedColor.personalizationGroups = [];\r\n }\r\n if(selectedProduct && selectedColor) {\r\n selectedProduct.selection.forEach((color) => {\r\n if(color !== selectedColor) {\r\n color.isSelected = false;\r\n }\r\n else {\r\n color.isSelected = true;\r\n }\r\n });\r\n }\r\n }\r\n\r\n openModal(modal: any) {\r\n this.appEvents.emitOpenModalChange(modal);\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/mobile/add/personalization.component.ts","import {Component, Input, Output, EventEmitter, OnInit} from \"@angular/core\";\r\n\r\nimport {LoadDesignHelperService} from \"../../../services/loadDesignHelper.service\";\r\nimport {AppEvents} from \"../../../appEvents\";\r\nimport {CONFIG} from \"../../../../environments/environment\";\r\nimport { PreviewYourDesignComponent } from \"../../desktop/add/previewYourDesign.component\";\r\n\r\ndeclare var _: any;\r\n\r\n@Component({\r\n selector: \"ecc-mobile-preview-your-design\",\r\n template:\r\n `\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n Preview Design\r\n
\r\n
\r\n
\r\n
{{_design?.name}}
\r\n
Select locations to be applied to the current design
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
Please choose atleast one location to apply.
\r\n
\r\n
\r\n
\r\n `\r\n})\r\nexport class MobilePreviewYourDesignComponent extends PreviewYourDesignComponent {\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/mobile/add/previewYourDesign.component.ts","import {Component, Input, Output, OnInit, EventEmitter} from \"@angular/core\";\r\nimport {DesignsService} from \"../../../resources/designs\";\r\nimport {AppEvents} from \"../../../appEvents\";\r\nimport {SelectedDesignColorsService} from \"../../../services/selectedDesignColors.service\";\r\nimport { YourDesignsComponent } from \"../../desktop/add/yourDesigns.component\";\r\n\r\ndeclare var _ : any;\r\n\r\n@Component({\r\n selector: \"ecc-mobile-your-designs\",\r\n template: \r\n`\r\n
\r\n
\r\n Your Designs\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
Don’t see your designs? \r\n Login\r\n
\r\n
\r\n
\r\n
\r\n
{{design.name}}
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Preview\r\n
\r\n
\r\n Edit\r\n
\r\n
\r\n Delete\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n \r\n\r\n
\r\n \r\n
\r\n\r\n\r\n`\r\n,\r\n})\r\nexport class MobileYourDesignsComponent extends YourDesignsComponent {\r\n \r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/mobile/add/yourDesigns.component.ts","import {Component, Input, Output, EventEmitter, OnDestroy, OnInit} from \"@angular/core\";\r\n\r\nimport {ProductColorSelectionService} from \"../../../services/productColorSelection.service\";\r\nimport {LoadDesignHelperService} from \"../../../services/loadDesignHelper.service\";\r\nimport {DesignHelperService} from \"../../../services/designHelper.service\";\r\nimport {BaseClass} from \"../../base.class\";\r\nimport {AppEvents} from \"../../../appEvents\";\r\nimport { YourItemComponent } from \"../../desktop/add/yourItem.component\";\r\n\r\ndeclare var _ : any;\r\n\r\n@Component(\r\n {\r\n selector: \"ecc-mobile-your-item\",\r\n template:\r\n `\r\n
\r\n
\r\n Your Item\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
{{_product?.name}}
\r\n
{{_product?.sku}}
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n Add another product \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n Add another product\r\n
\r\n
\r\n\r\n
1\" class=\"row m-studio__line\">\r\n
{{_product?.name}}
\r\n
{{_product?.sku}}
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{selectedColor.name}}\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n View\r\n
\r\n
\r\n
\r\n
\r\n
{{size.name}}
\r\n \r\n
\r\n
\r\n
\r\n This color is no longer available, please choose another color.\r\n
\r\n
\r\n You have too many personalizations for this color. Please delete personalizations or add more quantities. \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n Add Color\r\n
\r\n
\r\n
\r\n
\r\n Change Item\r\n
\r\n
\r\n
\r\n
\r\n
Note! Minimum quantity of {{minQuantities}} is required
\r\n\r\n \r\n\r\n\r\n
\r\n\r\n\r\n\r\n\r\n `,\r\n }\r\n)\r\nexport class MobileYourItemComponent extends YourItemComponent {\r\n\r\n @Input() design: any;\r\n @Input() gettingPrice: boolean; \r\n @Input() unitPrice: number = 0; \r\n @Input() unitPriceWithDiscount: number = 0;\r\n @Input() totalPrice: number = 0;\r\n @Input() totalPriceWithDiscount: number = 0; \r\n @Input() totalProducts: number = 0;\r\n @Input() isValidDesign: any;\r\n @Input() personalizationCharge: any;\r\n @Input() productView: any;\r\n @Input() defaultGroupId: any;\r\n @Input() productColor: any;\r\n @Input() decorationGroupId: any;\r\n \r\n showChangeItem: boolean = false;\r\n\r\n changeItem() {\r\n this.showChangeItem = true;\r\n }\r\n\r\n onSetColorMobile(selectedColor: any) {\r\n this.onSetColor(selectedColor);\r\n this.openModal('mobileMain');\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/mobile/add/yourItem.component.ts","import {Component, Input, Output, EventEmitter, OnDestroy, OnInit} from \"@angular/core\";\r\nimport {Subscription} from \"rxjs/Subscription\";\r\nimport {DesignHelperService} from \"../../../services/designHelper.service\";\r\nimport { YourQuoteComponent } from \"../../desktop/add/yourQuote.component\";\r\n\r\n@Component(\r\n {\r\n selector: \"ecc-mobile-your-quote\",\r\n template:\r\n `\r\n
\r\n
\r\n
Quantity:
\r\n
\r\n
\r\n
\r\n
Unit Price:
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
0\" class=\"row\">\r\n
Personalization:
\r\n
\r\n
\r\n
\r\n
Sub total:
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
* Minimum quantity of {{minQty}} required
\r\n
\r\n Add To Cart\r\n Update Cart\r\n
\r\n\r\n\r\n\r\n `,\r\n }\r\n)\r\nexport class MobileYourQuoteComponent extends YourQuoteComponent {\r\n \r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/mobile/add/yourQuote.component.ts","import {Component, Input, OnInit, ElementRef} from \"@angular/core\";\r\nimport {AppEvents} from \"../../../appEvents\";\r\nimport {CONFIG} from \"../../../../environments/environment\";\r\nimport { ChangeZIndexComponent } from \"../../desktop/common/changeZIndex.component\";\r\n\r\ndeclare var _: any;\r\ndeclare var $: any;\r\n\r\n@Component(\r\n {\r\n selector:\"ecc-mobile-change-z-index\",\r\n template: \r\n `\r\n \r\n `\r\n }\r\n)\r\nexport class MobileChangeZIndexComponent extends ChangeZIndexComponent implements OnInit{\r\n \r\n \r\n \r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/mobile/common/changeZIndex.component.ts","import {Component, Input, Output, EventEmitter} from \"@angular/core\";\r\nimport {BaseClass} from \"../../../components/base.class\";\r\nimport {SelectedDesignColorsService} from \"../../../services/selectedDesignColors.service\";\r\nimport { ColorSelectionComponent } from \"../../desktop/common/colorSelection.component\";\r\n\r\ndeclare var _ : any;\r\n\r\n@Component(\r\n {\r\n selector: \"ecc-mobile-color-selection\",\r\n template:\r\n `\r\n
\r\n
\r\n
Choose the colors that you would like to see in your design.
\r\n
0\" style=\"margin: 15px 0; color: #ff0000; font-size: 15px;\">This product supports up to {{_maxPrintColors}} colour 1\">s. \r\n = _maxPrintColors\">You can select existing colour 1\">s used on another element on this design. \r\n = _maxPrintColors\">If you want to select more colours, select Full Color option.\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
Selected Colors: \r\n {{color.name}}\r\n None\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Indicates the color that is currently used
on another element on this design
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
Please choose a color to continue.
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n `\r\n }\r\n)\r\nexport class MobileColorSelectionComponent extends ColorSelectionComponent {\r\n\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/mobile/common/colorSelection.component.ts","import {Component, Input, Output, EventEmitter, OnInit} from \"@angular/core\";\r\nimport { ConfirmationComponent } from \"../../desktop/common/confirmation.popup.component\";\r\n\r\n@Component({\r\n selector: \"ecc-mobile-confirmation\",\r\n template:\r\n ` \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n `\r\n})\r\nexport class MobileConfirmationComponent extends ConfirmationComponent {\r\n\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/mobile/common/confirmation.popup.component.ts","import {Component, Input, OnInit, OnDestroy} from '@angular/core';\r\nimport {SelectedDesignColorsService} from \"../../../services/selectedDesignColors.service\";\r\nimport {AppEvents} from \"../../../appEvents\";\r\nimport {CONFIG} from \"../../../../environments/environment\";\r\nimport { DuplicateComponent } from '../../desktop/common/duplicate.component';\r\n\r\ndeclare var _: any;\r\n\r\n@Component({\r\n selector: 'ecc-mobile-duplicate',\r\n template : \r\n `\r\n
Copy To
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
{{view.name}}
\r\n
\r\n
\r\n
\r\n\r\n `,\r\n})\r\nexport class MobileDuplicateComponent extends DuplicateComponent { \r\n\r\n \r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/mobile/common/duplicate.component.ts","import {Component, Input, OnInit, OnDestroy} from '@angular/core';\r\nimport {CONFIG} from \"../../../../environments/environment\";\r\nimport { HeaderComponent } from '../../desktop/common/header.component';\r\nimport { Subscription } from 'rxjs';\r\nimport { AppEvents } from '../../../appEvents';\r\n\r\n@Component({\r\n selector: 'ecc-mobile-header',\r\n template : \r\n `\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n `,\r\n})\r\nexport class MobileHeaderComponent extends HeaderComponent implements OnDestroy { \r\n\r\n @Input() qtyError : boolean = false;\r\n @Input() design: any;\r\n @Input() product: any;\r\n @Input() selection: any;\r\n\r\n designOutsideError: boolean = false;\r\n designOutsidePrintAreaSubscription: Subscription;\r\n appEvents: AppEvents = new AppEvents();\r\n\r\n constructor() {\r\n super();\r\n // this.designOutsidePrintAreaSubscription = AppEvents.designOutsidePrintAreaO.subscribe((obj) => {\r\n // if(obj) {\r\n // // show / hide add to cart button\r\n // this.designOutsideError = obj.showMessage;\r\n // }\r\n // else {\r\n // // show add to cart button\r\n // this.designOutsideError = false;\r\n // }\r\n // });\r\n }\r\n\r\n onCheckout(isCheckout: boolean) { // check out is done through save component. The design is saved first and then checkout is called from there.\r\n this.design.checkout = true;\r\n this.appEvents.emitOpenModalChange('mobileChooseProduct');\r\n }\r\n\r\n ngOnDestroy() {\r\n //this.designOutsidePrintAreaSubscription.unsubscribe();\r\n }\r\n\r\n helpClicked() {\r\n this.appEvents.emitOpenModalChange('mobileHelp');\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/mobile/common/header.component.ts","import {Component, Input, OnInit, OnDestroy} from '@angular/core';\r\nimport {CONFIG} from \"../../../../environments/environment\";\r\nimport { SliderComponent } from '../../desktop/common/slider.component';\r\n\r\ndeclare var slider: any;\r\n\r\n@Component({\r\n selector: 'ecc-mobile-slider',\r\n template: \r\n `\r\n \r\n `,\r\n})\r\nexport class MobileSliderComponent extends SliderComponent {\r\n\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/mobile/common/slider.component.ts","import {Component, Input, Output, EventEmitter, OnInit, OnDestroy, ChangeDetectionStrategy, ViewChildren, QueryList, ViewChild} from \"@angular/core\";\r\nimport {Subscription} from \"rxjs/Subscription\";\r\nimport {AppEvents} from \"../../../appEvents\";\r\nimport {SelectedDesignColorsService} from \"../../../services/selectedDesignColors.service\";\r\nimport {TextElementDirective} from \"../../../directives/textElement.directive\";\r\nimport {BaseClass} from \"../../base.class\";\r\nimport {CONFIG} from \"../../../../environments/environment\";\r\nimport { DesignViewComponent } from \"../../desktop/design/designView.component\";\r\n\r\ndeclare var _: any;\r\n\r\n@Component(\r\n {\r\n selector: \"ecc-mobile-design-view\",\r\n template: \r\n `\r\n
1\" class=\"divViewArrow Left\" (click)=\"moveLeft()\">\r\n
\r\n
1\" class=\"divViewArrow Right\" (click)=\"moveRight()\">\r\n
\r\n
\r\n
0 && !_product?.isLastColorFullColor\" class=\"text-center font-weight-bold mt-1 small\" style=\"color: red;\">\r\n This product only supports {{_product?.maxPrintColors}} colour 1\">s for your design\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n\r\n \r\n \r\n `, \r\n }\r\n)\r\nexport class MobileDesignViewComponent extends DesignViewComponent {\r\n\r\n openModal(modalStr: any, event: any, designElement: any) {\r\n this.appEvents.emitCurrentDesignElementChange(designElement);\r\n this.appEvents.emitOpenModalChange(modalStr);\r\n // this event propagation stop call is required. Otherwise, edit doesn't work on mobile.\r\n event.stopPropagation();\r\n }\r\n\r\n setImageSource(source: any, designElement: any) {\r\n if(designElement) {\r\n designElement.source = source;\r\n }\r\n }\r\n\r\n moveLeft() {\r\n let index = this.getCurrentIndex();\r\n let length = this._product.views.length;\r\n\r\n index--;\r\n if(index < 0) {\r\n index = length - 1;\r\n }\r\n this.currentIndex = index;\r\n let prodView = this._product.views[this.currentIndex];\r\n this.setProductView(prodView);\r\n }\r\n\r\n moveRight() {\r\n let index = this.getCurrentIndex();\r\n let length = this._product.views.length;\r\n\r\n index++;\r\n if(index >= length) {\r\n index = 0;\r\n }\r\n this.currentIndex = index;\r\n let prodView = this._product.views[this.currentIndex];\r\n this.setProductView(prodView);\r\n }\r\n\r\n getCurrentIndex() {\r\n return _.indexOf(this._product.views, this._productView);\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/mobile/design/designView.component.ts","import {Component, Input, Output, EventEmitter, OnInit} from \"@angular/core\";\r\nimport {DesignsService} from \"../../../resources/designs\";\r\nimport {DesignTemplateService} from \"../../../resources/designTemplates\";\r\nimport {CONFIG} from \"../../../../environments/environment\";\r\nimport { SaveDesignComponent } from \"../../desktop/design/saveDesign.component\";\r\n\r\n@Component(\r\n {\r\n selector: \"ecc-mobile-save-design\",\r\n template:\r\n `\r\n
\r\n
\r\n
Save your design
\r\n
Choose a name for your design
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
This design name already exists, please choose a different name.
\r\n
Please name your design.
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n \r\n\r\n `\r\n }\r\n)\r\nexport class MobileSaveDesignComponent extends SaveDesignComponent {\r\n \r\n \r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/mobile/design/saveDesign.component.ts","import {Component, Input, Output, EventEmitter, OnDestroy} from \"@angular/core\";\r\nimport {Router} from \"@angular/router\";\r\nimport {Subscription} from \"rxjs/Subscription\";\r\nimport {ShareHelperService} from \"../../../services/shareHelper.service\";\r\nimport {SaveProcessorService} from \"../../../services/saveProcessor.service\";\r\nimport {SharedDesignsService} from \"../../../resources/sharedDesigns\";\r\nimport {AppEvents} from \"../../../appEvents\";\r\nimport { ShareComponent } from \"../../desktop/share/share.component\";\r\n\r\n\r\ndeclare var $:any ;\r\n\r\n@Component(\r\n {\r\n selector: \"ecc-mobile-share\",\r\n template: \r\n`\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
Share
\r\n
\r\n\r\n
\r\n
Share a design screenshot
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Share your design URL
\r\n
\r\n {{designURL}}\r\n
\r\n
\r\n \r\n
\r\n Note! Save your design to share it!
\r\n \r\n
\r\n
\r\n` \r\n }\r\n)\r\nexport class MobileShareComponent extends ShareComponent {\r\n \r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/mobile/share/share.component.ts","import {Component, Input, OnInit, ElementRef, OnDestroy} from \"@angular/core\";\r\nimport {Subscription} from \"rxjs/Subscription\";\r\nimport {AppEvents} from \"../../appEvents\";\r\n\r\ndeclare var $: any;\r\n\r\n@Component({\r\n selector: \"ecc-guideline\",\r\n template:\r\n `\r\n
\r\n {{guideline.name}}\r\n
\r\n `,\r\n})\r\nexport class GuidelineComponent implements OnInit, OnDestroy {\r\n @Input() set guidelines (guidelines: any) {\r\n this._guidelines = guidelines;\r\n }\r\n\r\n _guidelines: any = void 0;\r\n moveArtboardSubscription: Subscription;\r\n\r\n constructor(private el: ElementRef) {\r\n this.moveArtboardSubscription = AppEvents.moveArtboardO.subscribe((moveBy: any) => {\r\n this.moveGuidelinesBy(moveBy);\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n ngOnDestroy(){\r\n this.moveArtboardSubscription.unsubscribe();\r\n }\r\n\r\n moveGuidelinesBy(moveBy: any) {\r\n this._guidelines.forEach((guideline: any) => {\r\n if(guideline.isPercentage) {\r\n guideline.area.top -= (moveBy / 100);\r\n }\r\n });\r\n }\r\n\r\n setGuidelines(guideline: any) {\r\n if(guideline.area) {\r\n if(guideline.isPercentage) {\r\n return {\r\n \"top\": guideline.area.top * 100 + \"%\",\r\n \"left\": guideline.area.left * 100+ \"%\",\r\n \"width\": guideline.area.width * 100 + \"%\",\r\n \"height\": guideline.area.height * 100 + \"%\" \r\n };\r\n }\r\n else {\r\n return {\r\n \"top\": guideline.area.top + \"px\",\r\n \"left\": guideline.area.left + \"px\",\r\n \"width\": guideline.area.width + \"px\",\r\n \"height\": guideline.area.height + \"px\" \r\n };\r\n }\r\n }\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/product/guideline.component.ts","import {Component, OnInit, Input} from \"@angular/core\";\r\nimport {AppEvents} from \"../../appEvents\";\r\n\r\n@Component({\r\n selector : \"ecc-product-view-loaded\",\r\n template: ``\r\n})\r\nexport class ProductViewLoadedComponent implements OnInit {\r\n\r\n @Input() product: any;\r\n @Input() view: any;\r\n appEvents: AppEvents = new AppEvents();\r\n\r\n ngOnInit() {\r\n //console.log(\"Product view loaded...\");\r\n }\r\n\r\n imageLoaded() {\r\n // setTimeout( () => {\r\n // //console.log(\"Product view image loaded\");\r\n // this.appEvents.emitProductViewLoaded(this.view);\r\n // }, 300);\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/product/productViewLoaded.component.ts","import {Component, Input} from \"@angular/core\";\r\n\r\n@Component(\r\n {\r\n selector: \"ecc-saving\",\r\n template:\r\n `\r\n
\r\n

Processing images...

\r\n

Saving...

\r\n
\r\n `\r\n }\r\n)\r\nexport class SavingComponent{\r\n @Input() set isProcessing(_isProcessing: boolean){ // get this from $scope.isProcessing{\r\n if(_isProcessing){\r\n this._isProcessing = _isProcessing;\r\n }\r\n }\r\n _isProcessing: boolean = false;\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/components/product/saving.component.ts","import {Directive, ElementRef, Input, OnInit} from \"@angular/core\";\r\nimport {Subscription} from \"rxjs/Subscription\";\r\n\r\nimport {CONFIG} from \"../../environments/environment\";\r\nimport {ProductViewsComponent} from \"../components/product/productViews.component\";\r\nimport {AppEvents} from \"../appEvents\";\r\n\r\ndeclare var $: any;\r\ndeclare var _: any;\r\n\r\n@Directive(\r\n {\r\n selector: \"[ecc-app-height]\",\r\n // host:{\r\n // \"(window:resize)\": \"onWindowResize()\"\r\n // }\r\n }\r\n)\r\nexport class AppHeightDirective {\r\n\r\n @Input() set product(_product: any) {\r\n if(_product){\r\n this._product = _product;\r\n }\r\n }\r\n @Input() set pView(productView: any) {\r\n if(productView) {\r\n this._productView = productView;\r\n }\r\n }\r\n \r\n _product: any;\r\n _productView : any;\r\n appEvents: AppEvents = new AppEvents();\r\n\r\n constructor(private el: ElementRef){\r\n }\r\n \r\n\r\n setAppHeight(height: number) {\r\n $(this.el.nativeElement).height(height);\r\n }\r\n \r\n // onWindowResize(){\r\n // if(this._productView) {\r\n // var height = $('.product-view').height() + 25;\r\n // this.setAppHeight(height);\r\n // let designElements: any = [];\r\n\r\n // this._productView.designElements.forEach(element => {\r\n // designElements.push(JSON.parse(JSON.stringify(element)));\r\n // });\r\n // this._productView.designElements = [];\r\n // this._productView.designElements = designElements;\r\n // this.appEvents.emitProductViewChange(this._productView);\r\n // }\r\n // }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/directives/AppHeight.directive.ts","import {Directive, ElementRef, Input, Output, OnInit, OnDestroy, EventEmitter} from \"@angular/core\";\r\nimport {Subscription} from \"rxjs/Subscription\";\r\nimport {AppEvents} from \"../appEvents\";\r\nimport {SelectedDesignColorsService} from \"../services/selectedDesignColors.service\";\r\nimport {ElementPositionHelperService} from \"../services/elementPositionHelper.service\";\r\nimport {ClipartContentService} from \"../resources/clipartContent\";\r\n\r\ndeclare var $: any;\r\n//declare var Snap: any;\r\n@Directive(\r\n {\r\n selector: \"[ecc-clipart-color-map]\"\r\n }\r\n)\r\nexport class ClipartColorMapDirective implements OnInit, OnDestroy{\r\n \r\n @Input() set size(_size: any) {\r\n if(this._designElement && _size && _size.ratio) {\r\n this._designElement.resize = true;\r\n //let newRatio = _size.width / this._designElement.borderBox.size.width;\r\n let newBoxWidth = this._designElement.borderBox.size.width * _size.ratio; \r\n let newBoxHeight = this._designElement.borderBox.size.height * _size.ratio;\r\n let elementWidth = this._designElement.size.width * _size.ratio;\r\n let elementHeight = this._designElement.size.height * _size.ratio;\r\n\r\n let width = elementWidth * this._view.borderBox.size.width / 100;\r\n let height = elementHeight * this._view.borderBox.size.height / 100;\r\n \r\n $(this.divClipart).closest(\".design-element.clipart-element\").css({\r\n \"width\": width + \"px\", \r\n \"height\": height + \"px\", \r\n });\r\n $(this.el.nativeElement).css({\r\n \"width\": width + \"px\", \r\n \"height\": height + \"px\", \r\n });\r\n\r\n // add margin when resizing to resize around center.\r\n // let marginLeft: any = 0, marginTop: any = 0;\r\n // marginLeft = (elementWidth - this._designElement.size.width) / 2;\r\n // marginTop = (elementHeight - this._designElement.size.height) / 2;\r\n // if(_size.ratio > 0) {\r\n // $(this.divClipart).closest(\".design-element.clipart-element\").css({\r\n // \"margin-left\": -marginLeft + \"%\", \r\n // }); \r\n // }\r\n // else {\r\n // $(this.divClipart).closest(\".design-element.clipart-element\").css({\r\n // \"margin-left\": marginLeft + \"%\", \r\n // });\r\n // }\r\n\r\n this.setElementSizeString($(this.el.nativeElement).width(), $(this.el.nativeElement).height());\r\n this._designElement.maxEmbroiderySizeReached = false;\r\n\r\n if(_size.done) {\r\n let editableArea = this._view.borderBox.size; //$(this.el.nativeElement).closest('.editable-area');\r\n let newPosition: any = $(this.divClipart).closest(\".design-element.clipart-element\").position();\r\n this._designElement.resize = false;\r\n\r\n // marginTop = $(this.divClipart).closest(\".design-element.clipart-element\").css(\"margin-top\");\r\n // marginLeft = $(this.divClipart).closest(\".design-element.clipart-element\").css(\"margin-left\");\r\n\r\n // newPosition.top = (this._designElement.position.top + (parseInt(marginTop) / editableArea.height) * 100) ;\r\n // newPosition.left = (this._designElement.position.left + (parseInt(marginLeft) / editableArea.width) * 100) ;\r\n\r\n newPosition.top = this._designElement.position.top;\r\n newPosition.left = this._designElement.position.left;\r\n \r\n let $closest = $(this.divClipart).closest(\".design-element.clipart-element\");\r\n let top = (newPosition.top * editableArea.height / 100);\r\n let left = (newPosition.left * editableArea.width / 100)\r\n \r\n $closest.css({\r\n // \"margin-left\": 0, \r\n // \"margin-top\": 0, \r\n \"top\": top + \"px\",\r\n \"left\": left + \"px\",\r\n });\r\n\r\n this._designElement.position.top = newPosition.top;\r\n this._designElement.position.left = newPosition.left;\r\n this._designElement.size.width = elementWidth;\r\n this._designElement.size.height = elementHeight;\r\n this._designElement.borderBox.size.width = newBoxWidth; \r\n this._designElement.borderBox.size.height = newBoxHeight;\r\n\r\n this.checkElementPositionInPrintableArea();\r\n \r\n if(_size.maxSizeReached && this._designElement.isEmbroidery) {\r\n this._designElement.maxEmbroiderySizeReached = true;\r\n }\r\n this.appEvents.emitMaxSizeReached(this._designElement);\r\n this.appEvents.emitSaveState();\r\n }\r\n }\r\n } \r\n @Input() set designElement(_designElement: any){\r\n if(_designElement){\r\n this._designElement = _designElement;\r\n }\r\n }\r\n \r\n @Input() divClipart: any;\r\n @Input() maxWidthRatio : number = 1;\r\n @Input() maxHeightRatio: number = 1;\r\n @Input() set view(_view: any) {\r\n if(_view) {\r\n this._view = _view;\r\n }\r\n }\r\n @Output() embroideryMaxSizeReached: EventEmitter = new EventEmitter(); \r\n \r\n $allPaths: any; \r\n $paths: any; \r\n $svg: any;\r\n $whitePaths: any;\r\n whiteSelectors: any;\r\n _designElement: any;\r\n whiteSelectionSubscription: Subscription;\r\n colorSubscription: Subscription;\r\n clipart: any; \r\n rotationSubscription: Subscription;\r\n appEvents: AppEvents = new AppEvents();\r\n _view: any;\r\n \r\n constructor(private el: ElementRef, private selectedColorsService: SelectedDesignColorsService,\r\n private clipartContentService: ClipartContentService, private elementPositionHelperService: ElementPositionHelperService){\r\n this.whiteSelectionSubscription = AppEvents.clipartWhiteO.subscribe((designElement) => {\r\n if(designElement === this._designElement){\r\n this.setWhiteIsRemoved(designElement.whiteIsRemoved);\r\n }\r\n });\r\n \r\n this.colorSubscription = AppEvents.clipartColorO.subscribe((designElement) => {\r\n if(designElement === this._designElement){\r\n this.setColorHex(designElement.color.hex);\r\n }\r\n });\r\n\r\n this.rotationSubscription = AppEvents.currentDesignElementRotationO.subscribe((designElement) => {\r\n if(this._designElement === designElement) {\r\n this.animate(designElement.rotationAngle);\r\n }\r\n });\r\n }\r\n \r\n ngOnInit(){\r\n // load data from source\r\n this.clipartContentService.get(this._designElement.source).subscribe((obj) => {\r\n //Snap.load(this._designElement.source, (data: any) => {\r\n //$(this.el.nativeElement).html(data.node.outerHTML);\r\n $(this.el.nativeElement).html(obj.content);\r\n\r\n let editableArea = this._view.borderBox.size;\r\n let editableAreaWidth = editableArea.width;\r\n let editableAreaHeight = editableArea.height;\r\n\r\n if(!this._designElement.size) {\r\n\r\n // for the first time when the clipart is added, set the width to be 100px. Don't assign percent, it won't work.\r\n $(this.el.nativeElement).css({\r\n width: 100,\r\n height: \"auto\",\r\n });\r\n \r\n var svg = $(this.divClipart).find('svg')[0];\r\n let boundingBox = svg.getBoundingClientRect();\r\n\r\n this._designElement.size = {\r\n width: (boundingBox.width / editableAreaWidth) * 100,\r\n height: (boundingBox.height / editableAreaHeight) * 100\r\n }\r\n this._designElement.originalRatio = boundingBox.width / boundingBox.height;\r\n }\r\n else if(this._designElement.originalRatio) {\r\n let width, height : any;\r\n\r\n width = this._designElement.size.width * this._view.borderBox.size.width / 100;\r\n height = width / this._designElement.originalRatio;\r\n\r\n this._designElement.borderBox.size.width = this._designElement.size.width = width * 100 / this._view.borderBox.size.width;\r\n this._designElement.borderBox.size.height = this._designElement.size.height = height * 100 / this._view.borderBox.size.height;\r\n\r\n // $(this.el.nativeElement).css({\r\n // width: this._designElement.sizeInPx.width,\r\n // height: this._designElement.sizeInPx.height,\r\n // });\r\n \r\n // var svg = $(this.divClipart).find('svg')[0];\r\n // let boundingBox = svg.getBoundingClientRect();\r\n\r\n // this._designElement.size = {\r\n // width: (boundingBox.width / editableAreaWidth) * 100,\r\n // height: (boundingBox.height / editableAreaHeight) * 100\r\n // }\r\n // this._designElement.duplicated = false;\r\n }\r\n\r\n if(this._designElement.isEmbroidery) {\r\n let width = this._view.borderBox.size.width * this.maxWidthRatio;\r\n let height = this._view.borderBox.size.height * this.maxHeightRatio;\r\n let elementWidth = this._designElement.size.width * this._view.borderBox.size.width / 100;\r\n let elementHeight = this._designElement.size.height * this._view.borderBox.size.height / 100;\r\n \r\n if(elementWidth > width) {\r\n let ratio = width / elementWidth;\r\n elementWidth = elementWidth * ratio;\r\n elementHeight = elementHeight * ratio;\r\n }\r\n if(elementHeight > height) {\r\n let ratio = height / elementHeight;\r\n elementWidth = elementWidth * ratio;\r\n elementHeight = elementHeight * ratio;\r\n }\r\n\r\n this._designElement.size.width = (elementWidth / this._view.borderBox.size.width) * 100;\r\n this._designElement.size.height = (elementHeight / this._view.borderBox.size.height) * 100;\r\n\r\n this.appEvents.resizeBox({\r\n designElement: this._designElement,\r\n width: width,\r\n height: height,\r\n });\r\n }\r\n\r\n if(!this._designElement.paper) {\r\n this._designElement.paper = {\r\n width: this._designElement.size.width,\r\n height: this._designElement.size.height\r\n };\r\n }\r\n\r\n // set border box size\r\n this._designElement.borderBox.size.width = this._designElement.size.width;\r\n this._designElement.borderBox.size.height = this._designElement.size.height;\r\n let $closest = $(this.divClipart).closest(\".design-element.clipart-element\");\r\n\r\n $(this.el.nativeElement).css({\r\n \"width\": (this._designElement.borderBox.size.width * editableArea.width / 100) + \"px\",\r\n \"height\": (this._designElement.borderBox.size.height * editableArea.height / 100) + \"px\",\r\n \"position\": \"absolute\",\r\n });\r\n $closest.css({\r\n \"width\": (this._designElement.borderBox.size.width * editableArea.width / 100) + \"px\",\r\n \"height\": (this._designElement.borderBox.size.height * editableArea.height / 100) + \"px\",\r\n });\r\n\r\n if(this._designElement.rotationAngle > -181 && this._designElement.rotationAngle < 181) {\r\n this.animate(this._designElement.rotationAngle);\r\n }\r\n\r\n this.setElementSizeString($(this.el.nativeElement).width(), $(this.el.nativeElement).height());\r\n\r\n this.$svg = $(this.divClipart).find('svg');\r\n this.$allPaths = this.$svg.find('path, rect, circle, polygon, ellipse, line, polyline');\r\n this.$paths = this.$allPaths.not(this.whiteSelectors);\r\n this.$whitePaths = this.$allPaths.filter(this.whiteSelectors);\r\n\r\n if(this._designElement.color){\r\n this.setColorHex(this._designElement.color.hex);\r\n //this.selectedColorsService.setSelectedColorInView(this._view, this._designElement.color);\r\n }\r\n this.setWhiteIsRemoved(this._designElement.whiteIsRemoved); \r\n });\r\n\r\n }\r\n\r\n checkElementPositionInPrintableArea() {\r\n let position: any;\r\n let elem = $(this.el.nativeElement).closest(\".design-element.clipart-element\");\r\n let editableArea = elem.closest(\"#editable-area\");\r\n let newPosition: any = elem.position();\r\n let editableAreaWidth = editableArea.width();\r\n let editableAreaHeight = editableArea.height();\r\n\r\n position = this.elementPositionHelperService.getElementPosition(this._designElement, newPosition.top, newPosition.left, \r\n elem.width(), elem.height(), editableAreaWidth, editableAreaHeight);\r\n\r\n if(position.left < 0 || position.left > editableAreaWidth ||\r\n position.top < 0 || position.top > editableAreaHeight ||\r\n position.right < 0 || position.right > editableAreaWidth ||\r\n position.bottom < 0 || position.bottom > editableAreaHeight) {\r\n elem.removeClass('studio__view-workspace-item--active');\r\n elem.addClass('studio__view-workspace-item--active--red');\r\n this.appEvents.emitDesignOutsidePrintArea({\r\n designElement: this._designElement,\r\n showMessage: true\r\n });\r\n }\r\n else {\r\n elem.removeClass('studio__view-workspace-item--active--red');\r\n elem.addClass('studio__view-workspace-item--active');\r\n this.appEvents.emitDesignOutsidePrintArea({\r\n designElement: this._designElement,\r\n showMessage: false\r\n });\r\n }\r\n }\r\n\r\n setElementSizeString(elementWidth: any, elementHeight: any){\r\n if(this._designElement.pixelsPerInch > 0) {\r\n let elementSizeStr = \"\" + (elementWidth / this._designElement.pixelsPerInch).toFixed(2) + \" x \" \r\n + (elementHeight / this._designElement.pixelsPerInch).toFixed(2) ;\r\n this._designElement.inches = elementSizeStr;\r\n $(this.el.nativeElement).find(\".elementSize\").html(elementSizeStr);\r\n }\r\n }\r\n \r\n ngOnDestroy(){\r\n this.whiteSelectionSubscription.unsubscribe();\r\n this.colorSubscription.unsubscribe();\r\n this.rotationSubscription.unsubscribe();\r\n }\r\n \r\n setColorHex(hex: string){\r\n let i : any = 0;\r\n for(i = 0; i < this.$paths.length; i++) {\r\n let element = this.$paths[i];\r\n let strokeColor = $(element).css('stroke');\r\n if(strokeColor !== \"none\") {\r\n $(element).css('stroke', hex);\r\n }\r\n let fillColor = $(element).css('fill');\r\n if(fillColor !== \"none\") {\r\n $(element).css('fill', hex);\r\n }\r\n }\r\n }\r\n \r\n setWhiteIsRemoved(isRemoved: boolean){\r\n let fill: any;\r\n fill = isRemoved ? \"transparent\" : \"#FFF\";\r\n this.$whitePaths.attr('fill', fill);\r\n }\r\n \r\n animate(angle) {\r\n // let transformString = \"R\" + angle;\r\n // if(this.g) {\r\n // this.g.transform(transformString);\r\n // }\r\n let rotateString = \"rotate(\" + angle + \"deg)\";\r\n $(this.el.nativeElement).parent(\".design-element.clipart-element\").css({\r\n \"-ms-transform\": rotateString,\r\n \"-webkit-transform\": rotateString,\r\n \"transform\": rotateString\r\n });\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/directives/clipartColor.directive.ts","import {Directive, ElementRef, Input, OnInit, OnDestroy} from \"@angular/core\";\r\nimport {Subscription} from \"rxjs/Subscription\";\r\n\r\nimport {CONFIG} from \"../../environments/environment\";\r\nimport {AppEvents} from \"../appEvents\";\r\nimport {BaseClass} from \"../components/base.class\";\r\n\r\ndeclare var $: any;\r\n\r\n@Directive(\r\n {\r\n selector: \"[ecc-display-size]\",\r\n }\r\n)\r\nexport class DisplaySizeDirective extends BaseClass implements OnInit, OnDestroy {\r\n\r\n @Input() set color(_color: any){ \r\n if(_color){\r\n this._color = _color;\r\n }\r\n }\r\n @Input() set pView(_productView: any){ \r\n if(_productView){\r\n this._productView = _productView;\r\n }\r\n }\r\n\r\n _productView: any;\r\n _color: any;\r\n colorSubscription: Subscription;\r\n\r\n constructor(private el: ElementRef) {\r\n super(); \r\n this.colorSubscription = AppEvents.colorO.subscribe((color) => {\r\n this._color = color;\r\n this.setSize();\r\n });\r\n }\r\n\r\n ngOnDestroy(){\r\n this.colorSubscription.unsubscribe();\r\n }\r\n\r\n ngOnInit() {\r\n this.setSize();\r\n }\r\n\r\n setSize() {\r\n let bgColor:any= \"#e1e1e1\";\r\n if(this._color) {\r\n bgColor = this.getColor(this._color.hex);\r\n }\r\n $(this.el.nativeElement).css({\r\n color: bgColor,\r\n });\r\n if(this._productView && this._productView.editableArea.width > 0 && this._productView.editableArea.height > 0) {\r\n let size = \"\" + this._productView.editableArea.width + \" in x \" + this._productView.editableArea.height + \" in\";\r\n $(this.el.nativeElement).html(size);\r\n }\r\n // $(this.el.nativeElement).closest(\".editable-area\").css({\r\n // border: \"solid 1px \" + bgColor\r\n // });\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/directives/displaySize.directive.ts","import {Directive, Input, Output, ElementRef, OnInit, EventEmitter, OnDestroy} from \"@angular/core\";\r\nimport {Subscription} from \"rxjs/Subscription\";\r\nimport {DesignHelperService} from \"../services/designHelper.service\";\r\nimport {AppEvents} from \"../appEvents\";\r\nimport { ElementPositionHelperService } from \"app/services/elementPositionHelper.service\";\r\n\r\ndeclare var $: any;\r\n\r\n@Directive(\r\n {\r\n selector: \"[ecc-draggable]\"\r\n }\r\n) \r\nexport class DraggableDirective implements OnInit, OnDestroy {\r\n \r\n @Input() position: any; // get it from scope.designElement.position\r\n @Input() set isLocked(locked: boolean) {\r\n if(this.initialized) {\r\n if(locked) {\r\n $(this.el.nativeElement).draggable('disable');\r\n }\r\n else {\r\n $(this.el.nativeElement).draggable('enable');\r\n }\r\n }\r\n }\r\n @Input() set designElement(_designElement: any) {\r\n if(_designElement) {\r\n this._designElement = _designElement;\r\n }\r\n }\r\n @Input() zoomScale: any = 1;\r\n @Input() set pView(_productView: any){ // scope.productView\r\n if(_productView){\r\n this._productView = _productView;\r\n }\r\n }\r\n @Input() isElementActive: boolean = false;\r\n @Output() setPosition: EventEmitter = new EventEmitter(); // assign position to scope.designElement.position\r\n @Output() emitContent: EventEmitter = new EventEmitter(); \r\n \r\n appEvents: AppEvents = new AppEvents();\r\n element: any;\r\n parentBorder: any = {\r\n top: 0,\r\n left: 0,\r\n bottom: 0,\r\n right: 0\r\n };\r\n snapTolerance: number = 5;\r\n bottomOffset: any = 0;\r\n rightOffset: any = 0;\r\n recoupLeft: any = 0; \r\n recoupTop: any = 0;\r\n initialized: boolean = false;\r\n _designElement: any;\r\n _productView: any;\r\n repositionElementSubscription: Subscription;\r\n rotationPositionSubscription: Subscription;\r\n designOutsidePrintAreaSubscription: Subscription;\r\n \r\n constructor(private el: ElementRef, private designHelper: DesignHelperService, private elemPositionHelper: ElementPositionHelperService) {\r\n this.repositionElementSubscription = AppEvents.repositionElementO.subscribe((obj: any) => {\r\n if(obj.element === this._designElement) {\r\n let top = obj.element.position.top * obj.view.borderBox.size.height / 100;\r\n $(this.el.nativeElement).css({\r\n top: top + 'px',\r\n });\r\n this.elemPositionHelper.assignRotationPosition(this._designElement, $(this.el.nativeElement).position());\r\n }\r\n });\r\n this.designOutsidePrintAreaSubscription = AppEvents.designOutsidePrintAreaO.subscribe((obj) => {\r\n if(obj.designElement === this._designElement) {\r\n if(obj.showMessage) {\r\n $(this.el.nativeElement).removeClass('studio__view-workspace-item--active');\r\n $(this.el.nativeElement).addClass('studio__view-workspace-item--active--red');\r\n }\r\n else {\r\n $(this.el.nativeElement).removeClass('studio__view-workspace-item--active--red');\r\n $(this.el.nativeElement).addClass('studio__view-workspace-item--active');\r\n }\r\n }\r\n });\r\n this.rotationPositionSubscription = AppEvents.rotationPositionO.subscribe((designElement: any) => {\r\n if(designElement === this._designElement) {\r\n this.elemPositionHelper.assignRotationPosition(designElement, $(this.el.nativeElement).position());\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.repositionElementSubscription.unsubscribe();\r\n this.rotationPositionSubscription.unsubscribe();\r\n this.designOutsidePrintAreaSubscription.unsubscribe();\r\n }\r\n\r\n ngOnInit() {\r\n this.setDraggable();\r\n }\r\n\r\n setInitPosition() {\r\n let elem = $(this.el.nativeElement);\r\n let editableArea = elem.closest(\"#editable-area\");\r\n let editableAreaWidth = this._productView.borderBox.size.width;\r\n let editableAreaHeight = this._productView.borderBox.size.height;\r\n\r\n if(!this._designElement.isPercent) {\r\n\r\n if(this._productView && this._productView.imageSize) {\r\n let left = this._productView.imageSize.width * this._productView.editableArea.left;\r\n let top = this._productView.imageSize.height * this._productView.editableArea.top;\r\n let right = this._productView.imageSize.width * this._productView.editableArea.right;\r\n let bottom = this._productView.imageSize.height * this._productView.editableArea.bottom;\r\n \r\n editableAreaWidth = this._productView.imageSize.width - (right + left);\r\n editableAreaHeight = this._productView.imageSize.height - (bottom + top); \r\n }\r\n\r\n // calculate position in percent\r\n this._designElement.size.height = (this._designElement.size.height / editableAreaHeight) * 100;\r\n this._designElement.size.width = (this._designElement.size.width / editableAreaWidth) * 100;\r\n this._designElement.borderBox.size.height = (this._designElement.borderBox.size.height / editableAreaHeight) * 100;\r\n this._designElement.borderBox.size.width = (this._designElement.borderBox.size.width / editableAreaWidth) * 100;\r\n\r\n // calculate size in percent\r\n this._designElement.position.top = (this._designElement.position.top / editableAreaHeight) * 100;\r\n this._designElement.position.left = (this._designElement.position.left / editableAreaWidth) * 100;\r\n\r\n if(this._designElement.locationPosition && (this._designElement.locationPosition.top > 0 || this._designElement.locationPosition.left > 0)) {\r\n this._designElement.position.top = (this._designElement.locationPosition.top);\r\n this._designElement.position.left = (this._designElement.locationPosition.left);\r\n }\r\n\r\n this._designElement.borderBox.position.top = (this._designElement.borderBox.position.top / editableAreaHeight) * 100;\r\n this._designElement.borderBox.position.left = (this._designElement.borderBox.position.left / editableAreaWidth) * 100;\r\n\r\n this._designElement.isPercent = true;\r\n }\r\n $(this.el.nativeElement).css({\r\n top: (this.position.top * editableAreaHeight / 100) + 'px',\r\n left: (this.position.left * editableAreaWidth / 100) + 'px'\r\n });\r\n // if(this._designElement.type == \"image\") {\r\n // $(this.el.nativeElement).css({\r\n // top: (this.position.top * editableAreaHeight / 100) + 'px',\r\n // left: (this.position.left * editableAreaWidth / 100) + 'px'\r\n // });\r\n // }\r\n // else {\r\n // $(this.el.nativeElement).css({\r\n // top: this.position.top + '%',\r\n // left: this.position.left + '%'\r\n // });\r\n // }\r\n };\r\n \r\n setDraggable() {\r\n this.element = this.el.nativeElement;\r\n this._designElement.$el = $(this.el.nativeElement);\r\n $(this.el.nativeElement).draggable({\r\n //containment: \"#current-product-view-img\",\r\n // scroll: true,\r\n grid: [1,1],\r\n snap: \".centerLines\",\r\n snapMode: \"both\",\r\n snapTolerance: this.snapTolerance,\r\n changePosition: true,\r\n // create: (event: any, ui: any) => {\r\n // $(document).on('keydown', (e) => {\r\n // if(this.isElementActive && !this._designElement.isLocked) {\r\n // let elemOffset = $(this.el.nativeElement).offset();\r\n // let containerOffset = $(this.el.nativeElement).closest(\"#current-product-view-img\").offset();\r\n // let elementPosition = {\r\n // left: elemOffset.left,\r\n // top: elemOffset.top,\r\n // right: elemOffset.left + $(this.element).width(),\r\n // bottom: elemOffset.top + $(this.element).height()\r\n // };\r\n // let containerPosition = {\r\n // left: containerOffset.left,\r\n // top: containerOffset.top,\r\n // right: containerOffset.left + $(this.el.nativeElement).closest(\"#current-product-view-img\").width(),\r\n // bottom: containerOffset.top + $(this.el.nativeElement).closest(\"#current-product-view-img\").height()\r\n // }\r\n // switch(e.which) {\r\n // case 37: {\r\n // e.preventDefault();\r\n // if(elementPosition.left - 1 > containerPosition.left) {\r\n // let left = parseFloat($(this.el.nativeElement).css('left')) - 1;\r\n // $(this.el.nativeElement).css('left', left + 'px');\r\n // }\r\n // break;\r\n // }\r\n // case 39: {\r\n // e.preventDefault();\r\n // if(elementPosition.right + 1 < containerPosition.right) {\r\n // let left = parseFloat($(this.el.nativeElement).css('left')) + 1;\r\n // $(this.el.nativeElement).css('left', left + 'px');\r\n // }\r\n // break;\r\n // }\r\n // case 38: {\r\n // e.preventDefault();\r\n // if(elementPosition.top - 1 > containerPosition.top) {\r\n // let top = parseFloat($(this.el.nativeElement).css('top')) - 1;\r\n // $(this.el.nativeElement).css('top', top + 'px');\r\n // }\r\n // break;\r\n // }\r\n // case 40: {\r\n // e.preventDefault();\r\n // if(elementPosition.bottom + 1 < containerPosition.bottom) {\r\n // let top = parseFloat($(this.el.nativeElement).css('top')) + 1;\r\n // $(this.el.nativeElement).css('top', top + 'px');\r\n // }\r\n // break;\r\n // }\r\n // }\r\n // }\r\n // }).on('keyup', (e) => {\r\n // if(this.isElementActive && !this._designElement.isLocked) {\r\n // var key = e.which;\r\n // if(key == 37 || key == 38 || key == 39 || key == 40){\r\n // this.stopDragging();\r\n // }\r\n // }\r\n // });\r\n // },\r\n start: (event: any, ui: any) => { \r\n },\r\n drag: (event: any, ui: any) => {\r\n let elem = $(this.el.nativeElement);\r\n let currentProductView = elem.closest(\".current-product-view-img\");\r\n let editableArea = elem.closest(\".editable-area\");\r\n let top, left: any;\r\n\r\n top = ui.position.top;\r\n left = ui.position.left;\r\n\r\n if(this.parentBorder.top === 0 || this.parentBorder.bottom === 0 || this.parentBorder.left === 0 || this.parentBorder.right === 0) {\r\n let parentTL = currentProductView.find(\".handle.tl\");\r\n let parentTR = currentProductView.find(\".handle.tr\");\r\n let parentBR = currentProductView.find(\".handle.br\");\r\n let parentBL = currentProductView.find(\".handle.bl\");\r\n let parentBorder = this.designHelper.getBoundaryFromCorners(parentTL.offset(), \r\n parentBL.offset(), parentTR.offset(), parentBR.offset());\r\n this.parentBorder.top = parentBorder.top;\r\n this.parentBorder.bottom = parentBorder.bottom;\r\n this.parentBorder.left = parentBorder.left;\r\n this.parentBorder.right = parentBorder.right;\r\n //console.log(parentBorder);\r\n }\r\n\r\n let leftTop = elem.find(\".handle.nw\");\r\n let leftBottom = elem.find(\".handle.sw\");\r\n let rightTop = elem.find(\".handle.ne\");\r\n let rightBottom = elem.find(\".handle.se\");\r\n\r\n let childBorder = this.designHelper.getBoundaryFromCorners(leftTop.offset(), \r\n leftBottom.offset(), rightTop.offset(), rightBottom.offset());\r\n //console.log(childBoundary);\r\n\r\n // limit top movement\r\n if(ui.offset.top < this.parentBorder.top) {\r\n top = ui.position.top + (this.parentBorder.top - ui.offset.top);\r\n }\r\n\r\n // limit left movement\r\n if(ui.offset.left < this.parentBorder.left) {\r\n left = ui.position.left + (this.parentBorder.left - ui.offset.left);\r\n }\r\n\r\n // limit bottom movement\r\n let childHeight = childBorder.bottom - childBorder.top;\r\n let childBottom = ui.offset.top + childHeight;\r\n if(childBottom > this.parentBorder.bottom) {\r\n top = ui.position.top - (childBottom - this.parentBorder.bottom);\r\n }\r\n\r\n // limit right movement\r\n let childWidth = childBorder.right - childBorder.left;\r\n let childRight = ui.offset.left + childWidth;\r\n if(childRight > this.parentBorder.right) {\r\n left = ui.position.left - (childRight - this.parentBorder.right);\r\n }\r\n\r\n if(this.zoomScale > 1) {\r\n left = ui.originalPosition.left - (ui.originalPosition.left - ui.position.left) / this.zoomScale;\r\n top = ui.originalPosition.top - (ui.originalPosition.top - ui.position.top) / this.zoomScale; \r\n }\r\n\r\n // snap to horizontal center\r\n let elemWidth: any = elem.width();\r\n let elemHeight: any = elem.height();\r\n let editableAreaWidth: any = editableArea.width();\r\n let editableAreaHeight: any = editableArea.height();\r\n\r\n if(Math.abs(ui.position.left + (elemWidth / 2) - editableAreaWidth / 2) < this.snapTolerance) {\r\n // -2 is for the element border\r\n left = (editableAreaWidth - elemWidth - 2) / 2;\r\n }\r\n\r\n // snap to vertical center\r\n if(Math.abs(ui.position.top + (elemHeight / 2) - editableAreaHeight / 2) < this.snapTolerance) {\r\n // -2 is for the element border\r\n top = (editableAreaHeight - elemHeight - 2) / 2;\r\n }\r\n\r\n ui.position.left = left;\r\n ui.position.top = top;\r\n },\r\n stop: (ev: any, ui: any) => {\r\n this.stopDragging();\r\n }\r\n });\r\n this.initialized = true;\r\n if(this._designElement.isLocked) {\r\n $(this.el.nativeElement).draggable('disable');\r\n }\r\n if(this._productView) {\r\n this.setInitPosition();\r\n }\r\n //console.log(\"Draggable...\");\r\n }\r\n\r\n stopDragging() {\r\n let elem = $(this.el.nativeElement);\r\n let editableArea = elem.closest(\"#editable-area\");\r\n let editableAreaWidth = editableArea.width();\r\n let editableAreaHeight = editableArea.height();\r\n\r\n let elemPosition = elem.position();\r\n let currentPosition = {\r\n top: elemPosition.top / this.zoomScale,\r\n left: elemPosition.left / this.zoomScale\r\n };\r\n\r\n \r\n let moveBy = {\r\n designElement: this._designElement,\r\n position: currentPosition,\r\n width: $(this.element).width(),\r\n height: $(this.element).height(),\r\n };\r\n\r\n let top = parseFloat($(this.el.nativeElement).css('top'));\r\n let left = parseFloat($(this.el.nativeElement).css('left'));\r\n\r\n this.elemPositionHelper.assignRotationPosition(this._designElement, currentPosition);\r\n\r\n let position = {\r\n top: (top / editableAreaHeight) * 100,\r\n left: (left / editableAreaWidth) * 100,\r\n right: ((left + $(this.element).width()) / editableAreaWidth) * 100,\r\n bottom: ((top + $(this.element).height()) / editableAreaHeight) * 100\r\n };\r\n\r\n //console.log(position);\r\n this.setPosition.emit(position);\r\n this.appEvents.emitCurrentDesignChanged(true);\r\n this.appEvents.emitCurrentDesignElementChange(this._designElement);\r\n this.appEvents.emitRepositionArtboard(moveBy);\r\n this.appEvents.emitSaveState();\r\n }\r\n\r\n // stopMouseDragging(ev: any, ui: any) {\r\n // let elem = $(this.el.nativeElement);\r\n // let editableArea = elem.closest(\"#editable-area\");\r\n // let editableAreaWidth = editableArea.width();\r\n // let editableAreaHeight = editableArea.height();\r\n\r\n // let currentPosition = elem.position();\r\n \r\n // let moveBy = {\r\n // designElement: this._designElement,\r\n // position: currentPosition,\r\n // width: $(this.element).width(),\r\n // height: $(this.element).height(),\r\n // };\r\n\r\n // let position = {\r\n // top: (ui.position.top / editableAreaHeight) * 100,\r\n // left: (ui.position.left / editableAreaWidth) * 100,\r\n // right: ((ui.position.left + $(this.element).width()) / editableAreaWidth) * 100,\r\n // bottom: ((ui.position.top + $(this.element).height()) / editableAreaHeight) * 100\r\n // };\r\n\r\n // //console.log(position);\r\n // this.setPosition.emit(position);\r\n // this.appEvents.emitCurrentDesignChanged(true);\r\n // this.appEvents.emitRepositionArtboard(moveBy);\r\n // }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/directives/draggable.directive.ts","import {Directive, Input, ElementRef, OnInit} from \"@angular/core\";\r\n\r\ndeclare var $: any;\r\n\r\n@Directive(\r\n {\r\n selector: \"[ecc-dropdown]\",\r\n host:{\r\n '(click)': 'onClick()'\r\n }\r\n }\r\n)\r\nexport class DropdownDirective implements OnInit{\r\n \r\n @Input () toggle: boolean = true;\r\n \r\n //arrows: any; \r\n //lis: any; \r\n //selected: any; \r\n ul: any;\r\n \r\n constructor(private el: ElementRef){}\r\n \r\n ngOnInit() {\r\n //this.selected = $(this.el.nativeElement).find('.selected');\r\n this.ul = $(this.el.nativeElement).find('ul');\r\n //this.lis = $(this.el.nativeElement).find('li');\r\n //this.arrows = $(this.el.nativeElement).find('.arrow');\r\n }\r\n \r\n onClick() {\r\n if(this.toggle) {\r\n this.ul.slideToggle();\r\n //this.arrows.toggle(0);\r\n }\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/directives/dropdown.directive.ts","import {Directive, Input, OnInit, ElementRef} from \"@angular/core\";\r\ndeclare var $ : any;\r\n\r\n@Directive(\r\n {\r\n selector: \"[ecc-droppable]\"\r\n }\r\n)\r\nexport class DroppableDirective implements OnInit{\r\n\r\n @Input() set guideline(guideline: any) {\r\n this._guideline = guideline;\r\n }\r\n\r\n _guideline: any;\r\n\r\n constructor(private el: ElementRef) {}\r\n\r\n ngOnInit() {\r\n let backgroundColor : any = \"#867979\";\r\n let tolerance: any = \"intersect\";\r\n\r\n if(this._guideline.restricted) {\r\n backgroundColor = \"#ff0000\";\r\n tolerance = \"touch\";\r\n }\r\n\r\n $(this.el.nativeElement).droppable({\r\n tolerance: tolerance,\r\n accept: '.design-element',\r\n over: (event: any, ui: any) => {\r\n $(this.el.nativeElement).css({\r\n 'opacity': '0.45',\r\n 'filter': \"alpha(opacity=45)\",\r\n 'background': backgroundColor,\r\n '-webkit-transition': \"opacity .5s ease-in-out\",\r\n '-moz-transition': \"opacity .5s ease-in-out\",\r\n '-ms-transition': \"opacity .5s ease-in-out\",\r\n '-o-transition': \"opacity .5s ease-in-out\",\r\n 'transition': \"opacity .5s ease-in-out\"\r\n });\r\n },\r\n out: (event: any, ui: any) => {\r\n $(this.el.nativeElement).css({\r\n 'opacity': '0',\r\n 'filter': \"alpha(opacity=0)\",\r\n 'background': \"none\",\r\n });\r\n },\r\n drop: (event: any, ui: any) => {\r\n if(!this._guideline.restricted) {\r\n $(this.el.nativeElement).css({\r\n 'opacity': '0',\r\n 'filter': \"alpha(opacity=0)\",\r\n 'background': \"none\",\r\n });\r\n }\r\n }\r\n });\r\n }\r\n} \r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/directives/droppable.directive.ts","import {Directive, Input, Output, OnInit, OnDestroy, EventEmitter, ElementRef} from \"@angular/core\";\r\nimport {Subscription} from \"rxjs/Subscription\";\r\nimport {AppEvents} from \"../appEvents\";\r\nimport { ElementPositionHelperService } from \"../services/elementPositionHelper.service\";\r\nimport { SelectedDesignElementsService } from \"../services/selectedDesignElements.service\";\r\n\r\ndeclare var $ : any;\r\ndeclare var _ : any;\r\n\r\n@Directive(\r\n {\r\n selector: \"[ecc-editable-area-position]\",\r\n // host:{\r\n // \"(window:resize)\": \"onWindowResize()\"\r\n // }\r\n }\r\n)\r\nexport class EditableAreaPositionDirective implements OnInit, OnDestroy { // TODO: Test this directive\r\n \r\n @Input() set color(_color: any){ // scope.color.images\r\n if(_color){\r\n this._color = _color;\r\n this.setProductView(this._color, this._productView);\r\n }\r\n }\r\n @Input() set pView(_productView: any){ // scope.productView\r\n if(_productView){\r\n this._productView = _productView;\r\n this.setProductView(this._color, this._productView);\r\n }\r\n }\r\n @Input() productViewImageElement : any;\r\n @Input() zoomScale : any = 1;\r\n @Output() imageLoaded: EventEmitter = new EventEmitter();\r\n \r\n $productViewContainer: any;\r\n imageSize: any = void 0;\r\n _productView: any;\r\n _color: any;\r\n productViewBorderBoxSubscription: Subscription;\r\n repositionArtboardSubscription: Subscription;\r\n appEvents: AppEvents = new AppEvents();\r\n\r\n constructor(private el: ElementRef, private elementPositionHelperService: ElementPositionHelperService, private selectedElementsService: SelectedDesignElementsService) {\r\n this.productViewBorderBoxSubscription = AppEvents.productViewBorderBoxO.subscribe((obj: any) => {\r\n this.setBorderBox(obj);\r\n });\r\n this.repositionArtboardSubscription = AppEvents.repositionArtboardO.subscribe((moveBy: any) => {\r\n if(!moveBy.groupedElements) {\r\n this.moveArtboard(moveBy);\r\n }\r\n else {\r\n this.moveArtboardByGroupedElements(moveBy);\r\n }\r\n });\r\n }\r\n \r\n ngOnInit(){\r\n //this.$productViewContainer = $('.current-product-view-img');\r\n // this.$productViewContainer = $(this.el.nativeElement).closest('.product-view-img');\r\n // this.setCss(this._productView.editableArea);\r\n //console.log(\"Editable area position...\");\r\n }\r\n\r\n ngOnDestroy(){\r\n this.productViewBorderBoxSubscription.unsubscribe();\r\n this.repositionArtboardSubscription.unsubscribe();\r\n }\r\n\r\n moveArtboard(moveBy: any) {\r\n if(this._productView && moveBy) {\r\n let position: any;\r\n\r\n position = this.elementPositionHelperService.getRotatedElementPosition(moveBy.designElement, moveBy.position, \r\n this._productView.borderBox.size.width, this._productView.borderBox.size.height);\r\n\r\n let topMinArtboard, topMaxArtboard : any;\r\n topMinArtboard = this._productView.editableArea.top * 100;\r\n topMaxArtboard = this._productView.editableArea.topMax * 100; \r\n\r\n let top, bottom, topSpace, bottomSpace, editableAreaHeight, elementTop, elementBottom: any;\r\n editableAreaHeight = this._productView.borderBox.size.height;\r\n elementTop = top = position.top; \r\n elementBottom = bottom = position.bottom;\r\n //elementHeight = (bottom - top); // * this._productView.size.height / 100;\r\n \r\n // find topSpace and bottomSpace \r\n this._productView.designElements.forEach(element => {\r\n if(element !== moveBy.designElement && element.$el) {\r\n let elementPosition = this.elementPositionHelperService.getRotatedElementPosition(element, element.$el.position(), \r\n this._productView.borderBox.size.width, this._productView.borderBox.size.height);\r\n if(top > elementPosition.top) {\r\n top = elementPosition.top;\r\n }\r\n if(elementPosition.bottom > bottom) {\r\n bottom = elementPosition.bottom;\r\n }\r\n }\r\n });\r\n\r\n let difference = bottom - top;\r\n let editableAreaHeightInPercent = 100;\r\n let borderBoxPositionTop = this._productView.borderBox.position.top * 100;\r\n let borderBoxPositionTopInPx = this._productView.borderBox.position.top * this._productView.size.height;\r\n let topMaxInPx = topMaxArtboard * this._productView.size.height / 100;\r\n let elementTopAbsoluteInPx = elementTop * editableAreaHeight / 100;\r\n let elementBottomInPx = elementBottom * editableAreaHeight / 100;\r\n let bottomInPx = bottom * editableAreaHeight / 100;\r\n elementTopAbsoluteInPx = (elementTopAbsoluteInPx < 0) ? elementTopAbsoluteInPx * -1 : elementTopAbsoluteInPx;\r\n let artBoardTopInPx = (borderBoxPositionTop - topMinArtboard) * this._productView.size.height / 100;\r\n\r\n // if(difference > editableAreaHeightInPercent || \r\n // (topMaxArtboard == borderBoxPositionTop && elementBottom > editableAreaHeightInPercent) || \r\n // (topMinArtboard == borderBoxPositionTop && elementTop < 0) ||\r\n // ((elementTop < 0) && elementTopAbsoluteInPx > artBoardTopInPx) ||\r\n // ((borderBoxPositionTopInPx + bottomInPx) > (topMaxInPx + editableAreaHeight))\r\n // ) \r\n // if(difference > editableAreaHeightInPercent && (elementTop < 0 || elementBottom > editableAreaHeightInPercent) || \r\n // ((elementTop < 0) && elementTopAbsoluteInPx > artBoardTopInPx) ||\r\n // ((borderBoxPositionTopInPx + bottomInPx) > (topMaxInPx + editableAreaHeight)) \r\n if(difference > editableAreaHeightInPercent && (elementTop < 0 || elementBottom > editableAreaHeightInPercent) || \r\n (difference < editableAreaHeightInPercent && elementTop < 0 && elementTopAbsoluteInPx > artBoardTopInPx) ||\r\n (difference < editableAreaHeightInPercent && (borderBoxPositionTopInPx + elementBottomInPx) > (topMaxInPx + editableAreaHeight)) \r\n ) {\r\n this.appEvents.emitDesignOutsidePrintArea({\r\n designElement: moveBy.designElement,\r\n showMessage: true\r\n });\r\n }\r\n else {\r\n\r\n //check left and right element position\r\n if(position.left < 0 || position.left > 100 || \r\n position.right < 0 || position.right > 100) {\r\n this.appEvents.emitDesignOutsidePrintArea({\r\n designElement: moveBy.designElement,\r\n showMessage: true\r\n });\r\n }\r\n else {\r\n this.appEvents.emitDesignOutsidePrintArea({\r\n designElement: moveBy.designElement,\r\n showMessage: false\r\n });\r\n }\r\n\r\n if(difference < editableAreaHeightInPercent) {\r\n // find topBottomMargin : add the space between topY and top margin and bottomY and bottom margin, divide this space by 2\r\n topSpace = top;\r\n bottomSpace = (editableAreaHeightInPercent > bottom)? editableAreaHeightInPercent - bottom : 0;\r\n let topBottomMargin = (topSpace + bottomSpace) / 2;\r\n \r\n // Calculate artboard movement\r\n let newArtboardTop = this.calculateNewArtboardTop(top, topBottomMargin, topMinArtboard, topMaxArtboard, borderBoxPositionTop, editableAreaHeight);\r\n let moveArtboardBy = newArtboardTop - borderBoxPositionTop;\r\n this._productView.artboardMoved = true;\r\n\r\n // Move the art board by the topBottomMargin\r\n this._productView.borderBox.position.top = newArtboardTop / 100;\r\n $(this.el.nativeElement).css({\r\n top: \"\" + this._productView.borderBox.position.top * 100 + \"%\",\r\n });\r\n\r\n // update guidelines position\r\n this.appEvents.emitMoveArtboard(moveArtboardBy * this._productView.size.height / editableAreaHeight);\r\n\r\n // recalculate all the elements top except for the element that was moved\r\n if(moveArtboardBy != 0) {\r\n this._productView.designElements.forEach(element => {\r\n //let moveArtboardByPercent = (moveArtboardBy / editableAreaHeight) * 100;\r\n let moveElementBy = moveArtboardBy * this._productView.size.height / editableAreaHeight;\r\n element.position.top -= moveElementBy;\r\n element.position.bottom -= moveElementBy;\r\n let obj = {\r\n element: element,\r\n view: this._productView\r\n } \r\n this.appEvents.emitRepositionElement(obj);\r\n });\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n calculateNewArtboardTop(top: any, topBottomMargin: any, topMin: any, topMax: any, borderBoxPositionTop: any, editableAreaHeight: any) {\r\n let moveTopByElement = (top > topBottomMargin) ? top - topBottomMargin : topBottomMargin - top;\r\n let moveTopByArtboard = moveTopByElement * editableAreaHeight / this._productView.size.height;\r\n let newArtboardTop = (top > topBottomMargin) ? borderBoxPositionTop + moveTopByArtboard : borderBoxPositionTop - moveTopByArtboard;\r\n\r\n if(newArtboardTop < topMin) {\r\n newArtboardTop = topMin;\r\n }\r\n else if (newArtboardTop > topMax) {\r\n newArtboardTop = topMax;\r\n }\r\n return newArtboardTop;\r\n }\r\n\r\n moveArtboardByGroupedElements(moveBy: any) {\r\n if(this._productView && moveBy) {\r\n let position: any = {\r\n top: moveBy.position.top / this.zoomScale,\r\n bottom: moveBy.position.bottom / this.zoomScale,\r\n left: moveBy.position.left / this.zoomScale,\r\n right: moveBy.position.right / this.zoomScale\r\n };\r\n\r\n let topMinArtboard, topMaxArtboard : any;\r\n topMinArtboard = this._productView.editableArea.top * 100;\r\n topMaxArtboard = this._productView.editableArea.topMax * 100; \r\n \r\n position.right = position.left + moveBy.width;\r\n position.bottom = position.top + moveBy.height;\r\n\r\n let top, bottom, topSpace, bottomSpace, editableAreaHeight, editableAreaWidth, elementTop, elementBottom: any;\r\n editableAreaHeight = this._productView.borderBox.size.height;\r\n editableAreaWidth = this._productView.borderBox.size.width;\r\n elementTop = top = position.top; \r\n elementBottom = bottom = position.bottom;\r\n\r\n this._productView.designElements.forEach(element => {\r\n if(!this.selectedElementsService.containsById(element.id)) {\r\n let elementPosition = this.elementPositionHelperService.getRotatedElementPosition(element, element.$el.position(), \r\n this._productView.borderBox.size.width, this._productView.borderBox.size.height, false);\r\n if(top > elementPosition.top) {\r\n top = elementPosition.top;\r\n }\r\n if(elementPosition.bottom > bottom) {\r\n bottom = elementPosition.bottom;\r\n }\r\n }\r\n });\r\n \r\n let difference = bottom - top;\r\n let borderBoxPositionTop = this._productView.borderBox.position.top * 100;\r\n let borderBoxPositionTopInPx = this._productView.borderBox.position.top * this._productView.size.height;\r\n let topMaxInPx = topMaxArtboard * this._productView.size.height / 100;\r\n let topMinInPx = topMinArtboard * this._productView.size.height / 100;\r\n let borderBoxLeftInPx = this._productView.editableArea.left * this._productView.size.width;\r\n //let artBoardTopInPx = (borderBoxPositionTop - topMinArtboard) * this._productView.size.height / 100;\r\n\r\n if( difference > editableAreaHeight ||\r\n (difference < editableAreaHeight && ((top + borderBoxPositionTopInPx) < topMinInPx || (bottom + borderBoxPositionTopInPx) > (topMaxInPx + editableAreaHeight)))\r\n ) {\r\n this.appEvents.emitDesignOutsidePrintArea({\r\n designElement: moveBy.designElement,\r\n showMessage: true\r\n });\r\n }\r\n else {\r\n\r\n //check left and right element position\r\n if(position.left < 0 || (position.left + borderBoxLeftInPx) > (editableAreaWidth + borderBoxLeftInPx) || \r\n position.right < 0 || (position.right + borderBoxLeftInPx) > (editableAreaWidth + borderBoxLeftInPx)) {\r\n this.appEvents.emitDesignOutsidePrintArea({\r\n designElement: moveBy.designElement,\r\n showMessage: true\r\n });\r\n }\r\n else {\r\n this.appEvents.emitDesignOutsidePrintArea({\r\n designElement: moveBy.designElement,\r\n showMessage: false\r\n });\r\n }\r\n\r\n if(difference < editableAreaHeight) {\r\n // find topBottomMargin : add the space between topY and top margin and bottomY and bottom margin, divide this space by 2\r\n topSpace = top;\r\n //bottomSpace = (editableAreaHeight > bottom)? editableAreaHeight - bottom : 0;\r\n bottomSpace = editableAreaHeight - bottom;\r\n let topBottomMargin = (topSpace + bottomSpace) / 2;\r\n \r\n // Calculate artboard movement\r\n let topMinArtboardInPx = topMinArtboard * this._productView.size.height / 100;\r\n let newArtboardTop = this.calculateNewArtboardTopForGroup(top, topBottomMargin, topMinArtboardInPx, topMaxInPx, borderBoxPositionTopInPx, editableAreaHeight);\r\n let moveArtboardBy = newArtboardTop - borderBoxPositionTopInPx;\r\n this._productView.artboardMoved = true;\r\n\r\n // Move the art board by the topBottomMargin\r\n this._productView.borderBox.position.top = newArtboardTop / this._productView.size.height;\r\n $(this.el.nativeElement).css({\r\n top: \"\" + this._productView.borderBox.position.top * 100 + \"%\",\r\n });\r\n\r\n // update guidelines position\r\n let moveArtboardObj = {\r\n moveArtboardBy: moveArtboardBy,\r\n\r\n }\r\n this.appEvents.emitMoveArtboard(moveArtboardBy);\r\n\r\n // recalculate all the elements top\r\n if(moveArtboardBy != 0) {\r\n let moveElementBy = (moveArtboardBy) / editableAreaHeight * 100;\r\n this._productView.designElements.forEach(element => {\r\n element.position.top -= moveElementBy;\r\n element.position.bottom -= moveElementBy;\r\n \r\n let newTop = element.position.top * editableAreaHeight / 100;\r\n element.$el.css({\r\n top: newTop + 'px'\r\n });\r\n });\r\n\r\n // move surrounding box\r\n let surroundingBox = $(this.el.nativeElement).find(\".surroundingBox\");\r\n let surroundingBoxTop = surroundingBox.css(\"top\");\r\n surroundingBoxTop = +surroundingBoxTop.replace(\"px\", \"\");\r\n\r\n surroundingBoxTop -= moveArtboardBy;\r\n surroundingBox.css({\r\n top: surroundingBoxTop\r\n });\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n calculateNewArtboardTopForGroup(top: any, topBottomMargin: any, topMin: any, topMax: any, borderBoxPositionTop: any, editableAreaHeight: any) {\r\n let moveTopByElement = (top > topBottomMargin) ? top - topBottomMargin : topBottomMargin - top;\r\n let moveTopByArtboard = moveTopByElement;\r\n let newArtboardTop = (top > topBottomMargin) ? borderBoxPositionTop + moveTopByArtboard : borderBoxPositionTop - moveTopByArtboard;\r\n\r\n if(newArtboardTop < topMin) {\r\n newArtboardTop = topMin;\r\n }\r\n else if (newArtboardTop > topMax) {\r\n newArtboardTop = topMax;\r\n }\r\n return newArtboardTop;\r\n }\r\n \r\n setProductView(color, productView){\r\n if(color && productView){\r\n let matchingImage: any;\r\n matchingImage = _.findWhere(color.images, {\r\n viewId: productView.id\r\n });\r\n if(matchingImage){\r\n this.getImageSize(matchingImage.imageSource, productView.editableArea);\r\n }\r\n }\r\n }\r\n \r\n getContainerSize() {\r\n if(!this.$productViewContainer) {\r\n this.$productViewContainer = $(this.el.nativeElement).prev();\r\n }\r\n return {\r\n width: this.$productViewContainer.width(),\r\n height: this.$productViewContainer.height()\r\n };\r\n }\r\n \r\n getContainerRatio(containerSize: any) {\r\n return containerSize.width / containerSize.height;\r\n }\r\n\r\n setCss(editableArea: any) {\r\n let backgroundImageSize: any, containerRatio: any, containerSize: any, \r\n imageRatio: any, left: any, leftRightOffset: any, top: any, topBottomOffset: any;\r\n containerSize = this.getContainerSize();\r\n containerRatio = this.getContainerRatio(containerSize);\r\n imageRatio = 1;\r\n backgroundImageSize = {};\r\n\r\n backgroundImageSize.width = containerSize.width;\r\n backgroundImageSize.height = containerSize.height;\r\n\r\n this._productView.size = {\r\n width: backgroundImageSize.width,\r\n height: backgroundImageSize.height,\r\n }\r\n\r\n // topBottomOffset = (containerSize.height - backgroundImageSize.height) / 2;\r\n // leftRightOffset = (containerSize.width - backgroundImageSize.width) / 2;\r\n // top = Math.round((backgroundImageSize.height * editableArea.top) + topBottomOffset);\r\n // left = Math.round((backgroundImageSize.width * editableArea.left) + leftRightOffset);\r\n \r\n top = editableArea.top;\r\n left = editableArea.left;\r\n\r\n let width: any = backgroundImageSize.width * (1 - (editableArea.left + editableArea.right));\r\n let height: any = backgroundImageSize.height * (1 - (editableArea.top + editableArea.bottom));\r\n\r\n let pixelsPerInch: any = 0;\r\n if(editableArea.width > 0) {\r\n pixelsPerInch = width / editableArea.width;\r\n height = editableArea.height * pixelsPerInch;\r\n }\r\n else if(editableArea.height > 0) {\r\n pixelsPerInch = height / editableArea.height;\r\n width = editableArea.width * pixelsPerInch;\r\n }\r\n\r\n // modify top and left if they are in px (if they are more than 100)\r\n // if(this._productView.borderBox.position.left > 1) {\r\n // if(this._productView.borderBox.position.left > 100) {\r\n // this._productView.borderBox.position.left = this._productView.borderBox.position.left / 1000;\r\n // }\r\n // else {\r\n // this._productView.borderBox.position.left = this._productView.borderBox.position.left / 100;\r\n // }\r\n // }\r\n if(this._productView.borderBox.position.top > 1) {\r\n if(this._productView.borderBox.position.top > 100) {\r\n this._productView.borderBox.position.top = this._productView.borderBox.position.top / 1000;\r\n }\r\n else {\r\n this._productView.borderBox.position.top = this._productView.borderBox.position.top / 100;\r\n }\r\n }\r\n\r\n // if the artboard was moved and saved then we should use the moved artboard position\r\n if(this._productView.artboardMoved) {\r\n top = this._productView.borderBox.position.top;\r\n //left = this._productView.borderBox.position.left;\r\n }\r\n \r\n $(this.el.nativeElement).css({\r\n top: \"\" + top * 100 + \"%\",\r\n left: \"\" + left * 100 + \"%\",\r\n width: \"\" + width + \"px\",\r\n height: \"\" + height + \"px\",\r\n });\r\n\r\n // set max embroidery width and height\r\n this._productView.maxEmbroideryWidth = width * this._productView.embroideryRatioWidth;\r\n this._productView.maxEmbroideryHeight = height * this._productView.embroideryRatioHeight;\r\n\r\n // set editable are box size\r\n this._productView.borderBox.size.pixelsPerInch = pixelsPerInch;\r\n this._productView.borderBox.size.width = $(this.el.nativeElement).width();\r\n this._productView.borderBox.size.height = $(this.el.nativeElement).height();\r\n this._productView.borderBox.position.top = top;\r\n this._productView.borderBox.position.left = left;\r\n\r\n // this is the product image container. It is required in web api to create element position in the screen shot \r\n let productViewImageContainer = $(this.el.nativeElement).closest(\".current-product-view-img\");\r\n if(productViewImageContainer && productViewImageContainer.length > 0) {\r\n if(!this._productView.imageContainerSize) {\r\n this._productView.imageContainerSize = {\r\n width: 0,\r\n height: 0\r\n }\r\n }\r\n this._productView.imageContainerSize.width = $(productViewImageContainer[0]).width();\r\n this._productView.imageContainerSize.height = $(productViewImageContainer[0]).height();\r\n }\r\n\r\n //console.log(\"set css\");\r\n }\r\n\r\n getBackgroundImage(view: any) {\r\n var matchingImage: any;\r\n if(this._color && view) {\r\n matchingImage = _.findWhere(this._color.images, {\r\n viewId: view.id\r\n });\r\n return encodeURI(matchingImage.imageSource);\r\n }\r\n }\r\n \r\n setBorderBox(view: any) {\r\n let url: any = this.getBackgroundImage(view);\r\n let containerSize: any = this.getContainerSize();\r\n let newImg: any = new Image();\r\n\r\n newImg.onload = () => {\r\n\r\n let ratio = (containerSize.width > containerSize.height) ? \r\n containerSize.width / newImg.width : containerSize.height / newImg.height;\r\n\r\n let width: any = newImg.width * ratio * (1 - (view.editableArea.left + view.editableArea.right));\r\n let height: any = newImg.height * ratio * (1 - (view.editableArea.top + view.editableArea.bottom));\r\n \r\n // set editable are box size\r\n view.borderBox.size.width = width;\r\n view.borderBox.size.height = height;\r\n };\r\n newImg.src = url;\r\n }\r\n \r\n getImageSize (imageSource: any, editableArea: any) {\r\n let newImg: any;\r\n newImg = new Image();\r\n newImg.onload = () => {\r\n this.imageSize = {\r\n height: newImg.height,\r\n width: newImg.width\r\n };\r\n this._productView.imageSize = {\r\n width: $(this.productViewImageElement).width(), \r\n height: $(this.productViewImageElement).height()\r\n };\r\n this.setCss(editableArea);\r\n // the following call sets the hidden variable for a view. It manages what design view should be visible.\r\n this.imageLoaded.emit(this._productView);\r\n };\r\n newImg.src = imageSource;\r\n }\r\n \r\n onWindowResize(){\r\n if(this._productView){\r\n //this.setCss(this._productView.editableArea);\r\n }\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/directives/editableAreaPosition.directive.ts","import {Directive, Input, Output, OnInit, OnDestroy, EventEmitter, OnChanges} from \"@angular/core\";\r\n\r\n@Directive({selector: '[ecc-Spy]'})\r\nexport class SpyDirective implements OnInit, OnDestroy, OnChanges {\r\n\r\n @Input() set productView(_productView: any){\r\n if(_productView){\r\n }\r\n }\r\n @Output() initialized: EventEmitter = new EventEmitter(); \r\n\r\n constructor() { }\r\n\r\n ngOnInit() { \r\n this.initialized.emit(1);\r\n }\r\n\r\n ngOnDestroy() { }\r\n\r\n ngOnChanges() {\r\n }\r\n\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/directives/elementSpy.directive.ts","import {Directive, Input, Output, EventEmitter, OnChanges, SimpleChange} from \"@angular/core\";\r\n\r\n@Directive(\r\n {\r\n selector:\"[ecc-empty-text-preventer]\"\r\n }\r\n)\r\nexport class EmptyTextPreventerDirective implements OnChanges{\r\n \r\n @Input() watchText: string; // scope.currentDesignElement.text\r\n \r\n @Output() setText: EventEmitter = new EventEmitter(); // set it to input value\r\n \r\n ngOnChanges(changes: {[propName: string]: SimpleChange}){\r\n let watchChange = changes['watchText'];\r\n if(watchChange && watchChange.currentValue === \"\"){\r\n this.setText.emit(watchChange.previousValue);\r\n }\r\n else{\r\n this.setText.emit(watchChange.currentValue);\r\n }\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/directives/emptyTextPreventer.directive.ts","import {Directive, Input, Output, EventEmitter, ElementRef, OnInit, OnDestroy} from \"@angular/core\";\r\nimport {Subscription} from \"rxjs/Subscription\";\r\nimport {AppEvents} from \"../appEvents\";\r\nimport {TextRenderService} from \"../resources/textRender\";\r\nimport {SelectedDesignColorsService} from \"../services/selectedDesignColors.service\";\r\nimport {ElementPositionHelperService} from \"../services/elementPositionHelper.service\";\r\nimport {CONFIG} from \"../../environments/environment\";\r\n\r\ndeclare var $: any;\r\n\r\n@Directive(\r\n {\r\n selector: \"[ecc-image-element-map]\",\r\n }\r\n)\r\nexport class ImageElementMapDirective implements OnInit, OnDestroy {\r\n \r\n @Input() set size(_sizeObject: any) {\r\n if(_sizeObject && this._designElement === _sizeObject.element) {\r\n this._designElement.resize = true;\r\n let _size = _sizeObject.size;\r\n \r\n //let newRatio = _size.width / this._designElement.borderBox.size.width;\r\n let newBoxWidth = this._designElement.borderBox.size.width * _size.ratio; \r\n let newBoxHeight = this._designElement.borderBox.size.height * _size.ratio;\r\n let elementWidth = this._designElement.size.width * _size.ratio;\r\n let elementHeight = this._designElement.size.height * _size.ratio;\r\n\r\n // $(this.el.nativeElement).closest(\".design-element.image-element\").css({\r\n // \"width\": elementWidth + \"%\", \r\n // \"height\": elementHeight + \"%\", \r\n // });\r\n \r\n let width = elementWidth * this._view.borderBox.size.width / 100 ;\r\n let height = elementHeight * this._view.borderBox.size.height / 100 ;\r\n if(width > height) {\r\n $(this.el.nativeElement).css({\r\n \"width\": width + \"px\",\r\n \"height\": \"auto\"\r\n });\r\n $(this.el.nativeElement).closest(\".design-element.image-element\").css({\r\n \"width\": width + \"px\",\r\n \"height\": height + \"px\"\r\n });\r\n }\r\n else {\r\n $(this.el.nativeElement).css({\r\n \"height\": height + \"px\",\r\n \"width\": \"auto\"\r\n });\r\n $(this.el.nativeElement).closest(\".design-element.image-element\").css({\r\n \"width\": width + \"px\",\r\n \"height\": height + \"px\"\r\n });\r\n }\r\n\r\n // add margin when resizing to resize around center.\r\n // let marginLeft: any = 0, marginTop: any = 0;\r\n // marginLeft = (elementWidth - this._designElement.size.width) / 2;\r\n // marginTop = (elementHeight - this._designElement.size.height) / 2;\r\n // if(_size.ratio > 0) {\r\n // $(this.el.nativeElement).closest(\".design-element.image-element\").css({\r\n // \"margin-left\": -marginLeft + \"%\", \r\n // }); \r\n // }\r\n // else {\r\n // $(this.el.nativeElement).closest(\".design-element.image-element\").css({\r\n // \"margin-left\": marginLeft + \"%\", \r\n // });\r\n // }\r\n\r\n this.setElementSizeString($(this.el.nativeElement).width(), $(this.el.nativeElement).height());\r\n this._designElement.maxEmbroiderySizeReached = false;\r\n \r\n if(_size.done) \r\n {\r\n let editableArea = this._view.borderBox.size; //$(this.el.nativeElement).closest('.editable-area');\r\n let newPosition: any = $(this.el.nativeElement).closest(\".design-element.image-element\").position();\r\n this._designElement.resize = false;\r\n\r\n // marginTop = $(this.el.nativeElement).closest(\".design-element.image-element\").css(\"margin-top\");\r\n // marginLeft = $(this.el.nativeElement).closest(\".design-element.image-element\").css(\"margin-left\");\r\n\r\n // newPosition.top = (this._designElement.position.top + (parseInt(marginTop) / editableArea.height) * 100) ;\r\n // newPosition.left = (this._designElement.position.left + (parseInt(marginLeft) / editableArea.width) * 100) ;\r\n\r\n newPosition.top = this._designElement.position.top;\r\n newPosition.left = this._designElement.position.left;\r\n\r\n $(this.el.nativeElement).closest(\".design-element.image-element\").css({\r\n // \"margin-left\": 0, \r\n // \"margin-top\": 0, \r\n \"top\": (newPosition.top * editableArea.height / 100) + \"px\",\r\n \"left\": (newPosition.left * editableArea.width / 100) + \"px\",\r\n });\r\n\r\n this._designElement.position.top = newPosition.top;\r\n this._designElement.position.left = newPosition.left;\r\n this._designElement.size.width = elementWidth;\r\n this._designElement.size.height = elementHeight;\r\n this._designElement.borderBox.size.width = newBoxWidth; \r\n this._designElement.borderBox.size.height = newBoxHeight;\r\n\r\n this.checkElementPositionInPrintableArea();\r\n \r\n if(_size.maxSizeReached && this._designElement.isEmbroidery) {\r\n this._designElement.maxEmbroiderySizeReached = true;\r\n } \r\n this.appEvents.emitMaxSizeReached(this._designElement);\r\n this.appEvents.emitSaveState();\r\n }\r\n }\r\n } \r\n @Input() set designElement(_designElement: any){\r\n if(_designElement){\r\n this._designElement = _designElement;\r\n }\r\n }\r\n @Input() maxWidthRatio : number = 1;\r\n @Input() maxHeightRatio: number = 1;\r\n @Input() set view(_view: any) {\r\n if(_view) {\r\n this._view = _view;\r\n }\r\n }\r\n @Input() desktop: boolean = true;\r\n\r\n @Output() setWarning: EventEmitter = new EventEmitter(); \r\n @Output() embroideryMaxSizeReached: EventEmitter = new EventEmitter(); \r\n\r\n _designElement: any; \r\n _view: any;\r\n rotationSubscription: Subscription;\r\n imageSourceSubscription: Subscription;\r\n appEvents: AppEvents = new AppEvents();\r\n \r\n constructor(private el: ElementRef, private renderTextService: TextRenderService, \r\n private selectedColorsService: SelectedDesignColorsService, private elementPositionHelperService: ElementPositionHelperService) {\r\n this.rotationSubscription = AppEvents.currentDesignElementRotationO.subscribe((designElement) => {\r\n if(this._designElement === designElement) {\r\n this.setRotation(designElement.rotationAngle);\r\n }\r\n });\r\n this.imageSourceSubscription = AppEvents.imageSourceO.subscribe((obj) => {\r\n if(this._designElement === obj.designElement) {\r\n this.setImageSource(obj.source);\r\n }\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n let editableArea = this._view.borderBox.size;\r\n if(this._designElement.originalRatio) {\r\n let width: any = this._designElement.size.width * editableArea.width / 100;\r\n let height: any = width / this._designElement.originalRatio;\r\n\r\n this._designElement.borderBox.size.width = this._designElement.size.width = width * 100 / editableArea.width;\r\n this._designElement.borderBox.size.height = this._designElement.size.height = height * 100 / editableArea.height;\r\n }\r\n if(this._designElement.isEmbroidery) {\r\n let width = editableArea.width * this.maxWidthRatio;\r\n let height = editableArea.height * this.maxHeightRatio;\r\n let elementWidth = this._designElement.size.width * editableArea.width / 100;\r\n let elementHeight = this._designElement.size.height * editableArea.height / 100;\r\n \r\n if(elementWidth > width) {\r\n let ratio = width / elementWidth;\r\n elementWidth = elementWidth * ratio;\r\n elementHeight = elementHeight * ratio;\r\n }\r\n if(elementHeight > height) {\r\n let ratio = height / elementHeight;\r\n elementWidth = elementWidth * ratio;\r\n elementHeight = elementHeight * ratio;\r\n }\r\n\r\n this._designElement.borderBox.size.width = this._designElement.size.width = (elementWidth / editableArea.width) * 100;\r\n this._designElement.borderBox.size.height = this._designElement.size.height = (elementHeight / editableArea.height) * 100;\r\n\r\n this.appEvents.resizeBox({\r\n designElement: this._designElement,\r\n width: width,\r\n height: height,\r\n });\r\n }\r\n\r\n if(this._designElement.size) {\r\n let width: any = this._designElement.size.width * editableArea.width / 100;\r\n let height: any = this._designElement.size.height * editableArea.height / 100;\r\n\r\n $(this.el.nativeElement).closest(\".design-element.image-element\").css({\r\n \"width\": width + \"px\",\r\n \"height\": height + \"px\",\r\n });\r\n\r\n if(this._designElement.size.width > this._designElement.size.height) {\r\n $(this.el.nativeElement).css({\r\n \"width\": width + \"px\",\r\n \"height\": \"auto\",\r\n \"display\": \"block\",\r\n \"position\": \"absolute\",\r\n });\r\n }\r\n else {\r\n $(this.el.nativeElement).css({\r\n \"height\": height + \"px\",\r\n \"width\": \"auto\",\r\n \"display\": \"block\",\r\n \"position\": \"absolute\",\r\n });\r\n }\r\n this.setElementSizeString(this._designElement.size.width, this._designElement.size.height);\r\n }\r\n\r\n if(this._designElement.rotationAngle > -181 && this._designElement.rotationAngle < 181) {\r\n this.animate(this._designElement.rotationAngle);\r\n }\r\n\r\n // this._designElement.colors.forEach(color => {\r\n // this.selectedColorsService.setSelectedColorInView(this._view, color);\r\n // });\r\n }\r\n\r\n ngOnDestroy(){\r\n this.rotationSubscription.unsubscribe();\r\n this.imageSourceSubscription.unsubscribe();\r\n }\r\n\r\n checkResolution(width: any, height: any) {\r\n if(this._designElement.originalWidth > 0 && this._designElement.originalHeight > 0) {\r\n let maxWidth = this._designElement.originalWidth / CONFIG.dpi;\r\n let maxHeight = this._designElement.originalHeight / CONFIG.dpi;\r\n \r\n if(width > maxWidth || height > maxHeight) {\r\n this._designElement.lowResolution = true;\r\n }\r\n else {\r\n this._designElement.lowResolution = false;\r\n }\r\n this.setWarning.emit(this._designElement);\r\n }\r\n }\r\n\r\n checkElementPositionInPrintableArea() {\r\n let position: any;\r\n let elem = $(this.el.nativeElement).closest(\".design-element.image-element\");\r\n let editableArea = elem.closest(\"#editable-area\");\r\n let newPosition: any = $(this.el.nativeElement).closest(\".design-element.image-element\").position();\r\n let editableAreaWidth = editableArea.width();\r\n let editableAreaHeight = editableArea.height();\r\n\r\n position = this.elementPositionHelperService.getElementPosition(this._designElement, newPosition.top, newPosition.left, \r\n elem.width(), elem.height(), editableAreaWidth, editableAreaHeight);\r\n\r\n if(position.left < 0 || position.left > editableAreaWidth ||\r\n position.top < 0 || position.top > editableAreaHeight ||\r\n position.right < 0 || position.right > editableAreaWidth ||\r\n position.bottom < 0 || position.bottom > editableAreaHeight) {\r\n elem.removeClass('studio__view-workspace-item--active');\r\n elem.addClass('studio__view-workspace-item--active--red');\r\n this.appEvents.emitDesignOutsidePrintArea({\r\n designElement: this._designElement,\r\n showMessage: true\r\n });\r\n }\r\n else {\r\n elem.removeClass('studio__view-workspace-item--active--red');\r\n elem.addClass('studio__view-workspace-item--active');\r\n this.appEvents.emitDesignOutsidePrintArea({\r\n designElement: this._designElement,\r\n showMessage: false\r\n });\r\n }\r\n }\r\n\r\n setImageSource(source) {\r\n if(source) {\r\n let containerWidth = $(this.el.nativeElement).width();\r\n let containerHeight = $(this.el.nativeElement).height();\r\n\r\n // set border box size\r\n this._designElement.borderBox.size.width = containerWidth;\r\n this._designElement.borderBox.size.height = containerHeight;\r\n\r\n this._designElement.size.width = containerWidth;\r\n this._designElement.size.height = containerHeight;\r\n }\r\n }\r\n\r\n setElementSizeString(elementWidth: any, elementHeight: any){\r\n if(this._designElement.pixelsPerInch > 0) {\r\n let width = (elementWidth / this._designElement.pixelsPerInch).toFixed(2);\r\n let height = (elementHeight / this._designElement.pixelsPerInch).toFixed(2);\r\n let elementSizeStr = \"\" + width + \" x \" + height ;\r\n this._designElement.inches = elementSizeStr;\r\n $(this.el.nativeElement).find(\".elementSize\").html(elementSizeStr);\r\n\r\n // Uncomment this line when you want to go live with image resolution warning.\r\n this.checkResolution(width, height);\r\n }\r\n }\r\n\r\n setRotation(angle: any) {\r\n this.animate(angle);\r\n }\r\n\r\n animate(angle) {\r\n let rotateString = \"rotate(\" + angle + \"deg)\";\r\n $(this.el.nativeElement).parent(\".design-element.image-element\").css({\r\n \"-ms-transform\": rotateString,\r\n \"-webkit-transform\": rotateString,\r\n \"transform\": rotateString\r\n });\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/directives/imageElementMap.directive.ts","import {Directive, OnInit, ElementRef, Output, EventEmitter} from \"@angular/core\"\r\nimport {S3ProcessorService} from \"../services/s3Processor.service\";\r\nimport {CONFIG} from \"../../environments/environment\";\r\n//import {CommonEventsService} from \"../services/commonEvents.service\";\r\nimport {AppEvents} from \"../appEvents\";\r\n\r\ndeclare var $: any;\r\n\r\n@Directive(\r\n {\r\n selector: \"[ecc-image-upload]\",\r\n }\r\n)\r\nexport class ImageUploadDirective implements OnInit {\r\n\r\n //@Output() fileUploading: EventEmitter = new EventEmitter(); // set this to $scope.on(fileUploading) function..\r\n //@Output() fileUploaded: EventEmitter = new EventEmitter(); // set this to $scope.on(fileUploaded) function..\r\n //@Output() imageError: EventEmitter = new EventEmitter(); // set this to $scope.on(imageError) function..\r\n\r\n reOnlyImages = /image\\/(png|jpeg|gif|tif|tiff|bmp|svg|tga|webp)/;\r\n appEvents: AppEvents = new AppEvents();\r\n\r\n constructor(private el: ElementRef, private s3Processor: S3ProcessorService) {} //, private commonEvents: CommonEventsService) {}\r\n \r\n ngOnInit(){\r\n let elem = $(this.el.nativeElement);\r\n \r\n return elem.fileupload({\r\n url: elem.attr('action'),\r\n dataType: 'xml',\r\n type: 'POST',\r\n autoUpload: true,\r\n add: (ev: any, data: any) => {\r\n let file = data.files[0];\r\n let fileType = file.type;\r\n if (this.reOnlyImages.test(fileType)) {\r\n this.appEvents.emitImageFileUploading(\"fileUploading\");\r\n elem.find(\"[name='Content-Type']\").val(fileType);\r\n return this.s3Processor.prepFormForImageUpload(elem).subscribe(() => {\r\n return data.submit();\r\n });\r\n } \r\n else if(file.name.toLowerCase().includes(\".psd\")\r\n || file.name.toLowerCase().includes(\".eps\")\r\n || file.name.toLowerCase().includes(\".pdf\")\r\n || file.name.toLowerCase().includes(\".tga\")\r\n || file.name.toLowerCase().includes(\".webp\")) {\r\n this.appEvents.emitImageFileUploading(\"fileUploading\");\r\n return this.s3Processor.prepFormForImageUpload(elem).subscribe(() => {\r\n return data.submit();\r\n });\r\n }\r\n else {\r\n return this.appEvents.emitImageError(true);\r\n }\r\n },\r\n success: (data: any) => {\r\n let key: any, safeKey: any, url: any;\r\n key = data.getElementsByTagName('Key')[0].childNodes[0].nodeValue;\r\n safeKey = encodeURIComponent(key);\r\n url = CONFIG.s3Bucket + \"/\" + safeKey;\r\n //url = CONFIG.api.host + \"/signedurls?fileName=\" + safeKey;\r\n this.appEvents.emitImageFileUploaded(url);\r\n },\r\n done: () => {\r\n this.appEvents.emitImageError(false);\r\n },\r\n error: (err: any) => {\r\n if(err.responseText) {\r\n if(err.responseText.indexOf(\"EntityTooLarge\") >= 0) {\r\n this.appEvents.emitImageTooBig(true);\r\n }\r\n else {\r\n this.appEvents.emitImageError(true);\r\n }\r\n }\r\n }\r\n });\r\n \r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/directives/imageUpload.directive.ts","import {Directive, ElementRef, Input, Output, EventEmitter, OnChanges, SimpleChange} from \"@angular/core\";\r\n\r\n@Directive(\r\n {\r\n selector: \"[ecc-limit-input]\",\r\n }\r\n)\r\nexport class LimitInputDirective implements OnChanges{\r\n \r\n @Input() inputNumber: number;\r\n @Input() maxNumber: number;\r\n @Input() minNumber: number;\r\n @Output() setNumber: EventEmitter = new EventEmitter();\r\n\r\n constructor(private el: ElementRef){ }\r\n \r\n ngOnChanges(changes: {[propName: string]: SimpleChange}){\r\n let watchChange = changes['inputNumber'];\r\n let currentNumber = watchChange.currentValue;\r\n if(currentNumber >= this.minNumber && currentNumber <= this.maxNumber) {\r\n this.setNumber.emit(Math.round(currentNumber));\r\n }\r\n else if (currentNumber > this.maxNumber){\r\n this.setNumber.emit(this.minNumber);\r\n }\r\n else if (currentNumber < this.minNumber) {\r\n this.setNumber.emit(this.maxNumber);\r\n }\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/directives/limitInput.directive.ts","import {Directive, Input, Output, ElementRef, OnInit, EventEmitter, OnDestroy} from \"@angular/core\";\r\nimport {Subscription} from \"rxjs/Subscription\";\r\nimport {AppEvents} from \"../appEvents\";\r\nimport { SelectedDesignElementsService } from \"../services/selectedDesignElements.service\";\r\nimport { ElementPositionHelperService } from \"../services/elementPositionHelper.service\";\r\nimport { DesignHelperService } from \"../services/designHelper.service\";\r\n\r\ndeclare var $: any;\r\n\r\n@Directive(\r\n {\r\n selector: \"[ecc-multi-select-drag]\"\r\n }\r\n) \r\nexport class MultiSelectDragDirective implements OnInit, OnDestroy {\r\n \r\n @Input() zoomScale: any = 1;\r\n\r\n appEvents: AppEvents = new AppEvents();\r\n snapTolerance: number = 3;\r\n parentBorder: any = {\r\n top: 0,\r\n left: 0,\r\n bottom: 0,\r\n right: 0\r\n };\r\n\r\n constructor(private el: ElementRef, private selectedElementsService: SelectedDesignElementsService,\r\n private elementPositionHelperService: ElementPositionHelperService, private designHelper: DesignHelperService) {}\r\n\r\n ngOnDestroy() {\r\n }\r\n\r\n ngOnInit() {\r\n this.setDraggable();\r\n }\r\n\r\n setDraggable() {\r\n $(this.el.nativeElement).draggable({\r\n //containment: \"#current-product-view-img\",\r\n snap: \".centerLines\",\r\n snapMode: \"both\",\r\n snapTolerance: this.snapTolerance,\r\n changePosition: true,\r\n drag: (event: any, ui: any) => {\r\n let elem = $(this.el.nativeElement);\r\n let editableArea = elem.closest(\"#editable-area\");\r\n let currentProductView = elem.closest(\".current-product-view-img\");\r\n let editableAreaHeight = editableArea.height();\r\n let editableAreaWidth = editableArea.width();\r\n let top, left: any;\r\n\r\n top = ui.position.top;\r\n left = ui.position.left;\r\n\r\n if(this.parentBorder.top === 0 || this.parentBorder.bottom === 0 || this.parentBorder.left === 0 || this.parentBorder.right === 0) {\r\n let parentTL = currentProductView.find(\".handle.tl\");\r\n let parentTR = currentProductView.find(\".handle.tr\");\r\n let parentBR = currentProductView.find(\".handle.br\");\r\n let parentBL = currentProductView.find(\".handle.bl\");\r\n let parentBorder = this.designHelper.getBoundaryFromCorners(parentTL.offset(), \r\n parentBL.offset(), parentTR.offset(), parentBR.offset());\r\n this.parentBorder.top = parentBorder.top;\r\n this.parentBorder.bottom = parentBorder.bottom;\r\n this.parentBorder.left = parentBorder.left;\r\n this.parentBorder.right = parentBorder.right;\r\n //console.log(parentBorder);\r\n }\r\n\r\n let leftTop = elem.find(\".handle.nw\");\r\n let leftBottom = elem.find(\".handle.sw\");\r\n let rightTop = elem.find(\".handle.ne\");\r\n let rightBottom = elem.find(\".handle.se\");\r\n\r\n let childBorder = this.designHelper.getBoundaryFromCorners(leftTop.offset(), \r\n leftBottom.offset(), rightTop.offset(), rightBottom.offset());\r\n\r\n // limit top movement\r\n if(ui.offset.top < this.parentBorder.top) {\r\n top = ui.position.top + (this.parentBorder.top - ui.offset.top);\r\n }\r\n\r\n // limit left movement\r\n if(ui.offset.left < this.parentBorder.left) {\r\n left = ui.position.left + (this.parentBorder.left - ui.offset.left);\r\n }\r\n\r\n // limit bottom movement\r\n let childHeight = childBorder.bottom - childBorder.top;\r\n let childBottom = ui.offset.top + childHeight;\r\n if(childBottom > this.parentBorder.bottom) {\r\n top = ui.position.top - (childBottom - this.parentBorder.bottom);\r\n }\r\n\r\n // limit right movement\r\n let childWidth = childBorder.right - childBorder.left;\r\n let childRight = ui.offset.left + childWidth;\r\n if(childRight > this.parentBorder.right) {\r\n left = ui.position.left - (childRight - this.parentBorder.right);\r\n }\r\n\r\n if(this.zoomScale > 1) {\r\n left = ui.originalPosition.left - (ui.originalPosition.left - ui.position.left) / this.zoomScale;\r\n top = ui.originalPosition.top - (ui.originalPosition.top - ui.position.top) / this.zoomScale; \r\n } \r\n\r\n // reset box position\r\n ui.position.left = left;\r\n ui.position.top = top;\r\n\r\n // top and left moved by the user\r\n let topMovement: any = top - ui.originalPosition.top;\r\n let leftMovement: any = left - ui.originalPosition.left;\r\n \r\n // go through each selected element\r\n this.selectedElementsService.selectedDesignElements.forEach((selectedElement) => {\r\n if(!selectedElement.isLocked) {\r\n // set element top and left to new px\r\n let elementTop = selectedElement.position.top * editableAreaHeight / 100;\r\n let elementLeft = selectedElement.position.left * editableAreaWidth / 100;\r\n\r\n selectedElement.$el.css({\r\n 'top': (elementTop + topMovement) + 'px',\r\n 'left': (elementLeft + leftMovement) + 'px',\r\n });\r\n }\r\n });\r\n },\r\n stop: (ev: any, ui: any) => {\r\n let elem = $(this.el.nativeElement);\r\n let elemPosition = elem.position();\r\n let editableArea = elem.closest(\"#editable-area\");\r\n let editableAreaPosition = editableArea.position();\r\n let editableAreaHeight = editableArea.height();\r\n let editableAreaWidth = editableArea.width();\r\n\r\n // set element position to top and left in percent\r\n this.selectedElementsService.selectedDesignElements.forEach((selectedElement) => {\r\n if(!selectedElement.isLocked) {\r\n \r\n // following call position() does not return proper px when an element is rotated. Use css instead.\r\n // let selectedElementPosition = selectedElement.$el.position();\r\n let selectedElementPosition: any = selectedElement.$el.css([\"top\", \"left\"]);\r\n let selectedElementTop: any = +selectedElementPosition.top.replace(\"px\",\"\");\r\n let selectedElementLeft: any = +selectedElementPosition.left.replace(\"px\",\"\");\r\n\r\n let elementTop = selectedElementTop / editableAreaHeight * 100;\r\n let elementLeft = selectedElementLeft / editableAreaWidth * 100;\r\n\r\n //if(selectedElement.rotationAngle != 0) {\r\n //console.log(\"Position(): eTop: \" + selectedElementPosition.top + \" eLeft: \" + selectedElementPosition.left);\r\n //console.log(\"CSS(): eTop: \" + elementPosition.top + \" eLeft: \" + elementPosition.left);\r\n //}\r\n\r\n selectedElement.position.top = elementTop;\r\n selectedElement.position.left = elementLeft;\r\n }\r\n });\r\n\r\n // move artboard\r\n let moveBy = {\r\n designElement: null,\r\n position: {\r\n top: elemPosition.top,\r\n left: elemPosition.left,\r\n },\r\n width: elem.width(),\r\n height: elem.height(),\r\n groupedElements: true,\r\n };\r\n this.appEvents.emitRepositionArtboard(moveBy);\r\n\r\n // save design\r\n this.appEvents.emitAutoSave();\r\n }\r\n });\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/directives/multiSelectDrag.directive.ts","import {Directive, Input, Output, ElementRef, OnInit, EventEmitter, OnDestroy} from \"@angular/core\";\r\nimport {Subscription} from \"rxjs/Subscription\";\r\nimport {AppEvents} from \"../appEvents\";\r\nimport { SelectedDesignElementsService } from \"../services/selectedDesignElements.service\";\r\n\r\ndeclare var $: any;\r\n\r\n@Directive(\r\n {\r\n selector: \"[ecc-multi-select-resize]\",\r\n }\r\n)\r\nexport class MultiSelectResizeDirective implements OnInit, OnDestroy {\r\n \r\n @Input() set product(_product: any) {\r\n this._product = _product;\r\n if(_product) {\r\n this.embroideryOnlyProduct = _product.embroideryAvailable && !_product.printAvailable && !_product.promoAvailable;\r\n }\r\n }\r\n @Input() set view(_view: any) {\r\n this._view = _view;\r\n if(_view) {\r\n this.maxEmboideryWidthRatio = _view.embroideryRatioWidth;\r\n this.maxEmboideryHeightRatio = _view.embroideryRatioHeight;\r\n }\r\n }\r\n @Input() zoomScale: any = 1;\r\n\r\n _product: any;\r\n _view: any;\r\n editableArea: any;\r\n editableAreaPosition: any;\r\n resizableElement: any;\r\n embroideryOnlyProduct: boolean = false;\r\n maxEmboideryWidthRatio: any;\r\n maxEmboideryHeightRatio: any;\r\n appEvents: AppEvents = new AppEvents();\r\n \r\n constructor(private el: ElementRef, private selectedElementsService: SelectedDesignElementsService) {\r\n }\r\n\r\n ngOnDestroy() {\r\n }\r\n \r\n ngOnInit() {\r\n let elem = $(this.el.nativeElement);\r\n this.editableArea = this._view.borderBox.size;\r\n this.editableAreaPosition = elem.closest(\"#editable-area\").position();\r\n\r\n elem.resizable({\r\n aspectRatio: true,\r\n minWidth: 10,\r\n minHeight: 10,\r\n maxWidth: this.editableArea.width,\r\n maxHeight: this.editableArea.height,\r\n handles: \"se\",\r\n resize: (ev: any, ui: any) => {\r\n let ratio = ui.size.width / ui.originalSize.width;\r\n let maxWidth = this.editableArea.width * this.maxEmboideryWidthRatio;\r\n let maxHeight = this.editableArea.height * this.maxEmboideryHeightRatio;\r\n let minWidth = elem.resizable(\"option\", \"minWidth\");\r\n let minHeight = elem.resizable(\"option\", \"minHeight\");\r\n\r\n // foreach element\r\n this.selectedElementsService.selectedDesignElements.forEach((selectedElement) => {\r\n // recalculate element width and height based on width/height difference \r\n if(!selectedElement.isLocked && !selectedElement.isPersonalization) {\r\n // element width and height before resizing\r\n let elementWidth = selectedElement.size.width * this.editableArea.width / 100;\r\n let elementHeight = selectedElement.size.height * this.editableArea.height / 100;\r\n\r\n // element top and left before resizing\r\n let elementTop = selectedElement.position.top * this.editableArea.height / 100;\r\n let elementLeft = selectedElement.position.left * this.editableArea.width / 100;\r\n \r\n // initial top and left in percent with respect to the surrounding box\r\n // idea is that the element top percent with respect to surrounding box should be same before and after resizing.\r\n let topPercent = (elementTop - ui.originalPosition.top) / ui.originalSize.height;\r\n let leftPercent = (elementLeft - ui.originalPosition.left) / ui.originalSize.width;\r\n\r\n // element width and height after resizing\r\n elementWidth = elementWidth * ratio;\r\n elementHeight = elementHeight * ratio;\r\n\r\n // if the width is less than min width then set width to min width\r\n if(elementWidth < minWidth) {\r\n let increaseBy = minWidth / elementWidth;\r\n elementWidth = elementWidth * increaseBy;\r\n elementHeight = elementHeight * increaseBy; \r\n }\r\n\r\n // if the height is less than min height then set height to min height\r\n if(elementHeight < minHeight) {\r\n let increaseBy = minHeight / elementHeight;\r\n elementWidth = elementWidth * increaseBy;\r\n elementHeight = elementHeight * increaseBy; \r\n }\r\n\r\n // element top and left after resizing\r\n // surrounding box top/left + topPercent \r\n let top: any = ui.position.top + (topPercent * ui.size.height);\r\n let left: any = ui.position.left + (leftPercent * ui.size.width);\r\n\r\n if(this.embroideryOnlyProduct || selectedElement.isEmbroidery) {\r\n if(elementWidth < maxWidth && elementHeight < maxHeight) {\r\n this.setElementSize(selectedElement, elementWidth, elementHeight, top, left);\r\n }\r\n }\r\n else {\r\n // calculate new width and height in px and assign to element css\r\n this.setElementSize(selectedElement, elementWidth, elementHeight, top, left);\r\n }\r\n }\r\n });\r\n },\r\n stop: (ev: any, ui: any) => {\r\n let ratio = ui.size.width / ui.originalSize.width;\r\n let elem = $(this.el.nativeElement);\r\n let elemPosition = elem.position();\r\n let editableArea = elem.closest(\"#editable-area\");\r\n let editableAreaPosition = editableArea.position();\r\n\r\n // foreach element\r\n this.selectedElementsService.selectedDesignElements.forEach((selectedElement) => {\r\n // if the element is not locked, resize\r\n if(!selectedElement.isLocked && !selectedElement.isPersonalization) {\r\n // element size\r\n let elementSize = selectedElement.$el.css([\"width\", \"height\", \"top\", \"left\"]);\r\n\r\n // width and height in percentages\r\n let width = +elementSize.width.replace(\"px\",\"\") / this.editableArea.width * 100;\r\n let height = +elementSize.height.replace(\"px\",\"\") / this.editableArea.height * 100;\r\n let elementTop = +elementSize.top.replace(\"px\",\"\") / this.editableArea.height * 100;\r\n let elementLeft = +elementSize.left.replace(\"px\",\"\") / this.editableArea.width * 100;\r\n \r\n // update element size, border box size\r\n selectedElement.size.width = selectedElement.borderBox.size.width = width;\r\n selectedElement.size.height = selectedElement.borderBox.size.height = height;\r\n\r\n // update element position\r\n selectedElement.position.top = elementTop;\r\n selectedElement.position.left = elementLeft;\r\n }\r\n });\r\n\r\n // move artboard\r\n let moveBy = {\r\n designElement: null,\r\n position: {\r\n top: elemPosition.top,\r\n left: elemPosition.left,\r\n },\r\n width: elem.width(),\r\n height: elem.height(),\r\n groupedElements: true,\r\n };\r\n\r\n // save design\r\n this.appEvents.emitAutoSave();\r\n }\r\n });\r\n }\r\n\r\n setElementSize(selectedElement: any, width: any, height: any, top: any, left: any) {\r\n // consider element rotation ??\r\n\r\n // update image container\r\n selectedElement.$el.css({\r\n 'width': width + 'px',\r\n 'height': height + 'px',\r\n 'top': top + 'px',\r\n 'left': left + 'px'\r\n });\r\n\r\n // update image itself\r\n selectedElement.$el.find(\".insideImage\").css({\r\n 'width': width + 'px',\r\n 'height': height + 'px',\r\n })\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/directives/multiSelectResize.directive.ts","import {Directive, OnInit, ElementRef} from \"@angular/core\";\r\n\r\ndeclare var $ : any;\r\n\r\n@Directive(\r\n {\r\n selector: \"[ecc-place-resize]\"\r\n }\r\n)\r\nexport class PlaceResizeDirective implements OnInit{\r\n \r\n constructor(private el: ElementRef){\r\n }\r\n \r\n ngOnInit(){\r\n let handle: any;\r\n handle = $(this.el.nativeElement).siblings('.ui-resizable-se');\r\n $(this.el.nativeElement).prepend(handle);\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/directives/placeResize.directive.ts","import {Directive, Input, Output, EventEmitter, ElementRef, OnInit} from \"@angular/core\";\r\n\r\ndeclare var $ : any;\r\n\r\n@Directive(\r\n {\r\n selector: \"[ecc-popup-handler]\"\r\n }\r\n)\r\nexport class PopupHandlerDirective implements OnInit{\r\n \r\n @Input() togglable: boolean; // set to scope.showZIndex\r\n @Output() setTogglable: EventEmitter = new EventEmitter(); // reset scope.showZIndex\r\n \r\n constructor(private el: ElementRef){}\r\n \r\n ngOnInit(){\r\n let app = $('.ng-app');\r\n app.click((ev: any) => {\r\n this.setTogglable.emit(false);\r\n });\r\n \r\n $(this.el.nativeElement).click((ev: any) => {\r\n ev.stopPropagation();\r\n let toggle = !this.togglable;\r\n this.setTogglable.emit(toggle);\r\n });\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/directives/popupHandler.directive.ts","import {Directive, ElementRef, Input, OnInit, Output, EventEmitter} from \"@angular/core\";\r\ndeclare var $ : any;\r\ndeclare var _: any;\r\n\r\n@Directive({\r\n selector: \"[ecc-position]\",\r\n host: {\r\n \"(contextmenu)\": \"onRightClick($event)\"\r\n }\r\n})\r\nexport class PositionElementDirective implements OnInit {\r\n \r\n @Input() togglable: boolean;\r\n @Input() set designElement(designElement: any) {\r\n if(designElement) {\r\n this._designElement = designElement;\r\n }\r\n }\r\n @Input() set designElements(designElements: any) {\r\n if(designElements) {\r\n this._designElements = designElements;\r\n }\r\n }\r\n @Output() setTogglable: EventEmitter = new EventEmitter();\r\n \r\n _designElement: any;\r\n _designElements: any;\r\n \r\n constructor(private el: ElementRef) {}\r\n \r\n ngOnInit() {\r\n let app = $('.ng-app');\r\n app.click((ev: any) => {\r\n this.setTogglable.emit(false);\r\n });\r\n //console.log(\"Position element\");\r\n }\r\n \r\n onRightClick(event: any) {\r\n _.each(this._designElements, (designElement: any) => {\r\n designElement.showZIndex = false;\r\n designElement.rightClick = false;\r\n });\r\n this.setTogglable.emit(true);\r\n this._designElement.clientX = event.offsetX;\r\n this._designElement.clientY = event.offsetY;\r\n return false;\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/directives/positionElement.directive.ts","import {Directive, Input, Output, ElementRef, OnInit, EventEmitter, OnDestroy} from \"@angular/core\";\r\nimport {Subscription} from \"rxjs/Subscription\";\r\nimport {AppEvents} from \"../appEvents\";\r\nimport {CONFIG} from \"../../environments/environment\";\r\nimport { ElementPositionHelperService } from \"app/services/elementPositionHelper.service\";\r\n\r\ndeclare var $: any;\r\n\r\n@Directive(\r\n {\r\n selector: \"[ecc-resizable]\",\r\n }\r\n)\r\nexport class ResizableDirective implements OnInit, OnDestroy {\r\n \r\n @Input() size: any; // get this from scope.designElement.size\r\n @Input() set embroidery(embroidery: boolean) {\r\n this.isEmbroidery = embroidery;\r\n if(this.initialized) {\r\n this.resetEmbroideryRatio();\r\n }\r\n }\r\n @Input() maxWidthRatio : number = 1;\r\n @Input() maxHeightRatio: number = 1;\r\n @Input() set designElement(_designElement: any) {\r\n if(_designElement) {\r\n this._designElement = _designElement;\r\n }\r\n }\r\n @Input() set isLocked(locked: boolean) {\r\n if(this.initialized) {\r\n if(locked) {\r\n $(this.el.nativeElement).resizable('disable');\r\n }\r\n else {\r\n $(this.el.nativeElement).resizable('enable');\r\n }\r\n }\r\n }\r\n @Input() zoomScale: any = 1;\r\n @Input() set pView(_productView: any){ // scope.productView\r\n if(_productView){\r\n this._productView = _productView;\r\n }\r\n } \r\n @Output() setSize: EventEmitter = new EventEmitter(); // set this to scope.designElement.size\r\n \r\n appEvents: AppEvents = new AppEvents();\r\n _designElement: any;\r\n _productView: any;\r\n isEmbroidery: boolean = false;\r\n editableArea: any = void 0;\r\n productViewArea: any = void 0;\r\n lastMaxWidth : any = void 0;\r\n lastMaxHeight: any = void 0;\r\n initialized: boolean = false;\r\n rotationSubscription: Subscription;\r\n resizeWidthAndHeightSubscription: Subscription;\r\n \r\n constructor(private el: ElementRef, private elemPositionHelper: ElementPositionHelperService) {\r\n this.resizeWidthAndHeightSubscription = AppEvents.resizeBoxO.subscribe((obj) => {\r\n if(this._designElement === obj.designElement) {\r\n this.resetResizableOptions(obj.height, obj.width);\r\n }\r\n });\r\n this.rotationSubscription = AppEvents.currentDesignElementRotationO.subscribe((designElement) => {\r\n if(this._designElement === designElement) {\r\n $(this.el.nativeElement).resizable(\"option\", \"angle\", designElement.rotationAngle);\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.resizeWidthAndHeightSubscription.unsubscribe();\r\n this.rotationSubscription.unsubscribe();\r\n }\r\n \r\n ngOnInit() {\r\n if(this._productView) {\r\n let elem = $(this.el.nativeElement);\r\n //this.editableArea = elem.closest('.editable-area');\r\n this.editableArea = this._productView.borderBox.size;\r\n this.productViewArea = elem.closest('.current-product-view-img');\r\n let padding = 2 * CONFIG.designElement.padding;\r\n let width = this.editableArea.width;\r\n\r\n if(this.isEmbroidery) {\r\n this.lastMaxWidth = this.editableArea.width * this.maxWidthRatio;\r\n this.lastMaxHeight = this.editableArea.height * this.maxHeightRatio;\r\n }\r\n else if(this.lastMaxHeight === void 0 || this.lastMaxWidth === void 0) {\r\n this.lastMaxHeight = this.editableArea.height ;\r\n this.lastMaxWidth = this.editableArea.width ;\r\n }\r\n\r\n if(this._designElement.type == \"image\") {\r\n this.lastMaxHeight = this.productViewArea.height();\r\n this.lastMaxWidth = this.productViewArea.width();\r\n }\r\n\r\n elem.resizable({\r\n aspectRatio: true,\r\n minWidth: 10,\r\n minHeight: 10,\r\n maxWidth: this.lastMaxWidth,\r\n maxHeight: this.lastMaxHeight,\r\n angle: this._designElement.rotationAngle,\r\n handles: \"se\",\r\n resize: (ev: any, ui: any) => {\r\n let ratio = ui.size.width / ui.originalSize.width;\r\n let newSize = {\r\n width: ui.size.width,\r\n height: ui.size.height,\r\n ratio: ratio,\r\n done: false\r\n };\r\n this.setSize.emit(newSize);\r\n },\r\n stop: (ev: any, ui: any) => {\r\n let ratio = ui.size.width / ui.originalSize.width;\r\n let maxWidth = $(this.el.nativeElement).resizable(\"option\", \"maxWidth\");\r\n let maxHeight = $(this.el.nativeElement).resizable(\"option\", \"maxHeight\");\r\n let maxSizeReached = false;\r\n if(ui.size.width >= maxWidth || ui.size.height >= maxHeight) {\r\n maxSizeReached = true;\r\n this._designElement.maxSizeReached = true;\r\n } \r\n else {\r\n maxSizeReached = false;\r\n this._designElement.maxSizeReached = false;\r\n }\r\n let newSize = {\r\n width: ui.size.width,\r\n height: ui.size.height,\r\n ratio: ratio,\r\n done: true,\r\n maxSizeReached: maxSizeReached,\r\n };\r\n\r\n let currentPosition: any = $(this.el.nativeElement).position();\r\n this.elemPositionHelper.assignRotationPosition(this._designElement, currentPosition);\r\n\r\n this.setSize.emit(newSize);\r\n this.appEvents.emitCurrentDesignChanged(true);\r\n this.appEvents.emitCurrentDesignElementChange(this._designElement);\r\n //console.log(newSize);\r\n }\r\n });\r\n //this.setCssSize(void 0);\r\n this.initialized = true;\r\n if(this._designElement.isLocked || this._designElement.isPersonalization) {\r\n $(this.el.nativeElement).resizable('disable');\r\n }\r\n }\r\n }\r\n\r\n resetEmbroideryRatio() {\r\n if(this.editableArea) {\r\n let elem = $(this.el.nativeElement);\r\n let padding = 2 * CONFIG.designElement.padding;\r\n let maxWidth = this.productViewArea.width();\r\n let maxHeight = this.productViewArea.height();\r\n\r\n if(this.isEmbroidery && !this._designElement.isPersonalization) {\r\n maxWidth = this.editableArea.width * this.maxWidthRatio;\r\n maxHeight = this.editableArea.height * this.maxHeightRatio;\r\n let elemWidth = elem.width();\r\n let elemHeight = elem.height();\r\n let newSize = {\r\n width: (elemWidth < maxWidth) ? elemWidth : maxWidth < maxHeight ? maxWidth: maxHeight,\r\n height: (elemHeight < maxHeight) ? elemHeight : maxWidth < maxHeight ? maxWidth: maxHeight,\r\n ratio: 1,\r\n done: true\r\n };\r\n if (elemWidth > maxWidth) {\r\n newSize.ratio = maxWidth / elemWidth;\r\n newSize.width = elemWidth * newSize.ratio;\r\n newSize.height = elemHeight * newSize.ratio;\r\n }\r\n if(newSize.height > maxHeight) {\r\n newSize.ratio = maxHeight / elemHeight;\r\n newSize.width = elemWidth * newSize.ratio;\r\n newSize.height = elemHeight * newSize.ratio;\r\n }\r\n this.setSize.emit(newSize);\r\n this.resetResizableOptions(maxHeight, maxWidth);\r\n }\r\n else {\r\n this.resetResizableOptions(maxHeight, maxWidth);\r\n }\r\n }\r\n }\r\n\r\n resetResizableOptions(maxHeight: any, maxWidth: any) {\r\n let elem = $(this.el.nativeElement);\r\n elem.resizable(\"option\", \"maxWidth\", maxWidth);\r\n elem.resizable(\"option\", \"maxHeight\", maxHeight);\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/directives/resizable.directive.ts","import {Directive, ElementRef, Input, OnInit, OnDestroy, Output, EventEmitter} from \"@angular/core\";\r\nimport {Subscription} from \"rxjs/Subscription\";\r\nimport {AppEvents} from \"../appEvents\";\r\n\r\ndeclare var $ : any;\r\ndeclare var _: any;\r\n\r\n@Directive({\r\n selector: \"[ecc-rotate]\",\r\n})\r\nexport class RotateElementDirective implements OnDestroy, OnInit {\r\n \r\n @Input() set designElement(designElement: any) {\r\n if(designElement) {\r\n this._designElement = designElement;\r\n }\r\n }\r\n @Output() setRotate: EventEmitter = new EventEmitter();\r\n\r\n _designElement: any;\r\n appEvents: AppEvents = new AppEvents();\r\n rotationSubscription: Subscription;\r\n\r\n constructor(private el: ElementRef) {\r\n this.rotationSubscription = AppEvents.currentDesignElementRotationO.subscribe((designElement) => {\r\n if(this._designElement === designElement) {\r\n //this.setRotation(designElement.rotationAngle);\r\n }\r\n });\r\n }\r\n \r\n ngOnInit() {\r\n // $(this.el.nativeElement).rotatable( {\r\n // //appendTo: $(this.el.nativeElement).find('.options'),\r\n // handle: $(this.el.nativeElement).find('.ui-rotatable-handle'),\r\n // degrees: this._designElement.rotationAngle,\r\n // //rotationCenterOffset: {top: 10, left: 0},\r\n // stop: (event, ui) => {\r\n // let angle = ui.angle.current * 180 / Math.PI;\r\n // if(angle < 0) {\r\n // angle = angle + 360;\r\n // }\r\n // if(angle > 360) {\r\n // angle = angle - 360;\r\n // }\r\n // this.setRotate.emit(Math.round(angle));\r\n // this.appEvents.emitCurrentDesignElementsChange(this._designElement);\r\n // },\r\n // });\r\n }\r\n\r\n ngOnDestroy(){\r\n this.rotationSubscription.unsubscribe();\r\n }\r\n\r\n setRotation(angle: any) {\r\n // let radians = (angle * Math.PI) / 180;\r\n // let rotateString = \"rotate(\" + radians + \"rad)\";\r\n let rotateString = \"rotate(\" + angle + \"deg)\";\r\n $(this.el.nativeElement).css({\r\n \"-ms-transform\": rotateString,\r\n \"-webkit-transform\": rotateString,\r\n \"transform\": rotateString\r\n });\r\n }\r\n \r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/directives/rotateElement.directive.ts","import {Directive, ElementRef, OnInit, OnDestroy, Input, Output, EventEmitter} from \"@angular/core\";\r\nimport {Observable} from \"rxjs/Observable\";\r\nimport {Subscription} from \"rxjs/Subscription\";\r\n//import {CommonEventsService} from \"../services/commonEvents.service\";\r\n//import {CommonProductEventsService} from \"../services/commonProductEvents.service\";\r\nimport {AppEvents} from \"../appEvents\";\r\n\r\ndeclare var $: any;\r\ndeclare var Snap: any;\r\ndeclare var canvg: any;\r\ndeclare var _: any;\r\ndeclare var html2canvas: any;\r\ndeclare var domtoimage: any;\r\n\r\n@Directive(\r\n {\r\n selector: '[ecc-screenshot-creator]'\r\n }\r\n)\r\nexport class ScreenshotCreatorDirective implements OnDestroy, OnInit { // TODO: test this directive. It is called on Save button click..\r\n \r\n @Output() setProductView: EventEmitter = new EventEmitter(); // set to scope.setProductView(view)\r\n @Output() setProductViewClone: EventEmitter = new EventEmitter(); // set to scope.productView.clone\r\n //@Output() returnSharableSrc: EventEmitter = new EventEmitter(); // set to screenshotCreator:returnSharableSrc $on function\r\n //@Output() returnPerformDone: EventEmitter = new EventEmitter(); // set to screenshotCreator:done $on function\r\n \r\n @Input() set views(_views: any){ // get it from scope.product.views\r\n if(_views){\r\n this._views = _views;\r\n }\r\n }\r\n @Input() set view(_view: any){ // get this from scope.productView\r\n if(_view){\r\n this._view = _view;\r\n }\r\n }\r\n \r\n _views: any;\r\n _view: any;\r\n getSharableSubscription: Subscription;\r\n performSubscription: Subscription;\r\n productViewLoadedSubscription: Subscription;\r\n appEvents: AppEvents = new AppEvents();\r\n \r\n constructor(private el: ElementRef){ //, private commonEvents: CommonEventsService, private commonProductEvents: CommonProductEventsService){\r\n // this.getSharableSubscription = AppEvents.screenShotGetSharable.subscribe((args) =>{\r\n // this.getSharableSrc(args.network, args.shareWindow);\r\n // });\r\n // this.performSubscription = AppEvents.screenshotPerform.subscribe((src) => {\r\n // //this.perform(src);\r\n // this.appEvents.emitScreenshotDone(src);\r\n // });\r\n }\r\n\r\n ngOnInit() {\r\n //console.log(\"Screen shot creator..\");\r\n }\r\n \r\n ngOnDestroy(){\r\n // this.getSharableSubscription.unsubscribe();\r\n // this.performSubscription.unsubscribe(); \r\n }\r\n \r\n getSharableSrc(network: any, shareWindow: any) {\r\n // return setTimeout(() => {\r\n // //this._view.clone = this.prepareProductView();\r\n // //return this.takeScreenshot(this._view).subscribe((localSource: any) => {\r\n // return this.takeDomToImage(this._view).subscribe((localSource: any) => {\r\n // this.appEvents.emitScreenshotReturnSharable({\r\n // localSource: localSource,\r\n // network: network,\r\n // shareWindow: shareWindow,\r\n // view: this._view\r\n // });\r\n // });\r\n // }, 200);\r\n }\r\n \r\n perform(viaString: any) {\r\n // let returnView = this._view;\r\n // return this.takeScreenshots(this._views).subscribe(() => {\r\n // this.appEvents.emitProductViewChange(returnView);\r\n // this.appEvents.emitScreenshotDone(viaString);\r\n // });\r\n }\r\n\r\n createCanvasCopy(svg: any) {\r\n var $svgCanvasCopy: any, $svgContainer: any;\r\n $svgCanvasCopy = $('');\r\n $svgContainer = svg.closest('.design-element');\r\n $svgCanvasCopy.attr('width', $svgContainer.width());\r\n $svgCanvasCopy.attr('height', $svgContainer.height());\r\n return $svgCanvasCopy.css({\r\n position: 'absolute',\r\n top: svg.css('top'),\r\n left: svg.css('left')\r\n });\r\n }\r\n \r\n prepareProductView() {\r\n let $svgs: any, clone: any;\r\n let elem = $(this.el.nativeElement);\r\n clone = elem.clone();\r\n clone.find('.editable-area').css('border', 'none');\r\n clone.find('.design-element').css('border', 'none');\r\n clone.find('.design-element .options').remove();\r\n clone.css('z-index', -10);\r\n clone.css('top', 5000);\r\n $svgs = clone.find('svg');\r\n $.each($svgs, (i: any, val: any) => {\r\n var $svg: any, $svgCanvasCopy: any, svgString: any;\r\n // TODO: test this val.. it should be svg type\r\n $svg = $(val);\r\n svgString = Snap($svg[0]).outerSVG();\r\n $svgCanvasCopy = this.createCanvasCopy($svg);\r\n $svgCanvasCopy.insertBefore($svg);\r\n return canvg($svgCanvasCopy[0], svgString);\r\n });\r\n elem.after(clone);\r\n return clone;\r\n }\r\n \r\n assignCloneToView(_view: any) {\r\n return Observable.create((observer: any) => {\r\n setTimeout(() => {\r\n this.appEvents.emitProductViewChange(_view);\r\n\r\n _view.clone = this.prepareProductView();\r\n return observer.next(_view);\r\n });\r\n });\r\n }\r\n \r\n prepareViewsWithClones(_views: any) { // Update this function\r\n let i: any, next: any;\r\n i = 0;\r\n \r\n return Observable.create((observer: any) => {\r\n next = () => {\r\n if (i++ < _views.length) {\r\n _views[i - 1].clone = this.prepareProductView();\r\n this.appEvents.emitProductViewChange(_views[i]);\r\n return setTimeout(next, 200);\r\n } \r\n else {\r\n return observer.next(_views); // control goes to the takeScreenshots function subscribe function\r\n }\r\n };\r\n this.appEvents.emitProductViewChange(_views[i]);\r\n setTimeout(next, 200);\r\n });\r\n }\r\n \r\n takeScreenshot(_view: any) { // Update this function\r\n return Observable.create((observer: any) => {\r\n html2canvas(_view.clone, {\r\n useCORS: true,\r\n logging: true,\r\n onrendered: (canvas: any) => {\r\n var img: any;\r\n img = new Image();\r\n img.src = canvas.toDataURL();\r\n _view.localScreenshotSource = img.src;\r\n observer.next(img.src); \r\n _view.clone.remove();\r\n return delete _view.clone;\r\n }\r\n }); \r\n });\r\n }\r\n \r\n html2CanvasImage(_views: any) { // Update this function\r\n let productViews: any; \r\n // TODO: Test this code..\r\n productViews = this.findViewsWithDesignElements(this._views);\r\n return Observable.create((observer: any) => {\r\n this.prepareViewsWithClones(productViews).subscribe((viewsWithClones: any) => {\r\n var promises: any, _view: any, _i: any, _len: any, j: any;\r\n promises = [];\r\n for (_i = 0, j = 0, _len = viewsWithClones.length; _i < _len; _i++) {\r\n _view = viewsWithClones[_i];\r\n this.takeScreenshot(_view).subscribe((src: any) => {\r\n j++;\r\n if(j == _len){\r\n return observer.next();\r\n }\r\n });\r\n }\r\n });\r\n });\r\n }\r\n\r\n takeScreenshots(_views: any) { \r\n let productViews: any; \r\n let next: any;\r\n productViews = this.findViewsWithDesignElements(this._views);\r\n return Observable.create((observer: any) => {\r\n // use dom to image library\r\n let i: any = 0, j: any = 0, _len = productViews.length;\r\n \r\n next = () => {\r\n this.prepareView(productViews[i]).subscribe((_view) => {\r\n this.takeDomToImage(_view).subscribe((src) => {\r\n i++;\r\n if(i == _len) {\r\n return observer.next();\r\n }\r\n else {\r\n return setTimeout(next);\r\n }\r\n });\r\n });\r\n };\r\n\r\n setTimeout(next);\r\n });\r\n }\r\n\r\n swapSvgImagesWithTwinImages() {\r\n let $imageElements: any;\r\n \r\n let elem = $(this.el.nativeElement);\r\n $imageElements = elem.find('.design-element.image-element');\r\n \r\n // hide svgs and show twin images\r\n $imageElements.find('svg').hide();\r\n $imageElements.find('.twinImageDiv').removeClass(\"displayNone\");\r\n }\r\n\r\n swapTwinImagesWithSvgImages() {\r\n let $imageElements: any;\r\n \r\n let elem = $(this.el.nativeElement);\r\n $imageElements = elem.find('.design-element.image-element');\r\n \r\n // hide svgs and show twin images\r\n $imageElements.find('svg').show();\r\n $imageElements.find('.twinImageDiv').addClass(\"displayNone\");\r\n }\r\n\r\n prepareView(_view: any) { \r\n let next: any, i = 0;\r\n return Observable.create((observer: any) => {\r\n _view.elementsInitialized = 0;\r\n this.appEvents.emitProductViewChange(_view);\r\n next = () => {\r\n i++;\r\n // hide borders and options\r\n $('.design-element').addClass('borderNone');\r\n // hide options images\r\n $('.design-element').find('.options').addClass('displayNone');\r\n\r\n if(i === _view.designElements.length) {\r\n //this.swapSvgImagesWithTwinImages();\r\n return observer.next(_view);\r\n }\r\n else {\r\n setTimeout(next, 300);\r\n }\r\n }\r\n setTimeout(next, 400); \r\n // this.productViewLoadedSubscription = AppEvents.productViewLoadedO.subscribe((src) => {\r\n // this.productViewLoadedSubscription.unsubscribe();\r\n // });\r\n });\r\n }\r\n\r\n takeDomToImage(_view: any) {\r\n return Observable.create((observer: any) => {\r\n let node = document.getElementById(\"current-product-view-img\");\r\n domtoimage.toPng(node).then((dataUrl)=> {\r\n var img = new Image();\r\n img.onload = () => {\r\n _view.localScreenshotSource = img.src;\r\n //this.swapTwinImagesWithSvgImages();\r\n observer.next(img.src);\r\n };\r\n img.src = dataUrl;\r\n }).catch((error) => {\r\n observer.next(null);\r\n });\r\n });\r\n }\r\n\r\n findViewsWithDesignElements(allViews: any) {\r\n var productViews: any;\r\n productViews = _.filter(allViews, (_view: any) => {\r\n return _view.designElements.length > 0;\r\n });\r\n return productViews;\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/directives/screenshotCreator.directive.ts","import {Directive, Input, Output, ElementRef, OnInit, EventEmitter} from \"@angular/core\";\r\nimport {Subscription} from \"rxjs/Subscription\";\r\nimport {AppEvents} from \"../appEvents\";\r\nimport { SelectedDesignElementsService } from \"app/services/selectedDesignElements.service\";\r\n\r\ndeclare var $: any;\r\ndeclare var _: any;\r\n\r\n@Directive(\r\n {\r\n selector: \"[ecc-selectable]\"\r\n }\r\n) \r\nexport class SelectableDirective implements OnInit {\r\n\r\n @Input() set view(_view: any) {\r\n this._view = _view;\r\n }\r\n @Input() zoomScale: any = 1;\r\n @Output() setCurrentElement: EventEmitter = new EventEmitter();\r\n\r\n appEvents: AppEvents = new AppEvents();\r\n ele: any;\r\n selected: boolean = false;\r\n selectableObj: any; \r\n _view: any;\r\n lockedElements: any = [];\r\n \r\n constructor(private el: ElementRef, private selectedElementsService: SelectedDesignElementsService) {\r\n }\r\n\r\n ngOnInit() {\r\n this.setSelectable();\r\n }\r\n\r\n setSelectable() {\r\n this.ele = this.el.nativeElement;\r\n this.selectableObj = $(this.el.nativeElement).selectable({\r\n filter: \".selectee\",\r\n start: (ev: any, ui: any) => {\r\n this.appEvents.emitCurrentDesignElementChange(null);\r\n },\r\n selecting:(ev: any, ui: any) => {\r\n let element: any;\r\n element = _.find(this._view.designElements, (element) => {\r\n return element.id == ui.selecting.id;\r\n });\r\n\r\n if(element.isLocked) {\r\n element.$el.removeClass('ui-selecting');\r\n this.setCurrentElement.emit(element);\r\n }\r\n },\r\n selected: (ev: any, ui: any) => {\r\n if(this._view) {\r\n let element: any;\r\n element = _.find(this._view.designElements, (element) => {\r\n return element.id == ui.selected.id;\r\n });\r\n\r\n if(!element.isLocked) {\r\n if(element && element.outsidePrintableArea) {\r\n element.outsidePrintableArea = false;\r\n element.$el.removeClass('studio__view-workspace-item--active--red');\r\n }\r\n \r\n if(element && !this.selectedElementsService.containsById(ui.selected.id)) {\r\n this.selectedElementsService.addElement(element);\r\n }\r\n this.selected = true;\r\n }\r\n this.setCurrentElement.emit(null);\r\n }\r\n },\r\n stop: (ev: any, ui: any) => {\r\n //console.log(\"Stop\");\r\n \r\n if(this.selected) {\r\n let editableArea: any = $(this.ele).find(\"#editable-area\");\r\n // go through the selected elements, group them and draw a rectangle around them\r\n let surroundingBox: any = null;\r\n\r\n this.selectedElementsService.selectedDesignElements.forEach((element) => {\r\n let position = (element.$el).position();\r\n let dimension = {\r\n top: position.top,\r\n left: position.left,\r\n bottom: (element.$el).height() + position.top,\r\n right: (element.$el).width() + position.left,\r\n }\r\n\r\n if(this.zoomScale > 1) {\r\n dimension = {\r\n top: position.top / this.zoomScale,\r\n left: position.left / this.zoomScale,\r\n bottom: (element.$el).height() + (position.top / this.zoomScale),\r\n right: (element.$el).width() + (position.left / this.zoomScale),\r\n }\r\n }\r\n\r\n if(!surroundingBox) {\r\n surroundingBox = {\r\n top: dimension.top,\r\n left: dimension.left,\r\n bottom: dimension.bottom,\r\n right: dimension.right\r\n }\r\n } \r\n else {\r\n if(dimension.top < surroundingBox.top) {\r\n surroundingBox.top = dimension.top;\r\n }\r\n if(dimension.left < surroundingBox.left) {\r\n surroundingBox.left = dimension.left;\r\n }\r\n if(dimension.bottom > surroundingBox.bottom) {\r\n surroundingBox.bottom = dimension.bottom;\r\n }\r\n if(dimension.right > surroundingBox.right) {\r\n surroundingBox.right = dimension.right;\r\n }\r\n } \r\n }); \r\n \r\n if(surroundingBox) {\r\n this.appEvents.emitMultipleElementsSelected({\r\n selected: true,\r\n top: surroundingBox.top,\r\n left: surroundingBox.left,\r\n width: surroundingBox.right - surroundingBox.left,\r\n height: surroundingBox.bottom - surroundingBox.top,\r\n });\r\n }\r\n this.selected = false;\r\n }\r\n else {\r\n this.selectedElementsService.reset();\r\n this.appEvents.emitMultipleElementsSelected(null);\r\n }\r\n },\r\n });\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/directives/selectable.directive.ts","import {Directive, ElementRef, Input, OnDestroy, Output, EventEmitter, OnInit} from \"@angular/core\";\r\nimport {Subscription} from \"rxjs/Subscription\";\r\nimport {AppEvents} from \"../appEvents\";\r\n\r\ndeclare var $: any;\r\n\r\n@Directive(\r\n {\r\n selector: \"[ecc-svg-text-element]\",\r\n }\r\n)\r\nexport class SvgTextElementDirective implements OnDestroy, OnInit{\r\n \r\n @Input() set designEl(_designElement: any){\r\n if(_designElement){\r\n this._designElement = _designElement;\r\n this.setTextElement(_designElement);\r\n }\r\n }\r\n \r\n @Input() set text(_text: string){\r\n this.setText(_text);\r\n }\r\n\r\n @Output() setTextApplied: EventEmitter = new EventEmitter();\r\n \r\n _designElement: any;\r\n widthToHeightRatio: number = 0;\r\n fontSubscription: Subscription;\r\n textSubscription: Subscription;\r\n \r\n constructor(private el: ElementRef){\r\n this.fontSubscription = AppEvents.productFontO.subscribe((designElement) => {\r\n if(this._designElement === designElement){\r\n this.setTextElement(designElement);\r\n this.setSize();\r\n }\r\n });\r\n this.textSubscription = AppEvents.currentDesignElementTextO.subscribe((designElement) => {\r\n if(this._designElement === designElement){\r\n this.setText(designElement.text);\r\n }\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n \r\n ngOnDestroy(){\r\n this.fontSubscription.unsubscribe();\r\n this.textSubscription.unsubscribe();\r\n }\r\n\r\n invokeTextApplied() {\r\n let date = new Date();\r\n this.setTextApplied.emit(date.getTime());\r\n }\r\n \r\n setText(_text: any){\r\n this.el.nativeElement.innerHTML = _text;\r\n this.setSize();\r\n this.invokeTextApplied();\r\n }\r\n\r\n setSize() {\r\n let divContainer = $(this.el.nativeElement).closest('.design-element');\r\n let svgContainer = $(divContainer).find('.svg-element');\r\n let svgGContainer = $(divContainer).find('.svg-g-element');\r\n let width = $(this.el.nativeElement)[0].getBoundingClientRect().width;\r\n let height = $(this.el.nativeElement)[0].getBoundingClientRect().height;\r\n\r\n $(svgContainer).attr(\"width\", width);\r\n $(svgContainer).attr(\"height\", height);\r\n\r\n $(divContainer).width(width);\r\n $(divContainer).height(height);\r\n }\r\n \r\n setTextElement(_designElement: any){\r\n let color: string, family: string, style: any, weight: any;\r\n if(_designElement.color) {\r\n color = _designElement.color.hex || \"\";\r\n }\r\n family = _designElement.font.cssString || _designElement.font.name;\r\n style = _designElement.font.style || \"\";\r\n weight = _designElement.font.weight || \"\"; \r\n\r\n $(this.el.nativeElement).attr(\"font-weight\", weight);\r\n $(this.el.nativeElement).attr(\"font-style\", style);\r\n $(this.el.nativeElement).attr(\"fill\", color);\r\n $(this.el.nativeElement).attr(\"font-family\", family);\r\n\r\n //this.invokeTextApplied();\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/directives/svgTextElement.directive.ts","import {Directive, Input, Output, ElementRef, OnInit, EventEmitter} from \"@angular/core\";\r\nimport {CONFIG} from \"../../environments/environment\";\r\nimport {AppEvents} from \"../appEvents\";\r\n\r\ndeclare var $: any;\r\n\r\n@Directive(\r\n {\r\n selector: '[ecc-svg-text-resizable]'\r\n }\r\n)\r\nexport class SvgTextResizableDirective implements OnInit{\r\n size: any;\r\n editableArea: any = void 0;\r\n originalWidth: any = void 0;\r\n appEvents: AppEvents = new AppEvents();\r\n isEmbroidery: boolean = false;\r\n\r\n matrixWidth: number = 2;\r\n matrixHeight: number = 2;\r\n \r\n @Output() setSize: EventEmitter = new EventEmitter();\r\n \r\n @Input() set deSize(size: any) {\r\n this.size = size;\r\n }\r\n @Input() set embroidery(embroidery: boolean) {\r\n this.isEmbroidery = embroidery;\r\n this.resetEmbroideryRatio();\r\n }\r\n @Input() maxWidthRatio : number = 1;\r\n @Input() maxHeightRatio: number = 1;\r\n\r\n @Input() set textApplied(textApplied: number) {\r\n if(textApplied > 0) {\r\n if (this.editableArea !== void 0) {\r\n this.getMatrixWidthAndHeight();\r\n let elem = $(this.el.nativeElement);\r\n //let elemWidth = elem[0].offsetWidth + elem[0].offsetLeft;\r\n let elemWidth = elem.width();\r\n let maxWidth = $(this.editableArea).width(); // 2 => border\r\n \r\n if(this.isEmbroidery) {\r\n maxWidth = maxWidth * this.maxWidthRatio;\r\n }\r\n\r\n if(elemWidth > maxWidth) {\r\n this.resetTextSize(maxWidth / elemWidth, 1);\r\n }\r\n }\r\n //this.constrainTextBox();\r\n }\r\n }\r\n \r\n constructor(private el: ElementRef){}\r\n \r\n ngOnInit() {\r\n let elem = $(this.el.nativeElement);\r\n this.editableArea = elem.closest('.editable-area');\r\n let width = this.editableArea.width();\r\n let height = this.editableArea.height();\r\n\r\n elem.resizable({\r\n maxHeight: height ,\r\n maxWidth: width,\r\n start: (ev: any, ui: any) => {\r\n this.getMatrixWidthAndHeight();\r\n this.resetResizableOptions();\r\n },\r\n resize: (ev: any, ui: any) => {\r\n let widthRatio = ui.size.width / ui.originalSize.width;\r\n let heightRatio = ui.size.height / ui.originalSize.height;\r\n this.resetTextSize(widthRatio, heightRatio);\r\n },\r\n stop: (ev: any, ui: any) => {\r\n this.getMatrixWidthAndHeight();\r\n this.resetResizableOptions();\r\n this.appEvents.emitCurrentDesignChanged(true);\r\n }\r\n });\r\n }\r\n\r\n getMatrixWidthAndHeight() {\r\n let divContainer = $(this.el.nativeElement);\r\n let svgGContainer = divContainer.find('.svg-g-element');\r\n let transformValues = $(svgGContainer).attr(\"transform\");\r\n if(transformValues) {\r\n var values = transformValues.split('(')[1].split(')')[0].split(',');\r\n this.matrixWidth = +values[0];\r\n this.matrixHeight = +values[3];\r\n }\r\n }\r\n\r\n resetTextSize(widthRatio, heightRatio) {\r\n let divContainer = $(this.el.nativeElement);\r\n //let extendedDiv = divContainer.closest('.editable-area-extended');\r\n let svgContainer = divContainer.find('.svg-element');\r\n let svgGContainer = divContainer.find('.svg-g-element');\r\n let textElement = divContainer.find('.svg-text-element');\r\n let newMatrixWidth = this.matrixWidth * widthRatio;\r\n let newMatrixHeight = this.matrixHeight * heightRatio;\r\n\r\n // set transform values\r\n let transformValues = \"matrix(\" + newMatrixWidth + \", 0, 0, \" + newMatrixHeight + \", 0, 0)\";\r\n $(svgGContainer).attr(\"transform\", transformValues);\r\n\r\n let width = $(svgGContainer)[0].getBoundingClientRect().width;\r\n let height = $(svgGContainer)[0].getBoundingClientRect().height;\r\n\r\n // set svg element width and height\r\n $(svgContainer).attr(\"width\", width);\r\n $(svgContainer).attr(\"height\", height);\r\n\r\n // set div container width and height\r\n $(this.el.nativeElement).css({\r\n width: width,\r\n height: height\r\n });\r\n\r\n // // set extended div width and height\r\n // $(extendedDiv).css({\r\n // width: this.editableArea.width() + width * 0.5,\r\n // height: this.editableArea.height() + height * 0.5,\r\n // top: - height * 0.25,\r\n // left: - width * 0.25\r\n // });\r\n }\r\n\r\n resetEmbroideryRatio() {\r\n if(this.isEmbroidery) {\r\n this.constrainTextBox();\r\n }\r\n this.resetResizableOptions();\r\n }\r\n\r\n resetResizableOptions() {\r\n if(this.editableArea) {\r\n let elem = $(this.el.nativeElement);\r\n let maxWidth = this.editableArea.width();\r\n let maxHeight = this.editableArea.height();\r\n if(this.isEmbroidery) {\r\n elem.resizable(\"option\", \"maxWidth\", maxWidth * this.maxWidthRatio);\r\n elem.resizable(\"option\", \"maxHeight\", maxHeight * this.maxHeightRatio);\r\n }\r\n else {\r\n elem.resizable(\"option\", \"maxWidth\", maxWidth);\r\n elem.resizable(\"option\", \"maxHeight\", maxHeight);\r\n }\r\n }\r\n }\r\n\r\n constrainTextBox() {\r\n var widthRatio: any, heightRatio: any;\r\n if (this.editableArea !== void 0) {\r\n\r\n // let divContainer = $(this.el.nativeElement);\r\n // let svgContainer = divContainer.find('.svg-element');\r\n // let svgGContainer = divContainer.find('.svg-g-element');\r\n // let svgTextElement = divContainer.find('.svg-text-element');\r\n\r\n // console.log(\"g width:\" + $(svgGContainer)[0].getBoundingClientRect().width + \" height:\" + $(svgGContainer)[0].getBoundingClientRect().height);\r\n // console.log(\"text width:\" + $(svgTextElement)[0].getBoundingClientRect().width + \" height:\" + $(svgTextElement)[0].getBoundingClientRect().height);\r\n\r\n let elem = $(this.el.nativeElement);\r\n let elemWidth = elem.width();\r\n let elemHeight = elem.height();\r\n let maxWidth = this.editableArea.width();\r\n let maxHeight = this.editableArea.height();\r\n \r\n if(this.isEmbroidery) {\r\n maxWidth = maxWidth * this.maxWidthRatio;\r\n maxHeight = maxHeight * this.maxHeightRatio; \r\n }\r\n\r\n if(elemWidth > maxWidth || elemHeight > maxHeight) {\r\n widthRatio = maxWidth / elemWidth;\r\n heightRatio = maxHeight / elemHeight;\r\n this.resetTextSize(widthRatio, heightRatio);\r\n }\r\n }\r\n }\r\n \r\n // saveSize() {\r\n // //console.log(\"Inside saveSize()...\");\r\n // let elem = $(this.el.nativeElement);\r\n // let size = {\r\n // width: elem.width(),\r\n // height: elem.height(),\r\n // innerWidth: elem.innerWidth(),\r\n // innerHeight: elem.innerHeight()\r\n // };\r\n \r\n // this.setSize.emit(size);\r\n // }\r\n \r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/directives/svgTextResizable.directive.ts","import {Directive, Input, Output, EventEmitter, ElementRef, OnInit} from \"@angular/core\";\r\nimport {Subscription} from \"rxjs/Subscription\";\r\nimport {AppEvents} from \"../appEvents\";\r\nimport {TextRenderService} from \"../resources/textRender\";\r\nimport {SelectedDesignColorsService} from \"../services/selectedDesignColors.service\";\r\nimport {ElementPositionHelperService} from \"../services/elementPositionHelper.service\";\r\nimport { TextHelperService } from \"app/services/textHelper.service\";\r\nimport {CONFIG} from \"../../environments/environment\";\r\n\r\ndeclare var $: any;\r\ndeclare var Raphael: any;\r\ndeclare var Snap: any;\r\n\r\n@Directive(\r\n {\r\n selector: \"[ecc-text-image-element]\",\r\n host: {\r\n '(load)': 'onImageLoaded()'\r\n }\r\n }\r\n)\r\nexport class TextImageElementDirective implements OnInit {\r\n\r\n @Input() set size(_sizeObject: any) {\r\n if(_sizeObject && this._designElement === _sizeObject.element && _sizeObject.size.ratio) {\r\n this._designElement.resize = true;\r\n let _size = _sizeObject.size;\r\n\r\n //let newRatio = _size.width / this._designElement.borderBox.size.width;\r\n let newBoxWidth = this._designElement.borderBox.size.width * _size.ratio; \r\n let newBoxHeight = this._designElement.borderBox.size.height * _size.ratio;\r\n let elementWidth = this._designElement.size.width * _size.ratio;\r\n let elementHeight = this._designElement.size.height * _size.ratio;\r\n\r\n let width = elementWidth * this._view.borderBox.size.width / 100 ;\r\n let height = elementHeight * this._view.borderBox.size.height / 100 ;\r\n\r\n $(this.el.nativeElement).css({\r\n \"width\": width + \"px\",\r\n \"height\": height + \"px\",\r\n });\r\n $(this.el.nativeElement).closest(\".design-element.text-element\").css({\r\n \"width\": width + \"px\", \r\n \"height\": height + \"px\",\r\n });\r\n\r\n // if(width > height) {\r\n // $(this.el.nativeElement).css({\r\n // \"width\": width + \"px\",\r\n // \"height\": \"auto\"\r\n // });\r\n // $(this.el.nativeElement).closest(\".design-element.text-element\").css({\r\n // \"width\": width + \"px\", \r\n // \"height\": \"auto\", \r\n // });\r\n // }\r\n // else {\r\n // $(this.el.nativeElement).css({\r\n // \"height\": height + \"px\",\r\n // \"width\": \"auto\"\r\n // });\r\n // $(this.el.nativeElement).closest(\".design-element.text-element\").css({\r\n // \"width\": width + \"px\", \r\n // \"height\": \"auto\", \r\n // });\r\n // }\r\n\r\n // add margin when resizing to resize around center.\r\n // let marginLeft: any = 0, marginTop: any = 0;\r\n // marginLeft = (elementWidth - this._designElement.size.width) / 2;\r\n // marginTop = (elementHeight - this._designElement.size.height) / 2;\r\n // if(_size.ratio > 0) {\r\n // $(this.el.nativeElement).closest(\".design-element.text-element\").css({\r\n // \"margin-left\": -marginLeft + \"%\", \r\n // }); \r\n // }\r\n // else {\r\n // $(this.el.nativeElement).closest(\".design-element.text-element\").css({\r\n // \"margin-left\": marginLeft + \"%\", \r\n // });\r\n // }\r\n \r\n this.setElementSizeString($(this.el.nativeElement).width(), $(this.el.nativeElement).height());\r\n this._designElement.maxEmbroiderySizeReached = false;\r\n\r\n if(_size.done) \r\n {\r\n let editableArea = this._view.borderBox.size; //$(this.el.nativeElement).closest('.editable-area');\r\n let newPosition: any = $(this.el.nativeElement).closest(\".design-element.text-element\").position();\r\n this._designElement.resize = false;\r\n\r\n // marginTop = $(this.el.nativeElement).closest(\".design-element.text-element\").css(\"margin-top\");\r\n // marginLeft = $(this.el.nativeElement).closest(\".design-element.text-element\").css(\"margin-left\");\r\n\r\n // newPosition.top = (this._designElement.position.top + (parseInt(marginTop) / editableArea.height) * 100) ;\r\n // newPosition.left = (this._designElement.position.left + (parseInt(marginLeft) / editableArea.width) * 100) ;\r\n\r\n newPosition.top = (this._designElement.position.top) ;\r\n newPosition.left = (this._designElement.position.left) ;\r\n\r\n $(this.el.nativeElement).closest(\".design-element.text-element\").css({\r\n // \"margin-left\": 0, \r\n // \"margin-top\": 0, \r\n \"top\": (newPosition.top * editableArea.height / 100) + \"px\",\r\n \"left\": (newPosition.left * editableArea.width / 100) + \"px\",\r\n });\r\n\r\n this._designElement.position.top = newPosition.top;\r\n this._designElement.position.left = newPosition.left;\r\n this._designElement.fontSize = _size.ratio * this._designElement.fontSize;\r\n this._designElement.size.width = elementWidth;\r\n this._designElement.size.height = elementHeight;\r\n this._designElement.borderBox.size.width = newBoxWidth; \r\n this._designElement.borderBox.size.height = newBoxHeight;\r\n\r\n this.checkElementPositionInPrintableArea();\r\n\r\n if(_size.maxSizeReached && this._designElement.isEmbroidery) {\r\n this._designElement.maxEmbroiderySizeReached = true;\r\n }\r\n this.appEvents.emitMaxSizeReached(this._designElement);\r\n this.appEvents.emitSaveState();\r\n }\r\n }\r\n }\r\n @Input() set designElement(_designElement: any) {\r\n if(_designElement) {\r\n this._designElement = _designElement;\r\n }\r\n }\r\n @Input() maxWidthRatio : number = 1;\r\n @Input() maxHeightRatio: number = 1;\r\n @Input() desktop: boolean = true;\r\n @Output() setSize: EventEmitter = new EventEmitter();\r\n @Output() setSource: EventEmitter = new EventEmitter();\r\n @Input() set view(_view: any) {\r\n if(_view) {\r\n this._view = _view;\r\n }\r\n }\r\n\r\n _designElement: any;\r\n _view: any;\r\n imageReturned: any;\r\n imageFlipped: boolean = false;\r\n \r\n rotationSubscription: Subscription;\r\n imageSourceSubscription: Subscription;\r\n appEvents: AppEvents = new AppEvents();\r\n\r\n constructor(private el: ElementRef, private renderTextService: TextRenderService, private selectedColorsService: SelectedDesignColorsService,\r\n private elementPositionHelperService: ElementPositionHelperService, private textHelperService: TextHelperService) {\r\n this.rotationSubscription = AppEvents.currentDesignElementRotationO.subscribe((designElement) => {\r\n if(this._designElement === designElement) {\r\n this.setRotation(designElement.rotationAngle);\r\n }\r\n });\r\n this.imageSourceSubscription = AppEvents.imageSourceO.subscribe((obj) => {\r\n if(this._designElement === obj.designElement) {\r\n this.setImageSource(obj.source);\r\n }\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.initializeElement();\r\n }\r\n\r\n ngOnDestroy(){\r\n this.rotationSubscription.unsubscribe();\r\n this.imageSourceSubscription.unsubscribe();\r\n }\r\n\r\n initializeElement() {\r\n if((!this._designElement.source || this._designElement.source === \"\")) {\r\n if(this._designElement.assignDimensions) {\r\n this.renderTextAndRefresh();\r\n }\r\n else {\r\n this.renderTextToImage();\r\n }\r\n }\r\n else if(this._designElement.needsRefresh) {\r\n this._designElement.source = \"\";\r\n this.recalculateElementDimension();\r\n this._designElement.needsRefresh = false;\r\n this.renderTextToImage();\r\n }\r\n\r\n let editableArea = this._view.borderBox.size;\r\n let closest = $(this.el.nativeElement).closest(\".design-element.text-element\");\r\n \r\n if(this._designElement.originalRatio) {\r\n let width, height : any;\r\n \r\n width = this._designElement.size.width * this._view.borderBox.size.width / 100;\r\n height = width / this._designElement.originalRatio;\r\n\r\n closest.css({\r\n \"width\": width + \"px\",\r\n \"height\": height + \"px\",\r\n });\r\n\r\n this._designElement.borderBox.size.width = this._designElement.size.width = width * 100 / this._view.borderBox.size.width;\r\n this._designElement.borderBox.size.height = this._designElement.size.height = height * 100 / this._view.borderBox.size.height;\r\n }\r\n else if(this._designElement.borderBox) {\r\n closest.css({\r\n \"width\": (this._designElement.borderBox.size.width * editableArea.width / 100) + \"px\",\r\n \"height\": (this._designElement.borderBox.size.height * editableArea.height / 100) + \"px\",\r\n });\r\n }\r\n\r\n if(this._designElement.size) {\r\n $(this.el.nativeElement).css({\r\n \"width\": (this._designElement.size.width * editableArea.width / 100) + \"px\",\r\n \"height\": (this._designElement.size.height * editableArea.height / 100) + \"px\",\r\n });\r\n this.setElementSizeString(this._designElement.size.width, this._designElement.size.height);\r\n }\r\n\r\n if(this._designElement.rotationAngle > -181 && this._designElement.rotationAngle < 181) {\r\n this.animate(this._designElement.rotationAngle);\r\n }\r\n\r\n // this._designElement.colors.forEach(color => {\r\n // this.selectedColorsService.setSelectedColorInView(this._view, color);\r\n // });\r\n }\r\n\r\n checkElementPositionInPrintableArea() {\r\n let position: any;\r\n let elem = $(this.el.nativeElement).closest(\".design-element.text-element\");\r\n let editableArea = elem.closest(\"#editable-area\");\r\n let newPosition: any = elem.position();\r\n let editableAreaWidth = editableArea.width();\r\n let editableAreaHeight = editableArea.height();\r\n\r\n position = this.elementPositionHelperService.getElementPosition(this._designElement, newPosition.top, newPosition.left, \r\n elem.width(), elem.height(), editableAreaWidth, editableAreaHeight);\r\n\r\n if(position.left < 0 || position.left > editableAreaWidth ||\r\n position.top < 0 || position.top > editableAreaHeight ||\r\n position.right < 0 || position.right > editableAreaWidth ||\r\n position.bottom < 0 || position.bottom > editableAreaHeight) {\r\n elem.removeClass('studio__view-workspace-item--active');\r\n elem.addClass('studio__view-workspace-item--active--red');\r\n this.appEvents.emitDesignOutsidePrintArea({\r\n designElement: this._designElement,\r\n showMessage: true\r\n });\r\n }\r\n else {\r\n elem.removeClass('studio__view-workspace-item--active--red');\r\n elem.addClass('studio__view-workspace-item--active');\r\n this.appEvents.emitDesignOutsidePrintArea({\r\n designElement: this._designElement,\r\n showMessage: false\r\n });\r\n }\r\n }\r\n\r\n setImageSource(source) {\r\n this.imageReturned = {\r\n height: source.height,\r\n width: source.width,\r\n }\r\n this.setSource.emit(source.base64);\r\n }\r\n\r\n setElementSizeString(elementWidth: any, elementHeight: any){\r\n if(this._designElement.pixelsPerInch > 0) {\r\n let elementSizeStr = \"\" + (elementWidth / this._designElement.pixelsPerInch).toFixed(2) + \" x \" \r\n + (elementHeight / this._designElement.pixelsPerInch).toFixed(2) ;\r\n this._designElement.inches = elementSizeStr;\r\n $(this.el.nativeElement).find(\".elementSize\").html(elementSizeStr);\r\n }\r\n }\r\n\r\n renderTextAndRefresh() {\r\n // assign font size\r\n this._designElement.fontSize = CONFIG.designElement.fontSize;\r\n \r\n // assign max dimension\r\n let workingArea = document.getElementById(\"editable-area\");\r\n let width = workingArea ? $(workingArea).width() : 500;\r\n let height = workingArea ? $(workingArea).height(): 600;\r\n this._designElement.maxDimension = width > height ? width : height;\r\n\r\n // assign personalization name\r\n\r\n // assign personalization size\r\n this._designElement.personalizationSize = this.textHelperService.getDefaultPersonalizationSize(1.0, this._view);\r\n\r\n // assign pixelsPerInch and printable area size and element size\r\n this._designElement.pixelsPerInch = this._view.borderBox.size.pixelsPerInch;\r\n this._designElement.printableAreaSize = this._view.borderBox.size;\r\n\r\n // assign default shape\r\n this._designElement.textShape = this.textHelperService.getDefaultShape(null);\r\n\r\n // assign size -- it is set after render text\r\n this.renderTextService.post(this._designElement).subscribe((src) => {\r\n this._designElement.originalRatio = src.width / src.height;\r\n this._designElement.size.width = src.width;\r\n this._designElement.size.height = src.height;\r\n this._designElement.assignDimensions = false;\r\n this.setSource.emit(src.base64);\r\n this.appEvents.emitCurrentDesignElementChange(this._designElement);\r\n this.appEvents.emitProductViewChange(this._view);\r\n });\r\n }\r\n\r\n renderTextToImage() {\r\n this.renderTextService.post(this._designElement).subscribe((src) => {\r\n if(!this._designElement.originalRatio || this._designElement.originalRatio <= 0) {\r\n this._designElement.originalRatio = src.width / src.height;\r\n }\r\n if(this._designElement.size && (this._designElement.size.width == 0 || this._designElement.size.height == 0)) {\r\n this._designElement.size.width = src.width;\r\n this._designElement.size.height = src.height;\r\n }\r\n this.setSource.emit(src.base64);\r\n });\r\n }\r\n\r\n setRotation(angle: any) {\r\n this.animate(angle);\r\n }\r\n\r\n animate(angle) {\r\n let rotateString = \"rotate(\" + angle + \"deg)\";\r\n $(this.el.nativeElement).parent(\".design-element.text-element\").css({\r\n \"-ms-transform\": rotateString,\r\n \"-webkit-transform\": rotateString,\r\n \"transform\": rotateString\r\n });\r\n \r\n // $(this.el.nativeElement).css({\r\n // \"-ms-transform\": rotateString,\r\n // \"-webkit-transform\": rotateString,\r\n // \"transform\": rotateString\r\n // });\r\n\r\n // let position: any;\r\n // let elemParent = $(this.el.nativeElement).closest(\".editable-area\");\r\n // let elem = $(this.el.nativeElement);\r\n // let editableArea = elem.closest(\"#editable-area\");\r\n // let newPosition: any = elem.position();\r\n // let editableAreaWidth = editableArea.width();\r\n // let editableAreaHeight = editableArea.height();\r\n\r\n // // position = this.elementPositionHelperService.getElementPosition(this._designElement, newPosition.top, newPosition.left, \r\n // // elem.width(), elem.height(), editableAreaWidth, editableAreaHeight);\r\n\r\n // console.log(elemParent[0].getBoundingClientRect());\r\n // console.log(elem[0].getBoundingClientRect());\r\n }\r\n\r\n onImageLoaded() {\r\n this.assignSize();\r\n }\r\n\r\n assignSize() {\r\n let elementWidth = this.imageReturned? this.imageReturned.width: this._designElement.size? this._designElement.size.width : 0;\r\n let elementHeight = this.imageReturned? this.imageReturned.height: this._designElement.size? this._designElement.size.height : 0;\r\n let editableArea = this._view.borderBox.size; //$(this.el.nativeElement).closest('.editable-area');\r\n\r\n if(elementHeight === 0 || elementWidth === 0 || this._designElement.borderBox.size.width === 0 || this._designElement.borderBox.size.height === 0) {\r\n //let size = this._designElement.size.width > this._designElement.size.height ? this._designElement.size.width : this._designElement.size.height;\r\n this._designElement.originalRatio = this._designElement.size.width / this._designElement.size.height;\r\n \r\n if(this._designElement.isPersonalization) {\r\n let height = this._designElement.personalizationSize.height * this._designElement.pixelsPerInch;\r\n if(elementHeight != height) {\r\n elementHeight = height;\r\n elementWidth = height * this._designElement.originalRatio;\r\n }\r\n if(elementWidth > this._view.borderBox.size.width) {\r\n elementWidth = this._view.borderBox.size.width;\r\n }\r\n\r\n // set number element position when it is created for the first time.\r\n if(this._designElement.isNumber && (this._designElement.position.top == 0 || this._designElement.position.left == 0)) {\r\n let top = (editableArea.height - elementHeight) / 2;\r\n let left = (editableArea.width - elementWidth) / 2;\r\n $(this.el.nativeElement).closest(\".design-element.text-element\").css({\r\n \"top\": top + \"px\",\r\n \"left\": left + \"px\",\r\n });\r\n\r\n this._designElement.borderBox.position.top = this._designElement.position.top = (top / editableArea.height) * 100;\r\n this._designElement.borderBox.position.left = this._designElement.position.left = (left / editableArea.width) * 100;\r\n }\r\n }\r\n else {\r\n // set initial element size to 25% \r\n elementWidth = editableArea.width / 4; \r\n elementHeight = elementWidth / this._designElement.originalRatio;\r\n\r\n if(elementWidth > editableArea.width) {\r\n let ratio = editableArea.width / elementWidth;\r\n elementWidth = this._designElement.size.width * ratio; \r\n elementHeight = this._designElement.size.height * ratio; \r\n }\r\n if(elementHeight > editableArea.height) {\r\n let ratio = editableArea.height / elementHeight;\r\n elementWidth = this._designElement.size.width * ratio; \r\n elementHeight = this._designElement.size.height * ratio; \r\n }\r\n }\r\n // set border box and element size in percentage\r\n this._designElement.size.width = this._designElement.borderBox.size.width = (elementWidth / editableArea.width) * 100;\r\n this._designElement.size.height = this._designElement.borderBox.size.height = (elementHeight / editableArea.height) * 100;\r\n }\r\n else if (this._designElement.imageFlipped) {\r\n let temp = this._designElement.borderBox.size.width;\r\n this._designElement.borderBox.size.width = this._designElement.borderBox.size.height;\r\n this._designElement.borderBox.size.height = temp;\r\n\r\n if(this._designElement.borderBox.size.width > this._designElement.borderBox.size.height) {\r\n this._designElement.size.width = this._designElement.borderBox.size.width;\r\n this._designElement.borderBox.size.height = this._designElement.size.height = this._designElement.borderBox.size.width / this._designElement.originalRatio;\r\n }\r\n else {\r\n this._designElement.size.height = this._designElement.borderBox.size.height;\r\n this._designElement.borderBox.size.width = this._designElement.size.width = this._designElement.borderBox.size.height * this._designElement.originalRatio;\r\n }\r\n }\r\n else {\r\n this.recalculateElementDimension();\r\n }\r\n\r\n if(this._designElement.isEmbroidery) {\r\n let embroideryWidth = editableArea.width * this.maxWidthRatio;\r\n let embroideryHeight = editableArea.height * this.maxHeightRatio;\r\n this.appEvents.resizeBox({\r\n designElement: this._designElement,\r\n width: embroideryWidth,\r\n height: embroideryHeight,\r\n });\r\n }\r\n\r\n this.setDisplayDimensions();\r\n }\r\n\r\n recalculateElementDimension() {\r\n let width, height : any;\r\n\r\n if(this._view.borderBox.size.pixelsPerInch && this._designElement.pixelsPerInch) {\r\n if(this._view.borderBox.size.pixelsPerInch != this._designElement.pixelsPerInch) {\r\n this._designElement.pixelsPerInch = this._view.borderBox.size.pixelsPerInch;\r\n }\r\n }\r\n else {\r\n if(this._designElement.pixelsPerInch) {\r\n this._view.borderBox.size.pixelsPerInch = this._designElement.pixelsPerInch;\r\n }\r\n else {\r\n this._designElement.pixelsPerInch = this._view.borderBox.size.pixelsPerInch;\r\n }\r\n }\r\n\r\n if(this._designElement.isPersonalization) { \r\n height = this._designElement.personalizationSize.height * this._designElement.pixelsPerInch;\r\n width = height * this._designElement.originalRatio;\r\n }\r\n else {\r\n width = this._designElement.size.width * this._view.borderBox.size.width / 100;\r\n height = width / this._designElement.originalRatio;\r\n }\r\n this._designElement.borderBox.size.width = this._designElement.size.width = width * 100 / this._view.borderBox.size.width;\r\n this._designElement.borderBox.size.height = this._designElement.size.height = height * 100 / this._view.borderBox.size.height;\r\n }\r\n\r\n setDisplayDimensions() {\r\n let editableArea = this._view.borderBox.size;\r\n $(this.el.nativeElement).css({\r\n \"width\": (this._designElement.size.width * editableArea.width / 100) + \"px\",\r\n \"height\": (this._designElement.size.height * editableArea.height / 100) + \"px\",\r\n });\r\n \r\n this._designElement.imageFlipped = false;\r\n $(this.el.nativeElement).closest(\".design-element.text-element\").css({\r\n \"width\": (this._designElement.borderBox.size.width * editableArea.width / 100) + \"px\",\r\n \"height\": (this._designElement.borderBox.size.height * editableArea.height / 100) + \"px\",\r\n });\r\n\r\n //this.checkElementSizeInTheBorderBox();\r\n\r\n let size = {\r\n width: this._designElement.borderBox.size.width,\r\n height: this._designElement.borderBox.size.height\r\n };\r\n \r\n this.setSize.emit(size);\r\n this.setElementSizeString($(this.el.nativeElement).width(), $(this.el.nativeElement).height());\r\n }\r\n\r\n checkElementSizeInTheBorderBox() {\r\n let elementWidth, elementHeight, boxWidth, boxHeight, ratio :any;\r\n\r\n elementWidth = $(this.el.nativeElement).width();\r\n elementHeight = $(this.el.nativeElement).height();\r\n boxHeight = $(this.el.nativeElement).closest(\".design-element.text-element\").height();\r\n boxWidth = $(this.el.nativeElement).closest(\".design-element.text-element\").width();\r\n\r\n if(elementHeight > boxHeight || elementHeight < boxHeight \r\n || elementWidth > boxWidth || elementWidth < boxWidth) {\r\n if(elementHeight > boxHeight) {\r\n ratio = boxHeight / elementHeight;\r\n $(this.el.nativeElement).closest(\".design-element.text-element\").css({\r\n \"width\": this._designElement.borderBox.size.width * ratio + \"%\",\r\n });\r\n this._designElement.borderBox.size.width = this._designElement.borderBox.size.width * ratio;\r\n }\r\n else if(elementWidth > boxWidth) {\r\n ratio = boxWidth / elementWidth;\r\n $(this.el.nativeElement).closest(\".design-element.text-element\").css({\r\n \"height\": this._designElement.borderBox.size.height * ratio + \"%\",\r\n });\r\n this._designElement.borderBox.size.height = this._designElement.borderBox.size.height * ratio;\r\n }\r\n }\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/directives/textImageElement.directive.ts","import {Directive, Input, Output, ElementRef, OnInit, EventEmitter} from \"@angular/core\";\r\nimport {CONFIG} from \"../../environments/environment\";\r\nimport {AppEvents} from \"../appEvents\";\r\n\r\ndeclare var $: any;\r\n\r\n@Directive(\r\n {\r\n selector: '[ecc-text-resizable]'\r\n }\r\n)\r\nexport class TextResizableDirective implements OnInit{\r\n size: any;\r\n font: any;\r\n text: any;\r\n fontSize: any;\r\n position: any;\r\n editableArea: any = void 0;\r\n productViewArea: any = void 0;\r\n fontSizeReference: any;\r\n originalWidth: any = void 0;\r\n appEvents: AppEvents = new AppEvents();\r\n isEmbroidery: boolean = false;\r\n initialized: boolean = false;\r\n \r\n @Output() setSize: EventEmitter = new EventEmitter();\r\n @Output() setFontSize: EventEmitter = new EventEmitter();\r\n \r\n @Input() set deFontSize(fontSize: any) {\r\n this.fontSize = fontSize;\r\n }\r\n @Input() set dePosition(position: any) {\r\n this.position = position;\r\n }\r\n @Input() set deSize(size: any) {\r\n this.size = size;\r\n }\r\n @Input() set deFont(font: any) {\r\n this.font = font;\r\n }\r\n @Input() set deText(text: any) {\r\n this.text = text;\r\n if(this.initialized) {\r\n this.constrainTextBox();\r\n }\r\n }\r\n @Input() set embroidery(embroidery: boolean) {\r\n this.isEmbroidery = embroidery;\r\n if(this.initialized) {\r\n this.resetEmbroideryRatio();\r\n }\r\n }\r\n @Input() maxWidthRatio : number = 1;\r\n @Input() maxHeightRatio: number = 1;\r\n\r\n @Input() set textApplied(textApplied: any) {\r\n if(textApplied) {\r\n this.constrainTextBox();\r\n }\r\n }\r\n \r\n constructor(private el: ElementRef){}\r\n \r\n ngOnInit() {\r\n this.fontSizeReference = this.fontSize;\r\n let elem = $(this.el.nativeElement);\r\n \r\n this.editableArea = elem.closest('.editable-area');\r\n this.productViewArea = elem.closest('.current-product-view-img');\r\n\r\n elem.css('font-size', this.fontSize + 'px');\r\n if (this.size === void 0) {\r\n this.saveSize();\r\n }\r\n this.resetCssSize();\r\n\r\n elem.resizable({\r\n maxWidth: this.productViewArea.width(),\r\n maxHeight: this.productViewArea.height(),\r\n start: (ev: any, ui: any) => {\r\n this.originalWidth = ui.size.width;\r\n this.fontSizeReference = parseInt($(this.el.nativeElement).css('font-size'));\r\n },\r\n resize: (ev: any, ui: any) => {\r\n let ratio = ui.size.width / this.originalWidth;\r\n //console.log(\"resize: ratio: \" + ratio + \" ui.size.width = \" + ui.size.width + \" originalWidth = \" + this.originalWidth);\r\n this.setFontSizeCss(ratio, true);\r\n this.resetCssSize();\r\n },\r\n stop: (ev: any, ui: any) => {\r\n this.saveSize();\r\n this.saveFontSize();\r\n this.appEvents.emitCurrentDesignChanged(true);\r\n }\r\n });\r\n this.resetResizableOptions();\r\n this.initialized = true;\r\n //console.log(\"Text resizable\");\r\n }\r\n\r\n resetEmbroideryRatio() {\r\n if(this.isEmbroidery) {\r\n this.constrainTextBox();\r\n }\r\n this.resetResizableOptions();\r\n }\r\n\r\n resetResizableOptions() {\r\n if(this.editableArea && this.productViewArea) {\r\n let elem = $(this.el.nativeElement);\r\n if(this.isEmbroidery) {\r\n elem.resizable(\"option\", \"maxWidth\", this.editableArea.width() * this.maxWidthRatio);\r\n elem.resizable(\"option\", \"maxHeight\", this.editableArea.height() * this.maxHeightRatio);\r\n }\r\n else {\r\n elem.resizable(\"option\", \"maxWidth\", this.productViewArea.width());\r\n elem.resizable(\"option\", \"maxHeight\", this.productViewArea.height());\r\n }\r\n }\r\n }\r\n\r\n constrainTextBox() {\r\n var heightReference: any, ratio: any;\r\n if (this.editableArea !== void 0) {\r\n let elem = $(this.el.nativeElement);\r\n let elemWidth = elem.width();\r\n let maxWidth = this.productViewArea.width();\r\n \r\n if(this.isEmbroidery) {\r\n maxWidth = this.editableArea.width() * this.maxWidthRatio; \r\n }\r\n\r\n if(elemWidth > maxWidth) {\r\n let newWidth = maxWidth; \r\n ratio = (newWidth - (CONFIG.designElement.padding * 2)) / elemWidth;\r\n heightReference = elem.height();\r\n\r\n let elementWidth = elemWidth * ratio;\r\n elem.width(elementWidth);\r\n elem.height((heightReference) * ratio);\r\n \r\n this.saveSize();\r\n this.fontSizeReference = this.setFontSizeCss(ratio, false);\r\n this.saveFontSize();\r\n this.originalWidth = elemWidth * ratio;\r\n }\r\n else {\r\n this.resetCssSize(); \r\n this.originalWidth = this.el.nativeElement.clientWidth; // - (CONFIG.designElement.padding * 2);\r\n }\r\n }\r\n }\r\n \r\n resetCssSize() {\r\n //console.log(\"Inside resetCssSize()...\");\r\n $(this.el.nativeElement).css({\r\n width: \"\",\r\n height: \"\"\r\n });\r\n }\r\n \r\n setCssSize() {\r\n $(this.el.nativeElement).css({\r\n width: this.size.width,\r\n height: this.size.height\r\n });\r\n }\r\n \r\n setFontSizeCss(ratio: any, useReference: boolean) {\r\n let fontSize = parseInt($(this.el.nativeElement).css('font-size'));\r\n fontSize = fontSize * ratio;\r\n //console.log(\"fontSizeReference = \" + this.fontSizeReference + \" fontSize = \" + fontSize);\r\n if(useReference) {\r\n $(this.el.nativeElement).css('font-size', (this.fontSizeReference * ratio) + 'px');\r\n this.setFontSize.emit(this.fontSizeReference * ratio);\r\n }\r\n else {\r\n $(this.el.nativeElement).css('font-size', fontSize + 'px');\r\n this.setFontSize.emit(this.fontSize);\r\n }\r\n return fontSize;\r\n }\r\n \r\n saveSize() {\r\n //console.log(\"Inside saveSize()...\");\r\n let elem = $(this.el.nativeElement);\r\n let size = {\r\n width: elem.width(),\r\n height: elem.height(),\r\n innerWidth: elem.innerWidth(),\r\n innerHeight: elem.innerHeight()\r\n };\r\n \r\n this.setSize.emit(size);\r\n }\r\n \r\n saveFontSize() {\r\n //console.log(\"Inside saveFontSize()...\");\r\n let fontSize = parseInt($(this.el.nativeElement).css('font-size'));\r\n this.setFontSize.emit(fontSize);\r\n };\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/directives/textResizable.directive.ts","import {Directive, ElementRef, Input, Output, EventEmitter} from \"@angular/core\";\r\n\r\n@Directive(\r\n {\r\n selector: \"[ecc-zero-quantity-preventer]\",\r\n host: {\r\n '(change)': 'onChange()'\r\n }\r\n }\r\n)\r\nexport class ZeroQuantityPreventerDirective{\r\n \r\n @Input() passedQuantity: string;\r\n @Input() totalQuantity: number; //scope.totalProductCount\r\n @Output() resetQuantity: EventEmitter = new EventEmitter();\r\n \r\n constructor(private el: ElementRef){ }\r\n \r\n onChange(){\r\n if(!this.passedQuantity) {\r\n this.passedQuantity = \"0\";\r\n }\r\n this.resetQuantity.emit(this.passedQuantity);\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/directives/zeroQuantityPreventer.directive.ts","import {Directive, Input, Output, ElementRef, OnInit, EventEmitter} from \"@angular/core\";\r\nimport {Subscription} from \"rxjs/Subscription\";\r\nimport {AppEvents} from \"../appEvents\";\r\n\r\ndeclare var $: any;\r\ndeclare var slider: any;\r\n\r\n@Directive(\r\n {\r\n selector: \"[ecc-zoom-slider]\"\r\n }\r\n) \r\nexport class ZoomSliderDirective implements OnInit {\r\n \r\n handle: any;\r\n slider: any;\r\n\r\n constructor(private el: ElementRef) {\r\n \r\n }\r\n\r\n ngOnInit() {\r\n this.setSlider();\r\n }\r\n\r\n setSlider() {\r\n this.handle = $(this.el.nativeElement).find(\".handler__scale-zoom\");\r\n this.slider = $(this.el.nativeElement).find(\".slider__zoom\").slider({\r\n range: \"min\",\r\n min: 50,\r\n max: 150,\r\n value: 100,\r\n slide: (event, ui) => {\r\n this.handle.find('span').text(ui.value + '%');\r\n $(this.el.nativeElement).prev().css({\"-webkit-transform\" : \"scale(\" + ui.value / 100 + \")\", \"transform\" : \"scale(\" + ui.value / 100 + \")\"});\r\n }\r\n });\r\n this.handle.val(\"100%\");\r\n }\r\n\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/directives/zoomSlider.directive.ts","import {Pipe} from \"@angular/core\";\r\n\r\n@Pipe(\r\n {\r\n name: \"CategoryMatchPipe\"\r\n ,pure: false // added this. April 3/16. so that it is always called during change detection.\r\n }\r\n)\r\nexport class CategoryMatchPipe {\r\n \r\n transform(value: any, category : any){\r\n if(value) {\r\n if(category){\r\n category = category[0];\r\n return value.filter( (product:any) => {\r\n return product.categoryId === category;\r\n });\r\n }\r\n }\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/pipes/categoryMatch.pipe.ts","import {Pipe} from \"@angular/core\";\r\n\r\n@Pipe(\r\n {\r\n name: \"DesignTypeMatchPipe\" \r\n ,pure: false \r\n }\r\n)\r\nexport class DesignTypeMatchPipe {\r\n \r\n transform(value: any, type : any){\r\n if(value) {\r\n if(type) {\r\n type = type[0];\r\n return value.filter( (designElement: any) => {\r\n return designElement.type === type && !designElement.isDeleted;\r\n });\r\n }\r\n }\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/pipes/designTypeMatch.pipe.ts","import {Pipe, PipeTransform} from \"@angular/core\";\r\n\r\ndeclare var _ : any;\r\n\r\n@Pipe(\r\n {\r\n name: \"FontMatchPipe\",\r\n pure: false // added this. April 3/16. so that it is always called during change detection.\r\n }\r\n)\r\nexport class FontMatchPipe implements PipeTransform {\r\n \r\n transform(fonts : any, isEmbroidery: boolean, isPersonalization: boolean){\r\n var filteredFonts = fonts;\r\n if(isEmbroidery && fonts) {\r\n filteredFonts = filteredFonts.filter( (font:any) => {\r\n return font.availableForEmbroidery == true;\r\n });\r\n }\r\n if(isPersonalization && fonts) {\r\n filteredFonts = filteredFonts.filter( (font:any) => {\r\n return font.availableForPersonalization == true;\r\n });\r\n }\r\n return filteredFonts;\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/pipes/fontMatch.pipe.ts","import {Pipe, PipeTransform} from \"@angular/core\";\r\n\r\ndeclare var _ : any;\r\n\r\n@Pipe(\r\n {\r\n name: \"PersonalizationSizeMatchPipe\",\r\n pure: false // added this. April 3/16. so that it is always called during change detection.\r\n }\r\n)\r\nexport class PersonalizationSizeMatchPipe implements PipeTransform {\r\n \r\n transform(personalizationSizes : any, isEmbroidery: boolean, isNumber: boolean){\r\n let personalizations = [];\r\n personalizationSizes.forEach((size) => {\r\n let addToList: boolean = true;\r\n\r\n if(isEmbroidery) {\r\n addToList = size.isEmbroideryAllowed;\r\n }\r\n else if(!isNumber && size.height > 5) {\r\n addToList = false;\r\n }\r\n\r\n if(addToList) {\r\n personalizations.push(size);\r\n }\r\n });\r\n\r\n return personalizations;\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/pipes/personalizationSizeMatch.pipe.ts","import {Pipe, PipeTransform} from \"@angular/core\";\r\n\r\ndeclare var _ : any;\r\n\r\n@Pipe(\r\n {\r\n name: \"ProductColorsMatchPipe\",\r\n pure: false // added this so that it is always called during change detection.\r\n }\r\n)\r\nexport class ProductColorsMatchPipe implements PipeTransform {\r\n\r\n transform(colors : any) {\r\n if(colors) {\r\n return colors.filter( (color:any) => {\r\n return !color.isDeleted;\r\n });\r\n }\r\n return colors;\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/pipes/productColors.pipe.ts","import {Pipe, PipeTransform} from \"@angular/core\";\r\n\r\ndeclare var _ : any;\r\n\r\n@Pipe(\r\n {\r\n name: \"ProductMatchPipe\",\r\n pure: false // added this. April 3/16. so that it is always called during change detection.\r\n }\r\n)\r\nexport class ProductMatchPipe implements PipeTransform {\r\n \r\n transform(colors: any, selectedColors : any){\r\n if(colors && selectedColors) {\r\n let selectedColorIds = _.pluck(selectedColors, 'id'); \r\n return colors.filter(color => !_.contains(selectedColorIds, color.id))\r\n }\r\n return colors;\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/pipes/productMatch.pipe.ts","import {Injectable} from \"@angular/core\";\r\nimport {Observable} from \"rxjs/Observable\";\r\nimport {Http, URLSearchParams, Response, Headers, ResponseContentType, RequestOptions} from \"@angular/http\";\r\nimport {CONFIG} from \"../../environments/environment\";\r\nimport {Error} from \"../error\";\r\nimport { AppEvents } from \"app/appEvents\";\r\n\r\ndeclare var $ : any;\r\n\r\n@Injectable()\r\nexport class S3ProcessorService{\r\n private signedUrl : string;\r\n private uploadApiUrl: string;\r\n\r\n appEvents: AppEvents = new AppEvents();\r\n reOnlyImages = /image\\/(png|jpeg|gif|tif|tiff|bmp|svg|tga|webp)/;\r\n \r\n constructor(private http: Http){\r\n this.signedUrl = CONFIG.s3Credentials + \"/signed_urls/?userToken=\" + CONFIG.userToken;\r\n this.uploadApiUrl = CONFIG.api.host + \"/imageUpload/UploadDSArtwork/?userToken=\" + CONFIG.userToken;\r\n }\r\n\r\n uploadImage(file: any) {\r\n let formData:FormData = new FormData();\r\n formData.append('uploadFile', file, file.name);\r\n let headers = new Headers();\r\n let options = new RequestOptions({ headers: headers });\r\n let fileTypeSupported: boolean = false;\r\n this.appEvents.emitImageFileUploading(\"fileUploading\");\r\n\r\n if (this.reOnlyImages.test(file.type)) { \r\n fileTypeSupported = true;\r\n }\r\n else if(file.name.toLowerCase().includes(\".psd\")\r\n || file.name.toLowerCase().includes(\".eps\")\r\n || file.name.toLowerCase().includes(\".pdf\")\r\n || file.name.toLowerCase().includes(\".tga\")\r\n || file.name.toLowerCase().includes(\".webp\")) {\r\n fileTypeSupported = true;\r\n }\r\n \r\n if(fileTypeSupported) {\r\n this.uploadFileUsingAPI(formData, options);\r\n }\r\n else {\r\n this.appEvents.emitImageError(true);\r\n }\r\n }\r\n\r\n uploadFileUsingAPI(formData: any, options: any, observer: any = null) {\r\n this.http.post(this.uploadApiUrl, formData, options)\r\n .map(res => res.json())\r\n .catch(error => Observable.throw(error))\r\n .subscribe(\r\n data => {\r\n //console.log(data);\r\n // this is for cliparts\r\n if(observer) {\r\n observer.next(data);\r\n }\r\n // this is for an image\r\n else {\r\n if(data && data.length > 0) {\r\n this.appEvents.emitImageFileUploaded(data[0]);\r\n }\r\n else if(data) {\r\n this.appEvents.emitImageFileUploaded(data);\r\n }\r\n }\r\n },\r\n error => {\r\n console.log(error);\r\n if(error.status == 413) {\r\n this.appEvents.emitImageTooBig(true);\r\n }\r\n else {\r\n this.appEvents.emitImageError(true);\r\n }\r\n }\r\n );\r\n }\r\n\r\n uploadClipart(dataUrl: any) {\r\n return Observable.create((observer: any) => {\r\n this.getImageIcon(dataUrl).subscribe(buffer => {\r\n var newBlob = new Blob([buffer.blob()], { type: 'image/svg+xml' });\r\n let formData:FormData = new FormData();\r\n formData.append('uploadFile', newBlob, \"blob\");\r\n let headers = new Headers();\r\n let options = new RequestOptions({ headers: headers });\r\n this.appEvents.emitImageFileUploading(\"fileUploading\");\r\n this.uploadFileUsingAPI(formData, options, observer);\r\n }); \r\n });\r\n }\r\n \r\n perform(dataUrl: any) {\r\n var blob: any;\r\n \r\n // TODO: test _this = this; for this function\r\n \r\n return Observable.create((observer: any) => {\r\n blob = this.convertDataUrlToBlob(dataUrl);\r\n this.getSignedUrl().subscribe(response => {\r\n var $form: any, $formWithInputs: any;\r\n $form = this.createForm(response);\r\n $formWithInputs = this.addInputs($form, response);\r\n \r\n this.fileUpload($formWithInputs, blob, false).subscribe((url: any) => {\r\n return observer.next(url);\r\n });\r\n });\r\n });\r\n }\r\n\r\n uploadClipartAWS(dataUrl: any) {\r\n return Observable.create((observer: any) => {\r\n this.getImageIcon(dataUrl).subscribe(buffer => {\r\n var newBlob = new Blob([buffer.blob()], { type: 'image/svg+xml' });\r\n this.getSignedUrl().subscribe(response => {\r\n var $form: any, $formWithInputs: any;\r\n $form = this.createForm(response);\r\n $formWithInputs = this.addInputs($form, response);\r\n \r\n this.fileUpload($formWithInputs, newBlob, true).subscribe((url: any) => {\r\n return observer.next(url);\r\n // let reader = new FileReader();\r\n\r\n // // This fires after the blob has been read/loaded.\r\n // reader.addEventListener('loadend', (e) => {\r\n // let data = e.srcElement.result;\r\n // return observer.next({url: url, data: data});\r\n // });\r\n\r\n // // Start reading the blob as text.\r\n // reader.readAsText(newBlob);\r\n });\r\n });\r\n });\r\n });\r\n }\r\n\r\n getImageIcon(dataUrl: any) {\r\n return this.http.get(dataUrl, { responseType: ResponseContentType.Blob });\r\n }\r\n \r\n prepFormForImageUpload($form: any) {\r\n // TODO: test this function.\r\n return Observable.create((observer: any) => {\r\n this.getSignedUrl().subscribe(response => {\r\n $form.attr('action', response.url);\r\n $form.find(\"[name='key']\").val(response.key);\r\n $form.find(\"[name='AWSAccessKeyId']\").val(response['aws-access-key-id']);\r\n $form.find(\"[name='policy']\").val(response.policy);\r\n $form.find(\"[name='signature']\").val(response.signature);\r\n return observer.next();\r\n }, \r\n err => {\r\n console.log(err);\r\n });\r\n });\r\n }\r\n \r\n getSignedUrl() {\r\n // TODO: Test this function.\r\n var params = new URLSearchParams();\r\n let random: number = Math.random();\r\n params.set(\"key\", random.toString());\r\n // TODO: coffee script code sets cache = false when calling http.get method.\r\n return this.http.get(this.signedUrl, {search : params})\r\n .map(res => res.json()); \r\n }\r\n \r\n createForm(signedUrl: any) {\r\n var $form: any;\r\n $form = $('
');\r\n $form.attr('action', signedUrl.url);\r\n $form.attr('method', 'POST');\r\n $form.attr('enctype', 'multipart/form-data');\r\n return $form;\r\n }\r\n \r\n addInputs(form: any, signedUrl: any) {\r\n var $inputAcl: any, $inputContent: any, $inputFile: any, $inputKey: any, $inputKeyId: any, $inputPolicy: any, $inputSignature: any, $inputStatus: any;\r\n $inputContent = $('').attr('type', 'hidden').attr('name', 'Content-Type').attr('value', '');\r\n $inputKey = $('').attr('type', 'hidden').attr('name', 'key').attr('value', signedUrl.key);\r\n $inputKeyId = $('').attr('type', 'hidden').attr('name', 'AWSAccessKeyId').attr('value', signedUrl['aws-access-key-id']);\r\n $inputAcl = $('').attr('type', 'hidden').attr('name', 'acl').attr('value', 'public-read');\r\n $inputPolicy = $('').attr('type', 'hidden').attr('name', 'policy').attr('value', signedUrl.policy);\r\n $inputSignature = $('').attr('type', 'hidden').attr('name', 'signature').attr('value', signedUrl.signature);\r\n $inputStatus = $('').attr('type', 'hidden').attr('name', 'success_action_status').attr('value', '201');\r\n $inputFile = $('').attr('type', 'file').attr('name', 'file');\r\n form.append($inputContent, $inputKey, $inputKeyId, $inputAcl, $inputPolicy, $inputSignature, $inputStatus, $inputFile);\r\n return form;\r\n }\r\n \r\n fileUpload(form: any, blob: any, isSvg: boolean) { // Update this function\r\n return Observable.create((observer: any) => {\r\n form.fileupload({\r\n url: form.attr('action'),\r\n type: 'POST',\r\n dataType: 'xml',\r\n paramName: 'file',\r\n add: function(ev: any, data: any) {\r\n if(isSvg) {\r\n form.find(\"[name='Content-Type']\").val(\"image/svg+xml\");\r\n }\r\n return data.submit();\r\n },\r\n success: function(data: any) {\r\n var key: any;\r\n key = $(data).find('Key').text();\r\n let returnUrl = \"\" + CONFIG.s3Bucket + \"/\" + key;\r\n return observer.next(returnUrl);\r\n },\r\n fail: function(ev: any, data: any) {\r\n return Observable.throw(data);\r\n }\r\n });\r\n form.fileupload('add', {\r\n files: blob,\r\n });\r\n });\r\n }\r\n \r\n convertDataUrlToBlob(dataUrl: any) {\r\n if(dataUrl) {\r\n\r\n var array: any, binary: any, blob: any, i: any;\r\n binary = atob(dataUrl.split(\",\")[1]);\r\n array = [];\r\n i = 0;\r\n while (i < binary.length) {\r\n array.push(binary.charCodeAt(i));\r\n i++;\r\n }\r\n return blob = new Blob([new Uint8Array(array)], {\r\n type: 'image/png'\r\n });\r\n }\r\n else return new Blob([]);\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/services/s3Processor.service.ts","import {Pipe, PipeTransform} from \"@angular/core\";\r\n\r\ndeclare var _ : any;\r\n\r\n@Pipe(\r\n {\r\n name: \"ProductSizeMatchPipe\",\r\n pure: false // added this so that it is always called during change detection.\r\n }\r\n)\r\nexport class ProductSizeMatchPipe implements PipeTransform {\r\n\r\n transform(sizes : any) {\r\n let filteredSizes: any = [];\r\n if(sizes) {\r\n return sizes.filter( (size:any) => {\r\n return size.quantity > 0;\r\n });\r\n }\r\n return filteredSizes;\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/pipes/productSizeMatch.pipe.ts","import {Injectable} from \"@angular/core\";\r\nimport {Observable} from \"rxjs/Observable\";\r\nimport {Http, URLSearchParams, Response} from \"@angular/http\";\r\nimport \"rxjs/add/operator/map\";\r\nimport \"rxjs/add/operator/catch\";\r\n\r\nimport {CONFIG} from \"../../environments/environment\";\r\nimport {Error} from \"../error\";\r\n\r\n\r\n// This service gets the icons from the noun project site.\r\n\r\n@Injectable()\r\nexport class ClipartIconService {\r\n private clipartUrl: string;\r\n private limit: number;\r\n \r\n constructor(private http: Http) {\r\n this.clipartUrl = CONFIG.api.host + \"/clipart/icon/\";\r\n this.limit = CONFIG.clipart.limit;\r\n }\r\n \r\n get(idorTerm: string) {\r\n if(idorTerm) {\r\n \r\n let url = this.clipartUrl + idorTerm;\r\n return this.http.get(url)\r\n .map((res: Response) => res.json())\r\n .catch(this.handleError);\r\n }\r\n }\r\n \r\n private handleError (error: any) {\r\n // TODO: Log this error to the server.\r\n return Observable.throw(Error.handleError(error) || 'Server error');\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/resources/clipartIcon.ts","import {Injectable} from \"@angular/core\";\r\nimport {Observable} from \"rxjs/Observable\";\r\nimport {Http, URLSearchParams, Response} from \"@angular/http\";\r\nimport \"rxjs/add/operator/map\";\r\nimport \"rxjs/add/operator/catch\";\r\n\r\nimport {CONFIG} from \"../../environments/environment\";\r\nimport {Error} from \"../error\";\r\n\r\n@Injectable()\r\nexport class ClipartSvgsService {\r\n private clipartSvgsUrl: string;\r\n private userToken: string;\r\n \r\n constructor(private http: Http) {\r\n this.clipartSvgsUrl = CONFIG.api.host + \"/ClipartSvgs/\";\r\n this.userToken = \"?userToken\" + CONFIG.userToken; // TODO: Get this userToken \r\n }\r\n \r\n get(tagIdOrName?: string) {\r\n if(tagIdOrName) {\r\n \r\n let url = this.clipartSvgsUrl + tagIdOrName; //+ this.userToken;\r\n var params = new URLSearchParams();\r\n params.set(\"path\", CONFIG.api.images);\r\n \r\n return this.http.get(url, {search: params})\r\n .map((res: Response) => res.json())\r\n .catch(this.handleError);\r\n }\r\n }\r\n \r\n // getAll(){\r\n // let url = this.clipartSvgsUrl + tagIdOrName + this.userToken;\r\n\r\n // return this.http.get(this.clipartSvgsUrl)\r\n // .map((res: Response) => res.json())\r\n // .catch(this.handleError);\r\n // }\r\n \r\n private handleError (error: any) {\r\n // TODO: Log this error to the server.\r\n return Observable.throw(Error.handleError(error) || 'Server error');\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/resources/clipart_svgs.ts","import {Injectable} from \"@angular/core\";\r\nimport {Observable} from \"rxjs/Observable\";\r\nimport {Http, URLSearchParams, Response} from \"@angular/http\";\r\nimport \"rxjs/add/operator/map\";\r\nimport \"rxjs/add/operator/catch\";\r\n\r\nimport {CONFIG} from \"../../environments/environment\";\r\nimport {Error} from \"../error\";\r\n\r\n@Injectable()\r\nexport class ClipartTagsService {\r\n private clipartTagsUrl: string;\r\n private userToken: string;\r\n \r\n constructor(private http: Http) {\r\n this.clipartTagsUrl = CONFIG.api.host + \"/ClipartTags\";\r\n }\r\n \r\n get(id?: number) {\r\n if(id) {\r\n var params = new URLSearchParams();\r\n params.set(\"id\", id.toString());\r\n params.set(\"path\", CONFIG.api.images);\r\n \r\n return this.http.get(this.clipartTagsUrl, {search: params})\r\n .map((res: Response) => res.json())\r\n .catch(this.handleError);\r\n }\r\n else {\r\n return this.getAll();\r\n }\r\n }\r\n \r\n getAll() {\r\n var params = new URLSearchParams();\r\n params.set(\"path\", CONFIG.api.images);\r\n \r\n return this.http.get(this.clipartTagsUrl, {search: params})\r\n .map((res: Response) => res.json())\r\n .catch(this.handleError);\r\n }\r\n \r\n private handleError (error: any) {\r\n // TODO: Log this error to the server.\r\n return Observable.throw(Error.handleError(error) || 'Server error');\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/resources/clipart_tags.ts","import {Injectable} from \"@angular/core\";\r\nimport {Observable} from 'rxjs/Observable';\r\nimport {Http, Response, Headers, RequestOptions} from '@angular/http';\r\nimport 'rxjs/add/operator/map';\r\nimport 'rxjs/add/operator/catch';\r\n\r\nimport {CONFIG} from '../../environments/environment';\r\nimport {SavedDesignModel} from \"../models/savedDesign.model\";\r\nimport {Error} from \"../error\";\r\n\r\n@Injectable()\r\nexport class PriceService{\r\n private priceUrl: string;\r\n private headers: Headers;\r\n \r\n constructor(private http: Http) {\r\n this.headers = new Headers();\r\n this.headers.append('Content-Type', 'application/json');\r\n this.priceUrl = CONFIG.api.host + \"/Price/\";\r\n }\r\n \r\n get(){\r\n //\"#{CONFIG.api.host}/Price/\"\r\n return this.http.get(this.priceUrl)\r\n .map(response => response.json())\r\n .catch(this.handleError);\r\n }\r\n \r\n post(design: SavedDesignModel){\r\n let options = new RequestOptions({headers: this.headers});\r\n return this.http.post(this.priceUrl, JSON.stringify(design), options)\r\n .map((res) => res.json())\r\n .catch(this.handleError);\r\n }\r\n \r\n private handleError (error: any) {\r\n // TODO: Log this error to the server.\r\n return Observable.throw(Error.handleError(error) || 'Server error');\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/resources/price.ts","import {Injectable} from \"@angular/core\";\r\nimport {Observable} from 'rxjs/Observable';\r\nimport {Http, Response} from '@angular/http';\r\nimport 'rxjs/add/operator/map';\r\nimport 'rxjs/add/operator/catch';\r\n\r\nimport {CONFIG} from '../../environments/environment';\r\nimport {Error} from \"../error\";\r\n\r\n@Injectable()\r\nexport class SignedUrlsService{\r\n private signedUrl: string;\r\n \r\n constructor(private http: Http) {\r\n this.signedUrl = CONFIG.s3Credentials + \"/signed_urls/?userToken=\" + CONFIG.userToken;\r\n }\r\n \r\n query(){\r\n //\"#{CONFIG.s3Credentials}/signed_urls/\"\r\n return this.http.get(this.signedUrl)\r\n .map(response => response.json())\r\n .catch(this.handleError);\r\n }\r\n \r\n private handleError (error: any) {\r\n // TODO: Log this error to the server.\r\n return Observable.throw(Error.handleError(error) || 'Server error');\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/resources/signed_urls.ts","import { Injectable } from '@angular/core';\r\nimport { AppEvents } from \"../appEvents\";\r\nimport { CreateDesignService } from 'app/resources/createDesign';\r\nimport { ProductColorSelectionService } from './productColorSelection.service';\r\nimport { AppStateService } from './appState.service';\r\nimport { ProductsHelperService } from \"./productsHelper.service\";\r\nimport { LoadDesignHelperService } from './loadDesignHelper.service';\r\n\r\n@Injectable()\r\nexport class CreateDesignHelperService {\r\n appEvents: AppEvents = new AppEvents();\r\n \r\n constructor(private createDesignService: CreateDesignService, private productColorSelection: ProductColorSelectionService,\r\n private statesService: AppStateService, private productsService: ProductsHelperService, \r\n private loadDesignHelper: LoadDesignHelperService\r\n ){}\r\n \r\n getDesignByDecorationGroup (groupId: any) {\r\n this.createDesignService.getDesignByGroupId(groupId).subscribe((newDesign) => {\r\n this.productColorSelection.resetSelection();\r\n this.statesService.reset();\r\n \r\n this.productsService.getProductObservable(newDesign.design.productId).subscribe((product : any) => {\r\n if(newDesign.colorSizes.length > 0) {\r\n // following line may not be required\r\n //this.loadDesignHelper.findSavedColor(newDesign.colorSizes[0].colorId, product.colors);\r\n this.loadDesignHelper.setOrderSelection(product, newDesign.colorSizes, this.productColorSelection._selection);\r\n }\r\n if(newDesign.design.selection.length > 0) {\r\n this.productColorSelection.copySelections(this.productColorSelection._selection, newDesign.design.selection, product);\r\n }\r\n let ref: any = newDesign.design.views;\r\n let results: any = [];\r\n for (let i = 0, len = ref.length; i < len; i++) {\r\n let savedView: any = ref[i];\r\n let productView = this.loadDesignHelper.findSavedProductView(savedView.id, product.views);\r\n this.loadDesignHelper.prepDesignView(productView, savedView);\r\n \r\n \r\n }\r\n });\r\n });\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/services/createDesign.service.ts","import {Injectable} from \"@angular/core\";\r\nimport {Observable} from 'rxjs/Observable';\r\nimport {Http, Response, Headers, URLSearchParams, RequestOptions} from '@angular/http';\r\nimport 'rxjs/add/operator/map';\r\nimport 'rxjs/add/operator/catch';\r\nimport {CONFIG} from '../../environments/environment';\r\nimport {Error} from \"../error\";\r\n\r\n@Injectable()\r\nexport class ImageRenderService {\r\n private url: string;\r\n \r\n constructor(private http: Http) {\r\n this.url = CONFIG.api.host + \"/renderImage/?userToken=\" + CONFIG.userToken;\r\n }\r\n \r\n get(url: any) {\r\n var params = new URLSearchParams();\r\n params.set('url', url);\r\n return this.http.get(this.url, {search: params})\r\n .map(response => response.json())\r\n .catch(this.handleError);\r\n }\r\n\r\n getByPixels(url: any, pixels: any = 5, maxNoOfColors: any = 5) {\r\n var params = new URLSearchParams();\r\n params.set('url', url);\r\n params.set('pixels', pixels);\r\n params.set('maxNoOfColors', maxNoOfColors);\r\n return this.http.get(this.url, {search: params})\r\n .map(response => response.json())\r\n .catch(this.handleError);\r\n }\r\n\r\n \r\n private handleError (error: any) {\r\n // TODO: Log this error to the server.\r\n return Observable.throw(Error.handleError(error) || 'Server error');\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/resources/imageRender.ts","import {Injectable} from \"@angular/core\";\r\nimport {Observable} from \"rxjs/Observable\";\r\nimport {Http, URLSearchParams, Headers, Response, RequestOptions} from \"@angular/http\";\r\n\r\nimport {DesignTemplateService} from \"../resources/designTemplates\";\r\nimport {CONFIG} from \"../../environments/environment\";\r\nimport {Error} from \"../error\";\r\n\r\ndeclare var _ : any;\r\ndeclare var $ : any;\r\n\r\n@Injectable()\r\nexport class SaveProcessorService {\r\n private ordersUrl: string;\r\n private headers: Headers;\r\n \r\n constructor(private http: Http, private designTemplateService: DesignTemplateService){\r\n this.ordersUrl = CONFIG.api.host + \"/Designs/?userToken=\" + CONFIG.userToken;\r\n this.headers = new Headers();\r\n this.headers.append('Content-Type', 'application/json');\r\n }\r\n \r\n perform(args: any, designId: any, inCart: any) { // Update this function\r\n return Observable.create((observer: any) => {\r\n this.prepOrder(args, designId, inCart)\r\n .subscribe((design: any) =>{\r\n this.XHR(design, designId)\r\n .subscribe(\r\n response => {\r\n if(response instanceof Response){\r\n observer.next(design.id);\r\n }\r\n else{\r\n observer.next(response);\r\n }\r\n },\r\n error => {\r\n observer.error(error); \r\n }); \r\n });\r\n });\r\n }\r\n\r\n saveDesignTemplate(args: any, designId: any) {\r\n return Observable.create((observer: any) => {\r\n this.prepOrder(args, designId, false).subscribe((savedDesign: any) => {\r\n // create the design template model here\r\n let designedTemplate = {\r\n id: 0,\r\n name: args.name,\r\n savedDesign: savedDesign \r\n };\r\n if (designId) {\r\n designedTemplate.id = designId;\r\n }\r\n this.saveTemplate(designedTemplate, designId).subscribe(\r\n response => {\r\n if(response instanceof Response){\r\n observer.next(savedDesign.id);\r\n }\r\n else{\r\n observer.next(response);\r\n }\r\n },\r\n error => {\r\n observer.error(error); \r\n }\r\n ); \r\n });\r\n });\r\n }\r\n\r\n saveTemplate(designedTemplate: any, designId: any) {\r\n if (!designId) {\r\n return this.designTemplateService.post(designedTemplate);\r\n } \r\n else {\r\n return this.designTemplateService.put(designedTemplate);\r\n }\r\n }\r\n \r\n prepOrder(args: any, designId: any, inCart: any) { // Update this function\r\n return Observable.create((observer: any) => {\r\n let design: any;\r\n // create design based on decoration group now\r\n if(args.decorationGroup) {\r\n design = this.createDesignFromDecorationGroup(args.decorationGroup);\r\n }\r\n else {\r\n let decorationGroup: any = {\r\n products: [],\r\n }\r\n let product: any = {\r\n id: args.product.id,\r\n product: args.product,\r\n selection: args.selection,\r\n };\r\n decorationGroup.products.push(product);\r\n design = this.createDesignFromDecorationGroup(decorationGroup);\r\n }\r\n if (designId) {\r\n design.id = designId;\r\n }\r\n\r\n this.checkAutoProofFlags(design);\r\n design.name = args.designName;\r\n design.inCart = inCart;\r\n design.isOrderDesign = args.isOrderDesign ? args.isOrderDesign: false;\r\n design.orderDesignId = args.orderDesignId ? args.orderDesignId: 0;\r\n design.orderGroupId = args.orderGroupId ? args.orderGroupId : null;\r\n design.orderCustomerId = args.orderCustomerId;\r\n design.orderRivisionId = args.orderRivisionId; \r\n design.decorationGroupId = args.decorationGroupId ? args.decorationGroupId : null;\r\n design.notes = args.notes ? args.notes : null;\r\n\r\n return observer.next(design);\r\n });\r\n }\r\n\r\n checkAutoProofFlags(design: any) {\r\n if(design) {\r\n\r\n design.isArtworkOutsidePrintableArea = false;\r\n design.isBackgroundRemoved = false;\r\n design.containsEmbroidery = false;\r\n design.hasLowResImage = false;\r\n design.isArtworkColorChanged = false;\r\n\r\n var product: any = null;\r\n if(design.products && design.products.length > 0) {\r\n product = design.products[0];\r\n product.views.forEach(view => {\r\n view.designElements.forEach(element => {\r\n if(element.outsidePrintableArea) {\r\n design.isArtworkOutsidePrintableArea = true;\r\n }\r\n if(element.lowResolution) {\r\n design.hasLowResImage = true;\r\n }\r\n if(element.removeBackground) {\r\n design.isBackgroundRemoved = true;\r\n }\r\n if(element.isEmbroidery) {\r\n design.containsEmbroidery = true;\r\n }\r\n if(!element.isFullColor && (element.isArtworkColorChanged || (element.foundColors && element.totalImageColors > element.foundColors.length))) {\r\n design.isArtworkColorChanged = true;\r\n }\r\n });\r\n });\r\n }\r\n }\r\n }\r\n\r\n createDesignFromDecorationGroup(decorationGroup: any) {\r\n let design: any = {\r\n products: [],\r\n };\r\n if(decorationGroup) {\r\n decorationGroup.products.forEach((element) => {\r\n let views: any = [];\r\n element.product.views.forEach((view) => {\r\n if(view.designElements.length > 0) {\r\n views.push(view);\r\n }\r\n });\r\n let p: any = {\r\n productId: element.product.id,\r\n views: this.cleanViews(views),\r\n selection: this.cleanColorSelection(element.selection),\r\n colorSizes: this.getColorSizesFromSelection(element.selection)\r\n };\r\n design.products.push(p);\r\n });\r\n }\r\n return design;\r\n }\r\n \r\n cleanViews(rawViews: any) {\r\n var rawView: any, view: any, views: any, i: any, len: any;\r\n views = [];\r\n for (i = 0, len = rawViews.length; i < len; i++) {\r\n rawView = rawViews[i];\r\n let designElements = this.cleanDesignElements(rawView.designElements);\r\n if(designElements.length > 0) {\r\n view = {\r\n id: rawView.id,\r\n screenshotSource: rawView.screenshotSource,\r\n name: rawView.name,\r\n locationId: rawView.locationId,\r\n designElements: designElements,\r\n borderBox: rawView.borderBox,\r\n size: rawView.size,\r\n imageSize: rawView.imageSize,\r\n artboardMoved: rawView.artboardMoved,\r\n imageContainerSize: rawView.imageContainerSize,\r\n selectedColors: this.cleanColorSelection(rawView.selectedColors),\r\n };\r\n views.push(view);\r\n }\r\n }\r\n return _.sortBy(views, 'id');\r\n }\r\n\r\n cleanColorSelection(selectedColors) {\r\n let cleanColors: any = [];\r\n selectedColors.forEach(color => {\r\n let cleanColor = JSON.parse(JSON.stringify(color));\r\n cleanColors.push(cleanColor);\r\n });\r\n return cleanColors;\r\n }\r\n\r\n cleanView(rawView: any, cleanColors: boolean = true) {\r\n if(rawView) {\r\n let designElements = this.cleanDesignElements(rawView.designElements, false, true, cleanColors);\r\n let selectedColors = this.cleanColorSelection(rawView.selectedColors);\r\n let view = {\r\n id: rawView.id,\r\n productId: rawView.productId,\r\n locationId: rawView.locationId,\r\n name: rawView.name,\r\n screenshotSource: rawView.screenshotSource,\r\n artboardMoved: rawView.artboardMoved,\r\n editableArea: JSON.parse(JSON.stringify(rawView.editableArea)),\r\n designElements: designElements,\r\n guidelines: JSON.parse(JSON.stringify(rawView.guidelines)),\r\n embroideryRatioWidth: rawView.embroideryRatioWidth,\r\n embroideryRatioHeight: rawView.embroideryRatioHeight,\r\n size: JSON.parse(JSON.stringify(rawView.size)),\r\n imageSize: JSON.parse(JSON.stringify(rawView.imageSize)),\r\n borderBox: JSON.parse(JSON.stringify(rawView.borderBox)),\r\n selectedColors: selectedColors,\r\n };\r\n return view;\r\n }\r\n }\r\n\r\n getClonedElement(designElement: any) {\r\n let $el = designElement.$el;\r\n designElement.$el = void 0;\r\n let clonedElement = $.extend(true, {}, designElement);\r\n designElement.$el = $el;\r\n return clonedElement;\r\n }\r\n \r\n cleanDesignElements(designElements: any, overwriteSource: boolean = true, \r\n includeDeleted: boolean = false, cleanColors: boolean = true) {\r\n // TODO: test this function\r\n var cleanElement: any, cleanElements: any, designElement: any, i: any, len: any;\r\n cleanElements = [];\r\n for (i = 0, len = designElements.length; i < len; i++) {\r\n designElement = designElements[i];\r\n if(!designElement.isDeleted || includeDeleted) {\r\n cleanElements.push(this.cleanDesignElement(designElement, cleanColors));\r\n }\r\n }\r\n return cleanElements;\r\n }\r\n\r\n cleanDesignElement(designElement: any, cleanColors: boolean = true) {\r\n var cleanElement: any;\r\n cleanElement = this.getClonedElement(designElement);\r\n if (cleanElement.font) {\r\n cleanElement.fontId = cleanElement.font.id;\r\n }\r\n if (cleanElement.color) {\r\n cleanElement.colorId = cleanElement.color.id;\r\n }\r\n if (cleanElement.colors && cleanElement.colors.length > 0 && cleanColors) {\r\n cleanElement.colors = this.cleanElementColors(cleanElement.colors);\r\n }\r\n else if(cleanElement.type === \"image\") {\r\n if(!cleanElement.isEmbroidery && !cleanElement.isFullColor && cleanColors) {\r\n cleanElement.isFullColor = true;\r\n }\r\n }\r\n if(cleanElement.type === \"text\" && cleanElement.source) {\r\n cleanElement.source = \"\";\r\n }\r\n return cleanElement;\r\n }\r\n\r\n copyElement(destinationElement: any, sourceElement: any) {\r\n if(destinationElement && sourceElement) {\r\n destinationElement.fontId = sourceElement.fontId;\r\n if(sourceElement.font) {\r\n destinationElement.font = JSON.parse(JSON.stringify(sourceElement.font));\r\n }\r\n if(sourceElement.colors) {\r\n destinationElement.colors = this.cleanElementColors(sourceElement.colors);\r\n }\r\n destinationElement.text = sourceElement.text;\r\n destinationElement.isEmbroidery = sourceElement.isEmbroidery;\r\n destinationElement.isArtworkEmbroidered = sourceElement.isArtworkEmbroidered;\r\n destinationElement.isPersonalization = sourceElement.isPersonalization;\r\n destinationElement.isNumber = sourceElement.isNumber;\r\n destinationElement.personalizationName = sourceElement.personalizationName;\r\n if(sourceElement.personalizationSize) {\r\n destinationElement.personalizationSize = JSON.parse(JSON.stringify(sourceElement.personalizationSize));\r\n }\r\n if(sourceElement.position) {\r\n destinationElement.position = JSON.parse(JSON.stringify(sourceElement.position));\r\n }\r\n if(sourceElement.size) {\r\n destinationElement.size = JSON.parse(JSON.stringify(sourceElement.size));\r\n }\r\n destinationElement.pixelsPerInch = sourceElement.pixelsPerInch;\r\n destinationElement.inches = sourceElement.inches;\r\n destinationElement.zIndex = sourceElement.zIndex;\r\n destinationElement.isFullColor = sourceElement.isFullColor;\r\n destinationElement.rotationAngle = sourceElement.rotationAngle;\r\n destinationElement.multiline = sourceElement.multiline;\r\n destinationElement.alignment = sourceElement.alignment;\r\n destinationElement.isLocked = sourceElement.isLocked;\r\n if(sourceElement.textEffect) {\r\n destinationElement.textEffect = JSON.parse(JSON.stringify(sourceElement.textEffect));\r\n }\r\n if(sourceElement.textShape) {\r\n destinationElement.textShape = JSON.parse(JSON.stringify(sourceElement.textShape));\r\n }\r\n if(sourceElement.textBorder) {\r\n destinationElement.textBorder = JSON.parse(JSON.stringify(sourceElement.textBorder));\r\n }\r\n if(sourceElement.borderBox) {\r\n destinationElement.borderBox = JSON.parse(JSON.stringify(sourceElement.borderBox));\r\n }\r\n }\r\n }\r\n \r\n cleanElementColors(colors: any) {\r\n var color: any, colorIds: any, i: any, len: any;\r\n colorIds = [];\r\n for (i = 0, len = colors.length; i < len; i++) {\r\n color = colors[i];\r\n if(typeof color === \"number\") {\r\n colorIds.push(color);\r\n }\r\n else if(typeof color === \"object\") {\r\n colorIds.push(color.id);\r\n }\r\n }\r\n return colorIds;\r\n }\r\n \r\n getColorSizes(rawSizes: any, colorId: any) {\r\n var rawSize: any, size: any, sizes: any, i: any, len: any;\r\n sizes = [];\r\n for (i = 0, len = rawSizes.length; i < len; i++) {\r\n rawSize = rawSizes[i];\r\n if (rawSize.quantity > 0) {\r\n size = {\r\n sizeId: rawSize.id,\r\n colorId: colorId,\r\n quantity: rawSize.quantity\r\n };\r\n sizes.push(size);\r\n }\r\n }\r\n return sizes;\r\n }\r\n \r\n getColorSizesFromSelection(selection: any) {\r\n var rawSize: any, size: any, sizes: any, i: any, lenSelection: any;\r\n var color: any, lenSize: any, jj: any;\r\n sizes = [];\r\n for (i = 0, lenSelection = selection.length; i < lenSelection; i++) {\r\n color = selection[i];\r\n for(jj = 0, lenSize = color.sizes.length; jj < lenSize; jj++) {\r\n rawSize = color.sizes[jj];\r\n //if (rawSize.quantity > 0) \r\n {\r\n size = {\r\n sizeId: rawSize.id,\r\n colorId: color.id,\r\n quantity: rawSize.quantity\r\n };\r\n sizes.push(size);\r\n }\r\n }\r\n }\r\n return sizes;\r\n }\r\n \r\n XHR(design: any, designId: any) {\r\n // TODO: test this function\r\n let options = new RequestOptions({headers: this.headers});\r\n if (!designId) {\r\n return this.http.post( this.ordersUrl, JSON.stringify(design), options)\r\n .map((res) => res.json())\r\n .catch(this.handleError);\r\n } \r\n else {\r\n return this.http.put(this.ordersUrl, JSON.stringify(design), options)\r\n .catch(this.handleError);\r\n }\r\n }\r\n \r\n private handleError (error: any) {\r\n // TODO: Log this error to the server.\r\n return Observable.throw(Error.handleError(error) || 'Server error');\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/services/saveProcessor.service.ts","import {Injectable} from \"@angular/core\";\r\nimport {AppEvents} from \"../appEvents\";\r\n\r\ndeclare var _: any;\r\n\r\n@Injectable()\r\nexport class SelectedDesignElementsService {\r\n\r\n selectedDesignElements: any = [];\r\n appEvents: AppEvents = new AppEvents();\r\n\r\n reset() {\r\n this.selectedDesignElements = [];\r\n }\r\n\r\n hasElements() {\r\n return this.selectedDesignElements.length > 0;\r\n }\r\n\r\n addElement(element: any) {\r\n if(!this.contains(element)) {\r\n this.selectedDesignElements.push(element);\r\n }\r\n }\r\n\r\n contains(element: any) {\r\n var findElement: any;\r\n findElement = _.where(this.selectedDesignElements, {\r\n id: element.id\r\n });\r\n return findElement.length > 0; \r\n }\r\n\r\n containsById(id: any) {\r\n var findElement: any;\r\n findElement = _.where(this.selectedDesignElements, {\r\n id: id\r\n });\r\n return findElement.length > 0; \r\n }\r\n\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/services/selectedDesignElements.service.ts","exports = module.exports = require(\"../../node_modules/css-loader/lib/css-base.js\")();\n// imports\n\n\n// module\nexports.push([module.id, \"\", \"\"]);\n\n// exports\n\n\n/*** EXPORTS FROM exports-loader ***/\nmodule.exports = module.exports.toString();\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/app.component.css\n// module id = 950\n// module chunks = 1"],"sourceRoot":""}