monkey-style-guide-v2 0.0.16 → 0.0.17
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/esm2022/lib/components/index.mjs +4 -3
- package/esm2022/lib/components/monkey-modal/components/default.mjs +68 -0
- package/esm2022/lib/components/monkey-modal/directives/actions.mjs +29 -0
- package/esm2022/lib/components/monkey-modal/directives/content.mjs +26 -0
- package/esm2022/lib/components/monkey-modal/directives/subtitle.mjs +26 -0
- package/esm2022/lib/components/monkey-modal/directives/title.mjs +26 -0
- package/esm2022/lib/components/monkey-modal/index.mjs +12 -0
- package/esm2022/lib/components/monkey-modal/modal-config.mjs +18 -0
- package/esm2022/lib/components/monkey-modal/modal-ref.mjs +46 -0
- package/esm2022/lib/components/monkey-modal/modal.mjs +119 -0
- package/esm2022/lib/components/monkey-modal/modal.module.mjs +53 -0
- package/esm2022/lib/components/monkey-modal/service.mjs +92 -0
- package/esm2022/lib/components/monkey-modal/utils.mjs +23 -0
- package/fesm2022/monkey-style-guide-v2.mjs +601 -128
- package/fesm2022/monkey-style-guide-v2.mjs.map +1 -1
- package/lib/components/index.d.ts +3 -2
- package/lib/components/monkey-modal/components/default.d.ts +18 -0
- package/lib/components/monkey-modal/directives/actions.d.ts +7 -0
- package/lib/components/monkey-modal/directives/content.d.ts +6 -0
- package/lib/components/monkey-modal/directives/subtitle.d.ts +6 -0
- package/lib/components/monkey-modal/directives/title.d.ts +6 -0
- package/lib/components/monkey-modal/index.d.ts +11 -0
- package/lib/components/monkey-modal/modal-config.d.ts +33 -0
- package/lib/components/monkey-modal/modal-ref.d.ts +26 -0
- package/lib/components/monkey-modal/modal.d.ts +23 -0
- package/lib/components/monkey-modal/modal.module.d.ts +16 -0
- package/lib/components/monkey-modal/service.d.ts +28 -0
- package/lib/components/monkey-modal/utils.d.ts +16 -0
- package/monkey-style-guide-v2-0.0.17.tgz +0 -0
- package/package.json +1 -1
- package/monkey-style-guide-v2-0.0.16.tgz +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"monkey-style-guide-v2.mjs","sources":["../../../projects/monkey-style-guide-v2/src/utils/id-generator.ts","../../../projects/monkey-style-guide-v2/src/utils/tests-utils.ts","../../../projects/monkey-style-guide-v2/src/utils/utils.ts","../../../projects/monkey-style-guide-v2/src/lib/services/monkey-destroy.service.ts","../../../projects/monkey-style-guide-v2/src/lib/services/monkey-icons.service.ts","../../../projects/monkey-style-guide-v2/src/lib/interfaces/toast.ts","../../../projects/monkey-style-guide-v2/src/lib/services/monkey-toast.service.ts","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-accordion/monkey-accordion.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-accordion/monkey-accordion.component.html","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-icon/monkey-icon.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-icon/monkey-icon.component.html","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-alert/monkey-alert.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-alert/monkey-alert.component.html","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-breadcrumb/monkey-breadcrumb.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-breadcrumb/monkey-breadcrumb.component.html","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-button/monkey-button.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-button/monkey-button.component.html","../../../projects/monkey-style-guide-v2/src/lib/directives/error.ts","../../../projects/monkey-style-guide-v2/src/lib/directives/helper.ts","../../../projects/monkey-style-guide-v2/src/lib/directives/info.ts","../../../projects/monkey-style-guide-v2/src/lib/directives/label.ts","../../../projects/monkey-style-guide-v2/src/lib/directives/prefix.ts","../../../projects/monkey-style-guide-v2/src/lib/directives/suffix.ts","../../../projects/monkey-style-guide-v2/src/lib/directives/module.ts","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-checkbox/monkey-checkbox.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-checkbox/monkey-checkbox.component.html","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-divider/monkey-divider.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-form-field/form-field-control.ts","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-form-field/utils.ts","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-form-field/form-field.ts","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-form-field/form-field.html","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-form-field/module.ts","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-icon-button/monkey-icon-button.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-icon-button/monkey-icon-button.component.html","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-input/monkey-input-currency.directive.ts","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-input/validators.ts","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-input/monkey-input.directive.ts","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-input/monkey-input.module.ts","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-security-level/monkey-security-level.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-security-level/monkey-security-level.component.html","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-status/monkey-status.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-status/monkey-status.component.html","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-table/components/pagination-action/pagination-action.ts","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-table/components/pagination-action/pagination-action.html","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-table/components/pagination-label/pagination-label.ts","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-table/components/pagination-label/pagination-label.html","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-option/monkey-option.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-select/monkey-select.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-select/monkey-select.component.html","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-table/components/pagination-size/pagination-size.ts","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-table/components/pagination-size/pagination-size.html","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-table/table.ts","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-table/table.html","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-table/directives/column-checked.ts","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-table/directives/column-expansible.ts","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-table/directives/column-sortable.ts","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-table/directives/column-stick.ts","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-table/table.module.ts","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-toast/monkey-toast.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-toast/monkey-toast.component.html","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-toggle/monkey-toggle.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-toggle/monkey-toggle.component.html","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-toggle-line/monkey-toggle-line-button/monkey-toggle-line-button.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-toggle-line/monkey-toggle-line-button/monkey-toggle-line-button.component.html","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-toggle-line/monkey-toggle-line.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-toggle-line/monkey-toggle-line.component.html","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-tooltip/tooltip/tooltip.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-tooltip/tooltip/tooltip.component.html","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-tooltip/monkey-tooltip.directive.ts","../../../projects/monkey-style-guide-v2/src/public-api.ts","../../../projects/monkey-style-guide-v2/src/monkey-style-guide-v2.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\nconst counters: Record<string, number> = {};\n\n@Injectable({ providedIn: 'root' })\nexport class IdGenerator {\n getId(prefix: string): string {\n if (!Object.prototype.hasOwnProperty.call(counters, prefix)) {\n counters[prefix] = 1;\n }\n\n const currentCount = counters[prefix];\n counters[prefix] = currentCount + 1;\n\n return `${prefix}${currentCount}`;\n }\n}\n","export function stripHtmlComments(htmlContent: string) {\n return htmlContent.replace(/<!--(?!>)[\\S\\s]*?-->/g, '');\n}\n","export function getRandomString(len: number, charSet?: string): string {\n charSet = charSet || 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n\n return new Array(len)\n .fill('1')\n .map(() => {\n return charSet?.charAt(Math.floor(Math.random() * charSet.length));\n })\n .join('');\n}\n","import { Injectable, OnDestroy } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n@Injectable()\nexport class MonkeyDestroyService extends Subject<void> implements OnDestroy {\n ngOnDestroy(): void {\n this.next();\n this.complete();\n }\n}\n","/* eslint-disable max-len */\nimport { inject, Injectable } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyIconsService {\n private readonly _sanitizer = inject(DomSanitizer);\n\n private handleTrust(icon: string) {\n return this._sanitizer.bypassSecurityTrustHtml(icon);\n }\n\n get clear(): SafeHtml | null {\n return this.handleTrust(`\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" fill=\"none\"><path d=\"M7.815 7.277a.802.802 0 0 0-.459.349c-.103.167-.123.529-.038.694.028.055.854.906 1.836 1.89L10.939 12l-1.785 1.79c-.982.985-1.808 1.835-1.836 1.89a.926.926 0 0 0-.051.324c0 .494.414.812.922.707.183-.038.266-.114 2.001-1.844L12 13.062l1.81 1.805c1.731 1.725 1.818 1.806 2 1.844.58.12 1.021-.321.901-.901-.038-.182-.119-.269-1.844-2L13.062 12l1.805-1.81c1.73-1.735 1.806-1.818 1.844-2.001.105-.508-.213-.922-.707-.922a.926.926 0 0 0-.324.051c-.055.028-.905.854-1.89 1.836L12 10.939l-1.79-1.785c-.984-.982-1.826-1.803-1.87-1.825a.99.99 0 0 0-.525-.052\" fill-rule=\"evenodd\" fill=\"var(--mecx-color-gray-900)\"/></svg>\n `);\n }\n\n get calendar(): SafeHtml | null {\n return this.handleTrust(`\n <svg width=\"24\" height=\"24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M7.815 1.277a.8.8 0 0 0-.462.354c-.087.139-.094.198-.107.875l-.013.725-1.347.019c-1.236.018-1.371.026-1.646.107A2.807 2.807 0 0 0 2.352 5.26l-.092.32v13.84l.092.32a2.797 2.797 0 0 0 1.908 1.908l.32.092h14.84l.32-.092a2.797 2.797 0 0 0 1.908-1.908l.092-.32V5.58l-.092-.32a2.807 2.807 0 0 0-1.888-1.903c-.276-.081-.41-.089-1.65-.107l-1.35-.019v-.593c0-.757-.042-.96-.238-1.156-.349-.349-.903-.279-1.169.149-.087.139-.094.198-.107.879l-.014.73H8.76l-.001-.61c-.001-.68-.039-.91-.179-1.094-.159-.209-.502-.325-.765-.259M7.246 5.49c.013.681.02.74.107.879.357.574 1.223.443 1.363-.207.024-.113.044-.475.044-.804V4.76h6.472l.014.73c.013.681.02.74.107.879.357.574 1.223.443 1.363-.207.024-.113.044-.475.044-.804V4.76h1.238c1.452 0 1.525.014 1.876.366.352.351.366.424.366 1.876V8.24H3.756l.012-1.31c.012-1.277.014-1.314.104-1.482.155-.29.475-.562.768-.651.055-.016.661-.032 1.346-.034l1.246-.003.014.73m12.994 9.008c0 4.664-.001 4.742-.081 4.956-.109.29-.415.596-.705.705-.215.08-.28.081-7.454.081-7.159 0-7.239-.001-7.453-.081-.245-.091-.544-.363-.679-.615l-.088-.164-.011-4.81-.01-4.81H20.24v4.738M6.7 12.028a.967.967 0 0 0-.24.126.992.992 0 0 0 .097 1.695 1.005 1.005 0 0 0 1.352-.427c.096-.185.114-.59.035-.797a1.104 1.104 0 0 0-.521-.549c-.154-.07-.507-.094-.723-.048m5 0a.967.967 0 0 0-.24.126.992.992 0 0 0 .097 1.695 1.005 1.005 0 0 0 1.352-.427c.096-.185.114-.59.035-.797a1.104 1.104 0 0 0-.521-.549c-.154-.07-.507-.094-.723-.048m5 0a.967.967 0 0 0-.24.126.992.992 0 0 0 .097 1.695 1.005 1.005 0 0 0 1.352-.427c.096-.185.114-.59.035-.797a1.104 1.104 0 0 0-.521-.549c-.154-.07-.507-.094-.723-.048m-10 4a.967.967 0 0 0-.24.126.992.992 0 0 0 .097 1.695 1.005 1.005 0 0 0 1.352-.427c.096-.185.114-.59.035-.797a1.104 1.104 0 0 0-.521-.549c-.154-.07-.507-.094-.723-.048m5 0a.967.967 0 0 0-.24.126.992.992 0 0 0 .097 1.695 1.005 1.005 0 0 0 1.352-.427c.096-.185.114-.59.035-.797a1.104 1.104 0 0 0-.521-.549c-.154-.07-.507-.094-.723-.048\" fill-rule=\"evenodd\" fill=\"var(--mecx-color-gray-900)\"/></svg>\n `);\n }\n\n get arrowDown(): SafeHtml | null {\n return this.handleTrust(`\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M8 10L12 14L16 10\" stroke=\"var(--mecx-color-gray-900)\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n `);\n }\n\n get check(): SafeHtml | null {\n return this.handleTrust(\n `<svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M9.808 2.528 C 9.752 2.542,9.671 2.574,9.628 2.599 C 9.585 2.625,8.414 3.781,7.025 5.168 L 4.500 7.690 3.475 6.667 C 2.865 6.059,2.414 5.624,2.360 5.594 C 2.137 5.467,1.822 5.478,1.603 5.620 C 1.226 5.863,1.141 6.369,1.419 6.715 C 1.558 6.887,4.068 9.375,4.140 9.411 C 4.366 9.525,4.634 9.525,4.860 9.411 C 4.931 9.376,10.438 3.892,10.581 3.715 C 10.688 3.582,10.742 3.425,10.742 3.250 C 10.742 2.758,10.293 2.410,9.808 2.528 \" stroke=\"none\" fill-rule=\"evenodd\" fill=\"var(--mecx-color-theme-contrast-500\"></path></svg>`\n );\n }\n\n get minus(): SafeHtml | null {\n return this.handleTrust(\n `<svg width=\"8\" height=\"2\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M1.333 0.268 C 1.300 0.274,1.225 0.303,1.167 0.332 C 1.054 0.388,0.939 0.490,0.866 0.599 C 0.776 0.732,0.732 0.936,0.757 1.098 C 0.786 1.283,0.848 1.405,0.977 1.532 C 1.071 1.624,1.148 1.673,1.253 1.710 L 1.340 1.740 4.000 1.740 L 6.660 1.740 6.747 1.710 C 6.943 1.642,7.128 1.462,7.200 1.270 C 7.265 1.095,7.265 0.904,7.200 0.730 C 7.118 0.510,6.880 0.308,6.655 0.267 C 6.565 0.250,1.420 0.251,1.333 0.268\" stroke=\"none\" fill-rule=\"evenodd\" fill=\"var(--mecx-color-theme-contrast-500\"></path></svg>`\n );\n }\n\n get loading(): SafeHtml | null {\n return this.handleTrust(\n `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><style>.spinner_ajPY{transform-origin:center;animation:spinner_AtaB .75s infinite linear}@keyframes spinner_AtaB{100%{transform:rotate(360deg)}}</style><path d=\"M12,1A11,11,0,1,0,23,12,11,11,0,0,0,12,1Zm0,19a8,8,0,1,1,8-8A8,8,0,0,1,12,20Z\" opacity=\".25\"/><path d=\"M10.14,1.16a11,11,0,0,0-9,8.92A1.59,1.59,0,0,0,2.46,12,1.52,1.52,0,0,0,4.11,10.7a8,8,0,0,1,6.66-6.61A1.42,1.42,0,0,0,12,2.69h0A1.57,1.57,0,0,0,10.14,1.16Z\" class=\"spinner_ajPY\"/></svg>`\n );\n }\n}\n","import { ComponentRef } from '@angular/core';\nimport { MonkeyToastComponent } from '../components';\n\nexport class ToastRef {\n constructor(private readonly componentRef: ComponentRef<MonkeyToastComponent>) {\n // not to do\n }\n\n close() {\n this.componentRef.instance.close();\n }\n}\n\nexport type ToastPosition =\n | 'top-center'\n | 'top-left'\n | 'top-right'\n | 'bottom-center'\n | 'bottom-left'\n | 'bottom-right';\n\nexport type ToastType = 'default' | 'success' | 'error' | 'info' | 'question';\n\nexport type ToastConfig = {\n type?: ToastType;\n icon?: string;\n isClosable?: boolean;\n message: string;\n position?: ToastPosition;\n duration?: number;\n keepOpen?: boolean;\n actionLabel?: string;\n actionIcon?: string;\n action?: () => void;\n closeOnAction?: boolean;\n};\n","import { GlobalPositionStrategy, Overlay } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { Injectable } from '@angular/core';\nimport { getRandomString } from '../../utils';\nimport { MonkeyToastComponent } from '../components';\nimport { type ToastConfig, type ToastPosition, ToastRef } from '../interfaces';\n\n@Injectable()\nexport class MonkeyToastService {\n private lastToast?: ToastRef;\n\n constructor(private overlay: Overlay) {\n // no to do\n }\n\n private getPositionStrategy(position?: ToastPosition): GlobalPositionStrategy {\n const globalPosition = this.overlay.position().global();\n\n switch (position) {\n case 'top-left':\n return globalPosition.top('40px').start('40px');\n case 'top-center':\n return globalPosition.top('40px').centerHorizontally();\n case 'top-right':\n return globalPosition.top('40px').end('40px');\n case 'bottom-left':\n return globalPosition.bottom('40px').start('40px');\n case 'bottom-center':\n return globalPosition.bottom('40px').centerHorizontally();\n default:\n return globalPosition.bottom('40px').end('40px');\n }\n }\n\n show(toastConfig: ToastConfig) {\n if (this.lastToast) {\n this.lastToast.close();\n }\n\n const overlayRef = this.overlay.create({\n hasBackdrop: false,\n positionStrategy: this.getPositionStrategy(toastConfig.position)\n });\n const portal = new ComponentPortal(MonkeyToastComponent);\n const componentRef = overlayRef.attach(portal);\n this.lastToast = new ToastRef(componentRef);\n\n componentRef.instance.id = getRandomString(6);\n componentRef.instance.type = toastConfig.type ?? 'default';\n componentRef.instance.icon = toastConfig.icon;\n componentRef.instance.isClosable = toastConfig.isClosable ?? false;\n componentRef.instance.message = toastConfig.message;\n componentRef.instance.actionLabel = toastConfig.actionLabel;\n componentRef.instance.actionIcon = toastConfig.actionIcon;\n componentRef.instance.onActionClick.subscribe(() => {\n if (toastConfig.action) {\n toastConfig.action();\n\n if (toastConfig.closeOnAction ?? true) {\n componentRef.instance.close();\n }\n }\n });\n\n componentRef.instance.onClose.subscribe(() => {\n overlayRef.detach();\n });\n\n if (!toastConfig.keepOpen) {\n setTimeout(() => {\n componentRef.instance.close();\n }, toastConfig.duration ?? 4000);\n }\n\n return componentRef.instance;\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { animate, state, style, transition, trigger } from '@angular/animations';\nimport { CommonModule } from '@angular/common';\nimport { booleanAttribute, Component, inject, Input, TemplateRef } from '@angular/core';\nimport { SafeHtml } from '@angular/platform-browser';\nimport { IdGenerator } from '../../../utils';\nimport { MonkeyIconsService } from '../../services';\n\n@Component({\n selector: 'monkey-accordion',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './monkey-accordion.component.html',\n styleUrl: './monkey-accordion.component.scss',\n host: {\n 'data-testid': 'monkey-accordion',\n '[class.disabled]': 'disabled',\n '[attr.id]': 'id',\n '[id]': 'id'\n },\n animations: [\n trigger('content', [\n state(\n 'void',\n style({\n height: '0px',\n overflow: 'hidden'\n })\n ),\n transition(':enter', [\n animate(\n '300ms ease-in-out',\n style({\n height: '*',\n overflow: 'hidden'\n })\n )\n ]),\n transition(':leave', [\n animate(\n '300ms ease-in-out',\n style({\n height: '0px',\n overflow: 'hidden'\n })\n )\n ])\n ])\n ]\n})\nexport class MonkeyAccordionComponent {\n private readonly _icons = inject(MonkeyIconsService);\n\n @Input({ transform: booleanAttribute }) open = false;\n\n @Input({ transform: booleanAttribute }) disabled = false;\n\n @Input() set title(data: string | TemplateRef<any>) {\n if (data instanceof TemplateRef) {\n this.titleRef = data;\n } else {\n this.titleStr = data;\n }\n }\n\n titleStr: string | undefined;\n\n titleRef: TemplateRef<any> | undefined;\n\n imgArrowDown: SafeHtml | null = this._icons.arrowDown;\n\n protected _uid = inject(IdGenerator).getId('monkey-accordion-');\n\n protected _id!: string;\n\n @Input()\n get id(): string {\n return this._id;\n }\n\n set id(value: string) {\n this._id = value || this._uid;\n }\n\n constructor() {\n // eslint-disable-next-line no-self-assign\n this.id = this.id;\n }\n\n onClick() {\n if (this.disabled) return;\n this.open = !this.open;\n }\n}\n","<div class=\"header\" (click)=\"onClick()\">\n <div class=\"title\">\n @if (titleRef) {\n <ng-container *ngTemplateOutlet=\"titleRef\" />\n } @else {\n {{ titleStr }}\n }\n </div>\n <div [innerHTML]=\"imgArrowDown\" class=\"icon\" [class.rotated]=\"open\"></div>\n</div>\n<div class=\"content-wrapper\">\n @if (open) {\n <div [@content]>\n <div class=\"content\">\n <ng-content />\n </div>\n </div>\n }\n</div>\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { CommonModule } from '@angular/common';\nimport { Component, inject, Input, OnInit, ViewEncapsulation } from '@angular/core';\nimport { IdGenerator } from '../../../utils';\n\n@Component({\n selector: 'monkey-icon',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './monkey-icon.component.html',\n styleUrl: './monkey-icon.component.scss',\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class]': `_icon+' '+size`,\n '[attr.id]': 'id',\n '[id]': 'id'\n }\n})\nexport class MonkeyIconComponent implements OnInit {\n @Input() set icon(val: string) {\n if (val) {\n this._icon = `mk-i mk-i-${val}`;\n }\n }\n\n @Input() size = '';\n\n _icon = '';\n\n protected _uid = inject(IdGenerator).getId('monkey-icon-');\n\n protected _id!: string;\n\n @Input()\n get id(): string {\n return this._id;\n }\n\n set id(value: string) {\n this._id = value || this._uid;\n }\n\n constructor() {\n // eslint-disable-next-line no-self-assign\n this.id = this.id;\n }\n\n ngOnInit(): void {\n if (!this._icon) {\n throw new Error('monkey-icon must have icon input');\n }\n }\n}\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 inject,\n Input,\n input,\n InputSignal,\n output,\n OutputEmitterRef,\n ViewEncapsulation\n} from '@angular/core';\nimport { IdGenerator } from '../../../utils';\nimport { type MonkeyAlertType } from '../../interfaces';\nimport { MonkeyIconComponent } from '../monkey-icon';\n\n@Component({\n encapsulation: ViewEncapsulation.None,\n imports: [MonkeyIconComponent],\n selector: 'monkey-alert',\n standalone: true,\n styleUrl: './monkey-alert.component.scss',\n templateUrl: './monkey-alert.component.html',\n host: {\n 'data-testid': 'monkey-alert',\n '[attr.id]': 'id',\n '[id]': 'id'\n }\n})\nexport class MonkeyAlertComponent {\n buttonLabel: InputSignal<string> = input('');\n\n message: InputSignal<string> = input.required<string>();\n\n title: InputSignal<string> = input.required<string>();\n\n type: InputSignal<MonkeyAlertType> = input.required<MonkeyAlertType>();\n\n onButtonClicked: OutputEmitterRef<void> = output<void>();\n\n protected _uid = inject(IdGenerator).getId('monkey-alert-');\n\n protected _id!: string;\n\n @Input()\n get id(): string {\n return this._id;\n }\n\n set id(value: string) {\n this._id = value || this._uid;\n }\n\n constructor() {\n // eslint-disable-next-line no-self-assign\n this.id = this.id;\n }\n\n icon(type: MonkeyAlertType): string {\n const typeIcons = {\n alert: 'warning-outline',\n default: 'info',\n error: 'error-outline',\n info: 'info',\n success: 'checkmark-big-circle'\n };\n\n return typeIcons[type];\n }\n}\n","<div [class]=\"'monkey-alert__card ' + type()\">\n @if (type()) {\n <monkey-icon size=\"lg\" [class]=\"'monkey-alert__card__type-' + type()\" [icon]=\"icon(type())\" />\n }\n <div class=\"monkey-alert__card__content\">\n <h4 class=\"monkey-alert__card__title\">{{ title() }}</h4>\n <h5 class=\"monkey-alert__card__message\">{{ message() }}</h5>\n @if (buttonLabel()) {\n <div>\n <a class=\"monkey-alert__card__link\" (click)=\"onButtonClicked.emit()\">\n {{ buttonLabel() }}\n </a>\n </div>\n }\n </div>\n</div>\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { CommonModule } from '@angular/common';\nimport { booleanAttribute, Component, inject, Input, ViewEncapsulation } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { IdGenerator } from '../../../utils';\nimport { Breadcrumb } from '../../interfaces';\n\n@Component({\n selector: 'monkey-breadcrumb',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './monkey-breadcrumb.component.html',\n styleUrl: './monkey-breadcrumb.component.scss',\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-testid': 'monkey-breadcrumb',\n '[attr.id]': 'id',\n '[id]': 'id'\n }\n})\nexport class MonkeyBreadcrumbComponent {\n @Input({ required: true }) first!: Breadcrumb;\n\n @Input({ required: true }) last!: Breadcrumb;\n\n @Input({ transform: booleanAttribute }) colapsed: boolean = false;\n\n protected _router = inject(Router);\n\n protected _uid = inject(IdGenerator).getId('monkey-breadcrumb-');\n\n protected _id!: string;\n\n @Input()\n get id(): string {\n return this._id;\n }\n\n set id(value: string) {\n this._id = value || this._uid;\n }\n\n constructor() {\n // eslint-disable-next-line no-self-assign\n this.id = this.id;\n }\n\n handleNavigate(item: Breadcrumb) {\n if (item.callback) {\n item.callback();\n } else {\n this._router.navigate([item.path]);\n }\n }\n}\n","<div class=\"breadcrumbs\">\n <a class=\"first\" (click)=\"handleNavigate(first)\">\n {{ first.label | titlecase }}\n </a>\n <span>/</span>\n @if(colapsed){\n <span>...</span>\n <span>/</span>\n }\n <a class=\"last\" (click)=\"handleNavigate(last)\">\n {{ last.label | titlecase }}\n </a>\n</div>\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { CommonModule } from '@angular/common';\nimport { Component, HostListener, inject, Input, ViewEncapsulation } from '@angular/core';\nimport { IdGenerator } from '../../../utils/id-generator';\nimport { MonkeyButtonType } from '../../interfaces/button';\nimport { MonkeySize } from '../../interfaces/sizes';\n\n@Component({\n encapsulation: ViewEncapsulation.None,\n imports: [CommonModule],\n selector: 'monkey-button',\n standalone: true,\n styleUrl: './monkey-button.component.scss',\n templateUrl: './monkey-button.component.html',\n host: {\n 'data-testid': 'monkey-button',\n '[attr.id]': 'id',\n '[id]': 'id'\n }\n})\nexport class MonkeyButtonComponent {\n @Input() disabled!: boolean;\n\n @Input() size: MonkeySize = 'md';\n\n @Input() type: MonkeyButtonType = 'primary';\n\n protected _uid = inject(IdGenerator).getId('monkey-button-');\n\n protected _id!: string;\n\n @Input()\n get id(): string {\n return this._id;\n }\n\n set id(value: string) {\n this._id = value || this._uid;\n }\n\n constructor() {\n // eslint-disable-next-line no-self-assign\n this.id = this.id;\n }\n\n @HostListener('click', ['$event'])\n onClick(event: PointerEvent): void {\n if (this.disabled) {\n event.stopPropagation();\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n }\n}\n","<button class=\"mecx-button\" [ngClass]=\"type + ' ' + size\" [disabled]=\"disabled\">\n <div class=\"content\">\n <ng-content select=\"[first]\"></ng-content>\n <span><ng-content></ng-content></span>\n <ng-content select=\"[last]\"></ng-content>\n </div>\n</button>\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\n\nimport { Directive } from '@angular/core';\n\n@Directive({\n selector: 'monkey-error'\n})\nexport class MonkeyError {}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\n\nimport { Directive } from '@angular/core';\n\n@Directive({\n selector: 'monkey-helper'\n})\nexport class MonkeyHelper {}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\n\nimport { Directive } from '@angular/core';\n\n@Directive({\n selector: 'monkey-info'\n})\nexport class MonkeyInfo {}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\n\nimport { Directive } from '@angular/core';\n\n@Directive({\n selector: 'monkey-label'\n})\nexport class MonkeyLabel {}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\n\nimport { Directive } from '@angular/core';\n\n@Directive({\n selector: 'monkey-prefix'\n})\nexport class MonkeyPrefix {}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\n\nimport { Directive, HostListener, Input } from '@angular/core';\n\n@Directive({\n selector: 'monkey-suffix',\n host: {\n '[class.has-action]': 'hasAction'\n }\n})\nexport class MonkeySuffix {\n @Input('hasAction')\n set _hasAction(value: '') {\n this.hasAction = true;\n }\n\n hasAction = false;\n\n action: Function | null = null;\n\n @HostListener('click', ['$event'])\n onClick(event: PointerEvent): void {\n if (!this.action) {\n event.preventDefault();\n event.stopPropagation();\n } else {\n this.action(event);\n }\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\n\nimport { NgModule } from '@angular/core';\nimport { MonkeyError } from './error';\nimport { MonkeyHelper } from './helper';\nimport { MonkeyInfo } from './info';\nimport { MonkeyLabel } from './label';\nimport { MonkeyPrefix } from './prefix';\nimport { MonkeySuffix } from './suffix';\n\n@NgModule({\n declarations: [MonkeyError, MonkeyHelper, MonkeyInfo, MonkeyLabel, MonkeyPrefix, MonkeySuffix],\n exports: [MonkeyError, MonkeyHelper, MonkeyInfo, MonkeyLabel, MonkeyPrefix, MonkeySuffix]\n})\nexport class MonkeyDirectivesModule {}\n","import { animate, keyframes, style, transition, trigger } from '@angular/animations';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n EventEmitter,\n forwardRef,\n inject,\n Injector,\n Input,\n OnChanges,\n OnInit,\n Output,\n QueryList\n} from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n FormControlDirective,\n FormControlName,\n FormGroupDirective,\n FormsModule,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n NgControl,\n NgModel,\n ReactiveFormsModule,\n ValidationErrors,\n Validator\n} from '@angular/forms';\nimport { takeUntil } from 'rxjs';\nimport { IdGenerator } from '../../../utils';\nimport { MonkeyHelper, MonkeyInfo, MonkeyLabel } from '../../directives';\nimport { MonkeyDestroyService, MonkeyIconsService } from '../../services';\n\n@Component({\n selector: 'monkey-checkbox',\n standalone: true,\n imports: [ReactiveFormsModule, FormsModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: './monkey-checkbox.component.html',\n styleUrls: ['./monkey-checkbox.component.scss'],\n animations: [\n trigger('iconAnimation', [\n transition(':enter', [\n animate(\n '250ms ease-in-out',\n keyframes([\n style({ opacity: 0, transform: 'scale(0.7)' }),\n style({ opacity: 1, transform: 'scale(1)' })\n ])\n )\n ]),\n transition(':leave', [\n animate(\n '250ms ease-in-out',\n keyframes([\n style({ opacity: 1, transform: 'scale(1)' }),\n style({ opacity: 0, transform: 'scale(.7)' })\n ])\n )\n ])\n ])\n ],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => {\n // eslint-disable-next-line no-use-before-define\n return MonkeyCheckboxComponent;\n }),\n multi: true\n },\n {\n provide: NG_VALIDATORS,\n // eslint-disable-next-line no-use-before-define\n useExisting: MonkeyCheckboxComponent,\n multi: true\n },\n MonkeyDestroyService\n ],\n host: {\n 'data-testid': 'input-checkbox',\n class: 'mecx-checkbox',\n '[class.mecx-disabled]': 'disabled',\n '[class.mecx-checkbox-checked]': 'value',\n '[class.mecx-checkbox-focused]': 'isFocused',\n '[class.mecx-checkbox-indeterminate]': 'indeterminate',\n '[class.mecx-checkbox-invalid]': 'showInvalid',\n '[class.sm]': 'size.includes(\"sm\")',\n '[class.md]': 'size.includes(\"md\")',\n '[class.lg]': 'size.includes(\"lg\")'\n }\n})\nexport class MonkeyCheckboxComponent implements ControlValueAccessor, OnChanges, OnInit, Validator {\n @ContentChildren(MonkeyInfo, { descendants: true }) private infoChildren!: QueryList<MonkeyInfo>;\n\n @ContentChildren(MonkeyLabel, { descendants: true })\n private labelChildren!: QueryList<MonkeyLabel>;\n\n @ContentChildren(MonkeyHelper, { descendants: true })\n private helperChildren!: QueryList<MonkeyHelper>;\n\n @Input({ transform: booleanAttribute }) disabled = false;\n\n @Input({ transform: booleanAttribute }) indeterminate = false;\n\n @Input({ transform: booleanAttribute }) required = false;\n\n @Input({ transform: booleanAttribute }) showFooter = true;\n\n @Input() size: 'sm' | 'md' | 'lg' = 'md';\n\n @Output() onChange = new EventEmitter<boolean>();\n\n private _destroyed = inject(MonkeyDestroyService);\n\n private readonly icons = inject(MonkeyIconsService);\n\n private readonly idGenerator = inject(IdGenerator);\n\n private injector = inject(Injector);\n\n private cdr = inject(ChangeDetectorRef);\n\n control: AbstractControl<any, any> | null | undefined;\n\n readonly iconCheck = this.icons.check;\n\n readonly iconIndeterminate = this.icons.minus;\n\n readonly inputId = this.idGenerator.getId('input-checkbox-');\n\n @Input() value = false;\n\n isFocused = false;\n\n get showInvalid(): boolean {\n const touched = this.control?.touched || false;\n const invalid = this.control?.invalid || false;\n return !this.isFocused && touched && invalid;\n }\n\n get hasHeader(): boolean {\n return this.labelChildren.length > 0 || this.helperChildren.length > 0;\n }\n\n get isTouched(): boolean {\n return this.control?.touched ?? false;\n }\n\n get isInvalid(): boolean {\n return this.control?.invalid ?? false;\n }\n\n ngOnInit() {\n const ngControl = this.injector.get(NgControl, null, { self: true, optional: true });\n\n if (ngControl instanceof FormControlDirective || ngControl instanceof NgModel) {\n this.control = ngControl.control;\n } else if (ngControl instanceof FormControlName) {\n this.control = this.injector.get(FormGroupDirective).getControl(ngControl as FormControlName);\n\n this.control.statusChanges.pipe(takeUntil(this._destroyed)).subscribe(() => {\n this.cdr.markForCheck();\n });\n }\n }\n\n _onChange: any = () => {};\n\n _onTouched: any = () => {};\n\n _onValidatorChange: any = () => {};\n\n ngOnChanges(changes: any) {\n if (changes.required) {\n this._onValidatorChange();\n }\n }\n\n onBlur = () => {\n this._onTouched();\n this.isFocused = false;\n };\n\n onFocus = () => {\n this.isFocused = true;\n };\n\n validate(control: AbstractControl): ValidationErrors | null {\n return this.required && control.value !== true ? { required: true } : null;\n }\n\n writeValue(value: boolean): void {\n this.value = value;\n this.cdr.markForCheck();\n }\n\n registerOnChange(fn: any): void {\n this._onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this._onTouched = fn;\n }\n\n registerOnValidatorChange(fn: () => void): void {\n this._onValidatorChange = fn;\n }\n\n setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled;\n this.cdr.markForCheck();\n }\n\n onChangeEvent(event: Event): void {\n const checkbox = event.target as HTMLInputElement;\n\n if (this.indeterminate) {\n this.indeterminate = false;\n }\n\n this.value = checkbox.checked;\n this._onChange(this.value);\n this.onChange.next(this.value);\n this._onTouched();\n }\n\n getFooterMessages(): 'info' | 'error' | '' {\n const hasInfoChildren = this.infoChildren && this.infoChildren.length > 0;\n\n if (!this.disabled && this.isTouched && this.isInvalid) {\n return 'error';\n }\n\n if (hasInfoChildren) {\n return 'info';\n }\n\n return '';\n }\n}\n","@if (hasHeader) {\n <div class=\"header\">\n <ng-content select=\"monkey-label\" />\n <ng-content select=\"monkey-helper\" />\n </div>\n}\n<label [attr.for]=\"inputId\">\n <input\n type=\"checkbox\"\n [checked]=\"value\"\n [indeterminate]=\"indeterminate\"\n [disabled]=\"disabled\"\n (change)=\"onChangeEvent($event)\"\n (blur)=\"onBlur()\"\n (focus)=\"onFocus()\"\n [id]=\"inputId\"\n [required]=\"required\"\n />\n <span class=\"checkbox\">\n @if (indeterminate) {\n <div class=\"icon\" @iconAnimation [innerHTML]=\"iconIndeterminate\"></div>\n } @else if (value) {\n <div class=\"icon\" @iconAnimation [innerHTML]=\"iconCheck\"></div>\n }\n </span>\n <span class=\"checkbox-label\">\n <ng-content></ng-content>\n </span>\n</label>\n@if (showFooter) {\n @switch (getFooterMessages()) {\n @case ('error') {\n <ng-content select=\"monkey-error\" />\n }\n @case ('info') {\n <ng-content select=\"monkey-info\" />\n }\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport {\n booleanAttribute,\n Component,\n HostBinding,\n inject,\n Input,\n input,\n InputSignal,\n InputSignalWithTransform,\n ViewEncapsulation\n} from '@angular/core';\nimport { IdGenerator } from '../../../utils';\nimport { MonkeySize } from '../../interfaces';\n\n@Component({\n encapsulation: ViewEncapsulation.None,\n selector: 'monkey-divider',\n standalone: true,\n styleUrl: './monkey-divider.component.scss',\n template: '',\n host: {\n 'data-testid': 'monkey-divider',\n '[attr.id]': 'id',\n '[id]': 'id'\n }\n})\nexport class MonkeyDividerComponent {\n size: InputSignal<MonkeySize> = input<MonkeySize>('sm');\n\n vertical: InputSignalWithTransform<boolean, unknown> = input(false, {\n transform: booleanAttribute\n });\n\n @HostBinding('class')\n get classes(): string {\n return `${this.size()} ${this.vertical() ? 'vertical' : ''}`;\n }\n\n protected _uid = inject(IdGenerator).getId('monkey-divider-');\n\n protected _id!: string;\n\n @Input()\n get id(): string {\n return this._id;\n }\n\n set id(value: string) {\n this._id = value || this._uid;\n }\n\n constructor() {\n // eslint-disable-next-line no-self-assign\n this.id = this.id;\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\n\nimport { Directive } from '@angular/core';\nimport { AbstractControlDirective, NgControl } from '@angular/forms';\nimport { Observable } from 'rxjs';\n\n@Directive()\nexport abstract class MonkeyFormFieldControl {\n readonly id!: string;\n\n readonly ngControl!: NgControl | AbstractControlDirective | null;\n\n readonly disabled!: boolean;\n\n readonly focused!: boolean;\n\n readonly stateChanges!: Observable<void>;\n\n readonly type!: string;\n\n readonly currency!: boolean;\n\n readonly percent!: boolean;\n\n abstract onContainerClick(event: MouseEvent): void;\n\n loading?: boolean;\n\n disableToBeDirty?: boolean;\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\n\nexport function getCurrencySymbol(code: string) {\n const currency = code || 'BRL';\n\n const symbol = {\n BRL: 'R$',\n CLP: '$',\n MXN: '$',\n USD: '$'\n }[currency];\n\n return symbol;\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\n\nimport {\n AfterContentChecked,\n AfterContentInit,\n booleanAttribute,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n DEFAULT_CURRENCY_CODE,\n ElementRef,\n inject,\n Input,\n OnDestroy,\n QueryList,\n ViewEncapsulation\n} from '@angular/core';\nimport { SafeHtml } from '@angular/platform-browser';\nimport { merge, Subject, Subscription, takeUntil } from 'rxjs';\nimport { IdGenerator } from '../../../utils';\nimport {\n MonkeyError,\n MonkeyHelper,\n MonkeyInfo,\n MonkeyLabel,\n MonkeyPrefix,\n MonkeySuffix\n} from '../../directives';\nimport { MonkeyIconsService } from '../../services';\nimport { MonkeyFormFieldControl } from './form-field-control';\nimport { getCurrencySymbol } from './utils';\n\n@Component({\n encapsulation: ViewEncapsulation.None,\n selector: 'monkey-form-field',\n exportAs: 'monkeyFormField',\n templateUrl: './form-field.html',\n styleUrl: './form-field.scss',\n host: {\n class: 'mecx-form-field',\n '[class.mecx-disabled]': 'control.disabled',\n '[class.mecx-form-field-focused]': 'control.focused',\n '[class.mecx-form-field-invalid]': 'showInvalid',\n '[attr.id]': 'id',\n '[id]': 'id'\n }\n})\nexport class MonkeyFormFieldComponent implements AfterContentInit, AfterContentChecked, OnDestroy {\n @Input()\n get id(): string {\n return this._id;\n }\n\n set id(value: string) {\n this._id = value || this._uid;\n }\n\n @Input({ transform: booleanAttribute })\n hideClear!: boolean;\n\n @ContentChild(MonkeyFormFieldControl) private _formFieldControl!: MonkeyFormFieldControl;\n\n @ContentChildren(MonkeyLabel, { descendants: true })\n private _labelChildren!: QueryList<MonkeyLabel>;\n\n @ContentChildren(MonkeyHelper, { descendants: true })\n private _helperChildren!: QueryList<MonkeyHelper>;\n\n @ContentChildren(MonkeyPrefix, { descendants: true })\n private _prefixChildren!: QueryList<MonkeyPrefix>;\n\n @ContentChildren(MonkeySuffix, { descendants: true })\n private _suffixChildren!: QueryList<MonkeySuffix>;\n\n @ContentChildren(MonkeyInfo, { descendants: true })\n private _infoChildren!: QueryList<MonkeyInfo>;\n\n @ContentChildren(MonkeyError, { descendants: true })\n private _errorChildren!: QueryList<MonkeyError>;\n\n public elementRef = inject(ElementRef);\n\n private readonly _icons = inject(MonkeyIconsService);\n\n private readonly _changeDetectorRef = inject(ChangeDetectorRef);\n\n private readonly _idGenerator = inject(IdGenerator);\n\n private readonly _labelId = this._idGenerator.getId('monkey-label-');\n\n protected _uid = inject(IdGenerator).getId('monkey-form-field-');\n\n protected _id!: string;\n\n private _destroyed = new Subject<void>();\n\n private _isFocused: boolean | null = null;\n\n private _previousControl: MonkeyFormFieldControl | null = null;\n\n private _stateChanges: Subscription | undefined;\n\n private _valueChanges: Subscription | undefined;\n\n readonly currencySymbol = getCurrencySymbol(inject(DEFAULT_CURRENCY_CODE));\n\n readonly percentSymbol = '%';\n\n imgClear: SafeHtml | null = this._icons.clear;\n\n imgCalendar: SafeHtml | null = this._icons.calendar;\n\n imgLoading: SafeHtml | null = this._icons.loading;\n\n hasLabel = false;\n\n hasHelper = false;\n\n hasPrefix = false;\n\n hasSuffix = false;\n\n hasInfo = false;\n\n hasError = false;\n\n get control(): MonkeyFormFieldControl {\n return this._formFieldControl;\n }\n\n get labelId(): string {\n return this._labelId;\n }\n\n get showHeader(): boolean {\n return this.hasLabel || this.hasHelper;\n }\n\n get showFooter(): boolean {\n return this.hasInfo || this.hasError;\n }\n\n get showInvalid(): boolean {\n const touched = this.control.ngControl?.touched || false;\n const invalid = this.control.ngControl?.invalid || false;\n return (\n this.hasError && !this._isFocused && touched && invalid && !this.control.disableToBeDirty\n );\n }\n\n get showClear(): boolean {\n return (\n !!this.control.ngControl?.control?.value &&\n !this.control.disabled &&\n !this.control.loading &&\n !this.hideClear\n );\n }\n\n get showCalendar(): boolean {\n return this.control.type === 'date';\n }\n\n get showCurrency(): boolean {\n return this.control.currency;\n }\n\n get showPercent(): boolean {\n return this.control.percent;\n }\n\n get showLoading(): boolean {\n return this.control.loading || false;\n }\n\n constructor() {\n // eslint-disable-next-line no-self-assign\n this.id = this.id;\n }\n\n private updateFocusState() {\n if (this.control.focused && !this._isFocused) {\n this._isFocused = true;\n } else if (!this.control.focused && (this._isFocused || this._isFocused === null)) {\n this._isFocused = false;\n }\n }\n\n private handleFormFieldControl() {\n if (!this.control) {\n throw Error('monkey-form-field must have a MonkeyFormFieldControl');\n }\n }\n\n private checkPrefixAndSuffix() {\n this.hasPrefix = !!this._prefixChildren?.length;\n this.hasSuffix = !!this._suffixChildren?.length;\n const suffix = this._suffixChildren.get(0);\n if (suffix) {\n suffix.action = (event: MouseEvent) => {\n event.preventDefault();\n event.stopPropagation();\n };\n }\n }\n\n private initializePrefixAndSuffix() {\n this.checkPrefixAndSuffix();\n\n merge(this._prefixChildren.changes, this._suffixChildren.changes).subscribe(() => {\n this.checkPrefixAndSuffix();\n this._changeDetectorRef.markForCheck();\n });\n }\n\n private checkInfoError() {\n this.hasInfo = !!this._infoChildren?.length;\n this.hasError = !!this._errorChildren?.length;\n }\n\n private initializeInfoError() {\n this.checkInfoError();\n\n merge(this._infoChildren.changes, this._errorChildren.changes).subscribe(() => {\n this.checkInfoError();\n this._changeDetectorRef.markForCheck();\n });\n }\n\n private initializeComponents() {\n this.hasLabel = !!this._labelChildren?.length;\n this.hasHelper = !!this._helperChildren?.length;\n\n this.initializePrefixAndSuffix();\n this.initializeInfoError();\n }\n\n private initializeControl() {\n const { control } = this;\n\n this._stateChanges?.unsubscribe();\n this._stateChanges = control.stateChanges.subscribe(() => {\n this.updateFocusState();\n this._changeDetectorRef.markForCheck();\n });\n\n this._valueChanges?.unsubscribe();\n\n if (control.ngControl && control.ngControl.valueChanges) {\n this._valueChanges = control.ngControl.valueChanges\n .pipe(takeUntil(this._destroyed))\n .subscribe(() => {\n this._changeDetectorRef.markForCheck();\n });\n }\n }\n\n private openDatePicker() {\n const input: any = document.getElementById(this.control.id);\n if (input.showPicker) {\n input.showPicker();\n } else {\n input.focus();\n }\n }\n\n ngAfterContentInit() {\n this.handleFormFieldControl();\n this.initializeComponents();\n }\n\n ngAfterContentChecked() {\n this.handleFormFieldControl();\n\n if (this.control !== this._previousControl) {\n this.initializeControl();\n this._previousControl = this.control;\n }\n }\n\n ngOnDestroy() {\n this._stateChanges?.unsubscribe();\n this._valueChanges?.unsubscribe();\n this._destroyed.next();\n this._destroyed.complete();\n }\n\n getFooterMessages(): 'info' | 'error' | '' {\n const touched = this.control.ngControl?.touched;\n const invalid = this.control.ngControl?.invalid;\n const isFocused = this._isFocused;\n const hasInfoChildren = this._infoChildren && this._infoChildren.length > 0;\n\n const isControlEnabled = !this.control.disabled;\n const isControlDisableToBeDirty = !this.control.disableToBeDirty;\n const isTouched = touched;\n const isInvalid = invalid;\n const isNotFocused = !isFocused;\n\n if (isControlEnabled && isTouched && isInvalid && isNotFocused && isControlDisableToBeDirty) {\n return 'error';\n }\n\n if (hasInfoChildren) {\n return 'info';\n }\n\n return '';\n }\n\n getSymbols(): string {\n if (this.showCurrency && this.currencySymbol) {\n return this.currencySymbol;\n }\n if (this.showPercent && this.percentSymbol) {\n return this.percentSymbol;\n }\n\n return '';\n }\n\n onClear(event: MouseEvent) {\n event.preventDefault();\n event.stopPropagation();\n this.control.ngControl?.control?.setValue('');\n this.control.ngControl?.control?.markAsTouched();\n }\n\n onOpenCalendar(event: MouseEvent) {\n event.preventDefault();\n event.stopPropagation();\n if (this.control.type === 'date') {\n this.openDatePicker();\n }\n }\n}\n","@if (showHeader) {\n <div class=\"mecx-form-field-header\" (click)=\"control.onContainerClick($event)\">\n <label [id]=\"labelId\" [attr.for]=\"control.id\">\n <ng-content select=\"monkey-label\"></ng-content>\n </label>\n <ng-content select=\"monkey-helper\"></ng-content>\n </div>\n}\n\n<div class=\"mecx-form-field-body\" (click)=\"control.onContainerClick($event)\">\n @if (hasPrefix) {\n <ng-content select=\"monkey-prefix\"></ng-content>\n }\n @if (getSymbols(); as symbols) {\n <div class=\"mecx-form-field-prefix-symbol\">\n {{ symbols }}\n </div>\n }\n\n <ng-content></ng-content>\n\n @if (showClear) {\n <div [innerHTML]=\"imgClear\" class=\"mecx-clear\" (click)=\"onClear($event)\"></div>\n }\n @if (showCalendar) {\n <div [innerHTML]=\"imgCalendar\" class=\"mecx-calendar\" (click)=\"onOpenCalendar($event)\"></div>\n }\n @if (showLoading) {\n <div [innerHTML]=\"imgLoading\" class=\"mecx-form-field-loading\"></div>\n }\n\n @if (hasSuffix) {\n <ng-content select=\"monkey-suffix\"></ng-content>\n }\n</div>\n\n@if (showFooter) {\n <div class=\"mecx-form-field-footer\" (click)=\"control.onContainerClick($event)\">\n @switch (getFooterMessages()) {\n @case ('error') {\n <ng-content select=\"monkey-error\"></ng-content>\n }\n @case ('info') {\n <div class=\"mecx-form-field-info\">\n <ng-content select=\"monkey-info\"></ng-content>\n </div>\n }\n }\n </div>\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\n\nimport { NgModule } from '@angular/core';\nimport { MonkeyFormFieldComponent } from './form-field';\n\n@NgModule({\n declarations: [MonkeyFormFieldComponent],\n exports: [MonkeyFormFieldComponent]\n})\nexport class MonkeyFormFieldModule {}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { CommonModule } from '@angular/common';\nimport { Component, HostListener, inject, Input, ViewEncapsulation } from '@angular/core';\nimport { IdGenerator } from '../../../utils';\nimport { MonkeyIconComponent } from '../monkey-icon';\n\n@Component({\n selector: 'monkey-icon-button',\n standalone: true,\n imports: [CommonModule, MonkeyIconComponent],\n templateUrl: './monkey-icon-button.component.html',\n styleUrl: './monkey-icon-button.component.scss',\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-testid': 'monkey-icon-button',\n '[attr.id]': 'id',\n '[id]': 'id'\n }\n})\nexport class MonkeyIconButtonComponent {\n @Input() type: 'primary' | 'secondary' | 'tertiary' = 'primary';\n\n @Input() size: 'sm' | 'md' | 'lg' = 'md';\n\n @Input() disabled: boolean = false;\n\n @Input() icon = '';\n\n protected _uid = inject(IdGenerator).getId('monkey-icon-button-');\n\n protected _id!: string;\n\n @Input()\n get id(): string {\n return this._id;\n }\n\n set id(value: string) {\n this._id = value || this._uid;\n }\n\n constructor() {\n // eslint-disable-next-line no-self-assign\n this.id = this.id;\n }\n\n @HostListener('click', ['$event'])\n onClick(event: any) {\n if (this.disabled) {\n event.stopPropagation();\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n }\n}\n","<button class=\"mecx-icon-button\" [ngClass]=\"type + ' ' + size\" [disabled]=\"disabled\">\n <div class=\"content\">\n <monkey-icon [icon]=\"icon\" [size]=\"size\" first></monkey-icon>\n </div>\n</button>\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\n\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { CurrencyPipe } from '@angular/common';\nimport {\n booleanAttribute,\n ChangeDetectorRef,\n DEFAULT_CURRENCY_CODE,\n Directive,\n ElementRef,\n inject,\n Input,\n LOCALE_ID,\n OnChanges,\n OnDestroy,\n OnInit,\n Renderer2,\n SimpleChanges\n} from '@angular/core';\nimport { NgControl, Validators } from '@angular/forms';\nimport { Subject, Subscription, takeUntil } from 'rxjs';\nimport { IdGenerator } from '../../../utils';\nimport { MonkeyDestroyService } from '../../services';\nimport { MonkeyFormFieldControl } from '../monkey-form-field';\n\n@Directive({\n selector: 'input[monkey-input-currency]',\n exportAs: 'monkeyInput',\n host: {\n class: 'mecx-input',\n '[class.mecx-input-disabled]': 'disabled',\n '[id]': 'id',\n '[disabled]': 'disabled',\n '[required]': 'required',\n '[attr.name]': 'name || null',\n '[attr.disabled]': 'disabled || null',\n '[attr.aria-invalid]': '(empty && required) ? null : errorState',\n '[attr.aria-required]': 'required',\n '[attr.id]': 'id',\n '(focus)': 'focusChanged(true)',\n '(focusout)': 'focusOutChanged()',\n '(blur)': 'focusChanged(false)'\n },\n providers: [\n {\n provide: MonkeyFormFieldControl,\n // eslint-disable-next-line no-use-before-define\n useExisting: MonkeyInputCurrencyDirective\n },\n MonkeyDestroyService\n ]\n})\nexport class MonkeyInputCurrencyDirective\n implements MonkeyFormFieldControl, OnChanges, OnInit, OnDestroy\n{\n protected _elementRef =\n inject<ElementRef<HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement>>(ElementRef);\n\n protected _uid = inject(IdGenerator).getId('monkey-input-currency-');\n\n protected _id!: string;\n\n readonly stateChanges: Subject<void> = new Subject<void>();\n\n @Input() name!: string;\n\n @Input({ transform: booleanAttribute })\n get disabled(): boolean {\n if (this.ngControl && this.ngControl.disabled !== null) {\n return this.ngControl.disabled;\n }\n return this._disabled;\n }\n\n set disabled(value: boolean) {\n this._disabled = value;\n\n if (this.focused) {\n this.focused = false;\n this.stateChanges.next();\n }\n }\n\n @Input()\n get id(): string {\n return this._id;\n }\n\n set id(value: string) {\n this._id = value || this._uid;\n }\n\n @Input()\n get required(): boolean {\n return this._required ?? this.ngControl?.control?.hasValidator(Validators.required) ?? false;\n }\n\n set required(value: BooleanInput) {\n this._required = coerceBooleanProperty(value);\n }\n\n protected _required: boolean | undefined;\n\n protected _disabled = false;\n\n @Input()\n get type(): string {\n return this._type;\n }\n\n set type(value: string) {\n this._type = value;\n }\n\n protected _type = 'text';\n\n get currency(): boolean {\n return true;\n }\n\n get percent(): boolean {\n return false;\n }\n\n private readonly _changeDetectorRef = inject(ChangeDetectorRef);\n\n private readonly _currencyCode = inject(DEFAULT_CURRENCY_CODE);\n\n private readonly _localeId = inject(LOCALE_ID);\n\n private _destroyed = new Subject<void>();\n\n private _valueChanges: Subscription | undefined;\n\n private _rawValue = 0;\n\n ngControl = inject(NgControl, { self: true, optional: true });\n\n focused: boolean = false;\n\n constructor(\n private el: ElementRef,\n private renderer: Renderer2,\n private currencyPipe: CurrencyPipe\n ) {\n // eslint-disable-next-line no-self-assign\n this.id = this.id;\n }\n\n private markAsUntouched() {\n this.ngControl?.control?.markAsUntouched();\n }\n\n private focus(options?: FocusOptions): void {\n this._elementRef.nativeElement.focus(options);\n this.markAsUntouched();\n }\n\n private formatValue(value: string): string | null {\n return this.currencyPipe.transform(\n value,\n this._currencyCode || 'BRL',\n '',\n '1.2-2',\n this._localeId || 'pt-BR'\n );\n }\n\n private handleControlValue() {\n const value = this.ngControl?.control?.value;\n if (this._rawValue !== value) {\n this._rawValue = value;\n let handled = value;\n const decimal = `${value}`.split('.')[1];\n if (`${decimal}`.length >= 2) {\n handled = `${value}`.replace(/[^0-9]/g, '');\n handled = `${Number(handled) / 100}`;\n }\n\n this.ngControl?.control?.setValue(Number(handled), { emitEvent: false, onlySelf: true });\n const formattedValue = this.formatValue(handled);\n this.renderer.setProperty(this.el.nativeElement, 'value', formattedValue);\n this._changeDetectorRef.markForCheck();\n }\n }\n\n ngOnInit(): void {\n this.handleControlValue();\n this._valueChanges?.unsubscribe();\n\n this._valueChanges = this.ngControl?.control?.valueChanges\n .pipe(takeUntil(this._destroyed))\n .subscribe(() => {\n this.handleControlValue();\n });\n }\n\n ngOnDestroy(): void {\n this.stateChanges.complete();\n this._valueChanges?.unsubscribe();\n }\n\n ngOnChanges({ disabled }: SimpleChanges): void {\n if (!disabled) {\n this.stateChanges.next();\n }\n }\n\n onContainerClick() {\n if (!this.focused) {\n this.focus();\n }\n }\n\n focusChanged(isFocused: boolean) {\n if (isFocused === this.focused) {\n return;\n }\n\n if (isFocused && this.disabled) {\n const element = this._elementRef.nativeElement as HTMLInputElement;\n element.setSelectionRange(0, 0);\n }\n\n this.markAsUntouched();\n this.focused = isFocused;\n this.stateChanges.next();\n }\n\n focusOutChanged() {\n this.ngControl?.control?.markAsTouched();\n }\n}\n","import { getSupportedInputTypes } from '@angular/cdk/platform';\n\nconst INPUT_INVALID_TYPES = [\n 'button',\n 'checkbox',\n 'file',\n 'image',\n 'radio',\n 'range',\n 'reset',\n 'submit'\n];\n\nexport function validateType(type: string) {\n if (INPUT_INVALID_TYPES.indexOf(type) > -1 || !getSupportedInputTypes().has(type)) {\n throw Error(`Input type \"${type}\" isn't supported.`);\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\n\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n booleanAttribute,\n Directive,\n ElementRef,\n inject,\n Input,\n OnChanges,\n OnDestroy,\n SimpleChanges\n} from '@angular/core';\nimport { NgControl, Validators } from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { IdGenerator } from '../../../utils';\nimport { MonkeyDestroyService } from '../../services';\nimport { MonkeyFormFieldControl } from '../monkey-form-field';\nimport { validateType } from './validators';\n\n@Directive({\n selector: 'input[monkey-input],textarea[monkey-input]',\n exportAs: 'monkeyInput',\n host: {\n class: 'mecx-input',\n 'data-testid': 'monkey-input',\n '[class.mecx-input-disabled]': 'disabled',\n '[id]': 'id',\n '[disabled]': 'disabled',\n '[required]': 'required',\n '[attr.name]': 'name || null',\n '[attr.disabled]': 'disabled || null',\n '[attr.aria-invalid]': '(empty && required) ? null : errorState',\n '[attr.aria-required]': 'required',\n '[attr.id]': 'id',\n '(focus)': 'focusChanged(true)',\n '(focusout)': 'focusOutChanged()',\n '(blur)': 'focusChanged(false)'\n },\n providers: [\n {\n provide: MonkeyFormFieldControl,\n // eslint-disable-next-line no-use-before-define\n useExisting: MonkeyInputDirective\n },\n MonkeyDestroyService\n ]\n})\nexport class MonkeyInputDirective implements MonkeyFormFieldControl, OnChanges, OnDestroy {\n protected _elementRef =\n inject<ElementRef<HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement>>(ElementRef);\n\n protected _uid = inject(IdGenerator).getId('monkey-input-');\n\n protected _id!: string;\n\n readonly stateChanges: Subject<void> = new Subject<void>();\n\n @Input() name!: string;\n\n @Input({ transform: booleanAttribute })\n get disabled(): boolean {\n if (this.ngControl && this.ngControl.disabled !== null) {\n return this.ngControl.disabled;\n }\n return this._disabled;\n }\n\n set disabled(value: boolean) {\n this._disabled = value;\n\n if (this.focused) {\n this.focused = false;\n this.stateChanges.next();\n }\n }\n\n @Input()\n get id(): string {\n return this._id;\n }\n\n set id(value: string) {\n this._id = value || this._uid;\n }\n\n @Input()\n get required(): boolean {\n return this._required ?? this.ngControl?.control?.hasValidator(Validators.required) ?? false;\n }\n\n set required(value: BooleanInput) {\n this._required = coerceBooleanProperty(value);\n }\n\n protected _required: boolean | undefined;\n\n protected _disabled = false;\n\n @Input()\n get type(): string {\n return this._type;\n }\n\n set type(value: string) {\n validateType(value);\n this._type = value || 'text';\n\n (this._elementRef.nativeElement as HTMLInputElement).type = this._type;\n }\n\n protected _type = 'text';\n\n get currency(): boolean {\n return false;\n }\n\n @Input()\n get percent(): boolean {\n return this._percent;\n }\n\n set percent(value: '') {\n this._percent = true;\n }\n\n protected _percent = false;\n\n ngControl = inject(NgControl, { self: true, optional: true });\n\n focused: boolean = false;\n\n constructor() {\n // eslint-disable-next-line no-self-assign\n this.id = this.id;\n }\n\n private markAsUntouched() {\n this.ngControl?.control?.markAsUntouched();\n }\n\n private focus(options?: FocusOptions): void {\n this._elementRef.nativeElement.focus(options);\n this.markAsUntouched();\n }\n\n ngOnDestroy(): void {\n this.stateChanges.complete();\n }\n\n ngOnChanges({ disabled }: SimpleChanges): void {\n if (!disabled) {\n this.stateChanges.next();\n }\n }\n\n onContainerClick() {\n if (!this.focused) {\n this.focus();\n }\n }\n\n focusChanged(isFocused: boolean) {\n if (isFocused === this.focused) {\n return;\n }\n\n if (isFocused && this.disabled) {\n const element = this._elementRef.nativeElement as HTMLInputElement;\n\n if (element.type === 'number') {\n element.type = 'text';\n element.setSelectionRange(0, 0);\n element.type = 'number';\n } else {\n element.setSelectionRange(0, 0);\n }\n }\n\n this.markAsUntouched();\n this.focused = isFocused;\n this.stateChanges.next();\n }\n\n focusOutChanged() {\n this.ngControl?.control?.markAsTouched();\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\n\nimport { CurrencyPipe } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MonkeyInputCurrencyDirective } from './monkey-input-currency.directive';\nimport { MonkeyInputDirective } from './monkey-input.directive';\n\n@NgModule({\n providers: [CurrencyPipe],\n declarations: [MonkeyInputDirective, MonkeyInputCurrencyDirective],\n exports: [MonkeyInputDirective, MonkeyInputCurrencyDirective]\n})\nexport class MonkeyInputModule {}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { CommonModule } from '@angular/common';\nimport { Component, HostBinding, inject, Input, input, ViewEncapsulation } from '@angular/core';\nimport { IdGenerator } from '../../../utils';\n\n@Component({\n encapsulation: ViewEncapsulation.None,\n imports: [CommonModule],\n selector: 'monkey-security-level',\n standalone: true,\n styleUrl: './monkey-security-level.component.scss',\n templateUrl: './monkey-security-level.component.html',\n host: {\n 'data-testid': 'monkey-security-level',\n '[attr.id]': 'id',\n '[id]': 'id'\n }\n})\nexport class MonkeySecurityLevelComponent {\n label = input<string>();\n\n score = input.required<number>();\n\n strengthLabel = input<string>();\n\n @HostBinding('class')\n public get class(): string {\n if (this.score() === 0) {\n return 'empty';\n }\n\n if (this.score() < 300) {\n return 'weak';\n }\n\n if (this.score() >= 300 && this.score() < 800) {\n return 'medium';\n }\n\n if (this.score() >= 800 && this.score() < 1000) {\n return 'strong';\n }\n\n return 'very-strong';\n }\n\n protected _uid = inject(IdGenerator).getId('monkey-security-level-');\n\n protected _id!: string;\n\n @Input()\n get id(): string {\n return this._id;\n }\n\n set id(value: string) {\n this._id = value || this._uid;\n }\n\n constructor() {\n // eslint-disable-next-line no-self-assign\n this.id = this.id;\n }\n}\n","<div class=\"body\">\n <div>\n <span data-testid=\"label\" *ngIf=\"label() as lb\">\n {{ lb }}\n </span>\n <span data-testid=\"str-label\" class=\"level-info\" *ngIf=\"strengthLabel() as strLabel\">\n {{ strLabel }}\n </span>\n </div>\n <div class=\"bar\"></div>\n</div>\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { CommonModule } from '@angular/common';\nimport { Component, HostBinding, inject, Input, input } from '@angular/core';\nimport { IdGenerator } from '../../../utils';\nimport { MonkeySize } from '../../interfaces';\n\ntype Status = 'default' | 'success' | 'warning' | 'error' | 'question' | 'info';\n\n@Component({\n selector: 'monkey-status',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './monkey-status.component.html',\n styleUrl: './monkey-status.component.scss',\n host: {\n 'data-testid': 'monkey-status',\n '[attr.id]': 'id',\n '[id]': 'id'\n }\n})\nexport class MonkeyStatusComponent {\n type = input.required<Status>();\n\n size = input<MonkeySize>('md');\n\n label = input<string>();\n\n @HostBinding('class')\n public get class(): string {\n return `${this.type()} ${this.size()}`;\n }\n\n protected _uid = inject(IdGenerator).getId('monkey-status-');\n\n protected _id!: string;\n\n @Input()\n get id(): string {\n return this._id;\n }\n\n set id(value: string) {\n this._id = value || this._uid;\n }\n\n constructor() {\n // eslint-disable-next-line no-self-assign\n this.id = this.id;\n }\n}\n","<div class=\"status\"></div>\n<span *ngIf=\"label() as lb\">\n {{ lb }}\n</span>\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\n\nimport { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, inject, Input, Output, ViewEncapsulation } from '@angular/core';\nimport { IdGenerator } from '../../../../../utils';\nimport { MonkeyButtonComponent } from '../../../monkey-button';\n\n@Component({\n standalone: true,\n imports: [CommonModule, MonkeyButtonComponent],\n encapsulation: ViewEncapsulation.None,\n selector: 'monkey-pagination-action',\n exportAs: 'monkeyPaginationAction',\n templateUrl: './pagination-action.html',\n styleUrl: './pagination-action.scss',\n host: {\n 'data-testid': 'monkey-pagination-action',\n '[attr.id]': 'id',\n '[id]': 'id'\n }\n})\nexport class MonkeyPaginationActionComponent {\n @Input() disabled!: boolean;\n\n @Input() first!: boolean;\n\n @Input() last!: boolean;\n\n @Input({ required: true }) next: boolean = false;\n\n @Input({ required: true }) prev: boolean = false;\n\n @Output() onAction = new EventEmitter();\n\n protected _uid = inject(IdGenerator).getId('monkey-pagination-action-');\n\n protected _id!: string;\n\n @Input()\n get id(): string {\n return this._id;\n }\n\n set id(value: string) {\n this._id = value || this._uid;\n }\n\n constructor() {\n // eslint-disable-next-line no-self-assign\n this.id = this.id;\n }\n}\n","<monkey-button\n type=\"secondary\"\n size=\"sm\"\n (click)=\"onAction.next('prev')\"\n [disabled]=\"disabled || !prev\"\n>\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M11.670 8.630 C 9.335 10.964,8.550 11.772,8.523 11.870 C 8.501 11.947,8.501 12.053,8.523 12.130 C 8.574 12.316,14.682 18.423,14.870 18.477 C 15.231 18.581,15.581 18.231,15.477 17.869 C 15.450 17.774,14.687 16.987,12.570 14.870 L 9.700 12.000 12.570 9.130 C 14.687 7.013,15.450 6.226,15.477 6.131 C 15.528 5.951,15.464 5.747,15.316 5.623 C 15.219 5.541,15.151 5.520,14.988 5.520 L 14.781 5.520 11.670 8.630 \"\n stroke=\"none\"\n fill-rule=\"evenodd\"\n fill=\"black\"\n ></path>\n </svg>\n</monkey-button>\n\n<monkey-button\n type=\"secondary\"\n size=\"sm\"\n (click)=\"onAction.next('next')\"\n [disabled]=\"disabled || !next\"\n>\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M8.751 5.583 C 8.552 5.691,8.459 6.004,8.564 6.213 C 8.588 6.261,9.889 7.583,11.454 9.150 L 14.300 12.000 11.454 14.850 C 9.889 16.418,8.588 17.739,8.564 17.787 C 8.357 18.197,8.823 18.640,9.232 18.423 C 9.363 18.353,15.373 12.337,15.436 12.213 C 15.497 12.092,15.491 11.897,15.423 11.768 C 15.353 11.637,9.337 5.627,9.213 5.564 C 9.092 5.503,8.881 5.512,8.751 5.583 \"\n stroke=\"none\"\n fill-rule=\"evenodd\"\n fill=\"black\"\n ></path>\n </svg>\n</monkey-button>\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\n\nimport { Component, inject, Input, ViewEncapsulation } from '@angular/core';\nimport { IdGenerator } from '../../../../../utils';\n\n@Component({\n standalone: true,\n encapsulation: ViewEncapsulation.None,\n selector: 'monkey-pagination-label',\n exportAs: 'monkeyPaginationLabel',\n templateUrl: './pagination-label.html',\n styleUrl: './pagination-label.scss',\n host: {\n 'data-testid': 'monkey-pagination-label',\n '[attr.id]': 'id',\n '[id]': 'id'\n }\n})\nexport class MonkeyPaginationLabelComponent {\n protected _uid = inject(IdGenerator).getId('monkey-pagination-label-');\n\n protected _id!: string;\n\n @Input()\n get id(): string {\n return this._id;\n }\n\n set id(value: string) {\n this._id = value || this._uid;\n }\n\n constructor() {\n // eslint-disable-next-line no-self-assign\n this.id = this.id;\n }\n}\n","<ng-content></ng-content>\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\n\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostListener,\n inject,\n Input,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { IdGenerator } from '../../../utils';\n\n@Component({\n selector: 'monkey-option',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `<div #content><ng-content /></div>`,\n styleUrls: ['./monkey-option.component.scss'],\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-testid': 'monkey-option',\n '[attr.id]': 'id',\n class: 'mecx-option',\n '[class.mecx-option-disabled]': 'disabled',\n '[class.mecx-option-selected]': 'selected',\n '[attr.tabindex]': 'disabled ? -1 : tabIndex'\n }\n})\nexport class MonkeyOptionComponent {\n private readonly idGenerator = inject(IdGenerator);\n\n @ViewChild('content', { static: true }) _content: ElementRef<HTMLElement> | undefined;\n\n @Input() value: any;\n\n @Input({ transform: booleanAttribute }) disabled = false;\n\n get displayContent(): string {\n return (this._content?.nativeElement.textContent || '').trim();\n }\n\n selected = false;\n\n tabIndex = 0;\n\n action!: Function;\n\n readonly id: string = this.idGenerator.getId('mecx-option-');\n\n @HostListener('click', ['$event'])\n onClick(event: MouseEvent): void {\n if (this.disabled) {\n event.stopPropagation();\n event.preventDefault();\n } else {\n this.action?.();\n }\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\n\nimport { animate, state, style, transition, trigger } from '@angular/animations';\nimport { ConnectedPosition, Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport {\n AfterContentInit,\n booleanAttribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n inject,\n Input,\n OnChanges,\n OnDestroy,\n Optional,\n Output,\n QueryList,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewContainerRef,\n ViewEncapsulation\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n FormsModule,\n NgControl,\n ReactiveFormsModule,\n Validators\n} from '@angular/forms';\nimport { Subject, takeUntil } from 'rxjs';\nimport { IdGenerator } from '../../../utils/id-generator';\nimport { MonkeyDestroyService } from '../../services/monkey-destroy.service';\nimport { MonkeyIconsService } from '../../services/monkey-icons.service';\nimport { MonkeyFormFieldComponent } from '../monkey-form-field/form-field';\nimport { MonkeyFormFieldControl } from '../monkey-form-field/form-field-control';\nimport { MonkeyOptionComponent } from '../monkey-option/monkey-option.component';\n\n@Component({\n selector: 'monkey-select',\n standalone: true,\n imports: [ReactiveFormsModule, FormsModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: 'monkey-select.component.html',\n styleUrls: ['./monkey-select.component.scss'],\n encapsulation: ViewEncapsulation.None,\n providers: [\n // eslint-disable-next-line no-use-before-define\n { provide: MonkeyFormFieldControl, useExisting: MonkeySelectComponent },\n MonkeyDestroyService\n ],\n animations: [\n trigger('animation', [\n transition(':enter', [\n style({\n opacity: 0,\n transform: 'scaleY(.9)'\n }),\n animate(\n '100ms ease-in-out',\n style({\n opacity: 1,\n transform: 'scaleY(1)'\n })\n )\n ]),\n state(\n 'closed',\n style({\n transform: 'scaleY(.9)',\n opacity: 0\n })\n ),\n transition('closed <=> open', animate('200ms ease-in-out'))\n ])\n ],\n host: {\n 'data-testid': 'monkey-select',\n class: 'mecx-select',\n '[class.mecx-select-disabled]': '_disabled',\n '[class.mecx-select-focused]': 'focused',\n '[attr.id]': 'id',\n '[attr.tabindex]': 'disabled ? -1 : tabIndex',\n '(focus)': '_onFocus()',\n '(blur)': '_onBlur()'\n }\n})\nexport class MonkeySelectComponent\n implements MonkeyFormFieldControl, ControlValueAccessor, AfterContentInit, OnDestroy, OnChanges\n{\n @ViewChild('overlayTemplate') overlayTemplate!: TemplateRef<any>;\n\n @ViewChild('overlay') overlayEl!: ElementRef;\n\n @ViewChild('trigger') trigger!: ElementRef;\n\n @ContentChildren(MonkeyOptionComponent) options!: QueryList<MonkeyOptionComponent>;\n\n @Input() tabIndex = 0;\n\n @Output() onChange = new EventEmitter();\n\n @Input({ required: true }) placeholder = '';\n\n @Input({ transform: booleanAttribute })\n loading = false;\n\n @Input({ transform: booleanAttribute })\n get disabled(): boolean {\n if (this.ngControl && this.ngControl.disabled !== null) {\n return this.ngControl.disabled;\n }\n return this._disabled;\n }\n\n set disabled(value: boolean) {\n this._disabled = value;\n\n if (this.focused) {\n this.focused = false;\n this.stateChanges.next();\n }\n }\n\n @Input({ transform: booleanAttribute })\n get required(): boolean {\n return this._required ?? this.ngControl?.control?.hasValidator(Validators.required) ?? false;\n }\n\n set required(value: boolean) {\n this._required = value;\n this.stateChanges.next();\n }\n\n private _required: boolean | undefined;\n\n @Input()\n set value(value: any) {\n if (this._value !== value) {\n this._value = value;\n this._onChange(value);\n }\n }\n\n get value(): any {\n return this._value;\n }\n\n _value = null;\n\n labelSelected = '';\n\n private overlayRef: OverlayRef | null = null;\n\n isOpen = false;\n\n private _destroyed = inject(MonkeyDestroyService);\n\n readonly iconArrowDown = inject(MonkeyIconsService).arrowDown;\n\n private readonly idGenerator = inject(IdGenerator);\n\n ngControl: NgControl | null = inject(NgControl, { self: true, optional: true })!;\n\n protected _elementRef =\n inject<ElementRef<HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement>>(ElementRef);\n\n readonly currency: boolean = false;\n\n focused: boolean = false;\n\n _disabled: boolean = false;\n\n readonly id: string = this.idGenerator.getId('monkey-select-');\n\n readonly percent: boolean = false;\n\n readonly stateChanges = new Subject<void>();\n\n readonly type: string = '';\n\n constructor(\n private overlay: Overlay,\n private changeDetectorRef: ChangeDetectorRef,\n private viewContainerRef: ViewContainerRef,\n @Optional() private formField: MonkeyFormFieldComponent\n ) {\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n private changeControl() {\n if (this.formField?.control) {\n this.formField.control.loading = this.loading;\n }\n }\n\n private changeSelected() {\n setTimeout(() => {\n if (this.options) {\n this.options.forEach((opt) => {\n opt.selected = opt.value === this.value;\n });\n this.updateSelectedLabel();\n }\n this.changeDetectorRef.markForCheck();\n });\n }\n\n private initializeOptions() {\n this.options.forEach((option) => {\n if (!option.action) {\n option.action = this.selectOption.bind(this, option);\n }\n });\n }\n\n ngAfterContentInit() {\n this.initializeOptions();\n this.options.changes.subscribe((resp) => {\n this.updateSelectedLabel();\n this.initializeOptions();\n this.changeSelected();\n });\n }\n\n ngOnDestroy() {\n if (this.overlayRef) {\n this.overlayRef.dispose();\n }\n }\n\n toggleDropdown(): void {\n if (!this.disabled) {\n if (this.isOpen) {\n this.closeDropdown();\n this._onTouched();\n } else {\n this.openDropdown();\n }\n }\n }\n\n private openDropdown(): void {\n if (this.options?.length) {\n this.formField.control.disableToBeDirty = true;\n this.isOpen = true;\n this.createOverlay();\n }\n }\n\n private closeDropdown() {\n this.changeDetectorRef.markForCheck();\n this.isOpen = false;\n this.focused = false;\n this.formField.control.disableToBeDirty = false;\n }\n\n private closeOverlay(): void {\n if (this.overlayRef) {\n this.overlayRef.dispose();\n this.overlayRef = null;\n }\n }\n\n onAnimationEnd = (event: any) => {\n if (event.toState === 'closed') {\n this.closeOverlay();\n }\n };\n\n private createOverlay(): void {\n if (this.overlayRef) {\n return;\n }\n\n const offset = 4;\n const positions: ConnectedPosition[] = [\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n offsetY: offset\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n offsetY: -offset\n }\n ];\n\n let anchor = this.trigger;\n let width = anchor.nativeElement.offsetWidth;\n\n if (this.formField?.elementRef) {\n const el = this.formField?.elementRef.nativeElement.querySelector('.mecx-form-field-body');\n anchor = el;\n width = el.offsetWidth;\n }\n\n const positionStrategy = this.overlay\n .position()\n .flexibleConnectedTo(anchor)\n .withPositions(positions)\n .withPush(true);\n\n this.overlayRef = this.overlay.create({\n positionStrategy,\n scrollStrategy: this.overlay.scrollStrategies.block(),\n width,\n hasBackdrop: true,\n backdropClass: 'no-class'\n });\n\n const portal = new TemplatePortal(this.overlayTemplate, this.viewContainerRef);\n\n this.overlayRef.attach(portal);\n\n this.overlayRef\n .backdropClick()\n .pipe(takeUntil(this._destroyed))\n .subscribe(() => {\n return this.closeDropdown();\n });\n }\n\n selectOption(option: MonkeyOptionComponent): void {\n if (!option.disabled && !this.disabled) {\n this.value = option.value;\n this.updateSelectedLabel();\n this.closeDropdown();\n this._onChange(this.value);\n this.onChange.emit(this.value);\n\n this.options.forEach((opt) => {\n opt.selected = opt.value === this.value;\n });\n }\n }\n\n private updateSelectedLabel(): void {\n const selectedOption = this.options.find((opt) => {\n return opt.value === this.value;\n });\n this.labelSelected = selectedOption ? selectedOption.displayContent : '';\n }\n\n writeValue(value: any): void {\n this.value = value;\n this.changeSelected();\n }\n\n onContainerClick(event: MouseEvent): void {\n if (this.disabled) return;\n\n this.openDropdown();\n this._elementRef.nativeElement.focus();\n }\n\n _onFocus() {\n if (!this.disabled) {\n this.focused = true;\n this._onTouched();\n this.stateChanges.next();\n }\n }\n\n _onBlur() {\n this.focused = false;\n this.stateChanges.next();\n }\n\n _onChange: any = () => {};\n\n _onTouched: any = () => {};\n\n registerOnChange(fn: any): void {\n this._onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this._onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled;\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n let hasChanges = false;\n // eslint-disable-next-line dot-notation\n const changesLoading = changes?.['loading'];\n if (changesLoading?.currentValue !== changesLoading?.previousValue) {\n hasChanges = true;\n this.changeControl();\n }\n\n if (hasChanges) {\n this.stateChanges.next();\n }\n }\n}\n","<div\n class=\"mecx-select-trigger\"\n [class.open]=\"isOpen\"\n (click)=\"toggleDropdown()\"\n role=\"combobox\"\n [attr.aria-expanded]=\"isOpen\"\n #trigger\n>\n <div class=\"mecx-select-value\" [class.has-value]=\"value\">\n <span>{{ labelSelected || placeholder }}</span>\n </div>\n\n @if (!loading) {\n <div class=\"mecx-select-icon\" [innerHTML]=\"iconArrowDown\"></div>\n }\n</div>\n\n<ng-template #overlayTemplate>\n <div\n class=\"mecx-select-overlay\"\n #overlay\n [@animation]=\"isOpen ? 'open' : 'closed'\"\n (@animation.done)=\"onAnimationEnd($event)\"\n >\n <ng-content />\n </div>\n</ng-template>\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\n\nimport { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, inject, Input, Output, ViewEncapsulation } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { IdGenerator } from '../../../../../utils';\nimport { MonkeyFormFieldModule } from '../../../monkey-form-field/module';\nimport { MonkeyOptionComponent } from '../../../monkey-option/monkey-option.component';\nimport { MonkeySelectComponent } from '../../../monkey-select/monkey-select.component';\n\n@Component({\n standalone: true,\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n MonkeySelectComponent,\n MonkeyOptionComponent,\n MonkeyFormFieldModule\n ],\n encapsulation: ViewEncapsulation.None,\n selector: 'monkey-pagination-size',\n exportAs: 'monkeyPaginationSize',\n templateUrl: './pagination-size.html',\n styleUrl: './pagination-size.scss',\n host: {\n 'data-testid': 'monkey-pagination-size',\n '[attr.id]': 'id',\n '[id]': 'id'\n }\n})\nexport class MonkeyPaginationSizeComponent {\n @Input({ required: true }) size!: 10 | 20 | 50 | 100;\n\n @Input() disabled!: boolean;\n\n @Output() onChange = new EventEmitter();\n\n protected _uid = inject(IdGenerator).getId('monkey-pagination-size-');\n\n protected _id!: string;\n\n sizes = [10, 20, 50, 100];\n\n @Input()\n get id(): string {\n return this._id;\n }\n\n set id(value: string) {\n this._id = value || this._uid;\n }\n\n constructor() {\n // eslint-disable-next-line no-self-assign\n this.id = this.id;\n }\n}\n","<ng-content></ng-content>\n<monkey-form-field hideClear>\n <monkey-select placeholder=\"''\" [ngModel]=\"size\" (onChange)=\"onChange.next($event)\">\n @for (item of sizes; track item) {\n <monkey-option [value]=\"item\">{{ item }}</monkey-option>\n }\n </monkey-select>\n</monkey-form-field>\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\n\nimport {\n AfterContentInit,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n OnChanges,\n Output,\n QueryList,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { MonkeyTableScrollConfig } from '../../interfaces';\nimport { MonkeyPaginationActionComponent } from './components/pagination-action/pagination-action';\nimport { MonkeyPaginationSizeComponent } from './components/pagination-size/pagination-size';\n\nconst defaultX = '880px';\n\n@Component({\n encapsulation: ViewEncapsulation.None,\n selector: 'monkey-table, table[monkey-table]',\n exportAs: 'monkeyTable',\n templateUrl: './table.html',\n styleUrl: './table.scss'\n})\nexport class MonkeyTableComponent implements AfterContentInit, OnChanges {\n @Input() scroll!: MonkeyTableScrollConfig;\n\n @HostBinding('class.disabled')\n @Input()\n loading!: boolean;\n\n @Input() loadingRef!: TemplateRef<any>;\n\n @Output() sortChange = new EventEmitter();\n\n @ViewChild('header', { static: true }) private _headerEl!: ElementRef;\n\n @ViewChild('tableHeader', { static: true }) private _tableHeaderEl!: ElementRef;\n\n @ViewChild('tableContent', { static: true }) private _tableContentEl!: ElementRef;\n\n @ViewChild('tableLoading', { static: true }) private _tableLoadingEl!: ElementRef;\n\n @ViewChild('tableScroll', { static: true }) private _tableScrollEl!: ElementRef;\n\n @ContentChildren(MonkeyPaginationActionComponent, { descendants: true })\n private _paginationActionChildren!: QueryList<MonkeyPaginationActionComponent>;\n\n @ContentChildren(MonkeyPaginationSizeComponent, { descendants: true })\n private _paginationSizeChildren!: QueryList<MonkeyPaginationSizeComponent>;\n\n private _sortOptions!: { [key: string]: string; sortable: string };\n\n private _loadingInitialized = false;\n\n public stateChanges = new EventEmitter();\n\n private updateScrollStyle() {\n if (!this._headerEl || !this._tableHeaderEl || !this._tableContentEl || !this._tableScrollEl) {\n throw Error('monkey-table must have header and content');\n }\n\n const x = this.scroll?.x || defaultX;\n const y = this.scroll?.y;\n const styleHeader = this._headerEl.nativeElement.style;\n const styleTableHeader = this._tableHeaderEl.nativeElement.style;\n const styleTableContent = this._tableContentEl.nativeElement.style;\n const styleTableScroll = this._tableScrollEl.nativeElement.style;\n\n if (x) {\n styleTableHeader.minWidth = `${x}`;\n styleTableContent.minWidth = `${x}`;\n\n this._tableScrollEl.nativeElement.addEventListener('scroll', () => {\n this._headerEl.nativeElement.scrollLeft = this._tableScrollEl.nativeElement.scrollLeft;\n });\n }\n if (y) {\n styleTableScroll.maxHeight = `${y}`;\n styleTableScroll.overflowX = 'auto';\n styleTableScroll.overflowY = 'scroll';\n }\n if (x && !y) {\n styleTableScroll.overflowX = 'scroll';\n styleHeader.overflowY = 'hidden';\n }\n }\n\n private initializeComponents() {\n const paginationAction = this._paginationActionChildren?.get(0);\n const paginationSize = this._paginationSizeChildren?.get(0);\n if (paginationAction) {\n paginationAction.disabled = this.loading;\n }\n if (paginationSize) {\n paginationSize.disabled = this.loading;\n }\n }\n\n private initializeLoadingComponent() {\n if (this._loadingInitialized || !this._tableLoadingEl) return;\n const styleTableLoading = this._tableLoadingEl?.nativeElement.style;\n const x = this.scroll?.x || defaultX;\n\n if (x) {\n styleTableLoading.minWidth = `${x}`;\n }\n this._loadingInitialized = true;\n }\n\n ngAfterContentInit(): void {\n this.updateScrollStyle();\n this.initializeComponents();\n }\n\n updateSortableOptions(name: string, sortable: string) {\n this._sortOptions = {\n ...this._sortOptions,\n [name]: sortable\n };\n\n if (!sortable) {\n delete this._sortOptions[name];\n }\n\n this.sortChange.emit(this._sortOptions);\n }\n\n ngOnChanges(changes: SimpleChanges) {\n let hasChanges = false;\n let loading = false;\n // eslint-disable-next-line dot-notation\n const changesLoading = changes?.['loading'];\n if (changesLoading?.currentValue !== changesLoading.previousValue) {\n this.initializeComponents();\n this.initializeLoadingComponent();\n loading = changesLoading.currentValue || false;\n hasChanges = true;\n }\n\n if (hasChanges) {\n this.stateChanges.emit({ loading });\n }\n }\n}\n","<div class=\"mecx-table-container\">\n <div class=\"mecx-table-wrapper\">\n <div class=\"mecx-table-header\" #header>\n <table #tableHeader>\n <ng-content select=\"thead\"></ng-content>\n </table>\n </div>\n <div class=\"mecx-inner-scroll\" #tableScroll>\n <table #tableContent>\n <ng-content select=\"tbody\"></ng-content>\n </table>\n\n @if (loadingRef && loading) {\n <table #tableLoading>\n <ng-container *ngTemplateOutlet=\"loadingRef\"></ng-container>\n </table>\n }\n </div>\n </div>\n <div class=\"mecx-table-footer\">\n <ng-content select=\"monkey-pagination-size\"></ng-content>\n <div class=\"mecx-table-actions\">\n <ng-content select=\"monkey-pagination-label\"></ng-content>\n <ng-content select=\"monkey-pagination-action\"></ng-content>\n </div>\n </div>\n</div>\n","/* eslint-disable dot-notation */\n/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\n\nimport {\n AfterViewInit,\n ChangeDetectorRef,\n ComponentRef,\n Directive,\n ElementRef,\n EventEmitter,\n HostBinding,\n Inject,\n inject,\n Injector,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n Renderer2,\n SimpleChanges,\n ViewContainerRef\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { MonkeyCheckboxComponent } from '../../monkey-checkbox';\nimport { MonkeyTableComponent } from '../table';\n\n@Directive({\n selector: '[mkChecked]',\n host: {\n class: 'mecx-column-checked'\n }\n})\nexport class MonkeyColumnChecked implements OnInit, AfterViewInit, OnChanges, OnDestroy {\n @Input({ alias: 'mkChecked', required: true }) checked!: boolean;\n\n @HostBinding('class.mecx-column-checked-disabled')\n @Input()\n disabled!: boolean;\n\n @Output() checkedChange = new EventEmitter();\n\n private _cdr = inject(ChangeDetectorRef);\n\n private _injector = inject(Injector);\n\n private _subscriptions: Subscription = new Subscription();\n\n checkboxRef!: ComponentRef<MonkeyCheckboxComponent>;\n\n constructor(\n private el: ElementRef,\n private renderer: Renderer2,\n private viewContainerRef: ViewContainerRef,\n @Optional() @Inject(MonkeyTableComponent) public table: MonkeyTableComponent\n ) {\n // not to do\n }\n\n private renderCheckbox() {\n this.checkboxRef = this.viewContainerRef.createComponent(MonkeyCheckboxComponent, {\n injector: this._injector\n });\n\n this.checkboxRef.instance.value = this.checked;\n this.checkboxRef.instance.setDisabledState(this.disabled);\n\n this.checkboxRef.instance.onChange.subscribe((isChecked: boolean) => {\n this.checkboxRef.instance.writeValue(isChecked);\n this.checkedChange.emit(isChecked);\n });\n\n this.renderer.appendChild(this.el.nativeElement, this.checkboxRef.location.nativeElement);\n }\n\n private handleDisableFromStateChanges(disabled: boolean) {\n if (disabled) {\n this.el.nativeElement.style.pointerEvents = 'none';\n } else {\n this.el.nativeElement.style.pointerEvents = 'all';\n }\n }\n\n ngOnInit(): void {\n this.el.nativeElement.style.pointerEvents = 'none';\n this._subscriptions.add(\n this.table?.stateChanges?.subscribe(() => {\n this.handleDisableFromStateChanges(this.table.loading);\n })\n );\n }\n\n ngAfterViewInit() {\n this.renderCheckbox();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n let hasChanges = false;\n let checked = false;\n let disabled = false;\n const changesChecked = changes?.['checked'];\n const changesDisabled = changes?.['disabled'];\n if (changesChecked?.currentValue !== changesChecked?.previousValue) {\n checked = changesChecked.currentValue || false;\n hasChanges = true;\n }\n if (changesDisabled?.currentValue !== changesDisabled?.previousValue) {\n disabled = changesDisabled.currentValue;\n hasChanges = true;\n }\n\n if (hasChanges) {\n this.initializeComponent(checked, disabled);\n }\n }\n\n initializeComponent(checked: boolean, disabled: boolean) {\n if (!this.checkboxRef || this.disabled) return;\n this.checkboxRef.instance.writeValue(checked);\n this.checkboxRef.instance.setDisabledState(disabled);\n this._cdr.detectChanges();\n }\n\n ngOnDestroy() {\n this._subscriptions.unsubscribe();\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\n\nimport {\n Directive,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Inject,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n Renderer2\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { MonkeyTableComponent } from '../table';\n\n@Directive({\n selector: '[mkExpansible]',\n host: {\n class: 'mecx-column-expansible'\n }\n})\nexport class MonkeyColumnExpansible implements OnInit, OnDestroy {\n @Output() expansionChange = new EventEmitter();\n\n private _opened = false;\n\n private _subscriptions: Subscription = new Subscription();\n\n private _enableAnimation = false;\n\n @HostBinding('class.mecx-column-expansible-disabled')\n disabled = false;\n\n constructor(\n private el: ElementRef,\n private renderer: Renderer2,\n @Optional() @Inject(MonkeyTableComponent) public table: MonkeyTableComponent\n ) {\n // not to do\n }\n\n private createSvgElement(opened: boolean) {\n const oldIcon = this.el.nativeElement.querySelector('#expansible-icon');\n if (oldIcon) this.renderer.removeChild(this.el.nativeElement, oldIcon);\n\n this.el.nativeElement.style.cursor = 'pointer';\n const svg = this.renderer.createElement('svg', 'svg');\n\n this.renderer.setAttribute(svg, 'id', 'expansible-icon');\n this.renderer.setAttribute(svg, 'width', '24');\n this.renderer.setAttribute(svg, 'height', '24');\n this.renderer.setAttribute(svg, 'viewBox', '0 0 24 24');\n this.renderer.setAttribute(svg, 'fill', 'none');\n this.renderer.setAttribute(svg, 'xmlns', 'http://www.w3.org/2000/svg');\n this.renderer.setStyle(svg, 'vertical-align', 'middle');\n this.renderer.setStyle(svg, 'cursor', 'pointer');\n\n if (opened) {\n const path1 = this.renderer.createElement('path', 'svg');\n const path2 = this.renderer.createElement('path', 'svg');\n\n this.renderer.setAttribute(path1, 'stroke', 'var(--mecx-color-gray-600)');\n this.renderer.setAttribute(path1, 'stroke-width', '1.5');\n this.renderer.setAttribute(path1, 'stroke-linecap', 'round');\n this.renderer.setAttribute(path1, 'stroke-linejoin', 'round');\n this.renderer.setAttribute(path1, 'd', 'M16 12H8');\n\n this.renderer.setAttribute(path2, 'fill-rule', 'evenodd');\n this.renderer.setAttribute(path2, 'clip-rule', 'evenodd');\n this.renderer.setAttribute(path2, 'stroke', 'var(--mecx-color-gray-400)');\n this.renderer.setAttribute(path2, 'stroke-width', '1.5');\n this.renderer.setAttribute(path2, 'stroke-linecap', 'round');\n this.renderer.setAttribute(path2, 'stroke-linejoin', 'round');\n this.renderer.setAttribute(\n path2,\n 'd',\n 'M12 21V21C7.029 21 3 16.971 3 12V12C3 7.029 7.029 3 12 3V3C16.971 3 21 7.029 21 12V12C21 16.971 16.971 21 12 21Z'\n );\n\n this.renderer.appendChild(svg, path1);\n this.renderer.appendChild(svg, path2);\n if (this._enableAnimation) {\n this.renderer.addClass(svg, 'rotate-animation-left');\n }\n } else {\n const path1 = this.renderer.createElement('path', 'svg');\n const path2 = this.renderer.createElement('path', 'svg');\n const path3 = this.renderer.createElement('path', 'svg');\n\n this.renderer.setAttribute(path1, 'stroke', 'var(--mecx-color-gray-600)');\n this.renderer.setAttribute(path1, 'stroke-width', '1.5');\n this.renderer.setAttribute(path1, 'stroke-linecap', 'round');\n this.renderer.setAttribute(path1, 'stroke-linejoin', 'round');\n this.renderer.setAttribute(path1, 'd', 'M12 8V16');\n\n this.renderer.setAttribute(path2, 'stroke', 'var(--mecx-color-gray-600)');\n this.renderer.setAttribute(path2, 'stroke-width', '1.5');\n this.renderer.setAttribute(path2, 'stroke-linecap', 'round');\n this.renderer.setAttribute(path2, 'stroke-linejoin', 'round');\n this.renderer.setAttribute(path2, 'd', 'M16 12H8');\n\n this.renderer.setAttribute(path3, 'fill-rule', 'evenodd');\n this.renderer.setAttribute(path3, 'clip-rule', 'evenodd');\n this.renderer.setAttribute(path3, 'stroke', 'var(--mecx-color-gray-400)');\n this.renderer.setAttribute(path3, 'stroke-width', '2');\n this.renderer.setAttribute(path3, 'stroke-linecap', 'round');\n this.renderer.setAttribute(path3, 'stroke-linejoin', 'round');\n this.renderer.setAttribute(\n path3,\n 'd',\n 'M12 21V21C7.029 21 3 16.971 3 12V12C3 7.029 7.029 3 12 3V3C16.971 3 21 7.029 21 12V12C21 16.971 16.971 21 12 21Z'\n );\n\n this.renderer.appendChild(svg, path1);\n this.renderer.appendChild(svg, path2);\n this.renderer.appendChild(svg, path3);\n if (this._enableAnimation) {\n this.renderer.addClass(svg, 'rotate-animation-right');\n }\n }\n\n this.renderer.appendChild(this.el.nativeElement, svg);\n }\n\n ngOnInit() {\n this.disabled = this.table.loading;\n this._subscriptions.add(\n this.table?.stateChanges?.subscribe(() => {\n this.disabled = this.table.loading;\n })\n );\n\n this.createSvgElement(this._opened);\n }\n\n @HostListener('click')\n onClick() {\n this._enableAnimation = true;\n if (this._opened) {\n this._opened = false;\n } else {\n this._opened = true;\n }\n\n this.createSvgElement(this._opened);\n this.expansionChange.emit(this._opened);\n }\n\n ngOnDestroy() {\n this._subscriptions.unsubscribe();\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\n\nimport {\n Directive,\n ElementRef,\n HostBinding,\n HostListener,\n Inject,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Renderer2\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { MonkeyTableComponent } from '../table';\n\n@Directive({\n selector: '[mkSortable]',\n host: {\n class: 'mecx-column-sortable'\n }\n})\nexport class MonkeyColumnSortable implements OnInit, OnDestroy {\n @Input({ alias: 'mkSortable', required: true }) name!: string;\n\n private _sortableDirection: 'asc' | 'desc' | null = null;\n\n private subscriptions: Subscription = new Subscription();\n\n @HostBinding('class.mecx-column-sortable-disabled')\n disabled = false;\n\n constructor(\n private el: ElementRef,\n private renderer: Renderer2,\n @Optional() @Inject(MonkeyTableComponent) public table: MonkeyTableComponent\n ) {\n // not to do\n }\n\n private createSvgElement(direction: 'asc' | 'desc' | null) {\n const dPath = direction === 'desc' ? 'M16 14L12 10L8 14' : 'M8.75 10L12.75 14L16.75 10';\n\n const oldIcon = this.el.nativeElement.querySelector('#sortable-icon');\n if (oldIcon) this.renderer.removeChild(this.el.nativeElement, oldIcon);\n\n this.el.nativeElement.style.cursor = 'pointer';\n const svg = this.renderer.createElement('svg', 'svg');\n\n this.renderer.setAttribute(svg, 'id', 'sortable-icon');\n this.renderer.setAttribute(svg, 'width', '25');\n this.renderer.setAttribute(svg, 'height', '24');\n this.renderer.setAttribute(svg, 'viewBox', '0 0 25 24');\n this.renderer.setAttribute(svg, 'fill', 'none');\n this.renderer.setAttribute(svg, 'xmlns', 'http://www.w3.org/2000/svg');\n this.renderer.setStyle(svg, 'margin-left', '1px');\n this.renderer.setStyle(svg, 'vertical-align', 'middle');\n this.renderer.setStyle(svg, 'cursor', 'pointer');\n\n const g = this.renderer.createElement('g', 'svg');\n const path = this.renderer.createElement('path', 'svg');\n\n this.renderer.setAttribute(path, 'stroke', '#000');\n this.renderer.setAttribute(path, 'stroke-width', '1.5');\n this.renderer.setAttribute(path, 'stroke-linecap', 'round');\n this.renderer.setAttribute(path, 'stroke-linejoin', 'round');\n this.renderer.setAttribute(path, 'd', dPath);\n\n this.renderer.appendChild(g, path);\n this.renderer.appendChild(svg, g);\n this.renderer.appendChild(this.el.nativeElement, svg);\n }\n\n ngOnInit() {\n this.disabled = this.table.loading;\n this.subscriptions.add(\n this.table?.stateChanges?.subscribe(() => {\n this.disabled = this.table.loading;\n })\n );\n\n this.createSvgElement(this._sortableDirection);\n }\n\n @HostListener('click')\n onClick() {\n if (this._sortableDirection === null) {\n this._sortableDirection = 'asc';\n } else if (this._sortableDirection === 'asc') {\n this._sortableDirection = 'desc';\n } else {\n this._sortableDirection = null;\n }\n\n this.createSvgElement(this._sortableDirection);\n this.table?.updateSortableOptions(this.name, this._sortableDirection || '');\n }\n\n ngOnDestroy() {\n this.subscriptions.unsubscribe();\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\n\nimport { Directive, Input } from '@angular/core';\n\n@Directive({\n selector: '[mkStick]',\n host: {\n class: 'mecx-column-stick',\n '[class]': '\"mecx-column-stick-\"+position'\n }\n})\nexport class MonkeyColumnStick {\n @Input({ alias: 'mkStick', required: true }) position: 'left' | 'right' = 'right';\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\n\nimport { NgModule } from '@angular/core';\nimport { MonkeyButtonComponent } from '../monkey-button/monkey-button.component';\nimport { MonkeyPaginationActionComponent } from './components/pagination-action/pagination-action';\nimport { MonkeyPaginationLabelComponent } from './components/pagination-label/pagination-label';\nimport { MonkeyPaginationSizeComponent } from './components/pagination-size/pagination-size';\nimport { MonkeyColumnChecked } from './directives/column-checked';\nimport { MonkeyColumnExpansible } from './directives/column-expansible';\nimport { MonkeyColumnSortable } from './directives/column-sortable';\nimport { MonkeyColumnStick } from './directives/column-stick';\nimport { MonkeyTableComponent } from './table';\n\n@NgModule({\n imports: [\n MonkeyButtonComponent,\n MonkeyPaginationSizeComponent,\n MonkeyPaginationLabelComponent,\n MonkeyPaginationActionComponent\n ],\n declarations: [\n MonkeyTableComponent,\n MonkeyColumnStick,\n MonkeyColumnChecked,\n MonkeyColumnSortable,\n MonkeyColumnExpansible\n ],\n exports: [\n MonkeyTableComponent,\n MonkeyColumnStick,\n MonkeyColumnChecked,\n MonkeyColumnSortable,\n MonkeyColumnExpansible\n ]\n})\nexport class MonkeyTableModule {}\n","import {\n booleanAttribute,\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n inject,\n Input,\n Output,\n ViewEncapsulation\n} from '@angular/core';\nimport { IdGenerator } from '../../../utils';\nimport { type ToastType } from '../../interfaces';\nimport { MonkeyButtonComponent } from '../monkey-button';\nimport { MonkeyIconComponent } from '../monkey-icon';\nimport { MonkeyIconButtonComponent } from '../monkey-icon-button';\n\n@Component({\n standalone: true,\n selector: 'monkey-toast',\n imports: [MonkeyButtonComponent, MonkeyIconComponent, MonkeyIconButtonComponent],\n templateUrl: './monkey-toast.component.html',\n styleUrl: './monkey-toast.component.scss',\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-testid': 'monkey-toast',\n '(animationend)': 'onAnimationEnd($event)',\n '[attr.id]': 'id',\n '[id]': 'id'\n }\n})\nexport class MonkeyToastComponent {\n @Input() message: string | undefined;\n\n @Input() icon: string | undefined = 'close-circle';\n\n @Input() type: ToastType = 'default';\n\n @Input({ transform: booleanAttribute }) isClosable: boolean = false;\n\n @Input() actionLabel: string | undefined;\n\n @Input() actionIcon: string | undefined;\n\n @Output() onActionClick = new EventEmitter<string>();\n\n @Output() onClose = new EventEmitter<string>();\n\n protected _uid = inject(IdGenerator).getId('monkey-toast-');\n\n protected _id!: string;\n\n @Input()\n get id(): string {\n return this._id;\n }\n\n set id(value: string) {\n this._id = value || this._uid;\n }\n\n @HostBinding('class')\n public get class(): string {\n return this.type;\n }\n\n @HostBinding('animation') animationState = 'hidden';\n\n constructor(private host: ElementRef<HTMLElement>) {\n // eslint-disable-next-line no-self-assign\n this.id = this.id;\n }\n\n close() {\n this.host.nativeElement.classList.add('closed');\n }\n\n onAnimationEnd(event: AnimationEvent) {\n if (event.animationName.includes('fade-out')) {\n this.onClose.emit(this.id);\n }\n }\n}\n","<div class=\"content\">\n @if (icon) {\n <monkey-icon [icon]=\"icon\" size=\"lg\"></monkey-icon>\n }\n <div class=\"message\">\n {{ message }}\n </div>\n</div>\n@if (actionLabel) {\n <div class=\"action\">\n <monkey-button class=\"btn-action\" type=\"tertiary\" size=\"sm\" (click)=\"onActionClick.emit(id)\">\n {{ actionLabel }}\n @if (actionIcon) {\n <monkey-icon [icon]=\"actionIcon\" first></monkey-icon>\n }\n </monkey-button>\n </div>\n}\n@if (isClosable) {\n <div class=\"divider\"></div>\n <div class=\"close\">\n <monkey-icon-button class=\"btn-close\" type=\"tertiary\" size=\"sm\" icon=\"close\" (click)=\"close()\">\n </monkey-icon-button>\n </div>\n}\n","import { CommonModule } from '@angular/common';\nimport {\n Component,\n EventEmitter,\n HostBinding,\n HostListener,\n inject,\n Input,\n Output\n} from '@angular/core';\nimport { IdGenerator } from '../../../utils';\n\n@Component({\n selector: 'monkey-toggle',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './monkey-toggle.component.html',\n styleUrl: './monkey-toggle.component.scss',\n host: {\n 'data-testid': 'monkey-toggle',\n '[attr.id]': 'id',\n '[id]': 'id'\n }\n})\nexport class MonkeyToggleComponent {\n @HostBinding('class.disabled') @Input() disabled = false;\n\n @HostBinding('class')\n @Input()\n size: 'lg' | 'md' | 'sm' = 'md';\n\n @Output() onChange = new EventEmitter<any>();\n\n @Input() set value(_: boolean | 'true' | 'false') {\n if (typeof _ === 'string') {\n this._checked = _ === 'true';\n } else {\n this._checked = _;\n }\n }\n\n _checked: boolean = false;\n\n protected _uid = inject(IdGenerator).getId('monkey-toggle-');\n\n protected _id!: string;\n\n @Input()\n get id(): string {\n return this._id;\n }\n\n set id(value: string) {\n this._id = value || this._uid;\n }\n\n constructor() {\n // eslint-disable-next-line no-self-assign\n this.id = this.id;\n }\n\n @HostListener('click', ['$event'])\n onClick(event: any) {\n event.preventDefault();\n event.stopPropagation();\n event.stopImmediatePropagation();\n\n if (!this.disabled) {\n this.onChange.next(!this._checked);\n this._checked = !this._checked;\n }\n }\n}\n","<input type=\"checkbox\" [checked]=\"_checked\" />\n<div class=\"slider\" [ngClass]=\"{ checked: _checked }\"></div>\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'monkey-toggle-line-button',\n standalone: true,\n templateUrl: './monkey-toggle-line-button.component.html',\n styleUrl: './monkey-toggle-line-button.component.scss',\n encapsulation: ViewEncapsulation.None\n})\nexport class MonkeyToggleLineButtonComponent {\n @Input() disabled: boolean = false;\n\n @Output() onChange = new EventEmitter();\n\n value: boolean | undefined;\n\n checked: boolean | undefined;\n\n name: string | undefined;\n}\n","<input\n type=\"radio\"\n [name]=\"name\"\n [id]=\"value + '-' + name\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n (change)=\"onChange.emit(this.value)\"\n/>\n<label [for]=\"value + '-' + name\">\n <ng-content></ng-content>\n</label>\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { CommonModule } from '@angular/common';\nimport {\n AfterContentInit,\n booleanAttribute,\n Component,\n ContentChildren,\n EventEmitter,\n HostBinding,\n inject,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n QueryList,\n ViewEncapsulation\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { IdGenerator } from '../../../utils';\nimport { MonkeyToggleLineButtonComponent } from './monkey-toggle-line-button';\n\n@Component({\n selector: 'monkey-toggle-line',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './monkey-toggle-line.component.html',\n styleUrl: './monkey-toggle-line.component.scss',\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-testid': 'monkey-toggle-line',\n '[attr.id]': 'id',\n '[id]': 'id'\n }\n})\nexport class MonkeyToggleLineComponent implements AfterContentInit, OnDestroy, OnChanges {\n @Input() value: boolean | undefined;\n\n @Input() name = Math.random().toString();\n\n @Input() size: 'sm' | 'md' | 'lg' = 'md';\n\n @Input({ transform: booleanAttribute }) disabled: boolean = false;\n\n @Output() onChange = new EventEmitter<any>();\n\n private subscriptions: Subscription = new Subscription();\n\n @ContentChildren(MonkeyToggleLineButtonComponent)\n radioButtons!: QueryList<MonkeyToggleLineButtonComponent>;\n\n @HostBinding('class')\n public get class(): string {\n return this.size;\n }\n\n protected _uid = inject(IdGenerator).getId('monkey-toggle-line-');\n\n protected _id!: string;\n\n @Input()\n get id(): string {\n return this._id;\n }\n\n set id(value: string) {\n this._id = value || this._uid;\n }\n\n constructor() {\n // eslint-disable-next-line no-self-assign\n this.id = this.id;\n }\n\n ngAfterContentInit() {\n this.radioButtons.forEach((_, i) => {\n _.value = !!i;\n _.checked = this.value === _.value;\n _.name = this.name;\n _.disabled = this.disabled;\n\n const subscription = _.onChange.subscribe((value: boolean) => {\n this.onChange.emit(value);\n });\n this.subscriptions.add(subscription);\n });\n }\n\n ngOnChanges(): void {\n if (!this.radioButtons) return;\n this.radioButtons.forEach((_, i) => {\n _.checked = this.value === _.value;\n _.disabled = this.disabled;\n });\n }\n\n ngOnDestroy() {\n this.subscriptions.unsubscribe();\n }\n}\n","<ng-content></ng-content>\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n Component,\n ElementRef,\n EventEmitter,\n inject,\n Input,\n Output,\n TemplateRef\n} from '@angular/core';\nimport { IdGenerator } from '../../../../utils';\n\n@Component({\n selector: 'monkey-tooltip',\n standalone: true,\n imports: [NgTemplateOutlet],\n templateUrl: './tooltip.component.html',\n styleUrl: './tooltip.component.scss',\n host: {\n 'data-testid': 'monkey-tooltip',\n '[style.left.px]': 'left',\n '[style.top.px]': 'top',\n '(animationend)': 'onAnimationEnd($event)',\n '[attr.id]': 'id',\n '[id]': 'id'\n }\n})\nexport class MonkeyTooltipComponent {\n @Input() text: string | undefined;\n\n @Input() template!: null | TemplateRef<HTMLElement>;\n\n @Input() left: number | undefined;\n\n @Input() top: number | undefined;\n\n @Output() afterClose = new EventEmitter();\n\n protected _uid = inject(IdGenerator).getId('monkey-tooltip-');\n\n protected _id!: string;\n\n @Input()\n get id(): string {\n return this._id;\n }\n\n set id(value: string) {\n this._id = value || this._uid;\n }\n\n constructor(private host: ElementRef<HTMLElement>) {\n // eslint-disable-next-line no-self-assign\n this.id = this.id;\n }\n\n close() {\n this.host.nativeElement.classList.add('closed');\n }\n\n onAnimationEnd(event: AnimationEvent) {\n if (event.animationName.includes('fade-out')) {\n this.afterClose.emit(true);\n }\n }\n}\n","@if(template) {\n<ng-container *ngTemplateOutlet=\"template\"> </ng-container>\n} @if(text) {\n{{ text }}\n}\n","import { DOCUMENT } from '@angular/common';\nimport {\n ApplicationRef,\n booleanAttribute,\n ComponentRef,\n Directive,\n ElementRef,\n Inject,\n Input,\n TemplateRef,\n ViewContainerRef\n} from '@angular/core';\nimport { MonkeyTooltipComponent } from './tooltip';\n\ntype Position = 'top' | 'bottom' | 'left' | 'right' | undefined;\n\n@Directive({\n selector: '[monkeyTooltip]',\n standalone: true,\n host: {\n '(mouseenter)': 'show()',\n '(mouseleave)': 'hide()',\n '(click)': 'hide()'\n }\n})\nexport class MonkeyTooltipDirective {\n @Input('monkeyTooltip') tooltipText: string | TemplateRef<HTMLElement> | undefined;\n\n @Input() tooltipPosition: Position;\n\n @Input({ transform: booleanAttribute }) enabled = true;\n\n private offset = 8;\n\n private tooltipComponent?: ComponentRef<MonkeyTooltipComponent>;\n\n private bounds!: {\n elBounds: DOMRect;\n tooltipBounds: DOMRect;\n scroll: number;\n viewport: { width: number; height: number };\n };\n\n constructor(\n private viewContainerRef: ViewContainerRef,\n private elementRef: ElementRef,\n private appRef: ApplicationRef,\n @Inject(DOCUMENT) private document: Document\n ) {\n // to do not\n }\n\n private setBounds() {\n this.tooltipComponent!.hostView.detectChanges();\n this.bounds = {\n elBounds: this.elementRef.nativeElement.getBoundingClientRect(),\n tooltipBounds: this.tooltipComponent?.location.nativeElement.getBoundingClientRect(),\n scroll: document.documentElement.scrollTop || document.body.scrollTop || 0,\n viewport: {\n width:\n window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth,\n height:\n window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight\n }\n };\n }\n\n private createTooltip() {\n this.tooltipComponent = this.viewContainerRef.createComponent(MonkeyTooltipComponent);\n this.document.body.appendChild(this.tooltipComponent.location.nativeElement);\n\n if (this.tooltipText instanceof TemplateRef) {\n this.tooltipComponent.instance.template = this.tooltipText;\n } else {\n this.tooltipComponent.instance.text = this.tooltipText;\n }\n this.setBounds();\n\n this.positionTooltip(this.tooltipPosition);\n }\n\n private positionTooltip(position: Position) {\n switch (position) {\n case 'left':\n this.positionLeft();\n if (this.isOutOfBounds()) {\n this.positionRight();\n if (this.isOutOfBounds()) {\n this.positionBottom();\n if (this.isOutOfBounds()) {\n this.positionTop();\n }\n }\n }\n break;\n case 'right':\n this.positionRight();\n if (this.isOutOfBounds()) {\n this.positionLeft();\n if (this.isOutOfBounds()) {\n this.positionBottom();\n if (this.isOutOfBounds()) {\n this.positionTop();\n }\n }\n }\n break;\n case 'top':\n this.positionTop();\n if (this.isOutOfBounds()) {\n this.positionBottom();\n if (this.isOutOfBounds()) {\n this.positionRight();\n if (this.isOutOfBounds()) {\n this.positionLeft();\n }\n }\n }\n break;\n case 'bottom':\n this.positionBottom();\n if (this.isOutOfBounds()) {\n this.positionTop();\n if (this.isOutOfBounds()) {\n this.positionRight();\n if (this.isOutOfBounds()) {\n this.positionLeft();\n }\n }\n }\n break;\n default:\n }\n }\n\n private isOutOfBounds() {\n const { tooltipBounds, viewport } = this.bounds;\n\n return (\n tooltipBounds.left < 0 ||\n tooltipBounds.top < 0 ||\n tooltipBounds.left + tooltipBounds.width > viewport.width ||\n tooltipBounds.top + tooltipBounds.height > viewport.height\n );\n }\n\n private positionLeft() {\n const { elBounds, tooltipBounds, scroll } = this.bounds;\n this.tooltipComponent!.instance.left = elBounds.left - tooltipBounds.width - this.offset;\n this.tooltipComponent!.instance.top = scroll + (elBounds.top + elBounds.height / 2);\n this.tooltipComponent!.location.nativeElement.style.transform = 'translateY(-50%)';\n this.setBounds();\n }\n\n private positionRight() {\n const { elBounds, scroll } = this.bounds;\n this.tooltipComponent!.instance.left = elBounds.right + this.offset;\n this.tooltipComponent!.instance.top = scroll + (elBounds.top + elBounds.height / 2);\n this.tooltipComponent!.location.nativeElement.style.transform = 'translateY(-50%)';\n this.setBounds();\n }\n\n private positionTop() {\n const { elBounds, tooltipBounds, scroll } = this.bounds;\n this.tooltipComponent!.instance.left = elBounds.left + elBounds.width / 2;\n this.tooltipComponent!.instance.top =\n scroll + elBounds.top - tooltipBounds.height - this.offset;\n this.tooltipComponent!.location.nativeElement.style.transform = 'translateX(-50%)';\n this.setBounds();\n }\n\n private positionBottom() {\n const { elBounds, scroll } = this.bounds;\n this.tooltipComponent!.instance.left = elBounds.left + elBounds.width / 2;\n this.tooltipComponent!.instance.top = scroll + elBounds.bottom + this.offset;\n this.tooltipComponent!.location.nativeElement.style.transform = 'translateX(-50%)';\n this.setBounds();\n }\n\n show(): void {\n if (!this.enabled || this.tooltipComponent) {\n return;\n }\n\n this.createTooltip();\n }\n\n hide(): void {\n if (!this.tooltipComponent) {\n return;\n }\n this.tooltipComponent.instance.close();\n const subscribe = this.tooltipComponent.instance.afterClose.subscribe(() => {\n if (!this.tooltipComponent) {\n return;\n }\n this.appRef.detachView(this.tooltipComponent!.hostView);\n this.tooltipComponent!.destroy();\n this.tooltipComponent = undefined;\n subscribe.unsubscribe();\n });\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nexport * from './lib/components';\nexport * from './lib/directives';\nexport * from './lib/interfaces';\nexport * from './lib/services';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2.MonkeyFormFieldComponent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"monkey-style-guide-v2.mjs","sources":["../../../projects/monkey-style-guide-v2/src/utils/id-generator.ts","../../../projects/monkey-style-guide-v2/src/utils/tests-utils.ts","../../../projects/monkey-style-guide-v2/src/utils/utils.ts","../../../projects/monkey-style-guide-v2/src/lib/services/monkey-destroy.service.ts","../../../projects/monkey-style-guide-v2/src/lib/services/monkey-icons.service.ts","../../../projects/monkey-style-guide-v2/src/lib/interfaces/toast.ts","../../../projects/monkey-style-guide-v2/src/lib/services/monkey-toast.service.ts","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-accordion/monkey-accordion.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-accordion/monkey-accordion.component.html","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-icon/monkey-icon.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-icon/monkey-icon.component.html","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-alert/monkey-alert.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-alert/monkey-alert.component.html","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-breadcrumb/monkey-breadcrumb.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-breadcrumb/monkey-breadcrumb.component.html","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-button/monkey-button.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-button/monkey-button.component.html","../../../projects/monkey-style-guide-v2/src/lib/directives/error.ts","../../../projects/monkey-style-guide-v2/src/lib/directives/helper.ts","../../../projects/monkey-style-guide-v2/src/lib/directives/info.ts","../../../projects/monkey-style-guide-v2/src/lib/directives/label.ts","../../../projects/monkey-style-guide-v2/src/lib/directives/prefix.ts","../../../projects/monkey-style-guide-v2/src/lib/directives/suffix.ts","../../../projects/monkey-style-guide-v2/src/lib/directives/module.ts","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-checkbox/monkey-checkbox.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-checkbox/monkey-checkbox.component.html","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-divider/monkey-divider.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-form-field/form-field-control.ts","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-form-field/utils.ts","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-form-field/form-field.ts","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-form-field/form-field.html","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-form-field/module.ts","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-icon-button/monkey-icon-button.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-icon-button/monkey-icon-button.component.html","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-input/monkey-input-currency.directive.ts","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-input/validators.ts","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-input/monkey-input.directive.ts","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-input/monkey-input.module.ts","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-modal/modal-ref.ts","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-modal/utils.ts","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-modal/modal.ts","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-modal/directives/title.ts","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-modal/directives/subtitle.ts","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-modal/directives/content.ts","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-modal/directives/actions.ts","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-modal/components/default.ts","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-modal/modal-config.ts","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-modal/modal.module.ts","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-modal/service.ts","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-option/monkey-option.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-security-level/monkey-security-level.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-security-level/monkey-security-level.component.html","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-select/monkey-select.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-select/monkey-select.component.html","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-status/monkey-status.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-status/monkey-status.component.html","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-table/components/pagination-action/pagination-action.ts","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-table/components/pagination-action/pagination-action.html","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-table/components/pagination-label/pagination-label.ts","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-table/components/pagination-label/pagination-label.html","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-table/components/pagination-size/pagination-size.ts","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-table/components/pagination-size/pagination-size.html","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-table/table.ts","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-table/table.html","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-table/directives/column-checked.ts","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-table/directives/column-expansible.ts","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-table/directives/column-sortable.ts","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-table/directives/column-stick.ts","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-table/table.module.ts","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-toast/monkey-toast.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-toast/monkey-toast.component.html","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-toggle/monkey-toggle.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-toggle/monkey-toggle.component.html","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-toggle-line/monkey-toggle-line-button/monkey-toggle-line-button.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-toggle-line/monkey-toggle-line-button/monkey-toggle-line-button.component.html","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-toggle-line/monkey-toggle-line.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-toggle-line/monkey-toggle-line.component.html","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-tooltip/tooltip/tooltip.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-tooltip/tooltip/tooltip.component.html","../../../projects/monkey-style-guide-v2/src/lib/components/monkey-tooltip/monkey-tooltip.directive.ts","../../../projects/monkey-style-guide-v2/src/public-api.ts","../../../projects/monkey-style-guide-v2/src/monkey-style-guide-v2.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\nconst counters: Record<string, number> = {};\n\n@Injectable({ providedIn: 'root' })\nexport class IdGenerator {\n getId(prefix: string): string {\n if (!Object.prototype.hasOwnProperty.call(counters, prefix)) {\n counters[prefix] = 1;\n }\n\n const currentCount = counters[prefix];\n counters[prefix] = currentCount + 1;\n\n return `${prefix}${currentCount}`;\n }\n}\n","export function stripHtmlComments(htmlContent: string) {\n return htmlContent.replace(/<!--(?!>)[\\S\\s]*?-->/g, '');\n}\n","export function getRandomString(len: number, charSet?: string): string {\n charSet = charSet || 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n\n return new Array(len)\n .fill('1')\n .map(() => {\n return charSet?.charAt(Math.floor(Math.random() * charSet.length));\n })\n .join('');\n}\n","import { Injectable, OnDestroy } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n@Injectable()\nexport class MonkeyDestroyService extends Subject<void> implements OnDestroy {\n ngOnDestroy(): void {\n this.next();\n this.complete();\n }\n}\n","/* eslint-disable max-len */\nimport { inject, Injectable } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyIconsService {\n private readonly _sanitizer = inject(DomSanitizer);\n\n private handleTrust(icon: string) {\n return this._sanitizer.bypassSecurityTrustHtml(icon);\n }\n\n get clear(): SafeHtml | null {\n return this.handleTrust(`\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" fill=\"none\"><path d=\"M7.815 7.277a.802.802 0 0 0-.459.349c-.103.167-.123.529-.038.694.028.055.854.906 1.836 1.89L10.939 12l-1.785 1.79c-.982.985-1.808 1.835-1.836 1.89a.926.926 0 0 0-.051.324c0 .494.414.812.922.707.183-.038.266-.114 2.001-1.844L12 13.062l1.81 1.805c1.731 1.725 1.818 1.806 2 1.844.58.12 1.021-.321.901-.901-.038-.182-.119-.269-1.844-2L13.062 12l1.805-1.81c1.73-1.735 1.806-1.818 1.844-2.001.105-.508-.213-.922-.707-.922a.926.926 0 0 0-.324.051c-.055.028-.905.854-1.89 1.836L12 10.939l-1.79-1.785c-.984-.982-1.826-1.803-1.87-1.825a.99.99 0 0 0-.525-.052\" fill-rule=\"evenodd\" fill=\"var(--mecx-color-gray-900)\"/></svg>\n `);\n }\n\n get calendar(): SafeHtml | null {\n return this.handleTrust(`\n <svg width=\"24\" height=\"24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M7.815 1.277a.8.8 0 0 0-.462.354c-.087.139-.094.198-.107.875l-.013.725-1.347.019c-1.236.018-1.371.026-1.646.107A2.807 2.807 0 0 0 2.352 5.26l-.092.32v13.84l.092.32a2.797 2.797 0 0 0 1.908 1.908l.32.092h14.84l.32-.092a2.797 2.797 0 0 0 1.908-1.908l.092-.32V5.58l-.092-.32a2.807 2.807 0 0 0-1.888-1.903c-.276-.081-.41-.089-1.65-.107l-1.35-.019v-.593c0-.757-.042-.96-.238-1.156-.349-.349-.903-.279-1.169.149-.087.139-.094.198-.107.879l-.014.73H8.76l-.001-.61c-.001-.68-.039-.91-.179-1.094-.159-.209-.502-.325-.765-.259M7.246 5.49c.013.681.02.74.107.879.357.574 1.223.443 1.363-.207.024-.113.044-.475.044-.804V4.76h6.472l.014.73c.013.681.02.74.107.879.357.574 1.223.443 1.363-.207.024-.113.044-.475.044-.804V4.76h1.238c1.452 0 1.525.014 1.876.366.352.351.366.424.366 1.876V8.24H3.756l.012-1.31c.012-1.277.014-1.314.104-1.482.155-.29.475-.562.768-.651.055-.016.661-.032 1.346-.034l1.246-.003.014.73m12.994 9.008c0 4.664-.001 4.742-.081 4.956-.109.29-.415.596-.705.705-.215.08-.28.081-7.454.081-7.159 0-7.239-.001-7.453-.081-.245-.091-.544-.363-.679-.615l-.088-.164-.011-4.81-.01-4.81H20.24v4.738M6.7 12.028a.967.967 0 0 0-.24.126.992.992 0 0 0 .097 1.695 1.005 1.005 0 0 0 1.352-.427c.096-.185.114-.59.035-.797a1.104 1.104 0 0 0-.521-.549c-.154-.07-.507-.094-.723-.048m5 0a.967.967 0 0 0-.24.126.992.992 0 0 0 .097 1.695 1.005 1.005 0 0 0 1.352-.427c.096-.185.114-.59.035-.797a1.104 1.104 0 0 0-.521-.549c-.154-.07-.507-.094-.723-.048m5 0a.967.967 0 0 0-.24.126.992.992 0 0 0 .097 1.695 1.005 1.005 0 0 0 1.352-.427c.096-.185.114-.59.035-.797a1.104 1.104 0 0 0-.521-.549c-.154-.07-.507-.094-.723-.048m-10 4a.967.967 0 0 0-.24.126.992.992 0 0 0 .097 1.695 1.005 1.005 0 0 0 1.352-.427c.096-.185.114-.59.035-.797a1.104 1.104 0 0 0-.521-.549c-.154-.07-.507-.094-.723-.048m5 0a.967.967 0 0 0-.24.126.992.992 0 0 0 .097 1.695 1.005 1.005 0 0 0 1.352-.427c.096-.185.114-.59.035-.797a1.104 1.104 0 0 0-.521-.549c-.154-.07-.507-.094-.723-.048\" fill-rule=\"evenodd\" fill=\"var(--mecx-color-gray-900)\"/></svg>\n `);\n }\n\n get arrowDown(): SafeHtml | null {\n return this.handleTrust(`\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M8 10L12 14L16 10\" stroke=\"var(--mecx-color-gray-900)\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>\n `);\n }\n\n get check(): SafeHtml | null {\n return this.handleTrust(\n `<svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M9.808 2.528 C 9.752 2.542,9.671 2.574,9.628 2.599 C 9.585 2.625,8.414 3.781,7.025 5.168 L 4.500 7.690 3.475 6.667 C 2.865 6.059,2.414 5.624,2.360 5.594 C 2.137 5.467,1.822 5.478,1.603 5.620 C 1.226 5.863,1.141 6.369,1.419 6.715 C 1.558 6.887,4.068 9.375,4.140 9.411 C 4.366 9.525,4.634 9.525,4.860 9.411 C 4.931 9.376,10.438 3.892,10.581 3.715 C 10.688 3.582,10.742 3.425,10.742 3.250 C 10.742 2.758,10.293 2.410,9.808 2.528 \" stroke=\"none\" fill-rule=\"evenodd\" fill=\"var(--mecx-color-theme-contrast-500\"></path></svg>`\n );\n }\n\n get minus(): SafeHtml | null {\n return this.handleTrust(\n `<svg width=\"8\" height=\"2\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M1.333 0.268 C 1.300 0.274,1.225 0.303,1.167 0.332 C 1.054 0.388,0.939 0.490,0.866 0.599 C 0.776 0.732,0.732 0.936,0.757 1.098 C 0.786 1.283,0.848 1.405,0.977 1.532 C 1.071 1.624,1.148 1.673,1.253 1.710 L 1.340 1.740 4.000 1.740 L 6.660 1.740 6.747 1.710 C 6.943 1.642,7.128 1.462,7.200 1.270 C 7.265 1.095,7.265 0.904,7.200 0.730 C 7.118 0.510,6.880 0.308,6.655 0.267 C 6.565 0.250,1.420 0.251,1.333 0.268\" stroke=\"none\" fill-rule=\"evenodd\" fill=\"var(--mecx-color-theme-contrast-500\"></path></svg>`\n );\n }\n\n get loading(): SafeHtml | null {\n return this.handleTrust(\n `<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><style>.spinner_ajPY{transform-origin:center;animation:spinner_AtaB .75s infinite linear}@keyframes spinner_AtaB{100%{transform:rotate(360deg)}}</style><path d=\"M12,1A11,11,0,1,0,23,12,11,11,0,0,0,12,1Zm0,19a8,8,0,1,1,8-8A8,8,0,0,1,12,20Z\" opacity=\".25\"/><path d=\"M10.14,1.16a11,11,0,0,0-9,8.92A1.59,1.59,0,0,0,2.46,12,1.52,1.52,0,0,0,4.11,10.7a8,8,0,0,1,6.66-6.61A1.42,1.42,0,0,0,12,2.69h0A1.57,1.57,0,0,0,10.14,1.16Z\" class=\"spinner_ajPY\"/></svg>`\n );\n }\n}\n","import { ComponentRef } from '@angular/core';\nimport { MonkeyToastComponent } from '../components';\n\nexport class ToastRef {\n constructor(private readonly componentRef: ComponentRef<MonkeyToastComponent>) {\n // not to do\n }\n\n close() {\n this.componentRef.instance.close();\n }\n}\n\nexport type ToastPosition =\n | 'top-center'\n | 'top-left'\n | 'top-right'\n | 'bottom-center'\n | 'bottom-left'\n | 'bottom-right';\n\nexport type ToastType = 'default' | 'success' | 'error' | 'info' | 'question';\n\nexport type ToastConfig = {\n type?: ToastType;\n icon?: string;\n isClosable?: boolean;\n message: string;\n position?: ToastPosition;\n duration?: number;\n keepOpen?: boolean;\n actionLabel?: string;\n actionIcon?: string;\n action?: () => void;\n closeOnAction?: boolean;\n};\n","import { GlobalPositionStrategy, Overlay } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { Injectable } from '@angular/core';\nimport { getRandomString } from '../../utils';\nimport { MonkeyToastComponent } from '../components';\nimport { type ToastConfig, type ToastPosition, ToastRef } from '../interfaces';\n\n@Injectable()\nexport class MonkeyToastService {\n private lastToast?: ToastRef;\n\n constructor(private overlay: Overlay) {\n // no to do\n }\n\n private getPositionStrategy(position?: ToastPosition): GlobalPositionStrategy {\n const globalPosition = this.overlay.position().global();\n\n switch (position) {\n case 'top-left':\n return globalPosition.top('40px').start('40px');\n case 'top-center':\n return globalPosition.top('40px').centerHorizontally();\n case 'top-right':\n return globalPosition.top('40px').end('40px');\n case 'bottom-left':\n return globalPosition.bottom('40px').start('40px');\n case 'bottom-center':\n return globalPosition.bottom('40px').centerHorizontally();\n default:\n return globalPosition.bottom('40px').end('40px');\n }\n }\n\n show(toastConfig: ToastConfig) {\n if (this.lastToast) {\n this.lastToast.close();\n }\n\n const overlayRef = this.overlay.create({\n hasBackdrop: false,\n positionStrategy: this.getPositionStrategy(toastConfig.position)\n });\n const portal = new ComponentPortal(MonkeyToastComponent);\n const componentRef = overlayRef.attach(portal);\n this.lastToast = new ToastRef(componentRef);\n\n componentRef.instance.id = getRandomString(6);\n componentRef.instance.type = toastConfig.type ?? 'default';\n componentRef.instance.icon = toastConfig.icon;\n componentRef.instance.isClosable = toastConfig.isClosable ?? false;\n componentRef.instance.message = toastConfig.message;\n componentRef.instance.actionLabel = toastConfig.actionLabel;\n componentRef.instance.actionIcon = toastConfig.actionIcon;\n componentRef.instance.onActionClick.subscribe(() => {\n if (toastConfig.action) {\n toastConfig.action();\n\n if (toastConfig.closeOnAction ?? true) {\n componentRef.instance.close();\n }\n }\n });\n\n componentRef.instance.onClose.subscribe(() => {\n overlayRef.detach();\n });\n\n if (!toastConfig.keepOpen) {\n setTimeout(() => {\n componentRef.instance.close();\n }, toastConfig.duration ?? 4000);\n }\n\n return componentRef.instance;\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { animate, state, style, transition, trigger } from '@angular/animations';\nimport { CommonModule } from '@angular/common';\nimport { booleanAttribute, Component, inject, Input, TemplateRef } from '@angular/core';\nimport { SafeHtml } from '@angular/platform-browser';\nimport { IdGenerator } from '../../../utils';\nimport { MonkeyIconsService } from '../../services';\n\n@Component({\n selector: 'monkey-accordion',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './monkey-accordion.component.html',\n styleUrl: './monkey-accordion.component.scss',\n host: {\n 'data-testid': 'monkey-accordion',\n '[class.disabled]': 'disabled',\n '[attr.id]': 'id',\n '[id]': 'id'\n },\n animations: [\n trigger('content', [\n state(\n 'void',\n style({\n height: '0px',\n overflow: 'hidden'\n })\n ),\n transition(':enter', [\n animate(\n '300ms ease-in-out',\n style({\n height: '*',\n overflow: 'hidden'\n })\n )\n ]),\n transition(':leave', [\n animate(\n '300ms ease-in-out',\n style({\n height: '0px',\n overflow: 'hidden'\n })\n )\n ])\n ])\n ]\n})\nexport class MonkeyAccordionComponent {\n private readonly _icons = inject(MonkeyIconsService);\n\n @Input({ transform: booleanAttribute }) open = false;\n\n @Input({ transform: booleanAttribute }) disabled = false;\n\n @Input() set title(data: string | TemplateRef<any>) {\n if (data instanceof TemplateRef) {\n this.titleRef = data;\n } else {\n this.titleStr = data;\n }\n }\n\n titleStr: string | undefined;\n\n titleRef: TemplateRef<any> | undefined;\n\n imgArrowDown: SafeHtml | null = this._icons.arrowDown;\n\n protected _uid = inject(IdGenerator).getId('monkey-accordion-');\n\n protected _id!: string;\n\n @Input()\n get id(): string {\n return this._id;\n }\n\n set id(value: string) {\n this._id = value || this._uid;\n }\n\n constructor() {\n // eslint-disable-next-line no-self-assign\n this.id = this.id;\n }\n\n onClick() {\n if (this.disabled) return;\n this.open = !this.open;\n }\n}\n","<div class=\"header\" (click)=\"onClick()\">\n <div class=\"title\">\n @if (titleRef) {\n <ng-container *ngTemplateOutlet=\"titleRef\" />\n } @else {\n {{ titleStr }}\n }\n </div>\n <div [innerHTML]=\"imgArrowDown\" class=\"icon\" [class.rotated]=\"open\"></div>\n</div>\n<div class=\"content-wrapper\">\n @if (open) {\n <div [@content]>\n <div class=\"content\">\n <ng-content />\n </div>\n </div>\n }\n</div>\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { CommonModule } from '@angular/common';\nimport { Component, inject, Input, OnInit, ViewEncapsulation } from '@angular/core';\nimport { IdGenerator } from '../../../utils';\n\n@Component({\n selector: 'monkey-icon',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './monkey-icon.component.html',\n styleUrl: './monkey-icon.component.scss',\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class]': `_icon+' '+size`,\n '[attr.id]': 'id',\n '[id]': 'id'\n }\n})\nexport class MonkeyIconComponent implements OnInit {\n @Input() set icon(val: string) {\n if (val) {\n this._icon = `mk-i mk-i-${val}`;\n }\n }\n\n @Input() size = '';\n\n _icon = '';\n\n protected _uid = inject(IdGenerator).getId('monkey-icon-');\n\n protected _id!: string;\n\n @Input()\n get id(): string {\n return this._id;\n }\n\n set id(value: string) {\n this._id = value || this._uid;\n }\n\n constructor() {\n // eslint-disable-next-line no-self-assign\n this.id = this.id;\n }\n\n ngOnInit(): void {\n if (!this._icon) {\n throw new Error('monkey-icon must have icon input');\n }\n }\n}\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 inject,\n Input,\n input,\n InputSignal,\n output,\n OutputEmitterRef,\n ViewEncapsulation\n} from '@angular/core';\nimport { IdGenerator } from '../../../utils';\nimport { type MonkeyAlertType } from '../../interfaces';\nimport { MonkeyIconComponent } from '../monkey-icon';\n\n@Component({\n encapsulation: ViewEncapsulation.None,\n imports: [MonkeyIconComponent],\n selector: 'monkey-alert',\n standalone: true,\n styleUrl: './monkey-alert.component.scss',\n templateUrl: './monkey-alert.component.html',\n host: {\n 'data-testid': 'monkey-alert',\n '[attr.id]': 'id',\n '[id]': 'id'\n }\n})\nexport class MonkeyAlertComponent {\n buttonLabel: InputSignal<string> = input('');\n\n message: InputSignal<string> = input.required<string>();\n\n title: InputSignal<string> = input.required<string>();\n\n type: InputSignal<MonkeyAlertType> = input.required<MonkeyAlertType>();\n\n onButtonClicked: OutputEmitterRef<void> = output<void>();\n\n protected _uid = inject(IdGenerator).getId('monkey-alert-');\n\n protected _id!: string;\n\n @Input()\n get id(): string {\n return this._id;\n }\n\n set id(value: string) {\n this._id = value || this._uid;\n }\n\n constructor() {\n // eslint-disable-next-line no-self-assign\n this.id = this.id;\n }\n\n icon(type: MonkeyAlertType): string {\n const typeIcons = {\n alert: 'warning-outline',\n default: 'info',\n error: 'error-outline',\n info: 'info',\n success: 'checkmark-big-circle'\n };\n\n return typeIcons[type];\n }\n}\n","<div [class]=\"'monkey-alert__card ' + type()\">\n @if (type()) {\n <monkey-icon size=\"lg\" [class]=\"'monkey-alert__card__type-' + type()\" [icon]=\"icon(type())\" />\n }\n <div class=\"monkey-alert__card__content\">\n <h4 class=\"monkey-alert__card__title\">{{ title() }}</h4>\n <h5 class=\"monkey-alert__card__message\">{{ message() }}</h5>\n @if (buttonLabel()) {\n <div>\n <a class=\"monkey-alert__card__link\" (click)=\"onButtonClicked.emit()\">\n {{ buttonLabel() }}\n </a>\n </div>\n }\n </div>\n</div>\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { CommonModule } from '@angular/common';\nimport { booleanAttribute, Component, inject, Input, ViewEncapsulation } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { IdGenerator } from '../../../utils';\nimport { Breadcrumb } from '../../interfaces';\n\n@Component({\n selector: 'monkey-breadcrumb',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './monkey-breadcrumb.component.html',\n styleUrl: './monkey-breadcrumb.component.scss',\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-testid': 'monkey-breadcrumb',\n '[attr.id]': 'id',\n '[id]': 'id'\n }\n})\nexport class MonkeyBreadcrumbComponent {\n @Input({ required: true }) first!: Breadcrumb;\n\n @Input({ required: true }) last!: Breadcrumb;\n\n @Input({ transform: booleanAttribute }) colapsed: boolean = false;\n\n protected _router = inject(Router);\n\n protected _uid = inject(IdGenerator).getId('monkey-breadcrumb-');\n\n protected _id!: string;\n\n @Input()\n get id(): string {\n return this._id;\n }\n\n set id(value: string) {\n this._id = value || this._uid;\n }\n\n constructor() {\n // eslint-disable-next-line no-self-assign\n this.id = this.id;\n }\n\n handleNavigate(item: Breadcrumb) {\n if (item.callback) {\n item.callback();\n } else {\n this._router.navigate([item.path]);\n }\n }\n}\n","<div class=\"breadcrumbs\">\n <a class=\"first\" (click)=\"handleNavigate(first)\">\n {{ first.label | titlecase }}\n </a>\n <span>/</span>\n @if(colapsed){\n <span>...</span>\n <span>/</span>\n }\n <a class=\"last\" (click)=\"handleNavigate(last)\">\n {{ last.label | titlecase }}\n </a>\n</div>\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { CommonModule } from '@angular/common';\nimport { Component, HostListener, inject, Input, ViewEncapsulation } from '@angular/core';\nimport { IdGenerator } from '../../../utils/id-generator';\nimport { MonkeyButtonType } from '../../interfaces/button';\nimport { MonkeySize } from '../../interfaces/sizes';\n\n@Component({\n encapsulation: ViewEncapsulation.None,\n imports: [CommonModule],\n selector: 'monkey-button',\n standalone: true,\n styleUrl: './monkey-button.component.scss',\n templateUrl: './monkey-button.component.html',\n host: {\n 'data-testid': 'monkey-button',\n '[attr.id]': 'id',\n '[id]': 'id'\n }\n})\nexport class MonkeyButtonComponent {\n @Input() disabled!: boolean;\n\n @Input() size: MonkeySize = 'md';\n\n @Input() type: MonkeyButtonType = 'primary';\n\n protected _uid = inject(IdGenerator).getId('monkey-button-');\n\n protected _id!: string;\n\n @Input()\n get id(): string {\n return this._id;\n }\n\n set id(value: string) {\n this._id = value || this._uid;\n }\n\n constructor() {\n // eslint-disable-next-line no-self-assign\n this.id = this.id;\n }\n\n @HostListener('click', ['$event'])\n onClick(event: PointerEvent): void {\n if (this.disabled) {\n event.stopPropagation();\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n }\n}\n","<button class=\"mecx-button\" [ngClass]=\"type + ' ' + size\" [disabled]=\"disabled\">\n <div class=\"content\">\n <ng-content select=\"[first]\"></ng-content>\n <span><ng-content></ng-content></span>\n <ng-content select=\"[last]\"></ng-content>\n </div>\n</button>\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\n\nimport { Directive } from '@angular/core';\n\n@Directive({\n selector: 'monkey-error'\n})\nexport class MonkeyError {}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\n\nimport { Directive } from '@angular/core';\n\n@Directive({\n selector: 'monkey-helper'\n})\nexport class MonkeyHelper {}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\n\nimport { Directive } from '@angular/core';\n\n@Directive({\n selector: 'monkey-info'\n})\nexport class MonkeyInfo {}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\n\nimport { Directive } from '@angular/core';\n\n@Directive({\n selector: 'monkey-label'\n})\nexport class MonkeyLabel {}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\n\nimport { Directive } from '@angular/core';\n\n@Directive({\n selector: 'monkey-prefix'\n})\nexport class MonkeyPrefix {}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\n\nimport { Directive, HostListener, Input } from '@angular/core';\n\n@Directive({\n selector: 'monkey-suffix',\n host: {\n '[class.has-action]': 'hasAction'\n }\n})\nexport class MonkeySuffix {\n @Input('hasAction')\n set _hasAction(value: '') {\n this.hasAction = true;\n }\n\n hasAction = false;\n\n action: Function | null = null;\n\n @HostListener('click', ['$event'])\n onClick(event: PointerEvent): void {\n if (!this.action) {\n event.preventDefault();\n event.stopPropagation();\n } else {\n this.action(event);\n }\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\n\nimport { NgModule } from '@angular/core';\nimport { MonkeyError } from './error';\nimport { MonkeyHelper } from './helper';\nimport { MonkeyInfo } from './info';\nimport { MonkeyLabel } from './label';\nimport { MonkeyPrefix } from './prefix';\nimport { MonkeySuffix } from './suffix';\n\n@NgModule({\n declarations: [MonkeyError, MonkeyHelper, MonkeyInfo, MonkeyLabel, MonkeyPrefix, MonkeySuffix],\n exports: [MonkeyError, MonkeyHelper, MonkeyInfo, MonkeyLabel, MonkeyPrefix, MonkeySuffix]\n})\nexport class MonkeyDirectivesModule {}\n","import { animate, keyframes, style, transition, trigger } from '@angular/animations';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n EventEmitter,\n forwardRef,\n inject,\n Injector,\n Input,\n OnChanges,\n OnInit,\n Output,\n QueryList\n} from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n FormControlDirective,\n FormControlName,\n FormGroupDirective,\n FormsModule,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n NgControl,\n NgModel,\n ReactiveFormsModule,\n ValidationErrors,\n Validator\n} from '@angular/forms';\nimport { takeUntil } from 'rxjs';\nimport { IdGenerator } from '../../../utils';\nimport { MonkeyHelper, MonkeyInfo, MonkeyLabel } from '../../directives';\nimport { MonkeyDestroyService, MonkeyIconsService } from '../../services';\n\n@Component({\n selector: 'monkey-checkbox',\n standalone: true,\n imports: [ReactiveFormsModule, FormsModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: './monkey-checkbox.component.html',\n styleUrls: ['./monkey-checkbox.component.scss'],\n animations: [\n trigger('iconAnimation', [\n transition(':enter', [\n animate(\n '250ms ease-in-out',\n keyframes([\n style({ opacity: 0, transform: 'scale(0.7)' }),\n style({ opacity: 1, transform: 'scale(1)' })\n ])\n )\n ]),\n transition(':leave', [\n animate(\n '250ms ease-in-out',\n keyframes([\n style({ opacity: 1, transform: 'scale(1)' }),\n style({ opacity: 0, transform: 'scale(.7)' })\n ])\n )\n ])\n ])\n ],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => {\n // eslint-disable-next-line no-use-before-define\n return MonkeyCheckboxComponent;\n }),\n multi: true\n },\n {\n provide: NG_VALIDATORS,\n // eslint-disable-next-line no-use-before-define\n useExisting: MonkeyCheckboxComponent,\n multi: true\n },\n MonkeyDestroyService\n ],\n host: {\n 'data-testid': 'input-checkbox',\n class: 'mecx-checkbox',\n '[class.mecx-disabled]': 'disabled',\n '[class.mecx-checkbox-checked]': 'value',\n '[class.mecx-checkbox-focused]': 'isFocused',\n '[class.mecx-checkbox-indeterminate]': 'indeterminate',\n '[class.mecx-checkbox-invalid]': 'showInvalid',\n '[class.sm]': 'size.includes(\"sm\")',\n '[class.md]': 'size.includes(\"md\")',\n '[class.lg]': 'size.includes(\"lg\")'\n }\n})\nexport class MonkeyCheckboxComponent implements ControlValueAccessor, OnChanges, OnInit, Validator {\n @ContentChildren(MonkeyInfo, { descendants: true }) private infoChildren!: QueryList<MonkeyInfo>;\n\n @ContentChildren(MonkeyLabel, { descendants: true })\n private labelChildren!: QueryList<MonkeyLabel>;\n\n @ContentChildren(MonkeyHelper, { descendants: true })\n private helperChildren!: QueryList<MonkeyHelper>;\n\n @Input({ transform: booleanAttribute }) disabled = false;\n\n @Input({ transform: booleanAttribute }) indeterminate = false;\n\n @Input({ transform: booleanAttribute }) required = false;\n\n @Input({ transform: booleanAttribute }) showFooter = true;\n\n @Input() size: 'sm' | 'md' | 'lg' = 'md';\n\n @Output() onChange = new EventEmitter<boolean>();\n\n private _destroyed = inject(MonkeyDestroyService);\n\n private readonly icons = inject(MonkeyIconsService);\n\n private readonly idGenerator = inject(IdGenerator);\n\n private injector = inject(Injector);\n\n private cdr = inject(ChangeDetectorRef);\n\n control: AbstractControl<any, any> | null | undefined;\n\n readonly iconCheck = this.icons.check;\n\n readonly iconIndeterminate = this.icons.minus;\n\n readonly inputId = this.idGenerator.getId('input-checkbox-');\n\n @Input() value = false;\n\n isFocused = false;\n\n get showInvalid(): boolean {\n const touched = this.control?.touched || false;\n const invalid = this.control?.invalid || false;\n return !this.isFocused && touched && invalid;\n }\n\n get hasHeader(): boolean {\n return this.labelChildren.length > 0 || this.helperChildren.length > 0;\n }\n\n get isTouched(): boolean {\n return this.control?.touched ?? false;\n }\n\n get isInvalid(): boolean {\n return this.control?.invalid ?? false;\n }\n\n ngOnInit() {\n const ngControl = this.injector.get(NgControl, null, { self: true, optional: true });\n\n if (ngControl instanceof FormControlDirective || ngControl instanceof NgModel) {\n this.control = ngControl.control;\n } else if (ngControl instanceof FormControlName) {\n this.control = this.injector.get(FormGroupDirective).getControl(ngControl as FormControlName);\n\n this.control.statusChanges.pipe(takeUntil(this._destroyed)).subscribe(() => {\n this.cdr.markForCheck();\n });\n }\n }\n\n _onChange: any = () => {};\n\n _onTouched: any = () => {};\n\n _onValidatorChange: any = () => {};\n\n ngOnChanges(changes: any) {\n if (changes.required) {\n this._onValidatorChange();\n }\n }\n\n onBlur = () => {\n this._onTouched();\n this.isFocused = false;\n };\n\n onFocus = () => {\n this.isFocused = true;\n };\n\n validate(control: AbstractControl): ValidationErrors | null {\n return this.required && control.value !== true ? { required: true } : null;\n }\n\n writeValue(value: boolean): void {\n this.value = value;\n this.cdr.markForCheck();\n }\n\n registerOnChange(fn: any): void {\n this._onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this._onTouched = fn;\n }\n\n registerOnValidatorChange(fn: () => void): void {\n this._onValidatorChange = fn;\n }\n\n setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled;\n this.cdr.markForCheck();\n }\n\n onChangeEvent(event: Event): void {\n const checkbox = event.target as HTMLInputElement;\n\n if (this.indeterminate) {\n this.indeterminate = false;\n }\n\n this.value = checkbox.checked;\n this._onChange(this.value);\n this.onChange.next(this.value);\n this._onTouched();\n }\n\n getFooterMessages(): 'info' | 'error' | '' {\n const hasInfoChildren = this.infoChildren && this.infoChildren.length > 0;\n\n if (!this.disabled && this.isTouched && this.isInvalid) {\n return 'error';\n }\n\n if (hasInfoChildren) {\n return 'info';\n }\n\n return '';\n }\n}\n","@if (hasHeader) {\n <div class=\"header\">\n <ng-content select=\"monkey-label\" />\n <ng-content select=\"monkey-helper\" />\n </div>\n}\n<label [attr.for]=\"inputId\">\n <input\n type=\"checkbox\"\n [checked]=\"value\"\n [indeterminate]=\"indeterminate\"\n [disabled]=\"disabled\"\n (change)=\"onChangeEvent($event)\"\n (blur)=\"onBlur()\"\n (focus)=\"onFocus()\"\n [id]=\"inputId\"\n [required]=\"required\"\n />\n <span class=\"checkbox\">\n @if (indeterminate) {\n <div class=\"icon\" @iconAnimation [innerHTML]=\"iconIndeterminate\"></div>\n } @else if (value) {\n <div class=\"icon\" @iconAnimation [innerHTML]=\"iconCheck\"></div>\n }\n </span>\n <span class=\"checkbox-label\">\n <ng-content></ng-content>\n </span>\n</label>\n@if (showFooter) {\n @switch (getFooterMessages()) {\n @case ('error') {\n <ng-content select=\"monkey-error\" />\n }\n @case ('info') {\n <ng-content select=\"monkey-info\" />\n }\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport {\n booleanAttribute,\n Component,\n HostBinding,\n inject,\n Input,\n input,\n InputSignal,\n InputSignalWithTransform,\n ViewEncapsulation\n} from '@angular/core';\nimport { IdGenerator } from '../../../utils';\nimport { MonkeySize } from '../../interfaces';\n\n@Component({\n encapsulation: ViewEncapsulation.None,\n selector: 'monkey-divider',\n standalone: true,\n styleUrl: './monkey-divider.component.scss',\n template: '',\n host: {\n 'data-testid': 'monkey-divider',\n '[attr.id]': 'id',\n '[id]': 'id'\n }\n})\nexport class MonkeyDividerComponent {\n size: InputSignal<MonkeySize> = input<MonkeySize>('sm');\n\n vertical: InputSignalWithTransform<boolean, unknown> = input(false, {\n transform: booleanAttribute\n });\n\n @HostBinding('class')\n get classes(): string {\n return `${this.size()} ${this.vertical() ? 'vertical' : ''}`;\n }\n\n protected _uid = inject(IdGenerator).getId('monkey-divider-');\n\n protected _id!: string;\n\n @Input()\n get id(): string {\n return this._id;\n }\n\n set id(value: string) {\n this._id = value || this._uid;\n }\n\n constructor() {\n // eslint-disable-next-line no-self-assign\n this.id = this.id;\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\n\nimport { Directive } from '@angular/core';\nimport { AbstractControlDirective, NgControl } from '@angular/forms';\nimport { Observable } from 'rxjs';\n\n@Directive()\nexport abstract class MonkeyFormFieldControl {\n readonly id!: string;\n\n readonly ngControl!: NgControl | AbstractControlDirective | null;\n\n readonly disabled!: boolean;\n\n readonly focused!: boolean;\n\n readonly stateChanges!: Observable<void>;\n\n readonly type!: string;\n\n readonly currency!: boolean;\n\n readonly percent!: boolean;\n\n abstract onContainerClick(event: MouseEvent): void;\n\n loading?: boolean;\n\n disableToBeDirty?: boolean;\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\n\nexport function getCurrencySymbol(code: string) {\n const currency = code || 'BRL';\n\n const symbol = {\n BRL: 'R$',\n CLP: '$',\n MXN: '$',\n USD: '$'\n }[currency];\n\n return symbol;\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\n\nimport {\n AfterContentChecked,\n AfterContentInit,\n booleanAttribute,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n DEFAULT_CURRENCY_CODE,\n ElementRef,\n inject,\n Input,\n OnDestroy,\n QueryList,\n ViewEncapsulation\n} from '@angular/core';\nimport { SafeHtml } from '@angular/platform-browser';\nimport { merge, Subject, Subscription, takeUntil } from 'rxjs';\nimport { IdGenerator } from '../../../utils';\nimport {\n MonkeyError,\n MonkeyHelper,\n MonkeyInfo,\n MonkeyLabel,\n MonkeyPrefix,\n MonkeySuffix\n} from '../../directives';\nimport { MonkeyIconsService } from '../../services';\nimport { MonkeyFormFieldControl } from './form-field-control';\nimport { getCurrencySymbol } from './utils';\n\n@Component({\n encapsulation: ViewEncapsulation.None,\n selector: 'monkey-form-field',\n exportAs: 'monkeyFormField',\n templateUrl: './form-field.html',\n styleUrl: './form-field.scss',\n host: {\n class: 'mecx-form-field',\n '[class.mecx-disabled]': 'control.disabled',\n '[class.mecx-form-field-focused]': 'control.focused',\n '[class.mecx-form-field-invalid]': 'showInvalid',\n '[attr.id]': 'id',\n '[id]': 'id'\n }\n})\nexport class MonkeyFormFieldComponent implements AfterContentInit, AfterContentChecked, OnDestroy {\n @Input()\n get id(): string {\n return this._id;\n }\n\n set id(value: string) {\n this._id = value || this._uid;\n }\n\n @Input({ transform: booleanAttribute })\n hideClear!: boolean;\n\n @ContentChild(MonkeyFormFieldControl) private _formFieldControl!: MonkeyFormFieldControl;\n\n @ContentChildren(MonkeyLabel, { descendants: true })\n private _labelChildren!: QueryList<MonkeyLabel>;\n\n @ContentChildren(MonkeyHelper, { descendants: true })\n private _helperChildren!: QueryList<MonkeyHelper>;\n\n @ContentChildren(MonkeyPrefix, { descendants: true })\n private _prefixChildren!: QueryList<MonkeyPrefix>;\n\n @ContentChildren(MonkeySuffix, { descendants: true })\n private _suffixChildren!: QueryList<MonkeySuffix>;\n\n @ContentChildren(MonkeyInfo, { descendants: true })\n private _infoChildren!: QueryList<MonkeyInfo>;\n\n @ContentChildren(MonkeyError, { descendants: true })\n private _errorChildren!: QueryList<MonkeyError>;\n\n public elementRef = inject(ElementRef);\n\n private readonly _icons = inject(MonkeyIconsService);\n\n private readonly _changeDetectorRef = inject(ChangeDetectorRef);\n\n private readonly _idGenerator = inject(IdGenerator);\n\n private readonly _labelId = this._idGenerator.getId('monkey-label-');\n\n protected _uid = inject(IdGenerator).getId('monkey-form-field-');\n\n protected _id!: string;\n\n private _destroyed = new Subject<void>();\n\n private _isFocused: boolean | null = null;\n\n private _previousControl: MonkeyFormFieldControl | null = null;\n\n private _stateChanges: Subscription | undefined;\n\n private _valueChanges: Subscription | undefined;\n\n readonly currencySymbol = getCurrencySymbol(inject(DEFAULT_CURRENCY_CODE));\n\n readonly percentSymbol = '%';\n\n imgClear: SafeHtml | null = this._icons.clear;\n\n imgCalendar: SafeHtml | null = this._icons.calendar;\n\n imgLoading: SafeHtml | null = this._icons.loading;\n\n hasLabel = false;\n\n hasHelper = false;\n\n hasPrefix = false;\n\n hasSuffix = false;\n\n hasInfo = false;\n\n hasError = false;\n\n get control(): MonkeyFormFieldControl {\n return this._formFieldControl;\n }\n\n get labelId(): string {\n return this._labelId;\n }\n\n get showHeader(): boolean {\n return this.hasLabel || this.hasHelper;\n }\n\n get showFooter(): boolean {\n return this.hasInfo || this.hasError;\n }\n\n get showInvalid(): boolean {\n const touched = this.control.ngControl?.touched || false;\n const invalid = this.control.ngControl?.invalid || false;\n return (\n this.hasError && !this._isFocused && touched && invalid && !this.control.disableToBeDirty\n );\n }\n\n get showClear(): boolean {\n return (\n !!this.control.ngControl?.control?.value &&\n !this.control.disabled &&\n !this.control.loading &&\n !this.hideClear\n );\n }\n\n get showCalendar(): boolean {\n return this.control.type === 'date';\n }\n\n get showCurrency(): boolean {\n return this.control.currency;\n }\n\n get showPercent(): boolean {\n return this.control.percent;\n }\n\n get showLoading(): boolean {\n return this.control.loading || false;\n }\n\n constructor() {\n // eslint-disable-next-line no-self-assign\n this.id = this.id;\n }\n\n private updateFocusState() {\n if (this.control.focused && !this._isFocused) {\n this._isFocused = true;\n } else if (!this.control.focused && (this._isFocused || this._isFocused === null)) {\n this._isFocused = false;\n }\n }\n\n private handleFormFieldControl() {\n if (!this.control) {\n throw Error('monkey-form-field must have a MonkeyFormFieldControl');\n }\n }\n\n private checkPrefixAndSuffix() {\n this.hasPrefix = !!this._prefixChildren?.length;\n this.hasSuffix = !!this._suffixChildren?.length;\n const suffix = this._suffixChildren.get(0);\n if (suffix) {\n suffix.action = (event: MouseEvent) => {\n event.preventDefault();\n event.stopPropagation();\n };\n }\n }\n\n private initializePrefixAndSuffix() {\n this.checkPrefixAndSuffix();\n\n merge(this._prefixChildren.changes, this._suffixChildren.changes).subscribe(() => {\n this.checkPrefixAndSuffix();\n this._changeDetectorRef.markForCheck();\n });\n }\n\n private checkInfoError() {\n this.hasInfo = !!this._infoChildren?.length;\n this.hasError = !!this._errorChildren?.length;\n }\n\n private initializeInfoError() {\n this.checkInfoError();\n\n merge(this._infoChildren.changes, this._errorChildren.changes).subscribe(() => {\n this.checkInfoError();\n this._changeDetectorRef.markForCheck();\n });\n }\n\n private initializeComponents() {\n this.hasLabel = !!this._labelChildren?.length;\n this.hasHelper = !!this._helperChildren?.length;\n\n this.initializePrefixAndSuffix();\n this.initializeInfoError();\n }\n\n private initializeControl() {\n const { control } = this;\n\n this._stateChanges?.unsubscribe();\n this._stateChanges = control.stateChanges.subscribe(() => {\n this.updateFocusState();\n this._changeDetectorRef.markForCheck();\n });\n\n this._valueChanges?.unsubscribe();\n\n if (control.ngControl && control.ngControl.valueChanges) {\n this._valueChanges = control.ngControl.valueChanges\n .pipe(takeUntil(this._destroyed))\n .subscribe(() => {\n this._changeDetectorRef.markForCheck();\n });\n }\n }\n\n private openDatePicker() {\n const input: any = document.getElementById(this.control.id);\n if (input.showPicker) {\n input.showPicker();\n } else {\n input.focus();\n }\n }\n\n ngAfterContentInit() {\n this.handleFormFieldControl();\n this.initializeComponents();\n }\n\n ngAfterContentChecked() {\n this.handleFormFieldControl();\n\n if (this.control !== this._previousControl) {\n this.initializeControl();\n this._previousControl = this.control;\n }\n }\n\n ngOnDestroy() {\n this._stateChanges?.unsubscribe();\n this._valueChanges?.unsubscribe();\n this._destroyed.next();\n this._destroyed.complete();\n }\n\n getFooterMessages(): 'info' | 'error' | '' {\n const touched = this.control.ngControl?.touched;\n const invalid = this.control.ngControl?.invalid;\n const isFocused = this._isFocused;\n const hasInfoChildren = this._infoChildren && this._infoChildren.length > 0;\n\n const isControlEnabled = !this.control.disabled;\n const isControlDisableToBeDirty = !this.control.disableToBeDirty;\n const isTouched = touched;\n const isInvalid = invalid;\n const isNotFocused = !isFocused;\n\n if (isControlEnabled && isTouched && isInvalid && isNotFocused && isControlDisableToBeDirty) {\n return 'error';\n }\n\n if (hasInfoChildren) {\n return 'info';\n }\n\n return '';\n }\n\n getSymbols(): string {\n if (this.showCurrency && this.currencySymbol) {\n return this.currencySymbol;\n }\n if (this.showPercent && this.percentSymbol) {\n return this.percentSymbol;\n }\n\n return '';\n }\n\n onClear(event: MouseEvent) {\n event.preventDefault();\n event.stopPropagation();\n this.control.ngControl?.control?.setValue('');\n this.control.ngControl?.control?.markAsTouched();\n }\n\n onOpenCalendar(event: MouseEvent) {\n event.preventDefault();\n event.stopPropagation();\n if (this.control.type === 'date') {\n this.openDatePicker();\n }\n }\n}\n","@if (showHeader) {\n <div class=\"mecx-form-field-header\" (click)=\"control.onContainerClick($event)\">\n <label [id]=\"labelId\" [attr.for]=\"control.id\">\n <ng-content select=\"monkey-label\"></ng-content>\n </label>\n <ng-content select=\"monkey-helper\"></ng-content>\n </div>\n}\n\n<div class=\"mecx-form-field-body\" (click)=\"control.onContainerClick($event)\">\n @if (hasPrefix) {\n <ng-content select=\"monkey-prefix\"></ng-content>\n }\n @if (getSymbols(); as symbols) {\n <div class=\"mecx-form-field-prefix-symbol\">\n {{ symbols }}\n </div>\n }\n\n <ng-content></ng-content>\n\n @if (showClear) {\n <div [innerHTML]=\"imgClear\" class=\"mecx-clear\" (click)=\"onClear($event)\"></div>\n }\n @if (showCalendar) {\n <div [innerHTML]=\"imgCalendar\" class=\"mecx-calendar\" (click)=\"onOpenCalendar($event)\"></div>\n }\n @if (showLoading) {\n <div [innerHTML]=\"imgLoading\" class=\"mecx-form-field-loading\"></div>\n }\n\n @if (hasSuffix) {\n <ng-content select=\"monkey-suffix\"></ng-content>\n }\n</div>\n\n@if (showFooter) {\n <div class=\"mecx-form-field-footer\" (click)=\"control.onContainerClick($event)\">\n @switch (getFooterMessages()) {\n @case ('error') {\n <ng-content select=\"monkey-error\"></ng-content>\n }\n @case ('info') {\n <div class=\"mecx-form-field-info\">\n <ng-content select=\"monkey-info\"></ng-content>\n </div>\n }\n }\n </div>\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\n\nimport { NgModule } from '@angular/core';\nimport { MonkeyFormFieldComponent } from './form-field';\n\n@NgModule({\n declarations: [MonkeyFormFieldComponent],\n exports: [MonkeyFormFieldComponent]\n})\nexport class MonkeyFormFieldModule {}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { CommonModule } from '@angular/common';\nimport { Component, HostListener, inject, Input, ViewEncapsulation } from '@angular/core';\nimport { IdGenerator } from '../../../utils';\nimport { MonkeyIconComponent } from '../monkey-icon';\n\n@Component({\n selector: 'monkey-icon-button',\n standalone: true,\n imports: [CommonModule, MonkeyIconComponent],\n templateUrl: './monkey-icon-button.component.html',\n styleUrl: './monkey-icon-button.component.scss',\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-testid': 'monkey-icon-button',\n '[attr.id]': 'id',\n '[id]': 'id'\n }\n})\nexport class MonkeyIconButtonComponent {\n @Input() type: 'primary' | 'secondary' | 'tertiary' = 'primary';\n\n @Input() size: 'sm' | 'md' | 'lg' = 'md';\n\n @Input() disabled: boolean = false;\n\n @Input() icon = '';\n\n protected _uid = inject(IdGenerator).getId('monkey-icon-button-');\n\n protected _id!: string;\n\n @Input()\n get id(): string {\n return this._id;\n }\n\n set id(value: string) {\n this._id = value || this._uid;\n }\n\n constructor() {\n // eslint-disable-next-line no-self-assign\n this.id = this.id;\n }\n\n @HostListener('click', ['$event'])\n onClick(event: any) {\n if (this.disabled) {\n event.stopPropagation();\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n }\n}\n","<button class=\"mecx-icon-button\" [ngClass]=\"type + ' ' + size\" [disabled]=\"disabled\">\n <div class=\"content\">\n <monkey-icon [icon]=\"icon\" [size]=\"size\" first></monkey-icon>\n </div>\n</button>\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\n\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { CurrencyPipe } from '@angular/common';\nimport {\n booleanAttribute,\n ChangeDetectorRef,\n DEFAULT_CURRENCY_CODE,\n Directive,\n ElementRef,\n inject,\n Input,\n LOCALE_ID,\n OnChanges,\n OnDestroy,\n OnInit,\n Renderer2,\n SimpleChanges\n} from '@angular/core';\nimport { NgControl, Validators } from '@angular/forms';\nimport { Subject, Subscription, takeUntil } from 'rxjs';\nimport { IdGenerator } from '../../../utils';\nimport { MonkeyDestroyService } from '../../services';\nimport { MonkeyFormFieldControl } from '../monkey-form-field';\n\n@Directive({\n selector: 'input[monkey-input-currency]',\n exportAs: 'monkeyInput',\n host: {\n class: 'mecx-input',\n '[class.mecx-input-disabled]': 'disabled',\n '[id]': 'id',\n '[disabled]': 'disabled',\n '[required]': 'required',\n '[attr.name]': 'name || null',\n '[attr.disabled]': 'disabled || null',\n '[attr.aria-invalid]': '(empty && required) ? null : errorState',\n '[attr.aria-required]': 'required',\n '[attr.id]': 'id',\n '(focus)': 'focusChanged(true)',\n '(focusout)': 'focusOutChanged()',\n '(blur)': 'focusChanged(false)'\n },\n providers: [\n {\n provide: MonkeyFormFieldControl,\n // eslint-disable-next-line no-use-before-define\n useExisting: MonkeyInputCurrencyDirective\n },\n MonkeyDestroyService\n ]\n})\nexport class MonkeyInputCurrencyDirective\n implements MonkeyFormFieldControl, OnChanges, OnInit, OnDestroy\n{\n protected _elementRef =\n inject<ElementRef<HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement>>(ElementRef);\n\n protected _uid = inject(IdGenerator).getId('monkey-input-currency-');\n\n protected _id!: string;\n\n readonly stateChanges: Subject<void> = new Subject<void>();\n\n @Input() name!: string;\n\n @Input({ transform: booleanAttribute })\n get disabled(): boolean {\n if (this.ngControl && this.ngControl.disabled !== null) {\n return this.ngControl.disabled;\n }\n return this._disabled;\n }\n\n set disabled(value: boolean) {\n this._disabled = value;\n\n if (this.focused) {\n this.focused = false;\n this.stateChanges.next();\n }\n }\n\n @Input()\n get id(): string {\n return this._id;\n }\n\n set id(value: string) {\n this._id = value || this._uid;\n }\n\n @Input()\n get required(): boolean {\n return this._required ?? this.ngControl?.control?.hasValidator(Validators.required) ?? false;\n }\n\n set required(value: BooleanInput) {\n this._required = coerceBooleanProperty(value);\n }\n\n protected _required: boolean | undefined;\n\n protected _disabled = false;\n\n @Input()\n get type(): string {\n return this._type;\n }\n\n set type(value: string) {\n this._type = value;\n }\n\n protected _type = 'text';\n\n get currency(): boolean {\n return true;\n }\n\n get percent(): boolean {\n return false;\n }\n\n private readonly _changeDetectorRef = inject(ChangeDetectorRef);\n\n private readonly _currencyCode = inject(DEFAULT_CURRENCY_CODE);\n\n private readonly _localeId = inject(LOCALE_ID);\n\n private _destroyed = new Subject<void>();\n\n private _valueChanges: Subscription | undefined;\n\n private _rawValue = 0;\n\n ngControl = inject(NgControl, { self: true, optional: true });\n\n focused: boolean = false;\n\n constructor(\n private el: ElementRef,\n private renderer: Renderer2,\n private currencyPipe: CurrencyPipe\n ) {\n // eslint-disable-next-line no-self-assign\n this.id = this.id;\n }\n\n private markAsUntouched() {\n this.ngControl?.control?.markAsUntouched();\n }\n\n private focus(options?: FocusOptions): void {\n this._elementRef.nativeElement.focus(options);\n this.markAsUntouched();\n }\n\n private formatValue(value: string): string | null {\n return this.currencyPipe.transform(\n value,\n this._currencyCode || 'BRL',\n '',\n '1.2-2',\n this._localeId || 'pt-BR'\n );\n }\n\n private handleControlValue() {\n const value = this.ngControl?.control?.value;\n if (this._rawValue !== value) {\n this._rawValue = value;\n let handled = value;\n const decimal = `${value}`.split('.')[1];\n if (`${decimal}`.length >= 2) {\n handled = `${value}`.replace(/[^0-9]/g, '');\n handled = `${Number(handled) / 100}`;\n }\n\n this.ngControl?.control?.setValue(Number(handled), { emitEvent: false, onlySelf: true });\n const formattedValue = this.formatValue(handled);\n this.renderer.setProperty(this.el.nativeElement, 'value', formattedValue);\n this._changeDetectorRef.markForCheck();\n }\n }\n\n ngOnInit(): void {\n this.handleControlValue();\n this._valueChanges?.unsubscribe();\n\n this._valueChanges = this.ngControl?.control?.valueChanges\n .pipe(takeUntil(this._destroyed))\n .subscribe(() => {\n this.handleControlValue();\n });\n }\n\n ngOnDestroy(): void {\n this.stateChanges.complete();\n this._valueChanges?.unsubscribe();\n }\n\n ngOnChanges({ disabled }: SimpleChanges): void {\n if (!disabled) {\n this.stateChanges.next();\n }\n }\n\n onContainerClick() {\n if (!this.focused) {\n this.focus();\n }\n }\n\n focusChanged(isFocused: boolean) {\n if (isFocused === this.focused) {\n return;\n }\n\n if (isFocused && this.disabled) {\n const element = this._elementRef.nativeElement as HTMLInputElement;\n element.setSelectionRange(0, 0);\n }\n\n this.markAsUntouched();\n this.focused = isFocused;\n this.stateChanges.next();\n }\n\n focusOutChanged() {\n this.ngControl?.control?.markAsTouched();\n }\n}\n","import { getSupportedInputTypes } from '@angular/cdk/platform';\n\nconst INPUT_INVALID_TYPES = [\n 'button',\n 'checkbox',\n 'file',\n 'image',\n 'radio',\n 'range',\n 'reset',\n 'submit'\n];\n\nexport function validateType(type: string) {\n if (INPUT_INVALID_TYPES.indexOf(type) > -1 || !getSupportedInputTypes().has(type)) {\n throw Error(`Input type \"${type}\" isn't supported.`);\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\n\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n booleanAttribute,\n Directive,\n ElementRef,\n inject,\n Input,\n OnChanges,\n OnDestroy,\n SimpleChanges\n} from '@angular/core';\nimport { NgControl, Validators } from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { IdGenerator } from '../../../utils';\nimport { MonkeyDestroyService } from '../../services';\nimport { MonkeyFormFieldControl } from '../monkey-form-field';\nimport { validateType } from './validators';\n\n@Directive({\n selector: 'input[monkey-input],textarea[monkey-input]',\n exportAs: 'monkeyInput',\n host: {\n class: 'mecx-input',\n 'data-testid': 'monkey-input',\n '[class.mecx-input-disabled]': 'disabled',\n '[id]': 'id',\n '[disabled]': 'disabled',\n '[required]': 'required',\n '[attr.name]': 'name || null',\n '[attr.disabled]': 'disabled || null',\n '[attr.aria-invalid]': '(empty && required) ? null : errorState',\n '[attr.aria-required]': 'required',\n '[attr.id]': 'id',\n '(focus)': 'focusChanged(true)',\n '(focusout)': 'focusOutChanged()',\n '(blur)': 'focusChanged(false)'\n },\n providers: [\n {\n provide: MonkeyFormFieldControl,\n // eslint-disable-next-line no-use-before-define\n useExisting: MonkeyInputDirective\n },\n MonkeyDestroyService\n ]\n})\nexport class MonkeyInputDirective implements MonkeyFormFieldControl, OnChanges, OnDestroy {\n protected _elementRef =\n inject<ElementRef<HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement>>(ElementRef);\n\n protected _uid = inject(IdGenerator).getId('monkey-input-');\n\n protected _id!: string;\n\n readonly stateChanges: Subject<void> = new Subject<void>();\n\n @Input() name!: string;\n\n @Input({ transform: booleanAttribute })\n get disabled(): boolean {\n if (this.ngControl && this.ngControl.disabled !== null) {\n return this.ngControl.disabled;\n }\n return this._disabled;\n }\n\n set disabled(value: boolean) {\n this._disabled = value;\n\n if (this.focused) {\n this.focused = false;\n this.stateChanges.next();\n }\n }\n\n @Input()\n get id(): string {\n return this._id;\n }\n\n set id(value: string) {\n this._id = value || this._uid;\n }\n\n @Input()\n get required(): boolean {\n return this._required ?? this.ngControl?.control?.hasValidator(Validators.required) ?? false;\n }\n\n set required(value: BooleanInput) {\n this._required = coerceBooleanProperty(value);\n }\n\n protected _required: boolean | undefined;\n\n protected _disabled = false;\n\n @Input()\n get type(): string {\n return this._type;\n }\n\n set type(value: string) {\n validateType(value);\n this._type = value || 'text';\n\n (this._elementRef.nativeElement as HTMLInputElement).type = this._type;\n }\n\n protected _type = 'text';\n\n get currency(): boolean {\n return false;\n }\n\n @Input()\n get percent(): boolean {\n return this._percent;\n }\n\n set percent(value: '') {\n this._percent = true;\n }\n\n protected _percent = false;\n\n ngControl = inject(NgControl, { self: true, optional: true });\n\n focused: boolean = false;\n\n constructor() {\n // eslint-disable-next-line no-self-assign\n this.id = this.id;\n }\n\n private markAsUntouched() {\n this.ngControl?.control?.markAsUntouched();\n }\n\n private focus(options?: FocusOptions): void {\n this._elementRef.nativeElement.focus(options);\n this.markAsUntouched();\n }\n\n ngOnDestroy(): void {\n this.stateChanges.complete();\n }\n\n ngOnChanges({ disabled }: SimpleChanges): void {\n if (!disabled) {\n this.stateChanges.next();\n }\n }\n\n onContainerClick() {\n if (!this.focused) {\n this.focus();\n }\n }\n\n focusChanged(isFocused: boolean) {\n if (isFocused === this.focused) {\n return;\n }\n\n if (isFocused && this.disabled) {\n const element = this._elementRef.nativeElement as HTMLInputElement;\n\n if (element.type === 'number') {\n element.type = 'text';\n element.setSelectionRange(0, 0);\n element.type = 'number';\n } else {\n element.setSelectionRange(0, 0);\n }\n }\n\n this.markAsUntouched();\n this.focused = isFocused;\n this.stateChanges.next();\n }\n\n focusOutChanged() {\n this.ngControl?.control?.markAsTouched();\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\n\nimport { CurrencyPipe } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MonkeyInputCurrencyDirective } from './monkey-input-currency.directive';\nimport { MonkeyInputDirective } from './monkey-input.directive';\n\n@NgModule({\n providers: [CurrencyPipe],\n declarations: [MonkeyInputDirective, MonkeyInputCurrencyDirective],\n exports: [MonkeyInputDirective, MonkeyInputCurrencyDirective]\n})\nexport class MonkeyInputModule {}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\n\nimport { hasModifierKey } from '@angular/cdk/keycodes';\nimport { OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentRef } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { MonkeyModalConfig } from './modal-config';\n\nexport class MonkeyModalRef {\n readonly id?: string;\n\n readonly componentInstance!: any;\n\n readonly componentRef!: ComponentRef<any> | null;\n\n readonly icon?: string;\n\n disableClose: boolean | undefined;\n\n closeOnNavigation: boolean | undefined;\n\n readonly closed: Observable<any> = new Subject<any>();\n\n readonly backdropClick: Observable<MouseEvent>;\n\n readonly keydownEvents: Observable<KeyboardEvent>;\n\n readonly outsidePointerEvents: Observable<MouseEvent>;\n\n constructor(\n readonly overlayRef: OverlayRef,\n readonly config: MonkeyModalConfig\n ) {\n this.id = config.id;\n this.icon = config.icon;\n this.disableClose = config.disableClose;\n this.closeOnNavigation = config.closeOnNavigation;\n this.backdropClick = overlayRef.backdropClick();\n this.keydownEvents = overlayRef.keydownEvents();\n this.outsidePointerEvents = overlayRef.outsidePointerEvents();\n\n this.keydownEvents.subscribe((event) => {\n if (event.key === 'Escape' && !this.disableClose && !hasModifierKey(event)) {\n event.preventDefault();\n this.close(undefined);\n }\n });\n\n this.backdropClick.subscribe(() => {\n if (!this.disableClose) {\n this.close(undefined);\n }\n });\n }\n\n close(result?: any): void {\n if (this.componentInstance) {\n const closedSubject = this.closed as Subject<any>;\n this.overlayRef.dispose();\n closedSubject.next(result);\n closedSubject.complete();\n // eslint-disable-next-line no-multi-assign\n (this as { componentInstance: any }).componentInstance = null!;\n }\n }\n\n afterClosed(): Observable<any> {\n return this.closed;\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\n\nimport { InjectionToken } from '@angular/core';\n\nexport const MECX_MODAL_DATA = new InjectionToken<any>('mecxModalData');\nexport const MECX_MODAL_DEFAULT_CONFIG = new InjectionToken<any>('mecxModalDefaultConfig');\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\nexport function reverseForEach<T>(items: T[] | readonly T[], callback: (current: T) => void) {\n let i = items.length;\n\n // eslint-disable-next-line no-plusplus\n while (i--) {\n callback(items[i]);\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\n\nimport { OverlayRef } from '@angular/cdk/overlay';\nimport {\n AfterViewInit,\n Component,\n ElementRef,\n inject,\n OnDestroy,\n Optional,\n ViewContainerRef,\n ViewEncapsulation\n} from '@angular/core';\nimport { NavigationStart, Router } from '@angular/router';\nimport { Subscription } from 'rxjs';\nimport { MonkeyModalRef } from './modal-ref';\n\n@Component({\n encapsulation: ViewEncapsulation.None,\n selector: 'monkey-modal',\n template: `\n <div class=\"mecx-modal-header\">\n <div class=\"mecx-modal-header-group\">\n <div class=\"mecx-modal-header-title\">\n @if (modalRef?.icon) {\n <div class=\"mecx-modal-header-icon\">\n <monkey-icon [icon]=\"modalRef?.icon + ''\" first></monkey-icon>\n </div>\n }\n <ng-content select=\"monkey-modal-title\"></ng-content>\n <ng-content select=\"[monkey-modal-title]\"></ng-content>\n </div>\n\n <ng-content select=\"monkey-modal-subtitle\"></ng-content>\n <ng-content select=\"[monkey-modal-subtitle]\"></ng-content>\n </div>\n @if (!modalRef?.disableClose) {\n <monkey-icon-button\n size=\"sm\"\n type=\"tertiary\"\n icon=\"close\"\n class=\"mecx-modal-close\"\n (click)=\"close()\"\n >\n x\n </monkey-icon-button>\n }\n </div>\n <ng-content select=\"monkey-modal-content\"></ng-content>\n <ng-content select=\"[monkey-modal-content]\"></ng-content>\n <ng-content select=\"monkey-modal-actions\"></ng-content>\n <ng-content select=\"[monkey-modal-actions]\"></ng-content>\n `,\n host: {\n class: 'mecx-modal',\n tabindex: '-1',\n '[attr.id]': 'modalRef?.id || null'\n },\n styleUrl: './modal.scss'\n})\nexport class MonkeyModalComponent implements AfterViewInit, OnDestroy {\n private _navigationSubscription: Subscription | null = null;\n\n private _router = inject(Router);\n\n constructor(\n private _elementRef: ElementRef,\n public viewContainerRef: ViewContainerRef,\n @Optional() public overlayRef?: OverlayRef,\n @Optional() public modalRef?: MonkeyModalRef\n ) {\n // not to do\n }\n\n ngAfterViewInit(): void {\n console.log(this.modalRef);\n if (this._elementRef) {\n this._elementRef.nativeElement.focus();\n }\n\n if (this.modalRef?.closeOnNavigation) {\n this._navigationSubscription = this._router.events.subscribe((event) => {\n if (event instanceof NavigationStart) {\n this.close();\n }\n });\n }\n }\n\n ngOnDestroy(): void {\n if (this._navigationSubscription) {\n this._navigationSubscription.unsubscribe();\n this._navigationSubscription = null;\n }\n }\n\n close() {\n this.overlayRef?.dispose();\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\n\nimport { Directive, inject } from '@angular/core';\nimport { IdGenerator } from '../../../../utils';\n\n@Directive({\n selector: 'monkey-modal-title, [monkey-modal-title]',\n host: {\n class: 'mecx-modal-title',\n '[attr.id]': 'id || null'\n }\n})\nexport class MonkeyModalTitleDirective {\n id = inject(IdGenerator).getId('monkey-modal-title-');\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\n\nimport { Directive, inject } from '@angular/core';\nimport { IdGenerator } from '../../../../utils';\n\n@Directive({\n selector: 'monkey-modal-subtitle, [monkey-modal-subtitle]',\n host: {\n class: 'mecx-modal-subtitle',\n '[attr.id]': 'id || null'\n }\n})\nexport class MonkeyModalSubtitleDirective {\n id = inject(IdGenerator).getId('monkey-modal-subtitle-');\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\n\nimport { Directive, inject } from '@angular/core';\nimport { IdGenerator } from '../../../../utils';\n\n@Directive({\n selector: 'monkey-modal-content, [monkey-modal-content]',\n host: {\n class: 'mecx-modal-content',\n '[attr.id]': 'id || null'\n }\n})\nexport class MonkeyModalContentDirective {\n id = inject(IdGenerator).getId('monkey-modal-content-');\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\n\nimport { Directive, inject, Input } from '@angular/core';\nimport { IdGenerator } from '../../../../utils';\n\n@Directive({\n selector: 'monkey-modal-actions, [monkey-modal-actions]',\n host: {\n '[class]': `'mecx-modal-actions align-'+mkAlign`,\n '[attr.id]': 'id || null'\n }\n})\nexport class MonkeyModalActionsDirective {\n @Input() mkAlign: 'start' | 'center' | 'end' = 'end';\n\n id = inject(IdGenerator).getId('monkey-modal-actions-');\n}\n","import { Component, Inject } from '@angular/core';\nimport { MonkeyModalDefaultConfig } from '../modal-config';\nimport { MonkeyModalRef } from '../modal-ref';\nimport { MECX_MODAL_DEFAULT_CONFIG } from '../utils';\n\n@Component({\n selector: 'monkey-modal-default',\n template: `\n <monkey-modal>\n <monkey-modal-title [innerHTML]=\"config.title\"></monkey-modal-title>\n <monkey-modal-subtitle [innerHTML]=\"config.subtitle\"></monkey-modal-subtitle>\n <monkey-modal-content [innerHTML]=\"config.content\"></monkey-modal-content>\n <monkey-modal-actions mkAlign=\"end\">\n <monkey-button type=\"tertiary\" (click)=\"onClose()\">{{ config.cancelLabel }}</monkey-button>\n <monkey-button type=\"primary\" (click)=\"onSubmit()\">{{ config.okLabel }}</monkey-button>\n </monkey-modal-actions>\n </monkey-modal>\n `\n})\nexport class MonkeyModalDefaultComponent {\n title = '';\n\n subtitle = '';\n\n content = '';\n\n cancelLabel = '';\n\n okLabel = '';\n\n constructor(\n @Inject(MECX_MODAL_DEFAULT_CONFIG) public config: MonkeyModalDefaultConfig,\n @Inject(MonkeyModalRef) private modalRef: MonkeyModalRef\n ) {\n // not to do\n }\n\n ngAfterViewInit(): void {\n // console.log(this.data);\n }\n\n onSubmit() {\n this.modalRef.close(true);\n }\n\n onClose() {\n this.modalRef.close();\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\n\nimport { PositionStrategy, ScrollStrategy } from '@angular/cdk/overlay';\nimport { StaticProvider } from '@angular/core';\n\nexport class MonkeyModalConfig {\n id?: string;\n\n icon?: string;\n\n panelClass?: string | string[] = '';\n\n hasBackdrop?: boolean = true;\n\n backdropClass?: string | string[] = 'mecx-modal-overlay';\n\n disableClose?: boolean = false;\n\n width?: string = '';\n\n height?: string = '';\n\n minWidth?: number | string;\n\n minHeight?: number | string;\n\n maxWidth?: number | string;\n\n maxHeight?: number | string;\n\n positionStrategy?: PositionStrategy;\n\n data?: any | null = null;\n\n scrollStrategy?: ScrollStrategy;\n\n closeOnNavigation?: boolean = true;\n\n providers?: StaticProvider[];\n}\n\nexport interface MonkeyModalDefaultConfig {\n title: string;\n subtitle?: string;\n content: string;\n cancelLabel: string;\n okLabel: string;\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\n\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MonkeyButtonComponent } from '../monkey-button';\nimport { MonkeyIconComponent } from '../monkey-icon';\nimport { MonkeyIconButtonComponent } from '../monkey-icon-button';\nimport { MonkeyModalDefaultComponent } from './components/default';\nimport { MonkeyModalActionsDirective } from './directives/actions';\nimport { MonkeyModalContentDirective } from './directives/content';\nimport { MonkeyModalSubtitleDirective } from './directives/subtitle';\nimport { MonkeyModalTitleDirective } from './directives/title';\nimport { MonkeyModalComponent } from './modal';\n\n@NgModule({\n imports: [CommonModule, MonkeyButtonComponent, MonkeyIconButtonComponent, MonkeyIconComponent],\n declarations: [\n MonkeyModalComponent,\n MonkeyModalDefaultComponent,\n MonkeyModalTitleDirective,\n MonkeyModalSubtitleDirective,\n MonkeyModalContentDirective,\n MonkeyModalActionsDirective\n ],\n exports: [\n MonkeyModalComponent,\n MonkeyModalTitleDirective,\n MonkeyModalSubtitleDirective,\n MonkeyModalContentDirective,\n MonkeyModalActionsDirective\n ]\n})\nexport class MonkeyModalModule {}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\n\nimport { Overlay, OverlayConfig, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal, ComponentType } from '@angular/cdk/portal';\nimport { inject, Injectable, Injector, StaticProvider } from '@angular/core';\nimport { IdGenerator } from '../../../utils';\nimport { MonkeyModalDefaultComponent } from './components/default';\nimport { MonkeyModalConfig, MonkeyModalDefaultConfig } from './modal-config';\nimport { MonkeyModalRef } from './modal-ref';\nimport { MECX_MODAL_DATA, MECX_MODAL_DEFAULT_CONFIG, reverseForEach } from './utils';\n\n@Injectable({ providedIn: 'root' })\nexport class MonkeyModalService {\n protected _idGenerator = inject(IdGenerator);\n\n protected _openDialogsAtThisLevel: MonkeyModalRef[] = [];\n\n protected _parentDialog = inject(MonkeyModalService, { optional: true, skipSelf: true });\n\n constructor(\n private overlay: Overlay,\n private injector: Injector\n ) {\n // not to do\n }\n\n protected get openDialogs(): readonly MonkeyModalRef[] {\n return this._parentDialog ? this._parentDialog.openDialogs : this._openDialogsAtThisLevel;\n }\n\n private getOverlayConfig(config: MonkeyModalConfig): OverlayConfig {\n const state = new OverlayConfig({\n positionStrategy:\n config?.positionStrategy ||\n this.overlay.position().global().centerHorizontally().centerVertically(),\n scrollStrategy: this.overlay.scrollStrategies.block(),\n panelClass: config.panelClass,\n hasBackdrop: config.hasBackdrop,\n minWidth: config.minWidth,\n minHeight: config.minHeight,\n maxWidth: config.maxWidth,\n maxHeight: config.maxHeight,\n width: config.width,\n height: config.height,\n disposeOnNavigation: config.closeOnNavigation\n });\n\n if (config.backdropClass) {\n state.backdropClass = config.backdropClass;\n }\n\n return state;\n }\n\n private createInjector(\n config: MonkeyModalConfig,\n dialogRef: MonkeyModalRef,\n overlayRef: OverlayRef,\n fallbackInjector: Injector | undefined\n ): Injector {\n const providers: StaticProvider[] = [\n { provide: OverlayRef, useValue: overlayRef },\n { provide: MonkeyModalRef, useValue: dialogRef },\n { provide: MECX_MODAL_DATA, useValue: config.data }\n ];\n\n if (config.providers) {\n providers.push(...config.providers);\n }\n\n return Injector.create({ parent: fallbackInjector, providers });\n }\n\n open<T>(component: ComponentType<T>, config: MonkeyModalConfig) {\n const defaultConfig = new MonkeyModalConfig();\n\n config = { ...defaultConfig, ...config };\n config.id = this._idGenerator.getId('monkey-modal-');\n\n const overlayConfig = this.getOverlayConfig(config);\n const overlayRef = this.overlay.create(overlayConfig);\n const modalRef = new MonkeyModalRef(overlayRef, config);\n\n const injector = this.createInjector(config, modalRef, overlayRef, this.injector);\n\n const componentPortal = new ComponentPortal(component, null, injector);\n const componentRef = overlayRef.attach(componentPortal);\n (modalRef as { componentInstance: T }).componentInstance = componentRef.instance;\n\n (this.openDialogs as MonkeyModalRef[]).push(modalRef);\n\n return modalRef;\n }\n\n openDefault(params: MonkeyModalDefaultConfig, config: MonkeyModalConfig) {\n const providers: StaticProvider[] = [{ provide: MECX_MODAL_DEFAULT_CONFIG, useValue: params }];\n\n config.providers = providers;\n config.icon = config.icon ? config.icon : 'help';\n\n return this.open(MonkeyModalDefaultComponent, config);\n }\n\n closeAll(): void {\n reverseForEach(this.openDialogs, (dialog) => {\n return dialog.close();\n });\n\n (this.openDialogs as MonkeyModalRef[]).splice(0, this.openDialogs.length);\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\n\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostListener,\n inject,\n Input,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { IdGenerator } from '../../../utils';\n\n@Component({\n selector: 'monkey-option',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `<div #content><ng-content /></div>`,\n styleUrls: ['./monkey-option.component.scss'],\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-testid': 'monkey-option',\n '[attr.id]': 'id',\n class: 'mecx-option',\n '[class.mecx-option-disabled]': 'disabled',\n '[class.mecx-option-selected]': 'selected',\n '[attr.tabindex]': 'disabled ? -1 : tabIndex'\n }\n})\nexport class MonkeyOptionComponent {\n private readonly idGenerator = inject(IdGenerator);\n\n @ViewChild('content', { static: true }) _content: ElementRef<HTMLElement> | undefined;\n\n @Input() value: any;\n\n @Input({ transform: booleanAttribute }) disabled = false;\n\n get displayContent(): string {\n return (this._content?.nativeElement.textContent || '').trim();\n }\n\n selected = false;\n\n tabIndex = 0;\n\n action!: Function;\n\n readonly id: string = this.idGenerator.getId('mecx-option-');\n\n @HostListener('click', ['$event'])\n onClick(event: MouseEvent): void {\n if (this.disabled) {\n event.stopPropagation();\n event.preventDefault();\n } else {\n this.action?.();\n }\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { CommonModule } from '@angular/common';\nimport { Component, HostBinding, inject, Input, input, ViewEncapsulation } from '@angular/core';\nimport { IdGenerator } from '../../../utils';\n\n@Component({\n encapsulation: ViewEncapsulation.None,\n imports: [CommonModule],\n selector: 'monkey-security-level',\n standalone: true,\n styleUrl: './monkey-security-level.component.scss',\n templateUrl: './monkey-security-level.component.html',\n host: {\n 'data-testid': 'monkey-security-level',\n '[attr.id]': 'id',\n '[id]': 'id'\n }\n})\nexport class MonkeySecurityLevelComponent {\n label = input<string>();\n\n score = input.required<number>();\n\n strengthLabel = input<string>();\n\n @HostBinding('class')\n public get class(): string {\n if (this.score() === 0) {\n return 'empty';\n }\n\n if (this.score() < 300) {\n return 'weak';\n }\n\n if (this.score() >= 300 && this.score() < 800) {\n return 'medium';\n }\n\n if (this.score() >= 800 && this.score() < 1000) {\n return 'strong';\n }\n\n return 'very-strong';\n }\n\n protected _uid = inject(IdGenerator).getId('monkey-security-level-');\n\n protected _id!: string;\n\n @Input()\n get id(): string {\n return this._id;\n }\n\n set id(value: string) {\n this._id = value || this._uid;\n }\n\n constructor() {\n // eslint-disable-next-line no-self-assign\n this.id = this.id;\n }\n}\n","<div class=\"body\">\n <div>\n <span data-testid=\"label\" *ngIf=\"label() as lb\">\n {{ lb }}\n </span>\n <span data-testid=\"str-label\" class=\"level-info\" *ngIf=\"strengthLabel() as strLabel\">\n {{ strLabel }}\n </span>\n </div>\n <div class=\"bar\"></div>\n</div>\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\n\nimport { animate, state, style, transition, trigger } from '@angular/animations';\nimport { ConnectedPosition, Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport {\n AfterContentInit,\n booleanAttribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n inject,\n Input,\n OnChanges,\n OnDestroy,\n Optional,\n Output,\n QueryList,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewContainerRef,\n ViewEncapsulation\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n FormsModule,\n NgControl,\n ReactiveFormsModule,\n Validators\n} from '@angular/forms';\nimport { Subject, takeUntil } from 'rxjs';\nimport { IdGenerator } from '../../../utils/id-generator';\nimport { MonkeyDestroyService } from '../../services/monkey-destroy.service';\nimport { MonkeyIconsService } from '../../services/monkey-icons.service';\nimport { MonkeyFormFieldComponent } from '../monkey-form-field/form-field';\nimport { MonkeyFormFieldControl } from '../monkey-form-field/form-field-control';\nimport { MonkeyOptionComponent } from '../monkey-option/monkey-option.component';\n\n@Component({\n selector: 'monkey-select',\n standalone: true,\n imports: [ReactiveFormsModule, FormsModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: 'monkey-select.component.html',\n styleUrls: ['./monkey-select.component.scss'],\n encapsulation: ViewEncapsulation.None,\n providers: [\n // eslint-disable-next-line no-use-before-define\n { provide: MonkeyFormFieldControl, useExisting: MonkeySelectComponent },\n MonkeyDestroyService\n ],\n animations: [\n trigger('animation', [\n transition(':enter', [\n style({\n opacity: 0,\n transform: 'scaleY(.9)'\n }),\n animate(\n '100ms ease-in-out',\n style({\n opacity: 1,\n transform: 'scaleY(1)'\n })\n )\n ]),\n state(\n 'closed',\n style({\n transform: 'scaleY(.9)',\n opacity: 0\n })\n ),\n transition('closed <=> open', animate('200ms ease-in-out'))\n ])\n ],\n host: {\n 'data-testid': 'monkey-select',\n class: 'mecx-select',\n '[class.mecx-select-disabled]': '_disabled',\n '[class.mecx-select-focused]': 'focused',\n '[attr.id]': 'id',\n '[attr.tabindex]': 'disabled ? -1 : tabIndex',\n '(focus)': '_onFocus()',\n '(blur)': '_onBlur()'\n }\n})\nexport class MonkeySelectComponent\n implements MonkeyFormFieldControl, ControlValueAccessor, AfterContentInit, OnDestroy, OnChanges\n{\n @ViewChild('overlayTemplate') overlayTemplate!: TemplateRef<any>;\n\n @ViewChild('overlay') overlayEl!: ElementRef;\n\n @ViewChild('trigger') trigger!: ElementRef;\n\n @ContentChildren(MonkeyOptionComponent) options!: QueryList<MonkeyOptionComponent>;\n\n @Input() tabIndex = 0;\n\n @Output() onChange = new EventEmitter();\n\n @Input({ required: true }) placeholder = '';\n\n @Input({ transform: booleanAttribute })\n loading = false;\n\n @Input({ transform: booleanAttribute })\n get disabled(): boolean {\n if (this.ngControl && this.ngControl.disabled !== null) {\n return this.ngControl.disabled;\n }\n return this._disabled;\n }\n\n set disabled(value: boolean) {\n this._disabled = value;\n\n if (this.focused) {\n this.focused = false;\n this.stateChanges.next();\n }\n }\n\n @Input({ transform: booleanAttribute })\n get required(): boolean {\n return this._required ?? this.ngControl?.control?.hasValidator(Validators.required) ?? false;\n }\n\n set required(value: boolean) {\n this._required = value;\n this.stateChanges.next();\n }\n\n private _required: boolean | undefined;\n\n @Input()\n set value(value: any) {\n if (this._value !== value) {\n this._value = value;\n this._onChange(value);\n }\n }\n\n get value(): any {\n return this._value;\n }\n\n _value = null;\n\n labelSelected = '';\n\n private overlayRef: OverlayRef | null = null;\n\n isOpen = false;\n\n private _destroyed = inject(MonkeyDestroyService);\n\n readonly iconArrowDown = inject(MonkeyIconsService).arrowDown;\n\n private readonly idGenerator = inject(IdGenerator);\n\n ngControl: NgControl | null = inject(NgControl, { self: true, optional: true })!;\n\n protected _elementRef =\n inject<ElementRef<HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement>>(ElementRef);\n\n readonly currency: boolean = false;\n\n focused: boolean = false;\n\n _disabled: boolean = false;\n\n readonly id: string = this.idGenerator.getId('monkey-select-');\n\n readonly percent: boolean = false;\n\n readonly stateChanges = new Subject<void>();\n\n readonly type: string = '';\n\n constructor(\n private overlay: Overlay,\n private changeDetectorRef: ChangeDetectorRef,\n private viewContainerRef: ViewContainerRef,\n @Optional() private formField: MonkeyFormFieldComponent\n ) {\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n private changeControl() {\n if (this.formField?.control) {\n this.formField.control.loading = this.loading;\n }\n }\n\n private changeSelected() {\n setTimeout(() => {\n if (this.options) {\n this.options.forEach((opt) => {\n opt.selected = opt.value === this.value;\n });\n this.updateSelectedLabel();\n }\n this.changeDetectorRef.markForCheck();\n });\n }\n\n private initializeOptions() {\n this.options.forEach((option) => {\n if (!option.action) {\n option.action = this.selectOption.bind(this, option);\n }\n });\n }\n\n ngAfterContentInit() {\n this.initializeOptions();\n this.options.changes.subscribe((resp) => {\n this.updateSelectedLabel();\n this.initializeOptions();\n this.changeSelected();\n });\n }\n\n ngOnDestroy() {\n if (this.overlayRef) {\n this.overlayRef.dispose();\n }\n }\n\n toggleDropdown(): void {\n if (!this.disabled) {\n if (this.isOpen) {\n this.closeDropdown();\n this._onTouched();\n } else {\n this.openDropdown();\n }\n }\n }\n\n private openDropdown(): void {\n if (this.options?.length) {\n this.formField.control.disableToBeDirty = true;\n this.isOpen = true;\n this.createOverlay();\n }\n }\n\n private closeDropdown() {\n this.changeDetectorRef.markForCheck();\n this.isOpen = false;\n this.focused = false;\n this.formField.control.disableToBeDirty = false;\n }\n\n private closeOverlay(): void {\n if (this.overlayRef) {\n this.overlayRef.dispose();\n this.overlayRef = null;\n }\n }\n\n onAnimationEnd = (event: any) => {\n if (event.toState === 'closed') {\n this.closeOverlay();\n }\n };\n\n private createOverlay(): void {\n if (this.overlayRef) {\n return;\n }\n\n const offset = 4;\n const positions: ConnectedPosition[] = [\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n offsetY: offset\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n offsetY: -offset\n }\n ];\n\n let anchor = this.trigger;\n let width = anchor.nativeElement.offsetWidth;\n\n if (this.formField?.elementRef) {\n const el = this.formField?.elementRef.nativeElement.querySelector('.mecx-form-field-body');\n anchor = el;\n width = el.offsetWidth;\n }\n\n const positionStrategy = this.overlay\n .position()\n .flexibleConnectedTo(anchor)\n .withPositions(positions)\n .withPush(true);\n\n this.overlayRef = this.overlay.create({\n positionStrategy,\n scrollStrategy: this.overlay.scrollStrategies.block(),\n width,\n hasBackdrop: true,\n backdropClass: 'no-class'\n });\n\n const portal = new TemplatePortal(this.overlayTemplate, this.viewContainerRef);\n\n this.overlayRef.attach(portal);\n\n this.overlayRef\n .backdropClick()\n .pipe(takeUntil(this._destroyed))\n .subscribe(() => {\n return this.closeDropdown();\n });\n }\n\n selectOption(option: MonkeyOptionComponent): void {\n if (!option.disabled && !this.disabled) {\n this.value = option.value;\n this.updateSelectedLabel();\n this.closeDropdown();\n this._onChange(this.value);\n this.onChange.emit(this.value);\n\n this.options.forEach((opt) => {\n opt.selected = opt.value === this.value;\n });\n }\n }\n\n private updateSelectedLabel(): void {\n const selectedOption = this.options.find((opt) => {\n return opt.value === this.value;\n });\n this.labelSelected = selectedOption ? selectedOption.displayContent : '';\n }\n\n writeValue(value: any): void {\n this.value = value;\n this.changeSelected();\n }\n\n onContainerClick(event: MouseEvent): void {\n if (this.disabled) return;\n\n this.openDropdown();\n this._elementRef.nativeElement.focus();\n }\n\n _onFocus() {\n if (!this.disabled) {\n this.focused = true;\n this._onTouched();\n this.stateChanges.next();\n }\n }\n\n _onBlur() {\n this.focused = false;\n this.stateChanges.next();\n }\n\n _onChange: any = () => {};\n\n _onTouched: any = () => {};\n\n registerOnChange(fn: any): void {\n this._onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this._onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled;\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n let hasChanges = false;\n // eslint-disable-next-line dot-notation\n const changesLoading = changes?.['loading'];\n if (changesLoading?.currentValue !== changesLoading?.previousValue) {\n hasChanges = true;\n this.changeControl();\n }\n\n if (hasChanges) {\n this.stateChanges.next();\n }\n }\n}\n","<div\n class=\"mecx-select-trigger\"\n [class.open]=\"isOpen\"\n (click)=\"toggleDropdown()\"\n role=\"combobox\"\n [attr.aria-expanded]=\"isOpen\"\n #trigger\n>\n <div class=\"mecx-select-value\" [class.has-value]=\"value\">\n <span>{{ labelSelected || placeholder }}</span>\n </div>\n\n @if (!loading) {\n <div class=\"mecx-select-icon\" [innerHTML]=\"iconArrowDown\"></div>\n }\n</div>\n\n<ng-template #overlayTemplate>\n <div\n class=\"mecx-select-overlay\"\n #overlay\n [@animation]=\"isOpen ? 'open' : 'closed'\"\n (@animation.done)=\"onAnimationEnd($event)\"\n >\n <ng-content />\n </div>\n</ng-template>\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { CommonModule } from '@angular/common';\nimport { Component, HostBinding, inject, Input, input } from '@angular/core';\nimport { IdGenerator } from '../../../utils';\nimport { MonkeySize } from '../../interfaces';\n\ntype Status = 'default' | 'success' | 'warning' | 'error' | 'question' | 'info';\n\n@Component({\n selector: 'monkey-status',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './monkey-status.component.html',\n styleUrl: './monkey-status.component.scss',\n host: {\n 'data-testid': 'monkey-status',\n '[attr.id]': 'id',\n '[id]': 'id'\n }\n})\nexport class MonkeyStatusComponent {\n type = input.required<Status>();\n\n size = input<MonkeySize>('md');\n\n label = input<string>();\n\n @HostBinding('class')\n public get class(): string {\n return `${this.type()} ${this.size()}`;\n }\n\n protected _uid = inject(IdGenerator).getId('monkey-status-');\n\n protected _id!: string;\n\n @Input()\n get id(): string {\n return this._id;\n }\n\n set id(value: string) {\n this._id = value || this._uid;\n }\n\n constructor() {\n // eslint-disable-next-line no-self-assign\n this.id = this.id;\n }\n}\n","<div class=\"status\"></div>\n<span *ngIf=\"label() as lb\">\n {{ lb }}\n</span>\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\n\nimport { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, inject, Input, Output, ViewEncapsulation } from '@angular/core';\nimport { IdGenerator } from '../../../../../utils';\nimport { MonkeyButtonComponent } from '../../../monkey-button';\n\n@Component({\n standalone: true,\n imports: [CommonModule, MonkeyButtonComponent],\n encapsulation: ViewEncapsulation.None,\n selector: 'monkey-pagination-action',\n exportAs: 'monkeyPaginationAction',\n templateUrl: './pagination-action.html',\n styleUrl: './pagination-action.scss',\n host: {\n 'data-testid': 'monkey-pagination-action',\n '[attr.id]': 'id',\n '[id]': 'id'\n }\n})\nexport class MonkeyPaginationActionComponent {\n @Input() disabled!: boolean;\n\n @Input() first!: boolean;\n\n @Input() last!: boolean;\n\n @Input({ required: true }) next: boolean = false;\n\n @Input({ required: true }) prev: boolean = false;\n\n @Output() onAction = new EventEmitter();\n\n protected _uid = inject(IdGenerator).getId('monkey-pagination-action-');\n\n protected _id!: string;\n\n @Input()\n get id(): string {\n return this._id;\n }\n\n set id(value: string) {\n this._id = value || this._uid;\n }\n\n constructor() {\n // eslint-disable-next-line no-self-assign\n this.id = this.id;\n }\n}\n","<monkey-button\n type=\"secondary\"\n size=\"sm\"\n (click)=\"onAction.next('prev')\"\n [disabled]=\"disabled || !prev\"\n>\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M11.670 8.630 C 9.335 10.964,8.550 11.772,8.523 11.870 C 8.501 11.947,8.501 12.053,8.523 12.130 C 8.574 12.316,14.682 18.423,14.870 18.477 C 15.231 18.581,15.581 18.231,15.477 17.869 C 15.450 17.774,14.687 16.987,12.570 14.870 L 9.700 12.000 12.570 9.130 C 14.687 7.013,15.450 6.226,15.477 6.131 C 15.528 5.951,15.464 5.747,15.316 5.623 C 15.219 5.541,15.151 5.520,14.988 5.520 L 14.781 5.520 11.670 8.630 \"\n stroke=\"none\"\n fill-rule=\"evenodd\"\n fill=\"black\"\n ></path>\n </svg>\n</monkey-button>\n\n<monkey-button\n type=\"secondary\"\n size=\"sm\"\n (click)=\"onAction.next('next')\"\n [disabled]=\"disabled || !next\"\n>\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M8.751 5.583 C 8.552 5.691,8.459 6.004,8.564 6.213 C 8.588 6.261,9.889 7.583,11.454 9.150 L 14.300 12.000 11.454 14.850 C 9.889 16.418,8.588 17.739,8.564 17.787 C 8.357 18.197,8.823 18.640,9.232 18.423 C 9.363 18.353,15.373 12.337,15.436 12.213 C 15.497 12.092,15.491 11.897,15.423 11.768 C 15.353 11.637,9.337 5.627,9.213 5.564 C 9.092 5.503,8.881 5.512,8.751 5.583 \"\n stroke=\"none\"\n fill-rule=\"evenodd\"\n fill=\"black\"\n ></path>\n </svg>\n</monkey-button>\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\n\nimport { Component, inject, Input, ViewEncapsulation } from '@angular/core';\nimport { IdGenerator } from '../../../../../utils';\n\n@Component({\n standalone: true,\n encapsulation: ViewEncapsulation.None,\n selector: 'monkey-pagination-label',\n exportAs: 'monkeyPaginationLabel',\n templateUrl: './pagination-label.html',\n styleUrl: './pagination-label.scss',\n host: {\n 'data-testid': 'monkey-pagination-label',\n '[attr.id]': 'id',\n '[id]': 'id'\n }\n})\nexport class MonkeyPaginationLabelComponent {\n protected _uid = inject(IdGenerator).getId('monkey-pagination-label-');\n\n protected _id!: string;\n\n @Input()\n get id(): string {\n return this._id;\n }\n\n set id(value: string) {\n this._id = value || this._uid;\n }\n\n constructor() {\n // eslint-disable-next-line no-self-assign\n this.id = this.id;\n }\n}\n","<ng-content></ng-content>\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\n\nimport { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, inject, Input, Output, ViewEncapsulation } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { IdGenerator } from '../../../../../utils';\nimport { MonkeyFormFieldModule } from '../../../monkey-form-field/module';\nimport { MonkeyOptionComponent } from '../../../monkey-option/monkey-option.component';\nimport { MonkeySelectComponent } from '../../../monkey-select/monkey-select.component';\n\n@Component({\n standalone: true,\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n MonkeySelectComponent,\n MonkeyOptionComponent,\n MonkeyFormFieldModule\n ],\n encapsulation: ViewEncapsulation.None,\n selector: 'monkey-pagination-size',\n exportAs: 'monkeyPaginationSize',\n templateUrl: './pagination-size.html',\n styleUrl: './pagination-size.scss',\n host: {\n 'data-testid': 'monkey-pagination-size',\n '[attr.id]': 'id',\n '[id]': 'id'\n }\n})\nexport class MonkeyPaginationSizeComponent {\n @Input({ required: true }) size!: 10 | 20 | 50 | 100;\n\n @Input() disabled!: boolean;\n\n @Output() onChange = new EventEmitter();\n\n protected _uid = inject(IdGenerator).getId('monkey-pagination-size-');\n\n protected _id!: string;\n\n sizes = [10, 20, 50, 100];\n\n @Input()\n get id(): string {\n return this._id;\n }\n\n set id(value: string) {\n this._id = value || this._uid;\n }\n\n constructor() {\n // eslint-disable-next-line no-self-assign\n this.id = this.id;\n }\n}\n","<ng-content></ng-content>\n<monkey-form-field hideClear>\n <monkey-select placeholder=\"''\" [ngModel]=\"size\" (onChange)=\"onChange.next($event)\">\n @for (item of sizes; track item) {\n <monkey-option [value]=\"item\">{{ item }}</monkey-option>\n }\n </monkey-select>\n</monkey-form-field>\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\n\nimport {\n AfterContentInit,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n OnChanges,\n Output,\n QueryList,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { MonkeyTableScrollConfig } from '../../interfaces';\nimport { MonkeyPaginationActionComponent } from './components/pagination-action/pagination-action';\nimport { MonkeyPaginationSizeComponent } from './components/pagination-size/pagination-size';\n\nconst defaultX = '880px';\n\n@Component({\n encapsulation: ViewEncapsulation.None,\n selector: 'monkey-table, table[monkey-table]',\n exportAs: 'monkeyTable',\n templateUrl: './table.html',\n styleUrl: './table.scss'\n})\nexport class MonkeyTableComponent implements AfterContentInit, OnChanges {\n @Input() scroll!: MonkeyTableScrollConfig;\n\n @HostBinding('class.disabled')\n @Input()\n loading!: boolean;\n\n @Input() loadingRef!: TemplateRef<any>;\n\n @Output() sortChange = new EventEmitter();\n\n @ViewChild('header', { static: true }) private _headerEl!: ElementRef;\n\n @ViewChild('tableHeader', { static: true }) private _tableHeaderEl!: ElementRef;\n\n @ViewChild('tableContent', { static: true }) private _tableContentEl!: ElementRef;\n\n @ViewChild('tableLoading', { static: true }) private _tableLoadingEl!: ElementRef;\n\n @ViewChild('tableScroll', { static: true }) private _tableScrollEl!: ElementRef;\n\n @ContentChildren(MonkeyPaginationActionComponent, { descendants: true })\n private _paginationActionChildren!: QueryList<MonkeyPaginationActionComponent>;\n\n @ContentChildren(MonkeyPaginationSizeComponent, { descendants: true })\n private _paginationSizeChildren!: QueryList<MonkeyPaginationSizeComponent>;\n\n private _sortOptions!: { [key: string]: string; sortable: string };\n\n private _loadingInitialized = false;\n\n public stateChanges = new EventEmitter();\n\n private updateScrollStyle() {\n if (!this._headerEl || !this._tableHeaderEl || !this._tableContentEl || !this._tableScrollEl) {\n throw Error('monkey-table must have header and content');\n }\n\n const x = this.scroll?.x || defaultX;\n const y = this.scroll?.y;\n const styleHeader = this._headerEl.nativeElement.style;\n const styleTableHeader = this._tableHeaderEl.nativeElement.style;\n const styleTableContent = this._tableContentEl.nativeElement.style;\n const styleTableScroll = this._tableScrollEl.nativeElement.style;\n\n if (x) {\n styleTableHeader.minWidth = `${x}`;\n styleTableContent.minWidth = `${x}`;\n\n this._tableScrollEl.nativeElement.addEventListener('scroll', () => {\n this._headerEl.nativeElement.scrollLeft = this._tableScrollEl.nativeElement.scrollLeft;\n });\n }\n if (y) {\n styleTableScroll.maxHeight = `${y}`;\n styleTableScroll.overflowX = 'auto';\n styleTableScroll.overflowY = 'scroll';\n }\n if (x && !y) {\n styleTableScroll.overflowX = 'scroll';\n styleHeader.overflowY = 'hidden';\n }\n }\n\n private initializeComponents() {\n const paginationAction = this._paginationActionChildren?.get(0);\n const paginationSize = this._paginationSizeChildren?.get(0);\n if (paginationAction) {\n paginationAction.disabled = this.loading;\n }\n if (paginationSize) {\n paginationSize.disabled = this.loading;\n }\n }\n\n private initializeLoadingComponent() {\n if (this._loadingInitialized || !this._tableLoadingEl) return;\n const styleTableLoading = this._tableLoadingEl?.nativeElement.style;\n const x = this.scroll?.x || defaultX;\n\n if (x) {\n styleTableLoading.minWidth = `${x}`;\n }\n this._loadingInitialized = true;\n }\n\n ngAfterContentInit(): void {\n this.updateScrollStyle();\n this.initializeComponents();\n }\n\n updateSortableOptions(name: string, sortable: string) {\n this._sortOptions = {\n ...this._sortOptions,\n [name]: sortable\n };\n\n if (!sortable) {\n delete this._sortOptions[name];\n }\n\n this.sortChange.emit(this._sortOptions);\n }\n\n ngOnChanges(changes: SimpleChanges) {\n let hasChanges = false;\n let loading = false;\n // eslint-disable-next-line dot-notation\n const changesLoading = changes?.['loading'];\n if (changesLoading?.currentValue !== changesLoading.previousValue) {\n this.initializeComponents();\n this.initializeLoadingComponent();\n loading = changesLoading.currentValue || false;\n hasChanges = true;\n }\n\n if (hasChanges) {\n this.stateChanges.emit({ loading });\n }\n }\n}\n","<div class=\"mecx-table-container\">\n <div class=\"mecx-table-wrapper\">\n <div class=\"mecx-table-header\" #header>\n <table #tableHeader>\n <ng-content select=\"thead\"></ng-content>\n </table>\n </div>\n <div class=\"mecx-inner-scroll\" #tableScroll>\n <table #tableContent>\n <ng-content select=\"tbody\"></ng-content>\n </table>\n\n @if (loadingRef && loading) {\n <table #tableLoading>\n <ng-container *ngTemplateOutlet=\"loadingRef\"></ng-container>\n </table>\n }\n </div>\n </div>\n <div class=\"mecx-table-footer\">\n <ng-content select=\"monkey-pagination-size\"></ng-content>\n <div class=\"mecx-table-actions\">\n <ng-content select=\"monkey-pagination-label\"></ng-content>\n <ng-content select=\"monkey-pagination-action\"></ng-content>\n </div>\n </div>\n</div>\n","/* eslint-disable dot-notation */\n/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\n\nimport {\n AfterViewInit,\n ChangeDetectorRef,\n ComponentRef,\n Directive,\n ElementRef,\n EventEmitter,\n HostBinding,\n Inject,\n inject,\n Injector,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n Renderer2,\n SimpleChanges,\n ViewContainerRef\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { MonkeyCheckboxComponent } from '../../monkey-checkbox';\nimport { MonkeyTableComponent } from '../table';\n\n@Directive({\n selector: '[mkChecked]',\n host: {\n class: 'mecx-column-checked'\n }\n})\nexport class MonkeyColumnChecked implements OnInit, AfterViewInit, OnChanges, OnDestroy {\n @Input({ alias: 'mkChecked', required: true }) checked!: boolean;\n\n @HostBinding('class.mecx-column-checked-disabled')\n @Input()\n disabled!: boolean;\n\n @Output() checkedChange = new EventEmitter();\n\n private _cdr = inject(ChangeDetectorRef);\n\n private _injector = inject(Injector);\n\n private _subscriptions: Subscription = new Subscription();\n\n checkboxRef!: ComponentRef<MonkeyCheckboxComponent>;\n\n constructor(\n private el: ElementRef,\n private renderer: Renderer2,\n private viewContainerRef: ViewContainerRef,\n @Optional() @Inject(MonkeyTableComponent) public table: MonkeyTableComponent\n ) {\n // not to do\n }\n\n private renderCheckbox() {\n this.checkboxRef = this.viewContainerRef.createComponent(MonkeyCheckboxComponent, {\n injector: this._injector\n });\n\n this.checkboxRef.instance.value = this.checked;\n this.checkboxRef.instance.setDisabledState(this.disabled);\n\n this.checkboxRef.instance.onChange.subscribe((isChecked: boolean) => {\n this.checkboxRef.instance.writeValue(isChecked);\n this.checkedChange.emit(isChecked);\n });\n\n this.renderer.appendChild(this.el.nativeElement, this.checkboxRef.location.nativeElement);\n }\n\n private handleDisableFromStateChanges(disabled: boolean) {\n if (disabled) {\n this.el.nativeElement.style.pointerEvents = 'none';\n } else {\n this.el.nativeElement.style.pointerEvents = 'all';\n }\n }\n\n ngOnInit(): void {\n this.el.nativeElement.style.pointerEvents = 'none';\n this._subscriptions.add(\n this.table?.stateChanges?.subscribe(() => {\n this.handleDisableFromStateChanges(this.table.loading);\n })\n );\n }\n\n ngAfterViewInit() {\n this.renderCheckbox();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n let hasChanges = false;\n let checked = false;\n let disabled = false;\n const changesChecked = changes?.['checked'];\n const changesDisabled = changes?.['disabled'];\n if (changesChecked?.currentValue !== changesChecked?.previousValue) {\n checked = changesChecked.currentValue || false;\n hasChanges = true;\n }\n if (changesDisabled?.currentValue !== changesDisabled?.previousValue) {\n disabled = changesDisabled.currentValue;\n hasChanges = true;\n }\n\n if (hasChanges) {\n this.initializeComponent(checked, disabled);\n }\n }\n\n initializeComponent(checked: boolean, disabled: boolean) {\n if (!this.checkboxRef || this.disabled) return;\n this.checkboxRef.instance.writeValue(checked);\n this.checkboxRef.instance.setDisabledState(disabled);\n this._cdr.detectChanges();\n }\n\n ngOnDestroy() {\n this._subscriptions.unsubscribe();\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\n\nimport {\n Directive,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Inject,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n Renderer2\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { MonkeyTableComponent } from '../table';\n\n@Directive({\n selector: '[mkExpansible]',\n host: {\n class: 'mecx-column-expansible'\n }\n})\nexport class MonkeyColumnExpansible implements OnInit, OnDestroy {\n @Output() expansionChange = new EventEmitter();\n\n private _opened = false;\n\n private _subscriptions: Subscription = new Subscription();\n\n private _enableAnimation = false;\n\n @HostBinding('class.mecx-column-expansible-disabled')\n disabled = false;\n\n constructor(\n private el: ElementRef,\n private renderer: Renderer2,\n @Optional() @Inject(MonkeyTableComponent) public table: MonkeyTableComponent\n ) {\n // not to do\n }\n\n private createSvgElement(opened: boolean) {\n const oldIcon = this.el.nativeElement.querySelector('#expansible-icon');\n if (oldIcon) this.renderer.removeChild(this.el.nativeElement, oldIcon);\n\n this.el.nativeElement.style.cursor = 'pointer';\n const svg = this.renderer.createElement('svg', 'svg');\n\n this.renderer.setAttribute(svg, 'id', 'expansible-icon');\n this.renderer.setAttribute(svg, 'width', '24');\n this.renderer.setAttribute(svg, 'height', '24');\n this.renderer.setAttribute(svg, 'viewBox', '0 0 24 24');\n this.renderer.setAttribute(svg, 'fill', 'none');\n this.renderer.setAttribute(svg, 'xmlns', 'http://www.w3.org/2000/svg');\n this.renderer.setStyle(svg, 'vertical-align', 'middle');\n this.renderer.setStyle(svg, 'cursor', 'pointer');\n\n if (opened) {\n const path1 = this.renderer.createElement('path', 'svg');\n const path2 = this.renderer.createElement('path', 'svg');\n\n this.renderer.setAttribute(path1, 'stroke', 'var(--mecx-color-gray-600)');\n this.renderer.setAttribute(path1, 'stroke-width', '1.5');\n this.renderer.setAttribute(path1, 'stroke-linecap', 'round');\n this.renderer.setAttribute(path1, 'stroke-linejoin', 'round');\n this.renderer.setAttribute(path1, 'd', 'M16 12H8');\n\n this.renderer.setAttribute(path2, 'fill-rule', 'evenodd');\n this.renderer.setAttribute(path2, 'clip-rule', 'evenodd');\n this.renderer.setAttribute(path2, 'stroke', 'var(--mecx-color-gray-400)');\n this.renderer.setAttribute(path2, 'stroke-width', '1.5');\n this.renderer.setAttribute(path2, 'stroke-linecap', 'round');\n this.renderer.setAttribute(path2, 'stroke-linejoin', 'round');\n this.renderer.setAttribute(\n path2,\n 'd',\n 'M12 21V21C7.029 21 3 16.971 3 12V12C3 7.029 7.029 3 12 3V3C16.971 3 21 7.029 21 12V12C21 16.971 16.971 21 12 21Z'\n );\n\n this.renderer.appendChild(svg, path1);\n this.renderer.appendChild(svg, path2);\n if (this._enableAnimation) {\n this.renderer.addClass(svg, 'rotate-animation-left');\n }\n } else {\n const path1 = this.renderer.createElement('path', 'svg');\n const path2 = this.renderer.createElement('path', 'svg');\n const path3 = this.renderer.createElement('path', 'svg');\n\n this.renderer.setAttribute(path1, 'stroke', 'var(--mecx-color-gray-600)');\n this.renderer.setAttribute(path1, 'stroke-width', '1.5');\n this.renderer.setAttribute(path1, 'stroke-linecap', 'round');\n this.renderer.setAttribute(path1, 'stroke-linejoin', 'round');\n this.renderer.setAttribute(path1, 'd', 'M12 8V16');\n\n this.renderer.setAttribute(path2, 'stroke', 'var(--mecx-color-gray-600)');\n this.renderer.setAttribute(path2, 'stroke-width', '1.5');\n this.renderer.setAttribute(path2, 'stroke-linecap', 'round');\n this.renderer.setAttribute(path2, 'stroke-linejoin', 'round');\n this.renderer.setAttribute(path2, 'd', 'M16 12H8');\n\n this.renderer.setAttribute(path3, 'fill-rule', 'evenodd');\n this.renderer.setAttribute(path3, 'clip-rule', 'evenodd');\n this.renderer.setAttribute(path3, 'stroke', 'var(--mecx-color-gray-400)');\n this.renderer.setAttribute(path3, 'stroke-width', '2');\n this.renderer.setAttribute(path3, 'stroke-linecap', 'round');\n this.renderer.setAttribute(path3, 'stroke-linejoin', 'round');\n this.renderer.setAttribute(\n path3,\n 'd',\n 'M12 21V21C7.029 21 3 16.971 3 12V12C3 7.029 7.029 3 12 3V3C16.971 3 21 7.029 21 12V12C21 16.971 16.971 21 12 21Z'\n );\n\n this.renderer.appendChild(svg, path1);\n this.renderer.appendChild(svg, path2);\n this.renderer.appendChild(svg, path3);\n if (this._enableAnimation) {\n this.renderer.addClass(svg, 'rotate-animation-right');\n }\n }\n\n this.renderer.appendChild(this.el.nativeElement, svg);\n }\n\n ngOnInit() {\n this.disabled = this.table.loading;\n this._subscriptions.add(\n this.table?.stateChanges?.subscribe(() => {\n this.disabled = this.table.loading;\n })\n );\n\n this.createSvgElement(this._opened);\n }\n\n @HostListener('click')\n onClick() {\n this._enableAnimation = true;\n if (this._opened) {\n this._opened = false;\n } else {\n this._opened = true;\n }\n\n this.createSvgElement(this._opened);\n this.expansionChange.emit(this._opened);\n }\n\n ngOnDestroy() {\n this._subscriptions.unsubscribe();\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\n\nimport {\n Directive,\n ElementRef,\n HostBinding,\n HostListener,\n Inject,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Renderer2\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { MonkeyTableComponent } from '../table';\n\n@Directive({\n selector: '[mkSortable]',\n host: {\n class: 'mecx-column-sortable'\n }\n})\nexport class MonkeyColumnSortable implements OnInit, OnDestroy {\n @Input({ alias: 'mkSortable', required: true }) name!: string;\n\n private _sortableDirection: 'asc' | 'desc' | null = null;\n\n private subscriptions: Subscription = new Subscription();\n\n @HostBinding('class.mecx-column-sortable-disabled')\n disabled = false;\n\n constructor(\n private el: ElementRef,\n private renderer: Renderer2,\n @Optional() @Inject(MonkeyTableComponent) public table: MonkeyTableComponent\n ) {\n // not to do\n }\n\n private createSvgElement(direction: 'asc' | 'desc' | null) {\n const dPath = direction === 'desc' ? 'M16 14L12 10L8 14' : 'M8.75 10L12.75 14L16.75 10';\n\n const oldIcon = this.el.nativeElement.querySelector('#sortable-icon');\n if (oldIcon) this.renderer.removeChild(this.el.nativeElement, oldIcon);\n\n this.el.nativeElement.style.cursor = 'pointer';\n const svg = this.renderer.createElement('svg', 'svg');\n\n this.renderer.setAttribute(svg, 'id', 'sortable-icon');\n this.renderer.setAttribute(svg, 'width', '25');\n this.renderer.setAttribute(svg, 'height', '24');\n this.renderer.setAttribute(svg, 'viewBox', '0 0 25 24');\n this.renderer.setAttribute(svg, 'fill', 'none');\n this.renderer.setAttribute(svg, 'xmlns', 'http://www.w3.org/2000/svg');\n this.renderer.setStyle(svg, 'margin-left', '1px');\n this.renderer.setStyle(svg, 'vertical-align', 'middle');\n this.renderer.setStyle(svg, 'cursor', 'pointer');\n\n const g = this.renderer.createElement('g', 'svg');\n const path = this.renderer.createElement('path', 'svg');\n\n this.renderer.setAttribute(path, 'stroke', '#000');\n this.renderer.setAttribute(path, 'stroke-width', '1.5');\n this.renderer.setAttribute(path, 'stroke-linecap', 'round');\n this.renderer.setAttribute(path, 'stroke-linejoin', 'round');\n this.renderer.setAttribute(path, 'd', dPath);\n\n this.renderer.appendChild(g, path);\n this.renderer.appendChild(svg, g);\n this.renderer.appendChild(this.el.nativeElement, svg);\n }\n\n ngOnInit() {\n this.disabled = this.table.loading;\n this.subscriptions.add(\n this.table?.stateChanges?.subscribe(() => {\n this.disabled = this.table.loading;\n })\n );\n\n this.createSvgElement(this._sortableDirection);\n }\n\n @HostListener('click')\n onClick() {\n if (this._sortableDirection === null) {\n this._sortableDirection = 'asc';\n } else if (this._sortableDirection === 'asc') {\n this._sortableDirection = 'desc';\n } else {\n this._sortableDirection = null;\n }\n\n this.createSvgElement(this._sortableDirection);\n this.table?.updateSortableOptions(this.name, this._sortableDirection || '');\n }\n\n ngOnDestroy() {\n this.subscriptions.unsubscribe();\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\n\nimport { Directive, Input } from '@angular/core';\n\n@Directive({\n selector: '[mkStick]',\n host: {\n class: 'mecx-column-stick',\n '[class]': '\"mecx-column-stick-\"+position'\n }\n})\nexport class MonkeyColumnStick {\n @Input({ alias: 'mkStick', required: true }) position: 'left' | 'right' = 'right';\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\n\nimport { NgModule } from '@angular/core';\nimport { MonkeyButtonComponent } from '../monkey-button/monkey-button.component';\nimport { MonkeyPaginationActionComponent } from './components/pagination-action/pagination-action';\nimport { MonkeyPaginationLabelComponent } from './components/pagination-label/pagination-label';\nimport { MonkeyPaginationSizeComponent } from './components/pagination-size/pagination-size';\nimport { MonkeyColumnChecked } from './directives/column-checked';\nimport { MonkeyColumnExpansible } from './directives/column-expansible';\nimport { MonkeyColumnSortable } from './directives/column-sortable';\nimport { MonkeyColumnStick } from './directives/column-stick';\nimport { MonkeyTableComponent } from './table';\n\n@NgModule({\n imports: [\n MonkeyButtonComponent,\n MonkeyPaginationSizeComponent,\n MonkeyPaginationLabelComponent,\n MonkeyPaginationActionComponent\n ],\n declarations: [\n MonkeyTableComponent,\n MonkeyColumnStick,\n MonkeyColumnChecked,\n MonkeyColumnSortable,\n MonkeyColumnExpansible\n ],\n exports: [\n MonkeyTableComponent,\n MonkeyColumnStick,\n MonkeyColumnChecked,\n MonkeyColumnSortable,\n MonkeyColumnExpansible\n ]\n})\nexport class MonkeyTableModule {}\n","import {\n booleanAttribute,\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n inject,\n Input,\n Output,\n ViewEncapsulation\n} from '@angular/core';\nimport { IdGenerator } from '../../../utils';\nimport { type ToastType } from '../../interfaces';\nimport { MonkeyButtonComponent } from '../monkey-button';\nimport { MonkeyIconComponent } from '../monkey-icon';\nimport { MonkeyIconButtonComponent } from '../monkey-icon-button';\n\n@Component({\n standalone: true,\n selector: 'monkey-toast',\n imports: [MonkeyButtonComponent, MonkeyIconComponent, MonkeyIconButtonComponent],\n templateUrl: './monkey-toast.component.html',\n styleUrl: './monkey-toast.component.scss',\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-testid': 'monkey-toast',\n '(animationend)': 'onAnimationEnd($event)',\n '[attr.id]': 'id',\n '[id]': 'id'\n }\n})\nexport class MonkeyToastComponent {\n @Input() message: string | undefined;\n\n @Input() icon: string | undefined = 'close-circle';\n\n @Input() type: ToastType = 'default';\n\n @Input({ transform: booleanAttribute }) isClosable: boolean = false;\n\n @Input() actionLabel: string | undefined;\n\n @Input() actionIcon: string | undefined;\n\n @Output() onActionClick = new EventEmitter<string>();\n\n @Output() onClose = new EventEmitter<string>();\n\n protected _uid = inject(IdGenerator).getId('monkey-toast-');\n\n protected _id!: string;\n\n @Input()\n get id(): string {\n return this._id;\n }\n\n set id(value: string) {\n this._id = value || this._uid;\n }\n\n @HostBinding('class')\n public get class(): string {\n return this.type;\n }\n\n @HostBinding('animation') animationState = 'hidden';\n\n constructor(private host: ElementRef<HTMLElement>) {\n // eslint-disable-next-line no-self-assign\n this.id = this.id;\n }\n\n close() {\n this.host.nativeElement.classList.add('closed');\n }\n\n onAnimationEnd(event: AnimationEvent) {\n if (event.animationName.includes('fade-out')) {\n this.onClose.emit(this.id);\n }\n }\n}\n","<div class=\"content\">\n @if (icon) {\n <monkey-icon [icon]=\"icon\" size=\"lg\"></monkey-icon>\n }\n <div class=\"message\">\n {{ message }}\n </div>\n</div>\n@if (actionLabel) {\n <div class=\"action\">\n <monkey-button class=\"btn-action\" type=\"tertiary\" size=\"sm\" (click)=\"onActionClick.emit(id)\">\n {{ actionLabel }}\n @if (actionIcon) {\n <monkey-icon [icon]=\"actionIcon\" first></monkey-icon>\n }\n </monkey-button>\n </div>\n}\n@if (isClosable) {\n <div class=\"divider\"></div>\n <div class=\"close\">\n <monkey-icon-button class=\"btn-close\" type=\"tertiary\" size=\"sm\" icon=\"close\" (click)=\"close()\">\n </monkey-icon-button>\n </div>\n}\n","import { CommonModule } from '@angular/common';\nimport {\n Component,\n EventEmitter,\n HostBinding,\n HostListener,\n inject,\n Input,\n Output\n} from '@angular/core';\nimport { IdGenerator } from '../../../utils';\n\n@Component({\n selector: 'monkey-toggle',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './monkey-toggle.component.html',\n styleUrl: './monkey-toggle.component.scss',\n host: {\n 'data-testid': 'monkey-toggle',\n '[attr.id]': 'id',\n '[id]': 'id'\n }\n})\nexport class MonkeyToggleComponent {\n @HostBinding('class.disabled') @Input() disabled = false;\n\n @HostBinding('class')\n @Input()\n size: 'lg' | 'md' | 'sm' = 'md';\n\n @Output() onChange = new EventEmitter<any>();\n\n @Input() set value(_: boolean | 'true' | 'false') {\n if (typeof _ === 'string') {\n this._checked = _ === 'true';\n } else {\n this._checked = _;\n }\n }\n\n _checked: boolean = false;\n\n protected _uid = inject(IdGenerator).getId('monkey-toggle-');\n\n protected _id!: string;\n\n @Input()\n get id(): string {\n return this._id;\n }\n\n set id(value: string) {\n this._id = value || this._uid;\n }\n\n constructor() {\n // eslint-disable-next-line no-self-assign\n this.id = this.id;\n }\n\n @HostListener('click', ['$event'])\n onClick(event: any) {\n event.preventDefault();\n event.stopPropagation();\n event.stopImmediatePropagation();\n\n if (!this.disabled) {\n this.onChange.next(!this._checked);\n this._checked = !this._checked;\n }\n }\n}\n","<input type=\"checkbox\" [checked]=\"_checked\" />\n<div class=\"slider\" [ngClass]=\"{ checked: _checked }\"></div>\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'monkey-toggle-line-button',\n standalone: true,\n templateUrl: './monkey-toggle-line-button.component.html',\n styleUrl: './monkey-toggle-line-button.component.scss',\n encapsulation: ViewEncapsulation.None\n})\nexport class MonkeyToggleLineButtonComponent {\n @Input() disabled: boolean = false;\n\n @Output() onChange = new EventEmitter();\n\n value: boolean | undefined;\n\n checked: boolean | undefined;\n\n name: string | undefined;\n}\n","<input\n type=\"radio\"\n [name]=\"name\"\n [id]=\"value + '-' + name\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n (change)=\"onChange.emit(this.value)\"\n/>\n<label [for]=\"value + '-' + name\">\n <ng-content></ng-content>\n</label>\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { CommonModule } from '@angular/common';\nimport {\n AfterContentInit,\n booleanAttribute,\n Component,\n ContentChildren,\n EventEmitter,\n HostBinding,\n inject,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n QueryList,\n ViewEncapsulation\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { IdGenerator } from '../../../utils';\nimport { MonkeyToggleLineButtonComponent } from './monkey-toggle-line-button';\n\n@Component({\n selector: 'monkey-toggle-line',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './monkey-toggle-line.component.html',\n styleUrl: './monkey-toggle-line.component.scss',\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-testid': 'monkey-toggle-line',\n '[attr.id]': 'id',\n '[id]': 'id'\n }\n})\nexport class MonkeyToggleLineComponent implements AfterContentInit, OnDestroy, OnChanges {\n @Input() value: boolean | undefined;\n\n @Input() name = Math.random().toString();\n\n @Input() size: 'sm' | 'md' | 'lg' = 'md';\n\n @Input({ transform: booleanAttribute }) disabled: boolean = false;\n\n @Output() onChange = new EventEmitter<any>();\n\n private subscriptions: Subscription = new Subscription();\n\n @ContentChildren(MonkeyToggleLineButtonComponent)\n radioButtons!: QueryList<MonkeyToggleLineButtonComponent>;\n\n @HostBinding('class')\n public get class(): string {\n return this.size;\n }\n\n protected _uid = inject(IdGenerator).getId('monkey-toggle-line-');\n\n protected _id!: string;\n\n @Input()\n get id(): string {\n return this._id;\n }\n\n set id(value: string) {\n this._id = value || this._uid;\n }\n\n constructor() {\n // eslint-disable-next-line no-self-assign\n this.id = this.id;\n }\n\n ngAfterContentInit() {\n this.radioButtons.forEach((_, i) => {\n _.value = !!i;\n _.checked = this.value === _.value;\n _.name = this.name;\n _.disabled = this.disabled;\n\n const subscription = _.onChange.subscribe((value: boolean) => {\n this.onChange.emit(value);\n });\n this.subscriptions.add(subscription);\n });\n }\n\n ngOnChanges(): void {\n if (!this.radioButtons) return;\n this.radioButtons.forEach((_, i) => {\n _.checked = this.value === _.value;\n _.disabled = this.disabled;\n });\n }\n\n ngOnDestroy() {\n this.subscriptions.unsubscribe();\n }\n}\n","<ng-content></ng-content>\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n Component,\n ElementRef,\n EventEmitter,\n inject,\n Input,\n Output,\n TemplateRef\n} from '@angular/core';\nimport { IdGenerator } from '../../../../utils';\n\n@Component({\n selector: 'monkey-tooltip',\n standalone: true,\n imports: [NgTemplateOutlet],\n templateUrl: './tooltip.component.html',\n styleUrl: './tooltip.component.scss',\n host: {\n 'data-testid': 'monkey-tooltip',\n '[style.left.px]': 'left',\n '[style.top.px]': 'top',\n '(animationend)': 'onAnimationEnd($event)',\n '[attr.id]': 'id',\n '[id]': 'id'\n }\n})\nexport class MonkeyTooltipComponent {\n @Input() text: string | undefined;\n\n @Input() template!: null | TemplateRef<HTMLElement>;\n\n @Input() left: number | undefined;\n\n @Input() top: number | undefined;\n\n @Output() afterClose = new EventEmitter();\n\n protected _uid = inject(IdGenerator).getId('monkey-tooltip-');\n\n protected _id!: string;\n\n @Input()\n get id(): string {\n return this._id;\n }\n\n set id(value: string) {\n this._id = value || this._uid;\n }\n\n constructor(private host: ElementRef<HTMLElement>) {\n // eslint-disable-next-line no-self-assign\n this.id = this.id;\n }\n\n close() {\n this.host.nativeElement.classList.add('closed');\n }\n\n onAnimationEnd(event: AnimationEvent) {\n if (event.animationName.includes('fade-out')) {\n this.afterClose.emit(true);\n }\n }\n}\n","@if(template) {\n<ng-container *ngTemplateOutlet=\"template\"> </ng-container>\n} @if(text) {\n{{ text }}\n}\n","import { DOCUMENT } from '@angular/common';\nimport {\n ApplicationRef,\n booleanAttribute,\n ComponentRef,\n Directive,\n ElementRef,\n Inject,\n Input,\n TemplateRef,\n ViewContainerRef\n} from '@angular/core';\nimport { MonkeyTooltipComponent } from './tooltip';\n\ntype Position = 'top' | 'bottom' | 'left' | 'right' | undefined;\n\n@Directive({\n selector: '[monkeyTooltip]',\n standalone: true,\n host: {\n '(mouseenter)': 'show()',\n '(mouseleave)': 'hide()',\n '(click)': 'hide()'\n }\n})\nexport class MonkeyTooltipDirective {\n @Input('monkeyTooltip') tooltipText: string | TemplateRef<HTMLElement> | undefined;\n\n @Input() tooltipPosition: Position;\n\n @Input({ transform: booleanAttribute }) enabled = true;\n\n private offset = 8;\n\n private tooltipComponent?: ComponentRef<MonkeyTooltipComponent>;\n\n private bounds!: {\n elBounds: DOMRect;\n tooltipBounds: DOMRect;\n scroll: number;\n viewport: { width: number; height: number };\n };\n\n constructor(\n private viewContainerRef: ViewContainerRef,\n private elementRef: ElementRef,\n private appRef: ApplicationRef,\n @Inject(DOCUMENT) private document: Document\n ) {\n // to do not\n }\n\n private setBounds() {\n this.tooltipComponent!.hostView.detectChanges();\n this.bounds = {\n elBounds: this.elementRef.nativeElement.getBoundingClientRect(),\n tooltipBounds: this.tooltipComponent?.location.nativeElement.getBoundingClientRect(),\n scroll: document.documentElement.scrollTop || document.body.scrollTop || 0,\n viewport: {\n width:\n window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth,\n height:\n window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight\n }\n };\n }\n\n private createTooltip() {\n this.tooltipComponent = this.viewContainerRef.createComponent(MonkeyTooltipComponent);\n this.document.body.appendChild(this.tooltipComponent.location.nativeElement);\n\n if (this.tooltipText instanceof TemplateRef) {\n this.tooltipComponent.instance.template = this.tooltipText;\n } else {\n this.tooltipComponent.instance.text = this.tooltipText;\n }\n this.setBounds();\n\n this.positionTooltip(this.tooltipPosition);\n }\n\n private positionTooltip(position: Position) {\n switch (position) {\n case 'left':\n this.positionLeft();\n if (this.isOutOfBounds()) {\n this.positionRight();\n if (this.isOutOfBounds()) {\n this.positionBottom();\n if (this.isOutOfBounds()) {\n this.positionTop();\n }\n }\n }\n break;\n case 'right':\n this.positionRight();\n if (this.isOutOfBounds()) {\n this.positionLeft();\n if (this.isOutOfBounds()) {\n this.positionBottom();\n if (this.isOutOfBounds()) {\n this.positionTop();\n }\n }\n }\n break;\n case 'top':\n this.positionTop();\n if (this.isOutOfBounds()) {\n this.positionBottom();\n if (this.isOutOfBounds()) {\n this.positionRight();\n if (this.isOutOfBounds()) {\n this.positionLeft();\n }\n }\n }\n break;\n case 'bottom':\n this.positionBottom();\n if (this.isOutOfBounds()) {\n this.positionTop();\n if (this.isOutOfBounds()) {\n this.positionRight();\n if (this.isOutOfBounds()) {\n this.positionLeft();\n }\n }\n }\n break;\n default:\n }\n }\n\n private isOutOfBounds() {\n const { tooltipBounds, viewport } = this.bounds;\n\n return (\n tooltipBounds.left < 0 ||\n tooltipBounds.top < 0 ||\n tooltipBounds.left + tooltipBounds.width > viewport.width ||\n tooltipBounds.top + tooltipBounds.height > viewport.height\n );\n }\n\n private positionLeft() {\n const { elBounds, tooltipBounds, scroll } = this.bounds;\n this.tooltipComponent!.instance.left = elBounds.left - tooltipBounds.width - this.offset;\n this.tooltipComponent!.instance.top = scroll + (elBounds.top + elBounds.height / 2);\n this.tooltipComponent!.location.nativeElement.style.transform = 'translateY(-50%)';\n this.setBounds();\n }\n\n private positionRight() {\n const { elBounds, scroll } = this.bounds;\n this.tooltipComponent!.instance.left = elBounds.right + this.offset;\n this.tooltipComponent!.instance.top = scroll + (elBounds.top + elBounds.height / 2);\n this.tooltipComponent!.location.nativeElement.style.transform = 'translateY(-50%)';\n this.setBounds();\n }\n\n private positionTop() {\n const { elBounds, tooltipBounds, scroll } = this.bounds;\n this.tooltipComponent!.instance.left = elBounds.left + elBounds.width / 2;\n this.tooltipComponent!.instance.top =\n scroll + elBounds.top - tooltipBounds.height - this.offset;\n this.tooltipComponent!.location.nativeElement.style.transform = 'translateX(-50%)';\n this.setBounds();\n }\n\n private positionBottom() {\n const { elBounds, scroll } = this.bounds;\n this.tooltipComponent!.instance.left = elBounds.left + elBounds.width / 2;\n this.tooltipComponent!.instance.top = scroll + elBounds.bottom + this.offset;\n this.tooltipComponent!.location.nativeElement.style.transform = 'translateX(-50%)';\n this.setBounds();\n }\n\n show(): void {\n if (!this.enabled || this.tooltipComponent) {\n return;\n }\n\n this.createTooltip();\n }\n\n hide(): void {\n if (!this.tooltipComponent) {\n return;\n }\n this.tooltipComponent.instance.close();\n const subscribe = this.tooltipComponent.instance.afterClose.subscribe(() => {\n if (!this.tooltipComponent) {\n return;\n }\n this.appRef.detachView(this.tooltipComponent!.hostView);\n this.tooltipComponent!.destroy();\n this.tooltipComponent = undefined;\n subscribe.unsubscribe();\n });\n }\n}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nexport * from './lib/components';\nexport * from './lib/directives';\nexport * from './lib/interfaces';\nexport * from './lib/services';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2.MonkeyModalRef","i3.MonkeyIconButtonComponent","i4.MonkeyIconComponent","i1.MonkeyButtonComponent","i2.MonkeyModalComponent","i3.MonkeyModalTitleDirective","i4.MonkeyModalSubtitleDirective","i5.MonkeyModalContentDirective","i6.MonkeyModalActionsDirective","i2.MonkeyFormFieldComponent"],"mappings":"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"}
|