monkey-style-guide 2.0.74 → 2.0.75
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/monkey-style-guide.umd.js +1 -1
- package/bundles/monkey-style-guide.umd.js.map +1 -1
- package/esm2015/lib/components/button/button.component.js +2 -2
- package/fesm2015/monkey-style-guide.js +1 -1
- package/fesm2015/monkey-style-guide.js.map +1 -1
- package/monkey-style-guide-2.0.75.tgz +0 -0
- package/package.json +1 -1
- package/monkey-style-guide-2.0.74.tgz +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"monkey-style-guide.js","sources":["../../../projects/monkey-style-guide/src/lib/core/services/monkey-style-guide.service.ts","../../../projects/monkey-style-guide/src/lib/core/services/settings/monkey-style-guide-theme-settings.service.ts","../../../projects/monkey-style-guide/src/lib/core/services/settings/monkey-style-guide-settings.service.ts","../../../projects/monkey-style-guide/src/lib/core/utils/utils.ts","../../../projects/monkey-style-guide/src/lib/core/services/snackbar/mokey-style-guide-snackbar.service.ts","../../../projects/monkey-style-guide/src/lib/core/services/modal/monkey-style-guide-modal.service.ts","../../../projects/monkey-style-guide/src/lib/core/services/modal/monkey-style-guide-modal-fixed.service.ts","../../../projects/monkey-style-guide/src/lib/components/badge/badge.component.ts","../../../projects/monkey-style-guide/src/lib/components/badge/badge.module.ts","../../../projects/monkey-style-guide/src/lib/components/button/button.component.ts","../../../projects/monkey-style-guide/src/lib/components/button/button-dropdown.component.ts","../../../projects/monkey-style-guide/src/lib/components/button/button-avatar.component.ts","../../../projects/monkey-style-guide/src/lib/components/icon/icon.component.ts","../../../projects/monkey-style-guide/src/lib/components/icon/icons.component.ts","../../../projects/monkey-style-guide/src/lib/components/icon/icon.module.ts","../../../projects/monkey-style-guide/src/lib/components/button/button.module.ts","../../../projects/monkey-style-guide/src/lib/components/input/input.component.ts","../../../projects/monkey-style-guide/src/lib/components/input/input-filter.component.ts","../../../projects/monkey-style-guide/src/lib/components/input/input.module.ts","../../../projects/monkey-style-guide/src/lib/components/option/option.component.ts","../../../projects/monkey-style-guide/src/lib/components/option/option.module.ts","../../../projects/monkey-style-guide/src/lib/components/select/select.component.ts","../../../projects/monkey-style-guide/src/lib/components/select/select-multiple.component.ts","../../../projects/monkey-style-guide/src/lib/components/select/select-search.component.ts","../../../projects/monkey-style-guide/src/lib/components/select/select-filter.component.ts","../../../projects/monkey-style-guide/src/lib/components/select/select.module.ts","../../../projects/monkey-style-guide/src/lib/components/checkbox/checkbox.component.ts","../../../projects/monkey-style-guide/src/lib/components/checkbox/checkbox.module.ts","../../../projects/monkey-style-guide/src/lib/components/radiobutton/radiobutton.component.ts","../../../projects/monkey-style-guide/src/lib/components/radiobutton/radiobutton.module.ts","../../../projects/monkey-style-guide/src/lib/components/wizard/wizard.component.ts","../../../projects/monkey-style-guide/src/lib/components/wizard/wizard.module.ts","../../../projects/monkey-style-guide/src/lib/components/file-upload/file-upload.component.ts","../../../projects/monkey-style-guide/src/lib/components/file-upload/file-upload.module.ts","../../../projects/monkey-style-guide/src/lib/components/image-crop/image-crop.component.ts","../../../projects/monkey-style-guide/src/lib/components/image-crop/image-crop.module.ts","../../../projects/monkey-style-guide/src/lib/components/modal/modal.component.ts","../../../projects/monkey-style-guide/src/lib/components/modal/modal.module.ts","../../../projects/monkey-style-guide/src/lib/components/expansion/expansion.component.ts","../../../projects/monkey-style-guide/src/lib/components/expansion/expansion.module.ts","../../../projects/monkey-style-guide/src/lib/components/table/table.component.ts","../../../projects/monkey-style-guide/src/lib/components/table/table-column.component.ts","../../../projects/monkey-style-guide/src/lib/components/table/table.module.ts","../../../projects/monkey-style-guide/src/lib/components/toggle/toggle.component.ts","../../../projects/monkey-style-guide/src/lib/components/toggle/toggle.module.ts","../../../projects/monkey-style-guide/src/lib/components/tab/tab.component.ts","../../../projects/monkey-style-guide/src/lib/components/tab/tab.module.ts","../../../projects/monkey-style-guide/src/lib/components/stepper/stepper.component.ts","../../../projects/monkey-style-guide/src/lib/components/stepper/stepper.module.ts","../../../projects/monkey-style-guide/src/lib/monkey-style-guide.module.ts","../../../projects/monkey-style-guide/src/public-api.ts","../../../projects/monkey-style-guide/src/monkey-style-guide.ts"],"sourcesContent":["import { Injectable } from \"@angular/core\";\r\nimport { HttpClient } from \"@angular/common/http\";\r\nimport { Observable } from \"rxjs\";\r\n\r\n@Injectable()\r\nexport class MonkeyStyleGuideService {\r\n constructor(private http: HttpClient) { }\r\n\r\n public get<T>(url: string, options?: T): Observable<T> {\r\n return this.http.get<T>(url, options);\r\n }\r\n}","/**************************\r\n * Copyright Monkey Exchange. All Rights Reserved\r\n * This style guide was developed by Monkey Exchange Team\r\n * MIT Licence\r\n **************************/\r\nimport { Injectable, Inject } from '@angular/core';\r\nimport { MonkeyStyleSettings, MonkeyStyleFontSettings } from '../../interfaces';\r\nimport { DOCUMENT } from '@angular/common';\r\n\r\n@Injectable()\r\nexport class MonkeyStyleGuideThemeSettingsService {\r\n constructor(@Inject(DOCUMENT) private doc: any) {}\r\n\r\n private applyColors(settings: MonkeyStyleSettings): any {\r\n const colors: any = settings.colors;\r\n\r\n let bucketColors = null;\r\n\r\n ['theme', 'error', 'warning', 'success', 'question'].forEach((color) => {\r\n Object.entries(colors[color] as any).forEach(\r\n ([paletteKey, paletteValue]) => {\r\n if (paletteKey === 'contrast') {\r\n Object.entries(paletteValue).forEach(\r\n ([paletteContrastKey, paletteContrastValue]) => {\r\n document.documentElement.style.setProperty(\r\n `--mecx-color-${color}-contrast-${paletteContrastKey}`,\r\n `${paletteContrastValue}`\r\n );\r\n bucketColors = {\r\n ...bucketColors,\r\n [`--mecx-color-${color}-contrast-${paletteContrastKey}`]: `${paletteContrastValue}`,\r\n };\r\n }\r\n );\r\n } else {\r\n document.documentElement.style.setProperty(\r\n `--mecx-color-${color}-${paletteKey}`,\r\n `${paletteValue}`\r\n );\r\n bucketColors = {\r\n ...bucketColors,\r\n [`--mecx-color-${color}-${paletteKey}`]: `${paletteValue}`,\r\n };\r\n }\r\n }\r\n );\r\n });\r\n\r\n return bucketColors;\r\n }\r\n\r\n private applyFonts(settings: MonkeyStyleSettings) {\r\n const font: MonkeyStyleFontSettings = {\r\n url:\r\n 'https://fonts.googleapis.com/css2?family=Work+Sans:ital,wght@0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,400;1,500;1,600;1,700;1,800;1,900&display=swap',\r\n name: 'Work Sans',\r\n ...settings.font,\r\n };\r\n\r\n document.documentElement.style.setProperty(\r\n `--mecx-font-name`,\r\n `${font.name}`\r\n );\r\n\r\n let link: HTMLLinkElement = this.doc.createElement('link');\r\n link.setAttribute('rel', 'stylesheet');\r\n link.setAttribute('type', 'text/css');\r\n link.setAttribute('href', `${font.url}`);\r\n this.doc.head.appendChild(link);\r\n }\r\n\r\n private applyTheme(settings: MonkeyStyleSettings) {\r\n const { theme } = settings;\r\n document.title = `${theme.title}`;\r\n\r\n let link: HTMLLinkElement = this.doc.createElement('link');\r\n link.setAttribute('rel', 'icon');\r\n link.setAttribute('type', 'image/x-icon');\r\n link.setAttribute('href', `${theme.favicon}`);\r\n this.doc.head.appendChild(link);\r\n }\r\n\r\n public apply(config: MonkeyStyleSettings, callback?: Function) {\r\n const bucketColors = this.applyColors(config);\r\n this.applyFonts(config);\r\n this.applyTheme(config);\r\n setTimeout(() => {\r\n if (callback)\r\n callback({\r\n bucketColors,\r\n });\r\n }, 500);\r\n }\r\n}\r\n","/**************************\r\n * Copyright Monkey Exchange. All Rights Reserved\r\n * This style guide was developed by Monkey Exchange Team\r\n * MIT Licence \r\n**************************/\r\nimport { Injectable } from '@angular/core';\r\nimport { MonkeyStyleGuideService } from '../monkey-style-guide.service';\r\nimport { MonkeyStyleSettings } from '../../interfaces';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { throwError, BehaviorSubject, Observable } from 'rxjs';\r\nimport { MonkeyStyleGuideThemeSettingsService } from './monkey-style-guide-theme-settings.service';\r\n\r\n@Injectable()\r\nexport class MonkeyStyleGuideSettingsService {\r\n\r\n private readonly settingsSubject$: BehaviorSubject<MonkeyStyleSettings> = new BehaviorSubject({});\r\n\r\n constructor(\r\n private monkeySGService: MonkeyStyleGuideService,\r\n private monkeySGThemeConfigService: MonkeyStyleGuideThemeSettingsService\r\n ) { }\r\n\r\n public boostrap(settingsUrl: string, callback?: Function) {\r\n const { monkeySGService, settingsSubject$, monkeySGThemeConfigService } = this;\r\n\r\n monkeySGService.get<any>(settingsUrl || `assets/monkey-style-guide-settings.json`).subscribe((_: MonkeyStyleSettings) => {\r\n monkeySGThemeConfigService.apply(_, callback);\r\n settingsSubject$.next(_);\r\n }, (err: HttpErrorResponse) => {\r\n console.error('Monkey-style-guide-settings not found!');\r\n throwError(err)\r\n });\r\n }\r\n\r\n public boostrapWithData(data: any, callback?: Function) {\r\n const { settingsSubject$, monkeySGThemeConfigService } = this;\r\n monkeySGThemeConfigService.apply(data, callback);\r\n settingsSubject$.next(data);\r\n }\r\n\r\n public settings(): Observable<any> {\r\n return this.settingsSubject$.asObservable();\r\n }\r\n}","export class MonkeyUtils {\r\n public static persistNullEmptyUndefined(tp: any): boolean {\r\n return tp !== null && tp !== undefined && tp !== '';\r\n }\r\n\r\n public static getDocumentType(doc: string) {\r\n if (!doc) return '';\r\n return doc.length <= 11 ? 'CPF' : 'CNPJ';\r\n }\r\n\r\n public static getDocumentMask(type: string) {\r\n if (type === 'CPF') return '000.000.000-00';\r\n return '00.000.000/0000-00';\r\n }\r\n\r\n public static formatDocumentWithMask(doc: string, withType?: boolean): string {\r\n if (!doc) return doc;\r\n let formated: string = '';\r\n if (doc.length === 14)\r\n formated = doc\r\n .replace(/^(\\d{2})(\\d)/, '$1.$2')\r\n .replace(/^(\\d{2})\\.(\\d{3})(\\d)/, '$1.$2.$3')\r\n .replace(/\\.(\\d{3})(\\d)/, '.$1/$2')\r\n .replace(/(\\d{4})(\\d)/, '$1-$2');\r\n else\r\n formated = doc\r\n .replace(/^(\\d{3})(\\d)/, '$1.$2')\r\n .replace(/^(\\d{3})\\.(\\d{3})(\\d)/, '$1.$2.$3')\r\n .replace(/\\.(\\d{3})(\\d)/, '.$1-$2');\r\n\r\n return `${withType ? `${this.getDocumentType(doc)}:` : ''} ${formated}`;\r\n }\r\n\r\n public static cutFirstLastName(value: string, tp: string = 'first') {\r\n const split = value?.trim()?.split(' ');\r\n\r\n if (tp === 'first') return split[0];\r\n return split?.splice(1, split.length)?.join(' ');\r\n }\r\n\r\n public static isCPFCNPJValid(document: any): boolean {\r\n document = document.replace(/[^\\d]/g, '');\r\n if (document.length === 11) {\r\n let base = [10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0];\r\n for (var i = 0, n = 0; i < 9; n += document[i] * base[i++]);\r\n if (document[9] != ((n %= 11) <= 1 ? 0 : 11 - n)) {\r\n return false;\r\n }\r\n base = [11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0];\r\n for (var i = 0, n = 0; i <= 9; n += document[i] * base[i++]);\r\n if (document[10] != ((n %= 11) <= 1 ? 0 : 11 - n)) {\r\n return false;\r\n }\r\n return true;\r\n } else if (document.length === 14 || /0{14}/.test(document)) {\r\n let base = [6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2];\r\n for (var i = 0, n = 0; i < 12; n += document[i] * base[++i]);\r\n if (document[12] != ((n %= 11) < 2 ? 0 : 11 - n)) {\r\n return false;\r\n }\r\n\r\n for (var i = 0, n = 0; i <= 12; n += document[i] * base[i++]);\r\n if (document[13] != ((n %= 11) < 2 ? 0 : 11 - n)) {\r\n return false;\r\n }\r\n\r\n return true;\r\n } else return false;\r\n }\r\n\r\n public static isValidUrl(txt: string): boolean {\r\n const regex = new RegExp(\r\n /^(http:\\/\\/www\\.|https:\\/\\/www\\.|http:\\/\\/|https:\\/\\/)+[a-z0-9]+([\\-\\.]{1}[a-z0-9]+)*\\.[a-z]{2,10}(:[0-9]{1,5})?(\\/.*)?$/gm\r\n );\r\n return regex.test(txt);\r\n }\r\n\r\n public static isValidZipCode(zipCode: string): boolean {\r\n return `${this.handleOnlyNumbers(zipCode)}`.length === 8;\r\n }\r\n\r\n public static getRandomString(len: number, charSet?: string): string {\r\n charSet = charSet || 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\r\n let randomString: string = Array.apply(null, Array(len))\r\n .map(function () {\r\n return charSet.charAt(Math.floor(Math.random() * charSet.length));\r\n })\r\n .join('');\r\n return randomString;\r\n }\r\n\r\n public static handleOnlyNumbers(value: any) {\r\n if (!value) return null;\r\n return value.replace(new RegExp(/[^0-9]/g), '');\r\n }\r\n\r\n public static handleOnlyAlphaNumeric(value: any) {\r\n if (!value) return '';\r\n return value.replace(new RegExp(/[^0-9A-Za-z]/, 'g'), '');\r\n }\r\n\r\n public static capitalize(value: string) {\r\n return `${value.charAt(0).toUpperCase()}${value.slice(1)}`;\r\n }\r\n\r\n public static formatZipCode(zipCode: string): string {\r\n if (!zipCode) return zipCode;\r\n const formated: string = zipCode\r\n .replace(/^(\\d{5})(\\d)/, '$1-$2')\r\n .replace(/\\.(\\d{3})(\\d)/, '.$1-$2');\r\n\r\n return `${formated}`;\r\n }\r\n\r\n public static formatFileSize(size: number): string {\r\n let units = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\r\n let l = 0;\r\n while (size >= 1024 && ++l) {\r\n size = size / 1024;\r\n }\r\n return size.toFixed(size < 10 && l > 0 ? 1 : 0) + ' ' + units[l];\r\n }\r\n\r\n public static sufflue(data: any[]): any[] {\r\n for (let i = data.length - 1; i > 0; i--) {\r\n const j = Math.floor(Math.random() * i);\r\n const temp = data[i];\r\n data[i] = data[j];\r\n data[j] = temp;\r\n }\r\n return data;\r\n }\r\n\r\n public static handleBlobFile(theBlob: any, fileName: string, fileType: string) {\r\n function blobToFile(theBlob, fileName) {\r\n const b = theBlob;\r\n b.lastModifiedDate = new Date();\r\n b.name = fileName;\r\n return b;\r\n }\r\n\r\n let file: any;\r\n if (!(navigator as any).msSaveBlob) {\r\n file = new File([theBlob], fileName, { type: fileType });\r\n } else {\r\n file = new Blob([theBlob], { type: fileType });\r\n file = blobToFile(file, fileName);\r\n }\r\n return file;\r\n }\r\n\r\n public static truncate(text: string, maxLength: number = 25): string {\r\n const midChar = '...';\r\n if (!text) return midChar;\r\n if (text && text.length <= maxLength) return text;\r\n\r\n const left = Math.ceil(maxLength / 2);\r\n const right = text.length - left + 1;\r\n\r\n return `${text.substr(0, left)} ${midChar} ${text.substring(right)}`;\r\n }\r\n\r\n public static isLocalhost() {\r\n const { href } = window?.location;\r\n if (!href) return false;\r\n return href?.search('localhost') >= 0;\r\n }\r\n}\r\n","/**************************\r\n * Copyright Monkey Exchange. All Rights Reserved\r\n * This style guide was developed by Monkey Exchange Team\r\n * MIT Licence\r\n **************************/\r\nimport { Location } from '@angular/common';\r\nimport { Injectable } from '@angular/core';\r\nimport { MonkeyUtils } from '../../utils';\r\n\r\nconst icons = {\r\n success: `<svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <circle cx=\"8\" cy=\"8\" r=\"7\" fill=\"#00875A\"/>\r\n <path d=\"M11 5L7 11L4 8.27273\" stroke=\"white\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>`,\r\n warning: `<svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M6.85433 2.63819L1.17957 12.0114C1.06257 12.2118 1.00066 12.4391 1.00001 12.6706C0.99935 12.9021 1.05997 13.1297 1.17583 13.3308C1.2917 13.532 1.45877 13.6995 1.66042 13.8169C1.86207 13.9343 2.09128 13.9975 2.32524 14H13.6748C13.9087 13.9975 14.1379 13.9343 14.3396 13.8169C14.5412 13.6995 14.7083 13.532 14.8242 13.3308C14.94 13.1297 15.0006 12.9021 15 12.6706C14.9993 12.4391 14.9374 12.2118 14.8204 12.0114L9.14567 2.63819C9.02623 2.44337 8.85806 2.2823 8.65738 2.17051C8.45671 2.05873 8.2303 2 8 2C7.7697 2 7.54329 2.05873 7.34262 2.17051C7.14194 2.2823 6.97377 2.44337 6.85433 2.63819Z\" fill=\"#EFA30E\"/>\r\n <path d=\"M8 6V10\" stroke=\"#000F1E\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M8 12H8.00667\" stroke=\"#000F1E\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>`,\r\n error: `<svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M5.102 1H10.898L15 5.102V10.898L10.898 15H5.102L1 10.898V5.102L5.102 1Z\" fill=\"#FA3838\"/>\r\n <path d=\"M8 5.33333V7.99999\" stroke=\"#F5FAFF\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M8 10.6667H8.00667\" stroke=\"#F5FAFF\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>`,\r\n question: `<svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M8.00004 14.6668C11.6819 14.6668 14.6667 11.6821 14.6667 8.00016C14.6667 4.31826 11.6819 1.3335 8.00004 1.3335C4.31814 1.3335 1.33337 4.31826 1.33337 8.00016C1.33337 11.6821 4.31814 14.6668 8.00004 14.6668Z\" stroke=\"#8D38FA\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M6.05994 5.99989C6.21667 5.55434 6.52604 5.17863 6.93324 4.93931C7.34044 4.7 7.8192 4.61252 8.28472 4.69237C8.75024 4.77222 9.17248 5.01424 9.47665 5.37558C9.78083 5.73691 9.94731 6.19424 9.9466 6.66656C9.9466 7.99989 7.9466 8.66656 7.9466 8.66656V9.49989\" stroke=\"#8D38FA\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M8 11.3335H8.00667\" stroke=\"#8D38FA\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>`,\r\n loading: `<svg class=\"circular-loader\" viewBox=\"25 25 50 50\" >\r\n <circle class=\"loader-path\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" stroke=\"#575757\" stroke-width=\"5\" />\r\n </svg>`,\r\n};\r\n\r\ninterface SnackbarActionConfig {\r\n style: 'link' | 'button';\r\n confirm?: {\r\n label: string;\r\n action: Function;\r\n };\r\n cancel?: {\r\n label: string;\r\n action: Function;\r\n };\r\n}\r\n\r\ninterface SnackbarConfig {\r\n title?: string;\r\n message?: string;\r\n type?: 'theme' | 'warning' | 'success' | 'error' | 'question' | 'loading';\r\n duration?: number;\r\n horizontalPosition?: 'center' | 'left' | 'right';\r\n verticalPosition?: 'top' | 'bottom';\r\n action?: SnackbarActionConfig;\r\n keepOpen?: boolean;\r\n blinkTab?: boolean;\r\n}\r\n\r\nclass SnackbarElements {\r\n elements: {\r\n element?: HTMLDivElement;\r\n interval?: any;\r\n }[] = [];\r\n lastScrollTop: number = 15;\r\n\r\n constructor() {}\r\n\r\n add(element: HTMLDivElement, duration: number, callback: Function, verticalPosition: string) {\r\n if (this.elements && this.elements.length === 0) {\r\n this.lastScrollTop = 15;\r\n }\r\n element.style[verticalPosition] = `${this.lastScrollTop}px`;\r\n\r\n const interval = setInterval(() => {\r\n callback();\r\n }, duration);\r\n\r\n this.elements.push({\r\n element: element,\r\n interval: interval,\r\n });\r\n document.body.appendChild(element);\r\n this.lastScrollTop = this.lastScrollTop + document.getElementById(element.id).offsetHeight + 15;\r\n }\r\n\r\n remove(removeId: string) {\r\n const element = this.elements.find(({ element: { id } }) => id === removeId);\r\n if (element) {\r\n this.elements =\r\n this.elements.filter(({ element: { id } }) => id !== element.element.id) || [];\r\n element.element.className = `${element.element.className} fade-out hide`;\r\n setTimeout(() => {\r\n this.lastScrollTop =\r\n this.lastScrollTop - (document.getElementById(removeId).offsetHeight + 15);\r\n document.body.removeChild(element.element);\r\n clearInterval(element.interval);\r\n }, 1000);\r\n }\r\n }\r\n\r\n removeAll() {\r\n this.elements.forEach((element) => {\r\n document.body.removeChild(element.element);\r\n clearInterval(element.interval);\r\n });\r\n this.lastScrollTop = 15;\r\n this.elements = [];\r\n }\r\n}\r\n\r\n@Injectable()\r\nexport class MonkeyStyleGuideSnackbarService {\r\n private config: SnackbarConfig;\r\n private snackbarElement: HTMLDivElement;\r\n private snackbarElements: SnackbarElements;\r\n private snackbarBodyElement: HTMLDivElement;\r\n private snackbarBodyMessageElement: HTMLDivElement;\r\n private oldTitle: string;\r\n private timeoutBlinkTab = null;\r\n\r\n constructor(private locationRouter: Location) {\r\n this.snackbarElements = new SnackbarElements();\r\n this.locationRouter.onUrlChange(() => {\r\n this.closeAll();\r\n });\r\n }\r\n\r\n private stopBlinking() {\r\n if (this.oldTitle) {\r\n document.title = this.oldTitle;\r\n if (this.snackbarElements.elements.length <= 0) {\r\n clearInterval(this.timeoutBlinkTab);\r\n }\r\n }\r\n }\r\n\r\n private blinkTab() {\r\n this.oldTitle = this.oldTitle || document.title;\r\n\r\n const startBlinking = () => {\r\n let message = `(${this.snackbarElements.elements.length}) ${this.oldTitle}`;\r\n document.title = document.title === message ? this.oldTitle : message;\r\n };\r\n\r\n if (this.timeoutBlinkTab) clearInterval(this.timeoutBlinkTab);\r\n this.timeoutBlinkTab = setInterval(startBlinking, 1000);\r\n }\r\n\r\n private init(id: string) {\r\n const { config } = this;\r\n let { horizontalPosition, verticalPosition, type } = config;\r\n horizontalPosition = horizontalPosition || 'center';\r\n verticalPosition = verticalPosition || 'top';\r\n\r\n this.snackbarElement = document.createElement('div');\r\n this.snackbarElement.id = `${id}`;\r\n this.snackbarElement.className = `mecx-snackbar-container ${horizontalPosition}-${verticalPosition} ${type}`;\r\n }\r\n\r\n private buildBody() {\r\n this.snackbarBodyElement = document.createElement('div');\r\n this.snackbarBodyElement.className = 'mecx-snackbar-container-body';\r\n\r\n this.snackbarBodyMessageElement = document.createElement('div');\r\n this.snackbarBodyMessageElement.className = 'mecx-snackbar-container-body-content';\r\n }\r\n\r\n private buildTitleAndMessage() {\r\n let {\r\n config: { title, message, action },\r\n } = this;\r\n const titleElement = document.createElement('div');\r\n titleElement.innerText = `${title}`;\r\n titleElement.className = 'mecx-snackbar-container-body-content-title';\r\n\r\n const messageElement = document.createElement('div');\r\n messageElement.innerText = `${message}`;\r\n messageElement.className = `mecx-snackbar-container-body-content-message ${\r\n action ? 'with-action' : ''\r\n }`;\r\n\r\n this.snackbarBodyMessageElement.appendChild(titleElement);\r\n this.snackbarBodyMessageElement.appendChild(messageElement);\r\n }\r\n\r\n private buildAction(id: string) {\r\n const {\r\n config: { type, action },\r\n } = this;\r\n if (action) {\r\n const { style, confirm, cancel } = action;\r\n const actionElement = document.createElement('div');\r\n\r\n let actionCancelElement = null,\r\n actionConfirmElement = null;\r\n if (style === 'link') {\r\n if (cancel) {\r\n actionCancelElement = document.createElement('a');\r\n actionCancelElement.href = 'javascript:void(0)';\r\n actionCancelElement.innerText = cancel.label;\r\n }\r\n\r\n if (confirm) {\r\n actionConfirmElement = document.createElement('a');\r\n actionConfirmElement.href = 'javascript:void(0)';\r\n actionConfirmElement.innerText = confirm.label;\r\n }\r\n } else {\r\n if (cancel) {\r\n actionCancelElement = document.createElement('button');\r\n actionCancelElement.className = `mecx-button-tertiary mecx-button-tertiary__${type}`;\r\n actionCancelElement.innerText = cancel.label;\r\n }\r\n\r\n if (confirm) {\r\n actionConfirmElement = document.createElement('button');\r\n actionConfirmElement.className = `mecx-button-primary mecx-button-primary__${type}`;\r\n actionConfirmElement.innerText = confirm.label;\r\n }\r\n }\r\n\r\n if (actionCancelElement) {\r\n actionCancelElement.addEventListener('click', () => {\r\n this.close(id);\r\n cancel.action();\r\n });\r\n\r\n actionElement.appendChild(actionCancelElement);\r\n }\r\n\r\n if (actionConfirmElement) {\r\n actionConfirmElement.addEventListener('click', () => {\r\n this.close(id);\r\n confirm.action();\r\n });\r\n actionElement.appendChild(actionConfirmElement);\r\n }\r\n\r\n actionElement.className = 'mecx-snackbar-container-body-content-action';\r\n this.snackbarBodyMessageElement.appendChild(actionElement);\r\n }\r\n }\r\n\r\n private buildIcon() {\r\n let {\r\n config: { type },\r\n } = this;\r\n\r\n const snackbarBodyIconElement = document.createElement('div');\r\n snackbarBodyIconElement.className = 'mecx-snackbar-container-body-icon';\r\n snackbarBodyIconElement.innerHTML = `${icons[type]}`;\r\n this.snackbarBodyElement.appendChild(snackbarBodyIconElement);\r\n }\r\n\r\n private finish(id: string) {\r\n let {\r\n config: { duration, keepOpen, verticalPosition },\r\n } = this;\r\n duration = duration || 4000;\r\n const { snackbarBodyElement, snackbarBodyMessageElement, snackbarElement } = this;\r\n snackbarBodyElement.appendChild(snackbarBodyMessageElement);\r\n snackbarElement.appendChild(snackbarBodyElement);\r\n\r\n this.snackbarElements.add(\r\n snackbarElement,\r\n duration,\r\n () => (!keepOpen ? this.close(id) : null),\r\n verticalPosition\r\n );\r\n }\r\n\r\n private close(id: string) {\r\n const { snackbarElements } = this;\r\n snackbarElements.remove(id);\r\n this.stopBlinking();\r\n }\r\n\r\n public show(config: SnackbarConfig) {\r\n this.config = config;\r\n const id = `monkey-snackbar-${MonkeyUtils.getRandomString(30)}`;\r\n this.closeAll();\r\n this.init(id);\r\n this.buildBody();\r\n this.buildTitleAndMessage();\r\n this.buildAction(id);\r\n this.buildIcon();\r\n this.finish(id);\r\n if (config?.blinkTab) {\r\n this.blinkTab();\r\n }\r\n }\r\n\r\n public closeAll() {\r\n const { snackbarElements } = this;\r\n snackbarElements.removeAll();\r\n }\r\n}\r\n","import {\n ApplicationRef,\n ComponentFactoryResolver,\n EmbeddedViewRef,\n Injectable,\n Injector,\n} from '@angular/core';\nimport { Location } from '@angular/common';\nimport { MonkeyUtils } from '../../utils';\nimport { MonkeyModalComponent } from '../../../components/modal';\nimport { MonkeyModalConfig, MonkeyModalRefs } from '../../interfaces';\n\n@Injectable()\nexport class MonkeyStyleGuideModalService {\n private dialogComponentRef: MonkeyModalRefs<MonkeyModalComponent>[] = [];\n\n constructor(\n private resolver: ComponentFactoryResolver,\n private appRef: ApplicationRef,\n private injector: Injector,\n private locationRouter: Location\n ) {\n this.locationRouter.onUrlChange(() => {\n this.closeAll();\n });\n }\n\n open(\n component: any,\n config: MonkeyModalConfig\n ): MonkeyModalRefs<MonkeyModalComponent> {\n const componentFactory = this.resolver.resolveComponentFactory(component);\n const componentRef: any = componentFactory.create(this.injector);\n this.appRef.attachView(componentRef.hostView);\n\n const refRet = {\n id: `mecx-modal-${MonkeyUtils.getRandomString(30)}`,\n component: componentRef,\n };\n\n componentRef.instance.config = config;\n componentRef.instance.modalRef = refRet;\n\n const domElem = (componentRef.hostView as EmbeddedViewRef<any>)\n .rootNodes[0] as HTMLElement;\n document.body.appendChild(domElem);\n document.body.classList.add('mecx-monkey-open');\n\n this.dialogComponentRef.push(refRet);\n return refRet;\n }\n\n close(ref: MonkeyModalRefs<MonkeyModalComponent>) {\n this.appRef.detachView(ref.component.hostView);\n ref.component.destroy();\n this.dialogComponentRef = this.dialogComponentRef.filter(\n ({ id }) => id !== ref.id\n );\n if (this.dialogComponentRef.length === 0) {\n document.body.classList.remove('mecx-monkey-open');\n }\n }\n\n closeAll() {\n this.dialogComponentRef.forEach(\n (val: MonkeyModalRefs<MonkeyModalComponent>) => {\n this.appRef.detachView(val.component.hostView);\n val.component.destroy();\n }\n );\n this.dialogComponentRef = [];\n document.body.classList.remove('mecx-monkey-open');\n }\n}\n","import {\n ApplicationRef,\n ComponentFactoryResolver,\n EmbeddedViewRef,\n Injectable,\n Injector,\n} from '@angular/core';\nimport { Location } from '@angular/common';\nimport { MonkeyUtils } from '../../utils';\nimport { MonkeyModalComponent } from '../../../components/modal';\nimport { MonkeyModalConfig, MonkeyModalRefs } from '../../interfaces';\n\n@Injectable()\nexport class MonkeyStyleGuideModalFixedService {\n private dialogComponentRef: MonkeyModalRefs<MonkeyModalComponent>[] = [];\n\n constructor(\n private resolver: ComponentFactoryResolver,\n private appRef: ApplicationRef,\n private injector: Injector\n ) {\n //not to do\n }\n\n open(\n component: any,\n config: MonkeyModalConfig\n ): MonkeyModalRefs<MonkeyModalComponent> {\n this.closeAll();\n const componentFactory = this.resolver.resolveComponentFactory(component);\n const componentRef: any = componentFactory.create(this.injector);\n this.appRef.attachView(componentRef.hostView);\n\n const refRet = {\n id: `mecx-modal-${MonkeyUtils.getRandomString(30)}`,\n component: componentRef,\n };\n\n componentRef.instance.config = config;\n componentRef.instance.modalRef = refRet;\n\n const domElem = (componentRef.hostView as EmbeddedViewRef<any>)\n .rootNodes[0] as HTMLElement;\n document.body.appendChild(domElem);\n document.body.classList.add('mecx-monkey-open');\n\n this.dialogComponentRef.push(refRet);\n return refRet;\n }\n\n close(ref: MonkeyModalRefs<MonkeyModalComponent>) {\n this.appRef.detachView(ref.component.hostView);\n ref.component.destroy();\n this.dialogComponentRef = this.dialogComponentRef.filter(\n ({ id }) => id !== ref.id\n );\n if (this.dialogComponentRef.length === 0) {\n document.body.classList.remove('mecx-monkey-open');\n }\n }\n\n closeAll() {\n this.dialogComponentRef.forEach(\n (val: MonkeyModalRefs<MonkeyModalComponent>) => {\n this.appRef.detachView(val.component.hostView);\n val.component.destroy();\n }\n );\n this.dialogComponentRef = [];\n document.body.classList.remove('mecx-monkey-open');\n }\n}\n","/**************************\r\n * Copyright Monkey Exchange. All Rights Reserved\r\n * This style guide was developed by Monkey Exchange Team\r\n * MIT Licence\r\n **************************/\r\nimport { Component, ViewEncapsulation, Input } from '@angular/core';\r\nimport { MonkeyUtils } from '../../core';\r\n\r\n@Component({\r\n selector: 'monkey-badge',\r\n template: `\r\n <mecx-monkey-badge [id]=\"_id\" [ngClass]=\"{ pulse: pulseOn }\">\r\n <div class=\"badge-count\">\r\n {{ count }}\r\n </div>\r\n </mecx-monkey-badge>\r\n `,\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class MonkeyBadgeComponent {\r\n @Input() count = 0;\r\n @Input() pulseOn = false;\r\n\r\n public _id: string = `mecx-badge-${MonkeyUtils.getRandomString(10)}`;\r\n}\r\n","import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core';\nimport { MonkeyBadgeComponent } from './badge.component';\nimport { CommonModule } from '@angular/common';\n\n@NgModule({\n declarations: [MonkeyBadgeComponent],\n imports: [CommonModule],\n exports: [MonkeyBadgeComponent],\n schemas: [NO_ERRORS_SCHEMA],\n})\nexport class MonkeyBadgeModule {}\n","/**************************\r\n * Copyright Monkey Exchange. All Rights Reserved\r\n * This style guide was developed by Monkey Exchange Team\r\n * MIT Licence\r\n **************************/\r\nimport {\r\n Component,\r\n ViewEncapsulation,\r\n Input,\r\n OnInit,\r\n HostListener,\r\n ElementRef,\r\n} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'monkey-button',\r\n template: `\r\n <button\r\n [ngClass]=\"\r\n 'mecx-button-' +\r\n type +\r\n ' mecx-button-' +\r\n type +\r\n '__' +\r\n color +\r\n (icon ? ' with-icon' : ' no-icon') +\r\n ' ' +\r\n size\r\n \"\r\n type=\"button\"\r\n [disabled]=\"disabled\"\r\n >\r\n <monkey-icon\r\n [icon]=\"icon\"\r\n [color]=\"\r\n disabled\r\n ? '#999999'\r\n : type === 'filter'\r\n ? '#4b4a53'\r\n : type === 'nav-active'\r\n ? 'theme'\r\n : 'theme-800'\r\n \"\r\n [contrast]=\"_useContrast\"\r\n [disabled]=\"disabled\"\r\n *ngIf=\"iconPosition === 'left' && icon\"\r\n ></monkey-icon>\r\n {{ label }}\r\n <ng-content></ng-content>\r\n <monkey-icon\r\n [icon]=\"icon\"\r\n [color]=\"\r\n disabled\r\n ? '#999999'\r\n : type === 'filter'\r\n ? '#4b4a53'\r\n : type === 'nav-active'\r\n ? 'theme'\r\n : 'theme-800'\r\n \"\r\n [disabled]=\"disabled\"\r\n *ngIf=\"iconPosition === 'right' && icon\"\r\n ></monkey-icon>\r\n </button>\r\n `,\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class MonkeyButtonComponent implements OnInit {\r\n @Input() label: string;\r\n @Input() icon: string;\r\n @Input() iconPosition: string = 'left';\r\n @Input() type: string;\r\n @Input() color: string;\r\n @Input() disabled: boolean = false;\r\n @Input() size: 'sm' | 'md' | 'lg' = 'lg';\r\n\r\n _useContrast = false;\r\n constructor() {}\r\n\r\n ngOnInit() {\r\n const { type } = this;\r\n if (type === 'primary') {\r\n this._useContrast = true;\r\n }\r\n }\r\n\r\n @HostListener('click', ['$event'])\r\n onClick(event: any) {\r\n if (this.disabled) {\r\n event.stopPropagation();\r\n event.preventDefault();\r\n event.stopImmediatePropagation();\r\n }\r\n }\r\n}\r\n","/**************************\r\n * Copyright Monkey Exchange. All Rights Reserved\r\n * This style guide was developed by Monkey Exchange Team\r\n * MIT Licence\r\n **************************/\r\nimport {\r\n Component,\r\n ViewEncapsulation,\r\n Input,\r\n HostListener,\r\n OnInit,\r\n ChangeDetectorRef,\r\n} from '@angular/core';\r\nimport { MonkeyUtils } from '../../core/utils';\r\n\r\n@Component({\r\n selector: 'monkey-button-dropdown',\r\n template: `\r\n <mecx-button-dropdown\r\n [ngClass]=\"{\r\n trigger: type === 'filled',\r\n open: _opened\r\n }\"\r\n >\r\n <mecx-button-dropdown__trigger>\r\n <ng-container *ngTemplateOutlet=\"label\"></ng-container>\r\n <monkey-icon\r\n icon=\"arrow-down-16\"\r\n [color]=\"'#4B4A53'\"\r\n *ngIf=\"!_opened && type === 'filled'\"\r\n ></monkey-icon>\r\n <monkey-icon\r\n icon=\"arrow-up-16\"\r\n [color]=\"'#4B4A53'\"\r\n *ngIf=\"_opened && type === 'filled'\"\r\n ></monkey-icon>\r\n </mecx-button-dropdown__trigger>\r\n </mecx-button-dropdown>\r\n <mecx-button-dropdown-backdrop *ngIf=\"_opened\" (click)=\"close()\">\r\n </mecx-button-dropdown-backdrop>\r\n <mecx-button-dropdown [ngClass]=\"{ open: _opened }\">\r\n <mecx-button-dropdown-options>\r\n <ng-content></ng-content>\r\n </mecx-button-dropdown-options>\r\n </mecx-button-dropdown>\r\n `,\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class MonkeyButtonDropdownComponent {\r\n @Input() label: any;\r\n @Input() type: 'unfilled' | 'filled' = 'filled';\r\n @Input() listenClicks = true;\r\n\r\n public _customClass = 'trigger';\r\n public _opened: boolean = false;\r\n public _id: string = `mecx-button-dropdown-${MonkeyUtils.getRandomString(10)}`;\r\n public _disabled: boolean = false;\r\n\r\n constructor(private cdr: ChangeDetectorRef) {\r\n //not to do\r\n }\r\n\r\n @HostListener('document:click', ['$event'])\r\n clickout(event: any) {\r\n this.close();\r\n }\r\n\r\n @HostListener('click', ['$event'])\r\n clickon(event: any) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n if (this._opened && this.listenClicks) {\r\n this.close();\r\n } else {\r\n this._opened = true;\r\n this.cdr.detectChanges();\r\n }\r\n }\r\n\r\n close() {\r\n setTimeout(() => {\r\n this._opened = false;\r\n this.cdr.detectChanges();\r\n }, 20);\r\n }\r\n}\r\n","/**************************\r\n * Copyright Monkey Exchange. All Rights Reserved\r\n * This style guide was developed by Monkey Exchange Team\r\n * MIT Licence\r\n **************************/\r\nimport { Component, ViewEncapsulation, Input, OnInit } from '@angular/core';\r\nimport { MonkeyUtils } from '../../core/utils';\r\n\r\n@Component({\r\n selector: 'monkey-button-avatar',\r\n template: `\r\n <div\r\n [ngClass]=\"'mecx-button-avatar mecx-button-avatar__' + type + ' mecx-button-avatar__' + size\"\r\n >\r\n <img [src]=\"img\" *ngIf=\"img\" />\r\n <span *ngIf=\"!img && _handledValue\">{{ _handledValue }}</span>\r\n </div>\r\n `,\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class MonkeyButtonAvatarComponent implements OnInit {\r\n @Input() label: string;\r\n @Input() type: string;\r\n @Input() size: string;\r\n @Input() img: string;\r\n\r\n public _id = `mecx-button-avatar-${MonkeyUtils.getRandomString(10)}`;\r\n public _disabled = false;\r\n public _handledValue = '';\r\n\r\n ngOnInit() {\r\n const { label } = this;\r\n this._handledValue = label?.charAt(0);\r\n }\r\n}\r\n","/**************************\r\n * Copyright Monkey Exchange. All Rights Reserved\r\n * This style guide was developed by Monkey Exchange Team\r\n * MIT Licence\r\n **************************/\r\nimport {\r\n Component,\r\n ViewEncapsulation,\r\n OnInit,\r\n Input,\r\n OnChanges,\r\n HostListener,\r\n} from '@angular/core';\r\nimport { MonkeyStyleGuideSettingsService } from '../../core/services';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { MonkeyUtils } from '../../core/utils';\r\n\r\n@Component({\r\n selector: 'monkey-icon',\r\n template: `\r\n <monkey-icon-arrow-down\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'arrow-down'\"\r\n ></monkey-icon-arrow-down>\r\n <monkey-icon-arrow-left\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'arrow-left'\"\r\n ></monkey-icon-arrow-left>\r\n <monkey-icon-arrow-right\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'arrow-right'\"\r\n ></monkey-icon-arrow-right>\r\n <monkey-icon-arrow-up\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'arrow-up'\"\r\n ></monkey-icon-arrow-up>\r\n <monkey-icon-bank\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'bank'\"\r\n ></monkey-icon-bank>\r\n <monkey-icon-bell\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'bell'\"\r\n ></monkey-icon-bell>\r\n <monkey-icon-book\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'book'\"\r\n ></monkey-icon-book>\r\n <monkey-icon-box\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'box'\"\r\n ></monkey-icon-box>\r\n\r\n <monkey-icon-calendar\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'calendar'\"\r\n ></monkey-icon-calendar>\r\n <monkey-icon-camera\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'camera'\"\r\n ></monkey-icon-camera>\r\n <monkey-icon-chat\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'chat'\"\r\n ></monkey-icon-chat>\r\n <monkey-icon-check-circle-out\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'check-circle-out'\"\r\n ></monkey-icon-check-circle-out>\r\n <monkey-icon-check-circle\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'check-circle'\"\r\n ></monkey-icon-check-circle>\r\n <monkey-icon-check-grey\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'check-grey'\"\r\n >\r\n </monkey-icon-check-grey>\r\n <monkey-icon-check-white\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'check-white'\"\r\n >\r\n </monkey-icon-check-white>\r\n <monkey-icon-check\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'check'\"\r\n ></monkey-icon-check>\r\n <monkey-icon-clipboard\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'clipboard'\"\r\n ></monkey-icon-clipboard>\r\n <monkey-icon-clock\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'clock'\"\r\n ></monkey-icon-clock>\r\n <monkey-icon-close\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'close'\"\r\n ></monkey-icon-close>\r\n <monkey-icon-cnpj\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'cnpj'\"\r\n ></monkey-icon-cnpj>\r\n <monkey-icon-codepen\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'codepen'\"\r\n ></monkey-icon-codepen>\r\n <monkey-icon-company-name\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'company-name'\"\r\n ></monkey-icon-company-name>\r\n <monkey-icon-contract\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'contract'\"\r\n ></monkey-icon-contract>\r\n <monkey-icon-delete\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'delete'\"\r\n ></monkey-icon-delete>\r\n <monkey-icon-document\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'document'\"\r\n ></monkey-icon-document>\r\n <monkey-icon-dollar-sign\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'dollar-sign'\"\r\n ></monkey-icon-dollar-sign>\r\n <monkey-icon-domain\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'domain'\"\r\n ></monkey-icon-domain>\r\n <monkey-icon-download\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'download'\"\r\n ></monkey-icon-download>\r\n <monkey-icon-edit\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'edit'\"\r\n ></monkey-icon-edit>\r\n <monkey-icon-email\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'email'\"\r\n ></monkey-icon-email>\r\n <monkey-icon-empty-doc\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'empty-doc'\"\r\n ></monkey-icon-empty-doc>\r\n <monkey-icon-error\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'error'\"\r\n ></monkey-icon-error>\r\n <monkey-icon-eye-closed\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'eye-closed'\"\r\n ></monkey-icon-eye-closed>\r\n <monkey-icon-eye-open\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'eye-open'\"\r\n ></monkey-icon-eye-open>\r\n <monkey-icon-filter\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'filter'\"\r\n ></monkey-icon-filter>\r\n <monkey-icon-grid\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'grid'\"\r\n ></monkey-icon-grid>\r\n <monkey-icon-help\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'help'\"\r\n ></monkey-icon-help>\r\n <monkey-icon-hexagon\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'hexagon'\"\r\n ></monkey-icon-hexagon>\r\n <monkey-icon-home\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'home'\"\r\n ></monkey-icon-home>\r\n <monkey-icon-image\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'image'\"\r\n ></monkey-icon-image>\r\n <monkey-icon-list\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'list'\"\r\n ></monkey-icon-list>\r\n <monkey-icon-location-pin\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'location-pin'\"\r\n ></monkey-icon-location-pin>\r\n <monkey-icon-login\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'login'\"\r\n ></monkey-icon-login>\r\n <monkey-icon-logout\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'logout'\"\r\n ></monkey-icon-logout>\r\n <monkey-icon-menu\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'menu'\"\r\n ></monkey-icon-menu>\r\n <monkey-icon-money-sign\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'money-sign'\"\r\n ></monkey-icon-money-sign>\r\n <monkey-icon-more\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'more'\"\r\n ></monkey-icon-more>\r\n <monkey-icon-offered\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'offered'\"\r\n ></monkey-icon-offered>\r\n <monkey-icon-password\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'password'\"\r\n ></monkey-icon-password>\r\n <monkey-icon-people\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'people'\"\r\n ></monkey-icon-people>\r\n <monkey-icon-percent\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'percent'\"\r\n ></monkey-icon-percent>\r\n <monkey-icon-person-document\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'person-document'\"\r\n ></monkey-icon-person-document>\r\n <monkey-icon-person-sad\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'person-sad'\"\r\n ></monkey-icon-person-sad>\r\n <monkey-icon-phone\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'phone'\"\r\n ></monkey-icon-phone>\r\n <monkey-icon-pork\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'pork'\"\r\n ></monkey-icon-pork>\r\n <monkey-icon-refresh\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'refresh'\"\r\n ></monkey-icon-refresh>\r\n <monkey-icon-repeat\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'repeat'\"\r\n ></monkey-icon-repeat>\r\n <monkey-icon-search\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'search'\"\r\n ></monkey-icon-search>\r\n <monkey-icon-second-warning\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'second-warning'\"\r\n ></monkey-icon-second-warning>\r\n <monkey-icon-settings\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'settings'\"\r\n ></monkey-icon-settings>\r\n <monkey-icon-trash\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'trash'\"\r\n ></monkey-icon-trash>\r\n <monkey-icon-upload\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'upload'\"\r\n ></monkey-icon-upload>\r\n <monkey-icon-user\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'user'\"\r\n ></monkey-icon-user>\r\n <monkey-icon-wallet\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'wallet'\"\r\n ></monkey-icon-wallet>\r\n <monkey-icon-warning\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'warning'\"\r\n ></monkey-icon-warning>\r\n `,\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class MonkeyIconComponent implements OnInit, OnChanges {\r\n @Input() icon: string;\r\n\r\n @Input() color: string = 'theme';\r\n\r\n @Input() contrast = false;\r\n\r\n @Input() disabled: boolean = false;\r\n\r\n _fillColor = '#000000';\r\n\r\n _icon = '';\r\n\r\n _id = `mecx-icon-${MonkeyUtils.getRandomString(10)}`;\r\n\r\n _size: string;\r\n\r\n private unsubscribeAll: Subject<any>;\r\n\r\n constructor(private monkeyStyleGuideSettingsService: MonkeyStyleGuideSettingsService) {\r\n this.unsubscribeAll = new Subject();\r\n }\r\n\r\n private handleIcon() {\r\n const { icon, color, contrast, monkeyStyleGuideSettingsService } = this;\r\n const handledIcon = icon?.substr(0, icon?.lastIndexOf('-'));\r\n this._icon = handledIcon;\r\n this._size = icon?.substr(icon?.lastIndexOf('-') + 1, icon?.length);\r\n\r\n monkeyStyleGuideSettingsService\r\n .settings()\r\n .pipe(takeUntil(this.unsubscribeAll))\r\n .subscribe((settings: any) => {\r\n if (settings && JSON.stringify(settings) !== '{}') {\r\n const { colors } = settings;\r\n\r\n let handledColor = '';\r\n if ((color || '').search('#') < 0) {\r\n let handledMainColor = '',\r\n handledSecondColor = '';\r\n handledMainColor = color.split('-')[0];\r\n if (!handledMainColor) handledMainColor = 'theme';\r\n handledSecondColor = color.split('-')[1];\r\n if (!handledSecondColor) handledSecondColor = 'main';\r\n\r\n handledColor = colors[handledMainColor][handledSecondColor];\r\n if (contrast) {\r\n handledColor = colors[handledMainColor]['contrast'][handledSecondColor];\r\n }\r\n } else {\r\n handledColor = color;\r\n }\r\n\r\n this._fillColor = handledColor;\r\n }\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.handleIcon();\r\n }\r\n\r\n ngOnChanges() {\r\n this.handleIcon();\r\n }\r\n\r\n @HostListener('click', ['$event'])\r\n onClick(event: any) {\r\n if (this.disabled) {\r\n event.stopPropagation();\r\n event.preventDefault();\r\n event.stopImmediatePropagation();\r\n }\r\n }\r\n}\r\n","/**************************\r\n * Copyright Monkey Exchange. All Rights Reserved\r\n * This style guide was developed by Monkey Exchange Team\r\n * MIT Licence\r\n **************************/\r\nimport { Component, ViewEncapsulation, Input, Directive } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[baseIcon]',\r\n})\r\nclass BaseIconComponent {\r\n @Input() fillColor: string;\r\n\r\n @Input() size: string;\r\n}\r\n\r\n@Component({\r\n selector: 'monkey-icon-arrow-down',\r\n templateUrl: `../../../../assets/icons/arrow-down.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconArrowDownComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-arrow-left',\r\n templateUrl: `../../../../assets/icons/arrow-left.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconArrowLeftComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-arrow-right',\r\n templateUrl: `../../../../assets/icons/arrow-right.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconArrowRightComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-arrow-up',\r\n templateUrl: `../../../../assets/icons/arrow-up.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconArrowUpComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-bank',\r\n templateUrl: `../../../../assets/icons/bank.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconBankComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-bell',\r\n templateUrl: `../../../../assets/icons/bell.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconBellComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-book',\r\n templateUrl: `../../../../assets/icons/book.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconBookComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-box',\r\n templateUrl: `../../../../assets/icons/box.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconBoxComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-calendar',\r\n templateUrl: `../../../../assets/icons/calendar.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconCalendarComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-camera',\r\n templateUrl: `../../../../assets/icons/camera.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconCameraComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-chat',\r\n templateUrl: `../../../../assets/icons/chat.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconChatComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-check-circle-out',\r\n templateUrl: `../../../../assets/icons/check-circle-out.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconCheckCircleOutComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-check-circle',\r\n templateUrl: `../../../../assets/icons/check-circle.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconCheckCircleComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-check-grey',\r\n templateUrl: '../../../../assets/icons/check-grey.svg',\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconCheckGreyComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-check-white',\r\n templateUrl: `../../../../assets/icons/check-white.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconCheckWhiteComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-check',\r\n templateUrl: `../../../../assets/icons/check.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconCheckComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-clipboard',\r\n templateUrl: `../../../../assets/icons/clipboard.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconClipboardComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-clock',\r\n templateUrl: `../../../../assets/icons/clock.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconClockComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-close',\r\n templateUrl: `../../../../assets/icons/close.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconCloseComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-cnpj',\r\n templateUrl: `../../../../assets/icons/cnpj.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconCNPJComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-codepen',\r\n templateUrl: `../../../../assets/icons/codepen.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconCodepenComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-company-name',\r\n templateUrl: `../../../../assets/icons/company-name.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconCompanyNameComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-contract',\r\n templateUrl: `../../../../assets/icons/contract.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconContractComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-delete',\r\n templateUrl: `../../../../assets/icons/delete.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconDeleteComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-document',\r\n templateUrl: `../../../../assets/icons/document.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconDocumentComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-dollar-sign',\r\n templateUrl: `../../../../assets/icons/dollar-sign.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconDollarSignComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-domain',\r\n templateUrl: `../../../../assets/icons/domain.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconDomainComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-download',\r\n templateUrl: `../../../../assets/icons/download.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconDownloadComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-edit',\r\n templateUrl: `../../../../assets/icons/edit.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconEditComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-email',\r\n templateUrl: `../../../../assets/icons/email.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconEmailComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-empty-doc',\r\n templateUrl: `../../../../assets/icons/empty-doc.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconEmptyDocComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-error',\r\n templateUrl: `../../../../assets/icons/error.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconErrorComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-eye-closed',\r\n templateUrl: `../../../../assets/icons/eye-closed.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconEyeClosedComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-eye-open',\r\n templateUrl: `../../../../assets/icons/eye-open.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconEyeOpenComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-filter',\r\n templateUrl: `../../../../assets/icons/filter.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconFilterComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-grid',\r\n templateUrl: `../../../../assets/icons/grid.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconGridComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-help',\r\n templateUrl: `../../../../assets/icons/help.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconHelpComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-hexagon',\r\n templateUrl: `../../../../assets/icons/hexagon.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconHexagonComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-home',\r\n templateUrl: `../../../../assets/icons/home.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconHomeComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-image',\r\n templateUrl: `../../../../assets/icons/image.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconImageComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-list',\r\n templateUrl: `../../../../assets/icons/list.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconListComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-location-pin',\r\n templateUrl: `../../../../assets/icons/location-pin.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconLocationPinComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-login',\r\n templateUrl: `../../../../assets/icons/login.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconLoginComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-logout',\r\n templateUrl: `../../../../assets/icons/logout.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconLogoutComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-menu',\r\n templateUrl: `../../../../assets/icons/menu.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconMenuComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-money-sign',\r\n templateUrl: `../../../../assets/icons/money-sign.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconMoneySignComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-more',\r\n templateUrl: `../../../../assets/icons/more.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconMoreComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-offered',\r\n templateUrl: `../../../../assets/icons/offered.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconOfferedComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-password',\r\n templateUrl: `../../../../assets/icons/password.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconPasswordComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-people',\r\n templateUrl: `../../../../assets/icons/people.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconPeopleComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-percent',\r\n templateUrl: `../../../../assets/icons/percent.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconPercentComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-person-document',\r\n templateUrl: `../../../../assets/icons/person-document.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconPersonDocumentComponent extends BaseIconComponent {}\r\n@Component({\r\n selector: 'monkey-icon-person-sad',\r\n templateUrl: `../../../../assets/icons/person-sad.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconPersonSadComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-phone',\r\n templateUrl: `../../../../assets/icons/phone.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconPhoneComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-pork',\r\n templateUrl: `../../../../assets/icons/pork.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconPorkComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-refresh',\r\n templateUrl: `../../../../assets/icons/refresh.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconRefreshComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-repeat',\r\n templateUrl: `../../../../assets/icons/repeat.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconRepeatComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-search',\r\n templateUrl: `../../../../assets/icons/search.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconSearchComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-second-warning',\r\n templateUrl: `../../../../assets/icons/second-warning.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconSecondWarningComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-settings',\r\n templateUrl: `../../../../assets/icons/settings.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconSettingsComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-trash',\r\n templateUrl: `../../../../assets/icons/trash.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconTrashComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-upload',\r\n templateUrl: `../../../../assets/icons/upload.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconUploadComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-user',\r\n templateUrl: `../../../../assets/icons/user.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconUserComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-wallet',\r\n templateUrl: `../../../../assets/icons/wallet.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconWalletComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-warning',\r\n templateUrl: `../../../../assets/icons/warning.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconWarningComponent extends BaseIconComponent {}\r\n","import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MonkeyIconComponent } from './icon.component';\r\nimport {\r\n MonkeyIconArrowDownComponent,\r\n MonkeyIconArrowLeftComponent,\r\n MonkeyIconArrowRightComponent,\r\n MonkeyIconArrowUpComponent,\r\n MonkeyIconBankComponent,\r\n MonkeyIconBellComponent,\r\n MonkeyIconBookComponent,\r\n MonkeyIconBoxComponent,\r\n MonkeyIconCalendarComponent,\r\n MonkeyIconCameraComponent,\r\n MonkeyIconChatComponent,\r\n MonkeyIconCheckCircleOutComponent,\r\n MonkeyIconCheckCircleComponent,\r\n MonkeyIconCheckGreyComponent,\r\n MonkeyIconCheckWhiteComponent,\r\n MonkeyIconCheckComponent,\r\n MonkeyIconClipboardComponent,\r\n MonkeyIconClockComponent,\r\n MonkeyIconCloseComponent,\r\n MonkeyIconCNPJComponent,\r\n MonkeyIconCodepenComponent,\r\n MonkeyIconCompanyNameComponent,\r\n MonkeyIconContractComponent,\r\n MonkeyIconDeleteComponent,\r\n MonkeyIconDocumentComponent,\r\n MonkeyIconDollarSignComponent,\r\n MonkeyIconDomainComponent,\r\n MonkeyIconDownloadComponent,\r\n MonkeyIconEditComponent,\r\n MonkeyIconEmailComponent,\r\n MonkeyIconEmptyDocComponent,\r\n MonkeyIconErrorComponent,\r\n MonkeyIconEyeClosedComponent,\r\n MonkeyIconEyeOpenComponent,\r\n MonkeyIconFilterComponent,\r\n MonkeyIconGridComponent,\r\n MonkeyIconHelpComponent,\r\n MonkeyIconHexagonComponent,\r\n MonkeyIconHomeComponent,\r\n MonkeyIconImageComponent,\r\n MonkeyIconListComponent,\r\n MonkeyIconLocationPinComponent,\r\n MonkeyIconLoginComponent,\r\n MonkeyIconLogoutComponent,\r\n MonkeyIconMenuComponent,\r\n MonkeyIconMoneySignComponent,\r\n MonkeyIconMoreComponent,\r\n MonkeyIconOfferedComponent,\r\n MonkeyIconPasswordComponent,\r\n MonkeyIconPeopleComponent,\r\n MonkeyIconPercentComponent,\r\n MonkeyIconPersonDocumentComponent,\r\n MonkeyIconPersonSadComponent,\r\n MonkeyIconPhoneComponent,\r\n MonkeyIconPorkComponent,\r\n MonkeyIconRefreshComponent,\r\n MonkeyIconRepeatComponent,\r\n MonkeyIconSearchComponent,\r\n MonkeyIconSecondWarningComponent,\r\n MonkeyIconSettingsComponent,\r\n MonkeyIconTrashComponent,\r\n MonkeyIconUploadComponent,\r\n MonkeyIconUserComponent,\r\n MonkeyIconWalletComponent,\r\n MonkeyIconWarningComponent,\r\n} from './icons.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n MonkeyIconComponent,\r\n MonkeyIconArrowDownComponent,\r\n MonkeyIconArrowLeftComponent,\r\n MonkeyIconArrowRightComponent,\r\n MonkeyIconArrowUpComponent,\r\n MonkeyIconBankComponent,\r\n MonkeyIconBellComponent,\r\n MonkeyIconBookComponent,\r\n MonkeyIconBoxComponent,\r\n MonkeyIconCalendarComponent,\r\n MonkeyIconCameraComponent,\r\n MonkeyIconChatComponent,\r\n MonkeyIconCheckCircleOutComponent,\r\n MonkeyIconCheckCircleComponent,\r\n MonkeyIconCheckGreyComponent,\r\n MonkeyIconCheckWhiteComponent,\r\n MonkeyIconCheckComponent,\r\n MonkeyIconClipboardComponent,\r\n MonkeyIconClockComponent,\r\n MonkeyIconCloseComponent,\r\n MonkeyIconCNPJComponent,\r\n MonkeyIconCodepenComponent,\r\n MonkeyIconCompanyNameComponent,\r\n MonkeyIconContractComponent,\r\n MonkeyIconDeleteComponent,\r\n MonkeyIconDocumentComponent,\r\n MonkeyIconDollarSignComponent,\r\n MonkeyIconDomainComponent,\r\n MonkeyIconDownloadComponent,\r\n MonkeyIconEditComponent,\r\n MonkeyIconEmailComponent,\r\n MonkeyIconEmptyDocComponent,\r\n MonkeyIconErrorComponent,\r\n MonkeyIconEyeClosedComponent,\r\n MonkeyIconEyeOpenComponent,\r\n MonkeyIconFilterComponent,\r\n MonkeyIconGridComponent,\r\n MonkeyIconHelpComponent,\r\n MonkeyIconHexagonComponent,\r\n MonkeyIconHomeComponent,\r\n MonkeyIconImageComponent,\r\n MonkeyIconListComponent,\r\n MonkeyIconLocationPinComponent,\r\n MonkeyIconLoginComponent,\r\n MonkeyIconLogoutComponent,\r\n MonkeyIconMenuComponent,\r\n MonkeyIconMoneySignComponent,\r\n MonkeyIconMoreComponent,\r\n MonkeyIconOfferedComponent,\r\n MonkeyIconPasswordComponent,\r\n MonkeyIconPeopleComponent,\r\n MonkeyIconPercentComponent,\r\n MonkeyIconPersonDocumentComponent,\r\n MonkeyIconPersonSadComponent,\r\n MonkeyIconPhoneComponent,\r\n MonkeyIconPorkComponent,\r\n MonkeyIconRefreshComponent,\r\n MonkeyIconRepeatComponent,\r\n MonkeyIconSearchComponent,\r\n MonkeyIconSecondWarningComponent,\r\n MonkeyIconSettingsComponent,\r\n MonkeyIconTrashComponent,\r\n MonkeyIconUploadComponent,\r\n MonkeyIconUserComponent,\r\n MonkeyIconWalletComponent,\r\n MonkeyIconWarningComponent,\r\n ],\r\n imports: [CommonModule],\r\n exports: [MonkeyIconComponent],\r\n schemas: [NO_ERRORS_SCHEMA],\r\n})\r\nexport class MonkeyIconModule {}\r\n","import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core';\r\nimport { MonkeyButtonComponent } from './button.component';\r\nimport { MonkeyButtonDropdownComponent } from './button-dropdown.component';\r\nimport { MonkeyButtonAvatarComponent } from './button-avatar.component';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MonkeyIconModule } from '../icon';\r\n\r\n@NgModule({\r\n declarations: [\r\n MonkeyButtonComponent,\r\n MonkeyButtonDropdownComponent,\r\n MonkeyButtonAvatarComponent,\r\n ],\r\n imports: [CommonModule, FormsModule, ReactiveFormsModule, MonkeyIconModule],\r\n exports: [\r\n MonkeyButtonComponent,\r\n MonkeyButtonDropdownComponent,\r\n MonkeyButtonAvatarComponent,\r\n ],\r\n schemas: [NO_ERRORS_SCHEMA],\r\n})\r\nexport class MonkeyButtonModule {}\r\n","/**************************\r\n * Copyright Monkey Exchange. All Rights Reserved\r\n * This style guide was developed by Monkey Exchange Team\r\n * MIT Licence\r\n **************************/\r\nimport { CurrencyPipe } from '@angular/common';\r\nimport {\r\n Component,\r\n ViewEncapsulation,\r\n Input,\r\n forwardRef,\r\n HostListener,\r\n OnInit,\r\n ElementRef,\r\n Output,\r\n EventEmitter,\r\n ViewChild,\r\n ChangeDetectorRef,\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { MonkeyStyleGuideSettingsService, MonkeyStyleSettings } from '../../core';\r\nimport { MonkeyUtils } from '../../core/utils';\r\n\r\n@Component({\r\n selector: 'monkey-input',\r\n template: `\r\n <mecx-form-field [ngClass]=\"{ disabled: _disabled }\" [id]=\"_id\">\r\n <mecx-form-field-header>\r\n <label>\r\n {{ label }}\r\n </label>\r\n <helper>\r\n {{ helperMessage }}\r\n </helper>\r\n </mecx-form-field-header>\r\n <mecx-form-field-body [class.error]=\"errorMessage?.trim()\">\r\n <monkey-icon\r\n [icon]=\"icon\"\r\n [color]=\"errorMessage?.trim() ? '#fa3838' : '#4B4A53'\"\r\n *ngIf=\"icon\"\r\n ></monkey-icon>\r\n <input\r\n [name]=\"name\"\r\n [type]=\"type\"\r\n [placeholder]=\"placeholder\"\r\n (input)=\"onChangeValue($event)\"\r\n (keypress)=\"onKeyPress($event)\"\r\n [id]=\"name\"\r\n [(ngModel)]=\"_formatedValue\"\r\n [disabled]=\"_disabled\"\r\n [mask]=\"mask\"\r\n [prefix]=\"prefix\"\r\n *ngIf=\"mask && prefix\"\r\n #monkeyInput\r\n />\r\n <input\r\n [name]=\"name\"\r\n [type]=\"type\"\r\n [placeholder]=\"placeholder\"\r\n (input)=\"onChangeValue($event)\"\r\n [id]=\"name\"\r\n [(ngModel)]=\"_formatedValue\"\r\n (keypress)=\"onKeyPress($event)\"\r\n [disabled]=\"_disabled\"\r\n [mask]=\"mask\"\r\n *ngIf=\"mask && !prefix\"\r\n #monkeyInput\r\n />\r\n <input\r\n [name]=\"name\"\r\n [type]=\"type\"\r\n [placeholder]=\"placeholder\"\r\n (input)=\"onChangeValue($event)\"\r\n [id]=\"name\"\r\n [(ngModel)]=\"_formatedValue\"\r\n (keypress)=\"onKeyPress($event)\"\r\n [disabled]=\"_disabled\"\r\n [maxLength]=\"maxLength\"\r\n *ngIf=\"!mask && !prefix\"\r\n [max]=\"maxDateToday ? _maxDateToday : null\"\r\n #monkeyInput\r\n />\r\n <monkey-icon\r\n icon=\"eye-open-16\"\r\n [color]=\"errorMessage?.trim() ? '#fa3838' : '#4B4A53'\"\r\n *ngIf=\"_oldType === 'password' && type === 'text'\"\r\n (click)=\"onShowAndHidePassword()\"\r\n ></monkey-icon>\r\n <monkey-icon\r\n icon=\"eye-closed-16\"\r\n [color]=\"errorMessage?.trim() ? '#fa3838' : '#4B4A53'\"\r\n *ngIf=\"_oldType === 'password' && type === 'password'\"\r\n (click)=\"onShowAndHidePassword()\"\r\n ></monkey-icon>\r\n </mecx-form-field-body>\r\n <mecx-form-field-footer>\r\n <info>\r\n {{ infoMessage }}\r\n </info>\r\n <error>\r\n {{ errorMessage }}\r\n </error>\r\n </mecx-form-field-footer>\r\n </mecx-form-field>\r\n `,\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => MonkeyInputComponent),\r\n multi: true,\r\n },\r\n CurrencyPipe,\r\n ],\r\n})\r\nexport class MonkeyInputComponent implements ControlValueAccessor, OnInit {\r\n @Input() name: string = `mecx-input-${MonkeyUtils.getRandomString(10)}`;\r\n @Input() label: string;\r\n @Input() helperMessage: string = '';\r\n @Input() placeholder: string = '';\r\n @Input() icon: string;\r\n @Input() type: string;\r\n @Input() infoMessage: string;\r\n @Input() errorMessage: string;\r\n @Input() mask: string;\r\n @Input() prefix: string;\r\n @Input() maxLength: number = 255;\r\n @Input() onlyNumber: any;\r\n @Input() onlyAlphaNumeric: any;\r\n @Input() upperCase: any;\r\n @Input() lowerCase: any;\r\n @Input() capitalize: any;\r\n @Input() currency: any;\r\n @Input() percent: any;\r\n @Input() maxDateToday = false;\r\n @Output() onChange = new EventEmitter<any>();\r\n\r\n private settings: MonkeyStyleSettings;\r\n private handledValue: any;\r\n private onModelChange = (value: any) => {};\r\n private onModelTouched = (value: any) => {};\r\n\r\n public _id: string = `mecx-input-${MonkeyUtils.getRandomString(10)}`;\r\n public _disabled: boolean = false;\r\n public _oldType: string;\r\n public _formatedValue: any;\r\n public _maxDateToday = new Date().toISOString().split('T')[0];\r\n\r\n @ViewChild('monkeyInput', {\r\n static: true,\r\n })\r\n monkeyInput: ElementRef;\r\n\r\n constructor(\r\n private currencyPipe: CurrencyPipe,\r\n private settingsService: MonkeyStyleGuideSettingsService,\r\n private cdr: ChangeDetectorRef\r\n ) {}\r\n\r\n private handleValue(value: any, apply = false): any {\r\n if (this.onlyNumber) {\r\n return MonkeyUtils.handleOnlyNumbers(`${value}`);\r\n } else if (this.onlyAlphaNumeric) return MonkeyUtils.handleOnlyAlphaNumeric(`${value}`);\r\n else if (this.upperCase) return `${value}`.toUpperCase();\r\n else if (this.lowerCase) return `${value}`.toLowerCase();\r\n else if (this.capitalize) return MonkeyUtils.capitalize(`${value}`.toUpperCase());\r\n else if (this.currency || this.percent) {\r\n return MonkeyUtils.handleOnlyNumbers(`${value}`) / (apply ? 100 : 1);\r\n }\r\n\r\n return value;\r\n }\r\n\r\n private formatValue(value: any): any {\r\n const { settings } = this;\r\n if (this.currency) {\r\n if (!value) value = 0;\r\n return this.currencyPipe.transform(\r\n value,\r\n settings?.currency?.code || 'BRL',\r\n 'symbol',\r\n '1.2-2',\r\n settings?.currency?.locale || 'pt-BR'\r\n );\r\n } else if (this.percent) {\r\n return `${value} %`;\r\n }\r\n\r\n return value;\r\n }\r\n\r\n ngOnInit() {\r\n const { settingsService } = this;\r\n this._oldType = this.type;\r\n settingsService.settings().subscribe((val: MonkeyStyleSettings) => {\r\n this.settings = val;\r\n });\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onModelChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onModelTouched = fn;\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean): void {\r\n this._disabled = isDisabled;\r\n }\r\n\r\n @Input()\r\n set value(value: any) {\r\n this.handledValue = value;\r\n this._formatedValue = this.formatValue(value);\r\n this.cdr.detectChanges();\r\n this.onModelChange(this.handledValue);\r\n this.onModelTouched(this.handledValue);\r\n }\r\n\r\n get value(): any {\r\n return this.handledValue;\r\n }\r\n\r\n writeValue(value: any): void {\r\n this.value = value;\r\n }\r\n\r\n onChangeValue(event: any) {\r\n const value = this._formatedValue;\r\n event?.preventDefault();\r\n event?.stopPropagation();\r\n const handled = this.handleValue(value, true);\r\n this.writeValue(handled);\r\n this.onChange.next(handled);\r\n }\r\n\r\n onShowAndHidePassword() {\r\n this.type = this.type === 'password' ? 'text' : 'password';\r\n }\r\n\r\n @HostListener('click')\r\n onClick() {\r\n document?.getElementById(this._id)?.getElementsByTagName('input')?.[0]?.focus();\r\n }\r\n\r\n onKeyPress(event: any) {\r\n let pattern = null;\r\n const inputChar = String.fromCharCode(event.charCode);\r\n if (this.currency || this.onlyNumber || this.percent) {\r\n pattern = /[0-9]/;\r\n } else if (this.onlyAlphaNumeric) {\r\n pattern = /[^0-9A-Za-z]/;\r\n }\r\n\r\n if (pattern && !pattern.test(inputChar)) {\r\n event.preventDefault();\r\n }\r\n }\r\n}\r\n","/**************************\r\n * Copyright Monkey Exchange. All Rights Reserved\r\n * This style guide was developed by Monkey Exchange Team\r\n * MIT Licence\r\n **************************/\r\nimport { CurrencyPipe } from '@angular/common';\r\nimport {\r\n Component,\r\n ViewEncapsulation,\r\n Input,\r\n forwardRef,\r\n HostListener,\r\n OnInit,\r\n ElementRef,\r\n Output,\r\n EventEmitter,\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { MonkeyStyleGuideSettingsService, MonkeyStyleSettings } from '../../core';\r\nimport { MonkeyUtils } from '../../core/utils';\r\n\r\n@Component({\r\n selector: 'monkey-input-filter',\r\n template: `\r\n <mecx-form-field-filter [ngClass]=\"{ disabled: _disabled }\">\r\n <mecx-form-field-body>\r\n <input\r\n [name]=\"name\"\r\n [type]=\"type\"\r\n [placeholder]=\"placeholder\"\r\n [(ngModel)]=\"value\"\r\n (input)=\"onChangeInput($event)\"\r\n [id]=\"_id\"\r\n [disabled]=\"_disabled\"\r\n [mask]=\"mask\"\r\n [prefix]=\"prefix\"\r\n *ngIf=\"mask && prefix\"\r\n />\r\n <input\r\n [name]=\"name\"\r\n [type]=\"type\"\r\n [placeholder]=\"placeholder\"\r\n [(ngModel)]=\"value\"\r\n (input)=\"onChangeInput($event)\"\r\n [id]=\"_id\"\r\n [disabled]=\"_disabled\"\r\n [mask]=\"mask\"\r\n *ngIf=\"mask && !prefix\"\r\n />\r\n <input\r\n [name]=\"name\"\r\n [type]=\"type\"\r\n [placeholder]=\"placeholder\"\r\n [(ngModel)]=\"value\"\r\n (input)=\"onChangeInput($event)\"\r\n [id]=\"_id\"\r\n [disabled]=\"_disabled\"\r\n *ngIf=\"!mask && !prefix\"\r\n />\r\n <monkey-icon [icon]=\"icon\" [color]=\"'#4B4A53'\"></monkey-icon>\r\n <monkey-icon\r\n icon=\"eyes-16\"\r\n [color]=\"'#4B4A53'\"\r\n *ngIf=\"_oldType === 'password' && type === 'text'\"\r\n (click)=\"onShowAndHidePassword()\"\r\n ></monkey-icon>\r\n <monkey-icon\r\n icon=\"eyes-off-16\"\r\n [color]=\"'#4B4A53'\"\r\n *ngIf=\"_oldType === 'password' && type === 'password'\"\r\n (click)=\"onShowAndHidePassword()\"\r\n ></monkey-icon>\r\n </mecx-form-field-body>\r\n </mecx-form-field-filter>\r\n `,\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => MonkeyInputFilterComponent),\r\n multi: true,\r\n },\r\n CurrencyPipe,\r\n ],\r\n})\r\nexport class MonkeyInputFilterComponent implements ControlValueAccessor, OnInit {\r\n @Input() name: string;\r\n @Input() label: string;\r\n @Input() helperMessage: string;\r\n @Input() placeholder: string;\r\n @Input() icon: string;\r\n @Input() type: string;\r\n @Input() infoMessage: string;\r\n @Input() errorMessage: string;\r\n @Input() mask: string;\r\n @Input() prefix: string;\r\n @Input() onlyNumber: any;\r\n @Input() onlyAlphaNumeric: any;\r\n @Input() upperCase: any;\r\n @Input() lowerCase: any;\r\n @Input() capitalize: any;\r\n @Input() currency: any;\r\n @Output() onChange = new EventEmitter<any>();\r\n\r\n private settings: MonkeyStyleSettings;\r\n private handledValue: any;\r\n private onModelChange = (value: any) => {};\r\n private onModelTouched = (value: any) => {};\r\n private timer: any;\r\n\r\n public _id: string = `mecx-input-${MonkeyUtils.getRandomString(10)}`;\r\n public _disabled: boolean = false;\r\n public _oldType: string;\r\n\r\n constructor(\r\n private elementRef: ElementRef,\r\n private currencyPipe: CurrencyPipe,\r\n private settingsService: MonkeyStyleGuideSettingsService\r\n ) {}\r\n\r\n private handleValue(value: any): any {\r\n const { settings } = this;\r\n if (this.onlyNumber !== undefined) {\r\n return MonkeyUtils.handleOnlyNumbers(`${value}`);\r\n } else if (this.onlyAlphaNumeric !== undefined)\r\n return MonkeyUtils.handleOnlyAlphaNumeric(`${value}`);\r\n else if (this.upperCase !== undefined) return `${value}`.toUpperCase();\r\n else if (this.lowerCase !== undefined) return `${value}`.toLowerCase();\r\n else if (this.capitalize !== undefined) return MonkeyUtils.capitalize(`${value}`.toUpperCase());\r\n else if (this.currency !== undefined) {\r\n const newValue = MonkeyUtils.handleOnlyNumbers(value);\r\n return this.currencyPipe.transform(\r\n newValue / 100,\r\n settings?.currency?.code || 'BRL',\r\n 'symbol',\r\n '',\r\n settings?.currency?.locale || 'pt-BR'\r\n );\r\n }\r\n\r\n return value;\r\n }\r\n\r\n ngOnInit() {\r\n const { settingsService } = this;\r\n this._oldType = this.type;\r\n settingsService.settings().subscribe((val: MonkeyStyleSettings) => {\r\n this.settings = val;\r\n });\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onModelChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onModelTouched = fn;\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean): void {\r\n this._disabled = isDisabled;\r\n }\r\n\r\n @Input()\r\n set value(value: any) {\r\n this.handledValue = value;\r\n this.onModelChange(value);\r\n this.onModelTouched(value);\r\n }\r\n\r\n get value(): any {\r\n return this.handledValue;\r\n }\r\n\r\n writeValue(value: any): void {\r\n this.value = value;\r\n }\r\n\r\n onChangeInput(event: any) {\r\n const { value } = event?.target;\r\n event?.preventDefault();\r\n event?.stopPropagation();\r\n const handled = this.handleValue(value);\r\n event.target.value = handled;\r\n this.writeValue(handled);\r\n if (this.timer) {\r\n clearTimeout(this.timer);\r\n }\r\n this.timer = setTimeout(() => {\r\n this.onChange.next(value);\r\n }, 400);\r\n }\r\n\r\n onShowAndHidePassword() {\r\n this.type = this.type === 'password' ? 'text' : 'password';\r\n }\r\n\r\n @HostListener('click', ['$event'])\r\n onClick(event: any) {\r\n const { _id } = this;\r\n document.getElementById(_id).focus();\r\n }\r\n}\r\n","import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core';\r\nimport { MonkeyInputComponent } from './input.component';\r\nimport { MonkeyInputFilterComponent } from './input-filter.component';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { NgxMaskModule } from 'ngx-mask';\r\nimport { MonkeyIconModule } from '../icon';\r\n\r\n@NgModule({\r\n declarations: [MonkeyInputComponent, MonkeyInputFilterComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n NgxMaskModule.forRoot(),\r\n MonkeyIconModule,\r\n ],\r\n exports: [MonkeyInputComponent, MonkeyInputFilterComponent],\r\n schemas: [NO_ERRORS_SCHEMA],\r\n})\r\nexport class MonkeyInputModule {}\r\n","/**************************\r\n * Copyright Monkey Exchange. All Rights Reserved\r\n * This style guide was developed by Monkey Exchange Team\r\n * MIT Licence\r\n **************************/\r\nimport {\r\n Component,\r\n ViewEncapsulation,\r\n Input,\r\n forwardRef,\r\n Output,\r\n HostListener,\r\n ElementRef,\r\n} from '@angular/core';\r\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { MonkeyUtils } from '../../core/utils';\r\n\r\n@Component({\r\n selector: 'monkey-option',\r\n template: `\r\n <div class=\"mecx-option\" *ngIf=\"type === 'select-multiple'\">\r\n <!--<input type=\"checkbox\" [checked]=\"value === selected?.value\" />\r\n <span\r\n [id]=\"_id\"\r\n >\r\n {{ label }}\r\n </span>-->\r\n <label class=\"mecx-check-container\">\r\n <input type=\"checkbox\" [checked]=\"value === selected?.value\" />\r\n {{ label }}\r\n <p class=\"mecx-check-mark\"></p>\r\n </label>\r\n </div>\r\n <span\r\n class=\"mecx-option\"\r\n [ngClass]=\"{ selected: value === selected?.value }\"\r\n *ngIf=\"type === 'select'\"\r\n [id]=\"_id\"\r\n >\r\n {{ label }}\r\n </span>\r\n <label class=\"mecx-radio-container\" *ngIf=\"type === 'radio'\">\r\n <input\r\n type=\"radio\"\r\n [value]=\"selected?.value\"\r\n [checked]=\"value === selected?.value\"\r\n [id]=\"_id\"\r\n />\r\n {{ label }}\r\n <p class=\"mecx-radio-mark\"></p>\r\n </label>\r\n `,\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => MonkeyOptionComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class MonkeyOptionComponent {\r\n @Input() type: string = 'select';\r\n @Input() label: string;\r\n @Input() value: any;\r\n @Input() selectAll: boolean;\r\n @Input() selected: MonkeyOptionComponent;\r\n @Input() enableClick = true;\r\n @Output() onSelectOption: Function;\r\n\r\n public _id: string = `mecx-option-${MonkeyUtils.getRandomString(10)}`;\r\n\r\n constructor(public elRef: ElementRef) {\r\n //not to do\r\n }\r\n\r\n @HostListener('click', ['$event'])\r\n onClick(event: any) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n if (this.enableClick) {\r\n this.onSelectOption(this);\r\n }\r\n }\r\n}\r\n","import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core';\r\nimport { MonkeyOptionComponent } from './option.component';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@NgModule({\r\n declarations: [\r\n MonkeyOptionComponent\r\n ],\r\n imports: [\r\n CommonModule\r\n ],\r\n exports: [\r\n MonkeyOptionComponent\r\n ],\r\n schemas: [\r\n NO_ERRORS_SCHEMA\r\n ]\r\n})\r\nexport class MonkeyOptionModule { }","/**************************\r\n * Copyright Monkey Exchange. All Rights Reserved\r\n * This style guide was developed by Monkey Exchange Team\r\n * MIT Licence\r\n **************************/\r\nimport {\r\n Component,\r\n ViewEncapsulation,\r\n Input,\r\n forwardRef,\r\n HostListener,\r\n QueryList,\r\n ContentChildren,\r\n Output,\r\n EventEmitter,\r\n ViewChild,\r\n ElementRef,\r\n ChangeDetectorRef,\r\n OnInit,\r\n OnChanges,\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { MonkeyOptionComponent } from '../option';\r\nimport { MonkeyUtils } from '../../core/utils';\r\n\r\n@Component({\r\n selector: 'monkey-select',\r\n template: `\r\n <mecx-form-field [id]=\"_id\" [ngClass]=\"{ disabled: _disabled }\">\r\n <mecx-form-field-header>\r\n <label>\r\n {{ label }}\r\n </label>\r\n <helper>\r\n {{ helperMessage }}\r\n </helper>\r\n </mecx-form-field-header>\r\n <mecx-form-field-body (click)=\"open()\">\r\n <monkey-icon [icon]=\"icon\" [color]=\"'#4B4A53'\"></monkey-icon>\r\n <mecx-select class=\"trigger\" [ngClass]=\"{ open: _opened }\">\r\n <mecx-select__trigger>\r\n <span>\r\n {{ _selected?.label || labelSelect }}\r\n </span>\r\n <monkey-icon\r\n [icon]=\"!_opened ? 'arrow-down-16' : 'arrow-up-16'\"\r\n [color]=\"'#4B4A53'\"\r\n ></monkey-icon>\r\n </mecx-select__trigger>\r\n </mecx-select>\r\n </mecx-form-field-body>\r\n <mecx-select-inside [ngClass]=\"{ open: _opened }\">\r\n <mecx-select-options #selectOptions>\r\n <ng-content> </ng-content>\r\n </mecx-select-options>\r\n </mecx-select-inside>\r\n <mecx-form-field-footer>\r\n <info>\r\n {{ infoMessage }}\r\n </info>\r\n <error>\r\n {{ errorMessage }}\r\n </error>\r\n </mecx-form-field-footer>\r\n </mecx-form-field>\r\n `,\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => MonkeySelectComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class MonkeySelectComponent implements OnInit, OnChanges, ControlValueAccessor {\r\n @Input() label: string;\r\n @Input() helperMessage: string;\r\n @Input() placeholder: string;\r\n @Input() icon: string;\r\n @Input() infoMessage: string;\r\n @Input() errorMessage: string;\r\n @Input() labelSelect = 'Selecione';\r\n @Input() onHandleOptions = new EventEmitter<any>();\r\n @Output() onChange = new EventEmitter<any>();\r\n\r\n @ViewChild('selectOptions', { static: true })\r\n selectOptions: ElementRef;\r\n\r\n private handledValue: any;\r\n private onModelChange = (value: any) => {};\r\n private onModelTouched = (value: any) => {};\r\n @ContentChildren(MonkeyOptionComponent)\r\n private options!: QueryList<MonkeyOptionComponent>;\r\n\r\n public _selected: MonkeyOptionComponent;\r\n public _opened: boolean = false;\r\n public _id: string = `mecx-select-${MonkeyUtils.getRandomString(10)}`;\r\n public _disabled: boolean = false;\r\n\r\n constructor(private cdRef: ChangeDetectorRef) {}\r\n\r\n private onHandleSelected() {\r\n const { _opened, _selected } = this;\r\n this.options.forEach((op) => {\r\n op.selected = _selected;\r\n });\r\n if (_opened) {\r\n let scrollValue = 0;\r\n if (_selected) {\r\n const { _id } = this._selected;\r\n scrollValue = document.getElementById(_id).offsetTop;\r\n }\r\n this.selectOptions.nativeElement.scrollTo(0, scrollValue);\r\n this.selectOptions.nativeElement.focus();\r\n this.cdRef.detectChanges();\r\n }\r\n }\r\n\r\n private validateOptions() {\r\n if (!this.options) return;\r\n this.options.forEach((op) => {\r\n op.onSelectOption = this.onSelectOption.bind(this);\r\n op.type = 'select';\r\n op.selected = null;\r\n if (`${op.value}`.toLowerCase() === `${this.handledValue}`.toLowerCase()) {\r\n this._selected = op;\r\n op.selected = op;\r\n }\r\n });\r\n }\r\n\r\n private init() {\r\n setTimeout(() => {\r\n this._selected = null;\r\n this.validateOptions();\r\n }, 0);\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onModelChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onModelTouched = fn;\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean): void {\r\n this._disabled = isDisabled;\r\n }\r\n\r\n @Input()\r\n set value(value: any) {\r\n if (value !== undefined && this.handledValue !== value) {\r\n this.handledValue = value;\r\n this.onModelChange(value);\r\n this.onModelTouched(value);\r\n }\r\n this.validateOptions();\r\n }\r\n\r\n get value(): any {\r\n return this.handledValue;\r\n }\r\n\r\n writeValue(value: any): void {\r\n this.value = value;\r\n }\r\n\r\n onChangeValue(event: any, value: any) {\r\n event?.preventDefault();\r\n event?.stopPropagation();\r\n this.writeValue(value);\r\n this.onChange.next(value);\r\n }\r\n\r\n @HostListener('document:click')\r\n clickout() {\r\n this._opened = false;\r\n }\r\n\r\n open() {\r\n if (!this._opened) {\r\n setTimeout(() => {\r\n this._opened = true;\r\n this.onHandleSelected();\r\n }, 50);\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.init();\r\n this.onHandleOptions.subscribe(() => {\r\n this.init();\r\n });\r\n }\r\n\r\n ngOnChanges() {\r\n this.init();\r\n }\r\n\r\n onSelectOption(select: MonkeyOptionComponent) {\r\n this._selected = select;\r\n const { value } = select;\r\n this._opened = false;\r\n this.onChangeValue(null, value);\r\n this.onHandleSelected();\r\n }\r\n}\r\n","/**************************\r\n * Copyright Monkey Exchange. All Rights Reserved\r\n * This style guide was developed by Monkey Exchange Team\r\n * MIT Licence\r\n **************************/\r\nimport {\r\n Component,\r\n ViewEncapsulation,\r\n Input,\r\n forwardRef,\r\n HostListener,\r\n QueryList,\r\n ContentChildren,\r\n Output,\r\n EventEmitter,\r\n ViewChild,\r\n ElementRef,\r\n ChangeDetectorRef,\r\n OnInit,\r\n OnChanges,\r\n AfterViewInit,\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { MonkeyOptionComponent } from '../option';\r\nimport { MonkeyUtils } from '../../core/utils';\r\n\r\n@Component({\r\n selector: 'monkey-select-multiple',\r\n template: `\r\n <mecx-form-field [id]=\"_id\" [ngClass]=\"{ disabled: _disabled }\">\r\n <mecx-form-field-header>\r\n <label>\r\n {{ label }}\r\n </label>\r\n <helper>\r\n {{ helperMessage }}\r\n </helper>\r\n </mecx-form-field-header>\r\n <mecx-form-field-body (click)=\"open()\">\r\n <monkey-icon [icon]=\"icon\" [color]=\"'#4B4A53'\"></monkey-icon>\r\n\r\n <mecx-select class=\"trigger\" [ngClass]=\"{ open: _opened }\">\r\n <mecx-select__trigger>\r\n <span>\r\n {{ _selectedValues || 'Selecione' }}\r\n </span>\r\n <monkey-icon\r\n [icon]=\"!_opened ? 'arrow-down-16' : 'arrow-up-16'\"\r\n [color]=\"'#4B4A53'\"\r\n ></monkey-icon>\r\n </mecx-select__trigger>\r\n </mecx-select>\r\n </mecx-form-field-body>\r\n <mecx-select-inside [ngClass]=\"{ open: _opened }\">\r\n <mecx-select-options #selectOptions>\r\n <ng-content> </ng-content>\r\n </mecx-select-options>\r\n </mecx-select-inside>\r\n <mecx-form-field-footer>\r\n <info>\r\n {{ infoMessage }}\r\n </info>\r\n <error>\r\n {{ errorMessage }}\r\n </error>\r\n </mecx-form-field-footer>\r\n </mecx-form-field>\r\n `,\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => MonkeySelectMultipleComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class MonkeySelectMultipleComponent implements AfterViewInit, ControlValueAccessor {\r\n @Input() label: string;\r\n @Input() labelMoreValues: string;\r\n @Input() helperMessage: string;\r\n @Input() placeholder: string;\r\n @Input() icon: string;\r\n @Input() infoMessage: string;\r\n @Input() errorMessage: string;\r\n @Output() onChange = new EventEmitter<any>();\r\n\r\n @ViewChild('selectOptions', { static: true })\r\n selectOptions: ElementRef;\r\n\r\n private handledValue: any[] = [];\r\n private onModelChange = (value: any) => {};\r\n private onModelTouched = (value: any) => {};\r\n @ContentChildren(MonkeyOptionComponent)\r\n private options!: QueryList<MonkeyOptionComponent>;\r\n private selectedAll = false;\r\n\r\n public _selected: MonkeyOptionComponent[] = [];\r\n public _opened: boolean = false;\r\n public _id: string = `mecx-select-${MonkeyUtils.getRandomString(10)}`;\r\n public _disabled: boolean = false;\r\n public _selectedValues = '';\r\n\r\n constructor(private cdRef: ChangeDetectorRef) {}\r\n\r\n private onHandleSelectedValues() {\r\n const { _selected, labelMoreValues } = this;\r\n let selectedValues = '';\r\n const handled = _selected.filter((_) => !_.selectAll);\r\n if (_selected.length > 0) {\r\n selectedValues = `${handled[0].label}`;\r\n if (_selected.length >= 2) {\r\n selectedValues = `${handled[0].label} ${labelMoreValues} ${handled.length - 1}`;\r\n }\r\n }\r\n this._selectedValues = selectedValues;\r\n }\r\n\r\n private onHandleSelected() {\r\n const { _opened, _selected } = this;\r\n let selectedLength = 0;\r\n let selectAll = null;\r\n this.options?.forEach((op) => {\r\n const found = _selected.findIndex((val: any) => {\r\n return val.value === op.value;\r\n });\r\n op.selected = null;\r\n if (op.selectAll) selectAll = op;\r\n if (found >= 0) {\r\n op.selected = op;\r\n selectedLength += 1;\r\n }\r\n });\r\n if (this.options?.length - 1 === selectedLength && selectAll) {\r\n this.selectedAll = true;\r\n selectAll.selected = selectAll;\r\n }\r\n this.onHandleSelectedValues();\r\n\r\n if (_opened) {\r\n this.selectOptions.nativeElement.focus();\r\n this.cdRef.detectChanges();\r\n }\r\n }\r\n\r\n private validateOptions() {\r\n if (!this.options) return;\r\n this._selected = [];\r\n let selectedLength = 0;\r\n let selectAll = null;\r\n this.options?.forEach((op) => {\r\n op.onSelectOption = this.onSelectOption.bind(this);\r\n op.type = 'select-multiple';\r\n op.selected = null;\r\n if (op.selectAll) selectAll = op;\r\n const found = this.handledValue.findIndex((val: any) => {\r\n return `${val}`.trim().toLowerCase() === `${op.value}`.trim().toLowerCase();\r\n });\r\n if (found >= 0) {\r\n op.selected = op;\r\n this._selected.push(op);\r\n selectedLength += 1;\r\n }\r\n });\r\n if (this.options?.length - 1 === selectedLength && selectAll) {\r\n this.selectedAll = true;\r\n selectAll.selected = selectAll;\r\n }\r\n this.onHandleSelectedValues();\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onModelChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onModelTouched = fn;\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean): void {\r\n this._disabled = isDisabled;\r\n }\r\n\r\n @Input()\r\n set value(value: any) {\r\n if (value !== undefined) {\r\n if (this.handledValue.join(',') !== value) {\r\n value?.split(',')?.forEach((op: any) => {\r\n this.handledValue.push(op);\r\n });\r\n this.onModelChange(value);\r\n this.onModelTouched(value);\r\n }\r\n }\r\n this.onHandleSelected();\r\n }\r\n\r\n get value(): any {\r\n return this.handledValue.join(',');\r\n }\r\n\r\n writeValue(value: any): void {\r\n this.value = value;\r\n }\r\n\r\n onChangeValue(event: any, value: any) {\r\n event?.preventDefault();\r\n event?.stopPropagation();\r\n this.writeValue(value);\r\n }\r\n\r\n @HostListener('document:click')\r\n clickout() {\r\n this._opened = false;\r\n }\r\n\r\n open() {\r\n if (!this._opened) {\r\n setTimeout(() => {\r\n this._opened = true;\r\n this.onHandleSelected();\r\n }, 50);\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n setTimeout(() => {\r\n this.validateOptions();\r\n }, 0);\r\n\r\n this.options.changes.subscribe(() => {\r\n setTimeout(() => {\r\n this.validateOptions();\r\n }, 0);\r\n });\r\n }\r\n\r\n onSelectOption(selected: MonkeyOptionComponent) {\r\n if (selected.selectAll) {\r\n this.selectedAll = !this.selectedAll;\r\n this._selected = [];\r\n if (this.selectedAll) {\r\n this.options?.forEach((op) => {\r\n this._selected.push(op);\r\n });\r\n }\r\n } else {\r\n const index = this._selected.findIndex((val: any) => val.value === selected.value);\r\n if (index >= 0) {\r\n this._selected = this._selected.filter((op: MonkeyOptionComponent) => {\r\n return (\r\n `${op.value}`.trim().toLowerCase() !== `${selected.value}`.trim().toLowerCase() &&\r\n !op.selectAll\r\n );\r\n });\r\n } else this._selected.push(selected);\r\n }\r\n const value = this._selected\r\n .filter((val) => !val.selectAll)\r\n .map((val: any) => {\r\n return val.value;\r\n });\r\n\r\n this.onChange.next(value);\r\n this.onChangeValue(null, value.join(','));\r\n this.onHandleSelected();\r\n }\r\n}\r\n","/**************************\r\n * Copyright Monkey Exchange. All Rights Reserved\r\n * This style guide was developed by Monkey Exchange Team\r\n * MIT Licence\r\n **************************/\r\nimport {\r\n Component,\r\n ViewEncapsulation,\r\n Input,\r\n forwardRef,\r\n HostListener,\r\n QueryList,\r\n ContentChildren,\r\n Output,\r\n EventEmitter,\r\n ViewChild,\r\n ElementRef,\r\n ChangeDetectorRef,\r\n OnChanges,\r\n AfterViewInit,\r\n Renderer2,\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { MonkeyOptionComponent } from '../option';\r\nimport { MonkeyUtils } from '../../core/utils';\r\n\r\n@Component({\r\n selector: 'monkey-select-search',\r\n template: `\r\n <mecx-form-field [id]=\"_id\" [ngClass]=\"{ disabled: _disabled }\">\r\n <mecx-form-field-header>\r\n <label>\r\n {{ label }}\r\n </label>\r\n <helper>\r\n {{ helperMessage }}\r\n </helper>\r\n </mecx-form-field-header>\r\n <mecx-form-field-body (click)=\"open()\">\r\n <monkey-icon [icon]=\"icon\" [color]=\"'#aaaaaa'\"></monkey-icon>\r\n <mecx-select class=\"trigger\" [ngClass]=\"{ open: _opened }\">\r\n <mecx-select__trigger>\r\n <input\r\n [placeholder]=\"labelSelect || placeholder\"\r\n (input)=\"onChangeInput($event)\"\r\n #inputFilter\r\n [ngModel]=\"_selected?.label || ''\"\r\n />\r\n <monkey-icon\r\n [icon]=\"!_opened ? 'arrow-down-16' : 'arrow-up-16'\"\r\n [color]=\"'#4B4A53'\"\r\n ></monkey-icon>\r\n </mecx-select__trigger>\r\n </mecx-select>\r\n </mecx-form-field-body>\r\n <mecx-select-inside [ngClass]=\"{ open: _opened }\">\r\n <mecx-select-options #selectOptions>\r\n <ng-content> </ng-content>\r\n </mecx-select-options>\r\n </mecx-select-inside>\r\n <mecx-form-field-footer>\r\n <info>\r\n {{ infoMessage }}\r\n </info>\r\n <error>\r\n {{ errorMessage }}\r\n </error>\r\n </mecx-form-field-footer>\r\n </mecx-form-field>\r\n `,\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => MonkeySelectSearchComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class MonkeySelectSearchComponent implements AfterViewInit, OnChanges, ControlValueAccessor {\r\n @Input() label: string;\r\n @Input() helperMessage: string;\r\n @Input() placeholder: string;\r\n @Input() icon: string;\r\n @Input() infoMessage: string;\r\n @Input() errorMessage: string;\r\n @Input() labelSelect = 'Selecione';\r\n @Input() fieldToCompare: string;\r\n @Input() onHandleOptions = new EventEmitter<any>();\r\n @Output() onChange = new EventEmitter<any>();\r\n @Output() onSearch = new EventEmitter<any>(null);\r\n\r\n @ViewChild('selectOptions', { static: true })\r\n selectOptions: ElementRef;\r\n\r\n @ViewChild('inputFilter', { static: true })\r\n inputFilter: ElementRef;\r\n\r\n private handledValue: any;\r\n private onModelChange = (value: any) => {};\r\n private onModelTouched = (value: any) => {};\r\n @ContentChildren(MonkeyOptionComponent)\r\n private options!: QueryList<MonkeyOptionComponent>;\r\n private timer: any;\r\n\r\n public _selected: MonkeyOptionComponent;\r\n public _opened: boolean = false;\r\n public _id: string = `mecx-select-search-${MonkeyUtils.getRandomString(10)}`;\r\n public _disabled: boolean = false;\r\n\r\n constructor(private cdRef: ChangeDetectorRef, private renderer: Renderer2) {\r\n //not to do\r\n }\r\n\r\n private onHandleSearch(search: any) {\r\n this.options.forEach((op) => {\r\n const source = `${op.label}`.toLowerCase();\r\n const destination = `${search}`.toLowerCase();\r\n if (source.indexOf(destination) > -1) {\r\n this.renderer.setStyle(op.elRef.nativeElement, 'display', 'inline');\r\n } else {\r\n this.renderer.setStyle(op.elRef.nativeElement, 'display', 'inline');\r\n }\r\n let display = 'inline';\r\n if (source.indexOf(destination) === -1) {\r\n display = 'none';\r\n }\r\n this.renderer.setStyle(op.elRef.nativeElement, 'display', display);\r\n });\r\n }\r\n\r\n private onHandleSelected() {\r\n const { _opened, _selected } = this;\r\n this.options.forEach((op) => {\r\n op.selected = _selected;\r\n });\r\n if (_opened) {\r\n let scrollValue = 0;\r\n if (_selected) {\r\n const { _id } = this._selected;\r\n scrollValue = document.getElementById(_id).offsetTop - 10;\r\n }\r\n this.selectOptions.nativeElement.scrollTo(0, scrollValue);\r\n this.selectOptions.nativeElement.focus();\r\n this.cdRef.detectChanges();\r\n }\r\n }\r\n\r\n private validateOptions() {\r\n const { fieldToCompare } = this;\r\n if (!this.options) return;\r\n this.options.forEach((op) => {\r\n op.onSelectOption = this.onSelectOption.bind(this);\r\n op.type = op?.type || 'select';\r\n op.selected = null;\r\n let source = '';\r\n let destination = '';\r\n if (fieldToCompare) {\r\n source = `${op.value[fieldToCompare]}`.toLowerCase();\r\n destination = `${this.handledValue?.[fieldToCompare]}`.toLowerCase();\r\n } else {\r\n source = `${op.value}`.toLowerCase();\r\n destination = `${this.handledValue}`.toLowerCase();\r\n }\r\n if (source === destination) {\r\n this._selected = op;\r\n op.selected = op;\r\n }\r\n });\r\n }\r\n\r\n private doSearch(search: string) {\r\n this.onSearch.next(search);\r\n this.onHandleSearch(search);\r\n this._opened = true;\r\n this.onHandleSelected();\r\n }\r\n\r\n private init() {\r\n setTimeout(() => {\r\n this._selected = null;\r\n this.validateOptions();\r\n }, 0);\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onModelChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onModelTouched = fn;\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean): void {\r\n this._disabled = isDisabled;\r\n }\r\n\r\n @Input()\r\n set value(value: any) {\r\n if (value !== undefined && this.handledValue !== value) {\r\n this.handledValue = value;\r\n this.onModelChange(value);\r\n this.onModelTouched(value);\r\n }\r\n this.validateOptions();\r\n }\r\n\r\n get value(): any {\r\n return this.handledValue;\r\n }\r\n\r\n writeValue(value: any): void {\r\n this.value = value;\r\n }\r\n\r\n onChangeValue(event: any, value: any) {\r\n event?.preventDefault();\r\n event?.stopPropagation();\r\n this.writeValue(value);\r\n this.onChange.next(value);\r\n }\r\n\r\n @HostListener('document:click')\r\n clickout() {\r\n this._opened = false;\r\n }\r\n\r\n open() {\r\n if (!this._opened) {\r\n setTimeout(() => {\r\n this._opened = true;\r\n this.onHandleSelected();\r\n (this.inputFilter?.nativeElement as HTMLInputElement).focus();\r\n }, 50);\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.init();\r\n this.onHandleOptions.subscribe(() => {\r\n this.init();\r\n });\r\n }\r\n\r\n ngOnChanges() {\r\n this.init();\r\n }\r\n\r\n onSelectOption(select: MonkeyOptionComponent) {\r\n this._selected = select;\r\n const { value } = select;\r\n this._opened = false;\r\n this.onChangeValue(null, value);\r\n this.onHandleSelected();\r\n }\r\n\r\n onChangeInput(event: any) {\r\n const { value } = event?.target;\r\n if (this.timer) {\r\n clearTimeout(this.timer);\r\n }\r\n this.timer = setTimeout(() => {\r\n this.doSearch(value);\r\n }, 400);\r\n }\r\n}\r\n","/**************************\r\n * Copyright Monkey Exchange. All Rights Reserved\r\n * This style guide was developed by Monkey Exchange Team\r\n * MIT Licence\r\n **************************/\r\nimport {\r\n Component,\r\n ViewEncapsulation,\r\n Input,\r\n forwardRef,\r\n HostListener,\r\n QueryList,\r\n ContentChildren,\r\n Output,\r\n EventEmitter,\r\n ViewChild,\r\n ElementRef,\r\n ChangeDetectorRef,\r\n OnInit,\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { MonkeyOptionComponent } from '../option';\r\nimport { MonkeyUtils } from '../../core/utils';\r\n\r\n@Component({\r\n selector: 'monkey-select-filter',\r\n template: `\r\n <mecx-select-filter\r\n class=\"trigger\"\r\n [ngClass]=\"{\r\n open: _opened,\r\n none: type === 'none',\r\n border: type === 'border'\r\n }\"\r\n (click)=\"open()\"\r\n >\r\n <mecx-select__trigger>\r\n <span>\r\n {{ _selected?.label || placeholder }}\r\n </span>\r\n <monkey-icon\r\n [icon]=\"!_opened ? 'arrow-down-16' : 'arrow-up-16'\"\r\n [color]=\"'#4B4A53'\"\r\n ></monkey-icon>\r\n </mecx-select__trigger>\r\n </mecx-select-filter>\r\n <mecx-select-inside [ngClass]=\"{ open: _opened }\">\r\n <mecx-select-options #selectOptions>\r\n <ng-content> </ng-content>\r\n </mecx-select-options>\r\n </mecx-select-inside>\r\n `,\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => MonkeySelectFilterComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class MonkeySelectFilterComponent implements OnInit, ControlValueAccessor {\r\n @Input() placeholder: string;\r\n @Input() icon: string;\r\n @Input() type: string;\r\n @Output() onChange = new EventEmitter<any>();\r\n\r\n @ViewChild('selectOptions', { static: true })\r\n selectOptions: ElementRef;\r\n\r\n private handledValue: any;\r\n private onModelChange = (value: any) => {};\r\n private onModelTouched = (value: any) => {};\r\n @ContentChildren(MonkeyOptionComponent)\r\n private options!: QueryList<MonkeyOptionComponent>;\r\n\r\n public _selected: MonkeyOptionComponent;\r\n public _opened: boolean = false;\r\n public _id: string = `mecx-select-filter-${MonkeyUtils.getRandomString(10)}`;\r\n public _disabled: boolean = false;\r\n\r\n constructor(private cdRef: ChangeDetectorRef) {}\r\n\r\n private onHandleSelected() {\r\n const { _opened, _selected } = this;\r\n this.options.forEach((op) => {\r\n op.selected = _selected;\r\n });\r\n if (_opened) {\r\n let scrollValue = 0;\r\n if (_selected) {\r\n const { _id } = this._selected;\r\n scrollValue = document.getElementById(_id).offsetTop;\r\n }\r\n this.selectOptions.nativeElement.scrollTo(0, scrollValue);\r\n this.selectOptions.nativeElement.focus();\r\n this.cdRef.detectChanges();\r\n }\r\n }\r\n\r\n private validateOptions() {\r\n if (!this.options) return;\r\n this.options.forEach((op) => {\r\n op.onSelectOption = this.onSelectOption.bind(this);\r\n op.type = 'select';\r\n op.selected = null;\r\n if (`${op.value}`.toLowerCase() === `${this.handledValue}`.toLowerCase()) {\r\n this._selected = op;\r\n op.selected = op;\r\n }\r\n });\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onModelChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onModelTouched = fn;\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean): void {\r\n this._disabled = isDisabled;\r\n }\r\n\r\n @Input()\r\n set value(value: any) {\r\n if (value !== undefined && this.handledValue !== value) {\r\n this.handledValue = value;\r\n this.onModelChange(value);\r\n this.onModelTouched(value);\r\n }\r\n this.validateOptions();\r\n }\r\n\r\n get value(): any {\r\n return this.handledValue;\r\n }\r\n\r\n writeValue(value: any): void {\r\n this.value = value;\r\n }\r\n\r\n onChangeValue(event: any, value: any) {\r\n event?.preventDefault();\r\n event?.stopPropagation();\r\n this.writeValue(value);\r\n this.onChange.next(value);\r\n }\r\n\r\n @HostListener('document:click')\r\n clickout() {\r\n this._opened = false;\r\n }\r\n\r\n open() {\r\n if (!this._opened) {\r\n setTimeout(() => {\r\n this._opened = true;\r\n this.onHandleSelected();\r\n }, 50);\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n setTimeout(() => {\r\n this.validateOptions();\r\n }, 0);\r\n }\r\n\r\n onSelectOption(select: MonkeyOptionComponent) {\r\n this._selected = select;\r\n const { value } = select;\r\n this._opened = false;\r\n this.onChangeValue(null, value);\r\n this.onHandleSelected();\r\n }\r\n}\r\n","import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core';\r\nimport { MonkeySelectComponent } from './select.component';\r\nimport { MonkeySelectMultipleComponent } from './select-multiple.component';\r\nimport { MonkeySelectSearchComponent } from './select-search.component';\r\nimport { MonkeySelectFilterComponent } from './select-filter.component';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MonkeyOptionModule } from '../option';\r\nimport { MonkeyIconModule } from '../icon';\r\nimport { MonkeyInputModule } from '../input';\r\n\r\n@NgModule({\r\n declarations: [\r\n MonkeySelectComponent,\r\n MonkeySelectMultipleComponent,\r\n MonkeySelectSearchComponent,\r\n MonkeySelectFilterComponent,\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MonkeyInputModule,\r\n MonkeyOptionModule,\r\n MonkeyIconModule,\r\n ],\r\n exports: [\r\n MonkeySelectComponent,\r\n MonkeySelectMultipleComponent,\r\n MonkeySelectSearchComponent,\r\n MonkeySelectFilterComponent,\r\n ],\r\n schemas: [NO_ERRORS_SCHEMA],\r\n})\r\nexport class MonkeySelectModule {}\r\n","/**************************\r\n * Copyright Monkey Exchange. All Rights Reserved\r\n * This style guide was developed by Monkey Exchange Team\r\n * MIT Licence\r\n **************************/\r\nimport {\r\n Component,\r\n ViewEncapsulation,\r\n Input,\r\n forwardRef,\r\n Output,\r\n EventEmitter,\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { MonkeyUtils } from '../../core/utils';\r\n\r\n@Component({\r\n selector: 'monkey-checkbox',\r\n template: `\r\n <mecx-form-field\r\n *ngIf=\"type === 'single'; else multiple\"\r\n [ngClass]=\"{ disabled: _disabled }\"\r\n >\r\n <mecx-form-field-header>\r\n <label>\r\n {{ label }}\r\n </label>\r\n <helper>\r\n {{ helperMessage }}\r\n </helper>\r\n </mecx-form-field-header>\r\n <mecx-form-field-body class=\"checkbox\">\r\n <label class=\"mecx-check-container\">\r\n <input\r\n type=\"checkbox\"\r\n [(ngModel)]=\"value\"\r\n [id]=\"_id\"\r\n [disabled]=\"_disabled\"\r\n />\r\n {{ description }}\r\n <ng-content> </ng-content>\r\n <p class=\"mecx-check-mark\"></p>\r\n </label>\r\n </mecx-form-field-body>\r\n <mecx-form-field-footer>\r\n <info>\r\n {{ infoMessage }}\r\n </info>\r\n <error>\r\n {{ errorMessage }}\r\n </error>\r\n </mecx-form-field-footer>\r\n </mecx-form-field>\r\n <ng-template #multiple>\r\n <mecx-form-field [ngClass]=\"{ disabled: _disabled }\">\r\n <mecx-form-field-body class=\"checkbox\">\r\n <label class=\"mecx-check-container\">\r\n <input\r\n type=\"checkbox\"\r\n [(ngModel)]=\"value\"\r\n [id]=\"_id\"\r\n [disabled]=\"_disabled\"\r\n />\r\n {{ description }}\r\n <p class=\"mecx-check-mark\"></p>\r\n </label>\r\n </mecx-form-field-body>\r\n </mecx-form-field>\r\n </ng-template>\r\n `,\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => MonkeyCheckboxComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class MonkeyCheckboxComponent implements ControlValueAccessor {\r\n @Input() label: string;\r\n @Input() type: string = 'single';\r\n @Input() helperMessage: string;\r\n @Input() infoMessage: string;\r\n @Input() errorMessage: string;\r\n @Input() description: any;\r\n @Output() onChange = new EventEmitter<any>();\r\n\r\n private handledValue: any;\r\n private onModelChange = (value: any) => {};\r\n private onModelTouched = (value: any) => {};\r\n\r\n public _id: string = `mecx-checkbox-${MonkeyUtils.getRandomString(10)}`;\r\n public _disabled: boolean = false;\r\n\r\n constructor() {}\r\n\r\n registerOnChange(fn: any): void {\r\n this.onModelChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onModelTouched = fn;\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean): void {\r\n this._disabled = isDisabled;\r\n }\r\n\r\n @Input()\r\n set value(value: any) {\r\n if (value !== undefined && this.handledValue !== value) {\r\n this.handledValue = value;\r\n this.onModelChange(value);\r\n this.onModelTouched(value);\r\n this.onChange.next(value);\r\n }\r\n }\r\n\r\n get value(): any {\r\n return this.handledValue;\r\n }\r\n\r\n writeValue(value: any): void {\r\n this.value = value;\r\n }\r\n\r\n onChangeValue(event: any, value: any) {\r\n event?.preventDefault();\r\n event?.stopPropagation();\r\n this.writeValue(value);\r\n }\r\n}\r\n","import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core';\r\nimport { MonkeyCheckboxComponent } from './checkbox.component';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\n\r\n@NgModule({\r\n declarations: [\r\n MonkeyCheckboxComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule\r\n ],\r\n exports: [\r\n MonkeyCheckboxComponent\r\n ],\r\n schemas: [\r\n NO_ERRORS_SCHEMA\r\n ]\r\n})\r\nexport class MonkeyCheckboxModule{}","/**************************\r\n * Copyright Monkey Exchange. All Rights Reserved\r\n * This style guide was developed by Monkey Exchange Team\r\n * MIT Licence\r\n **************************/\r\nimport {\r\n Component,\r\n ViewEncapsulation,\r\n Input,\r\n forwardRef,\r\n ContentChildren,\r\n QueryList,\r\n AfterViewInit,\r\n Output,\r\n EventEmitter,\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { MonkeyOptionComponent } from '../option';\r\nimport { MonkeyUtils } from '../../core/utils';\r\n\r\n@Component({\r\n selector: 'monkey-radiobutton',\r\n template: `\r\n <mecx-form-field [id]=\"_id\" [ngClass]=\"{ disabled: _disabled }\">\r\n <mecx-form-field-header>\r\n <label>\r\n {{ label }}\r\n </label>\r\n <helper>\r\n {{ helperMessage }}\r\n </helper>\r\n </mecx-form-field-header>\r\n <mecx-form-field-body class=\"radiobutton\">\r\n <ng-content> </ng-content>\r\n </mecx-form-field-body>\r\n <mecx-form-field-footer>\r\n <info>\r\n {{ infoMessage }}\r\n </info>\r\n <error>\r\n {{ errorMessage }}\r\n </error>\r\n </mecx-form-field-footer>\r\n </mecx-form-field>\r\n `,\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => MonkeyRadioButtonComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class MonkeyRadioButtonComponent\r\n implements AfterViewInit, ControlValueAccessor {\r\n @Input() label: string;\r\n @Input() helperMessage: string;\r\n @Input() placeholder: string;\r\n @Input() icon: string;\r\n @Input() infoMessage: string;\r\n @Input() errorMessage: string;\r\n @Output() onChange = new EventEmitter<any>();\r\n\r\n private handledValue: any;\r\n private onModelChange = (value: any) => {};\r\n private onModelTouched = (value: any) => {};\r\n @ContentChildren(MonkeyOptionComponent)\r\n private options!: QueryList<MonkeyOptionComponent>;\r\n\r\n public _selected: MonkeyOptionComponent;\r\n public _id: string = `mecx-radiobutton-${MonkeyUtils.getRandomString(10)}`;\r\n public _disabled: boolean = false;\r\n\r\n constructor() {}\r\n\r\n private onHandleSelected() {\r\n this.options.forEach((op) => {\r\n op.selected = this._selected;\r\n });\r\n }\r\n\r\n private validateOptions() {\r\n if (!this.options) return;\r\n this.options.forEach((op) => {\r\n op.onSelectOption = this.onSelectOption.bind(this);\r\n op.type = 'radio';\r\n op.selected = null;\r\n if (\r\n `${op.value}`.toLowerCase() === `${this.handledValue}`.toLowerCase()\r\n ) {\r\n this._selected = op;\r\n op.selected = op;\r\n }\r\n });\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onModelChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onModelTouched = fn;\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean): void {\r\n this._disabled = isDisabled;\r\n }\r\n\r\n @Input()\r\n set value(value: any) {\r\n if (value !== undefined && this.handledValue !== value) {\r\n this.handledValue = value;\r\n this.onModelChange(value);\r\n this.onModelTouched(value);\r\n this.validateOptions();\r\n }\r\n }\r\n\r\n get value(): any {\r\n return this.handledValue;\r\n }\r\n\r\n writeValue(value: any): void {\r\n this.value = value;\r\n }\r\n\r\n onChangeValue(event: any, value: any) {\r\n event?.preventDefault();\r\n event?.stopPropagation();\r\n this.writeValue(value);\r\n this.onChange.next(value);\r\n }\r\n\r\n ngAfterViewInit() {\r\n setTimeout(() => {\r\n this.validateOptions();\r\n }, 0);\r\n }\r\n\r\n onSelectOption(select: MonkeyOptionComponent) {\r\n this._selected = select;\r\n const { value } = select;\r\n this.onChangeValue(null, value);\r\n this.onHandleSelected();\r\n }\r\n}\r\n","import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core';\r\nimport { MonkeyRadioButtonComponent } from './radiobutton.component';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\n\r\n@NgModule({\r\n declarations: [\r\n MonkeyRadioButtonComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule\r\n ],\r\n exports: [\r\n MonkeyRadioButtonComponent\r\n ],\r\n schemas: [\r\n NO_ERRORS_SCHEMA\r\n ]\r\n})\r\nexport class MonkeyRadioButtonModule { }","/**************************\r\n * Copyright Monkey Exchange. All Rights Reserved\r\n * This style guide was developed by Monkey Exchange Team\r\n * MIT Licence \r\n**************************/\r\nimport { Component, Input, OnInit, ViewEncapsulation } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'monkey-wizard',\r\n template: `\r\n <div [ngClass]=\"position\">\r\n <div class=\"mecx-wizard-body\"\r\n *ngFor=\"let step of _totalSteps\">\r\n <div class=\"mecx-wizard-option mecx-wizard-option__theme\"\r\n [ngClass]=\"{'selected': step === selectedStep, 'completed': step < selectedStep}\">\r\n {{ step }}\r\n </div>\r\n <div class=\"mecx-wizard-option-separator\"></div>\r\n </div>\r\n </div>\r\n `,\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class MonkeyWizardComponent implements OnInit{\r\n\r\n @Input() totalSteps: number = 0;\r\n @Input() selectedStep: number = 0;\r\n @Input() position: string = 'horizontal';\r\n\r\n public _totalSteps: number[];\r\n public _selectedStep: number;\r\n\r\n constructor() { }\r\n\r\n ngOnInit(){\r\n const { totalSteps, selectedStep } = this;\r\n this._totalSteps = new Array(Number(totalSteps)).fill(1).map((step: number, index: number) => {\r\n return step + index;\r\n });\r\n this._selectedStep = Number(selectedStep);\r\n }\r\n}","import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core';\r\nimport { MonkeyWizardComponent } from './wizard.component';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MonkeyIconModule } from '../icon';\r\n\r\n@NgModule({\r\n declarations: [\r\n MonkeyWizardComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n MonkeyIconModule\r\n ],\r\n exports: [\r\n MonkeyWizardComponent\r\n ],\r\n schemas: [\r\n NO_ERRORS_SCHEMA\r\n ]\r\n})\r\nexport class MonkeyWizardModule { }","/**************************\r\n * Copyright Monkey Exchange. All Rights Reserved\r\n * This style guide was developed by Monkey Exchange Team\r\n * MIT Licence\r\n **************************/\r\nimport {\r\n Component,\r\n ViewEncapsulation,\r\n Input,\r\n forwardRef,\r\n HostListener,\r\n Output,\r\n EventEmitter,\r\n OnInit,\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { MonkeyUtils } from '../../core/utils';\r\n\r\n@Component({\r\n selector: 'monkey-file-upload',\r\n template: `\r\n <mecx-form-field [ngClass]=\"{ disabled: _disabled }\">\r\n <mecx-form-field-header>\r\n <label>\r\n {{ label }}\r\n </label>\r\n <helper>\r\n {{ helperMessage }}\r\n </helper>\r\n </mecx-form-field-header>\r\n <mecx-form-field-body>\r\n <input\r\n #fileInput\r\n hidden\r\n [name]=\"name\"\r\n type=\"file\"\r\n (change)=\"onChangeValue($event.target.files)\"\r\n [id]=\"_id\"\r\n [disabled]=\"_disabled\"\r\n />\r\n <span>{{\r\n value?.fileName\r\n ? value.fileName\r\n : uploadOngoingMessage\r\n ? uploadOngoingMessage\r\n : placeholder\r\n }}</span>\r\n <monkey-icon\r\n icon=\"upload-16\"\r\n [color]=\"'#4B4A53'\"\r\n *ngIf=\"!value?.fileName\"\r\n ></monkey-icon>\r\n <monkey-icon\r\n icon=\"close-16\"\r\n *ngIf=\"value?.fileName\"\r\n (click)=\"onClear($event)\"\r\n ></monkey-icon>\r\n </mecx-form-field-body>\r\n <mecx-form-field-upload-info *ngIf=\"_progress\">\r\n <span [style.width.%]=\"_progress\"> {{ _progress }}%</span>\r\n </mecx-form-field-upload-info>\r\n <mecx-form-field-footer>\r\n <info>\r\n {{ infoMessage }}\r\n </info>\r\n <error>\r\n {{ errorMessage }}\r\n {{ _uploadErrorMessage }}\r\n {{ _maxSizeErrorMessage ? maxSizeErrorMessage : null }}\r\n {{\r\n _allowedExtensionErrorMessage ? allowedExtensionErrorMessage : null\r\n }}\r\n </error>\r\n </mecx-form-field-footer>\r\n </mecx-form-field>\r\n `,\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => MonkeyFileUploadComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class MonkeyFileUploadComponent implements ControlValueAccessor, OnInit {\r\n @Input() name: string;\r\n @Input() label: string;\r\n @Input() helperMessage: string;\r\n @Input() placeholder: string;\r\n @Input() icon: string;\r\n @Input() infoMessage: string;\r\n @Input() uploadOngoingMessage: string;\r\n @Input() errorMessage: string;\r\n @Input() listenFiles: boolean;\r\n @Input() maxSize: number;\r\n @Input() allowedExtensions: string[];\r\n @Input() maxSizeErrorMessage: string;\r\n @Input() allowedExtensionErrorMessage: string;\r\n @Input() fileUpload: Function;\r\n @Output() onChange = new EventEmitter<any>();\r\n @Output() onHandleFilesReady = new EventEmitter<File>();\r\n\r\n private configFiles: ConfigFiles;\r\n private handledValue: any;\r\n private onModelChange = (value: any) => {};\r\n private onModelTouched = (value: any) => {};\r\n\r\n public _id: string = `mecx-file-upload-${MonkeyUtils.getRandomString(10)}`;\r\n public _disabled: boolean = false;\r\n public _progress: number = null;\r\n public _maxSizeErrorMessage: boolean = false;\r\n public _allowedExtensionErrorMessage: boolean = false;\r\n public _uploadErrorMessage: string = '';\r\n\r\n constructor() {}\r\n\r\n private validateFile(file: File): boolean {\r\n const { configFiles } = this;\r\n const { name, size } = file;\r\n\r\n if (configFiles.allowedExtensions) {\r\n const hasAllowedExtensions =\r\n configFiles.allowedExtensions.filter((allow) => {\r\n const extension = name.substr(name.indexOf('.', -name.length));\r\n return (\r\n allow.extension.toLowerCase() === extension.toLowerCase() ||\r\n !MonkeyUtils.persistNullEmptyUndefined(extension)\r\n );\r\n }).length > 0;\r\n if (!hasAllowedExtensions) {\r\n this._allowedExtensionErrorMessage = true;\r\n return false;\r\n }\r\n }\r\n\r\n if (configFiles.maxSize) {\r\n if (size > configFiles.maxSize) {\r\n this._maxSizeErrorMessage = true;\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n private handleCallback(\r\n progress: number,\r\n respUploaded: any,\r\n uploadError: string\r\n ) {\r\n this._progress = progress;\r\n this.value = respUploaded;\r\n this._uploadErrorMessage = uploadError;\r\n this.onChange.next(this.value);\r\n }\r\n\r\n ngOnInit() {\r\n this.allowedExtensions = this.allowedExtensions || [\r\n '.jpg',\r\n '.jpeg',\r\n '.png',\r\n '.pdf',\r\n '.txt',\r\n '.xls',\r\n '.xlsx',\r\n ];\r\n let allow: AllowedFile[] = null;\r\n if (this.allowedExtensions.length > 0) {\r\n allow = this.allowedExtensions.map((val) => {\r\n return { extension: val };\r\n });\r\n }\r\n\r\n this.configFiles = {\r\n maxSize: this.maxSize || 5 * 1024 * 1024,\r\n allowedExtensions: allow,\r\n };\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onModelChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onModelTouched = fn;\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean): void {\r\n this._disabled = isDisabled;\r\n }\r\n\r\n @Input()\r\n set value(value: any) {\r\n if (value !== undefined && this.handledValue !== value) {\r\n this.handledValue = value;\r\n this.onModelChange(value);\r\n this.onModelTouched(value);\r\n }\r\n }\r\n\r\n get value(): any {\r\n return this.handledValue;\r\n }\r\n\r\n writeValue(value: any): void {\r\n this.value = value;\r\n }\r\n\r\n onChangeValue(event: any) {\r\n const { listenFiles } = this;\r\n this._allowedExtensionErrorMessage = false;\r\n this._maxSizeErrorMessage = false;\r\n for (let index = 0; index < event.length; index++) {\r\n const file: File = event[index];\r\n if (this.validateFile(file)) {\r\n if (listenFiles) {\r\n this.onHandleFilesReady.next(file);\r\n } else {\r\n this.fileUpload(file, this.handleCallback.bind(this));\r\n }\r\n }\r\n }\r\n }\r\n\r\n @HostListener('click', ['$event'])\r\n onClick(event: any) {\r\n const { _id } = this;\r\n (<HTMLInputElement>document.getElementById(_id)).value = null;\r\n document.getElementById(_id).click();\r\n }\r\n\r\n onClear(event: any) {\r\n event?.preventDefault();\r\n event?.stopPropagation();\r\n this.value = null;\r\n this.onChange.next(this.value);\r\n }\r\n}\r\n\r\ninterface AllowedFile {\r\n extension: string;\r\n}\r\n\r\ninterface ConfigFiles {\r\n maxSize: number;\r\n allowedExtensions: AllowedFile[];\r\n}\r\n","import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core';\r\nimport { MonkeyFileUploadComponent } from './file-upload.component';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { NgxMaskModule } from 'ngx-mask';\r\nimport { MonkeyIconModule } from '../icon';\r\n\r\n@NgModule({\r\n declarations: [MonkeyFileUploadComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n NgxMaskModule.forRoot(),\r\n MonkeyIconModule,\r\n ],\r\n exports: [MonkeyFileUploadComponent],\r\n schemas: [NO_ERRORS_SCHEMA],\r\n})\r\nexport class MonkeyFileUploadModule {}\r\n","/**************************\r\n * Copyright Monkey Exchange. All Rights Reserved\r\n * This style guide was developed by Monkey Exchange Team\r\n * MIT Licence\r\n **************************/\r\nimport {\r\n Component,\r\n ViewEncapsulation,\r\n OnInit,\r\n HostListener,\r\n ChangeDetectorRef,\r\n Input,\r\n EventEmitter,\r\n Output,\r\n} from '@angular/core';\r\nimport { DomSanitizer, SafeUrl } from '@angular/platform-browser';\r\nimport { MonkeyUtils } from '../../core';\r\n\r\n@Component({\r\n selector: 'monkey-image-crop',\r\n template: `\r\n <monkey-file-upload\r\n [label]=\"label\"\r\n [helperMessage]=\"helperMessage\"\r\n icon=\"upload-16\"\r\n [placeholder]=\"placeholder\"\r\n [maxSize]=\"maxSize\"\r\n [maxSizeErrorMessage]=\"maxSizeErrorMessage\"\r\n [allowedExtensionErrorMessage]=\"allowedExtensionErrorMessage\"\r\n (onHandleFilesReady)=\"onHandleFileUploadFilesReady($event)\"\r\n listenFiles=\"true\"\r\n [maxFiles]=\"1\"\r\n [allowedExtensions]=\"['.jpg', '.jpeg', '.png']\"\r\n *ngIf=\"!_loadCompleted\"\r\n >\r\n </monkey-file-upload>\r\n <div *ngIf=\"_loadPreview\">\r\n <progress class=\"monkey-progress monkey-progress__grey\"></progress>\r\n </div>\r\n <div class=\"box-cut-title\" *ngIf=\"_loadCompleted\">\r\n {{ cropTitle }} {{ _fileNameToCut }}\r\n </div>\r\n <div\r\n id=\"imageCropSource\"\r\n name=\"imageCropSource\"\r\n #imageCropSource\r\n class=\"box-cut\"\r\n *ngIf=\"_loadCompleted\"\r\n >\r\n <div class=\"edit-resize-cut\">\r\n <img class=\"source-image\" [src]=\"_safeImgDataUrl\" />\r\n <div\r\n class=\"cut\"\r\n [style.top.px]=\"_cutCoords.y1\"\r\n [style.left.px]=\"_cutCoords.x1\"\r\n [style.width.px]=\"_cutCoords.x2 - _cutCoords.x1\"\r\n [style.height.px]=\"_cutCoords.y2 - _cutCoords.y1\"\r\n *ngIf=\"_loadCompleted\"\r\n >\r\n <div\r\n (mousedown)=\"startMove($event, 'move')\"\r\n (touchstart)=\"startMove($event, 'move')\"\r\n class=\"move\"\r\n ></div>\r\n <span\r\n class=\"resize top-left\"\r\n (mousedown)=\"startMove($event, 'resize', 'topleft')\"\r\n (touchstart)=\"startMove($event, 'resize', 'topleft')\"\r\n >\r\n </span>\r\n <span class=\"resize top\"></span>\r\n <span\r\n class=\"resize top-right\"\r\n (mousedown)=\"startMove($event, 'resize', 'topright')\"\r\n (touchstart)=\"startMove($event, 'resize', 'topright')\"\r\n >\r\n </span>\r\n <span class=\"resize right\"></span>\r\n <span\r\n class=\"resize bottom-right\"\r\n (mousedown)=\"startMove($event, 'resize', 'bottomright')\"\r\n (touchstart)=\"startMove($event, 'resize', 'bottomright')\"\r\n >\r\n </span>\r\n <span class=\"resize bottom\"> </span>\r\n <span\r\n class=\"resize bottom-left\"\r\n (mousedown)=\"startMove($event, 'resize', 'bottomleft')\"\r\n (touchstart)=\"startMove($event, 'resize', 'bottomleft')\"\r\n >\r\n </span>\r\n <span class=\"resize left\"> </span>\r\n <span\r\n class=\"resize-bar top\"\r\n (mousedown)=\"startMove($event, 'resize', 'top')\"\r\n (touchstart)=\"startMove($event, 'resize', 'top')\"\r\n >\r\n </span>\r\n <span\r\n class=\"resize-bar right\"\r\n (mousedown)=\"startMove($event, 'resize', 'right')\"\r\n (touchstart)=\"startMove($event, 'resize', 'right')\"\r\n >\r\n </span>\r\n <span\r\n class=\"resize-bar bottom\"\r\n (mousedown)=\"startMove($event, 'resize', 'bottom')\"\r\n (touchstart)=\"startMove($event, 'resize', 'bottom')\"\r\n >\r\n </span>\r\n <span\r\n class=\"resize-bar left\"\r\n (mousedown)=\"startMove($event, 'resize', 'left')\"\r\n (touchstart)=\"startMove($event, 'resize', 'left')\"\r\n >\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n <mecx-image-crop-upload-info *ngIf=\"_progress\">\r\n <span [style.width.%]=\"_progress\"> {{ _progress }}%</span>\r\n </mecx-image-crop-upload-info>\r\n <monkey-button\r\n type=\"tertiary\"\r\n color=\"theme\"\r\n (click)=\"onHandleImageChange()\"\r\n *ngIf=\"_loadCompleted\"\r\n >\r\n {{ labelChangeImage }}\r\n </monkey-button>\r\n `,\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class MonkeyImageCropComponent implements OnInit {\r\n @Input() label: string;\r\n @Input() cropTitle: string;\r\n @Input() labelChangeImage: string;\r\n @Input() labelPreviewImage: string;\r\n @Input() helperMessage: string;\r\n @Input() placeholder: string;\r\n @Input() maxSize: number;\r\n @Input() maxSizeErrorMessage: string;\r\n @Input() allowedExtensionErrorMessage: string;\r\n @Input() fileUpload: Function;\r\n @Input() onHandleGetFilesReady = new EventEmitter<any>();\r\n @Output() onHandleFilesReady = new EventEmitter<any>();\r\n @Output() onHandlePreviewReady = new EventEmitter<any>();\r\n\r\n public _cutCoords: CutCoords = { y1: 0, y2: 0, x1: 0, x2: 0 };\r\n public _fileTypeToCut: string = '';\r\n public _fileNameToCut: string = '';\r\n public _progressingCut: boolean;\r\n public _loadCompleted: boolean;\r\n public _loadPreview: boolean;\r\n public _safeImgDataUrl: SafeUrl | string;\r\n public _disabled: boolean = false;\r\n public _progress: number = null;\r\n public _uploadErrorMessage: string = '';\r\n\r\n private mouseMoves: MouseMoves;\r\n private areMaxSize: Dimensions = { width: 150, height: 150 };\r\n private cutScaledMinWidth = 100;\r\n private cutScaledMinHeight = 100;\r\n private originalSize: Dimensions = { width: 0, height: 0 };\r\n private fileReader: FileReader = new FileReader();\r\n private originalImage = new Image();\r\n private imageCutReady: Blob = null;\r\n private savedCallback: Function;\r\n\r\n constructor(\r\n private cdr: ChangeDetectorRef,\r\n private sanitizer: DomSanitizer\r\n ) {}\r\n\r\n private initCut() {\r\n this.areMaxSize = {\r\n width: document.getElementById('imageCropSource').offsetWidth || 150,\r\n height: document.getElementById('imageCropSource').offsetHeight || 150,\r\n };\r\n this._cutCoords = {\r\n x1: this.areMaxSize.width / 2 - this.cutScaledMinWidth,\r\n y1: this.areMaxSize.height / 2 - this.cutScaledMinHeight,\r\n x2: this.areMaxSize.width / 2 + this.cutScaledMinWidth,\r\n y2: this.areMaxSize.height / 2 + this.cutScaledMinHeight,\r\n };\r\n this.cut();\r\n }\r\n\r\n private setProgressingCut(tp: boolean) {\r\n this._progressingCut = tp;\r\n }\r\n\r\n private setProgressLoadCompleted(tp: boolean) {\r\n this._loadCompleted = tp;\r\n this.cdr.detectChanges();\r\n }\r\n\r\n private setProgressLoadPreview(tp: boolean) {\r\n this._loadPreview = tp;\r\n }\r\n\r\n private cut() {\r\n this.setProgressingCut(true);\r\n const imagePosition = this.getImagePosition();\r\n let width = imagePosition.x2 - imagePosition.x1;\r\n let height = imagePosition.y2 - imagePosition.y1;\r\n const canvas = document.createElement('canvas') as HTMLCanvasElement;\r\n canvas.width = width;\r\n canvas.height = height;\r\n\r\n const ctx = canvas.getContext('2d');\r\n ctx.drawImage(\r\n this.originalImage,\r\n imagePosition.x1,\r\n imagePosition.y1,\r\n width,\r\n height,\r\n 0,\r\n 0,\r\n width,\r\n height\r\n );\r\n this.getCanvasBlob(canvas);\r\n }\r\n\r\n private getImagePosition(): CutCoords {\r\n const ratiow =\r\n this.originalSize.width /\r\n document.getElementById('imageCropSource').offsetWidth;\r\n const ratioh =\r\n this.originalSize.height /\r\n document.getElementById('imageCropSource').offsetHeight;\r\n return {\r\n x1: Math.round(this._cutCoords.x1 * ratiow),\r\n y1: Math.round(this._cutCoords.y1 * ratioh),\r\n x2: Math.min(\r\n Math.round(this._cutCoords.x2 * ratiow),\r\n this.originalSize.width\r\n ),\r\n y2: Math.min(\r\n Math.round(this._cutCoords.y2 * ratioh),\r\n this.originalSize.height\r\n ),\r\n };\r\n }\r\n\r\n private getCanvasBlob(cropCanvas: HTMLCanvasElement) {\r\n cropCanvas.toBlob(\r\n (val: Blob) => {\r\n this.imageCutReady = val;\r\n this.setProgressingCut(false);\r\n },\r\n 'image/jpeg',\r\n 0.95\r\n );\r\n }\r\n\r\n private getClientX(event: any): number {\r\n return (\r\n event.clientX ||\r\n (event.touches && event.touches[0] && event.touches[0].clientX)\r\n );\r\n }\r\n\r\n private getClientY(event: any): number {\r\n return (\r\n event.clientY ||\r\n (event.touches && event.touches[0] && event.touches[0].clientY)\r\n );\r\n }\r\n\r\n private resize(event: any): void {\r\n const diffX = this.getClientX(event) - this.mouseMoves.clientX;\r\n const diffY = this.getClientY(event) - this.mouseMoves.clientY;\r\n switch (this.mouseMoves.position) {\r\n case 'left':\r\n this._cutCoords.x1 = Math.min(\r\n this.mouseMoves.x1 + diffX,\r\n this._cutCoords.x2 - this.cutScaledMinWidth\r\n );\r\n break;\r\n case 'topleft':\r\n this._cutCoords.x1 = Math.min(\r\n this.mouseMoves.x1 + diffX,\r\n this._cutCoords.x2 - this.cutScaledMinWidth\r\n );\r\n this._cutCoords.y1 = Math.min(\r\n this.mouseMoves.y1 + diffY,\r\n this._cutCoords.y2 - this.cutScaledMinHeight\r\n );\r\n break;\r\n case 'top':\r\n this._cutCoords.y1 = Math.min(\r\n this.mouseMoves.y1 + diffY,\r\n this._cutCoords.y2 - this.cutScaledMinHeight\r\n );\r\n break;\r\n case 'topright':\r\n this._cutCoords.x2 = Math.max(\r\n this.mouseMoves.x2 + diffX,\r\n this._cutCoords.x1 + this.cutScaledMinWidth\r\n );\r\n this._cutCoords.y1 = Math.min(\r\n this.mouseMoves.y1 + diffY,\r\n this._cutCoords.y2 - this.cutScaledMinHeight\r\n );\r\n break;\r\n case 'right':\r\n this._cutCoords.x2 = Math.max(\r\n this.mouseMoves.x2 + diffX,\r\n this._cutCoords.x1 + this.cutScaledMinWidth\r\n );\r\n break;\r\n case 'bottomright':\r\n this._cutCoords.x2 = Math.max(\r\n this.mouseMoves.x2 + diffX,\r\n this._cutCoords.x1 + this.cutScaledMinWidth\r\n );\r\n this._cutCoords.y2 = Math.max(\r\n this.mouseMoves.y2 + diffY,\r\n this._cutCoords.y1 + this.cutScaledMinHeight\r\n );\r\n break;\r\n case 'bottom':\r\n this._cutCoords.y2 = Math.max(\r\n this.mouseMoves.y2 + diffY,\r\n this._cutCoords.y1 + this.cutScaledMinHeight\r\n );\r\n break;\r\n case 'bottomleft':\r\n this._cutCoords.x1 = Math.min(\r\n this.mouseMoves.x1 + diffX,\r\n this._cutCoords.x2 - this.cutScaledMinWidth\r\n );\r\n this._cutCoords.y2 = Math.max(\r\n this.mouseMoves.y2 + diffY,\r\n this._cutCoords.y1 + this.cutScaledMinHeight\r\n );\r\n break;\r\n }\r\n }\r\n\r\n private move(event: any) {\r\n const diffX = this.getClientX(event) - this.mouseMoves.clientX;\r\n const diffY = this.getClientY(event) - this.mouseMoves.clientY;\r\n\r\n this._cutCoords.x1 = this.mouseMoves.x1 + diffX;\r\n this._cutCoords.y1 = this.mouseMoves.y1 + diffY;\r\n this._cutCoords.x2 = this.mouseMoves.x2 + diffX;\r\n this._cutCoords.y2 = this.mouseMoves.y2 + diffY;\r\n }\r\n\r\n private checkMovesPosition(maintainSize = false): void {\r\n if (this._cutCoords.x1 < 0) {\r\n this._cutCoords.x2 -= maintainSize ? this._cutCoords.x1 : 0;\r\n this._cutCoords.x1 = 0;\r\n }\r\n if (this._cutCoords.y1 < 0) {\r\n this._cutCoords.y2 -= maintainSize ? this._cutCoords.y1 : 0;\r\n this._cutCoords.y1 = 0;\r\n }\r\n if (this._cutCoords.x2 > this.areMaxSize.width) {\r\n this._cutCoords.x1 -= maintainSize\r\n ? this._cutCoords.x2 - this.areMaxSize.width\r\n : 0;\r\n this._cutCoords.x2 = this.areMaxSize.width;\r\n }\r\n if (this._cutCoords.y2 > this.areMaxSize.height) {\r\n this._cutCoords.y1 -= maintainSize\r\n ? this._cutCoords.y2 - this.areMaxSize.height\r\n : 0;\r\n this._cutCoords.y2 = this.areMaxSize.height;\r\n }\r\n }\r\n\r\n private onLoadBeginPreview = (_event) => {\r\n this.setProgressLoadCompleted(false);\r\n this.setProgressLoadPreview(true);\r\n };\r\n\r\n private onLoadEndPreview = (_event) => {\r\n this.originalImage.src = this.fileReader.result.toString();\r\n this.originalImage.onload = () => {\r\n setTimeout(() => {\r\n this.originalSize.width = this.originalImage.width;\r\n this.originalSize.height = this.originalImage.height;\r\n this.setProgressLoadCompleted(true);\r\n this.setProgressLoadPreview(false);\r\n this.initCut();\r\n }, 1000);\r\n };\r\n this._safeImgDataUrl = this.sanitizer.bypassSecurityTrustResourceUrl(\r\n this.fileReader.result.toString()\r\n );\r\n };\r\n\r\n private imagePreview(file: any) {\r\n const { name, type } = file;\r\n this._fileNameToCut = MonkeyUtils.truncate(name);\r\n this._fileTypeToCut = type;\r\n this.fileReader.readAsDataURL(file);\r\n }\r\n\r\n private handleCallback(\r\n progress: number,\r\n respUploaded: any,\r\n uploadError: string\r\n ) {\r\n this._progress = progress;\r\n this._uploadErrorMessage = uploadError;\r\n if (respUploaded) {\r\n this.savedCallback(respUploaded);\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n const { onHandleGetFilesReady } = this;\r\n this.fileReader.onloadstart = this.onLoadBeginPreview;\r\n this.fileReader.onload = this.onLoadEndPreview;\r\n\r\n onHandleGetFilesReady.subscribe((val: Function) => {\r\n this.savedCallback = val;\r\n const file = this.imageCutReady\r\n ? MonkeyUtils.handleBlobFile(\r\n this.imageCutReady,\r\n this._fileNameToCut,\r\n this._fileTypeToCut\r\n )\r\n : null;\r\n this.fileUpload(file, this.handleCallback.bind(this));\r\n });\r\n }\r\n\r\n startMove(\r\n event: any,\r\n moveType: string,\r\n position: string | null = null\r\n ): void {\r\n event.preventDefault();\r\n this.mouseMoves = {\r\n active: true,\r\n type: moveType,\r\n position,\r\n clientX: this.getClientX(event),\r\n clientY: this.getClientY(event),\r\n ...this._cutCoords,\r\n };\r\n }\r\n\r\n @HostListener('mousemove', ['$event'])\r\n @HostListener('touchmove', ['$event'])\r\n moveImg(event: any): void {\r\n if (this.mouseMoves && this.mouseMoves.active) {\r\n event.stopPropagation();\r\n event.preventDefault();\r\n if (this.mouseMoves.type === 'move') {\r\n this.move(event);\r\n this.checkMovesPosition(true);\r\n } else if (this.mouseMoves.type === 'resize') {\r\n this.resize(event);\r\n this.checkMovesPosition(false);\r\n }\r\n this.cdr.detectChanges();\r\n }\r\n }\r\n\r\n @HostListener('document:mouseup')\r\n @HostListener('document:touchend')\r\n moveStop(): void {\r\n if (this.mouseMoves && this.mouseMoves.active) {\r\n this.mouseMoves.active = false;\r\n this.cut();\r\n }\r\n }\r\n\r\n onHandleFileUploadFilesReady(files: any) {\r\n this.imagePreview(files);\r\n }\r\n\r\n onHandleImageChange() {\r\n this.imageCutReady = null;\r\n this._loadCompleted = false;\r\n this._loadPreview = false;\r\n this._fileNameToCut = '';\r\n this._fileTypeToCut = '';\r\n }\r\n\r\n onHandleImagePreview() {\r\n const file = MonkeyUtils.handleBlobFile(\r\n this.imageCutReady,\r\n this._fileNameToCut,\r\n this._fileTypeToCut\r\n );\r\n this.onHandlePreviewReady.next(file);\r\n }\r\n}\r\n\r\ninterface Dimensions {\r\n width: number;\r\n height: number;\r\n}\r\n\r\ninterface CutCoords {\r\n x1?: number;\r\n y1?: number;\r\n x2?: number;\r\n y2?: number;\r\n}\r\n\r\ninterface MouseMoves {\r\n active: boolean;\r\n type: string | null;\r\n position: string | null;\r\n x1?: number;\r\n y1?: number;\r\n x2?: number;\r\n y2?: number;\r\n clientX: number;\r\n clientY: number;\r\n}\r\n","import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core';\r\nimport { MonkeyImageCropComponent } from './image-crop.component';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { NgxMaskModule } from 'ngx-mask';\r\nimport { MonkeyFileUploadModule } from '../file-upload';\r\nimport { MonkeyButtonModule } from '../button';\r\n\r\n@NgModule({\r\n declarations: [MonkeyImageCropComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n NgxMaskModule.forRoot(),\r\n MonkeyButtonModule,\r\n MonkeyFileUploadModule,\r\n ],\r\n exports: [MonkeyImageCropComponent],\r\n schemas: [NO_ERRORS_SCHEMA],\r\n})\r\nexport class MonkeyImageCropModule {}\r\n","/**************************\r\n * Copyright Monkey Exchange. All Rights Reserved\r\n * This style guide was developed by Monkey Exchange Team\r\n * MIT Licence\r\n **************************/\r\nimport { Component, EventEmitter, Input, OnInit, ViewEncapsulation } from '@angular/core';\r\nimport { MonkeyModalConfig, MonkeyModalRefs, MonkeyStyleGuideModalService } from '../../core';\r\n\r\n@Component({\r\n selector: 'monkey-modal',\r\n template: `\r\n <mecx-monkey-modal\r\n [ngClass]=\"\r\n 'mecx-monkey-modal mecx-monkey-modal__' +\r\n (config?.color || 'theme') +\r\n ' mecx-monkey-modal__size-' +\r\n config?.size || 'md'\r\n \"\r\n >\r\n <div class=\"header\" *ngIf=\"config?.title\">\r\n <span class=\"h4\">\r\n {{ config?.title }}\r\n </span>\r\n <span class=\"close\" (click)=\"onClose()\" *ngIf=\"!config?.hideClose\"> x </span>\r\n </div>\r\n <div class=\"body\">\r\n <ng-content></ng-content>\r\n </div>\r\n <mecx-monkey-modal-footer\r\n [ngClass]=\"\r\n 'mecx-monkey-modal-footer mecx-monkey-modal-footer__' +\r\n (config?.color || 'theme') +\r\n ' mecx-monkey-modal-footer__size-' +\r\n (config?.size || 'md') +\r\n ' mecx-monkey-modal-footer__' +\r\n ((config?.size || 'md') === 'sm' ? 'column' : 'row')\r\n \"\r\n *ngIf=\"!config?.hideActions\"\r\n >\r\n <monkey-button\r\n [type]=\"config?.action?.cancel?.actionType || 'primary'\"\r\n [color]=\"config?.action?.cancel?.actionColor || config?.color || 'theme'\"\r\n (click)=\"_actionCancel()\"\r\n *ngIf=\"config?.action?.cancel\"\r\n >\r\n {{ config?.action?.cancel?.label }}\r\n </monkey-button>\r\n <monkey-button\r\n [type]=\"config?.action?.confirm?.actionType || 'primary'\"\r\n [color]=\"config?.action?.confirm?.actionColor || config?.color || 'theme'\"\r\n (click)=\"_actionConfirm()\"\r\n *ngIf=\"config?.action?.confirm\"\r\n >\r\n {{ config?.action?.confirm?.label }}\r\n </monkey-button>\r\n <monkey-button\r\n [type]=\"config?.action?.firstAction?.actionType || 'primary'\"\r\n [color]=\"config?.action?.firstAction?.actionColor || 'theme'\"\r\n [icon]=\"config?.action?.firstAction?.icon\"\r\n [iconPosition]=\"config?.action?.firstAction?.iconPosition\"\r\n (click)=\"_firstAction()\"\r\n *ngIf=\"config?.action?.firstAction\"\r\n >\r\n {{ config?.action?.firstAction?.label }}\r\n </monkey-button>\r\n <monkey-button\r\n [type]=\"config?.action?.secondAction?.actionType || 'primary'\"\r\n [color]=\"config?.action?.secondAction?.actionColor || 'theme'\"\r\n [icon]=\"config?.action?.secondAction?.icon\"\r\n [iconPosition]=\"config?.action?.secondAction?.iconPosition\"\r\n (click)=\"_secondAction()\"\r\n *ngIf=\"config?.action?.secondAction\"\r\n >\r\n {{ config?.action?.secondAction?.label }}\r\n </monkey-button>\r\n <monkey-button\r\n [type]=\"config?.action?.thirdAction?.actionType || 'primary'\"\r\n [color]=\"config?.action?.thirdAction?.actionColor || 'theme'\"\r\n [icon]=\"config?.action?.thirdAction?.icon\"\r\n [iconPosition]=\"config?.action?.thirdAction?.iconPosition\"\r\n (click)=\"_thirdAction()\"\r\n *ngIf=\"config?.action?.thirdAction\"\r\n >\r\n {{ config?.action?.thirdAction?.label }}\r\n </monkey-button>\r\n </mecx-monkey-modal-footer>\r\n </mecx-monkey-modal>\r\n <mecx-monkey-modal-background></mecx-monkey-modal-background>\r\n `,\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class MonkeyModalComponent implements OnInit {\r\n @Input() config: MonkeyModalConfig;\r\n @Input() modalRef: MonkeyModalRefs<this>;\r\n @Input() onHandleConfirm = new EventEmitter<any>();\r\n\r\n _actionCancel: Function;\r\n _actionConfirm: Function;\r\n _firstAction: Function;\r\n _secondAction: Function;\r\n _thirdAction: Function;\r\n\r\n constructor(private modalService: MonkeyStyleGuideModalService) {}\r\n\r\n ngOnInit() {\r\n this._actionCancel = () => {\r\n if (this.config?.action?.cancel?.action) {\r\n this.config?.action?.cancel?.action();\r\n }\r\n if (!this.config?.action?.cancel?.keepOnAction) {\r\n this.modalService.close(this.modalRef);\r\n }\r\n };\r\n this._actionConfirm = () => {\r\n if (this.config?.action?.confirm?.action) {\r\n this.config?.action?.confirm?.action();\r\n if (!this.config?.action?.confirm?.keepOnAction) {\r\n this.modalService.close(this.modalRef);\r\n }\r\n } else this.onHandleConfirm.next(null);\r\n };\r\n this._firstAction = () => {\r\n if (this.config?.action?.firstAction?.action) {\r\n this.config?.action?.firstAction?.action();\r\n if (!this.config?.action?.firstAction?.keepOnAction) {\r\n this.modalService.close(this.modalRef);\r\n }\r\n }\r\n };\r\n this._secondAction = () => {\r\n if (this.config?.action?.secondAction?.action) {\r\n this.config?.action?.secondAction?.action();\r\n if (!this.config?.action?.secondAction?.keepOnAction) {\r\n this.modalService.close(this.modalRef);\r\n }\r\n }\r\n };\r\n this._thirdAction = () => {\r\n if (this.config?.action?.thirdAction?.action) {\r\n this.config?.action?.thirdAction?.action();\r\n if (!this.config?.action?.thirdAction?.keepOnAction) {\r\n this.modalService.close(this.modalRef);\r\n }\r\n }\r\n };\r\n }\r\n\r\n onClose() {\r\n this.modalService.close(this.modalRef);\r\n }\r\n}\r\n","import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core';\r\nimport { MonkeyModalComponent } from './modal.component';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MonkeyButtonModule } from '../button';\r\n\r\n@NgModule({\r\n declarations: [MonkeyModalComponent],\r\n imports: [CommonModule, FormsModule, ReactiveFormsModule, MonkeyButtonModule],\r\n exports: [MonkeyModalComponent],\r\n schemas: [NO_ERRORS_SCHEMA],\r\n})\r\nexport class MonkeyModalModule {}\r\n","/**************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n **************************/\nimport {\n Component,\n ViewEncapsulation,\n Input,\n Output,\n EventEmitter,\n} from '@angular/core';\nimport { MonkeyUtils } from '../../core';\n\n@Component({\n selector: 'monkey-expansion',\n template: `\n <mecx-monkey-expansion\n [id]=\"_id\"\n [ngClass]=\"\n ('mecx-monkey-expansion mecx-monkey-expansion__' + color || 'theme') +\n (disabled ? ' disabled' : '')\n \"\n >\n <mecx-monkey-expansion-header *ngIf=\"!open\" (click)=\"onToggleExpand()\">\n <label>\n {{ label }}\n </label>\n <helper>\n {{ helperMessage }}\n </helper>\n <monkey-icon icon=\"arrow-down-16\" [color]=\"'#4B4A53'\"></monkey-icon>\n </mecx-monkey-expansion-header>\n <mecx-monkey-expansion-header\n class=\"open\"\n *ngIf=\"open\"\n (click)=\"onToggleExpand()\"\n >\n <label>\n {{ label }}\n </label>\n <helper>\n {{ helperMessage }}\n </helper>\n <monkey-icon icon=\"arrow-up-16\" [color]=\"'#4B4A53'\"></monkey-icon>\n </mecx-monkey-expansion-header>\n <mecx-monkey-expansion-body *ngIf=\"open\">\n <ng-content></ng-content>\n </mecx-monkey-expansion-body>\n </mecx-monkey-expansion>\n `,\n encapsulation: ViewEncapsulation.None,\n})\nexport class MonkeyExpansionComponent {\n @Input() label: string;\n @Input() helperMessage: string;\n @Input() color: string;\n @Input() disabled: boolean = false;\n @Input() open: boolean = false;\n @Output() onChange = new EventEmitter<any>();\n\n public _id: string = `mecx-expansion-${MonkeyUtils.getRandomString(10)}`;\n\n constructor() {}\n\n onToggleExpand() {\n if (!this.disabled) {\n this.open = !this.open;\n this.onChange.next(this.open);\n }\n }\n}\n","import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core';\nimport { MonkeyExpansionComponent } from './expansion.component';\nimport { CommonModule } from '@angular/common';\nimport { MonkeyIconModule } from '../icon';\n\n@NgModule({\n declarations: [MonkeyExpansionComponent],\n imports: [CommonModule, MonkeyIconModule],\n exports: [MonkeyExpansionComponent],\n schemas: [NO_ERRORS_SCHEMA],\n})\nexport class MonkeyExpansionModule {}\n","/**************************\r\n * Copyright Monkey Exchange. All Rights Reserved\r\n * This style guide was developed by Monkey Exchange Team\r\n * MIT Licence\r\n **************************/\r\nimport {\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n TemplateRef,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\nimport { MonkeyUtils } from '../../core';\r\n\r\n@Component({\r\n selector: 'monkey-table',\r\n template: `\r\n <mecx-monkey-table>\r\n <mecx-monkey-table-header>\r\n <monkey-checkbox\r\n [value]=\"onHandleSelectedAll()\"\r\n (click)=\"onHandleSelectAll($event)\"\r\n *ngIf=\"selectable\"\r\n ></monkey-checkbox>\r\n <span *ngFor=\"let header of headers\" [style.width]=\"_maxWidth + '%'\">\r\n {{ header }}\r\n </span>\r\n </mecx-monkey-table-header>\r\n <mecx-monkey-table-body>\r\n <mecx-monkey-table-body-row\r\n [class.selected]=\"onHandleSelected(row)\"\r\n *ngFor=\"let row of newDataSource\"\r\n >\r\n <monkey-checkbox\r\n [value]=\"onHandleSelected(row)\"\r\n (click)=\"onHandleSelect($event, row)\"\r\n *ngIf=\"selectable\"\r\n ></monkey-checkbox>\r\n <ng-container *ngTemplateOutlet=\"rowTemplate; context: { row: row.data }\"></ng-container>\r\n </mecx-monkey-table-body-row>\r\n </mecx-monkey-table-body>\r\n <mecx-monkey-table-body *ngIf=\"loading\">\r\n <mecx-monkey-table-body-row *ngFor=\"let loading of [1, 2, 3]\">\r\n <progress class=\"monkey-progress monkey-progress__grey-white\"></progress>\r\n </mecx-monkey-table-body-row>\r\n </mecx-monkey-table-body>\r\n </mecx-monkey-table>\r\n `,\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class MonkeyTableComponent implements OnInit, OnChanges {\r\n @Input() headers: string[];\r\n\r\n @Input() dataSource: any[];\r\n\r\n @Input() loading = false;\r\n\r\n @Input() rowTemplate: TemplateRef<any>;\r\n\r\n @Input() selectable = false;\r\n\r\n @Input() callbackValidation = null;\r\n\r\n @Input() callbackValidationAll = null;\r\n\r\n @Input() selectedList = null;\r\n \r\n @Input() functionId: Function;\r\n\r\n @Output() selection = new EventEmitter<any>();\r\n\r\n @Output() selected = new EventEmitter<any>();\r\n\r\n newDataSource: any[];\r\n\r\n private list = [];\r\n\r\n _maxWidth = 100;\r\n\r\n constructor(public elRef: ElementRef) {\r\n //not to do\r\n }\r\n\r\n private emitSelection() {\r\n this.selection.next(this.list);\r\n }\r\n\r\n private handleDataSource() {\r\n this.newDataSource = this.dataSource.map((data) => {\r\n let id = null;\r\n if(this.functionId){\r\n id = this.functionId(data);\r\n }else{\r\n id = MonkeyUtils.getRandomString(20);\r\n }\r\n return { id, data };\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n setTimeout(() => {\r\n this._maxWidth = 100 / this.headers?.length;\r\n this.elRef.nativeElement.style.setProperty('--mecx-table-column-width', `${this._maxWidth}%`);\r\n }, 0);\r\n this.handleDataSource();\r\n if (this.selectedList) {\r\n this.list = this.selectedList;\r\n this.emitSelection();\r\n }\r\n }\r\n\r\n ngOnChanges() {\r\n this.handleDataSource();\r\n }\r\n\r\n onHandleSelect(event: MouseEvent, row: any) {\r\n const { callbackValidation } = this;\r\n event.preventDefault();\r\n\r\n const continueValidation = () => {\r\n this.emitSelection();\r\n this.selected.next({ row, selected: this.onHandleSelected(row) });\r\n };\r\n\r\n if (this.onHandleSelected(row)) {\r\n this.list.splice(this.list.indexOf(row), 1);\r\n continueValidation();\r\n } else {\r\n if (callbackValidation) {\r\n callbackValidation(row, () => {\r\n this.list.push(row);\r\n continueValidation();\r\n });\r\n } else {\r\n continueValidation();\r\n }\r\n }\r\n }\r\n\r\n onHandleSelectAll(event: MouseEvent) {\r\n const { callbackValidationAll } = this;\r\n event.preventDefault();\r\n\r\n const continueValidation = () => {\r\n this.emitSelection();\r\n this.selected.next({ row: this.list });\r\n };\r\n\r\n if (!this.list.length) {\r\n if (callbackValidationAll) {\r\n callbackValidationAll(this.newDataSource, (newData = null) => {\r\n if (newData) {\r\n this.list = [...newData];\r\n } else {\r\n this.list = [...this.newDataSource];\r\n }\r\n continueValidation();\r\n });\r\n }\r\n } else {\r\n this.list = [];\r\n continueValidation();\r\n }\r\n }\r\n\r\n onHandleSelected(row: any) {\r\n return !!this.list.find((value) => value.id === row.id);\r\n }\r\n\r\n onHandleSelectedAll() {\r\n return this.list.length === this.newDataSource.length;\r\n }\r\n}\r\n","/**************************\r\n * Copyright Monkey Exchange. All Rights Reserved\r\n * This style guide was developed by Monkey Exchange Team\r\n * MIT Licence\r\n **************************/\r\nimport { Component, ViewEncapsulation, forwardRef } from '@angular/core';\r\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'monkey-table-column',\r\n template: ` <ng-content> </ng-content> `,\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => MonkeyTableColumnComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class MonkeyTableColumnComponent {}\r\n","import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MonkeyIconModule } from '../icon';\r\nimport { MonkeyCheckboxModule } from '../checkbox';\r\nimport { MonkeyTableComponent } from './table.component';\r\nimport { MonkeyTableColumnComponent } from './table-column.component';\r\n\r\n@NgModule({\r\n declarations: [MonkeyTableComponent, MonkeyTableColumnComponent],\r\n imports: [CommonModule, MonkeyIconModule, MonkeyCheckboxModule],\r\n exports: [MonkeyTableComponent, MonkeyTableColumnComponent],\r\n schemas: [NO_ERRORS_SCHEMA],\r\n})\r\nexport class MonkeyTableModule {}\r\n","/**************************\r\n * Copyright Monkey Exchange. All Rights Reserved\r\n * This style guide was developed by Monkey Exchange Team\r\n * MIT Licence\r\n **************************/\r\nimport {\r\n Component,\r\n ViewEncapsulation,\r\n Input,\r\n HostListener,\r\n Output,\r\n EventEmitter,\r\n} from '@angular/core';\r\nimport { MonkeyUtils } from '../../core';\r\n\r\n@Component({\r\n selector: 'monkey-toggle',\r\n template: `\r\n <mecx-monkey-toggle [id]=\"_id\" [ngClass]=\"{ disabled: disabled }\">\r\n <input type=\"checkbox\" [checked]=\"value\" />\r\n <div [ngClass]=\"'slider-' + value.toString()\"></div>\r\n </mecx-monkey-toggle>\r\n `,\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class MonkeyToggleComponent {\r\n @Input() value: boolean = false;\r\n @Input() disabled: boolean = false;\r\n @Output() onChange = new EventEmitter<any>();\r\n\r\n public _id: string = `mecx-toggle-${MonkeyUtils.getRandomString(10)}`;\r\n public _open = false;\r\n\r\n constructor() {}\r\n\r\n @HostListener('click', ['$event'])\r\n onClick(event: any) {\r\n event?.preventDefault();\r\n event?.stopPropagation();\r\n if (!this.disabled) {\r\n this.value = !this.value;\r\n this.onChange.next(this.value);\r\n }\r\n }\r\n}\r\n","import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core';\nimport { MonkeyToggleComponent } from './toggle.component';\nimport { CommonModule } from '@angular/common';\n\n@NgModule({\n declarations: [MonkeyToggleComponent],\n imports: [CommonModule],\n exports: [MonkeyToggleComponent],\n schemas: [NO_ERRORS_SCHEMA],\n})\nexport class MonkeyToggleModule {}\n","/**************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n **************************/\nimport {\n ChangeDetectorRef,\n Component,\n ContentChildren,\n EventEmitter,\n forwardRef,\n Input,\n OnInit,\n Output,\n QueryList,\n ViewEncapsulation,\n} from '@angular/core';\nimport { MonkeyOptionComponent } from '../option';\nimport { MonkeyUtils } from '../../core/utils';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'monkey-tab',\n template: `\n <mecx-tab-body [ngClass]=\"position\">\n <ng-content></ng-content>\n </mecx-tab-body>\n `,\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MonkeyTabComponent),\n multi: true,\n },\n ],\n})\nexport class MonkeyTabComponent implements OnInit {\n @Input() position: string = 'horizontal';\n @Output() onChange = new EventEmitter<any>();\n @Input() selected: any;\n\n @ContentChildren(MonkeyOptionComponent, { descendants: true })\n private options!: QueryList<MonkeyOptionComponent>;\n\n public _selected: MonkeyOptionComponent;\n public _id: string = `mecx-tab-${MonkeyUtils.getRandomString(10)}`;\n\n constructor(private cdRef: ChangeDetectorRef) {}\n\n private onHandleSelected() {\n const { _selected } = this;\n this.options.forEach((op) => {\n op.selected = _selected;\n });\n\n let scrollValue = 0;\n if (_selected) {\n const { _id } = this._selected;\n scrollValue = document.getElementById(_id).offsetTop;\n }\n this.cdRef.detectChanges();\n this.onChange.next({\n label: _selected.label,\n value: _selected.value,\n });\n }\n\n private validateOptions() {\n if (!this.options) return;\n this.options.forEach((op) => {\n op.onSelectOption = this.onSelectOption.bind(this);\n op.type = 'select';\n op.selected = null;\n if (`${op.value}`.toLowerCase() === `${this.selected}`.toLowerCase()) {\n this._selected = op;\n op.selected = op;\n }\n });\n }\n\n ngOnInit() {\n setTimeout(() => {\n this.validateOptions();\n }, 0);\n }\n\n onSelectOption(select: MonkeyOptionComponent) {\n this._selected = select;\n const { value } = select;\n this.selected = value;\n this.onHandleSelected();\n }\n}\n","import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core';\nimport { MonkeyTabComponent } from './tab.component';\nimport { CommonModule } from '@angular/common';\nimport { MonkeyIconModule } from '../icon';\nimport { MonkeyOptionModule } from '../option';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\n@NgModule({\n declarations: [MonkeyTabComponent],\n imports: [CommonModule, FormsModule, ReactiveFormsModule, MonkeyOptionModule],\n exports: [MonkeyTabComponent],\n schemas: [NO_ERRORS_SCHEMA],\n})\nexport class MonkeyTabModule {}\n","/**************************\r\n * Copyright Monkey Exchange. All Rights Reserved\r\n * This style guide was developed by Monkey Exchange Team\r\n * MIT Licence\r\n **************************/\r\nimport { Component, Input, OnInit, ViewEncapsulation } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'monkey-stepper',\r\n template: `\r\n <div [ngClass]=\"position\">\r\n <div class=\"mecx-stepper-body\" *ngFor=\"let step of _totalSteps\">\r\n <div\r\n class=\"mecx-stepper-option mecx-stepper-option__theme\"\r\n [ngClass]=\"{ selected: step === selectedStep, completed: step < selectedStep }\"\r\n ></div>\r\n </div>\r\n </div>\r\n `,\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class MonkeyStepperComponent implements OnInit {\r\n @Input() totalSteps: number = 0;\r\n @Input() selectedStep: number = 0;\r\n @Input() position: string = 'horizontal';\r\n\r\n public _totalSteps: number[];\r\n public _selectedStep: number;\r\n\r\n constructor() {}\r\n\r\n ngOnInit() {\r\n const { totalSteps, selectedStep } = this;\r\n this._totalSteps = new Array(Number(totalSteps)).fill(1).map((step: number, index: number) => {\r\n return step + index;\r\n });\r\n this._selectedStep = Number(selectedStep);\r\n }\r\n}\r\n","import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core';\r\nimport { MonkeyStepperComponent } from './stepper.component';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MonkeyIconModule } from '../icon';\r\n\r\n@NgModule({\r\n declarations: [MonkeyStepperComponent],\r\n imports: [CommonModule, MonkeyIconModule],\r\n exports: [MonkeyStepperComponent],\r\n schemas: [NO_ERRORS_SCHEMA],\r\n})\r\nexport class MonkeyStepperModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { MonkeyStyleGuideService } from './core/services/monkey-style-guide.service';\r\nimport { MonkeyStyleGuideSettingsService } from './core/services/settings';\r\nimport { MonkeyStyleGuideThemeSettingsService } from './core/services/settings/monkey-style-guide-theme-settings.service';\r\nimport { MonkeyStyleGuideSnackbarService } from './core/services/snackbar';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@NgModule({\r\n imports: [HttpClientModule, CommonModule],\r\n providers: [\r\n MonkeyStyleGuideService,\r\n MonkeyStyleGuideSettingsService,\r\n MonkeyStyleGuideThemeSettingsService,\r\n MonkeyStyleGuideSnackbarService,\r\n ],\r\n})\r\nexport class MonkeyStyleGuideModule {}\r\n","/**************************\r\n * Copyright Monkey Exchange. All Rights Reserved\r\n * This style guide was developed by Monkey Exchange Team\r\n * MIT Licence \r\n**************************/\r\nexport * from './lib/components';\r\nexport * from './lib/core';\r\nexport * from './lib/monkey-style-guide.module';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {MonkeyStyleGuideService as ɵa} from './lib/core/services/monkey-style-guide.service';\nexport {MonkeyStyleGuideSettingsService as ɵb} from './lib/core/services/settings';\nexport {MonkeyStyleGuideThemeSettingsService as ɵc} from './lib/core/services/settings/monkey-style-guide-theme-settings.service';\nexport {MonkeyStyleGuideSnackbarService as ɵd} from './lib/core/services/snackbar';"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"monkey-style-guide.js","sources":["../../../projects/monkey-style-guide/src/lib/core/services/monkey-style-guide.service.ts","../../../projects/monkey-style-guide/src/lib/core/services/settings/monkey-style-guide-theme-settings.service.ts","../../../projects/monkey-style-guide/src/lib/core/services/settings/monkey-style-guide-settings.service.ts","../../../projects/monkey-style-guide/src/lib/core/utils/utils.ts","../../../projects/monkey-style-guide/src/lib/core/services/snackbar/mokey-style-guide-snackbar.service.ts","../../../projects/monkey-style-guide/src/lib/core/services/modal/monkey-style-guide-modal.service.ts","../../../projects/monkey-style-guide/src/lib/core/services/modal/monkey-style-guide-modal-fixed.service.ts","../../../projects/monkey-style-guide/src/lib/components/badge/badge.component.ts","../../../projects/monkey-style-guide/src/lib/components/badge/badge.module.ts","../../../projects/monkey-style-guide/src/lib/components/button/button.component.ts","../../../projects/monkey-style-guide/src/lib/components/button/button-dropdown.component.ts","../../../projects/monkey-style-guide/src/lib/components/button/button-avatar.component.ts","../../../projects/monkey-style-guide/src/lib/components/icon/icon.component.ts","../../../projects/monkey-style-guide/src/lib/components/icon/icons.component.ts","../../../projects/monkey-style-guide/src/lib/components/icon/icon.module.ts","../../../projects/monkey-style-guide/src/lib/components/button/button.module.ts","../../../projects/monkey-style-guide/src/lib/components/input/input.component.ts","../../../projects/monkey-style-guide/src/lib/components/input/input-filter.component.ts","../../../projects/monkey-style-guide/src/lib/components/input/input.module.ts","../../../projects/monkey-style-guide/src/lib/components/option/option.component.ts","../../../projects/monkey-style-guide/src/lib/components/option/option.module.ts","../../../projects/monkey-style-guide/src/lib/components/select/select.component.ts","../../../projects/monkey-style-guide/src/lib/components/select/select-multiple.component.ts","../../../projects/monkey-style-guide/src/lib/components/select/select-search.component.ts","../../../projects/monkey-style-guide/src/lib/components/select/select-filter.component.ts","../../../projects/monkey-style-guide/src/lib/components/select/select.module.ts","../../../projects/monkey-style-guide/src/lib/components/checkbox/checkbox.component.ts","../../../projects/monkey-style-guide/src/lib/components/checkbox/checkbox.module.ts","../../../projects/monkey-style-guide/src/lib/components/radiobutton/radiobutton.component.ts","../../../projects/monkey-style-guide/src/lib/components/radiobutton/radiobutton.module.ts","../../../projects/monkey-style-guide/src/lib/components/wizard/wizard.component.ts","../../../projects/monkey-style-guide/src/lib/components/wizard/wizard.module.ts","../../../projects/monkey-style-guide/src/lib/components/file-upload/file-upload.component.ts","../../../projects/monkey-style-guide/src/lib/components/file-upload/file-upload.module.ts","../../../projects/monkey-style-guide/src/lib/components/image-crop/image-crop.component.ts","../../../projects/monkey-style-guide/src/lib/components/image-crop/image-crop.module.ts","../../../projects/monkey-style-guide/src/lib/components/modal/modal.component.ts","../../../projects/monkey-style-guide/src/lib/components/modal/modal.module.ts","../../../projects/monkey-style-guide/src/lib/components/expansion/expansion.component.ts","../../../projects/monkey-style-guide/src/lib/components/expansion/expansion.module.ts","../../../projects/monkey-style-guide/src/lib/components/table/table.component.ts","../../../projects/monkey-style-guide/src/lib/components/table/table-column.component.ts","../../../projects/monkey-style-guide/src/lib/components/table/table.module.ts","../../../projects/monkey-style-guide/src/lib/components/toggle/toggle.component.ts","../../../projects/monkey-style-guide/src/lib/components/toggle/toggle.module.ts","../../../projects/monkey-style-guide/src/lib/components/tab/tab.component.ts","../../../projects/monkey-style-guide/src/lib/components/tab/tab.module.ts","../../../projects/monkey-style-guide/src/lib/components/stepper/stepper.component.ts","../../../projects/monkey-style-guide/src/lib/components/stepper/stepper.module.ts","../../../projects/monkey-style-guide/src/lib/monkey-style-guide.module.ts","../../../projects/monkey-style-guide/src/public-api.ts","../../../projects/monkey-style-guide/src/monkey-style-guide.ts"],"sourcesContent":["import { Injectable } from \"@angular/core\";\r\nimport { HttpClient } from \"@angular/common/http\";\r\nimport { Observable } from \"rxjs\";\r\n\r\n@Injectable()\r\nexport class MonkeyStyleGuideService {\r\n constructor(private http: HttpClient) { }\r\n\r\n public get<T>(url: string, options?: T): Observable<T> {\r\n return this.http.get<T>(url, options);\r\n }\r\n}","/**************************\r\n * Copyright Monkey Exchange. All Rights Reserved\r\n * This style guide was developed by Monkey Exchange Team\r\n * MIT Licence\r\n **************************/\r\nimport { Injectable, Inject } from '@angular/core';\r\nimport { MonkeyStyleSettings, MonkeyStyleFontSettings } from '../../interfaces';\r\nimport { DOCUMENT } from '@angular/common';\r\n\r\n@Injectable()\r\nexport class MonkeyStyleGuideThemeSettingsService {\r\n constructor(@Inject(DOCUMENT) private doc: any) {}\r\n\r\n private applyColors(settings: MonkeyStyleSettings): any {\r\n const colors: any = settings.colors;\r\n\r\n let bucketColors = null;\r\n\r\n ['theme', 'error', 'warning', 'success', 'question'].forEach((color) => {\r\n Object.entries(colors[color] as any).forEach(\r\n ([paletteKey, paletteValue]) => {\r\n if (paletteKey === 'contrast') {\r\n Object.entries(paletteValue).forEach(\r\n ([paletteContrastKey, paletteContrastValue]) => {\r\n document.documentElement.style.setProperty(\r\n `--mecx-color-${color}-contrast-${paletteContrastKey}`,\r\n `${paletteContrastValue}`\r\n );\r\n bucketColors = {\r\n ...bucketColors,\r\n [`--mecx-color-${color}-contrast-${paletteContrastKey}`]: `${paletteContrastValue}`,\r\n };\r\n }\r\n );\r\n } else {\r\n document.documentElement.style.setProperty(\r\n `--mecx-color-${color}-${paletteKey}`,\r\n `${paletteValue}`\r\n );\r\n bucketColors = {\r\n ...bucketColors,\r\n [`--mecx-color-${color}-${paletteKey}`]: `${paletteValue}`,\r\n };\r\n }\r\n }\r\n );\r\n });\r\n\r\n return bucketColors;\r\n }\r\n\r\n private applyFonts(settings: MonkeyStyleSettings) {\r\n const font: MonkeyStyleFontSettings = {\r\n url:\r\n 'https://fonts.googleapis.com/css2?family=Work+Sans:ital,wght@0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,400;1,500;1,600;1,700;1,800;1,900&display=swap',\r\n name: 'Work Sans',\r\n ...settings.font,\r\n };\r\n\r\n document.documentElement.style.setProperty(\r\n `--mecx-font-name`,\r\n `${font.name}`\r\n );\r\n\r\n let link: HTMLLinkElement = this.doc.createElement('link');\r\n link.setAttribute('rel', 'stylesheet');\r\n link.setAttribute('type', 'text/css');\r\n link.setAttribute('href', `${font.url}`);\r\n this.doc.head.appendChild(link);\r\n }\r\n\r\n private applyTheme(settings: MonkeyStyleSettings) {\r\n const { theme } = settings;\r\n document.title = `${theme.title}`;\r\n\r\n let link: HTMLLinkElement = this.doc.createElement('link');\r\n link.setAttribute('rel', 'icon');\r\n link.setAttribute('type', 'image/x-icon');\r\n link.setAttribute('href', `${theme.favicon}`);\r\n this.doc.head.appendChild(link);\r\n }\r\n\r\n public apply(config: MonkeyStyleSettings, callback?: Function) {\r\n const bucketColors = this.applyColors(config);\r\n this.applyFonts(config);\r\n this.applyTheme(config);\r\n setTimeout(() => {\r\n if (callback)\r\n callback({\r\n bucketColors,\r\n });\r\n }, 500);\r\n }\r\n}\r\n","/**************************\r\n * Copyright Monkey Exchange. All Rights Reserved\r\n * This style guide was developed by Monkey Exchange Team\r\n * MIT Licence \r\n**************************/\r\nimport { Injectable } from '@angular/core';\r\nimport { MonkeyStyleGuideService } from '../monkey-style-guide.service';\r\nimport { MonkeyStyleSettings } from '../../interfaces';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { throwError, BehaviorSubject, Observable } from 'rxjs';\r\nimport { MonkeyStyleGuideThemeSettingsService } from './monkey-style-guide-theme-settings.service';\r\n\r\n@Injectable()\r\nexport class MonkeyStyleGuideSettingsService {\r\n\r\n private readonly settingsSubject$: BehaviorSubject<MonkeyStyleSettings> = new BehaviorSubject({});\r\n\r\n constructor(\r\n private monkeySGService: MonkeyStyleGuideService,\r\n private monkeySGThemeConfigService: MonkeyStyleGuideThemeSettingsService\r\n ) { }\r\n\r\n public boostrap(settingsUrl: string, callback?: Function) {\r\n const { monkeySGService, settingsSubject$, monkeySGThemeConfigService } = this;\r\n\r\n monkeySGService.get<any>(settingsUrl || `assets/monkey-style-guide-settings.json`).subscribe((_: MonkeyStyleSettings) => {\r\n monkeySGThemeConfigService.apply(_, callback);\r\n settingsSubject$.next(_);\r\n }, (err: HttpErrorResponse) => {\r\n console.error('Monkey-style-guide-settings not found!');\r\n throwError(err)\r\n });\r\n }\r\n\r\n public boostrapWithData(data: any, callback?: Function) {\r\n const { settingsSubject$, monkeySGThemeConfigService } = this;\r\n monkeySGThemeConfigService.apply(data, callback);\r\n settingsSubject$.next(data);\r\n }\r\n\r\n public settings(): Observable<any> {\r\n return this.settingsSubject$.asObservable();\r\n }\r\n}","export class MonkeyUtils {\r\n public static persistNullEmptyUndefined(tp: any): boolean {\r\n return tp !== null && tp !== undefined && tp !== '';\r\n }\r\n\r\n public static getDocumentType(doc: string) {\r\n if (!doc) return '';\r\n return doc.length <= 11 ? 'CPF' : 'CNPJ';\r\n }\r\n\r\n public static getDocumentMask(type: string) {\r\n if (type === 'CPF') return '000.000.000-00';\r\n return '00.000.000/0000-00';\r\n }\r\n\r\n public static formatDocumentWithMask(doc: string, withType?: boolean): string {\r\n if (!doc) return doc;\r\n let formated: string = '';\r\n if (doc.length === 14)\r\n formated = doc\r\n .replace(/^(\\d{2})(\\d)/, '$1.$2')\r\n .replace(/^(\\d{2})\\.(\\d{3})(\\d)/, '$1.$2.$3')\r\n .replace(/\\.(\\d{3})(\\d)/, '.$1/$2')\r\n .replace(/(\\d{4})(\\d)/, '$1-$2');\r\n else\r\n formated = doc\r\n .replace(/^(\\d{3})(\\d)/, '$1.$2')\r\n .replace(/^(\\d{3})\\.(\\d{3})(\\d)/, '$1.$2.$3')\r\n .replace(/\\.(\\d{3})(\\d)/, '.$1-$2');\r\n\r\n return `${withType ? `${this.getDocumentType(doc)}:` : ''} ${formated}`;\r\n }\r\n\r\n public static cutFirstLastName(value: string, tp: string = 'first') {\r\n const split = value?.trim()?.split(' ');\r\n\r\n if (tp === 'first') return split[0];\r\n return split?.splice(1, split.length)?.join(' ');\r\n }\r\n\r\n public static isCPFCNPJValid(document: any): boolean {\r\n document = document.replace(/[^\\d]/g, '');\r\n if (document.length === 11) {\r\n let base = [10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0];\r\n for (var i = 0, n = 0; i < 9; n += document[i] * base[i++]);\r\n if (document[9] != ((n %= 11) <= 1 ? 0 : 11 - n)) {\r\n return false;\r\n }\r\n base = [11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0];\r\n for (var i = 0, n = 0; i <= 9; n += document[i] * base[i++]);\r\n if (document[10] != ((n %= 11) <= 1 ? 0 : 11 - n)) {\r\n return false;\r\n }\r\n return true;\r\n } else if (document.length === 14 || /0{14}/.test(document)) {\r\n let base = [6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2];\r\n for (var i = 0, n = 0; i < 12; n += document[i] * base[++i]);\r\n if (document[12] != ((n %= 11) < 2 ? 0 : 11 - n)) {\r\n return false;\r\n }\r\n\r\n for (var i = 0, n = 0; i <= 12; n += document[i] * base[i++]);\r\n if (document[13] != ((n %= 11) < 2 ? 0 : 11 - n)) {\r\n return false;\r\n }\r\n\r\n return true;\r\n } else return false;\r\n }\r\n\r\n public static isValidUrl(txt: string): boolean {\r\n const regex = new RegExp(\r\n /^(http:\\/\\/www\\.|https:\\/\\/www\\.|http:\\/\\/|https:\\/\\/)+[a-z0-9]+([\\-\\.]{1}[a-z0-9]+)*\\.[a-z]{2,10}(:[0-9]{1,5})?(\\/.*)?$/gm\r\n );\r\n return regex.test(txt);\r\n }\r\n\r\n public static isValidZipCode(zipCode: string): boolean {\r\n return `${this.handleOnlyNumbers(zipCode)}`.length === 8;\r\n }\r\n\r\n public static getRandomString(len: number, charSet?: string): string {\r\n charSet = charSet || 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\r\n let randomString: string = Array.apply(null, Array(len))\r\n .map(function () {\r\n return charSet.charAt(Math.floor(Math.random() * charSet.length));\r\n })\r\n .join('');\r\n return randomString;\r\n }\r\n\r\n public static handleOnlyNumbers(value: any) {\r\n if (!value) return null;\r\n return value.replace(new RegExp(/[^0-9]/g), '');\r\n }\r\n\r\n public static handleOnlyAlphaNumeric(value: any) {\r\n if (!value) return '';\r\n return value.replace(new RegExp(/[^0-9A-Za-z]/, 'g'), '');\r\n }\r\n\r\n public static capitalize(value: string) {\r\n return `${value.charAt(0).toUpperCase()}${value.slice(1)}`;\r\n }\r\n\r\n public static formatZipCode(zipCode: string): string {\r\n if (!zipCode) return zipCode;\r\n const formated: string = zipCode\r\n .replace(/^(\\d{5})(\\d)/, '$1-$2')\r\n .replace(/\\.(\\d{3})(\\d)/, '.$1-$2');\r\n\r\n return `${formated}`;\r\n }\r\n\r\n public static formatFileSize(size: number): string {\r\n let units = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\r\n let l = 0;\r\n while (size >= 1024 && ++l) {\r\n size = size / 1024;\r\n }\r\n return size.toFixed(size < 10 && l > 0 ? 1 : 0) + ' ' + units[l];\r\n }\r\n\r\n public static sufflue(data: any[]): any[] {\r\n for (let i = data.length - 1; i > 0; i--) {\r\n const j = Math.floor(Math.random() * i);\r\n const temp = data[i];\r\n data[i] = data[j];\r\n data[j] = temp;\r\n }\r\n return data;\r\n }\r\n\r\n public static handleBlobFile(theBlob: any, fileName: string, fileType: string) {\r\n function blobToFile(theBlob, fileName) {\r\n const b = theBlob;\r\n b.lastModifiedDate = new Date();\r\n b.name = fileName;\r\n return b;\r\n }\r\n\r\n let file: any;\r\n if (!(navigator as any).msSaveBlob) {\r\n file = new File([theBlob], fileName, { type: fileType });\r\n } else {\r\n file = new Blob([theBlob], { type: fileType });\r\n file = blobToFile(file, fileName);\r\n }\r\n return file;\r\n }\r\n\r\n public static truncate(text: string, maxLength: number = 25): string {\r\n const midChar = '...';\r\n if (!text) return midChar;\r\n if (text && text.length <= maxLength) return text;\r\n\r\n const left = Math.ceil(maxLength / 2);\r\n const right = text.length - left + 1;\r\n\r\n return `${text.substr(0, left)} ${midChar} ${text.substring(right)}`;\r\n }\r\n\r\n public static isLocalhost() {\r\n const { href } = window?.location;\r\n if (!href) return false;\r\n return href?.search('localhost') >= 0;\r\n }\r\n}\r\n","/**************************\r\n * Copyright Monkey Exchange. All Rights Reserved\r\n * This style guide was developed by Monkey Exchange Team\r\n * MIT Licence\r\n **************************/\r\nimport { Location } from '@angular/common';\r\nimport { Injectable } from '@angular/core';\r\nimport { MonkeyUtils } from '../../utils';\r\n\r\nconst icons = {\r\n success: `<svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <circle cx=\"8\" cy=\"8\" r=\"7\" fill=\"#00875A\"/>\r\n <path d=\"M11 5L7 11L4 8.27273\" stroke=\"white\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>`,\r\n warning: `<svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M6.85433 2.63819L1.17957 12.0114C1.06257 12.2118 1.00066 12.4391 1.00001 12.6706C0.99935 12.9021 1.05997 13.1297 1.17583 13.3308C1.2917 13.532 1.45877 13.6995 1.66042 13.8169C1.86207 13.9343 2.09128 13.9975 2.32524 14H13.6748C13.9087 13.9975 14.1379 13.9343 14.3396 13.8169C14.5412 13.6995 14.7083 13.532 14.8242 13.3308C14.94 13.1297 15.0006 12.9021 15 12.6706C14.9993 12.4391 14.9374 12.2118 14.8204 12.0114L9.14567 2.63819C9.02623 2.44337 8.85806 2.2823 8.65738 2.17051C8.45671 2.05873 8.2303 2 8 2C7.7697 2 7.54329 2.05873 7.34262 2.17051C7.14194 2.2823 6.97377 2.44337 6.85433 2.63819Z\" fill=\"#EFA30E\"/>\r\n <path d=\"M8 6V10\" stroke=\"#000F1E\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M8 12H8.00667\" stroke=\"#000F1E\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>`,\r\n error: `<svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M5.102 1H10.898L15 5.102V10.898L10.898 15H5.102L1 10.898V5.102L5.102 1Z\" fill=\"#FA3838\"/>\r\n <path d=\"M8 5.33333V7.99999\" stroke=\"#F5FAFF\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M8 10.6667H8.00667\" stroke=\"#F5FAFF\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>`,\r\n question: `<svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M8.00004 14.6668C11.6819 14.6668 14.6667 11.6821 14.6667 8.00016C14.6667 4.31826 11.6819 1.3335 8.00004 1.3335C4.31814 1.3335 1.33337 4.31826 1.33337 8.00016C1.33337 11.6821 4.31814 14.6668 8.00004 14.6668Z\" stroke=\"#8D38FA\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M6.05994 5.99989C6.21667 5.55434 6.52604 5.17863 6.93324 4.93931C7.34044 4.7 7.8192 4.61252 8.28472 4.69237C8.75024 4.77222 9.17248 5.01424 9.47665 5.37558C9.78083 5.73691 9.94731 6.19424 9.9466 6.66656C9.9466 7.99989 7.9466 8.66656 7.9466 8.66656V9.49989\" stroke=\"#8D38FA\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M8 11.3335H8.00667\" stroke=\"#8D38FA\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>`,\r\n loading: `<svg class=\"circular-loader\" viewBox=\"25 25 50 50\" >\r\n <circle class=\"loader-path\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" stroke=\"#575757\" stroke-width=\"5\" />\r\n </svg>`,\r\n};\r\n\r\ninterface SnackbarActionConfig {\r\n style: 'link' | 'button';\r\n confirm?: {\r\n label: string;\r\n action: Function;\r\n };\r\n cancel?: {\r\n label: string;\r\n action: Function;\r\n };\r\n}\r\n\r\ninterface SnackbarConfig {\r\n title?: string;\r\n message?: string;\r\n type?: 'theme' | 'warning' | 'success' | 'error' | 'question' | 'loading';\r\n duration?: number;\r\n horizontalPosition?: 'center' | 'left' | 'right';\r\n verticalPosition?: 'top' | 'bottom';\r\n action?: SnackbarActionConfig;\r\n keepOpen?: boolean;\r\n blinkTab?: boolean;\r\n}\r\n\r\nclass SnackbarElements {\r\n elements: {\r\n element?: HTMLDivElement;\r\n interval?: any;\r\n }[] = [];\r\n lastScrollTop: number = 15;\r\n\r\n constructor() {}\r\n\r\n add(element: HTMLDivElement, duration: number, callback: Function, verticalPosition: string) {\r\n if (this.elements && this.elements.length === 0) {\r\n this.lastScrollTop = 15;\r\n }\r\n element.style[verticalPosition] = `${this.lastScrollTop}px`;\r\n\r\n const interval = setInterval(() => {\r\n callback();\r\n }, duration);\r\n\r\n this.elements.push({\r\n element: element,\r\n interval: interval,\r\n });\r\n document.body.appendChild(element);\r\n this.lastScrollTop = this.lastScrollTop + document.getElementById(element.id).offsetHeight + 15;\r\n }\r\n\r\n remove(removeId: string) {\r\n const element = this.elements.find(({ element: { id } }) => id === removeId);\r\n if (element) {\r\n this.elements =\r\n this.elements.filter(({ element: { id } }) => id !== element.element.id) || [];\r\n element.element.className = `${element.element.className} fade-out hide`;\r\n setTimeout(() => {\r\n this.lastScrollTop =\r\n this.lastScrollTop - (document.getElementById(removeId).offsetHeight + 15);\r\n document.body.removeChild(element.element);\r\n clearInterval(element.interval);\r\n }, 1000);\r\n }\r\n }\r\n\r\n removeAll() {\r\n this.elements.forEach((element) => {\r\n document.body.removeChild(element.element);\r\n clearInterval(element.interval);\r\n });\r\n this.lastScrollTop = 15;\r\n this.elements = [];\r\n }\r\n}\r\n\r\n@Injectable()\r\nexport class MonkeyStyleGuideSnackbarService {\r\n private config: SnackbarConfig;\r\n private snackbarElement: HTMLDivElement;\r\n private snackbarElements: SnackbarElements;\r\n private snackbarBodyElement: HTMLDivElement;\r\n private snackbarBodyMessageElement: HTMLDivElement;\r\n private oldTitle: string;\r\n private timeoutBlinkTab = null;\r\n\r\n constructor(private locationRouter: Location) {\r\n this.snackbarElements = new SnackbarElements();\r\n this.locationRouter.onUrlChange(() => {\r\n this.closeAll();\r\n });\r\n }\r\n\r\n private stopBlinking() {\r\n if (this.oldTitle) {\r\n document.title = this.oldTitle;\r\n if (this.snackbarElements.elements.length <= 0) {\r\n clearInterval(this.timeoutBlinkTab);\r\n }\r\n }\r\n }\r\n\r\n private blinkTab() {\r\n this.oldTitle = this.oldTitle || document.title;\r\n\r\n const startBlinking = () => {\r\n let message = `(${this.snackbarElements.elements.length}) ${this.oldTitle}`;\r\n document.title = document.title === message ? this.oldTitle : message;\r\n };\r\n\r\n if (this.timeoutBlinkTab) clearInterval(this.timeoutBlinkTab);\r\n this.timeoutBlinkTab = setInterval(startBlinking, 1000);\r\n }\r\n\r\n private init(id: string) {\r\n const { config } = this;\r\n let { horizontalPosition, verticalPosition, type } = config;\r\n horizontalPosition = horizontalPosition || 'center';\r\n verticalPosition = verticalPosition || 'top';\r\n\r\n this.snackbarElement = document.createElement('div');\r\n this.snackbarElement.id = `${id}`;\r\n this.snackbarElement.className = `mecx-snackbar-container ${horizontalPosition}-${verticalPosition} ${type}`;\r\n }\r\n\r\n private buildBody() {\r\n this.snackbarBodyElement = document.createElement('div');\r\n this.snackbarBodyElement.className = 'mecx-snackbar-container-body';\r\n\r\n this.snackbarBodyMessageElement = document.createElement('div');\r\n this.snackbarBodyMessageElement.className = 'mecx-snackbar-container-body-content';\r\n }\r\n\r\n private buildTitleAndMessage() {\r\n let {\r\n config: { title, message, action },\r\n } = this;\r\n const titleElement = document.createElement('div');\r\n titleElement.innerText = `${title}`;\r\n titleElement.className = 'mecx-snackbar-container-body-content-title';\r\n\r\n const messageElement = document.createElement('div');\r\n messageElement.innerText = `${message}`;\r\n messageElement.className = `mecx-snackbar-container-body-content-message ${\r\n action ? 'with-action' : ''\r\n }`;\r\n\r\n this.snackbarBodyMessageElement.appendChild(titleElement);\r\n this.snackbarBodyMessageElement.appendChild(messageElement);\r\n }\r\n\r\n private buildAction(id: string) {\r\n const {\r\n config: { type, action },\r\n } = this;\r\n if (action) {\r\n const { style, confirm, cancel } = action;\r\n const actionElement = document.createElement('div');\r\n\r\n let actionCancelElement = null,\r\n actionConfirmElement = null;\r\n if (style === 'link') {\r\n if (cancel) {\r\n actionCancelElement = document.createElement('a');\r\n actionCancelElement.href = 'javascript:void(0)';\r\n actionCancelElement.innerText = cancel.label;\r\n }\r\n\r\n if (confirm) {\r\n actionConfirmElement = document.createElement('a');\r\n actionConfirmElement.href = 'javascript:void(0)';\r\n actionConfirmElement.innerText = confirm.label;\r\n }\r\n } else {\r\n if (cancel) {\r\n actionCancelElement = document.createElement('button');\r\n actionCancelElement.className = `mecx-button-tertiary mecx-button-tertiary__${type}`;\r\n actionCancelElement.innerText = cancel.label;\r\n }\r\n\r\n if (confirm) {\r\n actionConfirmElement = document.createElement('button');\r\n actionConfirmElement.className = `mecx-button-primary mecx-button-primary__${type}`;\r\n actionConfirmElement.innerText = confirm.label;\r\n }\r\n }\r\n\r\n if (actionCancelElement) {\r\n actionCancelElement.addEventListener('click', () => {\r\n this.close(id);\r\n cancel.action();\r\n });\r\n\r\n actionElement.appendChild(actionCancelElement);\r\n }\r\n\r\n if (actionConfirmElement) {\r\n actionConfirmElement.addEventListener('click', () => {\r\n this.close(id);\r\n confirm.action();\r\n });\r\n actionElement.appendChild(actionConfirmElement);\r\n }\r\n\r\n actionElement.className = 'mecx-snackbar-container-body-content-action';\r\n this.snackbarBodyMessageElement.appendChild(actionElement);\r\n }\r\n }\r\n\r\n private buildIcon() {\r\n let {\r\n config: { type },\r\n } = this;\r\n\r\n const snackbarBodyIconElement = document.createElement('div');\r\n snackbarBodyIconElement.className = 'mecx-snackbar-container-body-icon';\r\n snackbarBodyIconElement.innerHTML = `${icons[type]}`;\r\n this.snackbarBodyElement.appendChild(snackbarBodyIconElement);\r\n }\r\n\r\n private finish(id: string) {\r\n let {\r\n config: { duration, keepOpen, verticalPosition },\r\n } = this;\r\n duration = duration || 4000;\r\n const { snackbarBodyElement, snackbarBodyMessageElement, snackbarElement } = this;\r\n snackbarBodyElement.appendChild(snackbarBodyMessageElement);\r\n snackbarElement.appendChild(snackbarBodyElement);\r\n\r\n this.snackbarElements.add(\r\n snackbarElement,\r\n duration,\r\n () => (!keepOpen ? this.close(id) : null),\r\n verticalPosition\r\n );\r\n }\r\n\r\n private close(id: string) {\r\n const { snackbarElements } = this;\r\n snackbarElements.remove(id);\r\n this.stopBlinking();\r\n }\r\n\r\n public show(config: SnackbarConfig) {\r\n this.config = config;\r\n const id = `monkey-snackbar-${MonkeyUtils.getRandomString(30)}`;\r\n this.closeAll();\r\n this.init(id);\r\n this.buildBody();\r\n this.buildTitleAndMessage();\r\n this.buildAction(id);\r\n this.buildIcon();\r\n this.finish(id);\r\n if (config?.blinkTab) {\r\n this.blinkTab();\r\n }\r\n }\r\n\r\n public closeAll() {\r\n const { snackbarElements } = this;\r\n snackbarElements.removeAll();\r\n }\r\n}\r\n","import {\n ApplicationRef,\n ComponentFactoryResolver,\n EmbeddedViewRef,\n Injectable,\n Injector,\n} from '@angular/core';\nimport { Location } from '@angular/common';\nimport { MonkeyUtils } from '../../utils';\nimport { MonkeyModalComponent } from '../../../components/modal';\nimport { MonkeyModalConfig, MonkeyModalRefs } from '../../interfaces';\n\n@Injectable()\nexport class MonkeyStyleGuideModalService {\n private dialogComponentRef: MonkeyModalRefs<MonkeyModalComponent>[] = [];\n\n constructor(\n private resolver: ComponentFactoryResolver,\n private appRef: ApplicationRef,\n private injector: Injector,\n private locationRouter: Location\n ) {\n this.locationRouter.onUrlChange(() => {\n this.closeAll();\n });\n }\n\n open(\n component: any,\n config: MonkeyModalConfig\n ): MonkeyModalRefs<MonkeyModalComponent> {\n const componentFactory = this.resolver.resolveComponentFactory(component);\n const componentRef: any = componentFactory.create(this.injector);\n this.appRef.attachView(componentRef.hostView);\n\n const refRet = {\n id: `mecx-modal-${MonkeyUtils.getRandomString(30)}`,\n component: componentRef,\n };\n\n componentRef.instance.config = config;\n componentRef.instance.modalRef = refRet;\n\n const domElem = (componentRef.hostView as EmbeddedViewRef<any>)\n .rootNodes[0] as HTMLElement;\n document.body.appendChild(domElem);\n document.body.classList.add('mecx-monkey-open');\n\n this.dialogComponentRef.push(refRet);\n return refRet;\n }\n\n close(ref: MonkeyModalRefs<MonkeyModalComponent>) {\n this.appRef.detachView(ref.component.hostView);\n ref.component.destroy();\n this.dialogComponentRef = this.dialogComponentRef.filter(\n ({ id }) => id !== ref.id\n );\n if (this.dialogComponentRef.length === 0) {\n document.body.classList.remove('mecx-monkey-open');\n }\n }\n\n closeAll() {\n this.dialogComponentRef.forEach(\n (val: MonkeyModalRefs<MonkeyModalComponent>) => {\n this.appRef.detachView(val.component.hostView);\n val.component.destroy();\n }\n );\n this.dialogComponentRef = [];\n document.body.classList.remove('mecx-monkey-open');\n }\n}\n","import {\n ApplicationRef,\n ComponentFactoryResolver,\n EmbeddedViewRef,\n Injectable,\n Injector,\n} from '@angular/core';\nimport { Location } from '@angular/common';\nimport { MonkeyUtils } from '../../utils';\nimport { MonkeyModalComponent } from '../../../components/modal';\nimport { MonkeyModalConfig, MonkeyModalRefs } from '../../interfaces';\n\n@Injectable()\nexport class MonkeyStyleGuideModalFixedService {\n private dialogComponentRef: MonkeyModalRefs<MonkeyModalComponent>[] = [];\n\n constructor(\n private resolver: ComponentFactoryResolver,\n private appRef: ApplicationRef,\n private injector: Injector\n ) {\n //not to do\n }\n\n open(\n component: any,\n config: MonkeyModalConfig\n ): MonkeyModalRefs<MonkeyModalComponent> {\n this.closeAll();\n const componentFactory = this.resolver.resolveComponentFactory(component);\n const componentRef: any = componentFactory.create(this.injector);\n this.appRef.attachView(componentRef.hostView);\n\n const refRet = {\n id: `mecx-modal-${MonkeyUtils.getRandomString(30)}`,\n component: componentRef,\n };\n\n componentRef.instance.config = config;\n componentRef.instance.modalRef = refRet;\n\n const domElem = (componentRef.hostView as EmbeddedViewRef<any>)\n .rootNodes[0] as HTMLElement;\n document.body.appendChild(domElem);\n document.body.classList.add('mecx-monkey-open');\n\n this.dialogComponentRef.push(refRet);\n return refRet;\n }\n\n close(ref: MonkeyModalRefs<MonkeyModalComponent>) {\n this.appRef.detachView(ref.component.hostView);\n ref.component.destroy();\n this.dialogComponentRef = this.dialogComponentRef.filter(\n ({ id }) => id !== ref.id\n );\n if (this.dialogComponentRef.length === 0) {\n document.body.classList.remove('mecx-monkey-open');\n }\n }\n\n closeAll() {\n this.dialogComponentRef.forEach(\n (val: MonkeyModalRefs<MonkeyModalComponent>) => {\n this.appRef.detachView(val.component.hostView);\n val.component.destroy();\n }\n );\n this.dialogComponentRef = [];\n document.body.classList.remove('mecx-monkey-open');\n }\n}\n","/**************************\r\n * Copyright Monkey Exchange. All Rights Reserved\r\n * This style guide was developed by Monkey Exchange Team\r\n * MIT Licence\r\n **************************/\r\nimport { Component, ViewEncapsulation, Input } from '@angular/core';\r\nimport { MonkeyUtils } from '../../core';\r\n\r\n@Component({\r\n selector: 'monkey-badge',\r\n template: `\r\n <mecx-monkey-badge [id]=\"_id\" [ngClass]=\"{ pulse: pulseOn }\">\r\n <div class=\"badge-count\">\r\n {{ count }}\r\n </div>\r\n </mecx-monkey-badge>\r\n `,\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class MonkeyBadgeComponent {\r\n @Input() count = 0;\r\n @Input() pulseOn = false;\r\n\r\n public _id: string = `mecx-badge-${MonkeyUtils.getRandomString(10)}`;\r\n}\r\n","import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core';\nimport { MonkeyBadgeComponent } from './badge.component';\nimport { CommonModule } from '@angular/common';\n\n@NgModule({\n declarations: [MonkeyBadgeComponent],\n imports: [CommonModule],\n exports: [MonkeyBadgeComponent],\n schemas: [NO_ERRORS_SCHEMA],\n})\nexport class MonkeyBadgeModule {}\n","/**************************\r\n * Copyright Monkey Exchange. All Rights Reserved\r\n * This style guide was developed by Monkey Exchange Team\r\n * MIT Licence\r\n **************************/\r\nimport {\r\n Component,\r\n ViewEncapsulation,\r\n Input,\r\n OnInit,\r\n HostListener,\r\n ElementRef,\r\n} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'monkey-button',\r\n template: `\r\n <button\r\n [ngClass]=\"\r\n 'mecx-button-' +\r\n type +\r\n ' mecx-button-' +\r\n type +\r\n '__' +\r\n color +\r\n (icon ? ' with-icon' : ' no-icon') +\r\n ' ' +\r\n size\r\n \"\r\n type=\"button\"\r\n [disabled]=\"disabled\"\r\n >\r\n <monkey-icon\r\n [icon]=\"icon\"\r\n [color]=\"\r\n disabled\r\n ? '#999999'\r\n : type === 'filter'\r\n ? '#4b4a53'\r\n : type === 'nav-active'\r\n ? 'theme'\r\n : 'theme-800'\r\n \"\r\n [contrast]=\"_useContrast\"\r\n [disabled]=\"disabled\"\r\n *ngIf=\"iconPosition === 'left' && icon\"\r\n ></monkey-icon>\r\n {{ label }}\r\n <ng-content></ng-content>\r\n <monkey-icon\r\n [icon]=\"icon\"\r\n [color]=\"\r\n disabled\r\n ? '#999999'\r\n : type === 'filter'\r\n ? '#4b4a53'\r\n : type === 'nav-active'\r\n ? 'theme'\r\n : 'theme-800'\r\n \"\r\n [disabled]=\"disabled\"\r\n *ngIf=\"iconPosition === 'right' && icon\"\r\n ></monkey-icon>\r\n </button>\r\n `,\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class MonkeyButtonComponent implements OnInit {\r\n @Input() label: string;\r\n @Input() icon: string;\r\n @Input() iconPosition: string = 'left';\r\n @Input() type: string;\r\n @Input() color: string;\r\n @Input() disabled: boolean = false;\r\n @Input() size: 'sm' | 'md' | 'lg' = 'md';\r\n\r\n _useContrast = false;\r\n constructor() {}\r\n\r\n ngOnInit() {\r\n const { type } = this;\r\n if (type === 'primary') {\r\n this._useContrast = true;\r\n }\r\n }\r\n\r\n @HostListener('click', ['$event'])\r\n onClick(event: any) {\r\n if (this.disabled) {\r\n event.stopPropagation();\r\n event.preventDefault();\r\n event.stopImmediatePropagation();\r\n }\r\n }\r\n}\r\n","/**************************\r\n * Copyright Monkey Exchange. All Rights Reserved\r\n * This style guide was developed by Monkey Exchange Team\r\n * MIT Licence\r\n **************************/\r\nimport {\r\n Component,\r\n ViewEncapsulation,\r\n Input,\r\n HostListener,\r\n OnInit,\r\n ChangeDetectorRef,\r\n} from '@angular/core';\r\nimport { MonkeyUtils } from '../../core/utils';\r\n\r\n@Component({\r\n selector: 'monkey-button-dropdown',\r\n template: `\r\n <mecx-button-dropdown\r\n [ngClass]=\"{\r\n trigger: type === 'filled',\r\n open: _opened\r\n }\"\r\n >\r\n <mecx-button-dropdown__trigger>\r\n <ng-container *ngTemplateOutlet=\"label\"></ng-container>\r\n <monkey-icon\r\n icon=\"arrow-down-16\"\r\n [color]=\"'#4B4A53'\"\r\n *ngIf=\"!_opened && type === 'filled'\"\r\n ></monkey-icon>\r\n <monkey-icon\r\n icon=\"arrow-up-16\"\r\n [color]=\"'#4B4A53'\"\r\n *ngIf=\"_opened && type === 'filled'\"\r\n ></monkey-icon>\r\n </mecx-button-dropdown__trigger>\r\n </mecx-button-dropdown>\r\n <mecx-button-dropdown-backdrop *ngIf=\"_opened\" (click)=\"close()\">\r\n </mecx-button-dropdown-backdrop>\r\n <mecx-button-dropdown [ngClass]=\"{ open: _opened }\">\r\n <mecx-button-dropdown-options>\r\n <ng-content></ng-content>\r\n </mecx-button-dropdown-options>\r\n </mecx-button-dropdown>\r\n `,\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class MonkeyButtonDropdownComponent {\r\n @Input() label: any;\r\n @Input() type: 'unfilled' | 'filled' = 'filled';\r\n @Input() listenClicks = true;\r\n\r\n public _customClass = 'trigger';\r\n public _opened: boolean = false;\r\n public _id: string = `mecx-button-dropdown-${MonkeyUtils.getRandomString(10)}`;\r\n public _disabled: boolean = false;\r\n\r\n constructor(private cdr: ChangeDetectorRef) {\r\n //not to do\r\n }\r\n\r\n @HostListener('document:click', ['$event'])\r\n clickout(event: any) {\r\n this.close();\r\n }\r\n\r\n @HostListener('click', ['$event'])\r\n clickon(event: any) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n if (this._opened && this.listenClicks) {\r\n this.close();\r\n } else {\r\n this._opened = true;\r\n this.cdr.detectChanges();\r\n }\r\n }\r\n\r\n close() {\r\n setTimeout(() => {\r\n this._opened = false;\r\n this.cdr.detectChanges();\r\n }, 20);\r\n }\r\n}\r\n","/**************************\r\n * Copyright Monkey Exchange. All Rights Reserved\r\n * This style guide was developed by Monkey Exchange Team\r\n * MIT Licence\r\n **************************/\r\nimport { Component, ViewEncapsulation, Input, OnInit } from '@angular/core';\r\nimport { MonkeyUtils } from '../../core/utils';\r\n\r\n@Component({\r\n selector: 'monkey-button-avatar',\r\n template: `\r\n <div\r\n [ngClass]=\"'mecx-button-avatar mecx-button-avatar__' + type + ' mecx-button-avatar__' + size\"\r\n >\r\n <img [src]=\"img\" *ngIf=\"img\" />\r\n <span *ngIf=\"!img && _handledValue\">{{ _handledValue }}</span>\r\n </div>\r\n `,\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class MonkeyButtonAvatarComponent implements OnInit {\r\n @Input() label: string;\r\n @Input() type: string;\r\n @Input() size: string;\r\n @Input() img: string;\r\n\r\n public _id = `mecx-button-avatar-${MonkeyUtils.getRandomString(10)}`;\r\n public _disabled = false;\r\n public _handledValue = '';\r\n\r\n ngOnInit() {\r\n const { label } = this;\r\n this._handledValue = label?.charAt(0);\r\n }\r\n}\r\n","/**************************\r\n * Copyright Monkey Exchange. All Rights Reserved\r\n * This style guide was developed by Monkey Exchange Team\r\n * MIT Licence\r\n **************************/\r\nimport {\r\n Component,\r\n ViewEncapsulation,\r\n OnInit,\r\n Input,\r\n OnChanges,\r\n HostListener,\r\n} from '@angular/core';\r\nimport { MonkeyStyleGuideSettingsService } from '../../core/services';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { MonkeyUtils } from '../../core/utils';\r\n\r\n@Component({\r\n selector: 'monkey-icon',\r\n template: `\r\n <monkey-icon-arrow-down\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'arrow-down'\"\r\n ></monkey-icon-arrow-down>\r\n <monkey-icon-arrow-left\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'arrow-left'\"\r\n ></monkey-icon-arrow-left>\r\n <monkey-icon-arrow-right\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'arrow-right'\"\r\n ></monkey-icon-arrow-right>\r\n <monkey-icon-arrow-up\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'arrow-up'\"\r\n ></monkey-icon-arrow-up>\r\n <monkey-icon-bank\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'bank'\"\r\n ></monkey-icon-bank>\r\n <monkey-icon-bell\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'bell'\"\r\n ></monkey-icon-bell>\r\n <monkey-icon-book\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'book'\"\r\n ></monkey-icon-book>\r\n <monkey-icon-box\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'box'\"\r\n ></monkey-icon-box>\r\n\r\n <monkey-icon-calendar\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'calendar'\"\r\n ></monkey-icon-calendar>\r\n <monkey-icon-camera\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'camera'\"\r\n ></monkey-icon-camera>\r\n <monkey-icon-chat\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'chat'\"\r\n ></monkey-icon-chat>\r\n <monkey-icon-check-circle-out\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'check-circle-out'\"\r\n ></monkey-icon-check-circle-out>\r\n <monkey-icon-check-circle\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'check-circle'\"\r\n ></monkey-icon-check-circle>\r\n <monkey-icon-check-grey\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'check-grey'\"\r\n >\r\n </monkey-icon-check-grey>\r\n <monkey-icon-check-white\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'check-white'\"\r\n >\r\n </monkey-icon-check-white>\r\n <monkey-icon-check\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'check'\"\r\n ></monkey-icon-check>\r\n <monkey-icon-clipboard\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'clipboard'\"\r\n ></monkey-icon-clipboard>\r\n <monkey-icon-clock\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'clock'\"\r\n ></monkey-icon-clock>\r\n <monkey-icon-close\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'close'\"\r\n ></monkey-icon-close>\r\n <monkey-icon-cnpj\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'cnpj'\"\r\n ></monkey-icon-cnpj>\r\n <monkey-icon-codepen\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'codepen'\"\r\n ></monkey-icon-codepen>\r\n <monkey-icon-company-name\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'company-name'\"\r\n ></monkey-icon-company-name>\r\n <monkey-icon-contract\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'contract'\"\r\n ></monkey-icon-contract>\r\n <monkey-icon-delete\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'delete'\"\r\n ></monkey-icon-delete>\r\n <monkey-icon-document\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'document'\"\r\n ></monkey-icon-document>\r\n <monkey-icon-dollar-sign\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'dollar-sign'\"\r\n ></monkey-icon-dollar-sign>\r\n <monkey-icon-domain\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'domain'\"\r\n ></monkey-icon-domain>\r\n <monkey-icon-download\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'download'\"\r\n ></monkey-icon-download>\r\n <monkey-icon-edit\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'edit'\"\r\n ></monkey-icon-edit>\r\n <monkey-icon-email\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'email'\"\r\n ></monkey-icon-email>\r\n <monkey-icon-empty-doc\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'empty-doc'\"\r\n ></monkey-icon-empty-doc>\r\n <monkey-icon-error\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'error'\"\r\n ></monkey-icon-error>\r\n <monkey-icon-eye-closed\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'eye-closed'\"\r\n ></monkey-icon-eye-closed>\r\n <monkey-icon-eye-open\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'eye-open'\"\r\n ></monkey-icon-eye-open>\r\n <monkey-icon-filter\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'filter'\"\r\n ></monkey-icon-filter>\r\n <monkey-icon-grid\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'grid'\"\r\n ></monkey-icon-grid>\r\n <monkey-icon-help\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'help'\"\r\n ></monkey-icon-help>\r\n <monkey-icon-hexagon\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'hexagon'\"\r\n ></monkey-icon-hexagon>\r\n <monkey-icon-home\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'home'\"\r\n ></monkey-icon-home>\r\n <monkey-icon-image\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'image'\"\r\n ></monkey-icon-image>\r\n <monkey-icon-list\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'list'\"\r\n ></monkey-icon-list>\r\n <monkey-icon-location-pin\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'location-pin'\"\r\n ></monkey-icon-location-pin>\r\n <monkey-icon-login\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'login'\"\r\n ></monkey-icon-login>\r\n <monkey-icon-logout\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'logout'\"\r\n ></monkey-icon-logout>\r\n <monkey-icon-menu\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'menu'\"\r\n ></monkey-icon-menu>\r\n <monkey-icon-money-sign\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'money-sign'\"\r\n ></monkey-icon-money-sign>\r\n <monkey-icon-more\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'more'\"\r\n ></monkey-icon-more>\r\n <monkey-icon-offered\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'offered'\"\r\n ></monkey-icon-offered>\r\n <monkey-icon-password\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'password'\"\r\n ></monkey-icon-password>\r\n <monkey-icon-people\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'people'\"\r\n ></monkey-icon-people>\r\n <monkey-icon-percent\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'percent'\"\r\n ></monkey-icon-percent>\r\n <monkey-icon-person-document\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'person-document'\"\r\n ></monkey-icon-person-document>\r\n <monkey-icon-person-sad\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'person-sad'\"\r\n ></monkey-icon-person-sad>\r\n <monkey-icon-phone\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'phone'\"\r\n ></monkey-icon-phone>\r\n <monkey-icon-pork\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'pork'\"\r\n ></monkey-icon-pork>\r\n <monkey-icon-refresh\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'refresh'\"\r\n ></monkey-icon-refresh>\r\n <monkey-icon-repeat\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'repeat'\"\r\n ></monkey-icon-repeat>\r\n <monkey-icon-search\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'search'\"\r\n ></monkey-icon-search>\r\n <monkey-icon-second-warning\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'second-warning'\"\r\n ></monkey-icon-second-warning>\r\n <monkey-icon-settings\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'settings'\"\r\n ></monkey-icon-settings>\r\n <monkey-icon-trash\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'trash'\"\r\n ></monkey-icon-trash>\r\n <monkey-icon-upload\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'upload'\"\r\n ></monkey-icon-upload>\r\n <monkey-icon-user\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'user'\"\r\n ></monkey-icon-user>\r\n <monkey-icon-wallet\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'wallet'\"\r\n ></monkey-icon-wallet>\r\n <monkey-icon-warning\r\n [fillColor]=\"_fillColor\"\r\n [id]=\"_id\"\r\n [size]=\"_size\"\r\n *ngIf=\"_icon === 'warning'\"\r\n ></monkey-icon-warning>\r\n `,\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class MonkeyIconComponent implements OnInit, OnChanges {\r\n @Input() icon: string;\r\n\r\n @Input() color: string = 'theme';\r\n\r\n @Input() contrast = false;\r\n\r\n @Input() disabled: boolean = false;\r\n\r\n _fillColor = '#000000';\r\n\r\n _icon = '';\r\n\r\n _id = `mecx-icon-${MonkeyUtils.getRandomString(10)}`;\r\n\r\n _size: string;\r\n\r\n private unsubscribeAll: Subject<any>;\r\n\r\n constructor(private monkeyStyleGuideSettingsService: MonkeyStyleGuideSettingsService) {\r\n this.unsubscribeAll = new Subject();\r\n }\r\n\r\n private handleIcon() {\r\n const { icon, color, contrast, monkeyStyleGuideSettingsService } = this;\r\n const handledIcon = icon?.substr(0, icon?.lastIndexOf('-'));\r\n this._icon = handledIcon;\r\n this._size = icon?.substr(icon?.lastIndexOf('-') + 1, icon?.length);\r\n\r\n monkeyStyleGuideSettingsService\r\n .settings()\r\n .pipe(takeUntil(this.unsubscribeAll))\r\n .subscribe((settings: any) => {\r\n if (settings && JSON.stringify(settings) !== '{}') {\r\n const { colors } = settings;\r\n\r\n let handledColor = '';\r\n if ((color || '').search('#') < 0) {\r\n let handledMainColor = '',\r\n handledSecondColor = '';\r\n handledMainColor = color.split('-')[0];\r\n if (!handledMainColor) handledMainColor = 'theme';\r\n handledSecondColor = color.split('-')[1];\r\n if (!handledSecondColor) handledSecondColor = 'main';\r\n\r\n handledColor = colors[handledMainColor][handledSecondColor];\r\n if (contrast) {\r\n handledColor = colors[handledMainColor]['contrast'][handledSecondColor];\r\n }\r\n } else {\r\n handledColor = color;\r\n }\r\n\r\n this._fillColor = handledColor;\r\n }\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.handleIcon();\r\n }\r\n\r\n ngOnChanges() {\r\n this.handleIcon();\r\n }\r\n\r\n @HostListener('click', ['$event'])\r\n onClick(event: any) {\r\n if (this.disabled) {\r\n event.stopPropagation();\r\n event.preventDefault();\r\n event.stopImmediatePropagation();\r\n }\r\n }\r\n}\r\n","/**************************\r\n * Copyright Monkey Exchange. All Rights Reserved\r\n * This style guide was developed by Monkey Exchange Team\r\n * MIT Licence\r\n **************************/\r\nimport { Component, ViewEncapsulation, Input, Directive } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[baseIcon]',\r\n})\r\nclass BaseIconComponent {\r\n @Input() fillColor: string;\r\n\r\n @Input() size: string;\r\n}\r\n\r\n@Component({\r\n selector: 'monkey-icon-arrow-down',\r\n templateUrl: `../../../../assets/icons/arrow-down.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconArrowDownComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-arrow-left',\r\n templateUrl: `../../../../assets/icons/arrow-left.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconArrowLeftComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-arrow-right',\r\n templateUrl: `../../../../assets/icons/arrow-right.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconArrowRightComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-arrow-up',\r\n templateUrl: `../../../../assets/icons/arrow-up.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconArrowUpComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-bank',\r\n templateUrl: `../../../../assets/icons/bank.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconBankComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-bell',\r\n templateUrl: `../../../../assets/icons/bell.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconBellComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-book',\r\n templateUrl: `../../../../assets/icons/book.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconBookComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-box',\r\n templateUrl: `../../../../assets/icons/box.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconBoxComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-calendar',\r\n templateUrl: `../../../../assets/icons/calendar.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconCalendarComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-camera',\r\n templateUrl: `../../../../assets/icons/camera.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconCameraComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-chat',\r\n templateUrl: `../../../../assets/icons/chat.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconChatComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-check-circle-out',\r\n templateUrl: `../../../../assets/icons/check-circle-out.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconCheckCircleOutComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-check-circle',\r\n templateUrl: `../../../../assets/icons/check-circle.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconCheckCircleComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-check-grey',\r\n templateUrl: '../../../../assets/icons/check-grey.svg',\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconCheckGreyComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-check-white',\r\n templateUrl: `../../../../assets/icons/check-white.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconCheckWhiteComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-check',\r\n templateUrl: `../../../../assets/icons/check.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconCheckComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-clipboard',\r\n templateUrl: `../../../../assets/icons/clipboard.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconClipboardComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-clock',\r\n templateUrl: `../../../../assets/icons/clock.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconClockComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-close',\r\n templateUrl: `../../../../assets/icons/close.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconCloseComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-cnpj',\r\n templateUrl: `../../../../assets/icons/cnpj.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconCNPJComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-codepen',\r\n templateUrl: `../../../../assets/icons/codepen.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconCodepenComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-company-name',\r\n templateUrl: `../../../../assets/icons/company-name.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconCompanyNameComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-contract',\r\n templateUrl: `../../../../assets/icons/contract.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconContractComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-delete',\r\n templateUrl: `../../../../assets/icons/delete.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconDeleteComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-document',\r\n templateUrl: `../../../../assets/icons/document.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconDocumentComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-dollar-sign',\r\n templateUrl: `../../../../assets/icons/dollar-sign.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconDollarSignComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-domain',\r\n templateUrl: `../../../../assets/icons/domain.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconDomainComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-download',\r\n templateUrl: `../../../../assets/icons/download.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconDownloadComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-edit',\r\n templateUrl: `../../../../assets/icons/edit.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconEditComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-email',\r\n templateUrl: `../../../../assets/icons/email.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconEmailComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-empty-doc',\r\n templateUrl: `../../../../assets/icons/empty-doc.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconEmptyDocComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-error',\r\n templateUrl: `../../../../assets/icons/error.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconErrorComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-eye-closed',\r\n templateUrl: `../../../../assets/icons/eye-closed.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconEyeClosedComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-eye-open',\r\n templateUrl: `../../../../assets/icons/eye-open.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconEyeOpenComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-filter',\r\n templateUrl: `../../../../assets/icons/filter.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconFilterComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-grid',\r\n templateUrl: `../../../../assets/icons/grid.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconGridComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-help',\r\n templateUrl: `../../../../assets/icons/help.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconHelpComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-hexagon',\r\n templateUrl: `../../../../assets/icons/hexagon.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconHexagonComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-home',\r\n templateUrl: `../../../../assets/icons/home.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconHomeComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-image',\r\n templateUrl: `../../../../assets/icons/image.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconImageComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-list',\r\n templateUrl: `../../../../assets/icons/list.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconListComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-location-pin',\r\n templateUrl: `../../../../assets/icons/location-pin.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconLocationPinComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-login',\r\n templateUrl: `../../../../assets/icons/login.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconLoginComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-logout',\r\n templateUrl: `../../../../assets/icons/logout.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconLogoutComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-menu',\r\n templateUrl: `../../../../assets/icons/menu.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconMenuComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-money-sign',\r\n templateUrl: `../../../../assets/icons/money-sign.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconMoneySignComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-more',\r\n templateUrl: `../../../../assets/icons/more.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconMoreComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-offered',\r\n templateUrl: `../../../../assets/icons/offered.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconOfferedComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-password',\r\n templateUrl: `../../../../assets/icons/password.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconPasswordComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-people',\r\n templateUrl: `../../../../assets/icons/people.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconPeopleComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-percent',\r\n templateUrl: `../../../../assets/icons/percent.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconPercentComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-person-document',\r\n templateUrl: `../../../../assets/icons/person-document.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconPersonDocumentComponent extends BaseIconComponent {}\r\n@Component({\r\n selector: 'monkey-icon-person-sad',\r\n templateUrl: `../../../../assets/icons/person-sad.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconPersonSadComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-phone',\r\n templateUrl: `../../../../assets/icons/phone.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconPhoneComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-pork',\r\n templateUrl: `../../../../assets/icons/pork.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconPorkComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-refresh',\r\n templateUrl: `../../../../assets/icons/refresh.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconRefreshComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-repeat',\r\n templateUrl: `../../../../assets/icons/repeat.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconRepeatComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-search',\r\n templateUrl: `../../../../assets/icons/search.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconSearchComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-second-warning',\r\n templateUrl: `../../../../assets/icons/second-warning.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconSecondWarningComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-settings',\r\n templateUrl: `../../../../assets/icons/settings.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconSettingsComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-trash',\r\n templateUrl: `../../../../assets/icons/trash.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconTrashComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-upload',\r\n templateUrl: `../../../../assets/icons/upload.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconUploadComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-user',\r\n templateUrl: `../../../../assets/icons/user.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconUserComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-wallet',\r\n templateUrl: `../../../../assets/icons/wallet.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconWalletComponent extends BaseIconComponent {}\r\n\r\n@Component({\r\n selector: 'monkey-icon-warning',\r\n templateUrl: `../../../../assets/icons/warning.svg`,\r\n styleUrls: ['./icons.component.scss'],\r\n})\r\nexport class MonkeyIconWarningComponent extends BaseIconComponent {}\r\n","import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MonkeyIconComponent } from './icon.component';\r\nimport {\r\n MonkeyIconArrowDownComponent,\r\n MonkeyIconArrowLeftComponent,\r\n MonkeyIconArrowRightComponent,\r\n MonkeyIconArrowUpComponent,\r\n MonkeyIconBankComponent,\r\n MonkeyIconBellComponent,\r\n MonkeyIconBookComponent,\r\n MonkeyIconBoxComponent,\r\n MonkeyIconCalendarComponent,\r\n MonkeyIconCameraComponent,\r\n MonkeyIconChatComponent,\r\n MonkeyIconCheckCircleOutComponent,\r\n MonkeyIconCheckCircleComponent,\r\n MonkeyIconCheckGreyComponent,\r\n MonkeyIconCheckWhiteComponent,\r\n MonkeyIconCheckComponent,\r\n MonkeyIconClipboardComponent,\r\n MonkeyIconClockComponent,\r\n MonkeyIconCloseComponent,\r\n MonkeyIconCNPJComponent,\r\n MonkeyIconCodepenComponent,\r\n MonkeyIconCompanyNameComponent,\r\n MonkeyIconContractComponent,\r\n MonkeyIconDeleteComponent,\r\n MonkeyIconDocumentComponent,\r\n MonkeyIconDollarSignComponent,\r\n MonkeyIconDomainComponent,\r\n MonkeyIconDownloadComponent,\r\n MonkeyIconEditComponent,\r\n MonkeyIconEmailComponent,\r\n MonkeyIconEmptyDocComponent,\r\n MonkeyIconErrorComponent,\r\n MonkeyIconEyeClosedComponent,\r\n MonkeyIconEyeOpenComponent,\r\n MonkeyIconFilterComponent,\r\n MonkeyIconGridComponent,\r\n MonkeyIconHelpComponent,\r\n MonkeyIconHexagonComponent,\r\n MonkeyIconHomeComponent,\r\n MonkeyIconImageComponent,\r\n MonkeyIconListComponent,\r\n MonkeyIconLocationPinComponent,\r\n MonkeyIconLoginComponent,\r\n MonkeyIconLogoutComponent,\r\n MonkeyIconMenuComponent,\r\n MonkeyIconMoneySignComponent,\r\n MonkeyIconMoreComponent,\r\n MonkeyIconOfferedComponent,\r\n MonkeyIconPasswordComponent,\r\n MonkeyIconPeopleComponent,\r\n MonkeyIconPercentComponent,\r\n MonkeyIconPersonDocumentComponent,\r\n MonkeyIconPersonSadComponent,\r\n MonkeyIconPhoneComponent,\r\n MonkeyIconPorkComponent,\r\n MonkeyIconRefreshComponent,\r\n MonkeyIconRepeatComponent,\r\n MonkeyIconSearchComponent,\r\n MonkeyIconSecondWarningComponent,\r\n MonkeyIconSettingsComponent,\r\n MonkeyIconTrashComponent,\r\n MonkeyIconUploadComponent,\r\n MonkeyIconUserComponent,\r\n MonkeyIconWalletComponent,\r\n MonkeyIconWarningComponent,\r\n} from './icons.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n MonkeyIconComponent,\r\n MonkeyIconArrowDownComponent,\r\n MonkeyIconArrowLeftComponent,\r\n MonkeyIconArrowRightComponent,\r\n MonkeyIconArrowUpComponent,\r\n MonkeyIconBankComponent,\r\n MonkeyIconBellComponent,\r\n MonkeyIconBookComponent,\r\n MonkeyIconBoxComponent,\r\n MonkeyIconCalendarComponent,\r\n MonkeyIconCameraComponent,\r\n MonkeyIconChatComponent,\r\n MonkeyIconCheckCircleOutComponent,\r\n MonkeyIconCheckCircleComponent,\r\n MonkeyIconCheckGreyComponent,\r\n MonkeyIconCheckWhiteComponent,\r\n MonkeyIconCheckComponent,\r\n MonkeyIconClipboardComponent,\r\n MonkeyIconClockComponent,\r\n MonkeyIconCloseComponent,\r\n MonkeyIconCNPJComponent,\r\n MonkeyIconCodepenComponent,\r\n MonkeyIconCompanyNameComponent,\r\n MonkeyIconContractComponent,\r\n MonkeyIconDeleteComponent,\r\n MonkeyIconDocumentComponent,\r\n MonkeyIconDollarSignComponent,\r\n MonkeyIconDomainComponent,\r\n MonkeyIconDownloadComponent,\r\n MonkeyIconEditComponent,\r\n MonkeyIconEmailComponent,\r\n MonkeyIconEmptyDocComponent,\r\n MonkeyIconErrorComponent,\r\n MonkeyIconEyeClosedComponent,\r\n MonkeyIconEyeOpenComponent,\r\n MonkeyIconFilterComponent,\r\n MonkeyIconGridComponent,\r\n MonkeyIconHelpComponent,\r\n MonkeyIconHexagonComponent,\r\n MonkeyIconHomeComponent,\r\n MonkeyIconImageComponent,\r\n MonkeyIconListComponent,\r\n MonkeyIconLocationPinComponent,\r\n MonkeyIconLoginComponent,\r\n MonkeyIconLogoutComponent,\r\n MonkeyIconMenuComponent,\r\n MonkeyIconMoneySignComponent,\r\n MonkeyIconMoreComponent,\r\n MonkeyIconOfferedComponent,\r\n MonkeyIconPasswordComponent,\r\n MonkeyIconPeopleComponent,\r\n MonkeyIconPercentComponent,\r\n MonkeyIconPersonDocumentComponent,\r\n MonkeyIconPersonSadComponent,\r\n MonkeyIconPhoneComponent,\r\n MonkeyIconPorkComponent,\r\n MonkeyIconRefreshComponent,\r\n MonkeyIconRepeatComponent,\r\n MonkeyIconSearchComponent,\r\n MonkeyIconSecondWarningComponent,\r\n MonkeyIconSettingsComponent,\r\n MonkeyIconTrashComponent,\r\n MonkeyIconUploadComponent,\r\n MonkeyIconUserComponent,\r\n MonkeyIconWalletComponent,\r\n MonkeyIconWarningComponent,\r\n ],\r\n imports: [CommonModule],\r\n exports: [MonkeyIconComponent],\r\n schemas: [NO_ERRORS_SCHEMA],\r\n})\r\nexport class MonkeyIconModule {}\r\n","import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core';\r\nimport { MonkeyButtonComponent } from './button.component';\r\nimport { MonkeyButtonDropdownComponent } from './button-dropdown.component';\r\nimport { MonkeyButtonAvatarComponent } from './button-avatar.component';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MonkeyIconModule } from '../icon';\r\n\r\n@NgModule({\r\n declarations: [\r\n MonkeyButtonComponent,\r\n MonkeyButtonDropdownComponent,\r\n MonkeyButtonAvatarComponent,\r\n ],\r\n imports: [CommonModule, FormsModule, ReactiveFormsModule, MonkeyIconModule],\r\n exports: [\r\n MonkeyButtonComponent,\r\n MonkeyButtonDropdownComponent,\r\n MonkeyButtonAvatarComponent,\r\n ],\r\n schemas: [NO_ERRORS_SCHEMA],\r\n})\r\nexport class MonkeyButtonModule {}\r\n","/**************************\r\n * Copyright Monkey Exchange. All Rights Reserved\r\n * This style guide was developed by Monkey Exchange Team\r\n * MIT Licence\r\n **************************/\r\nimport { CurrencyPipe } from '@angular/common';\r\nimport {\r\n Component,\r\n ViewEncapsulation,\r\n Input,\r\n forwardRef,\r\n HostListener,\r\n OnInit,\r\n ElementRef,\r\n Output,\r\n EventEmitter,\r\n ViewChild,\r\n ChangeDetectorRef,\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { MonkeyStyleGuideSettingsService, MonkeyStyleSettings } from '../../core';\r\nimport { MonkeyUtils } from '../../core/utils';\r\n\r\n@Component({\r\n selector: 'monkey-input',\r\n template: `\r\n <mecx-form-field [ngClass]=\"{ disabled: _disabled }\" [id]=\"_id\">\r\n <mecx-form-field-header>\r\n <label>\r\n {{ label }}\r\n </label>\r\n <helper>\r\n {{ helperMessage }}\r\n </helper>\r\n </mecx-form-field-header>\r\n <mecx-form-field-body [class.error]=\"errorMessage?.trim()\">\r\n <monkey-icon\r\n [icon]=\"icon\"\r\n [color]=\"errorMessage?.trim() ? '#fa3838' : '#4B4A53'\"\r\n *ngIf=\"icon\"\r\n ></monkey-icon>\r\n <input\r\n [name]=\"name\"\r\n [type]=\"type\"\r\n [placeholder]=\"placeholder\"\r\n (input)=\"onChangeValue($event)\"\r\n (keypress)=\"onKeyPress($event)\"\r\n [id]=\"name\"\r\n [(ngModel)]=\"_formatedValue\"\r\n [disabled]=\"_disabled\"\r\n [mask]=\"mask\"\r\n [prefix]=\"prefix\"\r\n *ngIf=\"mask && prefix\"\r\n #monkeyInput\r\n />\r\n <input\r\n [name]=\"name\"\r\n [type]=\"type\"\r\n [placeholder]=\"placeholder\"\r\n (input)=\"onChangeValue($event)\"\r\n [id]=\"name\"\r\n [(ngModel)]=\"_formatedValue\"\r\n (keypress)=\"onKeyPress($event)\"\r\n [disabled]=\"_disabled\"\r\n [mask]=\"mask\"\r\n *ngIf=\"mask && !prefix\"\r\n #monkeyInput\r\n />\r\n <input\r\n [name]=\"name\"\r\n [type]=\"type\"\r\n [placeholder]=\"placeholder\"\r\n (input)=\"onChangeValue($event)\"\r\n [id]=\"name\"\r\n [(ngModel)]=\"_formatedValue\"\r\n (keypress)=\"onKeyPress($event)\"\r\n [disabled]=\"_disabled\"\r\n [maxLength]=\"maxLength\"\r\n *ngIf=\"!mask && !prefix\"\r\n [max]=\"maxDateToday ? _maxDateToday : null\"\r\n #monkeyInput\r\n />\r\n <monkey-icon\r\n icon=\"eye-open-16\"\r\n [color]=\"errorMessage?.trim() ? '#fa3838' : '#4B4A53'\"\r\n *ngIf=\"_oldType === 'password' && type === 'text'\"\r\n (click)=\"onShowAndHidePassword()\"\r\n ></monkey-icon>\r\n <monkey-icon\r\n icon=\"eye-closed-16\"\r\n [color]=\"errorMessage?.trim() ? '#fa3838' : '#4B4A53'\"\r\n *ngIf=\"_oldType === 'password' && type === 'password'\"\r\n (click)=\"onShowAndHidePassword()\"\r\n ></monkey-icon>\r\n </mecx-form-field-body>\r\n <mecx-form-field-footer>\r\n <info>\r\n {{ infoMessage }}\r\n </info>\r\n <error>\r\n {{ errorMessage }}\r\n </error>\r\n </mecx-form-field-footer>\r\n </mecx-form-field>\r\n `,\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => MonkeyInputComponent),\r\n multi: true,\r\n },\r\n CurrencyPipe,\r\n ],\r\n})\r\nexport class MonkeyInputComponent implements ControlValueAccessor, OnInit {\r\n @Input() name: string = `mecx-input-${MonkeyUtils.getRandomString(10)}`;\r\n @Input() label: string;\r\n @Input() helperMessage: string = '';\r\n @Input() placeholder: string = '';\r\n @Input() icon: string;\r\n @Input() type: string;\r\n @Input() infoMessage: string;\r\n @Input() errorMessage: string;\r\n @Input() mask: string;\r\n @Input() prefix: string;\r\n @Input() maxLength: number = 255;\r\n @Input() onlyNumber: any;\r\n @Input() onlyAlphaNumeric: any;\r\n @Input() upperCase: any;\r\n @Input() lowerCase: any;\r\n @Input() capitalize: any;\r\n @Input() currency: any;\r\n @Input() percent: any;\r\n @Input() maxDateToday = false;\r\n @Output() onChange = new EventEmitter<any>();\r\n\r\n private settings: MonkeyStyleSettings;\r\n private handledValue: any;\r\n private onModelChange = (value: any) => {};\r\n private onModelTouched = (value: any) => {};\r\n\r\n public _id: string = `mecx-input-${MonkeyUtils.getRandomString(10)}`;\r\n public _disabled: boolean = false;\r\n public _oldType: string;\r\n public _formatedValue: any;\r\n public _maxDateToday = new Date().toISOString().split('T')[0];\r\n\r\n @ViewChild('monkeyInput', {\r\n static: true,\r\n })\r\n monkeyInput: ElementRef;\r\n\r\n constructor(\r\n private currencyPipe: CurrencyPipe,\r\n private settingsService: MonkeyStyleGuideSettingsService,\r\n private cdr: ChangeDetectorRef\r\n ) {}\r\n\r\n private handleValue(value: any, apply = false): any {\r\n if (this.onlyNumber) {\r\n return MonkeyUtils.handleOnlyNumbers(`${value}`);\r\n } else if (this.onlyAlphaNumeric) return MonkeyUtils.handleOnlyAlphaNumeric(`${value}`);\r\n else if (this.upperCase) return `${value}`.toUpperCase();\r\n else if (this.lowerCase) return `${value}`.toLowerCase();\r\n else if (this.capitalize) return MonkeyUtils.capitalize(`${value}`.toUpperCase());\r\n else if (this.currency || this.percent) {\r\n return MonkeyUtils.handleOnlyNumbers(`${value}`) / (apply ? 100 : 1);\r\n }\r\n\r\n return value;\r\n }\r\n\r\n private formatValue(value: any): any {\r\n const { settings } = this;\r\n if (this.currency) {\r\n if (!value) value = 0;\r\n return this.currencyPipe.transform(\r\n value,\r\n settings?.currency?.code || 'BRL',\r\n 'symbol',\r\n '1.2-2',\r\n settings?.currency?.locale || 'pt-BR'\r\n );\r\n } else if (this.percent) {\r\n return `${value} %`;\r\n }\r\n\r\n return value;\r\n }\r\n\r\n ngOnInit() {\r\n const { settingsService } = this;\r\n this._oldType = this.type;\r\n settingsService.settings().subscribe((val: MonkeyStyleSettings) => {\r\n this.settings = val;\r\n });\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onModelChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onModelTouched = fn;\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean): void {\r\n this._disabled = isDisabled;\r\n }\r\n\r\n @Input()\r\n set value(value: any) {\r\n this.handledValue = value;\r\n this._formatedValue = this.formatValue(value);\r\n this.cdr.detectChanges();\r\n this.onModelChange(this.handledValue);\r\n this.onModelTouched(this.handledValue);\r\n }\r\n\r\n get value(): any {\r\n return this.handledValue;\r\n }\r\n\r\n writeValue(value: any): void {\r\n this.value = value;\r\n }\r\n\r\n onChangeValue(event: any) {\r\n const value = this._formatedValue;\r\n event?.preventDefault();\r\n event?.stopPropagation();\r\n const handled = this.handleValue(value, true);\r\n this.writeValue(handled);\r\n this.onChange.next(handled);\r\n }\r\n\r\n onShowAndHidePassword() {\r\n this.type = this.type === 'password' ? 'text' : 'password';\r\n }\r\n\r\n @HostListener('click')\r\n onClick() {\r\n document?.getElementById(this._id)?.getElementsByTagName('input')?.[0]?.focus();\r\n }\r\n\r\n onKeyPress(event: any) {\r\n let pattern = null;\r\n const inputChar = String.fromCharCode(event.charCode);\r\n if (this.currency || this.onlyNumber || this.percent) {\r\n pattern = /[0-9]/;\r\n } else if (this.onlyAlphaNumeric) {\r\n pattern = /[^0-9A-Za-z]/;\r\n }\r\n\r\n if (pattern && !pattern.test(inputChar)) {\r\n event.preventDefault();\r\n }\r\n }\r\n}\r\n","/**************************\r\n * Copyright Monkey Exchange. All Rights Reserved\r\n * This style guide was developed by Monkey Exchange Team\r\n * MIT Licence\r\n **************************/\r\nimport { CurrencyPipe } from '@angular/common';\r\nimport {\r\n Component,\r\n ViewEncapsulation,\r\n Input,\r\n forwardRef,\r\n HostListener,\r\n OnInit,\r\n ElementRef,\r\n Output,\r\n EventEmitter,\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { MonkeyStyleGuideSettingsService, MonkeyStyleSettings } from '../../core';\r\nimport { MonkeyUtils } from '../../core/utils';\r\n\r\n@Component({\r\n selector: 'monkey-input-filter',\r\n template: `\r\n <mecx-form-field-filter [ngClass]=\"{ disabled: _disabled }\">\r\n <mecx-form-field-body>\r\n <input\r\n [name]=\"name\"\r\n [type]=\"type\"\r\n [placeholder]=\"placeholder\"\r\n [(ngModel)]=\"value\"\r\n (input)=\"onChangeInput($event)\"\r\n [id]=\"_id\"\r\n [disabled]=\"_disabled\"\r\n [mask]=\"mask\"\r\n [prefix]=\"prefix\"\r\n *ngIf=\"mask && prefix\"\r\n />\r\n <input\r\n [name]=\"name\"\r\n [type]=\"type\"\r\n [placeholder]=\"placeholder\"\r\n [(ngModel)]=\"value\"\r\n (input)=\"onChangeInput($event)\"\r\n [id]=\"_id\"\r\n [disabled]=\"_disabled\"\r\n [mask]=\"mask\"\r\n *ngIf=\"mask && !prefix\"\r\n />\r\n <input\r\n [name]=\"name\"\r\n [type]=\"type\"\r\n [placeholder]=\"placeholder\"\r\n [(ngModel)]=\"value\"\r\n (input)=\"onChangeInput($event)\"\r\n [id]=\"_id\"\r\n [disabled]=\"_disabled\"\r\n *ngIf=\"!mask && !prefix\"\r\n />\r\n <monkey-icon [icon]=\"icon\" [color]=\"'#4B4A53'\"></monkey-icon>\r\n <monkey-icon\r\n icon=\"eyes-16\"\r\n [color]=\"'#4B4A53'\"\r\n *ngIf=\"_oldType === 'password' && type === 'text'\"\r\n (click)=\"onShowAndHidePassword()\"\r\n ></monkey-icon>\r\n <monkey-icon\r\n icon=\"eyes-off-16\"\r\n [color]=\"'#4B4A53'\"\r\n *ngIf=\"_oldType === 'password' && type === 'password'\"\r\n (click)=\"onShowAndHidePassword()\"\r\n ></monkey-icon>\r\n </mecx-form-field-body>\r\n </mecx-form-field-filter>\r\n `,\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => MonkeyInputFilterComponent),\r\n multi: true,\r\n },\r\n CurrencyPipe,\r\n ],\r\n})\r\nexport class MonkeyInputFilterComponent implements ControlValueAccessor, OnInit {\r\n @Input() name: string;\r\n @Input() label: string;\r\n @Input() helperMessage: string;\r\n @Input() placeholder: string;\r\n @Input() icon: string;\r\n @Input() type: string;\r\n @Input() infoMessage: string;\r\n @Input() errorMessage: string;\r\n @Input() mask: string;\r\n @Input() prefix: string;\r\n @Input() onlyNumber: any;\r\n @Input() onlyAlphaNumeric: any;\r\n @Input() upperCase: any;\r\n @Input() lowerCase: any;\r\n @Input() capitalize: any;\r\n @Input() currency: any;\r\n @Output() onChange = new EventEmitter<any>();\r\n\r\n private settings: MonkeyStyleSettings;\r\n private handledValue: any;\r\n private onModelChange = (value: any) => {};\r\n private onModelTouched = (value: any) => {};\r\n private timer: any;\r\n\r\n public _id: string = `mecx-input-${MonkeyUtils.getRandomString(10)}`;\r\n public _disabled: boolean = false;\r\n public _oldType: string;\r\n\r\n constructor(\r\n private elementRef: ElementRef,\r\n private currencyPipe: CurrencyPipe,\r\n private settingsService: MonkeyStyleGuideSettingsService\r\n ) {}\r\n\r\n private handleValue(value: any): any {\r\n const { settings } = this;\r\n if (this.onlyNumber !== undefined) {\r\n return MonkeyUtils.handleOnlyNumbers(`${value}`);\r\n } else if (this.onlyAlphaNumeric !== undefined)\r\n return MonkeyUtils.handleOnlyAlphaNumeric(`${value}`);\r\n else if (this.upperCase !== undefined) return `${value}`.toUpperCase();\r\n else if (this.lowerCase !== undefined) return `${value}`.toLowerCase();\r\n else if (this.capitalize !== undefined) return MonkeyUtils.capitalize(`${value}`.toUpperCase());\r\n else if (this.currency !== undefined) {\r\n const newValue = MonkeyUtils.handleOnlyNumbers(value);\r\n return this.currencyPipe.transform(\r\n newValue / 100,\r\n settings?.currency?.code || 'BRL',\r\n 'symbol',\r\n '',\r\n settings?.currency?.locale || 'pt-BR'\r\n );\r\n }\r\n\r\n return value;\r\n }\r\n\r\n ngOnInit() {\r\n const { settingsService } = this;\r\n this._oldType = this.type;\r\n settingsService.settings().subscribe((val: MonkeyStyleSettings) => {\r\n this.settings = val;\r\n });\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onModelChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onModelTouched = fn;\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean): void {\r\n this._disabled = isDisabled;\r\n }\r\n\r\n @Input()\r\n set value(value: any) {\r\n this.handledValue = value;\r\n this.onModelChange(value);\r\n this.onModelTouched(value);\r\n }\r\n\r\n get value(): any {\r\n return this.handledValue;\r\n }\r\n\r\n writeValue(value: any): void {\r\n this.value = value;\r\n }\r\n\r\n onChangeInput(event: any) {\r\n const { value } = event?.target;\r\n event?.preventDefault();\r\n event?.stopPropagation();\r\n const handled = this.handleValue(value);\r\n event.target.value = handled;\r\n this.writeValue(handled);\r\n if (this.timer) {\r\n clearTimeout(this.timer);\r\n }\r\n this.timer = setTimeout(() => {\r\n this.onChange.next(value);\r\n }, 400);\r\n }\r\n\r\n onShowAndHidePassword() {\r\n this.type = this.type === 'password' ? 'text' : 'password';\r\n }\r\n\r\n @HostListener('click', ['$event'])\r\n onClick(event: any) {\r\n const { _id } = this;\r\n document.getElementById(_id).focus();\r\n }\r\n}\r\n","import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core';\r\nimport { MonkeyInputComponent } from './input.component';\r\nimport { MonkeyInputFilterComponent } from './input-filter.component';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { NgxMaskModule } from 'ngx-mask';\r\nimport { MonkeyIconModule } from '../icon';\r\n\r\n@NgModule({\r\n declarations: [MonkeyInputComponent, MonkeyInputFilterComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n NgxMaskModule.forRoot(),\r\n MonkeyIconModule,\r\n ],\r\n exports: [MonkeyInputComponent, MonkeyInputFilterComponent],\r\n schemas: [NO_ERRORS_SCHEMA],\r\n})\r\nexport class MonkeyInputModule {}\r\n","/**************************\r\n * Copyright Monkey Exchange. All Rights Reserved\r\n * This style guide was developed by Monkey Exchange Team\r\n * MIT Licence\r\n **************************/\r\nimport {\r\n Component,\r\n ViewEncapsulation,\r\n Input,\r\n forwardRef,\r\n Output,\r\n HostListener,\r\n ElementRef,\r\n} from '@angular/core';\r\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { MonkeyUtils } from '../../core/utils';\r\n\r\n@Component({\r\n selector: 'monkey-option',\r\n template: `\r\n <div class=\"mecx-option\" *ngIf=\"type === 'select-multiple'\">\r\n <!--<input type=\"checkbox\" [checked]=\"value === selected?.value\" />\r\n <span\r\n [id]=\"_id\"\r\n >\r\n {{ label }}\r\n </span>-->\r\n <label class=\"mecx-check-container\">\r\n <input type=\"checkbox\" [checked]=\"value === selected?.value\" />\r\n {{ label }}\r\n <p class=\"mecx-check-mark\"></p>\r\n </label>\r\n </div>\r\n <span\r\n class=\"mecx-option\"\r\n [ngClass]=\"{ selected: value === selected?.value }\"\r\n *ngIf=\"type === 'select'\"\r\n [id]=\"_id\"\r\n >\r\n {{ label }}\r\n </span>\r\n <label class=\"mecx-radio-container\" *ngIf=\"type === 'radio'\">\r\n <input\r\n type=\"radio\"\r\n [value]=\"selected?.value\"\r\n [checked]=\"value === selected?.value\"\r\n [id]=\"_id\"\r\n />\r\n {{ label }}\r\n <p class=\"mecx-radio-mark\"></p>\r\n </label>\r\n `,\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => MonkeyOptionComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class MonkeyOptionComponent {\r\n @Input() type: string = 'select';\r\n @Input() label: string;\r\n @Input() value: any;\r\n @Input() selectAll: boolean;\r\n @Input() selected: MonkeyOptionComponent;\r\n @Input() enableClick = true;\r\n @Output() onSelectOption: Function;\r\n\r\n public _id: string = `mecx-option-${MonkeyUtils.getRandomString(10)}`;\r\n\r\n constructor(public elRef: ElementRef) {\r\n //not to do\r\n }\r\n\r\n @HostListener('click', ['$event'])\r\n onClick(event: any) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n if (this.enableClick) {\r\n this.onSelectOption(this);\r\n }\r\n }\r\n}\r\n","import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core';\r\nimport { MonkeyOptionComponent } from './option.component';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@NgModule({\r\n declarations: [\r\n MonkeyOptionComponent\r\n ],\r\n imports: [\r\n CommonModule\r\n ],\r\n exports: [\r\n MonkeyOptionComponent\r\n ],\r\n schemas: [\r\n NO_ERRORS_SCHEMA\r\n ]\r\n})\r\nexport class MonkeyOptionModule { }","/**************************\r\n * Copyright Monkey Exchange. All Rights Reserved\r\n * This style guide was developed by Monkey Exchange Team\r\n * MIT Licence\r\n **************************/\r\nimport {\r\n Component,\r\n ViewEncapsulation,\r\n Input,\r\n forwardRef,\r\n HostListener,\r\n QueryList,\r\n ContentChildren,\r\n Output,\r\n EventEmitter,\r\n ViewChild,\r\n ElementRef,\r\n ChangeDetectorRef,\r\n OnInit,\r\n OnChanges,\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { MonkeyOptionComponent } from '../option';\r\nimport { MonkeyUtils } from '../../core/utils';\r\n\r\n@Component({\r\n selector: 'monkey-select',\r\n template: `\r\n <mecx-form-field [id]=\"_id\" [ngClass]=\"{ disabled: _disabled }\">\r\n <mecx-form-field-header>\r\n <label>\r\n {{ label }}\r\n </label>\r\n <helper>\r\n {{ helperMessage }}\r\n </helper>\r\n </mecx-form-field-header>\r\n <mecx-form-field-body (click)=\"open()\">\r\n <monkey-icon [icon]=\"icon\" [color]=\"'#4B4A53'\"></monkey-icon>\r\n <mecx-select class=\"trigger\" [ngClass]=\"{ open: _opened }\">\r\n <mecx-select__trigger>\r\n <span>\r\n {{ _selected?.label || labelSelect }}\r\n </span>\r\n <monkey-icon\r\n [icon]=\"!_opened ? 'arrow-down-16' : 'arrow-up-16'\"\r\n [color]=\"'#4B4A53'\"\r\n ></monkey-icon>\r\n </mecx-select__trigger>\r\n </mecx-select>\r\n </mecx-form-field-body>\r\n <mecx-select-inside [ngClass]=\"{ open: _opened }\">\r\n <mecx-select-options #selectOptions>\r\n <ng-content> </ng-content>\r\n </mecx-select-options>\r\n </mecx-select-inside>\r\n <mecx-form-field-footer>\r\n <info>\r\n {{ infoMessage }}\r\n </info>\r\n <error>\r\n {{ errorMessage }}\r\n </error>\r\n </mecx-form-field-footer>\r\n </mecx-form-field>\r\n `,\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => MonkeySelectComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class MonkeySelectComponent implements OnInit, OnChanges, ControlValueAccessor {\r\n @Input() label: string;\r\n @Input() helperMessage: string;\r\n @Input() placeholder: string;\r\n @Input() icon: string;\r\n @Input() infoMessage: string;\r\n @Input() errorMessage: string;\r\n @Input() labelSelect = 'Selecione';\r\n @Input() onHandleOptions = new EventEmitter<any>();\r\n @Output() onChange = new EventEmitter<any>();\r\n\r\n @ViewChild('selectOptions', { static: true })\r\n selectOptions: ElementRef;\r\n\r\n private handledValue: any;\r\n private onModelChange = (value: any) => {};\r\n private onModelTouched = (value: any) => {};\r\n @ContentChildren(MonkeyOptionComponent)\r\n private options!: QueryList<MonkeyOptionComponent>;\r\n\r\n public _selected: MonkeyOptionComponent;\r\n public _opened: boolean = false;\r\n public _id: string = `mecx-select-${MonkeyUtils.getRandomString(10)}`;\r\n public _disabled: boolean = false;\r\n\r\n constructor(private cdRef: ChangeDetectorRef) {}\r\n\r\n private onHandleSelected() {\r\n const { _opened, _selected } = this;\r\n this.options.forEach((op) => {\r\n op.selected = _selected;\r\n });\r\n if (_opened) {\r\n let scrollValue = 0;\r\n if (_selected) {\r\n const { _id } = this._selected;\r\n scrollValue = document.getElementById(_id).offsetTop;\r\n }\r\n this.selectOptions.nativeElement.scrollTo(0, scrollValue);\r\n this.selectOptions.nativeElement.focus();\r\n this.cdRef.detectChanges();\r\n }\r\n }\r\n\r\n private validateOptions() {\r\n if (!this.options) return;\r\n this.options.forEach((op) => {\r\n op.onSelectOption = this.onSelectOption.bind(this);\r\n op.type = 'select';\r\n op.selected = null;\r\n if (`${op.value}`.toLowerCase() === `${this.handledValue}`.toLowerCase()) {\r\n this._selected = op;\r\n op.selected = op;\r\n }\r\n });\r\n }\r\n\r\n private init() {\r\n setTimeout(() => {\r\n this._selected = null;\r\n this.validateOptions();\r\n }, 0);\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onModelChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onModelTouched = fn;\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean): void {\r\n this._disabled = isDisabled;\r\n }\r\n\r\n @Input()\r\n set value(value: any) {\r\n if (value !== undefined && this.handledValue !== value) {\r\n this.handledValue = value;\r\n this.onModelChange(value);\r\n this.onModelTouched(value);\r\n }\r\n this.validateOptions();\r\n }\r\n\r\n get value(): any {\r\n return this.handledValue;\r\n }\r\n\r\n writeValue(value: any): void {\r\n this.value = value;\r\n }\r\n\r\n onChangeValue(event: any, value: any) {\r\n event?.preventDefault();\r\n event?.stopPropagation();\r\n this.writeValue(value);\r\n this.onChange.next(value);\r\n }\r\n\r\n @HostListener('document:click')\r\n clickout() {\r\n this._opened = false;\r\n }\r\n\r\n open() {\r\n if (!this._opened) {\r\n setTimeout(() => {\r\n this._opened = true;\r\n this.onHandleSelected();\r\n }, 50);\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.init();\r\n this.onHandleOptions.subscribe(() => {\r\n this.init();\r\n });\r\n }\r\n\r\n ngOnChanges() {\r\n this.init();\r\n }\r\n\r\n onSelectOption(select: MonkeyOptionComponent) {\r\n this._selected = select;\r\n const { value } = select;\r\n this._opened = false;\r\n this.onChangeValue(null, value);\r\n this.onHandleSelected();\r\n }\r\n}\r\n","/**************************\r\n * Copyright Monkey Exchange. All Rights Reserved\r\n * This style guide was developed by Monkey Exchange Team\r\n * MIT Licence\r\n **************************/\r\nimport {\r\n Component,\r\n ViewEncapsulation,\r\n Input,\r\n forwardRef,\r\n HostListener,\r\n QueryList,\r\n ContentChildren,\r\n Output,\r\n EventEmitter,\r\n ViewChild,\r\n ElementRef,\r\n ChangeDetectorRef,\r\n OnInit,\r\n OnChanges,\r\n AfterViewInit,\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { MonkeyOptionComponent } from '../option';\r\nimport { MonkeyUtils } from '../../core/utils';\r\n\r\n@Component({\r\n selector: 'monkey-select-multiple',\r\n template: `\r\n <mecx-form-field [id]=\"_id\" [ngClass]=\"{ disabled: _disabled }\">\r\n <mecx-form-field-header>\r\n <label>\r\n {{ label }}\r\n </label>\r\n <helper>\r\n {{ helperMessage }}\r\n </helper>\r\n </mecx-form-field-header>\r\n <mecx-form-field-body (click)=\"open()\">\r\n <monkey-icon [icon]=\"icon\" [color]=\"'#4B4A53'\"></monkey-icon>\r\n\r\n <mecx-select class=\"trigger\" [ngClass]=\"{ open: _opened }\">\r\n <mecx-select__trigger>\r\n <span>\r\n {{ _selectedValues || 'Selecione' }}\r\n </span>\r\n <monkey-icon\r\n [icon]=\"!_opened ? 'arrow-down-16' : 'arrow-up-16'\"\r\n [color]=\"'#4B4A53'\"\r\n ></monkey-icon>\r\n </mecx-select__trigger>\r\n </mecx-select>\r\n </mecx-form-field-body>\r\n <mecx-select-inside [ngClass]=\"{ open: _opened }\">\r\n <mecx-select-options #selectOptions>\r\n <ng-content> </ng-content>\r\n </mecx-select-options>\r\n </mecx-select-inside>\r\n <mecx-form-field-footer>\r\n <info>\r\n {{ infoMessage }}\r\n </info>\r\n <error>\r\n {{ errorMessage }}\r\n </error>\r\n </mecx-form-field-footer>\r\n </mecx-form-field>\r\n `,\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => MonkeySelectMultipleComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class MonkeySelectMultipleComponent implements AfterViewInit, ControlValueAccessor {\r\n @Input() label: string;\r\n @Input() labelMoreValues: string;\r\n @Input() helperMessage: string;\r\n @Input() placeholder: string;\r\n @Input() icon: string;\r\n @Input() infoMessage: string;\r\n @Input() errorMessage: string;\r\n @Output() onChange = new EventEmitter<any>();\r\n\r\n @ViewChild('selectOptions', { static: true })\r\n selectOptions: ElementRef;\r\n\r\n private handledValue: any[] = [];\r\n private onModelChange = (value: any) => {};\r\n private onModelTouched = (value: any) => {};\r\n @ContentChildren(MonkeyOptionComponent)\r\n private options!: QueryList<MonkeyOptionComponent>;\r\n private selectedAll = false;\r\n\r\n public _selected: MonkeyOptionComponent[] = [];\r\n public _opened: boolean = false;\r\n public _id: string = `mecx-select-${MonkeyUtils.getRandomString(10)}`;\r\n public _disabled: boolean = false;\r\n public _selectedValues = '';\r\n\r\n constructor(private cdRef: ChangeDetectorRef) {}\r\n\r\n private onHandleSelectedValues() {\r\n const { _selected, labelMoreValues } = this;\r\n let selectedValues = '';\r\n const handled = _selected.filter((_) => !_.selectAll);\r\n if (_selected.length > 0) {\r\n selectedValues = `${handled[0].label}`;\r\n if (_selected.length >= 2) {\r\n selectedValues = `${handled[0].label} ${labelMoreValues} ${handled.length - 1}`;\r\n }\r\n }\r\n this._selectedValues = selectedValues;\r\n }\r\n\r\n private onHandleSelected() {\r\n const { _opened, _selected } = this;\r\n let selectedLength = 0;\r\n let selectAll = null;\r\n this.options?.forEach((op) => {\r\n const found = _selected.findIndex((val: any) => {\r\n return val.value === op.value;\r\n });\r\n op.selected = null;\r\n if (op.selectAll) selectAll = op;\r\n if (found >= 0) {\r\n op.selected = op;\r\n selectedLength += 1;\r\n }\r\n });\r\n if (this.options?.length - 1 === selectedLength && selectAll) {\r\n this.selectedAll = true;\r\n selectAll.selected = selectAll;\r\n }\r\n this.onHandleSelectedValues();\r\n\r\n if (_opened) {\r\n this.selectOptions.nativeElement.focus();\r\n this.cdRef.detectChanges();\r\n }\r\n }\r\n\r\n private validateOptions() {\r\n if (!this.options) return;\r\n this._selected = [];\r\n let selectedLength = 0;\r\n let selectAll = null;\r\n this.options?.forEach((op) => {\r\n op.onSelectOption = this.onSelectOption.bind(this);\r\n op.type = 'select-multiple';\r\n op.selected = null;\r\n if (op.selectAll) selectAll = op;\r\n const found = this.handledValue.findIndex((val: any) => {\r\n return `${val}`.trim().toLowerCase() === `${op.value}`.trim().toLowerCase();\r\n });\r\n if (found >= 0) {\r\n op.selected = op;\r\n this._selected.push(op);\r\n selectedLength += 1;\r\n }\r\n });\r\n if (this.options?.length - 1 === selectedLength && selectAll) {\r\n this.selectedAll = true;\r\n selectAll.selected = selectAll;\r\n }\r\n this.onHandleSelectedValues();\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onModelChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onModelTouched = fn;\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean): void {\r\n this._disabled = isDisabled;\r\n }\r\n\r\n @Input()\r\n set value(value: any) {\r\n if (value !== undefined) {\r\n if (this.handledValue.join(',') !== value) {\r\n value?.split(',')?.forEach((op: any) => {\r\n this.handledValue.push(op);\r\n });\r\n this.onModelChange(value);\r\n this.onModelTouched(value);\r\n }\r\n }\r\n this.onHandleSelected();\r\n }\r\n\r\n get value(): any {\r\n return this.handledValue.join(',');\r\n }\r\n\r\n writeValue(value: any): void {\r\n this.value = value;\r\n }\r\n\r\n onChangeValue(event: any, value: any) {\r\n event?.preventDefault();\r\n event?.stopPropagation();\r\n this.writeValue(value);\r\n }\r\n\r\n @HostListener('document:click')\r\n clickout() {\r\n this._opened = false;\r\n }\r\n\r\n open() {\r\n if (!this._opened) {\r\n setTimeout(() => {\r\n this._opened = true;\r\n this.onHandleSelected();\r\n }, 50);\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n setTimeout(() => {\r\n this.validateOptions();\r\n }, 0);\r\n\r\n this.options.changes.subscribe(() => {\r\n setTimeout(() => {\r\n this.validateOptions();\r\n }, 0);\r\n });\r\n }\r\n\r\n onSelectOption(selected: MonkeyOptionComponent) {\r\n if (selected.selectAll) {\r\n this.selectedAll = !this.selectedAll;\r\n this._selected = [];\r\n if (this.selectedAll) {\r\n this.options?.forEach((op) => {\r\n this._selected.push(op);\r\n });\r\n }\r\n } else {\r\n const index = this._selected.findIndex((val: any) => val.value === selected.value);\r\n if (index >= 0) {\r\n this._selected = this._selected.filter((op: MonkeyOptionComponent) => {\r\n return (\r\n `${op.value}`.trim().toLowerCase() !== `${selected.value}`.trim().toLowerCase() &&\r\n !op.selectAll\r\n );\r\n });\r\n } else this._selected.push(selected);\r\n }\r\n const value = this._selected\r\n .filter((val) => !val.selectAll)\r\n .map((val: any) => {\r\n return val.value;\r\n });\r\n\r\n this.onChange.next(value);\r\n this.onChangeValue(null, value.join(','));\r\n this.onHandleSelected();\r\n }\r\n}\r\n","/**************************\r\n * Copyright Monkey Exchange. All Rights Reserved\r\n * This style guide was developed by Monkey Exchange Team\r\n * MIT Licence\r\n **************************/\r\nimport {\r\n Component,\r\n ViewEncapsulation,\r\n Input,\r\n forwardRef,\r\n HostListener,\r\n QueryList,\r\n ContentChildren,\r\n Output,\r\n EventEmitter,\r\n ViewChild,\r\n ElementRef,\r\n ChangeDetectorRef,\r\n OnChanges,\r\n AfterViewInit,\r\n Renderer2,\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { MonkeyOptionComponent } from '../option';\r\nimport { MonkeyUtils } from '../../core/utils';\r\n\r\n@Component({\r\n selector: 'monkey-select-search',\r\n template: `\r\n <mecx-form-field [id]=\"_id\" [ngClass]=\"{ disabled: _disabled }\">\r\n <mecx-form-field-header>\r\n <label>\r\n {{ label }}\r\n </label>\r\n <helper>\r\n {{ helperMessage }}\r\n </helper>\r\n </mecx-form-field-header>\r\n <mecx-form-field-body (click)=\"open()\">\r\n <monkey-icon [icon]=\"icon\" [color]=\"'#aaaaaa'\"></monkey-icon>\r\n <mecx-select class=\"trigger\" [ngClass]=\"{ open: _opened }\">\r\n <mecx-select__trigger>\r\n <input\r\n [placeholder]=\"labelSelect || placeholder\"\r\n (input)=\"onChangeInput($event)\"\r\n #inputFilter\r\n [ngModel]=\"_selected?.label || ''\"\r\n />\r\n <monkey-icon\r\n [icon]=\"!_opened ? 'arrow-down-16' : 'arrow-up-16'\"\r\n [color]=\"'#4B4A53'\"\r\n ></monkey-icon>\r\n </mecx-select__trigger>\r\n </mecx-select>\r\n </mecx-form-field-body>\r\n <mecx-select-inside [ngClass]=\"{ open: _opened }\">\r\n <mecx-select-options #selectOptions>\r\n <ng-content> </ng-content>\r\n </mecx-select-options>\r\n </mecx-select-inside>\r\n <mecx-form-field-footer>\r\n <info>\r\n {{ infoMessage }}\r\n </info>\r\n <error>\r\n {{ errorMessage }}\r\n </error>\r\n </mecx-form-field-footer>\r\n </mecx-form-field>\r\n `,\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => MonkeySelectSearchComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class MonkeySelectSearchComponent implements AfterViewInit, OnChanges, ControlValueAccessor {\r\n @Input() label: string;\r\n @Input() helperMessage: string;\r\n @Input() placeholder: string;\r\n @Input() icon: string;\r\n @Input() infoMessage: string;\r\n @Input() errorMessage: string;\r\n @Input() labelSelect = 'Selecione';\r\n @Input() fieldToCompare: string;\r\n @Input() onHandleOptions = new EventEmitter<any>();\r\n @Output() onChange = new EventEmitter<any>();\r\n @Output() onSearch = new EventEmitter<any>(null);\r\n\r\n @ViewChild('selectOptions', { static: true })\r\n selectOptions: ElementRef;\r\n\r\n @ViewChild('inputFilter', { static: true })\r\n inputFilter: ElementRef;\r\n\r\n private handledValue: any;\r\n private onModelChange = (value: any) => {};\r\n private onModelTouched = (value: any) => {};\r\n @ContentChildren(MonkeyOptionComponent)\r\n private options!: QueryList<MonkeyOptionComponent>;\r\n private timer: any;\r\n\r\n public _selected: MonkeyOptionComponent;\r\n public _opened: boolean = false;\r\n public _id: string = `mecx-select-search-${MonkeyUtils.getRandomString(10)}`;\r\n public _disabled: boolean = false;\r\n\r\n constructor(private cdRef: ChangeDetectorRef, private renderer: Renderer2) {\r\n //not to do\r\n }\r\n\r\n private onHandleSearch(search: any) {\r\n this.options.forEach((op) => {\r\n const source = `${op.label}`.toLowerCase();\r\n const destination = `${search}`.toLowerCase();\r\n if (source.indexOf(destination) > -1) {\r\n this.renderer.setStyle(op.elRef.nativeElement, 'display', 'inline');\r\n } else {\r\n this.renderer.setStyle(op.elRef.nativeElement, 'display', 'inline');\r\n }\r\n let display = 'inline';\r\n if (source.indexOf(destination) === -1) {\r\n display = 'none';\r\n }\r\n this.renderer.setStyle(op.elRef.nativeElement, 'display', display);\r\n });\r\n }\r\n\r\n private onHandleSelected() {\r\n const { _opened, _selected } = this;\r\n this.options.forEach((op) => {\r\n op.selected = _selected;\r\n });\r\n if (_opened) {\r\n let scrollValue = 0;\r\n if (_selected) {\r\n const { _id } = this._selected;\r\n scrollValue = document.getElementById(_id).offsetTop - 10;\r\n }\r\n this.selectOptions.nativeElement.scrollTo(0, scrollValue);\r\n this.selectOptions.nativeElement.focus();\r\n this.cdRef.detectChanges();\r\n }\r\n }\r\n\r\n private validateOptions() {\r\n const { fieldToCompare } = this;\r\n if (!this.options) return;\r\n this.options.forEach((op) => {\r\n op.onSelectOption = this.onSelectOption.bind(this);\r\n op.type = op?.type || 'select';\r\n op.selected = null;\r\n let source = '';\r\n let destination = '';\r\n if (fieldToCompare) {\r\n source = `${op.value[fieldToCompare]}`.toLowerCase();\r\n destination = `${this.handledValue?.[fieldToCompare]}`.toLowerCase();\r\n } else {\r\n source = `${op.value}`.toLowerCase();\r\n destination = `${this.handledValue}`.toLowerCase();\r\n }\r\n if (source === destination) {\r\n this._selected = op;\r\n op.selected = op;\r\n }\r\n });\r\n }\r\n\r\n private doSearch(search: string) {\r\n this.onSearch.next(search);\r\n this.onHandleSearch(search);\r\n this._opened = true;\r\n this.onHandleSelected();\r\n }\r\n\r\n private init() {\r\n setTimeout(() => {\r\n this._selected = null;\r\n this.validateOptions();\r\n }, 0);\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onModelChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onModelTouched = fn;\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean): void {\r\n this._disabled = isDisabled;\r\n }\r\n\r\n @Input()\r\n set value(value: any) {\r\n if (value !== undefined && this.handledValue !== value) {\r\n this.handledValue = value;\r\n this.onModelChange(value);\r\n this.onModelTouched(value);\r\n }\r\n this.validateOptions();\r\n }\r\n\r\n get value(): any {\r\n return this.handledValue;\r\n }\r\n\r\n writeValue(value: any): void {\r\n this.value = value;\r\n }\r\n\r\n onChangeValue(event: any, value: any) {\r\n event?.preventDefault();\r\n event?.stopPropagation();\r\n this.writeValue(value);\r\n this.onChange.next(value);\r\n }\r\n\r\n @HostListener('document:click')\r\n clickout() {\r\n this._opened = false;\r\n }\r\n\r\n open() {\r\n if (!this._opened) {\r\n setTimeout(() => {\r\n this._opened = true;\r\n this.onHandleSelected();\r\n (this.inputFilter?.nativeElement as HTMLInputElement).focus();\r\n }, 50);\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.init();\r\n this.onHandleOptions.subscribe(() => {\r\n this.init();\r\n });\r\n }\r\n\r\n ngOnChanges() {\r\n this.init();\r\n }\r\n\r\n onSelectOption(select: MonkeyOptionComponent) {\r\n this._selected = select;\r\n const { value } = select;\r\n this._opened = false;\r\n this.onChangeValue(null, value);\r\n this.onHandleSelected();\r\n }\r\n\r\n onChangeInput(event: any) {\r\n const { value } = event?.target;\r\n if (this.timer) {\r\n clearTimeout(this.timer);\r\n }\r\n this.timer = setTimeout(() => {\r\n this.doSearch(value);\r\n }, 400);\r\n }\r\n}\r\n","/**************************\r\n * Copyright Monkey Exchange. All Rights Reserved\r\n * This style guide was developed by Monkey Exchange Team\r\n * MIT Licence\r\n **************************/\r\nimport {\r\n Component,\r\n ViewEncapsulation,\r\n Input,\r\n forwardRef,\r\n HostListener,\r\n QueryList,\r\n ContentChildren,\r\n Output,\r\n EventEmitter,\r\n ViewChild,\r\n ElementRef,\r\n ChangeDetectorRef,\r\n OnInit,\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { MonkeyOptionComponent } from '../option';\r\nimport { MonkeyUtils } from '../../core/utils';\r\n\r\n@Component({\r\n selector: 'monkey-select-filter',\r\n template: `\r\n <mecx-select-filter\r\n class=\"trigger\"\r\n [ngClass]=\"{\r\n open: _opened,\r\n none: type === 'none',\r\n border: type === 'border'\r\n }\"\r\n (click)=\"open()\"\r\n >\r\n <mecx-select__trigger>\r\n <span>\r\n {{ _selected?.label || placeholder }}\r\n </span>\r\n <monkey-icon\r\n [icon]=\"!_opened ? 'arrow-down-16' : 'arrow-up-16'\"\r\n [color]=\"'#4B4A53'\"\r\n ></monkey-icon>\r\n </mecx-select__trigger>\r\n </mecx-select-filter>\r\n <mecx-select-inside [ngClass]=\"{ open: _opened }\">\r\n <mecx-select-options #selectOptions>\r\n <ng-content> </ng-content>\r\n </mecx-select-options>\r\n </mecx-select-inside>\r\n `,\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => MonkeySelectFilterComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class MonkeySelectFilterComponent implements OnInit, ControlValueAccessor {\r\n @Input() placeholder: string;\r\n @Input() icon: string;\r\n @Input() type: string;\r\n @Output() onChange = new EventEmitter<any>();\r\n\r\n @ViewChild('selectOptions', { static: true })\r\n selectOptions: ElementRef;\r\n\r\n private handledValue: any;\r\n private onModelChange = (value: any) => {};\r\n private onModelTouched = (value: any) => {};\r\n @ContentChildren(MonkeyOptionComponent)\r\n private options!: QueryList<MonkeyOptionComponent>;\r\n\r\n public _selected: MonkeyOptionComponent;\r\n public _opened: boolean = false;\r\n public _id: string = `mecx-select-filter-${MonkeyUtils.getRandomString(10)}`;\r\n public _disabled: boolean = false;\r\n\r\n constructor(private cdRef: ChangeDetectorRef) {}\r\n\r\n private onHandleSelected() {\r\n const { _opened, _selected } = this;\r\n this.options.forEach((op) => {\r\n op.selected = _selected;\r\n });\r\n if (_opened) {\r\n let scrollValue = 0;\r\n if (_selected) {\r\n const { _id } = this._selected;\r\n scrollValue = document.getElementById(_id).offsetTop;\r\n }\r\n this.selectOptions.nativeElement.scrollTo(0, scrollValue);\r\n this.selectOptions.nativeElement.focus();\r\n this.cdRef.detectChanges();\r\n }\r\n }\r\n\r\n private validateOptions() {\r\n if (!this.options) return;\r\n this.options.forEach((op) => {\r\n op.onSelectOption = this.onSelectOption.bind(this);\r\n op.type = 'select';\r\n op.selected = null;\r\n if (`${op.value}`.toLowerCase() === `${this.handledValue}`.toLowerCase()) {\r\n this._selected = op;\r\n op.selected = op;\r\n }\r\n });\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onModelChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onModelTouched = fn;\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean): void {\r\n this._disabled = isDisabled;\r\n }\r\n\r\n @Input()\r\n set value(value: any) {\r\n if (value !== undefined && this.handledValue !== value) {\r\n this.handledValue = value;\r\n this.onModelChange(value);\r\n this.onModelTouched(value);\r\n }\r\n this.validateOptions();\r\n }\r\n\r\n get value(): any {\r\n return this.handledValue;\r\n }\r\n\r\n writeValue(value: any): void {\r\n this.value = value;\r\n }\r\n\r\n onChangeValue(event: any, value: any) {\r\n event?.preventDefault();\r\n event?.stopPropagation();\r\n this.writeValue(value);\r\n this.onChange.next(value);\r\n }\r\n\r\n @HostListener('document:click')\r\n clickout() {\r\n this._opened = false;\r\n }\r\n\r\n open() {\r\n if (!this._opened) {\r\n setTimeout(() => {\r\n this._opened = true;\r\n this.onHandleSelected();\r\n }, 50);\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n setTimeout(() => {\r\n this.validateOptions();\r\n }, 0);\r\n }\r\n\r\n onSelectOption(select: MonkeyOptionComponent) {\r\n this._selected = select;\r\n const { value } = select;\r\n this._opened = false;\r\n this.onChangeValue(null, value);\r\n this.onHandleSelected();\r\n }\r\n}\r\n","import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core';\r\nimport { MonkeySelectComponent } from './select.component';\r\nimport { MonkeySelectMultipleComponent } from './select-multiple.component';\r\nimport { MonkeySelectSearchComponent } from './select-search.component';\r\nimport { MonkeySelectFilterComponent } from './select-filter.component';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MonkeyOptionModule } from '../option';\r\nimport { MonkeyIconModule } from '../icon';\r\nimport { MonkeyInputModule } from '../input';\r\n\r\n@NgModule({\r\n declarations: [\r\n MonkeySelectComponent,\r\n MonkeySelectMultipleComponent,\r\n MonkeySelectSearchComponent,\r\n MonkeySelectFilterComponent,\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MonkeyInputModule,\r\n MonkeyOptionModule,\r\n MonkeyIconModule,\r\n ],\r\n exports: [\r\n MonkeySelectComponent,\r\n MonkeySelectMultipleComponent,\r\n MonkeySelectSearchComponent,\r\n MonkeySelectFilterComponent,\r\n ],\r\n schemas: [NO_ERRORS_SCHEMA],\r\n})\r\nexport class MonkeySelectModule {}\r\n","/**************************\r\n * Copyright Monkey Exchange. All Rights Reserved\r\n * This style guide was developed by Monkey Exchange Team\r\n * MIT Licence\r\n **************************/\r\nimport {\r\n Component,\r\n ViewEncapsulation,\r\n Input,\r\n forwardRef,\r\n Output,\r\n EventEmitter,\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { MonkeyUtils } from '../../core/utils';\r\n\r\n@Component({\r\n selector: 'monkey-checkbox',\r\n template: `\r\n <mecx-form-field\r\n *ngIf=\"type === 'single'; else multiple\"\r\n [ngClass]=\"{ disabled: _disabled }\"\r\n >\r\n <mecx-form-field-header>\r\n <label>\r\n {{ label }}\r\n </label>\r\n <helper>\r\n {{ helperMessage }}\r\n </helper>\r\n </mecx-form-field-header>\r\n <mecx-form-field-body class=\"checkbox\">\r\n <label class=\"mecx-check-container\">\r\n <input\r\n type=\"checkbox\"\r\n [(ngModel)]=\"value\"\r\n [id]=\"_id\"\r\n [disabled]=\"_disabled\"\r\n />\r\n {{ description }}\r\n <ng-content> </ng-content>\r\n <p class=\"mecx-check-mark\"></p>\r\n </label>\r\n </mecx-form-field-body>\r\n <mecx-form-field-footer>\r\n <info>\r\n {{ infoMessage }}\r\n </info>\r\n <error>\r\n {{ errorMessage }}\r\n </error>\r\n </mecx-form-field-footer>\r\n </mecx-form-field>\r\n <ng-template #multiple>\r\n <mecx-form-field [ngClass]=\"{ disabled: _disabled }\">\r\n <mecx-form-field-body class=\"checkbox\">\r\n <label class=\"mecx-check-container\">\r\n <input\r\n type=\"checkbox\"\r\n [(ngModel)]=\"value\"\r\n [id]=\"_id\"\r\n [disabled]=\"_disabled\"\r\n />\r\n {{ description }}\r\n <p class=\"mecx-check-mark\"></p>\r\n </label>\r\n </mecx-form-field-body>\r\n </mecx-form-field>\r\n </ng-template>\r\n `,\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => MonkeyCheckboxComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class MonkeyCheckboxComponent implements ControlValueAccessor {\r\n @Input() label: string;\r\n @Input() type: string = 'single';\r\n @Input() helperMessage: string;\r\n @Input() infoMessage: string;\r\n @Input() errorMessage: string;\r\n @Input() description: any;\r\n @Output() onChange = new EventEmitter<any>();\r\n\r\n private handledValue: any;\r\n private onModelChange = (value: any) => {};\r\n private onModelTouched = (value: any) => {};\r\n\r\n public _id: string = `mecx-checkbox-${MonkeyUtils.getRandomString(10)}`;\r\n public _disabled: boolean = false;\r\n\r\n constructor() {}\r\n\r\n registerOnChange(fn: any): void {\r\n this.onModelChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onModelTouched = fn;\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean): void {\r\n this._disabled = isDisabled;\r\n }\r\n\r\n @Input()\r\n set value(value: any) {\r\n if (value !== undefined && this.handledValue !== value) {\r\n this.handledValue = value;\r\n this.onModelChange(value);\r\n this.onModelTouched(value);\r\n this.onChange.next(value);\r\n }\r\n }\r\n\r\n get value(): any {\r\n return this.handledValue;\r\n }\r\n\r\n writeValue(value: any): void {\r\n this.value = value;\r\n }\r\n\r\n onChangeValue(event: any, value: any) {\r\n event?.preventDefault();\r\n event?.stopPropagation();\r\n this.writeValue(value);\r\n }\r\n}\r\n","import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core';\r\nimport { MonkeyCheckboxComponent } from './checkbox.component';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\n\r\n@NgModule({\r\n declarations: [\r\n MonkeyCheckboxComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule\r\n ],\r\n exports: [\r\n MonkeyCheckboxComponent\r\n ],\r\n schemas: [\r\n NO_ERRORS_SCHEMA\r\n ]\r\n})\r\nexport class MonkeyCheckboxModule{}","/**************************\r\n * Copyright Monkey Exchange. All Rights Reserved\r\n * This style guide was developed by Monkey Exchange Team\r\n * MIT Licence\r\n **************************/\r\nimport {\r\n Component,\r\n ViewEncapsulation,\r\n Input,\r\n forwardRef,\r\n ContentChildren,\r\n QueryList,\r\n AfterViewInit,\r\n Output,\r\n EventEmitter,\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { MonkeyOptionComponent } from '../option';\r\nimport { MonkeyUtils } from '../../core/utils';\r\n\r\n@Component({\r\n selector: 'monkey-radiobutton',\r\n template: `\r\n <mecx-form-field [id]=\"_id\" [ngClass]=\"{ disabled: _disabled }\">\r\n <mecx-form-field-header>\r\n <label>\r\n {{ label }}\r\n </label>\r\n <helper>\r\n {{ helperMessage }}\r\n </helper>\r\n </mecx-form-field-header>\r\n <mecx-form-field-body class=\"radiobutton\">\r\n <ng-content> </ng-content>\r\n </mecx-form-field-body>\r\n <mecx-form-field-footer>\r\n <info>\r\n {{ infoMessage }}\r\n </info>\r\n <error>\r\n {{ errorMessage }}\r\n </error>\r\n </mecx-form-field-footer>\r\n </mecx-form-field>\r\n `,\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => MonkeyRadioButtonComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class MonkeyRadioButtonComponent\r\n implements AfterViewInit, ControlValueAccessor {\r\n @Input() label: string;\r\n @Input() helperMessage: string;\r\n @Input() placeholder: string;\r\n @Input() icon: string;\r\n @Input() infoMessage: string;\r\n @Input() errorMessage: string;\r\n @Output() onChange = new EventEmitter<any>();\r\n\r\n private handledValue: any;\r\n private onModelChange = (value: any) => {};\r\n private onModelTouched = (value: any) => {};\r\n @ContentChildren(MonkeyOptionComponent)\r\n private options!: QueryList<MonkeyOptionComponent>;\r\n\r\n public _selected: MonkeyOptionComponent;\r\n public _id: string = `mecx-radiobutton-${MonkeyUtils.getRandomString(10)}`;\r\n public _disabled: boolean = false;\r\n\r\n constructor() {}\r\n\r\n private onHandleSelected() {\r\n this.options.forEach((op) => {\r\n op.selected = this._selected;\r\n });\r\n }\r\n\r\n private validateOptions() {\r\n if (!this.options) return;\r\n this.options.forEach((op) => {\r\n op.onSelectOption = this.onSelectOption.bind(this);\r\n op.type = 'radio';\r\n op.selected = null;\r\n if (\r\n `${op.value}`.toLowerCase() === `${this.handledValue}`.toLowerCase()\r\n ) {\r\n this._selected = op;\r\n op.selected = op;\r\n }\r\n });\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onModelChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onModelTouched = fn;\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean): void {\r\n this._disabled = isDisabled;\r\n }\r\n\r\n @Input()\r\n set value(value: any) {\r\n if (value !== undefined && this.handledValue !== value) {\r\n this.handledValue = value;\r\n this.onModelChange(value);\r\n this.onModelTouched(value);\r\n this.validateOptions();\r\n }\r\n }\r\n\r\n get value(): any {\r\n return this.handledValue;\r\n }\r\n\r\n writeValue(value: any): void {\r\n this.value = value;\r\n }\r\n\r\n onChangeValue(event: any, value: any) {\r\n event?.preventDefault();\r\n event?.stopPropagation();\r\n this.writeValue(value);\r\n this.onChange.next(value);\r\n }\r\n\r\n ngAfterViewInit() {\r\n setTimeout(() => {\r\n this.validateOptions();\r\n }, 0);\r\n }\r\n\r\n onSelectOption(select: MonkeyOptionComponent) {\r\n this._selected = select;\r\n const { value } = select;\r\n this.onChangeValue(null, value);\r\n this.onHandleSelected();\r\n }\r\n}\r\n","import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core';\r\nimport { MonkeyRadioButtonComponent } from './radiobutton.component';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\n\r\n@NgModule({\r\n declarations: [\r\n MonkeyRadioButtonComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule\r\n ],\r\n exports: [\r\n MonkeyRadioButtonComponent\r\n ],\r\n schemas: [\r\n NO_ERRORS_SCHEMA\r\n ]\r\n})\r\nexport class MonkeyRadioButtonModule { }","/**************************\r\n * Copyright Monkey Exchange. All Rights Reserved\r\n * This style guide was developed by Monkey Exchange Team\r\n * MIT Licence \r\n**************************/\r\nimport { Component, Input, OnInit, ViewEncapsulation } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'monkey-wizard',\r\n template: `\r\n <div [ngClass]=\"position\">\r\n <div class=\"mecx-wizard-body\"\r\n *ngFor=\"let step of _totalSteps\">\r\n <div class=\"mecx-wizard-option mecx-wizard-option__theme\"\r\n [ngClass]=\"{'selected': step === selectedStep, 'completed': step < selectedStep}\">\r\n {{ step }}\r\n </div>\r\n <div class=\"mecx-wizard-option-separator\"></div>\r\n </div>\r\n </div>\r\n `,\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class MonkeyWizardComponent implements OnInit{\r\n\r\n @Input() totalSteps: number = 0;\r\n @Input() selectedStep: number = 0;\r\n @Input() position: string = 'horizontal';\r\n\r\n public _totalSteps: number[];\r\n public _selectedStep: number;\r\n\r\n constructor() { }\r\n\r\n ngOnInit(){\r\n const { totalSteps, selectedStep } = this;\r\n this._totalSteps = new Array(Number(totalSteps)).fill(1).map((step: number, index: number) => {\r\n return step + index;\r\n });\r\n this._selectedStep = Number(selectedStep);\r\n }\r\n}","import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core';\r\nimport { MonkeyWizardComponent } from './wizard.component';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MonkeyIconModule } from '../icon';\r\n\r\n@NgModule({\r\n declarations: [\r\n MonkeyWizardComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n MonkeyIconModule\r\n ],\r\n exports: [\r\n MonkeyWizardComponent\r\n ],\r\n schemas: [\r\n NO_ERRORS_SCHEMA\r\n ]\r\n})\r\nexport class MonkeyWizardModule { }","/**************************\r\n * Copyright Monkey Exchange. All Rights Reserved\r\n * This style guide was developed by Monkey Exchange Team\r\n * MIT Licence\r\n **************************/\r\nimport {\r\n Component,\r\n ViewEncapsulation,\r\n Input,\r\n forwardRef,\r\n HostListener,\r\n Output,\r\n EventEmitter,\r\n OnInit,\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { MonkeyUtils } from '../../core/utils';\r\n\r\n@Component({\r\n selector: 'monkey-file-upload',\r\n template: `\r\n <mecx-form-field [ngClass]=\"{ disabled: _disabled }\">\r\n <mecx-form-field-header>\r\n <label>\r\n {{ label }}\r\n </label>\r\n <helper>\r\n {{ helperMessage }}\r\n </helper>\r\n </mecx-form-field-header>\r\n <mecx-form-field-body>\r\n <input\r\n #fileInput\r\n hidden\r\n [name]=\"name\"\r\n type=\"file\"\r\n (change)=\"onChangeValue($event.target.files)\"\r\n [id]=\"_id\"\r\n [disabled]=\"_disabled\"\r\n />\r\n <span>{{\r\n value?.fileName\r\n ? value.fileName\r\n : uploadOngoingMessage\r\n ? uploadOngoingMessage\r\n : placeholder\r\n }}</span>\r\n <monkey-icon\r\n icon=\"upload-16\"\r\n [color]=\"'#4B4A53'\"\r\n *ngIf=\"!value?.fileName\"\r\n ></monkey-icon>\r\n <monkey-icon\r\n icon=\"close-16\"\r\n *ngIf=\"value?.fileName\"\r\n (click)=\"onClear($event)\"\r\n ></monkey-icon>\r\n </mecx-form-field-body>\r\n <mecx-form-field-upload-info *ngIf=\"_progress\">\r\n <span [style.width.%]=\"_progress\"> {{ _progress }}%</span>\r\n </mecx-form-field-upload-info>\r\n <mecx-form-field-footer>\r\n <info>\r\n {{ infoMessage }}\r\n </info>\r\n <error>\r\n {{ errorMessage }}\r\n {{ _uploadErrorMessage }}\r\n {{ _maxSizeErrorMessage ? maxSizeErrorMessage : null }}\r\n {{\r\n _allowedExtensionErrorMessage ? allowedExtensionErrorMessage : null\r\n }}\r\n </error>\r\n </mecx-form-field-footer>\r\n </mecx-form-field>\r\n `,\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => MonkeyFileUploadComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class MonkeyFileUploadComponent implements ControlValueAccessor, OnInit {\r\n @Input() name: string;\r\n @Input() label: string;\r\n @Input() helperMessage: string;\r\n @Input() placeholder: string;\r\n @Input() icon: string;\r\n @Input() infoMessage: string;\r\n @Input() uploadOngoingMessage: string;\r\n @Input() errorMessage: string;\r\n @Input() listenFiles: boolean;\r\n @Input() maxSize: number;\r\n @Input() allowedExtensions: string[];\r\n @Input() maxSizeErrorMessage: string;\r\n @Input() allowedExtensionErrorMessage: string;\r\n @Input() fileUpload: Function;\r\n @Output() onChange = new EventEmitter<any>();\r\n @Output() onHandleFilesReady = new EventEmitter<File>();\r\n\r\n private configFiles: ConfigFiles;\r\n private handledValue: any;\r\n private onModelChange = (value: any) => {};\r\n private onModelTouched = (value: any) => {};\r\n\r\n public _id: string = `mecx-file-upload-${MonkeyUtils.getRandomString(10)}`;\r\n public _disabled: boolean = false;\r\n public _progress: number = null;\r\n public _maxSizeErrorMessage: boolean = false;\r\n public _allowedExtensionErrorMessage: boolean = false;\r\n public _uploadErrorMessage: string = '';\r\n\r\n constructor() {}\r\n\r\n private validateFile(file: File): boolean {\r\n const { configFiles } = this;\r\n const { name, size } = file;\r\n\r\n if (configFiles.allowedExtensions) {\r\n const hasAllowedExtensions =\r\n configFiles.allowedExtensions.filter((allow) => {\r\n const extension = name.substr(name.indexOf('.', -name.length));\r\n return (\r\n allow.extension.toLowerCase() === extension.toLowerCase() ||\r\n !MonkeyUtils.persistNullEmptyUndefined(extension)\r\n );\r\n }).length > 0;\r\n if (!hasAllowedExtensions) {\r\n this._allowedExtensionErrorMessage = true;\r\n return false;\r\n }\r\n }\r\n\r\n if (configFiles.maxSize) {\r\n if (size > configFiles.maxSize) {\r\n this._maxSizeErrorMessage = true;\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n private handleCallback(\r\n progress: number,\r\n respUploaded: any,\r\n uploadError: string\r\n ) {\r\n this._progress = progress;\r\n this.value = respUploaded;\r\n this._uploadErrorMessage = uploadError;\r\n this.onChange.next(this.value);\r\n }\r\n\r\n ngOnInit() {\r\n this.allowedExtensions = this.allowedExtensions || [\r\n '.jpg',\r\n '.jpeg',\r\n '.png',\r\n '.pdf',\r\n '.txt',\r\n '.xls',\r\n '.xlsx',\r\n ];\r\n let allow: AllowedFile[] = null;\r\n if (this.allowedExtensions.length > 0) {\r\n allow = this.allowedExtensions.map((val) => {\r\n return { extension: val };\r\n });\r\n }\r\n\r\n this.configFiles = {\r\n maxSize: this.maxSize || 5 * 1024 * 1024,\r\n allowedExtensions: allow,\r\n };\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onModelChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onModelTouched = fn;\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean): void {\r\n this._disabled = isDisabled;\r\n }\r\n\r\n @Input()\r\n set value(value: any) {\r\n if (value !== undefined && this.handledValue !== value) {\r\n this.handledValue = value;\r\n this.onModelChange(value);\r\n this.onModelTouched(value);\r\n }\r\n }\r\n\r\n get value(): any {\r\n return this.handledValue;\r\n }\r\n\r\n writeValue(value: any): void {\r\n this.value = value;\r\n }\r\n\r\n onChangeValue(event: any) {\r\n const { listenFiles } = this;\r\n this._allowedExtensionErrorMessage = false;\r\n this._maxSizeErrorMessage = false;\r\n for (let index = 0; index < event.length; index++) {\r\n const file: File = event[index];\r\n if (this.validateFile(file)) {\r\n if (listenFiles) {\r\n this.onHandleFilesReady.next(file);\r\n } else {\r\n this.fileUpload(file, this.handleCallback.bind(this));\r\n }\r\n }\r\n }\r\n }\r\n\r\n @HostListener('click', ['$event'])\r\n onClick(event: any) {\r\n const { _id } = this;\r\n (<HTMLInputElement>document.getElementById(_id)).value = null;\r\n document.getElementById(_id).click();\r\n }\r\n\r\n onClear(event: any) {\r\n event?.preventDefault();\r\n event?.stopPropagation();\r\n this.value = null;\r\n this.onChange.next(this.value);\r\n }\r\n}\r\n\r\ninterface AllowedFile {\r\n extension: string;\r\n}\r\n\r\ninterface ConfigFiles {\r\n maxSize: number;\r\n allowedExtensions: AllowedFile[];\r\n}\r\n","import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core';\r\nimport { MonkeyFileUploadComponent } from './file-upload.component';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { NgxMaskModule } from 'ngx-mask';\r\nimport { MonkeyIconModule } from '../icon';\r\n\r\n@NgModule({\r\n declarations: [MonkeyFileUploadComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n NgxMaskModule.forRoot(),\r\n MonkeyIconModule,\r\n ],\r\n exports: [MonkeyFileUploadComponent],\r\n schemas: [NO_ERRORS_SCHEMA],\r\n})\r\nexport class MonkeyFileUploadModule {}\r\n","/**************************\r\n * Copyright Monkey Exchange. All Rights Reserved\r\n * This style guide was developed by Monkey Exchange Team\r\n * MIT Licence\r\n **************************/\r\nimport {\r\n Component,\r\n ViewEncapsulation,\r\n OnInit,\r\n HostListener,\r\n ChangeDetectorRef,\r\n Input,\r\n EventEmitter,\r\n Output,\r\n} from '@angular/core';\r\nimport { DomSanitizer, SafeUrl } from '@angular/platform-browser';\r\nimport { MonkeyUtils } from '../../core';\r\n\r\n@Component({\r\n selector: 'monkey-image-crop',\r\n template: `\r\n <monkey-file-upload\r\n [label]=\"label\"\r\n [helperMessage]=\"helperMessage\"\r\n icon=\"upload-16\"\r\n [placeholder]=\"placeholder\"\r\n [maxSize]=\"maxSize\"\r\n [maxSizeErrorMessage]=\"maxSizeErrorMessage\"\r\n [allowedExtensionErrorMessage]=\"allowedExtensionErrorMessage\"\r\n (onHandleFilesReady)=\"onHandleFileUploadFilesReady($event)\"\r\n listenFiles=\"true\"\r\n [maxFiles]=\"1\"\r\n [allowedExtensions]=\"['.jpg', '.jpeg', '.png']\"\r\n *ngIf=\"!_loadCompleted\"\r\n >\r\n </monkey-file-upload>\r\n <div *ngIf=\"_loadPreview\">\r\n <progress class=\"monkey-progress monkey-progress__grey\"></progress>\r\n </div>\r\n <div class=\"box-cut-title\" *ngIf=\"_loadCompleted\">\r\n {{ cropTitle }} {{ _fileNameToCut }}\r\n </div>\r\n <div\r\n id=\"imageCropSource\"\r\n name=\"imageCropSource\"\r\n #imageCropSource\r\n class=\"box-cut\"\r\n *ngIf=\"_loadCompleted\"\r\n >\r\n <div class=\"edit-resize-cut\">\r\n <img class=\"source-image\" [src]=\"_safeImgDataUrl\" />\r\n <div\r\n class=\"cut\"\r\n [style.top.px]=\"_cutCoords.y1\"\r\n [style.left.px]=\"_cutCoords.x1\"\r\n [style.width.px]=\"_cutCoords.x2 - _cutCoords.x1\"\r\n [style.height.px]=\"_cutCoords.y2 - _cutCoords.y1\"\r\n *ngIf=\"_loadCompleted\"\r\n >\r\n <div\r\n (mousedown)=\"startMove($event, 'move')\"\r\n (touchstart)=\"startMove($event, 'move')\"\r\n class=\"move\"\r\n ></div>\r\n <span\r\n class=\"resize top-left\"\r\n (mousedown)=\"startMove($event, 'resize', 'topleft')\"\r\n (touchstart)=\"startMove($event, 'resize', 'topleft')\"\r\n >\r\n </span>\r\n <span class=\"resize top\"></span>\r\n <span\r\n class=\"resize top-right\"\r\n (mousedown)=\"startMove($event, 'resize', 'topright')\"\r\n (touchstart)=\"startMove($event, 'resize', 'topright')\"\r\n >\r\n </span>\r\n <span class=\"resize right\"></span>\r\n <span\r\n class=\"resize bottom-right\"\r\n (mousedown)=\"startMove($event, 'resize', 'bottomright')\"\r\n (touchstart)=\"startMove($event, 'resize', 'bottomright')\"\r\n >\r\n </span>\r\n <span class=\"resize bottom\"> </span>\r\n <span\r\n class=\"resize bottom-left\"\r\n (mousedown)=\"startMove($event, 'resize', 'bottomleft')\"\r\n (touchstart)=\"startMove($event, 'resize', 'bottomleft')\"\r\n >\r\n </span>\r\n <span class=\"resize left\"> </span>\r\n <span\r\n class=\"resize-bar top\"\r\n (mousedown)=\"startMove($event, 'resize', 'top')\"\r\n (touchstart)=\"startMove($event, 'resize', 'top')\"\r\n >\r\n </span>\r\n <span\r\n class=\"resize-bar right\"\r\n (mousedown)=\"startMove($event, 'resize', 'right')\"\r\n (touchstart)=\"startMove($event, 'resize', 'right')\"\r\n >\r\n </span>\r\n <span\r\n class=\"resize-bar bottom\"\r\n (mousedown)=\"startMove($event, 'resize', 'bottom')\"\r\n (touchstart)=\"startMove($event, 'resize', 'bottom')\"\r\n >\r\n </span>\r\n <span\r\n class=\"resize-bar left\"\r\n (mousedown)=\"startMove($event, 'resize', 'left')\"\r\n (touchstart)=\"startMove($event, 'resize', 'left')\"\r\n >\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n <mecx-image-crop-upload-info *ngIf=\"_progress\">\r\n <span [style.width.%]=\"_progress\"> {{ _progress }}%</span>\r\n </mecx-image-crop-upload-info>\r\n <monkey-button\r\n type=\"tertiary\"\r\n color=\"theme\"\r\n (click)=\"onHandleImageChange()\"\r\n *ngIf=\"_loadCompleted\"\r\n >\r\n {{ labelChangeImage }}\r\n </monkey-button>\r\n `,\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class MonkeyImageCropComponent implements OnInit {\r\n @Input() label: string;\r\n @Input() cropTitle: string;\r\n @Input() labelChangeImage: string;\r\n @Input() labelPreviewImage: string;\r\n @Input() helperMessage: string;\r\n @Input() placeholder: string;\r\n @Input() maxSize: number;\r\n @Input() maxSizeErrorMessage: string;\r\n @Input() allowedExtensionErrorMessage: string;\r\n @Input() fileUpload: Function;\r\n @Input() onHandleGetFilesReady = new EventEmitter<any>();\r\n @Output() onHandleFilesReady = new EventEmitter<any>();\r\n @Output() onHandlePreviewReady = new EventEmitter<any>();\r\n\r\n public _cutCoords: CutCoords = { y1: 0, y2: 0, x1: 0, x2: 0 };\r\n public _fileTypeToCut: string = '';\r\n public _fileNameToCut: string = '';\r\n public _progressingCut: boolean;\r\n public _loadCompleted: boolean;\r\n public _loadPreview: boolean;\r\n public _safeImgDataUrl: SafeUrl | string;\r\n public _disabled: boolean = false;\r\n public _progress: number = null;\r\n public _uploadErrorMessage: string = '';\r\n\r\n private mouseMoves: MouseMoves;\r\n private areMaxSize: Dimensions = { width: 150, height: 150 };\r\n private cutScaledMinWidth = 100;\r\n private cutScaledMinHeight = 100;\r\n private originalSize: Dimensions = { width: 0, height: 0 };\r\n private fileReader: FileReader = new FileReader();\r\n private originalImage = new Image();\r\n private imageCutReady: Blob = null;\r\n private savedCallback: Function;\r\n\r\n constructor(\r\n private cdr: ChangeDetectorRef,\r\n private sanitizer: DomSanitizer\r\n ) {}\r\n\r\n private initCut() {\r\n this.areMaxSize = {\r\n width: document.getElementById('imageCropSource').offsetWidth || 150,\r\n height: document.getElementById('imageCropSource').offsetHeight || 150,\r\n };\r\n this._cutCoords = {\r\n x1: this.areMaxSize.width / 2 - this.cutScaledMinWidth,\r\n y1: this.areMaxSize.height / 2 - this.cutScaledMinHeight,\r\n x2: this.areMaxSize.width / 2 + this.cutScaledMinWidth,\r\n y2: this.areMaxSize.height / 2 + this.cutScaledMinHeight,\r\n };\r\n this.cut();\r\n }\r\n\r\n private setProgressingCut(tp: boolean) {\r\n this._progressingCut = tp;\r\n }\r\n\r\n private setProgressLoadCompleted(tp: boolean) {\r\n this._loadCompleted = tp;\r\n this.cdr.detectChanges();\r\n }\r\n\r\n private setProgressLoadPreview(tp: boolean) {\r\n this._loadPreview = tp;\r\n }\r\n\r\n private cut() {\r\n this.setProgressingCut(true);\r\n const imagePosition = this.getImagePosition();\r\n let width = imagePosition.x2 - imagePosition.x1;\r\n let height = imagePosition.y2 - imagePosition.y1;\r\n const canvas = document.createElement('canvas') as HTMLCanvasElement;\r\n canvas.width = width;\r\n canvas.height = height;\r\n\r\n const ctx = canvas.getContext('2d');\r\n ctx.drawImage(\r\n this.originalImage,\r\n imagePosition.x1,\r\n imagePosition.y1,\r\n width,\r\n height,\r\n 0,\r\n 0,\r\n width,\r\n height\r\n );\r\n this.getCanvasBlob(canvas);\r\n }\r\n\r\n private getImagePosition(): CutCoords {\r\n const ratiow =\r\n this.originalSize.width /\r\n document.getElementById('imageCropSource').offsetWidth;\r\n const ratioh =\r\n this.originalSize.height /\r\n document.getElementById('imageCropSource').offsetHeight;\r\n return {\r\n x1: Math.round(this._cutCoords.x1 * ratiow),\r\n y1: Math.round(this._cutCoords.y1 * ratioh),\r\n x2: Math.min(\r\n Math.round(this._cutCoords.x2 * ratiow),\r\n this.originalSize.width\r\n ),\r\n y2: Math.min(\r\n Math.round(this._cutCoords.y2 * ratioh),\r\n this.originalSize.height\r\n ),\r\n };\r\n }\r\n\r\n private getCanvasBlob(cropCanvas: HTMLCanvasElement) {\r\n cropCanvas.toBlob(\r\n (val: Blob) => {\r\n this.imageCutReady = val;\r\n this.setProgressingCut(false);\r\n },\r\n 'image/jpeg',\r\n 0.95\r\n );\r\n }\r\n\r\n private getClientX(event: any): number {\r\n return (\r\n event.clientX ||\r\n (event.touches && event.touches[0] && event.touches[0].clientX)\r\n );\r\n }\r\n\r\n private getClientY(event: any): number {\r\n return (\r\n event.clientY ||\r\n (event.touches && event.touches[0] && event.touches[0].clientY)\r\n );\r\n }\r\n\r\n private resize(event: any): void {\r\n const diffX = this.getClientX(event) - this.mouseMoves.clientX;\r\n const diffY = this.getClientY(event) - this.mouseMoves.clientY;\r\n switch (this.mouseMoves.position) {\r\n case 'left':\r\n this._cutCoords.x1 = Math.min(\r\n this.mouseMoves.x1 + diffX,\r\n this._cutCoords.x2 - this.cutScaledMinWidth\r\n );\r\n break;\r\n case 'topleft':\r\n this._cutCoords.x1 = Math.min(\r\n this.mouseMoves.x1 + diffX,\r\n this._cutCoords.x2 - this.cutScaledMinWidth\r\n );\r\n this._cutCoords.y1 = Math.min(\r\n this.mouseMoves.y1 + diffY,\r\n this._cutCoords.y2 - this.cutScaledMinHeight\r\n );\r\n break;\r\n case 'top':\r\n this._cutCoords.y1 = Math.min(\r\n this.mouseMoves.y1 + diffY,\r\n this._cutCoords.y2 - this.cutScaledMinHeight\r\n );\r\n break;\r\n case 'topright':\r\n this._cutCoords.x2 = Math.max(\r\n this.mouseMoves.x2 + diffX,\r\n this._cutCoords.x1 + this.cutScaledMinWidth\r\n );\r\n this._cutCoords.y1 = Math.min(\r\n this.mouseMoves.y1 + diffY,\r\n this._cutCoords.y2 - this.cutScaledMinHeight\r\n );\r\n break;\r\n case 'right':\r\n this._cutCoords.x2 = Math.max(\r\n this.mouseMoves.x2 + diffX,\r\n this._cutCoords.x1 + this.cutScaledMinWidth\r\n );\r\n break;\r\n case 'bottomright':\r\n this._cutCoords.x2 = Math.max(\r\n this.mouseMoves.x2 + diffX,\r\n this._cutCoords.x1 + this.cutScaledMinWidth\r\n );\r\n this._cutCoords.y2 = Math.max(\r\n this.mouseMoves.y2 + diffY,\r\n this._cutCoords.y1 + this.cutScaledMinHeight\r\n );\r\n break;\r\n case 'bottom':\r\n this._cutCoords.y2 = Math.max(\r\n this.mouseMoves.y2 + diffY,\r\n this._cutCoords.y1 + this.cutScaledMinHeight\r\n );\r\n break;\r\n case 'bottomleft':\r\n this._cutCoords.x1 = Math.min(\r\n this.mouseMoves.x1 + diffX,\r\n this._cutCoords.x2 - this.cutScaledMinWidth\r\n );\r\n this._cutCoords.y2 = Math.max(\r\n this.mouseMoves.y2 + diffY,\r\n this._cutCoords.y1 + this.cutScaledMinHeight\r\n );\r\n break;\r\n }\r\n }\r\n\r\n private move(event: any) {\r\n const diffX = this.getClientX(event) - this.mouseMoves.clientX;\r\n const diffY = this.getClientY(event) - this.mouseMoves.clientY;\r\n\r\n this._cutCoords.x1 = this.mouseMoves.x1 + diffX;\r\n this._cutCoords.y1 = this.mouseMoves.y1 + diffY;\r\n this._cutCoords.x2 = this.mouseMoves.x2 + diffX;\r\n this._cutCoords.y2 = this.mouseMoves.y2 + diffY;\r\n }\r\n\r\n private checkMovesPosition(maintainSize = false): void {\r\n if (this._cutCoords.x1 < 0) {\r\n this._cutCoords.x2 -= maintainSize ? this._cutCoords.x1 : 0;\r\n this._cutCoords.x1 = 0;\r\n }\r\n if (this._cutCoords.y1 < 0) {\r\n this._cutCoords.y2 -= maintainSize ? this._cutCoords.y1 : 0;\r\n this._cutCoords.y1 = 0;\r\n }\r\n if (this._cutCoords.x2 > this.areMaxSize.width) {\r\n this._cutCoords.x1 -= maintainSize\r\n ? this._cutCoords.x2 - this.areMaxSize.width\r\n : 0;\r\n this._cutCoords.x2 = this.areMaxSize.width;\r\n }\r\n if (this._cutCoords.y2 > this.areMaxSize.height) {\r\n this._cutCoords.y1 -= maintainSize\r\n ? this._cutCoords.y2 - this.areMaxSize.height\r\n : 0;\r\n this._cutCoords.y2 = this.areMaxSize.height;\r\n }\r\n }\r\n\r\n private onLoadBeginPreview = (_event) => {\r\n this.setProgressLoadCompleted(false);\r\n this.setProgressLoadPreview(true);\r\n };\r\n\r\n private onLoadEndPreview = (_event) => {\r\n this.originalImage.src = this.fileReader.result.toString();\r\n this.originalImage.onload = () => {\r\n setTimeout(() => {\r\n this.originalSize.width = this.originalImage.width;\r\n this.originalSize.height = this.originalImage.height;\r\n this.setProgressLoadCompleted(true);\r\n this.setProgressLoadPreview(false);\r\n this.initCut();\r\n }, 1000);\r\n };\r\n this._safeImgDataUrl = this.sanitizer.bypassSecurityTrustResourceUrl(\r\n this.fileReader.result.toString()\r\n );\r\n };\r\n\r\n private imagePreview(file: any) {\r\n const { name, type } = file;\r\n this._fileNameToCut = MonkeyUtils.truncate(name);\r\n this._fileTypeToCut = type;\r\n this.fileReader.readAsDataURL(file);\r\n }\r\n\r\n private handleCallback(\r\n progress: number,\r\n respUploaded: any,\r\n uploadError: string\r\n ) {\r\n this._progress = progress;\r\n this._uploadErrorMessage = uploadError;\r\n if (respUploaded) {\r\n this.savedCallback(respUploaded);\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n const { onHandleGetFilesReady } = this;\r\n this.fileReader.onloadstart = this.onLoadBeginPreview;\r\n this.fileReader.onload = this.onLoadEndPreview;\r\n\r\n onHandleGetFilesReady.subscribe((val: Function) => {\r\n this.savedCallback = val;\r\n const file = this.imageCutReady\r\n ? MonkeyUtils.handleBlobFile(\r\n this.imageCutReady,\r\n this._fileNameToCut,\r\n this._fileTypeToCut\r\n )\r\n : null;\r\n this.fileUpload(file, this.handleCallback.bind(this));\r\n });\r\n }\r\n\r\n startMove(\r\n event: any,\r\n moveType: string,\r\n position: string | null = null\r\n ): void {\r\n event.preventDefault();\r\n this.mouseMoves = {\r\n active: true,\r\n type: moveType,\r\n position,\r\n clientX: this.getClientX(event),\r\n clientY: this.getClientY(event),\r\n ...this._cutCoords,\r\n };\r\n }\r\n\r\n @HostListener('mousemove', ['$event'])\r\n @HostListener('touchmove', ['$event'])\r\n moveImg(event: any): void {\r\n if (this.mouseMoves && this.mouseMoves.active) {\r\n event.stopPropagation();\r\n event.preventDefault();\r\n if (this.mouseMoves.type === 'move') {\r\n this.move(event);\r\n this.checkMovesPosition(true);\r\n } else if (this.mouseMoves.type === 'resize') {\r\n this.resize(event);\r\n this.checkMovesPosition(false);\r\n }\r\n this.cdr.detectChanges();\r\n }\r\n }\r\n\r\n @HostListener('document:mouseup')\r\n @HostListener('document:touchend')\r\n moveStop(): void {\r\n if (this.mouseMoves && this.mouseMoves.active) {\r\n this.mouseMoves.active = false;\r\n this.cut();\r\n }\r\n }\r\n\r\n onHandleFileUploadFilesReady(files: any) {\r\n this.imagePreview(files);\r\n }\r\n\r\n onHandleImageChange() {\r\n this.imageCutReady = null;\r\n this._loadCompleted = false;\r\n this._loadPreview = false;\r\n this._fileNameToCut = '';\r\n this._fileTypeToCut = '';\r\n }\r\n\r\n onHandleImagePreview() {\r\n const file = MonkeyUtils.handleBlobFile(\r\n this.imageCutReady,\r\n this._fileNameToCut,\r\n this._fileTypeToCut\r\n );\r\n this.onHandlePreviewReady.next(file);\r\n }\r\n}\r\n\r\ninterface Dimensions {\r\n width: number;\r\n height: number;\r\n}\r\n\r\ninterface CutCoords {\r\n x1?: number;\r\n y1?: number;\r\n x2?: number;\r\n y2?: number;\r\n}\r\n\r\ninterface MouseMoves {\r\n active: boolean;\r\n type: string | null;\r\n position: string | null;\r\n x1?: number;\r\n y1?: number;\r\n x2?: number;\r\n y2?: number;\r\n clientX: number;\r\n clientY: number;\r\n}\r\n","import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core';\r\nimport { MonkeyImageCropComponent } from './image-crop.component';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { NgxMaskModule } from 'ngx-mask';\r\nimport { MonkeyFileUploadModule } from '../file-upload';\r\nimport { MonkeyButtonModule } from '../button';\r\n\r\n@NgModule({\r\n declarations: [MonkeyImageCropComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n NgxMaskModule.forRoot(),\r\n MonkeyButtonModule,\r\n MonkeyFileUploadModule,\r\n ],\r\n exports: [MonkeyImageCropComponent],\r\n schemas: [NO_ERRORS_SCHEMA],\r\n})\r\nexport class MonkeyImageCropModule {}\r\n","/**************************\r\n * Copyright Monkey Exchange. All Rights Reserved\r\n * This style guide was developed by Monkey Exchange Team\r\n * MIT Licence\r\n **************************/\r\nimport { Component, EventEmitter, Input, OnInit, ViewEncapsulation } from '@angular/core';\r\nimport { MonkeyModalConfig, MonkeyModalRefs, MonkeyStyleGuideModalService } from '../../core';\r\n\r\n@Component({\r\n selector: 'monkey-modal',\r\n template: `\r\n <mecx-monkey-modal\r\n [ngClass]=\"\r\n 'mecx-monkey-modal mecx-monkey-modal__' +\r\n (config?.color || 'theme') +\r\n ' mecx-monkey-modal__size-' +\r\n config?.size || 'md'\r\n \"\r\n >\r\n <div class=\"header\" *ngIf=\"config?.title\">\r\n <span class=\"h4\">\r\n {{ config?.title }}\r\n </span>\r\n <span class=\"close\" (click)=\"onClose()\" *ngIf=\"!config?.hideClose\"> x </span>\r\n </div>\r\n <div class=\"body\">\r\n <ng-content></ng-content>\r\n </div>\r\n <mecx-monkey-modal-footer\r\n [ngClass]=\"\r\n 'mecx-monkey-modal-footer mecx-monkey-modal-footer__' +\r\n (config?.color || 'theme') +\r\n ' mecx-monkey-modal-footer__size-' +\r\n (config?.size || 'md') +\r\n ' mecx-monkey-modal-footer__' +\r\n ((config?.size || 'md') === 'sm' ? 'column' : 'row')\r\n \"\r\n *ngIf=\"!config?.hideActions\"\r\n >\r\n <monkey-button\r\n [type]=\"config?.action?.cancel?.actionType || 'primary'\"\r\n [color]=\"config?.action?.cancel?.actionColor || config?.color || 'theme'\"\r\n (click)=\"_actionCancel()\"\r\n *ngIf=\"config?.action?.cancel\"\r\n >\r\n {{ config?.action?.cancel?.label }}\r\n </monkey-button>\r\n <monkey-button\r\n [type]=\"config?.action?.confirm?.actionType || 'primary'\"\r\n [color]=\"config?.action?.confirm?.actionColor || config?.color || 'theme'\"\r\n (click)=\"_actionConfirm()\"\r\n *ngIf=\"config?.action?.confirm\"\r\n >\r\n {{ config?.action?.confirm?.label }}\r\n </monkey-button>\r\n <monkey-button\r\n [type]=\"config?.action?.firstAction?.actionType || 'primary'\"\r\n [color]=\"config?.action?.firstAction?.actionColor || 'theme'\"\r\n [icon]=\"config?.action?.firstAction?.icon\"\r\n [iconPosition]=\"config?.action?.firstAction?.iconPosition\"\r\n (click)=\"_firstAction()\"\r\n *ngIf=\"config?.action?.firstAction\"\r\n >\r\n {{ config?.action?.firstAction?.label }}\r\n </monkey-button>\r\n <monkey-button\r\n [type]=\"config?.action?.secondAction?.actionType || 'primary'\"\r\n [color]=\"config?.action?.secondAction?.actionColor || 'theme'\"\r\n [icon]=\"config?.action?.secondAction?.icon\"\r\n [iconPosition]=\"config?.action?.secondAction?.iconPosition\"\r\n (click)=\"_secondAction()\"\r\n *ngIf=\"config?.action?.secondAction\"\r\n >\r\n {{ config?.action?.secondAction?.label }}\r\n </monkey-button>\r\n <monkey-button\r\n [type]=\"config?.action?.thirdAction?.actionType || 'primary'\"\r\n [color]=\"config?.action?.thirdAction?.actionColor || 'theme'\"\r\n [icon]=\"config?.action?.thirdAction?.icon\"\r\n [iconPosition]=\"config?.action?.thirdAction?.iconPosition\"\r\n (click)=\"_thirdAction()\"\r\n *ngIf=\"config?.action?.thirdAction\"\r\n >\r\n {{ config?.action?.thirdAction?.label }}\r\n </monkey-button>\r\n </mecx-monkey-modal-footer>\r\n </mecx-monkey-modal>\r\n <mecx-monkey-modal-background></mecx-monkey-modal-background>\r\n `,\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class MonkeyModalComponent implements OnInit {\r\n @Input() config: MonkeyModalConfig;\r\n @Input() modalRef: MonkeyModalRefs<this>;\r\n @Input() onHandleConfirm = new EventEmitter<any>();\r\n\r\n _actionCancel: Function;\r\n _actionConfirm: Function;\r\n _firstAction: Function;\r\n _secondAction: Function;\r\n _thirdAction: Function;\r\n\r\n constructor(private modalService: MonkeyStyleGuideModalService) {}\r\n\r\n ngOnInit() {\r\n this._actionCancel = () => {\r\n if (this.config?.action?.cancel?.action) {\r\n this.config?.action?.cancel?.action();\r\n }\r\n if (!this.config?.action?.cancel?.keepOnAction) {\r\n this.modalService.close(this.modalRef);\r\n }\r\n };\r\n this._actionConfirm = () => {\r\n if (this.config?.action?.confirm?.action) {\r\n this.config?.action?.confirm?.action();\r\n if (!this.config?.action?.confirm?.keepOnAction) {\r\n this.modalService.close(this.modalRef);\r\n }\r\n } else this.onHandleConfirm.next(null);\r\n };\r\n this._firstAction = () => {\r\n if (this.config?.action?.firstAction?.action) {\r\n this.config?.action?.firstAction?.action();\r\n if (!this.config?.action?.firstAction?.keepOnAction) {\r\n this.modalService.close(this.modalRef);\r\n }\r\n }\r\n };\r\n this._secondAction = () => {\r\n if (this.config?.action?.secondAction?.action) {\r\n this.config?.action?.secondAction?.action();\r\n if (!this.config?.action?.secondAction?.keepOnAction) {\r\n this.modalService.close(this.modalRef);\r\n }\r\n }\r\n };\r\n this._thirdAction = () => {\r\n if (this.config?.action?.thirdAction?.action) {\r\n this.config?.action?.thirdAction?.action();\r\n if (!this.config?.action?.thirdAction?.keepOnAction) {\r\n this.modalService.close(this.modalRef);\r\n }\r\n }\r\n };\r\n }\r\n\r\n onClose() {\r\n this.modalService.close(this.modalRef);\r\n }\r\n}\r\n","import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core';\r\nimport { MonkeyModalComponent } from './modal.component';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MonkeyButtonModule } from '../button';\r\n\r\n@NgModule({\r\n declarations: [MonkeyModalComponent],\r\n imports: [CommonModule, FormsModule, ReactiveFormsModule, MonkeyButtonModule],\r\n exports: [MonkeyModalComponent],\r\n schemas: [NO_ERRORS_SCHEMA],\r\n})\r\nexport class MonkeyModalModule {}\r\n","/**************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n **************************/\nimport {\n Component,\n ViewEncapsulation,\n Input,\n Output,\n EventEmitter,\n} from '@angular/core';\nimport { MonkeyUtils } from '../../core';\n\n@Component({\n selector: 'monkey-expansion',\n template: `\n <mecx-monkey-expansion\n [id]=\"_id\"\n [ngClass]=\"\n ('mecx-monkey-expansion mecx-monkey-expansion__' + color || 'theme') +\n (disabled ? ' disabled' : '')\n \"\n >\n <mecx-monkey-expansion-header *ngIf=\"!open\" (click)=\"onToggleExpand()\">\n <label>\n {{ label }}\n </label>\n <helper>\n {{ helperMessage }}\n </helper>\n <monkey-icon icon=\"arrow-down-16\" [color]=\"'#4B4A53'\"></monkey-icon>\n </mecx-monkey-expansion-header>\n <mecx-monkey-expansion-header\n class=\"open\"\n *ngIf=\"open\"\n (click)=\"onToggleExpand()\"\n >\n <label>\n {{ label }}\n </label>\n <helper>\n {{ helperMessage }}\n </helper>\n <monkey-icon icon=\"arrow-up-16\" [color]=\"'#4B4A53'\"></monkey-icon>\n </mecx-monkey-expansion-header>\n <mecx-monkey-expansion-body *ngIf=\"open\">\n <ng-content></ng-content>\n </mecx-monkey-expansion-body>\n </mecx-monkey-expansion>\n `,\n encapsulation: ViewEncapsulation.None,\n})\nexport class MonkeyExpansionComponent {\n @Input() label: string;\n @Input() helperMessage: string;\n @Input() color: string;\n @Input() disabled: boolean = false;\n @Input() open: boolean = false;\n @Output() onChange = new EventEmitter<any>();\n\n public _id: string = `mecx-expansion-${MonkeyUtils.getRandomString(10)}`;\n\n constructor() {}\n\n onToggleExpand() {\n if (!this.disabled) {\n this.open = !this.open;\n this.onChange.next(this.open);\n }\n }\n}\n","import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core';\nimport { MonkeyExpansionComponent } from './expansion.component';\nimport { CommonModule } from '@angular/common';\nimport { MonkeyIconModule } from '../icon';\n\n@NgModule({\n declarations: [MonkeyExpansionComponent],\n imports: [CommonModule, MonkeyIconModule],\n exports: [MonkeyExpansionComponent],\n schemas: [NO_ERRORS_SCHEMA],\n})\nexport class MonkeyExpansionModule {}\n","/**************************\r\n * Copyright Monkey Exchange. All Rights Reserved\r\n * This style guide was developed by Monkey Exchange Team\r\n * MIT Licence\r\n **************************/\r\nimport {\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n TemplateRef,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\nimport { MonkeyUtils } from '../../core';\r\n\r\n@Component({\r\n selector: 'monkey-table',\r\n template: `\r\n <mecx-monkey-table>\r\n <mecx-monkey-table-header>\r\n <monkey-checkbox\r\n [value]=\"onHandleSelectedAll()\"\r\n (click)=\"onHandleSelectAll($event)\"\r\n *ngIf=\"selectable\"\r\n ></monkey-checkbox>\r\n <span *ngFor=\"let header of headers\" [style.width]=\"_maxWidth + '%'\">\r\n {{ header }}\r\n </span>\r\n </mecx-monkey-table-header>\r\n <mecx-monkey-table-body>\r\n <mecx-monkey-table-body-row\r\n [class.selected]=\"onHandleSelected(row)\"\r\n *ngFor=\"let row of newDataSource\"\r\n >\r\n <monkey-checkbox\r\n [value]=\"onHandleSelected(row)\"\r\n (click)=\"onHandleSelect($event, row)\"\r\n *ngIf=\"selectable\"\r\n ></monkey-checkbox>\r\n <ng-container *ngTemplateOutlet=\"rowTemplate; context: { row: row.data }\"></ng-container>\r\n </mecx-monkey-table-body-row>\r\n </mecx-monkey-table-body>\r\n <mecx-monkey-table-body *ngIf=\"loading\">\r\n <mecx-monkey-table-body-row *ngFor=\"let loading of [1, 2, 3]\">\r\n <progress class=\"monkey-progress monkey-progress__grey-white\"></progress>\r\n </mecx-monkey-table-body-row>\r\n </mecx-monkey-table-body>\r\n </mecx-monkey-table>\r\n `,\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class MonkeyTableComponent implements OnInit, OnChanges {\r\n @Input() headers: string[];\r\n\r\n @Input() dataSource: any[];\r\n\r\n @Input() loading = false;\r\n\r\n @Input() rowTemplate: TemplateRef<any>;\r\n\r\n @Input() selectable = false;\r\n\r\n @Input() callbackValidation = null;\r\n\r\n @Input() callbackValidationAll = null;\r\n\r\n @Input() selectedList = null;\r\n \r\n @Input() functionId: Function;\r\n\r\n @Output() selection = new EventEmitter<any>();\r\n\r\n @Output() selected = new EventEmitter<any>();\r\n\r\n newDataSource: any[];\r\n\r\n private list = [];\r\n\r\n _maxWidth = 100;\r\n\r\n constructor(public elRef: ElementRef) {\r\n //not to do\r\n }\r\n\r\n private emitSelection() {\r\n this.selection.next(this.list);\r\n }\r\n\r\n private handleDataSource() {\r\n this.newDataSource = this.dataSource.map((data) => {\r\n let id = null;\r\n if(this.functionId){\r\n id = this.functionId(data);\r\n }else{\r\n id = MonkeyUtils.getRandomString(20);\r\n }\r\n return { id, data };\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n setTimeout(() => {\r\n this._maxWidth = 100 / this.headers?.length;\r\n this.elRef.nativeElement.style.setProperty('--mecx-table-column-width', `${this._maxWidth}%`);\r\n }, 0);\r\n this.handleDataSource();\r\n if (this.selectedList) {\r\n this.list = this.selectedList;\r\n this.emitSelection();\r\n }\r\n }\r\n\r\n ngOnChanges() {\r\n this.handleDataSource();\r\n }\r\n\r\n onHandleSelect(event: MouseEvent, row: any) {\r\n const { callbackValidation } = this;\r\n event.preventDefault();\r\n\r\n const continueValidation = () => {\r\n this.emitSelection();\r\n this.selected.next({ row, selected: this.onHandleSelected(row) });\r\n };\r\n\r\n if (this.onHandleSelected(row)) {\r\n this.list.splice(this.list.indexOf(row), 1);\r\n continueValidation();\r\n } else {\r\n if (callbackValidation) {\r\n callbackValidation(row, () => {\r\n this.list.push(row);\r\n continueValidation();\r\n });\r\n } else {\r\n continueValidation();\r\n }\r\n }\r\n }\r\n\r\n onHandleSelectAll(event: MouseEvent) {\r\n const { callbackValidationAll } = this;\r\n event.preventDefault();\r\n\r\n const continueValidation = () => {\r\n this.emitSelection();\r\n this.selected.next({ row: this.list });\r\n };\r\n\r\n if (!this.list.length) {\r\n if (callbackValidationAll) {\r\n callbackValidationAll(this.newDataSource, (newData = null) => {\r\n if (newData) {\r\n this.list = [...newData];\r\n } else {\r\n this.list = [...this.newDataSource];\r\n }\r\n continueValidation();\r\n });\r\n }\r\n } else {\r\n this.list = [];\r\n continueValidation();\r\n }\r\n }\r\n\r\n onHandleSelected(row: any) {\r\n return !!this.list.find((value) => value.id === row.id);\r\n }\r\n\r\n onHandleSelectedAll() {\r\n return this.list.length === this.newDataSource.length;\r\n }\r\n}\r\n","/**************************\r\n * Copyright Monkey Exchange. All Rights Reserved\r\n * This style guide was developed by Monkey Exchange Team\r\n * MIT Licence\r\n **************************/\r\nimport { Component, ViewEncapsulation, forwardRef } from '@angular/core';\r\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'monkey-table-column',\r\n template: ` <ng-content> </ng-content> `,\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => MonkeyTableColumnComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class MonkeyTableColumnComponent {}\r\n","import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MonkeyIconModule } from '../icon';\r\nimport { MonkeyCheckboxModule } from '../checkbox';\r\nimport { MonkeyTableComponent } from './table.component';\r\nimport { MonkeyTableColumnComponent } from './table-column.component';\r\n\r\n@NgModule({\r\n declarations: [MonkeyTableComponent, MonkeyTableColumnComponent],\r\n imports: [CommonModule, MonkeyIconModule, MonkeyCheckboxModule],\r\n exports: [MonkeyTableComponent, MonkeyTableColumnComponent],\r\n schemas: [NO_ERRORS_SCHEMA],\r\n})\r\nexport class MonkeyTableModule {}\r\n","/**************************\r\n * Copyright Monkey Exchange. All Rights Reserved\r\n * This style guide was developed by Monkey Exchange Team\r\n * MIT Licence\r\n **************************/\r\nimport {\r\n Component,\r\n ViewEncapsulation,\r\n Input,\r\n HostListener,\r\n Output,\r\n EventEmitter,\r\n} from '@angular/core';\r\nimport { MonkeyUtils } from '../../core';\r\n\r\n@Component({\r\n selector: 'monkey-toggle',\r\n template: `\r\n <mecx-monkey-toggle [id]=\"_id\" [ngClass]=\"{ disabled: disabled }\">\r\n <input type=\"checkbox\" [checked]=\"value\" />\r\n <div [ngClass]=\"'slider-' + value.toString()\"></div>\r\n </mecx-monkey-toggle>\r\n `,\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class MonkeyToggleComponent {\r\n @Input() value: boolean = false;\r\n @Input() disabled: boolean = false;\r\n @Output() onChange = new EventEmitter<any>();\r\n\r\n public _id: string = `mecx-toggle-${MonkeyUtils.getRandomString(10)}`;\r\n public _open = false;\r\n\r\n constructor() {}\r\n\r\n @HostListener('click', ['$event'])\r\n onClick(event: any) {\r\n event?.preventDefault();\r\n event?.stopPropagation();\r\n if (!this.disabled) {\r\n this.value = !this.value;\r\n this.onChange.next(this.value);\r\n }\r\n }\r\n}\r\n","import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core';\nimport { MonkeyToggleComponent } from './toggle.component';\nimport { CommonModule } from '@angular/common';\n\n@NgModule({\n declarations: [MonkeyToggleComponent],\n imports: [CommonModule],\n exports: [MonkeyToggleComponent],\n schemas: [NO_ERRORS_SCHEMA],\n})\nexport class MonkeyToggleModule {}\n","/**************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n **************************/\nimport {\n ChangeDetectorRef,\n Component,\n ContentChildren,\n EventEmitter,\n forwardRef,\n Input,\n OnInit,\n Output,\n QueryList,\n ViewEncapsulation,\n} from '@angular/core';\nimport { MonkeyOptionComponent } from '../option';\nimport { MonkeyUtils } from '../../core/utils';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'monkey-tab',\n template: `\n <mecx-tab-body [ngClass]=\"position\">\n <ng-content></ng-content>\n </mecx-tab-body>\n `,\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MonkeyTabComponent),\n multi: true,\n },\n ],\n})\nexport class MonkeyTabComponent implements OnInit {\n @Input() position: string = 'horizontal';\n @Output() onChange = new EventEmitter<any>();\n @Input() selected: any;\n\n @ContentChildren(MonkeyOptionComponent, { descendants: true })\n private options!: QueryList<MonkeyOptionComponent>;\n\n public _selected: MonkeyOptionComponent;\n public _id: string = `mecx-tab-${MonkeyUtils.getRandomString(10)}`;\n\n constructor(private cdRef: ChangeDetectorRef) {}\n\n private onHandleSelected() {\n const { _selected } = this;\n this.options.forEach((op) => {\n op.selected = _selected;\n });\n\n let scrollValue = 0;\n if (_selected) {\n const { _id } = this._selected;\n scrollValue = document.getElementById(_id).offsetTop;\n }\n this.cdRef.detectChanges();\n this.onChange.next({\n label: _selected.label,\n value: _selected.value,\n });\n }\n\n private validateOptions() {\n if (!this.options) return;\n this.options.forEach((op) => {\n op.onSelectOption = this.onSelectOption.bind(this);\n op.type = 'select';\n op.selected = null;\n if (`${op.value}`.toLowerCase() === `${this.selected}`.toLowerCase()) {\n this._selected = op;\n op.selected = op;\n }\n });\n }\n\n ngOnInit() {\n setTimeout(() => {\n this.validateOptions();\n }, 0);\n }\n\n onSelectOption(select: MonkeyOptionComponent) {\n this._selected = select;\n const { value } = select;\n this.selected = value;\n this.onHandleSelected();\n }\n}\n","import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core';\nimport { MonkeyTabComponent } from './tab.component';\nimport { CommonModule } from '@angular/common';\nimport { MonkeyIconModule } from '../icon';\nimport { MonkeyOptionModule } from '../option';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\n@NgModule({\n declarations: [MonkeyTabComponent],\n imports: [CommonModule, FormsModule, ReactiveFormsModule, MonkeyOptionModule],\n exports: [MonkeyTabComponent],\n schemas: [NO_ERRORS_SCHEMA],\n})\nexport class MonkeyTabModule {}\n","/**************************\r\n * Copyright Monkey Exchange. All Rights Reserved\r\n * This style guide was developed by Monkey Exchange Team\r\n * MIT Licence\r\n **************************/\r\nimport { Component, Input, OnInit, ViewEncapsulation } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'monkey-stepper',\r\n template: `\r\n <div [ngClass]=\"position\">\r\n <div class=\"mecx-stepper-body\" *ngFor=\"let step of _totalSteps\">\r\n <div\r\n class=\"mecx-stepper-option mecx-stepper-option__theme\"\r\n [ngClass]=\"{ selected: step === selectedStep, completed: step < selectedStep }\"\r\n ></div>\r\n </div>\r\n </div>\r\n `,\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class MonkeyStepperComponent implements OnInit {\r\n @Input() totalSteps: number = 0;\r\n @Input() selectedStep: number = 0;\r\n @Input() position: string = 'horizontal';\r\n\r\n public _totalSteps: number[];\r\n public _selectedStep: number;\r\n\r\n constructor() {}\r\n\r\n ngOnInit() {\r\n const { totalSteps, selectedStep } = this;\r\n this._totalSteps = new Array(Number(totalSteps)).fill(1).map((step: number, index: number) => {\r\n return step + index;\r\n });\r\n this._selectedStep = Number(selectedStep);\r\n }\r\n}\r\n","import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core';\r\nimport { MonkeyStepperComponent } from './stepper.component';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MonkeyIconModule } from '../icon';\r\n\r\n@NgModule({\r\n declarations: [MonkeyStepperComponent],\r\n imports: [CommonModule, MonkeyIconModule],\r\n exports: [MonkeyStepperComponent],\r\n schemas: [NO_ERRORS_SCHEMA],\r\n})\r\nexport class MonkeyStepperModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { MonkeyStyleGuideService } from './core/services/monkey-style-guide.service';\r\nimport { MonkeyStyleGuideSettingsService } from './core/services/settings';\r\nimport { MonkeyStyleGuideThemeSettingsService } from './core/services/settings/monkey-style-guide-theme-settings.service';\r\nimport { MonkeyStyleGuideSnackbarService } from './core/services/snackbar';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@NgModule({\r\n imports: [HttpClientModule, CommonModule],\r\n providers: [\r\n MonkeyStyleGuideService,\r\n MonkeyStyleGuideSettingsService,\r\n MonkeyStyleGuideThemeSettingsService,\r\n MonkeyStyleGuideSnackbarService,\r\n ],\r\n})\r\nexport class MonkeyStyleGuideModule {}\r\n","/**************************\r\n * Copyright Monkey Exchange. All Rights Reserved\r\n * This style guide was developed by Monkey Exchange Team\r\n * MIT Licence \r\n**************************/\r\nexport * from './lib/components';\r\nexport * from './lib/core';\r\nexport * from './lib/monkey-style-guide.module';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {MonkeyStyleGuideService as ɵa} from './lib/core/services/monkey-style-guide.service';\nexport {MonkeyStyleGuideSettingsService as ɵb} from './lib/core/services/settings';\nexport {MonkeyStyleGuideThemeSettingsService as ɵc} from './lib/core/services/settings/monkey-style-guide-theme-settings.service';\nexport {MonkeyStyleGuideSnackbarService as ɵd} from './lib/core/services/snackbar';"],"names":[],"mappings":"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"}
|