monkey-style-guide-v2 0.0.113 → 0.0.114
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.
|
@@ -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/utils.ts","../../../projects/monkey-style-guide-v2/src/utils/icon.ts","../../../projects/monkey-style-guide-v2/src/lib/components/accordion/accordion.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/accordion/accordion.component.html","../../../projects/monkey-style-guide-v2/src/lib/components/accordion/index.ts","../../../projects/monkey-style-guide-v2/src/lib/components/action-bar/action-bar.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/action-bar/index.ts","../../../projects/monkey-style-guide-v2/src/lib/components/icon/icon.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/icon/index.ts","../../../projects/monkey-style-guide-v2/src/lib/components/alert/alert.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/alert/alert.component.html","../../../projects/monkey-style-guide-v2/src/lib/components/alert/index.ts","../../../projects/monkey-style-guide-v2/src/lib/directives/badge.ts","../../../projects/monkey-style-guide-v2/src/lib/directives/display.ts","../../../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/tokens/index.ts","../../../projects/monkey-style-guide-v2/src/lib/directives/popover.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/directives/index.ts","../../../projects/monkey-style-guide-v2/src/lib/services/address.service.ts","../../../projects/monkey-style-guide-v2/src/lib/services/dictionary.service.ts","../../../projects/monkey-style-guide-v2/src/lib/services/stepper.service.ts","../../../projects/monkey-style-guide-v2/src/lib/interfaces/toast.ts","../../../projects/monkey-style-guide-v2/src/lib/interfaces/index.ts","../../../projects/monkey-style-guide-v2/src/lib/services/toast.service.ts","../../../projects/monkey-style-guide-v2/src/lib/services/index.ts","../../../projects/monkey-style-guide-v2/src/lib/components/form-field/form-field-control.ts","../../../projects/monkey-style-guide-v2/src/lib/components/form-field/utils.ts","../../../projects/monkey-style-guide-v2/src/lib/components/form-field/form-field.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/form-field/form-field.component.html","../../../projects/monkey-style-guide-v2/src/lib/components/form-field/form-field.module.ts","../../../projects/monkey-style-guide-v2/src/lib/components/form-field/index.ts","../../../projects/monkey-style-guide-v2/src/lib/components/option/option.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/option/index.ts","../../../projects/monkey-style-guide-v2/src/lib/components/autocomplete/autocomplete.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/autocomplete/index.ts","../../../projects/monkey-style-guide-v2/src/lib/components/autocomplete-address/autocomplete-address.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/autocomplete-address/index.ts","../../../projects/monkey-style-guide-v2/src/lib/components/avatar/avatar.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/avatar/avatar.component.html","../../../projects/monkey-style-guide-v2/src/lib/components/avatar/index.ts","../../../projects/monkey-style-guide-v2/src/lib/components/badge/badge.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/badge/badge.component.html","../../../projects/monkey-style-guide-v2/src/lib/components/badge/index.ts","../../../projects/monkey-style-guide-v2/src/lib/components/breadcrumb/breadcrumb.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/breadcrumb/breadcrumb.component.html","../../../projects/monkey-style-guide-v2/src/lib/components/breadcrumb/index.ts","../../../projects/monkey-style-guide-v2/src/lib/components/button/button.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/button/button.component.html","../../../projects/monkey-style-guide-v2/src/lib/components/button/index.ts","../../../projects/monkey-style-guide-v2/src/lib/components/checkbox/checkbox.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/checkbox/checkbox.component.html","../../../projects/monkey-style-guide-v2/src/lib/components/checkbox/index.ts","../../../projects/monkey-style-guide-v2/src/lib/components/input/input-currency.directive.ts","../../../projects/monkey-style-guide-v2/src/lib/components/input/validators.ts","../../../projects/monkey-style-guide-v2/src/lib/components/input/input.directive.ts","../../../projects/monkey-style-guide-v2/src/lib/components/input/input.module.ts","../../../projects/monkey-style-guide-v2/src/lib/components/input/index.ts","../../../projects/monkey-style-guide-v2/src/lib/components/icon-button/icon-button.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/icon-button/icon-button.component.html","../../../projects/monkey-style-guide-v2/src/lib/components/icon-button/index.ts","../../../projects/monkey-style-guide-v2/src/lib/components/date-range/utils.ts","../../../projects/monkey-style-guide-v2/src/lib/components/date-range/month/month.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/date-range/month/month.component.html","../../../projects/monkey-style-guide-v2/src/lib/components/date-range/month/index.ts","../../../projects/monkey-style-guide-v2/src/lib/components/date-range/quick-actions/quick-actions.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/date-range/quick-actions/quick-actions.component.html","../../../projects/monkey-style-guide-v2/src/lib/components/date-range/quick-actions/index.ts","../../../projects/monkey-style-guide-v2/src/lib/components/date-range/date-range.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/date-range/date-range.component.html","../../../projects/monkey-style-guide-v2/src/lib/components/date-range/index.ts","../../../projects/monkey-style-guide-v2/src/lib/components/divider/divider.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/divider/index.ts","../../../projects/monkey-style-guide-v2/src/lib/components/download-button/download-button.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/download-button/index.ts","../../../projects/monkey-style-guide-v2/src/lib/components/filter-bar/filter-bar.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/filter-bar/index.ts","../../../projects/monkey-style-guide-v2/src/lib/components/input-code/input-code.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/input-code/input-code.component.html","../../../projects/monkey-style-guide-v2/src/lib/components/input-code/index.ts","../../../projects/monkey-style-guide-v2/src/lib/components/input-date-range/input-date-range.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/input-date-range/index.ts","../../../projects/monkey-style-guide-v2/src/lib/components/select/select.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/select/select.component.html","../../../projects/monkey-style-guide-v2/src/lib/components/select/index.ts","../../../projects/monkey-style-guide-v2/src/lib/components/input-phone/input-phone.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/input-phone/index.ts","../../../projects/monkey-style-guide-v2/src/lib/components/input-upload/input-upload.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/input-upload/index.ts","../../../projects/monkey-style-guide-v2/src/lib/components/modal/directives/actions.ts","../../../projects/monkey-style-guide-v2/src/lib/components/modal/directives/content.ts","../../../projects/monkey-style-guide-v2/src/lib/components/modal/directives/subtitle.ts","../../../projects/monkey-style-guide-v2/src/lib/components/modal/directives/title.ts","../../../projects/monkey-style-guide-v2/src/lib/components/modal/modal-config.ts","../../../projects/monkey-style-guide-v2/src/lib/components/modal/modal-ref.ts","../../../projects/monkey-style-guide-v2/src/lib/components/modal/modal.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/modal/utils.ts","../../../projects/monkey-style-guide-v2/src/lib/components/modal/components/default.ts","../../../projects/monkey-style-guide-v2/src/lib/components/modal/components/confirmation.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/modal/modal.module.ts","../../../projects/monkey-style-guide-v2/src/lib/components/modal/modal.service.ts","../../../projects/monkey-style-guide-v2/src/lib/components/modal/index.ts","../../../projects/monkey-style-guide-v2/src/lib/components/radio-button/radio-button.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/radio-button/radio-button.component.html","../../../projects/monkey-style-guide-v2/src/lib/components/radio-button/index.ts","../../../projects/monkey-style-guide-v2/src/lib/components/security-level/security-level.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/security-level/security-level.component.html","../../../projects/monkey-style-guide-v2/src/lib/components/security-level/index.ts","../../../projects/monkey-style-guide-v2/src/lib/components/status/status.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/status/status.component.html","../../../projects/monkey-style-guide-v2/src/lib/components/status/index.ts","../../../projects/monkey-style-guide-v2/src/lib/components/stepper/step/step.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/stepper/stepper.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/stepper/stepper.module.ts","../../../projects/monkey-style-guide-v2/src/lib/components/table/components/pagination-action/pagination-action.ts","../../../projects/monkey-style-guide-v2/src/lib/components/table/components/pagination-action/pagination-action.html","../../../projects/monkey-style-guide-v2/src/lib/components/table/components/pagination-label/pagination-label.ts","../../../projects/monkey-style-guide-v2/src/lib/components/table/components/pagination-label/pagination-label.html","../../../projects/monkey-style-guide-v2/src/lib/components/table/components/pagination-size/pagination-size.ts","../../../projects/monkey-style-guide-v2/src/lib/components/table/components/pagination-size/pagination-size.html","../../../projects/monkey-style-guide-v2/src/lib/components/table/table.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/table/table.component.html","../../../projects/monkey-style-guide-v2/src/lib/components/table/directives/column-checked.ts","../../../projects/monkey-style-guide-v2/src/lib/components/table/directives/column-expansible.ts","../../../projects/monkey-style-guide-v2/src/lib/components/table/directives/column-sortable.ts","../../../projects/monkey-style-guide-v2/src/lib/components/table/directives/column-stick.ts","../../../projects/monkey-style-guide-v2/src/lib/components/table/table.module.ts","../../../projects/monkey-style-guide-v2/src/lib/components/table/index.ts","../../../projects/monkey-style-guide-v2/src/lib/components/tabs/tab-link.directive.ts","../../../projects/monkey-style-guide-v2/src/lib/components/tabs/tab.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/tabs/tabs.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/tabs/tabs.module.ts","../../../projects/monkey-style-guide-v2/src/lib/components/toast/toast.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/toast/toast.component.html","../../../projects/monkey-style-guide-v2/src/lib/components/toast/index.ts","../../../projects/monkey-style-guide-v2/src/lib/components/toggle/toggle.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/toggle/toggle.component.html","../../../projects/monkey-style-guide-v2/src/lib/components/toggle/index.ts","../../../projects/monkey-style-guide-v2/src/lib/components/toggle-line/toggle-line-button/toggle-line-button.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/toggle-line/toggle-line-button/toggle-line-button.component.html","../../../projects/monkey-style-guide-v2/src/lib/components/toggle-line/toggle-line-button/index.ts","../../../projects/monkey-style-guide-v2/src/lib/components/toggle-line/toggle-line.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/toggle-line/toggle-line.component.html","../../../projects/monkey-style-guide-v2/src/lib/components/toggle-line/index.ts","../../../projects/monkey-style-guide-v2/src/lib/components/tooltip/tooltip/tooltip.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/tooltip/tooltip/tooltip.component.html","../../../projects/monkey-style-guide-v2/src/lib/components/tooltip/tooltip/index.ts","../../../projects/monkey-style-guide-v2/src/lib/components/tooltip/tooltip.directive.ts","../../../projects/monkey-style-guide-v2/src/lib/components/tooltip/index.ts","../../../projects/monkey-style-guide-v2/src/lib/components/user-profile-button/user-profile-button.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/user-profile-button/index.ts","../../../projects/monkey-style-guide-v2/src/lib/components/index.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 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\nexport const objHaveProperty = (obj: object, property: string): boolean => {\n return typeof obj === 'object' && obj !== null && property in obj;\n};\n\nexport function formatFileSize(bytes: number): string {\n if (bytes === 0) return '0 Bytes';\n\n const k = 1024;\n const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB'];\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n\n return `${parseFloat((bytes / k ** i).toFixed(2))} ${sizes[i]}`;\n}\n\nexport function getFileExtension(filename: string) {\n const name = filename.toLowerCase();\n const lastDotIndex = name.lastIndexOf('.');\n return lastDotIndex === -1 ? '' : name.slice(lastDotIndex + 1);\n}\n\nexport function sanitizeString(input: string): string {\n return input\n .replace(/<script.*?>.*?<\\/script>/gi, '')\n .replace(/on\\w+=\"[^\"]*\"/gi, '')\n .replace(/on\\w+='[^']*'/gi, '')\n .replace(/javascript:/gi, '')\n .replace(/<\\/?[^>]+>/gi, '')\n .trim();\n}\n\nexport function normalizeStringToSearch(text: string): string {\n return text\n .normalize('NFD')\n .replace(/[\\u0300-\\u036f]/g, '')\n .toLowerCase();\n}\n","/* eslint-disable max-len */\nimport { Component, input } from '@angular/core';\n\ntype IconName =\n | 'clear'\n | 'calendar'\n | 'arrowDown'\n | 'arrowRight'\n | 'check'\n | 'minus'\n | 'loading'\n | 'searchFail'\n | 'search'\n | 'addPlus'\n | 'googleMaps'\n | 'location'\n | 'edit';\n\n@Component({\n selector: 'util-icon',\n template: `\n @switch (name()) {\n @case ('clear') {\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" fill=\"none\">\n <path\n 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\"\n fill-rule=\"evenodd\"\n fill=\"var(--mecx-color-gray-900)\"\n />\n </svg>\n }\n\n @case ('calendar') {\n <svg width=\"24\" height=\"24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n 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\"\n fill-rule=\"evenodd\"\n fill=\"var(--mecx-color-gray-900)\"\n />\n </svg>\n }\n\n @case ('arrowDown') {\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M8 10L12 14L16 10\"\n stroke=\"var(--mecx-color-gray-900)\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n }\n\n @case ('arrowRight') {\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M19 12H5\"\n stroke=\"var(--mecx-color-gray-900)\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M14 17L19 12\"\n stroke=\"var(--mecx-color-gray-900)\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M14 7L19 12\"\n stroke=\"var(--mecx-color-gray-900)\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n }\n\n @case ('check') {\n <svg\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 12 12\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n 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 \"\n stroke=\"none\"\n fill-rule=\"evenodd\"\n fill=\"var(--mecx-color-theme-contrast-500\"\n ></path>\n </svg>\n }\n\n @case ('minus') {\n <svg width=\"8\" height=\"2\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n 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\"\n stroke=\"none\"\n fill-rule=\"evenodd\"\n fill=\"var(--mecx-color-theme-contrast-500\"\n ></path>\n </svg>\n }\n\n @case ('loading') {\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n <style>\n .spinner_ajPY {\n transform-origin: center;\n animation: spinner_AtaB 0.75s infinite linear;\n }\n @keyframes spinner_AtaB {\n 100% {\n transform: rotate(360deg);\n }\n }\n </style>\n <path\n 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\"\n opacity=\".25\"\n />\n <path\n 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\"\n class=\"spinner_ajPY\"\n />\n </svg>\n }\n\n @case ('searchFail') {\n <svg width=\"24\" height=\"24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n clip-rule=\"evenodd\"\n d=\"M18.934 11.467v0c0 4.124-3.343 7.467-7.467 7.467v0C7.343 18.934 4 15.591 4 11.467v0C4 7.343 7.343 4 11.467 4v0c4.124 0 7.467 3.343 7.467 7.467Z\"\n stroke=\"var(--mecx-color-gray-900)\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"m20 20-3.25-3.25M13.815 9.11914 9.119 13.8151M13.815 13.8151 9.119 9.11914\"\n stroke=\"var(--mecx-color-gray-900)\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n }\n\n @case ('search') {\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M6.920 1.521 C 4.175 1.717,1.944 3.809,1.558 6.548 C 1.500 6.965,1.500 7.722,1.558 8.120 C 1.945 10.745,3.921 12.721,6.547 13.108 C 6.735 13.136,7.016 13.152,7.333 13.152 C 7.885 13.152,8.225 13.111,8.738 12.985 C 9.504 12.797,10.253 12.439,10.859 11.972 C 10.972 11.885,11.074 11.813,11.085 11.813 C 11.097 11.813,11.677 12.384,12.373 13.082 C 13.070 13.779,13.691 14.381,13.754 14.418 C 14.182 14.673,14.673 14.182,14.418 13.754 C 14.381 13.691,13.779 13.070,13.082 12.373 C 12.384 11.677,11.813 11.097,11.813 11.085 C 11.813 11.074,11.885 10.972,11.972 10.859 C 12.439 10.253,12.797 9.504,12.985 8.738 C 13.111 8.225,13.152 7.885,13.152 7.333 C 13.152 6.782,13.111 6.441,12.985 5.928 C 12.471 3.841,10.826 2.196,8.738 1.681 C 8.150 1.536,7.501 1.479,6.920 1.521 M8.277 2.586 C 10.023 2.962,11.414 4.208,11.943 5.870 C 12.118 6.421,12.145 6.615,12.145 7.333 C 12.145 8.052,12.118 8.246,11.943 8.797 C 11.473 10.272,10.272 11.473,8.797 11.943 C 8.246 12.118,8.052 12.145,7.333 12.145 C 6.615 12.145,6.421 12.118,5.870 11.943 C 4.394 11.473,3.193 10.272,2.724 8.797 C 2.547 8.242,2.521 8.052,2.522 7.333 C 2.522 6.615,2.549 6.419,2.724 5.870 C 3.244 4.236,4.636 2.971,6.320 2.602 C 6.679 2.523,6.858 2.510,7.440 2.520 C 7.898 2.527,8.066 2.540,8.277 2.586 \"\n stroke=\"none\"\n fill-rule=\"evenodd\"\n fill=\"var(--mecx-color-gray-900)\"\n ></path>\n </svg>\n }\n\n @case ('addPlus') {\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M11.340 2.281 C 7.073 2.553,3.439 5.660,2.499 9.840 C 2.187 11.227,2.187 12.773,2.499 14.160 C 3.317 17.797,6.203 20.683,9.840 21.501 C 11.233 21.814,12.770 21.813,14.176 21.498 C 17.465 20.759,20.161 18.310,21.244 15.076 C 21.795 13.432,21.887 11.556,21.501 9.840 C 20.683 6.203,17.797 3.317,14.160 2.499 C 13.288 2.303,12.254 2.223,11.340 2.281 M12.961 3.802 C 14.493 3.991,16.079 4.659,17.184 5.581 C 18.160 6.395,18.877 7.297,19.404 8.374 C 19.982 9.557,20.240 10.675,20.240 12.000 C 20.240 12.966,20.126 13.689,19.834 14.584 C 18.848 17.602,16.153 19.804,12.961 20.198 C 12.525 20.252,11.475 20.252,11.039 20.198 C 9.507 20.009,7.921 19.341,6.816 18.419 C 5.826 17.593,5.138 16.728,4.598 15.626 C 4.019 14.448,3.760 13.327,3.760 12.000 C 3.760 10.673,4.019 9.552,4.598 8.374 C 5.044 7.464,5.564 6.750,6.285 6.058 C 7.568 4.824,9.221 4.032,10.984 3.806 C 11.379 3.755,12.563 3.753,12.961 3.802 M11.815 7.277 C 11.638 7.321,11.461 7.456,11.353 7.631 L 11.260 7.780 11.248 9.508 L 11.236 11.236 9.505 11.248 L 7.774 11.260 7.612 11.367 C 7.372 11.526,7.267 11.721,7.267 12.007 C 7.267 12.203,7.286 12.270,7.383 12.408 C 7.447 12.499,7.572 12.610,7.660 12.656 C 7.814 12.737,7.886 12.740,9.528 12.752 L 11.236 12.764 11.248 14.492 L 11.260 16.220 11.353 16.369 C 11.710 16.943,12.576 16.812,12.716 16.162 C 12.744 16.031,12.760 15.374,12.760 14.358 L 12.760 12.760 14.358 12.760 C 15.374 12.760,16.031 12.744,16.162 12.716 C 16.904 12.557,16.924 11.471,16.189 11.286 C 16.064 11.255,15.479 11.240,14.382 11.240 L 12.760 11.240 12.759 9.630 C 12.758 8.669,12.741 7.948,12.717 7.841 C 12.623 7.432,12.215 7.177,11.815 7.277 \"\n stroke=\"none\"\n fill-rule=\"evenodd\"\n fill=\"var(--mecx-color-gray-900)\"\n ></path>\n </svg>\n }\n\n @case ('googleMaps') {\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n width=\"120\"\n height=\"22\"\n viewBox=\"0 0 264.6 50.86\"\n >\n <path\n d=\"M9.835 37.67a51.38 51.38 0 0 1 4.007 5.91c1.022 1.938 1.448 3.252 2.195 5.587.458 1.29.872 1.675 1.762 1.675.97 0 1.41-.655 1.75-1.668.706-2.205 1.26-3.888 2.134-5.478 1.715-3.07 3.846-5.798 5.94-8.42.567-.742 4.232-5.065 5.882-8.476 0 0 2.028-3.747 2.028-8.98 0-4.895-2-8.29-2-8.29l-5.758 1.542-3.497 9.21-.865 1.27-.173.23-.23.288-.404.46-.577.577-3.114 2.537-7.785 4.495z\"\n fill=\"#34a853\"\n />\n <path\n d=\"M1.8 26.17c1.9 4.34 5.564 8.155 8.043 11.503L23.01 22.076s-1.855 2.426-5.22 2.426c-3.748 0-6.776-2.993-6.776-6.767 0-2.588 1.557-4.366 1.557-4.366l-8.938 2.395z\"\n fill=\"#fbbc04\"\n />\n <path\n d=\"M23.157.792c4.373 1.41 8.116 4.37 10.38 8.735l-10.523 12.54s1.557-1.81 1.557-4.382c0-3.862-3.252-6.747-6.765-6.747-3.322 0-5.23 2.422-5.23 2.422v-7.9z\"\n fill=\"#4285f4\"\n />\n <path\n d=\"M4.212 6.333C6.824 3.208 11.42-.01 17.756-.01c3.074 0 5.39.807 5.39.807l-10.58 12.57H5.07z\"\n fill=\"#1a73e8\"\n />\n <path\n d=\"M1.8 26.17S.052 22.747.052 17.788c0-4.687 1.822-8.784 4.16-11.455l8.36 7.035z\"\n fill=\"#ea4335\"\n />\n <g fill=\"#767676\">\n <path\n d=\"M181.68 41.235V14.508h3.434l9.295 16.275h.15l9.295-16.275h3.434v26.727h-3.434V25.37l.15-4.48h-.15l-8.36 14.67h-2.015l-8.36-14.67h-.15l.15 4.48v15.864zm35.648.56c-1.94 0-3.565-.56-4.87-1.68s-1.96-2.6-1.96-4.442c0-2 .77-3.552 2.314-4.685s3.446-1.698 5.7-1.698c2.016 0 3.67.373 4.965 1.12v-.523c0-1.344-.46-2.42-1.38-3.228s-2.053-1.213-3.398-1.213c-.995 0-1.896.236-2.705.7s-1.362 1.12-1.66 1.94l-3.136-1.343c.423-1.095 1.257-2.1 2.5-3.042s2.886-1.4 4.927-1.4c2.34 0 4.28.685 5.823 2.053s2.314 3.298 2.314 5.787V41.2h-3.284v-2.54h-.15c-1.37 2.1-3.373 3.135-6 3.135zm.56-3.135c1.418 0 2.705-.53 3.863-1.586s1.736-2.3 1.736-3.75c-.97-.797-2.426-1.195-4.367-1.195-1.668 0-2.925.36-3.77 1.083s-1.27 1.568-1.27 2.538c0 .896.386 1.605 1.157 2.128s1.655.784 2.65.784zm21.742 3.135c-1.393 0-2.644-.3-3.75-.896s-1.935-1.344-2.48-2.24h-.15l.15 2.538v8.063h-3.434V22.908h3.286v2.538h.15c.547-.896 1.374-1.642 2.48-2.24s2.358-.896 3.75-.896c2.364 0 4.405.933 6.122 2.8s2.576 4.18 2.576 6.943-.86 5.077-2.576 6.943-3.758 2.8-6.122 2.8zm-.56-3.135c1.593 0 2.96-.604 4.106-1.8s1.717-2.806 1.717-4.797-.572-3.6-1.717-4.797-2.514-1.8-4.106-1.8c-1.617 0-2.993.597-4.125 1.792s-1.697 2.8-1.697 4.815.566 3.62 1.697 4.815 2.507 1.792 4.125 1.792zm18.385 3.135c-2.04 0-3.726-.498-5.058-1.493s-2.3-2.24-2.93-3.733l3.06-1.27c.97 2.3 2.626 3.433 4.966 3.433 1.07 0 1.948-.236 2.632-.7s1.027-1.095 1.027-1.866c0-1.194-.834-2.004-2.502-2.426l-3.695-.895c-1.17-.298-2.277-.865-3.322-1.698s-1.568-1.96-1.568-3.377c0-1.617.715-2.93 2.146-3.94s3.13-1.512 5.095-1.512c1.617 0 3.06.367 4.33 1.1a6.21 6.21 0 0 1 2.725 3.154l-2.987 1.232c-.67-1.617-2.065-2.426-4.18-2.426-1.02 0-1.88.212-2.575.634s-1.045.996-1.045 1.718c0 1.045.8 1.754 2.426 2.128l3.62.858c1.717.398 2.986 1.083 3.807 2.053s1.232 2.066 1.232 3.286c0 1.642-.672 3-2.016 4.106s-3.073 1.642-5.2 1.642zM79.916 25.3H65.83v4.18h10c-.493 5.86-5.37 8.36-9.973 8.36a10.98 10.98 0 0 1-11.029-11.128c0-6.327 4.898-11.2 11.04-11.2 4.74 0 7.53 3.022 7.53 3.022l2.927-3.03s-3.757-4.18-10.607-4.18c-8.723 0-15.473 7.363-15.473 15.316 0 7.792 6.35 15.393 15.696 15.393 8.22 0 14.24-5.632 14.24-13.96 0-1.756-.255-2.772-.255-2.772z\"\n />\n <use xlink:href=\"#B\" />\n <use xlink:href=\"#B\" x=\"21.476\" />\n <path\n d=\"M134.102 22.327c-5.305 0-9.476 4.647-9.476 9.862 0 5.94 4.834 9.88 9.383 9.88 2.813 0 4.308-1.117 5.414-2.4v1.946c0 3.405-2.068 5.445-5.2 5.445-3.015 0-4.526-2.242-5.052-3.514l-3.793 1.586c1.346 2.845 4.054 5.813 8.878 5.813 5.275 0 9.296-3.322 9.296-10.3v-17.73h-4.138v1.672c-1.272-1.37-3.012-2.265-5.32-2.265zm.384 3.87c2.602 0 5.272 2.22 5.272 6.013 0 3.856-2.665 5.98-5.33 5.98-2.828 0-5.46-2.296-5.46-5.944 0-3.8 2.732-6.05 5.518-6.05zm27.534-3.87c-5.004 0-9.207 3.98-9.207 9.857 0 6.216 4.683 9.904 9.687 9.904 4.176 0 6.74-2.285 8.268-4.332l-3.4-2.27c-.885 1.374-2.366 2.718-4.835 2.718-2.775 0-4.05-1.52-4.84-2.992l13.234-5.5-.687-1.6c-1.28-3.152-4.262-5.784-8.2-5.784zm.172 3.796c1.804 0 3.1.96 3.653 2.108l-8.838 3.694c-.38-2.86 2.328-5.802 5.186-5.802zm-15.7 15.377h4.346V12.4h-4.346z\"\n />\n </g>\n <defs>\n <path\n id=\"B\"\n d=\"M91.48 22.327c-5.78 0-9.922 4.518-9.922 9.788 0 5.348 4.018 9.95 10 9.95 5.407 0 9.836-4.132 9.836-9.836 0-6.537-5.153-9.904-9.904-9.904zm.057 3.877c2.843 0 5.536 2.298 5.536 6 0 3.624-2.683 5.99-5.55 5.99-3.15 0-5.635-2.523-5.635-6.017 0-3.418 2.455-5.972 5.648-5.972z\"\n />\n </defs>\n </svg>\n }\n\n @case ('location') {\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"var(--mecx-color-gray-900)\">\n <path\n d=\"M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7m0 9.5c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5 2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5\"\n ></path>\n </svg>\n }\n\n @case ('edit') {\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M5.293 15.619L15.619 5.29299C16.009 4.90299 16.642 4.90299 17.032 5.29299L18.708 6.96899C19.098 7.35899 19.098 7.99199 18.708 8.38199L8.381 18.707C8.194 18.895 7.94 19 7.675 19H5V16.325C5 16.06 5.105 15.806 5.293 15.619Z\"\n stroke=\"var(--mecx-color-gray-900)\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M13.75 7.16016L16.84 10.2502\"\n stroke=\"var(--mecx-color-gray-900)\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n }\n }\n `,\n styles: [\n `\n :host {\n display: flex;\n background-color: transparent;\n }\n `\n ]\n})\nexport class UtilIconComponent {\n name = input.required<IconName>();\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 { IdGenerator, UtilIconComponent } from '../../../utils';\n\n@Component({\n selector: 'monkey-accordion',\n imports: [CommonModule, UtilIconComponent],\n templateUrl: './accordion.component.html',\n styleUrl: './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 })\n ),\n transition(':enter', [\n animate(\n '300ms ease-in-out',\n style({\n height: '*'\n })\n )\n ]),\n transition(':leave', [\n animate(\n '300ms ease-in-out',\n style({\n height: '0px'\n })\n )\n ])\n ])\n ]\n})\nexport class MonkeyAccordionComponent {\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 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 <util-icon class=\"icon\" name=\"arrowDown\" [class.rotated]=\"open\" />\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 ************************* */\nexport * from './accordion.component';\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, input, ViewEncapsulation } from '@angular/core';\n\n@Component({\n encapsulation: ViewEncapsulation.None,\n imports: [CommonModule],\n selector: 'monkey-action-bar',\n styleUrl: './action-bar.component.scss',\n template: `@if (open()) {\n <span style=\"font-size: 13px\" data-testid=\"label\" *ngIf=\"label() as lb\">\n {{ lb }}\n </span>\n\n <ng-content></ng-content>\n }`,\n host: {\n 'data-testid': 'monkey-action-bar',\n '[attr.id]': 'id',\n '[id]': 'id',\n '[class.open]': 'open()'\n }\n})\nexport class MonkeyActionBarComponent {\n @HostBinding('class')\n get classes() {\n return this.position();\n }\n\n label = input<string>();\n\n position = input<string>();\n\n open = input<boolean>();\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 './action-bar.component';\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 imports: [CommonModule],\n template: '',\n styleUrl: './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: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'xxl' = 'lg';\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 ************************* */\nexport * from './icon.component';\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 '../icon';\n\n@Component({\n encapsulation: ViewEncapsulation.None,\n imports: [MonkeyIconComponent],\n selector: 'monkey-alert',\n styleUrl: './alert.component.scss',\n templateUrl: './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\n href=\"javascript:void(0)\"\n class=\"mecx-link fw-medium fs-base\"\n (click)=\"onButtonClicked.emit()\"\n >\n <span>{{ buttonLabel() }}</span>\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 ************************* */\nexport * from './alert.component';\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, ElementRef, Input, OnChanges, Renderer2 } from '@angular/core';\n\n@Directive({\n selector: '[monkeyBadge]',\n standalone: false\n})\nexport class MonkeyBadgeDirective implements OnChanges {\n @Input() badgePosition: 'left' | 'right' = 'right';\n\n @Input() badgeSize: 'sm' | 'md' | 'lg' = 'md';\n\n @Input() badgeHidden = false;\n\n @Input() monkeyBadge: string = '';\n\n @Input() badgeBackground: string | null = null;\n\n @Input() badgeColor: string | null = null;\n\n private badgeEl: HTMLElement | null = null;\n\n constructor(\n private el: ElementRef,\n private renderer: Renderer2\n ) {\n // not to do\n }\n\n ngOnChanges(): void {\n const { badgeHidden, badgeEl, renderer, el } = this;\n\n if (badgeHidden) {\n this.removeBadge();\n return;\n }\n\n if (!badgeEl) {\n this.badgeEl = renderer.createElement('span');\n renderer.setStyle(el.nativeElement, 'position', 'relative');\n renderer.appendChild(el.nativeElement, this.badgeEl);\n }\n\n this.updateBadge();\n }\n\n private updateBadge(): void {\n const {\n badgeEl,\n renderer,\n monkeyBadge,\n badgeSize,\n badgeColor,\n badgePosition,\n badgeBackground\n } = this;\n\n renderer.addClass(badgeEl, 'monkey-badge');\n renderer.addClass(badgeEl, `monkey-badge-${badgeSize}`);\n renderer.addClass(badgeEl, `monkey-badge-${badgePosition}`);\n renderer.setAttribute(\n badgeEl,\n 'style',\n `\n --badge-background: ${badgeBackground ?? 'unset'};\n --badge-color: ${badgeColor ?? 'unset'}\n `\n );\n\n this.renderer.setProperty(this.badgeEl, 'textContent', monkeyBadge);\n }\n\n private removeBadge(): void {\n const { renderer, el, badgeEl } = this;\n if (!el.nativeElement || !badgeEl) return;\n renderer.removeChild(el.nativeElement, badgeEl);\n renderer.removeStyle(el.nativeElement, 'position');\n this.badgeEl = null;\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';\n\n@Directive({\n selector: 'monkey-display',\n standalone: false\n})\nexport class MonkeyDisplayDirective {}\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 standalone: false\n})\nexport class MonkeyErrorDirective {}\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 standalone: false\n})\nexport class MonkeyHelperDirective {}\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 standalone: false\n})\nexport class MonkeyInfoDirective {}\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 standalone: false\n})\nexport class MonkeyLabelDirective {}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { inject, InjectionToken } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\nexport const MECX_I18N_WRAPPER = new InjectionToken<BehaviorSubject<string>>('');\nexport const MECX_POPOVER_OPTIONS = new InjectionToken('MECX_POPOVER_OPTIONS');\nexport const MECX_COUNTRY_ISO_CODE = new InjectionToken<string>('BR');\nexport const MECX_GOOGLE_API_KEY = new InjectionToken<string>('');\n\nexport function injectTokenWithWarning<T>(token: InjectionToken<T>, name?: string): T | null {\n const value = inject(token, { optional: true });\n if (!value) {\n // eslint-disable-next-line no-console\n console.error(`MECXInjectors -> Token \"${name || token.toString()}\" is not provided.`);\n }\n return value;\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 ConnectedPosition,\n FlexibleConnectedPositionStrategy,\n FlexibleConnectedPositionStrategyOrigin,\n Overlay,\n OverlayPositionBuilder,\n OverlayRef\n} from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { CommonModule, NgTemplateOutlet } from '@angular/common';\nimport {\n AfterViewInit,\n booleanAttribute,\n Component,\n ComponentRef,\n DestroyRef,\n Directive,\n ElementRef,\n EventEmitter,\n Inject,\n inject,\n Input,\n NgZone,\n OnDestroy,\n Optional,\n Output,\n TemplateRef,\n ViewContainerRef\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { NavigationStart, Router } from '@angular/router';\nimport { filter } from 'rxjs';\nimport { UtilIconComponent } from '../../utils';\nimport { MonkeyPopoverDir, MonkeyPopoverOptions } from '../interfaces';\nimport { MECX_POPOVER_OPTIONS } from '../tokens';\n\n@Component({\n selector: 'monkey-popover-content',\n imports: [CommonModule, NgTemplateOutlet, UtilIconComponent],\n template: `\n <div class=\"mecx-popover-container\">\n @if (!hideHeader) {\n <div class=\"mecx-popover-header\">\n @if (title) {\n <div>\n <ng-container *ngIf=\"isTemplate(title); else stringTitle\">\n <ng-container *ngTemplateOutlet=\"title\"></ng-container>\n </ng-container>\n <ng-template #stringTitle>\n {{ title }}\n </ng-template>\n </div>\n }\n\n @if (!hideClose) {\n <util-icon class=\"mecx-popover-close\" name=\"clear\" (click)=\"onClose.next(null)\" />\n }\n </div>\n }\n\n <div class=\"mecx-popover-content\" [class.add-radius]=\"hideHeader\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n\n @if (!hideActions) {\n <div class=\"mecx-popover-actions\" *ngIf=\"actions\">\n <ng-container *ngIf=\"isTemplate(actions); else stringActions\">\n <ng-container *ngTemplateOutlet=\"actions\"></ng-container>\n </ng-container>\n <ng-template #stringActions>\n <span>{{ actions }}</span>\n </ng-template>\n </div>\n }\n </div>\n `\n})\nexport class MonkeyPopoverContentComponent implements AfterViewInit {\n @Input() title?: string | TemplateRef<any>;\n\n @Input() content!: TemplateRef<any>;\n\n @Input() actions?: string | TemplateRef<any>;\n\n @Output() onClose = new EventEmitter();\n\n @Input({ transform: booleanAttribute })\n hideHeader!: boolean;\n\n @Input({ transform: booleanAttribute })\n hideClose!: boolean;\n\n @Input({ transform: booleanAttribute })\n hideActions!: boolean;\n\n @Input()\n enableAutofocus = false;\n\n constructor(private host: ElementRef<HTMLElement>) {\n // not to do\n }\n\n ngAfterViewInit(): void {\n if (this.enableAutofocus) {\n setTimeout(() => {\n const focusable = this.host.nativeElement.querySelector<HTMLElement>(\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])'\n );\n focusable?.focus();\n });\n }\n }\n\n isTemplate(value: unknown): value is TemplateRef<any> {\n return value instanceof TemplateRef;\n }\n}\n\ntype HorizontalPosition = 'start' | 'center' | 'end';\ntype VerticalPosition = 'top' | 'center' | 'bottom';\n\n@Directive({\n selector: '[monkeyPopover]',\n standalone: false\n})\nexport class MonkeyPopoverDirective implements OnDestroy {\n private readonly _tpl = inject(TemplateRef);\n\n private readonly _vcr = inject(ViewContainerRef);\n\n private readonly _el = inject(ElementRef);\n\n private readonly _zone = inject(NgZone);\n\n private readonly _overlay = inject(Overlay);\n\n private readonly _overlayPositionBuilder = inject(OverlayPositionBuilder);\n\n private readonly _router = inject(Router);\n\n private readonly _destroyRef = inject(DestroyRef);\n\n @Optional() @Inject(MECX_POPOVER_OPTIONS) private readonly _options?: MonkeyPopoverOptions;\n\n private _overlayRef?: OverlayRef;\n\n private _componentRef?: ComponentRef<MonkeyPopoverContentComponent>;\n\n private _positionStrategy?: FlexibleConnectedPositionStrategy;\n\n private _resizeObserver?: ResizeObserver;\n\n private _show = false;\n\n @Input('monkeyPopover')\n set popover(show: boolean) {\n if (this._show === show) {\n return;\n }\n this._show = show;\n if (show) {\n setTimeout(() => {\n this.createPopover();\n }, 0);\n } else {\n this.disposePopover();\n }\n }\n\n get popover(): boolean {\n return this._show;\n }\n\n @Input('monkeyPopoverClosed')\n closed?: (e?: MouseEvent) => void;\n\n private _target?: HTMLElement;\n\n @Input('monkeyPopoverTarget')\n set target(value: any | undefined) {\n this._target = value;\n }\n\n get target(): HTMLElement | undefined {\n return this._target;\n }\n\n @Input('monkeyPopoverMinwidth')\n minwidth = false;\n\n @Input('monkeyPopoverBackdrop')\n backdrop = true;\n\n @Input('monkeyPopoverWatch')\n watch = false;\n\n @Input('monkeyPopoverDir')\n dir: MonkeyPopoverDir = 'ltr';\n\n @Input('monkeyPopoverContextmenu')\n contextmenu = false;\n\n @Input('monkeyPopoverHeight')\n height?: number | string;\n\n @Input('monkeyPopoverTitle') title?: string | TemplateRef<unknown>;\n\n @Input('monkeyPopoverActions') actions?: string | TemplateRef<unknown>;\n\n @Input({ alias: 'monkeyPopoverHideClose', transform: booleanAttribute })\n hideClose!: boolean;\n\n @Input({ alias: 'monkeyPopoverHideHeader', transform: booleanAttribute })\n hideHeader!: boolean;\n\n @Input({ alias: 'monkeyPopoverHideActions', transform: booleanAttribute })\n hideActions!: boolean;\n\n @Input({ alias: 'monkeyPopoverEnableAutofocus', transform: booleanAttribute })\n enableAutofocus!: boolean;\n\n constructor() {\n this._router.events\n .pipe(\n filter((event): event is NavigationStart => {\n return event instanceof NavigationStart;\n }),\n takeUntilDestroyed(this._destroyRef)\n )\n .subscribe(() => {\n this.closePopover();\n });\n }\n\n ngOnDestroy(): void {\n this.disposePopover();\n this._resizeObserver?.disconnect();\n }\n\n private closePopover(event?: MouseEvent): void {\n if (this._show) {\n this._show = false;\n this.disposePopover();\n this._zone.run(() => {\n this.closed?.(event);\n });\n }\n }\n\n private disposePopover(): void {\n this._resizeObserver?.disconnect();\n this._resizeObserver = undefined;\n\n if (this._overlayRef) {\n this._overlayRef.dispose();\n this._overlayRef = undefined;\n }\n }\n\n private getPositions(dir: MonkeyPopoverDir): ConnectedPosition[] {\n const oppositeVertical: Record<VerticalPosition, VerticalPosition> = {\n top: 'bottom',\n bottom: 'top',\n center: 'center'\n };\n\n const oppositeHorizontal: Record<HorizontalPosition, HorizontalPosition> = {\n start: 'end',\n end: 'start',\n center: 'center'\n };\n\n const centerY = (pos: VerticalPosition): ConnectedPosition => {\n return {\n originX: 'center',\n originY: pos,\n overlayX: 'center',\n overlayY: oppositeVertical[pos]\n };\n };\n\n const centerX = (pos: HorizontalPosition): ConnectedPosition => {\n return {\n originX: oppositeHorizontal[pos],\n originY: 'center',\n overlayX: pos,\n overlayY: 'center'\n };\n };\n\n const ltr = (axis: VerticalPosition): ConnectedPosition => {\n return {\n originX: 'start',\n originY: axis,\n overlayX: 'start',\n overlayY: oppositeVertical[axis]\n };\n };\n\n const rtl = (axis: VerticalPosition): ConnectedPosition => {\n return {\n originX: 'end',\n originY: axis,\n overlayX: 'end',\n overlayY: oppositeVertical[axis]\n };\n };\n\n const side = (axisX: HorizontalPosition, axisY: VerticalPosition): ConnectedPosition => {\n return {\n originX: axisX,\n originY: axisY,\n overlayX: oppositeHorizontal[axisX],\n overlayY: axisY\n };\n };\n\n const cmp = dir ?? this._options?.dir ?? this.dir;\n\n switch (cmp) {\n case 'ct':\n return [centerY('top'), centerY('bottom'), centerX('start'), centerX('end')];\n case 'cr':\n return [centerX('end'), centerX('start'), centerY('top'), centerY('bottom')];\n case 'cc':\n return [centerX('center')];\n case 'ltr':\n return [ltr('bottom'), ltr('top')];\n case 'rtl':\n return [rtl('bottom'), rtl('top')];\n case 'tltr':\n return [ltr('top'), ltr('bottom')];\n case 'trtl':\n return [rtl('top'), rtl('bottom')];\n case 'rt':\n return [side('end', 'top'), side('end', 'bottom'), ltr('top')];\n case 'rb':\n return [side('end', 'bottom'), side('end', 'top'), ltr('bottom'), rtl('bottom')];\n case 'lt':\n return [side('start', 'top'), side('start', 'bottom'), rtl('top')];\n case 'lb':\n return [side('start', 'bottom'), side('start', 'top'), rtl('bottom')];\n default:\n return [];\n }\n }\n\n private createPopover(\n origin?: FlexibleConnectedPositionStrategyOrigin,\n options?: MonkeyPopoverOptions\n ): void {\n if (!this.target) {\n // eslint-disable-next-line no-console\n console.error('MonkeyPopoverDirective -> target element is not defined.');\n return;\n }\n\n const originEl =\n this.target instanceof HTMLElement ? this.target : (this.target as any).element;\n\n this._positionStrategy = this._overlayPositionBuilder\n .flexibleConnectedTo(origin ?? originEl)\n .withPush(true)\n .withGrowAfterOpen(true)\n .withPositions(this.getPositions(options?.dir!));\n\n this._overlayRef = this._overlay.create({\n positionStrategy: this._positionStrategy,\n disposeOnNavigation: true,\n direction: 'ltr',\n hasBackdrop: this.backdrop,\n scrollStrategy: this._overlay.scrollStrategies.reposition(),\n backdropClass: 'cdk-overlay-transparent-backdrop',\n width: this._options?.minwidth || this.minwidth ? this.target.offsetWidth - 2 : undefined,\n maxHeight: '95%',\n height: this.height\n });\n\n this._overlayRef\n .backdropClick()\n .pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe((event) => {\n this.closePopover(event);\n });\n\n const portal = new ComponentPortal(MonkeyPopoverContentComponent, this._vcr);\n\n this._componentRef = this._overlayRef.attach(portal);\n this._componentRef.instance.content = this._tpl;\n this._componentRef.instance.title = this.title as any;\n this._componentRef.instance.actions = this.actions as any;\n this._componentRef.instance.hideClose = this.hideClose;\n this._componentRef.instance.hideHeader = this.hideHeader;\n this._componentRef.instance.hideActions = this.hideActions;\n this._componentRef.instance.enableAutofocus = this.enableAutofocus;\n\n if (!this.hideClose || !this.hideHeader) {\n this._componentRef.instance.onClose\n .pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe(() => {\n this.closePopover();\n });\n }\n\n if (this.watch && 'ResizeObserver' in window) {\n this._resizeObserver = new ResizeObserver(() => {\n this._overlayRef?.updatePosition();\n });\n\n this._resizeObserver.observe(this._componentRef.location.nativeElement);\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 { Directive } from '@angular/core';\n\n@Directive({\n selector: 'monkey-prefix',\n standalone: false\n})\nexport class MonkeyPrefixDirective {}\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 standalone: false\n})\nexport class MonkeySuffixDirective {\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 { MonkeyBadgeDirective } from './badge';\nimport { MonkeyDisplayDirective } from './display';\nimport { MonkeyErrorDirective } from './error';\nimport { MonkeyHelperDirective } from './helper';\nimport { MonkeyInfoDirective } from './info';\nimport { MonkeyLabelDirective } from './label';\nimport { MonkeyPopoverContentComponent, MonkeyPopoverDirective } from './popover';\nimport { MonkeyPrefixDirective } from './prefix';\nimport { MonkeySuffixDirective } from './suffix';\n\n@NgModule({\n imports: [MonkeyPopoverContentComponent],\n declarations: [\n MonkeyErrorDirective,\n MonkeyHelperDirective,\n MonkeyInfoDirective,\n MonkeyLabelDirective,\n MonkeyDisplayDirective,\n MonkeyPrefixDirective,\n MonkeySuffixDirective,\n MonkeyBadgeDirective,\n MonkeyPopoverDirective\n ],\n exports: [\n MonkeyErrorDirective,\n MonkeyHelperDirective,\n MonkeyInfoDirective,\n MonkeyLabelDirective,\n MonkeyDisplayDirective,\n MonkeyPrefixDirective,\n MonkeySuffixDirective,\n MonkeyBadgeDirective,\n MonkeyPopoverDirective\n ]\n})\nexport class MonkeyDirectivesModule {}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nexport * from './badge';\nexport * from './display';\nexport * from './error';\nexport * from './helper';\nexport * from './info';\nexport * from './label';\nexport * from './module';\nexport * from './popover';\nexport * from './prefix';\nexport * from './suffix';\n","import { HttpClient } from '@angular/common/http';\nimport { inject, Injectable } from '@angular/core';\nimport { map, of } from 'rxjs';\nimport {\n GoogleApiPlaces,\n GoogleApiPlacesAddressComponents,\n GoogleApiPlacesResponse\n} from '../interfaces';\nimport { injectTokenWithWarning, MECX_GOOGLE_API_KEY } from '../tokens';\n\n@Injectable({ providedIn: 'root' })\nexport class MonkeyEcxAddressService {\n private readonly _http = inject(HttpClient);\n\n private readonly _googleApiKey = injectTokenWithWarning(\n MECX_GOOGLE_API_KEY,\n 'MECX_GOOGLE_API_KEY'\n )!;\n\n private mappingData(places: GoogleApiPlaces[]) {\n const getComponent = (\n components: GoogleApiPlacesAddressComponents[],\n type:\n | 'street_number'\n | 'route'\n | 'sublocality_level_1'\n | 'sublocality'\n | 'political'\n | 'administrative_area_level_1'\n | 'administrative_area_level_2'\n | 'country'\n | 'postal_code',\n field = 'longText'\n ) => {\n const result = components.find((c) => {\n return c.types.includes(type);\n });\n\n return result?.[field] || '';\n };\n\n return places.map((_: GoogleApiPlaces) => {\n const { addressComponents } = _;\n\n const address = getComponent(addressComponents!, 'route');\n const addressNumber = getComponent(addressComponents!, 'street_number');\n const neighborhood = getComponent(addressComponents!, 'sublocality_level_1');\n const city = getComponent(addressComponents!, 'administrative_area_level_2');\n const state = getComponent(addressComponents!, 'administrative_area_level_1');\n const country = getComponent(addressComponents!, 'country', 'shortText');\n const zipCode = getComponent(addressComponents!, 'postal_code');\n\n return {\n formattedAddress: _.formattedAddress,\n adrFormatAddress: _.adrFormatAddress,\n address,\n addressNumber,\n neighborhood,\n city,\n state,\n country,\n zipCode\n };\n });\n }\n\n get(textQuery: string) {\n if (!textQuery) {\n return of([]);\n }\n\n return this._http\n .post<any>(\n 'https://places.googleapis.com/v1/places:searchText',\n {\n textQuery\n },\n {\n headers: {\n 'X-Goog-Api-Key': this._googleApiKey,\n 'X-Goog-FieldMask':\n 'places.formattedAddress,places.addressComponents,places.displayName,places.adrFormatAddress'\n }\n }\n )\n .pipe(\n map((resp: GoogleApiPlacesResponse) => {\n return this.mappingData(resp.places);\n })\n );\n }\n}\n","/* eslint-disable no-console */\n/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { DestroyRef, inject, Injectable, LOCALE_ID } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { BehaviorSubject, map } from 'rxjs';\nimport { MECX_I18N_WRAPPER } from '../tokens';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyDictionaryService {\n private _localeId = inject(LOCALE_ID);\n\n private _destroyRef = inject(DestroyRef);\n\n private _data$ = new BehaviorSubject<Record<string, Record<string, any>>>({\n 'pt-BR': {\n EDIT: 'Editar',\n 'NO-RESULTS': 'Nenhum resultado encontrado',\n 'NO-DATA': 'Sem dados',\n 'NO-DATA-ADDRESS': 'Nenhum endereço encontrado com esta pesquisa',\n LOADING: 'Carregando...',\n 'DATE-RANGE': {\n 'START-DATE': 'Data de início',\n 'END-DATE': 'Data de término',\n INVALID: 'Intervalo de datas inválido',\n ACTIONS: {\n CANCEL: 'Cancelar',\n APPLY: 'Aplicar'\n },\n 'WEEK-DAYS': ['Dom.', '2ª', '3ª', '4ª', '5ª', '6ª', 'Sab.'],\n MONTHS: {\n 0: 'Janeiro',\n 1: 'Fevereiro',\n 2: 'Março',\n 3: 'Abril',\n 4: 'Maio',\n 5: 'Junho',\n 6: 'Julho',\n 7: 'Agosto',\n 8: 'Setembro',\n 9: 'Outubro',\n 10: 'Novembro',\n 11: 'Dezembro'\n },\n 'QUICK-ACTIONS': {\n CUSTOM: 'Customizado',\n LAST_30_DAYS: 'Ultimos 30 dias',\n LAST_60_DAYS: 'Ultimos 60 dias',\n LAST_90_DAYS: 'Ultimos 90 dias',\n LAST_6_MONTHS: 'Ultimos 6 meses',\n LAST_12_MONTHS: 'Ultimos 12 meses',\n NEXT_30_DAYS: 'Próximos 30 dias',\n NEXT_60_DAYS: 'Próximos 60 dias',\n NEXT_90_DAYS: 'Próximos 90 dias',\n NEXT_6_MONTHS: 'Próximos 6 meses',\n NEXT_12_MONTHS: 'Próximos 12 meses'\n }\n }\n },\n 'es-CL': {\n EDIT: 'Editar',\n 'NO-RESULTS': 'No se encontraron resultados',\n 'NO-DATA': 'Sin datos',\n 'NO-DATA-ADDRESS': 'No se encontraron direcciones con esta búsqueda',\n LOADING: 'Cargando...',\n 'DATE-RANGE': {\n 'START-DATE': 'Fecha de inicio',\n 'END-DATE': 'Fecha de termino',\n INVALID: 'Rango de fechas no válido',\n ACTIONS: {\n CANCEL: 'Cancelar',\n APPLY: 'Aplicar'\n },\n 'WEEK-DAYS': ['Dom.', 'Lun.', 'Mar.', 'Mié.', 'Jue.', 'Vie.', 'Sab.'],\n MONTHS: {\n 0: 'Enero',\n 1: 'Febrero',\n 2: 'Marzo',\n 3: 'Abril',\n 4: 'Mayo',\n 5: 'Junio',\n 6: 'Julio',\n 7: 'Agosto',\n 8: 'Septiembre',\n 9: 'Octubre',\n 10: 'Noviembre',\n 11: 'Diciembre'\n },\n 'QUICK-ACTIONS': {\n CUSTOM: 'Personalizado',\n LAST_30_DAYS: 'Últimos 30 días',\n LAST_60_DAYS: 'Últimos 60 días',\n LAST_90_DAYS: 'Últimos 90 días',\n LAST_6_MONTHS: 'Últimos 6 meses',\n LAST_12_MONTHS: 'Últimos 12 meses',\n NEXT_30_DAYS: 'Próximos 30 días',\n NEXT_60_DAYS: 'Próximos 60 días',\n NEXT_90_DAYS: 'Próximos 90 días',\n NEXT_6_MONTHS: 'Próximos 6 meses',\n NEXT_12_MONTHS: 'Próximos 12 meses'\n }\n }\n },\n 'es-MX': {\n EDIT: 'Editar',\n 'NO-RESULTS': 'No se encontraron resultados',\n 'NO-DATA': 'Sin datos',\n 'NO-DATA-ADDRESS': 'No se encontraron direcciones con esta búsqueda',\n LOADING: 'Cargando...',\n 'DATE-RANGE': {\n 'START-DATE': 'Fecha de inicio',\n 'END-DATE': 'Fecha de termino',\n INVALID: 'Rango de fechas no válido',\n ACTIONS: {\n CANCEL: 'Cancelar',\n APPLY: 'Aplicar'\n },\n 'WEEK-DAYS': ['Dom.', 'Lun.', 'Mar.', 'Mié.', 'Jue.', 'Vie.', 'Sab.'],\n MONTHS: {\n 0: 'Enero',\n 1: 'Febrero',\n 2: 'Marzo',\n 3: 'Abril',\n 4: 'Mayo',\n 5: 'Junio',\n 6: 'Julio',\n 7: 'Agosto',\n 8: 'Septiembre',\n 9: 'Octubre',\n 10: 'Noviembre',\n 11: 'Diciembre'\n },\n 'QUICK-ACTIONS': {\n CUSTOM: 'Personalizado',\n LAST_30_DAYS: 'Últimos 30 días',\n LAST_60_DAYS: 'Últimos 60 días',\n LAST_90_DAYS: 'Últimos 90 días',\n LAST_6_MONTHS: 'Últimos 6 meses',\n LAST_12_MONTHS: 'Últimos 12 meses',\n NEXT_30_DAYS: 'Próximos 30 días',\n NEXT_60_DAYS: 'Próximos 60 días',\n NEXT_90_DAYS: 'Próximos 90 días',\n NEXT_6_MONTHS: 'Próximos 6 meses',\n NEXT_12_MONTHS: 'Próximos 12 meses'\n }\n }\n },\n 'en-US': {\n EDIT: 'Edit',\n 'NO-RESULTS': 'No results found',\n 'NO-DATA': 'No data',\n 'NO-DATA-ADDRESS': 'No address found with this search',\n LOADING: 'Loading...',\n 'DATE-RANGE': {\n 'START-DATE': 'Start date',\n 'END-DATE': 'End Date',\n INVALID: 'Invalid date range',\n ACTIONS: {\n CANCEL: 'Cancel',\n APPLY: 'Apply'\n },\n 'WEEK-DAYS': ['Sun.', 'Mon.', 'Tue.', 'Wed.', 'Thu.', 'Fri.', 'Sat.'],\n MONTHS: {\n 0: 'January',\n 1: 'February',\n 2: 'March',\n 3: 'April',\n 4: 'May',\n 5: 'June',\n 6: 'July',\n 7: 'August',\n 8: 'September',\n 9: 'October',\n 10: 'November',\n 11: 'December'\n },\n 'QUICK-ACTIONS': {\n CUSTOM: 'Custom',\n LAST_30_DAYS: 'Last 30 days',\n LAST_60_DAYS: 'Last 60 days',\n LAST_90_DAYS: 'Last 90 days',\n LAST_6_MONTHS: 'Last 6 months',\n LAST_12_MONTHS: 'Last 12 months',\n NEXT_30_DAYS: 'Next 30 days',\n NEXT_60_DAYS: 'Next 60 days',\n NEXT_90_DAYS: 'Next 90 days',\n NEXT_6_MONTHS: 'Next 6 months',\n NEXT_12_MONTHS: 'Next 12 months'\n }\n }\n }\n });\n\n constructor() {\n const tokenSubject = inject(MECX_I18N_WRAPPER, { optional: true });\n tokenSubject?.pipe(takeUntilDestroyed(this._destroyRef)).subscribe((value) => {\n this.handleWrapperValues(value);\n });\n }\n\n private handleWrapperValues(value: string) {\n try {\n const locale = this._localeId || 'pt-BR';\n const wrappedData = JSON.parse(value);\n const currentData = this._data$.value;\n\n const updated = {\n ...currentData,\n [locale]: {\n ...currentData[locale],\n ...wrappedData\n }\n };\n\n this._data$.next(updated);\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error(`MonkeyDictionaryService - handleWrapperValues -> ${e}`);\n }\n }\n\n get(key: string) {\n const locale = this._localeId || 'pt-BR';\n return this._data$.pipe(\n map((data) => {\n return data[locale]?.[key] ?? null;\n })\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 { computed, Injectable, signal } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyStepperService {\n private _steppers = signal<Map<string, string>>(new Map());\n\n currentStep(id: string) {\n return computed(() => {\n return this._steppers().get(id);\n });\n }\n\n setCurrentStep(id: string, step: string): void {\n this._steppers.update((items) => {\n return new Map(items).set(id, step);\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 { ComponentRef } from '@angular/core';\nimport { MonkeyToastComponent } from '../components';\n\nexport class MonkeyToastRef {\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 MonkeyToastPosition =\n | 'top-center'\n | 'top-left'\n | 'top-right'\n | 'bottom-center'\n | 'bottom-left'\n | 'bottom-right';\n\nexport type MonkeyToastType = 'default' | 'success' | 'error' | 'warning' | 'question';\n\nexport type ToastConfig = {\n type?: MonkeyToastType;\n icon?: string;\n isClosable?: boolean;\n message: string;\n position?: MonkeyToastPosition;\n duration?: number;\n keepOpen?: boolean;\n actionLabel?: string;\n actionIcon?: string;\n action?: () => void;\n closeOnAction?: boolean;\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 './alert';\nexport * from './autocomplete';\nexport * from './autocomplete-address';\nexport * from './breadcrumb';\nexport * from './button';\nexport * from './popover';\nexport * from './sizes';\nexport * from './table';\nexport * from './toast';\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { GlobalPositionStrategy, Overlay } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { inject, Injectable } from '@angular/core';\nimport { getRandomString } from '../../utils';\nimport { MonkeyToastComponent } from '../components';\nimport { type MonkeyToastPosition, MonkeyToastRef, type ToastConfig } from '../interfaces';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyToastService {\n private lastToast?: MonkeyToastRef;\n\n private overlay = inject(Overlay);\n\n private getPositionStrategy(position?: MonkeyToastPosition): 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 MonkeyToastRef(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 ************************* */\nexport * from './address.service';\nexport * from './dictionary.service';\nexport * from './stepper.service';\nexport * from './toast.service';\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 abstract onClear?(): 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 ************************* */\nimport {\n AfterContentChecked,\n AfterContentInit,\n booleanAttribute,\n ChangeDetectorRef,\n Component,\n computed,\n ContentChild,\n ContentChildren,\n DEFAULT_CURRENCY_CODE,\n DestroyRef,\n effect,\n ElementRef,\n inject,\n input,\n Input,\n OnDestroy,\n output,\n QueryList,\n signal,\n ViewEncapsulation\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { merge, Subscription } from 'rxjs';\nimport { IdGenerator } from '../../../utils';\nimport {\n MonkeyErrorDirective,\n MonkeyHelperDirective,\n MonkeyInfoDirective,\n MonkeyLabelDirective,\n MonkeyPrefixDirective,\n MonkeySuffixDirective\n} from '../../directives';\nimport { MonkeyDisplayDirective } from '../../directives/display';\nimport { MonkeySize } from '../../interfaces';\nimport { MonkeyDictionaryService } 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.component.html',\n styleUrl: './form-field.component.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 '[class.mecx-form-field-borderless]': 'hideBorder()',\n '[attr.id]': 'id',\n '[id]': 'id',\n '[class]': 'size'\n },\n standalone: false\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 hideAction!: boolean;\n\n @Input({ transform: booleanAttribute })\n enableClear!: boolean;\n\n @Input() size: MonkeySize = 'md';\n\n displayOnly = input<boolean>(false);\n\n onDisplayOnlyChange = output<boolean>();\n\n @ContentChild(MonkeyFormFieldControl) private _formFieldControl!: MonkeyFormFieldControl;\n\n @ContentChild(MonkeyDisplayDirective)\n private _displayChild?: MonkeyDisplayDirective;\n\n @ContentChildren(MonkeyLabelDirective, { descendants: true })\n private _labelChildren!: QueryList<MonkeyLabelDirective>;\n\n @ContentChildren(MonkeyHelperDirective, { descendants: true })\n private _helperChildren!: QueryList<MonkeyHelperDirective>;\n\n @ContentChildren(MonkeyPrefixDirective, { descendants: true })\n private _prefixChildren!: QueryList<MonkeyPrefixDirective>;\n\n @ContentChildren(MonkeySuffixDirective, { descendants: true })\n private _suffixChildren!: QueryList<MonkeySuffixDirective>;\n\n @ContentChildren(MonkeyInfoDirective, { descendants: true })\n private _infoChildren!: QueryList<MonkeyInfoDirective>;\n\n @ContentChildren(MonkeyErrorDirective, { descendants: true })\n private _errorChildren!: QueryList<MonkeyErrorDirective>;\n\n public elementRef = inject(ElementRef);\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 _destroyRef = inject(DestroyRef);\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 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 hideBorder = computed(() => {\n const { control } = this;\n return (\n control?.type === 'input-code' ||\n control?.type === 'radio-button' ||\n this.internalDisplayOnly()\n );\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 if (this.showLoading) {\n return false;\n }\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 showClear = computed(() => {\n return (\n !!this.control.ngControl?.control?.value &&\n !this.control.disabled &&\n !this.control.loading &&\n (!this.hideAction || this.enableClear) &&\n !this.displayOnly()\n );\n });\n\n get showCalendar(): boolean {\n return this.control.type === 'date' && !this.hideAction;\n }\n\n get showCurrency(): boolean {\n return this.control.currency || false;\n }\n\n get showPercent(): boolean {\n return this.control.percent || false;\n }\n\n get showLoading(): boolean {\n return this.control.loading || false;\n }\n\n internalDisplayOnly = signal<boolean>(this.displayOnly());\n\n readonly editDictionary = inject(MonkeyDictionaryService).get('EDIT');\n\n constructor() {\n // eslint-disable-next-line no-self-assign\n this.id = this.id;\n\n effect(() => {\n const value = this.displayOnly();\n this.internalDisplayOnly.set(value);\n });\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(takeUntilDestroyed(this._destroyRef))\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 if (this.displayOnly() && !this._displayChild) {\n throw new Error(\n 'monkey-form-field: When `displayOnly` is true, a <monkey-display> element is required inside.'\n );\n }\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 }\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 (\n !this.showLoading &&\n isControlEnabled &&\n isTouched &&\n isInvalid &&\n isNotFocused &&\n isControlDisableToBeDirty\n ) {\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 this.control?.onClear?.();\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 onCancelDisplayOnly(event: MouseEvent) {\n event.preventDefault();\n event.stopPropagation();\n this.internalDisplayOnly.set(false);\n this.onDisplayOnlyChange.emit(false);\n setTimeout(() => {\n this.control.onContainerClick(event);\n }, 0);\n }\n}\n","@if (internalDisplayOnly()) {\n <div class=\"mecx-form-field-display-only\" (click)=\"onCancelDisplayOnly($event)\">\n <div class=\"mecx-form-field-display-only-header\">\n <ng-container *ngTemplateOutlet=\"labelTpl\"></ng-container>\n </div>\n <div class=\"mecx-form-field-display-only-body\">\n <ng-content select=\"monkey-display\"></ng-content>\n </div>\n <div class=\"mecx-form-field-display-only-action\">\n {{ editDictionary | async }} <util-icon name=\"edit\" />\n </div>\n </div>\n} @else {\n @if (showHeader) {\n <div class=\"mecx-form-field-header\" (click)=\"control.onContainerClick($event)\">\n <label [id]=\"labelId\" [attr.for]=\"control.id\">\n <ng-container *ngTemplateOutlet=\"labelTpl\"></ng-container>\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 <util-icon class=\"mecx-clear\" name=\"clear\" (click)=\"onClear($event)\" />\n }\n @if (showCalendar) {\n <util-icon class=\"mecx-calendar\" name=\"calendar\" (click)=\"onOpenCalendar($event)\" />\n }\n @if (showLoading) {\n <util-icon class=\"mecx-form-field-loading\" name=\"loading\" />\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\n<ng-template #labelTpl>\n <ng-content select=\"monkey-label\"></ng-content>\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 { NgModule } from '@angular/core';\nimport { UtilIconComponent } from '../../../utils';\nimport { MonkeyFormFieldComponent } from './form-field.component';\n\n@NgModule({\n imports: [CommonModule, UtilIconComponent],\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 ************************* */\nexport * from './form-field-control';\nexport * from './form-field.component';\nexport * from './form-field.module';\nexport * from './utils';\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 {\n booleanAttribute,\n Component,\n ElementRef,\n HostListener,\n inject,\n Input,\n input,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { IdGenerator, UtilIconComponent } from '../../../utils';\n\n@Component({\n selector: 'monkey-option',\n standalone: true,\n imports: [CommonModule, UtilIconComponent],\n template: `\n @if (type === 'checkbox') {\n <span class=\"mecx-option-checkbox\">\n <util-icon class=\"icon\" name=\"check\" />\n </span>\n }\n <div #content><ng-content /></div>\n `,\n styleUrls: ['./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 '[class]': 'type'\n }\n})\nexport class MonkeyOptionComponent {\n private readonly idGenerator = inject(IdGenerator);\n\n @ViewChild('content', { static: true }) _content: ElementRef<HTMLElement> | undefined;\n\n readonly value = input<any>();\n\n @Input({ transform: booleanAttribute }) disabled = false;\n\n @Input() type = 'select';\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 private handleAction(event: MouseEvent | KeyboardEvent) {\n if (this.disabled) {\n event.stopPropagation();\n event.preventDefault();\n } else {\n this.action?.();\n }\n }\n\n @HostListener('click', ['$event'])\n onClick(event: MouseEvent): void {\n this.handleAction(event);\n }\n\n @HostListener('keydown', ['$event'])\n handleKeyDown(event: KeyboardEvent): void {\n const { key } = event;\n\n if (key === 'Enter' || key === ' ') {\n this.handleAction(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 ************************* */\nexport * from './option.component';\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 {\n AfterContentInit,\n booleanAttribute,\n ChangeDetectorRef,\n Component,\n ContentChild,\n DestroyRef,\n ElementRef,\n EventEmitter,\n inject,\n Input,\n OnDestroy,\n Optional,\n Output,\n TemplateRef,\n ViewChild\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport {\n ControlValueAccessor,\n FormsModule,\n NgControl,\n ReactiveFormsModule,\n Validators\n} from '@angular/forms';\nimport {\n catchError,\n debounceTime,\n distinctUntilChanged,\n Observable,\n of,\n Subject,\n switchMap\n} from 'rxjs';\nimport { IdGenerator, UtilIconComponent } from '../../../utils';\nimport { MonkeyDirectivesModule } from '../../directives';\nimport { MonkeyAutocompleteData, MonkeyAutocompleteResponse } from '../../interfaces';\nimport { MonkeyDictionaryService } from '../../services';\nimport {\n MonkeyFormFieldComponent,\n MonkeyFormFieldControl,\n MonkeyFormFieldModule\n} from '../form-field';\nimport { MonkeyOptionComponent } from '../option';\n\n@Component({\n selector: 'monkey-autocomplete',\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n MonkeyFormFieldModule,\n MonkeyDirectivesModule,\n MonkeyOptionComponent,\n UtilIconComponent\n ],\n template: `\n <input\n #input\n type=\"text\"\n autocomplete=\"off\"\n class=\"mecx-input\"\n [disabled]=\"disabled\"\n [placeholder]=\"placeholder\"\n (input)=\"onInputChange($event)\"\n (focus)=\"_onFocus()\"\n (blur)=\"_onBlur($event)\"\n [attr.id]=\"inputId\"\n [(ngModel)]=\"searchData\"\n />\n\n <ng-template\n [monkeyPopover]=\"showPopOver\"\n [monkeyPopoverTarget]=\"elementTarget\"\n [monkeyPopoverClosed]=\"closePopOver\"\n monkeyPopoverDir=\"ltr\"\n [monkeyPopoverBackdrop]=\"false\"\n [monkeyPopoverHideHeader]=\"true\"\n [monkeyPopoverWatch]=\"true\"\n >\n <div\n #containerWrapper\n class=\"mecx-autocomplete-wrapper\"\n [style.width.px]=\"initialDisplayWidth\"\n >\n <div *ngIf=\"options.length > 0\" class=\"mecx-autocomplete-options\">\n <div\n class=\"mecx-autocomplete-option\"\n *ngFor=\"let option of options\"\n (click)=\"onSelect(option)\"\n [class.mecx-autocomplete-selected]=\"isSelected(option)\"\n >\n <ng-container\n *ngTemplateOutlet=\"optionTemplate || defaultTemplate; context: { $implicit: option }\"\n >\n </ng-container>\n </div>\n </div>\n @if (loading) {\n <div class=\"mecx-autocomplete-loading\">\n <util-icon name=\"loading\" />\n {{ loadingDictionary | async }}\n </div>\n }\n @if (!loading && !options.length) {\n <div class=\"mecx-autocomplete-no-data\">\n <util-icon class=\"mecx-autocomplete-no-data-icon\" name=\"searchFail\" />\n {{ noDataDictionary | async }}\n </div>\n }\n </div>\n\n <ng-template #defaultTemplate let-option>\n <monkey-option>\n {{ option.description }}\n </monkey-option>\n </ng-template>\n </ng-template>\n `,\n styleUrl: './autocomplete.component.scss',\n providers: [\n // eslint-disable-next-line no-use-before-define\n { provide: MonkeyFormFieldControl, useExisting: MonkeyAutocompleteComponent }\n ],\n host: {\n '[attr.data-testid]': \"'monkey-autocomplete'\",\n class: 'mecx-autocomplete',\n '[class.mecx-autocomplete-disabled]': '_disabled',\n '[class.mecx-autocomplete-focused]': 'focused',\n '[attr.id]': 'id',\n '[attr.tabindex]': 'disabled ? -1 : tabIndex',\n '(focus)': '_onFocus()',\n '(blur)': '_onBlur($event)'\n }\n})\nexport class MonkeyAutocompleteComponent\n implements MonkeyFormFieldControl, ControlValueAccessor, AfterContentInit, OnDestroy\n{\n @Input({ required: true }) placeholder!: string;\n\n @Input() debounce = 300;\n\n @Input() tabIndex = 0;\n\n @Input() fetchOptions!: (queryOrLink: string | any) => Observable<MonkeyAutocompleteResponse>;\n\n @Output() onChange = new EventEmitter();\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 _disabled: boolean = false;\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 && value !== undefined) {\n this._value = value;\n // this.handleValue(value);\n this._onChange(value);\n this._onTouched(value);\n }\n }\n\n get value(): any {\n return this._value;\n }\n\n _value: string | null = null;\n\n constructor(\n @Optional() public formField: MonkeyFormFieldComponent,\n private changeDetectorRef: ChangeDetectorRef\n ) {\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n ngControl: NgControl | null = inject(NgControl, { self: true, optional: true })!;\n\n private readonly idGenerator = inject(IdGenerator);\n\n readonly id: string = this.idGenerator.getId('monkey-autocomplete-');\n\n readonly inputId: string = this.idGenerator.getId('monkey-autocomplete-input-');\n\n focused: boolean = false;\n\n readonly type: string = 'autocomplete';\n\n readonly stateChanges = new Subject<void>();\n\n protected _elementRef =\n inject<ElementRef<HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement>>(ElementRef);\n\n _onChange: any = () => {};\n\n _onTouched: any = () => {};\n\n get elementTarget() {\n if (this.formField?.elementRef) {\n return this.formField?.elementRef.nativeElement.querySelector('.mecx-form-field-body');\n }\n\n return this._elementRef.nativeElement;\n }\n\n private _searchEvent = new EventEmitter();\n\n private _destroyRef = inject(DestroyRef);\n\n private _resizeObserver?: ResizeObserver;\n\n initialDisplayWidth = 0;\n\n showPopOver = false;\n\n options: MonkeyAutocompleteData[] = [];\n\n readonly loadingDictionary = inject(MonkeyDictionaryService).get('LOADING');\n\n readonly noDataDictionary = inject(MonkeyDictionaryService).get('NO-DATA');\n\n loading = false;\n\n searchData = '';\n\n @ContentChild('optionTemplate', { static: false }) optionTemplate?: TemplateRef<any>;\n\n @ViewChild('containerWrapper') containerWrapper!: ElementRef;\n\n private updateWidth() {\n this.initialDisplayWidth = this.elementTarget?.offsetWidth - 12;\n }\n\n closePopOver = () => {\n setTimeout(() => {\n this.focused = false;\n this.showPopOver = false;\n this.changeDetectorRef.markForCheck();\n });\n };\n\n ngAfterContentInit(): void {\n this._searchEvent\n ?.pipe(\n debounceTime(this.debounce),\n distinctUntilChanged((prev, current) => {\n if (prev === current) {\n this.loading = false;\n }\n\n return prev === current;\n }),\n switchMap((query) => {\n return this.fetchOptions\n ? this.fetchOptions(query || '').pipe(\n catchError(() => {\n return of({ data: [] });\n })\n )\n : of({ data: [] });\n }),\n takeUntilDestroyed(this._destroyRef)\n )\n .subscribe({\n next: (result: MonkeyAutocompleteResponse) => {\n this.openPopOver();\n this.options = result.data;\n this.loading = false;\n }\n });\n\n this._resizeObserver = new ResizeObserver(() => {\n return this.updateWidth();\n });\n this._resizeObserver.observe(this._elementRef.nativeElement);\n this.updateWidth();\n }\n\n ngOnDestroy(): void {\n this._resizeObserver?.disconnect();\n }\n\n onContainerClick(event: MouseEvent): void {\n event.preventDefault();\n }\n\n onClear(): void {\n this.searchData = '';\n this._onChange(null);\n this.onChange.emit(null);\n }\n\n _onFocus() {\n if (!this.disabled) {\n this.focused = true;\n this._onTouched();\n this.stateChanges.next();\n if (this.options.length) {\n this.openPopOver();\n }\n }\n }\n\n _onBlur(event: FocusEvent) {\n const next = event?.relatedTarget as HTMLElement | null;\n if (next && this.containerWrapper?.nativeElement?.contains(next)) {\n return;\n }\n\n this.focused = false;\n this.stateChanges.next();\n this.closePopOver();\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 setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled;\n }\n\n writeValue(value: any): void {\n if (this._value !== value && value !== undefined) {\n this._value = value;\n this._onChange(value);\n this._onTouched(value);\n }\n }\n\n openPopOver() {\n this.showPopOver = true;\n }\n\n onInputChange(event: Event) {\n const { value } = event.target as HTMLInputElement;\n this.loading = true;\n this._searchEvent.next(value);\n this.openPopOver();\n }\n\n onSelect(option: MonkeyAutocompleteData) {\n this.value = option.value;\n this._onChange(this.value);\n this.onChange.emit(this.value);\n this.searchData = option.description;\n this.closePopOver();\n }\n\n isSelected(option: MonkeyAutocompleteData) {\n return option?.value === this.value;\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 './autocomplete.component';\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 {\n AfterContentInit,\n booleanAttribute,\n ChangeDetectorRef,\n Component,\n ContentChild,\n DestroyRef,\n ElementRef,\n EventEmitter,\n inject,\n Input,\n OnDestroy,\n Optional,\n Output,\n TemplateRef,\n ViewChild\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport {\n ControlValueAccessor,\n FormsModule,\n NgControl,\n ReactiveFormsModule,\n Validators\n} from '@angular/forms';\nimport { catchError, debounceTime, distinctUntilChanged, of, Subject, switchMap } from 'rxjs';\nimport { IdGenerator, UtilIconComponent } from '../../../utils';\nimport { MonkeyDirectivesModule } from '../../directives';\nimport { GoogleApiPlaces } from '../../interfaces';\nimport { MonkeyDictionaryService, MonkeyEcxAddressService } from '../../services';\nimport {\n MonkeyFormFieldComponent,\n MonkeyFormFieldControl,\n MonkeyFormFieldModule\n} from '../form-field';\nimport { MonkeyOptionComponent } from '../option';\n\n@Component({\n selector: 'monkey-autocomplete-address',\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n MonkeyFormFieldModule,\n MonkeyDirectivesModule,\n MonkeyOptionComponent,\n UtilIconComponent\n ],\n template: `\n <input\n #input\n type=\"text\"\n autocomplete=\"off\"\n class=\"mecx-input\"\n [disabled]=\"disabled\"\n [placeholder]=\"placeholder\"\n (input)=\"onInputChange($event)\"\n (focus)=\"_onFocus()\"\n (blur)=\"_onBlur($event)\"\n [attr.id]=\"inputId\"\n [(ngModel)]=\"searchData\"\n />\n\n <ng-template\n [monkeyPopover]=\"showPopOver\"\n [monkeyPopoverTarget]=\"elementTarget\"\n [monkeyPopoverClosed]=\"closePopOver\"\n monkeyPopoverDir=\"ltr\"\n [monkeyPopoverBackdrop]=\"false\"\n [monkeyPopoverHideHeader]=\"true\"\n [monkeyPopoverWatch]=\"true\"\n >\n <div\n #containerWrapper\n class=\"mecx-autocomplete-address-wrapper\"\n [style.width.px]=\"initialDisplayWidth\"\n >\n <div class=\"flex-grow-1\">\n @if (loading) {\n <div class=\"mecx-autocomplete-address-loading\">\n <util-icon name=\"loading\" />\n {{ loadingDictionary | async }}\n </div>\n }\n <div *ngIf=\"options.length > 0\" class=\"mecx-autocomplete-address-options\">\n <monkey-option\n class=\"mecx-autocomplete-address-option\"\n *ngFor=\"let option of options\"\n (click)=\"onSelect(option)\"\n [class.mecx-option-selected]=\"isSelected(option)\"\n >\n <util-icon class=\"mecx-autocomplete-address-option-icon\" name=\"location\" />\n <span [innerHTML]=\"option.adrFormatAddress\"></span>\n </monkey-option>\n </div>\n @if (!loading && !options.length) {\n <div class=\"mecx-autocomplete-address-no-data\">\n <util-icon class=\"mecx-autocomplete-address-no-data-icon\" name=\"searchFail\" />\n {{ noDataDictionary | async }}\n </div>\n }\n </div>\n <div class=\"mecx-autocomplete-address-footer\">\n <util-icon name=\"googleMaps\" />\n </div>\n </div>\n </ng-template>\n `,\n styleUrl: './autocomplete-address.component.scss',\n providers: [\n // eslint-disable-next-line no-use-before-define\n { provide: MonkeyFormFieldControl, useExisting: MonkeyAutocompleteAddressComponent }\n ],\n host: {\n '[attr.data-testid]': \"'monkey-autocomplete-address'\",\n class: 'mecx-autocomplete-address',\n '[class.mecx-autocomplete-address-disabled]': '_disabled',\n '[class.mecx-autocomplete-address-focused]': 'focused',\n '[attr.id]': 'id',\n '[attr.tabindex]': 'disabled ? -1 : tabIndex',\n '(focus)': '_onFocus()',\n '(blur)': '_onBlur($event)'\n }\n})\nexport class MonkeyAutocompleteAddressComponent\n implements MonkeyFormFieldControl, ControlValueAccessor, AfterContentInit, OnDestroy\n{\n @Input({ required: true }) placeholder!: string;\n\n @Input() debounce = 300;\n\n @Input() tabIndex = 0;\n\n @Output() onChange = new EventEmitter();\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 _disabled: boolean = false;\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 && value !== undefined) {\n this._value = value;\n if (!this.searchData) {\n this.searchData = value;\n }\n this._onChange(value);\n this._onTouched(value);\n }\n }\n\n get value(): any {\n return this._value;\n }\n\n _value: string | null = null;\n\n constructor(\n @Optional() public formField: MonkeyFormFieldComponent,\n private changeDetectorRef: ChangeDetectorRef\n ) {\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n ngControl: NgControl | null = inject(NgControl, { self: true, optional: true })!;\n\n private readonly idGenerator = inject(IdGenerator);\n\n readonly id: string = this.idGenerator.getId('monkey-autocomplete-address-');\n\n readonly inputId: string = this.idGenerator.getId('monkey-autocomplete-address-input-');\n\n focused: boolean = false;\n\n readonly type: string = 'autocomplete-address';\n\n readonly stateChanges = new Subject<void>();\n\n protected _elementRef =\n inject<ElementRef<HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement>>(ElementRef);\n\n _onChange: any = () => {};\n\n _onTouched: any = () => {};\n\n private readonly _addressService = inject(MonkeyEcxAddressService);\n\n private _searchEvent = new EventEmitter();\n\n private _destroyRef = inject(DestroyRef);\n\n private _resizeObserver?: ResizeObserver;\n\n initialDisplayWidth = 0;\n\n showPopOver = false;\n\n options: GoogleApiPlaces[] = [];\n\n readonly loadingDictionary = inject(MonkeyDictionaryService).get('LOADING');\n\n readonly noDataDictionary = inject(MonkeyDictionaryService).get('NO-DATA-ADDRESS');\n\n loading = false;\n\n searchData = '';\n\n get elementTarget() {\n if (this.formField?.elementRef) {\n return this.formField?.elementRef.nativeElement.querySelector('.mecx-form-field-body');\n }\n\n return this._elementRef.nativeElement;\n }\n\n @ContentChild('optionTemplate', { static: false }) optionTemplate?: TemplateRef<any>;\n\n @ViewChild('containerWrapper') containerWrapper!: ElementRef;\n\n private updateWidth() {\n this.initialDisplayWidth = this.elementTarget?.offsetWidth - 12;\n }\n\n closePopOver = () => {\n setTimeout(() => {\n this.focused = false;\n this.showPopOver = false;\n this.changeDetectorRef.markForCheck();\n });\n };\n\n ngAfterContentInit(): void {\n this._searchEvent\n ?.pipe(\n debounceTime(this.debounce),\n distinctUntilChanged((prev, current) => {\n if (prev === current) {\n this.loading = false;\n }\n\n return prev === current;\n }),\n switchMap((query) => {\n return this._addressService.get(query || '').pipe(\n catchError(() => {\n return of([]);\n })\n );\n }),\n takeUntilDestroyed(this._destroyRef)\n )\n .subscribe({\n next: (result: any[]) => {\n this.openPopOver();\n this.options = result;\n this.loading = false;\n }\n });\n\n this._resizeObserver = new ResizeObserver(() => {\n return this.updateWidth();\n });\n this._resizeObserver.observe(this._elementRef.nativeElement);\n this.updateWidth();\n }\n\n ngOnDestroy(): void {\n this._resizeObserver?.disconnect();\n }\n\n onContainerClick(event: MouseEvent): void {\n event.preventDefault();\n }\n\n onClear(): void {\n this.searchData = '';\n this._onChange(null);\n this.onChange.emit(null);\n }\n\n _onFocus() {\n if (!this.disabled) {\n this.focused = true;\n this._onTouched();\n this.stateChanges.next();\n if (this.options.length) {\n this.openPopOver();\n }\n }\n }\n\n _onBlur(event: FocusEvent) {\n const next = event?.relatedTarget as HTMLElement | null;\n if (next && this.containerWrapper?.nativeElement?.contains(next)) {\n return;\n }\n\n this.focused = false;\n this.stateChanges.next();\n this.closePopOver();\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 setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled;\n }\n\n writeValue(value: any): void {\n this.value = value;\n }\n\n openPopOver() {\n this.showPopOver = true;\n }\n\n onInputChange(event: Event) {\n const { value } = event.target as HTMLInputElement;\n this.loading = true;\n this._searchEvent.next(value);\n this.openPopOver();\n }\n\n onSelect(option: GoogleApiPlaces) {\n this.value = option;\n this._onChange(this.value);\n this.onChange.emit(this.value);\n this.searchData = option?.formattedAddress;\n this.closePopOver();\n }\n\n isSelected(option: GoogleApiPlaces) {\n return option === this.value;\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 './autocomplete-address.component';\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 effect,\n HostBinding,\n inject,\n input,\n InputSignal,\n ViewEncapsulation\n} from '@angular/core';\nimport { IdGenerator, objHaveProperty } from '../../../utils';\nimport { MonkeySize } from '../../interfaces';\nimport { MonkeyIconComponent } from '../icon';\n\ntype MonkeyAvatarSrc = { iconName: string } | { imageUrl: string } | { name: string };\ntype MonkeyAvatarType = 'icon' | 'image' | 'name';\n\n@Component({\n imports: [MonkeyIconComponent],\n encapsulation: ViewEncapsulation.None,\n selector: 'monkey-avatar',\n styleUrl: './avatar.component.scss',\n templateUrl: './avatar.component.html',\n host: {\n 'data-testid': 'monkey-avatar',\n '[attr.id]': '_id',\n '[id]': '_id'\n }\n})\nexport class MonkeyAvatarComponent {\n protected _id: any = inject(IdGenerator).getId('monkey-avatar-');\n\n readonly size: InputSignal<MonkeySize> = input('xs' as MonkeySize);\n\n readonly src: InputSignal<MonkeyAvatarSrc> = input.required();\n\n readonly id: InputSignal<string | undefined> = input();\n\n public avatar = '?';\n\n public avatarType: MonkeyAvatarType = 'name';\n\n @HostBinding('class')\n get classes(): string {\n return this.size();\n }\n\n constructor() {\n effect(() => {\n this._id = this.id() || this._id;\n\n this.handleAvatarType();\n });\n }\n\n private getInitial(text: string): string {\n return text.toUpperCase()[0];\n }\n\n private handleAvatarType(): void {\n const { getInitial, src } = this;\n const value = src();\n\n if (objHaveProperty(value, 'iconName')) {\n this.avatarType = 'icon';\n this.avatar = (value as { iconName: string }).iconName;\n\n return;\n }\n\n if (objHaveProperty(value, 'imageUrl')) {\n this.avatarType = 'image';\n this.avatar = (value as { imageUrl: string }).imageUrl;\n\n return;\n }\n\n if (objHaveProperty(value, 'name')) {\n this.avatarType = 'name';\n this.avatar = getInitial((value as { name: string }).name);\n }\n }\n}\n","@switch (avatarType) {\n @case ('name') {\n <p [class]=\"size()\">{{ avatar }}</p>\n }\n\n @case ('icon') {\n <monkey-icon [icon]=\"avatar\" [size]=\"size()\" />\n }\n\n @case ('image') {\n <img loading=\"lazy\" [alt]=\"'Avatar ' + avatarType\" [class]=\"size()\" [src]=\"avatar\" />\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 './avatar.component';\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, HostBinding, inject, Input } from '@angular/core';\nimport { IdGenerator } from '../../../utils';\nimport { MonkeySize } from '../../interfaces';\nimport { MonkeyIconComponent } from '../icon';\n\n@Component({\n selector: 'monkey-badge',\n imports: [CommonModule, MonkeyIconComponent],\n templateUrl: './badge.component.html',\n styleUrl: './badge.component.scss',\n host: {\n 'data-testid': 'monkey-badge',\n '[attr.id]': 'id'\n }\n})\nexport class MonkeyBadgeComponent {\n private readonly idGenerator = inject(IdGenerator);\n\n readonly id: string = this.idGenerator.getId('monkey-badge-');\n\n @HostBinding('style') hostVariables = {};\n\n @Input() set type(value: 'success' | 'alert' | 'error' | 'info' | 'default') {\n const styles = {\n success: { background: '#F5FFFB', color: '#005236' },\n alert: { background: '#FFF8EB', color: '#1F2024' },\n error: { background: '#FFECEC', color: '#DB0505' },\n info: { background: '#F4EBFF', color: '#2D0264' },\n default: { background: '#F1F2F3', color: '#1F2024' }\n }[value];\n\n this.hostVariables = {\n '--monkey-badge-background': styles?.background,\n '--monkey-badge-color': styles?.color\n };\n }\n\n @Input()\n set typeColors(value: { background: string; color: string }) {\n if (value) {\n this.hostVariables = {\n '--monkey-badge-background': value?.background,\n '--monkey-badge-color': value?.color\n };\n }\n }\n\n @HostBinding('class')\n @Input()\n size: MonkeySize = 'sm';\n\n @HostBinding('class.large-padding')\n @Input({ transform: booleanAttribute })\n largePadding = false;\n\n @Input() icon: string = '';\n\n @Input() text: string = '';\n}\n","@if (text) {\n @if (icon) {\n <monkey-icon class=\"icon\" [icon]=\"icon\"></monkey-icon>\n }\n <span>\n {{ text }}\n </span>\n} @else {\n <ng-content></ng-content>\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 './badge.component';\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 { MonkeyBreadcrumb } from '../../interfaces';\n\n@Component({\n selector: 'monkey-breadcrumb',\n imports: [CommonModule],\n templateUrl: './breadcrumb.component.html',\n styleUrl: './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!: MonkeyBreadcrumb;\n\n @Input({ required: true }) last!: MonkeyBreadcrumb;\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: MonkeyBreadcrumb) {\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 ************************* */\nexport * from './breadcrumb.component';\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 Component,\n ElementRef,\n HostListener,\n inject,\n Input,\n ViewEncapsulation\n} from '@angular/core';\nimport { UtilIconComponent } from '../../../utils';\nimport { IdGenerator } from '../../../utils/id-generator';\nimport { MonkeyButtonColor, MonkeyButtonType } from '../../interfaces/button';\nimport { MonkeySize } from '../../interfaces/sizes';\n\n@Component({\n encapsulation: ViewEncapsulation.None,\n imports: [UtilIconComponent, CommonModule],\n selector: 'monkey-button',\n standalone: true,\n styleUrl: './button.component.scss',\n templateUrl: './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() color: MonkeyButtonColor = 'default';\n\n @Input() size: MonkeySize = 'md';\n\n @Input() type: MonkeyButtonType = 'primary';\n\n @Input() loading!: boolean;\n\n private readonly elementRef = inject(ElementRef);\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: MouseEvent): void {\n if (this.disabled) {\n event.stopPropagation();\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n }\n\n get element(): HTMLElement {\n return this.elementRef.nativeElement;\n }\n}\n","<button class=\"mecx-button {{ type }} {{ size }} {{ color }}\" [disabled]=\"disabled || loading\">\n <div class=\"content\">\n <ng-content *ngIf=\"!loading\" select=\"[first]\"></ng-content>\n <span><ng-content></ng-content></span>\n <ng-content *ngIf=\"!loading\" select=\"[last]\"></ng-content>\n @if (loading) {\n <util-icon class=\"mecx-button-loading\" name=\"loading\" />\n }\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 ************************* */\nexport * from './button.component';\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { animate, keyframes, style, transition, trigger } from '@angular/animations';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n DestroyRef,\n EventEmitter,\n forwardRef,\n inject,\n Injector,\n Input,\n OnChanges,\n OnInit,\n Output,\n QueryList\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\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 { IdGenerator, UtilIconComponent } from '../../../utils';\nimport { MonkeyHelperDirective, MonkeyInfoDirective, MonkeyLabelDirective } from '../../directives';\n\n@Component({\n selector: 'monkey-checkbox',\n imports: [ReactiveFormsModule, FormsModule, UtilIconComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: './checkbox.component.html',\n styleUrls: ['./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 ],\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(MonkeyInfoDirective, { descendants: true })\n private infoChildren!: QueryList<MonkeyInfoDirective>;\n\n @ContentChildren(MonkeyLabelDirective, { descendants: true })\n private labelChildren!: QueryList<MonkeyLabelDirective>;\n\n @ContentChildren(MonkeyHelperDirective, { descendants: true })\n private helperChildren!: QueryList<MonkeyHelperDirective>;\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 _destroyRef = inject(DestroyRef);\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 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(takeUntilDestroyed(this._destroyRef)).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 = (event: any) => {\n if (event.relatedTarget) {\n this.isFocused = true;\n }\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($event)\"\n [id]=\"inputId\"\n [required]=\"required\"\n />\n <span class=\"checkbox\">\n @if (indeterminate) {\n <util-icon class=\"icon\" name=\"minus\" />\n } @else if (value) {\n <util-icon class=\"icon\" name=\"check\" />\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 ************************* */\nexport * from './checkbox.component';\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 DestroyRef,\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 { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { NgControl, Validators } from '@angular/forms';\nimport { Subject, Subscription } from 'rxjs';\nimport { IdGenerator } from '../../../utils';\nimport { MonkeyFormFieldControl } from '../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 ],\n standalone: false\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 _destroyRef = inject(DestroyRef);\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(takeUntilDestroyed(this._destroyRef))\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","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { 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 { MonkeyFormFieldControl } from '../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 ],\n standalone: false\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 @Input()\n get min(): string {\n return this._min;\n }\n\n set min(value: string) {\n this._min = value;\n\n if (this._type === 'date') {\n (this._elementRef.nativeElement as HTMLInputElement).min = this._min;\n }\n }\n\n @Input()\n get max(): string {\n return this._max;\n }\n\n set max(value: string) {\n this._max = value;\n\n if (this._type === 'date') {\n (this._elementRef.nativeElement as HTMLInputElement).max = this._max;\n }\n }\n\n protected _type = 'text';\n\n protected _min!: string;\n\n protected _max!: string;\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 './input-currency.directive';\nimport { MonkeyInputDirective } from './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 ************************* */\nexport * from './input-currency.directive';\nexport * from './input.directive';\nexport * from './input.module';\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, UtilIconComponent } from '../../../utils';\nimport { MonkeyIconComponent } from '../icon';\n\n@Component({\n selector: 'monkey-icon-button',\n imports: [CommonModule, MonkeyIconComponent, UtilIconComponent],\n templateUrl: './icon-button.component.html',\n styleUrl: './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 @Input() loading!: boolean;\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 || loading\">\n <div class=\"content\">\n @if (loading) {\n <util-icon class=\"mecx-icon-loading\" name=\"loading\" />\n }\n <monkey-icon *ngIf=\"!loading\" name=\"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 ************************* */\nexport * from './icon-button.component';\n","/* eslint-disable no-unused-vars */\n/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport {\n addDays,\n addMonths,\n addYears,\n endOfMonth,\n endOfWeek,\n format,\n getMonth,\n getYear,\n isAfter,\n isBefore,\n isSameMonth,\n isToday,\n parseISO,\n startOfMonth,\n startOfWeek,\n subMonths,\n subYears\n} from 'date-fns';\n\nexport interface DefaultDates {\n minDate: string;\n maxDate: string;\n}\n\nexport interface WeekDay {\n date: Date | null;\n isDisabled: boolean;\n isToday: boolean;\n}\n\nexport interface CalendarWeekDay {\n blockNext: boolean;\n blockPrev: boolean;\n days: (WeekDay | null)[];\n}\n\nexport enum QuickActionsEnum {\n LAST_30_DAYS = -30,\n LAST_60_DAYS = -60,\n LAST_90_DAYS = -90,\n LAST_6_MONTHS = -180,\n LAST_12_MONTHS = -365,\n NEXT_30_DAYS = 30,\n NEXT_60_DAYS = 60,\n NEXT_90_DAYS = 90,\n NEXT_6_MONTHS = 180,\n NEXT_12_MONTHS = 365\n}\n\nexport function parseStringDate(val: Date | string) {\n if (typeof val === 'string') {\n return format(parseISO(val as string), 'yyyy-MM-dd');\n }\n\n return val.toISOString().split('T')[0];\n}\n\nexport function getDefaultdates(): DefaultDates {\n return {\n minDate: format(subYears(new Date(), 15), 'yyyy-MM-dd'),\n maxDate: format(addYears(new Date(), 15), 'yyyy-MM-dd')\n };\n}\n\nexport function buildCalendars(date: Date | string, action?: 'previous' | 'next') {\n if (action) {\n if (action === 'previous') {\n date = subMonths(date, 1);\n } else {\n date = addMonths(date, 1);\n }\n }\n\n const firstMonth = getMonth(date);\n const firstYear = getYear(date);\n\n const secondDate = addMonths(date, 1);\n\n const secondMonth = getMonth(secondDate);\n const secondYear = getYear(secondDate);\n\n return {\n firstCalendar: {\n month: firstMonth,\n year: firstYear\n },\n secondCalendar: {\n month: secondMonth,\n year: secondYear\n }\n };\n}\n\nexport function buildMonthByDays(\n year: number,\n month: number,\n minDate: Date | string,\n maxDate: Date | string\n): CalendarWeekDay {\n const date = new Date(year, month, 1);\n const start = startOfWeek(startOfMonth(date), { weekStartsOn: 0 });\n const end = endOfWeek(endOfMonth(date), { weekStartsOn: 0 });\n\n const days: (WeekDay | null)[] = [];\n let blockPrev = false;\n let blockNext = false;\n\n let current = start;\n while (current <= end) {\n const isCurrentMonth = isSameMonth(current, date);\n const isBeforeMin = minDate\n ? isBefore(parseStringDate(current), parseStringDate(minDate))\n : false;\n if (isBeforeMin) {\n blockPrev = true;\n }\n const isAfterMax = maxDate\n ? isAfter(parseStringDate(current), parseStringDate(maxDate))\n : false;\n if (isAfterMax) {\n blockNext = true;\n }\n\n days.push({\n date: isCurrentMonth ? current : null,\n isDisabled: !isCurrentMonth || isBeforeMin || isAfterMax,\n isToday: isToday(current)\n });\n current = addDays(current, 1);\n }\n\n return {\n blockPrev,\n blockNext,\n days\n };\n}\n\nexport function getEnumKeys(enumObj: any): any[] {\n return Object.entries(enumObj)\n .filter(([key]) => {\n return Number.isNaN(Number(key));\n })\n .map(([key, value]) => {\n return { key, value };\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 {\n booleanAttribute,\n Component,\n EventEmitter,\n inject,\n Input,\n OnChanges,\n Output\n} from '@angular/core';\nimport { format, isAfter, isWithinInterval } from 'date-fns';\nimport { IdGenerator } from '../../../../utils';\nimport { MonkeyDictionaryService } from '../../../services/dictionary.service';\nimport { MonkeyIconButtonComponent } from '../../icon-button';\nimport * as Utils from '../utils';\n\n@Component({\n selector: 'monkey-date-range-month',\n imports: [CommonModule, MonkeyIconButtonComponent],\n templateUrl: './month.component.html',\n styleUrl: './month.component.scss',\n host: {\n 'data-testid': 'month',\n '[attr.id]': 'id',\n '[id]': 'id'\n }\n})\nexport class MonkeyDateRangeMonthComponent implements OnChanges {\n @Input({ required: true }) month!: number;\n\n @Input({ required: true }) year!: number;\n\n @Input() set startDate(val: string) {\n this._handledStartDate = val;\n }\n\n @Input() set endDate(val: string) {\n this._handledEndDate = val;\n }\n\n @Input({ transform: booleanAttribute })\n hidePrevious!: boolean;\n\n @Input({ transform: booleanAttribute })\n hideNext!: boolean;\n\n @Input() minDate!: string;\n\n @Input() maxDate!: string;\n\n @Output() onNavigate = new EventEmitter();\n\n @Output() onDate = new EventEmitter();\n\n protected _uid = inject(IdGenerator).getId('monkey-date-range-month-');\n\n protected _id!: string;\n\n private readonly _today = new Date();\n\n private _handledStartDate!: string;\n\n private _handledEndDate!: string;\n\n readonly i18nDictionary = inject(MonkeyDictionaryService).get('DATE-RANGE');\n\n daysInMonth!: Utils.CalendarWeekDay;\n\n temporaryEndDate!: Utils.WeekDay | null;\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 ngOnChanges(): void {\n this.daysInMonth = Utils.buildMonthByDays(this.year, this.month, this.minDate, this.maxDate);\n }\n\n isFirst(param: Utils.WeekDay): boolean {\n const date = format(param.date!, 'yyyy-MM-dd');\n return (this._handledStartDate && this._handledStartDate === date) || false;\n }\n\n isLast(param: Utils.WeekDay): boolean {\n const date = format(param.date!, 'yyyy-MM-dd');\n return (this._handledEndDate && this._handledEndDate === date) || false;\n }\n\n isSelected(param: Utils.WeekDay): boolean {\n const date = format(param.date!, 'yyyy-MM-dd');\n return (\n (this._handledStartDate && this._handledStartDate === date) ||\n (this._handledEndDate && this._handledEndDate === date) ||\n false\n );\n }\n\n isInRange(param: Utils.WeekDay): boolean {\n if (!this._handledStartDate || !this._handledEndDate || !param.date) return false;\n const date = format(param.date!, 'yyyy-MM-dd');\n\n return isWithinInterval(new Date(date), {\n start: new Date(this._handledStartDate),\n end: new Date(this._handledEndDate)\n });\n }\n\n isInRangeTemporary(param: Utils.WeekDay): boolean {\n if (\n !this._handledStartDate ||\n !this.temporaryEndDate?.date ||\n !param.date ||\n param.isDisabled ||\n (this._handledStartDate && this._handledEndDate)\n )\n return false;\n const date = format(param.date!, 'yyyy-MM-dd');\n\n return isWithinInterval(new Date(date), {\n start: new Date(this._handledStartDate),\n end: new Date(this.temporaryEndDate.date)\n });\n }\n\n isInLastTemporary(param: Utils.WeekDay): boolean {\n if (!this.temporaryEndDate?.date || !param.date || this._handledEndDate) return false;\n const date = format(param.date!, 'yyyy-MM-dd');\n const cmp = format(this.temporaryEndDate?.date!, 'yyyy-MM-dd');\n return (this.temporaryEndDate?.date && cmp === date) || false;\n }\n\n onSelectDate(event: Event, param: Utils.WeekDay) {\n if (param?.isDisabled || !param.date) {\n event.preventDefault();\n return;\n }\n\n const date = format(param.date, 'yyyy-MM-dd');\n if (this._handledStartDate && this._handledEndDate) {\n this._handledStartDate = '';\n this._handledEndDate = '';\n }\n\n if (!this._handledStartDate) {\n this._handledStartDate = date;\n } else {\n this._handledEndDate = date;\n }\n\n const cmp = isAfter(this._handledStartDate, this._handledEndDate);\n\n if (this._handledStartDate && this._handledEndDate && cmp) {\n const start = this._handledStartDate;\n const end = this._handledEndDate;\n this._handledStartDate = end;\n this._handledEndDate = start;\n }\n\n this.onDate.next({\n startDate: this._handledStartDate,\n endDate: this._handledEndDate\n });\n }\n}\n","<ng-container *ngIf=\"i18nDictionary | async as i18n\">\n <div class=\"header\">\n @if (!hidePrevious) {\n <monkey-icon-button\n size=\"sm\"\n icon=\"arrow-left\"\n type=\"secondary\"\n class=\"previous\"\n [disabled]=\"daysInMonth.blockPrev\"\n (click)=\"onNavigate.next('previous')\"\n >\n </monkey-icon-button>\n }\n\n {{ i18n?.['MONTHS']?.[month] }} {{ year }}\n\n @if (!hideNext) {\n <monkey-icon-button\n size=\"sm\"\n icon=\"arrow-right\"\n type=\"secondary\"\n class=\"next\"\n [disabled]=\"daysInMonth.blockNext\"\n (click)=\"onNavigate.next('next')\"\n >\n </monkey-icon-button>\n }\n </div>\n\n <div class=\"week-labels\">\n @for (day of i18n?.['WEEK-DAYS']; track day) {\n <span class=\"day\">{{ day }}</span>\n }\n </div>\n\n <div class=\"dates\">\n @for (day of daysInMonth.days; track $index) {\n <div\n class=\"day\"\n [class.disabled]=\"day!.isDisabled\"\n [class.in-range]=\"isInRange(day!)\"\n [class.selected]=\"isSelected(day!)\"\n [class.first]=\"isFirst(day!)\"\n [class.last]=\"isLast(day!)\"\n [class.in-range-temporary]=\"isInRangeTemporary(day!)\"\n [class.temporary-last]=\"isInLastTemporary(day!)\"\n (click)=\"onSelectDate($event, day!)\"\n (mouseenter)=\"temporaryEndDate = day!\"\n (mouseleave)=\"temporaryEndDate = null\"\n >\n {{ day!.date | date: 'd' }}\n @if (day?.isToday) {\n <span class=\"today\"></span>\n }\n </div>\n }\n </div>\n</ng-container>\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nexport * from './month.component';\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, EventEmitter, inject, Input, Output } from '@angular/core';\nimport { IdGenerator } from '../../../../utils';\nimport { MonkeyDictionaryService } from '../../../services/dictionary.service';\nimport * as Utils from '../utils';\n\n@Component({\n selector: 'monkey-date-range-quick-actions',\n imports: [CommonModule],\n templateUrl: './quick-actions.component.html',\n styleUrl: './quick-actions.component.scss',\n host: {\n 'data-testid': 'quick-actions',\n '[attr.id]': 'id',\n '[id]': 'id'\n }\n})\nexport class MonkeyDateRangeQuickActionsComponent {\n @Output() onChange = new EventEmitter();\n\n protected _uid = inject(IdGenerator).getId('monkey-date-range-month-quick-actions-');\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 selectedAction = '';\n\n readonly actions = Utils.getEnumKeys(Utils.QuickActionsEnum);\n\n readonly i18nDictionary = inject(MonkeyDictionaryService).get('DATE-RANGE');\n\n constructor() {\n // eslint-disable-next-line no-self-assign\n this.id = this.id;\n }\n\n onHandleAction({ key, value }: { key: string; value: number }) {\n this.selectedAction = key;\n this.onChange.next(value);\n }\n}\n","<ng-container *ngIf=\"i18nDictionary | async as i18n\">\n @for (item of actions; track item.key) {\n <div\n class=\"item\"\n [class.selected]=\"item.key === selectedAction\"\n (click)=\"onHandleAction(item)\"\n [attr.tabindex]=\"$index\"\n >\n {{ i18n?.['QUICK-ACTIONS']?.[item.key] }}\n </div>\n }\n</ng-container>\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nexport * from './quick-actions.component';\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 booleanAttribute,\n Component,\n EventEmitter,\n HostListener,\n inject,\n Input,\n OnInit,\n Output\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { addDays, isAfter, isBefore, subDays } from 'date-fns';\nimport { IdGenerator } from '../../../utils';\nimport { MonkeyDirectivesModule } from '../../directives';\nimport { MonkeyDictionaryService } from '../../services/dictionary.service';\nimport { MonkeyButtonComponent } from '../button';\nimport { MonkeyFormFieldModule } from '../form-field';\nimport { MonkeyInputModule } from '../input';\nimport { MonkeyDateRangeMonthComponent } from './month';\nimport { MonkeyDateRangeQuickActionsComponent } from './quick-actions';\nimport * as Utils from './utils';\n\ninterface Calendar {\n month: number;\n year: number;\n}\n\n@Component({\n selector: 'monkey-date-range',\n imports: [\n CommonModule,\n FormsModule,\n MonkeyInputModule,\n MonkeyFormFieldModule,\n MonkeyDirectivesModule,\n MonkeyButtonComponent,\n MonkeyDateRangeMonthComponent,\n MonkeyDateRangeQuickActionsComponent\n ],\n templateUrl: './date-range.component.html',\n styleUrl: './date-range.component.scss',\n host: {\n 'data-testid': 'monkey-date-range',\n '[attr.id]': 'id',\n '[id]': 'id'\n }\n})\nexport class MonkeyDateRangeComponent implements OnInit {\n @Input() set startDate(val: string) {\n this.handledStartDate = val;\n }\n\n @Input() set endDate(val: string) {\n this.handledEndDate = val;\n }\n\n @Input({ transform: booleanAttribute })\n hideQuickAction!: boolean;\n\n @Input({ transform: booleanAttribute })\n hideHeader!: boolean;\n\n @Input({ transform: booleanAttribute })\n hideActions!: boolean;\n\n @Input({ transform: booleanAttribute })\n hideSecondCalendar!: boolean;\n\n @Input({ transform: booleanAttribute })\n allowFastActionOnHeader!: boolean;\n\n @Input() set minDate(val: Date | string) {\n if (val) {\n this.handledMinDate = Utils.parseStringDate(val);\n }\n }\n\n @Input() set maxDate(val: Date | string) {\n if (val) {\n this.handledMaxDate = Utils.parseStringDate(val);\n }\n }\n\n @Output() onCancel = new EventEmitter();\n\n @Output() onDate = new EventEmitter();\n\n protected _uid = inject(IdGenerator).getId('monkey-date-range-');\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 private _screenWidth: number = window.innerWidth;\n\n private _allowChangeFastAction = true;\n\n private _allowChangeSecondCalendar = true;\n\n private readonly _today = new Date();\n\n readonly i18nDictionary = inject(MonkeyDictionaryService).get('DATE-RANGE');\n\n handledStartDate!: string;\n\n handledEndDate!: string;\n\n firstCalendar!: Calendar;\n\n secondCalendar!: Calendar;\n\n isInvalidInterval = false;\n\n handledMinDate: string = Utils.getDefaultdates().minDate;\n\n handledMaxDate: string = Utils.getDefaultdates().maxDate;\n\n constructor() {\n // eslint-disable-next-line no-self-assign\n this.id = this.id;\n }\n\n private handleInitialValues() {\n const calendars = Utils.buildCalendars(this.handledStartDate || new Date());\n this.firstCalendar = calendars.firstCalendar;\n this.secondCalendar = calendars.secondCalendar;\n }\n\n private handleProperties() {\n if (this._screenWidth < 950) {\n if (this._allowChangeFastAction) {\n this.hideQuickAction = true;\n this.allowFastActionOnHeader = false;\n }\n if (this._allowChangeSecondCalendar) {\n this.hideSecondCalendar = true;\n }\n } else {\n if (this._allowChangeFastAction) {\n this.hideQuickAction = false;\n this.allowFastActionOnHeader = false;\n }\n if (this._allowChangeSecondCalendar) {\n this.hideSecondCalendar = false;\n }\n }\n }\n\n private handleInputChange(event: Event, isStart: boolean): void {\n const input = event.target as HTMLInputElement;\n const { value } = input;\n const [year] = value.split('-');\n if (`${Number(year)}`.length < 4) return;\n\n if (!input.checkValidity()) {\n event.preventDefault();\n input.value = '';\n this.isInvalidInterval = true;\n return;\n }\n\n this.isInvalidInterval = false;\n\n if (isStart) {\n this.handledStartDate = value;\n } else {\n this.handledEndDate = value;\n }\n\n if (this.hideActions) {\n this.onSubmit();\n }\n }\n\n @HostListener('window:resize', ['$event'])\n onResize(event: any) {\n this._screenWidth = (event.target as Window).innerWidth;\n this.handleProperties();\n }\n\n ngOnInit(): void {\n if (this.hideQuickAction) {\n this._allowChangeFastAction = false;\n }\n if (this.hideSecondCalendar) {\n this._allowChangeSecondCalendar = false;\n }\n if (this.allowFastActionOnHeader) {\n this._allowChangeFastAction = false;\n this.hideQuickAction = true;\n }\n\n this.handleInitialValues();\n this.handleProperties();\n }\n\n onHandleDate({ startDate, endDate }: { startDate: string; endDate: string }) {\n this.handledStartDate = startDate;\n this.handledEndDate = endDate;\n\n if (this.hideActions) {\n this.onSubmit();\n }\n }\n\n onSubmit() {\n this.onDate.next({\n startDate: this.handledStartDate ?? '',\n endDate: this.handledEndDate ?? ''\n });\n }\n\n onHandleQuickAction(event: number) {\n const isBackward = event < 0;\n const days = Math.abs(event);\n\n if (isBackward) {\n const baseDate = Utils.parseStringDate(\n this.handledEndDate || this.handledStartDate || this._today\n );\n\n let startDate: string | Date = subDays(baseDate, days);\n\n if (isBefore(startDate, this.handledMinDate)) {\n startDate = this.handledMinDate;\n }\n\n this.handledStartDate = Utils.parseStringDate(startDate);\n this.handledEndDate = Utils.parseStringDate(baseDate);\n } else {\n const baseDate = Utils.parseStringDate(\n this.handledStartDate || this.handledEndDate || this._today\n );\n\n let endDate: string | Date = addDays(baseDate, days);\n\n if (isAfter(endDate, this.handledMaxDate)) {\n endDate = this.handledMaxDate;\n }\n\n this.handledStartDate = Utils.parseStringDate(baseDate);\n this.handledEndDate = Utils.parseStringDate(endDate);\n }\n\n if (this.hideActions) {\n this.onSubmit();\n }\n }\n\n onChangeInputStartDate(event: Event) {\n this.handleInputChange(event, true);\n }\n\n onChangeInputEndDate(event: Event) {\n this.handleInputChange(event, false);\n }\n\n onDataChange(event: string, isStart: boolean) {\n if (isStart) {\n this.handledStartDate = event;\n this.handledEndDate = '';\n } else {\n this.handledEndDate = event;\n }\n\n if (this.hideActions) {\n this.onSubmit();\n }\n }\n\n onHandleNavigate(action: 'previous' | 'next') {\n if (!action) return;\n const date = new Date(this.firstCalendar.year, this.firstCalendar.month, 1);\n const calendars = Utils.buildCalendars(date, action);\n this.firstCalendar = calendars.firstCalendar;\n this.secondCalendar = calendars.secondCalendar;\n }\n}\n","<ng-container *ngIf=\"i18nDictionary | async as i18n\">\n <div class=\"container-date-range-group\">\n @if (!hideQuickAction) {\n <div class=\"quick-actions\">\n <monkey-date-range-quick-actions (onChange)=\"onHandleQuickAction($event)\">\n </monkey-date-range-quick-actions>\n </div>\n }\n\n <div class=\"container-date-range\">\n @if (!hideHeader) {\n <div class=\"header\" [class.no-quick-action]=\"hideQuickAction\">\n @if (allowFastActionOnHeader) {\n <div class=\"quick-actions\">\n <monkey-date-range-quick-actions (onChange)=\"onHandleQuickAction($event)\">\n </monkey-date-range-quick-actions>\n </div>\n } @else {\n <div class=\"inputs\">\n <monkey-form-field hideAction enableClear size=\"sm\">\n <monkey-label>{{ i18n?.['START-DATE'] }}</monkey-label>\n <input\n type=\"date\"\n monkey-input\n id=\"startDate\"\n [(ngModel)]=\"handledStartDate\"\n (ngModelChange)=\"onDataChange($event, true)\"\n [min]=\"handledMinDate\"\n [max]=\"handledEndDate ? handledEndDate : handledMaxDate\"\n (change)=\"onChangeInputStartDate($event)\"\n />\n </monkey-form-field>\n <monkey-form-field hideAction enableClear size=\"sm\">\n <monkey-label>{{ i18n?.['END-DATE'] }}</monkey-label>\n <input\n type=\"date\"\n monkey-input\n id=\"endDate\"\n [(ngModel)]=\"handledEndDate\"\n (ngModelChange)=\"onDataChange($event, false)\"\n [min]=\"handledStartDate ? handledStartDate : ''\"\n [max]=\"handledMaxDate\"\n (change)=\"onChangeInputEndDate($event)\"\n />\n </monkey-form-field>\n </div>\n @if (isInvalidInterval) {\n <monkey-error>{{ i18n?.['INVALID'] }}</monkey-error>\n }\n }\n </div>\n }\n\n <div class=\"body\">\n <div class=\"calendars\">\n <monkey-date-range-month\n [month]=\"firstCalendar.month\"\n [year]=\"firstCalendar.year\"\n [startDate]=\"handledStartDate\"\n [endDate]=\"handledEndDate\"\n (onDate)=\"onHandleDate($event)\"\n (onNavigate)=\"onHandleNavigate($event)\"\n [hideNext]=\"!hideSecondCalendar\"\n [minDate]=\"handledMinDate\"\n [maxDate]=\"handledMaxDate\"\n >\n </monkey-date-range-month>\n\n @if (!hideSecondCalendar) {\n <monkey-date-range-month\n [month]=\"secondCalendar.month\"\n [year]=\"secondCalendar.year\"\n [startDate]=\"handledStartDate\"\n [endDate]=\"handledEndDate\"\n (onDate)=\"onHandleDate($event)\"\n (onNavigate)=\"onHandleNavigate($event)\"\n hidePrevious\n [minDate]=\"handledMinDate\"\n [maxDate]=\"handledMaxDate\"\n >\n </monkey-date-range-month>\n }\n </div>\n </div>\n\n @if (!hideActions) {\n <div class=\"actions\">\n <monkey-button size=\"md\" type=\"secondary\" (click)=\"onCancel.next(null)\">\n {{ i18n?.ACTIONS?.CANCEL }}\n </monkey-button>\n <monkey-button\n size=\"md\"\n (click)=\"onSubmit()\"\n [disabled]=\"!this.handledStartDate || !this.handledEndDate\"\n >\n {{ i18n?.ACTIONS?.APPLY }}\n </monkey-button>\n </div>\n }\n </div>\n </div>\n</ng-container>\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nexport * from './date-range.component';\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: './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 ************************* */\nexport * from './divider.component';\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, EventEmitter, inject, Input, Output } from '@angular/core';\nimport { IdGenerator } from '../../../utils/id-generator';\nimport { MonkeyButtonColor, MonkeyButtonType } from '../../interfaces/button';\nimport { MonkeySize } from '../../interfaces/sizes';\nimport { MonkeyButtonComponent } from '../button';\n\nexport type MonkeyDownloadButtonChangeEvent = {\n // eslint-disable-next-line no-use-before-define\n component: MonkeyDownloadButtonComponent;\n};\n\n@Component({\n selector: 'monkey-download-button',\n imports: [CommonModule, MonkeyButtonComponent],\n template: `\n <monkey-button\n [type]=\"type\"\n [color]=\"color\"\n [size]=\"size\"\n [class.has-progress]=\"hasProgress\"\n [disabled]=\"disabled || hasProgress\"\n (click)=\"onDownload()\"\n class=\"w-100\"\n >\n <div class=\"content-download\">\n <ng-content *ngIf=\"!loading\" select=\"[first]\"></ng-content>\n <span><ng-content></ng-content></span>\n <ng-content *ngIf=\"!loading\" select=\"[last]\"></ng-content>\n </div>\n\n <div\n class=\"content-download-progress\"\n [style.--mecx-button-progress]=\"hasProgress ? safeProgress + '%' : null\"\n *ngIf=\"hasProgress\"\n >\n <span [class.pe-2]=\"enablleMargin\">{{ safeProgress }}%</span>\n </div>\n </monkey-button>\n `,\n styleUrl: './download-button.component.scss',\n host: {\n '[attr.data-testid]': \"'monkey-download-button'\",\n class: 'mecx-download-button',\n '[attr.id]': 'id',\n '[attr.tabindex]': 'disabled ? -1 : tabIndex'\n }\n})\nexport class MonkeyDownloadButtonComponent {\n @Input() progress: number = 0;\n\n @Input() disabled!: boolean;\n\n @Input() color: MonkeyButtonColor = 'default';\n\n @Input() size: MonkeySize = 'md';\n\n @Input() type: MonkeyButtonType = 'primary';\n\n @Input() loading!: boolean;\n\n @Input() tabIndex = -1;\n\n @Output() onChange = new EventEmitter<MonkeyDownloadButtonChangeEvent>();\n\n protected _uid = inject(IdGenerator).getId('monkey-download-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 get safeProgress(): number {\n return Math.min(Math.max(this.progress, 1), 100);\n }\n\n get hasProgress(): boolean {\n return typeof this.progress === 'number' && this.progress > 0;\n }\n\n get enablleMargin(): boolean {\n return this.safeProgress === 100;\n }\n\n constructor() {\n // eslint-disable-next-line no-self-assign\n this.id = this.id;\n }\n\n onDownload() {\n this.onChange.emit({ component: this });\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 './download-button.component';\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 {\n AfterContentInit,\n Component,\n ElementRef,\n inject,\n OnChanges,\n OnDestroy,\n SimpleChanges\n} from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { UtilIconComponent } from '../../../utils';\nimport { MonkeyDirectivesModule } from '../../directives';\nimport { MonkeyButtonComponent } from '../button';\nimport { MonkeyFormFieldModule } from '../form-field';\nimport { MonkeyInputModule } from '../input';\nimport { MonkeyOptionComponent } from '../option';\n\n@Component({\n selector: 'monkey-filter-bar',\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n MonkeyFormFieldModule,\n MonkeyDirectivesModule,\n MonkeyFormFieldModule,\n MonkeyInputModule,\n MonkeyButtonComponent,\n UtilIconComponent,\n MonkeyOptionComponent\n ],\n template: `\n <monkey-form-field>\n <input type=\"text\" monkey-input placeholder=\"Pesquise pelo nome ou CNPJ\" />\n </monkey-form-field>\n <monkey-button\n #popoverTarget\n class=\"btn-filter\"\n type=\"secondary\"\n (click)=\"onShowPopOver(popoverTarget)\"\n >\n <util-icon class=\"icon\" name=\"addPlus\" first />\n Adicionar Filtro\n </monkey-button>\n\n <ng-template\n [monkeyPopover]=\"showPopOver\"\n [monkeyPopoverTarget]=\"elementTarget\"\n [monkeyPopoverClosed]=\"closePopOver\"\n monkeyPopoverDir=\"ltr\"\n [monkeyPopoverHideHeader]=\"true\"\n >\n <monkey-option> Status </monkey-option>\n <monkey-option> Data de Emissão </monkey-option>\n <monkey-option> Data de Vencimento </monkey-option>\n </ng-template>\n `,\n styleUrl: './filter-bar.component.scss',\n host: {\n '[attr.data-testid]': \"'monkey-filter-bar'\",\n class: 'mecx-filter-bar',\n '[class.mecx-filter-bar-disabled]': '_disabled',\n '[class.mecx-filter-bar-focused]': 'focused',\n '[attr.id]': 'id',\n '[attr.tabindex]': 'disabled ? -1 : tabIndex',\n '(focus)': '_onFocus()',\n '(blur)': '_onBlur()'\n }\n})\nexport class MonkeyFilterBarComponent implements AfterContentInit, OnDestroy, OnChanges {\n protected _elementRef =\n inject<ElementRef<HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement>>(ElementRef);\n\n showPopOver = false;\n\n elementTarget: HTMLElement | null = null;\n\n closePopOver = () => {\n this.showPopOver = false;\n };\n\n ngAfterContentInit(): void {}\n\n ngOnChanges(changes: SimpleChanges): void {}\n\n ngOnDestroy(): void {}\n\n onShowPopOver(el: MonkeyButtonComponent) {\n this.elementTarget = el.element;\n this.showPopOver = true;\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 './filter-bar.component';\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 AfterViewInit,\n Component,\n ElementRef,\n Input,\n InputSignal,\n Optional,\n QueryList,\n ViewChildren,\n booleanAttribute,\n computed,\n inject,\n input\n} from '@angular/core';\nimport { ControlValueAccessor, FormsModule, NgControl } from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { IdGenerator } from '../../../utils';\nimport { MonkeyFormFieldComponent, MonkeyFormFieldControl } from '../form-field';\n\ntype KeyboardKeys = 'Backspace' | 'Delete' | 'ArrowLeft' | 'ArrowUp' | 'ArrowRight' | 'ArrowDown';\n\ninterface AllowedKeyboardKeys {\n Backspace: () => void;\n Delete: () => void;\n ArrowLeft: () => void;\n ArrowUp: () => void;\n ArrowRight: () => void;\n ArrowDown: () => void;\n}\n\n@Component({\n selector: 'monkey-input-code',\n styleUrl: './input-code.component.scss',\n templateUrl: './input-code.component.html',\n imports: [CommonModule, FormsModule],\n host: {\n 'data-testid': 'monkey-input-code',\n '[attr.id]': 'id',\n '[id]': 'id'\n },\n providers: [\n // eslint-disable-next-line no-use-before-define\n { provide: MonkeyFormFieldControl, useExisting: MonkeyInputCodeComponent }\n ]\n})\nexport class MonkeyInputCodeComponent\n implements ControlValueAccessor, MonkeyFormFieldControl, AfterViewInit\n{\n readonly stateChanges = new Subject<void>();\n\n readonly type: string = 'input-code';\n\n readonly currency: boolean = false;\n\n readonly percent: boolean = false;\n\n readonly id: any = inject(IdGenerator).getId('monkey-input-code-');\n\n private _onChange: any = () => {};\n\n private _onTouched: any = () => {};\n\n private _value = null;\n\n public ngControl: NgControl | null = inject(NgControl, { self: true, optional: true })!;\n\n public focused: boolean = false;\n\n public length: InputSignal<number> = input<number>(6);\n\n public inputType: InputSignal<string> = input<string>('numeric');\n\n public inputIndices = computed(() => {\n return Array.from({ length: this.length() }, (_, i) => {\n return '';\n });\n });\n\n @Input({ transform: booleanAttribute })\n get disabled(): boolean {\n if (this.ngControl && this.ngControl.disabled !== null) {\n return this.ngControl.disabled;\n }\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 _disabled: boolean = false;\n\n @Input()\n set value(value: any) {\n if (this._value !== value && value !== undefined) {\n this._value = value;\n this._onChange(value);\n this._onTouched();\n }\n }\n\n get value(): any {\n return this._value;\n }\n\n @ViewChildren('codeInput') inputs!: QueryList<ElementRef<HTMLInputElement>>;\n\n constructor(@Optional() private formField: MonkeyFormFieldComponent) {\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n\n if (this.formField) {\n this.formField.hideAction = true;\n }\n }\n\n ngAfterViewInit(): void {\n if (this.formField) {\n const input = this.formField.elementRef.nativeElement.querySelector(\n '.mecx-form-field-body'\n ) as HTMLElement;\n\n const height = input.offsetHeight > 40 ? input.offsetHeight : 40;\n\n this.inputs.forEach((inputEl) => {\n inputEl.nativeElement.style.height = `${height}px`;\n inputEl.nativeElement.style.width = `${height}px`;\n });\n }\n }\n\n private _onFocus(): void {\n if (!this.disabled) {\n this.focused = true;\n this._onTouched();\n this.stateChanges.next();\n }\n }\n\n private propagateCode(): void {\n const code = this.inputIndices().join('');\n\n this.writeValue(code);\n }\n\n private focusNextInput(input: HTMLInputElement): void {\n const next: HTMLInputElement = input.nextElementSibling as HTMLInputElement;\n\n next?.focus();\n }\n\n private focusPreviousInput(input: HTMLInputElement): void {\n const previous: HTMLInputElement = input.previousElementSibling as HTMLInputElement;\n\n previous?.focus();\n }\n\n private setFullInputValue(value: string): void {\n const chars: string[] = value?.slice(0, this.length()).split('') || '';\n\n chars.forEach((digit: string, index: number) => {\n this.inputIndices()[index] = digit;\n });\n }\n\n public isInvalid(): boolean {\n return this.formField.showInvalid;\n }\n\n public onContainerClick(): void {\n if (!this._value) {\n this.inputs.first.nativeElement.focus();\n }\n }\n\n public onKeyDown(event: KeyboardEvent, index: number): void {\n const input = event.target as HTMLInputElement;\n this.inputIndices()[index] = input.value;\n\n const { key } = event;\n const keys: AllowedKeyboardKeys = {\n Backspace: (): void => {\n if (input.value === '') {\n this.focusPreviousInput(input);\n }\n },\n Delete: (): void => {\n if (input.value === '') {\n this.focusNextInput(input);\n }\n },\n ArrowLeft: (): void => {\n if (index > 0) {\n this.focusPreviousInput(input);\n\n event.preventDefault();\n }\n },\n ArrowUp: (): void => {\n if (index > 0) {\n this.focusPreviousInput(input);\n\n event.preventDefault();\n }\n },\n ArrowRight: (): void => {\n if (index < this.length()) {\n this.focusNextInput(input);\n\n event.preventDefault();\n }\n },\n ArrowDown: (): void => {\n if (index < this.length()) {\n this.focusNextInput(input);\n\n event.preventDefault();\n }\n }\n };\n\n if (keys[key as KeyboardKeys]) {\n keys[key as KeyboardKeys]();\n }\n }\n\n public onInput(event: Event, index: number): void {\n const input = event.target as HTMLInputElement;\n const { value } = input;\n\n if (value.length > 1) {\n this.setFullInputValue(value);\n\n input.value = value.charAt(0);\n } else {\n input.value = value;\n }\n\n this.inputIndices()[index] = input.value;\n\n if (input.value && index < this.length()) {\n this.focusNextInput(input);\n }\n\n this.propagateCode();\n }\n\n public onPaste(event: ClipboardEvent): void {\n event.preventDefault();\n\n const pastedData: string = event.clipboardData?.getData('text').trim() ?? '';\n const chars: string[] = pastedData.slice(0, this.length()).split('');\n\n chars.forEach((digit, index) => {\n this.inputIndices()[index] = digit;\n });\n\n if (this.inputs.length > chars.length) {\n this.inputs.get(chars.length)?.nativeElement.focus();\n }\n\n if (this.inputs.length <= chars.length) {\n this.onBlur();\n }\n\n this.propagateCode();\n }\n\n public onBlur(): void {\n this.focused = false;\n this.stateChanges.next();\n }\n\n public onFocus(event: FocusEvent): void {\n const input = event.target as HTMLInputElement;\n\n input.select();\n this._onFocus();\n }\n\n public writeValue(value: string): void {\n this.value = value;\n }\n\n public registerOnChange(fn: any): void {\n this._onChange = fn;\n }\n\n public registerOnTouched(fn: any): void {\n this._onTouched = fn;\n }\n\n public setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n}\n","<div class=\"monkey-input-code\">\n @for (idx of inputIndices(); track $index; let i = $index) {\n <input\n #codeInput\n class=\"focus\"\n autocomplete=\"one-time-code\"\n [attr.type]=\"inputType()\"\n [disabled]=\"_disabled\"\n [attr.maxlength]=\"1\"\n [class.invalid]=\"isInvalid()\"\n [(ngModel)]=\"inputIndices()[i]\"\n (focus)=\"onFocus($event)\"\n (input)=\"onInput($event, i)\"\n (keydown)=\"onKeyDown($event, i)\"\n (paste)=\"onPaste($event)\"\n (blur)=\"onBlur()\"\n />\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 ************************* */\nexport * from './input-code.component';\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 {\n AfterContentInit,\n booleanAttribute,\n Component,\n ElementRef,\n inject,\n Input,\n OnChanges,\n OnDestroy,\n Optional,\n SimpleChanges\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n FormsModule,\n NgControl,\n ReactiveFormsModule,\n Validators\n} from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { IdGenerator } from '../../../utils';\nimport { MonkeyDirectivesModule } from '../../directives';\nimport { MonkeyDateRangeComponent } from '../date-range';\nimport {\n MonkeyFormFieldComponent,\n MonkeyFormFieldControl,\n MonkeyFormFieldModule\n} from '../form-field';\n\n@Component({\n selector: 'monkey-input-date-range',\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n MonkeyFormFieldModule,\n MonkeyDirectivesModule,\n MonkeyDateRangeComponent\n ],\n template: `\n <span #popoverTarget (click)=\"onOpenPopover()\">\n <ng-container *ngIf=\"startDate; else noDate\">\n {{ startDate | date }} - {{ endDate | date }}\n </ng-container>\n <ng-template #noDate>\n {{ placeholder }}\n </ng-template>\n </span>\n\n <ng-template\n [monkeyPopover]=\"showPopOver\"\n [monkeyPopoverTarget]=\"elementTarget\"\n [monkeyPopoverClosed]=\"closePopOver\"\n monkeyPopoverDir=\"ltr\"\n [monkeyPopoverTitle]=\"title\"\n >\n <monkey-date-range\n hideHeader\n hideActions\n [startDate]=\"startDate\"\n [endDate]=\"endDate\"\n (onDate)=\"onHandleDate($event)\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n >\n </monkey-date-range>\n </ng-template>\n `,\n styleUrl: './input-date-range.component.scss',\n providers: [\n // eslint-disable-next-line no-use-before-define\n { provide: MonkeyFormFieldControl, useExisting: MonkeyInputDateRangeComponent }\n ],\n host: {\n '[attr.data-testid]': \"'monkey-input-date-range'\",\n class: 'mecx-input-date-range',\n '[class.mecx-input-date-range-disabled]': '_disabled',\n '[class.mecx-input-date-range-focused]': 'focused',\n '[attr.id]': 'id',\n '[attr.tabindex]': 'disabled ? -1 : tabIndex',\n '(focus)': '_onFocus()',\n '(blur)': '_onBlur()'\n }\n})\nexport class MonkeyInputDateRangeComponent\n implements MonkeyFormFieldControl, ControlValueAccessor, AfterContentInit, OnDestroy, OnChanges\n{\n @Input({ required: true }) placeholder!: string;\n\n @Input({ required: true }) title!: string;\n\n @Input() tabIndex = 0;\n\n @Input() minDate: Date | string = '';\n\n @Input() maxDate: Date | 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 _disabled: boolean = false;\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 && value !== undefined) {\n this._value = value;\n this.handleValue(value);\n this._onChange(value);\n this._onTouched(value);\n }\n }\n\n get value(): any {\n return this._value;\n }\n\n _value: string | null = null;\n\n constructor(@Optional() public formField: MonkeyFormFieldComponent) {\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n ngControl: NgControl | null = inject(NgControl, { self: true, optional: true })!;\n\n private readonly idGenerator = inject(IdGenerator);\n\n readonly id: string = this.idGenerator.getId('monkey-input-date-range-');\n\n focused: boolean = false;\n\n readonly type: string = 'input-date-range';\n\n readonly stateChanges = new Subject<void>();\n\n protected _elementRef =\n inject<ElementRef<HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement>>(ElementRef);\n\n _onChange: any = () => {};\n\n _onTouched: any = () => {};\n\n showPopOver = false;\n\n startDate = '';\n\n endDate = '';\n\n handledMinDate: string = '';\n\n handledMaxDate: string = '';\n\n get elementTarget() {\n if (this.formField?.elementRef) {\n return this.formField?.elementRef.nativeElement.querySelector('.mecx-form-field-body');\n }\n\n return this._elementRef.nativeElement;\n }\n\n closePopOver = () => {\n this.showPopOver = false;\n this.validateValue();\n };\n\n ngAfterContentInit(): void {}\n\n ngOnChanges(changes: SimpleChanges): void {}\n\n ngOnDestroy(): void {}\n\n onContainerClick(event: MouseEvent): void {\n event.preventDefault();\n this.onOpenPopover();\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 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 private handleValue(value: any) {\n try {\n const { startDate, endDate } = value || {\n startDate: '',\n endDate: ''\n };\n this.startDate = startDate;\n this.endDate = endDate;\n } catch (e) {\n // not to do\n }\n }\n\n private validateValue() {\n const { startDate, endDate } = this.value;\n if (!startDate || !endDate) {\n this.ngControl?.control?.setErrors({\n dateRange: true\n });\n }\n }\n\n writeValue(value: any): void {\n if (this._value !== value && value !== undefined) {\n this._value = value;\n this.handleValue(value);\n this._onChange(value);\n this._onTouched(value);\n }\n }\n\n onOpenPopover() {\n if (!this.disabled) {\n this.showPopOver = true;\n }\n }\n\n onHandleDate(event: any) {\n try {\n this.value = null;\n const { startDate, endDate } = event;\n this.value = event;\n if (startDate && endDate) {\n this.closePopOver();\n }\n } catch (e) {\n // not to do\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 './input-date-range.component';\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 { CommonModule } from '@angular/common';\nimport {\n AfterContentInit,\n booleanAttribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n DestroyRef,\n ElementRef,\n EventEmitter,\n inject,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n QueryList,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewContainerRef,\n ViewEncapsulation\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport {\n ControlValueAccessor,\n FormsModule,\n NgControl,\n ReactiveFormsModule,\n Validators\n} from '@angular/forms';\nimport { debounceTime, Subject } from 'rxjs';\nimport { normalizeStringToSearch, sanitizeString, UtilIconComponent } from '../../../utils';\nimport { IdGenerator } from '../../../utils/id-generator';\nimport { MonkeyDictionaryService } from '../../services/dictionary.service';\nimport { MonkeyFormFieldControl } from '../form-field/form-field-control';\nimport { MonkeyFormFieldComponent } from '../form-field/form-field.component';\nimport { MonkeyOptionComponent } from '../option/option.component';\n\n@Component({\n selector: 'monkey-select',\n imports: [CommonModule, ReactiveFormsModule, FormsModule, UtilIconComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: 'select.component.html',\n styleUrls: ['./select.component.scss'],\n encapsulation: ViewEncapsulation.None,\n providers: [\n // eslint-disable-next-line no-use-before-define\n { provide: MonkeyFormFieldControl, useExisting: MonkeySelectComponent }\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\n MonkeyFormFieldControl,\n ControlValueAccessor,\n AfterContentInit,\n OnInit,\n OnDestroy,\n 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 showSearch = true;\n\n @Input()\n searchPlaceholder = '';\n\n @Input()\n type = 'select';\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 private _destroyRef = inject(DestroyRef);\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 searchHandle = new EventEmitter<string>();\n\n readonly searchDictionary = inject(MonkeyDictionaryService).get('NO-DATA');\n\n readonly loadingDictionary = inject(MonkeyDictionaryService).get('LOADING');\n\n showSearchNoData = false;\n\n isOpen = false;\n\n searchData = '';\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(): void {\n setTimeout(() => {\n if (!this.options) return;\n\n if (this.type === 'checkbox') {\n const selectedValues = this.getComparationValue();\n this.options.forEach((opt) => {\n if (!opt.disabled) {\n opt.selected = selectedValues.includes(String(opt.value()));\n }\n });\n } else {\n this.options.forEach((opt) => {\n opt.selected = String(opt.value()) === this.value;\n });\n }\n\n this.changeDetectorRef.markForCheck();\n });\n }\n\n private initializeOptions() {\n setTimeout(() => {\n this.options.forEach((option) => {\n option.type = this.type;\n if (!option.action) {\n option.action = this.selectOption.bind(this, option);\n }\n });\n this.changeDetectorRef.detectChanges();\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.isOpen = false;\n this.focused = false;\n this.formField.control.disableToBeDirty = false;\n this.searchData = '';\n this.changeDetectorRef.markForCheck();\n }\n\n private closeOverlay(): void {\n if (this.overlayRef) {\n this.overlayRef.dispose();\n this.overlayRef = null;\n }\n }\n\n private initializeWithOverlay() {\n if (this.showSearch) {\n const element = this.overlayRef?.overlayElement.querySelector(\n `#${this.id}-search`\n ) as HTMLElement;\n\n this.options.forEach((opt) => {\n const element = this.overlayRef?.overlayElement.querySelector(\n `#${opt.id}`\n ) as HTMLElement | null;\n if (!element) return;\n element.style.display = '';\n });\n\n setTimeout(() => {\n element?.focus();\n }, 0);\n this.showSearchNoData = false;\n }\n\n setTimeout(() => {\n const selected = this.options.find((opt) => {\n return opt.selected;\n });\n\n if (selected) {\n const element = this.overlayRef?.overlayElement.querySelector(\n `#${selected.id}`\n ) as HTMLElement;\n element?.scrollIntoView({ behavior: 'instant', block: 'center' });\n }\n }, 0);\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(takeUntilDestroyed(this._destroyRef))\n .subscribe(() => {\n return this.closeDropdown();\n });\n\n this.initializeWithOverlay();\n }\n\n private updateSelectedLabel(): void {\n if (!this.options) return;\n\n if (this.type === 'checkbox') {\n const selectedValues = this.getComparationValue();\n\n const selectedOptions = this.options.filter((opt) => {\n return selectedValues.includes(String(opt.value()));\n });\n\n const maxToShow = 3;\n const displayContents = selectedOptions.slice(0, maxToShow).map((opt) => {\n return opt.displayContent;\n });\n\n const hasMore = selectedOptions.length > maxToShow;\n\n this.labelSelected = hasMore\n ? `${displayContents.join(', ')}...`\n : displayContents.join(', ');\n } else {\n const selectedOption = this.options.find((opt) => {\n return String(opt.value()) === this.value;\n });\n this.labelSelected = selectedOption ? selectedOption.displayContent : '';\n }\n\n this.changeDetectorRef.markForCheck();\n }\n\n private executeSearch(search: string): void {\n let found = false;\n this.options.forEach((opt) => {\n const element = this.overlayRef?.overlayElement.querySelector(\n `#${opt.id}`\n ) as HTMLElement | null;\n\n if (!element) return;\n\n const isMatch = normalizeStringToSearch(opt.displayContent).includes(\n normalizeStringToSearch(search)\n );\n if (isMatch) {\n found = true;\n }\n element.style.display = isMatch ? '' : 'none';\n });\n\n this.repositionScroll();\n this.showSearchNoData = !found;\n }\n\n private repositionScroll() {\n const overlayElement = this.overlayRef?.overlayElement.querySelector(\n '.mecx-select-overlay'\n ) as HTMLElement;\n\n if (overlayElement) {\n overlayElement.scrollTop = 0;\n }\n }\n\n private getComparationValue() {\n return (this.value || '')\n .split(',')\n .map((v: string) => {\n return v.trim();\n })\n .filter(Boolean);\n }\n\n ngOnInit() {\n this.searchHandle\n .pipe(debounceTime(200), takeUntilDestroyed(this._destroyRef))\n .subscribe((search: string) => {\n this.executeSearch(search);\n });\n }\n\n ngAfterContentInit() {\n this.initializeOptions();\n this.updateSelectedLabel();\n\n this.options.changes.pipe(takeUntilDestroyed(this._destroyRef)).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 onAnimationEnd = (event: any) => {\n if (event.toState === 'closed') {\n this.closeOverlay();\n }\n };\n\n selectOption(option: MonkeyOptionComponent): void {\n if (option.disabled || this.disabled) return;\n\n if (this.type === 'checkbox') {\n const values = this.getComparationValue();\n const index = values.indexOf(`${option.value()}`);\n\n if (index === -1) {\n values.push(`${option.value()}`);\n option.selected = true;\n } else {\n values.splice(index, 1);\n option.selected = false;\n }\n\n this.value = values.join(',');\n } else {\n this.value = `${option.value()}`;\n\n this.options.forEach((opt) => {\n opt.selected = `${opt.value()}` === `${this.value}`;\n });\n\n this.closeDropdown();\n this._onChange(this.value);\n this.onChange.emit(this.value);\n }\n\n this.updateSelectedLabel();\n }\n\n writeValue(value: any): void {\n this.value = value;\n this.changeSelected();\n this.updateSelectedLabel();\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 onHandleSearch(event: Event) {\n try {\n const { value } = event.target as HTMLInputElement;\n const handled = sanitizeString(value);\n this.searchHandle.next(handled || '');\n } catch (e) {\n // not to do\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 <util-icon class=\"mecx-select-icon\" name=\"arrowDown\" />\n }\n</div>\n\n<ng-template #overlayTemplate>\n <div class=\"mecx-select-body-overlay\">\n @if (showSearch) {\n <div class=\"mecx-select-search\">\n <util-icon class=\"mecx-select-search-icon\" name=\"search\" />\n <input\n (input)=\"onHandleSearch($event)\"\n type=\"text\"\n [id]=\"id + '-search'\"\n autocomplete=\"off\"\n maxlength=\"50\"\n [placeholder]=\"searchPlaceholder\"\n [(ngModel)]=\"searchData\"\n />\n </div>\n }\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 @if (showSearch && showSearchNoData) {\n <div class=\"mecx-select-search-no-data\">\n <util-icon class=\"mecx-select-search-no-data-icon\" name=\"searchFail\" />\n {{ searchDictionary | async }}\n </div>\n }\n @if (loading) {\n <div class=\"mecx-select-search-loading\">\n {{ loadingDictionary | async }}\n </div>\n }\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 ************************* */\nexport * from './select.component';\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 {\n AfterContentInit,\n booleanAttribute,\n Component,\n ElementRef,\n inject,\n Input,\n LOCALE_ID,\n OnChanges,\n OnDestroy,\n QueryList,\n SimpleChanges,\n ViewChildren\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n FormsModule,\n NgControl,\n ReactiveFormsModule,\n Validators\n} from '@angular/forms';\nimport parsePhoneNumberFromString, {\n AsYouType,\n CountryCode,\n getCountries,\n getCountryCallingCode,\n getExampleNumber\n} from 'libphonenumber-js';\nimport examples from 'libphonenumber-js/examples.mobile.json';\nimport { isValidPhoneNumber } from 'libphonenumber-js/max';\nimport { Subject } from 'rxjs';\nimport { IdGenerator } from '../../../utils';\nimport { MECX_COUNTRY_ISO_CODE } from '../../tokens';\nimport { MonkeyFormFieldControl, MonkeyFormFieldModule } from '../form-field';\nimport { MonkeyOptionComponent } from '../option';\nimport { MonkeySelectComponent } from '../select';\n\ninterface Country {\n iso: string;\n code: string;\n name: string;\n flag: string;\n}\n\n@Component({\n selector: 'monkey-input-phone',\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n MonkeySelectComponent,\n MonkeyOptionComponent,\n MonkeyFormFieldModule\n ],\n template: `\n <monkey-select\n placeholder=\"\"\n [disabled]=\"disabled\"\n showSearch\n [(ngModel)]=\"selectedCallingCode\"\n class=\"mecx-phone-select-country\"\n (onChange)=\"onCountryChange()\"\n >\n @for (item of countries; track $index) {\n <monkey-option [value]=\"item.iso\">\n <span class=\"option-flag\">{{ item.flag }}</span>\n <div class=\"option-name\">{{ item.name }} {{ item.code }}</div>\n </monkey-option>\n }\n </monkey-select>\n <input\n #input\n type=\"tel\"\n class=\"mecx-input\"\n [disabled]=\"disabled\"\n [placeholder]=\"placeholder\"\n (input)=\"onInputChange($event)\"\n [ngModel]=\"phoneFormatted\"\n [maxlength]=\"getMaxLength()\"\n (focus)=\"_onFocus()\"\n (blur)=\"_onBlur()\"\n [attr.id]=\"inputId\"\n />\n `,\n styleUrl: './input-phone.component.scss',\n providers: [\n // eslint-disable-next-line no-use-before-define\n { provide: MonkeyFormFieldControl, useExisting: MonkeyInputPhoneComponent }\n ],\n host: {\n '[attr.data-testid]': \"'monkey-input-phone'\",\n class: 'mecx-input-phone',\n '[class.mecx-input-phone-disabled]': '_disabled',\n '[class.mecx-input-phone-focused]': 'focused',\n '[attr.id]': 'id',\n '[attr.tabindex]': 'disabled ? -1 : tabIndex',\n '(focus)': '_onFocus()',\n '(blur)': '_onBlur()'\n }\n})\nexport class MonkeyInputPhoneComponent\n implements MonkeyFormFieldControl, ControlValueAccessor, AfterContentInit, OnDestroy, OnChanges\n{\n @Input() placeholder: string = '';\n\n @Input() tabIndex = 0;\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 _disabled: boolean = false;\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 this._value = value;\n this.formatValue(value);\n this._onChange(value);\n this._onTouched(value);\n }\n\n get value(): any {\n return this._value;\n }\n\n _value: string | null = null;\n\n constructor() {\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n ngControl: NgControl | null = inject(NgControl, { self: true, optional: true })!;\n\n private readonly idGenerator = inject(IdGenerator);\n\n private readonly countryIsoCode = inject(MECX_COUNTRY_ISO_CODE);\n\n private readonly locale = inject(LOCALE_ID);\n\n readonly id: string = this.idGenerator.getId('monkey-input-phone-');\n\n readonly inputId: string = this.idGenerator.getId('monkey-input-phone-input-');\n\n focused: boolean = false;\n\n readonly type: string = 'input-phone';\n\n readonly stateChanges = new Subject<void>();\n\n countries: Country[] = getCountries()\n .map((code) => {\n return {\n iso: code,\n code: `+${getCountryCallingCode(code)}`,\n name: this.getCountryNameFromCode(code),\n flag: `${this.isoToFlagEmoji(code)} `\n };\n })\n .sort((a, b) => {\n return a.name.localeCompare(b.name);\n });\n\n selectedCallingCode = this.countryIsoCode.toString();\n\n phoneFormatted = '';\n\n phoneValid = false;\n\n @ViewChildren('input') inputs!: QueryList<ElementRef<HTMLInputElement>>;\n\n private getCountryNameFromCode(code: string) {\n try {\n const locale = this.locale.toString();\n const display = new Intl.DisplayNames([locale], { type: 'region' });\n return display.of(code.toUpperCase()) || code;\n } catch {\n return code;\n }\n }\n\n private getCountryByCallingCode(code: string): CountryCode | null {\n const cleanCode = code.replace('+', '');\n\n return (\n getCountries().find((country) => {\n return country === cleanCode;\n }) || null\n );\n }\n\n private isoToFlagEmoji(isoCode: string): string {\n return isoCode.toUpperCase().replace(/./g, (char) => {\n return String.fromCodePoint(127397 + char.charCodeAt(0));\n });\n }\n\n private getCountryFromPhoneNumber(input: string, changedCountry: boolean): string {\n try {\n if (changedCountry) {\n return this.selectedCallingCode;\n }\n\n const parsed = parsePhoneNumberFromString(input);\n return parsed!.country as string;\n } catch (e) {\n // not to do\n }\n\n return this.selectedCallingCode;\n }\n\n private performValue(value: string) {\n const countryCode = `+${getCountryCallingCode(this.selectedCallingCode as CountryCode)}`;\n\n this._value = `${countryCode}${value}`;\n this._onChange(this._value);\n this._onTouched(this._value);\n }\n\n private validateValue() {\n const { phoneValid } = this;\n if (!phoneValid) {\n const countryCode = this.selectedCallingCode as CountryCode;\n const example = getExampleNumber(countryCode!, examples);\n\n const formatter = new AsYouType(countryCode);\n const phoneAllowed = formatter.input(example!.nationalNumber);\n\n this.ngControl?.control?.setErrors({\n phone: true,\n phoneAllowed\n });\n }\n }\n\n private formatValue(value: string, changedCountry = false) {\n if (!value) {\n this.phoneFormatted = '';\n this.phoneValid = false;\n this.validateValue();\n return;\n }\n\n const detectedCallingCode = this.getCountryFromPhoneNumber(value, changedCountry);\n const isCountryChanged = changedCountry || detectedCallingCode !== this.selectedCallingCode;\n\n if (isCountryChanged && detectedCallingCode) {\n this.selectedCallingCode = detectedCallingCode;\n }\n\n const countryCode = `+${getCountryCallingCode(this.selectedCallingCode as CountryCode)}`;\n\n if (!countryCode) {\n this.phoneFormatted = value;\n this.phoneValid = false;\n this.validateValue();\n return;\n }\n\n let nationalPart = value.replace(this.selectedCallingCode, '').replace(/[^\\d+]/g, '');\n nationalPart = nationalPart.replace(countryCode, '');\n\n const formatter = new AsYouType(this.selectedCallingCode as CountryCode);\n this.phoneFormatted = formatter.input(nationalPart);\n\n this.performValue(nationalPart);\n\n this.phoneValid = isValidPhoneNumber(nationalPart, this.selectedCallingCode as CountryCode);\n this.validateValue();\n }\n\n disableToBeDirty?: boolean | undefined;\n\n _onChange: any = () => {};\n\n _onTouched: any = () => {};\n\n ngAfterContentInit(): void {}\n\n ngOnChanges(changes: SimpleChanges): void {}\n\n ngOnDestroy(): void {}\n\n onContainerClick(event: MouseEvent): void {\n this.inputs.first.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 this.validateValue();\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 setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled;\n }\n\n writeValue(value: any): void {\n this.value = value;\n }\n\n onInputChange(event: Event) {\n const { value } = event.target as HTMLInputElement;\n this.formatValue(value);\n }\n\n onCountryChange() {\n this.formatValue(this._value!, true);\n this.validateValue();\n }\n\n getMaxLength(): number {\n try {\n const countryCode = this.getCountryByCallingCode(this.selectedCallingCode);\n\n if (!countryCode) return 20;\n\n const example = getExampleNumber(countryCode, examples);\n const formatted = new AsYouType(countryCode).input(example!.nationalNumber);\n\n return formatted.length;\n } catch {\n return 20;\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 './input-phone.component';\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 booleanAttribute,\n Component,\n ElementRef,\n EventEmitter,\n inject,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n SimpleChanges,\n ViewChild\n} from '@angular/core';\nimport { ControlValueAccessor, NgControl, Validators } from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { formatFileSize, getFileExtension, IdGenerator } from '../../../utils';\nimport { MonkeyFormFieldControl } from '../form-field';\n\n// eslint-disable-next-line no-use-before-define\nexport type MonkeyInputUploadChangeEvent = { component: MonkeyInputUploadComponent; file: File };\n\n@Component({\n selector: 'monkey-input-upload',\n imports: [],\n template: `\n <div class=\"mecx-input-upload-value\" [class.has-value]=\"value\">\n {{ value?.filename || value?.fileName || placeholder }}\n </div>\n <input\n (change)=\"onFileSelected($event)\"\n type=\"file\"\n class=\"file-input\"\n #fileInput\n [accept]=\"allowedExtensions.join(',')\"\n />\n @if (loading) {\n <div class=\"progress\">\n <div class=\"progress-bar\" [style.width.%]=\"progress\"></div>\n </div>\n }\n `,\n styleUrl: './input-upload.component.scss',\n providers: [\n // eslint-disable-next-line no-use-before-define\n { provide: MonkeyFormFieldControl, useExisting: MonkeyInputUploadComponent }\n ],\n host: {\n '[attr.data-testid]': \"'monkey-input-upload'\",\n class: 'mecx-input-upload',\n '[class.mecx-input-upload-disabled]': '_disabled',\n '[class.mecx-input-upload-focused]': 'focused',\n '[attr.id]': 'id',\n '[attr.tabindex]': 'disabled ? -1 : tabIndex',\n '(focus)': '_onFocus()',\n '(blur)': '_onBlur()'\n }\n})\nexport class MonkeyInputUploadComponent\n implements MonkeyFormFieldControl, ControlValueAccessor, AfterContentInit, OnDestroy, OnChanges\n{\n @ViewChild('fileInput') fileInput!: ElementRef<HTMLInputElement>;\n\n @Input() progress: number = 0;\n\n @Input() placeholder: string = '';\n\n @Input() maxSizeBytes = 5 * 1024 * 1024;\n\n @Input() allowedExtensions = ['.jpg', '.jpeg', '.png', '.pdf', '.txt', '.xls', '.xlsx'];\n\n @Input({ transform: booleanAttribute })\n loading = false;\n\n @Input() tabIndex = 0;\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 _disabled: boolean = false;\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 && value !== undefined) {\n this._value = value;\n this._onChange(value);\n this._onTouched(value);\n }\n }\n\n get value(): any {\n return this._value;\n }\n\n _value = null;\n\n constructor() {\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n @Output() onChange = new EventEmitter<MonkeyInputUploadChangeEvent>();\n\n ngControl: NgControl | null = inject(NgControl, { self: true, optional: true })!;\n\n private readonly idGenerator = inject(IdGenerator);\n\n readonly id: string = this.idGenerator.getId('monkey-input-upload-');\n\n focused: boolean = false;\n\n readonly type: string = '';\n\n currency: boolean = false;\n\n readonly percent: boolean = false;\n\n readonly stateChanges = new Subject<void>();\n\n private validateFileSize(file: File): boolean {\n return file.size <= this.maxSizeBytes;\n }\n\n private validateFileExtension(file: File): boolean {\n if (!this.allowedExtensions || !this.allowedExtensions.length) {\n return true;\n }\n const fileExtension = getFileExtension(file.name);\n\n const allowedExts = this.allowedExtensions.map((ext) => {\n return ext.trim().replace('.', '').toLowerCase();\n });\n\n return allowedExts.includes(fileExtension);\n }\n\n onContainerClick(event: MouseEvent): void {\n if (!this.loading) {\n this.fileInput.nativeElement.click();\n }\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 disableToBeDirty?: boolean | undefined;\n\n _onChange: any = () => {};\n\n _onTouched: any = () => {};\n\n ngAfterContentInit(): void {}\n\n ngOnChanges(changes: SimpleChanges): void {}\n\n ngOnDestroy(): void {}\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 if (this.fileInput) {\n this.fileInput.nativeElement.disabled = isDisabled;\n }\n }\n\n writeValue(value: any): void {\n this.value = value;\n }\n\n reset(): void {\n if (this.fileInput) {\n this.fileInput.nativeElement.value = '';\n }\n }\n\n onFileSelected(event: Event) {\n const input = event.target as HTMLInputElement;\n this._onTouched();\n if (!input.files?.length) {\n return;\n }\n\n const file = input.files.item(0);\n\n if (this.fileInput) {\n this.fileInput.nativeElement.value = '';\n }\n\n if (!this.validateFileSize(file!)) {\n this.ngControl?.control?.setErrors({\n maxFileSize: true,\n sizeAllowed: formatFileSize(this.maxSizeBytes)\n });\n this._onBlur();\n this.reset();\n return;\n }\n\n if (!this.validateFileExtension(file!)) {\n this.ngControl?.control?.setErrors({\n fileExtension: true,\n extensionAllowed: this.allowedExtensions.join(', ')\n });\n this._onBlur();\n this.reset();\n return;\n }\n\n this.ngControl?.control?.setErrors(null);\n\n this._onBlur();\n if (this.onChange.observed) {\n this.onChange.emit({ component: this, file: file! });\n } else {\n this.value = {\n fileName: file!.name,\n file\n };\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 './input-upload.component';\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 standalone: false\n})\nexport class MonkeyModalActionsDirective {\n @Input() mkAlign: 'start' | 'center' | 'end' = 'end';\n\n id = inject(IdGenerator).getId('monkey-modal-actions-');\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 standalone: false\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 } 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 standalone: false\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-title, [monkey-modal-title]',\n host: {\n class: 'mecx-modal-title',\n '[attr.id]': 'id || null'\n },\n standalone: false\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 { 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 disableBackdropClose?: boolean = false;\n\n maxWidth?: number | string;\n\n maxHeight?: number | string;\n\n fullscreen?: boolean = false;\n\n position?:\n | 'left-top'\n | 'center-top'\n | 'right-top'\n | 'left-center'\n | 'center-center'\n | 'right-center'\n | 'left-bottom'\n | 'center-bottom'\n | 'right-bottom' = 'center-center';\n\n data?: any | null = null;\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\nexport interface MonkeyModalConfirmationConfig {\n title: string;\n content: string;\n cancelLabel: string;\n okLabel: string;\n type?: 'error' | 'success' | 'warning';\n confirmColor?: 'error' | 'success' | 'theme';\n icon?: 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 { 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 disableBackdropClose: boolean | undefined;\n\n closeOnNavigation: boolean | undefined;\n\n componentElement!: HTMLElement;\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.disableBackdropClose = config.disableBackdropClose;\n this.closeOnNavigation = config.closeOnNavigation;\n this.backdropClick = overlayRef.backdropClick();\n this.keydownEvents = overlayRef.keydownEvents();\n this.outsidePointerEvents = overlayRef.outsidePointerEvents();\n\n if (!this.disableBackdropClose) {\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\n close(result?: any): void {\n if (this.componentInstance) {\n const closedSubject = this.closed as Subject<any>;\n\n const active = document.activeElement as HTMLElement;\n if (active && this.componentElement.contains(active)) {\n active.blur();\n }\n\n this.componentElement.querySelectorAll('monkey-modal')[0].classList.add('fade-out');\n setTimeout(() => {\n this.overlayRef.detach();\n }, 150);\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 { OverlayRef } from '@angular/cdk/overlay';\nimport {\n AfterViewInit,\n Component,\n ElementRef,\n inject,\n OnDestroy,\n Optional,\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 </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.component.scss',\n standalone: false\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 @Optional() public overlayRef?: OverlayRef,\n @Optional() public modalRef?: MonkeyModalRef\n ) {\n // not to do\n }\n\n ngAfterViewInit(): void {\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 const element = this._elementRef.nativeElement as HTMLElement;\n\n element.classList.add('fade-out');\n\n setTimeout(() => {\n this.modalRef?.close();\n }, 150);\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';\nimport { MonkeyModalConfirmationConfig, MonkeyModalDefaultConfig } from './modal-config';\n\nexport const MECX_MODAL_DATA = new InjectionToken<any>('mecxModalData');\nexport const MECX_MODAL_DEFAULT_CONFIG = new InjectionToken<MonkeyModalDefaultConfig>(\n 'mecxModalDefaultConfig'\n);\nexport const MECX_MODAL_CONFIRMATION_CONFIG = new InjectionToken<MonkeyModalConfirmationConfig>(\n 'mecxModalConfirmationConfig'\n);\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 ************************* */\nimport { 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 standalone: false\n})\nexport class MonkeyModalDefaultComponent {\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 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 ************************* */\nimport { Component, Inject, ViewEncapsulation } from '@angular/core';\nimport { MonkeyModalConfirmationConfig } from '../modal-config';\nimport { MonkeyModalRef } from '../modal-ref';\nimport { MECX_MODAL_CONFIRMATION_CONFIG } from '../utils';\n\n@Component({\n selector: 'monkey-modal-confirmation',\n encapsulation: ViewEncapsulation.None,\n styleUrls: ['./confirmation.component.scss'],\n template: `\n <monkey-modal class=\"modal-confirmation\">\n <monkey-modal-content>\n @if (config.icon) {\n <div class=\"modal-confirmation-icon {{ config.type }}\">\n <monkey-icon [icon]=\"config.icon\" size=\"xxl\"></monkey-icon>\n </div>\n }\n <div class=\"confirmation-title\" [innerHTML]=\"config.title\"></div>\n <div class=\"confirmation-description\" [innerHTML]=\"config.content\"></div>\n </monkey-modal-content>\n <monkey-modal-actions>\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 standalone: false\n})\nexport class MonkeyModalConfirmationComponent {\n constructor(\n @Inject(MECX_MODAL_CONFIRMATION_CONFIG) public config: MonkeyModalConfirmationConfig,\n @Inject(MonkeyModalRef) private modalRef: MonkeyModalRef\n ) {\n // not to do\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 { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MonkeyButtonComponent } from '../button';\nimport { MonkeyIconComponent } from '../icon';\nimport { MonkeyIconButtonComponent } from '../icon-button';\nimport { MonkeyModalDefaultComponent } from './components/default';\nimport { MonkeyModalConfirmationComponent } from './components/confirmation.component';\nimport { MonkeyModalActionsDirective } from './directives/actions';\nimport { MonkeyModalContentDirective } from './directives/content';\nimport { MonkeyModalSubtitleDirective } from './directives/subtitle';\nimport { MonkeyModalTitleDirective } from './directives/title';\nimport { MonkeyModalComponent } from './modal.component';\n\n@NgModule({\n imports: [CommonModule, MonkeyButtonComponent, MonkeyIconButtonComponent, MonkeyIconComponent],\n declarations: [\n MonkeyModalComponent,\n MonkeyModalDefaultComponent,\n MonkeyModalConfirmationComponent,\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 { MonkeyModalConfirmationComponent } from './components/confirmation.component';\nimport { MonkeyModalDefaultComponent } from './components/default';\nimport {\n MonkeyModalConfig,\n MonkeyModalConfirmationConfig,\n MonkeyModalDefaultConfig\n} from './modal-config';\nimport { MonkeyModalRef } from './modal-ref';\nimport {\n MECX_MODAL_CONFIRMATION_CONFIG,\n MECX_MODAL_DATA,\n MECX_MODAL_DEFAULT_CONFIG,\n reverseForEach\n} from './utils';\n\n@Injectable({ providedIn: 'root' })\nexport class MonkeyModalService {\n protected _idGenerator = inject(IdGenerator);\n\n protected _injector = inject(Injector);\n\n protected _overlay = inject(Overlay);\n\n protected _openDialogsAtThisLevel: MonkeyModalRef[] = [];\n\n protected _parentDialog = inject(MonkeyModalService, { optional: true, skipSelf: true });\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 let positionStrategy;\n const marginStrategy = '20px';\n if (config.position === 'left-top') {\n positionStrategy = this._overlay.position().global().left(marginStrategy).top(marginStrategy);\n } else if (config.position === 'center-top') {\n positionStrategy = this._overlay.position().global().centerHorizontally().top(marginStrategy);\n } else if (config.position === 'right-top') {\n positionStrategy = this._overlay\n .position()\n .global()\n .right(marginStrategy)\n .top(marginStrategy);\n } else if (config.position === 'left-center') {\n positionStrategy = this._overlay.position().global().left(marginStrategy).centerVertically();\n } else if (config.position === 'center-center') {\n positionStrategy = this._overlay.position().global().centerHorizontally().centerVertically();\n } else if (config.position === 'right-center') {\n positionStrategy = this._overlay.position().global().right(marginStrategy).centerVertically();\n } else if (config.position === 'left-bottom') {\n positionStrategy = this._overlay\n .position()\n .global()\n .left(marginStrategy)\n .bottom(marginStrategy);\n } else if (config.position === 'center-bottom') {\n positionStrategy = this._overlay.position().global().centerHorizontally().bottom('20px');\n } else if (config.position === 'right-bottom') {\n positionStrategy = this._overlay\n .position()\n .global()\n .right(marginStrategy)\n .bottom(marginStrategy);\n }\n\n let panelClass = ['monkey-modal-panel'];\n\n if (config.fullscreen) {\n panelClass.push('monkey-modal-fullscreen');\n }\n\n if (Array.isArray(config.panelClass)) {\n panelClass = [...panelClass, ...config.panelClass];\n } else {\n panelClass.push(config.panelClass as string);\n }\n\n const state = new OverlayConfig({\n positionStrategy,\n scrollStrategy: this._overlay.scrollStrategies.block(),\n panelClass,\n hasBackdrop: config.hasBackdrop,\n maxWidth: config.maxWidth,\n maxHeight: config.maxHeight,\n disposeOnNavigation: config.closeOnNavigation\n });\n\n if (config.backdropClass) {\n state.backdropClass = config.backdropClass;\n }\n\n if (config.maxWidth) {\n state.width = '100%';\n }\n if (config.maxHeight) {\n state.height = '100%';\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\n const componentElement = componentRef.location.nativeElement as HTMLElement;\n componentElement.style.width = '100%';\n componentElement.style.height = '100%';\n modalRef.componentElement = componentElement;\n\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 config.providers = [{ provide: MECX_MODAL_DEFAULT_CONFIG, useValue: params }];\n config.icon = config.icon ? config.icon : 'help';\n\n return this.open(MonkeyModalDefaultComponent, config);\n }\n\n openConfirmation(params: MonkeyModalConfirmationConfig, config: MonkeyModalConfig) {\n config.providers = [{ provide: MECX_MODAL_CONFIRMATION_CONFIG, useValue: params }];\n\n return this.open(MonkeyModalConfirmationComponent, 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 ************************* */\nexport * from './directives/actions';\nexport * from './directives/content';\nexport * from './directives/subtitle';\nexport * from './directives/title';\nexport * from './modal-config';\nexport * from './modal-ref';\nexport * from './modal.component';\nexport * from './modal.module';\nexport * from './modal.service';\nexport { MECX_MODAL_DATA, MECX_MODAL_DEFAULT_CONFIG } from './utils';\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 {\n AfterContentInit,\n booleanAttribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n DestroyRef,\n ElementRef,\n EventEmitter,\n HostBinding,\n inject,\n Input,\n Optional,\n Output,\n QueryList,\n ViewEncapsulation\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport {\n ControlValueAccessor,\n FormsModule,\n NgControl,\n ReactiveFormsModule,\n Validators\n} from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { IdGenerator } from '../../../utils/id-generator';\nimport { MonkeySize } from '../../interfaces';\nimport { MonkeyFormFieldControl } from '../form-field/form-field-control';\nimport { MonkeyFormFieldComponent } from '../form-field/form-field.component';\nimport { MonkeyOptionComponent } from '../option/option.component';\n\n@Component({\n selector: 'monkey-radiobutton',\n imports: [CommonModule, ReactiveFormsModule, FormsModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: 'radio-button.component.html',\n styleUrls: ['./radio-button.component.scss'],\n encapsulation: ViewEncapsulation.None,\n providers: [\n // eslint-disable-next-line no-use-before-define\n { provide: MonkeyFormFieldControl, useExisting: MonkeyRadioButtonComponent }\n ],\n host: {\n 'data-testid': 'monkey-radiobutton',\n class: 'mecx-radiobutton',\n '[class.mecx-disabled]': 'disabled',\n '[class.mecx-radiobutton-focused]': 'focused',\n '[attr.id]': 'id',\n '[attr.tabindex]': 'disabled ? -1 : tabIndex',\n '(focus)': '_onFocus()',\n '(blur)': '_onBlur()'\n }\n})\nexport class MonkeyRadioButtonComponent\n implements MonkeyFormFieldControl, ControlValueAccessor, AfterContentInit\n{\n @ContentChildren(MonkeyOptionComponent) options!: QueryList<MonkeyOptionComponent>;\n\n @Input() tabIndex = 0;\n\n @Output() onChange = new EventEmitter();\n\n @Output() onSearch = new EventEmitter();\n\n @Input() position = 'horizontal';\n\n @Input()\n size: MonkeySize = 'lg';\n\n @HostBinding('class')\n get classes() {\n return `${this.position} ${this.size}`;\n }\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 private _destroyRef = inject(DestroyRef);\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 focused: boolean = false;\n\n _disabled: boolean = false;\n\n readonly id: string = this.idGenerator.getId('monkey-radiobutton-');\n\n readonly stateChanges = new Subject<void>();\n\n readonly type: string = 'radio-button';\n\n constructor(\n private changeDetectorRef: ChangeDetectorRef,\n @Optional() private formField: MonkeyFormFieldComponent\n ) {\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\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 }\n this.changeDetectorRef.markForCheck();\n });\n }\n\n private initializeOptions() {\n setTimeout(() => {\n this.options?.forEach((option) => {\n option.type = 'radio';\n if (!option.action) {\n option.action = this.selectOption.bind(this, option);\n }\n });\n this.changeDetectorRef.markForCheck();\n }, 0);\n }\n\n ngAfterContentInit() {\n this.initializeOptions();\n this.options.changes.pipe(takeUntilDestroyed(this._destroyRef)).subscribe(() => {\n this.initializeOptions();\n this.changeSelected();\n });\n }\n\n selectOption(option: MonkeyOptionComponent): void {\n if (!option.disabled && !this.disabled) {\n this.value = option.value();\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 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._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 this.initializeOptions();\n }\n}\n","<ng-content />\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nexport * from './radio-button.component';\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 styleUrl: './security-level.component.scss',\n templateUrl: './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 ************************* */\nexport * from './security-level.component';\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 imports: [CommonModule],\n templateUrl: './status.component.html',\n styleUrl: './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 ************************* */\nexport * from './status.component';\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 inject,\n Input,\n QueryList\n} from '@angular/core';\nimport { IdGenerator } from '../../../../utils';\n\n@Component({\n selector: 'monkey-step',\n standalone: false,\n template: `\n <div\n class=\"item\"\n [class.active]=\"isActive\"\n [class.complete]=\"isComplete\"\n [class.current]=\"isCurrent\"\n [class.substep]=\"isSubStep\"\n >\n <div class=\"step\">\n <div class=\"number\" [class.icon]=\"!!icon\">\n @if (icon) {\n <monkey-icon size=\"sm\" [icon]=\"icon\" />\n } @else if (isComplete) {\n <util-icon name=\"check\" />\n } @else {\n {{ number }}\n }\n </div>\n </div>\n <div class=\"label\">\n <div>{{ label }}</div>\n @if (isCurrent) {\n <div class=\"current-icon\">\n <monkey-icon icon=\"arrow-line-right\" size=\"sm\" />\n </div>\n }\n </div>\n </div>\n @if (hasSubSteps && (isActive || isCurrent)) {\n <div class=\"substeps\">\n <ng-content />\n </div>\n }\n `,\n styleUrl: './step.component.scss',\n host: {\n 'data-testid': 'monkey-step',\n '[attr.id]': 'id',\n '[id]': 'id'\n }\n})\nexport class MonkeyStepComponent implements AfterContentInit {\n protected id = inject(IdGenerator).getId('monkey-step-');\n\n // eslint-disable-next-line no-use-before-define\n @ContentChildren(MonkeyStepComponent) subSteps!: QueryList<MonkeyStepComponent>;\n\n @Input() label = '';\n\n @Input() step = '';\n\n @Input() icon = '';\n\n number?: number = undefined;\n\n hasSubSteps = true;\n\n isSubStep = false;\n\n isCurrent = false;\n\n isComplete = false;\n\n isActive = false;\n\n ngAfterContentInit(): void {\n if (this.subSteps.length <= 0) {\n this.hasSubSteps = false;\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 {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n inject,\n Input,\n OnChanges,\n QueryList,\n ViewEncapsulation\n} from '@angular/core';\nimport { IdGenerator } from '../../../utils';\nimport { MonkeyStepComponent } from './step/step.component';\n\n@Component({\n selector: 'monkey-stepper',\n standalone: false,\n template: `<ng-content />`,\n styleUrl: './stepper.component.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'data-testid': 'monkey-stepper',\n '[attr.id]': 'monkeyId',\n '[id]': 'monkeyId',\n '[class.horizontal]': `direction === 'horizontal'`\n }\n})\nexport class MonkeyStepperComponent implements AfterContentInit, OnChanges {\n protected monkeyId = inject(IdGenerator).getId('monkey-stepper-');\n\n @ContentChildren(MonkeyStepComponent) steps!: QueryList<MonkeyStepComponent>;\n\n @Input() direction: 'horizontal' | 'vertical' = 'vertical';\n\n private _id = '';\n\n @Input()\n set id(value: string) {\n this._id = value;\n }\n\n get id() {\n return this._id;\n }\n\n @Input() currentStep? = '';\n\n ngAfterContentInit(): void {\n this.render();\n }\n\n ngOnChanges(): void {\n if (this.steps) {\n this.render();\n }\n }\n\n render() {\n let stepFound = false;\n\n this.steps.forEach((step, index) => {\n step.number = index + 1;\n\n step.isCurrent = this.currentStep === step.step;\n if (step.isCurrent) {\n stepFound = true;\n }\n\n if (step.hasSubSteps) {\n step.subSteps.forEach((subStep) => {\n subStep.isSubStep = true;\n subStep.isCurrent = this.currentStep === subStep.step;\n if (subStep.isCurrent) {\n stepFound = true;\n }\n subStep.isComplete = !stepFound;\n });\n\n step.isComplete = step.subSteps.toArray().every((_) => {\n return _.isComplete;\n });\n\n step.isActive = step.subSteps.toArray().some((_) => {\n return _.isCurrent;\n });\n } else {\n step.isComplete = !stepFound;\n }\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 { MonkeyStepperComponent } from './stepper.component';\nimport { MonkeyStepComponent } from './step/step.component';\nimport { UtilIconComponent } from '../../../utils';\nimport { MonkeyIconComponent } from '../icon';\n\n@NgModule({\n declarations: [MonkeyStepperComponent, MonkeyStepComponent],\n imports: [UtilIconComponent, MonkeyIconComponent],\n exports: [MonkeyStepperComponent, MonkeyStepComponent]\n})\nexport class MonkeyStepperModule {}\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 '../../../button';\n\n@Component({\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 '../../../form-field/form-field.module';\nimport { MonkeyOptionComponent } from '../../../option/option.component';\nimport { MonkeySelectComponent } from '../../../select/select.component';\n\n@Component({\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 size=\"sm\">\n <monkey-select\n placeholder=\"''\"\n [ngModel]=\"size\"\n (onChange)=\"onChange.next($event)\"\n [disabled]=\"disabled\"\n [showSearch]=\"false\"\n >\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.component.html',\n styleUrl: './table.component.scss',\n standalone: false\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 '../../checkbox';\nimport { MonkeyTableComponent } from '../table.component';\n\n@Directive({\n selector: '[mkChecked]',\n host: {\n class: 'mecx-column-checked'\n },\n standalone: false\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.component';\n\n@Directive({\n selector: '[mkExpansible]',\n host: {\n class: 'mecx-column-expansible'\n },\n standalone: false\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.component';\n\n@Directive({\n selector: '[mkSortable]',\n host: {\n class: 'mecx-column-sortable'\n },\n standalone: false\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 standalone: false\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 { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MonkeyButtonComponent } from '../button/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.component';\n\n@NgModule({\n imports: [\n CommonModule,\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","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nexport * from './components/pagination-action/pagination-action';\nexport * from './components/pagination-label/pagination-label';\nexport * from './components/pagination-size/pagination-size';\nexport * from './directives/column-checked';\nexport * from './directives/column-expansible';\nexport * from './directives/column-sortable';\nexport * from './directives/column-stick';\nexport * from './table.component';\nexport * from './table.module';\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 DestroyRef,\n Directive,\n ElementRef,\n HostBinding,\n inject,\n Inject,\n Input,\n OnInit,\n Optional\n} from '@angular/core';\nimport { NavigationEnd, Router } from '@angular/router';\nimport { filter } from 'rxjs';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Directive({\n selector: '[monkey-tab-link]',\n standalone: false\n})\nexport class MonkeyTabLinkDirective implements OnInit {\n @Input({ transform: booleanAttribute }) disabled: boolean = false;\n\n @HostBinding('class.disabled')\n get isDisabled() {\n return this.disabled;\n }\n\n @HostBinding('attr.tabindex')\n get tabIndex() {\n return this.disabled ? -1 : 0;\n }\n\n private destroyRef = inject(DestroyRef);\n\n private el = inject(ElementRef<HTMLAnchorElement>);\n\n constructor(@Optional() @Inject(Router) private router: Router) {\n // ignore\n }\n\n ngOnInit() {\n if (this.router) {\n this.updateActiveState();\n\n this.router.events\n .pipe(\n filter((event) => {\n return event instanceof NavigationEnd;\n }),\n takeUntilDestroyed(this.destroyRef)\n )\n .subscribe(() => {\n this.updateActiveState();\n });\n }\n }\n\n private updateActiveState() {\n if (this.disabled) return;\n\n const link = this.el.nativeElement;\n const routerLink = link.getAttribute('routerLink');\n\n if (routerLink && this.router) {\n const isActive =\n this.router.url === routerLink ||\n (routerLink !== '/' && this.router.url.startsWith(routerLink));\n\n if (isActive) {\n link.classList.add('active');\n } else {\n link.classList.remove('active');\n }\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 {\n booleanAttribute,\n Component,\n EventEmitter,\n HostBinding,\n Input,\n Output\n} from '@angular/core';\n\n@Component({\n selector: 'monkey-tab',\n standalone: false,\n template: `\n <button type=\"button\" [disabled]=\"disabled\" (click)=\"handleClick()\">\n <ng-content />\n </button>\n `,\n styles: [\n `\n :host {\n display: block;\n }\n `\n ]\n})\nexport class MonkeyTabComponent {\n @Input() value: string = '';\n\n @Input({ transform: booleanAttribute }) disabled: boolean = false;\n\n @Output() onClick = new EventEmitter<string>();\n\n @HostBinding('class.selected')\n isSelected: boolean = false;\n\n handleClick() {\n if (!this.disabled) {\n this.onClick.emit(this.value);\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 {\n AfterContentInit,\n AfterViewInit,\n booleanAttribute,\n Component,\n ContentChildren,\n DestroyRef,\n ElementRef,\n EventEmitter,\n inject,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n QueryList,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { MonkeyTabComponent } from './tab.component';\nimport { IdGenerator } from '../../../utils';\n\n@Component({\n selector: 'monkey-tabs',\n standalone: false,\n encapsulation: ViewEncapsulation.None,\n template: `\n @if (hasScroll) {\n <button\n class=\"scroll-arrow scroll-arrow-left\"\n [class.enabled]=\"enabledLeftArrow\"\n (click)=\"scrollLeft()\"\n type=\"button\"\n >\n ‹\n </button>\n }\n\n <div class=\"monkey-tabs-header\" #tabsHeader>\n <div\n class=\"monkey-tabs-content\"\n [class.full-width]=\"fullWidth\"\n [class]=\"position\"\n #tabsContent\n >\n <ng-content></ng-content>\n </div>\n </div>\n\n @if (hasScroll) {\n <button\n class=\"scroll-arrow scroll-arrow-right\"\n [class.enabled]=\"enabledRightArrow\"\n (click)=\"scrollRight()\"\n type=\"button\"\n >\n ›\n </button>\n }\n `,\n styleUrls: ['./tabs.component.scss'],\n host: {\n 'data-testid': 'monkey-tabs',\n '[attr.id]': 'monkeyId',\n '[id]': 'monkeyId'\n }\n})\nexport class MonkeyTabsComponent implements AfterContentInit, AfterViewInit, OnDestroy, OnChanges {\n protected monkeyId = inject(IdGenerator).getId('monkey-tabs-');\n\n @Input() selected: string = '';\n\n @Input({ transform: booleanAttribute }) fullWidth: boolean = false;\n\n @Input() position: 'start' | 'center' | 'end' = 'start';\n\n @Output() onChange = new EventEmitter<string>();\n\n @ContentChildren(MonkeyTabComponent) tabs!: QueryList<MonkeyTabComponent>;\n\n @ViewChild('tabsHeader') tabsHeader!: ElementRef<HTMLDivElement>;\n\n @ViewChild('tabsContent') tabsContent!: ElementRef<HTMLDivElement>;\n\n enabledLeftArrow = false;\n\n enabledRightArrow = false;\n\n hasScroll = false;\n\n scrollPosition = 0;\n\n private destroyRef = inject(DestroyRef);\n\n private resizeObserver?: ResizeObserver;\n\n private updateScrollPosition() {\n this.tabsContent.nativeElement.style.transform = `translateX(-${this.scrollPosition}px)`;\n this.updateScrollArrows();\n }\n\n private updateScrollArrows() {\n if (!this.tabsHeader || !this.tabsContent) return;\n\n const headerWidth = this.tabsHeader.nativeElement.offsetWidth;\n const contentWidth = this.tabsContent.nativeElement.scrollWidth;\n const maxScroll = contentWidth - headerWidth;\n\n this.hasScroll = maxScroll > 0;\n this.enabledLeftArrow = this.scrollPosition > 0;\n this.enabledRightArrow = this.scrollPosition < maxScroll && maxScroll > 0;\n }\n\n private selectTab(value: string) {\n this.selected = value;\n this.onChange.emit(value);\n this.updateTabSelection();\n }\n\n private updateTabSelection() {\n if (!this.tabs) return;\n\n this.tabs.forEach((tab) => {\n tab.isSelected = tab.value === this.selected;\n });\n }\n\n ngOnChanges() {\n this.updateTabSelection();\n }\n\n ngAfterViewInit() {\n if (typeof ResizeObserver !== 'undefined') {\n this.resizeObserver = new ResizeObserver(() => {\n this.updateScrollArrows();\n });\n this.resizeObserver.observe(this.tabsHeader.nativeElement);\n }\n\n setTimeout(() => {\n this.updateScrollArrows();\n }, 0);\n }\n\n ngAfterContentInit() {\n this.updateTabsEvents();\n }\n\n updateTabsEvents() {\n this.tabs.forEach((tab) => {\n tab.onClick.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((value: string) => {\n this.selectTab(value);\n });\n });\n\n this.updateTabSelection();\n }\n\n scrollLeft() {\n const headerWidth = this.tabsHeader.nativeElement.offsetWidth;\n const scrollAmount = headerWidth * 0.8;\n this.scrollPosition = Math.max(0, this.scrollPosition - scrollAmount);\n this.updateScrollPosition();\n }\n\n scrollRight() {\n const headerWidth = this.tabsHeader.nativeElement.offsetWidth;\n const contentWidth = this.tabsContent.nativeElement.scrollWidth;\n const maxScroll = contentWidth - headerWidth;\n const scrollAmount = headerWidth * 0.8;\n this.scrollPosition = Math.min(maxScroll, this.scrollPosition + scrollAmount);\n this.updateScrollPosition();\n }\n\n ngOnDestroy() {\n this.resizeObserver?.disconnect();\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 { MonkeyTabsComponent } from './tabs.component';\nimport { MonkeyTabComponent } from './tab.component';\nimport { MonkeyTabLinkDirective } from './tab-link.directive';\n\n@NgModule({\n declarations: [MonkeyTabsComponent, MonkeyTabComponent, MonkeyTabLinkDirective],\n exports: [MonkeyTabsComponent, MonkeyTabComponent, MonkeyTabLinkDirective]\n})\nexport class MonkeyTabsModule {}\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 ElementRef,\n EventEmitter,\n HostBinding,\n inject,\n Input,\n Output,\n ViewEncapsulation\n} from '@angular/core';\nimport { IdGenerator } from '../../../utils';\nimport { UtilIconComponent } from '../../../utils/icon';\nimport { type MonkeyToastType } from '../../interfaces';\nimport { MonkeyButtonComponent } from '../button';\nimport { MonkeyIconComponent } from '../icon';\n\n@Component({\n selector: 'monkey-toast',\n imports: [MonkeyButtonComponent, MonkeyIconComponent, UtilIconComponent],\n templateUrl: './toast.component.html',\n styleUrl: './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: MonkeyToastType = '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=\"monkey-toast-content\">\n @if (icon) {\n <monkey-icon [icon]=\"icon\" size=\"lg\"></monkey-icon>\n }\n <div>\n <div class=\"monkey-toast-message\">\n {{ message }}\n </div>\n @if (actionLabel) {\n <div class=\"monkey-toast-action\">\n <monkey-button\n class=\"monkey-toast-btn-action\"\n type=\"tertiary\"\n size=\"sm\"\n (click)=\"onActionClick.emit(id)\"\n >\n {{ actionLabel }}\n @if (actionIcon) {\n <monkey-icon [icon]=\"actionIcon\" size=\"xs\" first></monkey-icon>\n }\n </monkey-button>\n </div>\n }\n </div>\n</div>\n@if (isClosable) {\n <div class=\"monkey-toast-divider\"></div>\n <div class=\"monkey-toast-close\" (click)=\"close()\">\n <util-icon name=\"clear\" />\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 ************************* */\nexport * from './toast.component';\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 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 imports: [CommonModule],\n templateUrl: './toggle.component.html',\n styleUrl: './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 ************************* */\nexport * from './toggle.component';\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: './toggle-line-button.component.html',\n styleUrl: './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 ************************* */\nexport * from './toggle-line-button.component';\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 './toggle-line-button';\n\n@Component({\n selector: 'monkey-toggle-line',\n imports: [CommonModule],\n templateUrl: './toggle-line.component.html',\n styleUrl: './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","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nexport * from './toggle-line-button';\nexport * from './toggle-line.component';\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { 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 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}\n@if (text) {\n {{ text }}\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 './tooltip.component';\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 ApplicationRef,\n booleanAttribute,\n ComponentRef,\n Directive,\n ElementRef,\n HostListener,\n Inject,\n Input,\n TemplateRef,\n ViewContainerRef,\n DOCUMENT\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 @HostListener('window:scroll')\n @HostListener('window:resize')\n onScroll() {\n this.hide();\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 './tooltip';\nexport * from './tooltip.directive';\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 ElementRef,\n HostBinding,\n HostListener,\n inject,\n Input,\n ViewEncapsulation\n} from '@angular/core';\nimport { IdGenerator, UtilIconComponent } from '../../../utils';\nimport { MonkeySize } from '../../interfaces';\nimport { MonkeyAvatarComponent } from '../avatar';\nimport { MonkeyDirectivesModule } from '../../directives';\n\n@Component({\n encapsulation: ViewEncapsulation.None,\n imports: [MonkeyAvatarComponent, UtilIconComponent, MonkeyDirectivesModule],\n selector: 'monkey-user-profile-button',\n styleUrl: './user-profile-button.component.scss',\n template: `\n <monkey-avatar [size]=\"size\" [src]=\"iconName ? { iconName } : { name }\" />\n <div class=\"lh-24 text-truncate flex-grow-1 fs-xxs text-gray-900\">\n {{ name }}\n </div>\n <util-icon class=\"arrow\" name=\"arrowDown\" />\n\n <ng-template\n [monkeyPopover]=\"open\"\n [monkeyPopoverTarget]=\"elementRef.nativeElement\"\n [monkeyPopoverClosed]=\"handleClose\"\n monkeyPopoverDir=\"rtl\"\n [monkeyPopoverHideHeader]=\"true\"\n >\n <div class=\"context-menu\" (click)=\"open = false\">\n <ng-content />\n </div>\n </ng-template>\n `,\n host: {\n 'data-testid': 'monkey-user-profile-button',\n '[attr.id]': 'id',\n '[id]': 'id',\n '[class.open]': 'open'\n }\n})\nexport class MonkeyUserProfileButtonComponent {\n protected _uid = inject(IdGenerator).getId('monkey-user-profile-button-');\n\n public elementRef = inject(ElementRef);\n\n @HostBinding('class')\n @Input()\n size: MonkeySize = 'xs';\n\n @Input({ required: true }) name!: string;\n\n @Input() iconName: string = '';\n\n protected _id!: string;\n\n open = false;\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: MouseEvent): void {\n event.stopPropagation();\n event.preventDefault();\n\n this.open = true;\n }\n\n handleClose = () => {\n this.open = false;\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 './user-profile-button.component';\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nexport * from './accordion';\nexport * from './action-bar';\nexport * from './alert';\nexport * from './autocomplete';\nexport * from './autocomplete-address';\nexport * from './avatar';\nexport * from './badge';\nexport * from './breadcrumb';\nexport * from './button';\nexport * from './checkbox';\nexport * from './date-range';\nexport * from './divider';\nexport * from './download-button';\nexport * from './filter-bar';\nexport * from './form-field';\nexport * from './icon';\nexport * from './icon-button';\nexport * from './input';\nexport * from './input-code';\nexport * from './input-date-range';\nexport * from './input-phone';\nexport * from './input-upload';\nexport * from './modal';\nexport * from './option';\nexport * from './radio-button';\nexport * from './security-level';\nexport * from './select';\nexport * from './status';\nexport * from './stepper';\nexport * from './table';\nexport * from './tabs';\nexport * from './toast';\nexport * from './toggle';\nexport * from './toggle-line';\nexport * from './tooltip';\nexport * from './user-profile-button';\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';\nexport * from './lib/tokens';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.UtilIconComponent","i1.MonkeyFormFieldComponent","i2","i4.MonkeyPopoverDirective","Utils.buildMonthByDays","Utils.getEnumKeys","Utils.QuickActionsEnum","Utils.parseStringDate","Utils.getDefaultdates","Utils.buildCalendars","i3.MonkeyInputDirective","i4.MonkeyFormFieldComponent","i5.MonkeyErrorDirective","i6.MonkeyLabelDirective","i2.MonkeyPopoverDirective","i3.MonkeyPopoverDirective","i1","i2.MonkeyFormFieldComponent","i4","i2.MonkeyModalRef","i3.MonkeyIconButtonComponent","i4.MonkeyIconComponent","i1.MonkeyButtonComponent","i2.MonkeyModalComponent","i3.MonkeyModalTitleDirective","i4.MonkeyModalSubtitleDirective","i5.MonkeyModalContentDirective","i6.MonkeyModalActionsDirective","i2.MonkeyIconComponent","i3.MonkeyModalComponent","i4.MonkeyModalContentDirective","i5.MonkeyModalActionsDirective","i1.UtilIconComponent","i1.MonkeyPopoverDirective"],"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/utils.ts","../../../projects/monkey-style-guide-v2/src/utils/icon.ts","../../../projects/monkey-style-guide-v2/src/lib/components/accordion/accordion.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/accordion/accordion.component.html","../../../projects/monkey-style-guide-v2/src/lib/components/accordion/index.ts","../../../projects/monkey-style-guide-v2/src/lib/components/action-bar/action-bar.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/action-bar/index.ts","../../../projects/monkey-style-guide-v2/src/lib/components/icon/icon.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/icon/index.ts","../../../projects/monkey-style-guide-v2/src/lib/components/alert/alert.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/alert/alert.component.html","../../../projects/monkey-style-guide-v2/src/lib/components/alert/index.ts","../../../projects/monkey-style-guide-v2/src/lib/directives/badge.ts","../../../projects/monkey-style-guide-v2/src/lib/directives/display.ts","../../../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/tokens/index.ts","../../../projects/monkey-style-guide-v2/src/lib/directives/popover.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/directives/index.ts","../../../projects/monkey-style-guide-v2/src/lib/services/address.service.ts","../../../projects/monkey-style-guide-v2/src/lib/services/dictionary.service.ts","../../../projects/monkey-style-guide-v2/src/lib/services/stepper.service.ts","../../../projects/monkey-style-guide-v2/src/lib/interfaces/toast.ts","../../../projects/monkey-style-guide-v2/src/lib/interfaces/index.ts","../../../projects/monkey-style-guide-v2/src/lib/services/toast.service.ts","../../../projects/monkey-style-guide-v2/src/lib/services/index.ts","../../../projects/monkey-style-guide-v2/src/lib/components/form-field/form-field-control.ts","../../../projects/monkey-style-guide-v2/src/lib/components/form-field/utils.ts","../../../projects/monkey-style-guide-v2/src/lib/components/form-field/form-field.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/form-field/form-field.component.html","../../../projects/monkey-style-guide-v2/src/lib/components/form-field/form-field.module.ts","../../../projects/monkey-style-guide-v2/src/lib/components/form-field/index.ts","../../../projects/monkey-style-guide-v2/src/lib/components/option/option.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/option/index.ts","../../../projects/monkey-style-guide-v2/src/lib/components/autocomplete/autocomplete.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/autocomplete/index.ts","../../../projects/monkey-style-guide-v2/src/lib/components/autocomplete-address/autocomplete-address.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/autocomplete-address/index.ts","../../../projects/monkey-style-guide-v2/src/lib/components/avatar/avatar.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/avatar/avatar.component.html","../../../projects/monkey-style-guide-v2/src/lib/components/avatar/index.ts","../../../projects/monkey-style-guide-v2/src/lib/components/badge/badge.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/badge/badge.component.html","../../../projects/monkey-style-guide-v2/src/lib/components/badge/index.ts","../../../projects/monkey-style-guide-v2/src/lib/components/breadcrumb/breadcrumb.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/breadcrumb/breadcrumb.component.html","../../../projects/monkey-style-guide-v2/src/lib/components/breadcrumb/index.ts","../../../projects/monkey-style-guide-v2/src/lib/components/button/button.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/button/button.component.html","../../../projects/monkey-style-guide-v2/src/lib/components/button/index.ts","../../../projects/monkey-style-guide-v2/src/lib/components/checkbox/checkbox.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/checkbox/checkbox.component.html","../../../projects/monkey-style-guide-v2/src/lib/components/checkbox/index.ts","../../../projects/monkey-style-guide-v2/src/lib/components/input/input-currency.directive.ts","../../../projects/monkey-style-guide-v2/src/lib/components/input/validators.ts","../../../projects/monkey-style-guide-v2/src/lib/components/input/input.directive.ts","../../../projects/monkey-style-guide-v2/src/lib/components/input/input.module.ts","../../../projects/monkey-style-guide-v2/src/lib/components/input/index.ts","../../../projects/monkey-style-guide-v2/src/lib/components/icon-button/icon-button.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/icon-button/icon-button.component.html","../../../projects/monkey-style-guide-v2/src/lib/components/icon-button/index.ts","../../../projects/monkey-style-guide-v2/src/lib/components/date-range/utils.ts","../../../projects/monkey-style-guide-v2/src/lib/components/date-range/month/month.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/date-range/month/month.component.html","../../../projects/monkey-style-guide-v2/src/lib/components/date-range/month/index.ts","../../../projects/monkey-style-guide-v2/src/lib/components/date-range/quick-actions/quick-actions.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/date-range/quick-actions/quick-actions.component.html","../../../projects/monkey-style-guide-v2/src/lib/components/date-range/quick-actions/index.ts","../../../projects/monkey-style-guide-v2/src/lib/components/date-range/date-range.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/date-range/date-range.component.html","../../../projects/monkey-style-guide-v2/src/lib/components/date-range/index.ts","../../../projects/monkey-style-guide-v2/src/lib/components/divider/divider.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/divider/index.ts","../../../projects/monkey-style-guide-v2/src/lib/components/download-button/download-button.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/download-button/index.ts","../../../projects/monkey-style-guide-v2/src/lib/components/filter-bar/filter-bar.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/filter-bar/index.ts","../../../projects/monkey-style-guide-v2/src/lib/components/input-code/input-code.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/input-code/input-code.component.html","../../../projects/monkey-style-guide-v2/src/lib/components/input-code/index.ts","../../../projects/monkey-style-guide-v2/src/lib/components/input-date-range/input-date-range.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/input-date-range/index.ts","../../../projects/monkey-style-guide-v2/src/lib/components/select/select.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/select/select.component.html","../../../projects/monkey-style-guide-v2/src/lib/components/select/index.ts","../../../projects/monkey-style-guide-v2/src/lib/components/input-phone/input-phone.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/input-phone/index.ts","../../../projects/monkey-style-guide-v2/src/lib/components/input-upload/input-upload.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/input-upload/index.ts","../../../projects/monkey-style-guide-v2/src/lib/components/modal/directives/actions.ts","../../../projects/monkey-style-guide-v2/src/lib/components/modal/directives/content.ts","../../../projects/monkey-style-guide-v2/src/lib/components/modal/directives/subtitle.ts","../../../projects/monkey-style-guide-v2/src/lib/components/modal/directives/title.ts","../../../projects/monkey-style-guide-v2/src/lib/components/modal/modal-config.ts","../../../projects/monkey-style-guide-v2/src/lib/components/modal/modal-ref.ts","../../../projects/monkey-style-guide-v2/src/lib/components/modal/modal.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/modal/utils.ts","../../../projects/monkey-style-guide-v2/src/lib/components/modal/components/default.ts","../../../projects/monkey-style-guide-v2/src/lib/components/modal/components/confirmation.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/modal/modal.module.ts","../../../projects/monkey-style-guide-v2/src/lib/components/modal/modal.service.ts","../../../projects/monkey-style-guide-v2/src/lib/components/modal/index.ts","../../../projects/monkey-style-guide-v2/src/lib/components/radio-button/radio-button.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/radio-button/radio-button.component.html","../../../projects/monkey-style-guide-v2/src/lib/components/radio-button/index.ts","../../../projects/monkey-style-guide-v2/src/lib/components/security-level/security-level.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/security-level/security-level.component.html","../../../projects/monkey-style-guide-v2/src/lib/components/security-level/index.ts","../../../projects/monkey-style-guide-v2/src/lib/components/status/status.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/status/status.component.html","../../../projects/monkey-style-guide-v2/src/lib/components/status/index.ts","../../../projects/monkey-style-guide-v2/src/lib/components/stepper/step/step.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/stepper/stepper.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/stepper/stepper.module.ts","../../../projects/monkey-style-guide-v2/src/lib/components/table/components/pagination-action/pagination-action.ts","../../../projects/monkey-style-guide-v2/src/lib/components/table/components/pagination-action/pagination-action.html","../../../projects/monkey-style-guide-v2/src/lib/components/table/components/pagination-label/pagination-label.ts","../../../projects/monkey-style-guide-v2/src/lib/components/table/components/pagination-label/pagination-label.html","../../../projects/monkey-style-guide-v2/src/lib/components/table/components/pagination-size/pagination-size.ts","../../../projects/monkey-style-guide-v2/src/lib/components/table/components/pagination-size/pagination-size.html","../../../projects/monkey-style-guide-v2/src/lib/components/table/table.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/table/table.component.html","../../../projects/monkey-style-guide-v2/src/lib/components/table/directives/column-checked.ts","../../../projects/monkey-style-guide-v2/src/lib/components/table/directives/column-expansible.ts","../../../projects/monkey-style-guide-v2/src/lib/components/table/directives/column-sortable.ts","../../../projects/monkey-style-guide-v2/src/lib/components/table/directives/column-stick.ts","../../../projects/monkey-style-guide-v2/src/lib/components/table/table.module.ts","../../../projects/monkey-style-guide-v2/src/lib/components/table/index.ts","../../../projects/monkey-style-guide-v2/src/lib/components/tabs/tab-link.directive.ts","../../../projects/monkey-style-guide-v2/src/lib/components/tabs/tab.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/tabs/tabs.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/tabs/tabs.module.ts","../../../projects/monkey-style-guide-v2/src/lib/components/toast/toast.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/toast/toast.component.html","../../../projects/monkey-style-guide-v2/src/lib/components/toast/index.ts","../../../projects/monkey-style-guide-v2/src/lib/components/toggle/toggle.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/toggle/toggle.component.html","../../../projects/monkey-style-guide-v2/src/lib/components/toggle/index.ts","../../../projects/monkey-style-guide-v2/src/lib/components/toggle-line/toggle-line-button/toggle-line-button.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/toggle-line/toggle-line-button/toggle-line-button.component.html","../../../projects/monkey-style-guide-v2/src/lib/components/toggle-line/toggle-line-button/index.ts","../../../projects/monkey-style-guide-v2/src/lib/components/toggle-line/toggle-line.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/toggle-line/toggle-line.component.html","../../../projects/monkey-style-guide-v2/src/lib/components/toggle-line/index.ts","../../../projects/monkey-style-guide-v2/src/lib/components/tooltip/tooltip/tooltip.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/tooltip/tooltip/tooltip.component.html","../../../projects/monkey-style-guide-v2/src/lib/components/tooltip/tooltip/index.ts","../../../projects/monkey-style-guide-v2/src/lib/components/tooltip/tooltip.directive.ts","../../../projects/monkey-style-guide-v2/src/lib/components/tooltip/index.ts","../../../projects/monkey-style-guide-v2/src/lib/components/user-profile-button/user-profile-button.component.ts","../../../projects/monkey-style-guide-v2/src/lib/components/user-profile-button/index.ts","../../../projects/monkey-style-guide-v2/src/lib/components/index.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 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\nexport const objHaveProperty = (obj: object, property: string): boolean => {\n return typeof obj === 'object' && obj !== null && property in obj;\n};\n\nexport function formatFileSize(bytes: number): string {\n if (bytes === 0) return '0 Bytes';\n\n const k = 1024;\n const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB'];\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n\n return `${parseFloat((bytes / k ** i).toFixed(2))} ${sizes[i]}`;\n}\n\nexport function getFileExtension(filename: string) {\n const name = filename.toLowerCase();\n const lastDotIndex = name.lastIndexOf('.');\n return lastDotIndex === -1 ? '' : name.slice(lastDotIndex + 1);\n}\n\nexport function sanitizeString(input: string): string {\n return input\n .replace(/<script.*?>.*?<\\/script>/gi, '')\n .replace(/on\\w+=\"[^\"]*\"/gi, '')\n .replace(/on\\w+='[^']*'/gi, '')\n .replace(/javascript:/gi, '')\n .replace(/<\\/?[^>]+>/gi, '')\n .trim();\n}\n\nexport function normalizeStringToSearch(text: string): string {\n return text\n .normalize('NFD')\n .replace(/[\\u0300-\\u036f]/g, '')\n .toLowerCase();\n}\n","/* eslint-disable max-len */\nimport { Component, input } from '@angular/core';\n\ntype IconName =\n | 'clear'\n | 'calendar'\n | 'arrowDown'\n | 'arrowRight'\n | 'check'\n | 'minus'\n | 'loading'\n | 'searchFail'\n | 'search'\n | 'addPlus'\n | 'googleMaps'\n | 'location'\n | 'edit';\n\n@Component({\n selector: 'util-icon',\n template: `\n @switch (name()) {\n @case ('clear') {\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" fill=\"none\">\n <path\n 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\"\n fill-rule=\"evenodd\"\n fill=\"var(--mecx-color-gray-900)\"\n />\n </svg>\n }\n\n @case ('calendar') {\n <svg width=\"24\" height=\"24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n 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\"\n fill-rule=\"evenodd\"\n fill=\"var(--mecx-color-gray-900)\"\n />\n </svg>\n }\n\n @case ('arrowDown') {\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M8 10L12 14L16 10\"\n stroke=\"var(--mecx-color-gray-900)\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n }\n\n @case ('arrowRight') {\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M19 12H5\"\n stroke=\"var(--mecx-color-gray-900)\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M14 17L19 12\"\n stroke=\"var(--mecx-color-gray-900)\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M14 7L19 12\"\n stroke=\"var(--mecx-color-gray-900)\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n }\n\n @case ('check') {\n <svg\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 12 12\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n 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 \"\n stroke=\"none\"\n fill-rule=\"evenodd\"\n fill=\"var(--mecx-color-theme-contrast-500\"\n ></path>\n </svg>\n }\n\n @case ('minus') {\n <svg width=\"8\" height=\"2\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n 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\"\n stroke=\"none\"\n fill-rule=\"evenodd\"\n fill=\"var(--mecx-color-theme-contrast-500\"\n ></path>\n </svg>\n }\n\n @case ('loading') {\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n <style>\n .spinner_ajPY {\n transform-origin: center;\n animation: spinner_AtaB 0.75s infinite linear;\n }\n @keyframes spinner_AtaB {\n 100% {\n transform: rotate(360deg);\n }\n }\n </style>\n <path\n 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\"\n opacity=\".25\"\n />\n <path\n 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\"\n class=\"spinner_ajPY\"\n />\n </svg>\n }\n\n @case ('searchFail') {\n <svg width=\"24\" height=\"24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n clip-rule=\"evenodd\"\n d=\"M18.934 11.467v0c0 4.124-3.343 7.467-7.467 7.467v0C7.343 18.934 4 15.591 4 11.467v0C4 7.343 7.343 4 11.467 4v0c4.124 0 7.467 3.343 7.467 7.467Z\"\n stroke=\"var(--mecx-color-gray-900)\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"m20 20-3.25-3.25M13.815 9.11914 9.119 13.8151M13.815 13.8151 9.119 9.11914\"\n stroke=\"var(--mecx-color-gray-900)\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n }\n\n @case ('search') {\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M6.920 1.521 C 4.175 1.717,1.944 3.809,1.558 6.548 C 1.500 6.965,1.500 7.722,1.558 8.120 C 1.945 10.745,3.921 12.721,6.547 13.108 C 6.735 13.136,7.016 13.152,7.333 13.152 C 7.885 13.152,8.225 13.111,8.738 12.985 C 9.504 12.797,10.253 12.439,10.859 11.972 C 10.972 11.885,11.074 11.813,11.085 11.813 C 11.097 11.813,11.677 12.384,12.373 13.082 C 13.070 13.779,13.691 14.381,13.754 14.418 C 14.182 14.673,14.673 14.182,14.418 13.754 C 14.381 13.691,13.779 13.070,13.082 12.373 C 12.384 11.677,11.813 11.097,11.813 11.085 C 11.813 11.074,11.885 10.972,11.972 10.859 C 12.439 10.253,12.797 9.504,12.985 8.738 C 13.111 8.225,13.152 7.885,13.152 7.333 C 13.152 6.782,13.111 6.441,12.985 5.928 C 12.471 3.841,10.826 2.196,8.738 1.681 C 8.150 1.536,7.501 1.479,6.920 1.521 M8.277 2.586 C 10.023 2.962,11.414 4.208,11.943 5.870 C 12.118 6.421,12.145 6.615,12.145 7.333 C 12.145 8.052,12.118 8.246,11.943 8.797 C 11.473 10.272,10.272 11.473,8.797 11.943 C 8.246 12.118,8.052 12.145,7.333 12.145 C 6.615 12.145,6.421 12.118,5.870 11.943 C 4.394 11.473,3.193 10.272,2.724 8.797 C 2.547 8.242,2.521 8.052,2.522 7.333 C 2.522 6.615,2.549 6.419,2.724 5.870 C 3.244 4.236,4.636 2.971,6.320 2.602 C 6.679 2.523,6.858 2.510,7.440 2.520 C 7.898 2.527,8.066 2.540,8.277 2.586 \"\n stroke=\"none\"\n fill-rule=\"evenodd\"\n fill=\"var(--mecx-color-gray-900)\"\n ></path>\n </svg>\n }\n\n @case ('addPlus') {\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M11.340 2.281 C 7.073 2.553,3.439 5.660,2.499 9.840 C 2.187 11.227,2.187 12.773,2.499 14.160 C 3.317 17.797,6.203 20.683,9.840 21.501 C 11.233 21.814,12.770 21.813,14.176 21.498 C 17.465 20.759,20.161 18.310,21.244 15.076 C 21.795 13.432,21.887 11.556,21.501 9.840 C 20.683 6.203,17.797 3.317,14.160 2.499 C 13.288 2.303,12.254 2.223,11.340 2.281 M12.961 3.802 C 14.493 3.991,16.079 4.659,17.184 5.581 C 18.160 6.395,18.877 7.297,19.404 8.374 C 19.982 9.557,20.240 10.675,20.240 12.000 C 20.240 12.966,20.126 13.689,19.834 14.584 C 18.848 17.602,16.153 19.804,12.961 20.198 C 12.525 20.252,11.475 20.252,11.039 20.198 C 9.507 20.009,7.921 19.341,6.816 18.419 C 5.826 17.593,5.138 16.728,4.598 15.626 C 4.019 14.448,3.760 13.327,3.760 12.000 C 3.760 10.673,4.019 9.552,4.598 8.374 C 5.044 7.464,5.564 6.750,6.285 6.058 C 7.568 4.824,9.221 4.032,10.984 3.806 C 11.379 3.755,12.563 3.753,12.961 3.802 M11.815 7.277 C 11.638 7.321,11.461 7.456,11.353 7.631 L 11.260 7.780 11.248 9.508 L 11.236 11.236 9.505 11.248 L 7.774 11.260 7.612 11.367 C 7.372 11.526,7.267 11.721,7.267 12.007 C 7.267 12.203,7.286 12.270,7.383 12.408 C 7.447 12.499,7.572 12.610,7.660 12.656 C 7.814 12.737,7.886 12.740,9.528 12.752 L 11.236 12.764 11.248 14.492 L 11.260 16.220 11.353 16.369 C 11.710 16.943,12.576 16.812,12.716 16.162 C 12.744 16.031,12.760 15.374,12.760 14.358 L 12.760 12.760 14.358 12.760 C 15.374 12.760,16.031 12.744,16.162 12.716 C 16.904 12.557,16.924 11.471,16.189 11.286 C 16.064 11.255,15.479 11.240,14.382 11.240 L 12.760 11.240 12.759 9.630 C 12.758 8.669,12.741 7.948,12.717 7.841 C 12.623 7.432,12.215 7.177,11.815 7.277 \"\n stroke=\"none\"\n fill-rule=\"evenodd\"\n fill=\"var(--mecx-color-gray-900)\"\n ></path>\n </svg>\n }\n\n @case ('googleMaps') {\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n width=\"120\"\n height=\"22\"\n viewBox=\"0 0 264.6 50.86\"\n >\n <path\n d=\"M9.835 37.67a51.38 51.38 0 0 1 4.007 5.91c1.022 1.938 1.448 3.252 2.195 5.587.458 1.29.872 1.675 1.762 1.675.97 0 1.41-.655 1.75-1.668.706-2.205 1.26-3.888 2.134-5.478 1.715-3.07 3.846-5.798 5.94-8.42.567-.742 4.232-5.065 5.882-8.476 0 0 2.028-3.747 2.028-8.98 0-4.895-2-8.29-2-8.29l-5.758 1.542-3.497 9.21-.865 1.27-.173.23-.23.288-.404.46-.577.577-3.114 2.537-7.785 4.495z\"\n fill=\"#34a853\"\n />\n <path\n d=\"M1.8 26.17c1.9 4.34 5.564 8.155 8.043 11.503L23.01 22.076s-1.855 2.426-5.22 2.426c-3.748 0-6.776-2.993-6.776-6.767 0-2.588 1.557-4.366 1.557-4.366l-8.938 2.395z\"\n fill=\"#fbbc04\"\n />\n <path\n d=\"M23.157.792c4.373 1.41 8.116 4.37 10.38 8.735l-10.523 12.54s1.557-1.81 1.557-4.382c0-3.862-3.252-6.747-6.765-6.747-3.322 0-5.23 2.422-5.23 2.422v-7.9z\"\n fill=\"#4285f4\"\n />\n <path\n d=\"M4.212 6.333C6.824 3.208 11.42-.01 17.756-.01c3.074 0 5.39.807 5.39.807l-10.58 12.57H5.07z\"\n fill=\"#1a73e8\"\n />\n <path\n d=\"M1.8 26.17S.052 22.747.052 17.788c0-4.687 1.822-8.784 4.16-11.455l8.36 7.035z\"\n fill=\"#ea4335\"\n />\n <g fill=\"#767676\">\n <path\n d=\"M181.68 41.235V14.508h3.434l9.295 16.275h.15l9.295-16.275h3.434v26.727h-3.434V25.37l.15-4.48h-.15l-8.36 14.67h-2.015l-8.36-14.67h-.15l.15 4.48v15.864zm35.648.56c-1.94 0-3.565-.56-4.87-1.68s-1.96-2.6-1.96-4.442c0-2 .77-3.552 2.314-4.685s3.446-1.698 5.7-1.698c2.016 0 3.67.373 4.965 1.12v-.523c0-1.344-.46-2.42-1.38-3.228s-2.053-1.213-3.398-1.213c-.995 0-1.896.236-2.705.7s-1.362 1.12-1.66 1.94l-3.136-1.343c.423-1.095 1.257-2.1 2.5-3.042s2.886-1.4 4.927-1.4c2.34 0 4.28.685 5.823 2.053s2.314 3.298 2.314 5.787V41.2h-3.284v-2.54h-.15c-1.37 2.1-3.373 3.135-6 3.135zm.56-3.135c1.418 0 2.705-.53 3.863-1.586s1.736-2.3 1.736-3.75c-.97-.797-2.426-1.195-4.367-1.195-1.668 0-2.925.36-3.77 1.083s-1.27 1.568-1.27 2.538c0 .896.386 1.605 1.157 2.128s1.655.784 2.65.784zm21.742 3.135c-1.393 0-2.644-.3-3.75-.896s-1.935-1.344-2.48-2.24h-.15l.15 2.538v8.063h-3.434V22.908h3.286v2.538h.15c.547-.896 1.374-1.642 2.48-2.24s2.358-.896 3.75-.896c2.364 0 4.405.933 6.122 2.8s2.576 4.18 2.576 6.943-.86 5.077-2.576 6.943-3.758 2.8-6.122 2.8zm-.56-3.135c1.593 0 2.96-.604 4.106-1.8s1.717-2.806 1.717-4.797-.572-3.6-1.717-4.797-2.514-1.8-4.106-1.8c-1.617 0-2.993.597-4.125 1.792s-1.697 2.8-1.697 4.815.566 3.62 1.697 4.815 2.507 1.792 4.125 1.792zm18.385 3.135c-2.04 0-3.726-.498-5.058-1.493s-2.3-2.24-2.93-3.733l3.06-1.27c.97 2.3 2.626 3.433 4.966 3.433 1.07 0 1.948-.236 2.632-.7s1.027-1.095 1.027-1.866c0-1.194-.834-2.004-2.502-2.426l-3.695-.895c-1.17-.298-2.277-.865-3.322-1.698s-1.568-1.96-1.568-3.377c0-1.617.715-2.93 2.146-3.94s3.13-1.512 5.095-1.512c1.617 0 3.06.367 4.33 1.1a6.21 6.21 0 0 1 2.725 3.154l-2.987 1.232c-.67-1.617-2.065-2.426-4.18-2.426-1.02 0-1.88.212-2.575.634s-1.045.996-1.045 1.718c0 1.045.8 1.754 2.426 2.128l3.62.858c1.717.398 2.986 1.083 3.807 2.053s1.232 2.066 1.232 3.286c0 1.642-.672 3-2.016 4.106s-3.073 1.642-5.2 1.642zM79.916 25.3H65.83v4.18h10c-.493 5.86-5.37 8.36-9.973 8.36a10.98 10.98 0 0 1-11.029-11.128c0-6.327 4.898-11.2 11.04-11.2 4.74 0 7.53 3.022 7.53 3.022l2.927-3.03s-3.757-4.18-10.607-4.18c-8.723 0-15.473 7.363-15.473 15.316 0 7.792 6.35 15.393 15.696 15.393 8.22 0 14.24-5.632 14.24-13.96 0-1.756-.255-2.772-.255-2.772z\"\n />\n <use xlink:href=\"#B\" />\n <use xlink:href=\"#B\" x=\"21.476\" />\n <path\n d=\"M134.102 22.327c-5.305 0-9.476 4.647-9.476 9.862 0 5.94 4.834 9.88 9.383 9.88 2.813 0 4.308-1.117 5.414-2.4v1.946c0 3.405-2.068 5.445-5.2 5.445-3.015 0-4.526-2.242-5.052-3.514l-3.793 1.586c1.346 2.845 4.054 5.813 8.878 5.813 5.275 0 9.296-3.322 9.296-10.3v-17.73h-4.138v1.672c-1.272-1.37-3.012-2.265-5.32-2.265zm.384 3.87c2.602 0 5.272 2.22 5.272 6.013 0 3.856-2.665 5.98-5.33 5.98-2.828 0-5.46-2.296-5.46-5.944 0-3.8 2.732-6.05 5.518-6.05zm27.534-3.87c-5.004 0-9.207 3.98-9.207 9.857 0 6.216 4.683 9.904 9.687 9.904 4.176 0 6.74-2.285 8.268-4.332l-3.4-2.27c-.885 1.374-2.366 2.718-4.835 2.718-2.775 0-4.05-1.52-4.84-2.992l13.234-5.5-.687-1.6c-1.28-3.152-4.262-5.784-8.2-5.784zm.172 3.796c1.804 0 3.1.96 3.653 2.108l-8.838 3.694c-.38-2.86 2.328-5.802 5.186-5.802zm-15.7 15.377h4.346V12.4h-4.346z\"\n />\n </g>\n <defs>\n <path\n id=\"B\"\n d=\"M91.48 22.327c-5.78 0-9.922 4.518-9.922 9.788 0 5.348 4.018 9.95 10 9.95 5.407 0 9.836-4.132 9.836-9.836 0-6.537-5.153-9.904-9.904-9.904zm.057 3.877c2.843 0 5.536 2.298 5.536 6 0 3.624-2.683 5.99-5.55 5.99-3.15 0-5.635-2.523-5.635-6.017 0-3.418 2.455-5.972 5.648-5.972z\"\n />\n </defs>\n </svg>\n }\n\n @case ('location') {\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"var(--mecx-color-gray-900)\">\n <path\n d=\"M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7m0 9.5c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5 2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5\"\n ></path>\n </svg>\n }\n\n @case ('edit') {\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M5.293 15.619L15.619 5.29299C16.009 4.90299 16.642 4.90299 17.032 5.29299L18.708 6.96899C19.098 7.35899 19.098 7.99199 18.708 8.38199L8.381 18.707C8.194 18.895 7.94 19 7.675 19H5V16.325C5 16.06 5.105 15.806 5.293 15.619Z\"\n stroke=\"var(--mecx-color-gray-900)\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M13.75 7.16016L16.84 10.2502\"\n stroke=\"var(--mecx-color-gray-900)\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n }\n }\n `,\n styles: [\n `\n :host {\n display: flex;\n background-color: transparent;\n }\n `\n ]\n})\nexport class UtilIconComponent {\n name = input.required<IconName>();\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 { IdGenerator, UtilIconComponent } from '../../../utils';\n\n@Component({\n selector: 'monkey-accordion',\n imports: [CommonModule, UtilIconComponent],\n templateUrl: './accordion.component.html',\n styleUrl: './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 })\n ),\n transition(':enter', [\n animate(\n '300ms ease-in-out',\n style({\n height: '*'\n })\n )\n ]),\n transition(':leave', [\n animate(\n '300ms ease-in-out',\n style({\n height: '0px'\n })\n )\n ])\n ])\n ]\n})\nexport class MonkeyAccordionComponent {\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 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 <util-icon class=\"icon\" name=\"arrowDown\" [class.rotated]=\"open\" />\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 ************************* */\nexport * from './accordion.component';\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, input, ViewEncapsulation } from '@angular/core';\n\n@Component({\n encapsulation: ViewEncapsulation.None,\n imports: [CommonModule],\n selector: 'monkey-action-bar',\n styleUrl: './action-bar.component.scss',\n template: `@if (open()) {\n <span style=\"font-size: 13px\" data-testid=\"label\" *ngIf=\"label() as lb\">\n {{ lb }}\n </span>\n\n <ng-content></ng-content>\n }`,\n host: {\n 'data-testid': 'monkey-action-bar',\n '[attr.id]': 'id',\n '[id]': 'id',\n '[class.open]': 'open()'\n }\n})\nexport class MonkeyActionBarComponent {\n @HostBinding('class')\n get classes() {\n return this.position();\n }\n\n label = input<string>();\n\n position = input<string>();\n\n open = input<boolean>();\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 './action-bar.component';\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 imports: [CommonModule],\n template: '',\n styleUrl: './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: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'xxl' = 'lg';\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 ************************* */\nexport * from './icon.component';\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 '../icon';\n\n@Component({\n encapsulation: ViewEncapsulation.None,\n imports: [MonkeyIconComponent],\n selector: 'monkey-alert',\n styleUrl: './alert.component.scss',\n templateUrl: './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\n href=\"javascript:void(0)\"\n class=\"mecx-link fw-medium fs-base\"\n (click)=\"onButtonClicked.emit()\"\n >\n <span>{{ buttonLabel() }}</span>\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 ************************* */\nexport * from './alert.component';\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, ElementRef, Input, OnChanges, Renderer2 } from '@angular/core';\n\n@Directive({\n selector: '[monkeyBadge]',\n standalone: false\n})\nexport class MonkeyBadgeDirective implements OnChanges {\n @Input() badgePosition: 'left' | 'right' = 'right';\n\n @Input() badgeSize: 'sm' | 'md' | 'lg' = 'md';\n\n @Input() badgeHidden = false;\n\n @Input() monkeyBadge: string = '';\n\n @Input() badgeBackground: string | null = null;\n\n @Input() badgeColor: string | null = null;\n\n private badgeEl: HTMLElement | null = null;\n\n constructor(\n private el: ElementRef,\n private renderer: Renderer2\n ) {\n // not to do\n }\n\n ngOnChanges(): void {\n const { badgeHidden, badgeEl, renderer, el } = this;\n\n if (badgeHidden) {\n this.removeBadge();\n return;\n }\n\n if (!badgeEl) {\n this.badgeEl = renderer.createElement('span');\n renderer.setStyle(el.nativeElement, 'position', 'relative');\n renderer.appendChild(el.nativeElement, this.badgeEl);\n }\n\n this.updateBadge();\n }\n\n private updateBadge(): void {\n const {\n badgeEl,\n renderer,\n monkeyBadge,\n badgeSize,\n badgeColor,\n badgePosition,\n badgeBackground\n } = this;\n\n renderer.addClass(badgeEl, 'monkey-badge');\n renderer.addClass(badgeEl, `monkey-badge-${badgeSize}`);\n renderer.addClass(badgeEl, `monkey-badge-${badgePosition}`);\n renderer.setAttribute(\n badgeEl,\n 'style',\n `\n --badge-background: ${badgeBackground ?? 'unset'};\n --badge-color: ${badgeColor ?? 'unset'}\n `\n );\n\n this.renderer.setProperty(this.badgeEl, 'textContent', monkeyBadge);\n }\n\n private removeBadge(): void {\n const { renderer, el, badgeEl } = this;\n if (!el.nativeElement || !badgeEl) return;\n renderer.removeChild(el.nativeElement, badgeEl);\n renderer.removeStyle(el.nativeElement, 'position');\n this.badgeEl = null;\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 { AfterViewInit, Directive, DoCheck, ElementRef, inject, input } from '@angular/core';\n\n@Directive({\n selector: 'monkey-display',\n standalone: false\n})\nexport class MonkeyDisplayDirective implements AfterViewInit, DoCheck {\n fallback = input.required<string>();\n\n private readonly _elementRef = inject(ElementRef);\n\n ngAfterViewInit(): void {\n this.checkContent();\n }\n\n ngDoCheck(): void {\n this.checkContent();\n }\n\n private checkContent() {\n const text = (this._elementRef.nativeElement.textContent ?? '').trim();\n\n if (!text) {\n this._elementRef.nativeElement.innerText = this.fallback();\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 { Directive } from '@angular/core';\n\n@Directive({\n selector: 'monkey-error',\n standalone: false\n})\nexport class MonkeyErrorDirective {}\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 standalone: false\n})\nexport class MonkeyHelperDirective {}\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 standalone: false\n})\nexport class MonkeyInfoDirective {}\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 standalone: false\n})\nexport class MonkeyLabelDirective {}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { inject, InjectionToken } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\nexport const MECX_I18N_WRAPPER = new InjectionToken<BehaviorSubject<string>>('');\nexport const MECX_POPOVER_OPTIONS = new InjectionToken('MECX_POPOVER_OPTIONS');\nexport const MECX_COUNTRY_ISO_CODE = new InjectionToken<string>('BR');\nexport const MECX_GOOGLE_API_KEY = new InjectionToken<string>('');\n\nexport function injectTokenWithWarning<T>(token: InjectionToken<T>, name?: string): T | null {\n const value = inject(token, { optional: true });\n if (!value) {\n // eslint-disable-next-line no-console\n console.error(`MECXInjectors -> Token \"${name || token.toString()}\" is not provided.`);\n }\n return value;\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 ConnectedPosition,\n FlexibleConnectedPositionStrategy,\n FlexibleConnectedPositionStrategyOrigin,\n Overlay,\n OverlayPositionBuilder,\n OverlayRef\n} from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { CommonModule, NgTemplateOutlet } from '@angular/common';\nimport {\n AfterViewInit,\n booleanAttribute,\n Component,\n ComponentRef,\n DestroyRef,\n Directive,\n ElementRef,\n EventEmitter,\n Inject,\n inject,\n Input,\n NgZone,\n OnDestroy,\n Optional,\n Output,\n TemplateRef,\n ViewContainerRef\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { NavigationStart, Router } from '@angular/router';\nimport { filter } from 'rxjs';\nimport { UtilIconComponent } from '../../utils';\nimport { MonkeyPopoverDir, MonkeyPopoverOptions } from '../interfaces';\nimport { MECX_POPOVER_OPTIONS } from '../tokens';\n\n@Component({\n selector: 'monkey-popover-content',\n imports: [CommonModule, NgTemplateOutlet, UtilIconComponent],\n template: `\n <div class=\"mecx-popover-container\">\n @if (!hideHeader) {\n <div class=\"mecx-popover-header\">\n @if (title) {\n <div>\n <ng-container *ngIf=\"isTemplate(title); else stringTitle\">\n <ng-container *ngTemplateOutlet=\"title\"></ng-container>\n </ng-container>\n <ng-template #stringTitle>\n {{ title }}\n </ng-template>\n </div>\n }\n\n @if (!hideClose) {\n <util-icon class=\"mecx-popover-close\" name=\"clear\" (click)=\"onClose.next(null)\" />\n }\n </div>\n }\n\n <div class=\"mecx-popover-content\" [class.add-radius]=\"hideHeader\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n\n @if (!hideActions) {\n <div class=\"mecx-popover-actions\" *ngIf=\"actions\">\n <ng-container *ngIf=\"isTemplate(actions); else stringActions\">\n <ng-container *ngTemplateOutlet=\"actions\"></ng-container>\n </ng-container>\n <ng-template #stringActions>\n <span>{{ actions }}</span>\n </ng-template>\n </div>\n }\n </div>\n `\n})\nexport class MonkeyPopoverContentComponent implements AfterViewInit {\n @Input() title?: string | TemplateRef<any>;\n\n @Input() content!: TemplateRef<any>;\n\n @Input() actions?: string | TemplateRef<any>;\n\n @Output() onClose = new EventEmitter();\n\n @Input({ transform: booleanAttribute })\n hideHeader!: boolean;\n\n @Input({ transform: booleanAttribute })\n hideClose!: boolean;\n\n @Input({ transform: booleanAttribute })\n hideActions!: boolean;\n\n @Input()\n enableAutofocus = false;\n\n constructor(private host: ElementRef<HTMLElement>) {\n // not to do\n }\n\n ngAfterViewInit(): void {\n if (this.enableAutofocus) {\n setTimeout(() => {\n const focusable = this.host.nativeElement.querySelector<HTMLElement>(\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])'\n );\n focusable?.focus();\n });\n }\n }\n\n isTemplate(value: unknown): value is TemplateRef<any> {\n return value instanceof TemplateRef;\n }\n}\n\ntype HorizontalPosition = 'start' | 'center' | 'end';\ntype VerticalPosition = 'top' | 'center' | 'bottom';\n\n@Directive({\n selector: '[monkeyPopover]',\n standalone: false\n})\nexport class MonkeyPopoverDirective implements OnDestroy {\n private readonly _tpl = inject(TemplateRef);\n\n private readonly _vcr = inject(ViewContainerRef);\n\n private readonly _el = inject(ElementRef);\n\n private readonly _zone = inject(NgZone);\n\n private readonly _overlay = inject(Overlay);\n\n private readonly _overlayPositionBuilder = inject(OverlayPositionBuilder);\n\n private readonly _router = inject(Router);\n\n private readonly _destroyRef = inject(DestroyRef);\n\n @Optional() @Inject(MECX_POPOVER_OPTIONS) private readonly _options?: MonkeyPopoverOptions;\n\n private _overlayRef?: OverlayRef;\n\n private _componentRef?: ComponentRef<MonkeyPopoverContentComponent>;\n\n private _positionStrategy?: FlexibleConnectedPositionStrategy;\n\n private _resizeObserver?: ResizeObserver;\n\n private _show = false;\n\n @Input('monkeyPopover')\n set popover(show: boolean) {\n if (this._show === show) {\n return;\n }\n this._show = show;\n if (show) {\n setTimeout(() => {\n this.createPopover();\n }, 0);\n } else {\n this.disposePopover();\n }\n }\n\n get popover(): boolean {\n return this._show;\n }\n\n @Input('monkeyPopoverClosed')\n closed?: (e?: MouseEvent) => void;\n\n private _target?: HTMLElement;\n\n @Input('monkeyPopoverTarget')\n set target(value: any | undefined) {\n this._target = value;\n }\n\n get target(): HTMLElement | undefined {\n return this._target;\n }\n\n @Input('monkeyPopoverMinwidth')\n minwidth = false;\n\n @Input('monkeyPopoverBackdrop')\n backdrop = true;\n\n @Input('monkeyPopoverWatch')\n watch = false;\n\n @Input('monkeyPopoverDir')\n dir: MonkeyPopoverDir = 'ltr';\n\n @Input('monkeyPopoverContextmenu')\n contextmenu = false;\n\n @Input('monkeyPopoverHeight')\n height?: number | string;\n\n @Input('monkeyPopoverTitle') title?: string | TemplateRef<unknown>;\n\n @Input('monkeyPopoverActions') actions?: string | TemplateRef<unknown>;\n\n @Input({ alias: 'monkeyPopoverHideClose', transform: booleanAttribute })\n hideClose!: boolean;\n\n @Input({ alias: 'monkeyPopoverHideHeader', transform: booleanAttribute })\n hideHeader!: boolean;\n\n @Input({ alias: 'monkeyPopoverHideActions', transform: booleanAttribute })\n hideActions!: boolean;\n\n @Input({ alias: 'monkeyPopoverEnableAutofocus', transform: booleanAttribute })\n enableAutofocus!: boolean;\n\n constructor() {\n this._router.events\n .pipe(\n filter((event): event is NavigationStart => {\n return event instanceof NavigationStart;\n }),\n takeUntilDestroyed(this._destroyRef)\n )\n .subscribe(() => {\n this.closePopover();\n });\n }\n\n ngOnDestroy(): void {\n this.disposePopover();\n this._resizeObserver?.disconnect();\n }\n\n private closePopover(event?: MouseEvent): void {\n if (this._show) {\n this._show = false;\n this.disposePopover();\n this._zone.run(() => {\n this.closed?.(event);\n });\n }\n }\n\n private disposePopover(): void {\n this._resizeObserver?.disconnect();\n this._resizeObserver = undefined;\n\n if (this._overlayRef) {\n this._overlayRef.dispose();\n this._overlayRef = undefined;\n }\n }\n\n private getPositions(dir: MonkeyPopoverDir): ConnectedPosition[] {\n const oppositeVertical: Record<VerticalPosition, VerticalPosition> = {\n top: 'bottom',\n bottom: 'top',\n center: 'center'\n };\n\n const oppositeHorizontal: Record<HorizontalPosition, HorizontalPosition> = {\n start: 'end',\n end: 'start',\n center: 'center'\n };\n\n const centerY = (pos: VerticalPosition): ConnectedPosition => {\n return {\n originX: 'center',\n originY: pos,\n overlayX: 'center',\n overlayY: oppositeVertical[pos]\n };\n };\n\n const centerX = (pos: HorizontalPosition): ConnectedPosition => {\n return {\n originX: oppositeHorizontal[pos],\n originY: 'center',\n overlayX: pos,\n overlayY: 'center'\n };\n };\n\n const ltr = (axis: VerticalPosition): ConnectedPosition => {\n return {\n originX: 'start',\n originY: axis,\n overlayX: 'start',\n overlayY: oppositeVertical[axis]\n };\n };\n\n const rtl = (axis: VerticalPosition): ConnectedPosition => {\n return {\n originX: 'end',\n originY: axis,\n overlayX: 'end',\n overlayY: oppositeVertical[axis]\n };\n };\n\n const side = (axisX: HorizontalPosition, axisY: VerticalPosition): ConnectedPosition => {\n return {\n originX: axisX,\n originY: axisY,\n overlayX: oppositeHorizontal[axisX],\n overlayY: axisY\n };\n };\n\n const cmp = dir ?? this._options?.dir ?? this.dir;\n\n switch (cmp) {\n case 'ct':\n return [centerY('top'), centerY('bottom'), centerX('start'), centerX('end')];\n case 'cr':\n return [centerX('end'), centerX('start'), centerY('top'), centerY('bottom')];\n case 'cc':\n return [centerX('center')];\n case 'ltr':\n return [ltr('bottom'), ltr('top')];\n case 'rtl':\n return [rtl('bottom'), rtl('top')];\n case 'tltr':\n return [ltr('top'), ltr('bottom')];\n case 'trtl':\n return [rtl('top'), rtl('bottom')];\n case 'rt':\n return [side('end', 'top'), side('end', 'bottom'), ltr('top')];\n case 'rb':\n return [side('end', 'bottom'), side('end', 'top'), ltr('bottom'), rtl('bottom')];\n case 'lt':\n return [side('start', 'top'), side('start', 'bottom'), rtl('top')];\n case 'lb':\n return [side('start', 'bottom'), side('start', 'top'), rtl('bottom')];\n default:\n return [];\n }\n }\n\n private createPopover(\n origin?: FlexibleConnectedPositionStrategyOrigin,\n options?: MonkeyPopoverOptions\n ): void {\n if (!this.target) {\n // eslint-disable-next-line no-console\n console.error('MonkeyPopoverDirective -> target element is not defined.');\n return;\n }\n\n const originEl =\n this.target instanceof HTMLElement ? this.target : (this.target as any).element;\n\n this._positionStrategy = this._overlayPositionBuilder\n .flexibleConnectedTo(origin ?? originEl)\n .withPush(true)\n .withGrowAfterOpen(true)\n .withPositions(this.getPositions(options?.dir!));\n\n this._overlayRef = this._overlay.create({\n positionStrategy: this._positionStrategy,\n disposeOnNavigation: true,\n direction: 'ltr',\n hasBackdrop: this.backdrop,\n scrollStrategy: this._overlay.scrollStrategies.reposition(),\n backdropClass: 'cdk-overlay-transparent-backdrop',\n width: this._options?.minwidth || this.minwidth ? this.target.offsetWidth - 2 : undefined,\n maxHeight: '95%',\n height: this.height\n });\n\n this._overlayRef\n .backdropClick()\n .pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe((event) => {\n this.closePopover(event);\n });\n\n const portal = new ComponentPortal(MonkeyPopoverContentComponent, this._vcr);\n\n this._componentRef = this._overlayRef.attach(portal);\n this._componentRef.instance.content = this._tpl;\n this._componentRef.instance.title = this.title as any;\n this._componentRef.instance.actions = this.actions as any;\n this._componentRef.instance.hideClose = this.hideClose;\n this._componentRef.instance.hideHeader = this.hideHeader;\n this._componentRef.instance.hideActions = this.hideActions;\n this._componentRef.instance.enableAutofocus = this.enableAutofocus;\n\n if (!this.hideClose || !this.hideHeader) {\n this._componentRef.instance.onClose\n .pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe(() => {\n this.closePopover();\n });\n }\n\n if (this.watch && 'ResizeObserver' in window) {\n this._resizeObserver = new ResizeObserver(() => {\n this._overlayRef?.updatePosition();\n });\n\n this._resizeObserver.observe(this._componentRef.location.nativeElement);\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 { Directive } from '@angular/core';\n\n@Directive({\n selector: 'monkey-prefix',\n standalone: false\n})\nexport class MonkeyPrefixDirective {}\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 standalone: false\n})\nexport class MonkeySuffixDirective {\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 { MonkeyBadgeDirective } from './badge';\nimport { MonkeyDisplayDirective } from './display';\nimport { MonkeyErrorDirective } from './error';\nimport { MonkeyHelperDirective } from './helper';\nimport { MonkeyInfoDirective } from './info';\nimport { MonkeyLabelDirective } from './label';\nimport { MonkeyPopoverContentComponent, MonkeyPopoverDirective } from './popover';\nimport { MonkeyPrefixDirective } from './prefix';\nimport { MonkeySuffixDirective } from './suffix';\n\n@NgModule({\n imports: [MonkeyPopoverContentComponent],\n declarations: [\n MonkeyErrorDirective,\n MonkeyHelperDirective,\n MonkeyInfoDirective,\n MonkeyLabelDirective,\n MonkeyDisplayDirective,\n MonkeyPrefixDirective,\n MonkeySuffixDirective,\n MonkeyBadgeDirective,\n MonkeyPopoverDirective\n ],\n exports: [\n MonkeyErrorDirective,\n MonkeyHelperDirective,\n MonkeyInfoDirective,\n MonkeyLabelDirective,\n MonkeyDisplayDirective,\n MonkeyPrefixDirective,\n MonkeySuffixDirective,\n MonkeyBadgeDirective,\n MonkeyPopoverDirective\n ]\n})\nexport class MonkeyDirectivesModule {}\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nexport * from './badge';\nexport * from './display';\nexport * from './error';\nexport * from './helper';\nexport * from './info';\nexport * from './label';\nexport * from './module';\nexport * from './popover';\nexport * from './prefix';\nexport * from './suffix';\n","import { HttpClient } from '@angular/common/http';\nimport { inject, Injectable } from '@angular/core';\nimport { map, of } from 'rxjs';\nimport {\n GoogleApiPlaces,\n GoogleApiPlacesAddressComponents,\n GoogleApiPlacesResponse\n} from '../interfaces';\nimport { injectTokenWithWarning, MECX_GOOGLE_API_KEY } from '../tokens';\n\n@Injectable({ providedIn: 'root' })\nexport class MonkeyEcxAddressService {\n private readonly _http = inject(HttpClient);\n\n private readonly _googleApiKey = injectTokenWithWarning(\n MECX_GOOGLE_API_KEY,\n 'MECX_GOOGLE_API_KEY'\n )!;\n\n private mappingData(places: GoogleApiPlaces[]) {\n const getComponent = (\n components: GoogleApiPlacesAddressComponents[],\n type:\n | 'street_number'\n | 'route'\n | 'sublocality_level_1'\n | 'sublocality'\n | 'political'\n | 'administrative_area_level_1'\n | 'administrative_area_level_2'\n | 'country'\n | 'postal_code',\n field = 'longText'\n ) => {\n const result = components.find((c) => {\n return c.types.includes(type);\n });\n\n return result?.[field] || '';\n };\n\n return places.map((_: GoogleApiPlaces) => {\n const { addressComponents } = _;\n\n const address = getComponent(addressComponents!, 'route');\n const addressNumber = getComponent(addressComponents!, 'street_number');\n const neighborhood = getComponent(addressComponents!, 'sublocality_level_1');\n const city = getComponent(addressComponents!, 'administrative_area_level_2');\n const state = getComponent(addressComponents!, 'administrative_area_level_1');\n const country = getComponent(addressComponents!, 'country', 'shortText');\n const zipCode = getComponent(addressComponents!, 'postal_code');\n\n return {\n formattedAddress: _.formattedAddress,\n adrFormatAddress: _.adrFormatAddress,\n address,\n addressNumber,\n neighborhood,\n city,\n state,\n country,\n zipCode\n };\n });\n }\n\n get(textQuery: string) {\n if (!textQuery) {\n return of([]);\n }\n\n return this._http\n .post<any>(\n 'https://places.googleapis.com/v1/places:searchText',\n {\n textQuery\n },\n {\n headers: {\n 'X-Goog-Api-Key': this._googleApiKey,\n 'X-Goog-FieldMask':\n 'places.formattedAddress,places.addressComponents,places.displayName,places.adrFormatAddress'\n }\n }\n )\n .pipe(\n map((resp: GoogleApiPlacesResponse) => {\n return this.mappingData(resp.places);\n })\n );\n }\n}\n","/* eslint-disable no-console */\n/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { DestroyRef, inject, Injectable, LOCALE_ID } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { BehaviorSubject, map } from 'rxjs';\nimport { MECX_I18N_WRAPPER } from '../tokens';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyDictionaryService {\n private _localeId = inject(LOCALE_ID);\n\n private _destroyRef = inject(DestroyRef);\n\n private _data$ = new BehaviorSubject<Record<string, Record<string, any>>>({\n 'pt-BR': {\n EDIT: 'Editar',\n 'NO-RESULTS': 'Nenhum resultado encontrado',\n 'NO-DATA': 'Sem dados',\n 'NO-DATA-ADDRESS': 'Nenhum endereço encontrado com esta pesquisa',\n 'NOT-PROVIDED': 'Não informado',\n LOADING: 'Carregando...',\n 'DATE-RANGE': {\n 'START-DATE': 'Data de início',\n 'END-DATE': 'Data de término',\n INVALID: 'Intervalo de datas inválido',\n ACTIONS: {\n CANCEL: 'Cancelar',\n APPLY: 'Aplicar'\n },\n 'WEEK-DAYS': ['Dom.', '2ª', '3ª', '4ª', '5ª', '6ª', 'Sab.'],\n MONTHS: {\n 0: 'Janeiro',\n 1: 'Fevereiro',\n 2: 'Março',\n 3: 'Abril',\n 4: 'Maio',\n 5: 'Junho',\n 6: 'Julho',\n 7: 'Agosto',\n 8: 'Setembro',\n 9: 'Outubro',\n 10: 'Novembro',\n 11: 'Dezembro'\n },\n 'QUICK-ACTIONS': {\n CUSTOM: 'Customizado',\n LAST_30_DAYS: 'Ultimos 30 dias',\n LAST_60_DAYS: 'Ultimos 60 dias',\n LAST_90_DAYS: 'Ultimos 90 dias',\n LAST_6_MONTHS: 'Ultimos 6 meses',\n LAST_12_MONTHS: 'Ultimos 12 meses',\n NEXT_30_DAYS: 'Próximos 30 dias',\n NEXT_60_DAYS: 'Próximos 60 dias',\n NEXT_90_DAYS: 'Próximos 90 dias',\n NEXT_6_MONTHS: 'Próximos 6 meses',\n NEXT_12_MONTHS: 'Próximos 12 meses'\n }\n }\n },\n 'es-CL': {\n EDIT: 'Editar',\n 'NO-RESULTS': 'No se encontraron resultados',\n 'NO-DATA': 'Sin datos',\n 'NO-DATA-ADDRESS': 'No se encontraron direcciones con esta búsqueda',\n 'NOT-PROVIDED': 'No informado',\n LOADING: 'Cargando...',\n 'DATE-RANGE': {\n 'START-DATE': 'Fecha de inicio',\n 'END-DATE': 'Fecha de termino',\n INVALID: 'Rango de fechas no válido',\n ACTIONS: {\n CANCEL: 'Cancelar',\n APPLY: 'Aplicar'\n },\n 'WEEK-DAYS': ['Dom.', 'Lun.', 'Mar.', 'Mié.', 'Jue.', 'Vie.', 'Sab.'],\n MONTHS: {\n 0: 'Enero',\n 1: 'Febrero',\n 2: 'Marzo',\n 3: 'Abril',\n 4: 'Mayo',\n 5: 'Junio',\n 6: 'Julio',\n 7: 'Agosto',\n 8: 'Septiembre',\n 9: 'Octubre',\n 10: 'Noviembre',\n 11: 'Diciembre'\n },\n 'QUICK-ACTIONS': {\n CUSTOM: 'Personalizado',\n LAST_30_DAYS: 'Últimos 30 días',\n LAST_60_DAYS: 'Últimos 60 días',\n LAST_90_DAYS: 'Últimos 90 días',\n LAST_6_MONTHS: 'Últimos 6 meses',\n LAST_12_MONTHS: 'Últimos 12 meses',\n NEXT_30_DAYS: 'Próximos 30 días',\n NEXT_60_DAYS: 'Próximos 60 días',\n NEXT_90_DAYS: 'Próximos 90 días',\n NEXT_6_MONTHS: 'Próximos 6 meses',\n NEXT_12_MONTHS: 'Próximos 12 meses'\n }\n }\n },\n 'es-MX': {\n EDIT: 'Editar',\n 'NO-RESULTS': 'No se encontraron resultados',\n 'NO-DATA': 'Sin datos',\n 'NO-DATA-ADDRESS': 'No se encontraron direcciones con esta búsqueda',\n 'NOT-PROVIDED': 'No informado',\n LOADING: 'Cargando...',\n 'DATE-RANGE': {\n 'START-DATE': 'Fecha de inicio',\n 'END-DATE': 'Fecha de termino',\n INVALID: 'Rango de fechas no válido',\n ACTIONS: {\n CANCEL: 'Cancelar',\n APPLY: 'Aplicar'\n },\n 'WEEK-DAYS': ['Dom.', 'Lun.', 'Mar.', 'Mié.', 'Jue.', 'Vie.', 'Sab.'],\n MONTHS: {\n 0: 'Enero',\n 1: 'Febrero',\n 2: 'Marzo',\n 3: 'Abril',\n 4: 'Mayo',\n 5: 'Junio',\n 6: 'Julio',\n 7: 'Agosto',\n 8: 'Septiembre',\n 9: 'Octubre',\n 10: 'Noviembre',\n 11: 'Diciembre'\n },\n 'QUICK-ACTIONS': {\n CUSTOM: 'Personalizado',\n LAST_30_DAYS: 'Últimos 30 días',\n LAST_60_DAYS: 'Últimos 60 días',\n LAST_90_DAYS: 'Últimos 90 días',\n LAST_6_MONTHS: 'Últimos 6 meses',\n LAST_12_MONTHS: 'Últimos 12 meses',\n NEXT_30_DAYS: 'Próximos 30 días',\n NEXT_60_DAYS: 'Próximos 60 días',\n NEXT_90_DAYS: 'Próximos 90 días',\n NEXT_6_MONTHS: 'Próximos 6 meses',\n NEXT_12_MONTHS: 'Próximos 12 meses'\n }\n }\n },\n 'en-US': {\n EDIT: 'Edit',\n 'NO-RESULTS': 'No results found',\n 'NO-DATA': 'No data',\n 'NO-DATA-ADDRESS': 'No address found with this search',\n 'NOT-PROVIDED': 'Not provided',\n LOADING: 'Loading...',\n 'DATE-RANGE': {\n 'START-DATE': 'Start date',\n 'END-DATE': 'End Date',\n INVALID: 'Invalid date range',\n ACTIONS: {\n CANCEL: 'Cancel',\n APPLY: 'Apply'\n },\n 'WEEK-DAYS': ['Sun.', 'Mon.', 'Tue.', 'Wed.', 'Thu.', 'Fri.', 'Sat.'],\n MONTHS: {\n 0: 'January',\n 1: 'February',\n 2: 'March',\n 3: 'April',\n 4: 'May',\n 5: 'June',\n 6: 'July',\n 7: 'August',\n 8: 'September',\n 9: 'October',\n 10: 'November',\n 11: 'December'\n },\n 'QUICK-ACTIONS': {\n CUSTOM: 'Custom',\n LAST_30_DAYS: 'Last 30 days',\n LAST_60_DAYS: 'Last 60 days',\n LAST_90_DAYS: 'Last 90 days',\n LAST_6_MONTHS: 'Last 6 months',\n LAST_12_MONTHS: 'Last 12 months',\n NEXT_30_DAYS: 'Next 30 days',\n NEXT_60_DAYS: 'Next 60 days',\n NEXT_90_DAYS: 'Next 90 days',\n NEXT_6_MONTHS: 'Next 6 months',\n NEXT_12_MONTHS: 'Next 12 months'\n }\n }\n }\n });\n\n constructor() {\n const tokenSubject = inject(MECX_I18N_WRAPPER, { optional: true });\n tokenSubject?.pipe(takeUntilDestroyed(this._destroyRef)).subscribe((value) => {\n this.handleWrapperValues(value);\n });\n }\n\n private handleWrapperValues(value: string) {\n try {\n const locale = this._localeId || 'pt-BR';\n const wrappedData = JSON.parse(value);\n const currentData = this._data$.value;\n\n const updated = {\n ...currentData,\n [locale]: {\n ...currentData[locale],\n ...wrappedData\n }\n };\n\n this._data$.next(updated);\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error(`MonkeyDictionaryService - handleWrapperValues -> ${e}`);\n }\n }\n\n get(key: string) {\n const locale = this._localeId || 'pt-BR';\n return this._data$.pipe(\n map((data) => {\n return data[locale]?.[key] ?? null;\n })\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 { computed, Injectable, signal } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyStepperService {\n private _steppers = signal<Map<string, string>>(new Map());\n\n currentStep(id: string) {\n return computed(() => {\n return this._steppers().get(id);\n });\n }\n\n setCurrentStep(id: string, step: string): void {\n this._steppers.update((items) => {\n return new Map(items).set(id, step);\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 { ComponentRef } from '@angular/core';\nimport { MonkeyToastComponent } from '../components';\n\nexport class MonkeyToastRef {\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 MonkeyToastPosition =\n | 'top-center'\n | 'top-left'\n | 'top-right'\n | 'bottom-center'\n | 'bottom-left'\n | 'bottom-right';\n\nexport type MonkeyToastType = 'default' | 'success' | 'error' | 'warning' | 'question';\n\nexport type ToastConfig = {\n type?: MonkeyToastType;\n icon?: string;\n isClosable?: boolean;\n message: string;\n position?: MonkeyToastPosition;\n duration?: number;\n keepOpen?: boolean;\n actionLabel?: string;\n actionIcon?: string;\n action?: () => void;\n closeOnAction?: boolean;\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 './alert';\nexport * from './autocomplete';\nexport * from './autocomplete-address';\nexport * from './breadcrumb';\nexport * from './button';\nexport * from './popover';\nexport * from './sizes';\nexport * from './table';\nexport * from './toast';\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { GlobalPositionStrategy, Overlay } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { inject, Injectable } from '@angular/core';\nimport { getRandomString } from '../../utils';\nimport { MonkeyToastComponent } from '../components';\nimport { type MonkeyToastPosition, MonkeyToastRef, type ToastConfig } from '../interfaces';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonkeyToastService {\n private lastToast?: MonkeyToastRef;\n\n private overlay = inject(Overlay);\n\n private getPositionStrategy(position?: MonkeyToastPosition): 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 MonkeyToastRef(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 ************************* */\nexport * from './address.service';\nexport * from './dictionary.service';\nexport * from './stepper.service';\nexport * from './toast.service';\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 abstract onClear?(): 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 ************************* */\nimport {\n AfterContentChecked,\n AfterContentInit,\n booleanAttribute,\n ChangeDetectorRef,\n Component,\n computed,\n ContentChild,\n ContentChildren,\n DEFAULT_CURRENCY_CODE,\n DestroyRef,\n effect,\n ElementRef,\n inject,\n input,\n Input,\n OnDestroy,\n output,\n QueryList,\n signal,\n ViewEncapsulation\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { merge, Subscription } from 'rxjs';\nimport { IdGenerator } from '../../../utils';\nimport {\n MonkeyErrorDirective,\n MonkeyHelperDirective,\n MonkeyInfoDirective,\n MonkeyLabelDirective,\n MonkeyPrefixDirective,\n MonkeySuffixDirective\n} from '../../directives';\nimport { MonkeyDisplayDirective } from '../../directives/display';\nimport { MonkeySize } from '../../interfaces';\nimport { MonkeyDictionaryService } 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.component.html',\n styleUrl: './form-field.component.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 '[class.mecx-form-field-borderless]': 'hideBorder()',\n '[attr.id]': 'id',\n '[id]': 'id',\n '[class]': 'size'\n },\n standalone: false\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 hideAction!: boolean;\n\n @Input({ transform: booleanAttribute })\n enableClear!: boolean;\n\n @Input() size: MonkeySize = 'md';\n\n displayOnly = input<boolean>(false);\n\n onDisplayOnlyChange = output<boolean>();\n\n @ContentChild(MonkeyFormFieldControl) private _formFieldControl!: MonkeyFormFieldControl;\n\n @ContentChild(MonkeyDisplayDirective)\n private _displayChild?: MonkeyDisplayDirective;\n\n @ContentChildren(MonkeyLabelDirective, { descendants: true })\n private _labelChildren!: QueryList<MonkeyLabelDirective>;\n\n @ContentChildren(MonkeyHelperDirective, { descendants: true })\n private _helperChildren!: QueryList<MonkeyHelperDirective>;\n\n @ContentChildren(MonkeyPrefixDirective, { descendants: true })\n private _prefixChildren!: QueryList<MonkeyPrefixDirective>;\n\n @ContentChildren(MonkeySuffixDirective, { descendants: true })\n private _suffixChildren!: QueryList<MonkeySuffixDirective>;\n\n @ContentChildren(MonkeyInfoDirective, { descendants: true })\n private _infoChildren!: QueryList<MonkeyInfoDirective>;\n\n @ContentChildren(MonkeyErrorDirective, { descendants: true })\n private _errorChildren!: QueryList<MonkeyErrorDirective>;\n\n public elementRef = inject(ElementRef);\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 _destroyRef = inject(DestroyRef);\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 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 hideBorder = computed(() => {\n const { control } = this;\n return (\n control?.type === 'input-code' ||\n control?.type === 'radio-button' ||\n this.internalDisplayOnly()\n );\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 if (this.showLoading) {\n return false;\n }\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 showClear = computed(() => {\n return (\n !!this.control.ngControl?.control?.value &&\n !this.control.disabled &&\n !this.control.loading &&\n (!this.hideAction || this.enableClear) &&\n !this.displayOnly()\n );\n });\n\n get showCalendar(): boolean {\n return this.control.type === 'date' && !this.hideAction;\n }\n\n get showCurrency(): boolean {\n return this.control.currency || false;\n }\n\n get showPercent(): boolean {\n return this.control.percent || false;\n }\n\n get showLoading(): boolean {\n return this.control.loading || false;\n }\n\n internalDisplayOnly = signal<boolean>(this.displayOnly());\n\n readonly editDictionary = inject(MonkeyDictionaryService).get('EDIT');\n\n constructor() {\n // eslint-disable-next-line no-self-assign\n this.id = this.id;\n\n effect(() => {\n const value = this.displayOnly();\n this.internalDisplayOnly.set(value);\n });\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(takeUntilDestroyed(this._destroyRef))\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 if (this.displayOnly() && !this._displayChild) {\n throw new Error(\n 'monkey-form-field: When `displayOnly` is true, a <monkey-display> element is required inside.'\n );\n }\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 }\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 (\n !this.showLoading &&\n isControlEnabled &&\n isTouched &&\n isInvalid &&\n isNotFocused &&\n isControlDisableToBeDirty\n ) {\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 this.control?.onClear?.();\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 onCancelDisplayOnly(event: MouseEvent) {\n event.preventDefault();\n event.stopPropagation();\n this.internalDisplayOnly.set(false);\n this.onDisplayOnlyChange.emit(false);\n setTimeout(() => {\n this.control.onContainerClick(event);\n }, 0);\n }\n}\n","@if (internalDisplayOnly()) {\n <div class=\"mecx-form-field-display-only\" (click)=\"onCancelDisplayOnly($event)\">\n <div class=\"mecx-form-field-display-only-header\">\n <ng-container *ngTemplateOutlet=\"labelTpl\"></ng-container>\n </div>\n <div class=\"mecx-form-field-display-only-body\">\n <ng-content select=\"monkey-display\"></ng-content>\n </div>\n <div class=\"mecx-form-field-display-only-action\">\n {{ editDictionary | async }} <util-icon name=\"edit\" />\n </div>\n </div>\n} @else {\n @if (showHeader) {\n <div class=\"mecx-form-field-header\" (click)=\"control.onContainerClick($event)\">\n <label [id]=\"labelId\" [attr.for]=\"control.id\">\n <ng-container *ngTemplateOutlet=\"labelTpl\"></ng-container>\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 <util-icon class=\"mecx-clear\" name=\"clear\" (click)=\"onClear($event)\" />\n }\n @if (showCalendar) {\n <util-icon class=\"mecx-calendar\" name=\"calendar\" (click)=\"onOpenCalendar($event)\" />\n }\n @if (showLoading) {\n <util-icon class=\"mecx-form-field-loading\" name=\"loading\" />\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\n<ng-template #labelTpl>\n <ng-content select=\"monkey-label\"></ng-content>\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 { NgModule } from '@angular/core';\nimport { UtilIconComponent } from '../../../utils';\nimport { MonkeyFormFieldComponent } from './form-field.component';\n\n@NgModule({\n imports: [CommonModule, UtilIconComponent],\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 ************************* */\nexport * from './form-field-control';\nexport * from './form-field.component';\nexport * from './form-field.module';\nexport * from './utils';\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 {\n booleanAttribute,\n Component,\n ElementRef,\n HostListener,\n inject,\n Input,\n input,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { IdGenerator, UtilIconComponent } from '../../../utils';\n\n@Component({\n selector: 'monkey-option',\n standalone: true,\n imports: [CommonModule, UtilIconComponent],\n template: `\n @if (type === 'checkbox') {\n <span class=\"mecx-option-checkbox\">\n <util-icon class=\"icon\" name=\"check\" />\n </span>\n }\n <div #content><ng-content /></div>\n `,\n styleUrls: ['./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 '[class]': 'type'\n }\n})\nexport class MonkeyOptionComponent {\n private readonly idGenerator = inject(IdGenerator);\n\n @ViewChild('content', { static: true }) _content: ElementRef<HTMLElement> | undefined;\n\n readonly value = input<any>();\n\n @Input({ transform: booleanAttribute }) disabled = false;\n\n @Input() type = 'select';\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 private handleAction(event: MouseEvent | KeyboardEvent) {\n if (this.disabled) {\n event.stopPropagation();\n event.preventDefault();\n } else {\n this.action?.();\n }\n }\n\n @HostListener('click', ['$event'])\n onClick(event: MouseEvent): void {\n this.handleAction(event);\n }\n\n @HostListener('keydown', ['$event'])\n handleKeyDown(event: KeyboardEvent): void {\n const { key } = event;\n\n if (key === 'Enter' || key === ' ') {\n this.handleAction(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 ************************* */\nexport * from './option.component';\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 {\n AfterContentInit,\n booleanAttribute,\n ChangeDetectorRef,\n Component,\n ContentChild,\n DestroyRef,\n ElementRef,\n EventEmitter,\n inject,\n Input,\n OnDestroy,\n Optional,\n Output,\n TemplateRef,\n ViewChild\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport {\n ControlValueAccessor,\n FormsModule,\n NgControl,\n ReactiveFormsModule,\n Validators\n} from '@angular/forms';\nimport {\n catchError,\n debounceTime,\n distinctUntilChanged,\n Observable,\n of,\n Subject,\n switchMap\n} from 'rxjs';\nimport { IdGenerator, UtilIconComponent } from '../../../utils';\nimport { MonkeyDirectivesModule } from '../../directives';\nimport { MonkeyAutocompleteData, MonkeyAutocompleteResponse } from '../../interfaces';\nimport { MonkeyDictionaryService } from '../../services';\nimport {\n MonkeyFormFieldComponent,\n MonkeyFormFieldControl,\n MonkeyFormFieldModule\n} from '../form-field';\nimport { MonkeyOptionComponent } from '../option';\n\n@Component({\n selector: 'monkey-autocomplete',\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n MonkeyFormFieldModule,\n MonkeyDirectivesModule,\n MonkeyOptionComponent,\n UtilIconComponent\n ],\n template: `\n <input\n #input\n type=\"text\"\n autocomplete=\"off\"\n class=\"mecx-input\"\n [disabled]=\"disabled\"\n [placeholder]=\"placeholder\"\n (input)=\"onInputChange($event)\"\n (focus)=\"_onFocus()\"\n (blur)=\"_onBlur($event)\"\n [attr.id]=\"inputId\"\n [(ngModel)]=\"searchData\"\n />\n\n <ng-template\n [monkeyPopover]=\"showPopOver\"\n [monkeyPopoverTarget]=\"elementTarget\"\n [monkeyPopoverClosed]=\"closePopOver\"\n monkeyPopoverDir=\"ltr\"\n [monkeyPopoverBackdrop]=\"false\"\n [monkeyPopoverHideHeader]=\"true\"\n [monkeyPopoverWatch]=\"true\"\n >\n <div\n #containerWrapper\n class=\"mecx-autocomplete-wrapper\"\n [style.width.px]=\"initialDisplayWidth\"\n >\n <div *ngIf=\"options.length > 0\" class=\"mecx-autocomplete-options\">\n <div\n class=\"mecx-autocomplete-option\"\n *ngFor=\"let option of options\"\n (click)=\"onSelect(option)\"\n [class.mecx-autocomplete-selected]=\"isSelected(option)\"\n >\n <ng-container\n *ngTemplateOutlet=\"optionTemplate || defaultTemplate; context: { $implicit: option }\"\n >\n </ng-container>\n </div>\n </div>\n @if (loading) {\n <div class=\"mecx-autocomplete-loading\">\n <util-icon name=\"loading\" />\n {{ loadingDictionary | async }}\n </div>\n }\n @if (!loading && !options.length) {\n <div class=\"mecx-autocomplete-no-data\">\n <util-icon class=\"mecx-autocomplete-no-data-icon\" name=\"searchFail\" />\n {{ noDataDictionary | async }}\n </div>\n }\n </div>\n\n <ng-template #defaultTemplate let-option>\n <monkey-option>\n {{ option.description }}\n </monkey-option>\n </ng-template>\n </ng-template>\n `,\n styleUrl: './autocomplete.component.scss',\n providers: [\n // eslint-disable-next-line no-use-before-define\n { provide: MonkeyFormFieldControl, useExisting: MonkeyAutocompleteComponent }\n ],\n host: {\n '[attr.data-testid]': \"'monkey-autocomplete'\",\n class: 'mecx-autocomplete',\n '[class.mecx-autocomplete-disabled]': '_disabled',\n '[class.mecx-autocomplete-focused]': 'focused',\n '[attr.id]': 'id',\n '[attr.tabindex]': 'disabled ? -1 : tabIndex',\n '(focus)': '_onFocus()',\n '(blur)': '_onBlur($event)'\n }\n})\nexport class MonkeyAutocompleteComponent\n implements MonkeyFormFieldControl, ControlValueAccessor, AfterContentInit, OnDestroy\n{\n @Input({ required: true }) placeholder!: string;\n\n @Input() debounce = 300;\n\n @Input() tabIndex = 0;\n\n @Input() fetchOptions!: (queryOrLink: string | any) => Observable<MonkeyAutocompleteResponse>;\n\n @Output() onChange = new EventEmitter();\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 _disabled: boolean = false;\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 && value !== undefined) {\n this._value = value;\n // this.handleValue(value);\n this._onChange(value);\n this._onTouched(value);\n }\n }\n\n get value(): any {\n return this._value;\n }\n\n _value: string | null = null;\n\n constructor(\n @Optional() public formField: MonkeyFormFieldComponent,\n private changeDetectorRef: ChangeDetectorRef\n ) {\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n ngControl: NgControl | null = inject(NgControl, { self: true, optional: true })!;\n\n private readonly idGenerator = inject(IdGenerator);\n\n readonly id: string = this.idGenerator.getId('monkey-autocomplete-');\n\n readonly inputId: string = this.idGenerator.getId('monkey-autocomplete-input-');\n\n focused: boolean = false;\n\n readonly type: string = 'autocomplete';\n\n readonly stateChanges = new Subject<void>();\n\n protected _elementRef =\n inject<ElementRef<HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement>>(ElementRef);\n\n _onChange: any = () => {};\n\n _onTouched: any = () => {};\n\n get elementTarget() {\n if (this.formField?.elementRef) {\n return this.formField?.elementRef.nativeElement.querySelector('.mecx-form-field-body');\n }\n\n return this._elementRef.nativeElement;\n }\n\n private _searchEvent = new EventEmitter();\n\n private _destroyRef = inject(DestroyRef);\n\n private _resizeObserver?: ResizeObserver;\n\n initialDisplayWidth = 0;\n\n showPopOver = false;\n\n options: MonkeyAutocompleteData[] = [];\n\n readonly loadingDictionary = inject(MonkeyDictionaryService).get('LOADING');\n\n readonly noDataDictionary = inject(MonkeyDictionaryService).get('NO-DATA');\n\n loading = false;\n\n searchData = '';\n\n @ContentChild('optionTemplate', { static: false }) optionTemplate?: TemplateRef<any>;\n\n @ViewChild('containerWrapper') containerWrapper!: ElementRef;\n\n private updateWidth() {\n this.initialDisplayWidth = this.elementTarget?.offsetWidth - 12;\n }\n\n closePopOver = () => {\n setTimeout(() => {\n this.focused = false;\n this.showPopOver = false;\n this.changeDetectorRef.markForCheck();\n });\n };\n\n ngAfterContentInit(): void {\n this._searchEvent\n ?.pipe(\n debounceTime(this.debounce),\n distinctUntilChanged((prev, current) => {\n if (prev === current) {\n this.loading = false;\n }\n\n return prev === current;\n }),\n switchMap((query) => {\n return this.fetchOptions\n ? this.fetchOptions(query || '').pipe(\n catchError(() => {\n return of({ data: [] });\n })\n )\n : of({ data: [] });\n }),\n takeUntilDestroyed(this._destroyRef)\n )\n .subscribe({\n next: (result: MonkeyAutocompleteResponse) => {\n this.openPopOver();\n this.options = result.data;\n this.loading = false;\n }\n });\n\n this._resizeObserver = new ResizeObserver(() => {\n return this.updateWidth();\n });\n this._resizeObserver.observe(this._elementRef.nativeElement);\n this.updateWidth();\n }\n\n ngOnDestroy(): void {\n this._resizeObserver?.disconnect();\n }\n\n onContainerClick(event: MouseEvent): void {\n event.preventDefault();\n }\n\n onClear(): void {\n this.searchData = '';\n this._onChange(null);\n this.onChange.emit(null);\n }\n\n _onFocus() {\n if (!this.disabled) {\n this.focused = true;\n this._onTouched();\n this.stateChanges.next();\n if (this.options.length) {\n this.openPopOver();\n }\n }\n }\n\n _onBlur(event: FocusEvent) {\n const next = event?.relatedTarget as HTMLElement | null;\n if (next && this.containerWrapper?.nativeElement?.contains(next)) {\n return;\n }\n\n this.focused = false;\n this.stateChanges.next();\n this.closePopOver();\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 setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled;\n }\n\n writeValue(value: any): void {\n if (this._value !== value && value !== undefined) {\n this._value = value;\n this._onChange(value);\n this._onTouched(value);\n }\n }\n\n openPopOver() {\n this.showPopOver = true;\n }\n\n onInputChange(event: Event) {\n const { value } = event.target as HTMLInputElement;\n this.loading = true;\n this._searchEvent.next(value);\n this.openPopOver();\n }\n\n onSelect(option: MonkeyAutocompleteData) {\n this.value = option.value;\n this._onChange(this.value);\n this.onChange.emit(this.value);\n this.searchData = option.description;\n this.closePopOver();\n }\n\n isSelected(option: MonkeyAutocompleteData) {\n return option?.value === this.value;\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 './autocomplete.component';\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 {\n AfterContentInit,\n booleanAttribute,\n ChangeDetectorRef,\n Component,\n ContentChild,\n DestroyRef,\n ElementRef,\n EventEmitter,\n inject,\n Input,\n OnDestroy,\n Optional,\n Output,\n TemplateRef,\n ViewChild\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport {\n ControlValueAccessor,\n FormsModule,\n NgControl,\n ReactiveFormsModule,\n Validators\n} from '@angular/forms';\nimport { catchError, debounceTime, distinctUntilChanged, of, Subject, switchMap } from 'rxjs';\nimport { IdGenerator, UtilIconComponent } from '../../../utils';\nimport { MonkeyDirectivesModule } from '../../directives';\nimport { GoogleApiPlaces } from '../../interfaces';\nimport { MonkeyDictionaryService, MonkeyEcxAddressService } from '../../services';\nimport {\n MonkeyFormFieldComponent,\n MonkeyFormFieldControl,\n MonkeyFormFieldModule\n} from '../form-field';\nimport { MonkeyOptionComponent } from '../option';\n\n@Component({\n selector: 'monkey-autocomplete-address',\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n MonkeyFormFieldModule,\n MonkeyDirectivesModule,\n MonkeyOptionComponent,\n UtilIconComponent\n ],\n template: `\n <input\n #input\n type=\"text\"\n autocomplete=\"off\"\n class=\"mecx-input\"\n [disabled]=\"disabled\"\n [placeholder]=\"placeholder\"\n (input)=\"onInputChange($event)\"\n (focus)=\"_onFocus()\"\n (blur)=\"_onBlur($event)\"\n [attr.id]=\"inputId\"\n [(ngModel)]=\"searchData\"\n />\n\n <ng-template\n [monkeyPopover]=\"showPopOver\"\n [monkeyPopoverTarget]=\"elementTarget\"\n [monkeyPopoverClosed]=\"closePopOver\"\n monkeyPopoverDir=\"ltr\"\n [monkeyPopoverBackdrop]=\"false\"\n [monkeyPopoverHideHeader]=\"true\"\n [monkeyPopoverWatch]=\"true\"\n >\n <div\n #containerWrapper\n class=\"mecx-autocomplete-address-wrapper\"\n [style.width.px]=\"initialDisplayWidth\"\n >\n <div class=\"flex-grow-1\">\n @if (loading) {\n <div class=\"mecx-autocomplete-address-loading\">\n <util-icon name=\"loading\" />\n {{ loadingDictionary | async }}\n </div>\n }\n <div *ngIf=\"options.length > 0\" class=\"mecx-autocomplete-address-options\">\n <monkey-option\n class=\"mecx-autocomplete-address-option\"\n *ngFor=\"let option of options\"\n (click)=\"onSelect(option)\"\n [class.mecx-option-selected]=\"isSelected(option)\"\n >\n <util-icon class=\"mecx-autocomplete-address-option-icon\" name=\"location\" />\n <span [innerHTML]=\"option.adrFormatAddress\"></span>\n </monkey-option>\n </div>\n @if (!loading && !options.length) {\n <div class=\"mecx-autocomplete-address-no-data\">\n <util-icon class=\"mecx-autocomplete-address-no-data-icon\" name=\"searchFail\" />\n {{ noDataDictionary | async }}\n </div>\n }\n </div>\n <div class=\"mecx-autocomplete-address-footer\">\n <util-icon name=\"googleMaps\" />\n </div>\n </div>\n </ng-template>\n `,\n styleUrl: './autocomplete-address.component.scss',\n providers: [\n // eslint-disable-next-line no-use-before-define\n { provide: MonkeyFormFieldControl, useExisting: MonkeyAutocompleteAddressComponent }\n ],\n host: {\n '[attr.data-testid]': \"'monkey-autocomplete-address'\",\n class: 'mecx-autocomplete-address',\n '[class.mecx-autocomplete-address-disabled]': '_disabled',\n '[class.mecx-autocomplete-address-focused]': 'focused',\n '[attr.id]': 'id',\n '[attr.tabindex]': 'disabled ? -1 : tabIndex',\n '(focus)': '_onFocus()',\n '(blur)': '_onBlur($event)'\n }\n})\nexport class MonkeyAutocompleteAddressComponent\n implements MonkeyFormFieldControl, ControlValueAccessor, AfterContentInit, OnDestroy\n{\n @Input({ required: true }) placeholder!: string;\n\n @Input() debounce = 300;\n\n @Input() tabIndex = 0;\n\n @Output() onChange = new EventEmitter();\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 _disabled: boolean = false;\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 && value !== undefined) {\n this._value = value;\n if (!this.searchData) {\n this.searchData = value;\n }\n this._onChange(value);\n this._onTouched(value);\n }\n }\n\n get value(): any {\n return this._value;\n }\n\n _value: string | null = null;\n\n constructor(\n @Optional() public formField: MonkeyFormFieldComponent,\n private changeDetectorRef: ChangeDetectorRef\n ) {\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n ngControl: NgControl | null = inject(NgControl, { self: true, optional: true })!;\n\n private readonly idGenerator = inject(IdGenerator);\n\n readonly id: string = this.idGenerator.getId('monkey-autocomplete-address-');\n\n readonly inputId: string = this.idGenerator.getId('monkey-autocomplete-address-input-');\n\n focused: boolean = false;\n\n readonly type: string = 'autocomplete-address';\n\n readonly stateChanges = new Subject<void>();\n\n protected _elementRef =\n inject<ElementRef<HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement>>(ElementRef);\n\n _onChange: any = () => {};\n\n _onTouched: any = () => {};\n\n private readonly _addressService = inject(MonkeyEcxAddressService);\n\n private _searchEvent = new EventEmitter();\n\n private _destroyRef = inject(DestroyRef);\n\n private _resizeObserver?: ResizeObserver;\n\n initialDisplayWidth = 0;\n\n showPopOver = false;\n\n options: GoogleApiPlaces[] = [];\n\n readonly loadingDictionary = inject(MonkeyDictionaryService).get('LOADING');\n\n readonly noDataDictionary = inject(MonkeyDictionaryService).get('NO-DATA-ADDRESS');\n\n loading = false;\n\n searchData = '';\n\n get elementTarget() {\n if (this.formField?.elementRef) {\n return this.formField?.elementRef.nativeElement.querySelector('.mecx-form-field-body');\n }\n\n return this._elementRef.nativeElement;\n }\n\n @ContentChild('optionTemplate', { static: false }) optionTemplate?: TemplateRef<any>;\n\n @ViewChild('containerWrapper') containerWrapper!: ElementRef;\n\n private updateWidth() {\n this.initialDisplayWidth = this.elementTarget?.offsetWidth - 12;\n }\n\n closePopOver = () => {\n setTimeout(() => {\n this.focused = false;\n this.showPopOver = false;\n this.changeDetectorRef.markForCheck();\n });\n };\n\n ngAfterContentInit(): void {\n this._searchEvent\n ?.pipe(\n debounceTime(this.debounce),\n distinctUntilChanged((prev, current) => {\n if (prev === current) {\n this.loading = false;\n }\n\n return prev === current;\n }),\n switchMap((query) => {\n return this._addressService.get(query || '').pipe(\n catchError(() => {\n return of([]);\n })\n );\n }),\n takeUntilDestroyed(this._destroyRef)\n )\n .subscribe({\n next: (result: any[]) => {\n this.openPopOver();\n this.options = result;\n this.loading = false;\n }\n });\n\n this._resizeObserver = new ResizeObserver(() => {\n return this.updateWidth();\n });\n this._resizeObserver.observe(this._elementRef.nativeElement);\n this.updateWidth();\n }\n\n ngOnDestroy(): void {\n this._resizeObserver?.disconnect();\n }\n\n onContainerClick(event: MouseEvent): void {\n event.preventDefault();\n }\n\n onClear(): void {\n this.searchData = '';\n this._onChange(null);\n this.onChange.emit(null);\n }\n\n _onFocus() {\n if (!this.disabled) {\n this.focused = true;\n this._onTouched();\n this.stateChanges.next();\n if (this.options.length) {\n this.openPopOver();\n }\n }\n }\n\n _onBlur(event: FocusEvent) {\n const next = event?.relatedTarget as HTMLElement | null;\n if (next && this.containerWrapper?.nativeElement?.contains(next)) {\n return;\n }\n\n this.focused = false;\n this.stateChanges.next();\n this.closePopOver();\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 setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled;\n }\n\n writeValue(value: any): void {\n this.value = value;\n }\n\n openPopOver() {\n this.showPopOver = true;\n }\n\n onInputChange(event: Event) {\n const { value } = event.target as HTMLInputElement;\n this.loading = true;\n this._searchEvent.next(value);\n this.openPopOver();\n }\n\n onSelect(option: GoogleApiPlaces) {\n this.value = option;\n this._onChange(this.value);\n this.onChange.emit(this.value);\n this.searchData = option?.formattedAddress;\n this.closePopOver();\n }\n\n isSelected(option: GoogleApiPlaces) {\n return option === this.value;\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 './autocomplete-address.component';\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 effect,\n HostBinding,\n inject,\n input,\n InputSignal,\n ViewEncapsulation\n} from '@angular/core';\nimport { IdGenerator, objHaveProperty } from '../../../utils';\nimport { MonkeySize } from '../../interfaces';\nimport { MonkeyIconComponent } from '../icon';\n\ntype MonkeyAvatarSrc = { iconName: string } | { imageUrl: string } | { name: string };\ntype MonkeyAvatarType = 'icon' | 'image' | 'name';\n\n@Component({\n imports: [MonkeyIconComponent],\n encapsulation: ViewEncapsulation.None,\n selector: 'monkey-avatar',\n styleUrl: './avatar.component.scss',\n templateUrl: './avatar.component.html',\n host: {\n 'data-testid': 'monkey-avatar',\n '[attr.id]': '_id',\n '[id]': '_id'\n }\n})\nexport class MonkeyAvatarComponent {\n protected _id: any = inject(IdGenerator).getId('monkey-avatar-');\n\n readonly size: InputSignal<MonkeySize> = input('xs' as MonkeySize);\n\n readonly src: InputSignal<MonkeyAvatarSrc> = input.required();\n\n readonly id: InputSignal<string | undefined> = input();\n\n public avatar = '?';\n\n public avatarType: MonkeyAvatarType = 'name';\n\n @HostBinding('class')\n get classes(): string {\n return this.size();\n }\n\n constructor() {\n effect(() => {\n this._id = this.id() || this._id;\n\n this.handleAvatarType();\n });\n }\n\n private getInitial(text: string): string {\n return text.toUpperCase()[0];\n }\n\n private handleAvatarType(): void {\n const { getInitial, src } = this;\n const value = src();\n\n if (objHaveProperty(value, 'iconName')) {\n this.avatarType = 'icon';\n this.avatar = (value as { iconName: string }).iconName;\n\n return;\n }\n\n if (objHaveProperty(value, 'imageUrl')) {\n this.avatarType = 'image';\n this.avatar = (value as { imageUrl: string }).imageUrl;\n\n return;\n }\n\n if (objHaveProperty(value, 'name')) {\n this.avatarType = 'name';\n this.avatar = getInitial((value as { name: string }).name);\n }\n }\n}\n","@switch (avatarType) {\n @case ('name') {\n <p [class]=\"size()\">{{ avatar }}</p>\n }\n\n @case ('icon') {\n <monkey-icon [icon]=\"avatar\" [size]=\"size()\" />\n }\n\n @case ('image') {\n <img loading=\"lazy\" [alt]=\"'Avatar ' + avatarType\" [class]=\"size()\" [src]=\"avatar\" />\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 './avatar.component';\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, HostBinding, inject, Input } from '@angular/core';\nimport { IdGenerator } from '../../../utils';\nimport { MonkeySize } from '../../interfaces';\nimport { MonkeyIconComponent } from '../icon';\n\n@Component({\n selector: 'monkey-badge',\n imports: [CommonModule, MonkeyIconComponent],\n templateUrl: './badge.component.html',\n styleUrl: './badge.component.scss',\n host: {\n 'data-testid': 'monkey-badge',\n '[attr.id]': 'id'\n }\n})\nexport class MonkeyBadgeComponent {\n private readonly idGenerator = inject(IdGenerator);\n\n readonly id: string = this.idGenerator.getId('monkey-badge-');\n\n @HostBinding('style') hostVariables = {};\n\n @Input() set type(value: 'success' | 'alert' | 'error' | 'info' | 'default') {\n const styles = {\n success: { background: '#F5FFFB', color: '#005236' },\n alert: { background: '#FFF8EB', color: '#1F2024' },\n error: { background: '#FFECEC', color: '#DB0505' },\n info: { background: '#F4EBFF', color: '#2D0264' },\n default: { background: '#F1F2F3', color: '#1F2024' }\n }[value];\n\n this.hostVariables = {\n '--monkey-badge-background': styles?.background,\n '--monkey-badge-color': styles?.color\n };\n }\n\n @Input()\n set typeColors(value: { background: string; color: string }) {\n if (value) {\n this.hostVariables = {\n '--monkey-badge-background': value?.background,\n '--monkey-badge-color': value?.color\n };\n }\n }\n\n @HostBinding('class')\n @Input()\n size: MonkeySize = 'sm';\n\n @HostBinding('class.large-padding')\n @Input({ transform: booleanAttribute })\n largePadding = false;\n\n @Input() icon: string = '';\n\n @Input() text: string = '';\n}\n","@if (text) {\n @if (icon) {\n <monkey-icon class=\"icon\" [icon]=\"icon\"></monkey-icon>\n }\n <span>\n {{ text }}\n </span>\n} @else {\n <ng-content></ng-content>\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 './badge.component';\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 { MonkeyBreadcrumb } from '../../interfaces';\n\n@Component({\n selector: 'monkey-breadcrumb',\n imports: [CommonModule],\n templateUrl: './breadcrumb.component.html',\n styleUrl: './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!: MonkeyBreadcrumb;\n\n @Input({ required: true }) last!: MonkeyBreadcrumb;\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: MonkeyBreadcrumb) {\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 ************************* */\nexport * from './breadcrumb.component';\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 Component,\n ElementRef,\n HostListener,\n inject,\n Input,\n ViewEncapsulation\n} from '@angular/core';\nimport { UtilIconComponent } from '../../../utils';\nimport { IdGenerator } from '../../../utils/id-generator';\nimport { MonkeyButtonColor, MonkeyButtonType } from '../../interfaces/button';\nimport { MonkeySize } from '../../interfaces/sizes';\n\n@Component({\n encapsulation: ViewEncapsulation.None,\n imports: [UtilIconComponent, CommonModule],\n selector: 'monkey-button',\n standalone: true,\n styleUrl: './button.component.scss',\n templateUrl: './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() color: MonkeyButtonColor = 'default';\n\n @Input() size: MonkeySize = 'md';\n\n @Input() type: MonkeyButtonType = 'primary';\n\n @Input() loading!: boolean;\n\n private readonly elementRef = inject(ElementRef);\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: MouseEvent): void {\n if (this.disabled) {\n event.stopPropagation();\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n }\n\n get element(): HTMLElement {\n return this.elementRef.nativeElement;\n }\n}\n","<button class=\"mecx-button {{ type }} {{ size }} {{ color }}\" [disabled]=\"disabled || loading\">\n <div class=\"content\">\n <ng-content *ngIf=\"!loading\" select=\"[first]\"></ng-content>\n <span><ng-content></ng-content></span>\n <ng-content *ngIf=\"!loading\" select=\"[last]\"></ng-content>\n @if (loading) {\n <util-icon class=\"mecx-button-loading\" name=\"loading\" />\n }\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 ************************* */\nexport * from './button.component';\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { animate, keyframes, style, transition, trigger } from '@angular/animations';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n DestroyRef,\n EventEmitter,\n forwardRef,\n inject,\n Injector,\n Input,\n OnChanges,\n OnInit,\n Output,\n QueryList\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\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 { IdGenerator, UtilIconComponent } from '../../../utils';\nimport { MonkeyHelperDirective, MonkeyInfoDirective, MonkeyLabelDirective } from '../../directives';\n\n@Component({\n selector: 'monkey-checkbox',\n imports: [ReactiveFormsModule, FormsModule, UtilIconComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: './checkbox.component.html',\n styleUrls: ['./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 ],\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(MonkeyInfoDirective, { descendants: true })\n private infoChildren!: QueryList<MonkeyInfoDirective>;\n\n @ContentChildren(MonkeyLabelDirective, { descendants: true })\n private labelChildren!: QueryList<MonkeyLabelDirective>;\n\n @ContentChildren(MonkeyHelperDirective, { descendants: true })\n private helperChildren!: QueryList<MonkeyHelperDirective>;\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 _destroyRef = inject(DestroyRef);\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 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(takeUntilDestroyed(this._destroyRef)).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 = (event: any) => {\n if (event.relatedTarget) {\n this.isFocused = true;\n }\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($event)\"\n [id]=\"inputId\"\n [required]=\"required\"\n />\n <span class=\"checkbox\">\n @if (indeterminate) {\n <util-icon class=\"icon\" name=\"minus\" />\n } @else if (value) {\n <util-icon class=\"icon\" name=\"check\" />\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 ************************* */\nexport * from './checkbox.component';\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 DestroyRef,\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 { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { NgControl, Validators } from '@angular/forms';\nimport { Subject, Subscription } from 'rxjs';\nimport { IdGenerator } from '../../../utils';\nimport { MonkeyFormFieldControl } from '../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 ],\n standalone: false\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 _destroyRef = inject(DestroyRef);\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(takeUntilDestroyed(this._destroyRef))\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","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { 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 { MonkeyFormFieldControl } from '../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 ],\n standalone: false\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 @Input()\n get min(): string {\n return this._min;\n }\n\n set min(value: string) {\n this._min = value;\n\n if (this._type === 'date') {\n (this._elementRef.nativeElement as HTMLInputElement).min = this._min;\n }\n }\n\n @Input()\n get max(): string {\n return this._max;\n }\n\n set max(value: string) {\n this._max = value;\n\n if (this._type === 'date') {\n (this._elementRef.nativeElement as HTMLInputElement).max = this._max;\n }\n }\n\n protected _type = 'text';\n\n protected _min!: string;\n\n protected _max!: string;\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 './input-currency.directive';\nimport { MonkeyInputDirective } from './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 ************************* */\nexport * from './input-currency.directive';\nexport * from './input.directive';\nexport * from './input.module';\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, UtilIconComponent } from '../../../utils';\nimport { MonkeyIconComponent } from '../icon';\n\n@Component({\n selector: 'monkey-icon-button',\n imports: [CommonModule, MonkeyIconComponent, UtilIconComponent],\n templateUrl: './icon-button.component.html',\n styleUrl: './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 @Input() loading!: boolean;\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 || loading\">\n <div class=\"content\">\n @if (loading) {\n <util-icon class=\"mecx-icon-loading\" name=\"loading\" />\n }\n <monkey-icon *ngIf=\"!loading\" name=\"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 ************************* */\nexport * from './icon-button.component';\n","/* eslint-disable no-unused-vars */\n/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport {\n addDays,\n addMonths,\n addYears,\n endOfMonth,\n endOfWeek,\n format,\n getMonth,\n getYear,\n isAfter,\n isBefore,\n isSameMonth,\n isToday,\n parseISO,\n startOfMonth,\n startOfWeek,\n subMonths,\n subYears\n} from 'date-fns';\n\nexport interface DefaultDates {\n minDate: string;\n maxDate: string;\n}\n\nexport interface WeekDay {\n date: Date | null;\n isDisabled: boolean;\n isToday: boolean;\n}\n\nexport interface CalendarWeekDay {\n blockNext: boolean;\n blockPrev: boolean;\n days: (WeekDay | null)[];\n}\n\nexport enum QuickActionsEnum {\n LAST_30_DAYS = -30,\n LAST_60_DAYS = -60,\n LAST_90_DAYS = -90,\n LAST_6_MONTHS = -180,\n LAST_12_MONTHS = -365,\n NEXT_30_DAYS = 30,\n NEXT_60_DAYS = 60,\n NEXT_90_DAYS = 90,\n NEXT_6_MONTHS = 180,\n NEXT_12_MONTHS = 365\n}\n\nexport function parseStringDate(val: Date | string) {\n if (typeof val === 'string') {\n return format(parseISO(val as string), 'yyyy-MM-dd');\n }\n\n return val.toISOString().split('T')[0];\n}\n\nexport function getDefaultdates(): DefaultDates {\n return {\n minDate: format(subYears(new Date(), 15), 'yyyy-MM-dd'),\n maxDate: format(addYears(new Date(), 15), 'yyyy-MM-dd')\n };\n}\n\nexport function buildCalendars(date: Date | string, action?: 'previous' | 'next') {\n if (action) {\n if (action === 'previous') {\n date = subMonths(date, 1);\n } else {\n date = addMonths(date, 1);\n }\n }\n\n const firstMonth = getMonth(date);\n const firstYear = getYear(date);\n\n const secondDate = addMonths(date, 1);\n\n const secondMonth = getMonth(secondDate);\n const secondYear = getYear(secondDate);\n\n return {\n firstCalendar: {\n month: firstMonth,\n year: firstYear\n },\n secondCalendar: {\n month: secondMonth,\n year: secondYear\n }\n };\n}\n\nexport function buildMonthByDays(\n year: number,\n month: number,\n minDate: Date | string,\n maxDate: Date | string\n): CalendarWeekDay {\n const date = new Date(year, month, 1);\n const start = startOfWeek(startOfMonth(date), { weekStartsOn: 0 });\n const end = endOfWeek(endOfMonth(date), { weekStartsOn: 0 });\n\n const days: (WeekDay | null)[] = [];\n let blockPrev = false;\n let blockNext = false;\n\n let current = start;\n while (current <= end) {\n const isCurrentMonth = isSameMonth(current, date);\n const isBeforeMin = minDate\n ? isBefore(parseStringDate(current), parseStringDate(minDate))\n : false;\n if (isBeforeMin) {\n blockPrev = true;\n }\n const isAfterMax = maxDate\n ? isAfter(parseStringDate(current), parseStringDate(maxDate))\n : false;\n if (isAfterMax) {\n blockNext = true;\n }\n\n days.push({\n date: isCurrentMonth ? current : null,\n isDisabled: !isCurrentMonth || isBeforeMin || isAfterMax,\n isToday: isToday(current)\n });\n current = addDays(current, 1);\n }\n\n return {\n blockPrev,\n blockNext,\n days\n };\n}\n\nexport function getEnumKeys(enumObj: any): any[] {\n return Object.entries(enumObj)\n .filter(([key]) => {\n return Number.isNaN(Number(key));\n })\n .map(([key, value]) => {\n return { key, value };\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 {\n booleanAttribute,\n Component,\n EventEmitter,\n inject,\n Input,\n OnChanges,\n Output\n} from '@angular/core';\nimport { format, isAfter, isWithinInterval } from 'date-fns';\nimport { IdGenerator } from '../../../../utils';\nimport { MonkeyDictionaryService } from '../../../services/dictionary.service';\nimport { MonkeyIconButtonComponent } from '../../icon-button';\nimport * as Utils from '../utils';\n\n@Component({\n selector: 'monkey-date-range-month',\n imports: [CommonModule, MonkeyIconButtonComponent],\n templateUrl: './month.component.html',\n styleUrl: './month.component.scss',\n host: {\n 'data-testid': 'month',\n '[attr.id]': 'id',\n '[id]': 'id'\n }\n})\nexport class MonkeyDateRangeMonthComponent implements OnChanges {\n @Input({ required: true }) month!: number;\n\n @Input({ required: true }) year!: number;\n\n @Input() set startDate(val: string) {\n this._handledStartDate = val;\n }\n\n @Input() set endDate(val: string) {\n this._handledEndDate = val;\n }\n\n @Input({ transform: booleanAttribute })\n hidePrevious!: boolean;\n\n @Input({ transform: booleanAttribute })\n hideNext!: boolean;\n\n @Input() minDate!: string;\n\n @Input() maxDate!: string;\n\n @Output() onNavigate = new EventEmitter();\n\n @Output() onDate = new EventEmitter();\n\n protected _uid = inject(IdGenerator).getId('monkey-date-range-month-');\n\n protected _id!: string;\n\n private readonly _today = new Date();\n\n private _handledStartDate!: string;\n\n private _handledEndDate!: string;\n\n readonly i18nDictionary = inject(MonkeyDictionaryService).get('DATE-RANGE');\n\n daysInMonth!: Utils.CalendarWeekDay;\n\n temporaryEndDate!: Utils.WeekDay | null;\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 ngOnChanges(): void {\n this.daysInMonth = Utils.buildMonthByDays(this.year, this.month, this.minDate, this.maxDate);\n }\n\n isFirst(param: Utils.WeekDay): boolean {\n const date = format(param.date!, 'yyyy-MM-dd');\n return (this._handledStartDate && this._handledStartDate === date) || false;\n }\n\n isLast(param: Utils.WeekDay): boolean {\n const date = format(param.date!, 'yyyy-MM-dd');\n return (this._handledEndDate && this._handledEndDate === date) || false;\n }\n\n isSelected(param: Utils.WeekDay): boolean {\n const date = format(param.date!, 'yyyy-MM-dd');\n return (\n (this._handledStartDate && this._handledStartDate === date) ||\n (this._handledEndDate && this._handledEndDate === date) ||\n false\n );\n }\n\n isInRange(param: Utils.WeekDay): boolean {\n if (!this._handledStartDate || !this._handledEndDate || !param.date) return false;\n const date = format(param.date!, 'yyyy-MM-dd');\n\n return isWithinInterval(new Date(date), {\n start: new Date(this._handledStartDate),\n end: new Date(this._handledEndDate)\n });\n }\n\n isInRangeTemporary(param: Utils.WeekDay): boolean {\n if (\n !this._handledStartDate ||\n !this.temporaryEndDate?.date ||\n !param.date ||\n param.isDisabled ||\n (this._handledStartDate && this._handledEndDate)\n )\n return false;\n const date = format(param.date!, 'yyyy-MM-dd');\n\n return isWithinInterval(new Date(date), {\n start: new Date(this._handledStartDate),\n end: new Date(this.temporaryEndDate.date)\n });\n }\n\n isInLastTemporary(param: Utils.WeekDay): boolean {\n if (!this.temporaryEndDate?.date || !param.date || this._handledEndDate) return false;\n const date = format(param.date!, 'yyyy-MM-dd');\n const cmp = format(this.temporaryEndDate?.date!, 'yyyy-MM-dd');\n return (this.temporaryEndDate?.date && cmp === date) || false;\n }\n\n onSelectDate(event: Event, param: Utils.WeekDay) {\n if (param?.isDisabled || !param.date) {\n event.preventDefault();\n return;\n }\n\n const date = format(param.date, 'yyyy-MM-dd');\n if (this._handledStartDate && this._handledEndDate) {\n this._handledStartDate = '';\n this._handledEndDate = '';\n }\n\n if (!this._handledStartDate) {\n this._handledStartDate = date;\n } else {\n this._handledEndDate = date;\n }\n\n const cmp = isAfter(this._handledStartDate, this._handledEndDate);\n\n if (this._handledStartDate && this._handledEndDate && cmp) {\n const start = this._handledStartDate;\n const end = this._handledEndDate;\n this._handledStartDate = end;\n this._handledEndDate = start;\n }\n\n this.onDate.next({\n startDate: this._handledStartDate,\n endDate: this._handledEndDate\n });\n }\n}\n","<ng-container *ngIf=\"i18nDictionary | async as i18n\">\n <div class=\"header\">\n @if (!hidePrevious) {\n <monkey-icon-button\n size=\"sm\"\n icon=\"arrow-left\"\n type=\"secondary\"\n class=\"previous\"\n [disabled]=\"daysInMonth.blockPrev\"\n (click)=\"onNavigate.next('previous')\"\n >\n </monkey-icon-button>\n }\n\n {{ i18n?.['MONTHS']?.[month] }} {{ year }}\n\n @if (!hideNext) {\n <monkey-icon-button\n size=\"sm\"\n icon=\"arrow-right\"\n type=\"secondary\"\n class=\"next\"\n [disabled]=\"daysInMonth.blockNext\"\n (click)=\"onNavigate.next('next')\"\n >\n </monkey-icon-button>\n }\n </div>\n\n <div class=\"week-labels\">\n @for (day of i18n?.['WEEK-DAYS']; track day) {\n <span class=\"day\">{{ day }}</span>\n }\n </div>\n\n <div class=\"dates\">\n @for (day of daysInMonth.days; track $index) {\n <div\n class=\"day\"\n [class.disabled]=\"day!.isDisabled\"\n [class.in-range]=\"isInRange(day!)\"\n [class.selected]=\"isSelected(day!)\"\n [class.first]=\"isFirst(day!)\"\n [class.last]=\"isLast(day!)\"\n [class.in-range-temporary]=\"isInRangeTemporary(day!)\"\n [class.temporary-last]=\"isInLastTemporary(day!)\"\n (click)=\"onSelectDate($event, day!)\"\n (mouseenter)=\"temporaryEndDate = day!\"\n (mouseleave)=\"temporaryEndDate = null\"\n >\n {{ day!.date | date: 'd' }}\n @if (day?.isToday) {\n <span class=\"today\"></span>\n }\n </div>\n }\n </div>\n</ng-container>\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nexport * from './month.component';\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, EventEmitter, inject, Input, Output } from '@angular/core';\nimport { IdGenerator } from '../../../../utils';\nimport { MonkeyDictionaryService } from '../../../services/dictionary.service';\nimport * as Utils from '../utils';\n\n@Component({\n selector: 'monkey-date-range-quick-actions',\n imports: [CommonModule],\n templateUrl: './quick-actions.component.html',\n styleUrl: './quick-actions.component.scss',\n host: {\n 'data-testid': 'quick-actions',\n '[attr.id]': 'id',\n '[id]': 'id'\n }\n})\nexport class MonkeyDateRangeQuickActionsComponent {\n @Output() onChange = new EventEmitter();\n\n protected _uid = inject(IdGenerator).getId('monkey-date-range-month-quick-actions-');\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 selectedAction = '';\n\n readonly actions = Utils.getEnumKeys(Utils.QuickActionsEnum);\n\n readonly i18nDictionary = inject(MonkeyDictionaryService).get('DATE-RANGE');\n\n constructor() {\n // eslint-disable-next-line no-self-assign\n this.id = this.id;\n }\n\n onHandleAction({ key, value }: { key: string; value: number }) {\n this.selectedAction = key;\n this.onChange.next(value);\n }\n}\n","<ng-container *ngIf=\"i18nDictionary | async as i18n\">\n @for (item of actions; track item.key) {\n <div\n class=\"item\"\n [class.selected]=\"item.key === selectedAction\"\n (click)=\"onHandleAction(item)\"\n [attr.tabindex]=\"$index\"\n >\n {{ i18n?.['QUICK-ACTIONS']?.[item.key] }}\n </div>\n }\n</ng-container>\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nexport * from './quick-actions.component';\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 booleanAttribute,\n Component,\n EventEmitter,\n HostListener,\n inject,\n Input,\n OnInit,\n Output\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { addDays, isAfter, isBefore, subDays } from 'date-fns';\nimport { IdGenerator } from '../../../utils';\nimport { MonkeyDirectivesModule } from '../../directives';\nimport { MonkeyDictionaryService } from '../../services/dictionary.service';\nimport { MonkeyButtonComponent } from '../button';\nimport { MonkeyFormFieldModule } from '../form-field';\nimport { MonkeyInputModule } from '../input';\nimport { MonkeyDateRangeMonthComponent } from './month';\nimport { MonkeyDateRangeQuickActionsComponent } from './quick-actions';\nimport * as Utils from './utils';\n\ninterface Calendar {\n month: number;\n year: number;\n}\n\n@Component({\n selector: 'monkey-date-range',\n imports: [\n CommonModule,\n FormsModule,\n MonkeyInputModule,\n MonkeyFormFieldModule,\n MonkeyDirectivesModule,\n MonkeyButtonComponent,\n MonkeyDateRangeMonthComponent,\n MonkeyDateRangeQuickActionsComponent\n ],\n templateUrl: './date-range.component.html',\n styleUrl: './date-range.component.scss',\n host: {\n 'data-testid': 'monkey-date-range',\n '[attr.id]': 'id',\n '[id]': 'id'\n }\n})\nexport class MonkeyDateRangeComponent implements OnInit {\n @Input() set startDate(val: string) {\n this.handledStartDate = val;\n }\n\n @Input() set endDate(val: string) {\n this.handledEndDate = val;\n }\n\n @Input({ transform: booleanAttribute })\n hideQuickAction!: boolean;\n\n @Input({ transform: booleanAttribute })\n hideHeader!: boolean;\n\n @Input({ transform: booleanAttribute })\n hideActions!: boolean;\n\n @Input({ transform: booleanAttribute })\n hideSecondCalendar!: boolean;\n\n @Input({ transform: booleanAttribute })\n allowFastActionOnHeader!: boolean;\n\n @Input() set minDate(val: Date | string) {\n if (val) {\n this.handledMinDate = Utils.parseStringDate(val);\n }\n }\n\n @Input() set maxDate(val: Date | string) {\n if (val) {\n this.handledMaxDate = Utils.parseStringDate(val);\n }\n }\n\n @Output() onCancel = new EventEmitter();\n\n @Output() onDate = new EventEmitter();\n\n protected _uid = inject(IdGenerator).getId('monkey-date-range-');\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 private _screenWidth: number = window.innerWidth;\n\n private _allowChangeFastAction = true;\n\n private _allowChangeSecondCalendar = true;\n\n private readonly _today = new Date();\n\n readonly i18nDictionary = inject(MonkeyDictionaryService).get('DATE-RANGE');\n\n handledStartDate!: string;\n\n handledEndDate!: string;\n\n firstCalendar!: Calendar;\n\n secondCalendar!: Calendar;\n\n isInvalidInterval = false;\n\n handledMinDate: string = Utils.getDefaultdates().minDate;\n\n handledMaxDate: string = Utils.getDefaultdates().maxDate;\n\n constructor() {\n // eslint-disable-next-line no-self-assign\n this.id = this.id;\n }\n\n private handleInitialValues() {\n const calendars = Utils.buildCalendars(this.handledStartDate || new Date());\n this.firstCalendar = calendars.firstCalendar;\n this.secondCalendar = calendars.secondCalendar;\n }\n\n private handleProperties() {\n if (this._screenWidth < 950) {\n if (this._allowChangeFastAction) {\n this.hideQuickAction = true;\n this.allowFastActionOnHeader = false;\n }\n if (this._allowChangeSecondCalendar) {\n this.hideSecondCalendar = true;\n }\n } else {\n if (this._allowChangeFastAction) {\n this.hideQuickAction = false;\n this.allowFastActionOnHeader = false;\n }\n if (this._allowChangeSecondCalendar) {\n this.hideSecondCalendar = false;\n }\n }\n }\n\n private handleInputChange(event: Event, isStart: boolean): void {\n const input = event.target as HTMLInputElement;\n const { value } = input;\n const [year] = value.split('-');\n if (`${Number(year)}`.length < 4) return;\n\n if (!input.checkValidity()) {\n event.preventDefault();\n input.value = '';\n this.isInvalidInterval = true;\n return;\n }\n\n this.isInvalidInterval = false;\n\n if (isStart) {\n this.handledStartDate = value;\n } else {\n this.handledEndDate = value;\n }\n\n if (this.hideActions) {\n this.onSubmit();\n }\n }\n\n @HostListener('window:resize', ['$event'])\n onResize(event: any) {\n this._screenWidth = (event.target as Window).innerWidth;\n this.handleProperties();\n }\n\n ngOnInit(): void {\n if (this.hideQuickAction) {\n this._allowChangeFastAction = false;\n }\n if (this.hideSecondCalendar) {\n this._allowChangeSecondCalendar = false;\n }\n if (this.allowFastActionOnHeader) {\n this._allowChangeFastAction = false;\n this.hideQuickAction = true;\n }\n\n this.handleInitialValues();\n this.handleProperties();\n }\n\n onHandleDate({ startDate, endDate }: { startDate: string; endDate: string }) {\n this.handledStartDate = startDate;\n this.handledEndDate = endDate;\n\n if (this.hideActions) {\n this.onSubmit();\n }\n }\n\n onSubmit() {\n this.onDate.next({\n startDate: this.handledStartDate ?? '',\n endDate: this.handledEndDate ?? ''\n });\n }\n\n onHandleQuickAction(event: number) {\n const isBackward = event < 0;\n const days = Math.abs(event);\n\n if (isBackward) {\n const baseDate = Utils.parseStringDate(\n this.handledEndDate || this.handledStartDate || this._today\n );\n\n let startDate: string | Date = subDays(baseDate, days);\n\n if (isBefore(startDate, this.handledMinDate)) {\n startDate = this.handledMinDate;\n }\n\n this.handledStartDate = Utils.parseStringDate(startDate);\n this.handledEndDate = Utils.parseStringDate(baseDate);\n } else {\n const baseDate = Utils.parseStringDate(\n this.handledStartDate || this.handledEndDate || this._today\n );\n\n let endDate: string | Date = addDays(baseDate, days);\n\n if (isAfter(endDate, this.handledMaxDate)) {\n endDate = this.handledMaxDate;\n }\n\n this.handledStartDate = Utils.parseStringDate(baseDate);\n this.handledEndDate = Utils.parseStringDate(endDate);\n }\n\n if (this.hideActions) {\n this.onSubmit();\n }\n }\n\n onChangeInputStartDate(event: Event) {\n this.handleInputChange(event, true);\n }\n\n onChangeInputEndDate(event: Event) {\n this.handleInputChange(event, false);\n }\n\n onDataChange(event: string, isStart: boolean) {\n if (isStart) {\n this.handledStartDate = event;\n this.handledEndDate = '';\n } else {\n this.handledEndDate = event;\n }\n\n if (this.hideActions) {\n this.onSubmit();\n }\n }\n\n onHandleNavigate(action: 'previous' | 'next') {\n if (!action) return;\n const date = new Date(this.firstCalendar.year, this.firstCalendar.month, 1);\n const calendars = Utils.buildCalendars(date, action);\n this.firstCalendar = calendars.firstCalendar;\n this.secondCalendar = calendars.secondCalendar;\n }\n}\n","<ng-container *ngIf=\"i18nDictionary | async as i18n\">\n <div class=\"container-date-range-group\">\n @if (!hideQuickAction) {\n <div class=\"quick-actions\">\n <monkey-date-range-quick-actions (onChange)=\"onHandleQuickAction($event)\">\n </monkey-date-range-quick-actions>\n </div>\n }\n\n <div class=\"container-date-range\">\n @if (!hideHeader) {\n <div class=\"header\" [class.no-quick-action]=\"hideQuickAction\">\n @if (allowFastActionOnHeader) {\n <div class=\"quick-actions\">\n <monkey-date-range-quick-actions (onChange)=\"onHandleQuickAction($event)\">\n </monkey-date-range-quick-actions>\n </div>\n } @else {\n <div class=\"inputs\">\n <monkey-form-field hideAction enableClear size=\"sm\">\n <monkey-label>{{ i18n?.['START-DATE'] }}</monkey-label>\n <input\n type=\"date\"\n monkey-input\n id=\"startDate\"\n [(ngModel)]=\"handledStartDate\"\n (ngModelChange)=\"onDataChange($event, true)\"\n [min]=\"handledMinDate\"\n [max]=\"handledEndDate ? handledEndDate : handledMaxDate\"\n (change)=\"onChangeInputStartDate($event)\"\n />\n </monkey-form-field>\n <monkey-form-field hideAction enableClear size=\"sm\">\n <monkey-label>{{ i18n?.['END-DATE'] }}</monkey-label>\n <input\n type=\"date\"\n monkey-input\n id=\"endDate\"\n [(ngModel)]=\"handledEndDate\"\n (ngModelChange)=\"onDataChange($event, false)\"\n [min]=\"handledStartDate ? handledStartDate : ''\"\n [max]=\"handledMaxDate\"\n (change)=\"onChangeInputEndDate($event)\"\n />\n </monkey-form-field>\n </div>\n @if (isInvalidInterval) {\n <monkey-error>{{ i18n?.['INVALID'] }}</monkey-error>\n }\n }\n </div>\n }\n\n <div class=\"body\">\n <div class=\"calendars\">\n <monkey-date-range-month\n [month]=\"firstCalendar.month\"\n [year]=\"firstCalendar.year\"\n [startDate]=\"handledStartDate\"\n [endDate]=\"handledEndDate\"\n (onDate)=\"onHandleDate($event)\"\n (onNavigate)=\"onHandleNavigate($event)\"\n [hideNext]=\"!hideSecondCalendar\"\n [minDate]=\"handledMinDate\"\n [maxDate]=\"handledMaxDate\"\n >\n </monkey-date-range-month>\n\n @if (!hideSecondCalendar) {\n <monkey-date-range-month\n [month]=\"secondCalendar.month\"\n [year]=\"secondCalendar.year\"\n [startDate]=\"handledStartDate\"\n [endDate]=\"handledEndDate\"\n (onDate)=\"onHandleDate($event)\"\n (onNavigate)=\"onHandleNavigate($event)\"\n hidePrevious\n [minDate]=\"handledMinDate\"\n [maxDate]=\"handledMaxDate\"\n >\n </monkey-date-range-month>\n }\n </div>\n </div>\n\n @if (!hideActions) {\n <div class=\"actions\">\n <monkey-button size=\"md\" type=\"secondary\" (click)=\"onCancel.next(null)\">\n {{ i18n?.ACTIONS?.CANCEL }}\n </monkey-button>\n <monkey-button\n size=\"md\"\n (click)=\"onSubmit()\"\n [disabled]=\"!this.handledStartDate || !this.handledEndDate\"\n >\n {{ i18n?.ACTIONS?.APPLY }}\n </monkey-button>\n </div>\n }\n </div>\n </div>\n</ng-container>\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nexport * from './date-range.component';\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: './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 ************************* */\nexport * from './divider.component';\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, EventEmitter, inject, Input, Output } from '@angular/core';\nimport { IdGenerator } from '../../../utils/id-generator';\nimport { MonkeyButtonColor, MonkeyButtonType } from '../../interfaces/button';\nimport { MonkeySize } from '../../interfaces/sizes';\nimport { MonkeyButtonComponent } from '../button';\n\nexport type MonkeyDownloadButtonChangeEvent = {\n // eslint-disable-next-line no-use-before-define\n component: MonkeyDownloadButtonComponent;\n};\n\n@Component({\n selector: 'monkey-download-button',\n imports: [CommonModule, MonkeyButtonComponent],\n template: `\n <monkey-button\n [type]=\"type\"\n [color]=\"color\"\n [size]=\"size\"\n [class.has-progress]=\"hasProgress\"\n [disabled]=\"disabled || hasProgress\"\n (click)=\"onDownload()\"\n class=\"w-100\"\n >\n <div class=\"content-download\">\n <ng-content *ngIf=\"!loading\" select=\"[first]\"></ng-content>\n <span><ng-content></ng-content></span>\n <ng-content *ngIf=\"!loading\" select=\"[last]\"></ng-content>\n </div>\n\n <div\n class=\"content-download-progress\"\n [style.--mecx-button-progress]=\"hasProgress ? safeProgress + '%' : null\"\n *ngIf=\"hasProgress\"\n >\n <span [class.pe-2]=\"enablleMargin\">{{ safeProgress }}%</span>\n </div>\n </monkey-button>\n `,\n styleUrl: './download-button.component.scss',\n host: {\n '[attr.data-testid]': \"'monkey-download-button'\",\n class: 'mecx-download-button',\n '[attr.id]': 'id',\n '[attr.tabindex]': 'disabled ? -1 : tabIndex'\n }\n})\nexport class MonkeyDownloadButtonComponent {\n @Input() progress: number = 0;\n\n @Input() disabled!: boolean;\n\n @Input() color: MonkeyButtonColor = 'default';\n\n @Input() size: MonkeySize = 'md';\n\n @Input() type: MonkeyButtonType = 'primary';\n\n @Input() loading!: boolean;\n\n @Input() tabIndex = -1;\n\n @Output() onChange = new EventEmitter<MonkeyDownloadButtonChangeEvent>();\n\n protected _uid = inject(IdGenerator).getId('monkey-download-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 get safeProgress(): number {\n return Math.min(Math.max(this.progress, 1), 100);\n }\n\n get hasProgress(): boolean {\n return typeof this.progress === 'number' && this.progress > 0;\n }\n\n get enablleMargin(): boolean {\n return this.safeProgress === 100;\n }\n\n constructor() {\n // eslint-disable-next-line no-self-assign\n this.id = this.id;\n }\n\n onDownload() {\n this.onChange.emit({ component: this });\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 './download-button.component';\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 {\n AfterContentInit,\n Component,\n ElementRef,\n inject,\n OnChanges,\n OnDestroy,\n SimpleChanges\n} from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { UtilIconComponent } from '../../../utils';\nimport { MonkeyDirectivesModule } from '../../directives';\nimport { MonkeyButtonComponent } from '../button';\nimport { MonkeyFormFieldModule } from '../form-field';\nimport { MonkeyInputModule } from '../input';\nimport { MonkeyOptionComponent } from '../option';\n\n@Component({\n selector: 'monkey-filter-bar',\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n MonkeyFormFieldModule,\n MonkeyDirectivesModule,\n MonkeyFormFieldModule,\n MonkeyInputModule,\n MonkeyButtonComponent,\n UtilIconComponent,\n MonkeyOptionComponent\n ],\n template: `\n <monkey-form-field>\n <input type=\"text\" monkey-input placeholder=\"Pesquise pelo nome ou CNPJ\" />\n </monkey-form-field>\n <monkey-button\n #popoverTarget\n class=\"btn-filter\"\n type=\"secondary\"\n (click)=\"onShowPopOver(popoverTarget)\"\n >\n <util-icon class=\"icon\" name=\"addPlus\" first />\n Adicionar Filtro\n </monkey-button>\n\n <ng-template\n [monkeyPopover]=\"showPopOver\"\n [monkeyPopoverTarget]=\"elementTarget\"\n [monkeyPopoverClosed]=\"closePopOver\"\n monkeyPopoverDir=\"ltr\"\n [monkeyPopoverHideHeader]=\"true\"\n >\n <monkey-option> Status </monkey-option>\n <monkey-option> Data de Emissão </monkey-option>\n <monkey-option> Data de Vencimento </monkey-option>\n </ng-template>\n `,\n styleUrl: './filter-bar.component.scss',\n host: {\n '[attr.data-testid]': \"'monkey-filter-bar'\",\n class: 'mecx-filter-bar',\n '[class.mecx-filter-bar-disabled]': '_disabled',\n '[class.mecx-filter-bar-focused]': 'focused',\n '[attr.id]': 'id',\n '[attr.tabindex]': 'disabled ? -1 : tabIndex',\n '(focus)': '_onFocus()',\n '(blur)': '_onBlur()'\n }\n})\nexport class MonkeyFilterBarComponent implements AfterContentInit, OnDestroy, OnChanges {\n protected _elementRef =\n inject<ElementRef<HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement>>(ElementRef);\n\n showPopOver = false;\n\n elementTarget: HTMLElement | null = null;\n\n closePopOver = () => {\n this.showPopOver = false;\n };\n\n ngAfterContentInit(): void {}\n\n ngOnChanges(changes: SimpleChanges): void {}\n\n ngOnDestroy(): void {}\n\n onShowPopOver(el: MonkeyButtonComponent) {\n this.elementTarget = el.element;\n this.showPopOver = true;\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 './filter-bar.component';\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 AfterViewInit,\n Component,\n ElementRef,\n Input,\n InputSignal,\n Optional,\n QueryList,\n ViewChildren,\n booleanAttribute,\n computed,\n inject,\n input\n} from '@angular/core';\nimport { ControlValueAccessor, FormsModule, NgControl } from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { IdGenerator } from '../../../utils';\nimport { MonkeyFormFieldComponent, MonkeyFormFieldControl } from '../form-field';\n\ntype KeyboardKeys = 'Backspace' | 'Delete' | 'ArrowLeft' | 'ArrowUp' | 'ArrowRight' | 'ArrowDown';\n\ninterface AllowedKeyboardKeys {\n Backspace: () => void;\n Delete: () => void;\n ArrowLeft: () => void;\n ArrowUp: () => void;\n ArrowRight: () => void;\n ArrowDown: () => void;\n}\n\n@Component({\n selector: 'monkey-input-code',\n styleUrl: './input-code.component.scss',\n templateUrl: './input-code.component.html',\n imports: [CommonModule, FormsModule],\n host: {\n 'data-testid': 'monkey-input-code',\n '[attr.id]': 'id',\n '[id]': 'id'\n },\n providers: [\n // eslint-disable-next-line no-use-before-define\n { provide: MonkeyFormFieldControl, useExisting: MonkeyInputCodeComponent }\n ]\n})\nexport class MonkeyInputCodeComponent\n implements ControlValueAccessor, MonkeyFormFieldControl, AfterViewInit\n{\n readonly stateChanges = new Subject<void>();\n\n readonly type: string = 'input-code';\n\n readonly currency: boolean = false;\n\n readonly percent: boolean = false;\n\n readonly id: any = inject(IdGenerator).getId('monkey-input-code-');\n\n private _onChange: any = () => {};\n\n private _onTouched: any = () => {};\n\n private _value = null;\n\n public ngControl: NgControl | null = inject(NgControl, { self: true, optional: true })!;\n\n public focused: boolean = false;\n\n public length: InputSignal<number> = input<number>(6);\n\n public inputType: InputSignal<string> = input<string>('numeric');\n\n public inputIndices = computed(() => {\n return Array.from({ length: this.length() }, (_, i) => {\n return '';\n });\n });\n\n @Input({ transform: booleanAttribute })\n get disabled(): boolean {\n if (this.ngControl && this.ngControl.disabled !== null) {\n return this.ngControl.disabled;\n }\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 _disabled: boolean = false;\n\n @Input()\n set value(value: any) {\n if (this._value !== value && value !== undefined) {\n this._value = value;\n this._onChange(value);\n this._onTouched();\n }\n }\n\n get value(): any {\n return this._value;\n }\n\n @ViewChildren('codeInput') inputs!: QueryList<ElementRef<HTMLInputElement>>;\n\n constructor(@Optional() private formField: MonkeyFormFieldComponent) {\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n\n if (this.formField) {\n this.formField.hideAction = true;\n }\n }\n\n ngAfterViewInit(): void {\n if (this.formField) {\n const input = this.formField.elementRef.nativeElement.querySelector(\n '.mecx-form-field-body'\n ) as HTMLElement;\n\n const height = input.offsetHeight > 40 ? input.offsetHeight : 40;\n\n this.inputs.forEach((inputEl) => {\n inputEl.nativeElement.style.height = `${height}px`;\n inputEl.nativeElement.style.width = `${height}px`;\n });\n }\n }\n\n private _onFocus(): void {\n if (!this.disabled) {\n this.focused = true;\n this._onTouched();\n this.stateChanges.next();\n }\n }\n\n private propagateCode(): void {\n const code = this.inputIndices().join('');\n\n this.writeValue(code);\n }\n\n private focusNextInput(input: HTMLInputElement): void {\n const next: HTMLInputElement = input.nextElementSibling as HTMLInputElement;\n\n next?.focus();\n }\n\n private focusPreviousInput(input: HTMLInputElement): void {\n const previous: HTMLInputElement = input.previousElementSibling as HTMLInputElement;\n\n previous?.focus();\n }\n\n private setFullInputValue(value: string): void {\n const chars: string[] = value?.slice(0, this.length()).split('') || '';\n\n chars.forEach((digit: string, index: number) => {\n this.inputIndices()[index] = digit;\n });\n }\n\n public isInvalid(): boolean {\n return this.formField.showInvalid;\n }\n\n public onContainerClick(): void {\n if (!this._value) {\n this.inputs.first.nativeElement.focus();\n }\n }\n\n public onKeyDown(event: KeyboardEvent, index: number): void {\n const input = event.target as HTMLInputElement;\n this.inputIndices()[index] = input.value;\n\n const { key } = event;\n const keys: AllowedKeyboardKeys = {\n Backspace: (): void => {\n if (input.value === '') {\n this.focusPreviousInput(input);\n }\n },\n Delete: (): void => {\n if (input.value === '') {\n this.focusNextInput(input);\n }\n },\n ArrowLeft: (): void => {\n if (index > 0) {\n this.focusPreviousInput(input);\n\n event.preventDefault();\n }\n },\n ArrowUp: (): void => {\n if (index > 0) {\n this.focusPreviousInput(input);\n\n event.preventDefault();\n }\n },\n ArrowRight: (): void => {\n if (index < this.length()) {\n this.focusNextInput(input);\n\n event.preventDefault();\n }\n },\n ArrowDown: (): void => {\n if (index < this.length()) {\n this.focusNextInput(input);\n\n event.preventDefault();\n }\n }\n };\n\n if (keys[key as KeyboardKeys]) {\n keys[key as KeyboardKeys]();\n }\n }\n\n public onInput(event: Event, index: number): void {\n const input = event.target as HTMLInputElement;\n const { value } = input;\n\n if (value.length > 1) {\n this.setFullInputValue(value);\n\n input.value = value.charAt(0);\n } else {\n input.value = value;\n }\n\n this.inputIndices()[index] = input.value;\n\n if (input.value && index < this.length()) {\n this.focusNextInput(input);\n }\n\n this.propagateCode();\n }\n\n public onPaste(event: ClipboardEvent): void {\n event.preventDefault();\n\n const pastedData: string = event.clipboardData?.getData('text').trim() ?? '';\n const chars: string[] = pastedData.slice(0, this.length()).split('');\n\n chars.forEach((digit, index) => {\n this.inputIndices()[index] = digit;\n });\n\n if (this.inputs.length > chars.length) {\n this.inputs.get(chars.length)?.nativeElement.focus();\n }\n\n if (this.inputs.length <= chars.length) {\n this.onBlur();\n }\n\n this.propagateCode();\n }\n\n public onBlur(): void {\n this.focused = false;\n this.stateChanges.next();\n }\n\n public onFocus(event: FocusEvent): void {\n const input = event.target as HTMLInputElement;\n\n input.select();\n this._onFocus();\n }\n\n public writeValue(value: string): void {\n this.value = value;\n }\n\n public registerOnChange(fn: any): void {\n this._onChange = fn;\n }\n\n public registerOnTouched(fn: any): void {\n this._onTouched = fn;\n }\n\n public setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n}\n","<div class=\"monkey-input-code\">\n @for (idx of inputIndices(); track $index; let i = $index) {\n <input\n #codeInput\n class=\"focus\"\n autocomplete=\"one-time-code\"\n [attr.type]=\"inputType()\"\n [disabled]=\"_disabled\"\n [attr.maxlength]=\"1\"\n [class.invalid]=\"isInvalid()\"\n [(ngModel)]=\"inputIndices()[i]\"\n (focus)=\"onFocus($event)\"\n (input)=\"onInput($event, i)\"\n (keydown)=\"onKeyDown($event, i)\"\n (paste)=\"onPaste($event)\"\n (blur)=\"onBlur()\"\n />\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 ************************* */\nexport * from './input-code.component';\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 {\n AfterContentInit,\n booleanAttribute,\n Component,\n ElementRef,\n inject,\n Input,\n OnChanges,\n OnDestroy,\n Optional,\n SimpleChanges\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n FormsModule,\n NgControl,\n ReactiveFormsModule,\n Validators\n} from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { IdGenerator } from '../../../utils';\nimport { MonkeyDirectivesModule } from '../../directives';\nimport { MonkeyDateRangeComponent } from '../date-range';\nimport {\n MonkeyFormFieldComponent,\n MonkeyFormFieldControl,\n MonkeyFormFieldModule\n} from '../form-field';\n\n@Component({\n selector: 'monkey-input-date-range',\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n MonkeyFormFieldModule,\n MonkeyDirectivesModule,\n MonkeyDateRangeComponent\n ],\n template: `\n <span #popoverTarget (click)=\"onOpenPopover()\">\n <ng-container *ngIf=\"startDate; else noDate\">\n {{ startDate | date }} - {{ endDate | date }}\n </ng-container>\n <ng-template #noDate>\n {{ placeholder }}\n </ng-template>\n </span>\n\n <ng-template\n [monkeyPopover]=\"showPopOver\"\n [monkeyPopoverTarget]=\"elementTarget\"\n [monkeyPopoverClosed]=\"closePopOver\"\n monkeyPopoverDir=\"ltr\"\n [monkeyPopoverTitle]=\"title\"\n >\n <monkey-date-range\n hideHeader\n hideActions\n [startDate]=\"startDate\"\n [endDate]=\"endDate\"\n (onDate)=\"onHandleDate($event)\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n >\n </monkey-date-range>\n </ng-template>\n `,\n styleUrl: './input-date-range.component.scss',\n providers: [\n // eslint-disable-next-line no-use-before-define\n { provide: MonkeyFormFieldControl, useExisting: MonkeyInputDateRangeComponent }\n ],\n host: {\n '[attr.data-testid]': \"'monkey-input-date-range'\",\n class: 'mecx-input-date-range',\n '[class.mecx-input-date-range-disabled]': '_disabled',\n '[class.mecx-input-date-range-focused]': 'focused',\n '[attr.id]': 'id',\n '[attr.tabindex]': 'disabled ? -1 : tabIndex',\n '(focus)': '_onFocus()',\n '(blur)': '_onBlur()'\n }\n})\nexport class MonkeyInputDateRangeComponent\n implements MonkeyFormFieldControl, ControlValueAccessor, AfterContentInit, OnDestroy, OnChanges\n{\n @Input({ required: true }) placeholder!: string;\n\n @Input({ required: true }) title!: string;\n\n @Input() tabIndex = 0;\n\n @Input() minDate: Date | string = '';\n\n @Input() maxDate: Date | 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 _disabled: boolean = false;\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 && value !== undefined) {\n this._value = value;\n this.handleValue(value);\n this._onChange(value);\n this._onTouched(value);\n }\n }\n\n get value(): any {\n return this._value;\n }\n\n _value: string | null = null;\n\n constructor(@Optional() public formField: MonkeyFormFieldComponent) {\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n ngControl: NgControl | null = inject(NgControl, { self: true, optional: true })!;\n\n private readonly idGenerator = inject(IdGenerator);\n\n readonly id: string = this.idGenerator.getId('monkey-input-date-range-');\n\n focused: boolean = false;\n\n readonly type: string = 'input-date-range';\n\n readonly stateChanges = new Subject<void>();\n\n protected _elementRef =\n inject<ElementRef<HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement>>(ElementRef);\n\n _onChange: any = () => {};\n\n _onTouched: any = () => {};\n\n showPopOver = false;\n\n startDate = '';\n\n endDate = '';\n\n handledMinDate: string = '';\n\n handledMaxDate: string = '';\n\n get elementTarget() {\n if (this.formField?.elementRef) {\n return this.formField?.elementRef.nativeElement.querySelector('.mecx-form-field-body');\n }\n\n return this._elementRef.nativeElement;\n }\n\n closePopOver = () => {\n this.showPopOver = false;\n this.validateValue();\n };\n\n ngAfterContentInit(): void {}\n\n ngOnChanges(changes: SimpleChanges): void {}\n\n ngOnDestroy(): void {}\n\n onContainerClick(event: MouseEvent): void {\n event.preventDefault();\n this.onOpenPopover();\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 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 private handleValue(value: any) {\n try {\n const { startDate, endDate } = value || {\n startDate: '',\n endDate: ''\n };\n this.startDate = startDate;\n this.endDate = endDate;\n } catch (e) {\n // not to do\n }\n }\n\n private validateValue() {\n const { startDate, endDate } = this.value;\n if (!startDate || !endDate) {\n this.ngControl?.control?.setErrors({\n dateRange: true\n });\n }\n }\n\n writeValue(value: any): void {\n if (this._value !== value && value !== undefined) {\n this._value = value;\n this.handleValue(value);\n this._onChange(value);\n this._onTouched(value);\n }\n }\n\n onOpenPopover() {\n if (!this.disabled) {\n this.showPopOver = true;\n }\n }\n\n onHandleDate(event: any) {\n try {\n this.value = null;\n const { startDate, endDate } = event;\n this.value = event;\n if (startDate && endDate) {\n this.closePopOver();\n }\n } catch (e) {\n // not to do\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 './input-date-range.component';\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 { CommonModule } from '@angular/common';\nimport {\n AfterContentInit,\n booleanAttribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n DestroyRef,\n ElementRef,\n EventEmitter,\n inject,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n QueryList,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewContainerRef,\n ViewEncapsulation\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport {\n ControlValueAccessor,\n FormsModule,\n NgControl,\n ReactiveFormsModule,\n Validators\n} from '@angular/forms';\nimport { debounceTime, Subject } from 'rxjs';\nimport { normalizeStringToSearch, sanitizeString, UtilIconComponent } from '../../../utils';\nimport { IdGenerator } from '../../../utils/id-generator';\nimport { MonkeyDictionaryService } from '../../services/dictionary.service';\nimport { MonkeyFormFieldControl } from '../form-field/form-field-control';\nimport { MonkeyFormFieldComponent } from '../form-field/form-field.component';\nimport { MonkeyOptionComponent } from '../option/option.component';\n\n@Component({\n selector: 'monkey-select',\n imports: [CommonModule, ReactiveFormsModule, FormsModule, UtilIconComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: 'select.component.html',\n styleUrls: ['./select.component.scss'],\n encapsulation: ViewEncapsulation.None,\n providers: [\n // eslint-disable-next-line no-use-before-define\n { provide: MonkeyFormFieldControl, useExisting: MonkeySelectComponent }\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\n MonkeyFormFieldControl,\n ControlValueAccessor,\n AfterContentInit,\n OnInit,\n OnDestroy,\n 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 showSearch = true;\n\n @Input()\n searchPlaceholder = '';\n\n @Input()\n type = 'select';\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 private _destroyRef = inject(DestroyRef);\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 searchHandle = new EventEmitter<string>();\n\n readonly searchDictionary = inject(MonkeyDictionaryService).get('NO-DATA');\n\n readonly loadingDictionary = inject(MonkeyDictionaryService).get('LOADING');\n\n showSearchNoData = false;\n\n isOpen = false;\n\n searchData = '';\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(): void {\n setTimeout(() => {\n if (!this.options) return;\n\n if (this.type === 'checkbox') {\n const selectedValues = this.getComparationValue();\n this.options.forEach((opt) => {\n if (!opt.disabled) {\n opt.selected = selectedValues.includes(String(opt.value()));\n }\n });\n } else {\n this.options.forEach((opt) => {\n opt.selected = String(opt.value()) === this.value;\n });\n }\n\n this.changeDetectorRef.markForCheck();\n });\n }\n\n private initializeOptions() {\n setTimeout(() => {\n this.options.forEach((option) => {\n option.type = this.type;\n if (!option.action) {\n option.action = this.selectOption.bind(this, option);\n }\n });\n this.changeDetectorRef.detectChanges();\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.isOpen = false;\n this.focused = false;\n this.formField.control.disableToBeDirty = false;\n this.searchData = '';\n this.changeDetectorRef.markForCheck();\n }\n\n private closeOverlay(): void {\n if (this.overlayRef) {\n this.overlayRef.dispose();\n this.overlayRef = null;\n }\n }\n\n private initializeWithOverlay() {\n if (this.showSearch) {\n const element = this.overlayRef?.overlayElement.querySelector(\n `#${this.id}-search`\n ) as HTMLElement;\n\n this.options.forEach((opt) => {\n const element = this.overlayRef?.overlayElement.querySelector(\n `#${opt.id}`\n ) as HTMLElement | null;\n if (!element) return;\n element.style.display = '';\n });\n\n setTimeout(() => {\n element?.focus();\n }, 0);\n this.showSearchNoData = false;\n }\n\n setTimeout(() => {\n const selected = this.options.find((opt) => {\n return opt.selected;\n });\n\n if (selected) {\n const element = this.overlayRef?.overlayElement.querySelector(\n `#${selected.id}`\n ) as HTMLElement;\n element?.scrollIntoView({ behavior: 'instant', block: 'center' });\n }\n }, 0);\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(takeUntilDestroyed(this._destroyRef))\n .subscribe(() => {\n return this.closeDropdown();\n });\n\n this.initializeWithOverlay();\n }\n\n private updateSelectedLabel(): void {\n if (!this.options) return;\n\n if (this.type === 'checkbox') {\n const selectedValues = this.getComparationValue();\n\n const selectedOptions = this.options.filter((opt) => {\n return selectedValues.includes(String(opt.value()));\n });\n\n const maxToShow = 3;\n const displayContents = selectedOptions.slice(0, maxToShow).map((opt) => {\n return opt.displayContent;\n });\n\n const hasMore = selectedOptions.length > maxToShow;\n\n this.labelSelected = hasMore\n ? `${displayContents.join(', ')}...`\n : displayContents.join(', ');\n } else {\n const selectedOption = this.options.find((opt) => {\n return String(opt.value()) === this.value;\n });\n this.labelSelected = selectedOption ? selectedOption.displayContent : '';\n }\n\n this.changeDetectorRef.markForCheck();\n }\n\n private executeSearch(search: string): void {\n let found = false;\n this.options.forEach((opt) => {\n const element = this.overlayRef?.overlayElement.querySelector(\n `#${opt.id}`\n ) as HTMLElement | null;\n\n if (!element) return;\n\n const isMatch = normalizeStringToSearch(opt.displayContent).includes(\n normalizeStringToSearch(search)\n );\n if (isMatch) {\n found = true;\n }\n element.style.display = isMatch ? '' : 'none';\n });\n\n this.repositionScroll();\n this.showSearchNoData = !found;\n }\n\n private repositionScroll() {\n const overlayElement = this.overlayRef?.overlayElement.querySelector(\n '.mecx-select-overlay'\n ) as HTMLElement;\n\n if (overlayElement) {\n overlayElement.scrollTop = 0;\n }\n }\n\n private getComparationValue() {\n return (this.value || '')\n .split(',')\n .map((v: string) => {\n return v.trim();\n })\n .filter(Boolean);\n }\n\n ngOnInit() {\n this.searchHandle\n .pipe(debounceTime(200), takeUntilDestroyed(this._destroyRef))\n .subscribe((search: string) => {\n this.executeSearch(search);\n });\n }\n\n ngAfterContentInit() {\n this.initializeOptions();\n this.updateSelectedLabel();\n\n this.options.changes.pipe(takeUntilDestroyed(this._destroyRef)).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 onAnimationEnd = (event: any) => {\n if (event.toState === 'closed') {\n this.closeOverlay();\n }\n };\n\n selectOption(option: MonkeyOptionComponent): void {\n if (option.disabled || this.disabled) return;\n\n if (this.type === 'checkbox') {\n const values = this.getComparationValue();\n const index = values.indexOf(`${option.value()}`);\n\n if (index === -1) {\n values.push(`${option.value()}`);\n option.selected = true;\n } else {\n values.splice(index, 1);\n option.selected = false;\n }\n\n this.value = values.join(',');\n } else {\n this.value = `${option.value()}`;\n\n this.options.forEach((opt) => {\n opt.selected = `${opt.value()}` === `${this.value}`;\n });\n\n this.closeDropdown();\n this._onChange(this.value);\n this.onChange.emit(this.value);\n }\n\n this.updateSelectedLabel();\n }\n\n writeValue(value: any): void {\n this.value = value;\n this.changeSelected();\n this.updateSelectedLabel();\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 onHandleSearch(event: Event) {\n try {\n const { value } = event.target as HTMLInputElement;\n const handled = sanitizeString(value);\n this.searchHandle.next(handled || '');\n } catch (e) {\n // not to do\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 <util-icon class=\"mecx-select-icon\" name=\"arrowDown\" />\n }\n</div>\n\n<ng-template #overlayTemplate>\n <div class=\"mecx-select-body-overlay\">\n @if (showSearch) {\n <div class=\"mecx-select-search\">\n <util-icon class=\"mecx-select-search-icon\" name=\"search\" />\n <input\n (input)=\"onHandleSearch($event)\"\n type=\"text\"\n [id]=\"id + '-search'\"\n autocomplete=\"off\"\n maxlength=\"50\"\n [placeholder]=\"searchPlaceholder\"\n [(ngModel)]=\"searchData\"\n />\n </div>\n }\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 @if (showSearch && showSearchNoData) {\n <div class=\"mecx-select-search-no-data\">\n <util-icon class=\"mecx-select-search-no-data-icon\" name=\"searchFail\" />\n {{ searchDictionary | async }}\n </div>\n }\n @if (loading) {\n <div class=\"mecx-select-search-loading\">\n {{ loadingDictionary | async }}\n </div>\n }\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 ************************* */\nexport * from './select.component';\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 {\n AfterContentInit,\n booleanAttribute,\n Component,\n ElementRef,\n inject,\n Input,\n LOCALE_ID,\n OnChanges,\n OnDestroy,\n QueryList,\n SimpleChanges,\n ViewChildren\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n FormsModule,\n NgControl,\n ReactiveFormsModule,\n Validators\n} from '@angular/forms';\nimport parsePhoneNumberFromString, {\n AsYouType,\n CountryCode,\n getCountries,\n getCountryCallingCode,\n getExampleNumber\n} from 'libphonenumber-js';\nimport examples from 'libphonenumber-js/examples.mobile.json';\nimport { isValidPhoneNumber } from 'libphonenumber-js/max';\nimport { Subject } from 'rxjs';\nimport { IdGenerator } from '../../../utils';\nimport { MECX_COUNTRY_ISO_CODE } from '../../tokens';\nimport { MonkeyFormFieldControl, MonkeyFormFieldModule } from '../form-field';\nimport { MonkeyOptionComponent } from '../option';\nimport { MonkeySelectComponent } from '../select';\n\ninterface Country {\n iso: string;\n code: string;\n name: string;\n flag: string;\n}\n\n@Component({\n selector: 'monkey-input-phone',\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n MonkeySelectComponent,\n MonkeyOptionComponent,\n MonkeyFormFieldModule\n ],\n template: `\n <monkey-select\n placeholder=\"\"\n [disabled]=\"disabled\"\n showSearch\n [(ngModel)]=\"selectedCallingCode\"\n class=\"mecx-phone-select-country\"\n (onChange)=\"onCountryChange()\"\n >\n @for (item of countries; track $index) {\n <monkey-option [value]=\"item.iso\">\n <span class=\"option-flag\">{{ item.flag }}</span>\n <div class=\"option-name\">{{ item.name }} {{ item.code }}</div>\n </monkey-option>\n }\n </monkey-select>\n <input\n #input\n type=\"tel\"\n class=\"mecx-input\"\n [disabled]=\"disabled\"\n [placeholder]=\"placeholder\"\n (input)=\"onInputChange($event)\"\n [ngModel]=\"phoneFormatted\"\n [maxlength]=\"getMaxLength()\"\n (focus)=\"_onFocus()\"\n (blur)=\"_onBlur()\"\n [attr.id]=\"inputId\"\n />\n `,\n styleUrl: './input-phone.component.scss',\n providers: [\n // eslint-disable-next-line no-use-before-define\n { provide: MonkeyFormFieldControl, useExisting: MonkeyInputPhoneComponent }\n ],\n host: {\n '[attr.data-testid]': \"'monkey-input-phone'\",\n class: 'mecx-input-phone',\n '[class.mecx-input-phone-disabled]': '_disabled',\n '[class.mecx-input-phone-focused]': 'focused',\n '[attr.id]': 'id',\n '[attr.tabindex]': 'disabled ? -1 : tabIndex',\n '(focus)': '_onFocus()',\n '(blur)': '_onBlur()'\n }\n})\nexport class MonkeyInputPhoneComponent\n implements MonkeyFormFieldControl, ControlValueAccessor, AfterContentInit, OnDestroy, OnChanges\n{\n @Input() placeholder: string = '';\n\n @Input() tabIndex = 0;\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 _disabled: boolean = false;\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 this._value = value;\n this.formatValue(value);\n this._onChange(value);\n this._onTouched(value);\n }\n\n get value(): any {\n return this._value;\n }\n\n _value: string | null = null;\n\n constructor() {\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n ngControl: NgControl | null = inject(NgControl, { self: true, optional: true })!;\n\n private readonly idGenerator = inject(IdGenerator);\n\n private readonly countryIsoCode = inject(MECX_COUNTRY_ISO_CODE);\n\n private readonly locale = inject(LOCALE_ID);\n\n readonly id: string = this.idGenerator.getId('monkey-input-phone-');\n\n readonly inputId: string = this.idGenerator.getId('monkey-input-phone-input-');\n\n focused: boolean = false;\n\n readonly type: string = 'input-phone';\n\n readonly stateChanges = new Subject<void>();\n\n countries: Country[] = getCountries()\n .map((code) => {\n return {\n iso: code,\n code: `+${getCountryCallingCode(code)}`,\n name: this.getCountryNameFromCode(code),\n flag: `${this.isoToFlagEmoji(code)} `\n };\n })\n .sort((a, b) => {\n return a.name.localeCompare(b.name);\n });\n\n selectedCallingCode = this.countryIsoCode.toString();\n\n phoneFormatted = '';\n\n phoneValid = false;\n\n @ViewChildren('input') inputs!: QueryList<ElementRef<HTMLInputElement>>;\n\n private getCountryNameFromCode(code: string) {\n try {\n const locale = this.locale.toString();\n const display = new Intl.DisplayNames([locale], { type: 'region' });\n return display.of(code.toUpperCase()) || code;\n } catch {\n return code;\n }\n }\n\n private getCountryByCallingCode(code: string): CountryCode | null {\n const cleanCode = code.replace('+', '');\n\n return (\n getCountries().find((country) => {\n return country === cleanCode;\n }) || null\n );\n }\n\n private isoToFlagEmoji(isoCode: string): string {\n return isoCode.toUpperCase().replace(/./g, (char) => {\n return String.fromCodePoint(127397 + char.charCodeAt(0));\n });\n }\n\n private getCountryFromPhoneNumber(input: string, changedCountry: boolean): string {\n try {\n if (changedCountry) {\n return this.selectedCallingCode;\n }\n\n const parsed = parsePhoneNumberFromString(input);\n return parsed!.country as string;\n } catch (e) {\n // not to do\n }\n\n return this.selectedCallingCode;\n }\n\n private performValue(value: string) {\n const countryCode = `+${getCountryCallingCode(this.selectedCallingCode as CountryCode)}`;\n\n this._value = `${countryCode}${value}`;\n this._onChange(this._value);\n this._onTouched(this._value);\n }\n\n private validateValue() {\n const { phoneValid } = this;\n if (!phoneValid) {\n const countryCode = this.selectedCallingCode as CountryCode;\n const example = getExampleNumber(countryCode!, examples);\n\n const formatter = new AsYouType(countryCode);\n const phoneAllowed = formatter.input(example!.nationalNumber);\n\n this.ngControl?.control?.setErrors({\n phone: true,\n phoneAllowed\n });\n }\n }\n\n private formatValue(value: string, changedCountry = false) {\n if (!value) {\n this.phoneFormatted = '';\n this.phoneValid = false;\n this.validateValue();\n return;\n }\n\n const detectedCallingCode = this.getCountryFromPhoneNumber(value, changedCountry);\n const isCountryChanged = changedCountry || detectedCallingCode !== this.selectedCallingCode;\n\n if (isCountryChanged && detectedCallingCode) {\n this.selectedCallingCode = detectedCallingCode;\n }\n\n const countryCode = `+${getCountryCallingCode(this.selectedCallingCode as CountryCode)}`;\n\n if (!countryCode) {\n this.phoneFormatted = value;\n this.phoneValid = false;\n this.validateValue();\n return;\n }\n\n let nationalPart = value.replace(this.selectedCallingCode, '').replace(/[^\\d+]/g, '');\n nationalPart = nationalPart.replace(countryCode, '');\n\n const formatter = new AsYouType(this.selectedCallingCode as CountryCode);\n this.phoneFormatted = formatter.input(nationalPart);\n\n this.performValue(nationalPart);\n\n this.phoneValid = isValidPhoneNumber(nationalPart, this.selectedCallingCode as CountryCode);\n this.validateValue();\n }\n\n disableToBeDirty?: boolean | undefined;\n\n _onChange: any = () => {};\n\n _onTouched: any = () => {};\n\n ngAfterContentInit(): void {}\n\n ngOnChanges(changes: SimpleChanges): void {}\n\n ngOnDestroy(): void {}\n\n onContainerClick(event: MouseEvent): void {\n this.inputs.first.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 this.validateValue();\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 setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled;\n }\n\n writeValue(value: any): void {\n this.value = value;\n }\n\n onInputChange(event: Event) {\n const { value } = event.target as HTMLInputElement;\n this.formatValue(value);\n }\n\n onCountryChange() {\n this.formatValue(this._value!, true);\n this.validateValue();\n }\n\n getMaxLength(): number {\n try {\n const countryCode = this.getCountryByCallingCode(this.selectedCallingCode);\n\n if (!countryCode) return 20;\n\n const example = getExampleNumber(countryCode, examples);\n const formatted = new AsYouType(countryCode).input(example!.nationalNumber);\n\n return formatted.length;\n } catch {\n return 20;\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 './input-phone.component';\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 booleanAttribute,\n Component,\n ElementRef,\n EventEmitter,\n inject,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n SimpleChanges,\n ViewChild\n} from '@angular/core';\nimport { ControlValueAccessor, NgControl, Validators } from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { formatFileSize, getFileExtension, IdGenerator } from '../../../utils';\nimport { MonkeyFormFieldControl } from '../form-field';\n\n// eslint-disable-next-line no-use-before-define\nexport type MonkeyInputUploadChangeEvent = { component: MonkeyInputUploadComponent; file: File };\n\n@Component({\n selector: 'monkey-input-upload',\n imports: [],\n template: `\n <div class=\"mecx-input-upload-value\" [class.has-value]=\"value\">\n {{ value?.filename || value?.fileName || placeholder }}\n </div>\n <input\n (change)=\"onFileSelected($event)\"\n type=\"file\"\n class=\"file-input\"\n #fileInput\n [accept]=\"allowedExtensions.join(',')\"\n />\n @if (loading) {\n <div class=\"progress\">\n <div class=\"progress-bar\" [style.width.%]=\"progress\"></div>\n </div>\n }\n `,\n styleUrl: './input-upload.component.scss',\n providers: [\n // eslint-disable-next-line no-use-before-define\n { provide: MonkeyFormFieldControl, useExisting: MonkeyInputUploadComponent }\n ],\n host: {\n '[attr.data-testid]': \"'monkey-input-upload'\",\n class: 'mecx-input-upload',\n '[class.mecx-input-upload-disabled]': '_disabled',\n '[class.mecx-input-upload-focused]': 'focused',\n '[attr.id]': 'id',\n '[attr.tabindex]': 'disabled ? -1 : tabIndex',\n '(focus)': '_onFocus()',\n '(blur)': '_onBlur()'\n }\n})\nexport class MonkeyInputUploadComponent\n implements MonkeyFormFieldControl, ControlValueAccessor, AfterContentInit, OnDestroy, OnChanges\n{\n @ViewChild('fileInput') fileInput!: ElementRef<HTMLInputElement>;\n\n @Input() progress: number = 0;\n\n @Input() placeholder: string = '';\n\n @Input() maxSizeBytes = 5 * 1024 * 1024;\n\n @Input() allowedExtensions = ['.jpg', '.jpeg', '.png', '.pdf', '.txt', '.xls', '.xlsx'];\n\n @Input({ transform: booleanAttribute })\n loading = false;\n\n @Input() tabIndex = 0;\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 _disabled: boolean = false;\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 && value !== undefined) {\n this._value = value;\n this._onChange(value);\n this._onTouched(value);\n }\n }\n\n get value(): any {\n return this._value;\n }\n\n _value = null;\n\n constructor() {\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n @Output() onChange = new EventEmitter<MonkeyInputUploadChangeEvent>();\n\n ngControl: NgControl | null = inject(NgControl, { self: true, optional: true })!;\n\n private readonly idGenerator = inject(IdGenerator);\n\n readonly id: string = this.idGenerator.getId('monkey-input-upload-');\n\n focused: boolean = false;\n\n readonly type: string = '';\n\n currency: boolean = false;\n\n readonly percent: boolean = false;\n\n readonly stateChanges = new Subject<void>();\n\n private validateFileSize(file: File): boolean {\n return file.size <= this.maxSizeBytes;\n }\n\n private validateFileExtension(file: File): boolean {\n if (!this.allowedExtensions || !this.allowedExtensions.length) {\n return true;\n }\n const fileExtension = getFileExtension(file.name);\n\n const allowedExts = this.allowedExtensions.map((ext) => {\n return ext.trim().replace('.', '').toLowerCase();\n });\n\n return allowedExts.includes(fileExtension);\n }\n\n onContainerClick(event: MouseEvent): void {\n if (!this.loading) {\n this.fileInput.nativeElement.click();\n }\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 disableToBeDirty?: boolean | undefined;\n\n _onChange: any = () => {};\n\n _onTouched: any = () => {};\n\n ngAfterContentInit(): void {}\n\n ngOnChanges(changes: SimpleChanges): void {}\n\n ngOnDestroy(): void {}\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 if (this.fileInput) {\n this.fileInput.nativeElement.disabled = isDisabled;\n }\n }\n\n writeValue(value: any): void {\n this.value = value;\n }\n\n reset(): void {\n if (this.fileInput) {\n this.fileInput.nativeElement.value = '';\n }\n }\n\n onFileSelected(event: Event) {\n const input = event.target as HTMLInputElement;\n this._onTouched();\n if (!input.files?.length) {\n return;\n }\n\n const file = input.files.item(0);\n\n if (this.fileInput) {\n this.fileInput.nativeElement.value = '';\n }\n\n if (!this.validateFileSize(file!)) {\n this.ngControl?.control?.setErrors({\n maxFileSize: true,\n sizeAllowed: formatFileSize(this.maxSizeBytes)\n });\n this._onBlur();\n this.reset();\n return;\n }\n\n if (!this.validateFileExtension(file!)) {\n this.ngControl?.control?.setErrors({\n fileExtension: true,\n extensionAllowed: this.allowedExtensions.join(', ')\n });\n this._onBlur();\n this.reset();\n return;\n }\n\n this.ngControl?.control?.setErrors(null);\n\n this._onBlur();\n if (this.onChange.observed) {\n this.onChange.emit({ component: this, file: file! });\n } else {\n this.value = {\n fileName: file!.name,\n file\n };\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 './input-upload.component';\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 standalone: false\n})\nexport class MonkeyModalActionsDirective {\n @Input() mkAlign: 'start' | 'center' | 'end' = 'end';\n\n id = inject(IdGenerator).getId('monkey-modal-actions-');\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 standalone: false\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 } 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 standalone: false\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-title, [monkey-modal-title]',\n host: {\n class: 'mecx-modal-title',\n '[attr.id]': 'id || null'\n },\n standalone: false\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 { 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 disableBackdropClose?: boolean = false;\n\n maxWidth?: number | string;\n\n maxHeight?: number | string;\n\n fullscreen?: boolean = false;\n\n position?:\n | 'left-top'\n | 'center-top'\n | 'right-top'\n | 'left-center'\n | 'center-center'\n | 'right-center'\n | 'left-bottom'\n | 'center-bottom'\n | 'right-bottom' = 'center-center';\n\n data?: any | null = null;\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\nexport interface MonkeyModalConfirmationConfig {\n title: string;\n content: string;\n cancelLabel: string;\n okLabel: string;\n type?: 'error' | 'success' | 'warning';\n confirmColor?: 'error' | 'success' | 'theme';\n icon?: 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 { 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 disableBackdropClose: boolean | undefined;\n\n closeOnNavigation: boolean | undefined;\n\n componentElement!: HTMLElement;\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.disableBackdropClose = config.disableBackdropClose;\n this.closeOnNavigation = config.closeOnNavigation;\n this.backdropClick = overlayRef.backdropClick();\n this.keydownEvents = overlayRef.keydownEvents();\n this.outsidePointerEvents = overlayRef.outsidePointerEvents();\n\n if (!this.disableBackdropClose) {\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\n close(result?: any): void {\n if (this.componentInstance) {\n const closedSubject = this.closed as Subject<any>;\n\n const active = document.activeElement as HTMLElement;\n if (active && this.componentElement.contains(active)) {\n active.blur();\n }\n\n this.componentElement.querySelectorAll('monkey-modal')[0].classList.add('fade-out');\n setTimeout(() => {\n this.overlayRef.detach();\n }, 150);\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 { OverlayRef } from '@angular/cdk/overlay';\nimport {\n AfterViewInit,\n Component,\n ElementRef,\n inject,\n OnDestroy,\n Optional,\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 </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.component.scss',\n standalone: false\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 @Optional() public overlayRef?: OverlayRef,\n @Optional() public modalRef?: MonkeyModalRef\n ) {\n // not to do\n }\n\n ngAfterViewInit(): void {\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 const element = this._elementRef.nativeElement as HTMLElement;\n\n element.classList.add('fade-out');\n\n setTimeout(() => {\n this.modalRef?.close();\n }, 150);\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';\nimport { MonkeyModalConfirmationConfig, MonkeyModalDefaultConfig } from './modal-config';\n\nexport const MECX_MODAL_DATA = new InjectionToken<any>('mecxModalData');\nexport const MECX_MODAL_DEFAULT_CONFIG = new InjectionToken<MonkeyModalDefaultConfig>(\n 'mecxModalDefaultConfig'\n);\nexport const MECX_MODAL_CONFIRMATION_CONFIG = new InjectionToken<MonkeyModalConfirmationConfig>(\n 'mecxModalConfirmationConfig'\n);\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 ************************* */\nimport { 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 standalone: false\n})\nexport class MonkeyModalDefaultComponent {\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 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 ************************* */\nimport { Component, Inject, ViewEncapsulation } from '@angular/core';\nimport { MonkeyModalConfirmationConfig } from '../modal-config';\nimport { MonkeyModalRef } from '../modal-ref';\nimport { MECX_MODAL_CONFIRMATION_CONFIG } from '../utils';\n\n@Component({\n selector: 'monkey-modal-confirmation',\n encapsulation: ViewEncapsulation.None,\n styleUrls: ['./confirmation.component.scss'],\n template: `\n <monkey-modal class=\"modal-confirmation\">\n <monkey-modal-content>\n @if (config.icon) {\n <div class=\"modal-confirmation-icon {{ config.type }}\">\n <monkey-icon [icon]=\"config.icon\" size=\"xxl\"></monkey-icon>\n </div>\n }\n <div class=\"confirmation-title\" [innerHTML]=\"config.title\"></div>\n <div class=\"confirmation-description\" [innerHTML]=\"config.content\"></div>\n </monkey-modal-content>\n <monkey-modal-actions>\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 standalone: false\n})\nexport class MonkeyModalConfirmationComponent {\n constructor(\n @Inject(MECX_MODAL_CONFIRMATION_CONFIG) public config: MonkeyModalConfirmationConfig,\n @Inject(MonkeyModalRef) private modalRef: MonkeyModalRef\n ) {\n // not to do\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 { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MonkeyButtonComponent } from '../button';\nimport { MonkeyIconComponent } from '../icon';\nimport { MonkeyIconButtonComponent } from '../icon-button';\nimport { MonkeyModalDefaultComponent } from './components/default';\nimport { MonkeyModalConfirmationComponent } from './components/confirmation.component';\nimport { MonkeyModalActionsDirective } from './directives/actions';\nimport { MonkeyModalContentDirective } from './directives/content';\nimport { MonkeyModalSubtitleDirective } from './directives/subtitle';\nimport { MonkeyModalTitleDirective } from './directives/title';\nimport { MonkeyModalComponent } from './modal.component';\n\n@NgModule({\n imports: [CommonModule, MonkeyButtonComponent, MonkeyIconButtonComponent, MonkeyIconComponent],\n declarations: [\n MonkeyModalComponent,\n MonkeyModalDefaultComponent,\n MonkeyModalConfirmationComponent,\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 { MonkeyModalConfirmationComponent } from './components/confirmation.component';\nimport { MonkeyModalDefaultComponent } from './components/default';\nimport {\n MonkeyModalConfig,\n MonkeyModalConfirmationConfig,\n MonkeyModalDefaultConfig\n} from './modal-config';\nimport { MonkeyModalRef } from './modal-ref';\nimport {\n MECX_MODAL_CONFIRMATION_CONFIG,\n MECX_MODAL_DATA,\n MECX_MODAL_DEFAULT_CONFIG,\n reverseForEach\n} from './utils';\n\n@Injectable({ providedIn: 'root' })\nexport class MonkeyModalService {\n protected _idGenerator = inject(IdGenerator);\n\n protected _injector = inject(Injector);\n\n protected _overlay = inject(Overlay);\n\n protected _openDialogsAtThisLevel: MonkeyModalRef[] = [];\n\n protected _parentDialog = inject(MonkeyModalService, { optional: true, skipSelf: true });\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 let positionStrategy;\n const marginStrategy = '20px';\n if (config.position === 'left-top') {\n positionStrategy = this._overlay.position().global().left(marginStrategy).top(marginStrategy);\n } else if (config.position === 'center-top') {\n positionStrategy = this._overlay.position().global().centerHorizontally().top(marginStrategy);\n } else if (config.position === 'right-top') {\n positionStrategy = this._overlay\n .position()\n .global()\n .right(marginStrategy)\n .top(marginStrategy);\n } else if (config.position === 'left-center') {\n positionStrategy = this._overlay.position().global().left(marginStrategy).centerVertically();\n } else if (config.position === 'center-center') {\n positionStrategy = this._overlay.position().global().centerHorizontally().centerVertically();\n } else if (config.position === 'right-center') {\n positionStrategy = this._overlay.position().global().right(marginStrategy).centerVertically();\n } else if (config.position === 'left-bottom') {\n positionStrategy = this._overlay\n .position()\n .global()\n .left(marginStrategy)\n .bottom(marginStrategy);\n } else if (config.position === 'center-bottom') {\n positionStrategy = this._overlay.position().global().centerHorizontally().bottom('20px');\n } else if (config.position === 'right-bottom') {\n positionStrategy = this._overlay\n .position()\n .global()\n .right(marginStrategy)\n .bottom(marginStrategy);\n }\n\n let panelClass = ['monkey-modal-panel'];\n\n if (config.fullscreen) {\n panelClass.push('monkey-modal-fullscreen');\n }\n\n if (Array.isArray(config.panelClass)) {\n panelClass = [...panelClass, ...config.panelClass];\n } else {\n panelClass.push(config.panelClass as string);\n }\n\n const state = new OverlayConfig({\n positionStrategy,\n scrollStrategy: this._overlay.scrollStrategies.block(),\n panelClass,\n hasBackdrop: config.hasBackdrop,\n maxWidth: config.maxWidth,\n maxHeight: config.maxHeight,\n disposeOnNavigation: config.closeOnNavigation\n });\n\n if (config.backdropClass) {\n state.backdropClass = config.backdropClass;\n }\n\n if (config.maxWidth) {\n state.width = '100%';\n }\n if (config.maxHeight) {\n state.height = '100%';\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\n const componentElement = componentRef.location.nativeElement as HTMLElement;\n componentElement.style.width = '100%';\n componentElement.style.height = '100%';\n modalRef.componentElement = componentElement;\n\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 config.providers = [{ provide: MECX_MODAL_DEFAULT_CONFIG, useValue: params }];\n config.icon = config.icon ? config.icon : 'help';\n\n return this.open(MonkeyModalDefaultComponent, config);\n }\n\n openConfirmation(params: MonkeyModalConfirmationConfig, config: MonkeyModalConfig) {\n config.providers = [{ provide: MECX_MODAL_CONFIRMATION_CONFIG, useValue: params }];\n\n return this.open(MonkeyModalConfirmationComponent, 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 ************************* */\nexport * from './directives/actions';\nexport * from './directives/content';\nexport * from './directives/subtitle';\nexport * from './directives/title';\nexport * from './modal-config';\nexport * from './modal-ref';\nexport * from './modal.component';\nexport * from './modal.module';\nexport * from './modal.service';\nexport { MECX_MODAL_DATA, MECX_MODAL_DEFAULT_CONFIG } from './utils';\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 {\n AfterContentInit,\n booleanAttribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n DestroyRef,\n ElementRef,\n EventEmitter,\n HostBinding,\n inject,\n Input,\n Optional,\n Output,\n QueryList,\n ViewEncapsulation\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport {\n ControlValueAccessor,\n FormsModule,\n NgControl,\n ReactiveFormsModule,\n Validators\n} from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { IdGenerator } from '../../../utils/id-generator';\nimport { MonkeySize } from '../../interfaces';\nimport { MonkeyFormFieldControl } from '../form-field/form-field-control';\nimport { MonkeyFormFieldComponent } from '../form-field/form-field.component';\nimport { MonkeyOptionComponent } from '../option/option.component';\n\n@Component({\n selector: 'monkey-radiobutton',\n imports: [CommonModule, ReactiveFormsModule, FormsModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: 'radio-button.component.html',\n styleUrls: ['./radio-button.component.scss'],\n encapsulation: ViewEncapsulation.None,\n providers: [\n // eslint-disable-next-line no-use-before-define\n { provide: MonkeyFormFieldControl, useExisting: MonkeyRadioButtonComponent }\n ],\n host: {\n 'data-testid': 'monkey-radiobutton',\n class: 'mecx-radiobutton',\n '[class.mecx-disabled]': 'disabled',\n '[class.mecx-radiobutton-focused]': 'focused',\n '[attr.id]': 'id',\n '[attr.tabindex]': 'disabled ? -1 : tabIndex',\n '(focus)': '_onFocus()',\n '(blur)': '_onBlur()'\n }\n})\nexport class MonkeyRadioButtonComponent\n implements MonkeyFormFieldControl, ControlValueAccessor, AfterContentInit\n{\n @ContentChildren(MonkeyOptionComponent) options!: QueryList<MonkeyOptionComponent>;\n\n @Input() tabIndex = 0;\n\n @Output() onChange = new EventEmitter();\n\n @Output() onSearch = new EventEmitter();\n\n @Input() position = 'horizontal';\n\n @Input()\n size: MonkeySize = 'lg';\n\n @HostBinding('class')\n get classes() {\n return `${this.position} ${this.size}`;\n }\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 private _destroyRef = inject(DestroyRef);\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 focused: boolean = false;\n\n _disabled: boolean = false;\n\n readonly id: string = this.idGenerator.getId('monkey-radiobutton-');\n\n readonly stateChanges = new Subject<void>();\n\n readonly type: string = 'radio-button';\n\n constructor(\n private changeDetectorRef: ChangeDetectorRef,\n @Optional() private formField: MonkeyFormFieldComponent\n ) {\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\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 }\n this.changeDetectorRef.markForCheck();\n });\n }\n\n private initializeOptions() {\n setTimeout(() => {\n this.options?.forEach((option) => {\n option.type = 'radio';\n if (!option.action) {\n option.action = this.selectOption.bind(this, option);\n }\n });\n this.changeDetectorRef.markForCheck();\n }, 0);\n }\n\n ngAfterContentInit() {\n this.initializeOptions();\n this.options.changes.pipe(takeUntilDestroyed(this._destroyRef)).subscribe(() => {\n this.initializeOptions();\n this.changeSelected();\n });\n }\n\n selectOption(option: MonkeyOptionComponent): void {\n if (!option.disabled && !this.disabled) {\n this.value = option.value();\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 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._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 this.initializeOptions();\n }\n}\n","<ng-content />\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nexport * from './radio-button.component';\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 styleUrl: './security-level.component.scss',\n templateUrl: './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 ************************* */\nexport * from './security-level.component';\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 imports: [CommonModule],\n templateUrl: './status.component.html',\n styleUrl: './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 ************************* */\nexport * from './status.component';\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 inject,\n Input,\n QueryList\n} from '@angular/core';\nimport { IdGenerator } from '../../../../utils';\n\n@Component({\n selector: 'monkey-step',\n standalone: false,\n template: `\n <div\n class=\"item\"\n [class.active]=\"isActive\"\n [class.complete]=\"isComplete\"\n [class.current]=\"isCurrent\"\n [class.substep]=\"isSubStep\"\n >\n <div class=\"step\">\n <div class=\"number\" [class.icon]=\"!!icon\">\n @if (icon) {\n <monkey-icon size=\"sm\" [icon]=\"icon\" />\n } @else if (isComplete) {\n <util-icon name=\"check\" />\n } @else {\n {{ number }}\n }\n </div>\n </div>\n <div class=\"label\">\n <div>{{ label }}</div>\n @if (isCurrent) {\n <div class=\"current-icon\">\n <monkey-icon icon=\"arrow-line-right\" size=\"sm\" />\n </div>\n }\n </div>\n </div>\n @if (hasSubSteps && (isActive || isCurrent)) {\n <div class=\"substeps\">\n <ng-content />\n </div>\n }\n `,\n styleUrl: './step.component.scss',\n host: {\n 'data-testid': 'monkey-step',\n '[attr.id]': 'id',\n '[id]': 'id'\n }\n})\nexport class MonkeyStepComponent implements AfterContentInit {\n protected id = inject(IdGenerator).getId('monkey-step-');\n\n // eslint-disable-next-line no-use-before-define\n @ContentChildren(MonkeyStepComponent) subSteps!: QueryList<MonkeyStepComponent>;\n\n @Input() label = '';\n\n @Input() step = '';\n\n @Input() icon = '';\n\n number?: number = undefined;\n\n hasSubSteps = true;\n\n isSubStep = false;\n\n isCurrent = false;\n\n isComplete = false;\n\n isActive = false;\n\n ngAfterContentInit(): void {\n if (this.subSteps.length <= 0) {\n this.hasSubSteps = false;\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 {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n inject,\n Input,\n OnChanges,\n QueryList,\n ViewEncapsulation\n} from '@angular/core';\nimport { IdGenerator } from '../../../utils';\nimport { MonkeyStepComponent } from './step/step.component';\n\n@Component({\n selector: 'monkey-stepper',\n standalone: false,\n template: `<ng-content />`,\n styleUrl: './stepper.component.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'data-testid': 'monkey-stepper',\n '[attr.id]': 'monkeyId',\n '[id]': 'monkeyId',\n '[class.horizontal]': `direction === 'horizontal'`\n }\n})\nexport class MonkeyStepperComponent implements AfterContentInit, OnChanges {\n protected monkeyId = inject(IdGenerator).getId('monkey-stepper-');\n\n @ContentChildren(MonkeyStepComponent) steps!: QueryList<MonkeyStepComponent>;\n\n @Input() direction: 'horizontal' | 'vertical' = 'vertical';\n\n private _id = '';\n\n @Input()\n set id(value: string) {\n this._id = value;\n }\n\n get id() {\n return this._id;\n }\n\n @Input() currentStep? = '';\n\n ngAfterContentInit(): void {\n this.render();\n }\n\n ngOnChanges(): void {\n if (this.steps) {\n this.render();\n }\n }\n\n render() {\n let stepFound = false;\n\n this.steps.forEach((step, index) => {\n step.number = index + 1;\n\n step.isCurrent = this.currentStep === step.step;\n if (step.isCurrent) {\n stepFound = true;\n }\n\n if (step.hasSubSteps) {\n step.subSteps.forEach((subStep) => {\n subStep.isSubStep = true;\n subStep.isCurrent = this.currentStep === subStep.step;\n if (subStep.isCurrent) {\n stepFound = true;\n }\n subStep.isComplete = !stepFound;\n });\n\n step.isComplete = step.subSteps.toArray().every((_) => {\n return _.isComplete;\n });\n\n step.isActive = step.subSteps.toArray().some((_) => {\n return _.isCurrent;\n });\n } else {\n step.isComplete = !stepFound;\n }\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 { MonkeyStepperComponent } from './stepper.component';\nimport { MonkeyStepComponent } from './step/step.component';\nimport { UtilIconComponent } from '../../../utils';\nimport { MonkeyIconComponent } from '../icon';\n\n@NgModule({\n declarations: [MonkeyStepperComponent, MonkeyStepComponent],\n imports: [UtilIconComponent, MonkeyIconComponent],\n exports: [MonkeyStepperComponent, MonkeyStepComponent]\n})\nexport class MonkeyStepperModule {}\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 '../../../button';\n\n@Component({\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 '../../../form-field/form-field.module';\nimport { MonkeyOptionComponent } from '../../../option/option.component';\nimport { MonkeySelectComponent } from '../../../select/select.component';\n\n@Component({\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 size=\"sm\">\n <monkey-select\n placeholder=\"''\"\n [ngModel]=\"size\"\n (onChange)=\"onChange.next($event)\"\n [disabled]=\"disabled\"\n [showSearch]=\"false\"\n >\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.component.html',\n styleUrl: './table.component.scss',\n standalone: false\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 '../../checkbox';\nimport { MonkeyTableComponent } from '../table.component';\n\n@Directive({\n selector: '[mkChecked]',\n host: {\n class: 'mecx-column-checked'\n },\n standalone: false\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.component';\n\n@Directive({\n selector: '[mkExpansible]',\n host: {\n class: 'mecx-column-expansible'\n },\n standalone: false\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.component';\n\n@Directive({\n selector: '[mkSortable]',\n host: {\n class: 'mecx-column-sortable'\n },\n standalone: false\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 standalone: false\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 { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MonkeyButtonComponent } from '../button/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.component';\n\n@NgModule({\n imports: [\n CommonModule,\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","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nexport * from './components/pagination-action/pagination-action';\nexport * from './components/pagination-label/pagination-label';\nexport * from './components/pagination-size/pagination-size';\nexport * from './directives/column-checked';\nexport * from './directives/column-expansible';\nexport * from './directives/column-sortable';\nexport * from './directives/column-stick';\nexport * from './table.component';\nexport * from './table.module';\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 DestroyRef,\n Directive,\n ElementRef,\n HostBinding,\n inject,\n Inject,\n Input,\n OnInit,\n Optional\n} from '@angular/core';\nimport { NavigationEnd, Router } from '@angular/router';\nimport { filter } from 'rxjs';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Directive({\n selector: '[monkey-tab-link]',\n standalone: false\n})\nexport class MonkeyTabLinkDirective implements OnInit {\n @Input({ transform: booleanAttribute }) disabled: boolean = false;\n\n @HostBinding('class.disabled')\n get isDisabled() {\n return this.disabled;\n }\n\n @HostBinding('attr.tabindex')\n get tabIndex() {\n return this.disabled ? -1 : 0;\n }\n\n private destroyRef = inject(DestroyRef);\n\n private el = inject(ElementRef<HTMLAnchorElement>);\n\n constructor(@Optional() @Inject(Router) private router: Router) {\n // ignore\n }\n\n ngOnInit() {\n if (this.router) {\n this.updateActiveState();\n\n this.router.events\n .pipe(\n filter((event) => {\n return event instanceof NavigationEnd;\n }),\n takeUntilDestroyed(this.destroyRef)\n )\n .subscribe(() => {\n this.updateActiveState();\n });\n }\n }\n\n private updateActiveState() {\n if (this.disabled) return;\n\n const link = this.el.nativeElement;\n const routerLink = link.getAttribute('routerLink');\n\n if (routerLink && this.router) {\n const isActive =\n this.router.url === routerLink ||\n (routerLink !== '/' && this.router.url.startsWith(routerLink));\n\n if (isActive) {\n link.classList.add('active');\n } else {\n link.classList.remove('active');\n }\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 {\n booleanAttribute,\n Component,\n EventEmitter,\n HostBinding,\n Input,\n Output\n} from '@angular/core';\n\n@Component({\n selector: 'monkey-tab',\n standalone: false,\n template: `\n <button type=\"button\" [disabled]=\"disabled\" (click)=\"handleClick()\">\n <ng-content />\n </button>\n `,\n styles: [\n `\n :host {\n display: block;\n }\n `\n ]\n})\nexport class MonkeyTabComponent {\n @Input() value: string = '';\n\n @Input({ transform: booleanAttribute }) disabled: boolean = false;\n\n @Output() onClick = new EventEmitter<string>();\n\n @HostBinding('class.selected')\n isSelected: boolean = false;\n\n handleClick() {\n if (!this.disabled) {\n this.onClick.emit(this.value);\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 {\n AfterContentInit,\n AfterViewInit,\n booleanAttribute,\n Component,\n ContentChildren,\n DestroyRef,\n ElementRef,\n EventEmitter,\n inject,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n QueryList,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { MonkeyTabComponent } from './tab.component';\nimport { IdGenerator } from '../../../utils';\n\n@Component({\n selector: 'monkey-tabs',\n standalone: false,\n encapsulation: ViewEncapsulation.None,\n template: `\n @if (hasScroll) {\n <button\n class=\"scroll-arrow scroll-arrow-left\"\n [class.enabled]=\"enabledLeftArrow\"\n (click)=\"scrollLeft()\"\n type=\"button\"\n >\n ‹\n </button>\n }\n\n <div class=\"monkey-tabs-header\" #tabsHeader>\n <div\n class=\"monkey-tabs-content\"\n [class.full-width]=\"fullWidth\"\n [class]=\"position\"\n #tabsContent\n >\n <ng-content></ng-content>\n </div>\n </div>\n\n @if (hasScroll) {\n <button\n class=\"scroll-arrow scroll-arrow-right\"\n [class.enabled]=\"enabledRightArrow\"\n (click)=\"scrollRight()\"\n type=\"button\"\n >\n ›\n </button>\n }\n `,\n styleUrls: ['./tabs.component.scss'],\n host: {\n 'data-testid': 'monkey-tabs',\n '[attr.id]': 'monkeyId',\n '[id]': 'monkeyId'\n }\n})\nexport class MonkeyTabsComponent implements AfterContentInit, AfterViewInit, OnDestroy, OnChanges {\n protected monkeyId = inject(IdGenerator).getId('monkey-tabs-');\n\n @Input() selected: string = '';\n\n @Input({ transform: booleanAttribute }) fullWidth: boolean = false;\n\n @Input() position: 'start' | 'center' | 'end' = 'start';\n\n @Output() onChange = new EventEmitter<string>();\n\n @ContentChildren(MonkeyTabComponent) tabs!: QueryList<MonkeyTabComponent>;\n\n @ViewChild('tabsHeader') tabsHeader!: ElementRef<HTMLDivElement>;\n\n @ViewChild('tabsContent') tabsContent!: ElementRef<HTMLDivElement>;\n\n enabledLeftArrow = false;\n\n enabledRightArrow = false;\n\n hasScroll = false;\n\n scrollPosition = 0;\n\n private destroyRef = inject(DestroyRef);\n\n private resizeObserver?: ResizeObserver;\n\n private updateScrollPosition() {\n this.tabsContent.nativeElement.style.transform = `translateX(-${this.scrollPosition}px)`;\n this.updateScrollArrows();\n }\n\n private updateScrollArrows() {\n if (!this.tabsHeader || !this.tabsContent) return;\n\n const headerWidth = this.tabsHeader.nativeElement.offsetWidth;\n const contentWidth = this.tabsContent.nativeElement.scrollWidth;\n const maxScroll = contentWidth - headerWidth;\n\n this.hasScroll = maxScroll > 0;\n this.enabledLeftArrow = this.scrollPosition > 0;\n this.enabledRightArrow = this.scrollPosition < maxScroll && maxScroll > 0;\n }\n\n private selectTab(value: string) {\n this.selected = value;\n this.onChange.emit(value);\n this.updateTabSelection();\n }\n\n private updateTabSelection() {\n if (!this.tabs) return;\n\n this.tabs.forEach((tab) => {\n tab.isSelected = tab.value === this.selected;\n });\n }\n\n ngOnChanges() {\n this.updateTabSelection();\n }\n\n ngAfterViewInit() {\n if (typeof ResizeObserver !== 'undefined') {\n this.resizeObserver = new ResizeObserver(() => {\n this.updateScrollArrows();\n });\n this.resizeObserver.observe(this.tabsHeader.nativeElement);\n }\n\n setTimeout(() => {\n this.updateScrollArrows();\n }, 0);\n }\n\n ngAfterContentInit() {\n this.updateTabsEvents();\n }\n\n updateTabsEvents() {\n this.tabs.forEach((tab) => {\n tab.onClick.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((value: string) => {\n this.selectTab(value);\n });\n });\n\n this.updateTabSelection();\n }\n\n scrollLeft() {\n const headerWidth = this.tabsHeader.nativeElement.offsetWidth;\n const scrollAmount = headerWidth * 0.8;\n this.scrollPosition = Math.max(0, this.scrollPosition - scrollAmount);\n this.updateScrollPosition();\n }\n\n scrollRight() {\n const headerWidth = this.tabsHeader.nativeElement.offsetWidth;\n const contentWidth = this.tabsContent.nativeElement.scrollWidth;\n const maxScroll = contentWidth - headerWidth;\n const scrollAmount = headerWidth * 0.8;\n this.scrollPosition = Math.min(maxScroll, this.scrollPosition + scrollAmount);\n this.updateScrollPosition();\n }\n\n ngOnDestroy() {\n this.resizeObserver?.disconnect();\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 { MonkeyTabsComponent } from './tabs.component';\nimport { MonkeyTabComponent } from './tab.component';\nimport { MonkeyTabLinkDirective } from './tab-link.directive';\n\n@NgModule({\n declarations: [MonkeyTabsComponent, MonkeyTabComponent, MonkeyTabLinkDirective],\n exports: [MonkeyTabsComponent, MonkeyTabComponent, MonkeyTabLinkDirective]\n})\nexport class MonkeyTabsModule {}\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 ElementRef,\n EventEmitter,\n HostBinding,\n inject,\n Input,\n Output,\n ViewEncapsulation\n} from '@angular/core';\nimport { IdGenerator } from '../../../utils';\nimport { UtilIconComponent } from '../../../utils/icon';\nimport { type MonkeyToastType } from '../../interfaces';\nimport { MonkeyButtonComponent } from '../button';\nimport { MonkeyIconComponent } from '../icon';\n\n@Component({\n selector: 'monkey-toast',\n imports: [MonkeyButtonComponent, MonkeyIconComponent, UtilIconComponent],\n templateUrl: './toast.component.html',\n styleUrl: './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: MonkeyToastType = '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=\"monkey-toast-content\">\n @if (icon) {\n <monkey-icon [icon]=\"icon\" size=\"lg\"></monkey-icon>\n }\n <div>\n <div class=\"monkey-toast-message\">\n {{ message }}\n </div>\n @if (actionLabel) {\n <div class=\"monkey-toast-action\">\n <monkey-button\n class=\"monkey-toast-btn-action\"\n type=\"tertiary\"\n size=\"sm\"\n (click)=\"onActionClick.emit(id)\"\n >\n {{ actionLabel }}\n @if (actionIcon) {\n <monkey-icon [icon]=\"actionIcon\" size=\"xs\" first></monkey-icon>\n }\n </monkey-button>\n </div>\n }\n </div>\n</div>\n@if (isClosable) {\n <div class=\"monkey-toast-divider\"></div>\n <div class=\"monkey-toast-close\" (click)=\"close()\">\n <util-icon name=\"clear\" />\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 ************************* */\nexport * from './toast.component';\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 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 imports: [CommonModule],\n templateUrl: './toggle.component.html',\n styleUrl: './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 ************************* */\nexport * from './toggle.component';\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: './toggle-line-button.component.html',\n styleUrl: './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 ************************* */\nexport * from './toggle-line-button.component';\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 './toggle-line-button';\n\n@Component({\n selector: 'monkey-toggle-line',\n imports: [CommonModule],\n templateUrl: './toggle-line.component.html',\n styleUrl: './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","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nexport * from './toggle-line-button';\nexport * from './toggle-line.component';\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nimport { 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 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}\n@if (text) {\n {{ text }}\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 './tooltip.component';\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 ApplicationRef,\n booleanAttribute,\n ComponentRef,\n Directive,\n ElementRef,\n HostListener,\n Inject,\n Input,\n TemplateRef,\n ViewContainerRef,\n DOCUMENT\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 @HostListener('window:scroll')\n @HostListener('window:resize')\n onScroll() {\n this.hide();\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 './tooltip';\nexport * from './tooltip.directive';\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 ElementRef,\n HostBinding,\n HostListener,\n inject,\n Input,\n ViewEncapsulation\n} from '@angular/core';\nimport { IdGenerator, UtilIconComponent } from '../../../utils';\nimport { MonkeySize } from '../../interfaces';\nimport { MonkeyAvatarComponent } from '../avatar';\nimport { MonkeyDirectivesModule } from '../../directives';\n\n@Component({\n encapsulation: ViewEncapsulation.None,\n imports: [MonkeyAvatarComponent, UtilIconComponent, MonkeyDirectivesModule],\n selector: 'monkey-user-profile-button',\n styleUrl: './user-profile-button.component.scss',\n template: `\n <monkey-avatar [size]=\"size\" [src]=\"iconName ? { iconName } : { name }\" />\n <div class=\"lh-24 text-truncate flex-grow-1 fs-xxs text-gray-900\">\n {{ name }}\n </div>\n <util-icon class=\"arrow\" name=\"arrowDown\" />\n\n <ng-template\n [monkeyPopover]=\"open\"\n [monkeyPopoverTarget]=\"elementRef.nativeElement\"\n [monkeyPopoverClosed]=\"handleClose\"\n monkeyPopoverDir=\"rtl\"\n [monkeyPopoverHideHeader]=\"true\"\n >\n <div class=\"context-menu\" (click)=\"open = false\">\n <ng-content />\n </div>\n </ng-template>\n `,\n host: {\n 'data-testid': 'monkey-user-profile-button',\n '[attr.id]': 'id',\n '[id]': 'id',\n '[class.open]': 'open'\n }\n})\nexport class MonkeyUserProfileButtonComponent {\n protected _uid = inject(IdGenerator).getId('monkey-user-profile-button-');\n\n public elementRef = inject(ElementRef);\n\n @HostBinding('class')\n @Input()\n size: MonkeySize = 'xs';\n\n @Input({ required: true }) name!: string;\n\n @Input() iconName: string = '';\n\n protected _id!: string;\n\n open = false;\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: MouseEvent): void {\n event.stopPropagation();\n event.preventDefault();\n\n this.open = true;\n }\n\n handleClose = () => {\n this.open = false;\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 './user-profile-button.component';\n","/** ************************\n * Copyright Monkey Exchange. All Rights Reserved\n * This style guide was developed by Monkey Exchange Team\n * MIT Licence\n ************************* */\nexport * from './accordion';\nexport * from './action-bar';\nexport * from './alert';\nexport * from './autocomplete';\nexport * from './autocomplete-address';\nexport * from './avatar';\nexport * from './badge';\nexport * from './breadcrumb';\nexport * from './button';\nexport * from './checkbox';\nexport * from './date-range';\nexport * from './divider';\nexport * from './download-button';\nexport * from './filter-bar';\nexport * from './form-field';\nexport * from './icon';\nexport * from './icon-button';\nexport * from './input';\nexport * from './input-code';\nexport * from './input-date-range';\nexport * from './input-phone';\nexport * from './input-upload';\nexport * from './modal';\nexport * from './option';\nexport * from './radio-button';\nexport * from './security-level';\nexport * from './select';\nexport * from './status';\nexport * from './stepper';\nexport * from './table';\nexport * from './tabs';\nexport * from './toast';\nexport * from './toggle';\nexport * from './toggle-line';\nexport * from './tooltip';\nexport * from './user-profile-button';\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';\nexport * from './lib/tokens';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.UtilIconComponent","i1.MonkeyFormFieldComponent","i2","i4.MonkeyPopoverDirective","Utils.buildMonthByDays","Utils.getEnumKeys","Utils.QuickActionsEnum","Utils.parseStringDate","Utils.getDefaultdates","Utils.buildCalendars","i3.MonkeyInputDirective","i4.MonkeyFormFieldComponent","i5.MonkeyErrorDirective","i6.MonkeyLabelDirective","i2.MonkeyPopoverDirective","i3.MonkeyPopoverDirective","i1","i2.MonkeyFormFieldComponent","i4","i2.MonkeyModalRef","i3.MonkeyIconButtonComponent","i4.MonkeyIconComponent","i1.MonkeyButtonComponent","i2.MonkeyModalComponent","i3.MonkeyModalTitleDirective","i4.MonkeyModalSubtitleDirective","i5.MonkeyModalContentDirective","i6.MonkeyModalActionsDirective","i2.MonkeyIconComponent","i3.MonkeyModalComponent","i4.MonkeyModalContentDirective","i5.MonkeyModalActionsDirective","i1.UtilIconComponent","i1.MonkeyPopoverDirective"],"mappings":"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"}
|