{"version":3,"file":"asoftwareworld-form-builder-pro-common.mjs","sources":["../../src/components/common/constant/constants.ts","../../src/components/common/constant/icons.ts","../../src/components/common/service/notification.service.ts","../../src/components/common/material.module.ts","../../src/components/common/service/api.service.ts","../../src/components/common/directive/text-editable.directive.ts","../../src/components/common/pipe/safe-html.pipe.ts","../../src/components/common/api-communicator/api-params/api-params.ts","../../src/components/common/api-communicator/api-params/api-params.html","../../src/components/common/api-communicator/my-workspace/my-workspace.ts","../../src/components/common/api-communicator/my-workspace/my-workspace.html","../../src/components/common/api-communicator/api-communicator.ts","../../src/components/common/api-communicator/api-communicator.html","../../src/components/common/directive/numbers-only.directive.ts","../../src/components/common/directive/select-search-clear.directive.ts","../../src/components/common/directive/select-search-no-entries-found.directive.ts","../../src/components/common/directive/directive.module.ts","../../src/components/common/pipe/pipe.module.ts","../../src/components/common/api-communicator/api-communicator.module.ts","../../src/components/common/mask/config.ts","../../src/components/common/mask/mask-applier.service.ts","../../src/components/common/mask/mask.service.ts","../../src/components/common/mask/mask.directive.ts","../../src/components/common/mask/mask.pipe.ts","../../src/components/common/mask/mask.module.ts","../../src/components/common/datetime/datetime-adapter.ts","../../src/components/common/datetime/datetime-formats.ts","../../src/components/common/datetime/native-datetime-adapter.ts","../../src/components/common/datetime/native-datetime-formats.ts","../../src/components/common/datetime/datetime.module.ts","../../src/components/common/adapter/moment-datetime-adapter.ts","../../src/components/common/adapter/moment-datetime-formats.ts","../../src/components/common/adapter/moment-datetime.module.ts","../../src/components/common/public_api.ts","../../src/components/common/asoftwareworld-form-builder-pro-common.ts"],"sourcesContent":["/**\n * @license\n * Copyright ASW (A Software World) 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\n */\n\nimport { AswEditorConfig } from '@asoftwareworld/form-builder-pro/api';\n\nfunction getConstatnts(): any {\n    const titleMessages = {\n        homeTitle: 'ASW | Form Builder',\n        aboutUsTitle: 'ASW | About Us',\n        contactUsTitle: 'ASW | Contact Us'\n    };\n\n    const defaultImage =\n        'data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/4gIoSUNDX1BST0ZJTEUAAQEAAAIYAAAAAAQwAABtbnRyUkdCIFhZWiAAAAAAAAAAAAAAAABhY3NwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA9tYAAQAAAADTLQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlkZXNjAAAA8AAAAHRyWFlaAAABZAAAABRnWFlaAAABeAAAABRiWFlaAAABjAAAABRyVFJDAAABoAAAAChnVFJDAAABoAAAAChiVFJDAAABoAAAACh3dHB0AAAByAAAABRjcHJ0AAAB3AAAADxtbHVjAAAAAAAAAAEAAAAMZW5VUwAAAFgAAAAcAHMAUgBHAEIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFhZWiAAAAAAAABvogAAOPUAAAOQWFlaIAAAAAAAAGKZAAC3hQAAGNpYWVogAAAAAAAAJKAAAA+EAAC2z3BhcmEAAAAAAAQAAAACZmYAAPKnAAANWQAAE9AAAApbAAAAAAAAAABYWVogAAAAAAAA9tYAAQAAAADTLW1sdWMAAAAAAAAAAQAAAAxlblVTAAAAIAAAABwARwBvAG8AZwBsAGUAIABJAG4AYwAuACAAMgAwADEANv/bAEMABgQFBgUEBgYFBgcHBggKEAoKCQkKFA4PDBAXFBgYFxQWFhodJR8aGyMcFhYgLCAjJicpKikZHy0wLSgwJSgpKP/bAEMBBwcHCggKEwoKEygaFhooKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKP/AABEIATgDUgMBIgACEQEDEQH/xAAVAAEBAAAAAAAAAAAAAAAAAAAACP/EABQQAQAAAAAAAAAAAAAAAAAAAAD/xAAUAQEAAAAAAAAAAAAAAAAAAAAA/8QAFBEBAAAAAAAAAAAAAAAAAAAAAP/aAAwDAQACEQMRAD8AqkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH//2Q==';\n\n    const accountValidationMessages = {\n        name: [\n            { type: 'required', message: 'Name is required.' },\n            { type: 'minlength', message: 'Name must be at least 5 characters long.' },\n            { type: 'maxlength', message: 'Name cannot be more than 25 characters long.' },\n            { type: 'pattern', message: 'Your username must contain only numbers and letters.' }\n        ],\n        emailAddress: [\n            { type: 'required', message: 'Email is required.' },\n            { type: 'email', message: 'Please enter a valid email address.' },\n            { type: 'pattern', message: 'Email format should be xyz@example.com.' }\n        ],\n        phoneNumber: [\n            { type: 'required', message: 'Phone number is required.' },\n            { type: 'minlength', message: 'Phone number must be at least 10 characters long.' },\n            { type: 'maxlength', message: 'Phone number cannot be more than 10 characters long.' }\n        ],\n        message: [\n            { type: 'required', message: 'Message is required.' },\n            { type: 'minlength', message: 'Message must be at least 6 characters long.' },\n            { type: 'maxlength', message: 'Message cannot be more than 255 characters long.' }\n        ],\n        label: [\n            { type: 'required', message: 'Label is required.' },\n            { type: 'minlength', message: 'Label must be at least 2 characters long.' }\n        ],\n        minlength: [\n            { type: 'required', message: 'Minlength is required.' },\n            { type: 'pattern', message: 'Minlength must contain only numbers.' }\n        ],\n        key: [\n            { type: 'required', message: 'Option key is required.' },\n            { type: 'minlength', message: 'Sorry, your option key must be between 1 and 50 characters long.' },\n            { type: 'pattern', message: 'Sorry, only letters (a-z), numbers (0-9), and periods (- and _) are allowed.' },\n            { type: 'unique', message: 'Option key already exists. Try another.' }\n        ],\n        value: [\n            { type: 'required', message: 'Option value is required.' },\n            { type: 'minlength', message: 'Sorry, your option value must be between 1 and 999 characters long.' }\n        ],\n        searchAddress: [{ type: 'unique', message: 'Searched address not found.' }],\n        id: [{ type: 'required', message: 'Unique id is required.' }],\n        operationValue: [{ type: 'required', message: 'Operation is required.' }],\n        control: [{ type: 'required', message: 'Operator is required.' }],\n        apiUrl: [{ type: 'required', message: 'Api URL is required.' }],\n        width: [\n            { type: 'required', messages: 'Width is required.' },\n            { type: 'max', message: 'Please enter a value between 0 and 600' }\n        ],\n        height: [\n            { type: 'required', messages: 'Height is required.' },\n            { type: 'max', message: 'Please enter a value between 0 and 600' }\n        ]\n    };\n\n    const columns = [\n        {\n            value: 'col-md-1',\n            label: 'Column 1'\n        },\n        {\n            value: 'col-md-2',\n            label: 'Column 2'\n        },\n        {\n            value: 'col-md-3',\n            label: 'Column 3'\n        },\n        {\n            value: 'col-md-4',\n            label: 'Column 4'\n        },\n        {\n            value: 'col-md-5',\n            label: 'Column 5'\n        },\n        {\n            value: 'col-md-6',\n            label: 'Column 6'\n        },\n        {\n            value: 'col-md-7',\n            label: 'Column 7'\n        },\n        {\n            value: 'col-md-8',\n            label: 'Column 8'\n        },\n        {\n            value: 'col-md-9',\n            label: 'Column 9'\n        },\n        {\n            value: 'col-md-10',\n            label: 'Column 10'\n        },\n        {\n            value: 'col-md-11',\n            label: 'Column 11'\n        },\n        {\n            value: 'col-md-12',\n            label: 'Column 12'\n        }\n    ];\n\n    const aswEditorConfig: AswEditorConfig = {\n        editable: true,\n        spellcheck: true,\n        minHeight: '10rem',\n        maxHeight: '30rem',\n        placeholder: 'Enter text here...',\n        translate: 'no',\n        sanitize: false,\n        toolbarPosition: 'top',\n        outline: true,\n        defaultFontSize: '3',\n        // showToolbar: false,\n        defaultParagraphSeparator: 'p',\n        customClasses: [\n            {\n                name: 'quote',\n                class: 'quote'\n            },\n            {\n                name: 'redText',\n                class: 'redText'\n            },\n            {\n                name: 'titleText',\n                class: 'titleText',\n                tag: 'h1'\n            }\n        ]\n    };\n\n    const operations = [\n        {\n            value: '+',\n            label: 'Addition'\n        },\n        {\n            value: '-',\n            label: 'Subtraction'\n        },\n        {\n            value: '*',\n            label: 'Multiplication'\n        },\n        {\n            value: '/',\n            label: 'Division'\n        },\n        {\n            value: 'x̄',\n            label: 'Average'\n        }\n    ];\n\n    const dataTypes: string[] = ['String', 'Number', 'Boolean'];\n\n    const colors: { [name: string]: string } = {\n        white: '#ffffff',\n        black: '#322e2f',\n        dark_black: '#000000',\n        yellow: '#e2d810',\n        pink: '#e52165',\n        raisin: '#0d1137',\n        red: '#d72631',\n        sea_foam: '#a2d5c6',\n        jade: '#077b8a',\n        violet: '#5c3c92',\n        magenta: '#d9138a',\n        cyan: '#12a4d9',\n        mustard: '#f3ca20',\n        goldenrod: '#e8d21d',\n        turquoise: '#039fbe',\n        brick: '#b20238',\n        gold: '#ef9d10f',\n        charcoal: '#3b4d61',\n        grey: '#6b7b8c',\n        navy: '#1e3d59',\n        almond: '#f5f0e1',\n        red_orange: '#ff6e40',\n        mango: '#ffc13b',\n        tan: '#ecc19c',\n        deep_turquoise: '#1e847f',\n        ochre: '#c4a35a',\n        burnt_sienna: '#c66b3d',\n        light_grey: '#e5e5dc',\n        mauve: '#d9a5b3',\n        sapphire: '#1868ae',\n        powder_blue: '#c6d7eb',\n        blue: '#408ec6',\n        maroon: '#7a2048',\n        indigo: '#1e2761',\n        deep_pine_green: '#1d3c45',\n        light_peach: '#fff1e1'\n    };\n\n    const apiHeaderKeys: string[] = [\n        'Accept',\n        'Accept-Charset',\n        'Accept-Encoding',\n        'Accept-Language',\n        'Access-Control-Request-Headers',\n        'Access-Control-Request-Method',\n        'Authorization',\n        'Cache-Control',\n        'Content-MD5',\n        'Content-Length',\n        'Content-Transfer-Encoding',\n        'Content-Type',\n        'Cookie',\n        'Cookie 2',\n        'Date',\n        'Expect',\n        'From',\n        'Host',\n        'If-Match',\n        'If-Modified-Since',\n        'If-None-Match',\n        'If-Range',\n        'If-Unmodified-Since',\n        'Keep-Alive',\n        'Max-Forwards',\n        'Origin',\n        'Pragma',\n        'Proxy-Authorization',\n        'Range',\n        'Referer',\n        'TE',\n        'Trailer',\n        'Transfer-Encoding',\n        'Upgrade',\n        'User-Agent',\n        'Via',\n        'Warning',\n        'X-Requested-With',\n        'X-Do-Not-Track',\n        'DNT',\n        'x-api-key',\n        'Connection'\n    ];\n\n    const apiRequestMethods: string[] = ['GET', 'POST', 'PUT', 'PATCH', 'DELETE'];\n\n    const apiBodyType: string[] = ['none', 'form-data', 'json-data'];\n\n    const languages: any[] = [\n        {\n            key: 'en',\n            value: 'English'\n        },\n        {\n            key: 'fr',\n            value: 'French'\n        },\n        {\n            key: 'es',\n            value: 'Spanish'\n        },\n        {\n            key: 'ar',\n            value: 'Arabic'\n        }\n    ];\n\n    const currencySymbol = [\n        {\n            key: '₹',\n            value: '₹ - Rupee'\n        },\n        {\n            key: '$',\n            value: '$ - Dollar'\n        },\n        {\n            key: '€',\n            value: '€ - Euro'\n        },\n        {\n            key: '£',\n            value: '£ - Pound Sterling'\n        },\n        {\n            key: '¥',\n            value: '¥ - Yen'\n        },\n        {\n            key: '₣',\n            value: '₣ - Franc'\n        },\n        {\n            key: 'د.ك',\n            value: 'د.ك - Dinar'\n        },\n        {\n            key: 'د.إ',\n            value: 'د.إ - Dirham'\n        },\n        {\n            key: '﷼‎',\n            value: '﷼‎ - Riyal'\n        },\n        {\n            key: '₻',\n            value: '₻ - Mark'\n        },\n        {\n            key: '₽',\n            value: '₽ - Ruouble'\n        },\n        {\n            key: '₾',\n            value: '₾ - Lari'\n        },\n        {\n            key: '₺',\n            value: '₺ - Lira'\n        },\n        {\n            key: '₼',\n            value: '₼ - Manat'\n        },\n        {\n            key: '₸',\n            value: '₸ - Tenge'\n        },\n        {\n            key: '₴',\n            value: '₴ - Hryvnia'\n        },\n        {\n            key: '₷',\n            value: '₷ - Spesmilo'\n        },\n        {\n            key: '฿',\n            value: '฿ - Baht'\n        },\n        {\n            key: '원',\n            value: '원 - Won'\n        },\n        {\n            key: '₫',\n            value: '₫ - Dong'\n        },\n        {\n            key: '₮',\n            value: '₮ - Tugrik'\n        },\n        {\n            key: '₯',\n            value: '₯ - Drachma'\n        },\n        {\n            key: '₱',\n            value: '₱ - Peso'\n        },\n        {\n            key: '₳',\n            value: '₳ - Austral'\n        },\n        {\n            key: '₵',\n            value: '₵ - Cedi'\n        },\n        {\n            key: '₲',\n            value: '₲ - Guarani'\n        },\n        {\n            key: '₪',\n            value: '₪ - Sheqel'\n        },\n        {\n            key: '₰',\n            value: '₰ - Penny'\n        }\n    ];\n\n    const qrCodeImageUpload = {\n        id: '',\n        guid: '',\n        icon: 'fileUpload',\n        displayName: 'File Upload',\n        controlType: 'fileupload',\n        label: 'File Upload',\n        value: [],\n        minSize: '',\n        maxSize: '',\n        fileTypes: 'png, PNG, jpg, JPG, jpeg, JPEG, gif, svg',\n        allowMultipleFile: '1',\n        isRequired: false\n    };\n\n    const cssClass = {\n        cssClassCardHidden: 'quote-card-hidden',\n        cssClassCardVisible: 'quote-card-visible'\n    };\n\n    const matchPattern = {\n        emailPattern: '^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+.[a-zA-Z0-9-.]+$',\n        passwordPattern: '((?=.*\\\\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%]).{8,20})',\n        phonePattern: '[6-9]\\\\d{9}',\n        numberPattern: '^[0-9]*$'\n    };\n\n    const notificationMessage = {\n        notificationDisplayDuration: 10000,\n        errorNotification: 'There is some problem. Please contact to administrator',\n        emailSuccessNotification: 'Thank you! Your message has been sent successfully.'\n    };\n\n    const messages = {\n        waringMessage: 'Are you sure you want to remove this field?',\n        optionKeyValidationMessage: 'That option key is already exist. Try another.'\n    };\n\n    const libraryConstants = {\n        applicationTitle: 'ASW Form Build',\n        titleMessages,\n        accountValidationMessages,\n        cssClass,\n        dataTypes,\n        matchPattern,\n        notificationMessage,\n        messages,\n        columns,\n        operations,\n        apiHeaderKeys,\n        apiRequestMethods,\n        apiBodyType,\n        aswEditorConfig,\n        languages,\n        colors,\n        defaultImage,\n        currencySymbol,\n        qrCodeImageUpload\n    };\n\n    return libraryConstants;\n}\n\nexport const Constants = getConstatnts();\n","/**\n * @license\n * Copyright ASW (A Software World) 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\n */\n\nfunction getIcons(): any {\n    const undo = `<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" width=\"24\" fill=\"#5f6368\"><path d=\"M14.1 19H7v-2h7.1q1.575 0 2.737-1Q18 15 18 13.5T16.837 11q-1.162-1-2.737-1H7.8l2.6 2.6L9 14 4 9l5-5 1.4 1.4L7.8 8h6.3q2.425 0 4.163 1.575Q20 11.15 20 13.5q0 2.35-1.737 3.925Q16.525 19 14.1 19Z\"/></svg>`;\n    const redo = `<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" width=\"24\" fill=\"#5f6368\"><path d=\"M9.9 19q-2.425 0-4.162-1.575Q4 15.85 4 13.5q0-2.35 1.738-3.925Q7.475 8 9.9 8h6.3l-2.6-2.6L15 4l5 5-5 5-1.4-1.4 2.6-2.6H9.9q-1.575 0-2.737 1Q6 12 6 13.5T7.163 16q1.162 1 2.737 1H17v2Z\"/></svg>`;\n    const bold = `<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" width=\"24\" fill=\"#5f6368\"><path d=\"M7 18V4h5.5q1.7 0 2.975 1.025Q16.75 6.05 16.75 7.65q0 .95-.5 1.762-.5.813-1.35 1.238v.2q1.05.35 1.7 1.237.65.888.65 2.013 0 1.725-1.387 2.813Q14.475 18 12.65 18Zm2.65-8.3h2.65q.75 0 1.325-.475t.575-1.2q0-.725-.575-1.2T12.3 6.35H9.65Zm0 5.9h2.85q.85 0 1.475-.513.625-.512.625-1.312t-.625-1.313q-.625-.512-1.475-.512H9.65Z\"/></svg>`;\n    const italic = `<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" width=\"24\" fill=\"#5f6368\"><path d=\"M5 20v-3h3.375l4-10H9V4h10v3h-3.375l-4 10H15v3Z\"/></svg>`;\n    const underline = `<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" width=\"24\" fill=\"#5f6368\"><path d=\"M5 21v-2h14v2Zm7-4q-2.525 0-4.263-1.738Q6 13.525 6 11V3h2.5v8q0 1.475 1.012 2.488Q10.525 14.5 12 14.5t2.488-1.012Q15.5 12.475 15.5 11V3H18v8q0 2.525-1.738 4.262Q14.525 17 12 17Z\"/></svg>`;\n    const strikeThrough = `<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" width=\"24\" fill=\"#5f6368\"><path d=\"M12.15 20q-1.9 0-3.375-1.125T6.65 15.8l2.2-.95q.35 1.2 1.212 1.975.863.775 2.138.775 1.05 0 1.9-.5.85-.5.85-1.6 0-.45-.175-.825Q14.6 14.3 14.3 14h2.8q.125.35.188.712.062.363.062.788 0 2.15-1.538 3.325Q14.275 20 12.15 20ZM2 12v-2h20v2Zm10.05-8.15q1.65 0 2.888.812 1.237.813 1.912 2.488l-2.2.975q-.225-.725-.838-1.3Q13.2 6.25 12.1 6.25q-1.025 0-1.7.463-.675.462-.75 1.287h-2.4q.05-1.725 1.363-2.938Q9.925 3.85 12.05 3.85Z\"/></svg>`;\n    const justifyLeft = `<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" width=\"24\" fill=\"#5f6368\"><path d=\"M3 21v-2h18v2Zm0-4v-2h12v2Zm0-4v-2h18v2Zm0-4V7h12v2Zm0-4V3h18v2Z\"/></svg>`;\n    const justifyCenter = `<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" width=\"24\" fill=\"#5f6368\"><path d=\"M3 21v-2h18v2Zm4-4v-2h10v2Zm-4-4v-2h18v2Zm4-4V7h10v2ZM3 5V3h18v2Z\"/></svg>`;\n    const justifyRight = `<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" width=\"24\" fill=\"#5f6368\"><path d=\"M3 21v-2h18v2Zm6-4v-2h12v2Zm-6-4v-2h18v2Zm6-4V7h12v2ZM3 5V3h18v2Z\"/></svg>`;\n    const justifyFull = `<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" width=\"24\" fill=\"#5f6368\"><path d=\"M3 21v-2h18v2Zm0-4v-2h18v2Zm0-4v-2h18v2Zm0-4V7h18v2Zm0-4V3h18v2Z\"/></svg>`;\n    const indent = `<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" width=\"24\" fill=\"#5f6368\"><path d=\"M3 21v-2h18v2Zm0-5V8l4 4ZM3 5V3h18v2Zm8 12v-2h10v2Zm0-4v-2h10v2Zm0-4V7h10v2Z\"/></svg>`;\n    const outdent = `<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" width=\"24\" fill=\"#5f6368\"><path d=\"M3 21v-2h18v2Zm8-4v-2h10v2Zm-4-1-4-4 4-4Zm4-3v-2h10v2Zm0-4V7h10v2ZM3 5V3h18v2Z\"/></svg>`;\n    const formatListBulleted = `<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" width=\"24\" fill=\"#5f6368\"><path d=\"M4.5 19.5q-.625 0-1.062-.438Q3 18.625 3 18t.438-1.062Q3.875 16.5 4.5 16.5t1.062.438Q6 17.375 6 18t-.438 1.062q-.437.438-1.062.438ZM8 19v-2h13v2Zm-3.5-5.5q-.625 0-1.062-.438Q3 12.625 3 12t.438-1.062Q3.875 10.5 4.5 10.5t1.062.438Q6 11.375 6 12t-.438 1.062q-.437.438-1.062.438ZM8 13v-2h13v2ZM4.5 7.5q-.625 0-1.062-.438Q3 6.625 3 6t.438-1.062Q3.875 4.5 4.5 4.5t1.062.438Q6 5.375 6 6t-.438 1.062Q5.125 7.5 4.5 7.5ZM8 7V5h13v2Z\"/></svg>`;\n    const formatListNumbered = `<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" width=\"24\" fill=\"#5f6368\"><path d=\"M3 20v-1h2v-.5H4v-1h1V17H3v-1h3v4Zm5-1v-2h13v2Zm-5-5v-.9L4.8 11H3v-1h3v.9L4.2 13H6v1Zm5-1v-2h13v2ZM4 8V5H3V4h2v4Zm4-1V5h13v2Z\"/></svg>`;\n    const formatColorText = `<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" width=\"24\" fill=\"#5f6368\"><path d=\"M2 21v-4h20v4Zm3.5-7 5.25-14h2.5l5.25 14h-2.4l-1.25-3.6H9.2L7.9 14Zm4.4-5.6h4.2l-2.05-5.8h-.1Z\"/></svg>`;\n    const formatColorFill = `<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" width=\"24\" fill=\"#5f6368\"><path d=\"M6.175 1.4 7.6 0l8.575 8.575q.575.575.575 1.425 0 .85-.575 1.425l-4.75 4.75q-.575.575-1.425.575-.85 0-1.425-.575l-4.75-4.75Q3.25 10.85 3.25 10q0-.85.575-1.425L8.575 3.8ZM10 5.225 5.225 10h9.55ZM19 17q-.825 0-1.413-.587Q17 15.825 17 15q0-.525.312-1.125.313-.6.688-1.125.225-.3.475-.625.25-.325.525-.625.275.3.525.625t.475.625q.375.525.688 1.125.312.6.312 1.125 0 .825-.587 1.413Q19.825 17 19 17ZM2 24v-4h20v4Z\"/></svg>`;\n    const link = `<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" width=\"24\" fill=\"#5f6368\"><path d=\"M11 17H7q-2.075 0-3.537-1.463Q2 14.075 2 12t1.463-3.538Q4.925 7 7 7h4v2H7q-1.25 0-2.125.875T4 12q0 1.25.875 2.125T7 15h4Zm-3-4v-2h8v2Zm5 4v-2h4q1.25 0 2.125-.875T20 12q0-1.25-.875-2.125T17 9h-4V7h4q2.075 0 3.538 1.462Q22 9.925 22 12q0 2.075-1.462 3.537Q19.075 17 17 17Z\"/></svg>`;\n    const unlink = `<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" width=\"24\" fill=\"#5f6368\"><path d=\"m19.25 16.45-1.5-1.55q1-.275 1.625-1.063Q20 13.05 20 12q0-1.25-.875-2.125T17 9h-4V7h4q2.075 0 3.538 1.462Q22 9.925 22 12q0 1.425-.737 2.625-.738 1.2-2.013 1.825ZM15.85 13l-2-2H16v2Zm3.95 9.6L1.4 4.2l1.4-1.4 18.4 18.4ZM11 17H7q-2.075 0-3.537-1.463Q2 14.075 2 12q0-1.725 1.05-3.075t2.7-1.775L7.6 9H7q-1.25 0-2.125.875T4 12q0 1.25.875 2.125T7 15h4Zm-3-4v-2h1.625l1.975 2Z\"/></svg>`;\n    const image = `<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" width=\"24\" fill=\"#5f6368\"><path d=\"M5 22q-1.25 0-2.125-.875T2 19V5q0-1.25.875-2.125T5 2h14q1.25 0 2.125.875T22 5v14q0 1.25-.875 2.125T19 22Zm0-2h14q.425 0 .712-.288Q20 19.425 20 19V5q0-.425-.288-.713Q19.425 4 19 4H5q-.425 0-.713.287Q4 4.575 4 5v14q0 .425.287.712Q4.575 20 5 20Zm1-2 4-4 1.8 1.775L14 13l4 5Zm2-8q-.825 0-1.412-.588Q6 8.825 6 8t.588-1.412Q7.175 6 8 6t1.413.588Q10 7.175 10 8t-.587 1.412Q8.825 10 8 10Z\"/></svg>`;\n    const videoCam = `<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" width=\"24\" fill=\"#5f6368\"><path d=\"M4 20q-.825 0-1.412-.587Q2 18.825 2 18V6q0-.825.588-1.412Q3.175 4 4 4h12q.825 0 1.413.588Q18 5.175 18 6v4.5l4-4v11l-4-4V18q0 .825-.587 1.413Q16.825 20 16 20Zm0-2h12V6H4v12Zm0 0V6v12Z\"/></svg>`;\n    const remove = `<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" width=\"24\" fill=\"#5f6368\"><path d=\"M5 13v-2h14v2Z\"/></svg>`;\n    const close = `<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" width=\"24\" fill=\"#5f6368\"><path d=\"M6.4 19 5 17.6l5.6-5.6L5 6.4 6.4 5l5.6 5.6L17.6 5 19 6.4 13.4 12l5.6 5.6-1.4 1.4-5.6-5.6Z\"/></svg>`;\n    const code = `<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" width=\"24\" fill=\"#5f6368\"><path d=\"m8 18-6-6 6-6 1.425 1.425-4.6 4.6L9.4 16.6Zm8 0-1.425-1.425 4.6-4.6L14.6 7.4 16 6l6 6Z\"/></svg>`;\n    const title = `<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" width=\"24\" fill=\"#5f6368\"><path d=\"M10.5 20V7H5V4h14v3h-5.5v13Z\"/></svg>`;\n    const textFields = `<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" width=\"24\" fill=\"#5f6368\"><path d=\"M7 20V7H2V4h13v3h-5v13Zm9 0v-8h-3V9h9v3h-3v8Z\"/></svg>`;\n    const shortText = `<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" width=\"24\" fill=\"#5f6368\"><path d=\"M4 15v-2h10v2Zm0-4V9h16v2Z\"/></svg>`;\n    const numbers = `<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" width=\"24\" fill=\"#5f6368\"><path d=\"m6 20 1-4H3l.5-2h4l1-4h-4L5 8h4l1-4h2l-1 4h4l1-4h2l-1 4h4l-.5 2h-4l-1 4h4l-.5 2h-4l-1 4h-2l1-4H9l-1 4Zm3.5-6h4l1-4h-4Z\"/></svg>`;\n    const calculate = `<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" width=\"24\" fill=\"#5f6368\"><path d=\"M8 18h1.5v-2h2v-1.5h-2v-2H8v2H6V16h2Zm5-.75h5v-1.5h-5Zm0-2.5h5v-1.5h-5Zm1.1-3.8 1.4-1.4 1.4 1.4 1.05-1.05-1.4-1.45 1.4-1.4L16.9 6l-1.4 1.4L14.1 6l-1.05 1.05 1.4 1.4-1.4 1.45ZM6.25 9.2h5V7.7h-5ZM5 21q-.825 0-1.413-.587Q3 19.825 3 19V5q0-.825.587-1.413Q4.175 3 5 3h14q.825 0 1.413.587Q21 4.175 21 5v14q0 .825-.587 1.413Q19.825 21 19 21Zm0-2h14V5H5v14ZM5 5v14V5Z\"/></svg>`;\n    const subject = `<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" width=\"24\" fill=\"#5f6368\"><path d=\"M4 19v-2h10v2Zm0-4v-2h16v2Zm0-4V9h16v2Zm0-4V5h16v2Z\"/></svg>`;\n    const toggleOn = `<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" width=\"24\" fill=\"#5f6368\"><path d=\"M7 18q-2.5 0-4.25-1.75T1 12q0-2.5 1.75-4.25T7 6h10q2.5 0 4.25 1.75T23 12q0 2.5-1.75 4.25T17 18Zm0-2h10q1.65 0 2.825-1.175Q21 13.65 21 12q0-1.65-1.175-2.825Q18.65 8 17 8H7Q5.35 8 4.175 9.175 3 10.35 3 12q0 1.65 1.175 2.825Q5.35 16 7 16Zm10-1q1.25 0 2.125-.875T20 12q0-1.25-.875-2.125T17 9q-1.25 0-2.125.875T14 12q0 1.25.875 2.125T17 15Zm-5-3Z\"/></svg>`;\n    const smartButton = `<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" width=\"24\" fill=\"#5f6368\"><path d=\"M4 17q-.825 0-1.412-.587Q2 15.825 2 15V9q0-.825.588-1.413Q3.175 7 4 7h16q.825 0 1.413.587Q22 8.175 22 9v6q0 .825-.587 1.413Q20.825 17 20 17h-1v-2h1V9H4v6h6v2Zm10.5 2-1.1-2.4-2.4-1.1 2.4-1.1 1.1-2.4 1.1 2.4 2.4 1.1-2.4 1.1Zm2.5-5-.625-1.375L15 12l1.375-.625L17 10l.625 1.375L19 12l-1.375.625Z\"/></svg>`;\n    const corporateFare = `<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" width=\"24\" fill=\"#5f6368\"><path d=\"M2 21V3h10v4h10v14Zm2-2h6v-2H4Zm0-4h6v-2H4Zm0-4h6V9H4Zm0-4h6V5H4Zm8 12h8V9h-8Zm2-6v-2h4v2Zm0 4v-2h4v2Z\"/></svg>`;\n    const factCheck = `<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" width=\"24\" fill=\"#5f6368\"><path d=\"M4 21q-.825 0-1.412-.587Q2 19.825 2 19V5q0-.825.588-1.413Q3.175 3 4 3h16q.825 0 1.413.587Q22 4.175 22 5v14q0 .825-.587 1.413Q20.825 21 20 21Zm0-2h16V5H4v14Zm1-2h5v-2H5Zm9.55-2 4.95-4.95-1.425-1.425-3.525 3.55-1.425-1.425-1.4 1.425ZM5 13h5v-2H5Zm0-4h5V7H5ZM4 19V5v14Z\"/></svg>`;\n    const checklist = `<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" width=\"24\" fill=\"#5f6368\"><path d=\"M5.55 19 2 15.45l1.4-1.4 2.125 2.125 4.25-4.25 1.4 1.425Zm0-8L2 7.45l1.4-1.4 2.125 2.125 4.25-4.25 1.4 1.425ZM13 17v-2h9v2Zm0-8V7h9v2Z\"/></svg>`;\n    const radioButtonChecked = `<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" width=\"24\" fill=\"#5f6368\"><path d=\"M12 17q2.075 0 3.538-1.463Q17 14.075 17 12t-1.462-3.538Q14.075 7 12 7 9.925 7 8.463 8.462 7 9.925 7 12q0 2.075 1.463 3.537Q9.925 17 12 17Zm0 5q-2.075 0-3.9-.788-1.825-.787-3.175-2.137-1.35-1.35-2.137-3.175Q2 14.075 2 12t.788-3.9q.787-1.825 2.137-3.175 1.35-1.35 3.175-2.138Q9.925 2 12 2t3.9.787q1.825.788 3.175 2.138 1.35 1.35 2.137 3.175Q22 9.925 22 12t-.788 3.9q-.787 1.825-2.137 3.175-1.35 1.35-3.175 2.137Q14.075 22 12 22Zm0-2q3.35 0 5.675-2.325Q20 15.35 20 12q0-3.35-2.325-5.675Q15.35 4 12 4 8.65 4 6.325 6.325 4 8.65 4 12q0 3.35 2.325 5.675Q8.65 20 12 20Zm0-8Z\"/></svg>`;\n    const checkbox = `<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" width=\"24\" fill=\"#5f6368\"><path d=\"m10.6 16.2 7.05-7.05-1.4-1.4-5.65 5.65-2.85-2.85-1.4 1.4ZM5 21q-.825 0-1.413-.587Q3 19.825 3 19V5q0-.825.587-1.413Q4.175 3 5 3h14q.825 0 1.413.587Q21 4.175 21 5v14q0 .825-.587 1.413Q19.825 21 19 21Zm0-2h14V5H5v14ZM5 5v14V5Z\"/></svg>`;\n    const event = `<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" width=\"24\" fill=\"#5f6368\"><path d=\"M14.5 18q-1.05 0-1.775-.725Q12 16.55 12 15.5q0-1.05.725-1.775Q13.45 13 14.5 13q1.05 0 1.775.725Q17 14.45 17 15.5q0 1.05-.725 1.775Q15.55 18 14.5 18ZM5 22q-.825 0-1.413-.587Q3 20.825 3 20V6q0-.825.587-1.412Q4.175 4 5 4h1V2h2v2h8V2h2v2h1q.825 0 1.413.588Q21 5.175 21 6v14q0 .825-.587 1.413Q19.825 22 19 22Zm0-2h14V10H5v10ZM5 8h14V6H5Zm0 0V6v2Z\"/></svg>`;\n    const sharedLocation = `<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" width=\"24\" fill=\"#5f6368\"><path d=\"M12.975 21.95v-2q1.05-.15 2.037-.575.988-.425 1.863-1.075l1.45 1.45q-1.175.925-2.525 1.488-1.35.562-2.825.712Zm6.75-3.65-1.4-1.4q.65-.825 1.05-1.813.4-.987.55-2.087h2.05q-.2 1.55-.762 2.887-.563 1.338-1.488 2.413Zm.2-7.3q-.15-1.125-.55-2.113-.4-.987-1.05-1.787l1.4-1.4q.95 1.1 1.538 2.45.587 1.35.712 2.85Zm-8.95 10.95q-3.825-.45-6.387-3.287Q2.025 15.825 2.025 12q0-3.875 2.563-6.7 2.562-2.825 6.387-3.25v2q-3 .425-4.975 2.675Q4.025 8.975 4.025 12q0 3 1.975 5.25t4.975 2.7Zm5.95-16.25q-.9-.675-1.9-1.1-1-.425-2.05-.55v-2q1.475.125 2.825.687 1.35.563 2.525 1.513ZM12 17q-2.025-1.725-3.012-3.188Q8 12.35 8 11.1q0-1.875 1.213-2.987Q10.425 7 12 7t2.788 1.113Q16 9.225 16 11.1q0 1.25-.988 2.712Q14.025 15.275 12 17Zm0-5q.45 0 .763-.312.312-.313.312-.763 0-.425-.312-.75Q12.45 9.85 12 9.85t-.762.325q-.313.325-.313.75 0 .45.313.763Q11.55 12 12 12Z\"/></svg>`;\n    const gesture = `<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" width=\"24\" fill=\"#5f6368\"><path d=\"M13.85 21.05q-1.325 0-2.262-.912-.938-.913-.938-2.238 0-.75.325-1.6.325-.85.988-1.612.662-.763 1.674-1.351 1.013-.587 2.388-.812-.075-1-.475-1.413-.4-.412-1-.412-.75 0-1.625.625t-2.075 2.05Q8.9 15.7 7.988 16.4q-.913.7-1.963.7-1.275 0-2.15-.937Q3 15.225 3 13.9t.587-2.725q.588-1.4 1.988-3.35.45-.65.688-1.1Q6.5 6.275 6.5 6q0-.175-.062-.263-.063-.087-.188-.087-.25 0-.625.312-.375.313-.875.938L3 5.15q.8-.975 1.625-1.488.825-.512 1.625-.512 1.175 0 1.963.812Q9 4.775 9 5.95q0 .725-.375 1.587Q8.25 8.4 7.375 9.6q-.95 1.35-1.412 2.375Q5.5 13 5.5 13.725q0 .425.138.65.137.225.387.225.3 0 .838-.513.537-.512 2.162-2.412Q10.6 9.8 11.875 9q1.275-.8 2.675-.8 1.925 0 2.888 1.275.962 1.275 1.087 2.925H21v2.5h-2.475q-.15 2.2-1.225 4.175-1.075 1.975-3.45 1.975Zm.05-2.5q.975 0 1.463-1.112.487-1.113.637-2.363-1.4.35-2.125 1.212-.725.863-.725 1.513 0 .35.2.55.2.2.55.2Z\"/></svg>`;\n    const draw = `<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" width=\"24\" fill=\"#5f6368\"><path d=\"M14 21q-.425 0-.712-.288Q13 20.425 13 20t.288-.712Q13.575 19 14 19q1.175 0 2.087-.462Q17 18.075 17 17.5q0-.35-.325-.65-.325-.3-.9-.55l1.475-1.475q.8.475 1.275 1.125.475.65.475 1.55 0 1.65-1.575 2.575Q15.85 21 14 21Zm-9.425-7.65q-.725-.425-1.15-.988Q3 11.8 3 11q0-1.05.775-1.763.775-.712 2.775-1.587 1.575-.725 2.012-1.013Q9 6.35 9 6q0-.4-.488-.7Q8.025 5 7 5q-.625 0-1.05.15-.425.15-.775.5-.275.275-.675.325-.4.05-.725-.225Q3.45 5.5 3.4 5.1q-.05-.4.225-.725Q4.1 3.8 4.988 3.4 5.875 3 7 3q1.8 0 2.9.812Q11 4.625 11 6q0 .975-.725 1.75T7.35 9.475q-1.45.625-1.9.925-.45.3-.45.6 0 .225.287.438.288.212.788.412ZM18.85 10.4 14.6 6.15l1.05-1.05q.6-.6 1.437-.6.838 0 1.413.6l1.4 1.4q.6.575.6 1.412 0 .838-.6 1.438ZM6 19h1.4l7.2-7.2-1.4-1.4L6 17.6Zm-2 2v-4.25l9.2-9.2 4.25 4.25-9.2 9.2Zm9.2-10.6 1.4 1.4Z\"/></svg>`;\n    const fileUpload = `<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" width=\"24\" fill=\"#5f6368\"><path d=\"M6 20q-.825 0-1.412-.587Q4 18.825 4 18v-3h2v3h12v-3h2v3q0 .825-.587 1.413Q18.825 20 18 20Zm5-4V7.85l-2.6 2.6L7 9l5-5 5 5-1.4 1.45-2.6-2.6V16Z\"/></svg>`;\n    const qrCode = `<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" width=\"24\" fill=\"#5f6368\"><path d=\"M13 21v-2h2v2Zm-2-2v-5h2v5Zm8-3v-4h2v4Zm-2-4v-2h2v2ZM5 14v-2h2v2Zm-2-2v-2h2v2Zm9-7V3h2v2ZM4.5 7.5h3v-3h-3ZM3 9V3h6v6Zm1.5 10.5h3v-3h-3ZM3 21v-6h6v6ZM16.5 7.5h3v-3h-3ZM15 9V3h6v6Zm2 12v-3h-2v-2h4v3h2v2Zm-4-7v-2h4v2Zm-4 0v-2H7v-2h6v2h-2v2Zm1-5V5h2v2h2v2ZM5.25 6.75v-1.5h1.5v1.5Zm0 12v-1.5h1.5v1.5Zm12-12v-1.5h1.5v1.5Z\"/></svg>`;\n    const viewColumn = `<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" width=\"24\" fill=\"#5f6368\"><path d=\"M4 18h4V6H4v12Zm6 0h4V6h-4v12Zm6 0h4V6h-4v12ZM4 20q-.825 0-1.412-.587Q2 18.825 2 18V6q0-.825.588-1.412Q3.175 4 4 4h16q.825 0 1.413.588Q22 5.175 22 6v12q0 .825-.587 1.413Q20.825 20 20 20Z\"/></svg>`;\n    const contentCopy = `<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" width=\"24\" fill=\"#5f6368\"><path d=\"M5 22q-.825 0-1.413-.587Q3 20.825 3 20V6h2v14h11v2Zm4-4q-.825 0-1.412-.587Q7 16.825 7 16V4q0-.825.588-1.413Q8.175 2 9 2h9q.825 0 1.413.587Q20 3.175 20 4v12q0 .825-.587 1.413Q18.825 18 18 18Zm0-2h9V4H9v12Zm0 0V4v12Z\"/></svg>`;\n    const delete2 = `<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" width=\"24\" fill=\"#5f6368\"><path d=\"M7 21q-.825 0-1.412-.587Q5 19.825 5 19V6H4V4h5V3h6v1h5v2h-1v13q0 .825-.587 1.413Q17.825 21 17 21ZM17 6H7v13h10ZM9 17h2V8H9Zm4 0h2V8h-2ZM7 6v13Z\"/></svg>`;\n    const edit = `<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" width=\"24\" fill=\"#5f6368\"><path d=\"M5 19h1.4l8.625-8.625-1.4-1.4L5 17.6ZM19.3 8.925l-4.25-4.2 1.4-1.4q.575-.575 1.413-.575.837 0 1.412.575l1.4 1.4q.575.575.6 1.388.025.812-.55 1.387ZM17.85 10.4 7.25 21H3v-4.25l10.6-10.6Zm-3.525-.725-.7-.7 1.4 1.4Z\"/></svg>`;\n    const swapHoriz = `<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" width=\"24\" fill=\"#5f6368\"><path d=\"m7 20-5-5 5-5 1.4 1.425L5.825 14H13v2H5.825L8.4 18.575Zm10-6-1.4-1.425L18.175 10H11V8h7.175L15.6 5.425 17 4l5 5Z\"/></svg>`;\n    const swapVert = `<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" width=\"24\" fill=\"#5f6368\"><path d=\"M8 13V5.825L5.425 8.4 4 7l5-5 5 5-1.425 1.4L10 5.825V13Zm7 9-5-5 1.425-1.4L14 18.175V11h2v7.175l2.575-2.575L20 17Z\"/></svg>`;\n    const rotateLeft = `<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" width=\"24\" fill=\"#5f6368\"><path d=\"M11 22q-1.25-.125-2.4-.613Q7.45 20.9 6.4 20.1l1.4-1.45q.725.525 1.538.85.812.325 1.662.45Zm2 0v-2.05q2.6-.375 4.3-2.337Q19 15.65 19 13.05q0-2.925-2.038-4.962Q14.925 6.05 12 6.05h-.2l1.6 1.6-1.4 1.4-4-4 4-4 1.4 1.45-1.55 1.55H12q1.875 0 3.513.712 1.637.713 2.85 1.925 1.212 1.213 1.925 2.85Q21 11.175 21 13.05q0 3.425-2.275 5.963Q16.45 21.55 13 22Zm-8.05-3.35q-.8-1.05-1.287-2.2-.488-1.15-.613-2.4H5.1q.125.85.45 1.662.325.813.85 1.538Zm-1.9-6.6q.15-1.275.625-2.45.475-1.175 1.275-2.15l1.45 1.4q-.525.725-.85 1.537-.325.813-.45 1.663Z\"/></svg>`;\n    const rotateRight = `<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" width=\"24\" fill=\"#5f6368\"><path d=\"M13.05 22v-2.05q.85-.125 1.663-.45.812-.325 1.537-.85l1.4 1.45q-1.05.8-2.2 1.287-1.15.488-2.4.613Zm-2 0q-3.45-.45-5.725-2.987Q3.05 16.475 3.05 13.05q0-1.875.713-3.513.712-1.637 1.925-2.85Q6.9 5.475 8.538 4.762q1.637-.712 3.512-.712h.15L10.65 2.5l1.4-1.45 4 4-4 4-1.4-1.4 1.6-1.6h-.2q-2.925 0-4.962 2.038Q5.05 10.125 5.05 13.05q0 2.6 1.7 4.563 1.7 1.962 4.3 2.337Zm8.05-3.35-1.45-1.4q.525-.725.85-1.538.325-.812.45-1.662H21q-.125 1.25-.612 2.4-.488 1.15-1.288 2.2Zm1.9-6.6h-2.05q-.125-.85-.45-1.663-.325-.812-.85-1.537l1.45-1.4q.8.975 1.275 2.15.475 1.175.625 2.45Z\"/></svg>`;\n    const west = `<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" width=\"24\" fill=\"#5f6368\"><path d=\"m9 19-7-7 7-7 1.425 1.4-4.6 4.6H22v2H5.825l4.575 4.6Z\"/></svg>`;\n    const east = `<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" width=\"24\" fill=\"#5f6368\"><path d=\"m15 19-1.4-1.4 4.6-4.6H2v-2h16.2l-4.6-4.6L15 5l7 7Z\"/></svg>`;\n    const verticalAlignTop = `<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" width=\"24\" fill=\"#5f6368\"><path d=\"M11 21V10.8l-2.6 2.6L7 12l5-5 5 5-1.4 1.4-2.6-2.6V21ZM4 5V3h16v2Z\"/></svg>`;\n    const verticalAlignBottom = `<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" width=\"24\" fill=\"#5f6368\"><path d=\"M4 21v-2h16v2Zm8-4-5-5 1.4-1.4 2.6 2.6V3h2v10.2l2.6-2.6L17 12Z\"/></svg>`;\n    const add = `<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" width=\"24\" fill=\"#5f6368\"><path d=\"M11 19v-6H5v-2h6V5h2v6h6v2h-6v6Z\"/></svg>`;\n    const formatClear = `<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" width=\"24\" fill=\"#5f6368\"><path d=\"m13.2 10.35-2.325-2.325L7.85 5H20v3h-5.8Zm6.6 12.25-8.3-8.3-2 4.7H6.225L9.2 12 1.4 4.2l1.4-1.4 18.4 18.4Z\"/></svg>`;\n    const email = `<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" width=\"24\" fill=\"#5f6368\"><path d=\"M12 22q-2.05 0-3.875-.788-1.825-.787-3.187-2.15-1.363-1.362-2.15-3.187Q2 14.05 2 12q0-2.075.788-3.887.787-1.813 2.15-3.175Q6.3 3.575 8.125 2.787 9.95 2 12 2q2.075 0 3.887.787 1.813.788 3.175 2.151 1.363 1.362 2.15 3.175Q22 9.925 22 12v1.45q0 1.475-1.012 2.512Q19.975 17 18.5 17q-.9 0-1.675-.4t-1.275-1.05q-.675.675-1.587 1.063Q13.05 17 12 17q-2.075 0-3.537-1.463Q7 14.075 7 12t1.463-3.538Q9.925 7 12 7t3.538 1.462Q17 9.925 17 12v1.45q0 .725.45 1.137.45.413 1.05.413.6 0 1.05-.413.45-.412.45-1.137V12q0-3.275-2.363-5.638Q15.275 4 12 4 8.725 4 6.362 6.362 4 8.725 4 12t2.362 5.637Q8.725 20 12 20h5v2Zm0-7q1.25 0 2.125-.875T15 12q0-1.25-.875-2.125T12 9q-1.25 0-2.125.875T9 12q0 1.25.875 2.125T12 15Z\"/></svg>`;\n    const call = `<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" width=\"24\" fill=\"#5f6368\"><path d=\"M19.95 21q-3.225 0-6.287-1.438-3.063-1.437-5.425-3.8-2.363-2.362-3.8-5.425Q3 7.275 3 4.05q0-.45.3-.75t.75-.3H8.1q.35 0 .625.225t.325.575l.65 3.5q.05.35-.012.637-.063.288-.288.513L6.975 10.9q1.05 1.8 2.638 3.375Q11.2 15.85 13.1 17l2.35-2.35q.225-.225.588-.338.362-.112.712-.062l3.45.7q.35.075.575.337.225.263.225.613v4.05q0 .45-.3.75t-.75.3ZM6.025 9l1.65-1.65L7.25 5H5.025q.125 1.025.35 2.025.225 1 .65 1.975Zm8.95 8.95q.975.425 1.988.675 1.012.25 2.037.325v-2.2l-2.35-.475ZM6.025 9Zm8.95 8.95Z\"/></svg>`;\n    const rupee = `<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" width=\"24\" fill=\"#5f6368\"><path d=\"M13.725 21 7 14v-2h3.5q1.325 0 2.288-.863.962-.862 1.162-2.137H6V7h7.65q-.425-.875-1.262-1.438Q11.55 5 10.5 5H6V3h12v2h-3.25q.35.425.625.925T15.8 7H18v2h-2.025q-.2 2.125-1.75 3.562Q12.675 14 10.5 14h-.725l6.725 7Z\"/></svg>`;\n    const error = `<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" width=\"24\" fill=\"#5f6368\"><path d=\"M12 17q.425 0 .713-.288Q13 16.425 13 16t-.287-.713Q12.425 15 12 15t-.712.287Q11 15.575 11 16t.288.712Q11.575 17 12 17Zm-1-4h2V7h-2Zm1 9q-2.075 0-3.9-.788-1.825-.787-3.175-2.137-1.35-1.35-2.137-3.175Q2 14.075 2 12t.788-3.9q.787-1.825 2.137-3.175 1.35-1.35 3.175-2.138Q9.925 2 12 2t3.9.787q1.825.788 3.175 2.138 1.35 1.35 2.137 3.175Q22 9.925 22 12t-.788 3.9q-.787 1.825-2.137 3.175-1.35 1.35-3.175 2.137Q14.075 22 12 22Zm0-2q3.35 0 5.675-2.325Q20 15.35 20 12q0-3.35-2.325-5.675Q15.35 4 12 4 8.65 4 6.325 6.325 4 8.65 4 12q0 3.35 2.325 5.675Q8.65 20 12 20Zm0-8Z\"/></svg>`;\n    const cancel = `<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" width=\"24\" fill=\"#5f6368\"><path d=\"m8.4 17 3.6-3.6 3.6 3.6 1.4-1.4-3.6-3.6L17 8.4 15.6 7 12 10.6 8.4 7 7 8.4l3.6 3.6L7 15.6Zm3.6 5q-2.075 0-3.9-.788-1.825-.787-3.175-2.137-1.35-1.35-2.137-3.175Q2 14.075 2 12t.788-3.9q.787-1.825 2.137-3.175 1.35-1.35 3.175-2.138Q9.925 2 12 2t3.9.787q1.825.788 3.175 2.138 1.35 1.35 2.137 3.175Q22 9.925 22 12t-.788 3.9q-.787 1.825-2.137 3.175-1.35 1.35-3.175 2.137Q14.075 22 12 22Zm0-2q3.35 0 5.675-2.325Q20 15.35 20 12q0-3.35-2.325-5.675Q15.35 4 12 4 8.65 4 6.325 6.325 4 8.65 4 12q0 3.35 2.325 5.675Q8.65 20 12 20Zm0-8Z\"/></svg>`;\n    const tag = `<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" width=\"24\" fill=\"#5f6368\"><path d=\"M14.25 21.4q-.575.575-1.425.575-.85 0-1.425-.575l-8.8-8.8q-.275-.275-.437-.65Q2 11.575 2 11.15V4q0-.825.588-1.413Q3.175 2 4 2h7.15q.425 0 .8.162.375.163.65.438l8.8 8.825q.575.575.575 1.412 0 .838-.575 1.413ZM12.825 20l7.15-7.15L11.15 4H4v7.15ZM6.5 8q.625 0 1.062-.438Q8 7.125 8 6.5t-.438-1.062Q7.125 5 6.5 5t-1.062.438Q5 5.875 5 6.5t.438 1.062Q5.875 8 6.5 8ZM4 4Z\"/></svg>`;\n    const help = `<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" width=\"24\" fill=\"#5f6368\"><path d=\"M11.95 18q.525 0 .888-.363.362-.362.362-.887t-.362-.887q-.363-.363-.888-.363t-.888.363q-.362.362-.362.887t.362.887q.363.363.888.363Zm-.9-3.85h1.85q0-.825.188-1.3.187-.475 1.062-1.3.65-.65 1.025-1.238.375-.587.375-1.412 0-1.4-1.025-2.15T12.1 6q-1.425 0-2.312.75-.888.75-1.238 1.8l1.65.65q.125-.45.563-.975Q11.2 7.7 12.1 7.7q.8 0 1.2.437.4.438.4.963 0 .5-.3.937-.3.438-.75.813-1.1.975-1.35 1.475-.25.5-.25 1.825ZM12 22q-2.075 0-3.9-.788-1.825-.787-3.175-2.137-1.35-1.35-2.137-3.175Q2 14.075 2 12t.788-3.9q.787-1.825 2.137-3.175 1.35-1.35 3.175-2.138Q9.925 2 12 2t3.9.787q1.825.788 3.175 2.138 1.35 1.35 2.137 3.175Q22 9.925 22 12t-.788 3.9q-.787 1.825-2.137 3.175-1.35 1.35-3.175 2.137Q14.075 22 12 22Zm0-2q3.35 0 5.675-2.325Q20 15.35 20 12q0-3.35-2.325-5.675Q15.35 4 12 4 8.65 4 6.325 6.325 4 8.65 4 12q0 3.35 2.325 5.675Q8.65 20 12 20Zm0-8Z\"/></svg>`;\n    const column4 = `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M2.75 3c-.69 0-1.25.56-1.25 1.25v11.5c0 .69.56 1.25 1.25 1.25h1C4.44 17 5 16.44 5 15.75V4.25C5 3.56 4.44 3 3.75 3h-1zM3 4.75a.25.25 0 0 1 .5 0v10.5a.25.25 0 1 1-.5 0V4.75zM7.25 3C6.56 3 6 3.56 6 4.25v11.5c0 .69.56 1.25 1.25 1.25h1c.69 0 1.25-.56 1.25-1.25V4.25C9.5 3.56 8.94 3 8.25 3h-1zm.25 1.75a.25.25 0 0 1 .5 0v10.5a.25.25 0 1 1-.5 0V4.75zm3-.5c0-.69.56-1.25 1.25-1.25h1c.69 0 1.25.56 1.25 1.25v11.5c0 .69-.56 1.25-1.25 1.25h-1c-.69 0-1.25-.56-1.25-1.25V4.25zm1.75.25a.25.25 0 0 0-.25.25v10.5a.25.25 0 1 0 .5 0V4.75a.25.25 0 0 0-.25-.25zm4-1.5C15.56 3 15 3.56 15 4.25v11.5c0 .69.56 1.25 1.25 1.25h1c.69 0 1.25-.56 1.25-1.25V4.25c0-.69-.56-1.25-1.25-1.25h-1zm.25 1.75a.25.25 0 1 1 .5 0v10.5a.25.25 0 1 1-.5 0V4.75z\"></path></svg>`;\n    const leftSplit = `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" fill=\"#5f6368\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M1.5 5.5A2.5 2.5 0 0 1 4 3h5a2.5 2.5 0 0 1 2.5 2.5v9A2.5 2.5 0 0 1 9 17H4a2.5 2.5 0 0 1-2.5-2.5v-9zm2.5-1h5a1 1 0 0 1 1 1v9a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1v-9a1 1 0 0 1 1-1zM12.5 5.5A2.5 2.5 0 0 1 15 3h1a2.5 2.5 0 0 1 2.5 2.5v9A2.5 2.5 0 0 1 16 17h-1a2.5 2.5 0 0 1-2.5-2.5v-9zm2.5-1h1a1 1 0 0 1 1 1v9a1 1 0 0 1-1 1h-1a1 1 0 0 1-1-1v-9a1 1 0 0 1 1-1z\"></path></svg>`;\n    const rightSplit = `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" fill=\"#5f6368\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M8.5 5.5A2.5 2.5 0 0 1 11 3h5a2.5 2.5 0 0 1 2.5 2.5v9A2.5 2.5 0 0 1 16 17h-5a2.5 2.5 0 0 1-2.5-2.5v-9zm2.5-1h5a1 1 0 0 1 1 1v9a1 1 0 0 1-1 1h-5a1 1 0 0 1-1-1v-9a1 1 0 0 1 1-1zM1.5 5.5A2.5 2.5 0 0 1 4 3h1a2.5 2.5 0 0 1 2.5 2.5v9A2.5 2.5 0 0 1 5 17H4a2.5 2.5 0 0 1-2.5-2.5v-9zm2.5-1h1a1 1 0 0 1 1 1v9a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1v-9a1 1 0 0 1 1-1z\"></path></svg>`;\n    const column2 = `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" fill=\"#5f6368\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M4 4.5h2.75a1 1 0 0 1 1 1v9a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1v-9a1 1 0 0 1 1-1zm-2.5 1A2.5 2.5 0 0 1 4 3h2.75a2.5 2.5 0 0 1 2.5 2.5v9a2.5 2.5 0 0 1-2.5 2.5H4a2.5 2.5 0 0 1-2.5-2.5v-9zm11.75-1H16a1 1 0 0 1 1 1v9a1 1 0 0 1-1 1h-2.75a1 1 0 0 1-1-1v-9a1 1 0 0 1 1-1zm-2.5 1a2.5 2.5 0 0 1 2.5-2.5H16a2.5 2.5 0 0 1 2.5 2.5v9A2.5 2.5 0 0 1 16 17h-2.75a2.5 2.5 0 0 1-2.5-2.5v-9z\"></path></svg>`;\n    const column3 = `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" fill=\"#5f6368\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M1.5 4.75C1.5 3.784 2.284 3 3.25 3h1.5c.966 0 1.75.784 1.75 1.75v10.5A1.75 1.75 0 0 1 4.75 17h-1.5a1.75 1.75 0 0 1-1.75-1.75V4.75zm1.75-.25a.25.25 0 0 0-.25.25v10.5c0 .138.112.25.25.25h1.5a.25.25 0 0 0 .25-.25V4.75a.25.25 0 0 0-.25-.25h-1.5zm4.25.25C7.5 3.784 8.284 3 9.25 3h1.5c.966 0 1.75.784 1.75 1.75v10.5A1.75 1.75 0 0 1 10.75 17h-1.5a1.75 1.75 0 0 1-1.75-1.75V4.75zm1.75-.25a.25.25 0 0 0-.25.25v10.5c0 .138.112.25.25.25h1.5a.25.25 0 0 0 .25-.25V4.75a.25.25 0 0 0-.25-.25h-1.5zm6-1.5a1.75 1.75 0 0 0-1.75 1.75v10.5c0 .966.784 1.75 1.75 1.75h1.5a1.75 1.75 0 0 0 1.75-1.75V4.75A1.75 1.75 0 0 0 16.75 3h-1.5zM15 4.75a.25.25 0 0 1 .25-.25h1.5a.25.25 0 0 1 .25.25v10.5a.25.25 0 0 1-.25.25h-1.5a.25.25 0 0 1-.25-.25V4.75z\"></path></svg>`;\n    const dateRange = `<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" width=\"24\" fill=\"#5f6368\"><path d=\"M8 14q-.425 0-.713-.288Q7 13.425 7 13t.287-.713Q7.575 12 8 12t.713.287Q9 12.575 9 13t-.287.712Q8.425 14 8 14Zm4 0q-.425 0-.712-.288Q11 13.425 11 13t.288-.713Q11.575 12 12 12t.713.287Q13 12.575 13 13t-.287.712Q12.425 14 12 14Zm4 0q-.425 0-.712-.288Q15 13.425 15 13t.288-.713Q15.575 12 16 12t.712.287Q17 12.575 17 13t-.288.712Q16.425 14 16 14ZM5 22q-.825 0-1.413-.587Q3 20.825 3 20V6q0-.825.587-1.412Q4.175 4 5 4h1V2h2v2h8V2h2v2h1q.825 0 1.413.588Q21 5.175 21 6v14q0 .825-.587 1.413Q19.825 22 19 22Zm0-2h14V10H5v10ZM5 8h14V6H5Zm0 0V6v2Z\"/></svg>`;\n    const time = `<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" fill=\"#5f6368\" viewBox=\"0 -960 960 960\" width=\"24\"><path d=\"m612-292 56-56-148-148v-184h-80v216l172 172ZM480-80q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Zm0-400Zm0 320q133 0 226.5-93.5T800-480q0-133-93.5-226.5T480-800q-133 0-226.5 93.5T160-480q0 133 93.5 226.5T480-160Z\"/></svg>`;\n    const dateTime = `<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" fill=\"#5f6368\" viewBox=\"0 -960 960 960\" width=\"24\"><path d=\"M200-640h560v-80H200v80Zm0 0v-80 80Zm0 560q-33 0-56.5-23.5T120-160v-560q0-33 23.5-56.5T200-800h40v-80h80v80h320v-80h80v80h40q33 0 56.5 23.5T840-720v227q-19-9-39-15t-41-9v-43H200v400h252q7 22 16.5 42T491-80H200Zm520 40q-83 0-141.5-58.5T520-240q0-83 58.5-141.5T720-440q83 0 141.5 58.5T920-240q0 83-58.5 141.5T720-40Zm67-105 28-28-75-75v-112h-40v128l87 87Z\"/></svg>`;\n    const today = `<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" fill=\"#5f6368\" viewBox=\"0 -960 960 960\" width=\"24\"><path d=\"M360-300q-42 0-71-29t-29-71q0-42 29-71t71-29q42 0 71 29t29 71q0 42-29 71t-71 29ZM200-80q-33 0-56.5-23.5T120-160v-560q0-33 23.5-56.5T200-800h40v-80h80v80h320v-80h80v80h40q33 0 56.5 23.5T840-720v560q0 33-23.5 56.5T760-80H200Zm0-80h560v-400H200v400Zm0-480h560v-80H200v80Zm0 0v-80 80Z\"/></svg>`;\n    const info = `<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" fill=\"#5f6368\" viewBox=\"0 -960 960 960\" width=\"24px\"><path d=\"M440-280h80v-240h-80v240Zm40-320q17 0 28.5-11.5T520-640q0-17-11.5-28.5T480-680q-17 0-28.5 11.5T440-640q0 17 11.5 28.5T480-600Zm0 520q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Zm0-80q134 0 227-93t93-227q0-134-93-227t-227-93q-134 0-227 93t-93 227q0 134 93 227t227 93Zm0-320Z\"/></svg>`;\n\n    const libraryIcons = {\n        undo,\n        redo,\n        bold,\n        italic,\n        underline,\n        strikeThrough,\n        justifyLeft,\n        justifyCenter,\n        justifyRight,\n        justifyFull,\n        indent,\n        outdent,\n        formatListBulleted,\n        formatListNumbered,\n        formatColorText,\n        formatColorFill,\n        link,\n        unlink,\n        image,\n        videoCam,\n        remove,\n        close,\n        code,\n        title,\n        textFields,\n        shortText,\n        numbers,\n        calculate,\n        subject,\n        toggleOn,\n        smartButton,\n        corporateFare,\n        factCheck,\n        checklist,\n        radioButtonChecked,\n        checkbox,\n        event,\n        sharedLocation,\n        gesture,\n        draw,\n        fileUpload,\n        qrCode,\n        viewColumn,\n        contentCopy,\n        delete2,\n        edit,\n        swapHoriz,\n        swapVert,\n        rotateLeft,\n        rotateRight,\n        west,\n        east,\n        verticalAlignBottom,\n        verticalAlignTop,\n        add,\n        formatClear,\n        email,\n        call,\n        rupee,\n        error,\n        cancel,\n        tag,\n        help,\n        rightSplit,\n        leftSplit,\n        column4,\n        column2,\n        column3,\n        dateRange,\n        time,\n        dateTime,\n        today,\n        info\n    };\n\n    return libraryIcons;\n}\n\nexport const Icons = getIcons();\n","/**\n * @license\n * Copyright ASW (A Software World) 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\n */\n\nimport { Injectable } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\n\n@Injectable({\n    providedIn: 'root'\n})\nexport class NotificationService {\n    constructor(public snackBar: MatSnackBar) {}\n\n    /* Method used notify message to user */\n    openNotification(message: string, action?: string): void {\n        this.snackBar.open(message, action, {\n            duration: 15000\n        });\n    }\n}\n","/**\n * @license\n * Copyright ASW (A Software World) 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\n */\n\nimport { ClipboardModule } from '@angular/cdk/clipboard';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\nimport { NgModule } from '@angular/core';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatChipsModule } from '@angular/material/chips';\nimport { MatNativeDateModule, MatRippleModule } from '@angular/material/core';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { MatSliderModule } from '@angular/material/slider';\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatMenuModule } from '@angular/material/menu';\n\n@NgModule({\n    exports: [\n        ClipboardModule,\n        DragDropModule,\n        MatAutocompleteModule,\n        MatButtonModule,\n        MatButtonToggleModule,\n        MatCardModule,\n        MatCheckboxModule,\n        MatDatepickerModule,\n        MatDialogModule,\n        MatDividerModule,\n        MatExpansionModule,\n        MatInputModule,\n        MatNativeDateModule,\n        MatProgressBarModule,\n        MatRadioModule,\n        MatRippleModule,\n        MatSelectModule,\n        MatSlideToggleModule,\n        MatSnackBarModule,\n        MatTabsModule,\n        MatToolbarModule,\n        MatTooltipModule,\n        MatChipsModule,\n        MatIconModule,\n        MatSliderModule,\n        MatMenuModule\n    ]\n})\nexport class MaterialModule {}\n","/**\n * @license\n * Copyright ASW (A Software World) 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\n */\n\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n    providedIn: 'root'\n})\nexport class AswApiService {\n    constructor(private httpClient: HttpClient) {}\n\n    get(url: string, headers: any): Observable<any> {\n        headers = new HttpHeaders(headers);\n        return this.httpClient.get(url, { headers });\n    }\n\n    post(url: string, requestBody: any, headers: any): Observable<any> {\n        headers = new HttpHeaders(headers);\n        return this.httpClient.post(url, requestBody, { headers });\n    }\n\n    put(url: string, requestBody: any, headers: any): Observable<any> {\n        headers = new HttpHeaders(headers);\n        return this.httpClient.put(url, requestBody, { headers });\n    }\n\n    patch(url: string, requestBody: any, headers: any): Observable<any> {\n        headers = new HttpHeaders(headers);\n        return this.httpClient.patch(url, requestBody, { headers });\n    }\n\n    delete(url: string, headers: any): Observable<any> {\n        headers = new HttpHeaders(headers);\n        return this.httpClient.delete(url, { headers });\n    }\n}\n","import { AfterViewInit, Component, ElementRef, forwardRef, HostListener } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n    // tslint:disable-next-line:component-selector\n    selector: '[asw-text-editable]',\n    template: '<ng-content></ng-content>',\n    providers: [\n        {\n            provide: NG_VALUE_ACCESSOR,\n            useExisting: forwardRef(() => AswTextEditable),\n            multi: true\n        }\n    ],\n    styles: [\n        `\n            :host {\n                padding: 0.5em 0.5em;\n            }\n            :host[disabled='true'] {\n                pointer-events: none;\n                background: #f9f9f9;\n            }\n            :host:empty::before {\n                content: attr(placeholder);\n                color: #9d9d9d;\n            }\n        `\n    ]\n})\nexport class AswTextEditable implements ControlValueAccessor, AfterViewInit {\n    // init by this.registerOnTouched\n    onTouched!: () => void;\n\n    onChange!: (value: string) => void;\n\n    @HostListener('blur')\n    callOnTouched(): void {\n        this.onTouched();\n    }\n\n    @HostListener('input')\n    callOnChange(): void {\n        this.onChange(this.el.nativeElement.textContent);\n    }\n    constructor(private el: ElementRef) {}\n\n    ngAfterViewInit(): void {\n        this.el.nativeElement.setAttribute('contenteditable', 'true');\n    }\n\n    // called when model is written to view. (model -> view)\n    writeValue(value: string): void {\n        this.el.nativeElement.textContent = value || '';\n    }\n\n    registerOnChange(fn: (value: string) => void): void {\n        this.onChange = fn;\n    }\n    registerOnTouched(fn: () => void): void {\n        this.onTouched = fn;\n    }\n\n    // called when element property disabled is changed\n    setDisabledState(val: boolean): void {\n        this.el.nativeElement.setAttribute('disabled', String(val));\n        this.el.nativeElement.setAttribute('contenteditable', String(!val));\n    }\n}\n","/**\n * @license\n * Copyright ASW (A Software World) 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\n */\n\nimport { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Pipe({ name: 'aswSafeHtml' })\nexport class AswSafeHtmlPipe implements PipeTransform {\n    constructor(private sanitized: DomSanitizer) {}\n    transform(value: any): any {\n        return this.sanitized.bypassSecurityTrustHtml(value);\n    }\n}\n","import { HttpErrorResponse } from '@angular/common/http';\nimport { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { FormArray, FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { CSSFrameworkEnum } from '@asoftwareworld/form-builder-pro/api';\nimport { ObjectUtils } from '@asoftwareworld/form-builder-pro/utils';\nimport { Observable } from 'rxjs';\nimport { map, startWith } from 'rxjs/operators';\nimport { Constants } from '../../constant/constants';\nimport { AswApiService } from '../../service/api.service';\nimport { Icons } from './../../constant/icons';\n\n@Component({\n    selector: 'asw-api-communicator-params',\n    templateUrl: './api-params.html'\n})\nexport class AswApiParams implements OnInit {\n    aswApiParamsForm: FormGroup;\n    icons = Icons;\n    @Input() openIDBrequest: any;\n    @Input() indexedDB: any;\n    @Input() CSSFramework: CSSFrameworkEnum = CSSFrameworkEnum.Material;\n    @Output() newRequest = new EventEmitter();\n    @Output() apiResponse = new EventEmitter();\n\n    bodyType = 'none';\n    responseData: any;\n    responseError: any;\n    endpointError: string;\n    loadingState: boolean;\n    constants = Constants;\n    filteredHeaderKeys: Observable<string[]>[] = [];\n    objectUtils = ObjectUtils;\n    endpoint = 'Untitled Request';\n    isEndpointDisabled = true;\n    constructor(\n        private formBuilder: FormBuilder,\n        private aswApiService: AswApiService\n    ) {\n        this.aswApiParamsForm = this.formBuilder.group({\n            id: [],\n            apiUrl: ['', [Validators.required]],\n            method: ['GET', [Validators.required]],\n            bodyType: ['none'],\n            headers: this.initHeaders(),\n            bodyFormData: this.formBuilder.array([this.createBodyFormData()]),\n            jsonData: ['']\n        });\n        this.endpointError = '';\n        this.loadingState = false;\n    }\n\n    get headers(): FormArray {\n        return this.aswApiParamsForm.get('headers') as FormArray;\n    }\n\n    get bodyFormData(): FormArray {\n        return this.aswApiParamsForm.get('bodyFormData') as FormArray;\n    }\n\n    initHeaders(): FormArray {\n        const formArray = this.formBuilder.array([this.createHeader()]);\n        // formArray.push(this.createHeader());\n        return formArray;\n    }\n\n    ManageHeadersControl(index: number): void {\n        const arrayControl = this.aswApiParamsForm.get('headers') as FormArray;\n        const keyValue = arrayControl.at(index).get('key');\n        if (keyValue) {\n            this.filteredHeaderKeys[index] = keyValue.valueChanges.pipe(\n                startWith<string | any>(''),\n                map((value) => (typeof value === 'string' ? value : value.key)),\n                map((name) => (name ? this._filter(name) : this.constants.apiHeaderKeys.slice()))\n            );\n        }\n    }\n\n    createHeader(): FormGroup {\n        return this.formBuilder.group({\n            key: [''],\n            value: ['']\n        });\n    }\n\n    addNewHeader(): void {\n        const controls = this.aswApiParamsForm.controls.headers as FormArray;\n        const formGroup = this.createHeader();\n        controls.push(formGroup);\n        // Build the account Auto Complete values\n        this.ManageHeadersControl(controls.length - 1);\n    }\n\n    removeHeader(index: number): void {\n        const controls = this.aswApiParamsForm.controls.headers as FormArray;\n        controls.removeAt(index);\n        // remove from filteredOptions too.\n        this.filteredHeaderKeys.splice(index, 1);\n        this.headers.removeAt(index);\n    }\n\n    createBodyFormData(): FormGroup {\n        return this.formBuilder.group({\n            key: [''],\n            value: [''],\n            dataType: ['String']\n        });\n    }\n\n    addNewBodyFormData(): void {\n        this.bodyFormData.push(this.createBodyFormData());\n    }\n\n    removeBodyFormData(index: number): void {\n        this.bodyFormData.removeAt(index);\n    }\n\n    ngOnInit(): void {\n        this.ManageHeadersControl(0);\n        this.aswApiParamsForm.get('apiUrl')?.valueChanges.subscribe((apiUrl) => {\n            if (!this.endpoint || this.endpoint === 'Untitled Request' || this.endpoint.includes('http')) {\n                this.endpoint = apiUrl;\n                this.isEndpointDisabled = apiUrl ? false : true;\n            }\n        });\n        this.aswApiParamsForm.get('bodyType')?.valueChanges.subscribe((type) => {\n            this.bodyType = type;\n        });\n    }\n\n    private _filter(name: string): string[] {\n        const filterValue = name.toLowerCase();\n        return this.constants.apiHeaderKeys.filter((header: string) => header.toLowerCase().includes(filterValue));\n    }\n\n    saveWorkspaceRequest(): void {\n        const requestObject: any = {\n            endpoint: this.endpoint,\n            apiUrl: this.aswApiParamsForm.value.apiUrl,\n            method: this.aswApiParamsForm.value.method,\n            headers: this.constructObject('Headers'),\n            bodyType: this.bodyType,\n            body: this.constructObject('Body')\n        };\n        const transaction = this.indexedDB.transaction('myWorkspace', 'readwrite');\n\n        const myWorkspaceStore = transaction.objectStore('myWorkspace');\n        if (this.aswApiParamsForm.value.id) {\n            (requestObject._id = this.aswApiParamsForm.value.id), myWorkspaceStore.put(requestObject);\n        } else {\n            myWorkspaceStore.add(requestObject);\n        }\n        this.newRequest.emit();\n        this.isEndpointDisabled = true;\n    }\n\n    validateUrl(text: string): boolean {\n        // tslint:disable-next-line: max-line-length\n        const urlRegExp = /^(http:\\/\\/www\\.|https:\\/\\/www\\.|http:\\/\\/|https:\\/\\/)?[a-z0-9]+([\\-\\.]{1}[a-z0-9]+)*\\.[a-z]{2,5}(:[0-9]{1,5})?(\\/.*)?$/gm;\n        return urlRegExp.test(text);\n    }\n\n    constructObject(ctx: string): any {\n        let context;\n        if (ctx === 'Body') {\n            context = this.aswApiParamsForm.value.bodyFormData;\n        } else if (ctx === 'Headers') {\n            context = this.aswApiParamsForm.value.headers;\n        }\n\n        let constructedObject = {};\n        if (this.bodyType === 'form-data' || ctx === 'Headers') {\n            constructedObject = context.reduce((object: any, item: any) => {\n                if (item.key) {\n                    object[item.key] = item.value;\n                    return object;\n                }\n            }, {});\n            return constructedObject;\n        } else if (this.bodyType === 'json-data') {\n            return JSON.parse(this.aswApiParamsForm.value.jsonData ? this.aswApiParamsForm.value.jsonData : '{}');\n        }\n    }\n\n    loadWorkspaceRequest(request: any): void {\n        this.endpoint = request.endpoint;\n        this.aswApiParamsForm.patchValue({\n            id: request._id,\n            apiUrl: request.apiUrl,\n            method: request.method,\n            bodyType: request.bodyType,\n            jsonData: request.bodyType === 'json-data' ? JSON.stringify(request.body, undefined, 4) : ''\n        });\n        if (request.headers) {\n            this.aswApiParamsForm.patchValue({\n                headers: this.deconstructObject(request.headers, 'Headers')\n            });\n        }\n\n        if (request.bodyType === 'form-data') {\n            this.aswApiParamsForm.patchValue({\n                bodyFormData: this.deconstructObject(request.body, 'Body')\n            });\n        }\n        this.isEndpointDisabled = true;\n    }\n\n    deconstructObject(object: any, type: string): any[] {\n        const objectArray: any[] = [];\n        switch (type) {\n            case 'Body': {\n                Object.keys(object).forEach((objKey) => {\n                    const obj = { key: objKey, value: object[objKey] };\n                    objectArray.push(obj);\n                });\n                break;\n            }\n            case 'Headers': {\n                Object.keys(object).forEach((objKey) => {\n                    const obj = { key: objKey, value: object[objKey] };\n                    objectArray.push(obj);\n                });\n                break;\n            }\n        }\n        return objectArray;\n    }\n\n    onSubmit(): void {\n        this.endpointError = '';\n        this.responseData = '';\n        this.responseError = '';\n\n        if (this.aswApiParamsForm.invalid) {\n            this.endpointError = 'Endpoint is a Required value';\n            return;\n        }\n        // if (!this.validateUrl(this.aswApiParamsForm)) {\n        //     this.endpointError = 'Please enter a valid URL';\n        //     return;\n        // }\n\n        this.loadingState = true;\n        switch (this.aswApiParamsForm.value.method) {\n            case 'GET': {\n                this.aswApiService.get(this.aswApiParamsForm.value.apiUrl, this.constructObject('Headers')).subscribe({\n                    next: (data) => {\n                        this.setDataResponse(data);\n                    },\n                    error: (error: HttpErrorResponse) => {\n                        this.setErrorResponse(error);\n                    }\n                });\n                break;\n            }\n            case 'POST': {\n                this.aswApiService.post(this.aswApiParamsForm.value.apiUrl, this.constructObject('Body'), this.constructObject('Headers')).subscribe({\n                    next: (data) => {\n                        this.setDataResponse(data);\n                    },\n                    error: (error: HttpErrorResponse) => {\n                        this.setErrorResponse(error);\n                    }\n                });\n                break;\n            }\n            case 'PUT': {\n                this.aswApiService.put(this.aswApiParamsForm.value.apiUrl, this.constructObject('Body'), this.constructObject('Headers')).subscribe({\n                    next: (data) => {\n                        this.setDataResponse(data);\n                    },\n                    error: (error: HttpErrorResponse) => {\n                        this.setErrorResponse(error);\n                    }\n                });\n                break;\n            }\n            case 'PATCH': {\n                this.aswApiService.patch(this.aswApiParamsForm.value.apiUrl, this.constructObject('Body'), this.constructObject('Headers')).subscribe({\n                    next: (data) => {\n                        this.setDataResponse(data);\n                    },\n                    error: (error: HttpErrorResponse) => {\n                        this.setErrorResponse(error);\n                    }\n                });\n                break;\n            }\n            case 'DELETE': {\n                this.aswApiService.delete(this.aswApiParamsForm.value.apiUrl, this.constructObject('Headers')).subscribe({\n                    next: (data) => {\n                        this.setDataResponse(data);\n                    },\n                    error: (error: HttpErrorResponse) => {\n                        this.setErrorResponse(error);\n                    }\n                });\n                break;\n            }\n        }\n    }\n\n    private setDataResponse(data: any): void {\n        this.loadingState = false;\n        this.responseData = JSON.stringify(data, undefined, 4);\n        const apiData = {\n            responseData: data,\n            method: this.aswApiParamsForm.value.method,\n            headers: this.constructObject('Headers'),\n            body: this.constructObject('Body'),\n            apiUrl: this.aswApiParamsForm.value.apiUrl\n        };\n        this.apiResponse.emit(apiData);\n    }\n\n    private setErrorResponse(error: any): void {\n        this.loadingState = false;\n        this.responseData = JSON.stringify(error, undefined, 4);\n    }\n\n    onChange(value: any): void {\n        if (!value) {\n            this.isEndpointDisabled = true;\n            this.endpoint = 'Untitled Request';\n        } else {\n            this.isEndpointDisabled = false;\n        }\n    }\n}\n","<div class=\"asw-p-2\">\r\n    <div class=\"asw-row\">\r\n        <div class=\"asw-col-md-10\">\r\n            <div asw-text-editable\r\n                #endpointDiv=\"ngModel\"\r\n                (ngModelChange)=\"onChange($event)\"\r\n                [(ngModel)]=\"endpoint\">\r\n                <strong>{{endpoint}}</strong>\r\n            </div>\r\n        </div>\r\n        <div class=\"asw-col-md-2\" align=\"right\">\r\n            <button mat-stroked-button type=\"button\" [disabled]=\"isEndpointDisabled\" (click)=\"saveWorkspaceRequest()\">\r\n                {{'FormControl.Save' | aswTranslate}}\r\n            </button>\r\n        </div>\r\n    </div>\r\n    <form [formGroup]=\"aswApiParamsForm\" (ngSubmit)=\"onSubmit()\">\r\n        <div class=\"asw-row asw-mt-3\">\r\n            <ng-container *ngIf=\"CSSFramework === 'material'; else bootstrap\">\r\n                <div class=\"asw-col-xl-3 asw-col-lg-3 asw-col-md-3 asw-col-sm-3 asw-col-xs-3\">\r\n                    <mat-form-field appearance=\"outline\" class=\"asw-width-100\">\r\n                        <mat-label>{{'FormControl.Method' | aswTranslate}}</mat-label>\r\n                        <mat-select formControlName=\"method\" required>\r\n                            <mat-option *ngFor=\"let method of constants.apiRequestMethods\" [value]=\"method\">\r\n                                {{ method }}\r\n                            </mat-option>\r\n                        </mat-select>\r\n                    </mat-form-field>\r\n                </div>\r\n                <div class=\"asw-col-xl-9 asw-col-lg-9 asw-col-md-9 asw-col-sm-9 asw-col-xs-9\">\r\n                    <mat-form-field appearance=\"outline\" class=\"asw-width-100\">\r\n                        <mat-label>{{'FormControl.EnterRequestURL' | aswTranslate}}</mat-label>\r\n                        <input type=\"url\" \r\n                            matInput\r\n                            pattern=\"https?://.+\"\r\n                            placeholder=\"{{'FormControl.EnterRequestURL' | aswTranslate}}\"\r\n                            formControlName=\"apiUrl\"\r\n                            required>\r\n                            <mat-icon *ngIf=\"aswApiParamsForm.get('apiUrl')?.invalid && (aswApiParamsForm.get('apiUrl')?.dirty || aswApiParamsForm.get('apiUrl')?.touched)\"\r\n                                class=\"asw-error\" matSuffix>error</mat-icon>\r\n                        <mat-error *ngFor=\"let validation of constants.accountValidationMessages.apiUrl\">\r\n                            <ng-container *ngIf=\"aswApiParamsForm.get('apiUrl')?.hasError(validation.type) && (aswApiParamsForm.get('apiUrl')?.dirty || aswApiParamsForm.get('apiUrl')?.touched)\">\r\n                                {{validation.message | aswTranslate}}\r\n                            </ng-container>\r\n                        </mat-error>\r\n                    </mat-form-field>\r\n                </div>\r\n            </ng-container>\r\n            <ng-template #bootstrap>\r\n                <div class=\"asw-col-xl-3 asw-col-lg-3 asw-col-md-3 asw-col-sm-3 asw-col-xs-3\">\r\n                    <div class=\"asw-mb-3\">\r\n                        <label class=\"asw-input-label\">{{'FormControl.Method' | aswTranslate}}</label>\r\n                        <select formControlName=\"method\" class=\"asw-select\" required>\r\n                            <option *ngFor=\"let method of constants.apiRequestMethods\" [value]=\"method\">\r\n                                {{ method }}\r\n                            </option>\r\n                        </select>\r\n                    </div>\r\n                </div>\r\n                <div class=\"asw-col-xl-9 asw-col-lg-9 asw-col-md-9 asw-col-sm-9 asw-col-xs-9\">\r\n                    <div class=\"asw-mb-3\">\r\n                        <label class=\"asw-input-label asw-invalid-label {{(aswApiParamsForm.get('apiUrl')?.invalid && (aswApiParamsForm.get('apiUrl')?.dirty || aswApiParamsForm.get('apiUrl')?.touched)) ? 'asw-red-color' : ''}}\">{{'FormControl.EnterRequestURL' | aswTranslate}}</label>\r\n                        <input type=\"url\"\r\n                            pattern=\"https?://.+\"\r\n                            class=\"asw-input-control\"\r\n                            [class.asw-is-invalid]=\"(aswApiParamsForm.get('apiUrl')?.invalid && (aswApiParamsForm.get('apiUrl')?.dirty || aswApiParamsForm.get('apiUrl')?.touched))\"\r\n                            placeholder=\"{{'FormControl.EnterRequestURL' | aswTranslate}}\"\r\n                            formControlName=\"apiUrl\"\r\n                            required>\r\n                        <div *ngFor=\"let validation of constants.accountValidationMessages.apiUrl\" class=\"invalid-feedback\">\r\n                            <ng-container *ngIf=\"aswApiParamsForm.get('apiUrl')?.hasError(validation.type) && (aswApiParamsForm.get('apiUrl')?.dirty || aswApiParamsForm.get('apiUrl')?.touched)\">\r\n                                {{validation.message | aswTranslate}}\r\n                            </ng-container>\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n            </ng-template>            \r\n        </div>\r\n        <section class=\"requestBody\">\r\n            <mat-tab-group dynamicHeight mat-stretch-tabs=\"false\">\r\n                <mat-tab label=\"{{'FormControl.Headers' | aswTranslate}}\">\r\n                    <div class=\"asw-row asw-mt-2\">\r\n                        <div class=\"asw-col-md-12\">\r\n                            <table class=\"asw-table asw-table-sm asw-table-bordered\">\r\n                                <thead>\r\n                                    <tr>\r\n                                        <th>{{'FormControl.Key' | aswTranslate}}</th>\r\n                                        <th>{{'FormControl.Value' | aswTranslate}}</th>\r\n                                        <th></th>\r\n                                    </tr>\r\n                                </thead>\r\n                                <tbody>\r\n                                    <ng-container formArrayName=\"headers\">\r\n                                        <tr *ngFor=\"let header of headers.controls; let index = index; let last=last;\" \r\n                                        [formGroupName]=\"index\">\r\n                                            <td>\r\n                                                <input class=\"asw-input-control\" formControlName=\"key\" [matAutocomplete]=\"headerKey\">\r\n                                                <mat-autocomplete #headerKey=\"matAutocomplete\">\r\n                                                    <mat-option *ngFor=\"let header of filteredHeaderKeys[index] | async\" [value]=\"header\">\r\n                                                        {{ header }}\r\n                                                    </mat-option>\r\n                                                </mat-autocomplete>\r\n                                            </td>\r\n                                            <td>\r\n                                                <input class=\"asw-input-control\" type=\"text\" formControlName=\"value\">\r\n                                            </td>\r\n                                            <td class=\"asw-text-center\">\r\n                                                <button mat-icon-button *ngIf=\"index != 0\"\r\n                                                        type=\"button\" \r\n                                                        matTooltip=\"{{'FormControl.Delete' | aswTranslate}}\" \r\n                                                        [matTooltipPosition]=\"'below'\" \r\n                                                        (click)=\"removeHeader(index)\">\r\n                                                    <span [innerHTML]=\"icons.delete2 | aswSafeHtml\"></span>\r\n                                                </button>\r\n                                            </td>\r\n                                        </tr>\r\n                                    </ng-container>\r\n                                    <tr>\r\n                                        <td colspan=\"3\">\r\n                                            <button class=\"asw-button asw-button-sm asw-button-primary\"\r\n                                                    type=\"button\" \r\n                                                    matTooltip=\"{{'FormControl.Add' | aswTranslate}}\" \r\n                                                    [matTooltipPosition]=\"'below'\"\r\n                                                    (click)=\"addNewHeader()\">\r\n                                                <span class=\"asw-icon asw-me-1\" [innerHTML]=\"icons.add | aswSafeHtml\"></span>\r\n                                                {{'FormControl.AddOption' | aswTranslate}}\r\n                                            </button>\r\n                                        </td>\r\n                                    </tr>\r\n                                </tbody>\r\n                            </table>\r\n                        </div>\r\n                    </div>\r\n                </mat-tab>\r\n                <mat-tab label=\"{{'FormControl.Body' | aswTranslate}}\">\r\n                    <div class=\"asw-row\">\r\n                        <div class=\"asw-col-md-12 asw-mt-2\">\r\n                            <section class=\"asw-section\">\r\n                                <mat-radio-group color=\"primary\"\r\n                                    formControlName=\"bodyType\">\r\n                                    <mat-radio-button class=\"asw-margin\" *ngFor=\"let type of constants.apiBodyType\" \r\n                                                    [value]=\"type\">\r\n                                                {{ type }}\r\n                                    </mat-radio-button>\r\n                                </mat-radio-group>\r\n                            </section>\r\n                        </div>\r\n                    </div>\r\n                    <div class=\"asw-mt-2\">\r\n                        <ng-container *ngIf=\"bodyType === 'form-data'\">\r\n                            <div class=\"asw-row\">\r\n                                <div class=\"asw-col-md-12\">\r\n                                    <table class=\"asw-table asw-table-sm asw-table-bordered\">\r\n                                        <thead>\r\n                                            <tr>\r\n                                                <th>{{'FormControl.Key' | aswTranslate}}</th>\r\n                                                <th>{{'FormControl.Value' | aswTranslate}}</th>\r\n                                                <th>{{'FormControl.DataType' | aswTranslate}}</th>\r\n                                                <th></th>\r\n                                            </tr>\r\n                                        </thead>\r\n                                        <tbody>\r\n                                            <ng-container formArrayName=\"bodyFormData\">\r\n                                                <tr *ngFor=\"let b of bodyFormData.controls; let index = index; let last=last;\" \r\n                                                [formGroupName]=\"index\">\r\n                                                    <td>\r\n                                                        <input class=\"asw-input-control\" type=\"text\" formControlName=\"key\">\r\n                                                    </td>\r\n                                                    <td>\r\n                                                        <ng-container *ngIf=\"bodyFormData.controls[index].value.dataType === 'String'\">\r\n                                                            <input class=\"asw-input-control\" type=\"text\" formControlName=\"value\">\r\n                                                        </ng-container>\r\n                                                        <ng-container *ngIf=\"bodyFormData.controls[index].value.dataType === 'Number'\">\r\n                                                            <input class=\"asw-input-control\" type=\"text\" formControlName=\"value\"\r\n                                                                (keypress)=\"objectUtils.keyPressNumbersWithDecimal($event)\">\r\n                                                        </ng-container>\r\n                                                        <ng-container *ngIf=\"bodyFormData.controls[index].value.dataType === 'Boolean'\">\r\n                                                            <select formControlName=\"value\" class=\"asw-select\">\r\n                                                                <option value=\"true\">True</option>\r\n                                                                <option value=\"false\">False</option>\r\n                                                            </select>\r\n                                                        </ng-container>\r\n                                                    </td>\r\n                                                    <td>\r\n                                                        <select formControlName=\"dataType\" class=\"asw-select\">\r\n                                                            <option *ngFor=\"let type of constants.dataTypes\" [value]=\"type\">{{type}}</option>\r\n                                                        </select>\r\n                                                    </td>\r\n                                                    <td class=\"asw-text-center\">\r\n                                                        <button mat-icon-button *ngIf=\"index != 0\"\r\n                                                            type=\"button\" \r\n                                                            matTooltip=\"{{'FormControl.Delete' | aswTranslate}}\" \r\n                                                            [matTooltipPosition]=\"'below'\" \r\n                                                            (click)=\"removeBodyFormData(index)\">\r\n                                                            <span [innerHTML]=\"icons.delete2 | aswSafeHtml\"></span>\r\n                                                        </button>\r\n                                                    </td>\r\n                                                </tr>\r\n                                            </ng-container>\r\n                                            <tr>\r\n                                                <td colspan=\"4\">\r\n                                                    <button class=\"asw-button asw-button-primary asw-button-sm\"\r\n                                                        type=\"button\" \r\n                                                        matTooltip=\"{{'FormControl.Add' | aswTranslate}}\" \r\n                                                        [matTooltipPosition]=\"'below'\"\r\n                                                        (click)=\"addNewBodyFormData()\">\r\n                                                        <span class=\"asw-icon asw-me-1\" [innerHTML]=\"icons.add | aswSafeHtml\"></span>\r\n                                                        {{'FormControl.AddOption' | aswTranslate}}\r\n                                                    </button>\r\n                                                </td>\r\n                                            </tr>\r\n                                        </tbody>\r\n                                    </table>\r\n                                </div>\r\n                            </div>\r\n                        </ng-container>\r\n                        <ng-container *ngIf=\"bodyType === 'json-data'\">\r\n                            <div class=\"asw-row\">\r\n                                <div class=\"asw-col-md-12\">\r\n                                    <mat-form-field class=\"asw-width-100\" appearance=\"outline\">\r\n                                        <textarea matInput\r\n                                            cdkTextareaAutosize\r\n                                            cdkAutosizeMinRows=\"18\"\r\n                                            cdkAutosizeMaxRows=\"100\"\r\n                                            formControlName=\"jsonData\">\r\n                                        </textarea>\r\n                                    </mat-form-field>\r\n                                </div>\r\n                            </div>\r\n                        </ng-container>\r\n                    </div>\r\n                </mat-tab>\r\n            </mat-tab-group>\r\n        </section>\r\n        <button mat-flat-button type=\"submit\" color=\"primary\">\r\n            {{'FormControl.SendRequest' | aswTranslate}}\r\n        </button>\r\n        <div class=\"asw-pt-2\">\r\n            <mat-progress-bar *ngIf=\"loadingState\" mode=\"indeterminate\"></mat-progress-bar>\r\n            <mat-card class=\"asw-border\" *ngIf=\"responseData || responseError\">\r\n                <mat-card-title>{{'FormControl.Response' | aswTranslate}}</mat-card-title>\r\n                <mat-card-content class=\"asw-pt-2\">\r\n                    <pre *ngIf=\"responseData\" style=\"color: green; white-space: pre-wrap;\">{{ responseData }}</pre>\r\n                    <pre *ngIf=\"responseError\" style=\"color: red; white-space: pre-wrap;\">{{ responseError }}</pre>\r\n                </mat-card-content>\r\n            </mat-card>\r\n        </div>\r\n    </form>\r\n</div>\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n    selector: 'asw-my-workspace',\n    templateUrl: './my-workspace.html',\n    styleUrls: ['./my-workspace.scss']\n})\nexport class AswMyWorkspace {\n    @Input() indexedDB: any;\n    @Input() pastRequests: any;\n    @Output() loadRequest = new EventEmitter();\n\n    load(req: any): void {\n        this.loadRequest.emit(req);\n    }\n\n    deleteApiRequest(request: any): void {\n        const transaction = this.indexedDB.transaction('myWorkspace', 'readwrite');\n        const myWorkspaceStore = transaction.objectStore('myWorkspace');\n        myWorkspaceStore.delete(request._id);\n    }\n}\n","<strong>{{'FormControl.MyWorkspace' | aswTranslate}}</strong>\r\n<div class=\"asw-pt-2\">\r\n    <mat-accordion class=\"asw-headers-align\">\r\n        <mat-expansion-panel hideToggle class=\"asw-border\">\r\n            <mat-expansion-panel-header #panelH  *ngFor=\"let request of pastRequests\" (click)=\"panelH._toggle(); load(request)\">\r\n                <mat-panel-title>\r\n                    <span [ngClass]=\"{ \r\n                        'get-color': request.method === 'GET',\r\n                        'post-color': request.method === 'POST',\r\n                        'put-color': request.method === 'PUT',\r\n                        'patch-color': request.method === 'PATCH',\r\n                        'delete-color': request.method === 'DELETE'\r\n                    }\">{{request.method}}</span>\r\n                </mat-panel-title>\r\n                <mat-panel-description matTooltip=\"{{request.endpoint}}\" \r\n                [matTooltipPosition]=\"'below'\">\r\n                    <span class=\"asw-panel-description\">{{request.endpoint}}</span>\r\n                    <!-- <button mat-icon-button type=\"button\" (click)=\"deleteApiRequest(request)\">\r\n                        <mat-icon>delete</mat-icon>\r\n                    </button> -->\r\n                </mat-panel-description>\r\n            </mat-expansion-panel-header>\r\n        </mat-expansion-panel>\r\n    </mat-accordion>\r\n</div>\r\n","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { CSSFrameworkEnum } from '@asoftwareworld/form-builder-pro/api';\nimport { AswApiParams } from './api-params/api-params';\n\n@Component({\n    selector: 'asw-api-communicator',\n    templateUrl: './api-communicator.html'\n})\nexport class AswCommunicatorApi implements OnInit {\n    @ViewChild(AswApiParams, { static: true }) aswApiParams!: AswApiParams;\n    @Output() apiResponse = new EventEmitter();\n    @Input() CSSFramework: CSSFrameworkEnum = CSSFrameworkEnum.Material;\n    hasIndexedDB: boolean;\n    indexedDB: any;\n    openIDBrequest: any;\n    idbStore: any;\n    pastRequests: any;\n\n    constructor() {\n        this.hasIndexedDB = false;\n        this.pastRequests = [];\n    }\n\n    ngOnInit(): void {\n        this.openIndexedDB();\n    }\n\n    loadRequestHandler(request: any): void {\n        this.aswApiParams.loadWorkspaceRequest(request);\n    }\n\n    openIndexedDB(): void {\n        this.openIDBrequest = window.indexedDB.open('savedRequests', 1);\n\n        this.openIDBrequest.onsuccess = (event: any) => {\n            this.indexedDB = event.target.result;\n            this.hasIndexedDB = true;\n\n            this.fetchPastRequests();\n        };\n\n        this.openIDBrequest.onerror = (event: any) => {\n            this.hasIndexedDB = false;\n        };\n\n        this.openIDBrequest.onupgradeneeded = (event: any) => {\n            this.indexedDB = event.target.result;\n            this.idbStore = this.indexedDB.createObjectStore('myWorkspace', { keyPath: '_id', autoIncrement: true });\n        };\n    }\n\n    fetchPastRequests(): void {\n        const transaction = this.indexedDB.transaction('myWorkspace', 'readwrite');\n\n        const pastRequestsStore = transaction.objectStore('myWorkspace');\n        pastRequestsStore.getAll().onsuccess = (evt: any) => {\n            this.pastRequests = evt.target.result;\n        };\n    }\n\n    clearPastRequests(): void {\n        const transaction = this.indexedDB.transaction('myWorkspace', 'readwrite');\n\n        const pastRequestsStore = transaction.objectStore('myWorkspace');\n        pastRequestsStore.clear().onsuccess = (evt: any) => {\n            this.pastRequests = [];\n        };\n    }\n\n    getApiData(data: any): void {\n        this.apiResponse.emit(data);\n    }\n}\n","<div class=\"asw-row\">\r\n    <div class=\"asw-col-md-8\">\r\n        <asw-api-communicator-params \r\n            [openIDBrequest]=\"openIDBrequest\" \r\n            [indexedDB]=\"indexedDB\"\r\n            [CSSFramework]=\"CSSFramework\"\r\n            (newRequest)=\"fetchPastRequests()\"\r\n            (apiResponse)=\"getApiData($event)\">\r\n        </asw-api-communicator-params>\r\n    </div>\r\n    <div class=\"asw-col-md-4 asw-pt-2\">\r\n        <div class=\"asw-sticky-top\">\r\n            <asw-my-workspace \r\n                [pastRequests]=\"pastRequests\" \r\n                [indexedDB]=\"indexedDB\" \r\n                (loadRequest)=\"loadRequestHandler($event)\">\r\n            </asw-my-workspace>\r\n            <button mat-flat-button type=\"button\" class=\"asw-width-100 asw-mt-1\" color=\"warn\" (click)=\"clearPastRequests()\">\r\n                {{'FormControl.ClearPastRequests' | aswTranslate}}\r\n            </button>\r\n        </div>\r\n    </div>\r\n</div>\r\n","/**\n * @license\n * Copyright ASW (A Software World) 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\n */\n\n// import { Directive, ElementRef, HostListener } from '@angular/core';\n\n// @Directive({\n//     selector: 'input[aswNumbersOnly]'\n// })\n// export class AswNumberDirective {\n\n//     constructor(public element: ElementRef) { }\n\n//     @HostListener('input', ['$event']) onInputChange(event: any): void {\n//         const initalValue = this.element.nativeElement.value;\n//         this.element.nativeElement.value = initalValue.replace(/[^0-9]*/g, '');\n//         if (initalValue !== this.element.nativeElement.value) {\n//             event.stopPropagation();\n//         }\n//     }\n// }\nimport { Directive, ElementRef, HostListener } from '@angular/core';\n\n@Directive({\n    selector: '[aswNumbersOnly]'\n})\nexport class AswNumberDirective {\n    private regex: RegExp = new RegExp(/^\\d*\\.?\\d{0,4}$/g);\n    private specialKeys: Array<string> = ['Backspace', 'Tab', 'End', 'Home', 'ArrowLeft', 'ArrowRight', 'Del', 'Delete'];\n    constructor(private el: ElementRef) {}\n    @HostListener('keydown', ['$event'])\n    onKeyDown(event: KeyboardEvent): void {\n        console.log(this.el.nativeElement.value);\n        // Allow Backspace, tab, end, and home keys\n        if (this.specialKeys.indexOf(event.key) !== -1) {\n            return;\n        }\n        const current: string = this.el.nativeElement.value;\n        const position = this.el.nativeElement.selectionStart;\n        const next: string = [current.slice(0, position), event.key === 'Decimal' ? '.' : event.key, current.slice(position)].join('');\n        if (next && !String(next).match(this.regex)) {\n            event.preventDefault();\n        }\n    }\n}\n","import { Directive } from '@angular/core';\n\n/**\n * Directive for providing a custom clear-icon.\n * e.g.\n * <asw-select-search [formControl]=\"bankFilterCtrl\">\n *   <mat-icon aswSelectSearchClear>delete</mat-icon>\n * </asw-select-search>\n */\n@Directive({\n    selector: '[aswSelectSearchClear]'\n})\nexport class AswSelectSearchClearDirective {}\n","import { Directive } from '@angular/core';\n\n/**\n * Directive for providing a custom no entries found element.\n * e.g.\n * <asw-select-search [formControl]=\"filterCtrl\">\n *   <span aswSelectNoEntriesFound>\n *     No entries found <button>Add</button>\n *   </span>\n * </asw-select-search>\n */\n@Directive({\n    selector: '[aswSelectNoEntriesFound]'\n})\nexport class AswSelectNoEntriesFoundDirective {}\n","/**\n * @license\n * Copyright ASW (A Software World) 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\n */\n\nimport { NgModule } from '@angular/core';\n\nimport { AswNumberDirective } from './numbers-only.directive';\nimport { AswSelectSearchClearDirective } from './select-search-clear.directive';\nimport { AswSelectNoEntriesFoundDirective } from './select-search-no-entries-found.directive';\nimport { AswTextEditable } from './text-editable.directive';\nimport { CommonModule } from '@angular/common';\n\n@NgModule({\n    imports: [CommonModule],\n    declarations: [AswNumberDirective, AswTextEditable, AswSelectNoEntriesFoundDirective, AswSelectSearchClearDirective],\n    exports: [AswNumberDirective, AswTextEditable, AswSelectNoEntriesFoundDirective, AswSelectSearchClearDirective]\n})\nexport class AswDirectiveModule {}\n","/**\n * @license\n * Copyright ASW (A Software World) 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\n */\n\nimport { NgModule } from '@angular/core';\nimport { AswSafeHtmlPipe } from './safe-html.pipe';\nimport { CommonModule } from '@angular/common';\n\n@NgModule({\n    imports: [CommonModule],\n    declarations: [AswSafeHtmlPipe],\n    exports: [AswSafeHtmlPipe]\n})\nexport class AswPipeModule {}\n","/**\n * @license\n * Copyright ASW (A Software World) 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\n */\n\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { AswTranslateModule } from '@asoftwareworld/form-builder-pro/core';\nimport { AswDirectiveModule } from '../directive/directive.module';\nimport { MaterialModule } from '../material.module';\nimport { AswPipeModule } from '../pipe/pipe.module';\nimport { AswCommunicatorApi } from './api-communicator';\nimport { AswApiParams } from './api-params/api-params';\nimport { AswMyWorkspace } from './my-workspace/my-workspace';\n\n@NgModule({\n    imports: [CommonModule, FormsModule, ReactiveFormsModule, MaterialModule, AswDirectiveModule, AswTranslateModule, AswPipeModule],\n    declarations: [AswApiParams, AswMyWorkspace, AswCommunicatorApi],\n    exports: [AswApiParams, AswMyWorkspace, AswCommunicatorApi]\n})\nexport class AswCommunicatorApiModule {}\n","import { InjectionToken } from '@angular/core';\n\nexport interface IConfig {\n    sufix: string;\n    prefix: string;\n    clearIfNotMatch: boolean;\n    showTemplate: boolean;\n    showMaskTyped: boolean;\n    dropSpecialCharacters: boolean | string[];\n    specialCharacters: string[];\n    patterns: {\n        [character: string]: {\n            pattern: RegExp;\n            optional?: boolean;\n        };\n    };\n}\n\nexport type optionsConfig = Partial<IConfig>;\nexport const config: InjectionToken<string> = new InjectionToken('config');\nexport const NEW_CONFIG: InjectionToken<string> = new InjectionToken('NEW_CONFIG');\nexport const INITIAL_CONFIG: InjectionToken<IConfig> = new InjectionToken('INITIAL_CONFIG');\n\nexport const initialConfig: IConfig = {\n    sufix: '',\n    prefix: '',\n    clearIfNotMatch: false,\n    showTemplate: false,\n    showMaskTyped: false,\n    dropSpecialCharacters: true,\n    specialCharacters: ['-', '/', '(', ')', '.', ':', ' ', '+', ',', '@', '[', ']', '\"', \"'\"],\n    patterns: {\n        0: {\n            pattern: new RegExp('\\\\d')\n        },\n        9: {\n            pattern: new RegExp('\\\\d'),\n            optional: true\n        },\n        A: {\n            pattern: new RegExp('[a-zA-Z0-9]')\n        },\n        S: {\n            pattern: new RegExp('[a-zA-Z]')\n        },\n        d: {\n            pattern: new RegExp('\\\\d')\n        },\n        m: {\n            pattern: new RegExp('\\\\d')\n        },\n        H: {\n            pattern: new RegExp('\\\\d')\n        },\n        h: {\n            pattern: new RegExp('\\\\d')\n        },\n        s: {\n            pattern: new RegExp('\\\\d')\n        }\n    }\n};\n","import { Inject, Injectable } from '@angular/core';\nimport { config, IConfig } from './config';\n\n@Injectable()\nexport class AswMaskApplierService {\n    public dropSpecialCharacters: IConfig['dropSpecialCharacters'];\n    public showTemplate!: IConfig['showTemplate'];\n    public clearIfNotMatch: IConfig['clearIfNotMatch'];\n    public maskExpression = '';\n    public maskSpecialCharacters: IConfig['specialCharacters'];\n    public maskAvailablePatterns: IConfig['patterns'];\n    public prefix: IConfig['prefix'];\n    public sufix: IConfig['sufix'];\n    public customPattern!: IConfig['patterns'];\n\n    private shift!: Set<number>;\n\n    public constructor(@Inject(config) protected config$: IConfig) {\n        this.shift = new Set();\n        this.maskSpecialCharacters = this.config$.specialCharacters;\n        this.maskAvailablePatterns = this.config$.patterns;\n        this.clearIfNotMatch = this.config$.clearIfNotMatch;\n        this.dropSpecialCharacters = this.config$.dropSpecialCharacters;\n        this.maskSpecialCharacters = this.config$.specialCharacters;\n        this.maskAvailablePatterns = this.config$.patterns;\n        this.prefix = this.config$.prefix;\n        this.sufix = this.config$.sufix;\n    }\n    // tslint:disable-next-line:no-any\n    public applyMaskWithPattern(inputValue: string, maskAndPattern: [string, IConfig['patterns']]): string {\n        const [mask, customPattern] = maskAndPattern;\n        this.customPattern = customPattern;\n        return this.applyMask(inputValue, mask);\n    }\n    public applyMask(inputValue: string, maskExpression: string, position: number = 0, cb: (...args: any[]) => any = () => {}): string {\n        if (inputValue === undefined || inputValue === null || maskExpression === undefined) {\n            return '';\n        }\n        let cursor = 0;\n        let result = ``;\n        let multi = false;\n\n        if (inputValue.slice(0, this.prefix.length) === this.prefix) {\n            inputValue = inputValue.slice(this.prefix.length, inputValue.length);\n        }\n\n        const inputArray: string[] = inputValue.toString().split('');\n\n        if (maskExpression === 'separator') {\n            if (inputValue.match('[a-z]|[A-Z]') || inputValue.match(/[-!$%^&*()_+|~=`{}\\[\\]:\";'<>?,.\\/]/)) {\n                inputValue = inputValue.substring(0, inputValue.length - 1);\n            }\n            const strForSep: string = inputValue.replace(/\\s/g, '');\n            result = this.separator(strForSep);\n            position = result.length + 1;\n            cursor = position;\n            const shiftStep: number = /\\*|\\?/g.test(maskExpression.slice(0, cursor)) ? inputArray.length : cursor;\n            this.shift.add(shiftStep + this.prefix.length || 0);\n        } else {\n            // tslint:disable-next-line\n            for (let i: number = 0, inputSymbol: string = inputArray[0]; i < inputArray.length; i++, inputSymbol = inputArray[i]) {\n                if (cursor === maskExpression.length) {\n                    break;\n                }\n                if (this._checkSymbolMask(inputSymbol, maskExpression[cursor]) && maskExpression[cursor + 1] === '?') {\n                    result += inputSymbol;\n                    cursor += 2;\n                } else if (maskExpression[cursor + 1] === '*' && multi && this._checkSymbolMask(inputSymbol, maskExpression[cursor + 2])) {\n                    result += inputSymbol;\n                    cursor += 3;\n                    multi = false;\n                } else if (this._checkSymbolMask(inputSymbol, maskExpression[cursor]) && maskExpression[cursor + 1] === '*') {\n                    result += inputSymbol;\n                    multi = true;\n                } else if (maskExpression[cursor + 1] === '?' && this._checkSymbolMask(inputSymbol, maskExpression[cursor + 2])) {\n                    result += inputSymbol;\n                    cursor += 3;\n                } else if (this._checkSymbolMask(inputSymbol, maskExpression[cursor])) {\n                    if (maskExpression[cursor] === 'H') {\n                        if (Number(inputSymbol) > 2) {\n                            result += 0;\n                            cursor += 1;\n                            const shiftStep: number = /\\*|\\?/g.test(maskExpression.slice(0, cursor)) ? inputArray.length : cursor;\n                            this.shift.add(shiftStep + this.prefix.length || 0);\n                            i--;\n                            continue;\n                        }\n                    }\n                    if (maskExpression[cursor] === 'h') {\n                        if (result === '2' && Number(inputSymbol) > 3) {\n                            continue;\n                        }\n                    }\n                    if (maskExpression[cursor] === 'm') {\n                        if (Number(inputSymbol) > 5) {\n                            result += 0;\n                            cursor += 1;\n                            const shiftStep: number = /\\*|\\?/g.test(maskExpression.slice(0, cursor)) ? inputArray.length : cursor;\n                            this.shift.add(shiftStep + this.prefix.length || 0);\n                            i--;\n                            continue;\n                        }\n                    }\n                    if (maskExpression[cursor] === 's') {\n                        if (Number(inputSymbol) > 5) {\n                            result += 0;\n                            cursor += 1;\n                            const shiftStep: number = /\\*|\\?/g.test(maskExpression.slice(0, cursor)) ? inputArray.length : cursor;\n                            this.shift.add(shiftStep + this.prefix.length || 0);\n                            i--;\n                            continue;\n                        }\n                    }\n                    result += inputSymbol;\n                    cursor++;\n                } else if (this._checkSymbolMask(inputSymbol, maskExpression[cursor])) {\n                    if (maskExpression[cursor] === 'd') {\n                        if (Number(inputSymbol) > 3) {\n                            result += 0;\n                            cursor += 1;\n                            const shiftStep: number = /\\*|\\?/g.test(maskExpression.slice(0, cursor)) ? inputArray.length : cursor;\n                            this.shift.add(shiftStep + this.prefix.length || 0);\n                            i--;\n                            continue;\n                        }\n                    }\n                    if (maskExpression[cursor - 1] === 'd') {\n                        if (Number(inputValue.slice(cursor - 1, cursor + 1)) > 31) {\n                            continue;\n                        }\n                    }\n                    if (maskExpression[cursor] === 'm') {\n                        if (Number(inputSymbol) > 1) {\n                            result += 0;\n                            cursor += 1;\n                            const shiftStep: number = /\\*|\\?/g.test(maskExpression.slice(0, cursor)) ? inputArray.length : cursor;\n                            this.shift.add(shiftStep + this.prefix.length || 0);\n                            i--;\n                            continue;\n                        }\n                    }\n                    if (maskExpression[cursor - 1] === 'm') {\n                        if (Number(inputValue.slice(cursor - 1, cursor + 1)) > 12) {\n                            continue;\n                        }\n                    }\n                    result += inputSymbol;\n                    cursor++;\n                } else if (this.maskSpecialCharacters.indexOf(maskExpression[cursor]) !== -1) {\n                    result += maskExpression[cursor];\n                    cursor++;\n                    const shiftStep: number = /\\*|\\?/g.test(maskExpression.slice(0, cursor)) ? inputArray.length : cursor;\n                    this.shift.add(shiftStep + this.prefix.length || 0);\n                    i--;\n                } else if (this.maskSpecialCharacters.indexOf(inputSymbol) > -1 && this.maskAvailablePatterns[maskExpression[cursor]] && this.maskAvailablePatterns[maskExpression[cursor]].optional) {\n                    cursor++;\n                    i--;\n                } else if (this.maskExpression[cursor + 1] === '*' && this._findSpecialChar(this.maskExpression[cursor + 2]) && this._findSpecialChar(inputSymbol) === this.maskExpression[cursor + 2] && multi) {\n                    cursor += 3;\n                    result += inputSymbol;\n                }\n            }\n        }\n        if (result.length + 1 === maskExpression.length && this.maskSpecialCharacters.indexOf(maskExpression[maskExpression.length - 1]) !== -1) {\n            result += maskExpression[maskExpression.length - 1];\n        }\n\n        let shift = 1;\n        let newPosition: number = position + 1;\n\n        while (this.shift.has(newPosition)) {\n            shift++;\n            newPosition++;\n        }\n\n        cb(this.shift.has(position) ? shift : 0);\n        let res = `${this.prefix}${result}`;\n        res = this.sufix ? `${this.prefix}${result}${this.sufix}` : `${this.prefix}${result}`;\n        if (result.length === 0) {\n            res = `${this.prefix}${result}`;\n        }\n        return res;\n    }\n    public _findSpecialChar(inputSymbol: string): undefined | string {\n        const symbol: string | undefined = this.maskSpecialCharacters.find((val: string) => val === inputSymbol);\n        return symbol;\n    }\n\n    private _checkSymbolMask(inputSymbol: string, maskSymbol: string): boolean {\n        this.maskAvailablePatterns = this.customPattern ? this.customPattern : this.maskAvailablePatterns;\n        return this.maskAvailablePatterns[maskSymbol] && this.maskAvailablePatterns[maskSymbol].pattern && this.maskAvailablePatterns[maskSymbol].pattern.test(inputSymbol);\n    }\n\n    private separator = (str: string) => {\n        str += '';\n        const x: string[] = str.split(' ');\n        let res: string = x[0];\n        const rgx: RegExp = /(\\d+)(\\d{3})/;\n        while (rgx.test(res)) {\n            res = res.replace(rgx, '$1' + ' ' + '$2');\n        }\n        return res;\n    };\n}\n","import { DOCUMENT } from '@angular/common';\nimport { ElementRef, Inject, Injectable, Renderer2 } from '@angular/core';\nimport { config, IConfig } from './config';\nimport { AswMaskApplierService } from './mask-applier.service';\n\n@Injectable()\nexport class AswMaskService extends AswMaskApplierService {\n    public maskExpression = '';\n    public isNumberValue = false;\n    public showMaskTyped = false;\n    public maskIsShown = '';\n    private formElement: HTMLInputElement;\n    public onChange = (_: any) => {};\n    public onTouch = () => {};\n    public constructor(\n        @Inject(DOCUMENT) private document: any,\n        @Inject(config) protected config$: IConfig,\n        private elementRef: ElementRef,\n        private renderer: Renderer2\n    ) {\n        super(config$);\n        this.formElement = this.elementRef.nativeElement;\n    }\n\n    public applyMask(inputValue: string, maskExpression: string, position: number = 0, cb: (...args: any[]) => any = () => {}): string {\n        this.maskIsShown = this.showMaskTyped ? this.maskExpression.replace(/\\w/g, '_') : '';\n        if (!inputValue && this.showMaskTyped) {\n            return this.prefix + this.maskIsShown;\n        }\n        const result: string = super.applyMask(inputValue, maskExpression, position, cb);\n        Array.isArray(this.dropSpecialCharacters)\n            ? this.onChange(this._removeMask(this._removeSufix(this._removePrefix(result)), this.dropSpecialCharacters))\n            : this.dropSpecialCharacters === true\n              ? this.onChange(this.isNumberValue ? Number(this._removeMask(this._removeSufix(this._removePrefix(result)), this.maskSpecialCharacters)) : this._removeMask(this._removeSufix(this._removePrefix(result)), this.maskSpecialCharacters))\n              : this.onChange(this._removeSufix(this._removePrefix(result)));\n        let ifMaskIsShown = '';\n        if (!this.showMaskTyped) {\n            return result;\n        }\n        const resLen: number = result.length;\n        const prefNmask: string = this.prefix + this.maskIsShown;\n        ifMaskIsShown = prefNmask.slice(resLen);\n        return result + ifMaskIsShown;\n    }\n\n    public applyValueChanges(position: number = 0, cb: (...args: any[]) => any = () => {}): void {\n        const maskedInput: string | number = this.applyMask(this.formElement.value, this.maskExpression, position, cb);\n        this.formElement.value = maskedInput;\n        if (this.formElement === this.document.activeElement) {\n            return;\n        }\n        this.clearIfNotMatchFn();\n    }\n\n    public showMaskInInput(): void {\n        if (this.showMaskTyped) {\n            this.maskIsShown = this.maskExpression.replace(/\\w/g, '_');\n        }\n    }\n\n    public clearIfNotMatchFn(): void {\n        if (this.clearIfNotMatch === true && this.maskExpression.length !== this.formElement.value.length) {\n            this.formElementProperty = ['value', ''];\n            this.applyMask(this.formElement.value, this.maskExpression);\n        }\n    }\n\n    public set formElementProperty([name, value]: [string, string | boolean]) {\n        this.renderer.setProperty(this.formElement, name, value);\n    }\n\n    private _removeMask(value: string, specialCharactersForRemove: string[]): string {\n        return value ? value.replace(this._regExpForRemove(specialCharactersForRemove), '') : value;\n    }\n\n    private _removePrefix(value: string): string {\n        if (!this.prefix) {\n            return value;\n        }\n        return value ? value.replace(this.prefix, '') : value;\n    }\n\n    private _removeSufix(value: string): string {\n        if (!this.sufix) {\n            return value;\n        }\n        return value ? value.replace(this.sufix, '') : value;\n    }\n\n    private _regExpForRemove(specialCharactersForRemove: string[]): RegExp {\n        return new RegExp(specialCharactersForRemove.map((item: string) => `\\\\${item}`).join('|'), 'gi');\n    }\n}\n","import { DOCUMENT } from '@angular/common';\nimport { Directive, forwardRef, HostListener, Inject, Input } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { IConfig } from './config';\nimport { AswMaskService } from './mask.service';\n\n@Directive({\n    selector: '[aswMask]',\n    providers: [\n        {\n            provide: NG_VALUE_ACCESSOR,\n            useExisting: forwardRef(() => AswMaskDirective),\n            multi: true\n        },\n        AswMaskService\n    ]\n})\nexport class AswMaskDirective implements ControlValueAccessor {\n    private maskValue!: string;\n    private inputValue!: string;\n    private position: number | null = null;\n    private start!: number;\n    private end!: number;\n    public onChange = (_: any) => {};\n    public onTouch = () => {};\n    public constructor(\n        @Inject(DOCUMENT) private document: any,\n        private maskService: AswMaskService\n    ) {}\n\n    @Input('aswMask')\n    public set maskExpression(value: string) {\n        this.maskValue = value || '';\n        if (!this.maskValue) {\n            return;\n        }\n        this.maskService.maskExpression = this._repeatPatternSymbols(this.maskValue);\n        this.maskService.formElementProperty = ['value', this.maskService.applyMask(this.inputValue, this.maskService.maskExpression)];\n    }\n\n    @Input()\n    public set specialCharacters(value: IConfig['specialCharacters']) {\n        if (!value || !Array.isArray(value) || (Array.isArray(value) && !value.length)) {\n            return;\n        }\n        this.maskService.maskSpecialCharacters = value;\n    }\n\n    @Input()\n    public set patterns(value: IConfig['patterns']) {\n        if (!value) {\n            return;\n        }\n        this.maskService.maskAvailablePatterns = value;\n    }\n\n    @Input()\n    public set prefix(value: IConfig['prefix']) {\n        if (!value) {\n            return;\n        }\n        this.maskService.prefix = value;\n    }\n\n    @Input()\n    public set sufix(value: IConfig['sufix']) {\n        if (!value) {\n            return;\n        }\n        this.maskService.sufix = value;\n    }\n\n    @Input()\n    public set dropSpecialCharacters(value: IConfig['dropSpecialCharacters']) {\n        this.maskService.dropSpecialCharacters = value;\n    }\n\n    @Input()\n    public set showMaskTyped(value: IConfig['showMaskTyped']) {\n        if (!value) {\n            return;\n        }\n        this.maskService.showMaskTyped = value;\n    }\n\n    @Input()\n    public set showTemplate(value: IConfig['showTemplate']) {\n        this.maskService.showTemplate = value;\n    }\n\n    @Input()\n    public set clearIfNotMatch(value: IConfig['clearIfNotMatch']) {\n        this.maskService.clearIfNotMatch = value;\n    }\n\n    @HostListener('input', ['$event'])\n    public onInput(e: KeyboardEvent): void {\n        const el: HTMLInputElement = e.target as HTMLInputElement;\n        this.inputValue = el.value;\n        if (!this.maskValue) {\n            this.onChange(el.value);\n            return;\n        }\n        const position: number = (el.selectionStart as number) === 1 ? (el.selectionStart as number) + this.maskService.prefix.length : (el.selectionStart as number);\n        let caretShift = 0;\n        this.maskService.applyValueChanges(position, (shift: number) => (caretShift = shift));\n        // only set the selection if the element is active\n        if (this.document.activeElement !== el) {\n            return;\n        }\n        el.selectionStart = el.selectionEnd =\n            this.position !== null\n                ? this.position\n                : position +\n                  // tslint:disable-next-line\n                  ((e as any).inputType === 'deleteContentBackward' ? 0 : caretShift);\n        this.position = null;\n    }\n\n    @HostListener('blur')\n    public onBlur(): void {\n        this.maskService.clearIfNotMatchFn();\n        this.onTouch();\n    }\n\n    @HostListener('click', ['$event'])\n    public onFocus(e: MouseEvent | KeyboardEvent): void {\n        const el: HTMLInputElement = e.target as HTMLInputElement;\n        if (\n            el !== null &&\n            el.selectionStart !== null &&\n            el.selectionStart === el.selectionEnd &&\n            el.selectionStart > this.maskService.prefix.length &&\n            // tslint:disable-next-line\n            (e as any).keyCode !== 38\n        ) {\n            return;\n        }\n        if (this.maskService.showMaskTyped) {\n            this.maskService.maskIsShown = this.maskService.maskExpression.replace(/[0-9]/g, '_');\n        }\n        el.value = !el.value || el.value === this.maskService.prefix ? this.maskService.prefix + this.maskService.maskIsShown : el.value;\n        /** fix of cursor position with prefix when mouse click occur */\n        if (((el.selectionStart as number) || (el.selectionEnd as number)) <= this.maskService.prefix.length) {\n            el.selectionStart = this.maskService.prefix.length;\n            return;\n        }\n    }\n\n    @HostListener('keydown', ['$event'])\n    public a(e: KeyboardEvent): void {\n        const el: HTMLInputElement = e.target as HTMLInputElement;\n        if (e.keyCode === 38) {\n            e.preventDefault();\n        }\n        if (e.keyCode === 37 || e.keyCode === 8) {\n            if ((el.selectionStart as number) <= this.maskService.prefix.length && (el.selectionEnd as number) <= this.maskService.prefix.length) {\n                e.preventDefault();\n            }\n            this.onFocus(e);\n            if (e.keyCode === 8 && el.selectionStart === 0 && el.selectionEnd === el.value.length) {\n                el.value = this.maskService.prefix;\n                this.position = this.maskService.prefix ? this.maskService.prefix.length : 1;\n                this.onInput(e);\n            }\n        }\n    }\n\n    @HostListener('paste')\n    public onPaste(): void {\n        this.position = Number.MAX_SAFE_INTEGER;\n    }\n\n    /** It writes the value in the input */\n    public async writeValue(inputValue: string): Promise<void> {\n        if (inputValue === undefined) {\n            inputValue = '';\n        }\n        if (typeof inputValue === 'number') {\n            inputValue = String(inputValue);\n            this.maskService.isNumberValue = true;\n        }\n        (inputValue && this.maskService.maskExpression) || (this.maskService.maskExpression && (this.maskService.prefix || this.maskService.showMaskTyped))\n            ? (this.maskService.formElementProperty = ['value', this.maskService.applyMask(inputValue, this.maskService.maskExpression)])\n            : (this.maskService.formElementProperty = ['value', inputValue]);\n        this.inputValue = inputValue;\n    }\n\n    // tslint:disable-next-line\n    public registerOnChange(fn: any): void {\n        this.onChange = fn;\n        this.maskService.onChange = this.onChange;\n    }\n\n    // tslint:disable-next-line\n    public registerOnTouched(fn: any): void {\n        this.onTouch = fn;\n    }\n\n    /** It disables the input element */\n    public setDisabledState(isDisabled: boolean): void {\n        this.maskService.formElementProperty = ['disabled', isDisabled];\n    }\n    private _repeatPatternSymbols(maskExp: string): string {\n        return (\n            (maskExp.match(/{[0-9]+}/) &&\n                maskExp.split('').reduce((accum: string, currval: string, index: number): string => {\n                    this.start = currval === '{' ? index : this.start;\n\n                    if (currval !== '}') {\n                        return this.maskService._findSpecialChar(currval) ? accum + currval : accum;\n                    }\n                    this.end = index;\n                    const repeatNumber: number = Number(maskExp.slice(this.start + 1, this.end));\n                    const repaceWith: string = new Array(repeatNumber + 1).join(maskExp[this.start - 1]);\n                    return accum + repaceWith;\n                }, '')) ||\n            maskExp\n        );\n    }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { IConfig } from './config';\nimport { AswMaskApplierService } from './mask-applier.service';\n\n@Pipe({\n    name: 'aswMask',\n    pure: true\n})\nexport class AswMaskPipe implements PipeTransform {\n    public constructor(private maskService: AswMaskApplierService) {}\n\n    public transform(value: string | number, mask: string | [string, IConfig['patterns']]): string {\n        if (!value) {\n            return '';\n        }\n        if (typeof mask === 'string') {\n            return this.maskService.applyMask(`${value}`, mask);\n        }\n        return this.maskService.applyMaskWithPattern(`${value}`, mask);\n    }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { config, initialConfig, INITIAL_CONFIG, NEW_CONFIG, optionsConfig } from './config';\nimport { AswMaskApplierService } from './mask-applier.service';\nimport { AswMaskDirective } from './mask.directive';\nimport { AswMaskPipe } from './mask.pipe';\n\n@NgModule({\n    providers: [AswMaskApplierService],\n    exports: [AswMaskDirective, AswMaskPipe],\n    declarations: [AswMaskDirective, AswMaskPipe]\n})\nexport class AswMaskModule {\n    public static forRoot(configValue?: optionsConfig): ModuleWithProviders<AswMaskModule> {\n        return {\n            ngModule: AswMaskModule,\n            providers: [\n                {\n                    provide: NEW_CONFIG,\n                    useValue: configValue\n                },\n                {\n                    provide: INITIAL_CONFIG,\n                    useValue: initialConfig\n                },\n                {\n                    provide: config,\n                    useFactory: _configFactory,\n                    deps: [INITIAL_CONFIG, NEW_CONFIG]\n                }\n            ]\n        };\n    }\n    public static forChild(): ModuleWithProviders<AswMaskModule> {\n        return {\n            ngModule: AswMaskModule\n        };\n    }\n}\n\n/**\n * @internal\n */\nexport function _configFactory(initConfig: optionsConfig, configValue: optionsConfig | (() => optionsConfig)): optionsConfig {\n    return configValue instanceof Function ? { ...initConfig, ...configValue() } : { ...initConfig, ...configValue };\n}\n","import { DateAdapter } from '@angular/material/core';\n\nexport abstract class DatetimeAdapter<D> extends DateAdapter<D> {\n    constructor(protected _delegate: DateAdapter<D>) {\n        super();\n    }\n\n    abstract getHour(date: D): number;\n\n    abstract getMinute(date: D): number;\n\n    abstract getFirstDateOfMonth(date: D): D;\n\n    abstract isInNextMonth(startDate: D, endDate: D): boolean;\n\n    abstract getHourNames(): string[];\n\n    abstract getMinuteNames(): string[];\n\n    abstract addCalendarHours(date: D, months: number): D;\n\n    abstract addCalendarMinutes(date: D, minutes: number): D;\n\n    abstract createDatetime(year: number, month: number, date: number, hour: number, minute: number): D;\n\n    getValidDateOrNull(obj: any): D | null {\n        return this.isDateInstance(obj) && this.isValid(obj) ? obj : null;\n    }\n\n    compareDatetime(first: D, second: D, respectMinutePart: boolean = true): number | boolean {\n        return this.compareDate(first, second) || this.getHour(first) - this.getHour(second) || (respectMinutePart && this.getMinute(first) - this.getMinute(second));\n    }\n\n    sameDatetime(first: D | null, second: D | null): boolean {\n        if (first && second) {\n            const firstValid = this.isValid(first);\n            const secondValid = this.isValid(second);\n            if (firstValid && secondValid) {\n                return !this.compareDatetime(first, second);\n            }\n            return firstValid === secondValid;\n        }\n        return first === second;\n    }\n\n    sameYear(first: D, second: D) {\n        return first && second && this.getYear(first) === this.getYear(second);\n    }\n\n    sameDay(first: D, second: D) {\n        return first && second && this.getDate(first) === this.getDate(second) && this.sameMonthAndYear(first, second);\n    }\n\n    sameHour(first: D, second: D) {\n        return first && second && this.getHour(first) === this.getHour(second) && this.sameDay(first, second);\n    }\n\n    sameMinute(first: D, second: D) {\n        return first && second && this.getMinute(first) === this.getMinute(second) && this.sameHour(first, second);\n    }\n\n    sameMonthAndYear(first: D | null, second: D | null): boolean {\n        if (first && second) {\n            const firstValid = this.isValid(first);\n            const secondValid = this.isValid(second);\n            if (firstValid && secondValid) {\n                return !(this.getYear(first) - this.getYear(second) || this.getMonth(first) - this.getMonth(second));\n            }\n            return firstValid === secondValid;\n        }\n        return first === second;\n    }\n\n    // delegate\n    clone(date: D): D {\n        return this._delegate.clone(date);\n    }\n\n    addCalendarYears(date: D, years: number): D {\n        return this._delegate.addCalendarYears(date, years);\n    }\n\n    addCalendarMonths(date: D, months: number): D {\n        return this._delegate.addCalendarMonths(date, months);\n    }\n\n    addCalendarDays(date: D, days: number): D {\n        return this._delegate.addCalendarDays(date, days);\n    }\n\n    getYear(date: D): number {\n        return this._delegate.getYear(date);\n    }\n\n    getMonth(date: D): number {\n        return this._delegate.getMonth(date);\n    }\n\n    getDate(date: D): number {\n        return this._delegate.getDate(date);\n    }\n\n    getDayOfWeek(date: D): number {\n        return this._delegate.getDayOfWeek(date);\n    }\n\n    getMonthNames(style: any): string[] {\n        return this._delegate.getMonthNames(style);\n    }\n\n    getDateNames(): string[] {\n        return this._delegate.getDateNames();\n    }\n\n    getDayOfWeekNames(style: any): string[] {\n        return this._delegate.getDayOfWeekNames(style);\n    }\n\n    getYearName(date: D): string {\n        return this._delegate.getYearName(date);\n    }\n\n    getFirstDayOfWeek(): number {\n        return this._delegate.getFirstDayOfWeek();\n    }\n\n    getNumDaysInMonth(date: D): number {\n        return this._delegate.getNumDaysInMonth(date);\n    }\n\n    createDate(year: number, month: number, date: number): D {\n        return this._delegate.createDate(year, month, date);\n    }\n\n    today(): D {\n        return this._delegate.today();\n    }\n\n    parse(value: any, parseFormat: any): D | null {\n        return this._delegate.parse(value, parseFormat);\n    }\n\n    format(date: D, displayFormat: any): string {\n        return this._delegate.format(date, displayFormat);\n    }\n\n    toIso8601(date: D): string {\n        return this._delegate.toIso8601(date);\n    }\n\n    isDateInstance(obj: any): boolean {\n        return this._delegate.isDateInstance(obj);\n    }\n\n    isValid(date: D): boolean {\n        return this._delegate.isValid(date);\n    }\n\n    invalid(): D {\n        return this._delegate.invalid();\n    }\n\n    clampDate(date: D, min?: D | null, max?: D | null): D {\n        if (min && (this.compareDatetime(date, min) as number) < 0) {\n            return min;\n        }\n        if (max && (this.compareDatetime(date, max) as number) > 0) {\n            return max;\n        }\n        return date;\n    }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport interface AswDatetimeFormats {\n    parse: {\n        dateInput?: any;\n        monthInput?: any;\n        yearInput?: any;\n        timeInput?: any;\n        datetimeInput?: any;\n    };\n    display: {\n        dateInput: any;\n        monthInput: any;\n        yearInput?: any;\n        timeInput: any;\n        datetimeInput: any;\n        monthYearLabel: any;\n        dateA11yLabel: any;\n        monthYearA11yLabel: any;\n        popupHeaderDateLabel: any;\n    };\n}\n\nexport const ASW_DATETIME_FORMATS = new InjectionToken<AswDatetimeFormats>('asw-datetime-formats');\n","import { Inject, Injectable, Optional } from '@angular/core';\nimport { DateAdapter, MAT_DATE_LOCALE } from '@angular/material/core';\nimport { DatetimeAdapter } from './datetime-adapter';\n\n/** The default hour names to use if Intl API is not available. */\nconst DEFAULT_HOUR_NAMES = range(24, (i) => String(i));\n\n/** The default minute names to use if Intl API is not available. */\nconst DEFAULT_MINUTE_NAMES = range(60, (i) => String(i));\n\nfunction range<T>(length: number, valueFunction: (index: number) => T): T[] {\n    const valuesArray = Array(length);\n    for (let i = 0; i < length; i++) {\n        valuesArray[i] = valueFunction(i);\n    }\n    return valuesArray;\n}\n\n@Injectable()\nexport class NativeDatetimeAdapter extends DatetimeAdapter<Date> {\n    constructor(@Optional() @Inject(MAT_DATE_LOCALE) matDateLocale: string, _delegate: DateAdapter<Date>) {\n        super(_delegate);\n        this.setLocale(matDateLocale);\n    }\n\n    clone(date: Date): Date {\n        return this.createDatetime(this.getYear(date), this.getMonth(date), this.getDate(date), this.getHour(date), this.getMinute(date));\n    }\n\n    getHour(date: Date): number {\n        return date.getHours();\n    }\n\n    getMinute(date: Date): number {\n        return date.getMinutes();\n    }\n\n    isInNextMonth(startDate: Date, endDate: Date): boolean {\n        const nextMonth = this.getDateInNextMonth(startDate);\n        return this.sameMonthAndYear(nextMonth, endDate);\n    }\n\n    createDatetime(year: number, month: number, date: number, hour: number, minute: number): Date {\n        // Check for invalid month and date (except upper bound on date which we have to check after\n        // creating the Date).\n        if (month < 0 || month > 11) {\n            throw Error(`Invalid month index \"${month}\". Month index has to be between 0 and 11.`);\n        }\n\n        if (date < 1) {\n            throw Error(`Invalid date \"${date}\". Date has to be greater than 0.`);\n        }\n\n        if (hour < 0 || hour > 23) {\n            throw Error(`Invalid hour \"${hour}\". Hour has to be between 0 and 23.`);\n        }\n\n        if (minute < 0 || minute > 59) {\n            throw Error(`Invalid minute \"${minute}\". Minute has to be between 0 and 59.`);\n        }\n\n        const result = this._createDateWithOverflow(year, month, date, hour, minute);\n\n        // Check that the date wasn't above the upper bound for the month, causing the month to overflow\n        if (result.getMonth() !== month) {\n            throw Error(`Invalid date \"${date}\" for month with index \"${month}\".`);\n        }\n\n        return result;\n    }\n\n    getFirstDateOfMonth(date: Date): Date {\n        const result = new Date();\n        result.setFullYear(date.getFullYear(), date.getMonth(), 1);\n        return result;\n    }\n\n    getHourNames(): string[] {\n        return DEFAULT_HOUR_NAMES;\n    }\n\n    getMinuteNames(): string[] {\n        return DEFAULT_MINUTE_NAMES;\n    }\n\n    addCalendarYears(date: Date, years: number): Date {\n        return this.addCalendarMonths(date, years * 12);\n    }\n\n    addCalendarMonths(date: Date, months: number): Date {\n        let newDate = this._createDateWithOverflow(this.getYear(date), this.getMonth(date) + months, this.getDate(date), this.getHour(date), this.getMinute(date));\n\n        // It's possible to wind up in the wrong month if the original month has more days than the new\n        // month. In this case we want to go to the last day of the desired month.\n        // Note: the additional + 12 % 12 ensures we end up with a positive number, since JS % doesn't\n        // guarantee this.\n        if (this.getMonth(newDate) !== (((this.getMonth(date) + months) % 12) + 12) % 12) {\n            newDate = this._createDateWithOverflow(this.getYear(newDate), this.getMonth(newDate), 0, this.getHour(date), this.getMinute(date));\n        }\n\n        return newDate;\n    }\n\n    addCalendarDays(date: Date, days: number): Date {\n        return this._createDateWithOverflow(this.getYear(date), this.getMonth(date), this.getDate(date) + days, this.getHour(date), this.getMinute(date));\n    }\n\n    addCalendarHours(date: Date, hours: number): Date {\n        return this._createDateWithOverflow(this.getYear(date), this.getMonth(date), this.getDate(date), this.getHour(date) + hours, this.getMinute(date));\n    }\n\n    addCalendarMinutes(date: Date, minutes: number): Date {\n        return this._createDateWithOverflow(this.getYear(date), this.getMonth(date), this.getDate(date), this.getHour(date), this.getMinute(date) + minutes);\n    }\n\n    toIso8601(date: Date): string {\n        return super.toIso8601(date) + 'T' + [this._2digit(date.getUTCHours()), this._2digit(date.getUTCMinutes())].join(':');\n    }\n\n    private getDateInNextMonth(date: Date) {\n        return new Date(date.getFullYear(), date.getMonth() + 1, 1, date.getHours(), date.getMinutes());\n    }\n\n    /**\n     * Strip out unicode LTR and RTL characters. Edge and IE insert these into formatted dates while\n     * other browsers do not. We remove them to make output consistent and because they interfere with\n     * date parsing.\n     * @param str The string to strip direction characters from.\n     * @returns The stripped string.\n     */\n    private _stripDirectionalityCharacters(str: string) {\n        return str.replace(/[\\u200e\\u200f]/g, '');\n    }\n\n    /**\n     * Pads a number to make it two digits.\n     * @param n The number to pad.\n     * @returns The padded number.\n     */\n    private _2digit(n: number) {\n        return ('00' + n).slice(-2);\n    }\n\n    /** Creates a date but allows the month and date to overflow. */\n    private _createDateWithOverflow(year: number, month: number, date: number, hours: number, minutes: number) {\n        const result = new Date(year, month, date, hours, minutes);\n\n        // We need to correct for the fact that JS native Date treats years in range [0, 99] as\n        // abbreviations for 19xx.\n        if (year >= 0 && year < 100) {\n            result.setFullYear(this.getYear(result) - 1900);\n        }\n        return result;\n    }\n}\n","import { AswDatetimeFormats } from './datetime-formats';\n\nexport const ASW_NATIVE_DATETIME_FORMATS: AswDatetimeFormats = {\n    parse: {},\n    display: {\n        dateInput: { year: 'numeric', month: '2-digit', day: '2-digit' },\n        monthInput: { month: 'long' },\n        datetimeInput: {\n            year: 'numeric',\n            month: '2-digit',\n            day: '2-digit',\n            hour: '2-digit',\n            minute: '2-digit'\n        },\n        timeInput: { hour: '2-digit', minute: '2-digit' },\n        monthYearLabel: { year: 'numeric', month: 'short' },\n        dateA11yLabel: { year: 'numeric', month: 'long', day: 'numeric' },\n        monthYearA11yLabel: { year: 'numeric', month: 'long' },\n        popupHeaderDateLabel: { weekday: 'short', month: 'short', day: '2-digit' }\n    }\n};\n","import { NgModule } from '@angular/core';\nimport { MatNativeDateModule, NativeDateModule } from '@angular/material/core';\nimport { DatetimeAdapter } from './datetime-adapter';\nimport { ASW_DATETIME_FORMATS } from './datetime-formats';\nimport { NativeDatetimeAdapter } from './native-datetime-adapter';\nimport { ASW_NATIVE_DATETIME_FORMATS } from './native-datetime-formats';\n\n@NgModule({\n    imports: [NativeDateModule],\n    providers: [\n        {\n            provide: DatetimeAdapter,\n            useClass: NativeDatetimeAdapter\n        }\n    ]\n})\nexport class NativeDatetimeModule {}\n\n@NgModule({\n    imports: [NativeDatetimeModule, MatNativeDateModule],\n    providers: [{ provide: ASW_DATETIME_FORMATS, useValue: ASW_NATIVE_DATETIME_FORMATS }]\n})\nexport class AswNativeDatetimeModule {}\n","import { Inject, Injectable, Optional } from '@angular/core';\nimport { DateAdapter, MAT_DATE_LOCALE } from '@angular/material/core';\nimport { MAT_MOMENT_DATE_ADAPTER_OPTIONS, MatMomentDateAdapterOptions } from '@angular/material-moment-adapter';\nimport { DatetimeAdapter } from './../datetime/datetime-adapter';\n\nimport * as _moment from 'moment';\nimport { Moment } from 'moment';\n\nconst moment = 'default' in _moment ? (_moment as any).default : _moment;\n\nfunction range<T>(length: number, valueFunction: (index: number) => T): T[] {\n    const valuesArray = Array(length);\n    for (let i = 0; i < length; i++) {\n        valuesArray[i] = valueFunction(i);\n    }\n    return valuesArray;\n}\n\n@Injectable()\nexport class MomentDatetimeAdapter extends DatetimeAdapter<Moment> {\n    private _localeData!: {\n        firstDayOfWeek: number;\n        longMonths: string[];\n        shortMonths: string[];\n        dates: string[];\n        hours: string[];\n        minutes: string[];\n        longDaysOfWeek: string[];\n        shortDaysOfWeek: string[];\n        narrowDaysOfWeek: string[];\n    };\n\n    private _useUtc = false;\n\n    constructor(\n        @Optional() @Inject(MAT_DATE_LOCALE) matDateLocale: string,\n        @Optional()\n        @Inject(MAT_MOMENT_DATE_ADAPTER_OPTIONS)\n        matMomentAdapterOptions: MatMomentDateAdapterOptions,\n        _delegate: DateAdapter<Moment>\n    ) {\n        super(_delegate);\n        this.setLocale(matDateLocale || moment.locale());\n        this._useUtc = matMomentAdapterOptions.useUtc!;\n    }\n\n    setLocale(locale: string) {\n        super.setLocale(locale);\n\n        const momentLocaleData = moment.localeData(locale);\n        this._localeData = {\n            firstDayOfWeek: momentLocaleData.firstDayOfWeek(),\n            longMonths: momentLocaleData.months(),\n            shortMonths: momentLocaleData.monthsShort(),\n            dates: range(31, (i) => super.createDate(2017, 0, i + 1).format('D')),\n            hours: range(24, (i) => this.createDatetime(2017, 0, 1, i, 0).format('H')),\n            minutes: range(60, (i) => this.createDatetime(2017, 0, 1, 1, i).format('m')),\n            longDaysOfWeek: momentLocaleData.weekdays(),\n            shortDaysOfWeek: momentLocaleData.weekdaysShort(),\n            narrowDaysOfWeek: momentLocaleData.weekdaysMin()\n        };\n    }\n\n    getHour(date: Moment): number {\n        return super.clone(date).hour();\n    }\n\n    getMinute(date: Moment): number {\n        return super.clone(date).minute();\n    }\n\n    isInNextMonth(startDate: Moment, endDate: Moment): boolean {\n        const nextMonth = this.getDateInNextMonth(startDate);\n        return super.sameMonthAndYear(nextMonth, endDate);\n    }\n\n    createDatetime(year: number, month: number, date: number, hour: number, minute: number): Moment {\n        // Check for invalid month and date (except upper bound on date which we have to check after\n        // creating the Date).\n        if (month < 0 || month > 11) {\n            throw Error(`Invalid month index \"${month}\". Month index has to be between 0 and 11.`);\n        }\n\n        if (date < 1) {\n            throw Error(`Invalid date \"${date}\". Date has to be greater than 0.`);\n        }\n\n        if (hour < 0 || hour > 23) {\n            throw Error(`Invalid hour \"${hour}\". Hour has to be between 0 and 23.`);\n        }\n\n        if (minute < 0 || minute > 59) {\n            throw Error(`Invalid minute \"${minute}\". Minute has to be between 0 and 59.`);\n        }\n\n        let result;\n        if (this._useUtc) {\n            result = moment.utc({ year, month, date, hour, minute });\n        } else {\n            result = moment({ year, month, date, hour, minute });\n        }\n\n        // If the result isn't valid, the date must have been out of bounds for this month.\n        if (!result.isValid()) {\n            throw Error(`Invalid date \"${date}\" for month with index \"${month}\".`);\n        }\n\n        return result.locale(this.locale);\n    }\n\n    getFirstDateOfMonth(date: Moment): Moment {\n        return super.clone(date).startOf('month');\n    }\n\n    getHourNames(): string[] {\n        return this._localeData.hours;\n    }\n\n    getMinuteNames(): string[] {\n        return this._localeData.minutes;\n    }\n\n    addCalendarHours(date: Moment, hours: number): Moment {\n        return super.clone(date).add({ hours });\n    }\n\n    addCalendarMinutes(date: Moment, minutes: number): Moment {\n        return super.clone(date).add({ minutes });\n    }\n\n    deserialize(value: any): Moment | null {\n        return this._delegate.deserialize(value);\n    }\n\n    private getDateInNextMonth(date: Moment) {\n        return super.clone(date).date(1).add({ month: 1 });\n    }\n}\n","import { AswDatetimeFormats } from './../datetime/datetime-formats';\n\nexport const ASW_MOMENT_DATETIME_FORMATS: AswDatetimeFormats = {\n    parse: {\n        dateInput: 'L',\n        monthInput: 'MMMM',\n        yearInput: 'YYYY',\n        datetimeInput: 'L LT',\n        timeInput: 'LT'\n    },\n    display: {\n        dateInput: 'L',\n        monthInput: 'MMMM',\n        yearInput: 'YYYY',\n        datetimeInput: 'L LT',\n        timeInput: 'LT',\n        monthYearLabel: 'MMM YYYY',\n        dateA11yLabel: 'LL',\n        monthYearA11yLabel: 'MMMM YYYY',\n        popupHeaderDateLabel: 'ddd, DD MMM'\n    }\n};\n","import { NgModule } from '@angular/core';\nimport { MatMomentDateModule, MomentDateModule } from '@angular/material-moment-adapter';\nimport { DatetimeAdapter } from '../datetime/datetime-adapter';\nimport { ASW_DATETIME_FORMATS } from '../datetime/datetime-formats';\nimport { MomentDatetimeAdapter } from './moment-datetime-adapter';\nimport { ASW_MOMENT_DATETIME_FORMATS } from './moment-datetime-formats';\n\nexport * from './moment-datetime-adapter';\nexport * from './moment-datetime-formats';\n\n@NgModule({\n    imports: [MomentDateModule],\n    providers: [\n        {\n            provide: DatetimeAdapter,\n            useClass: MomentDatetimeAdapter\n        }\n    ]\n})\nexport class MomentDatetimeModule {}\n\n@NgModule({\n    imports: [MatMomentDateModule, MomentDatetimeModule],\n    providers: [{ provide: ASW_DATETIME_FORMATS, useValue: ASW_MOMENT_DATETIME_FORMATS }]\n})\nexport class AswMomentDatetimeModule {}\n\n/**\n * @deprecated Use `AswMomentDatetimeModule` instead.\n */\nexport const MatMomentDatetimeModule = AswMomentDatetimeModule;\n","/**\n * @license\n * Copyright ASW (A Software World) 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\n */\n\nexport * from './constant/constants';\nexport * from './constant/icons';\nexport * from './service/notification.service';\nexport * from './material.module';\nexport * from './api-communicator/api-params/api-params';\nexport * from './api-communicator/api-communicator';\nexport * from './api-communicator/my-workspace/my-workspace';\nexport * from './api-communicator/api-communicator.module';\nexport * from './pipe/safe-html.pipe';\nexport * from './pipe/pipe.module';\nexport * from './directive/numbers-only.directive';\nexport * from './directive/text-editable.directive';\nexport * from './directive/select-search-clear.directive';\nexport * from './directive/select-search-no-entries-found.directive';\nexport * from './directive/directive.module';\n\nexport * from './mask/config';\nexport * from './mask/mask-applier.service';\nexport * from './mask/mask.directive';\nexport * from './mask/mask.module';\nexport * from './mask/mask.pipe';\nexport * from './mask/mask.service';\nexport * from './service/api.service';\n\nexport { NativeDatetimeModule, AswNativeDatetimeModule } from './datetime/datetime.module';\nexport { DatetimeAdapter } from './datetime/datetime-adapter';\nexport { AswDatetimeFormats, ASW_DATETIME_FORMATS } from './datetime/datetime-formats';\nexport { NativeDatetimeAdapter } from './datetime/native-datetime-adapter';\nexport { ASW_NATIVE_DATETIME_FORMATS } from './datetime/native-datetime-formats';\nexport { MomentDatetimeAdapter } from './adapter/moment-datetime-adapter';\nexport { ASW_MOMENT_DATETIME_FORMATS } from './adapter/moment-datetime-formats';\nexport { AswMomentDatetimeModule } from './adapter/moment-datetime.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1","i2.AswApiService","i5","i17.AswTextEditable","i18","i19.AswSafeHtmlPipe","i3","i4","i2.AswApiParams","i3.AswMyWorkspace","i1.AswMaskService","i1.AswMaskApplierService","range"],"mappings":"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"}