{"version":3,"file":"snapPublishPageCompression.js","mappings":"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EC,GAAuE,KACvEC,GAAuE,KACvEC,GAAuE,KACvEC,GAAuE,KACvEC,GAAuE,KACvEC,GAAuE,KACvEC,GAAuE,KACvEC,GAAuE,KACvEC,GAAuE,KACvEC,GAAuE,KACvEC,GAAuE,KACvEC,GAAuE,KACvEC,GAAuE,KACvEC,GAAuE,KACvEC,GAAuE,KACvEC,GAAuE,KACvEC,GAAuE,KACvEC,GAAuE,KACvEC,GAAuE,KACvEC,GAAuE,KACvEC,GAAuE,KACvEC,GAAuE,KACvEC,GAAuE,KACvEC,GAAuE,KACvEC,GAAuE,KACvEC,GAAuE,KACvEC,GAAuE,KACvEC,GAAuE,KACvEC,GAAuE,KACvEC,GAAuE,KACvEC,GAAuE,KACvEC,GAAuE,KACvEC,GAAuE,KACvEC,GAAuE,KACvEC,GAAuE,KACvEC,GAAuE,KACvEC,GAAuE,KACvEC,GAAuE,KACvEC,GAAuE,KACvEC,GAAuE,KACvEC,GAAuE,KACvEC,GAAuE,KACvEC,GAAuE,KACvEC,GAAuE,KACvEC,GAAuE,KACvEC,GAAuE,KACvEC,GAAuE,KACvEC,GAAuE,KACvEC,GAAuE,KACvEC,GAAuE,KACvEC,GAAuE,KACvEC,GAAuE,KACvEC,GAAuE,KACvEC,GAAuE,KACvEC,GAAuE,KACvEC,GAAuE,KACvEC,GAAuE,KACvEC,GAAuE,KACvEC,GAAuE,KACvEC,GAAuE,KACvEC,GAAuE,KACvEC,GAAuE,KACvEC,GAAuE,KACvEC,GAAuE,KAEvEC,GAAuE,KACvEC,GAAuE,KACvEC,GAAuE,KACvEC,GAAuE,KACvEC,GAAuE,KACvEC,GAAuE,KACvEC,GAAuE,KACvEC,GAAuE,KACvEC,GAAuE,KACvEC,GAAuE,KACvEC,GAAuE,KACvEC,GAAuE,KAEvEC,GAAuE,KACvEC,GAAuE,KACvEC,GAAuE,KACvEC,GAAuE,KACvEC,GAAuE,KACvEC,GAAuE,KACvEC,GAAuE,KACvEC,GAAuE,KACvEC,GAAuE,KACvEC,GAAuE,KACvEC,GAAuE,KACvEC,GAAuE,KACvEC,GAAuE,KACvEC,GAAuE,KACvEC,GAAuE,KACvEC,GAAuE,KAEvEC,G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","sources":["webpack://build/../es6/Constants.ts","webpack://build/../es6/DataStore/DS/DSTree.js","webpack://build/../es6/BrowserEvents/Keyboard/KeyEventContextTree.js","webpack://build/../es6/BrowserEvents/Keyboard/KeyContextMapping.js","webpack://build/../es6/BrowserEvents/Keyboard/KeyListener.js","webpack://build/../es6/Constants/AddFieldConstants.js","webpack://build/../es6/Constants/CssClassNamesForUI.js","webpack://build/../es6/Constants/FieldTypes.js","webpack://build/../es6/Constants/FormulaReturnTypes.js","webpack://build/../es6/Constants/KeyCodes.js","webpack://build/../es6/Constants/EventNames.js","webpack://build/../es6/Constants/RegexValidator.js","webpack://build/../es6/Importer.js","webpack://build/../es6/Locale.js","webpack://build/../es6/Parser/Pubsub.js","webpack://build/../es6/DataStore/DS/DSMap.js","webpack://build/../es6/State/LinkedRecordID.js","webpack://build/../es6/State/StateView.js","webpack://build/../es6/State/StateTable.js","webpack://build/../es6/State/StateBase.js","webpack://build/../es6/Constants/SelectionViewType.js","webpack://build/../es6/State/AbstractSelection.js","webpack://build/../es6/State/CalenderViewSelection.js","webpack://build/../es6/State/GalleryViewSelection.js","webpack://build/../es6/Selection/SelectionState.js","webpack://build/../es6/State/GridViewSelection.js","webpack://build/../es6/State/KanbanState.js","webpack://build/../es6/State/ViewState.js","webpack://build/../es6/State/WorkspaceState.js","webpack://build/../es6/State/LayoutState.js","webpack://build/../es6/TemplatesForAll.js","webpack://build/../es6/Utility/EventEmitter.js","webpack://build/../es6/Utility/WDUtil.js","webpack://build/../es6/_auxillaries/DeepFreeze.ts","webpack://build/../es6/Constants/ProductThemeColors.ts","webpack://build/../es6/DateComponentEncoderDecoder.ts","webpack://build/../es6/_auxillaries/Message.ts","webpack://build/../es6/Utility/LinkChipCountUtility.ts","webpack://build/../es6/Utility/LinkFieldCompactUtility.ts","webpack://build/webpack/bootstrap","webpack://build/webpack/runtime/define property getters","webpack://build/webpack/runtime/hasOwnProperty shorthand","webpack://build/webpack/runtime/make namespace object","webpack://build/../es6/Constants.js","webpack://build/../es6/Snap/PublishPage/JSSnapPathInfoScripts.js","webpack://build/../es6/BrowserEvents/Keyboard/KeyDownListenerForSnap.js","webpack://build/../es6/Components/Dialog/UpgradeConfirmationDialog.ts","webpack://build/../es6/Utility/GetTemplate.js","webpack://build/../es6/Components/DialogModal/Implementation/DialogModal.ts","webpack://build/../es6/Components/Button/Pricing/PricingUpgradeButton.ts","webpack://build/../es6/Utility/Logger.js","webpack://build/../es6/DataStore/MurphyUtility.js","webpack://build/../es6/Components/Toaster/ToastersContainer.js","webpack://build/../es6/ErrorHandling/ErrorDomToaster.ts","webpack://build/../es6/ErrorHandling/ErrorToaster.ts","webpack://build/../es6/ErrorHandling/Utility.js","webpack://build/../es6/Constants/HttpConstants.js","webpack://build/../es6/Constants/Mime.js","webpack://build/../es6/Utility/AjaxRequest.js","webpack://build/../es6/Utility/Cookie.js","webpack://build/../es6/DataStore/DS/Storage/UserPresence.ts","webpack://build/../es6/ProfileConstants.js","webpack://build/../es6/UserProfileStorage.js","webpack://build/../es6/TabProfile.js","webpack://build/../es6/Utility/QuickAction.js","webpack://build/../es6/Snap/PublishPage/SnapPublishPageQuickAction.js","webpack://build/../es6/Actions/FetchPublishSnapAction.js","webpack://build/../es6/Constants/PublishSnapConstants.ts","webpack://build/../es6/Snap/SnapTypes.ts","webpack://build/../es6/DataStore/DS/Storage/DSAttachmentField.js","webpack://build/../es6/DataStore/DS/Storage/DSCollaboratorUser.js","webpack://build/../es6/DataStore/DS/Storage/DSCollaborator.js","webpack://build/../es6/Dom/Middle/AddFieldPanel/Components/Sentiment/SentimentsSection.js","webpack://build/../es6/DataStore/DS/Storage/DSSentimentsField.js","webpack://build/../es6/DataStore/DS/Storage/Snap/DSSnapTable.ts","webpack://build/../es6/Snap/Request/SnapActionConstants.ts","webpack://build/../es6/Snap/BuilderPage/Wiz/Components/Chart/ChartConstants.ts","webpack://build/../es6/DataStore/DS/Storage/DSFilter.js","webpack://build/../es6/DataStore/DS/Storage/Snap/DSAggregation.ts","webpack://build/../es6/DataStore/DS/Storage/Snap/DSChart.ts","webpack://build/../es6/DataStore/DS/Storage/DSSort.js","webpack://build/../es6/DataStore/DS/Storage/Snap/DSGrid.ts","webpack://build/../es6/DataStore/DS/Storage/Snap/DSRte.ts","webpack://build/../es6/DataStore/DS/Storage/Snap/DSComponentFactory.ts","webpack://build/../es6/DataStore/DS/Storage/Snap/DSCard.ts","webpack://build/../es6/DataStore/DS/Storage/Snap/DSWiz.ts","webpack://build/../es6/DataStore/DS/Storage/Snap/DSSnapPublish.ts","webpack://build/../es6/Form/FormView/UIFiles/PasswordDialog.js","webpack://build/../es6/Constants/BaseEditPanelConstants.js","webpack://build/../es6/Constants/FieldTypeButtons.js","webpack://build/../es6/Utility/SvgIconUtility.js","webpack://build/../es6/Snap/BuilderPage/Wiz/Components/Aggregation/AggregationRenderPropertiesDataProvider.ts","webpack://build/../es6/Snap/BuilderPage/Wiz/Components/Aggregation/AggregationPropertiesDataProvider.ts","webpack://build/../es6/Snap/BuilderPage/Wiz/Components/Chart/ChartRenderPropertiesDataProvider.ts","webpack://build/../es6/Snap/BuilderPage/Wiz/Components/Chart/ChartPropertiesDataProvider.ts","webpack://build/../es6/Snap/BuilderPage/GenerateComponentProps.ts","webpack://build/../es6/Snap/BuilderPage/Wiz/Components/ComponentPropertyConstants.ts","webpack://build/../es6/Utility/Utility.js","webpack://build/../es6/Snap/Utility/utility.ts","webpack://build/../es6/Snap/BuilderPage/Wiz/Components/Aggregation/AggregationConstants.ts","webpack://build/../es6/Snap/BuilderPage/Wiz/Components/Aggregation/AggregationUI.ts","webpack://build/../es6/Constants/AddFieldConstantValues.js","webpack://build/../es6/Constants/RollupFormulaConstants.js","webpack://build/../es6/Utility/DataUtility.js","webpack://build/../es6/ActiveIDUtility.js","webpack://build/../es6/Constants/ZohoComponentDateFieldConstants.js","webpack://build/../es6/Snap/Utility/FieldTypeUtility.js","webpack://build/../es6/Snap/BuilderPage/Wiz/Components/Aggregation/DisplayDataConvertor.js","webpack://build/../es6/Snap/BuilderPage/Wiz/Components/Aggregation/AggregationViewManager.ts","webpack://build/../es6/Snap/BuilderPage/Wiz/Components/Aggregation/AggregationViewProvider.ts","webpack://build/../es6/Module/ModuleLoader.js","webpack://build/../es6/Snap/Utility/StaticFilesLoader.ts","webpack://build/../es6/Utility/Formatter/FieldTypeFormatters.js","webpack://build/../es6/Snap/BuilderPage/Wiz/Components/Chart/ChartDataConvertor.ts","webpack://build/../es6/Snap/BuilderPage/Wiz/Components/Chart/ChartUI.ts","webpack://build/../es6/Snap/BuilderPage/Wiz/Components/Chart/ChartViewManager.ts","webpack://build/../es6/Snap/BuilderPage/Wiz/Components/Chart/ChartViewProvider.ts","webpack://build/../es6/FieldTypeComponents/FieldTypeConstants.ts","webpack://build/../es6/FieldTypeComponents/FieldTypeComponentsFormater.ts","webpack://build/../es6/View/GridView/DGInteractor.ts","webpack://build/../es6/View/GridView/GridConstants.ts","webpack://build/../es6/_auxillaries/Debounce.ts","webpack://build/../es6/FieldTypeComponents/CellInlineComponent.ts","webpack://build/../es6/FieldTypeComponents/FieldComponentRenderer.ts","webpack://build/../es6/FieldTypeComponents/FieldComponentHoverStateUtils.ts","webpack://build/../es6/FieldTypeComponents/Composite/AttachmentFieldType/AttachmentInlineComponent.ts","webpack://build/../es6/FieldTypeComponents/Composite/AutonumberFieldType/AutoNumberInlineComponent.ts","webpack://build/../es6/FieldTypeComponents/Composite/CheckBoxFieldType/CheckboxInlineComponent.ts","webpack://build/../es6/FieldTypeComponents/Composite/CollaboratorFieldType/SingleCollaborator/SingleCollaboratorInlineComponent.ts","webpack://build/../es6/FieldTypeComponents/Composite/CollaboratorFieldType/MultipleCollaborator/MultipleCollaboratorInlineComponent.ts","webpack://build/../es6/FieldTypeComponents/Composite/CreatedByFieldType/CreatedByInlineComponent.ts","webpack://build/../es6/FieldTypeComponents/Composite/CreatedTimeFieldType/CreatedTimeInlineComponent.ts","webpack://build/../es6/FieldTypeComponents/Composite/CurrencyFieldType/CurrencyInlineComponent.ts","webpack://build/../es6/FieldTypeComponents/Composite/DateTimeFieldType/DateTimeInlineComponent.ts","webpack://build/../es6/FieldTypeComponents/Composite/EmailFieldType/EmailInlineComponent.ts","webpack://build/../es6/FieldTypeComponents/Composite/EmailFieldType/MultipleEmailInlineComponent.ts","webpack://build/../es6/FieldTypeComponents/Composite/KeywordExtractFieldType/CoreKeywordExtractInlineComponent.ts","webpack://build/../es6/FieldTypeComponents/Composite/LanguageDetectionFieldType/CoreLanguageDetectionInlineComponent.ts","webpack://build/../es6/View/Grid/Pane/FieldTypeComponents/Utilities/ExtraUtilitiesForCallback.js","webpack://build/../es6/FieldTypeComponents/Composite/LinkFieldType/LinkInlineComponent.ts","webpack://build/../es6/FieldTypeComponents/Composite/LookupFieldType/LookupInlineComponent.ts","webpack://build/../es6/FieldTypeComponents/Composite/ModifiedByFieldType/ModifiedByInlineComponent.ts","webpack://build/../es6/FieldTypeComponents/Composite/ModifiedTime/ModifiedTimeInlineComponent.ts","webpack://build/../es6/FieldTypeComponents/Composite/MultipleSelectionFieldType/MultiSelectInlineComponent.ts","webpack://build/../es6/FieldTypeComponents/Composite/NumberFieldType/NumberInlineComponent.ts","webpack://build/../es6/FieldTypeComponents/Composite/PercentFieldType/PercentInlineComponent.ts","webpack://build/../es6/FieldTypeComponents/Composite/PhoneNumberFieldType/MultiplePhoneNumberInlineComponent.ts","webpack://build/../es6/FieldTypeComponents/Composite/PhoneNumberFieldType/PhoneNumberInlineComponent.ts","webpack://build/../es6/FieldTypeComponents/Composite/RatingFieldType/RatingInlineComponent.ts","webpack://build/../es6/FieldTypeComponents/Composite/RollupFieldType/RollupInlineComponent.ts","webpack://build/../es6/FieldTypeComponents/Composite/SentimentalAnalysisFieldType/CoreSentimentalAnalysisInlineComponent.ts","webpack://build/../es6/DG_Components/Utility/ColorUtilty.ts","webpack://build/../es6/FieldTypeComponents/Composite/SingleSelectFieldType/SingleSelectInlineComponent.ts","webpack://build/../es6/FieldTypeComponents/Composite/AutoDetectFieldType/AutoDetectUtil.ts","webpack://build/../es6/FieldTypeComponents/Composite/AutoDetectFieldType/AutoDetect.ts","webpack://build/../es6/FieldTypeComponents/Composite/TextFieldType/TextInlineComponent.ts","webpack://build/../es6/FieldTypeComponents/Composite/URLFieldType/MultipleURLInlineComponent.ts","webpack://build/../es6/FieldTypeComponents/Composite/URLFieldType/URLInlineComponent.ts","webpack://build/../es6/FieldTypeComponents/Composite/CheckBoxFieldType/CustomCheckboxRenderer.ts","webpack://build/../es6/Form/FormView/FieldTypeStyles.js","webpack://build/../es6/Pricing/Plan.ts","webpack://build/../es6/View/GridView/FCComponents/Utility.ts","webpack://build/../es6/View/GridView/FCComponents/CoreInlineFCConfigConstructor.ts","webpack://build/../es6/View/GridView/FCComponents/Viewer/CoreViewerInlineFCConfigConstructor.ts","webpack://build/../es6/AttachmentField/AttachmentExpandReadOnlyImg.js","webpack://build/../es6/AttachmentField/AttachmentExpandReadOnlyDialog.js","webpack://build/../es6/Form/FormView/DialogComponent.js","webpack://build/../es6/Form/FormView/DialogStack.js","webpack://build/../es6/Snap/BuilderPage/Wiz/Components/Grid/DomGrid/FCComponents/AttachmentEventHandler.ts","webpack://build/../es6/Snap/BuilderPage/Wiz/Components/Grid/DomGrid/FCComponents/SnapGridInlineConfigConstructor.ts","webpack://build/../es6/Snap/BuilderPage/Wiz/Components/Grid/DomGrid/FCComponents/Viewer/SnapGridViewerInlineFCConfigConstructor.ts","webpack://build/../es6/FieldTypeComponents/CellPopupComponent.ts","webpack://build/../es6/DataStore/DS/Storage/fieldType/FieldTypeSpecifications.js","webpack://build/../es6/Constants/FieldTypeStyles.js","webpack://build/../es6/Dom/Middle/LinkField/LinkFieldReadOnlyComponentUtility.js","webpack://build/../es6/FieldTypeComponents/EditComponents/LinkFieldType/LinkDataProvider.ts","webpack://build/../es6/Constants/URIConstants.js","webpack://build/../es6/Utility/IRequestActionEventProperties.ts","webpack://build/../es6/Constants/WorkerChannelURIConstants.js","webpack://build/../es6/Worker/Client/WorkerConnectionManager.js","webpack://build/../es6/Worker/Client/WorkerConnection.js","webpack://build/../es6/Worker/Client/AbstractWorkerConnector.js","webpack://build/../es6/Worker/Client/DedicatedWorkerConnector.js","webpack://build/../es6/Worker/Client/Manager.js","webpack://build/../es6/Worker/Client/WorkerRequest.ts","webpack://build/../es6/Actions/LinkField/CloseLinkFieldTransactionAction.ts","webpack://build/../es6/Actions/LinkField/FilterLinkFieldDataAction.ts","webpack://build/../es6/Actions/LinkField/OpenLinkFieldTransactionAction.ts","webpack://build/../es6/FieldTypeComponents/EditComponents/LinkFieldType/CreateNewRecordHandler.ts","webpack://build/../es6/FieldTypeComponents/EditComponents/LinkFieldType/LinkFieldListRenderer.ts","webpack://build/../es6/FieldTypeComponents/EditComponents/LinkFieldType/LinkDialogComponent.ts","webpack://build/../es6/FieldTypeComponents/EditComponents/LinkFieldType/LinkMultiSelectComponent.ts","webpack://build/../es6/FieldTypeComponents/EditComponents/LinkFieldType/LinkFieldManager.ts","webpack://build/../es6/FieldTypeComponents/EditComponents/LinkFieldType/LinkPopupComponent.ts","webpack://build/../es6/View/GridView/FCComponents/PopupFCConfigConstructor.ts","webpack://build/../es6/FieldTypeComponents/EditComponents/CollaboratorFieldType/MultipleCollaborator/MultipleCollaboratorPopupComponent.ts","webpack://build/../es6/FieldTypeComponents/EditComponents/CurrencyFieldType/CurrencyPopupComponent.ts","webpack://build/../es6/FieldTypeComponents/EditComponents/DateTimeFieldType/DateTimePopupComponent.ts","webpack://build/../es6/FieldTypeComponents/EditComponents/EmailFieldType/CoreEmailPopupComponent.ts","webpack://build/../es6/FieldTypeComponents/EditComponents/KeywordExtractFieldType/KeywordExtractPopupComponent.ts","webpack://build/../es6/FieldTypeComponents/EditComponents/LanguageDetectionFieldType/LanguageDetectionPopupComponent.ts","webpack://build/../es6/FieldTypeComponents/EditComponents/LookupFieldType/LookupPopupComponent.ts","webpack://build/../es6/FieldTypeComponents/EditComponents/MultipleSelectionFieldType/MultiSelectPopupComponent.ts","webpack://build/../es6/FieldTypeComponents/EditComponents/NumberFieldType/NumberPopupComponent.ts","webpack://build/../es6/FieldTypeComponents/EditComponents/PercentFieldType/PercentPopupComponent.ts","webpack://build/../es6/FieldTypeComponents/EditComponents/PhoneNumberFieldType/PhoneNumberPopupComponent.ts","webpack://build/../es6/FieldTypeComponents/EditComponents/RollupFieldType/RollupPopupComponent.ts","webpack://build/../es6/FieldTypeComponents/EditComponents/SentimentalAnalysisFieldType/SentimentalAnalysisPopupComponent.ts","webpack://build/../es6/FieldTypeComponents/EditComponents/SingleSelectFieldType/SingleSelectPopupComponent.ts","webpack://build/../es6/FieldTypeComponents/EditComponents/TextFieldType/TextPopupComponent.ts","webpack://build/../es6/FieldTypeComponents/EditComponents/URLFieldType/URLPopupComponent.ts","webpack://build/../es6/View/GridView/FCComponents/Viewer/CoreViewerPopupFCConfigConstructor.ts","webpack://build/../es6/Snap/BuilderPage/Wiz/Components/Grid/DomGrid/FCComponents/Viewer/SnapGridViewerPopupFCConfigConstructor.ts","webpack://build/../es6/Snap/BuilderPage/Wiz/Components/Grid/DomGrid/FCComponents/SnapGridConfigConstructor.ts","webpack://build/../es6/View/GridView/Main/CoreFieldHandler.ts","webpack://build/../es6/Constants/GridConstants.js","webpack://build/../es6/View/GridView/ContentPane/Cell/GroupCell.ts","webpack://build/../es6/View/GridView/ContentPane/Cell/GroupSummaryCell.ts","webpack://build/../es6/View/GridView/Main/Fields/CoreFieldDefinition.ts","webpack://build/../es6/Snap/BuilderPage/Wiz/Components/Grid/DomGrid/Fields/SnapGridFieldDefinition.ts","webpack://build/../es6/Snap/BuilderPage/Wiz/Components/Grid/DomGrid/SnapGridFieldHandler.ts","webpack://build/../es6/View/GridView/Main/GridKeyboardShortcuts.ts","webpack://build/../es6/View/GridView/Main/Hooks/GridCoreHooks.ts","webpack://build/../es6/View/GridView/Main/Configuration/GridCoreConfiguration.ts","webpack://build/../es6/Snap/BuilderPage/Wiz/Components/Grid/DomGrid/Cell/SnapGridFieldHeaderCell.ts","webpack://build/../es6/Snap/BuilderPage/Wiz/Components/Grid/DomGrid/Cell/SnapGridRecordHeaderCell.ts","webpack://build/../es6/Snap/BuilderPage/Wiz/Components/Grid/DomGrid/Hooks/SnapGridHooks.ts","webpack://build/../es6/Snap/BuilderPage/Wiz/Components/Grid/DomGrid/SnapGridKeyboardShortcuts.ts","webpack://build/../es6/Snap/BuilderPage/Wiz/Components/Grid/DomGrid/SnapGridViewerConfiguration.ts","webpack://build/../es6/Snap/BuilderPage/Wiz/Components/Grid/DomGrid/SnapGridConstructor.ts","webpack://build/../es6/View/GridView/ContentPane/Cell/DraftCell.ts","webpack://build/../es6/View/GridView/ContentPane/Cell/CoreCell.ts","webpack://build/../es6/Snap/BuilderPage/Wiz/Components/Grid/DomGrid/Cell/SnapCell.ts","webpack://build/../es6/View/GridView/ContentPane/Cell/CoreEditCell.ts","webpack://build/../es6/Snap/BuilderPage/Wiz/Components/Grid/DomGrid/Cell/SnapEditCell.ts","webpack://build/../es6/Snap/BuilderPage/Wiz/Components/Grid/SnapGridDataProvider.ts","webpack://build/../es6/Snap/BuilderPage/Wiz/Components/Grid/GridReadOnlyView.ts","webpack://build/../es6/Snap/BuilderPage/Wiz/Components/Grid/GridViewDataStore.ts","webpack://build/../es6/Snap/BuilderPage/Wiz/Components/Grid/GridViewManager.ts","webpack://build/../es6/Snap/BuilderPage/Wiz/Components/Grid/GridViewProvider.ts","webpack://build/../es6/Snap/BuilderPage/Wiz/Components/TextEditor/Implement/ROTextEditor.ts","webpack://build/../es6/Snap/BuilderPage/Wiz/Components/TextEditor/Implement/TextEditorViewManager.ts","webpack://build/../es6/Snap/BuilderPage/Wiz/Components/TextEditor/Implement/TextEditorViewProvider.ts","webpack://build/../es6/Snap/BuilderPage/Wiz/Components/ComponentViewOnlyVendor.ts","webpack://build/../es6/Snap/BuilderPage/Wiz/LayoutBuilder/Components/Card/ReadOnlyCard.ts","webpack://build/../es6/Snap/BuilderPage/Wiz/LayoutBuilder/Components/MainBoard/MainBoard.ts","webpack://build/../es6/Snap/BuilderPage/Wiz/LayoutBuilder/LayoutBuilderTypes.ts","webpack://build/../es6/Snap/BuilderPage/Wiz/LayoutBuilder/LayoutBuilderConstants.ts","webpack://build/../es6/Snap/BuilderPage/Wiz/LayoutBuilder/LayoutReadOnlyBuilderHandler.ts","webpack://build/../es6/Snap/BuilderPage/Wiz/WizReadOnlyManager.ts","webpack://build/../es6/Snap/PublishPage/SnapPublishPage.ts","webpack://build/../es6/Actions/FetchPublishSnapTableDataAction.js","webpack://build/../es6/Actions/LoadPublishSnapCardAction.js","webpack://build/../es6/Snap/PublishPage/SnapPublishPageActions.ts","webpack://build/../es6/DataStore/DS/Storage/DSField.js","webpack://build/../es6/DataStore/DS/Storage/DSMultiSelect.js","webpack://build/../es6/DataStore/DS/Storage/DSRelationship.js","webpack://build/../es6/DataStore/DS/Storage/fieldType/FieldType.js","webpack://build/../es6/DataStore/DS/Storage/fieldType/FieldTypeFactory.ts","webpack://build/../es6/Parser/Interfaces/Snap/ISnapPublishPageResponseParser.ts","webpack://build/../es6/Snap/PublishPage/SnapPublishPageParser.ts","webpack://build/../es6/Snap/PublishPage/SnapWindowListener.ts","webpack://build/../es6/SVG/AttachmentSVG.js","webpack://build/../es6/SVG/AutoNumberSVG.js","webpack://build/../es6/SVG/CheckBoxCheckedSVG.js","webpack://build/../es6/SVG/CheckBoxSVG.js","webpack://build/../es6/SVG/CheckBoxUnCheckedSVG.js","webpack://build/../es6/SVG/CollaboratorSVG.js","webpack://build/../es6/SVG/CreatedBySVG.js","webpack://build/../es6/SVG/CreatedTimeSVG.js","webpack://build/../es6/SVG/CurrencySVG.js","webpack://build/../es6/SVG/DateTimeSVG.js","webpack://build/../es6/SVG/DurationSVG.js","webpack://build/../es6/SVG/EmailSVG.js","webpack://build/../es6/SVG/Emojis/AngrySVG1.js","webpack://build/../es6/SVG/Emojis/AngrySVG2.js","webpack://build/../es6/SVG/Emojis/AngrySVG3.js","webpack://build/../es6/SVG/Emojis/AngrySVG4.js","webpack://build/../es6/SVG/Emojis/AngrySVG5.js","webpack://build/../es6/SVG/Emojis/DisappointmentSVG1.js","webpack://build/../es6/SVG/Emojis/DisappointmentSVG2.js","webpack://build/../es6/SVG/Emojis/DisappointmentSVG3.js","webpack://build/../es6/SVG/Emojis/DisappointmentSVG4.js","webpack://build/../es6/SVG/Emojis/DisappointmentSVG5.js","webpack://build/../es6/SVG/Emojis/ExtremeHappySVG1.js","webpack://build/../es6/SVG/Emojis/ExtremeHappySVG2.js","webpack://build/../es6/SVG/Emojis/ExtremeHappySVG3.js","webpack://build/../es6/SVG/Emojis/ExtremeHappySVG4.js","webpack://build/../es6/SVG/Emojis/ExtremeHappySVG5.js","webpack://build/../es6/SVG/Emojis/HappySVG1.js","webpack://build/../es6/SVG/Emojis/HappySVG2.js","webpack://build/../es6/SVG/Emojis/HappySVG3.js","webpack://build/../es6/SVG/Emojis/HappySVG4.js","webpack://build/../es6/SVG/Emojis/HappySVG5.js","webpack://build/../es6/SVG/Emojis/NeutralSVG1.js","webpack://build/../es6/SVG/Emojis/NeutralSVG2.js","webpack://build/../es6/SVG/Emojis/NeutralSVG3.js","webpack://build/../es6/SVG/Emojis/NeutralSVG4.js","webpack://build/../es6/SVG/Emojis/NeutralSVG5.js","webpack://build/../es6/SVG/Emojis/SarcasmSVG1.js","webpack://build/../es6/SVG/Emojis/SarcasmSVG2.js","webpack://build/../es6/SVG/Emojis/SarcasmSVG3.js","webpack://build/../es6/SVG/Emojis/SarcasmSVG4.js","webpack://build/../es6/SVG/Emojis/SarcasmSVG5.js","webpack://build/../es6/SVG/EmptyFlagSVG.js","webpack://build/../es6/SVG/EmptyHeartSVG.js","webpack://build/../es6/SVG/EmptyShieldSVG.js","webpack://build/../es6/SVG/EmptySmileySVG.js","webpack://build/../es6/SVG/EmptyStarSVG.js","webpack://build/../es6/SVG/EmptyThumbsUpSVG.js","webpack://build/../es6/SVG/EmptyToogleSwitchSVG.js","webpack://build/../es6/SVG/EmptybadgeSVG.js","webpack://build/../es6/SVG/FormulaSVG.js","webpack://build/../es6/SVG/FormulaWarningSignSVG.js","webpack://build/../es6/SVG/FullFlagSVG.js","webpack://build/../es6/SVG/FullHeartSVG.js","webpack://build/../es6/SVG/FullShieldSVG.js","webpack://build/../es6/SVG/FullSmileySVG.js","webpack://build/../es6/SVG/FullStarSVG.js","webpack://build/../es6/SVG/FullThumbsUpSVG.js","webpack://build/../es6/SVG/FullToogleSwitchSVG.js","webpack://build/../es6/SVG/FullbadgeSVG.js","webpack://build/../es6/SVG/HalfStarSVG.js","webpack://build/../es6/SVG/KeywordExtractionSVG.js","webpack://build/../es6/SVG/LanguageDetectionSVG.js","webpack://build/../es6/SVG/LinkSVG.js","webpack://build/../es6/SVG/LookupSVG.js","webpack://build/../es6/SVG/ModifiedBySVG.js","webpack://build/../es6/SVG/ModifiedTimeSVG.js","webpack://build/../es6/SVG/MultiSelectSVG.js","webpack://build/../es6/SVG/NumberSVG.js","webpack://build/../es6/SVG/PercentageSVG.js","webpack://build/../es6/SVG/PhoneNumberSVG.js","webpack://build/../es6/SVG/PickListSVG.js","webpack://build/../es6/SVG/PricingCrownSVG.js","webpack://build/../es6/SVG/RatingSVG.js","webpack://build/../es6/SVG/RollupSVG.js","webpack://build/../es6/SVG/RowCheckBoxSVG.js","webpack://build/../es6/SVG/ScientificSVG.js","webpack://build/../es6/SVG/SentimentSVG.js","webpack://build/../es6/SVG/SingleSelectSVG.js","webpack://build/../es6/SVG/SymbolSVG.js","webpack://build/../es6/SVG/TextSVG.js","webpack://build/../es6/SVG/UrlSVG.js"],"sourcesContent":["export const EMAIL_REGEX = /^\\w+([\\.+-]?\\w+)*@\\w+([\\.-]?\\w+)*(\\.\\D{2,10})+$/\nexport const PAGE_TYPE = {\n    DATA: 1,\n    SNAP: 2,\n    AUTOMATION : 3\n}\n\n","export class Node {\n    constructor(value) {\n            this.value    = value;\n            this.children = [];\n        }\n\n    addChild(node) {\n        this.children.push(node)\n    }\n\n    addChildNode(value) {\n        this.addChild(new Node(value));\n    }\n\n    removeChild(node) {\n        const index = this.children.indexOf(node);\n        (index !== -1) && this.children.splice(index, 1);\n    }\n}\n\n\nexport class Tree {\n\ttraverseDFS(func) {\n\t\ttraverseDFS.call(this.root, func);\n\t}\n\n\tcreateNode(value) {\n\t\tconst node = new Node(value);\n\t\treturn node;\n\t}\n\n\tsetRoot(node) {\n\t\tthis.root = node;\n\t}\n\n\tgetPath(value) {\n\t\tconst array = [];\n\t\tgetPath.call(this.root, value, array);\n\t\treturn array;\n\t}\n}\n\nfunction traverseDFS(func) {\n\tfor (let i = 0, length = this.children.length; i < length; i++) {\n\t\tconst node = this.children[i];\n\t\ttraverseDFS.call(node, func);\n\t}\n\tfunc(this);\n}\n\nfunction getPath(value, array) {\n\tarray.push(this.value);\n\tif(value === this.value){\n\t\treturn true;\n\t}\n\tfor (let i = 0, length = this.children.length; i < length; i++) {\n\t\tconst node  = this.children[i];\n\t\tconst found = getPath.call(node, value, array);\n\t\tif(found){\n\t\t\treturn true;\n\t\t}\n\t}\n\tarray.pop();\n}\n","\nimport { PAGE_TYPE } from '../../Constants';\nimport { ATTACHMENT, AUTO_NUMBER, CHECKBOX, COLLABORATOR_CLIENT, CREATED_BY, CREATED_TIME, CURRENCY, DATE_TIME, EMAIL, FORMULA, KEYWORD_EXTRACTION, LANGUAGE_DETECTOR, LINK, LOOKUP, MODIFIED_BY, MODIFIED_TIME, MULTIPLE_SELECTION, NUMBER, PERCENT, PHONE_NUMBER, RATING, ROLLUP, SENTIMENTAL_ANALYSIS, SINGLE_SELECTION, TEXT, URL } from '../../Constants/FieldTypes.js';\nimport { CALENDER, GRID, KANBAN } from '../../Constants/ViewTypes.js';\nimport { getDGInteracter } from '../../Locale.js';\nimport { State } from '../../State/LayoutState.js';\nimport { Tree } from './../../DataStore/DS/DSTree.js';\nimport { EventEmitter } from './../../Utility/EventEmitter.js';\nimport { KeyBoardEvents, secondaryContextEntries, ViewsKeyContextEntries } from './KeyContextMapping.js';\n// import { Logger } from '../../Utility/Logger.js';\n\nexport class KeyContext extends EventEmitter {\n\tconstructor() {\n\t\tsuper(null, [\"KeyStackListener\"]); // No I18N\n\t\tthis.tree = new Tree();\n\t\tthis.Entry = {};\n\t\tthis.Stack = [];\n\t\tthis.secondaryFocusContext = null;\n\t\tthis.context = null;\n\t}\n\n\tcreateNode(context) {\n\t\treturn this.tree.createNode(context);\n\t}\n\n\tsetRoot(node) {\n\t\tthis.tree.setRoot(node);\n\t}\n\n\tfocusContext(context) {\n\t\tthis.context = context;\n\t\tthis.Stack = this.tree.getPath(context);\n\t\tthis.dispatchEvent(\"KeyStackListener\"); // No I18N\n\t\t// console.trace();\n\t\t// console.log(this.Stack);\n\t\t// console.log('SSS = ', this.secondaryFocusContext);\n\t\t// Logger.warn2(\"this.Stack = \", this.Stack);// No I18N\n\t\t// Logger.warn2(\"SSS = \", this.secondaryFocusContext);// No I18N\n\n\t}\n\n\tgetFocusContext() {\n\t\treturn this.context;\n\t}\n\n\tsetSecondaryFocusContext(context) {\n\t\t// console.trace();\n\t\tthis.secondaryFocusContext = context;\n\t\t// console.log('secondaryFocusContext = ', this.secondaryFocusContext);\n\t}\n\n\texecuteSecondaryFocusContext() {\n\t\tthis.secondaryFocusContext && this.focusContext(this.secondaryFocusContext);\n\t}\n\n\tgetSecondaryFocusContext() {\n\t\treturn this.secondaryFocusContext;\n\t}\n\n\trevokeFocus() {\n\t\tconst activeState = globalThis.getActiveState()\n\t\tswitch(activeState.getPageType()) {\n\t\t\tcase PAGE_TYPE.DATA: {\n\t\t\t\tconst activeBaseID              = getActiveBaseID();\n\t\t\t\tconst activeTableID             = activeState.getActiveTableID();\n\t\t\t\tconst activeViewID              = activeState.getActiveViewID();\n\t\t\t\tconst table \t\t\t\t\t= Table.Data.Workspace.baseMap.get(activeBaseID).getTable(activeTableID);\n\t\t\t\tif(!table) return;\n\t\t\t\tconst view \t\t\t\t\t\t= Table.Data.Workspace.baseMap.get(activeBaseID).getTable(activeTableID).getView(activeViewID);\n\t\t\t\tif(!view){return;}\n\t\t\t\tconst activeViewType            = Table.Data.Workspace.baseMap.get(activeBaseID).getTable(activeTableID).getViewType(activeViewID);\n\t\t\t\tconst activeViewKeyContextEntry = ViewsKeyContextEntries[activeViewType];\n\t\t\t\tconst activeViewKeyContext      = activeViewKeyContextEntry.Context;\n\t\t\n\t\t\t\tif (activeViewType == GRID) {// TODO: to be modified\n\t\t\t\t\tconst dgInteracter = getDGInteracter();  // TODO: Refer \"Locale.js\" for more info.. Temp code added for keyContext\n\t\t\t\t\tif(!dgInteracter) {\n\t\t\t\t\t\tKeyBoardEvents.Events.Key.focusContext([]);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst focusedCell = dgInteracter.getFocusedCell();\n\t\t\t\t\tif(!focusedCell) {\n\t\t\t\t\t\tKeyBoardEvents.Events.Key.focusContext([]);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst fieldID    = focusedCell.columnID;\n\t\t\t\t\tconst keyContext = getGridFieldTypeKeyContextByFieldID(fieldID);\n\t\t\t\t\tKeyBoardEvents.Events.Key.focusContext(keyContext);\n\n\t\t\t\t\tconst scrollOnFocus = false;\n\t\t\t\t\tconst setRange      = false;\n\t\t\t\t\t// setTimeout(() => {\n\t\t\t\t\t\tdgInteracter.placeCellSelection(focusedCell, scrollOnFocus, setRange);\n\t\t\t\t\t// }, 100);\n\n\t\t\t\t} else if(activeViewType == KANBAN) { // kanban\n\t\t\t\t\tconst isViewCreated = !!view.getFieldID();\n\t\t\t\t\tif(isViewCreated) {\n\t\t\t\t\t\tthis.focusContext(activeViewKeyContext)\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.setSecondaryFocusContext(null);\n\t\t\t\t\t\tthis.focusContext(null)\n\t\t\t\t\t}\n\t\t\t\t} else if(activeViewType == CALENDER) { // calendar\n\t\t\t\t\tconst isViewCreated = !!(view.getStartFieldID() && view.getEndFieldID());\n\t\t\t\t\tif(isViewCreated) {\n\t\t\t\t\t\tthis.focusContext(activeViewKeyContext)\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.setSecondaryFocusContext(null);\n\t\t\t\t\t\tthis.focusContext(null)\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tthis.focusContext(activeViewKeyContext);\n\t\t\t\t}\n\t\t\n\t\t\t\t// this.focusContext(activeViewKeyContext);\n\t\t\t\tcheckActiveSecondaryContext.call(this);\n\t\t\t\tbreak\n\t\t\t}\n\n\t\t\tcase PAGE_TYPE.SNAP: {\n\t\t\t\tthis.setSecondaryFocusContext(null);\n\t\t\t\tthis.focusContext(null)\n\t\t\t}\n\t\t}\n\t}\n}\n\nexport function KeyMapping(name) {\n\tthis.name    = name;\n\tthis.alive   = true;\n\tthis.keyDown = {};\n}\n\nexport function chainNodes({ Node }, entries) {\n\tlet root = Node;\n\tfor (let i = 0; i < entries.length; i++) {\n\t\tconst node = entries[i].Node;\n\t\troot.addChild(node);\n\t\troot = node;\n\t}\n}\n\nfunction checkActiveSecondaryContext() {\n\tconst isSecondaryOpen = Table.UI.Layout.primary.Instance && Table.UI.Layout.primary.Instance.isSecondaryLayoutOpen;\n\tif (isSecondaryOpen) {\n\t\tconst activeBaseID = getActiveBaseID();\n\t\tconst activeTableID = getActiveTableID();\n\t\tconst activeViewID = getActiveViewID();\n\t\tconst activeViewType = Table.Data.Workspace.baseMap.get(activeBaseID).getTable(activeTableID).getViewType(activeViewID);\n\t\tconst activeSecondaryContext = secondaryContextEntries[activeViewType];\n\t\tthis.setSecondaryFocusContext(activeSecondaryContext.Context);\n\t\tthis.focusContext(activeSecondaryContext.Context);\n\t}\n}\n\nfunction getActiveBaseID() {\n\tconst baseID = State.getActiveBaseID();\n\treturn baseID;\n}\n\nfunction getActiveTableID() {\n\tconst baseState = State.getBaseState(getActiveBaseID());\n\treturn baseState.getActiveTableID();\n}\n\nfunction getActiveViewID() {\n\tconst baseState = State.getBaseState(getActiveBaseID());\n\tconst tableState = baseState.getTableState(getActiveTableID());\n\treturn tableState.getActiveViewID();\n}\n\nfunction getFieldType(fieldID) {\n\tconst base  = Table.Data.Workspace.get(getActiveBaseID());\n\tconst table = base.getTable(getActiveTableID());\n\tconst field = table.getField(fieldID);\n\treturn field.getType().getType();\n}\n\nfunction getGridFieldTypeKeyContextByFieldID(fieldID) {\n\tconst Key   = KeyBoardEvents.Events.Key;\n\tconst Entry = Key.Entry;\n\t\n\tconst fieldType = getFieldType(fieldID);\n\tswitch(fieldType) {\n\t\tcase ATTACHMENT:\n\t\t\treturn Key.Entry.Attachment.Context;\n\n\t\tcase CHECKBOX:\n\t\t\treturn Key.Entry.CheckBox.Context;\n\n\t\tcase FORMULA:\n\t\t\treturn Key.Entry.Formula.Context;\n\n\t\tcase TEXT:\n\t\t\treturn Entry.Text.Context;\n\n\t\tcase URL:\n\t\t\treturn Key.Entry.URL.Context;\t\t\t\n\t\t\t\n\t\tcase KEYWORD_EXTRACTION:\n\t\t\treturn Key.Entry.KeywordExtract.Context;\n\n\t\tcase LANGUAGE_DETECTOR:\n\t\t\treturn Key.Entry.LanguageDetect.Context;\n\n\t\tcase SENTIMENTAL_ANALYSIS:\n\t\t\treturn Key.Entry.Sentiment.Context;\n\n\t\tcase MULTIPLE_SELECTION:\n\t\t\treturn Key.Entry.MultipleSelection.Context;\n\t\t\n\t\tcase SINGLE_SELECTION:\n\t\t\treturn Key.Entry.SingleSelection.Context;\n\n\t\tcase AUTO_NUMBER:\n\t\t\treturn Key.Entry.AutoNumber.Context;\n\n\t\tcase CURRENCY:\n\t\t\treturn Key.Entry.Currency.Context;\n\n\t\tcase NUMBER:\n\t\t\treturn Key.Entry.Number.Context;\n\n\t\tcase PERCENT:\n\t\t\treturn Key.Entry.Percent.Context;\n\n\t\tcase RATING:\n\t\t\treturn Key.Entry.Rating.Context;\n\n\t\tcase COLLABORATOR_CLIENT:\n\t\t\treturn Key.Entry.CollaboratorSelection.Context;\n\n\t\tcase CREATED_BY:\n\t\t\treturn Key.Entry.CreatedBy.Context;\n\n\t\tcase EMAIL:\n\t\t\treturn Key.Entry.Email.Context;\n\n\t\tcase MODIFIED_BY:\n\t\t\treturn Key.Entry.ModifiedBy.Context;\n\n\t\tcase PHONE_NUMBER:\n\t\t\treturn Key.Entry.PhoneNumber.Context;\n\n\t\tcase CREATED_TIME:\n\t\t\treturn Key.Entry.CreatedTime.Context;\n\n\t\tcase DATE_TIME:\n\t\t\treturn Key.Entry.DateTime.Context;\n\n\t\tcase MODIFIED_TIME:\n\t\t\treturn Key.Entry.ModifiedTime.Context;\n\n\t\tcase LINK:\n\t\t\treturn Key.Entry.Link.Context;\n\n\t\tcase LOOKUP:\n\t\t\treturn Key.Entry.Lookup.Context;\n\n\t\tcase ROLLUP:\n\t\t\treturn Key.Entry.Rollup.Context;\n\n\t\tdefault:\n\t\t\tthrow('Unknown fieldType');\n\t}\n}\n","\nimport { chainNodes, KeyContext, KeyMapping } from './KeyEventContextTree.js';\n\nexport const KeyBoardEvents = {};\nconst  Events               = KeyBoardEvents.Events || (KeyBoardEvents.Events = {});\nexport const context        = Events.Key = new KeyContext();\n\nconst Browser = context.Entry.Browser = getContextEntry(new (function BrowserKeyMapping() { KeyMapping.call(this, \"UI.editor.KeyboardShortcut.browserHeading\"); })());  //No I18N\nconst Pages   = context.Entry.Pages    = getContextEntry(new (function PagesKeyMapping() { KeyMapping.call(this, \"UI.editor.KeyboardShortcut.pagesHeading\"); })());    //No I18N\nconst Tables  = context.Entry.Tables  = getContextEntry(new (function TablesKeyMapping() { KeyMapping.call(this, \"UI.editor.KeyboardShortcut.tablesHeading\"); })());    //No I18N\nconst Views   = context.Entry.Views   = getContextEntry(new (function ViewsKeyMapping() { KeyMapping.call(this, \"UI.editor.KeyboardShortcut.viewsHeading\"); })());      //No I18N\n\n//Grid view contexts\nconst GridView = context.Entry.GridView = getContextEntry(new (function GridViewKeyMapping() { KeyMapping.call(this, \"GridViewKeyMapping\"); })());  //No I18N\n\nconst  Print                         = context.Entry.Print                         = getContextEntry(new (function PrintKeyMapping() { KeyMapping.call(this, \"PrintKeyMapping\"); })());                                                  //No I18N\nconst  FieldSelection                = context.Entry.FieldSelection                = getContextEntry(new (function FieldSelectionKeyMapping() { KeyMapping.call(this, \"FieldSelectionKeyMapping\"); })());                                //No I18N\nconst  FieldEditor                   = context.Entry.FieldEditor                   = getContextEntry(new (function FieldEditorKeyMapping() { KeyMapping.call(this, \"FieldEditorKeyMapping\"); })());                                      //No I18N\nconst  CellSelection                 = context.Entry.CellSelection                 = getContextEntry(new (function CellSelectionKeyMapping() { KeyMapping.call(this, \"UI.editor.KeyboardShortcut.cellSelectHeading\"); })());                                  //No I18N\nconst  CellEditor                    = context.Entry.CellEditor                    = getContextEntry(new (function CellEditorKeyMapping() { KeyMapping.call(this, \"UI.editor.KeyboardShortcut.cellEditHeading\"); })());                                        //No I18N\nconst  FieldTypeComponents           = context.Entry.FieldTypeComponents           = getContextEntry(new (function FieldTypeComponentsKeyMapping() { KeyMapping.call(this, \"FieldTypeComponentsKeyMapping\"); })());                      //No I18N\nconst  LongTextFieldComponent        = context.Entry.LongTextFieldComponent        = getContextEntry(new (function LongTextFieldComponentKeyMapping() { KeyMapping.call(this, \"LongTextFieldComponentKeyMapping\"); })());                //No I18N\nconst  DateFieldComponent            = context.Entry.DateFieldComponent            = getContextEntry(new (function DateFieldComponentKeyMapping() { KeyMapping.call(this, \"DateFieldComponentKeyMapping\"); })());                        //No I18N\nconst  EditFieldPanelSelectionInput  = context.Entry.EditFieldPanelSelectionInput  = getContextEntry(new (function EditFieldPanelSelectionInputKeyMapping() { KeyMapping.call(this, \"UI.editor.KeyboardShortcut.editPanelSelection\"); })());    //No I18N\nconst  GridFindAnItemComponentMS     = context.Entry.GridFindAnItemComponentMS     = getContextEntry(new (function GridFindAnItemComponentMSKeyMapping() { KeyMapping.call(this, \"UI.editor.KeyboardShortcut.cellEditMultiSelect\"); })());          //No I18N\nconst  GridFindAnItemComponentSA     = context.Entry.GridFindAnItemComponentSA     = getContextEntry(new (function GridFindAnItemComponentSAKeyMapping() { KeyMapping.call(this, \"UI.editor.KeyboardShortcut.cellEditHeading\"); })());          //No I18N\nconst  GridRating                    = context.Entry.GridRating                    = getContextEntry(new (function GridRatingKeyMapping() { KeyMapping.call(this, \"UI.editor.KeyboardShortcut.cellEditRating\"); })());                                        //No I18N\nconst  GridCheckbox                  = context.Entry.GridCheckbox                  = getContextEntry(new (function GridCheckboxKeyMapping() { KeyMapping.call(this, \"UI.editor.KeyboardShortcut.cellEditCheckbox\"); })());                                    //No I18N\nconst  GridLinkFieldMultiSelect      = context.Entry.GridLinkFieldMultiSelect      = getContextEntry(new (function GridLinkFieldMultiSelectMapping() { KeyMapping.call(this, \"GridLinkFieldMultiSelectMapping\"); })());                  //No I18N\nconst  GridLinkFieldSingleSelect     = context.Entry.GridLinkFieldSingleSelect     = getContextEntry(new (function GridLinkFieldSingleSelectMapping() { KeyMapping.call(this, \"GridLinkFieldSingleSelectMapping\"); })());                //No I18N\nconst  RecordViewFieldTypeComponents = context.Entry.RecordViewFieldTypeComponents = getContextEntry(new (function RecordViewFieldTypeComponentsKeyMapping() { KeyMapping.call(this, \"RecordViewFieldTypeComponentsKeyMapping\"); })());  //No I18N\nconst  FilterFieldTypeComponents     = context.Entry.FilterFieldTypeComponents     = getContextEntry(new (function FilterFieldTypeComponentsKeyMapping() { KeyMapping.call(this, \"FilterFieldTypeComponentsKeyMapping\"); })());          //No I18N\nconst  FieldTypeComponentsForFilter  = context.Entry.FieldTypeComponentsForFilter  = getContextEntry(new (function FieldTypeComponentsForFilterKeyMapping() { KeyMapping.call(this, \"FieldTypeComponentsForFilterKeyMapping\"); })());    //No I18N\nconst  addEntitiesDialog             = context.Entry.addEntitiesDialog             = getContextEntry(new (function addEntitiesDialogKeyMapping() { KeyMapping.call(this, \"UI.editor.KeyboardShortcut.addEntitiesDialog\"); })());                          //No I18N\nconst  automationSidePanel           = context.Entry.automationSidePanel           = getContextEntry(new (function automationSidePanelKeyMapping() { KeyMapping.call(this, \"automationSidePanelKeyMapping\"); })());                      //No I18N\nconst  versionHistorySidePanel\t\t = context.Entry.versionHistorySidePanel\t   = getContextEntry(new (function versionHistorySidePanelKeyMapping() { KeyMapping.call(this, \"versionHistorySidePanelKeyMapping\"); })());              //No I18N\nconst  sidePanelModalDialog          = context.Entry.sidePanelModalDialog          = getContextEntry(new (function sidePanelModalDialogKeyMapping() { KeyMapping.call(this, \"sidePanelModalDialogKeyMapping\"); })());                      //No I18N\nconst  dropdownSearch                = context.Entry.dropdownSearch          = getContextEntry(new (function dropdownSearchKeyMapping() { KeyMapping.call(this, \"dropdownSearchKeyMapping\"); })());                      //No I18N\nconst  baseShareSidePanel            = context.Entry.baseShareSidePanel            = getContextEntry(new (function baseShareSidePanelKeyMapping() { KeyMapping.call(this, \"baseShareSidePanelKeyMapping\"); })());                      //No I18N\nconst  baseShareCollaboratorSidePanelSearchFocus = context.Entry.baseShareCollaboratorSidePanelSearchFocus  = getContextEntry(new (function baseShareCollaboratorSidePanelSearchFocus() { KeyMapping.call(this, \"baseShareCollaboratorSidePanelSearchFocus\"); })());                      //No I18N\nconst  nonEditableField              = context.Entry.nonEditableField              = getContextEntry(new (function nonEditableFieldKeyMapping() { KeyMapping.call(this, \"nonEditableFieldKeyMapping\"); })());                      //No I18N\nconst  editableField                 = context.Entry.editableField                 = getContextEntry(new (function editableFieldKeyMapping() { KeyMapping.call(this, \"editableFieldKeyMapping\"); })());                      //No I18N\nconst  shareMakeSuggestion       \t = context.Entry.shareMakeSuggestion           = getContextEntry(new (function shareMakeSuggestionKeyMapping() { KeyMapping.call(this, \"shareMakeSuggestionKeyMapping\"); })());                      //No I18N\nconst  shareAddMemberPanel       \t = context.Entry.shareAddMemberPanel           = getContextEntry(new (function shareAddMemberPanelKeyMapping() { KeyMapping.call(this, \"shareAddMemberPanelKeyMapping\"); })());                      //No I18N\nconst  profile            = context.Entry.profile            = getContextEntry(new (function profileKeyMapping() { KeyMapping.call(this, \"profile\"); })());                      //No I18N\nvar GridManageFields = context.Entry.GridManageFields = getContextEntry(new (function GridManageFieldsKeyMapping() { KeyMapping.call(this, \"GridManageFieldsKeyMapping\"); })());  //No I18N\nvar MenuWrapper      = context.Entry.MenuWrapper      = getContextEntry(new (function MenuWrapperKeyMapping() { KeyMapping.call(this, \"MenuWrapperKeyMapping\"); })());            //No I18N\n\n//Gallery view contexts\nconst GalleryView    = context.Entry.GalleryView    = getContextEntry(new (function GalleryViewKeyMapping() { KeyMapping.call(this, \"UI.editor.KeyboardShortcut.Gallery\"); })());  //No I18N\nconst GalleryBuilder = context.Entry.GalleryBuilder = getContextEntry(new (function GalleryBuilder() { KeyMapping.call(this, \"UI.editor.KeyboardShortcut.GalleryBuilderPanel\"); })());      //No I18N\n//Calendar view contexts\nconst CalendarView = context.Entry.CalendarView = getContextEntry(new (function CalendarViewKeyMapping() { KeyMapping.call(this, \"UI.editor.KeyboardShortcut.Calendar\"); })());  //No I18N\nconst ListView     = context.Entry.ListView     = getContextEntry(new (function ListViewKeyMapping() { KeyMapping.call(this, \"ListViewKeyMapping\"); })());          //No I18N\n\n//Kanban view contexts\nconst KanbanView = context.Entry.KanbanView = getContextEntry(new (function KanbanViewKeyMapping() { KeyMapping.call(this, \"UI.editor.KeyboardShortcut.kanban\"); })());  //No I18N\nconst KanbanBuilder = context.Entry.KanbanBuilder = getContextEntry(new (function KanbanBuilderKeyMapping() { KeyMapping.call(this, \"UI.editor.KeyboardShortcut.kanban\"); })());  //No I18N\n\n// Gantt view contexts\nconst GanttView = context.Entry.GanttView = getContextEntry(new (function GanttViewKeyMapping() { KeyMapping.call(this, \"UI.editor.KeyboardShortcut.Gantt\"); })());  //No I18N\n\n//Form view contexts\nconst FormView = context.Entry.FormView = getContextEntry(new (function FormViewKeyMapping() { KeyMapping.call(this, \"FormViewKeyMapping\"); })());  //No I18N\n\n//Dialogs contexts\nconst DialogStack = context.Entry.DialogStack = getContextEntry(new (function DialogStackKeyMapping() { KeyMapping.call(this, \"UI.Table.Listing.KeyboardShortcut.DialogStack_Heading\"); })());  //No I18N\nconst Dialog      = context.Entry.Dialog      = getContextEntry(new (function DialogKeyMapping() { KeyMapping.call(this, \"DialogKeyMapping\"); })());            //No I18N\n\nconst EditBaseDialog          = context.Entry.EditBaseDialog          = getContextEntry(new (function EditBaseDialogKeyMapping() { KeyMapping.call(this, \"EditBaseDialogKeyMapping\"); })());                    //No I18N\nconst RecordHeightDialogInput = context.Entry.RecordHeightDialogInput = getContextEntry(new (function RecordHeightDialogInputKeyMapping() { KeyMapping.call(this, \"RecordHeightDialogInputKeyMapping\"); })());  //No I18N\nconst RecordViewDialog        = context.Entry.RecordViewDialog        = getContextEntry(new (function RecordViewDialogKeyMapping() { KeyMapping.call(this, \"RecordViewDialogKeyMapping\"); })());                //No I18N\nconst PrintFormatDialog       = context.Entry.PrintFormatDialog       = getContextEntry(new (function PrintFormatDialogKeyMapping() { KeyMapping.call(this, \"PrintFormatDialogKeyMapping\"); })());              //No I18N\nconst PrintDialog             = context.Entry.PrintDialog             = getContextEntry(new (function PrintDialogKeyMapping() { KeyMapping.call(this, \"PrintDialogKeyMapping\"); })());                          //No I18N\nconst LinkFieldChooseDialog   = context.Entry.LinkFieldChooseDialog   = getContextEntry(new (function LinkFieldChooseDialogKeyMapping() { KeyMapping.call(this, \"LinkFieldChooseDialogKeyMapping\"); })());      //No I18N\n\nconst InviteACollaboratorDialog = context.Entry.InviteACollaboratorDialog = getContextEntry(new (function InviteACollaboratorDialogKeyMapping() { KeyMapping.call(this, \"InviteACollaboratorDialogKeyMapping\"); })());  //No I18N\n\nconst InviteACollaboratorRoleDialog = context.Entry.InviteACollaboratorRoleDialog = getContextEntry(new (function InviteACollaboratorRoleDialogKeyMapping() { KeyMapping.call(this, \"InviteACollaboratorRoleDialogKeyMapping\"); })());  //No I18N\n\n//Run History\nconst RunHistorySidePanel = context.Entry.RunHistorySidePanel = getContextEntry(new (function RunHistorySidePanelKeyMapping() { KeyMapping.call(this, \"RunHistorySidePanelKeyMapping\"); })());                      //No I18N\n//search contexts\nconst Search = context.Entry.Search = getContextEntry(new (function SearchKeyMapping() { KeyMapping.call(this, \"SearchKeyMapping\"); })());  //No I18N\nconst Find   = context.Entry.Find   = getContextEntry(new (function FindKeyMapping() { KeyMapping.call(this, \"FindKeyMapping\"); })());      //No I18N\n\nconst FieldType                     = context.Entry.FieldType                     = getContextEntry(new (function FieldTypeKeyMapping() { KeyMapping.call(this, \"FieldTypeKeyMapping\"); })());                                          //No I18N\nconst Attachment                    = context.Entry.Attachment                    = getContextEntry(new (function AttachmentKeyMapping() { KeyMapping.call(this, \"AttachmentKeyMapping\"); })());                                        //No I18N\nconst AutoNumber                    = context.Entry.AutoNumber                    = getContextEntry(new (function AutoNumberKeyMapping() { KeyMapping.call(this, \"AutoNumberKeyMapping\"); })());                                        //No I18N\nconst CheckBox                      = context.Entry.CheckBox                      = getContextEntry(new (function CheckBoxKeyMapping() { KeyMapping.call(this, \"UI.editor.KeyboardShortcut.CheckBox\"); })());                                            //No I18N\nconst Address                       = context.Entry.Address                       = getContextEntry(new (function AddressKeyMapping() { KeyMapping.call(this, \"AddressKeyMapping\"); })());                                              //No I18N\nconst CreatedTime                   = context.Entry.CreatedTime                   = getContextEntry(new (function CreatedTimeKeyMapping() { KeyMapping.call(this, \"CreatedTimeKeyMapping\"); })());                                      //No I18N\nconst Currency                      = context.Entry.Currency                      = getContextEntry(new (function CurrencyKeyMapping() { KeyMapping.call(this, \"CurrencyKeyMapping\"); })());                                            //No I18N\nconst DateTime                      = context.Entry.DateTime                      = getContextEntry(new (function DateTimeKeyMapping() { KeyMapping.call(this, \"DateTimeKeyMapping\"); })());                                            //No I18N\nconst Email                         = context.Entry.Email                         = getContextEntry(new (function EmailKeyMapping() { KeyMapping.call(this, \"EmailKeyMapping\"); })());                                                  //No I18N\nconst Formula                       = context.Entry.Formula                       = getContextEntry(new (function FormulaKeyMapping() { KeyMapping.call(this, \"FormulaKeyMapping\"); })());                                              //No I18N\nconst ModifiedTime                  = context.Entry.ModifiedTime                  = getContextEntry(new (function ModifiedTimeKeyMapping() { KeyMapping.call(this, \"ModifiedTimeKeyMapping\"); })());                                    //No I18N\nconst MultipleSelection             = context.Entry.MultipleSelection             = getContextEntry(new (function MultipleSelectionKeyMapping() { KeyMapping.call(this, \"MultipleSelectionKeyMapping\"); })());                          //No I18N\nconst SingleSelection               = context.Entry.SingleSelection               = getContextEntry(new (function SingleSelectionKeyMapping() { KeyMapping.call(this, \"SingleSelectionKeyMapping\"); })());                              //No I18N\nconst CollaboratorMultipleSelection = context.Entry.CollaboratorMultipleSelection = getContextEntry(new (function CollaboratorMultipleSelectionKeyMapping() { KeyMapping.call(this, \"CollaboratorMultipleSelectionKeyMapping\"); })());  //No I18N\nconst CollaboratorSingleSelection   = context.Entry.CollaboratorSingleSelection   = getContextEntry(new (function CollaboratorSingleSelectionKeyMapping() { KeyMapping.call(this, \"CollaboratorSingleSelectionKeyMapping\"); })());      //No I18N\nconst CollaboratorSelection         = context.Entry.CollaboratorSelection         = getContextEntry(new (function CollaboratorSelectionKeyMapping() { KeyMapping.call(this, \"CollaboratorSelectionKeyMapping\"); })());      //No I18N\nconst Number                        = context.Entry.Number                        = getContextEntry(new (function NumberKeyMapping() { KeyMapping.call(this, \"NumberKeyMapping\"); })());                                                //No I18N\nconst Percent                       = context.Entry.Percent                       = getContextEntry(new (function PercentKeyMapping() { KeyMapping.call(this, \"PercentKeyMapping\"); })());                                              //No I18N\nconst PhoneNumber                   = context.Entry.PhoneNumber                   = getContextEntry(new (function PhoneNumberKeyMapping() { KeyMapping.call(this, \"PhoneNumberKeyMapping\"); })());                                      //No I18N\nconst Rating                        = context.Entry.Rating                        = getContextEntry(new (function RatingKeyMapping() { KeyMapping.call(this, \"RatingKeyMapping\"); })());                                                //No I18N\nconst Text                          = context.Entry.Text                          = getContextEntry(new (function TextKeyMapping() { KeyMapping.call(this, \"TextKeyMapping\"); })());                                                    //No I18N\nconst URL                           = context.Entry.URL                           = getContextEntry(new (function URLKeyMapping() { KeyMapping.call(this, \"URLKeyMapping\"); })());                                                      //No I18N\nconst CreatedBy                     = context.Entry.CreatedBy                     = getContextEntry(new (function CreatedByKeyMapping() { KeyMapping.call(this, \"CreatedByKeyMapping\"); })());                                          //No I18N\nconst ModifiedBy                    = context.Entry.ModifiedBy                    = getContextEntry(new (function ModifiedByKeyMapping() { KeyMapping.call(this, \"ModifiedByKeyMapping\"); })());                                        //No I18N\nconst Link                          = context.Entry.Link                          = getContextEntry(new (function LinkKeyMapping() { KeyMapping.call(this, \"LinkKeyMapping\"); })());                                                    //No I18N\nconst Lookup                        = context.Entry.Lookup                        = getContextEntry(new (function LookupKeyMapping() { KeyMapping.call(this, \"LookupKeyMapping\"); })());                                                //No I18N\nconst Rollup                        = context.Entry.Rollup                        = getContextEntry(new (function RollupKeyMapping() { KeyMapping.call(this, \"RollupKeyMapping\"); })());                                                //No I18N\nconst Sentiment\t\t\t\t\t\t= context.Entry.Sentiment\t\t\t\t\t  = getContextEntry(new (function SentimentKeyMapping() { KeyMapping.call(this, \"SentimentKeyMapping\"); })());\nconst KeywordExtract\t\t\t\t= context.Entry.KeywordExtract\t\t\t\t  = getContextEntry(new (function KeywordExtractKeyMapping() { KeyMapping.call(this, \"KeywordExtractKeyMapping\"); })());\nconst LanguageDetect\t\t\t\t= context.Entry.LanguageDetect\t\t\t\t  = getContextEntry(new (function LanguageDetectKeyMapping() { KeyMapping.call(this, \"LanguageDetectKeyMapping\"); })());\n\nconst AddFieldInsertPanelSearch   = context.Entry.AddFieldInsertPanelSearch   = getContextEntry(new (function AddFieldInsertPanelSearchKeyMapping() { KeyMapping.call(this, \"AddFieldInsertPanelSearchKeyMapping\"); })());      //No I18N\nconst HideFieldsSearch            = context.Entry.HideFieldsSearch            = getContextEntry(new (function HideFieldsSearchKeyMapping() { KeyMapping.call(this, \"HideFieldsSearchKeyMapping\"); })());                        //No I18N\nconst SortAddAnotherFieldSearch   = context.Entry.SortAddAnotherFieldSearch   = getContextEntry(new (function SortAddAnotherFieldSearchKeyMapping() { KeyMapping.call(this, \"SortAddAnotherFieldSearchKeyMapping\"); })());      //No I18N\nconst FilterAddAnotherFieldSearch = context.Entry.FilterAddAnotherFieldSearch = getContextEntry(new (function FilterAddAnotherFieldSearchKeyMapping() { KeyMapping.call(this, \"FilterAddAnotherFieldSearchKeyMapping\"); })());  //No I18N\nconst FilterConditionsContainer   = context.Entry.FilterConditionsContainer   = getContextEntry(new (function FilterConditionsContainerKeyMapping() { KeyMapping.call(this, \"FilterConditionsContainerKeyMapping\"); })());      //No I18N\nconst CreateViewDialogSearch      = context.Entry.CreateViewDialogSearch      = getContextEntry(new (function CreateViewDialogSearchKeyMapping() { KeyMapping.call(this, \"CreateViewDialogSearchKeyMapping\"); })());            //No I18N\nconst AddFieldEditPanelSearch     = context.Entry.AddFieldEditPanelSearch     = getContextEntry(new (function AddFieldEditPanelSearchKeyMapping() { KeyMapping.call(this, \"AddFieldEditPanelSearchKeyMapping\"); })());          //No I18N\nconst AddFieldCreatePanelSearch   = context.Entry.AddFieldCreatePanelSearch   = getContextEntry(new (function AddFieldCreatePanelSearchKeyMapping() { KeyMapping.call(this, \"AddFieldCreatePanelSearchKeyMapping\"); })());          //No I18N\nconst FilterAddFieldSearch        = context.Entry.FilterAddFieldSearch        = getContextEntry(new (function FilterAddFieldSearchKeyMapping() { KeyMapping.call(this, \"FilterAddFieldSearchKeyMapping\"); })());                //No I18N\nconst ListViewSearch              = context.Entry.ListViewSearch              = getContextEntry(new (function ListViewSearchKeyMapping() { KeyMapping.call(this, \"ListViewSearchKeyMapping\"); })());                            //No I18N\n\nconst RecordViewMultiSelect  = context.Entry.RecordViewMultiSelect  = getContextEntry(new (function RecordViewMultiSelectKeyMapping() { KeyMapping.call(this, \"UI.editor.KeyboardShortcut.recordViewMultiSelect\"); })());    //No I18N\nconst RecordViewSingleSelect = context.Entry.RecordViewSingleSelect = getContextEntry(new (function RecordViewSingleSelectKeyMapping() { KeyMapping.call(this, \"UI.editor.KeyboardShortcut.recordViewSingleSelect\"); })());  //No I18N\nconst RecordViewSentiment    = context.Entry.RecordViewSentiment    = getContextEntry(new (function RecordViewSentimentKeyMapping() { KeyMapping.call(this, \"UI.editor.KeyboardShortcut.recordViewSentiment\"); })());  //No I18N\n\nconst FilterMultiSelect  = context.Entry.FilterMultiSelect  = getContextEntry(new (function FilterMultiSelectKeyMapping() { KeyMapping.call(this, \"UI.editor.KeyboardShortcut.filterMultiSelect\"); })());    //No I18N\nconst FilterSentiment    = context.Entry.FilterSentiment    = getContextEntry(new (function FilterMultiSelectKeyMapping() { KeyMapping.call(this, \"UI.editor.KeyboardShortcut.filterSentiment\"); })());    //No I18N\nconst FilterSingleSelect = context.Entry.FilterSingleSelect = getContextEntry(new (function FilterSingleSelectKeyMapping() { KeyMapping.call(this, \"UI.editor.KeyboardShortcut.filterSingleSelect\"); })());  //No I18N\n\n//contextual menu context\nconst ContextMenu = context.Entry.ContextMenu = getContextEntry(new (function ContextMenuKeyMapping() { KeyMapping.call(this, \"UI.Table.Listing.KeyboardShortcut.ContextMenu_Heading\"); })());  //No I18N\nvar   ComboBox    = context.Entry.ComboBox    = getContextEntry(new (function ComboBoxKeyMapping() { KeyMapping.call(this, \"UI.Table.Listing.KeyboardShortcut.ComboBox_Heading\"); })());        //No I18N\n//shortcut context\nconst ShortCut = context.Entry.ShortCut = getContextEntry(new (function ShortCutKeyMapping() { KeyMapping.call(this, \"UI.tables.common.gridview\"); })());  //No I18N\n\nconst RollupComboBox = context.Entry.RollupComboBox = getContextEntry(new (function RollupComboBoxKeyMapping() { KeyMapping.call(this, \"RollupComboBoxKeyMapping\"); })());  //No I18N\n\nconst FormDesignCustomization = context.Entry.FormDesignCustomization = getContextEntry(new (function FormDesignCustomizationKeyMapping() { KeyMapping.call(this, \"FormDesignCustomizationKeyMapping\"); })());  //No I18N\nconst FormShareDialog         = context.Entry.FormShareDialog         = getContextEntry(new (function FormShareDialogKeyMapping() { KeyMapping.call(this, \"FormShareDialogKeyMapping\"); })());                  //No I18N\n\nconst GridManageFieldsInsertPanel       = context.Entry.GridManageFieldsInsertPanel       = getContextEntry(new (function GridManageFieldsInsertPanelKeyMapping() { KeyMapping.call(this, \"GridManageFieldsInsertPanelKeyMapping\"); })());              //No I18N\nconst GridManageFieldsInsertPanelSearch = context.Entry.GridManageFieldsInsertPanelSearch = getContextEntry(new (function GridManageFieldsInsertPanelSearchKeyMapping() { KeyMapping.call(this, \"GridManageFieldsInsertPanelSearchKeyMapping\"); })());  //No I18N\nconst GridManageFieldsInsertPanelSearch_FieldConfiguration = context.Entry.GridManageFieldsInsertPanelSearch_FieldConfiguration = getContextEntry(new (function GridManageFieldsInsertPanelSearch_FieldConfigurationKeyMapping() { KeyMapping.call(this, \"GridManageFieldsInsertPanelSearch_FieldConfigurationKeyMapping\"); })());  //No I18N\nconst GridManageFieldsEditPanel         = context.Entry.GridManageFieldsEditPanel         = getContextEntry(new (function GridManageFieldsEditPanelKeyMapping() { KeyMapping.call(this, \"GridManageFieldsEditPanelKeyMapping\"); })());                  //No I18N\nconst GridManageFieldsEditPanelSearch   = context.Entry.GridManageFieldsEditPanelSearch   = getContextEntry(new (function GridManageFieldsEditPanelSearchKeyMapping() { KeyMapping.call(this, \"GridManageFieldsEditPanelSearchKeyMapping\"); })());      //No I18N\nconst GridManageFieldsCreatePanel       = context.Entry.GridManageFieldsCreatePanel       = getContextEntry(new (function GridManageFieldsCreatePanelKeyMapping() { KeyMapping.call(this, \"GridManageFieldsCreatePanelKeyMapping\"); })());              //No I18N\nvar   MenuWrapper                       = context.Entry.MenuWrapper                       = getContextEntry(new (function MenuWrapperKeyMapping() { KeyMapping.call(this, \"MenuWrapperKeyMapping\"); })());                                              //No I18N\nconst CustomFilterSearch                = context.Entry.CustomFilterSearch                = getContextEntry(new (function CustomFilterSearchKeyMapping() { KeyMapping.call(this, \"CustomFilterSearchKeyMapping\"); })());                                //No I18N\n\nconst FormBuilder           = context.Entry.FormBuilder           = getContextEntry(new (function FormBuilder() { KeyMapping.call(this, \"FormBuilderKeyMapping\"); })());                      //No I18N\nconst FormBuilderSchemaName = context.Entry.FormBuilderSchemaName = getContextEntry(new (function FormBuilderSchemaName() { KeyMapping.call(this, \"FormBuilderSchemaNameKeyMapping\"); })());  //No I18N\nconst FormManageFields      = context.Entry.FormManageFields           = getContextEntry(new (function FormManageFields() { KeyMapping.call(this, \"FormManageFieldsKeyMapping\"); })());                      //No I18N\n\nconst ExportToZohoCreatorDialog         = context.Entry.ExportToZohoCreatorDialog         = getContextEntry(new (function ExportToZohoCreatorDialog() { KeyMapping.call(this, \"ExportToZohoCreatorDialogKeyMapping\"); })());                  //No I18N\nconst ExportToZohoCreatorComboBoxDialog = context.Entry.ExportToZohoCreatorComboBoxDialog = getContextEntry(new (function ExportToZohoCreatorComboBoxDialog() { KeyMapping.call(this, \"ExportToZohoCreatorComboBoxDialogKeyMapping\"); })());  //No I18N\n\nconst DCCellEditor              = context.Entry.DCCellEditor              = getContextEntry(new (function DCCellEditorKeyMapping() { KeyMapping.call(this, \"UI.editor.KeyboardShortcut.cellEditHeading\"); })());                  //No I18N\nconst DCFieldTypeComponents     = context.Entry.DCFieldTypeComponents     = getContextEntry(new (function DCFieldTypeComponentsKeyMapping() { KeyMapping.call(this, \"FieldTypeComponentsKeyMapping\"); })());                      //No I18N\nconst DCMultiSelectComponent    = context.Entry.DCMultiSelectComponent    = getContextEntry(new (function DCMultiSelectComponentKeyMapping() { KeyMapping.call(this, \"UI.editor.KeyboardShortcut.cellEditMultiSelect\"); })());    //No I18N\nconst DCSingleSelectComponent   = context.Entry.DCSingleSelectComponent   = getContextEntry(new (function DCSingleSelectComponentKeyMapping() { KeyMapping.call(this, \"UI.editor.KeyboardShortcut.cellEditSingleSelect\"); })());  //No I18N\nconst DCCollaboratorComponent   = context.Entry.DCCollaboratorComponent   = getContextEntry(new (function DCCollaboratorComponentKeyMapping() { KeyMapping.call(this, \"UI.editor.KeyboardShortcut.cellEditCollaborator\"); })());  //No I18N\nconst DCSentimentComponent      = context.Entry.DCSentimentComponent      = getContextEntry(new (function DCSentimentComponentKeyMapping() { KeyMapping.call(this, \"UI.editor.KeyboardShortcut.cellEditSentiment\"); })());        //No I18N\nconst DCTextComponent           = context.Entry.DCTextComponent           = getContextEntry(new (function DCTextComponentKeyMapping() { KeyMapping.call(this, \"UI.editor.KeyboardShortcut.cellEditHeading\"); })());               //No I18N\nconst DCPhoneNumberComponent    = context.Entry.DCPhoneNumberComponent    = getContextEntry(new (function DCPhoneNumberComponentKeyMapping() { KeyMapping.call(this, \"UI.editor.KeyboardShortcut.cellEditHeading\"); })());        //No I18N\nconst DCEmailComponent          = context.Entry.DCEmailComponent          = getContextEntry(new (function DCEmailComponentKeyMapping() { KeyMapping.call(this, \"UI.editor.KeyboardShortcut.cellEditHeading\"); })());              //No I18N\nconst DCURLComponent            = context.Entry.DCURLComponent            = getContextEntry(new (function DCURLComponentKeyMapping() { KeyMapping.call(this, \"UI.editor.KeyboardShortcut.cellEditHeading\"); })());                //No I18N\nconst DCNumberComponent         = context.Entry.DCNumberComponent         = getContextEntry(new (function DCNumberComponentKeyMapping() { KeyMapping.call(this, \"UI.editor.KeyboardShortcut.cellEditHeading\"); })());             //No I18N\nconst DCPercentComponent        = context.Entry.DCPercentComponent        = getContextEntry(new (function DCPercentComponentKeyMapping() { KeyMapping.call(this, \"UI.editor.KeyboardShortcut.cellEditHeading\"); })());            //No I18N\nconst DCCurrencyComponent       = context.Entry.DCCurrencyComponent       = getContextEntry(new (function DCCurrencyComponentKeyMapping() { KeyMapping.call(this, \"UI.editor.KeyboardShortcut.cellEditHeading\"); })());           //No I18N\nconst DCDateTimeComponent       = context.Entry.DCDateTimeComponent       = getContextEntry(new (function DCDateTimeComponentKeyMapping() { KeyMapping.call(this, \"UI.editor.KeyboardShortcut.cellEditHeading\"); })());           //No I18N\nconst DCLinkComponent           = context.Entry.DCLinkComponent           = getContextEntry(new (function DCLinkComponentKeyMapping() { KeyMapping.call(this, \"UI.editor.KeyboardShortcut.cellEditHeading\"); })());               //No I18N\nconst DCAttachmentComponent     = context.Entry.DCAttachmentComponent     = getContextEntry(new (function DCAttachmentComponentKeyMapping() { KeyMapping.call(this, \"UI.editor.KeyboardShortcut.cellEditHeading\"); })());         //No I18N\nconst DCAutoNumberComponent     = context.Entry.DCAutoNumberComponent     = getContextEntry(new (function DCAutoNumberComponentKeyMapping() { KeyMapping.call(this, \"UI.editor.KeyboardShortcut.cellEditHeading\"); })());         //No I18N\nconst DCCreatedTimeComponent    = context.Entry.DCCreatedTimeComponent    = getContextEntry(new (function DCCreatedTimeComponentKeyMapping() { KeyMapping.call(this, \"UI.editor.KeyboardShortcut.cellEditHeading\"); })());        //No I18N\nconst DCModifiedTimeComponent   = context.Entry.DCModifiedTimeComponent   = getContextEntry(new (function DCModifiedTimeComponentKeyMapping() { KeyMapping.call(this, \"UI.editor.KeyboardShortcut.cellEditHeading\"); })());       //No I18N\nconst DCCreatedByComponent      = context.Entry.DCCreatedByComponent      = getContextEntry(new (function DCCreatedByComponentKeyMapping() { KeyMapping.call(this, \"UI.editor.KeyboardShortcut.cellEditHeading\"); })());          //No I18N\nconst DCModifiedByComponent     = context.Entry.DCModifiedByComponent     = getContextEntry(new (function DCModifiedByComponentKeyMapping() { KeyMapping.call(this, \"UI.editor.KeyboardShortcut.cellEditHeading\"); })());         //No I18N\nconst DCFormulaComponent        = context.Entry.DCFormulaComponent        = getContextEntry(new (function DCFormulaComponentKeyMapping() { KeyMapping.call(this, \"UI.editor.KeyboardShortcut.cellEditHeading\"); })());            //No I18N\nconst DCLookupComponent         = context.Entry.DCLookupComponent         = getContextEntry(new (function DCLookupComponentKeyMapping() { KeyMapping.call(this, \"UI.editor.KeyboardShortcut.cellEditHeading\"); })());             //No I18N\nconst DCRollupComponent         = context.Entry.DCRollupComponent         = getContextEntry(new (function DCRollupComponentKeyMapping() { KeyMapping.call(this, \"UI.editor.KeyboardShortcut.cellEditHeading\"); })());             //No I18N\nconst DCKeywordExtractComponent = context.Entry.DCKeywordExtractComponent = getContextEntry(new (function DCKeywordExtractComponentKeyMapping() { KeyMapping.call(this, \"UI.editor.KeyboardShortcut.cellEditHeading\"); })());     //No I18N\nconst DCLanguageDetectComponent = context.Entry.DCLanguageDetectComponent = getContextEntry(new (function DCLanguageDetectComponentKeyMapping() { KeyMapping.call(this, \"UI.editor.KeyboardShortcut.cellEditHeading\"); })());     //No I18N\n\nconst GridContextMenu = context.Entry.GridContextMenu = getContextEntry(new (function ContextMenuKeyMapping() { KeyMapping.call(this, \"GridContextMenuKeyMapping\"); })());\n\nconst SnapBuilder = context.Entry.SnapBuilder = getContextEntry(new (function SnapBuilderKeyMapping() { KeyMapping.call(this, \"SnapBuilderKeyMapping\"); })());  //No I18N\nconst SnapGridCellSelection = context.Entry.SnapGridCellSelection = getContextEntry(new (function SnapGridKeyMapping() { KeyMapping.call(this, \"SnapGridKeyMapping\"); })());  //No I18N\nconst SnapGridCellEditor = context.Entry.SnapGridCellEditor = getContextEntry(new (function SnapGridEditorKeyMapping() { KeyMapping.call(this, \"SnapGridEditorKeyMapping\"); })());  //No I18N\n\ncontext.setRoot(Browser.Node);\n\nchainNodes(Browser, [Pages]);\n\tchainNodes(Pages, [Tables]);\n\t\tchainNodes(Tables, [Views]);\n\t\t\tchainNodes(Views, [GridView]);\n\t\t\t\tchainNodes(GridView, [Print]);\n\t\t\t\tchainNodes(GridView, [GridManageFields]);\n\t\t\t\t\tchainNodes(Print, [PrintFormatDialog]);\n\t\t\t\tchainNodes(GridView, [ShortCut]);\n\t\t\t\t\tchainNodes(ShortCut, [FieldSelection]);\n\t\t\t\t\tchainNodes(ShortCut, [CellSelection]);\n\t\t\t\t\tchainNodes(CellSelection, [FieldType]);\n\n\t\t\t\t\t\tchainNodes(FieldType, [editableField]);\n\t\t\t\t\t\t\tchainNodes(editableField, [Attachment]);\n\t\t\t\t\t\t\tchainNodes(editableField, [CheckBox]);\n\t\t\t\t\t\t\tchainNodes(editableField, [Address]);\n\t\t\t\t\t\t\tchainNodes(editableField, [Currency]);\n\t\t\t\t\t\t\tchainNodes(editableField, [DateTime]);\n\t\t\t\t\t\t\tchainNodes(editableField, [Email]);\n\t\t\t\t\t\t\tchainNodes(editableField, [MultipleSelection]);\n\t\t\t\t\t\t\tchainNodes(editableField, [SingleSelection]);\n\t\t\t\t\t\t\tchainNodes(editableField, [CollaboratorMultipleSelection]);\n\t\t\t\t\t\t\tchainNodes(editableField, [CollaboratorSingleSelection]);\n\t\t\t\t\t\t\tchainNodes(editableField, [CollaboratorSelection]);\n\t\t\t\t\t\t\tchainNodes(editableField, [Number]);\n\t\t\t\t\t\t\tchainNodes(editableField, [Percent]);\n\t\t\t\t\t\t\tchainNodes(editableField, [PhoneNumber]);\n\t\t\t\t\t\t\tchainNodes(editableField, [Rating]);\n\t\t\t\t\t\t\tchainNodes(editableField, [Text]);\n\t\t\t\t\t\t\tchainNodes(editableField, [URL]);\n\t\t\t\t\t\t\tchainNodes(editableField, [Link]);\n\t\t\t\t\t\t\tchainNodes(editableField, [Sentiment]);\n\n\t\t\t\t\t\tchainNodes(FieldType, [nonEditableField]);\n\t\t\t\t\t\t\tchainNodes(nonEditableField, [AutoNumber]);\n\t\t\t\t\t\t\tchainNodes(nonEditableField, [Lookup]);\n\t\t\t\t\t\t\tchainNodes(nonEditableField, [Rollup]);\n\t\t\t\t\t\t\tchainNodes(nonEditableField, [CreatedBy]);\n\t\t\t\t\t\t\tchainNodes(nonEditableField, [ModifiedBy]);\n\t\t\t\t\t\t\tchainNodes(nonEditableField, [Formula]);\n\t\t\t\t\t\t\tchainNodes(nonEditableField, [ModifiedTime]);\n\t\t\t\t\t\t\tchainNodes(nonEditableField, [CreatedTime]);\n\t\t\t\t\t\t\tchainNodes(nonEditableField, [KeywordExtract]);\n\t\t\t\t\t\t\tchainNodes(nonEditableField, [LanguageDetect]);\n\n\n\t\t\t\tchainNodes(GridView, [FieldEditor]);\n\n\t\t\tchainNodes(Views, [GalleryView]);\n\t\t\t\tchainNodes(GalleryView, [GalleryBuilder]);\n\n\t\t\tchainNodes(Views, [CalendarView]);\n\t\t\t\tchainNodes(CalendarView, [ListView]);\n\t\t\t\t\tchainNodes(ListView, [ListViewSearch]);\n\n\t\t\tchainNodes(Views, [KanbanView]);\n\t\t\t\t// chainNodes(KanbanView, [GalleryBuilder]);\n\t\t\t\tchainNodes(KanbanView, [KanbanBuilder]);\n\t\tchainNodes(Views, [GanttView]);\n\t\t\tchainNodes(Views, [FormBuilder]);\n\t\t\t\tchainNodes(FormBuilder, [FormBuilderSchemaName]);\n\t\t\t\tchainNodes(FormBuilder, [FormManageFields]);\n\tchainNodes(Pages, [SnapBuilder])\n\t\tchainNodes(SnapBuilder, [SnapGridCellSelection])\n\n\nchainNodes(Browser, [CellEditor]);\n\tchainNodes(CellEditor, [FieldTypeComponents]);\n\t\tchainNodes(FieldTypeComponents, [LongTextFieldComponent]);\n\t\tchainNodes(FieldTypeComponents, [DateFieldComponent]);\n\t\tchainNodes(FieldTypeComponents, [GridFindAnItemComponentMS]);\n\t\tchainNodes(FieldTypeComponents, [GridFindAnItemComponentSA]);\n\t\tchainNodes(FieldTypeComponents, [GridRating]);\n\t\tchainNodes(FieldTypeComponents, [GridCheckbox]);\n\t\tchainNodes(FieldTypeComponents, [GridLinkFieldMultiSelect]);\n\t\tchainNodes(FieldTypeComponents, [GridLinkFieldSingleSelect]);\n\nchainNodes(Browser, [Find]);\nchainNodes(Browser, [Search]);\n\tchainNodes(Search, [AddFieldInsertPanelSearch]);\n\tchainNodes(Search, [HideFieldsSearch]);\n\tchainNodes(Search, [SortAddAnotherFieldSearch]);\n\tchainNodes(Search, [FilterAddAnotherFieldSearch]);\n\tchainNodes(Search, [CreateViewDialogSearch]);\n\tchainNodes(Search, [FilterAddFieldSearch]);\n\tchainNodes(Search, [AddFieldEditPanelSearch]);\n\tchainNodes(Search, [AddFieldCreatePanelSearch]);\n\tchainNodes(Search, [GridManageFieldsInsertPanelSearch]);\n\tchainNodes(Search, [GridManageFieldsInsertPanelSearch_FieldConfiguration]);\n\tchainNodes(Search, [GridManageFieldsEditPanelSearch]);\n\tchainNodes(Search, [CustomFilterSearch]);\n\nchainNodes(Browser, [FormShareDialog]);\nchainNodes(Browser, [DialogStack]);\n\tchainNodes(DialogStack, [LinkFieldChooseDialog]);\n\tchainNodes(DialogStack, [EditFieldPanelSelectionInput]);\n\tchainNodes(DialogStack, [ComboBox]);\n\t\tchainNodes(ComboBox, [ExportToZohoCreatorComboBoxDialog]);\n\t\tchainNodes(ComboBox, [RollupComboBox]);\n\tchainNodes(DialogStack, [addEntitiesDialog]);\n\tchainNodes(DialogStack, [FilterConditionsContainer]);\n\tchainNodes(DialogStack, [InviteACollaboratorDialog]);\n\t\tchainNodes(InviteACollaboratorDialog, [InviteACollaboratorRoleDialog]);\n\nchainNodes(Browser, [Dialog]);\n\tchainNodes(Dialog, [RecordViewDialog]);\n\t\tchainNodes(RecordViewDialog, [RecordViewFieldTypeComponents]);\n\t\t\tchainNodes(RecordViewFieldTypeComponents, [RecordViewMultiSelect]);\n\t\t\tchainNodes(RecordViewFieldTypeComponents, [RecordViewSingleSelect]);\n\t\t\tchainNodes(RecordViewFieldTypeComponents, [RecordViewSentiment]);\n\t\t\t\n\tchainNodes(Dialog, [RecordHeightDialogInput]);\n\tchainNodes(Dialog, [EditBaseDialog]);\n\nchainNodes(Browser, [FieldTypeComponentsForFilter]);\nchainNodes(Browser, [FilterFieldTypeComponents]);\n\tchainNodes(FilterFieldTypeComponents, [FilterMultiSelect]);\n\tchainNodes(FilterFieldTypeComponents, [FilterSentiment]);\n\tchainNodes(FilterFieldTypeComponents, [FilterSingleSelect]);\n\t\nchainNodes(Browser, [ContextMenu]);\nchainNodes(Browser, [FormDesignCustomization]);\nchainNodes(Browser, [GridManageFieldsInsertPanel]);\nchainNodes(Browser, [GridManageFieldsEditPanel]);\nchainNodes(Browser, [GridManageFieldsCreatePanel]);\nchainNodes(Browser, [MenuWrapper]);\n\n\nchainNodes(Browser, [GridManageFields]);\nchainNodes(Browser, [MenuWrapper]);\nchainNodes(Browser, [automationSidePanel])\nchainNodes(automationSidePanel, [RunHistorySidePanel])\nchainNodes(Browser, [versionHistorySidePanel])\nchainNodes(Browser, [sidePanelModalDialog])\nchainNodes(Browser, [dropdownSearch])\nchainNodes(Browser, [profile])\nchainNodes(Browser, [baseShareSidePanel])\nchainNodes(baseShareSidePanel, [shareMakeSuggestion]);\nchainNodes(baseShareSidePanel, [shareAddMemberPanel]);\nchainNodes(baseShareSidePanel, [baseShareCollaboratorSidePanelSearchFocus]);\n\nchainNodes(Browser, [ExportToZohoCreatorDialog])\n\nchainNodes(Browser, [DCCellEditor]);\n\tchainNodes(DCCellEditor, [DCFieldTypeComponents]);\n\t\tchainNodes(DCFieldTypeComponents, [DCMultiSelectComponent]);\n\t\tchainNodes(DCFieldTypeComponents, [DCSingleSelectComponent]);\n\t\tchainNodes(DCFieldTypeComponents, [DCCollaboratorComponent]);\n\t\tchainNodes(DCFieldTypeComponents, [DCSentimentComponent]);\n\t\tchainNodes(DCFieldTypeComponents, [DCTextComponent]);\n\t\tchainNodes(DCFieldTypeComponents, [DCPhoneNumberComponent]);\n\t\tchainNodes(DCFieldTypeComponents, [DCEmailComponent]);\n\t\tchainNodes(DCFieldTypeComponents, [DCURLComponent]);\n\t\tchainNodes(DCFieldTypeComponents, [DCNumberComponent]);\n\t\tchainNodes(DCFieldTypeComponents, [DCPercentComponent]);\n\t\tchainNodes(DCFieldTypeComponents, [DCCurrencyComponent]);\n\t\tchainNodes(DCFieldTypeComponents, [DCDateTimeComponent]);\n\t\tchainNodes(DCFieldTypeComponents, [DCLinkComponent]);\n\t\tchainNodes(DCFieldTypeComponents, [DCAttachmentComponent]);\n\t\tchainNodes(DCFieldTypeComponents, [DCAutoNumberComponent]);\n\t\tchainNodes(DCFieldTypeComponents, [DCCreatedTimeComponent]);\n\t\tchainNodes(DCFieldTypeComponents, [DCModifiedTimeComponent]);\n\t\tchainNodes(DCFieldTypeComponents, [DCCreatedByComponent]);\n\t\tchainNodes(DCFieldTypeComponents, [DCModifiedByComponent]);\n\t\tchainNodes(DCFieldTypeComponents, [DCFormulaComponent]);\n\t\tchainNodes(DCFieldTypeComponents, [DCLookupComponent]);\n\t\tchainNodes(DCFieldTypeComponents, [DCRollupComponent]);\n\t\tchainNodes(DCFieldTypeComponents, [DCKeywordExtractComponent]);\n\t\tchainNodes(DCFieldTypeComponents, [DCLanguageDetectComponent]);\n\nchainNodes(Browser, [GridContextMenu])\n\nchainNodes(Browser, [PrintDialog])\n\nchainNodes(Browser, [SnapGridCellEditor])\n\nfunction getContextEntry(entry) {\n\treturn {\n\t\tContext: entry,\n\t\tNode   : context.createNode(entry)\n\t}\n}\n\nexport const ViewsKeyContextEntries = {\n\t// 1: CellSelection, //Grid view\n\t1: CellSelection,   //Grid view\n\t2: KanbanView,\n\t3: CalendarView,\n\t4: GalleryView,\n\t5: GanttView,\n\t6: FormView,\n\t7: FormBuilder\n}\n\nexport const secondaryContextEntries = {\n\t1: GridManageFields,\n\t2: KanbanBuilder,\n\t3: ListView,\n\t4: GalleryBuilder,\n\t// 6: GridManageFields\n\t6: FormDesignCustomization // toggle the above statement if manage fields has to be opened first..\n}\n\nfunction deepFreeze(object) {\n\tconst keys = Object.getOwnPropertyNames(object);\n\tfor (const key of keys) {\n\t\tconst value = object[key];\n\t\tif (value && typeof value == 'object') {\n\t\t\tdeepFreeze(value);\n\t\t}\n\t}\n\treturn Object.freeze(object);\n}\n\nObject.freeze(ViewsKeyContextEntries);\n// deepFreeze(KeyBoardEvents);\nglobalThis.KeyBoardEvents = KeyBoardEvents;","\nimport * as FIELD_TYPES from './../../Constants/FieldTypes.js';\nimport { A, ADD, ALT, BACKSLASH, CLOSEBRACKET, COMMA, COMMAND, CTRL, DECIMAL, DIVIDE, DOT, EQUAL, LEFTCOMMAND, MINUS, MULTIPLY, NINE, NUMPAD_NINE, NUMPAD_ZERO, OPENBRACKET, PURE_PRINTABLE_CHAR, RIGHTCOMMAND, SEMICOLON, SHIFT, SINGLEQUOTE, SLASH, SPACE, SUBTRACT, TILDE, Z, ZERO } from './../../Constants/KeyCodes.js';\nexport let SUPER;\nlet getShortCutKeyCombo;\nif (window.navigator.platform.toUpperCase().includes(\"MAC\")) {\n\tSUPER = COMMAND;\n\tgetShortCutKeyCombo = ev => {\n\t\tconst keyCode = getKeyCode(ev);\n\t\tlet Key = '';\n\t\tev.metaKey && (Key += `${SUPER}+`);\n\t\tev.ctrlKey && (Key += `${CTRL}+`);\n\t\tev.altKey && (Key += `${ALT}+`);\n\t\tev.shiftKey && (Key += `${SHIFT}+`);\n\t\tKey += keyCode;\n\t\treturn Key;\n\t}\n} else {\n\tSUPER = CTRL;\n\tgetShortCutKeyCombo = ev => {\n\t\tconst keyCode = getKeyCode(ev);\n\t\tlet Key = '';\n\t\tev.ctrlKey && (Key += `${CTRL}+`);\n\t\tev.altKey && (Key += `${ALT}+`);\n\t\tev.shiftKey && (Key += `${SHIFT}+`);\n\t\tKey += keyCode;\n\t\treturn Key;\n\t}\n}\n\nexport function getKeyCode(ev) {\n\tconst keyCode = ev.keyCode || ev.which;\n\treturn keyCode.toString();\n}\n\nconst KeyCode_A = ~~A;\nconst KeyCode_Z = ~~Z;\nconst KeyCode_ZERO = ~~ZERO;\nconst KeyCode_NINE = ~~NINE;\nconst KeyCode_NUMPAD_ZERO = ~~NUMPAD_ZERO;\nconst KeyCode_NUMPAD_NINE = ~~NUMPAD_NINE;\n\nfunction isPrintable(ev) {\n\tif (!ev.metaKey && !ev.ctrlKey && !ev.altKey) {\n\n\t\tvar keyCode = ev.keyCode || ev.which;\n\t\tif ((keyCode >= KeyCode_A && keyCode <= KeyCode_Z) || (keyCode >= KeyCode_ZERO && keyCode <= KeyCode_NINE) || (keyCode >= KeyCode_NUMPAD_ZERO && keyCode <= KeyCode_NUMPAD_NINE)) {\n\t\t\treturn true\n\t\t}\n\n\t\tvar keyCode = getKeyCode(ev);\n\t\tswitch (keyCode) {\n\t\t\tcase TILDE:\n\t\t\tcase MINUS:\n\t\t\tcase EQUAL:\n\t\t\tcase OPENBRACKET:\n\t\t\tcase CLOSEBRACKET:\n\t\t\tcase BACKSLASH:\n\t\t\tcase SEMICOLON:\n\t\t\tcase SINGLEQUOTE:\n\t\t\tcase COMMA:\n\t\t\tcase DOT:\n\t\t\tcase SLASH:\n\t\t\tcase ADD:\n\t\t\tcase SUBTRACT:\n\t\t\tcase MULTIPLY:\n\t\t\tcase DIVIDE:\n\t\t\tcase DECIMAL:\n\t\t\t\t// case DELETE       : // DELETE and BACKSPACE doesn't come under PurePrinatbleCharacter\n\t\t\t\t// case BACKSPACE    :\n\t\t\t\treturn true;\n\t\t\tcase SPACE:\n\t\t\t\treturn !ev.shiftKey;\n\t\t}\n\t}\n\treturn false;\n}\nfunction exceptionCase(ev) {\n\tif (Table.Data && Table.Data.Workspace && window.grid && interacter) {\n\t\tconst keyCode = getKeyCode(ev);\n\t\tconst activeCell = grid.Navigation.getActiveCell();\n\t\tconst activeFID = interacter.getFieldID(activeCell.startCol);\n\t\treturn (keyCode === SPACE) && (interacter.getFieldType(activeFID) == FIELD_TYPES.CHECKBOX) ? true : false;\n\t}\n\treturn false;\n}\nexport function getKeyCombination(ev) {\n\tconst keyCode = getKeyCode(ev);\n\tlet Key = '';\n\tconst isModifierKey = (keyCode === RIGHTCOMMAND || keyCode === LEFTCOMMAND || keyCode === COMMAND) || (keyCode === SHIFT) || (keyCode === ALT) || (keyCode === CTRL);\n\tif (isPrintable(ev)) {\n\t\t// if (isPrintable(ev)) {// TODO: space is needed for toggling data in checkbox field in grid.. Dhanush did it\t \n\t\tKey = PURE_PRINTABLE_CHAR;\n\t} else if (!isModifierKey) {\n\t\tKey = getShortCutKeyCombo(ev);\n\t} else {\n\t\tev.metaKey && (Key = COMMAND);\n\t\tKey += (ev.ctrlKey ? (Key === '' ? '' : '+') + CTRL : '');\n\t\tKey += (ev.altKey ? (Key === '' ? '' : '+') + ALT : '');\n\t\tKey += (ev.shiftKey ? (Key === '' ? '' : '+') + SHIFT : '');\n\t}\n\treturn Key;\n}\n","const UNKNOWN_DATE_FORMAT     = \"Unknown Date Format\";        // No I18N\nconst UNKNOWN_HOUR_CYCLE      = \"Unknown Hour Cycle Format\";  // No I18N\nconst UNKNOWN_CURRENCY_FORMAT = \"Unknown Currency Format\";    // No I18N\n\nexport const ADD_FIELD_CURRENCIES_USD = 1;\nexport const ADD_FIELD_CURRENCIES_EUR = 2;\nexport const ADD_FIELD_CURRENCIES_GBP = 3;\nexport const ADD_FIELD_CURRENCIES_JPY = 4;\nexport const ADD_FIELD_CURRENCIES_CAD = 5;\nexport const ADD_FIELD_CURRENCIES_AUD = 6;\nexport const ADD_FIELD_CURRENCIES_CNY = 7;\nexport const ADD_FIELD_CURRENCIES_CHF = 8;\nexport const ADD_FIELD_CURRENCIES_SGD = 9;\nexport const ADD_FIELD_CURRENCIES_INR = 10;\nexport const ADD_FIELD_CURRENCIES_ZAR = 11;\n\nexport const ADD_FIELD_PRECISIONS_ZERO_PRECISION  = 0;\nexport const ADD_FIELD_PRECISIONS_ONE_PRECISION   = 1;\nexport const ADD_FIELD_PRECISIONS_TWO_PRECISION   = 2;\nexport const ADD_FIELD_PRECISIONS_THREE_PRECISION = 3\n\nexport const ADD_FIELD_CURRENCY_POSITIONS_NONE       = 5;\nexport const ADD_FIELD_CURRENCY_POSITIONS_BEFORE     = 2;\nexport const ADD_FIELD_CURRENCY_POSITIONS_AFTER      = 3;\nexport const ADD_FIELD_CURRENCY_POSITIONS_ACCOUNTING = 4;\n\nexport const ADD_FIELD_TEXT_FORMATS_DEFAULT       = 1;\nexport const ADD_FIELD_TEXT_FORMATS_INIT_CAPS     = 2;\nexport const ADD_FIELD_TEXT_FORMATS_LOWER_CASE    = 3;\nexport const ADD_FIELD_TEXT_FORMATS_UPPER_CASE    = 4;\nexport const ADD_FIELD_TEXT_FORMATS_SENTENCE_CASE = 5;\n\n// export const ADD_FIELD_PERCENT_SYMBOL_HIDE= 0; // TODO: master_proxy_performance - unused line: Remove this line after some months of release\nexport const ADD_FIELD_PERCENT_SYMBOL_SHOW= 1;\n\nexport const ADD_FIELD_PHONE_NUMBER_FORMATS_DEFAULT             = 'xxxxxxxxxx'; //No I18N\nexport const ADD_FIELD_PHONE_NUMBER_FORMATS_HYPHEN              = 'xxx-xxx-xxxx'; //No I18N\nexport const ADD_FIELD_PHONE_NUMBER_FORMATS_SPACE_HYPHEN        = 'xxx xxx-xxxx'; //No I18N\nexport const ADD_FIELD_PHONE_NUMBER_FORMATS_SPACE               = 'xxx xxx xxxx'; //No I18N\nexport const ADD_FIELD_PHONE_NUMBER_FORMATS_BRACES_SPACE_HYPHEN = '(xxx) xxx-xxxx'; //No I18N\nexport const ADD_FIELD_PHONE_NUMBER_FORMATS_PERIOD              = 'xxx.xxx.xxxx' //No I18N\n\nexport const ADD_FIELD_DATE_FORMATS_DEFAULT     = 1;\nexport const ADD_FIELD_DATE_FORMATS_DATE_FIRST  = 2;\nexport const ADD_FIELD_DATE_FORMATS_MONTH_FIRST = 3;\nexport const ADD_FIELD_DATE_FORMATS_YEAR_FIRST  = 4;\n\nexport const ADD_FIELD_TIME_FORMATS_NONE     = 0;\nexport const ADD_FIELD_TIME_FORMATS_FULL_DAY = 1;\nexport const ADD_FIELD_TIME_FORMATS_HALF_DAY = 2;\n\nexport const ADD_FIELD_RATING_ICON_STYLES_HEART    = 1;\nexport const ADD_FIELD_RATING_ICON_STYLES_STAR     = 2;\nexport const ADD_FIELD_RATING_ICON_STYLES_FLAG     = 3;\nexport const ADD_FIELD_RATING_ICON_STYLES_THUMB    = 4;\nexport const ADD_FIELD_RATING_ICON_STYLES_CHECKBOX = 5;\nexport const ADD_FIELD_RATING_ICON_STYLES_BADGE\t = 6;\nexport const ADD_FIELD_RATING_ICON_STYLES_TOOGLEBUTTON = 7;\nexport const ADD_FIELD_RATING_ICON_STYLES_SMILEY  = 8;\nexport const ADD_FIELD_RATING_ICON_STYLES_SHIELD  = 9;\n\nexport const ADD_FIELD_MAX_COUNTS_ONE   = 1;\nexport const ADD_FIELD_MAX_COUNTS_TWO   = 2;\nexport const ADD_FIELD_MAX_COUNTS_THREE = 3;\nexport const ADD_FIELD_MAX_COUNTS_FOUR  = 4;\nexport const ADD_FIELD_MAX_COUNTS_FIVE  = 5;\nexport const ADD_FIELD_MAX_COUNTS_SIX   = 6;\nexport const ADD_FIELD_MAX_COUNTS_SEVEN = 7;\nexport const ADD_FIELD_MAX_COUNTS_EIGHT = 8;\nexport const ADD_FIELD_MAX_COUNTS_NINE  = 9;\nexport const ADD_FIELD_MAX_COUNTS_TEN   = 10;\n\nexport const ADD_FIELD_AUTO_NUMBER_THOUSAND_SEPARATOR = 0;\nexport const ADD_FIELD_AUTO_NUMBER_PRECISION          = 20;\n\nexport const ADD_FIELD_TIME_FORMAT= 'HH:MM:SS'; //No I18N\nexport const ADD_FIELD_SUPPORTED_DATE_FORMATS_1 = 'Month D, YYYY';// No I18N\nexport const ADD_FIELD_SUPPORTED_DATE_FORMATS_2 = 'DD/MM/YYYY';// No I18N\nexport const ADD_FIELD_SUPPORTED_DATE_FORMATS_3 = 'MM/DD/YYYY';// No I18N\nexport const ADD_FIELD_SUPPORTED_DATE_FORMATS_4 = 'YYYY/MM/DD';// No I18N\n\nexport const ADD_FIELD_SUPPORTED_HOUR_CYCLES_0 = 0;\nexport const ADD_FIELD_SUPPORTED_HOUR_CYCLES_1 = '23H';// No I18N\nexport const ADD_FIELD_SUPPORTED_HOUR_CYCLES_2 = '12H';// No I18N\n\nexport const ADD_FIELD_SUPPORTED_CURRENCY_VALUE_1 = \"$\"; // No I18N\nexport const ADD_FIELD_SUPPORTED_CURRENCY_VALUE_2 = \"€\"; // No I18N\nexport const ADD_FIELD_SUPPORTED_CURRENCY_VALUE_3 = \"£\"; // No I18N\nexport const ADD_FIELD_SUPPORTED_CURRENCY_VALUE_4 = \"¥\"; // No I18N\nexport const ADD_FIELD_SUPPORTED_CURRENCY_VALUE_5 = \"$\"; // No I18N\nexport const ADD_FIELD_SUPPORTED_CURRENCY_VALUE_6 = \"$\"; // No I18N\nexport const ADD_FIELD_SUPPORTED_CURRENCY_VALUE_7 = \"¥\"; // No I18N\nexport const ADD_FIELD_SUPPORTED_CURRENCY_VALUE_8 = \"Fr.\"; // No I18N\nexport const ADD_FIELD_SUPPORTED_CURRENCY_VALUE_9 = \"$\"; // No I18N\nexport const ADD_FIELD_SUPPORTED_CURRENCY_VALUE_10= \"₹\"; // No I18N\nexport const ADD_FIELD_SUPPORTED_CURRENCY_VALUE_11= \"R\"; // No I18N\n\nexport const SUPPORTED_CURRENCY_VALUES = {\n    ADD_FIELD_SUPPORTED_CURRENCY_VALUE_1,\n    ADD_FIELD_SUPPORTED_CURRENCY_VALUE_2,\n    ADD_FIELD_SUPPORTED_CURRENCY_VALUE_3,\n    ADD_FIELD_SUPPORTED_CURRENCY_VALUE_4,\n    ADD_FIELD_SUPPORTED_CURRENCY_VALUE_5,\n    ADD_FIELD_SUPPORTED_CURRENCY_VALUE_6,\n    ADD_FIELD_SUPPORTED_CURRENCY_VALUE_7,\n    ADD_FIELD_SUPPORTED_CURRENCY_VALUE_8,\n    ADD_FIELD_SUPPORTED_CURRENCY_VALUE_9,\n    ADD_FIELD_SUPPORTED_CURRENCY_VALUE_10,\n    ADD_FIELD_SUPPORTED_CURRENCY_VALUE_11\n};\n\nexport const SUPPORTED_HOUR_CYCLES = {\n    ADD_FIELD_SUPPORTED_HOUR_CYCLES_0,\n    ADD_FIELD_SUPPORTED_HOUR_CYCLES_1,\n    ADD_FIELD_SUPPORTED_HOUR_CYCLES_2\n};\n\nexport const SUPPORTED_DATE_FORMATS = {\n    ADD_FIELD_SUPPORTED_DATE_FORMATS_1,\n    ADD_FIELD_SUPPORTED_DATE_FORMATS_2,\n    ADD_FIELD_SUPPORTED_DATE_FORMATS_3,\n    ADD_FIELD_SUPPORTED_DATE_FORMATS_4\n};\n\nexport function getDateFormat(dateFormat) {\n    let supportedDateFormat;\n\n    switch(dateFormat) {\n        case ADD_FIELD_DATE_FORMATS_DEFAULT:\n            supportedDateFormat = ADD_FIELD_SUPPORTED_DATE_FORMATS_1;\n            break;\n\n        case ADD_FIELD_DATE_FORMATS_DATE_FIRST:\n            supportedDateFormat = ADD_FIELD_SUPPORTED_DATE_FORMATS_2;\n            break;\n        \n        case ADD_FIELD_DATE_FORMATS_MONTH_FIRST:\n            supportedDateFormat = ADD_FIELD_SUPPORTED_DATE_FORMATS_3;\n            break;\n\n        case ADD_FIELD_DATE_FORMATS_YEAR_FIRST:\n            supportedDateFormat = ADD_FIELD_SUPPORTED_DATE_FORMATS_4;\n            break;\n\n        default:\n            throw(UNKNOWN_DATE_FORMAT);\n    }\n    return supportedDateFormat;\n}\n\nexport function getHourCycle(hourCycle) {\n    let supportedHourCycle;\n\n    switch(hourCycle) {\n        case ADD_FIELD_TIME_FORMATS_NONE:\n            supportedHourCycle = ADD_FIELD_SUPPORTED_HOUR_CYCLES_0;\n            break;\n\n        case ADD_FIELD_TIME_FORMATS_FULL_DAY:\n            supportedHourCycle = ADD_FIELD_SUPPORTED_HOUR_CYCLES_1;\n            break;\n        \n        case ADD_FIELD_TIME_FORMATS_HALF_DAY:\n            supportedHourCycle = ADD_FIELD_SUPPORTED_HOUR_CYCLES_2;\n            break;\n\n        default:\n            throw(UNKNOWN_DATE_FORMAT);\n    }\n    return supportedHourCycle;\n}\n\nexport function getCurrency(currency) {\n    let supportedCurrency;\n\n    switch(currency) {\n        case ADD_FIELD_CURRENCIES_USD:\n            supportedCurrency = ADD_FIELD_SUPPORTED_CURRENCY_VALUE_1;\n            break;\n\n        case ADD_FIELD_CURRENCIES_EUR:\n            supportedCurrency = ADD_FIELD_SUPPORTED_CURRENCY_VALUE_2;\n            break;\n\n        case ADD_FIELD_CURRENCIES_GBP:\n            supportedCurrency = ADD_FIELD_SUPPORTED_CURRENCY_VALUE_3;\n            break;\n\n        case ADD_FIELD_CURRENCIES_JPY:\n            supportedCurrency = ADD_FIELD_SUPPORTED_CURRENCY_VALUE_4;\n            break;\n\n        case ADD_FIELD_CURRENCIES_CAD:\n            supportedCurrency = ADD_FIELD_SUPPORTED_CURRENCY_VALUE_5;\n            break;\n\n        case ADD_FIELD_CURRENCIES_AUD:\n            supportedCurrency = ADD_FIELD_SUPPORTED_CURRENCY_VALUE_6;\n            break;\n\n        case ADD_FIELD_CURRENCIES_CNY:\n            supportedCurrency = ADD_FIELD_SUPPORTED_CURRENCY_VALUE_7;\n            break;\n\n        case ADD_FIELD_CURRENCIES_CHF:\n            supportedCurrency = ADD_FIELD_SUPPORTED_CURRENCY_VALUE_8;\n            break;\n\n        case ADD_FIELD_CURRENCIES_SGD:\n            supportedCurrency = ADD_FIELD_SUPPORTED_CURRENCY_VALUE_9;\n            break;\n\n        case ADD_FIELD_CURRENCIES_INR:\n            supportedCurrency = ADD_FIELD_SUPPORTED_CURRENCY_VALUE_10;\n            break;\n\n        case ADD_FIELD_CURRENCIES_ZAR:\n            supportedCurrency = ADD_FIELD_SUPPORTED_CURRENCY_VALUE_11;\n            break;\n\n        default:\n            throw(UNKNOWN_CURRENCY_FORMAT);\n    }\n    return supportedCurrency;\n}\n\n\nObject.freeze(SUPPORTED_CURRENCY_VALUES);\nObject.freeze(SUPPORTED_HOUR_CYCLES);\nObject.freeze(SUPPORTED_DATE_FORMATS);\n\n","\nexport const CSS_CLASS_NAMES = {\n    HIDE: 'hide',//No I18N\n    ACTIVE: 'active',//No I18N\n    LEFT_ARROW: 'leftArrow',//No I18N\n    BOTTOM_RIGHT_ARROW: 'bottomRightArrow',//No I18N\n\n    AUTO_NUMBER_ICON        : 'autoNumberIcon',       //No I18N\n    ATTACHMENT_ICON         : 'attachmentIcon',       //No I18N\n    CHECKBOX_ICON           : 'checkboxIcon',         //No I18N\n    CREATED_TIME_ICON       : 'createdTimeIcon',      //No I18N\n    MODIFIED_TIME_ICON      : 'modifiedTimeIcon',     //No I18N\n    CURRENCY_ICON           : 'currencyIcon',         //No I18N\n    DATE_TIME_ICON          : 'dateIcon',             //No I18N\n    EMAIL_ICON              : 'emailIcon',            //No I18N\n    MULTIPLE_SELECTION_ICON : 'multiSelectIcon',      //No I18N\n    NUMBER_ICON             : 'numberIcon',           //No I18N\n    PERCENT_ICON            : 'percentIcon',          //No I18N\n    PHONE_NUMBER_ICON       : 'phoneNumberIcon',      //No I18N\n    RATING_ICON             : 'ratingIcon',           //No I18N\n    SINGLE_SELECTION_ICON   : 'singleSelectIcon',     //No I18N\n    TEXT_ICON               : 'textIcon',             //No I18N\n    URL_ICON                : 'URLIcon',              //No I18N\n    COLLABORATOR_CLIENT_ICON: 'collaboratorIcon',     //No I18N\n    LINK_CLIENT_ICON        : 'linkIcon',             //No I18N\n    LINK_ICON               : 'linkIcon',             //No I18N\n    CREATED_BY_ICON         : 'createdByIcon',        //No I18N\n    MODIFIED_BY_ICON        : 'modifiedByIcon',       //No I18N\n    FORMULA_ICON            : 'formulaIcon',          //No I18N\n    LOOKUP_ICON             : 'lookupIcon',           //No I18N\n    SENTIMENT_ICON          : 'sentimentIcon',        //No I18N\n    KEYWORD_EXTRACT_ICON    : 'keywordExtractIcon',   //No I18N\n    LANGUAGE_DETECT_ICON    : 'languageDetectIcon',   //No I18N\n    EXPANDED                : 'expanded',             //No I18N\n    VIEW_BAR_ICON_ACTIVE    : 'VBF-clk',              //No I18N\n    ABSOLUTE_ELEMENT        : 'absoluteElement',      //No I18N\n    GALLERY_VIEW_DRAG_TILE  : 'GV-dragTile',          //No I18N\n    FORM_BUILDER_DRAG_TILE  : 'FB-dragTile',          //No I18N\n    LOADER                  : 'ZTCG-loader-active'    //No I18N\n}\n\nexport const CSS_STYLE_VALUES = {\n    AUTO: 'auto',//No I18N\n    UNSET: 'unset',//No I18N\n    LEFT: 'left',//No I18N\n    RIGHT: 'right',//No I18N\n    TOP: 'top',//No I18N\n    BOTTOM: 'bottom',//No I18N\n    PIXELS: 'px',//No I18N\n    POINT: 'pt',//No I18N\n    BOLD          : 'bold',           //No I18N\n    ITALIC        : 'italic',         //No I18N\n    OVERLINE      : 'overline',       //No I18N\n    STRIKE_THROUGH: 'line-through',   //No I18N\n    UNDERLINE     : 'underline',      //No I18N\n    CENTER        : 'center',         //No I18N\n    FLEX_START    : 'flex-start',     //No I18N\n    FLEX_END      : 'flex-end',       //No I18N\n    MIDDLE        : 'middle',         //No I18N\n    ACCOUNTING    : 'accounting'      //No I18N\n}\n\n// formBuilder stuffs\nexport const FORM_BUILDER_VIEW_ONLY_BASE          = 'ZTF-viewOnlyBase';\nexport const HIDE                                 = 'hide';                                //No I18N\nexport const SHOW                                 = 'show';                                //No I18N\nexport const ZERO_OPACITY                         = 'ZT-opacity-0';                        //No I18N\nexport const POINTER_EVENTS_NONE_CLASS           = 'ZT-pointer-events-none';              //No I18N\nexport const ACTIVE                               = 'active';                              //No I18N\nexport const EXPANDED                             = 'expanded';                            //No I18N\nexport const REQUIRED                             = 'isRequired';                          //No I18N\nexport const REQUIRED_RED_STAR                   = 'required';                            //No I18N\nexport const EMPTY                                = 'empty';                               //No I18N\nexport const EDIT_SUBMIT                          = 'editSubmit';                          //No I18N\nexport const SELECTION                            = 'FBE-selection';                       //No I18N\nexport const SELECTION_CONTAINER                 = 'FBE-selectionContainer';              //No I18N\nexport const ERROR_URL                            = 'FBF-errorURL';                        //No I18N\nexport const LABEL_ALIGN_TOP                     = 'labelTop';                            //No I18N\nexport const LABEL_ALIGN_LEFT                    = 'FBE-leftAlign';                       //No I18N\nexport const LABEL_ALIGN_RIGHT                   = 'FBE-rightAlign';                      //No I18N\nexport const FORM_LOGO_ALIGN_LEFT                = 'ZT-justify-content-start';            //No I18N\nexport const FORM_LOGO_ALIGN_CENTER              = 'ZT-justify-content-center';           //No I18N\nexport const FORM_LOGO_ALIGN_RIGHT               = 'ZT-justify-content-end';              //No I18N\nexport const FORM_NAME_ALIGN_LEFT                = 'left';                                //No I18N\nexport const FORM_NAME_ALIGN_CENTER              = 'center';                              //No I18N\nexport const FORM_NAME_ALIGN_RIGHT               = 'right';                               //No I18N\nexport const FORM_NAME_SIZE_SMALL                = '16px';                                //No I18N\nexport const FORM_NAME_SIZE_MEDIUM               = '18px';                                //No I18N\nexport const FORM_NAME_SIZE_LARGE                = '24px';                                //No I18N\nexport const FORM_BACKGROUND_COLOR               = '--formBGColor';                       //No I18N\nexport const FORM_LOGO_SIZE_SMALL                = 'FB-logoSM';                           //No I18N\nexport const FORM_LOGO_SIZE_MEDIUM               = 'FB-logoMD';                           //No I18N\nexport const FORM_LOGO_SIZE_LARGE                = 'FB-logoLG';                           //No I18N\nexport const FORM_NAME_SIZE                      = '--formNameSize';                      //No I18N\nexport const FORM_NAME_ALIGN                     = '--formNameAlign';                     //No I18N\nexport const LABEL_ALIGN                         = '--formLabelAlign';                    //No I18N\nexport const STROKE_STYLE                        = \"rgba(0,0,0,0)\";                       //No I18N\nexport const FBH_HIDE                            = \"FBH-hide\";                            //No I18N\nexport const FBH_ERROR_BORDER                   = \"errorBorder\";                         //No I18N\nexport const FB_NEW_FIELD_ANIMATION             = \"FB-newFieldAnimation\";                //No I18N\nexport const FORM_OPEN                           = 'formOpen';                            //No I18N\nexport const FORM_BUTTON_DISABLE                = 'ZT-cursorDisable';                    //No I18N\nexport const FORM_ACTIVE_ICON_BLOCK             = 'ZTCL-activeIconBlock';                // No I18N\nexport const FORM_COVER_IMAGE_UPLOADED           = 'FB-coverImageUploaded';               // No I18N\nexport const FORM_LOGO_UPLOADED                  = 'FB-logoUploaded';                     // No I18N\nexport const FORM_CLOSE_BUTTON_SHOW_LOADER       = 'FB-showLoader';                       // No I18N\nexport const PROGRESS_BAR_COMPLETED              = 'completed';                           // No I18N\nexport const PROGRESS_BAR_DOWN_ARROW_ROTATE_180  = 'rot180';                              // No I18N\nexport const PROGRESS_BAR_ERROR                  = 'error';                               // No I18N\nexport const ZT_SKELETON_LOADER                  = 'ZT-skeletonLoader';                   // No I18N\nexport const FBH_UPLOAD_LOGO_LOADER_ACTIVE       = 'FBH-uploadLogoLoaderActive';          // No I18N\nexport const FB_COVER_IMAGE_DELETE_LOADER        = 'FB-coverImageDeleteLoader';           // No I18N\nexport const FB_LOGO_DELETE_LOADER               = 'FB-logoDeleteLoader';                 // No I18N\nexport const FB_LOGO_FRAME_SMALL                 = 'FB-logoFrameSM';                      // No I18N\nexport const FB_LOGO_FRAME_MEDIUM                = 'FB-logoFrameMD';                      // No I18N\nexport const FB_LOGO_FRAME_LARGE                 = 'FB-logoFrameLG';                      // No I18N\nexport const FVT_COVER_IMAGE_ACTIVE              = 'FVT-coverImageActive';                // No I18N\nexport const FB_COVER_IMAGE_UPLOADING            = 'FB-coverImageUploading';              // No I18N\nexport const FB_COVER_IMAGE_UPLOADED_FAILURE     = 'FB-coverImageUploaded--failure';      // No I18N\nexport const FB_COVER_IMAGE_UPLOADED_FAILURE_TWO = 'FB-coverImageUploaded--failure-two';  // No I18N\nexport const FB_COVER_IMAGE_UPLOADED_PAGE_REFRESH= 'FB-coverImageUploaded-page-refresh';  // No I18N\nexport const FB_LOGO_UPLOADING                   = 'FB-logoUploading';                    // No I18N\nexport const FB_LOGO_UPLOADED_FAILURE            = 'FB-logoUploaded--failure';            // No I18N\nexport const FB_LOGO_UPLOADED_FAILURE_TWO        = 'FB-logoUploaded--failure-two';        // No I18N\nexport const FB_LOGO_UPLOADED_PAGE_REFRESH       = 'FB-logoUploaded-page-refresh';        // No I18N\n\nexport const FORM_VIEW_LABEL_ALIGN_TOP                    = 'FV-topAlign';         // No I18N\nexport const FORM_VIEW_LABEL_ALIGN_LEFT                   = 'FV-leftAlign';        // No I18N\nexport const FORM_VIEW_LABEL_ALIGN_RIGHT                  = 'FV-rightAlign';       // No I18N\nexport const FORM_VIEW_ATTACHMENT_IMAGE_ERROR_EVENT_CLASS = 'AFD-expandDefault';   // No I18N\nexport const CURSOR_DEFAULT                               = 'FV-cursorDefault';    // No I18N\nexport const ZT_CURSOR_PROGRESS                           = 'zt-cursor-progress';  // No I18N\n\nexport const FORM_SCHEMA_ERROR = 'FV-schemaError';  // No I18N\n\n// gridManageFields stuffs\nexport const SEARCHING        = 'searching';         //No I18N\nexport const EMPTY_TILE       = 'emptyTile';         //No I18N\nexport const MANAGE_FIELDS    = 'MF-addFieldPanel';  //No I18N\nexport const DRAGGING         = 'dragging';          //No I18N\nexport const HIDE_DRAG_BUTTON = 'hideDragButton';    //No I18N\n\n// design customization panel\nexport const DESIGN_CUSTOMIZATION_FONT_PANEL = \"FB-fontPanel\";         //No I18N\nexport const VISIBLE                         = \"visible\";              //No I18N\nexport const COLOR_OPTION_CSS_VARIABLE       = '--colorThemeBGColor';  // No I18N\nexport const COLOR_OPTION_BORDER_CSS_VARIABLE= '--colorThemeBorderColor';  // No I18N\nexport const HIDE_LEVELS                     = 'hideLevels';           // No I18N\nexport const HIDE_TOGGLE                     = 'hideToggle';           // No I18N\n\n// record view\nexport const RECORD_VIEW_DATE_PLACEHOLDER = 'RV-datePlaceHolder';  // No I18N\nexport const RECORD_VIEW_PREMIUM_FIELD = 'RVP-premiumField';  // No I18N\nexport const RECORD_VIEW_EPHI_RESTRICTED_FIELD = 'RVE-ephiRestrictedField';  // No I18N\n\n// attachment field\nexport const ATTACHMENT_EPHI_RESTRICTED = 'AFD-ephiRestricted';  // No I18N\n\n                                                                    //others\nexport const ONE                       = \"1\";                       //No I18N\nexport const PIXELS                    = \"px\";                      //No I18N\nexport const PERCENT                   = \"%\";                       //No I18N\nexport const UNSET                     = 'unset';                   //No I18N\nexport const AUTO                      = 'auto';                    //No I18N\nexport const FIXED                     = 'fixed';                   //No I18N\nexport const LEFT_ARROW                = 'leftArrow';               //No I18N\nexport const BOTTOM_RIGHT_ARROW        = 'bottomRightArrow';        //No I18N\nexport const HIDE_BASE_SHARE_SEPARATOR = 'hideBaseShareSeparator';  //No I18N\n\n// fieldTypeComponents\nexport const BOLD           = 'bold';          //No I18N\nexport const ITALIC         = 'italic';        //No I18N\nexport const OVERLINE       = 'overline';      //No I18N\nexport const STRIKE_THROUGH = 'line-through';  //No I18N\nexport const UNDERLINE      = 'underline';     //No I18N\nexport const LEFT           = 'left';          //No I18N\nexport const CENTER         = 'center';        //No I18N\nexport const RIGHT          = 'right';         //No I18N\nexport const FLEX_START     = 'flex-start';    //No I18N\nexport const FLEX_END       = 'flex-end';      //No I18N\nexport const TOP            = 'top';           //No I18N\nexport const MIDDLE         = 'middle';        //No I18N\nexport const BOTTOM         = 'bottom'         //No I18N\nexport const NONE           = 'none'           //No I18N\n\nexport const CLIPBOARD_DATA_AS_TEXT = 'text';//No I18N\n\n// Non color option for MultiSelect\nexport const MULTISELECT_COLOR        = 'E8E8E8';  // No I18N\nexport const MULTISELECT_COLOR_KANBAN = 'ffffff'\n\nexport const KEYWORD_EXTRACT_COLOR = \"e0e3f7\"; //No I18N\n\n// recordView addFieldInsertPanel click\nexport const LIST_PANEL_RECORD_VIEW = 'RVAF-listPanel';  // No I18N\n\n//Table bar tab\nexport const TABLE_EDIT = 'tableEdit';  // No I18N\nexport const POINTER_EVENTS_NONE = 'pointerEventsNone';  //No I18N\n\n// number editor of writer team\nexport const WRITER_EDITOR_DIV_CLASS_NAME           = 'editor-div outer-wrapper-container';\nexport const FORMULA_EDITOR_CUSTOM_DROPDOWN_ELEMENT = 'formulaEditorCustomDropDownElement'   //No I18N\n\n// export to zoho creator\nexport const ZT_DIALOG_ACTIVE  = 'ZT-dialogActive';   //No I18N\nexport const ZT_ERROR_TOAST    = 'ZT-errorToast';     //No I18N\nexport const ZTP_FIELD_DISABLE = 'ZTP-fieldDisable';  //No I18N\nexport const ZT_mRL10          = 'ZT-mRL10';          //No I18N\nexport const ZTCL_ACTIVE       = 'ZTCL-active';       //No I18N\nexport const ZT_CURSOR_NO_DROP = 'ZT-cursorNodrop';   //No I18N\nexport const ATTRIBUTE_TITLE   = 'title';  //No I18N\n\n// dom grid\nexport const ZT_ROW_ADD_CONTAINER = 'ZT-rowAddContainer'; // No I18N\n// snap\nexport const MSG_ERROR      = 'msgError';        //No I18N\nexport const ZT_TOGGLE_OPEN = 'ZT-toggle-open';  //No I18N\nexport const SF_DISABLED    = 'SF-disabled';     //No I18N\nexport const SB_TOAST_SHOW  = 'SB-toastShow';    //No I18N\n\n// New Base Color\nexport const LIGHT                    = 'light';                 // No I18N\n// export const DEFAULT_COLOR_IN_HEX  = \"6575da\";                // No I18N  // TODO: New Base Color - changes: Remove the commented codes after 6 months of release\nexport const DEFAULT_COLOR_IN_HEX     = \"7a62c4\";                // No I18N\nexport const __TEXT_DARK              = \"--text-dark\";           // No I18N\nexport const HASH                     = '#';                     // No I18N\nexport const CHECKED                  = 'checked';               // No I18N\nexport const CONTENT                  = 'content';               // No I18N\nexport const __BASE_DARK_COLOR        = '--baseDarkColor';       // No I18N\nexport const __BASE_LIGHT_COLOR       = '--baseLightColor';      // No I18N\nexport const __BASE_ULTRA_LIGHT_COLOR = '--baseUltraLightColor'; // No I18N\nexport const __BASE_TEXT_COLOR        = '--baseTextColor';       // No I18N\nexport const __BASE_COLOR             = '--baseColor';           // No I18N\nexport const ZT_LIGHT_THEME           = 'ZT-lightTheme';         // No I18N\nexport const __SS_OVAL                = '--ssoval';              // No I18N\nexport const __SS_DOT                 = '--ssdot';               // No I18N\nexport const __CARD_COLOR             = '--card-color';           // No I18N\nexport const __CARD_LIGHT_COLOR       = '--card-light-color';     // No I18N\nexport const __CARD_COVER_COLOR       = '--card-cover-color';     // No I18N\nexport const ZDC_CARD_DARK_COLOR      = 'ZDC-CardDarkColor'; // No I18N\nexport const ZDC_CARD_LIGHT_COLOR     = 'ZDC-CardLightColor'; // No I18N\n\n// BaseEditPanel - Listing Page\nexport const EDIT_BASE          = 'editBase';            // No I18N\nexport const LP_BASE_EDIT       = 'LP-baseEdit';         // No I18N\nexport const ZT_OVERFLOW_HIDDEN = 'ZT-overflow-hidden';  // No I18N\n\n\nObject.freeze(CSS_CLASS_NAMES);\nObject.freeze(CSS_STYLE_VALUES);\n","export const ADDRESS                        = \"1\"\nexport const ATTACHMENT                     = \"2\"\nexport const AUTO_NUMBER                    = \"3\"\nexport const CHECKBOX                       = \"4\"\nexport const CREATED_TIME                   = \"5\"\nexport const CURRENCY                       = \"6\"\nexport const DATE_TIME                      = \"7\"\nexport const DURATION                       = \"8\"\nexport const EMAIL                          = \"9\"\nexport const FORMULA                        = \"10\"\nexport const FRACTION                       = \"11\"\nexport const MODIFIED_TIME                  = \"12\"\nexport const MULTIPLE_SELECTION             = \"13\"\nexport const NATIONAL_IDENTIFICATION_NUMBER = \"14\"\nexport const NUMBER                         = \"15\"\nexport const PERCENT                        = \"16\"\nexport const PHONE_NUMBER                   = \"17\"\nexport const COLLABORATOR_CLIENT            = \"18\"\nexport const RATING                         = \"19\"\nexport const SCIENTIFIC                     = \"20\"\nexport const SINGLE_SELECTION               = \"21\"\nexport const SLIDER                         = \"22\"\nexport const TEXT                           = \"23\"\nexport const URL                            = \"24\"\nexport const CREATED_BY                     = \"25\"\nexport const MODIFIED_BY                    = \"26\"\nexport const LOOKUP                         = \"27\"\nexport const ROLLUP                         = \"31\"\nexport const LINK                           = \"30\"\nexport const SENTIMENTAL_ANALYSIS\t\t\t= \"32\"\nexport const KEYWORD_EXTRACTION  \t\t\t= \"34\"\nexport const LANGUAGE_DETECTOR  \t\t\t= \"33\"\nexport const LANGUAGE_TRANSLATOR\t\t\t= \"35\"\n\nexport const AUTO_NUMBER_CLIENT             = \"28\"\nexport const CURRENCY_CLIENT                = \"29\"\nexport const PERCENT_CLIENT                 = \"42\"\nexport const PHONE_NUMBER_CLIENT            = \"43\"\nexport const DATE_TIME_CLIENT               = \"44\"\nexport const MODIFIED_TIME_CLIENT           = \"35\"\nexport const CREATED_TIME_CLIENT            = \"36\"\nexport const LINK_CLIENT                    = \"37\"\nexport const BARCODE                        = \"38\"\nexport const NUMBER_CLIENT                  = \"39\"\n\nconst SELECTION_FIELD_TYPES                = {};\nSELECTION_FIELD_TYPES[MULTIPLE_SELECTION]  = 1;\nSELECTION_FIELD_TYPES[SINGLE_SELECTION]    = 1;\nSELECTION_FIELD_TYPES[COLLABORATOR_CLIENT] = 1;\nSELECTION_FIELD_TYPES[ATTACHMENT]          = 1;\nSELECTION_FIELD_TYPES[LINK]                = 1;\n\nconst FORM_SELECTION_FIELD_TYPES = {};\nFORM_SELECTION_FIELD_TYPES[MULTIPLE_SELECTION]  = 1;\nFORM_SELECTION_FIELD_TYPES[SINGLE_SELECTION]    = 1;\nFORM_SELECTION_FIELD_TYPES[COLLABORATOR_CLIENT] = 1;\n\nexport const COMMON_DELIMITERS = {\n\tMULTIPLE_SELECTION: \"__\"\n};\n\nexport const COLLABORATOR_SELECTION_TYPES = {\n\tSINGLE_SELECT: 0,\n\tMULTI_SELECT: 1\n};\n\nexport const isNonEditableFieldType = function (fieldType) {\n\tconst nonEditableFieldTypes = [\n\t\tAUTO_NUMBER,\n\t\tCREATED_BY,\n\t\tCREATED_TIME,\n\t\tFORMULA,\n\t\tMODIFIED_BY,\n\t\tMODIFIED_TIME,\n\t\tLOOKUP,\n\t\tKEYWORD_EXTRACTION,\n\t\tLANGUAGE_DETECTOR,\n\t\tROLLUP\n\t];\n\treturn nonEditableFieldTypes.includes(fieldType);\n};\n\nexport const isFormNonEditableFieldType = function (fieldType) {\n\tconst nonEditableFieldTypes = [\n\t\tAUTO_NUMBER,\n\t\tCREATED_BY,\n\t\tCREATED_TIME,\n\t\tFORMULA,\n\t\tMODIFIED_BY,\n\t\tMODIFIED_TIME,\n\t\tLOOKUP,\n\t\tROLLUP,\n\t\tSENTIMENTAL_ANALYSIS,\n\t\tKEYWORD_EXTRACTION,\n\t\tLANGUAGE_DETECTOR\n\t];\n\treturn nonEditableFieldTypes.includes(fieldType);\n};\n\nexport const isPopupFieldType = function (fieldType) {\n\treturn (\n\t\tfieldType === COLLABORATOR_CLIENT ||\n\t\tfieldType === MULTIPLE_SELECTION ||\n\t\tfieldType === SINGLE_SELECTION || \n\t\tfieldType === SENTIMENTAL_ANALYSIS\n\t);\n};\n\nexport const isConfirmationNeededFieldType = (fieldType) => {\n\tconst CONFIMATION_NEEDED_FIELDTYPES = [FORMULA, LINK, LOOKUP, ROLLUP, SENTIMENTAL_ANALYSIS, KEYWORD_EXTRACTION, LANGUAGE_DETECTOR];\n\treturn CONFIMATION_NEEDED_FIELDTYPES.includes(fieldType);\n}\n\nexport const isSelectionFieldType = function (fieldType) {\n\treturn SELECTION_FIELD_TYPES[fieldType];\n};\n\nexport function isFormSelectionFieldType(fieldType) {\n\treturn FORM_SELECTION_FIELD_TYPES[fieldType];\n};\n\nexport const toRestrictDuplicateWithoutDataFieldTypes = function (fieldType) {\n\treturn (\n\t\tfieldType === AUTO_NUMBER ||\n\t\tfieldType === CREATED_BY ||\n\t\tfieldType === CREATED_TIME ||\n\t\tfieldType === FORMULA ||\n\t\tfieldType === MODIFIED_BY ||\n\t\tfieldType === MODIFIED_TIME ||\n\t\tfieldType === LOOKUP ||\n\t\tfieldType === ROLLUP ||\n\t\tfieldType === SENTIMENTAL_ANALYSIS || \n\t\tfieldType === KEYWORD_EXTRACTION ||\n\t\tfieldType === LANGUAGE_DETECTOR\n\t);\n};\n\n// export const ORDER = [\n// \tATTACHMENT,\n// \tAUTO_NUMBER,\n// \tCHECKBOX,\n// \tCOLLABORATOR_CLIENT,\n// \tCREATED_BY,\n// \tCREATED_TIME,\n// \tCURRENCY,\n// \tDATE_TIME,\n// \tEMAIL,\n// \tFORMULA,\n// \tKEYWORD_EXTRACTION,\n// \tLANGUAGE_DETECTOR,\n// \tLINK,\n// \tLOOKUP,\n// \tMULTIPLE_SELECTION,\n// \tMODIFIED_BY,\n// \tMODIFIED_TIME,\n// \tNUMBER,\n// \tPERCENT,\n// \tPHONE_NUMBER,\n// \tRATING,\n// \tROLLUP,\n// \tSENTIMENTAL_ANALYSIS,\n// \tSINGLE_SELECTION,\n// \tTEXT,\n// \tURL\n// ];\n\nexport const FIELD_TYPES_BASIC_ORDER                = [ATTACHMENT, CHECKBOX, FORMULA, TEXT, URL];\nexport const FIELD_TYPES_AI_FIELDS_ORDER            = [KEYWORD_EXTRACTION, LANGUAGE_DETECTOR, SENTIMENTAL_ANALYSIS];\nexport const FIELD_TYPES_PICK_LISTS_ORDER           = [MULTIPLE_SELECTION, SINGLE_SELECTION];\nexport const FIELD_TYPES_NUMERICAL_ORDER            = [AUTO_NUMBER, CURRENCY, NUMBER, PERCENT, RATING];\nexport const FIELD_TYPES_PERSONAL_INFORMATION_ORDER = [COLLABORATOR_CLIENT, CREATED_BY, EMAIL, MODIFIED_BY, PHONE_NUMBER];\nexport const FIELD_TYPES_DATE_AND_TIME_ORDER        = [CREATED_TIME, DATE_TIME, MODIFIED_TIME];\nexport const FIELD_TYPES_RELATIONSHIP_ORDER         = [LINK, LOOKUP, ROLLUP];\n\nexport const FIELD_TYPES_BASIC_KEY                      = Symbol('FIELD_TYPES_BASIC_KEY');\nexport const FIELD_TYPES_AI_FIELDS_ORDER_KEY            = Symbol('FIELD_TYPES_AI_FIELDS_ORDER_KEY');\nexport const FIELD_TYPES_PICK_LISTS_ORDER_KEY           = Symbol('FIELD_TYPES_PICK_LISTS_ORDER_KEY');\nexport const FIELD_TYPES_NUMERICAL_ORDER_KEY            = Symbol('FIELD_TYPES_NUMERICAL_ORDER_KEY');\nexport const FIELD_TYPES_PERSONAL_INFORMATION_ORDER_KEY = Symbol('FIELD_TYPES_PERSONAL_INFORMATION_ORDER_KEY');\nexport const FIELD_TYPES_DATE_AND_TIME_ORDER_KEY        = Symbol('FIELD_TYPES_DATE_AND_TIME_ORDER_KEY');\nexport const FIELD_TYPES_RELATIONSHIP_ORDER_KEY         = Symbol('FIELD_TYPES_RELATIONSHIP_ORDER_KEY');\n\nexport const FIELD_TYPES_DISPLAY_ORDER_IN_UI = [FIELD_TYPES_BASIC_KEY, FIELD_TYPES_AI_FIELDS_ORDER_KEY, FIELD_TYPES_PICK_LISTS_ORDER_KEY, FIELD_TYPES_NUMERICAL_ORDER_KEY, FIELD_TYPES_PERSONAL_INFORMATION_ORDER_KEY, FIELD_TYPES_DATE_AND_TIME_ORDER_KEY, FIELD_TYPES_RELATIONSHIP_ORDER_KEY];\n\nexport const INVALID_FIELD_TYPE = \"Invalid Field Type\";  // No I18N\n","\nimport { CURRENCY as CURRENCY_FIELDTYPE, DATE_TIME as DATE_TIME_FIELDTYPE, NUMBER as NUMBER_FIELDTYPE, PERCENT as PERCENT_FIELDTYPE, TEXT as TEXT_FIELDTYPE } from './FieldTypes.js'\n\nexport const NUMBER = 1\nexport const TEXT = 2\nexport const DATE = 3\nexport const CURRENCY = 4\nexport const PERCENT = 5\nexport const FORMULA_RETURN_TYPE_EMPTY = 6;\n\nexport function FormulaReturnTypeMapping(returnType) {\n    switch (returnType) {\n        case NUMBER:\n            return NUMBER_FIELDTYPE;\n\n        case FORMULA_RETURN_TYPE_EMPTY:\n            return TEXT_FIELDTYPE;\n            \n        case TEXT:\n            return TEXT_FIELDTYPE;\n\n        case DATE:\n            return DATE_TIME_FIELDTYPE;\n\n        case CURRENCY:\n            return CURRENCY_FIELDTYPE;\n\n        case PERCENT:\n            return PERCENT_FIELDTYPE;\n    }\n}\n","\nexport const A = '65'\nexport const B = '66'\nexport const C = '67'\nexport const D = '68'\nexport const E = '69'\nexport const F = '70'\nexport const G = '71'\nexport const H = '72'\nexport const I = '73'\nexport const J = '74'\nexport const K = '75'\nexport const L = '76'\nexport const M = '77'\nexport const N = '78'\nexport const O = '79'\nexport const P = '80'\nexport const Q = '81'\nexport const R = '82'\nexport const S = '83'\nexport const T = '84'\nexport const U = '85'\nexport const V = '86'\nexport const W = '87'\nexport const X = '88'\nexport const Y = '89'\nexport const Z = '90'\n\nexport const ZERO = '48'\nexport const ONE = '49'\nexport const TWO = '50'\nexport const THREE = '51'\nexport const FOUR = '52'\nexport const FIVE = '53'\nexport const SIX = '54'\nexport const SEVEN = '55'\nexport const EIGHT = '56'\nexport const NINE = '57'\n\nexport const F1 = '112'\nexport const F2 = '113'\nexport const F3 = '114'\nexport const F4 = '115'\nexport const F5 = '116'\nexport const F6 = '117'\nexport const F7 = '118'\nexport const F8 = '119'\nexport const F9 = '120'\nexport const F10 = '121'\nexport const F11 = '122'\nexport const F12 = '123'\n\nexport const ESC = '27'\n\nexport const TILDE = '192'\nexport const BACKSPACE = '8'\nexport const DELETE = '46'\n\nexport const TAB = '9'\nexport const OPENBRACKET = '219'\nexport const CLOSEBRACKET = '221'\nexport const BACKSLASH = '220'\n\nexport const CAPSLOCK = '20'\nexport const SINGLEQUOTE = '222'\nexport const ENTER = '13'\n\nexport const SHIFT = '16'\nexport const COMMA = '188'\nexport const DOT = '190'\nexport const SLASH = '191'\n\nexport const SPACE = '32'\nexport const CTRL = '17'\nexport const ALT = '18'\nexport const LEFTCOMMAND = '91'\nexport const RIGHTCOMMAND = '93'\nexport const COMMAND = '224'\n\nexport const LEFT = '37'\nexport const UP = '38'\nexport const RIGHT = '39'\nexport const DOWN = '40'\n\nexport const HOME = '36'\nexport const END = '35'\nexport const PAGEUP = '33'\nexport const PAGEDOWN = '34'\n\nexport const NUMPAD_ZERO = '96'\nexport const NUMPAD_ONE = '97'\nexport const NUMPAD_TWO = '98'\nexport const NUMPAD_THREE = '99'\nexport const NUMPAD_FOUR = '100'\nexport const NUMPAD_FIVE = '101'\nexport const NUMPAD_SIX = '102'\nexport const NUMPAD_SEVEN = '103'\nexport const NUMPAD_EIGHT = '104'\nexport const NUMPAD_NINE = '105'\n\nexport const NUMLOCK = '12'\nexport const DECIMAL = '110'\nexport const MULTIPLY = '106'\nexport const ADD = '107'\nexport const SUBTRACT = '109'\nexport const DIVIDE = '111'\n\n//Custom Key code added for All Printable chars.[Please do check KeyListener.js for further details]\nexport const PURE_PRINTABLE_CHAR = \"*\";\n\nlet TEMP_MINUS = '189'\nlet TEMP_EQUAL = '187'\nlet TEMP_PLUS = '187'\nlet TEMP_SEMICOLON = '186'\nlet TEMP_PRINTSCREEN = '124'\n\nconst UserAgent = globalThis.navigator.userAgent;\n\nif (UserAgent.includes(\"Firefox\")) {\n\tTEMP_MINUS = '173'\n\tTEMP_PLUS = '61'\n\tTEMP_EQUAL = '61'\n\tTEMP_SEMICOLON = '59'\n\tTEMP_PRINTSCREEN = '44'\n}\n\nexport const MINUS = TEMP_MINUS\nexport const EQUAL = TEMP_EQUAL\nexport const PLUS = TEMP_PLUS\nexport const SEMICOLON = TEMP_SEMICOLON\nexport const PRINTSCREEN = TEMP_PRINTSCREEN\n\n//Need to change this\n\nexport const JSKeyCode = {}; \n\n// Adding SUPER key\nexport let SUPER;\nif (globalThis.navigator.platform.toUpperCase().includes(\"MAC\")) {\n\tSUPER = COMMAND;\n} else {\n\tSUPER = CTRL;\n}\n\n","\nexport const EVENTS_BASE_RESPONSE_BEFORE    = Symbol(\"EVENTS_BASE_RESPONSE_BEFORE\");     //No I18N\nexport const EVENTS_BASE_RESPONSE_AFTER     = Symbol(\"EVENTS_BASE_RESPONSE_AFTER\");      //No I18N\nexport const EVENTS_BASE_NAME_UPDATE        = Symbol(\"EVENTS_BASE_NAME_UPDATE\");         //No I18N\nexport const EVENTS_BASE_TIMEZONE_UPDATE    = Symbol(\"EVENTS_BASE_TIMEZONE_UPDATE\");     //No I18N\nexport const EVENTS_BASE_DESCRIPTION_UPDATE = Symbol(\"EVENTS_BASE_DESCRIPTION_UPDATE\");  //No I18N\nexport const EVENTS_BASE_ICON_UPDATE        = Symbol(\"EVENTS_BASE_ICON_UPDATE\");         //No I18N\nexport const EVENTS_BASE_MODE_UPDATE        = Symbol(\"EVENTS_BASE_MODE_UPDATE\");         //No I18N\nexport const EVENTS_BASE_MODULE_UPDATE      = Symbol(\"EVENTS_BASE_MODULE_UPDATE\");         //No I18N\nexport const EVENTS_PORTAL_PLAN_TYPE_UPDATE      = Symbol(\"EVENTS_PORTAL_PLAN_TYPE_UPDATE\");         //No I18N\nexport const EVENTS_PLAN_EXPIRY_DATE_UPDATE      = Symbol(\"EVENTS_PLAN_EXPIRY_DATE_UPDATE\");         //No I18N\nexport const EVENTS_GRACE_PERIOD_UPDATE          = Symbol(\"EVENTS_GRACE_PERIOD_UPDATE\");         //No I18N\n\nexport const EVENTS_BASE_COLOR_UPDATE       = Symbol(\"EVENTS_BASE_COLOR_UPDATE\");        //No I18N\nexport const EVENTS_BASE_ACTIVITYLOG_UPDATE = Symbol(\"EVENTS_BASE_ACTIVITYLOG_UPDATE\");  //No I18N\n\nexport const EVENTS_BASE_SELECTIONDATA      = Symbol(\"EVENTS_BASE_SELECTIONDATA\");       //No I18N\n// export const EVENTS_BASE_USERPRESENCEUPDATE = Symbol(\"EVENTS_BASE_USERPRESENCEUPDATE\");  //No I18N\n// export const EVENTS_BASE_USERPRESENCEDELETE = Symbol(\"EVENTS_BASE_USERPRESENCEDELETE\");  //No I18N\n\nexport const EVENTS_BASE_IMPORTTABLE_LOAD = Symbol(\"EVENTS_BASE_IMPORTTABLE_LOAD\");  //No I18N\n\nexport const EVENTS_BASE_SELECTION_UPDATE        = Symbol(\"EVENTS_BASE_SELECTION_UPDATE\");         //No I18N\nexport const EVENTS_BASE_SELECTION_OPTION_INSERT = Symbol(\"EVENTS_BASE_SELECTION_OPTION_INSERT\");  //No I18N\nexport const EVENTS_BASE_SELECTION_OPTION_UPDATE = Symbol(\"EVENTS_BASE_SELECTION_OPTION_UPDATE\");  //No I18N\nexport const EVENTS_BASE_SELECTION_OPTION_DELETE = Symbol(\"EVENTS_BASE_SELECTION_OPTION_DELETE\");  //No I18N\nexport const EVENTS_BASE_SELECTION_OPTION_ORDER  = Symbol(\"EVENTS_BASE_SELECTION_OPTION_ORDER\");   //No I18N\nexport const EVENTS_BASE_SELECTION_LOAD          = Symbol(\"EVENTS_BASE_SELECTION_LOAD\");           //No I18N\nexport const EVENTS_BASE_SELECTION_DELETE        = Symbol(\"EVENTS_BASE_SELECTION_DELETE\");         //No I18N\nexport const EVENTS_BASE_SELECTION_INSERT        = Symbol(\"EVENTS_BASE_SELECTION_INSERT\");         //No I18N\n\nexport const EVENTS_BASE_COLLABORATORS_UPDATE = Symbol(\"EVENTS_BASE_COLLABORATORS_UPDATE\");  //No I18N\nexport const EVENTS_BASE_COLLABORATORS_LOAD   = Symbol(\"EVENTS_BASE_COLLABORATORS_LOAD\");    //No I18N\nexport const EVENTS_BASE_COLLABORATORS_DELETE = Symbol(\"EVENTS_BASE_COLLABORATORS_DELETE\");  //No I18N\nexport const EVENTS_BASE_COLLABORATORS_INSERT = Symbol(\"EVENTS_BASE_COLLABORATORS_INSERT\");  //No I18N\n\nexport const EVENTS_BASE_RELATIONSHIP_LOAD   = Symbol(\"EVENTS_BASE_RELATIONSHIP_LOAD\");    //No I18N\nexport const EVENTS_BASE_RELATIONSHIP_INSERT = Symbol(\"EVENTS_BASE_RELATIONSHIP_INSERT\");  //No I18N\nexport const EVENTS_BASE_RELATIONSHIP_DELETE = Symbol(\"EVENTS_BASE_RELATIONSHIP_DELETE\");  //No I18N\nexport const EVENTS_BASE_RELATIONSHIP_UPDATE = Symbol(\"EVENTS_BASE_RELATIONSHIP_UPDATE\");  //No I18N\n\nexport const EVENTS_BASE_ATTACHMENTS_UPDATE  = Symbol(\"EVENTS_BASE_ATTACHMENTS_UPDATE\");   //No I18N\nexport const EVENTS_BASE_ATTACHMENTS_LOAD    = Symbol(\"EVENTS_BASE_ATTACHMENTS_LOAD\");     //No I18N\nexport const EVENTS_BASE_ATTACHMENTS_DELETE  = Symbol(\"EVENTS_BASE_ATTACHMENTS_DELETE\");   //No I18N\nexport const EVENTS_BASE_ATTACHMENTS_INSERT  = Symbol(\"EVENTS_BASE_ATTACHMENTS_INSERT\");   //No I18N\nexport const EVENTS_BASE_ATTACHMENTS_PREVIEW = Symbol(\"EVENTS_BASE_ATTACHMENTS_PREVIEW\");  //NO I18N\nexport const EVENTS_ATTACHMENTS_WORKDRIVE_PREVIEW  = Symbol(\"EVENTS_ATTACHMENTS_WORKDRIVE_PREVIEW\");         //NO I18N\n\nexport const EVENTS_BASE_SENTIMENTS_UPDATE =   Symbol(\"EVENTS_BASE_SENTIMENTS_UPDATE\"); //No I18N\nexport const EVENTS_BASE_SENTIMENTS_INSERT =   Symbol(\"EVENTS_BASE_SENTIMENTS_INSERT\"); //No I18N\nexport const EVENTS_BASE_SENTIMENTS_LOAD   =   Symbol(\"EVENTS_BASE_SENTIMENTS_UPDATE\"); //No I18N\nexport const EVENTS_BASE_SENTIMENTS_DELETE =   Symbol(\"EVENTS_BASE_SENTIMENTS_DELETE\"); //No I18N\n\nexport const EVENTS_TABLE_RESPONSE_BEFORE    = Symbol(\"EVENTS_TABLE_RESPONSE_BEFORE\");     //No I18N\nexport const EVENTS_TABLE_RESPONSE_AFTER     = Symbol(\"EVENTS_TABLE_RESPONSE_AFTER\");      //No I18N\nexport const EVENTS_TABLE_NAME_UPDATE        = Symbol(\"EVENTS_TABLE_NAME_UPDATE\");         //No I18N\nexport const EVENTS_TABLE_DESCRIPTION_UPDATE = Symbol(\"EVENTS_TABLE_DESCRIPTION_UPDATE\");  //No I18N\nexport const EVENTS_TABLE_RECORDCOUNT_UPDATE = Symbol(\"EVENTS_TABLE_RECORDCOUNT_UPDATE\");  //No I18N\n\nexport const EVENTS_TABLE_ORDER_LOAD       = Symbol(\"EVENTS_TABLE_ORDER_LOAD\");        //No I18N\nexport const EVENTS_TABLE_ORDER_INSERT     = Symbol(\"EVENTS_TABLE_ORDER_INSERT\");      //No I18N\nexport const EVENTS_TABLE_ORDER_REORDER    = Symbol(\"EVENTS_TABLE_ORDER_REORDER\");     //No I18N\nexport const EVENTS_TABLE_ORDER_DELETE     = Symbol(\"EVENTS_TABLE_ORDER_DELETE\");      //No I18N\nexport const EVENTS_TABLE_SELECTION_UPDATE = Symbol(\"EVENTS_TABLE_SELECTION_UPDATE\");  //No I18N\nexport const EVENTS_TABLE_SELECTION_LOAD   = Symbol(\"EVENTS_TABLE_SELECTION_LOAD\");    //No I18N\nexport const EVENTS_TABLE_SELECTION_DELETE = Symbol(\"EVENTS_TABLE_SELECTION_DELETE\");  //No I18N\nexport const EVENTS_TABLE_SELECTION_INSERT = Symbol(\"EVENTS_TABLE_SELECTION_INSERT\");  //No I18N\n\nexport const EVENTS_TABLE_DATA_LOAD                = Symbol(\"EVENTS_TABLE_DATA_LOAD\");               //No I18N\nexport const EVENTS_TABLE_DATA_UPDATE              = Symbol(\"EVENTS_TABLE_DATA_UPDATE\");               //No I18N\nexport const EVENTS_TABLE_DATA_FAULTY_RECORDS      = Symbol(\"EVENTS_TABLE_DATA_FAULTY_RECORDS\");       //No I18N\nexport const EVENTS_TABLE_DATA_FAULTY_FIELDS       = Symbol(\"EVENTS_TABLE_DATA_FAULTY_FIELDS\");        //No I18N\nexport const EVENTS_TABLE_DATA_FAULTY_TABLE        = Symbol(\"EVENTS_TABLE_DATA_FAULTY_TABLE\");         //No I18N\nexport const EVENTS_TABLE_DATA_FAULTY_INTERSECTION = Symbol(\"EVENTS_TABLE_DATA_FAULTY_INTERSECTION\");  //No I18N\n\nexport const EVENTS_TABLE_RECORD_RESPONSE_BEFORE = Symbol(\"EVENTS_TABLE_RECORD_RESPONSE_BEFORE\");  //No I18N\nexport const EVENTS_TABLE_RECORD_RESPONSE_AFTER  = Symbol(\"EVENTS_TABLE_RECORD_RESPONSE_AFTER\");   //No I18N\n\nexport const EVENTS_TABLE_RECORD_INSERT = Symbol(\"EVENTS_TABLE_RECORD_INSERT\");  //No I18N\nexport const EVENTS_TABLE_RECORD_UPDATE = Symbol(\"EVENTS_TABLE_RECORD_UPDATE\");  //No I18N\nexport const EVENTS_TABLE_RECORD_DELETE = Symbol(\"EVENTS_TABLE_RECORD_DELETE\");  //No I18N\nexport const EVENTS_TABLE_RECORD_LOAD   = Symbol(\"EVENTS_TABLE_RECORD_LOAD\");    //No I18N\n\nexport const EVENTS_TABLE_FIELD_DELETE             = Symbol(\"EVENTS_TABLE_FIELD_DELETE\");              //No I18N\nexport const EVENTS_TABLE_FIELD_NAME_UPDATE        = Symbol(\"EVENTS_TABLE_FIELD_NAME_UPDATE\");         //No I18N\nexport const EVENTS_TABLE_FIELD_NAME_LOAD          = Symbol(\"EVENTS_TABLE_FIELD_NAME_LOAD\");           //No I18N\nexport const EVENTS_TABLE_FIELD_TYPE_UPDATE             = Symbol(\"EVENTS_TABLE_FIELD_TYPE_UPDATE\");            //No I18N\nexport const EVENTS_TABLE_FIELD_TYPE_PARAM_UPDATE       = Symbol(\"EVENTS_TABLE_FIELD_TYPE_PARAM_UPDATE\");     //No I18N\nexport const EVENTS_TABLE_FIELD_TYPE_LOAD               = Symbol(\"EVENTS_TABLE_FIELD_TYPE_LOAD\");              //No I18N\nexport const EVENTS_TABLE_FIELD_DESCRIPTION_UPDATE = Symbol(\"EVENTS_TABLE_FIELD_DESCRIPTION_UPDATE\");  //No I18N\nexport const EVENTS_TABLE_FIELD_DESCRIPTION_LOAD   = Symbol(\"EVENTS_TABLE_FIELD_DESCRIPTION_LOAD\");    //No I18N\nexport const EVENTS_TABLE_FIELD_STATUS_UPDATE      = Symbol(\"EVENTS_TABLE_FIELD_STATUS_UPDATE\");       //No I18N\nexport const EVENTS_TABLE_FIELD_STATUS_LOAD        = Symbol(\"EVENTS_TABLE_FIELD_STATUS_LOAD\");         //No I18N\nexport const EVENTS_TABLE_FIELD_LOAD               = Symbol(\"EVENTS_TABLE_FIELD_LOAD\");                //No I18N\nexport const EVENTS_TABLE_FIELD_ORDER              = Symbol(\"EVENTS_TABLE_FIELD_ORDER\");      //No I18N\nexport const EVENTS_TABLE_FIELD_INSERT             = Symbol(\"EVENTS_TABLE_FIELD_INSERT\");              //No I18N\n\nexport const EVENTS_TABLE_PRIMARY_FIELD_UPDATE = Symbol(\"EVENTS_TABLE_PRIMARY_FIELD_UPDATE\");  //No I18N\n\nexport const EVENTS_VIEW_RESPONSE_BEFORE    = Symbol(\"EVENTS_VIEW_RESPONSE_BEFORE\");     //No I18N\nexport const EVENTS_VIEW_RESPONSE_AFTER     = Symbol(\"EVENTS_VIEW_RESPONSE_AFTER\");      //No I18N\nexport const EVENTS_VIEW_NAME_UPDATE        = Symbol(\"EVENTS_VIEW_NAME_UPDATE\");         //No I18N\nexport const EVENTS_VIEW_DESCRIPTION_UPDATE = Symbol(\"EVENTS_VIEW_DESCRIPTION_UPDATE\");  //No I18N\nexport const EVENTS_VIEW_ORDER_LOAD         = Symbol(\"EVENTS_VIEW_ORDER_LOAD\");          //No I18N\nexport const EVENTS_VIEW_ORDER_INSERT       = Symbol(\"EVENTS_VIEW_ORDER_INSERT\");        //No I18N\nexport const EVENTS_VIEW_ORDER_REORDER      = Symbol(\"EVENTS_VIEW_ORDER_REORDER\");       //No I18N\nexport const EVENTS_VIEW_ORDER_DELETE       = Symbol(\"EVENTS_VIEW_ORDER_DELETE\");        //No I18N\nexport const EVENTS_LINKED_VIEW_ORDER       = Symbol(\"EVENTS_LINKED_VIEW_ORDER\");        //No I18N\n\nexport const EVENTS_GRID_RESPONSE_BEFORE = Symbol(\"EVENTS_GRID_RESPONSE_BEFORE\");  //No I18N\nexport const EVENTS_GRID_RESPONSE_AFTER  = Symbol(\"EVENTS_GRID_RESPONSE_AFTER\");   //No I18N\n\nexport const EVENTS_GRID_FIELD_ORDER_LOAD    = Symbol(\"EVENTS_GRID_FIELD_ORDER_LOAD\");     //No I18N\nexport const EVENTS_GRID_FIELD_ORDER_INSERT  = Symbol(\"EVENTS_GRID_FIELD_ORDER_INSERT\");   //No I18N\nexport const EVENTS_GRID_FIELD_ORDER_REORDER = Symbol(\"EVENTS_GRID_FIELD_ORDER_REORDER\");  //No I18N\nexport const EVENTS_GRID_FIELD_ORDER_HIDE    = Symbol(\"EVENTS_GRID_FIELD_ORDER_HIDE\");     //No I18N\nexport const EVENTS_GRID_FIELD_ORDER_RESIZE  = Symbol(\"EVENTS_GRID_FIELD_ORDER_RESIZE\");   //No I18N\n\nexport const EVENTS_GRID_INSERT_NON_HIDDEN_FIELD  = Symbol(\"EVENTS_GRID_INSERT_NON_HIDDEN_FIELD\");          //No I18N\nexport const EVENTS_GRID_APPEND_NON_HIDDEN_FIELD  = Symbol(\"EVENTS_GRID_APPEND_NON_HIDDEN_FIELD\");          //No I18N\nexport const EVENTS_GRID_DELETE_NON_HIDDEN_FIELD  = Symbol(\"EVENTS_GRID_DELETE_NON_HIDDEN_FIELD\");          //No I18N\nexport const EVENTS_GRID_REORDER_NON_HIDDEN_FIELD = Symbol(\"EVENTS_GRID_REORDER_NON_HIDDEN_FIELD\");          //No I18N\nexport const EVENTS_GRID_INSERT_HIDDEN_FIELD      = Symbol(\"EVENTS_GRID_INSERT_HIDDEN_FIELD\");          //No I18N\nexport const EVENTS_GRID_APPEND_HIDDEN_FIELD      = Symbol(\"EVENTS_GRID_APPEND_HIDDEN_FIELD\");          //No I18N\nexport const EVENTS_GRID_DELETE_HIDDEN_FIELD      = Symbol(\"EVENTS_GRID_DELETE_HIDDEN_FIELD\");          //No I18N\nexport const EVENTS_GRID_REORDER_HIDDEN_FIELD = Symbol(\"EVENTS_GRID_REORDER_HIDDEN_FIELD\");          //No I18N\n\nexport const EVENTS_GRID_SUMMARY_UPDATE = Symbol(\"EVENTS_GRID_SUMMARY_UPDATE\");  //No I18N\n\nexport const EVENTS_GRID_RECORD_HEIGHT_UPDATE = Symbol(\"EVENTS_GRID_RECORD_HEIGHT_UPDATE\");  //No I18N\nexport const EVENTS_GRID_RECORD_ORDER_LOAD    = Symbol(\"EVENTS_GRID_RECORD_ORDER_LOAD\");     //No I18N\nexport const EVENTS_GRID_RECORD_ORDER_INSERT  = Symbol(\"EVENTS_GRID_RECORD_ORDER_INSERT\");   //No I18N\nexport const EVENTS_GRID_RECORD_ORDER_DELETE  = Symbol(\"EVENTS_GRID_RECORD_ORDER_DELETE\");   //No I18N\nexport const EVENTS_GRID_RECORD_ORDER_REORDER = Symbol(\"EVENTS_GRID_RECORD_ORDER_REORDER\");  //No I18N\nexport const EVENTS_GRID_RECORD_ORDER_SORT    = Symbol(\"EVENTS_GRID_RECORD_ORDER_SORT\");     //No I18N\nexport const EVENTS_GRID_RECORD_ORDER_BEFORE_SORT   = Symbol(\"EVENTS_GRID_RECORD_ORDER_BEFORE_SORT\");     //No I18N\nexport const EVENTS_GRID_RECORD_ORDER_AFTER_SORT   = Symbol(\"EVENTS_GRID_RECORD_ORDER_AFTER_SORT\");     //No I18N\nexport const EVENTS_GRID_RECORD_ORDER_FAULTY  = Symbol(\"EVENTS_GRID_RECORD_ORDER_FAULTY\");   //No I18N\n\nexport const EVENTS_GRID_RECORD_ORDER_BEFORE_LOAD    = Symbol(\"EVENTS_GRID_RECORD_ORDER_BEFORE_LOAD\");     //No I18N\n\nexport const EVENTS_GRID_SORT_DELETE  = Symbol(\"EVENTS_GRID_SORT_DELETE\");   //No I18N\nexport const EVENTS_GRID_SORT_UPDATE  = Symbol(\"EVENTS_GRID_SORT_UPDATE\");   //No I18N\nexport const EVENTS_GRID_SORT_REORDER = Symbol(\"EVENTS_GRID_SORT_REORDER\");  //No I18N\nexport const EVENTS_GRID_SORT_LOAD    = Symbol(\"EVENTS_GRID_SORT_LOAD\");     //No I18N\n\nexport const EVENTS_GRID_CURRENT_USER_ROLE    = Symbol(\"EVENTS_GRID_CURRENT_USER_ROLE\"); //No I18N\n\nexport const EVENTS_GRID_FILTER_DELETE    = Symbol(\"EVENTS_GRID_FILTER_DELETE\");     //No I18N\nexport const EVENTS_GRID_FILTER_UPDATE    = Symbol(\"EVENTS_GRID_FILTER_UPDATE\");     //No I18N\nexport const EVENTS_GRID_FILTER_REORDER   = Symbol(\"EVENTS_GRID_FILTER_REORDER\");    //No I18N\nexport const EVENTS_GRID_FILTER_LOAD      = Symbol(\"EVENTS_GRID_FILTER_LOAD\");       //No I18N\nexport const EVENTS_GRID_FILTER_LOGICAL   = Symbol(\"EVENTS_GRID_FILTER_LOGICAL\");    //No I18N\nexport const EVENTS_GRID_FILTER_CONDITION = Symbol(\"EVENTS_GRID_FILTER_CONDITION\");  //No I18N\n\nexport const EVENTS_GRID_RECORDCOLOR_UPDATE              = Symbol(\"EVENTS_GRID_RECORDCOLOR_UPDATE\");               //No I18N\nexport const EVENTS_GRID_RECORDCOLOR_FAULTY_INTERSECTION = Symbol(\"EVENTS_GRID_RECORDCOLOR_FAULTY_INTERSECTION\");  //No I18N\n\nexport const EVENTS_GRID_REPLACE    = Symbol(\"EVENTS_GRID_REPLACE\");     //No I18N\nexport const EVENTS_GRID_REPLACEALL = Symbol(\"EVENTS_GRID_REPLACEALL\");  //No I18N\n\nexport const EVENTS_GRID_CONDITIONALFORMAT_TYPE             = Symbol(\"EVENTS_GRID_CONDITIONALFORMAT_TYPE\");              //No I18N\nexport const EVENTS_GRID_CONDITIONALFORMAT_SELECTION_UPDATE = Symbol(\"EVENTS_GRID_CONDITIONALFORMAT_SELECTION_UPDATE\");  //No I18N\nexport const EVENTS_GRID_CONDITIONALFORMAT_COLOR_LOAD       = Symbol(\"EVENTS_GRID_CONDITIONALFORMAT_COLOR_LOAD\");        //No I18N\nexport const EVENTS_GRID_CONDITIONALFORMAT_COLOR_DELETE     = Symbol(\"EVENTS_GRID_CONDITIONALFORMAT_COLOR_DELETE\");      //No I18N\nexport const EVENTS_GRID_CONDITIONALFORMAT_COLOR_UPDATE     = Symbol(\"EVENTS_GRID_CONDITIONALFORMAT_COLOR_UPDATE\");      //No I18N\nexport const EVENTS_GRID_CONDITIONALFORMAT_COLOR_REORDER    = Symbol(\"EVENTS_GRID_CONDITIONALFORMAT_COLOR_REORDER\");     //No I18N\nexport const EVENTS_GRID_CONDITIONALFORMAT_FALLBACK         = Symbol(\"EVENTS_GRID_CONDITIONALFORMAT_FALLBACK\");          //No I18N\nexport const EVENTS_GRID_CONDITIONALFORMAT_FILTER_LOAD      = Symbol(\"EVENTS_GRID_CONDITIONALFORMAT_FILTER_LOAD\");       //No I18N\nexport const EVENTS_GRID_CONDITIONALFORMAT_FILTER_DELETE    = Symbol(\"EVENTS_GRID_CONDITIONALFORMAT_FILTER_DELETE\");     //No I18N\nexport const EVENTS_GRID_CONDITIONALFORMAT_FILTER_UPDATE    = Symbol(\"EVENTS_GRID_CONDITIONALFORMAT_FILTER_UPDATE\");     //No I18N\nexport const EVENTS_GRID_CONDITIONALFORMAT_FILTER_REORDER   = Symbol(\"EVENTS_GRID_CONDITIONALFORMAT_FILTER_REORDER\");    //No I18N\nexport const EVENTS_GRID_CONDITIONALFORMAT_FILTER_LOGICAL   = Symbol(\"EVENTS_GRID_CONDITIONALFORMAT_FILTER_LOGICAL\");    //No I18N\nexport const EVENTS_GRID_CONDITIONALFORMAT_FILTER_CONDITION = Symbol(\"EVENTS_GRID_CONDITIONALFORMAT_FILTER_CONDITION\");  //No I18N\n\nexport const EVENTS_CALENDAR_RESPONSE_BEFORE = Symbol(\"EVENTS_CALENDAR_RESPONSE_BEFORE\");  //No I18N\nexport const EVENTS_CALENDAR_RESPONSE_AFTER  = Symbol(\"EVENTS_CALENDAR_RESPONSE_AFTER\");   //No I18N\n\n// export const EVENTS_CALENDAR_NAME_UPDATE        = Symbol(\"EVENTS_CALENDAR_NAME_UPDATE\");         //No I18N\n// export const EVENTS_CALENDAR_DESCRIPTION_UPDATE = Symbol(\"EVENTS_CALENDAR_DESCRIPTION_UPDATE\");  //No I18N\nexport const EVENTS_CALENDAR_ESSENTIALS_UPDATE  = Symbol(\"EVENTS_CALENDAR_ESSENTIALS_UPDATE\");   //No I18N\n\nexport const EVENTS_CALENDAR_FIELD_ORDER_LOAD    = Symbol(\"EVENTS_CALENDAR_FIELD_ORDER_LOAD\");     //No I18N\nexport const EVENTS_CALENDAR_FIELD_ORDER_INSERT  = Symbol(\"EVENTS_CALENDAR_FIELD_ORDER_INSERT\");   //No I18N\nexport const EVENTS_CALENDAR_FIELD_ORDER_REORDER = Symbol(\"EVENTS_CALENDAR_FIELD_ORDER_REORDER\");  //No I18N\nexport const EVENTS_CALENDAR_FIELD_ORDER_HIDE    = Symbol(\"EVENTS_CALENDAR_FIELD_ORDER_HIDE\");     //No I18N\n\nexport const EVENTS_CALENDAR_INSERT_NON_HIDDEN_FIELD  = Symbol(\"EVENTS_CALENDAR_INSERT_NON_HIDDEN_FIELD\");          //No I18N\nexport const EVENTS_CALENDAR_APPEND_NON_HIDDEN_FIELD  = Symbol(\"EVENTS_CALENDAR_APPEND_NON_HIDDEN_FIELD\");          //No I18N\nexport const EVENTS_CALENDAR_DELETE_NON_HIDDEN_FIELD  = Symbol(\"EVENTS_CALENDAR_DELETE_NON_HIDDEN_FIELD\");          //No I18N\nexport const EVENTS_CALENDAR_REORDER_NON_HIDDEN_FIELD = Symbol(\"EVENTS_CALENDAR_REORDER_NON_HIDDEN_FIELD\");          //No I18N\nexport const EVENTS_CALENDAR_INSERT_HIDDEN_FIELD      = Symbol(\"EVENTS_CALENDAR_INSERT_HIDDEN_FIELD\");          //No I18N\nexport const EVENTS_CALENDAR_APPEND_HIDDEN_FIELD      = Symbol(\"EVENTS_CALENDAR_APPEND_HIDDEN_FIELD\");          //No I18N\nexport const EVENTS_CALENDAR_DELETE_HIDDEN_FIELD      = Symbol(\"EVENTS_CALENDAR_DELETE_HIDDEN_FIELD\");          //No I18N\n\nexport const EVENTS_CALENDAR_RECORD_ORDER_LOAD    = Symbol(\"EVENTS_CALENDAR_RECORD_ORDER_LOAD\");     //No I18N\nexport const EVENTS_CALENDAR_RECORD_ORDER_INSERT  = Symbol(\"EVENTS_CALENDAR_RECORD_ORDER_INSERT\");   //No I18N\nexport const EVENTS_CALENDAR_RECORD_ORDER_REORDER = Symbol(\"EVENTS_CALENDAR_RECORD_ORDER_REORDER\");  //No I18N\nexport const EVENTS_CALENDAR_RECORD_ORDER_DELETE  = Symbol(\"EVENTS_CALENDAR_RECORD_ORDER_DELETE\");   //No I18N\nexport const EVENTS_CALENDAR_RECORD_ORDER_SORT    = Symbol(\"EVENTS_CALENDAR_RECORD_ORDER_SORT\");     //No I18N\nexport const EVENTS_CALENDAR_RECORD_ORDER_FAULTY  = Symbol(\"EVENTS_CALENDAR_RECORD_ORDER_FAULTY\");   //No I18N\n\nexport const EVENTS_CALENDAR_SORT_DELETE  = Symbol(\"EVENTS_CALENDAR_SORT_DELETE\");   //No I18N\nexport const EVENTS_CALENDAR_SORT_UPDATE  = Symbol(\"EVENTS_CALENDAR_SORT_UPDATE\");   //No I18N\nexport const EVENTS_CALENDAR_SORT_REORDER = Symbol(\"EVENTS_CALENDAR_SORT_REORDER\");  //No I18N\nexport const EVENTS_CALENDAR_SORT_LOAD    = Symbol(\"EVENTS_CALENDAR_SORT_LOAD\");     //No I18N\n\nexport const EVENTS_CALENDAR_CURRENT_USER_ROLE    = Symbol(\"EVENTS_CALENDAR_CURRENT_USER_ROLE\"); //No I18N\n\nexport const EVENTS_CALENDAR_RECORDORDERWITHDATA_LOAD   = Symbol(\"EVENTS_CALENDAR_RECORDORDERWITHDATA_LOAD\");    //No I18N\nexport const EVENTS_CALENDAR_RECORDORDERWITHDATA_INSERT = Symbol(\"EVENTS_CALENDAR_RECORDORDERWITHDATA_INSERT\");  //No I18N\nexport const EVENTS_CALENDAR_RECORDORDERWITHDATA_UPDATE = Symbol(\"EVENTS_CALENDAR_RECORDORDERWITHDATA_UPDATE\");  //No I18N\nexport const EVENTS_CALENDAR_RECORDORDERWITHDATA_DELETE = Symbol(\"EVENTS_CALENDAR_RECORDORDERWITHDATA_DELETE\");  //No I18N\n\nexport const EVENTS_CALENDAR_FILTER_LOAD      = Symbol(\"EVENTS_CALENDAR_FILTER_LOAD\");       //No I18N\nexport const EVENTS_CALENDAR_FILTER_DELETE    = Symbol(\"EVENTS_CALENDAR_FILTER_DELETE\");     //No I18N\nexport const EVENTS_CALENDAR_FILTER_UPDATE    = Symbol(\"EVENTS_CALENDAR_FILTER_UPDATE\");     //No I18N\nexport const EVENTS_CALENDAR_FILTER_REORDER   = Symbol(\"EVENTS_CALENDAR_FILTER_REORDER\");    //No I18N\nexport const EVENTS_CALENDAR_FILTER_LOGICAL   = Symbol(\"EVENTS_CALENDAR_FILTER_LOGICAL\");    //No I18N\nexport const EVENTS_CALENDAR_FILTER_CONDITION = Symbol(\"EVENTS_CALENDAR_FILTER_CONDITION\");  //No I18N\n\nexport const EVENTS_CALENDAR_RECORDCOLOR_UPDATE              = Symbol(\"EVENTS_CALENDAR_RECORDCOLOR_UPDATE\");               //No I18N\nexport const EVENTS_VIEW_RECORDCOLOR_IS_COLOR_APPLIED_UPDATE = Symbol(\"EVENTS_CALENDAR_RECORDCOLOR_IS_COLOR_APPLIED_UPDATE\");  //No I18N\nexport const EVENTS_CALENDAR_RECORDCOLOR_FAULTY_INTERSECTION = Symbol(\"EVENTS_CALENDAR_RECORDCOLOR_FAULTY_INTERSECTION\");  //No I18N\n\nexport const EVENTS_CALENDAR_CONDITIONALFORMAT_TYPE             = Symbol(\"EVENTS_CALENDAR_CONDITIONALFORMAT_TYPE\");              //No I18N\nexport const EVENTS_CALENDAR_CONDITIONALFORMAT_SELECTION_UPDATE = Symbol(\"EVENTS_CALENDAR_CONDITIONALFORMAT_SELECTION_UPDATE\");  //No I18N\nexport const EVENTS_CALENDAR_CONDITIONALFORMAT_COLOR_LOAD       = Symbol(\"EVENTS_CALENDAR_CONDITIONALFORMAT_COLOR_LOAD\");        //No I18N\nexport const EVENTS_CALENDAR_CONDITIONALFORMAT_COLOR_UPDATE     = Symbol(\"EVENTS_CALENDAR_CONDITIONALFORMAT_COLOR_UPDATE\");      //No I18N\nexport const EVENTS_CALENDAR_CONDITIONALFORMAT_COLOR_DELETE     = Symbol(\"EVENTS_CALENDAR_CONDITIONALFORMAT_COLOR_DELETE\");      //No I18N\nexport const EVENTS_CALENDAR_CONDITIONALFORMAT_COLOR_REORDER    = Symbol(\"EVENTS_CALENDAR_CONDITIONALFORMAT_COLOR_REORDER\");     //No I18N\nexport const EVENTS_CALENDAR_CONDITIONALFORMAT_FALLBACK         = Symbol(\"EVENTS_CALENDAR_CONDITIONALFORMAT_FALLBACK\");          //No I18N\nexport const EVENTS_CALENDAR_CONDITIONALFORMAT_FILTER_LOAD      = Symbol(\"EVENTS_CALENDAR_CONDITIONALFORMAT_FILTER_LOAD\");       //No I18N\nexport const EVENTS_CALENDAR_CONDITIONALFORMAT_FILTER_DELETE    = Symbol(\"EVENTS_CALENDAR_CONDITIONALFORMAT_FILTER_DELETE\");     //No I18N\nexport const EVENTS_CALENDAR_CONDITIONALFORMAT_FILTER_UPDATE    = Symbol(\"EVENTS_CALENDAR_CONDITIONALFORMAT_FILTER_UPDATE\");     //No I18N\nexport const EVENTS_CALENDAR_CONDITIONALFORMAT_FILTER_REORDER   = Symbol(\"EVENTS_CALENDAR_CONDITIONALFORMAT_FILTER_REORDER\");    //No I18N\nexport const EVENTS_CALENDAR_CONDITIONALFORMAT_FILTER_LOGICAL   = Symbol(\"EVENTS_CALENDAR_CONDITIONALFORMAT_FILTER_LOGICAL\");    //No I18N\nexport const EVENTS_CALENDAR_CONDITIONALFORMAT_FILTER_CONDITION = Symbol(\"EVENTS_CALENDAR_CONDITIONALFORMAT_FILTER_CONDITION\");  //No I18N\n\nexport const EVENTS_GANTT_RESPONSE_BEFORE = Symbol(\"EVENTS_GANTT_RESPONSE_BEFORE\");  //No I18N\nexport const EVENTS_GANTT_RESPONSE_AFTER  = Symbol(\"EVENTS_GANTT_RESPONSE_AFTER\");   //No I18N\nexport const EVENTS_GANTT_RECORD_FETCH_INFO_UPDATE  = Symbol(\"EVENTS_GANTT_RECORD_FETCH_INFO_UPDATE\");   //No I18N\nexport const EVENTS_GANTT_RECORD_FETCH_INFO_DATA_SYNC_REQUIRED_UPDATE  = Symbol(\"EVENTS_GANTT_RECORD_FETCH_INFO_DATA_SYNC_REQUIRED_UPDATE\");   //No I18N\nexport const EVENTS_GANTT_CURRENT_USER_ROLE_UPDATE = Symbol(\"EVENTS_GANTT_CURRENT_USER_ROLE_UPDATE\");  //No I18N\n\nexport const EVENTS_GANTT_CONFIG_LOAD                      = Symbol(\"EVENTS_GANTT_CONFIG_LOAD\");                       //No I18N\nexport const EVENTS_GANTT_CONFIG_UPDATE                    = Symbol(\"EVENTS_GANTT_CONFIG_UPDATE\");                       //No I18N\nexport const EVENTS_GANTT_CONFIG_START_DATE_UPDATE         = Symbol(\"EVENTS_GANTT_CONFIG_START_DATE_UPDATE\");          //No I18N\nexport const EVENTS_GANTT_CONFIG_END_DATE_UPDATE           = Symbol(\"EVENTS_GANTT_CONFIG_END_DATE_UPDATE\");            //No I18N\nexport const EVENTS_GANTT_CONFIG_DISPLAY_UPDATE            = Symbol(\"EVENTS_GANTT_CONFIG_DISPLAY_UPDATE\");             //No I18N\nexport const EVENTS_GANTT_CONFIG_DEPENDENCY_ENABLED_UPDATE = Symbol(\"EVENTS_GANTT_CONFIG_DEPENDENCY_ENABLED_UPDATE\");  //No I18N\nexport const EVENTS_GANTT_CONFIG_HIGHLIGHT_CRITICAL_PATH_UPDATE = Symbol(\"EVENTS_GANTT_CONFIG_HIGHLIGHT_CRITICAL_PATH_UPDATE\");  //No I18N\nexport const EVENTS_GANTT_CONFIG_MILESTONE_UPDATE          = Symbol(\"EVENTS_GANTT_CONFIG_MILESTONE_UPDATE\");           //No I18N\nexport const EVENTS_GANTT_CONFIG_DEPENDENCY_UPDATE         = Symbol(\"EVENTS_GANTT_CONFIG_DEPENDENCY_UPDATE\");          //No I18N\nexport const EVENTS_GANTT_CONFIG_SCALE_TYPE_UPDATE         = Symbol(\"EVENTS_GANTT_CONFIG_SCALE_TYPE_UPDATE\");          //No I18N\n\nexport const EVENTS_GANTT_RECORD_ORDER_LOAD    = Symbol(\"EVENTS_GANTT_RECORD_ORDER_LOAD\");     //No I18N\nexport const EVENTS_GANTT_RECORD_ORDER_INSERT  = Symbol(\"EVENTS_GANTT_RECORD_ORDER_INSERT\");   //No I18N\nexport const EVENTS_GANTT_RECORD_ORDER_DELETE  = Symbol(\"EVENTS_GANTT_RECORD_ORDER_DELETE\");   //No I18N\nexport const EVENTS_GANTT_RECORD_ORDER_SORT    = Symbol(\"EVENTS_GANTT_RECORD_ORDER_SORT\");     //No I18N\n\nexport const EVENTS_GANTT_SORT_DELETE  = Symbol(\"EVENTS_GANTT_SORT_DELETE\");   //No I18N\nexport const EVENTS_GANTT_SORT_UPDATE  = Symbol(\"EVENTS_GANTT_SORT_UPDATE\");   //No I18N\nexport const EVENTS_GANTT_SORT_REORDER = Symbol(\"EVENTS_GANTT_SORT_REORDER\");  //No I18N\nexport const EVENTS_GANTT_SORT_LOAD    = Symbol(\"EVENTS_GANTT_SORT_LOAD\");     //No I18N\n\nexport const EVENTS_GANTT_FILTER_LOAD      = Symbol(\"EVENTS_GANTT_FILTER_LOAD\");       //No I18N\nexport const EVENTS_GANTT_FILTER_DELETE    = Symbol(\"EVENTS_GANTT_FILTER_DELETE\");     //No I18N\nexport const EVENTS_GANTT_FILTER_UPDATE    = Symbol(\"EVENTS_GANTT_FILTER_UPDATE\");     //No I18N\nexport const EVENTS_GANTT_FILTER_REORDER   = Symbol(\"EVENTS_GANTT_FILTER_REORDER\");    //No I18N\nexport const EVENTS_GANTT_FILTER_LOGICAL   = Symbol(\"EVENTS_GANTT_FILTER_LOGICAL\");    //No I18N\nexport const EVENTS_GANTT_FILTER_CONDITION = Symbol(\"EVENTS_GANTT_FILTER_CONDITION\");  //No I18N\n\nexport const EVENTS_GANTT_RECORD_TYPE_UPDATE       = Symbol(\"EVENTS_GANTT_RECORD_TYPE_UPDATE\");       //No I18N\nexport const EVENTS_GANTT_RECORD_COLOR_UPDATE      = Symbol(\"EVENTS_GANTT_RECORD_COLOR_UPDATE\");      //No I18N\nexport const EVENTS_GANTT_RECORD_META_LOAD         = Symbol(\"EVENTS_GANTT_RECORD_META_LOAD\");         //No I18N\nexport const EVENTS_GANTT_RECORD_DATA_RESPONSE     = Symbol(\"EVENTS_GANTT_RECORD_DATA_RESPONSE\");     //No I18N\nexport const EVENTS_GANTT_RECORD_START_DATE_UPDATE = Symbol(\"EVENTS_GANTT_RECORD_START_DATE_UPDATE\"); //No I18N\nexport const EVENTS_GANTT_RECORD_END_DATE_UPDATE   = Symbol(\"EVENTS_GANTT_RECORD_END_DATE_UPDATE\");   //No I18N\nexport const EVENTS_GANTT_RECORD_DISPLAY_UPDATE    = Symbol(\"EVENTS_GANTT_RECORD_DISPLAY_UPDATE\");    //No I18N\nexport const EVENTS_GANTT_RECORD_MILESTONE_UPDATE  = Symbol(\"EVENTS_GANTT_RECORD_MILESTONE_UPDATE\");  //No I18N\n\nexport const EVENTS_GANTT_SUCCESSOR_LOAD                      = Symbol(\"EVENTS_GANTT_SUCCESSOR_LOAD\");                       //No I18N\nexport const EVENTS_GANTT_SUCCESSOR_INSERT                    = Symbol(\"EVENTS_GANTT_SUCCESSOR_INSERT\");                     //No I18N\nexport const EVENTS_GANTT_SUCCESSOR_DELETE                    = Symbol(\"EVENTS_GANTT_SUCCESSOR_DELETE\");                     //No I18N\nexport const EVENTS_GANTT_SUCCESSOR_META_CONNECTION_TYPE_UPDATE = Symbol(\"EVENTS_GANTT_SUCCESSOR_META_CONNECTION_TYPE_UPDATE\"); //No I18N\nexport const EVENTS_GANTT_SUCCESSOR_META_PATH_TYPE_UPDATE     = Symbol(\"EVENTS_GANTT_SUCCESSOR_META_PATH_TYPE_UPDATE\");      //No I18N\nexport const EVENTS_GANTT_SUCCESSOR_META_UPDATE               = Symbol(\"EVENTS_GANTT_SUCCESSOR_META_UPDATE\");                //No I18N\n\nexport const EVENTS_GANTT_PREDECESSOR_LOAD                    = Symbol(\"EVENTS_GANTT_PREDECESSOR_LOAD\");                     //No I18N\nexport const EVENTS_GANTT_PREDECESSOR_INSERT                  = Symbol(\"EVENTS_GANTT_PREDECESSOR_INSERT\");                   //No I18N\nexport const EVENTS_GANTT_PREDECESSOR_DELETE                  = Symbol(\"EVENTS_GANTT_PREDECESSOR_DELETE\");                   //No I18N\nexport const EVENTS_GANTT_PREDECESSOR_META_CONNECTION_TYPE_UPDATE = Symbol(\"EVENTS_GANTT_PREDECESSOR_META_CONNECTION_TYPE_UPDATE\"); //No I18N\nexport const EVENTS_GANTT_PREDECESSOR_META_PATH_TYPE_UPDATE   = Symbol(\"EVENTS_GANTT_PREDECESSOR_META_PATH_TYPE_UPDATE\");    //No I18N\nexport const EVENTS_GANTT_PREDECESSOR_META_UPDATE             = Symbol(\"EVENTS_GANTT_PREDECESSOR_META_UPDATE\");              //No I18N\n\nexport const EVENTS_GANTT_RECORDCOLOR_UPDATE              = Symbol(\"EVENTS_GANTT_RECORDCOLOR_UPDATE\");               //No I18N\nexport const EVENTS_GANTT_RECORDCOLOR_FAULTY_INTERSECTION = Symbol(\"EVENTS_GANTT_RECORDCOLOR_FAULTY_INTERSECTION\");  //No I18N\n\nexport const EVENTS_GANTT_FIELD_ORDER_LOAD   = Symbol(\"EVENTS_GANTT_FIELD_ORDER_LOAD\");    //No I18N\nexport const EVENTS_GANTT_FIELD_ORDER_INSERT = Symbol(\"EVENTS_GANTT_FIELD_ORDER_INSERT\");  //No I18N\n\nexport const EVENTS_GANTT_CONDITIONALFORMAT_TYPE             = Symbol(\"EVENTS_GANTT_CONDITIONALFORMAT_TYPE\");              //No I18N\nexport const EVENTS_GANTT_CONDITIONALFORMAT_SELECTION_UPDATE = Symbol(\"EVENTS_GANTT_CONDITIONALFORMAT_SELECTION_UPDATE\");  //No I18N\nexport const EVENTS_GANTT_CONDITIONALFORMAT_COLOR_LOAD       = Symbol(\"EVENTS_GANTT_CONDITIONALFORMAT_COLOR_LOAD\");        //No I18N\nexport const EVENTS_GANTT_CONDITIONALFORMAT_COLOR_UPDATE     = Symbol(\"EVENTS_GANTT_CONDITIONALFORMAT_COLOR_UPDATE\");      //No I18N\nexport const EVENTS_GANTT_CONDITIONALFORMAT_COLOR_DELETE     = Symbol(\"EVENTS_GANTT_CONDITIONALFORMAT_COLOR_DELETE\");      //No I18N\nexport const EVENTS_GANTT_CONDITIONALFORMAT_COLOR_REORDER    = Symbol(\"EVENTS_GANTT_CONDITIONALFORMAT_COLOR_REORDER\");     //No I18N\nexport const EVENTS_GANTT_CONDITIONALFORMAT_FALLBACK         = Symbol(\"EVENTS_GANTT_CONDITIONALFORMAT_FALLBACK\");          //No I18N\nexport const EVENTS_GANTT_CONDITIONALFORMAT_FILTER_LOAD      = Symbol(\"EVENTS_GANTT_CONDITIONALFORMAT_FILTER_LOAD\");       //No I18N\nexport const EVENTS_GANTT_CONDITIONALFORMAT_FILTER_DELETE    = Symbol(\"EVENTS_GANTT_CONDITIONALFORMAT_FILTER_DELETE\");     //No I18N\nexport const EVENTS_GANTT_CONDITIONALFORMAT_FILTER_UPDATE    = Symbol(\"EVENTS_GANTT_CONDITIONALFORMAT_FILTER_UPDATE\");     //No I18N\nexport const EVENTS_GANTT_CONDITIONALFORMAT_FILTER_REORDER   = Symbol(\"EVENTS_GANTT_CONDITIONALFORMAT_FILTER_REORDER\");    //No I18N\nexport const EVENTS_GANTT_CONDITIONALFORMAT_FILTER_LOGICAL   = Symbol(\"EVENTS_GANTT_CONDITIONALFORMAT_FILTER_LOGICAL\");    //No I18N\nexport const EVENTS_GANTT_CONDITIONALFORMAT_FILTER_CONDITION = Symbol(\"EVENTS_GANTT_CONDITIONALFORMAT_FILTER_CONDITION\");  //No I18N\n\nexport const EVENTS_GALLERY_RESPONSE_BEFORE = Symbol(\"EVENTS_GALLERY_RESPONSE_BEFORE\");  //No I18N\nexport const EVENTS_GALLERY_RESPONSE_AFTER  = Symbol(\"EVENTS_GALLERY_RESPONSE_AFTER\");   //No I18N\n\n// export const EVENTS_GALLERY_NAME_UPDATE        = Symbol(\"EVENTS_GALLERY_NAME_UPDATE\");         //No I18N\n// export const EVENTS_GALLERY_DESCRIPTION_UPDATE = Symbol(\"EVENTS_GALLERY_DESCRIPTION_UPDATE\");  //No I18N\nexport const EVENTS_GALLERY_ESSENTIALS_UPDATE  = Symbol(\"EVENTS_GALLERY_ESSENTIALS_UPDATE\");   //No I18N\n\nexport const EVENTS_GALLERY_FIELD_ORDER_LOAD    = Symbol(\"EVENTS_GALLERY_FIELD_ORDER_LOAD\");     //No I18N\nexport const EVENTS_GALLERY_FIELD_ORDER_INSERT  = Symbol(\"EVENTS_GALLERY_FIELD_ORDER_INSERT\");   //No I18N\nexport const EVENTS_GALLERY_FIELD_ORDER_REORDER = Symbol(\"EVENTS_GALLERY_FIELD_ORDER_REORDER\");  //No I18N\nexport const EVENTS_GALLERY_FIELD_ORDER_HIDE    = Symbol(\"EVENTS_GALLERY_FIELD_ORDER_HIDE\");     //No I18N\nexport const EVENTS_GALLERY_FIELD_ORDER_RESIZE  = Symbol(\"EVENTS_GALLERY_FIELD_ORDER_RESIZE\");   //No I18N\n\nexport const EVENTS_GALLERY_BLUEPRINT_SCHEMA_LOAD               = Symbol(\"EVENTS_GALLERY_BLUEPRINT_SCHEMA_LOAD\");          //No I18N\nexport const EVENTS_GALLERY_BLUEPRINT_SCHEMA_INSERT             = Symbol(\"EVENTS_GALLERY_BLUEPRINT_SCHEMA_INSERT\");          //No I18N\nexport const EVENTS_GALLERY_BLUEPRINT_COVERID                   = Symbol(\"EVENTS_GALLERY_BLUEPRINT_COVERID\");          //No I18N\nexport const EVENTS_GALLERY_BLUEPRINT_TITLEID                   = Symbol(\"EVENTS_GALLERY_BLUEPRINT_TITLEID\");          //No I18N\n\nexport const EVENTS_GALLERY_BLUEPRINT_ROW_ORDER_LOAD          = Symbol(\"EVENTS_GALLERY_BLUEPRINT_ROW_ORDER_LOAD\");          //No I18N\nexport const EVENTS_GALLERY_BLUEPRINT_ROW_ORDER_INSERT        = Symbol(\"EVENTS_GALLERY_BLUEPRINT_ROW_ORDER_INSERT\");          //No I18N\nexport const EVENTS_GALLERY_BLUEPRINT_ROW_ORDER_DELETE        = Symbol(\"EVENTS_GALLERY_BLUEPRINT_ROW_ORDER_DELETE\");          //No I18N\nexport const EVENTS_GALLERY_BLUEPRINT_ROW_ORDER_UPDATE        = Symbol(\"EVENTS_GALLERY_BLUEPRINT_ROW_ORDER_UPDATE\");          //No I18N\nexport const EVENTS_GALLERY_BLUEPRINT_ROW_ORDER_REORDER       = Symbol(\"EVENTS_GALLERY_BLUEPRINT_ROW_ORDER_REORDER\");//No I18N\nexport const EVENTS_GALLERY_BLUEPRINT_ROW_SCHEMA_ORDER_LOAD   = Symbol(\"EVENTS_GALLERY_BLUEPRINT_ROW_SCHEMA_ORDER_LOAD\");          //No I18N\nexport const EVENTS_GALLERY_BLUEPRINT_ROW_SCHEMA_ORDER_INSERT = Symbol(\"EVENTS_GALLERY_BLUEPRINT_ROW_SCHEMA_ORDER_INSERT\");          //No I18N\nexport const EVENTS_GALLERY_BLUEPRINT_ROW_SCHEMA_ORDER_DELETE = Symbol(\"EVENTS_GALLERY_BLUEPRINT_ROW_SCHEMA_ORDER_DELETE\");          //No I18N\nexport const EVENTS_GALLERY_BLUEPRINT_ROW_SCHEMA_ORDER_UPDATE = Symbol(\"EVENTS_GALLERY_BLUEPRINT_ROW_SCHEMA_ORDER_UPDATE\");          //No I18N\nexport const EVENTS_GALLERY_BLUEPRINT_ROW_SCHEMA_ORDER_REORDER= Symbol(\"EVENTS_GALLERY_BLUEPRINT_ROW_SCHEMA_ORDER_REORDER\");//No I18N\nexport const EVENTS_GALLERY_BLUEPRINT_ROW_RATIO               = Symbol(\"EVENTS_GALLERY_BLUEPRINT_ROW_RATIO\");          //No I18N\nexport const EVENTS_GALLERY_BLUEPRINT_SCHEMA_PROPERTIES_LINESPACE_UPDATE        = Symbol(\"EVENTS_GALLERY_BLUEPRINT_SCHEMA_PROPERTIES_LINESPACE_UPDATE\");          //No I18N\nexport const EVENTS_GALLERY_BLUEPRINT_SCHEMA_PROPERTIES_TEXTALIGN_UPDATE        = Symbol(\"EVENTS_GALLERY_BLUEPRINT_SCHEMA_PROPERTIES_TEXTALIGN_UPDATE\");          //No I18N\nexport const EVENTS_GALLERY_BLUEPRINT_SCHEMA_PROPERTIES_OBJECTFIT_UPDATE        = Symbol(\"EVENTS_GALLERY_BLUEPRINT_SCHEMA_PROPERTIES_OBJECTFIT_UPDATE\");          //No I18N\nexport const EVENTS_GALLERY_BLUEPRINT_SCHEMA_PROPERTIES_RATING_STYLE_UPDATE     = Symbol(\"EVENTS_GALLERY_BLUEPRINT_SCHEMA_PROPERTIES_RATING_STYLE_UPDATE\");          //No I18N\nexport const EVENTS_GALLERY_BLUEPRINT_SCHEMA_PROPERTIES_CHECKBOX_STYLE_UPDATE   = Symbol(\"EVENTS_GALLERY_BLUEPRINT_SCHEMA_PROPERTIES_CHECKBOX_STYLE_UPDATE\");          //No I18N\nexport const EVENTS_GALLERY_BLUEPRINT_SCHEMA_PROPERTIES_HEADER_UPDATE           = Symbol(\"EVENTS_GALLERY_BLUEPRINT_SCHEMA_PROPERTIES_HEADER_UPDATE\");          //No I18N\nexport const EVENTS_GALLERY_BLUEPRINT_SCHEMA_FIELD_ID_UPDATE         = Symbol(\"EVENTS_GALLERY_BLUEPRINT_SCHEMA_FIELD_ID_UPDATE\");  //No I18N\nexport const EVENTS_GALLERY_BLUEPRINT_SCHEMA_PROPERTIES_MULTILINE_UPDATE           = Symbol(\"EVENTS_GALLERY_BLUEPRINT_SCHEMA_PROPERTIES_MULTILINE_UPDATE\");          //No I18N\n\nexport const EVENTS_GALLERY_BLUEPRINT_PROPERTIES_LINESPACE_UPDATE        = Symbol(\"EVENTS_GALLERY_BLUEPRINT_PROPERTIES_LINESPACE_UPDATE\");          //No I18N\nexport const EVENTS_GALLERY_BLUEPRINT_PROPERTIES_TEXTALIGN_UPDATE        = Symbol(\"EVENTS_GALLERY_BLUEPRINT_PROPERTIES_TEXTALIGN_UPDATE\");          //No I18N\nexport const EVENTS_GALLERY_BLUEPRINT_PROPERTIES_OBJECTFIT_UPDATE        = Symbol(\"EVENTS_GALLERY_BLUEPRINT_PROPERTIES_OBJECTFIT_UPDATE\");          //No I18N\nexport const EVENTS_GALLERY_BLUEPRINT_PROPERTIES_RATING_STYLE_UPDATE     = Symbol(\"EVENTS_GALLERY_BLUEPRINT_PROPERTIES_RATING_STYLE_UPDATE\");          //No I18N\nexport const EVENTS_GALLERY_BLUEPRINT_PROPERTIES_CHECKBOX_STYLE_UPDATE   = Symbol(\"EVENTS_GALLERY_BLUEPRINT_PROPERTIES_CHECKBOX_STYLE_UPDATE\");          //No I18N\nexport const EVENTS_GALLERY_BLUEPRINT_PROPERTIES_HEADER_UPDATE           = Symbol(\"EVENTS_GALLERY_BLUEPRINT_PROPERTIES_HEADER_UPDATE\");          //No I18N\n\nexport const EVENTS_GALLERY_INSERT_NON_HIDDEN_FIELD  = Symbol(\"EVENTS_GALLERY_INSERT_NON_HIDDEN_FIELD\");          //No I18N\nexport const EVENTS_GALLERY_APPEND_NON_HIDDEN_FIELD  = Symbol(\"EVENTS_GALLERY_APPEND_NON_HIDDEN_FIELD\");          //No I18N\nexport const EVENTS_GALLERY_DELETE_NON_HIDDEN_FIELD  = Symbol(\"EVENTS_GALLERY_DELETE_NON_HIDDEN_FIELD\");          //No I18N\nexport const EVENTS_GALLERY_REORDER_NON_HIDDEN_FIELD = Symbol(\"EVENTS_GALLERY_REORDER_NON_HIDDEN_FIELD\");          //No I18N\nexport const EVENTS_GALLERY_INSERT_HIDDEN_FIELD      = Symbol(\"EVENTS_GALLERY_INSERT_HIDDEN_FIELD\");          //No I18N\nexport const EVENTS_GALLERY_APPEND_HIDDEN_FIELD      = Symbol(\"EVENTS_GALLERY_APPEND_HIDDEN_FIELD\");          //No I18N\nexport const EVENTS_GALLERY_DELETE_HIDDEN_FIELD      = Symbol(\"EVENTS_GALLERY_DELETE_HIDDEN_FIELD\");          //No I18N\n\nexport const EVENTS_GALLERY_RECORD_ORDER_INSERT                 = Symbol(\"EVENTS_GALLERY_RECORD_ORDER_INSERT\");          //No I18N\nexport const EVENTS_GALLERY_RECORD_ORDER_DELETE                 = Symbol(\"EVENTS_GALLERY_RECORD_ORDER_DELETE\");          //No I18N\nexport const EVENTS_GALLERY_RECORD_ORDER_REORDER                = Symbol(\"EVENTS_GALLERY_RECORD_ORDER_REORDER\");          //No I18N\nexport const EVENTS_GALLERY_RECORD_ORDER_UPDATE                 = Symbol(\"EVENTS_GALLERY_RECORD_ORDER_UPDATE\");          //No I18N\nexport const EVENTS_GALLERY_RECORD_ORDER_LOAD                   = Symbol(\"EVENTS_GALLERY_RECORD_ORDER_LOAD\");          //No I18N\nexport const EVENTS_GALLERY_RECORD_ORDER_SORT                   = Symbol(\"EVENTS_GALLERY_RECORD_ORDER_SORT\");          //No I18N\nexport const EVENTS_GALLERY_RECORD_ORDER_FAULTY                 = Symbol(\"EVENTS_GALLERY_RECORD_ORDER_FAULTY\");          //No I18N\n\nexport const EVENTS_GALLERY_SORT_DELETE  = Symbol(\"EVENTS_GALLERY_SORT_DELETE\");   //No I18N\nexport const EVENTS_GALLERY_SORT_UPDATE  = Symbol(\"EVENTS_GALLERY_SORT_UPDATE\");   //No I18N\nexport const EVENTS_GALLERY_SORT_REORDER = Symbol(\"EVENTS_GALLERY_SORT_REORDER\");  //No I18N\nexport const EVENTS_GALLERY_SORT_LOAD    = Symbol(\"EVENTS_GALLERY_SORT_LOAD\");     //No I18N\n\nexport const EVENTS_GALLERY_CURRENT_USER_ROLE    = Symbol(\"EVENTS_GALLERY_CURRENT_USER_ROLE\"); //No I18N\n\nexport const EVENTS_GALLERY_FILTER_LOAD      = Symbol(\"EVENTS_GALLERY_FILTER_LOAD\");       //No I18N\nexport const EVENTS_GALLERY_FILTER_DELETE    = Symbol(\"EVENTS_GALLERY_FILTER_DELETE\");     //No I18N\nexport const EVENTS_GALLERY_FILTER_UPDATE    = Symbol(\"EVENTS_GALLERY_FILTER_UPDATE\");     //No I18N\nexport const EVENTS_GALLERY_FILTER_REORDER   = Symbol(\"EVENTS_GALLERY_FILTER_REORDER\");    //No I18N\nexport const EVENTS_GALLERY_FILTER_LOGICAL   = Symbol(\"EVENTS_GALLERY_FILTER_LOGICAL\");    //No I18N\nexport const EVENTS_GALLERY_FILTER_CONDITION = Symbol(\"EVENTS_GALLERY_FILTER_CONDITION\");  //No I18N\n\nexport const EVENTS_GALLERY_RECORDCOLOR_UPDATE              = Symbol(\"EVENTS_GALLERY_RECORDCOLOR_UPDATE\");               //No I18N\nexport const EVENTS_GALLERY_RECORDCOLOR_FAULTY_INTERSECTION = Symbol(\"EVENTS_GALLERY_RECORDCOLOR_FAULTY_INTERSECTION\");  //No I18N\n\nexport const EVENTS_GALLERY_CONDITIONALFORMAT_TYPE             = Symbol(\"EVENTS_GALLERY_CONDITIONALFORMAT_TYPE\");              //No I18N\nexport const EVENTS_GALLERY_CONDITIONALFORMAT_SELECTION_UPDATE = Symbol(\"EVENTS_GALLERY_CONDITIONALFORMAT_SELECTION_UPDATE\");  //No I18N\nexport const EVENTS_GALLERY_CONDITIONALFORMAT_COLOR_LOAD       = Symbol(\"EVENTS_GALLERY_CONDITIONALFORMAT_COLOR_LOAD\");        //No I18N\nexport const EVENTS_GALLERY_CONDITIONALFORMAT_COLOR_UPDATE     = Symbol(\"EVENTS_GALLERY_CONDITIONALFORMAT_COLOR_UPDATE\");      //No I18N\nexport const EVENTS_GALLERY_CONDITIONALFORMAT_COLOR_DELETE     = Symbol(\"EVENTS_GALLERY_CONDITIONALFORMAT_COLOR_DELETE\");      //No I18N\nexport const EVENTS_GALLERY_CONDITIONALFORMAT_COLOR_REORDER    = Symbol(\"EVENTS_GALLERY_CONDITIONALFORMAT_COLOR_REORDER\");     //No I18N\nexport const EVENTS_GALLERY_CONDITIONALFORMAT_FALLBACK         = Symbol(\"EVENTS_GALLERY_CONDITIONALFORMAT_FALLBACK\");          //No I18N\nexport const EVENTS_GALLERY_CONDITIONALFORMAT_FILTER_LOAD      = Symbol(\"EVENTS_GALLERY_CONDITIONALFORMAT_FILTER_LOAD\");       //No I18N\nexport const EVENTS_GALLERY_CONDITIONALFORMAT_FILTER_DELETE    = Symbol(\"EVENTS_GALLERY_CONDITIONALFORMAT_FILTER_DELETE\");     //No I18N\nexport const EVENTS_GALLERY_CONDITIONALFORMAT_FILTER_UPDATE    = Symbol(\"EVENTS_GALLERY_CONDITIONALFORMAT_FILTER_UPDATE\");     //No I18N\nexport const EVENTS_GALLERY_CONDITIONALFORMAT_FILTER_REORDER   = Symbol(\"EVENTS_GALLERY_CONDITIONALFORMAT_FILTER_REORDER\");    //No I18N\nexport const EVENTS_GALLERY_CONDITIONALFORMAT_FILTER_LOGICAL   = Symbol(\"EVENTS_GALLERY_CONDITIONALFORMAT_FILTER_LOGICAL\");    //No I18N\nexport const EVENTS_GALLERY_CONDITIONALFORMAT_FILTER_CONDITION = Symbol(\"EVENTS_GALLERY_CONDITIONALFORMAT_FILTER_CONDITION\");  //No I18N\n\nexport const EVENTS_KANBAN_RESPONSE_BEFORE = Symbol(\"EVENTS_KANBAN_RESPONSE_BEFORE\");  //No I18N\nexport const EVENTS_KANBAN_RESPONSE_AFTER  = Symbol(\"EVENTS_KANBAN_RESPONSE_AFTER\");   //No I18N\n\n// export const EVENTS_KANBAN_NAME_UPDATE        = Symbol(\"EVENTS_KANBAN_NAME_UPDATE\");         //No I18N\n// export const EVENTS_KANBAN_DESCRIPTION_UPDATE = Symbol(\"EVENTS_KANBAN_DESCRIPTION_UPDATE\");  //No I18N\nexport const EVENTS_KANBAN_ESSENTIALS_UPDATE  = Symbol(\"EVENTS_KANBAN_ESSENTIALS_UPDATE\");   //No I18N\nexport const EVENTS_KANBAN_ANCHOR_UPDATE  = Symbol(\"EVENTS_KANBAN_ANCHOR_UPDATE\");   //No I18N\n\nexport const EVENTS_KANBAN_FIELD_ORDER_LOAD    = Symbol(\"EVENTS_KANBAN_FIELD_ORDER_LOAD\");     //No I18N\nexport const EVENTS_KANBAN_FIELD_ORDER_INSERT  = Symbol(\"EVENTS_KANBAN_FIELD_ORDER_INSERT\");   //No I18N\nexport const EVENTS_KANBAN_FIELD_ORDER_REORDER = Symbol(\"EVENTS_KANBAN_FIELD_ORDER_REORDER\");  //No I18N\nexport const EVENTS_KANBAN_FIELD_ORDER_DELETE  = Symbol(\"EVENTS_KANBAN_FIELD_ORDER_DELETE\");   //No I18N\n\nexport const EVENTS_KANBAN_FIELD_ORDER_HIDE   = Symbol(\"EVENTS_KANBAN_FIELD_ORDER_HIDE\");    //No I18N\nexport const EVENTS_KANBAN_FIELD_ORDER_RESIZE = Symbol(\"EVENTS_KANBAN_FIELD_ORDER_RESIZE\");  //No I18N\n\nexport const EVENTS_KANBAN_BLUEPRINT_SCHEMA_LOAD               = Symbol(\"EVENTS_KANBAN_BLUEPRINT_SCHEMA_LOAD\");          //No I18N\nexport const EVENTS_KANBAN_BLUEPRINT_SCHEMA_INSERT             = Symbol(\"EVENTS_KANBAN_BLUEPRINT_SCHEMA_INSERT\");          //No I18N\nexport const EVENTS_KANBAN_BLUEPRINT_COVERID                   = Symbol(\"EVENTS_KANBAN_BLUEPRINT_COVERID\");          //No I18N\nexport const EVENTS_KANBAN_BLUEPRINT_TITLEID                   = Symbol(\"EVENTS_KANBAN_BLUEPRINT_TITLEID\");          //No I18N\n\nexport const EVENTS_KANBAN_BLUEPRINT_ROW_ORDER_LOAD          = Symbol(\"EVENTS_KANBAN_BLUEPRINT_ROW_ORDER_LOAD\");          //No I18N\nexport const EVENTS_KANBAN_BLUEPRINT_ROW_ORDER_INSERT        = Symbol(\"EVENTS_KANBAN_BLUEPRINT_ROW_ORDER_INSERT\");          //No I18N\nexport const EVENTS_KANBAN_BLUEPRINT_ROW_ORDER_DELETE        = Symbol(\"EVENTS_KANBAN_BLUEPRINT_ROW_ORDER_DELETE\");          //No I18N\nexport const EVENTS_KANBAN_BLUEPRINT_ROW_ORDER_UPDATE        = Symbol(\"EVENTS_KANBAN_BLUEPRINT_ROW_ORDER_UPDATE\");          //No I18N\nexport const EVENTS_KANBAN_BLUEPRINT_ROW_ORDER_REORDER       = Symbol(\"EVENTS_KANBAN_BLUEPRINT_ROW_ORDER_REORDER\");//No I18N\nexport const EVENTS_KANBAN_BLUEPRINT_ROW_SCHEMA_ORDER_LOAD   = Symbol(\"EVENTS_KANBAN_BLUEPRINT_ROW_SCHEMA_ORDER_LOAD\");          //No I18N\nexport const EVENTS_KANBAN_BLUEPRINT_ROW_SCHEMA_ORDER_INSERT = Symbol(\"EVENTS_KANBAN_BLUEPRINT_ROW_SCHEMA_ORDER_INSERT\");          //No I18N\nexport const EVENTS_KANBAN_BLUEPRINT_ROW_SCHEMA_ORDER_DELETE = Symbol(\"EVENTS_KANBAN_BLUEPRINT_ROW_SCHEMA_ORDER_DELETE\");          //No I18N\nexport const EVENTS_KANBAN_BLUEPRINT_ROW_SCHEMA_ORDER_UPDATE = Symbol(\"EVENTS_KANBAN_BLUEPRINT_ROW_SCHEMA_ORDER_UPDATE\");          //No I18N\nexport const EVENTS_KANBAN_BLUEPRINT_ROW_SCHEMA_ORDER_REORDER= Symbol(\"EVENTS_KANBAN_BLUEPRINT_ROW_SCHEMA_ORDER_REORDER\");//No I18N\nexport const EVENTS_KANBAN_BLUEPRINT_ROW_RATIO               = Symbol(\"EVENTS_KANBAN_BLUEPRINT_ROW_RATIO\");          //No I18N\nexport const EVENTS_KANBAN_BLUEPRINT_SCHEMA_PROPERTIES_LINESPACE_UPDATE        = Symbol(\"EVENTS_KANBAN_BLUEPRINT_SCHEMA_PROPERTIES_LINESPACE_UPDATE\");          //No I18N\nexport const EVENTS_KANBAN_BLUEPRINT_SCHEMA_PROPERTIES_TEXTALIGN_UPDATE        = Symbol(\"EVENTS_KANBAN_BLUEPRINT_SCHEMA_PROPERTIES_TEXTALIGN_UPDATE\");          //No I18N\nexport const EVENTS_KANBAN_BLUEPRINT_SCHEMA_PROPERTIES_OBJECTFIT_UPDATE        = Symbol(\"EVENTS_KANBAN_BLUEPRINT_SCHEMA_PROPERTIES_OBJECTFIT_UPDATE\");          //No I18N\nexport const EVENTS_KANBAN_BLUEPRINT_SCHEMA_PROPERTIES_MULTILINE_UPDATE        = Symbol(\"EVENTS_KANBAN_BLUEPRINT_SCHEMA_PROPERTIES_MULTILINE_UPDATE\");   //No I18N\nexport const EVENTS_KANBAN_BLUEPRINT_SCHEMA_PROPERTIES_RATING_STYLE_UPDATE     = Symbol(\"EVENTS_KANBAN_BLUEPRINT_SCHEMA_PROPERTIES_RATING_STYLE_UPDATE\");          //No I18N\nexport const EVENTS_KANBAN_BLUEPRINT_SCHEMA_PROPERTIES_CHECKBOX_STYLE_UPDATE   = Symbol(\"EVENTS_KANBAN_BLUEPRINT_SCHEMA_PROPERTIES_CHECKBOX_STYLE_UPDATE\");          //No I18N\nexport const EVENTS_KANBAN_BLUEPRINT_SCHEMA_PROPERTIES_HEADER_UPDATE           = Symbol(\"EVENTS_KANBAN_BLUEPRINT_SCHEMA_PROPERTIES_HEADER_UPDATE\");          //No I18N\nexport const EVENTS_KANBAN_BLUEPRINT_SCHEMA_FIELD_ID_UPDATE         = Symbol(\"EVENTS_KANBAN_BLUEPRINT_SCHEMA_FIELD_ID_UPDATE\");  //No I18N\nexport const EVENTS_KANBAN_BLUEPRINT_PROPERTIES_LINESPACE_UPDATE        = Symbol(\"EVENTS_KANBAN_BLUEPRINT_PROPERTIES_LINESPACE_UPDATE\");          //No I18N\nexport const EVENTS_KANBAN_BLUEPRINT_PROPERTIES_TEXTALIGN_UPDATE        = Symbol(\"EVENTS_KANBAN_BLUEPRINT_PROPERTIES_TEXTALIGN_UPDATE\");          //No I18N\nexport const EVENTS_KANBAN_BLUEPRINT_PROPERTIES_OBJECTFIT_UPDATE        = Symbol(\"EVENTS_KANBAN_BLUEPRINT_PROPERTIES_OBJECTFIT_UPDATE\");          //No I18N\nexport const EVENTS_KANBAN_BLUEPRINT_PROPERTIES_RATING_STYLE_UPDATE     = Symbol(\"EVENTS_KANBAN_BLUEPRINT_PROPERTIES_RATING_STYLE_UPDATE\");          //No I18N\nexport const EVENTS_KANBAN_BLUEPRINT_PROPERTIES_CHECKBOX_STYLE_UPDATE   = Symbol(\"EVENTS_KANBAN_BLUEPRINT_PROPERTIES_CHECKBOX_STYLE_UPDATE\");          //No I18N\nexport const EVENTS_KANBAN_BLUEPRINT_PROPERTIES_HEADER_UPDATE           = Symbol(\"EVENTS_KANBAN_BLUEPRINT_PROPERTIES_HEADER_UPDATE\");          //No I18N\n\nexport const EVENTS_KANBAN_INSERT_NON_HIDDEN_FIELD  = Symbol(\"EVENTS_KANBAN_INSERT_NON_HIDDEN_FIELD\");          //No I18N\nexport const EVENTS_KANBAN_APPEND_NON_HIDDEN_FIELD  = Symbol(\"EVENTS_KANBAN_APPEND_NON_HIDDEN_FIELD\");          //No I18N\nexport const EVENTS_KANBAN_DELETE_NON_HIDDEN_FIELD  = Symbol(\"EVENTS_KANBAN_DELETE_NON_HIDDEN_FIELD\");          //No I18N\nexport const EVENTS_KANBAN_REORDER_NON_HIDDEN_FIELD = Symbol(\"EVENTS_KANBAN_REORDER_NON_HIDDEN_FIELD\");          //No I18N\nexport const EVENTS_KANBAN_INSERT_HIDDEN_FIELD      = Symbol(\"EVENTS_KANBAN_INSERT_HIDDEN_FIELD\");          //No I18N\nexport const EVENTS_KANBAN_APPEND_HIDDEN_FIELD      = Symbol(\"EVENTS_KANBAN_APPEND_HIDDEN_FIELD\");          //No I18N\nexport const EVENTS_KANBAN_DELETE_HIDDEN_FIELD      = Symbol(\"EVENTS_KANBAN_DELETE_HIDDEN_FIELD\");          //No I18N\n\n\nexport const EVENTS_KANBAN_UNCATERGORIZEDID   = Symbol(\"EVENTS_KANBAN_UNCATERGORIZEDID\");    //No I18N\nexport const EVENTS_KANBAN_DRAGANDDROP_UPDATE = Symbol(\"EVENTS_KANBAN_DRAGANDDROP_UPDATE\");  //No I18N\n\nexport const EVENTS_KANBAN_GROUP_LOAD     = Symbol(\"EVENTS_KANBAN_GROUP_LOAD\");      //No I18N\nexport const EVENTS_KANBAN_GROUP_INSERT   = Symbol(\"EVENTS_KANBAN_GROUP_INSERT\");    //No I18N\nexport const EVENTS_KANBAN_GROUP_UPDATE   = Symbol(\"EVENTS_KANBAN_GROUP_UPDATE\");    //No I18N\nexport const EVENTS_KANBAN_GROUP_COLLAPSE = Symbol(\"EVENTS_KANBAN_GROUP_COLLAPSE\");  //No I18N\n\nexport const EVENTS_KANBAN_GROUPLEVEL_TREE_LOAD    = Symbol(\"EVENTS_KANBAN_GROUPLEVEL_TREE_LOAD\");     //No I18N\nexport const EVENTS_KANBAN_GROUPLEVEL_TREE_INSERT  = Symbol(\"EVENTS_KANBAN_GROUPLEVEL_TREE_INSERT\");   //No I18N\nexport const EVENTS_KANBAN_GROUPLEVEL_TREE_DELETE  = Symbol(\"EVENTS_KANBAN_GROUPLEVEL_TREE_DELETE\");   //No I18N\nexport const EVENTS_KANBAN_GROUPLEVEL_TREE_REORDER = Symbol(\"EVENTS_KANBAN_GROUPLEVEL_TREE_REORDER\");  //No I18N\nexport const EVENTS_KANBAN_GROUPLEVEL_TREE_SORT    = Symbol(\"EVENTS_KANBAN_GROUPLEVEL_TREE_SORT\");     //No I18N\n\nexport const EVENTS_KANBAN_GROUPLEVEL_COLLAPSE_LOAD   = Symbol(\"EVENTS_KANBAN_GROUPLEVEL_COLLAPSE_LOAD\");    //No I18N\nexport const EVENTS_KANBAN_GROUPLEVEL_COLLAPSE_UPDATE = Symbol(\"EVENTS_KANBAN_GROUPLEVEL_COLLAPSE_UPDATE\");  //No I18N\n\nexport const EVENTS_KANBAN_RECORD_ORDER_INSERT  = Symbol(\"EVENTS_KANBAN_RECORD_ORDER_INSERT\");   //No I18N\nexport const EVENTS_KANBAN_RECORD_ORDER_DELETE  = Symbol(\"EVENTS_KANBAN_RECORD_ORDER_DELETE\");   //No I18N\nexport const EVENTS_KANBAN_RECORD_ORDER_REORDER = Symbol(\"EVENTS_KANBAN_RECORD_ORDER_REORDER\");  //No I18N\nexport const EVENTS_KANBAN_RECORD_ORDER_UPDATE  = Symbol(\"EVENTS_KANBAN_RECORD_ORDER_UPDATE\");   //No I18N\nexport const EVENTS_KANBAN_RECORD_ORDER_LOAD    = Symbol(\"EVENTS_KANBAN_RECORD_ORDER_LOAD\");     //No I18N\nexport const EVENTS_KANBAN_RECORD_ORDER_SORT    = Symbol(\"EVENTS_KANBAN_RECORD_ORDER_SORT\");     //No I18N\nexport const EVENTS_KANBAN_RECORD_ORDER_FAULTY  = Symbol(\"EVENTS_KANBAN_RECORD_ORDER_FAULTY\");   //No I18N\nexport const EVENTS_KANBAN_RECORD_ORDERNEW_LOAD = Symbol(\"EVENTS_KANBAN_RECORD_ORDERNEW_LOAD\");  //No I18N\n\nexport const EVENTS_KANBAN_SORT_DELETE  = Symbol(\"EVENTS_KANBAN_SORT_DELETE\");   //No I18N\nexport const EVENTS_KANBAN_SORT_UPDATE  = Symbol(\"EVENTS_KANBAN_SORT_UPDATE\");   //No I18N\nexport const EVENTS_KANBAN_SORT_REORDER = Symbol(\"EVENTS_KANBAN_SORT_REORDER\");  //No I18N\nexport const EVENTS_KANBAN_SORT_LOAD    = Symbol(\"EVENTS_KANBAN_SORT_LOAD\");     //No I18N\n\nexport const EVENTS_KANBAN_CURRENT_USER_ROLE    = Symbol(\"EVENTS_KANBAN_CURRENT_USER_ROLE\"); //No I18N\n\nexport const EVENTS_KANBAN_FILTER_LOAD      = Symbol(\"EVENTS_KANBAN_FILTER_LOAD\");       //No I18N\nexport const EVENTS_KANBAN_FILTER_DELETE    = Symbol(\"EVENTS_KANBAN_FILTER_DELETE\");     //No I18N\nexport const EVENTS_KANBAN_FILTER_UPDATE    = Symbol(\"EVENTS_KANBAN_FILTER_UPDATE\");     //No I18N\nexport const EVENTS_KANBAN_FILTER_REORDER   = Symbol(\"EVENTS_KANBAN_FILTER_REORDER\");    //No I18N\nexport const EVENTS_KANBAN_FILTER_LOGICAL   = Symbol(\"EVENTS_KANBAN_FILTER_LOGICAL\");    //No I18N\nexport const EVENTS_KANBAN_FILTER_CONDITION = Symbol(\"EVENTS_KANBAN_FILTER_CONDITION\");  //No I18N\n\nexport const EVENTS_KANBAN_RECORDCOLOR_UPDATE              = Symbol(\"EVENTS_KANBAN_RECORDCOLOR_UPDATE\");               //No I18N\nexport const EVENTS_KANBAN_RECORDCOLOR_FAULTY_INTERSECTION = Symbol(\"EVENTS_KANBAN_RECORDCOLOR_FAULTY_INTERSECTION\");  //No I18N\n\nexport const EVENTS_KANBAN_CONDITIONALFORMAT_TYPE             = Symbol(\"EVENTS_KANBAN_CONDITIONALFORMAT_TYPE\");              //No I18N\nexport const EVENTS_KANBAN_CONDITIONALFORMAT_SELECTION_UPDATE = Symbol(\"EVENTS_KANBAN_CONDITIONALFORMAT_SELECTION_UPDATE\");  //No I18N\nexport const EVENTS_KANBAN_CONDITIONALFORMAT_COLOR_LOAD       = Symbol(\"EVENTS_KANBAN_CONDITIONALFORMAT_COLOR_LOAD\");        //No I18N\nexport const EVENTS_KANBAN_CONDITIONALFORMAT_COLOR_UPDATE     = Symbol(\"EVENTS_KANBAN_CONDITIONALFORMAT_COLOR_UPDATE\");      //No I18N\nexport const EVENTS_KANBAN_CONDITIONALFORMAT_COLOR_DELETE     = Symbol(\"EVENTS_KANBAN_CONDITIONALFORMAT_COLOR_DELETE\");      //No I18N\nexport const EVENTS_KANBAN_CONDITIONALFORMAT_COLOR_REORDER    = Symbol(\"EVENTS_KANBAN_CONDITIONALFORMAT_COLOR_REORDER\");     //No I18N\nexport const EVENTS_KANBAN_CONDITIONALFORMAT_FALLBACK         = Symbol(\"EVENTS_KANBAN_CONDITIONALFORMAT_FALLBACK\");          //No I18N\nexport const EVENTS_KANBAN_CONDITIONALFORMAT_FILTER_LOAD      = Symbol(\"EVENTS_KANBAN_CONDITIONALFORMAT_FILTER_LOAD\");       //No I18N\nexport const EVENTS_KANBAN_CONDITIONALFORMAT_FILTER_DELETE    = Symbol(\"EVENTS_KANBAN_CONDITIONALFORMAT_FILTER_DELETE\");     //No I18N\nexport const EVENTS_KANBAN_CONDITIONALFORMAT_FILTER_UPDATE    = Symbol(\"EVENTS_KANBAN_CONDITIONALFORMAT_FILTER_UPDATE\");     //No I18N\nexport const EVENTS_KANBAN_CONDITIONALFORMAT_FILTER_REORDER   = Symbol(\"EVENTS_KANBAN_CONDITIONALFORMAT_FILTER_REORDER\");    //No I18N\nexport const EVENTS_KANBAN_CONDITIONALFORMAT_FILTER_LOGICAL   = Symbol(\"EVENTS_KANBAN_CONDITIONALFORMAT_FILTER_LOGICAL\");    //No I18N\nexport const EVENTS_KANBAN_CONDITIONALFORMAT_FILTER_CONDITION = Symbol(\"EVENTS_KANBAN_CONDITIONALFORMAT_FILTER_CONDITION\");  //No I18N\n\n// Form events beginning point\nexport const EVENTS_FORM_RESPONSE_BEFORE = Symbol(\"EVENTS_FORM_RESPONSE_BEFORE\");  //No I18N\nexport const EVENTS_FORM_RESPONSE_AFTER  = Symbol(\"EVENTS_FORM_RESPONSE_AFTER\");   //No I18N\n\nexport const EVENTS_FORM_NAME_UPDATE        = Symbol(\"EVENTS_FORM_NAME_UPDATE\");         //No I18N\nexport const EVENTS_FORM_DESCRIPTION_UPDATE = Symbol(\"EVENTS_FORM_DESCRIPTION_UPDATE\");  //No I18N\n\nexport const EVENTS_FORM_COVER_IMAGE_FILE_UPDATE       = Symbol(\"EVENTS_FORM_COVER_IMAGE_FILE_UPDATE\");         //No I18N\nexport const EVENTS_FORM_COVER_IMAGE_VISIBILITY_UPDATE = Symbol(\"EVENTS_FORM_COVER_IMAGE_VISIBILITY_UPDATE\");  //No I18N\n\nexport const EVENTS_FORM_LOGO_FILE_UPDATE       = Symbol(\"EVENTS_FORM_LOGO_FILE_UPDATE\");         //No I18N\nexport const EVENTS_FORM_LOGO_SIZE_UPDATE       = Symbol(\"EVENTS_FORM_LOGO_SIZE_UPDATE\");        //No I18N\nexport const EVENTS_FORM_LOGO_ALIGNMENT_UPDATE  = Symbol(\"EVENTS_FORM_LOGO_ALIGNMENT_UPDATE\");   //No I18N\nexport const EVENTS_FORM_LOGO_VISIBILITY_UPDATE = Symbol(\"EVENTS_FORM_LOGO_VISIBILITY_UPDATE\");  //No I18N\n\nexport const EVENTS_FORM_FORM_NAME_UPDATE        = Symbol(\"EVENTS_FORM_NAME_UPDATE\");         //No I18N\nexport const EVENTS_FORM_FORM_DESCRIPTION_UPDATE = Symbol(\"EVENTS_FORM_DESCRIPTION_UPDATE\");  //No I18N\n\nexport const EVENTS_FORM_NAME_PARAMETERS_SIZE_UPDATE       = Symbol(\"EVENTS_FORM_NAME_PARAMETERS_SIZE_UPDATE\");        //No I18N\nexport const EVENTS_FORM_NAME_PARAMETERS_ALIGNMENT_UPDATE  = Symbol(\"EVENTS_FORM_NAME_PARAMETERS_ALIGNMENT_UPDATE\");   //No I18N\nexport const EVENTS_FORM_NAME_PARAMETERS_VISIBILITY_UPDATE = Symbol(\"EVENTS_FORM_NAME_PARAMETERS_VISIBILITY_UPDATE\");  //No I18N\n\nexport const EVENTS_FORM_LABEL_ALIGNMENT_UPDATE = Symbol(\"EVENTS_FORM_LABEL_ALIGNMENT_UPDATE\");  //No I18N\nexport const EVENTS_FORM_COLOR_THEME_UPDATE     = Symbol(\"EVENTS_FORM_COLOR_THEME_UPDATE\");      //No I18N\n\nexport const EVENTS_FORM_SCHEMA_LOAD   = Symbol(\"EVENTS_FORM_SCHEMA_LOAD\");    //No I18N\nexport const EVENTS_FORM_SCHEMA_INSERT = Symbol(\"EVENTS_FORM_SCHEMA_INSERT\");  //No I18N\nexport const EVENTS_FORM_SCHEMA_UPDATE = Symbol(\"EVENTS_FORM_SCHEMA_UPDATE\");  //No I18N\nexport const EVENTS_FORM_SCHEMA_DELETE = Symbol(\"EVENTS_FORM_SCHEMA_DELETE\");  //No I18N\n\nexport const EVENTS_FORM_CURRENT_USER_ROLE    = Symbol(\"EVENTS_FORM_CURRENT_USER_ROLE\"); //No I18N\n\nexport const EVENTS_FORM_FIELD_ORDER_LOAD    = Symbol(\"EVENTS_FORM_FIELD_ORDER_LOAD\");     //No I18N\nexport const EVENTS_FORM_FIELD_ORDER_INSERT  = Symbol(\"EVENTS_FORM_FIELD_ORDER_INSERT\");   //No I18N\nexport const EVENTS_FORM_FIELD_ORDER_REORDER = Symbol(\"EVENTS_FORM_FIELD_ORDER_REORDER\");  //No I18N\nexport const EVENTS_FORM_FIELD_ORDER_HIDE    = Symbol(\"EVENTS_FORM_FIELD_ORDER_HIDE\");     //No I18N\nexport const EVENTS_FORM_FIELD_ORDER_UNHIDE  = Symbol(\"EVENTS_FORM_FIELD_ORDER_UNHIDE\");   //No I18N\n\nexport const EVENTS_FORM_SUBMIT_BUTTON_NAME_UPDATE   = Symbol(\"EVENTS_FORM_SUBMIT_BUTTON_NAME_UPDATE\");    //No I18N\nexport const EVENTS_FORM_BRANDING_UPDATE             = Symbol(\"EVENTS_FORM_BRANDING_UPDATE\");              //No I18N\nexport const EVENTS_FORM_REDIRECT_URL_UPDATE         = Symbol(\"EVENTS_FORM_REDIRECT_URL_UPDATE\");          //No I18N\nexport const EVENTS_FORM_MESSAGE_AFTER_SUBMIT_UPDATE = Symbol(\"EVENTS_FORM_MESSAGE_AFTER_SUBMIT_UPDATE\");  //No I18N\n// Form events ending point\n\nexport const EVENTS_USER_ROLECHANGE = Symbol(\"EVENTS_USER_ROLECHANGE\");  //No I18N\n\nexport const EVENTS_CREATE_VIEW_SHARE_URL                   = Symbol(\"EVENTS_CREATE_VIEW_SHARE_URL\");                    //No I18N\nexport const EVENTS_ALTER_VIEW_SHARE_ACCESSPEOPLE_TYPE      = Symbol(\"EVENTS_ALTER_VIEW_SHARE_ACCESSPEOPLE_TYPE\");       //No I18N\nexport const EVENTS_UPDATE_VIEW_SHARE_PASSWORD              = Symbol(\"EVENTS_UPDATE_VIEW_SHARE_PASSWORD\");               //No I18N\nexport const EVENTS_UPDATE_VIEW_SHARE_EXPIRY_DATE           = Symbol(\"EVENTS_UPDATE_VIEW_SHARE_EXPIRY_DATE\");            //No I18N\nexport const EVENTS_UPDATE_VIEW_SHARE_ENABLED               = Symbol(\"EVENTS_UPDATE_VIEW_SHARE_ENABLED\");                //No I18N\nexport const EVENTS_UPDATE_VIEW_RESTRICT_MULTIPLE_RESPONSES = Symbol(\"EVENTS_UPDATE_VIEW_RESTRICT_MULTIPLE_RESPONSES\");  //No I18N\nexport const EVENTS_FORM_SHAREURL_UPDATE                    = Symbol(\"EVENTS_FORM_SHAREURL_UPDATE\");                     //No I18N\n\nexport const EVENTS_COLLABORATOR_LOAD_ACTIVE_USER          = Symbol(\"EVENTS_COLLABORATOR_LOAD_ACTIVE_USER\");          //No I18N\nexport const EVENTS_COLLABORATOR_LOAD_INACTIVE_USER        = Symbol(\"EVENTS_COLLABORATOR_LOAD_INACTIVE_USER\");        //No I18N\nexport const EVENTS_COLLABORATOR_INSERT_ACTIVE_USER        = Symbol(\"EVENTS_COLLABORATOR_INSERT_ACTIVE_USER\");        //No I18N\nexport const EVENTS_COLLABORATOR_INSERT_INACTIVE_USER      = Symbol(\"EVENTS_COLLABORATOR_INSERT_INACTIVE_USER\");      //No I18N\nexport const EVENTS_COLLABORATOR_UPDATE_ACTIVE_USER        = Symbol(\"EVENTS_COLLABORATOR_UPDATE_ACTIVE_USER\");        //No I18N\nexport const EVENTS_COLLABORATOR_UPDATE_INACTIVE_USER      = Symbol(\"EVENTS_COLLABORATOR_UPDATE_INACTIVE_USER\");      //No I18N\nexport const EVENTS_COLLABORATOR_DELETE_ACTIVE_USER        = Symbol(\"EVENTS_COLLABORATOR_DELETE_ACTIVE_USER\");        //No I18N\nexport const EVENTS_COLLABORATOR_DELETE_INACTIVE_USER      = Symbol(\"EVENTS_COLLABORATOR_DELETE_INACTIVE_USER\");      //No I18N\n\nexport const EVENTS_AUTOMATION_ORDER_BEFORE_LOAD                       = Symbol(\"EVENTS_AUTOMATION_ORDER_BEFORE_LOAD\")\nexport const EVENTS_AUTOMATION_ORDER_RECORD_CREATED_TRIGGER_LOAD       = Symbol(\"EVENTS_AUTOMATION_ORDER_RECORD_CREATED_TRIGGER_LOAD\")\nexport const EVENTS_AUTOMATION_ORDER_RECORD_UPDATED_TRIGGER_LOAD       = Symbol(\"EVENTS_AUTOMATION_ORDER_RECORD_UPDATED_TRIGGER_LOAD\")\nexport const EVENTS_AUTOMATION_ORDER_RECORD_ENTERS_VIEW_TRIGGER_LOAD   = Symbol(\"EVENTS_AUTOMATION_ORDER_RECORD_ENTERS_VIEW_TRIGGER_LOAD\")\nexport const EVENTS_AUTOMATION_ORDER_PAUSED_SCHEDULAR_TRIGGER_LOAD     = Symbol(\"EVENTS_AUTOMATION_ORDER_PAUSED_SCHEDULAR_TRIGGER_LOAD\")\nexport const EVENTS_AUTOMATION_ORDER_RUNNING_SCHEDULAR_TRIGGER_LOAD    = Symbol(\"EVENTS_AUTOMATION_ORDER_RUNNING_SCHEDULAR_TRIGGER_LOAD\")\nexport const EVENTS_AUTOMATION_ORDER_COMPLETED_SCHEDULAR_TRIGGER_LOAD  = Symbol(\"EVENTS_AUTOMATION_ORDER_COMPLETED_SCHEDULAR_TRIGGER_LOAD\")\nexport const EVENTS_AUTOMATION_ORDER_SCHEDULAR_TRIGGER_LOAD            = Symbol(\"EVENTS_AUTOMATION_ORDER_SCHEDULAR_TRIGGER_LOAD\")\nexport const EVENTS_AUTOMATION_ORDER_LOAD                              = Symbol(\"EVENTS_AUTOMATION_ORDER_LOAD\")\nexport const EVENTS_AUTOMATION_ORDER_RECORD_CREATED_TRIGGER_INSERT     = Symbol(\"EVENTS_AUTOMATION_ORDER_RECORD_CREATED_TRIGGER_INSERT\")\nexport const EVENTS_AUTOMATION_ORDER_RECORD_UPDATED_TRIGGER_INSERT     = Symbol(\"EVENTS_AUTOMATION_ORDER_RECORD_UPDATED_TRIGGER_INSERT\")\nexport const EVENTS_AUTOMATION_ORDER_RECORD_ENTERS_VIEW_TRIGGER_INSERT = Symbol(\"EVENTS_AUTOMATION_ORDER_RECORD_ENTERS_VIEW_TRIGGER_INSERT\")\nexport const EVENTS_AUTOMATION_ORDER_PAUSED_SCHEDULAR_TRIGGER_INSERT    = Symbol(\"EVENTS_AUTOMATION_ORDER_PAUSED_SCHEDULAR_TRIGGER_INSERT\")\nexport const EVENTS_AUTOMATION_ORDER_RUNNING_SCHEDULAR_TRIGGER_INSERT   = Symbol(\"EVENTS_AUTOMATION_ORDER_RUNNING_SCHEDULAR_TRIGGER_INSERT\")\nexport const EVENTS_AUTOMATION_ORDER_COMPLETED_SCHEDULAR_TRIGGER_INSERT = Symbol(\"EVENTS_AUTOMATION_ORDER_COMPLETED_SCHEDULAR_TRIGGER_INSERT\")\nexport const EVENTS_AUTOMATION_ORDER_SCHEDULAR_TRIGGER_INSERT          = Symbol(\"EVENTS_AUTOMATION_ORDER_SCHEDULAR_TRIGGER_INSERT\")\nexport const EVENTS_AUTOMATION_ORDER_INSERT                            = Symbol(\"EVENTS_AUTOMATION_ORDER_INSERT\")\nexport const EVENTS_AUTOMATION_ORDER_DELETE                            = Symbol(\"EVENTS_AUTOMATION_ORDER_DELETE\")\nexport const EVENTS_AUTOMATION_NAME_UPDATE                             = Symbol(\"EVENTS_AUTOMATION_NAME_UPDATE\")\nexport const EVENTS_AUTOMATION_STATUS_UPDATE                           = Symbol(\"EVENTS_AUTOMATION_STATUS_UPDATE\")\nexport const EVENTS_AUTOMATION_IS_VALID_UPDATE                         = Symbol(\"EVENTS_AUTOMATION_IS_VALID_UPDATE\")\nexport const EVENTS_AUTOMATION_SCHEDULAR_STATE_UPDATE                  = Symbol(\"EVENTS_AUTOMATION_SCHEDULAR_STATE_UPDATE\")\n\nexport const EVENTS_AUTOMATION_RECORD_CREATED_TRIGGER_CREATE     = Symbol(\"EVENTS_AUTOMATION_RECORD_CREATED_TRIGGER_CREATE\")      //No I18N\nexport const EVENTS_AUTOMATION_RECORD_UPATED_TRIGGER_CREATE      = Symbol(\"EVENTS_AUTOMATION_RECORD_UPATED_TRIGGER_CREATE\")       //No I18N\nexport const EVENTS_AUTOMATION_RECORD_ENTERS_VIEW_TRIGGER_CREATE = Symbol(\"EVENTS_AUTOMATION_RECORD_ENTERS_VIEW_TRIGGER_CREATE\")  //No I18N\nexport const EVENTS_AUTOMATION_SCHEDULAR_TRIGGER_CREATE          = Symbol(\"EVENTS_AUTOMATION_SCHEDULAR_TRIGGER_CREATE\")           //No I18N\nexport const EVENTS_AUTOMATION_RECORD_CREATED_TRIGGER_LOAD       = Symbol(\"EVENTS_AUTOMATION_RECORD_CREATED_TRIGGER_LOAD\")        //No I18N\nexport const EVENTS_AUTOMATION_RECORD_UPATED_TRIGGER_LOAD        = Symbol(\"EVENTS_AUTOMATION_RECORD_UPATED_TRIGGER_LOAD\")         //No I18N\nexport const EVENTS_AUTOMATION_RECORD_ENTERS_VIEW_TRIGGER_LOAD   = Symbol(\"EVENTS_AUTOMATION_RECORD_ENTERS_VIEW_TRIGGER_LOAD\")    //No I18N\nexport const EVENTS_AUTOMATION_SCHEDULAR_TRIGGER_LOAD            = Symbol(\"EVENTS_AUTOMATION_SCHEDULAR_TRIGGER_LOAD\")             //No I18N\nexport const EVENTS_AUTOMATION_SCHEDULAR_ONETIME_TRIGGER_LOAD           = Symbol(\"EVENTS_AUTOMATION_SCHEDULAR_ONETIME_TRIGGER_LOAD\")            //No I18N\nexport const EVENTS_AUTOMATION_SCHEDULAR_HOURLY_TRIGGER_LOAD            = Symbol(\"EVENTS_AUTOMATION_SCHEDULAR_HOURLY_TRIGGER_LOAD\")             //No I18N\nexport const EVENTS_AUTOMATION_SCHEDULAR_DAILY_TRIGGER_LOAD             = Symbol(\"EVENTS_AUTOMATION_SCHEDULAR_DAILY_TRIGGER_LOAD\")              //No I18N\nexport const EVENTS_AUTOMATION_SCHEDULAR_WEEKLY_TRIGGER_LOAD            = Symbol(\"EVENTS_AUTOMATION_SCHEDULAR_WEEKLY_TRIGGER_LOAD\")             //No I18N\nexport const EVENTS_AUTOMATION_SCHEDULAR_MONTHLY_DATE_TRIGGER_LOAD      = Symbol(\"EVENTS_AUTOMATION_SCHEDULAR_MONTHLY_DATE_TRIGGER_LOAD\")       //No I18N\nexport const EVENTS_AUTOMATION_SCHEDULAR_MONTHLY_WEEKDAY_TRIGGER_LOAD   = Symbol(\"EVENTS_AUTOMATION_SCHEDULAR_MONTHLY_WEEKDAY_TRIGGER_LOAD\")    //No I18N\nexport const EVENTS_AUTOMATION_SCHEDULAR_TIMEFRAME_NEVER_END_LOAD       = Symbol(\"EVENTS_AUTOMATION_SCHEDULAR_TIMEFRAME_NEVER_END_LOAD\")        //No I18N\nexport const EVENTS_AUTOMATION_SCHEDULAR_TIMEFRAME_RUN_COUNT_END_LOAD   = Symbol(\"EVENTS_AUTOMATION_SCHEDULAR_TIMEFRAME_RUN_COUNT_END_LOAD\")    //No I18N\nexport const EVENTS_AUTOMATION_SCHEDULAR_TIMEFRAME_END_DATE_END_LOAD    = Symbol(\"EVENTS_AUTOMATION_SCHEDULAR_TIMEFRAME_END_DATE_END_LOAD\")     //No I18N\nexport const EVENTS_AUTOMATION_SCHEDULAR_TRIGGER_CYCLE_RUN_COUNT_LOAD   = Symbol(\"EVENTS_AUTOMATION_SCHEDULAR_TRIGGER_CYCLE_RUN_COUNT_LOAD\")  //No I18N\nexport const EVENTS_AUTOMATION_SCHEDULAR_TRIGGER_CYCLE_NEVER_LOAD       = Symbol(\"EVENTS_AUTOMATION_SCHEDULAR_TRIGGER_CYCLE_NEVER_LOAD\")      //No I18N\nexport const EVENTS_AUTOMATION_SCHEDULAR_TRIGGER_CYCLE_END_DATE_LOAD    = Symbol(\"EVENTS_AUTOMATION_SCHEDULAR_TRIGGER_CYCLE_END_DATE_LOAD\")   //No I18N\nexport const EVENTS_AUTOMATION_SCHEDULAR_TRIGGER_FREQUENCY_UPDATE       = Symbol(\"EVENTS_AUTOMATION_SCHEDULAR_TRIGGER_FREQUENCY_UPDATE\")        //No I18N\nexport const EVENTS_AUTOMATION_SCHEDULAR_TRIGGER_ONETIME_FREQUENCY_UPDATE = Symbol(\"EVENTS_AUTOMATION_SCHEDULAR_TRIGGER_ONETIME_FREQUENCY_UPDATE\") //No I18N\nexport const EVENTS_AUTOMATION_SCHEDULAR_TRIGGER_HOURLY_FREQUENCY_UPDATE = Symbol(\"EVENTS_AUTOMATION_SCHEDULAR_TRIGGER_HOURLY_FREQUENCY_UPDATE\") //No I18N\nexport const EVENTS_AUTOMATION_SCHEDULAR_TRIGGER_DAILY_FREQUENCY_UPDATE = Symbol(\"EVENTS_AUTOMATION_SCHEDULAR_TRIGGER_DAILY_FREQUENCY_UPDATE\") //No I18N\nexport const EVENTS_AUTOMATION_SCHEDULAR_TRIGGER_WEEKLY_FREQUENCY_UPDATE = Symbol(\"EVENTS_AUTOMATION_SCHEDULAR_TRIGGER_WEEKLY_FREQUENCY_UPDATE\") //No I18N\nexport const EVENTS_AUTOMATION_SCHEDULAR_TRIGGER_MONTHLY_FREQUENCY_UPDATE = Symbol(\"EVENTS_AUTOMATION_SCHEDULAR_TRIGGER_MONTHLY_FREQUENCY_UPDATE\") //No I18N\nexport const EVENTS_AUTOMATION_SCHEDULAR_TRIGGER_ON_TIME_VALUE_UPDATE         = Symbol(\"EVENTS_AUTOMATION_SCHEDULAR_TRIGGER_ON_TIME_VALUE_UPDATE\")          //No I18N\nexport const EVENTS_AUTOMATION_SCHEDULAR_TRIGGER_ON_TIME_ERROR_UPDATE         = Symbol(\"EVENTS_AUTOMATION_SCHEDULAR_TRIGGER_ON_TIME_ERROR_UPDATE\")          //No I18N\nexport const EVENTS_AUTOMATION_SCHEDULAR_TRIGGER_HOUR_UPDATE            = Symbol(\"EVENTS_AUTOMATION_SCHEDULAR_TRIGGER_HOUR_UPDATE\")             //No I18N\nexport const EVENTS_AUTOMATION_SCHEDULAR_TRIGGER_DAY_COUNT_UPDATE       = Symbol(\"EVENTS_AUTOMATION_SCHEDULAR_TRIGGER_DAY_COUNT_UPDATE\")        //No I18N\nexport const EVENTS_AUTOMATION_SCHEDULAR_TRIGGER_WEEK_DAYS_UPDATE       = Symbol(\"EVENTS_AUTOMATION_SCHEDULAR_TRIGGER_WEEK_COUNT_UPDATE\")       //No I18N\nexport const EVENTS_AUTOMATION_SCHEDULAR_TRIGGER_WEEK_COUNT_UPDATE      = Symbol(\"EVENTS_AUTOMATION_SCHEDULAR_TRIGGER_WEEK_COUNT_UPDATE\")       //No I18N\nexport const EVENTS_AUTOMATION_SCHEDULAR_TRIGGER_MONTH_COUNT_UPDATE     = Symbol(\"EVENTS_AUTOMATION_SCHEDULAR_TRIGGER_MONTH_COUNT_UPDATE\")      //No I18N\nexport const EVENTS_AUTOMATION_SCHEDULAR_TRIGGER_MONTHLY_META_TYPE_DATE_UPDATE = Symbol(\"EVENTS_AUTOMATION_SCHEDULAR_TRIGGER_MONTHLY_META_TYPE_DATE_UPDATE\") //No I18N\nexport const EVENTS_AUTOMATION_SCHEDULAR_TRIGGER_MONTHLY_META_TYPE_WEEK_DAY_UPDATE = Symbol(\"EVENTS_AUTOMATION_SCHEDULAR_TRIGGER_MONTHLY_META_TYPE_WEEK_DAY_UPDATE\") //No I18N\nexport const EVENTS_AUTOMATION_SCHEDULAR_TRIGGER_MONTHLY_DATES_UPDATE   = Symbol(\"EVENTS_AUTOMATION_SCHEDULAR_TRIGGER_MONTHLY_DATES_UPDATE\")    //No I18N\nexport const EVENTS_AUTOMATION_SCHEDULAR_TRIGGER_MONTHLY_WEEK_UPDATE    = Symbol(\"EVENTS_AUTOMATION_SCHEDULAR_TRIGGER_MONTHLY_WEEK_UPDATE\")     //No I18N\nexport const EVENTS_AUTOMATION_SCHEDULAR_TRIGGER_MONTHLY_DAY_UPDATE     = Symbol(\"EVENTS_AUTOMATION_SCHEDULAR_TRIGGER_MONTHLY_DAY_UPDATE\")      //No I18N\nexport const EVENTS_AUTOMATION_SCHEDULAR_TRIGGER_AT_TIME_UPDATE         = Symbol(\"EVENTS_AUTOMATION_SCHEDULAR_TRIGGER_AT_TIME_UPDATE\")          //No I18N\nexport const EVENTS_AUTOMATION_SCHEDULAR_TIMEFRAME_STATE_UPDATE         = Symbol(\"EVENTS_AUTOMATION_SCHEDULAR_TIMEFRAME_STATE_UPDATE\")          //No I18N\nexport const EVENTS_AUTOMATION_SCHEDULAR_TIMEFRAME_START_DATE_VALUE_UPDATE = Symbol(\"EVENTS_AUTOMATION_SCHEDULAR_TIMEFRAME_START_DATE_VALUE_UPDATE\") //No I18N\nexport const EVENTS_AUTOMATION_SCHEDULAR_TIMEFRAME_START_DATE_ERROR_UPDATE = Symbol(\"EVENTS_AUTOMATION_SCHEDULAR_TIMEFRAME_START_DATE_ERROR_UPDATE\") //No I18N\nexport const EVENTS_AUTOMATION_SCHEDULAR_TIMEFRAME_END_TYPE_UPDATE      = Symbol(\"EVENTS_AUTOMATION_SCHEDULAR_TIMEFRAME_END_TYPE_UPDATE\")       //No I18N\nexport const EVENTS_AUTOMATION_SCHEDULAR_TIMEFRAME_END_RUN_COUNT_UPDATE = Symbol(\"EVENTS_AUTOMATION_SCHEDULAR_TIMEFRAME_END_RUN_COUNT_UPDATE\")  //No I18N\nexport const EVENTS_AUTOMATION_SCHEDULAR_TIMEFRAME_END_DATE_VALUE_UPDATE      = Symbol(\"EVENTS_AUTOMATION_SCHEDULAR_TIMEFRAME_END_DATE_VALUE_UPDATE\")       //No I18N\nexport const EVENTS_AUTOMATION_SCHEDULAR_TIMEFRAME_END_DATE_ERROR_UPDATE      = Symbol(\"EVENTS_AUTOMATION_SCHEDULAR_TIMEFRAME_END_DATE_ERROR_UPDATE\")       //No I18N\nexport const EVENTS_AUTOMATION_SCHEDULAR_TRIGGER_CYCLE_RUN_COUNT_UPDATE = Symbol(\"EVENTS_AUTOMATION_SCHEDULAR_TRIGGER_CYCLE_RUN_COUNT_UPDATE\")  //No I18N\nexport const EVENTS_AUTOMATION_SCHEDULAR_TRIGGER_CYCLE_NEVER_UPDATE     = Symbol(\"EVENTS_AUTOMATION_SCHEDULAR_TRIGGER_CYCLE_NEVER_UPDATE\")      //No I18N\nexport const EVENTS_AUTOMATION_SCHEDULAR_TRIGGER_CYCLE_END_DATE_UPDATE  = Symbol(\"EVENTS_AUTOMATION_SCHEDULAR_TRIGGER_CYCLE_END_DATE_UPDATE\")   //No I18N\nexport const EVENTS_AUTOMATION_TRIGGER_API_SOURCE_RESTRICTION_LOAD                = Symbol(\"EVENTS_AUTOMATION_TRIGGER_API_SOURCE_RESTRICTION_LOAD\")\nexport const EVENTS_AUTOMATION_TRIGGER_EMPTY_RECORD_SOURCE_RESTRICTION_LOAD       = Symbol(\"EVENTS_AUTOMATION_TRIGGER_EMPTY_RECORD_SOURCE_RESTRICTION_LOAD\")\nexport const EVENTS_AUTOMATION_TRIGGER_LINKFIELD_SOURCE_RESTRICTION_LOAD       = Symbol(\"EVENTS_AUTOMATION_TRIGGER_LINKFIELD_SOURCE_RESTRICTION_LOAD\")\nexport const EVENTS_AUTOMATION_TRIGGER_DUPLICATE_SOURCE_RESTRICTION_LOAD          = Symbol(\"EVENTS_AUTOMATION_TRIGGER_DUPLICATE_SOURCE_RESTRICTION_LOAD\")\nexport const EVENTS_AUTOMATION_TRIGGER_FORM_SUBMIT_SOURCE_RESTRICTION_LOAD        = Symbol(\"EVENTS_AUTOMATION_TRIGGER_FORM_SUBMIT_SOURCE_RESTRICTION_LOAD\")\nexport const EVENTS_AUTOMATION_RECORD_MATCH_CONDITION_TRIGGER_LOAD                = Symbol(\"EVENTS_AUTOMATION_RECORD_MATCH_CONDITION_TRIGGER_LOAD\")\nexport const EVENTS_AUTOMATION_RECORD_UPDATED_TRIGGER_FIELD_LOAD                  = Symbol(\"EVENTS_AUTOMATION_RECORD_UPDATED_TRIGGER_FIELD_LOAD\")\nexport const EVENTS_AUTOMATION_TRIGGER_FILTER_LOAD                                = Symbol(\"EVENTS_AUTOMATION_TRIGGER_FILTER_LOAD\")\nexport const EVENTS_AUTOMATION_TRIGGER_FILTER_LOAD_BEFORE                         = Symbol(\"EVENTS_AUTOMATION_TRIGGER_FILTER_LOAD_BEFORE\")\nexport const EVENTS_AUTOMATION_TRIGGER_FILTER_REORDER                             = Symbol(\"EVENTS_AUTOMATION_TRIGGER_FILTER_REORDER\")\nexport const EVENTS_AUTOMATION_TRIGGER_FILTER_CONDITION_AND_LOGICAL_STRING_LOAD   = Symbol(\"EVENTS_AUTOMATION_TRIGGER_FILTER_CONDITION_AND_LOGICAL_STRING_LOAD\")\nexport const EVENTS_ALTER_AUTOMATION_TRIGGER_TO_RECORD_CREATED_TRIGGER            = Symbol(\"EVENTS_ALTER_AUTOMATION_TRIGGER_TO_RECORD_CREATED_TRIGGER\")\nexport const EVENTS_ALTER_AUTOMATION_TRIGGER_TO_RECORD_UPDATED_TRIGGER            = Symbol(\"EVENTS_ALTER_AUTOMATION_TRIGGER_TO_RECORD_UPDATED_TRIGGER\")\nexport const EVENTS_ALTER_AUTOMATION_TRIGGER_TO_RECORD_ENTERS_VIEW_TRIGGER        = Symbol(\"EVENTS_ALTER_AUTOMATION_TRIGGER_TO_RECORD_ENTERS_VIEW_TRIGGER\")\nexport const EVENTS_ALTER_AUTOMATION_TRIGGER_TO_SCHEDULAR_TRIGGER                 = Symbol(\"EVENTS_ALTER_AUTOMATION_TRIGGER_TO_SCHEDULAR_TRIGGER\")\nexport const EVENTS_ALTER_AUTOMATION_TRIGGER_TO_NO_TRIGGER                        = Symbol(\"EVENTS_ALTER_AUTOMATION_TRIGGER_TO_NO_TRIGGER\")\nexport const EVENTS_AUTOMATION_TRIGGER_TABLE_UPDATE                               = Symbol(\"EVENTS_AUTOMATION_TRIGGER_TABLE_UPDATE\")\nexport const EVENTS_AUTOMATION_TRIGGER_VIEW_UPDATE                                = Symbol(\"EVENTS_AUTOMATION_TRIGGER_VIEW_UPDATE\")\nexport const EVENTS_AUTOMATION_TRIGGER_API_SOURCE_RESTRICTION_UPDATE              = Symbol(\"EVENTS_AUTOMATION_TRIGGER_API_SOURCE_RESTRICTION_UPDATE\")\nexport const EVENTS_AUTOMATION_TRIGGER_EMPTY_RECORD_SOURCE_RESTRICTION_UPDATE     = Symbol(\"EVENTS_AUTOMATION_TRIGGER_EMPTY_RECORD_SOURCE_RESTRICTION_UPDATE\")\nexport const EVENTS_AUTOMATION_TRIGGER_DUPLICATE_SOURCE_RESTRICTION_UPDATE        = Symbol(\"EVENTS_AUTOMATION_TRIGGER_DUPLICATE_SOURCE_RESTRICTION_UPDATE\")\nexport const EVENTS_AUTOMATION_TRIGGER_FORM_SUBMIT_SOURCE_RESTRICTION_UPDATE      = Symbol(\"EVENTS_AUTOMATION_TRIGGER_FORM_SUBMIT_SOURCE_RESTRICTION_UPDATE\")\nexport const EVENTS_AUTOMATION_TRIGGER_LINKFIELD_SOURCE_RESTRICTION_UPDATE        = Symbol(\"EVENTS_AUTOMATION_TRIGGER_LINKFIELD_SOURCE_RESTRICTION_UPDATE\")\nexport const EVENTS_AUTOMATION_TRIGGER_FILTER_UPDATE                              = Symbol(\"EVENTS_AUTOMATION_TRIGGER_FILTER_UPDATE\")\nexport const EVENTS_AUTOMATION_TRIGGER_FILTER_INSERT                              = Symbol(\"EVENTS_AUTOMATION_TRIGGER_FILTER_INSERT\")\nexport const EVENTS_AUTOMATION_TRIGGER_FILTER_DELETE                              = Symbol(\"EVENTS_AUTOMATION_TRIGGER_FILTER_DELETE\")\nexport const EVENTS_AUTOMATION_TRIGGER_FILTER_CONDITION_AND_LOGICAL_STRING_UPDATE = Symbol(\"EVENTS_AUTOMATION_TRIGGER_FILTER_CONDITION_AND_LOGICAL_STRING_UPDATE\")\nexport const EVENTS_AUTOMATION_SENDMAIL_ACTION_ORDER_LOAD                         = Symbol(\"EVENTS_AUTOMATION_SENDMAIL_ACTION_ORDER_LOAD\")\nexport const EVENTS_AUTOMATION_SOCIAL_DRAFT_ACTION_ORDER_LOAD                     = Symbol(\"EVENTS_AUTOMATION_SOCIAL_DRAFT_ACTION_ORDER_LOAD\")\nexport const EVENTS_AUTOMATION_CREATE_RECORD_ACTION_ORDER_LOAD                    = Symbol(\"EVENTS_AUTOMATION_CREATE_RECORD_ACTION_ORDER_LOAD\")\nexport const EVENTS_AUTOMATION_UPDATE_RECORD_ACTION_ORDER_LOAD                    = Symbol(\"EVENTS_AUTOMATION_UPDATE_RECORD_ACTION_ORDER_LOAD\")\nexport const EVENTS_AUTOMATION_CLIQ_MESSAGE_ACTION_ORDER_LOAD                     = Symbol(\"EVENTS_AUTOMATION_CLIQ_MESSAGE_ACTION_ORDER_LOAD\")\nexport const EVENTS_AUTOMATION_SENDMAIL_ACTION_ORDER_INSERT                       = Symbol(\"EVENTS_AUTOMATION_SENDMAIL_ACTION_ORDER_INSERT\")\nexport const EVENTS_AUTOMATION_CREATE_RECORD_ACTION_ORDER_INSERT                  = Symbol(\"EVENTS_AUTOMATION_CREATE_RECORD_ACTION_ORDER_INSERT\")\nexport const EVENTS_AUTOMATION_UPDATE_RECORD_ACTION_ORDER_INSERT                  = Symbol(\"EVENTS_AUTOMATION_UPDATE_RECORD_ACTION_ORDER_INSERT\")\nexport const EVENTS_AUTOMATION_CLIQ_MESSAGE_ACTION_ORDER_INSERT                   = Symbol(\"EVENTS_AUTOMATION_CLIQ_MESSAGE_ACTION_ORDER_INSERT\")\nexport const EVENTS_AUTOMATION_SOCIAL_DRAFT_ACTION_ORDER_INSERT                   = Symbol(\"EVENTS_AUTOMATION_SOCIAL_DRAFT_ACTION_ORDER_INSERT\")\nexport const EVENTS_AUTOMATION_WEBHOOK_ACTION_ORDER_LOAD                          = Symbol(\"EVENTS_AUTOMATION_WEBHOOK_ACTION_ORDER_LOAD\")\nexport const EVENTS_AUTOMATION_WEBHOOK_ACTION_ORDER_INSERT                        = Symbol(\"EVENTS_AUTOMATION_WEBHOOK_ACTION_ORDER_INSERT\")\nexport const EVENTS_AUTOMATION_WEBHOOK_URL_UPDATE                                 = Symbol(\"EVENTS_AUTOMATION_WEBHOOK_URL_UPDATE\")\nexport const EVENTS_AUTOMATION_WEBHOOK_PARAM_INSERT                               = Symbol(\"EVENTS_AUTOMATION_WEBHOOK_PARAM_INSERT\")\nexport const EVENTS_AUTOMATION_WEBHOOK_PARAM_KEY_UPDATE                           = Symbol(\"EVENTS_AUTOMATION_WEBHOOK_PARAM_KEY_UPDATE\")\nexport const EVENTS_AUTOMATION_WEBHOOK_PARAM_VALUE_UPDATE                         = Symbol(\"EVENTS_AUTOMATION_WEBHOOK_PARAM_VALUE_UPDATE\")\nexport const EVENTS_AUTOMATION_WEBHOOK_PARAM_REMOVE                               = Symbol(\"EVENTS_AUTOMATION_WEBHOOK_PARAM_REMOVE\")\nexport const EVENTS_AUTOMATION_ACTION_WEBHOOK_INFO_BEFORE_LOAD                    = Symbol(\"EVENTS_AUTOMATION_ACTION_WEBHOOK_INFO_BEFORE_LOAD\")\nexport const EVENTS_AUTOMATION_ACTION_WEBHOOK_URL_LOAD                            = Symbol(\"EVENTS_AUTOMATION_ACTION_WEBHOOK_URL_LOAD\")\nexport const EVENTS_AUTOMATION_ACTION_WEBHOOK_PARAM_LOAD                          = Symbol(\"EVENTS_AUTOMATION_ACTION_WEBHOOK_PARAM_LOAD\")\nexport const EVENTS_AUTOMATION_ACTION_WEBHOOK_PARAM_INSERT                        = Symbol(\"EVENTS_AUTOMATION_ACTION_WEBHOOK_PARAM_INSERT\")\nexport const EVENTS_AUTOMATION_ACTION_WEBHOOK_PARAM_DELETE                        = Symbol(\"EVENTS_AUTOMATION_ACTION_WEBHOOK_PARAM_DELETE\")\nexport const EVENTS_AUTOMATION_ACTION_WEBHOOK_PARAM_KEY_UPDATE                    = Symbol(\"EVENTS_AUTOMATION_ACTION_WEBHOOK_PARAM_KEY_UPDATE\")\nexport const EVENTS_AUTOMATION_ACTION_WEBHOOK_PARAM_VALUE_UPDATE                  = Symbol(\"EVENTS_AUTOMATION_ACTION_WEBHOOK_PARAM_VALUE_UPDATE\")\nexport const EVENTS_AUTOMATION_ACTION_WEBHOOK_HEADER_LOAD                         = Symbol(\"EVENTS_AUTOMATION_ACTION_WEBHOOK_HEADER_LOAD\")\nexport const EVENTS_AUTOMATION_ACTION_WEBHOOK_HEADER_INSERT                       = Symbol(\"EVENTS_AUTOMATION_ACTION_WEBHOOK_HEADER_INSERT\")\nexport const EVENTS_AUTOMATION_ACTION_WEBHOOK_HEADER_KEY_UPDATE                   = Symbol(\"EVENTS_AUTOMATION_ACTION_WEBHOOK_HEADER_KEY_UPDATE\")\nexport const EVENTS_AUTOMATION_ACTION_WEBHOOK_HEADER_VALUE_UPDATE                 = Symbol(\"EVENTS_AUTOMATION_ACTION_WEBHOOK_HEADER_VALUE_UPDATE\")\nexport const EVENTS_AUTOMATION_ACTION_WEBHOOK_HEADER_DELETE                       = Symbol(\"EVENTS_AUTOMATION_ACTION_WEBHOOK_HEADER_DELETE\")\nexport const EVENTS_AUTOMATION_ACTION_WEBHOOK_METHOD_LOAD                         = Symbol(\"EVENTS_AUTOMATION_ACTION_WEBHOOK_METHOD_LOAD\")\nexport const EVENTS_AUTOMATION_ACTION_WEBHOOK_BODY_MODE_LOAD                      = Symbol(\"EVENTS_AUTOMATION_ACTION_WEBHOOK_BODY_MODE_LOAD\")\nexport const EVENTS_AUTOMATION_ACTION_WEBHOOK_RAW_BODY_LOAD                       = Symbol(\"EVENTS_AUTOMATION_ACTION_WEBHOOK_RAW_BODY_LOAD\")\nexport const EVENTS_AUTOMATION_ACTION_ORDER_DELETE                                = Symbol(\"EVENTS_AUTOMATION_ACTION_ORDER_DELETE\")\nexport const EVENTS_AUTOMATION_ACTION_TABLE_SELECTION_UPDATE                      = Symbol(\"EVENTS_AUTOMATION_ACTION_TABLE_SELECTION_UPDATE\")\nexport const EVENTS_AUTOMATION_ACTION_DISABLED_CODE_UPDATE                        = Symbol(\"EVENTS_AUTOMATION_ACTION_DISABLED_CODE_UPDATE\")\nexport const EVENTS_AUTOMATION_ACTION_STATE_UPDATE                                = Symbol(\"EVENTS_AUTOMATION_ACTION_STATE_UPDATE\")\nexport const EVENTS_AUTOMATION_ACTION_FIELD_VALUES_UPDATE                         = Symbol(\"EVENTS_AUTOMATION_ACTION_FIELD_VALUES_UPDATE\")\nexport const EVENTS_AUTOMATION_ACTION_FIELD_VALUES_INSERT_BEFORE                  = Symbol(\"EVENTS_AUTOMATION_ACTION_FIELD_VALUES_INSERT_BEFORE\")\nexport const EVENTS_AUTOMATION_ACTION_FIELD_VALUES_INSERT_AFTER                   = Symbol(\"EVENTS_AUTOMATION_ACTION_FIELD_VALUES_INSERT_AFTER\")\nexport const EVENTS_AUTOMATION_ACTION_FIELD_VALUES_DELETE                         = Symbol(\"EVENTS_AUTOMATION_ACTION_FIELD_VALUES_DELETE\")\nexport const EVENTS_AUTOMATION_ACTION_FIELD_VALUES_LOAD                           = Symbol(\"EVENTS_AUTOMATION_ACTION_FIELD_VALUES_LOAD\")\nexport const EVENTS_AUTOMATION_ACTION_FIELD_VALUE_LOAD_BEFORE                     = Symbol(\"EVENTS_AUTOMATION_ACTION_FIELD_VALUE_LOAD_BEFORE\")\nexport const EVENTS_AUTOMATION_ACTION_FILTER_LOAD_BEFORE                          = Symbol(\"EVENTS_AUTOMATION_ACTION_FILTER_LOAD_BEFORE\")\nexport const EVENTS_AUTOMATION_ACTION_FILTER_LOAD                                 = Symbol(\"EVENTS_AUTOMATION_ACTION_FILTER_LOAD\")\nexport const EVENTS_AUTOMATION_ACTION_FILTER_INSERT                               = Symbol(\"EVENTS_AUTOMATION_ACTION_FILTER_INSERT\")\nexport const EVENTS_AUTOMATION_ACTION_FILTER_UPDATE                               = Symbol(\"EVENTS_AUTOMATION_ACTION_FILTER_UPDATE\")\nexport const EVENTS_AUTOMATION_ACTION_FILTER_REORDER                              = Symbol(\"EVENTS_AUTOMATION_ACTION_FILTER_REORDER\")\nexport const EVENTS_AUTOMATION_ACTION_FILTER_DELETE                               = Symbol(\"EVENTS_AUTOMATION_ACTION_FILTER_DELETE\")\nexport const EVENTS_AUTOMATION_ACTION_FILTER_CONDITION_AND_LOGICAL_STRING_UPDATE  = Symbol(\"EVENTS_AUTOMATION_ACTION_FILTER_CONDITION_AND_LOGICAL_STRING_UPDATE\")\nexport const EVENTS_AUTOMATION_ACTION_MAILIFO_LOAD                                = Symbol(\"EVENTS_AUTOMATION_ACTION_MAILIFO_LOAD\")\nexport const EVENTS_AUTOMATION_ACTION_CLIQ_INFO_LOAD                              = Symbol(\"EVENTS_AUTOMATION_ACTION_CLIQ_INFO_LOAD\");\nexport const EVENTS_AUTOMATION_ACTION_BEFORE_LOAD                                 = Symbol(\"EVENTS_AUTOMATION_ACTION_BEFORE_LOAD\");\nexport const EVENTS_AUTOMATION_ACTION_CLIQ_INFO_ORG_STATUS_LOAD                   = Symbol(\"EVENTS_AUTOMATION_ACTION_CLIQ_INFO_ORG_STATUS_LOAD\");\nexport const EVENTS_AUTOMATION_ACTION_CLIQ_INFO_EXTENSION_STATUS_LOAD             = Symbol(\"EVENTS_AUTOMATION_ACTION_CLIQ_INFO_EXTENSION_STATUS_LOAD\");\nexport const EVENTS_AUTOMATION_ACTION_CLIQ_INFO_URL_LOAD                          = Symbol(\"EVENTS_AUTOMATION_ACTION_CLIQ_INFO_URL_LOAD\");\nexport const EVENTS_AUTOMATION_ACTION_CLIQ_INFO_TO_ADDRESS_LOAD                   = Symbol(\"EVENTS_AUTOMATION_ACTION_CLIQ_INFO_TO_ADDRESS_LOAD\");\nexport const EVENTS_AUTOMATION_ACTION_CLIQ_INFO_MESSAGE_LOAD                      = Symbol(\"EVENTS_AUTOMATION_ACTION_CLIQ_INFO_MESSAGE_LOAD\");\n\nexport const EVENTS_AUTOMATION_ACTION_CLIQ_INFO_TO_ADDRESS_INSERT                 = Symbol(\"EVENTS_AUTOMATION_ACTION_CLIQ_INFO_TO_ADDRESS_INSERT\");\nexport const EVENTS_AUTOMATION_ACTION_CLIQ_INFO_TO_ADDRESS_REMOVE                 = Symbol(\"EVENTS_AUTOMATION_ACTION_CLIQ_INFO_TO_ADDRESS_REMOVE\");\nexport const EVENTS_AUTOMATION_ACTION_CLIQ_INFO_MESSAGE_UPDATE                    = Symbol(\"EVENTS_AUTOMATION_ACTION_CLIQ_INFO_MESSAGE_UPDATE\");\nexport const EVENTS_AUTOMATION_ACTION_TO_MAILINFO_UPDATE                          = Symbol(\"EVENTS_AUTOMATION_ACTION_TO_MAILINFO_UPDATE\")\nexport const EVENTS_AUTOMATION_ACTION_CC_MAILINFO_UPDATE                          = Symbol(\"EVENTS_AUTOMATION_ACTION_CC_MAILINFO_UPDATE\")\nexport const EVENTS_AUTOMATION_ACTION_BCC_MAILINFO_UPDATE                         = Symbol(\"EVENTS_AUTOMATION_ACTION_BCC_MAILINFO_UPDATE\")\nexport const EVENTS_AUTOMATION_ACTION_SUBJECT_MAILINFO_UPDATE                     = Symbol(\"EVENTS_AUTOMATION_ACTION_SUBJECT_MAILINFO_UPDATE\")\nexport const EVENTS_AUTOMATION_ACTION_MESSAGE_MAILINFO_UPDATE                     = Symbol(\"EVENTS_AUTOMATION_ACTION_MESSAGE_MAILINFO_UPDATE\")\nexport const EVENTS_AUTOMATION_ACTION_MAILINFO_ATTACHMENT_BEFORE_LOAD             = Symbol(\"EVENTS_AUTOMATION_ACTION_MAILINFO_ATTACHMENT_BEFORE_LOAD\")\nexport const EVENTS_AUTOMATION_ACTION_MAILINFO_ATTACHMENT_LOAD                    = Symbol(\"EVENTS_AUTOMATION_ACTION_MAILINFO_ATTACHMENT_LOAD\")\nexport const EVENTS_AUTOMATION_ACTION_MAILINFO_ATTACHMENT_INSERT                  = Symbol(\"EVENTS_AUTOMATION_ACTION_MAILINFO_ATTACHMENT_INSERT\")\nexport const EVENTS_AUTOMATION_ACTION_MAILINFO_ATTACHMENT_DELETE                  = Symbol(\"EVENTS_AUTOMATION_ACTION_MAILINFO_ATTACHMENT_DELETE\")\n\nexport const EVENTS_AUTOMATION_ACTION_SOCIAL_INFO_BEFORE_LOAD                     = Symbol(\"EVENTS_AUTOMATION_ACTION_SOCIAL_INFO_BEFORE_LOAD\")\nexport const EVENTS_AUTOMATION_ACTION_SOCIAL_INFO_LOAD                            = Symbol(\"EVENTS_AUTOMATION_ACTION_SOCIAL_INFO_LOAD\")\nexport const EVENTS_AUTOMATION_ACTION_SOCIAL_INFO_AVAILABLE_PORTAL_LOAD           = Symbol(\"EVENTS_AUTOMATION_ACTION_SOCIAL_INFO_AVAILABLE_PORTAL_LOAD\")\nexport const EVENTS_AUTOMATION_ACTION_SOCIAL_INFO_AVAILABLE_MEDIAS_LOAD           = Symbol(\"EVENTS_AUTOMATION_ACTION_SOCIAL_INFO_AVAILABLE_MEDIA_LOAD\")\nexport const EVENTS_AUTOMATION_ACTION_SOCIAL_CONTENT_LOAD                         = Symbol(\"EVENTS_AUTOMATION_ACTION_SOCIAL_CONTENT_LOAD\")\nexport const EVENTS_AUTOMATION_ACTION_SOCIAL_PORTAL_UPDATE                        = Symbol(\"EVENTS_AUTOMATION_ACTION_SOCIAL_PORTAL_UPDATE\")\nexport const EVENTS_AUTOMATION_ACTION_SOCIAL_BRAND_UPDATE                         = Symbol(\"EVENTS_AUTOMATION_ACTION_SOCIAL_BRAND_UPDATE\")\nexport const EVENTS_AUTOMATION_ACTION_SOCIAL_AVAILABLE_MEDIAS_UPDATE              = Symbol(\"EVENTS_AUTOMATION_ACTION_SOCIAL_AVAILABLE_MEDIA_UPDATE\")\nexport const EVENTS_AUTOMATION_ACTION_SOCIAL_CONTENT_TYPE_UPDATE                  = Symbol(\"EVENTS_AUTOMATION_ACTION_SOCIAL_CONTENT_TYPE_UPDATE\")\nexport const EVENTS_AUTOMATION_ACTION_SOCIAL_MESSAGE_TRIGGER_FIELD_ID_UPDATE      = Symbol(\"EVENTS_AUTOMATION_ACTION_SOCIAL_MESSAGE_TRIGGER_FIELD_ID_UPDATE\")\nexport const EVENTS_AUTOMATION_ACTION_SOCIAL_MESSAGE_UPDATE                       = Symbol(\"EVENTS_AUTOMATION_ACTION_SOCIAL_MESSAGE_UPDATE\")\nexport const EVENTS_AUTOMATION_ACTION_ATTACHMENT_LOAD                             = Symbol(\"EVENTS_AUTOMATION_ACTION_ATTACHMENT_LOAD\")\nexport const EVENTS_AUTOMATION_ACTION_ATTACHMENT_INSERT                           = Symbol(\"EVENTS_AUTOMATION_ACTION_ATTACHMENT_INSERT\")\nexport const EVENTS_AUTOMATION_ACTION_ATTACHMENT_DELETE                           = Symbol(\"EVENTS_AUTOMATION_ACTION_ATTACHMENT_DELETE\")\nexport const EVENTS_AUTOMATION_ACTION_SOCIAL_MEDIA_UPDATE                         = Symbol(\"EVENTS_AUTOMATION_ACTION_SOCIAL_MEDIA_UPDATE\")\nexport const EVENTS_AUTOMATION_ACTION_SOCIAL_MEDIA_TRIGGER_FIELD_ID_UPDATE        = Symbol(\"EVENTS_AUTOMATION_ACTION_SOCIAL_MEDIA_TRIGGER_FIELD_ID_UPDATE\")\n\nexport const EVENTS_AUTOMATION_ACTION_FIND_AND_INCLUDE_RECORD_DELETE                                     = Symbol(\"EVENTS_AUTOMATION_ACTION_FIND_AND_INCLUDE_RECORD_DELETE\")\nexport const EVENTS_AUTOMATION_ACTION_FIND_AND_INCLUDE_RECORD_TABLE_ID_LOAD                              = Symbol(\"EVENTS_AUTOMATION_ACTION_FIND_AND_INCLUDE_RECORD_TABLE_ID_LOAD\")\nexport const EVENTS_AUTOMATION_ACTION_FIND_AND_INCLUDE_RECORD_FIELDS_BEFORE_LOAD                         = Symbol(\"EVENTS_AUTOMATION_ACTION_FIND_AND_INCLUDE_RECORD_FIELDS_BEFORE_LOAD\")\nexport const EVENTS_AUTOMATION_ACTION_FIND_AND_INCLUDE_RECORD_FIELDS_LOAD                                = Symbol(\"EVENTS_AUTOMATION_ACTION_FIND_AND_INCLUDE_RECORD_FIELDS_LOAD\")\nexport const EVENTS_AUTOMATION_ACTION_FIND_AND_INCLUDE_RECORD_TABLE_ID_INSERT                            = Symbol(\"EVENTS_AUTOMATION_ACTION_FIND_AND_INCLUDE_RECORD_TABLE_ID_INSERT\")\nexport const EVENTS_AUTOMATION_ACTION_FIND_AND_INCLUDE_RECORD_FIELDS_BEFORE_INSERT                       = Symbol(\"EVENTS_AUTOMATION_ACTION_FIND_AND_INCLUDE_RECORD_FIELDS_BEFORE_INSERT\")\nexport const EVENTS_AUTOMATION_ACTION_FIND_AND_INCLUDE_RECORD_FIELDS_INSERT                              = Symbol(\"EVENTS_AUTOMATION_ACTION_FIND_AND_INCLUDE_RECORD_FIELDS_INSERT\")\nexport const EVENTS_AUTOMATION_ACTION_FIND_AND_INCLUDE_RECORD_TABLE_ID_UPDATE                            = Symbol(\"EVENTS_AUTOMATION_ACTION_FIND_AND_INCLUDE_RECORD_TABLE_ID_UPDATE\")\nexport const EVENTS_AUTOMATION_ACTION_FIND_AND_INCLUDE_RECORD_FIELDS_UPDATE                              = Symbol(\"EVENTS_AUTOMATION_ACTION_FIND_AND_INCLUDE_RECORD_FIELDS_UPDATE\")\nexport const EVENTS_AUTOMATION_ACTION_FIND_AND_INCLUDE_RECORD_FILTER_CONDITION_AND_LOGICAL_STRING_UPDATE = Symbol(\"EVENTS_AUTOMATION_ACTION_FIND_AND_INCLUDE_RECORD_FILTER_CONDITION_AND_LOGICAL_STRING_UPDATE\")\nexport const EVENTS_AUTOMATION_ACTION_FIND_AND_INCLUDE_RECORD_FILTER_BEFORE_LOAD                         = Symbol(\"EVENTS_AUTOMATION_ACTION_FIND_AND_INCLUDE_RECORD_FILTER_BEFORE_LOAD\")\nexport const EVENTS_AUTOMATION_ACTION_FIND_AND_INCLUDE_RECORD_FILTER_LOAD                                = Symbol(\"EVENTS_AUTOMATION_ACTION_FIND_AND_INCLUDE_RECORD_FILTER_LOAD\")\nexport const EVENTS_AUTOMATION_ACTION_FIND_AND_INCLUDE_RECORD_FILTER_UPDATE                              = Symbol(\"EVENTS_AUTOMATION_ACTION_FIND_AND_INCLUDE_RECORD_FILTER_UPDATE\")\nexport const EVENTS_AUTOMATION_ACTION_FIND_AND_INCLUDE_RECORD_FILTER_REORDER                            = Symbol(\"EVENTS_AUTOMATION_ACTION_FIND_AND_INCLUDE_RECORD_FILTER_REORDER\")\nexport const EVENTS_AUTOMATION_ACTION_FIND_AND_INCLUDE_RECORD_FILTER_DELETE                              = Symbol(\"EVENTS_AUTOMATION_ACTION_FIND_AND_INCLUDE_RECORD_FILTER_DELETE\")\nexport const EVENTS_AUTOMATION_ACTION_SUMMARY_OF_A_FIELD_DELETE                                          = Symbol(\"EVENTS_AUTOMATION_ACTION_SUMMARY_OF_A_FIELD_DELETE\")\nexport const EVENTS_AUTOMATION_ACTION_SUMMARY_OF_A_FIELD_TABLE_ID_LOAD                                   = Symbol(\"EVENTS_AUTOMATION_ACTION_SUMMARY_OF_A_FIELD_TABLE_ID_LOAD\")\nexport const EVENTS_AUTOMATION_ACTION_SUMMARY_OF_A_FIELD_FIELD_ID_LOAD                                   = Symbol(\"EVENTS_AUTOMATION_ACTION_SUMMARY_OF_A_FIELD_FIELD_ID_LOAD\")\nexport const EVENTS_AUTOMATION_ACTION_SUMMARY_OF_A_FIELD_SUMMARY_TYPE_LOAD                               = Symbol(\"EVENTS_AUTOMATION_ACTION_SUMMARY_OF_A_FIELD_SUMMARY_TYPE_LOAD\")\nexport const EVENTS_AUTOMATION_ACTION_SUMMARY_OF_A_FIELD_TABLE_ID_INSERT                                 = Symbol(\"EVENTS_AUTOMATION_ACTION_SUMMARY_OF_A_FIELD_TABLE_ID_INSERT\")\nexport const EVENTS_AUTOMATION_ACTION_SUMMARY_OF_A_FIELD_FIELD_ID_INSERT                                 = Symbol(\"EVENTS_AUTOMATION_ACTION_SUMMARY_OF_A_FIELD_FIELD_ID_INSERT\")\nexport const EVENTS_AUTOMATION_ACTION_SUMMARY_OF_A_FIELD_SUMMARY_TYPE_INSERT                             = Symbol(\"EVENTS_AUTOMATION_ACTION_SUMMARY_OF_A_FIELD_SUMMARY_TYPE_INSERT\")\nexport const EVENTS_AUTOMATION_ACTION_SUMMARY_OF_A_FIELD_TABLE_ID_UPDATE                                 = Symbol(\"EVENTS_AUTOMATION_ACTION_SUMMARY_OF_A_FIELD_TABLE_ID_UPDATE\")\nexport const EVENTS_AUTOMATION_ACTION_SUMMARY_OF_A_FIELD_FIELD_ID_UPDATE                                 = Symbol(\"EVENTS_AUTOMATION_ACTION_SUMMARY_OF_A_FIELD_FIELD_ID_UPDATE\")\nexport const EVENTS_AUTOMATION_ACTION_SUMMARY_OF_A_FIELD_SUMMARY_TYPE_UPDATE                             = Symbol(\"EVENTS_AUTOMATION_ACTION_SUMMARY_OF_A_FIELD_SUMMARY_TYPE_UPDATE\")\n\n\n\nexport const EVENTS_BASE_ENABLE                                = Symbol(\"EVENTS_BASE_ENABLE\")\nexport const EVENTS_BASE_DISABLE                               = Symbol(\"EVENTS_BASE_DISABLE\")\nexport const EVENTS_ENABLE_BASE_LIMIT_REACHED                  = Symbol(\"EVENTS_ENABLE_BASE_LIMIT_REACHED\")\nexport const EVENTS_DISABLE_BASE_LIMIT_REACHED                 = Symbol(\"EVENTS_DISABLE_BASE_LIMIT_REACHED\")\nexport const EVENTS_BASE_GROUPBY_ALLOWED_LEVEL_UPDATE          = Symbol(\"EVENTS_BASE_GROUPBY_ALLOWED_LEVEL_UPDATE\")\nexport const EVENTS_ENABLE_KANBAN_CARD_CUSTOMIZATION           = Symbol(\"EVENTS_ENABLE_KANBAN_CARD_CUSTOMIZATION\")\nexport const EVENTS_DISABLE_KANBAN_CARD_CUSTOMIZATION          = Symbol(\"EVENTS_DISABLE_KANBAN_CARD_CUSTOMIZATION\")\nexport const EVENTS_ENABLE_GALLERY_CARD_CUSTOMIZATION          = Symbol(\"EVENTS_ENABLE_GALLERY_CARD_CUSTOMIZATION\")\nexport const EVENTS_DISABLE_GALLERY_CARD_CUSTOMIZATION         = Symbol(\"EVENTS_DISABLE_GALLERY_CARD_CUSTOMIZATION\")\nexport const EVENTS_ENABLE_CALENDAR_RANGE_SELECTION            = Symbol(\"EVENTS_ENABLE_CALENDAR_RANGE_SELECTION\")\nexport const EVENTS_DISABLE_CALENDAR_RANGE_SELECTION           = Symbol(\"EVENTS_DISABLE_CALENDAR_RANGE_SELECTION\")\nexport const EVENTS_FORM_VIEW_BRANDING_DISABLING_ALLOWED       = Symbol(\"EVENTS_FORM_VIEW_BRANDING_DISABLING_ALLOWED\")\nexport const EVENTS_FORM_VIEW_BRANDING_DISABLING_NOT_ALLOWED   = Symbol(\"EVENTS_FORM_VIEW_BRANDING_DISABLING_NOT_ALLOWED\")\nexport const EVENTS_BASE_EDITABLE_COLLABORATOR_COUNT_UPDATE    = Symbol(\"EVENTS_BASE_EDITABLE_COLLABORATOR_COUNT_UPDATE\")\nexport const EVENTS_BASE_NONEDITABLE_COLLABORATOR_COUNT_UPDATE = Symbol(\"EVENTS_BASE_NONEDITABLE_COLLABORATOR_COUNT_UPDATE\")\nexport const EVENTS_AUTOMATION_BANNER_MAX_ACTIVE_LIMIT_REACHED = Symbol(\"EVENTS_AUTOMATION_BANNER_MAX_ACTIVE_LIMIT_REACHED\")\nexport const EVENTS_AUTOMATION_BANNER_REMOVE                   = Symbol(\"EVENTS_AUTOMATION_BANNER_REMOVE\")\nexport const EVENTS_ACTIVITY_LOG_BANNER_LIMITED_LOG          = Symbol(\"EVENTS_ACTIVITY_LOG_BANNER_LIMITED_LOG\")\nexport const EVENTS_ACTIVITY_LOG_BANNER_REMOVE                 = Symbol(\"EVENTS_ACTIVITY_LOG_BANNER_REMOVE\")\nexport const EVENTS_USER_PANEL_BANNER_USER_LIMIT_REACHED       = Symbol(\"EVENTS_USER_PANEL_BANNER_USER_LIMIT_REACHED\")\nexport const EVENTS_USER_PANEL_BANNER_REMOVE                   = Symbol(\"EVENTS_USER_PANEL_BANNER_REMOVE\")\nexport const EVENTS_BASE_BANNER_TEMPLATE_UPDATE                = Symbol(\"EVENTS_BASE_BANNER_TEMPLATE_UPDATE\")\nexport const EVENTS_AUTOMATION_BANNER_TEMPLATE_UPDATE          = Symbol(\"EVENTS_AUTOMATION_BANNER_TEMPLATE_UPDATE\")\nexport const EVENTS_AUTOMATION_BANNER_TEMPLATE_META_UPDATE     = Symbol(\"EVENTS_AUTOMATION_BANNER_TEMPLATE_META_UPDATE\")\nexport const EVENTS_IS_ACTIVITY_LOG_BANNER_UPDATE              = Symbol(\"EVENTS_IS_ACTIVITY_LOG_BANNER_UPDATE\")\nexport const EVENTS_ACTIVITY_LOG_DURATION_UPDATE               = Symbol(\"EVENTS_ACTIVITY_LOG_DURATION_UPDATE\")\nexport const EVENTS_IS_RUN_HISTORY_LOG_BANNER_UPDATE           = Symbol(\"EVENTS_IS_RUN_HISTORY_LOG_BANNER_UPDATE\")\nexport const EVENTS_RUN_HISTORY_LOG_DURATION_UPDATE            = Symbol(\"EVENTS_RUN_HISTORY_LOG_DURATION_UPDATE\")\nexport const EVENTS_PREMIUM_FEATURE_INSERT                     = Symbol(\"EVENTS_PREMIUM_FEATURE_INSERT\")\nexport const EVENTS_PREMIUM_FEATURE_CREATOR_EXPORT_UPDATE      = Symbol(\"EVENTS_PREMIUM_FEATURE_CREATOR_EXPORT_UPDATE\")\nexport const EVENTS_PREMIUM_VIEW_INSERT                        = Symbol(\"EVENTS_PREMIUM_VIEW_INSERT\")\nexport const EVENTS_PREMIUM_FIELD_INSERT                       = Symbol(\"EVENTS_PREMIUM_FIELD_INSERT\")\nexport const EVENTS_PREMIUM_AUTOMATION_TRIGGER_BEFORE_INSERT   = Symbol(\"EVENTS_PREMIUM_AUTOMATION_TRIGGER_BEFORE_INSERT\")\nexport const EVENTS_PREMIUM_AUTOMATION_TRIGGER_INSERT          = Symbol(\"EVENTS_PREMIUM_AUTOMATION_TRIGGER_INSERT\")\nexport const EVENTS_PREMIUM_AUTOMATION_ACTION_INSERT           = Symbol(\"EVENTS_PREMIUM_AUTOMATION_ACTION_INSERT\")\nexport const EVENTS_REMAINING_RECORD_COUNT_UPDATE              = Symbol(\"EVENTS_REMAINING_RECORD_COUNT_UPDATE\")\nexport const EVENTS_TOTAL_RECORD_COUNT_UPDATE                  = Symbol(\"EVENTS_TOTAL_RECORD_COUNT_UPDATE\")\nexport const EVENTS_ACTIVE_AUTOMATION_ALLOWED_COUNT_UPDATE     = Symbol(\"EVENTS_ACTIVE_AUTOMATION_ALLOWED_COUNT_UPDATE\")\nexport const EVENTS_SCHEDULAR_AUTOMATION_MAX_COUNT_UPDATE      = Symbol(\"EVENTS_SCHEDULAR_AUTOMATION_MAX_COUNT_UPDATE\")\nexport const EVENTS_SCHEDULAR_AUTOMATION_USED_COUNT_UPDATE     = Symbol(\"EVENTS_SCHEDULAR_AUTOMATION_USED_COUNT_UPDATE\")\nexport const EVENTS_USED_AUTOMATION_COUNT_UPDATE               = Symbol(\"EVENTS_USED_AUTOMATION_COUNT_UPDATE\")\nexport const EVENTS_BASE_COLLABORATORS_COUNT_UPDATE            = Symbol(\"EVENTS_BASE_COLLABORATORS_COUNT_UPDATE\")\nexport const EVENTS_BASE_FORM_MAX_ALLOWED_COVER_IMAGE_SIZE     = Symbol(\"EVENTS_BASE_FORM_MAX_ALLOWED_COVER_IMAGE_SIZE\")\nexport const EVENTS_BASE_FORM_MAX_ALLOWED_LOGO_SIZE            = Symbol(\"EVENTS_BASE_FORM_MAX_ALLOWED_LOGO_SIZE\")\n\n\nexport const EVENTS_TABLE_RECORD_COMMENTS_LOAD        = Symbol(\"EVENTS_TABLE_RECORD_COMMENTS_LOAD\");    //No I18N\nexport const EVENTS_TABLE_RECORD_COMMENTS_INSERT      = Symbol(\"EVENTS_TABLE_RECORD_COMMENTS_INSERT\");  //No I18N\nexport const EVENTS_TABLE_RECORD_COMMENTS_UPDATE      = Symbol(\"EVENTS_TABLE_RECORD_COMMENTS_UPDATE\");  //No I18N\nexport const EVENTS_TABLE_RECORD_COMMENT_STATUS       = Symbol(\"EVENTS_TABLE_RECORD_COMMENT_STATUS\");    //No I18N\n\nexport const EVENTS_TAB_UNDO_COUNT = Symbol(\"EVENTS_TAB_UNDO_COUNT\");  //No I18N\nexport const EVENTS_TAB_REDO_COUNT = Symbol(\"EVENTS_TAB_REDO_COUNT\");  //No I18N\nexport const EVENTS_TAB_UNDO_REDO  = Symbol(\"EVENTS_TAB_UNDO_REDO\");   //No I18N\n\n// GroupBy Dialog\nexport const EVENTS_GRID_GROUPBY_LOAD_ORDER   = Symbol(\"EVENTS_GRID_GROUPBY_LOAD_ORDER\");    //No I18N\nexport const EVENTS_GRID_GROUPBY_INSERT_ORDER = Symbol(\"EVENTS_GRID_GROUPBY_INSERT_ORDER\");  //No I18N\nexport const EVENTS_GRID_GROUPBY_LOAD_META    = Symbol(\"EVENTS_GRID_GROUPBY_LOAD_META\");     //No I18N\nexport const EVENTS_GRID_GROUPBY_INSERT_META  = Symbol(\"EVENTS_GRID_GROUPBY_INSERT_META\");   //No I18N\nexport const EVENTS_GRID_GROUPBY_UPDATE_META  = Symbol(\"EVENTS_GRID_GROUPBY_UPDATE_META\");   //No I18N\nexport const EVENTS_GRID_GROUPBY_DELETE_ORDER = Symbol(\"EVENTS_GRID_GROUPBY_DELETE_ORDER\");  //No I18N\nexport const EVENTS_GRID_GROUPBY_REORDER      = Symbol(\"EVENTS_GRID_GROUPBY_REORDER\");       //No I18N\n\n// GroupBy Meta\nexport const EVENTS_GRID_GROUPBY_META_ORDER_LOAD              = Symbol(\"EVENTS_GRID_GROUPBY_META_ORDER_LOAD\");               //No I18N\nexport const EVENTS_GRID_GROUPBY_META_ORDER_INSERT            = Symbol(\"EVENTS_GRID_GROUPBY_META_ORDER_INSERT\");             //No I18N\nexport const EVENTS_GRID_GROUPBY_META_ORDER_DELETE            = Symbol(\"EVENTS_GRID_GROUPBY_META_ORDER_DELETE\");             //No I18N\nexport const EVENTS_GRID_GROUPBY_META_LOAD                    = Symbol(\"EVENTS_GRID_GROUPBY_META_LOAD\");                     //No I18N\nexport const EVENTS_GRID_GROUPBY_META_INSERT                  = Symbol(\"EVENTS_GRID_GROUPBY_META_INSERT\");                     //No I18N\nexport const EVENTS_GRID_GROUPBY_META_RECORD_IDS_ORDER_LOAD   = Symbol(\"EVENTS_GRID_GROUPBY_META_RECORD_IDS_ORDER_LOAD\");    //No I18N\nexport const EVENTS_GRID_GROUPBY_META_RECORD_IDS_ORDER_INSERT = Symbol(\"EVENTS_GRID_GROUPBY_META_RECORD_IDS_ORDER_INSERT\");  //No I18N\nexport const EVENTS_GRID_GROUPBY_META_UPDATE_VALUE            = Symbol(\"EVENTS_GRID_GROUPBY_META_UPDATE_VALUE\");             //No I18N\nexport const EVENTS_GRID_GROUPBY_META_UPDATE_COUNT            = Symbol(\"EVENTS_GRID_GROUPBY_META_UPDATE_COUNT\");             //No I18N\nexport const EVENTS_GRID_GROUPBY_META_UPDATE_EXPAND           = Symbol(\"EVENTS_GRID_GROUPBY_META_UPDATE_EXPAND\");            //No I18N\nexport const EVENTS_GRID_GROUPBY_META_SUMMARY_UPDATE          = Symbol(\"EVENTS_GRID_GROUPBY_META_SUMMARY_UPDATE\");           //No I18N\nexport const EVENTS_GRID_GROUPBY_META_RECORD_ORDER_DELETE     = Symbol(\"EVENTS_GRID_GROUPBY_META_RECORD_ORDER_DELETE\");      //No I18N\nexport const EVENTS_GRID_GROUPBY_META_RECORD_REORDER          = Symbol(\"EVENTS_GRID_GROUPBY_META_RECORD_REORDER\");           //No I18N\nexport const EVENTS_GRID_GROUPBY_DATA_SYNC_REQUIRED           = Symbol(\"EVENTS_GRID_GROUPBY_DATA_SYNC_REQUIRED\");\n\n// snap \nexport const EVENTS_SNAP_ORDER_INSERT = Symbol(\"EVENTS_SNAP_ORDER_INSERT\"); //No I18N\nexport const EVENTS_SNAP_ORDER_LOAD = Symbol(\"EVENTS_SNAP_ORDER_LOAD\"); //No I18N\nexport const EVENTS_SNAP_ORDER_DELETE = Symbol(\"EVENTS_SNAP_ORDER_DELETE\"); //No I18N\nexport const EVENTS_SNAP_LIMIT_REACHED = Symbol(\"EVENTS_SNAP_LIMIT_REACHED\"); //No I18N\nexport const EVENTS_SNAP_SORT_TYPE_ORDER_UPDATE = Symbol(\"EVENTS_SNAP_SORT_TYPE_ORDER_UPDATE\"); //No I18N\nexport const EVENTS_SNAP_FILTER_TYPE_UPDATE = Symbol(\"EVENTS_SNAP_FILTER_TYPE_UPDATE\"); //No I18N\nexport const EVENTS_SNAP_MODIFIED_TIME_UPDATE = Symbol(\"EVENTS_SNAP_MODIFIED_TIME_UPDATE\"); //No I18N\n\nexport const EVENTS_SNAP_BEFORE_UPDATE = Symbol(\"EVENTS_SNAP_BEFORE_UPDATE\"); //No I18N\nexport const EVENTS_SNAP_AFTER_UPDATE = Symbol(\"EVENTS_SNAP_AFTER_UPDATE\"); //No I18N\nexport const EVENTS_SNAP_NAME_UPDATE = Symbol(\"EVENTS_SNAP_NAME_UPDATE\"); //No I18N\nexport const EVENTS_SNAP_EDITING_USER_UPDATE = Symbol(\"EVENTS_SNAP_EDITING_USER_UPDATE\"); //No I18N)\nexport const EVENTS_SNAP_EDITABLE_UPDATE = Symbol(\"EVENTS_SNAP_EDITABLE_UPDATE\"); //No I18N)\nexport const EVENTS_SNAP_ACTIVE_WIZ_UPDATE = Symbol(\"EVENTS_SNAP_ACTIVE_WIZ_UPDATE\"); //No I18N)\nexport const EVENTS_SNAP_WIZ_ORDER_UPDATE = Symbol(\"EVENTS_SNAP_WIZ_ORDER_UPDATE\"); //No I18N)\nexport const EVENTS_SNAP_URL_UPDATE = Symbol(\"EVENTS_SNAP_URL_UPDATE\"); //No I18N\nexport const EVENTS_SNAP_SHARE_ENABLED_UPDATE = Symbol(\"EVENTS_SNAP_SHARE_ENABLED_UPDATE\"); //No I18N)\nexport const EVENTS_SNAP_SHARE_PASSWORD_UPDATE = Symbol(\"EVENTS_SNAP_SHARE_PASSWORD_UPDATE\"); //No I18N)\nexport const EVENTS_SNAP_SHARE_EXPIRY_DATE_UPDATE = Symbol(\"EVENTS_SNAP_SHARE_EXPIRY_DATE_UPDATE\"); //No I18N)\nexport const EVENTS_SNAP_SHARE_USER_TYPE_UPDATE = Symbol(\"EVENTS_SNAP_SHARE_USER_TYPE_UPDATE\"); //No I18N)\n\nexport const EVENTS_WIZ_BEFORE_UPDATE = Symbol(\"EVENTS_WIZ_BEFORE_UPDATE\"); //No I18N\nexport const EVENTS_WIZ_AFTER_UPDATE = Symbol(\"EVENTS_WIZ_AFTER_UPDATE\"); //No I18N\nexport const EVENTS_WIZ_HEIGHT_UPDATE = Symbol(\"EVENTS_WIZ_HEIGHT_UPDATE\"); //No I18N\nexport const EVENTS_WIZ_WIDTH_UPDATE = Symbol(\"EVENTS_WIZ_WIDTH_UPDATE\"); //No I18N\nexport const EVENTS_WIZ_CARD_LIMIT_REACHED = Symbol(\"EVENTS_WIZ_CARD_LIMIT_REACHED\"); //No I18N\nexport const EVENTS_WIZ_GRID_CARD_LIMIT_REACHED = Symbol(\"EVENTS_WIZ_GRID_CARD_LIMIT_REACHED\"); //No I18N\nexport const EVENTS_WIZ_CARD_LOAD = Symbol(\"EVENTS_WIZ_CARD_LOAD\"); //No I18N\nexport const EVENTS_WIZ_CARD_INSERT = Symbol(\"EVENTS_WIZ_CARD_INSERT\"); //No I18N\nexport const EVENTS_WIZ_CARD_DELETE = Symbol(\"EVENTS_WIZ_CARD_DELETE\"); //No I18N\nexport const EVENTS_WIZ_CARD_DUPLICATE = Symbol(\"EVENTS_WIZ_CARD_DUPLICATE\"); //No I18N\n\nexport const EVENTS_WIZ_CARD_ROW_UPDATE = Symbol(\"EVENTS_WIZ_CARD_ROW_UPDATE\"); //No I18N\nexport const EVENTS_WIZ_CARD_COLUMN_UPDATE = Symbol(\"EVENTS_WIZ_CARD_COLUMN_UPDATE\"); //No I18N\nexport const EVENTS_WIZ_CARD_HEIGHT_UPDATE = Symbol(\"EVENTS_WIZ_CARD_HEIGHT_UPDATE\"); //No I18N\nexport const EVENTS_WIZ_CARD_WIDTH_UPDATE = Symbol(\"EVENTS_WIZ_CARD_WIDTH_UPDATE\"); //No I18N\nexport const EVENTS_WIZ_CARD_TYPE_UPDATE = Symbol(\"EVENTS_WIZ_CARD_TYPE_UPDATE\"); //No I18N\n\nexport const EVENTS_SNAP_AGGREGATE_TABLE_UPDATE = Symbol(\"EVENTS_SNAP_AGGREGATE_TABLE_UPDATE\"); //No I18N\n// export const EVENTS_SNAP_AGGREGATE_VIEW_UPDATE = Symbol(\"EVENTS_SNAP_AGGREGATE_VIEW_UPDATE\"); //No I18N\nexport const EVENTS_SNAP_AGGREGATE_FIELDS_META_LOAD = Symbol(\"EVENTS_SNAP_AGGREGATE_FIELDS_META_LOAD\"); //No I18N\nexport const EVENTS_SNAP_AGGREGATE_FIELD_META_UPDATE = Symbol(\"EVENTS_SNAP_AGGREGATE_FIELD_META_UPDATE\"); //No I18N\nexport const EVENTS_SNAP_AGGREGATE_FIELD_UPDATE = Symbol(\"EVENTS_SNAP_AGGREGATE_FIELD_UPDATE\"); //No I18N\nexport const EVENTS_SNAP_AGGREGATE_FORMULA_UPDATE = Symbol(\"EVENTS_SNAP_AGGREGATE_FORMULA_UPDATE\"); //No I18N\nexport const EVENTS_SNAP_AGGREGATE_GROUP_BY_FIELD_UPDATE = Symbol(\"EVENTS_SNAP_AGGREGATE_GROUP_BY_FIELD_UPDATE\"); //No I18N\nexport const EVENTS_SNAP_AGGREGATE_GROUP_BY_TYPE_UPDATE = Symbol(\"EVENTS_SNAP_AGGREGATE_GROUP_BY_TYPE_UPDATE\"); //No I18N\nexport const EVENTS_SNAP_AGGREGATE_SHOW_SECONDARY_LABEL_UPDATE = Symbol(\"EVENTS_SNAP_AGGREGATE_SHOW_SECONDARY_LABEL_UPDATE\"); //No I18N\nexport const EVENTS_SNAP_AGGREGATE_SHOW_SECONDARY_VALUE_UPDATE = Symbol(\"EVENTS_SNAP_AGGREGATE_SHOW_SECONDARY_VALUE_UPDATE\"); //No I18N\nexport const EVENTS_SNAP_AGGREGATE_SHOW_DIFFERENCE_UPDATE = Symbol(\"EVENTS_SNAP_AGGREGATE_SHOW_DIFFERENCE_UPDATE\"); //No I18N\nexport const EVENTS_SNAP_AGGREGATE_TITLE_UPDATE = Symbol(\"EVENTS_SNAP_AGGREGATE_TITLE_UPDATE\"); //No I18N\nexport const EVENTS_SNAP_AGGREGATE_COLOR_UPDATE = Symbol(\"EVENTS_SNAP_AGGREGATE_COLOR_UPDATE\"); //No I18N\nexport const EVENTS_SNAP_AGGREGATE_ALIGN_TYPE_UPDATE = Symbol(\"EVENTS_SNAP_AGGREGATE_ALIGN_TYPE_UPDATE\"); //No I18N\nexport const EVENTS_SNAP_AGGREGATE_PRIMARY_VALUE_UPDATE = Symbol(\"EVENTS_SNAP_AGGREGATE_PRIMARY_VALUE_UPDATE\"); //No I18N\nexport const EVENTS_SNAP_AGGREGATE_SECONDARY_LABEL_UPDATE = Symbol(\"EVENTS_SNAP_AGGREGATE_SECONDARY_LABEL_UPDATE\"); //No I18N\nexport const EVENTS_SNAP_AGGREGATE_SECONDARY_VALUE_UPDATE = Symbol(\"EVENTS_SNAP_AGGREGATE_SECONDARY_VALUE_UPDATE\"); //No I18N\nexport const EVENTS_SNAP_AGGREGATE_DIFFERENCE_UPDATE = Symbol(\"EVENTS_SNAP_AGGREGATE_DIFFERENCE_UPDATE\"); //No I18N\n\nexport const EVENTS_SNAP_AGGREGATE_FIELD_ORDER_LOAD = Symbol(\"EVENTS_SNAP_AGGREGATE_FIELD_ORDER_LOAD\"); //No I18N\nexport const EVENTS_SNAP_AGGREGATE_FIELD_REORDER = Symbol(\"EVENTS_SNAP_AGGREGATE_FIELD_REORDER\"); //No I18N\n\nexport const EVENTS_SNAP_CHART_TABLE_UPDATE = Symbol(\"EVENTS_SNAP_CHART_TABLE_UPDATE\"); //No I18N\n// export const EVENTS_SNAP_CHART_VIEW_UPDATE = Symbol(\"EVENTS_SNAP_CHART_VIEW_UPDATE\"); //No I18N\nexport const EVENTS_SNAP_CHART_TYPE_UPDATE = Symbol(\"EVENTS_SNAP_CHART_TYPE_UPDATE\"); //No I18N\nexport const EVENTS_SNAP_CHART_FIELDS_META_LOAD = Symbol(\"EVENTS_SNAP_CHART_FIELDS_META_LOAD\"); //No I18N\nexport const EVENTS_SNAP_CHART_FIELD_META_UPDATE = Symbol(\"EVENTS_SNAP_CHART_FIELD_META_UPDATE\"); //No I18N\nexport const EVENTS_SNAP_CHART_FORMULA_UPDATE = Symbol(\"EVENTS_SNAP_CHART_FORMULA_UPDATE\"); //No I18N\nexport const EVENTS_SNAP_CHART_GROUP_BY_FIELD_UPDATE = Symbol(\"EVENTS_SNAP_CHART_GROUP_BY_FIELD_UPDATE\"); //No I18N\nexport const EVENTS_SNAP_CHART_DRAW_WITH_UPDATE = Symbol(\"EVENTS_SNAP_CHART_DRAW_WITH_UPDATE\"); //No I18N\nexport const EVENTS_SNAP_CHART_TITLE_UPDATE = Symbol(\"EVENTS_SNAP_CHART_TITLE_UPDATE\"); //No I18N\nexport const EVENTS_SNAP_CHART_X_AXIS_LABEL_UPDATE = Symbol(\"EVENTS_SNAP_CHART_X_AXIS_LABEL_UPDATE\"); //No I18N\nexport const EVENTS_SNAP_CHART_Y_AXIS_LABEL_UPDATE = Symbol(\"EVENTS_SNAP_CHART_Y_AXIS_LABEL_UPDATE\"); //No I18N\nexport const EVENTS_SNAP_CHART_LEGEND_POSITION_UPDATE = Symbol(\"EVENTS_SNAP_CHART_LEGEND_POSITION_UPDATE\"); //No I18N\nexport const EVENTS_SNAP_CHART_COLOR_THEME_UPDATE = Symbol(\"EVENTS_SNAP_CHART_COLOR_THEME_UPDATE\"); //No I18N\nexport const EVENTS_SNAP_CHART_DATA_UPDATE = Symbol(\"EVENTS_SNAP_CHART_DATA_UPDATE\"); //No I18N\n\nexport const EVENTS_SNAP_RTE_HTML_UPDATE = Symbol(\"EVENTS_SNAP_RTE_HTML_UPDATE\"); //No I18N\n\nexport const EVENTS_SNAP_GRID_TABLE_UPDATE = Symbol(\"EVENTS_SNAP_GRID_TABLE_UPDATE\"); //No I18N\nexport const EVENTS_SNAP_GRID_TABLE_PRIMARY_FIELD_UPDATE = Symbol(\"EVENTS_SNAP_GRID_TABLE_PRIMARY_FIELD_UPDATE\"); //No I18N\n// export const EVENTS_SNAP_GRID_VIEW_UPDATE = Symbol(\"EVENTS_SNAP_GRID_VIEW_UPDATE\"); //No I18N\nexport const EVENTS_SNAP_GRID_FIELD_LOAD = Symbol(\"EVENTS_SNAP_GRID_FIELD_LOAD\"); //No I18N\nexport const EVENTS_SNAP_GRID_FIELD_ORDER_LOAD = Symbol(\"EVENTS_SNAP_GRID_FIELD_ORDER_LOAD\"); //No I18N\nexport const EVENTS_SNAP_GRID_FIELD_RESIZE_UPDATE = Symbol(\"EVENTS_SNAP_GRID_FIELD_RESIZE_UPDATE\"); //No I18N\nexport const EVENTS_SNAP_GRID_FIELDS_HIDE = Symbol(\"EVENTS_SNAP_GRID_FIELDS_HIDE\"); //No I18N\nexport const EVENTS_SNAP_GRID_FIELDS_REORDER = Symbol(\"EVENTS_SNAP_GRID_FIELDS_REORDER\"); //No I18N\nexport const EVENTS_SNAP_GRID_SORT_LIMIT_REACHED_UPDATE = Symbol(\"EVENTS_SNAP_GRID_SORT_LIMIT_REACHED_UPDATE\"); //No I18N\nexport const EVENTS_SNAP_GRID_SORTS_LOAD = Symbol(\"EVENTS_SNAP_GRID_SORTS_LOAD\"); //No I18N\nexport const EVENTS_SNAP_GRID_SORT_UPDATE = Symbol(\"EVENTS_SNAP_GRID_SORT_UPDATE\"); //No I18N\nexport const EVENTS_SNAP_GRID_SORTS_DELETE = Symbol(\"EVENTS_SNAP_GRID_SORTS_DELETE\"); //No I18N\nexport const EVENTS_SNAP_GRID_SORTS_REORDER = Symbol(\"EVENTS_SNAP_GRID_SORTS_REORDER\"); //No I18N\n// export const EVENTS_SNAP_GRID_FILTER_TYPE_UPDATE = Symbol(\"EVENTS_SNAP_GRID_FILTER_TYPE_UPDATE\"); //No I18N\nexport const EVENTS_SNAP_GRID_FILTER_CONDITION_UPDATE = Symbol(\"EVENTS_SNAP_GRID_FILTER_CONDITION_UPDATE\"); //No I18N\nexport const EVENTS_SNAP_GRID_FILTER_LOGICAL_UPDATE = Symbol(\"EVENTS_SNAP_GRID_FILTER_LOGICAL_UPDATE\"); //No I18N\nexport const EVENTS_SNAP_GRID_FILTER_ITEMS_REORDER = Symbol(\"EVENTS_SNAP_GRID_FILTER_ITEMS_REORDER\"); //No I18N\nexport const EVENTS_SNAP_GRID_FILTER_ITEMS_LOAD = Symbol(\"EVENTS_SNAP_GRID_FILTER_ITEMS_LOAD\"); //No I18N\nexport const EVENTS_SNAP_GRID_FILTER_ITEM_UPDATE = Symbol(\"EVENTS_SNAP_GRID_FILTER_ITEM_UPDATE\"); //No I18N\nexport const EVENTS_SNAP_GRID_FILTER_ITEM_DELETE = Symbol(\"EVENTS_SNAP_GRID_FILTER_ITEM_DELETE\"); //No I18N\nexport const EVENTS_SNAP_GRID_TITLE_UPDATE = Symbol(\"EVENTS_SNAP_GRID_TITLE_UPDATE\"); //No I18N\nexport const EVENTS_SNAP_GRID_RECORD_HEIGHT_UPDATE = Symbol(\"EVENTS_SNAP_GRID_RECORD_HEIGHT_UPDATE\"); //No I18N\nexport const EVENTS_SNAP_GRID_RECORD_ORDER_UPDATE = Symbol(\"EVENTS_SNAP_GRID_RECORD_ORDER_UPDATE\"); //No I18N\n\nexport const EVENTS_SNAP_CHART_FILTER_TYPE_UPDATE = Symbol(\"EVENTS_SNAP_CHART_FILTER_TYPE_UPDATE\"); //No I18N\nexport const EVENTS_SNAP_CHART_FILTER_CONDITION_UPDATE = Symbol(\"EVENTS_SNAP_CHART_FILTER_CONDITION_UPDATE\"); //No I18N\nexport const EVENTS_SNAP_CHART_FILTER_LOGICAL_UPDATE = Symbol(\"EVENTS_SNAP_CHART_FILTER_LOGICAL_UPDATE\"); //No I18N\nexport const EVENTS_SNAP_CHART_FILTER_ITEMS_REORDER = Symbol(\"EVENTS_SNAP_CHART_FILTER_ITEMS_REORDER\"); //No I18N\nexport const EVENTS_SNAP_CHART_FILTER_ITEMS_LOAD = Symbol(\"EVENTS_SNAP_CHART_FILTER_ITEMS_LOAD\"); //No I18N\nexport const EVENTS_SNAP_CHART_FILTER_ITEM_UPDATE = Symbol(\"EVENTS_SNAP_CHART_FILTER_ITEM_UPDATE\"); //No I18N\nexport const EVENTS_SNAP_CHART_FILTER_ITEM_DELETE = Symbol(\"EVENTS_SNAP_CHART_FILTER_ITEM_DELETE\"); //No I18N\n\nexport const EVENTS_SNAP_AGGREGATE_FILTER_TYPE_UPDATE = Symbol(\"EVENTS_SNAP_AGGREGATE_FILTER_TYPE_UPDATE\"); //No I18N\nexport const EVENTS_SNAP_AGGREGATE_FILTER_CONDITION_UPDATE = Symbol(\"EVENTS_SNAP_AGGREGATE_FILTER_CONDITION_UPDATE\"); //No I18N\nexport const EVENTS_SNAP_AGGREGATE_FILTER_LOGICAL_UPDATE = Symbol(\"EVENTS_SNAP_AGGREGATE_FILTER_LOGICAL_UPDATE\"); //No I18N\nexport const EVENTS_SNAP_AGGREGATE_FILTER_ITEMS_REORDER = Symbol(\"EVENTS_SNAP_AGGREGATE_FILTER_ITEMS_REORDER\"); //No I18N\nexport const EVENTS_SNAP_AGGREGATE_FILTER_ITEMS_LOAD = Symbol(\"EVENTS_SNAP_AGGREGATE_FILTER_ITEMS_LOAD\"); //No I18N\nexport const EVENTS_SNAP_AGGREGATE_FILTER_ITEM_UPDATE = Symbol(\"EVENTS_SNAP_AGGREGATE_FILTER_ITEM_UPDATE\"); //No I18N\nexport const EVENTS_SNAP_AGGREGATE_FILTER_ITEMS_DELETE = Symbol(\"EVENTS_SNAP_AGGREGATE_FILTER_ITEMS_DELETE\"); //No I18N\n\nexport const EVENTS_SNAP_CHART_FIELDS_TO_PLOT_REORDER = Symbol(\"EVENTS_SNAP_CHART_FIELDS_TO_PLOT_REORDER\"); //No I18N\nexport const EVENTS_SNAP_CHART_FIELDS_TO_PLOT_ORDER_LOAD = Symbol(\"EVENTS_SNAP_CHART_FIELDS_TO_PLOT_ORDER_LOAD\"); //No I18N\nexport const EVENTS_SNAP_CHART_FIELDS_TO_PLOT_LOAD = Symbol(\"EVENTS_SNAP_CHART_FIELDS_TO_PLOT_LOAD\"); //No I18N\nexport const EVENTS_SNAP_CHART_FIELDS_TO_PLOT_UPDATE = Symbol(\"EVENTS_SNAP_CHART_FIELDS_TO_PLOT_UPDATE\"); //No I18N\nexport const EVENTS_SNAP_CHART_FIELDS_TO_PLOT_DELETE = Symbol(\"EVENTS_SNAP_CHART_FIELDS_TO_PLOT_DELETE\"); //No I18N\nexport const EVENTS_SNAP_CHART_FIELDS_TO_PLOT_INSERT = Symbol(\"EVENTS_SNAP_CHART_FIELDS_TO_PLOT_INSERT\"); //No I18N\n\nexport const EVENTS_SNAP_CHART_FIELD_ORDER_LOAD = Symbol(\"EVENTS_SNAP_CHART_FIELD_ORDER_LOAD\"); //No I18N\nexport const EVENTS_SNAP_CHART_FIELD_REORDER = Symbol(\"EVENTS_SNAP_CHART_FIELD_REORDER\"); //No I18N\n\n//Run History\nexport const EVENTS_AUTOMATION_RUN_HISTORY_ORDER_LOAD               = Symbol(\"EVENTS_AUTOMATION_RUN_HISTORY_ORDER_LOAD\"); //No I18N\nexport const EVENTS_AUTOMATION_RUN_HISTORY_ORDER_APPEND             = Symbol(\"EVENTS_AUTOMATION_RUN_HISTORY_ORDER_APPEND\");\nexport const EVENTS_AUTOMATION_RUN_HISTORY_ORDER_PREPEND              = Symbol(\"EVENTS_AUTOMATION_RUN_HISTORY_ORDER_PREPEND\"); //No I18N\nexport const EVENTS_AUTOMATION_RUN_HISTORY_LAST_LOADED_AHR_ID  = Symbol(\"EVENTS_AUTOMATION_RUN_HISTORY_LAST_LOADED_AHR_ID\"); //No I18N\nexport const EVENTS_AUTOMATION_RUN_HISTORY_SHOW_UPGRADE         = Symbol(\"EVENTS_AUTOMATION_RUN_HISTORY_SHOW_UPGRADE\"); //No I18N\nexport const EVENTS_AUTOMATION_RUN_HISTORY_HAS_MORE            = Symbol(\"EVENTS_AUTOMATION_RUN_HISTORY_HAS_MORE\"); //No I18N\nexport const EVENTS_AUTOMATION_RUN_HISTORY_FILTER_STATUS_OPTION_UPDATE         = Symbol(\"EVENTS_AUTOMATION_RUN_HISTORY_FILTER_STATUS_OPTION_UPDATE\"); //No I18N\nexport const EVENTS_AUTOMATION_RUN_HISTORY_SORT_OPTION_UPDATE      = Symbol(\"EVENTS_AUTOMATION_RUN_HISTORY_SORT_OPTION_UPDATE\"); //No I18N\nexport const EVENTS_AUTOMATION_RUN_HISTORY_FILTER_DATE_OPTION_UPDATE     = Symbol(\"EVENTS_AUTOMATION_RUN_HISTORY_FILTER_DATE_OPTION_UPDATE\"); //No I18N\n// VersionHistory\nexport const EVENTS_VERSION_NAME_UPDATE = Symbol(\"EVENTS_VERSION_NAME_UPDATE\"); //No I18\nexport const EVENTS_VERSION_DESCRIPTION_UPDATE = Symbol(\"EVENTS_VERSION_DESCRIPTION_UPDATE\"); //No I18N\nexport const EVENTS_VERSION_HISTORY_INSERT = Symbol(\"EVENTS_VERSION_HISTORY_INSERT\"); //No I18N\nexport const EVENTS_VERSION_HISTORY_LOAD = Symbol(\"EVENTS_VERSION_HISTORY_LOAD\"); //No I18N\nexport const EVENTS_SHOW_LOAD_MORE_VERSIONS = Symbol(\"EVENTS_SHOW_LOAD_MORE_VERSIONS\"); //No I18N\nexport const EVENTS_PREVIEW_VERSION_UPDATE = Symbol(\"EVENTS_PREVIEW_VERSION_UPDATE\"); //No I18N\n","const VALID_EMAIL_ID_REGEX     = /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\nconst VALID_URL_REGEX          = /\\b(?:(?:https?|ftp|file):\\/\\/|www\\.|ftp\\.)?(?:[-a-zA-Z0-9@:%_\\+~#=]{2,256})(?:\\.[a-z]{2,6})(?:[-a-zA-Z0-9@:%_\\+.~#?&//=]*)/i;\nconst VALID_PHONE_NUMBER_REGEX = /^(\\s)*(\\+)?(\\(\\d+\\)\\s)?((\\d)+[\\s\\-\\.\\(\\)]*(\\d))+(\\s)*$/;\nconst NUMBER_FIELD_REGEX       = /^[0-9\\.\\,\\-]+$/;\nconst PERCENT_FIELD_REGEX      = /^[0-9\\.\\,\\%\\-]+$/;\nconst CURRENCY_FIELD_REGEX     = /^[0-9\\.\\,\\$\\₣\\€\\₹\\£\\￡\\¥\\￥\\R\\-]+$/;\nconst PHONE_NUMBER_FIELD_REGEX = /^[0-9\\.\\- \\(\\)]+$/;\n\nconst REPLACE_REGEX_FOR_NUMBER_FIELD       = /\\,/g;                      // changes should be updated here if any changes made in NUMBER_FIELD_REGEX\nconst REPLACE_REGEX_FOR_PERCENT_FIELD      = /[\\,\\%]/g;                  // changes should be updated here if any changes made in PERCENT_FIELD_REGEX\nconst REPLACE_REGEX_FOR_CURRENCY_FIELD     = /[\\,\\$\\₣\\€\\₹\\£\\￡\\¥\\￥\\R]/g; // changes should be updated here if any changes made in CURRENCY_FIELD_REGEX\nconst REPLACE_REGEX_FOR_PHONE_NUMBER_FIELD = /[\\.\\- \\(\\)]/g;             // changes should be updated here if any changes made in PHONE_NUMBER_FIELD_REGEX\n\nconst IP_ADDRESS_REGEX = /\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}/gi;\nconst MINUS            = '-';\nconst DOT              = '.';\n\nexport function isValidEmailID(emailID) {\n    return VALID_EMAIL_ID_REGEX.test(emailID);\n}\n\nexport function isValidURL(URL) {\n    return VALID_URL_REGEX.test(URL);\n}\n\nexport function isValidPhoneNumber(phoneNumber) {\n    return VALID_PHONE_NUMBER_REGEX.test(phoneNumber);\n}\n\nexport function isValidNumberFieldData(data) {\n    return NUMBER_FIELD_REGEX.test(data);\n}\n\nexport function isValidPercentFieldData(data) {\n    return PERCENT_FIELD_REGEX.test(data);\n}\n\nexport function isValidCurrencyFieldData(data) {\n    return CURRENCY_FIELD_REGEX.test(data);\n}\n\nexport function isValidPhoneNumberFieldData(data) {\n    return PHONE_NUMBER_FIELD_REGEX.test(data);\n}\n\nexport function getActualDataForNumberField(data) {\n    const newData                   = data.replaceAll(REPLACE_REGEX_FOR_NUMBER_FIELD, '');\n    const valueAfterMinusSignFilter = applyFilterForMinusSign(newData);\n    return applyFilterForDot(valueAfterMinusSignFilter);\n}\n\nexport function getActualDataForPercentField(data) {\n    const newData                   = data.replaceAll(REPLACE_REGEX_FOR_PERCENT_FIELD, '');\n    const valueAfterMinusSignFilter = applyFilterForMinusSign(newData);\n    return applyFilterForDot(valueAfterMinusSignFilter);\n}\n\nexport function getActualDataForCurrencyField(data) {\n    const newData                   = data.replaceAll(REPLACE_REGEX_FOR_CURRENCY_FIELD, '');\n    const valueAfterMinusSignFilter = applyFilterForMinusSign(newData);\n    return applyFilterForDot(valueAfterMinusSignFilter);   \n}\n\nexport function getActualDataForPhoneNumberField(data) {\n    return data.replaceAll(REPLACE_REGEX_FOR_PHONE_NUMBER_FIELD, '');\n}\n\nfunction applyFilterForMinusSign(data) {\n    if(data === MINUS) {\n        return '';\n    }\n\n    // positive data\n    const minusIndex = data.indexOf(MINUS);\n    if(minusIndex <= -1) {\n        return data;\n    }\n\n    // only one minus should be present and it should be in 0th index\n    const minusLastIndex = data.lastIndexOf(MINUS);\n    if(minusIndex === minusLastIndex && minusIndex === 0) {\n        return data;\n    }\n\n    return '';\n}\n\nfunction applyFilterForDot(data) {\n    const dotIndex = data.indexOf(DOT);\n    if(dotIndex <= -1) {\n        return data;\n    }\n\n    // only one dot is present\n    const dotLastIndex = data.lastIndexOf(DOT);\n    if(dotIndex === dotLastIndex) {\n        return data;\n    }\n\n    // more than one dot is present\n    const iterator = data.matchAll(/\\./g);\n    let count = 0;\n    while(true) {\n        const iteratorNext = iterator.next();\n        const secondIndex  = iteratorNext.value.index;\n        ++count;\n        if(count === 2) {\n            const substringedData = data.substring(0, secondIndex);\n            return substringedData;\n        }\n    }\n}\n\nexport function getTextAndLinkFromTextFieldData(textFieldData) {\n    const totalMatches = [...textFieldData.matchAll(/\\b((\\d{10})|(\\d{3}\\-\\d{3}\\-\\d{4})|(\\d{3}\\s\\d{3}\\-\\d{4})|(\\d{3}\\s\\d{3}\\s\\d{4})|(\\d{3}\\.\\d{3}\\.\\d{4})|(\\(\\d{3}\\)\\s\\d{3}\\-\\d{4}))\\b|(\\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,}\\b)|((((ht)(tps):\\/\\/|(ht)(tp):\\/\\/|file:\\/\\/\\/|mailto:|tel:|ftp:\\/\\/)(?:[\\-;:&=\\+\\$,\\w]+@)?[A-Za-z0-9:\\.\\-]+|(?:www\\.|[\\-;:&=\\+\\$,\\w]+@)[A-Za-z0-9\\.\\-]+)((?:\\/[\\+~%\\/\\.\\w\\-_]*)?\\??(?:[\\-\\+=&;%@\\.\\w_]*)#?(?:[\\.\\!\\/\\\\\\w\\-]*))?)|(\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3})|([\\w\\-]{3,}\\.[\\w]{2,}(\\.[\\w]+)?)/gi)];  // any changes made here should be reflected in the below three regex too.. Also check once the regexes present in the beginning of this file (first line)\n\n    if(totalMatches.length) {\n        let rightString         = textFieldData;\n        let valueToBeSubtracted = 0;\n\n        const resultArray = [];\n        totalMatches.forEach(matchValueArray => {\n            const matchValue        = matchValueArray[0];\n            const matchIndex        = matchValueArray.index;\n            const valueForComparing = matchIndex - valueToBeSubtracted;\n    \n            let leftString = rightString.substring(0, valueForComparing);\n            resultArray.push({text: leftString});\n\n            const isPhoneNumber = matchValue.match(/\\b((\\d{10})|(\\d{3}\\-\\d{3}\\-\\d{4})|(\\d{3}\\s\\d{3}\\-\\d{4})|(\\d{3}\\s\\d{3}\\s\\d{4})|(\\d{3}\\.\\d{3}\\.\\d{4})|(\\(\\d{3}\\)\\s\\d{3}\\-\\d{4}))\\b/gi);\n            const isEmailID     = matchValue.match(/(\\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,}\\b)/gi);\n            const isURL         = matchValue.match(/((((ht)(tps):\\/\\/|(ht)(tp):\\/\\/|file:\\/\\/\\/|mailto:|tel:|ftp:\\/\\/)(?:[\\-;:&=\\+\\$,\\w]+@)?[A-Za-z0-9:\\.\\-]+|(?:www\\.|[\\-;:&=\\+\\$,\\w]+@)[A-Za-z0-9\\.\\-]+)((?:\\/[\\+~%\\/\\.\\w\\-_]*)?\\??(?:[\\-\\+=&;%@\\.\\w_]*)#?(?:[\\.\\!\\/\\\\\\w\\-]*))?)|(\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3})|([\\w\\-]{3,}\\.[\\w]{2,}(\\.[\\w]+)?)/gi);\n\n            if(isPhoneNumber) {\n                resultArray.push({tel: matchValue});\n            }else if(isEmailID) {\n                resultArray.push({email: matchValue});\n            }else if(isURL) {\n                // check matchValue variable is an IP address as well as decimal numbers should not come as link\n                const hasOnlyNumbersAndDots = hasStringContainsOnlyNumbersAndDots(matchValue);\n                if(hasOnlyNumbersAndDots) {\n                    const isIPAddress = matchValue.match(IP_ADDRESS_REGEX);\n                    if(isIPAddress) {\n                        leftString = ' ';\n                    } else { // it is a decimal number.. just add some character other than space to leftString variable to make it as text..\n                        leftString = 'a';  // No I18N\n                    }\n                }\n\n                // eg: \"https://www.smartsuite.com/features/calendar-view\" it should be a link\n                if(!leftString) {\n                    resultArray.push({url: matchValue});\n                }else { // eg: \"dmfgndfnhttps://www.smartsuite.com/features/calendar-view\" it should not be a link\n                    const isSpaceCharacter = leftString[leftString.length - 1].match(/\\s/gi);\n                    isSpaceCharacter ? resultArray.push({url: matchValue}) : resultArray.push({text: matchValue});\n                }\n            }\n\n            const matchValueLength = matchValue.length;\n            rightString            = rightString.substring(valueForComparing + matchValueLength, rightString.length);\n            valueToBeSubtracted    = matchIndex + matchValueLength;\n        });\n        resultArray.push({text: rightString});\n        return resultArray;\n    }\n\n    return [{text: textFieldData}];\n}\n\nfunction hasStringContainsOnlyNumbersAndDots(inputString) {\n    const onlyNumbersString = inputString.replaceAll('\\.', '');\n    const emptyString       = onlyNumbersString.replaceAll(/\\d/g, '');\n    return emptyString === '';\n}\n","import { ADD_FIELD_SUPPORTED_HOUR_CYCLES_2 } from \"./Constants/AddFieldConstants.js\";\nimport { HASH, KEYWORD_EXTRACT_COLOR, MULTISELECT_COLOR } from \"./Constants/CssClassNamesForUI.js\";\nimport { EVENTS_ATTACHMENTS_WORKDRIVE_PREVIEW } from \"./Constants/EventNames.js\";\nimport { AUTO_NUMBER, CHECKBOX, COLLABORATOR_CLIENT, CREATED_BY, CREATED_TIME, CURRENCY, DATE_TIME, EMAIL, FORMULA, LINK, LOOKUP, MODIFIED_BY, MODIFIED_TIME, MULTIPLE_SELECTION, NUMBER, PERCENT, PHONE_NUMBER, RATING, SINGLE_SELECTION, TEXT } from \"./Constants/FieldTypes.js\";\nimport { CURRENCY as FORMULA_CURRENCY, DATE as FORMULA_DATE, NUMBER as FORMULA_NUMBER, PERCENT as FORMULA_PERCENT, FORMULA_RETURN_TYPE_EMPTY, TEXT as FORMULA_TEXT } from \"./Constants/FormulaReturnTypes.js\";\nimport { SUCCESS } from \"./Constants/FormulaStatusConstants.js\";\n// import { GROUP_INLINE } from \"./Dom/Middle/AddFieldPanel/Components/FormulaRevamp/FormulaEditorUtilities.js\";\n// import { FormulaEditorFieldNode } from \"./Dom/Middle/AddFieldPanel/Components/FormulaRevamp/FormulaEditorFieldNode.js\";\n// import { timeFormatterForDateField } from \"./Utility/TimeFormatterUtilityForDateField.js\";\n// import { dateFormatterForDateField } from \"./Utility/DateFormatterUtilityForDateField.js\";\nimport { getBubbleNodeInnerCircleColor, getBubbleNodeOuterCircleColor, getUltraLightThemeColor } from \"./Constants/ProductThemeColors.ts\";\nimport { getTextAndLinkFromTextFieldData } from \"./Constants/RegexValidator.js\";\nimport { decodeToAbsoluteDate, getDateStringToBeRendered, getTimeStringToBeRendered } from \"./DateComponentEncoderDecoder.ts\";\nimport { Response } from \"./Parser/Pubsub.js\";\nimport { State as TableState } from \"./State/LayoutState.js\";\nimport { getTemplateByID } from \"./TemplatesForAll.js\";\nimport { decorateLegacyLinkOptionDom, decorateLinkChipsFromValueHolder } from \"./Utility/LinkChipCountUtility.ts\";\nimport { encodeLinkValueFromValueHolder } from \"./Utility/LinkFieldCompactUtility.ts\";\n\n    export const ZSGrid        = (globalThis.ZSGrid)      || (globalThis.ZSGrid      = {});\n    const ZSClass       = (globalThis.ZSClass)     || (globalThis.ZSClass     = {});\n    const ZSConstants   = (globalThis.ZSConstants) || (globalThis.ZSConstants = {});\n\n    ZSClass.Layer={};\n\n    const ZSInterface      = (ZSClass.Layer.Interface)         || (ZSClass.Layer.Interface         = {});\n    const ZSModules        = (ZSClass.Layer.Modules)           || (ZSClass.Layer.Modules      = {});\n    const ZSMain           = (ZSModules.Main)                  || (ZSModules.Main      = {});\n    const ZSOle            = (ZSClass.Layer.Ole)               || (ZSClass.Layer.Ole               = {});\n\n    const CG            = globalThis.CraftGrid;\n    const Engine        = globalThis.Engine;\n\n    const Classes       = CG.Classes;\n    const Constants     = CG.Constants;\n    const Cells         = CG.Cells;\n    const Headers       = CG.Headers;\n    const Nodes         = CG.Nodes;\n    const Panes         = CG.Panes;\n    const Utility       = CG.Utility;\n    const Layers        = CG.Layers;\n    const MultiImageNode = Nodes.MultiImageNode;\n    const TablesMultiImage     = Nodes.TablesMultiImage;\n\n    Constants.MouseDown.longPress = 200;\n\n\n    ZSGrid.UIPaneManager          = CG.PaneManager;\n    ZSGrid.UIGrid                 = CG.Grid;\n    ZSGrid.XRegion                = CG.XRegion;\n    ZSGrid.YRegion                = CG.YRegion;\n\n    ZSGrid.Cell                   = Cells.Cell;\n    ZSGrid.CXColumnCell           = Cells.CXColumnCell;\n    ZSGrid.CXRowCell              = Cells.CXRowCell;\n\n    ZSGrid.RowHeader              = Headers.RowHeader;\n    ZSGrid.ColumnHeader           = Headers.ColumnHeader;\n\n    ZSGrid.Font                   = Utility.Font;\n    ZSGrid.Line                   = Classes.Line;\n    ZSGrid.Word                   = Classes.Word;\n    ZSGrid.getLineHeight          = Utility.Font.getLineHeight;\n    ZSGrid.TextNode               = Nodes.TextNode;\n\n    ZSGrid.Nodes                  = Nodes;\n    ZSGrid.Row                    = Classes.Row;\n    ZSGrid.ScrollBar              = Classes.ScrollBar;\n    ZSGrid.ScrollUtil             = Utility.ScrollUtil;\n\n    ZSGrid.Pane                   = Panes.Pane;\n    ZSGrid.UIColumnPane           = Panes.UIColumnPane;\n    ZSGrid.UIDummyPane            = Panes.UIDummyPane;\n    ZSGrid.UIHorizontalScrollPane = Panes.UIHorizontalScrollPane;\n    ZSGrid.UIHoriScrollPane       = Panes.UIHoriScrollPane;\n    ZSGrid.UIPane                 = Panes.UIPane;\n    ZSGrid.UIRowPane              = Panes.UIRowPane;\n    ZSGrid.UIFooterPane           = Panes.UIFooterPane;\n    ZSGrid.UISelectAllPane        = Panes.UISelectAllPane;\n    ZSGrid.UIVerticalScrollPane   = Panes.UIVerticalScrollPane;\n    ZSGrid.UIVertiScrollPane      = Panes.UIVertiScrollPane;\n    ZSGrid.GridLogger             = Utility.GridLogger;\n    ZSClass.UICanvas              = Classes.UICanvas;\n    ZSGrid.UICanvas               = Classes.UICanvas;\n\n    ZSInterface.control           = Layers.Interface.control;\n    ZSInterface.implement         = Layers.Interface.implement;\n\n    ZSMain.Layer                  = Layers.Layer;\n    ZSMain.Controller             = Layers.Controller;\n    ZSMain.StateControl           = Layers.StateControl;\n    ZSMain.NetworkControl         = Layers.NetworkControl;\n    ZSMain.ViewControl            = Layers.ViewControl;\n    ZSMain.Router                 = Layers.Router;\n    ZSOle.Controller              = Layers.Controller;\n\n    ZSClass.UILayer               = Layers.UILayer;\n    ZSClass.UILayerElement        = Layers.UILayerElement;\n    ZSGrid.Font                   = Utility.Font.FontSupport;\n\n    ZSClass.Layer.CellSelection   = CG.Selection.CellSelection;\n    ZSClass.Layer.RangeSelection  = CG.Selection.RangeSelection;\n    ZSClass.Layer.Movement        = CG.Selection.Movement;\n\n    ZSGrid.FusionInterface       = Nodes.Fusion.Interface;\n    ZSGrid.RatioNode             = Nodes.Fusion.FusionRatioNode;\n    ZSGrid.TextNode              = Nodes.Fusion.TextNode;\n    ZSGrid.FusionNode            = Nodes.Fusion.FusionNode;\n    ZSGrid.RatingNode            = Nodes.Fusion.RatingNode;\n    ZSGrid.CheckBoxNode          = Nodes.Fusion.CheckBoxNode;\n    ZSGrid.FusionBubbleNode      = Nodes.Fusion.BubbleNode;\n    ZSGrid.SVG                   = Nodes.Fusion.SVG;\n    ZSGrid.NumberNode            = Nodes.NumberNode;\n    ZSGrid.BubbleNode            = Nodes.BubbleNode;\n    ZSGrid.Bubble                = Nodes.Bubble;\n    ZSGrid.FusionHyperLinkNode   = Nodes.Fusion.FusionHyperLinkNode; // TODO.. export ZSGrid.. Using in es6/DecorateLink.js\n    ZSGrid.AccountingNode        = Nodes.Fusion.AccountingNode;\n    ZSGrid.deBounce              = CG.Utility.deBounce;\n    ZSGrid.HitRegionListener     = CG.HitRegionListener;\n    ZSGrid.FusionSetNode         = Nodes.Fusion.FusionSetNode;\n    ZSGrid.FusionBubbleWithColor = Nodes.Fusion.BubbleWithColor;\n    ZSGrid.FusionBubbleHyperLinkNode = Nodes.Fusion.BubbleHyperLinkNode; // TODO.. export ZSGrid.. Using in es6/DecorateLink.js\n    ZSGrid.FusionBubbleWithImage     = Nodes.Fusion.BubbleWithImage;\n\n    ZSGrid.ColorUtil           = {};\n    ZSGrid.ColorUtil.getColor  = Utility.getColor;\n\n    ZSGrid.Editors = Object.assign({}, globalThis.Editors);\n\n    ZSGrid.FieldTypeComponents     = globalThis.FieldTypeComponents;\n    ZSGrid.dateFormatter           = CG.Utility.dateFormatter; // TODO.. export ZSGrid.. Using in es6/SummarisedData.js\n    ZSGrid.timeFormatter           = CG.Utility.timeFormatter; // TODO.. export ZSGrid.. Using in es6/SummarisedData.js\n    ZSGrid.numberFormatter         = CG.Utility.numberFormatter; // TODO.. export ZSGrid.. Using in es6/SummarisedData.js\n    ZSGrid.percentFormatter        = CG.Utility.percentFormatter; // TODO.. export ZSGrid.. Using in es6/SummarisedData.js\n    ZSGrid.currencyFormatter       = CG.Utility.currencyFormatter; // TODO.. export ZSGrid.. Using in es6/SummarisedData.js\n    ZSGrid.CURRENCY_POSITION       = CG.Utility.CURRENCY_POSITION;\n    ZSGrid.phoneNumberFormatter    = CG.Utility.phoneNumberFormatter;  // TODO.. export ZSGrid.. Using in es6/SummarisedData.js\n    ZSGrid.autoNumberFormatter     = CG.Utility.autoNumberFormatter;  // TODO.. export ZSGrid.. Using in es6/SummarisedData.js\n    ZSGrid.singleLineTextFormatter = CG.Utility.singleLineTextFormatter;  // TODO.. export ZSGrid.. Using in es6/SummarisedData.js\n\n    const autoNumber            = globalThis.FieldTypeComponents.AutoNumber;\n    const createdTime           = globalThis.FieldTypeComponents.CreatedTime;\n    const createdBy             = globalThis.FieldTypeComponents.CreatedBy;\n    const modifiedBy            = globalThis.FieldTypeComponents.ModifiedBy;\n    const checkbox              = globalThis.FieldTypeComponents.Checkbox;\n    const collaboratorSS        = globalThis.FieldTypeComponents.CollaboratorSS;\n    const collaboratorMS        = globalThis.FieldTypeComponents.CollaboratorMS;\n    const currency              = globalThis.FieldTypeComponents.Currency;\n    const date                  = globalThis.FieldTypeComponents.Date;\n    const email                 = globalThis.FieldTypeComponents.Email;\n    const findAnItem            = globalThis.FieldTypeComponents.FindAnItem;\n    const formula               = globalThis.FieldTypeComponents.Formula;\n    const modifiedTime          = globalThis.FieldTypeComponents.ModifiedTime;\n    const multiSelect           = globalThis.FieldTypeComponents.MultiSelect;\n    const number                = globalThis.FieldTypeComponents.Number;\n    const percent               = globalThis.FieldTypeComponents.Percent;\n    const phoneNumber           = globalThis.FieldTypeComponents.PhoneNumber;\n    const attachment            = globalThis.FieldTypeComponents.Attachment;\n    const singleSelect          = globalThis.FieldTypeComponents.SingleSelect;\n    const linkFieldMultiSelect  = globalThis.FieldTypeComponents.LinkFieldMultiSelect;\n    const linkFieldSingleSelect = globalThis.FieldTypeComponents.LinkFieldSingleSelect;\n    const lookup                = globalThis.FieldTypeComponents.Lookup;\n    const rating                = globalThis.FieldTypeComponents.Rating;\n    const singleLineText        = globalThis.FieldTypeComponents.SingleLineText;\n    const url                   = globalThis.FieldTypeComponents.URL;\n    const KeywordExtract        = globalThis.FieldTypeComponents.KeywordExtract;\n\n    const MULTI_SELECT_COLOR    = 'ffffff'; // No I18N\n    const CSS_VARIABLES         = {RATING: '--ratingChecked', SINGLE_SELECT_OVAL: '--ssoval', SINGLE_SELECT_DOT: '--ssdot'};// No I18N\n    const TABLES_URL            = \"https://tables.zoho.com\";// No I18N\n    const TIME_ZONES            = {KOLKATA: 'Asia/Kolkata', LOS_ANGELES: 'America/LOS_ANGELES'};// No I18N\n    const DATE_CONSTANTS = {\n        backgroundColor : '--dateBackgroundColor',// No I18N\n        color           : '--dateColor',// No I18N\n        fontFamily      : '--dateFontFamily',// No I18N\n        fontSize        : '--dateFontSize',// No I18N\n        fontWeight      : '--dateFontWeight',// No I18N\n        fontStyle       : '--dateFontStyle',// No I18N\n        textDecoration  : '--dateTextDecoration',// No I18N\n        textAlign       : '--dateTextAlign',// No I18N\n        alignItems      : '--dateAlignItems'// No I18N\n    };\n\n    const MAILTO = 'mailto:';  //NO I18N\n\tconst TEL    = 'tel:';     //NO I18N\n\n    const ANONYMOUS_USER = globalThis.Table.Constants.JSMsg['UI.tables.anonymousUser']; // No I18N\n\n    Constants.INDENT_SPACING           = 1.3;\n    Constants.Cell.ellipsis.isEllipsis = true;\n    CraftGrid.Nodes.TablesMultiImage.setDummyImage('../../../images/Portal/Griddefault.jpg'); //No I18N\n\n\n    // WORKING STARTS...\n    ZSGrid.FusionBubbleNode.prototype.colorPercent                = 1; // ms\n    ZSGrid.FusionBubbleWithColor.prototype.colorPercent           = 1; // ss\n    ZSGrid.FusionBubbleWithImage.prototype.colorPercent = 1; // collab ms, collab ss, created by, modified by\n\n    ZSGrid.FusionBubbleWithImage.prototype.getLightColor = function() {\n        // return CraftGrid.Utility.getColor(\"ffffff\", this.getBackgroundColor().replace(\"#\", \"\"), 1); //No I18N\n        return this.backgroundColor;\n    }\n\n    ZSGrid.FusionBubbleWithImage.prototype.getDarkColor = function() {\n        // return CraftGrid.Utility.getColor(\"ffffff\", this.getBackgroundColor().replace(\"#\", \"\"), 1); //No I18N\n        return this.backgroundColor;\n    }\n\n    ZSGrid.FusionBubbleWithImage.prototype.getBackgroundColor = () => {\n        // return getBackgroundColor();\n        return this.backgroundColor;\n    }\n    \n    //User bubble radius set\n    ZSGrid.FusionBubbleWithImage.prototype.imageRadius=9.5\n    // WORKING ENDS...\n\n\n\n    CraftGrid.Nodes.TablesMultiImage.prototype.borderColor = \"#dadada\"; // No I18N\n\n    let timeoutID           = null;\n    const DEBOUNCE_TIME     = 1000;\n\n    autoNumber.PrimaryReadOnlyComponent.prototype.getData = function() {\n        return this.valueHolder;\n    }\n\n    date.PrimaryReadOnlyComponent  = date.SecondaryReadOnlyComponent;\n    date.PrimaryReadWriteComponent = date.SecondaryReadWriteComponent;\n\n    function getAutoFitWidth(interacter, col) {\n        const maxRow = interacter.getMaxRow();\n        let maxWidth = 0;\n        for (let i = 0; i < maxRow; i++) {\n            const cell    = interacter.getCell(i, col);\n            const cellWidth = Utility.getCellWidth(cell);\n            maxWidth = Math.max(maxWidth, cellWidth);\n        }\n        return Math.ceil(maxWidth);\n    }\n    Utility.BindForSingleCopy = (\n        interacter,\n        startRow,\n        startCol,\n        endRow,\n        endCol,\n        isRowHeaderRequired,\n        isColHeaderRequired,\n        parser,\n        callback\n    ) => {\n\n        function doCopy() {\n            interacter.getCell = function(row, col){\n                const fieldID = this.getFieldID(col);\n                const recordID = this.getRecordID(row);\n                return parser.Cells[recordID] && parser.Cells[recordID][fieldID];\n            }\n            Utility.copyToClipBoardSingle(interacter, startRow, startCol, endRow, endCol, isRowHeaderRequired, isColHeaderRequired, callback);\n            // document.removeEventListener('copy', doCopy);\n            // document.removeEventListener('cut', doCopy);\n        }\n        doCopy();\n        // document.addEventListener('copy', doCopy);\n        // document.addEventListener('cut', doCopy);\n    }\n\n    autoNumber.ValueHolder.prototype.getType = () => {\n        return AUTO_NUMBER;\n    }\n\n    checkbox.ValueHolder.prototype.getType = () => {\n        return CHECKBOX;\n    }\n\n    collaboratorSS.ValueHolder.prototype.getType = () => {\n        return COLLABORATOR_CLIENT;\n    }\n\n    collaboratorMS.ValueHolder.prototype.getType = () => {\n        return COLLABORATOR_CLIENT;\n    }\n\n    collaboratorSS.ValueHolderForForm.prototype.getType = () => {\n        return COLLABORATOR_CLIENT;\n    }\n\n    collaboratorMS.ValueHolderForForm.prototype.getType = () => {\n        return COLLABORATOR_CLIENT;\n    }\n\n    createdTime.ValueHolder.prototype.getType = () => {\n        return CREATED_TIME;\n    }\n\n    createdBy.ValueHolder.prototype.getType = () => {\n        return CREATED_BY;\n    }\n\n    modifiedBy.ValueHolder.prototype.getType = () => {\n        return MODIFIED_BY;\n    }\n\n    currency.ValueHolder.prototype.getType = () => {\n        return CURRENCY;\n    }\n\n    date.ValueHolder.prototype.getType = () => {\n        return DATE_TIME;\n    }\n\n    email.ValueHolder.prototype.getType = () => {\n        return EMAIL;\n    }\n\n    formula.ValueHolder.prototype.getType = () => {\n        return FORMULA;\n    }\n\n    linkFieldMultiSelect.ValueHolder.prototype.getType = () => {\n        return LINK;\n    }\n\n    lookup.ValueHolder.prototype.getType = () => {\n        return LOOKUP;\n    }\n\n    // rollup.ValueHolder.prototype.getType = function() {\n    //     return ROLLUP;\n    // }\n\n    linkFieldSingleSelect.ValueHolder.prototype.getType = () => {\n        return LINK;\n    }\n\n    multiSelect.ValueHolder.prototype.getType = () => {\n        return MULTIPLE_SELECTION;\n    }\n\n    multiSelect.ValueHolderForForm.prototype.getType = () => {\n        return MULTIPLE_SELECTION;\n    }\n\n    modifiedTime.ValueHolder.prototype.getType = () => {\n        return MODIFIED_TIME;\n    }\n\n    number.ValueHolder.prototype.getType = () => {\n        return NUMBER;\n    }\n\n    percent.ValueHolder.prototype.getType = () => {\n        return PERCENT;\n    }\n\n    phoneNumber.ValueHolder.prototype.getType = () => {\n        return PHONE_NUMBER;\n    }\n\n    rating.ValueHolder.prototype.getType = () => {\n        return RATING;\n    }\n\n    rating.ValueHolder.prototype.getType = () => {\n        return RATING;\n    }\n\n    singleLineText.ValueHolder.prototype.getType = () => {\n        return TEXT;\n    }\n\n    singleSelect.ValueHolder.prototype.getType = () => {\n        return SINGLE_SELECTION;\n    }\n\n    singleSelect.ValueHolderForForm.prototype.getType = () => {\n        return SINGLE_SELECTION;\n    }\n\n    url.ValueHolder.prototype.getType = () => {\n        return URL;\n    }\n\n    singleLineText.ValueHolder.prototype.getTextAndLinkFromTextFieldData = function(textFieldValue) {\n        return getTextAndLinkFromTextFieldData(textFieldValue);\n    }\n\n    formula.ValueHolder.prototype.getTextAndLinkFromTextFieldData = singleLineText.ValueHolder.prototype.getTextAndLinkFromTextFieldData;\n\n    email.RecordViewReadWriteComponent.prototype.addClass = function(className) {\n        this.dom.classList.add(className);\n    }\n\n    email.RecordViewReadWriteComponent.prototype.removeClass = function(className) {\n        this.dom.classList.remove(className);\n    }\n\n    url.RecordViewReadWriteComponent.prototype.addClass    = email.RecordViewReadWriteComponent.prototype.addClass;\n    url.RecordViewReadWriteComponent.prototype.removeClass = email.RecordViewReadWriteComponent.prototype.removeClass;\n\n    collaboratorSS.GridReadOnlyComponent.prototype.getComponentBoundingClientRect = function() { // TODO: Once CG build is updated in master, remove this line\n        return this.dom.getBoundingClientRect();\n    }\n\n    collaboratorSS.GridReadWriteComponent.prototype.getComponentBoundingClientRect = collaboratorSS.GridReadOnlyComponent.prototype.getComponentBoundingClientRect // TODO: Once CG build is updated in master, remove this line\n    singleSelect.PrimaryReadOnlyComponent.prototype.getComponentBoundingClientRect = function() { // TODO: Once CG build is updated in master, remove this line\n        return this.dom.getBoundingClientRect();\n    }\n\n    singleSelect.PrimaryReadWriteComponent.prototype.getComponentBoundingClientRect = singleSelect.PrimaryReadOnlyComponent.prototype.getComponentBoundingClientRect; // TODO: Once CG build is updated in master, remove this line\n\n    createdBy.ValueHolder.prototype.decorateCell = function(cell) {\n        if (this.value) {\n            var styles = this.styles;\n            var color = this.collaboratorDS.getColor();\n\n            var userName, userImageURL;\n            if (this.collaboratorDS.isActiveUser(this.value)) {\n                userName = this.collaboratorDS.getActiveUserName(this.value);\n                userImageURL = this.collaboratorDS.getActiveUserImageURL(this.value);\n            } else if (this.collaboratorDS.isInactiveUser(this.value)) {\n                userName = this.collaboratorDS.getInactiveUserName(this.value);\n                userImageURL = this.collaboratorDS.getInactiveUserImageURL(this.value);\n            } else if (this.collaboratorDS.isRemovedUser(this.value)) {\n                userName = this.collaboratorDS.getRemovedUserName(this.value);\n                !userName && (userName = this.getAnonymousUserName());\n                userImageURL = this.collaboratorDS.getRemovedUserImageURL(this.value);\n            } else if (this.collaboratorDS.isAnonymousUser(this.value)) {\n                userName = ANONYMOUS_USER;\n                userImageURL = this.collaboratorDS.getAnonymousUserImageURL(this.value);\n            }  else if (this.collaboratorDS.isSystemUser(this.value)) {\n                userName = this.collaboratorDS.getSystemUserName(this.value);\n                userImageURL = this.collaboratorDS.getSystemUserImageURL(this.value);\n            }\n\n            var self = this;\n            var fusion = new ZSGrid.FusionNode();\n            var node   = new ZSGrid.FusionBubbleWithImage(userName, styles.Font, styles.Size, 'transparent', color, '#000', userImageURL, function () {//No I18N\n                self.callback && self.callback();\n            });\n            fusion.addNode(node);\n            cell.addInForeGroundStack(fusion);\n        }\n    }\n    modifiedBy.ValueHolder.prototype.decorateCell = function(cell) {\n        if (this.value) {\n            var styles = this.styles;\n            var color = this.collaboratorDS.getColor();\n\n            var userName, userImageURL;\n            if (this.collaboratorDS.isActiveUser(this.value)) {\n                userName = this.collaboratorDS.getActiveUserName(this.value);\n                userImageURL = this.collaboratorDS.getActiveUserImageURL(this.value);\n            } else if (this.collaboratorDS.isInactiveUser(this.value)) {\n                userName = this.collaboratorDS.getInactiveUserName(this.value);\n                userImageURL = this.collaboratorDS.getInactiveUserImageURL(this.value);\n            } else if (this.collaboratorDS.isRemovedUser(this.value)) {\n                userName = this.collaboratorDS.getRemovedUserName(this.value);\n                !userName && (userName = this.getAnonymousUserName());\n                userImageURL = this.collaboratorDS.getRemovedUserImageURL(this.value);\n            } else if (this.collaboratorDS.isAnonymousUser(this.value)) {\n                userName = ANONYMOUS_USER;\n                userImageURL = this.collaboratorDS.getAnonymousUserImageURL(this.value);\n            } else if (this.collaboratorDS.isSystemUser(this.value)) {\n                userName = this.collaboratorDS.getSystemUserName(this.value);\n                userImageURL = this.collaboratorDS.getSystemUserImageURL(this.value);\n            }\n\n            var self = this;\n            var fusion = new ZSGrid.FusionNode();\n            var node   = new ZSGrid.FusionBubbleWithImage(userName, styles.Font, styles.Size, 'transparent', color, '#000', userImageURL, function () {//No I18N\n                self.callback && self.callback();\n            });\n            fusion.addNode(node);\n            cell.addInForeGroundStack(fusion);\n        }\n    }\n\n    date.ValueHolder.prototype.getDate = function() {\n        const absoluteDate = decodeToAbsoluteDate(this.getTimeStamp());\n        if(!absoluteDate) {\n            return '';\n        }\n        return getDateStringToBeRendered(absoluteDate, this.getLocale(), this.getDateFormat());\n    }\n\n    date.ValueHolder.prototype.getTime = function() {\n        const absoluteDate = decodeToAbsoluteDate(this.getTimeStamp());\n        if(!absoluteDate) {\n            return '';\n        }\n        return getTimeStringToBeRendered(absoluteDate, this.getLocale(), this.getTimeFormat(), this.getHourCycle());\n    }\n\n    createdTime.ValueHolder.prototype.getDate = date.ValueHolder.prototype.getDate;\n    createdTime.ValueHolder.prototype.getTime = date.ValueHolder.prototype.getTime;\n    modifiedTime.ValueHolder.prototype.getDate = date.ValueHolder.prototype.getDate;\n    modifiedTime.ValueHolder.prototype.getTime = date.ValueHolder.prototype.getTime;\n\n    date.ValueHolder.prototype.decorateCell = function(cell) {\n        var styles    = this.getStyles();\n        var date      = this.getDate();\n        var hourCycle = this.getHourCycle();\n        var fusion    = new ZSGrid.FusionNode();\n        var node;\n        if (!hourCycle) {\n            if(date) {\n                node = new ZSGrid.TextNode(date, styles.Bold, styles.Italic, styles.Underline, styles.StrikeThrough, styles.Overline, styles.Color, styles.Size, styles.Font);\n                fusion.addNode(node);\n            }\n        }else {\n            var time = this.getTime();\n            if(date && time) {\n                node = new ZSGrid.TextNode(date + \"   \" + time, styles.Bold, styles.Italic, styles.Underline, styles.StrikeThrough, styles.Overline, styles.Color, styles.Size, styles.Font);\n                fusion.addNode(node);\n            }\n        }\n        cell.addInForeGroundStack(fusion);\n    }\n\n    createdTime.ValueHolder.prototype.decorateCell  = date.ValueHolder.prototype.decorateCell;\n    modifiedTime.ValueHolder.prototype.decorateCell = date.ValueHolder.prototype.decorateCell;\n\n    date.DateComponentForDateField.prototype.setTimeStamp = function(timeStamp) {\n        this.timeStamp = timeStamp;\n    }\n\n    date.SecondaryReadOnlyComponent.prototype.setData = function(ValueHolder) {\n        var timeStamp  = Number(ValueHolder.getTimeStamp());\n        var dateFormat = ValueHolder.getDateFormat();\n        var timeFormat = ValueHolder.getTimeFormat();\n        var hourCycle  = ValueHolder.getHourCycle();\n        if(!timeStamp) {\n            if(!hourCycle) {\n                this.setDate(dateFormat);\n            }else {\n                this.setDate(dateFormat + this.delimiter + timeFormat);\n            }\n        }else {\n            if(!hourCycle) {\n                var date = ValueHolder.getDate();\n                this.setDate(date);\n            }else {\n                var date = ValueHolder.getDate();\n                var time = ValueHolder.getTime();\n                this.setDate(date + this.delimiter + time);\n            }\n        }\n        this.valueHolder = ValueHolder;\n        this.timeStamp   = timeStamp;\n    }\n\n    date.SecondaryReadWriteComponent.prototype.setData = date.SecondaryReadOnlyComponent.prototype.setData;\n\n    date.DualDateSecondaryReadOnlyComponent.prototype.setData = function(ValueHolders) {\n        var fromValueHolder = ValueHolders[0];\n        var fromTimeStamp   = Number(fromValueHolder.getTimeStamp());\n        var fromDateFormat  = fromValueHolder.getDateFormat();\n        var fromTimeFormat  = fromValueHolder.getTimeFormat();\n        var fromHourCycle   = fromValueHolder.getHourCycle();\n\n        var toValueHolder = ValueHolders[1];\n        var toTimeStamp   = Number(toValueHolder.getTimeStamp());\n        var toDateFormat  = toValueHolder.getDateFormat();\n        var toTimeFormat  = toValueHolder.getTimeFormat();\n        var toHourCycle   = toValueHolder.getHourCycle();\n\n        var fromDate, toDate;\n        if(!fromTimeStamp) {\n            if(!fromHourCycle) {\n                fromDate = fromDateFormat;\n            }else {\n                fromDate = fromDateFormat + ' ' + fromTimeFormat;\n            }\n        }else {\n            if(!fromHourCycle) {\n                fromDate = fromValueHolder.getDate();\n            }else {\n                var date = fromValueHolder.getDate();\n                var time = fromValueHolder.getTime();\n                fromDate = date + ' ' + time;\n            }\n        }\n\n        if(!toTimeStamp) {\n            if(!toHourCycle) {\n                toDate = toDateFormat;\n            }else {\n                toDate = toDateFormat + ' ' + toTimeFormat;\n            }\n        }else {\n            if(!toHourCycle) {\n                toDate = toValueHolder.getDate();\n            }else {\n                var date = toValueHolder.getDate();\n                var time = toValueHolder.getTime();\n                toDate   = date + ' ' + time;\n            }\n        }\n        this.setDate(fromDate + ' & ' + toDate);\n        this.setTimeStamps(fromTimeStamp, toTimeStamp);\n        this.valueHolders = ValueHolders;\n    };\n\n    date.DualDateSecondaryReadWriteComponent.prototype.setData = date.DualDateSecondaryReadOnlyComponent.prototype.setData;\n\n    date.DateComponentForDateField.prototype.setStyles = function(styles) {\n\n        this.dom.style.setProperty(DATE_CONSTANTS.backgroundColor, styles.BGColor);\n        this.dom.style.setProperty(DATE_CONSTANTS.color, styles.Color);\n        this.dom.style.setProperty(DATE_CONSTANTS.fontFamily, styles.Font);\n        this.dom.style.setProperty(DATE_CONSTANTS.fontSize, styles.Size + UNITS.POINTS);\n\n        styles.Bold          && (this.dom.style.setProperty(DATE_CONSTANTS.fontWeight, STYLE_VALUES.BOLD));\n        styles.Italic        && (this.dom.style.setProperty(DATE_CONSTANTS.fontStyle, STYLE_VALUES.ITALIC));\n        styles.Overline      && (this.dom.style.setProperty(DATE_CONSTANTS.textDecoration, STYLE_VALUES.OVERLINE));\n        styles.StrikeThrough && (this.dom.style.setProperty(DATE_CONSTANTS.textDecoration, STYLE_VALUES.STRIKE_THROUGH));\n        styles.Underline     && (this.dom.style.setProperty(DATE_CONSTANTS.textDecoration, STYLE_VALUES.UNDERLINE));\n\n        const horizontalAlignment = styles.HorizontalAlignment;\n        if(horizontalAlignment === 0) {\n            this.dom.style.setProperty(DATE_CONSTANTS.textAlign, STYLE_VALUES.LEFT);\n        }else if(horizontalAlignment === 1) {\n            this.dom.style.setProperty(DATE_CONSTANTS.textAlign, STYLE_VALUES.CENTER);\n        }else {\n            this.dom.style.setProperty(DATE_CONSTANTS.textAlign, STYLE_VALUES.RIGHT);\n        }\n\n        const verticalAlignment = styles.verticalAlignment;\n        if(verticalAlignment === 0) {\n            this.dom.style.setProperty(DATE_CONSTANTS.alignItems, STYLE_VALUES.TOP);\n        }else if(verticalAlignment === 1) {\n            this.dom.style.setProperty(DATE_CONSTANTS.alignItems, STYLE_VALUES.MIDDLE);\n        }else {\n            this.dom.style.setProperty(DATE_CONSTANTS.alignItems, STYLE_VALUES.BOTTOM);\n        }\n    }\n\n    date.DateComponentForDateField.prototype.focus = function(character, event) {\n        this.dateField.focus();\n        this.openPicker();\n        this.dateField.selectText();\n        if(character) {\n            this.dateField.instance._input[0].focus();\n            this.dateField.instance._input[0].value = event.key + this.dateField.instance._input[0].value;\n            this.dateField.instance._keyUpHandler(event, false, 1);\n        }\n    }\n\n    date.GridReadOnlyComponent.prototype.setData = function(ValueHolder) {\n        const timeStamp  = Number(ValueHolder.getTimeStamp());\n        const locale     = ValueHolder.getLocale();\n        const dateFormat = ValueHolder.getDateFormat();\n        let   timeFormat = ValueHolder.getTimeFormat();\n        const hourCycle  = ValueHolder.getHourCycle();\n        const timeZone   = ValueHolder.getTimeZone();\n        if(!timeStamp) {\n            if(!hourCycle) {\n                this.setDate(dateFormat);\n            }else {\n                if(hourCycle == ADD_FIELD_SUPPORTED_HOUR_CYCLES_2) {\n                    timeFormat += ' tt';//NO I18N\n                }\n                this.setDate(dateFormat + this.delimiter + timeFormat);\n            }\n        }else {\n            if(!hourCycle) {\n                var date = ValueHolder.getDate();\n                this.setDate(date);\n            }else {\n                var date = ValueHolder.getDate();\n                const time = ValueHolder.getTime();\n                this.setDate(date + this.delimiter + time);\n            }\n        }\n        this.valueHolder = ValueHolder;\n        this.timeStamp   = timeStamp;\n    }\n\n    currency.ValueHolder.prototype.decorateCell = function(cell) {\n            const styles  = this.styles;\n            const content = this.getFormattedData();\n            if(content) {\n                    const position = this.getPosition();\n                    if(position === ZSGrid.CURRENCY_POSITION.ACCOUNTING) {\n\n                            const currency   = this.getCurrency();\n                            const newContent = content.replaceAll(currency, '');\n                            var node       = new ZSGrid.AccountingNode(currency, newContent, \"\", styles.Bold, styles.Italic, styles.Underline, styles.StrikeThrough, styles.Overline, styles.Color, styles.Size, styles.Font);\n                            cell.addInForeGroundStack(node);\n\n                    }else {\n                            const fusion = new ZSGrid.FusionNode();\n                            var node   = new ZSGrid.TextNode(content, styles.Bold, styles.Italic, styles.Underline, styles.StrikeThrough, styles.Overline, styles.Color, styles.Size, styles.Font); //NO I18N\n                            fusion.addNode(node);\n                            cell.addInForeGroundStack(fusion);\n                    }\n            }\n    }\n\n    // currency.TertiaryReadOnlyComponent.prototype.setData = function (valueholder) {\n    //     this.valueholder = valueholder;\n    //     this.formatDom = document.createElement(\"div\");//NO I18N\n    //     this.value = document.createElement(\"div\");//NO I18N\n    //     this.dom.appendChild(this.formatDom);\n    //     this.dom.appendChild(this.value);\n    //     this.dom.style.display = \"flex\";\n    //     this.value.style.flex=1;\n    //     this.dom.style.justifyContent = \"space-between\";//No I18N\n    //     this.value.textContent = valueholder.getFormattedData();\n    //     if(valueholder.getPosition() === Table.Constants.ADD_FIELD_CONSTANTS.CURRENCY_POSITIONS.ACCOUNTING){\n    //         this.formatDom.style.display = \"\";//No I18N\n    //         this.formatDom.textContent = valueholder.getCurrency();\n    //     }else{\n    //         this.formatDom.style.display = \"none\";//No I18N\n    //     }\n    // }\n\n    lookup.ReadOnlyOption.prototype.setColor = function(color) {\n        this.dom.style.backgroundColor = getLightColor(color);\n    }\n\n    checkbox.ReadOnlyOption.prototype.setColor = function(color) {\n        color = getModifiedColor(color);\n        this.svg.style.setProperty(CSS_VARIABLES.RATING, color);\n    }\n\n    rating.ReadOnlyOption.prototype.setColor = function(color) {\n        color = getModifiedColor(color);\n        this.svg.style.setProperty(CSS_VARIABLES.RATING, color);\n    }\n\n    checkbox.ReadWriteOption.prototype.setColor   = checkbox.ReadOnlyOption.prototype.setColor;\n    rating.ReadWriteOption.prototype.setColor     = rating.ReadOnlyOption.prototype.setColor;\n    rating.GridReadWriteOption.prototype.setColor = rating.ReadOnlyOption.prototype.setColor;\n\n    checkbox.getTemplate = type => {\n            let template;\n            switch (type){\n                case 2:\n                    template = getTemplateByID('ratingValueTemplate', 'label');//No I18N\n                    break;\n                case 1:\n                    template = getTemplateByID('ratingValueHeartTemplate', 'label');//No I18N\n                    break;\n                case 4:\n                    template = getTemplateByID('ratingValueThumbsUpTemplate', 'label');//No I18N\n                    break;\n                case 3:\n                    template = getTemplateByID('ratingValueFlagTemplate', 'label');//No I18N\n                    break;\n                case 5:\n                default:\n                    template = getTemplateByID('ratingValueCheckboxTemplate', 'label');//No I18N\n                    break;\n                case 6:\n                    template = getTemplateByID('ratingValueBadgeTemplate', 'label');//No I18N\n                    break;\n                case 7:\n                    template = getTemplateByID('ratingValueToogleBtnTemplate', 'label');//No I18N\n                    break;\n                case 8:\n                    template = getTemplateByID('ratingValueSmileyTemplate', 'label');//No I18N\n                    break;\n                case 9:\n                    template = getTemplateByID('ratingValueShieldTemplate', 'label');//No I18N\n                    break;\n\n            }\n\n            return template;\n    }\n\n    checkbox.getSVG = (type, properties) => {\n            const svg = {\n                empty : null,\n                full  : null\n            };\n\n            switch(type){\n                case 2:\n                    svg.empty = new ZSGrid.SVG(\"emptyStar\", properties, 16, 16); // No I18N\n                    svg.full = new ZSGrid.SVG(\"fullStar\", properties, 16, 16); // No I18N\n                    break;\n                case 1:\n                    svg.empty = new ZSGrid.SVG(\"emptyHeart\", properties, 16, 16); // No I18N\n                    svg.full = new ZSGrid.SVG(\"fullHeart\", properties, 16, 16); // No I18N\n                    break;\n                case 4:\n                    svg.empty = new ZSGrid.SVG(\"emptyThumbsUp\", properties, 16, 16); // No I18N\n                    svg.full = new ZSGrid.SVG(\"fullThumbsUp\", properties, 16, 16); // No I18N\n                    break;\n                case 3:\n                    svg.empty = new ZSGrid.SVG(\"emptyFlag\", properties, 16, 16); // No I18N\n                    svg.full = new ZSGrid.SVG(\"fullFlag\", properties, 16, 16); // No I18N\n                    break;\n                case 5:\n                default:\n                    svg.empty = new ZSGrid.SVG(\"checkBoxUnChecked\", properties, 17, 17); // No I18N\n                    svg.full  = new ZSGrid.SVG(\"checkBoxChecked\", properties, 16, 16); // No I18N\n                    break;\n                case 6:\n                    svg.empty = new ZSGrid.SVG(\"emptyBadge\", properties, 17, 17); // No I18N\n                    svg.full  = new ZSGrid.SVG(\"fullBadge\", properties, 17, 17); // No I18N\n                break;\n                case 7:\n                    svg.empty = new ZSGrid.SVG(\"emptyToogleSwitch\", properties, 18, 18); // No I18N\n                    svg.full  = new ZSGrid.SVG(\"fullToogleSwitch\", properties, 18, 18); // No I18N\n                break;\n                case 8:\n                    svg.empty = new ZSGrid.SVG(\"emptySmiley\", properties, 18, 18); // No I18N\n                    svg.full  = new ZSGrid.SVG(\"fullSmiley\", properties, 18, 18); // No I18N\n                break;\n                case 9:\n                    svg.empty = new ZSGrid.SVG(\"emptyShield\", properties, 16, 16); // No I18N\n                    svg.full  = new ZSGrid.SVG(\"fullShield\", properties, 16, 16); // No I18N\n                break;\n            }\n\n            return svg;\n    }\n\n    checkbox.PrimaryReadWriteComponent.prototype.setData = function(ValueHolder) {\n\n        const style     = ValueHolder.getStyle();\n        const color     = ValueHolder.getProperties().fillStyle;\n        this.checkbox = new checkbox.ReadWriteOption(style, this.optionCallback);\n        this.checkbox.appendTo(this.dom);\n        this.checkbox.setColor(color);\n\n        if(ValueHolder.getValue()) {\n            this.checkbox.addActive();\n        } else {\n            this.checkbox.removeActive();\n        }\n        this.valueHolder = ValueHolder;\n    }\n\n    checkbox.PrimaryReadOnlyComponent.prototype.setData = function(ValueHolder) {\n\n        const style     = ValueHolder.getStyle();\n        const color     = ValueHolder.getProperties().fillStyle;\n        this.checkbox = new checkbox.ReadOnlyOption(style);\n        this.checkbox.appendTo(this.dom);\n        this.checkbox.setColor(color);\n\n        if(ValueHolder.getValue()) {\n            this.checkbox.addActive();\n        } else {\n            this.checkbox.removeActive();\n        }\n        this.valueHolder = ValueHolder;\n    }\n    checkbox.TertiaryReadOnlyComponent.prototype.setData = checkbox.PrimaryReadOnlyComponent.prototype.setData;\n\n    rating.getTemplate = type => {\n            let template;\n            switch (type){\n                case 2:\n                default:\n                    template = getTemplateByID('ratingValueTemplate', 'label');//No I18N\n                    break;\n                case 1:\n                    template = getTemplateByID('ratingValueHeartTemplate', 'label');//No I18N\n                    break;\n                case 4:\n                    template = getTemplateByID('ratingValueThumbsUpTemplate', 'label');//No I18N\n                    break;\n                case 3:\n                    template = getTemplateByID('ratingValueFlagTemplate', 'label');//No I18N\n                    break;\n                case 5:\n                    template = getTemplateByID('ratingValueCheckboxTemplate', 'label');//No I18N\n                    break;\n                case 6:\n                    template = getTemplateByID('ratingValueBadgeTemplate', 'label');//No I18N\n                    break;\n                case 7:\n                    template = getTemplateByID('ratingValueToogleBtnTemplate', 'label');//No I18N\n                    break;\n                case 8:\n                    template = getTemplateByID('ratingValueSmileyTemplate', 'label');//No I18N\n                    break;\n                case 9:\n                    template = getTemplateByID('ratingValueShieldTemplate', 'label');//No I18N\n                    break;\n\n            }\n\n            return template;\n    }\n\n    rating.getSVG = (type, properties) => {\n            const svg = {\n                empty : null,\n                full  : null,\n                half  : null\n            };\n\n            switch(type){\n                case 2:\n                default:\n                    svg.empty = new ZSGrid.SVG(\"emptyStar\", properties, 16, 16); // No I18N\n                    svg.full = new ZSGrid.SVG(\"fullStar\", properties, 16, 16); // No I18N\n                    svg.half = new ZSGrid.SVG(\"halfStar\", properties, 16, 16); // No I18N\n                    break;\n                case 1:\n                    svg.empty = new ZSGrid.SVG(\"emptyHeart\", properties, 16, 16); // No I18N\n                    svg.full = new ZSGrid.SVG(\"fullHeart\", properties, 16, 16); // No I18N\n                    svg.half = new ZSGrid.SVG(\"halfStar\", properties, 16, 16); // No I18N\n                    break;\n                case 4:\n                    svg.empty = new ZSGrid.SVG(\"emptyThumbsUp\", properties, 16, 16); // No I18N\n                    svg.full = new ZSGrid.SVG(\"fullThumbsUp\", properties, 16, 16); // No I18N\n                    svg.half = new ZSGrid.SVG(\"halfStar\", properties, 16, 16); // No I18N\n                    break;\n                case 3:\n                    svg.empty = new ZSGrid.SVG(\"emptyFlag\", properties, 16, 16); // No I18N\n                    svg.full = new ZSGrid.SVG(\"fullFlag\", properties, 16, 16); // No I18N\n                    svg.half = new ZSGrid.SVG(\"halfStar\", properties, 16, 16); // No I18N\n                    break;\n                case 5:\n                    svg.empty = new ZSGrid.SVG(\"checkBoxUnChecked\", properties, 16, 16); // No I18N\n                    svg.full  = new ZSGrid.SVG(\"checkBoxChecked\", properties, 16, 16); // No I18N\n                    svg.half = new ZSGrid.SVG(\"halfStar\", properties, 16, 16); // No I18N\n                    break;\n                case 8:\n                    svg.empty = new ZSGrid.SVG(\"emptySmiley\", properties, 16, 16); // No I18N\n                    svg.full  = new ZSGrid.SVG(\"fullSmiley\", properties, 16, 16); // No I18N\n                    svg.half = new ZSGrid.SVG(\"halfStar\", properties, 16, 16); // No I18N\n                    break;\n                case 9:\n                    svg.empty = new ZSGrid.SVG(\"emptyShield\", properties, 16, 16); // No I18N\n                    svg.full  = new ZSGrid.SVG(\"fullShield\", properties, 16, 16); // No I18N\n                    svg.half = new ZSGrid.SVG(\"halfStar\", properties, 16, 16); // No I18N\n                    break;\n            }\n\n            return svg;\n    }\n\n    rating.PrimaryReadWriteComponent.prototype.setData = function(ValueHolder) {\n        rating.Utility.reset.call(this);\n        this.style         = ValueHolder.getStyle();\n        this.maxCount      = ValueHolder.getMaxCount();\n        this.selectedCount = ValueHolder.getValue();\n        if(this.selectedCount > this.maxCount) {\n            this.selectedCount = this.maxCount;\n        }\n        const color = ValueHolder.getProperties().fillStyle;\n        let ID;\n        let option;\n        for(let i = 0; i < this.maxCount; i++) {\n            ID               = i+1;\n            option           = new rating.ReadWriteOption(ID, this.style, this.optionCallback, this.callback);\n            this.options[ID] = option;\n            option.appendTo(this.dom);\n            option.setColor(color);\n        }\n\n        rating.Utility.setActive(this.prevCount, this.selectedCount, this.options);\n        this.valueHolder=ValueHolder;\n    }\n\n    rating.PrimaryReadOnlyComponent.prototype.setData = function(ValueHolder) {\n        rating.Utility.reset.call(this);\n        this.style         = ValueHolder.getStyle();\n        this.maxCount      = ValueHolder.getMaxCount();\n        this.selectedCount = ValueHolder.getValue();\n        if(this.selectedCount > this.maxCount) {\n            this.selectedCount = this.maxCount;\n        }\n        const color = ValueHolder.getProperties().fillStyle;\n        let option;\n        let ID;\n        for(let i = 0; i < this.maxCount; i++) {\n            ID                = i+1;\n            option            = new rating.ReadOnlyOption(this.style, ID);\n            this.options[ID] = option;\n            option.appendTo(this.dom);\n            option.setColor(color);\n        }\n        rating.Utility.setActive(0, this.selectedCount, this.options);\n        this.valueHolder=ValueHolder;\n    }\n    rating.TertiaryReadOnlyComponent.prototype.setData = rating.PrimaryReadOnlyComponent.prototype.setData;\n    rating.TertiaryReadOnlyComponent.prototype.setData = function(ValueHolder){\n        // rating.Utility.reset.call(this);\n        this.reset();\n        this.style         = ValueHolder.getStyle();\n        this.maxCount      = ValueHolder.getMaxCount();\n        this.selectedCount = ValueHolder.getValue();\n        if(this.selectedCount > this.maxCount) {\n        this.selectedCount = this.maxCount;\n        }\n        const color = ValueHolder.getProperties().fillStyle;\n        let option;\n        let ID;\n\n        this.countDom.textContent = this.selectedCount;\n        for(let i = 0; i < this.maxCount; i++) {\n        ID                = i+1;\n        option            = new rating.ReadOnlyOption(this.style, ID);\n        this.options[ID] = option;\n        option.appendTo(this.styleDom);\n        option.setColor(color);\n        }\n        rating.Utility.setActive(0, this.selectedCount, this.options);\n        this.valueHolder=ValueHolder;\n    }\n\n    MultiImageNode.prototype.toHTML = function(parent, grid, cell, {height, width}) {\n        const div = document.createElement('div'); //No I18N\n        const a   = document.createElement('a'); //No I18N\n        div.style.height   = `${height}px`; //No I18N\n        for(let i = 0 ; i  < this.image.length ; i++){\n            const textNode1 = document.createTextNode(`${this.image[i].filename}(`); //No I18N\n            const aTag      = a.cloneNode(true);\n            aTag.href     = this.image[i].url;\n            aTag.innerText  = this.image[i].url;\n            aTag.style.color = \"black\"; //No I18N\n            const text      = (this.image.length - 1 === i) ? ')' : '), '; //No I18N\n            const textNode2 = document.createTextNode(text);\n            div.appendChild(textNode1);\n            div.appendChild(aTag);\n            div.appendChild(textNode2);\n        }\n        div.style.marginLeft = '3px';//NO I18N\n        div.style.marginTop  = '3px';//NO I18N\n        div.style.width    = 'inherit'; //No I18N\n        parent.style.width = `${width}px`; //No I18N\n        parent.style.overflowY = 'scroll'; //NO I18N\n        parent.appendChild(div);\n    }\n\n    attachment.ValueHolder.prototype.setSelectedIDs = function(selectedIDs) {\n        this.selectedIDs = selectedIDs;\n    }\n\n    attachment.ValueHolder.prototype.toFormattedString = function(){\n        const names = [];\n        let id;\n        let name;\n        for(let i = 0; i < this.selectedIDs.length; i++) {\n            id   = this.selectedIDs[i];\n            name = `${this.attachmentDS.get(id).fileName}.${this.attachmentDS.get(id).fileExtension}`;\n            names.push(name);\n        }\n        return names.join();\n    }\n\n    attachment.ValueHolder.prototype.decorateCell = function(cell, successCallback){\n        const attachmentIDs = this.getIDs();\n        if(attachmentIDs.length){\n            const node = new MultiImageNode();\n\n            for(let i = 0; i < attachmentIDs.length; i++){\n                const id       = attachmentIDs[i];\n                const attachment = this.attachmentDS.get(id);\n                const url      = attachment.imgSrc;\n                const fileName = `${attachment.fileName}.${attachment.fileExtension}`;\n                const image = new TablesMultiImage(url, fileName, successCallback, (e) => {\n                    Response.subscribe('DATA', EVENTS_ATTACHMENTS_WORKDRIVE_PREVIEW,  refreshGrid, ['PREVIEW_RESPONSE']);  //No I18N\n                }, (attachmentIDs.length - 1) === i);\n                node.addImage(image);\n            }\n\n            cell.addInForeGroundStack(node);\n        }\n    }\n    function refreshGrid(){\n        if(timeoutID != null) {\n            clearTimeout(timeoutID)\n        }\n        timeoutID = setTimeout(() => {\n            globalThis.grid.refresh();\n        }, DEBOUNCE_TIME)\n    }\n\n    KeywordExtract.ValueHolder.prototype.decorateCell = function(cell) {\n        if(this.values){\n            const keywords = this.values.split(',');\n            if(keywords.length > 0) {\n                let color;\n                let name;\n                const styles = this.styles;\n                const node   = new ZSGrid.FusionNode();\n\n                color = `#${KEYWORD_EXTRACT_COLOR}`;\n                for(var i = 0; i < keywords.length; i++) {\n                    name         = keywords[i];\n                    var bubble = new ZSGrid.FusionBubbleNode(name, styles.Font, styles.Size, \"transparent\", color, styles.Color); // No I18N\n                    node.addNode(bubble);\n                }\n                cell.addInForeGroundStack(node);\n            }\n        }\n    }\n\n    multiSelect.ValueHolder.prototype.decorateCell = function(cell) {\n        const selectedIDsLength = this.selectedIDs.length;\n        if(selectedIDsLength > 0) {\n            let index;\n            let ID;\n            let color;\n            let name;\n            let bubble1;\n            const styles = this.styles;\n            const node   = new ZSGrid.FusionNode();\n\n            const coloredOptions = this.getColoredOptions();\n            if(!coloredOptions) {\n                color = `#${MULTISELECT_COLOR}`;\n                for(var i = 0; i < selectedIDsLength; i++) {\n                    ID         = this.selectedIDs[i];\n                    name       = this.multiSelectDS.getName(ID);\n                    var bubble = new ZSGrid.FusionBubbleNode(name, styles.Font, styles.Size, \"transparent\", color, styles.Color); // No I18N\n                    node.addNode(bubble);\n                }\n            }else {\n                for(var i = 0; i < selectedIDsLength; i++) {\n                    ID         = this.selectedIDs[i];\n                    color      = `#${this.multiSelectDS.getColor(ID)}`;\n                    name       = this.multiSelectDS.getName(ID);\n                    var bubble = new ZSGrid.FusionBubbleNode(name, styles.Font, styles.Size, \"transparent\", color, styles.Color); // No I18N\n                    node.addNode(bubble);\n                }\n            }\n            cell.addInForeGroundStack(node);\n        }\n    }\n\n    multiSelect.ValueHolder.prototype.getEditableMultiSelect = function() {// TODO: New Base Color - changes: Remove the commented codes after 6 months of release..\n        const options = {};\n        let id;\n        let color;\n        let name;\n        let option;\n\n        const coloredOptions = this.getColoredOptions();\n        if(!coloredOptions) {\n            // color = getLightColor(MULTISELECT_COLOR);\n            color = MULTISELECT_COLOR;\n            for(var i = 0; i < this.selectedIDs.length; i++) {\n                id          = this.selectedIDs[i];\n                name        = this.multiSelectDS.getName(id);\n                option      = new multiSelect.ReadWriteOption(id);\n                option.setColor(`${HASH}${color}`);\n                option.setName(name);\n                options[id] = option;\n            }\n        }else {\n            for(var i = 0; i < this.selectedIDs.length; i++) {\n                id          = this.selectedIDs[i];\n                // color       = getLightColor(this.multiSelectDS.getColor(id));\n                color       = this.multiSelectDS.getColor(id);\n                name        = this.multiSelectDS.getName(id);\n                option      = new multiSelect.ReadWriteOption(id);\n                option.setColor(`${HASH}${color}`);\n                option.setName(name);\n                options[id] = option;\n            }\n        }\n        return options;\n    }\n\n    multiSelect.ValueHolder.prototype.getMultiSelectCheckboxTypeWithEditableVisibility = function() {\n        var options = {};\n        var totalIDs = this.getTotalIDs();\n        var id, color, name, option;\n        if(!this.getColoredOptions()) {\n            color = MULTISELECT_COLOR;\n            for (var i = 0; i < totalIDs.length; i++) {\n                id     = totalIDs[i];\n                name   = this.multiSelectDS.getName(id);\n                option = new multiSelect.FormCheckboxTypeReadOnlyOption(id);\n                option.setColor(color);\n                option.setName(name);\n                option.enableVisibility();\n                options[id] = option;\n            }\n        } else {\n            for (var i = 0; i < totalIDs.length; i++) {\n                id     = totalIDs[i];\n                color  = this.multiSelectDS.getColor(id);\n                name   = this.multiSelectDS.getName(id);\n                option = new multiSelect.FormCheckboxTypeReadOnlyOption(id);\n                option.setColor(color);\n                option.setName(name);\n                option.enableVisibility();\n                options[id] = option;\n            }\n        }\n        return options;\n    }\n\n    multiSelect.ValueHolder.prototype.getEditableButtonTypeMultiSelect = function() {// TODO: New Base Color - changes: Remove the commented codes after 6 months of release..\n        const options = {};\n        let id;\n        let color;\n        let name;\n        let option;\n\n        const coloredOptions = this.getColoredOptions();\n        if(!coloredOptions) {\n            // color = getLightColor(MULTISELECT_COLOR);\n            color = MULTISELECT_COLOR;\n            for(var i = 0; i < this.selectedIDs.length; i++) {\n                id          = this.selectedIDs[i];\n                name        = this.multiSelectDS.getName(id);\n                option      = new multiSelect.ReadWriteButtonOption(id);\n                option.setColor(`${HASH}${color}`);\n                option.setName(name);\n                options[id] = option;\n            }\n        }else {\n            for(var i = 0; i < this.selectedIDs.length; i++) {\n                id          = this.selectedIDs[i];\n                // color       = getLightColor(this.multiSelectDS.getColor(id));\n                color       = this.multiSelectDS.getColor(id);\n                name        = this.multiSelectDS.getName(id);\n                option      = new multiSelect.ReadWriteButtonOption(id);\n                option.setColor(`${HASH}${color}`);\n                option.setName(name);\n                options[id] = option;\n            }\n        }\n        return options;\n    }\n\n    multiSelect.ValueHolder.prototype.getMultiSelect = function() {// TODO: New Base Color - changes: Remove the commented codes after 6 months of release..\n        const options = {};\n        let id;\n        let color;\n        let name;\n        let option;\n\n        const coloredOptions = this.getColoredOptions();\n        if(!coloredOptions) {\n            // color = getLightColor(MULTISELECT_COLOR);\n            color = MULTISELECT_COLOR;\n            for(var i = 0; i < this.selectedIDs.length; i++) {\n                id          = this.selectedIDs[i];\n                name        = this.multiSelectDS.getName(id);\n                option      = new multiSelect.ReadOnlyOption(id);\n                option.setColor(`${HASH}${color}`);\n                option.setName(name);\n                options[id] = option;\n            }\n        }else {\n            for(var i = 0; i < this.selectedIDs.length; i++) {\n                id          = this.selectedIDs[i];\n                // color       = getLightColor(this.multiSelectDS.getColor(id));\n                color       = this.multiSelectDS.getColor(id);\n                name        = this.multiSelectDS.getName(id);\n                option      = new multiSelect.ReadOnlyOption(id);\n                option.setColor(`${HASH}${color}`);\n                option.setName(name);\n                options[id] = option;\n            }\n        }\n        return options;\n    }\n\n    multiSelect.ValueHolder.prototype.getSingleSelect = function() {\n        const options        = {};\n        const coloredOptions = this.getColoredOptions();\n        if(!coloredOptions) {\n            const color = MULTISELECT_COLOR;\n            for (var i = 0; i < this.selectedIDs.length; i++) {\n                const id     = this.selectedIDs[i];\n                const name   = this.multiSelectDS.getName(id);\n                const option = new singleSelect.ReadOnlyOption();\n                option.setColor(color);\n                option.setName(name);\n                options[id] = option;\n            }\n        } else {\n            for (var i = 0; i < this.selectedIDs.length; i++) {\n                const id     = this.selectedIDs[i];\n                const color  = this.multiSelectDS.getColor(id);\n                const name   = this.multiSelectDS.getName(id);\n                const option = new singleSelect.ReadOnlyOption();\n                option.setColor(color);\n                option.setName(name);\n                options[id] = option;\n            }\n        }\n        return options;\n    }\n\n    multiSelect.ValueHolder.prototype.getFilteredOptions = function() {// TODO: New Base Color - changes: Remove the commented codes after 6 months of release..\n        const filteredIDs = this.getFilteredIDs();\n        const options     = {};\n        let id;\n        let color;\n        let name;\n        let option;\n        const coloredOptions = this.getColoredOptions();\n        if(!coloredOptions) {\n            // color = getLightColor(MULTISELECT_COLOR);\n            color = MULTISELECT_COLOR;\n            for(var i = 0; i < filteredIDs.length; i++) {\n                id          = filteredIDs[i];\n                name        = this.multiSelectDS.getName(id);\n                option      = new findAnItem.Option(id);\n                option.setColor(`${HASH}${color}`);\n                option.setName(name);\n                options[id] = option;\n            }\n        }else {\n            for(var i = 0; i < filteredIDs.length; i++) {\n                id          = filteredIDs[i];\n                // color       = getLightColor(this.multiSelectDS.getColor(id));\n                color       = this.multiSelectDS.getColor(id);\n                name        = this.multiSelectDS.getName(id);\n                option      = new findAnItem.Option(id);\n                option.setColor(`${HASH}${color}`);\n                option.setName(name);\n                options[id] = option;\n            }\n        }\n        return options;\n    }\n\n    multiSelect.ValueHolder.prototype.getFindAnItemCheckboxOptions = function() {// TODO: New Base Color - changes: Remove the commented codes after 6 months of release..\n        const count       = this.multiSelectDS.getCount();\n        const options     = {};\n        let id;\n        let color;\n        let name;\n        let option;\n        const coloredOptions = this.getColoredOptions();\n        if(!coloredOptions) {\n            // color = getLightColor(MULTISELECT_COLOR);\n            color = MULTISELECT_COLOR;\n            for(var i = 0; i < count; i++) {\n                id          = this.multiSelectDS.getID(i);\n                name        = this.multiSelectDS.getName(id);\n                option      = new findAnItem.CheckboxOption(id);\n                option.setColor(`${HASH}${color}`);\n                option.setName(name);\n                options[id] = option;\n            }\n        }else {\n            for(var i = 0; i < count; i++) {\n                id          = this.multiSelectDS.getID(i);\n                // color       = getLightColor(this.multiSelectDS.getColor(id));\n                color       = this.multiSelectDS.getColor(id);\n                name        = this.multiSelectDS.getName(id);\n                option      = new findAnItem.CheckboxOption(id);\n                option.setColor(`${HASH}${color}`);\n                option.setName(name);\n                options[id] = option;\n            }\n        }\n\n        for(var i = 0; i < this.selectedIDs.length; i++) {\n            id     = this.selectedIDs[i];\n            option = options[id];\n            option && option.addActive();\n        }\n\n        return options;\n    }\n\n    multiSelect.ValueHolder.prototype.getFindAnItemSingleSelectCheckboxOptions = function() {\n        const count       = this.multiSelectDS.getCount();\n        const options     = {};\n        let id;\n        let color;\n        let name;\n        let option;\n        const coloredOptions = this.getColoredOptions();\n        if(!coloredOptions) {\n            // color = getLightColor(MULTISELECT_COLOR);\n            color = MULTISELECT_COLOR;\n            for(var i = 0; i < count; i++) {\n                id          = this.multiSelectDS.getID(i);\n                name        = this.multiSelectDS.getName(id);\n                option      = new findAnItem.SingleSelectCheckboxOption(id);\n                option.setColor(color);\n                option.setName(name);\n                options[id] = option;\n            }\n        }else {\n            for(var i = 0; i < count; i++) {\n                id          = this.multiSelectDS.getID(i);\n                color       = this.multiSelectDS.getColor(id);\n                name        = this.multiSelectDS.getName(id);\n                option      = new findAnItem.SingleSelectCheckboxOption(id);\n                option.setColor(color);\n                option.setName(name);\n                options[id] = option;\n            }\n        }\n\n        for(var i = 0; i < this.selectedIDs.length; i++) {\n            id     = this.selectedIDs[i];\n            option = options[id];\n            option.addActive();\n        }\n\n        return options;\n    }\n\n    multiSelect.ValueHolder.prototype.getMultiSelectCheckboxType = function() {\n        const options  = {};\n        const totalIDs = this.getTotalIDs();\n        let id;\n        let color;\n        let name;\n        let option;\n        const coloredOptions = this.getColoredOptions();\n        if(!coloredOptions) {\n            color = MULTISELECT_COLOR;\n            for(var i = 0; i < totalIDs.length; i++) {\n                id     = totalIDs[i];\n                name   = this.multiSelectDS.getName(id);\n                option = new multiSelect.CheckboxTypeReadOnlyOption();\n                option.setColor(color);\n                option.setName(name);\n                options[id] = option;\n            }\n        }else {\n            for(var i = 0; i < totalIDs.length; i++) {\n                id     = totalIDs[i];\n                color  = this.multiSelectDS.getColor(id);\n                name   = this.multiSelectDS.getName(id);\n                option = new multiSelect.CheckboxTypeReadOnlyOption();\n                option.setColor(color);\n                option.setName(name);\n                options[id] = option;\n            }\n        }\n        return options;\n    }\n\n    multiSelect.ValueHolder.prototype.getEditableMultiSelectCheckboxType = function() {\n        const options  = {};\n        const totalIDs = this.getTotalIDs();\n        let id;\n        let color;\n        let name;\n        let option;\n        const coloredOptions = this.getColoredOptions();\n        if(!coloredOptions) {\n            color = MULTISELECT_COLOR;\n            for(var i = 0; i < totalIDs.length; i++) {\n                id     = totalIDs[i];\n                name   = this.multiSelectDS.getName(id);\n                option = new multiSelect.CheckboxTypeReadWriteOption(id);\n                option.setColor(color);\n                option.setName(name);\n                options[id] = option;\n            }\n        }else {\n            for(var i = 0; i < totalIDs.length; i++) {\n                id     = totalIDs[i];\n                color  = this.multiSelectDS.getColor(id);\n                name   = this.multiSelectDS.getName(id);\n                option = new multiSelect.CheckboxTypeReadWriteOption(id);\n                option.setColor(color);\n                option.setName(name);\n                options[id] = option;\n            }\n        }\n        return options;\n    }\n    multiSelect.ValueHolderForForm.prototype.getMultiSelectCheckboxTypeWithEditableVisibility = multiSelect.ValueHolder.prototype.getMultiSelectCheckboxTypeWithEditableVisibility;\n\n    singleSelect.ValueHolder.prototype.decorateCell = function(cell) {// TODO: New Base Color - changes: Remove the commented codes after 6 months of release..\n        if(this.value) {\n            const styles = this.styles;\n            let color;\n            const coloredOptions = this.getColoredOptions();\n            if(!coloredOptions) {\n                // color = `#${MULTI_SELECT_COLOR}`;\n                color = MULTISELECT_COLOR;\n            }else {\n                color = this.singleSelectDS.getColor(this.value);\n            }\n            const text = this.singleSelectDS.getName(this.value);\n\n            const innerCircleColor = getBubbleNodeInnerCircleColor(color);\n            const outerCircleColor = getBubbleNodeOuterCircleColor(color);\n\n            // const bubble  = new ZSGrid.FusionBubbleWithColor(text, styles.Font, styles.Size, \"transparent\", color, styles.Color); // No I18N // TODO: New Base Color - changes: Remove the commented codes after 6 months of release..\n            const bubble  = new ZSGrid.FusionBubbleWithColor(text, styles.Font, styles.Size, \"transparent\", `${HASH}${color}`, styles.Color, `${HASH}${innerCircleColor}`, `${HASH}${outerCircleColor}`); // No I18N\n            const node    = new ZSGrid.FusionNode();\n            node.addNode(bubble);\n            cell.addInForeGroundStack(node);\n        }\n    }\n\n    singleSelect.ValueHolderForForm.prototype.getRadioTypeReadOnlyOptionsWithEditableVisibility = function() {\n        const options  = {};\n        const totalIDs = this.getTotalIDs();\n        const coloredOptions = this.getColoredOptions();\n        if(!coloredOptions) {\n            const color = MULTISELECT_COLOR;\n            for(var i = 0; i < totalIDs.length; i++) {\n                const id     = totalIDs[i];\n                const name   = this.singleSelectDS.getName(id);\n                const option = new singleSelect.FormRadioTypeReadOnlyOption(id);\n                option.setColor(color);\n                option.setName(name);\n                option.enableVisibility();\n                options[id] = option;\n            }\n        } else {\n            for(var i = 0; i < totalIDs.length; i++) {\n                const id          = totalIDs[i];\n                const color       = this.singleSelectDS.getColor(id);\n                const name        = this.singleSelectDS.getName(id);\n                const option      = new singleSelect.FormRadioTypeReadOnlyOption(id);\n                option.setColor(color);\n                option.setName(name);\n                option.enableVisibility();\n                options[id] = option;\n            }\n        }\n        return options;\n    }\n\n    singleSelect.ValueHolder.prototype.getSingleSelect = function() {\n        const options = {};\n        let color;\n        const coloredOptions = this.getColoredOptions();\n        if(!coloredOptions) {\n            // color = MULTI_SELECT_COLOR;\n            color = MULTISELECT_COLOR;\n        }else {\n            color = this.singleSelectDS.getColor(this.value);\n        }\n        if(this.value) {\n            const option = new singleSelect.ReadOnlyOption();\n            const name   = this.singleSelectDS.getName(this.value);\n            option.setColor(color);\n            option.setName(name);\n            options[this.value] = option;\n        }\n        return options;\n    }\n\n    singleSelect.ValueHolder.prototype.getTotalOptions = function() {\n        const totalIDs = this.getTotalIDs();\n        const options  = {};\n        let id;\n        let color;\n        let name;\n        let option;\n        const coloredOptions = this.getColoredOptions();\n        if(!coloredOptions) {\n            // color = MULTI_SELECT_COLOR;\n            color = MULTISELECT_COLOR;\n            for(var i = 0; i < totalIDs.length; i++) {\n                id     = totalIDs[i];\n                name   = this.singleSelectDS.getName(id);\n                option = new findAnItem.SingleSelectOption(id);\n                option.setColor(color);\n                option.setName(name);\n                options[id] = option;\n            }\n        }else {\n            for(var i = 0; i < totalIDs.length; i++) {\n                id     = totalIDs[i];\n                color  = this.singleSelectDS.getColor(id);\n                name   = this.singleSelectDS.getName(id);\n                option = new findAnItem.SingleSelectOption(id);\n                option.setColor(color);\n                option.setName(name);\n                options[id] = option;\n            }\n        }\n        return options;\n    }\n\n    singleSelect.ValueHolder.prototype.getRadioTypeReadOnlyOptions = function() {\n        const options = {};\n        const count   = this.singleSelectDS.getCount();\n        let id;\n        let color;\n        let name;\n        let option;\n        const coloredOptions = this.getColoredOptions();\n        if(!coloredOptions) {\n            // color = MULTI_SELECT_COLOR;\n            color = MULTISELECT_COLOR;\n            for(var i = 0; i < count; i++) {\n                id          = this.singleSelectDS.getID(i);\n                name        = this.singleSelectDS.getName(id);\n                option      = new singleSelect.RadioTypeReadOnlyOption();\n                option.setColor(color);\n                option.setName(name);\n                options[id] = option;\n            }\n        }else {\n            for(var i = 0; i < count; i++) {\n                id          = this.singleSelectDS.getID(i);\n                color       = this.singleSelectDS.getColor(id);\n                name        = this.singleSelectDS.getName(id);\n                option      = new singleSelect.RadioTypeReadOnlyOption();\n                option.setColor(color);\n                option.setName(name);\n                options[id] = option;\n            }\n        }\n        return options;\n    }\n\n    singleSelect.ValueHolder.prototype.getRadioTypeReadWriteOptions = function() {\n        const options = {};\n        const count   = this.singleSelectDS.getCount();\n        let id;\n        let color;\n        let name;\n        let option;\n        const coloredOptions = this.getColoredOptions();\n        if(!coloredOptions) {\n            // color = MULTI_SELECT_COLOR;\n            color = MULTISELECT_COLOR;\n            for(var i = 0; i < count; i++) {\n                id          = this.singleSelectDS.getID(i);\n                name        = this.singleSelectDS.getName(id);\n                option      = new singleSelect.RadioTypeReadWriteOption(id);\n                option.setColor(color);\n                option.setName(name);\n                options[id] = option;\n            }\n        }else {\n            for(var i = 0; i < count; i++) {\n                id          = this.singleSelectDS.getID(i);\n                color       = this.singleSelectDS.getColor(id);\n                name        = this.singleSelectDS.getName(id);\n                option      = new singleSelect.RadioTypeReadWriteOption(id);\n                option.setColor(color);\n                option.setName(name);\n                options[id] = option;\n            }\n        }\n        return options;\n    }\n    \n    Nodes.Fusion.LinkNode.prototype.horizontalPadding = 5;\n\n    singleSelect.ReadOnlyOption.prototype.setColor = function(color) {// TODO: New Base Color - changes: Remove the commented codes after 6 months of release..\n        // this.dom.style.setProperty(CSS_VARIABLES.SINGLE_SELECT_OVAL, getLightColor(color));\n        // this.dom.style.setProperty(CSS_VARIABLES.SINGLE_SELECT_DOT, getDarkColor(color));\n\n        const innerCircleColor = getBubbleNodeInnerCircleColor(color);\n        this.dom.style.setProperty(CSS_VARIABLES.SINGLE_SELECT_OVAL, `${HASH}${color}`);\n        this.dom.style.setProperty(CSS_VARIABLES.SINGLE_SELECT_DOT,  `${HASH}${innerCircleColor}`);\n    }\n\n    singleSelect.RadioTypeReadOnlyOption.prototype.setColor = function(color) {// TODO: New Base Color - changes: Remove the commented codes after 6 months of release..\n        // this.dom.style.setProperty(CSS_VARIABLES.SINGLE_SELECT_OVAL, getLightColor(color));\n        // this.dom.style.setProperty(CSS_VARIABLES.SINGLE_SELECT_DOT, getDarkColor(color));\n\n        const innerCircleColor = getBubbleNodeInnerCircleColor(color);\n        this.dom.style.setProperty(CSS_VARIABLES.SINGLE_SELECT_OVAL, `${HASH}${color}`);\n        this.dom.style.setProperty(CSS_VARIABLES.SINGLE_SELECT_DOT,  `${HASH}${innerCircleColor}`);\n    }\n\n    singleSelect.FormRadioTypeReadOnlyOption.prototype.setColor = function(color) {\n        const innerCircleColor = getBubbleNodeInnerCircleColor(color);\n        this.dom.style.setProperty(CSS_VARIABLES.SINGLE_SELECT_OVAL, `${HASH}${color}`);\n        this.dom.style.setProperty(CSS_VARIABLES.SINGLE_SELECT_DOT,  `${HASH}${innerCircleColor}`);\n    }\n\n    singleSelect.RadioTypeReadWriteOption.prototype.setColor     = singleSelect.RadioTypeReadOnlyOption.prototype.setColor;\n    singleSelect.FormRadioTypeReadWriteOption.prototype.setColor = singleSelect.FormRadioTypeReadOnlyOption.prototype.setColor\n\n\n    findAnItem.SingleSelectOption.prototype.setColor = function(color) {// TODO: New Base Color - changes: Remove the commented codes after 6 months of release..\n        // this.nameContainer.style.setProperty(CSS_VARIABLES.SINGLE_SELECT_OVAL, getLightColor(color));\n        // this.nameContainer.style.setProperty(CSS_VARIABLES.SINGLE_SELECT_DOT, getDarkColor(color));\n        \n        const innerCircleColor = getBubbleNodeInnerCircleColor(color);\n        this.dom.style.setProperty(CSS_VARIABLES.SINGLE_SELECT_OVAL, `${HASH}${color}`);\n        this.dom.style.setProperty(CSS_VARIABLES.SINGLE_SELECT_DOT,  `${HASH}${innerCircleColor}`);\n    }\n\n    findAnItem.SingleSelectCheckboxOption.prototype.setColor = function(color) {// TODO: New Base Color - changes: Remove the commented codes after 6 months of release..\n        // this.nameContainer.style.setProperty(CSS_VARIABLES.SINGLE_SELECT_OVAL, getLightColor(color));\n        // this.nameContainer.style.setProperty(CSS_VARIABLES.SINGLE_SELECT_DOT, getDarkColor(color));\n\n        const innerCircleColor = getBubbleNodeInnerCircleColor(color);\n        this.nameContainer.style.setProperty(CSS_VARIABLES.SINGLE_SELECT_OVAL, `${HASH}${color}`);\n        this.nameContainer.style.setProperty(CSS_VARIABLES.SINGLE_SELECT_DOT,  `${HASH}${innerCircleColor}`);\n    }\n\n    findAnItem.Component.prototype.repositionNearPlusSign = function() {\n        if(this.Component.getIconBoundingClientRect && this.Component.getComponentBoundingClientRect) {\n            const componentDomRect = this.Component.getComponentBoundingClientRect();\n            const plusIconDomRect  = this.Component.getIconBoundingClientRect();\n            // var selfDomRect   = getOrphanElementBoundingClientRect(this.dom)\n            const selfDomRect      = this.dom.getBoundingClientRect();\n\n            // console.log('componentDomRect', componentDomRect)\n            // console.log('plusIconDomRect', plusIconDomRect)\n            // console.log('selfDomRect', selfDomRect)\n\n            const top  = plusIconDomRect.top + plusIconDomRect.height - componentDomRect.top + 3;\n            let left = plusIconDomRect.left - componentDomRect.left;\n\n            if(left + selfDomRect.width > componentDomRect.width) {\n                left = left - (left + selfDomRect.width - componentDomRect.width)\n            }\n\n            this.dom.style.top  = `${top + 7}px`\n            this.dom.style.left = `${left}px`\n        }\n    }\n\n    linkFieldSingleSelect.ReadOnlyOption.prototype.setColor = function(color) {\n        this.dom.style.backgroundColor = getLightColor(color);\n    }\n\n    linkFieldMultiSelect.ReadOnlyOption.prototype.setColor = function(color) {\n        this.dom.style.backgroundColor = getLightColor(color);\n    }\n\n    linkFieldMultiSelect.ReadWriteOption.prototype.setColor = function(color) {\n        this.dom.style.backgroundColor = getLightColor(color);\n    }\n\n    linkFieldSingleSelect.PrimaryReadWriteComponent.prototype.focus = function(character) {\n        if(character) {\n            this.callback.onDropDownClick(this, this.dom, character);\n        }\n    }\n\n    linkFieldMultiSelect.PrimaryReadWriteComponent.prototype.focus = function(character) {\n        if(character) {\n            this.callback.onPlusButtonClick(this, this.dom, character);\n        }\n    }\n\n\n    formula.ValueHolder.prototype.isValidFormula = function() {\n        if(this.formulaStatus === SUCCESS) {\n            return true;\n        }\n        return false;\n    }\n\n    formula.ValueHolder.prototype.toFormattedString = function() {\n        var formulaReturnTypes = this.getFormulaReturnTypes();\n        var value              = this.getValue();\n        var returnTypeFormats  = this.getReturnTypeFormats();\n\n        switch(this.returnType) {\n            case FORMULA_NUMBER: //[LOCALE, thousandSeparator, precision];\n                var locale            = returnTypeFormats[0];\n                var thousandSeparator = returnTypeFormats[1];\n                var precision         = returnTypeFormats[2];\n                return ZSGrid.numberFormatter(value, locale, thousandSeparator, precision);\n\n            case FORMULA_TEXT:\n            case FORMULA_RETURN_TYPE_EMPTY:\n                var format = returnTypeFormats[0];\n                return ZSGrid.singleLineTextFormatter(value, format);\n\n            case FORMULA_DATE: //[LOCALE, dateFormat, TIME_FORMAT, hourCycle];\n                var locale     = returnTypeFormats[0];\n                var dateFormat = returnTypeFormats[1];\n                var timeFormat = returnTypeFormats[2];\n                var hourCycle  = returnTypeFormats[3];\n                var timeZone   = returnTypeFormats[4];\n\n                let date;\n                let absoluteDate = decodeToAbsoluteDate(value);\n                if(!absoluteDate) {\n                    date = '';\n                } else {\n                    date = getDateStringToBeRendered(absoluteDate, locale, dateFormat);\n                }\n                \n                if(!hourCycle) {\n                    return date;\n                }\n\n                let time;\n                absoluteDate = decodeToAbsoluteDate(value);\n                if(!absoluteDate) {\n                    time = '';\n                } else {\n                    time = getTimeStringToBeRendered(absoluteDate, locale, timeFormat, hourCycle);\n                }\n\n                return date + \" \" + time;\n\n            case FORMULA_CURRENCY:\n                var locale            = returnTypeFormats[0];\n                var symbol            = returnTypeFormats[1];\n                var position          = returnTypeFormats[2];\n                var precision         = returnTypeFormats[3];\n                var thousandSeparator = returnTypeFormats[4];\n                return ZSGrid.currencyFormatter(value, locale, symbol, thousandSeparator, precision, position, false);\n\n            case FORMULA_PERCENT:\n                var locale            = returnTypeFormats[0];\n                var precision         = returnTypeFormats[1];\n                var showSymbol        = returnTypeFormats[2];\n                var thousandSeparator = returnTypeFormats[3];\n                return ZSGrid.percentFormatter(value, locale, thousandSeparator, precision, showSymbol);\n        }\n    }\n\n    formula.ValueHolder.prototype.decorateCell = function(cell) {\n        if(!this.isValidFormula()) {\n            return;\n        }\n\n        const styles             = this.getStyles();\n        const value              = this.getValue();\n        const returnTypeFormats  = this.getReturnTypeFormats();\n\n        switch(this.returnType) {\n            case FORMULA_NUMBER:\n                var locale            = returnTypeFormats[0];\n                var thousandSeparator = returnTypeFormats[1];\n                var precision         = returnTypeFormats[2];\n                var content           = ZSGrid.numberFormatter(value, locale, thousandSeparator, precision);\n                if(content) {\n                    \n                    var fusion = new ZSGrid.FusionNode();          \n                    var node   = new ZSGrid.TextNode(content, styles.Bold, styles.Italic, styles.Underline, styles.StrikeThrough, styles.Overline, styles.Color, styles.Size, styles.Font);\n                    fusion.addNode(node);\n                    cell.addInForeGroundStack(fusion);\n                }\n                break;\n\n            case FORMULA_TEXT:\n            case FORMULA_RETURN_TYPE_EMPTY:\n                if(value){\n                    var format              = returnTypeFormats[0];\n                    var autoDetectHyperlink = returnTypeFormats[1];\n                    \n                    if(!autoDetectHyperlink) {\n                        var formattedValue      = ZSGrid.singleLineTextFormatter(value, format);\n                        var fusion              = new ZSGrid.FusionNode();\n                        var node                = new ZSGrid.TextNode(formattedValue, styles.Bold, styles.Italic, styles.Underline, styles.StrikeThrough, styles.Overline, styles.Color, styles.Size, styles.Font);  //NO I18N\n                        fusion.addNode(node);\n                        cell.addInForeGroundStack(fusion);\n                    } else {\n                        var fusion           = new ZSGrid.FusionNode();\n                        var textAndLinkArray = this.getTextAndLinkFromTextFieldData(value);\n\n                        for(var i = 0; i < textAndLinkArray.length; i++) {\n                            var meta           = textAndLinkArray[i];\n                            var key            = Object.keys(meta)[0];\n                            var value_         = meta[key];\n                            var formattedValue = ZSGrid.singleLineTextFormatter(value_, format);\n                            \n                            switch(key) {\n                                case 'text': {//NO I18N\n                                    fusion.addNode(new ZSGrid.TextNode(formattedValue, styles.Bold, styles.Italic, styles.Underline, styles.StrikeThrough, styles.Overline, styles.Color, styles.Size, styles.Font));\n                                    break;\n                                }\n            \n                                case 'tel': {//NO I18N\n                                    var underline = true;\n                                    fusion.addNode(new ZSGrid.FusionHyperLinkNode(formattedValue, TEL + formattedValue, styles.Bold, styles.Italic, underline, styles.StrikeThrough, styles.Overline, this.getColorForLink(styles.Color), styles.Size, styles.Font));\n                                    break;\n                                }\n            \n                                case 'email': {//NO I18N\n                                    var underline = true;\n                                    fusion.addNode(new ZSGrid.FusionHyperLinkNode(formattedValue, MAILTO + formattedValue, styles.Bold, styles.Italic, underline, styles.StrikeThrough, styles.Overline, this.getColorForLink(styles.Color), styles.Size, styles.Font));\n                                    break;\n                                }\n            \n                                case 'url': {//NO I18N\n                                    var underline = true;\n                                    fusion.addNode(new ZSGrid.FusionHyperLinkNode(formattedValue, formattedValue, styles.Bold, styles.Italic, underline, styles.StrikeThrough, styles.Overline, this.getColorForLink(styles.Color), styles.Size, styles.Font));\n                                    break;\n                                }\n            \n                                default:\n                                    throw('Unknown key value pair in textAndLinkArray');  // No I18N\n                            }\n                        };\n                        cell.addInForeGroundStack(fusion);\n                    }\n                }\n                break;\n\n            case FORMULA_DATE:\n                var locale     = returnTypeFormats[0];\n                var dateFormat = returnTypeFormats[1];\n                var timeZone   = returnTypeFormats[4];\n                // var date       = ZSGrid.dateFormatter(value, locale, dateFormat, timeZone);\n\n                let date;\n                const absoluteDate = decodeToAbsoluteDate(value);\n                if(!absoluteDate) {\n                    date = '';\n                } else {\n                    date = getDateStringToBeRendered(absoluteDate, locale, dateFormat);\n                }\n\n                if(date) {\n                    var fusion = new ZSGrid.FusionNode();\n                    var node;\n\n                    var hourCycle = returnTypeFormats[3];\n                    if(!hourCycle) {\n                        node = new ZSGrid.TextNode(date, styles.Bold, styles.Italic, styles.Underline, styles.StrikeThrough, styles.Overline, styles.Color, styles.Size, styles.Font);\n                        fusion.addNode(node);\n                    }else {\n                        var timeFormat = returnTypeFormats[2];\n                        // var time    = ZSGrid.timeFormatter(value, locale, timeFormat, hourCycle, timeZone);\n\n                        let time;\n                        const absoluteDate = decodeToAbsoluteDate(value);\n                        if(!absoluteDate) {\n                            time = '';\n                        } else {\n                            time = getTimeStringToBeRendered(absoluteDate, locale, timeFormat, hourCycle);\n                        }\n\n                        node           = new ZSGrid.TextNode(`${date}   ${time}`, styles.Bold, styles.Italic, styles.Underline, styles.StrikeThrough, styles.Overline, styles.Color, styles.Size, styles.Font);\n                        fusion.addNode(node);\n                    }\n                    cell.addInForeGroundStack(fusion);\n                }\n                break;\n\n            case FORMULA_CURRENCY: {\n                var locale            = returnTypeFormats[0];\n                var symbol            = returnTypeFormats[1];\n                var position          = returnTypeFormats[2];\n                var precision         = returnTypeFormats[3];\n                var thousandSeparator = returnTypeFormats[4];\n\n                var content = ZSGrid.currencyFormatter(value, locale, symbol, thousandSeparator, precision, position, false);\n                if(content) {\n                    if(position === ZSGrid.CURRENCY_POSITION.ACCOUNTING) {\n                        var newContent = content.replaceAll(symbol, '');\n                        var node       = new ZSGrid.AccountingNode(symbol, newContent, \"\", styles.Bold, styles.Italic, styles.Underline, styles.StrikeThrough, styles.Overline, styles.Color, styles.Size, styles.Font);\n                        cell.addInForeGroundStack(node);\n                    }else {\n                        var fusion = new ZSGrid.FusionNode();          \n                        var node   = new ZSGrid.TextNode(content, styles.Bold, styles.Italic, styles.Underline, styles.StrikeThrough, styles.Overline, styles.Color, styles.Size, styles.Font);\n                        fusion.addNode(node);\n                        cell.addInForeGroundStack(fusion);\n                    }\n                }\n                break;\n            }\n\n            case FORMULA_PERCENT:\n                var locale            = returnTypeFormats[0];\n                var precision         = returnTypeFormats[1];\n                var showSymbol        = returnTypeFormats[2];\n                var thousandSeparator = returnTypeFormats[3];\n\n                var content = ZSGrid.percentFormatter(value, locale, thousandSeparator, precision, showSymbol);\n                if(content) {\n                    var fusion = new ZSGrid.FusionNode();\n                    let node1;\n                    if(showSymbol){\n                        content = content.replaceAll('%', '');\n                        node1   = new ZSGrid.TextNode(\"%\", styles.Bold, styles.Italic, styles.Underline, styles.StrikeThrough, styles.Overline, this.symbolColor, styles.Size*(3/4), styles.Font);\n                    }\n                    var node = new ZSGrid.TextNode(content, styles.Bold, styles.Italic, styles.Underline, styles.StrikeThrough, styles.Overline, styles.Color, styles.Size, styles.Font);\n                    fusion.addNode(node);\n                    node1 && fusion.addNode(node1);\n                    cell.addInForeGroundStack(fusion);\n                }\n                break;\n        }\n    }\n\n    date.TertiaryReadOnlyComponent.prototype.setData = function(ValueHolder) {\n        const timeStamp  = Number(ValueHolder.getTimeStamp());\n        const hourCycle  = ValueHolder.getHourCycle();\n        if(!timeStamp) {\n            this.setDate('');\n        }else {\n            if(!hourCycle) {\n                const date = ValueHolder.getDate();\n                this.setDate(date);\n            }else {\n                const date = ValueHolder.getDate();\n                const time = ValueHolder.getTime();\n                this.setDate(date + ' ' + time);\n            }\n        }\n        this.valueHolder = ValueHolder;\n        this.timeStamp   = timeStamp;\n    }\n\n    multiSelect.ValueHolderForForm.prototype.decorateCell = function(cell) {\n        const selectedIDsLength = this.selectedIDs.length;\n        if(selectedIDsLength > 0) {\n            let index;\n            let ID;\n            let color;\n            let name;\n            let bubble1;\n            const styles = this.styles;\n            const node   = new ZSGrid.FusionNode();\n\n            const coloredOptions = this.getColoredOptions();\n            if(!coloredOptions) {\n                color = `#${MULTISELECT_COLOR}`;\n                for(var i = 0; i < selectedIDsLength; i++) {\n                    ID         = this.selectedIDs[i];\n                    name       = this.multiSelectDS.getName(ID);\n                    var bubble = new ZSGrid.FusionBubbleNode(name, styles.Font, styles.Size, \"transparent\", color, styles.Color); // No I18N\n                    node.addNode(bubble);\n                }\n            }else {\n                for(var i = 0; i < selectedIDsLength; i++) {\n                    ID         = this.selectedIDs[i];\n                    color      = `#${this.multiSelectDS.getColor(ID)}`;\n                    name       = this.multiSelectDS.getName(ID);\n                    var bubble = new ZSGrid.FusionBubbleNode(name, styles.Font, styles.Size, \"transparent\", color, styles.Color); // No I18N\n                    node.addNode(bubble);\n                }\n            }\n            cell.addInForeGroundStack(node);\n        }\n    }\n\n    multiSelect.ValueHolderForForm.prototype.getMultiSelect = function() {// TODO: New Base Color - changes: Remove the commented codes after 6 months of release..\n        const options = {};\n        let id;\n        let color;\n        let name;\n        let option;\n\n        const coloredOptions = this.getColoredOptions();\n        if(!coloredOptions) {\n            // color = getLightColor(MULTISELECT_COLOR);\n            color = MULTISELECT_COLOR;\n            for(var i = 0; i < this.selectedIDs.length; i++) {\n                id          = this.selectedIDs[i];\n                name        = this.multiSelectDS.getName(id);\n                option      = new multiSelect.ReadOnlyOption(id);\n                option.setColor(`${HASH}${color}`);\n                option.setName(name);\n                options[id] = option;\n            }\n        }else {\n            for(var i = 0; i < this.selectedIDs.length; i++) {\n                id          = this.selectedIDs[i];\n                // color       = getLightColor(this.multiSelectDS.getColor(id));\n                color       = this.multiSelectDS.getColor(id);\n                name        = this.multiSelectDS.getName(id);\n                option      = new multiSelect.ReadOnlyOption(id);\n                option.setColor(`${HASH}${color}`);\n                option.setName(name);\n                options[id] = option;\n            }\n        }\n        return options;\n    }\n\n    multiSelect.ValueHolderForForm.prototype.getEditableMultiSelect = function() {// TODO: New Base Color - changes: Remove the commented codes after 6 months of release..\n        const options = {};\n        let id;\n        let color;\n        let name;\n        let option;\n\n        const coloredOptions = this.getColoredOptions();\n        if(!coloredOptions) {\n            // color = getLightColor(MULTISELECT_COLOR);\n            color = MULTISELECT_COLOR;\n            for(var i = 0; i < this.selectedIDs.length; i++) {\n                id          = this.selectedIDs[i];\n                name        = this.multiSelectDS.getName(id);\n                option      = new multiSelect.ReadWriteOption(id);\n                option.setColor(`${HASH}${color}`);\n                option.setName(name);\n                options[id] = option;\n            }\n        }else {\n            for(var i = 0; i < this.selectedIDs.length; i++) {\n                id          = this.selectedIDs[i];\n                // color       = getLightColor(this.multiSelectDS.getColor(id));\n                color       = this.multiSelectDS.getColor(id);\n                name        = this.multiSelectDS.getName(id);\n                option      = new multiSelect.ReadWriteOption(id);\n                option.setColor(`${HASH}${color}`);\n                option.setName(name);\n                options[id] = option;\n            }\n        }\n        return options;\n    }\n\n    multiSelect.ValueHolderForForm.prototype.getEditableButtonTypeMultiSelect = function() {// TODO: New Base Color - changes: Remove the commented codes after 6 months of release..\n        const options = {};\n        let id;\n        let color;\n        let name;\n        let option;\n\n        const coloredOptions = this.getColoredOptions();\n        if(!coloredOptions) {\n            // color = getLightColor(MULTISELECT_COLOR);\n            color = MULTISELECT_COLOR;\n            for(var i = 0; i < this.selectedIDs.length; i++) {\n                id          = this.selectedIDs[i];\n                name        = this.multiSelectDS.getName(id);\n                option      = new multiSelect.ReadWriteButtonOption(id);\n                option.setColor(`${HASH}${color}`);\n                option.setName(name);\n                options[id] = option;\n            }\n        }else {\n            for(var i = 0; i < this.selectedIDs.length; i++) {\n                id          = this.selectedIDs[i];\n                // color       = getLightColor(this.multiSelectDS.getColor(id));\n                color       = this.multiSelectDS.getColor(id);\n                name        = this.multiSelectDS.getName(id);\n                option      = new multiSelect.ReadWriteButtonOption(id);\n                option.setColor(`${HASH}${color}`);\n                option.setName(name);\n                options[id] = option;\n            }\n        }\n        return options;\n    }\n\n    multiSelect.ValueHolderForForm.prototype.getFilteredOptions = function() {// TODO: New Base Color - changes: Remove the commented codes after 6 months of release..\n        const filteredIDs = this.getFilteredIDs();\n        const options     = {};\n        let id;\n        let color;\n        let name;\n        let option;\n        const coloredOptions = this.getColoredOptions();\n        if(!coloredOptions) {\n            // color = getLightColor(MULTISELECT_COLOR);\n            color = MULTISELECT_COLOR;\n            for(var i = 0; i < filteredIDs.length; i++) {\n                id          = filteredIDs[i];\n                name        = this.multiSelectDS.getName(id);\n                option      = new findAnItem.Option(id);\n                option.setColor(`${HASH}${color}`);\n                option.setName(name);\n                options[id] = option;\n            }\n        }else {\n            for(var i = 0; i < filteredIDs.length; i++) {\n                id          = filteredIDs[i];\n                // color       = getLightColor(this.multiSelectDS.getColor(id));\n                color       = this.multiSelectDS.getColor(id);\n                name        = this.multiSelectDS.getName(id);\n                option      = new findAnItem.Option(id);\n                option.setColor(`${HASH}${color}`);\n                option.setName(name);\n                options[id] = option;\n            }\n        }\n        return options;\n    }\n\n    multiSelect.ValueHolderForForm.prototype.getFindAnItemCheckboxOptions = function() {// TODO: New Base Color - changes: Remove the commented codes after 6 months of release..\n        const options  = {};\n        const totalIDs = this.getFindAnItemCheckboxOptionIDs();\n        let id;\n        let color;\n        let name;\n        let option;\n        const coloredOptions = this.getColoredOptions();\n        if(!coloredOptions) {\n            // color = getLightColor(MULTISELECT_COLOR);\n            color = MULTISELECT_COLOR;\n            for(var i = 0; i < totalIDs.length; i++) {\n                id          = totalIDs[i];\n                name        = this.multiSelectDS.getName(id);\n                option      = new findAnItem.CheckboxOption(id);\n                option.setColor(`${HASH}${color}`);\n                option.setName(name);\n                options[id] = option;\n            }\n        }else {\n            for(var i = 0; i < totalIDs.length; i++) {\n                id          = totalIDs[i];\n                // color       = getLightColor(this.multiSelectDS.getColor(id));\n                color       = this.multiSelectDS.getColor(id);\n                name        = this.multiSelectDS.getName(id);\n                option      = new findAnItem.CheckboxOption(id);\n                option.setColor(`${HASH}${color}`);\n                option.setName(name);\n                options[id] = option;\n            }\n        }\n\n        for(var i = 0; i < this.selectedIDs.length; i++) {\n            id     = this.selectedIDs[i];\n            option = options[id];\n            option && option.addActive();\n        }\n\n        return options;\n    }\n\n    multiSelect.ValueHolderForForm.prototype.getMultiSelectCheckboxType = function() {\n        const options  = {};\n        const totalIDs = this.getTotalIDs();\n        let id;\n        let color;\n        let name;\n        let option;\n        const coloredOptions = this.getColoredOptions();\n        if(!coloredOptions) {\n            color = MULTISELECT_COLOR;\n            for(var i = 0; i < totalIDs.length; i++) {\n                id     = totalIDs[i];\n                name   = this.multiSelectDS.getName(id);\n                option = new multiSelect.CheckboxTypeReadOnlyOption();\n                option.setColor(color);\n                option.setName(name);\n                options[id] = option;\n            }\n        }else {\n            for(var i = 0; i < totalIDs.length; i++) {\n                id     = totalIDs[i];\n                color  = this.multiSelectDS.getColor(id);\n                name   = this.multiSelectDS.getName(id);\n                option = new multiSelect.CheckboxTypeReadOnlyOption();\n                option.setColor(color);\n                option.setName(name);\n                options[id] = option;\n            }\n        }\n        return options;\n    }\n\n    multiSelect.ValueHolderForForm.prototype.getEditableMultiSelectCheckboxType = function() {\n        const options  = {};\n        const totalIDs = this.getTotalIDs();\n        let id;\n        let color;\n        let name;\n        let option;\n        const coloredOptions = this.getColoredOptions();\n        if(!coloredOptions) {\n            color = MULTISELECT_COLOR;\n            for(var i = 0; i < totalIDs.length; i++) {\n                id     = totalIDs[i];\n                name   = this.multiSelectDS.getName(id);\n                option = new multiSelect.CheckboxTypeReadWriteOption(id);\n                option.setColor(color);\n                option.setName(name);\n                options[id] = option;\n            }\n        }else {\n            for(var i = 0; i < totalIDs.length; i++) {\n                id     = totalIDs[i];\n                color  = this.multiSelectDS.getColor(id);\n                name   = this.multiSelectDS.getName(id);\n                option = new multiSelect.CheckboxTypeReadWriteOption(id);\n                option.setColor(color);\n                option.setName(name);\n                options[id] = option;\n            }\n        }\n        return options;\n    }\n\n    singleSelect.ValueHolderForForm.prototype.decorateCell = function(cell) {// TODO: New Base Color - changes: Remove the commented codes after 6 months of release..\n        if(this.value) {\n            const styles = this.styles;\n            let color;\n            const coloredOptions = this.getColoredOptions();\n            if(!coloredOptions) {\n                // color = `#${MULTI_SELECT_COLOR}`;\n                color = MULTISELECT_COLOR;\n            }else {\n                color = this.singleSelectDS.getColor(this.value);\n            }\n            const text = this.singleSelectDS.getName(this.value);\n\n            const innerCircleColor = getBubbleNodeInnerCircleColor(color);\n            const outerCircleColor = getBubbleNodeOuterCircleColor(color);\n\n            // const bubble  = new ZSGrid.FusionBubbleWithColor(text, styles.Font, styles.Size, \"transparent\", color, styles.Color); // No I18N // TODO: New Base Color - changes: Remove the commented codes after 6 months of release..\n            const bubble  = new ZSGrid.FusionBubbleWithColor(text, styles.Font, styles.Size, \"transparent\", `${HASH}${color}`, styles.Color, `${HASH}${innerCircleColor}`, `${HASH}${outerCircleColor}`); // No I18N\n            const node    = new ZSGrid.FusionNode();\n            node.addNode(bubble);\n            cell.addInForeGroundStack(node);\n        }\n    }\n\n\n    singleSelect.ValueHolderForForm.prototype.getSingleSelect = function() {\n        const options = {};\n        let color;\n        const coloredOptions = this.getColoredOptions();\n        if(!coloredOptions) {\n            // color = MULTI_SELECT_COLOR;\n            color = MULTISELECT_COLOR;\n        }else {\n            color = this.singleSelectDS.getColor(this.value);\n        }\n        if(this.value) {\n            const option = new singleSelect.ReadOnlyOption();\n            const name   = this.singleSelectDS.getName(this.value);\n            option.setColor(color);\n            option.setName(name);\n            options[this.value] = option;\n        }\n        return options;\n    }\n\n    singleSelect.ValueHolderForForm.prototype.getTotalOptions = function() {\n        const totalIDs = this.getTotalIDs();\n        const options  = {};\n        let id;\n        let color;\n        let name;\n        let option;\n        const coloredOptions = this.getColoredOptions();\n        if(!coloredOptions) {\n            // color = MULTI_SELECT_COLOR;\n            color = MULTISELECT_COLOR;\n            for(var i = 0; i < totalIDs.length; i++) {\n                id     = totalIDs[i];\n                name   = this.singleSelectDS.getName(id);\n                option = new findAnItem.SingleSelectOption(id);\n                option.setColor(color);\n                option.setName(name);\n                options[id] = option;\n            }\n        }else {\n            for(var i = 0; i < totalIDs.length; i++) {\n                id     = totalIDs[i];\n                color  = this.singleSelectDS.getColor(id);\n                name   = this.singleSelectDS.getName(id);\n                option = new findAnItem.SingleSelectOption(id);\n                option.setColor(color);\n                option.setName(name);\n                options[id] = option;\n            }\n        }\n        return options;\n    }\n\n    singleSelect.ValueHolderForForm.prototype.getRadioTypeReadOnlyOptions = function() {\n        const options  = {};\n        const totalIDs = this.getTotalIDs();\n        let id;\n        let color;\n        let name;\n        let option;\n        const coloredOptions = this.getColoredOptions();\n        if(!coloredOptions) {\n            // color = MULTI_SELECT_COLOR;\n            color = MULTISELECT_COLOR;\n            for(var i = 0; i < totalIDs.length; i++) {\n                id          = totalIDs[i];\n                name        = this.singleSelectDS.getName(id);\n                option      = new singleSelect.RadioTypeReadOnlyOption();\n                option.setColor(color);\n                option.setName(name);\n                options[id] = option;\n            }\n        }else {\n            for(var i = 0; i < totalIDs.length; i++) {\n                id          = totalIDs[i];\n                color       = this.singleSelectDS.getColor(id);\n                name        = this.singleSelectDS.getName(id);\n                option      = new singleSelect.RadioTypeReadOnlyOption();\n                option.setColor(color);\n                option.setName(name);\n                options[id] = option;\n            }\n        }\n        return options;\n    }\n\n    singleSelect.ValueHolderForForm.prototype.getRadioTypeReadWriteOptions = function() {\n        const options  = {};\n        const totalIDs = this.getTotalIDs();\n        let id;\n        let color;\n        let name;\n        let option;\n        const coloredOptions = this.getColoredOptions();\n        if(!coloredOptions) {\n            // color = MULTI_SELECT_COLOR;\n            color = MULTISELECT_COLOR;\n            for(var i = 0; i < totalIDs.length; i++) {\n                id          = totalIDs[i];\n                name        = this.singleSelectDS.getName(id);\n                option      = new singleSelect.RadioTypeReadWriteOption(id);\n                option.setColor(color);\n                option.setName(name);\n                options[id] = option;\n            }\n        }else {\n            for(var i = 0; i < totalIDs.length; i++) {\n                id          = totalIDs[i];\n                color       = this.singleSelectDS.getColor(id);\n                name        = this.singleSelectDS.getName(id);\n                option      = new singleSelect.RadioTypeReadWriteOption(id);\n                option.setColor(color);\n                option.setName(name);\n                options[id] = option;\n            }\n        }\n        return options;\n    }\n\n    findAnItem.CheckboxOption.prototype.setName = function(name) {\n        this.name.textContent = name;\n        this.name.title       = name;\n    }\n\n    findAnItem.CollaboratorMSCheckboxWithEmailIDOption.prototype.setName = function(name) {\n        this.name.textContent = name;\n        this.name.title       = name;\n    }\n    \n    multiSelect.FormCheckboxTypeReadOnlyOption.prototype.setColor = function(color) {\n        this.dom.style.setProperty(CSS_VARIABLES.SINGLE_SELECT_OVAL, `${HASH}${color}`);\n    }\n\n    multiSelect.FormCheckboxTypeReadWriteOption.prototype.setColor = multiSelect.FormCheckboxTypeReadOnlyOption.prototype.setColor;\n\n    collaboratorMS.ReadWriteOption.prototype.getCloseButton = function() {\n        return this.closeButton;\n    }\n\n    ZSGrid.Editors.TablesFormulaEditor.prototype.valueSetter = function(element, text) {\n        setAsFormula.call(this, element, text);\n    }\n\n    function setAsFormula(element, text) {\n        const self = this;\n\n        text = this.tablesFormulaEditorInteracter.convertFieldNamesToFieldIDs(text);\n\n        const regex               = this.tablesFormulaEditorInteracter.getRegexCollection();\n        const FIELD_ID_REGEX      = regex.FIELD_ID_REGEX;\n        const FORMULA_REGEX       = regex.FORMULA_REGEX;\n        const UNKNOWN_FIELD_ID    = regex.UNKNOWN_FIELD_ID;\n\n        const matches = text.match(FIELD_ID_REGEX);\n        if(matches) {\n            element.innerHTML = \"\";\n\n            const fragment = document.createDocumentFragment();\n            const contents = text.match(FORMULA_REGEX);\n\n            // console.log(contents);\n            let content;\n\n            let array;\n            let fieldIDWithBraces;\n            let fieldID;\n            let fieldName;\n            let style;\n            let node;\n            let textNode;\n\n            for(let i = 0; i < contents.length; i++) {\n\n                content = contents[i];\n                array   = content.match(FIELD_ID_REGEX);\n                if(array) {\n                    fieldIDWithBraces        = array[0];\n                    fieldID                  = fieldIDWithBraces.substring(1, fieldIDWithBraces.length - 1);\n                    // fieldID                  = ~~fieldID;\n                    fieldName                = this.tablesFormulaEditorInteracter.getFieldName(fieldID);\n                    if(!fieldName) {\n                        // fieldName = UNKNOWN_FIELD_ID + fieldID;\n                        fieldName = UNKNOWN_FIELD_ID;\n                        node      = new ZSGrid.Editors.Formula.FormulaErrorOperand(null, this.formulaOperandSetInteracter);\n                    }else {\n                        node = new ZSGrid.Editors.Formula.FormulaOperand(fieldID, this.formulaOperandSetInteracter);\n                    }\n                    node.setName(fieldName);\n                    node.appendTo(fragment);\n\n                }else {\n                    fragment.appendChild(document.createTextNode(content));\n                }\n            }\n\n            fragment.appendChild(document.createElement(\"br\"));\n            element.appendChild(fragment);\n        }else {\n            ZSGrid.Editors.EditorShims.setText(element, text);\n        }\n    }\n\n    ZSGrid.Editors.BasicEditor.prototype.focus = function() {\n        const value  = this.value;\n        const length = value.length;\n        if(!length) {\n            ZSGrid.Editors.EditorShims.setText(this.Editor, '');\n        }\n        setTimeout(() => { // number field focus issue fix\n            this.setSelectionRange(length, length);\n        });\n    }\n\n    ZSGrid.Editors.BasicEditor.prototype.valueSetter = (elem, val) => {\n        ZSGrid.Editors.EditorShims.setText(elem, val);\n        if(!val) {\n            elem.innerHTML = '';\n            ZSGrid.Editors.EditorShims.setText(elem, '');\n        }\n    }\n\n    ZSGrid.Editors.TablesBasicEditor.prototype.customPreventDefault = ev => {\n        const keyCode = ev.keyCode || ev.which;\n        if(keyCode === 13) {\n                    if((ev.altKey || ev.shiftKey) && !ev.ctrlKey && !ev.metaKey) {\n                        return false;\n                    }\n                    return true;\n        }\n        return false;\n    }\n\n    if(globalThis.origin === TABLES_URL) {\n        createdTime.ValueHolder.prototype.timeZone = TIME_ZONES.LOS_ANGELES;\n    }else {\n        createdTime.ValueHolder.prototype.timeZone = TIME_ZONES.KOLKATA;\n    }\n    modifiedTime.ValueHolder.prototype.timeZone = createdTime.ValueHolder.prototype.timeZone;\n    date.ValueHolder.prototype.timeZone         = null;\n\n    CraftGrid.Nodes.Fusion.LinkNode.prototype.space = 6;\n\n    function getLightColor(color) {\n        return Utility.getColor('ffffff', color, .2); // No I18N\n    }\n\n    function getDarkColor(color) {\n        return Utility.getColor('ffffff', color, .90); // No I18N\n    }\n\n    function getModifiedColor(color) {\n        if(color.length > 6){\n            const split   = color.split(\",\");\n            color       = split[0];\n            const lighter = parseInt(split[1]);\n            color       = Utility.getColor(\"ffffff\", color, lighter/100); //No I18N\n        }else {\n            color = `#${color}`;\n        }\n        return color;\n    }\n\n    ZSGrid.Pane.prototype.getViewport = function(){\n        //DOMGRID_TODO: Remove the comment once grid dom rendering completed\n        // let endRow = this.iHave.endRow;\n        // if(endRow >= interacter.getActualRow()){\n        //     endRow = interacter.getActualRow() - 1;\n        // }\n        // return [this.iHave.startRow, this.iHave.startCol, endRow, this.iHave.endCol];\n\n        return [0,0,0,0];\n\n    }\n\n    ZSGrid.RowHeader.prototype.getMergeInfo = (row, col) => {\n        return null;\n    }\n\n    ZSGrid.ColumnHeader.prototype.getMergeInfo = (row, col) => {\n        return null;\n    }\n\n    linkFieldMultiSelect.GridReadOnlyComponent.prototype.setData = function (ValueHolder) {\n        this.valueHolder                  = ValueHolder;\n        this.linkFieldContainer.innerHTML = '';\n\n        this.recordIDs      = ValueHolder.getRecordIDs();\n        var linkField       = ValueHolder.getLinkField();\n        var recordIDsLength = this.recordIDs.length;\n        var allowDuplicateLinkedRecords = typeof ValueHolder.getAllowDuplicateLinkedRecords === 'function' && ValueHolder.getAllowDuplicateLinkedRecords(); // No I18N\n        var recordCounts = (typeof ValueHolder.getRecordCounts === 'function' && ValueHolder.getRecordCounts()) || []; // No I18N\n        var recordNames = typeof ValueHolder.getRecordNames === 'function' ? ValueHolder.getRecordNames() : null; // No I18N\n\n        if(this.isOptionContainerLimitExceeded(ValueHolder, recordIDsLength)) {\n            this.exceedOptionContainer(recordIDsLength);\n            return;\n        }\n\n        if (allowDuplicateLinkedRecords) {\n            var ReadOnlyOption = linkFieldMultiSelect.ReadOnlyOption;\n            var id, name, option, moreOptionCount;\n            for (var i = 0; i < this.recordIDs.length; i++) {\n                id = this.recordIDs[i];\n                name = recordNames && recordNames[i] != null ? recordNames[i] : (linkField[id] && linkField[id].getName && linkField[id].getName());\n                option = new ReadOnlyOption(id);\n                option.setColor(ValueHolder.color);\n                option.setName(name);\n                option.insertLast(this.linkFieldContainer);\n                option.setCallback(this.callback);\n                option.setComponent(this);\n                decorateLegacyLinkOptionDom(option.getDom && option.getDom() || option.dom, recordCounts[i]);\n\n                moreOptionCount = recordIDsLength - i;\n                if(this.isOptionContainerLimitExceeded(ValueHolder, moreOptionCount - 1)) {\n                    option.remove();\n                    if(i === 0) {\n                        var object = this.isFirstOptionToBeAppended(recordIDsLength, ValueHolder.thresholdWidth);\n                        if(object.status) {\n                            object.append(option);\n                            option.setMaxWidth(object.maxWidth);\n                            decorateLegacyLinkOptionDom(option.getDom && option.getDom() || option.dom, recordCounts[i]);\n                            return;\n                        }\n                    }\n                    this.exceedOptionContainer(moreOptionCount);\n                    return;\n                }\n            }\n            return;\n        }\n\n        var id, option, moreOptionCount;\n        var recordIDCountMap = {};\n        for(var i = 0; i < this.recordIDs.length; i++) {\n            id     = this.recordIDs[i];\n            option = linkField[id];\n            var seenCount = recordIDCountMap[id] || 0;\n            if (seenCount === 0) {\n                option.insertLast(this.linkFieldContainer);\n                option.setCallback(this.callback);\n                option.setComponent(this);\n            } else {\n                var optionDom = option && option.getDom && option.getDom();\n                var clonedDom = optionDom && optionDom.cloneNode && optionDom.cloneNode(true);\n                clonedDom && this.linkFieldContainer.appendChild(clonedDom);\n            }\n            recordIDCountMap[id] = seenCount + 1;\n\n            moreOptionCount = recordIDsLength - i;\n            if(this.isOptionContainerLimitExceeded(ValueHolder, moreOptionCount - 1)) {\n                option.remove();\n\n                if(i === 0) {\n                    var object = this.isFirstOptionToBeAppended(recordIDsLength, ValueHolder.thresholdWidth);\n                    if(object.status) {\n                        object.append(option);\n                        option.setMaxWidth(object.maxWidth);\n                        return;\n                    }\n                }\n                \n                this.exceedOptionContainer(moreOptionCount);\n                return;\n            }\n        }\n    }\n\n    linkFieldMultiSelect.GridReadOnlyComponent.prototype.setFullData = function(ValueHolder) {\n        this.linkFieldContainer.innerHTML = '';\n        this.recordIDs                    = ValueHolder.getRecordIDs();\n        var linkField                     = ValueHolder.getLinkField();\n        var allowDuplicateLinkedRecords = typeof ValueHolder.getAllowDuplicateLinkedRecords === 'function' && ValueHolder.getAllowDuplicateLinkedRecords(); // No I18N\n        var recordCounts = (typeof ValueHolder.getRecordCounts === 'function' && ValueHolder.getRecordCounts()) || []; // No I18N\n        var recordNames = typeof ValueHolder.getRecordNames === 'function' ? ValueHolder.getRecordNames() : null; // No I18N\n\n        if (allowDuplicateLinkedRecords) {\n            var ReadOnlyOption = linkFieldMultiSelect.ReadOnlyOption;\n            for (var i = 0; i < this.recordIDs.length; i++) {\n                var id = this.recordIDs[i];\n                var name = recordNames && recordNames[i] != null ? recordNames[i] : (linkField[id] && linkField[id].getName && linkField[id].getName());\n                var option = new ReadOnlyOption(id);\n                option.setColor(ValueHolder.color);\n                option.setName(name);\n                option.insertLast(this.linkFieldContainer);\n                option.setCallback(this.callback);\n                option.setComponent(this);\n                decorateLegacyLinkOptionDom(option.getDom && option.getDom() || option.dom, recordCounts[i]);\n            }\n            this.valueHolder = ValueHolder;\n            return;\n        }\n\n        var recordIDCountMap              = {};\n        var id, option;\n        for(var i = 0; i < this.recordIDs.length; i++) {\n            id     = this.recordIDs[i];\n            option = linkField[id];\n            var seenCount = recordIDCountMap[id] || 0;\n            if (seenCount === 0) {\n                option.insertLast(this.linkFieldContainer);\n                option.setCallback(this.callback);\n                option.setComponent(this);\n            } else {\n                var optionDom = option && option.getDom && option.getDom();\n                var clonedDom = optionDom && optionDom.cloneNode && optionDom.cloneNode(true);\n                clonedDom && this.linkFieldContainer.appendChild(clonedDom);\n            }\n            recordIDCountMap[id] = seenCount + 1;\n        }\n        this.valueHolder = ValueHolder;\n    }\n\n    function renderRVReadWriteLinkFieldDuplicateChips(component, ValueHolder) {\n        component.linkFieldContainer.innerHTML = '';\n        var recordIDs = ValueHolder.getRecordIDs();\n        var recordNames = ValueHolder.getRecordNames();\n        var color = ValueHolder.color;\n        var recordCounts = (typeof ValueHolder.getRecordCounts === 'function' && ValueHolder.getRecordCounts()) || []; // No I18N\n        var ReadWriteOption = linkFieldMultiSelect.ReadWriteOption;\n        var id, name, option;\n\n        for (var i = 0; i < recordIDs.length; i++) {\n            id = recordIDs[i];\n            name = recordNames[i];\n            option = new ReadWriteOption(id);\n            option.setColor(color);\n            option.setName(name);\n            option.setCallback(component.callback);\n            option.setComponent(component);\n            option.insertLast(component.linkFieldContainer);\n            decorateLegacyLinkOptionDom(option.getDom && option.getDom() || option.dom, recordCounts[i]);\n        }\n        if (component.plusIconButton && component.plusIconButton.nodeType === 1) {\n            component.linkFieldContainer.appendChild(component.plusIconButton);\n        } else if (component.plusButton && component.plusButton.nodeType === 1) {\n            component.linkFieldContainer.appendChild(component.plusButton);\n        }\n        component.valueHolder = ValueHolder;\n    }\n\n    function patchRecordViewLinkFieldDuplicateSetData(componentClass) {\n        if (!componentClass || !componentClass.prototype || !componentClass.prototype.setData) {\n            return;\n        }\n        var originalSetData = componentClass.prototype.setData;\n        componentClass.prototype.setData = function(ValueHolder) {\n            var allowDuplicateLinkedRecords = typeof ValueHolder.getAllowDuplicateLinkedRecords === 'function' && ValueHolder.getAllowDuplicateLinkedRecords(); // No I18N\n            if (allowDuplicateLinkedRecords) {\n                renderRVReadWriteLinkFieldDuplicateChips(this, ValueHolder);\n            } else {\n                originalSetData.call(this, ValueHolder);\n            }\n            var recordIDs = ValueHolder.getRecordIDs();\n            var dom = this.getDom();\n            if (recordIDs.length) {\n                dom.classList.remove('empty');//No I18N\n            } else {\n                dom.classList.add('empty');//No I18N\n            }\n        };\n    }\n\n    function patchPrimaryLinkFieldReadOnlySetData(componentClass) {\n        if (!componentClass || !componentClass.prototype || !componentClass.prototype.setData) {\n            return;\n        }\n        var originalSetData = componentClass.prototype.setData;\n        componentClass.prototype.setData = function(ValueHolder) {\n            var allowDuplicateLinkedRecords = typeof ValueHolder.getAllowDuplicateLinkedRecords === 'function' && ValueHolder.getAllowDuplicateLinkedRecords(); // No I18N\n            if (allowDuplicateLinkedRecords) {\n                this.linkFieldContainer.innerHTML = '';\n                var recordIDs = ValueHolder.getRecordIDs();\n                var recordNames = ValueHolder.getRecordNames();\n                var recordCounts = (typeof ValueHolder.getRecordCounts === 'function' && ValueHolder.getRecordCounts()) || []; // No I18N\n                var ReadOnlyOption = linkFieldMultiSelect.ReadOnlyOption;\n                for (var i = 0; i < recordIDs.length; i++) {\n                    var option = new ReadOnlyOption(recordIDs[i]);\n                    option.setColor(ValueHolder.color);\n                    option.setName(recordNames[i]);\n                    option.insertLast(this.linkFieldContainer);\n                    option.setComponent(this);\n                    option.setCallback(this.callback);\n                    decorateLegacyLinkOptionDom(option.getDom && option.getDom() || option.dom, recordCounts[i]);\n                }\n                this.valueHolder = ValueHolder;\n            } else {\n                originalSetData.call(this, ValueHolder);\n            }\n            decorateLinkChipsFromValueHolder(this, ValueHolder);\n        };\n    }\n\n    patchRecordViewLinkFieldDuplicateSetData(linkFieldMultiSelect.RVReadWriteComponent);\n    patchRecordViewLinkFieldDuplicateSetData(linkFieldMultiSelect.SecondaryReadWriteComponent);\n    // Float/grid edit chips must also redraw count badges on optimistic setData (not only ReadOnly).\n    patchRecordViewLinkFieldDuplicateSetData(linkFieldMultiSelect.GridReadWriteComponent);\n    patchPrimaryLinkFieldReadOnlySetData(linkFieldMultiSelect.PrimaryReadOnlyComponent);\n    patchPrimaryLinkFieldReadOnlySetData(linkFieldMultiSelect.SecondaryReadOnlyComponent);\n    patchPrimaryLinkFieldReadOnlySetData(linkFieldMultiSelect.TertiaryReadOnlyComponent);\n\n    // Always submit allow-dup link cells as compact [[ids],[counts]] — never raw id join().\n    if (linkFieldMultiSelect.ValueHolder2 && linkFieldMultiSelect.ValueHolder2.prototype) {\n        linkFieldMultiSelect.ValueHolder2.prototype.toString = function toString() {\n            return encodeLinkValueFromValueHolder(this);\n        };\n    }\n    if (linkFieldMultiSelect.ValueHolder && linkFieldMultiSelect.ValueHolder.prototype) {\n        linkFieldMultiSelect.ValueHolder.prototype.toString = function toString() {\n            return encodeLinkValueFromValueHolder(this);\n        };\n    }\n\n    findAnItem.Component.prototype.setPlaceholder = function(placeholder) {\n        this.search.placeholder = placeholder;\n    }\n\n    collaboratorSS.ValueHolder.prototype.decorateCell = function (cell) {\n        if (this.value) {\n            var styles  = this.styles;\n            var color   = this.collaboratorDS.getColor();\n\n            const ultraLightColor = getUltraLightThemeColor(color);\n\n            var userName, userImageURL;\n            if (this.collaboratorDS.isActiveUser(this.value)) {\n                userName = this.collaboratorDS.getActiveUserName(this.value);\n                userImageURL = this.collaboratorDS.getActiveUserImageURL(this.value);\n            } else if (this.collaboratorDS.isInactiveUser(this.value)) {\n                userName = this.collaboratorDS.getInactiveUserName(this.value);\n                userImageURL = this.collaboratorDS.getInactiveUserImageURL(this.value);\n            } else if (this.collaboratorDS.isRemovedUser(this.value)) {\n                userName = this.collaboratorDS.getRemovedUserName(this.value);\n                !userName && (userName = this.getAnonymousUserName());\n                userImageURL = this.collaboratorDS.getRemovedUserImageURL(this.value);\n            } else if (this.collaboratorDS.isAnonymousUser(this.value)) {\n                userName = ANONYMOUS_USER;\n                userImageURL = this.collaboratorDS.getAnonymousUserImageURL(this.value);\n            }  else if (this.collaboratorDS.isSystemUser(this.value)) {\n                userName = this.collaboratorDS.getSystemUserName(this.value);\n                userImageURL = this.collaboratorDS.getSystemUserImageURL(this.value);\n            }\n\n            var self = this;\n            var fusion = new ZSGrid.FusionNode();\n            var node = new ZSGrid.FusionBubbleWithImage(userName, styles.Font, styles.Size, 'transparent', '#'+ultraLightColor, '#000', userImageURL, function () {//No I18N\n                self.callback && self.callback();\n            });\n            fusion.addNode(node);\n            cell.addInForeGroundStack(fusion);\n        }\n    }\n\n    collaboratorMS.ValueHolder.prototype.decorateCell = function (cell) {\n        var selectedIDsLength = this.selectedIDs.length;\n        if (selectedIDsLength > 0) {\n            var userID, color, userName, userImageURL;\n            var styles = this.styles;\n            var node = new ZSGrid.FusionNode();\n            for (var i = 0; i < selectedIDsLength; i++) {\n\n                userID = this.selectedIDs[i];\n                color = this.collaboratorDS.getColor();\n\n                const ultraLightColor = getUltraLightThemeColor(color);\n\n                var userName;\n                if (this.collaboratorDS.isActiveUser(userID)) {\n                    userName = this.collaboratorDS.getActiveUserName(userID);\n                    userImageURL = this.collaboratorDS.getActiveUserImageURL(userID);\n                } else if (this.collaboratorDS.isInactiveUser(userID)) {\n                    userName = this.collaboratorDS.getInactiveUserName(userID);\n                    userImageURL = this.collaboratorDS.getInactiveUserImageURL(userID);\n                } else if (this.collaboratorDS.isRemovedUser(userID)) {\n                    userName = this.collaboratorDS.getRemovedUserName(userID);\n                    !userName && (userName = this.getAnonymousUserName());\n                    userImageURL = this.collaboratorDS.getRemovedUserImageURL(userID);\n                }\n\n                var bubble = new ZSGrid.FusionBubbleWithImage(userName, styles.Font, styles.Size, 'transparent', '#'+ultraLightColor, '#000', userImageURL, this.callback);//No I18N\n                node.addNode(bubble);\n            }\n            cell.addInForeGroundStack(node);\n        }\n    }\n\n    createdBy.ValueHolder.prototype.decorateCell  = collaboratorSS.ValueHolder.prototype.decorateCell;\n    modifiedBy.ValueHolder.prototype.decorateCell = collaboratorSS.ValueHolder.prototype.decorateCell;\n\n    collaboratorSS.ReadOnlyOption.prototype.setColor = function(color) {\n        const ultraLightColor = getUltraLightThemeColor(color);\n        this.dom.style.setProperty(CSS_VARIABLES.SINGLE_SELECT_OVAL, `${HASH}${ultraLightColor}`);\n    }\n\n    collaboratorMS.ReadOnlyOption.prototype.setColor  = collaboratorSS.ReadOnlyOption.prototype.setColor;\n    collaboratorMS.ReadWriteOption.prototype.setColor = collaboratorSS.ReadOnlyOption.prototype.setColor;\n\n    findAnItem.CollaboratorSSWithEmailIDOption.prototype.setColor = function(color) {\n        const ultraLightColor = getUltraLightThemeColor(color);\n        this.nameContainer.style.setProperty(CSS_VARIABLES.SINGLE_SELECT_OVAL, `${HASH}${ultraLightColor}`);\n    }\n\n    findAnItem.CollaboratorMSCheckboxWithEmailIDOption.prototype.setColor = function(color) {\n        const ultraLightColor = getUltraLightThemeColor(color);\n        this.nameContainer.style.setProperty(CSS_VARIABLES.SINGLE_SELECT_OVAL, `${HASH}${ultraLightColor}`);\n    }\n\n    collaboratorSS.FormRadioTypeWithEmailIDReadOnlyOption.prototype.setColor = function(color) {\n        const ultraLightColor = getUltraLightThemeColor(color);\n        this.dom.style.setProperty(CSS_VARIABLES.SINGLE_SELECT_OVAL, `${HASH}${ultraLightColor}`);\n    }\n\n    collaboratorMS.FormCheckboxTypeWithEmailIDReadOnlyOption.prototype.setColor = function(color) {\n        const ultraLightColor = getUltraLightThemeColor(color);\n        this.dom.style.setProperty(CSS_VARIABLES.SINGLE_SELECT_OVAL, `${HASH}${ultraLightColor}`);\n    }\n\n    function getBackgroundColor() {\n        const baseID = TableState.getActiveBaseID();\n        const base   = Table.Data.Workspace.get(baseID);\n        return base.getColor();\n    }\n\n    ZSGrid.getModifiedColor = getModifiedColor;\n    ZSGrid.getLightColor    = getLightColor;\n    ZSGrid.getDarkColor     = getDarkColor;\n\n    const TableClasses = globalThis.Table.Classes || (globalThis.Table.Classes = {});\n    const Views \t   = TableClasses.Views       || (TableClasses.Views = {});\t\n    const Editor2      = Views.Editor2            || (Views.Editor2 = {});\n\n    Object.assign(Editor2, ZSGrid.FieldTypeComponents);\n\n    \n    // ZSConstants.Grid = Constants;\n    globalThis.ZSGrid          = ZSGrid;\n    globalThis.ZSConstants     = ZSConstants;\n    globalThis.ZSClass         = ZSClass;\n    globalThis.Engine          = Engine;\n","let TableLocale;\nexport function getLocale () {\n\treturn TableLocale;\n};\n\nfunction setLocale (locale) {\n\tTableLocale = locale;\n};\n\nexport const LOCALE = { EN_US: 'en-US', EN_IN: 'en-IN' }; //No I18N\n\nsetLocale('en-US');// No I18N\n\n\n// TODO: The below functions are the TEMP CODES which are added for revokeFocus() method in \"KeyEventContextTree.js\"..\n// Either this will be removed once the keyContext implementation is done in the layout binder..\n// Or this will be removed once the keyContext implementation is completely removed from our product..\nlet dgInteracter;\nexport function getDGInteracter() {\n\treturn dgInteracter;\n}\n\nexport function setDGInteracter(dgInteracter_) {\n\tdgInteracter = dgInteracter_;\n}\n","\nclass CustomCallback {\n\tconstructor(fn, params) {\n\t\tthis.fn = fn;\n\t\tthis.params = params;\n\t}\n\n\tgenerateParams(params) {\n\t\treturn this.params.map(param => params[param])\n\t}\n\n\texecute(params) {\n\t\tthis.fn.apply(null, this.generateParams(params));\n\n\t}\n}\n\nexport class Pubsub {\n\tconstructor() {\n\t\tthis.subscribers = {};\n\t\tthis.order = ['BEFOREDATA', 'DATA', 'UI']; // No I18N\n\t}\n\n\tsubscribe(grp, event, callback, params) {\n\t\t\n\t\tif (!this.subscribers[event]) {\n\t\t\tthis.subscribers[event] = {};\n\t\t}\n\t\tif(!this.subscribers[event][grp]){\n\t\t\tthis.subscribers[event][grp] = [];\n\t\t}\n\n\t\tconst custCallback = new CustomCallback(callback, params);\n\n\t\tthis.subscribers[event][grp].push(custCallback);\n\t}\n\n\tpublish(event, params) {\n\t\tif (!this.subscribers[event]) { return };\n\t\tthis.order\n\t\t\t.map(_ => this.subscribers[event][_])\n\t\t\t.filter(_ => _ !== undefined)\n\t\t\t.flatMap(_ => _)\n\t\t\t.forEach(customCallback => customCallback.execute(params))\n\t}\n\n\tunsubscribe(grp, evt, funcRef) {\n\n\t\tconst subscribers = this.subscribers[evt][grp];\n\t\tfor (let i = 0; i < subscribers.length; i++) {\n\t\t\t(subscribers[i].fn === funcRef) && (subscribers.splice(i, 1));\n\t\t}\t\n\t}\n\n\texecOnce(grp, evt, funcRef, params) {\n\t\tconst self = this;\n\t\tfunction exec(params){\n\t\t\t// funcRef(params);\n\t\t\tfuncRef.apply(this, arguments);\n\t\t\tself.unsubscribe(grp, evt, exec);\n\t\t}\n\t\tself.subscribe(grp, evt, exec, params);\n\t}\n}\n\nexport const Response = new Pubsub();\n","export class Map {\n\tget(key) {\n\t\treturn this[key];\n\t}\n\n\tset(key, value) {\n\t\treturn this[key] = value;\n\t}\n\n\tdelete(key) {\n\t\tdelete this[key];\n\t}\n\thas(key) {\n\t\treturn this[key] !== undefined;\n\t}\n\tkeys() {\n\t\treturn Object.keys(this);\n\t}\n}\n","export class LinkedRecordID{\n    constructor(tableID, recordID){\n        this.tableID  = tableID\n        this.recordID = recordID\n    }\n    setRecordID(recordID){\n\t\tthis.recordID = recordID\n\t}\n\tgetRecordID(){\n\t\treturn this.recordID\n\t}\n    setTableID(tableID){\n\t\tthis.tableID = tableID\n\t}\n\tgetTableID(){\n\t\treturn this.tableID\n\t}\n\n}","import { LinkedRecordID } from \"./LinkedRecordID.js\";\n\n//TODO: remove the file when all state is moved to new state object\nexport class StateView {\n\tconstructor() {\n\t\tthis.activeRecordID = null\n\t\tthis.linkedRecordIDs =[] //TODO: Add this correspondinly for future\n\t\tthis.checkedRecords = [];\n\t\tthis.allChecked     = false;\n\t\tthis.floatRecords   = [];\n\t}\n\n\tsetActiveRecordID(recordID){\n\t\tthis.activeRecordID = recordID\n\t}\n\n\tgetActiveRecordID(){\n\t\treturn this.activeRecordID\n\t}\n\n    pushLinkedRecordID(tableID,recordID){\n        const linkedRecordID = new LinkedRecordID(tableID,recordID) \n        this.linkedRecordIDs.push(linkedRecordID)\n    }\n\n\tgetLinkedRecordID(){\n\t\treturn this.linkedRecordIDs.pop()\n\t}\n\n\tresetChecked() {\n\t\tthis.checkedRecords = [];\n\t}\n\n\taddToChecked(recordID) {\n\t\treturn\n\t\tthis.checkedRecords.push(recordID);\n\t}\n\n\tisChecked(recordID) {\n\t\tconst index = this.checkedRecords.indexOf(recordID);\n\t\tif (index > -1) {\n\t\t\treturn true;\n\t\t} else {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\tremoveFromChecked(recordID) {\n\t\tconst index = this.checkedRecords.indexOf(recordID);\n\t\tindex != -1 && this.checkedRecords.splice(index, 1);\n\t}\n\n\tsetAllChecked(bool, recordIDs) {\n\t\treturn\n\t\tthis.allChecked = bool;\n\t\tif (bool && recordIDs) {\n\t\t\tthis.checkedRecords = recordIDs;\n\t\t}\n\t}\n\n\tisAllChecked() {\n\t\treturn this.allChecked;\n\t}\n\n\tgetCheckedCount() {\n\t\treturn this.checkedRecords.length;\n\t}\n\n\tsetFloatRecords(records) {\n\t\tthis.floatRecords = records;\n\t}\n\n\tgetFloatRecords() {\n\t\treturn this.floatRecords;\n\t}\n}\n","import { StateView } from \"./StateView.js\";\n\nexport class StateTable {\n\tconstructor() {\n\t\tthis.viewMap           = {};\n\t\tthis.activeViewID      = null;\n\t\tthis.kanbanCreateClick = false;\n\t}\n\n\tsetActiveViewID(viewID) {\n\t\t!this.viewMap[viewID] && (this.viewMap[viewID] = new StateView());\n\t\tthis.activeViewID = viewID;\n\t}\n\n\tgetActiveViewID() {\n\t\treturn this.activeViewID;\n\t}\n\n\tgetViewState(viewID) {\n\t\treturn this.viewMap[viewID];\n\t}\n\n\tsetKanbanCreateClick(bool) {\n\t\tthis.kanbanCreateClick = bool;\n\t}\n\n\tgetKanbanCreateClick() {\n\t\treturn this.kanbanCreateClick;\n\t}\n}\n","import { StateTable } from \"./StateTable.js\";\n\nexport class StateBase {\n\tconstructor() {\n\t\tthis.tableMap = {};\n\t\tthis.activeTableID = null;\n\t\tthis.activeAutomationID = null\n\t\tthis.copyKey;\n\t}\n\n\tsetActiveTableID(tableID) {\n\t\t!this.tableMap[tableID] && (this.tableMap[tableID] = new StateTable());\n\t\tthis.activeTableID = tableID;\n\t}\n\n\tgetActiveTableID() {\n\t\treturn this.activeTableID;\n\t}\n\n\tsetActiveAutomationID(automationID) {\n\t\tthis.activeAutomationID = automationID;\n\t}\n\n\tgetActiveAutomationID() {\n\t\treturn this.activeAutomationID;\n\t}\n\n\tgetTableState(tableID) {\n\t\treturn this.tableMap[tableID];\n\t}\n\n\tgetCopyKey() {\n\t\treturn this.copyKey;\n\t}\n\n\tsetCopyKey(copyKey) {\n\t\tthis.copyKey = copyKey;\n\t}\n}\n","export const GRID_SELECTION_VIEW_TYPE     = Symbol(\"GRID\"); //No I18N\nexport const CALENDER_SELECTION_VIEW_TYPE = Symbol(\"CALENDER\"); //No I18N\nexport const GALLERY_SELECTION_VIEW_TYPE  = Symbol(\"GALLERY\"); //No I18N\nexport const KANBAN_SELECTION_VIEW_TYPE   = Symbol(\"KANBAN\"); //No I18N\nexport const FORM_SELECTION_VIEW_TYPE     = Symbol(\"FORM\"); //No I18N","export class AbstractSelection {\n\tconstructor() {\n\t\tthis.selectionViewType = -1;\n\t}\n}\n","import { CALENDER_SELECTION_VIEW_TYPE } from \"../Constants/SelectionViewType.js\";\nimport { AbstractSelection } from \"./AbstractSelection.js\";\n\nexport class CalenderViewSelection extends AbstractSelection{\n    constructor() {\n        super()\n\t\tthis.selectionViewType = CALENDER_SELECTION_VIEW_TYPE;\n        this.recordID          = null;\n        this.state \t           = null;\n    }\n\n    getState() {\n\t\treturn this.state;\n\t}\n\n    setState(state) {\n\t\tthis.state = state;\n\t}\n}\n","import { GALLERY_SELECTION_VIEW_TYPE } from \"../Constants/SelectionViewType.js\";\nimport { AbstractSelection } from \"./AbstractSelection.js\";\n\nexport class GalleryViewSelection extends AbstractSelection {\n\tconstructor() {\n\t\tsuper()\n\t\tthis.selectionViewType = GALLERY_SELECTION_VIEW_TYPE;\n\t\tthis.recordID          = null;\n\t}\n}\n","import { PANETYPE_FIELD, PANETYPE_NORMAL, PANETYPE_RECORD } from \"../Constants/PaneTypeConstants.js\";\n\nexport class SelectionState {\n\n\tconstructor() {\n\t\tthis.fields = new Set();\n\t\tthis.records = new Set();\n\t\tthis.recordLoaders = new Array();\n\t\tthis.startRecordRange = null;\n\t\tthis.endRecordRange = null;\n\t\tthis.activeCell = [null, null]; // recordID, fieldID\n\t\tthis.type = null;\n\t}\n\tgetFields() {\n\t\treturn Array.from(this.fields);\n\t}\n\tgetRecords() {\n\t\treturn Array.from(this.records);\n\t}\n\taddField(fieldID) {\n\t\tthis.fields.add(fieldID);\n\t}\n\taddRecordLoader(recordID){\n\t\tthis.recordLoaders.push(recordID);\n\t}\n\taddRecord(recordID) {\n\t\tthis.records.add(recordID);\n\t}\n\tremoveRecordLoader(recordID) {\n\t\tconst index = this.recordLoaders.indexOf(recordID);\n\t\t(index !=-1) && this.recordLoaders.splice(index, 1);\n\t\t\n\t}\n\tremoveRecord(recordID) {\n\t\tthis.records.delete(recordID);\n\t}\n\tisRecordLoad(recordID){\n\t\tconst index = this.recordLoaders.indexOf(recordID);\n\t\treturn (index !=-1);\n\t}\n\tsetStartRecordRange(recordID){\n\t\tthis.startRecordRange = recordID;\n\t}\n\tgetStartRecordRange(){\n\t\treturn this.startRecordRange;\n\t}\n\tsetEndRecordRange(recordID){\n\t\tthis.endRecordRange = recordID;\n\t}\n\tgetEndRecordRange(){\n\t\treturn this.endRecordRange;\n\t}\n\tsetType(type) {\n\t\tthis.type = type;\n\t}\n\tisSingleCellSelect() {\n\t\treturn (this.fields.size == 1) && (this.records.size == 1);\n\t}\n\tisSingleRecordSelect() {\n\t\treturn (this.records.size == 1) && (this.fields.size != 1);\n\t}\n\tgetType() {\n\t\treturn this.type;\n\t}\n\tsetActiveCell(recordID, fieldID) {\n\t\tthis.activeCell[0] = recordID;\n\t\tthis.activeCell[1] = fieldID;\n\t}\n\tgetActiveCell() {\n\t\treturn this.activeCell;\n\t}\n\tisRecordSelected(recordID) {\n\t\treturn (this.type === PANETYPE_RECORD) && this.records.has(recordID);\n\t}\n\tclear() {\n\t\tthis.clearRangeSelection();\n\t\tthis.setType(null);\n\t}\n\tclearRangeSelection() {\n\t\tthis.fields.clear();\n\t\tthis.records.clear();\n\t}\n\tclearActiveCell() {\n\t\tthis.activeCell[0] = this.activeCell[1] = null;\n\t}\n\tclone() {\n\t\tvar selectionState = new SelectionState();\n\t\tselectionState.records = new Set(this.records);\n\t\tselectionState.fields = new Set(this.fields);\n\t\tselectionState.activeCell[0] = this.activeCell[0];\n\t\tselectionState.activeCell[1] = this.activeCell[1];\n\t\tselectionState.type = this.type;\n\n\t\treturn selectionState;\n\t}\n\thasValidActiveCell() {\n\t\tif (!isNaN(this.activeCell[0]) && !isNaN(this.activeCell[1])) {\n\t\t\treturn true;\n\t\t} else {\n\t\t\treturn false;\n\t\t}\n\t}\n}\n\n\nexport function RepaintSelectionState() {\n\n\tvar selectionState \t\t\t= grid.SelectionState.clone()\n\tvar NavigationInteracter \t= grid.NavigationInteracter\n\tvar baseID \t\t\t\t\t= grid.getInteracter().getBaseID()\n\tvar tableID \t\t\t\t= grid.getInteracter().getTableID()\n\tvar viewID \t\t\t\t\t= grid.getInteracter().getViewID()\n\tvar recordCount \t\t\t= getRecordCount(baseID, tableID, viewID);\n\n\tvar currentCellSelection \t\t\t= NavigationInteracter.getCellSelection();\n\tvar currentCellSelectionStartRow \t= currentCellSelection.startRow > recordCount ? recordCount - 1 : currentCellSelection.startRow;\n\tvar currentCellSelectionStartCol \t= currentCellSelection.startCol\n\tvar currentCellSelectionEndRow \t\t= currentCellSelection.endRow\n\tvar currentCellSelectionEndCol \t\t= currentCellSelection.endCol\n\n\tvar type = selectionState.getType();\n\tgrid.clearSelectionState();\n\tNavigationInteracter.RemoveAllRangeSelection();\n\tNavigationInteracter.RemoveCellSelection(NavigationInteracter.getActiveID());\n\n\tif(recordCount === 0) {\n\t\tif(grid.getInteracter().getExtraRow() !== 0) {\n\t\t\tselectionState.addRecord(-1);\n\t\t} else {\n\t\t\treturn\n\t\t}\n\t} \n\n\tswitch (type) {\n\t\tcase PANETYPE_FIELD:\n\t\t\t// console.log('PANETYPE_FIELD', PANETYPE_FIELD)\n\t\t\tvar fieldIDs = selectionState.getFields()\n\n\t\t\tvar leastRecordIndex = 0\n\t\t\tvar leastFieldIndex = Infinity\n\t\t\tvar placedAtleastOneSelection = false\n\n\t\t\tfor (var i = 0; i < fieldIDs.length; i++) {\n\t\t\t\tvar fieldID = fieldIDs[i]\n\t\t\t\tvar fieldIndex = getFieldIndex(baseID, tableID, viewID, fieldID)\n\n\t\t\t\tif (fieldIndex !== undefined) {\n\t\t\t\t\tvar rangeID = i\n\t\t\t\t\tvar startRow = 0\n\t\t\t\t\tvar endRow = 0\n\t\t\t\t\tvar startCol = fieldIndex\n\t\t\t\t\tvar endCol = fieldIndex\n\n\t\t\t\t\tNavigationInteracter.PlaceRangeSelection(rangeID, startRow, startCol, endRow, endCol, type)\n\t\t\t\t\tplacedAtleastOneSelection = true\n\n\t\t\t\t\tleastFieldIndex = Math.min(leastFieldIndex, startCol)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (leastFieldIndex === Infinity) {\n\t\t\t\tleastFieldIndex = 0\n\t\t\t}\n\n\t\t\tvar activeCellRecordID = selectionState.getActiveCell()[0]\n\t\t\tvar activeCellFieldID = selectionState.getActiveCell()[1]\n\n\t\t\tvar activeCellRecordIndex = null\n\n\t\t\tif (activeCellRecordID === -1) { // If the selection was on dummy record.\n\t\t\t\tactiveCellRecordIndex = getRecordCount(baseID, tableID, viewID)\n\t\t\t} else if (activeCellRecordID === null) {\n\t\t\t\tactiveCellRecordIndex = 0\n\t\t\t} else {\n\t\t\t\tactiveCellRecordIndex = getRecordIndex(baseID, tableID, viewID, activeCellRecordID)\n\t\t\t}\n\n\t\t\tvar activeCellFieldIndex = getFieldIndex(baseID, tableID, viewID, activeCellFieldID)\n\n\t\t\t// console.log(leastRecordIndex, leastFieldIndex, activeCellRecordIndex, activeCellFieldIndex, activeCellRecordID, activeCellFieldID)\n\n\t\t\tif (activeCellRecordIndex === undefined) {\n\t\t\t\tactiveCellRecordIndex = leastRecordIndex\n\t\t\t}\n\n\t\t\tif (activeCellFieldIndex === undefined) {\n\t\t\t\tactiveCellFieldIndex = leastFieldIndex\n\t\t\t}\n\n\n\t\t\tif (!placedAtleastOneSelection) {\n\t\t\t\tNavigationInteracter.PlaceRangeSelection(0, currentCellSelectionStartRow, currentCellSelectionStartCol, currentCellSelectionEndRow, currentCellSelectionEndCol, PANETYPE_NORMAL)\n\t\t\t\tNavigationInteracter.PlaceCellSelection(0, currentCellSelectionStartRow, currentCellSelectionStartCol)\n\t\t\t} else {\n\t\t\t\tNavigationInteracter.PlaceCellSelection(0, activeCellRecordIndex, activeCellFieldIndex)\n\t\t\t}\n\n\t\t\tbreak\n\n\t\tcase PANETYPE_RECORD:\n\t\t\t// console.log('PANETYPE_RECORD', PANETYPE_RECORD)\n\t\t\tvar recordIDs = selectionState.getRecords()\n\n\t\t\tvar leastRecordIndex = Infinity\n\t\t\tvar leastFieldIndex = 0\n\t\t\tvar placedAtleastOneSelection = false\n\n\t\t\tfor (var i = 0; i < recordIDs.length; i++) {\n\t\t\t\tvar recordID = recordIDs[i]\n\t\t\t\tvar recordIndex = getRecordIndex(baseID, tableID, viewID, recordID)\n\t\t\t\t// console.log('recordID', recordID, 'recordIndex', recordIndex)\n\n\t\t\t\tif (recordIndex !== undefined) {\n\t\t\t\t\tvar rangeID = i\n\t\t\t\t\tvar startRow = recordIndex\n\t\t\t\t\tvar endRow = recordIndex\n\t\t\t\t\tvar startCol = 0\n\t\t\t\t\tvar endCol = 0\n\n\t\t\t\t\tNavigationInteracter.PlaceRangeSelection(rangeID, startRow, startCol, endRow, endCol, type)\n\t\t\t\t\tplacedAtleastOneSelection = true\n\n\t\t\t\t\tleastRecordIndex = Math.min(leastRecordIndex, startRow)\n\t\t\t\t\t// } else {\n\t\t\t\t\t// console.log('record might be deleted')\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif (leastRecordIndex === Infinity) {\n\t\t\t\tleastRecordIndex = 0\n\t\t\t}\n\n\t\t\tvar activeCellRecordID = selectionState.getActiveCell()[0]\n\t\t\tvar activeCellFieldID = selectionState.getActiveCell()[1]\n\n\t\t\tvar activeCellRecordIndex = getRecordIndex(baseID, tableID, viewID, activeCellRecordID)\n\t\t\tvar activeCellFieldIndex = getFieldIndex(baseID, tableID, viewID, activeCellFieldID)\n\n\t\t\t// console.log(leastRecordIndex, leastFieldIndex, activeCellRecordIndex, activeCellFieldIndex, activeCellRecordID, activeCellFieldID)\n\n\t\t\tif (activeCellRecordIndex === undefined) {\n\t\t\t\tactiveCellRecordIndex = leastRecordIndex\n\t\t\t}\n\n\t\t\tif (activeCellFieldIndex === undefined) {\n\t\t\t\tactiveCellFieldIndex = leastFieldIndex\n\t\t\t}\n\n\n\t\t\tif (!placedAtleastOneSelection) {\n\t\t\t\tNavigationInteracter.PlaceRangeSelection(0, currentCellSelectionStartRow, currentCellSelectionStartCol, currentCellSelectionEndRow, currentCellSelectionEndCol, PANETYPE_NORMAL)\n\t\t\t\tNavigationInteracter.PlaceCellSelection(0, currentCellSelectionStartRow, currentCellSelectionStartCol)\n\t\t\t} else {\n\t\t\t\tNavigationInteracter.PlaceCellSelection(0, activeCellRecordIndex, activeCellFieldIndex)\n\t\t\t}\n\n\t\t\tbreak\n\n\t\tcase PANETYPE_NORMAL:\n\t\t\t// console.log('PANETYPE_NORMAL', PANETYPE_NORMAL)\n\t\t\tvar recordIDs = selectionState.getRecords()\n\t\t\tvar fieldIDs = selectionState.getFields()\n\n\t\t\tvar leastRecordIndex = Infinity\n\t\t\tvar leastFieldIndex = Infinity\n\t\t\tvar placedAtleastOneSelection = false\n\n\t\t\tvar minFieldIndex = getFieldIndex(baseID, tableID, viewID, fieldIDs[0])\n\t\t\tvar maxFieldIndex = minFieldIndex\n\t\t\tvar minRecordIndex = getRecordIndex(baseID, tableID, viewID, recordIDs[0])\n\t\t\tvar maxRecordIndex = minRecordIndex\n\n\t\t\tif (minFieldIndex !== undefined && minRecordIndex !== undefined) {\n\t\t\t\tfor (var i = 1; i < recordIDs.length; i++) {\n\t\t\t\t\tvar recordID = recordIDs[i]\n\t\t\t\t\tvar recordIndex = getRecordIndex(baseID, tableID, viewID, recordID)\n\t\t\t\t\tif (recordIndex > maxRecordIndex) {\n\t\t\t\t\t\tmaxRecordIndex = recordIndex\n\t\t\t\t\t}\n\t\t\t\t\tif (recordIndex < minRecordIndex) {\n\t\t\t\t\t\tminRecordIndex = recordIndex\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tfor (var i = 1; i < fieldIDs.length; i++) {\n\t\t\t\t\tvar fieldID = fieldIDs[i]\n\t\t\t\t\tvar fieldIndex = getFieldIndex(baseID, tableID, viewID, fieldID)\n\t\t\t\t\tif (fieldIndex > maxFieldIndex) {\n\t\t\t\t\t\tmaxFieldIndex = fieldIndex\n\t\t\t\t\t}\n\t\t\t\t\tif (fieldIndex < minFieldIndex) {\n\t\t\t\t\t\tminFieldIndex = fieldIndex\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tvar rangeID = 0\n\t\t\t\tvar startRow = minRecordIndex\n\t\t\t\tvar startCol = minFieldIndex\n\t\t\t\tvar endRow = maxRecordIndex\n\t\t\t\tvar endCol = maxFieldIndex\n\n\t\t\t\tNavigationInteracter.PlaceRangeSelection(rangeID, startRow, startCol, endRow, endCol, type)\n\t\t\t\tplacedAtleastOneSelection = true\n\n\t\t\t\tleastRecordIndex = Math.min(leastRecordIndex, startRow)\n\t\t\t\tleastFieldIndex = Math.min(leastFieldIndex, startCol)\n\n\t\t\t\t// } else {\n\t\t\t\t// console.log('Record or field might have been deleted')\n\t\t\t}\n\n\t\t\tif (leastRecordIndex === Infinity) {\n\t\t\t\tleastRecordIndex = 0\n\t\t\t}\n\n\t\t\tif (leastFieldIndex === Infinity) {\n\t\t\t\tleastFieldIndex = 0\n\t\t\t}\n\n\t\t\tvar activeCellRecordID = selectionState.getActiveCell()[0]\n\t\t\tvar activeCellFieldID = selectionState.getActiveCell()[1]\n\n\t\t\tvar activeCellRecordIndex = null\n\n\t\t\tif (activeCellRecordID === -1) {\n\t\t\t\t//If empty record doesnt exist, selection should be placed in last record so deducted one \n\t\t\t\tconst emptyRowCount = (grid.interacter.getExtraRow() === 0 ? 1 : 0);\n\t\t\t\tactiveCellRecordIndex = getRecordCount(baseID, tableID, viewID) - emptyRowCount;\n\t\t\t} else if (activeCellRecordID === null) {\n\t\t\t\tactiveCellRecordIndex = 0\n\t\t\t} else {\n\t\t\t\tactiveCellRecordIndex = getRecordIndex(baseID, tableID, viewID, activeCellRecordID)\n\t\t\t}\n\n\n\t\t\tvar activeCellFieldIndex = getFieldIndex(baseID, tableID, viewID, activeCellFieldID)\n\n\t\t\t// console.log(leastRecordIndex, leastFieldIndex, activeCellRecordIndex, activeCellFieldIndex, activeCellRecordID, activeCellFieldID)\n\n\t\t\tif (activeCellRecordIndex === undefined) {\n\t\t\t\tactiveCellRecordIndex = leastRecordIndex\n\t\t\t}\n\n\t\t\tif (activeCellFieldIndex === undefined) {\n\t\t\t\tactiveCellFieldIndex = leastFieldIndex\n\t\t\t}\n\n\t\t\tNavigationInteracter.PlaceCellSelection(0, activeCellRecordIndex, activeCellFieldIndex)\n\n\t\t\tif (!placedAtleastOneSelection) {\n\t\t\t\tNavigationInteracter.PlaceRangeSelection(0, 0, 0, 0, 0, PANETYPE_NORMAL)\n\t\t\t}\n\n\t\t\tbreak\n\n\t\tdefault:\n\t}\n}\n\nfunction getRecordCount(baseID, tableID, viewID) {\n\tvar base = Table.Data.Workspace.get(baseID);\n\tvar table = base.getTable(tableID);\n\tvar view = table.getView(viewID);\n\tvar recordAxis = view.getRecordAxis();\n\treturn recordAxis.count;\n}\n\nfunction getRecordIndex(baseID, tableID, viewID, recordID) {\n\tvar recordCount = getRecordCount(baseID, tableID, viewID);\n\tif (recordID === -1 || recordCount === 0) {\n\t\treturn recordCount;\n\t}\n\tvar base = Table.Data.Workspace.get(baseID);\n\tvar table = base.getTable(tableID);\n\tvar view = table.getView(viewID);\n\tvar recordAxis = view.getRecordAxis();\n\treturn recordAxis.findIndexById(recordID);\n}\n\nfunction getFieldIndex(baseID, tableID, viewID, fieldID) {\n\tvar base = Table.Data.Workspace.get(baseID);\n\tvar table = base.getTable(tableID);\n\tvar view = table.getView(viewID);\n\tvar fieldAxis = view.getFieldAxis();\n\treturn fieldAxis.findIndexById(fieldID);\n}\n\n// export const SelectionState = new SelectionState_();\nglobalThis.RepaintSelectionState = RepaintSelectionState; // just for testing, after testing will be removed","import { GRID_SELECTION_VIEW_TYPE } from \"../Constants/SelectionViewType.js\";\nimport { SelectionState } from \"../Selection/SelectionState.js\";\nimport { AbstractSelection } from \"./AbstractSelection.js\";\n\nexport class GridViewSelection extends AbstractSelection{\n\tconstructor() {\n\t\tsuper();\n\t\tthis.selectionViewType = GRID_SELECTION_VIEW_TYPE;\n\t\tthis.activeCell        = new CellSelection();       // Instance of CellSelection\n\t\tthis.selectedRanges    = new RangeMap();     // Instance of RangeSelection\n\t\tthis.selectionState    = new SelectionState(); //TODO: Need to check the flow\n\t}\n\n\tgetCellSelection() {\n\t\treturn this.activeCell;\n\t}\n\n\t// getRangesSelection: function() {\n\t// \treturn this.selectedRanges;\n\t// },\n\tgetSelectionState() {\n\t\treturn this.selectionState;\n\t}\n\n\tgetSelectionViewType() {\n\t\treturn this.selectionViewType;\n\t}\n}\n\nclass RangeMap {\n\tconstructor() {\n\t\tthis.map      = new Map();\n\t\tthis.iterator = null;\n\t}\n\n\tput(id, range) {\n\t\tthis.map.set(id, range);\n\t}\n\n\tget(id) {\n\t\treturn this.map.get(id);\n\t}\n\n\tremove(id) {\n\t\treturn this.map.delete(id);\n\t}\n\n\tremoveAll() {\n\t\tthis.map.clear();\n\t}\n\n\tsize() {\n\t\treturn this.map.size;\n\t}\n\n\tcontainsKey(key) {\n\t\treturn this.map.has(key);\n\t}\n\n\tgetKeyfromIndex(index) {\n\t\treturn Array.from(this.map.keys())[index];\n\t}\n\n\tfirstElementValue() {\n\t\tthis.iterator = this.map.entries();\n\t\treturn this.iterator.next().value[0];\n\t}\n\n\tnextElementValue() {\n\t\treturn this.iterator.next().value[0];\n\t}\n\n\tprevElement(id) {\n\t\tlet pre         = null;\n\t\tconst iterator1 = this.map.entries();\n\t\tlet cur         = iterator1.next().value;\n\n\t\tfor (let i = 1; i < this.size(); i++) {\n\n\t\t\tif (id == cur[0]) {\n\t\t\t\treturn pre;\n\t\t\t}\n\t\t\tpre = cur;\n\t\t\tcur = iterator1.next().value;\n\t\t}\n\t\treturn pre;\n\t}\n\n\tAllElement() {\n\t\tconst array = [];\n\t\tconst iterator1 = this.map.entries();\n\n\t\tfor (let i = 0; i < this.size(); i++) {\n\t\t\tarray.push(iterator1.next().value[0]);\n\t\t}\n\n\t\treturn array;\n\t}\n}\n\nclass CellSelection {\n\tconstructor() {\n\t\tthis.id = 100;\n\t\tthis.range = {\n\t\t\tstartRow: 0,\n\t\t\tstartCol: 0,\n\t\t\tendRow: 0,\n\t\t\tendCol: 0\n\t\t};\n\t}\n}\n","import { KANBAN_SELECTION_VIEW_TYPE } from \"../Constants/SelectionViewType.js\";\nimport { AbstractSelection } from \"./AbstractSelection.js\";\n\nexport class KanbanState extends AbstractSelection{\n\tconstructor() {\n\t\tsuper()\n\t\tthis.selectionViewType        = KANBAN_SELECTION_VIEW_TYPE;\n\t\tthis.stackCollapseInfo        = new Map();\n\t\tthis.recordID                 = null;\n\t\tthis.stackContainerScrollLeft = 0;\n\t}\n\n\tgetStackContainerScrollLeft() {\n\t\treturn this.stackContainerScrollLeft;\n\t}\n\n\tsetStackContainerScrollLeft(left) {\n\t\tthis.stackContainerScrollLeft = left;\n\t}\n\n\tcollapseStack(stackID, isCollapse) {\n\t\tthis.stackCollapseInfo[stackID] = isCollapse;\n\t}\n\n\tisStackCollapsed(stackID) {\n\t\treturn this.stackCollapseInfo[stackID] || false;\n\t}\n\n\tdeleteStack(stackID) {\n\t\tthis.stackCollapseInfo.delete(stackID);\n\t}\n\n\tgetSelectionViewType() {\n\t\treturn this.selectionViewType;\n\t}\n}\n","import { CALENDER, GALLERY, GRID, KANBAN } from \"../Constants/ViewTypes.js\";\nimport { CalenderViewSelection } from \"./CalenderViewSelection.js\";\nimport { GalleryViewSelection } from \"./GalleryViewSelection.js\";\nimport { GridViewSelection } from \"./GridViewSelection.js\";\nimport { KanbanState } from \"./KanbanState.js\";\n\nfunction getSelection(viewType) {\n\tswitch(viewType) {\n\t\tcase GRID:\n\t\t\treturn new GridViewSelection();\n\t\tcase GALLERY:\n\t\t\treturn new GalleryViewSelection();\n\t\tcase KANBAN:\n\t\t\treturn new KanbanState();\n\t\tcase CALENDER:\n\t\t\treturn new CalenderViewSelection();\n\t\t// case VIEW_TYPES.FORM:\n\t\t// \treturn new FormViewSelection();\n\t\tdefault:\n\t\t\tthrow 'Selection not available for specified view type'; //NO I18N \n\t}\n}\n\nexport class ViewState {\n\tconstructor(baseID, tableID, viewID, viewType) {\n\t\tthis.baseID    = baseID;\n\t\tthis.tableID   = tableID;\n\t\tthis.viewID    = viewID;\n\t\tthis.selection = getSelection(viewType);\n\t}\n\n\tgetSelection() {\n\t\treturn this.selection;\n\t}\n\n\tgetBaseID() {\n\t\treturn this.baseID;\n\t}\n\n\tgetTableID() {\n\t\treturn this.tableID;\n\t}\n\n\tgetViewID() {\n\t\treturn this.viewID;\n\t}\n}\n","import { Map } from \"../DataStore/DS/DSMap.js\";\nimport { ViewState } from \"./ViewState.js\";\n\nconst KEY_DELIMITER = '-';\n\nexport class WorkspaceState {\n\tconstructor() {\n\t\tthis.viewMap         = new Map();  //Map<hashed_view_id, ViewState>\n\t\tthis.activeViewState = null;       // When the view changes the selection for the active view will be updated here\n\t}\n\n\tcreateViewState(baseID, tableID, viewID, viewType) {\n\t\tconst key       = getViewStateKey(baseID, tableID, viewID);\n\t\tconst viewState = new ViewState(baseID, tableID, viewID, viewType);\n\t\tthis.viewMap.set(key, viewState);\n\t\treturn viewState;\n\t}\n\n\tcreateViewSelection(baseID, tableID, viewID, viewType) {\n\t\tconst key        = getViewStateKey(baseID, tableID, viewID);\n\t\tlet viewState    = this.viewMap.get(key);\n\t\tviewState || (viewState = this.createViewState(baseID, tableID, viewID, viewType));\n\t\treturn viewState.getSelection();\n\t}\n\n\tgetActiveViewSelection() {\n\t\treturn this.activeViewState.getSelection();\n\t}\n\n\tgetViewSelection(baseID, tableID, viewID) {\n\t\tconst key     = getViewStateKey(baseID, tableID, viewID);\n\t\tlet viewState = this.viewMap.get(key);\n\t\treturn viewState ? viewState.getSelection() : null;\n\t}\n\n\tsetActiveView(baseID, tableID, viewID) {\n\t\tconst key       = getViewStateKey(baseID, tableID, viewID);\n\t\tconst viewState = this.viewMap.get(key);\n\t\tthis.activeViewState = viewState;\n\t}\n\n\tforEachViewState(callback) {\n\t\tconst keys = this.viewMap.keys();\n\t\tfor(let i = 0; i < keys.length; i++) {\n\t\t\tconst viewState = this.viewMap.get(keys[i]);\n\t\t\tcallback(viewState);\n\t\t}\n\t}\n}\n\nexport const getViewStateKey = (baseID, tableID, viewID) => {\n\treturn baseID + KEY_DELIMITER + tableID + KEY_DELIMITER + viewID;\n}\n","import { Map } from \"../DataStore/DS/DSMap.js\";\nimport { MODULE_PORTAL, PORTAL_OWNER } from \"../Dom/Top/BaseBar/BaseShare/ShareBaseConstant.js\";\nimport { StateBase } from \"./StateBase.js\";\nimport { WorkspaceState } from \"./WorkspaceState.js\";\n\nexport const tempLayoutGridID \t\t= globalThis.tempLayoutGridID = 'Grid1'; // TODO: remove once the layout ID is generated. //NO I18N \nglobalThis.tempLayoutKanbanID   = 'Kanban1';  //NO I18N \n// TODO: remove once the layout ID is generated.\nconst tempLayoutCalendarID    = globalThis.tempLayoutCalendarID      = 'Calendar1';  // TODO: remove once the layout ID is generated.  //No I18N\n\n/* Singleton class */\nclass State_{\n\tconstructor() {\n\t\tthis.map \t\t\t= new Map(); //Map<LayoutID, WorkspaceState>\n\t\tthis.baseMap \t\t= {};\n\t\tthis.portalID       = null\n\t\tthis.portalName     = '';\n\t\tthis.activeBaseID \t= null;\n\t\tthis.tabFocused     = true;\n\t\tthis.isZohoOnePortal= false;\n\t\tthis.addUserRedirectionURL = null;\n\t\tthis.subscriptionRedirectionURL = null;\n\t}\n\n\tsetActiveView(layoutID, baseID, tableID, viewID) {\n\t\tthis.map.get(layoutID).setActiveView(baseID, tableID, viewID);\n\t\t// this.map.get(tempLayoutGridID).setActiveView(baseID, tableID, viewID);\n\t}\n\n\tgetActiveViewSelection(layoutID) {\n\t\treturn this.map.get(layoutID).getActiveViewSelection();\n\t\t// return this.map.get(tempLayoutGridID).getActiveViewSelection();\n\t}\n\n\tgetViewSelection(layoutID, baseID, tableID, viewID) {\n\t\tconst workspaceState = this.map.get(layoutID);\n\t\treturn (workspaceState) ? workspaceState.getViewSelection(baseID, tableID, viewID) : null;\n\t}\n\n\tcreateViewSelection(layoutID, baseID, tableID, viewID, viewType) {\n\t\tlet workspaceState = this.map.get(layoutID);\n\t\tif(!workspaceState) {\n\t\t\tworkspaceState = new WorkspaceState();\n\t\t\tthis.map.set(layoutID, workspaceState);\n\t\t}\n\t\treturn workspaceState.createViewSelection(baseID, tableID, viewID, viewType);\n\t}\n\n\tgetBaseState(baseID) {\n\t\treturn this.baseMap[baseID];\n\t}\n\n\tsetActiveBaseID(baseID) {\n\t\tthis.activeBaseID = baseID;\n\t}\n\n\tsetBaseID(baseID) {\n\t\t!this.baseMap[baseID] &&  (this.baseMap[baseID] = new StateBase());\n\t}\n\n\tsetIsZohoOnePortal(bool) {\n\t\tthis.isZohoOnePortal = bool;\n\t}\n\n\tgetIsZohoOnePortal() {\n\t\treturn this.isZohoOnePortal;\n\t}\n\n\tgetAddUserRedirectionURL() {\n\t\treturn this.addUserRedirectionURL;\n\t}\n\n\tsetAddUserRedirectionURL(url) {\n\t\tthis.addUserRedirectionURL = url;\n\t}\n\n\tgetZohoOneSubscriptionRedirectionURL() {\n\t\treturn this.subscriptionRedirectionURL;\n\t}\n\t\n\tsetZohoOneSubscriptionRedirectionURL(url) {\n\t\tthis.subscriptionRedirectionURL = url;\n\t}\n\n\tsetPortalID(portalID) {\n\t\tthis.portalID = portalID\n\t}\n\n\tgetPortalID() {\n\t\treturn this.portalID\n\t}\n\tsetPortalName(name){\n\t\tthis.portalName = name;\n\t}\n\tgetPortalName(){\n\t\treturn this.portalName;\n\t}\n\tgetIsPortalOwner() {\n\t\tconst base       = Table.Data.Workspace.get(this.activeBaseID)\n\t\tconst moduleType = base.getModeModuleType()\n\t\tconst mode       = base.getMode()\n\n\t\treturn moduleType === MODULE_PORTAL && mode === PORTAL_OWNER\n\t}\n\n\tgetActiveBaseID() {\n\t\treturn this.activeBaseID;\n\t}\n\n\tforEachViewState(callback) {\n\t\tconst layoutIDs = this.map.keys();\n\t\tfor(let i = 0; i < layoutIDs.length; i++) {\n\t\t\tconst workspace = this.map.get(layoutIDs[i]);\n\t\t\tworkspace.forEachViewState(callback);\n\n\t\t}\n\t}\n\n\tfocusTab() {\n\t\tthis.tabFocused = true;\n\t}\n\n\tblurTab() {\n\t\tthis.tabFocused = false;\n\t}\n\n\tisTabFocused() {\n\t\treturn this.tabFocused;\n\t}\n\n\treset() {\n\t\tthis.map = new Map();\n\t\tthis.baseMap = {};\n\t\tthis.portalID = null;\n\t\tthis.portalName = '';\n\t\tthis.activeBaseID = null;\n\t\tthis.tabFocused = true;\n\t\tthis.isZohoOnePortal = false;\n\t}\n}\n\nexport const State = new State_();\n\nglobalThis.Table || (globalThis.Table = {})\nglobalThis.Table.State = State;\n","\nconst templates = document.getElementById(\"templates\");\n\nexport function getTemplate(templateID) {\n\t// var template = templates.querySelector('#'+templateID);\n\tlet template = document.getElementById(templateID);\n\ttemplate = template.content.cloneNode(true);\n\treturn template;\n}\n\nexport function getTemplateByID(templateID, selectorID) {\n\tconst template = document.querySelector(`#${templateID}`);\n\tconst element = template.content.cloneNode(true);\n\treturn element.querySelector(`#${selectorID}`);\n}\n\nexport function getTemplateByClassName(templateID, selectorClassName) {\n\tconst template = document.querySelector(`#${templateID}`);\n\tconst element = template.content.cloneNode(true);\n\treturn element.querySelector(`.${selectorClassName}`);\n}\n","export class EventEmitter {\n    constructor(_callbackContext, _acceptableEventNames) {\n        this._eventListeners = {}; // TODO: See if could be moved to a Weakmap.\n        this._callbackContext = (_callbackContext) ? _callbackContext : null;\n        this._acceptableEventNames = (_acceptableEventNames) ? _acceptableEventNames : null;\n    }\n\n    addEventListener(eventName, callback) {\n\t\tvalidateEventName.call(this, eventName);\n\t\tconst eventList = this._eventListeners[eventName] || (this._eventListeners[eventName] = []);\n\t\teventList.push(callback);\n\t}\n\n    removeEventListener(eventName, callback) {\n\t\tif (this._eventListeners[eventName]) {\n\t\t\tconst index = this._eventListeners[eventName].indexOf(callback);\n\t\t\t(index >= 0) && this._eventListeners[eventName].splice(index, 1);\n\t\t}\n\t}\n\n    dispatchEvent(eventName, event) {\n\t\tconst eventList = this._eventListeners[eventName];\n\t\tif (eventList) {\n\t\t\tfor (let i = 0; i < eventList.length; i++) {\n\t\t\t\t(this._callbackContext) ? eventList[i].call(this._callbackContext, event) : eventList[i](event)\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction validateEventName(eventName) {\n\tif (this._acceptableEventNames && this._acceptableEventNames.includes(eventName)) {\n        return;\n    }\n\tthrow 'Unknown Event'; // No I18N\n}\n","\nclass WDUtil_ {\n    constructor(){\n        this.workdriveURL = null;\n        this.previewURL   = null;\n        this.downloadURL  = null;\n    }\n\n    setWDURL(url) {\n        this.workdriveURL = url;\n    }\n\n    setPreviewURL(url) {\n        this.previewURL = url;\n    }\n\n    setDownloadURL(url) {\n        this.downloadURL = url;\n    }\n\n    getWDDomain(){\n        return this.workdriveURL;\n    }\n\n    getPreviewURL(){\n        return this.previewURL;\n    }\n\n    getDownloadURL (){\n        return this.downloadURL;\n    }\n}\n\nexport const WDUtil = new WDUtil_();\n","export function deepFreeze<T>(object: T): T {\n\tconst propNames = Object.getOwnPropertyNames(object);\n\tfor (const name of propNames) {\n\t\tconst value = (object as any)[name];\n\t\tvalue && typeof value === 'object' && !Object.isFrozen(value) && deepFreeze(value);\n\t}\n\treturn Object.freeze(object);\n}\n","import { deepFreeze } from \"../_auxillaries/DeepFreeze\";\n\n// Base Theme Configuration\nconst BASE_THEME_CONFIGURATION = {\n    // dark colors\n    '7a62c4': { style: 'dark',       textColor: 'light', darkColor: '7a62c4', lightColor: 'd1c7ef', ultraLightColor: 'ebe7f8', bodyClassToApply: '' },\n    'bf4e85': { style: 'dark',       textColor: 'light', darkColor: 'bf4e85', lightColor: 'ecc4d7', ultraLightColor: 'f7e7ef', bodyClassToApply: '' },\n    '0a7ea8': { style: 'dark',       textColor: 'light', darkColor: '0a7ea8', lightColor: 'bde0ed', ultraLightColor: 'e5f3f8', bodyClassToApply: '' },\n    '5565ce': { style: 'dark',       textColor: 'light', darkColor: '5565ce', lightColor: 'c1c7ed', ultraLightColor: 'e6e8f8', bodyClassToApply: '' },\n    'b05807': { style: 'dark',       textColor: 'light', darkColor: 'b05807', lightColor: 'f3d7bc', ultraLightColor: 'faefe4', bodyClassToApply: '' },\n    '058722': { style: 'dark',       textColor: 'light', darkColor: '058722', lightColor: 'c6e3cc', ultraLightColor: 'e8f4eb', bodyClassToApply: '' },\n    'af4c41': { style: 'dark',       textColor: 'light', darkColor: 'af4c41', lightColor: 'e7c0c0', ultraLightColor: 'f5e6e6', bodyClassToApply: '' },\n    '2c72df': { style: 'dark',       textColor: 'light', darkColor: '2c72df', lightColor: 'bbd3fa', ultraLightColor: 'e4eefd', bodyClassToApply: '' },\n    'a36b0a': { style: 'dark',       textColor: 'light', darkColor: 'a36b0a', lightColor: 'f9d9a2', ultraLightColor: 'fdf0da', bodyClassToApply: '' },\n    '576168': { style: 'dark',       textColor: 'light', darkColor: '576168', lightColor: 'c3c7ca', ultraLightColor: 'e7e9ea', bodyClassToApply: '' },\n    'a44ca8': { style: 'dark',       textColor: 'light', darkColor: 'a44ca8', lightColor: 'e3b5e5', ultraLightColor: 'f4e9f5', bodyClassToApply: '' },\n    'f283a7': { style: 'dark',       textColor: 'dark',  darkColor: 'f283a7', lightColor: 'ffcfde', ultraLightColor: 'ffeff4', bodyClassToApply: 'zt-dark-theme--text-black' },\n    '088375': { style: 'dark',       textColor: 'light', darkColor: '088375', lightColor: 'bbede7', ultraLightColor: 'e6f8f6', bodyClassToApply: '' },\n    '66d2ce': { style: 'dark',       textColor: 'dark',  darkColor: '66d2ce', lightColor: 'b5f7f5', ultraLightColor: 'defaf9', bodyClassToApply: 'zt-dark-theme--text-black' },\n    'cf4b0e': { style: 'dark',       textColor: 'light', darkColor: 'cf4b0e', lightColor: 'f2c0aa', ultraLightColor: 'f8e7df', bodyClassToApply: '' },\n    '697d21': { style: 'dark',       textColor: 'light', darkColor: '697d21', lightColor: 'e7f2bf', ultraLightColor: 'edf2da', bodyClassToApply: '' },\n    'bd2f2f': { style: 'dark',       textColor: 'light', darkColor: 'bd2f2f', lightColor: 'f7b5b5', ultraLightColor: 'fae1e1', bodyClassToApply: '' },\n    '61c3f2': { style: 'dark',       textColor: 'dark',  darkColor: '61c3f2', lightColor: 'bee6fa', ultraLightColor: 'eaf5fb', bodyClassToApply: 'zt-dark-theme--text-black' },\n    'e3a605': { style: 'dark',       textColor: 'dark',  darkColor: 'e3a605', lightColor: 'ffe8ab', ultraLightColor: 'fcf5e1', bodyClassToApply: 'zt-dark-theme--text-black' },\n    '42506b': { style: 'dark',       textColor: 'light', darkColor: '42506b', lightColor: 'c5d2eb', ultraLightColor: 'e4e9f5', bodyClassToApply: '' },\n\n    // light colors\n    'd1c7ef': { style: 'light',      textColor: 'dark', darkColor: '7a62c4', lightColor: 'd1c7ef', ultraLightColor: 'ebe7f8', bodyClassToApply: '' },\n    'ecc4d7': { style: 'light',      textColor: 'dark', darkColor: 'bf4e85', lightColor: 'ecc4d7', ultraLightColor: 'f7e7ef', bodyClassToApply: '' },\n    'bde0ed': { style: 'light',      textColor: 'dark', darkColor: '0a7ea8', lightColor: 'bde0ed', ultraLightColor: 'e5f3f8', bodyClassToApply: '' },\n    'c1c7ed': { style: 'light',      textColor: 'dark', darkColor: '5565ce', lightColor: 'c1c7ed', ultraLightColor: 'e6e8f8', bodyClassToApply: '' },\n    'f3d7bc': { style: 'light',      textColor: 'dark', darkColor: 'b05807', lightColor: 'f3d7bc', ultraLightColor: 'faefe4', bodyClassToApply: '' },\n    'c6e3cc': { style: 'light',      textColor: 'dark', darkColor: '058722', lightColor: 'c6e3cc', ultraLightColor: 'e8f4eb', bodyClassToApply: '' },\n    'e7c0c0': { style: 'light',      textColor: 'dark', darkColor: 'af4c41', lightColor: 'e7c0c0', ultraLightColor: 'f5e6e6', bodyClassToApply: '' },\n    'bbd3fa': { style: 'light',      textColor: 'dark', darkColor: '2c72df', lightColor: 'bbd3fa', ultraLightColor: 'e4eefd', bodyClassToApply: '' },\n    'f9d9a2': { style: 'light',      textColor: 'dark', darkColor: 'a36b0a', lightColor: 'f9d9a2', ultraLightColor: 'fdf0da', bodyClassToApply: '' },\n    'c3c7ca': { style: 'light',      textColor: 'dark', darkColor: '576168', lightColor: 'c3c7ca', ultraLightColor: 'e7e9ea', bodyClassToApply: '' },\n    'e3b5e5': { style: 'light',      textColor: 'dark', darkColor: 'a44ca8', lightColor: 'e3b5e5', ultraLightColor: 'f4e9f5', bodyClassToApply: '' },\n    'ffcfde': { style: 'light',      textColor: 'dark', darkColor: 'f283a7', lightColor: 'ffcfde', ultraLightColor: 'ffeff4', bodyClassToApply: 'zt-light-theme--text-black' },\n    'bbede7': { style: 'light',      textColor: 'dark', darkColor: '088375', lightColor: 'bbede7', ultraLightColor: 'e6f8f6', bodyClassToApply: '' },\n    'b5f7f5': { style: 'light',      textColor: 'dark', darkColor: '66d2ce', lightColor: 'b5f7f5', ultraLightColor: 'defaf9', bodyClassToApply: 'zt-light-theme--text-black' },\n    'f2c0aa': { style: 'light',      textColor: 'dark', darkColor: 'cf4b0e', lightColor: 'f2c0aa', ultraLightColor: 'f8e7df', bodyClassToApply: '' },\n    'e7f2bf': { style: 'light',      textColor: 'dark', darkColor: '697d21', lightColor: 'e7f2bf', ultraLightColor: 'edf2da', bodyClassToApply: '' },\n    'f7b5b5': { style: 'light',      textColor: 'dark', darkColor: 'bd2f2f', lightColor: 'f7b5b5', ultraLightColor: 'fae1e1', bodyClassToApply: '' },\n    'bee6fa': { style: 'light',      textColor: 'dark', darkColor: '61c3f2', lightColor: 'bee6fa', ultraLightColor: 'eaf5fb', bodyClassToApply: 'zt-light-theme--text-black' },\n    'ffe8ab': { style: 'light',      textColor: 'dark', darkColor: 'e3a605', lightColor: 'ffe8ab', ultraLightColor: 'fcf5e1', bodyClassToApply: 'zt-light-theme--text-black' },\n    'c5d2eb': { style: 'light',      textColor: 'dark', darkColor: '42506b', lightColor: 'c5d2eb', ultraLightColor: 'e4e9f5', bodyClassToApply: '' },\n\n    // ultralight colors\n    'ebe7f8': { style: 'ultralight', textColor: 'dark', darkColor: '7a62c4', lightColor: 'd1c7ef', ultraLightColor: 'ebe7f8', bodyClassToApply: '' },\n    'f7e7ef': { style: 'ultralight', textColor: 'dark', darkColor: 'bf4e85', lightColor: 'ecc4d7', ultraLightColor: 'f7e7ef', bodyClassToApply: '' },\n    'e5f3f8': { style: 'ultralight', textColor: 'dark', darkColor: '0a7ea8', lightColor: 'bde0ed', ultraLightColor: 'e5f3f8', bodyClassToApply: '' },\n    'e6e8f8': { style: 'ultralight', textColor: 'dark', darkColor: '5565ce', lightColor: 'c1c7ed', ultraLightColor: 'e6e8f8', bodyClassToApply: '' },\n    'faefe4': { style: 'ultralight', textColor: 'dark', darkColor: 'b05807', lightColor: 'f3d7bc', ultraLightColor: 'faefe4', bodyClassToApply: '' },\n    'e8f4eb': { style: 'ultralight', textColor: 'dark', darkColor: '058722', lightColor: 'c6e3cc', ultraLightColor: 'e8f4eb', bodyClassToApply: '' },\n    'f5e6e6': { style: 'ultralight', textColor: 'dark', darkColor: 'af4c41', lightColor: 'e7c0c0', ultraLightColor: 'f5e6e6', bodyClassToApply: '' },\n    'e4eefd': { style: 'ultralight', textColor: 'dark', darkColor: '2c72df', lightColor: 'bbd3fa', ultraLightColor: 'e4eefd', bodyClassToApply: '' },\n    'fdf0da': { style: 'ultralight', textColor: 'dark', darkColor: 'a36b0a', lightColor: 'f9d9a2', ultraLightColor: 'fdf0da', bodyClassToApply: '' },\n    'e7e9ea': { style: 'ultralight', textColor: 'dark', darkColor: '576168', lightColor: 'c3c7ca', ultraLightColor: 'e7e9ea', bodyClassToApply: '' },\n    'f4e9f5': { style: 'ultralight', textColor: 'dark', darkColor: 'a44ca8', lightColor: 'e3b5e5', ultraLightColor: 'f4e9f5', bodyClassToApply: '' },\n    'ffeff4': { style: 'ultralight', textColor: 'dark', darkColor: 'f283a7', lightColor: 'ffcfde', ultraLightColor: 'ffeff4', bodyClassToApply: '' },\n    'e6f8f6': { style: 'ultralight', textColor: 'dark', darkColor: '088375', lightColor: 'bbede7', ultraLightColor: 'e6f8f6', bodyClassToApply: '' },\n    'defaf9': { style: 'ultralight', textColor: 'dark', darkColor: '66d2ce', lightColor: 'b5f7f5', ultraLightColor: 'defaf9', bodyClassToApply: '' },\n    'f8e7df': { style: 'ultralight', textColor: 'dark', darkColor: 'cf4b0e', lightColor: 'f2c0aa', ultraLightColor: 'f8e7df', bodyClassToApply: '' },\n    'edf2da': { style: 'ultralight', textColor: 'dark', darkColor: '697d21', lightColor: 'e7f2bf', ultraLightColor: 'edf2da', bodyClassToApply: '' },\n    'fae1e1': { style: 'ultralight', textColor: 'dark', darkColor: 'bd2f2f', lightColor: 'f7b5b5', ultraLightColor: 'fae1e1', bodyClassToApply: '' },\n    'eaf5fb': { style: 'ultralight', textColor: 'dark', darkColor: '61c3f2', lightColor: 'bee6fa', ultraLightColor: 'eaf5fb', bodyClassToApply: '' },\n    'fcf5e1': { style: 'ultralight', textColor: 'dark', darkColor: 'e3a605', lightColor: 'ffe8ab', ultraLightColor: 'fcf5e1', bodyClassToApply: '' },\n    'e4e9f5': { style: 'ultralight', textColor: 'dark', darkColor: '42506b', lightColor: 'c5d2eb', ultraLightColor: 'e4e9f5', bodyClassToApply: '' },\n} as const;\n\n// Bubble node color palette configuration\nconst BUBBLE_NODE_COLOR_PALETTE_CONFIGURATION = {\n    // dark colors\n    'aa98e2': { style: 'dark',       textColor: 'dark', innerCircle: '7a62c4', outerCircle: 'ffffff', recordColor: '7a62c4', cardColor: '7a62c4', cardLightColor: 'd7d0ed', cardCoverColor: 'f2eff9' },\n    'df9bbb': { style: 'dark',       textColor: 'dark', innerCircle: 'bf4e85', outerCircle: 'ffffff', recordColor: 'bf4e85', cardColor: 'bf4e85', cardLightColor: 'eccada', cardCoverColor: 'f9edf3' },\n    '97cee3': { style: 'dark',       textColor: 'dark', innerCircle: '0a7ea8', outerCircle: 'ffffff', recordColor: '0a7ea8', cardColor: '0a7ea8', cardLightColor: 'b5d8e5', cardCoverColor: 'e6f2f6' },\n    '98a2e1': { style: 'dark',       textColor: 'dark', innerCircle: '5565ce', outerCircle: 'ffffff', recordColor: '5565ce', cardColor: '5565ce', cardLightColor: 'ccd1f0', cardCoverColor: 'eef0fa' },\n    'e4bc96': { style: 'dark',       textColor: 'dark', innerCircle: 'b05807', outerCircle: 'ffffff', recordColor: 'b05807', cardColor: 'b05807', cardLightColor: 'e7cdb5', cardCoverColor: 'f7eee6' },\n    'a2d7ad': { style: 'dark',       textColor: 'dark', innerCircle: '058722', outerCircle: 'ffffff', recordColor: '058722', cardColor: '058722', cardLightColor: 'b4dbbd', cardCoverColor: 'e6f3e9' },\n    'de9b9b': { style: 'dark',       textColor: 'dark', innerCircle: 'af4c41', outerCircle: 'ffffff', recordColor: 'af4c41', cardColor: 'af4c41', cardLightColor: 'e7c9c6', cardCoverColor: 'f7edec' },\n    '83aff6': { style: 'dark',       textColor: 'dark', innerCircle: '2c72df', outerCircle: 'ffffff', recordColor: '2c72df', cardColor: '2c72df', cardLightColor: 'c0d5f5', cardCoverColor: 'eaf1fc' },\n    'f0ca89': { style: 'dark',       textColor: 'dark', innerCircle: 'a36b0a', outerCircle: 'ffffff', recordColor: 'a36b0a', cardColor: 'a36b0a', cardLightColor: 'e3d3b6', cardCoverColor: 'f6f0e7' },\n    'b9bdc1': { style: 'dark',       textColor: 'dark', innerCircle: '576168', outerCircle: 'ffffff', recordColor: '576168', cardColor: '576168', cardLightColor: 'cdd0d2', cardCoverColor: 'eeeff0' },\n\n    // light colors\n    'c7c1ec': { style: 'light',      textColor: 'dark', innerCircle: '7a62c4', outerCircle: 'ffffff', recordColor: 'aa98e2', cardColor: 'aa98e2', cardLightColor: 'e5e0f6', cardCoverColor: 'f2eff9' },\n    'ebc2d6': { style: 'light',      textColor: 'dark', innerCircle: 'bf4e85', outerCircle: 'ffffff', recordColor: 'df9bbb', cardColor: 'df9bbb', cardLightColor: 'f5e1eb', cardCoverColor: 'f9edf3' },\n    'bfe1ee': { style: 'light',      textColor: 'dark', innerCircle: '0a7ea8', outerCircle: 'ffffff', recordColor: '97cee3', cardColor: '97cee3', cardLightColor: 'e0f0f7', cardCoverColor: 'e6f2f6' },\n    'bfc4ed': { style: 'light',      textColor: 'dark', innerCircle: '5565ce', outerCircle: 'ffffff', recordColor: '98a2e1', cardColor: '98a2e1', cardLightColor: 'e0e3f6', cardCoverColor: 'eef0fa' },\n    'f2d6ba': { style: 'light',      textColor: 'dark', innerCircle: 'b05807', outerCircle: 'ffffff', recordColor: 'e4bc96', cardColor: 'e4bc96', cardLightColor: 'f7ebdf', cardCoverColor: 'f7eee6' },\n    'c8e5cf': { style: 'light',      textColor: 'dark', innerCircle: '058722', outerCircle: 'ffffff', recordColor: 'a2d7ad', cardColor: 'a2d7ad', cardLightColor: 'e3f3e6', cardCoverColor: 'e6f3e9' },\n    'e8c5c5': { style: 'light',      textColor: 'dark', innerCircle: 'af4c41', outerCircle: 'ffffff', recordColor: 'de9b9b', cardColor: 'de9b9b', cardLightColor: 'f5e1e1', cardCoverColor: 'f7edec' },\n    'b3cff9': { style: 'light',      textColor: 'dark', innerCircle: '2c72df', outerCircle: 'ffffff', recordColor: '83aff6', cardColor: '83aff6', cardLightColor: 'dae7fc', cardCoverColor: 'eaf1fc' },\n    'fbe0b2': { style: 'light',      textColor: 'dark', innerCircle: 'a36b0a', outerCircle: 'ffffff', recordColor: 'f0ca89', cardColor: 'f0ca89', cardLightColor: 'fbefdc', cardCoverColor: 'f6f0e7' },\n    'd3d7d9': { style: 'light',      textColor: 'dark', innerCircle: '576168', outerCircle: 'ffffff', recordColor: 'b9bdc1', cardColor: 'b9bdc1', cardLightColor: 'eaebec', cardCoverColor: 'eeeff0' },\n\n    // ultralight colors\n    'ebe7f8': { style: 'ultralight', textColor: 'dark', innerCircle: '7a62c4', outerCircle: 'ffffff', recordColor: 'c7c1ec', cardColor: 'c7c1ec', cardLightColor: 'eeecf9', cardCoverColor: 'f2eff9' },\n    'f7e7ef': { style: 'ultralight', textColor: 'dark', innerCircle: 'bf4e85', outerCircle: 'ffffff', recordColor: 'ebc2d6', cardColor: 'ebc2d6', cardLightColor: 'f9edf3', cardCoverColor: 'f9edf3' },\n    'e5f3f8': { style: 'ultralight', textColor: 'dark', innerCircle: '0a7ea8', outerCircle: 'ffffff', recordColor: 'bfe1ee', cardColor: 'bfe1ee', cardLightColor: 'ecf6fa', cardCoverColor: 'e6f2f6' },\n    'e6e8f8': { style: 'ultralight', textColor: 'dark', innerCircle: '5565ce', outerCircle: 'ffffff', recordColor: 'bfc4ed', cardColor: 'bfc4ed', cardLightColor: 'ecedfa', cardCoverColor: 'eef0fa' },\n    'faefe4': { style: 'ultralight', textColor: 'dark', innerCircle: 'b05807', outerCircle: 'ffffff', recordColor: 'f2d6ba', cardColor: 'f2d6ba', cardLightColor: 'fbf3ea', cardCoverColor: 'f7eee6' },\n    'e8f4eb': { style: 'ultralight', textColor: 'dark', innerCircle: '058722', outerCircle: 'ffffff', recordColor: 'c8e5cf', cardColor: 'c8e5cf', cardLightColor: 'eff7f1', cardCoverColor: 'e6f3e9' },\n    'f5e6e6': { style: 'ultralight', textColor: 'dark', innerCircle: 'af4c41', outerCircle: 'ffffff', recordColor: 'e8c5c5', cardColor: 'e8c5c5', cardLightColor: 'f8eeee', cardCoverColor: 'f7edec' },\n    'e4eefd': { style: 'ultralight', textColor: 'dark', innerCircle: '2c72df', outerCircle: 'ffffff', recordColor: 'b3cff9', cardColor: 'b3cff9', cardLightColor: 'e8f1fd', cardCoverColor: 'eaf1fc' },\n    'fdf0da': { style: 'ultralight', textColor: 'dark', innerCircle: 'a36b0a', outerCircle: 'ffffff', recordColor: 'fbe0b2', cardColor: 'fbe0b2', cardLightColor: 'fef6e8', cardCoverColor: 'f6f0e7' },\n    'e7e9ea': { style: 'ultralight', textColor: 'dark', innerCircle: '576168', outerCircle: 'ffffff', recordColor: 'd3d7d9', cardColor: 'd3d7d9', cardLightColor: 'f2f3f4', cardCoverColor: 'eeeff0' },\n    \n    // This color is for non-colored bubble nodes.. Export non-color key as 'e8e8e8' since it is used in many places in our product\n    'e8e8e8': { style: 'dark',       textColor: 'dark', innerCircle: '9b9b9b', outerCircle: 'ffffff', recordColor: '576168', cardColor: '576168', cardLightColor: 'd1d5d7', cardCoverColor: 'eff1f1' },\n    \n    // This ffffff color is used in MoveRecord of Kanban View for non-colored bubble nodes\n    'ffffff': { style: 'light',      textColor: 'dark', innerCircle: 'ffffff', outerCircle: 'ffffff', recordColor: 'ffffff', cardColor: 'ffffff', cardLightColor: 'ffffff', cardCoverColor: 'ffffff' },\n} as const;\n\n// Base dark and light themes\nconst BASE_DARK_THEMES  = ['7a62c4', 'bf4e85', '0a7ea8', '5565ce', 'b05807', '058722', 'af4c41', '2c72df', 'a36b0a', '576168', 'a44ca8', 'f283a7', '088375', '66d2ce', 'cf4b0e', '697d21', 'bd2f2f', '61c3f2', 'e3a605', '42506b'] as const;\nconst BASE_LIGHT_THEMES = ['d1c7ef', 'ecc4d7', 'bde0ed', 'c1c7ed', 'f3d7bc', 'c6e3cc', 'e7c0c0', 'bbd3fa', 'f9d9a2', 'c3c7ca', 'e3b5e5', 'ffcfde', 'bbede7', 'b5f7f5', 'f2c0aa', 'e7f2bf', 'f7b5b5', 'bee6fa', 'ffe8ab', 'c5d2eb'] as const;\n\nexport type BASE_LIGHT_THEME = typeof BASE_LIGHT_THEMES[number];\nexport type BASE_DARK_THEME  = typeof BASE_DARK_THEMES[number];\n\n\n// Bubble node themes\nconst BUBBLE_NODE_DARK_THEMES       = ['aa98e2', 'df9bbb', '97cee3', '98a2e1', 'e4bc96', 'a2d7ad', 'de9b9b', '83aff6', 'f0ca89', 'b9bdc1'] as const;\nconst BUBBLE_NODE_LIGHT_THEMES      = ['c7c1ec', 'ebc2d6', 'bfe1ee', 'bfc4ed', 'f2d6ba', 'c8e5cf', 'e8c5c5', 'b3cff9', 'fbe0b2', 'd3d7d9'] as const;\nconst BUBBLE_NODE_ULTRALIGHT_THEMES = ['ebe7f8', 'f7e7ef', 'e5f3f8', 'e6e8f8', 'faefe4', 'e8f4eb', 'f5e6e6', 'e4eefd', 'fdf0da', 'e7e9ea'] as const;\n\n// Form ultralight themes\nconst FORM_ULTRALIGHT_THEMES = ['ebe7f8', 'f7e7ef', 'e5f3f8', 'e6e8f8', 'faefe4', 'e8f4eb', 'f5e6e6', 'e4eefd', 'fdf0da', 'e7e9ea', 'f4e9f5', 'ffeff4', 'e6f8f6', 'defaf9', 'f8e7df', 'edf2da', 'fae1e1', 'eaf5fb', 'fcf5e1', 'e4e9f5'] as const;\n\n// Theme classes for body\nconst THEME_CLASSES = ['zt-light-theme--text-black', 'zt-dark-theme--text-black'];\n\n\n\ndeepFreeze(BASE_THEME_CONFIGURATION);\ndeepFreeze(BASE_DARK_THEMES);\ndeepFreeze(BASE_LIGHT_THEMES);\ndeepFreeze(FORM_ULTRALIGHT_THEMES);\ndeepFreeze(BUBBLE_NODE_COLOR_PALETTE_CONFIGURATION);\ndeepFreeze(BUBBLE_NODE_DARK_THEMES);\ndeepFreeze(BUBBLE_NODE_LIGHT_THEMES);\ndeepFreeze(BUBBLE_NODE_ULTRALIGHT_THEMES);\ndeepFreeze(THEME_CLASSES);\n\n\n\n// Exporting the constants\nexport {\n    BASE_DARK_THEMES,\n    BASE_LIGHT_THEMES, BASE_THEME_CONFIGURATION, BUBBLE_NODE_COLOR_PALETTE_CONFIGURATION,\n    BUBBLE_NODE_DARK_THEMES,\n    BUBBLE_NODE_LIGHT_THEMES,\n    BUBBLE_NODE_ULTRALIGHT_THEMES, FORM_ULTRALIGHT_THEMES\n};\n\nexport const NON_COLORED_BUBBLE_NODE_COLOR = 'e8e8e8'; // This is used in many places in our product for non-colored bubble nodes\n\n// Util functions for theme colors\nexport function getBaseTextColor(color: keyof typeof BASE_THEME_CONFIGURATION) {\n    const colorLowerCase = color.toLowerCase() as keyof typeof BASE_THEME_CONFIGURATION;\n    const textColor      = BASE_THEME_CONFIGURATION[colorLowerCase].textColor;\n    return textColor === 'dark' ? '000' : 'fff';\n}\n\nexport function isTextColorLight(color: keyof typeof BASE_THEME_CONFIGURATION) {\n    const colorLowerCase = color.toLowerCase() as keyof typeof BASE_THEME_CONFIGURATION;\n    const textColor      = BASE_THEME_CONFIGURATION[colorLowerCase].textColor;\n    return textColor === 'light';\n}\n\nexport function getDarkThemeColor(color: keyof typeof BASE_THEME_CONFIGURATION) {\n    const colorLowerCase = color.toLowerCase() as keyof typeof BASE_THEME_CONFIGURATION;\n    return BASE_THEME_CONFIGURATION[colorLowerCase].darkColor;\n}\n\nexport function getLightThemeColor(color: keyof typeof BASE_THEME_CONFIGURATION) {\n    const colorLowerCase = color.toLowerCase() as keyof typeof BASE_THEME_CONFIGURATION;\n\treturn BASE_THEME_CONFIGURATION[colorLowerCase].lightColor;\n}\n\nexport function getUltraLightThemeColor(color: keyof typeof BASE_THEME_CONFIGURATION) {\n    const colorLowerCase = color.toLowerCase() as keyof typeof BASE_THEME_CONFIGURATION;\n    return BASE_THEME_CONFIGURATION[colorLowerCase].ultraLightColor;\n}\n\nexport function isDarkThemeColor(color: keyof typeof BASE_THEME_CONFIGURATION) {\n    const colorLowerCase = color.toLowerCase() as keyof typeof BASE_THEME_CONFIGURATION;\n    return BASE_THEME_CONFIGURATION[colorLowerCase].style === 'dark';\n}\n\nexport function getBubbleNodeInnerCircleColor(color: keyof typeof BUBBLE_NODE_COLOR_PALETTE_CONFIGURATION) {\n\tconst colorLowerCase = color.toLowerCase() as keyof typeof BUBBLE_NODE_COLOR_PALETTE_CONFIGURATION;\n\treturn BUBBLE_NODE_COLOR_PALETTE_CONFIGURATION[colorLowerCase].innerCircle;\n}\n\nexport function getBubbleNodeOuterCircleColor(color: keyof typeof BUBBLE_NODE_COLOR_PALETTE_CONFIGURATION) {\n\tconst colorLowerCase = color.toLowerCase() as keyof typeof BUBBLE_NODE_COLOR_PALETTE_CONFIGURATION;\n\treturn BUBBLE_NODE_COLOR_PALETTE_CONFIGURATION[colorLowerCase].outerCircle;\n}\n\nexport function getBubbleNodeTextColor(color: keyof typeof BUBBLE_NODE_COLOR_PALETTE_CONFIGURATION) {\n    const colorLowerCase = color.toLowerCase() as keyof typeof BUBBLE_NODE_COLOR_PALETTE_CONFIGURATION;\n    const textColor      = BUBBLE_NODE_COLOR_PALETTE_CONFIGURATION[colorLowerCase].textColor;\n    return textColor === 'dark' ? '000' : 'fff';\n}\n\nexport function getBaseThemeBodyClassChanges(color: keyof typeof BASE_THEME_CONFIGURATION) {\n    const colorLowerCase   = color.toLowerCase() as keyof typeof BASE_THEME_CONFIGURATION;\n    const bodyClassToApply = BASE_THEME_CONFIGURATION[colorLowerCase].bodyClassToApply;\n\n    switch(bodyClassToApply) {\n        case 'zt-light-theme--text-black':\n            return {\n                add   : ['zt-light-theme--text-black'],\n                remove: THEME_CLASSES.filter(cls => cls !== 'zt-light-theme--text-black')\n            };\n\n        case 'zt-dark-theme--text-black':\n            return {\n                add   : ['zt-dark-theme--text-black'],\n                remove: THEME_CLASSES.filter(cls => cls !== 'zt-dark-theme--text-black')\n            };\n\n        case '':\n            return {\n                add   : [],\n                remove: THEME_CLASSES\n            };\n\n        default:\n            throw('Unknown body class to apply: ' + bodyClassToApply);\n    }\n}\n\nexport function getRecordColor(color: keyof typeof BUBBLE_NODE_COLOR_PALETTE_CONFIGURATION) {\n    const colorLowerCase = color.toLowerCase() as keyof typeof BUBBLE_NODE_COLOR_PALETTE_CONFIGURATION;\n    return BUBBLE_NODE_COLOR_PALETTE_CONFIGURATION[colorLowerCase].recordColor;\n}\n\nexport function getCardColor(color: keyof typeof BUBBLE_NODE_COLOR_PALETTE_CONFIGURATION) {\n    const colorLowerCase = color.toLowerCase() as keyof typeof BUBBLE_NODE_COLOR_PALETTE_CONFIGURATION;\n    return BUBBLE_NODE_COLOR_PALETTE_CONFIGURATION[colorLowerCase].cardColor;\n}\n\nexport function getCardLightColor(color: keyof typeof BUBBLE_NODE_COLOR_PALETTE_CONFIGURATION) {\n    const colorLowerCase = color.toLowerCase() as keyof typeof BUBBLE_NODE_COLOR_PALETTE_CONFIGURATION;\n    return BUBBLE_NODE_COLOR_PALETTE_CONFIGURATION[colorLowerCase].cardLightColor;\n}\n\nexport function getCardCoverColor(color: keyof typeof BUBBLE_NODE_COLOR_PALETTE_CONFIGURATION) {\n    const colorLowerCase = color.toLowerCase() as keyof typeof BUBBLE_NODE_COLOR_PALETTE_CONFIGURATION;\n    return BUBBLE_NODE_COLOR_PALETTE_CONFIGURATION[colorLowerCase].cardCoverColor;\n}\n\nexport function getFormColorThemeBorderColor(color: keyof typeof BASE_THEME_CONFIGURATION) {\n    return getLightThemeColor(color as keyof typeof BASE_THEME_CONFIGURATION);\n}\n","const DATE_FORMAT_MONTH_D_YYYY = 'Month D, YYYY';  // No I18N\nconst DATE_FORMAT_DD_MM_YYYY   = 'DD/MM/YYYY';     // No I18N\nconst DATE_FORMAT_MM_DD_YYYY   = 'MM/DD/YYYY';     // No I18N\nconst DATE_FORMAT_YYYY_MM_DD   = 'YYYY/MM/DD';     // No I18N\n\nconst globalThis_   = globalThis as any;\nconst dateFormatter = globalThis_.CraftGrid.Utility.dateFormatter;\nconst timeFormatter = globalThis_.CraftGrid.Utility.timeFormatter;\nconst TIME_ZONE_UTC = 'UTC';                                        // No I18N\n\nexport function encodeFromAbsoluteDate(dateObject: Date) {\n    return Date.UTC(dateObject.getFullYear(), dateObject.getMonth(), dateObject.getDate(), dateObject.getHours(), dateObject.getMinutes(), dateObject.getSeconds(), 0);\n    // return Date.UTC(dateObject.getFullYear(), dateObject.getMonth(), dateObject.getDate(), dateObject.getHours(), dateObject.getMinutes(), dateObject.getSeconds(), dateObject.getMilliseconds());\n}\n\nexport function decodeToAbsoluteDate(timeStamp: any) {\n    if(timeStamp === '') {\n        return null;\n    }\n\n    const dateObject = new Date(Number(timeStamp));\n    return {\n        year: dateObject.getUTCFullYear(),\n        monthIndex: dateObject.getUTCMonth(),\n        date: dateObject.getUTCDate(),\n        hours: dateObject.getUTCHours(),\n        minutes: dateObject.getUTCMinutes(),\n        seconds: dateObject.getUTCSeconds(),\n        milliSeconds: dateObject.getUTCMilliseconds()\n    }\n}\n\nexport function getDateStringToBeRendered(absoluteDate: any, locale: any, dateFormat: any) {\n    if(!absoluteDate) {\n        return '';\n    }\n\n    // frame date string\n    const UTCTimeStamp = Date.UTC(absoluteDate.year, absoluteDate.monthIndex, absoluteDate.date);\n    return dateFormatter(UTCTimeStamp, locale, dateFormat, TIME_ZONE_UTC);\n}\n\nexport function getTimeStringToBeRendered(absoluteDate: any, locale: any, timeFormat: any, hourCycle: any) {\n    if(!absoluteDate) {\n        return '';\n    }\n\n    // frame time string\n    const UTCTimeStamp = Date.UTC(absoluteDate.year, absoluteDate.monthIndex, absoluteDate.date, absoluteDate.hours, absoluteDate.minutes, absoluteDate.seconds, absoluteDate.milliSeconds);\n    return timeFormatter(UTCTimeStamp, locale, timeFormat, hourCycle, TIME_ZONE_UTC);\n}\n","import { Content } from \"../Types\"\n\nexport function getMessage(key: string): string {\n\tconst message = Table.Constants.JSMsg[key]\n\tif(!message) throw new Error(`Message not found for key: ${key}`)\n\treturn message\n}\n\nexport function buildContentFragment(content: Content): DocumentFragment | null {\n\tif (!content || content.length === 0) return null\n\n\tconst fragment = document.createDocumentFragment()\n\tcontent.forEach(part => {\n\t\tif (part.props.bold) {\n\t\t\tconst span = document.createElement(\"span\")\n\t\t\tspan.textContent = part.text\n\t\t\tspan.classList.add(\"ZT-fontSemiBold\")\n\t\t\tfragment.appendChild(span)\n\t\t} else if (part.props.link) {\n\t\t\tconst anchor = document.createElement(\"a\")\n\t\t\tanchor.textContent = part.text\n\t\t\tanchor.href = part.props.link\n\t\t\tanchor.target = \"_blank\"\n\t\t\tanchor.rel = \"noopener noreferrer\"\n\t\t\tanchor.classList.add(\"ZT-learnMore\")\n\t\t\tfragment.appendChild(anchor)\n\t\t} else {\n\t\t\tconst text = document.createTextNode(part.text)\n\t\t\tfragment.appendChild(text)\n\t\t}\n\t})\n\treturn fragment\n}\n","/**\n * Shared UI for link chips when Allow Duplicate Linked Records is ON for THIS field.\n * Shows a circular count badge next to the record name when duplicate mode owns the chip.\n * Markup from HBS; visibility/styles via CSS classes (hide/show from JS).\n */\n\nimport { getMessage } from '../_auxillaries/Message';\n\nexport const LINK_CHIP_COUNT_CLASS = 'zt-link-chip__count'; // No I18N\nexport const LINK_CHIP_LABEL_WRAPPER_CLASS = 'zt-link-chip__label-wrapper'; // No I18N\n\n/**\n * Chip hover text: full record name + exact (uncompacted) count.\n * Rendered by the app-wide tooltip — ZTComponents.tooltip('body') reads `title`,\n * so every page that loads zohocomponents gets it, form view included.\n */\nfunction buildLinkChipTooltipText(label: string, count: number): string {\n\treturn `${label} (${count})`; // No I18N\n}\n\n/** The body tooltip walks up from the hovered node, so an inner title would win over the chip's. */\nfunction clearDescendantTitles(chipEl: HTMLElement): void {\n\tconst titled = chipEl.querySelectorAll('[title]'); // No I18N\n\tfor (let i = 0; i < titled.length; i++) {\n\t\ttitled[i].removeAttribute('title'); // No I18N\n\t}\n}\n\n/**\n * The remove control carries its own title, so hovering the X says \"Remove\"\n * instead of falling through to the chip's \"label (count)\".\n */\nfunction attachLinkChipRemoveTooltip(removeEl: Element | null | undefined): void {\n\tif (!removeEl) {\n\t\treturn;\n\t}\n\tremoveEl.setAttribute('title', getMessage('UI.tables.common.remove')); // No I18N\n}\n\n/**\n * Point the app tooltip at a chip with \"label (count)\".\n * Idempotent — safe to call repeatedly; just rewrites the title.\n */\nexport function attachLinkChipCountTooltip(chipEl: HTMLElement | null | undefined, label: string, count: number | null | undefined): void {\n\tif (!chipEl) {\n\t\treturn;\n\t}\n\tconst rawCount = Math.max(1, Number(count) || 1);\n\tif (!shouldShowLinkCountBadge(rawCount, true)) {\n\t\treturn;\n\t}\n\tclearDescendantTitles(chipEl);\n\tchipEl.setAttribute('title', buildLinkChipTooltipText(label, rawCount)); // No I18N\n\tattachLinkChipRemoveTooltip(chipEl.querySelector('.closeButton')); // No I18N\n}\n\nexport type LinkCountBadgeOptions = {\n\t/** Form chips are taller/wider — use a larger, softer badge parked near the close control. */\n\tvariant?: 'default' | 'form';\n};\n\nexport function shouldShowLinkCountBadge(count: number | null | undefined, showSingleCount = false): boolean {\n\tconst normalizedCount = Number(count);\n\treturn count != null && Number.isFinite(normalizedCount) && normalizedCount > (showSingleCount ? 0 : 1);\n}\n\n/**\n * Compact badge text: raw below 1000, then 1 decimal + K / M.\n * Truncates (never rounds up) so e.g. 9999999 → 9.9M, not 10M.\n */\nexport function formatLinkCountDisplay(count: number | null | undefined): string {\n\tconst n = Math.max(1, Math.floor(Number(count) || 1));\n\tif (n > 999999) {\n\t\treturn `${formatLinkCountOneDecimal(n / 1000000)}M`; // No I18N\n\t}\n\tif (n > 999) {\n\t\treturn `${formatLinkCountOneDecimal(n / 1000)}K`; // No I18N\n\t}\n\treturn String(n);\n}\n\n/** Truncate to at most one decimal place — never round up (sensitive counts). */\nfunction formatLinkCountOneDecimal(value: number): string {\n\tconst truncated = Math.floor(value * 10) / 10;\n\treturn Number.isInteger(truncated) ? String(truncated) : truncated.toFixed(1);\n}\n\nfunction applyLinkCountBadgeClasses(badge: HTMLElement, countText: string, options?: LinkCountBadgeOptions): void {\n\tbadge.classList.toggle('zt-link-chip__count--form', options?.variant === 'form'); // No I18N\n\tbadge.classList.toggle('zt-link-chip__count--multi', countText.length > 1); // No I18N\n}\n\nfunction createEmptyLinkCountBadgeElement(): HTMLElement {\n\tconst badge = document.createElement('span'); // No I18N\n\tbadge.className = LINK_CHIP_COUNT_CLASS;\n\tbadge.id = 'ztLinkChipCountBadge'; // No I18N\n\treturn badge;\n}\n\n/**\n * Form render page does not include DG/Link.hbs — fall back to createElement when the\n * badge template is absent so allow-dup chips still render without throwing.\n */\nfunction cloneTemplateRootOrFallback(templateID: string, fallback: () => HTMLElement): HTMLElement {\n\tconst template = document.getElementById(templateID) as HTMLTemplateElement | null;\n\tif (template && template.content) {\n\t\tconst fragment = template.content.cloneNode(true) as DocumentFragment;\n\t\tconst root = fragment.firstElementChild as HTMLElement | null;\n\t\tif (root) {\n\t\t\treturn root;\n\t\t}\n\t}\n\treturn fallback();\n}\n\nexport function createLinkCountBadgeElement(count: number, options?: LinkCountBadgeOptions): HTMLElement {\n\tconst badge = cloneTemplateRootOrFallback('zt-linkChipCountBadgeTemplate', createEmptyLinkCountBadgeElement); // No I18N\n\tconst rawCount = Math.max(1, Number(count) || 1);\n\tconst countText = formatLinkCountDisplay(rawCount);\n\tbadge.textContent = countText;\n\tbadge.setAttribute('aria-label', `Linked ${rawCount} times`); // No I18N\n\tapplyLinkCountBadgeClasses(badge, countText, options);\n\treturn badge;\n}\n\n/**\n * Label (+ optional count) for DomGrid ChipRenderingComponent option.renderer.\n * Chip root/background is owned by ChipRenderingComponent.\n */\nfunction createEmptyLinkChipLabelContent(): HTMLElement {\n\tconst wrapper = document.createElement('div'); // No I18N\n\twrapper.className = `${LINK_CHIP_LABEL_WRAPPER_CLASS} dg-chip__label-wrapper`; // No I18N\n\tconst labelEl = document.createElement('span'); // No I18N\n\tlabelEl.className = 'dg-chip__label'; // No I18N\n\tlabelEl.id = 'ztLinkChipLabel'; // No I18N\n\tconst badge = createEmptyLinkCountBadgeElement();\n\tbadge.id = 'ztLinkChipCount'; // No I18N\n\tbadge.classList.add('hide'); // No I18N\n\tbadge.setAttribute('aria-hidden', 'true'); // No I18N\n\twrapper.appendChild(labelEl);\n\twrapper.appendChild(badge);\n\treturn wrapper;\n}\n\nexport function createLinkChipLabelContent(label: string, count?: number | null, showSingleCount = false): HTMLElement {\n\tconst wrapper = cloneTemplateRootOrFallback('zt-linkChipLabelContentTemplate', createEmptyLinkChipLabelContent); // No I18N\n\tconst labelEl = wrapper.querySelector('#ztLinkChipLabel') as HTMLElement; // No I18N\n\tconst badge = wrapper.querySelector('#ztLinkChipCount') as HTMLElement; // No I18N\n\tlabelEl.textContent = label == null ? '' : String(label);\n\n\tif (shouldShowLinkCountBadge(count, showSingleCount)) {\n\t\tconst rawCount = Math.max(1, Number(count));\n\t\tconst countText = formatLinkCountDisplay(rawCount);\n\t\tbadge.textContent = countText;\n\t\tbadge.setAttribute('aria-label', `Linked ${rawCount} times`); // No I18N\n\t\tbadge.removeAttribute('aria-hidden'); // No I18N\n\t\tapplyLinkCountBadgeClasses(badge, countText);\n\t\tbadge.classList.remove('hide'); // No I18N\n\t}\n\treturn wrapper;\n}\n\n/**\n * Maps bubble options into ChipRenderingComponent options, attaching a count renderer.\n */\nexport function toLinkChipRenderingOptions(\n\tlinkValues: Array<{ value?: string; color?: string; linkCount?: number }>,\n\tshowSingleCount = false\n): Array<{ label: string; color?: string; renderer?: (label: string) => HTMLElement }> {\n\treturn linkValues.map((linkValue) => {\n\t\tconst label = linkValue.value == null ? '' : String(linkValue.value);\n\t\tconst count = linkValue.linkCount;\n\t\tconst option: { label: string; color?: string; renderer?: (label: string) => HTMLElement } = {\n\t\t\tlabel,\n\t\t\tcolor: linkValue.color\n\t\t};\n\t\tif (shouldShowLinkCountBadge(count, showSingleCount)) {\n\t\t\toption.renderer = (renderedLabel: string) => createLinkChipLabelContent(renderedLabel, count, showSingleCount);\n\t\t}\n\t\treturn option;\n\t});\n}\n\n/**\n * DomGrid Select selectedValueRenderer — full chip with optional count + remove icon.\n * DomGrid getSelectedChipDoms() expects chipInstance.api.getElement() (default chips),\n * so expose a compatible `api` alongside getElement()/destroy().\n */\nexport class LinkChipCustomRenderer {\n\telement!: HTMLElement;\n\tapi!: { getElement: () => HTMLElement; destroyComponent?: () => void };\n\tprivate params: any;\n\n\tinit(params: any) {\n\t\tthis.params = params;\n\t\tthis.api = {\n\t\t\tgetElement: () => this.getElement(),\n\t\t\tdestroyComponent: () => this.destroy()\n\t\t};\n\t}\n\n\tcreateElement() {\n\t\tconst rendererParams = this.params.option.selectedValueRendererParams;\n\t\tconst label = String(rendererParams.label);\n\t\tconst count = Number(rendererParams.linkCount);\n\t\tconst bgColor = rendererParams.bgColor;\n\t\tconst onRemove = rendererParams.onRemove;\n\n\t\tconst chipRoot = document.createElement('div'); // No I18N\n\t\tchipRoot.className = 'dg-chip__root dg-chip--filled dg-chip--default'; // No I18N\n\t\tchipRoot.tabIndex = 0;\n\t\tchipRoot.setAttribute('role', 'button'); // No I18N\n\t\tchipRoot.style.backgroundColor = bgColor;\n\t\tconst showsCountBadge = shouldShowLinkCountBadge(count, true);\n\t\tif (showsCountBadge) {\n\t\t\tchipRoot.style.overflow = 'visible';\n\t\t\tconst rawCount = Math.max(1, Number(count) || 1);\n\t\t\tchipRoot.setAttribute('title', buildLinkChipTooltipText(label, rawCount)); // No I18N\n\t\t} else {\n\t\t\tchipRoot.setAttribute('title', label);\n\t\t}\n\n\t\tconst labelWrapper = createLinkChipLabelContent(label, count, true);\n\t\tchipRoot.appendChild(labelWrapper);\n\n\t\tif (!this.params.readonly) {\n\t\t\tconst suffixElem = document.createElement('div'); // No I18N\n\t\t\tsuffixElem.className = 'dg-chip__suffix-elem'; // No I18N\n\t\t\tattachLinkChipRemoveTooltip(suffixElem);\n\t\t\tconst removeIconSpan = document.createElement('span'); // No I18N\n\t\t\tremoveIconSpan.className = 'dg-chip__remove-icon'; // No I18N\n\t\t\tconst removeIconSvg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'); // No I18N\n\t\t\tremoveIconSvg.setAttribute('viewBox', '0 0 24 24'); // No I18N\n\t\t\tremoveIconSvg.classList.add('dg-chip__remove-svg'); // No I18N\n\t\t\tconst gElement = document.createElementNS('http://www.w3.org/2000/svg', 'g'); // No I18N\n\t\t\tconst path1 = document.createElementNS('http://www.w3.org/2000/svg', 'path'); // No I18N\n\t\t\tpath1.setAttribute('d', 'M1 20a1 1 0 0 1-.71-1.7l18-18.01A1 1 0 1 1 19.7 1.7L1.71 19.71c-.2.2-.45.29-.71.29Z'); // No I18N\n\t\t\tconst path2 = document.createElementNS('http://www.w3.org/2000/svg', 'path'); // No I18N\n\t\t\tpath2.setAttribute('d', 'M19 20c-.26 0-.51-.1-.71-.29l-18-18C-.1 1.32-.1.68.29.29s1.03-.39 1.42 0l18 18a1 1 0 0 1-.71 1.7Z'); // No I18N\n\t\t\tgElement.appendChild(path1);\n\t\t\tgElement.appendChild(path2);\n\t\t\tremoveIconSvg.appendChild(gElement);\n\t\t\tremoveIconSpan.appendChild(removeIconSvg);\n\t\t\tsuffixElem.appendChild(removeIconSpan);\n\t\t\t// Do not preventDefault on pointerdown/mousedown — that cancels the\n\t\t\t// subsequent click in browsers and was blocking chip remove.\n\t\t\tlet removeHandled = false;\n\t\t\tconst handleRemove = (event: Event) => {\n\t\t\t\tevent.stopPropagation();\n\t\t\t\tif (removeHandled) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tremoveHandled = true;\n\t\t\t\tif (typeof onRemove === 'function') {\n\t\t\t\t\tonRemove(this.params.option);\n\t\t\t\t}\n\t\t\t};\n\t\t\tsuffixElem.addEventListener('pointerdown', handleRemove); // No I18N\n\t\t\tsuffixElem.addEventListener('mousedown', (event) => { // No I18N\n\t\t\t\tevent.stopPropagation();\n\t\t\t});\n\t\t\tsuffixElem.addEventListener('touchstart', (event) => { // No I18N\n\t\t\t\tevent.stopPropagation();\n\t\t\t}, { passive: true });\n\t\t\tsuffixElem.addEventListener('click', (event) => { // No I18N\n\t\t\t\tevent.preventDefault();\n\t\t\t\thandleRemove(event);\n\t\t\t});\n\t\t\tchipRoot.appendChild(suffixElem);\n\t\t}\n\n\t\tthis.element = chipRoot;\n\t\treturn this.element;\n\t}\n\n\tgetElement() {\n\t\treturn this.element;\n\t}\n\n\tdestroy() {\n\t\t// DomGrid may already detach the node during deselect/clear — Node.remove() is a no-op then.\n\t\tthis.element?.remove();\n\t}\n}\n\n/**\n * Attach Select chip renderer params onto bubble options that carry linkCount.\n */\nexport function attachLinkChipSelectedValueRenderer(\n\tlinkValues: Array<any>,\n\toptions?: { force?: boolean; onRemove?: (option: any) => void }\n): Array<any> {\n\tif (!linkValues || !linkValues.length) {\n\t\treturn linkValues;\n\t}\n\tconst force = !!(options && options.force);\n\tconst onRemove = options && options.onRemove;\n\treturn linkValues.map((linkValue) => {\n\t\tconst count = Number(linkValue.linkCount);\n\t\tif (!force && !shouldShowLinkCountBadge(count)) {\n\t\t\treturn linkValue;\n\t\t}\n\t\treturn {\n\t\t\t...linkValue,\n\t\t\tselectedValueRenderer: LinkChipCustomRenderer,\n\t\t\tselectedValueRendererParams: {\n\t\t\t\tlabel: linkValue.value,\n\t\t\t\tbgColor: linkValue.color,\n\t\t\t\tlinkCount: count,\n\t\t\t\tonRemove: onRemove\n\t\t\t}\n\t\t};\n\t});\n}\n\n/**\n * Append (or update) a count badge on a legacy FTC `.option` chip DOM.\n */\nexport function decorateLegacyLinkOptionDom(\n\toptionDom: HTMLElement | null | undefined,\n\tcount: number | null | undefined,\n\toptions?: LinkCountBadgeOptions\n): void {\n\tif (!optionDom) {\n\t\treturn;\n\t}\n\tconst existing = optionDom.querySelector(`.${LINK_CHIP_COUNT_CLASS}`) as HTMLElement | null;\n\tif (!shouldShowLinkCountBadge(count, true)) {\n\t\texisting && existing.remove();\n\t\treturn;\n\t}\n\tconst rawCount = Math.max(1, Number(count));\n\tconst badgeText = formatLinkCountDisplay(rawCount);\n\toptionDom.classList.add('zt-link-chip--with-count'); // No I18N\n\tconst label = readLinkChipLabel(optionDom);\n\tif (existing) {\n\t\texisting.textContent = badgeText;\n\t\texisting.setAttribute('aria-label', `Linked ${rawCount} times`); // No I18N\n\t\tapplyLinkCountBadgeClasses(existing, badgeText, options);\n\t\tplaceBadgeInOptionDom(optionDom, existing, options);\n\t\tattachLinkChipCountTooltip(optionDom, label, rawCount);\n\t\treturn;\n\t}\n\tconst badge = createLinkCountBadgeElement(Number(count), options);\n\tplaceBadgeInOptionDom(optionDom, badge, options);\n\tattachLinkChipCountTooltip(optionDom, label, rawCount);\n}\n\nfunction readLinkChipLabel(optionDom: HTMLElement): string {\n\tconst nameEl = optionDom.querySelector('.name'); // No I18N\n\tif (nameEl && nameEl.textContent) {\n\t\treturn nameEl.textContent;\n\t}\n\tconst buttonName = optionDom.querySelector('button .name'); // No I18N\n\tif (buttonName && buttonName.textContent) {\n\t\treturn buttonName.textContent;\n\t}\n\t// No `.name` node — fall back to the chip text, minus the badge's own digits.\n\tconst chipClone = optionDom.cloneNode(true) as HTMLElement;\n\tconst clonedBadge = chipClone.querySelector(`.${LINK_CHIP_COUNT_CLASS}`); // No I18N\n\tclonedBadge && clonedBadge.remove();\n\treturn (chipClone.textContent || '').trim();\n}\n\nfunction placeBadgeInOptionDom(optionDom: HTMLElement, badge: HTMLElement, options?: LinkCountBadgeOptions): void {\n\tconst closeButton = optionDom.querySelector('.closeButton'); // No I18N\n\t// Form chips are full-width with space-between — park badge immediately before the close control.\n\tif (closeButton && closeButton.parentElement === optionDom) {\n\t\tif (badge.parentElement !== optionDom || badge.nextElementSibling !== closeButton) {\n\t\t\tcloseButton.insertAdjacentElement('beforebegin', badge); // No I18N\n\t\t}\n\t\treturn;\n\t}\n\n\tconst nameEl = optionDom.querySelector('.name'); // No I18N\n\tif (nameEl && nameEl.parentElement === optionDom) {\n\t\tif (badge.parentElement !== optionDom || badge.previousElementSibling !== nameEl) {\n\t\t\tnameEl.insertAdjacentElement('afterend', badge); // No I18N\n\t\t}\n\t\treturn;\n\t}\n\n\tconst button = optionDom.querySelector('button'); // No I18N\n\tif (button) {\n\t\tconst buttonClose = button.querySelector('.closeButton'); // No I18N\n\t\tif (buttonClose) {\n\t\t\tbuttonClose.insertAdjacentElement('beforebegin', badge); // No I18N\n\t\t\treturn;\n\t\t}\n\t\tconst buttonName = button.querySelector('.name'); // No I18N\n\t\tif (buttonName) {\n\t\t\tbuttonName.insertAdjacentElement('afterend', badge); // No I18N\n\t\t} else {\n\t\t\tbutton.appendChild(badge);\n\t\t}\n\t\treturn;\n\t}\n\n\tif (!badge.parentElement) {\n\t\toptionDom.appendChild(badge);\n\t}\n}\n\n/**\n * Decorate all `.option` chips in a container using record counts (O(unique) order).\n */\nexport function decorateLegacyLinkOptionsContainer(\n\tcontainer: HTMLElement | null | undefined,\n\tcounts: number[] | null | undefined\n): void {\n\tif (!container || !counts || !counts.length) {\n\t\treturn;\n\t}\n\tconst options = container.querySelectorAll(':scope > .option, :scope > li.option'); // No I18N\n\tfor (let i = 0; i < options.length && i < counts.length; i++) {\n\t\tdecorateLegacyLinkOptionDom(options[i] as HTMLElement, counts[i]);\n\t}\n}\n\n/**\n * Helper for ValueHolder-backed FTC components after setData.\n */\nexport function decorateLinkChipsFromValueHolder(component: any, ValueHolder: any): void {\n\tif (!component || !ValueHolder) {\n\t\treturn;\n\t}\n\tconst allowDup = ValueHolder.getAllowDuplicateLinkedRecords();\n\tif (!allowDup) {\n\t\treturn;\n\t}\n\tconst counts = ValueHolder.getRecordCounts();\n\tconst container = component.linkFieldContainer || component.getDom?.();\n\tdecorateLegacyLinkOptionsContainer(container, counts);\n}\n","/**\n * Compact wire format for link fields when Allow Duplicate Linked Records is ON.\n * Request:  [[ids],[counts]]\n * Response: [[ids],[displays],[counts]]\n *\n * Storage and UI stay O(unique): never expand ids by repeating them count times.\n */\n\nexport type CompactLinkSubmitPayload = [string[], number[]];\nexport type CompactLinkResponsePayload = [string[], string[], number[]];\n\nexport function compactLinkRecordIds(recordIds: string[]): CompactLinkSubmitPayload {\n\tconst uniqueIds: string[] = [];\n\tconst counts: number[] = [];\n\tconst indexById = new Map<string, number>();\n\tif (!recordIds.length) {\n\t\treturn [uniqueIds, counts];\n\t}\n\tfor (let i = 0; i < recordIds.length; i++) {\n\t\tconst recordId = recordIds[i];\n\t\tif (!recordId) {\n\t\t\tcontinue;\n\t\t}\n\t\tconst existingIndex = indexById.get(recordId);\n\t\tif (existingIndex !== undefined) {\n\t\t\tcounts[existingIndex] = counts[existingIndex] + 1;\n\t\t} else {\n\t\t\tindexById.set(recordId, uniqueIds.length);\n\t\t\tuniqueIds.push(recordId);\n\t\t\tcounts.push(1);\n\t\t}\n\t}\n\treturn [uniqueIds, counts];\n}\n\n/**\n * @deprecated Prefer keeping unique ids + counts. Kept for rare callers that still\n * receive an expanded list; do not use for large multiplicities.\n */\nexport function expandLinkRecordIds(uniqueIds: string[], counts: number[]): string[] {\n\tconst expanded: string[] = [];\n\tif (!uniqueIds.length) {\n\t\treturn expanded;\n\t}\n\tfor (let i = 0; i < uniqueIds.length; i++) {\n\t\tconst count = Number(counts[i]);\n\t\tfor (let j = 0; j < count; j++) {\n\t\t\texpanded.push(uniqueIds[i]);\n\t\t}\n\t}\n\treturn expanded;\n}\n\nexport function encodeLinkSubmitValue(\n\trecordIds: string[],\n\tallowDuplicateLinkedRecords: boolean,\n\tcounts?: number[] | Map<string, number> | Record<string, number>\n): string {\n\tlet allowDup = !!allowDuplicateLinkedRecords;\n\n\tlet alignedCounts: number[] | null = null;\n\tif (Array.isArray(counts) && counts.length === recordIds.length) {\n\t\talignedCounts = counts;\n\t} else if (counts instanceof Map) {\n\t\talignedCounts = recordIds.map((token) => {\n\t\t\tconst { id } = splitLinkIdAndCount(token);\n\t\t\tconst fromClean = counts.get(id);\n\t\t\tconst fromRaw = counts.get(token);\n\t\t\treturn fromClean != null ? Number(fromClean) : Number(fromRaw);\n\t\t});\n\t} else if (counts) {\n\t\talignedCounts = recordIds.map((token) => {\n\t\t\tconst { id } = splitLinkIdAndCount(token);\n\t\t\tconst fromClean = counts[id];\n\t\t\tconst fromRaw = counts[token];\n\t\t\treturn fromClean != null ? Number(fromClean) : Number(fromRaw);\n\t\t});\n\t}\n\tconst sanitized = sanitizeLinkIdsAndCounts(recordIds, alignedCounts);\n\tconst uniqueIds = sanitized.recordIDs;\n\tconst countPayload: number[] = sanitized.counts;\n\tconst hasMultiplicity = countPayload.some((count) => Number(count) > 1);\n\tif (hasMultiplicity) {\n\t\tallowDup = true;\n\t}\n\tif (!allowDup && !hasMultiplicity) {\n\t\treturn uniqueIds.toString();\n\t}\n\tif (countPayload.length === uniqueIds.length) {\n\t\treturn JSON.stringify([uniqueIds, countPayload.map((count) => Number(count) || 1)]);\n\t}\n\treturn JSON.stringify(compactLinkRecordIds(uniqueIds));\n}\n\n/**\n * Allow Duplicate Linked Records from ValueHolder (local state).\n */\nexport function resolveAllowDuplicateLinkedRecords(\n\tvalueHolder?: any,\n\tfallbackFlag?: boolean,\n\t_baseID?: string,\n\t_tableID?: string,\n\t_fieldID?: string\n): boolean {\n\tif (valueHolder) {\n\t\treturn !!valueHolder.getAllowDuplicateLinkedRecords();\n\t}\n\treturn !!fallbackFlag;\n}\n\n/**\n * Prefer an already-loaded view on the table. Linked/mirror record flows often\n * pass \"-1\" or a viewID that is not yet in the DataStore.\n */\nexport function resolveUsableViewID(baseID: string, tableID: string, preferredViewID?: string | null): string | null {\n\tconst table = (globalThis as any).Table.Data.Workspace.get(baseID).getTable(tableID);\n\tif (preferredViewID && preferredViewID !== '-1' && table.getView(preferredViewID)) { //No I18N\n\t\treturn preferredViewID;\n\t}\n\tconst viewOrder = table.getViewOrder();\n\tif (viewOrder.length) {\n\t\treturn viewOrder[0];\n\t}\n\treturn null;\n}\n\n/**\n * Patches a Link multi-select ValueHolder so submit/toString stay O(unique)\n * when Allow Duplicate Linked Records is ON.\n * Counts are stored on the holder so later setRecordIDs + setRecordCounts stay consistent.\n *\n * TODO (craftgrid): move into craftgrid once Link multi-select ValueHolder wiring is owned there.\n */\nexport function wireLinkMultiSelectValueHolder(\n\tvalueHolder: any,\n\trecordIDs: string[],\n\trecordCounts: number[],\n\tallowDuplicateLinkedRecords: boolean\n): any {\n\tconst allowDup = !!allowDuplicateLinkedRecords;\n\tvalueHolder._linkRecordCounts = recordCounts;\n\tvalueHolder.getAllowDuplicateLinkedRecords = () => allowDup;\n\tvalueHolder.getRecordCounts = function getRecordCounts() {\n\t\treturn this._linkRecordCounts;\n\t};\n\tvalueHolder.setRecordCounts = function setRecordCounts(counts: number[]) {\n\t\tthis._linkRecordCounts = counts;\n\t};\n\tvalueHolder.toString = function toString() {\n\t\treturn encodeLinkSubmitValue(this.getRecordIDs(), allowDup, this.getRecordCounts());\n\t};\n\treturn valueHolder;\n}\n\nexport function isCompactLinkResponseValue(parsed: any): parsed is CompactLinkResponsePayload {\n\treturn Array.isArray(parsed)\n\t\t&& parsed.length >= 3\n\t\t&& Array.isArray(parsed[0])\n\t\t&& Array.isArray(parsed[1])\n\t\t&& Array.isArray(parsed[2]);\n}\n\nfunction isNumericCountArray(values: any[]): boolean {\n\tif (!Array.isArray(values)) {\n\t\treturn false;\n\t}\n\tif (!values.length) {\n\t\treturn true;\n\t}\n\tfor (let i = 0; i < values.length; i++) {\n\t\tconst value = values[i];\n\t\t// Request counts are JSON numbers. Leaf displays are always strings in responses.\n\t\tif (typeof value !== 'number' || !Number.isFinite(value)) {\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn true;\n}\n\n/**\n * Request/CFR shape: [[ids],[counts]] — second array is numeric counts, not displays.\n */\nexport function isCompactLinkSubmitValue(parsed: any): parsed is CompactLinkSubmitPayload {\n\treturn Array.isArray(parsed)\n\t\t&& parsed.length === 2\n\t\t&& Array.isArray(parsed[0])\n\t\t&& Array.isArray(parsed[1])\n\t\t&& parsed[0].length === parsed[1].length\n\t\t&& isNumericCountArray(parsed[1]);\n}\n\n/**\n * Storage / leaked response tokens may be plain `id`, `id\\tcount`, or chip `id__index`.\n * Never treat the tab-count / chip-index suffix as part of the record id.\n */\nexport function splitLinkIdAndCount(token: string): { id: string; count: number } {\n\tlet raw = String(token);\n\tconst tabIndex = raw.indexOf('\\t'); // No I18N\n\tlet count = 1;\n\tif (tabIndex >= 0) {\n\t\tconst parsedCount = Number.parseInt(raw.substring(tabIndex + 1), 10);\n\t\tcount = Number.isFinite(parsedCount) && parsedCount > 0 ? parsedCount : 1;\n\t\traw = raw.substring(0, tabIndex);\n\t}\n\t// Allow-dup DomGrid/FTC chips use composite option ids: rec…__index\n\tconst separatorIndex = raw.lastIndexOf('__'); // No I18N\n\tif (separatorIndex > 0) {\n\t\tconst suffix = raw.substring(separatorIndex + 2);\n\t\tif (/^\\d+$/.test(suffix)) {\n\t\t\traw = raw.substring(0, separatorIndex);\n\t\t}\n\t}\n\treturn { id: raw, count };\n}\n\n/**\n * Strip leaked `id\\tcount` / `id__index` tokens and merge into unique ids + counts.\n * When `existingCounts` is provided (aligned with input tokens), prefer\n * max(tokenCount, existingCounts[i]) so compact response counts still win.\n */\nexport function sanitizeLinkIdsAndCounts(\n\ttokens: string[],\n\texistingCounts?: number[] | null\n): { recordIDs: string[]; counts: number[] } {\n\tconst uniqueIds: string[] = [];\n\tconst counts: number[] = [];\n\tconst indexById = new Map<string, number>();\n\tif (!tokens.length) {\n\t\treturn { recordIDs: uniqueIds, counts };\n\t}\n\tfor (let i = 0; i < tokens.length; i++) {\n\t\tconst { id, count: tokenCount } = splitLinkIdAndCount(tokens[i]);\n\t\tif (!id) {\n\t\t\tcontinue;\n\t\t}\n\t\tconst fromExisting = existingCounts && existingCounts[i] != null ? Number(existingCounts[i]) : 0;\n\t\tconst addCount = fromExisting > 0 ? fromExisting : tokenCount;\n\t\tconst existingIndex = indexById.get(id);\n\t\tif (existingIndex !== undefined) {\n\t\t\tcounts[existingIndex] = counts[existingIndex] + addCount;\n\t\t} else {\n\t\t\tindexById.set(id, uniqueIds.length);\n\t\t\tuniqueIds.push(id);\n\t\t\tcounts.push(addCount);\n\t\t}\n\t}\n\treturn { recordIDs: uniqueIds, counts };\n}\n\n/**\n * Preferred submit encoder from a Link multi-select ValueHolder.\n */\nexport function encodeLinkValueFromValueHolder(\n\tvalueHolder: any,\n\tfallbackAllowDuplicateLinkedRecords?: boolean,\n\tbaseID?: string,\n\ttableID?: string,\n\tfieldID?: string\n): string {\n\tconst rawIds = valueHolder.getRecordIDs();\n\tconst rawCounts = valueHolder.getRecordCounts();\n\tconst sanitized = sanitizeLinkIdsAndCounts(rawIds, rawCounts);\n\tconst allowDup = resolveAllowDuplicateLinkedRecords(\n\t\tvalueHolder,\n\t\tfallbackAllowDuplicateLinkedRecords,\n\t\tbaseID,\n\t\ttableID,\n\t\tfieldID\n\t);\n\treturn encodeLinkSubmitValue(sanitized.recordIDs, allowDup, sanitized.counts);\n}\n","// The module cache\nconst __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tconst cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tconst module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter/value functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tif(Array.isArray(definition)) {\n\t\tvar i = 0;\n\t\twhile(i < definition.length) {\n\t\t\tvar key = definition[i++];\n\t\t\tvar binding = definition[i++];\n\t\t\tvar descriptor = binding === 0 ? { enumerable: true, value: definition[i++] } : { enumerable: true, get: binding };\n\t\t\tif(!__webpack_require__.o(exports, key)) Object.defineProperty(exports, key, descriptor);\n\t\t}\n\t} else {\n\t\tfor(var key in definition) {\n\t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t\t}\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop));","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","(function(ctx) {\n\tvar Table = ctx.Table || (ctx.Table = {});\n\tvar Constants = Table.Constants || (Table.Constants = {});\n\n\tConstants.TABLEACTION = {\"ALTER_REQUIREMENT_STATUS_SCHEMA_FORM_VIEW\":214,\"UNHIDE_VIEW\":47,\"FETCH_SNAP_IN_VERSION_PREVIEW\":568,\"GET_ADMIN_PANEL_LOGS\":274,\"SNAP_COMPONENT_COPY_CONFIGURATION_VIEW\":564,\"CREATE_RECORD_AND_PASTE\":95,\"ALTER_TYPE_FIELD\":12,\"ALTER_META_ATTACHMENT\":197,\"ALTER_AGGREGATION_SECONDARY_LABEL_STATUS\":525,\"FETCH_WORKSPACE_MEMBERS\":82,\"INSERT_NEXT_SELECTION_OPTION\":113,\"SNAP_LISTING_PAGE_IN_VERSION_PREVIEW\":567,\"ALTER_META_TABLE\":23,\"DELETE_FILTER\":1013,\"GET_BASES_IN_WORKSPACE\":268,\"CREATE_FIELD\":110,\"REFRESH_DYNAMICS\":200,\"SEARCH\":124,\"INSERT_SNAP_CHART_UNIT_FIELDS_TO_PLOT\":561,\"ALTER_META_SCHEMA_CARD\":159,\"CLEAR_CONDITIONAL_HIGHLIGHT\":192,\"ALTER_ORDER_VIEW\":18,\"CLEAR_SCHEMA_CARD\":194,\"ALTER_CONTENT_TYPE_SOCIAL_ACTION_AUTOMATION\":361,\"UPDATE_FILTER\":1012,\"UPDATE_CHART_DRAW_WITH\":532,\"DUPLICATE_CONDITIONAL_HIGHLIGHT\":182,\"GET_PORTAL_USERS\":263,\"ALTER_WEBHOOK_HEADER_VALUE_ACTION_AUTOMATION\":716,\"ALTER_ORDER_TABLE\":22,\"DELETE_UNIT_FILTER\":72,\"ALTER_LOGO_IMAGE_FORM_VIEW\":229,\"REMOVE_ATTACHMENT_SEND_MAIL_ACTION_AUTOMATION\":341,\"INSERT_PREV_RECORD\":26,\"LOAD_CARD_IN_VERSION_PREVIEW\":569,\"CREATE_EMBED_VIEW_LINK\":251,\"DUPLICATE_WITH_DATA_FIELD\":28,\"SHARE_SNAP\":505,\"ALTER_SHARED_SNAP_STATUS\":506,\"UPDATE_VIEWPORT_FETCH_DATA\":403,\"UPDATE_PORTAL_OWNER\":655,\"UPDATE_SNAP_GRID_ROW_HEIGHT\":553,\"INDUSTRY_TYPE_SELECTION\":405,\"ALTER_FILTER_LOGICAL_STRING_ACTION_AUTOMATION\":331,\"MAKE_PORTAL_DEFAULT\":87,\"ALTER_AGGREGATION_FIELD\":520,\"ALTER_NAME_PARAMETERS_FORM_VIEW\":169,\"DUPLICATE_TABLE\":24,\"CREATE_SINGLE_SELECT_CONDITIONAL_HIGHLIGHT\":180,\"DELETE_PORTAL\":76,\"CREATE_SNAP_COMPONENT_UNIT_FILTER\":539,\"INSERT_NEXT_RECORD\":2,\"INSERT_SNAP_COMPONENT_UNIT_FILTER\":540,\"ADD_SNAP_GLOBAL_FILTER_TABLE\":658,\"ALTER_NAME_VIEW\":44,\"DELETE_SORT\":1009,\"CREATE_RECORD_GROUP\":127,\"DELETE_SCHEMA_CARD\":158,\"REMOVE_WEBHOOK_HEADER_ACTION_AUTOMATION\":719,\"ALTER_NAME_TABLE\":36,\"ALTER_AGGREGATION_FORMULA\":521,\"ALTER_CHART_X_AXIS_LABEL\":534,\"ADD_WORKSPACE\":63,\"IMPORT_TRANSACTION_ID\":56,\"INSERT_SORT\":64,\"FETCH_GANTT_RECORD_DATA\":645,\"CREATE_BASE\":98,\"CREATE_RELATIONSHIP\":151,\"ALTER_NAME_PARAMETERS_SIZE_FORM_VIEW\":240,\"ALTER_NAME_PARAMETERS_ALIGNMENT_FORM_VIEW\":220,\"ALTER_TABLEID_FIND_AND_INCLUDE_RECORDS_ACTION_AUTOMATION\":345,\"ADD_USER_INTO_VIEW\":418,\"MARK_AS_PRIMARY_FIELD\":567,\"ALTER_SIZE_LOGO_FORM_VIEW\":216,\"GET_WORKSPACES_BY_PORTAL\":265,\"CREATE_VIEW\":1005,\"INSERT_ATTACHMENT\":195,\"GET_PORTAL_PLAN_DETAILS\":408,\"ALTER_NAME_FORM_VIEW\":163,\"UPDATE_ACTION\":1017,\"CREATE_SCHEMA_GALLERY_VIEW\":134,\"CREATE_UNIT_FILTER\":69,\"ALTER_SNAP_CARD_TABLE\":514,\"SHEET2APP_IMPORT_TABLES\":33,\"INSERT_TABLE\":20,\"UNHIDE_SNAP_GRID_FIELD\":550,\"ALTER_ALL_STACKS_VISIBILITY\":233,\"INSERT_FIELD_VALUES_ACTION_AUTOMATION\":319,\"ALTER_CONTENT_TRIGGER_FIELD_SOCIAL_ACTION_AUTOMATION\":362,\"UPDATE_SORT\":1008,\"FETCH_GROUP_BY_META\":648,\"UPDATE_KANBAN_ANCHOR\":119,\"UNDO\":90,\"GET_ALL_BASE_VERSIONS\":273,\"UPDATE_SNAP_COMPONENT_FILTER_LOGICAL_STRING\":544,\"ALTER_ORDER_CONDITIONAL_HIGHLIGHT\":186,\"ALTER_REDIRECT_URL_FORM_VIEW\":172,\"DELETE_UNIT_FILTER_TRIGGER_AUTOMATION\":312,\"CREATE_MULTIPLE_UNIT_FILTER\":201,\"DUPLICATE_BASE\":99,\"REORDER_SNAP_CHART_UNIT_FIELDS_TO_PLOT\":560,\"ALTER_NAME_SCHEMA_FORM_VIEW\":212,\"ALTER_LABEL_ALIGNMENT_FORM_VIEW\":165,\"UPDATE_MESSAGE_ACTION_AUTOMATION\":326,\"ALTER_EMPTY_RECORD_CREATE_TRIGGER_AUTOMATION\":335,\"ALTER_META_SCHEMA_GALLERY_VIEW\":135,\"UPDATE_RECORD_COMMENTS\":277,\"SEARCH_GANTT_TASKS\":644,\"ALTER_ALIGNMENT_LOGO_FORM_VIEW\":217,\"ALTER_WEBHOOK_URL_ACTION_AUTOMATION\":709,\"ADD_USER_INTO_BASE\":130,\"DUPLICATE_WITHOUT_DATA_FIELD\":13,\"FETCH_PORTALS\":75,\"UPDATE_GANTT_CONFIGURATION_DURATION_SCALE\":646,\"DELETE_WORKSPACE_MEMBER\":81,\"ALTER_META_UNIT_SORT\":67,\"EXPORT_TO_CREATOR_CALLBACK\":420,\"ALTER_SNAP_COMPONENT_FILTER_CONDITION_TYPE\":543,\"CREATE_TRIGGER_AUTOMATION\":306,\"UPDATE_GANTT_CONFIGURATION\":636,\"ALTER_NAME_SUBMIT_BUTTON_FORM_VIEW\":170,\"FETCH_PORTAL_COMMAND\":84,\"DELETE_UNIT_SORT\":66,\"ALTER_TRIGGER_AUTOMATION\":307,\"INSERT_WEBHOOK_HEADER_ACTION_AUTOMATION\":717,\"SEARCH_BASES\":101,\"ALTER_HEIGHT_RECORD\":53,\"BULK_DELETE_FIELDS\":1018,\"UPDATE_RECORD_WITH_CRITERIA\":278,\"ALTER_DESCRIPTION_SCHEMA_FORM_VIEW\":213,\"UPDATE_CC_SEND_MAIL_ACTION_AUTOMATION\":324,\"ALTER_AGGREGATION_ALIGNMENT\":528,\"ALTER_COLOR_THEME_FORM_VIEW\":176,\"CREATE_PORTAL\":400,\"GET_USER_DETAILS\":275,\"UPDATE_CHART_FIELDS_TO_PLOT\":529,\"ALTER_ORDER_CHOICES_SCHEMA_FORM_VIEW\":222,\"ALTER_DESCRIPTION_TABLE\":35,\"ALTER_DUPLICATE_RECORD_CREATE_TRIGGER_AUTOMATION\":336,\"ALTER_CHART_TYPE\":533,\"ALTER_COVER_IMAGE_VISIBILITY_FORM_VIEW\":210,\"GET_PORTALS_BY_USER\":261,\"SHEET2APP_IMPORT_FIELDS\":48,\"SORT_CHOICES_SCHEMA_FORM_VIEW\":241,\"ALTER_FILTER_LOGICAL_STRING_FIND_AND_INCLUDE_RECORDS_ACTION_AUTOMATION\":351,\"ALTER_FILTER_LOGICAL_OPERATOR\":74,\"ALTER_ORDER_KANBAN_STACK\":231,\"ALTER_MEDIA_TRIGGER_FIELD_SOCIAL_ACTION_AUTOMATION\":364,\"BULK_CREATE_SELECTION_OPTIONS\":1004,\"UNHIDE_FIELD\":16,\"HIDE_VIEW\":46,\"ALTER_SNAP_COMPONENT_UNIT_FILTER\":542,\"ALTER_SNAP_GLOBAL_FILTER_LABEL\":654,\"ALTER_RATIO_SCHEMA_CARD\":161,\"BULK_UPDATE_RECORDS\":1019,\"CREATE_SELECTION_OPTION_WITH_DATA\":118,\"ALTER_AGGREGATION_GROUP_BY_FIELD\":522,\"UNHIDE_TABLE\":38,\"FETCH_ACTIVITY_LOG\":57,\"CREATE_UNIT_FILTER_TRIGGER_AUTOMATION\":310,\"INSERT_PREV_SELECTION_OPTION\":112,\"ALTER_DESCRIPTION_FIELD\":40,\"EXPORT_BASE\":107,\"ALTER_USER_TYPE_EMBED_VIEW_LINK\":206,\"ALTER_RECORD_ORDER_GROUP\":120,\"DELETE_PORTAL_MEMBER\":58,\"ALTER_VISIBILITY_LOGO_FORM_VIEW\":224,\"DELETE_CONDITIONAL_HIGHLIGHT\":184,\"FETCH\":0,\"UPDATE_SINGLE_SELECT_CONDITIONAL_HIGHLIGHT\":181,\"ALTER_META_UNIT_CONDITIONAL_HIGHLIGHT\":189,\"ALTER_SNAP_CARD_SIZE\":566,\"CREATE_RECORD_COMMENTS\":208,\"ALTER_COMPONENT_TYPE_SCHEMA_FORM_VIEW\":211,\"DELETE_ACTION_AUTOMATION\":317,\"GET_ALL_ACTIVITY_LOG_FOR_BASE\":276,\"EXPORT_VIEW\":109,\"UPDATE_SNAP_NAME\":502,\"UPDATE_SNAP_RTE_CONTENT\":555,\"UPDATE_GANTT_TASK_DEPENDENCY_TYPE\":640,\"EXPORT_TABLE\":108,\"CREATE_SELECTION_OPTION\":111,\"ALTER_ROLE_BASE_USER\":133,\"DUPLICATE_TABLE_WITHOUT_DATA\":300,\"DELETE_RELATIONSHIP\":153,\"GET_ACTIVE_WORKSPACE\":264,\"UPDATE_PORTAL_NAME\":86,\"DELETE_LOGO_FORM_VIEW\":242,\"CREATE_GANTT_DEPENDENCY_FIELD\":633,\"HIDE_RECORD\":42,\"CREATE_SNAP\":501,\"INSERT_NEXT_RECORD_GROUP\":128,\"DELETE_SCHEMA_GALLERY_VIEW\":136,\"INSERT_UNIT_FILTER_TRIGGER_AUTOMATION\":311,\"INSERT_UNIT_FILTER\":71,\"ALTER_SNAP_PASSWORD\":507,\"DUPLICATE_WITH_DATA_VIEW\":19,\"ALTER_SUMMARY_BAR\":32,\"FETCH_TABLE\":50,\"SWITCH_TABLE\":31,\"INSERT_SNAP_CARD\":511,\"UPDATE_SNAP_SORT_ORDER\":554,\"ALTER_NAME_FIELD\":39,\"CLEAR_KANBAN_STACK\":230,\"ALTER_SNAP_CARD_POSITION\":512,\"UPDATE_PROPERTY_CARD\":156,\"ALTER_META_UNIT_FILTER_TRIGGER_AUTOMATION\":313,\"DELETE_SELECTION_OPTION\":116,\"BULK_DELETE_RECORDS\":1002,\"DELETE_RECORD\":3,\"SHEET2APP_IMPORT_BASE\":100,\"UPDATE_BASE_NAME\":83,\"SUBMIT_FORM_VIEW\":178,\"ALTER_FIELDID_SUMMARY_OF_A_FIELD_ACTION_AUTOMATION\":354,\"REMOVE_ATTACHMENT_FIELD_SEND_MAIL_ACTION_AUTOMATION\":342,\"FETCH_BASE\":49,\"SORT_BASES\":453,\"ALTER_ORDER_RECORD\":4,\"UPDATE_VIEWPORT_FETCH_SNAP\":557,\"GET_EMAIL_IDs\":406,\"FETCH_VIEW\":51,\"ALTER_STATE_EMBED_VIEW_LINK\":203,\"ALTER_CATEGORY_CARD\":162,\"DELETE_ATTACHMENT\":196,\"ALTER_SNAP_SHARED_USER_TYPE\":509,\"FETCH_IN_VERSION_PREVIEW\":566,\"SWITCH_VIEW\":30,\"ALTER_DESCRIPTION_VIEW\":43,\"ALTER_CHART_GROUP_BY_FIELD\":531,\"INSERT_ACTION_AUTOMATION\":316,\"ALTER_SNAP_EDIT_USER\":503,\"REDO\":91,\"UPDATE_SUBJECT_SEND_MAIL_ACTION_AUTOMATION\":325,\"ALTER_FORM_SUBMIT_RECORD_CREATE_TRIGGER_AUTOMATION\":334,\"HIDE_SNAP_GRID_FIELD\":549,\"UPDATE_WORKSPACE_NAME\":79,\"INSERT_UNIT_SORT\":65,\"ALTER_SUMMARY_TYPE_SUMMARY_OF_A_FIELD_ACTION_AUTOMATION\":355,\"REORDER_SNAP_GRID_FIELD\":551,\"ALTER_ORDER_SELECTION_OPTION\":114,\"UPDATE_GANTT_TASK_END_DATE\":638,\"ALTER_META_SCHEMA_FORM_VIEW\":168,\"MULTIPLE_DATA_SUBMIT\":121,\"ALTER_HEADER_STATUS_GALLERY_VIEW\":139,\"ALTER_MULTIPLE_SUBMIT_EMBED_VIEW_LINK\":207,\"INSERT_FILTER\":70,\"ALTER_META_UNIT_FILTER_FIND_AND_INCLUDE_RECORDS_ACTION_AUTOMATION\":350,\"DELETE_UNIT_CONDITIONAL_HIGHLIGHT\":188,\"BULK_CREATE_RECORDS\":1001,\"UPDATE_PORTAL_MEMBER_ROLE\":78,\"MOVE_BASE\":198,\"CLEAR\":96,\"DUPLICATE_AUTOMATION\":332,\"CREATE_FIELD_AND_UPDATE_KANBAN_ANCHOR\":219,\"UPDATE_GANTT_TASK_MILESTONE_STATUS\":639,\"INSERT_AUTOMATION\":302,\"ALTER_META_FIELD\":9,\"ALTER_META_SELECTION_OPTION\":115,\"SEARCH_IN_VERSION_PREVIEW\":572,\"ALTER_AGGREGATION_GROUP_BY_TYPE\":523,\"ALTER_ORDER_UNIT_SORT\":68,\"ALTER_ORDER_SCHEMA_GALLERY_VIEW\":137,\"ALTER_SNAP_GRID_FILTER_TYPE\":538,\"INSERT_PREV_RECORD_GROUP\":129,\"UPDATE_FIELD_CHOICES_FIND_AND_INCLUDE_RECORDS_ACTION_AUTOMATION\":352,\"GET_PORTAL_DETAILS\":262,\"ADD_PORTAL_MEMBER\":62,\"FETCH_LISTING_PAGE\":55,\"INCLUDE_VIEW_FILTERS_FIND_AND_INCLUDE_RECORDS_ACTION_AUTOMATION\":346,\"REMOVE_CHANNEL_OR_USER_CLIQ_BOT_ACTION_AUTOMATION\":358,\"CREATE_RECORD\":97,\"SORT_ORDER_SELECTION_OPTION\":117,\"DELETE_UNIT_FILTER_FIND_AND_INCLUDE_RECORDS_ACTION_AUTOMATION\":349,\"CUT\":94,\"DELETE_SNAP_GRID_UNIT_SORT\":546,\"ALTER_ORDER_FIELD\":10,\"GET_BASE_USERS_LIST\":270,\"INSERT_PREVIOUS_VIEW\":29,\"ALTER_TABLEID_SUMMARY_OF_A_FIELD_ACTION_AUTOMATION\":353,\"ALTER_CHART_Y_AXIS_LABEL\":535,\"ALTER_TABLEID_ACTION_AUTOMATION\":318,\"CREATE_GANTT_START_DATE_FIELD\":630,\"ALTER_NAME_PARAMETERS_VISIBILITY_FORM_VIEW\":221,\"UPDATE_VIEWPORT_FETCH_SNAP_LISTING_PAGE\":556,\"DELETE_BASE_USER\":132,\"INSERT_COVER_IMAGE_FORM_VIEW\":225,\"DUPLICATE_RECORD\":5,\"SHEET2APP_IMPORT_RECORDS\":34,\"ALTER_WEBHOOK_PARAM_KEY_ACTION_AUTOMATION\":711,\"ALTER_WEBHOOK_BODY_ACTION_AUTOMATION\":715,\"ALTER_API_RECORD_CREATE_TRIGGER_AUTOMATION\":337,\"GET_PORTALS_FOR_PRODUCT\":272,\"UPDATE_SNAP_CHART_UNIT_FIELDS_TO_PLOT\":563,\"INIT_GANTT_CONFIGURATION\":635,\"GET_BASE_DETAILS\":269,\"CREATE_GANTT_MILESTONE_FIELD\":634,\"ALTER_BRAND_SOCIAL_ACTION_AUTOMATION\":360,\"DUPLICATE_SNAP_CARD\":565,\"ALTER_SNAP_CARD_TITLE\":516,\"ALTER_AGGREGATION_COLOR\":527,\"DELETE_KANBAN_STACK_RECORDS\":232,\"DELETE_FIELD\":7,\"REVEAL_PII_DATA\":411,\"ALTER_PASTE_RECORD_CREATE_TRIGGER_AUTOMATION\":338,\"ALTER_PORTAL_SOCIAL_ACTION_AUTOMATION\":359,\"ALTER_WEBHOOK_PARAM_VALUE_ACTION_AUTOMATION\":712,\"SUBMIT\":1,\"ALTER_AGGREGATION_SECONDARY_VALUE_STATUS\":524,\"UPDATE_GANTT_TASK_START_DATE\":637,\"BULK_CREATE_FIELDS\":1003,\"UPDATE_TO_ADDRESS_SEND_MAIL_ACTION_AUTOMATION\":322,\"CREATE_GANTT_DISPLAY_FIELD\":632,\"CREATE_ACTION_AUTOMATION\":315,\"UPDATE_ANCHOR_CALENDAR_VIEW\":123,\"UPDATE_FIELD_VALUES_ACTION_AUTOMATION\":321,\"ADD_BASE_USER_WITH_SUBMIT\":141,\"DELETE_SNAP_CARD\":513,\"GET_WORKSPACE_DETAILS\":266,\"UPDATE_WORKSPACE_MEMBER_ROLE\":89,\"REORDER_SNAP_GRID_UNIT_SORT\":548,\"HIDE_TABLE\":37,\"INSERT_UNIT_CONDITIONAL_HIGHLIGHT\":187,\"ALTER_META_VIEW\":17,\"ALTER_SNAP_CARD_HEIGHT\":517,\"REFRESH_EMBED_VIEW_LINK\":252,\"REPLACE\":125,\"GET_ATTACHMENTS_LIST\":271,\"ALTER_SNAP_EXPIRY_DATE\":508,\"ALTER_DESCRIPTION_FORM_VIEW\":164,\"UPDATE_PASSWORD_EMBED_VIEW_LINK\":205,\"DELETE_UNIT_FILTER_ACTION_AUTOMATION\":329,\"CREATE_FILTER\":1011,\"INSERT_LOGO_FORM_VIEW\":228,\"RESET_SCHEMA_CARD\":199,\"DELETE_SNAP_CHART_UNIT_FIELDS_TO_PLOT\":562,\"ADD_SNAP_GLOBAL_FILTER\":653,\"CREATE_NEW_BASE_FROM_VERSION\":565,\"FETCH_DATA\":54,\"LISTING_PAGE_HOME\":61,\"ALTER_FILTER_LOGICAL_STRING_TRIGGER_AUTOMATION\":314,\"RECORD_DATE_RANGE_UPDATE_GANTT\":647,\"BULK_CREATE_SORTS\":1006,\"GET_ACTIVE_PORTAL\":260,\"DELETE_SNAP\":504,\"CLONE_BASE_TEMPLATE\":401,\"DELETE_COVER_IMAGE_FORM_VIEW\":227,\"ALTER_SNAP_CARD_WIDTH\":518,\"CREATE_AUTOMATION\":333,\"FETCH_SNAP_CARD\":510,\"PASTE\":92,\"UPDATE_FALLBACK_CONDITIONAL_HIGHLIGHT\":191,\"ACTIVITY_LOG_IN_VERSION_PREVIEW\":570,\"INSERT_SCHEMA_CARD\":157,\"ADD_PORTAL\":85,\"INSERT_UNIT_FILTER_FIND_AND_INCLUDE_RECORDS_ACTION_AUTOMATION\":348,\"ALTER_MESSAGE_AFTER_SUBMIT_FORM_VIEW\":167,\"DELETE_GANTT_TASK_DEPENDENCY\":642,\"CREATE_ACTION\":1016,\"ALTER_FIELDS_TRIGGER_AUTOMATION\":308,\"INSERT_ATTACHMENT_FIELD_SEND_MAIL_ACTION_AUTOMATION\":340,\"DELETE_SNAP_GLOBAL_FILTER\":657,\"ALTER_WEBHOOK_METHOD_ACTION_AUTOMATION\":720,\"INSERT_NEXT_FIELD\":6,\"ALTER_LINK_RECORD_CREATE_TRIGGER_AUTOMATION\":356,\"INSERT_SNAP_GRID_UNIT_SORT\":545,\"CREATE_RECORD_WITH_DATA\":122,\"ALTER_META_UNIT_FILTER_ACTION_AUTOMATION\":330,\"UPDATE_SNAP_GLOBAL_FILTER_TABLE\":659,\"UPDATE_BCC_SEND_MAIL_ACTION_AUTOMATION\":323,\"ALTER_CHART_LEGEND_POSITION\":536,\"INSERT_NEXT_VIEW\":14,\"LOAD_MORE_ACTIVITY_LOG_IN_VERSION_PREVIEW\":571,\"DRAG_AND_DROP_RECORD_IN_CALENDAR\":460,\"COPY_CONFIGURATION_VIEW\":301,\"CREATE_AUTOMATION_WITH_CONFIG\":1014,\"INSERT_UNIT_FILTER_ACTION_AUTOMATION\":328,\"ALTER_CHART_FORMULA\":530,\"CREATE_GANTT_END_DATE_FIELD\":631,\"UPDATE_SNAP_GRID_UNIT_SORT\":547,\"GET_WORKSPACE_USERS\":267,\"ADD_WORKSPACE_MEMBER\":80,\"ADD_GANTT_TASK_DEPENDENCY\":641,\"GET_ACTIVE_PORTAL_DETAILS\":59,\"UPDATE_EXPIRY_DATE_EMBED_VIEW_LINK\":204,\"FIX_GANTT_INVALID_TASK_DEPENDENCY\":643,\"ALTER_BRANDING_STATUS_FORM_VIEW\":175,\"GET_PORTAL_MEMBERS\":60,\"ALTER_TABLEID_TRIGGER_AUTOMATION\":309,\"ALTER_MEDIA_SOCIAL_ACTION_AUTOMATION\":363,\"CREATE_CONDITIONAL_HIGHLIGHT\":183,\"UPDATE_SNAP_GLOBAL_FILTER_FIELD\":660,\"REPLACE_ALL\":126,\"UPDATE_RECORD\":1021,\"CREATE_LINKED_RECORD_WITH_DATA_AND_SUBMIT\":150,\"ALTER_META_UNIT_FILTER\":73,\"CREATE_FIELD_WITH_RELATIONSHIP\":154,\"COPY\":93,\"ALTER_FILTER_LOGICAL_OPERATOR_CONDITIONAL_HIGHLIGHT\":190,\"ALTER_COVER_IMAGE_FORM_VIEW\":226,\"IMPORT_CLOSE_TRANSACTION\":410,\"DELETE_SNAP_GLOBAL_FILTER_TABLE\":661,\"EXPORT_GROUP\":581,\"RESIZE_RECORD_IN_CALENDAR\":461,\"ALTER_META_CONDITIONAL_HIGHLIGHT\":185,\"DELETE_FIELD_VALUES_ACTION_AUTOMATION\":320,\"DELETE_VIEW\":15,\"BULK_CREATE_FILTERS\":1010,\"ALTER_WEBHOOK_HEADER_KEY_ACTION_AUTOMATION\":718,\"DELETE_WORKSPACE\":77,\"GET_USER_COUNTS\":409,\"UPDATE_AUTOMATION\":1020,\"SNAP_CARD_MOVE\":519,\"ALTER_WIDTH_FIELD\":11,\"INSERT_MULTIPLE_UNIT_FILTER\":202,\"GET_ALL_BASES_FOR_USERS\":407,\"SNAP_CLOSE\":558,\"ALTER_META_SENTIMENT\":402,\"ALTER_AGGREGATION_DIFFERENCE_STATUS\":526,\"INSERT_WEBHOOK_PARAM_ACTION_AUTOMATION\":710,\"CREATE_UNIT_FILTER_ACTION_AUTOMATION\":327,\"CREATE_SORT\":1007,\"DELETE_AUTOMATION\":303,\"ALTER_VIEWID_TRIGGER_AUTOMATION\":344,\"UPDATE_TRIGGER\":1015,\"REMOVE_WEBHOOK_PARAM_ACTION_AUTOMATION\":713,\"UNHIDE_RECORD\":41,\"HIDE_FIELD\":8,\"RENAME_AUTOMATION\":304,\"DELETE_TABLE\":21,\"ALTER_SNAP_CARD_VIEW\":515,\"DELETE_SNAP_COMPONENT_UNIT_FILTER\":541,\"ALTER_WEBHOOK_BODY_MODE_ACTION_AUTOMATION\":721,\"INSERT_CHANNEL_OR_USER_CLIQ_BOT_ACTION_AUTOMATION\":357,\"DELETE_BASE\":88,\"UPDATE_SNAP_GRID_FIELD_WIDTH\":552,\"ALTER_STATUS_AUTOMATION\":305,\"CREATE_UNIT_FILTER_FIND_AND_INCLUDE_RECORDS_ACTION_AUTOMATION\":347,\"PRINT_VIEW\":680,\"DUPLICATE_BASE_FROM_EDITOR\":413,\"ALTER_STACK_VISIBILITY\":234,\"ALTER_VISIBILITY_CHOICES_SCHEMA_FORM_VIEW\":223,\"GET_PAGE_META\":404,\"ALTER_CHART_COLOR_PALETTE\":537,\"ALTER_ORDER_SCHEMA_CARD\":160,\"ALTER_META_FIELD_WITH_RELATIONSHIP\":155,\"GET_BASE_USERS\":131,\"ALTER_CATEGORY_SCHEMA_GALLERY_VIEW\":138,\"INSERT_ATTACHMENT_SEND_MAIL_ACTION_AUTOMATION\":339,\"UPDATE_FIELD_EPHI_STATE\":629,\"INSERT_PREV_FIELD\":27,\"UPDATE_SNAP_FILTER_TYPE\":559,\"ALTER_SNAP_GLOBAL_FILTER_TYPE\":656};\n\tConstants.REQUEST_KEYS = {\"IDS_RANGE\":\"idsRange\",\"TEXT_ALIGN\":\"textAlign\",\"CONNECTION_TYPE\":\"connectionType\",\"RELATIONSHIP_PARAMETERS\":\"relationshipParameters\",\"FIELD_SELECTION_IDS\":\"fieldSelectionIDs\",\"IS_DEPENDENCY_FIELD_ENABLED\":\"isDependencyEnabled\",\"CHART_TYPE\":\"chartType\",\"RELATIVE_ROW_ID\":\"relativeRowID\",\"TABLE_ID\":\"tableID\",\"TIME_FORMAT\":\"timeFormat\",\"MULTIPLE_LINKS\":\"multipleLinks\",\"FILE_NAME\":\"fileName\",\"WEBHOOK_RAW_BODY\":\"raw_body\",\"POSITION\":\"position\",\"PROXY_URL\":\"proxyURL\",\"GROUP_BY_FIELD\":\"groupByFieldID\",\"IS_HIGHLIGHT_CRITICAL_PATH\":\"highLightCriticalPath\",\"STACK_ID\":\"stackID\",\"OPERANDS\":\"OPERANDS\",\"ATTACHMENT_STYLE\":\"attachmentStyle\",\"SORT_TYPE\":\"sortType\",\"WIZ_WIDTH\":\"wizWidth\",\"RELATIVE_GROUP_BY_ID\":\"relativeGroupByID\",\"META\":\"meta\",\"SEARCH\":\"search\",\"FILE_EXTENSION\":\"fileExtension\",\"FIELD_IDS\":\"fieldIDs\",\"SIZE\":\"size\",\"FIELD_TYPE_PARAMETERS\":\"fieldTypeParameters\",\"LOGICAL_STRING\":\"logicalString\",\"DEPENDENCY_FIELD_ID\":\"dependencyField\",\"DESCRIPTOR_FIELD_ID\":\"descriptorFieldID\",\"EXPIRY_DATE1\":\"EXPIRY_DATE\",\"CUT_TYPE\":\"cutType\",\"ACTION_ID\":\"actionID\",\"SUMMARY_BAR_CONSTANT\":\"summaryBarConstant\",\"GROUP_ID\":\"groupID\",\"SUMMARY_TYPE\":\"summaryType\",\"QUERY\":\"query\",\"TO_ADDRESS\":\"toAddress\",\"FILTER_VALUES\":\"filterValues\",\"KEY\":\"key\",\"WEBHOOK_BODY_MODE\":\"body_mode\",\"LAST_VERSION_ID\":\"lastVersionID\",\"SHOW_EMPTY_GROUPS\":\"showEmptyGroups\",\"CARD_TYPE\":\"cardType\",\"EMAILS\":\"emails\",\"Y_AXIS_LABEL\":\"yAxisLabel\",\"SCHEDULED_AT\":\"scheduledAt\",\"PRECISION\":\"precision\",\"ROLE\":\"role\",\"MESSAGE\":\"message\",\"SHOW_ROW_NUMBERS\":\"showRowNumbers\",\"CHECKBOX_STYLE\":\"checkboxStyle\",\"DESCRIPTION\":\"description\",\"LINK_SELECTOR\":\"linkSelector\",\"PARAM_ID\":\"paramID\",\"IS_COUNT\":\"isCount\",\"PHONE_NUMBER_FORMAT\":\"phoneNumberFormat\",\"WIZ_ID\":\"wizID\",\"FORMULA_STRING\":\"formulaString\",\"MATCH_CASE\":\"matchCase\",\"OFFSET\":\"offset\",\"IS_COLLAPSED\":\"isCollapsed\",\"ATTACHMENT_ID\":\"attachmentID\",\"FROM_GROUP_PATH\":\"fromGroupPath\",\"FIELDS_TO_PLOT\":\"fieldsToPlot\",\"FOOTERS\":\"footers\",\"COPY_TYPE\":\"copyType\",\"MEDIA_IDS\":\"mediaIDs\",\"FROM_GROUP\":\"fromGroup\",\"IS_ENABLE_MILESTONE\":\"isMileStoneEnabled\",\"SCHEDULED_TIME\":\"scheduledTime\",\"OBJECT_FIT\":\"objectFit\",\"CLIENT_ACTION_ID\":\"clientActionID\",\"CONDITION_VALUE\":\"CONDITION_VALUE\",\"MATCH_CELL\":\"matchCell\",\"TABLE_BITSET\":\"tableBitSet\",\"SHEET_ID\":\"sheetID\",\"SCHEDULED_ON_DAYS\":\"scheduledOnDays\",\"MEDIA_LIST\":\"mediaList\",\"FIELD_TYPE\":\"fieldType\",\"DELETE_TYPE\":\"deleteType\",\"DRAW_WITH\":\"drawWith\",\"FILTER_DATE_OPTION\":\"filterDateOption\",\"TRANSACTION_ID\":\"transactionID\",\"SCHEMA_ID\":\"schemaID\",\"TO_GROUP\":\"toGroup\",\"TABLE_NAME\":\"tableName\",\"TO_GROUP_PATH\":\"toGroupPath\",\"SEARCH_TYPE\":\"searchType\",\"REFERENCE_ID\":\"referenceID\",\"PROPERTIES\":\"properties\",\"PASTE_TYPE\":\"pasteType\",\"NEGATIVE_NUMBER\":\"negativeNumber\",\"FIELDS_SELECTED\":\"fieldsSelected\",\"EMAIL\":\"email\",\"VIEW_TYPE\":\"viewType\",\"SORT_APPLICABLE_FIELDS\":\"sortApplicableFields\",\"SCHEDULED_WEEKS\":\"scheduledWeeks\",\"WEBHOOK_METHOD\":\"method\",\"FIELD_IDS_RANGE\":\"fieldIdsRange\",\"SCHEDULED_ON_TYPE\":\"scheduledOnType\",\"COLOR\":\"color\",\"TO_VIEW_ID\":\"toViewID\",\"RECORD_ID\":\"recordID\",\"LABEL\":\"label\",\"SHOW_SECONDARY_VALUE\":\"showSecondaryValue\",\"REPLACE\":\"replace\",\"WIZ_HEIGHT\":\"wizHeight\",\"SHOW_DIFFERENCE\":\"showDifference\",\"CURRENT_BITSET\":\"CURRENT_BITSET\",\"X_AXIS_LABEL\":\"xAxisLabel\",\"CLIPBOARD_HTML\":\"clipBoard_HTML\",\"RECORD_SELECTION_IDS\":\"recordSelectionIDs\",\"ACTION_NUMBER\":\"actionNumber\",\"REQUIRED\":\"required\",\"PLAN_ID\":\"PLAN_ID\",\"FILTER_TYPE\":\"filterType\",\"BASE_NAME\":\"baseName\",\"VIEW_DETAILS\":\"VIEW_DETAILS\",\"CURRENT\":\"CURRENT\",\"NAME\":\"name\",\"COLLABORATORS_COUNT\":\"COLLABORATORS_COUNT\",\"CONDITION_ID\":\"conditionID\",\"LAST_ACTION_ID\":\"lastActionID\",\"IS_FORWARD\":\"isForward\",\"DISPLAY_FIELD_ID\":\"displayField\",\"MARGIN\":\"margin\",\"ALIGNMENT\":\"alignment\",\"PRIMARY_FILTER_OPERATOR\":\"primaryFilterOperator\",\"SCHEMA_IDS\":\"schemaIDs\",\"COLOR_ID\":\"colorID\",\"CLIPBOARD_DATA\":\"clipBoard_Data\",\"TARGET_ROW_ID\":\"targetRowID\",\"CURRENCY_SYMBOL\":\"currencySymbol\",\"DESTINATION_VIEW_ID\":\"destinationViewID\",\"RECORDS_SELECTED\":\"recordsSelected\",\"SNAP_ID\":\"snapID\",\"AUTOMATION_TRIGGER_SOURCE_EMPTY_RECORD\":\"automationTriggerSourceEmptyRecord\",\"STATE\":\"state\",\"FILTER_ID\":\"filterID\",\"DELIMITER\":\",\",\"SCHEMA\":\"schema\",\"VIEW_PORT_CONFIG\":\"viewPortConfig\",\"SCHEDULED_TIME_FRAME_ENDS_AT_COUNT\":\"scheduledTimeFrameEndsAtCount\",\"SOURCE_TABLE\":\"sourceTable\",\"CC_ADDRESS\":\"ccAddress\",\"AUTOMATION_TRIGGER_SOURCE_DUPLICATE\":\"automationTriggerSourceDuplicate\",\"FROM_VIEW_ID\":\"fromViewID\",\"COPY_KEY\":\"copy_key\",\"EMOTION_ID\":\"emotionID\",\"TEXT_FORMAT\":\"textFormat\",\"LINE_SPACING\":\"lineSpace\",\"SENTIMENT_UPDATE_PARAMETERS\":\"sentimentUpdateParameters\",\"RID\":\"rid\",\"LEARN_GUIDE_STATE\":\"learnGuideState\",\"SCHEMA_POSITION\":\"schemaPosition\",\"VERSION_ID\":\"versionID\",\"CLEAR_TYPE\":\"clearType\",\"ACTION\":\"action\",\"RELATIONSHIP_IDS\":\"relationshipIDs\",\"RECORD_TYPE\":\"recordType\",\"VIEW_BITSET\":\"viewBitSet\",\"GROUP_BY_IDS\":\"groupByIDs\",\"TITLE\":\"title\",\"BITSET\":\"bitset\",\"ROW_POSITION\":\"rowPosition\",\"SUBSCRIPTION_MODE\":\"SUBSCRIPTION_MODE\",\"AUTOMATION_TRIGGER_SOURCE_LINK\":\"automationTriggerSourceLink\",\"MILESTONE_FIELD_ID\":\"milestoneField\",\"SCHEDULED_MONTHS\":\"scheduledMonths\",\"SHARE_URL\":\"shareUrl\",\"WORKSPACE_ID\":\"workspaceID\",\"AUTOMATION_ID\":\"automationID\",\"OPTION_IDS\":\"optionIDs\",\"TARGET_IDS\":\"targetIDs\",\"NEW_TAB_ID\":\"newTabID\",\"GROUP_PATH\":\"groupPath\",\"END_FIELD_ID\":\"endFieldID\",\"START_ID\":\"STARTID\",\"WATERMARK\":\"watermark\",\"SCHEDULED_DATES\":\"scheduledDates\",\"TYPE\":\"type\",\"DESTINATION_TABLE\":\"destinationTable\",\"SUFFIX\":\"suffix\",\"FIELDS\":\"fields\",\"TABLE_IDS\":\"tableIDs\",\"LINK_RECORD_ID\":\"linkedRecordID\",\"SCHEDULED_FREQUENCY\":\"scheduledFrequency\",\"CACHED\":\"CACHED\",\"VIEW_ID\":\"viewID\",\"FIND_AND_INCLUDE_RECORDS_ID\":\"findAndIncludeRecordsID\",\"END_DATE_CHOSEN_FIELD\":\"endDateChoosedField\",\"AUTOMATION_TRIGGER_SOURCE_PASTE\":\"automationTriggerSourcePaste\",\"FORMULA\":\"method\",\"ATTACHMENT_FILE_ID\":\"attachmentFileID\",\"TAB_ID\":\"tabID\",\"OPTION_ID\":\"optionID\",\"LAST_LOADED_ARHID\":\"lastLoadedARHID\",\"IS_HEADER_NEEDED\":\"isHeaderNeeded\",\"END_ID\":\"ENDID\",\"USER_TYPE\":\"userType\",\"ORIENTATION\":\"orientation\",\"COUNT\":\"count\",\"DATA_CHECK\":\"dataCheck\",\"SCHEDULED_ON_DAY\":\"scheduledOnDay\",\"DEFAULT_VALUE\":\"DEFAULT_VALUE\",\"PRESENCE_STATUS\":\"presence_status\",\"SORT_ID\":\"sortID\",\"RELATIVE_FILTER_ID\":\"relativeFilterID\",\"MAIL_SUBJECT\":\"mailSubject\",\"DATE_FORMAT\":\"dateFormat\",\"FILTER_OPERATOR\":\"filterOperator\",\"SECONDARY_FILTER_OPERATOR\":\"secondaryFilterOperator\",\"PORTAL_IDS\":\"PORTAL_IDS\",\"LEARN_GUIDE_PAGE\":\"learnGuidePage\",\"FIELD_VALUE\":\"fieldValue\",\"EXTENDED_TIME\":\"EXTENDED_TIME\",\"RATIO\":\"ratio\",\"WIDTH\":\"width\",\"URL\":\"url\",\"EXPIRY_DATE\":\"expiryDate\",\"LOGICAL_OPERATOR\":\"logicalOperator\",\"ORDER\":\"order\",\"SCHEDULED_TIME_FRAME_STATUS\":\"scheduledTimeFrameStatus\",\"HEADERS\":\"headers\",\"LINK_TYPE\":\"linkType\",\"CATEGORY\":\"category\",\"MAIL_MESSAGE\":\"mailMessage\",\"VALUES\":\"values\",\"SUMMARY_OF_A_FIELD_ID\":\"summaryOfAFieldID\",\"SORT_OPTION\":\"sortOption\",\"ANCHORS\":\"anchors\",\"RECORD_IDS\":\"recordIDs\",\"PORTAL_ID\":\"portalID\",\"SCHEDULED_TIME_FRAME_ENDS_AT_TYPE\":\"scheduledTimeFrameEndsAtType\",\"RECORDS\":\"records\",\"FILTER_DATE_VALUE\":\"filterDateValue\",\"AUTOMATION_TRIGGER_SOURCE_API\":\"automationTriggerSourceAPI\",\"START_DATE_FIELD_ID\":\"startDateField\",\"CARD_ID\":\"cardID\",\"AUTOMATION_TRIGGER_SOURCE_FORM_SUBMIT\":\"automationTriggerSourceFormSubmit\",\"CONDITION_TYPE\":\"CONDITION_TYPE\",\"SYMBOL_POSITION\":\"SymbolPosition\",\"CHANNEL_IDS\":\"channelIDs\",\"IS_LOAD_MORE\":\"isLoadMore\",\"IS_RESET_NEEDED\":\"isResetNeeded\",\"DESTINATION_TABLE_ID\":\"destinationTableID\",\"COLUMN\":\"column\",\"MODE\":\"MODE\",\"HTML\":\"html\",\"VALUE\":\"value\",\"FIELD_TYPE_PARAM\":\"fieldTypeParam\",\"FIELDS_TO_PLOT_ID\":\"fieldsToPlotID\",\"RATING_STYLE\":\"ratingStyle\",\"STEP_SIZE\":\"stepSize\",\"DESTINATION_RECORD_ID\":\"destinationRecordID\",\"STATUS\":\"status\",\"SCHEDULED_TIME_FRAME_START_DATE\":\"scheduledTimeFrameStartDate\",\"GROUP_BY_ID\":\"groupByID\",\"DURATION_SCALE_TYPE\":\"durationScale\",\"THOUSAND_SEPARATOR\":\"thousandSeparator\",\"SHOW_SECONDARY_LABEL\":\"showSecondaryLabel\",\"MEDIA\":\"media\",\"SUBSCRIPTION_PERIOD\":\"SUBSCRIPTION_PERIOD\",\"FILTER_STATUS_OPTION\":\"filterStatusOption\",\"ADJACENT_UNIT_SORT_ID\":\"adJacentUnitSortID\",\"SCHEDULED_DAYS\":\"scheduledDays\",\"SCHEDULED_TIME_FRAME_ENDS_AT_DATE\":\"scheduledTimeFrameEndsAtDate\",\"COLOR_IDS\":\"colorIDs\",\"CHANNEL_OR_USER\":\"channelOrUser\",\"PARAMETERS\":\"parameters\",\"ENABLE\":\"enable\",\"GROUP_BY_FIELD_TYPE\":\"groupByFieldType\",\"SCHEDULER_STATUS\":\"schedulerStatus\",\"SORT_IDS\":\"sortIDs\",\"BASE_ID\":\"baseID\",\"DATE\":\"DATE\",\"VISIBILITY\":\"visibility\",\"LINK_METAS\":\"LINK_METAS\",\"PASSWORD\":\"password\",\"DATA\":\"data\",\"PREFIX\":\"prefix\",\"LAST_ACTIVITY_LOG\":\"lastActivityLog\",\"END_DATE_FIELD_ID\":\"endDateField\",\"SENTIMENT_INSERT_PARAMETERS\":\"sentimentInsertParameters\",\"INITIAL_VALUE\":\"initialValue\",\"ROW\":\"row\",\"BCC_ADDRESS\":\"bccAddress\",\"PERMISSION\":\"permission\",\"DAYS_COUNT\":\"DAYS_COUNT\",\"SELECTION_ID\":\"selectionID\",\"MULTILINE_WRAPPER\":\"multilineWrapper\",\"BRAND_ID\":\"brandID\",\"SCHEDULED_HOURS\":\"scheduledHours\",\"EMOJI\":\"emoji\",\"SEARCH_POSITION\":\"searchPosition\",\"START_DATE_CHOSEN_FIELD\":\"startDateChoosedField\",\"BRANDING\":\"branding\",\"SCHEDULED_ON_WEEK\":\"scheduledOnWeek\",\"RECORD_IDS_RANGES\":\"recordIDsRanges\",\"EXPORT_TYPE\":\"exportType\",\"FONT_SIZE\":\"fontSize\",\"WEBHOOK_PARAM_SECTION\":\"section\",\"ADJACENT_FILTER_ID\":\"adjacentFilterID\",\"FIELD_ID\":\"fieldID\",\"LEGEND_POSITION\":\"legendPosition\",\"HEIGHT\":\"height\",\"RELATIVE_ID\":\"relativeID\",\"FILTER_DETAILS\":\"filterDetails\",\"RELATIONSHIP_ID\":\"relationshipID\",\"VIEW_NAME\":\"viewName\",\"FILTER_BY\":\"filterby\",\"GROUP_OFFSET\":\"groupOffset\",\"TARGET_ID\":\"targetID\",\"MULTIPLE_SUBMIT\":\"multipleSubmit\",\"START_FIELD_ID\":\"startFieldID\",\"ENABLED\":\"enabled\",\"VIEW_IDS\":\"viewIDs\",\"AFFECTED_DATA\":\"affectedData\"};\n\tConstants.RESPONSE_KEYS = {\"TEXT_ALIGN\":\"TEXT_ALIGN\",\"CONNECTION_TYPE\":\"CONNECTION_TYPE\",\"ONE_TIME_META\":\"ONE_TIME_META\",\"FILTERS\":\"FILTERS\",\"USER_ID\":\"USER_ID\",\"PREVIOUS_PLAN_TYPE\":\"PREVIOUS_PLAN_TYPE\",\"IS_BASE_ENABLED\":\"IS_BASE_ENABLED\",\"DATE_PARAMS\":\"DATE_PARAMS\",\"WEBHOOK_RAW_BODY\":\"RAW_BODY\",\"DISABLE_CODE\":\"DISABLE_CODE\",\"ATTACHMENT_STYLE\":\"ATTACHMENT_STYLE\",\"SECONDARY_VALUE\":\"SECONDARY_VALUE\",\"ATTACHMENT_NAME\":\"ATTACHMENT_NAME\",\"TOTAL_NO_OF_RECORDS\":\"TOTAL_NO_OF_RECORDS\",\"REDIRECTING_MODULE\":\"REDIRECTING_MODULE\",\"MESSAGE_AFTER_SUBMIT\":\"MESSAGE_AFTER_SUBMIT\",\"FAILURE_CONSTANT\":\"failureConstant\",\"EXPAND\":\"EXPAND\",\"CHANNEL_ID\":\"channelId\",\"SEARCH\":\"SEARCH\",\"SIZE\":\"SIZE\",\"COMPONENT_TYPE\":\"COMPONENT_TYPE\",\"GALLERY\":\"GALLERY\",\"STATUS_FAILURE\":\"failure\",\"SUMMARY_TYPE\":\"SUMMARY_TYPE\",\"GANTT\":\"GANTT\",\"BOT_ADD_SUCCESS\":\"BOT_ADD_SUCCESS\",\"NON_ZOHO_USER\":\"0\",\"CREATOR_EXPORT\":\"CREATOR_EXPORT\",\"WEBHOOK_BODY_MODE\":\"BODY_MODE\",\"COLOR_THEME\":\"COLOR_THEME\",\"IS_GALLERY_CARD_CUSTOMIZATION_ALLOWED\":\"IS_GALLERY_CARD_CUSTOMIZATION_ALLOWED\",\"DAYS\":\"DAYS\",\"GROUP_BY_LEVEL_LIMIT\":\"GROUP_BY_LEVEL_LIMIT\",\"BOT_STATUS\":\"BOT_STATUS\",\"Y_AXIS_LABEL\":\"Y_AXIS_LABEL\",\"PREVIOUS\":\"0\",\"RECORD_CREATION_SOURCE_PASTE\":\"RECORD_CREATION_SOURCE_PASTE\",\"ROLE\":\"ROLE\",\"MESSAGE\":\"MESSAGE\",\"ZOHO_USER\":\"1\",\"IS_VALID\":\"IS_VALID\",\"ICON\":\"ICON\",\"PERMITTED_PAGES\":\"PERMITTED_PAGES\",\"SUCCESS\":\"SUCCESS\",\"CLIENT_ACTION_ID\":\"CLIENT_ACTION_ID\",\"RUN_HISTORY_ORDER\":\"RUN_HISTORY_ORDER\",\"DEPENDENCY_LINK_TYPE\":\"DEPENDENCY_LINK_TYPE\",\"APPEND\":\"APPEND\",\"MEDIA_NAME\":\"mediaName\",\"SCALE_TYPE\":\"SCALE_TYPE\",\"WEBHOOK_HEADER_VALUE\":\"value\",\"TAB_USERS\":\"TAB_USERS\",\"AT_TIME\":\"AT_TIME\",\"FILTER_DATE_OPTION\":\"FILTER_DATE_OPTION\",\"PREVIEW\":\"PREVIEW\",\"TABLE_NAME\":\"TABLE_NAME\",\"TO_GROUP_PATH\":\"TO_GROUP_PATH\",\"KANBAN\":\"KANBAN\",\"PROPERTIES\":\"PROPERTIES\",\"IS_EPHI_FIELD_LIMIT_REACHED\":\"IS_EPHI_FIELD_LIMIT_REACHED\",\"ERROR_DETAILS\":\"ERROR_DETAILS\",\"BASE_USERS_ID\":\"baseUsersId\",\"EMAIL\":\"EMAIL\",\"REDIRECT_URL\":\"REDIRECT_URL\",\"CARDS\":\"CARDS\",\"BRANDS\":\"BRANDS\",\"PARSE_IMMEDIATE\":\"PARSE_IMMEDIATE\",\"WEBHOOK_METHOD\":\"METHOD\",\"EPHI_APPLIED\":\"EPHI_APPLIED\",\"COLOR\":\"COLOR\",\"REMAINING_DAYS_FOR_PLAN\":\"REMAINING_DAYS_FOR_PLAN\",\"AVAILABLE_PORTALS\":\"AVAILABLE_PORTALS\",\"LINKED_VIEWS\":\"LINKED_VIEWS\",\"IS_BASE_LIMIT_REACHED\":\"IS_BASE_LIMIT_REACHED\",\"END_DATE_FIELD\":\"END_DATE_FIELD\",\"CLIPBOARD_HTML\":\"CLIPBOARD_HTML\",\"REQUIRED\":\"REQUIRED\",\"FILTER_LABEL\":\"FILTER_LABEL\",\"IS_GROUP_BY_ENABLED\":\"IS_GROUP_BY_ENABLED\",\"CONDITION_ID\":\"CONDITION_ID\",\"SCHEMA_IDS\":\"SCHEMA_IDS\",\"RELATIONSHIP\":\"RELATIONSHIP\",\"CLIPBOARD_DATA\":\"CLIPBOARD_DATA\",\"IS_KANBAN_CARD_CUSTOMIZATION_ALLOWED\":\"IS_KANBAN_CARD_CUSTOMIZATION_ALLOWED\",\"LOAD\":\"LOAD\",\"STATE\":\"STATE\",\"IS_SNAP_LIMIT_REACHED\":\"IS_SORT_LIMIT_REACHED\",\"DELETED\":\"DELETED\",\"PARAM_ORDER\":\"PARAM_ORDER\",\"SHOW_UPGRADE\":\"showUpgrade\",\"FIELDS_TO_PLOT_ORDER\":\"FIELDS_TO_PLOT_ORDER\",\"PATTERN\":\"PATTERN\",\"SCHEMA\":\"SCHEMA\",\"ALIGN_TYPE\":\"ALIGN_TYPE\",\"EDITING_USER\":\"EDITING_USER\",\"CELLS\":\"CELLS\",\"FILTER\":\"FILTER\",\"FORM\":\"FORM\",\"LAST_PROCESSED_ACTIVITY_LOG\":\"lastProcessedActivityLog\",\"REPLACE_COUNT\":\"REPLACE_COUNT\",\"LINE_SPACING\":\"LINE_SPACING\",\"LEARN_GUIDE_STATE\":\"learnGuideState\",\"IS_LANGUAGE_BASED_SORTING_ENABLED\":\"IS_LANGUAGE_BASED_SORTING_ENABLED\",\"MAIL_ID\":\"MAIL_ID\",\"LOGICAL_CONDITION\":\"CONDITION\",\"RELATIONSHIPS\":\"RELATIONSHIPS\",\"ACTION\":\"ACTION\",\"RECORD_CREATION_SOURCE_FORM_SUBMIT\":\"RECORD_CREATION_SOURCE_FORM_SUBMIT\",\"BRAND_NAME\":\"BRAND_NAME\",\"GROUP_META\":\"GROUP_META\",\"COLLABORATORS\":\"COLLABORATORS\",\"MAX_ACTIVE_AUTOMATION_ALLOWED\":\"MAX_ACTIVE_AUTOMATION_ALLOWED\",\"PREVIOUS_PLAN_EXPIRED_DATE\":\"PREVIOUS_PLAN_EXPIRED_DATE\",\"PORTAL_NAME\":\"PORTAL_NAME\",\"SNAP_CARD_ORDER\":\"SNAP_ORDER\",\"WORKSPACE_ID\":\"WORKSPACE_ID\",\"PRICING_MAIL_IDS\":\"pricingMailIDs\",\"PREMIUM_AUTOMATION_ACTIONS\":\"PREMIUM_AUTOMATION_ACTIONS\",\"ALREADY_EXIST_IN_PORTAL\":\"alreadyExistInPortalMailIDs\",\"ID\":\"ID\",\"AID\":\"AID\",\"SNAP_ORDER\":\"SNAP_ORDER\",\"PRIMARY_VALUE\":\"PRIMARY_VALUE\",\"STATUSES\":\"STATUSES\",\"DESTINATION_TABLE\":\"DESTINATION_TABLE\",\"BASE_META\":\"BASE_META\",\"FIELDS\":\"FIELDS\",\"RECORDS_COUNT\":\"RECORDS_COUNT\",\"CLIQ_INFO\":\"CLIQ_INFO\",\"BOT_ADD_FAIL\":\"BOT_ADD_FAIL\",\"DAILY_META\":\"DAILY_META\",\"ROW_ORDER\":\"ROW_ORDER\",\"VIEW_ID\":\"VIEW_ID\",\"TAB_ID\":\"TAB_ID\",\"HAS_MORE\":\"HAS_MORE\",\"SUCCESS_STATE_FALSE\":\"false\",\"SOCIAL_INFO\":\"SOCIAL_INFO\",\"IS_HEADER_NEEDED\":\"IS_HEADER_NEEDED\",\"ACTION_ORDER\":\"ACTION_ORDER\",\"LINKED_TABLES\":\"LINKED_TABLES\",\"FILTER_SNAP\":\"FILTER_SNAP\",\"PRESENCE_STATUS\":\"PRESENCE_STATUS\",\"LEARN_GUIDE_PAGE\":\"learnGuidePage\",\"REMAINING_RECORD_COUNT\":\"REMAINING_RECORD_COUNT\",\"HIGHLIGHT_CRITICAL_PATH\":\"HIGHLIGHT_CRITICAL_PATH\",\"BLUEPRINT\":\"BLUEPRINT\",\"WIDTH\":\"WIDTH\",\"CHOICES\":\"CHOICES\",\"RECORD_CREATION_SOURCE_EMPTY_RECORD\":\"RECORD_CREATION_SOURCE_EMPTY_RECORD\",\"URL\":\"URL\",\"IS_EPHI_APPLIED\":\"IS_EPHI_APPLIED\",\"EXPIRY_DATE\":\"EXPIRY_DATE\",\"HEADERS\":\"HEADERS\",\"SCHEDULER_AUTOMATION_MAX\":\"SCHEDULER_AUTOMATION_MAX\",\"ACTIONS\":\"ACTIONS\",\"CAN_DISABLE_FORM_VIEW_BRANDING\":\"CAN_DISABLE_FORM_VIEW_BRANDING\",\"ACTIVE_USERS\":\"ACTIVE_USERS\",\"UPDATE\":\"UPDATE\",\"SUCCESS_STATE_TRUE\":\"true\",\"IS_TAB_IDEAL\":\"IS_TAB_IDEAL\",\"FILE\":\"FILE\",\"VIEWPORT\":\"VIEWPORT\",\"ACTION_INFO\":\"ACTION_INFO\",\"RECORD_IDS\":\"RECORD_IDS\",\"HIDE\":\"HIDE\",\"PORTAL_ID\":\"PORTAL_ID\",\"IS_SORT_LIMIT_REACHED\":\"IS_SORT_LIMIT_REACHED\",\"TABLES\":\"TABLES\",\"RECORDS\":\"RECORDS\",\"IS_RECORD_COLOR_APPLIED\":\"IS_RECORD_COLOR_APPLIED\",\"STREAM_ID\":\"STREAM_ID\",\"STATUS_CREATOR_IMPERMISSIBLE_WORKSPACES\":\"impermissibleWorkspaces\",\"WORKSPACE_ROLE\":\"WORKSPACE_ROLE\",\"RECORD_CREATION_SOURCE_DUPLICATE\":\"RECORD_CREATION_SOURCE_DUPLICATE\",\"IS_BASE_DELETED\":\"IS_BASE_DELETED\",\"SNAPS\":\"SNAPS\",\"RECORD_HEIGHT\":\"RECORD_HEIGHT\",\"ALL\":\"ALL\",\"TABLE_ORDER\":\"TABLE_ORDER\",\"WEBHOOK_INFO\":\"WEBHOOK_INFO\",\"MODE\":\"MODE\",\"COLUMN\":\"COLUMN\",\"LOGO\":\"LOGO\",\"STORAGE_UNIT\":\"STORAGE_UNIT\",\"EXTENSION\":\"EXTENSION\",\"VALUE\":\"VALUE\",\"WD_RESPONSE\":\"WD_RESPONSE\",\"IS_EPHI_STATE_UPDATED\":\"IS_EPHI_STATE_UPDATED\",\"RATING_STYLE\":\"RATING_STYLE\",\"GROUP_BY_FIELD_ID\":\"GROUP_BY_FIELD_ID\",\"CONFIG\":\"CONFIG\",\"STATUS\":\"STATUS\",\"IS_CALENDAR_RANGE_ALLOWED\":\"IS_CALENDAR_RANGE_ALLOWED\",\"SHOW_SECONDARY_LABEL\":\"SHOW_SECONDARY_LABEL\",\"ANONYMOUS_USERS\":\"ANONYMOUS_USERS\",\"IMAGE_URL\":\"IMAGE_URL\",\"WIZS\":\"WIZS\",\"REDO_COUNT\":\"REDO_COUNT\",\"PARAMETERS\":\"PARAMETERS\",\"EMAIL_META\":\"EMAIL_META\",\"VALID_MAIL_IDS\":\"validMailIDs\",\"VIEW_ORDER\":\"VIEW_ORDER\",\"GROUP_LEVEL\":\"GROUP_LEVEL\",\"MODULE\":\"MODULE\",\"EXTENDED_EXPIRY_DATE\":\"EXTENDED_EXPIRY_DATE\",\"PASSWORD\":\"PASSWORD\",\"SUMMARY_OF_A_FIELD\":\"SUMMARY_OF_A_FIELD\",\"SORT\":\"SORT\",\"FAULTY\":\"FAULTY\",\"RUN_HISTORY_LOG_BANNER\":\"RUN_HISTORY_LOG_BANNER\",\"DATE_TIME\":\"DATE_TIME\",\"ROW\":\"ROW\",\"PARAMS\":\"PARAMS\",\"ZUID\":\"zuid\",\"WEEK_DAY_PARAMS\":\"WEEK_DAY_PARAMS\",\"MULTILINE_WRAPPER\":\"MULTILINE_WRAPPER\",\"PARAM_KEY\":\"key\",\"ERROR_CODE\":\"ERROR_CODE\",\"BRAND_ID\":\"BRAND_ID\",\"PREMIUM_AUTOMATION_TRIGGERS\":\"PREMIUM_AUTOMATION_TRIGGERS\",\"ERROR_META\":\"META\",\"ENDS_AT\":\"ENDS_AT\",\"STARTS_AT\":\"STARTS_AT\",\"FONT_SIZE\":\"FONT_SIZE\",\"ANCHOR\":\"ANCHOR\",\"IS_AUTO_SAVED\":\"isAutoSaved\",\"FIELD_ID\":\"FIELD_ID\",\"IS_MILESTONE_ENABLED\":\"IS_MILESTONE_ENABLED\",\"SCHEDULER_AUTOMATION_USED\":\"SCHEDULER_AUTOMATION_USED\",\"LEGEND_POSITION\":\"LEGEND_POSITION\",\"TRIGGERED_TIME\":\"TRIGGERED_TIME\",\"XAID\":\"XAID\",\"RELATIVE_ID\":\"RELATIVE_ID\",\"VIEW_NAME\":\"VIEW_NAME\",\"GROUP_OFFSET\":\"GROUP_OFFSET\",\"WIZ_ORDER\":\"WIZ_ORDER\",\"COLLABORATOR_ID\":\"COLLABORATOR_ID\",\"SCHEDULER_USERS\":\"SCHEDULER_USERS\",\"ENABLED\":\"ENABLED\",\"CLEAR\":\"CLEAR\",\"REMAINING_USER_COUNT\":\"REMAINING_USER_COUNT\",\"IS_USER_ENABLED\":\"IS_ENABLED\",\"ROWS\":\"ROWS\",\"SECONDARY_LABEL\":\"SECONDARY_LABEL\",\"TRIGGER\":\"TRIGGER\",\"OPEN_EDIT_BASE_DIALOGUE\":\"OPEN_EDIT_BASE_DIALOGUE\",\"CHART_TYPE\":\"CHART_TYPE\",\"AFTER\":\"A\",\"TABLE_ID\":\"TABLE_ID\",\"PORTALS\":\"PORTALS\",\"CURRENT_USER_ROLE\":\"CURRENT_USER_ROLE\",\"MILESTONE_FIELD\":\"MILESTONE_FIELD\",\"PREVIEW_VERSION\":\"PREVIEW_VERSION\",\"PERMITTED_VIEWS\":\"PERMITTED_VIEWS\",\"MONTHS\":\"MONTHS\",\"POSITION\":\"POSITION\",\"OWNER\":\"OWNER\",\"NON_EDITABLE_USER\":\"NON_EDITABLE_USER\",\"TRAIL_EXTENDED\":\"TRAIL_EXTENDED\",\"IS_PORTALS_REDIRECTION\":\"IS_PORTALS_REDIRECTION\",\"DISPLAY_CONSTANT\":\"DISPLAY_CONSTANT\",\"CREATOR_DOMAIN_URL\":\"CREATOR_DOMAIN_URL\",\"ACTION_META\":\"ACTION_META\",\"ERROR\":\"ERROR\",\"RESPONSE\":\"RESPONSE\",\"CLIQ_URL\":\"CLIQ_URL\",\"SORT_TYPE\":\"SORT_TYPE\",\"META\":\"META\",\"ARHID\":\"ARHID\",\"LOGICAL_STRING\":\"LOGICAL\",\"ACTION_ID\":\"ACTION_ID\",\"WEEKS\":\"WEEKS\",\"SOURCE\":\"SOURCE\",\"TO_ADDRESS\":\"TO_ADDRESS\",\"PUBLISH_URL\":\"PUBLISH_URL\",\"REMOVED_USERS\":\"REMOVED_USERS\",\"ATTACHMENT_ORDER\":\"ATTACHMENT_ORDER\",\"KEY\":\"KEY\",\"INTERNAL_SERVER_ERROR\":\"Internal server error\",\"STATUS_CREATOR_NO_WORKSPACE\":\"noWorkspace\",\"STATUS_CREATOR_NO_ACCOUNT_USER\":\"noAccountUser\",\"SHOW_EMPTY_GROUPS\":\"SHOW_EMPTY_GROUPS\",\"RELOAD\":\"RELOAD\",\"CHANNELS_AND_USERS\":\"CHANNELS_AND_USERS\",\"AUTOMATION_RUN_HISTORY\":\"AUTOMATION_RUN_HISTORY\",\"EXCEPTION\":\"Exception\",\"SCHEMA_ORDER\":\"SCHEMA_ORDER\",\"PATH_TYPE\":\"PATH_TYPE\",\"RECORD_DATA\":\"RECORD_DATA\",\"AUTOMATIONS\":\"AUTOMATIONS\",\"BUTTONS\":\"BUTTONS\",\"GROUP\":\"GROUP\",\"DELETE\":\"DELETE\",\"CHECKBOX_STYLE\":\"CHECKBOX_STYLE\",\"DESCRIPTION\":\"DESCRIPTION\",\"VERSION_NUMBER\":\"versionNumber\",\"ACTIVITY_LOG_BANNER\":\"ACTIVITY_LOG_BANNER\",\"IS_EPHI_EDIT_ROLE_UPDATED\":\"IS_EPHI_EDIT_ROLE_UPDATED\",\"OFFSET\":\"OFFSET\",\"CREATOR_EXPORT_URL\":\"CREATOR_EXPORT_URL\",\"ATTACHMENT_ID\":\"ATTACHMENT_ID\",\"FIELDS_TO_PLOT\":\"FIELDS_TO_PLOT\",\"CHANNEL_STATUS_KEYS\":\"CHANNEL_STATUS_KEYS\",\"CAN_SELECT\":\"CAN_SELECT\",\"VERSION_ORDER\":\"VERSION_ORDER\",\"OBJECT_FIT\":\"OBJECT_FIT\",\"FIELD_IDS_TO_PLOT\":\"FIELD_IDS_TO_PLOT\",\"USER_NAME\":\"USER_NAME\",\"RECORD_COMMENT\":\"RECORD_COMMENT\",\"FIELD_TYPE\":\"FIELD_TYPE\",\"PLAN_EXPIRY_DATE\":\"PLAN_EXPIRY_DATE\",\"AUTOMATION_ORDER\":\"AUTOMATION_ORDER\",\"SUBJECT\":\"SUBJECT\",\"COMPONENT\":\"COMPONENT\",\"DRAW_WITH\":\"DRAW_WITH\",\"TO\":\"TO\",\"HOURLY_META\":\"HOURLY_META\",\"DURATION\":\"DURATION\",\"EDITABLE_USER\":\"EDITABLE_USER\",\"START_DATE_FIELD\":\"START_DATE_FIELD\",\"GROUP_BY_TYPE\":\"GROUP_BY_TYPE\",\"HEADER_ORDER\":\"HEADER_ORDER\",\"OWNER_LEVEL\":\"OWNER_LEVEL\",\"VIEW_TYPE\":\"VIEW_TYPE\",\"ZONE_PORTAL_MAIL_IDS\":\"zonePortalMailIDs\",\"VIEW\":\"VIEW\",\"SCHEDULED_TIMEFRAME\":\"SCHEDULED_TIMEFRAME\",\"VIEWS\":\"VIEWS\",\"FORM_NAME\":\"FORM_NAME\",\"PARAM_VALUE\":\"PARAM_VALUE\",\"RECORD_ID\":\"RECORD_ID\",\"IS_VERSION_RESTORED\":\"IS_VERSION_RESTORED\",\"RECORD_CREATION_SOURCE_LINK\":\"RECORD_CREATION_SOURCE_LINK\",\"SHOW_SECONDARY_VALUE\":\"SHOW_SECONDARY_VALUE\",\"FIELD_SUMMARY\":\"FIELD_SUMMARY\",\"REPLACE\":\"REPLACE\",\"IS_DEFAULT\":\"IS_DEFAULT\",\"CHART_DATA\":\"CHART_DATA\",\"SHOW_DIFFERENCE\":\"SHOW_DIFFERENCE\",\"X_AXIS_LABEL\":\"X_AXIS_LABEL\",\"CREATED_TIME\":\"CREATED_TIME\",\"PROPERTY\":\"PROPERTY\",\"FILTER_TYPE\":\"FILTER_TYPE\",\"NAME\":\"NAME\",\"IS_EDITABLE_USER\":\"IS_EDITABLE_USER\",\"INTERSECTION\":\"INTERSECTION\",\"ALIGNMENT\":\"ALIGNMENT\",\"TOTAL_COUNT\":\"totalCount\",\"FIND_AND_INCLUDE_RECORDS\":\"FIND_AND_INCLUDE_RECORDS\",\"SELECTION\":\"SELECTION\",\"ACTIVITY_LOG\":\"activity_log\",\"SORTS\":\"SORTS\",\"SNAP_ID\":\"SNAP_ID\",\"PRICING_VIEW_CONFIGURATION\":\"PRICING_VIEW_CONFIGURATION\",\"DISPLAY_FIELD\":\"DISPLAY_FIELD\",\"FILTER_ID\":\"FILTER_ID\",\"VERSIONS\":\"VERSIONS\",\"STACK\":\"STACK\",\"MODIFIED_TIME\":\"MODIFIED_TIME\",\"DIFFERENCE\":\"DIFFERENCE\",\"NEXT\":\"1\",\"META_ACTION\":\"META_ACTION\",\"SOURCE_TABLE\":\"SOURCE_TABLE\",\"CC_ADDRESS\":\"CC_ADDRESS\",\"GROUP_BY\":\"GROUP_BY\",\"COPY_KEY\":\"copy_key\",\"FALLBACK\":\"FALLBACK\",\"TIME\":\"TIME\",\"ATTACHMENT_EXTENSION\":\"ATTACHMENT_EXTENSION\",\"SORT_SNAP\":\"SORT_SNAP\",\"MOVED\":\"MOVED\",\"HOURS\":\"HOURS\",\"RECORD_TYPE\":\"RECORD_TYPE\",\"SUBMIT_BUTTON\":\"SUBMIT_BUTTON\",\"ZUID_STATUS_KEYS\":\"ZUID_STATUS_KEYS\",\"CREATOR_WORKSPACES\":\"CREATOR_WORKSPACES\",\"ALREADY_EXIST_MAIL_IDS\":\"alreadyExistInModuleMailIDs\",\"TITLE\":\"TITLE\",\"BASE_URL\":\"baseURL\",\"HAS_ACCESS\":\"HAS_ACCESS\",\"USED_STORAGE\":\"USED_STORAGE\",\"FIELD_ORDER\":\"FIELD_ORDER\",\"MAIL_STATUS_KEYS\":\"MAIL_STATUS_KEYS\",\"RECORD_ORDER\":\"RECORD_ORDER\",\"WEBHOOK_RESPONSE_BODY\":\"WEBHOOK_RESPONSE_BODY\",\"SENTIMENT\":\"SENTIMENT\",\"ACCESS_REVOKED\":\"ACCESS_REVOKED\",\"SHARE\":\"SHARE\",\"QAID\":\"QAID\",\"CARD\":\"CARD\",\"SHARE_URL\":\"SHARE_URL\",\"TABLE\":\"TABLE\",\"CURRENT_COUNT\":\"CURRENT_COUNT\",\"RECORDIDS_ORDER\":\"RECORDIDS_ORDER\",\"TARGET_IDS\":\"TARGET_IDS\",\"ACTIVE_TABLE\":\"ACTIVE_TABLE\",\"LOCATION_CONSTANT\":\"LOCATION_CONSTANT\",\"HAS_ORG\":\"HAS_ORG\",\"IS_PLAN_UPDATED\":\"IS_PLAN_UPDATED\",\"TYPE\":\"TYPE\",\"CYCLE\":\"CYCLE\",\"RECORD_CREATION_SOURCE_API\":\"RECORD_CREATION_SOURCE_API\",\"WEBHOOK_HEADER_KEY\":\"key\",\"REORDER\":\"REORDER\",\"PREV_EXPIRY_DATE\":\"PREV_EXPIRY_DATE\",\"FORMULA\":\"FORMULA\",\"LINK_FIELDS\":\"LINK_FIELDS\",\"PREMIUM_FEATURES\":\"PREMIUM_FEATURES\",\"LAST_LOADED_ARHID\":\"LAST_LOADED_ARHID\",\"USER_TYPE\":\"USER_TYPE\",\"STATUS_SUCCESS\":\"success\",\"COUNT\":\"COUNT\",\"CALENDAR\":\"CALENDAR\",\"UN_CATEGORIZED_ID\":\"UN_CATEGORIZED_ID\",\"MAIL_INFO\":\"MAIL_INFO\",\"DEFAULT_VALUE\":\"DEFAULT_VALUE\",\"PRIMARY_FIELD_ID\":\"PRIMARY_FIELD_ID\",\"RATIO\":\"RATIO\",\"PREMIUM_VIEWS\":\"PREMIUM_VIEWS\",\"ORDER\":\"ORDER\",\"IMPORT\":\"IMPORT\",\"ACTIVE_VIEW\":\"ACTIVE_VIEW\",\"RESIZE\":\"RESIZE\",\"COLLAPSE\":\"COLLAPSE\",\"RECORDS_COLOR\":\"RECORDS_COLOR\",\"WEBHOOK_RESPONSE_STATUS_CODE\":\"WEBHOOK_RESPONSE_STATUS_CODE\",\"VALUES\":\"VALUES\",\"REPLACE_ALL\":\"REPLACE_ALL\",\"SORT_OPTION\":\"SORT_OPTION\",\"FIELD_PROPERTIES\":\"FIELD_PROPERTIES\",\"ANCHORS\":\"ANCHORS\",\"FORM_DESCRIPTION\":\"FORM_DESCRIPTION\",\"GRID\":\"GRID\",\"COVER_ID\":\"COVER_ID\",\"XID\":\"XID\",\"FILTER_DATE_VALUE\":\"FILTER_DATE_VALUE\",\"BANNER\":\"BASE_BANNER\",\"INACTIVE_USERS\":\"INACTIVE_USERS\",\"SHOW_LOAD_MORE\":\"showLoadMore\",\"IS_RECORD_LIMIT_REACHED\":\"IS_RECORD_LIMIT_REACHED\",\"SUCCESSOR\":\"SUCCESSOR\",\"PREDECESSOR\":\"PREDECESSOR\",\"DAY\":\"DAY\",\"WEEKLY_META\":\"WEEKLY_META\",\"IS_ENABLED\":\"IS_ENABLED\",\"SOCIAL_IMAGE_URL\":\"imageURL\",\"END_DATE\":\"END_DATE\",\"HTML\":\"HTML\",\"ITEMS\":\"ITEMS\",\"NAME_PARAMETERS\":\"NAME_PARAMETERS\",\"FIELD_TYPE_PARAM\":\"FIELD_TYPE_PARAM\",\"OFFSET_COUNT\":\"OFFSET_COUNT\",\"NO_OF_AUTOMATION_USED\":\"NO_OF_AUTOMATION_USED\",\"IS_NEEDED\":\"IS_NEEDED\",\"IS_DEPENDENCY_ENABLED\":\"IS_DEPENDENCY_ENABLED\",\"IS_PRODUCT_GUIDE_NEEDED\":\"IS_PRODUCT_GUIDE_NEEDED\",\"SUMMARY\":\"SUMMARY\",\"IS_PUBLISHED\":\"IS_PUBLISHED\",\"MEDIA\":\"MEDIA\",\"TEMPLATE\":\"TEMPLATE\",\"FILTER_STATUS_OPTION\":\"FILTER_STATUS_OPTION\",\"TOTAL_STORAGE\":\"TOTAL_STORAGE\",\"IS_GRID_CARD_LIMIT_REACHED\":\"IS_GRID_CARD_LIMIT_REACHED\",\"PREMIUM_FIELDS\":\"PREMIUM_FIELDS\",\"IS_USER_REMOVED\":\"IS_USER_REMOVED\",\"CREATED_BY\":\"CREATED_BY\",\"WAKE_UP_CALL\":\"WAKEUPCALL\",\"LABEL_ALIGNMENT\":\"LABEL_ALIGNMENT\",\"COVER_IMAGE\":\"COVER_IMAGE\",\"REMAINING_DAYS\":\"REMAINING_DAYS\",\"SCHEDULER_STATUS\":\"SCHEDULER_STATUS\",\"DATE\":\"DATE\",\"TITLE_ID\":\"TITLE_ID\",\"VISIBILITY\":\"VISIBILITY\",\"TRIGGER_FIELD_ID\":\"triggerFieldID\",\"DATA\":\"DATA\",\"FIELD_VALUES\":\"FIELD_VALUES\",\"TREE\":\"TREE\",\"IS_CARD_LIMIT_REACHED\":\"IS_CARD_LIMIT_REACHED\",\"INSERT\":\"INSERT\",\"SCHEDULED_FREQUENCY_TYPE\":\"SCHEDULED_FREQUENCY_TYPE\",\"PREPAND\":\"PREPAND\",\"BCC_ADDRESS\":\"BCC_ADDRESS\",\"PLAN_TYPE\":\"PLAN_TYPE\",\"TYPE_CONST\":\"TYPE_CONST\",\"ACTIVE_TYPE\":\"ACTIVE_TYPE\",\"IS_TAB_REREGISTER\":\"IS_TAB_REREGISTER\",\"SCHEMAS\":\"SCHEMAS\",\"TRIGGER_TYPE\":\"TRIGGER_TYPE\",\"ACTIVE_WIZ_ID\":\"ACTIVE_WIZ_ID\",\"TIME_ZONE\":\"TIME_ZONE\",\"MONTHLY_META\":\"MONTHLY_META\",\"CONDITIONS\":\"CONDITIONS\",\"ATTACHMENTS\":\"ATTACHMENTS\",\"USER_PRESENCE\":\"USER_PRESENCE\",\"BRANDING\":\"BRANDING\",\"FIELD_NAME\":\"FIELD_NAME\",\"CONTENT\":\"CONTENT\",\"WEEK\":\"WEEK\",\"UNDO_COUNT\":\"UNDO_COUNT\",\"ACTION_TYPE\":\"ACTION_TYPE\",\"MAX_COUNT\":\"MAX_COUNT\",\"SHOULD_SHOW_SILENT_RELOAD_DIALOGUE\":\"SHOULD_SHOW_SILENT_RELOAD_DIALOGUE\",\"DIRECTION\":\"DIRECTION\",\"SAVED_TIME\":\"savedTime\",\"IS_EPHI_CONFIGURATION_UPDATED\":\"IS_EPHI_CONFIGURATION_UPDATED\",\"USER\":\"USER\",\"HEIGHT\":\"HEIGHT\",\"EXTENSION_INSTALLED\":\"EXTENSION_INSTALLED\",\"IS_DATA_SYNC_REQUIRED\":\"IS_DATA_SYNC_REQUIRED\",\"BEFORE\":\"B\",\"MODULE_TYPE\":\"MODULE_TYPE\",\"IS_GRACE_PERIOD\":\"IS_GRACE_PERIOD\",\"MULTIPLE_SUBMIT\":\"MULTIPLE_SUBMIT\",\"REMAINING_PORTAL_STORAGE\":\"REMAINING_PORTAL_STORAGE\",\"RESULT\":\"RESULT\",\"DEPENDENCY_FIELD\":\"DEPENDENCY_FIELD\"};\n\tConstants.ROLE = {\"WORKSPACE_VIEWER\":3,\"WORKSPACE_EDITOR\":2,\"WORKSPACE_USER\":5,\"BASE_ORGANIZER\":3,\"BASE_DR_MODE\":6,\"PORTAL_USER\":3,\"BASE_EDITOR\":2,\"PORTAL_SUPER_ADMIN\":1,\"BASE_VIEWER\":1,\"WORKSPACE_ORGANIZER\":1,\"PORTAL_ADMIN\":2,\"BASE_MANAGER\":4,\"WORKSPACE_MANAGER\":6};\n\tConstants.BASE_ICONS = {\"CameraIcon\":14,\"AnalysisIcon\":1,\"BookoneIcon\":7,\"CheckListIcon\":16,\"TargetIcon\":52,\"ArchiveIcon\":3,\"TagsIcon\":51,\"BaseUserIcon\":56,\"MoonIcon\":38,\"ChatIcon\":15,\"FloppyIcon\":49,\"InfoIcon\":32,\"PagesIcon\":41,\"ShoppingIcon\":47,\"FlimIcon\":26,\"PlayerIcon\":43,\"HospitalIcon\":30,\"TabletIcon\":50,\"CloudIcon\":18,\"OrganisationIcon\":40,\"MedicalKitIcon\":36,\"MusicIcon\":39,\"ConvertionIcon\":22,\"BaseUsersIcon\":57,\"CalendarIcon\":13,\"ClockIcon\":17,\"RssIcon\":44,\"MarkerIcon\":35,\"BugIcon\":9,\"CodeIcon\":19,\"CalculatorIcon\":12,\"ImageIcon\":31,\"HomeIcon\":29,\"MicIcon\":37,\"DevelopmentIcon\":24,\"AnchourIcon\":2,\"BriefCaseIcon\":0,\"FavoriteIcon\":25,\"AmbulanceIcon\":8,\"ScissorIcon\":45,\"TransportIcon\":54,\"FolderIcon\":27,\"TeaIcon\":53,\"BuildingIcon\":10,\"EmailIcon\":34,\"BulbIcon\":11,\"DashboardIcon\":23,\"CoffeeIcon\":20,\"BeakerIcon\":4,\"CogsIcon\":21,\"LoudSpeakerIcon\":33,\"SpeakerIcon\":48,\"PhoneIcon\":42,\"BookIcon\":6,\"GlassCupIcon\":28,\"WindowIcon\":58,\"ScreenShotIcon\":46,\"BellIcon\":5,\"TriggerIcon\":55};\n\tConstants.IMPORT_SCOPES = {\"IMPORT_BASE\":1,\"IMPORT_FIELD\":3,\"IMPORT_TABLE\":2,\"IMPORT_RECORD\":4};\n\tConstants.GALLERY_VIEW_PROPERTY_TYPE = {\"SECONDARY_TYPE\":\"3\",\"TITLE_TYPE\":\"1\",\"COVER_TYPE\":\"2\"};\n\tConstants.ATTACHMENT_STYLE = {\"ATTACHMENT_STYLE_6\":6,\"ATTACHMENT_STYLE_3\":3,\"ATTACHMENT_STYLE_2\":2,\"ATTACHMENT_STYLE_5\":5,\"ATTACHMENT_STYLE_4\":4,\"ATTACHMENT_STYLE_1\":1};\n\tConstants.CHECK_BOX_STYLE = {\"CHECKBOX_STYLE_2\":2,\"CHECKBOX_STYLE_3\":3,\"CHECKBOX_STYLE_1\":1};\n\tConstants.ATTACHMENT_ALIGN = {\"CENTER_ALIGN\":2,\"COVER_ALIGN\":3,\"FIT_ALIGN\":1};\n\tConstants.RATING_STYLE = {\"RATING_STYLE_1\":1,\"RATING_STYLE_3\":3,\"RATING_STYLE_2\":2};\n\tConstants.TEXT_ALIGN = {\"CENTER_ALIGN\":2,\"RIGHT_ALIGN\":3,\"LEFT_ALIGN\":1};\n\tConstants.FORM_USERTYPE = {\"ALL\":1,\"CORP\":2};\n\tConstants.AutomationDataConstants = {\"FIND_AND_INCLUDE_RECORDS_CLIENT_ID\":\"findAndIncludeRecordsClientID\",\"TRIGGER_FIELD_ID\":\"triggerFieldID\",\"CHANNEL_ID\":\"channelId\",\"VALUE\":\"value\",\"FIND_AND_INCLUDE_RECORDS_ID\":\"findAndIncludeRecordsID\",\"SUMMARY_OF_A_FIELD_ID\":\"summaryOfAFieldID\",\"BASE_USERS_ID\":\"baseUsersId\",\"ZUID\":\"zuid\",\"SUMMARY_OF_A_FIELD_CLIENT_ID\":\"summaryOfAFieldClientID\"};\n\tConstants.ONBOARDING_INDUSTRIES = {\"REAL_ESTATE\":6,\"OTHERS\":8,\"IT_SOFTWARE\":1,\"CONSTRUCTION\":2,\"INSURANCE\":5,\"AUTOMOBILE\":4,\"MANUFACTURING\":7,\"EDUCATION\":3};\n    Constants.DRE_ACTIONS = {\"FETCH_TABLES\":10,\"CREATE_SERVICE_SPACE\":0,\"DELETE_CONNECTION\":8,\"CLOSE_TRANSACTION\":9,\"FETCH_SERVICE\":1,\"FIRST_LOAD\":3,\"FETCH_RECORDS\":6,\"FETCH_BASES\":4,\"FETCH_FIELDS\":5,\"IMPORT_DATA\":7,\"CREATE_CONNECTION\":2};\n    Constants.UserPreferencePageRequestConstants = {\"AUTOMATION_NOTIFICATION\":\"automationNotification\",\"IS_USER_UNSUBSCRIBED\":\"isUserUnsubscribed\",\"COLLABORATION_NOTIFICATION\":\"collaborationNotification\",\"UNSUBSCRIBE_USER_KEY\":\"userKey\"};\n    Constants.UserPreferencePageResponseConstants = {\"MAIL_NOTIFICATION\":\"mailNotification\",\"AUTOMATION_NOTIFICATION\":\"automationNotification\",\"COLLABORATION_NOTIFICATION\":\"collaborationNotification\"};\n    Constants.ImportSourceConstants = {\"SHEET_EXPORT\":4,\"AI_BASE_USING_ZIA\":12,\"CLOUD_WORK_DRIVE_FILE_IMPORT\":7,\"SPREADSHEET\":2,\"SMARTSHEET\":13,\"CLOUD_DROPBOX_FILE_IMPORT\":10,\"URL_FILE_IMPORT\":6,\"LOCAL_FILE_IMPORT\":5,\"CLOUD_BOX_FILE_IMPORT\":11,\"AIRTABLE\":3,\"CLOUD_GOOGLE_DRIVE_FILE_IMPORT\":8,\"CRM\":1,\"CLOUD_ONEDRIVE_FILE_IMPORT\":9};\n    Constants.OnBoardingTypeConstants = {\"SHEET_EXPORT\":2,\"DEFAULT\":0,\"CLONE_TEMPLATE\":1};\n    Constants.BaseCreateValidationFailureConstants = {\"PORTAL_NOT_EXIST\":4,\"USER_NOT_EXIST_IN_WORKSPACE\":7,\"USER_DISABLED\":3,\"USER_ROLE_INVALID\":8,\"BASE_LIMIT_REACHED\":1,\"INTERNAL_ERROR\":9,\"WORKSPACE_DISABLED\":2,\"USER_NOT_EXIST_IN_PORTAL\":5,\"WORKSPACE_NOT_EXIST\":6};\n    Constants.WCErrorConstants = {\"89\":\"ErrorHandling.UserNotExistInBase\",\"230\":\"ErrorHandling.Automation.AddBotErrorMessage\",\"231\":\"ErrorHandling.Automation.ExtensionInstallErrorMessage\",\"90\":\"ErrorHandling.youDontHavePermissionForPortal\",\"91\":\"ErrorHandling.youDontHavePermissionForWorkspace\",\"92\":\"ErrorHandling.youDontHavePermissionForBase\",\"93\":\"ErrorHandling.CannotPerformAction\",\"94\":\"ErrorHandling.InvalidUserRole\",\"95\":\"ErrorHandling.UserAlreadyExistInPortal\",\"96\":\"ErrorHandling.UserAlreadyExistInWorkspace\",\"97\":\"ErrorHandling.userAlreadyExist\",\"98\":\"ErrorHandling.userAlreadyExist\",\"99\":\"ErrorHandling.PortalShare.Failed\",\"120\":\"ErrorHandling.Portal_Delete_Failure\",\"121\":\"ErrorHandling.Workspace_Delete_Failure\",\"1\":\"ErrorHandling.RequestLimitReached\",\"2\":\"ErrorHandling.BadRequest\",\"3\":\"ErrorHandling.PasteContentLimitExceed\",\"404\":\"ErrorHandling.Automation.WebhookURLUpdateErrorMessage\",\"405\":\"ErrorHandling.Automation.CliqBotSubscribeErrorMessage\",\"406\":\"ErrorHandling.Automation.CliqBotInsatllErrorMessage\",\"250\":\"ErrorHandling.pasteLimitExceeded\",\"251\":\"ErrorHandling.invalidFieldId\",\"252\":\"ErrorHandling.invalidTableId\",\"253\":\"ErrorHandling.sameIdUpdate\",\"254\":\"ErrorHandling.primaryFieldDeleteForbidden\",\"255\":\"ErrorHandling.primaryFieldVisibilityRestricted\",\"256\":\"ErrorHandling.primaryFieldOrderCannotBeChanged\",\"257\":\"ErrorHandling.sortFieldAlreadyUsedInGroupBy\",\"258\":\"ErrorHandling.groupByFieldAlreadyUsedInSort\",\"259\":\"ErrorHandling.View.Gantt.CircularDependency\",\"260\":\"ErrorHandling.Field.Rename\",\"261\":\"ErrorHandling.Table.Rename\",\"262\":\"ErrorHandling.View.Rename\",\"263\":\"ErrorHandling.Base.Rename\",\"265\":\"ErrorHandling.EphiFieldPresentInCut\",\"266\":\"ErrorHandling.EphiFieldPresentInAutomation\",\"267\":\"ErrorHandling.MaxEphiFieldLimitReached\",\"268\":\"ErrorHandling.EphiFieldPresentInCopy\",\"269\":\"ErrorHandling.EphiFieldPresentInReports\",\"49\":\"ErrorHandling.Unauthorized\",\"270\":\"ErrorHandling.EphiRestrictedByPlan\",\"150\":\"ErrorHandling.Creator_need_Permission\",\"271\":\"ErrorHandling.EphiBaseDuplicationRestricted\",\"151\":\"ErrorHandling.noWorkspace_In_Zoho_Creator\",\"272\":\"ErrorHandling.EphiTableDuplicationRestricted\",\"152\":\"ErrorHandling.NoAccount_In_Zoho_Creator\",\"273\":\"ErrorHandling.EphiFieldDuplicationRestricted\",\"153\":\"ErrorHandling.ExportToZohoCreator_Something_went_Wrong\",\"274\":\"ErrorHandling.EphiRecordDuplicationRestricted\",\"275\":\"ErrorHandling.EphiReferenceFieldsRestrictedLink\",\"276\":\"ErrorHandling.EphiReferenceFieldsRestrictedLookup\",\"277\":\"ErrorHandling.EphiReferenceFieldsRestrictedRollup\",\"278\":\"ErrorHandling.EphiReferenceFieldsRestrictedFormula\",\"279\":\"ErrorHandling.EphiReferenceFieldsRestrictedKeyWordExtraction\",\"50\":\"ErrorHandling.unExpectedError\",\"51\":\"ErrorHandling.base_limit_reached\",\"52\":\"ErrorHandling.portalDisabled\",\"53\":\"ErrorHandling.userCurrentlyDisabled\",\"54\":\"ErrorHandling.WorkspaceDisabled\",\"55\":\"ErrorHandling.BaseDisabled\",\"57\":\"ErrorHandling.CollaboratorLimitReached\",\"58\":\"ErrorHandling.Portal.CreationRestricted\",\"160\":\"ErrorHandling.requestMaxReached\",\"161\":\"ErrorHandling.sheetFileLimit\",\"162\":\"ErrorHandling.SheetcreateBaseIssue\",\"163\":\"ErrorHandling.sheet_base_limit_reached\",\"164\":\"ErrorHandling.sheet_portal_unavailable\",\"165\":\"ErrorHandling.sheet_workspace_disabled\",\"166\":\"ErrorHandling.sheet_user_disabled\",\"167\":\"ErrorHandling.sheet_not_a_member_portal\",\"200\":\"ErrorHandling.Reports.Builder.Undo.ErrorState\",\"168\":\"ErrorHandling.sheet_workspaceNotFound\",\"201\":\"ErrorHandling.Reports.Builder.Redo.ErrorState\",\"169\":\"ErrorHandling.sheet_no_access_to_workspace\",\"170\":\"ErrorHandling.sheet_role_access_changed\",\"171\":\"ErrorHandling.sheet_somethingWentWrong\",\"175\":\"ErrorHandling.WmsCollaborativeFailure\",\"176\":\"ErrorHandling.CopyServerPartialSuccess\",\"210\":\"ErrorHandling.Automation.ErrorContent.somethingWentWrongCantResumeAutomationDueToRunCount\",\"211\":\"ErrorHandling.Automation.somethingWentWrongCantChangeOnTime\",\"212\":\"ErrorHandling.Automation.somethingWentWrongCantChangeStartDate\",\"213\":\"ErrorHandling.Automation.somethingWentWrongCantChangeEndDate\",\"214\":\"ErrorHandling.Automation.somethingWentWrongCantChangeAtTime\",\"215\":\"ErrorHandling.Automation.somethingWentWrongCantChangeHours\",\"216\":\"ErrorHandling.Automation.somethingWentWrongCantChangeDays\",\"217\":\"ErrorHandling.Automation.somethingWentWrongCantChangeWeeks\",\"218\":\"ErrorHandling.Automation.somethingWentWrongCantChangeMonths\",\"219\":\"ErrorHandling.Automation.requestFailedToUpdateMonthMetaType\",\"220\":\"ErrorHandling.Automation.requestFailedToUpdateWeekDays\",\"100\":\"ErrorHandling.WorkspaceShare.Failed\",\"221\":\"ErrorHandling.Automation.requestFailedToUpdateMonthDates\",\"101\":\"ErrorHandling.BaseShare.Failed\",\"222\":\"ErrorHandling.Automation.requestFailedToUpdateMonthWeek\",\"102\":\"ErrorHandling.ViewShare.Failed\",\"223\":\"ErrorHandling.Automation.requestFailedToUpdateMonthWeekDay\",\"103\":\"ErrorHandling.UserNotExistInView\",\"224\":\"ErrorHandling.Automation.requestFailedToUpdateTimeframeState\",\"225\":\"ErrorHandling.Automation.requestFailedToUpdateTimeframeStartDate\",\"226\":\"ErrorHandling.Automation.requestFailedToUpdateTimeframeEndDate\",\"227\":\"ErrorHandling.Automation.requestFailedToUpdateTimeframeStateRunCount\",\"80\":\"ErrorHandling.NoPermissionToAddPortalUser\",\"228\":\"ErrorHandling.Automation.requestFailedToUpdateTimeframeStateEndType\",\"81\":\"ErrorHandling.NoPermissionToAddWorkspaceUser\",\"229\":\"ErrorHandling.Automation.somethingWentWrongCantResumeAutomation\",\"82\":\"ErrorHandling.noPermissionToAddBase\",\"83\":\"ErrorHandling.noPermissionToAddView\",\"84\":\"ErrorHandling.noPermissionToSwitchRole\",\"85\":\"ErrorHandling.noPermissionToDelete\",\"86\":\"ErrorHandling.UserNotExistInPortal\",\"87\":\"ErrorHandling.UserNotExistInWorkspace\"};\n    Constants.DREModuleTypeConstants = {\"WORKSPACES\":\"workspaces\",\"BASES\":\"bases\",\"TABLES\":\"tables\"};\n    Constants.DREFilterComparatorConstants = {\"FILTER_COMPARATOR_GREATER_THAN\":11,\"FILTER_COMPARATOR_ENDS_WITH\":6,\"FILTER_COMPARATOR_LESSER_THAN\":12,\"FILTER_COMPARATOR_BETWEEN\":9,\"FILTER_COMPARATOR_EQUALS\":1,\"FILTER_COMPARATOR_DOES_NOT_CONTAINS\":4,\"FILTER_COMPARATOR_CONTAINS\":3,\"FILTER_COMPARATOR_STARTS_WITH\":5,\"FILTER_COMPARATOR_NOT_EQUALS\":2,\"FILTER_COMPARATOR_NOT_BETWEEN\":10,\"FILTER_COMPARATOR_IS_NONE_OF\":16,\"FILTER_COMPARATOR_HAS_ANY_OF\":17,\"FILTER_COMPARATOR_GREATER_THAN_EQUALS\":13,\"FILTER_COMPARATOR_IS_NOT_EMPTY\":8,\"FILTER_COMPARATOR_IS_EMPTY\":7,\"FILTER_COMPARATOR_LESSER_THAN_EQUALS\":14,\"FILTER_COMPARATOR_IS_ANY_OF\":15,\"FILTER_COMPARATOR_HAS_NONE_OF\":18};\n    Constants.LearnGuideStateConstant = {\"NOT_YET_STARTED\":-1,\"CLOSED\":0,\"OPEN\":1};\n    Constants.LearnGuidePageConstant = {\"COLLABORATE\":4,\"ORGANISE\":2,\"HOME\":1,\"TRACK\":3};\n    Constants.CliqBotStatusConstants = {\"ADD\":1,\"ADDED\":3,\"REQUEST\":2};\n    Constants.WCProxyPathConstants = {\"alterScheduledAtTriggerAutomation\":\"alterScheduledAtTriggerAutomation\",\"alterFormNameSize\":\"alterFormNameSize\",\"insertPrevSelectionOption\":\"insertPrevSelectionOption\",\"snapEdit\":\"snapEdit\",\"insertSnapCard\":\"insertSnapCard\",\"alterFormLogoSize\":\"alterFormLogoSize\",\"alterWebhookHeaderKeyAutomationAction\":\"alterWebhookHeaderKeyAutomationAction\",\"alterScheduledMonthsTriggerAutomation\":\"alterScheduledMonthsTriggerAutomation\",\"alterEmptyRecordAutomationTrigger\":\"alterEmptyRecordAutomationTrigger\",\"includeViewFiltersFindAndIncludeRecordsAutomationAction\":\"includeViewFiltersFindAndIncludeRecordsAutomationAction\",\"deleteUnitFilterFindAndIncludeRecordsAutomationAction\":\"deleteUnitFilterFindAndIncludeRecordsAutomationAction\",\"reorderGridField\":\"reorderGridField\",\"deleteUnitSort\":\"deleteUnitSort\",\"alterStartDateTimeTriggerAutomation\":\"alterStartDateTimeTriggerAutomation\",\"insertUnitFilterAutomationAction\":\"insertUnitFilterAutomationAction\",\"createGanttMilestoneField\":\"createGanttMilestoneField\",\"componentCopyViewConfiguration\":\"componentCopyViewConfiguration\",\"fetchFilterTriggerFields\":\"fetchFilterTriggerFields\",\"updateSubjectAutomationAction\":\"updateSubjectAutomationAction\",\"alterTableIDAutomationTrigger\":\"alterTableIDAutomationTrigger\",\"updateFieldePHIState\":\"updateFieldePHIState\",\"alterFormViewName\":\"alterFormViewName\",\"duplicateViewWithData\":\"duplicateViewWithData\",\"alterFilterLogicalStringAutomationTrigger\":\"alterFilterLogicalStringAutomationTrigger\",\"createRecordGroup\":\"createRecordGroup\",\"printViewCloseTransaction\":\"printViewCloseTransaction\",\"alterOrderView\":\"alterOrderView\",\"alterAutomationTrigger\":\"alterAutomationTrigger\",\"updateShareSnapDate\":\"updateShareSnapDate\",\"alterFormSubmitAutomationTrigger\":\"alterFormSubmitAutomationTrigger\",\"updateAggregateColor\":\"updateAggregateColor\",\"search\":\"search\",\"createLinkedRecordWithDataAndSubmit\":\"createLinkedRecordWithDataAndSubmit\",\"statusFilterAutomationRunHistory\":\"statusFilterAutomationRunHistory\",\"alterEndsAtTypeTriggerAutomation\":\"alterEndsAtTypeTriggerAutomation\",\"insertChartUnitFieldsToPlot\":\"insertChartUnitFieldsToPlot\",\"deleteGroup\":\"deleteGroup\",\"fetchRelationships\":\"fetchRelationships\",\"firstLoad\":\"firstLoad\",\"deleteUnitFilterAutomationAction\":\"deleteUnitFilterAutomationAction\",\"updateGridRecordHeight\":\"updateGridRecordHeight\",\"unhideGridField\":\"unhideGridField\",\"deleteAutomationAction\":\"deleteAutomationAction\",\"clearKanbanStack\":\"clearKanbanStack\",\"updateAggregateAlignment\":\"updateAggregateAlignment\",\"alterScheduledTimeTriggerAutomation\":\"alterScheduledTimeTriggerAutomation\",\"updateComponentView\":\"updateComponentView\",\"insertGridUnitSort\":\"insertGridUnitSort\",\"alterMetaField\":\"alterMetaField\",\"createField\":\"createField\",\"deleteUnitFilterAutomationTrigger\":\"deleteUnitFilterAutomationTrigger\",\"fetchMailFields\":\"fetchMailFields\",\"updateRTEContent\":\"updateRTEContent\",\"createSelectionOptionWithData\":\"createSelectionOptionWithData\",\"addGanttTaskDependency\":\"addGanttTaskDependency\",\"alterFilterLogicalOperator\":\"alterFilterLogicalOperator\",\"updateComponentUnitFilter\":\"updateComponentUnitFilter\",\"updateAggregateGroupByField\":\"updateAggregateGroupByField\",\"loadShareCard\":\"loadShareCard\",\"fetchAutomationActions\":\"fetchAutomationActions\",\"deleteWizFilterCondition\":\"deleteWizFilterCondition\",\"sortFormSchemaChoices\":\"sortFormSchemaChoices\",\"alterFormColorTheme\":\"alterFormColorTheme\",\"createRecord\":\"createRecord\",\"duplicateSnapCard\":\"duplicateSnapCard\",\"createGanttEndDateField\":\"createGanttEndDateField\",\"duplicateTable\":\"duplicateTable\",\"updateChartXAxisLabel\":\"updateChartXAxisLabel\",\"deleteTable\":\"deleteTable\",\"deleteFieldValuesAutomationAction\":\"deleteFieldValuesAutomationAction\",\"fetchFieldsByFieldType\":\"fetchFieldsByFieldType\",\"updateCardHeight\":\"updateCardHeight\",\"insertUnitFilter\":\"insertUnitFilter\",\"createSingleSelectConditionalHighlight\":\"createSingleSelectConditionalHighlight\",\"alterSocialMediaAutomationAction\":\"alterSocialMediaAutomationAction\",\"cliqChannelsUsersFetch\":\"cliqChannelsUsersFetch\",\"duplicateFieldWithData\":\"duplicateFieldWithData\",\"multipleDataSubmit\":\"multipleDataSubmit\",\"getFields\":\"getFields\",\"switchView\":\"switchView\",\"reorderGridUnitSort\":\"reorderGridUnitSort\",\"insertPrevRecord\":\"insertPrevRecord\",\"alterViewIDAutomationTrigger\":\"alterViewIDAutomationTrigger\",\"exportBase\":\"exportBase\",\"paste\":\"paste\",\"updateFieldChoicesFindAndIncludeRecordsAutomationAction\":\"updateFieldChoicesFindAndIncludeRecordsAutomationAction\",\"replaceAll\":\"replaceAll\",\"alterMetaUnitConditionalHighlight\":\"alterMetaUnitConditionalHighlight\",\"undo\":\"undo\",\"insertPreviousRecordInGroup\":\"insertPreviousRecordInGroup\",\"createUnitFilter\":\"createUnitFilter\",\"createAutomationTrigger\":\"createAutomationTrigger\",\"downloadBaseVersion\":\"downloadBaseVersion\",\"insertNextRecordInGroup\":\"insertNextRecordInGroup\",\"deleteWizFilter\":\"deleteWizFilter\",\"activityLog\":\"activityLog\",\"deleteSelectionOption\":\"deleteSelectionOption\",\"loadCard\":\"loadCard\",\"createRecordAndPaste\":\"createRecordAndPaste\",\"updateChartFormula\":\"updateChartFormula\",\"alterSocialContentTriggerFieldAutomationAction\":\"alterSocialContentTriggerFieldAutomationAction\",\"alterHeightRecord\":\"alterHeightRecord\",\"insertNextField\":\"insertNextField\",\"deleteUnitConditionalHighlight\":\"deleteUnitConditionalHighlight\",\"deleteAutomation\":\"deleteAutomation\",\"alterTableIDAutomationAction\":\"alterTableIDAutomationAction\",\"fetchGanttData\":\"fetchGanttData\",\"loadCardInVersionPreview\":\"loadCardInVersionPreview\",\"updateCardWidth\":\"updateCardWidth\",\"alterFormNameParameters\":\"alterFormNameParameters\",\"createGanttDependencyField\":\"createGanttDependencyField\",\"fetchInVersionPreview\":\"fetchInVersionPreview\",\"removeChannelOrUserCliqBotActionAutomation\":\"removeChannelOrUserCliqBotActionAutomation\",\"alterWebhookParamKeyAutomationAction\":\"alterWebhookParamKeyAutomationAction\",\"alterScheduledTimeFrameTriggerAutomation\":\"alterScheduledTimeFrameTriggerAutomation\",\"deleteGanttTaskDependency\":\"deleteGanttTaskDependency\",\"dragAndDropRecordInCalendar\":\"dragAndDropRecordInCalendar\",\"tabReRegister\":\"tabReRegister\",\"deleteConditionalHighlight\":\"deleteConditionalHighlight\",\"sortAutomationRunHistory\":\"sortAutomationRunHistory\",\"fetchSocialMediaFields\":\"fetchSocialMediaFields\",\"wmsregister\":\"wmsregister\",\"clearSchemaCard\":\"clearSchemaCard\",\"insertAutomation\":\"insertAutomation\",\"updateSnapFilterType\":\"updateSnapFilterType\",\"deleteSnap\":\"deleteSnap\",\"insertGroupBy\":\"insertGroupBy\",\"alterSummaryTypeSummaryOfAFieldAutomationAction\":\"alterSummaryTypeSummaryOfAFieldAutomationAction\",\"reorderGroupBy\":\"reorderGroupBy\",\"duplicateTableWithoutData\":\"duplicateTableWithoutData\",\"alterFormCoverImageVisibility\":\"alterFormCoverImageVisibility\",\"createUnitFilterAutomationAction\":\"createUnitFilterAutomationAction\",\"fetchCompatibleGanttEndDateFields\":\"fetchCompatibleGanttEndDateFields\",\"searchGanttTasks\":\"searchGanttTasks\",\"deleteGridUnitSort\":\"deleteGridUnitSort\",\"insertFormCoverImage\":\"insertFormCoverImage\",\"insertAttachmentAutomationAction\":\"insertAttachmentAutomationAction\",\"alterWidthField\":\"alterWidthField\",\"duplicateConditionalHighlight\":\"duplicateConditionalHighlight\",\"renameAutomation\":\"renameAutomation\",\"updateChartGroupBy\":\"updateChartGroupBy\",\"resizeRecordInCalendar\":\"resizeRecordInCalendar\",\"alterOrderRecord\":\"alterOrderRecord\",\"fetchTriggerCompatibleFields\":\"fetchTriggerCompatibleFields\",\"alterFormSchemaComponentType\":\"alterFormSchemaComponentType\",\"updateComponentFilterConditionType\":\"updateComponentFilterConditionType\",\"insertFieldValuesAutomationAction\":\"insertFieldValuesAutomationAction\",\"alterGroupCollapseOrExpandState\":\"alterGroupCollapseOrExpandState\",\"updateUserPresence\":\"updateUserPresence\",\"removeAttachmentAutomationAction\":\"removeAttachmentAutomationAction\",\"updateChartDrawWith\":\"updateChartDrawWith\",\"alterWebhookUrlAutomationAction\":\"alterWebhookUrlAutomationAction\",\"insertFormLogo\":\"insertFormLogo\",\"deleteAttachment\":\"deleteAttachment\",\"alterOrderField\":\"alterOrderField\",\"loadMoreActivityLogInVersionPreview\":\"loadMoreActivityLogInVersionPreview\",\"createRecordComments\":\"createRecordComments\",\"alterFormSubmitButtonName\":\"alterFormSubmitButtonName\",\"insertUnitConditionalHighlight\":\"insertUnitConditionalHighlight\",\"updateGanttTaskDependencyType\":\"updateGanttTaskDependencyType\",\"updateAggregateSecondaryValueStatus\":\"updateAggregateSecondaryValueStatus\",\"recordDateRangeUpdateGantt\":\"recordDateRangeUpdateGantt\",\"createAutomationAction\":\"createAutomationAction\",\"fetchSummaryFields\":\"fetchSummaryFields\",\"alterScheduledHoursTriggerAutomation\":\"alterScheduledHoursTriggerAutomation\",\"updateSnapName\":\"updateSnapName\",\"updateAnchorsCalendarView\":\"updateAnchorsCalendarView\",\"alterFormSchemaRequiredStatus\":\"alterFormSchemaRequiredStatus\",\"insertTable\":\"insertTable\",\"hideField\":\"hideField\",\"hasCliqOrg\":\"hasCliqOrg\",\"alterScheduledOnTypeMonthlyTriggerAutomation\":\"alterScheduledOnTypeMonthlyTriggerAutomation\",\"deleteField\":\"deleteField\",\"alterFormLogoAlignment\":\"alterFormLogoAlignment\",\"updateChartYAxisLabel\":\"updateChartYAxisLabel\",\"updateGridUnitSort\":\"updateGridUnitSort\",\"evaluateFilterFormula\":\"evaluateFilterFormula\",\"updateGanttConfigurationDurationScale\":\"updateGanttConfigurationDurationScale\",\"alterAllStacksVisibility\":\"alterAllStacksVisibility\",\"dateFilterAutomationRunHistory\":\"dateFilterAutomationRunHistory\",\"redo\":\"redo\",\"updateAggregateField\":\"updateAggregateField\",\"updateShareSnapPassword\":\"updateShareSnapPassword\",\"updateChartLegendPosition\":\"updateChartLegendPosition\",\"closeAutomationRunHistory\":\"closeAutomationRunHistory\",\"insertSchemaCard\":\"insertSchemaCard\",\"fetchCompatibleGanttDependencyFields\":\"fetchCompatibleGanttDependencyFields\",\"getTables\":\"getTables\",\"insertNextView\":\"insertNextView\",\"alterMetaUnitFilterFindAndIncludeRecordsAutomationAction\":\"alterMetaUnitFilterFindAndIncludeRecordsAutomationAction\",\"evaluateConditionalFormatFormula\":\"evaluateConditionalFormatFormula\",\"markAsPrimaryField\":\"markAsPrimaryField\",\"alterTableIDSummaryOfAFieldAutomationAction\":\"alterTableIDSummaryOfAFieldAutomationAction\",\"updateAggregateSecondaryLabelStatus\":\"updateAggregateSecondaryLabelStatus\",\"alterMetaUnitSort\":\"alterMetaUnitSort\",\"createConditionalHighlight\":\"createConditionalHighlight\",\"alterScheduledWeeksTriggerAutomation\":\"alterScheduledWeeksTriggerAutomation\",\"fetchAttachmentFields\":\"fetchAttachmentFields\",\"getViews\":\"getViews\",\"alterFilterLogicalStringAutomationAction\":\"alterFilterLogicalStringAutomationAction\",\"shareSnap\":\"shareSnap\",\"alterScheduledDayMonthlyTriggerAutomation\":\"alterScheduledDayMonthlyTriggerAutomation\",\"cliqAddBotToChannels\":\"cliqAddBotToChannels\",\"createGroupBy\":\"createGroupBy\",\"deleteRecord\":\"deleteRecord\",\"fetchTriggerFields\":\"fetchTriggerFields\",\"updateToAddressAutomationAction\":\"updateToAddressAutomationAction\",\"alterFormViewDescription\":\"alterFormViewDescription\",\"fetchRunHistory\":\"fetchRunHistory\",\"insertUnitFilterFindAndIncludeRecordsAutomationAction\":\"insertUnitFilterFindAndIncludeRecordsAutomationAction\",\"duplicateAutomation\":\"duplicateAutomation\",\"updateKanbanAnchor\":\"updateKanbanAnchor\",\"alterMetaAttachment\":\"alterMetaAttachment\",\"printView\":\"printView\",\"alterUnitLogicalOperatorConditionalHighlight\":\"alterUnitLogicalOperatorConditionalHighlight\",\"updateCellUserPresence\":\"updateCellUserPresence\",\"alterOrderUnitSort\":\"alterOrderUnitSort\",\"createNewBaseFromVersion\":\"createNewBaseFromVersion\",\"fetchSnapInVersionPreview\":\"fetchSnapInVersionPreview\",\"alterMetaView\":\"alterMetaView\",\"updateShareSnapStatus\":\"updateShareSnapStatus\",\"alterSocialMediaTriggerFieldAutomationAction\":\"alterSocialMediaTriggerFieldAutomationAction\",\"updateComponentTable\":\"updateComponentTable\",\"createGanttStartDateField\":\"createGanttStartDateField\",\"duplicateRecord\":\"duplicateRecord\",\"alterWebhookHeaderValueAutomationAction\":\"alterWebhookHeaderValueAutomationAction\",\"baseInfo\":\"baseInfo\",\"alterMetaUnitFilterAutomationTrigger\":\"alterMetaUnitFilterAutomationTrigger\",\"cut\":\"cut\",\"deleteSnapCard\":\"deleteSnapCard\",\"deleteGroupBy\":\"deleteGroupBy\",\"wmsunregister\":\"wmsunregister\",\"updateAggregateGroupByType\":\"updateAggregateGroupByType\",\"alterColorConditionalHighlight\":\"alterColorConditionalHighlight\",\"alterFormLabelAlignment\":\"alterFormLabelAlignment\",\"fetchSnapAndUpdateViewport\":\"fetchSnapAndUpdateViewport\",\"alterFormNameVisibility\":\"alterFormNameVisibility\",\"createAutomation\":\"createAutomation\",\"alterWebhookBodyAutomationAction\":\"alterWebhookBodyAutomationAction\",\"alterScheduledWeekMonthlyTriggerAutomation\":\"alterScheduledWeekMonthlyTriggerAutomation\",\"createGanttDisplayField\":\"createGanttDisplayField\",\"insertUnitSort\":\"insertUnitSort\",\"insertComponentUnitFilter\":\"insertComponentUnitFilter\",\"updateMessageAutomationAction\":\"updateMessageAutomationAction\",\"clearConditionalHighlight\":\"clearConditionalHighlight\",\"updateChartFieldsToPlot\":\"updateChartFieldsToPlot\",\"snapListingPageInVersionPreview\":\"snapListingPageInVersionPreview\",\"alterScheduledDaysTriggerAutomation\":\"alterScheduledDaysTriggerAutomation\",\"addUserIntoBaseWithSubmit\":\"addUserIntoBaseWithSubmit\",\"alterMetaUnitFilter\":\"alterMetaUnitFilter\",\"updateGroupBy\":\"updateGroupBy\",\"deleteFormLogo\":\"deleteFormLogo\",\"deleteKanbanStackRecords\":\"deleteKanbanStackRecords\",\"printViewOpenTransaction\":\"printViewOpenTransaction\",\"removeWebhookParamAutomationAction\":\"removeWebhookParamAutomationAction\",\"insertPrevField\":\"insertPrevField\",\"alterSocialBrandAutomationAction\":\"alterSocialBrandAutomationAction\",\"alterOrderTable\":\"alterOrderTable\",\"fixGanttInvalidTaskDependency\":\"fixGanttInvalidTaskDependency\",\"alterOrderStackKanbanView\":\"alterOrderStackKanbanView\",\"alterFormSchemaOrderChoices\":\"alterFormSchemaOrderChoices\",\"alterWizFilterType\":\"alterWizFilterType\",\"updateSnapSortType\":\"updateSnapSortType\",\"createComponentUnitFilter\":\"createComponentUnitFilter\",\"fetchCompatibleGanttMilestoneFields\":\"fetchCompatibleGanttMilestoneFields\",\"alterOrderSchemaCard\":\"alterOrderSchemaCard\",\"updateComponentLogicalString\":\"updateComponentLogicalString\",\"alterStackVisibility\":\"alterStackVisibility\",\"updateGridFieldWidth\":\"updateGridFieldWidth\",\"alterFrequencyTriggerAutomation\":\"alterFrequencyTriggerAutomation\",\"removeAttachmentFieldAutomationAction\":\"removeAttachmentFieldAutomationAction\",\"insertCellUserPresence\":\"insertCellUserPresence\",\"updateShareSnapUsertype\":\"updateShareSnapUsertype\",\"updateAggregateDifferenceStatus\":\"updateAggregateDifferenceStatus\",\"validateAutomation\":\"validateAutomation\",\"alterOrderSelectionOption\":\"alterOrderSelectionOption\",\"addWizFilterCondition\":\"addWizFilterCondition\",\"alterScheduledDatesMonthlyTriggerAutomation\":\"alterScheduledDatesMonthlyTriggerAutomation\",\"insertWebhookParamAutomationAction\":\"insertWebhookParamAutomationAction\",\"switchTable\":\"switchTable\",\"alterRecordOrderGroup\":\"alterRecordOrderGroup\",\"alterFieldIDSummaryOfAFieldAutomationAction\":\"alterFieldIDSummaryOfAFieldAutomationAction\",\"submit\":\"submit\",\"deleteSchemaCard\":\"deleteSchemaCard\",\"updateSnapCardPosition\":\"updateSnapCardPosition\",\"clearGroup\":\"clearGroup\",\"createRecordWithData\":\"createRecordWithData\",\"updateSnapCardSize\":\"updateSnapCardSize\",\"insertAutomationAction\":\"insertAutomationAction\",\"fetchWizTables\":\"fetchWizTables\",\"resetSchemaCard\":\"resetSchemaCard\",\"fetchCompatibleGanttStartDateFields\":\"fetchCompatibleGanttStartDateFields\",\"insertWebhookHeaderAutomationAction\":\"insertWebhookHeaderAutomationAction\",\"alterFormRedirectUrl\":\"alterFormRedirectUrl\",\"evaluateFormula\":\"evaluateFormula\",\"insertAttachmentFieldAutomationAction\":\"insertAttachmentFieldAutomationAction\",\"cliqExtensionInstall\":\"cliqExtensionInstall\",\"deleteChartUnitFieldsToPlot\":\"deleteChartUnitFieldsToPlot\",\"createFieldAndUpdateKanbanAnchor\":\"createFieldAndUpdateKanbanAnchor\",\"updateFieldValuesAutomationAction\":\"updateFieldValuesAutomationAction\",\"alterFormSchemaChoicesVisibility\":\"alterFormSchemaChoicesVisibility\",\"updateFallbackConditionalHighlight\":\"updateFallbackConditionalHighlight\",\"updateBccAddressAutomationAction\":\"updateBccAddressAutomationAction\",\"removeWebhookHeaderAutomationAction\":\"removeWebhookHeaderAutomationAction\",\"exportGroup\":\"exportGroup\",\"deleteComponentUnitFilter\":\"deleteComponentUnitFilter\",\"schedulerExecutionAutomation\":\"schedulerExecutionAutomation\",\"alterWebhookParamValueAutomationAction\":\"alterWebhookParamValueAutomationAction\",\"exportTableFromEditor\":\"exportTableFromEditor\",\"alterAllGroupsCollapseOrExpandState\":\"alterAllGroupsCollapseOrExpandState\",\"alterMetaSchemaCard\":\"alterMetaSchemaCard\",\"alterWebhookMethodAutomationAction\":\"alterWebhookMethodAutomationAction\",\"alterTableIDFindAndIncludeRecordsAutomationAction\":\"alterTableIDFindAndIncludeRecordsAutomationAction\",\"fetchsnaplistingandupdateviewport\":\"fetchsnaplistingandupdateviewport\",\"exportBaseFromEditor\":\"exportBaseFromEditor\",\"alterEndsAtDateTimeTriggerAutomation\":\"alterEndsAtDateTimeTriggerAutomation\",\"alterSubGroupsCollapseOrExpandState\":\"alterSubGroupsCollapseOrExpandState\",\"alterFormSchemaName\":\"alterFormSchemaName\",\"updateGridFilterType\":\"updateGridFilterType\",\"alterCategoryCard\":\"alterCategoryCard\",\"updateChartUnitFieldsToPlot\":\"updateChartUnitFieldsToPlot\",\"unHideField\":\"unHideField\",\"moveCard\":\"moveCard\",\"updateSingleSelectConditionalHighlight\":\"updateSingleSelectConditionalHighlight\",\"alterSummaryBar\":\"alterSummaryBar\",\"createSelectionOption\":\"createSelectionOption\",\"insertUnitFilterAutomationTrigger\":\"insertUnitFilterAutomationTrigger\",\"deleteUnitFilter\":\"deleteUnitFilter\",\"alterFormNameAlignment\":\"alterFormNameAlignment\",\"alterFormLogoVisibility\":\"alterFormLogoVisibility\",\"alterWebhookBodyModeAutomationAction\":\"alterWebhookBodyModeAutomationAction\",\"fetchValidViewsTrigger\":\"fetchValidViewsTrigger\",\"alterMetaUnitFilterAutomationAction\":\"alterMetaUnitFilterAutomationAction\",\"initGanttConfiguration\":\"initGanttConfiguration\",\"alterOrderConditionalHighlight\":\"alterOrderConditionalHighlight\",\"fetchActivityLog\":\"fetchActivityLog\",\"copy\":\"copy\",\"updateComponentTitle\":\"updateComponentTitle\",\"fetchValidViewsFindAndIncludeRecords\":\"fetchValidViewsFindAndIncludeRecords\",\"updateWizFilterConditionTable\":\"updateWizFilterConditionTable\",\"alterFormMessageAfterSubmit\":\"alterFormMessageAfterSubmit\",\"fetchCompatibleGanttDisplayFields\":\"fetchCompatibleGanttDisplayFields\",\"updatePropertyCard\":\"updatePropertyCard\",\"updateViewportAndFetch\":\"updateViewportAndFetch\",\"alterEndsAtCountTriggerAutomation\":\"alterEndsAtCountTriggerAutomation\",\"copyViewConfiguration\":\"copyViewConfiguration\",\"alterWizFilterLabel\":\"alterWizFilterLabel\",\"duplicateFieldWithoutData\":\"duplicateFieldWithoutData\",\"reorderChartUnitFieldsToPlot\":\"reorderChartUnitFieldsToPlot\",\"updateChartType\":\"updateChartType\",\"fetch\":\"fetch\",\"alterFormLogo\":\"alterFormLogo\",\"createSnap\":\"createSnap\",\"alterMetaSelectionOption\":\"alterMetaSelectionOption\",\"createUnitFilterFindAndIncludeRecordsAutomationAction\":\"createUnitFilterFindAndIncludeRecordsAutomationAction\",\"fetchSocialMessageFields\":\"fetchSocialMessageFields\",\"fetchFindAndIncludeRecordsFilterTriggerFields\":\"fetchFindAndIncludeRecordsFilterTriggerFields\",\"alterMetaTable\":\"alterMetaTable\",\"deleteCellUserPresence\":\"deleteCellUserPresence\",\"alterMetaSentiment\":\"alterMetaSentiment\",\"insertNextSelectionOption\":\"insertNextSelectionOption\",\"replace\":\"replace\",\"deleteFormCoverImage\":\"deleteFormCoverImage\",\"updateChartColor\":\"updateChartColor\",\"fetchGanttLinkMeta\":\"fetchGanttLinkMeta\",\"loadMoreActivityLog\":\"loadMoreActivityLog\",\"alterFilterLogicalStringFindAndIncludeRecordsAutomationAction\":\"alterFilterLogicalStringFindAndIncludeRecordsAutomationAction\",\"createUnitFilterAutomationTrigger\":\"createUnitFilterAutomationTrigger\",\"activityLogInVersionPreview\":\"activityLogInVersionPreview\",\"alterFormSchemaDescription\":\"alterFormSchemaDescription\",\"updateWizFilterConditionField\":\"updateWizFilterConditionField\",\"fetchGroupByMeta\":\"fetchGroupByMeta\",\"insertNextRecord\":\"insertNextRecord\",\"schedularStatusUpdateAutomation\":\"schedularStatusUpdateAutomation\",\"sortSelectionOption\":\"sortSelectionOption\",\"fetchFindAndIncludeRecordsFields\":\"fetchFindAndIncludeRecordsFields\",\"addWizFilter\":\"addWizFilter\",\"alterSocialContentTypeAutomationAction\":\"alterSocialContentTypeAutomationAction\",\"updateGanttConfiguration\":\"updateGanttConfiguration\",\"alterRatioSchemaCard\":\"alterRatioSchemaCard\",\"alterScheduledOnDaysWeeklyTriggerAutomation\":\"alterScheduledOnDaysWeeklyTriggerAutomation\",\"baseBroadcast\":\"baseBroadcast\",\"updateCcAddressAutomationAction\":\"updateCcAddressAutomationAction\",\"syncCall\":\"syncCall\",\"alterStatusAutomation\":\"alterStatusAutomation\",\"alterCreateLinkedRecordAutomationTrigger\":\"alterCreateLinkedRecordAutomationTrigger\",\"loadTableData\":\"loadTableData\",\"deleteView\":\"deleteView\",\"searchInVersionPreview\":\"searchInVersionPreview\",\"updateAggregateFormula\":\"updateAggregateFormula\",\"clear\":\"clear\",\"insertChannelOrUserCliqBotActionAutomation\":\"insertChannelOrUserCliqBotActionAutomation\",\"exportViewFromEditor\":\"exportViewFromEditor\",\"alterSocialPortalAutomationAction\":\"alterSocialPortalAutomationAction\",\"snapClose\":\"snapClose\",\"hideGridField\":\"hideGridField\",\"alterFormCoverImage\":\"alterFormCoverImage\",\"LinkFetch\":\"LinkFetch\",\"alterFormBrandingStatus\":\"alterFormBrandingStatus\",\"alterDuplicateRecordAutomationTrigger\":\"alterDuplicateRecordAutomationTrigger\"};\n    Constants.AutomationRunHistoryErrorConstants = {\"1\":\"UI.tables.common.InternalServerError\",\"2\":\"UI.Tables.Automation.RunHistory.Error.UnsupportedSocialPlan\",\"3\":\"UI.Tables.Automation.RunHistory.Error.InvalidSocialPortal\",\"4\":\"UI.Tables.Automation.RunHistory.Error.InvalidSocialBrand\",\"5\":\"UI.Tables.Automation.RunHistory.Error.UserHasNoPermission\",\"6\":\"UI.Tables.Automation.RunHistory.Error.WebhookRequestFailure\"};\n\n})(globalThis);\n","import { WDUtil } from \"../../Utility/WDUtil.js\";\n\nconst currentScript = document.currentScript;\nconst useMinFile\t= JSON.parse(currentScript.dataset.useminfile);\nconst jsPATH\t\t= currentScript.dataset.jspath;\nconst cssPATH\t\t= currentScript.dataset.csspath;\n\nconst imageServerURL = document.getElementById('imageServerURL').getAttribute('data-value');\nconst teamDrivePreviewURL = document.getElementById('teamDrivePreviewURL').getAttribute('data-value');\nconst teamDriveDownloadURL = document.getElementById('teamDriveDownloadURL').getAttribute('data-value');\nconst teamDriveServerURL = document.getElementById('teamDriveServerURL').getAttribute('data-value');\n\nconst isCsezSetup    = document.getElementById('isCsezSetup').getAttribute('data-value');\n\n(function (ctx) {\n\n\tvar Table       = ctx.Table || (ctx.Table = {});\n\tvar AppRegistry = Table.AppRegistry || (Table.AppRegistry = {});\n\tvar Constants   = Table.Constants || (Table.Constants = {});\n\n\tTable.useCompression = useMinFile;\n\n\tAppRegistry.JS_PATH                 = jsPATH;\n\tAppRegistry.CSS_PATH                = cssPATH;\n\tAppRegistry.isCsezSetup             = JSON.parse(isCsezSetup);\n\t   \n\tAppRegistry.ImageServerURL         = imageServerURL\n\t\n\tWDUtil.setWDURL(teamDriveServerURL);\n\tWDUtil.setPreviewURL(teamDrivePreviewURL);\n\tWDUtil.setDownloadURL(teamDriveDownloadURL);\n\t\n})(globalThis);\n","\nimport { KeyBoardEvents } from './KeyContextMapping.js';\nimport { getKeyCombination } from './KeyListener.js';\n\nfunction keydown(ev) {\n\tconst keyCombo = getKeyCombination(ev);\n\tconst Stack    = KeyBoardEvents.Events.Key.Stack;\n\tfor (let i = Stack.length - 1; i >= 0; i--) {\n\t\tconst Context = Stack[i];\n\t\tif (!Context) {\n\t\t\tcontinue;\n\t\t}\n\t\tconst KeyDown = Context.keyDown;\n\n\t\tif (Context.alive && KeyDown && KeyDown[keyCombo]) {\n\t\t\tconst propagate = KeyDown[keyCombo].callback(ev);\n\t\t\tif (propagate === false) {\n\t\t\t\treturn propagate;\n\t\t\t}\n\t\t}\n\t}\n\n\n}\n\nwindow.addEventListener(\"keydown\", keydown);\n","import { getTemplate } from \"../../TemplatesForAll.js\";\nimport { IUpgradeConfirmationDialogEventHandler } from \"./IUpgradeConfirmationDialogEventHandler\";\n\nexport class UpgradeConfirmationDialog {\n\n\tprivate readonly pricingConfirmationDialog             : HTMLDivElement\n\tprivate readonly pricingConfirmationDialogMessage      : HTMLSpanElement\n\tprivate readonly pricingConfirmationDialogUpgradeButton: HTMLButtonElement\n\tprivate readonly pricingConfirmationDialogCancelButton : HTMLButtonElement\n\n\tprivate readonly upgradeConfirmationDialogEventHandler: IUpgradeConfirmationDialogEventHandler\n\n\n\tconstructor(upgradeConfirmationDialogEventHandler: IUpgradeConfirmationDialogEventHandler) {\n\n\t\tconst pricingConfirmationDialogTemplate     = getTemplate('pricingConfirmationDialogTemplate') as HTMLTemplateElement\n\n\t\tthis.pricingConfirmationDialog              = pricingConfirmationDialogTemplate.querySelector('.pricingConfirmationDialog') as HTMLDivElement\n\t\tthis.pricingConfirmationDialogMessage       = pricingConfirmationDialogTemplate.querySelector('.pricingConfirmationDialogMessage') as HTMLSpanElement\n\t\tthis.pricingConfirmationDialogUpgradeButton = pricingConfirmationDialogTemplate.querySelector('.pricingConfirmationDialogUpgradeButton') as HTMLButtonElement\n\t\tthis.pricingConfirmationDialogCancelButton  = pricingConfirmationDialogTemplate.querySelector('.pricingConfirmationDialogCancelButton') as HTMLButtonElement\n\n\t\tthis.upgradeConfirmationDialogEventHandler  = upgradeConfirmationDialogEventHandler\n\n\t\tthis.addEventListener()\n\t}\n\n\tprivate addEventListener() {\n\t\tthis.pricingConfirmationDialogUpgradeButton.addEventListener('click', (ev) => { this.upgradeConfirmationDialogEventHandler.onUpgradeButtonClick() })\n\t\tthis.pricingConfirmationDialogCancelButton .addEventListener('click', (ev) => { this.upgradeConfirmationDialogEventHandler.onCancelButtonClick() })\n\t}\n\n\tappendTo(parent: HTMLElement) {\n\t\tparent.appendChild(this.pricingConfirmationDialog)\n\t}\n\n\tsetContent(content: string | HTMLElement) {\n\t\tthis.pricingConfirmationDialogMessage.textContent = \"\"\n\t\ttypeof(content) === \"string\" ?  this.pricingConfirmationDialogMessage.textContent = content : this.pricingConfirmationDialogMessage.append(content)\n\t}\n\n\tfocus(){\n\t\tthis.pricingConfirmationDialogUpgradeButton.focus()\n\t}\n\n\tgetDom() {\n\t\treturn this.pricingConfirmationDialog\n\t}\n}","export function getTemplate(templateID) {\n    let template = document.getElementById(templateID);\n    template     = template.content.cloneNode(true);\n    return template;\n}\n","import { getTemplate } from \"../../../Utility/GetTemplate.js\"\n\nexport class DialogModal {\n\tprivate readonly dialogModal: HTMLDialogElement\n\n\tconstructor() {\n\t\tconst dialogModalTemplate = getTemplate('dialogModalTemplate') as HTMLTemplateElement\n\t\tthis.dialogModal          = dialogModalTemplate.querySelector('#dialogModal') as HTMLDialogElement\n\t}\n\n\topen() {\n\t\tdocument.body.appendChild(this.dialogModal)\n\t\tthis.dialogModal.showModal()\n\t}\n\n\tclose() {\n\t\tthis.dialogModal.close()\n\t}\n\n\tappendIntoDialog(dom: HTMLElement) {\n\t\tthis.dialogModal.textContent = \"\"\n\t\tthis.dialogModal.appendChild(dom)\n\t}\n\t\n\taddCSSClass(className: string) {\n\t\tthis.dialogModal.classList.add(className);\n\t}\n\n\tremoveCSSClass(className: string) {\n\t\tthis.dialogModal.classList.remove(className);\n\t}\n\n}\n","import { getTemplate } from \"../../../TemplatesForAll.js\";\nimport { IUpgradeConfirmationDialogEventHandler } from \"../../Dialog/IUpgradeConfirmationDialogEventHandler\";\nimport { UpgradeConfirmationDialog } from \"../../Dialog/UpgradeConfirmationDialog\";\nimport { DialogModal } from \"../../DialogModal/Implementation/DialogModal\";\n\nexport class PricingUpgradeButton {\n\n\tprivate readonly pricingUpgradeButton       : HTMLButtonElement\n\tprivate readonly pricingUpgradeButtonContent: HTMLSpanElement\n\tprivate readonly pricingModalDialog         : DialogModal\n\tprivate readonly pricingConfrimationDialog  : UpgradeConfirmationDialog\n\tprivate isDialogOpen               : boolean\n\n\tconstructor() {\n\n\t\tconst pricingUpgradeButtonTemplate    = getTemplate('pricingUpgradeButtonTemplate') as HTMLTemplateElement\t\t\n\t\tconst pricingConfrimationDialogEventHandler = new PricingUpgradeButton.PricingCrownIconAsUpdateConfirmationDialogEventHandler(this)\n\n        this.pricingUpgradeButton             = pricingUpgradeButtonTemplate.querySelector('.pricingUpgradeButton') as HTMLButtonElement\n        this.pricingUpgradeButtonContent      = pricingUpgradeButtonTemplate.querySelector('.pricingUpgradeButtonContent') as HTMLSpanElement\n\t\t\n\t\tthis.pricingModalDialog               = new DialogModal()\n\t\tthis.pricingConfrimationDialog        = new UpgradeConfirmationDialog(pricingConfrimationDialogEventHandler)\n\n\t\tthis.isDialogOpen                     = false\n\n\t\tthis.init()\n\t\tthis.addEventListener()\n\n\t}\n\n\tprivate init() {\n\t\tconst pricingConfirmationDialogDom = this.pricingConfrimationDialog.getDom()\n\t\tthis.pricingModalDialog.appendIntoDialog(pricingConfirmationDialogDom)\n\t}\n\n\tprivate addEventListener(): void {\n\t\tthis.pricingUpgradeButton.addEventListener('click', (ev) => {\n\t\t\tthis.pricingModalDialog.open()\n\t\t\tthis.isDialogOpen = true;\n\t\t\tthis.pricingConfrimationDialog.focus()\n\t\t\tev.stopImmediatePropagation()\n\t\t})\n\t}\n\taddMouseOverEventListener(callback){\n\t\tthis.pricingUpgradeButton.addEventListener('mouseover', callback);\n\t}\n\tremoveMouseOverEventListener(callback){\n\t\tthis.pricingUpgradeButton.removeEventListener('mouseover',  callback);\n\t}\n\tgetIsDialogOpen(): boolean {\n\t\treturn this.isDialogOpen;\n\t}\n\taddCSSClass(className: string) {\n\t\tthis.pricingUpgradeButton.classList.add(className)\n\t}\n\n\tremoveCSSClass(className: string) {\n\t\tthis.pricingUpgradeButton.classList.remove(className)\n\t}\n\n\tgetButton() : HTMLButtonElement {\n\t\treturn this.pricingUpgradeButton;\n\t}\n\n\tsetTitle(content : string) {\n\t\tthis.pricingUpgradeButton.title = content;\n\t}\n\n    setButtonContent(content: string) {\n        this.pricingUpgradeButtonContent.textContent = content\n    }\n\n\tappendBefore(sibiling: HTMLElement) {\n\t\tconst parent = sibiling.parentElement\n\t\tif (parent) { parent.insertBefore(this.pricingUpgradeButton, sibiling) }\n\t}\n\n\tappendTo(parent: HTMLElement): void {\n\t\tparent.appendChild(this.pricingUpgradeButton)\n\t}\n\n\tappendAfter(sibiling: HTMLElement): void {\n\t\tconst parent = sibiling.parentElement\n\t\tif (parent) { parent.insertBefore(this.pricingUpgradeButton, sibiling.nextElementSibling) }\n\t}\n\n\tremove(): void {\n\t\tthis.pricingUpgradeButton.remove()\n\t}\n\n\tprivate upgradeDialogUpgradeButtonClick() {\n\t\tconst portalID           = Table.State.getPortalID()                                                                             //TODO: Get from state, this hotfix is due to listingPage\n\t\tconst serviceID          = Table.Constants.Store.ServiceID\n\t\tconst redirectionURL     = Table.Constants.Store.RedirectionURL\n\t\tconst planRedirectionURL = Table.Constants.Store.PlanRedirectionURL\n\t\tconst isPortalOwner      = Table.State.getIsPortalOwner()\n\t\tconst isZohoOnePortal\t = Table.State.getIsZohoOnePortal();\n\t\tconst zohoOneRedirectionURL = Table.State.getZohoOneSubscriptionRedirectionURL();\n\t\tconst url                = isZohoOnePortal ? zohoOneRedirectionURL : isPortalOwner ? `${redirectionURL}?serviceId=${serviceID}&customId=${portalID}` : planRedirectionURL\n\t\topen(url,'_blank')\n\t\tthis.pricingModalDialog.close()\n\t}\n\n\tprivate upgradeDialogCancelButtonClick() {\n\t\tthis.pricingModalDialog.close()\n\t\tthis.isDialogOpen = false\n\t}\n\n\tstatic PricingCrownIconAsUpdateConfirmationDialogEventHandler = class implements IUpgradeConfirmationDialogEventHandler {\n\n\t\tprivate readonly context: PricingUpgradeButton\n\n\t\tconstructor(context: PricingUpgradeButton) {\n\t\t\tthis.context = context\n\t\t}\n\n\t\tonUpgradeButtonClick() {\n\t\t\tthis.context.upgradeDialogUpgradeButtonClick()\n\t\t}\n\n\t\tonCancelButtonClick() {\n\t\t\tthis.context.upgradeDialogCancelButtonClick()\n\t\t}\n\t}\n\n}\n","\nconst printer = globalThis.console;\n\nlet Pattern = {\n\tlog     : \"background:#3f51b5;color:white;border-radius:2px;padding:1px 5px;\",//No I18N\n\terror   : \"background:#e53935;color:white;border-radius:2px;padding:1px 5px;\",//No I18N\n\tDefault : \"background:grey;color:white;border-radius:2px;padding:1px 5px;\"//No I18N\n};\n\nif(globalThis){\n\tPattern = {\n\t\tlog     : \"color:#3f51b5;font-weight:bold;border:1px solid;border-radius:2px;padding:1px 5px;\",//No I18N\n\t\terror   : \"color:#e53935;font-weight:bold;border:1px solid;border-radius:2px;padding:1px 5px;\",//No I18N\n\t\tDefault : \"color:grey;font-weight:bold;border:1px solid;border-radius:2px;padding:1px 5px;\"//No I18N\n\t}\n}\n\nfunction print(type, context, args) {\n\tconst style  = Pattern[type] || Pattern.Default;\n\tconst log    = printer[type] || printer.log;\n\tlet result = [`%c${context}`, style]; //No I18N\n\tresult     = result.concat(args);\n\tlog(...result);\n}\n\n// function print2(type, context, args) {\n// \tprinter.log(context, ' = ', args[0]);\n// }\n\nclass Logger_ {\n\tlog(context) {\n\t\tconst args = [].slice.call(arguments, 1);\n\t\tprint('log', context, args);//No I18N\n\t}\n\n\terror(context) {\n\t\tconst args = [].slice.call(arguments, 1);\n\t\tprint('error', context, args);//No I18N\n\t}\n\n\twarn(context) {\n\t\tconst args = [].slice.call(arguments, 1);\n\t\tprint('warn', context, args);//No I18N\n\t}\n\n\t// warn2(context) {\n\t// \tconst args = [].slice.call(arguments, 1);\n\t// \tprint2('warn', context, args);//No I18N\n\t// }\n}\n\nexport const Logger = new Logger_();\n\nglobalThis.shouldPrintRemainingQueueActionCountLog = false;\n","import { Logger } from \"../Utility/Logger.js\";\n\nexport const MurphyUtility = {\n\tthrowCustomErrorMurphy(detail, message) {\n\t\tif(typeof murphy === 'undefined') {\n\t\t\tLogger.error(message, detail)\n\t\t} else{\n\t\t\tconst error_details = {};\n\t\t\terror_details.type = \"custom event\"; // No I18N\n\t\t\terror_details.message = JSON.stringify(detail);\n\t\t\tmurphy.addCustomTracking(error_details);\n\t\t\tconst envData ={\n\t\t\t\tpreventClientGrouping:true\n\t\t\t}\n\t\t\tmurphy.error(new Error(message), undefined, envData);// No I18N\n\t\t}\n\t\t\n\t},\n\tsetCustomTags(key, value) {\n\t\tif(typeof murphy === 'undefined') return;\n\t\tglobalThis.Tags[key] = value\n\t\tmurphy.setTags(() => globalThis.Tags, true);\n\t}\n}\n\nexport async function digestValue(value) {\n\tif(!value) return;\n\tconst encoder = new TextEncoder();\n\tconst data = encoder.encode(value);\n\tconst hashBuffer = await crypto.subtle.digest('SHA-256', data);\n\tconst hashArray = Array.from(new Uint8Array(hashBuffer));\n\tconst hashHex = hashArray.map(b => b.toString(16).padStart(2, '0')).join('');\n\treturn hashHex;\n}\n\nexport const LogError = (error, message, errortag) => {\n\tif (typeof murphy === 'undefined') {\n\t\tLogger.error(errortag, message, error)\n\t} else {\n\t\tconst errorMeta   = {}\n\t\terrorMeta.type    = errortag\n\t\terrorMeta.message = JSON.stringify(message)\n\t\tmurphy.addCustomTracking(errorMeta)\n\t\tconst errorData = {\n\t\t\tpreventClientGrouping: true,\n\t\t\tcustomGrouping: {\n\t\t\t\tenable: true,\n\t\t\t\terrorGroupingHash: errortag\n\t\t\t}\n\t\t}\n\t\tmurphy.error(new Error(message), undefined, errorData)\n\t}\n}\n","import { getTemplate } from \"../../Utility/GetTemplate.js\";\n\nclass ToastersContainerClass {\n    constructor() {\n        const template             = getTemplate(\"toasterMsgContainer_template\"); // No I18N\n        this.toasterMsgContainer = template.querySelector(\"#toasterMsgContainer\");  // No I18N\n        this.toastersMap         = new Map(); // Map()<toastId, new Toaster()>;\n        this.isOpened            = false;\n        this.toastCount          = 0;\n    }\n\n    append(toasterDom) {\n\t\tthis.toasterMsgContainer.appendChild(toasterDom);\n\t}\n\n    prepend(toasterDom) {\n\t\tthis.toasterMsgContainer.prepend(toasterDom);\n\t}\n\n    getDom() {\n\t\treturn this.toasterMsgContainer;\n\t}\n\n    show() {\n\t\tthis.isOpened = true;\n\t\tdocument.body.append(this.toasterMsgContainer);\n\t}\n\n    remove() {\n\t\tthis.isOpened = false;\n\t\tthis.toasterMsgContainer.remove();\n\t}\n\n    addToasterToMap(toaster) {\n\t\tthis.toastersMap.has(this.toastCount) && this.toastersMap.get(this.toastCount).remove();\n\t\tconst self = this;\n\t\tconst timeOut = setTimeout(() => {\n\t\t\tself.append(toaster.getDom());\n\t\t\tself.toastCount++;\n\t\t\ttoaster.setToasterId(self.toastCount);\n\t\t\tself.toastersMap.set(self.toastCount, toaster);\n\t\t\t!self.isOpened && self.show();\n\t\t\tclearTimeout(timeOut);\n\t\t}, 300);\n\t}\n\n    deleteToasterFromMap(toastId) {\n\t\tthis.toastersMap.delete(toastId);\n\t\tif(this.toastersMap.size === 0){\n\t\t\tthis.remove();\n\t\t}\n\t}\n\n    getToasters() {\n\t\treturn this.toastersMap;\n\t}\n}\n\nexport const ToastersMsgContainer = new ToastersContainerClass();\n","import { ToastersMsgContainer as ToastersContainer } from \"../Components/Toaster/ToastersContainer.js\";\nimport { getTemplate } from \"../TemplatesForAll.js\";\n\nexport class ErrorDomToaster{\n\tprivate readonly dom : HTMLElement\n\tprivate readonly contentDom : HTMLElement\n\tprivate readonly closeButton : HTMLElement\n\tprivate toastId : Number | null; \n\n    constructor(dom: HTMLElement) {\n        const template: HTMLTemplateElement = getTemplate(\"errorToaster_template\") as HTMLTemplateElement; // No I18N\n\t\tthis.dom        = template.querySelector(\"#toaster_wrapper\") as HTMLElement;  // No I18N\n        this.contentDom = this.dom.querySelector('#msgContainer') as HTMLElement;  // No I18N\n\t\tthis.closeButton = this.dom.querySelector('#closeBtn') as HTMLElement;  // No I18N\n\n        this.toastId   = null;\n\n        this.contentDom.append(dom);\n\n\t\tthis.addListener()\n    }\n\n    getDom() {\n\t\treturn this.dom;\n\t}\n    \n    setToasterId(id: Number) {\n\t\tthis.toastId = id;\n\t}\n    \n    show() {\n\t\tToastersContainer.addToasterToMap(this); // dom added inside in this method\n\t\tthis.dom.style.animationName = \"slideIn\"; // No I18N\n\t\tsetTimeout(()=>{\n\t\t\tthis.remove();\n\t\t}, 5000);\n\t}\n\n\tremove() {\n\t\tthis.dom.addEventListener('animationend', ev => {\n\t\t\t\n\t\t\tthis.dom.remove();\n\t\t\tToastersContainer.deleteToasterFromMap(this.toastId);\n\t\t}, {once: true})\n\n\t\tthis.dom.style.animationName = \"slideOut\"; // No I18N\n\t}\n\n\tprivate addListener() {\n\t\tthis.closeButton.addEventListener('click', () => {\n\t\t\tthis.remove()\n\t\t})\n\t}\n\n}\n","import { ToastersMsgContainer as ToastersContainer } from \"../Components/Toaster/ToastersContainer.js\";\nimport { getTemplate } from \"../TemplatesForAll.js\";\n\nexport class ErrorToaster {\n\tprivate readonly dom : HTMLElement\n\tprivate readonly contentDom : HTMLElement\n\tprivate readonly closeButton : HTMLElement\n\tprivate toastId : Number | null; \n\n    constructor(msg: string) {\n        const template: HTMLTemplateElement = getTemplate(\"errorToaster_template\") as HTMLTemplateElement; // No I18N\n\t\tthis.dom        = template.querySelector(\"#toaster_wrapper\") as HTMLElement;  // No I18N\n        this.contentDom = this.dom.querySelector('#msgContainer') as HTMLElement;  // No I18N\n\t\tthis.closeButton = this.dom.querySelector('#closeBtn') as HTMLElement;  // No I18N\n\n        this.toastId   = null;\n\n        this.contentDom.textContent = msg;\n\n\t\tthis.addListener()\n    }\n\n    getDom() {\n\t\treturn this.dom;\n\t}\n    \n    setToasterId(id: Number) {\n\t\tthis.toastId = id;\n\t}\n    \n    show() {\n\t\tToastersContainer.addToasterToMap(this); // dom added inside in this method\n\t\tthis.dom.style.animationName = \"slideIn\"; // No I18N\n\t\tsetTimeout(()=>{\n\t\t\tthis.remove();\n\t\t}, 5000);\n\t}\n\n\tremove() {\n\t\tthis.dom.addEventListener('animationend', ev => {\n\t\t\t\n\t\t\tthis.dom.remove();\n\t\t\tToastersContainer.deleteToasterFromMap(this.toastId);\n\t\t}, {once: true})\n\n\t\tthis.dom.style.animationName = \"slideOut\"; // No I18N\n\t}\n\n\tprivate addListener() {\n\t\tthis.closeButton.addEventListener('click', () => {\n\t\t\tthis.remove()\n\t\t})\n\t}\n\n}\n","import { PricingUpgradeButton } from \"../Components/Button/Pricing/PricingUpgradeButton\";\nimport { MurphyUtility } from \"../DataStore/MurphyUtility.js\";\nimport { getDynamicMessage } from \"../Utility/Utility.js\";\nimport { ErrorDomToaster } from \"./ErrorDomToaster\";\nimport { ErrorToaster } from \"./ErrorToaster\";\n\nconst Constants        = Table.Constants;\nconst WCErrorConstants = Constants.WCErrorConstants;\nconst RESPONSE_KEYS    = Constants.RESPONSE_KEYS;\nconst ErrorMsg           = Constants.ErrorMsg;\nconst ERROR_KEY        = 'ERROR_KEY'\nconst EXCEPTION = \"Exception\";\nconst ERROR_CODE = \"ERROR_CODE\";\n\nexport function getStaticErrorMessage(errorcode) {\n\treturn  ErrorMsg[WCErrorConstants[errorcode]]\n}\n\nexport function getErrorMessage(errorKey) {\n\treturn ErrorMsg[errorKey];\n}\n\nexport function getDynamicErrorMessage(errorKey, dynamicContent) {\n\tconst msg = ErrorMsg[errorKey];\n\treturn getDynamicMessage(msg, dynamicContent);\n}\n\nexport function parseErrorResponse(response) {\n\tconst resp = Object.create({})\n\tconst baseResponse = response.RESPONSE[Object.keys(response.RESPONSE)[0]];\n\t\n\tif(baseResponse.hasOwnProperty(RESPONSE_KEYS.ACTION_INFO)) {\n\t\tconst actionInfo = baseResponse[RESPONSE_KEYS.ACTION_INFO];\n\t\tif(actionInfo.hasOwnProperty(RESPONSE_KEYS.ERROR_CODE)) {\n\t\t\tconst errorCode = actionInfo[RESPONSE_KEYS.ERROR_CODE]\n\t\t\tresp[ERROR_KEY] = WCErrorConstants[errorCode];\t\n\t\t}\n\t}\n\n\treturn resp\n}\nexport function parseClientFailureException(exceptionResponse) {\n\tconst exception = exceptionResponse[EXCEPTION];\n\tconst errorCode = exception[ERROR_CODE];\n\treturn errorCode;\n}\n\nexport function DisplayErrorToaster(errorCode, response) {\n\tconst errorMessage = getStaticErrorMessage(errorCode);\n\tconst errorKey = WCErrorConstants[errorCode];\n\tif(errorMessage){\n\t\tswitch(errorKey){\n\t\t\tcase \"ErrorHandling.CollaboratorLimitReached\":{\n\t\t\t\tconst dom = document.createElement('div');\n\t\t\t\tdom.textContent = errorMessage+\" \";\n\t\t\t\tconst pricingUpgradeButton = new PricingUpgradeButton();\n\t\t\t\tconst removeClassList = [\"ZT-lineBtn\", \"ZT-mRL10\", \"ZTP-smallBtn\"];\n\t\t\t\tfor(const className of removeClassList){\n\t\t\t\t\tpricingUpgradeButton.removeCSSClass(className);\n\t\t\t\t}\n\t\t\t\tpricingUpgradeButton.addCSSClass(\"ZTM-warningTextBtn\");\n\t\t\t\tpricingUpgradeButton.appendTo(dom);\n\t\t\t\tconst toaster = new ErrorDomToaster(dom);\n\t\t\t\ttoaster.show();\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tdefault:{\n\t\t\t\tconst toaster = new ErrorToaster(errorMessage);\n\t\t\t\ttoaster.show();\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t}else{\n\t\tMurphyUtility.throwCustomErrorMurphy(response, \"Error message not found\");\n\t}\n}","export const CONTENT_TYPE = 'Content-Type'; // No I18N\n","export const TEXT                = 'text/plain';                        // No I18N\nexport const HTML                = 'text/html';                         // No I18N\nexport const JAVASCRIPT          = 'application/javascript';            // No I18N\nexport const JSON                = 'application/json';                  // No I18N\nexport const OCTET_STREAM        = 'application/octet-stream';          // No I18N\nexport const MULTIPART_FORM_DATA = 'multipart/form-data';               // No I18N\nexport const GIF                 = 'image/gif';                         // No I18N\nexport const JPEG                = 'image/jpeg';                        // No I18N\nexport const PNG                 = 'image/png';                         // No I18N\nexport const SVG                 = 'image/svg+xml';                     // No I18N\nexport const WEBP                = 'image/webp';                        // No I18N\nexport const URL_ENCODED_FORM    = 'application/x-www-form-urlencoded'; // No I18N\n","const RESPONSE_HEADER_SPLITTER = /[\\r\\n]+/;\nconst DEFAULT_RETRY_COUNT = 3;\nconst RETRY_HEADERS = [400, 503];\nexport class AjaxRequest {\n    constructor() {\n        this.xmlHttpRequest = null;\n        this.eventListeners = {};\n        this.progressEventListeners = {};\n        this.isAsync = true;\n        this.method = METHOD.GET;\n        this.url = null;\n        this.headers = {};\n        this.formData = {}; // TODO: Try to remove this in favour for URLEncodedFormData & this.payload.\n        this.pureFormData = new FormData();\n        this.responseType = undefined;\n        this.responseHeaders = null; // This will be filled only after the response receives.\n        this.payload = null;\n        this.retryCount = DEFAULT_RETRY_COUNT;\n        this.withCredentials = false;\n    }\n\n    addEventListener(eventName, callback) {\n        switch (eventName) {\n            // case EVENTS.PROGRESS: \n            // case EVENTS.FINALLY : \n            case EVENTS.UPLOAD_PROGRESS: {\n                const progressEventList = this.progressEventListeners[eventName] || (this.progressEventListeners[eventName] = []);\n                progressEventList.push(callback);\n                break;\n            }\n            case EVENTS.SUCCESS:\n            case EVENTS.FAILURE:\n            case EVENTS.STATUS_OK:\n            case EVENTS.STATUS_ACCEPTED:\n            case EVENTS.COMPLETE: {\n                const eventList = this.eventListeners[eventName] || (this.eventListeners[eventName] = []);\n                eventList.push(callback);\n                break;\n            }\n            default:\n                throw ('Unknown Event'); // No I18N\n        }\n\n    }\n\n    abort() {\n        this.xmlHttpRequest.abort();\n    }\n\n    setAsync(value) {\n        this.isAsync = value;\n    }\n\n    setMethod(method) {\n        switch (method) {\n            case METHOD.GET:\n            case METHOD.POST:\n            case METHOD.HEAD:\n            case METHOD.PUT:\n            case METHOD.DELETE:\n                this.method = method;\n                break;\n            default:\n                throw ('Unknown HTTP method'); // No I18N\n        }\n    }\n\n    setUrl(url) {\n        this.url = url;\n    }\n\n    setPureFormData(key, value) {\n        this.pureFormData.append(key, value);\n    }\n\n    setPureFormDataAsPaylod() {\n        this.setPayload(this.pureFormData);\n    }\n\n    setFormData(param, value) {\n        this.formData[param] = value; // TODO: Create an instance of URLEncodedFormData and try to remove this.formData altogether.\n    }\n\n    send() {\n        const self = this;\n        this.xmlHttpRequest && (this.xmlHttpRequest.onreadystatechange = null)\n        globalThis.Table && globalThis.Table.Worker && globalThis.Table.Worker.Server && globalThis.Table.Worker.Server.X_PRESTIGE_CONNECTION_ID && this.setRequestHeader('X-PRESTIGE-CONNECTION-ID', globalThis.Table.Worker.Server.X_PRESTIGE_CONNECTION_ID);  // No I18N\n        this.xmlHttpRequest = new XMLHttpRequest();\n        this.xmlHttpRequest.open(this.method, this.url, this.isAsync);\n        this.xmlHttpRequest.withCredentials = this.withCredentials;\n        this.responseType && this.isAsync && (this.xmlHttpRequest.responseType = this.responseType);\n        this.progressEventListeners && loadProgressEventListeners(this);\n\n        this.isTransportErrorDispatched = false;\n        this.xmlHttpRequest.onreadystatechange = function (ev) { onReadyStateChange.call(self, this, ev); };\n        this.xmlHttpRequest.onerror   = function (ev) { onTransportError.call(self, this, ev); };\n        this.xmlHttpRequest.ontimeout = function (ev) { onTransportError.call(self, this, ev); };\n        loadRequestHeadersToXmlHttpRequest(this);\n        const encodedData = getEncodedFormData(this);\n        (this.method === METHOD.GET) ? this.xmlHttpRequest.send() : this.xmlHttpRequest.send(encodedData);\n    }\n\n    setRequestHeader(name, value) {\n        this.headers[name] = value;\n    }\n\n    setRetryCount(count){\n        this.retryCount = count;\n    }\n    \n    setCredentials(){\n        this.withCredentials = true;\n    }\n\n    setResponseType(value) {\n        switch (value) {\n            case 'arraybuffer':\n            case 'blob':\n            case 'document':\n            case 'json':\n            case 'text':\n            case '':\n                this.responseType = value;\n                break;\n            default:\n                throw ('UnknownXMLHttpRequestResponseType'); // No I18N\n        }\n    }\n\n    getAllResponseHeaders() {\n        if (this.responseHeaders === null) {\n            const headers = this.xmlHttpRequest.getAllResponseHeaders();\n            const arr = headers.trim().split(RESPONSE_HEADER_SPLITTER);\n\n            const headerMap = {};\n            for (let i = 0; i < arr.length; i++) {\n                const parts = arr[i].split(': ');\n                const header = parts.shift();\n                const value = parts.join(': ');\n                headerMap[header.toLowerCase()] = value; // Edge doesn't return header names in all lowercase.\n            }\n            this.responseHeaders = headerMap;\n        }\n        return this.responseHeaders;\n    }\n\n    setPayload(payload) {\n        this.payload = payload;\n    }\n}\n\nexport const METHOD = {\n    GET: 'GET',    // No I18N\n    POST: 'POST',   // No I18N\n    HEAD: 'HEAD',   // No I18N\n    PUT: 'PUT',    // No I18N\n    DELETE: 'DELETE'  // No I18N\n}\n\nAjaxRequest.METHOD = METHOD;\n\nexport const EVENTS = {\n    SUCCESS: 'success',         // No I18N\n    FAILURE: 'failure',         // No I18N\n    COMPLETE: 'complete',        // No I18N\n    FINALLY: 'finally',         // No I18N\n    PROGRESS: 'progress',        // No I18N\n    UPLOAD_PROGRESS: 'upload_progress', // No I18N\n    STATUS_OK: 'status_ok',       // No I18N\n    STATUS_ACCEPTED: 'status_accepted'  // No I18N\n}\n\nAjaxRequest.EVENTS = EVENTS;\n\nfunction onReadyStateChange(context, ev) {\n    const xmlHttpRequest = ev.target || this.xmlHttpRequest;\n    const readystate = xmlHttpRequest.readyState;\n    const status = xmlHttpRequest.status;\n    const isSuccess = (status < 399);\n\n    const shouldRetry = RETRY_HEADERS.includes(xmlHttpRequest.status) && (this.retryCount > 0);\n\n    if (shouldRetry) {\n        this.retryCount--;\n        this.send();\n        return\n    }\n\n    switch (readystate) {\n        case XMLHttpRequest.OPENED:\n            break;\n        case XMLHttpRequest.HEADERS_RECEIVED:\n            break;\n        case XMLHttpRequest.LOADING:\n            break;\n        case XMLHttpRequest.DONE: {\n            const response = xmlHttpRequest.response;\n            // TODO: Remove ev from dispatchEventList passing arguments once ev usage removed from all the callback func and made to use only AjaxRequestCompleteEvent object\n            this.eventListeners[EVENTS.SUCCESS] && status >= 200 && status <= 299 && dispatchEventList(this.eventListeners[EVENTS.SUCCESS], context, ev, new AjaxRequestCompleteEvent(isSuccess, status, xmlHttpRequest, response));\n            this.eventListeners[EVENTS.STATUS_OK] && status === 200 && dispatchEventList(this.eventListeners[EVENTS.STATUS_OK], context, ev, new AjaxRequestCompleteEvent(isSuccess, status, xmlHttpRequest, response));\n            this.eventListeners[EVENTS.STATUS_ACCEPTED] && status === 202 && dispatchEventList(this.eventListeners[EVENTS.STATUS_ACCEPTED], context, ev, new AjaxRequestCompleteEvent(isSuccess, status, xmlHttpRequest, response));\n            this.eventListeners[EVENTS.FAILURE] && status >= 400 && status <= 599 && dispatchEventList(this.eventListeners[EVENTS.FAILURE], context, ev, new AjaxRequestCompleteEvent(isSuccess, status, xmlHttpRequest, response));\n            this.eventListeners[EVENTS.COMPLETE] && dispatchEventList(this.eventListeners[EVENTS.COMPLETE], context, ev, new AjaxRequestCompleteEvent(isSuccess, status, xmlHttpRequest, response));\n            break;\n        }\n    }\n}\n\nfunction onTransportError(context, ev) {\n    const xmlHttpRequest = ev.target || this.xmlHttpRequest;\n    const status = xmlHttpRequest.status; \n    if (this.isTransportErrorDispatched) { return; }\n    this.isTransportErrorDispatched = true;\n    this.eventListeners[EVENTS.FAILURE] && dispatchEventList(this.eventListeners[EVENTS.FAILURE], context, ev, new AjaxRequestCompleteEvent(false, status, xmlHttpRequest, xmlHttpRequest.response));\n}\n\nfunction dispatchEventList(eventList, context, ev, ajaxRequestCompleteEvent) {\n    for (let i = 0; i < eventList.length; i++) {\n        eventList[i].call(context, ev, ajaxRequestCompleteEvent);\n    }\n}\n\nfunction loadProgressEventListeners({progressEventListeners, xmlHttpRequest}) {\n    for (const eventName in progressEventListeners) {\n        const eventList = progressEventListeners[eventName];\n        for (let i = 0; i < eventList.length; i++) {\n            xmlHttpRequest.upload.addEventListener('progress', eventList[i]); //No I18N\n        }\n    }\n}\n\nfunction loadRequestHeadersToXmlHttpRequest({headers, xmlHttpRequest}) {\n    for (const headerName in headers) {\n        const headerValue = headers[headerName];\n        xmlHttpRequest.setRequestHeader(headerName, headerValue);\n    }\n}\n\nfunction getEncodedFormData({payload, formData}) {\n    var encodedFormData = '';\n    if (payload instanceof FormData) {\n        encodedFormData = payload;\n    } else if (payload instanceof URLEncodedFormData) {\n        const urlEncodedFormData = payload;\n        var encodedFormData = '';\n        const keys = urlEncodedFormData.keys();\n\n        for (let i = 0; i < keys.length; i++) {\n            const key = keys[i];\n            var value = urlEncodedFormData.get(key);\n            var encodedFormPair = encodeURIComponent(key).concat('=').concat(encodeURIComponent(value));\n            encodedFormData = (!encodedFormData.length) ? encodedFormPair : encodedFormData.concat('&').concat(encodedFormPair);\n        }\n        return encodedFormData;\n    }\n    for (const param in formData) {\n        var value = formData[param];\n        var encodedFormPair = encodeURIComponent(param).concat('=').concat(encodeURIComponent(value));\n        encodedFormData = (!encodedFormData.length) ? encodedFormPair : encodedFormData.concat('&').concat(encodedFormPair);\n    }\n    return encodedFormData;\n}\n\nexport class URLEncodedFormData {\n    constructor() {\n        this.params = {};\n    }\n\n    append(key, value) {\n        this.params[key] = value; // TODO: Print waring here for duplicate keys and remove them.\n    }\n\n    keys() { // TODO: It should an iterator.\n        return Object.keys(this.params);\n    }\n\n    get(key) {\n        const result = this.params[key];\n        return (result === undefined) ? null : result;\n    }\n}\n\nfunction AjaxRequestCompleteEvent(isSuccess, responseCode, xmlHttpRequest, response) {\n    this.isSuccess = isSuccess\n    this.responseCode = responseCode;\n    this.xmlHttpRequest = xmlHttpRequest;\n    this.response = response;\n    Object.freeze(this);\n}\n","\nexport function getCSRFCookie() {\n\treturn readCookie('ztcookcsr'); // No I18N\n}\n\nfunction readCookie(name) {\n\tconst nameEQ = `${name}=`;\n\tconst cookieAry = document.cookie.split(';');\n\n\tfor (let i = 0; i < cookieAry.length; i++) {\n\t\tconst cookie = cookieAry[i].trim();\n\t\tif (cookie.indexOf(nameEQ) === 0) {\n\t\t\treturn cookie.substring(nameEQ.length);\n\t\t}\n\t}\n}\n","import { TabID } from \"../../../Types\";\nimport { ActiveCell } from \"./ActiveCell\";\n\nexport class UserPresence {\n\n\tprivate map: Map <TabID, ActiveCell>\n\n\tconstructor() {\n\t\tthis.map = new Map()\n\t}\n\n\tgetActiveCell(tabID: TabID) {\n\t\treturn this.map.get(tabID)\n\t}\n\n\tsetActiveCell(tabID: TabID, activeCell: ActiveCell) {\n\t\tthis.map.set(tabID, activeCell)\n\t}\n\n\tremoveActiveCell(tabID: TabID) {\n\t\treturn this.map.delete(tabID)\n\t}\n\n\tforEachActiveCell(callback: (activeCell: ActiveCell, tabID: TabID) => void) {\n\t\t// this.map.forEach(callback) // TODO: Change it to this function instead of below method after TS migration\n\t\tthis.map.forEach((activeCell, tabID) => callback(activeCell, tabID))\n\t}\n\n\tclearAll() {\n\t\tthis.map = new Map();\n\t}\n}\n","let pcounter = 0\n\n/**\n * IMPORTANT: Do not remove anything. Only add it before DUMMY entry.\n */\nexport const ProfileConstants = {\n\tOPEN_EDIT_FIELD_DIALOG_AFTER_INSERT: pcounter++,\n\n\t// ADD ENTRIES ABOVE THIS LINE.\n\tDUMMY: pcounter++\n}\n","const STORAGE_KEY = \"com.zoho.tables.userprofile\" //No I18N\nconst storage     = localStorage\n\nexport class UserProfileStorage {\n\n\tconstructor() {\n\t\tthis.data = storage.getItem(STORAGE_KEY) ? JSON.parse(storage.getItem(STORAGE_KEY)) : {}\n\t}\n\n\tset(key, value) {\n\t\tthis.data[key] = value\n\t\tstorage.setItem(STORAGE_KEY, JSON.stringify(this.data))\n\t}\n\n\tget(key) {\n\t\treturn this.data[key]\n\t}\n\t\n\tclear() {\n\t\tthis.data = {}\n\t\tstorage.clear()\n\t}\n}\n","\n// const Table = globalThis.Table;\n// const Classes = Table.Classes;\n// const Constants = Table.Constants;\n// const UserProfileStorage = Classes.UserProfileStorage;\n\nimport { UserPresence } from \"./DataStore/DS/Storage/UserPresence\";\nimport { MurphyUtility } from \"./DataStore/MurphyUtility.js\";\nimport { ProfileConstants } from \"./ProfileConstants.js\";\nimport { State } from \"./State/LayoutState.js\";\nimport { UserProfileStorage } from \"./UserProfileStorage.js\";\n\nconst rootColors = [\"5883DA\", \"E5575B\", \"A43FBC\", \"5B9C27\", \"11A9CC\", \"F7900C\", \"BD4F90\", \"2B799C\", \"AC3135\", \"5F5F5F\", \"0D6856\", \"9B8C2B\", \"3FD0B4\", \"F2B405\", \"4B10AC\", \"65765A\", \"9258F1\", \"795011\", \"584A71\", \"EF3964\"]; //NO I18N\n\nclass TabProfile_ {\n\tconstructor() {\n\t\tthis.ID                  = null;\n\t\tthis.IDUpdateSubscribers = [];\n\t\tthis.queueRemainingCount = 0;\n\t\tthis.isTabInFocus        = true;\n\t\t// this.baseIDs = [resourceID]; // TODO: Change it\n\n\t\t// User Presence related data\n\t\tthis.tabToColorCache       = new Map()                                             //<tabID, color>\n\t\tthis.userPresenceData      = UserPresence && new UserPresence()\n\t\tthis._isGridViewActive     = false\n\t\tthis.nextColorIndex        = 0\n\t\tthis.userProfileStorage    = new UserProfileStorage();\n\t\tthis.oneMinTimer\t\t   = null;\n\t\tthis.lockedThroughTimer\t   = false;\n\n\t\tinitUserProfile.call(this)\n\t}\n\n\tgetLockedThroughTimer() {\n\t\treturn this.lockedThroughTimer;\n\t}\n\n\tsetLockedthroughTimer(bool) {\n\t\tthis.lockedThroughTimer = bool;\n\t}\n\n\taddTimer(callback) {\n\t\tclearTimeout(this.oneMinTimer);\n\t\tthis.oneMinTimer = setTimeout(() => {\n\t\t\tcallback && callback()\n\t\t}, 60000)\n\t}\n\n\tclearTimer() {\n\t\tclearTimeout(this.oneMinTimer);\n\t}\n\n\tsetID(ID) {\n\t\tMurphyUtility.setCustomTags('tabid', ID);\n\t\t      this.ID     = ID;\n\t\tconst event       = new TabProfileIDUpdateEvent(this, this.ID);\n\t\tconst subscribers = this.IDUpdateSubscribers;\n\t\tfor (let i = 0; i < subscribers.length; i++) {\n\t\t\tsubscribers[i](event);\n\t\t}\n\t}\n\n\tupdateID(ID) {\n\t\tthis.ID     = ID;\n\t}\n\n\tclearTabForReregister() {\n\t\tthis.userPresenceData      = UserPresence && new UserPresence()\n\t\tthis.tabToColorCache       = new Map()    \n\t\tthis.nextColorIndex        = 0\n\t}\n\n\tgetID() {\n\t\treturn this.ID;\n\t}\n\n\tsetQueueRemainingCount(count) {\n\t\tthis.queueRemainingCount = count;\n\t}\n\n\tgetQueueRemainingCount() {\n\t\treturn this.queueRemainingCount;\n\t}\n\n\tsubscribeToIDUpdate(callback) {\n\t\tthis.IDUpdateSubscribers.push(callback);\n\t}\n\n\tonQueryFromWorker(ev) {\n\t\tconst message = ev.message;\n\t\tswitch (message.type) {\n\t\t\tcase 'getActiveViewQuery':{\n\t\t\t\tconst options      = message.options;\n\t\t\t\tconst baseID       = options.BASE_ID;\n\t\t\t\tconst tableID      = options.TABLE_ID;\n\t\t\t\tconst activeViewID = State.getBaseState(baseID).getTableState(tableID).getActiveViewID();\n\t\t\t\treturn activeViewID;\n\t\t\t}\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tgetColorForTab(tabID) {\n\t\tlet color = this.tabToColorCache.get(tabID);\n\t\tif (!color) {\n\t\t\t// color = '#' + Math.floor(Math.random()*0xFFFFFF).toString(16); // Generates a random color\n\t\t\tcolor = this.generateRandomColor()\n\t\t\tthis.tabToColorCache.set(tabID, color)\n\t\t}\n\t\treturn color\n\t}\n\n\tgetUserPresenceData() {\n\t\treturn this.userPresenceData\n\t}\n\n\tsetGridView(bool) {\n\t\tthis._isGridViewActive = bool\n\t}\n\n\tisGridViewActive() {\n\t\treturn this._isGridViewActive\n\t}\n\n\tgenerateRandomColor() {\n\t\treturn `#${rootColors[this.nextColorIndex++ % rootColors.length]}`;\n\t}\n\n\tgetUserProfileValue(key) {\n\t\treturn this.userProfileStorage.get(key)\n\t}\n\n\tsetUserProfileValue(key, value) {\n\t\treturn this.userProfileStorage.set(key, value)\n\t}\n}\n\nfunction initUserProfile() {\n\tconst userProfileStorage = this.userProfileStorage\n\tsetDefaultUserProfileValueIfUndefined(userProfileStorage, ProfileConstants.OPEN_EDIT_FIELD_DIALOG_AFTER_INSERT, true)\n}\n\nfunction setDefaultUserProfileValueIfUndefined(userProfileStorage, key, defaultValue) {\n\tif (userProfileStorage.get(key) === undefined) {\n\t\tuserProfileStorage.set(key, defaultValue)\n\t}\n}\n\nclass TabProfileIDUpdateEvent {\n    constructor(target, value) {\n        this.target = target;\n        this.value = value;\n    }\n}\n\nexport const TabProfile = new TabProfile_();\n","import { CONTENT_TYPE } from \"../Constants/HttpConstants.js\";\nimport { URL_ENCODED_FORM } from \"../Constants/Mime.js\";\nimport { TabProfile } from \"../TabProfile.js\";\nimport { AjaxRequest, METHOD } from \"./AjaxRequest.js\";\nimport { getCSRFCookie } from \"./Cookie.js\";\n\nconst UTF_8_URL_ENCODED = `${URL_ENCODED_FORM};charset=UTF-8`;\n\nexport class QuickAction {\n    constructor(rid) {\n        this.rid          = rid;\n        this.ajaxRequest  = new AjaxRequest();\n        this.formData     = {};\n        this.responseType = null;\n    }\n\n    setFormData(param, value) {\n\t\tthis.formData[param] = value;\n\t}\n\n    setParams(paramArray) {\n\t\tconst params = paramArray.params;\n\t\tconst values = paramArray.values;\n\t\tfor (let i = 0; i < params.length; i++) {\n\t\t\tthis.formData[params[i]] = values[i];\n\t\t}\n\t}\n\n    send() {\n\t\tconst tabID = getTabID();\n\t\tfor (const param in this.formData) {\n\t\t\tconst value = this.formData[param];\n\t\t\tthis.ajaxRequest.setFormData(param, value);\n\t\t}\n\t\tthis.ajaxRequest.setMethod(METHOD.POST);\n\t\tthis.ajaxRequest.setFormData('ztreqcsr', getCSRFCookie()); // No I18N\n\t\tthis.ajaxRequest.setFormData('rid', this.rid); // No I18N\n\t\ttabID && this.ajaxRequest.setFormData('tabID', tabID); // No I18N\n\t\tthis.ajaxRequest.setRequestHeader(CONTENT_TYPE, UTF_8_URL_ENCODED);\n\t\tthis.ajaxRequest.setUrl(`/h/a/${this.rid}`);\n\t\tthis.responseType ? this.ajaxRequest.setResponseType(this.responseType) : this.ajaxRequest.setResponseType('json'); // No I18N\n\t\tthis.ajaxRequest.send();\n\t}\n\n    sendAsBeacon() {\n\t\tconst tabID = getTabID();\n\t\tthis.setFormData('ztreqcsr', getCSRFCookie()); // No I18N\n\t\tthis.setFormData('rid', this.rid); // No I18N\n\t\ttabID && this.setFormData('tabID', tabID); // No I18N\n\t\tconst blob = new Blob([getEncodedFormData(this)], { type: UTF_8_URL_ENCODED });\n\t\tnavigator.sendBeacon(`/h/a/${this.rid}`, blob);\n\t}\n\n    addEventListener(eventName, callback) {\n\t\tthis.ajaxRequest.addEventListener(eventName, callback);\n\t}\n\n    abort() {\n\t\tthis.ajaxRequest.abort();\n\t}\n\n    setAsync(value) {\n\t\treturn this.ajaxRequest.setAsync(value);\n\t}\n\n    setResponseType(value) {\n\t\tthis.responseType = value;\n\t}\n\n    getAllResponseHeaders() {\n\t\treturn this.ajaxRequest.getAllResponseHeaders();\n\t}\n}\n\nfunction getEncodedFormData({formData}) {\n\tlet encodedFormData = '';\n\tfor (const param in formData) {\n\t\tconst value = formData[param];\n\t\tconst encodedFormPair = encodeURIComponent(param).concat('=').concat(encodeURIComponent(value));\n\t\tencodedFormData = (!encodedFormData.length) ? encodedFormPair : encodedFormData.concat('&').concat(encodedFormPair);\n\t}\n\treturn encodedFormData;\n}\n\nfunction getTabID() {\n\treturn TabProfile.getID();\n}\n","import { CONTENT_TYPE } from \"../../Constants/HttpConstants.js\";\nimport { URL_ENCODED_FORM } from \"../../Constants/Mime.js\";\nimport { AjaxRequest } from \"../../Utility/AjaxRequest.js\";\nimport { getCSRFCookie } from \"../../Utility/Cookie.js\";\nimport { QuickAction } from \"../../Utility/QuickAction.js\";\n\nconst UTF_8_URL_ENCODED = `${URL_ENCODED_FORM};charset=UTF-8`;\n\nconst URL = location.href;\n\nexport class SnapPublishPageQuickAction extends QuickAction {\n\tsend(url) {\n\t\tfor (const param in this.formData) {\n\t\t\tconst value = this.formData[param];\n\t\t\tthis.ajaxRequest.setFormData(param, value);\n\t\t}\n\t\tthis.ajaxRequest.setMethod(AjaxRequest.METHOD.POST);\n\t\tthis.ajaxRequest.setFormData('ztreqcsr', getCSRFCookie()); // No I18N\n\t\tthis.ajaxRequest.setRequestHeader(CONTENT_TYPE, UTF_8_URL_ENCODED);\n\t\turl ? this.ajaxRequest.setUrl(url) : this.ajaxRequest.setUrl(URL); \n\t\tthis.responseType ? this.ajaxRequest.setResponseType(this.responseType) : this.ajaxRequest.setResponseType('json'); // No I18N\n\t\tthis.ajaxRequest.send();\n\t}\n}","import { DisplayErrorToaster } from \"../ErrorHandling/Utility.js\";\nimport { SnapPublishPageQuickAction } from \"../Snap/PublishPage/SnapPublishPageQuickAction.js\";\n\nexport async function FetchPublishSnapAction(snapURL, password) {\n\treturn new Promise((resolve, reject) => {\n\t\tconst action = new SnapPublishPageQuickAction();\n\t\tconst params= ['url']; //No I18N\n\t\tconst values= [snapURL];\n\n\t\tif(password) {\n\t\t\tparams.push('password'); //No I18N\n\t\t\tvalues.push(password); //No I18N\n\t\t}\n\t\taction.setParams({\n\t\t\tparams,\n\t\t\tvalues\n\t\t});\n\t\n\t\taction.addEventListener('success', ({target}, {xmlHttpRequest}) => { //No I18N\n\t\t\tconst response    = xmlHttpRequest.response || target.response;\n\t\t\tresolve(response);\n\t\t\t// parse(response);\n\t\t});\n\t\n\t\taction.addEventListener('failure', function({target}, {xmlHttpRequest}) { //No I18N\n\t\t\tconst response    = xmlHttpRequest.response || target.response;\n\t\t\tconst errorCode = responseObj.ERROR_CODE;\n\t\t\tDisplayErrorToaster(errorCode);\n\t\t\treject();\n\t\t});\n\n\t\tconst requestURL = snapURL.indexOf(\"/publish/\") != -1 ? \"/publicFetchReportMeta.do\" : \"/fetchReportMeta.do\"; // NO I18N\n\t\taction.send(requestURL);\n\t})\n}\n","export const SNAP_PASSWORD = 'PASSWORD';  // No I18N\nexport const SUCCESS  = 'success';   // No I18N\nexport const FAILURE  = 'failure';   // No I18N\n","import { CardID, SnapTextEditorResponse } from \"../Types\"\nimport { AggregationPropertiesDataProvider } from \"./BuilderPage/Wiz/Components/Aggregation/AggregationPropertiesDataProvider\"\nimport { AggregationRenderPropertiesDataProvider } from \"./BuilderPage/Wiz/Components/Aggregation/AggregationRenderPropertiesDataProvider\"\nimport { ChartPropertiesDataProvider } from \"./BuilderPage/Wiz/Components/Chart/ChartPropertiesDataProvider\"\nimport { ChartRenderPropertiesDataProvider } from \"./BuilderPage/Wiz/Components/Chart/ChartRenderPropertiesDataProvider\"\nimport { GridPropertyProps, GridRenderProps } from \"./BuilderPage/Wiz/Components/Grid/GridType\"\nimport { PositionType } from \"./BuilderPage/Wiz/LayoutBuilder/LayoutBuilderTypes\"\n\nexport type CardAffectedData = {[x: CardID]: PositionType}\n\nexport enum ComponentType {\n\tAGGREGATION = 0,\n\tCHART = 1,\n\tGRID = 2,\n\tTEXT = 3,\n}\n\nexport type ComponentRenderProps = ChartRenderPropertiesDataProvider | AggregationRenderPropertiesDataProvider | SnapTextEditorResponse | GridRenderProps\nexport type ComponentPropertiesProps = ChartPropertiesDataProvider | AggregationPropertiesDataProvider | SnapTextEditorResponse | GridPropertyProps\n\nexport type PromiseWithSafe<Result, Error = any> = Promise<[Result | null, Error | null]>\nexport type RequestPromise = Promise<{response: any, qaid: number}>\n\nexport type SnapIDType = string\n","import { WDUtil } from \"../../../Utility/WDUtil.js\";\n\n/*$Id$*/\nexport class DSAttachmentField{\n    constructor(resourceId, extension) {\n        this.resourceId         = resourceId;\n        this.fileExtension      = extension;\n        init.call(this);\n    }\n\n    setFileName(name){\n        this.fileName = name;\n    }\n\n    getFileName(){\n        return this.fileName;\n    }\n\n    setFileExtension(extension){\n        this.fileExtension = extension;\n    }\n\n    getFileExtension(){\n        return this.fileExtension;\n    }\n\n    getImgSrc(){\n        return this.imgSrc;\n    }\n\n    getResourceId(){\n        return this.resourceId;\n    }\n\n    getDownloadURL(){\n        return this.downloadURL;\n    }\n\n    getWorkdriveDomain(){\n        return this.workdriveDomain;\n    }\n\n    getAttachmentCopy() {\n        return `${this.fileName} (${this.imgSrc})`; //No I18N\n    }\n};\n\nfunction init(){\n    this.imgSrc             = WDUtil.getPreviewURL() && (WDUtil.getPreviewURL() + '/' + this.resourceId + '?size=l'); //No I18N\n    this.downloadURL        = WDUtil.getDownloadURL() && (WDUtil.getDownloadURL() + '/' + this.resourceId); //No I18N\n    this.workdriveDomain    = WDUtil.getWDDomain();\n}\n","\nexport class User {\n    constructor() {\n        this.ID            = null\n        this.name          = null\n        this.type          = null\n        this.emailID       = null\n        this.level         = null\n        this.permission    = null\n        this.module        = null\n        this.workspaceRole = null\n        this.isCollaboratorEnabled = false\n        this.isEditableColllaborator = true;\n        this.meta          = {}\n    }\n\n    setID(userID) {\n        this.ID = userID;\n    }\n\n    setName(name) {\n        this.name = name;\n    }\n\n    setEmailID(emailID) {\n        this.emailID = emailID;\n    }\n\n    setPermission(permission) {\n        this.permission = permission;\n    }\n\n    enable() {\n        this.isCollaboratorEnabled = true\n    }\n\n    disable() {\n        this.isCollaboratorEnabled = false\n    }\n\n    getID() {\n        return this.ID;\n    }\n\n    getName() {\n        return this.name;\n    }\n\n    getEmailID() {\n        return this.emailID;\n    }\n\n    getPermission() {\n        return this.permission;\n    }\n\n    getModule() {\n        return this.module;\n    }\n\n    setModule(module) {\n        this.module = module\n    }\n\n    getIsEnabled(){\n        return this.isCollaboratorEnabled\n    }\n\n    enableEditable() {\n        this.isEditableColllaborator = true;\n    }\n\n    disableEditable() {\n        this.isEditableColllaborator = false;\n    }\n\n    getEditableCollaborator() {\n        return this.isEditableColllaborator\n    }\n\n    setMetaIDs(tableID, viewIDs) {\n        this.meta[tableID] = viewIDs;\n    }\n\n    updateMetaViewID(tableID, viewID) {\n        this.meta[tableID].push(viewID);\n    }\n\n    deleteMetaViewID(tableID, viewID) {\n        const viewIDs = this.meta[tableID];\n        const viewIDIndex = viewIDs.indexOf(viewID);\n        viewIDIndex!==-1 && viewIDs.splice(viewIDIndex, 1)\n        this.meta[tableID] = viewIDs;\n    }\n\n    deleteMetaTableID(tableID) {\n        delete this.meta[tableID];\n    }\n\n    resetMeta() {\n        this.meta = {}\n    }\n\n    getMeta() {\n        return this.meta;\n    }\n\n    setMeta(meta) {\n        this.meta = meta\n    }\n}\n","\nimport { User } from \"./DSCollaboratorUser.js\";\n\nconst FILE_URL       = '/file?t=user&fs=thumb&ID=';  //NO I18N\nconst ANONYMOUS_USER = \"Anonymous User\";  //NO I18N\n\nexport class Collaborator {\n    constructor(getBaseColor, getImageServerURL) {\n            this.getBaseColor      = getBaseColor;\n            this.getImageServerURL = getImageServerURL;\n            this.activeUsers       = {};\n            this.inactiveUsers     = {};\n            this.removedUsers      = {};\n            this.anonymousUsers    = {};\n            this.systemUsers       = new Map()\n        }\n\n    reset() {\n        this.activeUsers   = {};\n        this.inactiveUsers = {};\n        this.removedUsers  = {};\n        this.anonymousUsers= {};\n    }\n\n    addActiveUser( ID, userID, userName, userEmailID, userPermission, userModuleType, userIsEnabled, userIsEditable) {\n        const user = new User();\n        this.activeUsers[ID] = user;\n\n        user.setID(userID);\n        user.setName(userName);\n        user.setEmailID(userEmailID);\n        user.setPermission(userPermission);\n        user.setModule(userModuleType);\n        userIsEnabled ? user.enable() : user.disable()\n        userIsEditable ? user.enableEditable(): user.disableEditable();\n    }\n\n    activeUserLoadMetaIDs(ID, tableID, viewID) {\n        const user = this.activeUsers[ID];\n        user.setMetaIDs(tableID, viewID);\n    }\n\n    activeUserViewMetaUpdate(ID, tableID, viewIDs) {\n        const user = this.activeUsers[ID];\n        viewIDs.forEach((viewID) => {\n            user.updateMetaViewID(tableID, viewID);\n        })\n    }\n\n    activeUserViewMetaDelete(ID, tableID, viewID) {\n        const user = this.activeUsers[ID];\n        user.deleteMetaViewID(tableID, viewID);\n    }\n\n    activeUserTableMetaDelete(ID, tableID) {\n        const user = this.activeUsers[ID];\n        user.deleteMetaTableID(tableID);\n    }\n\n    activeUserMetaReset(ID) {\n        const user = this.activeUsers[ID];\n        user.resetMeta();\n    }\n\n    getActiveUserMeta(ID) {\n        const user = this.activeUsers[ID];\n        return user.getMeta();\n    }\n\n    setActiveUserMeta(ID, meta) {\n        const user = this.activeUsers[ID];\n        user.setMeta(meta);\n    }\n\n    addInactiveUser(ID, userID, userName, userEmailID, userPermission, userModuleType, userIsEnabled, userIsEditable) {\n        const user = new User();\n        this.inactiveUsers[ID] = user;\n\n        user.setID(userID);\n        user.setName(userName);\n        user.setEmailID(userEmailID);\n        user.setPermission(userPermission);\n        user.setModule(userModuleType);\n        userIsEnabled ? user.enable() : user.disable()\n        userIsEditable ? user.enableEditable(): user.disableEditable();\n    }\n\n    inactiveUserLoadMetaIDs(ID, tableID, viewID) {\n        const user = this.inactiveUsers[ID];\n        user.setMetaIDs(tableID, viewID);\n    }\n\n    inactiveUserViewMetaUpdate(ID, tableID, viewIDs) {\n        const user = this.inactiveUsers[ID];\n        viewIDs.forEach((viewID) => {\n            user.updateMetaViewID(tableID, viewID);\n        })\n    }\n\n    inactiveUserViewMetaDelete(ID, tableID, viewID) {\n        const user = this.inactiveUsers[ID];\n        user.deleteMetaViewID(tableID, viewID);\n    }\n\n    inactiveUserTableMetaDelete(ID, tableID) {\n        const user = this.inactiveUsers[ID];\n        user.deleteMetaTableID(tableID);\n    }\n\n    inactiveUserMetaReset(ID) {\n        const user = this.inactiveUsers[ID];\n        user.resetMeta();\n    }\n\n    getInactiveUserMeta(ID) {\n        const user = this.inactiveUsers[ID];\n        return user.getMeta();\n    }\n\n    setInactiveUserMeta(ID, meta) {\n        const user = this.inactiveUsers[ID];\n        user.setMeta(meta);\n    }\n\n    addRemovedUser(ID, userID, userName, userEmailID, userPermission) {\n        const user = new User();\n        this.removedUsers[ID] = user;\n\n        user.setID(userID);\n        user.setName(userName);\n        user.setEmailID(userEmailID);\n        user.setPermission(userPermission);\n    }\n\n    addAnonymousUser(ID, userID, userName, userEmailID, userPermission, userModuleType) {\n        const user = new User();\n        this.anonymousUsers[ID] = user;\n\n        user.setID(userID);\n        user.setName(userName);\n        user.setEmailID(userEmailID);\n        user.setPermission(userPermission);\n        user.setModule(userModuleType);\n    }\n\n    addSystemUser(collaboratorID, userID, userName, userEmailID, userPermission, userModuleType) {\n        const user = new User()\n\n        user.setID(userID)\n        user.setName(userName)\n        user.setEmailID(userEmailID)\n        user.setPermission(userPermission)\n        user.setModule(userModuleType)\n\n        this.systemUsers.set(collaboratorID, user)\n    }\n\n    updateActiveUser(ID, userID, userName, userEmailID, userPermission, userModuleType, userIsEditable) {\n        const user = this.activeUsers[ID];\n\n        user.setID(userID);\n        user.setName(userName);\n        user.setEmailID(userEmailID);\n        user.setPermission(userPermission);\n        user.setModule(userModuleType);\n        userIsEditable ? user.enableEditable(): user.disableEditable();\n    }\n\n    updateInactiveUser(ID, userID, userName, userEmailID, userPermission, userModuleType, userIsEditable) {\n        const user = this.inactiveUsers[ID];\n\n        user.setID(userID);\n        user.setName(userName);\n        user.setEmailID(userEmailID);\n        user.setPermission(userPermission);\n        user.setModule(userModuleType);\n        userIsEditable ? user.enableEditable(): user.disableEditable();\n    }\n\n    updateRemovedUser(ID, userID, userName, userType, userEmailID, userLevel, userPermission, userWSRole) {\n        const user = this.removedUsers[ID];\n\n        user.setID(userID);\n        user.setName(userName);\n        user.setEmailID(userEmailID);\n        user.setPermission(userPermission);\n    }\n\n    updateAnonymousUser(ID, userID, userName, userEmailID, userLevel) {\n        const user = this.inactiveUsers[ID];\n\n        user.setID(userID);\n        user.setName(userName);\n        user.setEmailID(userEmailID);\n        user.setLevel(userLevel);\n    }\n\n    updateSystemUser(collaboratorID, userID, userName, userEmailID, userLevel) {\n        const user = this.systemUsers.get(collaboratorID)\n        user.setID(userID)\n        user.setName(userName)\n        user.setEmailID(userEmailID)\n        user.setLevel(userLevel)\n    }\n\n    removeActiveUser(userID) {\n        delete this.activeUsers[userID];\n    }\n\n    removeInactiveUser(userID) {\n        delete this.inactiveUsers[userID];\n    }\n\n    removeRemovedUser(userID) {\n        delete this.removedUsers[userID];\n    }\n\n    removeAnonymousUser(userID) {\n        delete this.anonymousUsers[userID];\n    }\n\n    removeSystemUser(collaboratorID) {\n        this.systemUsers.delete(collaboratorID)\n    }\n\n    getColor() {\n        return this.getBaseColor();\n    }\n\n    getActiveUserID(id) {\n        return this.activeUsers[id].getID();\n    }\n\n    getActiveUserImageURL(userID) {\n        const user = this.activeUsers[userID];\n        const ID   = user.getID();\n\n        return this.getImageServerURL() + FILE_URL + ID;\n    }\n\n    getInactiveUserImageURL(userID) {\n        const user = this.inactiveUsers[userID];\n        const ID   = user.getID();\n        \n        return this.getImageServerURL() + FILE_URL + ID;\n    }\n\n    getRemovedUserImageURL(userID) {\n        const user = this.removedUsers[userID];\n        const ID   = user.getID();\n        \n        // return this.getImageServerURL() + FILE_URL + ID;\n        return '/images/Portal/User.png';  // No I18N\n    }\n\n    getAnonymousUserImageURL(userID) {\n        const user = this.anonymousUsers[userID];\n        const ID   = user.getID();\n\n        // return this.getImageServerURL() + FILE_URL + ID;\n        return '/images/Portal/User.png';  // No I18N\n    }\n\n    getSystemUserImageURL(collaboratorID) {\n        const user = this.systemUsers.get(collaboratorID)\n        const ID   = user.getID()\n\n        // return this.getImageServerURL() + FILE_URL + ID;\n        return '/images/Portal/User.png';  // No I18N\n    }\n\n    getActiveUserName(userID) {\n        return this.activeUsers[userID].getName();\n    }\n\n    getInactiveUserName(userID) {\n        return this.inactiveUsers[userID].getName();\n    }\n\n    getSystemUserName(collaboratorID) {\n        return this.systemUsers.get(collaboratorID).getName()\n    }\n\n    getActiveUserModuleType(userID) {\n        return this.activeUsers[userID].getModule();\n    }\n\n    getInactiveUserModuleType(userID) {\n        return this.inactiveUsers[userID].getModule();\n    }\n\n    getActiveUserRole(userID) {\n        return this.activeUsers[userID].getPermission();\n    }\n\n    getInactiveUserRole(userID) {\n        return this.inactiveUsers[userID].getPermission();\n    }\n\n    getActiveUserEmailID(userID) {\n        return this.activeUsers[userID].getEmailID();\n    }\n\n    getInactiveUserEmailID(userID) {\n        return this.inactiveUsers[userID].getEmailID();\n    }\n\n    getRemovedUserEmailID(userID) {\n        return this.removedUsers[userID].getEmailID();\n    }\n\n    getSystemUserEmailID(collaboratorID) {\n        return this.systemUsers.get(collaboratorID).getEmailID()\n    }\n\n    getRemovedUserName(userID) {\n        const removedUserName = this.removedUsers[userID].getName();\n        if(!removedUserName) {\n            return ANONYMOUS_USER;\n        }\n        return removedUserName;\n    }\n\n    getAnonymousUserName() {\n        return ANONYMOUS_USER;\n    }\n\n    getActiveUsersIDs() {\n        return Object.keys(this.activeUsers);\n    }\n\n    getInactiveUsersIDs() {\n        return Object.keys(this.inactiveUsers);\n    }\n\n    getSystemUsersIDs() {\n        return Array.from(this.systemUsers.keys())\n    }\n\n    getRemovedUsersIDs() {\n        return Object.keys(this.removedUsers);\n    }\n\n    getActiveUsersCount() {\n        return this.getActiveUsersIDs().length;\n    }\n\n    getInactiveUsersCount() {\n        return this.getInactiveUsersIDs().length;\n    }\n\n    getRemovedUsersCount() {\n        return this.getRemovedUsersIDs().length;\n    }\n\n    getUsersGroupByRoles() {\n\t\tconst collaborators = Object.values(this.activeUsers).concat(Object.values(this.inactiveUsers))\n        // console.log(this.activeUsers, this.inactiveUsers )\n        const collaboratorGroup = Object.groupBy(collaborators, user=> user.getPermission())\n        // console.log(collaboratorGroup)\n\t}\n\n\n    isActiveUser(id) {\n        return !!this.activeUsers[id];\n    }\n\n    isInactiveUser(id) {\n        return !!this.inactiveUsers[id];\n    }\n\n    isRemovedUser(id) {\n        return !!this.removedUsers[id];\n    }\n\n    isAnonymousUser(id) {\n        return !!this.anonymousUsers [id];\n    }\n\n    isSystemUser(collaboratorID) {\n        return this.systemUsers.has(collaboratorID)\n    }\n\n    getActiveUser(id) {\n        return this.activeUsers[id];\n    }\n\n    getInactiveUser(id) {\n        return this.inactiveUsers[id];\n    }\n\n    getRemovedUser(id) {\n        return this.removedUsers[id];\n    }\n\n    getAnonymousUser(id) {\n        return this.anonymousUsers[id];\n    }\n\n    getSystemUser(collaboratorID) {\n        return this.systemUsers.get(collaboratorID)\n    }\n\n    isExistingUserEmailID(emailID) {\n        const emailIDLowercase = emailID.toLowerCase();\n        for(let ID in this.activeUsers) {\n            const valueToCompare = this.getActiveUserEmailID(ID).toLowerCase();\n            if(emailIDLowercase === valueToCompare) {\n                return true;\n            }\n        }\n\n        for(let ID in this.inactiveUsers) {\n            const valueToCompare = this.getInactiveUserEmailID(ID).toLowerCase();\n            if(emailIDLowercase === valueToCompare) {\n                return true;\n            }\n        }\n        \n        return false;\n    }\n}\n","import { EmotionDOM } from \"./EmotionDOM.js\";\n\nexport const SENTIMENTS = {\n    ANGRY           :   'angry',\n    DISAPPOINTMENT  :   'disappointment',\n    SARCASM         :   'sarcasm',\n    NEUTRAL         :   'neutral',\n    HAPPY           :   'happy',\n    EXTREME_HAPPY   :   'extremehappy'\n}\n\nexport const SENTIMENTS_LABEL = {\n    \"0\"     :   'Angry',\n    \"1\"     :   'Disappointment',\n    \"2\"     :   'Sarcasm',\n    \"3\"     :   'Neutral',\n    \"4\"     :   'Happy',\n    \"5\"     :   'Extremely Happy'\n}\n\nconst SENTIMENT_DOM = {\n    ANGRY           :   'angryEmotionContainer',\n    DISAPPOINTMENT  :   'disappointEmotionContainer',\n    SARCASM         :   'sarcasmEmotionContainer',\n    NEUTRAL         :   'neutralEmotionContainer',\n    HAPPY           :   'happyEmotionContainer',\n    EXTREME_HAPPY   :   'extremeHappyEmotionContainer'\n}\n\nexport class SentimentsSection{ \n    constructor(property) {\n        this.dom                        =   property.dom.querySelector('#sentimentStylesContainer'); \t//No I18N\n\n        this.sentimentValues            = [];\n        this.sentiments                 = [];\n\n        this.init();\n    }\n\n    init() {\n        const sentimentDOMName             =   Object.keys(SENTIMENT_DOM);\n        for(let i = 0 ; i < sentimentDOMName.length ; i++) {\n            const sentimentDOM  =   this.dom.querySelector(`.${SENTIMENT_DOM[sentimentDOMName[i]]}`);  //No I18N\n            this.sentiments.push(new EmotionDOM(sentimentDOM, emotionEventCallbacks));\n        }\n    }\n\n    clearValues() {\n        this.sentimentValues = [];\n    }\n\n    setValue(sentiments){\n        let i = 0;\n        for (let sentiment of sentiments.values()) {\n            const value \t= sentiment.sentimentValue;\n            this.sentiments[i].setValue(value);\n\t\t\tif(sentiment.emojiStyle !== '0'){\n                this.sentiments[i].setStyleID(sentiment.emojiStyle, sentiment.imgSrc);\n\t\t\t}\n            i++;\n        }\n        this.sentimentValues = sentiments;\n    }\n\n    getValues() {\n        this.clearValues();\n        for(let i = 0 ; i < this.sentiments.length ; i++) {\n            const sentiment = [];\n            sentiment.push(this.sentiments[i].getEmojiID());\n            sentiment.push(this.sentiments[i].getValue());\n            this.sentimentValues.push(sentiment);\n        }\n        return this.sentimentValues;\n    }\n}\n\nconst emotionEventCallbacks = {\n    clickEventCallback(styleID, imgSrc) {\n        this.emotionSelectBtn.dataset.styleid = styleID;\n        this.emotionSVG.classList.add('hide'); // No I18N\n        this.emotionIMG.src = imgSrc;\n        this.emotionIMG.classList.remove('hide'); // No I18N\n    }\n}\n","import { SENTIMENTS, SENTIMENTS_LABEL } from \"../../../Dom/Middle/AddFieldPanel/Components/Sentiment/SentimentsSection.js\";\n\nconst EMOTIONS_CONSTANT = {\n    \"0\": SENTIMENTS.ANGRY,\n    \"1\": SENTIMENTS.DISAPPOINTMENT,\n    \"2\": SENTIMENTS.SARCASM,\n    \"3\": SENTIMENTS.NEUTRAL,\n    \"4\": SENTIMENTS.HAPPY,\n    \"5\": SENTIMENTS.EXTREME_HAPPY\n}\n\nconst EMOJI_PATH = {\n    \"0\": {\"1\": \"/images/Emojis/angry2.svg\", \"2\": \"/images/Emojis/angry3.svg\", \"3\": \"/images/Emojis/angry4.svg\", \"4\": \"/images/Emojis/angry4.svg\", \"5\": \"/images/Emojis/angry1.svg\"},\n    \"1\": {\"1\": \"/images/Emojis/disappointment3.svg\", \"2\": \"/images/Emojis/disappointment2.svg\", \"3\": \"/images/Emojis/disappointment4.svg\", \"4\": \"/images/Emojis/disappointment5.svg\", \"5\": \"/images/Emojis/disappointment1.svg\"},\n    \"2\": {\"1\": \"/images/Emojis/sarcasm3.svg\", \"2\": \"/images/Emojis/sarcasm4.svg\", \"3\": \"/images/Emojis/sarcasm5.svg\", \"4\": \"/images/Emojis/sarcasm2.svg\", \"5\": \"/images/Emojis/sarcasm1.svg\"},\n    \"3\": {\"1\": \"/images/Emojis/neutral3.svg\", \"2\": \"/images/Emojis/neutral2.svg\", \"3\": \"/images/Emojis/neutral4.svg\", \"4\": \"/images/Emojis/neutral1.svg\", \"5\": \"/images/Emojis/neutral5.svg\"},\n    \"4\": {\"1\": \"/images/Emojis/happy2.svg\", \"2\": \"/images/Emojis/happy4.svg\", \"3\": \"/images/Emojis/happy5.svg\", \"4\": \"/images/Emojis/happy3.svg\", \"5\": \"/images/Emojis/happy1.svg\"},\n    \"5\": {\"1\": \"/images/Emojis/extremehappy2.svg\", \"2\": \"/images/Emojis/extremehappy5.svg\", \"3\": \"/images/Emojis/extremehappy4.svg\", \"4\": \"/images/Emojis/extremehappy3.svg\", \"5\": \"/images/Emojis/extremehappy1.svg\"}\n}\n\nexport class DSSentimentsField {\n    constructor() {\n        //Sample Data: {\"esRWiA\": \"0\", \"bAQbKw\": \"1\", \"AJlqwg\": \"2\", \"44GqOg\": \"3\", \"9AzEgQ\": \"4\", \"6HNoAg\": \"5\"}\n        this.order      =   [];   \n\n        /**\n         *  //Sample Data:  {\n                \"esRWiA\": { \"emojiLabel\": EMOTIONS_CONSTANT.ANGRY, \"emojiStyle\": 0, \"sentimentValue\": \"Anger\", \"imgSrc\": \"../../images/Emojis/angry2.svg\" },  //0 - No emoji selected\n                \"bAQbKw\": { \"emojiLabel\": EMOTIONS_CONSTANT.DISAPPOINTMENT, \"emojiStyle\": 0, \"sentimentValue\": \"Disappoint\", \"imgSrc\": \"../../images/Emojis/angry2.svg\"  },\n                \"AJlqwg\": { \"emojiLabel\": EMOTIONS_CONSTANT.SARCASM, \"emojiStyle\": 0, \"sentimentValue\": \"Sarcasm\", \"imgSrc\": \"../../images/Emojis/angry2.svg\"  },\n                \"44GqOg\": { \"emojiLabel\": EMOTIONS_CONSTANT.NEUTRAL, \"emojiStyle\": 0, \"sentimentValue\": \"Neutral\", \"imgSrc\": \"../../images/Emojis/angry2.svg\"  },\n                \"9AzEgQ\": { \"emojiLabel\": EMOTIONS_CONSTANT.HAPPY, \"emojiStyle\": 0, \"sentimentValue\": \"Happy\", \"imgSrc\": \"../../images/Emojis/angry2.svg\"  },\n                \"6HNoAg\": { \"emojiLabel\": EMOTIONS_CONSTANT.EXTREME_HAPPY, \"emojiStyle\": 0, \"sentimentValue\": \"Extreme Happy\", \"imgSrc\": \"../../images/Emojis/angry2.svg\"  }\n            }\n         */\n        this.sentiments =   new Map();\n    }\n\n    setOrder(order){\n        this.order = order;\n    }\n\n    getOrder(){\n        return this.order;\n    }\n\n    setSentiments(sentiments){\n        for(let i = 0 ; i < sentiments.length ; i++){\n            const sentiment = sentiments[i];\n            const emotionID = sentiment[0];\n            const emojiID = sentiment[1];\n            const value = sentiment[2];\n            let meta = {};\n            meta.sentimentValue = value; \n            meta.emojiStyle = emojiID;\n            meta.emojiLabel = EMOTIONS_CONSTANT[i];\n            meta.imgSrc     = EMOJI_PATH[i][emojiID];\n            meta.emotionDisplayText = SENTIMENTS_LABEL[i];\n            this.sentiments.set(emotionID, meta);\n        }\n    }\n\n    setSentimentsInOrder(sentiments){\n        for(let i = 0 ; i < this.order.length ; i++){\n            const emotionID = this.order[i];\n            const sentiment = sentiments[emotionID];\n            const emojiID = sentiment[0];\n            const value = sentiment[1];\n            let meta = {};\n            meta.sentimentValue = value; \n            meta.emojiStyle = emojiID;\n            meta.emojiLabel = EMOTIONS_CONSTANT[i];\n            meta.imgSrc     = EMOJI_PATH[i][emojiID];\n            meta.emotionDisplayText = SENTIMENTS_LABEL[i];\n            this.sentiments.set(emotionID, meta);\n        }\n    }\n\n    getSentimentsMeta(emotionID) {\n        return this.sentiments.get(emotionID);\n    }\n\n    updateOrder(order) {\n        this.order = order;\n    }\n\n    updateSentiments(sentiments) {\n        this.sentiments =   sentiments;\n    }\n\n    reset() {\n        this.order      = [];\n        this.sentiments =  new Map();\n    }\n\n    getCount() {\n        return this.sentiments.size;\n    }\n\n    getID(index) {\n        const keys = Array.from(this.sentiments.keys());\n        return keys[index];\n    }\n}\n","import { FieldID, RecordID } from \"../../../../Types\";\nimport { Field } from \"../DSField\";\n\nexport class DSSnapTable {\n\tprivate data: Map<RecordID, Map<FieldID, any>>\n\tprivate fields: Map<FieldID, Field>\n\t\n\tconstructor() {\n\t\tthis.data = new Map()\n\t\tthis.fields = new Map()\n\t}\n\n\tgetData(recordIDs: RecordID[], fieldIDs: FieldID[]) {\n\t\tconst data: {[x: RecordID]: any} = {}\n\t\trecordIDs.forEach((recordID) => {\n\t\t\tconst recordData = this.data.get(recordID)\n\t\t\tif (recordData) {\n\t\t\t\tdata[recordID] = {}\n\t\t\t\tfieldIDs.forEach((fieldID) => {\n\t\t\t\t\tdata[recordID][fieldID] = recordData.get(fieldID)\n\t\t\t\t})\n\t\t\t}\n\t\t})\n\t\treturn data\n\t}\n\n\tgetCellData(recordID: RecordID, fieldID: FieldID) {\n\t\tconst recordData = this.data.get(recordID)\n\t\treturn recordData?.get(fieldID)\n\t}\n\n\tsetData(recordIDs: RecordID[], fieldIDs: FieldID[], value: any[][]) {\n\t\trecordIDs.forEach((recordID, i) => {\n\t\t\tlet recordData = this.data.get(recordID)\n\t\t\tif (!recordData) {\n\t\t\t\trecordData = new Map()\n\t\t\t\tthis.data.set(recordID, recordData)\n\t\t\t}\n\n\t\t\tfieldIDs.forEach((fieldID, j) => {\n\t\t\t\trecordData.set(fieldID, value[i][j])\n\t\t\t})\n\t\t})\n\t}\n\n\thasData(recordID: RecordID, fieldIDs: FieldID[]) {\n\t\tconst data = this.data.get(recordID)\n\t\tif(!data) {return false}\n\n\t\treturn fieldIDs.every((fieldID) => data.has(fieldID))\n\t}\n\n\tsetField(fieldID: FieldID, field: Field) {\n\t\tthis.fields.set(fieldID, field)\n\t}\n\n\tgetField(fieldID: FieldID) {\n\t\treturn this.fields.get(fieldID)\n\t}\t\n\n\tclearFields() {\n\t\tthis.fields.clear()\n\t}\n}","import { ComponentType } from \"../SnapTypes\";\n\nlet i = 0;\nconst Aggregation = {\n\tTABLE                : 1 << i++,\n\tVIEW                 : 1 << i++,\n\tFIELD                : 1 << i++,\n\tFORMULA              : 1 << i++,\n\tGROUP_BY_FIELD       : 1 << i++,\n\tGROUP_BY_TYPE        : 1 << i++,\n\tSHOW_SECONDARY_LABEL : 1 << i++,\n\tSHOW_SECONDARY_VALUE : 1 << i++,\n\tSHOW_DIFFERENCE      : 1 << i++,\n\tTITLE                : 1 << i++,\n\tCOLOR                : 1 << i++,\n\tALIGN_TYPE           : 1 << i++,\n\tPRIMARY_VALUE        : 1 << i++,\n\tSECONDARY_LABEL      : 1 << i++,\n\tSECONDARY_VALUE      : 1 << i++,\n\tDIFFERENCE           : 1 << i++,\n\tFIELD_ORDER\t\t \t : 1 << i++,\n\tFILTER \t\t\t \t : 1 << i++\n} \n\ni = 0;\nconst Chart = {\n\tTABLE           : 1 << i++,\n\tVIEW            : 1 << i++,\n\tTYPE            : 1 << i++,\n\tFIELDS_TO_PLOT  : 1 << i++,\n\tFORMULA         : 1 << i++,\n\tGROUP_BY_FIELD  : 1 << i++,\n\tDRAW_WITTH      : 1 << i++,\n\tTITLE           : 1 << i++,\n\tX_AXIS_LABEL    : 1 << i++,\n\tY_AXIS_LABEL    : 1 << i++,\n\tLEGEND_POSITION : 1 << i++,\n\tCOLOR_THEME     : 1 << i++,\n\tDATA            : 1 << i++,\n\tFIELD: 1 << i++,\n\tFILTER: 1 << i++,\n} \n\n\ni = 0;\nconst Rte = {\n\tHTML: 1 << i++,\n} \n\ni = 0;\nconst Grid = {\n\tTABLE        : 1 << i++,\n\tVIEW         : 1 << i++,\n\tFIELD_ORDER  : 1 << i++,\n\tSORT         : 1 << i++,\n\tFILTER_TYPE  : 1 << i++,\n\tFILTER       : 1 << i++,\n\tTITLE        : 1 << i++,\n\tRECORD_HEIGHT: 1 << i++,\n\tRECORD_ORDER : 1 << i++\n}\n\nfunction getAggregationBitset(array: (keyof typeof Aggregation)[]) {\n\tlet key = 0;\n\tfor (let i = 0; i < array.length; i++) {\n\t\tkey |= Aggregation[array[i]];\n\t}\n\treturn key;\n}\n\nfunction getChartBitset(array: (keyof typeof Chart)[]) {\n\tlet key = 0;\n\tfor (let i = 0; i < array.length; i++) {\n\t\tkey |= Chart[array[i]];\n\t}\n\treturn key;\n}\n\nfunction getRteBitset(array: (keyof typeof Rte)[]) {\n\tlet key = 0;\n\tfor (let i = 0; i < array.length; i++) {\n\t\tkey |= Rte[array[i]];\n\t}\n\treturn key;\n}\n\nfunction getGridBitset(array: (keyof typeof Grid)[]) {\n\tlet key = 0;\n\tfor (let i = 0; i < array.length; i++) {\n\t\tkey |= Grid[array[i]];\n\t}\n\treturn key;\n}\n\nexport function generateComponentBitsetForRendering(componentType: ComponentType) {\n\tswitch (componentType) {\n\t\tcase ComponentType.AGGREGATION:\n\t\t\treturn getAggregationBitset([\"FIELD\", \"SHOW_SECONDARY_LABEL\", \"SHOW_SECONDARY_VALUE\", \"SHOW_DIFFERENCE\", \"TITLE\", \"COLOR\", \"ALIGN_TYPE\", \"PRIMARY_VALUE\", \"SECONDARY_LABEL\", \"SECONDARY_VALUE\", \"DIFFERENCE\", \"FORMULA\", \"GROUP_BY_TYPE\", \"GROUP_BY_FIELD\", \"FIELD_ORDER\"]);\n\n\t\tcase ComponentType.CHART:\n\t\t\treturn getChartBitset([\"TYPE\", \"TITLE\", \"X_AXIS_LABEL\", \"Y_AXIS_LABEL\", \"LEGEND_POSITION\", \"COLOR_THEME\", \"DATA\", \"FIELDS_TO_PLOT\", \"GROUP_BY_FIELD\",  \"FIELD\"]);\n\n\t\tcase ComponentType.TEXT:\n\t\t\treturn getRteBitset([\"HTML\"]);\n\n\t\tcase ComponentType.GRID:\n\t\t\treturn getGridBitset([\"TABLE\", \"FIELD_ORDER\", \"TITLE\", \"RECORD_HEIGHT\", \"RECORD_ORDER\"]);\n\t}\n}\n\nexport function generateFullComponentBitset(componentType: ComponentType) {\n\tswitch(componentType) {\n\t\tcase ComponentType.AGGREGATION: \n\t\t\treturn getAggregationBitset([\"TABLE\", \"VIEW\", \"FIELD\", \"FORMULA\", \"GROUP_BY_FIELD\", \"GROUP_BY_TYPE\", \"SHOW_SECONDARY_LABEL\", \"SHOW_SECONDARY_VALUE\", \"SHOW_DIFFERENCE\", \"TITLE\", \"COLOR\", \"ALIGN_TYPE\", \"PRIMARY_VALUE\", \"SECONDARY_LABEL\", \"SECONDARY_VALUE\", \"DIFFERENCE\", \"FIELD_ORDER\", \"FILTER\"]);\n\n\t\tcase ComponentType.CHART:\n\t\t\treturn getChartBitset([\"TABLE\", \"VIEW\", \"TYPE\", \"FIELDS_TO_PLOT\", \"FORMULA\", \"GROUP_BY_FIELD\", \"DRAW_WITTH\", \"TITLE\", \"X_AXIS_LABEL\", \"Y_AXIS_LABEL\", \"LEGEND_POSITION\", \"COLOR_THEME\", \"DATA\", \"FIELD\", \"FILTER\"]);\n\n\t\tcase ComponentType.TEXT:\n\t\t\treturn getRteBitset([\"HTML\"]);\n\n\t\tcase ComponentType.GRID:\n\t\t\treturn getGridBitset([\"TABLE\", \"VIEW\", \"FIELD_ORDER\", \"SORT\", \"FILTER_TYPE\", \"FILTER\", \"TITLE\", \"RECORD_HEIGHT\", \"RECORD_ORDER\"]);\n\t}\n}\n\nexport function getAlwaysNeededBitsetForPropertiesPanel(componentType: ComponentType) {\n\tswitch (componentType) {\n\t\tcase ComponentType.AGGREGATION:\n\t\t\treturn getAggregationBitset([]);\n\n\t\tcase ComponentType.CHART:\n\t\t\treturn getChartBitset([]);\n\n\t\tcase ComponentType.TEXT:\n\t\t\treturn getRteBitset([]);\n\n\t\tcase ComponentType.GRID:\n\t\t\treturn getGridBitset([]);\n\t}\n}\n\nexport const SortType = {\n\tCREATED_TIME : 2,\n\tMODIFIED_TIME: 3,\n\tNAME         : 1 \n}\nObject.freeze(SortType);\n\nexport const SortOrder = {\n\tASCE: 1,   \n\tDESC: 2    \n}\n\nexport const FilterType = {\n\tALL: 0,\n\tMY : 1\n}\n\nexport const CREATE_FIRST_FIELDS_TO_PLOT_RELATIVE_ID = \"-1\";\n","import { CHECKBOX, COLLABORATOR_CLIENT, CREATED_BY, CREATED_TIME, DATE_TIME, EMAIL, FORMULA, LANGUAGE_DETECTOR, MODIFIED_BY, MODIFIED_TIME, PHONE_NUMBER, RATING, SENTIMENTAL_ANALYSIS, SINGLE_SELECTION, TEXT } from \"../../../../../Constants/FieldTypes.js\"\n\nexport enum Alignment {\n\tTOP = 0,\n\tBOTTOM = 1,\n\tRIGHT = 2,\n\tLEFT = 3,\n\tCENTER = 4\n}\n\nexport enum ChartType {\n\tBAR = 0,\n\tCOLUMN = 1,\n\tPIE = 2,\n\tAREA = 3,\n\tLINE = 4,\n\tSCATTER = 5,\n\tDONUT = 6,\n\tFUNNEL = 7\n}\n\nexport enum Direction {\n\tHORIZONTAL = 0,\n\tVERTICAL = 1\n}\n\nexport enum DrawWith {\n\tFIELD = 0,\n\tRECORD = 1\n}\n\nexport const ChartTypes: {\n\t[key in ChartType]: string\n} = {\n\t[ChartType.BAR]: \"bar\",\n\t[ChartType.PIE]: \"pie\",\n\t[ChartType.AREA]: \"area\",\n\t[ChartType.LINE]: \"line\",\n\t[ChartType.SCATTER]: \"scatter\",\n\t[ChartType.DONUT]: \"donut\",\n\t[ChartType.FUNNEL]: \"funnel\",\n\t[ChartType.COLUMN]: \"col\"\n}\n\nexport const ChartLegendPosition: {\n\t[key in Alignment]: string\n} = {\n\t[Alignment.BOTTOM]: \"bottom\",\n\t[Alignment.CENTER]: \"center\",\n\t[Alignment.LEFT]: \"left\",\n\t[Alignment.RIGHT]: \"right\",\n\t[Alignment.TOP]: \"top\"\n}\n\nexport const ChartDirection: {\n\t[key in Direction]: boolean\n} = {\n\t[Direction.HORIZONTAL]: false,\n\t[Direction.VERTICAL]: true\n}\n\nexport const ChartColor = {\n\t0: {\n\t\tname: 'Default',\n\t\tcolors: ['#8754D0', '#F175A2', '#41A8ED', '#3457B0', '#489960', '#2A9D8F', '#E9C46A', '#8338EC', '#6D6875', '#C8477E']\n\t},\n\n\t1: {\n\t\tname: 'Palette 1',\n\t\tcolors: ['#689316', '#A3DA44', '#95B952', '#ADE0AF', '#508A4D', '#9EA15C', '#A4B84C', '#757B27', '#566E31', '#354B15']\n\t},\n\n\t2: {\n\t\tname: 'Palette 2',\n\t\tcolors: ['#843D3B', '#F2A0A4', '#DA94C1', '#9561A1', '#9B185D', '#AC3F2F', '#6B413A', '#B9ACB7', '#8F8383', '#42353A']\n\t},\n\n\t3: {\n\t\tname: 'Palette 3',\n\t\tcolors: ['#F09BA2', '#ED4B5B', '#913703', '#BDD19D', '#7E9B85', '#497060', '#454841', '#BDA0A3', '#9B7E81', '#70494C']\n\t},\n\n\t4: {\n\t\tname: 'Palette 4',\n\t\tcolors: ['#776A99', '#CE96AA', '#9877A2', '#B1B4F6', '#A582FF', '#99816A', '#8D4F5A', '#B45152', '#5E5B66', '#393350']\n\t},\n\n\t5: {\n\t\tname: 'Palette 5',\n\t\tcolors: ['#E59100', '#FE722D', '#996100', '#AA7357', '#554C48', '#AA5B57', '#B0411A', '#B0411A', '#B0281A', '#591404']\n\t}, \n\n\t6: {\n\t\tname: 'Palette 6',\n\t\tcolors: ['#70BDD7', '#D79070', '#70A0D7', '#A6D770', '#D770B2', '#70D791', '#7080D7', '#D7CA70', '#71D7CE', '#70D786']\n\t},\n\n\t7: {\n\t\tname: 'Palette 7',\n\t\tcolors: ['#66CCCC', '#66B9CC', '#66CC89', '#AFCC66', '#D7CA70', '#CCB166', '#CC9F66', '#D79070', '#CC7A66', '#CC6674']\n\t},\n\n\t8: {\n\t\tname: 'Palette 8',\n\t\tcolors: ['#71D7CE', '#5DBB9F', '#35B790', '#3A8E75', '#66CC89', '#A6D770', '#97B242', '#6F8839', '#CCBE66', '#CC9C2E']\n\t},\n}\n\nexport const CHART_TITLE_STYLE = {\n\tfontSize: \"14px\",\n\tfontWeight: 500,\n\tfontStyle: \"normal\",\n\thAlign: \"left\",\n\tfontColor: \"#282828\",\n}\n\nexport const CHART_FONT_FAMILY = \"Inter\"\n\nexport const CHART_AXIS_STYLE = {\n\tfontSize: \"12px\",\n\tfontWeight: 500,\n\tfontStyle: \"normal\",\n\tfontColor: \"#757575\"\n}\n\nexport const GROUP_BY_FIELDTYPES = [CHECKBOX, CREATED_TIME, DATE_TIME, EMAIL,  MODIFIED_TIME, PHONE_NUMBER, COLLABORATOR_CLIENT, RATING, SINGLE_SELECTION, CREATED_BY, MODIFIED_BY, SENTIMENTAL_ANALYSIS, TEXT, LANGUAGE_DETECTOR, FORMULA]\n\nexport const ChartSingleColor = [\"rgb(135, 84, 208)\", \"rgb(104, 147, 22)\", \"rgb(132, 61, 59)\", \"rgb(240, 155, 162)\", \"rgb(119, 106, 153)\", \"rgb(176, 65, 26)\"];\n","const HASHEDID_REGEX = /([a-zA-Z0-9\\._\\*\\-%]+)|(^[a-zA-Z0-9]{6})/gi;\n\nexport class Filter {\n    constructor() {\n        this.filters     = {};\n        this.filterOrder = [];\n        this.logical     = '';\n        this.condition   = null;\n    }\n\n    delete(filterID) {\n\t\tdelete this.filters[filterID];\n\t\tconst index = this.filterOrder.indexOf(filterID);\n\t\tindex >= 0 && this.filterOrder.splice(index, 1);\n\t}\n\n    update(filterID, fieldID, condition, values) {\n\t\t!this.hasFilterID(filterID) && this.push(filterID);\n\t\tthis.filters[filterID] = [fieldID, condition, values];\n\t}\n\n    setLogical(logicalString) {\n\t\tthis.logical     = logicalString;\n\t\tthis.filterOrder = getOrder(logicalString);\n\t}\n\n    setLogicalString(logicalString) {\n\t\tthis.logical = logicalString;\n\t}\n\n    reorder(filterOrder) {\n\t\tthis.filterOrder = [].concat(filterOrder);\n\t}\n\n    getOrder() {\n\t\treturn this.filterOrder;\n\t}\n\n    getLogicalOperation() {\n\t\treturn this.logical;\n\t}\n\n    getFieldID(filterID) {\n\t\treturn this.filters[filterID][0];\n\t}\n\n    getOperation(filterID) {\n\t\treturn this.filters[filterID][1];\n\t}\n\n    getValues(filterID) {\n\t\treturn this.filters[filterID][2];\n\t}\n\n    reset() {\n\t\tthis.filters     = {};\n\t\tthis.filterOrder = [];\n\t}\n\n    load(filterID, fieldID, condition, values) {\n\t\tthis.filters[filterID] = [fieldID, condition, values];\n\t\tthis.push(filterID);\n\t}\n\n    getFilterCount(fieldID) {\n        let count             = 0;\n        const filterOrder       = this.getOrder();\n        const filterOrderLength = filterOrder.length;\n        let filterID;\n        let currentFieldID;\n        for(let i = 0; i < filterOrderLength; i++) {\n\t\t\tfilterID       = filterOrder[i];\n\t\t\tcurrentFieldID = this.getFieldID(filterID);\n\t\t\tif(currentFieldID === fieldID) {\n\t\t\t\t++count;\n\t\t\t}\n\t\t}\n        return count;\n    }\n\n    hasFilterID(filterID) {\n\t\treturn this.filterOrder.includes(filterID);\n\t}\n\n    push(filterID) {\n\t\tthis.filterOrder.push(filterID);\n\t}\n\n    setCondition(condition) {\n\t\tthis.condition = condition;\n\t}\n\n    getCondition() {\n\t\treturn this.condition;\n\t}\n\n    getCount() {\n\t\treturn this.filterOrder.length;\n\t}\n}\n\nfunction getOrder(logicalString) {\n\tconst order = [];\n\tif (!logicalString.length) {\n\t\treturn order;\n\t}\n\t// const result = logicalString.match(/(.*)/g); //TODO: Make correct regex\n\tconst result = logicalString.match(HASHEDID_REGEX);\n\n\tfor (let i = 0; i < result.length; i++) {\n\t\torder.push(result[i]);\n\t}\n\treturn order;\n}\n","import { Alignment } from \"../../../../Snap/BuilderPage/Wiz/Components/Chart/ChartConstants\"\nimport { FieldID, TableID } from \"../../../../Types\"\nimport { Field } from \"../DSField.js\"\nimport { Filter } from \"../DSFilter.js\"\n\nexport class DSAggregation {\n\tprivate tableID: TableID\n\tprivate tableName: string\n\tprivate fieldID: FieldID | null\n\tprivate fields: Map<FieldID, Field>\n\tprivate formula: number | null\n\tprivate groupByFieldID: FieldID | null\n\tprivate groupByType: number | null\n\tprivate showSecondaryLabel: boolean\n\tprivate showSecondaryValue: boolean\n\tprivate showDifference: boolean\n\tprivate title: string\n\tprivate color: string\n\tprivate alignType: Alignment\n\tprivate primaryValue: number | null\n\tprivate secondaryLabel: string\n\tprivate secondaryValue: number | null\n\tprivate difference: number | null\n\tprivate filter: Filter;\n\tprivate fieldOrder: FieldID[];\n\n\tconstructor() {\n\t\tthis.tableID = \"\"\n\t\tthis.tableName = \"\"\n\t\tthis.fieldID = null\n\t\tthis.formula = null\n\t\tthis.groupByFieldID = null\n\t\tthis.groupByType = null\n\t\tthis.showSecondaryLabel = false\n\t\tthis.showSecondaryValue = false\n\t\tthis.showDifference = false\n\t\tthis.title = \"\"\n\t\tthis.color = \"\"\n\t\tthis.fields = new Map()\n\t\tthis.alignType = Alignment.LEFT\n\t\tthis.primaryValue = null\n\t\tthis.secondaryLabel = \"\"\n\t\tthis.secondaryValue = null\n\t\tthis.difference = null\n\t\tthis.filter = new Filter()\n\t\tthis.fieldOrder = [];\n\t}\n\n\tgetTableID() {\n\t\treturn this.tableID\n\t}\n\n\tsetTable(tableID: TableID, tableName: string): void {\n\t\tthis.tableID = tableID\n\t\tthis.tableName = tableName\n\t}\n\t\n\tsetTableID(tableID: TableID): void {\n\t\tthis.tableID = tableID\n\t}\n\n\tgetTableName() {\n\t\treturn this.tableName\n\t}\n\n\tsetTableName(tableName: string): void {\n\t\tthis.tableName = tableName\n\t}\n\n\t// getViewID() {\n\t// \treturn this.viewID\n\t// }\n\n\t// setViewID(viewID: ViewID): void {\n\t// \tthis.viewID = viewID\n\t// }\n\n\t// getViewName() {\n\t// \treturn this.viewName\n\t// }\n\n\t// setViewName(viewName: string): void {\n\t// \tthis.viewName = viewName\n\t// }\n\n\t// getViewType() {\n\t// \treturn this.viewType\n\t// }\n\n\t// setViewType(viewType: ViewType): void {\n\t// \tthis.viewType = viewType\n\t// }\n\n\t// setView(viewID: ViewID, viewName: string, viewType: ViewType): void {\n\t// \tthis.viewID = viewID\n\t// \tthis.viewName = viewName\n\t// \tthis.viewType = viewType\n\t// }\n\n\tsetFields(fields: Map<FieldID, Field>): void {\n\t\tthis.fields = new Map(fields)\n\t}\n\n\tsetField(fieldID: FieldID, field: Field): void {\n\t\tthis.fields.set(fieldID, field)\n\t}\n\n\tgetField(fieldID: FieldID): Field | null {\n\t\treturn this.fields.get(fieldID) || null\n\t}\n\n\tfieldsInsertBefore(fieldIDs: FieldID[], beforeFieldID: FieldID) {\n\t\tfieldIDs.forEach((fieldID) => {\n\t\t\tconst index = this.fieldOrder.indexOf(fieldID)\n\t\t\tif (index !== -1) {\n\t\t\t\tthis.fieldOrder.splice(index, 1)\n\t\t\t}\n\t\t})\n\t\tconst index = this.fieldOrder.indexOf(beforeFieldID)\n\t\tif(index === -1) {\n\t\t\tthis.fieldOrder.push(...fieldIDs)\n\t\t} else {\n\t\t\tthis.fieldOrder.splice(index, 0, ...fieldIDs)\n\t\t}\n\t}\n\n\tfieldsInsertAfter(fieldIDs: FieldID[], afterFieldID: FieldID) {\n\t\tfieldIDs.forEach((fieldID) => {\n\t\t\tconst index = this.fieldOrder.indexOf(fieldID)\n\t\t\tif (index !== -1) {\n\t\t\t\tthis.fieldOrder.splice(index, 1)\n\t\t\t}\n\t\t})\n\t\tconst index = this.fieldOrder.indexOf(afterFieldID)\n\t\tif(index === -1) {\n\t\t\tthis.fieldOrder.push(...fieldIDs)\n\t\t} else {\n\t\t\tthis.fieldOrder.splice(index + 1, 0, ...fieldIDs)\n\t\t}\n\t}\n\n\tsetFieldOrder(fieldIDs: FieldID[]): void {\n\t\tthis.fieldOrder = fieldIDs;\n\t}\n\n\tgetFieldOrder(): FieldID[] {\n\t\treturn this.fieldOrder;\n\t}\n\n\tgetFieldID() {\n\t\treturn this.fieldID\n\t}\n\n\tgetFieldName() {\n\t\treturn this.fields?.get(this.fieldID!)?.getName()\n\t}\n\n\tgetFieldType() {\n\t\treturn this.fields?.get(this.fieldID!)?.getType().getType()\n\t}\n\n\tgetFieldInstance() {\n\t\treturn this.fields?.get(this.fieldID!)?.getType()\n\t}\n\n\tsetFieldID(id: FieldID): void {\n\t\tthis.fieldID = id\n\t}\n\n\tgetFormula() {\n\t\treturn this.formula\n\t}\n\n\tsetFormula(formula: number | null): void {\n\t\tthis.formula = formula\n\t}\n\n\tsetGroupByFieldID(id: FieldID): void {\n\t\tthis.groupByFieldID = id\n\t}\n\t\n\tgetGroupByFieldID() {\n\t\treturn this.groupByFieldID\n\t}\n\n\tgetGroupByFieldName() {\n\t\treturn this.fields?.get(this.groupByFieldID!)?.getName()\n\t}\n\n\tgetGroupByFieldType() {\n\t\treturn this.fields?.get(this.groupByFieldID!)?.getType().getType()\n\t}\n\n\tgetGroupByType() {\n\t\treturn this.groupByType\n\t}\n\n\tsetGroupByType(groupByType: number): void {\n\t\tthis.groupByType = groupByType\n\t}\n\n\tgetShowSecondaryLabel(): boolean {\n\t\treturn this.showSecondaryLabel\n\t}\n\n\tsetShowSecondaryLabel(showSecondaryLabel: boolean): void {\n\t\tthis.showSecondaryLabel = showSecondaryLabel\n\t}\n\n\tgetShowSecondaryValue(): boolean {\n\t\treturn this.showSecondaryValue\n\t}\n\n\tsetShowSecondaryValue(showSecondaryValue: boolean): void {\n\t\tthis.showSecondaryValue = showSecondaryValue\n\t}\n\n\tgetShowDifference(): boolean {\n\t\treturn this.showDifference\n\t}\n\n\tsetShowDifference(showDifference: boolean): void {\n\t\tthis.showDifference = showDifference\n\t}\n\n\tgetTitle(): string {\n\t\treturn this.title\n\t}\n\n\tsetTitle(title: string): void {\n\t\tthis.title = title\n\t}\n\n\tgetColor(): string {\n\t\treturn this.color\n\t}\n\n\tsetColor(color: string): void {\n\t\tthis.color = color\n\t}\n\n\tgetAlignType() {\n\t\treturn this.alignType\n\t}\n\n\tsetAlignType(alignType: number): void {\n\t\tthis.alignType = alignType\n\t}\n\n\tgetPrimaryValue() {\n\t\treturn this.primaryValue\n\t}\n\n\tsetPrimaryValue(primaryValue: number | null): void {\n\t\tthis.primaryValue = primaryValue\n\t}\n\n\tgetSecondaryLabel() {\n\t\treturn this.secondaryLabel\n\t}\n\n\tsetSecondaryLabel(secondaryLabel: string): void {\n\t\tthis.secondaryLabel = secondaryLabel\n\t}\n\n\tgetSecondaryValue() {\n\t\treturn this.secondaryValue\n\t}\n\n\tsetSecondaryValue(secondaryValue: number | null): void {\n\t\tthis.secondaryValue = secondaryValue\n\t}\n\n\tgetDifference() {\n\t\treturn this.difference\n\t}\n\n\tsetDifference(difference: number | null): void {\n\t\tthis.difference = difference\n\t}\n\n\tgetFilter(): Filter {\n\t\treturn this.filter\n\t}\n}","import { FieldID, FieldsToPlotID, FieldType, TableID, ViewID, ViewType } from \"../../../../Types\"\nimport { Field } from \"../DSField\"\nimport { Filter } from \"../DSFilter.js\"\nimport { IFieldType } from \"../fieldType/FieldType\"\n\nexport class DSChart {\n\tprivate chartType: number | null\n\tprivate title: string\n\tprivate tableID: TableID | null\n\tprivate tableName: string\n\tprivate viewID: ViewID | null\n\tprivate viewName: string\n\tprivate viewType: ViewType\n\tprivate chartFields: Map<string, Field>\n\tprivate fieldsToPlotOrder: FieldsToPlotID[];\n\tprivate fieldsToPlot: Map<FieldsToPlotID, {fieldID: FieldID, formula: number}>;\n\tprivate formula: number | null\n\tprivate groupByFieldID: FieldID | null\n\tprivate drawWith: number\n\tprivate xLabel: string\n\tprivate yLabel: string\n\tprivate color: number\n\tprivate legendPosition: number\n\tprivate data: string[][]\n\tprivate filter: Filter;\n\tprivate fieldOrder: FieldID[];\n\n\tconstructor() {\n\t\tthis.chartType = null\n\t\tthis.chartFields = new Map<string, Field>()\n\t\tthis.fieldsToPlot = new Map<FieldsToPlotID, {fieldID: FieldID, formula: number}>();\n\t\tthis.fieldsToPlotOrder = []\n\t\tthis.data = []\n\t\tthis.title = \"\"\n\t\tthis.xLabel = \"\"\n\t\tthis.yLabel = \"\"\n\t\tthis.color = 0\n\t\tthis.legendPosition = 0\n\t\tthis.drawWith = 0\n\t\tthis.tableID = null\n\t\tthis.tableName = \"\"\n\t\tthis.viewID = null\n\t\tthis.viewName = \"\"\n\t\tthis.viewType = \"\"\n\t\tthis.formula = null\n\t\tthis.groupByFieldID = null\n\t\tthis.filter = new Filter();\n\t\tthis.fieldOrder = [];\n\t}\n\n\tgetFieldIDByFieldsToPlotID(fieldsToPlotID: FieldsToPlotID): FieldID | null {\n\t\treturn this.fieldsToPlot.get(fieldsToPlotID)?.fieldID ?? null;\n\t}\n\n\tgetFormulaByFieldsToPlotID(fieldsToPlotID: FieldsToPlotID): number | null {\n\t\treturn this.fieldsToPlot.get(fieldsToPlotID)?.formula ?? null;\n\t}\n\n\tfieldsToPlotReorderBefore(fieldsToPlotIDs: FieldsToPlotID[], beforeFieldsToPlotID: FieldsToPlotID) {\n\t\tfieldsToPlotIDs.forEach((fieldsToPlotID) => {\n\t\t\tconst index = this.fieldsToPlotOrder.indexOf(fieldsToPlotID)\n\t\t\tif (index !== -1) {\n\t\t\t\tthis.fieldsToPlotOrder.splice(index, 1)\n\t\t\t}\n\t\t})\n\t\tconst index = this.fieldsToPlotOrder.indexOf(beforeFieldsToPlotID)\n\t\tif(index === -1) {\n\t\t\tthis.fieldsToPlotOrder.push(...fieldsToPlotIDs)\n\t\t}\n\t\telse {\n\t\t\tthis.fieldsToPlotOrder.splice(index, 0, ...fieldsToPlotIDs)\n\t\t}\n\t}\n\n\tclearFieldsToPlot() {\n\t\tthis.fieldsToPlotOrder.forEach((fieldsToPlotID) => {\n\t\t\tthis.fieldsToPlot.delete(fieldsToPlotID)\n\t\t})\n\t\tthis.fieldsToPlotOrder = []\n\t}\n\n\tloadFieldsToPlot(fieldsToPlotIDs: FieldsToPlotID[], fieldsToPlot: Map<FieldsToPlotID, {fieldID: FieldID, formula: number}>) {\n\t\tthis.fieldsToPlotOrder = fieldsToPlotIDs\n\t\tthis.fieldsToPlot = new Map(fieldsToPlot)\n\t}\n\n\tfieldsToPlotReorderAfter(fieldsToPlotIDs: FieldsToPlotID[], afterFieldsToPlotID: FieldsToPlotID) {\n\t\tfieldsToPlotIDs.forEach((fieldsToPlotID) => {\n\t\t\tconst index = this.fieldsToPlotOrder.indexOf(fieldsToPlotID);\n\t\t\tif (index !== -1) {\n\t\t\t\tthis.fieldsToPlotOrder.splice(index, 1);\n\t\t\t}\n\t\t})\n\t\tconst index = this.fieldsToPlotOrder.indexOf(afterFieldsToPlotID);\n\t\tif(index === -1) {\n\t\t\tthis.fieldsToPlotOrder.push(...fieldsToPlotIDs);\n\t\t} else {\n\t\t\tthis.fieldsToPlotOrder.splice(index + 1, 0, ...fieldsToPlotIDs);\n\t\t}\n\t}\n\n\tsetFieldsToPlotOrder(fieldsToPlotIDs: FieldsToPlotID[]): void {\n\t\tthis.fieldsToPlotOrder = fieldsToPlotIDs;\n\t}\n\n\tupdateFieldToPlot(fieldsToPlotID: FieldsToPlotID, fieldID: FieldID, formula: number): void {\n\t\tthis.fieldsToPlot.set(fieldsToPlotID, {fieldID: fieldID, formula: formula});\n\t}\n\n\tdeleteFieldToPlot(fieldsToPlotID: FieldsToPlotID): void {\n\t\tthis.fieldsToPlot.delete(fieldsToPlotID);\n\t\tconst index = this.fieldsToPlotOrder.indexOf(fieldsToPlotID);\n\t\tif (index !== -1) {\n\t\t\tthis.fieldsToPlotOrder.splice(index, 1);\n\t\t}\n\t}\n\n\tinsertFieldToPlot(fieldsToPlotID: FieldsToPlotID, fieldID: FieldID, formula: number): void {\n\t\tthis.fieldsToPlot.set(fieldsToPlotID, {fieldID: fieldID, formula: formula});\n\t}\n\n\tfieldsInsertBefore(fieldIDs: FieldID[], beforeFieldID: FieldID) {\n\t\tfieldIDs.forEach((fieldID) => {\n\t\t\tconst index = this.fieldOrder.indexOf(fieldID)\n\t\t\tif (index !== -1) {\n\t\t\t\tthis.fieldOrder.splice(index, 1)\n\t\t\t}\n\t\t})\n\t\tconst index = this.fieldOrder.indexOf(beforeFieldID)\n\t\tif(index === -1) {\n\t\t\tthis.fieldOrder.push(...fieldIDs)\n\t\t} else {\n\t\t\tthis.fieldOrder.splice(index, 0, ...fieldIDs)\n\t\t}\n\t}\n\n\tfieldsInsertAfter(fieldIDs: FieldID[], afterFieldID: FieldID) {\n\t\tfieldIDs.forEach((fieldID) => {\n\t\t\tconst index = this.fieldOrder.indexOf(fieldID)\n\t\t\tif (index !== -1) {\n\t\t\t\tthis.fieldOrder.splice(index, 1)\n\t\t\t}\n\t\t})\n\t\tconst index = this.fieldOrder.indexOf(afterFieldID)\n\t\tif(index === -1) {\n\t\t\tthis.fieldOrder.push(...fieldIDs)\n\t\t} else {\n\t\t\tthis.fieldOrder.splice(index + 1, 0, ...fieldIDs)\n\t\t}\n\t}\n\n\tsetFieldOrder(fieldIDs: FieldID[]): void {\n\t\tthis.fieldOrder = fieldIDs;\n\t}\n\n\tgetTableID() {\n\t\treturn this.tableID\n\t}\n\n\tsetTable(tableID: TableID, tableName: string): void {\n\t\tthis.tableID = tableID\n\t\tthis.tableName = tableName\n\t}\n\t\n\tsetTableID(tableID: TableID): void {\n\t\tthis.tableID = tableID\n\t}\n\n\tgetTableName() {\n\t\treturn this.tableName\n\t}\n\n\tsetTableName(tableName: string): void {\n\t\tthis.tableName = tableName\n\t}\n\n\tgetViewID() {\n\t\treturn this.viewID\n\t}\n\n\tsetViewID(viewID: ViewID): void {\n\t\tthis.viewID = viewID\n\t}\n\n\tgetViewName() {\n\t\treturn this.viewName\n\t}\n\n\tsetViewName(viewName: string): void {\n\t\tthis.viewName = viewName\n\t}\n\n\tgetViewType() {\n\t\treturn this.viewType\n\t}\n\n\tsetViewType(viewType: ViewType): void {\n\t\tthis.viewType = viewType\n\t}\n\n\tsetView(viewID: ViewID, viewName: string, viewType: ViewType): void {\n\t\tthis.viewID = viewID\n\t\tthis.viewName = viewName\n\t\tthis.viewType = viewType\n\t}\n\n\tsetFields(chartFields: Map<FieldID, Field>): void {\n\t\tthis.chartFields = new Map(chartFields)\n\t}   \n\n\tsetField(fieldID: FieldID, field: Field): void {\n\t\tthis.chartFields.set(fieldID, field)\n\t}\n\n\tgetFieldName(fieldID: FieldID): string {\n\t\treturn this.chartFields.get(fieldID)?.getName() || \"\"\n\t}\n\n\tgetField(fieldID: FieldID): Field | undefined {\n\t\treturn this.chartFields.get(fieldID)\n\t}\n\n\tgetFieldOrder(): FieldID[] {\n\t\treturn this.fieldOrder;\n\t}\n\n\tgetFieldType(fieldID: FieldID): FieldType { \n\t\treturn this.chartFields.get(fieldID)?.getType().getType() || \"\"\n\t}\n\n\tgetFieldInstance(fieldID: FieldID): IFieldType | undefined {\n\t\treturn this.chartFields.get(fieldID)?.getType()\n\t}\n\n\tgetFormula() {\n\t\treturn this.formula\n\t}\n\n\tsetFormula(formula: number | null): void {\n\t\tthis.formula = formula\n\t}\n\n\tgetGroupByFieldID() {\n\t\treturn this.groupByFieldID\n\t}\n\n\tsetGroupByFieldID(id: FieldID): void {\n\t\tthis.groupByFieldID = id\n\t}\n\n\tgetGroupByFieldName() {\n\t\treturn this.chartFields.get(this.groupByFieldID!)?.getName() || \"\"\n\t}\n\n\tgetGroupByFieldType() {\n\t\treturn this.chartFields.get(this.groupByFieldID!)?.getType().getType() || \"\"\n\t}\n\n\tgetDrawWith(): number {\n\t\treturn this.drawWith\n\t}\n\n\tsetDrawWith(drawWith: number): void {\n\t\tthis.drawWith = drawWith\n\t}\n\n\tgetXAxisLabel(): string {\n\t\treturn this.xLabel\n\t}\n\n\tsetXAxisLabel(xLabel: string): void {\n\t\tthis.xLabel = xLabel\n\t}\n\n\tgetYAxisLabel(): string {\n\t\treturn this.yLabel\n\t}\n\n\tsetYAxisLabel(yLabel: string): void {\n\t\tthis.yLabel = yLabel\n\t}\n\n\tgetColorTheme(): number {\n\t\treturn this.color\n\t}\n\n\tsetColorTheme(color: number): void {\n\t\tthis.color = color\n\t}\n\n\tgetLegendPosition(): number {\n\t\treturn this.legendPosition\n\t}\n\n\tsetLegendPosition(legendPosition: number): void {\n\t\tthis.legendPosition = legendPosition\n\t}\n\n\tgetTitle(): string {\n\t\treturn this.title\n\t}\n\n\tsetTitle(title: string): void {\n\t\tthis.title = title\n\t}\n\n\tgetData(): string[][] {\n\t\treturn this.data\n\t}\n\n\tsetData(data: string[][]): void {\n\t\tthis.data = data\n\t}\n\n\tgetChartType() {\n\t\treturn this.chartType\n\t}\n\n\tsetChartType(chartType: number): void {\n\t\tthis.chartType = chartType\n\t}\n\n\tgetFilter(): Filter {\n\t\treturn this.filter\n\t}\n\n\tgetFilterOrder(): string[] {\n        return this.filter.getOrder();\n    }\n\n\tgetFieldsToPlotOrder(): string[] {\n\t\treturn this.fieldsToPlotOrder;\n\t}\n}","\nexport class Sort {\n    constructor() {\n        this.sorts     = {};\n        this.sortOrder = [];\n    }\n\n    delete(sortID) {\n        delete this.sorts[sortID];\n        const index = this.sortOrder.indexOf(sortID);\n        this.sortOrder.splice(index, 1);\n    }\n\n    update(sortID, fieldID, sortType) {\n        this.sorts[sortID] = [fieldID, sortType];\n    }\n\n    reorder(sortOrder) {\n        this.sortOrder = [];\n        this.sortOrder = this.sortOrder.concat(sortOrder);\n    }\n\n    getSortIDs() {\n        return this.sortOrder;\n    }\n\n    getFieldID(sortID) {\n        return this.sorts[sortID][0];\n    }\n\n    getType(sortID) {\n        return this.sorts[sortID][1];\n    }\n\n    reset() {\n        this.sorts     = {};\n        this.sortOrder = [];\n    }\n\n    load(sortID, fieldID, sortType) {\n        this.sorts[sortID] = [fieldID, sortType];\n        this.sortOrder.push(sortID);\n    }\n\n    getCount() {\n        return this.sortOrder.length;\n    }\n\n    hasAnySort() {\n        return !!this.getCount();\n    }\n\n    getSortIDFromFieldID(fieldID) {\n        for(const sortID in this.sorts) {\n            if(this.sorts[sortID][0] === fieldID) {\n                return sortID;\n            }\n        }\n        return null;\n    }\n\n    isFieldIDSorted(fieldID) {\n        return !!this.getSortIDFromFieldID(fieldID);\n    }\n}\n","import { FieldID, FieldType, RecordID, TableID } from \"../../../../Types\"\nimport { Field } from \"../DSField\"\nimport { Filter } from \"../DSFilter.js\"\nimport { Sort } from \"../DSSort.js\"\n\nexport class DSGrid {\n\tprivate tableID: TableID\n\tprivate tableName: string\n\n\t// private viewID: ViewID | null\n\t// private viewName: string\n\t// private viewType: ViewType\n\n\tprivate primaryFieldID: FieldID | null\n\n\tprivate title: string\n\tprivate recordHeight: number\n\tprivate recordOrder: RecordID[]\n\n\tprivate fieldsOrder: FieldID[]\n\tprivate fieldsWidth: Map<FieldID, number>\n\n\tprivate filterType: number\n\tprivate sortLimitReach: boolean\n\n\tprivate sort: Sort\n\tprivate filter: Filter\n\n\tprivate fields: Map<FieldID, Field>\n\t\n\tconstructor() {\n\t\tthis.fieldsOrder = []\n\t\tthis.fieldsWidth = new Map<FieldID, number>()\n\t\tthis.recordOrder = []\n\t\tthis.title = \"\"\n\t\tthis.recordHeight = 0\n\t\tthis.filterType = 0\n\t\tthis.sort = new Sort()\n\t\tthis.filter = new Filter()\n\n\t\tthis.primaryFieldID = null;\n\n\t\tthis.tableID = \"\"\n\t\tthis.tableName = \"\"\n\t\t// this.viewID = null\n\t\t// this.viewName = \"\"\n\t\t// this.viewType = \"\"\n\t\tthis.sortLimitReach = false\n\n\t\tthis.fields = new Map()\n\t}\n\n\tisSortLimitReached(): boolean {\n\t\treturn this.sortLimitReach\n\t}\n\n\tsetSortLimitReached(sortLimitReach: boolean): void {\n\t\tthis.sortLimitReach = sortLimitReach\n\t}\n\n\tsetTable(tableID: TableID, tableName: string): void {\n\t\tthis.tableID = tableID\n\t\tthis.tableName = tableName\n\t}\n\n\tsetTableName(tableName: string): void {\n\t\tthis.tableName = tableName\n\t}\n\n\tgetTableID(): TableID {\n\t\treturn this.tableID\n\t}\n\n\tgetTableName(): string {\n\t\treturn this.tableName\n\t}\n\n\t// setView(viewID: ViewID, viewName: string, viewType: ViewType): void {\n\t// \tthis.viewID = viewID\n\t// \tthis.viewName = viewName\n\t// \tthis.viewType = viewType\n\t// }\n\n\t// getViewID(): ViewID | null {\n\t// \treturn this.viewID\n\t// }\n\n\t// setViewName(viewName: string): void {\n\t// \tthis.viewName = viewName\n\t// }\n\n\t// getViewName(): string {\n\t// \treturn this.viewName\n\t// }\n\n\t// setViewType(viewType: ViewType): void {\n\t// \tthis.viewType = viewType\n\t// }\n\n\t// getViewType(): ViewType {\n\t// \treturn this.viewType\n\t// }\n\n\n\tsetPrimaryFieldID(primaryFieldID: FieldID | null): void {\n\t\tthis.primaryFieldID = primaryFieldID;\n\t}\n\n\tgetPrimaryFieldID(): FieldID | null {\n\t\treturn this.primaryFieldID;\n\t}\n\n\tsetTitle(title: string): void {\n\t\tthis.title = title\n\t}\n\n\tgetTitle(): string {\n\t\treturn this.title\n\t}\n\n\tsetRecordHeight(recordHeight: number): void {\n\t\tthis.recordHeight = recordHeight\n\t}\n\n\tgetRecordHeight(): number {\n\t\treturn this.recordHeight\n\t}\n\n\tsetRecordOrder(recordOrder: RecordID[]): void {\n\t\tthis.recordOrder = recordOrder\n\t}\n\n\tgetRecordOrder(): RecordID[] {\n\t\treturn this.recordOrder\n\t}\n\n\tgetFieldOrder(): FieldID[] {\n\t\treturn this.fieldsOrder\n\t}\n\n\tsetFieldOrder(fieldsOrder: FieldID[]): void {\n\t\tthis.fieldsOrder = fieldsOrder\n\t}\n\n\tsetFieldWidth(fieldID: FieldID, width: number): void {\n\t\tthis.fieldsWidth.set(fieldID, width)\n\t}\n\n\tsetFilterType(filterType: number): void {\n\t\tthis.filterType = filterType\n\t}\n\n\tgetFilterType(): number {\n\t\treturn this.filterType\n\t}\n\n\tgetFieldWidth(fieldID: FieldID): number {\n\t\treturn this.fieldsWidth.get(fieldID) ?? 0\n\t}\n\n\tgetSort(): Sort {\n\t\treturn this.sort\n\t}\n\n\tgetFilter(): Filter {\n\t\treturn this.filter\n\t}\n\n\tclearFields() {\n\t\tthis.fieldsOrder = []\n\t\tthis.fieldsWidth.clear()\n\t}\n\n\tfieldsInsertBefore(fieldIDs: FieldID[], beforeFieldID: FieldID) {\n\t\tfieldIDs.forEach((fieldID) => {\n\t\t\tconst index = this.fieldsOrder.indexOf(fieldID)\n\t\t\tif (index !== -1) {\n\t\t\t\tthis.fieldsOrder.splice(index, 1)\n\t\t\t}\n\t\t})\n\t\tconst index = this.fieldsOrder.indexOf(beforeFieldID)\n\t\tif(index === -1) {\n\t\t\tthis.fieldsOrder.push(...fieldIDs)\n\t\t} else {\n\t\t\tthis.fieldsOrder.splice(index, 0, ...fieldIDs)\n\t\t}\n\t}\n\n\tfieldsInsertAfter(fieldIDs: FieldID[], afterFieldID: FieldID) {\n\t\tfieldIDs.forEach((fieldID) => {\n\t\t\tconst index = this.fieldsOrder.indexOf(fieldID)\n\t\t\tif (index !== -1) {\n\t\t\t\tthis.fieldsOrder.splice(index, 1)\n\t\t\t}\n\t\t})\n\t\tconst index = this.fieldsOrder.indexOf(afterFieldID)\n\t\tif(index === -1) {\n\t\t\tthis.fieldsOrder.push(...fieldIDs)\n\t\t} else {\n\t\t\tthis.fieldsOrder.splice(index + 1, 0, ...fieldIDs)\n\t\t}\n\t}\n\n\tsetFields(fields: Map<FieldID, Field>): void {\n\t\tthis.fields = new Map(fields)\n\t}\n\n\tgetFieldName(fieldID: FieldID): string {\n\t\treturn this.fields.get(fieldID)?.getName() || \"\"\n\t}\n\n\tgetFieldType(fieldID: FieldID): FieldType {\n\t\treturn this.fields.get(fieldID)?.getType().getType() || \"\"\n\t}\n\n\tgetFieldInstance(fieldID: FieldID): Field | null {\n\t\treturn this.fields.get(fieldID) || null\n\t}\n\n\tgetField(fieldID: FieldID): Field | null {\n\t\treturn this.fields.get(fieldID) || null\n\t}\n}","export class DSRte {\n    private html: string \n    constructor() {\n        this.html = \"\"\n    }\n\n    setHtml(html: string) {\n        this.html = html\n    }\n\n    getHtml(): string {\n        return this.html\n    }\n}","import { ComponentType } from \"../../../../Snap/SnapTypes\";\nimport { DSAggregation } from \"./DSAggregation\";\nimport { DSChart } from \"./DSChart\";\nimport { DSGrid } from \"./DSGrid\";\nimport { DSRte } from \"./DSRte\";\n\nexport class DSComponentFactory {\n\tstatic getComponentDS(componentType: ComponentType) {\n\t\tswitch (componentType) {\n\t\t\tcase ComponentType.AGGREGATION:\n\t\t\t\treturn new DSAggregation();\n\n\t\t\tcase ComponentType.CHART:\n\t\t\t\treturn new DSChart();\n\n\t\t\tcase ComponentType.TEXT:\n\t\t\t\treturn new DSRte();\n\n\t\t\tcase ComponentType.GRID:\n\t\t\t\treturn new DSGrid();\n\n\t\t\tdefault:\n\t\t\t\tthrow new Error(\"Invalid component type\");\n\t\t}\n\t}\n}","import { ComponentType } from \"../../../../Snap/SnapTypes\"\nimport { DSAggregation } from \"./DSAggregation\"\nimport { DSChart } from \"./DSChart\"\nimport { DSComponentFactory } from \"./DSComponentFactory\"\nimport { DSGrid } from \"./DSGrid\"\nimport { DSRte } from \"./DSRte\"\n\nexport type ComponentDS = DSAggregation | DSChart | DSRte | DSGrid\n\nexport class DSCard {\n\tprivate row: number\n\tprivate column: number\n\tprivate height: number\n\tprivate width: number\n\tprivate type: ComponentType\n\tprivate componentDS: ComponentDS\n\tprivate loadedBitset: number\n\t\n\tconstructor(row: number, column: number, height: number, width: number, type: ComponentType) {\n\t\tthis.row = row\n\t\tthis.column = column\n\t\tthis.height = height\n\t\tthis.width = width\n\t\tthis.type = type\n\t\tthis.loadedBitset = 0\n\t\tthis.componentDS = DSComponentFactory.getComponentDS(type)\n\t}\n\n\tsetRow(row: number): void {\n\t\tthis.row = row\n\t}\n\n\tgetRow(): number {\n\t\treturn this.row\n\t}\n\n\tsetColumn(column: number): void {\n\t\tthis.column = column\n\t}\n\n\tgetColumn(): number {\n\t\treturn this.column\n\t}\n\n\tsetHeight(height: number): void {\n\t\tthis.height = height\n\t}\n\n\tgetHeight(): number {\n\t\treturn this.height\n\t}\n\n\tsetWidth(width: number): void {\n\t\tthis.width = width\n\t}\n\n\tgetWidth(): number {\n\t\treturn this.width\n\t}\n\n\tgetType(): ComponentType {\n\t\treturn this.type\n\t}\n\n\tsetType(type: ComponentType): void {\n\t\tthis.type = type\n\t}\n\n\tgetComponentDS(): ComponentDS {\n\t\treturn this.componentDS\n\t}\n\n\tgetLoadedBitset(): number {\n\t\treturn this.loadedBitset\n\t}\n\n\tsetLoadedBitset(loadedBitset: number): void {\n\t\tthis.loadedBitset |= loadedBitset\n\t}\n}","import { generateFullComponentBitset } from \"../../../../Snap/Request/SnapActionConstants\"\nimport { ComponentType } from \"../../../../Snap/SnapTypes\"\nimport { CardID } from \"../../../../Types\"\nimport { DSCard } from \"./DSCard\"\n\nexport class DSWiz {\n\tprivate height?: number\n\tprivate width?: number\n\tprivate isCardLimitReached: boolean\n\tprivate isGridCardLimitReached: boolean\n\tprivate cards: Map<CardID, DSCard>\n\n\tconstructor() {\n\t\tthis.isCardLimitReached = false\n\t\tthis.isGridCardLimitReached = false\n\t\tthis.cards = new Map<CardID, DSCard>()\n\t}\n\n\tgetCardCount() {\n\t\treturn this.cards.size;\n\t}\n\n\tsetHeight(height: number): void {\n\t\tthis.height = height\n\t}\n\n\tgetHeight() {\n\t\treturn this.height\n\t}\n\n\tsetWidth(width: number): void {\n\t\tthis.width = width\n\t}\n\n\tgetWidth() {\n\t\treturn this.width\n\t}\n\n\tsetIsCardLimitReached(isCardLimitReached: boolean): void {\n\t\tthis.isCardLimitReached = isCardLimitReached\n\t}\n\n\tsetIsGridCardLimitReached(isGridCardLimitReached: boolean): void {\n\t\tthis.isGridCardLimitReached = isGridCardLimitReached\n\t}\n\n\tgetIsCardLimitReached(): boolean {\n\t\treturn this.isCardLimitReached\n\t}\n\n\tgetIsGridCardLimitReached(): boolean {\n\t\treturn this.isGridCardLimitReached\n\t}\n\n\tgetCardDS(id: CardID) {\n\t\tconst card = this.cards.get(id)\n\t\treturn card\n\t}\n\n\tclearCards(): void {\n\t\tthis.cards.clear()\n\t}\n\n\tdeleteCard(id: CardID): void {\n\t\tthis.cards.delete(id)\n\t}\n\n\tinsertCard(cardID: CardID, row: number, column: number, height: number, width: number, type: ComponentType): void {\n\t\tthis.loadCard(cardID, row, column, height, width, type)\n\t\tconst card = this.getCardDS(cardID)\n\t\tcard?.setLoadedBitset(generateFullComponentBitset(type))\n\t}\n\n\tloadCard(cardID: CardID, row: number, column: number, height: number, width: number, type: ComponentType): void {\n\t\tconst card = new DSCard(row, column, height, width, type)\n\t\tthis.cards.set(cardID, card)\n\t}\n\n\tgetCardIDs(): CardID[] {\n\t\treturn Array.from(this.cards.keys())\n\t}\n\n\tclear() {\n\t\tthis.height = undefined\n\t\tthis.width = undefined\n\t\tthis.isCardLimitReached = false\n\t\tthis.isGridCardLimitReached = false\n\t\tthis.cards.clear()\n\t}\n}","import { getLocale } from \"../../../../Locale.js\"\nimport { ComponentType } from \"../../../../Snap/SnapTypes\"\nimport { AttachmentID, FieldID, RecordID, RelationshipID, SelectionID, TableID, WizID } from \"../../../../Types\"\nimport { DSAttachmentField } from \"../DSAttachmentField.js\"\nimport { Collaborator } from \"../DSCollaborator.js\"\nimport { MultiSelect } from \"../DSMultiSelect.js\"\nimport { Relationship } from \"../DSRelationship.js\"\nimport { DSSentimentsField } from \"../DSSentimentsField.js\"\nimport { ComponentDS } from \"./DSCard.js\"\nimport { DSRte } from \"./DSRte.js\"\nimport { DSSnapTable } from \"./DSSnapTable\"\nimport { DSWiz } from \"./DSWiz\"\n\nexport class DSSnapPublish {\n\tprivate name: string\n\tprivate icon: number\n\tprivate color: string\n\tprivate timeZone: string\n\n\tprivate wizOrder: WizID[]\n\tprivate wizs: Map<WizID, DSWiz>\n\tprivate tables: Map<TableID, DSSnapTable>\n\n\tprivate multiSelectDS: Map<SelectionID, MultiSelect>\n\tprivate attachmentDS: Map<AttachmentID, DSAttachmentField>\n\tprivate sentimentalAnalysisDS: Map<string, DSSentimentsField>\n\tprivate relationship: Map<RelationshipID, Relationship>\n\tprivate collaboratorDS: Collaborator\n\n\tconstructor() {\n\t\tthis.name = \"\"\n\t\tthis.icon = 0\n\t\tthis.color = \"\"\n\t\tthis.timeZone = \"\"\n\n\t\tthis.wizOrder = []\n\n\t\tthis.multiSelectDS = new Map()\n\t\tthis.attachmentDS = new Map()\n\t\tthis.sentimentalAnalysisDS = new Map()\n\t\tthis.relationship = new Map()\n\t\tthis.wizs = new Map()\n\t\tthis.tables = new Map()\n\n\t\tthis.collaboratorDS = new Collaborator(this.getColor.bind(this), this.getImageServerUrl.bind(this))\n\t}\n\n\tsetName(name: string) {\n\t\tthis.name = name\n\t}\n\n\tgetName() {\n\t\treturn this.name\n\t}\n\n\tsetIcon(icon: number) {\n\t\tthis.icon = icon\n\t}\n\n\tgetIcon() {\n\t\treturn this.icon\n\t}\n\n\tsetColor(color: string) {\n\t\tthis.color = color\n\t}\n\n\tgetColor() {\n\t\treturn this.color\n\t}\n\n\tsetTimeZone(baseTimeZone: string) {\n\t\tthis.timeZone = baseTimeZone\n\t}\n\n\tgetTimeZone() {\n\t\treturn this.timeZone\n\t}\n\n\tsetMultiSelectDS(multiSelectID: SelectionID, multiSelectDS: MultiSelect) {\n\t\tthis.multiSelectDS.set(multiSelectID, multiSelectDS)\n\t}\n\n\tgetMultiSelectDS(multiSelectID: SelectionID) {\n\t\treturn this.multiSelectDS.get(multiSelectID)\n\t}\n\n\tsetAttachmentDS(attachmentID: AttachmentID, attachment: any) {\n\t\tconst attachmentDS = new DSAttachmentField(attachment[0], attachment[1])\n\t\tthis.attachmentDS.set(attachmentID, attachmentDS)\n\t}\n\n\tgetAttachmentDS(attachmentID: AttachmentID) {\n\t\treturn this.attachmentDS.get(attachmentID)\n\t}\n\n\tloadSentimentalAnalysisDS(id: string, sentiments: any) {\n\t\tlet sentimentDS = new DSSentimentsField();\n\t\tsentimentDS.setSentiments(sentiments);\n\t\tthis.sentimentalAnalysisDS.set(id, sentimentDS);\n\t}\n\t\n\tgetSentimentalAnalysisDS(id: string){\n\t\treturn this.sentimentalAnalysisDS.get(id);\n\t}\n\n\tsetRelationship(relationshipID: RelationshipID, relationship: Relationship) {\n\t\tthis.relationship.set(relationshipID, relationship);\n\t}\n\n\tgetRelationShipDS(relationshipID: RelationshipID) {\n\t\treturn this.relationship.get(relationshipID);\n\t}\n\n\tgetCollaboratorDS() {\n\t\treturn this.collaboratorDS;\n\t}\n\n\tgetImageServerUrl() {\n\t\treturn (Table as any).AppRegistry.ImageServerURL;\n\t}\n\n\tsetWizOrder(wizOrder: WizID[]) {\n\t\tthis.wizOrder = wizOrder;\n\t}\n\n\tgetWizOrder() {\n\t\treturn this.wizOrder;\n\t}\n\n\tgetWizDS(wizID: WizID) {\n\t\tconst wiz = this.wizs.get(wizID);\n\t\tif (!wiz) {\n\t\t\tconst newWiz = new DSWiz();\n\t\t\tthis.wizs.set(wizID, newWiz);\n\t\t\treturn newWiz;\n\t\t}\n\n\t\treturn wiz;\n\t}\n\n\tgetCellData(tableID: string, recordID: string, fieldID: string) {\n\t\treturn this.getTableDS(tableID)?.getCellData(recordID, fieldID)\n\t}\n\n\tsetData(tableID: TableID, recordIDs: RecordID[], fieldIDs: FieldID[], value: any[][]) {\n\t\tthis.getTableDS(tableID)?.setData(recordIDs, fieldIDs, value)\n\t}\n\n\tgetData(tableID: TableID, recordIDs: RecordID[], fieldIDs: FieldID[]) {\n\t\treturn this.getTableDS(tableID)?.getData(recordIDs, fieldIDs)\n\t}\n\n\thasData(tableID: TableID, recordID: RecordID, fieldIDs: FieldID[]) {\n\t\treturn this.getTableDS(tableID)?.hasData(recordID, fieldIDs)\n\t}\n\n\tprivate getTableDS(tableID: TableID) {\n\t\tconst tableDS = this.tables.get(tableID)\n\t\tif(!tableDS) {\n\t\t\tconst dsTable = new DSSnapTable()\n\t\t\tthis.tables.set(tableID, dsTable)\n\t\t\treturn dsTable\n\t\t}\n\n\t\treturn tableDS\n\t}\n\n\tgetComponentDS(wizID: WizID, cardID: string) {\n\t\treturn this.getWizDS(wizID).getCardDS(cardID)?.getComponentDS()\n\t}\n\n\tgetFieldInstance(wizID: WizID, cardID: string, fieldID: string) {\n\t\tconst cardDS = this.getWizDS(wizID).getCardDS(cardID);\n\t\tif(!cardDS || cardDS.getType() === ComponentType.TEXT) {\n\t\t\treturn null\n\t\t}\n\t\tconst componentDS = cardDS.getComponentDS() as Exclude<ComponentDS, DSRte> ;\n\t\treturn componentDS?.getFieldInstance(fieldID)\n\t}\n\n\tgetLocale() {\n\t\treturn getLocale()\n\t}\n}","import { getKeyCombination } from \"../../../BrowserEvents/Keyboard/KeyListener.js\";\nimport { ENTER } from \"../../../Constants/KeyCodes.js\";\nimport { getTemplate } from \"../../../TemplatesForAll.js\";\n\nexport class PasswordDialog {\n    #keyListener;\n\n    constructor(callback) {\n        const template  = getTemplate('passwordDialogTemplate'); //No I18N\n        this.dom        = template.querySelector('.FB-shareFormSec'); //No I18N\n        this.inputPanel = this.dom.querySelector('.FB-shareFormPasswordPanel'); //No I18N\n        this.button     = this.dom.querySelector('.FBSF-primaryBtn'); //No I18N\n        this.input      = this.dom.querySelector('#passwordInput'); //No I18N\n        this.errorMsg   = this.dom.querySelector('.FBSF-errorMsg'); //No I18N\n        this.eyeSlash   = this.dom.querySelector('#eyeSlash'); //No I18N\n        this.eye        = this.dom.querySelector('.FBSF-hideShowIcon'); //No I18N\n        this.loader     = this.dom.querySelector('#loader'); //No I18N\n        this.loader.remove();\n\n        this.#addListener(callback);\n        this.button.disabled = true;\n        this.showPassword    = true;\n\n        const self = this;\n        this.#keyListener    = keyListener.bind(this, {\n            onEnter: function () {\n                if(self.input.value.length > 0) {\n                    self.showLoader();\n                    callback && callback(self.input.value);\n                }\n            }\n        });\n    }\n\n    appendTo(container) {\n        container.append(this.dom);\n        bindKeyboardListener(this.#keyListener);\n    }\n\n    remove() {\n        this.dom.remove();\n        unbindKeyboardListener(this.#keyListener);\n    }\n\n    showErrorState() {\n        this.errorMsg.classList.remove('hide');\n        this.inputPanel.classList.add('msgError');\n    }\n\n    showLoader(){\n        this.button.prepend(this.loader);\n        this.button.classList.add(\"ZTCL-active\");\n        this.inputPanel.classList.add('ZT-cursorDisable');\n    }\n\n    hideLoader(){\n        this.button.classList.remove(\"ZTCL-active\");\n        this.inputPanel.classList.remove('ZT-cursorDisable');\n        this.loader.remove();\n    }\n\n    #addListener(callback) {\n        this.button.addEventListener('click', () => {\n            this.showLoader();\n            callback && callback(this.input.value);\n        });\n\n        this.input.addEventListener('input', () => {\n            this.errorMsg.classList.add('hide');\n            this.inputPanel.classList.remove('msgError');\n            this.button.disabled = this.input.value ? false : true;\n        });\n\n        this.eye.addEventListener('click', (ev) => {\n            if(this.showPassword) {\n                this.eyeSlash.classList.add('hide');\n                this.input.type = 'text'\n            }\n            else {\n                this.eyeSlash.classList.remove('hide');\n                this.input.type = 'password'\n            }\n            this.showPassword = !this.showPassword;\n        })\n    }\n\n}\n\nfunction keyListener(callback, ev) {\n    const keyCombo = getKeyCombination(ev);\n    switch(keyCombo) {\n        case ENTER:\n            callback.onEnter();\n    } \n}\n\nfunction bindKeyboardListener(fn) {\n    document.body.addEventListener('keydown', fn);\n}\n\nfunction unbindKeyboardListener(fn) {\n    document.body.removeEventListener('keydown', fn);    \n}\n","\n// TODO: New Base Color - changes: Remove the commented codes after 6 months of release..\n// export const BaseColorConstants = {\n// \t0: \"9277e7\", // No I18N\n// \t1: \"e568a5\", // No I18N\n// \t2: \"45b1d8\", // No I18N\n// \t3: \"6575da\", // No I18N\n// \t4: \"61be6a\", // No I18N\n// \t5: \"f19b4e\", // No I18N\n// \t6: \"d66060\", // No I18N\n// \t7: \"4c93fe\", // No I18N\n// \t8: \"e1a539\", // No I18N\n// \t9: \"68737c\", // No I18N\n// \t10: \"9277e7,60\",//d3c9f5\", // No I18N\n// \t11: \"e568a5,60\",//f5c3db\", // No I18N\n// \t12: \"45b1d8,60\",//b5e0ef\", // No I18N\n// \t13: \"6575da,60\",//c1c8f0\", // No I18N\n// \t14: \"61be6a,60\",//c0e5c3\", // No I18N\n// \t15: \"f19b4e,60\",//f9d7b8\", // No I18N\n// \t16: \"d66060,60\",//efbfbf\", // No I18N\n// \t17: \"4c93fe,60\",//b7d4ff\", // No I18N\n// \t18: \"fcb400,60\",//fee199\", // No I18N\n// \t19: \"68737c,60\" //c3c7cb\"  // No I18N\n// };\n// Object.freeze(BaseColorConstants);\n\n// If any changes made in \"BaseIconConstants\", corresponding changes should be made in \"BaseEditPanelIconConstants.ts\" file as well..\nexport const BaseIconConstants = {\n\t0: \"BriefCaseIcon\",    // No I18N\n\t1: \"AnalysisIcon\",     // No I18N\n\t2: \"AnchourIcon\",      // No I18N\n\t3: \"ArchiveIcon\",      // No I18N\n\t4: \"BeakerIcon\",       // No I18N\n\t5: \"BellIcon\",         // No I18N\n\t6: \"BookIcon\",         // No I18N\n\t7: \"BookoneIcon\",      // No I18N\n\t8: \"AmbulanceIcon\",    // No I18N\n\t9: \"BugIcon\",          // No I18N\n\t10: \"BuildingIcon\",     // No I18N\n\t11: \"BulbIcon\",         // No I18N\n\t12: \"CalculatorIcon\",   // No I18N\n\t13: \"CalendarIcon\",     // No I18N\n\t14: \"CameraIcon\",       // No I18N\n\t15: \"ChatIcon\",         // No I18N\n\t16: \"CheckListIcon\",    // No I18N\n\t17: \"ClockIcon\",        // No I18N\n\t18: \"CloudIcon\",        // No I18N\n\t19: \"CodeIcon\",         // No I18N\n\t20: \"CoffeeIcon\",       // No I18N\n\t21: \"CogsIcon\",         // No I18N\n\t22: \"ConvertionIcon\",   // No I18N\n\t23: \"DashboardIcon\",    // No I18N\n\t24: \"DevelopmentIcon\",  // No I18N\n\t25: \"FavoriteIcon\",     // No I18N\n\t26: \"FlimIcon\",         // No I18N\n\t27: \"FolderIcon\",       // No I18N\n\t28: \"GlassCupIcon\",     // No I18N\n\t29: \"HomeIcon\",         // No I18N\n\t30: \"HospitalIcon\",     // No I18N\n\t31: \"ImageIcon\",        // No I18N\n\t32: \"InfoIcon\",         // No I18N\n\t33: \"LoudSpeakerIcon\",  // No I18N\n\t34: \"BaseEmailIcon\",    // No I18N\n\t35: \"MarkerIcon\",       // No I18N\n\t36: \"MedicalKitIcon\",   // No I18N\n\t37: \"MicIcon\",          // No I18N\n\t38: \"MoonIcon\",         // No I18N\n\t39: \"MusicIcon\",        // No I18N\n\t40: \"OrganisationIcon\", // No I18N\n\t41: \"PagesIcon\",        // No I18N\n\t42: \"PhoneIcon\",        // No I18N\n\t43: \"PlayerIcon\",       // No I18N\n\t44: \"RssIcon\",          // No I18N\n\t45: \"ScissorIcon\",      // No I18N\n\t46: \"ScreenShotIcon\",   // No I18N\n\t47: \"ShoppingIcon\",     // No I18N\n\t48: \"SpeakerIcon\",      // No I18N\n\t49: \"FloppyIcon\",       // No I18N\n\t50: \"TabletIcon\",       // No I18N\n\t51: \"TagsIcon\",         // No I18N\n\t52: \"TargetIcon\",       // No I18N\n\t53: \"TeaIcon\",          // No I18N\n\t54: \"TransportIcon\",    // No I18N\n\t55: \"TriggerIcon\",      // No I18N\n\t56: \"BaseUserIcon\",     // No I18N\n\t57: \"BaseUsersIcon\",    // No I18N\n\t58: \"WindowIcon\"        // No I18N\n}\nObject.freeze(BaseIconConstants);\n\nexport function getBaseIconName(icon) {\n\treturn BaseIconConstants[icon];\n}\n","import { getTemplateByID } from \"../TemplatesForAll.js\";\nimport { CSS_CLASS_NAMES as CLASSES } from \"./CssClassNamesForUI.js\";\nimport * as FIELD_TYPES from \"./FieldTypes.js\";\n\nconst FIELD_TYPE_BUTTONS = {\n\tLINK                           : 'addFieldLinkButtonTemplate',// No I18N\n\tADDRESS                        : 'Address',// No I18N\n\tATTACHMENT                     : 'addFieldAttachmentButtonTemplate',// No I18N\n\tAUTO_NUMBER                    : 'addFieldAutoNumberButtonTemplate',// No I18N\n\tCHECKBOX                       : 'addFieldCheckboxButtonTemplate',// No I18N\n\tCREATED_BY                     : 'addFieldCreatedByButtonTemplate',// No I18N\n\tCREATED_TIME                   : 'addFieldCreatedTimeButtonTemplate',// No I18N\n\tCURRENCY                       : 'addFieldCurrencyButtonTemplate',// No I18N\n\tDATE_TIME                      : 'addFieldDateAndTimeButtonTemplate',// No I18N\n\tDURATION                       : 'Duration',// No I18N\n\tEMAIL                          : 'addFieldEmailButtonTemplate',// No I18N\n\tFORMULA                        : 'addFieldFormulaButtonTemplate',// No I18N\n\tFRACTION                       : 'Fraction',// No I18N\n\tMODIFIED_BY                    : 'addFieldModifiedByButtonTemplate',// No I18N\n\tMODIFIED_TIME                  : 'addFieldModifiedTimeButtonTemplate',// No I18N\n\tMULTIPLE_SELECTION             : 'addFieldMultiSelectButtonTemplate',// No I18N\n\tNATIONAL_IDENTIFICATION_NUMBER : 'National Identification Number',// No I18N\n\tNUMBER                         : 'addFieldNumberButtonTemplate',// No I18N\n\tPERCENT                        : 'addFieldPercentButtonTemplate',// No I18N\n\tPHONE_NUMBER                   : 'addFieldPhoneNumberButtonTemplate',// No I18N\n\tPOSTALCODE                     : 'Postal Code',// No I18N\n\tRATING                         : 'addFieldRatingButtonTemplate',// No I18N\n\tSCIENTIFIC                     : 'Scientific',// No I18N\n\tSINGLE_SELECTION               : 'addFieldSingleSelectButtonTemplate',// No I18N\n\tSLIDER                         : 'Slider',// No I18N\n\tTEXT                           : 'addFieldTextButtonTemplate',// No I18N\n\tURL                            : 'addFieldUrlButtonTemplate',// No I18N\n\tLONG_TEXT                      : 'Long Text',// No I18N\n\tBARCODE                        : 'Barcode',// No I18N\n\tLOOKUP                         : 'addFieldLookupButtonTemplate', //No I18N\n\tROLLUP                         : 'addFieldRollupButtonTemplate', //No I18N\n\tSENTIMENTAL_ANALYSIS\t\t   : 'sentimentalAnalysisButtonTemplate', //No I18N\n\tKEYWORD_EXTRACTION  \t\t   : 'KeywordExtractButtonTemplate', //No I18N\n\tLANGUAGE_TRANSLATOR  \t\t   : 'LanguageTranslateButtonTemplate', //No I18N\n\tLANGUAGE_DETECTOR   \t\t   : 'LanguageDetectorButtonTemplate', //No I18N\n\n\tCOLLABORATOR_SINGLE   : 'addFieldSingleCollaboratorButtonTemplate',// No I18N\n\tCOLLABORATOR_MULTIPLE : 'addFieldMultipleCollaboratorButtonTemplate'// No I18N\n};\n\nexport const FIELD_TYPE_BUTTONS_ = {\n\t[FIELD_TYPES.LINK]                          : 'addFieldLinkButtonTemplate',                 // No I18N\n\t[FIELD_TYPES.ADDRESS]                       : 'Address',                                    // No I18N\n\t[FIELD_TYPES.ATTACHMENT]                    : 'addFieldAttachmentButtonTemplate',           // No I18N\n\t[FIELD_TYPES.AUTO_NUMBER]                   : 'addFieldAutoNumberButtonTemplate',           // No I18N\n\t[FIELD_TYPES.CHECKBOX]                      : 'addFieldCheckboxButtonTemplate',             // No I18N\n\t[FIELD_TYPES.CREATED_BY]                    : 'addFieldCreatedByButtonTemplate',            // No I18N\n\t[FIELD_TYPES.CREATED_TIME]                  : 'addFieldCreatedTimeButtonTemplate',          // No I18N\n\t[FIELD_TYPES.CURRENCY]                      : 'addFieldCurrencyButtonTemplate',             // No I18N\n\t[FIELD_TYPES.DATE_TIME]                     : 'addFieldDateAndTimeButtonTemplate',          // No I18N\n\t[FIELD_TYPES.DURATION]                      : 'Duration',                                   // No I18N\n\t[FIELD_TYPES.EMAIL]                         : 'addFieldEmailButtonTemplate',                // No I18N\n\t[FIELD_TYPES.FORMULA]                       : 'addFieldFormulaButtonTemplate',              // No I18N\n\t[FIELD_TYPES.FRACTION]                      : 'Fraction',                                   // No I18N\n\t[FIELD_TYPES.MODIFIED_BY]                   : 'addFieldModifiedByButtonTemplate',           // No I18N\n\t[FIELD_TYPES.MODIFIED_TIME]                 : 'addFieldModifiedTimeButtonTemplate',         // No I18N\n\t[FIELD_TYPES.MULTIPLE_SELECTION]            : 'addFieldMultiSelectButtonTemplate',          // No I18N\n\t[FIELD_TYPES.NATIONAL_IDENTIFICATION_NUMBER]: 'National Identification Number',             // No I18N\n\t[FIELD_TYPES.NUMBER]                        : 'addFieldNumberButtonTemplate',               // No I18N\n\t[FIELD_TYPES.PERCENT]                       : 'addFieldPercentButtonTemplate',              // No I18N\n\t[FIELD_TYPES.PHONE_NUMBER]                  : 'addFieldPhoneNumberButtonTemplate',          // No I18N\n\t[FIELD_TYPES.POSTALCODE]                    : 'Postal Code',                                // No I18N\n\t[FIELD_TYPES.RATING]                        : 'addFieldRatingButtonTemplate',               // No I18N\n\t[FIELD_TYPES.SCIENTIFIC]                    : 'Scientific',                                 // No I18N\n\t[FIELD_TYPES.SINGLE_SELECTION]              : 'addFieldSingleSelectButtonTemplate',         // No I18N\n\t[FIELD_TYPES.SLIDER]                        : 'Slider',                                     // No I18N\n\t[FIELD_TYPES.TEXT]                          : 'addFieldTextButtonTemplate',                 // No I18N\n\t[FIELD_TYPES.URL]                           : 'addFieldUrlButtonTemplate',                  // No I18N\n\t[FIELD_TYPES.LONG_TEXT]                     : 'Long Text',                                  // No I18N\n\t[FIELD_TYPES.BARCODE]                       : 'Barcode',                                    // No I18N\n\t[FIELD_TYPES.LOOKUP]                        : 'addFieldLookupButtonTemplate',               //No I18N\n\t[FIELD_TYPES.ROLLUP]                        : 'addFieldRollupButtonTemplate',               //No I18N\n\t[FIELD_TYPES.SENTIMENTAL_ANALYSIS]          : 'sentimentalAnalysisButtonTemplate',          //No I18N\n\t[FIELD_TYPES.KEYWORD_EXTRACTION]            : 'KeywordExtractButtonTemplate',               //No I18N\n\t[FIELD_TYPES.LANGUAGE_TRANSLATOR]           : 'LanguageTranslateButtonTemplate',            //No I18N\n\t[FIELD_TYPES.LANGUAGE_DETECTOR]             : 'LanguageDetectorButtonTemplate',             //No I18N\n\t[FIELD_TYPES.COLLABORATOR_CLIENT]           : 'addFieldMultipleCollaboratorButtonTemplate'  // No I18N\n};\n\n// export const FIELD_TYPE_BUTTONS_ORDER = [FIELD_TYPE_BUTTONS.ATTACHMENT ,FIELD_TYPE_BUTTONS.AUTO_NUMBER, FIELD_TYPE_BUTTONS.CHECKBOX, FIELD_TYPE_BUTTONS.COLLABORATOR_MULTIPLE, FIELD_TYPE_BUTTONS.CREATED_BY, FIELD_TYPE_BUTTONS.CREATED_TIME, FIELD_TYPE_BUTTONS.CURRENCY, FIELD_TYPE_BUTTONS.DATE_TIME, FIELD_TYPE_BUTTONS.EMAIL, FIELD_TYPE_BUTTONS.FORMULA, FIELD_TYPE_BUTTONS.KEYWORD_EXTRACTION, FIELD_TYPE_BUTTONS.LANGUAGE_DETECTOR, FIELD_TYPE_BUTTONS.LINK, FIELD_TYPE_BUTTONS.LOOKUP, FIELD_TYPE_BUTTONS.MULTIPLE_SELECTION, FIELD_TYPE_BUTTONS.MODIFIED_BY, FIELD_TYPE_BUTTONS.MODIFIED_TIME, FIELD_TYPE_BUTTONS.NUMBER, FIELD_TYPE_BUTTONS.PERCENT, FIELD_TYPE_BUTTONS.PHONE_NUMBER, FIELD_TYPE_BUTTONS.RATING, FIELD_TYPE_BUTTONS.ROLLUP, FIELD_TYPE_BUTTONS.SENTIMENTAL_ANALYSIS, FIELD_TYPE_BUTTONS.SINGLE_SELECTION, FIELD_TYPE_BUTTONS.TEXT, FIELD_TYPE_BUTTONS.URL];\n\nObject.freeze(FIELD_TYPE_BUTTONS);\n// Object.freeze(FIELD_TYPE_BUTTONS_ORDER);\n\nexport function getFieldTypeIcon(baseID, tableID, fieldID) {\n\tconst base          = Table.Data.Workspace.get(baseID);\n\tconst table         = base.getTable(tableID);\n\tconst field         = table.getField(fieldID);\n\tconst fieldInstance = field.getType();\n\tconst fieldType     = fieldInstance.getType();\n\treturn getFieldIcon(fieldType, fieldInstance);\n}\n\nexport function getFieldIcon(fieldType, fieldInstance) {\n\tlet fieldTypeButton;\n\tlet className;\n\tswitch(fieldType) {\n\t\tcase FIELD_TYPES.LINK:\n\t\tcase FIELD_TYPES.LINK_CLIENT:\n\t\t\tfieldTypeButton = FIELD_TYPE_BUTTONS.LINK;\n\t\t\tclassName       = CLASSES.LINK_ICON;\n\t\t\tbreak;\n\n\t\tcase FIELD_TYPES.ATTACHMENT:\n\t\t\tfieldTypeButton = FIELD_TYPE_BUTTONS.ATTACHMENT;\n\t\t\tclassName       = CLASSES.ATTACHMENT_ICON;\n\t\t\tbreak;\n\n\t\tcase FIELD_TYPES.AUTO_NUMBER:\n\t\t\tfieldTypeButton = FIELD_TYPE_BUTTONS.AUTO_NUMBER;\n\t\t\tclassName       = CLASSES.AUTO_NUMBER_ICON;\n\t\t\tbreak;\n\n\t\tcase FIELD_TYPES.CHECKBOX:\n\t\t\tfieldTypeButton = FIELD_TYPE_BUTTONS.CHECKBOX;\n\t\t\tclassName       = CLASSES.CHECKBOX_ICON;\n\t\t\tbreak;\n\n\t\tcase FIELD_TYPES.CREATED_BY:\n\t\t\tfieldTypeButton = FIELD_TYPE_BUTTONS.CREATED_BY;\n\t\t\tclassName       = CLASSES.CREATED_BY_ICON;\n\t\t\tbreak;\n\n\t\tcase FIELD_TYPES.CREATED_TIME:\n\t\t\tfieldTypeButton = FIELD_TYPE_BUTTONS.CREATED_TIME;\n\t\t\tclassName       = CLASSES.CREATED_TIME_ICON;\n\t\t\tbreak;\n\n\t\tcase FIELD_TYPES.CURRENCY:\n\t\t\tfieldTypeButton = FIELD_TYPE_BUTTONS.CURRENCY;\n\t\t\tclassName       = CLASSES.CURRENCY_ICON;\n\t\t\tbreak;\n\n\t\tcase FIELD_TYPES.DATE_TIME:\n\t\t\tfieldTypeButton = FIELD_TYPE_BUTTONS.DATE_TIME;\n\t\t\tclassName       = CLASSES.DATE_TIME_ICON;\n\t\t\tbreak;\n\n\t\tcase FIELD_TYPES.DURATION:\n\t\t\tfieldTypeButton = FIELD_TYPE_BUTTONS.DURATION;\n\t\t\tclassName       = CLASSES.DURATION_ICON;\n\t\t\tbreak;\n\n\t\tcase FIELD_TYPES.EMAIL:\n\t\t\tfieldTypeButton = FIELD_TYPE_BUTTONS.EMAIL;\n\t\t\tclassName       = CLASSES.EMAIL_ICON;\n\t\t\tbreak;\n\n\t\tcase FIELD_TYPES.FRACTION:\n\t\t\tfieldTypeButton = FIELD_TYPE_BUTTONS.FRACTION;\n\t\t\tclassName       = CLASSES.FRACTION_ICON;\n\t\t\tbreak;\n\n\t\tcase FIELD_TYPES.MODIFIED_BY:\n\t\t\tfieldTypeButton = FIELD_TYPE_BUTTONS.MODIFIED_BY;\n\t\t\tclassName       = CLASSES.MODIFIED_BY_ICON;\n\t\t\tbreak;\n\n\t\tcase FIELD_TYPES.MODIFIED_TIME:\n\t\t\tfieldTypeButton = FIELD_TYPE_BUTTONS.MODIFIED_TIME;\n\t\t\tclassName       = CLASSES.MODIFIED_TIME_ICON;\n\t\t\tbreak;\n\n\t\tcase FIELD_TYPES.MULTIPLE_SELECTION:\n\t\t\tfieldTypeButton = FIELD_TYPE_BUTTONS.MULTIPLE_SELECTION;\n\t\t\tclassName       = CLASSES.MULTIPLE_SELECTION_ICON;\n\t\t\tbreak;\n\n\t\tcase FIELD_TYPES.NATIONAL_IDENTIFICATION_NUMBER:\n\t\t\tfieldTypeButton = FIELD_TYPE_BUTTONS.NATIONAL_IDENTIFICATION_NUMBER;\n\t\t\tclassName       = CLASSES.NATIONAL_IDENTIFICATION_NUMBER_ICON;\n\t\t\tbreak;\n\n\t\tcase FIELD_TYPES.NUMBER:\n\t\t\tfieldTypeButton = FIELD_TYPE_BUTTONS.NUMBER;\n\t\t\tclassName       = CLASSES.NUMBER_ICON;\n\t\t\tbreak;\n\n\t\tcase FIELD_TYPES.PERCENT:\n\t\t\tfieldTypeButton = FIELD_TYPE_BUTTONS.PERCENT;\n\t\t\tclassName       = CLASSES.PERCENT_ICON;\n\t\t\tbreak;\n\n\t\tcase FIELD_TYPES.PHONE_NUMBER:\n\t\t\tfieldTypeButton = FIELD_TYPE_BUTTONS.PHONE_NUMBER;\n\t\t\tclassName       = CLASSES.PHONE_NUMBER_ICON;\n\t\t\tbreak;\n\n\t\tcase FIELD_TYPES.RATING:\n\t\t\tfieldTypeButton = FIELD_TYPE_BUTTONS.RATING;\n\t\t\tclassName       = CLASSES.RATING_ICON;\n\t\t\tbreak;\n\n\t\tcase FIELD_TYPES.SCIENTIFIC:\n\t\t\tfieldTypeButton = FIELD_TYPE_BUTTONS.SCIENTIFIC;\n\t\t\tclassName       = CLASSES.SCIENTIFIC_ICON;\n\t\t\tbreak;\n\n\t\tcase FIELD_TYPES.SINGLE_SELECTION:\n\t\t\tfieldTypeButton = FIELD_TYPE_BUTTONS.SINGLE_SELECTION;\n\t\t\tclassName       = CLASSES.SINGLE_SELECTION_ICON;\n\t\t\tbreak;\n\n\t\tcase FIELD_TYPES.SLIDER:\n\t\t\tfieldTypeButton = FIELD_TYPE_BUTTONS.SLIDER;\n\t\t\tclassName       = CLASSES.SLIDER_ICON;\n\t\t\tbreak;\n\n\t\tcase FIELD_TYPES.TEXT:\n\t\t\tfieldTypeButton = FIELD_TYPE_BUTTONS.TEXT;\n\t\t\tclassName       = CLASSES.TEXT_ICON;\n\t\t\tbreak;\n\n\t\tcase FIELD_TYPES.URL:\n\t\t\tfieldTypeButton = FIELD_TYPE_BUTTONS.URL;\n\t\t\tclassName       = CLASSES.URL_ICON;\n\t\t\tbreak;\n\n\t\tcase FIELD_TYPES.BARCODE:\n\t\t\tfieldTypeButton = FIELD_TYPE_BUTTONS.BARCODE;\n\t\t\tclassName       = CLASSES.BARCODE_ICON;\n\t\t\tbreak;\n\n\t\tcase FIELD_TYPES.COLLABORATOR_CLIENT:\n\t\t\tif(fieldInstance && fieldInstance.getSelectionType() === 0) { // single select collaborator\n\t\t\t\tfieldTypeButton = FIELD_TYPE_BUTTONS.COLLABORATOR_SINGLE;\n\t\t\t}else {\n\t\t\t\tfieldTypeButton = FIELD_TYPE_BUTTONS.COLLABORATOR_MULTIPLE;\n\t\t\t}\n\t\t\tclassName       = CLASSES.COLLABORATOR_CLIENT_ICON;\n\t\t\tbreak;\n\n\t\tcase FIELD_TYPES.FORMULA:\n\t\t\tfieldTypeButton = FIELD_TYPE_BUTTONS.FORMULA;\n\t\t\tclassName       = CLASSES.FORMULA_ICON;\n\t\t\tbreak;\n\n\t\tcase FIELD_TYPES.LOOKUP:\n\t\t\tfieldTypeButton = FIELD_TYPE_BUTTONS.LOOKUP;\n\t\t\tclassName       = CLASSES.LOOKUP_ICON;\n\t\t\tbreak;\n\t\tcase FIELD_TYPES.ROLLUP:\n\t\t\tfieldTypeButton = FIELD_TYPE_BUTTONS.ROLLUP;\n\t\t\tbreak;\n\t\tcase FIELD_TYPES.SENTIMENTAL_ANALYSIS:\n\t\t\tfieldTypeButton = FIELD_TYPE_BUTTONS.SENTIMENTAL_ANALYSIS;\n\t\t\tbreak;\n\t\tcase FIELD_TYPES.KEYWORD_EXTRACTION:\n\t\t\tfieldTypeButton = FIELD_TYPE_BUTTONS.KEYWORD_EXTRACTION;\n\t\t\tbreak;\n\t\tcase FIELD_TYPES.LANGUAGE_DETECTOR:\n\t\t\tfieldTypeButton = FIELD_TYPE_BUTTONS.LANGUAGE_DETECTOR;\n\t\t\tbreak;\n\t\tcase FIELD_TYPES.LANGUAGE_TRANSLATOR:\n\t\t\tfieldTypeButton = FIELD_TYPE_BUTTONS.LANGUAGE_DETECTOR;\n\t\t\tclassName       = CLASSES.LANGUAGE_DETECT_ICON;\n\t\t\tbreak;\n\t}\n\n\tconst button = getTemplateByID(fieldTypeButton, 'button');// No I18N\n\tconst icon   = button.querySelector('#icon');// No I18N\n\tconst clone  = icon.cloneNode(true);\n\tclone.classList.add(className);\n\treturn clone;\n}\n","const currentScript = document.currentScript\n\nexport function getSVGIconPath(iconID) {\n        return \"/images/sprite.svg\" + iconID\n\n    // const staticPath = currentScript.dataset.imagepath\n    // if (staticPath.trim() === \"\") {\n    //     return \"/images/sprite.svg\" + iconID\n    // } else {\n    //     return staticPath + Table.Constants.STATIC_JSON[\"images/sprite.svg\"] + iconID\n    // }\n}\nexport function getGalleryPrintSVGIconPath(iconID) {\n    return \"/images/print-sprite.svg\" + iconID\n\n// const staticPath = currentScript.dataset.imagepath\n// if (staticPath.trim() === \"\") {\n//     return \"/images/sprite.svg\" + iconID\n// } else {\n//     return staticPath + Table.Constants.STATIC_JSON[\"images/print-sprite.svg\"] + iconID\n// }\n}","import { DSAggregation } from \"../../../../../DataStore/DS/Storage/Snap/DSAggregation\";\nimport { FieldID, FieldType } from \"../../../../../Types\";\nimport { Alignment } from \"../Chart/ChartConstants\";\nimport { GroupInterval } from \"./AggregationConstants\";\nimport { IAggregationRenderProperties } from \"./AggregationType\";\n\nexport class AggregationRenderPropertiesDataProvider implements IAggregationRenderProperties {\n\n    protected readonly ds: DSAggregation;\n    \n    constructor(componentDS: DSAggregation) {\n        this.ds = componentDS;\n    }\n\n    getDifference(): number | null {\n        return this.ds.getDifference();\n    }\n\n    getAnchorFieldID(): FieldID | null {\n        return this.ds.getFieldID();\n    }\n\n    getAnchorFieldName(): string {\n        return this.ds.getFieldName();\n    }\n\n    getAnchorFieldType(): FieldType {\n        return this.ds.getFieldType();\n    }\n\n    getFormula(): number | null {\n        return this.ds.getFormula();\n    }\n\n    getGroupByFieldID(): FieldID | null {\n        return this.ds.getGroupByFieldID();\n    }\n\n    getGroupByType(): GroupInterval | null {\n        return this.ds.getGroupByType();\n    }\n\n    getShowSecondaryLabel(): boolean {\n        return this.ds.getShowSecondaryLabel();\n    }\n\n    getShowSecondaryValue(): boolean {\n        return this.ds.getShowSecondaryValue();\n    }\n\n    getShowDifference(): boolean {\n        return this.ds.getShowDifference();\n    }\n\n    getTitle(): string {\n        return this.ds.getTitle() ?? \"\";\n    }\n\n    getColor(): string {\n        return this.ds.getColor() ?? \"\";\n    }\n\n    getAlignType(): Alignment {\n        return this.ds.getAlignType() ?? Alignment.LEFT;\n    }\n\n    getPrimaryValue(): number | null {\n        return this.ds.getPrimaryValue();\n    }\n\n    getSecondaryValue(): number | null {\n        return this.ds.getSecondaryValue();\n    }\n\n    getSecondaryLabel(): string {\n        return this.ds.getSecondaryLabel() ?? \"\";\n    }\n    \n}","import { Field } from \"../../../../../DataStore/DS/Storage/DSField\";\nimport { DSAggregation } from \"../../../../../DataStore/DS/Storage/Snap/DSAggregation\";\nimport { FieldID, FieldType, FilterID, TableID } from \"../../../../../Types\";\nimport { AggregationRenderPropertiesDataProvider } from \"./AggregationRenderPropertiesDataProvider\";\nimport { IAggregationProperties } from \"./AggregationType\";\n\nexport class AggregationPropertiesDataProvider extends AggregationRenderPropertiesDataProvider implements IAggregationProperties {\n\n    constructor(componentDS: DSAggregation) {\n        super(componentDS);\n    }\n\n    getDifference(): number | null {\n        return this.ds.getDifference();\n    }\n\n    getTableID(): TableID {\n        return this.ds.getTableID();\n    }\n\n    getTableName(): string {\n        return this.ds.getTableName();\n    }\n\n    getFilterOrder(): FilterID[] {\n        const filter = this.ds.getFilter();\n        if (filter) {\n            return filter.getOrder();\n        }\n        return [];\n    }\n\n    getFieldIDByFilterID(filterID: FilterID):  FieldID | null {\n        const filter = this.ds.getFilter();\n        if (filter) {\n            return filter.getFieldID(filterID);\n        }\n        return null;\n    }\n\n    getFilterOperatorByFilterID(filterID: FilterID): number[] {\n        const filter = this.ds.getFilter();\n        if (filter) {\n            return filter.getOperation(filterID);\n        }\n        return [];\n    }\n\n    getFilterValuesByFilterID(filterID: FilterID): string[] {\n        const filter = this.ds.getFilter();\n        if (filter) {\n            return filter.getValues(filterID);\n        }\n        return [];\n    }\n\n    getFilterCondition(): string | \"\" {\n        const filter = this.ds.getFilter();\n        if (filter) {\n            return filter.getCondition();\n        }\n        return \"\";\n    }\n\n    getFilterLogical(): string | \"\" {\n        const filter = this.ds.getFilter();\n        if (filter) {\n            return filter.getLogicalOperation();\n        }\n        return \"\";\n    }\n\n    getFieldOrder(): FieldID[] {\n        const fieldOrder = this.ds.getFieldOrder();\n        if (fieldOrder) {\n            return fieldOrder as FieldID[];\n        }\n        return [];\n    }\n\n    getField(fieldID: FieldID): Field | null {\n        const field = this.ds.getField(fieldID);\n        if (field) {\n            return field;\n        }\n        return null;\n    }\n\n    getFieldNameByFieldID(fieldID: FieldID): string | null {\n        const field = this.ds.getField(fieldID);\n        if (field) {\n            return field.getName();\n        }\n        return null;\n    }\n\n    getFieldTypeByFieldID(fieldID: FieldID): FieldType | null {\n        const field = this.ds.getField(fieldID);\n        if (field) {\n            return field.getType()?.getType();\n        }\n        return null;\n    }\n\n    getFieldStatusByFieldID(fieldID: FieldID): boolean | null {\n        const field = this.ds.getField(fieldID);\n        if (field) {\n            return field.getStatus();\n        }\n        return null;\n    }\n}","import { Field } from \"../../../../../DataStore/DS/Storage/DSField\";\nimport { DSChart } from \"../../../../../DataStore/DS/Storage/Snap/DSChart\";\nimport { FieldID, FieldsToPlotID } from \"../../../../../Types\";\nimport { Alignment, ChartType } from \"./ChartConstants\";\nimport { IChartRenderPropertiesDataProvider } from \"./ChartType\";\n\nexport class ChartRenderPropertiesDataProvider implements IChartRenderPropertiesDataProvider {\n    \n    protected readonly ds: DSChart;\n\n    constructor(ds: DSChart) {\n        this.ds = ds;\n    }\n\n     getFieldsToPlotOrder() {\n        return this.ds.getFieldsToPlotOrder();\n    }\n    \n    getFieldsToPlotFieldIDByFieldsToPlotID(fieldsToPlotID: FieldsToPlotID): FieldID | null {\n        const fieldID = this.ds.getFieldIDByFieldsToPlotID(fieldsToPlotID);\n        return fieldID; \n    }\n\n    getFieldsToPlotformulaByFieldsToPlotID(fieldsToPlotID: FieldsToPlotID): number | null {\n        const formula = this.ds.getFormulaByFieldsToPlotID(fieldsToPlotID);\n        return formula;\n    }\n\n    getField(fieldID: FieldID): Field | null {\n        return this.ds.getField(fieldID) || null;\n    }\n\n    getChartType(): ChartType | null {\n        return this.ds.getChartType();\n    }\n\n    getTitle(): string {\n        return this.ds.getTitle();\n    }\n\n    getXAxisLabel(): string {\n        return this.ds.getXAxisLabel();\n    }\n\n    getYAxisLabel(): string {\n        return this.ds.getYAxisLabel();\n    }\n\n    getLegendPosition(): Alignment {\n        return this.ds.getLegendPosition();\n    }\n\n    getColorTheme(): number {\n        return this.ds.getColorTheme();\n    }\n\n    getGroupByField(): Field | null {\n        const fieldID = this.ds.getGroupByFieldID();\n        if(fieldID !== null) {\n            return this.ds.getField(fieldID) || null;\n        }\n        return null;\n    }\n    \n    getData(): string[][] {                 \n        return this.ds.getData();\n    }\n}","import { Field } from \"../../../../../DataStore/DS/Storage/DSField\";\nimport { DSChart } from \"../../../../../DataStore/DS/Storage/Snap/DSChart\";\nimport { FieldID, FieldType, FilterID, TableID } from \"../../../../../Types\";\nimport { Alignment } from \"./ChartConstants\";\nimport { ChartRenderPropertiesDataProvider } from \"./ChartRenderPropertiesDataProvider\";\nimport { IChartPropertiesDataProvider } from \"./ChartType\";\n\nexport class ChartPropertiesDataProvider extends ChartRenderPropertiesDataProvider implements IChartPropertiesDataProvider {\n\n    constructor(ds: DSChart) {\n        super(ds);\n    }\n\n    getTableID(): TableID | null {\n        return this.ds.getTableID();\n    }\n\n    getTableName(): string {\n        return this.ds.getTableName();\n    }\n\n    getGroupByFieldID(): FieldID | null {\n        return this.ds.getGroupByFieldID();\n    }\n\n    getGroupByFieldName(): string {\n        return this.ds.getGroupByFieldName();\n    }\n\n    getGroupByFieldType(): string {\n        return this.ds.getGroupByFieldType();\n    }\n\n    getChartType() {\n        return this.ds.getChartType();\n    }\n\n    getTitle(): string {\n        return this.ds.getTitle();\n    }\n\n    getXAxisLabel(): string {\n        return this.ds.getXAxisLabel();\n    }\n\n    getYAxisLabel(): string {\n        return this.ds.getYAxisLabel();\n    }\n\n    getLegendPosition(): Alignment {\n        return this.ds.getLegendPosition();\n    }\n\n    getColorTheme(): number {\n        return this.ds.getColorTheme();\n    }\n\n    getGroupByField() {\n        return this.ds.getGroupByFieldType();\n    }\n\n    getFieldsToPlot(): string[] {\n        return this.ds.getFieldsToPlotOrder();\n    }\n\n    getFieldOrder(): FieldID[] {\n        return this.ds.getFieldOrder();\n    }\n\n    getField(fieldID: FieldID): Field | null {\n        return this.ds.getField(fieldID) || null;\n    }\n\n\n    getFilterOrder(): FilterID[] {\n        return this.ds.getFilterOrder();\n    }\n    \n    getFieldIDByFilterID(filterID: FilterID):  FieldID | null {\n        const filter = this.ds.getFilter();\n        if (filter) {\n            return filter.getFieldID(filterID);\n        }\n        return null;\n    }\n\n    getFilterOperatorByFilterID(filterID: FilterID): number[] {\n        const filter = this.ds.getFilter();\n        if (filter) {\n            return filter.getOperation(filterID);\n        }\n        return [];\n    }\n\n    getFilterValuesByFilterID(filterID: FilterID): string[] {\n        const filter = this.ds.getFilter();\n        if (filter) {\n            return filter.getValues(filterID);\n        }\n        return [];\n    }\n\n    getFilterCondition(): string | \"\" {\n        const filter = this.ds.getFilter();\n        if (filter) {\n            return filter.getCondition();\n        }\n        return \"\";\n    }\n\n    getFilterLogical(): string | \"\" {\n        const filter = this.ds.getFilter();\n        if (filter) {\n            return filter.getLogicalOperation();\n        }\n        return \"\";\n    }\n\n    getFieldStatusByFieldID(fieldID: FieldID): boolean | null {\n        const field = this.ds.getField(fieldID);\n        if (field) {\n            return field.getStatus();\n        }\n        return null;\n    }\n\n    getFieldNameByFieldID(fieldID: FieldID): string | null {\n        const field = this.getField(fieldID);\n        return field ? field.getName() : null;\n    }\n\n    getFieldTypeByFieldID(fieldID: FieldID): FieldType | null {\n        const field = this.getField(fieldID);\n        return field ? field.getType().getType() : null;\n    }\n\n}","import { Field } from \"../../DataStore/DS/Storage/DSField\";\nimport { DSAggregation } from \"../../DataStore/DS/Storage/Snap/DSAggregation\";\nimport { ComponentDS } from \"../../DataStore/DS/Storage/Snap/DSCard\";\nimport { DSChart } from \"../../DataStore/DS/Storage/Snap/DSChart\";\nimport { DSGrid } from \"../../DataStore/DS/Storage/Snap/DSGrid\";\nimport { DSRte } from \"../../DataStore/DS/Storage/Snap/DSRte\";\nimport { FieldID, SnapTextEditorResponse } from \"../../Types\";\nimport { ComponentType } from \"../SnapTypes\";\nimport { AggregationPropertiesDataProvider } from \"./Wiz/Components/Aggregation/AggregationPropertiesDataProvider\";\nimport { AggregationRenderPropertiesDataProvider } from \"./Wiz/Components/Aggregation/AggregationRenderPropertiesDataProvider\";\nimport { ChartPropertiesDataProvider } from \"./Wiz/Components/Chart/ChartPropertiesDataProvider\";\nimport { ChartRenderPropertiesDataProvider } from \"./Wiz/Components/Chart/ChartRenderPropertiesDataProvider\";\nimport { FilterType, GridPropertyProps, GridRenderProps } from \"./Wiz/Components/Grid/GridType\";\n\nexport function generateComponentRenderJson(componentDS: ComponentDS, componentType: ComponentType) {\n\tswitch(componentType) {\n\t\tcase ComponentType.AGGREGATION : {\n\t\t\tconst aggregationDS = componentDS as DSAggregation;\n\t\t\tconst renderDataProvider = new AggregationRenderPropertiesDataProvider(aggregationDS);\n\n\t\t\t// const primaryValue = isNotNullOrUndefined<number>(aggregationDS.getPrimaryValue()) ? aggregationDS.getPrimaryValue()! : null\n\t\t\t// const secondaryValue = isNotNullOrUndefined<number>(aggregationDS.getSecondaryValue()) ? aggregationDS.getSecondaryValue()! : null\n\t\t\t// const difference = isNotNullOrUndefined<number>(aggregationDS.getDifference()) ? aggregationDS.getDifference()! : null\n\n\t\t\t// const props: AggregationRenderProps = {\n\t\t\t// \tshowSecondaryLabel: aggregationDS.getShowSecondaryLabel() ?? false,\n\t\t\t// \tshowSecondaryValue: aggregationDS.getShowSecondaryValue() ?? false,\n\t\t\t// \tshowDifference: aggregationDS.getShowDifference() ?? false,\n\t\t\t// \tfieldID: aggregationDS.getFieldID(),\n\t\t\t// \ttitle: aggregationDS.getTitle() ?? \"\",\n\t\t\t// \tcolor: aggregationDS.getColor() ?? \"\",\n\t\t\t// \talignment: aggregationDS.getAlignType() ?? Alignment.LEFT,\n\t\t\t// \tformula: aggregationDS.getFormula() ?? null,\n\t\t\t// \tsecondaryLabel: aggregationDS.getSecondaryLabel() ?? \"\",\n\t\t\t// \tgroupByType: aggregationDS.getGroupByType() ?? null,\n\t\t\t// \tgroupByFieldID: aggregationDS.getGroupByFieldID() ?? null,\n\t\t\t\t\n\t\t\t// \tprimaryValue,\n\t\t\t// \tsecondaryValue,\n\t\t\t// \tdifference,\n\t\t\t// }\n\n\t\t\treturn renderDataProvider;\n\t\t}\n\n\t\tcase ComponentType.CHART : {\n\t\t\tconst chartDS = componentDS as DSChart\n\t\t\tconst renderDataProvider = new ChartRenderPropertiesDataProvider(chartDS);\n\n\t\t\treturn renderDataProvider;\n\t\t\t// const fieldInfo = chartDS.getFieldsToPlot()?.map((fieldID) => {\n\t\t\t// \treturn {\n\t\t\t// \t\tfieldID,\n\t\t\t// \t\tfieldName: chartDS.getFieldName(fieldID),\n\t\t\t// \t\tfieldType: `${chartDS.getFieldType(fieldID)}`\n\t\t\t// \t}\n\t\t\t// })\n\t\n\t\t\t// const props: ChartRenderProps = {\n\t\t\t// \ttype: chartDS.getChartType() ?? ChartType.COLUMN,\n\t\t\t// \ttitle: chartDS.getTitle() ?? \"\",\n\t\t\t// \txAxisLabel: chartDS.getXAxisLabel() ?? \"\",\n\t\t\t// \tyAxisLabel: chartDS.getYAxisLabel() ?? \"\",\n\t\t\t// \tdata: chartDS.getData() ?? [],\n\t\t\t// \tfieldsToPlot: fieldInfo ?? [],\n\t\t\t// \tlegendPosition: chartDS.getLegendPosition() ?? \"\",\n\t\t\t// \tcolorTheme: chartDS.getColorTheme() ?? \"\",\n\t\t\t// \tgroupByField: isNotNullOrUndefined(chartDS.getGroupByFieldID()) ? chartDS.getFieldInstance(chartDS.getGroupByFieldID()!)! : null\n\t\t\t// }\n\t\t\t// return props\n\t\t}\n\n\t\tcase ComponentType.TEXT : {\n\t\t\tconst rteDS = componentDS as DSRte\n\t\t\tconst props: SnapTextEditorResponse = {\n\t\t\t\thtml: rteDS.getHtml() ?? \"\"\n\t\t\t}\n\t\t\treturn props\n\t\t}\n\n\t\tcase ComponentType.GRID :{\n\t\t\tconst gridDS = componentDS as DSGrid\n\t\t\tconst fieldsWidth: {[x: FieldID]: number} = {}\n\t\t\tconst fields: {[x: FieldID]: Field} = {}\n\t\t\tgridDS.getFieldOrder().forEach((fieldID) => {\n\t\t\t\tfieldsWidth[fieldID] = gridDS.getFieldWidth(fieldID) ?? 160\n\t\t\t\tfields[fieldID] = gridDS.getField(fieldID)!\n\t\t\t})\n\n\t\t\tconst props: GridRenderProps = {\n\t\t\t\ttitle: gridDS.getTitle() ?? \"\",\n\t\t\t\ttableID: gridDS.getTableID() ?? \"\",\n\t\t\t\tprimaryFieldID: gridDS.getPrimaryFieldID() || null,\n\t\t\t\trecordHeight: gridDS.getRecordHeight() ?? 30,\n\t\t\t\trecordOrder: gridDS.getRecordOrder() ?? [],\n\t\t\t\tfieldOrder: gridDS.getFieldOrder() ?? [],\n\t\t\t\t\n\t\t\t\tfieldsWidth,\n\t\t\t\tfields\n\t\t\t}\n\t\t\treturn props\n\t\t}\n\t}\n}\n\nexport function generateComponentPropertyJson(componentDS: ComponentDS, componentType: ComponentType) {\n\tswitch(componentType) {\n\t\tcase ComponentType.AGGREGATION : {\n\t\t\tconst aggregationDS = componentDS as DSAggregation\n\n\t\t\tconst propertiesDataProvider = new AggregationPropertiesDataProvider(aggregationDS);\n\t\n\t\t\t// const fields: {[x: FieldID]: Field} = {}\n\t\t\t// const fieldOrder: FieldID[] = aggregationDS.getFieldOrder();\n\t\t\t// fieldOrder.forEach((fieldID) => {\n\t\t\t// \tfields[fieldID] = aggregationDS.getField(fieldID)!\n\t\t\t// })\n\n\n\t\t\t// const filterDS = aggregationDS.getFilter();\n\t\t\t// const filterInfo = {\n\t\t\t// \tcondition: filterDS.getCondition(),\n\t\t\t// \tlogical: filterDS.getLogicalOperation(),\n\t\t\t// \titems: filterDS.getOrder().map((filterID) => {\n\t\t\t// \t\treturn {\n\t\t\t// \t\t\tfilterID,\n\t\t\t// \t\t\tfieldID: filterDS.getFieldID(filterID),\n\t\t\t// \t\t\toperators: filterDS.getOperation(filterID),\n\t\t\t// \t\t\tvalues: filterDS.getValues(filterID)\n\t\t\t// \t\t}\n\t\t\t// \t})\n\t\t\t// }\n\n\t\t\t// const props: AggregationPropertyProps = {\n\t\t\t// \ttableID: aggregationDS.getTableID() ?? null,\n\t\t\t// \ttableName: aggregationDS.getTableName() ?? \"\",\n\t\t\t// \tviewID: aggregationDS.getViewID() ?? null,\n\t\t\t// \tviewName: aggregationDS.getViewName() ?? \"\",\n\t\t\t// \tviewType: aggregationDS.getViewType() ?? \"\",\n\t\t\t// \tfieldID: aggregationDS.getFieldID() ?? null,\n\t\t\t// \tfieldName: aggregationDS.getFieldName(),\n\t\t\t// \tfieldType: aggregationDS.getFieldType(),\n\t\t\t// \tformula: aggregationDS.getFormula() ?? null,\n\t\t\t// \tgroupByFieldID: aggregationDS.getGroupByFieldID() ?? null,\n\t\t\t// \tgroupByFieldName: aggregationDS.getGroupByFieldName() ?? \"\",\n\t\t\t// \tgroupByFieldType: aggregationDS.getGroupByFieldType() ?? \"\",\n\t\t\t// \tgroupByType: aggregationDS.getGroupByType() ?? null,\n\t\t\t// \tshowSecondaryLabel: aggregationDS.getShowSecondaryLabel() ?? false,\n\t\t\t// \tshowSecondaryValue: aggregationDS.getShowSecondaryValue() ?? false,\n\t\t\t// \tshowDifference: aggregationDS.getShowDifference() ?? false,\n\t\t\t// \ttitle: aggregationDS.getTitle() ?? \"\",\n\t\t\t// \tcolor: aggregationDS.getColor() ?? \"\",\n\t\t\t// \talignment: aggregationDS.getAlignType() ?? Alignment.LEFT,\n\t\t\t// \tfilters: filterInfo,\n\t\t\t// \tfields,\n\t\t\t// \tfieldOrder\n\t\t\t// }\n\t\t\t// return props\n\n\t\t\treturn propertiesDataProvider;\n\t\t}\n\n\t\tcase ComponentType.CHART : {\n\t\t\tconst chartDS = componentDS as DSChart\n\t\t\tconst propertiesDataProvider = new ChartPropertiesDataProvider(chartDS);\n\t\t\treturn propertiesDataProvider;\n\t\t\t// const fieldInfo = chartDS.getFieldsToPlot()?.map((fieldID) => {\n\t\t\t// \treturn {\n\t\t\t// \t\tfieldID,\n\t\t\t// \t\tfieldName: chartDS.getFieldName(fieldID),\n\t\t\t// \t\tfieldType: `${chartDS.getFieldType(fieldID)}`\n\t\t\t// \t}\n\t\t\t// })\n\t\t\t// const props: ChartPropertyProps = {\n\t\t\t// \ttableID: chartDS.getTableID() ?? null,\n\t\t\t// \ttableName: chartDS.getTableName() ?? \"\",\n\t\t\t// \t// viewID: chartDS.getViewID() ?? null,\n\t\t\t// \tviewName: chartDS.getViewName() ?? \"\",\n\t\t\t// \tviewType: chartDS.getViewType() ?? \"\",\n\t\t\t// \ttype: chartDS.getChartType() ?? ChartType.COLUMN,\n\t\t\t// \ttitle: chartDS.getTitle() ?? \"\",\n\t\t\t// \tdrawWith: chartDS.getDrawWith(),\n\t\t\t// \tgroupByFieldID: chartDS.getGroupByFieldID() ?? null,\n\t\t\t// \tgroupByFieldName: chartDS.getGroupByFieldName() ?? \"\",\n\t\t\t// \tgroupByFieldType: chartDS.getGroupByFieldType() ?? \"\",\n\t\t\t// \tlegendPosition: chartDS.getLegendPosition() ?? Alignment.BOTTOM,\n\t\t\t// \tformula: chartDS.getFormula() ?? null,\n\t\t\t// \txAxisLabel: chartDS.getXAxisLabel() ?? \"\",\n\t\t\t// \tyAxisLabel: chartDS.getYAxisLabel() ?? \"\",\n\t\t\t// \tfieldsToPlot: fieldInfo ?? [],\n\t\t\t// \tcolorTheme: chartDS.getColorTheme() ?? \"\"\n\t\t\t// }\n\t\t\t// return props\n\t\t}\n\n\t\tcase ComponentType.TEXT : {\n\t\t\tconst rteDS = componentDS as DSRte\n\t\t\tconst props: SnapTextEditorResponse = {\n\t\t\t\thtml: rteDS.getHtml() ?? \"\"\n\t\t\t}\n\t\t\treturn props\n\t\t}\n\n\t\tcase ComponentType.GRID: {\n\t\t\t\n\t\t\tconst gridDS = componentDS as DSGrid\n\t\t\tconst sortDS = gridDS.getSort()\n\t\t\tconst filterDS = gridDS.getFilter()\n\t\t\tconst sortsInfo = sortDS.getSortIDs().map((sortID) => {\n\t\t\t\treturn {\n\t\t\t\t\tsortID,\n\t\t\t\t\tfieldID: sortDS.getFieldID(sortID),\n\t\t\t\t\ttype: sortDS.getType(sortID)\n\t\t\t\t}\n\t\t\t})\n\n\t\t\tconst filterInfo = {\n\t\t\t\tcondition: filterDS.getCondition(),\n\t\t\t\tlogical: filterDS.getLogicalOperation(),\n\t\t\t\titems: filterDS.getOrder().map((filterID) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tfilterID,\n\t\t\t\t\t\tfieldID: filterDS.getFieldID(filterID),\n\t\t\t\t\t\toperators: filterDS.getOperation(filterID),\n\t\t\t\t\t\tvalues: filterDS.getValues(filterID)\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t}\n\n\t\t\tconst fields: {[x: FieldID]: Field} = {}\n\t\t\tconst fieldsWidth: {[x: FieldID]: number} = {}\n\t\t\tgridDS.getFieldOrder().forEach((fieldID) => {\n\t\t\t\tfields[fieldID] = gridDS.getField(fieldID)!\n\t\t\t\tfieldsWidth[fieldID] = gridDS.getFieldWidth(fieldID) ?? 160\n\t\t\t})\n\n\t\t\tconst props: GridPropertyProps = {\n\t\t\t\ttitle: gridDS.getTitle() ?? \"\",\n\t\t\t\trecordHeight: gridDS.getRecordHeight() ?? 30,\n\t\t\t\tfieldOrder: gridDS.getFieldOrder() ?? [],\n\t\t\t\ttableID: gridDS.getTableID() ?? null,\n\t\t\t\ttableName: gridDS.getTableName() ?? \"\",\n\t\t\t\t// viewID: gridDS.getViewID() ?? null,\n\t\t\t\t// viewName: gridDS.getViewName() ?? \"\",\n\t\t\t\t// viewType: gridDS.getViewType() ?? \"\",\n\t\t\t\t\n\t\t\t\tisSortLimitReached: gridDS.isSortLimitReached() ?? false,\n\t\t\t\tsorts: sortsInfo ?? [],\n\t\t\t\tfilterType: gridDS.getFilterType() ?? FilterType.ALL_RECORDS,\n\t\t\t\tfilters: filterInfo,\n\n\t\t\t\tfields,\n\t\t\t\tfieldsWidth\n\t\t\t}\n\n\t\t\treturn props\n\t\t}\n\t}\n}\n","export const AGGREGATION_PROPERTY = {\n    INITIAL_HEIGHT: 8,\n    INITIAL_WIDTH: 15,\n    MIN_HEIGHT: 6,\n    MAX_HEIGHT: 30,\n    MIN_WIDTH: 12,\n    MAX_WIDTH: 60\n}\n\nexport const CHART_PROPERTY = {\n    INITIAL_HEIGHT: 16,\n    INITIAL_WIDTH: 30,\n    MIN_HEIGHT: 12,\n    MAX_HEIGHT: 60,\n    MIN_WIDTH: 20,\n    MAX_WIDTH: 60\n}\n\nexport const TEXT_PROPERTY = {\n    INITIAL_HEIGHT: 8,\n    INITIAL_WIDTH: 15,\n    MIN_HEIGHT: 3,\n    MAX_HEIGHT: 30,\n    MIN_WIDTH: 12,\n    MAX_WIDTH: 60\n}\n\nexport const GRID_PROPERTY = {\n    INITIAL_HEIGHT: 16,\n    INITIAL_WIDTH: 30,\n    MIN_HEIGHT: 12,\n    MAX_HEIGHT: 60,\n    MIN_WIDTH: 30,\n    MAX_WIDTH: 60\n}","export const setEndOfContenteditable = el => {\n\tif (document.createRange) {\n\t\tconst range = document.createRange();\n\t\trange.selectNodeContents(el);\n\t\trange.collapse(false);\n\t\tconst selection = window.getSelection();\n\t\tselection.removeAllRanges();\n\t\tselection.addRange(range);\n\t}\n}\nexport const getBaseFromCurrentURL = () => {\n\tconst origin = location.origin;\n\tconst paths = location.pathname.split('/');\n\t\n\treturn origin + \"/\" + paths[1];\n}\n\n\nexport const getBaseIDFromCurrentURL = () => {\n\tconst paths = location.pathname.split('/');\n\tif (paths[1].length > 37) {\n\t\tconst path = paths[1].split(\"bas\");\n\t\treturn path[1]//.substring(2) //As of now done. Handle more like beta, share \n\t}\n\treturn null;\n}\n\nexport const getTableIDFromCurrentURL = () => {\n\tif (globalThis.Table.isViewPage) {\n\t\tconst paths = location.pathname.split('/');\n\t\tconst tableIndexInUrl = 2;\n\t\tif (paths[tableIndexInUrl].includes('tbl')) { //TODO: Add as a const.\n\t\t\tconst tableID = paths[tableIndexInUrl].split('tbl');\n\t\t\tconst tableIDIndex = 1\n\t\t\treturn tableID[tableIDIndex]\n\t\t}\n\t\treturn null\n\t}\n\treturn null;\n}\n\nexport const getViewIDFromCurrentURL = () => {\n\tif (globalThis.Table.isViewPage) {\n\t\tconst paths = location.pathname.split('/');\n\t\tconst viewIndexInUrl = 3;\n\t\tif (paths[viewIndexInUrl].includes('viw')) { //TODO: Add as a const.\n\t\t\tconst tableID = paths[viewIndexInUrl].split('viw');\n\t\t\tconst viewIDIndex = 1\n\t\t\treturn tableID[viewIDIndex]\n\t\t}\n\t\treturn null;\n\t}\n\treturn null;\n}\n\nexport const getHashedViewIDFromCurrentURL = () => {\n\tconst paths = location.pathname.split('/');\n\treturn paths[paths.length - 1];\n}\n\nexport function getShareViewURL() {\n\treturn location.href; // NO I18N\n}\n\nexport function getCDNStaticURL(fileName, type) {\n\n\tif (Table.useCompression) {\n\n\t\tlet jsPath = Table.AppRegistry.JS_PATH;\n\t\tlet staticMap = Table.Constants.STATIC_JSON;\n\t\treturn jsPath + staticMap[fileName];\n\n\t} else {\n\n\t\treturn document.location.origin + \"/\" + fileName;\n\t}\n}\nexport function getStorePageURL(){\n\tconst portalID           = Table.State.getPortalID();                                                                            //TODO: Get from state, this hotfix is due to listingPage\n\tconst serviceID          = Table.Constants.Store.ServiceID;\n\tconst redirectionURL     = Table.Constants.Store.RedirectionURL;\n\tconst planRedirectionURL = Table.Constants.Store.PlanRedirectionURL;\n\tconst isPortalOwner      = Table.State.getIsPortalOwner();\n\tconst url                = isPortalOwner ? `${redirectionURL}?serviceId=${serviceID}&customId=${portalID}` : planRedirectionURL;\n\treturn url;\n}\n\nfunction stringInterpolate(str, params) {\n\n\tfunction interpolate(params) {\n\t\tconst names = Object.keys(params);\n\t\tconst vals = Object.values(params);\n\t\treturn new Function(...names, `return \\`${this}\\`;`)(...vals);\n\t}\n\treturn interpolate.call(str, params);\n}\n\nexport function getDynamicMessage(message, dynamicContent) {\n\n\treturn stringInterpolate(message, dynamicContent);\n}\n\n/**\n * \n * @param {String} message given by mesageResouces properties file - eg : Hi {{userNameDom}}, Welcome\n * @param {JSONObject} dynamicContent key, value pair to be replaced in the messsage - eg: {userNameDom: DomObject(<div>Rajin</div>)}\n */\nconst DYNAMIC_STRING_START = \"{{\";\nconst DYNAMIC_STRING_END = \"}}\";\n\nexport function getDynamicHTMLFragment(message, dynamicObject) {\n\t\n\tlet DYNAMIC_IDX = 0;\n\tlet fragment = document.createDocumentFragment();\n\tfor (const key in dynamicObject) {\n\t\tlet sIdx = message.indexOf(DYNAMIC_STRING_START, DYNAMIC_IDX);\n\t\tlet eIdx = message.indexOf(DYNAMIC_STRING_END, DYNAMIC_IDX + 2);\n\n\t\tlet txtNode = document.createElement(\"text\");\n\t\ttxtNode.textContent = message.substring(DYNAMIC_IDX, sIdx);\n\t\tfragment.appendChild(txtNode);\n\t\tfragment.appendChild(dynamicObject[key]);\n\n\t\tDYNAMIC_IDX = eIdx + 2;\n\t}\n\treturn fragment;\n}\n\nexport function getDynamicHTMLFragmentNew(message, dynamicObject) {\n\tfunction templateTag(strings, ...keys) {\n\t\tconst getTextElement = (text) => document.createTextNode(text);\n\t\n\t\tconst result = document.createDocumentFragment();\n\t\tresult.appendChild(getTextElement(strings[0]))\n\t\tkeys.forEach((key, i) => {\n\t\t\tresult.appendChild(key instanceof HTMLElement ? key : getTextElement(key))\n\t\t\tresult.appendChild(getTextElement(strings[i + 1]));\n\t\t});\n\t\treturn result;\n\t}\n\t\n\tfunction interpolate(params) {\n\t\tconst names = Object.keys(params);\n\t\tconst vals = Object.values(params);\n\t\treturn new Function(...names, `return ${templateTag}\\`${this}\\`;`)(...vals);\n\t}\n\treturn interpolate.call(message, dynamicObject);\n}\n\nconst context = {\n\ttemplateTag: (strings, ...keys) => {\n\t\tconst getTextElement = (text) => {\n\t\t\tconst elem = document.createElement('text')\n\t\t\telem.textContent = text;\n\t\t\treturn elem;\n\t\t}\n\t\n\t\tconst result = document.createDocumentFragment();\n\t\tresult.appendChild(getTextElement(strings[0]))\n\t\tkeys.forEach((key, i) => {\n\t\t\tresult.appendChild(key instanceof HTMLElement ? key : getTextElement(key))\n\t\t\tresult.appendChild(getTextElement(strings[i + 1]));\n\t\t});\n\t\treturn result;\n\t}\n}\n","import { getTemplate } from \"../../TemplatesForAll.js\";\nimport { getCDNStaticURL } from \"../../Utility/Utility.js\";\n\nexport function getCircleLoaderDom() {\n\tconst loader = document.createElement('span');\n\tloader.classList.add('cmbtn-Loader');\n\treturn loader\n}\n\nexport function getSkeletonLoaderDom() { \n\tconst template = getTemplate(\"ListingPageComponentTemplate\"); //No I18N\n\tconst loader = template?.querySelector(\".ZS-listing-loader\") as HTMLDivElement; //No I18N\n\treturn loader\n}\n\nexport function getPageLoaderDom() {\n\tconst template = getTemplate(\"ListingPageComponentTemplate\"); //No I18N\n\tconst loader = template?.querySelector(\"#pageLoader\") as HTMLDivElement; //No I18N\n\treturn loader\n}\n\nexport function getSnapBuilderLoaderDom() {\n\tconst template = getTemplate(\"snapBuilderLoaderTemplate\"); //No I18N\n\tconst loader = template?.querySelector(\".ZS-snap-loader\") as HTMLDivElement; //No I18N\n\treturn loader\n}\n\nexport function getMessage(message: string) {\n\treturn (Table as any).Constants.JSMsg[message];\n}\n\nexport function delay(time: number) {\n\treturn new Promise((resolve) => {\n\t\tsetTimeout(resolve, time);\n\t});\n}\n\nexport function isNotNullOrUndefined<T = any>(value: any): value is T {\n\treturn value !== null && value !== undefined\n}\n\nexport function isNotUndefined<T = any>(value: any): value is T | null {\n\treturn value !== undefined\n}\n\nexport function getSnapCDNStaticURL(url: string) {\n\treturn getCDNStaticURL(`SnapComponents/${url}`);\n}\n\nexport function getDeepCloneDom(dom: HTMLElement, excludeChildren?: Node[]) {\n\tfunction recursiveClone(node: Node): Node | null {\n\t\t// If the node is the one to be excluded, return null\n\t\tif (excludeChildren?.includes(node)) {\n\t\t\treturn null;\n\t\t}\n\n\t\t// Clone the node\n\t\tconst clone = node.cloneNode(false);\n\n\t\t// Recursively clone and append children\n\t\tnode.childNodes.forEach((child) => {\n\t\t\tconst childClone = recursiveClone(child);\n\t\t\tif (childClone) {\n\t\t\t\tclone.appendChild(childClone);\n\t\t\t}\n\t\t});\n\n\t\treturn clone;\n\t}\n\n\treturn recursiveClone(dom) as HTMLElement;\n}","import { ViewType } from \"../../../../../Types\"\nexport const colors = [\"#E0D6FF\", \"#FFD8EE\", \"#C4E6FA\", \"#D1D6FF\", \"#BAF2EB\", \"#FFE5CC\", \"#FFD1D1\", \"#CCE0FF\", \"#FDEBCF\", \"#E3E3E3\"] as const\nexport const borderColors = [\"#B7A8E7\", \"#E6A1C4\", \"#7ABCD9\", \"#9FA9EB\", \"#8ACCA2\", \"#DCB38C\", \"#DF9C97\", \"#8CB4F2\", \"#D9B880\", \"#ABAFB2\"] as const\n\n\nexport enum GroupInterval {\n    WEEK = 0,\n    WEEKDAY = 1,\n    MONTH = 2,\n    YEAR = 3,\n    QUARTER = 4,\n}\n\nexport const COUNT_FORMULA = 4\n\nexport const VIEW_ICON_SVG_TEMPLATE_FROM_TYPE: { [key in ViewType]: string } = {\n    \"1\" : \"gridSVGIconTemplate\",\n    \"2\" : \"kanbanSVGIconTemplate\",\n    \"3\" : \"calendarSVGIconTemplate\",\n    \"4\" : \"gallerySVGIconTemplate\",\n    \"5\" : \"ganttSVGIconTemplate\",\n    \"6\" : \"formSVGIconTemplate\",\n}","import { IAppendOnlyHtml } from \"../../../../../Dom/Middle/AddFieldPanel/_auxillaries/IAppendOnlyHtml\";\nimport { getTemplate } from \"../../../../../TemplatesForAll.js\";\nimport { getMessage } from \"../../../../Utility/utility\";\nimport { Alignment } from \"../Chart/ChartConstants\";\nimport { GroupInterval } from \"./AggregationConstants\";\n\nexport class AggregationUI {\n\n\tprivate readonly dom: HTMLDivElement;\n\tprivate readonly primaryLabelDom: HTMLHeadingElement;\n\tprivate readonly primaryValueDom: HTMLSpanElement;\n\tprivate readonly secondaryLabelDom: HTMLHeadingElement;\n\tprivate readonly secondaryValueDom: HTMLSpanElement;\n\tprivate readonly secondaryValueHolder: HTMLParagraphElement\n\tprivate readonly secondaryValueCategoryLabelDom: HTMLSpanElement;\n\tprivate readonly differenceDom: HTMLParagraphElement;\n\tprivate readonly valueHolder: HTMLDivElement;\n\tprivate readonly upArrow: HTMLSpanElement\n\tprivate readonly downArrow: HTMLSpanElement\n\n\tconstructor() {\n\t\tconst template = getTemplate(\"aggregationTemplate\") as HTMLTemplateElement;\n\n\t\tthis.dom = template.querySelector(\".ZDCI-kpi\") as HTMLDivElement;\n\t\tthis.secondaryLabelDom = template.querySelector(\"#secondaryLabel\") as HTMLHeadingElement;\n\n\t\tthis.valueHolder = this.dom.querySelector(\".ZDCI-kpi-title\") as HTMLDivElement;\n\t\tthis.secondaryValueHolder = template.querySelector(\"#secondaryValueHolder\") as HTMLDivElement;\n\t\tthis.secondaryValueDom = this.secondaryValueHolder.querySelector(\"#secondaryValue\") as HTMLSpanElement;\n\t\tthis.secondaryValueCategoryLabelDom = this.secondaryValueHolder.querySelector(\"#secondaryCategoryLabel\") as HTMLSpanElement;\n\t\t\n\t\tthis.primaryLabelDom = this.dom.querySelector(\"#primaryLabel\") as HTMLHeadingElement;\n\t\tthis.primaryValueDom = this.dom.querySelector(\"#value\") as HTMLHeadingElement;\n\n\t\tthis.differenceDom = template.querySelector(\"#differenceHolder\") as HTMLParagraphElement;\n\t\tthis.upArrow = template.querySelector(\"#upArrow\") as HTMLSpanElement;\n\t\tthis.downArrow = template.querySelector(\"#downArrow\") as HTMLSpanElement;\n\t}\n\n\tsetValue(value: string) {\n\t\tthis.primaryValueDom.textContent = value\n\t\tthis.primaryValueDom.title = value\n\t}\n\n\tsetSecondaryLabel(value: string) {\n\t\tthis.secondaryLabelDom.textContent = value\n\t}\n\n\tsetSecondaryValue(value: string) {\n\t\tthis.secondaryValueDom.textContent = value\n\t\tthis.secondaryValueDom.title = value\n\t}\n\n\tsetSecondaryCategory(category: GroupInterval) {\n\t\tconst prefix = getMessage(\"UI.tables.common.previous\") \n\t\tconst categoryLabel = {\n\t\t\t[GroupInterval.WEEK]: getMessage(\"UI.Table.Snap.Aggregation.Comparison.Interval.Week\"),\n\t\t\t[GroupInterval.WEEKDAY]: getMessage(\"UI.Table.Snap.Aggregation.Comparison.Interval.Day\"),\n\t\t\t[GroupInterval.MONTH]: getMessage(\"UI.Table.Snap.Aggregation.Comparison.Interval.Month\"),\n\t\t\t[GroupInterval.YEAR]: getMessage(\"UI.Table.Snap.Aggregation.Comparison.Interval.Year\"),\n\t\t\t[GroupInterval.QUARTER]: getMessage(\"UI.Table.Snap.Aggregation.Comparison.Interval.Quarter\")\n\t\t}\n\t\tthis.secondaryValueCategoryLabelDom.textContent = `${prefix} ${categoryLabel[category]}`\n\t}\n\n\tsetDifference(difference: number) {\n\t\tthis.differenceDom.innerHTML = \"\"\n\t\tconst valueSpan = document.createElement('span');\n\t\tvalueSpan.textContent = difference ? Math.abs(parseFloat(difference.toFixed(2))) + \"%\" : \"0%\";\n\n\t\tif(difference > 0) {\n\t\t\tthis.differenceDom.append(this.upArrow)\n\t\t\tthis.differenceDom.classList.add(\"ZDCI-comp-positive\")\n\t\t}\n\t\telse if(difference < 0) {\n\t\t\tthis.differenceDom.append(this.downArrow)\n\t\t\tthis.differenceDom.classList.remove(\"ZDCI-comp-positive\")\n\t\t}\n\t\tthis.differenceDom.append(valueSpan)\n\t}\n\n\tsetLabel(label: string) {\n\t\tif(!label) {\n\t\t\tthis.dom.classList.add(\"ZS-title-placeholder\")\n\t\t\tthis.primaryLabelDom.classList.add(\"ZDCI-kpi-placeholder\")\n\t\t\tthis.primaryLabelDom.textContent = getMessage(\"UI.tables.common.title\")\n\t\t}\n\t\telse {\n\t\t\tthis.dom.classList.remove(\"ZS-title-placeholder\")\n\t\t\tthis.primaryLabelDom.classList.remove(\"ZDCI-kpi-placeholder\")\n\t\t\tthis.primaryLabelDom.textContent = label\n\t\t\tthis.primaryLabelDom.title = label\n\t\t}\n\t}\n\n\tsetColor(color: string) {\n\t\tthis.dom.style.background = color;\n\t\t!color ? this.dom.classList.add(\"ZDCI-kpi-emptybg\") : this.dom.classList.remove(\"ZDCI-kpi-emptybg\")\n\t}\n\n\tsetAlign(align: Alignment) {\n\t\tswitch(align) {\n\t\t\tcase Alignment.LEFT:\n\t\t\tdefault: {\n\t\t\t\tthis.dom.classList.remove(\"ZDCI-kpi-right\", \"ZDCI-kpi-center\")\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase Alignment.RIGHT:{\n\t\t\t\tthis.dom.classList.add(\"ZDCI-kpi-right\")\n\t\t\t\tthis.dom.classList.remove(\"ZDCI-kpi-center\")\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tcase Alignment.CENTER: {\n\t\t\t\tthis.dom.classList.add(\"ZDCI-kpi-center\")\n\t\t\t\tthis.dom.classList.remove(\"ZDCI-kpi-right\")\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t}\n\n\tappendTo(parent: IAppendOnlyHtml) {\n\t\tparent.append(this.dom);\n\t}\n\n\tshowSecondaryValue() {\n\t\tthis.dom.append(this.secondaryValueHolder)\n\t}\n\n\thideSecondaryValue() {\n\t\tthis.secondaryValueHolder.remove()\n\t}\n\n\tshowSecondaryLabel() {\n\t\tthis.dom.insertBefore(this.secondaryLabelDom, this.primaryLabelDom)\n\t}\n\n\thideSecondaryLabel() {\n\t\tthis.secondaryLabelDom.remove()\n\t}\n\n\thideDifference() {\n\t\tthis.differenceDom.remove()\n\t}\n\n\tshowDifference() {\n\t\tthis.valueHolder.append(this.differenceDom)\n\t}\n}\n","import { ZSGrid } from \"../Importer.js\";\nimport { getLocale } from \"../Locale.js\";\nimport { BUBBLE_NODE_DARK_THEMES, BUBBLE_NODE_LIGHT_THEMES, BUBBLE_NODE_ULTRALIGHT_THEMES } from \"./ProductThemeColors.ts\";\n\nconst none               = Table.Constants.JSMsg[\"UI.tables.common.none\"];\nconst usDollar           = Table.Constants.JSMsg[\"UI.Editor.Field.AddFieldConstants.USDollar\"];\nconst europeanEuro       = Table.Constants.JSMsg[\"UI.Editor.Field.AddFieldConstants.EuropeanEuro\"];\nconst britishPound       = Table.Constants.JSMsg[\"UI.Editor.Field.AddFieldConstants.BritishPound\"];\nconst japaneseYen        = Table.Constants.JSMsg[\"UI.Editor.Field.AddFieldConstants.JapaneseYen\"];\nconst canadianDollar     = Table.Constants.JSMsg[\"UI.Editor.Field.AddFieldConstants.CanadianDollar\"];\nconst australianDollar   = Table.Constants.JSMsg[\"UI.Editor.Field.AddFieldConstants.AustralianDollar\"];\nconst chineseYuan        = Table.Constants.JSMsg[\"UI.Editor.Field.AddFieldConstants.ChineseYuan\"];\nconst swissFranc         = Table.Constants.JSMsg[\"UI.Editor.Field.AddFieldConstants.SwissFranc\"];\nconst singaporeDollar    = Table.Constants.JSMsg[\"UI.Editor.Field.AddFieldConstants.SingaporeDollar\"];\nconst indianRupee        = Table.Constants.JSMsg[\"UI.Editor.Field.AddFieldConstants.IndianRupee\"];\nconst southAfricanRand   = Table.Constants.JSMsg[\"UI.Editor.Field.AddFieldConstants.SouthAfricanRand\"];\nconst left               = Table.Constants.JSMsg[\"UI.tables.common.left\"];\nconst right              = Table.Constants.JSMsg[\"UI.tables.common.right\"];\nconst accounting         = Table.Constants.JSMsg[\"UI.Editor.Field.AddFieldConstants.Accounting\"];\nconst capitalizeEachWord = Table.Constants.JSMsg[\"UI.tables.common.capitalizeeachword\"];\nconst lowercase          = Table.Constants.JSMsg[\"UI.tables.common.lowercase\"];\nconst uppercase          = Table.Constants.JSMsg[\"UI.tables.common.uppercase\"];\nconst sentenceCase       = Table.Constants.JSMsg[\"UI.tables.common.sentencecase\"];\nconst twelveHour         = Table.Constants.JSMsg[\"UI.Editor.Field.AddFieldConstants.TwelveHour\"];\nconst twentyFourHour     = Table.Constants.JSMsg[\"UI.Editor.Field.AddFieldConstants.TwentyFourHour\"];\nconst number             = Table.Constants.JSMsg[\"UI.tables.common.number\"];\nconst percent            = Table.Constants.JSMsg[\"UI.Editor.Field.AddFieldConstants.Percent\"];\nconst currency           = Table.Constants.JSMsg[\"UI.tables.common.currency\"];\nconst friendlyFormat     = Table.Constants.JSMsg[\"UI.Editor.Field.AddFieldConstants.friendlyFormat\"];\nconst dateMonthYear      = Table.Constants.JSMsg[\"UI.Editor.Field.AddFieldConstants.dateMonthYear\"];\nconst monthDateYear      = Table.Constants.JSMsg[\"UI.Editor.Field.AddFieldConstants.monthDateYear\"];\nconst yearMonthDate      = Table.Constants.JSMsg[\"UI.Editor.Field.AddFieldConstants.yearMonthDate\"];\n\nconst timeStamp     = new Date().getTime();\nconst dateFormatter = ZSGrid.dateFormatter; // TODO: import from importer.js\nconst locale        = getLocale();\nconst date1         = dateFormatter(timeStamp, locale, 'Month D, YYYY');// No I18N\nconst date2         = dateFormatter(timeStamp, locale, 'DD/MM/YYYY');// No I18N\nconst date3         = dateFormatter(timeStamp, locale, 'MM/DD/YYYY');// No I18N\nconst date4         = dateFormatter(timeStamp, locale, 'YYYY/MM/DD');// No I18N\n\n//new formats\nexport const CURRENCIES = {\n\tUSD : usDollar,\n\tEUR : europeanEuro,\n\tGBP : britishPound,\n\tJPY : japaneseYen,\n\tCAD : canadianDollar,\n\tAUD : australianDollar,\n\tCNY : chineseYuan,\n\tCHF : swissFranc,\n\tSGD : singaporeDollar,\n\tINR : indianRupee,\n\tZAR : southAfricanRand \n}\n\nexport const PRECISIONS = {\n\tZERO_PRECISION  : none,\n\tONE_PRECISION   : '1.0', //No I18N\n\tTWO_PRECISION   : '1.00', //No I18N\n\tTHREE_PRECISION : '1.000' //No I18N\n\n}\n\nexport const CURRENCY_POSITIONS = {\n\tNONE       : none,\n\tBEFORE     : left,\n\tAFTER      : right,\n\tACCOUNTING : accounting\n}\n\nexport const TEXT_FORMATS = {\n\tDEFAULT       : none,\n\tINIT_CAPS     : capitalizeEachWord,\n\tLOWER_CASE    : lowercase,\n\tUPPER_CASE    : uppercase,\n\tSENTENCE_CASE : sentenceCase \n}\n\n// export const PERCENT_SYMBOL  = { // TODO: master_proxy_performance - unused lines: Remove these lines after some months of release\n// \tHIDE: '100000', //No I18N\n// \tSHOW: '100000 %' //No I18N\n// }\n\nexport const PHONE_NUMBER_FORMATS = {\n\tDEFAULT             : '0123456789', //No I18N\n\tHYPHEN              : '012-345-6789', //No I18N\n\tSPACE_HYPHEN        : '012 345-6789', //No I18N\n\tSPACE               : '012 345 6789', //No I18N\n\tBRACES_SPACE_HYPHEN : '(012) 345-6789', //No I18N\n\tPERIOD              : '012.345.6789' //No I18N\n}\n\nexport const DATE_FORMATS = {\n\tDEFAULT     : date1,\n\tDATE_FIRST  : date2,\n\tMONTH_FIRST : date3,\n\tYEAR_FIRST  : date4\n}\n\nexport const DATE_FORMATS_DISPLAY_FORMATS = {\n\tDEFAULT     : friendlyFormat,\n\tDATE_FIRST  : dateMonthYear,\n\tMONTH_FIRST : monthDateYear,\n\tYEAR_FIRST  : yearMonthDate\n}\n\nexport const TIME_FORMATS = {\n\tNONE     : none,\n\tFULL_DAY : twentyFourHour,\n\tHALF_DAY : twelveHour\n}\n\nexport const SUPPORTED_CURRENCY_VALUES = {\n\t1 : \"$\", // No I18N\n\t2 : \"€\", // No I18N\n\t3 : \"£\", // No I18N\n\t4 : \"¥\", // No I18N\n\t5 : \"$\", // No I18N\n\t6 : \"$\", // No I18N\n\t7 : \"¥\", // No I18N\n\t8 : \"Fr.\", // No I18N\n\t9 : \"$\", // No I18N\n\t10: \"₹\", // No I18N\n\t11: \"R\" // No I18N\n}\n\nexport const SUPPORTED_DATE_FORMATS = {\n\t1 : 'Month D, YYYY',// No I18N\n\t2 : 'DD/MM/YYYY',// No I18N\n\t3 : 'MM/DD/YYYY',// No I18N\n\t4 : 'YYYY/MM/DD'// No I18N\n}\n\nexport const SUPPORTED_HOUR_CYCLES = {\n\t0 : 0,\n\t1 : '23H',// No I18N\n\t2 : '12H'// No I18N\n}\n\nexport const SUPPORTED_TEXT_FORMATS = {\n\t1 : 'default',// No I18N\n\t2 : 'initCaps',// No I18N\n\t3 : 'fullSmall',// No I18N\n\t4 : 'fullCaps',// No I18N\n\t5 : 'sentenceCase'// No I18N\n}\n\nexport const RATING_ICON_TEMPLATES  = {\n\t1 : 'addFieldRatingIconHeartTemplate',// No I18N\n\t2 : 'addFieldRatingIconStarTemplate',// No I18N\n\t3 : 'addFieldRatingIconFlagTemplate',// No I18N\n\t4 : 'addFieldRatingIconThumbTemplate',// No I18N\n\t5 : 'addFieldRatingIconCheckboxTemplate',// No I18N\n\t6 : 'addFieldRatingIconBadgeTemplate',// No I18N\n\t7 : 'addFieldRatingIconToogleBtnTemplate',// No I18N\n\t8 : 'addFieldRatingIconSmileyTemplate',// No I18N\n\t9 : 'addFieldRatingIconShieldTemplate'// No I18N\n}\n\nexport const CHECKBOX_ICONS_ORDER = [1, 2, 3, 4, 5, 6, 7];\nexport const RATING_ICONS_ORDER = [1, 2, 3, 4, 8, 9];\n\n// export const MULTI_SELECT_OPTION_COLORS = [\"9277e7\", \"e568a5\", \"45b1d8\", \"6575da\", \"61be6a\", \"f19b4e\", \"d66060\", \"4c93fe\", \"e1a539\", \"68737c\"] // No I18N  // TODO: New Base Color - changes: Remove the commented codes after 6 months of release\nexport const MULTI_SELECT_OPTION_COLORS = [].concat(BUBBLE_NODE_ULTRALIGHT_THEMES, BUBBLE_NODE_LIGHT_THEMES, BUBBLE_NODE_DARK_THEMES);\n\nexport const MAX_COUNTS = {\n\tONE   : '1',\n\tTWO   : '2',\n\tTHREE : '3',\n\tFOUR  : '4',\n\tFIVE  : '5',\n\tSIX   : '6',\n\tSEVEN : '7',\n\tEIGHT : '8',\n\tNINE  : '9',\n\tTEN   : '10'\n}\n\nexport const RETURN_TYPES = {\n\tNUMBER   : number,\n\tCURRENCY : currency,\n\tPERCENT  : percent\n}\n\nObject.freeze(RETURN_TYPES);\nObject.freeze(MAX_COUNTS);\nObject.freeze(MULTI_SELECT_OPTION_COLORS);\nObject.freeze(RATING_ICON_TEMPLATES);\nObject.freeze(SUPPORTED_TEXT_FORMATS);\nObject.freeze(SUPPORTED_HOUR_CYCLES);\nObject.freeze(SUPPORTED_DATE_FORMATS);\nObject.freeze(SUPPORTED_CURRENCY_VALUES);\nObject.freeze(TIME_FORMATS);\nObject.freeze(DATE_FORMATS);\nObject.freeze(PHONE_NUMBER_FORMATS);\n// Object.freeze(PERCENT_SYMBOL); // TODO: master_proxy_performance - unused line: Remove this line after some months of release\nObject.freeze(TEXT_FORMATS);\nObject.freeze(CURRENCY_POSITIONS);\nObject.freeze(PRECISIONS);\nObject.freeze(CURRENCIES);\n","import * as FIELD_TYPES from './FieldTypes.js';\n\nexport const FORMULA_CONSTANTS = {\n\tCONCATENATE : 2,   \n\tAND         : 9,\n\tOR          : 12,\n\tXOR         : 13,\n\tAVERAGE     : 15,\n\tMAX         : 16,\n\tMIN         : 17,\n\tSUM         : 21,\n\tCOUNT       : 34,\n\tCOUNTA      : 35,\n\tCOUNTBLANK  : 36   \n};\n\nexport const FORMULA_NAME = {\n\t[ FORMULA_CONSTANTS.CONCATENATE ] : \"CONCATENATE\",  //No I18N\n\t[ FORMULA_CONSTANTS.AND ]         : \"AND\",  //No I18N\n\t[ FORMULA_CONSTANTS.OR ]          : \"OR\",  //No I18N\n\t[ FORMULA_CONSTANTS.XOR ]         : \"XOR\",  //No I18N\n\t[ FORMULA_CONSTANTS.AVERAGE ]     : \"AVERAGE\",  //No I18N\n\t[ FORMULA_CONSTANTS.MAX ]         : \"MAX\",  //No I18N\n\t[ FORMULA_CONSTANTS.MIN ]         : \"MIN\",  //No I18N\n\t[ FORMULA_CONSTANTS.SUM ]         : \"SUM\",   //No I18N\n\t[ FORMULA_CONSTANTS.COUNT ]       : \"COUNT\", //No I18N\n\t[ FORMULA_CONSTANTS.COUNTA ]      : \"COUNTA\", //No I18N\n\t[ FORMULA_CONSTANTS.COUNTBLANK ]  : \"COUNT BLANK\" //No I18N\n};\n\nexport const FIELDBASED_SUPPORTED_FORMULA = {\n\t[ FIELD_TYPES.ATTACHMENT]            : [FORMULA_CONSTANTS.CONCATENATE, FORMULA_CONSTANTS.COUNT, FORMULA_CONSTANTS.COUNTA, FORMULA_CONSTANTS.COUNTBLANK],\n\t[ FIELD_TYPES.AUTO_NUMBER]           : [FORMULA_CONSTANTS.COUNT, FORMULA_CONSTANTS.COUNTA, FORMULA_CONSTANTS.COUNTBLANK, FORMULA_CONSTANTS.AND, FORMULA_CONSTANTS.OR, FORMULA_CONSTANTS.XOR, FORMULA_CONSTANTS.AVERAGE, FORMULA_CONSTANTS.MAX, FORMULA_CONSTANTS.MIN, FORMULA_CONSTANTS.SUM],\n\t[ FIELD_TYPES.CHECKBOX ]             : [FORMULA_CONSTANTS.COUNT, FORMULA_CONSTANTS.COUNTA, FORMULA_CONSTANTS.COUNTBLANK, FORMULA_CONSTANTS.AND, FORMULA_CONSTANTS.OR, FORMULA_CONSTANTS.XOR, FORMULA_CONSTANTS.AVERAGE, FORMULA_CONSTANTS.MAX, FORMULA_CONSTANTS.MIN, FORMULA_CONSTANTS.SUM],\n\t[ FIELD_TYPES.CURRENCY ]             : [FORMULA_CONSTANTS.COUNT, FORMULA_CONSTANTS.COUNTA, FORMULA_CONSTANTS.COUNTBLANK, FORMULA_CONSTANTS.AND, FORMULA_CONSTANTS.OR, FORMULA_CONSTANTS.XOR, FORMULA_CONSTANTS.AVERAGE, FORMULA_CONSTANTS.MAX, FORMULA_CONSTANTS.MIN, FORMULA_CONSTANTS.SUM],\n\t[ FIELD_TYPES.RATING ]               : [FORMULA_CONSTANTS.COUNT, FORMULA_CONSTANTS.COUNTA, FORMULA_CONSTANTS.COUNTBLANK, FORMULA_CONSTANTS.AND, FORMULA_CONSTANTS.OR, FORMULA_CONSTANTS.XOR, FORMULA_CONSTANTS.AVERAGE, FORMULA_CONSTANTS.MAX, FORMULA_CONSTANTS.MIN, FORMULA_CONSTANTS.SUM],\n\t[ FIELD_TYPES.NUMBER ]               : [FORMULA_CONSTANTS.COUNT, FORMULA_CONSTANTS.COUNTA, FORMULA_CONSTANTS.COUNTBLANK, FORMULA_CONSTANTS.AND, FORMULA_CONSTANTS.OR, FORMULA_CONSTANTS.XOR, FORMULA_CONSTANTS.AVERAGE, FORMULA_CONSTANTS.MAX, FORMULA_CONSTANTS.MIN, FORMULA_CONSTANTS.SUM],\n\t[ FIELD_TYPES.PERCENT ]              : [FORMULA_CONSTANTS.COUNT, FORMULA_CONSTANTS.COUNTA, FORMULA_CONSTANTS.COUNTBLANK, FORMULA_CONSTANTS.AND, FORMULA_CONSTANTS.OR, FORMULA_CONSTANTS.XOR, FORMULA_CONSTANTS.AVERAGE, FORMULA_CONSTANTS.MAX, FORMULA_CONSTANTS.MIN, FORMULA_CONSTANTS.SUM],\n\t[ FIELD_TYPES.CREATED_TIME ]         : [FORMULA_CONSTANTS.COUNT, FORMULA_CONSTANTS.COUNTA, FORMULA_CONSTANTS.COUNTBLANK, FORMULA_CONSTANTS.MAX, FORMULA_CONSTANTS.MIN],\n\t[ FIELD_TYPES.DATE_TIME ]            : [FORMULA_CONSTANTS.COUNT, FORMULA_CONSTANTS.COUNTA, FORMULA_CONSTANTS.COUNTBLANK, FORMULA_CONSTANTS.MAX, FORMULA_CONSTANTS.MIN],\n\t[ FIELD_TYPES.MODIFIED_TIME ]        : [FORMULA_CONSTANTS.COUNT, FORMULA_CONSTANTS.COUNTA, FORMULA_CONSTANTS.COUNTBLANK, FORMULA_CONSTANTS.MAX, FORMULA_CONSTANTS.MIN],\n\t[ FIELD_TYPES.PHONE_NUMBER ]         : [FORMULA_CONSTANTS.COUNT, FORMULA_CONSTANTS.COUNTA, FORMULA_CONSTANTS.COUNTBLANK],\n\t[ FIELD_TYPES.EMAIL ]                : [FORMULA_CONSTANTS.CONCATENATE, FORMULA_CONSTANTS.COUNT, FORMULA_CONSTANTS.COUNTA, FORMULA_CONSTANTS.COUNTBLANK],\n\t[ FIELD_TYPES.MULTIPLE_SELECTION ]   : [FORMULA_CONSTANTS.CONCATENATE, FORMULA_CONSTANTS.COUNT, FORMULA_CONSTANTS.COUNTA, FORMULA_CONSTANTS.COUNTBLANK],\n\t[ FIELD_TYPES.KEYWORD_EXTRACTION ]   : [FORMULA_CONSTANTS.CONCATENATE, FORMULA_CONSTANTS.COUNT, FORMULA_CONSTANTS.COUNTA, FORMULA_CONSTANTS.COUNTBLANK],\n\t[ FIELD_TYPES.COLLABORATOR_CLIENT ]  : [FORMULA_CONSTANTS.CONCATENATE, FORMULA_CONSTANTS.COUNT, FORMULA_CONSTANTS.COUNTA, FORMULA_CONSTANTS.COUNTBLANK],\n\t[ FIELD_TYPES.SINGLE_SELECTION ]     : [FORMULA_CONSTANTS.CONCATENATE, FORMULA_CONSTANTS.COUNT, FORMULA_CONSTANTS.COUNTA, FORMULA_CONSTANTS.COUNTBLANK],\n\t[ FIELD_TYPES.TEXT ]                 : [FORMULA_CONSTANTS.CONCATENATE, FORMULA_CONSTANTS.COUNT, FORMULA_CONSTANTS.COUNTA, FORMULA_CONSTANTS.COUNTBLANK],\n\t[ FIELD_TYPES.LANGUAGE_DETECTOR ]    : [FORMULA_CONSTANTS.CONCATENATE, FORMULA_CONSTANTS.COUNT, FORMULA_CONSTANTS.COUNTA, FORMULA_CONSTANTS.COUNTBLANK],\n\t[ FIELD_TYPES.URL ]                  : [FORMULA_CONSTANTS.CONCATENATE, FORMULA_CONSTANTS.COUNT, FORMULA_CONSTANTS.COUNTA, FORMULA_CONSTANTS.COUNTBLANK],\n\t[ FIELD_TYPES.CREATED_BY ]           : [FORMULA_CONSTANTS.CONCATENATE, FORMULA_CONSTANTS.COUNT, FORMULA_CONSTANTS.COUNTA, FORMULA_CONSTANTS.COUNTBLANK],\n\t[ FIELD_TYPES.MODIFIED_BY ]          : [FORMULA_CONSTANTS.CONCATENATE, FORMULA_CONSTANTS.COUNT, FORMULA_CONSTANTS.COUNTA, FORMULA_CONSTANTS.COUNTBLANK],\n\t[ FIELD_TYPES.LOOKUP ]               : [FORMULA_CONSTANTS.CONCATENATE, FORMULA_CONSTANTS.COUNT, FORMULA_CONSTANTS.COUNTA, FORMULA_CONSTANTS.COUNTBLANK],\n\t[ FIELD_TYPES.LINK ]                 : [FORMULA_CONSTANTS.CONCATENATE, FORMULA_CONSTANTS.COUNT, FORMULA_CONSTANTS.COUNTA, FORMULA_CONSTANTS.COUNTBLANK]\n};\n\nexport const FORMULA_SHOULD_MAINTIAN_LEAFSTYLE = [FORMULA_CONSTANTS.MAX, FORMULA_CONSTANTS.MIN, FORMULA_CONSTANTS.AVERAGE, FORMULA_CONSTANTS.SUM];\n\nObject.freeze(FORMULA_NAME);\nObject.freeze(FORMULA_CONSTANTS);\nObject.freeze(FIELDBASED_SUPPORTED_FORMULA);\nObject.freeze(FORMULA_SHOULD_MAINTIAN_LEAFSTYLE);","import { ADD_FIELD_AUTO_NUMBER_PRECISION, ADD_FIELD_AUTO_NUMBER_THOUSAND_SEPARATOR, ADD_FIELD_CURRENCIES_CHF, ADD_FIELD_CURRENCIES_INR, ADD_FIELD_CURRENCIES_ZAR, ADD_FIELD_CURRENCY_POSITIONS_ACCOUNTING, ADD_FIELD_CURRENCY_POSITIONS_AFTER, ADD_FIELD_CURRENCY_POSITIONS_BEFORE, ADD_FIELD_CURRENCY_POSITIONS_NONE, ADD_FIELD_TIME_FORMAT } from \"../Constants/AddFieldConstants.js\";\nimport { SUPPORTED_CURRENCY_VALUES, SUPPORTED_DATE_FORMATS, SUPPORTED_HOUR_CYCLES } from \"../Constants/AddFieldConstantValues.js\";\nimport { ATTACHMENT, AUTO_NUMBER, AUTO_NUMBER_CLIENT, CHECKBOX, COLLABORATOR_CLIENT, CREATED_BY, CREATED_TIME, CREATED_TIME_CLIENT, CURRENCY, DATE_TIME, DATE_TIME_CLIENT, EMAIL, FORMULA, LOOKUP, MODIFIED_BY, MODIFIED_TIME, MODIFIED_TIME_CLIENT, MULTIPLE_SELECTION, NUMBER, NUMBER_CLIENT, PERCENT, PERCENT_CLIENT, PHONE_NUMBER, PHONE_NUMBER_CLIENT, RATING, SINGLE_SELECTION, TEXT, URL } from \"../Constants/FieldTypes.js\";\nimport * as FORMULA_RETURN_TYPES from \"../Constants/FormulaReturnTypes.js\";\nimport { FORMULA_SHOULD_MAINTIAN_LEAFSTYLE } from \"../Constants/RollupFormulaConstants.js\";\nimport { decodeToAbsoluteDate, getDateStringToBeRendered, getTimeStringToBeRendered } from \"../DateComponentEncoderDecoder\";\nimport { getLocale } from \"../Locale.js\";\nimport { sanitizeLinkIdsAndCounts } from './LinkFieldCompactUtility.ts';\n\nconst ZSGrid = globalThis.ZSGrid;\n\nconst CONSTANTS        = { SUCCESS: 'success', FAILURE: 'failure' };                                                                                  // No I18N\n\nexport function multiplyBy100(value) {\n\tvalue = value.toString();\n\tif (!value) {\n\t\treturn '';\n\t}\n\n\tif (value.includes('.')) {\n\t\tconst index = value.indexOf('.');\n\t\tif (index !== value.lastIndexOf('.')) {\n\t\t\treturn '';\n\t\t}\n\n\t\tconst fractionalPartLength = value.length - index - 1;\n\t\tif (fractionalPartLength > 2) {\n\t\t\treturn (Number(value) * 100).toFixed(fractionalPartLength - 2);\n\t\t} else {\n\t\t\treturn (Number(value) * 100).toFixed();\n\t\t}\n\t}\n\n\treturn (Number(value) * 100).toString();\n}\n\nexport function parseFormulaDataResponse(fieldValue) {\n\tlet json = {};\n\ttry {\n\t\tjson = JSON.parse(fieldValue);\n\t} catch (err) {\n\t\treturn fieldValue;\n\t}\n\n\tif (json.hasOwnProperty(CONSTANTS.SUCCESS)) {\n\t\treturn json[CONSTANTS.SUCCESS];\n\t}\n\treturn '';\n}\n\nexport function getSelectedIDs(fieldValue) {\n\t!fieldValue && (fieldValue = '');\n\tlet selectedIDs = fieldValue.split(',');\n\tlet selectedID;\n\tfor (let i = 0; i < selectedIDs.length; i++) {\n\t\tselectedID = selectedIDs[i];\n\t\tif (!selectedID) {\n\t\t\tselectedIDs = [];\n\t\t\tbreak;\n\t\t} else {\n\t\t\tselectedIDs[i] = selectedID;\n\t\t}\n\t}\n\treturn selectedIDs;\n}\n\nexport function getSelectedID(fieldValue) {\n\tlet selectedID;\n\tif (fieldValue === 'null') {//No I18N\n\t\tselectedID = null;\n\t} else {\n\t\tselectedID = fieldValue;\n\t\t!selectedID && (selectedID = null);\n\t}\n\treturn selectedID;\n}\n\nexport function getAutoNumber(value) {\n\tif(!value) {\n\t\treturn '';\n\t}\n\treturn value;\n}\n\nexport function getMultipleValues(values) {\n\tconst array = values.split(','); //No I18N\n\tif (array.length === 1 && array[0] === '') {\n\t\treturn [];\n\t}\n\treturn array;\n}\n\nexport function getRating(fieldValue) {\n\tlet number = globalThis.Number(fieldValue);\n\t!number && (number = 0);\n\treturn number;\n}\n\nexport function getAttachmentURLs(fieldValue, interacter) {\n\tconst value = fieldValue ? JSON.parse(fieldValue) : [];\n\tconst attachmentURLs = [];\n\tconst attachmentIds = [];\n\tif (value.length) {\n\t\t\n\t\tfor (let attachmentInfo of value) {\n\t\t\tconst attachmentID = attachmentInfo[0];\n\t\t\tattachmentIds.push(attachmentID);\n\t\t\tconst attachment = interacter.getAttachmentsDS([attachmentID]).get(attachmentID)\n\t\t\tif (attachment) { //temporary fix\n\t\t\t\tattachment.setFileName(attachmentInfo[1]);\n\t\t\t\t// attachment.setFileExtension(attachmentInfo[2]);\n\t\t\t\tconst url = attachment && attachment.imgSrc;\n\t\t\t\tif (url && url !== '') {\n\t\t\t\t\tattachmentURLs.push(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn [attachmentIds, attachmentURLs];\n}\n\nexport function attachmentFormatter(fieldValue, interacter) {\n    const value = fieldValue ? JSON.parse(fieldValue) : [];\n    const attachments = []; \n\n    if (value.length) {\n        \n        for (let attachmentInfo of value) {\n            const attachmentID = attachmentInfo[0];\n            const attachment = {}; \n            attachment.id = attachmentID;\n            const attachmentMeta = interacter.getAttachmentDS(attachmentID);\n            if (attachmentMeta) { \n                attachmentMeta.setFileName(attachmentInfo[1]);\n                const url = attachmentMeta && attachmentMeta.imgSrc;\n                attachment.resourceId = attachmentMeta.getResourceId();\n                if (url && url !== '') {\n                    attachment.previewUrl = url;\n                }\n            }\n            attachments.push(attachment);\n        }\n    }\n\n    return attachments;\n}\n\nexport function attachmentFormmatterforCopy(fieldValue, interacter) {\n\tconst value = fieldValue ? JSON.parse(fieldValue) : [];\n    const attachments = []; \n\n    if (value.length) {\n        \n        for (let attachmentInfo of value) {\n            const attachmentID = attachmentInfo[0];\n            let attachment = \"\" ; \n            const attachmentMeta = interacter.getAttachmentDS(attachmentID);\n            if (attachmentMeta) { \n\t\t\t\tattachment = attachmentMeta.getAttachmentCopy();\n            }\n            attachments.push(attachment);\n        }\n    }\n\n    return attachments.join(\",\");\n}\n\nexport function getRelationshipProperty(relationshipID, relationshipDirection, interacter) {\n\tconst relationship = interacter.getRelationShipDS(relationshipID)\n\tconst allowMultiple = relationship.getSourceTableAllowMultiple()\n\tconst allowRepeated = relationship.getDestinationTableAllowMultiple()\n\n\treturn [allowMultiple, allowRepeated]\n}\n\nexport function getLinkFieldMetas(fieldValue, leafFieldParameters, baseID, dataAccess) {\n\tif (fieldValue) {\n\t\tlet array;\n\t\ttry {\n\t\t\tarray = JSON.parse(fieldValue);\n\t\t} catch (_error) {\n\t\t\tconst rawIds = String(fieldValue).split(',').map((recordID) => recordID.trim()).filter(Boolean); // No I18N\n\t\t\tconst { recordIDs, counts } = sanitizeLinkIdsAndCounts(rawIds);\n\t\t\treturn [recordIDs, recordIDs.map(() => ''), counts];\n\t\t}\n\t\tconst recordIDs = array[0];\n\t\tconst dataArray = array[1];\n\t\tconst counts = array[2] || [];\n\t\tconst recordNames = [];\n\n\t\tconst dataArrayLength = dataArray.length;\n\t\tlet formattedData;\n\t\tfor (let i = 0; i < dataArrayLength; i++) {\n\n\t\t\tformattedData = getLinkFieldFormattedData(dataArray[i], leafFieldParameters, baseID, dataAccess);\n\t\t\trecordNames.push(formattedData);\n\t\t}\n\t\treturn [recordIDs, recordNames, counts];\n\t}\n\treturn [[], [], []];\n}\n\nfunction getLinkFieldFormattedData(rawData, leafFieldParameters, baseID, dataAccess) {\n\tconst fieldType = leafFieldParameters[0];\n\tconst fieldSpecifications = leafFieldParameters[1];\n\n\tlet formattedData = rawData;\n\tswitch (fieldType) {\n\t\tcase AUTO_NUMBER:\n\t\tcase AUTO_NUMBER_CLIENT:{\n\t\t\tconst initialValue = fieldSpecifications[0];\n\t\t\tconst stepSize = fieldSpecifications[1];\n\t\t\tconst prefix = fieldSpecifications[2];\n\t\t\tconst suffix = fieldSpecifications[3];\n\n\t\t\tvar rawDataArray = rawData.split(\",\");\n\t\t\tfor (var i = 0; i < rawDataArray.length; i++) {\n\t\t\t\trawDataArray[i] = ZSGrid.autoNumberFormatter(rawDataArray[i], getLocale(), ADD_FIELD_AUTO_NUMBER_THOUSAND_SEPARATOR, ADD_FIELD_AUTO_NUMBER_PRECISION, initialValue, stepSize, prefix, suffix);\n\t\t\t}\n\n\t\t\tformattedData = rawDataArray.join();\n\t\t\tbreak;\n\t\t}\n\t\tcase ATTACHMENT:{\n\t\t\tlet data;\n\t\t\ttry {\n\t\t\t\tdata = JSON.parse(rawData);\n\t\t\t} catch (err) {\n\t\t\t\treturn rawData;\n\t\t\t}\n\n\t\t\tif (data.length) {\n\t\t\t\tconst fileNames = [];\n\t\t\t\tfor (var i = 0; i < data.length; i++) {\n\t\t\t\t\tconst attachmentID = data[i][0]\n\t\t\t\t\tconst fileExtension = resolveAttachmentDS(baseID, attachmentID, dataAccess).fileExtension;\n\t\t\t\t\tfileNames[i] = `${data[i][1]}.${fileExtension}`;\n\t\t\t\t}\n\t\t\t\tformattedData = fileNames.join();\n\t\t\t} else {\n\t\t\t\tformattedData = '';\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\t\tcase DATE_TIME:{\n\t\t\tconst dateFormat = fieldSpecifications[0];\n\t\t\tconst timeFormat = fieldSpecifications[1];\n\t\t\t\n\t\t\tvar rawDataArray = rawData.split(\",\");\n\t\t\tlet data;\n\t\t\tlet formattedDate;\n\t\t\tlet formattedTime;\n\t\t\tfor (var i = 0; i < rawDataArray.length; i++) {\n\n\t\t\t\tdata = rawDataArray[i];\n\t\t\t\t// formattedDate = ZSGrid.dateFormatter(data, getLocale(), SUPPORTED_DATE_FORMATS[dateFormat], timeZone);\n\t\t\t\tconst absoluteDate = decodeToAbsoluteDate(data);\n\t\t\t\tformattedDate = (!absoluteDate) ? '' : getDateStringToBeRendered(absoluteDate, getLocale(), SUPPORTED_DATE_FORMATS[dateFormat]);\n\t\t\t\trawDataArray[i] = formattedDate;\n\n\t\t\t\tif (timeFormat) {\n\t\t\t\t\t// formattedTime = ZSGrid.timeFormatter(data, getLocale(), ADD_FIELD_TIME_FORMAT, SUPPORTED_HOUR_CYCLES[timeFormat], timeZone);\n\t\t\t\t\tformattedTime = (!absoluteDate) ? '' : getTimeStringToBeRendered(absoluteDate, getLocale(), ADD_FIELD_TIME_FORMAT, SUPPORTED_HOUR_CYCLES[timeFormat]);\n\t\t\t\t\trawDataArray[i] += ` ${formattedTime}`;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tformattedData = rawDataArray.join();\n\n\t\t\tbreak;\n\n\t\t}\n\n\t\tcase MODIFIED_TIME:\n\t\tcase MODIFIED_TIME_CLIENT:\n\t\tcase DATE_TIME_CLIENT:\n\t\tcase CREATED_TIME:\n\t\tcase CREATED_TIME_CLIENT:{\n\t\t\tconst dateFormat = fieldSpecifications[0];\n\t\t\tconst timeFormat = fieldSpecifications[1];\n\t\t\t\n\t\t\tvar rawDataArray = rawData.split(\",\");\n\t\t\tlet data;\n\t\t\tlet formattedDate;\n\t\t\tlet formattedTime;\n\t\t\tfor (var i = 0; i < rawDataArray.length; i++) {\n\n\t\t\t\tdata = rawDataArray[i];\n\t\t\t\t// formattedDate = ZSGrid.dateFormatter(data, getLocale(), SUPPORTED_DATE_FORMATS[dateFormat], timeZone);\n\t\t\t\tconst absoluteDate = decodeToAbsoluteDate(data);\n\t\t\t\tformattedDate = (!absoluteDate) ? '' : getDateStringToBeRendered(absoluteDate, getLocale(), SUPPORTED_DATE_FORMATS[dateFormat]);\n\t\t\t\trawDataArray[i] = formattedDate;\n\n\t\t\t\tif (timeFormat) {\n\t\t\t\t\t// formattedTime = ZSGrid.timeFormatter(data, getLocale(), ADD_FIELD_TIME_FORMAT, SUPPORTED_HOUR_CYCLES[timeFormat], timeZone);\n\t\t\t\t\tformattedTime = (!absoluteDate) ? '' : getTimeStringToBeRendered(absoluteDate, getLocale(), ADD_FIELD_TIME_FORMAT, SUPPORTED_HOUR_CYCLES[timeFormat]);\n\t\t\t\t\trawDataArray[i] += ` ${formattedTime}`;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tformattedData = rawDataArray.join();\n\n\t\t\tbreak;\n\n\t\t}\n\t\tcase CURRENCY: {\n\t\t\tvar currency = fieldSpecifications[0];\n\t\t\tvar position = fieldSpecifications[1];\n\t\t\tvar precision = fieldSpecifications[2];\n\t\t\tvar thousandSeparator = fieldSpecifications[3];\n\n\t\t\tvar symbol = SUPPORTED_CURRENCY_VALUES[currency];\n\n\t\t\tif (position === ADD_FIELD_CURRENCY_POSITIONS_BEFORE) {\n\t\t\t\tsymbol += ' ';\n\t\t\t} else {\n\t\t\t\tsymbol = ` ${symbol}`;\n\t\t\t}\n\n\t\t\tvar locale;\n\t\t\tif (currency === ADD_FIELD_CURRENCIES_INR) {\n\t\t\t\tlocale = 'en-IN'; // No I18N\n\t\t\t} else if(currency === ADD_FIELD_CURRENCIES_CHF) {\n\t\t\t\tlocale = 'de-DE'; // No I18N\n\t\t\t}else if(currency === ADD_FIELD_CURRENCIES_ZAR){\n\t\t\t\tlocale = 'af-ZA';\n\t\t\t}else{\n\t\t\t\tlocale = getLocale();\n\t\t\t}\n\n\t\t\tswitch (position) {\n\t\t\t\tcase ADD_FIELD_CURRENCY_POSITIONS_BEFORE:\n\t\t\t\t\tposition = ZSGrid.CURRENCY_POSITION.START;\n\t\t\t\t\tbreak;\n\t\t\t\tcase ADD_FIELD_CURRENCY_POSITIONS_AFTER:\n\t\t\t\t\tposition = ZSGrid.CURRENCY_POSITION.END;\n\t\t\t\t\tbreak;\n\t\t\t\tcase ADD_FIELD_CURRENCY_POSITIONS_ACCOUNTING:\n\t\t\t\t\tposition = ZSGrid.CURRENCY_POSITION.ACCOUNTING;\n\t\t\t\t\tbreak;\n\t\t\t\tcase ADD_FIELD_CURRENCY_POSITIONS_NONE:\n\t\t\t\t\tposition = ZSGrid.CURRENCY_POSITION.NONE;\n\t\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tvar rawDataArray = rawData.split(\",\");\n\t\t\tfor (var i = 0; i < rawDataArray.length; i++) {\n\t\t\t\trawDataArray[i] = ZSGrid.currencyFormatter(rawDataArray[i], locale, symbol, thousandSeparator, precision, position, false);\n\t\t\t}\n\n\t\t\tformattedData = rawDataArray.join();\n\t\t\tbreak;\n\t\t}\n\t\tcase EMAIL:\n\t\tcase URL:\n\t\t\tbreak;\n\n\t\tcase NUMBER:\n\t\tcase NUMBER_CLIENT:{\n\t\t\tvar precision = fieldSpecifications[0];\n\t\t\tvar thousandSeparator = fieldSpecifications[1];\n\n\t\t\tvar rawDataArray = rawData.split(\",\");\n\t\t\tfor (var i = 0; i < rawDataArray.length; i++) {\n\t\t\t\trawDataArray[i] = ZSGrid.numberFormatter(rawDataArray[i], getLocale(), thousandSeparator, precision);\n\t\t\t}\n\n\t\t\tformattedData = rawDataArray.join();\n\n\t\t\tbreak;\n\t\t}\n\t\tcase PERCENT:\n\t\tcase PERCENT_CLIENT: {\n\t\t\tvar precision = fieldSpecifications[0];\n\t\t\tvar showSymbol = fieldSpecifications[1];\n\t\t\tvar thousandSeparator = fieldSpecifications[2];\n\n\t\t\tvar rawDataArray = rawData.split(\",\");\n\t\t\tfor (var i = 0; i < rawDataArray.length; i++) {\n\t\t\t\trawDataArray[i] = ZSGrid.percentFormatter(multiplyBy100(rawDataArray[i]), getLocale(), thousandSeparator, precision, showSymbol);\n\t\t\t}\n\n\t\t\tformattedData = rawDataArray.join();\n\n\t\t\tbreak;\n\t\t}\n\t\tcase PHONE_NUMBER:\n\t\tcase PHONE_NUMBER_CLIENT:{\n\t\t\tvar format = fieldSpecifications[0];\n\n\t\t\tvar rawDataArray = rawData.split(\",\");\n\t\t\tfor (var i = 0; i < rawDataArray.length; i++) {\n\t\t\t\trawDataArray[i] = ZSGrid.phoneNumberFormatter(rawDataArray[i], format);\n\t\t\t}\n\n\t\t\tformattedData = rawDataArray.join();\n\n\t\t\tbreak;\n\t\t}\n\t\tcase TEXT:{\n\t\t\tvar format = fieldSpecifications[0];\n\n\t\t\tvar rawDataArray = rawData.split(\",\");\n\t\t\tfor (var i = 0; i < rawDataArray.length; i++) {\n\t\t\t\trawDataArray[i] = ZSGrid.singleLineTextFormatter(rawDataArray[i], format);\n\t\t\t}\n\n\t\t\tformattedData = rawDataArray.join();\n\n\t\t\tbreak;\n\t\t}\n\t\tcase CHECKBOX:{\n\t\t\tif (!rawData) {\n\t\t\t\tformattedData = '0';\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\n\t\tcase RATING: {\n\t\t\tif (!rawData) {\n\t\t\t\tformattedData = '0';\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\n\t\tcase MULTIPLE_SELECTION:\n\t\tcase SINGLE_SELECTION:{\n\t\t\tif (rawData) {\n\t\t\t\tconst multiSelectID = fieldSpecifications[1];\n\t\t\t\tconst multiSelectDS = resolveMultiSelectDS(baseID, multiSelectID, dataAccess);\n\n\t\t\t\tconst optionIDs = rawData.split(\",\");\n\t\t\t\tfor (var j = 0; j < optionIDs.length; j++) {\n\t\t\t\t\tif (optionIDs[j] === \"\") {\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t}\n\t\t\t\t\toptionIDs[j] = multiSelectDS.getName(optionIDs[j]);\n\t\t\t\t}\n\n\t\t\t\tformattedData = optionIDs.join();\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\n\t\tcase COLLABORATOR_CLIENT:\n\t\tcase CREATED_BY:\n\t\tcase MODIFIED_BY: {\n\t\t\tif (rawData) {\n\t\t\t\tconst collaboratorDS = resolveCollaboratorDS(baseID, dataAccess);\n\n\t\t\t\tconst userIDs = rawData.split(\",\");\n\t\t\t\tlet userID;\n\t\t\t\tfor (var j = 0; j < userIDs.length; j++) {\n\t\t\t\t\t\n\t\t\t\t\tuserID = userIDs[j];\n\t\t\t\t\tif(!userID) { // This check is added coz in link field which points to collaboratorMultiSelect field, if the data is \" , , ID1, ID2, , \" then, empty strings should be neglected\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (collaboratorDS.isActiveUser(userID)) {\n\t\t\t\t\t\tuserIDs[j] = collaboratorDS.getActiveUserName(userID);\n\t\t\t\t\t} else if (collaboratorDS.isInactiveUser(userID)) {\n\t\t\t\t\t\tuserIDs[j] = collaboratorDS.getInactiveUserName(userID);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tuserIDs[j] = collaboratorDS.getRemovedUserName(userID);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tformattedData = userIDs.join();\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\n\t\tcase FORMULA: {\n\t\t\tif (rawData) {\n\t\t\t\tconst formatArray = fieldSpecifications[2][0];\n\t\t\t\tconst returnType  = formatArray[0];\n\t\t\t\tconst formats     = formatArray[1];\n\n\t\t\t\tlet data = parseFormulaDataResponse(rawData);\n\t\t\t\tconst dataArray = data.split(\",\");\n\n\t\t\t\tformattedData = getFormulaFormattedData(dataArray, returnType, formats, baseID).join();\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\t\tcase LOOKUP: {\n\t\t\tformattedData = getLinkFieldFormattedData(rawData, fieldSpecifications[2], baseID, dataAccess);\n\t\t\tbreak;\n\t\t}\n\t}\n\treturn formattedData;\n}\n\nexport function parseLookupDataResponse(fieldValue, leafFieldParameters, baseID, dataAccess) {\n\tif (fieldValue) {\n\t\tconst dataArray = JSON.parse(fieldValue);\n\t\tconst formattedDatas = [];\n\n\t\tlet formattedData;\n\t\tfor (let i = 0; i < dataArray.length; i++) {\n\n\t\t\tformattedData = getLookupFieldFormattedData(dataArray[i], leafFieldParameters, baseID, dataAccess);\n\t\t\tformattedData && formattedDatas.push(formattedData);\n\t\t}\n\t\treturn formattedDatas;\n\t}\n\treturn [];\n}\n\nfunction getLookupFieldFormattedData(rawData, leafFieldParameters, baseID, dataAccess) {\n\tconst fieldType = leafFieldParameters[0];\n\n\tswitch (fieldType) {\n\t\tcase CHECKBOX:\n\t\t\treturn rawData;\n\t}\n\n\treturn getLinkFieldFormattedData(rawData, leafFieldParameters, baseID, dataAccess);\n}\n\nexport function getRollupFieldFormattedData(rawData, formulaID, leafFieldParameters, baseID, dataAccess) {\n\tconst fieldType = leafFieldParameters[0];\n\tif (FORMULA_SHOULD_MAINTIAN_LEAFSTYLE.includes(formulaID) || fieldType === TEXT) {\n\t\t\n\t\tconst fieldSpecifications = leafFieldParameters[1];\n\t\tswitch(fieldType) {\n\t\t\tcase AUTO_NUMBER: {\n\t\t\t\t//Temp fix\n\t\t\t\tfieldSpecifications[0] = 0;\n\t\t\t\tfieldSpecifications[1] = 1;\n\t\t\t\treturn getLinkFieldFormattedData(rawData, leafFieldParameters, baseID, dataAccess);\n\t\t\t}\n\n\t\t\tcase FORMULA: {\n\t\t\t\tif (rawData) {\n\t\t\t\t\tconst formatArray = fieldSpecifications[2][0];\n\t\t\t\t\tconst returnType  = formatArray[0];\n\t\t\t\t\tconst formats     = formatArray[1];\n\n\t\t\t\t\tconst dataArray = rawData.split(\",\");\n\t\t\t\t\treturn getFormulaFormattedData(dataArray, returnType, formats, baseID).join(',');\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tdefault:\n\t\t\t\treturn getLinkFieldFormattedData(rawData, leafFieldParameters, baseID, dataAccess);\n\t\t} \n\t}\n\treturn rawData;\n}\n\nfunction getFormulaFormattedData(dataArray, returnType, formats, baseID) {\n\tconst formattedData = [];\n\tfor (var i = 0; i < dataArray.length; i++) {\n\t\tconst data = dataArray[i];\n\n\t\tswitch (returnType) {\n\t\t\tcase FORMULA_RETURN_TYPES.NUMBER: {\n\t\t\t\tformattedData[i] = ZSGrid.numberFormatter(data, getLocale(), formats[1], formats[0]);\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase FORMULA_RETURN_TYPES.DATE: {\n\t\t\t\t// formattedData[i] = ZSGrid.dateFormatter(data, getLocale(), SUPPORTED_DATE_FORMATS[formats[0]], timeZone);\n\t\t\t\tconst absoluteDate = decodeToAbsoluteDate(data);\n\t\t\t\tformattedData[i] = (!absoluteDate) ? '' : getDateStringToBeRendered(absoluteDate, getLocale(), SUPPORTED_DATE_FORMATS[formats[0]]);\n\n\t\t\t\tif (formats[1]) {\n\t\t\t\t\tconst timeString = (!absoluteDate) ? '' : getTimeStringToBeRendered(absoluteDate, getLocale(), ADD_FIELD_TIME_FORMAT, SUPPORTED_HOUR_CYCLES[formats[1]]);\n\t\t\t\t\t// formattedData[i] += ` ${ZSGrid.timeFormatter(data, getLocale(), ADD_FIELD_TIME_FORMAT, SUPPORTED_HOUR_CYCLES[formats[1]], timeZone)}`;\n\t\t\t\t\tformattedData[i] += ` ${timeString}`;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase FORMULA_RETURN_TYPES.FORMULA_RETURN_TYPE_EMPTY: {\n\t\t\t\tformattedData[i] = ZSGrid.singleLineTextFormatter(data, formats[0]);\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase FORMULA_RETURN_TYPES.TEXT: {\n\t\t\t\tformattedData[i] = ZSGrid.singleLineTextFormatter(data, formats[0]);\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase FORMULA_RETURN_TYPES.CURRENCY: {\n\t\t\t\tvar currency  = formats[0];\n\t\t\t\tvar position  = formats[1];\n\t\t\t\tvar precision = formats[2];\n\t\t\t\tvar thousandSeparator = formats[3];\n\n\t\t\t\tvar symbol = SUPPORTED_CURRENCY_VALUES[currency];\n\n\t\t\t\tif (position === ADD_FIELD_CURRENCY_POSITIONS_BEFORE) {\n\t\t\t\t\tsymbol += ' ';\n\t\t\t\t} else {\n\t\t\t\t\tsymbol = ` ${symbol}`;\n\t\t\t\t}\n\n\t\t\t\tvar locale;\n\t\t\t\tif (currency === ADD_FIELD_CURRENCIES_INR) {\n\t\t\t\t\tlocale = 'en-IN'; // No I18N\n\t\t\t\t} else if(currency === ADD_FIELD_CURRENCIES_CHF) {\n\t\t\t\t\tlocale = 'de-DE'; // No I18N\n\t\t\t\t}else if(currency === ADD_FIELD_CURRENCIES_ZAR){\n\t\t\t\t\tlocale = 'af-ZA';\n\t\t\t\t}else {\n\t\t\t\t\tlocale = getLocale();\n\t\t\t\t}\n\n\t\t\t\tswitch (position) {\n\t\t\t\t\tcase ADD_FIELD_CURRENCY_POSITIONS_BEFORE:\n\t\t\t\t\t\tposition = ZSGrid.CURRENCY_POSITION.START;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase ADD_FIELD_CURRENCY_POSITIONS_AFTER:\n\t\t\t\t\t\tposition = ZSGrid.CURRENCY_POSITION.END;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase ADD_FIELD_CURRENCY_POSITIONS_ACCOUNTING:\n\t\t\t\t\t\tposition = ZSGrid.CURRENCY_POSITION.ACCOUNTING;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase ADD_FIELD_CURRENCY_POSITIONS_NONE:\n\t\t\t\t\t\tposition = ZSGrid.CURRENCY_POSITION.NONE;\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tformattedData[i] = ZSGrid.currencyFormatter(data, locale, symbol, thousandSeparator, precision, position, false);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\t\t\n\t\t\tcase FORMULA_RETURN_TYPES.PERCENT: {\n\t\t\t\tvar precision = formats[0];\n\t\t\t\tvar showSymbol = formats[1];\n\t\t\t\tvar thousandSeparator = formats[2];\n\n\t\t\t\tformattedData[i] = ZSGrid.percentFormatter(multiplyBy100(data), getLocale(), thousandSeparator, precision, showSymbol);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn formattedData;\n}\n\nexport function isCurrencyPositionAccounting(position) {\n\treturn position == ZSGrid.CURRENCY_POSITION.ACCOUNTING;\n}\n\nexport function divideBy100(value) {\n\tvalue = value.toString();\n\tif (!value) {\n\t\treturn '';\n\t}\n\n\tif (value.includes('.')) {\n\t\tconst index = value.indexOf('.');\n\t\tif (index !== value.lastIndexOf('.')) {\n\t\t\treturn '';\n\t\t}\n\n\t\tconst fractionalPartLength = value.length - index - 1;\n\n\t\tvalue = value.replaceAll(',', '');\n\n\t\treturn (Number(value) / 100).toFixed(fractionalPartLength + 2);\n\t}\n\n\treturn (Number(value) / 100).toString();\n}\n\nfunction resolveMultiSelectDS(baseID, multiSelectID, dataAccess) {\n\tif (dataAccess && typeof dataAccess.getMultiSelectDS === 'function') {\n\t\treturn dataAccess.getMultiSelectDS(multiSelectID);\n\t}\n\treturn getMultiSelectDS(baseID, multiSelectID);\n}\n\nfunction resolveCollaboratorDS(baseID, dataAccess) {\n\tif (dataAccess && typeof dataAccess.getCollaboratorDS === 'function') {\n\t\treturn dataAccess.getCollaboratorDS();\n\t}\n\treturn getCollaboratorDS(baseID);\n}\n\nfunction resolveAttachmentDS(baseID, attachmentID, dataAccess) {\n\tif (dataAccess && typeof dataAccess.getAttachmentDS === 'function') {\n\t\treturn dataAccess.getAttachmentDS(attachmentID);\n\t}\n\treturn getAttachmentDS(baseID, attachmentID);\n}\n\nfunction getCollaboratorDS(baseID) {\n\tconst base = Table.Data.Workspace.get(baseID);\n\treturn base.getCollaboratorDS();\n}\n\nfunction getAttachmentDS(baseID, attachmentID) {\n\tconst base = Table.Data.Workspace.get(baseID);\n\treturn base.getAttachmentDS(attachmentID);\n}\n\nfunction getMultiSelectDS(baseID, multiSelectID) {\n\tconst base = Table.Data.Workspace.get(baseID);\n\treturn base.getMultiSelectDS(multiSelectID);\n}\n\n","import { State } from \"./State/LayoutState.js\";\nexport function getActiveBaseID() {\n\tconst baseID = State.getActiveBaseID();\n\treturn baseID;\n}\n\nexport function getActiveTableID(baseID) {\n\tconst baseState = State.getBaseState(baseID);\n\treturn baseState.getActiveTableID();\n}\n\nexport function getActiveViewID(baseID, tableID) {\n\tconst baseState = State.getBaseState(baseID);\n\tconst tableState = baseState.getTableState(tableID);\n\treturn tableState.getActiveViewID();\n}\n","export const ZCOMPONENTS_DATE_FIELD_DATE_FORMATS = {\n\t'Month D, YYYY' : 'MMMM dd, yyyy',//No I18N\n\t'MM/DD/YYYY'    : 'MM/dd/yyyy',//No I18N\n\t'DD/MM/YYYY'    : 'dd/MM/yyyy',//No I18N\n\t'YYYY/MM/DD'    : 'yyyy/MM/dd'//No I18N\n};\n\nexport const ZCOMPONENTS_DATE_FIELD_TIME_FORMATS = {\n\t'23H' : 'HH:mm:ss',//No I18N\n\t'12H' : 'hh:mm:ss tt'//No I18N\n};\n\nexport const ZCOMPONENTS_DATE_FIELD_PLACEHOLDER_DATE_FORMATS = {\n\t'Month D, YYYY' : {date: 'D', month: 'Month', year: 'YYYY'},//No I18N\n\t'MM/DD/YYYY'    : {date: 'DD', month: 'MM', year: 'YYYY'},//No I18N\n\t'DD/MM/YYYY'    : {date: 'DD', month: 'MM', year: 'YYYY'},//No I18N\n\t'YYYY/MM/DD'    : {date: 'DD', month: 'MM', year: 'YYYY'}//No I18N\n};\n\nexport const ZCOMPONENTS_DATE_FIELD_PLACEHOLDER_TIME_FORMATS = {\n\t'23H' : {hour: 'HH', minute: 'MM', second: 'SS'},//No I18N\n\t'12H' : {hour: 'HH', minute: 'MM', second: 'SS', period: 'tt'}//No I18N\n};\n\nexport const ZOHO_TABLES_TIME_FORMAT = 'HH:MM:SS';//No I18N\n","import { getActiveBaseID } from \"../../ActiveIDUtility.js\";\nimport { ADD_FIELD_CURRENCIES_CHF, ADD_FIELD_CURRENCIES_INR, ADD_FIELD_CURRENCIES_ZAR, ADD_FIELD_CURRENCY_POSITIONS_ACCOUNTING, ADD_FIELD_CURRENCY_POSITIONS_AFTER, ADD_FIELD_CURRENCY_POSITIONS_BEFORE, ADD_FIELD_CURRENCY_POSITIONS_NONE } from \"../../Constants/AddFieldConstants.js\";\nimport { SUPPORTED_CURRENCY_VALUES, SUPPORTED_DATE_FORMATS, SUPPORTED_HOUR_CYCLES, SUPPORTED_TEXT_FORMATS } from \"../../Constants/AddFieldConstantValues.js\";\nimport { ATTACHMENT, AUTO_NUMBER, AUTO_NUMBER_CLIENT, CHECKBOX, COLLABORATOR_CLIENT, CREATED_BY, CREATED_TIME, CREATED_TIME_CLIENT, CURRENCY, CURRENCY_CLIENT, DATE_TIME, DATE_TIME_CLIENT, EMAIL, FORMULA, KEYWORD_EXTRACTION, LANGUAGE_DETECTOR, LINK, LINK_CLIENT, LOOKUP, MODIFIED_BY, MODIFIED_TIME, MODIFIED_TIME_CLIENT, MULTIPLE_SELECTION, NUMBER, NUMBER_CLIENT, PERCENT, PERCENT_CLIENT, PHONE_NUMBER, PHONE_NUMBER_CLIENT, RATING, ROLLUP, SENTIMENTAL_ANALYSIS, SINGLE_SELECTION, TEXT, URL } from \"../../Constants/FieldTypes.js\";\nimport { CURRENCY as CURRENCY_FORMULA, DATE as DATE_FORMULA, FORMULA_RETURN_TYPE_EMPTY, NUMBER as NUMBER_FORMULA, PERCENT as PERCENT_FORMULA, TEXT as TEXT_FORMULA } from \"../../Constants/FormulaReturnTypes.js\";\nimport { ZOHO_TABLES_TIME_FORMAT } from \"../../Constants/ZohoComponentDateFieldConstants.js\";\nimport { getLocale } from \"../../Locale.js\";\n\nconst ZSGrid                    = globalThis.ZSGrid;\nconst THOUSAND_SEPARATOR        = 0;\nconst PRECISION                 = 20;\nconst LOCALE                    = getLocale() \n\nfunction getFieldTypeSpecifications(fieldInstance) {\n\tlet fieldType       = fieldInstance.getType();\n\tlet specifications;\n\tswitch(fieldType) {\n\t\tcase AUTO_NUMBER:\n\t\tcase AUTO_NUMBER_CLIENT:\n\t\t\tspecifications = [fieldInstance.getInitialValue(), fieldInstance.getStepSize(), fieldInstance.getPrefix(), fieldInstance.getSuffix()];\n\t\t\tbreak;\n\t\tcase DATE_TIME:\n\t\tcase MODIFIED_TIME:\n\t\tcase MODIFIED_TIME_CLIENT:\n\t\tcase DATE_TIME_CLIENT:\n\t\tcase CREATED_TIME:\n\t\tcase CREATED_TIME_CLIENT:\n\t\t\tspecifications = [fieldInstance.getDateFormat(), fieldInstance.getTimeFormat()];\n\t\t\tbreak;\n\t\tcase CURRENCY:\n\t\tcase CURRENCY_CLIENT:\n\t\t\tspecifications = [fieldInstance.getCurrency(), fieldInstance.getCurrencyPosition(), fieldInstance.getPrecision(), fieldInstance.getThousandSeparator()];\n\t\t\tbreak;\n\t\tcase EMAIL:\n\t\tcase URL:\n\t\t\tspecifications = [fieldInstance.getAllowMultiple()];\n\t\t\tbreak;\n\t\tcase NUMBER:\n\t\tcase NUMBER_CLIENT:\n\t\t\tspecifications = [fieldInstance.getPrecision(), fieldInstance.getThousandSeparator()];\n\t\t\tbreak;\n\t\tcase PERCENT:\n\t\tcase PERCENT_CLIENT:\n\t\t\tspecifications = [fieldInstance.getPrecision(), fieldInstance.getShowSymbol(), fieldInstance.getThousandSeparator()];\n\t\t\tbreak;\n\t\tcase PHONE_NUMBER:\n\t\tcase PHONE_NUMBER_CLIENT:\n\t\t\tspecifications = [fieldInstance.getFormat(), fieldInstance.getAllowMultiple()];\n\t\t\tbreak;\n\t\tcase TEXT:\n\t\t\tspecifications = [fieldInstance.getFormat(), fieldInstance.getAutoDetectHyperlink()];\n\t\t\tbreak;\n\t\tcase SENTIMENTAL_ANALYSIS:\n\t\t\tspecifications = [fieldInstance.getReferenceFieldID(), fieldInstance.getSentimentID()];\n\t\t\tbreak;\n\t\tcase LANGUAGE_DETECTOR:\n\t\t\tspecifications = [fieldInstance.getReferenceFieldID()];\n\t\t\tbreak;\n\t\tcase CHECKBOX:\n\t\t\tspecifications = [fieldInstance.getStyle(), fieldInstance.getColor()];\n\t\t\tbreak;\n\t\tcase RATING:\n\t\t\tspecifications = [fieldInstance.getStyle(), fieldInstance.getColor(), fieldInstance.getMax()];\n\t\t\tbreak;\n\t\tcase MULTIPLE_SELECTION:\n\t\tcase SINGLE_SELECTION: \n\t\t\tspecifications = [fieldInstance.getColoredOptions(), fieldInstance.getID()];\n\t\t\tbreak;\n\t\tcase KEYWORD_EXTRACTION:\n\t\t\tspecifications = [fieldInstance.getReferenceFieldID(), fieldInstance.getMaxCount(), fieldInstance.getRestrictedKeywords()]\n\t\t\tbreak;\n\t\t\n\t\tcase COLLABORATOR_CLIENT:\n\t\t\tspecifications = [fieldInstance.getSelectionType(), fieldInstance.getNotifyCollaborator()];\n\t\t\tbreak;\n\n\t\tcase LINK:  //link field revamped\n\t\t\tspecifications = [fieldInstance.getOppFieldID(), fieldInstance.getRestrictedViewToggle(), fieldInstance.getRestrictedViewID(), fieldInstance.getRelationshipDirection(), fieldInstance.getRelationshipID(), fieldInstance.getLeafFieldParameters(), fieldInstance.getAllowDuplicateLinkedRecords()];\n\t\t\tbreak;\n\n\t\tcase CREATED_BY:\n\t\tcase MODIFIED_BY:\n\t\tcase ATTACHMENT:\n\t\t\tspecifications = [];\n\t\t\tbreak;\n\n\t\tcase FORMULA:\n\t\t\tspecifications = [fieldInstance.getFormulaString(), fieldInstance.getFormulaStatus(), fieldInstance.getFormatArray()];\n\t\t\tbreak;\n\n\t\tcase LOOKUP:\n\t\t\tspecifications = [fieldInstance.getLinkFieldID(), fieldInstance.getOppFieldID(), fieldInstance.getLeafFieldParameters(), fieldInstance.getRenderingType()];\n\t\t\tbreak;\n\n\t\tcase ROLLUP:\n\t\t\tspecifications = [fieldInstance.getLinkFieldID(), fieldInstance.getOppFieldID(), fieldInstance.getAggregationActionID(), fieldInstance.getReturnType(), fieldInstance.getLeafFieldParameters()];\n\t\t\tbreak;\n\n\t}\n\treturn specifications;\n}\n\nexport function getLeafFieldSpecifications(fieldInstance) {\n\tconst fieldType      = fieldInstance.getType();\n\tconst base           = Table.Data.Workspace.get(getActiveBaseID());\n\tlet fieldSpecifications;\n\tlet leafFieldProps;\n\tswitch(fieldType) {\n\t\tcase LINK:\n\t\t\tfieldSpecifications    = getFieldTypeSpecifications(fieldInstance);\n\t\t\tleafFieldProps         = fieldSpecifications[5];\n\t\t\tfieldSpecifications[5] = getModifiedFieldTypeSpecifications(leafFieldProps[0], leafFieldProps[1], base.getTimeZone());\n\t\t\tbreak;\n\t\t\n\t\tcase LOOKUP:\n\t\t\tfieldSpecifications    = getFieldTypeSpecifications(fieldInstance);\n\t\t\tleafFieldProps         = fieldSpecifications[2];\n\t\t\tfieldSpecifications[2] = getModifiedFieldTypeSpecifications(leafFieldProps[0], leafFieldProps[1], base.getTimeZone());\n\t\t\tbreak;\n\t\t\n\t\tcase ROLLUP:\n\t\t\tfieldSpecifications    = getFieldTypeSpecifications(fieldInstance);\n\t\t\tleafFieldProps         = fieldSpecifications[4];\n\t\t\tfieldSpecifications[4] = getModifiedFieldTypeSpecifications(leafFieldProps[0], leafFieldProps[1], base.getTimeZone());\n\t\t\tbreak;\n\t}\n\treturn fieldSpecifications;\n}\n\nexport function getModifiedFieldTypeSpecifications(fieldType, fieldSpecifications, timeZone) {\n\tlet specifications;\n\tswitch(fieldType) {\n\t\tcase PHONE_NUMBER:\n\t\tcase PHONE_NUMBER_CLIENT:\n\t\t\tspecifications = fieldSpecifications;\n\t\t\tbreak;\n\t\tcase TEXT:\n\t\tcase SENTIMENTAL_ANALYSIS:\n\t\t\tvar textFormat = SUPPORTED_TEXT_FORMATS[fieldSpecifications[0]];\n\t\t\tspecifications = [textFormat, fieldSpecifications[1]];\n\t\t\tbreak;\n\t\tcase NUMBER:\n\t\tcase NUMBER_CLIENT:\n\t\t\tspecifications = [LOCALE, fieldSpecifications[1], fieldSpecifications[0]];\n\t\t\tbreak;\n\t\tcase PERCENT:\n\t\tcase PERCENT_CLIENT:\n\t\t\tspecifications = [LOCALE, fieldSpecifications[0], fieldSpecifications[1], fieldSpecifications[2]];\n\t\t\tbreak;\n\t\tcase CURRENCY:\n\t\tcase CURRENCY_CLIENT:\n\t\t\tvar currency = fieldSpecifications[0];\n\t\t\tvar position = fieldSpecifications[1];\n\t\t\tvar symbol   = SUPPORTED_CURRENCY_VALUES[currency];\n\n\t\t\tif(position === ADD_FIELD_CURRENCY_POSITIONS_BEFORE) {\n\t\t\t\tsymbol += ' ';\n\t\t\t}else {\n\t\t\t\tsymbol = ` ${symbol}`;\n\t\t\t}\n\n\t\t\tvar locale;\n\t\t\tif(currency === ADD_FIELD_CURRENCIES_INR) {\n\t\t\t\tlocale = 'en-IN'; // No I18N\n\t\t\t}else if(currency === ADD_FIELD_CURRENCIES_CHF) {\n\t\t\t\tlocale = 'de-DE'; // No I18N\n\t\t\t}else if(currency === ADD_FIELD_CURRENCIES_ZAR){\n\t\t\t\tlocale = 'af-ZA';\n\t\t\t}else {\n\t\t\t\tlocale = LOCALE;\n\t\t\t}\n\t\t\tswitch(position) {\n\t\t\t\t\t\tcase ADD_FIELD_CURRENCY_POSITIONS_BEFORE:\n\t\t\t\t\t\t\tposition = ZSGrid.CURRENCY_POSITION.START;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase ADD_FIELD_CURRENCY_POSITIONS_AFTER:\n\t\t\t\t\t\t\tposition = ZSGrid.CURRENCY_POSITION.END;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase ADD_FIELD_CURRENCY_POSITIONS_ACCOUNTING:\n\t\t\t\t\t\t\tposition = ZSGrid.CURRENCY_POSITION.ACCOUNTING;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase ADD_FIELD_CURRENCY_POSITIONS_NONE:\n\t\t\t\t\t\t\tposition = ZSGrid.CURRENCY_POSITION.NONE;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\tspecifications = [locale, symbol, position, fieldSpecifications[2], fieldSpecifications[3]];\n\t\t\tbreak;\n\t\tcase DATE_TIME:\n\t\tcase MODIFIED_TIME:\n\t\tcase MODIFIED_TIME_CLIENT:\n\t\tcase DATE_TIME_CLIENT:\n\t\tcase CREATED_TIME:\n\t\tcase CREATED_TIME_CLIENT:\n\t\t\tvar dateFormat = SUPPORTED_DATE_FORMATS[fieldSpecifications[0]];\n\t\t\tvar hourCycle  = SUPPORTED_HOUR_CYCLES[fieldSpecifications[1]];\n\t\t\tspecifications = [LOCALE, dateFormat, ZOHO_TABLES_TIME_FORMAT, hourCycle, timeZone];\n\t\t\tbreak;\n\t\tcase AUTO_NUMBER:\n\t\tcase AUTO_NUMBER_CLIENT:\n\t\t\tspecifications = [LOCALE, THOUSAND_SEPARATOR, PRECISION, ...fieldSpecifications];\n\t\t\tbreak;\n\t\t\n\t\tcase CHECKBOX:\n\t\tcase RATING:\n\t\tcase EMAIL:\n\t\tcase URL:\n\t\tcase COLLABORATOR_CLIENT:\n\t\t\tspecifications = fieldSpecifications;\n\t\t\tbreak;\n\n\t\tcase MULTIPLE_SELECTION:\n\t\tcase SINGLE_SELECTION:\n\t\t\tlet ID         = fieldSpecifications[1];\n\t\t\tspecifications = [ID, fieldSpecifications[0]];\n\t\t\tbreak;\n\n\t\tcase CREATED_BY:\n\t\tcase MODIFIED_BY:\n\t\tcase ATTACHMENT:\n\t\t\t\tspecifications = [];\n\t\t\tbreak;\n\n\t\tcase FORMULA:\n\t\t\tlet formatArray = fieldSpecifications[2][0];\n\t\t\tlet returnType  = formatArray[0];\n\t\t\tlet formats     = formatArray[1]; // [thousandSeparator, precision] (or) [dateFormat, timeFormat] (or) [textFormat]\n\t\t\tlet modifiedFormats;\n\t\t\tswitch(returnType) {\n\t\t\t\tcase NUMBER_FORMULA:\n\t\t\t\t\tmodifiedFormats = [LOCALE, formats[1], formats[0]];\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase FORMULA_RETURN_TYPE_EMPTY:\n\t\t\t\t\tvar textFormat  = SUPPORTED_TEXT_FORMATS[formats[0]];\n\t\t\t\t\tmodifiedFormats = [textFormat, formats[1]];\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase TEXT_FORMULA:\n\t\t\t\t\tvar textFormat  = SUPPORTED_TEXT_FORMATS[formats[0]];\n\t\t\t\t\tmodifiedFormats = [textFormat, formats[1]];\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase DATE_FORMULA:\n\t\t\t\t\tvar dateFormat  = SUPPORTED_DATE_FORMATS[formats[0]];\n\t\t\t\t\tvar hourCycle   = SUPPORTED_HOUR_CYCLES[formats[1]];\n\t\t\t\t\tmodifiedFormats = [LOCALE, dateFormat, ZOHO_TABLES_TIME_FORMAT, hourCycle];\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase CURRENCY_FORMULA: {\n\t\t\t\t\tvar currency          = formats[0];\n\t\t\t\t\tvar position          = formats[1];\n\t\t\t\t\tconst precision         = formats[2];\n\t\t\t\t\tconst thousandSeparator = formats[3];\n\n\t\t\t\t\tvar symbol = SUPPORTED_CURRENCY_VALUES[currency];\n\n\t\t\t\t\tif(position === ADD_FIELD_CURRENCY_POSITIONS_BEFORE) {\n\t\t\t\t\t\tsymbol += ' ';\n\t\t\t\t\t}else {\n\t\t\t\t\t\tsymbol = ` ${symbol}`;\n\t\t\t\t\t}\n\n\t\t\t\t\tvar locale;\n\t\t\t\t\tif(currency === ADD_FIELD_CURRENCIES_INR) {\n\t\t\t\t\t\tlocale = 'en-IN'; // No I18N\n\t\t\t\t\t}else if(currency === ADD_FIELD_CURRENCIES_CHF) {\n\t\t\t\t\t\tlocale = 'de-DE'; // No I18N\n\t\t\t\t\t}else if(currency === ADD_FIELD_CURRENCIES_ZAR){\n\t\t\t\t\t\tlocale = 'af-ZA';\n\t\t\t\t\t}else {\n\t\t\t\t\t\tlocale = LOCALE;\n\t\t\t\t\t}\n\n\t\t\t\t\t\t\tswitch(position) {\n\t\t\t\t\t\t\t\tcase ADD_FIELD_CURRENCY_POSITIONS_BEFORE:\n\t\t\t\t\t\t\t\t\tposition = ZSGrid.CURRENCY_POSITION.START;\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\tcase ADD_FIELD_CURRENCY_POSITIONS_AFTER:\n\t\t\t\t\t\t\t\t\tposition = ZSGrid.CURRENCY_POSITION.END;\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\tcase ADD_FIELD_CURRENCY_POSITIONS_ACCOUNTING:\n\t\t\t\t\t\t\t\t\tposition = ZSGrid.CURRENCY_POSITION.ACCOUNTING;\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\tcase ADD_FIELD_CURRENCY_POSITIONS_NONE:\n\t\t\t\t\t\t\t\t\tposition = ZSGrid.CURRENCY_POSITION.NONE;\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\tmodifiedFormats = [locale, symbol, position, precision, thousandSeparator];\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tcase PERCENT_FORMULA:\n\t\t\t\t\tlet precision         = formats[0];\n\t\t\t\t\tlet showSymbol        = formats[1];\n\t\t\t\t\tlet thousandSeparator = formats[2];\n\t\t\t\t\tmodifiedFormats       = [LOCALE, precision, showSymbol, thousandSeparator];\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tspecifications = [fieldSpecifications[0], fieldSpecifications[1], [[returnType, modifiedFormats]]];\n\t\t\tbreak;\n\t}\n\n\treturn [fieldType, specifications];\n}\n\nexport function getNewFieldTypeSpecifications(fieldInstance, interacter) {\n\tlet fieldType     = fieldInstance.getType();\n\tlet specifications;\n\tswitch(fieldType) {\n\t\tcase PHONE_NUMBER:\n\t\tcase PHONE_NUMBER_CLIENT:\n\t\t\tspecifications = [fieldInstance.getFormat(), fieldInstance.getAllowMultiple()];\n\t\t\tbreak;\n\t\tcase TEXT: {\n\t\t\tconst textFormat = SUPPORTED_TEXT_FORMATS[fieldInstance.getFormat()];\n\t\t\tspecifications = [textFormat, fieldInstance.getAutoDetectHyperlink()];\n\t\t\tbreak;\n        }\n\t\tcase SENTIMENTAL_ANALYSIS:\n\t\t\tspecifications = [fieldInstance.getReferenceFieldID(), fieldInstance.getSentimentID()];\n\t\t\tbreak;\n\t\tcase LANGUAGE_DETECTOR:\n\t\t\tspecifications = [fieldInstance.getReferenceFieldID()];\n\t\t\tbreak;\n\t\tcase NUMBER:\n\t\tcase NUMBER_CLIENT:\n\t\t\tspecifications = [LOCALE, fieldInstance.getThousandSeparator(), fieldInstance.getPrecision()];\n\t\t\tbreak;\n\t\tcase PERCENT:\n\t\tcase PERCENT_CLIENT:\n\t\t\tspecifications = [LOCALE, fieldInstance.getPrecision(), fieldInstance.getShowSymbol(), fieldInstance.getThousandSeparator()];\n\t\t\tbreak;\n\t\tcase CURRENCY:\n\t\tcase CURRENCY_CLIENT:\n\t\t\tvar position = fieldInstance.getCurrencyPosition();\n\t\t\tvar currency = fieldInstance.getCurrency();\n\t\t\tvar symbol   = SUPPORTED_CURRENCY_VALUES[currency];\n\n\t\t\tif(position === ADD_FIELD_CURRENCY_POSITIONS_BEFORE) {\n\t\t\t\tsymbol += ' ';\n\t\t\t}else {\n\t\t\t\tsymbol = ` ${symbol}`;\n\t\t\t}\n\n\t\t\tvar locale;\n\t\t\tif(currency === ADD_FIELD_CURRENCIES_INR) {\n\t\t\t\tlocale = 'en-IN'; // No I18N\n\t\t\t}else if(currency === ADD_FIELD_CURRENCIES_CHF) {\n\t\t\t\tlocale = 'de-DE'; // No I18N\n\t\t\t}else if(currency === ADD_FIELD_CURRENCIES_ZAR){\n\t\t\t\tlocale = 'af-ZA';\n\t\t\t} else {\n\t\t\t\tlocale = LOCALE;\n\t\t\t}\n\t\t\tswitch(position) {\n\t\t\t\t\t\tcase ADD_FIELD_CURRENCY_POSITIONS_BEFORE:\n\t\t\t\t\t\t\tposition = ZSGrid.CURRENCY_POSITION.START;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase ADD_FIELD_CURRENCY_POSITIONS_AFTER:\n\t\t\t\t\t\t\tposition = ZSGrid.CURRENCY_POSITION.END;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase ADD_FIELD_CURRENCY_POSITIONS_ACCOUNTING:\n\t\t\t\t\t\t\tposition = ZSGrid.CURRENCY_POSITION.ACCOUNTING;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase ADD_FIELD_CURRENCY_POSITIONS_NONE:\n\t\t\t\t\t\t\tposition = ZSGrid.CURRENCY_POSITION.NONE;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\tspecifications = [locale, symbol, position, fieldInstance.getPrecision(), fieldInstance.getThousandSeparator()];\n\t\t\tbreak;\n\t\tcase DATE_TIME:\n\t\tcase MODIFIED_TIME:\n\t\tcase MODIFIED_TIME_CLIENT:\n\t\tcase DATE_TIME_CLIENT:\n\t\tcase CREATED_TIME:\n\t\tcase CREATED_TIME_CLIENT:\n\t\t\tvar dateFormat = SUPPORTED_DATE_FORMATS[fieldInstance.getDateFormat()];\n\t\t\tvar hourCycle  = SUPPORTED_HOUR_CYCLES[fieldInstance.getTimeFormat()];\n\t\t\tspecifications = [LOCALE, dateFormat, ZOHO_TABLES_TIME_FORMAT, hourCycle, interacter.getTimeZone()];\n\t\t\tbreak;\n\t\tcase AUTO_NUMBER:\n\t\tcase AUTO_NUMBER_CLIENT:\n\t\t\tspecifications = [LOCALE, THOUSAND_SEPARATOR, PRECISION, fieldInstance.getInitialValue(), fieldInstance.getStepSize(), fieldInstance.getPrefix(), fieldInstance.getSuffix()];\n\t\t\tbreak;\n\t\t\n\t\tcase CHECKBOX:\n\t\t\tspecifications = [fieldInstance.getStyle(), fieldInstance.getColor()];\n\t\t\tbreak;\n\t\tcase RATING:\n\t\t\tspecifications = [fieldInstance.getStyle(), fieldInstance.getColor(), fieldInstance.getMax()];\n\t\t\tbreak;\n\t\tcase MULTIPLE_SELECTION:\n\t\tcase SINGLE_SELECTION:\n\t\t\tlet ID         = fieldInstance.getID();\n\t\t\tspecifications = [ID, fieldInstance.getColoredOptions()];\n\t\t\tbreak;\n\t\tcase KEYWORD_EXTRACTION:\n\t\t\tspecifications = [fieldInstance.getReferenceFieldID(), fieldInstance.getMaxCount(), fieldInstance.getRestrictedKeywords()]\n\t\t\tbreak;\n\t\tcase EMAIL:\n\t\tcase URL:\n\t\t\tspecifications = [fieldInstance.getAllowMultiple()];\n\t\t\tbreak;\n\n\t\tcase LINK:  //link field revamped\n\t\t\tspecifications = [fieldInstance.getOppFieldID(), fieldInstance.getRestrictedViewToggle(), fieldInstance.getRestrictedViewID(), fieldInstance.getRelationshipDirection(), fieldInstance.getRelationshipID(), fieldInstance.getLeafFieldParameters(), fieldInstance.getAllowDuplicateLinkedRecords()];\n\t\t\tbreak;\n\t\tcase LINK_CLIENT:\n\t\t\tspecifications = [fieldInstance.getRelationshipID(), fieldInstance.getOppFieldID(), fieldInstance.getLeafFieldParameters()];\n\t\t\tbreak;\n\t\tcase COLLABORATOR_CLIENT:\n\t\t\tspecifications = [fieldInstance.getSelectionType(), fieldInstance.getNotifyCollaborator()];\n\t\t\tbreak;\n\n\t\tcase CREATED_BY:\n\t\tcase MODIFIED_BY:\n\t\tcase ATTACHMENT:\n\t\t\t\tspecifications = [];\n\t\t\tbreak;\n\n\t\tcase FORMULA:\n\t\t\tlet formatArray = fieldInstance.getFormatArray()[0];\n\t\t\tlet returnType  = formatArray[0];\n\t\t\tlet formats     = formatArray[1]; // [thousandSeparator, precision] (or) [dateFormat, timeFormat] (or) [textFormat]\n\t\t\tlet modifiedFormats;\n\t\t\tswitch(returnType) {\n\t\t\t\tcase NUMBER_FORMULA:\n\t\t\t\t\tmodifiedFormats = [LOCALE, formats[1], formats[0]];\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase FORMULA_RETURN_TYPE_EMPTY:\n\t\t\t\t\tvar textFormat  = SUPPORTED_TEXT_FORMATS[formats[0]];\n\t\t\t\t\tmodifiedFormats = [textFormat, formats[1]];\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase TEXT_FORMULA:\n\t\t\t\t\tvar textFormat  = SUPPORTED_TEXT_FORMATS[formats[0]];\n\t\t\t\t\tmodifiedFormats = [textFormat, formats[1]];\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase DATE_FORMULA:\n\t\t\t\t\tvar dateFormat  = SUPPORTED_DATE_FORMATS[formats[0]];\n\t\t\t\t\tvar hourCycle   = SUPPORTED_HOUR_CYCLES[formats[1]];\n\t\t\t\t\tmodifiedFormats = [LOCALE, dateFormat, ZOHO_TABLES_TIME_FORMAT, hourCycle, interacter.getTimeZone()];\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase CURRENCY_FORMULA: {\n\t\t\t\t\tvar currency            = formats[0];\n\t\t\t\t\tvar position            = formats[1];\n\t\t\t\t\tconst precision         = formats[2];\n\t\t\t\t\tconst thousandSeparator = formats[3];\n\n\t\t\t\t\tvar symbol = SUPPORTED_CURRENCY_VALUES[currency];\n\n\t\t\t\t\tif(position === ADD_FIELD_CURRENCY_POSITIONS_BEFORE) {\n\t\t\t\t\t\tsymbol += ' ';\n\t\t\t\t\t}else {\n\t\t\t\t\t\tsymbol = ` ${symbol}`;\n\t\t\t\t\t}\n\n\t\t\t\t\tvar locale;\n\t\t\t\t\tif(currency === ADD_FIELD_CURRENCIES_INR) {\n\t\t\t\t\t\tlocale = 'en-IN'; // No I18N\n\t\t\t\t\t} else if(currency === ADD_FIELD_CURRENCIES_CHF) {\n\t\t\t\t\t\tlocale = 'de-DE'; // No I18N\n\t\t\t\t\t}else if(currency === ADD_FIELD_CURRENCIES_ZAR){\n\t\t\t\t\t\tlocale = 'af-ZA';\n\t\t\t\t\t}else {\n\t\t\t\t\t\tlocale = LOCALE;\n\t\t\t\t\t}\n\n\t\t\t\t\t\t\tswitch(position) {\n\t\t\t\t\t\t\t\tcase ADD_FIELD_CURRENCY_POSITIONS_BEFORE:\n\t\t\t\t\t\t\t\t\tposition = ZSGrid.CURRENCY_POSITION.START;\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\tcase ADD_FIELD_CURRENCY_POSITIONS_AFTER:\n\t\t\t\t\t\t\t\t\tposition = ZSGrid.CURRENCY_POSITION.END;\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\tcase ADD_FIELD_CURRENCY_POSITIONS_ACCOUNTING:\n\t\t\t\t\t\t\t\t\tposition = ZSGrid.CURRENCY_POSITION.ACCOUNTING;\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\tcase ADD_FIELD_CURRENCY_POSITIONS_NONE:\n\t\t\t\t\t\t\t\t\tposition = ZSGrid.CURRENCY_POSITION.NONE;\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\tmodifiedFormats = [locale, symbol, position, precision, thousandSeparator];\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tcase PERCENT_FORMULA:\n\t\t\t\t\tlet precision         = formats[0];\n\t\t\t\t\tlet showSymbol        = formats[1];\n\t\t\t\t\tlet thousandSeparator = formats[2];\n\t\t\t\t\tmodifiedFormats       = [LOCALE, precision, showSymbol, thousandSeparator];\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tspecifications = [fieldInstance.getFormulaString(), fieldInstance.getFormulaStatus(), [[returnType, modifiedFormats]]];\n\t\t\tbreak;\n\n\t\tcase LOOKUP:\n\t\t\tspecifications = [fieldInstance.getLinkFieldID(), fieldInstance.getOppFieldID(), fieldInstance.getLeafFieldParameters(), fieldInstance.getRenderingType()];\n\t\t\tbreak;\n\n\t\tcase ROLLUP:\n\t\t\tspecifications = [fieldInstance.getLinkFieldID(), fieldInstance.getOppFieldID(), fieldInstance.getAggregationActionID(), fieldInstance.getReturnType(), fieldInstance.getLeafFieldParameters()];\n\t\t\tbreak;\n\n\t}\n\treturn specifications;\n}\n","import { AUTO_NUMBER, CURRENCY, FORMULA, NUMBER, PERCENT, RATING, ROLLUP } from \"../../../../../Constants/FieldTypes.js\";\nimport { CURRENCY as FORMULA_CURRENCY, DATE as FORMULA_DATE, NUMBER as FORMULA_NUMBER, PERCENT as FORMULA_PERCENT } from \"../../../../../Constants/FormulaReturnTypes.js\";\nimport { multiplyBy100, SNAP_FORMULA_SHOULD_MAINTIAN_LEAFSTYLE } from \"../../../../../Utility/DataUtility.js\";\nimport { getLeafFieldSpecifications, getNewFieldTypeSpecifications } from \"../../../../Utility/FieldTypeUtility.js\";\n\nconst ZSGrid = globalThis.ZSGrid;\nconst dateFormatter = ZSGrid.dateFormatter;\nconst currencyFormatter = ZSGrid.currencyFormatter;\nconst numberFormatter = ZSGrid.numberFormatter;\nconst percentFormatter = ZSGrid.percentFormatter;\nconst autoNumberFormatter = ZSGrid.autoNumberFormatter;\n\nexport function getKPIDisplayData(value, fieldProps, interacter) {\n\tif(value === null) {return \"\"}\n\n\tlet specs = getNewFieldTypeSpecifications(fieldProps, interacter);\n\tlet fieldType = fieldProps.getType();\n\n\tif (fieldType === ROLLUP && SNAP_FORMULA_SHOULD_MAINTIAN_LEAFSTYLE.includes(specs[2])) {\n\t\tconst fieldSpec = getLeafFieldSpecifications(fieldProps);\n\t\tconst leafFieldParameters = fieldSpec[4];\n\t\tfieldType = leafFieldParameters[0];\n\t\tspecs = leafFieldParameters[1];\n\t}\n\n\tswitch(fieldType) {\n\t\tcase AUTO_NUMBER: {\n            const locale = specs[0];\n\t\t\tconst thousandSeparator = specs[1];\n\t\t\tconst precision = specs[2];\n\t\t\tconst initialValue = 0;\n\t\t\tconst stepSize = 1;\n\t\t\tconst prefix = specs[5];\n\t\t\tconst suffix = specs[6];\n\t\t\tconst result = autoNumberFormatter(parseInt(value), locale, thousandSeparator, precision, initialValue, stepSize, prefix, suffix);\n\t\t\treturn result;\n\n        }\n\t\t\n\t\tcase CURRENCY: {\n            const locale = specs[0];\n\t\t\tconst symbol = specs[1];\n\t\t\tconst position = specs[2];\n\t\t\tconst precision = value % 1 === 0 ? 0 : specs[3];\n\t\t\tconst thousandSeparator = specs[4];\n\t\t\tconst result = currencyFormatter(value, locale, symbol, thousandSeparator, precision, position, false);\n\t\t\treturn result;\n        }\n\n\t\n\t\tcase NUMBER: {\n            const locale = specs[0];\n\t\t\tconst thousandSeparator = specs[1];\n\t\t\tconst precision = value % 1 === 0 ? 0 : specs[2];\n\t\t\tconst result = numberFormatter(value, locale, thousandSeparator, precision);\n\t\t\treturn result;\n        }\n\t\t\n\n\t\tcase PERCENT: {\n            const locale = specs[0];\n\t\t\tconst precision = value % 1 === 0 ? 0 : specs[1];\n\t\t\tconst showSymbol = specs[2];\n\t\t\tconst thousandSeparator = specs[3];\n\t\t\tconst result = percentFormatter(multiplyBy100(value), locale, thousandSeparator, precision, showSymbol);\n\t\t\treturn result;\n        }\n\t\t\n\n\t\tcase FORMULA: {\n            const formatArray = specs[2][0];\n\t\t\tconst returnType = formatArray[0];\n\t\t\tconst formats = formatArray[1];\n\n\t\t\tswitch (returnType) {\n\t\t\t\tcase FORMULA_NUMBER: {\n                    const locale = formats[0];\n\t\t\t\t\tconst thousandSeparator = formats[1];\n\t\t\t\t\tconst precision = value % 1 === 0 ? 0 : formats[2];\n\t\t\t\t\tconst result = numberFormatter(value, locale, thousandSeparator, precision);\n\t\t\t\t\treturn result;\n                }\n\t\t\t\t\n\n\t\t\t\tcase FORMULA_DATE:\n\t\t\t\t\treturn value;\n\n\t\t\t\tcase FORMULA_CURRENCY: {\n                    const locale = formats[0];\n\t\t\t\t\tconst symbol = formats[1];\n\t\t\t\t\tconst position = formats[2];\n\t\t\t\t\tconst precision = value % 1 === 0 ? 0 : formats[3];\n\t\t\t\t\tconst thousandSeparator = formats[4];\n\t\t\t\t\tconst result = currencyFormatter(value, locale, symbol, thousandSeparator, precision, position, false);\n\t\t\t\t\treturn result;\n                }\n\t\t\t\t\n\t\t\t\tcase FORMULA_PERCENT: {\n                    const locale = formats[0];\n\t\t\t\t\tconst precision = value % 1 === 0 ? 0 : formats[1];\n\t\t\t\t\tconst showSymbol = formats[2];\n\t\t\t\t\tconst thousandSeparator = formats[3];\n\t\t\t\t\tconst result = percentFormatter(multiplyBy100(value), locale, thousandSeparator, precision, showSymbol);\n\t\t\t\t\treturn result;\n                }\n\n\t\t\t}\n        }\n\t\t\n\t\tcase RATING:\n\t\t\treturn parseFloat(value).toFixed(2)\n\t\t\t\n\t\tdefault:\n\t\t\treturn value;\n\t}\n}","import { IAppendOnlyHtml } from \"../../../../../Dom/Middle/AddFieldPanel/_auxillaries/IAppendOnlyHtml\";\nimport { FieldID } from \"../../../../../Types\";\nimport { isNotNullOrUndefined, isNotUndefined } from \"../../../../Utility/utility\";\nimport { Alignment } from \"../Chart/ChartConstants\";\nimport { IComponentViewManager } from \"../IComponentViewManager\";\nimport { COUNT_FORMULA, GroupInterval } from \"./AggregationConstants\";\nimport { AggregationRenderPropertiesDataProvider } from \"./AggregationRenderPropertiesDataProvider\";\nimport { AggregationUI } from \"./AggregationUI\";\nimport { getKPIDisplayData } from \"./DisplayDataConvertor.js\";\nimport { IAggregationViewInteracter } from \"./IAggregationViewInteracter\";\n\nexport class AggregationViewManager implements IComponentViewManager<AggregationRenderPropertiesDataProvider> {\n\tprotected ui: AggregationUI;\n\tprivate formula: number | null;\n\tprivate fieldID: FieldID | null;\n\tprivate groupByFieldID: FieldID | null;\n\n\tprivate primaryValue: number | null;\n\tprivate secondaryValue: number | null;\n\n\tprivate interacter: IAggregationViewInteracter;\n\n\tconstructor(interacter: IAggregationViewInteracter) {\n\t\tthis.interacter     = interacter\n\t\tthis.formula        = null\n\t\tthis.fieldID        = null\n\t\tthis.groupByFieldID = null\n\t\tthis.primaryValue   = null\n\t\tthis.secondaryValue = null\n\t\t\n\t\tthis.ui = new AggregationUI();\n    }\n\n\tasync appendViewTo(parent: IAppendOnlyHtml, props: AggregationRenderPropertiesDataProvider) {\n\t\tthis.update(props);\n\t\tthis.ui.appendTo(parent);\n\t}\n\n\tupdate(props: AggregationRenderPropertiesDataProvider): void {\n\t\t\n\t\tconst fieldID = props.getAnchorFieldID();\n\t\tisNotUndefined<FieldID>(fieldID) && this.onPrimaryFieldChange(fieldID);\n\t\tconst formula = props.getFormula();\n\t\tisNotNullOrUndefined<number>(formula) && this.onFormulaChange(formula)\n\t\tconst primaryValue = props.getPrimaryValue();\n\t\tisNotUndefined<number>(primaryValue) && this.onPrimaryValueChange(primaryValue);\n\t\tconst secondaryLabel = props.getSecondaryLabel();\n\t\tisNotNullOrUndefined<string>(secondaryLabel) && this.onSecondaryLabelChange(secondaryLabel);\n\t\tconst secondaryValue = props.getSecondaryValue();\n\t\tisNotUndefined<number>(secondaryValue) && this.onSecondaryValueChange(secondaryValue);\n\t\tconst difference = props.getDifference();\n\t\tisNotUndefined<number>(difference) && this.onDifferenceChange(difference ?? 0);\n\t\tconst groupByType = props.getGroupByType();\n\t\tisNotNullOrUndefined<GroupInterval>(groupByType) && this.onGroupByIntervalChange(groupByType);\n\t\tconst groupByFieldID = props.getGroupByFieldID();\n\t\tisNotUndefined<FieldID>(groupByFieldID) && this.onGroupByFieldChange(groupByFieldID);\n\n\t\tif(this.groupByFieldID && this.groupByFieldID !== \"\") {\n\t\t\tconst showDifference = props.getShowDifference();\n\t\t\tisNotNullOrUndefined<boolean>(showDifference) && this.onShowDifferenceChange(showDifference);\n\t\t\tconst showSecondaryValue = props.getShowSecondaryValue();\n\t\t\tisNotNullOrUndefined<boolean>(showSecondaryValue) && this.onShowSecondaryValueChange(showSecondaryValue);\n\t\t\tconst showSecondaryLabel = props.getShowSecondaryLabel();\n\t\t\tisNotNullOrUndefined<boolean>(showSecondaryLabel) && this.onShowSecondaryLabelChange(showSecondaryLabel);\n\t\t}\n\n\t\tconst alignment = props.getAlignType();\n\t\tisNotNullOrUndefined<Alignment>(alignment) && this.onAlignChange(alignment);\n\t\tconst title = props.getTitle();\n\t\tisNotNullOrUndefined<string>(title) && this.onTitleChange(title);\n\t\tconst color = props.getColor();\n\t\tisNotNullOrUndefined<string>(color) && this.onColorChange(color);\n\t}\n\n\trerenderView() {\n\t}\n\n\tremove() {\n\t}\n\t\n\tprotected onGroupByFieldChange(groupByFieldID: FieldID | null) {\n\t\tthis.groupByFieldID = groupByFieldID;\n\t\tif(!this.ui) {return}\n\t\tif(this.groupByFieldID && this.groupByFieldID.length !== 0) {\n\t\t\tthis.ui.showDifference();\n\t\t\tthis.ui.showSecondaryValue();\n\t\t\tthis.ui.showSecondaryLabel();\n\t\t} else {\n\t\t\tthis.ui.hideDifference();\n\t\t\tthis.ui.hideSecondaryValue();\n\t\t\tthis.ui.hideSecondaryLabel();\n\t\t}\n\t}\n\n\tprotected onPrimaryFieldChange(fieldID: FieldID | null) {\n\t\tthis.fieldID = fieldID\n\t\tif(fieldID) {\n\t\t\t// const fieldProps = this.interacter.getComponentFieldInstance(fieldID);\n\t\t\tif(this.primaryValue) {\n\t\t\t\t// const primaryValue = getKPIDisplayData(this.primaryValue, fieldProps, this.interacter);\n\t\t\t\t// this.ui?.setValue(primaryValue)\n\t\t\t\tthis.ui?.setValue(this.getDisplayData(this.primaryValue));\n\t\t\t}\n\n\t\t\tif(this.secondaryValue) {\n\t\t\t\t// const secondaryValue = getKPIDisplayData(this.secondaryValue, fieldProps, this.interacter);\n\t\t\t\t// secondaryValue && this.ui?.setSecondaryValue(secondaryValue)\n\t\t\t\tthis.ui?.setValue(this.getDisplayData(this.secondaryValue));\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\tthis.ui?.setValue(this.getDisplayData(this.primaryValue));\n\t\t\tthis.ui?.setSecondaryValue(\"\")\n\t\t}\n\t}\n\n\tprotected onAlignChange(alignType: Alignment) {\n\t\tthis.ui?.setAlign(alignType);\n\t}\n\n\tprotected onTitleChange(label: string) {\n\t\tthis.ui?.setLabel(label);\n\t}\n\n\tprotected onColorChange(color: string) {\n\t\tthis.ui?.setColor(color)\n\t}\n\n\tprotected onPrimaryValueChange(primaryValue: number | null) {\n\t\tthis.primaryValue = primaryValue;\n\t\t\n\t\tconst primaryDisplayValue = this.getDisplayData(primaryValue);\n\t\tthis.ui?.setValue(primaryDisplayValue)\n\t}\n\n\tprotected onShowDifferenceChange(showDifference: boolean) {\n\n\t\tif(!this.ui) {\n\t\t\treturn;\n\t\t}\n\n\t\tif(!this.groupByFieldID || this.groupByFieldID.length === 0 || !showDifference) {\n\t\t\tthis.ui.hideDifference();\n\t\t\treturn;\n\t\t}\n\n\t\tthis.ui.showDifference();\n\t}\n\n\tprotected onShowSecondaryLabelChange(showMonth: boolean) {\n\n\t\tif(!this.ui) {\n\t\t\treturn;\n\t\t}\n\n\t\tif(!this.groupByFieldID || this.groupByFieldID.length === 0 || !showMonth) {\n\t\t\tthis.ui.hideSecondaryLabel();\n\t\t\treturn;\n\t\t}\n\n\t\tthis.ui.showSecondaryLabel();\n\n\t\t// this.groupByFieldID && this.ui && (showMonth ? this.ui.showSecondaryLabel() : this.ui.hideSecondaryLabel())\n\t}\n\n\tprotected onShowSecondaryValueChange(showPrevious: boolean) {\n\n\t\tif(!this.ui) {\n\t\t\treturn;\n\t\t}\n\n\t\tif(!this.groupByFieldID || this.groupByFieldID.length === 0 || !showPrevious) {\n\t\t\tthis.ui.hideSecondaryValue();\n\t\t\treturn;\n\t\t}\n\n\t\tthis.ui.showSecondaryValue();\n\n\t\t// this.groupByFieldID && this.ui && (showPrevious ? this.ui.showSecondaryValue() : this.ui.hideSecondaryValue())\n\t}\n\n\tprotected onSecondaryLabelChange(secondaryLabel: string) {\n\t\tthis.ui?.setSecondaryLabel(secondaryLabel)\n\t}\n\n\tprotected onSecondaryValueChange(secondaryValue: number | null) {\n\t\tthis.secondaryValue = secondaryValue;\n\t\t\n\t\tconst secondaryDisplayValue = this.getDisplayData(secondaryValue);\n\t\tthis.ui?.setSecondaryValue(secondaryDisplayValue)\n\t}\n\n\tprotected onDifferenceChange(difference: number) {\n\t\tthis.ui?.setDifference(difference)\n\t}\n\n\tprotected onFormulaChange(formula: number | null) {\n\t\tthis.formula = formula;\n\t}\n\n\tprotected onGroupByIntervalChange(groupByType: GroupInterval) {\n\t\tthis.ui?.setSecondaryCategory(groupByType)\n\t}\n\n\tprivate getDisplayData(value: number | null) {\n\t\tif(value === null) {\n\t\t\treturn \"\"\n\t\t}\n\n\t\tif(this.formula === COUNT_FORMULA) {\n\t\t\treturn parseInt(`${value}`)\n\t\t}\n\n\t\tif(!this.fieldID) {\n\t\t\treturn value % 1 === 0 ? value.toFixed(0) : value.toFixed(2)\n\t\t}\n\n\t\tconst fieldProps = this.interacter.getComponentFieldInstance(this.fieldID);\n\t\tconst data = getKPIDisplayData(value, fieldProps, this.interacter)\n\t\treturn data\n\t}\n}\n","import { CardPropertiesType } from \"../../LayoutBuilder/LayoutBuilderTypes\";\nimport { AGGREGATION_PROPERTY } from \"../ComponentPropertyConstants\";\nimport { IComponentViewProvider } from \"../IComponentViewProvider\";\nimport { AggregationRenderPropertiesDataProvider } from \"./AggregationRenderPropertiesDataProvider\";\nimport { AggregationViewManager } from \"./AggregationViewManager\";\nimport { IAggregationViewInteracter } from \"./IAggregationViewInteracter\";\n\nexport class AggregationViewProvider implements IComponentViewProvider<AggregationRenderPropertiesDataProvider> {\n\tgetComponent(interacter: IAggregationViewInteracter) {\n\t\tconst manager = new AggregationViewManager(interacter);\n\t\treturn manager;\n\t}\n\n\tgetComponentProperties(): CardPropertiesType {\n\t\treturn {\n\t\t\tminHeightPartition: AGGREGATION_PROPERTY.MIN_HEIGHT,\n\t\t\tmaxHeightPartition: AGGREGATION_PROPERTY.MAX_HEIGHT,\n\t\t\tminWidthPartition: AGGREGATION_PROPERTY.MIN_WIDTH,\n\t\t\tmaxWidthPartition: AGGREGATION_PROPERTY.MAX_WIDTH,\n\t\t\tenableDrag: false\n\t\t}\n\t}\n}","\n/**\n * let loader = new ModuleLoader();\n * loader.loadJS(jslistURLs, ?callback);\n * loader.loadCSS(csslistURLs, ?callback);\n */\n\nexport class ModuleLoader {\n\t\n\tconstructor(){\n\t\tthis.async = document.createElement('script').async || false;\t//NO I18N\n\t}\n\t\n\tloadJS(urls, callback){\n\t\tthis.load(urls, 'script', callback);\n\t}\n\t\n\tloadCSS(urls, callback){\n\t\tthis.load(urls, 'link', callback);\n\t}\n\t\n\tload(urls, type, callback){\n\t\n\t\tvar len = urls.length;\n\t\tif(len){\n\t\t\tfor(var j = 0; j < urls.length; j++) {\n\t\t\t\tvar url = urls[j];\n\t\t\t\tif(url != null && url != \"null\"){\n\t\t\t\t\tvar fragment = document.createDocumentFragment();\n\t\t\t\t\tvar node = createNode(type, urls[j], this.async);\t//NO I18N\n\t\t\t\t\tfragment.appendChild(node);\n\t\t\t\t\tif(j == len-1) {\n\t\t\t\t\t\tbindOnLoad(node, callback);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tdocument.body.appendChild(fragment);\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\tcallback && callback();\n\t\t}\n\t}\n}\n\nfunction bindOnLoad(node, fn){\n\tnode.onload = function(){\n\t\tfn && fn();\n\t}\n}\n\nfunction createNode(type, src, async){\n\t\n\tvar node = document.createElement(type);\n\t\n\tif (type === \"link\") {\n\t\tnode.href = src;\n\t\tnode.rel = 'stylesheet';\t//NO I18N\n\t\tnode.type = 'text/css';\t//NO I18N\n\t} else {\n\t\tnode.src = src;\n\t}\n\t\n\tif (async) {\n\t\tnode.async = false;\n\t}\n\treturn node;\n}\n","import { ModuleLoader } from \"../../Module/ModuleLoader.js\"\n\nexport type STATIC_FILES = {\n\tJS?: string[],\n\tCSS?: string[]\n}\n\nexport class StaticFilesLoader {\n\tprivate files: STATIC_FILES\n\tprivate isFileLoading: boolean\n\tprivate isFileLoaded: boolean\n\tprivate promiseReslovers: ((value: void | PromiseLike<void>) => void)[] = []\n\n\tconstructor(files?: STATIC_FILES) {\n\t\tthis.files = files ?? {};\n\t\tthis.isFileLoading = false\n\t\tthis.isFileLoaded = false\n\t}\n\n\tsetFiles(files: STATIC_FILES) {\n\t\tthis.files = files\n\t}\n\n\tload(): Promise<void> {\n\t\treturn new Promise<void>((resolve) => {\n\t\t\tif(this.isFileLoaded) {\n\t\t\t\tresolve()\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tif(this.isFileLoading) {\n\t\t\t\tthis.promiseReslovers.push(resolve)\n\t\t\t}\n\n\t\t\telse {\n\t\t\t\tconst moduleLoader = new ModuleLoader()\n\t\t\t\tconst cssPromise   = new Promise<void>((res) => {\n\t\t\t\t\tif(this.files.CSS && this.files.CSS.length > 0) {\n\t\t\t\t\t\tmoduleLoader.loadCSS(this.files.CSS, () => {\n\t\t\t\t\t\t\tres()\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tres()\n\t\t\t\t\t}\n\t\t\t\t})\n\n\t\t\t\tconst jsPromise   = new Promise<void>((res) => {\n\t\t\t\t\tif(this.files.JS && this.files.JS.length > 0) {\n\t\t\t\t\t\tmoduleLoader.loadJS(this.files.JS, () => {\n\t\t\t\t\t\t\tres()\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tres()\n\t\t\t\t\t}\n\t\t\t\t})\n\n\t\t\t\tthis.isFileLoading = true\n\n\t\t\t\tPromise.all([cssPromise, jsPromise]).then(() => {\n\t\t\t\t\tthis.isFileLoading = false\n\t\t\t\t\tthis.isFileLoaded = true\n\t\t\t\t\tresolve();\n\t\t\t\t\tthis.promiseReslovers.forEach((r) => r())\n\t\t\t\t})\n\t\t\t}\n\t\t})\n\t}\n}","const DATE_FORMATS = {\n\t1  : 'MM/DD/YYYY',//No I18N\n\t2  : 'DD/MM/YYYY',//No I18N\n\t3  : 'YYYY/MM/DD',//No I18N\n\n\t4  : 'Month D, YYYY',//No I18N\n\n\t5  : 'M/D/YYYY',//No I18N\n\t6  : 'D/M/YYYY',//No I18N\n\t7  : 'YYYY/M/D',//No I18N\n\n\t8  : 'MMDDYYYY',//No I18N\n\t9  : 'DDMMYYYY',//No I18N\n\t10 : 'YYYYMMDD',//No I18N\n\n\t11 : 'MonDDYYYY',//No I18N\n\t12 : 'DDMonYYYY',//No I18N\n\t13 : 'YYYYMonDD',//No I18N\n\n\t14 : 'D Month, YYYY',//No I18N\n\t15 : 'YYYY, Month D',//No I18N\n\n\t16 : 'Mon-DD-YYYY',//No I18N\n\t17 : 'DD-Mon-YYYY',//No I18N\n\t18 : 'YYYY-Mon-DD',//No I18N\n\n\t19 : 'Mon DD, YYYY',//No I18N\n\t20 : 'DD Mon, YYYY',//No I18N\n\t21 : 'YYYY, Mon DD',//No I18N\n\n\t22 : 'bM/bD/YYYY',//No I18N\n\t23 : 'bD/bM/YYYY',//No I18N\n\t24 : 'YYYY/bM/bD',//No I18N\n\n\t25 : 'q Q YY',//No I18N\n\t26 : 'q Q YYYY',//No I18N\n\n\t27 : 'MMM YY',//No I18N\n\t28 : 'MMM YYYY',//No I18N\n\n\t29 : 'WW WK YY',//No I18N\n\t30 : 'WW WK YYYY'//No I18N\n};\n\nconst OPTIONS    = {DAY:     'day',     MONTH:   'month',   YEAR:        'year',      HOUR_CYCLE: 'hourCycle', HOUR:  'hour', MINUTE: 'minute', SECOND: 'second', DAY_PERIOD: 'dayPeriod', TIME_ZONE_NAME: 'timeZoneName', TIME_ZONE: 'timeZone'};//No I18N\nconst VALUES     = {DIGIT_2: '2-digit', NUMERIC: 'numeric', NARROW:      'narrow',    SHORT:    'short', LONG: 'long'};//No I18N\nconst DELIMITERS = {SLASH:   '/',       SPACE:   ' ',       COMMA_SPACE: ', ',        QUARTERS: 'Q',     WEEK: 'Week', HYPHEN: '-', COLON: ':', PERCENT: '%', COMMA: ','};//No I18N\n\nconst TIME_FORMATS = {\n\t1: 'HH:MM:SS',//No I18N\n\t2: 'HH:MM',//No I18N\n\t3: 'HH'//No I18N\n};\n\nconst HOUR_CYCLES  = {\n\tH11: '11H',//No I18N\n\tH12: '12H',//No I18N\n\tH23: '23H',//No I18N\n\tH24: '24H'//No I18N\n};\n\nconst THOUSAND_SEPARATOR = {\n\tNOT_NEEDED : 0,\n\tNEEDED     : 1\n};\n\nconst NUMBER_OPTIONS    = {MAXIMUM_FRACTION_DIGITS: 'maximumFractionDigits', USE_GROUPING: 'useGrouping', MINIMUM_FRACTION_DIGITS: 'minimumFractionDigits'};//No I18N\nconst NUMBER_DELIMITERS = {COMMA:                   ',',                     SPACE:        ' '};//No I18N\nconst NUMBER_CONSTANTS  = {GROUP:                   'group',                 DECIMAL:      'decimal'};//No I18N\n\nconst NUMBER_REGEX = /^((\\d)*(\\,)*)*((\\.)?\\d*)?$/;\n\nconst PERCENT_SYMBOL = {\n\tHIDE : 0,\n\tSHOW : 1\n};\n\nconst CURRENCY_POSITION = {\n\tNONE      : 3,\n\tSTART     : 0,\n\tEND       : 1,\n\tACCOUNTING: 2\n}\n\nconst PHONE_NUMBER_FORMATS = {\n\t1  : '+xx xxxxx xxxxx',//No I18N\n\t2  : '+xx-xxxxx-xxxxx',//No I18N\n\n\t3  : '+xx xxx xxx xxxx',//No I18N\n\t4  : '+xx-xxx-xxx-xxxx',//No I18N\n\n\t5  : 'xxxxx xxxxx',//No I18N\n\t6  : 'xxxxx-xxxxx',//No I18N\n\n\t7  : 'xxx xxx xxxx',//No I18N\n\t8  : 'xxx-xxx-xxxx',//No I18N\n\t9  : 'xxx xxx-xxxx',//No I18N\n\t10 : '(xxx) xxx-xxxx',//No I18N\n\t\n\t11 : 'xxxxxxxxxx'//No I18N\n};\n\nconst regex = new RegExp('[^0-9]+', 'i');//No I18N\n\nconst PHONENUMBER_DELIMITERS = {PLUS: '+', SPACE: ' ', HYPHEN: '-', OPEN_BRACKET: '(', CLOSE_BRACKET: ')', EMPTY: ''};//No I18N\n\nlet isCurrencyNegativeNumber = false;\nconst CURRENCY_DELIMITERS    = {OPEN_BRACKET: '(', CLOSE_BRACKET: ')', MINUS: '-', SPACE: ' '};\n\nconst CONSTANTS  = {GROUP:                   'group'};//No I18N\n\nconst TEXT_FORMATS = {\n\tDEFAULT       : 'default',//No I18N\n\tINIT_CAPS     : 'initCaps',//No I18N\n\tUPPER_CASE    : 'fullCaps',//No I18N\n\tLOWER_CASE    : 'fullSmall',//No I18N\n\tSENTENCE_CASE : 'sentenceCase'//No I18N\n};\n\nconst REGEX               = new RegExp(/[a-zA-Z]/i);\nconst SENTENCE_CASE_REGEX = /((\\s(i)\\s)|(^(.))|(\\.(\\s)+(.)))/g;\n\nexport function dateFormatter(timeStamp, locale, dateFormat, timeZone) {\n\tconst date = new Date(datePreProcessData(`${timeStamp}`));\n\tif(isNaN(date.valueOf())) {\n\t\treturn timeStamp;\n\t}\n\n\tconst options = {};\n\ttimeZone && (options[OPTIONS.TIME_ZONE] = timeZone);\n\n\tsetDateFormat(dateFormat, options);\n\n\tconst formatter = new Intl.DateTimeFormat(locale, options);\n\treturn formatData(formatter.formatToParts(date), dateFormat);\n}\n\nfunction setDateFormat(dateFormat, options) {\n\tswitch(dateFormat) {\n\t\tcase DATE_FORMATS[4]:\n\t\tcase DATE_FORMATS[14]:\n\t\tcase DATE_FORMATS[15]:\n\t\t\toptions[OPTIONS.DAY]   = VALUES.NUMERIC;\n\t\t\toptions[OPTIONS.MONTH] = VALUES.LONG;\n\t\t\toptions[OPTIONS.YEAR]  = VALUES.NUMERIC;\n\t\t\treturn;\n\t\tcase DATE_FORMATS[5]:\n\t\tcase DATE_FORMATS[6]:\n\t\tcase DATE_FORMATS[7]:\n\t\tcase DATE_FORMATS[22]:\n\t\tcase DATE_FORMATS[23]:\n\t\tcase DATE_FORMATS[24]:\n\t\tcase DATE_FORMATS[30]:\n\t\t\toptions[OPTIONS.DAY]   = VALUES.NUMERIC;\n\t\t\toptions[OPTIONS.MONTH] = VALUES.NUMERIC;\n\t\t\toptions[OPTIONS.YEAR]  = VALUES.NUMERIC;\n\t\t\treturn;\n\t\tcase DATE_FORMATS[11]:\n\t\tcase DATE_FORMATS[12]:\n\t\tcase DATE_FORMATS[13]:\n\t\tcase DATE_FORMATS[16]:\n\t\tcase DATE_FORMATS[17]:\n\t\tcase DATE_FORMATS[18]:\n\t\tcase DATE_FORMATS[19]:\n\t\tcase DATE_FORMATS[20]:\n\t\tcase DATE_FORMATS[21]:\n\t\t\toptions[OPTIONS.DAY]   = VALUES.DIGIT_2;\n\t\t\toptions[OPTIONS.MONTH] = VALUES.SHORT;\n\t\t\toptions[OPTIONS.YEAR]  = VALUES.NUMERIC;\n\t\t\treturn;\n\t\tcase DATE_FORMATS[25]:\n\t\t\toptions[OPTIONS.MONTH] = VALUES.NUMERIC;\n\t\t\toptions[OPTIONS.YEAR]  = VALUES.DIGIT_2;\n\t\t\treturn;\n\t\tcase DATE_FORMATS[26]:\n\t\t\toptions[OPTIONS.MONTH] = VALUES.NUMERIC;\n\t\t\toptions[OPTIONS.YEAR]  = VALUES.NUMERIC;\n\t\t\treturn;\n\t\tcase DATE_FORMATS[27]:\n\t\t\toptions[OPTIONS.MONTH] = VALUES.SHORT;\n\t\t\toptions[OPTIONS.YEAR]  = VALUES.DIGIT_2;\n\t\t\treturn;\n\t\tcase DATE_FORMATS[28]:\n\t\t\toptions[OPTIONS.MONTH] = VALUES.SHORT;\n\t\t\toptions[OPTIONS.YEAR]  = VALUES.NUMERIC;\n\t\t\treturn;\n\t\tcase DATE_FORMATS[29]:\n\t\t\toptions[OPTIONS.DAY]   = VALUES.NUMERIC;\n\t\t\toptions[OPTIONS.MONTH] = VALUES.NUMERIC;\n\t\t\toptions[OPTIONS.YEAR]  = VALUES.DIGIT_2;\n\t\t\treturn;\n\t\tcase DATE_FORMATS[1]:\n\t\tcase DATE_FORMATS[2]:\n\t\tcase DATE_FORMATS[3]:\n\t\tcase DATE_FORMATS[8]:\n\t\tcase DATE_FORMATS[9]:\n\t\tcase DATE_FORMATS[10]:\n\t\tdefault:\n\t\t\toptions[OPTIONS.DAY]   = VALUES.DIGIT_2;\n\t\t\toptions[OPTIONS.MONTH] = VALUES.DIGIT_2;\n\t\t\toptions[OPTIONS.YEAR]  = VALUES.NUMERIC;\n\t\t\treturn;\n\t}\n}\n\nfunction formatData(formatParts, dateFormat) {\n\tlet day;\n\tlet month;\n\tlet year;\n\tlet formatPart;\n\tfor(let i = 0; i < formatParts.length; i++) {\n\t\tformatPart = formatParts[i];\n\t\tswitch(formatPart.type) {\n\t\t\tcase OPTIONS.DAY:\n\t\t\t\tday = formatPart.value;\n\t\t\t\tbreak;\n\t\t\tcase OPTIONS.MONTH:\n\t\t\t\tmonth = formatPart.value;\n\t\t\t\tbreak;\n\t\t\tcase OPTIONS.YEAR:\n\t\t\t\tyear = formatPart.value;\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tlet date = '';\n\tswitch(dateFormat) {\n\t\tcase DATE_FORMATS[2]:\n\t\tcase DATE_FORMATS[6]:\n\t\t\tdate += day + DELIMITERS.SLASH + month + DELIMITERS.SLASH + year;\n\t\t\treturn date;\n\n\t\tcase DATE_FORMATS[3]:\n\t\tcase DATE_FORMATS[7]:\n\t\t\tdate += year + DELIMITERS.SLASH + month + DELIMITERS.SLASH + day;\n\t\t\treturn date;\n\n\t\tcase DATE_FORMATS[4]:\n\t\tcase DATE_FORMATS[19]:\n\t\t\tdate += month + DELIMITERS.SPACE + day + DELIMITERS.COMMA_SPACE + year;\n\t\t\treturn date;\n\n\t\tcase DATE_FORMATS[14]:\n\t\tcase DATE_FORMATS[20]:\n\t\t\tdate += day + DELIMITERS.SPACE + month + DELIMITERS.COMMA_SPACE + year;\n\t\t\treturn date;\n\t\t\t\n\t\tcase DATE_FORMATS[15]:\n\t\tcase DATE_FORMATS[21]:\n\t\t\tdate += year + DELIMITERS.COMMA_SPACE + month + DELIMITERS.SPACE + day;\n\t\t\treturn date;\n\n\t\tcase DATE_FORMATS[22]:\n\t\t\tmonth.length < 2 && (month = DELIMITERS.SPACE + month);\n\t\t\tday.length < 2 && (day = DELIMITERS.SPACE + day);\n\n\t\t\tdate += month + DELIMITERS.SLASH + day + DELIMITERS.SLASH + year;\n\t\t\treturn date;\n\n\t\tcase DATE_FORMATS[23]:\n\t\t\tmonth.length < 2 && (month = DELIMITERS.SPACE + month);\n\t\t\tday.length < 2 && (day = DELIMITERS.SPACE + day);\n\n\t\t\tdate += day + DELIMITERS.SLASH + month + DELIMITERS.SLASH + year;\n\t\t\treturn date;\n\n\t\tcase DATE_FORMATS[24]:\n\t\t\tmonth.length < 2 && (month = DELIMITERS.SPACE + month);\n\t\t\tday.length < 2 && (day = DELIMITERS.SPACE + day);\n\n\t\t\tdate += year + DELIMITERS.SLASH + month + DELIMITERS.SLASH + day;\n\t\t\treturn date;\n\n\t\tcase DATE_FORMATS[25]:\n\t\tcase DATE_FORMATS[26]:\n\t\t\tvar quarter;\n\t\t\tmonth = ~~month;\n\t\t\tif(month >= 1 && month <= 3) {\n\t\t\t\tquarter = 1;\n\t\t\t}else if(month >= 4 && month <= 6) {\n\t\t\t\tquarter = 2;\n\t\t\t}else if(month >= 7 && month <= 9) {\n\t\t\t\tquarter = 3;\n\t\t\t}else {\n\t\t\t\tquarter = 4;\n\t\t\t}\n\t\t\tdate += quarter + DELIMITERS.SPACE + DELIMITERS.QUARTERS + DELIMITERS.SPACE + year;\n\t\t\treturn date;\n\n\t\tcase DATE_FORMATS[27]:\n\t\tcase DATE_FORMATS[28]:\n\t\t\tdate += month.toUpperCase() + DELIMITERS.SPACE + year;\n\t\t\treturn date;\n\n\t\tcase DATE_FORMATS[29]:\n\t\tcase DATE_FORMATS[30]:\n\t\t\tvar weekNumber = getWeekNumber(~~year, (~~month-1), ~~day);\n\t\t\tdate          += weekNumber + DELIMITERS.SPACE + DELIMITERS.WEEK + DELIMITERS.SPACE + year;\n\t\t\treturn date;\n\n\t\tcase DATE_FORMATS[8]:\n\t\tcase DATE_FORMATS[11]:\n\t\t\tdate += month + day + year;\n\t\t\treturn date;\n\n\t\tcase DATE_FORMATS[9]:\n\t\tcase DATE_FORMATS[12]:\n\t\t\tdate += day + month + year;\n\t\t\treturn date;\n\n\t\tcase DATE_FORMATS[10]:\n\t\tcase DATE_FORMATS[13]:\n\t\t\tdate += year + month + day;\n\t\t\treturn date;\n\n\t\tcase DATE_FORMATS[16]:\n\t\t\tdate += month + DELIMITERS.HYPHEN + day + DELIMITERS.HYPHEN + year;\n\t\t\treturn date;\n\n\t\tcase DATE_FORMATS[17]:\n\t\t\tdate += day + DELIMITERS.HYPHEN + month + DELIMITERS.HYPHEN + year;\n\t\t\treturn date;\n\n\t\tcase DATE_FORMATS[18]:\n\t\t\tdate += year + DELIMITERS.HYPHEN + month + DELIMITERS.HYPHEN + day;\n\t\t\treturn date;\n\n\t\tcase DATE_FORMATS[1]:\n\t\tcase DATE_FORMATS[5]:\n\t\tdefault:\n\t\t\tdate += month + DELIMITERS.SLASH + day + DELIMITERS.SLASH + year;\n\t\t\treturn date;\n\t}\n}\n\nfunction getWeekNumber(year, month, day) {\n\tconst endDate                  = new Date(year, month, day);\n\tconst startDate                = new Date(year, 0, 1);\n\tconst daysNeededToReachEndDate = (endDate - startDate) / (1000 * 60 * 60 * 24);\n\tconst weekNumber               = (daysNeededToReachEndDate + startDate.getDay() + 1) / 7;\n\treturn Math.ceil(weekNumber);\n}\n\n\nexport function timeFormatter(timeStamp, locale, timeFormat, hourCycle, timeZone) {\n\tconst date = new Date(datePreProcessData(`${timeStamp}`));\n\tif(isNaN(date.valueOf())) {\n\t\treturn timeStamp;\n\t}\n\n\tconst options = {};\n\ttimeZone && (options[OPTIONS.TIME_ZONE] = timeZone);\n\n\tsetTimeFormat(timeFormat, options);\n\tsetHourCycle(hourCycle, options);\n\n\tconst formatter = new Intl.DateTimeFormat(locale, options);\n\treturn formatTimeData(formatter.formatToParts(date), timeFormat, hourCycle);\n}\n\nfunction datePreProcessData(timeStamp) {\n\ttimeStamp = timeStamp.trim();\n\tif(!timeStamp) {\n\t\treturn '';\n\t}\n\tconst number = Number(timeStamp);\n\tif(isNaN(number)) {\n\t\treturn '';\n\t}\n\treturn number;\n}\n\nfunction setTimeFormat(timeFormat, options) {\n\tswitch(timeFormat) {\n\t\tcase TIME_FORMATS[2]:\n\t\t\toptions[OPTIONS.HOUR]   = VALUES.DIGIT_2;\n\t\t\toptions[OPTIONS.MINUTE] = VALUES.DIGIT_2;\n\t\t\treturn;\n\t\tcase TIME_FORMATS[3]:\n\t\t\toptions[OPTIONS.HOUR]   = VALUES.DIGIT_2;\n\t\t\treturn;\n\t\tcase TIME_FORMATS[1]:\n\t\tdefault:\n\t\t\toptions[OPTIONS.HOUR]   = VALUES.DIGIT_2;\n\t\t\toptions[OPTIONS.MINUTE] = VALUES.DIGIT_2;\n\t\t\toptions[OPTIONS.SECOND] = VALUES.DIGIT_2;\n\t\t\treturn;\n\t}\n}\n\nfunction setHourCycle(hourCycle, options) {\n\tswitch(hourCycle) {\n\t\tcase HOUR_CYCLES.H11:\n\t\t\toptions[OPTIONS.HOUR_CYCLE] = VALUES.H11;\n\t\t\treturn;\n\t\tcase HOUR_CYCLES.H23:\n\t\t\toptions[OPTIONS.HOUR_CYCLE] = VALUES.H23;\n\t\t\treturn;\n\t\tcase HOUR_CYCLES.H24:\n\t\t\toptions[OPTIONS.HOUR_CYCLE] = VALUES.H24;\n\t\t\treturn;\n\t\tcase HOUR_CYCLES.H12:\n\t\tdefault:\n\t\t\toptions[OPTIONS.HOUR_CYCLE] = VALUES.H12;\n\t\t\treturn;\n\t}\n}\n\nfunction formatTimeData(formatParts, timeFormat, hourCycle) {\n\tlet hour;\n\tlet minute;\n\tlet second;\n\tlet dayPeriod;\n\tlet formatPart;\n\tfor(let i = 0; i < formatParts.length; i++) {\n\t\tformatPart = formatParts[i];\n\t\tswitch(formatPart.type) {\n\t\t\tcase OPTIONS.HOUR:\n\t\t\t\thour = formatPart.value;\n\t\t\t\tbreak;\n\t\t\tcase OPTIONS.MINUTE:\n\t\t\t\tminute = formatPart.value;\n\t\t\t\tbreak;\n\t\t\tcase OPTIONS.SECOND:\n\t\t\t\tsecond = formatPart.value;\n\t\t\t\tbreak;\n\t\t\tcase OPTIONS.DAY_PERIOD:\n\t\t\t\tdayPeriod = formatPart.value;\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tlet time = '';\n\tswitch(timeFormat) {\n\t\tcase TIME_FORMATS[2]:\n\t\t\ttime += hour + DELIMITERS.COLON + minute;\n\t\t\tbreak;\n\t\tcase TIME_FORMATS[3]:\n\t\t\ttime += hour;\n\t\t\tbreak;\n\t\tcase TIME_FORMATS[1]:\n\t\tdefault:\n\t\t\ttime += hour + DELIMITERS.COLON + minute + DELIMITERS.COLON + second;\n\t\t\tbreak;\n\t}\n\n\tswitch(hourCycle) {\n\t\tcase HOUR_CYCLES.H23:\n\t\tcase HOUR_CYCLES.H24:\n\t\t\treturn time;\n\t\tcase HOUR_CYCLES.H11:\n\t\tcase HOUR_CYCLES.H12:\n\t\tdefault:\n\t\t\ttime += DELIMITERS.SPACE + dayPeriod;\n\t\t\treturn time;\n\t}\n}\n\nexport function numberFormatter(actualData, locale, thousandSeparator, precision) {\n\tconst data = numberPreProcessData(`${actualData}`);\n\tif(data === '') { // 0 may come\n\t\treturn actualData;\n\t}\n\n\tconst options = {};\n\t\n\tsetMaximumFractionDigits(precision, options);\n\tsetGrouping(thousandSeparator, options);\n\n\tconst formatter = new Intl.NumberFormat(locale, options);\n\treturn formatNumberData(formatter.formatToParts(data), precision);\n}\n\nfunction numberPreProcessData(actualData) {\n\tactualData = actualData.trim();\n\tif(!actualData) {\n\t\treturn '';\n\t}\n\tif(!NUMBER_REGEX.test(actualData)) {\n\t\treturn '';\n\t}\n\tactualData = actualData.replaceAll(',', '');\n\treturn actualData;\n}\n\nfunction setMaximumFractionDigits(precision, options) {\n\tif(precision < 0) {\n\t\tprecision = 0;\n\t}else if(precision > 20) {\n\t\tprecision = 20;\n\t}\n\toptions[NUMBER_OPTIONS.MINIMUM_FRACTION_DIGITS] = precision;\n\toptions[NUMBER_OPTIONS.MAXIMUM_FRACTION_DIGITS] = precision;\n}\n\nfunction setGrouping(thousandSeparator, options) {\n\tswitch(thousandSeparator) {\n\t\tcase THOUSAND_SEPARATOR.NOT_NEEDED:\n\t\t\toptions[NUMBER_OPTIONS.USE_GROUPING] = false;\n\t\t\treturn;\n\t\tcase THOUSAND_SEPARATOR.NEEDED:\n\t\tdefault:\n\t\t\toptions[NUMBER_OPTIONS.USE_GROUPING] = true;\n\t\t\treturn;\n\t}\n}\n\nfunction formatNumberData(formatParts, precision) {\n\tlet number = '';\n\tlet formatPart;\n\n\tfor(var i = 0; i < formatParts.length; i++) {\n\t\tformatPart = formatParts[i];\n\t\tswitch(formatPart.type) {\n\t\t\tcase NUMBER_CONSTANTS.GROUP:\n\t\t\t\tnumber += NUMBER_DELIMITERS.COMMA;\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tnumber += formatPart.value;\n\t\t\t\tbreak;\n\t\t}\n\t}\n\t\n\tif(precision > 0) {\n\t\tconst fractionPart = number.split('.')[1];\n\t\tif(!fractionPart) {\n\t\t\tnumber += '.';\n\t\t\tfor(var i = 0; i < precision; i++) {\n\t\t\t\tnumber += 0;\n\t\t\t}\n\t\t}else if(fractionPart.length !== precision) {\n\t\t\tconst diff = precision - fractionPart.length;\n\t\t\tfor(var i = 0; i < diff; i++) {\n\t\t\t\tnumber += 0;\n\t\t\t}\n\t\t}\n\t}\n\t\n\treturn number;\n}\n\nexport function percentFormatter(actualData, locale, thousandSeparator, precision, showSymbol) {\n\tconst data = precentPreProcessData(`${actualData}`);\n\tif(data === '') { // 0 may come\n\t\treturn actualData;\n\t}\n\n\tconst options = {};\n\n\tsetMaximumFractionDigits(precision, options);\n\tsetGrouping(thousandSeparator, options);\n\n\tconst formatter = new Intl.NumberFormat(locale, options);\n\treturn formatPrecentData(formatter.formatToParts(data), precision, showSymbol);\n}\n\nfunction precentPreProcessData(actualData) {\n\tactualData = actualData.trim();\n\tif(!actualData) {\n\t\treturn '';\n\t}\n\tconst number = Number(actualData);\n\tif(isNaN(number)) {\n\t\treturn '';\n\t}\n\treturn number;\n}\n\nfunction formatPrecentData(formatParts, precision, showSymbol) {\n\tlet percent = '';\n\tlet formatPart;\n\tfor(var i = 0; i < formatParts.length; i++) {\n\t\tformatPart = formatParts[i];\n\t\tswitch(formatPart.type) {\n\t\t\tcase NUMBER_CONSTANTS.GROUP:\n\t\t\t\tpercent += DELIMITERS.COMMA;\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tpercent += formatPart.value;\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tif(precision > 0) {\n\t\tconst fractionPart = percent.split('.')[1];\n\t\tif(!fractionPart) {\n\t\t\tpercent += '.';\n\t\t\tfor(var i = 0; i < precision; i++) {\n\t\t\t\tpercent += 0;\n\t\t\t}\n\t\t}else if(fractionPart.length !== precision) {\n\t\t\tconst diff = precision - fractionPart.length;\n\t\t\tfor(var i = 0; i < diff; i++) {\n\t\t\t\tpercent += 0;\n\t\t\t}\n\t\t}\n\t}\n\t\n\tswitch(showSymbol) {\n\t\tcase PERCENT_SYMBOL.HIDE:\n\t\t\treturn percent;\n\t\tcase PERCENT_SYMBOL.SHOW:\n\t\tdefault:\n\t\t\tpercent += DELIMITERS.PERCENT;\n\t\t\treturn percent;\n\t}\n}\n\nexport function currencyFormatter(actualData, locale, currency, thousandSeparator, precision, position, isShowMinusSignInAccountingFormat) {\n\tconst data = currencyPreProcessData(`${actualData}`);\n\tif(data === '') { // 0 may come\n\t\treturn actualData;\n\t}\n\n\tconst options = {};\n\n\tsetMaximumFractionDigits(precision, options);\n\tsetGrouping(thousandSeparator, options);\n\n\tconst formatter = new Intl.NumberFormat(locale, options);\n\treturn formatCurrencyData(formatter.formatToParts(data), currency, precision, position, isShowMinusSignInAccountingFormat);\n}\n\nfunction currencyPreProcessData(actualData) {\n\tactualData = actualData.trim();\n\tif (!actualData) {\n\t\treturn '';\n\t}\n\tactualData = actualData.replaceAll(',', '');\n\tvar number = Number(actualData);\n\tif (isNaN(number)) {\n\t\treturn '';\n\t}\n\n\tisCurrencyNegativeNumber = (number < 0) ? true : false;\n\treturn Math.abs(number);\n}\n\nfunction formatCurrencyData(formatParts, currency, precision, position, isShowMinusSignInAccountingFormat) {\n\tlet data = '';\n\tlet formatPart;\n\tfor(var i = 0; i < formatParts.length; i++) {\n\t\tformatPart = formatParts[i];\n\t\tdata += formatPart.value;\n\t}\n\n\tswitch(position) {\n\t\tcase CURRENCY_POSITION.END:\n\t\t\tdata = `${data}${currency}`;\n\t\t\tif (isCurrencyNegativeNumber) {\n\t\t\t\treturn `${CURRENCY_DELIMITERS.MINUS}${CURRENCY_DELIMITERS.SPACE}${data}`;\n\t\t\t}\n\t\t\treturn data;\n\t\tcase CURRENCY_POSITION.START:\n\t\t\tdata = `${currency}${data}`;\n\t\t\tif (isCurrencyNegativeNumber) {\n\t\t\t\treturn `${CURRENCY_DELIMITERS.MINUS}${CURRENCY_DELIMITERS.SPACE}${data}`;\n\t\t\t}\n\t\t\treturn data;\n\t\tcase CURRENCY_POSITION.ACCOUNTING:\n\t\t\tdata =  isCurrencyNegativeNumber ? isShowMinusSignInAccountingFormat ? \n\t\t\t\t\t\t`${CURRENCY_DELIMITERS.MINUS}${CURRENCY_DELIMITERS.SPACE}${currency}${data}` : `${currency}${CURRENCY_DELIMITERS.SPACE}${CURRENCY_DELIMITERS.OPEN_BRACKET}${data}${CURRENCY_DELIMITERS.CLOSE_BRACKET}` :\n\t\t\t\t\t`${currency}${CURRENCY_DELIMITERS.SPACE}${data}`;\n\t\t\treturn data;\n\t\tcase CURRENCY_POSITION.NONE:\n\t\tdefault:\n\t\t\tif (isCurrencyNegativeNumber) {\n\t\t\t\treturn `${CURRENCY_DELIMITERS.MINUS}${CURRENCY_DELIMITERS.SPACE}${data}`;\n\t\t\t}\n\t\t\treturn data;\n\t}\n}\n\nexport function phoneNumberFormatter(actualData, format) {\n\tconst data = `${actualData}`;\n\n\tconst isMatching = regex.test(data);\n\tif(!data || isMatching) {\n\t\treturn data;\n\t}\n\n\treturn formatPhoneNumberData(data, format);\n}\n\nfunction formatPhoneNumberData(data, format) {\n\tswitch(format) {\n\t\tcase PHONE_NUMBER_FORMATS[1]:\n\t\t\tif(data.length !== 12) {\n\t\t\t\treturn data;\n\t\t\t}\n\n\t\t\tdata = PHONENUMBER_DELIMITERS.PLUS + data.slice(0, 2) + PHONENUMBER_DELIMITERS.SPACE + data.slice(2, 7) + PHONENUMBER_DELIMITERS.SPACE + data.slice(7);\n\t\t\treturn data;\n\n\t\tcase PHONE_NUMBER_FORMATS[2]:\n\t\t\tif(data.length !== 12) {\n\t\t\t\treturn data;\n\t\t\t}\n\n\t\t\tdata = PHONENUMBER_DELIMITERS.PLUS + data.slice(0, 2) + PHONENUMBER_DELIMITERS.HYPHEN + data.slice(2, 7) + PHONENUMBER_DELIMITERS.HYPHEN + data.slice(7);\n\t\t\treturn data;\n\n\t\tcase PHONE_NUMBER_FORMATS[3]:\n\t\t\tif(data.length !== 12) {\n\t\t\t\treturn data;\n\t\t\t}\n\n\t\t\tdata = PHONENUMBER_DELIMITERS.PLUS + data.slice(0, 2) + PHONENUMBER_DELIMITERS.SPACE + data.slice(2, 5) + PHONENUMBER_DELIMITERS.SPACE + data.slice(5, 8) + PHONENUMBER_DELIMITERS.SPACE + data.slice(8);\n\t\t\treturn data;\n\n\t\tcase PHONE_NUMBER_FORMATS[4]:\n\t\t\tif(data.length !== 12) {\n\t\t\t\treturn data;\n\t\t\t}\n\n\t\t\tdata = PHONENUMBER_DELIMITERS.PLUS + data.slice(0, 2) + PHONENUMBER_DELIMITERS.HYPHEN + data.slice(2, 5) + PHONENUMBER_DELIMITERS.HYPHEN + data.slice(5, 8) + PHONENUMBER_DELIMITERS.HYPHEN + data.slice(8);\n\t\t\treturn data;\n\n\t\tcase PHONE_NUMBER_FORMATS[5]:\n\t\t\tif(data.length !== 10) {\n\t\t\t\treturn data;\n\t\t\t}\n\n\t\t\tdata = data.slice(0, 5) + PHONENUMBER_DELIMITERS.SPACE + data.slice(5);\n\t\t\treturn data;\n\n\t\tcase PHONE_NUMBER_FORMATS[6]:\n\t\t\tif(data.length !== 10) {\n\t\t\t\treturn data;\n\t\t\t}\n\n\t\t\tdata = data.slice(0, 5) + PHONENUMBER_DELIMITERS.SPACE + data.slice(5);\n\t\t\treturn data;\n\n\t\tcase PHONE_NUMBER_FORMATS[7]:\n\t\t\tif(data.length !== 10) {\n\t\t\t\treturn data;\n\t\t\t}\n\n\t\t\tdata = data.slice(0, 3) + PHONENUMBER_DELIMITERS.SPACE + data.slice(3, 6) + PHONENUMBER_DELIMITERS.SPACE + data.slice(6);\n\t\t\treturn data;\n\n\t\tcase PHONE_NUMBER_FORMATS[8]:\n\t\t\tif(data.length !== 10) {\n\t\t\t\treturn data;\n\t\t\t}\n\n\t\t\tdata = data.slice(0, 3) + PHONENUMBER_DELIMITERS.HYPHEN + data.slice(3, 6) + PHONENUMBER_DELIMITERS.HYPHEN + data.slice(6);\n\t\t\treturn data;\n\n\t\tcase PHONE_NUMBER_FORMATS[9]:\n\t\t\tif(data.length !== 10) {\n\t\t\t\treturn data;\n\t\t\t}\n\n\t\t\tdata = data.slice(0, 3) + PHONENUMBER_DELIMITERS.SPACE + data.slice(3, 6) + PHONENUMBER_DELIMITERS.HYPHEN + data.slice(6);\n\t\t\treturn data;\n\n\t\tcase PHONE_NUMBER_FORMATS[10]:\n\t\t\tif(data.length !== 10) {\n\t\t\t\treturn data;\n\t\t\t}\n\n\t\t\tdata = PHONENUMBER_DELIMITERS.OPEN_BRACKET + data.slice(0, 3) + PHONENUMBER_DELIMITERS.CLOSE_BRACKET + PHONENUMBER_DELIMITERS.SPACE + data.slice(3, 6) + PHONENUMBER_DELIMITERS.HYPHEN + data.slice(6);\n\t\t\treturn data;\n\n\t\tcase PHONE_NUMBER_FORMATS[11]:\n\t\tdefault:\n\t\t\treturn data;\n\t}\n}\n\nexport function autoNumberFormatter(actualData, locale, thousandSeparator, precision, initialValue, stepSize, prefix, suffix) {\n\tlet data = precentPreProcessData(`${actualData}`);\n\tif(data === '') { // 0 may come\n\t\treturn actualData;\n\t}\n\n\tconst options = {};\n\t\n\tsetMaximumFractionDigits(precision, options);\n\tsetGrouping(thousandSeparator, options);\n\n\tdata = initialValue + (data * stepSize);\n\n\tconst formatter = new Intl.NumberFormat(locale, options);\n\treturn formatAutoNumberData(formatter.formatToParts(data), prefix, suffix);\n}\n\nfunction formatAutoNumberData(formatParts, prefix, suffix) {\n\tlet number = '';\n\tlet formatPart;\n\tfor(let i = 0; i < formatParts.length; i++) {\n\t\tformatPart = formatParts[i];\n\t\tswitch(formatPart.type) {\n\t\t\tcase NUMBER_CONSTANTS.GROUP:\n\t\t\t\tnumber += DELIMITERS.COMMA;\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tnumber += formatPart.value;\n\t\t\t\tbreak;\n\t\t}\n\t}\n\treturn prefix + number + suffix;\n}\n\nexport function singleLineTextFormatter(actualData, format) {\n\tconst testString = `${actualData}`;\n\treturn formatTextData(testString, format);\n}\n\nfunction formatTextData(testString, format) {\n\tswitch(format) {\n\t\tcase TEXT_FORMATS.INIT_CAPS:\n\t\t\treturn getInitCapsString(testString);\n\n\t\tcase TEXT_FORMATS.UPPER_CASE:\n\t\t\treturn testString.toUpperCase();\n\n\t\tcase TEXT_FORMATS.LOWER_CASE:\n\t\t\treturn testString.toLowerCase();\n\n\t\tcase TEXT_FORMATS.SENTENCE_CASE:\n\t\t\treturn testString.toLowerCase().replace(SENTENCE_CASE_REGEX, char => \n\t\t\t\tchar.toUpperCase()\n\t\t\t);\n\n\t\tdefault:\n\t\t\treturn testString;\n\t}\n}\n\nfunction getInitCapsString(testString) {\n\tlet initCapsString  = '';\n\tlet transformToCaps = true;\n\n\tlet isAlphabet;\n\tlet character;\n\tfor(let i = 0; i < testString.length; i++) {\n\t\tcharacter  = testString[i];\n\t\tisAlphabet = REGEX.test(character);\n\t\tif(isAlphabet) {\n\t\t\tif(transformToCaps) {\n\t\t\t\ttransformToCaps = false;\n\t\t\t\tcharacter       = character.toUpperCase();\n\t\t\t}else {\n\t\t\t\t\tcharacter = character.toLowerCase();\n\t\t\t}\n\t\t}else {\n\t\t\ttransformToCaps = true;\n\t\t}\n\t\tinitCapsString += character;\n\t}\n\treturn initCapsString;\n}\n\nconst TIME_ZONE_UTC = 'UTC';  // No I18N\n\nexport function decodeToAbsoluteDate(timeStamp) {\n    if(timeStamp === '') {\n        return null;\n    }\n\n    const dateObject = new Date(Number(timeStamp));\n    return {\n        year: dateObject.getUTCFullYear(),\n        monthIndex: dateObject.getUTCMonth(),\n        date: dateObject.getUTCDate(),\n        hours: dateObject.getUTCHours(),\n        minutes: dateObject.getUTCMinutes(),\n        seconds: dateObject.getUTCSeconds(),\n        milliSeconds: dateObject.getUTCMilliseconds()\n    }\n}\n\nexport function getDateStringToBeRendered(absoluteDate, locale, dateFormat) {\n    if(!absoluteDate) {\n        return '';\n    }\n\n    // frame date string\n    const UTCTimeStamp = Date.UTC(absoluteDate.year, absoluteDate.monthIndex, absoluteDate.date);\n    return dateFormatter(UTCTimeStamp, locale, dateFormat, TIME_ZONE_UTC);\n}\n\nexport function getTimeStringToBeRendered(absoluteDate, locale, timeFormat, hourCycle) {\n    if(!absoluteDate) {\n        return '';\n    }\n\n    // frame time string\n    const UTCTimeStamp = Date.UTC(absoluteDate.year, absoluteDate.monthIndex, absoluteDate.date, absoluteDate.hours, absoluteDate.minutes, absoluteDate.seconds, absoluteDate.milliSeconds);\n    return timeFormatter(UTCTimeStamp, locale, timeFormat, hourCycle, TIME_ZONE_UTC);\n}\n","import { SUPPORTED_CURRENCY_VALUES, SUPPORTED_DATE_FORMATS, SUPPORTED_HOUR_CYCLES } from \"../../../../../Constants/AddFieldConstantValues.js\";\nimport { ATTACHMENT, AUTO_NUMBER, AUTO_NUMBER_CLIENT, CHECKBOX, COLLABORATOR_CLIENT, CREATED_BY, CREATED_TIME, CREATED_TIME_CLIENT, CURRENCY, CURRENCY_CLIENT, DATE_TIME, DATE_TIME_CLIENT, EMAIL, FORMULA, KEYWORD_EXTRACTION, LANGUAGE_DETECTOR, MODIFIED_BY, MODIFIED_TIME, MODIFIED_TIME_CLIENT, MULTIPLE_SELECTION, NUMBER, PERCENT, PHONE_NUMBER, PHONE_NUMBER_CLIENT, RATING, ROLLUP, SENTIMENTAL_ANALYSIS, SINGLE_SELECTION, TEXT, URL } from \"../../../../../Constants/FieldTypes.js\";\nimport { CURRENCY as FORMULA_CURRENCY, DATE as FORMULA_DATE, NUMBER as FORMULA_NUMBER, PERCENT as FORMULA_PERCENT, FORMULA_RETURN_TYPE_EMPTY, TEXT as FORMULA_TEXT } from \"../../../../../Constants/FormulaReturnTypes.js\";\nimport { AutonumberFieldType, CurrencyFieldType, DateFieldType, FormulaFieldType, NumberFieldType, PercentFieldType, SentimentAnalysisFieldType, SingleSelectFieldType } from \"../../../../../DataStore/DS/Storage/fieldType/FieldType.js\";\nimport { decodeToAbsoluteDate, getDateStringToBeRendered, getTimeStringToBeRendered } from \"../../../../../DateComponentEncoderDecoder\";\nimport { getLocale } from \"../../../../../Locale.js\";\nimport { multiplyBy100 } from \"../../../../../Utility/DataUtility.js\";\nimport { autoNumberFormatter, numberFormatter, percentFormatter, phoneNumberFormatter } from \"../../../../../Utility/Formatter/FieldTypeFormatters.js\";\nimport { ANONYMOUS_USER } from \"./ChartUI\";\nimport { IChartDataInteracter } from \"./IChartDataInteracter\";\n\nconst THOUSAND_SEPARATOR = 0;\nconst PRECISION          = 0;\nconst TIME_FORMAT        = 'HH:MM:SS';//No I18N\nconst UNCATEGORISED = 'Uncategorised'; //No I18N\n\nconst ZSGrid = globalThis.ZSGrid;\nconst currencyFormatter = ZSGrid.currencyFormatter;\n\nexport function getChartDisplayData(value: any, fieldInstance: any, interacter: IChartDataInteracter) {\n    if(!value) {\n        return UNCATEGORISED\n    }\n\n    const type = fieldInstance.getType();\n    switch(type) {\n        default:\n        case LANGUAGE_DETECTOR: \n        case URL:\n        case EMAIL: \t\n        case TEXT: {\n            return value\n            break\n        }\n\n        case CHECKBOX: {\n            return parseInt(value) ? 'True' : 'False';\n        }\n        \n        case CURRENCY_CLIENT: \n        case CURRENCY: {\n            const numberField = fieldInstance as CurrencyFieldType\n            \n            const locale = numberField.getCurrency();\n\t\t\tconst symbol = SUPPORTED_CURRENCY_VALUES[locale as keyof typeof SUPPORTED_CURRENCY_VALUES];\n\t\t\tconst position = numberField.getCurrencyPosition();\n\t\t\tconst precision = numberField.getPrecision();\n\t\t\tconst thousandSeparator = numberField.getThousandSeparator();\n\t\t\tconst result = currencyFormatter(value, locale, symbol, thousandSeparator, precision, position, false);\n\t\t\treturn result;\n        }\n        \n        case RATING: {\n            return parseInt(value)\n        }\n        \n        case PHONE_NUMBER:\n        case PHONE_NUMBER_CLIENT: {\n            if(fieldInstance.getAllowMultiple()) {\n                const values = value.split(',');\n                const val = values.reduce((acc: string, val: string) => {\n                    const formattedValue = phoneNumberFormatter(val, fieldInstance.getFormat());\n                    return acc ? acc + \",\" + formattedValue : formattedValue;\n                }, \"\")\n                return val;\n            }\n            return phoneNumberFormatter(value, fieldInstance.getFormat());\n        }\n        \n        case NUMBER: {\n            const numberField = fieldInstance as NumberFieldType\n            return numberFormatter(value, getLocale(), numberField.getThousandSeparator(), numberField.getPrecision());\n            break\n        }\n\n        case PERCENT: {\n            const precentField = fieldInstance as PercentFieldType\n            return percentFormatter(multiplyBy100(value), getLocale(), precentField.getThousandSeparator(), precentField.getPrecision(), precentField.getShowSymbol());\n            break\n        }\n        \n        case ATTACHMENT: {\n            const attachmentIDs = value.split('\\n')\n            return attachmentIDs.reduce((acc: string, attachmentID: string) => acc + \",\" + interacter.getAttachmentDS(attachmentID).getFileName())\n            break\n        }\n        \n        case AUTO_NUMBER_CLIENT:\n        case AUTO_NUMBER : {\n            const autoNumber = fieldInstance as AutonumberFieldType\n            return autoNumberFormatter(value, getLocale(), THOUSAND_SEPARATOR, PRECISION, autoNumber.getInitialValue(), autoNumber.getStepSize(), autoNumber.getPrefix(), autoNumber.getSuffix());\n            break\n        }\n\n        case DATE_TIME:\n        case MODIFIED_TIME:\n        case MODIFIED_TIME_CLIENT:\n        case DATE_TIME_CLIENT:\n        case CREATED_TIME:\n        case CREATED_TIME_CLIENT: {\n            const field = fieldInstance as DateFieldType\n            const absoluteDate = decodeToAbsoluteDate(value);\n            const dateFormat: keyof typeof SUPPORTED_DATE_FORMATS = field.getDateFormat(); // or any valid key\n            const timeFormat: keyof typeof SUPPORTED_HOUR_CYCLES = field.getTimeFormat(); // or any valid key\n            const formattedDate = (!absoluteDate) ? '' : getDateStringToBeRendered(absoluteDate, getLocale(), SUPPORTED_DATE_FORMATS[dateFormat]);\n            let displayData = formattedDate;\n\n            if(timeFormat) {\n                // formattedTime    =  timeFormatter(data, getLocale(), ADD_FIELD_TIME_FORMAT, SUPPORTED_HOUR_CYCLES[timeFormat], timeZone);\n                // rawDataArray[i] += ` ${formattedTime}`;\n\n                const formattedTime = (!absoluteDate) ? '' : getTimeStringToBeRendered(absoluteDate, getLocale(), TIME_FORMAT, SUPPORTED_HOUR_CYCLES[timeFormat]);\n                displayData += ` ${formattedTime}`;\n            }\n\n            return displayData\n            break\n        }\n\n        case SINGLE_SELECTION: {\n            const singleSelect = fieldInstance as SingleSelectFieldType\n            const multiSelectDS = interacter.getMultiSelectDS(singleSelect.getID())\n            return multiSelectDS.getName(value)\n            break\n        }\n\n        case MULTIPLE_SELECTION: {\n            const multiSelectDS = interacter.getMultiSelectDS(fieldInstance.getID())\n            return value.split(',').map((val: string) => multiSelectDS.getName(val)).join(',')\n            break\n        }\n\n        case COLLABORATOR_CLIENT: \n        case CREATED_BY:\n        case MODIFIED_BY: {\n            const collaboratorDS = interacter.getCollaboratorDS();\n            const userIDs        = value.split(\",\");\n            \n            const name = userIDs.reduce((acc: string, userID: string) => {\n                let userName = '';\n                if (collaboratorDS.isActiveUser(userID)) {\n                    userName = collaboratorDS.getActiveUserName(userID);\n                }\n                else if (collaboratorDS.isInactiveUser(userID)) {\n                    userName = collaboratorDS.getInactiveUserName(userID);\n                }\n                else if(collaboratorDS.isAnonymousUser(userID)) {\n                    userName = ANONYMOUS_USER;\n                }\n                else if(collaboratorDS.isSystemUser(userID)) {\n                    userName = collaboratorDS.getSystemUserName(userID);\n                }\n                else {\n                    userName = collaboratorDS.getRemovedUserName(userID);\n                }\n                return acc ? acc + \",\" + userName : userName;\n            }, \"\")\n            return name;\n        }\n\n        case SENTIMENTAL_ANALYSIS: {\n            const sentimentalField = fieldInstance as SentimentAnalysisFieldType\n            const sentimentDS = interacter.getSentimentDS(sentimentalField.getSentimentID())\n            return sentimentDS.getSentimentsMeta(value).sentimentValue\n            break\n        }\n\n        case ROLLUP: \n        case KEYWORD_EXTRACTION: {\n            return value\n            break\n        }\n\n        case FORMULA: {\n            const formulaField = fieldInstance as FormulaFieldType;\n            const formatArray = formulaField.getFormatArray()[0];\n            const returnType = formatArray[0];\n            const formats = formatArray[1];\n\n            switch (returnType) {\n                case FORMULA_NUMBER: {\n                    const locale = formats[0];\n                    const thousandSeparator = formats[1];\n                    const precision = formats[2];\n                    const result = numberFormatter(value, locale, thousandSeparator, precision);\n                    return result;\n                }\n                \n\n                case FORMULA_DATE: {\n                    const absoluteDate = decodeToAbsoluteDate(value);\n                    const dateFormat: keyof typeof SUPPORTED_DATE_FORMATS = formats[0]; // or any valid key\n                    const timeFormat: keyof typeof SUPPORTED_HOUR_CYCLES = formats[1]; // or any valid key\n                    const formattedDate = (!absoluteDate) ? '' : getDateStringToBeRendered(absoluteDate, getLocale(), SUPPORTED_DATE_FORMATS[dateFormat]);\n                    let displayData = formattedDate;\n\n                    if(timeFormat) {\n                        // formattedTime    =  timeFormatter(data, getLocale(), ADD_FIELD_TIME_FORMAT, SUPPORTED_HOUR_CYCLES[timeFormat], timeZone);\n                        // rawDataArray[i] += ` ${formattedTime}`;\n\n                        const formattedTime = (!absoluteDate) ? '' : getTimeStringToBeRendered(absoluteDate, getLocale(), TIME_FORMAT, SUPPORTED_HOUR_CYCLES[timeFormat]);\n                        displayData += ` ${formattedTime}`;\n                    }\n\n                    return displayData\n                }\n                    \n\n                case FORMULA_CURRENCY: {\n                    const locale = formats[0];\n                    const symbol = formats[1];\n                    const position = formats[2];\n                    const precision = formats[3];\n                    const thousandSeparator = formats[4];\n                    const result = currencyFormatter(value, locale, symbol, thousandSeparator, precision, position, false);\n                    return result;\n                }\n                \n                case FORMULA_PERCENT: {\n                    const locale = formats[0];\n                    const precision = formats[1];\n                    const showSymbol = formats[2];\n                    const thousandSeparator = formats[3];\n                    const result = percentFormatter(multiplyBy100(value), locale, thousandSeparator, precision, showSymbol);\n                    return result;\n                }\n\n                case FORMULA_RETURN_TYPE_EMPTY:\n                case FORMULA_TEXT: {\n                    return value;\n                }\n\n                default: {\n                    return value;\n                }\n            }\n        }\n                \n    }\n}","\nimport { COLLABORATOR_CLIENT, CREATED_BY, MODIFIED_BY, SINGLE_SELECTION } from \"../../../../../Constants/FieldTypes.js\";\nimport { Field } from \"../../../../../DataStore/DS/Storage/DSField\";\nimport { IAppendOnlyHtml } from \"../../../../../Dom/Middle/AddFieldPanel/_auxillaries/IAppendOnlyHtml\";\nimport { getTemplate } from \"../../../../../TemplatesForAll.js\";\nimport { getMessage, isNotNullOrUndefined } from \"../../../../Utility/utility\";\nimport { Alignment, CHART_AXIS_STYLE, CHART_FONT_FAMILY, CHART_TITLE_STYLE, ChartColor, ChartLegendPosition, ChartType, ChartTypes } from \"./ChartConstants\";\nimport { getChartDisplayData } from \"./ChartDataConvertor\";\nimport { IChartRenderPropertiesDataProvider } from \"./ChartType\";\nimport { IChartDataInteracter } from \"./IChartDataInteracter\";\n\nconst FRAMEWORK = \"Highcharts\"\nconst UNCATEGORISED = 'Uncategorised'; //No I18N\nexport const ANONYMOUS_USER = \"Anonymous User\";  //NO I18N\n\nlet id = 0;\nfunction getChartID() {\n\treturn \"chart\" + id++\n}\n\nconst CHART_RECORD_LIMIT = 100;\nconst PIE_CHART_RECORD_LIMIT = 50;\n\nfunction getDefaultState(chartType: ChartType) {\n\tswitch(chartType) {\n\t\tcase ChartType.BAR: {\n\t\t\tconst template = getTemplate(\"horBarChartDefaultState\") as HTMLTemplateElement\n\t\t\treturn template.querySelector(\".ZS-chart-defaultstate\") as HTMLDivElement\n\t\t}\n\t\tcase ChartType.LINE: {\n\t\t\tconst template = getTemplate(\"lineChartDefaultState\") as HTMLTemplateElement\n\t\t\treturn template.querySelector(\".ZS-chart-defaultstate\") as HTMLDivElement\n\t\t}\n\t\tcase ChartType.PIE: {\n\t\t\tconst template = getTemplate(\"pieChartDefaultState\") as HTMLTemplateElement\n\t\t\treturn template.querySelector(\".ZS-chart-defaultstate\") as HTMLDivElement\n\t\t}\n\t\tcase ChartType.COLUMN: {\n\t\t\tconst template = getTemplate(\"verBarChartDefaultState\") as HTMLTemplateElement\n\t\t\treturn template.querySelector(\".ZS-chart-defaultstate\") as HTMLDivElement\n\t\t}\n\t\tdefault:\n\t\t\tthrow new Error(\"Invalid chart type\")\n\t}\n}\n\ninterface IChart {\n\tupdateChartSize(width: number, height: number, disableAnimation: boolean): void\n\trender(options: {disableAnimation: boolean}): void\n\tupdateInvertedStatus(status: boolean): void\n\tupdateLegendStatus(status: boolean): void\n\tupdateLegendPosition(position: string): void\n\treRenderOnDMChange(dataMeta: any): void\n\tupdateTitle(title: string): void\n\tupdateXaxisTitle(title: string, index: number): void\n\tupdateYaxisTitle(title: string, index: number): void\n\tgetDataMeta(): any\n\tchangeChartType(chartMeta: any, dataMeta: any, framework: string, chartType: string): void\n\tupdateColorTheme(colors: string[]): void\n}\n\nexport class ChartUI{\n\tprivate dom: HTMLElement\n\tprivate recordLimitErrorPopUp: HTMLDivElement;\n\tprivate chartInstance: IChart | null\n\tprivate defaultState: HTMLDivElement | null\n\tprivate defaultTitle: HTMLDivElement | null\n\tprivate interacter: IChartDataInteracter\n\tprivate props: IChartRenderPropertiesDataProvider\n\t\n\tconstructor(props: IChartRenderPropertiesDataProvider, interacter: IChartDataInteracter) {\n\t\tthis.props  = props\n\n\t\tconst template = getTemplate(\"ChartColumnLimitErrorPopupTemplate\") as HTMLTemplateElement;\n\t\tthis.recordLimitErrorPopUp = template.querySelector(\"#errorPopup\") as HTMLDivElement;\n\n\t\tthis.dom    = document.createElement(\"div\");\n\t\tthis.dom.id = getChartID();\n\t\tthis.dom.classList.add(\"ZDC-full\", \"ZDC-chart\");\n\n\t\tthis.interacter   = interacter\n\t\tthis.defaultState = null\n\t\tthis.defaultTitle = null\n\t\tthis.chartInstance = null\n\n\t\tthis.initialize()\n\t\tthis.addEventListeners();\n\n\t}\n\n\tprivate addEventListeners() {\n\t\tconst closeBtn = this.recordLimitErrorPopUp.querySelector(\"#closeBtn\") as HTMLButtonElement;\n\t\tcloseBtn?.addEventListener(\"click\", () => {\n\t\t\tthis.hideRecordLimitErrorPopup();\n\t\t})\n\t}\n\n\tprivate getChartData(): string[][] {\n\t\tconst chartData = this.props.getData() ?? [[]];\n\t\treturn chartData;\n\t}\n\n\tprivate doesChartLimitExceeded(data: string[][], limit: number): boolean {\n\t\tconst rowCount = data.length - 1;\n\t\tconst columnCount = data[1] ? data[1].length -1 : 0; // header is also added in the data hence -1\n\t\tconst recordCount = rowCount * columnCount;\n\t\tif(recordCount > limit) {\n\t\t\treturn true;\n\t\t} else {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\tprivate handleErrorMessageOnChartTypeChange() {\n\n\t\tconst errorMessageElement = this.recordLimitErrorPopUp.querySelector(\"#errorMessage\") as HTMLDivElement;\n\t\tif(!errorMessageElement) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst message = getMessage(\"UI.Table.Snap.Builder.Chart.RecordLimit.ErrorMessage\");\n\t\tconst limit = this.getRecordLimit();\n\n\t\tconst errorMessage = message.replace(\"{{LIMIT}}\", limit.toString());\n\t\terrorMessageElement.textContent = errorMessage;\n\t}\n\n\tprivate getRecordLimit(): number {\n\t\tif(this.isPieChart()) {\n\t\t\treturn PIE_CHART_RECORD_LIMIT;\n\t\t} \n\n\t\treturn CHART_RECORD_LIMIT;\n\t}\n\n\tprivate getChartDataWithLimitCheck(): string[][] { // todo: move this code to view manager\n\t\tconst chartData = this.getChartData();\n\n\t\tconst limit = this.getRecordLimit();\n\t\tconst limitExceed = this.doesChartLimitExceeded(chartData, limit);\n\n\t\tif(this.canRecordLimitErrorArea()) {\n\t\t\tif(limitExceed) {\n\t\t\t\tthis.handleErrorMessageOnChartTypeChange();\n\t\t\t\tthis.showRecordLimitErrorPopup();\n\t\t\t} else {\n\t\t\t\tthis.hideRecordLimitErrorPopup();\n\t\t\t}\n\t\t}\n\n\t\tif(limitExceed) {\n\t\t\tconst data = this.getLimitedRecordChartData(chartData, limit);\n\t\t\treturn data;\n\t\t}\n\n\t\treturn chartData;\n\t}\n\n\tprivate canRecordLimitErrorArea() {\n\t\treturn this.interacter.canShowRecordLimitErrorMessage();\n\t}\n\n\tprivate getLimitedRecordChartData(chartData: string[][], limit: number): string[][] {\n\t\tif(this.isChartDataEmptyOrHeaderOnly(chartData)) {\n\t\t\treturn [[]];\n\t\t} \n\n\t\tconst header = chartData[0];\n        const dataRows = chartData.slice(1);\n        const columnCount = header.length;\n\t\t\n\t\tif(columnCount >= limit) {\n\t\t\tconst limitedHeader = header.slice(0, limit-1); // limit has reduced 1 because first column is origin\n\t\t\tconst limitedRows = dataRows[0].slice(0, limit);\n\t\t\tconst reducedData = [limitedHeader, limitedRows];\n\t\t\treturn reducedData;\n\t\t}\n    \n        if (columnCount === 0) {\n            return chartData;\n        }\n    \n        const maxRows = Math.floor(limit / columnCount);\n        if (dataRows.length <= maxRows) {\n            return chartData; \n        }\n    \n\t\tconst limitedRows = dataRows.slice(0, maxRows);\n        const reducedData = [header, ...limitedRows];\n        return reducedData;\n\t}\n\n\tprivate showRecordLimitErrorPopup() {\n\t\tthis.recordLimitErrorPopUp.classList.add(\"zdc-display-error\");\n\t}\n\n\tprivate hideRecordLimitErrorPopup() {\n\t\tthis.recordLimitErrorPopUp.classList.remove(\"zdc-display-error\");\n\t}\n\n\tprivate isChartDataEmptyOrHeaderOnly(chartData: string[][]): boolean {\n\t\tif(!chartData || chartData.length <= 1) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tinitialize() {\n\t\tconst chartData = this.getChartDataWithLimitCheck();\n\t\t\n\t\tif(this.isChartDataEmptyOrHeaderOnly(chartData)) {\n\t\t\tthis.handleNoDataState();\n\t\t\treturn;\n\t\t}\n\n\t\tthis.buildChartInstance();\n\t}\n\n\tprivate buildChartInstance() {\n\t\tconst chartMeta  = this.generateChartMeta(this.props)\n\t\tconst dataMeta   = this.generateDataMeta()\n\t\t\n\t\tthis.chartInstance = new ((globalThis as any).KnitCharts as any).ChartBuilder()\n\t\t\t.setChartMeta(chartMeta)\n\t\t\t.setDataMeta(dataMeta)\n\t\t\t.setFramework(FRAMEWORK)\n\t\t\t.build();\n\t}\n\n\tappendTo(parent: IAppendOnlyHtml) {\n\t\tparent.append(this.dom);\n\t\tparent.append(this.recordLimitErrorPopUp);\n\t\tthis.reRenderWithAnimation()\n\t}\n\n\treRenderWithAnimation() {\n\t\tif(this.chartInstance) {\n\t\t\tthis.chartInstance.updateChartSize(this.dom.offsetWidth, this.dom.offsetHeight, true);\n\t\t}\n\n\t\tif(!this.canRecordLimitErrorArea()) {\n\t\t\tthis.hideRecordLimitErrorPopup();\n\t\t}\n\t}\n\n\treRender() {\n\t\tif(this.chartInstance) {\n\t\t\tthis.chartInstance.updateChartSize(this.dom.offsetWidth, this.dom.offsetHeight, true);\n\t\t}\n\n\t\tif(!this.canRecordLimitErrorArea()) {\n\t\t\tthis.hideRecordLimitErrorPopup();\n\t\t}\n\t}\n\n\tonLegendPositionChange(legendPosition: Alignment) {\n\t\t// this.props.legendPosition = legendPosition\n\t\tif(this.chartInstance) {\n\t\t\tthis.chartInstance.updateLegendStatus(true)\n\t\t\tthis.chartInstance.updateLegendPosition(ChartLegendPosition[legendPosition])\n\t\t\tthis.chartInstance.render({disableAnimation: true})\n\t\t}\n\t}\n\n\tonFieldsToPlotChange() {\n\t\t// this.props.fieldsToPlot = fieldsToPlot\n\t\tconst data = this.getChartDataWithLimitCheck();\n\t\tif(!this.isChartDataEmptyOrHeaderOnly(data)) {\n\t\t\tthis.buildChartInstance()\n\t\t}\n\t}\n\n\tonTitleChange(title: string) {\n\t\t!title ? this.dom.classList.add(\"ZS-title-placeholder\") : this.dom.classList.remove(\"ZS-title-placeholder\");\n\t\t// this.props.title = title;\n\t\tconst chartTitle = this.props.getTitle() || getMessage(\"UI.tables.common.title\");\n\t\tthis.defaultTitle && (this.defaultTitle.textContent = chartTitle)\n\t\tthis.chartInstance && this.chartInstance.updateTitle(chartTitle)\n\t}\n\n\tonXAxisLabelChange(xAxisLabel: string) {\n\t\t// this.props.xAxisLabel = xAxisLabel\n\t\tif(this.isPieChart() || !this.chartInstance) {\n\t\t\treturn;\n\t\t}\n\t\t\n\t\tthis.chartInstance.updateXaxisTitle(xAxisLabel, 0)\n\t}\n\n\tonYAxisLabelChange(yAxisLabel: string) {\n\t\t// this.props.yAxisLabel = yAxisLabel\n\n\t\tif(this.isPieChart() || !this.chartInstance) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.chartInstance.updateYaxisTitle(yAxisLabel, 0)\n\t}\n\n\tonDataChange(data: string[][]) {\n\n\t\tif(this.isChartDataEmptyOrHeaderOnly(data)) {\n\t\t\tthis.handleNoDataState();\n\t\t}\n\n\t\telse if(this.defaultState && !this.chartInstance) {\n\t\t\tthis.defaultState.remove()\n\t\t\tthis.defaultState = null\n\t\t\tthis.buildChartInstance()\n\t\t}\n\n\t\telse if(!this.isChartDataEmptyOrHeaderOnly(data) && this.chartInstance) {\n\t\t\tthis.updateDataChange();\n\t\t}\n\t}\n\t\n\tprivate updateDataChange() {\n\t\tif(!this.chartInstance) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst dataMeta = this.generateDataMeta()\n\t\tthis.chartInstance.reRenderOnDMChange(dataMeta)\n\t}\n\n\tprivate handleNoDataState() {\n\t\t\tthis.updateDataChange();\n\n\t\t\tthis.dom.innerHTML = \"\"\n\t\t\tthis.chartInstance = null\n\n\t\t\tthis.defaultState  = getDefaultState(this.props.getChartType() as ChartType)\n\t\t\tthis.defaultTitle  = this.defaultState.querySelector(\".ZDC-title\") as HTMLDivElement\n\t\t\tthis.onTitleChange(this.props.getTitle())\n\t\t\t\n\t\t\tthis.dom.appendChild(this.defaultState)\n\t}\n\n\tonChartTypeChange(chartType: ChartType) {\n\t\tconst chartData = this.getChartDataWithLimitCheck();\n\t\tif(this.chartInstance && !this.isChartDataEmptyOrHeaderOnly(chartData)) {\n\t\t\tconst chartType  = this.props.getChartType() as ChartType\n\t\t\t\n\t\t\tconst dataMeta  = this.generateDataMeta()\n\t\t\tconst chartMeta = this.generateChartMeta(this.props);\n\t\n\t\t\tthis.chartInstance.changeChartType(chartMeta, dataMeta, FRAMEWORK, ChartTypes[chartType])\n\t\t\tthis.chartInstance?.render({disableAnimation: false})\n\t\t}\n\t\telse if(this.isChartDataEmptyOrHeaderOnly(chartData)) {\n\t\t\tthis.handleNoDataState();\n\t\t}\n\t\telse {\n\t\t\tthis.defaultState?.remove()\n\t\t\tthis.defaultState = null\n\t\t\tthis.buildChartInstance()\n\t\t\tthis.chartInstance?.render({disableAnimation: false})\n\t\t}\n\n\t\tthis.handleErrorMessageOnChartTypeChange();\n\t}\n\n\tonGroupByFieldChange() {\n\t\t// this.props.groupByField = groupByField\n\t\tconst data = this.getChartDataWithLimitCheck();\n\t\tif(!this.isChartDataEmptyOrHeaderOnly(data)) {\n\t\t\tthis.buildChartInstance()\n\t\t}\n\t\t// this.chartInstance && this.chartInstance.reRenderOnDMChange(this.generateDataMeta())\n\t}\n\n\tonColorChange(color: number) {\n\t\t// this.props.colorTheme = color\n\t\tthis.chartInstance?.updateColorTheme(ChartColor[color as keyof typeof ChartColor].colors)\n\t}\n\n\tprivate deepCloneArray = (arr: any[][]): any[][] => {\n\t\t\treturn arr.map(row => [...row]);\n\t};\n\n\tprivate generateDataMeta() {\n\t\t\n\t\tlet data = this.deepCloneArray(this.getChartDataWithLimitCheck());\n\t\tconst headers = data[0] || [];\n\t\tdata.splice(0, 1); \n\n\t\tconst values = headers.map((ids) => {\n\t\t\tconst fieldID = ids[0];\n\t\t\tif(fieldID) {\n\t\t\t\tconst field = this.props.getField(fieldID) as Field;\n\t\t\t\tif(!field) {\n\t\t\t\t\treturn \"\";\n\t\t\t\t}\n\n\t\t\t\tif(ids.length > 1) {\n\t\t\t\t\tconst valueId = ids[1];\n\t\t\t\t\tif(field && valueId !== undefined && valueId !== null) {\n\n\t\t\t\t\t\tif(valueId === \"\") {\n\t\t\t\t\t\t\treturn UNCATEGORISED;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst type = field.getType()?.getType();\n\t\t\t\t\t\tif(type === SINGLE_SELECTION) {\n\t\t\t\t\t\t\tconst selectionID = field.getType().getID();\n\t\t\t\t\t\t\tif(selectionID) {\n\t\t\t\t\t\t\t\tconst multiSelectDS = this.interacter.getMultiSelectDS(selectionID);\n\t\t\t\t\t\t\t\tif(multiSelectDS) {\n\t\t\t\t\t\t\t\t\treturn multiSelectDS.getName(valueId);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else if (type === COLLABORATOR_CLIENT || type === CREATED_BY || type === MODIFIED_BY ) {\n\t\t\t\t\t\t\tconst collabratorDS = this.interacter.getCollaboratorDS();\n\t\t\t\t\t\t\tif(collabratorDS) {\n\t\t\t\t\t\t\t\tif(collabratorDS.isActiveUser(valueId)) {\n\t\t\t\t\t\t\t\t\treturn collabratorDS.getActiveUserName(valueId);\n\t\t\t\t\t\t\t\t} else if(collabratorDS.isSystemUser(valueId)) {\n\t\t\t\t\t\t\t\t\treturn collabratorDS.getSystemUserName(valueId);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse if(collabratorDS.isRemovedUser(valueId)) {\n\t\t\t\t\t\t\t\t\treturn collabratorDS.getRemovedUserName(valueId);\n\t\t\t\t\t\t\t\t} else if (collabratorDS.isAnonymousUser(valueId)) {\n\t\t\t\t\t\t\t\t\treturn ANONYMOUS_USER;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn field.getName();\n\t\t\t}\n\t\t});\n\n\t\tdata.unshift([\"orgin\", \n\t\t\t...values\n\t\t]);\t\n\n\t\tconst colTypes: {[x: number]: {type: string}}   = {};\n\t\tconst groupByField = this.props.getGroupByField();\n\t\tif(!groupByField && data[0].length > 1) {\n\t\t\tdata = data.map((row) => {\n\t\t\t\trow.shift()\n\t\t\t\treturn row\n\t\t\t})\n\n\t\t\tdata[0].forEach((_, i) => {\n\t\t\t\tcolTypes[i] = {\n\t\t\t\t\ttype: \"number\"\n\t\t\t\t}\n\t\t\t})\n\t\t\t\n\t\t\treturn {\n\t\t\t\tdata,\n\t\t\t\tparse: \"vertical\",  // No I18N\n\t\t\t\theaderRows : {\n\t\t\t\t\thasHeader : true,\n\t\t\t\t\theaders : {\n\t\t\t\t\t\t0 : {\n\t\t\t\t\t\t\ttype : \"string\"\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tcolTypes\n\t\t\t};\n\t\t}\n\n\t\telse if(groupByField) {\n\t\t\tif(data[0] && data[0].length > 0) {\n\t\t\t\tfor(let i = 0; i < data[0].length; i++) {\n\t\t\t\t\tcolTypes[i] = {\n\t\t\t\t\t\ttype: i === 0 ? \"string\" : \"number\"\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tfor(let i = 1; i < data.length; i++) {\n\t\t\t\tconst value = data[i][0]\n\t\t\t\ttry {\n\t\t\t\t\tdata[i][0] = getChartDisplayData(value, groupByField?.getType(), this.interacter)\n\t\t\t\t}\n\t\t\t\tcatch (error) {}\n\t\t\t}\n\t\t\t\n\t\t\treturn {\n\t\t\t\tdata,\n\t\t\t\tparse: \"vertical\",  // No I18N\n\t\t\t\theaderColumns : {\n\t\t\t\t\thasHeader : true,\n\t\t\t\t\theaders : {\n\t\t\t\t\t\t0 : {\n\t\t\t\t\t\t\ttype : \"string\"\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\theaderRows : {\n\t\t\t\t\thasHeader : true,\n\t\t\t\t\theaders : {\n\t\t\t\t\t\t0 : {\n\t\t\t\t\t\t\ttype : \"string\"\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tcolTypes\n\t\t\t};\n\t\t}\n\t}\n\n\tprivate isPieChart() {\n\t\treturn this.props.getChartType() === ChartType.PIE;\n\t}\n\n\tprivate generateChartMeta(props: IChartRenderPropertiesDataProvider) {\n\t\tconst {width, height} = this.dom.getBoundingClientRect()\n\n\t\t// const direction      = props.direction;\n\t\t\n\t\tconst title            = props.getTitle();\n\t\tconst xAxisLabel     = props.getXAxisLabel() ?? \"\";\n\t\tconst yAxisLabel     = props.getYAxisLabel() ?? \"\";\n\t\tconst type \t\t  \t = props.getChartType() as ChartType;\n\t\tconst chartType      = type !== null ? type : ChartType.COLUMN;\n\n\t\tlet text = null;\n\t\tif(!title || title === \"\") {\n\t\t\ttext = getMessage(\"UI.tables.common.title\");\n\t\t\tthis.dom.classList.add(\"ZS-title-placeholder\");\n\t\t} else {\n\t\t\ttext = title;\n\t\t\tthis.dom.classList.remove(\"ZS-title-placeholder\");\n\t\t}\n\t\t\n\t\tconst chartMeta: any = {\n\t\t\ttitle: {\n\t\t\t\tenabled: true,\n\t\t\t\ttext: text,\n\t\t\t\tfontSize: CHART_TITLE_STYLE.fontSize,\n\t\t\t\tfontWeight: CHART_TITLE_STYLE.fontWeight,\n\t\t\t\tfontStyle: CHART_TITLE_STYLE.fontStyle,\n\t\t\t\thAlign: CHART_TITLE_STYLE.hAlign,\n\t\t\t\tfontColor: CHART_TITLE_STYLE.fontColor,\n\t\t\t},\n\n\t\t\tchart: {\n\t\t\t\trenderId: this.dom,\n\t\t\t\ttype: ChartTypes[chartType],\n\t\t\t\twidth,\n\t\t\t\theight,\n\t\t\t\tborderColor: \"#eeeeee\",         // No I18N\n\t\t\t\tbgColor: \"#ffffff\",             // No I18N\n\t\t\t\t// inverted: isNotNullOrUndefined(direction) ? ChartDirection[direction] : false,\n\t\t\t\tfontFamily: CHART_FONT_FAMILY, // No I18N\n\t\t\t\tcolors: ChartColor[props.getColorTheme() as keyof typeof ChartColor].colors\n\t\t\t}\n\t\t};\n\n\t\tconst lableFontSize = \"12px\";\n\t\tif(!this.isPieChart()) {\n\t\t\tconst axisTitle = {\n\t\t\t\tenabled : true,\n\t\t\t\ttext : xAxisLabel,\n\t\t\t\tfontSize: lableFontSize,\n\t\t\t\tfontStyle: CHART_AXIS_STYLE.fontStyle,\n\t\t\t\tfontWeight: CHART_AXIS_STYLE.fontWeight,\n\t\t\t\tfontColor: CHART_AXIS_STYLE.fontColor\n\t\t\t}\n\n\t\t\tconst isXAxisLabelEmpty = this.props.getGroupByField() ? true : false;\n\t\t\t// auto rotation of x-axis labels is enbaled by default\n\t\t\tconst xAxisConfig = {\n\t\t\t\ttitle: axisTitle,\n\t\t\t\tlabels: {\n\t\t\t\t\tenabled: isXAxisLabelEmpty,\n\t\t\t\t\tfontSize: lableFontSize\n\t\t\t\t}\n\n\t\t\t}\n\t\t\t\n\t\t\tchartMeta.xaxis = [\n\t\t\t\txAxisConfig\n\t\t\t]\n\t\t\tchartMeta.yaxis = [\n\t\t\t\t{\n\t\t\t\t\ttitle : {\n\t\t\t\t\t\t...axisTitle,\n\t\t\t\t\t\ttext: yAxisLabel\n\t\t\t\t\t},\n\t\t\t\t\tlabels: {\n\t\t\t\t\t\ttextOverflow: \"ellipsis\",\n\t\t\t\t\t\tfontSize: lableFontSize\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t]\n\t\t}\n\t\t// else {\n\t\t// \tchartMeta.seriesProperties = [\n\t\t// \t\t{\n\t\t// \t\t\tdatalabels : {\n\t\t// \t\t\t\tstatus : 'off'\n\t\t// \t\t\t},\n\t\t// \t\t},\n\t\t// \t\t{\n\t\t// \t\t\tdatalabels : {\n\t\t// \t\t\t\tstatus : 'off'\n\t\t// \t\t\t}\n\t\t// \t\t}\n\t\t// \t]\n\t\t// }\n\n\t\tconst legendPosition = props.getLegendPosition()\n\t\tif(isNotNullOrUndefined(legendPosition)) {\n\t\t\tchartMeta.legend = {\n\t\t\t\tstatus: \"on\",\n\t\t\t\tposition: ChartLegendPosition[legendPosition],\n\t\t\t\tfontSize: lableFontSize\n\t\t\t}\n\t\t}\n\n\t\treturn chartMeta\n\t}\n}\n","import { IAppendOnlyHtml } from \"../../../../../Dom/Middle/AddFieldPanel/_auxillaries/IAppendOnlyHtml\";\nimport { FieldID } from \"../../../../../Types\";\nimport { isNotNullOrUndefined, isNotUndefined } from \"../../../../Utility/utility\";\nimport { IComponentViewManager } from \"../IComponentViewManager\";\nimport { Alignment, ChartType } from \"./ChartConstants\";\nimport { IChartRenderPropertiesDataProvider } from \"./ChartType\";\nimport { ChartUI } from \"./ChartUI\";\nimport { IChartDataInteracter } from \"./IChartDataInteracter\";\n\nexport class ChartViewManager implements IComponentViewManager<IChartRenderPropertiesDataProvider> {\n\n\tprotected chartUI?: ChartUI;\n\tprotected interacter: IChartDataInteracter;\n\t\n\tconstructor(interacter: IChartDataInteracter) {\n\t\tthis.interacter = interacter;\n\t}\n\n\tasync appendViewTo(parent: IAppendOnlyHtml, dataProvider: IChartRenderPropertiesDataProvider ) {\n\t\tif(!this.chartUI) {\n\t\t\tthis.chartUI = new ChartUI(dataProvider, this.interacter);\n\t\t}\n\t\tthis.chartUI.appendTo(parent);\n\t}\n\n\tupdate(dataProvider: IChartRenderPropertiesDataProvider): void {\n\n\t\tconst chartType = dataProvider.getChartType();\n\t\tif(isNotNullOrUndefined(chartType)) {\n\t\t\tthis.onChartTypeChange();\n\t\t}\n\n\t\telse {\n\t\t\tconst legendPosition = dataProvider.getLegendPosition(); \n\t\t\tisNotNullOrUndefined<Alignment>(legendPosition) && this.onLegendPositionChange(legendPosition);\n\n\t\t\tconst title = dataProvider.getTitle();\n\t\t\tisNotNullOrUndefined<string>(title) && this.onTitleChange(title);\n\n\t\t\tconst colorTheme = dataProvider.getColorTheme();\n\t\t\tisNotNullOrUndefined<number>(colorTheme) && this.onColorThemeChange(colorTheme);\n\t\t\t\t\n\t\t\tconst xaxisLabel = dataProvider.getXAxisLabel();\n\t\t\tisNotNullOrUndefined<string>(xaxisLabel) && this.onXAxisLabelChange(xaxisLabel);\n\n\t\t\tconst yaxisLabel = dataProvider.getYAxisLabel();\n\t\t\tisNotNullOrUndefined<string>(yaxisLabel) &&  this.onYAxisLabelChange(yaxisLabel);\n\t\t\t\n\t\t\tconst groupByField = dataProvider.getGroupByField();\n\t\t\tisNotUndefined<FieldID>(groupByField) && this.onGroupByFieldChange();\n\n\t\t\tconst data = dataProvider.getData();\n\t\t\tisNotNullOrUndefined<string[][]>(data) && this.onDataChange(data);\n\t\t}\t\n\t}\n\n\tprotected onFieldsToPlotChange() {\n\t\tthis.chartUI?.onFieldsToPlotChange();\n\t}\n\n\tprotected onLegendPositionChange(legendPosition: Alignment) {\n\t\tthis.chartUI?.onLegendPositionChange(legendPosition)\n\t}\n\n\tprotected onTitleChange(title: string) {\n\t\tthis.chartUI?.onTitleChange(title)\n\t}\n\n\tprotected onXAxisLabelChange(xAxisLabel: string) {\n\t\tthis.chartUI?.onXAxisLabelChange(xAxisLabel)\n\t}\n\n\tprotected onYAxisLabelChange(yAxisLabel: string) {\n\t\tthis.chartUI?.onYAxisLabelChange(yAxisLabel)\n\t}\n\n\tprotected onDataChange(data: string[][]) {\n\t\tthis.chartUI?.onDataChange(data)\n\t}\n\n\tprotected onChartTypeChange(chartType: ChartType) {\n\t\tthis.chartUI?.onChartTypeChange(chartType);\n\t}\n\n\tprotected onGroupByFieldChange() {\n\t\tthis.chartUI?.onGroupByFieldChange();\n\t}\n\n\tprotected onColorThemeChange(colorTheme: number) {\n\t\tthis.chartUI?.onColorChange(colorTheme);\n\t}\n\n\trerenderView() {\n\t\tthis.chartUI?.reRender();\n\t}\n\n\tremove() {\n\t}\n}","import { StaticFilesLoader } from \"../../../../Utility/StaticFilesLoader\";\nimport { getSnapCDNStaticURL } from \"../../../../Utility/utility\";\nimport { CardPropertiesType } from \"../../LayoutBuilder/LayoutBuilderTypes\";\nimport { CHART_PROPERTY } from \"../ComponentPropertyConstants\";\nimport { IComponentViewProvider } from \"../IComponentViewProvider\";\nimport { ChartRenderProps } from \"./ChartType\";\nimport { ChartViewManager } from \"./ChartViewManager\";\nimport { IChartDataInteracter } from \"./IChartDataInteracter\";\n\nexport class ChartViewProvider implements IComponentViewProvider<ChartRenderProps> {\n\n\tprivate static STATIC_FILES_LOADER = new StaticFilesLoader({\n\t\tCSS: [\n\t\t\tgetSnapCDNStaticURL(\"charts/charts.css\")\n\t\t],\n\t\tJS: [\n\t\t\tgetSnapCDNStaticURL(\"charts/charts.js\"),\n\t\t\tgetSnapCDNStaticURL(\"charts/vendors.js\"),\n\t\t\tgetSnapCDNStaticURL(\"charts/highcharts/highstock.src.js\"),\n\t\t\tgetSnapCDNStaticURL(\"charts/highcharts/funnel.src.js\"),\n\t\t\tgetSnapCDNStaticURL(\"charts/highcharts/highcharts-more.src.js\"),\n\t\t\tgetSnapCDNStaticURL(\"charts/highcharts/wordcloud.src.js\")\n\t\t]\n\t})\n\n\tgetComponent(interacter: IChartDataInteracter) {\n\t\treturn new ChartViewManager(interacter);\n\t}\n\n\tgetComponentProperties(): CardPropertiesType {\n\t\treturn {\n\t\t\tminHeightPartition: CHART_PROPERTY.MIN_HEIGHT,\n\t\t\tmaxHeightPartition: CHART_PROPERTY.MAX_HEIGHT,\n\t\t\tminWidthPartition: CHART_PROPERTY.MIN_WIDTH,\n\t\t\tmaxWidthPartition: CHART_PROPERTY.MAX_WIDTH,\n\t\t\tenableDrag: false\n\t\t}\n\t}\n\n\tasync loadComponentFiles() {\n\t\treturn ChartViewProvider.STATIC_FILES_LOADER.load().then(() => {\n\t\t\t(globalThis as any).KnitCharts.init([\"Highcharts\"]);\n\t\t});\n\t}\n}","import { ATTACHMENT, AUTO_NUMBER, CHECKBOX, COLLABORATOR_CLIENT, CREATED_BY, CREATED_TIME, CURRENCY, DATE_TIME, EMAIL, FORMULA, KEYWORD_EXTRACTION, LANGUAGE_DETECTOR, LINK, LOOKUP, MODIFIED_BY, MODIFIED_TIME, MULTIPLE_SELECTION, NUMBER, PERCENT, PHONE_NUMBER, RATING, ROLLUP, SENTIMENTAL_ANALYSIS, SINGLE_SELECTION, TEXT, URL } from \"../Constants/FieldTypes.js\";\nimport { CheckBoxIconStyle, ConfigType, CurrencyCodeID, CurrencyCodeLabel, CurrencyPlacementID, CurrencyPlacementLabel, RatingIconStyle, Roles, TextFormat, TextFormatID } from \"./FieldTypeConfigTypes\";\n\n\n// CONFIG_TYPES\nexport const GRID_RENDER_READ_ONLY \t\t\t\t: ConfigType\t=   '1'\nexport const GRID_RENDER_READ_WRITE \t\t\t: ConfigType\t=   '2'\nexport const GRID_RENDER_DATA_MAINTAINER \t\t: ConfigType\t=\t'3'\nexport const GRID_SELECTION_READ_ONLY \t\t\t: ConfigType\t=\t'4'\nexport const GRID_SELECTION_READ_WRITE \t\t\t: ConfigType\t=\t'5'\nexport const GRID_SELECTION_DATA_MAINTAINER \t: ConfigType\t=\t'6'\nexport const GRID_MOUSEOVER_READ_ONLY \t\t\t: ConfigType\t=\t'7'\nexport const GRID_MOUSEOVER_READ_WRITE \t\t\t: ConfigType\t=\t'8'\nexport const GRID_MOUSEOVER_DATA_MAINTAINER \t: ConfigType\t=\t'9'\nexport const GRID_EDIT_READ_ONLY \t\t\t\t: ConfigType\t=\t'10'\nexport const GRID_EDIT_READ_WRITE \t\t\t\t: ConfigType\t=\t'11'\nexport const GRID_EDIT_DATA_MAINTAINER \t\t\t: ConfigType\t=\t'12'\nexport const RECORD_VIEW_READ_ONLY \t\t\t\t: ConfigType\t=\t'13'\nexport const RECORD_VIEW_READ_WRITE \t\t\t: ConfigType\t=\t'14'\nexport const RECORD_VIEW_DATA_MAINTAINER \t\t: ConfigType\t=\t'15'\nexport const GRID_MANAGER_ROLE                  : Roles         =   'manager'\nexport const GRID_EDITOR_ROLE                   : Roles         =   'editor'\nexport const GRID_DATA_MAINTAINER_ROLE          : Roles         =   'dataMaintainer'\nexport const GRID_COMMENTOR_ROLE                : Roles         =   'commentor'\nexport const GRID_VIEWER_ROLE                   : Roles         =   'viewer'\n\nexport const FORMATTER_LOCALE_US_LOCALE         : string        = 'en-US';\nexport const STROKE_STYLE                       : string        = \"rgba(0,0,0,0)\";           //No I18N\nexport const KEYWORD_EXTRACT_BUBBLE_COLOR       : string        = '#e0e3f7';    //No I18N\nexport const ANONYMOUS_USER_LABEL               : string        = \"Anonymous User\";\nexport const SYSTEM_USER_LABEL                  : string        = \"Scheduler User\";\nexport const ANONYMOUS_USER_EMAIL               : string        = \"Anonymous Email ID\";\nexport const SYSTEM_USER_EMAIL                  : string        = \"System Email ID\";\nexport const RATING_ICON_RENDER_COLOR           : string        = '#ccc';   //NO I18N\nexport const SENTIMENT_EMOJI_CSS_CLASSNAME      : string        = 'ZF-sentimentEmoji';  //No I18N\nexport const SENTIMENT_CELL_CLASSNAME           : string        = 'ZF-sentimentField';  //NO I18N\nexport const SQUARED_BUBBLE_CSS_CLASSNAME       : string        = 'ZF-linkField';   //No I18N\nexport const DOT_SINGLE_SELECT_CSS_CLASSNAME    : string        = 'ZF-labelDot';    //No I18N\nexport const RIGHT_ALIGN_FIELD_CSS_CLASSNAME    : string        = 'ZF-createdModifieldTimeField';   //No I18N\n// export const RECORD_COLOR_CLASSNAME             : string        = 'ZT-colorCondition';  //No I18N\n// export const RECORD_COLOR_CSS_VARIABLE          : string        = '--ZT-colorCondition';  //No I18N\nexport const UNCOLORED_OPTION_COLOR             : string        = \"e8e8e8\"; // No I18N\n\nexport const  RECORD_COLOR_CLASSNAME: string = 'zt-color-condition'   //No I18N\nexport const RECORD_COLOR_CSS_VARIABLE :  string = '--zt-color-condition'; //No I18N\n\nexport const CHECKBOX_ICON_STYLE: { [key in CheckBoxIconStyle] : string } = {   //TODO: revise constants\n    1: 'ZTCG-FieldHeartIcon',\n    2: 'ZTCG-FieldStarIcon',\n    3: 'ZTCG-FieldFlagIcon',\n    4: 'ZTCG-FieldThumbIcon',\n    5: 'ZTCG-FieldCheckboxIcon',\n    6: 'ZTCG-FieldBadgeIcon',\n    7: 'ZTCG-FieldToogleBtnUnCheckIcon',\n    7_1: 'ZTCG-FieldToogleBtnCheckIcon'\n}\n\nexport const RATING_ICON_STYLE: { [key in RatingIconStyle] : string } = {   //TODO: revise constants\n    1: 'ZTCG-RatingHeartIcon',\n    2: 'ZTCG-RatingStarIcon',\n    3: 'ZTCG-RatingFlagIcon',\n    4: 'ZTCG-RatingThumbIcon',\n    8: 'ZTCG-RatingSmileyIcon',\n    9: 'ZTCG-RatingShieldIcon'\n}\n\nexport const PLACEMENT_FROM_ID: {[key in CurrencyPlacementID] : CurrencyPlacementLabel} = {\n    0 : 'left',\n    1 : 'right',\n    2 : 'accounting',\n    3 : 'none'\n}\n\nexport const CURRENCY_CODE_FROM_ID: {[key in CurrencyCodeID] : CurrencyCodeLabel} = {\n    1 : 'USD',\n    2 : 'EUR',\n    3 : 'GBP',\n    4 : 'JPY',\n    5 : 'CAD',\n    6 : 'AUD',\n    7 : 'CNY',\n    8 : 'CHF',\n    9 : 'SGD',\n    10 : 'INR',\n    11 : 'ZAR'\n}\n\nexport const TEXT_FORMAT_LABEL_FROM_ID: { [key in TextFormatID]: TextFormat} = {\n    1   : 'none',\n    2   : 'capitalize',\n    3   : 'lower',\n    4   : 'upper',\n    5   : 'sentence'\n}\n\n\nexport const FIELD_TYPE_CSS_CLASSNAME = {\n    [ATTACHMENT]           : 'zt-attachment__root',\n    [AUTO_NUMBER]          : 'dg-autonumber__root',\n    [CHECKBOX]             : 'temp_className',\n    [CREATED_TIME]         : 'temp_className',\n    [CURRENCY]             : 'dg-currency__root',\n    [DATE_TIME]            : 'temp_className',\n    [EMAIL]                : 'temp_className',\n    [FORMULA]              : 'temp_className',\n    [MODIFIED_TIME]        : 'temp_className',\n    [MULTIPLE_SELECTION]   : 'temp_className',\n    [NUMBER]               : 'temp_className',\n    [PERCENT]              : 'temp_className',\n    [PHONE_NUMBER]         : 'temp_className',\n    [COLLABORATOR_CLIENT]  : 'zt-collaborator__root',\n    [RATING]               : 'temp_className',\n    [SINGLE_SELECTION]     : 'temp_className',\n    [TEXT]                 : 'temp_className',\n    [CREATED_BY]           : 'zt-createdby__root',\n    [MODIFIED_BY]          : 'zt-modifiedby__root',\n    [LOOKUP]               : 'zt-lookup__root',\n    [ROLLUP]               : 'zt-rollup__root',\n    [LINK]                 : 'zt-link-field__root',\n    [SENTIMENTAL_ANALYSIS] : 'zt-sentiment__root',\n    [KEYWORD_EXTRACTION]   : 'temp_className',\n    [LANGUAGE_DETECTOR]    : 'temp_className',\n    [URL]                  : 'temp_className'\n}\n\nexport const DISABLED_FIELD_CSS_CLASSNAME = 'ZG-cell--disabled';\n\nexport const TEXT_FIELD_RECORD_SIZE_CLASSNAME = {\n    SMALL      : 'zt-record-height--sm',\n    MEDIUM     : 'zt-record-height--md',\n    LARGE      : 'zt-record-height--lg',\n    EXTRA_LARGE: 'zt-record-height--xl'\n};\n","// import { FileProp } from \"../../FieldComponents/fieldComponents.js\";\nimport { HASH } from '../Constants/CssClassNamesForUI.js';\nimport { getUltraLightThemeColor } from '../Constants/ProductThemeColors';\nimport { BaseID, RelationshipID, SentimentID } from '../Types.js';\nimport { attachLinkChipSelectedValueRenderer } from '../Utility/LinkChipCountUtility.ts';\nimport { BUBBLE_TYPE, COLLABORATOR_OPTION_TYPE, SENTIMENT_OPTION_TYPE } from './FieldTypeConfigTypes';\nimport { ANONYMOUS_USER_EMAIL, ANONYMOUS_USER_LABEL, SYSTEM_USER_EMAIL, SYSTEM_USER_LABEL } from \"./FieldTypeConstants\";\n\ntype FileProp = any;\n\nconst THOUSAND_SEPARATOR = {\n    NOT_NEEDED : 0,\n    NEEDED     : 1\n};\n\nconst OPTIONS    = {MAXIMUM_FRACTION_DIGITS: 'maximumFractionDigits', USE_GROUPING: 'useGrouping'};//No I18N\nconst EMAIL_ID_REGEX = /^$|^([a-zA-Z0-9_\\+\\-\\.]+)@([a-zA-Z0-9_\\-\\.]+)\\.([a-zA-Z]{2,5})$/ //NO I18N\n\nexport function EmailValidator(mailID: string) : boolean{\n\treturn EMAIL_ID_REGEX.test(mailID);\n}\n\n/**\n * Attachment Formatters\n * @param baseID \n * @param fieldValue \n * @returns \n */\nexport function attachmentFormatter(baseID: BaseID, fieldValue : string) : Array<FileProp> {\n    const value = fieldValue ? JSON.parse(fieldValue) : [];\n    const attachments: FileProp[] = []; \n\n    if (value.length) {\n        const base = Table.Data.Workspace.get(baseID);\n\n        for (let attachmentInfo of value) {\n            const attachmentID = attachmentInfo[0];\n            const attachment = {} as FileProp; \n            attachment.id = attachmentID;\n            const attachmentMeta = base.getAttachmentDS(attachmentID);\n            if (attachmentMeta) { \n                attachmentMeta.setFileName(attachmentInfo[1]);\n                const url = attachmentMeta && attachmentMeta.imgSrc;\n                attachment.resourceId = attachmentMeta.getResourceId();\n                if (url && url !== '') {\n                    attachment.previewUrl = url;\n                }\n            }\n            attachments.push(attachment);\n        }\n    }\n\n    return attachments;\n}\n\nexport function attachmentFormmatterforCopy(baseID : BaseID, fieldValue : string) : string {\n\tconst value = fieldValue ? JSON.parse(fieldValue) : [];\n    const attachments: string[] = []; \n\n    if (value.length) {\n        const base = Table.Data.Workspace.get(baseID);\n\n        for (let attachmentInfo of value) {\n            const attachmentID = attachmentInfo[0];\n            let attachment : string = \"\" ; \n            const attachmentMeta = base.getAttachmentDS(attachmentID);\n            if (attachmentMeta) { \n\t\t\t\tattachment = attachmentMeta.getAttachmentCopy();\n            }\n            attachments.push(attachment);\n        }\n    }\n\n    return attachments.join(\",\");\n}\n\n/**\n * Autonumber Formatters\n * @param actualData \n * @param locale \n * @param thousandSeparator \n * @param precision \n * @param initialValue \n * @param stepSize \n * @param prefix \n * @param suffix \n * @returns \n */\nexport function autonumberFormatter(actualData : string, precision : number, initialValue : number, stepSize : number) {\n    \n    let data = preProcessData(actualData+'');\t//to string\n    if(data === '') { // 0 may come\n            return actualData;\n    }\n\n    let options = {};\n    \n    setMaximumFractionDigits(precision, options);\n    \n    const calculatedValue = initialValue + (Number(data) * stepSize);\n\treturn calculatedValue;\n\n\tfunction preProcessData(actualData : string) {\n\t\t\tactualData = actualData.trim();\n\t\t\tif(!actualData) {\n\t\t\t\t\treturn '';\n\t\t\t}\n\t\t\tvar number = Number(actualData);\n\t\t\tif(isNaN(number)) {\n\t\t\t\t\treturn '';\n\t\t\t}\n\t\t\treturn number;\n\t}\n\n\tfunction setMaximumFractionDigits(precision : number, options : any) {\n\t\t\tif(precision < 0) {\n\t\t\t\t\tprecision = 0;\n\t\t\t}else if(precision > 20) {\n\t\t\t\t\tprecision = 20;\n\t\t\t}\n\t\t\toptions[OPTIONS.MAXIMUM_FRACTION_DIGITS] = precision;\n\t}\n}\n\nexport function getAutoNumber(value : string) {\t//TODO: check the type\n    if(!value) {\n        return '';\n    }\n    return value;\n}\n\n/**\n * Checkbox Formatters\n */\n export function getCheckbox(fieldValue : any) {\n    switch (fieldValue) {\n        case '1':\n        case 't'://No I18N\n        case 'T'://No I18N\n        case 'y'://No I18N\n        case 'Y'://No I18N\n            fieldValue = true;\n            return fieldValue;\n        case '0':\n\t\tcase '':\n        case 'f'://No I18N\n        case 'F'://No I18N\n        case 'n'://No I18N\n        case 'N'://No I18N\n            fieldValue = false;\n            return fieldValue;\n        default:\n            return getRating(fieldValue);\n    }\n}\n\nexport function getRating(fieldValue : any) {\n    let number = globalThis.Number(fieldValue);\n    !number && (number = 0);\n    return number;\n}\n\n/**\n * Currency Formatter\n * @param actualData \n * @param locale \n * @param currency \n * @param thousandSeparator \n * @param precision \n * @param position \n * @returns \n */\nexport function currencyFormatter(actualData : any, precision : number) {\n\tif (actualData === null || actualData === undefined || actualData === \"\") {\n        return null;\n    }\n\tconst OPTIONS_MAXIMUM_FRACTION_DIGITS \t= 'maximumFractionDigits';  //No I18N\n\tconst OPTIONS_MINIMUM_FRACTION_DIGITS\t= 'minimumFractionDigits';  //No I18N\n\n\tconst data = preProcessData(actualData+'');\n\tif(data === '') { // 0 may come\n\t\treturn actualData;\n\t}\n\n\tconst options = {};\n\n\tsetFractionDigits(precision, options);\n\treturn data;\n\n\tfunction preProcessData(actualData : any) {\n\t\tactualData = actualData.trim();\n\t\tif(!actualData) {\n\t\t\t\treturn '';\n\t\t}\n\t\tvar number = Number(actualData);\n\t\tif(isNaN(number)) {\n\t\t\t\treturn '';\n\t\t}\n\t\treturn number;\n\t}\n\n\tfunction setFractionDigits(precision : number, options : any) {\n\t\tif(precision < 0) {\n\t\t\t\tprecision = 0;\n\t\t}else if(precision > 20) {\n\t\t\t\tprecision = 20;\n\t\t}\n\t\toptions[OPTIONS_MINIMUM_FRACTION_DIGITS] = precision;\n\t\toptions[OPTIONS_MAXIMUM_FRACTION_DIGITS] = precision;\n\t}\n}\n\n/**\n * Multiple Email functions\n */\n\n/**\n * Multiple Email Formatter\n * @param values \n * @param optionColor \n * @returns \n */\nexport function getMultipleEmailValues(values: any, optionColor : string) {\n\tif(!values) {\n\t\treturn [];\n\t}\n    const arrayOfEmails = values.split(',') as Array<string>; //No I18N\n    if (arrayOfEmails.length === 1 && arrayOfEmails[0] === '') {\n        return [];\n    }\n\tlet multipleEmailValues = [] as Array<BUBBLE_TYPE>;\n\tarrayOfEmails.forEach(emailID => {\n\t\tlet email = {\n\t\t\tid : emailID,\n\t\t\tlabel : emailID,\n\t\t\tcolor : optionColor\n\t\t} as BUBBLE_TYPE;\n\t\tmultipleEmailValues.push(email);\n\t});\n    return multipleEmailValues;\n}\n\nexport function getDGMultipleEmailValues(values: any, optionColor : string) {\n\tif(!values) {\n\t\treturn [];\n\t}\n    const arrayOfEmails = values.split(',') as Array<string>; //No I18N\n    if (arrayOfEmails.length === 1 && arrayOfEmails[0] === '') {\n        return [];\n    }\n\tlet multipleEmailValues = [] as Array<BUBBLE_TYPE>;\n\tarrayOfEmails.forEach(emailID => {\n\t\tlet email = {\n\t\t\tlabel : emailID,\n\t\t\tcolor : optionColor\n\t\t} as BUBBLE_TYPE;\n\t\tmultipleEmailValues.push(email);\n\t});\n    return multipleEmailValues;\n}\n\n/**\n * Multiple Phone Number Formatter\n * @param values \n * @param optionColor \n * @returns \n */\nexport function getMultiplePhoneNumberValues(values: any, optionColor : string) {\n\tif(!values) {\n\t\treturn [];\n\t}\n\tconst arrayOfPhoneNumber = values.split(',') as Array<string>; //No I18N\n    if (arrayOfPhoneNumber.length === 1 && arrayOfPhoneNumber[0] === '') {\n        return [];\n    }\n\tlet multiplePhoneNumberValues = [] as Array<BUBBLE_TYPE>;\n\tarrayOfPhoneNumber.forEach(contact => {\n\t\tlet email = {\n\t\t\tid : contact,\n\t\t\tlabel : contact,\n\t\t\tcolor : optionColor\n\t\t} as BUBBLE_TYPE;\n\t\tmultiplePhoneNumberValues.push(email);\n\t});\n    return multiplePhoneNumberValues;\n}\n\nexport function getDGMultiplePhoneNumberValues(values: any, optionColor : string) {\n\tif(!values) {\n\t\treturn [];\n\t}\n\tconst arrayOfPhoneNumber = values.split(',') as Array<string>; //No I18N\n    if (arrayOfPhoneNumber.length === 1 && arrayOfPhoneNumber[0] === '') {\n        return [];\n    }\n\tlet multiplePhoneNumberValues = [] as Array<BUBBLE_TYPE>;\n\tarrayOfPhoneNumber.forEach(contact => {\n\t\tlet email = {\n\t\t\tlabel : contact,\n\t\t\tcolor : optionColor\n\t\t} as BUBBLE_TYPE;\n\t\tmultiplePhoneNumberValues.push(email);\n\t});\n    return multiplePhoneNumberValues;\n}\n\n\nexport function getMultipleTokenValues(values: any, optionColor: string, anchorType: string = 'url') {\n    if (!values) {\n        return [];\n    }\n\n    const arrayOfPhoneNumber = values.split(',') as Array<string>; // No I18N\n    if (arrayOfPhoneNumber.length === 1 && arrayOfPhoneNumber[0] === '') {\n        return [];\n    }\n\n    const multiplePhoneNumberValues: Array<BUBBLE_TYPE> = [];\n    \n    arrayOfPhoneNumber.forEach(contact => {\n        let href: string;\n        switch (anchorType.toLowerCase()) {\n            case 'phone':\n                href = `tel:${contact}`;\n                break;\n            case 'email':\n                href = `mailto:${contact}`;\n                break;\n            case 'url':\n            default:\n                href = contact.startsWith('http') || contact.startsWith('https') ? contact : `https://${contact}`;\n                break;\n        }\n\n        const email: BUBBLE_TYPE = {\n            id: contact,\n            value: contact,\n            href: href,\n        };\n\n        multiplePhoneNumberValues.push(email);\n    });\n\n    return multiplePhoneNumberValues;\n}\n\n/**\n * Number Formatter\n * @param actualData \n * @param precision \n */\nexport function getNumberValues(actualData: any, locale : string, thousandSeparator : 0 | 1, precision : number) {\n\n\tconst OPTIONS      = {MAXIMUM_FRACTION_DIGITS: 'maximumFractionDigits', USE_GROUPING: 'useGrouping', MINIMUM_FRACTION_DIGITS: 'minimumFractionDigits'};  //No I18N\n\tconst NUMBER_REGEX = /^(\\-)?((\\d)*(\\,)*)*((\\.)?\\d*)?$/;\n\n\tconst data = preProcessData(actualData+'');\n\tif(data === '') { // 0 may come\n\t\t\treturn actualData;\n\t}\n\n\tlet options = {};\n\tsetGrouping(thousandSeparator, options);\n\treturn data;\n\n\tfunction preProcessData(actualData : any) {\n\t\t\tactualData = actualData.trim();\n\t\t\tif(!actualData) {\n\t\t\t\t\treturn '';\n\t\t\t}\n\t\t\tif(!NUMBER_REGEX.test(actualData)) {\n\t\t\t\t\treturn '';\n\t\t\t}\n\t\t\tactualData = actualData.replaceAll(',', '');\n\t\t\treturn actualData;\n\t}\n\n\tfunction setGrouping(thousandSeparator : 0 | 1, options : any) {\n\t\t\tswitch(thousandSeparator) {\n\t\t\t\t\tcase THOUSAND_SEPARATOR.NOT_NEEDED:\n\t\t\t\t\t\t\toptions[OPTIONS.USE_GROUPING] = false;\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\tcase THOUSAND_SEPARATOR.NEEDED:\n\t\t\t\t\tdefault:\n\t\t\t\t\t\t\toptions[OPTIONS.USE_GROUPING] = true;\n\t\t\t\t\t\t\treturn;\n\t\t\t}\n\t}\n}\n\n/**\n * \n * @param actualData \n * @param thousandSeparator \n * @param precision \n * @returns \n */\nexport function getPercentValues(actualData : any, thousandSeparator : 0 | 1, precision : number) {\n\tconst OPTIONS    = {MAXIMUM_FRACTION_DIGITS: 'maximumFractionDigits', USE_GROUPING: 'useGrouping', MINIMUM_FRACTION_DIGITS: 'minimumFractionDigits'};  //No I18N\n\n\tconst data = preProcessData(actualData+'');\n\tif(data === '') { // 0 may come\n\t\treturn actualData;\n\t}\n\n\tconst options = {};\n\n\tsetFractionDigits(precision, options);\n\tsetGrouping(thousandSeparator, options);\n\n\treturn data;\n\n\tfunction preProcessData(actualData : any) {\n\t\tactualData = actualData.trim();\n\t\tif(!actualData) {\n\t\t\t\treturn '';\n\t\t}\n\t\tvar number = Number(actualData);\n\t\tif(isNaN(number)) {\n\t\t\t\treturn '';\n\t\t}\n\t\treturn number;\n\t}\n\n\tfunction setFractionDigits(precision : number, options : any) {\n\t\tif(precision < 0) {\n\t\t\t\tprecision = 0;\n\t\t}else if(precision > 20) {\n\t\t\t\tprecision = 20;\n\t\t}\n\t\toptions[OPTIONS.MINIMUM_FRACTION_DIGITS] = precision;\n\t\toptions[OPTIONS.MAXIMUM_FRACTION_DIGITS] = precision;\n\t}\n\n\tfunction setGrouping(thousandSeparator : 0 | 1, options : any) {\n\t\tswitch(thousandSeparator) {\n\t\t\tcase THOUSAND_SEPARATOR.NOT_NEEDED:\n\t\t\t\toptions[OPTIONS.USE_GROUPING] = false;\n\t\t\t\treturn;\n\t\t\tcase THOUSAND_SEPARATOR.NEEDED:\n\t\t\tdefault:\n\t\t\t\toptions[OPTIONS.USE_GROUPING] = true;\n\t\t\t\treturn;\n\t\t}\n\t}\n}\n\n/**\n * Multiple URL Formatter\n * @param values \n * @param optionColor \n * @returns \n */\nexport function getMultipleURLValues(values: any, optionColor : string) {\n\tif(!values) {\n\t\treturn [];\n\t}\n    const arrayOfURLs = values.split(',') as Array<string>; //No I18N\n    if (arrayOfURLs.length === 1 && arrayOfURLs[0] === '') {\n        return [];\n    }\n\tlet multipleUrlValues = [] as Array<BUBBLE_TYPE>;\n\tarrayOfURLs.forEach(url => {\n\t\tlet urlObj = {\n\t\t\tid : url,\n\t\t\tlabel : url,\n\t\t\tcolor : optionColor\n\t\t} as BUBBLE_TYPE;\n\t\tmultipleUrlValues.push(urlObj);\n\t});\n    return multipleUrlValues;\n}\n\nexport function getDGMultipleURLValues(values: any, optionColor : string) {\n\tif(!values) {\n\t\treturn [];\n\t}\n    const arrayOfURLs = values.split(',') as Array<string>; //No I18N\n    if (arrayOfURLs.length === 1 && arrayOfURLs[0] === '') {\n        return [];\n    }\n\tlet multipleUrlValues = [] as Array<BUBBLE_TYPE>;\n\tarrayOfURLs.forEach(url => {\n\t\tlet urlObj = {\n\t\t\tlabel : url,\n\t\t\tcolor : optionColor\n\t\t} as BUBBLE_TYPE;\n\t\tmultipleUrlValues.push(urlObj);\n\t});\n    return multipleUrlValues;\n}\n\n/**\n * Single Collaborator Formatter functions\n * @param baseID \n * @returns \n */\nexport function getSelectedID(fieldValue : any) {\n    let selectedID;\n    if (fieldValue === 'null') {//No I18N\n        selectedID = null;\n    } else {\n        selectedID = fieldValue;\n        !selectedID && (selectedID = null);\n    }\n    return selectedID;\n}\n\nexport function getCollaboratorDS(baseID : BaseID) {\n    const base = Table.Data.Workspace.get(baseID);\n    return base.getCollaboratorDS();\n}\n\nexport function getCollaboratorValue(selectedID: string, collaboratorDS : any) : COLLABORATOR_OPTION_TYPE{\n\tconst optionColor = `${HASH}${getUltraLightThemeColor(collaboratorDS.getColor())}`;\n\tlet userName, userImageURL, userMailID, isRemovedUser = false;\n\tif (collaboratorDS.isActiveUser(selectedID)) {\n\t\tuserName = collaboratorDS.getActiveUserName(selectedID);\n\t\tuserImageURL = collaboratorDS.getActiveUserImageURL(selectedID);\n\t\tuserMailID = collaboratorDS.getActiveUserEmailID(selectedID);\n\t} else if (collaboratorDS.isInactiveUser(selectedID)) {\n\t\tuserName = collaboratorDS.getInactiveUserName(selectedID);\n\t\tuserImageURL = collaboratorDS.getInactiveUserImageURL(selectedID);\n\t\tuserMailID = collaboratorDS.getInactiveUserEmailID(selectedID);\n\t} else if (collaboratorDS.isRemovedUser(selectedID)) {\n\t\tuserName = collaboratorDS.getRemovedUserName(selectedID);\n\t\tisRemovedUser = true;\n\t\t!userName && (userName = ANONYMOUS_USER_LABEL);\n\t\tuserImageURL = collaboratorDS.getRemovedUserImageURL(selectedID);\n\t\tuserMailID = collaboratorDS.getRemovedUserEmailID(selectedID);\n\t} else if(collaboratorDS.isAnonymousUser(selectedID)) {\n\t\t!userName && (userName = ANONYMOUS_USER_LABEL);\n\t\tuserImageURL = collaboratorDS.getAnonymousUserImageURL(selectedID);\n\t\tuserMailID = ANONYMOUS_USER_EMAIL;\n\t} else if(collaboratorDS.isSystemUser(selectedID)) {\n\t\t!userName && (userName = SYSTEM_USER_LABEL);\n\t\tuserImageURL = collaboratorDS.getSystemUserImageURL(selectedID);\n\t\tuserMailID = SYSTEM_USER_EMAIL;\n\t}\n\n\n\treturn {\n        id       : selectedID,\n\t\tvalue\t : userName,\n\t\tcolor\t : optionColor,\n\t\timageURL : userImageURL,\n\t\tmailID\t : userMailID,\n\t\tisRemovedUser\n\t} as COLLABORATOR_OPTION_TYPE;\n}\n\nconst lightColorMapping : Record<string, string> = {};\nexport function getLightColor(color: string): string {\n\tif(lightColorMapping[color]) {\n\t\treturn lightColorMapping[color];\n\t}\n    const percent = 0.15;\n\n    let color1 = parseInt('ffffff', 16); // White color\n    let color2 = parseInt(color, 16); // Convert input color string to integer\n\n    // Extract red, green, and blue components from color1\n    const c1red = color1 >> 16;\n    const c1green = (color1 >> 8) & 0xff;\n    const c1blue = color1 & 0xff;\n\n    // Extract red, green, and blue components from color2\n    const c2red = color2 >> 16;\n    const c2green = (color2 >> 8) & 0xff;\n    const c2blue = color2 & 0xff;\n\n    // Calculate lighter shade of each color component\n    const r_red = c1red + percent * (c2red - c1red);\n    const r_green = c1green + percent * (c2green - c1green);\n    const r_blue = c1blue + percent * (c2blue - c1blue);\n\n    // Combine the lighter RGB values into a single integer representing the color\n    const lighterColor = (r_red << 16) | (r_green << 8) | r_blue;\n\n    // Convert the lighter color integer to hexadecimal and return the result\n\tconst lightColor = '#' + lighterColor.toString(16).padStart(6, '0');\n\tlightColorMapping[color] = lightColor;\n    return lightColor;\n}\n\nfunction hexToRgb(hex: string): string | null {\n    // Ensure hex string is of valid length\n    if (hex.length !== 3 && hex.length !== 6) {\n        return null;\n    }\n\n    // Expand short format hex to full format\n    if (hex.length === 3) {\n        hex = hex[0] + hex[0] + hex[1] + hex[1] + hex[2] + hex[2];\n    }\n\n    // Parse hex values for red, green, and blue components\n    const r = parseInt(hex.substring(0, 2), 16);\n    const g = parseInt(hex.substring(2, 4), 16);\n    const b = parseInt(hex.substring(4, 6), 16);\n\n    // Return RGB string\n    return `${r}, ${g}, ${b}`;\n}\n\n/**\n * \n * @param fieldValue \n * @returns \n */\nexport function getSelectedIDs(fieldValue : any) {\n    !fieldValue && (fieldValue = '');\n    let selectedIDs = Array.isArray(fieldValue) \n\t\t\t\t\t\t\t? fieldValue \n\t\t\t\t\t\t\t: fieldValue.split(',');\n    let selectedID;\n    for (let i = 0; i < selectedIDs.length; i++) {\n        selectedID = selectedIDs[i];\n        if (!selectedID) {\n            selectedIDs = [];\n            break;\n        } else {\n            selectedIDs[i] = selectedID;\n        }\n    }\n    return selectedIDs;\n}\n\nexport function getAllCollaboratorIDs(collaboratorDS : any) {\n\tconst activeUsersIDs \t\t= collaboratorDS.getActiveUsersIDs();\n\tconst inactiveUsersIDs \t\t= collaboratorDS.getInactiveUsersIDs();\n\tconst removedUserIDs   \t\t= collaboratorDS.getRemovedUsersIDs();\n\treturn [].concat(activeUsersIDs, inactiveUsersIDs, removedUserIDs);\n}\n\nexport function getDropdownCollaboratorIDs(collaboratorDS : any) {\n\tconst activeUsersIDs \t\t= collaboratorDS.getActiveUsersIDs();\n\tconst inactiveUsersIDs \t\t= collaboratorDS.getInactiveUsersIDs();\n\treturn [].concat(activeUsersIDs, inactiveUsersIDs);\n}\n\nexport function getAllCollaboratorValues(collaboratorIDs: any, collaboratorDS : any) : Array<COLLABORATOR_OPTION_TYPE> | [] {\n\tlet collaboratorArray : Array<COLLABORATOR_OPTION_TYPE>\t=\t[];\n\tfor(let i = 0 ; i < collaboratorIDs.length ; i++) {\n\t\tconst value = getCollaboratorValue(collaboratorIDs[i], collaboratorDS);\n\t\tcollaboratorArray.push(value);\n\t}\n\t\n\treturn collaboratorIDs.length > 0 ? collaboratorArray : [];\n}\n\n/**\n * Selection DS\n * @param baseID \n * @param multiSelectID \n * @returns \n */\nexport function getMultiSelectDS(baseID: BaseID, multiSelectID: string) {\n    const base = Table.Data.Workspace.get(baseID);\n    return base.getMultiSelectDS(multiSelectID);\n}\n\nexport function getAllSelectionIDs(selectionDS : any) : Array<string> {\n\tlet selectionIDs : Array<string> = [];\n\tconst count    = selectionDS.getCount();\n\tfor(let i = 0 ; i < count ; i++) {\n\t\tselectionIDs.push(selectionDS.getID(i));\n\t}\n\treturn selectionIDs;\n}\n\nexport function getSingleSelectionValue(selectedID : string, colouredOptions : number, selectionDS: any) : BUBBLE_TYPE {\n\tlet name, color;\n\tname = selectionDS.getName(selectedID);\n\tif(colouredOptions) {\n\t\tcolor = selectionDS.getColor(selectedID);\n\t}\n\treturn Object.assign( {\n\t\tlabel : name,\n\t\tid : selectedID, \n\t}, color && {color : color}) as BUBBLE_TYPE;\n}\n\nexport function getMultiSelectionValue( selectedIDs: string[], colouredOptions: number, selectionDS: any ): BUBBLE_TYPE[] {\n    return selectedIDs.map(selectedID => {\n        const name = selectionDS.getName(selectedID);\n        const color = colouredOptions ? selectionDS.getColor(selectedID) : null;\n\n        return {\n            label: name,\n            id: selectedID, // Assuming ID should uniquely represent the selected option\n            color: color ? color : null\n        } as BUBBLE_TYPE;\n    });\n}\n\nexport function getSelectionValue(selectedID : string, colouredOptions : number, selectionDS: any) : BUBBLE_TYPE {\n\tlet name, color;\n\tname = selectionDS.getName(selectedID);\n\tif(colouredOptions) {\n\t\tcolor = selectionDS.getColor(selectedID);\n\t}\n\treturn {\n\t\tlabel : name,\n\t\tid : selectedID,\n\t\tcolor : `${HASH}${color}`\n\t} as BUBBLE_TYPE\n}\n\nexport function getSelectionValues(selectionIDs: Array<string>, colouredOptions: number, selectionDS : any) {\n\tconst selectionArray : Array<BUBBLE_TYPE> = [];\t//TODO: after venki fix\n\tfor(let i = 0 ; i < selectionIDs.length ; i++) {\n\t\tconst value = getSelectionValue(selectionIDs[i], colouredOptions, selectionDS);\n\t\tselectionArray.push(value);\n\t}\n\treturn selectionArray;\n}\n\n/**\n * Link field Utilities\n */\nexport function getRelationshipProperty(baseID : BaseID, relationshipID : RelationshipID, relationshipDirection: number) {\n\tconst base          = Table.Data.Workspace.get(baseID);\n\tconst relationship  = base.getRelationship(relationshipID);\n\tconst allowMultiple = relationship.getSourceTableAllowMultiple()\n\tconst allowRepeated = relationship.getDestinationTableAllowMultiple()\n\treturn {allowMultiple, allowRepeated};\n}\n\nexport function getAllowDuplicateLinkedRecords(fieldSpecifications: any[]) : boolean {\n    return !!fieldSpecifications[6];\n}\n\n/**\n * Sentimental Analysis\n * @param sentimentID \n * @returns \n */\nexport function getSentimentMeta(baseID : BaseID, sentimentID : SentimentID) {\n    const base = Table.Data.Workspace.get(baseID);\n    return base.getSentimentalAnalysisDS(sentimentID);\n}\n\nexport function getSentimentOptions(sentimentDS : any) : SENTIMENT_OPTION_TYPE[] {\n\tconst sentiments  =  sentimentDS.sentiments;\n\tlet sentimentOptions : SENTIMENT_OPTION_TYPE[] = [];\n\tsentiments.forEach((sentiment : any) => {\n\t\tconst value \t= sentiment.sentimentValue;\n\t\tconst imgSrc\t= sentiment.imgSrc;\n\t\tconst label\t= sentiment.emotionDisplayText;\n\n\t\tconst option : SENTIMENT_OPTION_TYPE = {\n\t\t\tlabel,\n\t\t\tvalue,\n\t\t\ticonURL : imgSrc\n\t\t};\n\t\tsentimentOptions.push(option);\n\t});\n\treturn sentimentOptions;\n}\n\n/**\n * Keyword Extraction formatters\n * @param values \n * @param bubbleColor \n * @returns \n */\nexport function getKeywordValues(values : string[], bubbleColor : string) : BUBBLE_TYPE[] {\n\tlet keywordValues : BUBBLE_TYPE[] = [];\n\tvalues.forEach(value => {\n\t\tif(value === '') {\n\t\t\treturn;\n\t\t}\n\t\tconst bubble = {\n            id: value,\n\t\t\tvalue,\n\t\t\tcolor : bubbleColor\n\t\t} as BUBBLE_TYPE;\n\t\tkeywordValues.push(bubble);\n\t});\t\n\treturn keywordValues;\n}\n\n/**\n * Link/Lookup/Rollup field Formatters\n * @param values \n * @param color \n */\nexport function generateBubbleTypesFromStrings(values: string[],ids : string[], bubbleColor : string) : BUBBLE_TYPE[] {\n\tlet bubbleValues : BUBBLE_TYPE[] = [];\n\tvalues.forEach((value, index) => {\n\t\tif(value === '') {\n\t\t\treturn;\n\t\t}\n\t\tconst bubble = {\n            id: ids[index],\n\t\t\tvalue,\n\t\t\tcolor : getLightColor(bubbleColor)\n\t\t} as BUBBLE_TYPE;\n\t\tbubbleValues.push(bubble);\n\t});\t\n\treturn bubbleValues;\n}\n\nexport function generateBubbleTypesFromStringsForLink(values: string[],ids : string[], bubbleColor : string, preserveDuplicateOccurrences = false, counts?: number[]) : BUBBLE_TYPE[] {\n\tlet bubbleValues : BUBBLE_TYPE[] = [];\n\t// Count badges are owned by THIS field's allow-dup flag only — never inherit mirror multiplicity.\n\tconst effectiveCounts = preserveDuplicateOccurrences ? counts : undefined;\n\tvalues.forEach((value, index) => {\n        const recordId = ids[index];\n\t\tconst linkCount = effectiveCounts && effectiveCounts[index] != null ? Number(effectiveCounts[index]) : 1;\n\t\tconst bubble = {\n            id: recordId,\n\t\t\tlinkCount: linkCount > 0 ? linkCount : 1,\n\t\t\tvalue,\n\t\t\tcolor : getLightColor(bubbleColor)\n\t\t} as BUBBLE_TYPE;\n\t\tbubbleValues.push(bubble);\n\t});\n\t// DomGrid Select chips: circular count badge only when this field allows duplicate links.\n\tif (preserveDuplicateOccurrences) {\n\t\treturn attachLinkChipSelectedValueRenderer(bubbleValues, { force: true });\n\t}\n\treturn bubbleValues;\n}\n\nexport function parseRoundValue(value : string | number) {\n    const convertedValue = Number(value);\n    const isRound = (convertedValue!=0) && convertedValue % 1 === 0;\n    return {\n        value  : value === \"\" || value === null ? null : convertedValue,\n        change : isRound\n    };\n}\n\n\nexport function areArraysEqual(arr1: string[], arr2: string[]): boolean {\n    if (arr1.length !== arr2.length) {\n        return false;\n    }\n  \n    for (let i = 0; i < arr1.length; i++) {\n        if (arr1[i] !== arr2[i]) {\n            return false;\n        }\n    }\n  \n    return true;\n  }\n\n  export function multiplyBy100(value:number) {\n\tif(value === null || value === undefined) {\n\t\treturn \"\";\n\t}\n\tconst valueAsString = value.toString();\n\tif (!valueAsString) {\n\t\treturn '';\n\t}\n\n\tif (valueAsString.includes('.')) {\n\t\tconst index = valueAsString.indexOf('.');\n\t\tif (index !== valueAsString.lastIndexOf('.')) {\n\t\t\treturn '';\n\t\t}\n\n\t\tconst fractionalPartLength = valueAsString.length - index - 1;\n\t\tif (fractionalPartLength > 2) {\n\t\t\treturn (Number(valueAsString) * 100).toFixed(fractionalPartLength - 2);\n\t\t} else {\n\t\t\treturn (Number(valueAsString) * 100).toFixed();\n\t\t}\n\t}\n\n\treturn (Number(valueAsString) * 100).toString();\n}\n\nexport function divideBy100(value:number) {\n\tif (value === null || value === undefined) {\n\t\treturn '';\n\t}\n\n\tconst valueAsString = value.toString();\n\n\tif(!valueAsString) {\n\t\treturn '';\n\t}\n\n\n\tif (valueAsString.includes('.')) {\n\t\tconst index = valueAsString.indexOf('.');\n\t\tif (index !== valueAsString.lastIndexOf('.')) {\n\t\t\treturn '';\n\t\t}\n\n\t\tconst fractionalPartLength = valueAsString.length - index - 1;\n\n\t\tconst valueReplacedString = valueAsString.replaceAll(',', '');\n\n\t\treturn (Number(valueReplacedString) / 100).toFixed(fractionalPartLength + 2);\n\t}\n\n\treturn (Number(valueAsString) / 100).toString();\n}\n\n\n// // // // // // // // // // // // // // // // Text Formatter  // // // // // // // // // // // // // // // // \n\nexport const TEXT_FORMATS = {\n\tDEFAULT       : 'default',//No I18N\n\tINIT_CAPS     : 'initCaps',//No I18N\n\tUPPER_CASE    : 'fullCaps',//No I18N\n\tLOWER_CASE    : 'fullSmall',//No I18N\n\tSENTENCE_CASE : 'sentenceCase'//No I18N\n};\nexport const REGEX               = new RegExp(/[a-zA-Z]/i);\nexport const SENTENCE_CASE_REGEX = /((\\s(i)\\s)|(^(.))|(\\.(\\s)+(.)))/g;\nexport function singleLineTextFormatter(actualData : string, format : string) : string{\n\tconst testString = `${actualData}`;\n\treturn formatTextData(testString, format);\n}\n\nexport function formatTextData(testString : string, format : string) {\n\tswitch(format) {\n\t\tcase TEXT_FORMATS.INIT_CAPS:\n\t\t\treturn getInitCapsString(testString);\n\n\t\tcase TEXT_FORMATS.UPPER_CASE:\n\t\t\treturn testString.toUpperCase();\n\n\t\tcase TEXT_FORMATS.LOWER_CASE:\n\t\t\treturn testString.toLowerCase();\n\n\t\tcase TEXT_FORMATS.SENTENCE_CASE:\n\t\t\ttestString.toLowerCase().replace(SENTENCE_CASE_REGEX, char => {\n\t\t\treturn char.toUpperCase();\n\t\t\t});\n\n\t\tdefault:\n\t\t\treturn testString;\n\t}\n}\n\nexport function getInitCapsString(testString : string) {\n\tlet initCapsString  = '';\n\tlet transformToCaps = true;\n\n\tlet isAlphabet;\n\tlet character;\n\tfor(let i = 0; i < testString.length; i++) {\n\t\tcharacter  = testString[i];\n\t\tisAlphabet = REGEX.test(character);\n\t\tif(isAlphabet) {\n\t\t\tif(transformToCaps) {\n\t\t\t\ttransformToCaps = false;\n\t\t\t\tcharacter       = character.toUpperCase();\n\t\t\t}else {\n\t\t\t\t\tcharacter = character.toLowerCase();\n\t\t\t}\n\t\t}else {\n\t\t\ttransformToCaps = true;\n\t\t}\n\t\tinitCapsString += character;\n\t}\n\treturn initCapsString;\n}\n// // // // // // // // // // // // // // // // Text Formatter  Ends // // // // // // // // // // // // // // // // ","import { CellPositionType, CellRangeType, ICellEditorComponent, ICellRendererComponent, IColumnDefinition, IUserPresence, IUserPresenceItem, MovePosition, RefreshCellParams, RowPositionType, SelectedRowRange } from '../../../DomGrid/App/grid';\nimport { areArraysEqual } from '../../FieldTypeComponents/FieldTypeComponentsFormater';\nimport { FieldID, GroupID, RecordID } from \"../../Types\";\nimport type { FieldHeaderCell } from './HeaderPane/FieldHeader/FieldHeaderCell';\nimport { IDGInteractor, IGroupAppendMeta } from './Main/Interface/IDGInteractor';\nimport { ICell, IFieldSummaryCell, IGridViewPortInfo, IGroup, IRecordHeaderCell, IReponseGroupInsertMeta, IRowMeta, ITablesFieldConfig, ITablesRecordInsertMeta, ITablesRowMeta, ITablesViewport, IUserPresenceState, SummaryValue } from './Main/Interface/ITablesGridConfig';\n\nexport function createDGInteractor(domgridInstance: any) {\n    class DGInteractor implements IDGInteractor {\n\n        private initiatedFrom : string | null = null;\n\n        refreshDraftRows(): void {\n            domgridInstance()?.rowAPI.refreshDraftRows();\n        }\n\n        getRowNode(rowIndex: number) {\n            return domgridInstance()?.rowAPI.getRowNode(rowIndex);\n        }\n        resetRowCaches(recordCount?: number, immediateRender?: boolean): void {\n            domgridInstance()?.rowAPI.resetRowCaches(recordCount, {immediateRender : immediateRender});\n        }\n        updateConfiguration(config: any): void {\n            domgridInstance()?.api.updateConfiguration(config);\n        }\n        getConfigurationByKey(key: string) {\n            return domgridInstance()?.api.getConfigurationByKey(key);\n        }\n        getRowControllerInstance(rowIndex: number) {\n            return domgridInstance()?.api.getRowControllerInstance(rowIndex);\n        }\n        removeRecordsByID(recordIDs: RecordID[]): void {\n            domgridInstance()?.rowAPI.removeRowsById(recordIDs);\n        }\n\n        //Select Record APIs\n        deSelectRecord(rowMeta : IRowMeta, pinPosition : string = 'middle') : void {\n            domgridInstance()?.rowSelectionAPI.deSelectRow({rowIndex : rowMeta.rowIndex,pinPosition:pinPosition,parentKeys:rowMeta.parentPath});\n        }\n    \n        selectRecord(rowMeta : IRowMeta, pinPosition : string = 'middle') : void {\n            domgridInstance()?.rowSelectionAPI.selectRow({rowIndex : rowMeta.rowIndex,pinPosition:pinPosition,parentKeys:rowMeta.parentPath});\n        }\n    \n        selectAllRecords() : void {\n            domgridInstance()?.rowSelectionAPI.selectAllRows();\n        }\n    \n        selectField(fieldId: FieldID) : void {\n            domgridInstance()?.columnSelectionAPI.selectColumn(fieldId);\n        }\n    \n        clearAllSelection() : void {\n            domgridInstance()?.api.clearAllSelections();\n        }\n    \n        getSelectedRecordCount() : number {\n            return domgridInstance()?.rowSelectionAPI.getSelectedRowCount();\n        }\n    \n        getSelectedRecords() : any[] {\n            return domgridInstance()?.rowSelectionAPI.getSelectedRows();\n        }\n    \n        getSelectedFields() : string[] {\n            return domgridInstance()?.columnSelectionAPI.getSelectedColumns();\n        }\n    \n        getSelectedCellsRange() : CellRangeType[] {\n            return domgridInstance()?.rangeSelectionAPI.getCellRanges();\n        }\n    \n        //Row APIs\n        getRowCount() : number {\n            return domgridInstance()?.rowAPI.getRowCount();\n        }\n    \n        removeRecords(recordIndices : ITablesRowMeta[]) : void {\n            domgridInstance()?.rowAPI.removeRows(recordIndices);\n        }\n    \n        updateAllRecordHeight(recordHeight: number) : void {\n            domgridInstance()?.rowAPI.setAllRowHeightAs(recordHeight);\n        }\n    \n        insertRowAtLast(count : number, rowData: any,  rowDefinition: any, parentKeys: string[] = []) : void {\n            domgridInstance()?.rowAPI.appendrows(count, rowData, rowDefinition, {parentKeys : parentKeys});\n        }\n    \n        insertRow(relativeRecordIndex: number, insertPosition : MovePosition, rowData: any, rowDefinition: any) : void {\n            domgridInstance()?.rowAPI.insertRow(relativeRecordIndex, insertPosition, rowData, rowDefinition);\n        }\n\n        insertRows(rowsMetas : ITablesRecordInsertMeta[]) : void {\n            rowsMetas.forEach((rowMeta) => {\n                domgridInstance()?.rowAPI.insertRows(rowMeta.rowsMeta, rowMeta.insertPosition);\n            })\n        }\n    \n        getRecordIDFromIndex(index: number, parentKeys: string[] = []) : RecordID {\n            return domgridInstance()?.rowAPI.getIdByIndex(index, 'middle', parentKeys);\n        }\n\n        getRecordIndexFromID(recordID : RecordID, originalIndex : boolean = false) : CellPositionType {\n            return domgridInstance()?.rowAPI.getIndexById(recordID, originalIndex)\n        }\n\n        getFieldIDFromIndex(index: number) : FieldID {\n            return domgridInstance()?.columnAPI.getIdByIndex(index);\n        }\n\n        getSelectedRecordRanges() : SelectedRowRange[] {\n            return domgridInstance()?.rowSelectionAPI.getSelectedRows();\n        }\n    \n        //Column APIs\n        insertFieldAtLast(columnDefinition: IColumnDefinition) : void {\n            domgridInstance()?.columnAPI.appendColumn(columnDefinition);\n        }\n\n        insertFieldsAtLast(columnDefinitions: ITablesFieldConfig[]) : void {\n            domgridInstance()?.columnAPI.appendColumns(columnDefinitions);\n        }\n    \n        removeFieldByID(fieldId : FieldID) : void {\n            domgridInstance()?.columnAPI.removeColumnById(fieldId);\n        }\n    \n        removeFieldsByID(fieldIds : FieldID[]) : void {\n            domgridInstance()?.columnAPI.removeColumnsById(fieldIds);\n        }\n    \n        updateColumnByID(fieldID: FieldID, fieldDefinition: ITablesFieldConfig) : void {\n            domgridInstance()?.columnAPI.updateColumnDefinitonById(fieldID, fieldDefinition);\n        }\n    \n        insertFieldBefore(fieldID: FieldID, fieldDefinition: ITablesFieldConfig) : void {\n            domgridInstance()?.columnAPI.insertColumnById(fieldID, fieldDefinition,'before');\n        }\n    \n        insertFieldAfter(fieldID: FieldID, fieldDefinition: ITablesFieldConfig) : void {\n            domgridInstance()?.columnAPI.insertColumnById(fieldID, fieldDefinition,'after');\n        }\n    \n        movableRowsByID(sourceRecordIDs: Array<RecordID>, targetRecordID: RecordID, position: \"before\" | \"after\") : void {   //Field Reorder\n            domgridInstance()?.reorderableAPI.moveRowsById(sourceRecordIDs, targetRecordID, position);\n        }\n    \n        movableColumnsByID(relativeFieldID: FieldID, position: boolean, reorderedFieldIDs: FieldID[]) : void {   //Field Reorder\n            const positionString = position ? 'after' : 'before';\n            domgridInstance()?.reorderableAPI.moveColumnsById(reorderedFieldIDs, relativeFieldID, positionString);\n        }\n    \n        hideFieldsByID(hiddenFields: FieldID[]) : void {\n            domgridInstance()?.columnAPI.hideColumnsById(hiddenFields);\n        }\n    \n        resizeFieldByID(resizedField : FieldID, width : number) : void {\n            domgridInstance()?.columnAPI.setColumnWidthById(resizedField, width);\n        }\n\n        resizeFieldsByID(resizedFields: any) {\n            domgridInstance()?.columnAPI.setColumnsWidthById(resizedFields);\n        }\n\n        unhideFieldByID(hiddenFieldID : FieldID) : void {\n            domgridInstance()?.columnAPI.showColumnById(hiddenFieldID);\n        }\n\n        isFieldHidden(fieldID: FieldID) {\n            return domgridInstance()?.columnAPI.isColumnIdHidden(fieldID);\n        }\n\n        unPinAllFields() : void {\n            domgridInstance()?.pinningAPI.unpinAllColumns();\n        }\n\n        pinPrimaryField(fieldID: FieldID, position: string) : void {\n            if (!fieldID) {\n                return;\n            }\n            const pinningAPI = domgridInstance()?.pinningAPI;\n            if (!pinningAPI) {\n                return;\n            }\n            pinningAPI.pinColumnById(fieldID, position, {\n                insertIndex   : 0,\n                insertPosition: \"before\"\n            });\n        }\n\n        getPinnedFields() : FieldID {\n            return domgridInstance()?.pinningAPI.getLeftPinnedColumns();\n        }\n\n        addSort(recordCount : number) : void {\n            // domgridInstance()?.rowAPI.resetRowCaches(recordCount);\n        }\n\n        removeSort() : void {\n            domgridInstance()?.rowAPI.resetRowCaches(); //Temp order added since DG not going to do ordering\n        }\n\n        applyFilter(recordCount : number) : void {\n            domgridInstance()?.rowAPI.resetRowCaches(recordCount);\n        }\n\n        removeFilter(recordCount : number) : void {\n            domgridInstance()?.rowAPI.resetRowCaches(recordCount);\n        }\n    \n        // User presence APIs starts\n        addUserPresenceItems(recordID: RecordID, fieldID: FieldID, userPresenceItems: IUserPresenceItem[]) : void {\n            domgridInstance()?.userPresenceAPI.addUserPresenceItems(recordID, fieldID, userPresenceItems);\n        }\n    \n        updateUserPresenceItems(recordID: RecordID, fieldID: FieldID, userPresenceItems: IUserPresenceItem[]) : void {\n            domgridInstance()?.userPresenceAPI.updateUserPresenceItems(recordID, fieldID, userPresenceItems);\n        }\n    \n        removeUserPresenceItems(recordID: RecordID, fieldID: FieldID, userPresenceItemIDs: string[]) : void  {\n            domgridInstance()?.userPresenceAPI.removeUserPresenceItems(recordID, fieldID, userPresenceItemIDs);\n        }\n    \n        removeUserPresenceItem(userPresenceItemID: string) : void  {\n            domgridInstance()?.userPresenceAPI.removeUserPresenceItem(userPresenceItemID);\n        }\n    \n        addUserPresence(recordID: RecordID, fieldID: FieldID, userPresence: IUserPresence) : void  {\n            domgridInstance()?.userPresenceAPI.addUserPresence(recordID, fieldID, userPresence);\n        }\n    \n        updateUserPresence(recordID: RecordID, fieldID: FieldID, userPresence: IUserPresence) : void  {\n            domgridInstance()?.userPresenceAPI.updateUserPresence(recordID, fieldID, userPresence);\n        }\n    \n        removeUserPresence(recordID: RecordID, fieldID: FieldID) : void  {\n            domgridInstance()?.userPresenceAPI.removeUserPresence(recordID, fieldID);\n        }\n    \n        hasUserPresence(recordID: RecordID, fieldID: FieldID) : boolean {\n            return domgridInstance()?.userPresenceAPI.hasUserPresence(recordID, fieldID);\n        }\n    \n        hasUserPresenceItem(recordID: RecordID, fieldID: FieldID, userPresenceItemID: string) : boolean {\n            return domgridInstance()?.userPresenceAPI.hasUserPresenceItem(recordID, fieldID, userPresenceItemID);\n        }\n        // User presence APIs ends\n    \n        //Get Cell APIs\n        getCellComponent(recordId: RecordID, fieldId: FieldID) : ICell {\n            return domgridInstance()?.api.getCellRendererInstance(recordId, fieldId);\n        }\n    \n        getRecordHeaderCellComponent(recordID: RecordID) : IRecordHeaderCell {\n            return domgridInstance()?.api.getRowHeaderCellRendererInstance(recordID, 'rowHeader');\n        }\n    \n        getSelectAllComponent() : ICellRendererComponent {\n            return domgridInstance()?.api.getRowHeaderColumnHeaderCellRendererInstanceByIndex(0,0);\n        }\n    \n        getColumnHeaderCellComponent(fieldId: FieldID) : FieldHeaderCell {\n            return domgridInstance()?.api.getColumnHeaderCellRendererInstance(fieldId);\n        }\n    \n        getFieldSummaryCellComponent(fieldId: FieldID) : IFieldSummaryCell  {\n            return domgridInstance()?.api.getSummaryCellRendererInstance(\"summaryCellID\", fieldId);\n        }\n    \n        getCurrentEditingCell() : CellPositionType {    //DOMTODO: Will be removed when float grid code removed\n            return domgridInstance()?.api.getFocusedCell();\n        }\n    \n        getCurrentEditCellComponent(recordID: RecordID, fieldID: FieldID) : ICellEditorComponent {\n            return domgridInstance()?.api.getCellEditorInstance(recordID, fieldID);\n        }\n\n        getColumnHeaderCellElement(fieldID : FieldID) : HTMLElement | null {\n            return domgridInstance()?.api.getColumnHeaderCellElement(fieldID);\n        }\n    \n        //Floating Grid APIs\n        floatRow(recordIndex: number) : void {\n            domgridInstance()?.floatingRowAPI.floatRow(recordIndex);  \n        }\n\n        observeFloatingRow() : void {\n            domgridInstance()?.floatingRowAPI.observeFloat();\n        }\n\n        unObserveFloatingRow() : void {\n            domgridInstance()?.floatingRowAPI.unObserveFloat();\n        }\n    \n        // moveRowTemporarilyById(recordID: RecordID) : void  {\n        //     domgridInstance()?.floatingRowAPI.moveRowTemporarilyById(recordID);\n        // }\n    \n        // commitAndUnFloatRowById(recordID: RecordID) : void  {\n        //     domgridInstance()?.floatingRowAPI.commitAndUnFloatRowById(recordID);\n        // }\n\n        moveRowTemporarily(targetRow : number) : void  {\n            domgridInstance()?.floatingRowAPI.moveRowTemporarily(targetRow);\n        }\n\n        closeFloatingGrid() : void {\n            domgridInstance()?.floatingRowAPI.commitAndUnFloatRow();\n        }\n\n        getFloatingGridContainers(recordIndex : number): HTMLElement[] {\n            return domgridInstance()?.expertimentalAPI.getRowComponentElements({rowIndex : recordIndex, pinPosition : 'middle'});\n        }\n    \n        //Extra Row\n        updateExtraRow(toShow: Boolean) : void  {\n            // domgridInstance()?.api.updateExtraRow(toShow);\n        }\n    \n        //Cell APIs\n        refreshCell(recordId: RecordID, fieldID: FieldID, refreshParams: RefreshCellParams) : void  {\n            domgridInstance()?.cellAPI.refreshCell(recordId, fieldID, refreshParams);\n        }\n\n        destroyGridInstance() {\n            domgridInstance()?.api.destroyGrid();\n        }\n\n        getRowIdByIndex(rowIndex : number, pinPosition : string, parentKeys : string[]) : string {\n            return domgridInstance()?.rowAPI.getIdByIndex(rowIndex, pinPosition, parentKeys);\n        }\n\n        getCellRendererInstance(rowId : string, columnId : string) : ICellRendererComponent | null{\n            return domgridInstance()?.api.getCellRendererInstance(rowId, columnId);\n        }\n        \n        refreshGrid() : void {\n            domgridInstance()?.api.refresh({force : true});\n        }\n\n        updateCellData(record: RecordID, field: FieldID, value: any): void {\n            domgridInstance()?.cellAPI.setDataById(record, field, value);\n        }\n\n        getCellData(recordId: RecordID, field: FieldID): any {\n            return domgridInstance()?.cellAPI.getDataById(recordId, field);\n        }\n\n        startEditingByIndex(rowIndex: number, columnIndex: number): void {\n            domgridInstance()?.api.startCellEditingByIndex(rowIndex, columnIndex);\n        }\n\n        startEditing(recordID : RecordID, fieldID : FieldID, initiatedFrom : string | null = null) : void {\n            this.initiatedFrom = initiatedFrom;\n            domgridInstance()?.api.startCellEditing(recordID, fieldID);\n        }\n\n        startHeaderCellEditing(fieldID: string): void {\n            domgridInstance()?.api.startHeaderCellEditing(fieldID);\n        }\n\n        stopEditing(event : KeyboardEvent | null =  null,suppressNavigation :  boolean = true, cancelDataSubmit = false): void {\n            this.initiatedFrom = null;\n            domgridInstance()?.api.stopCellEditing(cancelDataSubmit, event, suppressNavigation)\n        }\n\n        closeEditorTooltip(): void {\n            domgridInstance()?.api.clearEditorTooltip();\n        }\n\n        getFocusedCell() : any {\n            return domgridInstance()?.api.getFocusedCell();\n        }\n\n        placeCellSelection(cellPosition : CellPositionType,  scrollOnFocus: boolean = true, setRange: boolean = false, focus : boolean = true) : void {\n            domgridInstance()?.navigationAPI.setFocusToCell(cellPosition, { scrollOnFocus, range : setRange, focus});\n        }\n\n        placeCellSelectionByID(recordID : RecordID, fieldID : FieldID, scrollOnFocus: boolean = true, setRange: boolean = false, focus : boolean = true) : void {\n            domgridInstance()?.navigationAPI.setFocusToCellById(recordID, fieldID, { scrollOnFocus, range : setRange, focus});\n        }\n\n        clearFocusedCell() : void {\n            domgridInstance()?.navigationAPI.clearFocusedCell()\n        }\n\n        hasMultipleCellsInRange(): boolean {\n            return domgridInstance()?.rangeSelectionAPI.hasMultipleCells();\n        }\n\n        isFieldSelected(fieldID: FieldID): boolean {\n            return domgridInstance()?.columnSelectionAPI.isColumnSelected(fieldID);\n        }\n\n        isRecordSelected(rowMeta: RowPositionType): boolean {\n            return domgridInstance()?.rowSelectionAPI.isRowSelected(rowMeta);\n        }\n\n        navigateToCellLeft(): void {\n            domgridInstance()?.navigationAPI.navigateToCellLeft();\n        }\n\n        navigateToCellRight(): void {\n            domgridInstance()?.navigationAPI.navigateToCellRight();\n        }\n\n        navigateToCellTop(): void {\n            domgridInstance()?.navigationAPI.navigateToCellTop();\n        }\n\n        navigateToCellBottom(): void {\n            domgridInstance()?.navigationAPI.navigateToCellBottom();\n        }\n\n        getSummaryHeaderCellRenderer(): IFieldSummaryCell {\n            return domgridInstance()?.api.getSummaryHeaderCellRendererInstance('summaryCellID','rowHeader');\n        }\n        \n        getViewport() : ITablesViewport {\n            return domgridInstance()?.api.getViewPort();\n        }\n\n        refreshAllRecordHeader() : void {\n            domgridInstance()?.api.refreshHeaderRows({ force : true});\n        }\n\n        gridFocus() : void {\n            domgridInstance()?.api.focus();\n        }\n\n        getAddColumnBufferInstanceElement() : HTMLDivElement {\n            return domgridInstance()?.api.getAddColumnBufferInstance().getElement();\n        }\n\n        scrollTo(x: number, y: number): void {\n            domgridInstance()?.navigationAPI.scrollTo(x, y);\n        }\n\n        getScrollLeft(): number {\n            return domgridInstance()?.navigationAPI.scrollHandler.scrollLeft;\n        }\n\n        updateFloatLabel(label : string) : void {\n            domgridInstance()?.floatingRowAPI.updateMessage(label);\n        }\n        \n        getEditingInitiator() : string | null {\n            return this.initiatedFrom;\n        }\n\n        getViewPort(): IGridViewPortInfo {\n            return domgridInstance()?.api.getViewPort();\n        }\n\n        getUserPresenceState(): IUserPresenceState | null {\n            const cellEditingPosition = domgridInstance()?.api.getCurrentEditingCellPosition();\n\n            const focusedCell = this.getFocusedCell();\n\n            if(cellEditingPosition) {\n                const cellEditing = domgridInstance()?.api.getCurrentEditingCell();\n                const colsMatch        = cellEditing.fieldID === focusedCell.columnID;\n                const floatingMatch    = cellEditingPosition.pinPosition === focusedCell.pinPosition;\n                const indexMatch       = cellEditingPosition.rowIndex    === focusedCell.rowIndex;\n                const isParentKeyMatch = areArraysEqual(cellEditingPosition.parentKeys, focusedCell.parentKeys);\n                if(colsMatch && floatingMatch && indexMatch && isParentKeyMatch) {\n                    return {\n                        recordID      : cellEditing.recordID,\n                        fieldID       : cellEditing.fieldID,\n                        presenceStatus: \"typing\"\n                    }\n                }\n\n                return null;\n                \n            }\n\n\n            if(focusedCell) {\n                if(focusedCell.pinPosition === \"bottomDraftRow\") {\n                    return {\n                        recordID      : \"-1\",\n                        fieldID       : focusedCell.columnID,\n                        presenceStatus: \"idle\"\n                    }\n                }\n                return {\n                    recordID      : domgridInstance()?.rowAPI.getIdByIndex(focusedCell.rowIndex, focusedCell.pinPosition, focusedCell.parentKeys),\n                    fieldID       : focusedCell.columnID,\n                    presenceStatus: \"idle\"\n                }\n            }\n            return  null;\n        }\n\n        expandGroup(groupPath: Array<GroupID>, recursive : boolean = false): void {\n            domgridInstance()?.treeAPI.expandGroups([{\n                groupId : groupPath[groupPath.length - 1],\n                recursive : recursive\n            }]);\n        }\n        getAllDisplayedColumns() : FieldID[] {\n            return domgridInstance()?.columnAPI.getAllDisplayedColumns();\n        }\n\n\n        collapseGroup(groupPath: Array<GroupID>,  recursive : boolean = false): void {\n            domgridInstance()?.treeAPI.collapseGroups([{\n                groupId : groupPath[groupPath.length - 1],\n                recursive : recursive\n            }]);\n        }\n\n        insertGroups(groupsInsertMeta : IReponseGroupInsertMeta[]) : void  {\n            groupsInsertMeta.forEach(groupInsertMeta => {\n                groupInsertMeta.relativeID === \"-1\" ? domgridInstance()?.treeAPI.appendGroupsById({\n                  fullTreeStructure         : groupInsertMeta.group\n                }, groupInsertMeta.groupPath[groupInsertMeta.groupPath.length - 1]): \n                domgridInstance()?.treeAPI.insertRowsAtBlockByIds([{\n                    fullTreeStructure: groupInsertMeta.group,\n                    groupId          : groupInsertMeta.relativeID,\n                    insertPosition   : groupInsertMeta.position\n                }]);\n            });\n        }\n\n        deleteGroups(groupIDs : GroupID[]) : void {\n            domgridInstance()?.treeAPI.removeGroupsById(groupIDs);\n        }\n\n        updateGroupSummary(groupPath: GroupID[], summaryFieldID: FieldID, summary: SummaryValue): void {\n            const rowData = domgridInstance()?.rowAPI.getDataById(groupPath[groupPath.length - 1]) as IGroup;\n            if(rowData) {\n                rowData.summaryData[summaryFieldID] = summary;\n                domgridInstance()?.cellAPI.refreshCell(rowData.groupId, summaryFieldID, {force : true});\n            }\n        }\n\n        updateGroupCount(groupPath: GroupID[], fieldID: FieldID, count: number): void {\n            const rowData = domgridInstance()?.rowAPI.getDataById(groupPath[groupPath.length - 1]) as IGroup;\n            if(rowData) {\n                rowData.rowCount = count;\n                domgridInstance()?.cellAPI.refreshCell(rowData.groupId, fieldID, {force : true});\n            }\n        }\n        \n        updateGroupValue(groupPath: GroupID[], fieldID: FieldID, value: any): void {\n            const rowData = domgridInstance()?.rowAPI.getDataById(groupPath[groupPath.length - 1]) as IGroup;\n            if(rowData) {\n                rowData.groupLabel = value;\n                domgridInstance()?.cellAPI.refreshCell(rowData.groupId, fieldID, {force : true});\n            }\n        }\n\n        refreshGroupCell(groupPath: GroupID[], fieldID: FieldID): void {\n            const rowData = domgridInstance()?.rowAPI.getDataById(groupPath[groupPath.length - 1]) as IGroup;\n            if(rowData) {\n                domgridInstance()?.cellAPI.refreshCell(rowData.groupId, fieldID, {force : true});\n            }\n        }\n\n        expandAllGroups(recursive?: boolean): void {\n            domgridInstance()?.treeAPI.expandAll(recursive);\n        }\n\n        collapseAllGroups(recursive?: boolean): void {\n            domgridInstance()?.treeAPI.collapseAll(recursive);\n        }\n\n        appendGroupsById(groupAppendMeta: IGroupAppendMeta[]): void {\n            groupAppendMeta.forEach(groupAppendMeta => {\n                domgridInstance()?.rowAPI.appendRowsById(groupAppendMeta.group, groupAppendMeta.targetID);\n            });\n        }\n\n        getLeafChildrenIncludingCollapsed(startRowMeta : {rowIndex : number, parentKeys : string[]}, endRowMeta : {rowIndex : number, parentKeys : string[]}) : {rowIndex : number, parentKeys : string[]}[] {\n            const startRowMetaObject = {\n                rowIndex : startRowMeta.rowIndex,\n                parentKeys : startRowMeta.parentKeys,\n                pinPosition : \"middle\"\n            }\n            const endRowMetaObject = {\n                rowIndex : endRowMeta.rowIndex,\n                parentKeys : endRowMeta.parentKeys,\n                pinPosition : \"middle\"\n            }\n            return domgridInstance()?.experimentalAPI.getLeafChildrenIncludingCollapsed(startRowMetaObject, endRowMetaObject);\n        }\n\n        getRowDatabyID(rowId: string) {\n            return domgridInstance()?.rowAPI.getDataById(rowId);\n        }\n\n        refreshGroupCells() : void {\n            domgridInstance()?.cellAPI.refreshGroupCells({force : true});\n        }\n\n        movableRowsByMeta(sourceRecordMetas: Array<{ rowIndex: number; parentKeys: string[]; }>, targetRecordMeta: { rowIndex: number; parentKeys: string[]; }, position: 'before' | 'after'): void {\n            domgridInstance()?.reorderableAPI.moveRows(sourceRecordMetas, targetRecordMeta, position);\n        }\n\n        getFloatingRowMeta() : RecordID | null {\n            const floatingRowNode = domgridInstance()?.floatingRowAPI.getFloatingRowNode();\n            if(floatingRowNode) {\n                return floatingRowNode.getId();\n            }\n            return null;\n        }\n    }\n\n    return new DGInteractor();\n}\n\n        ","import { columnPinPositions, IRowModel } from \"../../../DomGrid/App/grid\";\nimport { ATTACHMENT, NUMBER, PHONE_NUMBER, DATE_TIME, LINK, LOOKUP, ROLLUP, EMAIL, RATING, CURRENCY, SINGLE_SELECTION, MULTIPLE_SELECTION, SENTIMENTAL_ANALYSIS, TEXT, CHECKBOX, PERCENT, COLLABORATOR_CLIENT, URL } from \"../../Constants/FieldTypes.js\";\nimport { FieldID, RecordID } from \"../../Types\";\n\n//CSS Classnames\nexport const CSS_CLASSNAME_PRICING_ICON_MEDIUM_SIZE : string        = 'ZTP-mediumBtn';\nexport const CSS_CLASSNAME_HIDE                     : string        = 'hide';\nexport const CSS_CLASSNAME_RECORDHEIGHT_SMALL       : string        = 'ZT-recordHeightSM';\nexport const CSS_CLASSNAME_RECORDHEIGHT_MEDIUM      : string        = 'ZT-recordHeightMD';\nexport const CSS_CLASSNAME_RECORDHEIGHT_LARGE       : string        = 'ZT-recordHeightLG';\nexport const CSS_CLASSNAME_RECORDHEIGHT_EXTRALARGE  : string        = 'ZT-recordHeightXTLG';\nexport const CSS_CLASSNAME_GRID_CONTAINER           : string        = 'ZTC-domGridContainer';\n\n//Default values\nexport const BUFFER_SIZE                            : number    = 20;\nexport const BUFFER_SPACE_RIGHT                     : number    = 400;\nexport const BUFFER_SPACE_BOTTOM                    : number    = 300;\nexport const SUMMARY_BAR_HEIGHT                     : number    = 30;\nexport const FIELD_HEADER_HEIGHT                    : number    = 30;\nexport const CACHE_BLOCK_SIZE                       : number    = 500;\nexport const CACHE_BLOCK_COUNT                      : number    = 5;\nexport const FETCH_TRIGGER_POINT                    : number    = 50;\nexport const STATIC_CACHE_INDEX_START               : number    = 0;\nexport const DG_MODEL_TYPE                          : IRowModel = 'remote';\n\nexport const CHECKBOXSTATE_CHECKED                  : number    = 0;\nexport const CHECKBOXSTATE_UNCHECKED                : number    = 1;\nexport const CHECKBOXSTATE_INDETERMINATE            : number    = 2;\n\nexport const FORMULA_RETURN_TYPE_MAPPING = {\n    FORMULA_NUMBER      : 1,\n    FORMULA_TEXT        : 2,\n    FORMULA_DATE        : 3,\n    FORMULA_CURRENCY    : 4,\n    FORMULA_PERCENT     : 5\n}\n\nexport const RECORDHEIGHT_SMALL      = 30;\nexport const RECORDHEIGHT_MEDIUM     = 55;\nexport const RECORDHEIGHT_LARGE      = 85;\nexport const RECORDHEIGHT_EXTRALARGE = 115;\n\nexport const DEFAULT_COLUMN_PIN_POSITION            : columnPinPositions    = 'left';\nexport const DEFAULT_ATTACHMENT_PREVIEW             : string                = '../../../images/Portal/Griddefault.jpg';\n\nexport const KEY_LABEL = {\n    ENTER : 'Enter'\n}\n\nexport const DRAG_DROP_POSITION_FROM_MOVE_POSITION: {[key in \"before\" | \"after\"] : 0 | 1} = {\n    \"before\": 0,\n    \"after\": 1\n}\n\nexport const MOVE_POSITION_FROM_TABLES_DRAG_DROP_POSITION: {[key in 0 | 1] :  \"before\" | \"after\"} = {\n    0 : \"before\",\n    1 : \"after\"\n}\n\nexport const DRAG_DROP_POSTION_FROM_HORIZONTAL_DIRECTION: {[key in \"left\" | \"right\"] : 0 | 1} = {\n    \"left\"  : 0,\n    \"right\" : 1\n}\n\nexport const DRAG_DROP_POSTION_FROM_VERTICAL_DIRECTION: {[key in \"up\" | \"down\"] : 0 | 1} = {\n    \"up\"  : 0,\n    \"down\" : 1\n}\n\nexport const editor_initiated_from = { //temporary fix\n    ELLIPSES      : 'ellipses',\n    EXPAND_ICON   : 'expand_icon',\n    PLUS_ICON     : 'plus_icon'\n}\n\nexport const SORT_FILTER_ANIMATION_DURATION : number = 250;\n\nexport type BoundaryConstants = {\n    recordType : number,\n    fieldType  : number,\n    records    : Array<RecordID>,\n    fields     : Array<FieldID>\n}\n\n//create a constant of default values for field types\nexport const DEFAULT_WRITE_FIELD_TYPE_VALUES = {\n    [ATTACHMENT]           : \"[]\",\n    [CHECKBOX]             : \"\",\n    [TEXT]                 : \"\",\n    [URL]                  : \"\",\n    [SENTIMENTAL_ANALYSIS] : \"\",\n    [MULTIPLE_SELECTION]   : \"\",\n    [SINGLE_SELECTION]     : \"\",\n    [CURRENCY]             : \"\",\n    [NUMBER]               : \"\",\n    [PERCENT]              : \"\",\n    [RATING]               : \"\",\n    [COLLABORATOR_CLIENT]  : \"\",\n    [EMAIL]                : \"\",\n    [PHONE_NUMBER]         : \"\",\n    [DATE_TIME]            : \"\",\n    [LINK]                 : \"\",\n    [LOOKUP]               : \"[]\",\n    [ROLLUP]               : \"\",\n}\n","export function debounce(fn: any, delay: number) {\n\tlet timeoutID = -1;\n\treturn (...args: any) => {\n\t\tclearTimeout(timeoutID);\n\t\ttimeoutID = setTimeout(() => {\n\t\t\tfn(...args);\n\t\t}, delay);\n\t}\n}\n","import { getTemplate } from \"../TemplatesForAll.js\";\nimport { editor_initiated_from } from \"../View/GridView/GridConstants\";\nimport { ICellComponent } from \"./Interface/ICellComponent\";\n\nexport function getExpandIcon(params : any){\n    const expandIconTemplate = getTemplate('ZTCG-expandIconTemplate') as HTMLTemplateElement;\n    const expandIcon = expandIconTemplate.querySelector('.zt-expand-icon') as HTMLDivElement;\n    const eventHandler = params.fieldCellEventHandler;\n    expandIcon.addEventListener('click',  ()=>{\n        eventHandler.startEditing(params.recordID, params.fieldID, editor_initiated_from.EXPAND_ICON);\n    });\n    return expandIcon;\n}\nexport class CellInlineComponent implements ICellComponent {\n    public component      : any;\n    public parentDOM     !: HTMLElement\n    public expandIcon    !: HTMLElement | null;\n    public config        !: any;\n\n    protected addExpandIconButton(params : any) : void {\n\t\tif(this.expandIcon == null){\n\t\t\tconst expandIconTemplate = getTemplate('ZTCG-expandIconTemplate') as HTMLTemplateElement;\n\t\t  \tthis.expandIcon    = expandIconTemplate.querySelector('.zt-expand-icon') as HTMLDivElement;\n            const eventHandler = params.fieldCellEventHandler;\n\t\t\tthis.expandIcon.addEventListener('click',  ()=>{\n                eventHandler.startEditing(params.recordID, params.fieldID);\n            });\n\t\t}\n\t\tthis.parentDOM.appendChild(this.expandIcon);\n\t}\n\n\tprotected removeExpandIconButton() : void {\n\t\tthis.expandIcon?.remove();\n\t}\n\n    afterGuiAttached() : void {\n    }\n\n    onExpand() : void {\n    }\n\n    onKeyDown(e: KeyboardEvent): void {\n    }\n\n    addCSSClass(): void {\n    }\n\n    addListener() : void{\n    }\n\n    constructComponent(): void {\n    }\n\n    getComponent() {\n        return this.component;\n    }\n    getValue() {\n        return this.component?.api.getValue() ?? '';\n    }\n\n    onCellWidthChange(width : number) {\n    \n    }\n    \n    enableSelection(_params: any) {\n        const selectionParams ={\n            component : this\n        }\n        // this.config.onSelection?.(selectionParams);\n        this.config.onSelection(selectionParams);\n    }\n    disableSelection(params : any) {   \n        const deSelectionParams ={\n            component : this\n        }\n        // this.config.onDeSelection?.(deSelectionParams);\n        this.config.onDeSelection(deSelectionParams);\n    }\n    getElement() {\n        // try {\n        //     return this.component?.api?.getElement();\n        // } catch (error) {\n        //     console.error(\"Error getting element:\", error);\n        // }\n\n        return this.component?.getElement(); // is value empty component is not created\n    }\n    destroyComponent(): void {\n        this.component?.destroy(); \n        this.parentDOM.textContent = '';\n    }\n\n    getFormattedValue() : any {\n        return this.component.api.getValue();\n    }\n}","import { getTemplate } from \"../TemplatesForAll.js\";\nimport { IRenderer } from \"./FieldTypeConfigTypes\";\n\n\nconst emptyElementHolder = document.createElement('div');\nconst DEFAULT_PLACEHOLDER_FOR_ADD_OPTION = Table.Constants.JSMsg['UI.tables.fieldTypeComponents.AddOption']\nconst DEFAULT_PLACEHOLDER_FOR_USER_NOT_FOUND = Table.Constants.JSMsg['UI.Tables.ShareBaseDialog.userNotFound']\nconst DEFAULT_PLACEHOLDER_FOR_ADD_COLLABORATOR = Table.Constants.JSMsg['UI.tables.common.addCollaborator']\n\n\nexport class SelectedValueCustomRenderer{\n    element !:  HTMLElement;\n    private params: any;\n   init(params:any) {\n       this.params = params;\n   }\n   createElement() {\n        const div = document.createElement('div');\n        const chipRoot = document.createElement(\"div\");\n        chipRoot.className = \"dg-chip__root dg-chip--filled dg-chip--default\";\n        chipRoot.tabIndex = 0;\n        chipRoot.role = \"button\";\n        chipRoot.setAttribute(\"aria-disabled\", \"false\");\n        chipRoot.setAttribute(\"aria-readonly\", \"false\");\n        // chipRoot.setAttribute(\"aria-label\", \"Catherine\");\n        chipRoot.style.backgroundColor = this.params.option.selectedValueRendererParams.bgColor ?? \"RGB(233,227,250)\";\n\n        // Prefix Element\n        const prefixElem = document.createElement(\"div\");\n        prefixElem.className = \"dg-chip__prefix-elem\";\n\n        const thumbnailDiv = document.createElement(\"div\");\n        thumbnailDiv.className = \"dg-chip__thumbnail\";\n\n        const thumbnailImg = document.createElement(\"img\");\n        thumbnailImg.className = \"dg-chip__thumbnail-img\";\n        (!this.params.option.selectedValueRendererParams.imageURL)  && thumbnailImg.classList.add(\"hide\")\n        thumbnailImg.src = this.params.option.selectedValueRendererParams.imageURL;\n        thumbnailImg.alt = \"Avatar\";\n\n        thumbnailDiv.appendChild(thumbnailImg);\n        prefixElem.appendChild(thumbnailDiv);\n\n        // Label Wrapper\n        const labelWrapper = document.createElement(\"div\");\n        labelWrapper.className = \"dg-chip__label-wrapper\";\n\n        const labelSpan = document.createElement(\"span\");\n        labelSpan.className = \"dg-chip__label\";\n        labelSpan.textContent = this.params.option.selectedValueRendererParams.label;\n\n        labelWrapper.appendChild(labelSpan);\n\n        // Suffix Element\n        const suffixElem = document.createElement(\"div\");\n        suffixElem.className = \"dg-chip__suffix-elem\";\n\n        const removeIconSpan = document.createElement(\"span\");\n        removeIconSpan.className = \"dg-chip__remove-icon\";\n\n        const removeIconSvg = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n        removeIconSvg.setAttribute(\"viewBox\", \"0 0 24 24\");\n        removeIconSvg.classList.add(\"dg-chip__remove-svg\");\n\n\n        const gElement = document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\");\n        gElement.setAttribute(\"id\", \"Layer_1-2\");\n        gElement.setAttribute(\"data-name\", \"Layer 1\");\n\n        const path1 = document.createElementNS(\"http://www.w3.org/2000/svg\", \"path\");\n        path1.setAttribute(\"d\", \"M1 20a1 1 0 0 1-.71-1.7l18-18.01A1 1 0 1 1 19.7 1.7L1.71 19.71c-.2.2-.45.29-.71.29Z\");\n\n        const path2 = document.createElementNS(\"http://www.w3.org/2000/svg\", \"path\");\n        path2.setAttribute(\"d\", \"M19 20c-.26 0-.51-.1-.71-.29l-18-18C-.1 1.32-.1.68.29.29s1.03-.39 1.42 0l18 18a1 1 0 0 1-.71 1.7Z\");\n\n        gElement.appendChild(path1);\n        gElement.appendChild(path2);\n\n\t\tif(!this.params.readonly){\n\t\t\tremoveIconSvg.appendChild(gElement);\n\t\t\tremoveIconSpan.appendChild(removeIconSvg);\n\t\t\tsuffixElem.appendChild(removeIconSpan);\n\t\t}\n\n        // Assembling the Chip\n        chipRoot.appendChild(prefixElem);\n        chipRoot.appendChild(labelWrapper);\n        chipRoot.appendChild(suffixElem);\n\n        // Append the chipRoot to the desired container (e.g., a parent div)\n        div.appendChild(chipRoot); // Replace `document.body` with your container.\n\n        div.appendChild(chipRoot);\n\n        this.element = div.firstChild as HTMLElement;\n\n        // const removeIcon = div.querySelector('.dg-chip__suffix-elem');\n        // removeIcon.addEventListener('click', (event:any) => {\n        //     window.collaborator.api.deselect(this.params.option.value);\n        //      event.stopPropagation();\n        // });\n\n        return this.element;\n   }\n\n   getElement(){\n\treturn this.element;\n   }\n   destroy(){\n    this.element.remove();   \n   }\n}\n\nexport class SingleCollaboratorCustomChip{\n    element !:  HTMLElement;\n    private params: any;\n   init(params:any) {\n       this.params = params;\n   }\n   createElement() {\n        const div = document.createElement('div');\n        const chipRoot = document.createElement(\"div\");\n        chipRoot.className = \"dg-chip__root dg-chip--filled dg-chip--default\";\n        chipRoot.tabIndex = 0;\n        chipRoot.role = \"button\";\n        chipRoot.setAttribute(\"aria-disabled\", \"false\");\n        chipRoot.setAttribute(\"aria-readonly\", \"false\");\n        // chipRoot.setAttribute(\"aria-label\", \"Catherine\");\n        chipRoot.style.backgroundColor = this.params.option.selectedValueRendererParams.bgColor ?? \"RGB(233,227,250)\";\n\n        // Prefix Element\n        const prefixElem = document.createElement(\"div\");\n        prefixElem.className = \"dg-chip__prefix-elem\";\n\n        const thumbnailDiv = document.createElement(\"div\");\n        thumbnailDiv.className = \"dg-chip__thumbnail\";\n\n        const thumbnailImg = document.createElement(\"img\");\n        thumbnailImg.className = \"dg-chip__thumbnail-img\";\n        thumbnailImg.src = this.params.option.selectedValueRendererParams.imageURL;\n        thumbnailImg.alt = \"Avatar\";\n\n        thumbnailDiv.appendChild(thumbnailImg);\n        prefixElem.appendChild(thumbnailDiv);\n\n        // Label Wrapper\n        const labelWrapper = document.createElement(\"div\");\n        labelWrapper.className = \"dg-chip__label-wrapper\";\n\n        const labelSpan = document.createElement(\"span\");\n        labelSpan.className = \"dg-chip__label\";\n        labelSpan.textContent = this.params.option.selectedValueRendererParams.label;\n\n        labelWrapper.appendChild(labelSpan);\n\n        // Suffix Element\n        const suffixElem = document.createElement(\"div\");\n        suffixElem.className = \"dg-chip__suffix-elem\";\n\n\n\n        const gElement = document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\");\n        gElement.setAttribute(\"id\", \"Layer_1-2\");\n        gElement.setAttribute(\"data-name\", \"Layer 1\");\n\n        const path1 = document.createElementNS(\"http://www.w3.org/2000/svg\", \"path\");\n        path1.setAttribute(\"d\", \"M1 20a1 1 0 0 1-.71-1.7l18-18.01A1 1 0 1 1 19.7 1.7L1.71 19.71c-.2.2-.45.29-.71.29Z\");\n\n        const path2 = document.createElementNS(\"http://www.w3.org/2000/svg\", \"path\");\n        path2.setAttribute(\"d\", \"M19 20c-.26 0-.51-.1-.71-.29l-18-18C-.1 1.32-.1.68.29.29s1.03-.39 1.42 0l18 18a1 1 0 0 1-.71 1.7Z\");\n\n        gElement.appendChild(path1);\n        gElement.appendChild(path2);\n\n        // Assembling the Chip\n        chipRoot.appendChild(prefixElem);\n        chipRoot.appendChild(labelWrapper);\n        chipRoot.appendChild(suffixElem);\n\n        // Append the chipRoot to the desired container (e.g., a parent div)\n        div.appendChild(chipRoot); // Replace `document.body` with your container.\n\n        div.appendChild(chipRoot);\n\n        this.element = div.firstChild as HTMLElement;\n\n\n        return this.element;\n   }\n\n   getElement(){\n\treturn this.element;\n   }\n   destroy(){\n    this.element.remove();   \n   }\n}\n\nexport class SentimentalValueCustomRenderer{\n    element !:  HTMLElement;\n    private params: any;\n   init(params:any) {\n       this.params = params;\n   }\n   createElement() {\n        const div = document.createElement('div');\n        const chipRoot = document.createElement(\"div\");\n        chipRoot.className = \"dg-chip__root dg-chip--filled dg-chip--default\";\n        chipRoot.tabIndex = 0;\n        chipRoot.role = \"button\";\n        chipRoot.setAttribute(\"aria-disabled\", \"false\");\n        chipRoot.setAttribute(\"aria-readonly\", \"false\");\n        // chipRoot.setAttribute(\"aria-label\", \"Catherine\");\n        chipRoot.style.backgroundColor = this.params.option.selectedValueRendererParams.bgColor ?? \"RGB(233,227,250)\";\n\n        // Prefix Element\n        const prefixElem = document.createElement(\"div\");\n        prefixElem.className = \"dg-chip__prefix-elem\";\n\n        const thumbnailDiv = document.createElement(\"div\");\n        thumbnailDiv.className = \"dg-chip__thumbnail\";\n\n        const thumbnailImg = document.createElement(\"img\");\n        thumbnailImg.className = \"dg-chip__thumbnail-img\";\n        (!this.params.option.selectedValueRendererParams.imageURL) && thumbnailImg.classList.add(\"hide\");\n        (this.params.option.selectedValueRendererParams.imageURL) && (thumbnailImg.src = this.params.option.selectedValueRendererParams.imageURL);\n        thumbnailImg.alt = \"Avatar\";\n\n        thumbnailDiv.appendChild(thumbnailImg);\n        prefixElem.appendChild(thumbnailDiv);\n\n        // Label Wrapper\n        const labelWrapper = document.createElement(\"div\");\n        labelWrapper.className = \"dg-chip__label-wrapper\";\n\n        const labelSpan = document.createElement(\"span\");\n        labelSpan.className = \"dg-chip__label\";\n        labelSpan.textContent = this.params.option.selectedValueRendererParams.label;\n\n        labelWrapper.appendChild(labelSpan);\n\n        // Suffix Element\n        const suffixElem = document.createElement(\"div\");\n        suffixElem.className = \"dg-chip__suffix-elem\";\n\n        const gElement = document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\");\n        gElement.setAttribute(\"id\", \"Layer_1-2\");\n        gElement.setAttribute(\"data-name\", \"Layer 1\");\n\n        const path1 = document.createElementNS(\"http://www.w3.org/2000/svg\", \"path\");\n        path1.setAttribute(\"d\", \"M1 20a1 1 0 0 1-.71-1.7l18-18.01A1 1 0 1 1 19.7 1.7L1.71 19.71c-.2.2-.45.29-.71.29Z\");\n\n        const path2 = document.createElementNS(\"http://www.w3.org/2000/svg\", \"path\");\n        path2.setAttribute(\"d\", \"M19 20c-.26 0-.51-.1-.71-.29l-18-18C-.1 1.32-.1.68.29.29s1.03-.39 1.42 0l18 18a1 1 0 0 1-.71 1.7Z\");\n\n        gElement.appendChild(path1);\n        gElement.appendChild(path2);\n\n        // Assembling the Chip\n        chipRoot.appendChild(prefixElem);\n        chipRoot.appendChild(labelWrapper);\n        chipRoot.appendChild(suffixElem);\n\n        // Append the chipRoot to the desired container (e.g., a parent div)\n        div.appendChild(chipRoot); // Replace `document.body` with your container.\n\n        div.appendChild(chipRoot);\n\n        this.element = div.firstChild as HTMLElement;\n        return this.element;\n   }\n\n   getElement(){\n\treturn this.element;\n   }\n   destroy(){\n    this.element.remove();   \n   }\n}\n\nexport class createNewOptionRenderer implements IRenderer {\n\n    params :any;\n    dom    !: HTMLElement;\n\tinit(params: any): void {\n        this.params = params;\n    }\n\tgetElement(): HTMLElement {\n        const button = document.createElement('button');\n        button.classList.add('dg-dropdown__option-label', 'dg-create-newoption');\n    \n        const spanDelay = document.createElement('span');\n        spanDelay.classList.add('ZTCL-delay');\n    \n        const spanLoader = document.createElement('span');\n        spanLoader.classList.add('ZT-circleLoader', 'ZT-cmNone', 'ZTCL-small');\n        spanDelay.appendChild(spanLoader);\n    \n        // const createIcon = document.createElement('span');\n        // createIcon.classList.add('dg-dropdown__option-create-icon');\n        // createIcon.textContent = '+';\n    \n        const textNode = document.createTextNode(DEFAULT_PLACEHOLDER_FOR_ADD_OPTION);\n    \n        const createText = document.createElement('span');\n        createText.classList.add('dg-dropdown__option-create-text');\n        createText.textContent = this.params.newOption;\n    \n        // button.append(spanDelay, createIcon, textNode, createText);\n        button.append(spanDelay, textNode, createText);\n    \n        this.dom = button;\n        return this.dom;\n    }\n    \n\tdestroy(): void {\n        this.dom.remove();\n    }\n}\n\nexport class customCollaboratorNoOptionRenderer implements IRenderer{\n\n    params : any;\n    dom    !: HTMLElement;\n\n    init(params:any){\n        this.params = params;\n    }\n\n    getElement(): HTMLElement {\n        const emptyPanel = document.createElement('div');\n        emptyPanel.id = 'emptyPanel';\n        emptyPanel.classList.add('ZT-noResultEmptyPanel');\n    \n        const card1 = document.createElement('div');\n        card1.classList.add('ZT-noResultcard');\n        const span1 = document.createElement('span');\n        span1.classList.add('ZT-noResultElement');\n        card1.appendChild(span1);\n    \n        const card2 = document.createElement('div');\n        card2.classList.add('ZT-noResultcard');\n        const span2 = document.createElement('span');\n        span2.classList.add('ZT-noResultElement');\n        card2.appendChild(span2);\n    \n        const heading = document.createElement('h3');\n        heading.classList.add('ZT-emptyStateText');\n        heading.textContent = DEFAULT_PLACEHOLDER_FOR_USER_NOT_FOUND;\n    \n        emptyPanel.append(card1, card2, heading);\n    \n        this.dom = emptyPanel;\n        return this.dom;\n    }\n    \n    destroy(): void {\n        this.dom.remove();\n    }\n\n}\n\nexport class AddCollaboratorRenderer implements IRenderer {\n    params: any;\n    dom !: any\n\tinit(params: any): void {\n        this.params = params;\n    }\n\tgetElement(): HTMLElement {\n        const button = document.createElement('button');\n        button.classList.add('dg-dropdown__option-label', 'dg-dropdown__option-create--collaborator');\n    \n        const span = document.createElement('span');\n        span.classList.add('dg-dropdown__option-label-text');\n        span.textContent = `+ ${DEFAULT_PLACEHOLDER_FOR_ADD_COLLABORATOR}`;\n    \n        button.appendChild(span);\n    \n        this.dom = button;\n        return this.dom;\n    }\n    \n\tdestroy(): void {\n        this.dom.remove();\n    }\n}\n\nexport class MultipleTokenCustomRenderer{\n    element !:  HTMLElement;\n    private params: any;\n   init(params:any) {\n       this.params = params;\n   }\n  \n   createElement() {\n        const chipRoot = document.createElement(\"div\");\n        chipRoot.className = \"dg-chip__root dg-chip--filled dg-chip--default\";\n        const labelWrapper = document.createElement(\"div\");\n        labelWrapper.className = \"dg-chip__label-wrapper\";\n        labelWrapper.setAttribute(\"title\", this.params.option.selectedValueRendererParams.value);\n        const labelAnchor = document.createElement(\"a\");\n        labelAnchor.href = this.params.option.selectedValueRendererParams.href;\n        labelAnchor.target = \"_blank\";\n        labelAnchor.rel = 'noopener noreferrer';\n        labelAnchor.className = \"dg-chip__label\";\n        labelAnchor.textContent = this.params.option.selectedValueRendererParams.value ;\n        labelWrapper.appendChild(labelAnchor);\n        this.addListener(labelAnchor)\n        chipRoot.appendChild(labelWrapper);\n        this.element = chipRoot;\n        return this.element;\n    }\n\n\n    addListener(element :  HTMLElement){\n        const mouseDownCallback   = this.params.option.onMouseDown;\n        const contextMenuCallback = this.params.option.onContextMenu;\n        element.addEventListener(\"mousedown\", mouseDownCallback);\n        element.addEventListener(\"contextmenu\", contextMenuCallback);\n\n    }\n   getElement(){\n\t return this.element;\n   }\n   destroy(){\n    this.element.remove();   \n   }\n}\nexport class DropdownOptionCustomRenderer{\n    element !:  HTMLElement;\n    private params: any;\n   init(params:any) {\n      this.params = params;\n   }\n   getElement() {\n\n\tconst label = document.createElement(\"label\");\n    label.classList.add(\"dg-dropdown__option-label\");\n\n    // Create checkbox input\n    const checkbox = document.createElement(\"input\");\n    checkbox.type = \"checkbox\";\n    checkbox.classList.add(\"dg-dropdown__option-checkbox-input\");\n    checkbox.setAttribute(\"role\", \"checkbox\");\n    checkbox.setAttribute(\"aria-disabled\", \"false\");\n    // checkbox.setAttribute(\"aria-checked\", isChecked.toString());\n    checkbox.setAttribute(\"aria-label\", \"checkbox\");\n    checkbox.tabIndex = -1;\n\n    // Create custom checkbox style span\n    const customCheckbox = document.createElement(\"span\");\n    customCheckbox.classList.add(\"dg-dropdown__option-checkbox-input--custom\");\n    customCheckbox.style.setProperty(\"--checked-border-color\", \"black\");\n    customCheckbox.style.setProperty(\"--checked-fill-color\", \"red\");\n    customCheckbox.style.setProperty(\"--unchecked-border-color\", \"green\");\n\n    // Create container for name and image\n    const labelText = document.createElement(\"div\");\n    labelText.classList.add(\"dg-dropdown__option-label-text\");\n\n    const nameContainer = document.createElement(\"div\");\n    nameContainer.classList.add(\"zt-collaborator-sec\");\n\n    // Create image\n    const image = document.createElement(\"img\");\n    image.classList.add(\"zt-collaborator-img\");\n    image.src =  this.params.option.dropdownOptionRendererParams.imageURL;\n    image.id = \"image\";\n\n    // Create name wrapper\n    const nameWrapper = document.createElement(\"div\");\n    nameWrapper.classList.add(\"zt-collaborator__name-container\");\n\n    // Create name span\n    const nameSpan = document.createElement(\"span\");\n    nameSpan.classList.add(\"dg-dropdown__option-label-text\");\n    nameSpan.id = \"name\";\n    nameSpan.title = this.params.option.dropdownOptionRendererParams.mailID;\n    nameSpan.textContent = this.params.option.dropdownOptionRendererParams.mailID;\n\n    // Create email span\n    const emailSpan = document.createElement(\"span\");\n    emailSpan.classList.add(\"dg-dropdown__option-label-text\", \"zt-collaborator__email\");\n    emailSpan.id = this.params.option.dropdownOptionRendererParams.mailID;\n    emailSpan.textContent = this.params.option.dropdownOptionRendererParams.email;\n\n    // Append elements\n    nameWrapper.appendChild(nameSpan);\n    nameWrapper.appendChild(emailSpan);\n    nameContainer.appendChild(image);\n    nameContainer.appendChild(nameWrapper);\n    labelText.appendChild(nameContainer);\n    this.params.option.dropdownOptionRendererParams.isCheckboxNeeded &&  label.appendChild(checkbox);\n    this.params.option.dropdownOptionRendererParams.isCheckboxNeeded  && label.appendChild(customCheckbox);\n    label.appendChild(labelText);\n\n    return label;\n\n\t//  // Create the main container\n\t//  const nameContainer = document.createElement(\"div\");\n\t//  nameContainer.id = \"nameContainer\";\n\t//  nameContainer.className = \"zt-collaborator-sec\";\n \n\t//  // Create the image element\n\t//  const image = document.createElement(\"img\");\n\t//  image.id = \"image\";\n\t//  image.className = \"zt-collaborator-img\";\n\t//  image.src =  this.params.option.dropdownOptionRendererParams.imageURL;\n \n\t//  // Create the name container\n\t//  const nameSubContainer = document.createElement(\"div\");\n\t//  nameSubContainer.className = \"zt-collaborator__name-container\";\n \n\t//  // Create the name span\n\t//  const nameSpan = document.createElement(\"span\");\n\t//  nameSpan.id = \"name\";\n\t//  nameSpan.className = \"dg-dropdown__option-label-text\";\n\t//  nameSpan.title =  this.params.option.dropdownOptionRendererParams.mailID;\n\t//  nameSpan.textContent =  this.params.option.dropdownOptionRendererParams.mailID;\n \n\t//  // Create the email span\n\t//  const emailSpan = document.createElement(\"span\");\n\t//  emailSpan.id =  this.params.option.dropdownOptionRendererParams.mailID;\n\t//  emailSpan.className = \"dg-dropdown__option-label-text zt-collaborator__email\";\n\t//  emailSpan.textContent = this.params.option.dropdownOptionRendererParams.email;\n \n\t//  // Append name and email to the name sub-container\n\t//  nameSubContainer.appendChild(nameSpan);\n\t//  nameSubContainer.appendChild(emailSpan);\n \n\t//  // Append image and name sub-container to the main container\n\t//  nameContainer.appendChild(image);\n\t//  nameContainer.appendChild(nameSubContainer);\n \n\t//  return nameContainer;\n   } \n   destroy(){\n    this.element.remove();   \n   }\n}\nexport class SingleSelectChipCustomRenderer {\n    element!: HTMLElement;\n    private params: any;\n  \n    init(params: any) {\n      this.params = params;\n    }\n\n    createElement() {\n      const rootElement = document.createElement(\"div\");\n      rootElement.className = \"dg-singleselect__root\";\n  \n      const chipRoot = document.createElement(\"div\");\n      chipRoot.className = \"dg-chip__root\";\n    //   chipRoot.tabIndex = 0; \n      this.params.option.selectedValueRendererParams.bgColor && chipRoot.style.setProperty(\"--chip-bg-color\", this.params.option.selectedValueRendererParams.bgColor );\n     this.params.option.selectedValueRendererParams.dotColor &&  chipRoot.style.setProperty(\"--label-dot-color\", this.params.option.selectedValueRendererParams.dotColor);\n  \n      const prefixElement = document.createElement(\"div\");\n      prefixElement.className = \"dg-chip__prefix-elem\";\n      const dotIcon = document.createElement(\"span\");\n      dotIcon.className = \"dg-chip__label--dot\";\n      prefixElement.appendChild(dotIcon);\n  \n      const labelWrapper = document.createElement(\"div\");\n      labelWrapper.className = \"dg-chip__label-wrapper\";\n      const labelElement = document.createElement(\"span\");\n      labelElement.className = \"dg-chip__label\";\n      labelElement.textContent = this.params.option.selectedValueRendererParams.label;\n      labelWrapper.appendChild(labelElement);\n  \n      chipRoot.appendChild(prefixElement);\n      chipRoot.appendChild(labelWrapper);\n  \n      rootElement.appendChild(chipRoot);\n  \n      this.element = rootElement;\n      chipRoot.setAttribute(\"title\", this.params.option.selectedValueRendererParams.label);\n      return this.element;\n    }\n  \n    getElement() {\n      return this.element;\n    }\n  \n    destroy() {\n      this.element.remove();\n    }\n  }\n\n  export class SingleSelectDropdownOptionCustomRenderer {\n    element!: HTMLElement;\n    private params: any;\n  \n    init(params: any) {\n      this.params = params;\n    }\n\n    getElement() {\n        const label = document.createElement(\"label\");\n        label.classList.add(\"dg-dropdown__option-label\");\n    \n        // Create div for label text\n        const labelTextDiv = document.createElement(\"div\");\n        labelTextDiv.classList.add(\"dg-dropdown__option-label-text\");\n    \n        // Create single select root div\n        const singleSelectRoot = document.createElement(\"div\");\n        singleSelectRoot.classList.add(\"dg-singleselect__root\");\n    \n        // Create chip root div\n        const chipRoot = document.createElement(\"div\");\n        chipRoot.classList.add(\"dg-chip__root\");\n        this.params.option.dropdownOptionRendererParams.bgColor && chipRoot.style.setProperty(\"--chip-bg-color\", this.params.option.dropdownOptionRendererParams.bgColor );\n        this.params.option.dropdownOptionRendererParams.dotColor &&  chipRoot.style.setProperty(\"--label-dot-color\", this.params.option.dropdownOptionRendererParams.dotColor);\n        // chipRoot.style.setProperty(\"--chip-bg-color\", this.params.option.dropdownOptionRendererParams.bgColor || \"#f0f0f0\");\n        // chipRoot.style.setProperty(\"--label-dot-color\",  this.params.option.dropdownOptionRendererParams.dotColor|| \"#9b9b9b\");\n    \n        // Create prefix element div\n        const prefixElem = document.createElement(\"div\");\n        prefixElem.classList.add(\"dg-chip__prefix-elem\");\n    \n        // Create dot span\n        const dotSpan = document.createElement(\"span\");\n        dotSpan.classList.add(\"dg-chip__label--dot\");\n    \n        // Append dot span to prefix element\n        prefixElem.appendChild(dotSpan);\n    \n        // Create label wrapper div\n        const labelWrapper = document.createElement(\"div\");\n        labelWrapper.classList.add(\"dg-chip__label-wrapper\");\n    \n        // Create label span\n        const labelSpan = document.createElement(\"span\");\n        labelSpan.classList.add(\"dg-chip__label\");\n        labelSpan.setAttribute(\"title\",  this.params.option.selectedValueRendererParams.label);\n        labelSpan.textContent =  this.params.option.selectedValueRendererParams.label ;\n    \n        // Append label span to wrapper\n        labelWrapper.appendChild(labelSpan);\n    \n        // Assemble the elements\n        chipRoot.appendChild(prefixElem);\n        chipRoot.appendChild(labelWrapper);\n        singleSelectRoot.appendChild(chipRoot);\n        labelTextDiv.appendChild(singleSelectRoot);\n        label.appendChild(labelTextDiv);\n    \n        this.element =  label\n        return this.element;\n    }\n  \n    // getElement() {\n    //   return this.element;\n    // }\n  \n    destroy() {\n      this.element.remove();\n    }\n  }\n\nexport class SentimentDropdownOptionCustomRenderer {\n    element!: HTMLElement;\n    private params: any;\n\n    init(params: any) {\n        this.params = params;\n    }\n\n    getElement() {\n\n        const label = document.createElement(\"label\");\n        label.className = \"dg-dropdown__option-label\";\n\n        const divText = document.createElement(\"div\");\n        divText.className = \"dg-dropdown__option-label-text\";\n\n        const sentimentContainer = document.createElement(\"div\");\n        sentimentContainer.id = \"sentimentOptionContainer\";\n\n        const headerSpan = document.createElement(\"span\");\n        headerSpan.className = \"zt-sentiment__header dg-dropdown__option-label-text\";\n        headerSpan.textContent =this.params.option.dropdownOptionRendererParams.emotionDisplayText;\n\n        const valueContainer = document.createElement(\"span\");\n        valueContainer.className = \"zt-sentiment__value-container\";\n\n        const img = document.createElement(\"img\");\n        img.className = \"zt-sentiment__img\";\n        (!this.params.option.dropdownOptionRendererParams.imageURL) && img.classList.add(\"hide\");\n        (this.params.option.dropdownOptionRendererParams.imageURL) && (img.src = this.params.option.dropdownOptionRendererParams.imageURL);\n\n        const textSpan = document.createElement(\"span\");\n        textSpan.className = \"dg-dropdown__option-label-text\";\n        textSpan.title =this.params.option.dropdownOptionRendererParams.label;;\n        textSpan.textContent = this.params.option.dropdownOptionRendererParams.sentimentValue;\n\n        // Append elements to build the structure\n        valueContainer.appendChild(img);\n        valueContainer.appendChild(textSpan);\n        sentimentContainer.appendChild(headerSpan);\n        sentimentContainer.appendChild(valueContainer);\n        divText.appendChild(sentimentContainer);\n        label.appendChild(divText);\n\n        this.element = label\n        return this.element;\n    }\n\n    destroy() {\n        this.element.remove();\n    }\n}\n\nexport class AvatarIconRenderer {\n\tprivate params: any;\n\tinit(params: any): void {\n\t\tthis.params = params;\n\t}\n\tgetElement(): HTMLElement {\n\t\tconst div = document.createElement('div');\n\n    if (this.params.imageUrl) {\n        const img = document.createElement('img');\n        img.classList.add('dg-chip__thumbnail-img', 'chip-avatar');\n        img.src = this.params.imageUrl;\n        img.alt = 'Avatar';\n        div.appendChild(img);\n    }\n\n    return div.firstChild as HTMLElement;\n\t}\n\tdestroy(): void {}\n}\n\nexport class CollaboratorDropdownOptionCustomRenderer{\n    element !:  HTMLElement;\n    private params: any;\n   init(params:any) {\n      this.params = params;\n   }\n   getElement() {\n\n\tconst label = document.createElement(\"label\");\n    label.classList.add(\"dg-dropdown__option-label\");\n\n    // Create checkbox input\n    const checkbox = document.createElement(\"input\");\n    checkbox.type = \"checkbox\";\n    checkbox.classList.add(\"dg-dropdown__option-checkbox-input\");\n    checkbox.setAttribute(\"role\", \"checkbox\");\n    checkbox.setAttribute(\"aria-disabled\", \"false\");\n    // checkbox.setAttribute(\"aria-checked\", isChecked.toString());\n    checkbox.setAttribute(\"aria-label\", \"checkbox\");\n    checkbox.tabIndex = -1;\n\n    // Create custom checkbox style span\n    const customCheckbox = document.createElement(\"span\");\n    customCheckbox.classList.add(\"dg-dropdown__option-checkbox-input--custom\");\n    customCheckbox.style.setProperty(\"--checked-border-color\", \"black\");\n    customCheckbox.style.setProperty(\"--checked-fill-color\", \"red\");\n    customCheckbox.style.setProperty(\"--unchecked-border-color\", \"green\");\n\n    // Create container for name and image\n    const labelText = document.createElement(\"div\");\n    labelText.classList.add(\"dg-dropdown__option-label-text\");\n\n    const nameContainer = document.createElement(\"div\");\n    nameContainer.classList.add(\"zt-collaborator-sec\");\n\n    // Create image\n    const image = document.createElement(\"img\");\n    image.classList.add(\"zt-collaborator-img\");\n    image.src =  this.params.option.dropdownOptionRendererParams.imageURL;\n    image.id = \"image\";\n\n    // Create name wrapper\n    const nameWrapper = document.createElement(\"div\");\n    nameWrapper.classList.add(\"zt-collaborator__name-container\");\n\n    // Create name span\n    const nameSpan = document.createElement(\"span\");\n    nameSpan.classList.add(\"dg-dropdown__option-label-text\");\n    nameSpan.id = \"name\";\n    nameSpan.title = this.params.option.value;\n    nameSpan.textContent = this.params.option.value;\n\n    // Create email span\n    const emailSpan = document.createElement(\"span\");\n    emailSpan.classList.add(\"dg-dropdown__option-label-text\", \"zt-collaborator__email\");\n    emailSpan.id = this.params.option.dropdownOptionRendererParams.mailID;\n    emailSpan.textContent = this.params.option.dropdownOptionRendererParams.email;\n\n    // Append elements\n    nameWrapper.appendChild(nameSpan);\n    nameWrapper.appendChild(emailSpan);\n    nameContainer.appendChild(image);\n    nameContainer.appendChild(nameWrapper);\n    labelText.appendChild(nameContainer);\n    this.params.option.dropdownOptionRendererParams.isCheckboxNeeded &&  label.appendChild(checkbox);\n    this.params.option.dropdownOptionRendererParams.isCheckboxNeeded  && label.appendChild(customCheckbox);\n    label.appendChild(labelText);\n\n    return label;\n\n   }\n   destroy(){\n    this.element.remove();   \n   }\n}\n\nexport class PlusIconRenderer implements IRenderer{\n    private params : any;\n    private onPlusIconClick !: (ev: MouseEvent) => void;\n\n    init(params:any):void{\n        this.params = params;\n        this.onPlusIconClick = (ev : MouseEvent)=>{\n            ev.stopPropagation();\n            this.params.fieldCellEventHandler.startEditing(this.params.recordID, this.params.fieldID);\n        }\n    }\n    // getElement():HTMLElement{\n    //     const svg = `<div class=\"dg-plus-icon-inner\">\n    //                    <svg width=\"14px\" height=\"14px\" viewBox=\"-1 -1 15 15\" class=\"dg-plus-icon-svg\">\n    //                      <g data-name=\"Layer 2\"><g data-name=\"Fill Icon\"><path d=\"M10.5 5.75H7.25V2.5a.75.75 0 00-1.5 0v3.25H2.5a.75.75 0 000 1.5h3.25v3.25a.75.75 0 001.5 0V7.25h3.25a.75.75 0 000-1.5z\"></path><path fill=\"none\" d=\"M0 0h13v13H0z\"></path></g></g>        \n    //                   </svg>\n    //                 </div>`;\n    //     emptyElementHolder.innerHTML = svg;\n    //     const plusIcon = emptyElementHolder.firstChild as HTMLElement;\n    //     plusIcon.addEventListener('click', this.onPlusIconClick);\n    //     return plusIcon;\n    // }\n    getElement(): HTMLElement {\n        const plusIconWrapper = document.createElement('div');\n        plusIconWrapper.classList.add('dg-plus-icon-inner');\n    \n        const svgNS = 'http://www.w3.org/2000/svg';\n        const svg = document.createElementNS(svgNS, 'svg');\n        svg.setAttribute('width', '14px');\n        svg.setAttribute('height', '14px');\n        svg.setAttribute('viewBox', '-1 -1 15 15');\n        svg.classList.add('dg-plus-icon-svg');\n    \n        const g1 = document.createElementNS(svgNS, 'g');\n        g1.setAttribute('data-name', 'Layer 2');\n    \n        const g2 = document.createElementNS(svgNS, 'g');\n        g2.setAttribute('data-name', 'Fill Icon');\n    \n        const path1 = document.createElementNS(svgNS, 'path');\n        path1.setAttribute('d', 'M10.5 5.75H7.25V2.5a.75.75 0 00-1.5 0v3.25H2.5a.75.75 0 000 1.5h3.25v3.25a.75.75 0 001.5 0V7.25h3.25a.75.75 0 000-1.5z');\n    \n        const path2 = document.createElementNS(svgNS, 'path');\n        path2.setAttribute('fill', 'none');\n        path2.setAttribute('d', 'M0 0h13v13H0z');\n    \n        g2.append(path1, path2);\n        g1.appendChild(g2);\n        svg.appendChild(g1);\n        plusIconWrapper.appendChild(svg);\n    \n        plusIconWrapper.addEventListener('click', this.onPlusIconClick);\n    \n        // Add transition event handlers\n        plusIconWrapper.addEventListener('transitionstart', () => {\n            plusIconWrapper.style.pointerEvents = 'none';\n        });\n        \n        plusIconWrapper.addEventListener('transitionend', () => {\n            plusIconWrapper.style.pointerEvents = '';\n        });\n    \n        return plusIconWrapper;\n    }\n    \n    destroy(): void {\n    }\n}\n\nexport class AttachmentmentPlusIconRender implements IRenderer{\n    \n    private params : any;\n    private plusIconHolder !: HTMLElement;\n    init(params: object): void {\n        this.params = params;\n    }\n\n    // getElement(): HTMLElement {\n    //     const template = `<div class=\"dg-plus-icon-inner\">\n    //                             <svg width=\"14px\" height=\"14px\" viewBox=\"-1 -1 15 15\" class=\"dg-plus-icon-svg\">\n    //                                 <g data-name=\"Layer 2\"><g data-name=\"Fill Icon\"><path d=\"M10.5 5.75H7.25V2.5a.75.75 0 00-1.5 0v3.25H2.5a.75.75 0 000 1.5h3.25v3.25a.75.75 0 001.5 0V7.25h3.25a.75.75 0 000-1.5z\"></path><path fill=\"none\" d=\"M0 0h13v13H0z\"></path></g></g>        \n    //                             </svg>\n    //                             <span class=\"ZTCL-delay\">\n    //                                 <span class=\"ZT-circleLoader ZT-cmNone ZTCL-small\"></span>\n    //                             </span>\n    //                         </div>`\n    //     emptyElementHolder.innerHTML = template;\n    //     this.plusIconHolder = emptyElementHolder.firstChild as HTMLElement;\n    //     this.addEventListeners();\n    //     return this.plusIconHolder;\n    // }\n    getElement(): HTMLElement {\n        const plusIconHolder = document.createElement('div');\n        plusIconHolder.classList.add('dg-plus-icon-inner');\n    \n        // Create SVG\n        const svgNS = 'http://www.w3.org/2000/svg';\n        const svg = document.createElementNS(svgNS, 'svg');\n        svg.setAttribute('width', '14px');\n        svg.setAttribute('height', '14px');\n        svg.setAttribute('viewBox', '-1 -1 15 15');\n        svg.classList.add('dg-plus-icon-svg');\n    \n        const g1 = document.createElementNS(svgNS, 'g');\n        g1.setAttribute('data-name', 'Layer 2');\n    \n        const g2 = document.createElementNS(svgNS, 'g');\n        g2.setAttribute('data-name', 'Fill Icon');\n    \n        const path1 = document.createElementNS(svgNS, 'path');\n        path1.setAttribute('d', 'M10.5 5.75H7.25V2.5a.75.75 0 00-1.5 0v3.25H2.5a.75.75 0 000 1.5h3.25v3.25a.75.75 0 001.5 0V7.25h3.25a.75.75 0 000-1.5z');\n    \n        const path2 = document.createElementNS(svgNS, 'path');\n        path2.setAttribute('fill', 'none');\n        path2.setAttribute('d', 'M0 0h13v13H0z');\n    \n        g2.append(path1, path2);\n        g1.appendChild(g2);\n        svg.appendChild(g1);\n        plusIconHolder.appendChild(svg);\n    \n        // Create span container\n        const spanDelay = document.createElement('span');\n        spanDelay.classList.add('ZTCL-delay');\n    \n        const spanLoader = document.createElement('span');\n        spanLoader.classList.add('ZT-circleLoader', 'ZT-cmNone', 'ZTCL-small');\n    \n        spanDelay.appendChild(spanLoader);\n        plusIconHolder.appendChild(spanDelay);\n    \n        this.plusIconHolder = plusIconHolder;\n        this.addEventListeners();\n    \n        return this.plusIconHolder;\n    }\n    \n\n    addEventListeners(): void {\n        // const svg                = this.plusIconHolder.querySelector('.dg-plus-icon-svg');\n        // const parentElement      = this.params.parentElement;\n        // const onAttachmentInsert = () => {};\n        // const loaderCallbacks    = {\n        //     hideLoader : () => {\n        //         const plusIcon = parentElement;\n        //         plusIcon?.classList.remove('ZTCL-active');\n        //     },\n        //     showLoader : () => {\n        //         const plusIcon = parentElement;\n        //         plusIcon?.classList.add('ZTCL-active');\n        //     },\n        //     setExternalDialog : () => {}\n        // }\n        const onPlusIconClick = (ev : MouseEvent)=>{\n            const {recordID, fieldID, fieldCellEventHandler} = this.params.params;\n            // const attachFile \t= new AttachFile(this.params.baseID, this.params.tableID, this.params.viewID, this.params.fieldID, this.params.recordID, loaderCallbacks);\n            // attachFile.open(onAttachmentInsert);\n            // attachFile.activateAttachMethod('byFile'); // No I18N\n            fieldCellEventHandler.startEditing(recordID, fieldID);\n        }\n        // svg && svg.addEventListener('click', onPlusIconClick as any);\n        this.plusIconHolder.addEventListener('click', onPlusIconClick as any);\n    }\n\n    destroy(): void {\n        \n    }\n}\n\nexport class RatingIconRenderer {\n    private params: any;\n\n    init(params: any): void {\n        this.params = params;\n    }\n\n    getElement(): HTMLElement {\n        const svgIcon = this.params.icon as SVGElement;\n        \n        // Clone the SVG element deeply to include all child nodes\n        const clonedSvg = svgIcon.cloneNode(true) as SVGElement;\n        \n        // Create a container and append the cloned SVG\n        const container = document.createElement('div');\n        container.appendChild(clonedSvg);\n        \n        return container.firstChild as HTMLElement;  // Return the cloned SVG\n    }\n\n    destroy(): void {\n        // Cleanup logic if necessary\n    }\n}\n\n\n\nexport class AttachmentImageRenderer {\n    public  params        : any;\n    private element !     : HTMLDivElement;\n    public  expandIcon  ! : HTMLElement | null;\n\n    init(params: any) : void{\n        this.params = params;\n    }\n    createElement() : void{\n        const rendererParams            = this.params.option.selectedValueRendererParams;\n        const {previewUrl , resourceId, id} = rendererParams.currentFile;\n        const element                   = document.createElement('div');\n        const img                       = document.createElement('img');\n              img.src                   = previewUrl;\n              img.setAttribute('srcID', id);\n\n       img.addEventListener(\"error\", function onError() {\n            img.removeEventListener(\"error\", onError);\n            img.src = \"../../../images/Portal/Griddefault.jpg\";\n        });\n        element.classList.add('ZF-optionText', 'ZF-attachmentOption');\n        element.appendChild(img);\n\n        this.element = element;\n    }\n\n    getElement() : HTMLElement {\n        return this.element;\n    }\n\n    destroy() : void {\n        this.element.remove();\n    }\n}\n\nexport class EllipsesRenderer implements IRenderer {\n    private params !: any;\n    element !: HTMLElement;\n\n    chipCount !: HTMLElement;\n\n    init(params: any): void {\n        this.params = params;\n    }\n    getElement(): HTMLElement {\n        const chipRoot = document.createElement('div');\n        chipRoot.classList.add(\n            'dg-chip__root',\n            'dg-chip__root--readonly',\n            'dg-chip__ellipse-icon',\n            'dg-chip--filled',\n            'dg-chip--default'\n        );\n        chipRoot.setAttribute('tabindex', '-1');\n        chipRoot.setAttribute('role', 'status');\n        chipRoot.setAttribute('aria-disabled', 'false');\n        chipRoot.setAttribute('aria-readonly', 'true');\n        // chipRoot.style.backgroundColor = '#858585';\n    \n        const labelWrapper = document.createElement('div');\n        labelWrapper.classList.add('dg-chip__label-wrapper');\n        labelWrapper.setAttribute('ref', 'chip-label');\n    \n        const labelSpan = document.createElement('span');\n        labelSpan.classList.add('dg-chip__label');\n    \n        const svgNS = 'http://www.w3.org/2000/svg';\n        const svg = document.createElementNS(svgNS, 'svg');\n        svg.setAttribute('width', '12');\n        svg.setAttribute('height', '10');\n        svg.setAttribute('viewBox', '-2 0 4 10');\n        svg.classList.add('dg-chip__ellipse-svg');\n        svg.style.transform = 'rotate(90deg)';\n    \n        const g = document.createElementNS(svgNS, 'g');\n        g.setAttribute('fill-rule', 'evenodd');\n    \n        const circle1 = document.createElementNS(svgNS, 'circle');\n        circle1.setAttribute('cx', '1');\n        circle1.setAttribute('cy', '1');\n        circle1.setAttribute('r', '1');\n    \n        const circle2 = document.createElementNS(svgNS, 'circle');\n        circle2.setAttribute('cx', '1');\n        circle2.setAttribute('cy', '5');\n        circle2.setAttribute('r', '1');\n    \n        const circle3 = document.createElementNS(svgNS, 'circle');\n        circle3.setAttribute('cx', '1');\n        circle3.setAttribute('cy', '9');\n        circle3.setAttribute('r', '1');\n    \n        g.append(circle1, circle2, circle3);\n        svg.appendChild(g);\n\n        labelSpan.appendChild(svg);\n        labelWrapper.appendChild(labelSpan);\n        chipRoot.appendChild(labelWrapper);\n        \n        this.element = chipRoot;\n        \n        \n        this.chipCount = document.createElement('div');\n        this.chipCount.classList.add('dg-chip-count');\n        this.chipCount.classList.add('dg-chip__root');\n        \n        this.chipCount.textContent = this.params.chipCount ? `+${this.params.chipCount}` : '+0';\n        this.params.isSelected ? this.addEvent() : this.removeEvent();\n        return this.chipCount;\n    }\n    \n    addEvent():void{\n        this.chipCount.addEventListener('click', this.params.handleClickForEllipses);\n    }\n    removeEvent():void{\n        this.chipCount.removeEventListener('click', this.params.handleClickForEllipses);\n    }\n    destroy(): void {\n        this.chipCount.remove();\n    }\n}\n\n\n\n\nexport function getAttachmentExpandIcon(callback: (ev: MouseEvent) => void): HTMLElement {\n    const expandIconTemplate = getTemplate('ZTCG-expandIconTemplate') as HTMLTemplateElement;\n    const expandIcon = expandIconTemplate.querySelector('.zt-expand-icon') as HTMLDivElement;\n    expandIcon.addEventListener('click', callback);\n    return expandIcon;\n}\n\n\n\nexport const getBubbleUrlElement = (label : string, href : string) : HTMLElement => {\n    const labelAnchor = document.createElement(\"a\");\n    labelAnchor.target = \"_blank\";\n    labelAnchor.rel = 'noopener noreferrer';\n    labelAnchor.className = \"dg-chip__label\";\n    labelAnchor.href = href;\n    labelAnchor.textContent = label;\n    return labelAnchor;\n}","import { AttachmentmentPlusIconRender, PlusIconRenderer } from \"./FieldComponentRenderer\";\n\nexport const chipMinWidth = 40;\nexport const singleDigitEllipsisChipWidth = 40;\nexport const doubleDigitEllipsisChipWidth = 45;\nexport const bubbleMarginX = 3;\nexport const defaultPlusIconWidth = 23; //including margin\n\nexport const HOVER_STATE_DELAY = 600; // in milliseconds\n\n\nexport const hoverStateLastChipWrapper = document.createElement('div');\nhoverStateLastChipWrapper.classList.add('dg-chip-count-plus-wrapper','ZT-dflex','ZT-dflexAligncenter'); \n\nexport const hoverStateEllipsisWrapper = document.createElement('div');\nhoverStateEllipsisWrapper.classList.add('dg-count-plus-wrapper','ZT-dflex','ZT-dflexAligncenter'); \n\n\nexport const getHoverStatePlusIcon = (startEditingCallback: (ev : MouseEvent)=>void = ()=>{})=>{\n    const plusIconElement = document.createElement('div');\n    plusIconElement.classList.add('dg-plus-icon');\n    const plusIcon = new PlusIconRenderer();\n    plusIcon.init({\n        fieldCellEventHandler : {\n            startEditing : ()=>{}\n        }\n    });\n    plusIconElement.appendChild(plusIcon.getElement());\n    plusIconElement.addEventListener('mousedown', startEditingCallback);\n    return plusIconElement;\n}\n\nexport const getHoverStatePlusIconForAttachment = (startEditingCallback: (ev : MouseEvent)=>void = ()=>{})=>{\n    const plusIconElement = document.createElement('div');\n    plusIconElement.classList.add('dg-plus-icon');\n    const plusIcon = new AttachmentmentPlusIconRender();\n    plusIcon.init({\n        params : {}\n    });\n    plusIconElement.appendChild(plusIcon.getElement());\n    plusIconElement.addEventListener('mousedown', startEditingCallback);\n    return plusIconElement;\n}\n\nexport const getHoverStateEllipsisChip = (startEditingCallback: (ev : MouseEvent)=>void = ()=>{})=>{\n    const ellipsisChipElement = document.createElement('div');\n    ellipsisChipElement.classList.add('dg-chip-count');\n    ellipsisChipElement.classList.add('dg-chip__root');\n    ellipsisChipElement.addEventListener('mousedown', startEditingCallback);\n    return ellipsisChipElement;\n}\n\nexport function binarySearchLastChip(chips: NodeListOf<Element>, cellBottom: number) {\n\tlet start = 0;\n\tlet end = chips.length - 1;\n\tlet mid = Math.floor((start + end) / 2);\n\twhile (start <= end) {\n\t\tmid = Math.floor((start + end) / 2);\n        const chipBottom = chips[mid].getBoundingClientRect().bottom || 0;\n        \n\t\tif (mid === chips.length - 1) {\n\t\t\tif (chipBottom <= cellBottom) return mid;\n\t\t\tend = mid - 1;\n\t\t\tcontinue;\n\t\t}\n\t\tconst nextChipBottom = chips[mid + 1].getBoundingClientRect().bottom;\n\t\tif(chipBottom <= cellBottom && nextChipBottom > cellBottom){\n\t\t\treturn mid;\n\t\t}\n\t\telse if(chipBottom <= cellBottom){\n\t\t\tstart = mid + 1;\n\t\t}\n\t\telse{\n\t\t\tend = mid - 1;\n\t\t}\n\t}\n\treturn -1;\n}\n\n\nexport function reCalculateAvailableMetas(chips: NodeListOf<Element>, lastChipIndex: number, ellipsisChipWidth: number, plusIconWidth: number, cellBoundary: number, lineWrap : boolean = true) {\n    let lastChipWidth = 0;\n    let initialLastChipTop = chips[lastChipIndex].getBoundingClientRect().top;\n    let lastChipWidthChangeNeeded = false;\n    const initialEllipsisChipCount = (chips.length - 1) - lastChipIndex;\n    const isRTL = (window as any).RTL ?? false;\n    \n    if(lastChipIndex != -1){\n        let conditionMet = false;\n        while(!conditionMet){\n            const chip = chips[lastChipIndex];\n            const chipRect = chip.getBoundingClientRect();\n            if (isRTL) {\n                const availableWidth = cellBoundary + ellipsisChipWidth + plusIconWidth;\n                if(chipRect.left - chipMinWidth > availableWidth || lastChipIndex == 0){\n                    if(chipRect.left - availableWidth < chipMinWidth){\n                        lastChipWidth = chipMinWidth;\n                        lastChipWidthChangeNeeded = true;\n                        if (lastChipIndex === 0) {\n                            break;\n                        }\n                    }\n                    else if(availableWidth < chipRect.right + bubbleMarginX){\n                        lastChipWidth = chipRect.left - availableWidth - bubbleMarginX;\n                        lastChipWidthChangeNeeded = true;\n                        if (lastChipIndex === 0) {\n                            break;\n                        } \n                    }\n                    else{\n                        lastChipWidth = chipRect.width;\n                    }\n                    conditionMet = true;\n                }\n                else if(chipRect.top < initialLastChipTop){\n                    conditionMet = true;\n                }\n                else{\n                    lastChipIndex--;\n                }\n            } else {\n                const availableWidth = cellBoundary - ellipsisChipWidth - plusIconWidth; \n                if(chipRect.left + chipMinWidth < availableWidth || lastChipIndex == 0){\n                    const lastBubbleExceeds = lineWrap ?  availableWidth < chipRect.right + bubbleMarginX : availableWidth < chipRect.right;\n                    if(availableWidth - chipRect.left < chipMinWidth){\n                        lastChipWidth = chipMinWidth;\n                        lastChipWidthChangeNeeded = true;\n                        if (lastChipIndex === 0) {\n                            break;\n                        }\n                    }\n                    else if(lastBubbleExceeds){\n                        lastChipWidth = availableWidth - chipRect.left - bubbleMarginX;\n                        lastChipWidthChangeNeeded = true;\n                        if (lastChipIndex === 0) {\n                            break;\n                        } \n                    }\n                    else{\n                        lastChipWidth = chipRect.width;\n                    }\n                    conditionMet = true;\n                }\n                else if(chipRect.top < initialLastChipTop){\n                    conditionMet = true;\n                }\n                else{\n                    lastChipIndex--;\n                }\n            }\n        }\n    }\n\n    const ellipsisCountChanged = (chips.length - 1) - lastChipIndex != initialEllipsisChipCount;\n    if((lastChipIndex > 0 && !lastChipWidthChangeNeeded) || ellipsisCountChanged){\n        if(ellipsisCountChanged){\n            ellipsisChipWidth = ellipsisCountChanged ? (initialEllipsisChipCount > 9 ? doubleDigitEllipsisChipWidth : singleDigitEllipsisChipWidth) : ellipsisChipWidth;\n            return reCalculateAvailableMetas(chips, lastChipIndex, ellipsisChipWidth, plusIconWidth, cellBoundary);\n        }\n    }\n    return {\n        lastChipWidth,\n        lastChipIndex,\n        ellipsisChipCount : (chips.length - 1) - lastChipIndex,\n        lastChipWidthChangeNeeded : lastChipWidthChangeNeeded\n    }\n}\n\n\nexport function findEllipsisChipMeta(cellElement: HTMLElement, chips: NodeListOf<Element>, computedCellValueStyle : CSSStyleDeclaration, optionsCount : number, hasPlusIcon : boolean, defaultEllipsisChipWidth : number, defaultPlusIconWidth : number, lineWrap : boolean = true){\n    const parentElementDimension = cellElement.getBoundingClientRect();\n    const lastIndex              = chips.length - 1;\n    const isRTL = (window as any).RTL ?? false;\n    \n    // Calculate cell boundaries based on RTL layout\n    let   cellRight   = parentElementDimension.right - parseInt(computedCellValueStyle.paddingLeft);\n          cellRight  -= lineWrap ? parseInt(computedCellValueStyle.paddingRight) : 0;\n    const cellLeft    = parentElementDimension.left + parseInt(computedCellValueStyle.paddingLeft) + parseInt(computedCellValueStyle.paddingRight);\n    const cellBottom  = parentElementDimension.bottom - parseInt(computedCellValueStyle.paddingTop);\n\n\n\n    const isHeightNotExceeds = chips[lastIndex].getBoundingClientRect().bottom <= cellBottom;\n\n    let   lastChipIndex      = isHeightNotExceeds ? lastIndex : binarySearchLastChip(chips, cellBottom);\n\n    let ellipsisChipWidth  = isHeightNotExceeds ? 0 : defaultEllipsisChipWidth;\n    const plusIconWidth      = hasPlusIcon ? defaultPlusIconWidth : 0;\n\n    const cellBoundary = isRTL ? cellLeft : cellRight;\n    let calculatedMetas = reCalculateAvailableMetas(chips, lastChipIndex, ellipsisChipWidth, plusIconWidth, cellBoundary, lineWrap);\n    if(calculatedMetas.lastChipWidthChangeNeeded){\n        chips[calculatedMetas.lastChipIndex].style.width = `${calculatedMetas.lastChipWidth}px`;\n    }\n    return calculatedMetas;\n}","import { debounce } from '../../../_auxillaries/Debounce';\nimport { KeyBoardEvents } from '../../../BrowserEvents/Keyboard/KeyContextMapping.js';\nimport { ATTACHMENT } from \"../../../Constants/FieldTypes.js\";\nimport { ATTACHMENT_INLINE_CONFIG } from \"../../../View/GridView/FCComponents/Interface/InlineFieldConfigInterface\";\nimport { CellInlineComponent } from \"../../CellInlineComponent\";\nimport { defaultPlusIconWidth, doubleDigitEllipsisChipWidth, HOVER_STATE_DELAY, hoverStateEllipsisWrapper, hoverStateLastChipWrapper, singleDigitEllipsisChipWidth } from '../../FieldComponentHoverStateUtils';\n\nimport { FIELD_TYPE_CSS_CLASSNAME } from \"../../FieldTypeConstants\";\nimport { ICellComponent } from \"../../Interface/ICellComponent\";\n\nconst globalT = globalThis as any;\n\nconst KeyEvents          = KeyBoardEvents.Events as any;\nconst Key                = KeyEvents.Key;\n\nexport class AttachmentInlineComponent extends CellInlineComponent implements ICellComponent {\n    static FALLBACK_IMAGE_URL = \"../../../images/Portal/Griddefault.jpg\";\n\n    public component       : any;\n    public config          : ATTACHMENT_INLINE_CONFIG\n    public parentDOM       : HTMLElement;\n    public expandIcon      !: HTMLElement | null;\n    public selectionState  : boolean = false;\n    public element !       : HTMLElement;\n    public eventListener   : any = {};\n    public hoverState      : boolean = false;\n    private debouncedCellWidthChange: (width: number) => void = ()=>{};\n\n    constructor(config : ATTACHMENT_INLINE_CONFIG, parentDOM : HTMLElement) {\n        super();\n        this.component      =   null;\n        this.config         =   config;\n        this.parentDOM      =   parentDOM;\n        this.selectionState = this.config.isCellFocused;\n        this.constructComponent();\n        this.addCSSClass();\n    }\n\n    addCSSClass(): void {\n        const className = FIELD_TYPE_CSS_CLASSNAME[ATTACHMENT];\n        this.parentDOM.classList.add(className);\n    }\n\n    removeCSSClass(): void {\n        const className = FIELD_TYPE_CSS_CLASSNAME[ATTACHMENT];\n        this.parentDOM.classList.remove(className);\n    }\n\n    constructComponent () : void{\n        this.debouncedCellWidthChange = debounce((width : number)=>{\n            const isWidthChanged = width !== this.config.cellWidth;\n            if(isWidthChanged) {\n                this.config.cellWidth = width;\n                if(!this.selectionState){\n                    this.component?.destroy();\n                    this.component = null;\n                    const {attachmentSize, cellWidth, renderConfig} = this.config;\n                    const {cellElement, images}                     = renderConfig;\n                    const visibleAttachmentCount                    = Math.floor(cellWidth / attachmentSize);\n                    const DGRendererConfig                          = {\n                        cellData     : images.slice(0, visibleAttachmentCount),\n                        parentElement: this.parentDOM,\n                        cellElement  : cellElement,\n                        fallBackURL  : AttachmentInlineComponent.FALLBACK_IMAGE_URL\n                    }\n                    this.component = new globalT.DataGrid.ImageRenderingComponent();\n                    this.component.init(DGRendererConfig);\n                    this.element = this.component.getElement();\n                }\n            }\n        }, 0)\n\n        this.selectionState ? this.createSelectionComponent() : this.createRenderingComponent();\n    }\n\n    createRenderingComponent(){\n        const renderConfig                = this.config.renderConfig;\n        const {cellElement, images}       = renderConfig;\n        const {attachmentSize, cellWidth} = this.config;\n        const visibleAttachmentCount      = Math.floor(cellWidth / attachmentSize);\n        const DGRendererConfig            = {\n            cellData     : images.slice(0, visibleAttachmentCount),\n            parentElement: this.parentDOM,\n            cellElement  : cellElement,\n            fallBackURL  : AttachmentInlineComponent.FALLBACK_IMAGE_URL\n        }\n\n        cellElement.classList.add('zt-attachment-cell');\n        this.component = new globalT.DataGrid.ImageRenderingComponent();\n        this.component.init(DGRendererConfig);\n        this.element = this.component.getElement();\n\n        let   timerId : any = null;\n        this.eventListener.hoverState_mouseEnter = {\n            callBack : null as any,\n            element  : cellElement\n        };\n        this.eventListener.hoverState_mouseLeave = {\n            callBack : null as any,\n            element  : cellElement\n        };\n        this.eventListener.hoverState_mouseEnter.callBack = () => {\n            timerId = setTimeout(() => {\n                const {hoverStateEllipsisChip,hoverStatePlusIcon} = this.config;\n                if(this.selectionState == false && this.hoverState == false && timerId != null && this.hoverState == false) {\n                    const previewImages = cellElement.querySelectorAll('.ZF-attachmentOption');\n                    hoverStateLastChipWrapper.textContent = '';\n                    hoverStateEllipsisWrapper.textContent = '';\n                    this.parentDOM.append(hoverStateLastChipWrapper);\n                    hoverStateLastChipWrapper.append(hoverStateEllipsisWrapper);\n                    if(images.length != 0 ){\n                        \n                        const ellipsisChipCount = images.length - visibleAttachmentCount;\n                        const plusIconWidth     = hoverStatePlusIcon ? defaultPlusIconWidth : 0;\n                        const ellipsisChipWidth = ellipsisChipCount > 9 ? doubleDigitEllipsisChipWidth : singleDigitEllipsisChipWidth;\n                        const availableWidth    = cellWidth - ellipsisChipWidth - plusIconWidth;\n    \n                        const renderableAttachmentCount = Math.floor(availableWidth / attachmentSize);\n                        \n                        for(let i = renderableAttachmentCount; i <= previewImages.length - 1; i++){\n                            const previewImage = previewImages[i];\n                            previewImage.remove();\n                        }\n                        const ellipsisChipCountFinal = images.length - renderableAttachmentCount;\n                        hoverStateEllipsisChip.textContent = `+${ellipsisChipCountFinal}`;\n                        ellipsisChipCountFinal > 0 && hoverStateEllipsisWrapper.append(hoverStateEllipsisChip);\n                    }\n\n                    hoverStatePlusIcon && hoverStateEllipsisWrapper.append(hoverStatePlusIcon);\n                    timerId = null;\n                    this.hoverState = true;\n                }\n            }, HOVER_STATE_DELAY);\n        }\n\n\n        this.eventListener.hoverState_mouseLeave.callBack = () => {\n            this.eventListener.hoverState_mouseEnter.element.removeEventListener('mouseenter', this.eventListener.hoverState_mouseEnter.callBack);\n            this.eventListener.hoverState_mouseLeave.element.removeEventListener('mouseleave', this.eventListener.hoverState_mouseLeave.callBack);\n            clearTimeout(timerId);\n            timerId         = null;\n            this.hoverState = false;\n            if(this.selectionState == false) {\n                this.destroyComponent();\n                this.createRenderingComponent();\n            }\n        }\n\n\n        this.eventListener.hoverState_mouseEnter.element.addEventListener('mouseenter', this.eventListener.hoverState_mouseEnter.callBack);\n\n        this.eventListener.hoverState_mouseLeave.element.addEventListener('mouseleave', this.eventListener.hoverState_mouseLeave.callBack);\n    }\n\n    onCellWidthChange(width: number): void {\n        this.debouncedCellWidthChange(width);\n    }\n\n    createSelectionComponent(){\n        const selectionConfig = this.config.getSelectionConfig();\n        const DG_Components   = globalT.DG_Components;\n        const className       = FIELD_TYPE_CSS_CLASSNAME[ATTACHMENT];\n        const isSingleSelectedValue = selectionConfig.selectedOptions.length === 1;\n        this.component = new DG_Components.Select(selectionConfig);\n        this.element   = this.component.api.getElement();\n        this.parentDOM.classList.add(className);\n        this.element.classList.toggle('zt-chip-single', isSingleSelectedValue);\n\n    }\n\n    enableSelection() {\n        const selectionParams ={\n            component : this\n        }\n        this.destroyComponent();\n        this.addCSSClass();\n        this.createSelectionComponent();\n        this.parentDOM.append(this.element as HTMLElement);\n        this.selectionState = true;\n        this.hoverState     = false;\n        this.config.onSelection(selectionParams);\n    }\n\n    disableSelection() {\n        const deSelectionParams ={\n            component : this\n        }\n        this.config.onDeSelection(deSelectionParams);\n        this.destroyComponent();\n        this.addCSSClass();\n        this.createRenderingComponent();\n        this.selectionState = false;\n    }\n\n    afterGuiAttached() {\n        this.component.render();\n    }\n \n    showEllipsis() {\n        this.component.api?.updateProperties({useElipses : true});\n    }\n\n    hideEllipsis() {\n        // this.component.api.updateProperties({useElipses : false});\n    }\n\n    getEllipsisIcon() {\n        // return this.component.api.getEllipsesIcon();\n    }\n\n    showPlusIcon() {\n        this.component.api?.updateProperties({enablePlusIcon : true});\n    }\n\n    hidePlusIcon() {\n        // this.component.api.updateProperties({enablePlusIcon : false});\n    }\n\n    destroyComponent(): void {\n        if (this.component) {\n            if(this.selectionState){\n                this.component.api.destroy();\n            } else {\n                this.component.destroy();\n                this.component = null;\n            }\n        }\n\n        const renderConfig                = this.config.renderConfig;\n        const {cellElement}       = renderConfig;\n        cellElement && cellElement.classList.remove('zt-attachment-cell');\n\n        this.parentDOM.textContent = ''; // temporary fix for the issue of the checkbox not being removed from the DOM\n        this.removeCSSClass();\n\n        this.eventListener.hoverState_mouseEnter?.element.removeEventListener('mouseenter', this.eventListener.hoverState_mouseEnter.callBack);\n        this.eventListener.hoverState_mouseLeave?.element.removeEventListener('mouseleave', this.eventListener.hoverState_mouseLeave.callBack);\n    }\n    getElement() : HTMLElement | null{\n        return this.element;\n    }\n}\n\n","// import { DCFieldComponents } from \"../../../../FieldComponents/fieldComponents\";\nimport { AUTO_NUMBER } from \"../../../Constants/FieldTypes.js\";\nimport { AUTO_NUMBER_INLINE_CONFIG } from \"../../../View/GridView/FCComponents/Interface/InlineFieldConfigInterface.js\";\nimport { CellInlineComponent } from \"../../CellInlineComponent\";\nimport { FIELD_TYPE_CSS_CLASSNAME } from \"../../FieldTypeConstants\";\nimport { ICellComponent } from \"../../Interface/ICellComponent\";\nconst globalT = globalThis as any;\n\nexport class AutoNumberInlineComponent extends CellInlineComponent implements ICellComponent {\n    public component : any;\n    public config    : AUTO_NUMBER_INLINE_CONFIG\n    public parentDOM : HTMLElement\n    public selectionState : boolean = false;\n    public element ! : HTMLElement;\n\n    constructor(config : AUTO_NUMBER_INLINE_CONFIG, parentDOM : HTMLElement) {\n        super();\n        const defaultConfig = {step : 0};\n\n        this.component = null;\n        this.config    = {...defaultConfig, ...config};\n        this.parentDOM = parentDOM;\n        this.selectionState = this.config.isCellFocused;\n        this.constructComponent();\n    }\n\n    addCSSClass() : void {\n        const className = FIELD_TYPE_CSS_CLASSNAME[AUTO_NUMBER];\n        this.parentDOM.classList.add(className);\n    }\n\n    removeCSSClass() : void {\n        const className = FIELD_TYPE_CSS_CLASSNAME[AUTO_NUMBER];\n        this.parentDOM.classList.remove(className);\n    }\n\n    constructComponent () {\n        this.selectionState ? this.createSelectionComponent() : this.createRenderingComponent();\n    }\n\n    createRenderingComponent(){\n        const renderConfig = this.config.renderConfig;\n        const DGRendererConfig = {\n            cellData : renderConfig.value,\n            parentElement : this.parentDOM,\n            cellElement   : renderConfig.cellElement,\n        }\n        this.component = new globalT.DataGrid.TextRenderingComponent();\n        this.component.init(DGRendererConfig);\n        this.element = this.component.getElement();\n        this.addCSSClass();\n\n    }\n\n    createSelectionComponent(){\n        const selectionConfig = this.config.getSelectionConfig();\n        const DG_Components = globalT.DG_Components;\n        this.component = new DG_Components.RenderMultilineComponent(selectionConfig);\n        this.element = this.component.api.getElement();\n        this.addCSSClass();\n\n    }\n\n    enableSelection() {\n        this.destroyComponent();\n        this.createSelectionComponent();\n        this.parentDOM.append(this.element);\n        this.selectionState = true;\n    }\n\n    disableSelection() {\n        this.destroyComponent();\n        this.createRenderingComponent();\n        this.selectionState = false;\n    } \n\n    destroyComponent(): void {\n        if (this.component) {\n            this.removeCSSClass();\n            this.selectionState ? this.component.api.destroy() : this.component.destroy();\n        }\n    }\n\n    getElement() {\n        return this.element;\n    }\n}","import { CHECKBOX } from \"../../../Constants/FieldTypes.js\";\nimport { CHECKBOX_INLINE_CONFIG } from \"../../../View/GridView/FCComponents/Interface/InlineFieldConfigInterface\";\nimport { CellInlineComponent } from \"../../CellInlineComponent\";\nimport { FIELD_TYPE_CSS_CLASSNAME } from \"../../FieldTypeConstants\";\nimport { ICellComponent } from \"../../Interface/ICellComponent\";\nconst globalT = globalThis as any;\n\nexport class CheckboxInlineComponent extends CellInlineComponent implements ICellComponent {\n    // private component       : typeof DCFieldComponents.Checkbox.prototype | null\n    public component       : any\n    public config          : CHECKBOX_INLINE_CONFIG\n    public selectionState  : boolean = false;\n    public element !       : HTMLElement;\n\n    constructor(config : CHECKBOX_INLINE_CONFIG, parentDOM : HTMLElement) {\n        super();\n        this.component      =   null;\n        this.config         =   config;\n        this.parentDOM      =   parentDOM;\n\n        this.constructComponent();\n        this.addCSSClass();\n        // this.addListener();\n    }\n\n    constructComponent () {\n        this.selectionState = this.config.isCellFocused;\n        this.selectionState ? this.createSelectionComponent() : this.createRenderingComponent();\n    }\n\n    createRenderingComponent(){\n        const renderConfig     = this.config.renderConfig;\n        const DGRendererConfig = {\n            value         : renderConfig.value,\n            parentElement : this.parentDOM,\n            checkedIcon   : renderConfig.checkedIcon?.(),\n            uncheckedIcon : renderConfig.uncheckedIcon?.(),\n            onChange      : renderConfig.onclick,\n            cellElement   : renderConfig.cellElement,\n            readonly      : renderConfig.readonly,\n        }\n        this.component = new globalT.DataGrid.CheckboxRenderingComponent();\n        this.component.init(DGRendererConfig);\n        this.element = this.component.getElement();\n\n        const componentElement = this.parentDOM.firstElementChild;\n        !renderConfig.readonly && componentElement?.addEventListener('mousedown', ()=>{\n            const params = {\n                state : !this.component.isChecked(),\n            }\n            renderConfig.onclick(params);\n        }); \n    }\n\n    createSelectionComponent(){\n        const selectionConfig = this.config.getSelectionConfig();\n        const DG_Components = globalT.DG_Components;\n        this.component = new DG_Components.Checkbox(selectionConfig);\n        this.element = this.component.api.getElement();\n    }\n\n    addCSSClass() : void {\n        const className = FIELD_TYPE_CSS_CLASSNAME[CHECKBOX];\n        this.parentDOM.classList.add(className);\n        this.parentDOM.style.setProperty('--ratingChecked', `#${this.config.color?.full}`);\n        // this.parentDOM.style.setProperty('--field-checbox-unchecked-color', this.config.color.emty);   \n    }\n\n    removeCSSClass() : void {\n        const className = FIELD_TYPE_CSS_CLASSNAME[CHECKBOX];\n        this.parentDOM.classList.remove(className);\n        this.parentDOM.style.removeProperty('--ratingChecked');\n        // this.parentDOM.style.removeProperty('--field-checbox-unchecked-color');\n    }\n\n    addListener() {\n        this.parentDOM.addEventListener('focusin', () => {\n            const { cellElement } = this.config.renderConfig;\n            cellElement.focus();\n        });\n    }\n\n    enableSelection() {\n        this.destroyComponent();\n        this.addCSSClass();\n        this.createSelectionComponent();\n        this.parentDOM.append(this.element);\n        this.selectionState = true;\n    }\n\n    disableSelection() {\n        this.destroyComponent();\n        this.addCSSClass();\n        this.createRenderingComponent();\n        this.selectionState = false;\n    } \n    \n    destroyComponent(): void {\n        if (this.component) {\n            this.selectionState ? this.component.api.destroy() : this.component.destroy();\n        }\n        this.parentDOM.textContent = ''; // temporary fix for the issue of the checkbox not being removed from the DOM\n        this.removeCSSClass();\n    }\n\n   \n    getElement() {\n        return this.element;\n    }\n}","import { COLLABORATOR_CLIENT } from '../../../../Constants/FieldTypes.js';\nimport { SINGLE_COLLABORATOR_INLINE_CONFIG } from '../../../../View/GridView/FCComponents/Interface/InlineFieldConfigInterface';\nimport { CellInlineComponent } from '../../../CellInlineComponent';\nimport { FIELD_TYPE_CSS_CLASSNAME } from '../../../FieldTypeConstants';\nimport { ICellComponent } from '../../../Interface/ICellComponent';\nconst globalT = globalThis as any;\n\n\nexport function getAvatarIcon(imageUrl : string) : HTMLElement | null {\n    if (imageUrl) {\n        const img = document.createElement('img');\n        img.classList.add('dg-chip__thumbnail-img', 'chip-avatar');\n        img.src = imageUrl;\n        img.alt = 'Avatar';\n        return img;\n    }\n    return null;\n}\n\n\n\n\nexport class SingleCollaboratorInlineComponent extends CellInlineComponent implements ICellComponent{\n    public config          : SINGLE_COLLABORATOR_INLINE_CONFIG\n    public parentDOM       : HTMLElement\n    public selectionState  : boolean = false;\n    element !              : HTMLElement;\n\n    params          : any\n    handleClickBound: EventListener | null = null;\n    private initialSelectionEvent !: null;\n\n    constructor(config : SINGLE_COLLABORATOR_INLINE_CONFIG, parentDOM : HTMLElement) {\n        super();\n        this.component      =   null;\n        this.config         =   config;\n        this.parentDOM      =   parentDOM;\n        this.selectionState = this.config.isCellFocused;\n        this.constructComponent();\n        this.addCSSClass();\n    }\n\n    addCSSClass(): void {\n        const className = FIELD_TYPE_CSS_CLASSNAME[COLLABORATOR_CLIENT];\n        this.parentDOM.classList.add(className);\n        this.parentDOM.classList.add('dg-singleselect__root');\n    }\n\n    constructComponent () {\n        this.selectionState ? this.createSelectionComponent() : this.createRenderingComponent();\n    }\n\n    createRenderingComponent(){\n        const {label, color, imageUrl, cellElement} = this.config.renderConfig;\n        let options = [];\n        if(label != null && label != undefined){\n            options.push({\n                label  : label,\n                color  : color,\n                prefix : getAvatarIcon(imageUrl)\n            })\n        }\n\n        const DGRendererConfig = {\n            parentElement : this.parentDOM,\n            options       : options,\n            cellElement   : cellElement,\n        }\n        this.component = new globalT.DataGrid.ChipRenderingComponent();\n        this.component.init(DGRendererConfig);\n        this.element = this.component.getElement();\n    }\n\n    createSelectionComponent(){\n        const selectionConfig = this.config.getSelectionConfig();\n        const DG_Components = globalT.DG_Components;\n        this.component = new DG_Components.Select(selectionConfig);\n        this.element = this.component.api.getElement();\n    }\n\n    // New implementation with dual component system\n    enableSelection(params : any) {\n        const selectionParams ={\n            component : this\n        }\n        this.destroyComponent();\n        this.createSelectionComponent();\n        this.parentDOM.append(this.element);\n        this.selectionState = true;\n        this.config.onSelection(selectionParams);\n    }\n\n    // New implementation with dual component system\n    disableSelection(params : any) {\n        const deSelectionParams ={\n            component : this\n        }\n        this.config.onDeSelection(deSelectionParams);\n        this.destroyComponent();\n        this.createRenderingComponent();\n        this.selectionState = false;\n    }\n\n    afterGuiAttached() { \n        //call open dropdown api\n        this.component.api?.openDropdown();\n    } \n\n    showDropdownIcon():void {\n        // this.component.api?.updateProperties({showDropdownIcon : true});\n    }\n\n    hideDropdownIcon():void {\n        // this.component.api.updateProperties({showDropdownIcon : false});\n    }\n\n    enableTooltip() :void{\n        // this.component.api?.updateProperties({tooltipAppendto : document.querySelector(\".ZT-container\") as HTMLElement,tooltip : true});\n    }\n\n    disableTooltip():void {\n        // this.component.api.updateProperties({tooltip : false});\n    }\n\n    enableStartEditingEvent(handleClickBound:any):void{\n        this.component.api?.getElement().addEventListener('mousedown', handleClickBound);\n    }\n\n    disableStartEditingEvent(handleClickBound:any):void{\n        // this.component.api.getElement().removeEventListener('mousedown', handleClickBound);\n    }\n\n    destroyComponent(): void {\n        if (this.component) {\n            this.selectionState ? this.component.api.destroy() : this.component.destroy();\n        }\n\n        this.parentDOM.textContent = '';\n    }\n\n    getElement() {\n        return this.element;\n    }\n    \n}","import { COLLABORATOR_CLIENT } from '../../../../Constants/FieldTypes.js';\nimport { MULTIPLE_COLLABORATOR_INLINE_CONFIG } from '../../../../View/GridView/FCComponents/Interface/InlineFieldConfigInterface.js';\nimport { RECORDHEIGHT_SMALL } from '../../../../View/GridView/GridConstants';\nimport { CellInlineComponent, getExpandIcon } from '../../../CellInlineComponent';\nimport { findEllipsisChipMeta, HOVER_STATE_DELAY, hoverStateEllipsisWrapper, hoverStateLastChipWrapper } from '../../../FieldComponentHoverStateUtils';\nimport { FIELD_TYPE_CSS_CLASSNAME } from '../../../FieldTypeConstants';\nimport { ICellComponent } from '../../../Interface/ICellComponent';\nimport { getAvatarIcon } from '../SingleCollaborator/SingleCollaboratorInlineComponent';\nconst globalT = globalThis as any;\n\n\nconst defaultPlusIconWidth = 23; //including margin\nconst defaultEllipsisChipWidth = 40;\n\nexport class MultipleCollaboratorInlineComponent extends CellInlineComponent implements ICellComponent {\n    public component       : any; //will discuss and update the interface later\n    public config          : MULTIPLE_COLLABORATOR_INLINE_CONFIG\n    public parentDOM       : HTMLElement\n    public selectionState  : boolean = false;\n    public element         : HTMLElement | null = null;\n    public hoverState      : boolean = false;\n    params          : any\n    handleClickBound: EventListener | null = null;\n    eventListener   : any = {};\n    private cacheStyle : CSSStyleDeclaration | null = null;\n\n\n    constructor(config : MULTIPLE_COLLABORATOR_INLINE_CONFIG, parentDOM : HTMLElement) {\n        super();\n        this.component      =   null;\n        this.config         =   config;\n        this.parentDOM      =   parentDOM;\n        this.selectionState = this.config.isCellFocused;\n        this.constructComponent();\n        this.addCSSClass();\n    } \n\n    constructComponent () {\n        this.selectionState ? this.createSelectionComponent() : this.createRenderingComponent();\n    }\n\n    createRenderingComponent(){\n        const {renderConfig, rowHeight} = this.config;\n        const {options, cellElement, readonly} = renderConfig;\n        const selectedOptions = options.map((option) => {\n            const imageUrl = option.imageUrl;\n            return {\n                ...option,\n                prefix : getAvatarIcon(imageUrl)\n            }\n        });\n\n        const DGRendererConfig = {\n            parentElement : this.parentDOM,\n            options       : selectedOptions,\n            cellElement   : cellElement,\n        }\n        this.component = new globalT.DataGrid.ChipRenderingComponent();\n        this.component.init(DGRendererConfig);\n        this.element = this.component.getElement();\n\n\n        if(!readonly) {\n            const hasPlusIcon = true;\n\n            let timerId : any = null;\n\n            this.eventListener.hoverState_mouseEnter = {\n                callBack : null as any,\n                element : cellElement\n            };\n            this.eventListener.hoverState_mouseLeave = {\n                callBack : null as any,\n                element : cellElement\n            };\n            this.eventListener.hoverState_mouseEnter.callBack = () => {\n                timerId = setTimeout(() => {\n                        if(this.cacheStyle == null){\n                            this.cacheStyle = window.getComputedStyle(cellElement);\n                        }\n                        const {hoverStateEllipsisChip, hoverStatePlusIcon} = this.config;\n                        if(this.selectionState == false && timerId != null && this.hoverState == false) {\n                            const chips    = cellElement.querySelectorAll('.dg-chip__root');\n                            const lineWrap = rowHeight != RECORDHEIGHT_SMALL;\n                            hoverStateLastChipWrapper.textContent = '';\n                            hoverStateEllipsisWrapper.textContent = '';\n                            this.parentDOM.append(hoverStateLastChipWrapper);\n\n                            if(chips.length != 0 ){\n                                const {lastChipIndex, ellipsisChipCount} = findEllipsisChipMeta(cellElement, chips, this.cacheStyle, options.length, hasPlusIcon, defaultEllipsisChipWidth, defaultPlusIconWidth, lineWrap);\n            \n                                for(let i = lastChipIndex + 1; i <= chips.length - 1; i++){\n                                    const chip = chips[i];\n                                    chip.remove();\n                                }\n            \n                                chips[lastChipIndex] && hoverStateLastChipWrapper.append(chips[lastChipIndex]);\n                                hoverStateLastChipWrapper.append(hoverStateEllipsisWrapper);\n            \n            \n                                hoverStateEllipsisChip.textContent = `+${ellipsisChipCount}`;\n                                if(ellipsisChipCount > 0){\n                                    hoverStateEllipsisWrapper.append(hoverStateEllipsisChip);\n                                    // lastChipWidthChangeNeeded && (chips[lastChipIndex].style.width = `${lastChipWidth}px`);\n                                }\n                            } else {\n                                hoverStateLastChipWrapper.append(hoverStateEllipsisWrapper);\n                            }\n                            hoverStatePlusIcon && hoverStateEllipsisWrapper.append(hoverStatePlusIcon);\n                            timerId = null;\n                            this.hoverState = true;\n                            \n                        }\n                    }, HOVER_STATE_DELAY);\n            }\n\n\n            this.eventListener.hoverState_mouseLeave.callBack = () => {\n                this.eventListener.hoverState_mouseEnter.element.removeEventListener('mouseenter', this.eventListener.hoverState_mouseEnter.callBack);\n                this.eventListener.hoverState_mouseLeave.element.removeEventListener('mouseleave', this.eventListener.hoverState_mouseLeave.callBack);\n                clearTimeout(timerId);\n                timerId = null;\n                this.hoverState = false;\n                if(this.selectionState == false) {\n                    this.destroyComponent();\n                    this.createRenderingComponent();\n                }\n            }\n\n\n            this.eventListener.hoverState_mouseEnter.element.addEventListener('mouseenter', this.eventListener.hoverState_mouseEnter.callBack);\n\n            this.eventListener.hoverState_mouseLeave.element.addEventListener('mouseleave', this.eventListener.hoverState_mouseLeave.callBack);\n        }\n    }\n\n    createSelectionComponent(){\n        const selectionConfig = this.config.getSelectionConfig();\n        const DG_Components   = globalT.DG_Components;\n        const isSingleSelectedValue = selectionConfig.selectedOptions.length === 1;\n\n        this.component  = new DG_Components.Select(selectionConfig);\n        this.element    = this.component.api.getElement();\n        this.element!.classList.toggle('zt-chip-single', isSingleSelectedValue);\n    }\n\n    addCSSClass() : void {\n        const className = FIELD_TYPE_CSS_CLASSNAME[COLLABORATOR_CLIENT];\n        this.parentDOM.classList.add(className);\n    } \n\n    enableSelection(params : any) {\n        this.destroyComponent();\n        this.createSelectionComponent();\n        params.component = this.component;\n        this.parentDOM.append(this.element as HTMLElement);\n        this.selectionState = true;\n        this.hoverState     = false;\n        this.config.onSelection(params);\n        this.addExpandIcon(params);\n    }\n    disableSelection(params : any) {\n        params.component = this.component;\n        this.config.onDeSelection(params);\n        this.removeExpandIcon();\n        this.destroyComponent();\n        this.createRenderingComponent();\n        this.selectionState = false;\n    }\n\n    afterGuiAttached() {\n        this.component?.focus();\n    }\n\n    handleClick(event : MouseEvent){\n        event.stopPropagation();\n        this.params?.fieldCellEventHandler?.startEditing(this.params.rowIndex, this.params.columnIndex);\n    }\n\n    private addExpandIcon(params: any): void {\n        if(this.expandIcon == null){\n            this.expandIcon = getExpandIcon(params);\n            this.parentDOM.appendChild(this.expandIcon);\n        }\n        else{\n            this.parentDOM.appendChild(this.expandIcon);\n        }\n    }\n    private removeExpandIcon(): void {\n        this.expandIcon?.remove();\n    }\n\n    enablePlusIcon():void{\n        // this.component.api?.updateProperties({enablePlusIcon : true});\n    }\n\n    disablePlusIcon():void{\n        // this.component.api.updateProperties({enablePlusIcon : false});\n    }\n\n    enableDoubleClickEvent():void{\n        this.component.api?.getElement().addEventListener('dblclick', (event:any) => {\n            event.stopPropagation();\n        });\n    }\n\n    disableDoubleClickEvent():void{\n        // this.component.api.getElement().removeEventListener('dblclick', (event:any) => {\n        //         event.stopPropagation();\n        //     });\n    }\n\n    enableTooltip():void{\n        // this.component.api?.updateProperties({tooltipAppendto : document.querySelector(\".ZT-container\") as HTMLElement,tooltip : true});\n    }\n\n    disableTooltip():void{\n        // this.component.api.updateProperties({tooltip : false});\n    }\n\n    enableEllipsesEvent(handleClickBound:any):void{\n        // const isSelected = true;\n        // this.component.api?.updateProperties({ellipsesRendererParams : {handleClickBound,isSelected}});\n    }\n\n    disableEllipsesEvent(handleClickBound:any):void{\n        // const isSelected =  false;\n        // this.component.api?.updateProperties({ellipsesRendererParams : {handleClickBound,isSelected}});\n    }\n\n    destroyComponent(): void {\n        if (this.component) {\n            this.selectionState ? this.component.api.destroy() : this.component.destroy();\n        }\n        this.parentDOM.textContent = ''; // temporary fix for the issue of the checkbox not being removed from the DOM\n        this.eventListener.hoverState_mouseEnter?.element.removeEventListener('mouseenter', this.eventListener.hoverState_mouseEnter.callBack);\n        this.eventListener.hoverState_mouseLeave?.element.removeEventListener('mouseleave', this.eventListener.hoverState_mouseLeave.callBack);\n        this.cacheStyle = null;\n    }\n    getElement() : HTMLElement | null{\n        return this.element;\n    }\n\n}","import { CREATED_BY } from \"../../../Constants/FieldTypes.js\";\nimport { CREATED_BY_INLINE_CONFIG } from \"../../../View/GridView/FCComponents/Interface/InlineFieldConfigInterface.js\";\nimport { CellInlineComponent } from \"../../CellInlineComponent\";\nimport { FIELD_TYPE_CSS_CLASSNAME } from \"../../FieldTypeConstants\";\nimport { ICellComponent } from \"../../Interface/ICellComponent\";\nimport { getAvatarIcon } from \"../CollaboratorFieldType/SingleCollaborator/SingleCollaboratorInlineComponent\";\nconst globalT = globalThis as any;\n\nexport class CreatedByInlineComponent extends CellInlineComponent implements ICellComponent {\n    public component       : any;  //will discuss and update the interface later\n    public config          : CREATED_BY_INLINE_CONFIG\n    public parentDOM       : HTMLElement\n    public selectionState  : boolean = false;\n    element !              : HTMLElement;\n\n    constructor(config : CREATED_BY_INLINE_CONFIG, parentDOM : HTMLElement) {\n        super();\n        this.component      =   null;\n        this.config         =   config;\n        this.parentDOM      =   parentDOM;\n        this.selectionState = this.config.isCellFocused;\n        this.constructComponent();\n        this.addCSSClass();\n    }\n\n    addCSSClass(): void {\n        const className = FIELD_TYPE_CSS_CLASSNAME[CREATED_BY];\n        this.parentDOM.classList.add(className);\n        this.parentDOM.classList.add('dg-singleselect__root');\n    }\n\n    constructComponent () {\n        this.selectionState ? this.createSelectionComponent() : this.createRenderingComponent();\n    }\n\n    createRenderingComponent(){\n        const {label, color, imageUrl, cellElement} = this.config.renderConfig;\n        let options = [];\n        if(label != null && label != undefined){\n            options.push({\n                label : label,\n                color : color,\n                prefix : getAvatarIcon(imageUrl)\n            })\n        }\n        const DGRendererConfig = {\n            parentElement : this.parentDOM,\n            options       : options,\n            cellElement   : cellElement,\n        }\n        this.component = new globalT.DataGrid.ChipRenderingComponent();\n        this.component.init(DGRendererConfig);\n        this.element = this.component.getElement();\n    }\n\n    createSelectionComponent(){\n        const selectionConfig = this.config.getSelectionConfig();\n        const DG_Components = globalT.DG_Components;\n        this.component = new DG_Components.Chip(selectionConfig);\n        this.element = document.createElement('div');\n        this.element.classList.add('dg-field__root');\n        const componentElement = this.component.api.getElement();\n        this.element.append(componentElement);\n    }\n\n    enableSelection(params : any) {\n        this.destroyComponent();\n        this.createSelectionComponent();\n        this.parentDOM.append(this.element);\n        this.selectionState = true;\n    }\n\n    disableSelection(params : any) {\n        this.destroyComponent();\n        this.createRenderingComponent();\n        this.selectionState = false;\n    }\n\n    destroyComponent(): void {\n        if (this.component) {\n            this.selectionState ? this.component.api.destroy() : this.component.destroy();\n        }\n        this.parentDOM.textContent = ''; // temporary fix for the issue of the checkbox not being removed from the DOM\n    }\n\n    getElement() : HTMLElement | null{\n        return this.element;\n    }\n}","import { CREATED_TIME } from \"../../../Constants/FieldTypes.js\";\nimport { decodeToAbsoluteDate } from \"../../../DateComponentEncoderDecoder\";\nimport { CREATED_TIME_INLINE_CONFIG } from \"../../../View/GridView/FCComponents/Interface/InlineFieldConfigInterface\";\nimport { CellInlineComponent } from \"../../CellInlineComponent\";\nimport { FIELD_TYPE_CSS_CLASSNAME } from '../../FieldTypeConstants';\nimport { ICellComponent } from \"../../Interface/ICellComponent\";\n\nconst globalT = globalThis as any;\n\nexport class CreatedTimeInlineComponent extends CellInlineComponent implements ICellComponent {\n    public component       : any;\n    public config          : CREATED_TIME_INLINE_CONFIG;\n    public parentDOM       : HTMLElement;\n    public selectionState  : boolean = false;\n    public element !       : HTMLElement;\n\n    constructor(config : CREATED_TIME_INLINE_CONFIG, parentDOM : HTMLElement) {\n        super();\n        this.component      =   null;\n        this.config         =   config;\n        // this.config.format = this.createDateFormat(this.config.dateFormat,this.config.hourCycle);\n        // this.config.value = this.createValue()\n        this.parentDOM      =   parentDOM;\n        this.selectionState = this.config.isCellFocused;\n        this.constructComponent();\n        this.addCSSClass();\n    }\n\n    createValue(value : any){\n        if(value){\n            const decodedValue = decodeToAbsoluteDate(value);\n        if(decodedValue){\n            return new Date(decodedValue.year, decodedValue.monthIndex, decodedValue.date, decodedValue.hours, decodedValue.minutes, decodedValue.seconds,decodedValue.milliSeconds);\n        }\n        }\n        return NaN;\n    }\n\n    addCSSClass(): void {\n        const className = FIELD_TYPE_CSS_CLASSNAME[CREATED_TIME];\n        this.parentDOM.classList.add(className);\n    }\n\n    constructComponent () {\n        this.selectionState ? this.createSelectionComponent() : this.createRenderingComponent();\n    }\n\n\n    createRenderingComponent(){\n        const renderConfig = this.config.renderConfig;\n        let {cellElement, value, dateFormat, hourCycle} = renderConfig;\n        value = this.createValue(value);\n        const format = this.createDateFormat(dateFormat, hourCycle);\n\n        const DG_Components = globalT.DG_Components;\n        const formattedValue = isNaN(value) ? '' : DG_Components.DateTimeReadonlyComponent.formatDate(value, format);\n        const DGRendererConfig = {\n            cellData : formattedValue,\n            parentElement : this.parentDOM,\n            cellElement   : cellElement,\n        }\n        this.component = new globalT.DataGrid.TextRenderingComponent();\n        this.component.init(DGRendererConfig);\n        this.element = this.component.getElement();\n    }\n\n    createSelectionComponent(){\n        const DG_Components          = globalT.DG_Components;\n        const selectionConfig        = this.config.getSelectionConfig();\n        selectionConfig.value  = this.createValue(selectionConfig.value);\n        selectionConfig.format = this.createDateFormat(selectionConfig.dateFormat, selectionConfig.hourCycle);\n        this.component         = new DG_Components.DateTimeReadonlyComponent(selectionConfig);\n        this.element           = this.component.api.getElement();\n    }\n\n    enableSelection() {\n    }\n\n    disableSelection() {\n    }\n\n    enableSelection(params : any){\n        this.destroyComponent();\n        this.createSelectionComponent();\n        this.parentDOM.append(this.element);\n        this.selectionState = true;\n    }\n\n    disableSelection(params : any){\n        this.config.onDeSelection(params);\n        this.destroyComponent();\n        this.createRenderingComponent();\n        this.selectionState = false;\n    }\n\n    createDateFormat(dateFormat: string, hourCycle: 12 | 24 | 0): string {\n        const formatMap: Record<string, string> = {\n            \"Month D, YYYY\": \"MMMM D, YYYY\",\n            \"DD/MM/YYYY\": \"DD/MM/YYYY\",\n            \"MM/DD/YYYY\": \"MM/DD/YYYY\",\n            \"YYYY/MM/DD\": \"YYYY/MM/DD\"\n        };\n    \n        let baseFormat = formatMap[dateFormat] || dateFormat;\n    \n        switch (hourCycle) {\n            case 12:\n                return `${baseFormat} hh:mm:ss A`;\n            case 24:\n                return `${baseFormat} HH:mm:ss`;\n            case 0:\n            default:\n                return baseFormat;\n        }\n    }\n    \n\n    destroyComponent(): void {\n        if (this.component) {\n            this.selectionState ? this.component.api.destroy() : this.component.destroy();\n        }\n\n        this.parentDOM.textContent = ''; // temporary fix for the issue of the checkbox not being removed from the DOM\n    }\n\n    getElement() {\n        return this.element;\n    }\n}\n\n","import { CURRENCY } from \"../../../Constants/FieldTypes.js\";\nimport { CURRENCY_INLINE_CONFIG } from \"../../../View/GridView/FCComponents/Interface/InlineFieldConfigInterface.js\";\nimport { CellInlineComponent } from \"../../CellInlineComponent\";\nimport { FIELD_TYPE_CSS_CLASSNAME } from \"../../FieldTypeConstants\";\nimport { ICellComponent } from \"../../Interface/ICellComponent\";\nconst globalT = globalThis as any;\n\nexport class CurrencyInlineComponent extends CellInlineComponent implements ICellComponent {\n    // private component       : typeof DCFieldComponents.Currency.prototype | null\n    public component       : any\n    public config          : CURRENCY_INLINE_CONFIG\n    public parentDOM       : HTMLElement\n    public selectionState  : boolean = false;\n    public element !       : HTMLElement;\n\n    constructor(config : CURRENCY_INLINE_CONFIG, parentDOM : HTMLElement) {\n        super();\n        this.component      =   null;\n        this.config         =   config;\n        this.parentDOM      =   parentDOM;\n        this.selectionState = this.config.isCellFocused;\n        this.constructComponent();\n        this.addCSSClass();\n    }\n\n    constructComponent () {\n        this.selectionState ? this.createSelectionComponent() : this.createRenderingComponent();\n    }\n    addCSSClass() : void {\n        const className = FIELD_TYPE_CSS_CLASSNAME[CURRENCY];\n        this.parentDOM.classList.add(className);\n        this.parentDOM.classList.add('dg-number__root');\n        const { symbolPosition } = this.config.renderConfig;\n        if(symbolPosition === 'accounting'){\n            this.parentDOM.classList.add(\"dg-currency__accounting\")\n        }\n    }\n\n    removeCSSClass() : void {\n        const className = FIELD_TYPE_CSS_CLASSNAME[CURRENCY];\n        this.parentDOM.classList.remove(className);\n        this.parentDOM.classList.remove('dg-number__root');\n        this.parentDOM.classList.remove('dg-currency__accounting');\n    }\n\n    createRenderingComponent(){\n        const renderConfig  = this.config.renderConfig;\n        const DG_Components = globalT.DG_Components;\n        const { decimalPrecision, locale, value, thousandsSeparator, symbolPosition, currencySymbol, cellElement, hideSymbol, formatter } = renderConfig;\n        let {inputPrefix, inputSuffix} = renderConfig;\n        const isAccounting = symbolPosition === 'accounting';\n\n        let formattedValue = value;\n        if(value != null && value != undefined){\n            if(isAccounting){\n                formattedValue = formatter(value);\n            }\n            else{\n                formattedValue = DG_Components.RenderingNumberComponent.formatCurrency(value, decimalPrecision, thousandsSeparator, hideSymbol, symbolPosition, currencySymbol, locale);\n            }\n        }\n        else {\n            inputPrefix = \"\";\n            inputSuffix = \"\";\n        }\n\n        const DGRendererConfig = {\n            cellData      : formattedValue,\n            parentElement : this.parentDOM,\n            prefix        : inputPrefix,\n            suffix        : inputSuffix,\n            cellElement   : cellElement,\n        }\n        this.component = new globalT.DataGrid.TextRenderingComponent();\n        this.component.init(DGRendererConfig);\n        this.element = this.component.getElement();\n    }\n\n    createSelectionComponent(){\n        const selectionConfig = this.config.getSelectionConfig();\n        let {inputPrefix, inputSuffix, value} = selectionConfig;\n        if(value == null || value == undefined){\n            selectionConfig.inputPrefix = \"\";\n            selectionConfig.inputSuffix = \"\";\n        }\n        const DG_Components = globalT.DG_Components;\n        this.component = new DG_Components.RenderingNumberComponent(selectionConfig, {modules: [DG_Components.CurrencyModule]});\n        this.element = this.component.api.getElement();\n    }\n\n    enableSelection() {\n        this.destroyComponent();\n        this.addCSSClass();\n        this.createSelectionComponent();\n        this.parentDOM.append(this.element);\n        this.selectionState = true;\n    }\n\n    disableSelection() {\n        this.destroyComponent();\n        this.addCSSClass();\n        this.createRenderingComponent();\n        this.selectionState = false;\n    }\n\n    destroyComponent(): void {\n        if (this.component) {\n            this.selectionState ? this.component.api.destroy() : this.component.destroy();\n        }\n\n        this.parentDOM.textContent = ''; // temporary fix for the issue of the checkbox not being removed from the DOM\n        this.removeCSSClass();\n    }\n\n    getElement() {\n        return this.element;\n    }\n}\n","import { decodeToAbsoluteDate, encodeFromAbsoluteDate } from \"../../../DateComponentEncoderDecoder\";\nimport { CustomFormat } from \"../../../View/GridView/FCComponents/Interface/CoreInlineFCConfigInterface\";\nimport { DATE_TIME_INLINE_CONFIG } from \"../../../View/GridView/FCComponents/Interface/InlineFieldConfigInterface\";\nimport { CellInlineComponent } from \"../../CellInlineComponent\";\nimport { ICellComponent } from \"../../Interface/ICellComponent\";\nconst globalT = globalThis as any;\n\nexport class DateTimeInlineComponent extends CellInlineComponent implements ICellComponent {\n    public component       : any\n    public config          : DATE_TIME_INLINE_CONFIG\n    public parentDOM       : HTMLElement\n    public selectionState  : boolean = false;\n    public element         !: HTMLElement;\n\n    constructor(config : DATE_TIME_INLINE_CONFIG, parentDOM : HTMLElement) {\n        super();\n        this.component           = null;\n        this.config              = config;\n        // this.config.value        = this.createValue();\n        // this.config.format       = this.createDateFormat(this.config.dateFormat,this.config.hourCycle);\n        // this.config.customFormat = this.createCustomFormat();\n        this.parentDOM           = parentDOM;\n        this.selectionState      = this.config.isCellFocused;\n        this.constructComponent();\n    }\n\n    constructComponent () {\n        this.selectionState ? this.createSelectionComponent() : this.createRenderingComponent();\n    }\n\n    createRenderingComponent(){\n        const renderConfig = this.config.renderConfig;\n        let {cellElement, value, format, dateFormat, hourCycle} = renderConfig;\n        value = this.createValue(value);\n        format = this.createDateFormat(dateFormat, hourCycle);\n        const DG_Components = globalT.DG_Components;\n        const formattedValue = isNaN(value) ? '' : DG_Components.DateTimeReadonlyComponent.formatDate(value, format);\n        const DGRendererConfig = {\n            cellData      : formattedValue,\n            parentElement : this.parentDOM,\n            cellElement   : cellElement,\n        }\n        this.component = new globalT.DataGrid.TextRenderingComponent();\n        this.component.init(DGRendererConfig);\n        this.element = this.component.getElement();\n    }\n \n    createSelectionComponent(){\n        const DG_Components = globalT.DG_Components;\n        const selectionConfig = this.config.getSelectionConfig();\n        selectionConfig.value = this.createValue(selectionConfig.value);\n        selectionConfig.format = this.createDateFormat(selectionConfig.dateFormat, selectionConfig.hourCycle);\n        selectionConfig.customFormat = this.createCustomFormat();\n        this.component = new DG_Components.DateTimeReadonlyComponent(selectionConfig);\n        this.element = this.component.api.getElement();\n    }\n\n    // enableSelection() {\n    //     super.enableSelection();\n    // }\n\n    // disableSelection() {\n    //     super.disableSelection();\n    // }\n\n    enableSelection(params : any) {\n        this.destroyComponent();\n        this.createSelectionComponent();\n        this.parentDOM.append(this.element);\n        this.selectionState = true;\n\n        super.enableSelection(params);\n    }\n\n    disableSelection(params : any) {\n        super.disableSelection(params);\n        this.destroyComponent();\n        this.createRenderingComponent();\n        this.selectionState = false;\n    }\n\n    createValue(value : any){\n        if(value){\n            const decodedValue = decodeToAbsoluteDate(value);\n        if(decodedValue){\n            return new Date(decodedValue.year, decodedValue.monthIndex, decodedValue.date, decodedValue.hours, decodedValue.minutes, decodedValue.seconds,decodedValue.milliSeconds);\n        }\n        }\n        return NaN;\n        \n    }\n\n    createCustomFormat(): CustomFormat{\n        const renderConfig = this.config.renderConfig;\n        let customFormat : CustomFormat= {\n            hour    : 'HH',\n            minute  : 'MM',\n            second  : 'SS',\n            meridian: 'tt'\n        }\n\n        if(renderConfig.dateFormat.includes('Month')){\n            customFormat.month = 'Month'\n        }\n        return customFormat;\n    }\n\n    createDateFormat(dateFormat: string, hourCycle: 12 | 24 | 0): string {\n        const formatMap: Record<string, string> = {\n            \"Month D, YYYY\": \"MMMM DD, YYYY\",\n            \"DD/MM/YYYY\": \"DD/MM/YYYY\",\n            \"MM/DD/YYYY\": \"MM/DD/YYYY\",\n            \"YYYY/MM/DD\": \"YYYY/MM/DD\"\n        };\n    \n        let baseFormat = formatMap[dateFormat] || dateFormat;\n    \n        switch (hourCycle) {\n            case 12:\n                return `${baseFormat} hh:mm:ss A`;\n            case 24:\n                return `${baseFormat} HH:mm:ss`;\n            case 0:\n            default:\n                return baseFormat;\n        }\n    }\n\n    showFormatAsPlaceholder(force : boolean){\n        this.component.api?.updateProperties({showFormatAsPlaceholder : force});\n    }\n\n    getRequestModelData() {\n        const value =  this.component.api?.getValueAsTimeStamp();\n        const dateObject = encodeFromAbsoluteDate(new Date(value));\n        return dateObject;\n    }\n\n    destroyComponent(): void {\n        if (this.component) {\n            this.selectionState ? this.component.api.destroy() : this.component.destroy();\n        }\n\n        this.parentDOM.textContent = ''; // temporary fix for the issue of the checkbox not being removed from the DOM\n    }\n\n    getElement() {\n        return this.element;\n    }\n}","import { EMAIL } from \"../../../Constants/FieldTypes.js\";\nimport { SINGLE_EMAIL_INLINE_CONFIG } from \"../../../View/GridView/FCComponents/Interface/InlineFieldConfigInterface.js\";\nimport { CellInlineComponent, getExpandIcon } from \"../../CellInlineComponent\";\nimport { FIELD_TYPE_CSS_CLASSNAME } from \"../../FieldTypeConstants\";\nimport { ICellComponent } from \"../../Interface/ICellComponent\";\nconst globalT = globalThis as any;\n\nexport class EmailInlineComponent extends CellInlineComponent implements ICellComponent {\n    component  : any;\n    config     : SINGLE_EMAIL_INLINE_CONFIG\n    parentDOM  : HTMLElement\n    expandIcon !: HTMLElement | null;\n    public selectionState : boolean = false;\n    public element ! : HTMLElement;\n\n    constructor(config : SINGLE_EMAIL_INLINE_CONFIG, parentDOM : HTMLElement) {\n        super();\n        this.component = null;\n        this.config    = config;\n        this.parentDOM = parentDOM;\n        this.selectionState = this.config.isCellFocused;\n\n        this.constructComponent();\n        this.addCSSClass();\n    }\n   \n\n     addCSSClass() : void {\n        const className = FIELD_TYPE_CSS_CLASSNAME[EMAIL];\n        this.parentDOM.classList.add(className);\n    }\n\n    constructComponent () {\n        this.selectionState ? this.createSelectionComponent() : this.createRenderingComponent();\n    }\n\n    createRenderingComponent(){\n        const renderConfig = this.config.renderConfig;\n        const DGRendererConfig: any = {\n            cellData : renderConfig.value,\n            hyperlinkDetector : (value: string)=>{\n                const result = [];\n                if(value.trim()){\n                    result.push({\n                        displayText : value,\n                        href        : renderConfig.href\n                    })\n                }\n                return result;\n            },\n            parentElement : this.parentDOM,\n            cellElement   : renderConfig.cellElement,\n            wrap          : true\n        }\n        this.component = new globalT.DataGrid.TextRenderingComponent();\n        this.component.init(DGRendererConfig);\n        this.element = this.component.getElement();\n\n        const elements = this.component.getAllElements();\n        elements.forEach((element: HTMLElement)=>{\n            element.addEventListener(\"contextmenu\",(event: MouseEvent)=>{\n                renderConfig.onContextMenu(event);\n            })\n            element.addEventListener(\"mousedown\",(event: MouseEvent)=>{\n                renderConfig.onMouseDown(event);\n            })\n        });\n    }\n\n    createSelectionComponent(){\n        const DG_Components = globalT.DG_Components;\n        const selectionConfig = this.config.getSelectionConfig();\n        this.component = new DG_Components.Link(selectionConfig);\n        this.element = this.component.api.getElement();\n    }\n\n    enableSelection(params : any) {\n        super.enableSelection(params);\n        this.destroyComponent();\n        this.createSelectionComponent();\n        this.parentDOM.append(this.element);\n        this.addExpandIcon(params);\n        this.selectionState = true;\n    }\n\n    disableSelection(params : any) {\n        super.disableSelection(params);\n        this.destroyComponent();\n        this.createRenderingComponent();\n        this.removeExpandIcon();\n        this.selectionState = false;\n    }\n\n    private addExpandIcon(params: any): void {\n        if(this.expandIcon == null){\n            this.expandIcon = getExpandIcon(params);\n            this.parentDOM.appendChild(this.expandIcon);\n        }\n        else{\n            this.parentDOM.appendChild(this.expandIcon);\n        }\n    }\n    private removeExpandIcon(): void {\n        this.expandIcon?.remove();\n    }\n\n    destroyComponent(): void {\n        if (this.component) {\n            this.selectionState ? this.component.api.destroy() : this.component.destroy();\n        }\n    }\n\n    getElement() {\n        return this.element;\n    }\n\n}","import { MULTIPLE_EMAIL_INLINE_CONFIG } from \"../../../View/GridView/FCComponents/Interface/InlineFieldConfigInterface\";\nimport { RECORDHEIGHT_SMALL } from \"../../../View/GridView/GridConstants\";\nimport { CellInlineComponent, getExpandIcon } from \"../../CellInlineComponent\";\nimport { findEllipsisChipMeta, HOVER_STATE_DELAY, hoverStateEllipsisWrapper, hoverStateLastChipWrapper } from \"../../FieldComponentHoverStateUtils\";\nimport { ICellComponent } from \"../../Interface/ICellComponent\";\n\n\n\nconst globalT = globalThis as any;\n\nconst defaultPlusIconWidth = 0; //including margin\nconst defaultEllipsisChipWidth = 40;\n\nconst hasPlusIcon = false;\n\nexport class MultipleEmailInlineComponent extends CellInlineComponent implements ICellComponent {\n\n    public component       : any | null;\n    public config          : MULTIPLE_EMAIL_INLINE_CONFIG\n    public parentDOM       : HTMLElement\n    public expandIcon      !: HTMLElement | null;\n    public element         !: HTMLElement;\n    public selectionState  : boolean = false;\n    public hoverState      : boolean = false;\n    params          : any\n    handleClickBound: EventListener | null = null; \n    eventListener   : any = {};\n    private cacheStyle : CSSStyleDeclaration | null = null;\n    constructor(config : MULTIPLE_EMAIL_INLINE_CONFIG, parentDOM : HTMLElement) {\n        super();\n        this.component      =   null;\n        this.config         =   config;\n        this.parentDOM      =   parentDOM;\n        this.selectionState = this.config.isCellFocused;\n\n        this.constructComponent();\n        this.addCSSClass();\n    }\n\n    private addExpandIcon(params: any): void {\n        if(this.expandIcon == null){\n            this.expandIcon = getExpandIcon(params);\n            this.parentDOM.appendChild(this.expandIcon);\n        }\n        else{\n            this.parentDOM.appendChild(this.expandIcon);\n        }\n    }\n    private removeExpandIcon(): void {\n        this.expandIcon?.remove();\n    }\n\n    constructComponent () {\n        this.selectionState ? this.createSelectionComponent() : this.createRenderingComponent();\n    }\n\n    createRenderingComponent(){\n        const {renderConfig, rowHeight} = this.config;\n        const {options, cellElement} = renderConfig;\n        // const selectedOptions = this.config.selectedIndex.map((index: number) => {\n        //     const option = this.config.options[index];\n        //     const { value, href } = option.selectedValueRendererParams as any;\n        //     return{\n        //         color    : option.color,\n        //         renderer : ()=>getBubbleUrlElement(value, href)\n        //     }\n        // });\n        const DGRendererConfig = {\n            parentElement : this.parentDOM,\n            options       : options,\n            cellElement   : cellElement,\n        }\n        this.component = new globalT.DataGrid.ChipRenderingComponent();\n        this.component.init(DGRendererConfig);\n        this.element = this.component.getElement();\n\n\n\n\n        let timerId : any = null;\n\n        this.eventListener.hoverState_mouseEnter = {\n            callBack : null as any,\n            element : cellElement\n        };\n        this.eventListener.hoverState_mouseLeave = {\n            callBack : null as any,\n            element : cellElement\n        };\n\n        this.eventListener.hoverState_mouseEnter.callBack = () => {\n            timerId = setTimeout(() => {\n                if(this.cacheStyle == null){\n                    this.cacheStyle = window.getComputedStyle(cellElement);\n                }\n                const {hoverStateEllipsisChip} = this.config;\n                if(this.selectionState == false && timerId != null && this.hoverState == false) {\n                    const chips    = cellElement.querySelectorAll('.dg-chip__root');\n                    const lineWrap = rowHeight != RECORDHEIGHT_SMALL;\n                    if(chips.length == 0 ){\n                        return;\n                    }\n                    const {lastChipIndex, ellipsisChipCount} = findEllipsisChipMeta(cellElement, chips, this.cacheStyle, options.length, hasPlusIcon, defaultEllipsisChipWidth, defaultPlusIconWidth, lineWrap);\n                    \n                    for(let i = lastChipIndex + 1; i <= chips.length - 1; i++){\n                        const chip = chips[i];\n                        chip.remove();\n                    }\n\n                    hoverStateLastChipWrapper.textContent = '';\n                    hoverStateEllipsisWrapper.textContent = '';\n                    this.parentDOM.append(hoverStateLastChipWrapper);\n                    chips[lastChipIndex] && hoverStateLastChipWrapper.append(chips[lastChipIndex]);\n                    hoverStateLastChipWrapper.append(hoverStateEllipsisWrapper);\n\n                    hoverStateEllipsisChip.textContent = `+${ellipsisChipCount}`;\n                    if(ellipsisChipCount > 0){\n                        hoverStateEllipsisWrapper.append(hoverStateEllipsisChip);\n                        // lastChipWidthChangeNeeded && (chips[lastChipIndex].style.width = `${lastChipWidth}px`);\n                    }\n\n                    timerId = null;\n                    this.hoverState = true;\n                }\n            }, HOVER_STATE_DELAY);\n        }\n\n\n        this.eventListener.hoverState_mouseLeave.callBack = () => {\n            this.eventListener.hoverState_mouseEnter.element.removeEventListener('mouseenter', this.eventListener.hoverState_mouseEnter.callBack);\n            this.eventListener.hoverState_mouseLeave.element.removeEventListener('mouseleave', this.eventListener.hoverState_mouseLeave.callBack);\n            clearTimeout(timerId);\n            timerId = null;\n            this.hoverState = false;\n            if(this.selectionState == false) {\n                this.destroyComponent();\n                this.createRenderingComponent();\n            }\n        }\n\n\n        this.eventListener.hoverState_mouseEnter.element.addEventListener('mouseenter', this.eventListener.hoverState_mouseEnter.callBack);\n\n        this.eventListener.hoverState_mouseLeave.element.addEventListener('mouseleave', this.eventListener.hoverState_mouseLeave.callBack);\n\n    }\n    createSelectionComponent(){\n        const selectionConfig = this.config.getSelectionConfig();\n        const DG_Components = globalT.DG_Components;\n        this.component = new DG_Components.Select(selectionConfig);\n        this.component.api.getElement().classList.add('dg-token__root');\n        this.element = this.component.api.getElement();\n    }\n    addCSSClass(): void {\n        this.parentDOM.classList.add('dg-token__root');\n    }\n    // getValue() {\n    //     const selectionOptions =this.component.api.getSelectedOptions();\n    //     let selectedValueArray : string[] = [];\n    //     selectionOptions.forEach((ele : any)=>{\n    //         selectedValueArray.push(ele.value)\n    //     })\n    //     return selectedValueArray.toString()\n    // }\n\n    enableSelection(params: any) { \n        // super.enableSelection(params);\n        const selectionParams ={\n            component : this\n        }\n        this.config.onSelection(selectionParams);\n        this.addExpandIcon(params);\n        \n        this.params =  params;\n        this.component.api?.updateProperties({enablePlusIcon : false});\n\n        this.handleClickBound = (evt: Event) => this.handleClick(evt as MouseEvent);\n        const plusIcon              = this.component.api?.getPlusIconDOM();\n        const ellipsesIcon          = this.component.api?.getEllipsesIcon();\n        plusIcon && plusIcon.addEventListener('click', this.handleClickBound);\n        ellipsesIcon && ellipsesIcon.addEventListener('click', this.handleClickBound);\n\n        // this.component.api.getElement().addEventListener('dblclick', (event:any) => {\n        //      event.stopPropagation();\n        // });\n    }\n\n    handleClick(event : MouseEvent){\n        event.stopPropagation();\n        this.params.fieldCellEventHandler.startEditing(this.params.recordID, this.params.fieldID);\n    }\n\n    disableSelection() {\n        if (this.handleClickBound) {\n            const ellipsesIcon = this.component.api?.getEllipsesIcon();\n            ellipsesIcon && ellipsesIcon.removeEventListener('click', this.handleClickBound);\n            this.handleClickBound = null;\n        }\n        const deSelectionParams ={\n            component : this\n        }\n        this.config.onDeSelection(deSelectionParams);\n        this.removeExpandIcon()\n        // super.disableSelection();\n    }\n\n    enableSelection(params: any) {\n        this.destroyComponent();\n        this.createSelectionComponent();\n        this.parentDOM.append(this.element);\n        this.selectionState = true;\n        this.hoverState = false;\n        const selectionParams ={\n            component : this\n        }\n        this.config.onSelection(selectionParams);\n        this.addExpandIcon(params);\n        \n        this.params =  params;\n        this.component.api?.updateProperties({enablePlusIcon : false});\n\n        this.handleClickBound = (evt: Event) => this.handleClick(evt as MouseEvent);\n        const plusIcon              = this.component.api?.getPlusIconDOM();\n        const ellipsesIcon          = this.component.api?.getEllipsesIcon();\n        plusIcon && plusIcon.addEventListener('click', this.handleClickBound);\n        ellipsesIcon && ellipsesIcon.addEventListener('click', this.handleClickBound);\n\n    }\n\n    disableSelection(params: any) {\n        if (this.handleClickBound) {\n            const ellipsesIcon = this.component.api?.getEllipsesIcon();\n            ellipsesIcon && ellipsesIcon.removeEventListener('click', this.handleClickBound);\n            this.handleClickBound = null;\n        }\n        const deSelectionParams ={\n            component : this\n        }\n        this.config.onDeSelection(deSelectionParams);\n        this.removeExpandIcon()\n\n\n        this.destroyComponent();\n        this.createRenderingComponent();\n        this.selectionState = false;\n    }\n\n    destroyComponent(): void {\n        if (this.component) {\n            this.selectionState ? this.component.api.destroy() : this.component.destroy();\n        }\n        this.eventListener.hoverState_mouseEnter?.element.removeEventListener('mouseenter', this.eventListener.hoverState_mouseEnter.callBack);\n        this.eventListener.hoverState_mouseLeave?.element.removeEventListener('mouseleave', this.eventListener.hoverState_mouseLeave.callBack);\n        this.cacheStyle = null;\n    }\n    getElement() {\n        return this.element;\n    }\n    afterGuiAttached() {\n       this.selectionState && this.component.api?.focus();\n    } \n \n}","import { KEYWORD_EXTRACTION } from \"../../../Constants/FieldTypes.js\";\nimport { KEYWORD_EXTRACTION_INLINE_CONFIG } from \"../../../View/GridView/FCComponents/Interface/InlineFieldConfigInterface\";\nimport { RECORDHEIGHT_SMALL } from \"../../../View/GridView/GridConstants\";\nimport { CellInlineComponent, getExpandIcon } from \"../../CellInlineComponent\";\nimport { findEllipsisChipMeta, HOVER_STATE_DELAY, hoverStateEllipsisWrapper, hoverStateLastChipWrapper } from \"../../FieldComponentHoverStateUtils\";\nimport { FIELD_TYPE_CSS_CLASSNAME } from \"../../FieldTypeConstants\";\nimport { ICellComponent } from \"../../Interface/ICellComponent\";\nconst globalT = globalThis as any;\n\n\nconst defaultPlusIconWidth = 0; //including margin\nconst defaultEllipsisChipWidth = 40;\nexport class CoreKeywordExtractInlineComponent extends CellInlineComponent implements ICellComponent{\n    public component      : any;                               //will discuss and update the interface later\n    public config         : KEYWORD_EXTRACTION_INLINE_CONFIG;\n    public parentDOM      : HTMLElement\n    public selectionState : boolean = false;\n    public hoverState     : boolean = false;\n    public element        : HTMLElement | null = null;\n           eventListener  : any = {};\n\n    private cacheStyle : CSSStyleDeclaration | null = null;\n\n    constructor(config : KEYWORD_EXTRACTION_INLINE_CONFIG, parentDOM : HTMLElement) {\n        super();\n        this.component = null;\n        this.config    = config;\n        this.parentDOM = parentDOM;\n        this.selectionState = this.config.isCellFocused;\n        this.constructComponent();\n        this.addCSSClass();\n    }\n\n    private addExpandIcon(params: any): void {\n        if(this.expandIcon == null){\n            this.expandIcon = getExpandIcon(params);\n            this.parentDOM.appendChild(this.expandIcon);\n        }\n        else{\n            this.parentDOM.appendChild(this.expandIcon);\n        }\n    }\n    private removeExpandIcon(): void {\n        this.expandIcon?.remove();\n    }\n\n    constructComponent () {\n        this.selectionState ? this.createSelectionComponent() : this.createRenderingComponent();\n    }\n\n    createRenderingComponent(){\n        const {renderConfig, hoverStateEllipsisChip, rowHeight} = this.config;\n        const {cellElement, options, readonly}                 = renderConfig;\n        const DGRendererConfig                       = {\n            parentElement : this.parentDOM,\n            options       : options,\n            cellElement   : cellElement,\n        }\n        this.component = new globalT.DataGrid.ChipRenderingComponent();\n        this.component.init(DGRendererConfig);\n        this.element = this.component.getElement();\n\n\n        if(!readonly) {\n            const hasPlusIcon = true;\n            let timerId : any = null;\n\n            this.eventListener.hoverState_mouseEnter = {\n                callBack : null as any,\n                element  : cellElement\n            };\n            this.eventListener.hoverState_mouseLeave = {\n                callBack : null as any,\n                element  : cellElement\n            };\n            this.eventListener.hoverState_mouseEnter.callBack = () => {\n                timerId = setTimeout(() => {\n                    if(this.cacheStyle == null){\n                        this.cacheStyle = window.getComputedStyle(cellElement);\n                    }\n                    if(this.selectionState == false && timerId != null && this.hoverState == false) {\n                        const chips    = cellElement.querySelectorAll('.dg-chip__root');\n                        const lineWrap = rowHeight != RECORDHEIGHT_SMALL;\n                        if(chips.length == 0 ){\n                            return;\n                        }\n                        const {lastChipIndex, ellipsisChipCount} = findEllipsisChipMeta(cellElement, chips, this.cacheStyle, options.length, hasPlusIcon, defaultEllipsisChipWidth, defaultPlusIconWidth, lineWrap);\n\n                        for(let i = lastChipIndex + 1; i <= chips.length - 1; i++){\n                            const chip = chips[i];\n                            chip.remove();\n                        }\n\n                        hoverStateLastChipWrapper.textContent = '';\n                        hoverStateEllipsisWrapper.textContent = '';\n                        this.parentDOM.append(hoverStateLastChipWrapper);\n                        chips[lastChipIndex] && hoverStateLastChipWrapper.append(chips[lastChipIndex]);\n                        hoverStateLastChipWrapper.append(hoverStateEllipsisWrapper);\n\n                        const ellipsisChipElement             = hoverStateEllipsisChip;\n                        ellipsisChipElement.textContent    = `+${ellipsisChipCount}`;\n                        if(ellipsisChipCount > 0){\n                            hoverStateEllipsisWrapper.append(ellipsisChipElement);\n                        }\n\n                        timerId = null;\n                        this.hoverState = true;\n                    }\n                }, HOVER_STATE_DELAY);\n            }\n\n\n            this.eventListener.hoverState_mouseLeave.callBack = () => {\n                this.eventListener.hoverState_mouseEnter.element.removeEventListener('mouseenter', this.eventListener.hoverState_mouseEnter.callBack);\n                this.eventListener.hoverState_mouseLeave.element.removeEventListener('mouseleave', this.eventListener.hoverState_mouseLeave.callBack);\n                clearTimeout(timerId);\n                timerId = null;\n                this.hoverState = false;\n                if(this.selectionState == false) {\n                    this.destroyComponent();\n                    this.createRenderingComponent();\n                }\n        \n        \n                this.eventListener.hoverState_mouseLeave.callBack = () => {\n                    this.eventListener.hoverState_mouseEnter.element.removeEventListener('mouseenter', this.eventListener.hoverState_mouseEnter.callBack);\n                    this.eventListener.hoverState_mouseLeave.element.removeEventListener('mouseleave', this.eventListener.hoverState_mouseLeave.callBack);\n                    clearTimeout(timerId);\n                    timerId = null;\n                    this.hoverState = false;\n                    if(this.selectionState == false) {\n                        this.destroyComponent();\n                        this.createRenderingComponent();\n                    }\n                }\n        \n        \n                this.eventListener.hoverState_mouseEnter.element.addEventListener('mouseenter', this.eventListener.hoverState_mouseEnter.callBack);\n        \n                this.eventListener.hoverState_mouseLeave.element.addEventListener('mouseleave', this.eventListener.hoverState_mouseLeave.callBack);\n            }\n        }\n        \n        \n    }\n\n    createSelectionComponent(){\n        const DG_Components = globalT.DG_Components;\n        const selectionConfig = this.config.getSelectionConfig();\n        this.component = new DG_Components.Select(selectionConfig);\n        this.element = this.component.api.getElement();\n    }\n\n    addCSSClass() : void {\n        const className = FIELD_TYPE_CSS_CLASSNAME[KEYWORD_EXTRACTION];\n        this.parentDOM.classList.add(className);\n    } \n\n    // enableSelection(params : any) {        \n    //     const selectionParams ={\n    //         component : this\n    //     }\n    //     this.config.onSelection(selectionParams);\n    //     this.addExpandIcon(params);\n    // }\n\n    // disableSelection() {\n    //     const deSelectionParams ={\n    //         component : this\n    //     }\n    //     this.config.onDeSelection(deSelectionParams);\n    //     this.removeExpandIcon()\n    // }\n\n    enableSelection(params : any) {\n        const selectionParams ={\n            component : this\n        }\n        this.destroyComponent();\n        this.createSelectionComponent();\n        this.parentDOM.append(this.element as HTMLElement);\n        this.selectionState = true;\n        this.config.onSelection(selectionParams);\n        this.addExpandIcon(params);\n    }\n\n    disableSelection(params : any) {\n        const deSelectionParams ={\n            component : this\n        }\n        this.destroyComponent();\n        this.createRenderingComponent();\n        this.selectionState = false;\n        this.config.onDeSelection(deSelectionParams);\n        this.removeExpandIcon();\n    }\n\n    getElement() {\n        return this.element;\n    }\n\n    destroyComponent(): void {\n        if (this.component) {\n            this.selectionState ? this.component.api.destroy() : this.component.destroy();\n\n            this.eventListener.hoverState_mouseEnter?.element.removeEventListener('mouseenter', this.eventListener.hoverState_mouseEnter.callBack);\n            this.eventListener.hoverState_mouseLeave?.element.removeEventListener('mouseleave', this.eventListener.hoverState_mouseLeave.callBack);\n        }\n\n        this.cacheStyle = null;\n    }\n}\n","// import { Text } from \"../../../../fieldcomponents/src/components/text/ts/Text\";\nimport { LANGUAGE_DETECTOR } from \"../../../Constants/FieldTypes.js\";\nimport { LANGUAGE_DETECTION_INLINE_CONFIG } from \"../../../View/GridView/FCComponents/Interface/InlineFieldConfigInterface\";\nimport { CellInlineComponent, getExpandIcon } from \"../../CellInlineComponent\";\nimport { FIELD_TYPE_CSS_CLASSNAME } from \"../../FieldTypeConstants\";\n// import { DCFieldComponents } from \"../../../../FieldComponents/fieldComponents\";\nimport { ICellComponent } from \"../../Interface/ICellComponent\";\nconst globalT = globalThis as any;\n\nexport class CoreLanguageDetectionInlineComponent extends CellInlineComponent implements ICellComponent{\n    public component       : any;\n    public config          : LANGUAGE_DETECTION_INLINE_CONFIG\n    public parentDOM       : HTMLElement;\n    public expandIcon      !: HTMLElement | null;\n    public selectionState  : boolean = false;\n    public element         : HTMLElement | null = null;\n\n    constructor(config : LANGUAGE_DETECTION_INLINE_CONFIG, parentDOM : HTMLElement) {\n        super();\n        this.component      =   null;\n        this.config         =   config;\n        this.parentDOM      =   parentDOM;\n        this.selectionState = this.config.isCellFocused;\n        this.constructComponent();\n        this.addCSSClass();\n    }\n\n    addCSSClass() : void {\n        const className = FIELD_TYPE_CSS_CLASSNAME[LANGUAGE_DETECTOR];\n        this.parentDOM.classList.add(className);\n    }\n\n    constructComponent () : void{\n        this.selectionState ? this.createSelectionComponent() : this.createRenderingComponent();\n    } \n\n    createRenderingComponent() : void{\n        const renderConfig = this.config.renderConfig;\n        const DGRendererConfig = {\n            cellData : renderConfig.value,\n            parentElement : this.parentDOM,\n            cellElement   : renderConfig.cellElement,\n        }\n        this.component = new globalT.DataGrid.TextRenderingComponent();\n        this.component.init(DGRendererConfig);\n        this.element = this.component.getElement();\n    }\n\n    createSelectionComponent() : void{\n        const selectionConfig = this.config.getSelectionConfig();\n        const DG_Components = globalT.DG_Components;\n        this.component = new DG_Components.RenderMultilineComponent(selectionConfig);\n        this.element = this.component.api.getElement();\n    }\n\n    // enableSelection(params : any) : void{\n    //     const selectionParams ={\n    //         component : this\n    //     }\n    //     this.config.onSelection(selectionParams);\n    //     this.addExpandIcon(params);\n    // }\n\n    // disableSelection() : void{   \n    //     const deSelectionParams ={\n    //         component : this\n    //     }\n    //     this.config.onDeSelection(deSelectionParams);\n    //     this.removeExpandIcon()\n    // }\n\n    enableSelection(params : any) : void{\n        const selectionParams ={\n            component : this\n        }\n        this.destroyComponent();\n        this.createSelectionComponent();\n        this.parentDOM.append(this.element as HTMLElement);\n        this.selectionState = true;\n        this.config.onSelection(selectionParams);\n        this.addExpandIcon(params);\n    }\n\n    disableSelection(params : any) : void{\n        const deSelectionParams ={\n            component : this\n        }\n        this.destroyComponent();\n        this.createRenderingComponent();\n        this.selectionState = false;\n        this.config.onDeSelection(deSelectionParams);\n        this.removeExpandIcon();\n    }\n\n    private addExpandIcon(params: any): void {\n        if(this.expandIcon == null){\n            this.expandIcon = getExpandIcon(params);\n            this.parentDOM.appendChild(this.expandIcon);\n        }\n        else{\n            this.parentDOM.appendChild(this.expandIcon);\n        }\n    }\n    private removeExpandIcon(): void {\n        this.expandIcon?.remove();\n    } \n\n    destroyComponent(): void {\n        if (this.component) {\n            this.selectionState ? this.component.api.destroy() : this.component.destroy();\n        }\n    }\n\n    getElement() : HTMLElement | null{\n        return this.element;\n    }\n}","\nimport { CSS_CLASS_NAMES } from '../../../../../Constants/CssClassNamesForUI.js'\nimport { EVENTS_BASE_SELECTION_OPTION_INSERT, EVENTS_TABLE_DATA_UPDATE } from '../../../../../Constants/EventNames.js'\nimport { ATTACHMENT, MULTIPLE_SELECTION, SINGLE_SELECTION } from '../../../../../Constants/FieldTypes.js'\nimport { RELATIONSHIP_DIRECTION_FORWARD } from '../../../../../Constants/LinkFieldConstants.js'\nimport { Response } from '../../../../../Parser/Pubsub.js'\n\nconst EXPANDED = CSS_CLASS_NAMES.EXPANDED;\nconst EVENTS = { VALUE: 'value', DATA: 'data', WHICH: 'which', KEYCODE: 'keyCode', KEY: 'key' };// No I18N\n\nexport function parseSelectionID(selectionID) {\n    return selectionID.split('__');\n}\n\nexport function createNewOptionForMultiSelectCallback(qaid, currentCellRecordID, currentCellFieldID) {\n    const self = this;\n    let newOptionIDs;\n    let multiSelectDS;\n\n    function onDataUpdate(baseID, tableID, data, actionInfo) {\n        if (actionInfo.isSameAction(qaid)) {\n            Response.unsubscribe('UI', EVENTS_TABLE_DATA_UPDATE, onDataUpdate);//No I18N\n\n            const array = data[0];\n            const fieldIDs = array[0];\n            const bitsetJSON = array[1];\n            let values;\n            for (const bitset in bitsetJSON) {\n                const recordIDJSON = bitsetJSON[bitset];\n                for (const recordID in recordIDJSON) {\n                    if(recordID === currentCellRecordID) {\n                        values = recordIDJSON[recordID];\n                        break;\n                    }\n                }\n            }\n            let fieldID;\n            let value;\n            let fieldType;\n            for (let i = 0; i < fieldIDs.length; i++) {\n                fieldID = fieldIDs[i];\n                value = values[i];\n                fieldType = getFieldType(baseID, tableID, fieldID);\n                if (fieldType === MULTIPLE_SELECTION && fieldID === currentCellFieldID) {\n                    newOptionIDs = value;\n                    break;\n                }\n            }\n            updateSelection();\n        }\n    }\n\n    function onSelectionOptionInsert(baseID, selectionID, selection, actionInfo) {\n        if (actionInfo.isSameAction(qaid)) {\n            Response.unsubscribe('UI', EVENTS_BASE_SELECTION_OPTION_INSERT, onSelectionOptionInsert);//No I18N\n\n            multiSelectDS = getMultiSelectDS(baseID, selectionID);\n            updateSelection();\n        }\n    }\n\n    function updateSelection() {\n        if (newOptionIDs && multiSelectDS) {\n            const ValueHolder = self.getData();\n            const array = newOptionIDs.split(',');\n            ValueHolder.setSelectionDS(multiSelectDS);\n            ValueHolder.setSelectedIDs(array);\n\n            self.setFullData(ValueHolder);\n            self.addClass(EXPANDED);\n            self.clickPlusButton();\n        }\n    }\n\n    Response.subscribe('UI', EVENTS_TABLE_DATA_UPDATE, onDataUpdate, ['BASEID', 'TABLEID', 'DATA', 'ACTIONINFO']);  //No I18N\n    Response.subscribe('UI', EVENTS_BASE_SELECTION_OPTION_INSERT, onSelectionOptionInsert, ['BASEID', 'SELECTIONID', 'SELECTION', 'ACTIONINFO']);  //No I18N\n}\n\nexport function createNewOptionForSingleSelectCallback(qaid, disableCellEditAndPlaceCellSelectionCallback, currentCellRecordID, currentCellFieldID) {\n    const self = this; //TODO 2162846.100000024\n    let newOptionID;\n    let singleSelectDS;\n\n    function onDataUpdate(baseID, tableID, data, actionInfo) {\n        if (actionInfo.isSameAction(qaid)) {\n            Response.unsubscribe('UI', EVENTS_TABLE_DATA_UPDATE, onDataUpdate);//No I18N\n            let fieldID;\n                let i,j;\n                let fieldType;\n            \n            for( i = 0;i<data.length;i++){\n                const bitsetJSON = data[i];\n                const fieldIDs = bitsetJSON[0];\n                \n                for (j = 0; j < fieldIDs.length; j++) {\n                    fieldID = fieldIDs[j];\n                    fieldType = getFieldType(baseID, tableID, fieldID);\n                    if (fieldType === SINGLE_SELECTION && fieldID === currentCellFieldID) {\n                        break;\n                    }\n                }\n            \n            // const bitsetJSON = data[i];\n            const recordBitset = bitsetJSON[1];\n            const singleselectFieldBitPosition = 1 << j;\n                for (const bitset in recordBitset) {\n                    const isPresent  = parseInt(bitset) & singleselectFieldBitPosition;\n                    if(isPresent){\n                        const singleSelectIndex = Math.floor(Math.log2(isPresent));\n                        const recordIDJSON = recordBitset[bitset];\n                        for (const recordID in recordIDJSON) {\n                            if(recordID === currentCellRecordID) {\n                                newOptionID = recordIDJSON[recordID][singleSelectIndex];\n                                updateSelection();\n                                break;\n                            }\n                        }\n                    }\n                    \n                }\n \n            }\n            \n            \n        }\n    }\n\n    function onSelectionOptionInsert(baseID, selectionID, selection, actionInfo) {\n        if (actionInfo.isSameAction(qaid)) {\n            Response.unsubscribe('UI', EVENTS_BASE_SELECTION_OPTION_INSERT, onSelectionOptionInsert);//No I18N\n\n            singleSelectDS = getMultiSelectDS(baseID, selectionID);\n            updateSelection();\n        }\n    }\n\n    function updateSelection() {\n        if (newOptionID && singleSelectDS) {\n            const ValueHolder = self.getData();\n            ValueHolder.setSelectionDS(singleSelectDS);\n            ValueHolder.setValue(newOptionID);\n            self.setData(ValueHolder);\n            disableCellEditAndPlaceCellSelectionCallback();\n        }\n    }\n\n    Response.subscribe('UI', EVENTS_TABLE_DATA_UPDATE, onDataUpdate, ['BASEID', 'TABLEID', 'DATA', 'ACTIONINFO']);  //No I18N\n    Response.subscribe('UI', EVENTS_BASE_SELECTION_OPTION_INSERT, onSelectionOptionInsert, ['BASEID', 'SELECTIONID', 'SELECTION', 'ACTIONINFO']);  //No I18N\n}\n\nexport function generateInputEvent(string) {\n    const event = new Event('input', {// No I18N\n        bubbles: false,\n        cancelable: true\n    });\n\n    const data = {};\n    data[EVENTS.VALUE] = string;\n\n    const which = {};\n    which[EVENTS.VALUE] = string.charCodeAt(0);\n\n    Object.defineProperty(event, EVENTS.DATA, data);\n    Object.defineProperty(event, EVENTS.WHICH, which);\n\n    return event;\n}\n\nexport function generateKeyDownEvent(string) {\n    const event = new Event('keydown', {// No I18N\n        bubbles: false,\n        cancelable: true\n    });\n\n    const data = {};\n    data[EVENTS.VALUE] = string;\n\n    const which = {};\n    which[EVENTS.VALUE] = string.charCodeAt(0);\n\n    Object.defineProperty(event, EVENTS.KEY, data);\n    Object.defineProperty(event, EVENTS.WHICH, which);\n\n    return event;\n}\n\n\nexport function generateKeyUpEvent(string, keyDownEvent) {\n    const event = new Event('keyup', {// No I18N\n        bubbles: false,\n        cancelable: true\n    });\n\n    const data = {};\n    data[EVENTS.VALUE] = string;\n\n    const which = {};\n    which[EVENTS.VALUE] = keyDownEvent.which;\n\n    const keyCode = {};\n    keyCode[EVENTS.VALUE] = keyDownEvent.keyCode;\n\n    Object.defineProperty(event, EVENTS.KEY, data);\n    Object.defineProperty(event, EVENTS.WHICH, which);\n    Object.defineProperty(event, EVENTS.KEYCODE, keyCode);\n\n    return event;\n}\n\n\nexport function getOppositeTableID(baseID, relationshipID, relationshipDirection) {\n\tconst base               = Table.Data.Workspace.get(baseID);\n\tconst relationship       = base.getRelationship(relationshipID);\n\tconst sourceTableID      = relationship.getSourceTableID()\n\tconst destinationTableID = relationship.getDestinationTableID()\n\n\treturn relationshipDirection === RELATIONSHIP_DIRECTION_FORWARD ? destinationTableID : sourceTableID\n}\n\nexport function getTable(baseID, tableID) {\n    const base = Table.Data.Workspace.baseMap.get(baseID);\n    const table = base.tables.get(tableID);\n    return table;\n}\n\nexport function onTableAttachmentDataUpdate(expandDialog, baseID, tableID, data) {\n    const array = data[0];\n    const fieldIDList = array[0];\n    const bitsetJSON = array[1];\n    let values;\n    for (const bitset in bitsetJSON) {\n        const recordIDJSON = bitsetJSON[bitset];\n        for (const recordID in recordIDJSON) {\n            values = recordIDJSON[recordID];\n        }\n    }\n    for (let i = 0; i < fieldIDList.length; i++) {\n        const fieldType = getFieldType(baseID, tableID, fieldIDList[i]);\n        if (fieldType === ATTACHMENT) {\n            const updatedData = JSON.parse(values[i]);\n            let attachmentIDs = [];\n            const base = Table.Data.Workspace.get(baseID);\n            for (let i = 0; i < updatedData.length; i++) {\n                attachmentIDs.push(updatedData[i][0]);\n                let attachment = base.getAttachmentDS(updatedData[i][0]);\n                attachment.setFileName(updatedData[i][1]);\n                // attachment.setFileExtension(updatedData[i][2]);\n            }\n            expandDialog.addAttachments(attachmentIDs);\n        }\n    }\n}\n\nexport function onAttachmentUpdate(component, baseID, attachments) {\n    const fieldID = Object.keys(attachments)[0];\n    const recordID = Object.keys(attachments[fieldID])[0];\n    const attachmentIDs = attachments[fieldID][recordID];\n    for (let i = 0; i < attachmentIDs.length; i++) {\n        const attachmentDS = getAttachmentDS(baseID, attachmentIDs[i]);\n        const valueHolder = component.getData();\n        valueHolder.addURL(attachmentDS.imgSrc);\n        component.setData(valueHolder);\n    }\n}\n\nexport function getAttachmentInfo(baseID, attachmentIDs) {\n\tlet   attachmentInfo = {};\n\tconst base           = Table.Data.Workspace.get(baseID);\n\tfor (let i = 0; i < attachmentIDs.length; i++) {\n\t\tlet            info         = base.getAttachmentDS(attachmentIDs[i]);\n\t\tattachmentInfo[info.imgSrc] = { downloadURL: info.downloadURL, fileName: info.fileName, fileExtension: info.fileExtension };\n\t}\n\treturn attachmentInfo;\n}\n\nexport function onAttachmentInsert(component, baseID, attachments) {\n    for (let key in attachments) {\n        const attachmentDS = getAttachmentDS(baseID, key);\n        const valueHolder = component.getData();\n        valueHolder.addURL(attachmentDS.imgSrc);\n\t\t//adding attachmentInfo to include updated attachment in SecondaryReadWriteComponent(Record View)\n\t\tconst attachmentInfo = getAttachmentInfo(baseID, [key]);\n\t\tcomponent.addAttachmentInfo && component.addAttachmentInfo(attachmentInfo);\n        component.setData(valueHolder);\n    }\n}\n\n// export function onAttachmentInsert(component, baseID, attachments) {\n//     for (const key in attachments) {\n//         const attachmentUrl = getAttachmentURLs(baseID, key);\n//         const valueHolder = component.getData();\n//         valueHolder.addURL(attachmentUrl);\n//         component.setData(valueHolder);\n//     }\n// }\n\nexport function getAttachments(baseID, uploadedFiles) {\n    let attachments = [];\n    const base = Table.Data.Workspace.get(baseID);\n    const attachmentDS = base.attachmentDS;\n    uploadedFiles.forEach(file => {\n        for (let key in attachmentDS) {\n            if (file === attachmentDS[key].imgSrc) {\n                attachments.push(key);\n            }\n        }\n    });\n    return attachments;\n}\n\nfunction getAttachmentDS(baseID, attachmentID) {\n    const base = Table.Data.Workspace.get(baseID);\n    return base.getAttachmentDS(attachmentID);\n}\n\nfunction getMultiSelectDS(baseID, selectionID) {\n    const base = Table.Data.Workspace.get(baseID);\n    return base.getMultiSelectDS(selectionID);\n}\n\nfunction getFieldType(baseID, tableID, fieldID) {\n    const base = Table.Data.Workspace.get(baseID);\n    const table = base.getTable(tableID);\n    const field = table.getField(fieldID);\n    return field.getType().getType();\n}\n\nexport const oppositeTableID = 1;\nexport const oppositeViewID = 1;\nexport const oppositeFieldID = 1;\nexport const allowMultiple = 0;\n","import { LINK } from \"../../../Constants/FieldTypes.js\";\nimport { getOppositeTableID } from \"../../../View/Grid/Pane/FieldTypeComponents/Utilities/ExtraUtilitiesForCallback.js\";\nimport { LINK_INLINE_CONFIG } from \"../../../View/GridView/FCComponents/Interface/InlineFieldConfigInterface.js\";\nimport { editor_initiated_from, RECORDHEIGHT_SMALL } from \"../../../View/GridView/GridConstants\";\nimport { CellInlineComponent, getExpandIcon } from \"../../CellInlineComponent\";\nimport { findEllipsisChipMeta, HOVER_STATE_DELAY, hoverStateEllipsisWrapper, hoverStateLastChipWrapper } from \"../../FieldComponentHoverStateUtils\";\nimport { FIELD_TYPE_CSS_CLASSNAME } from \"../../FieldTypeConstants\";\nimport { ICellComponent } from \"../../Interface/ICellComponent\";\nconst globalT = globalThis as any;\n\nconst defaultPlusIconWidth = 23; //including margin\nconst defaultEllipsisChipWidth = 40;\n\nexport class LinkInlineComponent extends CellInlineComponent implements ICellComponent {\n    public component       : any;\n    public config          : LINK_INLINE_CONFIG\n    public parentDOM       : HTMLElement;\n    public expandIcon      !: HTMLElement | null;\n    public element         !: HTMLElement;\n    public selectionState  : boolean = false;\n    public hoverState      : boolean = false;\n    params          : any;\n    handleClickBound: EventListener | null = null;\n    chipClickHandlerBound: EventListener | null = null;\n    eventListener   : any = {};\n    private cacheStyle : CSSStyleDeclaration | null = null;\n\n\n    constructor(config : LINK_INLINE_CONFIG, parentDOM : HTMLElement) {\n        super();\n        this.component      =   null;\n        this.config         =   config;\n        this.parentDOM      =   parentDOM;\n        this.selectionState = this.config.isCellFocused;\n\n        this.constructComponent();\n        this.addCSSClass();\n    }\n\n    public addCSSClass() : void {\n        const className = FIELD_TYPE_CSS_CLASSNAME[LINK];\n        this.parentDOM.classList.add(className);\n    }\n\n    public removeCSSClass() : void {\n        const className = FIELD_TYPE_CSS_CLASSNAME[LINK];\n        this.parentDOM.classList.remove(className);\n    }\n\n    constructComponent () {\n        this.selectionState ? this.createSelectionComponent() : this.createRenderingComponent();\n        this.bindLinkSelectionContext();\n    }\n\n    private bindLinkSelectionContext() : void {\n        if (this.config.linkSelectionContext && this.component?.api) {\n            this.config.linkSelectionContext.componentAPI = this.component.api;\n        }\n    }\n\n    createRenderingComponent(){\n        const {renderConfig, rowHeight} = this.config;\n        const {options, cellElement, readonly} = renderConfig;\n        // const multiSelectConfig = this.config.multiSelectConfiguration;\n        // const selectedOptions = multiSelectConfig.selectedIndex.map((index: number) => {\n        //     const option = multiSelectConfig.options[index];\n        //     return{\n        //         label : option.value,\n        //         color : option.color,\n        //     }\n        // });\n        const DGRendererConfig = {\n            parentElement : this.parentDOM,\n            options       : options,\n            cellElement   : cellElement,\n        }\n        this.component = new globalT.DataGrid.ChipRenderingComponent();\n        this.component.init(DGRendererConfig);\n        this.element = this.component.getElement();\n\n\n\n        if(!readonly) {\n            const hasPlusIcon = true;\n\n            let timerId : any = null;\n\n            this.eventListener.hoverState_mouseEnter = {\n                callBack : null as any,\n                element : cellElement\n            };\n            this.eventListener.hoverState_mouseLeave = {\n                callBack : null as any,\n                element : cellElement\n            };\n            this.eventListener.hoverState_mouseEnter.callBack = () => {\n                timerId = setTimeout(() => {\n                    if(this.cacheStyle == null){\n                        this.cacheStyle = window.getComputedStyle(cellElement);\n                    }\n                    if(this.selectionState == false && timerId != null && this.hoverState == false) {\n                        const chips    = cellElement.querySelectorAll('.dg-chip__root');\n                        const lineWrap = rowHeight != RECORDHEIGHT_SMALL;\n                        const {hoverStateEllipsisChip, hoverStatePlusIcon} = this.config;\n                        hoverStateLastChipWrapper.textContent = '';\n                        hoverStateEllipsisWrapper.textContent = '';\n                        this.parentDOM.append(hoverStateLastChipWrapper);\n                        if(chips.length != 0 ){\n                            const {lastChipIndex, ellipsisChipCount} = findEllipsisChipMeta(cellElement, chips, this.cacheStyle, chips.length, hasPlusIcon, defaultEllipsisChipWidth, defaultPlusIconWidth, lineWrap);\n        \n                            for(let i = lastChipIndex + 1; i <= chips.length - 1; i++){\n                                const chip = chips[i];\n                                chip.remove();\n                            }\n        \n                            chips[lastChipIndex] && hoverStateLastChipWrapper.append(chips[lastChipIndex]);\n                            hoverStateLastChipWrapper.append(hoverStateEllipsisWrapper);\n        \n        \n                            hoverStateEllipsisChip.textContent = `+${ellipsisChipCount}`;\n                            if(ellipsisChipCount > 0){\n                                hoverStateEllipsisWrapper.append(hoverStateEllipsisChip);\n                                // lastChipWidthChangeNeeded && (chips[lastChipIndex].style.width = `${lastChipWidth}px`);\n                            }\n                        } else {\n                            hoverStateLastChipWrapper.append(hoverStateEllipsisWrapper);\n                        }\n                        hoverStatePlusIcon && hoverStateEllipsisWrapper.append(hoverStatePlusIcon);\n                        timerId = null;\n                        this.hoverState = true;\n                    }\n                }, HOVER_STATE_DELAY);\n            }\n\n\n            this.eventListener.hoverState_mouseLeave.callBack = () => {\n                this.eventListener.hoverState_mouseEnter.element.removeEventListener('mouseenter', this.eventListener.hoverState_mouseEnter.callBack);\n                this.eventListener.hoverState_mouseLeave.element.removeEventListener('mouseleave', this.eventListener.hoverState_mouseLeave.callBack);\n                clearTimeout(timerId);\n                timerId = null;\n                this.hoverState = false;\n                if(this.selectionState == false) {\n                    this.destroyComponent();\n                    this.addCSSClass();\n                    this.createRenderingComponent();\n                }\n            }\n\n\n            this.eventListener.hoverState_mouseEnter.element.addEventListener('mouseenter', this.eventListener.hoverState_mouseEnter.callBack);\n\n            this.eventListener.hoverState_mouseLeave.element.addEventListener('mouseleave', this.eventListener.hoverState_mouseLeave.callBack);\n\n        }\n    }\n\n    createSelectionComponent(){\n        const selectionConfig = this.config.getSelectionConfig();\n        const DG_Components = globalT.DG_Components;\n        const multiSelectConfig = selectionConfig.multiSelectConfiguration; \n        const isSingleSelectedValue = multiSelectConfig.selectedOptions.length === 1;\n        this.component = new DG_Components.Select(multiSelectConfig);\n        this.element = this.component.api.getElement();\n        this.element.classList.toggle('zt-chip-single', isSingleSelectedValue);\n\n    }\n \n    chipClickEvent(recordId : string) : void {\n        const selectionConfig = this.config.getSelectionConfig();\n\n        const baseID                = selectionConfig.baseID;\n        const oppositeViewID        = selectionConfig.oppositeViewID;\n        const relationshipDirection = selectionConfig.relationshipDirection;\n        const relationshipID        = selectionConfig.relationshipID;\n        const oppositeTableID       = getOppositeTableID(baseID, relationshipID, relationshipDirection);\n        // Cancel any in-progress edit submit so parent link counts are preserved.\n        if (this.params?.fieldCellEventHandler?.stopEditing) {\n            this.params.fieldCellEventHandler.stopEditing(null, true, true);\n        }\n        this.params.fieldCellEventHandler.openRecordView(baseID, oppositeTableID, oppositeViewID, recordId)\n    }\n\n\n    enableSelection(params : any) {\n\n        this.destroyComponent();\n        this.addCSSClass();\n        this.createSelectionComponent();\n        this.bindLinkSelectionContext();\n        this.parentDOM.append(this.element);\n        this.selectionState = true;\n        this.hoverState = false;\n\n        this.params =  params;\n        const selectionParams ={\n            component : this,\n            componentAPI : this.component.api,\n            enableExpandParams : params\n        }\n        this.config.onSelection(selectionParams);\n    }\n\n    disableSelection(params : any) {\n        const selectionParams ={\n            component : this,\n            componentAPI : this.component.api\n        }\n        this.config.onDeSelection(selectionParams);\n\n\n        this.destroyComponent();\n        this.addCSSClass();\n        this.createRenderingComponent();\n        this.selectionState = false;\n    }\n\n    addExpandIcon(params: any): void {\n        if(this.expandIcon == null){\n            this.expandIcon = getExpandIcon(params);\n            this.parentDOM.appendChild(this.expandIcon);\n        }\n        else{\n            this.parentDOM.appendChild(this.expandIcon);\n        }\n    }\n    removeExpandIcon(): void {\n        this.expandIcon?.remove();\n    }\n\n    handleClick(event : MouseEvent){\n        event.stopPropagation();\n        this.params.fieldCellEventHandler.startEditing(this.params.recordID, this.params.fieldID, editor_initiated_from.ELLIPSES);\n    } \n\n    destroyComponent(): void {\n        if (this.component) {\n            this.selectionState ? this.component.api.destroy() : this.component.destroy();\n        }\n        this.eventListener.hoverState_mouseEnter?.element.removeEventListener('mouseenter', this.eventListener.hoverState_mouseEnter.callBack);\n        this.eventListener.hoverState_mouseLeave?.element.removeEventListener('mouseleave', this.eventListener.hoverState_mouseLeave.callBack);\n        this.removeCSSClass();\n        this.cacheStyle = null;\n    }\n    \n    getElement() {\n        return this.element;\n    }   \n}","// import { DCFieldComponents } from \"../../../../FieldComponents/fieldComponents\";\nimport { LOOKUP } from \"../../../Constants/FieldTypes.js\";\nimport { LOOKUP_INLINE_CONFIG } from \"../../../View/GridView/FCComponents/Interface/InlineFieldConfigInterface\";\nimport { CellInlineComponent, getExpandIcon } from \"../../CellInlineComponent\";\nimport { findEllipsisChipMeta, HOVER_STATE_DELAY, hoverStateEllipsisWrapper, hoverStateLastChipWrapper } from \"../../FieldComponentHoverStateUtils\";\nimport { FIELD_TYPE_CSS_CLASSNAME } from \"../../FieldTypeConstants\";\nimport { ICellComponent } from \"../../Interface/ICellComponent\";\nimport { RECORDHEIGHT_SMALL } from \"../../../View/GridView/GridConstants\";\nconst globalT = globalThis as any;\n\n \nconst defaultPlusIconWidth = 23; //including margin\nconst defaultEllipsisChipWidth = 40;\n\nexport class LookupInlineComponent extends CellInlineComponent implements ICellComponent {\n    public component    : any; //will discuss and update the interface later\n    public config       : LOOKUP_INLINE_CONFIG\n    public parentDOM    : HTMLElement;\n    public expandIcon   !: HTMLElement | null;\n    public selectionState : boolean = false;\n    public hoverState      : boolean = false;\n    public element ! : HTMLElement;\n    eventListener   : any = {};\n    private cacheStyle : CSSStyleDeclaration | null = null;\n    constructor(config : LOOKUP_INLINE_CONFIG, parentDOM : HTMLElement) {\n        super();\n        this.component      =   null;\n        this.config         =   config;\n        this.parentDOM      =   parentDOM;\n        this.selectionState = this.config.isCellFocused;\n\n        this.constructComponent();\n        this.addCSSClass();\n    }\n\n    public addCSSClass() : void {\n        const className = FIELD_TYPE_CSS_CLASSNAME[LOOKUP];\n        this.parentDOM.classList.add(className);\n    }\n\n    constructComponent () {\n        this.selectionState ? this.createSelectionComponent() : this.createRenderingComponent();\n    }\n\n    createSelectionComponent(){\n        const DG_Components = globalT.DG_Components;\n        const selectionConfig = this.config.getSelectionConfig();\n        this.component = new DG_Components.Select(selectionConfig);\n        this.element = this.component.api.getElement();\n    }\n\n    createRenderingComponent(){\n        const {renderConfig, rowHeight} = this.config;\n        const {options, cellElement} = renderConfig;\n        \n        const DGRendererConfig = {\n            parentElement : this.parentDOM,\n            options       : options,\n            cellElement   : cellElement,\n        }\n        this.component = new globalT.DataGrid.ChipRenderingComponent();\n        this.component.init(DGRendererConfig);\n        this.element = this.component.getElement();\n\n\n        const hasPlusIcon = false;\n\n        let timerId : any = null;\n\n        this.eventListener.hoverState_mouseEnter = {\n            callBack : null as any,\n            element  : cellElement\n        };\n        this.eventListener.hoverState_mouseLeave = {\n            callBack : null as any,\n            element  : cellElement\n        };\n        this.eventListener.hoverState_mouseEnter.callBack = () => {\n            timerId = setTimeout(() => {\n                if(this.cacheStyle == null){\n                    this.cacheStyle = window.getComputedStyle(cellElement);\n                }\n                if(this.selectionState == false && timerId != null && this.hoverState == false) {\n                    const ellipsisChipElement = this.config.hoverStateEllipsisChip;\n                    const chips    = cellElement.querySelectorAll('.dg-chip__root');\n                    const lineWrap = rowHeight != RECORDHEIGHT_SMALL;\n                    if(chips.length == 0 ){\n                        return;\n                    }\n                    const {lastChipIndex, ellipsisChipCount} = findEllipsisChipMeta(cellElement, chips, this.cacheStyle, options.length, hasPlusIcon, defaultEllipsisChipWidth, defaultPlusIconWidth, lineWrap);\n\n                    for(let i = lastChipIndex + 1; i <= chips.length - 1; i++){\n                        const chip = chips[i];\n                        chip.remove();\n                    }\n\n                    hoverStateLastChipWrapper.textContent = '';\n                    hoverStateEllipsisWrapper.textContent = '';\n                    this.parentDOM.append(hoverStateLastChipWrapper);\n                    chips[lastChipIndex] && hoverStateLastChipWrapper.append(chips[lastChipIndex]);\n                    hoverStateLastChipWrapper.append(hoverStateEllipsisWrapper);\n\n                    ellipsisChipElement.textContent = `+${ellipsisChipCount}`;\n                    if(ellipsisChipCount > 0){\n                        hoverStateEllipsisWrapper.append(ellipsisChipElement);\n                    }\n                    // calculatedMetas.lastChipWidthChangeNeeded && (chips[lastChipIndex].style.width = `${calculatedMetas.lastChipWidth}px`);\n\n                    timerId = null;\n                    this.hoverState = true;\n                }\n            }, HOVER_STATE_DELAY);\n        }\n\n\n        this.eventListener.hoverState_mouseLeave.callBack = () => {\n            this.eventListener.hoverState_mouseEnter.element.removeEventListener('mouseenter', this.eventListener.hoverState_mouseEnter.callBack);\n            this.eventListener.hoverState_mouseLeave.element.removeEventListener('mouseleave', this.eventListener.hoverState_mouseLeave.callBack);\n            clearTimeout(timerId);\n            timerId = null;\n            this.hoverState = false;\n            if(this.selectionState == false) {\n                this.destroyComponent();\n                this.createRenderingComponent();\n            }\n        }\n\n\n        this.eventListener.hoverState_mouseEnter.element.addEventListener('mouseenter', this.eventListener.hoverState_mouseEnter.callBack);\n        this.eventListener.hoverState_mouseLeave.element.addEventListener('mouseleave', this.eventListener.hoverState_mouseLeave.callBack);\n    }\n\n    enableSelection(params : any) {\n        const selectionParams ={\n            component : this\n        }\n        this.config.onSelection(selectionParams);\n        this.addExpandIcon(params);\n    }\n    disableSelection() {   \n        const deSelectionParams ={\n            component : this\n        }\n        this.config.onDeSelection(deSelectionParams);\n        this.removeExpandIcon()\n    }\n\n    enableSelection(params : any) {\n        const selectionParams ={\n            component : this\n        }\n        this.destroyComponent();\n        this.createSelectionComponent();\n        this.parentDOM.append(this.element);\n        this.selectionState = true;\n        this.hoverState     = false;\n        this.config.onSelection(selectionParams);\n        this.addExpandIcon(params);\n    }\n    disableSelection(params : any) {\n        const deSelectionParams ={\n            component : this\n        }\n        this.config.onDeSelection(deSelectionParams);\n        this.removeExpandIcon();\n\n        this.destroyComponent();\n        this.createRenderingComponent();\n        this.selectionState = false;\n    }\n\n    private addExpandIcon(params: any): void {\n        if(this.expandIcon == null){\n            this.expandIcon = getExpandIcon(params);\n            this.parentDOM.appendChild(this.expandIcon);\n        }\n        else{\n            this.parentDOM.appendChild(this.expandIcon);\n        }\n    }\n\n    private removeExpandIcon(): void {\n        this.expandIcon?.remove();\n    } \n \n    destroyComponent(): void {\n        if (this.component) {\n            this.selectionState ? this.component.api.destroy() : this.component.destroy();\n        }\n        this.eventListener.hoverState_mouseEnter?.element.removeEventListener('mouseenter', this.eventListener.hoverState_mouseEnter.callBack);\n        this.eventListener.hoverState_mouseLeave?.element.removeEventListener('mouseleave', this.eventListener.hoverState_mouseLeave.callBack);\n        this.cacheStyle = null;\n    }\n\n    getElement() {\n        return this.element;\n    }\n}","import { MODIFIED_BY } from \"../../../Constants/FieldTypes.js\";\nimport { MODIFIED_BY_INLINE_CONFIG } from \"../../../View/GridView/FCComponents/Interface/InlineFieldConfigInterface\";\nimport { CellInlineComponent } from \"../../CellInlineComponent\";\nimport { FIELD_TYPE_CSS_CLASSNAME } from \"../../FieldTypeConstants\";\nimport { ICellComponent } from \"../../Interface/ICellComponent\";\nimport { getAvatarIcon } from \"../CollaboratorFieldType/SingleCollaborator/SingleCollaboratorInlineComponent\";\nconst globalT = globalThis as any;\n\nexport class ModifiedByInlineComponent extends CellInlineComponent implements ICellComponent {\n    public component       : any;  //will discuss and update the interface later\n    public config          : MODIFIED_BY_INLINE_CONFIG\n    public parentDOM       : HTMLElement\n    public selectionState  : boolean = false;\n    element !              : HTMLElement;\n\n    constructor(config : MODIFIED_BY_INLINE_CONFIG, parentDOM : HTMLElement) {\n        super();\n        this.component = null;\n        this.config    = config;\n        this.parentDOM = parentDOM;\n        this.selectionState = this.config.isCellFocused;\n        this.constructComponent();\n        this.addCSSClass();\n    }\n\n    public addCSSClass() : void {\n        const className = FIELD_TYPE_CSS_CLASSNAME[MODIFIED_BY];\n        this.parentDOM.classList.add(className);\n        this.parentDOM.classList.add('dg-singleselect__root');\n    }\n\n    constructComponent () {\n        this.selectionState ? this.createSelectionComponent() : this.createRenderingComponent();\n    }\n\n    createRenderingComponent(){\n        const {label, color, imageUrl, cellElement} = this.config.renderConfig;\n        let options = [];\n        if(label != null && label != undefined){\n            options.push({\n                label  : label,\n                color  : color,\n                prefix : getAvatarIcon(imageUrl)\n            })\n        }\n        const DGRendererConfig = {\n            parentElement : this.parentDOM,\n            options       : options,\n            cellElement   : cellElement,\n        }\n        this.component = new globalT.DataGrid.ChipRenderingComponent();\n        this.component.init(DGRendererConfig);\n        this.element = this.component.getElement();\n    }\n\n    createSelectionComponent(){\n        const selectionConfig = this.config.getSelectionConfig();\n        const DG_Components = globalT.DG_Components;\n        this.component = new DG_Components.Chip(selectionConfig);\n        this.element = document.createElement('div');\n        this.element.classList.add('dg-field__root');\n        const componentElement = this.component.api.getElement();\n        this.element.append(componentElement);\n    }\n\n    enableSelection(params : any) {\n        this.destroyComponent();\n        this.createSelectionComponent();\n        this.parentDOM.append(this.element);\n        this.selectionState = true;\n    }\n    \n    disableSelection() {\n        this.destroyComponent();\n        this.createRenderingComponent();\n        this.selectionState = false;\n    }\n    \n    destroyComponent(): void {\n        if (this.component) {\n            this.selectionState ? this.component.api.destroy() : this.component.destroy();\n        }\n\n        this.parentDOM.textContent = ''; // temporary fix for the issue of the checkbox not being removed from the DOM\n    }\n\n    getElement() {\n        return this.element;\n    }\n}","// import { Date } from \"../../../../fieldcomponents/src/components/date/ts/Date\";\n// import { DCFieldComponents } from \"../../../../FieldComponents/fieldComponents\";\nimport { CREATED_TIME } from \"../../../Constants/FieldTypes.js\";\nimport { decodeToAbsoluteDate } from \"../../../DateComponentEncoderDecoder\";\nimport { MODIFIED_TIME_INLINE_CONFIG } from \"../../../View/GridView/FCComponents/Interface/InlineFieldConfigInterface\";\nimport { CellInlineComponent } from \"../../CellInlineComponent\";\nimport { FIELD_TYPE_CSS_CLASSNAME } from \"../../FieldTypeConstants\";\nimport { ICellComponent } from \"../../Interface/ICellComponent\";\nconst globalT = globalThis as any;\n\nexport class ModifiedTimeInlineComponent extends CellInlineComponent implements ICellComponent {\n    public component       : any\n    public config          : MODIFIED_TIME_INLINE_CONFIG;\n    public parentDOM       : HTMLElement\n    public selectionState  : boolean = false;\n    public element         !: HTMLElement;\n\n    constructor(config : MODIFIED_TIME_INLINE_CONFIG, parentDOM : HTMLElement) {\n        super();\n        this.component     = null;\n        this.config        = config;\n        // this.config.value = this.createValue();\n        // this.config.format = this.createDateFormat(this.config.dateFormat,this.config.hourCycle);\n        this.parentDOM = parentDOM;\n        this.constructComponent();\n        this.addCSSClass()\n    }\n    addCSSClass(): void {\n        const className = FIELD_TYPE_CSS_CLASSNAME[CREATED_TIME];\n        this.parentDOM.classList.add(className);\n    }\n\n    createValue(value : any){\n        if(value){\n            const decodedValue = decodeToAbsoluteDate(value);\n            if(decodedValue){\n                return new Date(decodedValue.year, decodedValue.monthIndex, decodedValue.date, decodedValue.hours, decodedValue.minutes, decodedValue.seconds,decodedValue.milliSeconds);\n            }\n        }\n        return NaN;\n        \n    }\n\n    constructComponent () {\n        // const DG_Components = globalT.DG_Components;\n        // this.component = new DG_Components.DateTimeReadonlyComponent(this.config);\n        this.createRenderingComponent();\n    }\n\n    createRenderingComponent(){\n        const renderConfig = this.config.renderConfig;\n        let {cellElement, value, format, dateFormat, hourCycle} = renderConfig;\n        value = this.createValue(value);\n        format = this.createDateFormat(dateFormat, hourCycle);\n        const DG_Components    = globalT.DG_Components;\n        const formattedValue   = isNaN(value) ? '' : DG_Components.DateTimeReadonlyComponent.formatDate(value, format);\n        const DGRendererConfig = {\n            cellData : formattedValue,\n            parentElement : this.parentDOM,\n            cellElement   : cellElement,\n        }\n        this.component = new globalT.DataGrid.TextRenderingComponent();\n        this.component.init(DGRendererConfig);\n        this.element = this.component.getElement();\n    }\n\n    createSelectionComponent(){\n        const DG_Components = globalT.DG_Components;\n        const selectionConfig = this.config.getSelectionConfig();\n        selectionConfig.value = this.createValue(selectionConfig.value);\n        selectionConfig.format = this.createDateFormat(selectionConfig.dateFormat, selectionConfig.hourCycle);\n        this.component = new DG_Components.DateTimeReadonlyComponent(selectionConfig);\n        this.element = this.component.api.getElement();\n    }\n\n    enableSelection(_params : any) {\n        const selectionParams ={\n            component : this\n        }\n        this.config.onSelection(selectionParams);\n    }\n    disableSelection(_params : any) {  \n        const deSelectionParams ={\n            component : this\n        }\n        this.config.onDeSelection(deSelectionParams);\n    }\n\n    enableSelection() {\n        const selectionParams ={\n            component : this\n        }\n        this.destroyComponent();\n        this.createSelectionComponent();\n        this.parentDOM.append(this.element);\n        this.selectionState = true;\n        this.config.onSelection(selectionParams);\n    }\n    \n    disableSelection() {\n        const deSelectionParams ={\n            component : this\n        }\n        this.config.onDeSelection(deSelectionParams);\n        this.destroyComponent();\n        this.createRenderingComponent();\n        this.selectionState = false;\n    }\n    \n    createDateFormat(dateFormat: string, hourCycle: 12 | 24 | 0): string {\n        const formatMap: Record<string, string> = {\n            \"Month D, YYYY\": \"MMMM DD, YYYY\",\n            \"DD/MM/YYYY\": \"DD/MM/YYYY\",\n            \"MM/DD/YYYY\": \"MM/DD/YYYY\",\n            \"YYYY/MM/DD\": \"YYYY/MM/DD\"\n        };\n    \n        let baseFormat = formatMap[dateFormat] || dateFormat;\n    \n        switch (hourCycle) {\n            case 12:\n                return `${baseFormat} hh:mm:ss A`;\n            case 24:\n                return `${baseFormat} HH:mm:ss`;\n            case 0:\n            default:\n                return baseFormat;\n        }\n    }\n\n    destroyComponent(): void {\n        if (this.component) {\n            this.selectionState ? this.component.api.destroy() : this.component.destroy();\n        }\n        this.parentDOM.textContent = ''; // temporary fix for the issue of the checkbox not being removed from the DOM\n    }\n    getElement() {\n        return this.element;\n    }\n} ","import { MULTIPLE_SELECTION } from \"../../../Constants/FieldTypes.js\";\nimport { MULTIPLE_SELECTION_INLINE_CONFIG } from \"../../../View/GridView/FCComponents/Interface/InlineFieldConfigInterface\";\nimport { RECORDHEIGHT_SMALL } from \"../../../View/GridView/GridConstants\";\nimport { CellInlineComponent, getExpandIcon } from \"../../CellInlineComponent\";\nimport { defaultPlusIconWidth, findEllipsisChipMeta, HOVER_STATE_DELAY, hoverStateEllipsisWrapper, hoverStateLastChipWrapper } from \"../../FieldComponentHoverStateUtils\";\nimport { FIELD_TYPE_CSS_CLASSNAME } from \"../../FieldTypeConstants\";\nimport { ICellComponent } from '../../Interface/ICellComponent';\nconst globalT = globalThis as any;\n\n\n\nconst defaultEllipsisChipWidth = 40;\nexport class MultiSelectInlineComponent extends CellInlineComponent implements ICellComponent {\n        public  component  : any | null;                      //will discuss and update the interface later\n        public  config     : MULTIPLE_SELECTION_INLINE_CONFIG\n        public  parentDOM  : HTMLElement;\n        expandIcon !: HTMLElement | null;\n        params          : any\n        selectionState  : boolean = false;\n        hoverState      : boolean = false;\n        element         !: HTMLElement;\n        eventListener   : any = {};\n    private cacheStyle : CSSStyleDeclaration | null = null;\n    constructor(config : MULTIPLE_SELECTION_INLINE_CONFIG, parentDOM : HTMLElement) {\n        super()\n        this.component = null;\n        this.config    = config;\n        this.parentDOM = parentDOM;\n        this.selectionState = this.config.isCellFocused;\n\n        this.constructComponent();\n        this.addCSSClass();\n    }\n  \n\n     addCSSClass() : void {\n        const className = FIELD_TYPE_CSS_CLASSNAME[MULTIPLE_SELECTION];\n        this.parentDOM.classList.add(className);\n    }\n\n    constructComponent() : void {\n        this.selectionState ? this.createSelectionComponent() : this.createRenderingComponent();\n    }\n\n    createRenderingComponent() : void {\n        const {renderConfig, rowHeight} = this.config;\n        const {options, cellElement, readonly} = renderConfig;\n        const DGRendererConfig = {\n            parentElement : this.parentDOM,\n            options       : options,\n            cellElement   : cellElement,\n        }\n        this.component = new globalT.DataGrid.ChipRenderingComponent();\n        this.component.init(DGRendererConfig);\n        this.element = this.component.getElement();\n\n\n        if(!readonly) {\n            const hasPlusIcon = true;\n            let timerId : any = null;\n\n            this.eventListener.hoverState_mouseEnter = {\n                callBack : null as any,\n                element : cellElement\n            };\n            this.eventListener.hoverState_mouseLeave = {\n                callBack : null as any,\n                element : cellElement\n            };\n            this.eventListener.hoverState_mouseEnter.callBack = () => {\n                timerId = setTimeout(() => {\n                    if(this.cacheStyle == null){\n                        this.cacheStyle = window.getComputedStyle(cellElement);\n                    }\n                    const {hoverStateEllipsisChip,hoverStatePlusIcon} = this.config;\n                    if(this.selectionState == false && this.hoverState == false && timerId != null && this.hoverState == false) {\n                        const chips    = cellElement.querySelectorAll('.dg-chip__root');\n                        const lineWrap = rowHeight != RECORDHEIGHT_SMALL;\n                        hoverStateLastChipWrapper.textContent = '';\n                        hoverStateEllipsisWrapper.textContent = '';\n                        this.parentDOM.append(hoverStateLastChipWrapper);\n                        if(chips.length != 0 ){\n                            const {lastChipIndex, ellipsisChipCount} = findEllipsisChipMeta(cellElement, chips, this.cacheStyle, options.length, hasPlusIcon, defaultEllipsisChipWidth, defaultPlusIconWidth, lineWrap);\n        \n                            for(let i = lastChipIndex + 1; i <= chips.length - 1; i++){\n                                const chip = chips[i];\n                                chip.remove();\n                            }\n        \n                            chips[lastChipIndex] && hoverStateLastChipWrapper.append(chips[lastChipIndex]);\n                            hoverStateLastChipWrapper.append(hoverStateEllipsisWrapper);\n        \n        \n                            hoverStateEllipsisChip.textContent = `+${ellipsisChipCount}`;\n                            if(ellipsisChipCount > 0){\n                                hoverStateEllipsisWrapper.append(hoverStateEllipsisChip);\n                                // lastChipWidthChangeNeeded && (chips[lastChipIndex].style.width = `${lastChipWidth}px`);\n                            }\n                        } else {\n                            hoverStateLastChipWrapper.append(hoverStateEllipsisWrapper);\n                        }\n                        hoverStatePlusIcon && hoverStateEllipsisWrapper.append(hoverStatePlusIcon);\n                        timerId = null;\n                        this.hoverState = true;\n                    }\n                }, HOVER_STATE_DELAY);\n            }\n\n            this.eventListener.hoverState_mouseLeave.callBack = () => {\n                this.eventListener.hoverState_mouseEnter.element.removeEventListener('mouseenter', this.eventListener.hoverState_mouseEnter.callBack);\n                this.eventListener.hoverState_mouseLeave.element.removeEventListener('mouseleave', this.eventListener.hoverState_mouseLeave.callBack);\n                clearTimeout(timerId);\n                timerId = null;\n                this.hoverState = false;\n                if(this.selectionState == false) {\n                    this.destroyComponent();\n                    this.createRenderingComponent();\n                }\n            }\n\n            this.eventListener.hoverState_mouseEnter.element.addEventListener('mouseenter', this.eventListener.hoverState_mouseEnter.callBack);\n            this.eventListener.hoverState_mouseLeave.element.addEventListener('mouseleave', this.eventListener.hoverState_mouseLeave.callBack);\n        }\n    }\n\n    createSelectionComponent() : void {\n        const selectionConfig = this.config.getSelectionConfig();\n        const DG_Components = globalT.DG_Components;\n        const isSingleSelectedValue = selectionConfig.selectedOptions.length === 1;\n        this.component = new DG_Components.Select(selectionConfig);\n        this.element = this.component.api.getElement();\n        this.element.classList.toggle('zt-chip-single', isSingleSelectedValue);\n    }\n\n    enableSelection(params :any) {    \n        params.component = this.component;\n        this.config.onSelection(params);\n        this.addExpandIcon(params);\n \n    }\n\n    disableSelection(params: any)  {\n        params.component = this.component;\n        this.config.onDeSelection(params);\n        this.removeExpandIcon()\n  \n    }\n\n    enableSelection(params : any) {\n        this.destroyComponent();\n        this.createSelectionComponent();\n        this.parentDOM.append(this.element);\n        this.selectionState = true;\n        this.hoverState = false;\n        params.component = this.component;\n        this.config.onSelection(params);\n        this.addExpandIcon(params);\n    }\n\n    disableSelection(params : any) {\n        params.component = this.component;\n        this.config.onDeSelection(params);\n        this.destroyComponent();\n        this.createRenderingComponent();\n        this.selectionState = false;\n        this.removeExpandIcon();\n    }\n\n    private addExpandIcon(params: any): void {\n        if(this.expandIcon == null){\n            this.expandIcon = getExpandIcon(params);\n            this.parentDOM.appendChild(this.expandIcon);\n        }\n        else{\n            this.parentDOM.appendChild(this.expandIcon);\n        }\n    }\n    private removeExpandIcon(): void {\n        this.expandIcon?.remove();\n    }\n\n    handleClick(event : MouseEvent){\n        event.stopPropagation();\n        this.params.fieldCellEventHandler.startEditing(this.params.recordID, this.params.fieldID);\n    }\n  \n    enablePlusIcon():void{\n        // this.component.api?.updateProperties({enablePlusIcon : true});\n    }\n\n    disablePlusIcon():void{\n        // this.component.api.updateProperties({enablePlusIcon : false});\n    }\n\n    enableDoubleClickEvent():void{\n        this.component.api?.getElement().addEventListener('dblclick', (event:any) => {\n            event.stopPropagation();\n        });\n    }\n\n    disableDoubleClickEvent():void{\n        // this.component.api.getElement().removeEventListener('dblclick', (event:any) => {\n        //         event.stopPropagation();\n        //     });\n    }\n\n    enableTooltip():void{\n        // this.component.api?.updateProperties({tooltipAppendto : document.querySelector(\".ZT-container\") as HTMLElement,tooltip : true});\n    }\n\n    disableTooltip():void{\n        // this.component.api.updateProperties({tooltip : false});\n    }\n\n    enableEllipsesEvent(handleClickBound:any):void{\n        // const isSelected = true;\n        // this.component.api?.updateProperties({ellipsesRendererParams : {handleClickBound,isSelected}});\n    }\n\n    disableEllipsesEvent(handleClickBound:any):void{\n        const isSelected =  false;\n        // this.component.api.updateProperties({ellipsesRendererParams : {handleClickBound,isSelected}});\n    }\n\n    destroyComponent(): void {\n        if (this.component) {\n            this.selectionState ? this.component.api.destroy() : this.component.destroy();\n        }\n        this.parentDOM.textContent = ''; // temporary fix for the issue of the checkbox not being removed from the DOM\n\n        this.eventListener.hoverState_mouseEnter?.element.removeEventListener('mouseenter', this.eventListener.hoverState_mouseEnter.callBack);\n        this.eventListener.hoverState_mouseLeave?.element.removeEventListener('mouseleave', this.eventListener.hoverState_mouseLeave.callBack);\n\n        this.cacheStyle = null;\n    }\n    getElement() : HTMLElement | null{\n        return this.element;\n    }\n}","import { NUMBER } from \"../../../Constants/FieldTypes.js\";\nimport { NUMBER_INLINE_CONFIG } from \"../../../View/GridView/FCComponents/Interface/InlineFieldConfigInterface\";\nimport { CellInlineComponent } from \"../../CellInlineComponent\";\nimport { FIELD_TYPE_CSS_CLASSNAME } from \"../../FieldTypeConstants\";\nimport { ICellComponent } from \"../../Interface/ICellComponent\";\nconst globalT = globalThis as any;\n\nexport class NumberInlineComponent extends CellInlineComponent implements ICellComponent {\n     component       : any;\n     config          : NUMBER_INLINE_CONFIG\n     parentDOM       : HTMLElement\n     public selectionState : boolean = false;\n     public element ! : HTMLElement;\n\n    constructor(config : NUMBER_INLINE_CONFIG, parentDOM : HTMLElement) {\n        super()\n        this.component      =   null;\n        this.config         =   config;\n        this.parentDOM      =   parentDOM;  \n        this.selectionState = this.config.isCellFocused;\n\n        this.constructComponent();\n        this.addCSSClass();\n    }\n\n    constructComponent () {\n        this.selectionState ? this.createSelectionComponent() : this.createRenderingComponent();\n    }\n\n    createSelectionComponent(){\n        const selectionConfig = this.config.getSelectionConfig();\n        const DG_Components   = globalT.DG_Components;\n\n        this.component = new DG_Components.RenderingNumberComponent(selectionConfig, {modules: [DG_Components.DecimalModule]});\n        this.element   = this.component.api.getElement();\n    }\n\n    createRenderingComponent(){\n        const renderConfig                                    = this.config.renderConfig;\n        const DG_Components                                   = globalT.DG_Components;\n        const { value, decimalPrecision, thousandsSeparator } = renderConfig;\n        const formattedValue                                  = DG_Components.RenderingNumberComponent.formatNumber(value, decimalPrecision, thousandsSeparator);\n        const DGRendererConfig                                = {\n            cellData      : formattedValue,\n            parentElement : this.parentDOM,\n            cellElement   : renderConfig.cellElement,\n        }\n        this.component = new globalT.DataGrid.TextRenderingComponent();\n        this.component.init(DGRendererConfig);\n        this.element = this.component.getElement();\n    }\n    \n    addCSSClass() : void {\n        const className = FIELD_TYPE_CSS_CLASSNAME[NUMBER];\n        this.parentDOM.classList.add(className);\n        this.parentDOM.classList.add('dg-number__root');\n    }\n\n    removeCSSClass() : void {\n        const className = FIELD_TYPE_CSS_CLASSNAME[NUMBER];\n        this.parentDOM.classList.remove(className);\n        this.parentDOM.classList.remove('dg-number__root');\n    }\n\n    enableSelection() {\n        this.destroyComponent();\n        this.addCSSClass();\n        this.createSelectionComponent();\n        this.parentDOM.append(this.element);\n        this.selectionState = true;\n    }\n\n    disableSelection() {\n        this.destroyComponent();\n        this.addCSSClass();\n        this.createRenderingComponent();\n        this.selectionState = false;\n    }\n \n    destroyComponent(): void {\n        if (this.component) {\n            this.selectionState ? this.component.api.destroy() : this.component.destroy();\n        }\n\n        this.parentDOM.textContent = ''; // temporary fix for the issue of the checkbox not being removed from the DOM\n        this.removeCSSClass();\n    }\n\n    getElement() {\n        return this.element;\n    }\n}","import { PERCENT } from '../../../Constants/FieldTypes.js';\nimport { PERCENT_INLINE_CONFIG } from '../../../View/GridView/FCComponents/Interface/InlineFieldConfigInterface.js';\nimport { CellInlineComponent } from '../../CellInlineComponent';\nimport { FIELD_TYPE_CSS_CLASSNAME } from '../../FieldTypeConstants';\nimport { ICellComponent } from '../../Interface/ICellComponent';\nconst globalT = globalThis as any;\n\nexport class PercentInlineComponent extends CellInlineComponent implements ICellComponent {\n     component       : any;\n    \n     config          : PERCENT_INLINE_CONFIG\n    \n     parentDOM       : HTMLElement\n     public selectionState : boolean = false;\n     public element ! : HTMLElement;\n    constructor(config : PERCENT_INLINE_CONFIG, parentDOM : HTMLElement) {\n        super()\n        this.component      =   null;\n        this.config         =   config;\n        this.parentDOM      =   parentDOM;\n        this.selectionState = this.config.isCellFocused;\n        this.constructComponent();\n        this.addCSSClass();\n    }\n\n    constructComponent () {\n        this.selectionState ? this.createSelectionComponent() : this.createRenderingComponent();\n    }\n\n    createRenderingComponent(){\n        const renderConfig                                    = this.config.renderConfig;\n        const DG_Components                                   = globalT.DG_Components;\n        const { value, decimalPrecision, thousandsSeparator } = renderConfig;\n\n        const hideSymbol                                      = true;\n        const formattedValue                                  = DG_Components.RenderingNumberComponent.formatPercentage(value, decimalPrecision, thousandsSeparator, hideSymbol);\n        const DGRendererConfig                                = {\n            cellData      : formattedValue,\n            parentElement : this.parentDOM,\n            suffix        : renderConfig.inputSuffix,\n            cellElement   : renderConfig.cellElement,\n        }\n        this.component = new globalT.DataGrid.TextRenderingComponent();\n        this.component.init(DGRendererConfig);\n        this.element = this.component.getElement();\n    }\n\n    createSelectionComponent(){\n        const selectionConfig = this.config.getSelectionConfig();\n        const DG_Components = globalT.DG_Components;\n        this.component = new DG_Components.RenderingNumberComponent(selectionConfig, {modules: [DG_Components.PercentageModule]});\n        this.element = this.component.api.getElement();\n    }\n    \n     addCSSClass() : void {\n        const className = FIELD_TYPE_CSS_CLASSNAME[PERCENT];\n        this.parentDOM.classList.add(className);\n        this.parentDOM.classList.add('dg-number__root');\n    }\n \n    getValue() {\n        const value = this.component.api.getValue()/100;\n        if(value){\n            return value.toString()\n        }else{\n            return \"\"\n        }\n    }\n\n    enableSelection() {\n        this.destroyComponent();\n        this.createSelectionComponent();\n        this.parentDOM.append(this.element);\n        this.selectionState = true;\n    }\n\n    disableSelection() {\n        this.destroyComponent();\n        this.createRenderingComponent();\n        this.selectionState = false;\n    }\n\n    destroyComponent(): void {\n        if (this.component) {\n            this.selectionState ? this.component.api.destroy() : this.component.destroy();\n        }\n        this.parentDOM.textContent = ''; // temporary fix for the issue of the checkbox not being removed from the DOM\n    }\n    getElement() {\n        return this.element;\n    }\n}","import { MULTIPLE_PHONE_NUMBER_INLINE_CONFIG } from \"../../../View/GridView/FCComponents/Interface/InlineFieldConfigInterface\";\nimport { RECORDHEIGHT_SMALL } from \"../../../View/GridView/GridConstants\";\nimport { CellInlineComponent, getExpandIcon } from \"../../CellInlineComponent\";\nimport { findEllipsisChipMeta, hoverStateEllipsisWrapper, hoverStateLastChipWrapper } from \"../../FieldComponentHoverStateUtils\";\nimport { findEllipsisChipMeta, HOVER_STATE_DELAY, hoverStateEllipsisWrapper, hoverStateLastChipWrapper } from \"../../FieldComponentHoverStateUtils\";\nimport { ICellComponent } from \"../../Interface/ICellComponent\";\n\nconst globalT = globalThis as any;\n\nconst defaultPlusIconWidth = 0; //including margin\nconst defaultEllipsisChipWidth = 40;\n\nconst hasPlusIcon = false;\nexport class MultiplePhoneNumberInlineComponent extends CellInlineComponent implements ICellComponent {\n  \n    public component        : any | null;\n    public config           : MULTIPLE_PHONE_NUMBER_INLINE_CONFIG;\n    public parentDOM        : HTMLElement;\n           params           : any;\n           handleClickBound : EventListener | null = null;\n    public expandIcon       !: HTMLElement | null;\n    public element          !: HTMLElement;\n    public selectionState   : boolean = false;\n    public hoverState      : boolean = false;\n    eventListener   : any = {};\n\n    private cacheStyle : CSSStyleDeclaration | null = null;\n\n\n    constructor(config: MULTIPLE_PHONE_NUMBER_INLINE_CONFIG, parentDOM: HTMLElement) {\n        super();\n        this.component = null;\n        this.config = config;\n        this.parentDOM = parentDOM;\n        this.selectionState = this.config.isCellFocused;\n        this.constructComponent();\n        this.addCSSClass();\n    }\n\n    private addExpandIcon(params: any): void {\n        if(this.expandIcon == null){\n            this.expandIcon = getExpandIcon(params);\n            this.parentDOM.appendChild(this.expandIcon);\n        }\n        else{\n            this.parentDOM.appendChild(this.expandIcon);\n        }\n    }\n    private removeExpandIcon(): void {\n        this.expandIcon?.remove();\n    }\n\n    constructComponent() : void {\n        this.selectionState ? this.createSelectionComponent() : this.createRenderingComponent();\n    }\n\n    createRenderingComponent() : void{\n        const {renderConfig, rowHeight} = this.config;\n        const {options, cellElement} = renderConfig;\n        // const selectedOptions = this.config.selectedIndex.map((index: number) => {\n        //     const option = this.config.options[index];\n        //     const { href, value } = option.selectedValueRendererParams as any;\n        //     return{\n        //         label    : option.value,\n        //         color    : option.color,\n        //         renderer : ()=>getBubbleUrlElement(value, href)\n        //     }\n        // });\n        const DGRendererConfig = {\n            parentElement : this.parentDOM,\n            options       : options,\n            cellElement   : cellElement,\n        }\n        this.component = new globalT.DataGrid.ChipRenderingComponent();\n        this.component.init(DGRendererConfig);\n        this.element = this.component.getElement();\n\n\n        let timerId : any = null;\n\n        this.eventListener.hoverState_mouseEnter = {\n            callBack : null as any,\n            element : cellElement\n        };\n        this.eventListener.hoverState_mouseLeave = {\n            callBack : null as any,\n            element : cellElement\n        };\n\n        this.eventListener.hoverState_mouseEnter.callBack = () => {\n            timerId = setTimeout(() => {\n                if(this.cacheStyle == null){\n                    this.cacheStyle = window.getComputedStyle(cellElement);\n                }\n                const {hoverStateEllipsisChip} = this.config;\n                if(this.selectionState == false && timerId != null && this.hoverState == false) {\n                    const chips    = cellElement.querySelectorAll('.dg-chip__root');\n                    const lineWrap = rowHeight != RECORDHEIGHT_SMALL;\n                    if(chips.length == 0 ){\n                        return;\n                    }\n                    const {lastChipIndex, ellipsisChipCount} = findEllipsisChipMeta(cellElement, chips, this.cacheStyle, options.length, hasPlusIcon, defaultEllipsisChipWidth, defaultPlusIconWidth, lineWrap);\n\n                    for(let i = lastChipIndex + 1; i <= chips.length - 1; i++){\n                        const chip = chips[i];\n                        chip.remove();\n                    }\n                    \n                    hoverStateLastChipWrapper.textContent = '';\n                    hoverStateEllipsisWrapper.textContent = '';\n                    this.parentDOM.append(hoverStateLastChipWrapper);\n                    chips[lastChipIndex] && hoverStateLastChipWrapper.append(chips[lastChipIndex]);\n                    hoverStateLastChipWrapper.append(hoverStateEllipsisWrapper);\n                    hoverStateEllipsisChip.textContent = `+${ellipsisChipCount}`;\n                    if(ellipsisChipCount > 0){\n                        hoverStateEllipsisWrapper.append(hoverStateEllipsisChip);\n                        //  lastChipWidthChangeNeeded && (chips[lastChipIndex].style.width = `${lastChipWidth}px`);\n                    }\n\n                    timerId = null;\n                    this.hoverState = true;\n                }\n            }, HOVER_STATE_DELAY);\n        }\n\n\n        this.eventListener.hoverState_mouseLeave.callBack = () => {\n            this.eventListener.hoverState_mouseEnter.element.removeEventListener('mouseenter', this.eventListener.hoverState_mouseEnter.callBack);\n            this.eventListener.hoverState_mouseLeave.element.removeEventListener('mouseleave', this.eventListener.hoverState_mouseLeave.callBack);\n            clearTimeout(timerId);\n            timerId = null;\n            this.hoverState = false;\n            if(this.selectionState == false) {\n                this.destroyComponent();\n                this.createRenderingComponent();\n            }\n        }\n\n\n        this.eventListener.hoverState_mouseEnter.element.addEventListener('mouseenter', this.eventListener.hoverState_mouseEnter.callBack);\n\n        this.eventListener.hoverState_mouseLeave.element.addEventListener('mouseleave', this.eventListener.hoverState_mouseLeave.callBack);\n\n    }\n\n    createSelectionComponent(){\n        const selectionConfig = this.config.getSelectionConfig();\n        const DG_Components = globalT.DG_Components;\n        this.component = new DG_Components.Select(selectionConfig);\n        this.component.api.getElement().classList.add('dg-token__root');\n        this.element = this.component.api.getElement();\n    }\n\n    addCSSClass(): void {\n        this.parentDOM.classList.add('dg-token__root');\n    }\n \n    // getValue() {\n    //     const selectionOptions =this.component.api.getSelectedOptions();\n    //     let selectedValueArray : number[] = [];\n    //     selectionOptions.forEach((ele : any)=>{\n    //         selectedValueArray.push(ele.value)\n    //     })\n    //     return selectedValueArray.toString()\n    // }\n\n    enableSelection(params: any) {\n        // super.enableSelection(params);\n        const selectionParams ={\n            component : this\n        }\n        this.config.onSelection(selectionParams);\n        this.addExpandIcon(params);\n\n        this.params = params;\n        this.component.api?.updateProperties({ enablePlusIcon: false });\n\n        this.handleClickBound = (evt: Event) => this.handleClick(evt as MouseEvent);\n        const ellipsesIcon = this.component.api?.getEllipsesIcon();\n        ellipsesIcon && ellipsesIcon.addEventListener('click', this.handleClickBound);\n\n        // this.component.api.getElement().addEventListener('dblclick', (event: any) => {\n        //     event.stopPropagation();\n        // });\n    }\n\n    disableSelection() : void{\n        if (this.handleClickBound) {\n            const ellipsesIcon = this.component.api?.getEllipsesIcon();\n            ellipsesIcon && ellipsesIcon.removeEventListener('click', this.handleClickBound);\n            this.handleClickBound = null;\n        }\n        // this.component.api.getElement().removeEventListener('dblclick', (event: any) => {\n        //     event.stopPropagation();\n        // });\n\n        const deSelectionParams ={\n            component : this\n        }\n        this.config.onDeSelection(deSelectionParams);\n        this.removeExpandIcon()\n        // super.disableSelection();\n    }\n\n    enableSelection(params: any) : void {\n        this.destroyComponent();\n        this.createSelectionComponent();\n        this.parentDOM.append(this.element);\n        this.selectionState = true;\n        this.hoverState = false;\n        const selectionParams ={\n            component : this\n        }\n        this.config.onSelection(selectionParams);\n        this.addExpandIcon(params);\n\n        this.params = params;\n        this.component.api?.updateProperties({ enablePlusIcon: false });\n\n        this.handleClickBound = (evt: Event) => this.handleClick(evt as MouseEvent);\n        const ellipsesIcon = this.component.api?.getEllipsesIcon();\n        ellipsesIcon && ellipsesIcon.addEventListener('click', this.handleClickBound);\n    }\n\n    disableSelection(params: any) : void {\n        if (this.handleClickBound) {\n            const ellipsesIcon = this.component.api?.getEllipsesIcon();\n            ellipsesIcon && ellipsesIcon.removeEventListener('click', this.handleClickBound);\n            this.handleClickBound = null;\n        } \n\n        const deSelectionParams ={\n            component : this\n        }\n        this.config.onDeSelection(deSelectionParams);\n        this.removeExpandIcon()\n\n\n        this.destroyComponent();\n        this.createRenderingComponent();\n        this.selectionState = false;\n    }\n    \n \n    afterGuiAttached() : void {\n        this.selectionState && this.component.api?.focus();\n    }\n\n    handleClick(event: MouseEvent) : void {\n        event.stopPropagation();\n        this.params.fieldCellEventHandler.startEditing(this.params.recordID, this.params.fieldID);\n    }\n    destroyComponent(): void {\n        if (this.component) {\n            this.selectionState ? this.component.api.destroy() : this.component.destroy();\n        }\n        this.parentDOM.textContent = ''; // temporary fix for the issue of the checkbox not being removed from the DOM\n        this.eventListener.hoverState_mouseEnter?.element.removeEventListener('mouseenter', this.eventListener.hoverState_mouseEnter.callBack);\n        this.eventListener.hoverState_mouseLeave?.element.removeEventListener('mouseleave', this.eventListener.hoverState_mouseLeave.callBack);\n        this.cacheStyle = null;\n    }\n    getElement() {\n        return this.element;\n    }\n}\n","// import { Anchor } from \"../../../../fieldcomponents/src/components/anchorField/ts/Anchor\";\n// import { DCFieldComponents } from \"../../../../FieldComponents/fieldComponents\";\nimport { PHONE_NUMBER } from \"../../../Constants/FieldTypes.js\";\nimport { CellInlineComponent, getExpandIcon } from \"../../CellInlineComponent\";\nimport { FIELD_TYPE_CSS_CLASSNAME } from \"../../FieldTypeConstants\";\nimport { ICellComponent } from \"../../Interface/ICellComponent\";\nimport { SINGLE_PHONE_NUMBER_INLINE_CONFIG } from \"../../../View/GridView/FCComponents/Interface/InlineFieldConfigInterface\";\nconst globalT = globalThis as any;\n\nexport class PhoneNumberInlineComponent extends CellInlineComponent implements ICellComponent {\n    // private component       : typeof DCFieldComponents.Anchor.prototype | null\n    public component       : any;\n    public config          : SINGLE_PHONE_NUMBER_INLINE_CONFIG\n    public parentDOM       : HTMLElement;\n    public expandIcon    !: HTMLElement | null;\n    public selectionState : boolean = false;\n    public element ! : HTMLElement;\n\n    constructor(config : SINGLE_PHONE_NUMBER_INLINE_CONFIG, parentDOM : HTMLElement) {\n        super();\n        this.component      =   null;\n        this.config         =   config;\n        this.parentDOM      =   parentDOM;\n        this.selectionState = this.config.isCellFocused;\n        this.constructComponent();\n        this.addCSSClass();\n    }\n\n    addCSSClass() : void {\n        const className = FIELD_TYPE_CSS_CLASSNAME[PHONE_NUMBER];\n        this.parentDOM.classList.add(className);\n    }\n\n    constructComponent () {\n        this.selectionState ? this.createSelectionComponent() : this.createRenderingComponent();\n    }\n\n    createRenderingComponent(){\n        const renderConfig          = this.config.renderConfig;\n        const {value, format, href} = renderConfig;\n        const DG_Components         = globalT.DG_Components;\n        const formattedValue        = DG_Components.Link.formatPhoneNumber(value, format);\n        const DGRendererConfig      = {\n            cellData : formattedValue,\n            hyperlinkDetector : ()=>{\n                const result = [];\n                if(value.toString().trim() != \"\"){\n                    result.push({\n                        displayText : formattedValue,\n                        href        : href\n                    })\n                }\n                return result;\n            },\n            wrap : true,\n            parentElement : this.parentDOM,\n            cellElement   : renderConfig.cellElement,\n        }\n        this.component = new globalT.DataGrid.TextRenderingComponent();\n        this.component.init(DGRendererConfig);\n        this.element = this.component.getElement();\n\n        const elements = this.component.getAllElements();\n        elements.forEach((element: HTMLElement)=>{\n            element.addEventListener(\"contextmenu\",(event: MouseEvent)=>{\n                renderConfig.onContextMenu(event);\n            })\n            element.addEventListener(\"mousedown\",(event: MouseEvent)=>{\n                renderConfig.onMouseDown(event);\n            })\n        });\n    }\n\n    createSelectionComponent(){\n        const renderConfig = this.config.renderConfig;\n        const DG_Components = globalT.DG_Components;\n        this.component = new DG_Components.Link(renderConfig);\n        this.element = this.component.api.getElement();\n    }\n\n    enableSelection(params : any) {\n        const selectionParams ={\n            component : this\n        }\n        this.config.onSelection(selectionParams);\n        // this.addExpandIcon(params);\n    }\n    disableSelection() {   \n        const deSelectionParams ={\n            component : this\n        }\n        this.config.onDeSelection(deSelectionParams);\n        // this.removeExpandIcon()\n    }\n\n    enableSelection(params : any) {\n        const selectionParams ={\n            component : this\n        }\n        this.destroyComponent();\n        this.createSelectionComponent();\n        this.parentDOM.append(this.element);\n        this.selectionState = true;\n        this.config.onSelection(selectionParams);\n    }\n\n    disableSelection(params : any) {   \n        const deSelectionParams ={\n            component : this\n        }\n        this.destroyComponent();\n        this.createRenderingComponent();\n        this.selectionState = false;\n        this.config.onDeSelection(deSelectionParams);\n    }\n\n    private addExpandIcon(params: any): void {\n        if(this.expandIcon == null){\n            this.expandIcon = getExpandIcon(params);\n            this.parentDOM.appendChild(this.expandIcon);\n        }\n        else{\n            this.parentDOM.appendChild(this.expandIcon);\n        }\n    }\n\n    private removeExpandIcon(): void {\n        this.expandIcon?.remove();\n    }\n\n    destroyComponent(): void {\n        if (this.component) {\n            this.selectionState ? this.component.api.destroy() : this.component.destroy();\n        }\n    }\n\n    getElement() {\n        return this.element;\n    }\n}","import { RATING } from \"../../../Constants/FieldTypes.js\";\nimport { RATING_INLINE_CONFIG } from \"../../../View/GridView/FCComponents/Interface/InlineFieldConfigInterface.js\";\nimport { CellInlineComponent } from \"../../CellInlineComponent\";\nimport { FIELD_TYPE_CSS_CLASSNAME } from \"../../FieldTypeConstants\";\nimport { ICellComponent } from \"../../Interface/ICellComponent\";\nconst globalT = globalThis as any;\n\nexport class RatingInlineComponent extends CellInlineComponent implements ICellComponent {\n     component       : any;\n     config          : RATING_INLINE_CONFIG\n     parentDOM       : HTMLElement\n     public selectionState : boolean = false;\n     public element ! : HTMLElement;\n\n    constructor(config : RATING_INLINE_CONFIG, parentDOM : HTMLElement) {\n        super()\n        this.component      =   null;\n        this.config         =   config;\n        this.parentDOM      =   parentDOM;\n        this.selectionState = this.config.isCellFocused;\n\n        this.constructComponent();\n        this.addCSSClass();\n        // this.addListener();  \n    }\n\n     addCSSClass() : void {\n        const className = FIELD_TYPE_CSS_CLASSNAME[RATING];\n        const { color } = this.config;\n        this.parentDOM.classList.add(className); \n        this.parentDOM.style.setProperty('--rating-icon-checked-color', color.full);\n        this.parentDOM.style.setProperty('--rating-icon-hover-color', color.hover);\n    }\n\n    // addListener() {\n    //     this.parentDOM.addEventListener('focusin', () => {\n    //         const { cellElement } = this.config;\n    //         cellElement.focus();\n    //     });\n    // }\n\n    constructComponent () {\n        this.selectionState ? this.createSelectionComponent() : this.createRenderingComponent();\n    }\n\n    createSelectionComponent(){\n        const DG_Components = globalT.DG_Components;\n        const selectionConfig = this.config.getSelectionConfig();\n        this.component = new DG_Components.RatingComponent(selectionConfig);\n        this.element = this.component.api.getElement();\n    }\n\n    createRenderingComponent(){\n        const renderConfig = this.config.renderConfig;\n        let { cellElement, value, maxValue, readonly, checkedIcon, uncheckedIcon, onChange } = renderConfig;\n        const DGRendererConfig = {\n            cellData      : value,\n            maxCount      : maxValue,\n            readOnly      : readonly,\n            parentElement : this.parentDOM,\n            checkedIcon   : checkedIcon(),\n            uncheckedIcon : uncheckedIcon(),\n            cellElement   : cellElement,\n        }\n        this.component = new globalT.DataGrid.RatingRenderingComponent();\n        this.component.init(DGRendererConfig);\n        this.element = this.component.getElement();\n\n        const icons = this.component.getIcons();\n        !readonly && icons.forEach((icon : any, index : number)=>{\n            icon.addEventListener('mousedown', ()=>{\n                onChange(index + 1);\n            });\n        });\n    }\n\n    enableSelection() {\n        this.destroyComponent();\n        this.createSelectionComponent();\n        this.parentDOM.append(this.element);\n        this.selectionState = true;\n\n        this.component.api?.focus();\n    }\n\n    disableSelection() {\n        this.component.api?.blur();\n\n\n        this.destroyComponent();\n        this.createRenderingComponent();\n        this.selectionState = false;\n    }\n\n\n    destroyComponent(): void {\n        if (this.component) {\n            this.selectionState ? this.component.api.destroy() : this.component.destroy();\n        }\n        this.parentDOM.textContent = ''; // temporary fix for the issue of the checkbox not being removed from the DOM\n    }\n\n    getElement() {\n        return this.element;\n    }\n  \n}","// import { DCFieldComponents } from \"../../../../FieldComponents/fieldComponents\";\nimport { ROLLUP } from \"../../../Constants/FieldTypes.js\";\nimport { ROLLUP_INLINE_CONFIG } from \"../../../View/GridView/FCComponents/Interface/InlineFieldConfigInterface\";\nimport { CellInlineComponent, getExpandIcon } from \"../../CellInlineComponent\";\nimport { findEllipsisChipMeta, HOVER_STATE_DELAY, hoverStateEllipsisWrapper, hoverStateLastChipWrapper } from \"../../FieldComponentHoverStateUtils\";\nimport { FIELD_TYPE_CSS_CLASSNAME } from \"../../FieldTypeConstants\";\nimport { RECORDHEIGHT_SMALL } from \"../../../View/GridView/GridConstants\";\nconst globalT = globalThis as any;\n\n\nconst defaultPlusIconWidth = 23; //including margin\nconst defaultEllipsisChipWidth = 40;\nexport class RollupInlineComponent extends CellInlineComponent{\n    // private component       : typeof DCFieldComponents.MultiSelectBubbleType.prototype | null\n    public component       : any; //will discuss and update the interface later\n    public config          : ROLLUP_INLINE_CONFIG\n    public parentDOM       : HTMLElement;\n    public expandIcon       !: HTMLElement | null;\n    public selectionState : boolean = false;\n    public hoverState     : boolean = false;\n    public element ! : HTMLElement;\n    eventListener   : any = {};\n    private cacheStyle : CSSStyleDeclaration | null = null;\n\n    constructor(config : ROLLUP_INLINE_CONFIG, parentDOM : HTMLElement) {\n        super();\n        this.component      =   null;\n        this.config         =   config;\n        this.parentDOM      =   parentDOM;\n        this.selectionState = this.config.isCellFocused;\n\n        this.constructComponent();\n        this.addCSSClass();\n    }\n\n    addCSSClass() : void {\n        const className = FIELD_TYPE_CSS_CLASSNAME[ROLLUP];\n        this.parentDOM.classList.add(className);\n    }\n\n    public removeCSSClass() : void {\n        const className = FIELD_TYPE_CSS_CLASSNAME[ROLLUP];\n        this.parentDOM.classList.remove(className);\n    }\n\n    constructComponent () {\n        this.selectionState ? this.createSelectionComponent() : this.createRenderingComponent();\n    }\n\n    createRenderingComponent(){\n        const {renderConfig, rowHeight} = this.config;\n        const {options, cellElement} = renderConfig;\n\n        const DGRendererConfig = {\n            parentElement : this.parentDOM,\n            options       : renderConfig.options,\n            cellElement   : renderConfig.cellElement,\n        }\n        this.component = new globalT.DataGrid.ChipRenderingComponent();\n        this.component.init(DGRendererConfig);\n        this.element = this.component.getElement();\n\n\n        const hasPlusIcon = false;\n        let timerId : any = null;\n\n        this.eventListener.hoverState_mouseEnter = {\n            callBack : null as any,\n            element  : cellElement\n        };\n        this.eventListener.hoverState_mouseLeave = {\n            callBack : null as any,\n            element  : cellElement\n        };\n        this.eventListener.hoverState_mouseEnter.callBack = () => {\n            timerId = setTimeout(() => {\n                if(this.cacheStyle == null){\n                    this.cacheStyle = window.getComputedStyle(cellElement);\n                }\n                if(this.selectionState == false && timerId != null && this.hoverState == false) {\n                    const chips    = cellElement.querySelectorAll('.dg-chip__root');\n                    const lineWrap = rowHeight != RECORDHEIGHT_SMALL;\n                    if(chips.length == 0 ){\n                        return;\n                    }\n                    const {lastChipIndex, ellipsisChipCount} = findEllipsisChipMeta(cellElement, chips, this.cacheStyle, options.length, hasPlusIcon, defaultEllipsisChipWidth, defaultPlusIconWidth, lineWrap);\n\n                    for(let i = lastChipIndex + 1; i <= chips.length - 1; i++){\n                        const chip = chips[i];\n                        chip.remove();\n                    }\n\n                    hoverStateLastChipWrapper.textContent = '';\n                    hoverStateEllipsisWrapper.textContent = '';\n                    this.parentDOM.append(hoverStateLastChipWrapper);\n                    chips[lastChipIndex] && hoverStateLastChipWrapper.append(chips[lastChipIndex]);\n                    hoverStateLastChipWrapper.append(hoverStateEllipsisWrapper);\n\n                    const ellipsisChipElement             = this.config.hoverStateEllipsisChip;\n                    ellipsisChipElement.textContent    = `+${ellipsisChipCount}`;\n                    if(ellipsisChipCount > 0){\n                        hoverStateEllipsisWrapper.append(ellipsisChipElement);\n                        // calculatedMetas.lastChipWidthChangeNeeded && (chips[calculatedMetas.lastChipIndex].style.width = `${calculatedMetas.lastChipWidth}px`);\n                    }\n\n                    timerId = null;\n                    this.hoverState = true;\n                }\n            }, HOVER_STATE_DELAY);\n        }\n\n\n        this.eventListener.hoverState_mouseLeave.callBack = () => {\n            this.eventListener.hoverState_mouseEnter.element.removeEventListener('mouseenter', this.eventListener.hoverState_mouseEnter.callBack);\n            this.eventListener.hoverState_mouseLeave.element.removeEventListener('mouseleave', this.eventListener.hoverState_mouseLeave.callBack);\n            clearTimeout(timerId);\n            timerId = null;\n            this.hoverState = false;\n            if(this.selectionState == false) {\n                this.destroyComponent();\n                this.addCSSClass();\n                this.createRenderingComponent();\n            }\n        }\n\n\n        this.eventListener.hoverState_mouseEnter.element.addEventListener('mouseenter', this.eventListener.hoverState_mouseEnter.callBack);\n\n        this.eventListener.hoverState_mouseLeave.element.addEventListener('mouseleave', this.eventListener.hoverState_mouseLeave.callBack);\n\n    }\n\n    createSelectionComponent(){\n        const selectionConfig = this.config.getSelectionConfig();\n        const DG_Components = globalT.DG_Components;\n        this.component = new DG_Components.Select(selectionConfig);\n        this.element = this.component.api.getElement();\n    }\n\n    enableSelection(params : any) {\n        const selectionParams ={\n            component : this\n        }\n        this.destroyComponent();\n        this.addCSSClass();\n        this.createSelectionComponent();\n        this.parentDOM.append(this.element);\n        this.selectionState = true;\n        this.hoverState     = false;\n        this.config.onSelection(selectionParams);\n        this.addExpandIcon(params);\n    }\n    disableSelection(params : any) {\n        const deSelectionParams ={\n            component : this\n        }\n        this.config.onDeSelection(deSelectionParams);\n        this.destroyComponent();\n        this.addCSSClass();\n        this.createRenderingComponent();\n        this.selectionState = false;\n        this.removeExpandIcon();\n    }\n\n    private addExpandIcon(params: any): void {\n        if(this.expandIcon == null){\n            this.expandIcon = getExpandIcon(params);\n            this.parentDOM.appendChild(this.expandIcon);\n        }\n        else{\n            this.parentDOM.appendChild(this.expandIcon);\n        }\n    }\n\n    private removeExpandIcon(): void {\n        this.expandIcon?.remove();\n    }\n\n   \n    \n    destroyComponent(): void {\n        if (this.component) {\n            this.selectionState ? this.component.api.destroy() : this.component.destroy();\n        }\n        this.eventListener.hoverState_mouseEnter?.element.removeEventListener('mouseenter', this.eventListener.hoverState_mouseEnter.callBack);\n        this.eventListener.hoverState_mouseLeave?.element.removeEventListener('mouseleave', this.eventListener.hoverState_mouseLeave.callBack);\n        this.removeCSSClass();\n        this.cacheStyle = null;\n    }\n\n    getElement() {\n        return this.element;\n    }\n}","import { SENTIMENTAL_ANALYSIS } from \"../../../Constants/FieldTypes.js\";\nimport { SENTIMENTAL_ANALYSIS_INLINE_CONFIG } from \"../../../View/GridView/FCComponents/Interface/InlineFieldConfigInterface\";\nimport { CellInlineComponent } from \"../../CellInlineComponent\";\nimport { FIELD_TYPE_CSS_CLASSNAME } from \"../../FieldTypeConstants\";\nimport { ICellComponent } from \"../../Interface/ICellComponent\";\nconst globalT = globalThis as any;\n\nexport class CoreSentimentalAnalysisInlineComponent extends CellInlineComponent implements ICellComponent {\n    public  component             : any;\n    public  config                : SENTIMENTAL_ANALYSIS_INLINE_CONFIG\n    public  parentDOM             : HTMLElement\n    public  params                : any\n    public  selectionState        : boolean = false;\n    public  element               : HTMLElement | null = null;\n    // private handleClickBound      : EventListener | null = null;\n    // private initialSelectionEvent : MouseEvent | null = null;\n\n    private getEmojiIcon(imageURL : string, value : string) : HTMLElement | null {\n        if(!imageURL) {\n            return null;\n        }\n        const emojiIcon = document.createElement('img');\n        emojiIcon.src = imageURL;\n        emojiIcon.alt = value;\n        emojiIcon.classList.add(\"zt-sentiment__img\");\n        return emojiIcon;\n    }\n\n\n    constructor(config : SENTIMENTAL_ANALYSIS_INLINE_CONFIG, parentDOM : HTMLElement) {\n        super();\n        this.component      =   null;\n        this.config         =   config;\n        this.parentDOM      =   parentDOM;\n        this.selectionState = this.config.isCellFocused;\n        this.constructComponent();\n        this.addCSSClass();\n    } \n\n    addCSSClass() : void {\n        const cellElement = this.config.renderConfig.cellElement;\n        const className = FIELD_TYPE_CSS_CLASSNAME[SENTIMENTAL_ANALYSIS];\n        this.parentDOM.classList.add(className);\n    }\n\n    constructComponent () {        \n        // const DG_Components = globalT.DG_Components;\n        // this.component = new DG_Components.Select(this.config);\n        \n        this.selectionState ? this.createSelectionComponent() : this.createRenderingComponent();\n        // this.handleClickBound = ((ev : MouseEvent)=>{\n        //     if(this.initialSelectionEvent != ev){\n        //         this.handleClick(ev);\n        //     }\n        // }) as EventListener;\n    }\n\n    createRenderingComponent(){\n        const renderConfig = this.config.renderConfig;\n        const { cellElement, value, imageURL} = renderConfig;\n        const emojiIcon = this.getEmojiIcon(imageURL, value);\n\n        const DGRendererConfig = {\n            cellData      : value,\n            prefix        : emojiIcon,\n            parentElement : this.parentDOM,\n            cellElement   : cellElement,\n        }\n        this.component = new globalT.DataGrid.TextRenderingComponent();\n        this.component.init(DGRendererConfig);\n        this.element = this.component.getElement();\n    }\n\n    createSelectionComponent(){\n        const selectionConfig = this.config.getSelectionConfig();\n        const DG_Components = globalT.DG_Components;\n        this.component = new DG_Components.Select(selectionConfig);\n        this.element = this.component.api.getElement();\n    }\n\n    // appendEmoji(_imgSrc : string) {\n        // const imageDOM  = document.createElement('img') as HTMLImageElement;    //No I18N\n        // imageDOM.src    = imgSrc;\n        // imageDOM.classList.add(SENTIMENT_EMOJI_CSS_CLASSNAME); \n        // this.component?.addLeadingDom(imageDOM);\n    // }\n\n    // getValue() {\n    //     // return this.component?.getValue();\n    //     const selectIds =  this.component.api.getSelectedIDs()\n    //     return selectIds[0] ?? \"\"; \n    // }\n\n    enableSelection(params:any) {\n        params.component = this.component;\n        this.config.onSelection(params);\n        // if(!this.config.readOnly) {\n        //     this.component?.showDropdownIcon();\n        // }\n\n\n        // this.params = params;\n        // this.initialSelectionEvent = params.event;\n        // this.getValue() && this.component.api.updateProperties({showDropdownIcon : true});\n\n\n\n        // this.component.api.getElement().addEventListener('mousedown', this.handleClickBound);\n    }\n\n    disableSelection(params :any) {\n        params.component = this.component;\n        this.config.onDeSelection(params);\n        // if(!this.config.readOnly) {\n        //     this.component?.hideDropdownIcon();\n        // }\n        // this.initialSelectionEvent = null;\n        // this.component.api.updateProperties({showDropdownIcon : false});\n        // this.component.api.getElement().removeEventListener('mousedown', this.handleClickBound);\n    }\n\n    enableSelection(params : any) {\n        params.component = this.component;\n        this.destroyComponent();\n        this.createSelectionComponent();\n        this.parentDOM.append(this.element as HTMLElement);\n        this.selectionState = true;\n        this.config.onSelection(params);\n    }\n\n    disableSelection(params : any) {\n        params.component = this.component;\n        this.config.onDeSelection(params);\n        this.destroyComponent();\n        this.createRenderingComponent();\n        this.selectionState = false;\n    }\n \n\n    // handleClick(event : MouseEvent){\n    //     event.stopPropagation();\n    //     this.params.fieldCellEventHandler.startEditing(this.params.recordID, this.params.fieldID);\n    // }\n\n    showDropdownIcon():void {\n    //    (this.config.selectedIndex.length > 0) && this.component.api?.updateProperties({showDropdownIcon : true});\n    }\n\n    hideDropdownIcon():void {\n        // this.component.api.updateProperties({showDropdownIcon : false});\n    }\n\n    enableTooltip() :void{\n        // this.component.api?.updateProperties({tooltipAppendto : document.querySelector(\".ZT-container\") as HTMLElement,tooltip : true});\n    }\n\n    disableTooltip():void {\n        // this.component.api.updateProperties({tooltip : false});\n    }\n\n    enableStartEditingEvent(handleClickBound:any):void{\n        this.component.api?.getElement().addEventListener('mousedown', handleClickBound);\n    }\n\n    disableStartEditingEvent(handleClickBound:any):void{\n        // this.component.api.getElement().removeEventListener('mousedown', handleClickBound);\n    }\n\n    destroyComponent(): void {\n        if (this.component) {\n            this.selectionState ? this.component.api.destroy() : this.component.destroy();\n        }\n        this.parentDOM.textContent = ''; // temporary fix for the issue of the checkbox not being removed from the DOM\n    }\n\n    getElement() {\n        return this.element;\n    }\n    \n}","const GanttStrokeColor : Record<string, string>  = {\n    \"#EBE7F8\" : \"#AA98E2\",\n    \"#C7C1EC\" : \"#AA98E2\",\n    \"#AA98E2\" : \"#7A62C4\",\n    \"#F7E7EF\" : \"#DF9BBB\",\n    \"#EBC2D6\" : \"#DF9BBB\",\n    \"#DF9BBB\" : \"#BF4E85\",\n    \"#E5F3F8\" : \"#97CEE3\",\n    \"#BFE1EE\" : \"#97CEE3\",\n    \"#97CEE3\" : \"#0A7EA8\",\n    \"#E6E8F8\" : \"#98A2E1\",\n    \"#BFC4ED\" : \"#98A2E1\",\n    \"#98A2E1\" : \"#5565CE\",\n    \"#FAEFE4\" : \"#E4BC96\",\n    \"#F2D6BA\" : \"#E4BC96\",\n    \"#E4BC96\" : \"#B05807\",\n    \"#E8F4EB\" : \"#A2D7AD\",\n    \"#C8E5CF\" : \"#A2D7AD\",\n    \"#A2D7AD\" : \"#058722\",\n    \"#F5E6E6\" : \"#DE9B9B\",\n    \"#E8C5C5\" : \"#DE9B9B\",\n    \"#DE9B9B\" : \"#AF4C41\",\n    \"#E4EEFD\" : \"#83AFF6\",\n    \"#B3CFF9\" : \"#83AFF6\",\n    \"#83AFF6\" : \"#2C72DF\",\n    \"#FDF0DA\" : \"#F0CA89\",\n    \"#FBE0B2\" : \"#F0CA89\",\n    \"#F0CA89\" : \"#A36B0A\",\n    \"#E7E9EA\" : \"#B9BDC1\",\n    \"#D3D7D9\" : \"#B9BDC1\",\n    \"#B9BDC1\" : \"#576168\"\n}\n\nexport function getGanttStrokeColor(color : string) {\n    return GanttStrokeColor[color.toUpperCase()] ?? \"#D3D7D9\"\n}","import { SINGLE_SELECTION } from \"../../../Constants/FieldTypes.js\";\nimport { getGanttStrokeColor } from \"../../../DG_Components/Utility/ColorUtilty\";\nimport { SINGLE_SELECTION_INLINE_CONFIG } from \"../../../View/GridView/FCComponents/Interface/InlineFieldConfigInterface\";\nimport { CellInlineComponent } from \"../../CellInlineComponent\";\nimport { FIELD_TYPE_CSS_CLASSNAME } from \"../../FieldTypeConstants\";\nimport { ICellComponent } from \"../../Interface/ICellComponent\";\nconst globalT = globalThis as any;\n\nexport class SingleSelectInlineComponent  extends CellInlineComponent implements ICellComponent{\n    component             : any;                          //will discuss and update the interface later\n    config                : SINGLE_SELECTION_INLINE_CONFIG\n    parentDOM             : HTMLElement\n    params                : any\n    public selectionState : boolean = false;\n    public element !              : HTMLElement | null;\n\n    public static getDotIcon(dotColor : string) : HTMLElement {\n        const dotIcon = document.createElement(\"span\");\n        dotIcon.className = \"dg-chip__label--dot\";\n\n        dotIcon.style.setProperty(\"--label-dot-color\", dotColor);\n\n        return dotIcon;\n    }\n\n    constructor(config : SINGLE_SELECTION_INLINE_CONFIG, parentDOM : HTMLElement) {\n        super()\n        this.component      =   null;\n        this.config         =   config;\n        this.parentDOM      =   parentDOM;\n        this.selectionState = this.config.isCellFocused;\n        this.constructComponent();\n        this.addCSSClass();\n    }\n\n    addCSSClass() : void {\n        const className = FIELD_TYPE_CSS_CLASSNAME[SINGLE_SELECTION];\n        this.parentDOM.classList.add(className);\n        this.parentDOM.classList.add('dg-singleselect__root');\n    }\n\n    constructComponent () {\n        this.selectionState ? this.createSelectionComponent() : this.createRenderingComponent();\n    }\n\n    createRenderingComponent(){\n        const renderConfig = this.config.renderConfig;\n        let selectedOptions = [];\n        if(renderConfig.label != null && renderConfig.label != undefined){\n            selectedOptions.push({\n                label : renderConfig.label,\n                color : renderConfig.color,\n                prefix : SingleSelectInlineComponent.getDotIcon(renderConfig.dotColor),\n                strokeColor : getGanttStrokeColor(renderConfig.color)\n            })\n        }\n        const DGRendererConfig = {\n            parentElement : this.parentDOM,\n            options       : selectedOptions,\n            cellElement   : renderConfig.cellElement,\n            isMultiple    : false\n        }\n        this.component = new globalT.DataGrid.ChipRenderingComponent();\n        this.component.init(DGRendererConfig);\n        this.element = this.component.getElement();\n    }\n\n    createSelectionComponent(){\n        const DG_Components = globalT.DG_Components;\n\n        const selectionComponentConfig = this.config.getSelectionConfig();\n        this.component = new DG_Components.Select(selectionComponentConfig);\n        this.element   = this.component.api.getElement();\n    }\n\n    enableSelection(params : any) {        \n        const selectionParams ={\n            component : this\n        }\n        this.destroyComponent();\n        this.createSelectionComponent();\n        this.parentDOM.append(this.element!);\n        this.config.onSelection(selectionParams);\n        this.selectionState = true;\n    }\n\n    disableSelection(params : any) {\n        const deSelectionParams ={\n            component : this\n        }\n        this.config.onDeSelection(deSelectionParams);\n        this.destroyComponent();\n        this.createRenderingComponent();\n        this.selectionState = false;\n    }\n\n    afterGuiAttached() { \n        this.component.api?.focus();\n    }\n\n    // showDropdownIcon():void {\n    //     this.component.api?.updateProperties({showDropdownIcon : true});\n    // }\n\n    // hideDropdownIcon():void {\n    //     this.component.api.updateProperties({showDropdownIcon : false});\n    // }\n\n    // enableTooltip() :void{\n        // this.component.api?.updateProperties({tooltipAppendto : document.querySelector(\".ZT-container\") as HTMLElement,tooltip : true});\n    // }\n\n    // disableTooltip():void {\n    //     this.component.api.updateProperties({tooltip : false});\n    // }\n\n    enableStartEditingEvent(handleClickBound:any):void{\n        const element = this.getElement();\n        element!.addEventListener('mousedown', handleClickBound);\n    }\n\n    disableStartEditingEvent(handleClickBound:any):void{\n        const element = this.getElement();\n        element && element.removeEventListener('mousedown', handleClickBound);\n    }\n\n    destroyComponent(): void {\n        if (this.component) {\n            this.selectionState ? this.component.api.destroy() : this.component.destroy();\n        }\n        this.element = null;\n    }\n\n    getElement() {\n        return this.element;\n    }\n\n}","import { CategorizedData } from \"./model/IAutoDetectDataProvider\";\n\n\nconst IP_ADDRESS_REGEX = /\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}/gi;\nconst TEL     = \"tel:\";\nconst MAILTO  = \"mailto:\";\nconst HTTP    = \"htt\" + \"p://\";\nconst HTTPS   = \"htt\" + \"ps://\";\nconst FTP     = \"ftp://\";\nconst FILE    = \"file:///\";\n\nconst PROTOCOL_ARRAY = [HTTP, HTTPS, FTP, TEL, MAILTO, FILE];\n\nexport function getTextAndLinkFromTextFieldData(textFieldData: string) : CategorizedData[] {\n\tconst totalMatches = [...textFieldData.matchAll(/\\b((\\d{10})|(\\d{3}\\-\\d{3}\\-\\d{4})|(\\d{3}\\s\\d{3}\\-\\d{4})|(\\d{3}\\s\\d{3}\\s\\d{4})|(\\d{3}\\.\\d{3}\\.\\d{4})|(\\(\\d{3}\\)\\s\\d{3}\\-\\d{4}))\\b|(\\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,}\\b)|((((ht)(tps):\\/\\/|(ht)(tp):\\/\\/|file:\\/\\/\\/|mailto:|tel:|ftp:\\/\\/)(?:[\\-;:&=\\+\\$,\\w]+@)?[A-Za-z0-9:\\.\\-]+|(?:www\\.|[\\-;:&=\\+\\$,\\w]+@)[A-Za-z0-9\\.\\-]+)((?:\\/[\\+~%\\/\\.\\w\\-_]*)?\\??(?:[\\-\\+=&;%@\\.\\w_]*)#?(?:[\\.\\!\\/\\\\\\w]*))?)|(\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3})|([\\w\\-]{3,}\\.[\\w]{2,}(\\.[\\w]+)?)/gi)];  // any changes made here should be reflected in the below three regex too.. Also check once the regexes present in the beginning of this file (first line)\n\n\tif(totalMatches.length) {\n\t\tlet rightString         = textFieldData;\n\t\tlet valueToBeSubtracted = 0;\n\n\t\tconst resultArray: CategorizedData[] = [];\n\t\ttotalMatches.forEach((matchValueArray) => {\n\t\t\tconst matchValue        = matchValueArray[0];\n\t\t\tconst matchIndex        = matchValueArray.index;\n\t\t\tconst valueForComparing = matchIndex - valueToBeSubtracted;\n\n\t\t\tlet leftString = rightString.substring(0, valueForComparing);\n\t\t\tresultArray.push({\n\t\t\t\ttype : \"text\",\n\t\t\t\tdata : leftString\n\t\t\t});\n\n\t\t\tconst isPhoneNumber = matchValue.match(/\\b((\\d{10})|(\\d{3}\\-\\d{3}\\-\\d{4})|(\\d{3}\\s\\d{3}\\-\\d{4})|(\\d{3}\\s\\d{3}\\s\\d{4})|(\\d{3}\\.\\d{3}\\.\\d{4})|(\\(\\d{3}\\)\\s\\d{3}\\-\\d{4}))\\b/gi);\n\t\t\tconst isEmailID     = matchValue.match(/(\\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,}\\b)/gi);\n\t\t\tconst isURL         = matchValue.match(/((((ht)(tps):\\/\\/|(ht)(tp):\\/\\/|file:\\/\\/\\/|mailto:|tel:|ftp:\\/\\/)(?:[\\-;:&=\\+\\$,\\w]+@)?[A-Za-z0-9:\\.\\-]+|(?:www\\.|[\\-;:&=\\+\\$,\\w]+@)[A-Za-z0-9\\.\\-]+)((?:\\/[\\+~%\\/\\.\\w\\-_]*)?\\??(?:[\\-\\+=&;%@\\.\\w_]*)#?(?:[\\.\\!\\/\\\\\\w]*))?)|(\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3})|([\\w\\-]{3,}\\.[\\w]{2,}(\\.[\\w]+)?)/gi);\n\n\t\t\tif(isPhoneNumber) {\n\t\t\t\tresultArray.push({\n\t\t\t\t\ttype : \"phoneNumber\",\n\t\t\t\t\tlink: TEL + matchValue,\n\t\t\t\t\tdata: matchValue\n\t\t\t\t});\n\t\t\t}\n\n\t\t\telse if(isEmailID) {\n\t\t\t\tresultArray.push({\n\t\t\t\t\ttype : \"email\",\n\t\t\t\t\tlink: MAILTO + matchValue,\n\t\t\t\t\tdata: matchValue\n\t\t\t\t});\n\t\t\t}\n\n\t\t\telse if(isURL) {\n\t\t\t\t// check matchValue variable is an IP address as well as decimal numbers should not come as link\n\t\t\t\tconst hasOnlyNumbersAndDots = hasStringContainsOnlyNumbersAndDots(matchValue);\n\t\t\t\tif(hasOnlyNumbersAndDots) {\n\t\t\t\t\tconst isIPAddress = matchValue.match(IP_ADDRESS_REGEX);\n\t\t\t\t\tif(isIPAddress) {\n\t\t\t\t\t\tleftString = \" \";\n\t\t\t\t\t} else { // it is a decimal number.. just add some character other than space to leftString variable to make it as text..\n\t\t\t\t\t\tleftString = \"a\";  // No I18N\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// eg: \"https://www.smartsuite.com/features/calendar-view\" it should be a link\n\t\t\t\tif(!leftString) {\n\t\t\t\t\tresultArray.push({\n\t\t\t\t\t\ttype : \"url\",\n\t\t\t\t\t\tdata : matchValue,\n\t\t\t\t\t\tlink: getUpdatedLink(matchValue)\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\telse { // eg: \"dmfgndfnhttps://www.smartsuite.com/features/calendar-view\" it should not be a link\n\t\t\t\t\tconst isSpaceCharacter = leftString[leftString.length - 1].match(/\\s/gi);\n\t\t\t\t\tisSpaceCharacter ? resultArray.push({\n\t\t\t\t\t\ttype : \"url\",\n\t\t\t\t\t\tdata : matchValue,\n\t\t\t\t\t\tlink: getUpdatedLink(matchValue)\n\t\t\t\t\t}) : resultArray.push({\n\t\t\t\t\t\ttype : \"text\",\n\t\t\t\t\t\tdata : matchValue\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst matchValueLength = matchValue.length;\n\t\t\trightString            = rightString.substring(valueForComparing + matchValueLength, rightString.length);\n\t\t\tvalueToBeSubtracted    = matchIndex + matchValueLength;\n\t\t});\n\t\tresultArray.push({\n\t\t\ttype : \"text\",\n\t\t\tdata : rightString\n\t\t});\n\t\treturn resultArray;\n\t}\n\n\treturn [\n\t\t{\n\t\t\ttype : \"text\",\n\t\t\tdata : textFieldData\n\t\t}\n\t];\n}\n\n\nfunction hasStringContainsOnlyNumbersAndDots(inputString: string) {\n\tconst onlyNumbersString = inputString.replaceAll(\"\\.\", \"\");\n\tconst emptyString       = onlyNumbersString.replaceAll(/\\d/g, \"\");\n\treturn emptyString === \"\";\n}\n\nfunction getUpdatedLink(link: string) {\n\tconst bool = PROTOCOL_ARRAY.some((protocol) => {\n\t\treturn link.startsWith(protocol);\n\t});\n\tif (!bool) {\n\t\treturn HTTP + link;\n\t}\n\treturn link;\n}\n","import { TEXT } from \"../../../Constants/FieldTypes.js\";\nimport { TEXT_RENDER_CONFIG } from \"../../FieldTypeConfigTypes\";\nimport { FIELD_TYPE_CSS_CLASSNAME, TEXT_FIELD_RECORD_SIZE_CLASSNAME } from \"../../FieldTypeConstants\";\nimport { getTextAndLinkFromTextFieldData } from \"./AutoDetectUtil\";\n\nexport interface AUTO_DETECT_SELECTION_CONFIG{\n    value      : string;\n    appendTo   : HTMLElement;\n    recordSize ?: \"SMALL\"|\"LARGE\" |\"MEDIUM\"| \"EXTRA_LARGE\";\n}\n\nexport class AutoDetect {\n    public dom: HTMLElement;\n        parentDOM: HTMLElement;\n        recordSize: \"SMALL\"|\"LARGE\" |\"MEDIUM\"| \"EXTRA_LARGE\";\n        private api : any;\n\n    constructor(params: AUTO_DETECT_SELECTION_CONFIG) {\n        this.dom = this.createRootContainer();\n        this.parentDOM = params.appendTo;\n        this.recordSize = params.recordSize;\n        const values = getTextAndLinkFromTextFieldData(params.value ?? '');\n        for (const value of values) {\n            const element = this.createElementByType(value.type, value.link);\n            element.textContent = value.data;\n            this.appendToWrapper(element);\n        }\n        this.addCSSClass();\n\n        this.api = {\n            getElement: this.getElement.bind(this),\n            setValue: this.setValue.bind(this),\n            getValue: this.getValue.bind(this),\n            destroy : this.destroy.bind(this),\n            getFormattedValue : this.getFormattedValue.bind(this)\n        }\n    }\n\n    destroy() {\n        this.dom.remove();\n    }\n\n    getValue() {\n        return this.dom.textContent || '';\n    }   \n\n    setValue(value: string) {\n        this.dom.textContent = value;\n    }\n\n    getFormattedValue() {\n        return this.dom.textContent || '';\n    }\n\n    addCSSClass() : void {\n        const className = FIELD_TYPE_CSS_CLASSNAME[TEXT];\n        this.parentDOM.classList.add(className);\n        const recordSizeClassName=  TEXT_FIELD_RECORD_SIZE_CLASSNAME[this.recordSize]\n        this.dom.classList.add(recordSizeClassName);\n    }\n\n    getElement(): HTMLElement {\n        return this.dom;\n    }\n\n    private createRootContainer(): HTMLElement {\n        const root = document.createElement(\"div\");\n        root.className = \"dg-textarea__root dg-field__root dg-field--render-state\";\n\n        const container = document.createElement(\"div\");\n        container.className = \"dg-text__container dg-field__container\";\n\n        const wrapper = document.createElement(\"div\");\n        wrapper.className = \"dg-text__input-wrapper dg-field__input-wrapper\";\n\n        container.appendChild(wrapper);\n        root.appendChild(container);\n\n        return root;\n    }\n\n    private createElementByType(type: string, link?: string): HTMLElement {\n        switch (type) {\n            case \"phoneNumber\":\n            case \"url\":\n            case \"email\":\n                return this.createAnchor(link, type);\n            default:\n            case \"text\":\n                return this.createTextSpan();\n        }\n    }\n\n    private createAnchor(link: string | undefined, _type :  \"url\" | \"email\" | \"phoneNumber\" | 'text'): HTMLAnchorElement {\n        const anchor = document.createElement(\"a\");\n        anchor.className = \"dg-text__input dg-field__input\";\n        anchor.target = \"_blank\";\n        anchor.rel ='noopener noreferrer';\n        anchor.href = link || '#';\n        this.addContextMenuListener(anchor);\n        return anchor;\n    }\n\n    private addContextMenuListener(element : HTMLElement) {\n        element.addEventListener(\"contextmenu\", (event) => {\n            event.stopPropagation();\n        });\n    }\n\n    private createTextSpan(): HTMLElement {\n        const span = document.createElement(\"span\");\n        span.className = \"dg-text__input dg-field__input\";\n        return span;\n    }\n\n    private appendToWrapper(element: HTMLElement): void {\n        const wrapper = this.dom.querySelector(\".dg-text__input-wrapper\");\n        if (wrapper) {\n            wrapper.appendChild(element);\n        }\n    }\n}\n","// import { Text } from \"../../../../fieldcomponents/src/components/text/ts/Text\";\n// import { DCFieldComponents } from \"../../../../FieldComponents/fieldComponents\";\nimport { TEXT } from \"../../../Constants/FieldTypes.js\";\nimport { TEXT_INLINE_CONFIG } from \"../../../View/GridView/FCComponents/Interface/InlineFieldConfigInterface\";\n// import { getFormattedText } from \"../../../View/GridView/FCComponents/Utility\";\nimport { CellInlineComponent, getExpandIcon } from \"../../CellInlineComponent\";\nimport { FIELD_TYPE_CSS_CLASSNAME, TEXT_FIELD_RECORD_SIZE_CLASSNAME } from \"../../FieldTypeConstants\";\nimport { AutoDetect } from \"../AutoDetectFieldType/AutoDetect\";\nimport { getTextAndLinkFromTextFieldData } from \"../AutoDetectFieldType/AutoDetectUtil\";\nconst globalT = globalThis as any;\n\nexport class TextInlineComponent extends CellInlineComponent implements CellInlineComponent{\n    public  component  : any;\n            config     : TEXT_INLINE_CONFIG;\n            parentDOM  : HTMLElement;\n    element !          : HTMLElement;\n    public  expandIcon !: HTMLElement | null;\n    public  selectionState : boolean = false;\n\n    constructor(config : TEXT_INLINE_CONFIG, parentDOM : HTMLElement) {\n        super()\n        this.component      =   null;\n        this.config         =   config;\n        this.parentDOM      =   parentDOM;\n        this.selectionState = this.config.isCellFocused;\n\n        this.constructComponent();\n        this.addCSSClass();\n    }\n\n    addCSSClass() : void {\n        const className = FIELD_TYPE_CSS_CLASSNAME[TEXT];\n        this.parentDOM.classList.add(className);\n        // const recordSizeClassName =  TEXT_FIELD_RECORD_SIZE_CLASSNAME[this.config.recordSize]\n        // this.element.classList.add(recordSizeClassName);\n    }\n\n    removeCSSClass() : void {\n        const className = FIELD_TYPE_CSS_CLASSNAME[TEXT];\n        this.parentDOM.classList.remove(className);\n        // const recordSizeClassName =  TEXT_FIELD_RECORD_SIZE_CLASSNAME[this.config.recordSize]\n        // this.element.classList.remove(recordSizeClassName);\n    }\n\n    constructComponent () {\n        this.selectionState ? this.createSelectionComponent() : this.createRenderingComponent();\n    }\n\n    createRenderingComponent(){\n        const renderConfig = this.config.renderConfig;\n        const DGRendererConfig: any = {\n            cellData      : renderConfig.value ?? '',\n            parentElement : this.config.parentDOM,\n            cellElement   : renderConfig.cellElement,\n            wrap          : true\n        }\n\n        if(renderConfig.hasURL){ \n            DGRendererConfig.hyperlinkDetector = (value: string)=>{\n                const result = getTextAndLinkFromTextFieldData(value);\n                return result.map((item: any)=>{\n                    return {\n                        displayText : item.data,\n                        href        : item.link\n                    }\n                });\n            }\n        }\n        this.component = new globalT.DataGrid.TextRenderingComponent();\n        this.component.init(DGRendererConfig);\n        this.element = this.component.getElement();\n    }\n\n    createSelectionComponent(){\n        const DG_Components = globalT.DG_Components;\n        const selectionConfig = this.config.getSelectionConfig();\n        if(selectionConfig.hasURL){\n            const autoDetecConfig = {\n                value      : selectionConfig.value ?? '',\n                appendTo   : this.parentDOM,\n                recordSize : this.config.recordSize\n            }\n            // const format = selectionConfig.format|| 'none';\n            // selectionConfig.value = getFormattedText(selectionConfig.value,format)\n            this.component = new AutoDetect(autoDetecConfig);\n        }\n        else{\n            this.component = new DG_Components.RenderMultilineComponent(selectionConfig);\n        }\n        this.element = this.component.api.getElement();\n    }\n \n\n    private addExpandIcon(params: any): void {\n        if(this.expandIcon == null){\n            this.expandIcon = getExpandIcon(params);\n            this.parentDOM.appendChild(this.expandIcon);\n        }\n        else{\n            this.parentDOM.appendChild(this.expandIcon);\n        }\n    }\n    private removeExpandIcon(): void {\n        this.expandIcon?.remove();\n    } \n \n    enableSelection(params : any) {\n        const selectionParams ={\n            component : this\n        }\n        this.destroyComponent();\n        this.addCSSClass();\n        this.createSelectionComponent();\n        this.parentDOM.append(this.element);\n        this.config.onSelection(selectionParams);\n        this.addExpandIcon(params);\n        this.selectionState = true;\n    }\n    disableSelection() {\n        const deSelectionParams ={\n            component : this\n        }\n        this.destroyComponent();\n        this.addCSSClass();\n        this.createRenderingComponent();\n        this.config.onDeSelection(deSelectionParams);\n        this.removeExpandIcon();\n        this.selectionState = false;\n    }\n\n    destroyComponent(): void {\n        if (this.component) {\n            this.selectionState ? this.component.api.destroy() : this.component.destroy();\n        }\n        this.removeCSSClass();\n    }\n\n    getElement() {\n        return this.element;\n    }\n}","import { MULTIPLE_URL_INLINE_CONFIG } from '../../../View/GridView/FCComponents/Interface/InlineFieldConfigInterface';\nimport { CellInlineComponent, getExpandIcon } from '../../CellInlineComponent';\nimport { findEllipsisChipMeta, hoverStateEllipsisWrapper, hoverStateLastChipWrapper } from '../../FieldComponentHoverStateUtils';\nimport { findEllipsisChipMeta, HOVER_STATE_DELAY, hoverStateEllipsisWrapper, hoverStateLastChipWrapper } from '../../FieldComponentHoverStateUtils';\nimport { ICellComponent } from '../../Interface/ICellComponent';\nimport { RECORDHEIGHT_SMALL } from '../../../View/GridView/GridConstants';\nconst globalT = globalThis as any;\n\n\nconst defaultPlusIconWidth = 0; //including margin\nconst defaultEllipsisChipWidth = 40;\n\nconst hasPlusIcon = false;\n\nexport class MultipleURLInlineComponent extends CellInlineComponent implements ICellComponent {\n    public  component  : any | null;\n    public  config     : MULTIPLE_URL_INLINE_CONFIG;\n    public  parentDOM  : HTMLElement;\n    public  expandIcon : HTMLElement | null = null;\n    public  element    : HTMLElement | null = null;\n    public  selectionState : boolean = false;\n    public  hoverState      : boolean = false;\n    params: any;\n    handleClickBound: EventListener | null = null;\n    eventListener   : any = {};\n    private cacheStyle : CSSStyleDeclaration | null = null;\n\n    constructor(config: MULTIPLE_URL_INLINE_CONFIG, parentDOM: HTMLElement) {\n        super();\n        this.component = null;\n        this.config = config;\n        this.parentDOM = parentDOM;\n        this.selectionState = this.config.isCellFocused;\n\n        this.constructComponent();\n        this.addCSSClass();\n    }\n\n    private addExpandIcon(params: any): void {\n        if(this.expandIcon == null){\n            this.expandIcon = getExpandIcon(params);\n            this.parentDOM.appendChild(this.expandIcon);\n        }\n        else{\n            this.parentDOM.appendChild(this.expandIcon);\n        }\n    }\n    private removeExpandIcon(): void {\n        this.expandIcon?.remove();\n    }\n\n    constructComponent() {\n        this.selectionState ? this.createSelectionComponent() : this.createRenderingComponent();\n    } \n\n    createRenderingComponent(){\n        const {renderConfig, rowHeight} = this.config;\n        const {options, cellElement} = renderConfig;\n\n        const DGRendererConfig = {\n            parentElement : this.parentDOM,\n            options       : options,\n            cellElement   : cellElement,\n        }\n        this.component = new globalT.DataGrid.ChipRenderingComponent();\n        this.component.init(DGRendererConfig);\n        this.element = this.component.getElement();\n\n        let timerId : any = null;\n\n        this.eventListener.hoverState_mouseEnter = {\n            callBack : null as any,\n            element : cellElement\n        };\n        this.eventListener.hoverState_mouseLeave = {\n            callBack : null as any,\n            element : cellElement\n        };\n\n        this.eventListener.hoverState_mouseEnter.callBack = () => {\n            timerId = setTimeout(() => {\n                if(this.cacheStyle == null){\n                    this.cacheStyle = window.getComputedStyle(cellElement);\n                }\n                const {hoverStateEllipsisChip} = this.config;\n                if(this.selectionState == false && timerId != null && this.hoverState == false) {\n                    const chips    = cellElement.querySelectorAll('.dg-chip__root');\n                    const lineWrap = rowHeight != RECORDHEIGHT_SMALL;\n                    if(chips.length == 0 ){\n                        return;\n                    }\n                    const calculatedMetas = findEllipsisChipMeta(cellElement, chips, this.cacheStyle, options.length, hasPlusIcon, defaultEllipsisChipWidth, defaultPlusIconWidth, lineWrap);\n                    const lastChipIndex = calculatedMetas.lastChipIndex;\n                    for(let i = lastChipIndex + 1; i <= chips.length - 1; i++){\n                        const chip = chips[i];\n                        chip.remove();\n                    }\n                    \n                    hoverStateLastChipWrapper.textContent = '';\n                    hoverStateEllipsisWrapper.textContent = '';\n                    this.parentDOM.append(hoverStateLastChipWrapper);\n                    chips[lastChipIndex] && hoverStateLastChipWrapper.append(chips[lastChipIndex]);\n                    hoverStateLastChipWrapper.append(hoverStateEllipsisWrapper);\n                    \n                    hoverStateEllipsisChip.textContent = `+${calculatedMetas.ellipsisChipCount}`;\n                    if(calculatedMetas.ellipsisChipCount > 0){\n                        hoverStateEllipsisWrapper.append(hoverStateEllipsisChip);\n                        // calculatedMetas.lastChipWidthChangeNeeded && (chips[calculatedMetas.lastChipIndex].style.width = `${calculatedMetas.lastChipWidth}px`);\n                    }\n\n                    timerId = null;\n                    this.hoverState = true;\n                }\n            }, HOVER_STATE_DELAY);\n        }\n\n\n        this.eventListener.hoverState_mouseLeave.callBack = () => {\n            this.eventListener.hoverState_mouseEnter.element.removeEventListener('mouseenter', this.eventListener.hoverState_mouseEnter.callBack);\n            this.eventListener.hoverState_mouseLeave.element.removeEventListener('mouseleave', this.eventListener.hoverState_mouseLeave.callBack);\n            clearTimeout(timerId);\n            timerId = null;\n            this.hoverState = false;\n            if(this.selectionState == false) {\n                this.destroyComponent();\n                this.createRenderingComponent();\n            }\n        }\n\n\n        this.eventListener.hoverState_mouseEnter.element.addEventListener('mouseenter', this.eventListener.hoverState_mouseEnter.callBack);\n\n        this.eventListener.hoverState_mouseLeave.element.addEventListener('mouseleave', this.eventListener.hoverState_mouseLeave.callBack);\n\n    }\n\n    createSelectionComponent(){\n        const selectionConfig = this.config.getSelectionConfig();\n        const DG_Components = globalT.DG_Components;\n        this.component = new DG_Components.Select(selectionConfig);\n        this.component.api.getElement().classList.add('dg-token__root');\n        this.element = this.component.api.getElement();\n    }\n\n    addCSSClass(): void {\n        this.parentDOM.classList.add('dg-token__root');\n    }\n\n    getComponent() {\n        return this.component;\n    }\n\n    getValue() {\n        const selectionOptions =this.component.api.getSelectedOptions();\n        let selectedValueArray : string[] = [];\n        selectionOptions.forEach((ele : any)=>{\n            selectedValueArray.push(ele.value)\n        })\n        return selectedValueArray.toString()\n    }\n\n    enableSelection(params: any) {\n        // super.enableSelection(params);\n        const selectionParams ={\n            component : this\n        }\n        this.config.onSelection(selectionParams);\n        this.addExpandIcon(params);\n\n        this.params = params;\n        this.component.api?.updateProperties({ enablePlusIcon: false });\n\n        this.handleClickBound = (evt: Event) => this.handleClick(evt as MouseEvent);\n        const ellipsesIcon = this.component.api?.getEllipsesIcon();\n        ellipsesIcon && ellipsesIcon.addEventListener('click', this.handleClickBound);\n\n        // this.component.api.getElement().addEventListener('dblclick', (event: any) => {\n        //     event.stopPropagation();\n        // });\n    }\n\n    disableSelection() {\n        if (this.handleClickBound) {\n            const ellipsesIcon = this.component.api?.getEllipsesIcon();\n            ellipsesIcon && ellipsesIcon.removeEventListener('click', this.handleClickBound);\n            this.handleClickBound = null;\n        }\n        // this.component.api.getElement().removeEventListener('dblclick', (event: any) => {\n        //     event.stopPropagation();\n        // });\n        const deSelectionParams ={\n            component : this\n        }\n        this.config.onDeSelection(deSelectionParams);\n        this.removeExpandIcon()\n        // super.disableSelection();\n    }\n\n    enableSelection(params: any) {\n        const selectionParams ={\n            component : this\n        }\n\n        this.destroyComponent();\n        this.createSelectionComponent();\n        this.parentDOM.append(this.element);\n        this.selectionState = true;\n        this.hoverState = false;\n\n\n        \n        this.config.onSelection(selectionParams);\n        this.addExpandIcon(params);\n\n        this.params = params;\n        this.component.api?.updateProperties({ enablePlusIcon: false });\n\n        this.handleClickBound = (evt: Event) => this.handleClick(evt as MouseEvent);\n        const ellipsesIcon = this.component.api?.getEllipsesIcon();\n        ellipsesIcon && ellipsesIcon.addEventListener('click', this.handleClickBound);\n    }\n\n    disableSelection(params: any) {\n        const deSelectionParams ={\n            component : this\n        }\n\n        if (this.handleClickBound) {\n            const ellipsesIcon = this.component.api?.getEllipsesIcon();\n            ellipsesIcon && ellipsesIcon.removeEventListener('click', this.handleClickBound);\n            this.handleClickBound = null;\n        }\n        // this.component.api.getElement().removeEventListener('dblclick', (event: any) => {\n        //     event.stopPropagation();\n        // });\n        this.config.onDeSelection(deSelectionParams);\n        this.removeExpandIcon()\n        // super.disableSelection();\n        \n\n        this.destroyComponent();\n        this.createRenderingComponent();\n        this.selectionState = false;\n    }\n\n    \n    handleClick(event: MouseEvent) {\n        event.stopPropagation();\n        this.params.fieldCellEventHandler.startEditing(this.params.recordID, this.params.fieldID);\n    }\n\n    afterGuiAttached() {\n        this.component.api?.focus();\n    }\n \n    destroyComponent(): void {\n        if (this.component) {\n            this.selectionState ? this.component.api.destroy() : this.component.destroy();\n\n            this.eventListener.hoverState_mouseEnter?.element.removeEventListener('mouseenter', this.eventListener.hoverState_mouseEnter.callBack);\n            this.eventListener.hoverState_mouseLeave?.element.removeEventListener('mouseleave', this.eventListener.hoverState_mouseLeave.callBack);\n        }\n        this.cacheStyle = null;\n    }\n    getElement() {\n        return this.element;\n    }\n}\n","// import { DCFieldComponents } from \"../../../../FieldComponents/fieldComponents\";\nimport { URL } from \"../../../Constants/FieldTypes.js\";\nimport { SINGLE_URL_INLINE_CONFIG } from \"../../../View/GridView/FCComponents/Interface/InlineFieldConfigInterface\";\nimport { CellInlineComponent, getExpandIcon } from \"../../CellInlineComponent\";\nimport { FIELD_TYPE_CSS_CLASSNAME } from \"../../FieldTypeConstants\";\nimport { ICellComponent } from \"../../Interface/ICellComponent\";\n\nconst globalT = globalThis as any;\n\n//pending\n// 1. need to merge multiple url into single component\n\nexport class URLInlineComponent extends CellInlineComponent implements ICellComponent {\n    // private component       : typeof DCFieldComponents.Anchor.prototype | null\n    public component       : any;\n    public config          : SINGLE_URL_INLINE_CONFIG\n    public parentDOM       : HTMLElement;\n    public expandIcon !    : HTMLElement | null;\n    public selectionState  : boolean = false;\n    element !              : HTMLElement;\n\n    constructor(config : SINGLE_URL_INLINE_CONFIG, parentDOM : HTMLElement) {\n        super();\n        this.component      =   null;\n        this.config         =   config;\n        this.parentDOM      =   parentDOM;\n        this.selectionState = this.config.isCellFocused;\n\n        this.constructComponent();\n        this.addCSSClass();\n    }\n\n    public addCSSClass() : void {\n        const className = FIELD_TYPE_CSS_CLASSNAME[URL];\n        this.parentDOM.classList.add(className);\n    }\n\n    public removeCSSClass() : void {\n        const className = FIELD_TYPE_CSS_CLASSNAME[URL];\n        this.parentDOM.classList.remove(className);\n    }\n\n    constructComponent () {\n        this.selectionState ? this.createSelectionComponent() : this.createRenderingComponent();\n    }\n\n    createRenderingComponent(){\n        const renderConfig = this.config.renderConfig;\n        const DGRendererConfig: any = {\n            cellData : renderConfig.value,\n            hyperlinkDetector : (value: string)=>{\n                const result = [];\n                if(value.trim()){\n                    // Parse URL: if value already has protocol, use it; otherwise prepend https://\n                    const href = value.startsWith('http://') || value.startsWith('https://') \n                        ? value \n                        : `https://${value}`;\n                    result.push({\n                        displayText : value,\n                        href : href\n                    })\n                }\n                return result;\n            },\n            parentElement : this.parentDOM,\n            cellElement   : renderConfig.cellElement,\n            wrap : true\n        }\n        this.component = new globalT.DataGrid.TextRenderingComponent();\n        this.component.init(DGRendererConfig);\n        this.element = this.component.getElement();\n\n        const elements = this.component.getAllElements();\n        elements.forEach((element: HTMLElement)=>{\n            element.addEventListener(\"contextmenu\",(event: MouseEvent)=>{\n                renderConfig.onContextMenu(event);\n            })\n            element.addEventListener(\"mousedown\",(event: MouseEvent)=>{\n                renderConfig.onMouseDown(event);\n            })\n        });\n    }\n\n    createSelectionComponent(){\n        const selectionConfig = this.config.getSelectionConfig();\n        const DG_Components = globalT.DG_Components;\n        this.component = new DG_Components.Link(selectionConfig);\n        this.element = this.component.api.getElement();\n    }\n\n    enableSelection(params : any) {\n        const selectionParams ={\n            component : this\n        }\n        this.destroyComponent();\n        this.addCSSClass();\n        this.createSelectionComponent();\n        this.parentDOM.append(this.element);\n        this.config.onSelection(selectionParams);\n        this.addExpandIcon(params);\n        this.selectionState = true;\n    }\n\n    disableSelection() {   \n        const deSelectionParams ={\n            component : this\n        }\n        this.destroyComponent();\n        this.addCSSClass();\n        this.createRenderingComponent();\n        this.config.onDeSelection(deSelectionParams);\n        this.removeExpandIcon();\n        this.selectionState = false;\n    }\n\n    private addExpandIcon(params: any): void {\n        if(this.expandIcon == null){\n            this.expandIcon = getExpandIcon(params);\n            this.parentDOM.appendChild(this.expandIcon);\n        }\n        else{\n            this.parentDOM.appendChild(this.expandIcon);\n        }\n    }\n\n    private removeExpandIcon(): void {\n        this.expandIcon?.remove();\n    }\n\n    destroyComponent(): void {\n        if (this.component) {\n            this.selectionState ? this.component.api.destroy() : this.component.destroy();\n        }\n        this.removeCSSClass();\n    }\n\n    getElement() {\n        return this.element;\n    } \n}","\nfunction customCheckBoxRenderer(checkedElement : SVGElement |  HTMLElement,uncheckedElement : SVGElement |  HTMLElement){\n    return class {\n        private parentElement : HTMLElement;\n        private checkedElement :any\n        private uncheckedElement : any;\n        private checked :  any;\n        constructor(state :  boolean ,parentElement :  HTMLElement){\n            this.parentElement =  parentElement;\n            this.checkedElement = checkedElement.cloneNode(true);\n            this.uncheckedElement = uncheckedElement.cloneNode(true);\n            this.init(state);\n\n        }\n        init(state :  boolean) {\n            this.checked = state;\n            this.parentElement = this.getParentElement();\n            if (this.parentElement) {\n                this.renderCheckbox(state);\n            }\n        }\n        getParentElement(){\n            return this.parentElement;\n        }\n\n        getGUI(){\n            return this.parentElement;\n        }\n\n        \n        onChange(value: boolean) {\n            if (value) {\n                this.checkedElement.classList.remove('hide');\n                this.uncheckedElement.classList.add('hide');\n            } else {\n                this.checkedElement.classList.add('hide');\n                this.uncheckedElement.classList.remove('hide');\n            }\n        }\n        \n        destroy() {\n            if (this.parentElement) {\n                this.parentElement.remove();\n            }\n        }\n\n\n        renderCheckbox(state: boolean) {\n            if (this.parentElement) {\n                this.parentElement.textContent = '';\n                this.parentElement.appendChild(this.checkedElement);\n                this.parentElement.appendChild(this.uncheckedElement);\n                if (state) {\n                    this.checkedElement.classList.remove('hide');\n                    this.uncheckedElement.classList.add('hide');\n                } else {\n                    this.checkedElement.classList.add('hide');\n                    this.uncheckedElement.classList.remove('hide');\n                }\n            }\n        }\n        \n    }\n}\n\n\nexport {\n    customCheckBoxRenderer\n};\n","import { ATTACHMENT, CHECKBOX, COLLABORATOR_CLIENT, CURRENCY, DATE_TIME, EMAIL, LINK, LINK_CLIENT, LOOKUP, MULTIPLE_SELECTION, NUMBER, PERCENT, PHONE_NUMBER, RATING, ROLLUP, SINGLE_SELECTION, TEXT, URL } from \"./../../Constants/FieldTypes.js\";\n\nconst INVALID_FIELD_TYPE = \"Invalid FieldType\"; // No I18N\n\nconst STYLES = {\n    BACKGROUND_COLOR     : 'BGColor',//No I18N\n    COLOR                : 'Color',//No I18N\n    FONT_FAMILY          : 'Font',//No I18N\n    FONT_SIZE            : 'Size',//No I18N\n    BOLD                 : 'Bold',//No I18N\n    ITALIC               : 'Italic',//No I18N\n    OVERLINE             : 'Overline',//No I18N\n    STRIKETHROUGH        : 'StrikeThrough',//No I18N\n    UNDERLINE            : 'Underline',//No I18N\n    HORIZONTAL_ALIGNMENT : 'HorizontalAlignment',//No I18N\n    VERTICAL_ALIGNMENT   : 'verticalAlignment',//No I18N\n    OPTION_COLOR         : 'optionColor'//No I18N\n};\n\nconst STYLE_VALUES = {\n\tATTACHMENT: {\n\t\tBACKGROUND_COLOR: '#fff',//No I18N\n\t\tCOLOR: '#222222',//No I18N\n\t\tFONT_FAMILY: 'Inter,Sans-serif',//No I18N\n\t\tFONT_SIZE: 9.75,\n\t\tBOLD: false,\n\t\tITALIC: false,\n\t\tOVERLINE: false,\n\t\tSTRIKETHROUGH: false,\n\t\tUNDERLINE: false,\n\t\tHORIZONTAL_ALIGNMENT: 0,\n\t\tVERTICAL_ALIGNMENT: 1\n\t},\n\n\tAUTO_NUMBER: {\n\t\tBACKGROUND_COLOR: '#fff',//No I18N\n\t\tCOLOR: '#222222',//No I18N\n\t\tFONT_FAMILY: 'Inter,Sans-serif',//No I18N\n\t\tFONT_SIZE: 9.75,\n\t\tBOLD: false,\n\t\tITALIC: false,\n\t\tOVERLINE: false,\n\t\tSTRIKETHROUGH: false,\n\t\tUNDERLINE: false,\n\t\tHORIZONTAL_ALIGNMENT: 2,\n\t\tVERTICAL_ALIGNMENT: 1\n\t},\n\n\tCREATED_TIME: {\n\t\tBACKGROUND_COLOR: '#fff',//No I18N\n\t\tCOLOR: '#222222',//No I18N\n\t\tFONT_FAMILY: 'Inter,Sans-serif',//No I18N\n\t\tFONT_SIZE: 9.75,\n\t\tBOLD: false,\n\t\tITALIC: false,\n\t\tOVERLINE: false,\n\t\tSTRIKETHROUGH: false,\n\t\tUNDERLINE: false,\n\t\tHORIZONTAL_ALIGNMENT: 2,\n\t\tVERTICAL_ALIGNMENT: 1\n\t},\n\n\tCURRENCY: {\n\t\tBACKGROUND_COLOR: '#fff',//No I18N\n\t\tCOLOR: '#222222',//No I18N\n\t\tFONT_FAMILY: 'Inter,Sans-serif',//No I18N\n\t\tFONT_SIZE: 9.75,\n\t\tBOLD: false,\n\t\tITALIC: false,\n\t\tOVERLINE: false,\n\t\tSTRIKETHROUGH: false,\n\t\tUNDERLINE: false,\n\t\tHORIZONTAL_ALIGNMENT: 2,\n\t\tVERTICAL_ALIGNMENT: 1\n\t},\n\n\tDATE_TIME: {\n\t\tBACKGROUND_COLOR: '#fff',//No I18N\n\t\tCOLOR: '#222222',//No I18N\n\t\tFONT_FAMILY: 'Inter,Sans-serif',//No I18N\n\t\tFONT_SIZE: 9.75,\n\t\tBOLD: false,\n\t\tITALIC: false,\n\t\tOVERLINE: false,\n\t\tSTRIKETHROUGH: false,\n\t\tUNDERLINE: false,\n\t\tHORIZONTAL_ALIGNMENT: 0,\n\t\tVERTICAL_ALIGNMENT: 1\n\t},\n\n\tEMAIL: {\n\t\tBACKGROUND_COLOR: '#fff',//No I18N\n\t\tCOLOR: '#006EC2',//No I18N\n\t\tFONT_FAMILY: 'Inter,Sans-serif',//No I18N\n\t\tFONT_SIZE: 9.75,\n\t\tBOLD: false,\n\t\tITALIC: false,\n\t\tOVERLINE: false,\n\t\tSTRIKETHROUGH: false,\n\t\tUNDERLINE: true,\n\t\tHORIZONTAL_ALIGNMENT: 0,\n\t\tVERTICAL_ALIGNMENT: 1,\n\t\tOPTION_COLOR: '#e4e1f4'//No I18N\n\t},\n\n\tMODIFIED_TIME: {\n\t\tBACKGROUND_COLOR: '#fff',//No I18N\n\t\tCOLOR: '#222222',//No I18N\n\t\tFONT_FAMILY: 'Inter,Sans-serif',//No I18N\n\t\tFONT_SIZE: 9.75,\n\t\tBOLD: false,\n\t\tITALIC: false,\n\t\tOVERLINE: false,\n\t\tSTRIKETHROUGH: false,\n\t\tUNDERLINE: false,\n\t\tHORIZONTAL_ALIGNMENT: 2,\n\t\tVERTICAL_ALIGNMENT: 1\n\t},\n\n\tNUMBER: {\n\t\tBACKGROUND_COLOR: '#fff',//No I18N\n\t\tCOLOR: '#222222',//No I18N\n\t\tFONT_FAMILY: 'Inter,Sans-serif',//No I18N\n\t\tFONT_SIZE: 9.75,\n\t\tBOLD: false,\n\t\tITALIC: false,\n\t\tOVERLINE: false,\n\t\tSTRIKETHROUGH: false,\n\t\tUNDERLINE: false,\n\t\tHORIZONTAL_ALIGNMENT: 2,\n\t\tVERTICAL_ALIGNMENT: 1\n\t},\n\n\tPERCENT: {\n\t\tBACKGROUND_COLOR: '#fff',//No I18N\n\t\tCOLOR: '#222222',//No I18N\n\t\tFONT_FAMILY: 'Inter,Sans-serif',//No I18N\n\t\tFONT_SIZE: 9.75,\n\t\tBOLD: false,\n\t\tITALIC: false,\n\t\tOVERLINE: false,\n\t\tSTRIKETHROUGH: false,\n\t\tUNDERLINE: false,\n\t\tHORIZONTAL_ALIGNMENT: 2,\n\t\tVERTICAL_ALIGNMENT: 1\n\t},\n\n\tPHONE_NUMBER: {\n\t\tBACKGROUND_COLOR: '#fff',//No I18N\n\t\tCOLOR: '#006EC2',//No I18N\n\t\tFONT_FAMILY: 'Inter,Sans-serif',//No I18N\n\t\tFONT_SIZE: 9.75,\n\t\tBOLD: false,\n\t\tITALIC: false,\n\t\tOVERLINE: false,\n\t\tSTRIKETHROUGH: false,\n\t\tUNDERLINE: true,\n\t\tHORIZONTAL_ALIGNMENT: 2,\n\t\tVERTICAL_ALIGNMENT: 1,\n\t\tOPTION_COLOR: '#e4e1f4'//No I18N\n\t},\n\n\tTEXT: {\n\t\tBACKGROUND_COLOR: '#fff',//No I18N\n\t\tCOLOR: '#222222',//No I18N\n\t\tFONT_FAMILY: 'Inter,Sans-serif',//No I18N\n\t\tFONT_SIZE: 9.75,\n\t\tBOLD: false,\n\t\tITALIC: false,\n\t\tOVERLINE: false,\n\t\tSTRIKETHROUGH: false,\n\t\tUNDERLINE: false,\n\t\tHORIZONTAL_ALIGNMENT: 0,\n\t\tVERTICAL_ALIGNMENT: 1\n\t},\n\n\tURL: {\n\t\tBACKGROUND_COLOR: '#fff',//No I18N\n\t\tCOLOR: '#006EC2',//No I18N\n\t\tFONT_FAMILY: 'Inter,Sans-serif',//No I18N\n\t\tFONT_SIZE: 9.75,\n\t\tBOLD: false,\n\t\tITALIC: false,\n\t\tOVERLINE: false,\n\t\tSTRIKETHROUGH: false,\n\t\tUNDERLINE: true,\n\t\tHORIZONTAL_ALIGNMENT: 0,\n\t\tVERTICAL_ALIGNMENT: 1,\n\t\tOPTION_COLOR: '#e4e1f4'//No I18N\n\t},\n\n\tMULTIPLE_SELECTION: {\n\t\tBACKGROUND_COLOR: '#fff',//No I18N\n\t\tCOLOR: '#222222',//No I18N\n\t\tFONT_FAMILY: 'Inter,Sans-serif',//No I18N\n\t\tFONT_SIZE: 9.75,\n\t\tBOLD: false,\n\t\tITALIC: false,\n\t\tOVERLINE: false,\n\t\tSTRIKETHROUGH: false,\n\t\tUNDERLINE: false,\n\t\tHORIZONTAL_ALIGNMENT: 1,\n\t\tVERTICAL_ALIGNMENT: 1\n\t},\n\n\tSINGLE_SELECTION: {\n\t\tBACKGROUND_COLOR: '#fff',//No I18N\n\t\tCOLOR: '#222222',//No I18N\n\t\tFONT_FAMILY: 'Inter,Sans-serif',//No I18N\n\t\tFONT_SIZE: 9.75,\n\t\tBOLD: false,\n\t\tITALIC: false,\n\t\tOVERLINE: false,\n\t\tSTRIKETHROUGH: false,\n\t\tUNDERLINE: false,\n\t\tHORIZONTAL_ALIGNMENT: 1,\n\t\tVERTICAL_ALIGNMENT: 1\n\t},\n\n\tRATING: {\n\t\tBACKGROUND_COLOR: '#fff',//No I18N\n\t\tCOLOR: '#222222',//No I18N\n\t\tFONT_FAMILY: 'Inter,Sans-serif',//No I18N\n\t\tFONT_SIZE: 9.75,\n\t\tBOLD: false,\n\t\tITALIC: false,\n\t\tOVERLINE: false,\n\t\tSTRIKETHROUGH: false,\n\t\tUNDERLINE: false,\n\t\tHORIZONTAL_ALIGNMENT: 1,\n\t\tVERTICAL_ALIGNMENT: 1\n\t},\n\n\tCHECKBOX: {\n\t\tBACKGROUND_COLOR: '#fff',//No I18N\n\t\tCOLOR: '#222222',//No I18N\n\t\tFONT_FAMILY: 'Inter,Sans-serif',//No I18N\n\t\tFONT_SIZE: 9.75,\n\t\tBOLD: false,\n\t\tITALIC: false,\n\t\tOVERLINE: false,\n\t\tSTRIKETHROUGH: false,\n\t\tUNDERLINE: false,\n\t\tHORIZONTAL_ALIGNMENT: 1,\n\t\tVERTICAL_ALIGNMENT: 1\n\t},\n\n\tDURATION: {\n\t\tBACKGROUND_COLOR: '#fff',//No I18N\n\t\tCOLOR: '#222222',//No I18N\n\t\tFONT_FAMILY: 'Inter,Sans-serif',//No I18N\n\t\tFONT_SIZE: 9.75,\n\t\tBOLD: false,\n\t\tITALIC: false,\n\t\tOVERLINE: false,\n\t\tSTRIKETHROUGH: false,\n\t\tUNDERLINE: false,\n\t\tHORIZONTAL_ALIGNMENT: 1,\n\t\tVERTICAL_ALIGNMENT: 1\n\t},\n\n\tSCIENTIFIC: {\n\t\tBACKGROUND_COLOR: '#fff',//No I18N\n\t\tCOLOR: '#222222',//No I18N\n\t\tFONT_FAMILY: 'Inter,Sans-serif',//No I18N\n\t\tFONT_SIZE: 9.75,\n\t\tBOLD: false,\n\t\tITALIC: false,\n\t\tOVERLINE: false,\n\t\tSTRIKETHROUGH: false,\n\t\tUNDERLINE: false,\n\t\tHORIZONTAL_ALIGNMENT: 1,\n\t\tVERTICAL_ALIGNMENT: 1\n\t},\n\n\tBARCODE: {\n\t\tBACKGROUND_COLOR: '#fff',//No I18N\n\t\tCOLOR: '#222222',//No I18N\n\t\tFONT_FAMILY: 'Inter,Sans-serif',//No I18N\n\t\tFONT_SIZE: 9.75,\n\t\tBOLD: false,\n\t\tITALIC: false,\n\t\tOVERLINE: false,\n\t\tSTRIKETHROUGH: false,\n\t\tUNDERLINE: false,\n\t\tHORIZONTAL_ALIGNMENT: 1,\n\t\tVERTICAL_ALIGNMENT: 1\n\t},\n\n\tCOLLABORATOR: {\n\t\tBACKGROUND_COLOR: '#fff',//No I18N\n\t\tCOLOR: '#222222',//No I18N\n\t\tFONT_FAMILY: 'Inter,Sans-serif',//No I18N\n\t\tFONT_SIZE: 9.75,\n\t\tBOLD: false,\n\t\tITALIC: false,\n\t\tOVERLINE: false,\n\t\tSTRIKETHROUGH: false,\n\t\tUNDERLINE: false,\n\t\tHORIZONTAL_ALIGNMENT: 1,\n\t\tVERTICAL_ALIGNMENT: 1\n\t},\n\n\tCREATED_BY: {\n\t\tBACKGROUND_COLOR: '#fff',//No I18N\n\t\tCOLOR: '#222222',//No I18N\n\t\tFONT_FAMILY: 'Inter,Sans-serif',//No I18N\n\t\tFONT_SIZE: 9.75,\n\t\tBOLD: false,\n\t\tITALIC: false,\n\t\tOVERLINE: false,\n\t\tSTRIKETHROUGH: false,\n\t\tUNDERLINE: false,\n\t\tHORIZONTAL_ALIGNMENT: 1,\n\t\tVERTICAL_ALIGNMENT: 1\n\t},\n\n\tMODIFIED_BY: {\n\t\tBACKGROUND_COLOR: '#fff',//No I18N\n\t\tCOLOR: '#222222',//No I18N\n\t\tFONT_FAMILY: 'Inter,Sans-serif',//No I18N\n\t\tFONT_SIZE: 9.75,\n\t\tBOLD: false,\n\t\tITALIC: false,\n\t\tOVERLINE: false,\n\t\tSTRIKETHROUGH: false,\n\t\tUNDERLINE: false,\n\t\tHORIZONTAL_ALIGNMENT: 1,\n\t\tVERTICAL_ALIGNMENT: 1\n\t},\n\n\tLINK: {\n\t\tBACKGROUND_COLOR: '#fff',//No I18N\n\t\tCOLOR: '#222222',//No I18N\n\t\tFONT_FAMILY: 'Inter,Sans-serif',//No I18N\n\t\tFONT_SIZE: 9.75,\n\t\tBOLD: false,\n\t\tITALIC: false,\n\t\tOVERLINE: false,\n\t\tSTRIKETHROUGH: false,\n\t\tUNDERLINE: false,\n\t\tHORIZONTAL_ALIGNMENT: 1,\n\t\tVERTICAL_ALIGNMENT: 1,\n\t\tOPTION_COLOR: '9274f6'//No I18N\n\t},\n\n\tLOOKUP: {\n\t\tBACKGROUND_COLOR: '#fff',//No I18N\n\t\tCOLOR: '#222222',//No I18N\n\t\tFONT_FAMILY: 'Inter,Sans-serif',//No I18N\n\t\tFONT_SIZE: 9.75,\n\t\tBOLD: false,\n\t\tITALIC: false,\n\t\tOVERLINE: false,\n\t\tSTRIKETHROUGH: false,\n\t\tUNDERLINE: false,\n\t\tHORIZONTAL_ALIGNMENT: 1,\n\t\tVERTICAL_ALIGNMENT: 1,\n\t\tOPTION_COLOR: '979494'//No I18N\n\t},\n\n\tROLLUP: {\n\t\tBACKGROUND_COLOR: '#fff',//No I18N\n\t\tCOLOR: '#222222',//No I18N\n\t\tFONT_FAMILY: 'Inter,Sans-serif',//No I18N\n\t\tFONT_SIZE: 9.75,\n\t\tBOLD: false,\n\t\tITALIC: false,\n\t\tOVERLINE: false,\n\t\tSTRIKETHROUGH: false,\n\t\tUNDERLINE: false,\n\t\tHORIZONTAL_ALIGNMENT: 1,\n\t\tVERTICAL_ALIGNMENT: 1,\n\t\tOPTION_COLOR: '979494'//No I18N\n\t}\n};\n\nexport function getFieldStylesByType(fieldType) {\n\treturn commonFunction(fieldType, STYLE_VALUES);\n}\n\n\nfunction commonFunction(fieldType, styles) {\n\tlet styleValues;\n\tswitch (fieldType) {\n\t\tcase ATTACHMENT:\n\t\t\tstyleValues = styles.ATTACHMENT;\n\t\t\tbreak;\n\n\t\tcase CHECKBOX:\n\t\t\tstyleValues = styles.CHECKBOX;\n\t\t\tbreak;\n\n\t\tcase CURRENCY:\n\t\t\tstyleValues = styles.CURRENCY;\n\t\t\tbreak;\n\n\t\tcase DATE_TIME:\n\t\t\tstyleValues = styles.DATE_TIME;\n\t\t\tbreak;\n\n\t\tcase EMAIL:\n\t\t\tstyleValues = styles.EMAIL;\n\t\t\tbreak;\n\n\t\tcase MULTIPLE_SELECTION:\n\t\t\tstyleValues = styles.MULTIPLE_SELECTION;\n\t\t\tbreak;\n\n\t\tcase NUMBER:\n\t\t\tstyleValues = styles.NUMBER;\n\t\t\tbreak;\n\n\t\tcase PERCENT:\n\t\t\tstyleValues = styles.PERCENT;\n\t\t\tbreak;\n\n\t\tcase PHONE_NUMBER:\n\t\t\tstyleValues = styles.PHONE_NUMBER;\n\t\t\tbreak;\n\n\t\tcase RATING:\n\t\t\tstyleValues = styles.RATING;\n\t\t\tbreak;\n\n\t\tcase SINGLE_SELECTION:\n\t\t\tstyleValues = styles.SINGLE_SELECTION;\n\t\t\tbreak;\n\n\t\tcase TEXT:\n\t\t\tstyleValues = styles.TEXT;\n\t\t\tbreak;\n\n\t\tcase URL:\n\t\t\tstyleValues = styles.URL;\n\t\t\tbreak;\n\n\t\tcase COLLABORATOR_CLIENT:\n\t\t\tstyleValues = styles.COLLABORATOR;\n\t\t\tbreak;\n\n\t\tcase LINK:\n\t\tcase LINK_CLIENT:\n\t\t\tstyleValues = styles.LINK;\n\t\t\tbreak;\n\n\t\tcase LOOKUP:\n\t\t\tstyleValues = styles.LOOKUP;\n\t\t\tbreak;\n\n\t\tcase ROLLUP:\n\t\t\tstyleValues = styles.ROLLUP;\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tthrow(INVALID_FIELD_TYPE);\n\n\t}\n\tconst fieldStyles = {};\n\tfor (const ID in styleValues) {\n\t\tfieldStyles[STYLES[ID]] = styleValues[ID];\n\t}\n\treturn fieldStyles;\n}\n","import { MurphyUtility } from \"../DataStore/MurphyUtility.js\"\nimport { PlanType } from \"../Types\"\n\nexport const PLAN_TYPE = {\n\tZOHO_CORP   : 0,\n\tFREE_EDITION: 1,\n\tPROFESSIONAL: 2,\n\tFREE_TRIAL  : 3,\n\tZOHO_ONE    : 7,\n\tPERSONAL    : 5\n}\n\nexport function getPlanName(planType: PlanType) {\n\tswitch (planType) {\n\t\tcase PLAN_TYPE.FREE_EDITION:\n\t\t\treturn `${Table.Constants.JSMsg[\"UI.Table.Pricing.Content.PortalPlan.FreeEdition\"]} ${Table.Constants.JSMsg[\"UI.Table.Pricing.Content.PortalPlan.Plan\"]}`\n\t\t\t\n\t\tcase PLAN_TYPE.FREE_TRIAL:\n\t\t\treturn Table.Constants.JSMsg[\"UI.Table.Pricing.Content.PortalPlan.FreeTrial\"]\n\t\t\t\n\t\tcase PLAN_TYPE.PROFESSIONAL:\n\t\t\treturn `${Table.Constants.JSMsg[\"UI.Table.Pricing.Content.PortalPlan.Professional\"]} ${Table.Constants.JSMsg[\"UI.Table.Pricing.Content.PortalPlan.Plan\"]}`\n\n\t\tcase PLAN_TYPE.ZOHO_ONE:\n\t\t\treturn `${Table.Constants.JSMsg[\"UI.Table.Pricing.Content.PortalPlan.ZohoOne\"]}  ${Table.Constants.JSMsg[\"UI.Table.Pricing.Content.PortalPlan.Plan\"]}`\n\t\t\t\n\t\tcase PLAN_TYPE.ZOHO_CORP:\n\t\t\treturn Table.Constants.JSMsg[\"UI.Table.Pricing.Content.PortalPlan.ZohoCorp\"]\n\n\t\tcase PLAN_TYPE.ZOHO_ONE:\n\t\t\treturn `${Table.Constants.JSMsg[\"UI.Table.Pricing.Content.PortalPlan.ZohoOne\"]} ${Table.Constants.JSMsg[\"UI.Table.Pricing.Content.PortalPlan.Plan\"]}`\n\n\t\tcase PLAN_TYPE.PERSONAL:\n\t\t\treturn `${Table.Constants.JSMsg[\"UI.Table.Pricing.Content.PortalPlan.Personal\"]} ${Table.Constants.JSMsg[\"UI.Table.Pricing.Content.PortalPlan.Plan\"]}`\n\n\t\tdefault:\n\t\t\tMurphyUtility.throwCustomErrorMurphy({ \"PLAN_TYPE\": planType }, \"Unkown Plan Type Requested!!\")\n\t}\n}","import { getActiveBaseID } from \"../../../ActiveIDUtility.js\";\nimport { IClipboard } from \"../../../FieldTypeComponents/FieldTypeConfigTypes\";\nimport { PLAN_TYPE } from \"../../../Pricing/Plan\";\n\nexport const formatMap: Record<'initCaps' | 'fullSmall' | 'fullCaps' | 'sentenceCase', string> = {\n    initCaps: 'capitalize',\n    fullSmall: 'lower',\n    fullCaps: 'upper',\n    sentenceCase: 'sentence',\n};\n\n\nexport const maxIteraction = 20;\n\nexport function formatValue(value: string, format: string) {\n    if (typeof format !== 'string' || !format) {\n        return value;\n    }\n    if (value === '') {\n        return '';\n    }\n\n    let xCount = format.split('').filter(char => char === 'x').length;\n    if (value.length > xCount) {\n        return value;\n    }\n\n    let matchCount = 0;\n    let formattedValue = '';\n    const iteration = Math.min(format.length, maxIteraction);\n\n    for (let index = 0; index < iteration; index++) {\n        formattedValue += (format[index] === 'x') ? value[matchCount++] : format[index];\n        if (matchCount === value.length) break;\n    }\n\n    return formattedValue;\n}\n\nexport function getCapitalizedString(text :  string) : string {\n    const textArray = text.split(' ');\n    const contentArray = textArray.map(word => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase()).join(' ');\n    return contentArray\n}\nexport function getFormattedText(value :  string,format ?: string) : string{\n    let text = value;\n    switch (format) {\n        case 'capitalize':\n            text = getCapitalizedString(text);\n            break;\n        case 'lower':\n            text = text.toLowerCase();\n            break;\n        case 'upper':\n            text = text.toUpperCase();\n            break;\n        case 'sentence':\n            text = text.charAt(0).toUpperCase() + text.slice(1).toLowerCase();\n            break;\n        case 'none':\n        default:\n            break;\n    }\n    return text;\n}\n\nexport function isAIFieldDisabled() : boolean{\n    const base = Table.Data.Workspace.get(getActiveBaseID());\n    const planType = base.getPortalPlanType();\n    return planType === PLAN_TYPE.FREE_EDITION || planType === PLAN_TYPE.FREE_TRIAL;\n}\n\n// Whether the field this cell belongs to is marked as ePHI. Optional-call because the flag is\n// only defined on the field-cell providers built by FieldDefinition/CoreFieldDefinition -- the\n// providers in GridConstructor and ResponseDomGridImplEventHandler omit it, so a plain call\n// would throw if either were ever wired in. Absent means unrestricted.\nexport function isFieldEphiRestricted(params : any) : boolean {\n    return params?.cellDataProvider?.isFieldEphiCompliant?.() ?? false;\n}\n\n// Resolves the clipboard permission for a field: copy/cut are blocked (paste stays allowed)\n// when the field is ePHI-compliant, otherwise everything is allowed. Every field-type config\n// builder (inline and popup) reads `params.clipboard` and bakes it into the config object it\n// returns, so the DataGrid component receives it at construction time.\nexport function getClipboardConfig(params : any) : IClipboard | boolean {\n    return isFieldEphiRestricted(params) ? { copy : false, cut : false, paste : true } : true;\n}","import { HASH } from \"../../../Constants/CssClassNamesForUI.js\";\nimport { COLLABORATOR_CLIENT, SENTIMENTAL_ANALYSIS } from \"../../../Constants/FieldTypes.js\";\nimport { getBubbleNodeInnerCircleColor } from \"../../../Constants/ProductThemeColors\";\nimport { getGanttStrokeColor } from \"../../../DG_Components/Utility/ColorUtilty\";\nimport { customCheckBoxRenderer } from \"../../../FieldTypeComponents/Composite/CheckBoxFieldType/CustomCheckboxRenderer\";\nimport { getHoverStateEllipsisChip, getHoverStatePlusIcon } from \"../../../FieldTypeComponents/FieldComponentHoverStateUtils\";\nimport { AvatarIconRenderer, EllipsesRenderer, getBubbleUrlElement, MultipleTokenCustomRenderer, PlusIconRenderer, RatingIconRenderer, SentimentalValueCustomRenderer, SingleSelectChipCustomRenderer } from \"../../../FieldTypeComponents/FieldComponentRenderer\";\nimport { autonumberFormatter, currencyFormatter, EmailValidator, generateBubbleTypesFromStringsForLink, getAllSelectionIDs, getAllowDuplicateLinkedRecords, getAutoNumber, getCheckbox, getDGMultipleEmailValues, getKeywordValues, getMultipleTokenValues, getMultiSelectionValue, getNumberValues, getPercentValues, getRating, getSelectedID, getSelectedIDs, getSelectionValues, getSingleSelectionValue, multiplyBy100, parseRoundValue } from \"../../../FieldTypeComponents/FieldTypeComponentsFormater\";\nimport { toLinkChipRenderingOptions } from \"../../../Utility/LinkChipCountUtility.ts\";\nimport { CheckBoxIconStyle, CurrencyPlacementID, FIELD_TYPE_COMPONENTS_MANAGER_PARAMS, MULTIPLE_SELECT_RENDER_CONFIG, RatingIconStyle } from \"../../../FieldTypeComponents/FieldTypeConfigTypes\";\nimport { CHECKBOX_ICON_STYLE, FIELD_TYPE_CSS_CLASSNAME, KEYWORD_EXTRACT_BUBBLE_COLOR, PLACEMENT_FROM_ID, RATING_ICON_RENDER_COLOR, RATING_ICON_STYLE } from \"../../../FieldTypeComponents/FieldTypeConstants\";\nimport { getFieldStylesByType } from \"../../../Form/FormView/FieldTypeStyles.js\";\nimport { getTemplate } from \"../../../TemplatesForAll.js\";\nimport { getLinkFieldMetas, getRollupFieldFormattedData, parseFormulaDataResponse, parseLookupDataResponse } from \"../../../Utility/DataUtility.js\";\nimport { encodeLinkSubmitValue } from \"../../../Utility/LinkFieldCompactUtility.ts\";\nimport { numberFormatter } from \"../../../Utility/Formatter/FieldTypeFormatters.js\";\nimport { editor_initiated_from } from \"../GridConstants\";\nimport { CORE_AUTO_NUMBER_INLINE_CONFIG, CORE_CHECKBOX_INLINE_CONFIG, CORE_CREATED_BY_INLINE_CONFIG, CORE_CREATED_TIME_INLINE_CONFIG, CORE_CURRENCY_INLINE_CONFIG, CORE_CURRENCY_RENDER_CONFIG, CORE_DATE_TIME_INLINE_CONFIG, CORE_FORMULA_DATE_TIME_HOUR_CYCLE_INLINE_CONFIG, CORE_FORMULA_DATE_TIME_INLINE_CONFIG, CORE_FORMULA_NUMBER_INLINE_CONFIG, CORE_FORMULA_PERCENT_INLINE_CONFIG, CORE_FORUMULA_INLINE_CONFIG, CORE_KEYWORD_EXTRACTION_INLINE_CONFIG, CORE_LANGUAGE_DETECTOR_INLINE_CONFIG, CORE_LINK_INLINE_CONFIG, CORE_LOOKUP_INLINE_CONFIG, CORE_MODIFIED_BY_INLINE_CONFIG, CORE_MODIFIED_TIME_INLINE_CONFIG, CORE_MULTIPLE_COLLABORATOR_INLINE_CONFIG, CORE_MULTIPLE_COLLABORATOR_SELECTION_CONFIG, CORE_MULTIPLE_EMAIL_INLINE_CONFIG, CORE_MULTIPLE_EMAIL_SELECTION_CONFIG, CORE_MULTIPLE_PHONE_NUMBER_INLINE_CONFIG, CORE_MULTIPLE_PHONE_NUMBER_SELECTION_CONFIG, CORE_MULTIPLE_SELECTION_INLINE_CONFIG, CORE_MULTIPLE_SELECTION_SELECTION_CONFIG, CORE_MULTIPLE_URL_INLINE_CONFIG, CORE_NUMBER_INLINE_CONFIG, CORE_PERCENT_INLINE_CONFIG, CORE_RATING_INLINE_CONFIG, CORE_ROLLUP_INLINE_CONFIG, CORE_SENTIMENTAL_ANALYSIS_INLINE_CONFIG, CORE_SINGLE_COLLABORATOR_INLINE_CONFIG, CORE_SINGLE_COLLABORATOR_SELECTION_CONFIG, CORE_SINGLE_EMAIL_INLINE_CONFIG, CORE_SINGLE_PHONE_NUMBER_INLINE_CONFIG, CORE_SINGLE_SELECTION_INLINE_CONFIG, CORE_SINGLE_SELECTION_SELECTION_CONFIG, CORE_SINGLE_URL_INLINE_CONFIG, CORE_TEXT_INLINE_CONFIG, CORE_TOKEN_INLINE_CONFIG } from \"./Interface/CoreInlineFCConfigInterface\";\nimport { HourCycle } from \"./Interface/CorePopupFCConfigInterface\";\nimport { IFCConfigDataProvider } from \"./Interface/IFCConfigDataProvider\";\nimport { formatValue } from \"./Utility\";\n\n// AUTO_NUMBER\nexport function getAutoNumberConfig(params : any) : CORE_AUTO_NUMBER_INLINE_CONFIG  {\n    let value = params.value;\n    const { eventKey,fieldTypeSpecifications, cellElement } = params;\n    const [locale, thousandSeparator, precision, initialValue, stepSize, prefix, suffix] = fieldTypeSpecifications;\n    const autonumberValue   = autonumberFormatter(getAutoNumber(value), precision, initialValue, stepSize);\n    const formattedValue = `${prefix ?? ''}${autonumberValue}${suffix ?? ''}`;\n\n    const renderConfig = {\n        value         : formattedValue,\n        cellElement   : cellElement\n    }\n\n    const getSelectionConfig = () => {\n        return {\n            clipboard : params.clipboard,\n            value         : renderConfig.value,\n            readOnly      : true,\n        }\n    }\n\n    return {\n        renderConfig       : renderConfig,\n        getSelectionConfig : getSelectionConfig,\n        parentDOM          : params.parentDOM,\n        onSelection        : (params: any) => {},\n        onDeSelection      : (params: any) => {},\n        isCellFocused      : params.isCellFocused\n    }\n}\n\n// CHECKBOX\nexport function getCheckboxConfig(params : any) : CORE_CHECKBOX_INLINE_CONFIG  {\n    let value = params.value;\n    const { eventKey,cellElement } = params;\n    const fieldSpecifications = params.fieldTypeSpecifications;\n    const isChecked                      = getCheckbox(value);\n    const iconStyle                      = fieldSpecifications[0] as CheckBoxIconStyle;\n    const iconColor                      = fieldSpecifications[1];\n    const templateID     = (iconStyle === 7) && value ? CHECKBOX_ICON_STYLE[7_1] : CHECKBOX_ICON_STYLE[iconStyle];\n    const iconSVGElement = getTemplate(templateID)?.querySelector('svg') as SVGElement;\n                \n    if (eventKey) {\n        value = eventKey;\n    }\n\n\n    const renderConfig = {\n        value             : !!isChecked,\n        checkedIcon       : ()=>{\n            const icon = iconSVGElement.cloneNode(true) as SVGElement;\n            icon.classList.add('ZF-checkboxChecked');\n            return icon;\n        },\n        uncheckedIcon     : ()=>{\n            const icon = iconSVGElement.cloneNode(true) as SVGElement;\n            return icon;\n        },\n        readonly          : true,\n        cellElement       : cellElement,\n        onclick           : ()=>{}\n    }\n\n    const getSelectionConfig = () => {\n        return {\n            clipboard : params.clipboard,\n            value             : renderConfig.value,\n            customRenderer    : customCheckBoxRenderer(iconSVGElement,iconSVGElement),\n            readonly          : true,\n        }\n    }\n    return {\n        renderConfig       : renderConfig,\n        getSelectionConfig : getSelectionConfig,\n        color             : {\n            full : iconColor,\n            empty: iconColor\n        },\n        parentDOM          : params.parentDOM,\n        onSelection        : (params: any) => {},\n        onDeSelection      : (params: any) => {},\n        isCellFocused      : params.isCellFocused\n    }\n}\n\n// COLLABORATOR_CLIENT\n//Multiple collaborator\nexport function getMultipleCollaboratorConfig(params : any, dataProvider : IFCConfigDataProvider) : CORE_MULTIPLE_COLLABORATOR_INLINE_CONFIG  {\n    const {baseID, value, cellElement, recordID, fieldID, fieldCellEventHandler} = params;\n    const collaboratorDS               = dataProvider.getCollaboratorDS();\n    const selectedIDs                  = getSelectedIDs(value);\n    const selectedOptions              = dataProvider.getAllCollaboratorValues(selectedIDs, collaboratorDS);\n\n    const renderConfig = {\n        options     : selectedOptions.map((collaboratorMeta)=> ({\n            label    : collaboratorMeta.value,\n            color    : collaboratorMeta.color,\n            imageUrl : collaboratorMeta.imageURL\n        })),\n        cellElement : cellElement,\n        readonly : params.readonly ?? false\n    }\n\n    const getSelectionConfig : () => CORE_MULTIPLE_COLLABORATOR_SELECTION_CONFIG = ()=>{\n        let index :number [] = [];\n\n        const collaboratorOptionIDs   = dataProvider.getAllCollaboratorIDs(collaboratorDS);\n        const allCollaboratorOptions  = dataProvider.getAllCollaboratorValues(collaboratorOptionIDs, collaboratorDS);\n        index= selectedIDs.map((selectedId: any) => collaboratorOptionIDs.findIndex(id => id === selectedId));\n\n        const options = allCollaboratorOptions.map((collaboratorMeta,index)=> ({\n            value               : collaboratorMeta.value,\n            thumbnailRenderer   : AvatarIconRenderer,\n            userThumbnailRendererParams : {\n                name            : collaboratorMeta?.label,\n                imageUrl        : collaboratorMeta?.imageURL\n            },\n            id                  : collaboratorOptionIDs[index],\n            color               : collaboratorMeta?.color,\n        }));\n    \n        return {\n            clipboard : params.clipboard,\n            options         : options,\n            multiple        : true,\n            optionAsChip    : true,\n            className       : FIELD_TYPE_CSS_CLASSNAME[COLLABORATOR_CLIENT] ,\n            useElipses      : true,\n            ellipsesRenderer : EllipsesRenderer,\n            readonly        : true,\n            // selectedIndex : index,\n            selectedOptions : index.map(i => options[i]),\n            preventDropdownOpen : true,\n            \n        }\n    }\n\n    return {\n        renderConfig           : renderConfig,\n        getSelectionConfig     : getSelectionConfig,\n        onSelection            : ()=>{},\n        onDeSelection          : ()=>{},\n        isCellFocused          : params.isCellFocused,\n        rowHeight              : params.rowHeight,\n        hoverStatePlusIcon     : getHoverStatePlusIcon(),\n        hoverStateEllipsisChip : getHoverStateEllipsisChip(()=>{fieldCellEventHandler.startEditing(recordID, fieldID, editor_initiated_from.ELLIPSES);})\n    }\n}\n\n// single collaborator\nexport function getSingleCollaboratorConfig(params : any, dataProvider : IFCConfigDataProvider) : CORE_SINGLE_COLLABORATOR_INLINE_CONFIG  {\n    const { fieldTypeSpecifications,value,baseID, cellElement } = params;\n    const collaboratorDS                                        = dataProvider.getCollaboratorDS();\n\n    const selectedID      = getSelectedID(value);\n    const selectedOptions = dataProvider.getCollaboratorValue(selectedID, collaboratorDS);\n\n    const renderConfig    = {\n        label       : selectedOptions.value,\n        color       : selectedOptions.color,\n        imageUrl    : selectedOptions.imageURL,\n        cellElement : cellElement\n    }\n\n    const getSelectionConfig : () => CORE_SINGLE_COLLABORATOR_SELECTION_CONFIG = ()=>{\n        const collaboratorOptionIDs  = dataProvider.getAllCollaboratorIDs(collaboratorDS);\n        const allCollaboratorOptions = dataProvider.getAllCollaboratorValues(collaboratorOptionIDs, collaboratorDS);\n        const singleIndex            = collaboratorOptionIDs.findIndex(id => id=== selectedID);\n        const index                  = singleIndex !== -1 ? [singleIndex] : [];\n\n\n        const options                = allCollaboratorOptions.map((collaboratorMeta,index)=> ({\n            value               : collaboratorMeta.value,\n            thumbnailRenderer   : AvatarIconRenderer,\n            id                  : collaboratorOptionIDs[index],\n            color               : collaboratorMeta?.color,\n            userThumbnailRendererParams : {\n                name            : collaboratorMeta?.label,\n                imageUrl        : collaboratorMeta?.imageURL\n            },\n    \n        }));\n        \n        \n        return {\n            clipboard : params.clipboard,\n            options       : options,\n            multiple      : false,\n            optionAsChip  : true,\n            className     : FIELD_TYPE_CSS_CLASSNAME[COLLABORATOR_CLIENT],\n            readonly      : true,\n            // selectedIndex : index,\n            selectedOptions : index.map(i=> options[i])\n        }\n    }\n     \n    return {\n        renderConfig : renderConfig,\n        getSelectionConfig : getSelectionConfig,\n        onSelection     : ()=>{},\n        onDeSelection   : ()=>{},\n        isCellFocused : params.isCellFocused\n    }\n}\n\n\n// CREATED_BY\nexport function getCreatedByConfig(params :  any, dataProvider : IFCConfigDataProvider) : CORE_CREATED_BY_INLINE_CONFIG  {\n    const {value ,baseID, cellElement}   = params;\n    const collaboratorDS    = dataProvider.getCollaboratorDS();\n    const collaboratorValue = value ? dataProvider.getCollaboratorValue(value, collaboratorDS) : { value : \"\", color : \"\", imageURL : \"\"};\n    const {value : label, color : chipColor, imageURL : imageUrl} = collaboratorValue;\n    const ariaLabel         = value;\n\n\n    const renderConfig = {\n        label       : label,\n        color       : chipColor,\n        imageUrl    : imageUrl,\n        cellElement : cellElement\n    }\n\n    const getSelectionConfig = ()=>{\n        return {\n            clipboard : params.clipboard,\n            readOnly                    : true,\n            label                       : label,\n            ariaLabel                   : ariaLabel,\n            chipColor                   : chipColor,\n            thumbnailRenderer           : AvatarIconRenderer,\n            cellElement                 : cellElement,\n            userThumbnailRendererParams : {\n                imageUrl : imageUrl,\n            },\n            tooltipAppendto : document.querySelector(\".ZG-rootWrapperBody\") as HTMLElement,\n            tooltip : true\n        }\n    }\n\n    return {\n        renderConfig : renderConfig,\n        getSelectionConfig : getSelectionConfig,\n        isCellFocused : params.isCellFocused\n    }\n}\n\n\n// CREATED_TIME\nexport function getCreatedTimeConfig(params : any) : CORE_CREATED_TIME_INLINE_CONFIG  {\n    const { value, fieldTypeSpecifications, cellElement }  = params;\n    const dateFormat                          = fieldTypeSpecifications[1];\n    const timeFormat                          = fieldTypeSpecifications[2];\n    const hourCycle                           = fieldTypeSpecifications[3];\n    const hourCycleValue                      = hourCycle === \"12H\" ? 12 : hourCycle === \"23H\" ? 24 : 0;\n    const formatValue                         = hourCycle ? `${dateFormat} ${timeFormat}` : dateFormat;\n\n    const renderConfig = {\n        value       : Number(value),\n        dateFormat  : dateFormat,\n        timeFormat  : timeFormat,\n        hourCycle   : hourCycleValue as HourCycle,\n        cellElement : cellElement\n    }\n\n    const getSelectionConfig = () => {\n        return {\n            clipboard : params.clipboard,\n            value       : Number(value),\n            dateFormat  : dateFormat,\n            timeFormat  : timeFormat,\n            hourCycle   : hourCycleValue as HourCycle,\n            format      : formatValue,\n            type        : 'datetimefield',\n            showDatePicker : false\n        }\n    }\n\n    return {\n        renderConfig       : renderConfig,\n        getSelectionConfig : getSelectionConfig,\n        parentDOM          : params.parentDOM,\n        onSelection        : (params: any) => {},\n        onDeSelection      : (params: any) => {},\n        isCellFocused      : params.isCellFocused\n    }\n}\n\n// CURRENCY\nexport function getCurrencyConfig(params : any) : CORE_CURRENCY_INLINE_CONFIG  {\n    let value = params.value;\n    const { eventKey,fieldTypeSpecifications, cellElement} = params;\n    if (eventKey) {\n        value = eventKey;\n    }\n    \n    let currency          = fieldTypeSpecifications[1].trim();\n    const placement         = fieldTypeSpecifications[2];\n    const precision         = fieldTypeSpecifications[3];\n    const thousandSeparator = fieldTypeSpecifications[4];\n    const currencyValue     = currencyFormatter(value, precision);\n    const symbolPosition    = PLACEMENT_FROM_ID[placement as CurrencyPlacementID];\n    const locale = fieldTypeSpecifications[0];\n\n    \n    const formatter = symbolPosition === 'accounting'\n      ? (value: any) => {\n            if(value< 0 || Object.is(Number(value), -0)){ // check for -0 \n                const formattedValue = value.toString().replace(/^-/, '');\n                const coverterdValue = parseFloat(formattedValue);\n                const formattedNumber = numberFormatter(coverterdValue, locale, thousandSeparator, precision);\n                return `(${formattedNumber})`\n            }\n            return numberFormatter(value, locale, thousandSeparator, precision);\n        }\n      : null;\n\n\n    const renderConfig : CORE_CURRENCY_RENDER_CONFIG = {\n        value              : currencyValue,\n        currencySymbol     : currency,\n        hideSymbol         : true,\n        decimalPrecision   : precision,\n        thousandsSeparator : !!thousandSeparator,\n        symbolPosition     : symbolPosition,\n        inputPrefix        : symbolPosition === 'accounting' ? currency : null,\n        inputSuffix        : symbolPosition === 'right' ? currency      : null,\n        cellElement        : cellElement,\n        formatter          : formatter,\n        locale             : locale\n    };\n\n    const getSelectionConfig = () => {\n        return {\n            clipboard : params.clipboard,\n            type              : \"currency\",\n            locale             : locale,\n            // currencyCode       : undefined,                                          // Not provided in current logic\n            currencySymbol     : currency,\n            hideSymbol         : true,\n            decimalPrecision   : precision,\n            thousandsSeparator : !!thousandSeparator,\n            generateEmptyDom   : false,\n            value              : currencyValue,\n            symbolPosition     : symbolPosition,\n            inputPrefix        : symbolPosition === 'accounting' ? currency : null,\n            // inputSuffix        : symbolPosition === 'right' ? currency      : null,\n            formatter          : formatter,\n        };\n    };\n\n    return {\n        renderConfig       : renderConfig,\n        getSelectionConfig : getSelectionConfig,\n        parentDOM          : params.parentDOM,\n        onSelection        : (params: any) => {},\n        onDeSelection      : (params: any) => {},\n        isCellFocused      : params.isCellFocused,\n    };\n}\n\n\n// DATE_TIME\nexport function getDateTimeConfig(params : any) : CORE_DATE_TIME_INLINE_CONFIG  {\n    let value = params.value;\n    const { eventKey, fieldTypeSpecifications,recordID,fieldID ,fieldCellEventHandler, cellElement} = params;\n    if (eventKey) {\n        value = eventKey;\n    }\n    const dateFormat = fieldTypeSpecifications[1];\n    const timeFormat = fieldTypeSpecifications[2];\n    const hourCycle  = fieldTypeSpecifications[3];\n    const hourCycleValue = hourCycle === \"12H\" ? 12: hourCycle === \"23H\" ? 24: 0;\n    const formatValue = hourCycle ? `${dateFormat} ${timeFormat}`: dateFormat;\n\n    const renderConfig = {\n        value             : Number(value),\n        dateFormat        : dateFormat,\n        timeFormat        : timeFormat,\n        hourCycle         : hourCycleValue as HourCycle,\n        cellElement       : cellElement\n    }\n\n    const getSelectionConfig = () => {\n        return {\n            clipboard : params.clipboard,\n            value             : Number(value),\n            dateFormat        : dateFormat,\n            timeFormat        : timeFormat,\n            hourCycle         : hourCycleValue as HourCycle,\n            format            : formatValue,\n            type              : 'datetimepicker',\n            showDatePicker    : false\n        }\n    }\n\n    return {\n        renderConfig       : renderConfig,\n        getSelectionConfig : getSelectionConfig,\n        parentDOM          : params.parentDOM,\n        onSelection        : (params: any) => {},\n        onDeSelection      : (params: any) => {},\n        isCellFocused      : params.isCellFocused\n    }\n}\n\n// EMAIL\n// multiple email\n\nexport function getMultipleEmailConfig(params : any) : CORE_MULTIPLE_EMAIL_INLINE_CONFIG  {\n    let value = params.value;\n    const { fieldType, fieldTypeSpecifications, cellElement, recordID, fieldID, fieldCellEventHandler } = params;\n    let selectionOptions : any[] =[];\n    let renderOptions : any[] = [];\n    let cellSelection = false;\n    const styles              = getFieldStylesByType(fieldType, fieldTypeSpecifications) as any;\n    const multipleEmailOptions = getMultipleTokenValues(value, styles.optionColor,'email');\n\n    multipleEmailOptions.forEach((emailOption: any, index: number) => {\n        const {href, value, id} = emailOption;\n        const formattedValue = EmailValidator(value);\n\n        const onMouseDown = (event :  MouseEvent)=>{\n            event.stopPropagation();\n        }\n        const onContextMenu = (event :  MouseEvent)=>{\n            if(!cellSelection) {\n                event.stopPropagation();\n            }\n        }\n\n        selectionOptions.push({\n            value                       : formattedValue,\n            selectedValueRenderer       : MultipleTokenCustomRenderer,\n            selectedValueRendererParams : emailOption,\n            color                       : styles.optionColor,\n            id                          : `${id}_${index}`,\n            onMouseDown                 : onMouseDown,\n            onContextMenu               : onContextMenu,\n        });\n\n        renderOptions.push({\n            color    : styles.optionColor,\n            renderer : ()=>{\n                const anchorElement = getBubbleUrlElement(value, href);\n                anchorElement.addEventListener('mousedown', onMouseDown);\n                anchorElement.addEventListener('contextmenu', onContextMenu);\n                return anchorElement;\n            }\n        })\n    });\n\n    const renderConfig = {\n        options     : renderOptions,\n        cellElement : cellElement\n    }\n\n    const getSelectionConfig : () => CORE_MULTIPLE_EMAIL_SELECTION_CONFIG = () => {\n        return {\n            clipboard : params.clipboard,\n            multiple         : true as const,\n            optionAsChip     : true as const,\n            options          : selectionOptions,\n            readonly         : true as const,\n            // selectedIndex    : [...Array(selectionOptions.length).keys()],\n            selectedOptions : selectionOptions,\n            useElipses       : true,\n            ellipsesRenderer : EllipsesRenderer,\n        }\n    }\n\n    return {\n        renderConfig       : renderConfig,\n        getSelectionConfig : getSelectionConfig,\n        parentDOM          : params.parentDOM,\n        rowHeight          : params.rowHeight,\n        onSelection        : () => {\n            cellSelection = true;\n        },\n        onDeSelection      : () => {\n            cellSelection = false;\n        },\n        isCellFocused      : params.isCellFocused,\n\n        hoverStateEllipsisChip : getHoverStateEllipsisChip(()=>{fieldCellEventHandler.startEditing(recordID, fieldID, editor_initiated_from.ELLIPSES);})\n    }\n}\n\n//single email\nexport function getSingleEmailConfig(params : any) : CORE_SINGLE_EMAIL_INLINE_CONFIG  {\n    let value = params.value;\n    let selected = false;\n    const { eventKey, cellElement } = params;\n    if (eventKey) {\n        value = eventKey;\n    }\n\n    const renderConfig = {\n        value           : value,\n        href            : `mailto:${value}`,\n        target          : \"_blank\" as const,\n        onContextMenu   : (event: MouseEvent) => {\n            if(!selected) {\n                event.stopPropagation();\n            }\n        },\n        onMouseDown     : (event: MouseEvent) => {\n            event.stopPropagation();\n        },\n        cellElement     : cellElement\n    }\n\n    const getSelectionConfig = () => {\n        return {\n            clipboard : params.clipboard,\n            value           : renderConfig.value,\n            href            : renderConfig.href,\n            target          : renderConfig.target,\n            onContextMenu   : renderConfig.onContextMenu,\n            onMouseDown     : renderConfig.onMouseDown\n        }\n    }\n\n    return {\n        renderConfig       : renderConfig,\n        getSelectionConfig : getSelectionConfig,\n        parentDOM          : params.parentDOM,\n        onSelection        : () => {\n            selected = true;\n        },\n        onDeSelection      : () => {\n            selected = false;\n        },\n        isCellFocused      : params.isCellFocused\n    }\n}\n\n// FORMULA\nexport function getFormulaConfig(params : any) : CORE_FORUMULA_INLINE_CONFIG  {\n    let value = params.value;\n    const { eventKey, fieldTypeSpecifications, cellElement } = params;\n    if (eventKey) {\n        value = eventKey;\n    }\n    return Object.assign({},  params, {\n        value                   : value,\n        cellElement : cellElement,\n        isCellFocused : params.isCellFocused,\n    });\n}\n\n// KEYWORD_EXTRACTION\nexport function getKeywordExtractionConfig (params : any) : CORE_KEYWORD_EXTRACTION_INLINE_CONFIG  {\n    let value = params.value;\n    const { recordID,fieldID ,fieldCellEventHandler} = params;\n    const values     = value ? value.split(',') : [];\n    const keywords   = getKeywordValues(values, KEYWORD_EXTRACT_BUBBLE_COLOR);\n    const indices = values.map((val: string) => keywords.findIndex(keyword => keyword.value === val));\n\n    const { eventKey, cellElement } = params;\n    if (eventKey) {\n        value = eventKey;\n    }\n\n    const renderConfig = {\n        options               : indices.map((index: number) => {\n            const keyword = keywords[index];\n            return {\n                label : keyword.value,\n                color : keyword.color\n            }\n        }),\n        cellElement           : cellElement,\n        readonly              : params.readonly ?? false\n    }\n\n    const getSelectionConfig = () => {\n        let handleClickForEllipses = ((ev : MouseEvent)=>{\n            ev.preventDefault();\n            ev.stopPropagation();\n            params.fieldCellEventHandler.startEditing(params.recordID, params.fieldID, editor_initiated_from.ELLIPSES);\n            \n        }) as EventListener;\n        return {\n            clipboard : params.clipboard,\n            options               : keywords,\n            readonly              : true as const,\n            multiple              : true as const,\n            optionAsChip          : true as const,\n            useElipses            : true,\n            ellipsesRenderer      : EllipsesRenderer,\n            ellipsesRendererParams : {\n                handleClickForEllipses : handleClickForEllipses,\n                isSelected : true\n            },\n            // selectedIndex         : indices,\n            selectedOptions : indices.map((i : number)=>keywords[i]),\n            preventDropdownOpen   : true as const,\n        }\n    }\n\n    return {\n        renderConfig       : renderConfig,\n        rowHeight          : params.rowHeight,\n        getSelectionConfig : getSelectionConfig,\n        parentDOM          : params.parentDOM,\n        onSelection        : (params: any) => {},\n        onDeSelection      : (params: any) => {},\n        isCellFocused      : params.isCellFocused,\n        hoverStateEllipsisChip : getHoverStateEllipsisChip(()=>{fieldCellEventHandler.startEditing(recordID, fieldID,editor_initiated_from.ELLIPSES);})\n    }\n}\n\n// LANGUAGE_DETECTOR\nexport function  getLanguageDetectorConfig (params : any) : CORE_LANGUAGE_DETECTOR_INLINE_CONFIG {\n    const {value, cellElement } = params;\n    const rowsCount = Math.floor(params.rowHeight / 25);\n\n    const renderConfig = {\n        value           : value,\n        cellElement     : cellElement\n    }\n\n    const getSelectionConfig = () => { \n        return {\n            clipboard : params.clipboard,\n            value           : renderConfig.value,\n            readonly        : true,\n            rows            : rowsCount, // may be eventhandler added but not used\n        }\n    }\n\n    return {\n        renderConfig       : renderConfig,\n        getSelectionConfig : getSelectionConfig,\n        parentDOM          : params.parentDOM,\n        onSelection        : (params: any) => {},\n        onDeSelection      : (params: any) => {},\n        isCellFocused      : params.isCellFocused\n    }\n}\n\n// LINK\nexport function getLinkConfig (params : any, dataProvider : IFCConfigDataProvider) : CORE_LINK_INLINE_CONFIG  {\n    const { fieldTypeSpecifications,value,baseID,recordID,fieldID ,fieldCellEventHandler,fieldType, cellElement} = params;\n    const styles              = getFieldStylesByType(fieldType, fieldTypeSpecifications) as any;\n    const oppositeFieldID         = fieldTypeSpecifications[0];\n    const oppositeViewID          = fieldTypeSpecifications[2];\n    const relationshipDirection   = fieldTypeSpecifications[3];\n    const relationshipID          = fieldTypeSpecifications[4];\n    const leafFieldParameters     = fieldTypeSpecifications[5];\n    const allowDuplicateLinkedRecords = getAllowDuplicateLinkedRecords(fieldTypeSpecifications);\n    const metas                   = getLinkFieldMetas(value, leafFieldParameters, dataProvider.getBaseID(), dataProvider);\n    const recordNames             = metas[1];\n    const recordIds               = metas[0];\n    const recordCounts            = metas[2];\n    const linkValues              = generateBubbleTypesFromStringsForLink(recordNames, recordIds, styles.optionColor, allowDuplicateLinkedRecords, recordCounts);\n    const linkSelectionContext    = { componentAPI: null as any };\n\n    const selectedIndexes = [];\n    for(let i = 0; i < linkValues.length; i++) {\n        selectedIndexes.push(i);\n    }\n    let handleClickForEllipses = ((ev : MouseEvent)=>{\n        ev.preventDefault();\n        ev.stopPropagation();\n        params.fieldCellEventHandler.startEditing(params.recordID, params.fieldID, editor_initiated_from.ELLIPSES);\n        \n    }) as EventListener;\n\n    const multiSelectConfig : MULTIPLE_SELECT_RENDER_CONFIG=  {\n        dropdownAppendTo : document.querySelector(\".ZG-rootWrapperBody\") as HTMLElement ?? document.body, //dropdownAppendTo for tooltip\n        options:        linkValues,\n        selectedOptions :  selectedIndexes.map(i=> linkValues[i]),\n        multiple: true,\n        optionAsChip : true,\n        useElipses : true,\n        ellipsesRenderer : EllipsesRenderer,\n        ellipsesRendererParams : {\n            handleClickForEllipses : handleClickForEllipses,\n            isSelected : true\n        },\n        readonly : true,\n        allowDuplicateValues : allowDuplicateLinkedRecords,\n        customParams:fieldID,\n        plusIconRenderer : PlusIconRenderer,\n        plusIconRendererParams  : {\n            fieldCellEventHandler,\n            recordID,\n            fieldID\n        },\n        preventDropdownOpen : true,\n        onAfterDeselect: allowDuplicateLinkedRecords ? (_option: any) => {\n            const selectedOptions = linkSelectionContext.componentAPI.getSelectedOptions();\n            const selectedRecordIDs: string[] = [];\n            const selectedCounts: number[] = [];\n            const indexById = new Map<string, number>();\n            for (const option of selectedOptions) {\n                const recordId = option.id;\n                if (!recordId) {\n                    continue;\n                }\n                const optionCount = option.linkCount != null && option.linkCount > 0 ? Number(option.linkCount) : 1;\n                const existingIndex = indexById.get(recordId);\n                if (existingIndex !== undefined) {\n                    selectedCounts[existingIndex] += optionCount;\n                } else {\n                    indexById.set(recordId, selectedRecordIDs.length);\n                    selectedRecordIDs.push(recordId);\n                    selectedCounts.push(optionCount);\n                }\n            }\n            fieldCellEventHandler.updateCellData(recordID, fieldID, encodeLinkSubmitValue(selectedRecordIDs, true, selectedCounts));\n        } : undefined,\n        // The actual DG_Components.Select is built from this nested object (see\n        // LinkInlineComponent.createSelectionComponent), not the outer selection config --\n        // clipboard must live here to actually reach the DataGrid editor.\n        clipboard : params.clipboard,\n    }\n\n    const renderConfig = {\n        options         : toLinkChipRenderingOptions(linkValues, allowDuplicateLinkedRecords),\n        cellElement     : cellElement,\n        readonly        : params.readonly ?? false\n    }\n\n    const getSelectionConfig = () => {\n        return {\n            clipboard : params.clipboard,\n            multiSelectConfiguration : multiSelectConfig,\n            baseID : baseID,\n            oppositeViewID : oppositeViewID,\n            oppositeFieldID : oppositeFieldID,\n            relationshipDirection : relationshipDirection,\n            relationshipID : relationshipID,\n            allowDuplicateLinkedRecords,\n        }\n    }\n\n    return {\n        renderConfig       : renderConfig,\n        getSelectionConfig : getSelectionConfig,\n        linkSelectionContext,\n        allowDuplicateLinkedRecords,\n        parentDOM          : params.parentDOM,\n        rowHeight          : params.rowHeight,\n        onSelection        : (params: any) => {},\n        onDeSelection      : (params: any) => {},\n        isCellFocused      : params.isCellFocused,\n\n        hoverStatePlusIcon     : null,\n        hoverStateEllipsisChip : getHoverStateEllipsisChip(()=>{fieldCellEventHandler.startEditing(recordID, fieldID, editor_initiated_from.ELLIPSES);})\n    }\n}\n\n// LOOKUP\nexport function getLookupConfig(params : any, dataProvider : IFCConfigDataProvider) : CORE_LOOKUP_INLINE_CONFIG  {\n    const {fieldTypeSpecifications,baseID,fieldType,value, cellElement, recordID, fieldID, fieldCellEventHandler } = params;\n    const leafFieldParameters   = fieldTypeSpecifications[2];\n    const styles                = getFieldStylesByType(fieldType, fieldTypeSpecifications) as any;\n    const data                  = parseLookupDataResponse(value, leafFieldParameters, dataProvider.getBaseID(), dataProvider);\n    const lookupValues          = generateBubbleTypesFromStringsForLink(data,data, styles.optionColor);\n    const selectedIndex         = data.map(value => lookupValues.findIndex(item => item.value === value));\n\n    const renderConfig = {\n        options         : selectedIndex.map((index: number) => {\n            const option = lookupValues[index];\n            return {\n                label : option.value,\n                color : option.color\n            }\n        }),\n        cellElement     : cellElement\n    }\n\n    const getSelectionConfig = () => {\n        let handleClickForEllipses = ((ev : MouseEvent)=>{\n            ev.preventDefault();\n            ev.stopPropagation();\n            params.fieldCellEventHandler.startEditing(params.recordID, params.fieldID, editor_initiated_from.ELLIPSES);\n            \n        }) as EventListener;\n        return {\n            clipboard : params.clipboard,\n            // selectedIndex   : selectedIndex,\n            selectedOptions : selectedIndex.map(i=>lookupValues[i]),\n            options         : lookupValues,\n            multiple        : true as const,\n            optionAsChip    : true as const,\n            readonly        : true as const,\n            useElipses      : true,\n            ellipsesRenderer : EllipsesRenderer,\n            ellipsesRendererParams : {\n                handleClickForEllipses : handleClickForEllipses,\n                isSelected : true\n            },\n            tooltipAppendto : document.querySelector(\".ZG-rootWrapperBody\") as HTMLElement,\n            tooltip : true\n        }\n    }\n\n    return {\n        renderConfig       : renderConfig,\n        getSelectionConfig : getSelectionConfig,\n        parentDOM          : params.parentDOM,\n        rowHeight          : params.rowHeight,\n        onSelection        : (params: any) => {},\n        onDeSelection      : (params: any) => {},\n        isCellFocused      : params.isCellFocused,\n        hoverStateEllipsisChip : getHoverStateEllipsisChip(()=>{fieldCellEventHandler.startEditing(recordID, fieldID, editor_initiated_from.ELLIPSES);})\n    }\n}\n\n// MODIFIED_BY\nexport function getModifiedByConfig(params : any, dataProvider : IFCConfigDataProvider) : CORE_MODIFIED_BY_INLINE_CONFIG  {\n    const { eventKey, fieldTypeSpecifications,baseID,value, cellElement } = params;\n    const collaboratorDS                    = dataProvider.getCollaboratorDS();\n    const collaboratorValue                 = value ? dataProvider.getCollaboratorValue(value, collaboratorDS) :  { value : \"\", color : \"\", imageURL : \"\"};\n\n    const {value : label, color : chipColor, imageURL : imageUrl} = collaboratorValue;\n\n    const renderConfig = {\n        label       : label,\n        color       : chipColor,\n        imageUrl    : imageUrl,\n        cellElement : cellElement\n    }\n\n    const getSelectionConfig = ()=>{\n        return {\n            clipboard : params.clipboard,\n            readOnly                    : true,\n            label                       : label,\n            ariaLabel                   : label,\n            userThumbnailRendererParams : {\n                imageUrl : imageUrl,\n            },\n            chipColor         : chipColor,\n            thumbnailRenderer : AvatarIconRenderer,\n            cellElement       : cellElement,\n            tooltipAppendto : document.querySelector(\".ZG-rootWrapperBody\") as HTMLElement,\n            tooltip : true\n        }\n    } \n\n    return {\n        renderConfig       : renderConfig,\n        getSelectionConfig : getSelectionConfig,\n        isCellFocused : params.isCellFocused\n    }\n}\n\n// MODIFIED_TIME\nexport function getModifiedTimeConfig(params : any) : CORE_MODIFIED_TIME_INLINE_CONFIG  {\n    const { fieldTypeSpecifications ,value, cellElement}   = params;\n    const dateFormat                                    = fieldTypeSpecifications[1];\n    const timeFormat                                    = fieldTypeSpecifications[2];\n    const hourCycle                                     = fieldTypeSpecifications[3];\n    const hourCycleValue                                = hourCycle === \"12H\" ? 12 : hourCycle === \"23H\" ? 24 : 0;\n    const formatValue                                   = hourCycle ? `${dateFormat} ${timeFormat}` : dateFormat;\n\n    const renderConfig = {\n        value       : Number(value),\n        dateFormat  : dateFormat,\n        timeFormat  : timeFormat,\n        hourCycle   : hourCycleValue as HourCycle,\n        cellElement : cellElement\n    }\n\n    const getSelectionConfig = () => {\n        return {\n            clipboard : params.clipboard,\n            value       : Number(value),\n            dateFormat  : dateFormat,\n            timeFormat  : timeFormat,\n            hourCycle   : hourCycleValue as HourCycle,\n            format      : formatValue,\n            type        : 'datetimefield',\n            showDatePicker : false\n        }\n    }\n\n    return {\n        renderConfig       : renderConfig,\n        getSelectionConfig : getSelectionConfig,\n        parentDOM          : params.parentDOM,\n        onSelection        : (params: any) => {},\n        onDeSelection      : (params: any) => {},\n        isCellFocused      : params.isCellFocused\n    }\n}\n\n// MULTIPLE_SELECTION\nexport function getMultipleSelectionConfig(params : any, dataProvider : IFCConfigDataProvider) : CORE_MULTIPLE_SELECTION_INLINE_CONFIG  {\n    const {fieldTypeSpecifications,baseID, cellElement, recordID, fieldID, fieldCellEventHandler, value} = params;\n    const multiSelectID  = fieldTypeSpecifications[0];\n    const coloredOptions = fieldTypeSpecifications[1];\n    const multiSelectDS  = dataProvider.getMultiSelectDS(multiSelectID);\n\n    const selectedIDs    = getSelectedIDs(value);\n    const selectionValue = (selectedIDs && selectedIDs.length > 0) ? getMultiSelectionValue(selectedIDs, coloredOptions, multiSelectDS) : null;\n\n    const selectedOptions = selectionValue ?? [];\n    const renderConfig = {\n        readonly : params.readonly ?? false,\n        cellElement : cellElement,\n        options : selectedOptions.map(option => {\n            const color = option.color;\n            const SelectedOptionColor = coloredOptions ? `${HASH}${color}` : '';\n            return Object.assign({}, option, {color : SelectedOptionColor, strokeColor : getGanttStrokeColor(SelectedOptionColor)})\n        })\n    }\n\n    const getSelectionConfig : () => CORE_MULTIPLE_SELECTION_SELECTION_CONFIG = ()=>{\n        const transformedValues = multiSelectDS.order.map((key: any) => {\n            const [color, value] = multiSelectDS.values[key];\n            return { \n                clipboard : params.clipboard,\n              value,\n              ...(coloredOptions && { color: `${HASH}${color}` }),\n              id : key,\n            };\n        });\n    \n        let index :number [] = [];\n        const allSelectionIDs    = getAllSelectionIDs(multiSelectDS);\n        const allSelectionValues = getSelectionValues(allSelectionIDs, coloredOptions, multiSelectDS);\n        if (Array.isArray(selectionValue)) {\n            \n            index = selectionValue\n                .map(target => allSelectionValues.findIndex(obj => obj.id === target.id))\n                .filter(idx => idx !== -1);\n        }\n        else if (selectionValue ) {\n            const singleIndex = allSelectionValues.findIndex(obj => obj.id === selectionValue.id);\n            if (singleIndex !== -1) {\n                index = [singleIndex]; // Store the single index in an array\n            }\n        }\n\n        \n        return {\n            options          : transformedValues,\n            multiple         : true,\n            optionAsChip     : true,\n            useElipses       : true,\n            ellipsesRenderer : EllipsesRenderer,\n            readonly         : true,\n              // selectedIndex   : index,\n            selectedOptions     : index.map(i=>transformedValues[i]),\n            preventDropdownOpen : true,\n        }\n\n    }\n    \n    return {\n        renderConfig : renderConfig,\n        getSelectionConfig : getSelectionConfig,\n        onSelection     : ()=>{},\n        onDeSelection   : ()=>{},\n        isCellFocused : params.isCellFocused,\n        rowHeight     : params.rowHeight,\n\n        hoverStatePlusIcon     : null,\n        hoverStateEllipsisChip : getHoverStateEllipsisChip(()=>{fieldCellEventHandler.startEditing(recordID, fieldID, editor_initiated_from.ELLIPSES);})\n    }\n}\n\n\n// NUMBER\nexport function getNumberConfig(params : any) : CORE_NUMBER_INLINE_CONFIG  {\n    let value = params.value;\n    const { fieldTypeSpecifications, cellElement } = params;\n    const [locale, thousandSeparator, precision] = fieldTypeSpecifications;\n    const numberValues                  = getNumberValues(value, locale, thousandSeparator, precision);\n\n    const renderConfig = {\n        value               : numberValues != \"\" ? Number(numberValues): null,\n        decimalPrecision    : precision,\n        thousandsSeparator  : !!thousandSeparator,\n        cellElement         : cellElement\n    }\n\n    const getSelectionConfig = () => {\n        return {\n            clipboard : params.clipboard,\n            value               : numberValues != \"\" ? Number(numberValues): null,\n            decimalPrecision    : precision,\n            generateEmptyDom    : false,\n            thousandsSeparator  : !!thousandSeparator,\n            showErrorState      : false as const,\n            readonly            : true\n        }\n    }\n\n    return {\n        renderConfig       : renderConfig,\n        getSelectionConfig : getSelectionConfig,\n        parentDOM          : params.parentDOM,\n        onSelection        : (params: any) => {},\n        onDeSelection      : (params: any) => {},\n        isCellFocused      : params.isCellFocused\n    }\n}\n\n\n// PERCENT\nexport function getPercentConfig(params : any) : CORE_PERCENT_INLINE_CONFIG  {\n    let value = params.value\n    const {fieldTypeSpecifications, cellElement, fieldType } = params;\n    const [locale, precision, showSymbol, thousandSeparator] = fieldType === '16' ? fieldTypeSpecifications : fieldTypeSpecifications[2][0][1];\n    const percentValues                  = value ? getPercentValues(value, thousandSeparator, precision) : null;\n    const convertedValue = multiplyBy100(percentValues)\n    const { value: output } = parseRoundValue(convertedValue);\n\n    const renderConfig = {\n        value               : output,\n        decimalPrecision    : precision,\n        inputSuffix         : Number.isFinite(percentValues) ? \"%\" : null,\n        hideSymbol          : true,\n        thousandsSeparator  : !!thousandSeparator,\n        cellElement         : cellElement\n    }\n\n    const getSelectionConfig = () => {\n        return {\n            clipboard : params.clipboard,\n            type                : \"percent\" as const,\n            readonly            : true,\n            value               : renderConfig.value,\n            decimalPrecision    : renderConfig.decimalPrecision,\n            spinButton          : 'none' as const,\n            inputSuffix         : renderConfig.inputSuffix,\n            hideSymbol          : renderConfig.hideSymbol,\n            generateEmptyDom    : false,\n            thousandsSeparator  : renderConfig.thousandsSeparator\n        }\n    }\n\n    return {\n        renderConfig       : renderConfig,\n        getSelectionConfig : getSelectionConfig,\n        parentDOM          : params.parentDOM,\n        onSelection        : (params: any) => {},\n        onDeSelection      : (params: any) => {},\n        isCellFocused      : params.isCellFocused\n    }\n}\n\n\n// PHONE_NUMBER\n// multiple phone number\nexport function getMultiplePhoneNumberConfig(params: any) : CORE_MULTIPLE_PHONE_NUMBER_INLINE_CONFIG  {\n    const {fieldTypeSpecifications :fieldSpecifications ,value,fieldType, cellElement, recordID, fieldID, fieldCellEventHandler} = params;\n    const styles              = getFieldStylesByType(fieldType, fieldSpecifications) as any;\n    const multiplePhoneOptions = getMultipleTokenValues(value, styles.optionColor, 'phone');\n    const pattern  =  fieldSpecifications[0];\n\n    let selectionOptions: any[] = [];\n    let renderOptions: any[] = [];\n    let cellSelection = false;\n    multiplePhoneOptions.forEach((phoneOption: any, index: number) => {\n        const value          = phoneOption.value ?? '';\n        const formattedValue = formatValue(value,pattern);\n        const id             = `${phoneOption.id}_${index}`\n\n        phoneOption.id          = id;\n        // phoneOption.value       = formattedValue;\n        \n        const onMouseDown = (event :  MouseEvent)=>{\n            event.stopPropagation();\n        }\n        const onContextMenu = (event :  MouseEvent)=>{ \n            if(!cellSelection) {\n                event.stopPropagation();\n            }\n        }\n\n        selectionOptions.push({\n            value                       : formattedValue,\n            selectedValueRenderer       : MultipleTokenCustomRenderer,\n            selectedValueRendererParams : phoneOption,\n            color                       : styles.optionColor,\n            id                          : id,\n            onMouseDown                 : onMouseDown,\n            onContextMenu               : onContextMenu\n        });\n\n        renderOptions.push({\n            color    : styles.optionColor,\n            renderer : ()=>{\n                const anchorElement = getBubbleUrlElement(formattedValue, `tel:${phoneOption.value}`);\n                anchorElement.addEventListener('mousedown', onMouseDown);\n                anchorElement.addEventListener('contextmenu', onContextMenu);\n                return anchorElement;\n            }\n        });\n    });\n\n    const renderConfig = {\n        options     : renderOptions,\n        cellElement : cellElement\n    }\n\n    const getSelectionConfig : () => CORE_MULTIPLE_PHONE_NUMBER_SELECTION_CONFIG = () => {\n        selectionOptions.forEach(options=>{\n           options.selectedValueRendererParams.value = formatValue(options.selectedValueRendererParams.value,pattern);\n        })\n        return {\n            clipboard : params.clipboard,\n            multiple         : true as const,\n            optionAsChip     : true,\n            options          : selectionOptions,\n            readonly         : true as const,\n            // selectedIndex    : [...Array(selectionOptions.length).keys()],\n            selectedOptions  : selectionOptions,\n            useElipses       : true,\n            ellipsesRenderer : EllipsesRenderer,\n            tooltipAppendto : document.querySelector(\".ZG-rootWrapperBody\") as HTMLElement,\n            tooltip : true\n        }\n    }\n\n    return {\n        renderConfig       : renderConfig,\n        getSelectionConfig : getSelectionConfig,\n        parentDOM          : params.parentDOM,\n        rowHeight          : params.rowHeight,\n        onSelection        : () => {\n            cellSelection = true;\n        },\n        onDeSelection      : () => {\n            cellSelection = false;\n        },\n        isCellFocused      : params.isCellFocused,\n\n        hoverStateEllipsisChip : getHoverStateEllipsisChip(()=>{fieldCellEventHandler.startEditing(recordID, fieldID, editor_initiated_from.ELLIPSES);})\n    }\n}\n\n// single phone number\nexport function getSinglePhoneNumberConfig(params: any) : CORE_SINGLE_PHONE_NUMBER_INLINE_CONFIG  {\n    let value       = params.value ?? '';\n    const format    = params.fieldTypeSpecifications[0];\n    let selected = false;\n    let displayValue  =  formatValue(value, format)\n\n    const renderConfig = {\n        value           : displayValue,\n        href            : `tel:${value}`,\n        format          : format,\n        type            : 'telephone',\n        onContextMenu   : (event: MouseEvent) => {\n            if(!selected) {\n                event.stopPropagation();\n            }\n        },\n        onMouseDown     : (event: MouseEvent) => {\n            event.stopPropagation();\n        },\n        cellElement     : params.cellElement\n    }\n\n    const getSelectionConfig = () => {\n        return {\n            clipboard : params.clipboard,\n            value           : renderConfig.value,\n            href            : renderConfig.href,\n            target          : \"_blank\" as const,\n            format          : renderConfig.format,\n            type            : renderConfig.type,\n            onContextMenu   : renderConfig.onContextMenu,\n            onMouseDown     : renderConfig.onMouseDown\n        }\n    }\n\n    return {\n        renderConfig       : renderConfig,\n        getSelectionConfig : getSelectionConfig,\n        parentDOM          : params.parentDOM,\n        onSelection        : () => {\n            selected = true;\n        },\n        onDeSelection      : () => {\n            selected = false;\n        },\n        isCellFocused      : params.isCellFocused\n    }\n}\n\n\n// RATING\n\nexport function getRatingConfig(params: any) : CORE_RATING_INLINE_CONFIG  {\n    let value = params.value;\n    const { eventKey, fieldTypeSpecifications, cellElement } = params;\n    const rating    = getRating(value);\n    const iconStyle = fieldTypeSpecifications[0] as RatingIconStyle;\n    const fillStyle = fieldTypeSpecifications[1];\n    const iconCount = fieldTypeSpecifications[2];\n    const templateID     = RATING_ICON_STYLE[iconStyle];\n    const iconSVGElement = getTemplate(templateID)?.querySelector('svg') as SVGElement;\n    const onChange = ()=>{};\n\n    const renderConfig = {\n        value                 : rating,\n        maxValue              : iconCount,\n        checkedIcon : ()=>{\n            const icon = iconSVGElement.cloneNode(true) as SVGElement;\n            icon.classList.add('ZF-ratingChecked');\n            return icon;\n        },\n        uncheckedIcon : ()=>iconSVGElement.cloneNode(true),\n        readonly :  true, \n        cellElement : cellElement,\n        onChange : onChange,\n    }\n\n    const getSelectionConfig = () => {\n        return {\n            clipboard : params.clipboard,\n            value              : value,\n            maxValue           : iconCount,\n            readonly           : true,\n            iconRenderer       : RatingIconRenderer,\n            iconRendererParams : {\n                icon  :iconSVGElement,\n            },\n            onChange : onChange,\n            iconTemplate: (value: number, index: number, iconSVG? : SVGElement) => {\n                let iconSVGElement;\n                if(!iconSVG) {\n                    const templateID     = RATING_ICON_STYLE[iconStyle];\n                          iconSVGElement = getTemplate(templateID)?.querySelector('svg') as SVGElement;\n                } else {\n                    iconSVGElement = iconSVG;\n                }\n                if(value !== 0) {\n                    iconSVGElement.classList.toggle('ZF-ratingChecked', index < value);\n                } \n                return iconSVGElement;\n            },\n        }\n    }\n\n    return {\n        renderConfig : renderConfig,\n        getSelectionConfig : getSelectionConfig,\n\n        color    : {\n            empty: RATING_ICON_RENDER_COLOR,\n            hover: '#'+fillStyle,\n            full : '#'+fillStyle\n        },\n        isCellFocused : params.isCellFocused,\n        parentDOM : params.parentDOM,\n        onSelection : ()=>{},\n        onDeSelection : ()=>{}\n    }\n}\n\n\n// ROLLUP\nexport function getRollupConfig(params:  any, dataProvider : IFCConfigDataProvider):  CORE_ROLLUP_INLINE_CONFIG {\n    const { fieldTypeSpecifications,baseID,value ,fieldType, cellElement, recordID, fieldID, fieldCellEventHandler} = params;\n    const styles                = getFieldStylesByType(fieldType, fieldTypeSpecifications) as any;\n    const leafFieldParameters   = fieldTypeSpecifications[4];\n    const formulaID             = fieldTypeSpecifications[2];\n    const modifiedData          = getRollupFieldFormattedData(value, formulaID, leafFieldParameters, dataProvider.getBaseID(), dataProvider);\n    const data                  = modifiedData ? [modifiedData] : [];\n    const rollupValues          = generateBubbleTypesFromStringsForLink(data, data, styles.optionColor);\n    const selectedIndex         = data.map(value => rollupValues.findIndex(item => item.value === value));\n\n    const renderConfig = {\n        options         : selectedIndex.map((index: number) => {\n            const option = rollupValues[index];\n            return {\n                label : option.value,\n                color : option.color\n            }\n        }),\n        cellElement     : cellElement\n    }\n\n    const getSelectionConfig = () => {\n        return {\n            clipboard : params.clipboard,\n            // selectedIndex   : selectedIndex,\n            selectedOptions :  selectedIndex.map(i=>rollupValues[i]),\n            options         : rollupValues,\n            multiple        : true as const,\n            optionAsChip    : true as const,\n            useElipses      : true,\n            readonly        : true as const,\n            ellipsesRenderer : EllipsesRenderer,\n            tooltipAppendto : document.querySelector(\".ZG-rootWrapperBody\") as HTMLElement,\n            tooltip : true\n        }\n    }\n\n    return {\n        renderConfig       : renderConfig,\n        getSelectionConfig : getSelectionConfig,\n        parentDOM          : params.parentDOM,\n        rowHeight          : params.rowHeight,\n        onSelection        : (params: any) => {},\n        onDeSelection      : (params: any) => {},\n        isCellFocused      : params.isCellFocused,\n\n        hoverStateEllipsisChip : getHoverStateEllipsisChip(()=>{fieldCellEventHandler.startEditing(recordID, fieldID,editor_initiated_from.ELLIPSES);})\n    }\n}\n\n\n// SENTIMENTAL_ANALYSIS\nexport function getSentimentAnalysisConfig(params: any, dataProvider : IFCConfigDataProvider): CORE_SENTIMENTAL_ANALYSIS_INLINE_CONFIG {\n    let value = params.value;\n    const { eventKey, fieldTypeSpecifications ,baseID, cellElement} = params;\n    if (eventKey) {\n        value = eventKey;\n    }\n    const sentimentID         = fieldTypeSpecifications[1];\n    const sentimentDS         = dataProvider.getSentimentMeta(sentimentID);\n    let   targetIndex   : any = null;\n    const options : any       = [];\n\n    const renderConfig = {\n        value       : \"\",\n        imageURL    : \"\",\n        cellElement : cellElement\n    }\n    \n    sentimentDS.sentiments.forEach((sentimentOption : any, id : string)=>{\n        const isSelectedId = (id == value);\n        const {imgSrc, sentimentValue} = sentimentOption;\n        if(isSelectedId) {\n            renderConfig.value = sentimentValue;\n            renderConfig.imageURL = imgSrc;\n        }\n        isSelectedId && (targetIndex = options.length);\n        options.push({\n            value                       : sentimentValue,\n            selectedValueRenderer       : SentimentalValueCustomRenderer,\n            selectedValueRendererParams : {\n                imageURL : imgSrc,\n                label    : sentimentValue,\n                bgColor  : 'transparent',\n            },\n            id\n        })  \n    });\n\n    const getSelectionConfig = () => {\n        return {\n            clipboard : params.clipboard,\n            options       : options,\n            multiple      : false,\n            optionAsChip  : true,\n            readonly      : true,\n            className     : FIELD_TYPE_CSS_CLASSNAME[SENTIMENTAL_ANALYSIS],\n            selectedOptions : targetIndex !== null ? [options[targetIndex]] : [],\n        }\n    }\n\n    return {\n        renderConfig       : renderConfig,\n        getSelectionConfig : getSelectionConfig,\n\n        parentDOM     : params.parentDOM,\n        onSelection   : ()=>{},\n        onDeSelection : ()=>{},\n        isCellFocused : params.isCellFocused,\n    }\n}\n\n// SINGLE_SELECTION\nexport function getSingleSelectionConfig(params : any, dataProvider : IFCConfigDataProvider) : CORE_SINGLE_SELECTION_INLINE_CONFIG  {\n    let value = params.value;\n    const { eventKey, fieldTypeSpecifications,baseID, cellElement } = params;\n    if (eventKey) {\n        value = eventKey;\n    }\n    const selectedID     = getSelectedID(value);\n    const singleSelectID = fieldTypeSpecifications[0];\n    const coloredOptions = fieldTypeSpecifications[1];\n    let selectionValue = null;\n    if(selectedID) {\n        const singleSelectDS = dataProvider.getMultiSelectDS(singleSelectID);\n        selectionValue = getSingleSelectionValue(selectedID, coloredOptions, singleSelectDS);\n    }\n\n    const getSelectionConfig : () => CORE_SINGLE_SELECTION_SELECTION_CONFIG = ()=>{\n        const singleSelectDS = dataProvider.getMultiSelectDS(singleSelectID);\n        const allSelectionIDs    = getAllSelectionIDs(singleSelectDS);\n        const allSelectionValues = getSelectionValues(allSelectionIDs, coloredOptions, singleSelectDS);\n        const transformedValues = singleSelectDS.order.map((key: any) => {\n            const [color, value] = singleSelectDS.values[key];\n            const bgColor = coloredOptions ? `${HASH}${color}` : '';\n            return { \n                clipboard : params.clipboard,\n                        value, \n                        id : key,\n                        selectedValueRenderer:SingleSelectChipCustomRenderer ,\n                        bgColor: bgColor,\n                        selectedValueRendererParams: {\n                            label: value,\n                            bgColor: bgColor,\n                            dotColor: coloredOptions ? `${HASH}${getBubbleNodeInnerCircleColor(color)}` : '',\n                        },\n                }\n        })\n        let index :number [] = [];\n        if (Array.isArray(selectionValue)) {\n            index = allSelectionValues\n                .map((obj, index) => \n                    selectionValue?.some(target => obj.id === target.id) ? index : -1\n                )\n                .filter(idx => idx !== -1);\n        }\n        else if (selectionValue ) {\n            const singleIndex = allSelectionValues.findIndex(obj => obj.id === selectionValue?.id);\n            if (singleIndex !== -1) {\n                index = [singleIndex]; // Store the single index in an array\n            }\n        }\n\n        return {\n            readonly            : true,\n            id                  : value,\n            // selectedIndex       : index,\n            selectedOptions : index.map(i=>transformedValues[i]),\n            options             : transformedValues,   // need to change\n            optionAsChip        : true,\n            preventDropdownOpen : true,\n            tooltipAppendto        : document.querySelector(\".ZT-container\") as HTMLElement,\n            tooltip : true,\n        }\n    }\n\n    const selectedOptionDotColor = coloredOptions && selectionValue ? `${HASH}${getBubbleNodeInnerCircleColor(selectionValue.color)}` : '';\n    const SelectedOptionColor    = coloredOptions && selectionValue ? `${HASH}${selectionValue.color}` : '';\n    return {\n        renderConfig : {\n            color       : SelectedOptionColor,\n            label       : selectionValue ? selectionValue.label : null,\n            dotColor    : selectedOptionDotColor,\n            cellElement : cellElement\n        },\n        getSelectionConfig,\n       \n        onSelection   : (params:any)=>{},\n        onDeSelection : (params:any)=>{},\n        cellElement : cellElement,\n        isCellFocused : params.isCellFocused\n    }\n}\n\n// TEXT\nexport function getTextConfig(params : any) : CORE_TEXT_INLINE_CONFIG  {\n    const {fieldTypeSpecifications, value, cellElement }   = params;\n    const autoDetectHyperlink                 = fieldTypeSpecifications[1];\n    // const format = fieldTypeSpecifications[0] as keyof typeof formatMap;\n    // const word = formatMap[format] || 'none';\n    // const formattedValue= singleLineTextFormatter(value,fieldTypeSpecifications[0])\n\n    const renderConfig = {\n        value : value,\n        hasURL : autoDetectHyperlink,\n        cellElement : cellElement\n    }\n\n    const getSelectionConfig = ()=>{\n        return {\n            clipboard : params.clipboard,\n            value : value,\n            hasURL : autoDetectHyperlink,\n        }\n    }\n    return {\n        onSelection        : (_params: any)=>{},\n        onDeSelection      : (_params: any)=>{},\n        isCellFocused      : params.isCellFocused,\n        renderConfig       : renderConfig,\n        parentDOM          : params.parentDOM,\n        getSelectionConfig : getSelectionConfig,\n    }\n}\n// export function getTextConfig(params : any) : CORE_TEXT_INLINE_CONFIG  {\n//     const {fieldTypeSpecifications, value }   = params;\n//     const autoDetectHyperlink                 = fieldTypeSpecifications[1];\n//     const format = fieldTypeSpecifications[0] as keyof typeof formatMap;\n//     const word = formatMap[format] || 'none';\n//     return {\n//         value   : value,\n//         hasURL  : autoDetectHyperlink,\n//         format : word,\n//         onSelection  :(_params: any)=>{},\n//         onDeSelection :(_params: any)=>{}\n//     }\n// }\n\n\n// URL \n// single url\nexport function getSingleURLConfig(params : any) : CORE_SINGLE_URL_INLINE_CONFIG  {\n    let value = params.value;\n    const { eventKey, fieldTypeSpecifications, cellElement } = params;\n    let selected = false;\n    const href = (value.startsWith('http://') || value.startsWith('https://')) ? value : `https://${value}`;\n    const renderConfig = {\n        value           : value,\n        href            : href,\n        onContextMenu   : (event: MouseEvent) => {\n            if(!selected) {\n                event.stopPropagation();\n            }\n        },\n        onMouseDown     : (event: MouseEvent) => {\n            event.stopPropagation();\n        },\n        cellElement     : cellElement\n    }\n\n    const getSelectionConfig = () => {\n        return {\n            clipboard : params.clipboard,\n            value           : renderConfig.value,\n            href            : renderConfig.href,\n            target          : \"_blank\" as const,\n            onContextMenu   : renderConfig.onContextMenu,\n            onMouseDown     : renderConfig.onMouseDown\n        }\n    }\n\n    return {\n        renderConfig       : renderConfig,\n        getSelectionConfig : getSelectionConfig,\n        parentDOM          : params.parentDOM,\n        onSelection        : () => {\n            selected = true;\n        },\n        onDeSelection      : () => {\n            selected = false;\n        },\n        isCellFocused      : params.isCellFocused\n    }\n}\n\n// multiple url\nexport function getMultipleURLConfig(params : any) : CORE_MULTIPLE_URL_INLINE_CONFIG  {\n    const { recordID, fieldID, fieldCellEventHandler, value, fieldTypeSpecifications, fieldType } = params;\n    const styles              = getFieldStylesByType(fieldType, fieldTypeSpecifications) as any;\n    let cellSelection = false;\n    const multipleURLOptions = getMultipleTokenValues(value, styles.optionColor, 'url');\n    let selectionOptions: any[] = [];\n    let renderOptions: any[] = [];\n\n    multipleURLOptions.forEach((urlOption: any, index: number) => {\n        const onMouseDown = (event :  MouseEvent)=>{\n            event.stopPropagation();\n        }\n        const onContextMenu = (event :  MouseEvent)=>{ \n            if(!cellSelection) {\n                event.stopPropagation();\n            }\n        }\n\n        selectionOptions.push({\n            value                       : urlOption.value,\n            selectedValueRenderer       : MultipleTokenCustomRenderer,\n            selectedValueRendererParams : urlOption,\n            color                       : styles.optionColor,\n            id                          : `${urlOption.id}_${index}`,\n            onMouseDown                 : onMouseDown,\n            onContextMenu               : onContextMenu\n        });\n\n        renderOptions.push({\n            color    : styles.optionColor,\n            renderer : ()=>{\n                const url = urlOption.value;\n                const href = (url.startsWith('http://') || url.startsWith('https://')) ? url : `https://${url}`;\n                const anchorElement = getBubbleUrlElement(urlOption.value, href);\n                anchorElement.addEventListener('mousedown', onMouseDown);\n                anchorElement.addEventListener('contextmenu', onContextMenu);\n                return anchorElement;\n            }\n        });\n    });\n\n    const renderConfig = {\n        options     : renderOptions,\n        cellElement : params.cellElement\n    }\n\n    const getSelectionConfig = () => {\n        return {\n            clipboard : params.clipboard,\n            multiple         : true as const,\n            optionAsChip     : true,\n            options          : selectionOptions,\n            readonly         : true as const,\n            // selectedIndex    : [...Array(selectionOptions.length).keys()],\n            selectedOptions : selectionOptions,\n            useElipses       : true,\n            ellipsesRenderer : EllipsesRenderer\n        }\n    }\n\n    return {\n        renderConfig       : renderConfig,\n        getSelectionConfig : getSelectionConfig,\n        parentDOM          : params.parentDOM,\n        rowHeight          : params.rowHeight,\n        onSelection        : () => {\n            cellSelection = true;\n        },\n        onDeSelection      : () => {\n            cellSelection = false;\n        },\n        isCellFocused      : params.isCellFocused,\n\n        hoverStateEllipsisChip : getHoverStateEllipsisChip(()=>{fieldCellEventHandler.startEditing(recordID, fieldID, editor_initiated_from.ELLIPSES);})\n    }\n}\n\n//Token\nexport function getTokenConfig(params : any) : CORE_TOKEN_INLINE_CONFIG {\n    const   value                                           = params.value;\n    const { eventKey, fieldType, fieldTypeSpecifications    : fieldSpecifications} = params as FIELD_TYPE_COMPONENTS_MANAGER_PARAMS;\n    const styles                                            = getFieldStylesByType(fieldType, fieldSpecifications) as any;\n    const multipleEmailValues                               = getDGMultipleEmailValues(value, styles.optionColor);\n    return Object.assign({}, params, {\n        data          : multipleEmailValues,\n        separators    : [',', ' '],\n        dataMapping   :  {\n            color     : 'color',\n            value     : 'label'\n        },\n        searchValue   : eventKey ? eventKey : null,\n        popupParent   : document.querySelector(\".ZT-container\") as HTMLElement,\n        isCellFocused : params.isCellFocused\n    })\n\n}\n\nexport function getFormulaTextConfig(params : any) : CORE_TEXT_INLINE_CONFIG{\n    const {fieldTypeSpecifications, value }   = params;\n    const autoDetectHyperlink                 =  fieldTypeSpecifications[2][0][1][1];\n    \n    const renderConfig = {\n        value       : value,\n        hasURL      : autoDetectHyperlink,\n        cellElement : params.cellElement\n    }\n\n    const getSelectionConfig = () => {\n        return {\n            clipboard : params.clipboard,\n            value  : value,\n            hasURL : autoDetectHyperlink,\n        }\n    }\n\n    return {\n        renderConfig       : renderConfig,\n        getSelectionConfig : getSelectionConfig,\n\n        parentDOM     : params.parentDOM,\n        onSelection   : (_params: any)=>{},\n        onDeSelection : (_params: any)=>{},\n        isCellFocused : params.isCellFocused\n    }\n\n}\n\nexport function  getFormulaNumberConfig(params : any) : CORE_FORMULA_NUMBER_INLINE_CONFIG {\n    const fieldSpecifications                       = params.fieldTypeSpecifications;\n    const value                                     = params.value;\n    const formatArray                               = fieldSpecifications[2][0];\n    const formats                                   = formatArray[1];\n    const [locale, thousandSeparator, precision]    = formats;\n    const data                                      = (value && value != \"\") ? parseFormulaDataResponse(value) : '';\n    const numberValues                              = getNumberValues(data, locale, thousandSeparator, precision);\n\n\n    const renderConfig = {\n        value              : numberValues != \"\" ? Number(numberValues) : null,\n        decimalPrecision   : precision,\n        thousandsSeparator : !!thousandSeparator,\n        cellElement        : params.cellElement\n    }\n\n    const getSelectionConfig = () => {\n        return {\n            clipboard : params.clipboard,\n            value              : numberValues != \"\" ? Number(numberValues) : null,\n            decimalPrecision   : precision,\n            thousandsSeparator : !!thousandSeparator,\n            generateEmptyDom   : false,\n            showErrorState     : false,\n            readOnly           : true,\n        }\n    }\n  \n    return {\n        onSelection   : (_params: any)=>{},\n        onDeSelection : (_params: any)=>{},\n        isCellFocused : params.isCellFocused,\n\n        renderConfig       : renderConfig,\n        getSelectionConfig : getSelectionConfig\n    }\n}\n\nexport function getFormulaCurrencyConfig (params :any)  : CORE_CURRENCY_INLINE_CONFIG {\n        let value = params.value ? JSON.parse(params.value).success : \"\";\n        const { eventKey} = params;\n        if (eventKey) {\n            value = eventKey;\n        }\n        const fieldTypeSpecifications = params.fieldTypeSpecifications[2][0][1];\n        let   currency                = fieldTypeSpecifications[1].trim();\n        const locale                  = fieldTypeSpecifications[0];\n        const placement               = fieldTypeSpecifications[2];\n        const precision               = fieldTypeSpecifications[3];\n        const thousandSeparator       = fieldTypeSpecifications[4];\n        const currencyValue           = currencyFormatter(value, precision);\n        const symbolPosition          = PLACEMENT_FROM_ID[placement as CurrencyPlacementID];\n\n        const formatter = symbolPosition === 'accounting'\n        ? (value: any) => {\n                if(value < 0 || Object.is(Number(value), -0)){\n                    const formattedValue = value.toString().replace(/^-/, '');\n                    const coverterdValue = parseFloat(formattedValue);\n                    const formattedNumber = numberFormatter(coverterdValue, locale, thousandSeparator, precision);\n                    return `(${formattedNumber})`\n                }\n                return numberFormatter(value, locale,thousandSeparator, precision);\n            }\n        : null;\n\n        const renderConfig = {\n            value              : currencyValue,\n            currencySymbol     : currency,\n            hideSymbol         : true,\n            decimalPrecision   : precision,\n            thousandsSeparator : !!thousandSeparator,\n            symbolPosition     : symbolPosition,\n            inputPrefix        : symbolPosition === 'accounting' ? currency : null,\n            inputSuffix        : symbolPosition === 'right' ? currency : null,\n            formatter,\n            cellElement        : params.cellElement,\n        }\n\n        const getSelectionConfig = () => {\n            return {\n                clipboard : params.clipboard,\n                type               : \"currency\",\n                currencyCode       : \"INR\",\n                hideSymbol         : true,\n                decimalPrecision   : precision,\n                thousandsSeparator : !!thousandSeparator,                                // will discuss and remove\n                value              : currencyValue,\n                currencySymbol     : currency,\n                symbolPosition     : symbolPosition,\n                inputPrefix        : symbolPosition === 'accounting' ? currency : null,\n                inputSuffix        : symbolPosition === 'right' ? currency      : null,\n                generateEmptyDom   : false,\n                formatter,\n            }\n        }\n\n\n\n        return {\n            renderConfig       : renderConfig,\n            getSelectionConfig : getSelectionConfig,\n\n            parentDOM     : params.parentDOM,\n            onSelection   : (_params: any)=>{},\n            onDeSelection : (_params: any)=>{},\n            isCellFocused : params.isCellFocused\n        }\n}\nexport function getFormulaPercentConfig (params :any)  : CORE_FORMULA_PERCENT_INLINE_CONFIG{\n    const value                                                 = params.value;\n    // const [locale, precision, showSymbol, thousandSeparator]    = fieldSpecifications;\n    const [locale, precision, showSymbol, thousandSeparator]   =params.fieldTypeSpecifications[2][0][1];\n    const percentValues                                         = value ? getPercentValues(value, thousandSeparator, precision) : null;\n\n    const renderConfig = {\n        value               : percentValues ? percentValues*100 : percentValues,\n        decimalPrecision    : precision,\n        thousandsSeparator  : !!thousandSeparator,\n        inputSuffix         :  Number.isFinite(percentValues) ? \"%\" : '' ,\n        cellElement         : params.cellElement\n    }\n\n    const getSelectionConfig = () => {\n        return {\n            clipboard : params.clipboard,\n            readOnly         : true,\n            value            : renderConfig.value,\n            decimalPrecision : renderConfig.decimalPrecision,\n            spinButton       : 'none',\n            inputSuffix      : renderConfig.inputSuffix,\n            type             : 'percent',\n            hideSymbol       : true,\n            generateEmptyDom : false,\n        }\n    }\n\n\n\n    return {\n        renderConfig       : renderConfig,\n        getSelectionConfig : getSelectionConfig,\n\n\n        onSelection   : (_params: any)=>{},\n        onDeSelection : (_params: any)=>{},\n        cellElement   : params.cellElement,\n        isCellFocused : params.isCellFocused\n    }\n}\nexport function getDateTimeCurrencyConfig (params :any)  : CORE_FORMULA_DATE_TIME_INLINE_CONFIG | CORE_FORMULA_DATE_TIME_HOUR_CYCLE_INLINE_CONFIG{\n\n    const value               = params.value;\n    const fieldSpecifications = params.fieldTypeSpecifications;\n    const dateFormat = fieldSpecifications[1];\n    const timeFormat = fieldSpecifications[2];\n    const hourCycle  = fieldSpecifications[3];\n    if(hourCycle){\n        return Object.assign({},params, {  \n            readOnly                  : true,\n            ellipsis                  : true,\n            showDatePickerIcon        : false,\n            datePickerIconRenderer    : false ,// to be implemeted by\n            dateFormat                : dateFormat, // dc components\n            showTime                  : true,\n            timeFormat                : timeFormat, // dc components\n            value                     : value,\n            cellElement : params.cellElement,\n            isCellFocused : params.isCellFocused\n        })\n    }\n    else{\n        return Object.assign({},params, {\n            showDatePickerIcon        : false,\n            datePickerIconRenderer    : false, // to be implemeted by\n            dateFormat                : dateFormat, //dc components\n            showTime                  : true,\n            value                     : value,\n            cellElement : params.cellElement,\n            isCellFocused : params.isCellFocused\n        })\n    }\n}\n\n","import { AUTO_NUMBER, CHECKBOX, COLLABORATOR_CLIENT, CREATED_BY, CREATED_TIME, CURRENCY, DATE_TIME, EMAIL, FORMULA, KEYWORD_EXTRACTION, LANGUAGE_DETECTOR, LINK, LOOKUP, MODIFIED_BY, MODIFIED_TIME, MULTIPLE_SELECTION, NUMBER, PERCENT, PHONE_NUMBER, RATING, ROLLUP, SENTIMENTAL_ANALYSIS, SINGLE_SELECTION, TEXT, URL } from \"../../../../Constants/FieldTypes.js\";\nimport { FormulaReturnTypeMapping } from \"../../../../Constants/FormulaReturnTypes.js\";\nimport { AutoNumberInlineComponent } from \"../../../../FieldTypeComponents/Composite/AutonumberFieldType/AutoNumberInlineComponent\";\nimport { CheckboxInlineComponent } from \"../../../../FieldTypeComponents/Composite/CheckBoxFieldType/CheckboxInlineComponent\";\nimport { MultipleCollaboratorInlineComponent } from \"../../../../FieldTypeComponents/Composite/CollaboratorFieldType/MultipleCollaborator/MultipleCollaboratorInlineComponent\";\nimport { SingleCollaboratorInlineComponent } from \"../../../../FieldTypeComponents/Composite/CollaboratorFieldType/SingleCollaborator/SingleCollaboratorInlineComponent\";\nimport { CreatedByInlineComponent } from \"../../../../FieldTypeComponents/Composite/CreatedByFieldType/CreatedByInlineComponent\";\nimport { CreatedTimeInlineComponent } from \"../../../../FieldTypeComponents/Composite/CreatedTimeFieldType/CreatedTimeInlineComponent\";\nimport { CurrencyInlineComponent } from \"../../../../FieldTypeComponents/Composite/CurrencyFieldType/CurrencyInlineComponent\";\nimport { DateTimeInlineComponent } from \"../../../../FieldTypeComponents/Composite/DateTimeFieldType/DateTimeInlineComponent\";\nimport { EmailInlineComponent } from \"../../../../FieldTypeComponents/Composite/EmailFieldType/EmailInlineComponent\";\nimport { MultipleEmailInlineComponent } from \"../../../../FieldTypeComponents/Composite/EmailFieldType/MultipleEmailInlineComponent\";\nimport { CoreKeywordExtractInlineComponent } from \"../../../../FieldTypeComponents/Composite/KeywordExtractFieldType/CoreKeywordExtractInlineComponent\";\nimport { CoreLanguageDetectionInlineComponent } from \"../../../../FieldTypeComponents/Composite/LanguageDetectionFieldType/CoreLanguageDetectionInlineComponent\";\nimport { LinkInlineComponent } from \"../../../../FieldTypeComponents/Composite/LinkFieldType/LinkInlineComponent\";\nimport { LookupInlineComponent } from \"../../../../FieldTypeComponents/Composite/LookupFieldType/LookupInlineComponent\";\nimport { ModifiedByInlineComponent } from \"../../../../FieldTypeComponents/Composite/ModifiedByFieldType/ModifiedByInlineComponent\";\nimport { ModifiedTimeInlineComponent } from \"../../../../FieldTypeComponents/Composite/ModifiedTime/ModifiedTimeInlineComponent\";\nimport { MultiSelectInlineComponent } from \"../../../../FieldTypeComponents/Composite/MultipleSelectionFieldType/MultiSelectInlineComponent\";\nimport { NumberInlineComponent } from \"../../../../FieldTypeComponents/Composite/NumberFieldType/NumberInlineComponent\";\nimport { PercentInlineComponent } from \"../../../../FieldTypeComponents/Composite/PercentFieldType/PercentInlineComponent\";\nimport { MultiplePhoneNumberInlineComponent } from \"../../../../FieldTypeComponents/Composite/PhoneNumberFieldType/MultiplePhoneNumberInlineComponent\";\nimport { PhoneNumberInlineComponent } from \"../../../../FieldTypeComponents/Composite/PhoneNumberFieldType/PhoneNumberInlineComponent\";\nimport { RatingInlineComponent } from \"../../../../FieldTypeComponents/Composite/RatingFieldType/RatingInlineComponent\";\nimport { RollupInlineComponent } from \"../../../../FieldTypeComponents/Composite/RollupFieldType/RollupInlineComponent\";\nimport { CoreSentimentalAnalysisInlineComponent } from \"../../../../FieldTypeComponents/Composite/SentimentalAnalysisFieldType/CoreSentimentalAnalysisInlineComponent\";\nimport { SingleSelectInlineComponent } from \"../../../../FieldTypeComponents/Composite/SingleSelectFieldType/SingleSelectInlineComponent\";\nimport { TextInlineComponent } from \"../../../../FieldTypeComponents/Composite/TextFieldType/TextInlineComponent\";\nimport { MultipleURLInlineComponent } from \"../../../../FieldTypeComponents/Composite/URLFieldType/MultipleURLInlineComponent\";\nimport { URLInlineComponent } from \"../../../../FieldTypeComponents/Composite/URLFieldType/URLInlineComponent\";\nimport { MultipleEmailPopupComponent } from \"../../../../FieldTypeComponents/EditComponents/EmailFieldType/MultipleEmailPopupComponent.js\";\nimport { parseFormulaDataResponse } from \"../../../../Utility/DataUtility.js\";\nimport { getAutoNumberConfig, getCheckboxConfig, getCreatedByConfig, getCreatedTimeConfig, getCurrencyConfig, getDateTimeConfig, getFormulaCurrencyConfig, getFormulaNumberConfig, getFormulaPercentConfig, getFormulaTextConfig, getKeywordExtractionConfig, getLanguageDetectorConfig, getLinkConfig, getLookupConfig, getModifiedByConfig, getModifiedTimeConfig, getMultipleCollaboratorConfig, getMultipleEmailConfig, getMultiplePhoneNumberConfig, getMultipleSelectionConfig, getMultipleURLConfig, getNumberConfig, getPercentConfig, getRatingConfig, getRollupConfig, getSentimentAnalysisConfig, getSingleCollaboratorConfig, getSingleEmailConfig, getSinglePhoneNumberConfig, getSingleSelectionConfig, getSingleURLConfig, getTextConfig } from \"../CoreInlineFCConfigConstructor\";\nimport { IFCConfigDataProvider } from \"../Interface/IFCConfigDataProvider.js\";\nimport { getClipboardConfig } from \"../Utility\";\nimport { VIEWER_LANGUAGE_DETECTOR_INLINE_CONFIG, VIEWER_MULTIPLE_EMAIL_INLINE_CONFIG, VIEWER_MULTIPLE_URL_INLINE_CONFIG } from \"./Interface/ViewerInlineFCConfigInterface.js\";\n\n\nexport class CoreViewerInlineFCConfigConstructor {\n    protected dataProvider : IFCConfigDataProvider;\n    protected fieldConstructorMapping : Record<number,any>;\n\n    constructor(dataProvider : IFCConfigDataProvider){\n        this.dataProvider = dataProvider;\n        this.fieldConstructorMapping = this.getFieldConstructorMapping();\n    }\n\n    protected getFieldConstructorMapping() : Record<number,any> {\n        return {\n            [AUTO_NUMBER]           : this.constructAutoNumberComponent,\n            [CHECKBOX]              : this.constructCheckboxComponent,\n            [CURRENCY]              : this.constructCurrencyComponent,\n            [COLLABORATOR_CLIENT]   : this.constructCollaboratorComponent,\n            [CREATED_BY]            : this.constructCreatedByComponent,\n            [CREATED_TIME]          : this.constructCreatedTimeComponent,\n            [DATE_TIME]             : this.constructDateTimeComponent,\n            [EMAIL]                 : this.constructEmailComponent,\n            [KEYWORD_EXTRACTION]    : this.constrcutKeywordExtractionComponent,\n            [LANGUAGE_DETECTOR]     : this.constructLanguageDetector,\n            [LINK]                  : this.constructLinkComponent,\n            [LOOKUP]                : this.constructLookupComponent,\n            [MODIFIED_BY]           : this.constructModifiedByComponent,\n            [MODIFIED_TIME]         : this.constructModifiedTimeComponent,\n            [MULTIPLE_SELECTION]    : this.constructMultipleSelectionComponent,\n            [NUMBER]                : this.constructNumberComponent,\n            [PERCENT]               : this.constructPercentComponent,\n            [PHONE_NUMBER]          : this.constructPhoneNumberComponent,\n            [RATING]                : this.constructRatingComponent,\n            [ROLLUP]                : this.constructRollupComponent,\n            [SENTIMENTAL_ANALYSIS]  : this.constructSentimentalAnalysisComponent,\n            [SINGLE_SELECTION]      : this.constructSingleSelectionComponent,\n            [TEXT]                  : this.constructTextComponent,\n            [URL]                   : this.constructUrlComponent,\n            [FORMULA]               : this.constructFormulaComponent,\n        };\n    }\n\n    // AUTO_NUMBER\n    constructAutoNumberComponent(params: any) : AutoNumberInlineComponent  {\n        const parentElement = params.parentDOM;\n        const coreConfig = getAutoNumberConfig(params);\n        const component =  new AutoNumberInlineComponent(coreConfig,parentElement);\n        return component;\n    }\n    // CHECKBOX\n    constructCheckboxComponent(params : any) : CheckboxInlineComponent  {\n        const parentElement   = params.parentDOM;\n        const coreConfig      = getCheckboxConfig(params);\n        const component       = new CheckboxInlineComponent(coreConfig,parentElement);\n        return component;\n    }\n\n    // COLLABORATOR_CLIENT\n    constructCollaboratorComponent(params : any) {\n        const {fieldTypeSpecifications} = params;\n        const isSingleCollaborator      = fieldTypeSpecifications[0] === 0;\n        return isSingleCollaborator ? this.constructSingleCollaboratorComponent(params) : this.constructMultipleCollaboratorComponent(params);\n    }\n    //single collaborator\n    constructSingleCollaboratorComponent(params : any) : SingleCollaboratorInlineComponent  {\n        const parentElement = params.parentDOM;\n        const coreConfig = getSingleCollaboratorConfig(params, this.dataProvider);\n        const roleBasedConfig ={\n            onSelection :(params : any)=>{\n            },\n            onDeSelection :(params : any)=>{\n            }\n        };\n        const mergedConfig = Object.assign({},coreConfig,roleBasedConfig);\n        const component =  new SingleCollaboratorInlineComponent(mergedConfig,parentElement);\n        return component;\n    }\n    // multiple collaborator\n    constructMultipleCollaboratorComponent(params : any) : MultipleCollaboratorInlineComponent {\n        const parentElement = params.parentDOM;\n        const coreConfig = getMultipleCollaboratorConfig(params, this.dataProvider);\n        let initialSelectionEvent :  MouseEvent | null = null\n\n        let handleClickBound = ((ev : MouseEvent)=>{\n            if(initialSelectionEvent != ev){\n                handleClick(ev);\n            }\n        }) as EventListener;\n\n        const handleClick =(event : MouseEvent)=>{\n            event.stopPropagation();\n            params.fieldCellEventHandler.startEditing(params.recordID, params.fieldID);\n        }\n\n        const roleBasedConfig ={\n            onSelection :(params : any)=>{\n                initialSelectionEvent = params.event;\n                params.component.api.updateProperties({tooltipAppendto : document.querySelector(\".ZT-container\") as HTMLElement,tooltip : true});\n                const ellipsesIcon          = params.component.api.getEllipsesIcon();\n                ellipsesIcon && ellipsesIcon.addEventListener('click', handleClickBound);\n                params.component.api.getElement().addEventListener('dblclick', (event:any) => {\n                    event.stopPropagation();\n                });\n            },\n            onDeSelection :(params : any)=>{\n                params.component.api.updateProperties({tooltip : false});\n                \n                if (handleClickBound) {\n                    const ellipsesIcon = params.component.api.getEllipsesIcon();\n                    ellipsesIcon && ellipsesIcon.removeEventListener('click', handleClickBound);\n                }\n                params.component.api.getElement().removeEventListener('dblclick', (event:any) => {\n                    event.stopPropagation();\n                });\n            },\n            hoverStatePlusIcon : null\n        };\n        const mergedConfig = Object.assign({},coreConfig,roleBasedConfig);\n\n        const component =  new MultipleCollaboratorInlineComponent(mergedConfig,parentElement);\n        return component;\n    }\n\n    // CREATED_BY\n    constructCreatedByComponent(params : any)  : CreatedByInlineComponent {\n        const parentElement = params.parentDOM;\n        const coreConfig = getCreatedByConfig(params, this.dataProvider);\n        const component =  new CreatedByInlineComponent(coreConfig,parentElement);\n        return component;\n    }\n\n    // CREATED_TIME\n    constructCreatedTimeComponent(params : any) : CreatedTimeInlineComponent |  null{\n        const parentElement = params.parentDOM;\n        const coreConfig = getCreatedTimeConfig(params);\n        const component =  new CreatedTimeInlineComponent(coreConfig,parentElement);\n        return component;\n    }\n\n    // CURRENCY\n    constructCurrencyComponent(params : any) : CurrencyInlineComponent {\n        const parentElement = params.parentDOM;\n        const coreConfig = getCurrencyConfig(params);\n        const component =  new CurrencyInlineComponent(coreConfig,parentElement);\n        return component;\n    }\n\n    // DATE_TIME\n    constructDateTimeComponent(params : any) : DateTimeInlineComponent{\n        const parentElement = params.parentDOM;\n        const coreConfig = getDateTimeConfig(params);\n        const viewerConfig = {\n            onSelection :(params : any)=>{\n            },\n            onDeSelection :(params : any)=>{\n            },\n        }\n        const mergedConfig = Object.assign({},coreConfig,viewerConfig);\n        const component =  new DateTimeInlineComponent(mergedConfig,parentElement);\n        return component;\n    }\n\n    // EMAIL\n\n    constructEmailComponent(params : any)   {\n        const {fieldTypeSpecifications} = params;\n        const isSingleEmail             = fieldTypeSpecifications[0] === 0;\n        return isSingleEmail ? this.constructSingleEmailComponent(params) : this.constructMultipleEmailComponent(params)\n    }\n    // single email\n    constructSingleEmailComponent(params : any) : EmailInlineComponent {\n        const parentElement = params.parentDOM;\n        const coreConfig = getSingleEmailConfig(params);\n        const roleBasedConfig = {\n            \n        }\n        const mergedConfig = Object.assign({},coreConfig,roleBasedConfig);\n        const component =  new EmailInlineComponent(mergedConfig,parentElement);\n        return component;\n    }\n\n    // multiple email\n    constructMultipleEmailComponent(params : any) : MultipleEmailInlineComponent | MultipleEmailPopupComponent{\n        const parentElement = params.parentDOM;\n        const coreConfig : VIEWER_MULTIPLE_EMAIL_INLINE_CONFIG= getMultipleEmailConfig(params);\n        const component =  new MultipleEmailInlineComponent(coreConfig,parentElement);\n        return component;\n    }\n\n    // KEYWORD_EXTRACTION\n    constrcutKeywordExtractionComponent(params : any) : CoreKeywordExtractInlineComponent{\n        const parentElement = params.parentDOM;\n        const coreConfig = getKeywordExtractionConfig(params);\n        const component =  new CoreKeywordExtractInlineComponent(coreConfig,parentElement);\n        return component;\n    }\n\n    // LANGUAGE_DETECTOR\n    constructLanguageDetector(params : any) : CoreLanguageDetectionInlineComponent {\n        const parentElement = params.parentDOM;\n        const coreConfig : VIEWER_LANGUAGE_DETECTOR_INLINE_CONFIG = getLanguageDetectorConfig(params);\n        const component =  new CoreLanguageDetectionInlineComponent(coreConfig,parentElement);\n        return component;\n    }\n\n    // LINK\n    constructLinkComponent(params :any) : LinkInlineComponent{\n        const parentElement = params.parentDOM;\n        const coreConfig = getLinkConfig(params, this.dataProvider);\n        const roleBasedConfig ={\n            onSelection :(params : any)=>{\n                const component = params.component;\n                const componentAPI = params.componentAPI;\n                const enableExpandParams = params.enableExpandParams;\n\n                component.addExpandIcon(enableExpandParams);\n\n                // componentAPI.updateProperties({enablePlusIcon : false});\n                componentAPI.updateProperties({tooltipAppendto : document.querySelector(\".ZG-rootWrapperBody\") as HTMLElement,tooltip : true});\n\n                component.handleClickBound = (evt: Event) => component.handleClick(evt as MouseEvent);\n                const plusIcon              = componentAPI.getPlusIconDOM();\n                const ellipsesIcon          = componentAPI.getEllipsesIcon();\n                plusIcon && plusIcon.addEventListener('click', component.handleClickBound);\n                ellipsesIcon && ellipsesIcon.addEventListener('click', component.handleClickBound);\n\n                const selectedChipDoms = componentAPI.getSelectedChipDoms();\n                const selectedOptions = componentAPI.getSelectedOptions();\n\n                selectedOptions.forEach((option : { id?: string; linkRecordId?: string }) => {\n                    const chipElement = option.id != null ? selectedChipDoms[option.id] : null;\n                    const recordId = option.id;\n                    if (chipElement && recordId) {\n                        chipElement.addEventListener('click', component.chipClickEvent.bind(component, recordId));\n                    }\n                });\n        \n                componentAPI.getElement().addEventListener('dblclick', (event:any) => {\n                     event.stopPropagation();\n                });\n            },\n            onDeSelection :(params : any)=>{\n                const component = params.component;\n                const componentAPI = params.componentAPI;\n\n                const selectedChipDoms = componentAPI.getSelectedChipDoms();\n                const selectedOptions = componentAPI.getSelectedOptions();\n\n                selectedOptions.forEach((option : { id?: string; linkRecordId?: string }) => {\n                    const chipElement = option.id != null ? selectedChipDoms[option.id] : null;\n                    const recordId = option.id;\n                    if (chipElement && recordId) {\n                        chipElement.removeEventListener('click', component.chipClickEvent.bind(component, recordId));\n                    }\n                });\n                componentAPI.updateProperties({enablePlusIcon : false});\n                componentAPI.updateProperties({tooltip : false});\n                \n                if (component.handleClickBound) {\n                    const plusIcon     = componentAPI.getPlusIconDOM();\n                    const ellipsesIcon = componentAPI.getEllipsesIcon();\n\n                    plusIcon  && plusIcon.removeEventListener('click', component.handleClickBound);\n                    ellipsesIcon && ellipsesIcon.removeEventListener('click', component.handleClickBound);\n                    component.handleClickBound = null; // Clear the reference\n                }\n                componentAPI.getElement().removeEventListener('dblclick', (event:any) => {\n                    event.stopPropagation();\n                });\n                component.removeExpandIcon()\n            },\n            readonly : true\n        };\n        const mergedConfig = Object.assign({},coreConfig,roleBasedConfig);\n        const component =  new LinkInlineComponent(mergedConfig,parentElement);\n        return component;\n    }\n    // LOOKUP\n    constructLookupComponent(params : any) : LookupInlineComponent  {\n        const parentElement = params.parentDOM;\n        const coreConfig = getLookupConfig(params, this.dataProvider);\n        const roleBasedConfig ={\n            onSelection :(params : any)=>{\n            },\n            onDeSelection :(params : any)=>{\n            }\n        };\n        const mergedConfig = Object.assign({},coreConfig,roleBasedConfig);\n        const component =  new LookupInlineComponent(mergedConfig,parentElement);\n        return component;\n    }\n\n    // MODIFIED_BY\n    constructModifiedByComponent(params : any) : ModifiedByInlineComponent  {\n        const parentElement = params.parentDOM;\n        const coreConfig = getModifiedByConfig(params, this.dataProvider);\n        const component =  new ModifiedByInlineComponent(coreConfig,parentElement);\n        return component;\n    }\n\n    // MODIFIED_TIME\n    constructModifiedTimeComponent(params : any) :ModifiedTimeInlineComponent  {\n        const parentElement = params.parentDOM;\n        const coreConfig = getModifiedTimeConfig(params);\n        const viewerConfig = {\n            showDatePickerIcon : true,\n            onSelection :(params : any)=>{\n            },\n            onDeSelection :(params : any)=>{\n\n            }\n        }\n        const mergedConfig = Object.assign({},coreConfig,viewerConfig);\n\n        const component =  new ModifiedTimeInlineComponent(mergedConfig,parentElement);\n        return component;\n    }\n\n    // MULTIPLE_SELECTION\n    constructMultipleSelectionComponent(params : any) : MultiSelectInlineComponent {\n        const parentElement = params.parentDOM\n        const coreConfig = getMultipleSelectionConfig(params, this.dataProvider);\n        let initialSelectionEvent :  MouseEvent | null = null\n\n        let handleClickBound = ((ev : MouseEvent)=>{\n            if(initialSelectionEvent != ev){\n                handleClick(ev);\n            }\n        }) as EventListener;\n\n        const handleClick =(event : MouseEvent)=>{\n            event.stopPropagation();\n            params.fieldCellEventHandler.startEditing(params.recordID, params.fieldID);\n        }\n\n        const roleBasedConfig ={\n            onSelection :(params : any)=>{\n                initialSelectionEvent = params.event;\n                params.component.api.updateProperties({tooltipAppendto : document.querySelector(\".ZT-container\") as HTMLElement,tooltip : true});\n                const ellipsesIcon          = params.component.api.getEllipsesIcon();\n                ellipsesIcon && ellipsesIcon.addEventListener('click', handleClickBound);\n                params.component.api.getElement().addEventListener('dblclick', (event:any) => {\n                    event.stopPropagation();\n                });\n            },\n            onDeSelection :(params : any)=>{\n                params.component.api.updateProperties({tooltip : false});\n                \n                if (handleClickBound) {\n                    const ellipsesIcon = params.component.api.getEllipsesIcon();\n                    ellipsesIcon && ellipsesIcon.removeEventListener('click', handleClickBound);\n                }\n                params.component.api.getElement().removeEventListener('dblclick', (event:any) => {\n                    event.stopPropagation();\n                });\n            },\n        };\n        const mergedConfig = Object.assign({},coreConfig,roleBasedConfig);\n        const component =  new MultiSelectInlineComponent(mergedConfig,parentElement);\n        return component;\n    }\n\n    // NUMBER\n    constructNumberComponent(params : any) : NumberInlineComponent {\n        const parentElement = params.parentDOM;\n        const coreConfig = getNumberConfig(params);\n        const component =  new NumberInlineComponent(coreConfig,parentElement);\n        return component;\n    }\n\n    // PERCENT\n    constructPercentComponent(params : any) : PercentInlineComponent{\n        const parentElement = params.parentDOM;\n        const coreConfig = getPercentConfig(params);\n        const component =  new PercentInlineComponent(coreConfig,parentElement);\n        return component;\n    }\n\n    // PHONE_NUMBER\n    constructPhoneNumberComponent(params : any) {\n        const {fieldTypeSpecifications} = params;\n        const isSinglePhoneNumber             = fieldTypeSpecifications[1] === 0;\n        return isSinglePhoneNumber ? this.constructSinglePhoneNumberComponent(params) : this.constructMultiplePhoneNumberComponent(params) \n    }\n    // singlePhone\n    constructSinglePhoneNumberComponent(params :  any) : PhoneNumberInlineComponent  {\n        const parentElement = params.parentDOM;\n        const coreConfig = getSinglePhoneNumberConfig(params);\n        const roleBasedConfig = {\n        }\n        const mergedConfig = Object.assign({},coreConfig,roleBasedConfig);\n        const component =  new PhoneNumberInlineComponent(mergedConfig,parentElement);\n        return component\n    }\n\n    // multiphone\n    constructMultiplePhoneNumberComponent(params :  any) : MultiplePhoneNumberInlineComponent  {\n        const parentElement = params.parentDOM;\n        const coreConfig = getMultiplePhoneNumberConfig(params);\n        const component =  new MultiplePhoneNumberInlineComponent(coreConfig,parentElement);\n        return component\n    }\n\n    // RATING\n    constructRatingComponent(params : any) : RatingInlineComponent {\n        const parentElement = params.parentDOM;\n        const coreConfig = getRatingConfig(params);\n        const component =  new RatingInlineComponent(coreConfig,parentElement);\n        return component;\n    }\n\n    // ROLLUP\n    constructRollupComponent(params : any) : RollupInlineComponent  {\n        const parentElement = params.parentDOM;\n        const coreConfig = getRollupConfig(params, this.dataProvider);\n        const roleBasedConfig ={\n            onSelection :(params : any)=>{\n            },\n            onDeSelection :(params : any)=>{\n            }\n        };\n        const mergedConfig = Object.assign({},coreConfig,roleBasedConfig);\n        const component =  new RollupInlineComponent(mergedConfig,parentElement);\n        return component;\n    }\n\n    // SENTIMENTAL_ANALYSIS\n    constructSentimentalAnalysisComponent(params : any) : CoreSentimentalAnalysisInlineComponent {\n        const parentElement = params.parentDOM;\n        const coreConfig = getSentimentAnalysisConfig(params, this.dataProvider);\n        const roleBasedConfig ={\n            onSelection :(_params : any)=>{\n            },\n            onDeSelection :(_params : any)=>{\n            }\n        };\n        const mergedConfig = Object.assign({},coreConfig,roleBasedConfig);\n        const component =  new CoreSentimentalAnalysisInlineComponent(mergedConfig,parentElement);\n        return component;\n    }\n\n    // SINGLE_SELECTION\n    constructSingleSelectionComponent(params : any) : SingleSelectInlineComponent {\n        const parentElement = params.parentDOM;\n        const coreConfig = getSingleSelectionConfig(params, this.dataProvider);\n        const roleBasedConfig ={\n            onSelection :(_params : any)=>{\n            },\n            onDeSelection :(_params : any)=>{\n            }\n        };\n        const mergedConfig = Object.assign({},coreConfig,roleBasedConfig);\n        const component =  new SingleSelectInlineComponent(mergedConfig,parentElement);\n        return component;\n    }\n\n    // TEXT\n    constructTextComponent(params : any) : TextInlineComponent {\n        const parentElement = params.parentDOM;\n        const coreConfig = getTextConfig(params);\n        const component =  new TextInlineComponent(coreConfig,parentElement);\n        return component;\n    }\n\n    // URL\n    constructUrlComponent(params : any) : URLInlineComponent | MultipleURLInlineComponent {\n\n        const {fieldTypeSpecifications} = params;\n        const isSingleURL             = fieldTypeSpecifications[0] === 0;\n        return isSingleURL ? this.constructSingleURLComponent(params) : this.constructMultipleURLComponent(params) \n    \n    }\n    //single Url\n    constructSingleURLComponent(params : any)  : URLInlineComponent{\n        const parentElement = params.parentDOM;\n        const coreConfig = getSingleURLConfig(params);\n        const roleBasedConfig ={\n        };\n        const mergedConfig = Object.assign({},coreConfig,roleBasedConfig);\n        const component =  new URLInlineComponent(mergedConfig,parentElement);\n        return component;\n    }\n\n    // multiple URL\n    constructMultipleURLComponent(params : any) : MultipleURLInlineComponent {\n        const parentElement = params.parentDOM;\n        const coreConfig: VIEWER_MULTIPLE_URL_INLINE_CONFIG = getMultipleURLConfig(params);\n        const component =  new MultipleURLInlineComponent(coreConfig,parentElement);\n        return component;\n    }\n\n    // formula\n    constructFormulaComponent(params : any) {\n        const {fieldTypeSpecifications} = params;\n        const formatArray = fieldTypeSpecifications[2][0];\n        const returnType  = formatArray[0];\n        const value               = params.value;\n        const data = (value && value != \"\") ? parseFormulaDataResponse(value) : ''; \n        switch (FormulaReturnTypeMapping(returnType)) {\n            case TEXT :{\n                params.value = data;\n                return this.constructFormulaTextComponent(params);\n            }\n            case NUMBER :{\n                return this.constructFormulaNumberComponent(params);\n                \n            }\n            case DATE_TIME :{\n                params.value = data;\n                return this.constructFormulaDateTimeComponent(params);\n            }\n            case CURRENCY :{\n                return this.constructFormulaCurrencyComponent(params);\n            }\n            case PERCENT :{\n                params.value = data;\n                return this.constructFormulaPercentComponent(params);\n            }\n        }\n       \n    }\n\n    constructFormulaTextComponent (params : any) : TextInlineComponent {\n        const parentElement = params.parentDOM;\n        const coreConfig = getFormulaTextConfig(params);\n        const component =  new TextInlineComponent(coreConfig,parentElement);\n        return component;\n    }\n\n    constructFormulaNumberComponent(params : any) : NumberInlineComponent | null{\n        const parentElement = params.parentDOM;\n        const coreConfig = getFormulaNumberConfig(params);\n        const component =  new NumberInlineComponent(coreConfig,parentElement);\n        return component;\n    }\n\n    //getFormulaPercentConfig\n    constructFormulaPercentComponent(params : any) : PercentInlineComponent{\n        const parentElement = params.parentDOM;\n        const coreConfig = getPercentConfig(params);\n        const component =  new PercentInlineComponent(coreConfig,parentElement);\n        return component;\n    }\n    constructFormulaCurrencyComponent(params : any) : CurrencyInlineComponent | null{\n        const parentElement = params.parentDOM;\n        const coreConfig = getFormulaCurrencyConfig(params);\n        const component =  new CurrencyInlineComponent(coreConfig,parentElement);\n        return component;\n    }\n\n\n    constructFormulaDateTimeComponent(params : any) : DateTimeInlineComponent{\n        params.fieldTypeSpecifications  =params.fieldTypeSpecifications[2][0][1]\n        // return this.constructDateTimeComponent(params);\n        const parentElement = params.parentDOM;\n        const coreConfig = getDateTimeConfig(params);\n        const viewerConfig = {\n            onSelection :(_params : any)=>{\n            },\n            onDeSelection :(_params : any)=>{\n            },\n            // showDatePicker : false\n        }\n        const mergedConfig = Object.assign({},coreConfig,viewerConfig);\n        const component =  new DateTimeInlineComponent(mergedConfig,parentElement);\n        return component;\n\n    }\n\n\n\n    constructComponent(fieldType: number, params: any) {\n        params.clipboard = getClipboardConfig(params);\n        const componentConstructor = this.fieldConstructorMapping[fieldType];\n        return componentConstructor.call(this, params);\n    }\n}","/*$Id$*/\nimport { getTemplate } from \"../TemplatesForAll.js\";\n\nexport class AttachmentExpandReadOnlyImg{\n\tconstructor(fieldParams, id, attachmentInfo, removeImgCallback, previewAttachmentCallback, setFocusOnAttachmentNameBlurCallback){\n\t\tthis.dom                    = getTemplate('AttachmentExpandImageTemplate').querySelector('#AFD-expandImg'); //NO I18N\n\t\tthis.expandImgSrc           = this.dom.querySelector('#expandImgSrc'); //No I18N\n\t\tthis.fileNameCtr            = this.dom.querySelector('#fileName'); //No I18N\n\t\tthis.fileExtensionCtr       = this.dom.querySelector('#fileExtension'); //No I18N\n\t\tthis.expandImgName          = this.dom.querySelector('.AFD-expandName'); //No I18N\n\t\tthis.expandInputName        = this.dom.querySelector('#name'); //No I18N\n\t\tthis.expandOptionPanel      = this.dom.querySelector('.AFD-expandOptionPanel'); //No I18N\n\t\tthis.expandImgEditIcon      = this.expandOptionPanel.querySelector('#expandImgEditIcon');   //No I18N\n\t\tthis.downloadURL            = this.expandOptionPanel.querySelector('#downloadURL'); //No I18N\n\t\tthis.expandImgDeleteIcon    = this.expandOptionPanel.querySelector('#expandImgDeleteIcon'); //No I18N\n\t\tthis.expandImgDeleteIconLoader = this.expandOptionPanel.querySelector('#expandImgDeleteIconLoader'); //No I18N\n\t\tthis.expandImgDeleteIconLoader.remove();\n\t\tthis.attachmentInfo         = attachmentInfo;\n\t\tthis.attachmentID           = id;\n\t\tthis.fieldParams            = fieldParams;\n\t\tthis.setFocusOnAttachmentNameBlurCallback = setFocusOnAttachmentNameBlurCallback;\n\n\t\tthis.updateValue(attachmentInfo);\n\t\tthis.expandImgDeleteIcon.remove()\n\t\tthis.expandImgEditIcon.remove()\n\t\taddListeners.call(this, removeImgCallback, previewAttachmentCallback);\n\t}\n\n\tgetDom(){\n\t\treturn this.dom;\n\t}\n\n\tshowLoader(){\n\t\tthis.expandImgDeleteIcon.append(this.expandImgDeleteIconLoader);\n\t\tthis.expandImgDeleteIcon.classList.add(\"ZTCL-active\");\n\t}\n\n\thideLoader(){\n\t\tthis.expandImgDeleteIcon.classList.remove(\"ZTCL-active\");\n\t\tthis.expandImgDeleteIconLoader.remove();\n\t}\n\t\n\tupdateValue(attachmentInfo){\n\t\tthis.attachmentInfo    = attachmentInfo;\n\t\tthis.expandImgSrc.src  = attachmentInfo.imgSrc;\n\t\tthis.downloadURL.href  = attachmentInfo.downloadURL;\n\t\tthis.fileExtensionCtr.textContent  = attachmentInfo.fileExtension;\n\t\tsetName.call(this, attachmentInfo.fileName);\n\t}\n}\n\nfunction addListeners(removeImgCallback, previewAttachmentCallback){\n\tthis.expandImgSrc.addEventListener('click', () => {\n\t\tpreviewAttachmentCallback(this.attachmentInfo.resourceId)\n\t});\n}\n\nfunction setName(fileName) {\n\tthis.expandInputName.value           = fileName;\n\tthis.expandImgName.textContent = fileName;\n\tthis.expandInputName.title           = fileName;\n\tthis.expandImgName.title       = fileName;\n}\n\n","/*$Id$*/\nimport { context } from \"../BrowserEvents/Keyboard/KeyContextMapping.js\";\nimport { getTemplate } from '../TemplatesForAll.js';\nimport { WDUtil } from \"../Utility/WDUtil.js\";\nimport { AttachmentExpandReadOnlyImg } from \"./AttachmentExpandReadOnlyImg.js\";\n\nexport class AttachmentExpandReadOnlyDialog {\n\tconstructor(attachmentIDs, fieldID, recordID, dataProvider, closeDialogCallBack, setFocusOnAttachmentNameBlurCallback, onAttachFileDialogOpenDisableDialogStackBodyMousedownListenerCallback, onAttachFileDialogCloseSetKeyContextCallback, onAttachFileDialogCloseEnableDialogStackBodyMousedownListenerCallback){\n\t\tthis.dom                    = getTemplate('AttachmentExpandIconDialog').querySelector('#AFD-expandPanel'); //NO I18N\n\t\tthis.expandCloseIcon        = this.dom.querySelector('.AFD-expandClose'); //No I18N\n\t\tthis.expandImgPanel         = this.dom.querySelector('.AFD-expandImgPanel'); //No I18N\n\t\tthis.expandAddFile          = this.dom.querySelector('.AFD-expandAddFile'); //No I18N\n\n\t\tthis.attachmentIDs       \t= attachmentIDs;\n\t\tthis.fieldParams\t\t\t= null;\n\t\tthis.dataProvider\t\t    = dataProvider;\n\t\tthis.expandDialogMap\t \t= new Map();\n\t\tthis.setFocusOnAttachmentNameBlurCallback = setFocusOnAttachmentNameBlurCallback;\n\t\tthis.onAttachFileDialogOpenDisableDialogStackBodyMousedownListenerCallback = onAttachFileDialogOpenDisableDialogStackBodyMousedownListenerCallback;\n\t\tthis.onAttachFileDialogCloseSetKeyContextCallback = onAttachFileDialogCloseSetKeyContextCallback;\n\t\tthis.onAttachFileDialogCloseEnableDialogStackBodyMousedownListenerCallback = onAttachFileDialogCloseEnableDialogStackBodyMousedownListenerCallback;\n\t\tthis.onClosingUploadedAttachment = onClosingUploadedAttachment.bind(this);\n\n\t\tinit.call(this, fieldID, recordID);\n\t\tthis.hideAddFilesButton();\n\t\taddListeners.call(this, closeDialogCallBack);\n\t}\n\n\tgetDom() {\n\t\treturn this.dom;\n\t}\n\n\taddAttachments(attachmentIDs){\n\t\tattachmentIDs.forEach(fileID => {\n\t\t\tif(this.expandDialogMap.has(fileID)){\n\t\t\t\tconst expandImg\t=  this.expandDialogMap.get(fileID);\n\t\t\t\texpandImg.updateValue(this.getAttachmentDS(fileID));\n\t\t\t} else {\n\t\t\t\tconst expandImg = new AttachmentExpandReadOnlyImg(this.fieldParams, fileID, this.getAttachmentDS(fileID), removeImg.bind(this), previewAttachmentCallback.bind(this), this.setFocusOnAttachmentNameBlurCallback);\n\t\t\t\tconst dom = expandImg.getDom();\n\t\t\t\tthis.expandImgPanel.insertBefore(dom, this.expandAddFile);\n\t\t\t\tthis.expandDialogMap.set(fileID, expandImg);\n\t\t\t}\n\t\t});\n\t}\n\n\thideAddFilesButton() {\n\t\tthis.expandAddFile.remove();\n\t}\n\n\tgetAttachmentDS(fileID) {\n\t\treturn this.dataProvider.getAttachmentDS(fileID);\n\t}\n\n\taddClassName(className) {\n\t\tthis.dom.classList.add(className);\n\t}\n\n\tremoveClassName(className) {\n\t\tthis.dom.classList.remove(className);\n\t}\n};\n\nfunction init(fieldID, recordID){\n\tthis.fieldParams\t= new FieldParams(fieldID, recordID);\n\tthis.attachmentIDs.forEach(fileID => {\n\t\tconst expandImg = new AttachmentExpandReadOnlyImg(this.fieldParams, fileID, this.getAttachmentDS(fileID), removeImg.bind(this), previewAttachmentCallback.bind(this), this.setFocusOnAttachmentNameBlurCallback);\n\t\tconst dom = expandImg.getDom();\n\t\tthis.expandImgPanel.insertBefore(dom, this.expandAddFile);\n\t\tthis.expandDialogMap.set(fileID, expandImg);\n\t});\n}\n\nclass FieldParams{\n\tconstructor(fieldID, recordID){\n\t\tthis.fieldID\t= fieldID;\n\t\tthis.recordID\t= recordID;\n\t}\n}\n\nfunction addListeners(closeDialogCallBack){\n\tthis.expandCloseIcon.addEventListener('click', () => {\n\t\tcloseDialogCallBack();\n\t});\n}\n\nfunction removeImg(fileID){\n\tthis.expandDialogMap.delete(fileID);\n}\n\nfunction previewAttachmentCallback(clickedAttachmentResID){\n\tlet attachmentResIDList = [];\n\tfor(let i = 0 ; i < this.attachmentIDs.length ; i++){\n\t\tconst attachmentResID = this.getAttachmentDS(this.attachmentIDs[i]).resourceId;\n\t\tattachmentResIDList.push(attachmentResID);\n\t}\n\tconst wdUtil          = WDUtil || (WDUtil = {});\n\tconst workdrive = new WorkDrive();\n\tworkdrive.showResourcePreview({\n\t\t\"service\": \"ZohoTables\",\t//No I18N\n\t\t\"WDDomainURL\": wdUtil.workdriveURL,\t//No I18N\n\t\t\"resourceId\": clickedAttachmentResID,\t//No I18N\n\t\t\"resourceIdList\": attachmentResIDList,  //No I18N\n\t\t\"showToolBar\": true\t//No I18N\n\t});\n\n\tthis.onAttachFileDialogOpenDisableDialogStackBodyMousedownListenerCallback && this.onAttachFileDialogOpenDisableDialogStackBodyMousedownListenerCallback();\n\tdocument.addEventListener('WDPreviewClose', this.onClosingUploadedAttachment);\n\tcontext.setSecondaryFocusContext([]);\n\tcontext.focusContext();\n}\n\nfunction onClosingUploadedAttachment() {\n\tthis.onAttachFileDialogCloseSetKeyContextCallback && this.onAttachFileDialogCloseSetKeyContextCallback();\n\tdocument.removeEventListener('WDPreviewClose', this.onClosingUploadedAttachment);\n\tthis.onAttachFileDialogCloseEnableDialogStackBodyMousedownListenerCallback && this.onAttachFileDialogCloseEnableDialogStackBodyMousedownListenerCallback();\n}\n","import { getTemplate } from \"../../TemplatesForAll.js\";\nimport { EventEmitter } from \"../../Utility/EventEmitter.js\";\n\nconst UNITS = { PIXELS: 'px', PERCENT: '%' }; //No I18N\nconst EVENTS = { OPEN: 'open', CLOSE: 'close' }; //No I18N\n\nexport class DialogComponent extends EventEmitter {\n\tconstructor(DialogStack, properties) {\n\t\tsuper(null, [EVENTS.OPEN, EVENTS.CLOSE]);\n\t\t!properties && (properties = {});\n\n\t\tthis.properties     = properties;\n\t\tthis.referenceDom   = null;\n\t\tthis.referenceDoms  = [];\n\t\tthis.neutralElement = null;\n\t\tthis.isOpen         = false;\n\t\tthis.dom            = getTemplate('formDialogComponentTemplate').querySelector('#dialog');  // No I18N\n\t\tthis.onEscpress = (ev) => {\n\t\t\tif(ev.keyCode == 27) {\n\t\t\t\tDialogStack.closeDialog(this);\n\t\t\t}\n\t\t}\n\t}\n\n\tgetProperties() {\n\t\treturn this.properties;\n\t}\n\n\tflush() {\n\t\tthis.dom.innerHTML = '';\n\t}\n\n\tappend(dom) {\n\t\tthis.dom.appendChild(dom);\n\t}\n\n\tclose() {\n\t\tthis.dom.open = false;\n\t\tthis.dom.remove();\n\t\tthis.isOpen = false;\n\t\tthis.dispatchEvent(EVENTS.CLOSE, {});\n\t\twindow.removeEventListener('keydown', this.onEscpress, true);\n\t}\n\n\tgetDom() {\n\t\treturn this.dom;\n\t}\n\n\tisOpened() {\n\t\treturn this.isOpen;\n\t}\n\n\topen() {\n\t\tdocument.body.appendChild(this.dom);\n\t\tthis.dom.open = true;\n\t\tthis.isOpen = true;\n\t\tthis.dispatchEvent(EVENTS.OPEN, {});\n\t\twindow.addEventListener('keydown', this.onEscpress, true);\n\t}\n\n\tsetWidthInPixels(width) {\n\t\tthis.dom.style.width = width + UNITS.PIXELS;\n\t}\n\n\tsetLeftInPixels(left) {\n\t\tthis.dom.style.left = left + UNITS.PIXELS;\n\t}\n\n\tsetRightInPixels(right) {\n\t\tthis.dom.style.right = right + UNITS.PIXELS;\n\t}\n\n\tsetTopInPixels(top) {\n\t\tthis.dom.style.top = top + UNITS.PIXELS;\n\t}\n\n\tsetBottomInPixels(bottom) {\n\t\tthis.dom.style.bottom = bottom + UNITS.PIXELS;\n\t}\n\n\tsetLeftInPercent(left) {\n\t\tthis.dom.style.left = left + UNITS.PERCENT;\n\t}\n\n\tsetRightInPercent(right) {\n\t\tthis.dom.style.right = right + UNITS.PERCENT;\n\t}\n\n\tsetTopInPercent(top) {\n\t\tthis.dom.style.top = top + UNITS.PERCENT;\n\t}\n\n\tsetBottomInPercent(bottom) {\n\t\tthis.dom.style.bottom = bottom + UNITS.PERCENT;\n\t}\n\n\tsetLeft(left) {\n\t\tthis.dom.style.left = left;\n\t}\n\n\tsetRight(right) {\n\t\tthis.dom.style.right = right;\n\t}\n\n\tsetTop(top) {\n\t\tthis.dom.style.top = top;\n\t}\n\n\tsetBottom(bottom) {\n\t\tthis.dom.style.bottom = bottom;\n\t}\n\n\tsetReferenceDom(referenceDom) {\n\t\tthis.referenceDom = referenceDom;\n\t}\n\n\tsetReferenceDoms(referenceDoms) {\n\t\tthis.referenceDoms = [].concat(referenceDoms);\n\t}\n\n\tgetReferenceDom() {\n\t\treturn this.referenceDom;\n\t}\n\n\tgetReferenceDoms() {\n\t\treturn this.referenceDoms;\n\t}\n\n\tgetNeutralElement() {\n\t\treturn this.neutralElement;\n\t}\n\n\tsetNeutralElement(neutralElement) {\n\t\tthis.neutralElement = neutralElement;\n\t}\n\n\tsetPosition(position) {\n\t\tthis.dom.classList.add(position);\n\t}\n\n\tgetBoundingClientRect() {\n\t\treturn this.dom.getBoundingClientRect();\n\t}\n\n\ttranslateToCenter() {\n\t\tthis.dom.style.transform = 'translate(-50%, -50%)';// No I18N\n\t}\n\n\trepositionWithinViewPortInPixels(dialogRect, referenceRect) {\n\t\tconst dialogHeight = dialogRect.height;\n\t\tconst dialogY = dialogRect.y;\n\t\tconst dialogWidth = dialogRect.width;\n\t\tconst dialogX = dialogRect.x;\n\n\t\tconst referenceRectY = referenceRect.y;\n\n\t\tif(dialogX + dialogWidth >= globalThis.innerWidth) {\n\t\t\tconst diffX =  dialogX + dialogWidth - globalThis.innerWidth;\n\t\t\tconst newX  = dialogX - diffX;\n\t\t\tthis.setLeftInPixels(newX);\n\t\t}\n\n\t\tif(dialogY + dialogHeight >= globalThis.innerHeight) {\n\t\t\t// const newY = referenceRectY - dialogHeight;\n\t\t\t// this.setTopInPixels(newY);\n\t\t\tthis.setTop(AUTO);\n\t\t\tthis.setBottomInPixels(globalThis.innerHeight - referenceRectY);\n\t\t}\n\t}\n}\n","import { DialogComponent } from \"./DialogComponent.js\";\n\nconst bodyWheelListenerOptions = { capture: true, passive: false };\nconst ZCOMPONENTS_DROPDOWN     = 'zdropdownlist__body';              // No I18N\n\nclass Dialogstack {\n\tconstructor() {\n\t\tthis.dialogStack      = [];\n\t\tthis.closeOnBodyClick = true;\n\n\t\tthis.onBodyMouseDown = ev => {\n\t\t\tif (this.closeOnBodyClick) {\n\t\t\t\tonBodyMouseDown.call(this, ev);\n\t\t\t}\n\t\t};\n\n\t\tthis.onBodyWheel = ev => {\n\t\t\tonBodyWheel.call(this, ev);\n\t\t};\n\t}\n\n\tcreateDialog(properties) {\n\t\treturn new DialogComponent(this, properties);\n\t}\n\n\tgetCloseOnBodyClick() {\n\t\treturn this.closeOnBodyClick;\n\t}\n\n\tsetCloseOnBodyClick(bool) {\n\t\tthis.closeOnBodyClick = bool;\n\t}\n\n\topenDialog(dialog) {\n\t\tif (this.dialogStack.length === 0) {\n\t\t\tdocument.body.addEventListener('mousedown', this.onBodyMouseDown, true);\n\t\t\tdocument.body.addEventListener('wheel', this.onBodyWheel, bodyWheelListenerOptions);\n\t\t}\n\t\tthis.dialogStack.push(dialog);\n\t\tdialog.open();\n\t}\n\n\tcloseAllDialogs() {\n\t\tfor (let i = this.dialogStack.length - 1; i >= 0; i--) {\n\t\t\tthis.dialogStack[i] && this.dialogStack[i].close();\n\t\t}\n\n\t\tdocument.body.removeEventListener('mousedown', this.onBodyMouseDown, true);\n\t\tdocument.body.removeEventListener('wheel', this.onBodyWheel, bodyWheelListenerOptions);\n\t\tthis.dialogStack = [];\n\t}\n\n\tcloseChildDialogs(dialog) {\n\t\tconst index = this.dialogStack.indexOf(dialog) + 1;\n\t\tif (index > -1) {\n\t\t\tfor (let i = this.dialogStack.length - 1; i >= index; i--) {\n\t\t\t\tthis.dialogStack[i] && this.dialogStack[i].close();\n\t\t\t\tthis.dialogStack.splice(i, 1);\n\t\t\t}\n\t\t}\n\t}\n\n\tcloseLastOpenedDialog() {\n\t\tconst index = this.dialogStack.length - 1;\n\t\tif (index > -1) {\n\t\t\tthis.dialogStack[index].close();\n\t\t\tthis.dialogStack.splice(index, 1);\n\t\t}\n\n\t\tif (this.dialogStack.length <= 0) {\n\t\t\tdocument.body.removeEventListener('mousedown', this.onBodyMouseDown, true);\n\t\t\tdocument.body.removeEventListener('wheel', this.onBodyWheel, bodyWheelListenerOptions);\n\t\t}\n\t}\n\n\tcloseDialog(dialog) {\n\t\tconst index = this.dialogStack.indexOf(dialog);\n\t\tif (index > -1) {\n\t\t\tfor (let i = this.dialogStack.length - 1; i >= index; i--) {\n\t\t\t\tthis.dialogStack[i] && this.dialogStack[i].close();\n\t\t\t\tthis.dialogStack.splice(i, 1);\n\t\t\t}\n\t\t}\n\n\t\tif (this.dialogStack.length <= 0) {\n\t\t\tdocument.body.removeEventListener('mousedown', this.onBodyMouseDown, true);\n\t\t\tdocument.body.removeEventListener('wheel', this.onBodyWheel, bodyWheelListenerOptions);\n\t\t}\n\t}\n}\n\nfunction onBodyMouseDown(ev) {\n\tconst path = ev.path || ev.composedPath();\n\tlet dialog;\n\tlet isDialogPresent;\n\tlet isReferenceDomPresent;\n\tlet activeDialog;\n\n\tlet isNeutralElementPresent;\n\tfor (let i = 0; i < this.dialogStack.length; i++) {\n\t\tdialog = this.dialogStack[i];\n\n\t\tisNeutralElementPresent = path.includes(dialog.getNeutralElement());\n\t\tif (isNeutralElementPresent) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!isDialogPresent) {\n\t\t\tisDialogPresent = path.includes(dialog.getDom());\n\t\t\tisDialogPresent && (activeDialog = dialog);\n\t\t}\n\t\tisReferenceDomPresent = path.includes(dialog.getReferenceDom());\n\n\t\tif ((isDialogPresent && isReferenceDomPresent) || (!isDialogPresent && isReferenceDomPresent)) {\n\t\t\treturn;\n\t\t}\n\t}\n\n\tconst hasDatePicker = hasDatePickerDropDown(path);\n\n\tif (!isDialogPresent && !isReferenceDomPresent && !hasDatePicker) {\n\t\tthis.closeAllDialogs();\n\t} else if (isDialogPresent && !isReferenceDomPresent && !hasDatePicker) {\n\t\tthis.closeChildDialogs(activeDialog);\n\t}\n}\n\nfunction onBodyWheel(ev) {\n\tconst path                = ev.path || ev.composedPath();\n\tconst lastDialog          = this.dialogStack[this.dialogStack.length - 1];\n\tconst isLastDialogPresent = path.includes(lastDialog.getDom());\n\tconst hasDatePicker       = hasDatePickerDropDown(path);\n\n\tconst properties      = lastDialog.getProperties();\n\tconst bodyWheelNeeded = properties.bodyWheel;\n\n\tif (!isLastDialogPresent && !hasDatePicker && !bodyWheelNeeded) {\n\t\tev.preventDefault();\n\t\tev.stopPropagation();\n\t}\n}\n\nfunction hasDatePickerDropDown(path) {\n\tlet element;\n\tfor (let i = 0; i < path.length; i++) {\n\t\telement = path[i];\n\t\tif (element.classList && element.classList.contains(ZCOMPONENTS_DROPDOWN)) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n}\n\nexport const DialogStack = new Dialogstack();\n","import { AttachmentExpandReadOnlyDialog } from \"../../../../../../../AttachmentField/AttachmentExpandReadOnlyDialog.js\";\nimport { DialogStack } from \"../../../../../../../Form/FormView/DialogStack.js\";\nimport { IFCConfigDataProvider } from \"../../../../../../../View/GridView/FCComponents/Interface/IFCConfigDataProvider\";\n\nconst KeyEvents          = KeyBoardEvents.Events as any;\nconst Key                = KeyEvents.Key;\nconst DialogStackContext = Key.Entry.DialogStack.Context;\n\nconst OFFSET_TOP = 20;\nconst OFFSET_LEFT = 5;\n\n\nexport interface ISnapGridExpandAttachmentParams {\n    fieldID   : string;\n    recordID  : string;\n    files     : any[];\n    parentDOM : HTMLElement;\n    readOnly  : boolean;\n    dataProvider: IFCConfigDataProvider;\n}\n\nexport const expandAttachment = (params : ISnapGridExpandAttachmentParams)=>{\n\n    const {fieldID, recordID, files, parentDOM, dataProvider} = params;\n\n    const uploadedFileIDs        = files.map(file => file.id);\n    const dialog                 = DialogStack.createDialog();\n    \n    const attachmentExpandDialog = new AttachmentExpandReadOnlyDialog(uploadedFileIDs, fieldID, recordID, dataProvider, () => {\n        DialogStack.closeDialog(dialog);\n    }, () => { // setFocusOnAttachmentNameBlurCallback\n        Key.setSecondaryFocusContext(DialogStackContext);\n        Key.focusContext(DialogStackContext);\n    }, () => { // onAttachFileDialogOpenDisableDialogStackBodyMousedownListenerCallback\n        DialogStack.setCloseOnBodyClick(false);\n    }, () => { // onAttachFileDialogCloseSetKeyContextCallback\n        Key.setSecondaryFocusContext(DialogStackContext);\n        Key.focusContext(DialogStackContext);\n    }, () => { // onAttachFileDialogCloseEnableDialogStackBodyMousedownListenerCallback\n        DialogStack.setCloseOnBodyClick(true);\n    });\n\n    dialog.append(attachmentExpandDialog.getDom());\n\n    dialog.addEventListener('open', (_ev: any) => {\n        Key.setSecondaryFocusContext(DialogStackContext);\n        Key.focusContext(DialogStackContext);\n    });\n    dialog.addEventListener('close', (_ev: any) => {\n        Key.setSecondaryFocusContext(null);\n        Key.revokeFocus();\n    });\n\n    !dialog.isOpened() ? DialogStack.openDialog(dialog) : DialogStack.closeDialog(dialog);\n\n    const container     = parentDOM;\n    const componentDom  = container;\n    const childDom      = attachmentExpandDialog.dom as HTMLElement;\n    const containerRect = container.getBoundingClientRect();\n    const childRect     = childDom.getBoundingClientRect();\n\n    if (containerRect.y + containerRect.height + childRect.height + OFFSET_TOP >= window.innerHeight) {\n        dialog.setBottomInPixels(containerRect.height + 2);\n        childDom.style.top = 'auto';// No I18N\n    } else {\n        dialog.setTopInPixels(componentDom.getBoundingClientRect().top);\n    }\n\n    if (containerRect.x + childRect.width + OFFSET_LEFT >= window.innerWidth) {\n        dialog.setRightInPixels('0');\n        childDom.style.left = 'auto';// No I18N\n    } else {\n        dialog.setLeftInPixels(componentDom.getBoundingClientRect().left);\n    }\n};","import { getHoverStateEllipsisChip } from \"../../../../../../../FieldTypeComponents/FieldComponentHoverStateUtils\";\nimport { AttachmentImageRenderer, EllipsesRenderer, getAttachmentExpandIcon } from \"../../../../../../../FieldTypeComponents/FieldComponentRenderer\";\nimport { attachmentFormatter, attachmentFormmatterforCopy } from \"../../../../../../../Utility/DataUtility.js\";\nimport { WDUtil } from \"../../../../../../../Utility/WDUtil.js\";\nimport { IFCConfigDataProvider } from \"../../../../../../../View/GridView/FCComponents/Interface/IFCConfigDataProvider\";\nimport { GRID_VIEW_ATTACHMENT_INLINE_CONFIG } from \"../../../../../../../View/GridView/FCComponents/Interface/InlineFieldConfigInterface\";\nimport { DEFAULT_ATTACHMENT_PREVIEW } from \"../../../../../../../View/GridView/GridConstants\";\nimport { expandAttachment, ISnapGridExpandAttachmentParams } from \"./AttachmentEventHandler\";\n\nexport function getAttachmentConfig(params : any, dataProvider: IFCConfigDataProvider) : GRID_VIEW_ATTACHMENT_INLINE_CONFIG  {\n    const {value, fieldID, baseID, tableID, viewID, recordID, parentDOM, cellElement, rowHeight, columnWidth} = params;\n\n    const attachments = attachmentFormatter(value, dataProvider);\n    \n    const paddingLeft = 5;\n    const attachmentSize = rowHeight - paddingLeft;\n    const cellWidth = columnWidth - paddingLeft;\n\n    let component; \n    let expandIcon : HTMLElement | null;\n    let attachmentEventCallbacks : any;\n    \n    const renderConfig = {\n        images : attachments.map((file: any)=>({\n            url : file.previewUrl,\n        })),\n        cellElement : cellElement\n    }\n\n    const getSelectionConfig = () =>{\n        const attachmentOptions = attachments.map(file=>({\n            id                          : file.id,\n            value                       : file.id,\n            selectedValueRenderer       : AttachmentImageRenderer,\n            selectedValueRendererParams : {\n                currentFile : file,\n                files       : attachments\n            }\n        }))\n\n        return{\n            baseID              : baseID,\n            tableID             : tableID,\n            viewID              : viewID,\n            fieldID             : fieldID,\n            recordID            : recordID,\n            readonly            : true,\n            ellipsesRenderer    : EllipsesRenderer,\n            fallbackURL         : DEFAULT_ATTACHMENT_PREVIEW,\n            files               : attachments,\n            // selectedIndex       : attachmentOptions.map((val, index : number)=>index),\n            selectedOptions     : attachmentOptions,\n            multiple            : true,\n            optionAsChip        : true,\n            options             : attachmentOptions,\n            preventDropdownOpen : true,\n            getAttachmentCopy   : () => attachmentFormmatterforCopy(value, dataProvider),\n        }\n    } \n\n    const onSelection = (selectionParams : any) => {\n        component = selectionParams.component;\n        attachmentEventCallbacks = createAttachmentEventCallbacks({\n            ...params,\n            component,\n            files : attachments,\n            dataProvider\n        })\n\n        //added expand icon\n        if(!expandIcon){\n            expandIcon = getAttachmentExpandIcon(attachmentEventCallbacks.onExpand);\n            parentDOM.appendChild(expandIcon);\n        }\n        else{\n            parentDOM.appendChild(expandIcon);\n        }\n        //ellsipis listener\n        const ellipsisIcon      = component.getEllipsisIcon();\n        component.showEllipsis();\n        ellipsisIcon?.addEventListener('click', attachmentEventCallbacks.onExpand);\n        parentDOM.addEventListener('click', attachmentEventCallbacks.onAttachmentImgClick);     //img preview listener\n    }\n\n    const onDeSelection = (selectionParams : any) => {\n        component = selectionParams.component;\n\n        //remove expand icon\n        expandIcon?.remove();\n        //remove ellipsis listener\n        component.hideEllipsis();\n        const ellipsisIcon      = component.getEllipsisIcon();\n        ellipsisIcon?.removeEventListener('click', attachmentEventCallbacks.onExpand);\n        parentDOM.removeEventListener('click', attachmentEventCallbacks.onAttachmentImgClick);     //img preview listener\n    }\n\n    return {\n        renderConfig  : renderConfig,\n        getSelectionConfig : getSelectionConfig,\n        parentDOM          : parentDOM,\n        onSelection        : onSelection,\n        onDeSelection      : onDeSelection,\n        isCellFocused      : params.isCellFocused,\n\n        viewID               : viewID,\n\n        attachmentSize         : attachmentSize,\n        cellWidth              : cellWidth,\n        hoverStatePlusIcon     : null,\n        hoverStateEllipsisChip : getHoverStateEllipsisChip((ev: MouseEvent)=>{\n            if(!attachmentEventCallbacks){\n                attachmentEventCallbacks = createAttachmentEventCallbacks({\n                    ...params,\n                    files : attachments,\n                })\n            }\n            attachmentEventCallbacks.onExpand(ev);\n        }),\n    }\n} \n\n\nconst KeyEvents          = KeyBoardEvents.Events as any;\nconst Key                = KeyEvents.Key;\n\nfunction createAttachmentEventCallbacks(params : any) : any{\n    const {files, fieldID, recordID, parentDOM, readOnly, dataProvider} = params;\n    function onClosingUploadedAttachment() {\n        const externalCallback = {} as any;\n        externalCallback.enableIsBodyClickListenerToBeExecuted && externalCallback.enableIsBodyClickListenerToBeExecuted();\n        document.removeEventListener('WDPreviewClose', onClosingUploadedAttachment);\n        Key.setSecondaryFocusContext(null);\n        Key.revokeFocus();\n    }\n\n    function onAttachmentImgClick(ev : MouseEvent){\n        const target = ev.target as HTMLElement;\n        if(target.tagName === 'IMG'){\n            const url = target.getAttribute('src');\n            const file = files.find((file : any) => file.previewUrl === url);\n            if (file) {\n                previewAttachment(file.resourceId);\n            }\n        }\n    }\n\n    function onExpand (ev: MouseEvent) {\n        const expandAttachmentParams : ISnapGridExpandAttachmentParams = {\n            fieldID,\n            recordID,\n            files,\n            parentDOM,\n            readOnly,\n            dataProvider\n        }\n        expandAttachment(expandAttachmentParams);\n    }\n\n\n    function previewAttachment(resourceId: string) {\n        const externalCallback = {} as any;\n        const attachmentResIDList = files.map(({resourceId} : any)=>{\n            return resourceId;\n        })\n        \n        const wdUtil = WDUtil ?? {};\n        const workdrive = new WorkDrive();\n        workdrive.showResourcePreview({\n            service        : \"ZohoTables\",\n            WDDomainURL    : wdUtil.workdriveURL,\n            resourceId     : resourceId,\n            resourceIdList : attachmentResIDList,\n            showToolBar    : true\n        });\n        externalCallback.disableIsBodyClickListenerToBeExecuted && externalCallback.disableIsBodyClickListenerToBeExecuted();\n        document.addEventListener('WDPreviewClose', onClosingUploadedAttachment);\n        Key.setSecondaryFocusContext([]);\n        Key.focusContext();\n    }\n\n    return {\n        onExpand,\n        onAttachmentImgClick\n    }\n}","import { ATTACHMENT } from \"../../../../../../../../Constants/FieldTypes.js\";\nimport { AttachmentInlineComponent } from \"../../../../../../../../FieldTypeComponents/Composite/AttachmentFieldType/AttachmentInlineComponent\";\nimport { CoreViewerInlineFCConfigConstructor } from \"../../../../../../../../View/GridView/FCComponents/Viewer/CoreViewerInlineFCConfigConstructor\";\nimport { VIEWER_ATTACHMENT_INLINE_CONFIG } from \"../../../../../../../../View/GridView/FCComponents/Viewer/Interface/ViewerInlineFCConfigInterface.js\";\nimport { getAttachmentConfig } from \"../SnapGridInlineConfigConstructor\";\n\nexport class SnapGridViewerInlineFCConfigConstructor extends CoreViewerInlineFCConfigConstructor {\n\n    protected getFieldConstructorMapping(): Record<number, any> {\n        return {\n            ...super.getFieldConstructorMapping(),\n            [ATTACHMENT] : this.constructAttachmentComponent,\n        }\n    }\n    // attachment\n\n    constructAttachmentComponent(params: any)  : AttachmentInlineComponent {\n        params = {...params, readOnly : true};\n        const parentElement = params.parentDOM;\n        const coreConfig    = getAttachmentConfig(params, this.dataProvider);\n        const viewerConfig  = {\n        }\n        const mergedConfig : VIEWER_ATTACHMENT_INLINE_CONFIG = {...coreConfig,...viewerConfig};\n        const component =  new AttachmentInlineComponent(mergedConfig,parentElement);\n        return component;\n    }\n\n}","import { CellInlineComponent } from \"./CellInlineComponent\";\nimport { ICellPopupComponent } from \"./Interface/ICellComponent\";\n\nexport  class CellPopupComponent extends CellInlineComponent implements ICellPopupComponent {\n    afterGuiAttached() : void {\n    }\n    getRequestModelData() : any{\n        return this.component.api.getValue();\n    }\n    validate() : boolean {\n        return true;\n    }\n    getElement() {\n        try {\n            return this.component?.api?.getElement();\n        } catch (error) {\n            console.error(\"Error getting element:\", error);\n        }\n    }\n    destroyComponent(): void {\n        this.component?.api.destroy();\n    }\n}","import { ADD_FIELD_CURRENCIES_CHF, ADD_FIELD_CURRENCIES_INR, ADD_FIELD_CURRENCIES_ZAR, ADD_FIELD_CURRENCY_POSITIONS_ACCOUNTING, ADD_FIELD_CURRENCY_POSITIONS_AFTER, ADD_FIELD_CURRENCY_POSITIONS_BEFORE, ADD_FIELD_CURRENCY_POSITIONS_NONE } from \"../../../../Constants/AddFieldConstants.js\";\nimport { SUPPORTED_CURRENCY_VALUES, SUPPORTED_DATE_FORMATS, SUPPORTED_HOUR_CYCLES, SUPPORTED_TEXT_FORMATS } from \"../../../../Constants/AddFieldConstantValues.js\";\nimport * as FIELD_TYPES from \"../../../../Constants/FieldTypes.js\";\nimport { CURRENCY, DATE, FORMULA_RETURN_TYPE_EMPTY, NUMBER, PERCENT, TEXT } from \"../../../../Constants/FormulaReturnTypes.js\";\nimport { ZOHO_TABLES_TIME_FORMAT as TIME_FORMAT } from \"../../../../Constants/ZohoComponentDateFieldConstants.js\";\nimport { getLocale } from \"../../../../Locale.js\";\n\nconst ZSGrid                    = globalThis.ZSGrid;\nconst THOUSAND_SEPARATOR        = 0;\nconst PRECISION                 = 0;\nconst RATING_COLOR              = '0a7ea8';//No I18N\nconst LOCALE                    = getLocale();\n\nexport function getFieldTypeSpecifications(baseID, tableID, fieldID) {\n\tconst base          = Table.Data.Workspace.get(baseID);\n\tconst table         = base.getTable(tableID);\n\tconst field         = table.getField(fieldID);\n\tconst fieldInstance = field.getType();\n\tlet fieldType       = fieldInstance.getType();\n\tlet specifications;\n\tswitch(fieldType) {\n\t\tcase FIELD_TYPES.AUTO_NUMBER:\n\t\tcase FIELD_TYPES.AUTO_NUMBER_CLIENT:\n\t\t\tspecifications = [fieldInstance.getInitialValue(), fieldInstance.getStepSize(), fieldInstance.getPrefix(), fieldInstance.getSuffix()];\n\t\t\tbreak;\n\t\tcase FIELD_TYPES.DATE_TIME:\n\t\tcase FIELD_TYPES.MODIFIED_TIME:\n\t\tcase FIELD_TYPES.MODIFIED_TIME_CLIENT:\n\t\tcase FIELD_TYPES.DATE_TIME_CLIENT:\n\t\tcase FIELD_TYPES.CREATED_TIME:\n\t\tcase FIELD_TYPES.CREATED_TIME_CLIENT:\n\t\t\tspecifications = [fieldInstance.getDateFormat(), fieldInstance.getTimeFormat()];\n\t\t\tbreak;\n\t\tcase FIELD_TYPES.CURRENCY:\n\t\tcase FIELD_TYPES.CURRENCY_CLIENT:\n\t\t\tspecifications = [fieldInstance.getCurrency(), fieldInstance.getCurrencyPosition(), fieldInstance.getPrecision(), fieldInstance.getThousandSeparator()];\n\t\t\tbreak;\n\t\tcase FIELD_TYPES.EMAIL:\n\t\tcase FIELD_TYPES.URL:\n\t\t\tspecifications = [fieldInstance.getAllowMultiple()];\n\t\t\tbreak;\n\t\tcase FIELD_TYPES.NUMBER:\n\t\tcase FIELD_TYPES.NUMBER_CLIENT:\n\t\t\tspecifications = [fieldInstance.getPrecision(), fieldInstance.getThousandSeparator()];\n\t\t\tbreak;\n\t\tcase FIELD_TYPES.PERCENT:\n\t\tcase FIELD_TYPES.PERCENT_CLIENT:\n\t\t\tspecifications = [fieldInstance.getPrecision(), fieldInstance.getShowSymbol(), fieldInstance.getThousandSeparator()];\n\t\t\tbreak;\n\t\tcase FIELD_TYPES.PHONE_NUMBER:\n\t\tcase FIELD_TYPES.PHONE_NUMBER_CLIENT:\n\t\t\tspecifications = [fieldInstance.getFormat(), fieldInstance.getAllowMultiple()];\n\t\t\tbreak;\n\t\tcase FIELD_TYPES.DURATION:\n\t\tcase FIELD_TYPES.TEXT:\n\t\t\tspecifications = [fieldInstance.getFormat(), fieldInstance.getAutoDetectHyperlink(), fieldInstance.getLanguageValue()];\n\t\t\tbreak;\n\t\tcase FIELD_TYPES.SENTIMENTAL_ANALYSIS:\n\t\t\tspecifications = [fieldInstance.getReferenceFieldID(), fieldInstance.getSentimentID()];\n\t\t\tbreak;\n\t\tcase FIELD_TYPES.LANGUAGE_DETECTOR:\n\t\t\tspecifications = [fieldInstance.getReferenceFieldID()];\n\t\t\tbreak;\n\t\tcase FIELD_TYPES.CHECKBOX:\n\t\t\tspecifications = [fieldInstance.getStyle(), fieldInstance.getColor()];\n\t\t\tbreak;\n\t\tcase FIELD_TYPES.RATING:\n\t\t\tspecifications = [fieldInstance.getStyle(), fieldInstance.getColor(), fieldInstance.getMax()];\n\t\t\tbreak;\n\t\tcase FIELD_TYPES.MULTIPLE_SELECTION:\n\t\tcase FIELD_TYPES.SINGLE_SELECTION: \n\t\t\tspecifications = [fieldInstance.getColoredOptions(), fieldInstance.getID()];\n\t\t\tbreak;\n\t\tcase FIELD_TYPES.KEYWORD_EXTRACTION:\n\t\t\tspecifications = [fieldInstance.getReferenceFieldID(), fieldInstance.getMaxCount(), fieldInstance.getRestrictedKeywords()]\n\t\t\tbreak;\n\t\tcase FIELD_TYPES.SCIENTIFIC:\n\t\t\tspecifications = [fieldInstance.getFormat(), fieldInstance.getAdvancedOption()];\n\t\t\tbreak;\n\n\t\tcase FIELD_TYPES.COLLABORATOR_CLIENT:\n\t\t\tspecifications = [fieldInstance.getSelectionType(), fieldInstance.getNotifyCollaborator()];\n\t\t\tbreak;\n\n\t\tcase FIELD_TYPES.LINK:  //link field revamped\n\t\t\tspecifications = [fieldInstance.getOppFieldID(), fieldInstance.getRestrictedViewToggle(), fieldInstance.getRestrictedViewID(), fieldInstance.getRelationshipDirection(), fieldInstance.getRelationshipID(), fieldInstance.getLeafFieldParameters(), fieldInstance.getAllowDuplicateLinkedRecords()];\n\t\t\tbreak;\n\n\t\tcase FIELD_TYPES.LINK_CLIENT:\n\t\t\tspecifications = [fieldInstance.getRelationshipID(), fieldInstance.getOppFieldID(), fieldInstance.getLeafFieldParameters()];\n\t\t\tbreak;\n\n\t\tcase FIELD_TYPES.CREATED_BY:\n\t\tcase FIELD_TYPES.MODIFIED_BY:\n\t\tcase FIELD_TYPES.ATTACHMENT:\n\t\t\tspecifications = [];\n\t\t\tbreak;\n\n\t\tcase FIELD_TYPES.FORMULA:\n\t\t\tspecifications = [fieldInstance.getFormulaString(), fieldInstance.getFormulaStatus(), fieldInstance.getFormatArray()];\n\t\t\tbreak;\n\n\t\tcase FIELD_TYPES.LOOKUP:\n\t\t\tspecifications = [fieldInstance.getLinkFieldID(), fieldInstance.getOppFieldID(), fieldInstance.getLeafFieldParameters(), fieldInstance.getRenderingType()];\n\t\t\tbreak;\n\n\t\tcase FIELD_TYPES.ROLLUP:\n\t\t\tspecifications = [fieldInstance.getLinkFieldID(), fieldInstance.getOppFieldID(), fieldInstance.getAggregationActionID(), fieldInstance.getReturnType(), fieldInstance.getLeafFieldParameters()];\n\t\t\tbreak;\n\n\t}\n\treturn specifications;\n}\n\nexport function getDefaultSpecifications(fieldType) {\n\tlet specifications;\n\tswitch(fieldType) {\n\t\tcase FIELD_TYPES.ATTACHMENT:\n\t\t\tspecifications = [];\n\t\t\tbreak;\n\t\tcase FIELD_TYPES.TEXT:\n\t\t\tspecifications = [1, 1];\n\t\t\tbreak;\n\t\tcase FIELD_TYPES.PHONE_NUMBER:\n\t\tcase FIELD_TYPES.PHONE_NUMBER_CLIENT:\n\t\t\tspecifications = ['xxxxxxxxxx', 1];\n\t\t\tbreak;\n\t\tcase FIELD_TYPES.DURATION:\n\t\t\tspecifications = [1];\n\t\t\tbreak;\n\t\tcase FIELD_TYPES.NUMBER:\n\t\tcase FIELD_TYPES.NUMBER_CLIENT:\n\t\t\tspecifications = [2, 0];\n\t\t\tbreak;\n\t\tcase FIELD_TYPES.PERCENT:\n\t\tcase FIELD_TYPES.PERCENT_CLIENT:\n\t\t\tspecifications = [2, 1, 0];\n\t\t\tbreak;\n\t\tcase FIELD_TYPES.CURRENCY:\n\t\tcase FIELD_TYPES.CURRENCY_CLIENT:\n\t\t\tspecifications = [1, 2, 2, 1];\n\t\t\tbreak;\n\t\tcase FIELD_TYPES.SCIENTIFIC:\n\t\t\t// specifications = ['1', '1'];\n\t\t\tbreak;\n\t\tcase FIELD_TYPES.MODIFIED_TIME:\n\t\tcase FIELD_TYPES.MODIFIED_TIME_CLIENT:\n\t\tcase FIELD_TYPES.CREATED_TIME:\n\t\tcase FIELD_TYPES.CREATED_TIME_CLIENT:\n\t\t\tspecifications = [1, 2];\n\t\t\tbreak;\n\t\tcase FIELD_TYPES.DATE_TIME:\n\t\tcase FIELD_TYPES.DATE_TIME_CLIENT:\n\t\t\tspecifications = [1, 0];\n\t\t\tbreak;\n\t\tcase FIELD_TYPES.AUTO_NUMBER:\n\t\tcase FIELD_TYPES.AUTO_NUMBER_CLIENT:\n\t\t\tspecifications = [1, 1, '', ''];\n\t\t\tbreak;\t\n\t\tcase FIELD_TYPES.CHECKBOX:\n\t\t\tspecifications = [5, RATING_COLOR];\n\t\t\tbreak;\n\t\tcase FIELD_TYPES.RATING:\n\t\t\tspecifications = [2, RATING_COLOR, 5];\n\t\t\tbreak;\n\t\tcase FIELD_TYPES.MULTIPLE_SELECTION:\n\t\tcase FIELD_TYPES.SINGLE_SELECTION:\n\t\t\tspecifications = [1];\n\t\t\tbreak;\n\t\tcase FIELD_TYPES.EMAIL:\n\t\tcase FIELD_TYPES.URL:\n\t\t\tspecifications = [1];\n\t\t\tbreak;\n\n\t\tcase FIELD_TYPES.COLLABORATOR_CLIENT:\n\t\t\tspecifications = [0, 0];\n\t\t\tbreak;\n\n\t\tcase FIELD_TYPES.CREATED_BY:\n\t\tcase FIELD_TYPES.MODIFIED_BY:\n\t\t\tspecifications = [];\n\t\t\tbreak;\n\t\t\t\n\t}\n\treturn specifications;\n}\n\nexport function getDefaultSpecificationsForServer(fieldType) {\n\tlet specifications;\n\tswitch(fieldType) {\n\t\tcase FIELD_TYPES.ATTACHMENT:\n\t\t\tspecifications = [];\n\t\t\tbreak;\n\t\tcase FIELD_TYPES.TEXT:\n\t\t\tspecifications = [1, 1];\n\t\t\tbreak;\n\t\tcase FIELD_TYPES.PHONE_NUMBER:\n\t\tcase FIELD_TYPES.PHONE_NUMBER_CLIENT:\n\t\t\tspecifications = ['xxxxxxxxxx', 0];\n\t\t\tbreak;\n\t\tcase FIELD_TYPES.DURATION:\n\t\t\tspecifications = [1];\n\t\t\tbreak;\n\t\tcase FIELD_TYPES.NUMBER:\n\t\tcase FIELD_TYPES.NUMBER_CLIENT:\n\t\t\tspecifications = [2, 0];\n\t\t\tbreak;\n\t\tcase FIELD_TYPES.PERCENT:\n\t\tcase FIELD_TYPES.PERCENT_CLIENT:\n\t\t\tspecifications = [2, 1, 0];\n\t\t\tbreak;\n\t\tcase FIELD_TYPES.CURRENCY:\n\t\tcase FIELD_TYPES.CURRENCY_CLIENT:\n\t\t\tspecifications = [-1, -1, 2, 1];\n\t\t\tbreak;\n\t\tcase FIELD_TYPES.SCIENTIFIC:\n\t\t\t// specifications = ['1', '1'];\n\t\t\tbreak;\n\t\tcase FIELD_TYPES.MODIFIED_TIME:\n\t\tcase FIELD_TYPES.MODIFIED_TIME_CLIENT:\n\t\tcase FIELD_TYPES.CREATED_TIME:\n\t\tcase FIELD_TYPES.CREATED_TIME_CLIENT:\n\t\t\tspecifications = [1, 2];\n\t\t\tbreak;\n\t\tcase FIELD_TYPES.DATE_TIME:\n\t\tcase FIELD_TYPES.DATE_TIME_CLIENT:\n\t\t\tspecifications = [1, 0];\n\t\t\tbreak;\n\t\tcase FIELD_TYPES.AUTO_NUMBER:\n\t\tcase FIELD_TYPES.AUTO_NUMBER_CLIENT:\n\t\t\tspecifications = [1, 1, '', ''];\n\t\t\tbreak;\n\t\tcase FIELD_TYPES.CHECKBOX:\n\t\t\tspecifications = [5, RATING_COLOR];\n\t\t\tbreak;\n\t\tcase FIELD_TYPES.RATING:\n\t\t\tspecifications = [2, RATING_COLOR, 5];\n\t\t\tbreak;\n\t\tcase FIELD_TYPES.MULTIPLE_SELECTION:\n\t\tcase FIELD_TYPES.SINGLE_SELECTION:\n\t\t\tspecifications = [1];\n\t\t\tbreak;\n\t\tcase FIELD_TYPES.EMAIL:\n\t\tcase FIELD_TYPES.URL:\n\t\t\tspecifications = [0];\n\t\t\tbreak;\n\n\t\tcase FIELD_TYPES.COLLABORATOR_CLIENT:\n\t\t\tspecifications = [0, 0];\n\t\t\tbreak;\n\n\t\tcase FIELD_TYPES.CREATED_BY:\n\t\tcase FIELD_TYPES.MODIFIED_BY:\n\t\t\tspecifications = [];\n\t\t\tbreak;\n\n\t}\n\treturn specifications;\n}\n\nexport function getNewFieldTypeSpecifications(baseID, tableID, fieldID) {\n\tconst base          = Table.Data.Workspace.get(baseID);\n\tconst table         = base.getTable(tableID);\n\tconst field         = table.getField(fieldID);\n\tconst fieldInstance = field.getType();\n\tlet fieldType     = fieldInstance.getType();\n\tlet specifications;\n\tswitch(fieldType) {\n\t\tcase FIELD_TYPES.PHONE_NUMBER:\n\t\tcase FIELD_TYPES.PHONE_NUMBER_CLIENT:\n\t\t\tspecifications = [fieldInstance.getFormat(), fieldInstance.getAllowMultiple()];\n\t\t\tbreak;\n\t\tcase FIELD_TYPES.DURATION:\n\t\t\tspecifications = [fieldInstance.getFormat()];\n\t\t\tbreak;\n\t\tcase FIELD_TYPES.TEXT:\n\t\t\tvar textFormat = SUPPORTED_TEXT_FORMATS[fieldInstance.getFormat()];\n\t\t\tspecifications = [textFormat, fieldInstance.getAutoDetectHyperlink()];\n\t\t\tbreak;\n\t\tcase FIELD_TYPES.SENTIMENTAL_ANALYSIS:\n\t\t\tspecifications = [fieldInstance.getReferenceFieldID(), fieldInstance.getSentimentID()];\n\t\t\tbreak;\n\t\tcase FIELD_TYPES.LANGUAGE_DETECTOR:\n\t\t\tspecifications = [fieldInstance.getReferenceFieldID()];\n\t\t\tbreak;\n\t\tcase FIELD_TYPES.NUMBER:\n\t\tcase FIELD_TYPES.NUMBER_CLIENT:\n\t\t\tspecifications = [LOCALE, fieldInstance.getThousandSeparator(), fieldInstance.getPrecision()];\n\t\t\tbreak;\n\t\tcase FIELD_TYPES.PERCENT:\n\t\tcase FIELD_TYPES.PERCENT_CLIENT:\n\t\t\tspecifications = [LOCALE, fieldInstance.getPrecision(), fieldInstance.getShowSymbol(), fieldInstance.getThousandSeparator()];\n\t\t\tbreak;\n\t\tcase FIELD_TYPES.CURRENCY:\n\t\tcase FIELD_TYPES.CURRENCY_CLIENT:\n\t\t\tvar position = fieldInstance.getCurrencyPosition();\n\t\t\tvar currency = fieldInstance.getCurrency();\n\t\t\tvar symbol   = SUPPORTED_CURRENCY_VALUES[currency];\n\n\t\t\tif(position === ADD_FIELD_CURRENCY_POSITIONS_BEFORE) {\n\t\t\t\tsymbol += ' ';\n\t\t\t}else {\n\t\t\t\tsymbol = ` ${symbol}`;\n\t\t\t}\n\n\t\t\tvar locale;\n\t\t\tif(currency === ADD_FIELD_CURRENCIES_INR) {\n\t\t\t\tlocale = 'en-IN'; // No I18N\n\t\t\t}else if(currency === ADD_FIELD_CURRENCIES_CHF) {\n\t\t\t\tlocale = 'de-DE'; // No I18N\n\t\t\t}else if(currency === ADD_FIELD_CURRENCIES_ZAR){\n\t\t\t\tlocale = 'af-ZA';\n\t\t\t} else {\n\t\t\t\tlocale = LOCALE;\n\t\t\t}\n\t\t\tswitch(position) {\n\t\t\t\t\t\tcase ADD_FIELD_CURRENCY_POSITIONS_BEFORE:\n\t\t\t\t\t\t\tposition = ZSGrid.CURRENCY_POSITION.START;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase ADD_FIELD_CURRENCY_POSITIONS_AFTER:\n\t\t\t\t\t\t\tposition = ZSGrid.CURRENCY_POSITION.END;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase ADD_FIELD_CURRENCY_POSITIONS_ACCOUNTING:\n\t\t\t\t\t\t\tposition = ZSGrid.CURRENCY_POSITION.ACCOUNTING;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase ADD_FIELD_CURRENCY_POSITIONS_NONE:\n\t\t\t\t\t\t\tposition = ZSGrid.CURRENCY_POSITION.NONE;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\tspecifications = [locale, symbol, position, fieldInstance.getPrecision(), fieldInstance.getThousandSeparator()];\n\t\t\tbreak;\n\t\tcase FIELD_TYPES.SCIENTIFIC:\n\t\t\tspecifications = [fieldInstance.getFormat(), fieldInstance.getAdvancedOption()];\n\t\t\tbreak;\n\t\tcase FIELD_TYPES.DATE_TIME:\n\t\tcase FIELD_TYPES.MODIFIED_TIME:\n\t\tcase FIELD_TYPES.MODIFIED_TIME_CLIENT:\n\t\tcase FIELD_TYPES.DATE_TIME_CLIENT:\n\t\tcase FIELD_TYPES.CREATED_TIME:\n\t\tcase FIELD_TYPES.CREATED_TIME_CLIENT:\n\t\t\tvar dateFormat = SUPPORTED_DATE_FORMATS[fieldInstance.getDateFormat()];\n\t\t\tvar hourCycle  = SUPPORTED_HOUR_CYCLES[fieldInstance.getTimeFormat()];\n\t\t\tspecifications = [LOCALE, dateFormat, TIME_FORMAT, hourCycle, base.getTimeZone()];\n\t\t\tbreak;\n\t\tcase FIELD_TYPES.AUTO_NUMBER:\n\t\tcase FIELD_TYPES.AUTO_NUMBER_CLIENT:\n\t\t\tspecifications = [LOCALE, THOUSAND_SEPARATOR, PRECISION, fieldInstance.getInitialValue(), fieldInstance.getStepSize(), fieldInstance.getPrefix(), fieldInstance.getSuffix()];\n\t\t\tbreak;\n\t\t\n\t\tcase FIELD_TYPES.CHECKBOX:\n\t\t\tspecifications = [fieldInstance.getStyle(), fieldInstance.getColor()];\n\t\t\tbreak;\n\t\tcase FIELD_TYPES.RATING:\n\t\t\tspecifications = [fieldInstance.getStyle(), fieldInstance.getColor(), fieldInstance.getMax()];\n\t\t\tbreak;\n\t\tcase FIELD_TYPES.MULTIPLE_SELECTION:\n\t\tcase FIELD_TYPES.SINGLE_SELECTION:\n\t\t\tlet ID         = fieldInstance.getID();\n\t\t\tspecifications = [ID, fieldInstance.getColoredOptions()];\n\t\t\tbreak;\n\t\tcase FIELD_TYPES.KEYWORD_EXTRACTION:\n\t\t\tspecifications = [fieldInstance.getReferenceFieldID(), fieldInstance.getMaxCount(), fieldInstance.getRestrictedKeywords()]\n\t\t\tbreak;\n\t\tcase FIELD_TYPES.EMAIL:\n\t\tcase FIELD_TYPES.URL:\n\t\t\tspecifications = [fieldInstance.getAllowMultiple()];\n\t\t\tbreak;\n\n\t\tcase FIELD_TYPES.LINK:  //link field revamped\n\t\t\tspecifications = [fieldInstance.getOppFieldID(), fieldInstance.getRestrictedViewToggle(), fieldInstance.getRestrictedViewID(), fieldInstance.getRelationshipDirection(), fieldInstance.getRelationshipID(), fieldInstance.getLeafFieldParameters(), fieldInstance.getAllowDuplicateLinkedRecords()];\n\t\t\tbreak;\n\t\tcase FIELD_TYPES.LINK_CLIENT:\n\t\t\tspecifications = [fieldInstance.getRelationshipID(), fieldInstance.getOppFieldID(), fieldInstance.getLeafFieldParameters()];\n\t\t\tbreak;\n\t\tcase FIELD_TYPES.COLLABORATOR_CLIENT:\n\t\t\tspecifications = [fieldInstance.getSelectionType(), fieldInstance.getNotifyCollaborator()];\n\t\t\tbreak;\n\n\t\tcase FIELD_TYPES.CREATED_BY:\n\t\tcase FIELD_TYPES.MODIFIED_BY:\n\t\tcase FIELD_TYPES.ATTACHMENT:\n\t\t\t\tspecifications = [];\n\t\t\tbreak;\n\n\t\tcase FIELD_TYPES.FORMULA:\n\t\t\tlet formatArray = fieldInstance.getFormatArray()[0];\n\t\t\tlet returnType  = formatArray[0];\n\t\t\tlet formats     = formatArray[1]; // [thousandSeparator, precision] (or) [dateFormat, timeFormat] (or) [textFormat]\n\t\t\tlet modifiedFormats;\n\t\t\tswitch(returnType) {\n\t\t\t\tcase NUMBER:\n\t\t\t\t\tmodifiedFormats = [LOCALE, formats[1], formats[0]];\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase FORMULA_RETURN_TYPE_EMPTY:\n\t\t\t\t\tvar textFormat  = SUPPORTED_TEXT_FORMATS[formats[0]];\n\t\t\t\t\tmodifiedFormats = [textFormat, formats[1]];\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase TEXT:\n\t\t\t\t\tvar textFormat  = SUPPORTED_TEXT_FORMATS[formats[0]];\n\t\t\t\t\tmodifiedFormats = [textFormat, formats[1]];\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase DATE:\n\t\t\t\t\tvar dateFormat  = SUPPORTED_DATE_FORMATS[formats[0]];\n\t\t\t\t\tvar hourCycle   = SUPPORTED_HOUR_CYCLES[formats[1]];\n\t\t\t\t\tmodifiedFormats = [LOCALE, dateFormat, TIME_FORMAT, hourCycle, base.getTimeZone()];\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase CURRENCY: {\n\t\t\t\t\tvar currency            = formats[0];\n\t\t\t\t\tvar position            = formats[1];\n\t\t\t\t\tconst precision         = formats[2];\n\t\t\t\t\tconst thousandSeparator = formats[3];\n\n\t\t\t\t\tvar symbol = SUPPORTED_CURRENCY_VALUES[currency];\n\n\t\t\t\t\tif(position === ADD_FIELD_CURRENCY_POSITIONS_BEFORE) {\n\t\t\t\t\t\tsymbol += ' ';\n\t\t\t\t\t}else {\n\t\t\t\t\t\tsymbol = ` ${symbol}`;\n\t\t\t\t\t}\n\n\t\t\t\t\tvar locale;\n\t\t\t\t\tif(currency === ADD_FIELD_CURRENCIES_INR) {\n\t\t\t\t\t\tlocale = 'en-IN'; // No I18N\n\t\t\t\t\t} else if(currency === ADD_FIELD_CURRENCIES_CHF) {\n\t\t\t\t\t\tlocale = 'de-DE'; // No I18N\n\t\t\t\t\t}else if(currency === ADD_FIELD_CURRENCIES_ZAR){\n\t\t\t\t\t\tlocale = 'af-ZA';\n\t\t\t\t\t}else {\n\t\t\t\t\t\tlocale = LOCALE;\n\t\t\t\t\t}\n\n\t\t\t\t\t\t\tswitch(position) {\n\t\t\t\t\t\t\t\tcase ADD_FIELD_CURRENCY_POSITIONS_BEFORE:\n\t\t\t\t\t\t\t\t\tposition = ZSGrid.CURRENCY_POSITION.START;\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\tcase ADD_FIELD_CURRENCY_POSITIONS_AFTER:\n\t\t\t\t\t\t\t\t\tposition = ZSGrid.CURRENCY_POSITION.END;\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\tcase ADD_FIELD_CURRENCY_POSITIONS_ACCOUNTING:\n\t\t\t\t\t\t\t\t\tposition = ZSGrid.CURRENCY_POSITION.ACCOUNTING;\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\tcase ADD_FIELD_CURRENCY_POSITIONS_NONE:\n\t\t\t\t\t\t\t\t\tposition = ZSGrid.CURRENCY_POSITION.NONE;\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\tmodifiedFormats = [locale, symbol, position, precision, thousandSeparator];\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tcase PERCENT:\n\t\t\t\t\tlet precision         = formats[0];\n\t\t\t\t\tlet showSymbol        = formats[1];\n\t\t\t\t\tlet thousandSeparator = formats[2];\n\t\t\t\t\tmodifiedFormats       = [LOCALE, precision, showSymbol, thousandSeparator];\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tspecifications = [fieldInstance.getFormulaString(), fieldInstance.getFormulaStatus(), [[returnType, modifiedFormats]]];\n\t\t\tbreak;\n\n\t\tcase FIELD_TYPES.LOOKUP:\n\t\t\tspecifications = [fieldInstance.getLinkFieldID(), fieldInstance.getOppFieldID(), fieldInstance.getLeafFieldParameters(), fieldInstance.getRenderingType()];\n\t\t\tbreak;\n\n\t\tcase FIELD_TYPES.ROLLUP:\n\t\t\tspecifications = [fieldInstance.getLinkFieldID(), fieldInstance.getOppFieldID(), fieldInstance.getAggregationActionID(), fieldInstance.getReturnType(), fieldInstance.getLeafFieldParameters()];\n\t\t\tbreak;\n\n\t}\n\treturn specifications;\n}\n\nexport function getFieldCreationSpecifications(fieldType) {\n\tlet specifications;\n\tswitch(fieldType) {\n\t\tcase FIELD_TYPES.LINK:  //link field revamped\n\t\tcase FIELD_TYPES.LINK_CLIENT:\n\t\t\tspecifications = ['', 0, '']; //No I18N\n\t\t\tbreak;\n\t\tcase FIELD_TYPES.FORMULA:\n\t\t\tspecifications = ['', '', []];\n\t\t\tbreak;\n\t\tcase FIELD_TYPES.LOOKUP:\n\t\t\tspecifications = ['', ''];\n\t\tcase FIELD_TYPES.ROLLUP:\n\t\t\tspecifications = ['', '', ''];\t\n\t\t\tbreak;\n\t\tcase FIELD_TYPES.SENTIMENTAL_ANALYSIS:\n\t\t\tspecifications = ['', ['', ''], ['', ''], ['', ''], ['', ''], ['', ''], ['', '']];\n\t\t\tbreak;\t\n\t}\n\treturn specifications;\n}\n\nexport function getNewReturnTypeFormats(newReturnType) {\n\t// var thousandSeparator, precision;\n\t// switch(oldReturnType) {\n\t// \tcase NUMBER:\n\t// \t\tprecision         = oldReturnTypeFormats[0];\n\t// \t\tthousandSeparator = oldReturnTypeFormats[1];\n\n\t// \t\tif(newReturnType === CURRENCY) {\n\t// \t\t\treturn [CURRENCIES.USD, ADD_FIELD_CURRENCY_POSITIONS_BEFORE, precision, thousandSeparator];\n\t// \t\t}\n\t// \t\treturn [precision, PERCENT_SYMBOL.SHOW, thousandSeparator];\n\n\t// \tcase CURRENCY:\n\t// \t\tprecision         = oldReturnTypeFormats[2];\n\t// \t\tthousandSeparator = oldReturnTypeFormats[3];\n\n\t// \t\tif(newReturnType === PERCENT) {\n\t// \t\t\treturn [precision, PERCENT_SYMBOL.SHOW, thousandSeparator];\n\t// \t\t}\n\t// \t\treturn [precision, thousandSeparator];\n\n\t// \tcase PERCENT:\n\t// \t\tprecision         = oldReturnTypeFormats[0];\n\t// \t\tthousandSeparator = oldReturnTypeFormats[2];\n\n\t// \t\tif(newReturnType === CURRENCY) {\n\t// \t\t\treturn [CURRENCIES.USD, ADD_FIELD_CURRENCY_POSITIONS_BEFORE, precision, thousandSeparator];\n\t// \t\t}\n\n\t// \t\treturn [precision, thousandSeparator];\n\t// }\n\tswitch(newReturnType) {\n\t\tcase NUMBER:\n\t\t\treturn getDefaultSpecifications(FIELD_TYPES.NUMBER);\n\n\t\tcase CURRENCY:\n\t\t\treturn getDefaultSpecifications(FIELD_TYPES.CURRENCY);\n\n\t\tcase PERCENT:\n\t\t\treturn getDefaultSpecifications(FIELD_TYPES.PERCENT);\n\t}\n}\n\nexport function getLeafFieldSpecifications(baseID, tableID, fieldID) {\n\tconst base           = Table.Data.Workspace.get(baseID);\n\tconst table          = base.getTable(tableID);\n\tconst field          = table.getField(fieldID);\n\tconst fieldType      = field.getType().getType();\n\n\tlet fieldSpecifications;\n\tlet leafFieldProps;\n\tswitch(fieldType) {\n\t\tcase FIELD_TYPES.LINK:\n\t\t\tfieldSpecifications    = getFieldTypeSpecifications(baseID, tableID, fieldID);\n\t\t\tleafFieldProps         = fieldSpecifications[5];\n\t\t\tfieldSpecifications[5] = getModifiedFieldTypeSpecifications(leafFieldProps[0], leafFieldProps[1], base.getTimeZone());\n\t\t\tbreak;\n\t\t\n\t\tcase FIELD_TYPES.LOOKUP:\n\t\t\tfieldSpecifications    = getFieldTypeSpecifications(baseID, tableID, fieldID);\n\t\t\tleafFieldProps         = fieldSpecifications[2];\n\t\t\tfieldSpecifications[2] = getModifiedFieldTypeSpecifications(leafFieldProps[0], leafFieldProps[1], base.getTimeZone());\n\t\t\tbreak;\n\t\t\n\t\tcase FIELD_TYPES.ROLLUP:\n\t\t\tfieldSpecifications    = getFieldTypeSpecifications(baseID, tableID, fieldID);\n\t\t\tleafFieldProps         = fieldSpecifications[4];\n\t\t\tfieldSpecifications[4] = getModifiedFieldTypeSpecifications(leafFieldProps[0], leafFieldProps[1], base.getTimeZone());\n\t\t\tbreak;\n\t}\n\treturn fieldSpecifications;\n}\n\nexport function getModifiedFieldTypeSpecifications(fieldType, fieldSpecifications, timeZone) {\n\tlet specifications;\n\tswitch(fieldType) {\n\t\tcase FIELD_TYPES.PHONE_NUMBER:\n\t\tcase FIELD_TYPES.PHONE_NUMBER_CLIENT:\n\t\tcase FIELD_TYPES.DURATION:\n\t\t\tspecifications = fieldSpecifications;\n\t\t\tbreak;\n\t\tcase FIELD_TYPES.TEXT:\n\t\tcase FIELD_TYPES.SENTIMENTAL_ANALYSIS:\n\t\t\tvar textFormat = SUPPORTED_TEXT_FORMATS[fieldSpecifications[0]];\n\t\t\tspecifications = [textFormat, fieldSpecifications[1]];\n\t\t\tbreak;\n\t\tcase FIELD_TYPES.NUMBER:\n\t\tcase FIELD_TYPES.NUMBER_CLIENT:\n\t\t\tspecifications = [LOCALE, fieldSpecifications[1], fieldSpecifications[0]];\n\t\t\tbreak;\n\t\tcase FIELD_TYPES.PERCENT:\n\t\tcase FIELD_TYPES.PERCENT_CLIENT:\n\t\t\tspecifications = [LOCALE, fieldSpecifications[0], fieldSpecifications[1], fieldSpecifications[2]];\n\t\t\tbreak;\n\t\tcase FIELD_TYPES.CURRENCY:\n\t\tcase FIELD_TYPES.CURRENCY_CLIENT:\n\t\t\tvar currency = fieldSpecifications[0];\n\t\t\tvar position = fieldSpecifications[1];\n\t\t\tvar symbol   = SUPPORTED_CURRENCY_VALUES[currency];\n\n\t\t\tif(position === ADD_FIELD_CURRENCY_POSITIONS_BEFORE) {\n\t\t\t\tsymbol += ' ';\n\t\t\t}else {\n\t\t\t\tsymbol = ` ${symbol}`;\n\t\t\t}\n\n\t\t\tvar locale;\n\t\t\tif(currency === ADD_FIELD_CURRENCIES_INR) {\n\t\t\t\tlocale = 'en-IN'; // No I18N\n\t\t\t}else if(currency === ADD_FIELD_CURRENCIES_CHF) {\n\t\t\t\tlocale = 'de-DE'; // No I18N\n\t\t\t}else if(currency === ADD_FIELD_CURRENCIES_ZAR){\n\t\t\t\tlocale = 'af-ZA';\n\t\t\t}else {\n\t\t\t\tlocale = LOCALE;\n\t\t\t}\n\t\t\tswitch(position) {\n\t\t\t\t\t\tcase ADD_FIELD_CURRENCY_POSITIONS_BEFORE:\n\t\t\t\t\t\t\tposition = ZSGrid.CURRENCY_POSITION.START;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase ADD_FIELD_CURRENCY_POSITIONS_AFTER:\n\t\t\t\t\t\t\tposition = ZSGrid.CURRENCY_POSITION.END;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase ADD_FIELD_CURRENCY_POSITIONS_ACCOUNTING:\n\t\t\t\t\t\t\tposition = ZSGrid.CURRENCY_POSITION.ACCOUNTING;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase ADD_FIELD_CURRENCY_POSITIONS_NONE:\n\t\t\t\t\t\t\tposition = ZSGrid.CURRENCY_POSITION.NONE;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\tspecifications = [locale, symbol, position, fieldSpecifications[2], fieldSpecifications[3]];\n\t\t\tbreak;\n\t\tcase FIELD_TYPES.SCIENTIFIC:\n\t\t\tspecifications = fieldSpecifications;\n\t\t\tbreak;\n\t\tcase FIELD_TYPES.DATE_TIME:\n\t\tcase FIELD_TYPES.MODIFIED_TIME:\n\t\tcase FIELD_TYPES.MODIFIED_TIME_CLIENT:\n\t\tcase FIELD_TYPES.DATE_TIME_CLIENT:\n\t\tcase FIELD_TYPES.CREATED_TIME:\n\t\tcase FIELD_TYPES.CREATED_TIME_CLIENT:\n\t\t\tvar dateFormat = SUPPORTED_DATE_FORMATS[fieldSpecifications[0]];\n\t\t\tvar hourCycle  = SUPPORTED_HOUR_CYCLES[fieldSpecifications[1]];\n\t\t\tspecifications = [LOCALE, dateFormat, TIME_FORMAT, hourCycle, timeZone];\n\t\t\tbreak;\n\t\tcase FIELD_TYPES.AUTO_NUMBER:\n\t\tcase FIELD_TYPES.AUTO_NUMBER_CLIENT:\n\t\t\tspecifications = [LOCALE, THOUSAND_SEPARATOR, PRECISION, ...fieldSpecifications];\n\t\t\tbreak;\n\t\t\n\t\tcase FIELD_TYPES.CHECKBOX:\n\t\tcase FIELD_TYPES.RATING:\n\t\tcase FIELD_TYPES.EMAIL:\n\t\tcase FIELD_TYPES.URL:\n\t\tcase FIELD_TYPES.COLLABORATOR_CLIENT:\n\t\t\tspecifications = fieldSpecifications;\n\t\t\tbreak;\n\n\t\tcase FIELD_TYPES.MULTIPLE_SELECTION:\n\t\tcase FIELD_TYPES.SINGLE_SELECTION:\n\t\t\tlet ID         = fieldSpecifications[1];\n\t\t\tspecifications = [ID, fieldSpecifications[0]];\n\t\t\tbreak;\n\n\t\tcase FIELD_TYPES.CREATED_BY:\n\t\tcase FIELD_TYPES.MODIFIED_BY:\n\t\tcase FIELD_TYPES.ATTACHMENT:\n\t\t\t\tspecifications = [];\n\t\t\tbreak;\n\n\t\tcase FIELD_TYPES.FORMULA:\n\t\t\tlet formatArray = fieldSpecifications[2][0];\n\t\t\tlet returnType  = formatArray[0];\n\t\t\tlet formats     = formatArray[1]; // [thousandSeparator, precision] (or) [dateFormat, timeFormat] (or) [textFormat]\n\t\t\tlet modifiedFormats;\n\t\t\tswitch(returnType) {\n\t\t\t\tcase NUMBER:\n\t\t\t\t\tmodifiedFormats = [LOCALE, formats[1], formats[0]];\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase FORMULA_RETURN_TYPE_EMPTY:\n\t\t\t\t\tvar textFormat  = SUPPORTED_TEXT_FORMATS[formats[0]];\n\t\t\t\t\tmodifiedFormats = [textFormat, formats[1]];\n\t\t\t\t\tbreak;\n\t\t\t\t\t\n\t\t\t\tcase TEXT:\n\t\t\t\t\tvar textFormat  = SUPPORTED_TEXT_FORMATS[formats[0]];\n\t\t\t\t\tmodifiedFormats = [textFormat, formats[1]];\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase DATE:\n\t\t\t\t\tvar dateFormat  = SUPPORTED_DATE_FORMATS[formats[0]];\n\t\t\t\t\tvar hourCycle   = SUPPORTED_HOUR_CYCLES[formats[1]];\n\t\t\t\t\tmodifiedFormats = [LOCALE, dateFormat, TIME_FORMAT, hourCycle];\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase CURRENCY: {\n\t\t\t\t\tvar currency          = formats[0];\n\t\t\t\t\tvar position          = formats[1];\n\t\t\t\t\tconst precision         = formats[2];\n\t\t\t\t\tconst thousandSeparator = formats[3];\n\n\t\t\t\t\tvar symbol = SUPPORTED_CURRENCY_VALUES[currency];\n\n\t\t\t\t\tif(position === ADD_FIELD_CURRENCY_POSITIONS_BEFORE) {\n\t\t\t\t\t\tsymbol += ' ';\n\t\t\t\t\t}else {\n\t\t\t\t\t\tsymbol = ` ${symbol}`;\n\t\t\t\t\t}\n\n\t\t\t\t\tvar locale;\n\t\t\t\t\tif(currency === ADD_FIELD_CURRENCIES_INR) {\n\t\t\t\t\t\tlocale = 'en-IN'; // No I18N\n\t\t\t\t\t}else if(currency === ADD_FIELD_CURRENCIES_CHF) {\n\t\t\t\t\t\tlocale = 'de-DE'; // No I18N\n\t\t\t\t\t}else if(currency === ADD_FIELD_CURRENCIES_ZAR){\n\t\t\t\t\t\tlocale = 'af-ZA';\n\t\t\t\t\t}else {\n\t\t\t\t\t\tlocale = LOCALE;\n\t\t\t\t\t}\n\n\t\t\t\t\t\t\tswitch(position) {\n\t\t\t\t\t\t\t\tcase ADD_FIELD_CURRENCY_POSITIONS_BEFORE:\n\t\t\t\t\t\t\t\t\tposition = ZSGrid.CURRENCY_POSITION.START;\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\tcase ADD_FIELD_CURRENCY_POSITIONS_AFTER:\n\t\t\t\t\t\t\t\t\tposition = ZSGrid.CURRENCY_POSITION.END;\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\tcase ADD_FIELD_CURRENCY_POSITIONS_ACCOUNTING:\n\t\t\t\t\t\t\t\t\tposition = ZSGrid.CURRENCY_POSITION.ACCOUNTING;\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\tcase ADD_FIELD_CURRENCY_POSITIONS_NONE:\n\t\t\t\t\t\t\t\t\tposition = ZSGrid.CURRENCY_POSITION.NONE;\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\tmodifiedFormats = [locale, symbol, position, precision, thousandSeparator];\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tcase PERCENT:\n\t\t\t\t\tlet precision         = formats[0];\n\t\t\t\t\tlet showSymbol        = formats[1];\n\t\t\t\t\tlet thousandSeparator = formats[2];\n\t\t\t\t\tmodifiedFormats       = [LOCALE, precision, showSymbol, thousandSeparator];\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tspecifications = [fieldSpecifications[0], fieldSpecifications[1], [[returnType, modifiedFormats]]];\n\t\t\tbreak;\n\t}\n\n\treturn [fieldType, specifications];\n}\n\nexport function getFieldTypeSpecificationsByInstance(fieldInstance) {\n\tlet fieldType       = fieldInstance.getType();\n\tlet specifications;\n\tswitch(fieldType) {\n\t\tcase FIELD_TYPES.AUTO_NUMBER:\n\t\tcase FIELD_TYPES.AUTO_NUMBER_CLIENT:\n\t\t\tspecifications = [LOCALE,THOUSAND_SEPARATOR,PRECISION,fieldInstance.getInitialValue(), fieldInstance.getStepSize(), fieldInstance.getPrefix(), fieldInstance.getSuffix()];\n\t\t\tbreak;\n\t\tcase FIELD_TYPES.DATE_TIME:\n\t\tcase FIELD_TYPES.MODIFIED_TIME:\n\t\tcase FIELD_TYPES.MODIFIED_TIME_CLIENT:\n\t\tcase FIELD_TYPES.DATE_TIME_CLIENT:\n\t\tcase FIELD_TYPES.CREATED_TIME:\n\t\tcase FIELD_TYPES.CREATED_TIME_CLIENT:\n\t\t\tspecifications = [fieldInstance.getDateFormat(), fieldInstance.getTimeFormat()];\n\t\t\tbreak;\n\t\tcase FIELD_TYPES.CURRENCY:\n\t\tcase FIELD_TYPES.CURRENCY_CLIENT:\n\t\t\tspecifications = [fieldInstance.getCurrency(), fieldInstance.getCurrencyPosition(), fieldInstance.getPrecision(), fieldInstance.getThousandSeparator()];\n\t\t\tbreak;\n\t\tcase FIELD_TYPES.EMAIL:\n\t\tcase FIELD_TYPES.URL:\n\t\t\tspecifications = [fieldInstance.getAllowMultiple()];\n\t\t\tbreak;\n\t\tcase FIELD_TYPES.NUMBER:\n\t\tcase FIELD_TYPES.NUMBER_CLIENT:\n\t\t\tspecifications = [fieldInstance.getPrecision(), fieldInstance.getThousandSeparator()];\n\t\t\tbreak;\n\t\tcase FIELD_TYPES.PERCENT:\n\t\tcase FIELD_TYPES.PERCENT_CLIENT:\n\t\t\tspecifications = [fieldInstance.getPrecision(), fieldInstance.getShowSymbol(), fieldInstance.getThousandSeparator()];\n\t\t\tbreak;\n\t\tcase FIELD_TYPES.PHONE_NUMBER:\n\t\tcase FIELD_TYPES.PHONE_NUMBER_CLIENT:\n\t\t\tspecifications = [fieldInstance.getFormat(), fieldInstance.getAllowMultiple()];\n\t\t\tbreak;\n\t\tcase FIELD_TYPES.DURATION:\n\t\tcase FIELD_TYPES.TEXT:\n\t\t\tspecifications = [fieldInstance.getFormat(), fieldInstance.getAutoDetectHyperlink()];\n\t\t\tbreak;\n\t\tcase FIELD_TYPES.SENTIMENTAL_ANALYSIS:\n\t\t\tspecifications = [fieldInstance.getReferenceFieldID(), fieldInstance.getSentimentID()];\n\t\t\tbreak;\n\t\tcase FIELD_TYPES.LANGUAGE_DETECTOR:\n\t\t\tspecifications = [fieldInstance.getReferenceFieldID()];\n\t\t\tbreak;\n\t\tcase FIELD_TYPES.CHECKBOX:\n\t\t\tspecifications = [fieldInstance.getStyle(), fieldInstance.getColor()];\n\t\t\tbreak;\n\t\tcase FIELD_TYPES.RATING:\n\t\t\tspecifications = [fieldInstance.getStyle(), fieldInstance.getColor(), fieldInstance.getMax()];\n\t\t\tbreak;\n\t\tcase FIELD_TYPES.MULTIPLE_SELECTION:\n\t\tcase FIELD_TYPES.SINGLE_SELECTION:\n\t\t\tspecifications = [fieldInstance.getID(), fieldInstance.getColoredOptions()];\n\t\t\tbreak;\n\t\tcase FIELD_TYPES.KEYWORD_EXTRACTION:\n\t\t\tspecifications = [fieldInstance.getReferenceFieldID(), fieldInstance.getMaxCount(), fieldInstance.getRestrictedKeywords()]\n\t\t\tbreak;\n\t\tcase FIELD_TYPES.SCIENTIFIC:\n\t\t\tspecifications = [fieldInstance.getFormat(), fieldInstance.getAdvancedOption()];\n\t\t\tbreak;\n\n\t\tcase FIELD_TYPES.COLLABORATOR_CLIENT:\n\t\t\tspecifications = [fieldInstance.getSelectionType(), fieldInstance.getNotifyCollaborator()];\n\t\t\tbreak;\n\n\t\tcase FIELD_TYPES.LINK:  //link field revamped\n\t\t\tspecifications = [fieldInstance.getOppFieldID(), fieldInstance.getRestrictedViewToggle(), fieldInstance.getRestrictedViewID(), fieldInstance.getRelationshipDirection(), fieldInstance.getRelationshipID(), fieldInstance.getLeafFieldParameters(), fieldInstance.getAllowDuplicateLinkedRecords()];\n\t\t\tbreak;\n\n\t\tcase FIELD_TYPES.LINK_CLIENT:\n\t\t\tspecifications = [fieldInstance.getRelationshipID(), fieldInstance.getOppFieldID(), fieldInstance.getLeafFieldParameters()];\n\t\t\tbreak;\n\n\t\tcase FIELD_TYPES.CREATED_BY:\n\t\tcase FIELD_TYPES.MODIFIED_BY:\n\t\tcase FIELD_TYPES.ATTACHMENT:\n\t\t\tspecifications = [];\n\t\t\tbreak;\n\n\t\tcase FIELD_TYPES.FORMULA:\n\t\t\tspecifications = [fieldInstance.getFormulaString(), fieldInstance.getFormulaStatus(), fieldInstance.getFormatArray()];\n\t\t\tbreak;\n\n\t\tcase FIELD_TYPES.LOOKUP:\n\t\t\tspecifications = [fieldInstance.getLinkFieldID(), fieldInstance.getOppFieldID(), fieldInstance.getLeafFieldParameters(), fieldInstance.getRenderingType()];\n\t\t\tbreak;\n\n\t\tcase FIELD_TYPES.ROLLUP:\n\t\t\tspecifications = [fieldInstance.getLinkFieldID(), fieldInstance.getOppFieldID(), fieldInstance.getAggregationActionID(), fieldInstance.getReturnType(), fieldInstance.getLeafFieldParameters()];\n\t\t\tbreak;\n\n\t}\n\treturn specifications;\n}\n\nexport function getFieldTypeSpecificationsUsingType(fieldInstance, type) {\n\tlet specifications;\n\tswitch(type) {\n\t\tcase FIELD_TYPES.AUTO_NUMBER:\n\t\tcase FIELD_TYPES.AUTO_NUMBER_CLIENT:\n\t\t\tspecifications = [LOCALE,THOUSAND_SEPARATOR,PRECISION,fieldInstance.getInitialValue(), fieldInstance.getStepSize(), fieldInstance.getPrefix(), fieldInstance.getSuffix()];\n\t\t\tbreak;\n\t\tcase FIELD_TYPES.DATE_TIME:\n\t\tcase FIELD_TYPES.MODIFIED_TIME:\n\t\tcase FIELD_TYPES.MODIFIED_TIME_CLIENT:\n\t\tcase FIELD_TYPES.DATE_TIME_CLIENT:\n\t\tcase FIELD_TYPES.CREATED_TIME:\n\t\tcase FIELD_TYPES.CREATED_TIME_CLIENT:\n\t\t\tspecifications = [fieldInstance.getDateFormat(), fieldInstance.getTimeFormat()];\n\t\t\tbreak;\n\t\tcase FIELD_TYPES.CURRENCY:\n\t\tcase FIELD_TYPES.CURRENCY_CLIENT:\n\t\t\tspecifications = [fieldInstance.getCurrency(), fieldInstance.getCurrencyPosition(), fieldInstance.getPrecision(), fieldInstance.getThousandSeparator()];\n\t\t\tbreak;\n\t\tcase FIELD_TYPES.EMAIL:\n\t\tcase FIELD_TYPES.URL:\n\t\t\tspecifications = [fieldInstance.getAllowMultiple()];\n\t\t\tbreak;\n\t\tcase FIELD_TYPES.NUMBER:\n\t\tcase FIELD_TYPES.NUMBER_CLIENT:\n\t\t\tspecifications = [fieldInstance.getPrecision(), fieldInstance.getThousandSeparator()];\n\t\t\tbreak;\n\t\tcase FIELD_TYPES.PERCENT:\n\t\tcase FIELD_TYPES.PERCENT_CLIENT:\n\t\t\tspecifications = [fieldInstance.getPrecision(), fieldInstance.getShowSymbol(), fieldInstance.getThousandSeparator()];\n\t\t\tbreak;\n\t\tcase FIELD_TYPES.PHONE_NUMBER:\n\t\tcase FIELD_TYPES.PHONE_NUMBER_CLIENT:\n\t\t\tspecifications = [fieldInstance.getFormat(), fieldInstance.getAllowMultiple()];\n\t\t\tbreak;\n\t\tcase FIELD_TYPES.DURATION:\n\t\tcase FIELD_TYPES.TEXT:\n\t\t\tspecifications = [fieldInstance.getFormat(), fieldInstance.getAutoDetectHyperlink()];\n\t\t\tbreak;\n\t\tcase FIELD_TYPES.SENTIMENTAL_ANALYSIS:\n\t\t\tspecifications = [fieldInstance.getReferenceFieldID(), fieldInstance.getSentimentID()];\n\t\t\tbreak;\n\t\tcase FIELD_TYPES.LANGUAGE_DETECTOR:\n\t\t\tspecifications = [fieldInstance.getReferenceFieldID()];\n\t\t\tbreak;\n\t\tcase FIELD_TYPES.CHECKBOX:\n\t\t\tspecifications = [fieldInstance.getStyle(), fieldInstance.getColor()];\n\t\t\tbreak;\n\t\tcase FIELD_TYPES.RATING:\n\t\t\tspecifications = [fieldInstance.getStyle(), fieldInstance.getColor(), fieldInstance.getMax()];\n\t\t\tbreak;\n\t\tcase FIELD_TYPES.MULTIPLE_SELECTION:\n\t\tcase FIELD_TYPES.SINGLE_SELECTION:\n\t\t\tspecifications = [fieldInstance.getID(), fieldInstance.getColoredOptions()];\n\t\t\tbreak;\n\t\tcase FIELD_TYPES.KEYWORD_EXTRACTION:\n\t\t\tspecifications = [fieldInstance.getReferenceFieldID(), fieldInstance.getMaxCount(), fieldInstance.getRestrictedKeywords()]\n\t\t\tbreak;\n\t\tcase FIELD_TYPES.SCIENTIFIC:\n\t\t\tspecifications = [fieldInstance.getFormat(), fieldInstance.getAdvancedOption()];\n\t\t\tbreak;\n\n\t\tcase FIELD_TYPES.COLLABORATOR_CLIENT:\n\t\t\tspecifications = [fieldInstance.getSelectionType(), fieldInstance.getNotifyCollaborator()];\n\t\t\tbreak;\n\n\t\tcase FIELD_TYPES.LINK:  //link field revamped\n\t\t\tspecifications = [fieldInstance.getOppFieldID(), fieldInstance.getRestrictedViewToggle(), fieldInstance.getRestrictedViewID(), fieldInstance.getRelationshipDirection(), fieldInstance.getRelationshipID(), fieldInstance.getLeafFieldParameters(), fieldInstance.getAllowDuplicateLinkedRecords()];\n\t\t\tbreak;\n\n\t\tcase FIELD_TYPES.LINK_CLIENT:\n\t\t\tspecifications = [fieldInstance.getRelationshipID(), fieldInstance.getOppFieldID(), fieldInstance.getLeafFieldParameters()];\n\t\t\tbreak;\n\n\t\tcase FIELD_TYPES.CREATED_BY:\n\t\tcase FIELD_TYPES.MODIFIED_BY:\n\t\tcase FIELD_TYPES.ATTACHMENT:\n\t\t\tspecifications = [];\n\t\t\tbreak;\n\n\t\tcase FIELD_TYPES.FORMULA:\n\t\t\tspecifications = [fieldInstance.getFormulaString(), fieldInstance.getFormulaStatus(), fieldInstance.getFormatArray()];\n\t\t\tbreak;\n\n\t\tcase FIELD_TYPES.LOOKUP:\n\t\t\tspecifications = [fieldInstance.getLinkFieldID(), fieldInstance.getOppFieldID(), fieldInstance.getLeafFieldParameters(), fieldInstance.getRenderingType()];\n\t\t\tbreak;\n\n\t\tcase FIELD_TYPES.ROLLUP:\n\t\t\tspecifications = [fieldInstance.getLinkFieldID(), fieldInstance.getOppFieldID(), fieldInstance.getAggregationActionID(), fieldInstance.getReturnType(), fieldInstance.getLeafFieldParameters()];\n\t\t\tbreak;\n\n\t}\n\treturn specifications;\n}","import { getFieldTypeSpecifications } from \"../DataStore/DS/Storage/fieldType/FieldTypeSpecifications.js\";\nimport { ATTACHMENT, AUTO_NUMBER, BARCODE, CHECKBOX, COLLABORATOR_CLIENT, CREATED_BY, CREATED_TIME, CURRENCY, DATE_TIME, DURATION, EMAIL, FORMULA, KEYWORD_EXTRACTION, LANGUAGE_DETECTOR, LINK, LINK_CLIENT, LOOKUP, MODIFIED_BY, MODIFIED_TIME, MULTIPLE_SELECTION, NUMBER, PERCENT, PHONE_NUMBER, RATING, ROLLUP, SCIENTIFIC, SENTIMENTAL_ANALYSIS, SINGLE_SELECTION, TEXT, URL } from \"./FieldTypes.js\";\nimport { CURRENCY as FORMULA_CURRENCY, DATE as FORMULA_DATE, NUMBER as FORMULA_NUMBER, PERCENT as FORMULA_PERCENT, FORMULA_RETURN_TYPE_EMPTY, TEXT as FORMULA_TEXT } from \"./FormulaReturnTypes.js\";\n\nconst STYLES = {\n    BACKGROUND_COLOR     : 'BGColor',//No I18N\n    COLOR                : 'Color',//No I18N\n    FONT_FAMILY          : 'Font',//No I18N\n    FONT_SIZE            : 'Size',//No I18N\n    BOLD                 : 'Bold',//No I18N\n    ITALIC               : 'Italic',//No I18N\n    OVERLINE             : 'Overline',//No I18N\n    STRIKETHROUGH        : 'StrikeThrough',//No I18N\n    UNDERLINE            : 'Underline',//No I18N\n    HORIZONTAL_ALIGNMENT : 'HorizontalAlignment',//No I18N\n    VERTICAL_ALIGNMENT   : 'verticalAlignment',//No I18N\n    OPTION_COLOR         : 'optionColor'//No I18N\n};\n\nconst STYLE_VALUES = {\n    ATTACHMENT : {\n            BACKGROUND_COLOR     : '#fff',//No I18N\n            COLOR                : '#222222',//No I18N\n            FONT_FAMILY          : 'roboto',//No I18N\n            FONT_SIZE            : 9.75,\n            BOLD                 : false,\n            ITALIC               : false,\n            OVERLINE             : false,\n            STRIKETHROUGH        : false,\n            UNDERLINE            : false,\n            HORIZONTAL_ALIGNMENT : 0,\n            VERTICAL_ALIGNMENT   : 1\n    },\n    \n    AUTO_NUMBER : {\n            BACKGROUND_COLOR     : '#fff',//No I18N\n            COLOR                : '#222222',//No I18N\n            FONT_FAMILY          : 'roboto',//No I18N\n            FONT_SIZE            : 9.75,\n            BOLD                 : false,\n            ITALIC               : false,\n            OVERLINE             : false,\n            STRIKETHROUGH        : false,\n            UNDERLINE            : false,\n            HORIZONTAL_ALIGNMENT : 2,\n            VERTICAL_ALIGNMENT   : 1\n    },\n\n    CREATED_TIME : {\n            BACKGROUND_COLOR     : '#fff',//No I18N\n            COLOR                : '#222222',//No I18N\n            FONT_FAMILY          : 'roboto',//No I18N\n            FONT_SIZE            : 9.75,\n            BOLD                 : false,\n            ITALIC               : false,\n            OVERLINE             : false,\n            STRIKETHROUGH        : false,\n            UNDERLINE            : false,\n            HORIZONTAL_ALIGNMENT : 2,\n            VERTICAL_ALIGNMENT   : 1\n    },\n\n    CURRENCY : {\n            BACKGROUND_COLOR     : '#fff',//No I18N\n            COLOR                : '#222222',//No I18N\n            FONT_FAMILY          : 'roboto',//No I18N\n            FONT_SIZE            : 9.75,\n            BOLD                 : false,\n            ITALIC               : false,\n            OVERLINE             : false,\n            STRIKETHROUGH        : false,\n            UNDERLINE            : false,\n            HORIZONTAL_ALIGNMENT : 2,\n            VERTICAL_ALIGNMENT   : 1\n    },\n\n    DATE_TIME : {\n            BACKGROUND_COLOR     : '#fff',//No I18N\n            COLOR                : '#222222',//No I18N\n            FONT_FAMILY          : 'roboto',//No I18N\n            FONT_SIZE            : 9.75,\n            BOLD                 : false,\n            ITALIC               : false,\n            OVERLINE             : false,\n            STRIKETHROUGH        : false,\n            UNDERLINE            : false,\n            HORIZONTAL_ALIGNMENT : 0,\n            VERTICAL_ALIGNMENT   : 1\n    },\n\n    EMAIL : {\n            BACKGROUND_COLOR     : '#fff',//No I18N\n            COLOR                : '#006EC2',//No I18N\n            FONT_FAMILY          : 'roboto',//No I18N\n            FONT_SIZE            : 9.75,\n            BOLD                 : false,\n            ITALIC               : false,\n            OVERLINE             : false,\n            STRIKETHROUGH        : false,\n            UNDERLINE            : true,\n            HORIZONTAL_ALIGNMENT : 0,\n            VERTICAL_ALIGNMENT   : 1,\n            OPTION_COLOR         : '#e4e1f4'//No I18N\n    },\n\n    MODIFIED_TIME : {\n            BACKGROUND_COLOR     : '#fff',//No I18N\n            COLOR                : '#222222',//No I18N\n            FONT_FAMILY          : 'roboto',//No I18N\n            FONT_SIZE            : 9.75,\n            BOLD                 : false,\n            ITALIC               : false,\n            OVERLINE             : false,\n            STRIKETHROUGH        : false,\n            UNDERLINE            : false,\n            HORIZONTAL_ALIGNMENT : 2,\n            VERTICAL_ALIGNMENT   : 1\n    },\n\n    NUMBER : {\n            BACKGROUND_COLOR     : '#fff',//No I18N\n            COLOR                : '#222222',//No I18N\n            FONT_FAMILY          : 'roboto',//No I18N\n            FONT_SIZE            : 9.75,\n            BOLD                 : false,\n            ITALIC               : false,\n            OVERLINE             : false,\n            STRIKETHROUGH        : false,\n            UNDERLINE            : false,\n            HORIZONTAL_ALIGNMENT : 2,\n            VERTICAL_ALIGNMENT   : 1\n    },\n\n    PERCENT : {\n            BACKGROUND_COLOR     : '#fff',//No I18N\n            COLOR                : '#222222',//No I18N\n            FONT_FAMILY          : 'roboto',//No I18N\n            FONT_SIZE            : 9.75,\n            BOLD                 : false,\n            ITALIC               : false,\n            OVERLINE             : false,\n            STRIKETHROUGH        : false,\n            UNDERLINE            : false,\n            HORIZONTAL_ALIGNMENT : 2,\n            VERTICAL_ALIGNMENT   : 1\n    },\n\n    PHONE_NUMBER : {\n            BACKGROUND_COLOR     : '#fff',//No I18N\n            COLOR                : '#006EC2',//No I18N\n            FONT_FAMILY          : 'roboto',//No I18N\n            FONT_SIZE            : 9.75,\n            BOLD                 : false,\n            ITALIC               : false,\n            OVERLINE             : false,\n            STRIKETHROUGH        : false,\n            UNDERLINE            : true,\n            HORIZONTAL_ALIGNMENT : 2,\n            VERTICAL_ALIGNMENT   : 1,\n            OPTION_COLOR         : '#e4e1f4'//No I18N\n    },\n\n    SENTIMENTAL_ANALYSIS : {\n        BACKGROUND_COLOR     : '#fff',//No I18N\n        COLOR                : '#222222',//No I18N\n        FONT_FAMILY          : 'roboto',//No I18N\n        FONT_SIZE            : 9.75,\n        BOLD                 : false,\n        ITALIC               : false,\n        OVERLINE             : false,\n        STRIKETHROUGH        : false,\n        UNDERLINE            : false,\n        HORIZONTAL_ALIGNMENT : 0,\n        VERTICAL_ALIGNMENT   : 1\n    },\n\n    TEXT : {\n            BACKGROUND_COLOR     : '#fff',//No I18N\n            COLOR                : '#222222',//No I18N\n            FONT_FAMILY          : 'roboto',//No I18N\n            FONT_SIZE            : 9.75,\n            BOLD                 : false,\n            ITALIC               : false,\n            OVERLINE             : false,\n            STRIKETHROUGH        : false,\n            UNDERLINE            : false,\n            HORIZONTAL_ALIGNMENT : 0,\n            VERTICAL_ALIGNMENT   : 1\n    },\n\n    URL : {\n            BACKGROUND_COLOR     : '#fff',//No I18N\n            COLOR                : '#006EC2',//No I18N\n            FONT_FAMILY          : 'roboto',//No I18N\n            FONT_SIZE            : 9.75,\n            BOLD                 : false,\n            ITALIC               : false,\n            OVERLINE             : false,\n            STRIKETHROUGH        : false,\n            UNDERLINE            : true,\n            HORIZONTAL_ALIGNMENT : 0,\n            VERTICAL_ALIGNMENT   : 1,\n            OPTION_COLOR         : '#e4e1f4'//No I18N\n    },\n\n    MULTIPLE_SELECTION : {\n            BACKGROUND_COLOR     : '#fff',//No I18N\n            COLOR                : '#222222',//No I18N\n            FONT_FAMILY          : 'roboto',//No I18N\n            FONT_SIZE            : 9.75,\n            BOLD                 : false,\n            ITALIC               : false,\n            OVERLINE             : false,\n            STRIKETHROUGH        : false,\n            UNDERLINE            : false,\n            HORIZONTAL_ALIGNMENT : 1,\n            VERTICAL_ALIGNMENT   : 1\n    },\n\n    SINGLE_SELECTION : {\n            BACKGROUND_COLOR     : '#fff',//No I18N\n            COLOR                : '#222222',//No I18N\n            FONT_FAMILY          : 'roboto',//No I18N\n            FONT_SIZE            : 9.75,\n            BOLD                 : false,\n            ITALIC               : false,\n            OVERLINE             : false,\n            STRIKETHROUGH        : false,\n            UNDERLINE            : false,\n            HORIZONTAL_ALIGNMENT : 1,\n            VERTICAL_ALIGNMENT   : 1\n    },\n\n    KEYWORD_EXTRACTION : {\n        BACKGROUND_COLOR     : '#fff',//No I18N\n        COLOR                : '#222222',//No I18N\n        FONT_FAMILY          : 'roboto',//No I18N\n        FONT_SIZE            : 9.75,\n        BOLD                 : false,\n        ITALIC               : false,\n        OVERLINE             : false,\n        STRIKETHROUGH        : false,\n        UNDERLINE            : false,\n        HORIZONTAL_ALIGNMENT : 1,\n        VERTICAL_ALIGNMENT   : 1\n   },\n\n   LANGUAGE_DETECTOR : {\n\t\t   BACKGROUND_COLOR     : '#fff',//No I18N\n\t\t   COLOR                : '#222222',//No I18N\n\t\t   FONT_FAMILY          : 'roboto',//No I18N\n\t\t   FONT_SIZE            : 9.75,\n\t\t   BOLD                 : false,\n\t\t   ITALIC               : false,\n\t\t   OVERLINE             : false,\n\t\t   STRIKETHROUGH        : false,\n\t\t   UNDERLINE            : false,\n\t\t   HORIZONTAL_ALIGNMENT : 0,\n\t\t   VERTICAL_ALIGNMENT   : 1\n   },\n\n    RATING : {\n            BACKGROUND_COLOR     : '#fff',//No I18N\n            COLOR                : '#222222',//No I18N\n            FONT_FAMILY          : 'roboto',//No I18N\n            FONT_SIZE            : 9.75,\n            BOLD                 : false,\n            ITALIC               : false,\n            OVERLINE             : false,\n            STRIKETHROUGH        : false,\n            UNDERLINE            : false,\n            HORIZONTAL_ALIGNMENT : 1,\n            VERTICAL_ALIGNMENT   : 1\n    },\n\n    CHECKBOX : {\n            BACKGROUND_COLOR     : '#fff',//No I18N\n            COLOR                : '#222222',//No I18N\n            FONT_FAMILY          : 'roboto',//No I18N\n            FONT_SIZE            : 9.75,\n            BOLD                 : false,\n            ITALIC               : false,\n            OVERLINE             : false,\n            STRIKETHROUGH        : false,\n            UNDERLINE            : false,\n            HORIZONTAL_ALIGNMENT : 1,\n            VERTICAL_ALIGNMENT   : 1\n    },\n\n    DURATION : {\n            BACKGROUND_COLOR     : '#fff',//No I18N\n            COLOR                : '#222222',//No I18N\n            FONT_FAMILY          : 'roboto',//No I18N\n            FONT_SIZE            : 9.75,\n            BOLD                 : false,\n            ITALIC               : false,\n            OVERLINE             : false,\n            STRIKETHROUGH        : false,\n            UNDERLINE            : false,\n            HORIZONTAL_ALIGNMENT : 1,\n            VERTICAL_ALIGNMENT   : 1\n    },\n\n    SCIENTIFIC : {\n            BACKGROUND_COLOR     : '#fff',//No I18N\n            COLOR                : '#222222',//No I18N\n            FONT_FAMILY          : 'roboto',//No I18N\n            FONT_SIZE            : 9.75,\n            BOLD                 : false,\n            ITALIC               : false,\n            OVERLINE             : false,\n            STRIKETHROUGH        : false,\n            UNDERLINE            : false,\n            HORIZONTAL_ALIGNMENT : 1,\n            VERTICAL_ALIGNMENT   : 1\n    },\n\n    BARCODE : {\n            BACKGROUND_COLOR     : '#fff',//No I18N\n            COLOR                : '#222222',//No I18N\n            FONT_FAMILY          : 'roboto',//No I18N\n            FONT_SIZE            : 9.75,\n            BOLD                 : false,\n            ITALIC               : false,\n            OVERLINE             : false,\n            STRIKETHROUGH        : false,\n            UNDERLINE            : false,\n            HORIZONTAL_ALIGNMENT : 1,\n            VERTICAL_ALIGNMENT   : 1\n    },\n\n    COLLABORATOR : {\n            BACKGROUND_COLOR     : '#fff',//No I18N\n            COLOR                : '#222222',//No I18N\n            FONT_FAMILY          : 'roboto',//No I18N\n            FONT_SIZE            : 9.75,\n            BOLD                 : false,\n            ITALIC               : false,\n            OVERLINE             : false,\n            STRIKETHROUGH        : false,\n            UNDERLINE            : false,\n            HORIZONTAL_ALIGNMENT : 1,\n            VERTICAL_ALIGNMENT   : 1\n    },\n\n    CREATED_BY : {\n            BACKGROUND_COLOR     : '#fff',//No I18N\n            COLOR                : '#222222',//No I18N\n            FONT_FAMILY          : 'roboto',//No I18N\n            FONT_SIZE            : 9.75,\n            BOLD                 : false,\n            ITALIC               : false,\n            OVERLINE             : false,\n            STRIKETHROUGH        : false,\n            UNDERLINE            : false,\n            HORIZONTAL_ALIGNMENT : 1,\n            VERTICAL_ALIGNMENT   : 1\n    },\n\n    MODIFIED_BY : {\n            BACKGROUND_COLOR     : '#fff',//No I18N\n            COLOR                : '#222222',//No I18N\n            FONT_FAMILY          : 'roboto',//No I18N\n            FONT_SIZE            : 9.75,\n            BOLD                 : false,\n            ITALIC               : false,\n            OVERLINE             : false,\n            STRIKETHROUGH        : false,\n            UNDERLINE            : false,\n            HORIZONTAL_ALIGNMENT : 1,\n            VERTICAL_ALIGNMENT   : 1\n    },\n\n    LINK : {\n            BACKGROUND_COLOR     : '#fff',//No I18N\n            COLOR                : '#222222',//No I18N\n            FONT_FAMILY          : 'roboto',//No I18N\n            FONT_SIZE            : 9.75,\n            BOLD                 : false,\n            ITALIC               : false,\n            OVERLINE             : false,\n            STRIKETHROUGH        : false,\n            UNDERLINE            : false,\n            HORIZONTAL_ALIGNMENT : 1,\n            VERTICAL_ALIGNMENT   : 1,\n            OPTION_COLOR         : '9274f6'//No I18N\n    },\n\n    LOOKUP : {\n            BACKGROUND_COLOR     : '#fff',//No I18N\n            COLOR                : '#222222',//No I18N\n            FONT_FAMILY          : 'roboto',//No I18N\n            FONT_SIZE            : 9.75,\n            BOLD                 : false,\n            ITALIC               : false,\n            OVERLINE             : false,\n            STRIKETHROUGH        : false,\n            UNDERLINE            : false,\n            HORIZONTAL_ALIGNMENT : 1,\n            VERTICAL_ALIGNMENT   : 1,\n            OPTION_COLOR         : '979494'//No I18N\n    },\n\n    ROLLUP : {\n            BACKGROUND_COLOR     : '#fff',//No I18N\n            COLOR                : '#222222',//No I18N\n            FONT_FAMILY          : 'roboto',//No I18N\n            FONT_SIZE            : 9.75,\n            BOLD                 : false,\n            ITALIC               : false,\n            OVERLINE             : false,\n            STRIKETHROUGH        : false,\n            UNDERLINE            : false,\n            HORIZONTAL_ALIGNMENT : 1,\n            VERTICAL_ALIGNMENT   : 1,\n            OPTION_COLOR         : '979494'//No I18N\n    }\n};\n\nconst STYLE_VALUES_ON_GRID_EDIT = {\n    ATTACHMENT : {\n            BACKGROUND_COLOR     : '#fff',//No I18N\n            COLOR                : '#222222',//No I18N\n            FONT_FAMILY          : 'roboto',//No I18N\n            FONT_SIZE            : 9.75,\n            BOLD                 : false,\n            ITALIC               : false,\n            OVERLINE             : false,\n            STRIKETHROUGH        : false,\n            UNDERLINE            : false,\n            HORIZONTAL_ALIGNMENT : 0,\n            VERTICAL_ALIGNMENT   : 1\n    },\n    \n    AUTO_NUMBER : {\n            BACKGROUND_COLOR     : '#fff',//No I18N\n            COLOR                : '#222222',//No I18N\n            FONT_FAMILY          : 'roboto',//No I18N\n            FONT_SIZE            : 9.75,\n            BOLD                 : false,\n            ITALIC               : false,\n            OVERLINE             : false,\n            STRIKETHROUGH        : false,\n            UNDERLINE            : false,\n            HORIZONTAL_ALIGNMENT : 2,\n            VERTICAL_ALIGNMENT   : 1\n    },\n\n    CREATED_TIME : {\n            BACKGROUND_COLOR     : '#fff',//No I18N\n            COLOR                : '#222222',//No I18N\n            FONT_FAMILY          : 'roboto',//No I18N\n            FONT_SIZE            : 9.75,\n            BOLD                 : false,\n            ITALIC               : false,\n            OVERLINE             : false,\n            STRIKETHROUGH        : false,\n            UNDERLINE            : false,\n            HORIZONTAL_ALIGNMENT : 2,\n            VERTICAL_ALIGNMENT   : 1\n    },\n\n    CURRENCY : {\n            BACKGROUND_COLOR     : '#fff',//No I18N\n            COLOR                : '#222222',//No I18N\n            FONT_FAMILY          : 'roboto',//No I18N\n            FONT_SIZE            : 9.75,\n            BOLD                 : false,\n            ITALIC               : false,\n            OVERLINE             : false,\n            STRIKETHROUGH        : false,\n            UNDERLINE            : false,\n            HORIZONTAL_ALIGNMENT : 2,\n            VERTICAL_ALIGNMENT   : 1\n    },\n\n    DATE_TIME : {\n            BACKGROUND_COLOR     : '#fff',//No I18N\n            COLOR                : '#222222',//No I18N\n            FONT_FAMILY          : 'roboto',//No I18N\n            FONT_SIZE            : 9.75,\n            BOLD                 : false,\n            ITALIC               : false,\n            OVERLINE             : false,\n            STRIKETHROUGH        : false,\n            UNDERLINE            : false,\n            HORIZONTAL_ALIGNMENT : 0,\n            VERTICAL_ALIGNMENT   : 1\n    },\n\n    EMAIL : {\n            BACKGROUND_COLOR     : '#fff',//No I18N\n            COLOR                : '#222222',//No I18N\n            FONT_FAMILY          : 'roboto',//No I18N\n            FONT_SIZE            : 9.75,\n            BOLD                 : false,\n            ITALIC               : false,\n            OVERLINE             : false,\n            STRIKETHROUGH        : false,\n            UNDERLINE            : false,\n            HORIZONTAL_ALIGNMENT : 0,\n            VERTICAL_ALIGNMENT   : 1,\n            OPTION_COLOR         : '#e4e1f4'//No I18N\n    },\n\n    MODIFIED_TIME : {\n            BACKGROUND_COLOR     : '#fff',//No I18N\n            COLOR                : '#222222',//No I18N\n            FONT_FAMILY          : 'roboto',//No I18N\n            FONT_SIZE            : 9.75,\n            BOLD                 : false,\n            ITALIC               : false,\n            OVERLINE             : false,\n            STRIKETHROUGH        : false,\n            UNDERLINE            : false,\n            HORIZONTAL_ALIGNMENT : 2,\n            VERTICAL_ALIGNMENT   : 1\n    },\n\n    NUMBER : {\n            BACKGROUND_COLOR     : '#fff',//No I18N\n            COLOR                : '#222222',//No I18N\n            FONT_FAMILY          : 'roboto',//No I18N\n            FONT_SIZE            : 9.75,\n            BOLD                 : false,\n            ITALIC               : false,\n            OVERLINE             : false,\n            STRIKETHROUGH        : false,\n            UNDERLINE            : false,\n            HORIZONTAL_ALIGNMENT : 2,\n            VERTICAL_ALIGNMENT   : 1\n    },\n\n    PERCENT : {\n            BACKGROUND_COLOR     : '#fff',//No I18N\n            COLOR                : '#222222',//No I18N\n            FONT_FAMILY          : 'roboto',//No I18N\n            FONT_SIZE            : 9.75,\n            BOLD                 : false,\n            ITALIC               : false,\n            OVERLINE             : false,\n            STRIKETHROUGH        : false,\n            UNDERLINE            : false,\n            HORIZONTAL_ALIGNMENT : 2,\n            VERTICAL_ALIGNMENT   : 1\n    },\n\n    PHONE_NUMBER : {\n            BACKGROUND_COLOR     : '#fff',//No I18N\n            COLOR                : '#222222',//No I18N\n            FONT_FAMILY          : 'roboto',//No I18N\n            FONT_SIZE            : 9.75,\n            BOLD                 : false,\n            ITALIC               : false,\n            OVERLINE             : false,\n            STRIKETHROUGH        : false,\n            UNDERLINE            : false,\n            HORIZONTAL_ALIGNMENT : 2,\n            VERTICAL_ALIGNMENT   : 1,\n            OPTION_COLOR         : '#e4e1f4'//No I18N\n    },\n\n    TEXT : {\n            BACKGROUND_COLOR     : '#fff',//No I18N\n            COLOR                : '#222222',//No I18N\n            FONT_FAMILY          : 'roboto',//No I18N\n            FONT_SIZE            : 9.75,\n            BOLD                 : false,\n            ITALIC               : false,\n            OVERLINE             : false,\n            STRIKETHROUGH        : false,\n            UNDERLINE            : false,\n            HORIZONTAL_ALIGNMENT : 0,\n            VERTICAL_ALIGNMENT   : 1\n    },\n\n    SENTIMENTAL_ANALYSIS : {\n\t\tBACKGROUND_COLOR     : '#fff',//No I18N\n\t\tCOLOR                : '#222222',//No I18N\n\t\tFONT_FAMILY          : 'roboto',//No I18N\n\t\tFONT_SIZE            : 9.75,\n\t\tBOLD                 : false,\n\t\tITALIC               : false,\n\t\tOVERLINE             : false,\n\t\tSTRIKETHROUGH        : false,\n\t\tUNDERLINE            : false,\n\t\tHORIZONTAL_ALIGNMENT : 0,\n\t\tVERTICAL_ALIGNMENT   : 1\n\t},\n\n\tLANGUAGE_DETECTOR : {\n\t\tBACKGROUND_COLOR     : '#fff',//No I18N\n\t\tCOLOR                : '#222222',//No I18N\n\t\tFONT_FAMILY          : 'roboto',//No I18N\n\t\tFONT_SIZE            : 9.75,\n\t\tBOLD                 : false,\n\t\tITALIC               : false,\n\t\tOVERLINE             : false,\n\t\tSTRIKETHROUGH        : false,\n\t\tUNDERLINE            : false,\n\t\tHORIZONTAL_ALIGNMENT : 0,\n\t\tVERTICAL_ALIGNMENT   : 1\n\t},\n\n    URL : {\n            BACKGROUND_COLOR     : '#fff',//No I18N\n            COLOR                : '#222222',//No I18N\n            FONT_FAMILY          : 'roboto',//No I18N\n            FONT_SIZE            : 9.75,\n            BOLD                 : false,\n            ITALIC               : false,\n            OVERLINE             : false,\n            STRIKETHROUGH        : false,\n            UNDERLINE            : false,\n            HORIZONTAL_ALIGNMENT : 0,\n            VERTICAL_ALIGNMENT   : 1,\n            OPTION_COLOR         : '#e4e1f4'//No I18N\n    },\n\n    MULTIPLE_SELECTION : {\n            BACKGROUND_COLOR     : '#fff',//No I18N\n            COLOR                : '#222222',//No I18N\n            FONT_FAMILY          : 'roboto',//No I18N\n            FONT_SIZE            : 9.75,\n            BOLD                 : false,\n            ITALIC               : false,\n            OVERLINE             : false,\n            STRIKETHROUGH        : false,\n            UNDERLINE            : false,\n            HORIZONTAL_ALIGNMENT : 1,\n            VERTICAL_ALIGNMENT   : 1\n    },\n\n    SINGLE_SELECTION : {\n            BACKGROUND_COLOR     : '#fff',//No I18N\n            COLOR                : '#222222',//No I18N\n            FONT_FAMILY          : 'roboto',//No I18N\n            FONT_SIZE            : 9.75,\n            BOLD                 : false,\n            ITALIC               : false,\n            OVERLINE             : false,\n            STRIKETHROUGH        : false,\n            UNDERLINE            : false,\n            HORIZONTAL_ALIGNMENT : 1,\n            VERTICAL_ALIGNMENT   : 1\n    },\n\n    KEYWORD_EXTRACTION : {\n\t\tBACKGROUND_COLOR     : '#fff',//No I18N\n\t\tCOLOR                : '#222222',//No I18N\n\t\tFONT_FAMILY          : 'roboto',//No I18N\n\t\tFONT_SIZE            : 9.75,\n\t\tBOLD                 : false,\n\t\tITALIC               : false,\n\t\tOVERLINE             : false,\n\t\tSTRIKETHROUGH        : false,\n\t\tUNDERLINE            : false,\n\t\tHORIZONTAL_ALIGNMENT : 1,\n\t\tVERTICAL_ALIGNMENT   : 1\n\t},\n\n    RATING : {\n            BACKGROUND_COLOR     : '#fff',//No I18N\n            COLOR                : '#222222',//No I18N\n            FONT_FAMILY          : 'roboto',//No I18N\n            FONT_SIZE            : 9.75,\n            BOLD                 : false,\n            ITALIC               : false,\n            OVERLINE             : false,\n            STRIKETHROUGH        : false,\n            UNDERLINE            : false,\n            HORIZONTAL_ALIGNMENT : 1,\n            VERTICAL_ALIGNMENT   : 1\n    },\n\n    CHECKBOX : {\n            BACKGROUND_COLOR     : '#fff',//No I18N\n            COLOR                : '#222222',//No I18N\n            FONT_FAMILY          : 'roboto',//No I18N\n            FONT_SIZE            : 9.75,\n            BOLD                 : false,\n            ITALIC               : false,\n            OVERLINE             : false,\n            STRIKETHROUGH        : false,\n            UNDERLINE            : false,\n            HORIZONTAL_ALIGNMENT : 1,\n            VERTICAL_ALIGNMENT   : 1\n    },\n\n    DURATION : {\n            BACKGROUND_COLOR     : '#fff',//No I18N\n            COLOR                : '#222222',//No I18N\n            FONT_FAMILY          : 'roboto',//No I18N\n            FONT_SIZE            : 9.75,\n            BOLD                 : false,\n            ITALIC               : false,\n            OVERLINE             : false,\n            STRIKETHROUGH        : false,\n            UNDERLINE            : false,\n            HORIZONTAL_ALIGNMENT : 1,\n            VERTICAL_ALIGNMENT   : 1\n    },\n\n    SCIENTIFIC : {\n            BACKGROUND_COLOR     : '#fff',//No I18N\n            COLOR                : '#222222',//No I18N\n            FONT_FAMILY          : 'roboto',//No I18N\n            FONT_SIZE            : 9.75,\n            BOLD                 : false,\n            ITALIC               : false,\n            OVERLINE             : false,\n            STRIKETHROUGH        : false,\n            UNDERLINE            : false,\n            HORIZONTAL_ALIGNMENT : 1,\n            VERTICAL_ALIGNMENT   : 1\n    },\n\n    BARCODE : {\n            BACKGROUND_COLOR     : '#fff',//No I18N\n            COLOR                : '#222222',//No I18N\n            FONT_FAMILY          : 'roboto',//No I18N\n            FONT_SIZE            : 9.75,\n            BOLD                 : false,\n            ITALIC               : false,\n            OVERLINE             : false,\n            STRIKETHROUGH        : false,\n            UNDERLINE            : false,\n            HORIZONTAL_ALIGNMENT : 1,\n            VERTICAL_ALIGNMENT   : 1\n    },\n\n    COLLABORATOR : {\n            BACKGROUND_COLOR     : '#fff',//No I18N\n            COLOR                : '#222222',//No I18N\n            FONT_FAMILY          : 'roboto',//No I18N\n            FONT_SIZE            : 9.75,\n            BOLD                 : false,\n            ITALIC               : false,\n            OVERLINE             : false,\n            STRIKETHROUGH        : false,\n            UNDERLINE            : false,\n            HORIZONTAL_ALIGNMENT : 1,\n            VERTICAL_ALIGNMENT   : 1\n    },\n\n    CREATED_BY : {\n            BACKGROUND_COLOR     : '#fff',//No I18N\n            COLOR                : '#222222',//No I18N\n            FONT_FAMILY          : 'roboto',//No I18N\n            FONT_SIZE            : 9.75,\n            BOLD                 : false,\n            ITALIC               : false,\n            OVERLINE             : false,\n            STRIKETHROUGH        : false,\n            UNDERLINE            : false,\n            HORIZONTAL_ALIGNMENT : 1,\n            VERTICAL_ALIGNMENT   : 1\n    },\n\n    MODIFIED_BY : {\n            BACKGROUND_COLOR     : '#fff',//No I18N\n            COLOR                : '#222222',//No I18N\n            FONT_FAMILY          : 'roboto',//No I18N\n            FONT_SIZE            : 9.75,\n            BOLD                 : false,\n            ITALIC               : false,\n            OVERLINE             : false,\n            STRIKETHROUGH        : false,\n            UNDERLINE            : false,\n            HORIZONTAL_ALIGNMENT : 1,\n            VERTICAL_ALIGNMENT   : 1\n    },\n\n    LINK : {\n            BACKGROUND_COLOR     : '#fff',//No I18N\n            COLOR                : '#222222',//No I18N\n            FONT_FAMILY          : 'roboto',//No I18N\n            FONT_SIZE            : 9.75,\n            BOLD                 : false,\n            ITALIC               : false,\n            OVERLINE             : false,\n            STRIKETHROUGH        : false,\n            UNDERLINE            : false,\n            HORIZONTAL_ALIGNMENT : 1,\n            VERTICAL_ALIGNMENT   : 1,\n            OPTION_COLOR         : '9274f6'//No I18N\n    },\n\n        LOOKUP : {\n                BACKGROUND_COLOR     : '#fff',//No I18N\n                COLOR                : '#222222',//No I18N\n                FONT_FAMILY          : 'roboto',//No I18N\n                FONT_SIZE            : 9.75,\n                BOLD                 : false,\n                ITALIC               : false,\n                OVERLINE             : false,\n                STRIKETHROUGH        : false,\n                UNDERLINE            : false,\n                HORIZONTAL_ALIGNMENT : 1,\n                VERTICAL_ALIGNMENT   : 1,\n                OPTION_COLOR         : '979494'//No I18N\n        },\n\n        ROLLUP : {\n                BACKGROUND_COLOR     : '#fff',//No I18N\n                COLOR                : '#222222',//No I18N\n                FONT_FAMILY          : 'roboto',//No I18N\n                FONT_SIZE            : 9.75,\n                BOLD                 : false,\n                ITALIC               : false,\n                OVERLINE             : false,\n                STRIKETHROUGH        : false,\n                UNDERLINE            : false,\n                HORIZONTAL_ALIGNMENT : 1,\n                VERTICAL_ALIGNMENT   : 1,\n                OPTION_COLOR         : '979494'//No I18N\n        }\n\n};\n\nconst RECORD_VIEW_STYLES = {\n        MULTIPLE_SELECTION : {\n                BACKGROUND_COLOR     : '#fff',//No I18N\n                COLOR                : '#222222',//No I18N\n                FONT_FAMILY          : 'roboto',//No I18N\n                FONT_SIZE            : 9.75,\n                BOLD                 : false,\n                ITALIC               : false,\n                OVERLINE             : false,\n                STRIKETHROUGH        : false,\n                UNDERLINE            : false,\n                HORIZONTAL_ALIGNMENT : 1,\n                VERTICAL_ALIGNMENT   : 1\n        },\n    \n        SINGLE_SELECTION : {\n                BACKGROUND_COLOR     : '#fff',//No I18N\n                COLOR                : '#222222',//No I18N\n                FONT_FAMILY          : 'roboto',//No I18N\n                FONT_SIZE            : 9.75,\n                BOLD                 : false,\n                ITALIC               : false,\n                OVERLINE             : false,\n                STRIKETHROUGH        : false,\n                UNDERLINE            : false,\n                HORIZONTAL_ALIGNMENT : 1,\n                VERTICAL_ALIGNMENT   : 1\n        },\n    \n        RATING : {\n                BACKGROUND_COLOR     : '#fff',//No I18N\n                COLOR                : '#222222',//No I18N\n                FONT_FAMILY          : 'roboto',//No I18N\n                FONT_SIZE            : 9.75,\n                BOLD                 : false,\n                ITALIC               : false,\n                OVERLINE             : false,\n                STRIKETHROUGH        : false,\n                UNDERLINE            : false,\n                HORIZONTAL_ALIGNMENT : 1,\n                VERTICAL_ALIGNMENT   : 1\n        },\n    \n        CHECKBOX : {\n                BACKGROUND_COLOR     : '#fff',//No I18N\n                COLOR                : '#222222',//No I18N\n                FONT_FAMILY          : 'roboto',//No I18N\n                FONT_SIZE            : 9.75,\n                BOLD                 : false,\n                ITALIC               : false,\n                OVERLINE             : false,\n                STRIKETHROUGH        : false,\n                UNDERLINE            : false,\n                HORIZONTAL_ALIGNMENT : 1,\n                VERTICAL_ALIGNMENT   : 1\n        },\n        MODIFIED_TIME : {\n                BACKGROUND_COLOR     : '#fff',//No I18N\n                COLOR                : '#222222',//No I18N\n                FONT_FAMILY          : 'roboto',//No I18N\n                FONT_SIZE            : 9.75,\n                BOLD                 : false,\n                ITALIC               : false,\n                OVERLINE             : false,\n                STRIKETHROUGH        : false,\n                UNDERLINE            : false,\n                HORIZONTAL_ALIGNMENT : 0,\n                VERTICAL_ALIGNMENT   : 1\n        },\n    \n        NUMBER : {\n                BACKGROUND_COLOR     : '#fff',//No I18N\n                COLOR                : '#222222',//No I18N\n                FONT_FAMILY          : 'roboto',//No I18N\n                FONT_SIZE            : 9.75,\n                BOLD                 : false,\n                ITALIC               : false,\n                OVERLINE             : false,\n                STRIKETHROUGH        : false,\n                UNDERLINE            : false,\n                HORIZONTAL_ALIGNMENT : 0,\n                VERTICAL_ALIGNMENT   : 1\n        },\n    \n        PERCENT : {\n                BACKGROUND_COLOR     : '#fff',//No I18N\n                COLOR                : '#222222',//No I18N\n                FONT_FAMILY          : 'roboto',//No I18N\n                FONT_SIZE            : 9.75,\n                BOLD                 : false,\n                ITALIC               : false,\n                OVERLINE             : false,\n                STRIKETHROUGH        : false,\n                UNDERLINE            : false,\n                HORIZONTAL_ALIGNMENT : 0,\n                VERTICAL_ALIGNMENT   : 1\n        },\n\n        SENTIMENTAL_ANALYSIS : {\n                BACKGROUND_COLOR     : '#fff',//No I18N\n                COLOR                : '#222222',//No I18N\n                FONT_FAMILY          : 'roboto',//No I18N\n                FONT_SIZE            : 9.75,\n                BOLD                 : false,\n                ITALIC               : false,\n                OVERLINE             : false,\n                STRIKETHROUGH        : false,\n                UNDERLINE            : false,\n                HORIZONTAL_ALIGNMENT : 0,\n                VERTICAL_ALIGNMENT   : 1\n        },\n    \n        TEXT : {\n                BACKGROUND_COLOR     : '#fff',//No I18N\n                COLOR                : '#222222',//No I18N\n                FONT_FAMILY          : 'roboto',//No I18N\n                FONT_SIZE            : 9.75,\n                BOLD                 : false,\n                ITALIC               : false,\n                OVERLINE             : false,\n                STRIKETHROUGH        : false,\n                UNDERLINE            : false,\n                HORIZONTAL_ALIGNMENT : 0,\n                VERTICAL_ALIGNMENT   : 1\n        },\n        ATTACHMENT : {\n                BACKGROUND_COLOR     : '#fff',//No I18N\n                COLOR                : '#222222',//No I18N\n                FONT_FAMILY          : 'roboto',//No I18N\n                FONT_SIZE            : 9.75,\n                BOLD                 : false,\n                ITALIC               : false,\n                OVERLINE             : false,\n                STRIKETHROUGH        : false,\n                UNDERLINE            : false,\n                HORIZONTAL_ALIGNMENT : 0,\n                VERTICAL_ALIGNMENT   : 1\n        },\n        \n        AUTO_NUMBER : {\n                BACKGROUND_COLOR     : '#fff',//No I18N\n                COLOR                : '#222222',//No I18N\n                FONT_FAMILY          : 'roboto',//No I18N\n                FONT_SIZE            : 9.75,\n                BOLD                 : false,\n                ITALIC               : false,\n                OVERLINE             : false,\n                STRIKETHROUGH        : false,\n                UNDERLINE            : false,\n                HORIZONTAL_ALIGNMENT : 0,\n                VERTICAL_ALIGNMENT   : 1\n        },\n    \n        CREATED_TIME : {\n                BACKGROUND_COLOR     : '#fff',//No I18N\n                COLOR                : '#222222',//No I18N\n                FONT_FAMILY          : 'roboto',//No I18N\n                FONT_SIZE            : 9.75,\n                BOLD                 : false,\n                ITALIC               : false,\n                OVERLINE             : false,\n                STRIKETHROUGH        : false,\n                UNDERLINE            : false,\n                HORIZONTAL_ALIGNMENT : 0,\n                VERTICAL_ALIGNMENT   : 1\n        },\n    \n        CURRENCY : {\n                BACKGROUND_COLOR     : '#fff',//No I18N\n                COLOR                : '#222222',//No I18N\n                FONT_FAMILY          : 'roboto',//No I18N\n                FONT_SIZE            : 9.75,\n                BOLD                 : false,\n                ITALIC               : false,\n                OVERLINE             : false,\n                STRIKETHROUGH        : false,\n                UNDERLINE            : false,\n                HORIZONTAL_ALIGNMENT : 0,\n                VERTICAL_ALIGNMENT   : 1\n        },\n    \n        DATE_TIME : {\n                BACKGROUND_COLOR     : '#fff',//No I18N\n                COLOR                : '#222222',//No I18N\n                FONT_FAMILY          : 'roboto',//No I18N\n                FONT_SIZE            : 9.75,\n                BOLD                 : false,\n                ITALIC               : false,\n                OVERLINE             : false,\n                STRIKETHROUGH        : false,\n                UNDERLINE            : false,\n                HORIZONTAL_ALIGNMENT : 0,\n                VERTICAL_ALIGNMENT   : 1\n        },\n    PHONE_NUMBER : {\n                BACKGROUND_COLOR     : '#fff',//No I18N\n                COLOR                : '#006EC2',//No I18N\n                FONT_FAMILY          : 'roboto',//No I18N\n                FONT_SIZE            : 9.75,\n                BOLD                 : false,\n                ITALIC               : false,\n                OVERLINE             : false,\n                STRIKETHROUGH        : false,\n                UNDERLINE            : true,\n                HORIZONTAL_ALIGNMENT : 0,\n                VERTICAL_ALIGNMENT   : 1,\n                OPTION_COLOR         : '#e4e1f4'//No I18N\n    },\n\n    URL : {\n                BACKGROUND_COLOR     : '#fff',//No I18N\n                COLOR                : '#006EC2',//No I18N\n                FONT_FAMILY          : 'roboto',//No I18N\n                FONT_SIZE            : 9.75,\n                BOLD                 : false,\n                ITALIC               : false,\n                OVERLINE             : false,\n                STRIKETHROUGH        : false,\n                UNDERLINE            : true,\n                HORIZONTAL_ALIGNMENT : 0,\n                VERTICAL_ALIGNMENT   : 1,\n                OPTION_COLOR         : '#e4e1f4'//No I18N\n    },\n\n    EMAIL : {\n                BACKGROUND_COLOR     : '#fff',//No I18N\n                COLOR                : '#006EC2',//No I18N\n                FONT_FAMILY          : 'roboto',//No I18N\n                FONT_SIZE            : 9.75,\n                BOLD                 : false,\n                ITALIC               : false,\n                OVERLINE             : false,\n                STRIKETHROUGH        : false,\n                UNDERLINE            : true,\n                HORIZONTAL_ALIGNMENT : 0,\n                VERTICAL_ALIGNMENT   : 1,\n                OPTION_COLOR         : '#e4e1f4'//No I18N\n    },\n    COLLABORATOR : {\n        BACKGROUND_COLOR     : '#fff',//No I18N\n        COLOR                : '#222222',//No I18N\n        FONT_FAMILY          : 'roboto',//No I18N\n        FONT_SIZE            : 9.75,\n        BOLD                 : false,\n        ITALIC               : false,\n        OVERLINE             : false,\n        STRIKETHROUGH        : false,\n        UNDERLINE            : false,\n        HORIZONTAL_ALIGNMENT : 1,\n        VERTICAL_ALIGNMENT   : 1\n},\n\nCREATED_BY : {\n        BACKGROUND_COLOR     : '#fff',//No I18N\n        COLOR                : '#222222',//No I18N\n        FONT_FAMILY          : 'roboto',//No I18N\n        FONT_SIZE            : 9.75,\n        BOLD                 : false,\n        ITALIC               : false,\n        OVERLINE             : false,\n        STRIKETHROUGH        : false,\n        UNDERLINE            : false,\n        HORIZONTAL_ALIGNMENT : 1,\n        VERTICAL_ALIGNMENT   : 1\n},\n\nMODIFIED_BY : {\n        BACKGROUND_COLOR     : '#fff',//No I18N\n        COLOR                : '#222222',//No I18N\n        FONT_FAMILY          : 'roboto',//No I18N\n        FONT_SIZE            : 9.75,\n        BOLD                 : false,\n        ITALIC               : false,\n        OVERLINE             : false,\n        STRIKETHROUGH        : false,\n        UNDERLINE            : false,\n        HORIZONTAL_ALIGNMENT : 1,\n        VERTICAL_ALIGNMENT   : 1\n},\n\nLINK : {\n        BACKGROUND_COLOR     : '#fff',//No I18N\n        COLOR                : '#222222',//No I18N\n        FONT_FAMILY          : 'roboto',//No I18N\n        FONT_SIZE            : 9.75,\n        BOLD                 : false,\n        ITALIC               : false,\n        OVERLINE             : false,\n        STRIKETHROUGH        : false,\n        UNDERLINE            : false,\n        HORIZONTAL_ALIGNMENT : 1,\n        VERTICAL_ALIGNMENT   : 1,\n        OPTION_COLOR         : '9274f6'//No I18N\n},\n\nLOOKUP : {\n        BACKGROUND_COLOR     : '#fff',//No I18N\n        COLOR                : '#222222',//No I18N\n        FONT_FAMILY          : 'roboto',//No I18N\n        FONT_SIZE            : 9.75,\n        BOLD                 : false,\n        ITALIC               : false,\n        OVERLINE             : false,\n        STRIKETHROUGH        : false,\n        UNDERLINE            : false,\n        HORIZONTAL_ALIGNMENT : 1,\n        VERTICAL_ALIGNMENT   : 1,\n        OPTION_COLOR         : '979494'//No I18N\n},\n\nROLLUP : {\n        BACKGROUND_COLOR     : '#fff',//No I18N\n        COLOR                : '#222222',//No I18N\n        FONT_FAMILY          : 'roboto',//No I18N\n        FONT_SIZE            : 9.75,\n        BOLD                 : false,\n        ITALIC               : false,\n        OVERLINE             : false,\n        STRIKETHROUGH        : false,\n        UNDERLINE            : false,\n        HORIZONTAL_ALIGNMENT : 1,\n        VERTICAL_ALIGNMENT   : 1,\n        OPTION_COLOR         : '979494'//No I18N\n}\n\n};\n\nexport function getFieldStyles(baseID, tableID, fieldID) {\n    const base                = Table.Data.Workspace.get(baseID);\n    const table               = base.getTable(tableID);\n    const field               = table.getField(fieldID);\n    const fieldInstance       = field.getType();\n    const fieldType           = fieldInstance.getType();\n    const fieldSpecifications = getFieldTypeSpecifications(baseID, tableID, fieldID);\n    return getFieldStylesByType(fieldType, fieldSpecifications);\n}\nexport function getFieldStyleRecordView(baseID, tableID, fieldID, isHidden) {\n        const base                = Table.Data.Workspace.get(baseID);\n        const table               = base.getTable(tableID);\n        const field               = table.getField(fieldID);\n        const fieldInstance       = field.getType();\n        const fieldType           = fieldInstance.getType();\n        const fieldSpecifications = getFieldTypeSpecifications(baseID, tableID, fieldID);\n        return getFieldStylesByTypeForRecordView(fieldType, fieldSpecifications, isHidden);\n}\n// for recordView styles\nexport function getFieldStylesByTypeForRecordView(fieldType, fieldSpecifications,isHidden) {\n        let styleValues = commonFunction(fieldType, fieldSpecifications, RECORD_VIEW_STYLES);\n     \n        isHidden && (styleValues.BGColor = '');\n        return styleValues;\n\n}\n\nexport function getFieldStylesByType(fieldType, fieldSpecifications) {\n    return commonFunction(fieldType, fieldSpecifications, STYLE_VALUES);\n}\n\nexport function getFieldStylesByTypeOnGridEdit(fieldType, fieldSpecifications) {\n    return commonFunction(fieldType, fieldSpecifications, STYLE_VALUES_ON_GRID_EDIT);\n}\n\nfunction commonFunction(fieldType, fieldSpecifications, styles) {\n    let styleValues;\n    switch(fieldType) {\n            case ATTACHMENT:\n                    styleValues = styles.ATTACHMENT;\n                    break;\n            case AUTO_NUMBER:\n                    styleValues = styles.AUTO_NUMBER;\n                    break;\n            case CHECKBOX:\n                    styleValues = styles.CHECKBOX;\n                    break;\n            case CREATED_TIME:\n                    styleValues = styles.CREATED_TIME;\n                    break;\n            case CREATED_BY:\n                    styleValues = styles.CREATED_BY;\n                    break;\n            case MODIFIED_BY:\n                    styleValues = styles.MODIFIED_BY;\n                    break;\n            case CURRENCY:\n                    styleValues = styles.CURRENCY;\n                    break;\n            case DATE_TIME:\n                    styleValues = styles.DATE_TIME;\n                    break;\n            case DURATION:\n                    styleValues = styles.DURATION;\n                    break;\n            case EMAIL:\n                    styleValues = styles.EMAIL;\n                    break;\n            case MODIFIED_TIME:\n                    styleValues = styles.MODIFIED_TIME;\n                    break;\n            case MULTIPLE_SELECTION:\n                    styleValues = styles.MULTIPLE_SELECTION;\n                    break;\n            case NUMBER:\n                    styleValues = styles.NUMBER;\n                    break;\n            case PERCENT:\n                    styleValues = styles.PERCENT;\n                    break;\n            case PHONE_NUMBER:\n                    styleValues = styles.PHONE_NUMBER;\n                    break;\n            case RATING:\n                    styleValues = styles.RATING;\n                    break;\n            case SCIENTIFIC:\n                    styleValues = styles.SCIENTIFIC;\n                    break;\n            case SINGLE_SELECTION:\n                    styleValues = styles.SINGLE_SELECTION;\n                    break;\n            case TEXT:\n                    styleValues = styles.TEXT;\n                    break;\n            case URL:\n                    styleValues = styles.URL;\n                    break;\n            case BARCODE:\n                    styleValues = styles.BARCODE;\n                    break;\n            case COLLABORATOR_CLIENT:\n                    styleValues = styles.COLLABORATOR;\n                    break;\n            case LINK:\n            case LINK_CLIENT:\n                    styleValues = styles.LINK;\n                    break;\n            \n            case LOOKUP:\n                    styleValues = STYLE_VALUES.LOOKUP;\n                    break;\n\n            case ROLLUP:\n                    styleValues = STYLE_VALUES.ROLLUP;\n                    break;\n\n\t\t\tcase SENTIMENTAL_ANALYSIS:\n\t\t\t\t\tstyleValues = STYLE_VALUES.SENTIMENTAL_ANALYSIS;\n\t\t\t\t\tbreak;\n\n\t\t\tcase KEYWORD_EXTRACTION:\n\t\t\t\t\tstyleValues = STYLE_VALUES.KEYWORD_EXTRACTION;\n\t\t\t\t\tbreak;\n\n\t\t\tcase LANGUAGE_DETECTOR:\n\t\t\t\t\tstyleValues = STYLE_VALUES.LANGUAGE_DETECTOR;\n\t\t\t\t\tbreak;\n\n            case FORMULA:\n                    const formatArray = fieldSpecifications[2][0];\n                    const returnType  = formatArray[0];\n\n                    switch(returnType) {\n                        case FORMULA_NUMBER:\n                            styleValues = styles.NUMBER;\n                            break;\n\n                        case FORMULA_RETURN_TYPE_EMPTY:\n                        case FORMULA_TEXT:\n                            styleValues = styles.TEXT;\n                            break;\n\n                        case FORMULA_DATE:\n                            styleValues = styles.DATE_TIME;\n                            break;\n\n                        case FORMULA_CURRENCY:\n                            styleValues = styles.CURRENCY;\n                            break;\n\n                        case FORMULA_PERCENT:\n                            styleValues = styles.PERCENT;\n                            break;\n                    }\n                    break;\n\n    }\n    const fieldStyles = {};\n    for(const ID in styleValues) {\n            fieldStyles[STYLES[ID]] = styleValues[ID];\n    }\n    return fieldStyles;\n}\n\nconst FORMULA_STYLE_VALUES = {\n        [FORMULA_NUMBER]   : STYLE_VALUES.NUMBER,\n        [FORMULA_TEXT]     : STYLE_VALUES.TEXT,\n        [FORMULA_DATE]     : STYLE_VALUES.DATE_TIME,\n        [FORMULA_CURRENCY] : STYLE_VALUES.CURRENCY,\n        [FORMULA_PERCENT]  : STYLE_VALUES.PERCENT,\n        [FORMULA_RETURN_TYPE_EMPTY] : STYLE_VALUES.TEXT\n}\n\nconst FORMULA_STYLE_VALUES_ON_GRID_EDIT = {\n        [FORMULA_NUMBER]   : STYLE_VALUES_ON_GRID_EDIT.NUMBER,\n        [FORMULA_TEXT]     : STYLE_VALUES_ON_GRID_EDIT.TEXT,\n        [FORMULA_DATE]     : STYLE_VALUES_ON_GRID_EDIT.DATE_TIME,\n        [FORMULA_CURRENCY] : STYLE_VALUES_ON_GRID_EDIT.CURRENCY,\n        [FORMULA_PERCENT]  : STYLE_VALUES_ON_GRID_EDIT.PERCENT,\n        [FORMULA_RETURN_TYPE_EMPTY] :STYLE_VALUES_ON_GRID_EDIT.TEXT\n}\n\nconst FIELD_TYPES_TO_NAME = {\n        [ATTACHMENT]           : \"ATTACHMENT\",\n        [AUTO_NUMBER]          : \"AUTO_NUMBER\",\n        [CREATED_TIME]         : \"CREATED_TIME\",\n        [CURRENCY]             : \"CURRENCY\",\n        [DATE_TIME]            : \"DATE_TIME\",\n        [EMAIL]                : \"EMAIL\",\n        [MODIFIED_TIME]        : \"MODIFIED_TIME\",\n        [NUMBER]               : \"NUMBER\",\n        [PERCENT]              : \"PERCENT\",\n        [PHONE_NUMBER]         : \"PHONE_NUMBER\",\n        [TEXT]                 : \"TEXT\",\n        [URL]                  : \"URL\",\n        [MULTIPLE_SELECTION]   : \"MULTIPLE_SELECTION\",\n        [SINGLE_SELECTION]     : \"SINGLE_SELECTION\",\n        [RATING]               : \"RATING\",\n        [CHECKBOX]             : \"CHECKBOX\",\n        [DURATION]             : \"DURATION\",\n        [SCIENTIFIC]           : \"SCIENTIFIC\",\n        [BARCODE]              : \"BARCODE\",\n        [COLLABORATOR_CLIENT]  : \"COLLABORATOR\",\n        [CREATED_BY]           : \"CREATED_BY\",\n        [MODIFIED_BY]          : \"MODIFIED_BY\",\n        [LINK]                 : \"LINK\",\n        [LOOKUP]               : \"LOOKUP\",\n        [ROLLUP]               : \"ROLLUP\",\n        [SENTIMENTAL_ANALYSIS] : \"SENTIMENTAL_ANALYSIS\",\n        [KEYWORD_EXTRACTION]   : \"KEYWORD_EXTRACTION\",\n        [LANGUAGE_DETECTOR]    : \"LANGUAGE_DETECTOR\"\n}\n\nexport function getFieldStylesByFieldInstance(fieldInstance) {\n        const fieldType = fieldInstance.getType();\n        let styleValues\n        if(fieldType === FORMULA) {\n                const returnType = fieldInstance.getReturnType();\n                styleValues = FORMULA_STYLE_VALUES[returnType];\n        }\n        else {\n                styleValues = STYLE_VALUES[FIELD_TYPES_TO_NAME[fieldType]];    \n        }\n        const fieldStyles = {};\n        for(const ID in styleValues) {\n                fieldStyles[STYLES[ID]] = styleValues[ID];\n        }\n        return fieldStyles;   \n}\n\nexport function getFieldStylesOnGridEditByFieldInstance(fieldInstance) {\n        const fieldType = fieldInstance.getType();\n        let styleValues\n        if(fieldType === FORMULA) {\n                const returnType = fieldInstance.getReturnType();\n                styleValues = FORMULA_STYLE_VALUES_ON_GRID_EDIT[returnType];\n        }\n        else {\n                styleValues = STYLE_VALUES_ON_GRID_EDIT[FIELD_TYPES_TO_NAME[fieldType]];      \n        }\n        const fieldStyles = {};\n        for(const ID in styleValues) {\n                fieldStyles[STYLES[ID]] = styleValues[ID];\n        }\n        return fieldStyles;   \n} \n","\nimport { ADD_FIELD_AUTO_NUMBER_PRECISION, ADD_FIELD_AUTO_NUMBER_THOUSAND_SEPARATOR, ADD_FIELD_CURRENCIES_CHF, ADD_FIELD_CURRENCIES_INR, ADD_FIELD_CURRENCIES_ZAR, ADD_FIELD_CURRENCY_POSITIONS_ACCOUNTING, ADD_FIELD_CURRENCY_POSITIONS_AFTER, ADD_FIELD_CURRENCY_POSITIONS_BEFORE, ADD_FIELD_CURRENCY_POSITIONS_NONE, ADD_FIELD_TIME_FORMAT } from '../../../Constants/AddFieldConstants.js'\nimport { SUPPORTED_CURRENCY_VALUES, SUPPORTED_DATE_FORMATS, SUPPORTED_HOUR_CYCLES } from '../../../Constants/AddFieldConstantValues.js'\nimport * as FIELD_TYPES from '../../../Constants/FieldTypes.js'\nimport { getFieldStylesByType } from '../../../Constants/FieldTypeStyles.js'\nimport { RELATIONSHIP_DIRECTION_FORWARD } from '../../../Constants/LinkFieldConstants.js'\nimport * as FORMULA_RETURN_TYPES from '../../../Constants/FormulaReturnTypes.js'\nimport { decodeToAbsoluteDate, getDateStringToBeRendered, getTimeStringToBeRendered } from '../../../DateComponentEncoderDecoder.ts'\nimport { multiplyBy100 } from '../../../FieldTypeComponents/FieldTypeComponentsFormater'\nimport { getLocale } from '../../../Locale.js'\nimport { parseFormulaDataResponse, parseLookupDataResponse } from '../../../Utility/DataUtility.js'\nimport { wireLinkMultiSelectValueHolder } from '../../../Utility/LinkFieldCompactUtility.ts'\n\nconst Editor = globalThis.ZSGrid.FieldTypeComponents;\nconst ZSGrid = globalThis.ZSGrid;\nconst AutoNumber = Editor.AutoNumber;\nconst Attachment = Editor.Attachment;\nconst Checkbox = Editor.Checkbox;\nconst CreatedTime = Editor.CreatedTime;\nconst Currency = Editor.Currency;\nconst DateObject = Editor.Date;\nconst Email = Editor.Email;\nconst MultipleEmail = Editor.MultipleEmail;\nconst MultiplePhoneNumber = Editor.MultiplePhoneNumber;\nconst MultipleURL = Editor.MultipleURL;\nconst MultiSelect = Editor.MultiSelect;\nconst NumberObject = Editor.Number;\nconst Percent = Editor.Percent;\nconst PhoneNumber = Editor.PhoneNumber;\nconst Rating = Editor.Rating;\nconst SingleLineText = Editor.SingleLineText;\nconst SingleSelect = Editor.SingleSelect;\nconst URL = Editor.URL;\nconst CollaboratorSS = Editor.CollaboratorSS;\nconst CollaboratorMS = Editor.CollaboratorMS;\nconst LinkFieldMultiSelect = Editor.LinkFieldMultiSelect;\nconst LinkFieldSingleSelect = Editor.LinkFieldSingleSelect;\nconst Lookup = Editor.Lookup;\nconst CreatedBy = Editor.CreatedBy;\nconst ModifiedBy = Editor.ModifiedBy;\nconst Formula = Editor.Formula;\nconst SentimentalAnalysis   = Editor.SentimentalAnalysis;\nconst KeywordExtract        = Editor.KeywordExtract;\nconst LanguageDetection     = Editor.LanguageDetection;\nconst STROKE_STYLE = \"rgba(0,0,0,0)\"; //No I18N\n\nexport function getValueHolder(fieldType, fieldValue, fieldSpecifications, styles, LinkFieldInteracter) {\n\tswitch (fieldType) {\n\t\tcase FIELD_TYPES.AUTO_NUMBER: {\n\t\t\tstyles = getFieldStylesByType(FIELD_TYPES.TEXT, fieldSpecifications);\n\t\t\tvar locale = fieldSpecifications[0];\n\t\t\tvar thousandSeparator = fieldSpecifications[1];\n\t\t\tvar precision = fieldSpecifications[2];\n\t\t\tconst initialValue = fieldSpecifications[3];\n\t\t\tconst stepSize = fieldSpecifications[4];\n\t\t\tconst prefix = fieldSpecifications[5];\n\t\t\tconst suffix = fieldSpecifications[6];\n\t\t\tvar valueHolder = new AutoNumber.ValueHolder(fieldValue, locale, thousandSeparator, precision, initialValue, stepSize, prefix, suffix, styles);\n\t\t\treturn valueHolder;\n\t\t}\n\t\tcase FIELD_TYPES.ATTACHMENT: {\n\t\t\tconst attachmentIDs = getAttachmentIDs(fieldValue);\n\t\t\tconst attachmentURLs = getAttachmentURLs(fieldValue, LinkFieldInteracter);\n\t\t\tconst attachmentDS = getAttachmentsDS(attachmentIDs, LinkFieldInteracter);\n\t\t\tvalueHolder = new Attachment.ValueHolder(attachmentURLs, attachmentIDs, attachmentDS);\n\t\t\tvalueHolder.setSelectedIDs(attachmentIDs);\n\t\t\treturn valueHolder;\n\t\t}\n\n\t\tcase FIELD_TYPES.CHECKBOX:{\n\t\t\tconst value = getCheckbox(fieldValue);\n\t\t\tconst checkboxStyle = fieldSpecifications[0];\n\t\t\tvar fillStyle = fieldSpecifications[1];\n\t\t\tvar props = {};\n\t\t\tprops.fillStyle = fillStyle;\n\t\t\tprops.strokeStyle = STROKE_STYLE;\n\t\t\tvar valueHolder = new Checkbox.ValueHolder(value, checkboxStyle, props, styles);\n\t\t\treturn valueHolder;\n\t\t}\n\n\t\tcase FIELD_TYPES.CREATED_TIME:\n\t\tcase FIELD_TYPES.CREATED_TIME_CLIENT:\n\t\tcase FIELD_TYPES.MODIFIED_TIME:\n\t\tcase FIELD_TYPES.MODIFIED_TIME_CLIENT: {\n\t\t\tstyles = getFieldStylesByType(FIELD_TYPES.TEXT, fieldSpecifications);\n\t\t\tvar locale = fieldSpecifications[0];\n\t\t\tvar dateFormat = fieldSpecifications[1];\n\t\t\tvar timeFormat = fieldSpecifications[2];\n\t\t\tvar hourCycle = fieldSpecifications[3];\n\t\t\tconst timeZone = fieldSpecifications[4];\n\t\t\tvar valueHolder = new CreatedTime.ValueHolder(fieldValue, locale, dateFormat, timeFormat, hourCycle, timeZone, styles);\n\t\t\treturn valueHolder;\n\t\t}\n\n\t\tcase FIELD_TYPES.CURRENCY:\n\t\tcase FIELD_TYPES.CURRENCY_CLIENT: {\n\t\t\tstyles = getFieldStylesByType(FIELD_TYPES.TEXT, fieldSpecifications);\n\t\t\tvar locale = fieldSpecifications[0];\n\t\t\tconst currencySymbol = fieldSpecifications[1];\n\t\t\tvar thousandSeparator = fieldSpecifications[4];\n\t\t\tvar precision = fieldSpecifications[3];\n\t\t\tconst currencyPosition = fieldSpecifications[2];\n\t\t\tvar valueHolder = new Currency.ValueHolder(fieldValue, locale, currencySymbol, thousandSeparator, precision, currencyPosition, styles, false, false);\n\t\t\treturn valueHolder;\n\t\t}\n\n\t\tcase FIELD_TYPES.DATE_TIME:\n\t\tcase FIELD_TYPES.DATE_TIME_CLIENT:\n\t\t\tstyles = getFieldStylesByType(FIELD_TYPES.TEXT, fieldSpecifications);\n\t\t\tvar locale = fieldSpecifications[0];\n\t\t\tvar dateFormat = fieldSpecifications[1];\n\t\t\tvar timeFormat = fieldSpecifications[2];\n\t\t\tvar hourCycle = fieldSpecifications[3];\n\t\t\tconst timeZone = fieldSpecifications[4];\n\t\t\tvar valueHolder = new DateObject.ValueHolder(fieldValue, locale, dateFormat, timeFormat, hourCycle, timeZone, styles);\n\t\t\treturn valueHolder;\n\n\t\tcase FIELD_TYPES.EMAIL:\n\t\t\tvar allowMultiple = fieldSpecifications[0];\n\t\t\tstyles = getFieldStylesByType(FIELD_TYPES.EMAIL, fieldSpecifications);\n\t\t\tvar valueHolder;\n\n\t\t\tif (!allowMultiple) {\n\t\t\t\tvalueHolder = new Email.ValueHolder(fieldValue, styles);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tvar values = getMultipleValues(fieldValue);\n\t\t\t\tvar color = styles.optionColor;\n\t\t\t\tvalueHolder = new MultipleEmail.ValueHolder(values, styles, color);\n\t\t\t}\n\t\t\treturn valueHolder;\n\n\t\tcase FIELD_TYPES.MULTIPLE_SELECTION: {\n\t\t\tvar selectedIDs = getSelectedIDs(fieldValue);\n\t\t\tconst multiSelectID = fieldSpecifications[0];\n\t\t\tvar coloredOptions = fieldSpecifications[1];\n\t\t\tconst multiSelectDS = LinkFieldInteracter.getDataStore().getMultiSelectDS(multiSelectID);\n\t\t\tvar valueHolder = new MultiSelect.ValueHolder(selectedIDs, multiSelectDS, styles, multiSelectID, coloredOptions);\n\t\t\treturn valueHolder;\n\t\t}\n\n\t\tcase FIELD_TYPES.NUMBER:\n\t\tcase FIELD_TYPES.NUMBER_CLIENT:\n\t\t\tstyles = getFieldStylesByType(FIELD_TYPES.TEXT, fieldSpecifications);\n\t\t\tvar locale = fieldSpecifications[0];\n\t\t\tvar thousandSeparator = fieldSpecifications[1];\n\t\t\tvar precision = fieldSpecifications[2];\n\t\t\tvar valueHolder = new NumberObject.ValueHolder(fieldValue, locale, thousandSeparator, precision, styles);\n\t\t\treturn valueHolder;\n\n\t\tcase FIELD_TYPES.PERCENT:\n\t\tcase FIELD_TYPES.PERCENT_CLIENT: {\n\t\t\tstyles = getFieldStylesByType(FIELD_TYPES.TEXT, fieldSpecifications);\n\t\t\tvar locale = fieldSpecifications[0];\n\t\t\tvar thousandSeparator = fieldSpecifications[3];\n\t\t\tvar precision = fieldSpecifications[1];\n\t\t\tconst showSymbol = fieldSpecifications[2];\n\t\t\tvar valueHolder = new Percent.ValueHolder(multiplyBy100(fieldValue), locale, thousandSeparator, precision, showSymbol, styles);\n\t\t\treturn valueHolder;\n\t\t}\n\n\t\tcase FIELD_TYPES.PHONE_NUMBER:\n\t\tcase FIELD_TYPES.PHONE_NUMBER_CLIENT: {\n\t\t\tstyles = getFieldStylesByType(FIELD_TYPES.PHONE_NUMBER, fieldSpecifications);\n\t\t\tconst phoneNumberFormat = fieldSpecifications[0];\n\t\t\tvar allowMultiple = fieldSpecifications[1];\n\t\t\tvar valueHolder;\n\n\t\t\tif (!allowMultiple) {\n\t\t\t\tvalueHolder = new PhoneNumber.ValueHolder(fieldValue, phoneNumberFormat, styles);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tvar values = getMultipleValues(fieldValue);\n\t\t\t\tvar color = styles.optionColor;\n\t\t\t\tvalueHolder = new MultiplePhoneNumber.ValueHolder(values, phoneNumberFormat, styles, color)\n\t\t\t}\n\t\t\treturn valueHolder;\n\t\t}\n\n\t\tcase FIELD_TYPES.RATING: {\n\t\t\tconst rating = getRating(fieldValue);\n\t\t\tconst ratingStyle = fieldSpecifications[0];\n\t\t\tvar fillStyle = fieldSpecifications[1];\n\t\t\tconst maxCount = fieldSpecifications[2];\n\t\t\tvar props = {};\n\t\t\tprops.fillStyle = fillStyle;\n\t\t\tprops.strokeStyle = STROKE_STYLE;\n\t\t\tvar valueHolder = new Rating.ValueHolder(rating, ratingStyle, props, maxCount, styles);\n\t\t\treturn valueHolder;\n\t\t}\n\n\t\tcase FIELD_TYPES.SINGLE_SELECTION: {\n\t\t\tvar selectedID = getSelectedID(fieldValue);\n\t\t\tconst singleSelectID = fieldSpecifications[0];\n\t\t\tvar coloredOptions = fieldSpecifications[1];\n\t\t\tconst singleSelectDS = LinkFieldInteracter.getDataStore().getMultiSelectDS(singleSelectID);\n\t\t\tvar valueHolder = new SingleSelect.ValueHolder(selectedID, singleSelectDS, styles, singleSelectID, coloredOptions);\n\t\t\treturn valueHolder;\n\t\t}\n\n\t\tcase FIELD_TYPES.TEXT: {\n\t\t\tconst textFormat = fieldSpecifications[0];\n\t\t\tconst autoDetectHyperlink = fieldSpecifications[1];\n\t\t\tvar valueHolder = new SingleLineText.ValueHolder(fieldValue, textFormat, styles, autoDetectHyperlink);\n\t\t\treturn valueHolder;\n\t\t}\n\n\t\tcase FIELD_TYPES.URL: \n\t\t\tvar allowMultiple = fieldSpecifications[0];\n\t\t\tstyles = getFieldStylesByType(FIELD_TYPES.URL, fieldSpecifications);\n\t\t\tvar valueHolder;\n\n\t\t\tif (!allowMultiple) {\n\t\t\t\tvalueHolder = new URL.ValueHolder(fieldValue, styles);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tvar values = getMultipleValues(fieldValue);\n\t\t\t\tvar color = styles.optionColor;\n\t\t\t\tvalueHolder = new MultipleURL.ValueHolder(values, styles, color);\n\t\t\t}\n\t\t\treturn valueHolder;\n\n\t\tcase FIELD_TYPES.COLLABORATOR_CLIENT: {\n\t\t\tconst selectionType = fieldSpecifications[0];\n\t\t\tvar collaboratorDS = getCollaboratorDS(LinkFieldInteracter.getBaseID());\n\n\t\t\tvar valueHolder;\n\t\t\tif (selectionType === 0) { // single Selection\n\t\t\t\tvar selectedID = getSelectedID(fieldValue);\n\t\t\t\tvalueHolder = new CollaboratorSS.ValueHolder(selectedID, collaboratorDS, styles);\n\t\t\t} else { // multi Selection\n\t\t\t\tvar selectedIDs = getSelectedIDs(fieldValue);\n\t\t\t\tvalueHolder = new CollaboratorMS.ValueHolder(selectedIDs, collaboratorDS, styles);\n\t\t\t}\n\t\t\treturn valueHolder;\n\t\t}\n\n\t\tcase FIELD_TYPES.LINK: {\n\t\t\tvar valueHolder;\n\t\t\tvar oppositeFieldID = fieldSpecifications[0];\n\t\t\tconst oppositeViewID = fieldSpecifications[2];\n\t\t\tconst relationshipDirection = fieldSpecifications[3];\n\t\t\tvar relationshipID = fieldSpecifications[4];\n\t\t\tvar leafFieldParameters = fieldSpecifications[5];\n\t\t\tvar relationshipProperty = getRelationshipProperty(relationshipID, relationshipDirection, LinkFieldInteracter);\n\t\t\tvar allowMultiple = relationshipProperty[0];\n\t\t\tif (!allowMultiple) {\n\t\t\t\tvar metas = getLinkFieldMetas(LinkFieldInteracter.getBaseID(), fieldValue, leafFieldParameters, LinkFieldInteracter);\n\t\t\t\tvar recordID = metas[0][0];\n\t\t\t\tvar recordName = metas[1][0];\n\t\t\t\tvalueHolder = new LinkFieldSingleSelect.ValueHolder2(relationshipID, relationshipDirection, oppositeViewID, oppositeFieldID, leafFieldParameters, recordID, recordName, styles.optionColor, styles);\n\t\t\t} else {\n\t\t\t\tvar metas = getLinkFieldMetas(LinkFieldInteracter.getBaseID(), fieldValue, leafFieldParameters, LinkFieldInteracter);\n\t\t\t\tvar recordIDs = metas[0];\n\t\t\t\tvar recordNames = metas[1];\n\t\t\t\tvar recordCounts = metas[2];\n\t\t\t\tvalueHolder = new LinkFieldMultiSelect.ValueHolder2(relationshipID, relationshipDirection, oppositeViewID, oppositeFieldID, leafFieldParameters, recordIDs, recordNames, styles.optionColor, styles);\n\t\t\t\twireLinkMultiSelectValueHolder(valueHolder, recordIDs, recordCounts, !!fieldSpecifications[6]);\n\t\t\t}\n\t\t\treturn valueHolder;\n\t\t}\n\n\t\tcase FIELD_TYPES.LINK_CLIENT:\n\t\t\tvar valueHolder;\n\t\t\tvar relationshipID = fieldSpecifications[0];\n\t\t\tvar oppositeFieldID = fieldSpecifications[1];\n\t\t\tvar leafFieldParameters = fieldSpecifications[2];\n\t\t\tvar relationshipProperty = getRelationshipProperty(LinkFieldInteracter.getOppositeTableID(), relationshipID, LinkFieldInteracter);\n\t\t\tvar allowMultiple = relationshipProperty[0];\n\t\t\tif (!allowMultiple) {\n\t\t\t\tvar metas = getLinkFieldMetas(LinkFieldInteracter.getBaseID(), fieldValue, leafFieldParameters, LinkFieldInteracter);\n\t\t\t\tvar recordID = metas[0][0];\n\t\t\t\tvar recordName = metas[1][0];\n\t\t\t\tvalueHolder = new LinkFieldSingleSelect.ValueHolder(relationshipID, oppositeFieldID, leafFieldParameters, recordID, recordName, styles.optionColor, styles);\n\t\t\t} else {\n\t\t\t\tvar metas = getLinkFieldMetas(LinkFieldInteracter.getBaseID(), fieldValue, leafFieldParameters, LinkFieldInteracter);\n\t\t\t\tvar recordIDs = metas[0];\n\t\t\t\tvar recordNames = metas[1];\n\t\t\t\tvar recordCounts = metas[2];\n\t\t\t\tvalueHolder = new LinkFieldMultiSelect.ValueHolder(relationshipID, oppositeFieldID, leafFieldParameters, recordIDs, recordNames, styles.optionColor, styles);\n\t\t\t\twireLinkMultiSelectValueHolder(valueHolder, recordIDs, recordCounts, false);\n\t\t\t}\n\t\t\treturn valueHolder;\n\n\t\tcase FIELD_TYPES.CREATED_BY:\n\t\t\tvar collaboratorDS = getCollaboratorDS(LinkFieldInteracter.getBaseID());\n\t\t\tvar valueHolder = new CreatedBy.ValueHolder(fieldValue, collaboratorDS, styles);\n\t\t\treturn valueHolder;\n\n\t\tcase FIELD_TYPES.MODIFIED_BY:\n\t\t\tvar collaboratorDS = getCollaboratorDS(LinkFieldInteracter.getBaseID());\n\t\t\tvar valueHolder = new ModifiedBy.ValueHolder(fieldValue, collaboratorDS, styles);\n\t\t\treturn valueHolder;\n\n\t\tcase FIELD_TYPES.FORMULA: {\n\t\t\tstyles = getFieldStylesByType(FIELD_TYPES.TEXT, fieldSpecifications);\n\t\t\tconst formulaString = fieldSpecifications[0];\n\t\t\tconst formulaStatus = fieldSpecifications[1];\n\t\t\tconst formatArray = fieldSpecifications[2][0];\n\t\t\tconst returnType = formatArray[0];\n\t\t\tconst formats = formatArray[1];\n\n\t\t\tvar data = parseFormulaDataResponse(fieldValue);\n\n\t\t\tif (returnType === FORMULA_RETURN_TYPES.PERCENT) {\n\t\t\t\tdata = multiplyBy100(data);\n\t\t\t}\n\n\t\t\tvalueHolder = new Formula.ValueHolder(data, formulaString, formulaStatus, returnType, formats, styles);\n\t\t\treturn valueHolder;\n\t\t}\n\n\t\tcase FIELD_TYPES.LOOKUP:\n\t\t\tvar leafFieldParameters = fieldSpecifications[2];\n\t\t\tvar renderingType = fieldSpecifications[3];\n\t\t\tvar data = parseLookupDataResponse(fieldValue, leafFieldParameters, LinkFieldInteracter.getBaseID());\n\n\t\t\tvalueHolder = new Lookup.ValueHolder(data, renderingType, leafFieldParameters[1], styles.optionColor, styles, getCollaboratorDS(LinkFieldInteracter.getBaseID()));\n\t\t\treturn valueHolder;\n\n\t\tcase FIELD_TYPES.ROLLUP:\n\t\t\tvar leafFieldParameters = fieldSpecifications[4];\n\t\t\tvar renderingType = null;\n\t\t\tvar data = fieldValue ? [fieldValue] : []; // TODO: change\n\n\t\t\tvalueHolder = new Lookup.ValueHolder(data, renderingType, leafFieldParameters[1], styles.optionColor, styles, getCollaboratorDS(LinkFieldInteracter.getBaseID()));\n\t\t\treturn valueHolder;\n\t\t\t\n\t\tcase FIELD_TYPES.SENTIMENTAL_ANALYSIS:\n\t\t\tconst sentimentID   = fieldSpecifications[1];\n            const sentimentDS   = LinkFieldInteracter.getDataStore().getSentimentDS(sentimentID);\n            const sentimentMeta = sentimentDS.getSentimentsMeta(fieldValue);\n            valueHolder         = new SentimentalAnalysis.ValueHolder(sentimentMeta, [fieldValue], styles, sentimentDS);\n            return valueHolder;\n\n\t\tcase FIELD_TYPES.KEYWORD_EXTRACTION:\n\t\t\tvalueHolder = new KeywordExtract.ValueHolder(fieldValue, styles);\n\t\t\treturn valueHolder;\n\n\t\tcase FIELD_TYPES.LANGUAGE_DETECTOR:\n\t\t\tvalueHolder = new LanguageDetection.ValueHolder(fieldValue, fieldValue, styles);\n\t\t\treturn valueHolder;\n\t\t}\n}\n\nexport function getValueHolderWithDataStore(baseID, fieldType, fieldValue, fieldSpecifications, styles, dataStore) {\n\tswitch (fieldType) {\n\t\tcase FIELD_TYPES.AUTO_NUMBER: {\n\t\t\tstyles = getFieldStylesByType(FIELD_TYPES.TEXT, fieldSpecifications);\n\t\t\tvar locale = fieldSpecifications[0];\n\t\t\tvar thousandSeparator = fieldSpecifications[1];\n\t\t\tvar precision = fieldSpecifications[2];\n\t\t\tconst initialValue = fieldSpecifications[3];\n\t\t\tconst stepSize = fieldSpecifications[4];\n\t\t\tconst prefix = fieldSpecifications[5];\n\t\t\tconst suffix = fieldSpecifications[6];\n\t\t\tvar valueHolder = new AutoNumber.ValueHolder(fieldValue, locale, thousandSeparator, precision, initialValue, stepSize, prefix, suffix, styles);\n\t\t\treturn valueHolder;\n\t\t}\n\t\tcase FIELD_TYPES.ATTACHMENT: {\n\t\t\tconst attachmentIDs = getAttachmentIDs(fieldValue);\n\t\t\tconst attachmentURLs = getAttahcmentURLWithDataStore(fieldValue);\n\t\t\tconst attachmentDS = getAttachmentsDSWithDataStore(attachmentIDs, dataStore);\n\t\t\tvalueHolder = new Attachment.ValueHolder(attachmentURLs, attachmentIDs, attachmentDS);\n\t\t\tvalueHolder.setSelectedIDs(attachmentIDs);\n\t\t\treturn valueHolder;\n\t\t}\n\n\t\tcase FIELD_TYPES.CHECKBOX: {\n\t\t\tconst value = getCheckbox(fieldValue);\n\t\t\tconst checkboxStyle = fieldSpecifications[0];\n\t\t\tvar fillStyle = fieldSpecifications[1];\n\t\t\tvar props = {};\n\t\t\tprops.fillStyle = fillStyle;\n\t\t\tprops.strokeStyle = STROKE_STYLE;\n\t\t\tvar valueHolder = new Checkbox.ValueHolder(value, checkboxStyle, props, styles);\n\t\t\treturn valueHolder;\n\t\t}\n\n\t\tcase FIELD_TYPES.CREATED_TIME:\n\t\tcase FIELD_TYPES.CREATED_TIME_CLIENT:\n\t\tcase FIELD_TYPES.MODIFIED_TIME:\n\t\tcase FIELD_TYPES.MODIFIED_TIME_CLIENT: {\n\t\t\tstyles = getFieldStylesByType(FIELD_TYPES.TEXT, fieldSpecifications);\n\t\t\tvar locale = fieldSpecifications[0];\n\t\t\tvar dateFormat = fieldSpecifications[1];\n\t\t\tvar timeFormat = fieldSpecifications[2];\n\t\t\tvar hourCycle = fieldSpecifications[3];\n\t\t\tconst timeZone = fieldSpecifications[4];\n\t\t\tvar valueHolder = new CreatedTime.ValueHolder(fieldValue, locale, dateFormat, timeFormat, hourCycle, timeZone, styles);\n\t\t\treturn valueHolder;\n\t\t}\n\n\t\tcase FIELD_TYPES.CURRENCY:\n\t\tcase FIELD_TYPES.CURRENCY_CLIENT: {\n\t\t\tstyles = getFieldStylesByType(FIELD_TYPES.TEXT, fieldSpecifications);\n\t\t\tvar locale = fieldSpecifications[0];\n\t\t\tconst currencySymbol = fieldSpecifications[1];\n\t\t\tvar thousandSeparator = fieldSpecifications[4];\n\t\t\tvar precision = fieldSpecifications[3];\n\t\t\tconst currencyPosition = fieldSpecifications[2];\n\t\t\tvar valueHolder = new Currency.ValueHolder(fieldValue, locale, currencySymbol, thousandSeparator, precision, currencyPosition, styles, false, false);\n\t\t\treturn valueHolder;\n\t\t}\n\n\t\tcase FIELD_TYPES.DATE_TIME:\n\t\tcase FIELD_TYPES.DATE_TIME_CLIENT:\n\t\t\tstyles = getFieldStylesByType(FIELD_TYPES.TEXT, fieldSpecifications);\n\t\t\tvar locale = fieldSpecifications[0];\n\t\t\tvar dateFormat = fieldSpecifications[1];\n\t\t\tvar timeFormat = fieldSpecifications[2];\n\t\t\tvar hourCycle = fieldSpecifications[3];\n\t\t\tconst timeZone = fieldSpecifications[4];\n\t\t\tvar valueHolder = new DateObject.ValueHolder(fieldValue, locale, dateFormat, timeFormat, hourCycle, timeZone, styles);\n\t\t\treturn valueHolder;\n\n\t\tcase FIELD_TYPES.EMAIL:\n\t\t\tvar allowMultiple = fieldSpecifications[0];\n\t\t\tstyles = getFieldStylesByType(FIELD_TYPES.EMAIL, fieldSpecifications);\n\t\t\tvar valueHolder;\n\n\t\t\tif (!allowMultiple) {\n\t\t\t\tvalueHolder = new Email.ValueHolder(fieldValue, styles);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tvar values = getMultipleValues(fieldValue);\n\t\t\t\tvar color = styles.optionColor;\n\t\t\t\tvalueHolder = new MultipleEmail.ValueHolder(values, styles, color);\n\t\t\t}\n\t\t\treturn valueHolder;\n\n\t\tcase FIELD_TYPES.MULTIPLE_SELECTION: {\n\t\t\tvar selectedIDs = getSelectedIDs(fieldValue);\n\t\t\tconst multiSelectID = fieldSpecifications[0];\n\t\t\tvar coloredOptions = fieldSpecifications[1];\n\t\t\tconst multiSelectDS = dataStore.getMultiSelectDS(multiSelectID);\n\t\t\tvar valueHolder = new MultiSelect.ValueHolder(selectedIDs, multiSelectDS, styles, multiSelectID, coloredOptions);\n\t\t\treturn valueHolder;\n\t\t}\n\n\t\tcase FIELD_TYPES.NUMBER:\n\t\tcase FIELD_TYPES.NUMBER_CLIENT:\n\t\t\tstyles = getFieldStylesByType(FIELD_TYPES.TEXT, fieldSpecifications);\n\t\t\tvar locale = fieldSpecifications[0];\n\t\t\tvar thousandSeparator = fieldSpecifications[1];\n\t\t\tvar precision = fieldSpecifications[2];\n\t\t\tvar valueHolder = new NumberObject.ValueHolder(fieldValue, locale, thousandSeparator, precision, styles);\n\t\t\treturn valueHolder;\n\n\t\tcase FIELD_TYPES.PERCENT:\n\t\tcase FIELD_TYPES.PERCENT_CLIENT: {\n\t\t\tstyles = getFieldStylesByType(FIELD_TYPES.TEXT, fieldSpecifications);\n\t\t\tvar locale = fieldSpecifications[0];\n\t\t\tvar thousandSeparator = fieldSpecifications[3];\n\t\t\tvar precision = fieldSpecifications[1];\n\t\t\tconst showSymbol = fieldSpecifications[2];\n\t\t\tvar valueHolder = new Percent.ValueHolder(multiplyBy100(fieldValue), locale, thousandSeparator, precision, showSymbol, styles);\n\t\t\treturn valueHolder;\n\t\t}\n\n\t\tcase FIELD_TYPES.PHONE_NUMBER:\n\t\tcase FIELD_TYPES.PHONE_NUMBER_CLIENT: {\n\t\t\tstyles = getFieldStylesByType(FIELD_TYPES.PHONE_NUMBER, fieldSpecifications);\n\t\t\tconst phoneNumberFormat = fieldSpecifications[0];\n\t\t\tvar allowMultiple = fieldSpecifications[1];\n\t\t\tvar valueHolder;\n\n\t\t\tif (!allowMultiple) {\n\t\t\t\tvalueHolder = new PhoneNumber.ValueHolder(fieldValue, phoneNumberFormat, styles);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tvar values = getMultipleValues(fieldValue);\n\t\t\t\tvar color = styles.optionColor;\n\t\t\t\tvalueHolder = new MultiplePhoneNumber.ValueHolder(values, phoneNumberFormat, styles, color)\n\t\t\t}\n\t\t\treturn valueHolder;\n\t\t}\n\n\t\tcase FIELD_TYPES.RATING: {\n\t\t\tconst rating = getRating(fieldValue);\n\t\t\tconst ratingStyle = fieldSpecifications[0];\n\t\t\tvar fillStyle = fieldSpecifications[1];\n\t\t\tconst maxCount = fieldSpecifications[2];\n\t\t\tvar props = {};\n\t\t\tprops.fillStyle = fillStyle;\n\t\t\tprops.strokeStyle = STROKE_STYLE;\n\t\t\tvar valueHolder = new Rating.ValueHolder(rating, ratingStyle, props, maxCount, styles);\n\t\t\treturn valueHolder;\n\t\t}\n\n\t\tcase FIELD_TYPES.SINGLE_SELECTION: {\n\t\t\tvar selectedID = getSelectedID(fieldValue);\n\t\t\tconst singleSelectID = fieldSpecifications[0];\n\t\t\tvar coloredOptions = fieldSpecifications[1];\n\t\t\tconst singleSelectDS = dataStore.getMultiSelectDS(singleSelectID);\n\t\t\tvar valueHolder = new SingleSelect.ValueHolder(selectedID, singleSelectDS, styles, singleSelectID, coloredOptions);\n\t\t\treturn valueHolder;\n\t\t}\n\n\t\tcase FIELD_TYPES.TEXT: {\n\t\t\tconst textFormat = fieldSpecifications[0];\n\t\t\tconst autoDetectHyperlink = fieldSpecifications[1];\n\t\t\tvar valueHolder = new SingleLineText.ValueHolder(fieldValue, textFormat, styles, autoDetectHyperlink);\n\t\t\treturn valueHolder;\n\t\t}\n\n\t\tcase FIELD_TYPES.URL:\n\t\t\tvar allowMultiple = fieldSpecifications[0];\n\t\t\tstyles = getFieldStylesByType(FIELD_TYPES.URL, fieldSpecifications);\n\t\t\tvar valueHolder;\n\n\t\t\tif (!allowMultiple) {\n\t\t\t\tvalueHolder = new URL.ValueHolder(fieldValue, styles);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tvar values = getMultipleValues(fieldValue);\n\t\t\t\tvar color = styles.optionColor;\n\t\t\t\tvalueHolder = new MultipleURL.ValueHolder(values, styles, color);\n\t\t\t}\n\t\t\treturn valueHolder;\n\n\t\tcase FIELD_TYPES.COLLABORATOR_CLIENT: {\n\t\t\tconst selectionType = fieldSpecifications[0];\n\t\t\tvar collaboratorDS = getCollaboratorDS(baseID);\n\n\t\t\tvar valueHolder;\n\t\t\tif (selectionType === 0) { // single Selection\n\t\t\t\tvar selectedID = getSelectedID(fieldValue);\n\t\t\t\tvalueHolder = new CollaboratorSS.ValueHolder(selectedID, collaboratorDS, styles);\n\t\t\t} else { // multi Selection\n\t\t\t\tvar selectedIDs = getSelectedIDs(fieldValue);\n\t\t\t\tvalueHolder = new CollaboratorMS.ValueHolder(selectedIDs, collaboratorDS, styles);\n\t\t\t}\n\t\t\treturn valueHolder;\n\t\t}\n\n\t\tcase FIELD_TYPES.LINK: {\n\t\t\tvar valueHolder;\n\t\t\tvar oppositeFieldID = fieldSpecifications[0];\n\t\t\tconst oppositeViewID = fieldSpecifications[2];\n\t\t\tconst relationshipDirection = fieldSpecifications[3];\n\t\t\tvar relationshipID = fieldSpecifications[4];\n\t\t\tvar leafFieldParameters = fieldSpecifications[5];\n\t\t\tvar relationshipProperty = getRelationshipPropertyWithDataStore(relationshipID, relationshipDirection, dataStore);\n\t\t\tvar allowMultiple = relationshipProperty[0];\n\t\t\tif (!allowMultiple) {\n\t\t\t\tvar metas = getLinkFieldMetasWithDatastore(baseID, fieldValue, leafFieldParameters, dataStore);\n\t\t\t\tvar recordID = metas[0][0];\n\t\t\t\tvar recordName = metas[1][0];\n\t\t\t\tvalueHolder = new LinkFieldSingleSelect.ValueHolder2(relationshipID, relationshipDirection, oppositeViewID, oppositeFieldID, leafFieldParameters, recordID, recordName, styles.optionColor, styles);\n\t\t\t} else {\n\t\t\t\tvar metas = getLinkFieldMetasWithDatastore(baseID, fieldValue, leafFieldParameters, dataStore);\n\t\t\t\tvar recordIDs = metas[0];\n\t\t\t\tvar recordNames = metas[1];\n\t\t\t\tvar recordCounts = metas[2];\n\t\t\t\tvalueHolder = new LinkFieldMultiSelect.ValueHolder2(relationshipID, relationshipDirection, oppositeViewID, oppositeFieldID, leafFieldParameters, recordIDs, recordNames, styles.optionColor, styles);\n\t\t\t\twireLinkMultiSelectValueHolder(valueHolder, recordIDs, recordCounts, !!fieldSpecifications[6]);\n\t\t\t}\n\t\t\treturn valueHolder;\n\t\t}\n\n\t\tcase FIELD_TYPES.LINK_CLIENT:\n\t\t\tvar valueHolder;\n\t\t\tvar relationshipID = fieldSpecifications[0];\n\t\t\tvar oppositeFieldID = fieldSpecifications[1];\n\t\t\tvar leafFieldParameters = fieldSpecifications[2];\n\t\t\tvar relationshipProperty = getRelationshipPropertyWithDataStore(LinkFieldInteracter.getOppositeTableID(), relationshipID, dataStore);\n\t\t\tvar allowMultiple = relationshipProperty[0];\n\t\t\tif (!allowMultiple) {\n\t\t\t\tvar metas = getLinkFieldMetasWithDatastore(baseID, fieldValue, leafFieldParameters, dataStore);\n\t\t\t\tvar recordID = metas[0][0];\n\t\t\t\tvar recordName = metas[1][0];\n\t\t\t\tvalueHolder = new LinkFieldSingleSelect.ValueHolder(relationshipID, oppositeFieldID, leafFieldParameters, recordID, recordName, styles.optionColor, styles);\n\t\t\t} else {\n\t\t\t\tvar metas = getLinkFieldMetasWithDatastore(baseID, fieldValue, leafFieldParameters, dataStore);\n\t\t\t\tvar recordIDs = metas[0];\n\t\t\t\tvar recordNames = metas[1];\n\t\t\t\tvar recordCounts = metas[2];\n\t\t\t\tvalueHolder = new LinkFieldMultiSelect.ValueHolder(relationshipID, oppositeFieldID, leafFieldParameters, recordIDs, recordNames, styles.optionColor, styles);\n\t\t\t\twireLinkMultiSelectValueHolder(valueHolder, recordIDs, recordCounts, false);\n\t\t\t}\n\t\t\treturn valueHolder;\n\n\t\tcase FIELD_TYPES.CREATED_BY:\n\t\t\tvar collaboratorDS = getCollaboratorDS(baseID);\n\t\t\tvar valueHolder = new CreatedBy.ValueHolder(fieldValue, collaboratorDS, styles);\n\t\t\treturn valueHolder;\n\n\t\tcase FIELD_TYPES.MODIFIED_BY:\n\t\t\tvar collaboratorDS = getCollaboratorDS(baseID);\n\t\t\tvar valueHolder = new ModifiedBy.ValueHolder(fieldValue, collaboratorDS, styles);\n\t\t\treturn valueHolder;\n\n\t\tcase FIELD_TYPES.FORMULA: {\n\t\t\tstyles = getFieldStylesByType(FIELD_TYPES.TEXT, fieldSpecifications);\n\t\t\tconst formulaString = fieldSpecifications[0];\n\t\t\tconst formulaStatus = fieldSpecifications[1];\n\t\t\tconst formatArray = fieldSpecifications[2][0];\n\t\t\tconst returnType = formatArray[0];\n\t\t\tconst formats = formatArray[1];\n\n\t\t\tvar data = parseFormulaDataResponse(fieldValue);\n\n\t\t\tif (returnType === FORMULA_RETURN_TYPES.PERCENT) {\n\t\t\t\tdata = multiplyBy100(data);\n\t\t\t}\n\n\t\t\tvalueHolder = new Formula.ValueHolder(data, formulaString, formulaStatus, returnType, formats, styles);\n\t\t\treturn valueHolder;\n\t\t}\n\n\t\tcase FIELD_TYPES.LOOKUP:\n\t\t\tvar leafFieldParameters = fieldSpecifications[2];\n\t\t\tvar renderingType = fieldSpecifications[3];\n\t\t\tvar data = parseLookupDataResponse(fieldValue, leafFieldParameters, baseID);\n\n\t\t\tvalueHolder = new Lookup.ValueHolder(data, renderingType, leafFieldParameters[1], styles.optionColor, styles, getCollaboratorDS(baseID));\n\t\t\treturn valueHolder;\n\n\t\tcase FIELD_TYPES.ROLLUP:\n\t\t\tvar leafFieldParameters = fieldSpecifications[4];\n\t\t\tvar renderingType = null;\n\t\t\tvar data = fieldValue ? [fieldValue] : []; // TODO: change\n\n\t\t\tvalueHolder = new Lookup.ValueHolder(data, renderingType, leafFieldParameters[1], styles.optionColor, styles, getCollaboratorDS(baseID));\n\t\t\treturn valueHolder;\n\n\t\tcase FIELD_TYPES.SENTIMENTAL_ANALYSIS:\n\t\t\tconst sentimentID = fieldSpecifications[1];\n\t\t\tconst sentimentDS = dataStore.getSentimentDS(sentimentID);\n\t\t\tconst sentimentMeta = sentimentDS.getSentimentsMeta(fieldValue);\n\t\t\tvalueHolder = new SentimentalAnalysis.ValueHolder(sentimentMeta, [fieldValue], styles, sentimentDS);\n\t\t\treturn valueHolder;\n\n\t\tcase FIELD_TYPES.KEYWORD_EXTRACTION:\n\t\t\tvalueHolder = new KeywordExtract.ValueHolder(fieldValue, styles);\n\t\t\treturn valueHolder;\n\n\t\tcase FIELD_TYPES.LANGUAGE_DETECTOR:\n\t\t\tvalueHolder = new LanguageDetection.ValueHolder(fieldValue, fieldValue, styles);\n\t\t\treturn valueHolder;\n\t}\n}\n\nexport function getReadOnlyComponentWithDataStore(fieldType, fieldSpecifications, valueHolder, styles, dataStore) {\n\tswitch (fieldType) {\n\t\tcase FIELD_TYPES.AUTO_NUMBER:\n\t\tcase FIELD_TYPES.AUTO_NUMBER_CLIENT:\n\t\t\tvar component = new AutoNumber.SecondaryReadOnlyComponent();\n\t\t\tcomponent.setData(valueHolder);\n\t\t\tcomponent.setStyles(styles);\n\t\t\treturn component;\n\n\t\tcase FIELD_TYPES.ATTACHMENT:\n\t\t\tvar component = new Attachment.PrimaryReadWriteComponent();\n\t\t\tcomponent.setData(valueHolder);\n\t\t\treturn component;\n\n\t\tcase FIELD_TYPES.CHECKBOX:\n\t\t\tvar component = new Checkbox.PrimaryReadOnlyComponent();\n\t\t\tcomponent.setData(valueHolder);\n\t\t\treturn component;\n\n\t\tcase FIELD_TYPES.CREATED_TIME:\n\t\tcase FIELD_TYPES.CREATED_TIME_CLIENT:\n\t\tcase FIELD_TYPES.MODIFIED_TIME:\n\t\tcase FIELD_TYPES.MODIFIED_TIME_CLIENT: {\n\t\t\tconst hourCycle = fieldSpecifications[3];\n\t\t\tvar component = new CreatedTime.PrimaryReadOnlyComponent();\n\t\t\tif (!hourCycle) {\n\t\t\t\tcomponent.hideTime();\n\t\t\t} else {\n\t\t\t\tcomponent.showTime();\n\t\t\t}\n\t\t\tcomponent.setData(valueHolder);\n\t\t\tcomponent.setStyles(styles);\n\t\t\treturn component;\n\t\t}\n\n\t\tcase FIELD_TYPES.CURRENCY:\n\t\tcase FIELD_TYPES.CURRENCY_CLIENT:\n\t\t\tvar component = new Currency.PrimaryReadOnlyComponent();\n\t\t\tcomponent.setData(valueHolder);\n\t\t\tcomponent.setStyles(styles);\n\t\t\treturn component;\n\n\t\tcase FIELD_TYPES.DATE_TIME:\n\t\tcase FIELD_TYPES.DATE_TIME_CLIENT:\n\t\t\tvar component = new DateObject.PrimaryReadOnlyComponent();\n\t\t\tcomponent.setData(valueHolder);\n\t\t\tcomponent.setStyles(styles);\n\t\t\treturn component;\n\n\t\tcase FIELD_TYPES.EMAIL:\n\t\t\tvar allowMultiple = fieldSpecifications[0];\n\t\t\tvar component;\n\n\t\t\tif (!allowMultiple) { // single Selection\n\t\t\t\tcomponent = new Email.SecondaryReadOnlyComponent();\n\t\t\t\tcomponent.setData(valueHolder);\n\t\t\t\tcomponent.setStyles(styles);\n\t\t\t} else { // multi Selection\n\t\t\t\tcomponent = new MultipleEmail.PrimaryReadOnlyComponent();\n\t\t\t\tcomponent.setData(valueHolder);\n\t\t\t\tcomponent.setStyles(styles);\n\t\t\t}\n\t\t\treturn component;\n\n\t\tcase FIELD_TYPES.MULTIPLE_SELECTION:\n\t\t\tvar component = new MultiSelect.TertiaryReadOnlyComponent2();\n\t\t\tcomponent.setData(valueHolder);\n\t\t\treturn component;\n\n\t\tcase FIELD_TYPES.NUMBER:\n\t\tcase FIELD_TYPES.NUMBER_CLIENT:\n\t\t\tvar component = new NumberObject.SecondaryReadOnlyComponent();\n\t\t\tcomponent.setData(valueHolder);\n\t\t\tcomponent.setStyles(styles);\n\t\t\treturn component;\n\n\t\tcase FIELD_TYPES.PERCENT:\n\t\tcase FIELD_TYPES.PERCENT_CLIENT:\n\t\t\tvar component = new Percent.SecondaryReadOnlyComponent();\n\t\t\tcomponent.setData(valueHolder);\n\t\t\tcomponent.setStyles(styles);\n\t\t\treturn component;\n\n\t\tcase FIELD_TYPES.PHONE_NUMBER:\n\t\tcase FIELD_TYPES.PHONE_NUMBER_CLIENT:\n\t\t\tvar allowMultiple = fieldSpecifications[1];\n\t\t\tvar component;\n\n\t\t\tif (!allowMultiple) { // single Selection\n\t\t\t\tcomponent = new PhoneNumber.SecondaryReadOnlyComponent();\n\t\t\t\tcomponent.setData(valueHolder);\n\t\t\t\tcomponent.setStyles(styles);\n\t\t\t} else { // multi Selection\n\t\t\t\tcomponent = new MultiplePhoneNumber.PrimaryReadOnlyComponent();\n\t\t\t\tcomponent.setData(valueHolder);\n\t\t\t\tcomponent.setStyles(styles);\n\t\t\t}\n\t\t\treturn component;\n\n\t\tcase FIELD_TYPES.RATING:\n\t\t\tvar component = new Rating.PrimaryReadOnlyComponent();\n\t\t\tcomponent.setData(valueHolder);\n\t\t\treturn component;\n\n\t\tcase FIELD_TYPES.SINGLE_SELECTION:\n\t\t\tvar component = new SingleSelect.PrimaryReadOnlyComponent();\n\t\t\tcomponent.setData(valueHolder);\n\t\t\treturn component;\n\n\t\tcase FIELD_TYPES.TEXT:\n\t\t\tvar component = new SingleLineText.SecondaryReadOnlyComponent();\n\t\t\tcomponent.setData(valueHolder);\n\t\t\tcomponent.setStyles(styles);\n\t\t\treturn component;\n\n\t\tcase FIELD_TYPES.URL:\n\t\t\tvar allowMultiple = fieldSpecifications[0];\n\t\t\tvar component;\n\n\t\t\tif (!allowMultiple) { // single Selection\n\t\t\t\tcomponent = new URL.SecondaryReadOnlyComponent();\n\t\t\t\tcomponent.setData(valueHolder);\n\t\t\t\tcomponent.setStyles(styles);\n\t\t\t} else { // multi Selection\n\t\t\t\tcomponent = new MultipleURL.PrimaryReadOnlyComponent();\n\t\t\t\tcomponent.setData(valueHolder);\n\t\t\t\tcomponent.setStyles(styles);\n\t\t\t}\n\t\t\treturn component;\n\n\t\tcase FIELD_TYPES.COLLABORATOR_CLIENT: {\n\t\t\tconst selectionType = fieldSpecifications[0];\n\t\t\tvar component;\n\n\t\t\tif (selectionType === 0) { // single Selection\n\t\t\t\tcomponent = new CollaboratorSS.GridReadOnlyComponent();\n\t\t\t\tcomponent.setData(valueHolder);\n\t\t\t\tcomponent.setStyles(styles);\n\t\t\t} else { // multi Selection\n\t\t\t\tcomponent = new CollaboratorMS.GridReadOnlyComponent();\n\t\t\t\tcomponent.setData(valueHolder);\n\t\t\t\tcomponent.setStyles(styles);\n\t\t\t}\n\t\t\treturn component;\n\t\t}\n\n\t\tcase FIELD_TYPES.LINK: {\n\t\t\tvar component;\n\t\t\tvar relationshipID = fieldSpecifications[4];\n\t\t\tconst relationshipDirection = fieldSpecifications[3];\n\t\t\tvar relationshipProperty = getRelationshipPropertyWithDataStore(relationshipID, relationshipDirection, dataStore);\n\t\t\tvar allowMultiple = relationshipProperty[0];\n\t\t\tif (!allowMultiple) {\n\t\t\t\tcomponent = new LinkFieldSingleSelect.PrimaryReadOnlyComponent();\n\t\t\t} else {\n\t\t\t\tcomponent = new LinkFieldMultiSelect.PrimaryReadOnlyComponent();\n\t\t\t}\n\t\t\tcomponent.setData(valueHolder);\n\t\t\tcomponent.setStyles(styles);\n\t\t\treturn component;\n\t\t}\n\n\t\tcase FIELD_TYPES.LINK_CLIENT:\n\t\t\tvar component;\n\t\t\tvar relationshipID = fieldSpecifications[0];\n\t\t\tvar relationshipProperty = getRelationshipPropertyWithDataStore(LinkFieldInteracter.getOppositeTableID(), relationshipID, dataStore);\n\t\t\tvar allowMultiple = relationshipProperty[0];\n\t\t\tif (!allowMultiple) {\n\t\t\t\tcomponent = new LinkFieldSingleSelect.PrimaryReadOnlyComponent();\n\t\t\t} else {\n\t\t\t\tcomponent = new LinkFieldMultiSelect.PrimaryReadOnlyComponent();\n\t\t\t}\n\t\t\tcomponent.setData(valueHolder);\n\t\t\tcomponent.setStyles(styles);\n\t\t\treturn component;\n\n\t\tcase FIELD_TYPES.CREATED_BY:\n\t\t\tvar component = new CreatedBy.GridReadOnlyComponent();\n\t\t\tcomponent.setData(valueHolder);\n\t\t\tcomponent.setStyles(styles);\n\t\t\treturn component;\n\n\t\tcase FIELD_TYPES.MODIFIED_BY:\n\t\t\tvar component = new ModifiedBy.GridReadOnlyComponent();\n\t\t\tcomponent.setData(valueHolder);\n\t\t\treturn component;\n\n\t\tcase FIELD_TYPES.FORMULA:\n\t\t\tvar component = new Formula.GridReadOnlyComponent();\n\t\t\tcomponent.setFormattedData(valueHolder);\n\t\t\tcomponent.setStyles(styles);\n\t\t\treturn component;\n\n\t\tcase FIELD_TYPES.LOOKUP:\n\t\t\tvar component = new Lookup.PrimaryReadOnlyComponent();\n\t\t\tcomponent.setData(valueHolder);\n\t\t\tcomponent.setStyles(styles);\n\t\t\treturn component;\n\n\t\tcase FIELD_TYPES.ROLLUP:\n\t\t\tvar component = new Lookup.PrimaryReadOnlyComponent();\n\t\t\tcomponent.setData(valueHolder);\n\t\t\tcomponent.setStyles(styles);\n\t\t\treturn component;\n\n\t\tcase FIELD_TYPES.SENTIMENTAL_ANALYSIS:\n\t\t\tcomponent   = new SentimentalAnalysis.PrimaryReadOnlyComponent();\n\t\t\tcomponent.setData(valueHolder);\n\t\t\tcomponent.setStyles(styles);\n\t\t\treturn component;\n\n\t\tcase FIELD_TYPES.KEYWORD_EXTRACTION:\n\t\t\tcomponent   = new KeywordExtract.GridReadOnlyComponent();\n\t\t\tcomponent.setData(valueHolder);\n\t\t\tcomponent.setStyles(styles);\n\t\t\treturn component;\n\n\t\tcase FIELD_TYPES.LANGUAGE_DETECTOR:\n\t\t\tcomponent   = new LanguageDetection.GridReadOnlyComponent();\n\t\t\tcomponent.setData(valueHolder);\n\t\t\tcomponent.setStyles(styles);\n\t\t\treturn component;\n\t}\n}\n\nexport function getReadOnlyComponent(fieldType, fieldSpecifications, valueHolder, styles, LinkFieldInteracter) {\n\tswitch (fieldType) {\n\t\tcase FIELD_TYPES.AUTO_NUMBER:\n\t\tcase FIELD_TYPES.AUTO_NUMBER_CLIENT:\n\t\t\tvar component = new AutoNumber.SecondaryReadOnlyComponent();\n\t\t\tcomponent.setData(valueHolder);\n\t\t\tcomponent.setStyles(styles);\n\t\t\treturn component;\n\n\t\tcase FIELD_TYPES.ATTACHMENT:\n\t\t\tvar component = new Attachment.PrimaryReadWriteComponent();\n\t\t\tcomponent.setData(valueHolder);\n\t\t\treturn component;\n\n\t\tcase FIELD_TYPES.CHECKBOX:\n\t\t\tvar component = new Checkbox.PrimaryReadOnlyComponent();\n\t\t\tcomponent.setData(valueHolder);\n\t\t\treturn component;\n\n\t\tcase FIELD_TYPES.CREATED_TIME:\n\t\tcase FIELD_TYPES.CREATED_TIME_CLIENT:\n\t\tcase FIELD_TYPES.MODIFIED_TIME:\n\t\tcase FIELD_TYPES.MODIFIED_TIME_CLIENT: {\n\t\t\tconst hourCycle = fieldSpecifications[3];\n\t\t\tvar component = new CreatedTime.PrimaryReadOnlyComponent();\n\t\t\tif (!hourCycle) {\n\t\t\t\tcomponent.hideTime();\n\t\t\t} else {\n\t\t\t\tcomponent.showTime();\n\t\t\t}\n\t\t\tcomponent.setData(valueHolder);\n\t\t\tcomponent.setStyles(styles);\n\t\t\treturn component;\n\t\t}\n\n\t\tcase FIELD_TYPES.CURRENCY:\n\t\tcase FIELD_TYPES.CURRENCY_CLIENT:\n\t\t\tvar component = new Currency.PrimaryReadOnlyComponent();\n\t\t\tcomponent.setData(valueHolder);\n\t\t\tcomponent.setStyles(styles);\n\t\t\treturn component;\n\n\t\tcase FIELD_TYPES.DATE_TIME:\n\t\tcase FIELD_TYPES.DATE_TIME_CLIENT:\n\t\t\tvar component = new DateObject.PrimaryReadOnlyComponent();\n\t\t\tcomponent.setData(valueHolder);\n\t\t\tcomponent.setStyles(styles);\n\t\t\treturn component;\n\n\t\tcase FIELD_TYPES.EMAIL:\n\t\t\tvar allowMultiple = fieldSpecifications[0];\n\t\t\tvar component;\n\n\t\t\tif (!allowMultiple) { // single Selection\n\t\t\t\tcomponent = new Email.SecondaryReadOnlyComponent();\n\t\t\t\tcomponent.setData(valueHolder);\n\t\t\t\tcomponent.setStyles(styles);\n\t\t\t} else { // multi Selection\n\t\t\t\tcomponent = new MultipleEmail.PrimaryReadOnlyComponent();\n\t\t\t\tcomponent.setData(valueHolder);\n\t\t\t\tcomponent.setStyles(styles);\n\t\t\t}\n\t\t\treturn component;\n\n\t\tcase FIELD_TYPES.MULTIPLE_SELECTION:\n\t\t\tvar component = new MultiSelect.TertiaryReadOnlyComponent2();\n\t\t\tcomponent.setData(valueHolder);\n\t\t\treturn component;\n\n\t\tcase FIELD_TYPES.NUMBER:\n\t\tcase FIELD_TYPES.NUMBER_CLIENT:\n\t\t\tvar component = new NumberObject.SecondaryReadOnlyComponent();\n\t\t\tcomponent.setData(valueHolder);\n\t\t\tcomponent.setStyles(styles);\n\t\t\treturn component;\n\n\t\tcase FIELD_TYPES.PERCENT:\n\t\tcase FIELD_TYPES.PERCENT_CLIENT:\n\t\t\tvar component = new Percent.SecondaryReadOnlyComponent();\n\t\t\tcomponent.setData(valueHolder);\n\t\t\tcomponent.setStyles(styles);\n\t\t\treturn component;\n\n\t\tcase FIELD_TYPES.PHONE_NUMBER:\n\t\tcase FIELD_TYPES.PHONE_NUMBER_CLIENT:\n\t\t\tvar allowMultiple = fieldSpecifications[1];\n\t\t\tvar component;\n\n\t\t\tif (!allowMultiple) { // single Selection\n\t\t\t\tcomponent = new PhoneNumber.SecondaryReadOnlyComponent();\n\t\t\t\tcomponent.setData(valueHolder);\n\t\t\t\tcomponent.setStyles(styles);\n\t\t\t} else { // multi Selection\n\t\t\t\tcomponent = new MultiplePhoneNumber.PrimaryReadOnlyComponent();\n\t\t\t\tcomponent.setData(valueHolder);\n\t\t\t\tcomponent.setStyles(styles);\n\t\t\t}\n\t\t\treturn component;\n\n\t\tcase FIELD_TYPES.RATING:\n\t\t\tvar component = new Rating.PrimaryReadOnlyComponent();\n\t\t\tcomponent.setData(valueHolder);\n\t\t\treturn component;\n\n\t\tcase FIELD_TYPES.SINGLE_SELECTION:\n\t\t\tvar component = new SingleSelect.PrimaryReadOnlyComponent();\n\t\t\tcomponent.setData(valueHolder);\n\t\t\treturn component;\n\n\t\tcase FIELD_TYPES.TEXT:\n\t\t\tvar component = new SingleLineText.SecondaryReadOnlyComponent();\n\t\t\tcomponent.setData(valueHolder);\n\t\t\tcomponent.setStyles(styles);\n\t\t\treturn component;\n\n\t\tcase FIELD_TYPES.URL:\n\t\t\tvar allowMultiple = fieldSpecifications[0];\n\t\t\tvar component;\n\n\t\t\tif (!allowMultiple) { // single Selection\n\t\t\t\tcomponent = new URL.SecondaryReadOnlyComponent();\n\t\t\t\tcomponent.setData(valueHolder);\n\t\t\t\tcomponent.setStyles(styles);\n\t\t\t} else { // multi Selection\n\t\t\t\tcomponent = new MultipleURL.PrimaryReadOnlyComponent();\n\t\t\t\tcomponent.setData(valueHolder);\n\t\t\t\tcomponent.setStyles(styles);\n\t\t\t}\n\t\t\treturn component;\n\n\t\tcase FIELD_TYPES.COLLABORATOR_CLIENT: {\n\t\t\tconst selectionType = fieldSpecifications[0];\n\t\t\tvar component;\n\n\t\t\tif (selectionType === 0) { // single Selection\n\t\t\t\tcomponent = new CollaboratorSS.GridReadOnlyComponent();\n\t\t\t\tcomponent.setData(valueHolder);\n\t\t\t\tcomponent.setStyles(styles);\n\t\t\t} else { // multi Selection\n\t\t\t\tcomponent = new CollaboratorMS.GridReadOnlyComponent();\n\t\t\t\tcomponent.setData(valueHolder);\n\t\t\t\tcomponent.setStyles(styles);\n\t\t\t}\n\t\t\treturn component;\n\t\t}\n\n\t\tcase FIELD_TYPES.LINK: {\n\t\t\tvar component;\n\t\t\tvar relationshipID = fieldSpecifications[4];\n\t\t\tconst relationshipDirection = fieldSpecifications[3];\n\t\t\tvar relationshipProperty = getRelationshipProperty(relationshipID, relationshipDirection, LinkFieldInteracter);\n\t\t\tvar allowMultiple = relationshipProperty[0];\n\t\t\tif (!allowMultiple) {\n\t\t\t\tcomponent = new LinkFieldSingleSelect.PrimaryReadOnlyComponent();\n\t\t\t} else {\n\t\t\t\tcomponent = new LinkFieldMultiSelect.PrimaryReadOnlyComponent();\n\t\t\t}\n\t\t\tcomponent.setData(valueHolder);\n\t\t\tcomponent.setStyles(styles);\n\t\t\treturn component;\n\t\t}\n\n\t\tcase FIELD_TYPES.LINK_CLIENT:\n\t\t\tvar component;\n\t\t\tvar relationshipID = fieldSpecifications[0];\n\t\t\tvar relationshipProperty = getRelationshipProperty(LinkFieldInteracter.getOppositeTableID(), relationshipID, LinkFieldInteracter);\n\t\t\tvar allowMultiple = relationshipProperty[0];\n\t\t\tif (!allowMultiple) {\n\t\t\t\tcomponent = new LinkFieldSingleSelect.PrimaryReadOnlyComponent();\n\t\t\t} else {\n\t\t\t\tcomponent = new LinkFieldMultiSelect.PrimaryReadOnlyComponent();\n\t\t\t}\n\t\t\tcomponent.setData(valueHolder);\n\t\t\tcomponent.setStyles(styles);\n\t\t\treturn component;\n\n\t\tcase FIELD_TYPES.CREATED_BY:\n\t\t\tvar component = new CreatedBy.GridReadOnlyComponent();\n\t\t\tcomponent.setData(valueHolder);\n\t\t\tcomponent.setStyles(styles);\n\t\t\treturn component;\n\n\t\tcase FIELD_TYPES.MODIFIED_BY:\n\t\t\tvar component = new ModifiedBy.GridReadOnlyComponent();\n\t\t\tcomponent.setData(valueHolder);\n\t\t\treturn component;\n\n\t\tcase FIELD_TYPES.FORMULA:\n\t\t\tvar component = new Formula.GridReadOnlyComponent();\n\t\t\tcomponent.setFormattedData(valueHolder);\n\t\t\tcomponent.setStyles(styles);\n\t\t\treturn component;\n\n\t\tcase FIELD_TYPES.LOOKUP:\n\t\t\tvar component = new Lookup.PrimaryReadOnlyComponent();\n\t\t\tcomponent.setData(valueHolder);\n\t\t\tcomponent.setStyles(styles);\n\t\t\treturn component;\n\n\t\tcase FIELD_TYPES.ROLLUP:\n\t\t\tvar component = new Lookup.PrimaryReadOnlyComponent();\n\t\t\tcomponent.setData(valueHolder);\n\t\t\tcomponent.setStyles(styles);\n\t\t\treturn component;\n\n\t\tcase FIELD_TYPES.SENTIMENTAL_ANALYSIS:\n\t\t\tcomponent   = new SentimentalAnalysis.PrimaryReadOnlyComponent();\n\t\t\tcomponent.setData(valueHolder);\n\t\t\tcomponent.setStyles(styles);\n\t\t\treturn component;\n\n\t\tcase FIELD_TYPES.KEYWORD_EXTRACTION:\n\t\t\tcomponent   = new KeywordExtract.GridReadOnlyComponent();\n\t\t\tcomponent.setData(valueHolder);\n\t\t\tcomponent.setStyles(styles);\n\t\t\treturn component;\n\n\t\tcase FIELD_TYPES.LANGUAGE_DETECTOR:\n\t\t\tcomponent   = new LanguageDetection.GridReadOnlyComponent();\n\t\t\tcomponent.setData(valueHolder);\n\t\t\tcomponent.setStyles(styles);\n\t\t\treturn component;\n\t}\n}\n\nfunction getRating(fieldValue) {\n\tlet number = globalThis.Number(fieldValue);\n\t!number && (number = 0);\n\treturn number;\n}\n\nfunction getSelectedID(fieldValue) {\n\tlet selectedID;\n\tif (fieldValue === 'null') {//No I18N\n\t\tselectedID = null;\n\t} else {\n\t\tselectedID = fieldValue;\n\t\t!selectedID && (selectedID = null);\n\t}\n\treturn selectedID;\n}\n\nfunction getSelectedIDs(fieldValue) {\n\tlet selectedIDs = fieldValue.split(',');\n\tlet selectedID;\n\tfor (let i = 0; i < selectedIDs.length; i++) {\n\t\tselectedID = selectedIDs[i];\n\t\tif (!selectedID) {\n\t\t\tselectedIDs = [];\n\t\t\tbreak;\n\t\t} else {\n\t\t\tselectedIDs[i] = selectedID;\n\t\t}\n\t}\n\treturn selectedIDs;\n}\n\nfunction getCheckbox(fieldValue) {\n\tif (!fieldValue) {\n\t\treturn 0;\n\t}\n\treturn 1;\n}\n\nfunction getAttachmentIDs(fieldValue) {\n\tconst value = fieldValue ? JSON.parse(fieldValue) : [];\n\tif (value.length) {\n\t\tconst attachmentIDs = [];\n\n\t\tfor (let attachmentInfo of value) {\n\t\t\tconst attachmentID = attachmentInfo[0];\n\t\t\tattachmentIDs.push(attachmentID);\n\t\t}\n\n\t\treturn attachmentIDs;\n\t}\n\treturn [];\n}\n\nfunction getAttachmentURLs(fieldValue, LinkFieldInteracter) {\n\tconst value = fieldValue ? JSON.parse(fieldValue) : [];\n\tif (value.length) {\n\t\tconst attachmentURLs = [];\n\n\t\tfor (let attachmentInfo of value) {\n\t\t\tconst attachmentID = attachmentInfo[0];\n\n\t\t\tconst attachment = LinkFieldInteracter.getDataStore().getAttachmentDS(attachmentID);\n\t\t\tif (attachment) { //temporary fix\n\t\t\t\tattachment.setFileName(attachmentInfo[1]);\n\t\t\t\t// attachment.setFileExtension(attachmentInfo[2]);\n\t\t\t\tconst url = attachment && attachment.imgSrc;\n\t\t\t\tif (url && url !== '') {\n\t\t\t\t\tattachmentURLs.push(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn attachmentURLs;\n\t}\n\treturn [];\n}\n\nfunction getAttahcmentURLWithDataStore(fieldValue, dataStore) {\n\tconst value = fieldValue ? JSON.parse(fieldValue) : [];\n\tif (value.length) {\n\t\tconst attachmentURLs = [];\n\n\t\tfor (let attachmentInfo of value) {\n\t\t\tconst attachmentID = attachmentInfo[0];\n\n\t\t\tconst attachment = dataStore.getAttachmentDS(attachmentID);\n\t\t\tif (attachment) { //temporary fix\n\t\t\t\tattachment.setFileName(attachmentInfo[1]);\n\t\t\t\t// attachment.setFileExtension(attachmentInfo[2]);\n\t\t\t\tconst url = attachment && attachment.imgSrc;\n\t\t\t\tif (url && url !== '') {\n\t\t\t\t\tattachmentURLs.push(url);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn attachmentURLs;\n\t}\n\treturn [];\n}\n\nfunction getLinkFieldMetas(baseID, fieldValue, leafFieldParameters, LinkFieldInteracter) {\n\tif (fieldValue) {\n\t\tconst array = JSON.parse(fieldValue);\n\t\tconst recordIDs = array[0];\n\t\tconst dataArray = array[1];\n\t\tconst counts = array[2];\n\t\tconst recordNames = [];\n\n\t\tconst dataArrayLength = dataArray.length;\n\t\tlet formattedData;\n\t\tfor (let i = 0; i < dataArrayLength; i++) {\n\n\t\t\tformattedData = getLinkFieldFormattedData(baseID, dataArray[i], leafFieldParameters, LinkFieldInteracter.getDataStore());\n\t\t\trecordNames.push(formattedData);\n\t\t}\n\t\treturn [recordIDs, recordNames, counts];\n\t}\n\treturn [[], [], []];\n}\n\nfunction getLinkFieldMetasWithDatastore(baseID, fieldValue, leafFieldParameters, dataStore) {\n\tif (fieldValue) {\n\t\tconst array = JSON.parse(fieldValue);\n\t\tconst recordIDs = array[0];\n\t\tconst dataArray = array[1];\n\t\tconst counts = array[2];\n\t\tconst recordNames = [];\n\n\t\tconst dataArrayLength = dataArray.length;\n\t\tlet formattedData;\n\t\tfor (let i = 0; i < dataArrayLength; i++) {\n\n\t\t\tformattedData = getLinkFieldFormattedData(baseID, dataArray[i], leafFieldParameters, dataStore);\n\t\t\trecordNames.push(formattedData);\n\t\t}\n\t\treturn [recordIDs, recordNames, counts];\n\t}\n\treturn [[], [], []];\n}\n\nfunction getLinkFieldFormattedData(baseID, rawData, leafFieldParameters, datastore) {\n\tconst fieldType = leafFieldParameters[0];\n\tconst fieldSpecifications = leafFieldParameters[1];\n\n\tlet formattedData = rawData;\n\tswitch (fieldType) {\n\t\tcase FIELD_TYPES.AUTO_NUMBER:{\n\t\t\tconst initialValue = fieldSpecifications[0];\n\t\t\tconst stepSize = fieldSpecifications[1];\n\t\t\tconst prefix = fieldSpecifications[2];\n\t\t\tconst suffix = fieldSpecifications[3];\n\n\t\t\tlet rawDataArray = rawData.split(\",\");\n\t\t\tfor (let i = 0; i < rawDataArray.length; i++) {\n\t\t\t\trawDataArray[i] = ZSGrid.autoNumberFormatter(rawDataArray[i], getLocale(), ADD_FIELD_AUTO_NUMBER_THOUSAND_SEPARATOR, ADD_FIELD_AUTO_NUMBER_PRECISION, initialValue, stepSize, prefix, suffix);\n\t\t\t}\n\n\t\t\tformattedData = rawDataArray.join();\n\t\t\tbreak;\n\t\t}\n\t\tcase FIELD_TYPES.ATTACHMENT:{\n\t\t\tlet data;\n\t\t\ttry {\n\t\t\t\tdata = JSON.parse(rawData);\n\t\t\t} catch (err) {\n\t\t\t\treturn rawData;\n\t\t\t}\n\n\t\t\tif (data.length) {\n\t\t\t\tconst fileNames = [];\n\t\t\t\tfor (var i = 0; i < data.length; i++) {\n\t\t\t\t\tconst fileExtension = datastore.getAttachmentDS(data[i][0]).getFileExtension();\n\t\t\t\t\tfileNames[i] = `${data[i][1]}.${fileExtension}`;\n\t\t\t\t}\n\t\t\t\tformattedData = fileNames.join();\n\t\t\t} else {\n\t\t\t\tformattedData = '';\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\t\tcase FIELD_TYPES.DATE_TIME:{\n\t\t\tconst dateFormat = fieldSpecifications[0];\n\t\t\tconst timeFormat = fieldSpecifications[1];\n\t\t\t// const timeZone   = DataUtility.getTimeZone(baseID);\n\n\t\t\tlet rawDataArray = rawData.split(\",\");\n\t\t\tlet data;\n\t\t\tlet formattedDate;\n\t\t\tlet formattedTime;\n\t\t\tfor (var i = 0; i < rawDataArray.length; i++) {\n\n\t\t\t\tdata = rawDataArray[i];\n\t\t\t\t// formattedDate = ZSGrid.dateFormatter(data, getLocale(), SUPPORTED_DATE_FORMATS[dateFormat], timeZone);\n\t\t\t\t// rawDataArray[i] = formattedDate;\n\n\t\t\t\t// working\n\t\t\t\tconst absoluteDate = decodeToAbsoluteDate(data);\n\t\t\t\tconst formattedDate = (!absoluteDate) ? '' : getDateStringToBeRendered(absoluteDate, getLocale(), SUPPORTED_DATE_FORMATS[dateFormat]);\n\t\t\t\trawDataArray[i] = formattedDate;\n\n\t\t\t\tif (timeFormat) {\n\t\t\t\t\t// formattedTime = ZSGrid.timeFormatter(data, getLocale(), ADD_FIELD_TIME_FORMAT, SUPPORTED_HOUR_CYCLES[timeFormat], timeZone);\n\t\t\t\t\t// rawDataArray[i] += ` ${formattedTime}`;\n\n\t\t\t\t\t// working\n\t\t\t\t\tformattedTime = (!absoluteDate) ? '' : getTimeStringToBeRendered(absoluteDate, getLocale(), ADD_FIELD_TIME_FORMAT, SUPPORTED_HOUR_CYCLES[timeFormat]);\n\t\t\t\t\trawDataArray[i] += ` ${formattedTime}`;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tformattedData = rawDataArray.join();\n\n\t\t\tbreak;\n\n\t\t}\n\n\t\tcase FIELD_TYPES.MODIFIED_TIME:\n\t\tcase FIELD_TYPES.CREATED_TIME:{\n\t\t\tconst dateFormat = fieldSpecifications[0];\n\t\t\tconst timeFormat = fieldSpecifications[1];\n\t\t\t// const timeZone   = getTimeZone(baseID);\n\n\t\t\tlet rawDataArray = rawData.split(\",\");\n\t\t\tlet data;\n\t\t\tlet formattedDate;\n\t\t\tlet formattedTime;\n\t\t\tfor (var i = 0; i < rawDataArray.length; i++) {\n\n\t\t\t\tdata = rawDataArray[i];\n\t\t\t\t// formattedDate = ZSGrid.dateFormatter(data, getLocale(), SUPPORTED_DATE_FORMATS[dateFormat], timeZone);\n\t\t\t\t// rawDataArray[i] = formattedDate;\n\n\t\t\t\t// working\n\t\t\t\tconst absoluteDate = decodeToAbsoluteDate(data);\n\t\t\t\tconst formattedDate = (!absoluteDate) ? '' : getDateStringToBeRendered(absoluteDate, getLocale(), SUPPORTED_DATE_FORMATS[dateFormat]);\n\t\t\t\trawDataArray[i] = formattedDate;\n\n\t\t\t\tif (timeFormat) {\n\t\t\t\t\t// formattedTime = ZSGrid.timeFormatter(data, getLocale(), ADD_FIELD_TIME_FORMAT, SUPPORTED_HOUR_CYCLES[timeFormat], timeZone);\n\t\t\t\t\t// rawDataArray[i] += ` ${formattedTime}`;\n\n\t\t\t\t\t// working\n\t\t\t\t\tformattedTime = (!absoluteDate) ? '' : getTimeStringToBeRendered(absoluteDate, getLocale(), ADD_FIELD_TIME_FORMAT, SUPPORTED_HOUR_CYCLES[timeFormat]);\n\t\t\t\t\trawDataArray[i] += ` ${formattedTime}`;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tformattedData = rawDataArray.join();\n\n\t\t\tbreak;\n\n\t\t}\n\t\tcase FIELD_TYPES.CURRENCY: {\n\t\t\tconst currency = fieldSpecifications[0];\n\t\t\tlet position = fieldSpecifications[1];\n\t\t\tconst precision = fieldSpecifications[2];\n\t\t\tconst thousandSeparator = fieldSpecifications[3];\n\n\t\t\tlet symbol = SUPPORTED_CURRENCY_VALUES[currency];\n\n\t\t\tif (position === ADD_FIELD_CURRENCY_POSITIONS_BEFORE) {\n\t\t\t\tsymbol += ' ';\n\t\t\t} else {\n\t\t\t\tsymbol = ` ${symbol}`;\n\t\t\t}\n\n\t\t\tvar locale;\n\t\t\tif (currency === ADD_FIELD_CURRENCIES_INR) {\n\t\t\t\tlocale = 'en-IN'; // No I18N\n\t\t\t} else if(currency === ADD_FIELD_CURRENCIES_CHF) {\n\t\t\t\tlocale = 'de-DE'; // No I18N\n\t\t\t}else if(currency === ADD_FIELD_CURRENCIES_ZAR){\n\t\t\t\tlocale = 'af-ZA';\n\t\t\t}else {\n\t\t\t\tlocale = getLocale();\n\t\t\t}\n\n\t\t\tswitch (position) {\n\t\t\t\tcase ADD_FIELD_CURRENCY_POSITIONS_BEFORE:\n\t\t\t\t\tposition = ZSGrid.CURRENCY_POSITION.START;\n\t\t\t\t\tbreak;\n\t\t\t\tcase ADD_FIELD_CURRENCY_POSITIONS_AFTER:\n\t\t\t\t\tposition = ZSGrid.CURRENCY_POSITION.END;\n\t\t\t\t\tbreak;\n\t\t\t\tcase ADD_FIELD_CURRENCY_POSITIONS_ACCOUNTING:\n\t\t\t\t\tposition = ZSGrid.CURRENCY_POSITION.ACCOUNTING;\n\t\t\t\t\tbreak;\n\t\t\t\tcase ADD_FIELD_CURRENCY_POSITIONS_NONE:\n\t\t\t\t\tposition = ZSGrid.CURRENCY_POSITION.NONE;\n\t\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tlet rawDataArray = rawData.split(\",\");\n\t\t\tfor (let i = 0; i < rawDataArray.length; i++) {\n\t\t\t\trawDataArray[i] = ZSGrid.currencyFormatter(rawDataArray[i], locale, symbol, thousandSeparator, precision, position, false);\n\t\t\t}\n\n\t\t\tformattedData = rawDataArray.join();\n\t\t\tbreak;\n\t\t}\n\t\tcase FIELD_TYPES.EMAIL:\n\t\tcase FIELD_TYPES.URL:\n\t\t\tbreak;\n\n\t\tcase FIELD_TYPES.NUMBER:{\n\t\t\tconst precision = fieldSpecifications[0];\n\t\t\tconst thousandSeparator = fieldSpecifications[1];\n\n\t\t\tlet rawDataArray = rawData.split(\",\");\n\t\t\tfor (let i = 0; i < rawDataArray.length; i++) {\n\t\t\t\trawDataArray[i] = ZSGrid.numberFormatter(rawDataArray[i], getLocale(), thousandSeparator, precision);\n\t\t\t}\n\n\t\t\tformattedData = rawDataArray.join();\n\n\t\t\tbreak;\n\t\t}\n\t\tcase FIELD_TYPES.PERCENT: {\n\t\t\tconst precision = fieldSpecifications[0];\n\t\t\tconst showSymbol = fieldSpecifications[1];\n\t\t\tconst thousandSeparator = fieldSpecifications[2];\n\n\t\t\tlet rawDataArray = rawData.split(\",\");\n\t\t\tfor (let i = 0; i < rawDataArray.length; i++) {\n\t\t\t\trawDataArray[i] = ZSGrid.percentFormatter(multiplyBy100(rawDataArray[i]), getLocale(), thousandSeparator, precision, showSymbol);\n\t\t\t}\n\n\t\t\tformattedData = rawDataArray.join();\n\n\t\t\tbreak;\n\t\t}\n\t\tcase FIELD_TYPES.PHONE_NUMBER:{\n\t\t\tconst format = fieldSpecifications[0];\n\n\t\t\tlet rawDataArray = rawData.split(\",\");\n\t\t\tfor (let i = 0; i < rawDataArray.length; i++) {\n\t\t\t\trawDataArray[i] = ZSGrid.phoneNumberFormatter(rawDataArray[i], format);\n\t\t\t}\n\n\t\t\tformattedData = rawDataArray.join();\n\n\t\t\tbreak;\n\t\t}\n\t\tcase FIELD_TYPES.TEXT:{\n\t\t\tconst format = fieldSpecifications[0];\n\n\t\t\tlet rawDataArray = rawData.split(\",\");\n\t\t\tfor (var i = 0; i < rawDataArray.length; i++) {\n\t\t\t\trawDataArray[i] = ZSGrid.singleLineTextFormatter(rawDataArray[i], format);\n\t\t\t}\n\n\t\t\tformattedData = rawDataArray.join();\n\n\t\t\tbreak;\n\t\t}\n\t\tcase FIELD_TYPES.CHECKBOX:{\n\t\t\tif (!rawData) {\n\t\t\t\tformattedData = '0';\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\n\t\tcase FIELD_TYPES.RATING: {\n\t\t\tif (!rawData) {\n\t\t\t\tformattedData = '0';\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\n\t\tcase FIELD_TYPES.MULTIPLE_SELECTION:\n\t\tcase FIELD_TYPES.SINGLE_SELECTION:{\n\t\t\tif (rawData) {\n\t\t\t\tconst multiSelectID = fieldSpecifications[1];\n\t\t\t\tconst multiSelectDS = datastore.getMultiSelectDS(multiSelectID);\n\n\t\t\t\tconst optionIDs = rawData.split(\",\");\n\t\t\t\tfor (let j = 0; j < optionIDs.length; j++) {\n\t\t\t\t\tif (optionIDs[j] === \"\") {\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t}\n\t\t\t\t\toptionIDs[j] = multiSelectDS.getName(optionIDs[j]);\n\t\t\t\t}\n\n\t\t\t\tformattedData = optionIDs.join();\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\n\t\tcase FIELD_TYPES.COLLABORATOR_CLIENT:\n\t\tcase FIELD_TYPES.CREATED_BY:\n\t\tcase FIELD_TYPES.MODIFIED_BY: {\n\t\t\tif (rawData) {\n\t\t\t\tconst collaboratorDS = getCollaboratorDS(baseID);\n\n\t\t\t\tconst userIDs = rawData.split(\",\");\n\t\t\t\tlet userID;\n\t\t\t\tfor (var j = 0; j < userIDs.length; j++) {\n\n\t\t\t\t\tuserID = userIDs[j];\n\t\t\t\t\tif(!userID) { // This check is added coz in link field which points to collaboratorMultiSelect field, if the data is \" , , ID1, ID2, , \" then, empty strings should be neglected\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (collaboratorDS.isActiveUser(userID)) {\n\t\t\t\t\t\tuserIDs[j] = collaboratorDS.getActiveUserName(userID);\n\t\t\t\t\t} else if (collaboratorDS.isInactiveUser(userID)) {\n\t\t\t\t\t\tuserIDs[j] = collaboratorDS.getInactiveUserName(userID);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tuserIDs[j] = collaboratorDS.getRemovedUserName(userID);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tformattedData = userIDs.join();\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\n\t\tcase FIELD_TYPES.FORMULA: {\n\t\t\tif (rawData) {\n\t\t\t\tconst formatArray = fieldSpecifications[2][0];\n\t\t\t\tconst returnType  = formatArray[0];\n\t\t\t\tconst formats     = formatArray[1];\n\n\t\t\t\tconst data = parseFormulaDataResponse(rawData);\n\t\t\t\tconst dataArray = data.split(\",\");\n\n\t\t\t\tformattedData = getFormulaFormattedData(dataArray, returnType, formats, baseID).join();\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\t\tcase FIELD_TYPES.LOOKUP: {\n\t\t\tformattedData = getLinkFieldFormattedData(baseID, rawData, fieldSpecifications[2]);\n\t\t\tbreak;\n\t\t}\n\t}\n\treturn formattedData;\n}\n\nfunction getAttachmentsDS(attachmentIDs, LinkFieldInteracter) {\n\tconst attachmentDS = new Map();\n\tif (attachmentIDs.length) {\n\t\tattachmentIDs.forEach(attachmentID => {\n\t\t\tconst attachment = LinkFieldInteracter.getDataStore().getAttachmentDS(attachmentID);\n\t\t\tattachmentDS.set(attachmentID, attachment);\n\t\t});\n\t}\n\treturn attachmentDS;\n}\n\nfunction getAttachmentsDSWithDataStore(attachmentIDs, dataStore) {\n\tconst attachmentDS = new Map();\n\tif (attachmentIDs.length) {\n\t\tattachmentIDs.forEach(attachmentID => {\n\t\t\tconst attachment = dataStore.getAttachmentDS(attachmentID);\n\t\t\tattachmentDS.set(attachmentID, attachment);\n\t\t});\n\t}\n\treturn attachmentDS;\n}\n\n\nfunction getCollaboratorDS(baseID) {\n\tconst base = Table.Data.Workspace.get(baseID);\n\treturn base.getCollaboratorDS();\n}\n\nfunction getRelationshipPropertyWithDataStore(relationshipID, relationshipDirection, dataStore) {\n\n    const relationship = dataStore.getRelationship(relationshipID);\n\tconst sourceTableAllowMultiple = relationship.getSourceTableAllowMultiple()\n\tconst destinationTableAllowMultiple = relationship.getDestinationTableAllowMultiple()\n\tconst isForwardDirection = Number(relationshipDirection) === RELATIONSHIP_DIRECTION_FORWARD;\n\tconst allowMultiple = isForwardDirection ? sourceTableAllowMultiple : destinationTableAllowMultiple\n\tconst allowRepeated = isForwardDirection ? destinationTableAllowMultiple : sourceTableAllowMultiple\n\n\treturn [allowMultiple, allowRepeated];\n}\n\nfunction getRelationshipProperty(relationshipID, relationshipDirection, LinkFieldInteracter) {\n\n    const relationship = LinkFieldInteracter.getDataStore().getRelationship(relationshipID);\n\tconst sourceTableAllowMultiple = relationship.getSourceTableAllowMultiple()\n\tconst destinationTableAllowMultiple = relationship.getDestinationTableAllowMultiple()\n\tconst isForwardDirection = Number(relationshipDirection) === RELATIONSHIP_DIRECTION_FORWARD;\n\tconst allowMultiple = isForwardDirection ? sourceTableAllowMultiple : destinationTableAllowMultiple\n\tconst allowRepeated = isForwardDirection ? destinationTableAllowMultiple : sourceTableAllowMultiple\n\n\treturn [allowMultiple, allowRepeated];\n}\n\nfunction getMultipleValues(values) {\n\tconst array = values.split(','); //No I18N\n\tif (array.length === 1 && array[0] === '') {\n\t\treturn [];\n\t}\n\treturn array;\n}\n\nfunction getBaseColor(baseID) {\n\tconst base = Table.Data.Workspace.get(baseID);\n\treturn `#${base.getColor()}`;\n}\n\n","import { getFieldStylesByType } from \"../../../Constants/FieldTypeStyles.js\";\nimport { getFieldTypeSpecificationsByInstance } from \"../../../DataStore/DS/Storage/fieldType/FieldTypeSpecifications.js\";\nimport { getValueHolder } from \"../../../Dom/Middle/LinkField/LinkFieldReadOnlyComponentUtility.js\";\n\nexport class LinkDataProvider implements ILinkDataProvider{\n\n    private linkFieldConfig : any;\n    private linkDataStore : any;\n\n    constructor(linkFieldConfig : any) {\n        this.linkFieldConfig = linkFieldConfig;\n    }\n\n    getOppositeViewID() : string {\n        return this.linkFieldConfig.oppositeViewID;\n    }\n\n    canCreateNewRecord() : boolean {\n        const isDraftRow = this.linkFieldConfig.isDraftRow;\n        return !isDraftRow;\n    }\n\n    getRelationshipDirection() : string {\n        return this.linkFieldConfig.relationshipDirection;\n    }\n\n    getRelationshipID() : string {\n        return this.linkFieldConfig.relationshipID;\n    }\n\n    getAllowDuplicateLinkedRecords() : boolean {\n        return !!this.linkFieldConfig.allowDuplicateLinkedRecords;\n    }\n\n    getCellDataProvider() : any {\n        const cellDataProvider = this.linkFieldConfig.cellDataProvider;\n        return cellDataProvider;\n    }\n\n    getFieldId() : string {\n        const cellDataProvider = this.getCellDataProvider();\n        const fieldID = cellDataProvider.getFieldMeta().get('fieldID');\n        return fieldID;\n    }\n\n    getFetchLinkFieldRecordMeta() : CallableFunction {\n        const cellDataProvider = this.getCellDataProvider();\n        return cellDataProvider.fetchLinkFieldRecordMeta.bind(cellDataProvider);\n    }\n\n    setLinkDataStore(linkDataStore: any): void {\n        this.linkDataStore = linkDataStore;\n    }\n\n    getLinkDataStore() : any{\n        return this.linkDataStore;\n    }\n\n    getFormattedValue(recordId: string, fieldId: string)  {\n        const fieldValue = this.getData(recordId, fieldId);\n        const fieldMeta = this.linkDataStore.fieldMeta.get(fieldId);\n        const formattedValue : any = this.getFormattedFieldValue(fieldId, fieldValue);\n        // if(fieldMeta){\n        //     const fieldType = fieldMeta.getType();\n            // switch(fieldType.getType()){\n            //     case FIELD_TYPES.AUTO_NUMBER:{\n            //         return this.getFormattedFieldValue(fieldId, fieldValue);\n            //     }\n            //     default:\n            //         return fieldValue;\n            // }\n        // }\n        return formattedValue;\n    }\n\n    getData(recordId: string, fieldId: string) {\n        const data = this.linkDataStore.getData(recordId, fieldId);\n        return data;\n    }\n\n    getLinkedRecordIds() : string[] {\n       const recordIds = this.linkDataStore.getRecordIDs();\n       return recordIds;\n    }\n\n    getLinkedRecordCounts() : number[] {\n        return this.linkDataStore.getSelectedRecordCountsArray();\n    }\n\n    getPrimaryFieldId(): string {\n        const primaryFieldId = this.linkDataStore.getFieldIDs()[0];\n        return primaryFieldId;\n    }\n\n    getMultiSelectOptionColor(): string {\n        const color = this.linkFieldConfig.styles.optionColor;\n        return color;\n    }\n\n    getLinkedFieldIds(): string[] {\n        const fieldIds = this.linkDataStore.getFieldIDs();\n        return fieldIds;\n    }\n\n    getLinkedFieldMetas() : any {\n        const fieldMeta = this.linkDataStore.getFieldMeta();\n        return fieldMeta;\n    }\n\n    getCurrentFieldMeta(fieldId : string) : any {\n        const fieldMeta = this.getCellDataProvider().getFieldMeta(fieldId);\n        return fieldMeta;\n    }\n\n    getLinkedFieldMeta(fieldId : string) : any {\n        const fieldMeta = this.linkDataStore.getFieldMeta(fieldId);\n        return fieldMeta;\n    }\n\n    getLinkedRecordCount(): number {\n        const recordCount = this.getLinkedRecordIds().length;\n        return recordCount;\n    }\n\n    getBaseID(): string {\n        const baseId =  this.getCellDataProvider().getBaseID();\n        return baseId;\n    }\n\n    updateCellData(recordId: string, fieldId: string, data: any): void {\n        const fieldCellDataProvider = this.linkFieldConfig.fieldCellEventHandler;\n        fieldCellDataProvider.updateCellData(recordId, fieldId, data);\n    }\n\n    getFieldCellEventHandler() : any {\n        const fieldCellEventHandler = this.linkFieldConfig.fieldCellEventHandler;\n        return fieldCellEventHandler;\n    }\n\n    getAlreadySelectedIds(): string[] {\n        return this.linkFieldConfig.selectedRecordIDs;\n    }\n\n    getAlreadySelectedValues(): string[] {\n        return this.linkFieldConfig.selectedRecordValues;\n    }\n\n    getAlreadySelectedCounts(): number[] {\n        return this.linkFieldConfig.selectedRecordCounts;\n    }\n\n    getMultiSelectConfiguration() : any {\n        const config = this.linkFieldConfig.multiSelectConfiguration;\n        return config;\n    }\n\n    getTableID(): string {\n        const cellDataProvider = this.getCellDataProvider();\n        const tableID = cellDataProvider.getTableID();\n        return tableID;\n    }\n\n    getViewID(): string {\n        const cellDataProvider = this.getCellDataProvider();\n        const viewID = cellDataProvider.getViewID();\n        return viewID;\n    }\n\n    getLeafFieldParameters(): any {\n        const leafFieldParameters = this.linkFieldConfig.leafFieldParameters;\n        return leafFieldParameters;\n    }\n\n    getCreateNewLinkRecord(): any {\n        const fieldCellEventHandler = this.getFieldCellEventHandler();\n        return fieldCellEventHandler.createNewLinkRecord;\n    }\n\n    getCurrentFieldId(): string {\n        const fieldId = this.linkFieldConfig.currentFieldID;\n        return fieldId;\n    }\n\n    getCurrentRecordId(): string {\n        const recordId = this.linkFieldConfig.currentRecordID;\n        return recordId;\n    }\n\n    stopEditing(): void {\n        const stopEditing = this.getFieldCellEventHandler().stopEditing;\n        stopEditing();\n    }\n\n    getLinkedRecordIndex(recordId: string): number {\n        const recordIds = this.getLinkedRecordIds();\n        const index = recordIds.indexOf(recordId);\n        return index\n    }\n\n    getLinkedRecordID(index : number): string {\n        const recordIds = this.getLinkedRecordIds();\n        return recordIds[index];\n    }\n\n    openRecordView(baseID : string, oppositeTableID : string, oppositeViewID : string, recordData : string) : void {\n        const fieldCellEventHandler = this.getFieldCellEventHandler();\n        fieldCellEventHandler.openRecordView(baseID, oppositeTableID, oppositeViewID, recordData);\n    }\n\n    getFormattedFieldValue(fieldId : string, fieldValue : any) : any {\n        const fieldMeta = this.getLinkedFieldMeta(fieldId);\n        const fieldInstance = fieldMeta.getType();\n        const fieldType = fieldInstance.getType();\n\n        const fieldTypeSpecification = getFieldTypeSpecificationsByInstance(fieldInstance);\n        const styles = getFieldStylesByType(fieldType, fieldTypeSpecification);\n        const valueHolder = getValueHolder(fieldType, fieldValue, fieldTypeSpecification, styles, this.getLinkFieldInteracter());\n        const formattedString = valueHolder.toFormattedString();\n        return formattedString;\n    }\n\n    getLinkFieldInteracter() {\n        return {\n            getDataStore : () => {\n                return this.linkDataStore;\n            },\n            getBaseID: () => {\n                return this.getBaseID();\n            }\n        }\n    }\n\n    getSelectedRecordIds() : string[] {\n        const ids = this.linkDataStore.getSelectedRecordIDs();\n        return ids;\n    }\n}\n\nexport interface ILinkDataProvider {\n    canCreateNewRecord() : boolean;\n\n    getFormattedValue(recordId: string, fieldId: string): any; //will be modified\n\n    getOppositeViewID() : string;\n\n    getRelationshipDirection() : string;\n\n    getRelationshipID() : string;\n\n    getAllowDuplicateLinkedRecords() : boolean;\n\n    getCellDataProvider() : any;\n\n    setLinkDataStore(linkDataStore : any) : void;\n\n    getLinkDataStore() : any; \n    \n    getFieldId() : string;\n\n    getFetchLinkFieldRecordMeta() : CallableFunction;\n\n    getData(recordId : string, fieldId : string) : any;\n\n    getPrimaryFieldId() : string;\n\n    getLinkedRecordCounts() : number[];\n    getLinkedRecordIds() : string[];\n\n    getLinkedFieldIds() : string[];\n\n    getMultiSelectOptionColor() : string;\n\n    getLinkedRecordCount() : number;\n\n    getLinkedFieldMetas() : any;\n\n    getCurrentFieldMeta(fieldId : string) : any;\n\n    getLinkedFieldMeta(fieldId : string) : any;\n\n    updateCellData(recordId : string, fieldId : string, data : any) : void;\n\n    getBaseID() : string;\n\n    getFieldCellEventHandler() : any;\n\n    getAlreadySelectedIds() : string[];\n\n    getAlreadySelectedValues() : string[];\n\n    getAlreadySelectedCounts() : number[];\n\n    getMultiSelectConfiguration() : any;\n\n    getTableID() : string;\n\n    getViewID() : string;\n\n    getLeafFieldParameters() : any;\n\n    getCreateNewLinkRecord() : any;\n\n    getCurrentFieldId() : string;\n\n    getCurrentRecordId() : string;\n\n    stopEditing() : void;\n\n    getLinkedRecordIndex(recordId : string) : number;\n\n    getLinkedRecordID(index : number): string;\n\n    getFormattedFieldValue(fieldId : string, fieldValue : any) : void;\n\n    getSelectedRecordIds() : string[];\n\n}","let uriCounter = 0;\n\nexport const REFRESH_TILE                 = uriCounter++\nexport const REGISTER_TAB                 = uriCounter++  // unused\nexport const UNREGISTER_TAB               = uriCounter++  // unused\nexport const RELOAD_BASE                  = uriCounter++\nexport const PARSE_RESPONSE               = uriCounter++\nexport const SUBMIT                       = uriCounter++\nexport const DELETE_RECORD                = uriCounter++\nexport const HIDE_FIELD                   = uriCounter++\nexport const UNHIDE_FIELD                 = uriCounter++\nexport const ALTER_FIELD_ORDER            = uriCounter++\nexport const ALTER_GRID_RECORD_ORDER      = uriCounter++\nexport const ALTER_RECORD_ORDER           = uriCounter++\nexport const FIELD_META                   = uriCounter++\nexport const FIELD_WIDTH                  = uriCounter++\nexport const ALTER_RECORD_HEIGHT          = uriCounter++\nexport const DELETE_FIELD                 = uriCounter++\nexport const DUPLICATE_FIELD              = uriCounter++\nexport const DUPLICATE_WITHOUT_DATA_FIELD = uriCounter++\nexport const INSERT_FIELD_AFTER           = uriCounter++\nexport const INSERT_FIELD_BEFORE          = uriCounter++\nexport const UPDATE_FIELD_EPHI_STATE      = uriCounter++\n\nexport const CLEAR_RECORD = uriCounter++\nexport const CLEAR_FIELD  = uriCounter++\nexport const CLEAR_RANGE  = uriCounter++\n\nexport const INSERT_FIELD_AFTER_2  = uriCounter++\nexport const INSERT_FIELD_BEFORE_2 = uriCounter++\n\nexport const CREATE_FIELD_WITH_RELATIONSHIP_AFTER  = uriCounter++\nexport const CREATE_FIELD_WITH_RELATIONSHIP_BEFORE = uriCounter++\n\nexport const DUPLICATE_RECORD             = uriCounter++\nexport const INSERT_RECORD_AFTER          = uriCounter++\nexport const INSERT_RECORD_GRID_AFTER          = uriCounter++\nexport const INSERT_RECORD_BEFORE         = uriCounter++\nexport const INSERT_RECORD_GRID_BEFORE         = uriCounter++\nexport const TABLE_META                   = uriCounter++\nexport const DELETE_TABLE                 = uriCounter++\nexport const DUPLICATE_TABLE              = uriCounter++\nexport const DUPLICATE_TABLE_WITHOUT_DATA = uriCounter++\nexport const INSERT_TABLE                 = uriCounter++\nexport const SWITCH_TABLE                 = uriCounter++\nexport const VIEW_META                    = uriCounter++\nexport const VIEW_ORDER                   = uriCounter++\nexport const DELETE_VIEW                  = uriCounter++\nexport const DUPLICATE_VIEW               = uriCounter++\nexport const COPY_VIEW_CONFIG             = uriCounter++\nexport const CREATE_VIEW                  = uriCounter++\nexport const INSERT_VIEW_AFTER            = uriCounter++\nexport const INSERT_VIEW_BEFORE           = uriCounter++\nexport const SWITCH_VIEW                  = uriCounter++\nexport const ALTER_SUMMARY_BAR            = uriCounter++\nexport const LOAD_BASE                    = uriCounter++\nexport const LOAD_TABLE                   = uriCounter++\nexport const LOAD_DATA                    = uriCounter++\nexport const LOAD_DATA_AVAILABLE          = uriCounter++\nexport const LOAD_TABLE_DATA              = uriCounter++\nexport const LOAD_DATA_COLOR              = uriCounter++\nexport const LOAD_VIEW                    = uriCounter++\nexport const FETCH_ACTIVITY_LOG_INFO      = uriCounter++\nexport const GET_IMPORT_PROPERTIES        = uriCounter++\n// export const ADD_RECORD                = uriCounter++\nexport const RESIZE_RECORD             = uriCounter++\nexport const ALTER_TABLE_ORDER         = uriCounter++\nexport const EXPORT_BASE               = uriCounter++\nexport const EXPORT_TABLE              = uriCounter++\nexport const EXPORT_VIEW               = uriCounter++\nexport const EXPORT_GROUP              = uriCounter++\nexport const EXPORT_RECORD             = uriCounter++ // TODO: Remove this as it not used anywhere\nexport const COLLAB_REGISTER           = uriCounter++\nexport const WORKER_CONNECTION_START   = uriCounter++\nexport const WORKER_CONNECTION_END     = uriCounter++\nexport const WORKER_CONNECTION_MESSAGE = uriCounter++\n\nexport const UNDO = uriCounter++\nexport const REDO = uriCounter++\n\nexport const REGISTER_GRID_VIEWPORT = uriCounter++\nexport const REGISTER_GALLERY_VIEWPORT = uriCounter++\nexport const REGISTER_CALENDAR_VIEWPORT = uriCounter++\nexport const REGISTER_KANBAN_VIEWPORT = uriCounter++\nexport const REGISTER_GANTT_VIEWPORT = uriCounter++\nexport const REGISTER_RECORD_VIEW_VIEWPORT = uriCounter++\nexport const REGISTER_LINKED_RECORD_VIEWPORT = uriCounter++\nexport const REGISTER_LIST_VIEWPORT = uriCounter++\nexport const REGISTER_SNAP_VIEWPORT = uriCounter++\n// export const REGISTER_KANBAN_ANCHOR_VIEWPORT = uriCounter++\nexport const REGISTER_KANBAN_STACK_VIEWPORT = uriCounter++\nexport const UNREGISTER_KANBAN_STACK_VIEWPORT = uriCounter++\nexport const UNREGISTER_KANBAN_ANCHOR_VIEWPORT = uriCounter++\nexport const UNREGISTER_GRID_VIEWPORT          = uriCounter++\nexport const UNREGISTER_GANTT_VIEWPORT          = uriCounter++\nexport const UNREGISTER_GALLERY_VIEWPORT       = uriCounter++\nexport const UNREGISTER_CALENDAR_VIEWPORT      = uriCounter++\nexport const UNREGISTER_LIST_VIEWPORT          = uriCounter++\nexport const UNREGISTER_DATA          = uriCounter++\nexport const UNREGISTER_DATA_META     = uriCounter++\nexport const UNREGISTER_SNAP_META     = uriCounter++\n\nexport const REGISTER_RECORD_VIEWPORT   = uriCounter++\nexport const UNREGISTER_RECORD_VIEWPORT = uriCounter++\nexport const UNREGISTER_LINKED_RECORD_VIEWPORT = uriCounter++\nexport const REGISTER_DATA = uriCounter++\nexport const REGISTER_CACHE = uriCounter++\nexport const CHECK_DATA = uriCounter++\nexport const REGISTER_VIEWBITSET = uriCounter++\n\nexport const DELETE_UNIT_SORT      = uriCounter++\nexport const ALTER_META_UNIT_SORT  = uriCounter++\nexport const INSERT_UNIT_SORT      = uriCounter++\nexport const ALTER_ORDER_UNIT_SORT = uriCounter++\n\nexport const CREATE_FILTER                 = uriCounter++\nexport const INSERT_FILTER                 = uriCounter++\nexport const DELETE_FILTER                 = uriCounter++\nexport const ALTER_FILTER                  = uriCounter++\nexport const ALTER_LOGICAL_OPERATOR_FILTER = uriCounter++\n\nexport const CREATE_MULTIPLE_FILTER = uriCounter++\nexport const INSERT_MULTIPLE_FILTER = uriCounter++\n\nexport const COPY         = uriCounter++\nexport const CUT          = uriCounter++\nexport const PASTE        = uriCounter++\n// export const DELETE_RANGE = uriCounter++  // // TODO: master_proxy_performance - unused line: Remove this line after some months of release\n\nexport const PASTE_IN_DUMMY = uriCounter++\nexport const PASTE_RECORD   = uriCounter++\nexport const PASTE_FIELD    = uriCounter++\nexport const PASTE_RANGE    = uriCounter++\nexport const PASTE_ALL      = uriCounter++\nexport const CREATE_RECORD  = uriCounter++\nexport const GRID_CREATE_RECORD  = uriCounter++\n\nexport const CREATE_RECORD_COMMENTS = uriCounter++\n\nexport const FETCH_DATA       = uriCounter++\nexport const SWITCH_VIEW_TYPE = uriCounter++\n\nexport const LOAD_CALENDAR_VIEW      = uriCounter++\nexport const LOAD_GANTT_VIEW         = uriCounter++\nexport const CALENDAR_SUBMIT         = uriCounter++\nexport const SAVE_ANCHORS            = uriCounter++\nexport const SAVE_GANTT_ANCHORS      = uriCounter++\nexport const CREATE_RECORD_WITH_DATA = uriCounter++\nexport const GRID_CREATE_RECORD_WITH_DATA = uriCounter++\n\n// Gantt View Actions Start\nexport const FETCH_COMPATIBLE_GANTT_START_DATE_FIELDS           = uriCounter++\nexport const FETCH_COMPATIBLE_GANTT_END_DATE_FIELDS             = uriCounter++\nexport const FETCH_COMPATIBLE_GANTT_DISPLAY_FIELDS              = uriCounter++\nexport const FETCH_COMPATIBLE_GANTT_MILESTONE_FIELDS            = uriCounter++\nexport const FETCH_COMPATIBLE_GANTT_DEPENDENCY_FIELDS           = uriCounter++\nexport const CREATE_GANTT_START_DATE_FIELD                      = uriCounter++\nexport const CREATE_GANTT_END_DATE_FIELD                        = uriCounter++\nexport const CREATE_GANTT_DISPLAY_FIELD                         = uriCounter++\nexport const CREATE_GANTT_DEPENDENCY_FIELD                      = uriCounter++\nexport const CREATE_GANTT_MILESTONE_FIELD                       = uriCounter++\nexport const INIT_GANTT_CONFIGURATION                           = uriCounter++\nexport const UPDATE_GANTT_CONFIGURATION                         = uriCounter++\nexport const UPDATE_GANTT_CONFIGURATION_START_DATE_FIELD        = uriCounter++\nexport const UPDATE_GANTT_CONFIGURATION_END_DATE_FIELD          = uriCounter++\nexport const UPDATE_GANTT_CONFIGURATION_DISPLAY_FIELD           = uriCounter++\nexport const UPDATE_GANTT_CONFIGURATION_DEPENDENCY_FIELD        = uriCounter++\nexport const UPDATE_GANTT_CONFIGURATION_MILESTONE               = uriCounter++\nexport const UPDATE_GANTT_CONFIGURATION_HIGHLIGHT_CRITICAL_PATH = uriCounter++\nexport const UPDATE_GANTT_CONFIGURATION_DURATION_SCALE_TYPE     = uriCounter++\nexport const FETCH_GANTT_VIEW                                   = uriCounter++\nexport const UPDATE_GANTT_RECORD_DATE_RANGE                     = uriCounter++\nexport const UPDATE_GANTT_RECORD_START_DATE                     = uriCounter++\nexport const UPDATE_GANTT_RECORD_END_DATE                       = uriCounter++\nexport const UPDATE_GANTT_RECORD_DISPLAY_VALUE                  = uriCounter++\nexport const UPDATE_GANTT_RECORD_MILESTONE_STATUS               = uriCounter++\nexport const ADD_GANTT_RECORD_PREDECESSOR                       = uriCounter++\nexport const CREATE_GANTT_RECORD_PREDECESSOR                    = uriCounter++\nexport const DELETE_GANTT_RECORD_PREDECESSOR                    = uriCounter++\nexport const UPDATE_GANTT_RECORD_PREDECESSOR_CONNECTION_TYPE    = uriCounter++\nexport const FIX_GANTT_RECORD_INVALID_PREDECESSOR               = uriCounter++\nexport const ADD_GANTT_RECORD_SUCCESSOR                         = uriCounter++\nexport const CREATE_GANTT_RECORD_SUCCESSOR                      = uriCounter++\nexport const DELETE_GANTT_RECORD_SUCCESSOR                      = uriCounter++\nexport const UPDATE_GANTT_RECORD_SUCCESSOR_CONNECTION_TYPE      = uriCounter++\nexport const FIX_GANTT_RECORD_INVALID_SUCCESSOR                 = uriCounter++\nexport const SEARCH_GANTT_TASKS                                 = uriCounter++\nexport const FETCH_GANTT_DEPENDENCY_TASKS                       = uriCounter++\nexport const FETCH_GANTT_LINK_DATA                              = uriCounter++\nexport const GET_GANTT_DATA_FROM_WORKER                         = uriCounter++\nexport const GET_GANTT_RECORD_DATA_FROM_WORKER                  = uriCounter++\n\n// Gantt View Actions End\n\nexport const FILTER_CALENDAR_RECORDS   = uriCounter++\nexport const FILTER_LINK_FIELD_RECORDS = uriCounter++\n\nexport const LOAD_KANBAN_VIEW           = uriCounter++\nexport const KANBAN_CARD_DRAG_AND_DROP  = uriCounter++\nexport const ADD_RECORD_TO_STACK        = uriCounter++\nexport const STACK_REORDER              = uriCounter++\nexport const CLEAR_REORDER              = uriCounter++\nexport const DELETE_STACK_RECORDS       = uriCounter++\nexport const KANBAN_STACK_COLLAPSE      = uriCounter++\nexport const KANBAN_ALL_STACK_COLLAPSE  = uriCounter++\nexport const INSERT_RECORD_BEFORE_STACK = uriCounter++\nexport const INSERT_RECORD_AFTER_STACK  = uriCounter++\nexport const SAVE_KANBAN_FIELD          = uriCounter++\nexport const CHANGE_KANBAN_ANCHOR       = uriCounter++\n\nexport const LOAD_GALLERY_VIEW   = uriCounter++\nexport const SAVE_SCHEMA         = uriCounter++\nexport const UPDATE_SCHEMA_RATIO = uriCounter++\n\nexport const CREATE_KANBAN_SCHEMA            = uriCounter++\nexport const DELETE_KANBAN_SCHEMA            = uriCounter++\nexport const REORDER_KANBAN_SCHEMA           = uriCounter++\nexport const UPDATE_SCHEMA_COMMON_PROPERTIES = uriCounter++\nexport const FIELD_RESET                     = uriCounter++\nexport const CREATE_SCHEMA                   = uriCounter++\nexport const REORDER_SCHEMA                  = uriCounter++\nexport const DELETE_SCHEMA                   = uriCounter++\nexport const BLUEPRINT_HEADER                = uriCounter++\nexport const UPDATE_SCHEMA_CATEGORY          = uriCounter++\nexport const LOAD_TEMPLATE                   = uriCounter++\nexport const LOAD_BLUEPRINT                  = uriCounter++\n\nexport const CREATE_FIELD                 = uriCounter++\nexport const DELETE_SELECTION_OPTION      = uriCounter++\nexport const ALTER_META_SELECTION_OPTION  = uriCounter++\nexport const ALTER_ORDER_SELECTION_OPTION = uriCounter++\nexport const CREATE_SELECTION_OPTION      = uriCounter++\n// export const TOGGLE_COLORED_OPTIONS = uriCounter++\nexport const UPDATE_FIELD                      = uriCounter++  // unused\nexport const SORT_ORDER_SELECTION_OPTION       = uriCounter++\nexport const CREATE_SELECTION_WITH_OPTION_NAME = uriCounter++\nexport const INSERT_PREV_SELECTION_OPTION      = uriCounter++\nexport const CREATE_USER_WITH_CELL_SUBMIT      = uriCounter++\n\nexport const ALTER_PRIMARY_FIELD      = uriCounter++\n\n// export const FIELD_META_TEMP = uriCounter++\n// export const INSERT_SELECTION_TEMP = uriCounter++\n// export const UPDATE_SELECTION_TEMP = uriCounter++\n// export const DELETE_SELECTION_TEMP = uriCounter++\n\nexport const TAB_BLUR  = uriCounter++\nexport const TAB_FOCUS = uriCounter++\n\nexport const UPDATE_BASE_META = uriCounter++\nexport const DELETE_BASE      = uriCounter++\nexport const MOVE_BASE        = uriCounter++\nexport const BASE_INFO        = uriCounter++\nexport const DUPLICATE_BASE   = uriCounter++\nexport const DUPLICATE_BASE_WITHOUT_DATA = uriCounter++\n\nexport const REREGISTER_VIEWPORT = uriCounter++\n\nexport const SEARCH       = uriCounter++\nexport const REPLACE      = uriCounter++\nexport const REPLACEALL   = uriCounter++\n// export const DEVELOPERAPI = uriCounter++ // // TODO: master_proxy_performance - unused line: Remove this line after some months of release\n\nexport const FILL_REDO_SELECTION = uriCounter++\nexport const CONTACT_SUGGESTION  = uriCounter++\nexport const PRESTIGE_SOCKET     = uriCounter++\n\n\n// export const BASE_BROADCAST       = uriCounter++\nexport const UPDATE_USER_PRESENCE = uriCounter++\n\nexport const DELETE_RELATIONSHIP = uriCounter++\nexport const CREATE_RELATIONSHIP = uriCounter++\n// export const UPDATE_RELATIONSHIP = uriCounter++\n\nexport const EVALUATE_FORMULA = uriCounter++\n\nexport const EVALUATE_FILTER_FORMULA = uriCounter++\n\nexport const REGISTER_FORM_BUILDER_VIEWPORT   = uriCounter++\nexport const UNREGISTER_FORM_BUILDER_VIEWPORT = uriCounter++\nexport const LOAD_FORM_BUILDER                = uriCounter++\nexport const FORM_COVER_IMAGE_UPDATE          = uriCounter++\nexport const FORM_LOGO_UPDATE                 = uriCounter++\nexport const FORM_NAME_UPDATE                 = uriCounter++\nexport const FORM_DESCRIPTION_UPDATE          = uriCounter++\n\nexport const FORM_COVER_IMAGE_VISIBILITY_UPDATE = uriCounter++\nexport const FORM_COVER_IMAGE_DELETE            = uriCounter++\nexport const FORM_ADD_COVER_IMAGE               = uriCounter++\nexport const FORM_CHANGE_COVER_IMAGE            = uriCounter++\nexport const FORM_ADD_LOGO                      = uriCounter++\nexport const FORM_CHANGE_LOGO                   = uriCounter++\n\nexport const FORM_LOGO_ALIGNMENT_UPDATE  = uriCounter++\nexport const FORM_LOGO_SIZE_UPDATE       = uriCounter++\nexport const FORM_LOGO_VISIBILITY_UPDATE = uriCounter++\nexport const FORM_LOGO_DELETE            = uriCounter++\n\nexport const FORM_NAME_PARAMETERS_ALIGNMENT_UPDATE = uriCounter++\nexport const FORM_NAME_PARAMETERS_SIZE_UPDATE      = uriCounter++\n\nexport const FORM_NAME_PARAMETERS_VISIBILITY_UPDATE = uriCounter++\nexport const FORM_SCHEMA_NAME_UPDATE                = uriCounter++\nexport const FORM_SCHEMA_DESCRIPTION_UPDATE         = uriCounter++\nexport const FORM_SCHEMA_REQUIRED_UPDATE            = uriCounter++\nexport const FORM_SCHEMA_COMPONENT_TYPE_UPDATE      = uriCounter++\nexport const FORM_SCHEMA_CHOICES_VISIBILITY_UPDATE  = uriCounter++\nexport const FORM_SCHEMA_CHOICES_REORDER            = uriCounter++\n\nexport const FORM_SCHEMA_DELETE               = uriCounter++\nexport const FORM_SCHEMA_INSERT               = uriCounter++\nexport const FORM_SCHEMA_REORDER              = uriCounter++\nexport const FORM_SCHEMA_CHOICES_SORT         = uriCounter++\nexport const FORM_BRANDING_UPDATE             = uriCounter++\nexport const FORM_SUBMIT_BUTTON_NAME_UPDATE   = uriCounter++\nexport const FORM_REDIRECT_URL_UPDATE         = uriCounter++\nexport const FORM_MESSAGE_AFETR_SUBMIT_UPDATE = uriCounter++\nexport const FORM_LABEL_ALIGNMENT_UPDATE      = uriCounter++\nexport const FORM_COLOR_THEME_UPDATE          = uriCounter++\n\n\nexport const REGISTER_ENGINE       = uriCounter++\nexport const LOAD_DATA_FROM_ENGINE = uriCounter++  // unused\n\nexport const CREATE_FIELD_WITH_RELATIONSHIP     = uriCounter++\nexport const ALTER_META_FIELD_WITH_RELATIONSHIP = uriCounter++\n\nexport const CLEAR_CONDITIONAL_FORMAT = uriCounter++\nexport const DELETE_COLOR             = uriCounter++\n\nexport const DUPLICATE_COLOR                     = uriCounter++\nexport const ALTER_COLOR_ORDER                   = uriCounter++\nexport const INSERT_COLOR_FILTER                 = uriCounter++\nexport const ALTER_COLOR_FILTER                  = uriCounter++\nexport const ALTER_COLOR_LOGICAL_OPERATOR_FILTER = uriCounter++\nexport const DELETE_COLOR_FILTER                 = uriCounter++\n\nexport const CREATE_SINGLE_SELECT_CONDITIONAL_FORMAT  = uriCounter++\nexport const UPDATE_SINGLE_SELECT_CONDITIONAL_FORMAT  = uriCounter++\nexport const CREATE_CONDITIONAL_FORMAT_COLOR          = uriCounter++\nexport const UPDATE_CONDITIONAL_FORMAT_COLOR_META     = uriCounter++\nexport const UPDATE_CONDITIONAL_FORMAT_FALLBACK_COLOR = uriCounter++\n\nexport const EVALUATE_CONDITIONAL_FORMAT_FORMULA = uriCounter++\nexport const SEARCH_CALENDAR_RECORDS             = uriCounter++\nexport const UPDATE_CALENDAR_RECORD              = uriCounter++\nexport const DRAG_DROP_CALENDAR_RECORD          = uriCounter++\nexport const RESIZE_CALENDAR_RECORD             = uriCounter++\n\nexport const CREATE_VIEW_SHARE_URL              = uriCounter++\nexport const ALTER_VIEW_SHARE_ACCESSPEOPLE_TYPE = uriCounter++\nexport const UPDATE_VIEW_SHARE_PASSWORD         = uriCounter++\nexport const UPDATE_VIEW_SHARE_EXPIRY_DATE      = uriCounter++\nexport const UPDATE_VIEW_SHARE_MULTIPLE_SUBMIT  = uriCounter++\nexport const UPDATE_VIEW_SHARE_ENABLED          = uriCounter++\nexport const REFRESH_VIEW_SHARE_URL             = uriCounter++\n\nexport const CREATE_LINK_RECORD_WITH_DATA_SUBMIT = uriCounter++\nexport const FETCH_GRID_RECORD_ORDER             = uriCounter++\n\n//_____For Automation Start_____\n\nexport const CREATE_AUTOMATION                             = uriCounter++\nexport const INSERT_AUTOMATION                             = uriCounter++\nexport const DELETE_AUTOMATION                             = uriCounter++\nexport const UPDATE_AUTOMATION                             = uriCounter++ // unused\nexport const DUPLICATE_AUTOMATION                          = uriCounter++\nexport const ALTER_AUTOMATION_NAME                         = uriCounter++\nexport const ALTER_AUTOMATION_STATUS                       = uriCounter++\nexport const RESTART_AUTOMATION_STATUS                     = uriCounter++\nexport const RESUME_AUTOMATION_STATUS                      = uriCounter++\nexport const FETCH_AUTOMATION                              = uriCounter++\nexport const FETCH_AUTOMATION_ACTION                       = uriCounter++\nexport const CREATE_TRIGGER                                = uriCounter++\nexport const ALTER_TRIGGER_TYPE                            = uriCounter++\nexport const ALTER_TRIGGER_TABLE                           = uriCounter++\nexport const ALTER_TRIGGER_VIEW                           = uriCounter++\nexport const ALTER_RECORD_CREATE_TRIGGER_FORM_SUBMIT_STATUS  = uriCounter++\nexport const ALTER_RECORD_CREATE_TRIGGER_EMPTY_RECORD_STATUS = uriCounter++\nexport const ALTER_RECORD_CREATE_TRIGGER_DUPLICATE_STATUS    = uriCounter++\nexport const ALTER_RECORD_CREATE_TRIGGER_LINK_FIELD_STATUS    = uriCounter++\nexport const ALTER_RECORD_CREATE_TRIGGER_API_STATUS          = uriCounter++\nexport const CREATE_UNIT_FILTER_TRIGGER                    = uriCounter++\nexport const INSERT_UNIT_FILTER_TRIGGER                    = uriCounter++\nexport const DELETE_UNIT_FILTER_TRIGGER                    = uriCounter++\nexport const ALTER_UNIT_FILTER_TRIGGER                     = uriCounter++\nexport const ALTER_FILTER_CONDITION_LOGICAL_STRING_TRIGGER = uriCounter++\nexport const CREATE_ACTION                                 = uriCounter++\nexport const INSERT_ACTION                                 = uriCounter++\nexport const DELETE_ACTION                                 = uriCounter++\nexport const ALTER_ACTION_TABLE                            = uriCounter++\nexport const INSERT_FIELDS_VALUES_ACTION                   = uriCounter++\nexport const DELETE_FIELD_VALUES_ACTION                    = uriCounter++\nexport const ALTER_FIELD_VALUES_ACTION                     = uriCounter++\nexport const ALTER_TO_ADDRESS_SEND_MAIl_ACTION             = uriCounter++\nexport const ALTER_CC_ADDRESS_SEND_MAIl_ACTION             = uriCounter++\nexport const ALTER_BCC_ADDRESS_SEND_MAIl_ACTION            = uriCounter++\nexport const ALTER_SUBJECT_ADDRESS_SEND_MAIl_ACTION        = uriCounter++\nexport const ALTER_MESSAGE_ADDRESS_SEND_MAIl_ACTION        = uriCounter++\nexport const UPLOAD_ATTACHMENT_FROM_TRIGGERED_FIELD_ACTION = uriCounter++\nexport const REMOVE_ATTACHMENT_FROM_TRIGGERED_FILE_ACTION  = uriCounter++\nexport const REMOVE_ATTACHMENT_FROM_TRIGGERED_FIELD_ACTION = uriCounter++\nexport const UPDATE_SENDMAIL_ACTION                        = uriCounter++\nexport const CREATE_UNIT_FILTER_ACTION                     = uriCounter++\nexport const INSERT_UNIT_FILTER_ACTION                     = uriCounter++\nexport const DELETE_UNIT_FILTER_ACTION                     = uriCounter++\nexport const ALTER_UNIT_FILTER_ACTION                      = uriCounter++\nexport const ALTER_FILTER_CONDITION_LOGICAL_STRING_ACTION  = uriCounter++\n\nexport const ALTER_TABLE_FIND_AND_INCLUDE_RECORD_ACTION                           = uriCounter++\nexport const ALTER_FIELDS_FIND_AND_INCLUDE_RECORD_ACTION                          = uriCounter++\nexport const FIND_AND_INCLUDE_RECORD_COPY_VIEW_FILTER_ACTION                      = uriCounter++\nexport const CREATE_UNIT_FILTER_FIND_AND_INCLUDE_RECORD_ACTION                    = uriCounter++\nexport const INSERT_UNIT_FILTER_FIND_AND_INCLUDE_RECORD_ACTION                    = uriCounter++\nexport const DELETE_UNIT_FILTER_FIND_AND_INCLUDE_RECORD_ACTION                    = uriCounter++\nexport const ALTER_UNIT_FILTER_FIND_AND_INCLUDE_RECORD_ACTION                     = uriCounter++\nexport const ALTER_FILTER_CONDITION_LOGICAL_STRING_FIND_AND_INCLUDE_RECORD_ACTION = uriCounter++\nexport const ALTER_TABLE_SUMMARY_OF_A_FIELD_ACTION                                = uriCounter++\nexport const ALTER_FIELD_SUMMARY_OF_A_FIELD_ACTION                                = uriCounter++\nexport const ALTER_SUMMARY_OF_A_FIELD_SUMMARY_TYPE_ACTION                         = uriCounter++\n\nexport const ALTER_SCHEDULE_TRIGGER_FREQUENCY            = uriCounter++\nexport const RESCHEDULE_ONE_TIME_SCHEDULE_TRIGGER        = uriCounter++\nexport const ALTER_SCHEDULE_TRIGGER_HOUR_COUNT           = uriCounter++\nexport const ALTER_SCHEDULE_TRIGGER_DAY_COUNT            = uriCounter++\nexport const ALTER_SCHEDULE_TRIGGER_TIME                 = uriCounter++\nexport const ALTER_SCHEDULE_TRIGGER_WEEK_COUNT           = uriCounter++\nexport const ALTER_SCHEDULE_TRIGGER_WEEK_DAYS            = uriCounter++\nexport const ALTER_SCHEDULE_TRIGGER_MONTH_COUNT          = uriCounter++\nexport const ALTER_SCHEDULE_TRIGGER_MONTH_META_TYPE      = uriCounter++\nexport const ALTER_SCHEDULE_TRIGGER_MONTH_DATES          = uriCounter++\nexport const ALTER_SCHEDULE_TRIGGER_MONTH_WEEK           = uriCounter++\nexport const ALTER_SCHEDULE_TRIGGER_MONTH_DAY            = uriCounter++\nexport const ALTER_SCHEDULE_TRIGGER_TIMEFRAME_STATE      = uriCounter++\nexport const ALTER_SCHEDULE_TRIGGER_TIMEFRAME_START_DATE = uriCounter++\nexport const ALTER_SCHEDULE_TRIGGER_TIMEFRAME_END_TYPE   = uriCounter++\nexport const ALTER_SCHEDULE_TRIGGER_TIMEFRAME_RUN_COUNT  = uriCounter++\nexport const ALTER_SCHEDULE_TRIGGER_TIMEFRAME_END_DATE   = uriCounter++\n\nexport const FETCH_VIEW_TO_COPY_FIND_AND_INCLUDE_RECORD_ACTION                      = uriCounter++\nexport const FETCH_AUTOMATION_ACTIONS                                               = uriCounter++\nexport const FETCH_COMPATIBLE_TRIGGERED_FIELD_FIELDVALUE_ACTION                     = uriCounter++\nexport const FETCH_COMPATIBLE_TRIGGERED_FIELD_FILTER_ACTION                         = uriCounter++\nexport const FETCH_FIND_AND_INCLUDE_RECORD_COMPATIBLE_TRIGGERED_FIELD_FILTER_ACTION = uriCounter++\nexport const FETCH_COMPATIBLE_VIEWS_TRIGGER_ACTION                                  = uriCounter++\nexport const FETCH_COMPATIBLE_SENDMAIL_ADDRESS_TRIGGER_FIELDS_ACTION                = uriCounter++\nexport const FETCH_COMPATIBLE_ATTACHMENT_TRIGGER_FIELDS_ACTION                      = uriCounter++\nexport const FETCH_COMPATIBLE_SUBJECT_FIELDS_ACTION                                 = uriCounter++\nexport const FETCH_COMPATIBLE_MESSAGE_FIELDS_ACTION                                 = uriCounter++\nexport const FETCH_COMPATIBLE_SOCIAL_MEDIA_FIELDS_ACTION                            = uriCounter++\nexport const FETCH_COMPATIBLE_SOCIAL_MESSAGE_FIELDS_ACTION                          = uriCounter++\nexport const FETCH_COMPATIBLE_SUMMARY_FIELDS_ACTION                                 = uriCounter++\nexport const FETCH_COMPATIBLE_FIND_AND_INCLUDE_RECORDS_FIELDS_ACTION                = uriCounter++\n\nexport const INSERT_CHANNEL_OR_USER_ACTION                      = uriCounter++\nexport const REMOVE_CHANNEL_OR_USER_ACTION                      = uriCounter++\nexport const CLIQ_ORG_AND_EXTENSION_STATUS_ACTION               = uriCounter++\nexport const CLIQ_CHANNELS_AND_USERS_FETCH_ACTION               = uriCounter++\nexport const CLIQ_EXTENSION_INSTALL_ACTION                      = uriCounter++\nexport const CLIQ_BOT_ADD_TO_CHANNELS_ACTION                    = uriCounter++\nexport const ALTER_MESSAGE_CLIQ_MESSAGE_ACTION                  = uriCounter++\n\nexport const ALTER_SOCIAL_DRAFT_PORTAL_ACTION                   = uriCounter++\nexport const ALTER_SOCIAL_DRAFT_BRAND_ACTION                    = uriCounter++\nexport const ALTER_SOCIAL_DRAFT_EDITOR_TOGGLE_ACTION            = uriCounter++\nexport const ALTER_SOCIAL_DRAFT_MESSAGE_FIELD_ACTION            = uriCounter++\nexport const ALTER_SOCIAL_DRAFT_MEDIA_FIELD_ACTION              = uriCounter++\nexport const ALTER_SOCIAL_DRAFT_MEDIA_ACTION                    = uriCounter++\nexport const FETCH_SOCIAL_MEDIA_ACTION                          = uriCounter++\nexport const FETCH_SOCIAL_BRANDS_ACTION                         = uriCounter++\nexport const FETCH_SOCIAL_PORTALS_ACTION                        = uriCounter++\n\nexport const ALTER_WEBHOOK_URL_ACTION                           = uriCounter++\nexport const INSERT_WEBHOOK_PARAM_ACTION                        = uriCounter++\nexport const ALTER_WEBHOOK_PARAM_KEY_ACTION                     = uriCounter++\nexport const ALTER_WEBHOOK_PARAM_VALUE_ACTION                   = uriCounter++\nexport const ALTER_WEBHOOK_HEADER_VALUE_ACTION                  = uriCounter++\nexport const INSERT_WEBHOOK_HEADER_ACTION                       = uriCounter++\nexport const ALTER_WEBHOOK_HEADER_KEY_ACTION                    = uriCounter++\nexport const REMOVE_WEBHOOK_PARAM_ACTION                        = uriCounter++\nexport const REMOVE_WEBHOOK_HEADER_ACTION                       = uriCounter++\nexport const ALTER_WEBHOOK_METHOD_ACTION                        = uriCounter++\nexport const ALTER_WEBHOOK_BODY_MODE_ACTION                     = uriCounter++\nexport const ALTER_WEBHOOK_BODY_ACTION                          = uriCounter++\n\n//_____For Automation End_____\n\n// Add you constants above this line\nexport const DUMMY                    = uriCounter++  // unused\nexport const ATTACHMENT_EDIT_FILENAME = uriCounter++\nexport const ATTACHMENT_DELETE_FILE   = uriCounter++\nexport const CREATE_KANBAN_ANCHOR     = uriCounter++\n\nexport const ALTER_META_SENTIMENT = uriCounter++\nexport const CREATE_FIELD_WITH_SENTIMENT = uriCounter++\nexport const CREATE_FIELD_WITH_SENTIMENT_BEFORE = uriCounter++\nexport const CREATE_FIELD_WITH_SENTIMENT_AFTER = uriCounter++\nexport const FETCH_LINK_FIELD_DATA              = uriCounter++\nexport const FETCH_AUTOMATION_LINK_FIELD_DATA   = uriCounter++\nexport const TAB_REREGISTER_WITH_GRID_USERPRESENCE = uriCounter++\nexport const TAB_REREGISTER_WITH_SNAP = uriCounter++\nexport const TAB_REREGISTER_WITHOUT_USERPRESENCE = uriCounter++\nexport const TAB_REREGISTER_WITH_SNAP_LISTING = uriCounter++\nexport const ADD_BASE_SHARE_MEMBERS = uriCounter++\nexport const DELETE_BASE_SHARE_MEMEBER_USERID = uriCounter++;\nexport const DELETE_BASE_SHARE_MEMEBER_MAILID = uriCounter++;\nexport const UPDATE_BASE_SHARE_MEMEBER_PERMISSION_USERID = uriCounter++;\nexport const UPDATE_BASE_SHARE_MEMEBER_PERMISSION_MAILID = uriCounter++;\nexport const START_SYNC_CALL = uriCounter++;\nexport const ADD_VIEW_SHARE_MEMBERS = uriCounter++\nexport const UPDATE_VIEW_SHARE_MEMEBER_PERMISSION_USERID = uriCounter++;\nexport const UPDATE_VIEW_SHARE_MEMEBER_PERMISSION_MAILID = uriCounter++;\nexport const DELETE_VIEW_SHARE_MEMEBER_USERID = uriCounter++\nexport const DELETE_VIEW_SHARE_MEMEBER_MAILID = uriCounter++\nexport const UPDATE_REMAINING_QUEUE_COUNT       = uriCounter++\nexport const BASELOCK       = uriCounter++\nexport const BASEUNLOCK     = uriCounter++\n\n// USER PRESENCE\nexport const FETCH_CELL_USER_PRESENCE_LOAD = uriCounter++\nexport const UPDATE_CELL_USER_PRESENCE     = uriCounter++\nexport const INSERT_CELL_USER_PRESENCE     = uriCounter++\nexport const DELETE_CELL_USER_PRESENCE     = uriCounter++\nexport const PARSE_USER_PRESENCE_RESPONSE  = uriCounter++\nexport const UPDATE_APP_REGISTRY_OBJECT    = uriCounter++\n\nexport const OPEN_PRINT_TRANSACTION  = uriCounter++\nexport const PRINT_VIEW = uriCounter++\nexport const CLOSE_PRINT_TRANSACTION = uriCounter++\n\n// snap\nexport const LOAD_SNAP_LISTING              = uriCounter++\nexport const CREATE_SNAP                    = uriCounter++\nexport const DELETE_SNAP                    = uriCounter++\nexport const UPDATE_SNAP_NAME               = uriCounter++\nexport const UPDATE_SNAP_SORT               = uriCounter++\nexport const UPDATE_SNAP_FILTER             = uriCounter++\nexport const FETCH_SHARE_SNAP_META          = uriCounter++\nexport const ENABLE_SHARE_SNAP              = uriCounter++\nexport const DISABLE_SHARE_SNAP             = uriCounter++\nexport const UPDATE_SHARE_SNAP_PASSWORD     = uriCounter++\nexport const DISABLE_SHARE_SNAP_PASSWORD    = uriCounter++\nexport const UPDATE_SHARE_SNAP_EXPIRY_DATE  = uriCounter++\nexport const DISABLE_SHARE_SNAP_EXPIRY_DATE = uriCounter++\nexport const UPDATE_SHARE_SNAP_USER_TYPE    = uriCounter++\n\nexport const LOAD_SNAP          = uriCounter++\nexport const CLOSE_SNAP          = uriCounter++\nexport const LOAD_DATA_IN_SNAP  = uriCounter++\nexport const LOAD_COMPONENT     = uriCounter++\nexport const INSERT_SNAP_CARD   = uriCounter++\nexport const DUPLICATE_SNAP_CARD = uriCounter++\nexport const MOVE_SNAP_CARD = uriCounter++\nexport const DELETE_SNAP_CARD = uriCounter++\nexport const UPDATE_SNAP_CARD_WIDTH   = uriCounter++\nexport const UPDATE_SNAP_CARD_HEIGHT  = uriCounter++\nexport const UPDATE_SNAP_CARD_SIZE    = uriCounter++\nexport const LOAD_TABLES = uriCounter++\nexport const LOAD_VIEWS = uriCounter++\nexport const LOAD_FIELDS = uriCounter++\nexport const EDIT_SNAP = uriCounter++\n\nexport const UPDATE_AGGREGATION_TABLE = uriCounter++\nexport const UPDATE_AGGREGATION_VIEW = uriCounter++\nexport const UPDATE_AGGREGATION_FIELD = uriCounter++\nexport const UPDATE_AGGREGATION_ALIGNMENT = uriCounter++\nexport const UPDATE_AGGREGATION_COLOR = uriCounter++\nexport const UPDATE_AGGREGATION_FORMULA = uriCounter++\nexport const UPDATE_AGGREGATION_GROUPBY_FIELD = uriCounter++\nexport const UPDATE_AGGREGATION_GROUPBY_INTERVAL = uriCounter++\nexport const UPDATE_AGGREGATION_SHOW_DIFFERENCE = uriCounter++\nexport const UPDATE_AGGREGATION_SHOW_SECONDARY_LABEL = uriCounter++\nexport const UPDATE_AGGREGATION_SHOW_SECONDARY_VALUE = uriCounter++\nexport const UPDATE_AGGREGATION_TITLE = uriCounter++\n\nexport const UPDATE_CHART_DRAW_WITH = uriCounter++\nexport const UPDATE_CHART_FORMULA = uriCounter++\nexport const UPDATE_CHART_GROUP_BY_FIELD = uriCounter++\nexport const UPDATE_CHART_LEDENG_POSITION = uriCounter++\nexport const UPDATE_CHART_TYPE = uriCounter++\nexport const UPDATE_CHART_X_AXIS = uriCounter++\nexport const UPDATE_CHART_Y_AXIS = uriCounter++\nexport const UPDATE_CHART_COLOR = uriCounter++\n\nexport const UPDATE_RTE_CONTENT = uriCounter++\n\nexport const INSERT_GRID_UNIT_SORT = uriCounter++\nexport const DELETE_GRID_UNIT_SORT = uriCounter++\nexport const UPDATE_GRID_UNIT_SORT = uriCounter++\nexport const REORDER_GRID_UNITY_SORT = uriCounter++\nexport const HIDE_GRID_FIELD = uriCounter++\nexport const UNHIDE_GRID_FIELD = uriCounter++\nexport const UPDATE_GRID_FIELD_WIDTH = uriCounter++\nexport const REORDER_GRID_FIELD = uriCounter++\nexport const UPDATE_GRID_RECORD_HEIGHT = uriCounter++\nexport const UPDATE_GRID_FILTER_TYPE = uriCounter++\nexport const CREATE_GRID_UNIT_FILTER = uriCounter++\nexport const INSERT_GRID_UNIT_FILTER = uriCounter++\nexport const DELETE_GRID_UNIT_FILTER = uriCounter++\nexport const UPDATE_GRID_UNIT_FILTER = uriCounter++\nexport const UPDATE_GRID_FILTER_CONDITION_TYPE = uriCounter++\nexport const UPDATE_GRID_LOGICAL_STRING = uriCounter++\n\n// activity log\nexport const FETCH_ACTIVITY_LOG     = uriCounter++\nexport const FETCH_RECORD_ACTIVITY_LOG = uriCounter++\nexport const LOAD_MORE_ACTIVITY_LOG = uriCounter++\nexport const LOAD_MORE_RECORD_ACTIVITY_LOG = uriCounter++\n\nexport const COMPONENT_COPY_VIEW_CONFIGURATION = uriCounter++\n\nexport const CREATE_COMPONENT_UNIT_FILTER = uriCounter++\nexport const INSERT_COMPONENT_UNIT_FILTER = uriCounter++\nexport const DELETE_COMPONENT_UNIT_FILTER = uriCounter++\nexport const UPDATE_COMPONENT_UNIT_FILTER = uriCounter++\nexport const UPDATE_COMPONENT_FILTER_CONDITION_TYPE = uriCounter++\nexport const UPDATE_COMPONENT_LOGICAL_STRING = uriCounter++\n\nexport const UPDATE_CHART_FIELDS_TO_PLOT = uriCounter++\nexport const INSERT_CHART_FIELDS_TO_PLOT = uriCounter++\nexport const DELETE_CHART_FIELDS_TO_PLOT = uriCounter++\nexport const REORDER_CHART_FIELDS_TO_PLOT = uriCounter++\n\n//Run History\nexport const FETCH_RUN_HISTORY = uriCounter++;\nexport const STATUS_FILTER_RUN_HISTORY = uriCounter++;\nexport const DATE_FILTER_RUN_HISTORY = uriCounter++;\nexport const SORT_RUN_HISTORY = uriCounter++;\nexport const CLOSE_RUN_HISTORY = uriCounter++;\n// version history\nexport const FETCH_VERSION_HISTORY = uriCounter++\nexport const RESTORE_VERSION = uriCounter++\nexport const EDIT_VERSION = uriCounter++\nexport const CREATE_AS_NEW_BASE_FROM_VERSION = uriCounter++\nexport const DOWNLOAD_VERSION = uriCounter++\nexport const SEARCH_VERSION = uriCounter++\nexport const SAVE_CURRENT_VERSION = uriCounter++\n\nexport const PREVIEW_VERSION                = uriCounter++\nexport const PREVIEW_VERSION_SNAP_LISTING   = uriCounter++\nexport const PREVIEW_VERSION_SNAP           = uriCounter++\nexport const PREVIEW_VERSION_SNAP_LOAD_CARD = uriCounter++\nexport const PREVIEW_VERSION_ACTIVITY_LOG   = uriCounter++\nexport const PREVIEW_VERSION_SEARCH         = uriCounter++\nexport const CLEAR_DATA_FOR_VERSION_PREVIEW = uriCounter++\n\n\n\n\n//DRE import\nexport const DRE_FETCH_DATA = uriCounter++\nexport const DRE_FETCH_TABLES = uriCounter++\nexport const DRE_FETCH_FIELDS = uriCounter++\nexport const DRE_IMPORT_DATA = uriCounter++\nexport const DRE_DELETE_CONNECTION = uriCounter++\nexport const DRE_CLOSE_TRANSACTION = uriCounter++\nexport const DRE_CREATE_INTEGRATION_SPACE = uriCounter++\n// GroupBy Starts\n\nexport const CREATE_GROUP_BY_IN_DIALOG  = uriCounter++\nexport const INSERT_GROUP_BY_IN_DIALOG  = uriCounter++\nexport const UPDATE_GROUP_BY_IN_DIALOG  = uriCounter++\nexport const DELETE_GROUP_BY_IN_DIALOG  = uriCounter++\nexport const REORDER_GROUP_BY_IN_DIALOG = uriCounter++\nexport const COLLAPSE_OR_EXPAND_ALL     = uriCounter++\nexport const COLLAPSE_OR_EXPAND_SUB     = uriCounter++\nexport const COLLAPSE_OR_EXPAND         = uriCounter++\nexport const DELETE_GROUP               = uriCounter++\nexport const CLEAR_GROUP                = uriCounter++\nexport const FETCH_GROUP_META           = uriCounter++\n\n// GroupBy ends\n\nexport const OPEN_LINK_FIELD_TRANSACTION  = uriCounter++\nexport const FILTER_LINK_FIELD_DATA       = uriCounter++\nexport const CLOSE_LINK_FIELD_TRANSACTION = uriCounter++\n","\nexport interface IRequestActionEventProperties{\n    _canExecuteDefaultFailure() : boolean\n    _canExecuteDefaultSuccess() : boolean\n    setCanExecuteDefaultSuccess(canExecuteSuccess : boolean) : void\n    setCanExecuteDefaultFailure(canExecuteFailure : boolean) : void\n    addSuccessCallback(successEventCallback : Function) : void\n    onSuccessCallback(event : SuccessEvent) : void\n    onFailureCallback(event : FailureEvent) : void\n    addFailureCallback(failureEventCallback : Function) : void\n    onAcknowledgeCallback(event : AcknowledgeEvent) : void\n    addAcknowledgeCallback(acknowledgeEventCallback: Function): void;\n    addBeforeSendCallback(beforesendEventCallback: Function): void;\n    addCompleteCallback(completeEventCallback: Function): void;\n    addAfterSendCallback(aftersendEventCallback: Function): void;\n    onBeforeSendCallback(event: BeforeSendEvent): void;\n    onCompleteCallback(event: CompleteEvent): void;\n    onAfterSendCallback(event: AfterSendEvent): void;\n    addStatusOkCallback(statusOkEventCallback: Function): void;\n    onStatusOkCallback(event: SuccessEvent): void;\n    addStatusAcceptedCallback(statusAcceptedEventCallback: Function): void;\n    onStatusAcceptedCallback(event: SuccessEvent): void;\n    addUploadProgressCallback(eventName : string , callback: Function): void;\n    onUploadProgressCallback(xmlHttpRequest: XMLHttpRequest): void;\n}\nexport class EventExecutionProperties implements IRequestActionEventProperties{\n    private successEventCallbacks : Function[] \n    private failureEventCallbacks : Function[] // failure group\n    private acknowledgeEventCallbacks : Function[]  // acknowledge group\n    private beforesendEventCallbacks : Function[]  // before send group\n    private completeEventCallbacks : Function[]  // completed once success or failure\n    private aftersendEventCallbacks : Function[]  // after send group\n    private statusOkEventCallbacks : Function[]  // status ok status code 200\n    private statusAcceptedEventCallbacks : Function[]  // status accepted status code 202\n    private uploadProgressEventList : {[key : string] : Function[]}// progress event\n    private canExecuteDefaultSuccess : boolean\n    private canExecuteDefaultFailure : boolean\n    constructor(){ \n        this.successEventCallbacks = []\n        this.failureEventCallbacks = []\n        this.acknowledgeEventCallbacks = []\n        this.beforesendEventCallbacks = []\n        this.completeEventCallbacks = []\n        this.aftersendEventCallbacks = []\n        this.statusOkEventCallbacks = []\n        this.statusAcceptedEventCallbacks = []\n        this.uploadProgressEventList = {}\n        this.canExecuteDefaultSuccess = true;\n        this.canExecuteDefaultFailure = true;\n    }\n    _canExecuteDefaultFailure(){\n        return this.canExecuteDefaultFailure;\n    }\n    _canExecuteDefaultSuccess(){\n        return this.canExecuteDefaultSuccess;\n    }\n    setCanExecuteDefaultSuccess(canExecuteSuccess : boolean){\n        this.canExecuteDefaultSuccess = canExecuteSuccess;\n    }\n    setCanExecuteDefaultFailure(canExecuteFailure : boolean){\n        this.canExecuteDefaultFailure = canExecuteFailure;\n    }\n\taddSuccessCallback(successEventCallback : Function){\n\t\tthis.successEventCallbacks.push(successEventCallback);\n\t}\n    addFailureCallback(failureEventCallback : Function){\n        this.failureEventCallbacks.push(failureEventCallback);\n    }\n    addAcknowledgeCallback(acknowledgeEventCallback : Function){\n        this.acknowledgeEventCallbacks.push(acknowledgeEventCallback);\n    }\n    addBeforeSendCallback(beforesendEventCallback : Function){\n        this.beforesendEventCallbacks.push(beforesendEventCallback);\n    }\n    addCompleteCallback(completeEventCallback : Function){\n        this.completeEventCallbacks.push(completeEventCallback);\n    }\n    addAfterSendCallback(aftersendEventCallback : Function){\n        this.aftersendEventCallbacks.push(aftersendEventCallback);\n    }\n    addStatusOkCallback(statusOkEventCallback: Function) {\n        this.statusOkEventCallbacks.push(statusOkEventCallback);\n    }\n    addStatusAcceptedCallback(statusAcceptedEventCallback: Function) {\n        this.statusAcceptedEventCallbacks.push(statusAcceptedEventCallback);\n    }\n    addUploadProgressCallback(eventName : string , callback: Function){\n        this.uploadProgressEventList[eventName].push(callback);\n    }\n\tonSuccessCallback(event : SuccessEvent) {\n\t\tthis.successEventCallbacks.forEach((callBack)=>{\n            callBack(event);\n        });\n    }\n    onFailureCallback(event : FailureEvent){\n        this.failureEventCallbacks.forEach((callBack)=>{\n            callBack(event);\n        });\n    }\n    onAcknowledgeCallback(event : AcknowledgeEvent){\n        this.acknowledgeEventCallbacks.forEach((callBack)=>{\n            callBack(event);\n        });\n        \n    }\n    onBeforeSendCallback(event : BeforeSendEvent){\n        this.beforesendEventCallbacks.forEach((callBack)=>{\n            callBack(event);\n        });\n    }\n    onCompleteCallback(event : CompleteEvent){\n        this.completeEventCallbacks.forEach((callBack)=>{\n            callBack(event);\n        });\n    }\n    onAfterSendCallback(event : AfterSendEvent){\n        this.aftersendEventCallbacks.forEach((callBack)=>{\n            callBack(event);\n        });\n    }\n    onStatusOkCallback(event : SuccessEvent){\n        this.statusOkEventCallbacks.forEach((callBack)=>{\n            callBack(event);\n        });\n    }\n    onStatusAcceptedCallback(event : SuccessEvent){\n        this.statusAcceptedEventCallbacks.forEach((callBack)=>{\n            callBack(event);\n        });\n    }\n    onUploadProgressCallback(xmlHttpRequest: XMLHttpRequest): void {\n        for (const eventName in this.uploadProgressEventList) {\n            const eventList = this.uploadProgressEventList[eventName];\n            for (let i = 0; i < eventList.length; i++) {\n                xmlHttpRequest.upload.addEventListener('progress', eventList[i]); //No I18N\n            }\n        }\n    }\n}\nexport class SuccessEvent{\n    response : SuccessResponse\n    constructor(response : SuccessResponse) {\n\t    this.response = response;\n    }\n}\nexport interface SuccessResponse extends Response {\n    qaid: number,\n    tid : string,\n    url : string,\n}\ninterface ErrorMeta {\n\tREDIRECT_URL: string,\n\tRELOAD : boolean,\n\tRESPONSE : object\n}\nexport interface ErrorResponse extends Response {\n\tERROR_CODE: string,\n\tMETA: ErrorMeta,\n\tERROR_MESSAGE: string,\n\tqaid: string\n}\nexport class FailureEvent{\n    response : ErrorResponse\n    constructor(response : ErrorResponse) {\n\t    this.response = response;\n    }\n}\nexport class ClientFailureEvent{\n    response : Response\n    constructor(response : Response) {\n\t    this.response = response;\n    }\n}\nexport class AcknowledgeEvent{\n    response : Response\n    constructor(response : Response) {\n        this.response = response;\n    }\n}\nexport class BeforeSendEvent{\n    response : Response | null\n    constructor(response : Response | null) {\n        this.response = response;\n    }\n}\nexport class CompleteEvent{\n    response : Response\n    constructor(response : Response) {\n        this.response = response;\n    }\n}\nexport class AfterSendEvent{\n    response : Response | null\n    constructor(response : Response | null) {\n        this.response = response;\n    }\n}","let counter = 1001;\nexport const WorkerChannelURIConstants = {\n\t\tQUEUE_ACTION_RESPONSE          : counter++,\n\t\tENGINE_RESPONSE                : counter++,\n\t\tREFRESH_TILE                   : counter++,\n\t\tTAB_PROFILE_QUERY              : counter++,\n\t\tUNDO                           : counter++,\n\t\tHASHED_ACTION_ERROR_RESPONSE   : counter++,\n\t\tDUMMY                          : counter++\n\t};","//TODO: See if this is needed. Remove if possible\nclass WorkerConnectionManagerClass {\n\tconstructor() {\n\t\tthis.workerConnections = new Map(); // Map of <connectionID(Number), WorkerConnection> \n\t}\n\n\tregister(connectionID, workerConnection) {\n\t\tthis.workerConnections.set(connectionID, workerConnection);\n\t}\n\n\tunRegister(connectionID) {\n\t\tthis.workerConnections.delete(connectionID);\n\t}\n\n\tcloseAllConnections() {\n\t\tthis.workerConnections.forEach((workerConnection, connectionID, workerConnections) => {\n\t\t\tworkerConnection.close();\n\t\t});\n\t}\n\n\tdispatchMessage(connectionID, message) {\n\t\tconst workerConnection = this.workerConnections.get(connectionID);\n\t\tworkerConnection.dispatchMessage(message);\n\t}\n}\n\nexport const WorkerConnectionManager = new WorkerConnectionManagerClass();","import { WORKER_CONNECTION_END, WORKER_CONNECTION_MESSAGE, WORKER_CONNECTION_START } from \"../../Constants/URIConstants.js\";\nimport { EventEmitter } from \"../../Utility/EventEmitter.js\";\nimport { EventExecutionProperties } from \"../../Utility/IRequestActionEventProperties.ts\";\nimport { WorkerConnectionManager } from \"./WorkerConnectionManager.js\";\nimport { WorkerRequest } from \"./WorkerRequest.ts\";\n\nconst EVENTS = {\n\tSUCCESS: 'success', // No I18N\n\tFAILURE: 'failure', // No I18N\n\tMESSAGE: 'message' // No I18N\n};\n\nexport class WorkerConnection extends EventEmitter {\n\tconstructor(uri) {\n\t\tsuper(null, [EVENTS.SUCCESS, EVENTS.FAILURE, EVENTS.MESSAGE]);\n\t\tthis.uri = uri;\n\t\tthis.params = null;\n\t\tthis.connectionID = null; // This will be set once the connection is established with the worker end. See success callback of WorkerConnectionStart request\n\t\tthis.isOpen = false;\n\t}\n\n\topen() {\n\t\tconst thisWorkerConnection = this;\n\t\tconst eventExecutionProperties = new EventExecutionProperties();\n\t\teventExecutionProperties.addSuccessCallback(({response}) => {\n\t\t\tconst resp = response;\n\t\t\tconst connectionID = thisWorkerConnection.connectionID = resp.connectionID;\n\t\t\tWorkerConnectionManager.register(connectionID, thisWorkerConnection);\n\t\t\tthisWorkerConnection.dispatchEvent(EVENTS.SUCCESS, new WorkerConnectionStartEvent(true));\n\t\t});\n\t\teventExecutionProperties.addFailureCallback(({response}) => {\n\t\t\tthisWorkerConnection.dispatchEvent(EVENTS.FAILURE, new WorkerConnectionStartEvent(false));\n\t\t});\n\t\tconst workerRequest = new WorkerRequest(WORKER_CONNECTION_START, eventExecutionProperties);\n\t\tworkerRequest.setParams({\n\t\t\tCONNECTION_URI: this.uri,\n\t\t\tCONNECTION_PARAM: this.params\n\t\t});\n\t\tworkerRequest.send();\n\t\tthis.isOpen = true;\n\t}\n\n\tclose() {\n\t\tWorkerConnectionManager.unRegister(this.connectionID);\n\t\tconst Params = {\n\t\t\tCONNECTION_ID: this.connectionID\n\t\t};\n\t\tconst workerRequest = new WorkerRequest(WORKER_CONNECTION_END);\n\t\tworkerRequest.setParams(Params);\n\t\tworkerRequest.send();\n\t}\n\n\tsetParams(params) {\n\t\tthis.params = params;\n\t}\n\n\tpushMessage(message) {\n\t\tif (!this.isOpen) throw ('Must open the WorkerConnection before pushing the message'); // NO I18N\n\t\tconst workerRequest = new WorkerRequest(WORKER_CONNECTION_MESSAGE);\n\t\tworkerRequest.setParams({\n\t\t\tCONNECTION_ID: this.connectionID,\n\t\t\tCONNECTION_MESSAGE: message\n\t\t});\n\t\tworkerRequest.send();\n\t}\n\n\tdispatchMessage(message) {\n\t\tthis.dispatchEvent(EVENTS.MESSAGE, new WorkerConnectionMessageEvent(message));\n\t}\n\n\tstatic EVENTS = EVENTS;\n}\n\n/* Inner Class */\nfunction WorkerConnectionStartEvent(isSuccess) { // TODO: This should be extended from custom Event class\n\tthis.isSuccess = isSuccess;\n}\n\n/* Inner Class */\nfunction WorkerConnectionMessageEvent(message) { // TODO: This should be extended from custom Event class\n\tthis.message = message;\n}\n","import { WorkerChannelURIConstants } from \"../../Constants/WorkerChannelURIConstants.js\";\nimport { TabProfile } from \"../../TabProfile.js\";\nimport { getCSRFCookie } from \"../../Utility/Cookie.js\";\nimport { getBaseIDFromCurrentURL, getCDNStaticURL } from \"../../Utility/Utility.js\";\nimport { WorkerConnection } from \"./WorkerConnection.js\";\nimport { WorkerConnectionManager } from \"./WorkerConnectionManager.js\";\nconst mainPageWorkerCompressionPath = 'Compression/mainPageWorkerCompression.js';\nexport class AbstractConnector {\n\tconstructor(onMessage, onError) {\n\t\tthis.onmessage               = onMessage;\n\t\tthis.onerror                 = onError;\n\t\tthis.isWorkerImported        = false;\n\t\tthis.isTabRegisteredOnServer = false; // A flag that denotes if the tabID is retrived from the backend.\n\t\tthis.isTabRegisteredOnWorker = false; // A flag that denotes if the tabID is registered from the worker.\n\t\tthis.transientMessageQueue   = []; // This queue is used to store the worker request here till the workers becomes ready.\n\t\tattachListeners.call(this);\n\t}\n\n\tpostWorkerRequest(msg) {\n\t\tconst workerRequestCommand = {\n\t\t\tcommand: 'workerrequest', //No I18N\n\t\t\tmessage: msg\n\t\t};\n\t\tif (this.isTabRegisteredOnWorker && this.transientMessageQueue.length == 0) {\n\t\t\tthis.postMessage(workerRequestCommand);\n\t\t} else {\n\t\t\tthis.transientMessageQueue.push(workerRequestCommand);\n\t\t}\n\t}\n\n\tloadConstants(constantConfs) {\n\t\tvar loadConstantsCommand = {\n\t\t\tcommand: 'loadConstants',\n\t\t\tconstantConfs: constantConfs\n\t\t}\n\t\tthis.postMessage(loadConstantsCommand);\n\t}\n\n\tflushTransientMessageQueue() {\n\t\twhile (this.transientMessageQueue.length > 0) {\n\t\t\tconst message = this.transientMessageQueue.shift();\n\t\t\tthis.postMessage(message);\n\t\t}\n\t}\n\n\tregisterTabToWorker() {\n\t\tconst TabId = TabProfile.getID();\n\t\tif (!this.isTabRegisteredOnServer && TabId && this.isWorkerImported) {\n\t\t\tconst registerTabCommand = {\n\t\t\t\tcommand     : 'registertab', //No I18N\n\t\t\t\ttabID       : TabId,\n\t\t\t\tisTabFocused: globalThis.Table.State.isTabFocused(),\n\t\t\t\tcsrfToken   : getCSRFCookie(),\n\t\t\t\t// baseID   : resourceID               //TODO : Remove if possible.\n\t\t\t\tbaseID      : getBaseIDFromCurrentURL()\n\t\t\t};\n\t\t\tthis.postMessage(registerTabCommand);\n\t\t\tthis.isTabRegisteredOnServer = true;\n\t\t}\n\t}\n\n\treregisterTabToWorker() {\n\t\tconst reregisterTabCommand = {\n\t\t\tcommand: 'reregistertab', //No I18N\n\t\t\ttabID: TabProfile.getID(),\n\t\t\tcsrfToken: getCSRFCookie()\n\t\t};\n\t\tthis.postMessage(reregisterTabCommand);\n\t}\n\n\tremoveTabFromWorker(tabID) {\n\t\tconst removeTabCommand = {\n\t\t\tcommand      : 'removeTab', //No I18N\n\t\t\ttabID        : tabID,\n\t\t\tisTabFocused : globalThis.Table.State.isTabFocused(),\n\t\t\tcsrfToken    : getCSRFCookie(),\n\t\t\tbaseID       : getBaseIDFromCurrentURL()\n\t\t};\n\t\tthis.postMessage(removeTabCommand);\n\t\tthis.isTabRegisteredOnWorker = false;\n\t\tthis.isTabRegisteredOnServer = false;\n\t}\n\n\tonMessageCallback(ev) {\n\t\tconst data = ev.data;\n\t\tconst type = data.type;\n\t\tswitch (type) {\n\t\t\tcase 'appRegistryWorkerFileAck':\n\t\t\t\tthis.postMessage({\n\t\t\t\t\ttype: 'import',\n\t\t\t\t\turl: getCDNStaticURL(mainPageWorkerCompressionPath)\n\t\t\t\t});\n\t\t\t\tbreak;\n\n\t\t\tcase 'acknowledgement': { \n\t\t\t\tthis.isWorkerImported = true;\n\t\t\t\tloadConstants.call(this);\n\t\t\t\tthis.registerTabToWorker();\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase 'tabregistered': {\n\t\t\t\tthis.isTabRegisteredOnWorker = true;\n\t\t\t\tthis.flushTransientMessageQueue();\n\t\t\t\tinitTabProfileWorkerConnection.call(this);\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase 'workerresponse': {\n\t\t\t\tthis.onmessage(ev.data.value);\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase 'connectionmessage': {\n\t\t\t\tconst value = data.value;\n\t\t\t\tconst connectionID = value.connectionID;\n\t\t\t\tconst message = value.message;\n\t\t\t\tWorkerConnectionManager.dispatchMessage(connectionID, message);\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase 'requestReregister': {\n\t\t\t\tthis.reregisterTabToWorker();\n\t\t\t\tbreak;\n\n\t\t\t\t// case 'engineResponse': // Replaced with EngineResponseChannelHandler\n\t\t\t\t// \tparse(data.value);\n\t\t\t}\n\t\t}\n\t}\n\n\tonErrorCallback({\n\t\tdata\n\t}) {\n\t\tthis.onerror(data);\n\t}\n}\n\nfunction loadConstants() {\n\tthis.loadConstants(\n\t\t[\n\t\t\tnew ConstantConf(['Table', 'AppRegistry'] , Table.AppRegistry)\n\t\t]\n\t);\n}\n\nfunction attachListeners() {\n\tconst connector = this;\n\tTabProfile.subscribeToIDUpdate(ev => {\n\t\tconnector.registerTabToWorker();\n\t});\n}\n\nfunction initTabProfileWorkerConnection() {\n\tconst Params = {\n\t\tTAB_ID: TabProfile.getID()\n\t};\n\tconst workerConnection = new WorkerConnection(WorkerChannelURIConstants.TAB_PROFILE_QUERY);\n\tworkerConnection.setParams(Params);\n\tworkerConnection.addEventListener('success', ev => { // TODO: See if it could be removed automatically when the tab is closed.\n\t\tworkerConnection.addEventListener('message', ev => {\n\t\t\tconst result = TabProfile.onQueryFromWorker(ev);\n\t\t\tconst queryID = ev.message.queryID;\n\t\t\tworkerConnection.pushMessage(new TabProfileQueryResultEvent(queryID, result))\n\t\t});\n\t});\n\n\tworkerConnection.addEventListener('failure', ev => { // TODO: See if it could be removed automatically when the tab is closed.\n\n\t});\n\n\tworkerConnection.open();\n}\n\nfunction TabProfileQueryResultEvent(queryID, result) {\n\tthis.queryID = queryID\n\tthis.result = result\n}\n\nfunction ConstantConf(namespaceArray, jsonValue) {\n\tthis.namespaceArray = namespaceArray;\n\tthis.jsonValue      = jsonValue;\n}\n","import { AbstractConnector } from './AbstractWorkerConnector.js';\n\n//Need to change once mozilla supports module in\n// let dedicatedWorkerConnectorPath;\n// if(Table.isDRModeActivated) {\n// \tdedicatedWorkerConnectorPath = Table.useCompression || UserAgent.includes(\"Firefox\") ? '/Compression/dedicatedDRModeWorkerConnector.js' : '/es6/DRModePage/Worker/Server/DedicatedWorkerConnector.js';\n// }\n// else {\n// \tdedicatedWorkerConnectorPath = Table.useCompression || UserAgent.includes(\"Firefox\") ? '/Compression/dedicatedWorkerConnector.js' : '/es6/Worker/Server/DedicatedWorkerConnector.js'\n// }\t\t\n\nconst version = document.currentScript.dataset.buildnumber || Date.now();\n\nconst workerFilePath = '/es6/Worker/Client/WorkerFile.js?v=' + version;\n\nfunction attachListeners() {\n\tconst connector = this;\n\tthis.worker.addEventListener('message', ev => {\n\t\tconnector.onMessageCallback(ev);\n\t});\n\tthis.worker.addEventListener('error', ev => {\n\t\tconnector.onErrorCallback(ev);\n\t});\n}\n\nexport class Connector extends AbstractConnector {\n    constructor(onMessage, onError) {\n\tsuper(onMessage, onError);\n        this.worker    = new globalThis.Worker(workerFilePath, { credentials: 'same-origin' }); // No I18N\n\t\tglobalThis.work = this.worker;\n        attachListeners.call(this);\n    }\n\n    postMessage(msg) {\n        this.worker.postMessage(msg);\n    }\n}","import { WORKER_RESPONSE_CODE_ACKNOWLEDGE } from \"../../Constants/ResponseCode.js\";\nimport { Connector } from \"./DedicatedWorkerConnector.js\";\n\nclass ManagerClass {\n\tconstructor() {\n\t\tthis.conn = null;\n\t\tthis.holder = new RequestHolder();\n\t\tinit.call(this);\n\t}\n\n\tsend(workerRequest) {\n\t\tconst reqObj = this.holder.hold(workerRequest);\n\t\tthis.conn.postWorkerRequest(reqObj);\n\t}\n\n\tprocess(response) {\n\t\tthis.holder.process(response);\n\t}\n\n\tremoveTabProfile(tabID) {\n\t\tthis.conn.removeTabFromWorker(tabID);\n\t}\n}\n\nfunction init() {\n\tconst manager = this;\n\tthis.conn = new Connector(data => {\n\t\tmanager.process(data);\n\t}, () => {\n\n\t});\n}\n\n/* Inner Class */\nclass RequestHolder {\n\tconstructor() {\n\t\tthis.reqId = 0;\n\t\tthis.holder = new Map();\n\t}\n\n\thold(workerRequest) {\n\t\tconst reqObj = {};\n\t\treqObj.KEY = this.reqId;\n\t\treqObj.VALUE = workerRequest.getSerializable();\n\t\tthis.holder.set(this.reqId++, workerRequest);\n\t\treturn reqObj;\n\t}\n\n\tprocess(response) {\n\t\tconst workerRequest = this.holder.get(response.KEY); // TODO: Check if this could be removed when getting itself.\n\t\tworkerRequest.process(response);\n\t\tswitch (response.status) {\n\t\t\tcase WORKER_RESPONSE_CODE_ACKNOWLEDGE:\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tthis.holder.delete(response.KEY);\n\t\t}\n\t}\n}\n\nexport const Manager = new ManagerClass();","import { WORKER_RESPONSE_CODE_ACKNOWLEDGE, WORKER_RESPONSE_CODE_EXCEPTION, WORKER_RESPONSE_CODE_INVALID, WORKER_RESPONSE_CODE_SUCCESS } from \"../../Constants/ResponseCode.js\";\nimport { DisplayErrorToaster } from \"../../ErrorHandling/Utility.js\";\nimport { TabProfile } from \"../../TabProfile.js\";\nimport { AcknowledgeEvent, AfterSendEvent, BeforeSendEvent, ErrorResponse, FailureEvent, IRequestActionEventProperties, SuccessEvent, SuccessResponse } from \"../../Utility/IRequestActionEventProperties.ts\";\n\nimport { Manager } from \"./Manager.js\";\ntype ResponseObject = {\n\tstatus: Number,\n\tresponse:  ErrorResponse | SuccessResponse | Response\n}\n\nexport class WorkerRequest {\n\turi : Number\n\ttabID : Number\n\tEventPropertiesInstance : IRequestActionEventProperties | null\n\tcanExecuteDefaultFailure : boolean\n\tcanExecuteDefaultSuccess : boolean\n\tparams : Object\n\tignoredErrorCodes : Array<any>\n\n\tconstructor(uri : Number , EventPropertiesInstance : IRequestActionEventProperties | null) {\n\t\tthis.uri = uri;\n\t\tthis.EventPropertiesInstance = EventPropertiesInstance;\n\t\tthis.tabID = TabProfile.getID();\n\t\tthis.canExecuteDefaultSuccess = EventPropertiesInstance ? EventPropertiesInstance._canExecuteDefaultSuccess() : true;\n\t\tthis.canExecuteDefaultFailure = EventPropertiesInstance ? EventPropertiesInstance._canExecuteDefaultFailure() : true;\n\t\tthis.params = {};\n\t\tthis.ignoredErrorCodes = [];\n\t}\n\tsetCanExecuteDefaultSuccess(canExecuteDefaultSuccess : boolean){\n\t\tthis.canExecuteDefaultSuccess = canExecuteDefaultSuccess;\n\t}\n\tsetCanExecuteDefaultFailure(canExecuteDefaultFailure : boolean){\n\t\tthis.canExecuteDefaultFailure = canExecuteDefaultFailure;\n\t}\n\t_canExecuteDefaultSuccess(){return this.canExecuteDefaultSuccess}\n\t_canExecuteDefaultFailure(){return this.canExecuteDefaultFailure}\n\t\n\tsetParams(params : Object) {\n\t\tthis.params = params;\n\t}\n\n\tsetIgnoredErrorCodes(ignoredErrorCodes : Array<any>){\n\t\tthis.ignoredErrorCodes = ignoredErrorCodes;\n\t}\n\n\tsend(): void {\n\t\tconst beforeSendEvent = new BeforeSendEvent(null);\n\t\tthis.EventPropertiesInstance && this.EventPropertiesInstance.onBeforeSendCallback(beforeSendEvent)\n\t\tManager.send(this);\n\t\tconst afterSendEvent = new AfterSendEvent(null);\n\t\tthis.EventPropertiesInstance && this.EventPropertiesInstance.onAfterSendCallback(afterSendEvent)\n\t}\n\tprocess(response : ResponseObject) { // This function is called after the response is ready\n\t\tconst status = response.status;\n\t\tconst responseObj = response.response;\n\t\tswitch (status) {\n\t\t\tcase WORKER_RESPONSE_CODE_ACKNOWLEDGE:\n\t\t\t\tconst acknowledgeEvent = new AcknowledgeEvent(responseObj);\n\t\t\t\tthis.EventPropertiesInstance && this.EventPropertiesInstance.onAcknowledgeCallback(acknowledgeEvent)\n\t\t\t\tbreak;\n\t\t\tcase WORKER_RESPONSE_CODE_SUCCESS:\n\t\t\t\tif(this._canExecuteDefaultSuccess()){\n\t\t\t\t\n\t\t\t\t}\n\t\t\t\tconst successEvent = new SuccessEvent(responseObj);\n\t\t\t\tthis.EventPropertiesInstance && this.EventPropertiesInstance.onSuccessCallback(successEvent)\n\t\t\t\tbreak;\n\t\t\tcase WORKER_RESPONSE_CODE_EXCEPTION:\n\t\t\tcase WORKER_RESPONSE_CODE_INVALID:\n\t\t\t\tif(this._canExecuteDefaultFailure()){\n\t\t\t\t\tconst errorCode = responseObj && responseObj.ERROR_CODE; // responseObj is null on a transport-level failure (status 0); guard avoids an uncaught TypeError that would otherwise skip onFailureCallback below and leak the RequestHolder entry\n\t\t\t\t\tif(errorCode && !this.ignoredErrorCodes.includes(errorCode)){\n\t\t\t\t\t\tDisplayErrorToaster(errorCode, response);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tconst failureEvent = new FailureEvent(responseObj)\n\t\t\t\tthis.EventPropertiesInstance && this.EventPropertiesInstance.onFailureCallback(failureEvent)\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tgetSerializable() { // This function must return object that could be serializable using 'The structured clone algorithm'. Refer: https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Structured_clone_algorithm //No I18N\n\t\treturn {\n\t\t\turi: this.uri,\n\t\t\ttabID: this.tabID,\n\t\t\tparams: this.params\n\t\t}\n\t}\n}\n","import { CLOSE_LINK_FIELD_TRANSACTION } from \"../../Constants/URIConstants.js\";\nimport { BaseID } from \"../../Types\";\nimport { EventExecutionProperties } from \"../../Utility/IRequestActionEventProperties\";\nimport { WorkerRequest } from \"../../Worker/Client/WorkerRequest\";\n\nexport function CloseLinkFieldTransactionAction(baseID: BaseID, transactionID: string): Promise<void> {\n\treturn new Promise((resolve, reject) => {\n\n\t\tconst Params = {\n\t\t\tBASEID       : baseID,\n\t\t\tTRANSACTIONID: transactionID\n\t\t}\n\n\t\tconst eventExecutionProperties = new EventExecutionProperties()\n\t\teventExecutionProperties.addSuccessCallback(() => resolve())\n\t\teventExecutionProperties.addFailureCallback(({ response }: { response: any }) => reject(response))\n\n\t\tconst workerRequest = new WorkerRequest(CLOSE_LINK_FIELD_TRANSACTION, eventExecutionProperties)\n\t\tworkerRequest.setCanExecuteDefaultFailure(false)\n\t\tworkerRequest.setParams(Params)\n\t\tworkerRequest.send()\n\t})\n}\n","import { FILTER_LINK_FIELD_DATA } from \"../../Constants/URIConstants.js\";\nimport { BaseID, RecordID } from \"../../Types\";\nimport { EventExecutionProperties } from \"../../Utility/IRequestActionEventProperties\";\nimport { WorkerRequest } from \"../../Worker/Client/WorkerRequest\";\n\nexport function FilterLinkFieldDataAction(baseID: BaseID, transactionID: string, searchTerm: string): Promise<Array<RecordID> | null> {\n\treturn new Promise((resolve, reject) => {\n\n\t\tconst Params = {\n\t\t\tBASEID       : baseID,\n\t\t\tTRANSACTIONID: transactionID,\n\t\t\tSEARCH_TERM  : searchTerm\n\t\t}\n\n\t\tconst eventExecutionProperties = new EventExecutionProperties()\n\t\teventExecutionProperties.addSuccessCallback(({ response }: { response: Array<RecordID> | null }) => resolve(response))\n\t\teventExecutionProperties.addFailureCallback(({ response }: { response: any }) => reject(response))\n\n\t\tconst workerRequest = new WorkerRequest(FILTER_LINK_FIELD_DATA, eventExecutionProperties)\n\t\tworkerRequest.setCanExecuteDefaultFailure(false)\n\t\tworkerRequest.setParams(Params)\n\t\tworkerRequest.send()\n\t})\n}\n","import { OPEN_LINK_FIELD_TRANSACTION } from \"../../Constants/URIConstants.js\";\nimport { BaseID, FieldID, TableID, ViewID } from \"../../Types\";\nimport { EventExecutionProperties } from \"../../Utility/IRequestActionEventProperties\";\nimport { WorkerRequest } from \"../../Worker/Client/WorkerRequest\";\n\nexport function OpenLinkFieldTransactionAction(baseID: BaseID, tableID: TableID, viewID: ViewID, fieldID: FieldID): Promise<string> {\n\treturn new Promise((resolve, reject) => {\n\n\t\tconst Params = {\n\t\t\tBASEID : baseID,\n\t\t\tTABLEID: tableID,\n\t\t\tVIEWID : viewID,\n\t\t\tFIELDID: fieldID\n\t\t}\n\n\t\tconst eventExecutionProperties = new EventExecutionProperties()\n\t\teventExecutionProperties.addSuccessCallback(({ response }: { response: { transactionID: string } }) => resolve(response.transactionID))\n\t\teventExecutionProperties.addFailureCallback(({ response }: { response: any }) => reject(response))\n\n\t\tconst workerRequest = new WorkerRequest(OPEN_LINK_FIELD_TRANSACTION, eventExecutionProperties)\n\t\tworkerRequest.setCanExecuteDefaultFailure(false)\n\t\tworkerRequest.setParams(Params)\n\t\tworkerRequest.send()\n\t})\n}\n","import { getTemplate } from \"../../../TemplatesForAll.js\";\n\nconst HIDE_CSS = 'hide';\n\nexport  class CreateNewRecordButton {\n\n    private dom: HTMLElement;\n    contentDom: HTMLElement;\n    createNewRecordContent: HTMLElement;\n    createNewRecordWithNameContent: HTMLElement;\n    createNewRecordLoader: HTMLElement;\n    name !: string | null;\n\n    constructor() {\n        const template                      = getTemplate('createNewRecordTemplate') as HTMLElement; // No I18N\n        this.dom                            = template.querySelector('#createNewRecord') as HTMLElement; // No I18N\n        this.contentDom\t\t\t\t\t\t= template.querySelector('#createNewRecordSpan') as HTMLElement//No I18N\n        this.createNewRecordContent         = template.querySelector('#createNewRecordContent')as HTMLElement; // No I18N\n        this.createNewRecordWithNameContent = template.querySelector('#createNewRecordWithNameContent')as HTMLElement; // No I18N\n        this.createNewRecordLoader          = template.querySelector('#createNewRecordLoader') as HTMLElement; // No I18N\n        this.createNewRecordLoader.remove();\n\n        this.name = null;\n\n        this.addListener();\n    }\n\n    addListener() {\n\t\tthis.dom.addEventListener('click', () => {\n\t\t\tthis.showLoader();\n\t\t})\n\t}\n\n    appendTo(container : HTMLElement) {\n\t\tcontainer.append(this.dom);\n\t}\n\n    showLoader(){\n\t\tthis.dom.prepend(this.createNewRecordLoader);\n\t\tthis.dom.classList.add(\"ZTCL-active\");\n\t\tthis.contentDom.textContent = Table.Constants.JSMsg['UI.tables.linkFieldDialog.creatingARecord']\n\t\t\n\t}\n\n    hideLoader(){\n\t\tthis.contentDom.textContent = Table.Constants.JSMsg[\"UI.tables.linkFieldDialog.createNewRecord\"];\n\t\tthis.dom.classList.remove(\"ZTCL-active\");\n\t\tthis.createNewRecordLoader.remove();\n\t}\n\n    setNewRecordName(name : string) {\n\t\tthis.name = name;\n\t\tthis.resetDomContent();\n\t}\n\n    resetDomContent() {\n\t\tthis.contentDom.textContent = Table.Constants.JSMsg[\"UI.tables.linkFieldDialog.createNewRecord\"];\n\t\tif(this.name && this.name.length > 0) {\n\t\t\tthis.contentDom.textContent += \" \" + Table.Constants.JSMsg[\"UI.tables.linkFieldDialog.createNewRecordWithName\"] + \" '\" + this.name + \"'\";\n\t\t}\n\t}\n\n    hideButton() {\n\t\tthis.dom.classList.add(HIDE_CSS);\n\t}\n\n\tshowButton() {\n\t\tthis.dom.classList.remove(HIDE_CSS);\n\t}\n}","import { getFieldStylesByType } from \"../../../Constants/FieldTypeStyles.js\";\nimport { getFieldTypeSpecificationsByInstance } from \"../../../DataStore/DS/Storage/fieldType/FieldTypeSpecifications.js\";\nimport { getValueHolder } from \"../../../Dom/Middle/LinkField/LinkFieldReadOnlyComponentUtility.js\";\nimport { getTemplate } from \"../../../Utility/GetTemplate.js\";\n\nexport class LinkListRenderer {\n    private param: any;\n\n    private componentArr : any[] = []\n\n    private recordTemplate !: HTMLElement;\n\n    private checkboxElement !: HTMLElement;\n    private stepperElement !: HTMLElement;\n    private stepperCountElement !: HTMLInputElement;\n    private stepperDecrementButton !: HTMLButtonElement;\n    private stepperIncrementButton !: HTMLButtonElement;\n    private isEditingStepperCount = false;\n\n    init(param: any) {\n        this.param = param;\n        \n         this.recordTemplate = getLinkTemplate('dg-linkFielddropdownOptionTemplate');\n\n        const recordId = this.param.getCurrentRecordIds()[this.param.rowIndex];\n\n        const headerTitle = this.recordTemplate.querySelector('#linkOptionHeaderTitle') as HTMLElement;\n        const fieldKeys = this.param.fieldKeys;\n        headerTitle.innerText = this.getFormattedValue();\n\n        const body = this.recordTemplate.querySelector('#linkOptionBodyContainer') as HTMLElement;\n        for (let i = 1; i < fieldKeys.length; i++) {\n            const fieldId = this.param.fieldIds[i]\n            const components = getLinkTemplate('dg-linkFieldBodyItemTemplate')  as HTMLElement;\n            const componentKey = components.querySelector('#linkOptionItemLabel') as HTMLElement;\n            componentKey.classList.add('pointerEventsNone');\n            const componentValue = components.querySelector('#linkOptionItemValue') as HTMLElement;\n\n            const componentInstance = this.param.getComponentInstance(recordId, fieldId, componentValue);\n            this.componentArr.push(componentInstance);\n\n            componentKey.innerText = fieldKeys[i];\n            const componentElement = componentInstance.getElement();\n            componentElement && componentValue.appendChild(componentElement);\n\n            body.appendChild(components);\n        }\n        \n        const recordElement = this.recordTemplate.querySelector('#linkOptionLabelText') as HTMLElement;\n        this.initRowInteraction(recordId);\n\n        recordElement.addEventListener('click', (event) => {\n\n            if(event.target instanceof HTMLInputElement && event.target.type === 'checkbox') { \n                return;\n            }\n            if (this.isDuplicateStepperTarget(event.target)) {\n                return;\n            }\n            if (this.checkboxElement.contains(event.target as Node)) {\n                return;\n            }\n            const rowSelection = this.param.apiHandler.getRowSelectionAPI();\n            const selectionIndexObject = {\n                rowIndex   : this.param.rowIndex,\n                pinPosition: 'middle',\n                parentKeys : []\n            }\n            const isSelected = rowSelection.isRowSelected(selectionIndexObject);\n            const selectionParam = { rowIndex : this.param.rowIndex, parentKeys : [], pinPosition : 'middle' }\n            if(!isSelected) {\n                rowSelection.selectRow(selectionParam);\n            }\n            else {\n                rowSelection.deSelectRow(selectionParam);\n            }\n            this.param.updateLinkField();\n        });\n        \n    }\n\n    private initRowInteraction(recordId: string) : void {\n        this.checkboxElement = this.recordTemplate.querySelector('#linkOptionCheckbox') as HTMLElement;\n        this.stepperElement = this.recordTemplate.querySelector('#linkOptionDuplicateStepper') as HTMLElement;\n        this.stepperCountElement = this.recordTemplate.querySelector('#linkOptionDuplicateCount') as HTMLInputElement;\n        this.stepperDecrementButton = this.recordTemplate.querySelector('#linkOptionDuplicateDecrement') as HTMLButtonElement;\n        this.stepperIncrementButton = this.recordTemplate.querySelector('#linkOptionDuplicateIncrement') as HTMLButtonElement;\n\n        if (this.stepperCountElement) {\n            this.stepperCountElement.addEventListener('click', (event) => {\n                event.stopPropagation();\n            });\n            this.stepperCountElement.addEventListener('focus', () => {\n                this.isEditingStepperCount = true;\n            });\n            this.stepperCountElement.addEventListener('keydown', (event) => {\n                event.stopPropagation();\n                if (event.key === 'Enter') {\n                    event.preventDefault();\n                    this.commitStepperCountInput(recordId);\n                    this.stepperCountElement.blur();\n                } else if (event.key === 'Escape') {\n                    event.preventDefault();\n                    this.isEditingStepperCount = false;\n                    this.stepperCountElement.blur();\n                    const count = this.param.getSelectedRecordIDCount(recordId);\n                    this.updateStepperUI(Math.max(count, 1), count > 0);\n                }\n            });\n            this.stepperCountElement.addEventListener('input', () => {\n                this.stepperCountElement.value = this.stepperCountElement.value.replace(/\\D/g, '');\n            });\n            this.stepperCountElement.addEventListener('blur', () => {\n                this.commitStepperCountInput(recordId);\n            });\n        }\n\n        this.checkboxElement.addEventListener('click', (event) => {\n            event.stopPropagation();\n            event.preventDefault();\n            const rowSelection = this.param.apiHandler.getRowSelectionAPI();\n            const selectionParam = { rowIndex : this.param.rowIndex, parentKeys : [], pinPosition : 'middle' };\n            const selectionIndexObject = {\n                rowIndex   : this.param.rowIndex,\n                pinPosition: 'middle',\n                parentKeys : []\n            };\n            const isSelected = rowSelection.isRowSelected(selectionIndexObject);\n            if (isSelected) {\n                rowSelection.deSelectRow(selectionParam);\n            } else {\n                rowSelection.selectRow(selectionParam);\n            }\n            this.param.updateLinkField();\n        });\n\n        if (this.stepperDecrementButton) {\n            this.stepperDecrementButton.addEventListener('click', (event) => {\n                event.stopPropagation();\n                event.preventDefault();\n                this.param.decrementRecordCount(recordId);\n            });\n        }\n\n        if (this.stepperIncrementButton) {\n            this.stepperIncrementButton.addEventListener('click', (event) => {\n                event.stopPropagation();\n                event.preventDefault();\n                this.param.incrementRecordCount(recordId);\n            });\n        }\n\n        if (this.isDuplicateLinkingEnabled() && this.param.registerRecordStepper && this.stepperElement) {\n            this.param.registerRecordStepper(recordId, {\n                updateStepper: this.updateStepperUI.bind(this)\n            });\n        } else if (this.stepperElement) {\n            this.stepperElement.classList.add('dg-link-field-duplicate-stepper--hidden');\n        }\n\n        const syncRowSelectionVisual = () => {\n            const rowSelection = this.param.apiHandler.getRowSelectionAPI();\n            const isSelected = rowSelection.isRowSelected({\n                rowIndex   : this.param.rowIndex,\n                pinPosition: 'middle',\n                parentKeys : []\n            });\n            this.recordTemplate.classList.toggle('dg-link-field-row--selected', isSelected);\n\n            if (this.isDuplicateLinkingEnabled()) {\n                const count = this.param.getSelectedRecordIDCount(recordId);\n                this.updateStepperUI(isSelected ? Math.max(count, 1) : 1, isSelected);\n            } else if (this.stepperElement) {\n                this.stepperElement.classList.add('dg-link-field-duplicate-stepper--hidden');\n            }\n        };\n\n        this.param.registerRecordSelectionSync?.(recordId, syncRowSelectionVisual);\n        syncRowSelectionVisual();\n    }\n\n    private isDuplicateLinkingEnabled() : boolean {\n        return this.param.isAllowDuplicateLinkedRecords();\n    }\n\n    private isDuplicateStepperTarget(target: EventTarget | null) : boolean {\n        return !!(target instanceof HTMLElement && target.closest('.dg-link-field-duplicate-stepper'));\n    }\n\n    private commitStepperCountInput(recordId: string) : void {\n        const parsedCount = parseInt(this.stepperCountElement.value);\n        this.isEditingStepperCount = false;\n        this.param.setRecordCount(recordId, Number.isNaN(parsedCount) ? 0 : parsedCount);\n        this.param.onStepperBlur?.(recordId);\n    }\n\n    private updateStepperUI(count: number, visible: boolean) : void {\n        if (!this.stepperElement || !this.stepperCountElement) {\n            return;\n        }\n        const shouldShowStepper = visible && this.isDuplicateLinkingEnabled();\n        if (!this.isEditingStepperCount) {\n            this.stepperCountElement.value = `${count}`;\n        }\n        this.stepperElement.classList.toggle('dg-link-field-duplicate-stepper--hidden', !shouldShowStepper);\n    }\n\n    getElement(): HTMLElement {\n        return this.recordTemplate;\n    }\n\n\n    getFormattedValue() : string {\n        const primaryFieldId = this.param.fieldIds[0];\n        const fieldMeta = this.param.getFieldMeta(primaryFieldId);\n        const fieldInstance = fieldMeta.getType();\n        const fieldType = fieldInstance.getType();\n\n\n        const fieldKeys = this.param.fieldKeys;\n        const fieldValue = this.param.data[fieldKeys[0]];\n\n        const fieldTypeSpecification = getFieldTypeSpecificationsByInstance(fieldInstance);\n        const styles = getFieldStylesByType(fieldType, fieldTypeSpecification);\n        const valueHolder = getValueHolder(fieldType, fieldValue, fieldTypeSpecification, styles, this.getLinkFieldInteracter());\n        const formattedString = valueHolder.toFormattedString();\n        return formattedString;\n    }\n\n    getLinkFieldInteracter() {\n        return {\n            getDataStore : () => {\n                return this.param.linkDataStore;\n            },\n            getBaseID: () => {\n                return this.param.baseID;\n            }\n        }\n    }\n\n    destroy() : void {\n    }\n}\n\nexport function getLinkTemplate(templateId : string) {\n    const recordTemplate = getTemplate(templateId);\n    const div = document.createElement('div');\n    if (recordTemplate instanceof DocumentFragment) {\n        div.appendChild(recordTemplate.cloneNode(true));\n    } else if (recordTemplate instanceof HTMLElement) {\n        div.appendChild(recordTemplate);\n    }\n    return div.firstElementChild as HTMLElement;\n}\n","import { debounce } from \"../../../_auxillaries/Debounce\";\nimport { CloseLinkFieldTransactionAction } from \"../../../Actions/LinkField/CloseLinkFieldTransactionAction\";\nimport { FilterLinkFieldDataAction } from \"../../../Actions/LinkField/FilterLinkFieldDataAction\";\nimport { OpenLinkFieldTransactionAction } from \"../../../Actions/LinkField/OpenLinkFieldTransactionAction\";\nimport { getNewFieldTypeSpecifications } from \"../../../DataStore/DS/Storage/fieldType/FieldTypeSpecifications.js\";\nimport {\n    encodeLinkSubmitValue\n} from \"../../../Utility/LinkFieldCompactUtility.ts\";\nimport { getOppositeTableID } from \"../../../View/Grid/Pane/FieldTypeComponents/Utilities/ExtraUtilitiesForCallback.js\";\nimport { getLightColor } from \"../../FieldTypeComponentsFormater\";\nimport { FIELD_TYPE_COMPONENTS_MANAGER_PARAMS } from \"../../FieldTypeConfigTypes\";\nimport { GRID_RENDER_READ_WRITE } from \"../../FieldTypeConstants\";\nimport { CreateNewRecordButton } from \"./CreateNewRecordHandler\";\nimport { ILinkDataProvider } from \"./LinkDataProvider\";\nimport { LinkListRenderer } from \"./LinkFieldListRenderer\";\n\nconst globalT = globalThis as any;\n\nconst DEFAULT_PLACEHOLDER_FOR_CREATE_NEW_RECORD = Table.Constants.JSMsg['UI.tables.linkFieldDialog.createNewRecord']\nconst DEFAULT_PLACEHOLDER_FOR_NAMED = Table.Constants.JSMsg['UI.tables.linkFieldDialog.createNewRecordWithName']\n\nexport class LinkDialogComponent {\n\n    private linkDataProvider !: ILinkDataProvider;\n\n    private listInstance : any;\n\n    private recordIdsInList : string[] = [];\n    private multiSelectInteracter: any;\n    private newSelectionIds !: string[];\n\n    private dialogElement !: HTMLElement;\n\n\n    private recordStepperHandlers: Map<string, { updateStepper: (count: number, visible: boolean) => void }> = new Map();\n    private recordSelectionSyncHandlers: Map<string, () => void> = new Map();\n    private isSyncingListSelection = false;\n    private debouncedFilterData : (searchTerm : string) => void = () => {};\n    private searchRequestSeq : number = 0;\n    private searchTransactionID : string | null = null;\n    private isDestroyed : boolean = false;\n\n    constructor(linkDataProvider : any, multiSelectInteracter : any, dialogComponent : HTMLElement) {\n        this.multiSelectInteracter = multiSelectInteracter\n        this.linkDataProvider = linkDataProvider;\n        this.dialogElement = dialogComponent;\n        this.constructList();\n        \n    }\n\n    isDialogOpen() : boolean {\n        return this.listInstance != null;\n    }\n\n    destroy() : void {\n        this.isDestroyed = true;\n        this.closeSearchTransaction();\n        this.listInstance && this.listInstance.api.destroyGrid();\n        this.listInstance = null;\n        this.recordIdsInList = [];\n        this.newSelectionIds = [];\n        this.recordStepperHandlers.clear();\n        this.recordSelectionSyncHandlers.clear();\n        this.dialogElement.classList.remove('dg-dropdown__container--allow-duplicate-links');\n        this.multiSelectInteracter = null;\n        const linkDataStore = this.linkDataProvider.getLinkDataStore();\n        linkDataStore && linkDataStore.resetSelectedRecordIDs();\n    }\n\n    // value getter\n\n    getSelectedRecordIDs() : string {\n        const linkDataStore = this.linkDataProvider.getLinkDataStore();\n        if (!linkDataStore) {\n            const chipIds = this.multiSelectInteracter?.getSelectedRecordIds?.() || [];\n            return encodeLinkSubmitValue(\n                chipIds,\n                this.linkDataProvider.getAllowDuplicateLinkedRecords()\n            );\n        }\n        const recordIds = linkDataStore.getSelectedRecordIDs();\n        return encodeLinkSubmitValue(\n            recordIds,\n            this.linkDataProvider.getAllowDuplicateLinkedRecords(),\n            linkDataStore.getSelectedRecordCounts()\n        );\n    }\n\n    getFormattedValue() : string {\n        const linkDataStore = this.linkDataProvider.getLinkDataStore();\n        if (!linkDataStore) {\n            return this.multiSelectInteracter?.getSelectedValues?.()?.length\n                ? JSON.stringify([\n                    this.multiSelectInteracter.getSelectedRecordIds(),\n                    this.multiSelectInteracter.getSelectedValues()\n                ])\n                : '';\n        }\n        const selectedRecordIds = linkDataStore.getSelectedRecordIDs();\n        const primaryFieldId = this.linkDataProvider.getPrimaryFieldId();\n        // array[1] must stay raw leaf values (option ids). getLinkFieldMetas formats for display.\n        const dataArr = selectedRecordIds.map((recordId : string) => {\n            return this.linkDataProvider.getData(recordId, primaryFieldId);\n        });\n\n        if (selectedRecordIds.length === 0) {\n            return '';\n        }\n\n        const resultArr : any[] = [selectedRecordIds, dataArr];\n        if (this.linkDataProvider.getAllowDuplicateLinkedRecords()) {\n            resultArr.push(linkDataStore.getSelectedRecordCountsArray());\n        }\n\n        return JSON.stringify(resultArr);\n    }\n\n    private getSelectionsOutsideList(recordIdsInScope : string[]) : string[] {\n        const linkDataStore = this.linkDataProvider.getLinkDataStore();\n        if (!linkDataStore) {\n            return [];\n        }\n        const idsInScope = new Set(recordIdsInScope);\n        const outsideSelections : string[] = [];\n        const selectedRecordIDs = linkDataStore.getSelectedRecordIDs();\n        for (let i = 0; i < selectedRecordIDs.length; i++) {\n            const recordId = selectedRecordIDs[i];\n            if (!idsInScope.has(recordId) && outsideSelections.indexOf(recordId) === -1) {\n                outsideSelections.push(recordId);\n            }\n        }\n        return outsideSelections;\n    }\n\n    constructList() : void {\n        const fieldId = this.linkDataProvider.getFieldId();\n        const fetchLinkFieldRecordMeta = this.linkDataProvider.getFetchLinkFieldRecordMeta();\n\n        const onFetchSuccess = (response : any) => {\n            if (this.isDestroyed || !this.multiSelectInteracter) {\n                return;\n            }\n            const linkDataStore = response.linkFieldDataStore;\n            this.linkDataProvider.setLinkDataStore(linkDataStore);\n            linkDataStore.setAllowDuplicateLinkedRecords(this.linkDataProvider.getAllowDuplicateLinkedRecords());\n            this.syncDuplicateLinkingMode();\n\n            const chipIdSet = new Set(this.multiSelectInteracter.getSelectedRecordIds());\n            const seedIds = this.linkDataProvider.getAlreadySelectedIds();\n            const seedCounts = this.linkDataProvider.getAlreadySelectedCounts();\n            const initialSelectionIds : string[] = [];\n            const initialSelectionCounts : number[] = [];\n            for (let i = 0; i < seedIds.length; i++) {\n                const seedId = seedIds[i];\n                if (!chipIdSet.has(seedId)) {\n                    continue;\n                }\n                initialSelectionIds.push(seedId);\n                initialSelectionCounts.push(\n                    seedCounts[i] != null && Number(seedCounts[i]) > 0 ? Number(seedCounts[i]) : 1\n                );\n            }\n            if (initialSelectionIds.length) {\n                linkDataStore.setSelectedRecordIDs(initialSelectionIds, initialSelectionCounts);\n            } else {\n                linkDataStore.resetSelectedRecordIDs();\n            }\n\n            this.recordIdsInList = this.linkDataProvider.getLinkedRecordIds();\n            this.multiSelectInteracter.updateMultiselectOption();\n            this.constructListView();\n            this.focusSearchInput();\n            this.hideLoader();\n            // this.updateListSelection();\n            this.addListeners();\n            const preFilledTerm = (this.dialogElement.querySelector('#search') as HTMLInputElement).value.trim().toLowerCase();\n            if (preFilledTerm) {\n                this.filterData(preFilledTerm);\n            }\n        };\n\n        const onFetchFailure = (_response : any) => {\n            this.linkDataProvider.getFieldCellEventHandler().stopEditing();\n        };\n\n        this.openSearchTransaction();\n        fetchLinkFieldRecordMeta(fieldId, onFetchSuccess, onFetchFailure);\n       \n    }\n\n    constructListView() : void {\n        const listContainer = this.dialogElement.querySelector('#recordContainer') as HTMLElement;\n\n        const rowCount = this.linkDataProvider.getLinkedRecordCount();\n        const getRowHeight = ()=> 120;\n        const isFullWidthRow = ()=>true;\n        const rowModelType = 'remote';\n        const listConfiguration = {\n            rowHeights : getRowHeight,\n            rowModelType : rowModelType,\n            isFullWidthRow : isFullWidthRow,\n            rowCount : rowCount,\n            cacheBlockSize : rowCount,\n            cacheBlockCount : 5,\n            rowDefinitions : (rowParam : any) => {\n                return {rowId : this.recordIdsInList[rowParam.rowIndex]};\n            },\n            rowData : this.getRowData.bind(this),\n            events : {\n                onAfterRowSelect : this.onAfterRowSelection.bind(this),\n                onAfterRowDeselect : this.onAfterRowDeselection.bind(this)\n            },\n            filter : true,\n            rowSelection : 'multiple',\n            fullWidthCellRenderer : LinkListRenderer,\n            fullWidthCellRendererParams : this.getRendererParams.bind(this),\n            suppressCellFocusOnSelection: true\n        }\n        this.listInstance = new globalT.DataGrid.List(listContainer, listConfiguration);\n    }\n\n    //list apis\n\n    private getRowData(params : any) : any {\n        const startIndex = params.startRowIndex;\n        const endRowIndex = params.endRowIndex;\n\n        const recordData = [];\n\n        const recordIds = this.recordIdsInList;\n        const fieldIds = this.linkDataProvider.getLinkedFieldIds();\n\n        for (let i = startIndex; i <= endRowIndex; i++) {\n            const recordId = recordIds[i];\n            const rowData : any = {};\n            rowData['recordId'] = recordId;\n            for(let j = 0; j < fieldIds.length; j++) {\n                const fieldId = fieldIds[j];\n\n                const fieldKey = this.linkDataProvider.getLinkedFieldMeta(fieldId).getName(); \n                const fieldValue = this.linkDataProvider.getData(recordId, fieldId);\n                rowData[fieldKey] = fieldValue;\n            }\n            recordData.push(rowData);\n        }\n\n        params.onSuccess({ data: recordData });\n        this.updateListSelection();\n    }\n\n    private onAfterRowSelection(params : any) : void {\n        const fromIndex = params.values[0].from;\n        const toIndex = params.values[0].to;\n\n        if (this.isSyncingListSelection) {\n            this.refreshRecordSteppers(fromIndex.rowIndex, toIndex.rowIndex);\n            this.syncAllRecordSelectionVisuals();\n            return;\n        }\n\n        const linkDataStore = this.linkDataProvider.getLinkDataStore();\n        const allowDuplicateLinkedRecords = this.linkDataProvider.getAllowDuplicateLinkedRecords();\n        const recordIds = this.linkDataProvider.getLinkedRecordIds();\n        const totalRecordCount = recordIds.length;\n        const selectedRecordIDs = linkDataStore.getSelectedRecordIDs();\n        // Count only selections this list holds — records filtered out of the linked view are\n        // selected too, and must not be mistaken for \"every row is already selected\".\n        const outsideListSelections = this.getSelectionsOutsideList(recordIds);\n        const selectedInListCount = selectedRecordIDs.length - outsideListSelections.length;\n\n        if (!allowDuplicateLinkedRecords && selectedInListCount === totalRecordCount && totalRecordCount > 0) {\n            this.multiSelectInteracter.onSelectAll();\n            linkDataStore.setSelectedRecordIDs([...outsideListSelections, ...recordIds]);\n        } else {\n            for(let i = fromIndex.rowIndex; i <= toIndex.rowIndex; i++) {\n                const recordId = this.recordIdsInList[i];\n                if (!recordId) {\n                    continue;\n                }\n                if (allowDuplicateLinkedRecords && linkDataStore.isRecordIDSelected(recordId)) {\n                    continue;\n                }\n\n                const fieldId = this.linkDataProvider.getPrimaryFieldId();\n                const data = this.linkDataProvider.getFormattedValue(recordId, fieldId);\n\n                this.multiSelectInteracter.selectOption({\n                    id : recordId,\n                    linkRecordId : recordId,\n                    linkCount : linkDataStore.getSelectedRecordIDCount(recordId) || 1,\n                    value : data,\n                    color : getLightColor(this.linkDataProvider.getMultiSelectOptionColor())\n                });\n                linkDataStore.addSelectedRecordID(recordId);\n            }\n        }\n        this.refreshRecordSteppers(fromIndex.rowIndex, toIndex.rowIndex);\n        this.syncAllRecordSelectionVisuals();\n        this.updateSelectAllCheckbox();\n        if (this.linkDataProvider.getAllowDuplicateLinkedRecords()) {\n            this.refreshSelectedChips();\n        }\n        this.updateLinkField();\n    }\n\n    private onAfterRowDeselection(params : any) : void {\n        if(params.eventOrigin == 'resetRow') {\n            return;\n        }\n        const fromIndex = params.values[0].from;\n        const toIndex = params.values[0].to;\n\n        if (this.isSyncingListSelection) {\n            this.refreshRecordSteppers(fromIndex.rowIndex, toIndex.rowIndex);\n            this.syncAllRecordSelectionVisuals();\n            return;\n        }\n\n        const linkDataStore = this.linkDataProvider.getLinkDataStore();\n        const allowDuplicateLinkedRecords = this.linkDataProvider.getAllowDuplicateLinkedRecords();\n\n        const selectedCount = this.linkDataProvider.getLinkDataStore().getSelectedRecordIDs().length;\n        if (selectedCount === 0) {\n            this.multiSelectInteracter.onDeselectAll();\n            linkDataStore.resetSelectedRecordIDs();\n        } else {\n            for(let i = fromIndex.rowIndex; i <= toIndex.rowIndex; i++) {\n                const recordId = this.recordIdsInList[i];\n                const isRowSelected = linkDataStore.isRecordIDSelected(recordId);\n                if(isRowSelected) {\n                    if (allowDuplicateLinkedRecords) {\n                        linkDataStore.removeAllSelectedRecordIDs(recordId);\n                        this.multiSelectInteracter.removeAllSelectedOptions(recordId);\n                    } else {\n                        recordId && linkDataStore.removeSelectedRecordID(recordId);\n                        this.multiSelectInteracter.deselectOption(recordId);\n                    }\n                }\n            }\n        }\n\n        this.refreshRecordSteppers(fromIndex.rowIndex, toIndex.rowIndex);\n        this.syncAllRecordSelectionVisuals();\n        this.updateSelectAllCheckbox();\n        if (this.linkDataProvider.getAllowDuplicateLinkedRecords()) {\n            this.refreshSelectedChips();\n        }\n        this.updateLinkField();\n    }\n\n    private syncAllRecordSelectionVisuals() : void {\n        this.recordSelectionSyncHandlers.forEach((syncHandler) => {\n            syncHandler();\n        });\n    }\n\n    private getRendererParams() : any {\n        const fieldIds = this.linkDataProvider.getLinkedFieldIds();\n        const fieldKeys = fieldIds.map((fieldId : string) => { \n            return this.linkDataProvider.getLinkedFieldMeta(fieldId).getName();\n        });\n        const getFieldMeta = this.linkDataProvider.getLinkedFieldMeta.bind(this.linkDataProvider);\n\n        const rendererParams = {\n            getComponentInstance : this.getComponentInstance.bind(this),\n            recordIds : this.linkDataProvider.getLinkedRecordIds(),\n            fieldIds : fieldIds,\n            fieldKeys : fieldKeys,\n            getFieldMeta : getFieldMeta,\n            linkDataStore : this.linkDataProvider.getLinkDataStore(),\n            updateLinkField : this.updateLinkField.bind(this),\n            baseID : this.linkDataProvider.getBaseID(),\n            getCurrentRecordIds : ()=>{return this.recordIdsInList},\n            isAllowDuplicateLinkedRecords: () => this.linkDataProvider.getAllowDuplicateLinkedRecords(),\n            getSelectedRecordIDCount: (recordId: string) => {\n                return this.linkDataProvider.getLinkDataStore().getSelectedRecordIDCount(recordId);\n            },\n            incrementRecordCount: this.incrementRecordCount.bind(this),\n            decrementRecordCount: this.decrementRecordCount.bind(this),\n            setRecordCount: this.setRecordCount.bind(this),\n            onStepperBlur: this.onStepperBlur.bind(this),\n            registerRecordStepper: this.registerRecordStepper.bind(this),\n            registerRecordSelectionSync: this.registerRecordSelectionSync.bind(this)\n        }\n\n        return rendererParams;\n    }\n\n    private updateLinkField() {\n        this.submitLiveLinkSelection();\n    }\n\n    private onStepperBlur() {\n        this.refreshSelectedChips();\n        this.updateLinkField();\n    }\n\n    private submitLiveLinkSelection() {\n        const recordId = this.linkDataProvider.getCurrentRecordId();\n        const fieldId = this.linkDataProvider.getCurrentFieldId();\n        const selectedRecordIds = this.getSelectedRecordIDs();\n        // this.linkDataProvider.updateCellData(recordId, fieldId, selectedRecordIds);\n    }\n\n    private refreshSelectedChips() {\n        if (this.isDestroyed || !this.multiSelectInteracter) {\n            return;\n        }\n        this.multiSelectInteracter.updateMultiselectOption();\n    }\n\n    private getComponentInstance(recordId : string, fieldId : string, parentDOM : HTMLDivElement) : any {\n\n        const baseID = this.linkDataProvider.getBaseID();\n\n        const relationshipDirection = this.linkDataProvider.getRelationshipDirection();\n        const relationId = this.linkDataProvider.getRelationshipID();\n        const oppositeTableID = getOppositeTableID(baseID, relationId, relationshipDirection);\n        const fieldTypeMeta = this.linkDataProvider.getLinkedFieldMeta(fieldId);\n        const fieldInstance = fieldTypeMeta.getType();\n        const fieldType     = fieldInstance.getType();\n        const fieldTypeSpecifications = getNewFieldTypeSpecifications(baseID, oppositeTableID, fieldId);\n        const fieldCellEventHandler = this.linkDataProvider.getFieldCellEventHandler();\n        const cellDataProvider = this.linkDataProvider.getCellDataProvider();\n        const value = this.linkDataProvider.getData(recordId, fieldId);\n        const params : FIELD_TYPE_COMPONENTS_MANAGER_PARAMS\t= {\n            baseID,\n            parentDOM,\n            configType : GRID_RENDER_READ_WRITE,\n            fieldID : fieldId,\n            fieldType,\n            value : value,\n            // fieldMeta,\n            fieldTypeMeta,\n            fieldTypeSpecifications,\n            rowHeight : 50,\n            fieldCellEventHandler : fieldCellEventHandler,\n            cellDataProvider : cellDataProvider,\n            cellElement : parentDOM\n        }\n        // const componentInstance = getGridReadOnlyComponentBasedOnFieldType(params, parentDOM);\n        const componentInstance = cellDataProvider.getComponentInstance().constructComponent(params.fieldType, params)\n        return componentInstance;\n    }\n\n    private updateListSelection() : void {\n        if(!this.listInstance) {\n            return;\n        }\n\n        const linkDataStore = this.linkDataProvider.getLinkDataStore();\n\n        this.isSyncingListSelection = true;\n        try {\n            // Row selection is index based, so filtering remaps every row: reconcile each visible\n            // row against the store instead of only adding the selected ones.\n            for (let rowIndex = 0; rowIndex < this.recordIdsInList.length; rowIndex++) {\n                const selectionParam = {\n                    rowIndex,\n                    parentKeys : [],\n                    pinPosition : 'middle'\n                };\n                const isSelectedInStore = linkDataStore.isRecordIDSelected(this.recordIdsInList[rowIndex]);\n                if (isSelectedInStore === this.listInstance.selectionAPI.isRowSelected(selectionParam)) {\n                    continue;\n                }\n                if (isSelectedInStore) {\n                    this.listInstance.selectionAPI.selectRow(selectionParam);\n                }\n                else {\n                    this.listInstance.selectionAPI.deSelectRow(selectionParam);\n                }\n            }\n        } finally {\n            this.isSyncingListSelection = false;\n        }\n\n        this.syncAllRecordSelectionVisuals();\n        if (this.recordIdsInList.length > 0) {\n            this.refreshRecordSteppers(0, this.recordIdsInList.length - 1);\n        }\n        this.updateSelectAllCheckbox();\n    }\n\n    // Listeners\n\n    private addListeners() : void {\n        const canCreateNewRecord = this.linkDataProvider.canCreateNewRecord();\n        this.addSearchEventListener();\n        this.addSelectAllEventListener();\n        canCreateNewRecord &&this.createNewRecordListener();\n    }\n\n    addSearchEventListener() {\n        const searchInput = this.dialogElement.querySelector('#search') as HTMLInputElement;\n\n        this.debouncedFilterData = debounce((searchTerm : string) => this.filterData(searchTerm), 200);\n\n        searchInput.addEventListener('click', ()=>{\n            searchInput.focus();\n        });\n        \n        searchInput.addEventListener('keydown', (event) => {\n            if (event.key === 'Escape') {\n                this.linkDataProvider.stopEditing();\n            } \n            else if(event.key === 'Enter') {\n                const searchTerm = searchInput.value.toLowerCase();\n                if(searchTerm.length !== 0) {\n                    event.stopPropagation();\n                }\n            }\n            else if(event.key === 'ArrowUp' || event.key === 'ArrowDown' || event.key === 'ArrowLeft' || event.key === 'ArrowRight') {\n                event.stopPropagation();\n            }\n            else if(event.key === ' ') {\n                event.stopPropagation();\n            }\n            searchInput.focus();\n        });\n        searchInput.addEventListener('input', (event) => {\n            const searchTerm = searchInput.value.toLowerCase();\n            this.debouncedFilterData(searchTerm);\n        });\n    }\n\n    addSelectAllEventListener() {\n        const selectAllButton = this.dialogElement.querySelector('#linkSelectAllButton') as HTMLInputElement;\n        const linkDataStore = this.linkDataProvider.getLinkDataStore();\n        selectAllButton.addEventListener('change', (event) => {\n            const isChecked = (event.target as HTMLInputElement).checked;\n            if(isChecked) {\n                const recordIds = this.recordIdsInList; // select only the currently visible (filtered) records\n                // Keep selections this list cannot show ahead of the visible ones — ticking\n                // select-all must never drop a linked record the user can't see.\n                const preservedSelections = this.getSelectionsOutsideList(recordIds);\n                linkDataStore.setSelectedRecordIDs([...preservedSelections, ...recordIds]);//order should not be changed\n                this.listInstance.selectionAPI.selectAllRows();\n\n            }\n            else {\n                // Untick clears only what this list shows. Records filtered out of the linked\n                // view (or hidden by the current search) stay selected — the user can neither\n                // see nor untick them here, so dropping them would silently lose cell data.\n                const preservedSelections = this.getSelectionsOutsideList(this.recordIdsInList);\n                linkDataStore.setSelectedRecordIDs(preservedSelections); //order should not be changed\n                this.isSyncingListSelection = true;\n                try {\n                    this.listInstance.selectionAPI.deSelectAllRows();\n                } finally {\n                    this.isSyncingListSelection = false;\n                }\n                // Store is authoritative now — rebuild chips from it rather than relying on the\n                // per-row deselect events to remove exactly the right ones.\n                this.multiSelectInteracter.updateMultiselectOption();\n            }\n            const selectedRecordIds = this.getSelectedRecordIDs();\n            const recordId = this.linkDataProvider.getCurrentRecordId();\n            const fieldId = this.linkDataProvider.getCurrentFieldId();\n            // this.linkDataProvider.updateCellData(recordId, fieldId, selectedRecordIds);\n\t\t\tthis.updateAllCheckbox();\n        });\n\n\t\tthis.updateSelectAllCheckbox();\n    }\n\n    createNewRecordListener() : void {\n            const footerContainer = this.dialogElement.querySelector('#linkFooterContainer') as HTMLElement;\n            const createNewRecordButton = this.dialogElement.querySelector('#linkCreateNewRecordButton') as HTMLElement;\n            const searchInput = this.dialogElement.querySelector('#search') as HTMLInputElement;\n\n            \n            const createNewRecordHandler = new CreateNewRecordButton();\n\n            const stopLoading = () => {\n                createNewRecordHandler.hideLoader();\n                createNewRecordHandler.hideButton();\n                createNewRecordButton.classList.remove('hide');\n            };\n\n            createNewRecordButton.addEventListener('click', (event) => {\n                event.stopPropagation();\n                const searchTerm = searchInput.value;\n                const baseId = this.linkDataProvider.getBaseID();\n\n                const relationshipDirection = this.linkDataProvider.getRelationshipDirection();\n                const relationId = this.linkDataProvider.getRelationshipID();\n                const oppositeTableID = getOppositeTableID(baseId, relationId, relationshipDirection);\n                const oppositeViewID = this.linkDataProvider.getOppositeViewID();\n\n                const createNewRecordParams = {\n                    updateLinkField : this.updateLinkField.bind(this),\n                    recordName : searchTerm,\n                    oppositeViewID : oppositeViewID,\n                    oppositeTableID : oppositeTableID,\n                    fieldID : this.linkDataProvider.getCurrentFieldId(),\n                    recordID : this.linkDataProvider.getCurrentRecordId(),\n                    stopLoading : stopLoading,\n                    successCallback : (response : any) => {\n                        const linkDataStore = this.linkDataProvider.getLinkDataStore();\n                        linkDataStore.addSelectedRecordID(response.insertRecorId);\n                        this.linkDataProvider.getFieldCellEventHandler().stopEditing();\n                        this.newSelectionIds = [response.insertRecorId];\n                    },\n                    failureCallback : () => {\n                        this.linkDataProvider.getFieldCellEventHandler().stopEditing();\n                    },\n                    leafFieldParameters : this.linkDataProvider.getLeafFieldParameters(),\n                    setSelection : this.setSelectionIdsThroughCreateNewRecord.bind(this)\n                }\n                createNewRecordHandler.appendTo(footerContainer);\n                createNewRecordHandler.showLoader();\n                createNewRecordHandler.showButton();\n                createNewRecordButton.classList.add('hide');\n                const onClickCreateNew = this.linkDataProvider.getCreateNewLinkRecord();\n                onClickCreateNew(createNewRecordParams);\n            });\n\n    }\n\n    setSelectionIdsThroughCreateNewRecord(selectionIds : string[]) : void {\n        this.newSelectionIds = selectionIds;\n    }\n\n    filterData(searchTerm : string) {\n            if(!this.listInstance) {\n                return;\n            }\n            const requestSeq = ++this.searchRequestSeq;\n\n            if(searchTerm.length === 0 || !this.searchTransactionID) {\n                this.applyFilteredRecordIds(this.linkDataProvider.getLinkedRecordIds());\n                this.showSelectAll();\n                return;\n            }\n\n            this.hideSelectAll();\n            FilterLinkFieldDataAction(this.linkDataProvider.getBaseID(), this.searchTransactionID, searchTerm)\n                .then((matchedRecordIDs : string[] | null) => {\n                    if(requestSeq !== this.searchRequestSeq || !this.listInstance) {\n                        return; // stale response or dialog closed\n                    }\n                    if(!matchedRecordIDs) {\n                        // index unavailable in the worker — show everything rather than nothing.\n                        this.applyFilteredRecordIds(this.linkDataProvider.getLinkedRecordIds());\n                        return;\n                    }\n                    const matchedSet = new Set(matchedRecordIDs);\n                    // Keep the rendered order and only records the dialog actually holds.\n                    const orderedIds = this.linkDataProvider.getLinkedRecordIds().filter((id : string) => matchedSet.has(id));\n                    this.applyFilteredRecordIds(orderedIds);\n                })\n                .catch(() => { /* worker search failed; leave the current list as-is */ });\n    }\n\n    private applyFilteredRecordIds(recordIds : string[]) : void {\n        this.recordIdsInList = recordIds;\n        this.updateShowNoResultPanel();\n        this.updateCreateNewRecordButton();\n        this.listInstance.rowAPI.resetRowCaches(recordIds.length);\n        this.updateListSelection();\n    }\n\n    private getCellKeyParams() : any {\n        return {\n            baseID  : this.linkDataProvider.getBaseID(),\n            tableID : this.linkDataProvider.getTableID(),\n            viewID  : this.linkDataProvider.getViewID(),\n            fieldID : this.linkDataProvider.getFieldId()\n        };\n    }\n\n    private openSearchTransaction() : void {\n        const cell = this.getCellKeyParams();\n        OpenLinkFieldTransactionAction(cell.baseID, cell.tableID, cell.viewID, cell.fieldID)\n            .then((transactionID : string) => {\n                if(this.isDestroyed) {\n                    // Dialog was closed before OPEN resolved — clean up the transaction.\n                    CloseLinkFieldTransactionAction(cell.baseID, transactionID).catch(() => {});\n                    return;\n                }\n                this.searchTransactionID = transactionID;\n            })\n            .catch(() => { /* open failed; search falls back to showing all */ });\n    }\n\n    private closeSearchTransaction() : void {\n        if(!this.searchTransactionID) {\n            return;\n        }\n        CloseLinkFieldTransactionAction(this.linkDataProvider.getBaseID(), this.searchTransactionID).catch(() => {});\n        this.searchTransactionID = null;\n    }\n\n\n\n    //UI APIs\n\n    showNoRecordFound() : void {\n        const noRecordFound  = this.dialogElement.querySelector('#noResultPanel') as HTMLElement;\n        noRecordFound.classList.remove('hide');\n    }\n\n    hideNoRecordFound() : void {\n        const noRecordFound  = this.dialogElement.querySelector('#noResultPanel') as HTMLElement;\n        noRecordFound.classList.add('hide');\n    }\n\n    focusSearchInput() : void {\n        const searchInput = this.dialogElement.querySelector('#search') as HTMLInputElement;\n        searchInput.focus();\n    }\n\n    setSearchTerm(value: string) : void {\n        const searchInput = this.dialogElement.querySelector('#search') as HTMLInputElement;\n        if (searchInput) {\n            searchInput.value = value;\n        }\n    }\n\n    hideLoader() : void {\n        const loader = this.dialogElement.querySelector('#loader') as HTMLElement;\n        loader.classList.add('hide');\n    }\n\n    showSelectAll() : void {\n        const selectAllButton = this.dialogElement.querySelector('#linkSelectAllButtonLabel') as HTMLInputElement;\n        selectAllButton.classList.remove('hide');\n    }\n\n    hideSelectAll() : void {\n        const selectAllButton = this.dialogElement.querySelector('#linkSelectAllButtonLabel') as HTMLInputElement;\n        selectAllButton.classList.add('hide');\n    }\n\n    // refreshUISelection() : void {\n    //     const checkboxes = this.dialogElement.querySelectorAll('#linkOptionCheckbox');\n    //     const recordIds = this.linkDataProvider.getLinkedRecordIds();\n\n    //     recordIds.forEach((_recordId : string, index : number) => {\n    //         const isRowSelected = this.listInstance.selectionAPI.isRowSelected({\n    //             rowIndex : index,\n    //             parentKeys : [],\n    //             pinPosition : 'middle'\n    //         });\n    //         const checkbox = checkboxes[index] as HTMLInputElement;\n    //         checkbox && (checkbox.checked = isRowSelected);\n    //     });\n    // }\n\n    updateSelectAllCheckbox() {\n        const selectAllButton = this.dialogElement.querySelector('#linkSelectAllButton') as HTMLInputElement;\n        const selectedRecordIDs = this.linkDataProvider.getLinkDataStore().getSelectedRecordIDs();\n        const totalRecordIDs = this.linkDataProvider.getLinkedRecordIds();\n        const selectedUniqueCount = new Set(selectedRecordIDs).size;\n        let isAllRowsSelected = totalRecordIDs.length > 0;\n        for (let i = 0; i < totalRecordIDs.length; i++) {\n            if (!selectedRecordIDs.includes(totalRecordIDs[i])) {\n                isAllRowsSelected = false;\n                break;\n            }\n        }\n        selectAllButton.checked = isAllRowsSelected;\n\t\tconst linkDataStore = this.linkDataProvider.getLinkDataStore();\n        const totalRowCount = this.recordIdsInList.length; // the currently visible (filtered) rows\n        selectAllButton.checked = totalRowCount > 0 && this.recordIdsInList.every((id : string) => linkDataStore.isRecordIDSelected(id));\n\t}\n\n    updateShowNoResultPanel() : void {\n        const noRecordFound = this.dialogElement.querySelector('#noResultPanel') as HTMLElement;\n        const listContainer = this.dialogElement.querySelector('#recordContainer') as HTMLDivElement;\n        const selectAllButton = this.dialogElement.querySelector('#linkSelectAllButtonLabel') as HTMLInputElement;\n\n        if(this.recordIdsInList.length == 0) {\n            noRecordFound.classList.remove('hide');\n            listContainer.classList.add('hide');\n            selectAllButton.classList.add('hide');\n\n        } \n        else {\n            noRecordFound.classList.add('hide');\n            listContainer.classList.remove('hide');\n            selectAllButton.classList.remove('hide');\n        }\n    }\n\n    updateCreateNewRecordButton() : void {\n        const searchInput = this.dialogElement.querySelector('#search') as HTMLInputElement | null;\n        const createNewRecordButton = this.dialogElement.querySelector('#linkCreateNewButtonLabel') as HTMLElement | null;\n        if (!searchInput || !createNewRecordButton) {\n            return;\n        }\n        const searchTerm = searchInput.value;\n        if(searchTerm.length != 0) {\n            createNewRecordButton.textContent =  `${DEFAULT_PLACEHOLDER_FOR_CREATE_NEW_RECORD} ${DEFAULT_PLACEHOLDER_FOR_NAMED} '${searchTerm}'`;\n        }\n        else {\n            createNewRecordButton.textContent =`${DEFAULT_PLACEHOLDER_FOR_CREATE_NEW_RECORD}`;\n        }\n    }\n\n    updateAllCheckbox() {\n        const selectAllButton = this.dialogElement.querySelector('#linkSelectAllButton') as HTMLInputElement;\n        const checkboxes = this.dialogElement.querySelectorAll('.dg-dropdown__option-checkbox-input');\n\t\tconst isSelectAll = selectAllButton.checked;\n\t\tcheckboxes.forEach(checkbox => {\n\t\t\t(checkbox as HTMLInputElement).checked = isSelectAll;\n\t\t});\n    }\n\n    onAfterChipRemove(id : string) : void {\n        if (!id) {\n            return;\n        }\n        const linkDataStore = this.linkDataProvider.getLinkDataStore();\n        const allowDuplicateLinkedRecords = this.linkDataProvider.getAllowDuplicateLinkedRecords();\n        if (!linkDataStore) {\n            // With dropdownRenderer, api.deselect only fires callbacks and does not mutate\n            // SelectDataPart — rebuild chips instead of deselecting (avoids re-entry).\n            this.multiSelectInteracter?.removeSelectedOptionsByIdWithoutDeselect?.(id);\n            // List fetch not ready — chip state is source of truth; skip live submit.\n            return;\n        }\n        if (allowDuplicateLinkedRecords) {\n            const countBeforeRemove = linkDataStore.getSelectedRecordIDCount(id);\n            if (countBeforeRemove <= 0) {\n                return;\n            }\n            linkDataStore.removeAllSelectedRecordIDs(id);\n            const rowIndex = this.recordIdsInList.indexOf(id);\n            if (rowIndex !== -1 && this.listInstance) {\n                this.isSyncingListSelection = true;\n                try {\n                    this.listInstance.selectionAPI.deSelectRow({\n                        rowIndex,\n                        parentKeys : [],\n                        pinPosition : 'middle'\n                    });\n                } finally {\n                    this.isSyncingListSelection = false;\n                }\n            }\n            else {\n                linkDataStore.removeSelectedRecordID(id);\n                this.updateSelectAllCheckbox();\n            }\n            this.refreshRecordStepper(id);\n            this.recordSelectionSyncHandlers.get(id)?.();\n            this.updateSelectAllCheckbox();\n            this.updateLinkField();\n            this.refreshSelectedChips();\n            return;\n        }\n        const rowIndex = this.recordIdsInList.indexOf(id);\n        const isRowSelected = linkDataStore.isRecordIDSelected(id)\n        if(!isRowSelected) {\n            this.updateLinkField();\n            return;\n        }\n        if(rowIndex !== -1) {\n            this.listInstance.selectionAPI.deSelectRow({\n                rowIndex : rowIndex,\n                parentKeys : [],\n                pinPosition : 'middle'\n            });\n        }\n        else {\n            linkDataStore.removeSelectedRecordID(id);\n            this.updateSelectAllCheckbox();\n        }\n        this.updateLinkField();\n    }\n\n    private incrementRecordCount(recordId: string) : void {\n        if (!this.linkDataProvider.getAllowDuplicateLinkedRecords()) {\n            return;\n        }\n        this.linkDataProvider.getLinkDataStore().addSelectedRecordID(recordId);\n        this.refreshRecordStepper(recordId);\n        this.updateSelectAllCheckbox();\n        this.refreshSelectedChips();\n        this.updateLinkField();\n    }\n\n    private decrementRecordCount(recordId: string) : void {\n        if (!this.linkDataProvider.getAllowDuplicateLinkedRecords()) {\n            return;\n        }\n        const linkDataStore = this.linkDataProvider.getLinkDataStore();\n        const count = linkDataStore.getSelectedRecordIDCount(recordId);\n        if (count <= 1) {\n            const rowIndex = this.recordIdsInList.indexOf(recordId);\n            if (rowIndex !== -1) {\n                this.listInstance.selectionAPI.deSelectRow({\n                    rowIndex,\n                    parentKeys : [],\n                    pinPosition : 'middle'\n                });\n            }\n            // deSelectRow → onAfterRowDeselection already live-submits.\n            return;\n        }\n        linkDataStore.removeSelectedRecordID(recordId);\n        this.refreshRecordStepper(recordId);\n        this.updateSelectAllCheckbox();\n        this.refreshSelectedChips();\n        this.updateLinkField();\n    }\n\n    private setRecordCount(recordId: string, rawCount: number) : void {\n        if (!this.linkDataProvider.getAllowDuplicateLinkedRecords()) {\n            return;\n        }\n        const targetCount = Math.max(0, Math.floor(Number(rawCount)) || 0);\n        const linkDataStore = this.linkDataProvider.getLinkDataStore();\n        const currentCount = linkDataStore.getSelectedRecordIDCount(recordId);\n        const rowIndex = this.recordIdsInList.indexOf(recordId);\n\n        if (targetCount === currentCount) {\n            this.refreshRecordStepper(recordId);\n            return;\n        }\n\n        if (targetCount === 0) {\n            if (currentCount > 0 && rowIndex !== -1) {\n                this.listInstance.selectionAPI.deSelectRow({\n                    rowIndex,\n                    parentKeys : [],\n                    pinPosition : 'middle'\n                });\n            }\n            return;\n        }\n\n        // O(1) write — do not walk increment/decrement for large typed values.\n        linkDataStore.setSelectedRecordIDCount(recordId, targetCount);\n\n        if (currentCount === 0 && rowIndex !== -1) {\n            this.isSyncingListSelection = true;\n            try {\n                this.listInstance.selectionAPI.selectRow({\n                    rowIndex,\n                    parentKeys : [],\n                    pinPosition : 'middle'\n                });\n            } finally {\n                this.isSyncingListSelection = false;\n            }\n        }\n\n        this.refreshRecordStepper(recordId);\n        this.recordSelectionSyncHandlers.get(recordId)?.();\n        this.updateSelectAllCheckbox();\n        this.refreshSelectedChips();\n        this.updateLinkField();\n    }\n\n    private registerRecordStepper(recordId: string, handler: { updateStepper: (count: number, visible: boolean) => void }) : void {\n        this.recordStepperHandlers.set(recordId, handler);\n        this.refreshRecordStepper(recordId);\n    }\n\n    private registerRecordSelectionSync(recordId: string, syncHandler: () => void) : void {\n        this.recordSelectionSyncHandlers.set(recordId, syncHandler);\n    }\n\n    private syncDuplicateLinkingMode() : void {\n        const allowDuplicateLinkedRecords = this.linkDataProvider.getAllowDuplicateLinkedRecords();\n        this.dialogElement.classList.toggle('dg-dropdown__container--allow-duplicate-links', allowDuplicateLinkedRecords);\n        this.linkDataProvider.getLinkDataStore()?.setAllowDuplicateLinkedRecords(allowDuplicateLinkedRecords);\n        this.syncAllRecordSelectionVisuals();\n    }\n\n    private refreshRecordStepper(recordId: string) : void {\n        const handler = this.recordStepperHandlers.get(recordId);\n        if (!handler) {\n            return;\n        }\n        if (!this.linkDataProvider.getAllowDuplicateLinkedRecords()) {\n            handler.updateStepper(1, false);\n            return;\n        }\n        const count = this.linkDataProvider.getLinkDataStore().getSelectedRecordIDCount(recordId);\n        handler.updateStepper(Math.max(count, 1), count > 0);\n    }\n\n    private refreshRecordSteppers(fromRowIndex: number, toRowIndex: number) : void {\n        if (!this.linkDataProvider.getAllowDuplicateLinkedRecords()) {\n            return;\n        }\n        for (let i = fromRowIndex; i <= toRowIndex; i++) {\n            const recordId = this.recordIdsInList[i];\n            if (!recordId) {\n                continue;\n            }\n            this.refreshRecordStepper(recordId);\n            this.recordSelectionSyncHandlers.get(recordId)?.();\n        }\n    }\n\n\n    afterElementAttached() : void {\n        this.syncDuplicateLinkingMode();\n        this.focusSearchInput();\n    }\n}\n","import { attachLinkChipSelectedValueRenderer } from \"../../../Utility/LinkChipCountUtility.ts\";\nimport { generateBubbleTypesFromStringsForLink } from \"../../FieldTypeComponentsFormater\";\n\n/** Chip-visible fields only — an option carries DomGrid internals we must not compare. */\nfunction isSameLinkChipOption(existingOption : any, nextOption : any) : boolean {\n    return String(existingOption.value) === String(nextOption.value)\n        && existingOption.color === nextOption.color\n        && (Number(existingOption.linkCount) || 1) === (Number(nextOption.linkCount) || 1);\n}\n\nexport class MultiSelectComponent {\n\n    private linkDataProvider : any; \n    private multiSelectComponent : any;\n\n    constructor(linkDataProvider : any, multiSelectComponent : any) {\n        this.linkDataProvider = linkDataProvider;\n        this.multiSelectComponent = multiSelectComponent;\n    }\n\n    getMultiSelectComponentInteracter() : any {\n        const multiSelectInteracter = {\n            selectOption : this.selectOption.bind(this),\n            deselectOption : this.deselectOption.bind(this),\n            removeOneSelectedOption : this.removeOneSelectedOption.bind(this),\n            removeAllSelectedOptions : this.removeAllSelectedOptions.bind(this),\n            // Rebuild chips without api.deselect — avoids onAfterDeselect re-entry when\n            // dropdownRenderer means deselect only fires callbacks and leaves SelectDataPart unchanged.\n            removeSelectedOptionsByIdWithoutDeselect : this.removeSelectedOptionsByIdWithoutDeselect.bind(this),\n            updateMultiselectOption : this.updateMultiselectOption.bind(this),\n            getSelectedRecordIds : this.getSelectedRecordIDs.bind(this),\n            getSelectedValues : this.getSelectedValues.bind(this),\n            onSelectAll : this.onSelectAll.bind(this),\n            onDeselectAll : this.onDeselectAll.bind(this)\n        };\n        return multiSelectInteracter;\n    }\n\n    getSelectedRecordIDs() : string[] {\n        const selectedOptions = this.multiSelectComponent.api.getSelectedOptions();\n        return selectedOptions.map((option : any) => option.id).filter(Boolean);\n    }\n\n    getSelectedValues() : string[] {\n        const selectedOptions = this.multiSelectComponent.api.getSelectedOptions();\n        return selectedOptions.map((option : any) => String(option.value));\n    }\n\n    removeAllMultiSelectOptions() : void {\n        this.multiSelectComponent.api.clear();\n    }\n\n    updateMultiselectOption() : void {\n        const linkedRecordIds = this.linkDataProvider.getSelectedRecordIds();\n        const primaryFieldId = this.linkDataProvider.getPrimaryFieldId();\n        const knownLabelByRecordId = this.getKnownLabelsByRecordId();\n        const cellDatas : string[] = [];\n\n        for (let i = 0; i < linkedRecordIds.length; i++) {\n            const recordId = linkedRecordIds[i];\n            const cellData = this.linkDataProvider.getData(recordId, primaryFieldId);\n            // A linked record the dropdown never fetched (filtered out of the linked view) has\n            // no data here — keep the label the cell already carries instead of formatting\n            // undefined into the chip. The link stays intact; only its source of text differs.\n            cellDatas.push(\n                cellData != null\n                    ? this.linkDataProvider.getFormattedFieldValue(primaryFieldId, cellData)\n                    : knownLabelByRecordId.get(recordId) ?? ''\n            );\n        }\n\n        const optionColor = this.linkDataProvider.getMultiSelectOptionColor();\n        const allowDuplicateLinkedRecords = this.linkDataProvider.getAllowDuplicateLinkedRecords();\n        const recordCounts = this.linkDataProvider.getLinkedRecordCounts();\n        let multiSelectOptions = generateBubbleTypesFromStringsForLink(\n            cellDatas,\n            linkedRecordIds,\n            optionColor,\n            allowDuplicateLinkedRecords,\n            recordCounts\n        );\n\n        const api = this.multiSelectComponent.api;\n\n        // Allow-dup options use selectedValueRenderer (LinkChipCustomRenderer). DomGrid's\n        // updateOption merges that flag onto the option, then deleteAllChipInstance calls\n        // chip.destroy() — but chips created via selectOption() are still default\n        // ChipRenderingComponent instances (api.destroyComponent only). Clear + rebuild.\n        if (allowDuplicateLinkedRecords) {\n            multiSelectOptions = attachLinkChipSelectedValueRenderer(multiSelectOptions, {\n                force: true,\n                onRemove: (option: any) => {\n                    const recordId = typeof option === 'string' ? option : option?.id; // No I18N\n                    recordId && api.deselect(recordId, 'UI'); // No I18N\n                }\n            });\n            this.runPreservingDropdown(() => {\n                api.clear();\n                if (multiSelectOptions.length) {\n                    api.addOptions(multiSelectOptions, false);\n                    for (let i = 0; i < multiSelectOptions.length; i++) {\n                        api.select(multiSelectOptions[i]);\n                    }\n                }\n            });\n            return;\n        }\n\n        const selectedOptions = api.getSelectedOptions();\n        const selectedOptionById = new Map<string, any>();\n        for (let i = 0; i < selectedOptions.length; i++) {\n            const option = selectedOptions[i];\n            if (option.id) {\n                selectedOptionById.set(option.id, option);\n            }\n        }\n\n        const nextIdSet = new Set<string>();\n        for (let i = 0; i < multiSelectOptions.length; i++) {\n            nextIdSet.add(multiSelectOptions[i].id);\n        }\n\n        this.runPreservingDropdown(() => {\n            for (let i = 0; i < multiSelectOptions.length; i++) {\n                const option = multiSelectOptions[i];\n                const existingOption = selectedOptionById.get(option.id);\n                if (existingOption) {\n                    if (!isSameLinkChipOption(existingOption, option)) {\n                        api.updateOption(option);\n                    }\n                } else {\n                    api.addOptions([option], false);\n                    api.select(option);\n                }\n            }\n\n            for (let i = 0; i < selectedOptions.length; i++) {\n                const option = selectedOptions[i];\n                if (option.id && !nextIdSet.has(option.id)) {\n                    api.deselect(option.id);\n                }\n            }\n        });\n    }\n\n    /**\n     * Labels for linked records the dropdown cannot describe — the linked view filters them out,\n     * so no row and no fetched data exists for them, but they are still real cell values.\n     * The live chip wins (it reflects edits made while the dialog is open), then the label\n     * stored on the cell value.\n     */\n    private getKnownLabelsByRecordId() : Map<string, string> {\n        const labelByRecordId = new Map<string, string>();\n        const storedIds = this.linkDataProvider.getAlreadySelectedIds() || [];\n        const storedValues = this.linkDataProvider.getAlreadySelectedValues() || [];\n        for (let i = 0; i < storedIds.length; i++) {\n            if (storedIds[i] && storedValues[i] != null) {\n                labelByRecordId.set(storedIds[i], String(storedValues[i]));\n            }\n        }\n        const selectedOptions = this.multiSelectComponent.api.getSelectedOptions();\n        for (let i = 0; i < selectedOptions.length; i++) {\n            const option = selectedOptions[i];\n            if (option.id && option.value != null && option.value !== '') {\n                labelByRecordId.set(option.id, String(option.value));\n            }\n        }\n        return labelByRecordId;\n    }\n\n    private runPreservingDropdown(mutateOptions : () => void) : void {\n        const api = this.multiSelectComponent.api;\n        const wasDropdownOpen = api.isDropdownOpened?.() === true;\n        mutateOptions();\n        if (wasDropdownOpen && api.isDropdownOpened?.() !== true) {\n            api.openDropdown();\n        }\n    }\n\n    selectOption(option : any) : void {\n        this.multiSelectComponent.api.select(option);\n    }\n\n    deselectOption(id : string) : void {\n        this.multiSelectComponent.api.deselect(id);\n    }\n\n    removeOneSelectedOption(id : string) : void {\n        const selectedOptions = this.multiSelectComponent.api.getSelectedOptions();\n        const optionToRemove = selectedOptions.find((option : any) => option.id === id);\n        optionToRemove && this.deselectSelectedOption(optionToRemove);\n    }\n\n    removeAllSelectedOptions(id : string) : void {\n        const selectedOptions = this.multiSelectComponent.api.getSelectedOptions();\n        selectedOptions.filter((option : any) => option.id === id).forEach((option : any) => {\n            this.deselectSelectedOption(option);\n        });\n    }\n\n    /**\n     * Drop all selected chips for a record id via clear + re-add (no deselect callbacks).\n     * Used when linkDataStore is not ready and dropdownRenderer blocks SelectDataPart updates.\n     */\n    removeSelectedOptionsByIdWithoutDeselect(id : string) : void {\n        const api = this.multiSelectComponent.api;\n        const remaining = api.getSelectedOptions().filter((option : any) => option.id !== id);\n        api.clear();\n        if (!remaining.length) {\n            return;\n        }\n        const allowDuplicateLinkedRecords = this.linkDataProvider.getAllowDuplicateLinkedRecords();\n        let optionsToRestore = remaining;\n        if (allowDuplicateLinkedRecords) {\n            optionsToRestore = attachLinkChipSelectedValueRenderer(remaining, {\n                force: true,\n                onRemove: (option: any) => {\n                    const recordId = typeof option === 'string' ? option : option?.id; // No I18N\n                    recordId && api.deselect(recordId, 'UI'); // No I18N\n                }\n            });\n        }\n        api.addOptions(optionsToRestore, false);\n        for (let i = 0; i < optionsToRestore.length; i++) {\n            api.select(optionsToRestore[i]);\n        }\n    }\n\n    private deselectSelectedOption(selectedOption : any) : void {\n        const recordId = typeof selectedOption === 'string' ? selectedOption : selectedOption?.id; // No I18N\n        recordId && this.multiSelectComponent.api.deselect(recordId);\n    }\n\n    onSelectAll() : void {\n        this.multiSelectComponent.api.selectAllOption();\n    }\n\n    onDeselectAll() : void {\n        this.multiSelectComponent.api.deselectAllOption();\n    }\n}\n","import { encodeLinkSubmitValue } from \"../../../Utility/LinkFieldCompactUtility.ts\";\nimport { attachLinkChipSelectedValueRenderer } from \"../../../Utility/LinkChipCountUtility.ts\";\nimport { LinkDataProvider } from \"./LinkDataProvider\";\nimport { LinkDialogComponent } from \"./LinkDialogComponent\";\nimport { MultiSelectComponent } from \"./LinkMultiSelectComponent\";\n\nconst globalT = globalThis as any;\n\nexport class LinkFieldManager {\n\n    private linkDataProvider : any;\n    multiSelectEventHandler : any;\n    private multiSelectComponent : any;\n    private dialogComponent : any;\n\n\n    constructor(linkFieldConfig : any) {\n        this.linkDataProvider = new LinkDataProvider(linkFieldConfig);\n        this.initialiseComponent();\n    }\n\n    initialiseComponent() : void {\n        const dialogComponent = getTemplate('dg-linkFieldDialogTemplate') as HTMLElement;\n        this.constructComponent(dialogComponent);\n\n        this.multiSelectEventHandler = new MultiSelectComponent(this.linkDataProvider, this.multiSelectComponent);\n        const multiSelectInteracter = this.multiSelectEventHandler.getMultiSelectComponentInteracter();\n        if (!this.linkDataProvider.getMultiSelectConfiguration().readonly) {\n            this.dialogComponent = new LinkDialogComponent(this.linkDataProvider, multiSelectInteracter, dialogComponent);\n        }\n    }\n\n    constructComponent(dialogComponent : HTMLElement) : void {\n        const DG_Components = globalT.DG_Components;\n        const canCreateNewRecord    = this.linkDataProvider.canCreateNewRecord();\n        if(!canCreateNewRecord) {\n            const createNewRecordButton = dialogComponent.querySelector('#linkCreateNewRecordButton') as HTMLElement;\n            createNewRecordButton.remove();\n        }\n        \n        const multiSelectConfig = {...this.linkDataProvider.getMultiSelectConfiguration()};\n        const allowDuplicateLinkedRecords = this.linkDataProvider.getAllowDuplicateLinkedRecords();\n        // DomGrid Select.api.deselect expects a string id (not the option object).\n        // With dropdownRenderer set, deselect only fires callbacks — chip UI is refreshed\n        // via onAfterDeselect → onAfterChipRemove → refreshSelectedChips.\n        const onChipRemove = (option : any) => {\n            const recordId = typeof option === 'string' ? option : option?.id; // No I18N\n            recordId && this.multiSelectComponent?.api?.deselect(recordId, 'UI'); // No I18N\n        };\n        if (allowDuplicateLinkedRecords) {\n            multiSelectConfig.allowDuplicateValues = true;\n            // Wire onRemove onto seed options before Select creates chips.\n            if (multiSelectConfig.options && multiSelectConfig.options.length) {\n                multiSelectConfig.options = attachLinkChipSelectedValueRenderer(multiSelectConfig.options, {\n                    force: true,\n                    onRemove: onChipRemove\n                });\n            }\n            if (multiSelectConfig.selectedOptions && multiSelectConfig.selectedOptions.length) {\n                multiSelectConfig.selectedOptions = attachLinkChipSelectedValueRenderer(multiSelectConfig.selectedOptions, {\n                    force: true,\n                    onRemove: onChipRemove\n                });\n            }\n        }\n        multiSelectConfig.dropdownRenderer = LinkDropdownRenderer;\n        multiSelectConfig.dropdownRendererParams = { \n            getDropdown : () => dialogComponent\n        };\n        // DomGrid payload is { value: option, initiator, api } — not the option itself.\n        multiSelectConfig.onAfterDeselect = (event : any) => {\n            const recordId = event?.value?.id ?? event?.id;\n            recordId && this.dialogComponent?.onAfterChipRemove(recordId);\n        }\n        multiSelectConfig.onAfterDropdownOpen = () => {\n            this.dialogComponent?.focusSearchInput();\n        }\n        this.multiSelectComponent = new DG_Components.Select(multiSelectConfig);\n    }\n\n    openDropdown() : void {\n        this.multiSelectComponent.api.openDropdown();\n        this.dialogComponent?.focusSearchInput();\n    }\n\n    focusSearchInput() : void {\n        this.dialogComponent?.focusSearchInput();\n    }\n\n    searchValue(value: any) {\n        this.multiSelectComponent.api?.openDropdown();\n        this.dialogComponent?.setSearchTerm(value);\n    }\n\n    getValue() {\n        if (this.dialogComponent) {\n            return this.dialogComponent.getFormattedValue();\n        }\n        return this.buildFormattedValueFromSeed();\n    }\n\n    shouldSubmitCellValue(oldValue: any, newRequestValue: any): boolean {\n        try {\n            const parsed = typeof oldValue === 'string' ? JSON.parse(oldValue) : oldValue; // No I18N\n            const recordIDs = parsed[0];\n            const counts = parsed[2];\n            const oldEncoded = encodeLinkSubmitValue(\n                recordIDs,\n                this.linkDataProvider.getAllowDuplicateLinkedRecords(),\n                counts\n            );\n            const requestWire = this.getRequestModelData();\n            return oldEncoded !== requestWire;\n        } catch (_error) {\n            return String(oldValue) !== String(newRequestValue);\n        }\n    }\n\n    getRequestModelData() {\n        return this.getSelectedRecordIDs();\n    }\n\n    private buildFormattedValueFromSeed() : string {\n        const ids = this.linkDataProvider.getAlreadySelectedIds();\n        const values = this.linkDataProvider.getAlreadySelectedValues();\n        const counts = this.linkDataProvider.getAlreadySelectedCounts();\n        if (!ids.length) {\n            return '';\n        }\n        if (this.linkDataProvider.getAllowDuplicateLinkedRecords()) {\n            return JSON.stringify([\n                ids,\n                values,\n                counts\n            ]);\n        }\n        return JSON.stringify([\n            ids,\n            values\n        ]);\n    }\n\n    getSelectedRecordIDs() : string {\n        if (this.dialogComponent) {\n            return this.dialogComponent.getSelectedRecordIDs();\n        }\n        return encodeLinkSubmitValue(\n            this.linkDataProvider.getAlreadySelectedIds(),\n            this.linkDataProvider.getAllowDuplicateLinkedRecords(),\n            this.linkDataProvider.getAlreadySelectedCounts()\n        );\n    }\n\n    getElement() : HTMLElement {\n        return this.multiSelectComponent.api.getElement();\n    }\n\n    afterElementAttached() : void {\n        this.dialogComponent?.afterGuiAttached();\n    }\n\n    destroy() : void {\n        this.dialogComponent?.destroy();\n        this.multiSelectComponent.api.destroy();\n    }\n\n    isDropdownOpened() : boolean {\n        return this.multiSelectComponent.api.isDropdownOpened();\n    }\n\n    getComponentAPI() : any {\n        return this.multiSelectComponent.api;\n    }\n\n}\n\nclass LinkDropdownRenderer {\n\n    private params: any;\n\n    init(params: any) {\n        this.params = params;\n    }\n\n    getElement() : HTMLElement {\n        const dropdown = this.params.getDropdown();\n        return dropdown;\n    }\n}\n\nexport function getTemplate(templateID : string) : HTMLElement {\n    const template = document.getElementById(templateID) as any;\n    const fragment = template?.content.cloneNode(true);\n    const firstChild = fragment.firstElementChild;\n    return firstChild;\n}\n\n\n","import { getOppositeTableID } from \"../../../View/Grid/Pane/FieldTypeComponents/Utilities/ExtraUtilitiesForCallback.js\";\nimport { LINK_POPUP_CONFIG } from \"../../../View/GridView/FCComponents/Interface/PopupFieldConfigInterface\";\nimport { editor_initiated_from } from \"../../../View/GridView/GridConstants\";\nimport { CellPopupComponent } from \"../../CellPopupComponent\";\nimport { ICellPopupComponent } from \"../../Interface/ICellComponent\";\nimport { LinkFieldManager } from \"./LinkFieldManager\";\n\nfunction processSelectedIDs(selectedIDs: string,config :  any) {\n    const selectedIDArray = splitString(selectedIDs);\n    const outputArray : string[][] = [[], []];\n\n    config.options.forEach((opt: any) => {\n        if (selectedIDArray.includes(opt.id)) {\n            if (opt.id && opt.value) {\n                outputArray[0].push(opt.id);\n                outputArray[1].push(opt.value);\n            }\n        }\n    });\n\n    return  JSON.stringify(outputArray);\n}\nfunction splitString(input: string): string[] {\n    const regex = /'[^']*'|[^,\\s]+/g;\n    const matches = input.match(regex);\n    return matches ? matches.map(match => match.trim()) : [];\n}\nconst globalT = globalThis as any;\nexport class LinkPopupComponent extends CellPopupComponent implements ICellPopupComponent {\n    private linkComponent !: any;\n    private linkDataStore !: any;\n\n    private cellDataProvider : any;\n\n    public parentDOM: HTMLElement;\n\n    private list: any;\n    private params: any;\n    private linkConfiguration: LINK_POPUP_CONFIG;\n    private chipClickHandlerBound: EventListener | null = null;\n\n    getInitiatedFrom  ?: () => string | null;\n\n\n    constructor(linkConfiguration : LINK_POPUP_CONFIG, getInitiatedFrom ?: () => string | null) {\n        super();\n        this.linkComponent = new LinkFieldManager(linkConfiguration);\n        this.parentDOM = (linkConfiguration as any).parentDOM || document.body;\n        this.linkConfiguration = linkConfiguration;\n        this.config = linkConfiguration; // exposed under the same name every other popup component uses\n        this.getInitiatedFrom = getInitiatedFrom;\n    }\n\n    isDropdownOpened() : boolean {\n        return this.linkComponent.isDropdownOpened();\n    }\n\n    openDropdown() : void {\n        this.linkComponent.openDropdown();\n    }\n\n    focusSearchInput() : void {\n        this.linkComponent.focusSearchInput();\n    }\n\n    closeDropdown() : void {\n        this.linkComponent.getComponentAPI()?.closeDropdown?.();\n    }\n\n    getComponentAPI() : any {\n        return this.linkComponent.getComponentAPI();\n    }\n\n    getValue() {\n        // Cell model on defocus — storage shape with labels (not submit wire).\n        return this.linkComponent.getValue();\n    }\n\n    shouldSubmitCellValue(oldValue: any, newRequestValue: any): boolean {\n        return this.linkComponent.shouldSubmitCellValue(oldValue, newRequestValue);\n    }\n\n    getRequestModelData() {\n        return this.linkComponent.getSelectedRecordIDs();\n    }\n\n    chipClickEvent(recordId : string) : void {\n        const baseID = this.linkConfiguration.cellDataProvider.getBaseID();\n        const oppositeViewID = this.linkConfiguration.oppositeViewID;\n        const relationshipDirection = this.linkConfiguration.relationshipDirection;\n        const relationshipID = this.linkConfiguration.relationshipID;\n        const oppositeTableID = getOppositeTableID(baseID, relationshipID, relationshipDirection);\n        // Cancel pending edit submit first — flushing without counts resets allow-dup chips.\n        const fieldCellEventHandler = this.linkConfiguration.fieldCellEventHandler;\n        fieldCellEventHandler.stopEditing(null, true, true);\n        fieldCellEventHandler.openRecordView(baseID, oppositeTableID, oppositeViewID, recordId);\n    }\n\n    afterGuiAttached() {\n        // this.component?.api?.openDropdown();\n         const initiatedFrom = this.getInitiatedFrom?.();\n        if(initiatedFrom !== editor_initiated_from.ELLIPSES && initiatedFrom !== editor_initiated_from.EXPAND_ICON){\n            this.linkComponent.openDropdown();\n        }\n        if(!this.linkConfiguration.multiSelectConfiguration.readonly) {\n            this.linkComponent.focusSearchInput();\n        }\n\n        // Use event delegation for chip clicks since chips may be recreated\n        const componentAPI = this.linkComponent.getComponentAPI();\n        this.chipClickHandlerBound = (evt: Event) => {\n            // Do not open record view if dropdown is open\n            if (this.isDropdownOpened()) {\n                return;\n            }\n            \n            const target = evt.target as HTMLElement;\n            if (!target || !target.closest) {\n                return;\n            }\n            if (target.closest('.dg-chip__remove-svg') || target.closest('.dg-chip__suffix-elem')) {\n                return;\n            }\n            const selectedChipDoms = componentAPI.getSelectedChipDoms();\n            const selectedOptions = componentAPI.getSelectedOptions();\n            for (const option of selectedOptions) {\n                const chipElement = selectedChipDoms[option.id];\n                if (chipElement && (chipElement === target || chipElement.contains(target))) {\n                    const recordId = option.id;\n                    if (recordId) {\n                        this.chipClickEvent(recordId);\n                    }\n                    break;\n                }\n            }\n        };\n        const componentElement = componentAPI.getElement();\n        componentElement.addEventListener('click', this.chipClickHandlerBound);\n    }\n\n    searchValue(value: any) {\n        this.linkComponent.searchValue(value);\n    }\n\n    getElement() {\n        try{\n            return this.linkComponent.getElement();\n        }\n        catch(error){\n            console.error(\"Error getting element:\", error);\n        }\n    }\n\n    destroyComponent(): void {\n        // Remove chip click event listener\n        if (this.chipClickHandlerBound) {\n            const componentAPI = this.linkComponent.getComponentAPI();\n            const componentElement = componentAPI.getElement();\n            componentElement.removeEventListener('click', this.chipClickHandlerBound);\n            this.chipClickHandlerBound = null;\n        }\n        this.linkComponent.destroy();\n        this.linkComponent = null;\n    }\n\n}\n\nclass LinkDropdownRenderer {\n\n    private params: any;\n\n    init(params: any) {\n        this.params = params;\n    }\n\n    getElement() : HTMLElement {\n        const dropdown = this.params.getDropdown();\n        return dropdown;\n    }\n\n}","import { HASH } from \"../../../Constants/CssClassNamesForUI.js\";\nimport { COLLABORATOR_CLIENT, LINK, SENTIMENTAL_ANALYSIS } from \"../../../Constants/FieldTypes.js\";\nimport { getFieldStylesByType } from \"../../../Constants/FieldTypeStyles.js\";\nimport { getBubbleNodeInnerCircleColor, getUltraLightThemeColor } from \"../../../Constants/ProductThemeColors\";\nimport { AvatarIconRenderer, CollaboratorDropdownOptionCustomRenderer, createNewOptionRenderer, SentimentalValueCustomRenderer, SentimentDropdownOptionCustomRenderer, SingleSelectChipCustomRenderer, SingleSelectDropdownOptionCustomRenderer } from \"../../../FieldTypeComponents/FieldComponentRenderer\";\nimport { generateBubbleTypesFromStringsForLink, getAllCollaboratorIDs, getAllCollaboratorValues, getAllowDuplicateLinkedRecords, getAllSelectionIDs, getCollaboratorDS, getCollaboratorValue, getDGMultipleEmailValues, getDGMultiplePhoneNumberValues, getDGMultipleURLValues, getDropdownCollaboratorIDs, getKeywordValues, getMultiSelectionValue, getNumberValues, getPercentValues, getSelectedID, getSelectedIDs, getSelectionValues, getSingleSelectionValue, multiplyBy100, parseRoundValue } from \"../../../FieldTypeComponents/FieldTypeComponentsFormater\";\nimport { FIELD_TYPE_COMPONENTS_MANAGER_PARAMS } from \"../../../FieldTypeComponents/FieldTypeConfigTypes\";\nimport { ANONYMOUS_USER_LABEL, FIELD_TYPE_CSS_CLASSNAME, KEYWORD_EXTRACT_BUBBLE_COLOR } from \"../../../FieldTypeComponents/FieldTypeConstants\";\nimport { getLinkFieldMetas, getRollupFieldFormattedData, parseLookupDataResponse } from \"../../../Utility/DataUtility.js\";\nimport { CORE_CURRENCY_POPUP_CONFIG, CORE_DATE_TIME_POPUP_CONFIG, CORE_LINK_POPUP_CONFIG, CORE_MULTIPLE_COLLABORATOR_POPUP_CONFIG, CORE_MULTIPLE_EMAIL_POPUP_CONFIG, CORE_MULTIPLE_PHONE_NUMBER_POPUP_CONFIG, CORE_MULTIPLE_SELECTION_POPUP_CONFIG, CORE_MULTIPLE_URL_POPUP_CONFIG, CORE_NUMBER_POPUP_CONFIG, CORE_PERCENT_POPUP_CONFIG, CORE_SENTIMENTAL_ANALYSIS_POPUP_CONFIG, CORE_SINGLE_COLLABORATOR_POPUP_CONFIG, CORE_SINGLE_EMAIL_POPUP_CONFIG, CORE_SINGLE_PHONE_NUMBER_POPUP_CONFIG, CORE_SINGLE_SELECTION_POPUP_CONFIG, CORE_SINGLE_URL_POPUP_CONFIG, CORE_TEXT_POPUP_CONFIG } from \"./Interface/CorePopupFCConfigInterface\";\nimport { IFCConfigDataProvider } from \"./Interface/IFCConfigDataProvider\";\nimport { KEYWORD_EXTRACT_POPUP_CONFIG, LANGUAGE_DETECTION_POPUP_CONFIG, LOOKUP_POPUP_CONFIG, ROLLUP_POPUP_CONFIG } from \"./Interface/PopupFieldConfigInterface.js\";\n\n\nconst DEFAULT_PLACEHOLDER_FOR_FIND_A_USER = Table.Constants.JSMsg['UI.tables.common.findauser']\nconst DEFAULT_PLACEHOLDER_FOR_TYPE_TO_FIND = Table.Constants.JSMsg['UI.tables.common.typeToFind']\n\n\n//currency\nexport function getCurrencyConfig(params: any): CORE_CURRENCY_POPUP_CONFIG {\n    let value = params.value;\n    const { eventKey, fieldTypeSpecifications : fieldSpecifications} = params as FIELD_TYPE_COMPONENTS_MANAGER_PARAMS;\n    const [locale, currency, placement, precision] = fieldSpecifications; \n\n    const { value: output, change } = parseRoundValue(value);\n    const toolTipHolder: HTMLElement = document.querySelector(\".ZT-container\") ?? document.body;\n\n    return {\n        type             : \"currency\",\n        hideSymbol       : true,\n        eventKey         : eventKey,\n        decimalPrecision : change ? 0 : (precision ? precision : 0),\n        value            : output,\n        symbolPosition   : null,\n        currencySymbol   : currency.trim(),\n        step             : 0,\n        spinButton       : \"none\",\n        showErrorState   : false,\n        tooltip          : true,\n        tooltipAppendto  : toolTipHolder,\n        tooltipMessage   : \"Please enter a number\",\n        allowComma       : true,\n        useCurrencyCode  : false,\n        generateEmptyDom : false,\n        readonly : true,\n        clipboard : params.clipboard,\n    };\n}\n\n//email\nexport function getMultipleEmailConfig(params: any): CORE_MULTIPLE_EMAIL_POPUP_CONFIG {\n    const { eventKey, fieldTypeSpecifications, fieldType } = params;\n    \n    const styles = getFieldStylesByType(fieldType, fieldTypeSpecifications) as any;\n    let value = params.value;\n\n    const multipleEmailValues = getDGMultipleEmailValues(value, styles.optionColor);\n\n    return {\n        data: multipleEmailValues,\n        dataMapping: {\n            color: 'color',\n            value: 'label'\n        },\n        readonly :  true,\n        clipboard : params.clipboard,\n    };\n}\n\n//email\nexport function getSingleEmailConfig(params: any): CORE_SINGLE_EMAIL_POPUP_CONFIG {\n    let { eventKey, value } = params;\n\n    if (eventKey) {\n        value = eventKey;\n    }\n\n    return {\n        value: value,\n        clipboard : params.clipboard,\n    };\n}\n\n//phone\nexport function getSinglePhoneNumberConfig(params: any): CORE_SINGLE_PHONE_NUMBER_POPUP_CONFIG {\n    let { eventKey, value } = params;\n    if (eventKey) {\n        value = eventKey;\n    }\n    return {\n        value       : value,\n        readonly    : true,\n        autosize    : true,\n        clipboard : params.clipboard,\n    };\n}\n\nexport function getMultiplePhoneNumberConfig(params: any): CORE_MULTIPLE_PHONE_NUMBER_POPUP_CONFIG {\n    const { eventKey, fieldTypeSpecifications, fieldType } = params;\n    const styles = getFieldStylesByType(fieldType, fieldTypeSpecifications) as any;\n    \n    let value = params.value;\n    const popupHolder = document.querySelector(\".ZT-container\") as HTMLElement;\n\n    const values = getDGMultiplePhoneNumberValues(value, styles.optionColor); // hard fix need to change with correct values\n    return {\n        data: values,\n        separators: [',', ' '],\n        dataMapping: {\n            color: 'color',\n            value: 'label'\n        },\n        searchValue: eventKey ? eventKey : null,\n        popupParent: popupHolder,\n        readonly :  true,\n        clipboard : params.clipboard,\n    };\n}\n \n//url\nexport function getSingleURLConfig(params: any): CORE_SINGLE_URL_POPUP_CONFIG {\n    let { eventKey, value } = params;\n\n    if (eventKey) {\n        value = eventKey;\n    }\n\n    return {\n        value: value,\n        onKeydown: (event: KeyboardEvent) => {\n            if (event.key === \"Enter\") {\n                event.preventDefault();\n            }\n        },\n        clipboard : params.clipboard,\n    };\n}\n\nexport function getMultipleURLConfig(params: any): CORE_MULTIPLE_URL_POPUP_CONFIG {\n    const { eventKey, fieldTypeSpecifications, fieldType } = params;\n    const styles = getFieldStylesByType(fieldType, fieldTypeSpecifications) as any;\n\n    let value = params.value;\n\n    const values = getDGMultipleURLValues(value, styles.optionColor); // hard fix need to change with correct values\n    return {\n        data: values,\n        dataMapping: {\n            color: 'color',\n            value: 'label'\n        },\n        readonly    : true,\n        clipboard : params.clipboard,\n    };\n}\n \n//Number\nexport function getNumberConfig(params: any): CORE_NUMBER_POPUP_CONFIG {\n    const { eventKey, fieldTypeSpecifications } = params;\n    const [locale, thousandSeparator, precision] = fieldTypeSpecifications;\n\n    let value = params.value;\n    const numberValues = getNumberValues(value, locale, thousandSeparator, precision);\n    const toolTipContainer = document.querySelector(\".ZT-container\") as HTMLElement ?? document.body;\n    const { value: output, change } = parseRoundValue(numberValues);\n\n    return {\n        value            : output,\n        step             : 0,\n        decimalPrecision : change ? 0             : precision,\n        eventKey         : eventKey,\n        spinButton       : 'none',\n        allowComma       : true,\n        thousandSeparator: !!thousandSeparator,\n        showErrorState   : false,\n        tooltip          : true,\n        tooltipAppendto  : toolTipContainer,\n        tooltipMessage   : \"Please enter a number\",\n        generateEmptyDom : false,\n        readonly         : true,\n        clipboard : params.clipboard,\n    };\n}\n\n//Percent\nexport function getPercentConfig(params: any): CORE_PERCENT_POPUP_CONFIG {\n    const { eventKey, fieldTypeSpecifications } = params;\n    const [locale, precision, showSymbol, thousandSeparator] = fieldTypeSpecifications;\n    let value = params.value;\n\n    const percentValues = value ? getPercentValues(value, thousandSeparator, precision) : null;\n    const convertedValue = percentValues ? multiplyBy100(percentValues): percentValues;\n    const { value: output, change } = parseRoundValue(convertedValue);\n\n    return {\n        value           : output,\n        decimalPrecision: change ? 0: precision,\n        eventKey,\n        step             : 0,\n        thousandSeparator: !!thousandSeparator,\n        spinButton       : 'none',\n        showErrorState   : false,\n        tooltip          : true,\n        tooltipAppendto  : document.querySelector(\".ZT-container\") as HTMLElement ?? document.body,\n        tooltipMessage   : \"Please enter a number\",\n        allowComma       : true,\n        generateEmptyDom : false,\n        clipboard : params.clipboard,\n    };\n}\n\n//Text\nexport function getTextConfig(params: any): CORE_TEXT_POPUP_CONFIG {\n    const {  eventKey } = params;\n\n    let value = params.value;\n    if (eventKey) {\n        value = eventKey;\n    }\n\n    return {\n        value: value,\n        readonly    : true,\n        autosize    : false,\n        clipboard : params.clipboard,\n    };\n}\n\n\n\n\nfunction createCollaboratorOption( collaboratorMeta: { value: string; label?: string; imageURL: string; mailID: string; color: string }, collaboratorID: string, selectionType: number ) {\n    return {\n        value                      : collaboratorMeta.value,\n        thumbnailRenderer          : AvatarIconRenderer,\n        userThumbnailRendererParams: {\n            name    : collaboratorMeta.label || collaboratorMeta.value,\n            imageUrl: collaboratorMeta.imageURL\n        },\n        id                          : collaboratorID,\n        dropdownOptionRenderer      : CollaboratorDropdownOptionCustomRenderer,\n        dropdownOptionRendererParams: {\n            mailID          : collaboratorMeta.mailID,\n            imageURL        : collaboratorMeta.imageURL,\n            email           : collaboratorMeta.mailID,\n            isCheckboxNeeded: (selectionType === 0) ? false: true\n        },\n        color: collaboratorMeta.color,\n    };\n}\n\nfunction getSelectedCollaboratorOptions( selectedID: string | null, options: any[], collaboratorDS: any, selectionType: number ): any[] | undefined {\n    if (!selectedID) {\n        return undefined;\n    }\n\n    // Check if selectedID exists in options array\n    const existingOption = options.find(option => option.id === selectedID);\n    if (existingOption) {\n        return [existingOption];\n    }\n\n    // Check if it's a removed user when not found in options\n    let collaboratorMeta;\n    if (collaboratorDS.isRemovedUser(selectedID)) {\n        const optionColor = `${HASH}${getUltraLightThemeColor(collaboratorDS.getColor())}`;\n        const userName = collaboratorDS.getRemovedUserName(selectedID) || ANONYMOUS_USER_LABEL;\n        collaboratorMeta = {\n            value: userName,\n            label: userName,\n            imageURL: collaboratorDS.getRemovedUserImageURL(selectedID),\n            mailID: collaboratorDS.getRemovedUserEmailID(selectedID),\n            color: optionColor,\n        };\n    } else {\n        // Fallback to getCollaboratorValue for other cases (active, inactive, anonymous)\n        collaboratorMeta = getCollaboratorValue(selectedID, collaboratorDS);\n    }\n    return [createCollaboratorOption(collaboratorMeta, selectedID, selectionType)];\n}\n\n//collaborator\nexport function getSingleCollaboratorConfig(params: any): CORE_SINGLE_COLLABORATOR_POPUP_CONFIG {\n    const { fieldCellEventHandler, cellDataProvider, eventKey, recordID, baseID, fieldTypeSpecifications, value, fieldID, parentDOM } = params;\n    const selectionType                                                                                                               = fieldTypeSpecifications[0];\n    const collaboratorDS                                                                                                              = getCollaboratorDS(baseID);\n    const dropdownCollaboratorIDs                                                                                                     = getDropdownCollaboratorIDs(collaboratorDS);\n    const dropdownCollaboratorOptions                                                                                                 = getAllCollaboratorValues(dropdownCollaboratorIDs, collaboratorDS);\n    const collaboratorOptionIDs                                                                                                       = getAllCollaboratorIDs(collaboratorDS);\n    const options                                                                                                                     = dropdownCollaboratorOptions.map((collaboratorMeta, index) => \n        createCollaboratorOption(collaboratorMeta, collaboratorOptionIDs[index], selectionType)\n    );\n\n    const selectedID  = getSelectedID(value);\n    \n    const dropdownHolder       = document.querySelector(\".ZT-container\") as HTMLElement ?? document.body;\n    const toolTipHolder        = document.querySelector(\".ZT-container\") as HTMLElement ?? document.body;\n    const searchBoxPlaceholder = DEFAULT_PLACEHOLDER_FOR_FIND_A_USER;\n    \n    const selectedOptions = getSelectedCollaboratorOptions(selectedID, options, collaboratorDS, selectionType);\n\n    return {\n        searchBoxPlaceholder,\n        options,\n        // selectedIndex,\n        selectedOptions: selectedOptions as any, \n        optionAsChip            : true,\n        enableNoneOption        : true,\n        tooltip                 : true,\n        tooltipAppendto         : toolTipHolder,\n        horizontalSpacing       : -2,\n        verticalSpacing         : 1,\n        className               : FIELD_TYPE_CSS_CLASSNAME[COLLABORATOR_CLIENT],\n        // onBeforeCreateOption    : openCollaboratorDialog,\n        // onDialogDestroy,\n        multiple                : false,\n        searchable              : true,\n        closeOnSelect           : true,\n        showDropdownIcon        : true,\n        onChange : (_params : any) => {\n            fieldCellEventHandler.stopEditing();\n        },\n        dropdownAppendTo : dropdownHolder,\n        sort                 : true,\n        sortOrder            : \"asc\",\n        clipboard : params.clipboard,\n    };\n}\n\nexport function getMultipleCollaboratorConfig(params: any, dataProvider: IFCConfigDataProvider): CORE_MULTIPLE_COLLABORATOR_POPUP_CONFIG {\n    const { value }                   = params;\n    const collaboratorDS              = dataProvider.getCollaboratorDS();\n    const dropdownCollaboratorIDs     = getDropdownCollaboratorIDs(collaboratorDS);\n    const dropdownCollaboratorOptions = getAllCollaboratorValues(dropdownCollaboratorIDs, collaboratorDS);\n    const collaboratorOptionIDs       = getAllCollaboratorIDs(collaboratorDS);\n    const selectionType               = params.fieldTypeSpecifications[0];\n    \n    const options = dropdownCollaboratorOptions.map((collaboratorMeta, index) => ({\n        value                      : collaboratorMeta.value,\n        thumbnailRenderer          : AvatarIconRenderer,\n        userThumbnailRendererParams: {\n            name    : collaboratorMeta.label,\n            imageUrl: collaboratorMeta.imageURL\n        },\n        id                          : collaboratorOptionIDs[index],\n        dropdownOptionRenderer      : CollaboratorDropdownOptionCustomRenderer,\n        dropdownOptionRendererParams: {\n            mailID          : collaboratorMeta.value,\n            imageURL        : collaboratorMeta.imageURL,\n            email           : collaboratorMeta.mailID,\n            isCheckboxNeeded: (selectionType === 0) ? false: true\n\n        },\n        color         : collaboratorMeta.color,\n        dropdownHidden: collaboratorMeta.isRemovedUser\n    }));\n\n    const selectedIDs = getSelectedIDs(value);\n    const index       = selectedIDs.map((selectedId: any) => collaboratorOptionIDs.findIndex(id => id === selectedId));\n\n    const toolTipHolder        = document.querySelector(\".ZT-container\") as HTMLElement ?? document.body;\n    const searchBoxPlaceholder = DEFAULT_PLACEHOLDER_FOR_FIND_A_USER;\n    const selectedIndex        = index.length > 0 ? index : null;\n    const dropdownHolder       = document.querySelector(\".ZT-container\") as HTMLElement ?? document.body;\n\n    return {\n        dropdownAppendTo: dropdownHolder,\n        searchable      : true,\n        searchBoxPlaceholder,\n        options : options,\n        // selectedIndex,\n        selectedOptions :  selectedIndex?.map((i:any)=>options[i]),\n        optionAsChip         : true,\n        tooltip              : true,\n        tooltipAppendto      : toolTipHolder,\n        horizontalSpacing    : -2,\n        verticalSpacing      : 1,\n        className            : FIELD_TYPE_CSS_CLASSNAME[COLLABORATOR_CLIENT],\n        multiple             : true,\n        enablePlusIcon       : false,\n        enableCreateNewOption: false,\n        preventDropdownOpen  : true,\n        sort                 : true,\n        sortOrder            : \"asc\",\n        clipboard : params.clipboard,\n    };\n}\n\n//single selection\nexport function getSingleSelectionConfig(params: any, dataProvider: IFCConfigDataProvider): CORE_SINGLE_SELECTION_POPUP_CONFIG {\n    const {  baseID, fieldTypeSpecifications: fieldSpecifications, value } = params;\n\n    const [singleSelectID, coloredOptions] = fieldSpecifications;\n\n    const selectedID = getSelectedID(value);\n    const singleSelectDS = dataProvider.getMultiSelectDS(singleSelectID);\n\n    const allSelectionIDs = getAllSelectionIDs(singleSelectDS);\n    const allSelectionValues = getSelectionValues(allSelectionIDs, coloredOptions, singleSelectDS);\n\n    const transformedValues = singleSelectDS.order.map((key: any) => {\n        const [color, value] = singleSelectDS.values[key];\n        return {\n            value,\n            id: key,\n            selectedValueRenderer: SingleSelectChipCustomRenderer,\n            selectedValueRendererParams: {\n                label: value,\n                bgColor: coloredOptions ? `${HASH}${color}` : '',\n                dotColor: coloredOptions ? `${HASH}${getBubbleNodeInnerCircleColor(color)}` : '',\n            },\n            dropdownOptionRenderer: SingleSelectDropdownOptionCustomRenderer,\n            dropdownOptionRendererParams: {\n                label: value,\n                bgColor: coloredOptions ? `${HASH}${color}` : '',\n                dotColor: coloredOptions ? `${HASH}${getBubbleNodeInnerCircleColor(color)}` : '',\n            },\n        }\n    });\n\n    const selectionValue = (selectedID && selectedID.length > 0) ? getSingleSelectionValue(selectedID, coloredOptions, singleSelectDS) : null;\n\n    let index: number[] = [];\n    if (Array.isArray(selectionValue)) {\n        index = allSelectionValues\n            .map((obj, index) =>\n                selectionValue.some(target => obj.id === target.id) ? index : -1\n            )\n            .filter(idx => idx !== -1);\n    } else if (selectionValue) {\n        const singleIndex = allSelectionValues.findIndex(obj => obj.id === selectionValue.id);\n        if (singleIndex !== -1) {\n            index = [singleIndex]; // Store the single index in an array\n        }\n    }\n\n    const dropdownHolder = document.querySelector(\".ZT-container\") as HTMLElement ?? document.body;\n    const toolTipHolder = document.querySelector(\".ZT-container\") as HTMLElement ?? document.body;\n\n    return {\n        dropdownAppendTo : dropdownHolder,\n        // selectedIndex: index,\n        selectedOptions : index.map(i=>transformedValues[i]),\n        options: transformedValues,\n        multiple: false,\n        optionAsChip: true,\n        searchable: true,\n        searchBoxPlaceholder: DEFAULT_PLACEHOLDER_FOR_TYPE_TO_FIND,\n        closeOnSelect: true,\n        enableNoneOption: true,\n        enableCreateNewOption: false,\n        tooltip: true,\n        tooltipAppendto: toolTipHolder,\n        horizontalSpacing: -2,\n        verticalSpacing: 1,\n        preventDropdownOpen :  true,\n        createNewOptionRenderer : createNewOptionRenderer,\n        clipboard : params.clipboard,\n    };\n}\n\n//multiple selection\nexport function getMultipleSelectionConfig(params: any, dataProvider: IFCConfigDataProvider): CORE_MULTIPLE_SELECTION_POPUP_CONFIG {\n    const {  baseID, fieldTypeSpecifications: fieldSpecifications, value } = params;\n\n    const selectedIDs = getSelectedIDs(value);\n    const multiSelectID = fieldSpecifications[0];\n    const coloredOptions = fieldSpecifications[1];\n    const multiSelectDS = dataProvider.getMultiSelectDS(multiSelectID);\n    const selectionValue = (selectedIDs && selectedIDs.length > 0) ? getMultiSelectionValue(selectedIDs, coloredOptions, multiSelectDS) : null;\n    const allSelectionIDs = getAllSelectionIDs(multiSelectDS);\n    const allSelectionValues = getSelectionValues(allSelectionIDs, coloredOptions, multiSelectDS);\n\n    const transformedValue = multiSelectDS.order.map((key: any) => {\n        const [color, value] = multiSelectDS.values[key];\n        return {\n            value,\n            ...(coloredOptions && { color: `${HASH}${color}` }),\n            id: key\n        };\n    });\n\n    let index: number[] = [];\n    if (Array.isArray(selectionValue)) {\n        index = index = selectionValue.map(target => allSelectionValues.findIndex(obj => obj.id === target.id)).filter(idx => idx !== -1);\n\n    } else if (selectionValue) {\n        const singleIndex = allSelectionValues.findIndex(obj => obj.id === selectionValue.id);\n        if (singleIndex !== -1) {\n            index = [singleIndex]; // Store the single index in an array\n        }\n    }\n\n    const dropdownHolder = document.querySelector(\".ZT-container\") as HTMLElement ?? document.body;\n    const toolTipHolder = document.querySelector(\".ZT-container\") as HTMLElement ?? document.body;\n    const selectedIndex = index && (index.length > 0) ? index : [];\n\n    return {\n        dropdownAppendTo        : dropdownHolder,\n        options                 : transformedValue,\n        multiple                : true,\n        optionAsChip            : true,\n        searchable              : true,\n        searchBoxPlaceholder    : DEFAULT_PLACEHOLDER_FOR_TYPE_TO_FIND,\n        enablePlusIcon          : false,\n        enableCreateNewOption   : false,\n        tooltip                 : true,\n        tooltipAppendto         : toolTipHolder,\n        horizontalSpacing       : -2,\n        verticalSpacing         : 1,\n        // selectedIndex,\n        selectedOptions : selectedIndex.map(i=>transformedValue[i]),\n        preventDropdownOpen     : true,\n        clipboard : params.clipboard,\n    };\n}\n\n// export function getLinkConfig(params: any): CORE_LINK_POPUP_CONFIG {\n//     const { fieldCellEventHandler, cellDataProvider, eventKey, recordID, baseID, fieldTypeSpecifications, value, fieldID, fieldType, parentDOM } = params;\n//     const [oppositeFieldID, oppositeViewID, relationshipDirection, relationshipID, leafFieldParameters] = fieldTypeSpecifications;\n\n//     const styles = getFieldStylesByType(fieldType, fieldTypeSpecifications) as any;\n//     const relationshipProperty = getRelationshipProperty(baseID, relationshipID, relationshipDirection);\n//     const allowMultiple = relationshipProperty.allowMultiple;\n//     const metas = DataUtility.getLinkFieldMetas(baseID, value, leafFieldParameters);\n//     const [recordNames, recordIds] = metas;\n//     const linkValues = generateBubbleTypesFromStrings(recordNames, recordIds, styles.optionColor);\n\n//     const dropdownHolder = document.querySelector(\".ZG-rootWrapperBody\") as HTMLElement ?? document.body;\n\n//     const selectedIndexes = [];\n//     for (let i = 0; i < linkValues.length; i++) {\n//         selectedIndexes.push(i);\n//     }\n\n//     const multiSelectConfiguration = {\n//         multiple: true,\n//         fieldId: fieldID,\n//         recordId: recordID,\n//         options: linkValues,\n//         optionAsChip: true,\n//         dropdownAppendTo: dropdownHolder,\n//         enablePlusIcon: true,\n//         useElipses: true,\n//         customParams: fieldID, // will discuss and update later,\n//         selectedIndex: selectedIndexes,\n//         className: FIELD_TYPE_CSS_CLASSNAME[LINK]\n//     }\n\n//     return {\n//         multiSelectConfiguration: multiSelectConfiguration,\n//         parentDOM: parentDOM,\n//         cellDataProvider: cellDataProvider,\n//         fieldCellEventHandler: fieldCellEventHandler,\n//         selectedRecordIDs: recordIds,\n//         styles: styles,\n//         leafFieldParameters: leafFieldParameters,\n//         oppositeViewID: oppositeViewID,\n//         oppositeFieldID: oppositeFieldID,\n//         currentFieldID: fieldID,\n//         currentRecordID: recordID,\n//         relationshipID: relationshipID,\n//         relationshipDirection: relationshipDirection,\n//         selectedRecordValues: recordNames\n//     };\n// }\n\n\n\n// export function getLinkConfig(params: any) : CORE_LINK_POPUP_CONFIG{\n//     const { fieldCellEventHandler, eventKey, recordID,fieldType, fieldTypeSpecifications : fieldSpecifications, value, fieldID, parentDOM } = params;\n\n//     const styles            = getFieldStylesByType(fieldType, fieldSpecifications) as any;\n//     const baseID                = params.baseID;\n//     const oppositeFieldID       = fieldSpecifications[0];\n//     const oppositeViewID        = fieldSpecifications[2];\n//     const relationshipDirection = fieldSpecifications[3];\n//     const relationshipID        = fieldSpecifications[4];\n//     const leafFieldParameters   = fieldSpecifications[5];\n//     const relationshipProperty  = getRelationshipProperty(baseID, relationshipID, relationshipDirection);\n//     const allowMultiple         = relationshipProperty.allowMultiple;\n//     const metas                 = DataUtility.getLinkFieldMetas(baseID, value, leafFieldParameters);\n//     const recordNames           = metas[1];\n//     const recordIds             = metas[0];\n//     const linkValues            = generateBubbleTypesFromStrings(recordNames, recordIds, styles.optionColor);\n//     const cellDataProvider      = params.cellDataProvider;\n\n//     const selectedIndexes = [];\n//     for(let i = 0; i < linkValues.length; i++) {\n//         selectedIndexes.push(i);\n//     }\n\n//     const multiSelectConfiguration = {\n//         // appendTo: parentDOM,\n//         multiple            : true,\n//         fieldId             : fieldID,\n//         recordId            : recordID,\n//         options             : linkValues,\n//         optionAsChip        : true,\n//         dropdownAppendTo    : document.querySelector(\".ZG-rootWrapperBody\") as HTMLElement ?? document.body,\n//         enablePlusIcon      : true,\n//         useElipses          : true,\n//         customParams        : fieldID, // will discuss and update later,\n//         selectedIndex       : selectedIndexes,\n//         className           : FIELD_TYPE_CSS_CLASSNAME[LINK]\n//     }\n\n//     return{\n//         // parentDOM : parentDOM,\n//         cellDataProvider            : cellDataProvider,\n//         fieldCellEventHandler       : fieldCellEventHandler,\n//         selectedRecordIDs           : recordIds,\n//         styles                      : styles,\n//         leafFieldParameters         : leafFieldParameters,\n//         currentRecordID             : recordID,\n//         selectedRecordValues        : recordNames,\n\n//         multiSelectConfiguration    : multiSelectConfiguration,\n//         oppositeViewID              : oppositeViewID,\n//         currentFieldID              : fieldID,\n//         oppositeFieldID             : oppositeFieldID,\n//         relationshipID              : relationshipID,\n//         relationshipDirection       : relationshipDirection,\n\n\n//     }\n// }\nexport function getLinkConfig(params: any, dataProvider: IFCConfigDataProvider) : CORE_LINK_POPUP_CONFIG{\n    const {fieldCellEventHandler, cellDataProvider, recordID, baseID, fieldType, fieldTypeSpecifications : fieldSpecifications} = params as FIELD_TYPE_COMPONENTS_MANAGER_PARAMS;\n    const {isDraftRow, fieldID, value} = params;\n\n    const styles            = getFieldStylesByType(fieldType, fieldSpecifications) as any;\n    const oppositeFieldID       = fieldSpecifications[0];\n    const oppositeViewID        = fieldSpecifications[2];\n    const relationshipDirection = fieldSpecifications[3];\n    const relationshipID        = fieldSpecifications[4];\n    const leafFieldParameters   = fieldSpecifications[5];\n    const allowDuplicateLinkedRecords = getAllowDuplicateLinkedRecords(fieldSpecifications);\n    const metas                 = getLinkFieldMetas(value, leafFieldParameters, dataProvider.getBaseID(), dataProvider);\n    const recordNames           = metas[1];\n    const recordIds             = metas[0];\n    const recordCounts          = metas[2];\n    const linkValues            = generateBubbleTypesFromStringsForLink(recordNames, recordIds, styles.optionColor, allowDuplicateLinkedRecords, recordCounts);\n\n    const selectedIndexes = [];\n    for(let i = 0; i < linkValues.length; i++) {\n        selectedIndexes.push(i);\n    }\n\n    const multiSelectConfiguration = {\n        multiple              : true,\n        fieldId               : fieldID,\n        recordId              : recordID,\n        options               : linkValues,\n        optionAsChip          : true,\n        useElipses            : false,\n        // selectedIndex         : selectedIndexes,\n        selectedOptions  : selectedIndexes.map(i=>linkValues[i]),\n        tooltip             : true,\n        preventDropdownOpen   : true,\n        readonly              : true,\n        allowDuplicateValues  : allowDuplicateLinkedRecords,\n        className             : FIELD_TYPE_CSS_CLASSNAME[LINK],\n        // The actual DG_Components.Select is built from this nested object (see\n        // LinkFieldManager.constructComponent), not the outer returned config -- clipboard\n        // must live here to actually reach the DataGrid editor.\n        clipboard             : params.clipboard,\n    }\n\n    return {\n        multiSelectConfiguration    : multiSelectConfiguration,\n        cellDataProvider            : cellDataProvider,\n        fieldCellEventHandler       : fieldCellEventHandler,\n        selectedRecordIDs           : recordIds,\n        selectedRecordCounts        : recordCounts,\n        styles                      : styles,\n        leafFieldParameters         : leafFieldParameters,\n        oppositeViewID              : oppositeViewID,\n        oppositeFieldID             : oppositeFieldID,\n        currentFieldID              : fieldID,\n        currentRecordID             : recordID,\n        relationshipID              : relationshipID,\n        relationshipDirection       : relationshipDirection,\n        selectedRecordValues        : recordNames,\n        isDraftRow                  : isDraftRow,\n        allowDuplicateLinkedRecords : allowDuplicateLinkedRecords,\n        clipboard                   : params.clipboard\n    }\n\n}\nexport function getSentimentalAnalysisConfig(params: any, dataProvider: IFCConfigDataProvider): CORE_SENTIMENTAL_ANALYSIS_POPUP_CONFIG {\n    const { eventKey, baseID, fieldTypeSpecifications, value } = params;\n\n    const sentimentID = fieldTypeSpecifications[1];\n    const sentimentDS = dataProvider.getSentimentMeta(sentimentID);\n    const dropDownHolder = document.querySelector(\".ZG-rootWrapperBody\") as HTMLElement ?? document.body;\n\n    let targetIndex = null;\n    const options: any = [];\n    sentimentDS.sentiments.forEach((sentimentOption: any, id: string) => {\n        const isSelectedId = (id == value);\n        isSelectedId && (targetIndex = options.length);\n\n        const { imgSrc: imageURL, sentimentValue: label } = sentimentOption;\n        options.push({\n            id,\n            value: label,\n            selectedValueRenderer: SentimentalValueCustomRenderer,\n            selectedValueRendererParams: {\n                imageURL,\n                label,\n                bgColor: 'transparent',\n            },\n\n            dropdownOptionRenderer: SentimentDropdownOptionCustomRenderer,\n            dropdownOptionRendererParams: {\n                label,\n                imageURL,\n                emotionDisplayText : sentimentOption.emotionDisplayText,\n                sentimentValue     : sentimentOption.sentimentValue\n            }\n        })\n    })\n\n    const selectedIndex = targetIndex != null ? [targetIndex] : null;\n    return {\n        dropdownAppendTo: dropDownHolder,\n        options: options,\n        multiple: false,\n        optionAsChip: true,\n        closeOnSelect: true,\n        className: FIELD_TYPE_CSS_CLASSNAME[SENTIMENTAL_ANALYSIS],\n        showDropdownIcon: true,\n        horizontalSpacing: -2,\n        verticalSpacing: 1,\n        // selectedIndex,\n        selectedOptions : selectedIndex?.map(i=>options[i]),\n        clipboard : params.clipboard,\n    };\n}\n\nexport function getDateTimeConfig(params: any): CORE_DATE_TIME_POPUP_CONFIG {\n    const { fieldTypeSpecifications: fieldSpecifications, value, eventKey,fieldTypeMeta } = params;\n    const [dummy,dateFormat, timeFormat, hourCycle] = fieldSpecifications;\n    return {\n        hourCycle              : hourCycle === \"12H\" ? 12                                                     : hourCycle === \"23H\" ? 24: 0,\n        fullFormat             : `${dateFormat} ${timeFormat}`,\n        type                   : hourCycle ? 'datetimepicker'                                                 : 'datepicker',\n        showTimePicker         : hourCycle ? true                                                             : false,\n        value                  : Number(value),\n        dateFormat             : dateFormat,\n        timeFormat             : timeFormat,\n        horizontalSpacing      : -2,\n        verticalSpacing        : 1,\n        showFormatAsPlaceholder: true,\n        eventKey               : eventKey? eventKey                                                           : null,\n        datePickerAppendTo     : document.querySelector(\".ZT-container\") as HTMLElement ?? document.body,\n        clipboard              : params.clipboard,\n\n    };\n}\n\n\nexport function getRollupConfig(params : any, dataProvider: IFCConfigDataProvider) : ROLLUP_POPUP_CONFIG{\n    const {fieldTypeSpecifications : fieldSpecifications,baseID,value,fieldType} =params;\n    const leafFieldParameters   = fieldSpecifications[4];\n    const formulaID             = fieldSpecifications[2];\n    const styles                = getFieldStylesByType(fieldType, fieldSpecifications) as any;\n    const modifiedData          = getRollupFieldFormattedData(value, formulaID, leafFieldParameters, dataProvider.getBaseID(), dataProvider);\n    const data                  = modifiedData ? [modifiedData] : [];\n    const rollupValues          = generateBubbleTypesFromStringsForLink(data, data, styles.optionColor);\n    const selectedOptions         = data.map(value => rollupValues[rollupValues.findIndex(item => item.value === value)]);\n\n    return {\n        // selectedIndex         : selectedIndex,\n        selectedOptions : selectedOptions,\n        options               : rollupValues,\n        multiple              : true,\n        optionAsChip          : true,\n        useElipses            : false,\n        readonly              : true,\n        preventDropdownOpen   : true,\n        onSelection           : (params : any)=>{},\n        onDeSelection         : (params : any)=>{},\n        clipboard             : params.clipboard,\n    }\n}\n\nexport function getLookupConfig(params : any, dataProvider: IFCConfigDataProvider) : LOOKUP_POPUP_CONFIG {\n    const {fieldTypeSpecifications    : fieldSpecifications,baseID,value,fieldType} =params;\n    const styles                      = getFieldStylesByType(fieldType, fieldSpecifications) as any;\n    const leafFieldParameters         = fieldSpecifications[2];\n    const data                        = parseLookupDataResponse(value, leafFieldParameters, dataProvider.getBaseID(), dataProvider);\n    const lookupValues                = generateBubbleTypesFromStringsForLink(data,data, styles.optionColor);\n    const selectedOptions               = data.map(value => lookupValues[lookupValues.findIndex(item => item.value === value)]);\n    return {\n        // selectedIndex   : selectedIndex,\n        selectedOptions : selectedOptions,\n        options         : lookupValues,\n        multiple        : true,\n        optionAsChip    : true,\n        useElipses      : false,\n        readonly        : true,\n        preventDropdownOpen   : true,\n        onSelection           : (params : any)=>{},\n        onDeSelection         : (params : any)=>{},\n        tooltip                : true,\n        tooltipAppendto        : document.querySelector(\".ZT-container\") as HTMLElement ?? document.body,\n        clipboard              : params.clipboard,\n    }\n}\n\nexport function getKeywordExtractionConfig(params : any) : KEYWORD_EXTRACT_POPUP_CONFIG {\n     let value = params.value;\n    const values     = value ? value.split(',') : [];\n    const keywords   = getKeywordValues(values, KEYWORD_EXTRACT_BUBBLE_COLOR);\n    const valueArray = value ?  value.split(',') : [];\n    const indices = valueArray.map((val: string) => keywords.findIndex(keyword => keyword.value === val));\n\n    const { eventKey } = params;\n    if (eventKey) {\n        value = eventKey;\n    }\n    return {\n        options               : keywords,\n        multiple              : true,\n        optionAsChip          : true,\n        useElipses            : false,\n        readonly              : true,\n        // selectedIndex         : indices,\n        selectedOptions       : indices.map((i : number)=>keywords[i]),\n        onSelection           : () => {},\n        onDeSelection         : () => {},\n        preventDropdownOpen   : true,\n        clipboard             : params.clipboard,\n    }\n}\n\nexport function getLanguageDetectorConfig(params : any) : LANGUAGE_DETECTION_POPUP_CONFIG {\n    const {value  } = params;\n    const rowsCount = Math.floor(params.rowHeight / 25);\n    return {\n        value           : value,\n        readonly        : true,\n        rows            : rowsCount,\n        autosize        : true,\n        clipboard : params.clipboard,\n    };\n}","import { MULTIPLE_COLLABORATOR_WRITE_CONFIG } from '../../../FieldTypeConfigTypes';\n// import { DCFieldComponents } from \"../../../../../FieldComponents/fieldComponents\";\nimport { COLLABORATOR_CLIENT } from '../../../../Constants/FieldTypes.js';\nimport { CellPopupComponent } from '../../../CellPopupComponent';\nimport { FIELD_TYPE_CSS_CLASSNAME } from '../../../FieldTypeConstants';\nimport { ICellPopupComponent } from '../../../Interface/ICellComponent';\nimport { editor_initiated_from } from '../../../../View/GridView/GridConstants';\nconst globalT = globalThis as any;\n\nexport class MultipleCollaboratorPopupComponent extends CellPopupComponent implements ICellPopupComponent {\n    public component       : any; //will discuss and update the interface later\n    config          : MULTIPLE_COLLABORATOR_WRITE_CONFIG\n    parentDOM       : HTMLElement\n    getInitiatedFrom  ?: () => string | null;\n\n\n    constructor(config : MULTIPLE_COLLABORATOR_WRITE_CONFIG, parentDOM : HTMLElement, getInitiatedFrom ?: () => string | null) {\n        super();\n        this.component      =   null;\n        this.config         =   config;\n        this.parentDOM      =   parentDOM;\n\n        this.getInitiatedFrom = getInitiatedFrom;\n\n        this.constructComponent();\n        this.addCSSClass();\n    }\n\n    constructComponent () {\n        const DG_Components = globalT.DG_Components;\n        this.component = new DG_Components.Select(this.config);\n    }\n\n    addCSSClass() : void {\n        const className = FIELD_TYPE_CSS_CLASSNAME[COLLABORATOR_CLIENT];\n        this.parentDOM.classList.add(className);\n    }\n\n    getComponent() {\n        return this.component;\n    }\n \n\n    getValue() {\n        // return this.component?.getValues();\n        const selectIds =  this.component.api.getSelectedIDs()\n        return selectIds.join(',');\n    }\n\n\n    getRequestModelData() {\n        const selectIds =  this.component.api.getSelectedIDs()\n        return selectIds.join(',');\n    }\n\n    enableSelection() {\n\n    }\n\n    disableSelection() {\n\n    }\n\n    getElement() {\n        return this.component?.api?.getElement();\n    }\n\n    afterGuiAttached() { \n        //call open dropdown api\n        const initiatedFrom = this.getInitiatedFrom?.();\n        if(initiatedFrom !== editor_initiated_from.ELLIPSES && initiatedFrom !== editor_initiated_from.EXPAND_ICON){\n            this.component?.api?.openDropdown();\n        }\n    }\n\n    searchValue(value: any) : void{\n        this.component.api?.openDropdown();\n        this.component.api?.search(value);\n    }\n\n    destroyComponent(): void {\n        this.component?.api?.destroy();\n        this.config.onDialogDestroy && this.config.onDialogDestroy();\n    }\n\n    closeDropdown(){\n        this.component.api.closeDropdown();\n    }\n\n    isDropdownOpened():boolean{\n        return this.component.api.isDropdownOpened();\n    }\n}","// import { Number } from \"../../../../fieldcomponents/src/components/number/ts/Number\";\nimport { CURRENCY } from \"../../../Constants/FieldTypes.js\";\nimport { CURRENCY_POPUP_CONFIG } from \"../../../View/GridView/FCComponents/Interface/PopupFieldConfigInterface.js\";\nimport { CellPopupComponent } from \"../../CellPopupComponent\";\nimport { FIELD_TYPE_CSS_CLASSNAME } from \"../../FieldTypeConstants\";\n// import { DCFieldComponents } from \"../../../../FieldComponents/fieldComponents\";\nimport { ICellPopupComponent } from \"../../Interface/ICellComponent\";\nconst globalT = globalThis as any;\n\nexport class CurrencyPopupComponent extends CellPopupComponent implements ICellPopupComponent {\n    // private component       : typeof DCFieldComponents.Currency.prototype | null\n     component       : any\n     config          : CURRENCY_POPUP_CONFIG\n     parentDOM       : HTMLElement\n\n    constructor(config : CURRENCY_POPUP_CONFIG, parentDOM : HTMLElement) {\n        super();\n        this.component      =   null;\n        this.config         =   config;\n        if(!this.config.value){\n            this.config.inputSuffix = undefined;\n            this.config.inputPrefix = undefined;\n        }\n        this.parentDOM      =   parentDOM;\n\n        this.constructComponent();\n        this.addCSSClass();\n    }\n\n    constructComponent () {\n        const DG_Components = globalT.DG_Components;\n        this.component = new DG_Components.NumberComponent(this.config, {modules: [DG_Components.CurrencyModule]});\n    }\n    addCSSClass() : void {\n        const className = FIELD_TYPE_CSS_CLASSNAME[CURRENCY];\n        this.parentDOM.classList.add(className);\n    }\n \n    getValue() {\n        let value = this.component.api.getValue();\n        if(this.config.decimalPrecision){\n            if (value && !value.toString().includes('.')) {\n                value =  `${value}.${'0'.repeat(this.config.decimalPrecision)}`;\n            }\n        }\n        if(value!==undefined && value!==null){\n            return value.toString()\n        }else{\n            return \"\"\n        }\n    }\n\n    afterGuiAttached() { \n        this.component.api.focus();\n    }\n    showTooltip() {\n        this.component.api.openToolTip();\n    }\n    getRequestModelData() {\n       return this.getValue();\n    }\n}\n","import { decodeToAbsoluteDate, encodeFromAbsoluteDate } from \"../../../DateComponentEncoderDecoder\";\nimport { CustomFormat } from \"../../../View/GridView/FCComponents/Interface/CoreInlineFCConfigInterface\";\nimport { DATE_TIME_POPUP_CONFIG } from \"../../../View/GridView/FCComponents/Interface/PopupFieldConfigInterface\";\nimport { CellPopupComponent, } from \"../../CellPopupComponent\";\nimport { ICellPopupComponent } from \"../../Interface/ICellComponent\";\n\nconst globalT = globalThis as any;\n\nexport class DateTimePopupComponent extends CellPopupComponent implements ICellPopupComponent {\n    public component       : any\n     config          : DATE_TIME_POPUP_CONFIG\n    public parentDOM       : HTMLElement\n\n    constructor(config : DATE_TIME_POPUP_CONFIG, parentDOM : HTMLElement) {\n        super();\n        this.component      =   null;\n        this.config         =   config;\n        this.config.value = this.createValue();\n        this.config.format = this.createDateFormat(this.config.dateFormat,this.config.hourCycle);\n        this.config.customFormat = this.createCustomFormat();\n        this.parentDOM      =   parentDOM;\n\n        this.constructComponent();\n    }\n\n    constructComponent () {\n        const DG_Components = globalT.DG_Components;\n        this.component = new DG_Components.DateTime(this.config);\n    }\n\n    createValue(){\n        if(this.config.value){\n            const value = decodeToAbsoluteDate(this.config.value);\n        if(value){\n            return new Date(value.year, value.monthIndex, value.date, value.hours, value.minutes, value.seconds,value.milliSeconds);\n        }\n        }\n        return NaN;\n        \n    }\n\n    createCustomFormat(): CustomFormat{\n        let customFormat : CustomFormat= {\n            hour    : 'HH',\n            minute  : 'MM',\n            second  : 'SS',\n            meridian: 'tt'\n        }\n\n        if(this.config.dateFormat.includes('Month')){\n            customFormat.month = 'Month'\n        }\n        return customFormat;\n    }\n    createDateFormat(dateFormat: string, hourCycle: 12 | 24 | 0): string {\n        const formatMap: Record<string, string> = {\n            \"Month D, YYYY\": \"MMMM DD, YYYY\",\n            \"DD/MM/YYYY\": \"DD/MM/YYYY\",\n            \"MM/DD/YYYY\": \"MM/DD/YYYY\",\n            \"YYYY/MM/DD\": \"YYYY/MM/DD\"\n        };\n    \n        let baseFormat = formatMap[dateFormat] || dateFormat;\n    \n        switch (hourCycle) {\n            case 12:\n                return `${baseFormat} hh:mm:ss A`;\n            case 24:\n                return `${baseFormat} HH:mm:ss`;\n            case 0:\n            default:\n                return baseFormat;\n        }\n    }\n\n\n    getValue() {\n        const value =  this.component.api.getValueAsTimeStamp();\n        if(!value){\n            return null;\n        }\n        const dateObject = encodeFromAbsoluteDate(new Date(value));\n        return dateObject;\n    }\n\n    getRequestModelData() {\n       return this.getValue();\n    }\n\n    getElement() {\n        try{\n            return this.component.api.getElement();\n        }\n        catch(error){\n            console.error(\"Error getting element:\", error);\n        }\n    }\n\n    afterGuiAttached() { \n        this.component.api.focus();\n        this.component.api.openPicker();\n    }\n\n    destroyComponent(){\n        this.component.api.closePicker();\n    }\n\n    \n\n    // afterGuiAttached(): void {\n    //     this.component.openDropDown();\n    // }\n\n    // getComponent() {\n    //     return this.component;\n    // }\n\n    // setValue(value : number) {\n    //     this.component?.setValue(value);\n    // }\n     // enableSelection() {\n\n    // }\n\n    // disableSelection() {\n    //     if(!this.config.readOnly) {\n    //         this.component?.showDatePickerIcon();\n    //     }\n    // }\n    \n\n}","// ////import { DCFieldComponents } from \"../../../../FieldComponents/fieldComponents\";\nimport { EMAIL } from \"../../../Constants/FieldTypes.js\";\nimport { SINGLE_EMAIL_POPUP_CONFIG } from \"../../../View/GridView/FCComponents/Interface/PopupFieldConfigInterface\";\n// import { getTemplate } from \"../../../TemplatesForAll.js\";\nimport { CellPopupComponent } from \"../../CellPopupComponent\";\nimport { FIELD_TYPE_CSS_CLASSNAME } from \"../../FieldTypeConstants\";\nimport { ICellPopupComponent } from \"../../Interface/ICellComponent\";\nconst globalT = globalThis as any;\n\nexport class CoreEmailPopupComponent extends CellPopupComponent implements ICellPopupComponent {\n    public component : any;\n    public config    : SINGLE_EMAIL_POPUP_CONFIG\n    public parentDOM : HTMLElement\n\n    constructor(config : SINGLE_EMAIL_POPUP_CONFIG, parentDOM : HTMLElement) {\n        super();\n        this.component = null;\n        this.config    = config;\n        this.parentDOM = parentDOM;\n\n        this.constructComponent();\n        this.addCSSClass();\n    }\n\n    addCSSClass() : void {\n        const className = FIELD_TYPE_CSS_CLASSNAME[EMAIL];\n        this.parentDOM.classList.add(className);\n    }\n\n    constructComponent () : void {\n        const DG_Components = globalT.DG_Components;\n        this.component = new DG_Components.MultilineComponent(this.config); \n    }\n\n    getValue() : string{\n        return this.component.api.getValue();\n    }\n \n    afterGuiAttached() : void{ \n        this.component?.api?.focus();\n    }\n\n}","import { KEYWORD_EXTRACTION } from \"../../../Constants/FieldTypes.js\";\nimport { KEYWORD_EXTRACT_POPUP_CONFIG } from \"../../../View/GridView/FCComponents/Interface/PopupFieldConfigInterface.js\";\nimport { CellPopupComponent } from \"../../CellPopupComponent\";\nimport { FIELD_TYPE_CSS_CLASSNAME } from \"../../FieldTypeConstants\";\nimport { ICellPopupComponent } from \"../../Interface/ICellComponent\";\nconst globalT = globalThis as any;\n\nexport class KeywordExtractPopupComponent extends CellPopupComponent implements ICellPopupComponent{      //will be removed\n    public component       : any;  //will discuss and update the interface later\n    public config          : KEYWORD_EXTRACT_POPUP_CONFIG\n    public parentDOM       : HTMLElement\n\n    constructor(config : KEYWORD_EXTRACT_POPUP_CONFIG, parentDOM : HTMLElement) {\n        super();\n        this.component      =   null;\n        this.config         =   config;\n        this.parentDOM      =   parentDOM;\n\n        this.constructComponent();\n        this.addCSSClass();\n\n\n    }\n\n    constructComponent () {\n        const DG_Components = globalT.DG_Components;\n        this.component = new DG_Components.Select(this.config);\n    }\n\n    addCSSClass() : void {\n        const className = FIELD_TYPE_CSS_CLASSNAME[KEYWORD_EXTRACTION];\n        this.parentDOM.classList.add(className);\n    }\n\n    addOption(value : string) : void {\n        // this.component?.addValue(value);\n    }\n\n    removeOption(value : string) : void {\n        // this.component?.removeValue(value);\n    }\n\n    getValue() {\n        return this.component?.api?.getValue();\n    }\n    afterGuiAttached() { \n    }\n}","\nimport { LANGUAGE_DETECTOR } from \"../../../Constants/FieldTypes.js\";\nimport { LANGUAGE_DETECTION_POPUP_CONFIG } from \"../../../View/GridView/FCComponents/Interface/PopupFieldConfigInterface.js\";\nimport { CellPopupComponent } from \"../../CellPopupComponent\";\nimport { FIELD_TYPE_CSS_CLASSNAME } from \"../../FieldTypeConstants\";\nimport { ICellComponent } from \"../../Interface/ICellComponent\";\nconst globalT = globalThis as any;\n\nexport class LanguagePopupComponent extends CellPopupComponent implements ICellComponent{\n    public component       : any;\n    public config          : LANGUAGE_DETECTION_POPUP_CONFIG\n    public parentDOM       : HTMLElement;\n\n    constructor(config : LANGUAGE_DETECTION_POPUP_CONFIG, parentDOM : HTMLElement) {\n        super();\n        this.component      =   null;\n        this.config         =   config;\n        this.parentDOM      =   parentDOM;\n\n        this.constructComponent();\n        this.addCSSClass();\n    }\n\n    addCSSClass() : void {\n        const className = FIELD_TYPE_CSS_CLASSNAME[LANGUAGE_DETECTOR];\n        this.parentDOM.classList.add(className);\n    }\n\n    constructComponent () {\n        const DG_Components = globalT.DG_Components;\n        this.component = new DG_Components.RenderMultilineComponent(this.config);\n    } \n\n    getFormattedValue() : any {\n        return this.component.api.getFormattedValue();\n    }\n}","import { LOOKUP } from \"../../../Constants/FieldTypes.js\";\nimport { LOOKUP_POPUP_CONFIG } from \"../../../View/GridView/FCComponents/Interface/PopupFieldConfigInterface.js\";\nimport { CellPopupComponent } from \"../../CellPopupComponent\";\nimport { FIELD_TYPE_CSS_CLASSNAME } from \"../../FieldTypeConstants\";\nimport { ICellPopupComponent } from \"../../Interface/ICellComponent\";\nconst globalT = globalThis as any;\n\nexport class LookupPopupComponent extends CellPopupComponent implements ICellPopupComponent{\n    public component : any;                 //will discuss and update the interface later\n    public config    : LOOKUP_POPUP_CONFIG\n    public parentDOM : HTMLElement\n\n    constructor(config : LOOKUP_POPUP_CONFIG, parentDOM : HTMLElement) {\n        super();\n        this.component      =   null;\n        this.config         =   config;\n        this.parentDOM      =   parentDOM;\n\n        this.constructComponent();\n        this.addCSSClass();\n    }\n\n    addCSSClass() : void {\n        const className = FIELD_TYPE_CSS_CLASSNAME[LOOKUP];\n        this.parentDOM.classList.add(className);\n    }\n\n    constructComponent () {\n        const DG_Components = globalT.DG_Components;\n        this.component = new DG_Components.Select(this.config);\n    }\n\n    addOption(value : string) : void {\n        // this.component?.addValue(value);\n    }\n\n    removeOption(value : string) : void {\n        // this.component?.removeValue(value);\n    }\n\n    getValue() {\n        const value = this.component?.api?.getValue();\n        return JSON.stringify(value);\n    }\n}","import { MULTIPLE_SELECTION } from \"../../../Constants/FieldTypes.js\";\nimport { MULTIPLE_SELECTION_POPUP_CONFIG } from \"../../../View/GridView/FCComponents/Interface/PopupFieldConfigInterface\";\nimport { editor_initiated_from } from \"../../../View/GridView/GridConstants\";\nimport { getExpandIcon } from \"../../CellInlineComponent\";\nimport { CellPopupComponent } from \"../../CellPopupComponent\";\nimport { FIELD_TYPE_CSS_CLASSNAME } from \"../../FieldTypeConstants\";\nimport { ICellPopupComponent } from '../../Interface/ICellComponent';\nconst globalT = globalThis as any;\n\nexport class MultiSelectPopupComponent extends CellPopupComponent implements ICellPopupComponent {\n    public component       : any; //will discuss and update the interface later\n     config          : MULTIPLE_SELECTION_POPUP_CONFIG\n     parentDOM       : HTMLElement;\n    getInitiatedFrom  ?: () => string | null;\n    //  public expandIcon: HTMLElement | null;\n\n    constructor(config : MULTIPLE_SELECTION_POPUP_CONFIG, parentDOM : HTMLElement, getInitiatedFrom ?: () => string | null) {\n        super();\n        this.component      =   null;\n        this.config         =   config;\n        this.parentDOM      =   parentDOM;\n        this.getInitiatedFrom = getInitiatedFrom;\n\n        this.constructComponent();\n        this.addCSSClass();\n    }\n\n    addCSSClass() : void {\n        const className = FIELD_TYPE_CSS_CLASSNAME[MULTIPLE_SELECTION];\n        this.parentDOM.classList.add(className);\n    }\n\n    constructComponent () {\n\n        const DG_Components = globalT.DG_Components;\n        this.component = new DG_Components.Select(this.config);\n    }\n\n    // getComponent() {\n    //     return this.component;\n    // }\n\n    addOption(value : string) : void {\n        // this.component?.addValue(value);\n    }\n\n    removeOption(value : string) : void {\n        // this.component?.removeValue(value);\n    }\n\n    getValue() {\n        // return this.component?.getValues();\n        const selectIds =  this.component.api.getSelectedIDs()\n        return selectIds.join(',');\n    }\n\n    getRequestModelData() {\n        const selectIds =  this.component.api.getSelectedIDs()\n        return selectIds.join(',');\n    }\n\n    // enableSelection() {\n    //     // if(!this.config.readOnly) {\n    //     //     this.component?.showPlusIcon();\n    //     // }\n    //     // const expandIconTemplate    = getTemplate('ZTCG-expandIconTemplate') as HTMLTemplateElement;\n    //     // const expandIcon            = expandIconTemplate.querySelector('.zt-expand-icon') as HTMLDivElement;\n    //     // this.component?.addTrailingDom(expandIcon);\n    // }\n\n    // disableSelection() {\n    // //     if(!this.config.readOnly) {\n    // //         this.component?.hidePlusIcon();\n    // //     }\n    // //     this.component?.clearTrailingDom();\n    // }\n    enableSelection() {\n        // const selectionParams ={\n        //     component : this\n        // }\n        // this.config.onSelection(selectionParams);\n        // this.addExpandIcon(params);\n    }\n    disableSelection() {\n        // const deSelectionParams ={\n        //      component : this\n        // }\n        // this.config.onDeSelection(deSelectionParams);\n        // this.removeExpandIcon()\n    }\n\n    private addExpandIcon(params: any): void {\n        if(this.expandIcon == null){\n            this.expandIcon = getExpandIcon(params);\n            this.parentDOM.appendChild(this.expandIcon);\n        }\n        else{\n            this.parentDOM.appendChild(this.expandIcon);\n        }\n    }   \n    private removeExpandIcon(): void {\n        this.expandIcon?.remove();\n    }\n    // getElement() {\n    //     return this.component?.api.getElement();\n    // }\n\n    afterGuiAttached() { \n        // this.component?.api?.focus();\n        const initiatedFrom = this.getInitiatedFrom?.();\n        if(initiatedFrom !== editor_initiated_from.ELLIPSES && initiatedFrom !== editor_initiated_from.EXPAND_ICON){\n            this.component?.api?.openDropdown();\n        }\n    }\n\n    searchValue(value: any) {\n        this.component.api?.openDropdown();\n        this.component.api?.search(value);\n    }\n\n    isDropdownOpened():boolean{\n        return this.component.api.isDropdownOpened();\n    }\n\n    // showLoader(){\n    //     // this.createNewOptionDOM.classList.add('ZTCL-active');\n    //     const createNewOption =  document.querySelector(\".dg-create-newoption\");\n    //     createNewOption?.classList.add('ZTCL-active');\n    // }\n\n    // hideLoader(){\n    //     // this.createNewOptionDOM.classList.remove('ZTCL-active');\n    //     const createNewOption =  document.querySelector(\".dg-create-newoption\");\n    //     createNewOption?.classList.remove('ZTCL-active');\n    // }\n\n    // createNewOption(newOption : any){\n    //     const transformedValues = Object.entries(newOption).map(([key, values]: [string, any]) => {\n    //         const [value, color] = values;\n    //         return { \n    //           value, \n    //           color: `${getLightColor(color)}`,\n    //           id : key\n    //         };\n    //     });\n        \n    //     this.component.api.addOptions(transformedValues);\n    //     return transformedValues;\n    // }\n    \n}","// import { Number } from \"../../../../fieldcomponents/src/components/number/ts/Number\";\nimport { NUMBER } from \"../../../Constants/FieldTypes.js\";\nimport { NUMBER_POPUP_CONFIG } from \"../../../View/GridView/FCComponents/Interface/PopupFieldConfigInterface.js\";\nimport { CellPopupComponent } from \"../../CellPopupComponent\";\nimport { FIELD_TYPE_CSS_CLASSNAME } from \"../../FieldTypeConstants\";\n// import { DCFieldComponents } from \"../../../../FieldComponents/fieldComponents\";\nimport { ICellPopupComponent } from \"../../Interface/ICellComponent\";\nconst globalT = globalThis as any;\n\nexport class NumberPopupComponent extends CellPopupComponent implements ICellPopupComponent {\n    // private component       : typeof DCFieldComponents.Number.prototype | null\n    public  component : any;\n    private config    : NUMBER_POPUP_CONFIG\n    public  parentDOM : HTMLElement\n\n    constructor(config : NUMBER_POPUP_CONFIG, parentDOM : HTMLElement) {\n        super();\n        this.component      =   null;\n        this.config         =   config;\n        this.parentDOM      =   parentDOM;\n\n        this.constructComponent();\n        this.addCSSClass();\n    }\n\n    constructComponent () {\n\n        const DG_Components = globalT.DG_Components;\n        this.component = new DG_Components.NumberComponent(this.config, {modules: [DG_Components.DecimalModule]});\n    }\n\n    addCSSClass() : void {\n        const className = FIELD_TYPE_CSS_CLASSNAME[NUMBER];\n        this.parentDOM.classList.add(className);\n    }\n \n    getValue() {\n        const value = this.component.api.getValue()\n        if(value!==undefined && value!==null){\n            return value.toString()\n        }else{\n            return \"\"\n        }\n    }\n \n    getRequestModelData() {\n        return this.component.api.getValue();\n    }\n\n    afterGuiAttached() { \n        this.component.api.focus();\n    }\n    showTooltip() {\n        this.component.api.openToolTip();\n    }\n}","import { PERCENT } from '../../../Constants/FieldTypes.js';\nimport { PERCENT_POPUP_CONFIG } from '../../../View/GridView/FCComponents/Interface/PopupFieldConfigInterface.js';\nimport { CellPopupComponent } from '../../CellPopupComponent';\nimport { divideBy100 } from '../../FieldTypeComponentsFormater';\nimport { FIELD_TYPE_CSS_CLASSNAME } from '../../FieldTypeConstants';\nimport { ICellPopupComponent } from '../../Interface/ICellComponent';\nconst globalT = globalThis as any;\n\nexport class PercentPopupComponent extends CellPopupComponent implements ICellPopupComponent {\n     component       : any;\n     config          : PERCENT_POPUP_CONFIG\n     parentDOM       : HTMLElement\n\n    constructor(config : PERCENT_POPUP_CONFIG, parentDOM : HTMLElement) {\n        super();\n        this.component      =   null;\n        this.config         =   config;\n        this.parentDOM      =   parentDOM;\n\n        this.constructComponent();\n        this.addCSSClass();\n    }\n\n    constructComponent () {\n        const DG_Components = globalT.DG_Components;\n        (this.config as any).type = 'percent';\n        (this.config as any).hideSymbol = true;\n        this.component = new DG_Components.NumberComponent(this.config, {modules: [DG_Components.PercentageModule]});\n    }\n    addCSSClass() : void {\n        const className = FIELD_TYPE_CSS_CLASSNAME[PERCENT];\n        this.parentDOM.classList.add(className);\n    }\n\n    getValue() {\n\n        const value = this.component.api.getValue();\n        const convertedValue = divideBy100(value)\n        if(convertedValue!=undefined && convertedValue!=null){\n            return convertedValue.toString()\n        }else{\n            return \"\"\n        }\n    }\n\n    getRequestModelData() {\n        return this.getValue();\n    }\n\n    afterGuiAttached() { \n        this.component.api.focus();\n    }\n    showTooltip() {\n        this.component.api.openToolTip();\n    }\n}","import { PHONE_NUMBER } from \"../../../Constants/FieldTypes.js\";\nimport { SINGLE_PHONE_NUMBER_POPUP_CONFIG } from \"../../../View/GridView/FCComponents/Interface/PopupFieldConfigInterface.js\";\nimport { CellPopupComponent } from \"../../CellPopupComponent\";\nimport { FIELD_TYPE_CSS_CLASSNAME } from \"../../FieldTypeConstants\";\nimport { ICellPopupComponent } from \"../../Interface/ICellComponent\";\nconst globalT = globalThis as any;\n\nexport class PhoneNumberPopupComponent extends CellPopupComponent implements ICellPopupComponent {\n    // private component       : typeof DCFieldComponents.Anchor.prototype | null\n    public component       : any;\n    private config          : SINGLE_PHONE_NUMBER_POPUP_CONFIG\n    public parentDOM       : HTMLElement\n\n    constructor(config : SINGLE_PHONE_NUMBER_POPUP_CONFIG, parentDOM : HTMLElement) {\n        super();\n        this.component      =   null;\n        this.config         =   config;\n        this.parentDOM      =   parentDOM;\n\n        this.constructComponent();\n        this.addCSSClass();\n    }\n\n    addCSSClass() : void {\n        const className = FIELD_TYPE_CSS_CLASSNAME[PHONE_NUMBER];\n        this.parentDOM.classList.add(className);\n    }\n\n    constructComponent () {\n        const DG_Components = globalT.DG_Components;\n        if(this.config.readOnly){\n            this.component = new DG_Components.Link(this.config);\n        }\n        else{ \n            this.component =  new DG_Components.MultilineComponent(this.config);\n        }\n    }\n\n    // getComponent() {\n    //     return this.component;\n    // }\n\n    // setValue(value : string) {\n    //     this.component?.api.setValue(value);\n    // }\n\n    getValue() {\n        return this.component.api.getValue();\n    }\n\n\n    // enableSelection() { //will be implemented\n    //     // const expandIconTemplate    = getTemplate('ZTCG-expandIconTemplate') as HTMLTemplateElement;\n    //     // const expandIcon            = expandIconTemplate.querySelector('.zt-expand-icon') as HTMLDivElement;\n    //     // this.component?.addTrailingDom(expandIcon);\n    // }\n\n    // disableSelection() { //will be implemented\n    //     // this.component?.clearTrailingDom();\n    // }\n\n    // getElement() {\n    //     return this.component?.api.getElement();\n    // }\n\n    afterGuiAttached() { \n        this.component?.api?.focus();\n    }\n\n}","// import { DCFieldComponents } from \"../../../../FieldComponents/fieldComponents\";\nimport { ROLLUP } from \"../../../Constants/FieldTypes.js\";\nimport { ROLLUP_POPUP_CONFIG } from \"../../../View/GridView/FCComponents/Interface/PopupFieldConfigInterface.js\";\nimport { CellPopupComponent } from \"../../CellPopupComponent\";\nimport { FIELD_TYPE_CSS_CLASSNAME } from \"../../FieldTypeConstants\";\nimport { ICellPopupComponent } from \"../../Interface/ICellComponent\";\nconst globalT = globalThis as any;\n\nexport class RollupPopupComponent extends CellPopupComponent implements ICellPopupComponent{\n    public component : any;                 //will discuss and update the interface later\n    public config    : ROLLUP_POPUP_CONFIG\n    public parentDOM : HTMLElement\n\n    constructor(config : ROLLUP_POPUP_CONFIG, parentDOM : HTMLElement) {\n        super();\n        this.component      =   null;\n        this.config         =   config;\n        this.parentDOM      =   parentDOM;\n\n        this.constructComponent();\n        this.addCSSClass();\n    }\n\n    addCSSClass() : void {\n        const className = FIELD_TYPE_CSS_CLASSNAME[ROLLUP];\n        this.parentDOM.classList.add(className);\n    }\n\n    constructComponent () {\n        const DG_Components = globalT.DG_Components;\n        this.component = new DG_Components.Select(this.config);\n    }\n\n    addOption(value : string) : void {\n        // this.component?.addValue(value);\n    }\n\n    removeOption(value : string) : void {\n        // this.component?.removeValue(value);\n    }\n\n    getValue() {\n        // return this.component?.getValues();\n        return this.component?.api?.getValue();\n    }\n}","import { SENTIMENTAL_ANALYSIS } from \"../../../Constants/FieldTypes.js\";\nimport { SENTIMENTAL_ANALYSIS_POPUP_CONFIG } from \"../../../View/GridView/FCComponents/Interface/PopupFieldConfigInterface.js\";\nimport { CellPopupComponent } from \"../../CellPopupComponent\";\nimport { FIELD_TYPE_CSS_CLASSNAME } from \"../../FieldTypeConstants\";\nimport { ICellPopupComponent } from \"../../Interface/ICellComponent\";\nconst globalT = globalThis as any;\n\nexport class SentimentalAnalysisPopupComponent extends CellPopupComponent implements ICellPopupComponent {\n\n    public component : any;\n           config    : SENTIMENTAL_ANALYSIS_POPUP_CONFIG\n           parentDOM : HTMLElement\n\n    constructor(config : SENTIMENTAL_ANALYSIS_POPUP_CONFIG, parentDOM : HTMLElement) {\n        super();\n        this.component      =   null;\n        this.config         =   config;\n        this.parentDOM      =   parentDOM;\n\n        this.constructComponent();\n        this.addCSSClass();\n    }\n\n    addCSSClass() : void {\n        const className = FIELD_TYPE_CSS_CLASSNAME[SENTIMENTAL_ANALYSIS];\n        this.parentDOM.classList.add(className);\n    }\n\n    constructComponent () {\n        const DG_Components = globalT.DG_Components;\n        this.component = new DG_Components.Select(this.config);\n    }\n\n    getComponent() {\n        return this.component;\n    }\n\n    setValue(_value : string) {\n        // this.component?.api.setValue(value);\n    }\n\n    appendEmoji(_imgSrc : string) {\n        // const imageDOM  = document.createElement('img') as HTMLImageElement;    //No I18N\n        // imageDOM.src    = imgSrc;\n        // imageDOM.classList.add(SENTIMENT_EMOJI_CSS_CLASSNAME); \n        // this.component?.addLeadingDom(imageDOM);\n    }\n\n    getValue() {\n        // return this.component?.getValue();\n        const selectIds =  this.component.api.getSelectedIDs()\n        return selectIds[0] ?? \"\";\n    }\n\n    getRequestModelData() {\n        const selectIds =  this.component.api.getSelectedIDs()\n        return selectIds[0] ?? \"\";\n    }\n\n    enableSelection() {\n        // if(!this.config.readOnly) {\n        //     this.component?.showDropdownIcon();\n        // }\n    }\n\n    disableSelection() {\n        // if(!this.config.readOnly) {\n        //     this.component?.hideDropdownIcon();\n        // }\n    }\n\n    getElement() {\n        try{\n            return this.component?.api.getElement();\n        }\n        catch(error){\n            console.error(\"Error getting element:\", error);\n        }\n    }\n    afterGuiAttached() { \n        setTimeout(()=>{this.component.api?.openDropdown()},0);// set timeout => temp fix\n    }\n    \n    searchValue(value: any) {\n        this.component.api?.openDropdown();\n        this.component.api?.search(value);\n    }\n    isDropdownOpened():boolean{\n        return this.component.api.isDropdownOpened();\n    }\n} ","import { SINGLE_SELECTION } from \"../../../Constants/FieldTypes.js\";\nimport { SINGLE_SELECTION_POPUP_CONFIG } from \"../../../View/GridView/FCComponents/Interface/PopupFieldConfigInterface\";\nimport { CellPopupComponent } from \"../../CellPopupComponent\";\nimport { FIELD_TYPE_CSS_CLASSNAME } from \"../../FieldTypeConstants\";\nimport { ICellPopupComponent } from \"../../Interface/ICellComponent\";\nconst globalT = globalThis as any;\nexport class SingleSelectPopupComponent extends CellPopupComponent implements ICellPopupComponent{\n    \n    public component       : any; //will discuss and update the interface later\n    config                 : SINGLE_SELECTION_POPUP_CONFIG;\n    parentDOM              : HTMLElement;\n    createNewOptionDOM       !: HTMLElement;\n\n\n    constructor(config : SINGLE_SELECTION_POPUP_CONFIG, parentDOM : HTMLElement) {\n        super();\n        this.component      =   null;\n        this.config         =   config;\n        this.parentDOM      =   parentDOM;\n\n        this.constructComponent();\n        this.addCSSClass();\n\n    }\n\n    addCSSClass() : void {\n        const className = FIELD_TYPE_CSS_CLASSNAME[SINGLE_SELECTION];\n        this.parentDOM.classList.add(className);\n    }\n\n\n\n    constructComponent () {\n        const DG_Components = globalT.DG_Components;\n        this.component = new DG_Components.Select(this.config);    \n    }\n\n    getComponent() {\n        return this.component;\n    }\n\n    setValue(_value : string) : void {\n        // this.component?.api?.setValue(value);\n    }\n\n    getValue() {\n        const selectedIds  = this.component.api.getSelectedIDs();\n        return selectedIds[0] ?? \"\";\n    }\n\n    getRequestModelData() {\n        const selectedIds  = this.component.api.getSelectedIDs();\n        return selectedIds[0] ?? \"\";\n    }\n\n    enableSelection() {\n    }\n\n    disableSelection() {\n        this.component.destroy();\n    }\n\n    getElement() {\n        try{\n            return this.component?.api.getElement();\n        }\n        catch(error){\n            console.error(\"Error getting element:\", error);\n        }\n    }\n\n    afterGuiAttached() { \n        setTimeout(()=>{this.component.api?.openDropdown()},0); // set timeout => temp fix\n    }\n    searchValue(value: any) {\n        this.component.api?.openDropdown();\n        this.component.api?.search(value);\n    }\n\n    isDropdownOpened():boolean{\n        return this.component.api.isDropdownOpened();\n    }\n    // showLoader(){\n    //     // this.createNewOptionDOM.classList.add('ZTCL-active');\n    //     const createNewOption =  document.querySelector(\".dg-create-newoption\");\n    //     createNewOption?.classList.add('ZTCL-active');\n    // }\n\n    // hideLoader(){\n    //     // this.createNewOptionDOM.classList.remove('ZTCL-active');\n    //     const createNewOption =  document.querySelector(\".dg-create-newoption\");\n    //     createNewOption?.classList.remove('ZTCL-active');\n    // }\n\n    // createNewOption(newOption : any){\n    //     const transformedValues = Object.entries(newOption).map(([key, values]: [string, any]) => {\n    //         const [value, color] = values;\n    //         return { \n    //             value, \n    //         id: key,\n    //             selectedValueRenderer: SingleSelectChipCustomRenderer,\n    //             selectedValueRendererParams: {\n    //                 label: value,\n    //                 bgColor: `${getLightColor(color)}`,\n    //                 dotColor: `#${color}`,\n    //             },\n    //             dropdownOptionRenderer: SingleSelectDropdownOptionCustomRenderer,\n    //             dropdownOptionRendererParams: {\n    //                 label: value,\n    //                 bgColor: `${getLightColor(color)}`,\n    //                 dotColor: `#${color}`,\n    //             },\n    //         };\n    //     });\n        \n    //     this.component.api.addOptions(transformedValues);\n    // }\n\n    \n}","import { TEXT } from \"../../../Constants/FieldTypes.js\";\nimport { TEXT_POPUP_CONFIG } from \"../../../View/GridView/FCComponents/Interface/PopupFieldConfigInterface.js\";\nimport { CellPopupComponent } from \"../../CellPopupComponent\";\nimport { FIELD_TYPE_CSS_CLASSNAME } from \"../../FieldTypeConstants\";\nimport { ICellPopupComponent } from \"../../Interface/ICellComponent\";\nconst globalT = globalThis as any;\n\nexport class TextPopupComponent extends CellPopupComponent implements ICellPopupComponent{\n    // private component       : typeof DCFieldComponents.Text.prototype | null\n    public component        : any;\n    private config          : TEXT_POPUP_CONFIG\n    public parentDOM       : HTMLElement\n\n    constructor(config : TEXT_POPUP_CONFIG, parentDOM : HTMLElement) {\n        super();\n        this.component      =   null;\n        this.config         =   config;\n        this.parentDOM      =   parentDOM;\n\n        this.constructComponent();\n        this.addCSSClass();\n    }\n\n    addCSSClass() : void {\n        const className = FIELD_TYPE_CSS_CLASSNAME[TEXT];\n        this.parentDOM?.classList.add(className);\n    }\n\n    constructComponent () {\n        const DG_Components = globalT.DG_Components;\n        this.component = new DG_Components.MultilineComponent(this.config);\n    }\n\n    getValue() {\n        return this.component.api.getValue();\n    }\n\n    afterGuiAttached() { \n        this.component.api.focus(true);\n    }\n}","import { URL } from \"../../../Constants/FieldTypes.js\";\nimport { FIELD_TYPE_CSS_CLASSNAME } from \"../../FieldTypeConstants\";\nimport { CellPopupComponent } from \"../../CellPopupComponent\";\nimport { ICellPopupComponent } from \"../../Interface/ICellComponent\";\nimport { SINGLE_URL_POPUP_CONFIG } from \"../../../View/GridView/FCComponents/Interface/PopupFieldConfigInterface\";\n\nconst globalT = globalThis as any;\n\nexport class URLPopupComponent extends CellPopupComponent implements ICellPopupComponent{\n    // private component       : typeof DCFieldComponents.Anchor.prototype | null\n    public component       : any;\n    public parentDOM       : HTMLElement;\n\n    constructor(config : SINGLE_URL_POPUP_CONFIG, parentDOM : HTMLElement) {\n        super();\n        this.component      =   null;\n        this.config         =   config;\n        this.parentDOM      =   parentDOM;\n\n        this.constructComponent();\n        this.addCSSClass();\n    }\n\n    addCSSClass() : void {\n        const className = FIELD_TYPE_CSS_CLASSNAME[URL];\n        this.parentDOM.classList.add(className);\n    }\n\n    constructComponent () {\n        const DG_Components = globalT.DG_Components;\n        this.component = new DG_Components.MultilineComponent(this.config);\n    }\n\n    // getComponent() {\n    //     return this.component;\n    // }\n\n    // setValue(value : string) {\n    //     this.component?.api.setValue(value);\n    // }\n\n    getValue() {\n        return this.component.api.getValue();\n    }\n\n    \n    // enableSelection() {     //will be implemented\n    //     // const expandIconTemplate    = getTemplate('ZTCG-expandIconTemplate') as HTMLTemplateElement;\n    //     // const expandIcon            = expandIconTemplate.querySelector('.zt-expand-icon') as HTMLDivElement;\n    //     // this.component?.addTrailingDom(expandIcon);\n    // }\n\n    // disableSelection() {        //will be implemented\n    //     // this.component?.clearTrailingDom(); //DG TODO: Remove optional chaining\n    // }\n    enableSelection(): void {\n        \n    }\n\n    disableSelection(): void {\n        \n    }\n\n    // getElement() {\n    //     return this.component?.api.getElement();\n    // }\n\n    afterGuiAttached() { \n        this.component.api.focus();\n    }\n}","import { ATTACHMENT, AUTO_NUMBER, CHECKBOX, COLLABORATOR_CLIENT, CREATED_BY, CREATED_TIME, CURRENCY, DATE_TIME, EMAIL, FORMULA, KEYWORD_EXTRACTION, LANGUAGE_DETECTOR, LOOKUP, MODIFIED_BY, MODIFIED_TIME, MULTIPLE_SELECTION, NUMBER, PERCENT, PHONE_NUMBER, RATING, ROLLUP, SENTIMENTAL_ANALYSIS, SINGLE_SELECTION, TEXT, URL } from \"../../../../Constants/FieldTypes.js\";\nimport { FormulaReturnTypeMapping } from \"../../../../Constants/FormulaReturnTypes.js\";\nimport { CheckboxInlineComponent } from \"../../../../FieldTypeComponents/Composite/CheckBoxFieldType/CheckboxInlineComponent\";\nimport { MultipleEmailInlineComponent } from \"../../../../FieldTypeComponents/Composite/EmailFieldType/MultipleEmailInlineComponent\";\nimport { MultiplePhoneNumberInlineComponent } from \"../../../../FieldTypeComponents/Composite/PhoneNumberFieldType/MultiplePhoneNumberInlineComponent\";\nimport { MultipleURLInlineComponent } from \"../../../../FieldTypeComponents/Composite/URLFieldType/MultipleURLInlineComponent\";\nimport { MultipleCollaboratorPopupComponent } from \"../../../../FieldTypeComponents/EditComponents/CollaboratorFieldType/MultipleCollaborator/MultipleCollaboratorPopupComponent\";\nimport { CurrencyPopupComponent } from \"../../../../FieldTypeComponents/EditComponents/CurrencyFieldType/CurrencyPopupComponent\";\nimport { DateTimePopupComponent } from \"../../../../FieldTypeComponents/EditComponents/DateTimeFieldType/DateTimePopupComponent\";\nimport { CoreEmailPopupComponent } from \"../../../../FieldTypeComponents/EditComponents/EmailFieldType/CoreEmailPopupComponent\";\nimport { MultipleEmailPopupComponent } from \"../../../../FieldTypeComponents/EditComponents/EmailFieldType/MultipleEmailPopupComponent\";\nimport { KeywordExtractPopupComponent } from \"../../../../FieldTypeComponents/EditComponents/KeywordExtractFieldType/KeywordExtractPopupComponent\";\nimport { LanguagePopupComponent } from \"../../../../FieldTypeComponents/EditComponents/LanguageDetectionFieldType/LanguageDetectionPopupComponent\";\nimport { LookupPopupComponent } from \"../../../../FieldTypeComponents/EditComponents/LookupFieldType/LookupPopupComponent\";\nimport { MultiSelectPopupComponent } from \"../../../../FieldTypeComponents/EditComponents/MultipleSelectionFieldType/MultiSelectPopupComponent\";\nimport { NumberPopupComponent } from \"../../../../FieldTypeComponents/EditComponents/NumberFieldType/NumberPopupComponent\";\nimport { PercentPopupComponent } from \"../../../../FieldTypeComponents/EditComponents/PercentFieldType/PercentPopupComponent\";\nimport { MultiplePhoneNumberPopupComponent } from \"../../../../FieldTypeComponents/EditComponents/PhoneNumberFieldType/MultiplePhoneNumberPopupComponent\";\nimport { PhoneNumberPopupComponent } from \"../../../../FieldTypeComponents/EditComponents/PhoneNumberFieldType/PhoneNumberPopupComponent\";\nimport { RollupPopupComponent } from \"../../../../FieldTypeComponents/EditComponents/RollupFieldType/RollupPopupComponent\";\nimport { SentimentalAnalysisPopupComponent } from \"../../../../FieldTypeComponents/EditComponents/SentimentalAnalysisFieldType/SentimentalAnalysisPopupComponent\";\nimport { SingleSelectPopupComponent } from \"../../../../FieldTypeComponents/EditComponents/SingleSelectFieldType/SingleSelectPopupComponent\";\nimport { TextPopupComponent } from \"../../../../FieldTypeComponents/EditComponents/TextFieldType/TextPopupComponent\";\nimport { MultipleURLPopupComponent } from \"../../../../FieldTypeComponents/EditComponents/URLFieldType/MultipleURLPopupComponent\";\nimport { URLPopupComponent } from \"../../../../FieldTypeComponents/EditComponents/URLFieldType/URLPopupComponent\";\nimport { parseFormulaDataResponse } from \"../../../../Utility/DataUtility.js\";\nimport { getMultipleEmailConfig, getMultiplePhoneNumberConfig, getMultipleURLConfig, getPercentConfig } from \"../CoreInlineFCConfigConstructor\";\nimport { IFCConfigDataProvider } from \"../Interface/IFCConfigDataProvider\";\nimport { getClipboardConfig } from \"../Utility\";\nimport { getCurrencyConfig, getDateTimeConfig, getKeywordExtractionConfig, getLanguageDetectorConfig, getLookupConfig, getMultipleCollaboratorConfig, getMultipleSelectionConfig, getNumberConfig, getRollupConfig, getSentimentalAnalysisConfig, getSingleEmailConfig, getSinglePhoneNumberConfig, getSingleSelectionConfig, getSingleURLConfig, getTextConfig } from \"../PopupFCConfigConstructor\";\nimport { VIEWER_MULTIPLE_COLLABORATOR_POPUP_CONFIG, VIEWER_MULTIPLE_SELECTION_POPUP_CONFIG, VIEWER_SINGLE_EMAIL_POPUP_CONFIG, VIEWER_SINGLE_PHONE_NUMBER_POPUP_CONFIG, VIEWER_SINGLE_URL_POPUP_CONFIG, VIEWER_TEXT_POPUP_CONFIG } from \"./Interface/ViewerPopupFCConfigInterface\";\n\n\n// checkBox missing,keyword\nexport class CoreViewerPopupFCConfigConstructor {\n    protected fieldConstructorMapping: Record<number, any>;\n    protected dataProvider: IFCConfigDataProvider;\n\n    constructor(dataProvider: IFCConfigDataProvider) {\n        this.dataProvider = dataProvider;\n        this.fieldConstructorMapping = this.getFieldConstructorMapping();\n    }\n\n    protected getFieldConstructorMapping() : Record<number, any> {\n        return {\n            [COLLABORATOR_CLIENT]   : this.constructCollaborator,\n            [CURRENCY]              : this.constructCurrencyComponent,\n            [DATE_TIME]             : this.constructorDateTimeComponent,\n            [EMAIL]                 : this.constructEmail,\n            [MULTIPLE_SELECTION]    : this.constructMultipleSelectionComponent ,\n            [NUMBER]                : this.constructNumberComponent,\n            [PERCENT]               : this.constructPercentComponent,\n            [PHONE_NUMBER]          : this.constructPhoneNumber,\n            [SENTIMENTAL_ANALYSIS]  : this.constructSentimentalAnalysisComponent,\n            [SINGLE_SELECTION]      : this.constructSingleSelectionComponent,\n            [TEXT]                  : this.constructTextComponent,\n            [URL]                   : this.constructURLComponent,\n\n            [RATING]                : this.constructRatingComponent,\n            [CHECKBOX]              : this.constructCheckboxComponent,\n            [ATTACHMENT]            : this.constructAttachmentComponent,\n            [AUTO_NUMBER]           : this.constructAutoNumberComponent,\n            [CREATED_BY]            : this.constructCreatedByComponent,\n            [CREATED_TIME]          : this.constructCreatedTimeComponent,\n            [LOOKUP]                : this.constructLookupComponent,\n            [MODIFIED_BY]           : this.constructModifiedByComponent,\n            [MODIFIED_TIME]         : this.constructModifiedTimeComponent,\n            [ROLLUP]                : this.constructRollupComponent,\n            [KEYWORD_EXTRACTION]    : this.constrcutKeywordExtractionComponent,\n            [LANGUAGE_DETECTOR]     : this.constructLanguageDetector,\n            [FORMULA]               : this.constructFormulaComponent,\n        };\n    }\n\n    // Collaborator\n    constructCollaborator(params: any): any{\n        const {fieldTypeSpecifications} = params;\n        const isSingleCollaborator      = fieldTypeSpecifications[0] === 0;\n        return isSingleCollaborator ? this.constructSingleCollaboratorComponent(params) : this.constructMultipleCollaboratorComponent(params);\n    }\n\n    //single collaborator\n    constructSingleCollaboratorComponent(params: any): null {\n        return null;\n    }\n\n    // checkbox\n   constructCheckboxComponent(params : any) : CheckboxInlineComponent | null {\n        return null;\n    }\n\n    // Rating\n    constructRatingComponent(params : any)  : null{\n        return null;\n    }\n\n    // attachment\n    constructAttachmentComponent(_params: any)  : null {\n        return null;\n    }\n\n    // AUTO_NUMBER\n    constructAutoNumberComponent(_params: any)  : null { \n        return null;\n    }\n\n    // CREATED_BY\n    constructCreatedByComponent(_params : any)  : null {\n        return null;\n    }\n\n    // CREATED_TIME\n    constructCreatedTimeComponent(_params : any) :  null{\n        return null;\n    }\n\n    // LOOKUP\n    constructLookupComponent(params : any) : LookupPopupComponent  {\n        const parentElement = params.parentDOM;\n        const coreConfig = getLookupConfig(params, this.dataProvider);\n        const component =  new LookupPopupComponent(coreConfig,parentElement);\n        return component;\n    }\n    \n    // MODIFIED_BY\n    constructModifiedByComponent(_params : any) : null  {\n       return null;\n    }\n\n    // MODIFIED_TIME\n    constructModifiedTimeComponent(_params : any) : null  {\n        return null;    \n    }\n    // ROLLUP\n    constructRollupComponent(params : any) : RollupPopupComponent  {\n        const parentElement = params.parentDOM;\n        const coreConfig = getRollupConfig(params, this.dataProvider);\n        const component =  new RollupPopupComponent(coreConfig,parentElement);\n        return component;\n    }\n    // KEYWORD_EXTRACTION\n    constrcutKeywordExtractionComponent(params : any) : KeywordExtractPopupComponent{\n            const parentElement = params.parentDOM;\n            const coreConfig = getKeywordExtractionConfig(params);\n            const component =  new KeywordExtractPopupComponent(coreConfig,parentElement);\n            return component;\n        }\n\n    // LANGUAGE_DETECTOR\n       constructLanguageDetector(params : any) : LanguagePopupComponent {\n           const parentElement = params.parentDOM;\n           const coreConfig = getLanguageDetectorConfig(params);\n           const component =  new LanguagePopupComponent(coreConfig,parentElement);\n           return component;\n       }\n\n    constructFormulaTextComponent( params : any)  {\n        const parentDOM                            = params.parentDOM;\n        const coreConfig                           = getTextConfig(params);\n        const textConfig: VIEWER_TEXT_POPUP_CONFIG = {\n            ...coreConfig,\n            readonly : true,\n            autosize : true,\n        };\n\n        const component = new TextPopupComponent(textConfig, parentDOM);\n        return component;\n    }\n\n    // FORMULA\n    constructFormulaComponent(params : any) {\n        const {fieldTypeSpecifications}   = params;\n        const formatArray                 = fieldTypeSpecifications[2][0];\n        const returnType                  = formatArray[0];\n        const value                       = params.value;\n        const data                       = (value && value != \"\") ? parseFormulaDataResponse(value) : '';\n        switch (FormulaReturnTypeMapping(returnType)) {\n            case TEXT :{\n                params.value = data;\n                return this.constructFormulaTextComponent(params);\n            }\n            case NUMBER :{\n                return null;\n            }\n            case DATE_TIME :{\n                return null;\n            }\n            case CURRENCY :{\n                return null;\n            }\n            case PERCENT :{\n               return null;\n            }\n        }\n    }\n\n    // Currency\n    constructCurrencyComponent(params: any): CurrencyPopupComponent{\n        const parentDOM = params.parentDOM;\n        const coreConfig = getCurrencyConfig(params);\n        const component = new CurrencyPopupComponent(coreConfig, parentDOM);\n        return component;\n    }\n\n    //date_time\n    constructorDateTimeComponent(params: any): DateTimePopupComponent {\n        const parentDOM = params.parentDOM;\n        const coreConfig = getDateTimeConfig(params);\n        const component = new DateTimePopupComponent(coreConfig, parentDOM);\n        return component;\n    }\n\n    constructMultipleCollaboratorComponent(params: any): MultipleCollaboratorPopupComponent {\n        const parentDOM = params.parentDOM;\n        const coreConfig :VIEWER_MULTIPLE_COLLABORATOR_POPUP_CONFIG= getMultipleCollaboratorConfig(params, this.dataProvider);\n        const multipleCollaboratorConfig: VIEWER_MULTIPLE_COLLABORATOR_POPUP_CONFIG = {\n            ...coreConfig,\n            readonly       : true,\n            enablePlusIcon : false,\n        };\n        const component = new MultipleCollaboratorPopupComponent(multipleCollaboratorConfig, parentDOM);\n        return component;\n    }\n\n\n    // Number \n    constructNumberComponent(params: any): NumberPopupComponent  {\n        const parentDOM = params.parentDOM;\n        const coreConfig = getNumberConfig(params);\n        const component = new NumberPopupComponent(coreConfig, parentDOM);\n        return component;\n    }\n\n    //percent\n    constructPercentComponent(params : any): PercentPopupComponent {\n        const parentDOM = params.parentDOM;\n        const coreConfig  = getPercentConfig(params);\n        const component = new PercentPopupComponent(coreConfig, parentDOM);\n        return component;\n    }\n\n    // Phone Number\n    constructPhoneNumber(params: any) {\n        const {fieldTypeSpecifications} = params;\n        const isSinglePhoneNumber          = fieldTypeSpecifications[1] === 0;\n        return isSinglePhoneNumber ?  this.constructSinglePhoneNumberComponent(params): this.constructMultiplePhoneNumberComponent(params);\n    }\n\n    // single phone number\n    constructSinglePhoneNumberComponent(params: any) : PhoneNumberPopupComponent{\n        const parentDOM = params.parentDOM;\n        const coreConfig = getSinglePhoneNumberConfig(params);\n        const roleBasedConfig ={\n             onKeydown :(event : KeyboardEvent) =>{\n                        const arrowArray        = ['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown']\n                        const shiftArrow        = event.shiftKey && arrowArray.includes(event.key);\n                        if(shiftArrow){\n                            event.stopPropagation();\n                        }\n                        \n                    }\n        }\n        const mergedConfig : VIEWER_SINGLE_PHONE_NUMBER_POPUP_CONFIG = {...coreConfig,...roleBasedConfig}\n        const component = new PhoneNumberPopupComponent(mergedConfig,parentDOM);\n        return component;\n    }\n\n    // multiple phone number\n    constructMultiplePhoneNumberComponent(params: any): MultiplePhoneNumberInlineComponent | MultiplePhoneNumberPopupComponent {\n        const parentElement   = params.parentDOM;\n        const coreConfig      = getMultiplePhoneNumberConfig(params);\n        const roleBasedConfig = {\n            useElipses        : false,\n        }\n        const mergedConfig    = {...coreConfig, ...roleBasedConfig};\n        const component =  new MultiplePhoneNumberInlineComponent(mergedConfig,parentElement);\n        return component\n\n    }\n\n\n    \n\n    //Sentimental Analysis \n    constructSentimentalAnalysisComponent(params : any) : SentimentalAnalysisPopupComponent{\n        const parentDOM = params.parentDOM;\n        const coreConfig = getSentimentalAnalysisConfig(params, this.dataProvider);\n        const component = new SentimentalAnalysisPopupComponent(coreConfig, parentDOM);\n        return component;\n    }\n\n    // single selection\n    constructSingleSelectionComponent(params: any) : SingleSelectPopupComponent  {\n        const parentDOM = params.parentDOM;\n        const coreConfig = getSingleSelectionConfig(params, this.dataProvider);\n        const component = new SingleSelectPopupComponent(coreConfig, parentDOM);\n        return component;\n    }\n\n    // url\n    constructURLComponent(params: any) {\n        const {fieldTypeSpecifications} = params;\n        const isSingleURL          = fieldTypeSpecifications[0] === 0;\n        return isSingleURL ? this.constructSingleURLComponent(params) : this.constructMultipleURLComponent(params);\n   \n    }\n\n\n    // Email\n    constructEmail(params: any): CoreEmailPopupComponent | MultipleEmailInlineComponent {\n        const {fieldTypeSpecifications} = params;\n        const isSingleEmail             = fieldTypeSpecifications[0] === 0;\n        return isSingleEmail ? this.constructSingleEmailComponent(params) : this.constructMultipleEmailComponent(params);\n    }\n\n    constructSingleEmailComponent(params: any): CoreEmailPopupComponent {\n        const parentDOM = params.parentDOM;\n        const coreConfig = getSingleEmailConfig(params);\n        const singleEmailConfig: VIEWER_SINGLE_EMAIL_POPUP_CONFIG = {\n            ...coreConfig,\n            readonly     : true,\n            dropdown     : false,\n            isExpandable : false,\n            autosize     : true,\n            onKeydown :(event : KeyboardEvent) =>{\n                const arrowArray        = ['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown']\n                const shiftArrow        = event.shiftKey && arrowArray.includes(event.key);\n                if(shiftArrow){\n                    event.stopPropagation();\n                }\n                \n            }\n        };\n\n        const component = new CoreEmailPopupComponent(singleEmailConfig, parentDOM);\n        return component;\n    }\n\n    constructMultipleEmailComponent(params: any): MultipleEmailInlineComponent | MultipleEmailPopupComponent {\n        const parentDOM  = params.parentDOM;\n        const coreConfig = getMultipleEmailConfig(params);\n        const roleBasedConfig ={\n            useElipses      : false\n        };\n        const mergedConfig = {...coreConfig,...roleBasedConfig};\n        const component = new MultipleEmailInlineComponent(mergedConfig, parentDOM);\n        return component;\n    }\n\n    // Text\n    constructTextComponent(params: any): TextPopupComponent {\n        const parentDOM                            = params.parentDOM;\n        const coreConfig                           = getTextConfig(params);\n        const textConfig: VIEWER_TEXT_POPUP_CONFIG = {\n            ...coreConfig,\n            autosize : true,\n            readonly : true,\n            onKeydown :(event : KeyboardEvent) =>{\n                const arrowArray        = ['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown']\n                const shiftArrow        = event.shiftKey && arrowArray.includes(event.key);\n                if(shiftArrow){\n                    event.stopPropagation();\n                }\n                \n            }\n        };\n\n        const component = new TextPopupComponent(textConfig, parentDOM);\n        return component;\n    }\n\n    // Multiple Selection\n    constructMultipleSelectionComponent(params: any): MultiSelectPopupComponent {\n        const parentDOM = params.parentDOM;\n        const coreConfig = getMultipleSelectionConfig(params, this.dataProvider);\n        const multipleSelectionConfig: VIEWER_MULTIPLE_SELECTION_POPUP_CONFIG = {\n            ...coreConfig,\n            readonly : true,\n            dropdown : false\n        };\n\n        const component = new MultiSelectPopupComponent(multipleSelectionConfig, parentDOM);\n        return component;\n    }\n\n    // Link\n    // constructLinkComponent(params: any): LinkPopupComponent {\n    //     const parentDOM             = params.parentDOM;\n    //     const linkCoreConfig        = getLinkConfig(params);\n    //     const multiSelectCoreConfig = getMultipleSelectionConfig(params);\n\n    //     const multiSelectConfiguration : VIEWER_MULTIPLE_SELECTION_POPUP_CONFIG = {\n    //         ...multiSelectCoreConfig,\n    //         readonly : true,\n    //         dropdown : false\n    //     }\n    //     const linkConfig: VIEWER_LINK_POPUP_CONFIG = {\n    //         ...linkCoreConfig,\n    //         multiSelectConfiguration : multiSelectConfiguration,\n    //         readonly                 : true,\n    //         autosize                 : true\n    //     };\n\n    //     const component = new LinkPopupComponent(linkConfig, parentDOM);\n    //     return component;\n    // }\n    \n    // Single URL\n    constructSingleURLComponent(params: any): URLPopupComponent {\n        const parentDOM = params.parentDOM;\n        const coreConfig = getSingleURLConfig(params);\n        const singleURLConfig: VIEWER_SINGLE_URL_POPUP_CONFIG = {\n            ...coreConfig,\n            readonly : true,\n            autosize : true,\n            onKeydown :(event : KeyboardEvent) =>{\n                const arrowArray        = ['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown']\n                const shiftArrow        = event.shiftKey && arrowArray.includes(event.key);\n                if(shiftArrow){\n                    event.stopPropagation();\n                }\n                \n            }\n        };\n\n        const component = new URLPopupComponent(singleURLConfig, parentDOM);\n        return component;\n    }\n\n    // Multiple URL\n    constructMultipleURLComponent(params: any): MultipleURLPopupComponent | MultipleURLInlineComponent {\n        const parentElement = params.parentDOM;\n        const coreConfig = getMultipleURLConfig(params);\n        const roleBasedConfig = {\n            useElipses      : false,\n        }\n        const mergedConfig = {...coreConfig,...roleBasedConfig};\n        const component =  new MultipleURLInlineComponent(mergedConfig,parentElement);\n        return component;\n    }\n\n    constructComponent(fieldType: number, params: any) {\n        params.clipboard = getClipboardConfig(params);\n        const componentConstructor = this.fieldConstructorMapping[fieldType];\n        return componentConstructor.call(this, params);\n    }\n\n    canAllowPopup(editorParams : any) : boolean {\n        if(editorParams.event){\n            return false;\n        }\n        return true;\n    }\n}","import { LINK } from \"../../../../../../../../Constants/FieldTypes.js\";\nimport { LinkPopupComponent } from \"../../../../../../../../FieldTypeComponents/EditComponents/LinkFieldType/LinkPopupComponent\";\nimport { getLinkConfig } from \"../../../../../../../../View/GridView/FCComponents/PopupFCConfigConstructor\";\nimport { CoreViewerPopupFCConfigConstructor } from \"../../../../../../../../View/GridView/FCComponents/Viewer/CoreViewerPopupFCConfigConstructor\";\n\n\n// checkBox missing,keyword\nexport class SnapGridViewerPopupFCConfigConstructor extends CoreViewerPopupFCConfigConstructor{\n    protected getFieldConstructorMapping(): Record<number, any> {\n        return {\n            ...super.getFieldConstructorMapping(),\n            [LINK] : this.constructLinkComponent\n        }\n    }\n\n    constructLinkComponent(params: any): LinkPopupComponent {\n        const linkConfig  = getLinkConfig(params, this.dataProvider);\n        const component   = new LinkPopupComponent(linkConfig,  params.fieldCellEventHandler.getEditingInitiator);\n        return component;\n    }\n}","import { IFCConfigDataProvider } from \"../../../../../../../View/GridView/FCComponents/Interface/IFCConfigDataProvider\";\nimport { SnapGridViewerInlineFCConfigConstructor } from \"./Viewer/SnapGridViewerInlineFCConfigConstructor\";\nimport { SnapGridViewerPopupFCConfigConstructor } from \"./Viewer/SnapGridViewerPopupFCConfigConstructor\";\n\nexport function getInlineComponent(dataProvider: IFCConfigDataProvider) {\n    return new SnapGridViewerInlineFCConfigConstructor(dataProvider)\n}\n\n//DataMaintainerPopupFCConfigConstructor\nexport function getPopupComponent(dataProvider: IFCConfigDataProvider) {\n    return  new SnapGridViewerPopupFCConfigConstructor(dataProvider);\n}\n\n","import { FieldID } from \"../../../Types.js\";\nimport { IDGInteractor } from \"./Interface/IDGInteractor.js\";\nimport { IFieldDefinition } from \"./Interface/IFieldDefinition.js\";\nimport { IFieldHandler } from \"./Interface/IFieldHandler.js\";\nimport { IGridCoreDataProvider } from \"./Interface/IGridCoreDataProvider.js\";\nimport { IGridEventHandler } from \"./Interface/IGridEventHandler.js\";\nimport { ICoreFieldConfig } from \"./Interface/ITablesGridConfig.js\";\n\nexport abstract class CoreFieldHandler<T extends ICoreFieldConfig = ICoreFieldConfig> implements IFieldHandler<T> {\n    protected fields      : Map<FieldID, IFieldDefinition<T>> = new Map();\n    protected dataProvider: IGridCoreDataProvider;\n    protected dgInteracter: IDGInteractor;\n    protected eventHandler: IGridEventHandler;\n    constructor(dataProvider : IGridCoreDataProvider, dgInteracter : IDGInteractor, eventHandler : IGridEventHandler) {\n        this.dataProvider = dataProvider;\n        this.dgInteracter = dgInteracter;\n        this.eventHandler = eventHandler;\n    }\n    \n    getFieldByID(fieldID: FieldID): IFieldDefinition<T> {\n        const hasField = this.hasField(fieldID);\n\n        if(hasField) {\n            const field         = this.fields.get(fieldID) as IFieldDefinition<T>;\n            const allFieldTypes = field.getFieldTypes();\n            const fieldType     = this.dataProvider.getFieldTypeByFieldID(fieldID);\n            const sameFieldType = allFieldTypes.includes(fieldType);\n            if(sameFieldType) {\n                return this.fields.get(fieldID) as IFieldDefinition<T>;\n            }else {\n                this.removeFieldByID(fieldID);\n            }\n        }\n        \n        const fieldDefinition = this.createFieldDefinition(fieldID);\n        this.fields.set(fieldID, fieldDefinition);\n        return fieldDefinition;\n    }\n    \n    getFieldDefinitionByID(fieldID: FieldID): T {\n        const field = this.getFieldByID(fieldID);\n        return field.getDefinition();\n    }\n\n    hasField(fieldID : FieldID) : boolean {\n        return this.fields.has(fieldID);\n    }\n\n    removeFieldByID(fieldID: FieldID): void {\n        this.fields.delete(fieldID);\n    }\n\n    protected abstract createFieldDefinition(fieldID : FieldID) : IFieldDefinition<T>;\n}","export const GRID_ROW_HEADER_WIDTH = 80;\nexport const GRID_ROW_HEADER_FONT_COLOR = \"#272727\";\nexport const GRID_ROW_HEADER_FONT_SIZE = 9.75;\nexport const GRID_ROW_HEADER_FONT_NAME = \"roboto\";//No I18N\nexport const GRID_ROW_HEADER_BORDER = [1,\"solid\",\"#e5e5e5\"];//No I18N\nexport const GRID_ROW_HEADER_BACKGROUND = \"transparent\";//No I18N\nexport const GRID_ROW_HEADER_VERTICAL_ALIGNMENT = 0;\nexport const GRID_ROW_HEADER_HORIZONTAL_ALIGNMENT = 1;\nexport const GRID_ROW_HEADER_HORIZONTAL_PADDING = 6;\nexport const GRID_ROW_HEADER_WRAP= 2\nexport const HEADER_HEIGHT = 150;\nexport const TOP_BANNER_HEIGHT = 32;\nexport const FIELD_MIN_WIDTH = 100;\n\n\nexport const GRID_COLUMN_HEADER_HEIGHT = 30;\nexport const GRID_COLUMN_HEADER_FONT_COLOR = \"#121212\";\nexport const GRID_COLUMN_PRICING_BACKGROUND_COLOR = \"#F4F5F6\";\nexport const GRID_COLUMN_HEADER_FONT_SIZE = 10.5;\nexport const GRID_COLUMN_HEADER_FONT_NAME = \"roboto\";//No I18N\nexport const GRID_COLUMN_HEADER_BORDER = [1,\"solid\",\"#e5e5e5\"];//No I18N\nexport const GRID_COLUMN_HEADER_BACKGROUND = \"#f6f6f6\";//No I18N\nexport const GRID_COLUMN_HEADER_VERTICAL_ALIGNMENT = 1;\nexport const GRID_COLUMN_HEADER_HORIZONTAL_ALIGNMENT = 0;\nexport const GRID_COLUMN_HEADER_VERTICAL_PADDING = 6;\nexport const GRID_COLUMN_HEADER_HORIZONTAL_PADDING = 6;\nexport const GRID_COLUMN_HEADER_WRAP= 2\n\n\n\nexport const GRID_FOOTER_HEIGHT = 30;\nexport const GRID_FOOTER_FONT_COLOR_VALUE = \"#222\";\nexport const GRID_FOOTER_FONT_COLOR_STATE = \"#858585\";\nexport const GRID_FOOTER_FONT_SIZE = 9;\nexport const GRID_FOOTER_FONT_NAME = \"roboto\";//No I18N\nexport const GRID_FOOTER_BORDER = [1,\"solid\",\"#e1e1e1\"];//No I18N\nexport const GRID_FOOTER_BACKGROUND = \"#f6f6f6\"//No I18N\n\nexport const GRID_HSCROLL_BAR_WIDTH = 14 \n\nexport const GRID_VSCROLL_BAR_HEIGHT = 14\n\n\nexport const GRID_FONT_COLOR = \"#272727\";\nexport const GRID_FONT_SIZE = 9;\nexport const GRID_FONT_NAME = \"roboto\";//No I18N\nexport const GRID_VERTICAL_ALIGNMENT = 0\n\n\n\nexport const GRID_NON_TEXT_HORIZONTAL_PADDING = 6;\nexport const GRID_NON_TEXT_VERTICAL_PADDING = 2\n\n\nexport const GRID_CHECKBOX_HORIZONTAL_PADDING = 6;\nexport const GRID_CHECKBOX_VERTICAL_PADDING = 4\n\n\n\nexport const GRID_ATTACHMENT_HORIZONTAL_PADDING = 2;\nexport const GRID_ATTACHMENT_VERTICAL_PADDING = 2\n\nfunction getDiff(fontFamily, fontSize, padding, lineHeight) {  //TODO: need to check\n\tvar metrics    = globalThis.CraftGrid.Utility.Font.getFontMetrics(fontFamily, fontSize);\n\tvar lineDiff   = (lineHeight - 1)/2;\n\tvar descent    = metrics.descent;\n\tvar ascent     = metrics.baseline;\n\tvar fontHeight = (ascent + descent);\n\tvar diff1      = (fontHeight + (2 * padding)) * lineDiff;\n\tvar diff2      = (fontHeight) * lineDiff;\n\tvar diff = diff1 - diff2;\n\treturn diff+padding;\n}\n\nconst ROW_HEADER_VERTICAL_PADDING = 2;\nexport const GRID_ROW_HEADER_VERTICAL_PADDING = ROW_HEADER_VERTICAL_PADDING + getDiff(GRID_FONT_NAME, GRID_FONT_SIZE, 4, 1.2);\n","import { getNewFieldTypeSpecifications } from \"../../../../DataStore/DS/Storage/fieldType/FieldTypeSpecifications.js\";\nimport { GRID_RENDER_READ_ONLY } from \"../../../../FieldTypeComponents/FieldTypeConstants\";\nimport { getMessage } from \"../../../../Snap/Utility/utility\";\nimport { getTemplate } from \"../../../../TemplatesForAll.js\";\nimport { IGroupCell, IGroupCellParams } from \"../../Main/Interface/ITablesGridConfig\";\n\nexport class GroupCell implements IGroupCell {\n    private element : HTMLElement | null                   = null;\n    private recordCountElement : HTMLSpanElement | null    = null;\n    private fieldNameElement : HTMLSpanElement | null      = null;\n    private fieldValueElement : HTMLSpanElement | null     = null;\n    private expandCollapseIconElement : HTMLElement | null = null;\n    private params : IGroupCellParams | null               = null;\n    private moreIconElement : HTMLElement | null           = null;\n    private addDestroyFunc : CallableFunction[]            = [];\n    constructor() {\n    const template                       = getTemplate(\"grid-groupingheadertemplate\") as HTMLElement;\n              this.element                   = template.querySelector(\"#zt-grid-group-header-cell\") as HTMLElement;\n              this.expandCollapseIconElement = this.element!.querySelector(\"#zt-group-expand-collapse-icon\") as HTMLElement;\n              this.fieldNameElement          = this.element!.querySelector(\"#zt-grouping__category-name\") as HTMLSpanElement;\n              this.fieldValueElement         = this.element!.querySelector(\"#zt-grouping__category-value\") as HTMLSpanElement;\n              this.recordCountElement        = this.element!.querySelector(\"#zt-grouping__record-count\") as HTMLSpanElement;\n              this.moreIconElement           = this.element!.querySelector(\"#zt-grid-group-more-icon\") as HTMLElement;\n    }\n\n    init(params: IGroupCellParams): void {\n        try{\n            this.params = params;\n            this.updateFieldTitle();\n            this.updateRowCount();\n            this.initiateCellComponent();\n\n            this.addEventListener(this.moreIconElement!, \"click\", (event : Event) => {\n                const parentKeys    = this.params!.rowNode.getGroupValues();\n                const isCollapsed   = this.params!.rowNode.isCollapsed();\n                this.params?.fieldCellEventHandler.stopEditing(null, true, true);\n                (this.params!.fieldCellEventHandler as any).onContextMenuToggle(parentKeys,isCollapsed,this.moreIconElement!, event)\n            })\n        }\n        catch(error){\n            console.error(error);\n        }\n    }\n\n    getElement(): HTMLElement {\n        return this.element!;\n    }\n\n    destroy(): void {\n        this.addDestroyFunc.forEach((func) => func());\n        this.element                   = null;\n        this.expandCollapseIconElement = null;\n        this.fieldNameElement          = null;\n        this.fieldValueElement         = null;\n        this.recordCountElement        = null;\n    }\n\n     private addEventListener(element : HTMLElement, eventName : string, callback : EventListener) : void {\n        element.addEventListener(eventName, callback);\n        this.addDestroyFunc.push(()=>{\n            element.removeEventListener(eventName, callback);\n        })\n    }\n\n    private updateFieldTitle() : void {\n        const fieldMeta = this.getFieldMeta();\n        this.fieldNameElement!.textContent = fieldMeta.get(\"fieldName\")\n    }\n\n    private updateRowCount() : void {\n        this.recordCountElement!.textContent =`${this.params!.data.rowCount}`;\n    }\n\n    private getFieldMeta() : any {\n        const {fieldCellDataProvider} = this.params!;\n        const fieldIDs   = fieldCellDataProvider.getGroupFieldIDs();\n        const rowMeta    = this.params!.rowNode.getRowMeta();\n        const parentKeys = rowMeta.parentKeys;\n        const fieldID    = fieldIDs[parentKeys.length];\n        return fieldCellDataProvider.getFieldMetaByFieldID!(fieldID);\n    }\n\n    private getFieldTypeMeta() : any {\n        return this.getFieldMeta().get(\"fieldTypeMeta\");\n    }\n\n    private getFieldType() : string {\n        if(this.params!.data.groupLabel === \"\") {\n            return \"23\";\n        }\n        return this.getFieldTypeMeta().getType()\n    }\n\n    private initiateCellComponent() : void {\n        const fieldType = this.getFieldType();\n        const componentParams = this.getComponentParams();\n        const componentInstance\t  = this.params!.fieldCellDataProvider.getComponentInstance();\n        componentInstance!.constructComponent(fieldType, componentParams)\n    }\n\n    private getComponentParams() {\n        const fieldIDs          = this.params?.fieldCellDataProvider.getGroupFieldIDs()!;\n        const rowMeta           = this.params!.rowNode.getRowMeta();\n        const parentKeys        = rowMeta.parentKeys;\n        const fieldID           = fieldIDs[parentKeys.length];\n        const groupValue        = this.params!.data.groupLabel;\n        const recordID          = this.params!.rowNode.getId();\n        const fieldDataProvider = this.params!.fieldCellDataProvider;\n        let   fieldType         = this.getFieldType();\n        const value             = this.params!.data.groupLabel === \"\" ? getMessage(\"UI.groupBy.empty\") :  groupValue;\n        const fieldMeta         = this.getFieldMeta();\n        const fieldTypeMeta     = fieldDataProvider.getFieldMeta();\n        const baseID            = fieldDataProvider.getBaseID();\n        const tableID           = fieldDataProvider.getTableID();\n        const rowHeight         = this.params!.rowNode.getHeight();\n        const columnWidth       = this.params!.columnNode.getWidth();\n\n        if(this.params!.data.groupLabel === \"\") {\n            fieldType = \"23\";\n        }\n        \n        const configType = GRID_RENDER_READ_ONLY;\n        \n        const fieldTypeSpecifications =  getNewFieldTypeSpecifications(baseID, tableID, fieldID);\n        const params \t= {\n            baseID,\n            parentDOM: this.fieldValueElement! as HTMLDivElement,\n            cellElement: this.params!.gridCellElement,\n            configType,\n            fieldID,\n            fieldType,\n            value,\n            fieldMeta,\n            fieldTypeMeta,\n            fieldTypeSpecifications,\n            rowHeight,\n            fieldCellEventHandler: this.params!.fieldCellEventHandler,\n            cellDataProvider: fieldDataProvider,\n            recordID,\n            isCellFocused : false,\n            columnWidth,\n            eventKey : \"\",\n            readonly : true\n        }\n\n        return params;\n    }\n\n}","import { NONE } from \"../../../../Constants/SummaryBarNames.js\";\nimport { GRID_COMMENTOR_ROLE, GRID_VIEWER_ROLE } from \"../../../../FieldTypeComponents/FieldTypeConstants\";\nimport { getTemplate } from \"../../../../TemplatesForAll.js\";\nimport { IGroupHeaderSummaryCell, IGroupHeaderSummaryCellParams } from \"../../Main/Interface/ITablesGridConfig\";\n\nexport class GroupHeaderSummaryCell implements IGroupHeaderSummaryCell  {\n    private summaryCellContainer: HTMLDivElement | null                = null;\n    private summaryTypeDOM      : HTMLDivElement | null                = null;\n    private summaryValueDOM     : HTMLDivElement | null                = null;\n    private summaryDropdownIcon : HTMLDivElement | null                = null;\n    private params              : IGroupHeaderSummaryCellParams | null = null;\n    private addDestroyFunc : CallableFunction[]                        = [];\n\n\n    constructor() {\n        const template                  = getTemplate('ZTCG-fieldCellSummaryBarTemplate') as HTMLTemplateElement;\n              this.summaryCellContainer = template.querySelector('.ZTCG-summaryCellContainer') as HTMLDivElement;\n              this.summaryTypeDOM       = this.summaryCellContainer.querySelector('.ZTCG-summaryType') as HTMLDivElement;\n              this.summaryValueDOM      = this.summaryCellContainer.querySelector('.ZTCG-summaryValue') as HTMLDivElement;\n              this.summaryDropdownIcon  = this.summaryCellContainer.querySelector('.ZTCG-summaryDropdownIcon') as HTMLDivElement;\n    }\n\n    init(params: IGroupHeaderSummaryCellParams): void {\n        this.params = params;\n        this.addListeners();\n    }\n\n    getElement(): HTMLElement {\n        this.updateSummaryDOM();\n        return this.summaryCellContainer! as HTMLElement;\n    }\n\n    destroy(): void {\n        this.addDestroyFunc.forEach((func) => func());\n        this.summaryCellContainer = null;\n        this.summaryTypeDOM       = null;\n        this.summaryValueDOM      = null\n        this.summaryDropdownIcon  = null;\n    }\n\n    private updateSummaryDOM() {\n        const summaryData = this.params!.data.summaryData;\n\n        if(summaryData) {\n            const fieldSummaryData = summaryData[this.params!.columnNode.getID()];\n            if(!fieldSummaryData) {\n                return;\n            }\n            const summaryTypeText  = fieldSummaryData.type;\n            const summaryValueText = fieldSummaryData.value;\n\n            if(summaryTypeText === NONE) {\n                this.summaryTypeDOM!.textContent = this.summaryValueDOM!.textContent = '';\n            } else if (summaryTypeText && summaryValueText) {\n                this.summaryTypeDOM!.textContent  = summaryTypeText\n                this.summaryValueDOM!.textContent = summaryValueText\n            }\n\n            const userRole = this.params!.fieldCellDataProvider.getCurrentUserRole();\n\n            if(userRole == GRID_VIEWER_ROLE || userRole == GRID_COMMENTOR_ROLE){\n                this.summaryDropdownIcon!.remove();\n            }\n        }\n        \n    }\n\n    private addListeners() {\n\n\t\tthis.addEventListener(this.summaryDropdownIcon!, 'click', (ev) => {\n\t\t\t(this.params!.fieldCellEventHandler as any).onSummaryDropDownIconClick(this.params!.columnNode.getID(), this.summaryDropdownIcon!,  ev)\n\t\t})\n\t}\n\n    private addEventListener(element : HTMLElement, eventName : string, callback : EventListener) : void {\n        element.addEventListener(eventName, callback);\n        this.addDestroyFunc.push(()=>{\n            element.removeEventListener(eventName, callback);\n        })\n    }\n}","import { columnPinPositions } from \"../../../../../DomGrid/App/grid\";\nimport { FORMULA, KEYWORD_EXTRACTION, LANGUAGE_DETECTOR, LOOKUP, ROLLUP } from \"../../../../Constants/FieldTypes.js\";\nimport { FIELD_MIN_WIDTH } from \"../../../../Constants/GridConstants.js\";\nimport { FieldID, FieldName, FieldTypeConstant, GroupID, RecordID } from '../../../../Types';\nimport { GroupCell } from \"../../ContentPane/Cell/GroupCell\";\nimport { GroupHeaderSummaryCell } from \"../../ContentPane/Cell/GroupSummaryCell\";\nimport { IDGInteractor } from '../Interface/IDGInteractor';\nimport { IFieldDefinition } from \"../Interface/IFieldDefinition\";\nimport { IGridCoreDataProvider } from \"../Interface/IGridCoreDataProvider\";\nimport { IGridEventHandler } from '../Interface/IGridEventHandler';\nimport { ICoreFieldCellDataProvider, ICoreFieldCellEventHandler, ICoreFieldConfig } from '../Interface/ITablesGridConfig';\n\nexport abstract class CoreFieldDefinition implements IFieldDefinition<ICoreFieldConfig> {\n    protected fieldID     : FieldID;\n    protected dataProvider: IGridCoreDataProvider;\n    protected dgInteracter: IDGInteractor;\n    protected eventHandler: IGridEventHandler;\n\n\tconstructor(fieldID : FieldID, dataProvider : IGridCoreDataProvider, dgInteracter : IDGInteractor, eventHandler : IGridEventHandler) {\n        this.fieldID      = fieldID;\n        this.dataProvider = dataProvider;\n        this.dgInteracter = dgInteracter;\n        this.eventHandler = eventHandler;\n\t}\n\n    public getDefinition() : ICoreFieldConfig {\n        const fieldType = this.getFieldType();\n        return {\n            columnId                         : this.getFieldID(),\n            columnKey                        : this.getFieldID(),\n            headerName                       : this.getFieldName(),\n            width                            : this.getFieldWidth(),\n            cellEditorPopup                  : this.isCellEditorPopup(),\n            cellRenderer                     : this.getFieldCellRenderer(),\n            cellRendererParams               : this.getFieldCellRendererParams(),\n            cellEditor                       : this.getFieldEditCellRenderer(),\n            cellEditorParams                 : this.getFieldEditCellRendererParams(),\n            headerCellRenderer               : this.getFieldHeaderCellRenderer(),\n            headerCellRendererParams         : this.getFieldHeaderCellRendererParams(),\n            enterNavigatesVerticallyAfterEdit: this.isEnterNavigatesVerticallyAfterEdit(),\n            minWidth                         : this.getMinimumWidth(),\n            resizable                        : this.isResizable(),\n            pinPosition                      : this.getPinPosition(),\n            hidden                           : this.isHiddenField(),\n            editable                         : (params) => this.isCellEditable(params.rowID, params.columnID, fieldType, params.rowNode.getData(), params.event),\n            enterNavigatesVertically         : this.isEnterNavigatesVertically(fieldType),\n            draggable                        : true,\n            groupCellRendererSelectors : (params : any) => {\n                if(this.dataProvider.isPrimaryField(this.fieldID)) {\n                    return {\n                        component : GroupCell,\n                        params : this.getFieldCellRendererParams()\n                    }\n                }\n\n                return {\n                    component : GroupHeaderSummaryCell,\n                    params : this.getFieldCellRendererParams()\n\n                }\n                \n            } \n        }\n    }\n\n    isEnterNavigatesVertically(fieldType :  FieldTypeConstant) : boolean {\n        return this.dataProvider.isEnterNavigatesVertically(fieldType);\n    }\n\n    protected getFieldID() : FieldID {\n        return this.fieldID;\n    }\n\n    protected isEnterNavigatesVerticallyAfterEdit() : boolean {\n        return true;\n    }\n\n    protected getMinimumWidth() : number {\n        return FIELD_MIN_WIDTH;\n    }\n\n    protected isResizable() : boolean {\n        return true;\n    }\n\n    protected getPinPosition() : columnPinPositions {\n        return this.dataProvider.getPinPosition(this.fieldID);\n    }\n\n    protected isCellEditorPopup() : boolean {\n        return true;\n    }\n\n    protected isHiddenField() : boolean {\n        const hiddenFieldsIDs = this.dataProvider.getHiddenFieldIDs()\n        return hiddenFieldsIDs.includes(this.fieldID) || (this.getFieldWidth() === 0);\n    }\n\n    protected isCellEditable(recordId : RecordID, fieldId : FieldID, fieldType : string, rowData : {[key : string] : any}, event : MouseEvent | KeyboardEvent | null = null) : boolean {\n        const isReadOnlyUser = this.dataProvider.isReadOnlyUser();\n        const isDisabled = this.isBaseEnabled();\n        const nonEditableField = this.getNonEditableFields(fieldType);\n        \n        if (nonEditableField && event) {\n            return false;\n        }\n        \n        if ((isReadOnlyUser || !isDisabled) && event) {\n            return false;\n        }\n        \n        return true;\n    }\n\n    protected isBaseEnabled() : boolean {\n        return this.dataProvider.isBaseEnabled();\n    }    \n\n    protected getFieldName(): FieldName {\n        const meta = this.dataProvider.getFieldMeta(this.fieldID);\n        return meta.get('fieldName') as FieldName;\n    }\n\n    protected getFieldWidth(): number {\n        return this.dataProvider.getFieldWidth(this.fieldID);\n    }\n\n    protected getFieldType() : FieldTypeConstant {\n        return this.dataProvider.getFieldTypeByFieldID(this.fieldID);\n    }\n\n    protected getFieldEditCellRenderer() : any {\n        return this.dataProvider.getFieldEditCellRenderer();\n    }\n\n    protected getFieldEditCellRendererParams() : any {\n        const fieldEditCellDataProvider = this.getFieldEditCellDataProvider();\n        const fieldEditCellEventHandler = this.getFieldEditCellEventHandler();\n\n        return { fieldEditCellDataProvider, fieldEditCellEventHandler };\n    }\n\n    protected getFieldCellRenderer() : any {\n        return this.dataProvider.getFieldCellRenderer();\n    }\n\n    protected getFieldCellRendererParams() : any {\n        const fieldCellDataProvider = this.getFieldCellDataProvider();\n        const fieldCellEventHandler = this.getFieldCellEventHandler();\n        return { fieldCellDataProvider, fieldCellEventHandler };\n    }\n\n    protected getFieldHeaderCellRenderer() : any {\n        return this.dataProvider.getFieldHeaderCellRenderer();\n    }\n\n    protected getFieldHeaderCellRendererParams() : any {\n        const fieldHeaderCellDataProvider = this.getFieldHeaderDataProvider();\n        const fieldHeaderCellEventHandler = this.getFieldHeaderCellEventHandler();\n        return { fieldHeaderCellDataProvider, fieldHeaderCellEventHandler };\n    }\n\n    abstract getFieldTypes(): FieldTypeConstant[] \n\n    private getNonEditableFields(fieldType : FieldTypeConstant) {\n\t\tswitch(fieldType) {\n\t\t\tcase LANGUAGE_DETECTOR : \n\t\t\tcase FORMULA           : \n\t\t\tcase LOOKUP           : \n\t\t\tcase ROLLUP            : \n\t\t\tcase KEYWORD_EXTRACTION: \n\t\t\t\treturn true;\n\t\t\tdefault:\n\t\t\t\t return false;\n\t\t}\t\n\t}\n\n    protected getFieldHeaderDataProvider() : ICoreFieldCellDataProvider {\n        return this.getFieldEditCellDataProvider();\n    }\n\n    protected getFieldEditCellDataProvider(): ICoreFieldCellDataProvider {\n        const self = this;\n        const gridDataProvider = self.dataProvider;\n        const fieldEditCellDataProvider: ICoreFieldCellDataProvider = {\n            getFieldType: function (): FieldTypeConstant {\n                return gridDataProvider.getFieldTypeByFieldID(self.fieldID)\n            },\n            getFieldTypeInstance: function (): any {\n                return gridDataProvider.getField(self.fieldID).getType();\n            },\n            getFieldMeta: function () {\n                return gridDataProvider.getFieldMeta(self.fieldID);\n            },\n            getFieldTypeByFieldID : function(fieldID: FieldID) {\n                return gridDataProvider.getFieldTypeByFieldID(fieldID)\n            },\n            getFieldMetaByFieldID(fieldID) {\n                return gridDataProvider.getFieldMeta(fieldID);\n            },\n            getCurrentUserRole (): string {\n                return gridDataProvider.getGridUserRole();\n            },\n            getComponentInstance(): any {\n                return gridDataProvider.getComponentInstance();\n            },\n            getEditorInstance() {\n                return gridDataProvider.getEditorInstance();\n            },\n            isReadonly: function () {\n                return gridDataProvider.isReadOnlyUser() || !gridDataProvider.isBaseEnabled();\n            },\n            getTimeZone() {\n                return gridDataProvider.getTimeZone();\n            },\n            getFieldIcon: function (): any {\n                return gridDataProvider.getFieldIcon(self.fieldID);\n            },\n            isFirstColumn : function(fieldID : FieldID) {\n                return gridDataProvider.isFirstColumn(fieldID);\n            },\n            getGroupFieldIDs() {\n                return gridDataProvider.getGroupFieldIDs();\n            },\n            getBaseID() {\n                return gridDataProvider.getActiveBaseID();\n            },\n            isFieldExists: function(): boolean {\n                return gridDataProvider.isFieldExists(self.fieldID);\n            },\n            isFieldEphiCompliant: function(): boolean {\n                return gridDataProvider.isFieldEphiCompliant(self.fieldID);\n            }\n        }\n        return fieldEditCellDataProvider;\n    }\n\n    protected getFieldEditCellEventHandler() : ICoreFieldCellEventHandler {\n        const self = this;\n        return {\n            startEditing: function (recordID: RecordID, columnID: FieldID, initiatedFrom ?: string | null): void {\n                self.dgInteracter.startEditing(recordID, columnID, initiatedFrom);\n            },\n            stopEditing: function (event?: KeyboardEvent | null, suppressNavigation?: boolean, cancelDataSubmit = false): void {\n                self.dgInteracter.stopEditing(event,suppressNavigation, cancelDataSubmit);\n            },\n            navigateToCellLeft() {\n                self.dgInteracter.navigateToCellLeft();\n            },\n            navigateToCellRight() {\n                self.dgInteracter.navigateToCellRight();\n            },\n            navigateToCellTop(){\n                self.dgInteracter.navigateToCellTop();\n            },\n            navigateToCellBottom() {\n                self.dgInteracter.navigateToCellBottom();\n            },\n            getFocusedCell: function () {\n                return self.dgInteracter.getFocusedCell();\n            },\n            getRecordIdByIndex(index : number, parentPath: Array<GroupID>) : RecordID {\n                return self.dataProvider.getRecordIDByIdx(index, parentPath);\n            },\n            getEditingInitiator() : string | null {\n                return self.dgInteracter.getEditingInitiator();\n            }\n        }\n    }\n\n    protected getFieldCellEventHandler() : ICoreFieldCellEventHandler {\n        return this.getFieldEditCellEventHandler();\n    }\n\n    protected getFieldCellDataProvider() {\n        return this.getFieldEditCellDataProvider();\n    }\n\n    protected getFieldHeaderCellEventHandler() {\n        return {}\n    }\n}\n","import { ATTACHMENT, AUTO_NUMBER, CHECKBOX, COLLABORATOR_CLIENT, CREATED_BY, CREATED_TIME, CURRENCY, DATE_TIME, EMAIL, FORMULA, KEYWORD_EXTRACTION, LANGUAGE_DETECTOR, LINK, LOOKUP, MODIFIED_BY, MODIFIED_TIME, MULTIPLE_SELECTION, NUMBER, PERCENT, PHONE_NUMBER, RATING, ROLLUP, SENTIMENTAL_ANALYSIS, SINGLE_SELECTION, TEXT, URL } from \"../../../../../../../Constants/FieldTypes.js\";\nimport { FieldTypeConstant } from \"../../../../../../../Types.js\";\nimport { CoreFieldDefinition } from \"../../../../../../../View/GridView/Main/Fields/CoreFieldDefinition\";\n\nexport class SnapGridFieldDefinition extends CoreFieldDefinition {\n    \n    getFieldTypes(): FieldTypeConstant[] {\n        return [\n            AUTO_NUMBER,\n            CREATED_BY,\n            CREATED_TIME,\n            MODIFIED_BY,\n            MODIFIED_TIME,\n            DATE_TIME,\n\t\t\tFORMULA,\n\t\t\tTEXT,\n\t\t\tURL,\n\t\t\tLANGUAGE_DETECTOR,\n\t\t\tLOOKUP,\n\t\t\tROLLUP,\n\t\t\tKEYWORD_EXTRACTION,\n\t\t\tMULTIPLE_SELECTION,\n\t\t\tSINGLE_SELECTION,\n\t\t\tNUMBER,\n\t\t\tPERCENT,\n\t\t\tCURRENCY,\n\t\t\tCOLLABORATOR_CLIENT,\n\t\t\tEMAIL,\n\t\t\tPHONE_NUMBER,\n\t\t\tLINK,\n            RATING,\n            CHECKBOX,\n            ATTACHMENT,\n            SENTIMENTAL_ANALYSIS\n        ]\n    }\n}","import { FieldID } from \"../../../../../../Types\";\nimport { CoreFieldHandler } from \"../../../../../../View/GridView/Main/CoreFieldHandler\";\nimport { SnapGridFieldDefinition } from \"./Fields/SnapGridFieldDefinition\";\n\nexport class SnapGridFieldHandler extends CoreFieldHandler {\n    protected createFieldDefinition(fieldID : FieldID) {\n        return new SnapGridFieldDefinition(fieldID, this.dataProvider, this.dgInteracter,this.eventHandler);\n    } \n}","export const MANAGER_KEYBOARD_SHORTCUTS         = ['arrowleft', 'arrowright', 'arrowup', 'arrowdown', 'shift+arrowleft', 'shift+arrowright', 'shift+arrowup', 'shift+arrowdown', 'ctrl+arrowleft', 'ctrl+arrowright', 'ctrl+arrowup', 'ctrl+arrowdown', 'ctrl+shift+arrowleft', 'ctrl+shift+arrowright', 'ctrl+shift+arrowup', 'ctrl+shift+arrowdown', 'tab', 'shift+tab', 'enter', 'shift+enter', 'home', 'end', 'pageup', 'pagedown', 'ctrl+home', 'ctrl+end', 'shift+space', 'ctrl+space', 'ctrl+a', 'ctrl+x', 'ctrl+c', 'ctrl+v', 'delete', 'backspace', 'escape'];\nexport const EDITOR_KEYBOARD_SHORTCUTS          = ['arrowleft', 'arrowright', 'arrowup', 'arrowdown', 'shift+arrowleft', 'shift+arrowright', 'shift+arrowup', 'shift+arrowdown', 'ctrl+arrowleft', 'ctrl+arrowright', 'ctrl+arrowup', 'ctrl+arrowdown', 'ctrl+shift+arrowleft', 'ctrl+shift+arrowright', 'ctrl+shift+arrowup', 'ctrl+shift+arrowdown', 'tab', 'shift+tab', 'enter', 'shift+enter', 'home', 'end', 'pageup', 'pagedown', 'ctrl+home', 'ctrl+end', 'shift+space', 'ctrl+space', 'ctrl+a', 'ctrl+x', 'ctrl+c', 'ctrl+v', 'delete', 'backspace', 'escape'];\nexport const DATA_MAINTAINER_KEYBOARD_SHORTCUTS = ['arrowleft', 'arrowright', 'arrowup', 'arrowdown', 'shift+arrowleft', 'shift+arrowright', 'shift+arrowup', 'shift+arrowdown', 'ctrl+arrowleft', 'ctrl+arrowright', 'ctrl+arrowup', 'ctrl+arrowdown', 'ctrl+shift+arrowleft', 'ctrl+shift+arrowright', 'ctrl+shift+arrowup', 'ctrl+shift+arrowdown', 'tab', 'shift+tab', 'enter', 'shift+enter', 'home', 'end', 'pageup', 'pagedown', 'ctrl+home', 'ctrl+end', 'shift+space', 'ctrl+space', 'ctrl+a', 'ctrl+x', 'ctrl+c', 'ctrl+v', 'delete', 'backspace', 'escape'];\nexport const COMMENTOR_KEYBOARD_SHORTCUTS       = ['arrowleft', 'arrowright', 'arrowup', 'arrowdown', 'shift+arrowleft', 'shift+arrowright', 'shift+arrowup', 'shift+arrowdown', 'ctrl+arrowleft', 'ctrl+arrowright', 'ctrl+arrowup', 'ctrl+arrowdown', 'ctrl+shift+arrowleft', 'ctrl+shift+arrowright', 'ctrl+shift+arrowup', 'ctrl+shift+arrowdown', 'tab', 'shift+tab', 'enter', 'shift+enter', 'home', 'end', 'pageup', 'pagedown', 'ctrl+home', 'ctrl+end', 'shift+space', 'ctrl+space', 'ctrl+a', 'ctrl+c', 'escape'];\nexport const VIEWER_KEYBOARD_SHORTCUTS          = ['arrowleft', 'arrowright', 'arrowup', 'arrowdown', 'shift+arrowleft', 'shift+arrowright', 'shift+arrowup', 'shift+arrowdown', 'ctrl+arrowleft', 'ctrl+arrowright', 'ctrl+arrowup', 'ctrl+arrowdown', 'ctrl+shift+arrowleft', 'ctrl+shift+arrowright', 'ctrl+shift+arrowup', 'ctrl+shift+arrowdown', 'tab', 'shift+tab', 'enter', 'shift+enter', 'home', 'end', 'pageup', 'pagedown', 'ctrl+home', 'ctrl+end', 'shift+space', 'ctrl+space', 'ctrl+a', 'ctrl+c', 'escape'];\nexport const DISBALED_KEYBOARD_SHORTCUTS        = ['arrowleft', 'arrowright', 'arrowup', 'arrowdown', 'shift+arrowleft', 'shift+arrowright', 'shift+arrowup', 'shift+arrowdown', 'ctrl+arrowleft', 'ctrl+arrowright', 'ctrl+arrowup', 'ctrl+arrowdown', 'ctrl+shift+arrowleft', 'ctrl+shift+arrowright', 'ctrl+shift+arrowup', 'ctrl+shift+arrowdown', 'tab', 'shift+tab', 'enter', 'shift+enter', 'home', 'end', 'pageup', 'pagedown', 'ctrl+home', 'ctrl+end', 'shift+space', 'ctrl+space', 'ctrl+a'];","import { areArraysEqual } from \"../../../../FieldTypeComponents/FieldTypeComponentsFormater\";\nimport { IDGInteractor } from \"../Interface/IDGInteractor\";\nimport { IGridCoreDataProvider } from \"../Interface/IGridCoreDataProvider\";\nimport { IGridEventHandler } from \"../Interface/IGridEventHandler\";\n\nexport class GridCoreHooks {\n\tprotected dataProvider: IGridCoreDataProvider;\n\tprotected dgInteracter: IDGInteractor;\n\tprotected eventHandler: IGridEventHandler;\n\n\tconstructor(dataProvider: IGridCoreDataProvider, dgInteracter: IDGInteractor, eventHandler: IGridEventHandler) {\n\t\tthis.dataProvider = dataProvider;\n\t\tthis.dgInteracter = dgInteracter;\n\t\tthis.eventHandler = eventHandler;\n\t}\n\n\tonBeforeCellFocusChange(params: any) : void {\n\t\tconst {rowIndex, pinPosition, parentKeys} = params.current;\n\t\tconst activeColumnId                      = params.current.columnID;\n\t\tconst activeRowId                         = this.dgInteracter.getRowIdByIndex(rowIndex, pinPosition, parentKeys);\n\t\tif(this.isSameCellFocused(params.current, params.previous)) {\n\t\t\treturn;\n\t\t}\n\n\t\tif(params.previous) {\n\t\t\tconst {rowIndex : prevRowIndex, pinPosition : prevpinPosition, parentKeys : prevparentKeys} = params.previous;\n\t\t\tconst previousColumnId                                                                      = params.previous.columnID as string;\n\t\t\tconst previousRowId                                                                         = this.dgInteracter.getRowIdByIndex(prevRowIndex, prevpinPosition, prevparentKeys) as string;\n\t\t\tconst prevCellComponent                                                                     = this.dgInteracter.getCellRendererInstance(previousRowId, previousColumnId) as any;\n\t\t\tprevCellComponent && prevCellComponent.disableSelectionState();\n\t\t}\n\t\t\n\t\tconst cellComponent = this.dgInteracter.getCellRendererInstance(activeRowId, activeColumnId) as any;\n\t\tcellComponent && cellComponent.enableSelectionState(params.event);\n\t}\n\n\tonAfterColumnResize({metas} : any) : void{\n\t\tconst first = metas?.[0];\n\t\tif(!first?.columnId) {\n\t\t\treturn;\n\t\t}\n\t\tconst gridRequestHandler = this.eventHandler.getGridRequestHandler();\n\t\tconst fieldID = first.columnId;\n\t\tconst fieldWidth = first.columnWidth;\n\t\tconst previousWidth = this.dataProvider.getFieldWidth(fieldID);\n\t\tconst numeric = typeof fieldWidth === 'number' ? fieldWidth : Number(fieldWidth);\n\t\tconst nextWidth = Number.isFinite(numeric) ? numeric : previousWidth;\n\t\tif(nextWidth === previousWidth) {\n\t\t\treturn;\n\t\t}\n\t\tgridRequestHandler.onFieldResize(fieldID, nextWidth);\n\t}\n\n\tprivate isSameCellFocused(current : any, target : any) : boolean {\n\t\tif(current === null || target === null) return false;\n\t\n\t\tconst colsMatch        = current.columnID    === target.columnID;\n\t\tconst floatingMatch    = current.pinPosition === target.pinPosition;\n\t\tconst indexMatch       = current.rowIndex    === target.rowIndex;\n\t\tconst isParentKeyMatch = areArraysEqual(current.parentKeys, target.parentKeys)\n\t\treturn colsMatch && floatingMatch && indexMatch && isParentKeyMatch;\n\t}\n\t\n}","import { IFetchParam, IRowDefinition, IRowDefinitionFetchParams, IRowModel } from \"../../../../../DomGrid/App/grid.js\";\n// import { LoadDataAvailable } from \"../../../../Actions/LoadDataAvailableAction.js\";\nimport { FieldID, GroupID, RecordID } from \"../../../../Types\";\nimport { BUFFER_SIZE, BUFFER_SPACE_BOTTOM, BUFFER_SPACE_RIGHT, CACHE_BLOCK_COUNT, CACHE_BLOCK_SIZE, DEFAULT_WRITE_FIELD_TYPE_VALUES, DG_MODEL_TYPE, FETCH_TRIGGER_POINT, FIELD_HEADER_HEIGHT, STATIC_CACHE_INDEX_START } from \"../../GridConstants\";\nimport { MANAGER_KEYBOARD_SHORTCUTS } from \"../GridKeyboardShortcuts\";\nimport { GridCoreHooks } from \"../Hooks/GridCoreHooks\";\nimport { IDGInteractor } from \"../Interface/IDGInteractor\";\nimport { IFieldHandler } from \"../Interface/IFieldHandler\";\nimport { IGridCoreDataProvider } from \"../Interface/IGridCoreDataProvider\";\nimport { IGridEventHandler } from \"../Interface/IGridEventHandler\";\nimport { ICoreFieldConfig, IGroup, ITablesRecordDefinitionConfig } from \"../Interface/ITablesGridConfig\";\n\nexport const getLoadingCellData = (recordId : string, fieldId : string)=> {return 'gridCellLoading'+`_${recordId}_${fieldId}`};\n\nexport abstract class GridCoreConfiguration {\n\tprotected dataProvider: IGridCoreDataProvider;\n\tprotected dgInteracter: IDGInteractor;\n\tprotected eventHandler: IGridEventHandler;\n\tprotected fieldHandler : IFieldHandler<ICoreFieldConfig>;\n\tprotected hooks : GridCoreHooks;\n\n\n\tconstructor(dataProvider : IGridCoreDataProvider, dgInteracter : IDGInteractor, eventHandler : IGridEventHandler, fieldHandler : IFieldHandler<ICoreFieldConfig>) {\n\t\tthis.dataProvider = dataProvider;\n\t\tthis.dgInteracter = dgInteracter;\n\t\tthis.eventHandler = eventHandler;\n\t\tthis.fieldHandler = fieldHandler;\n\n\t\tthis.hooks = new GridCoreHooks(dataProvider, dgInteracter, eventHandler);\n\n\t}\n\n\tgetConfiguration() : any {\n\t\treturn {\n\t\t\trowCount       : this.getRecordCount(),\n\t\t\trowHeights     : (params : any) => {\n\t\t\t\tconst groupingFields = this.dataProvider.getGroupFieldIDs();\n\t\t\t\tif(!params.parentKeys || params.rowPinPosition === \"bottomDraftRow\") {\n\t\t\t\t\treturn this.getRecordHeight();\n\t\t\t\t}\n\t\t\t\tif(params.parentKeys.length < groupingFields.length) {\n\t\t\t\t\treturn 46;\n\t\t\t\t}\n\t\t\t\treturn this.getRecordHeight()\n\t\t\t},\n\t\t\trowHighlighter : this.isRowHightlight(),\n\t\t\tselection      : this.isSelectionEnabled(),\n\t\t\t\n\t\t\tcacheBlockSize       : this.getCacheBlockSize(),\n\t\t\tcacheBlockCount      : this.getCacheBlockCount(),\n\t\t\tfetchTriggerPoint    : this.getFetchTriggerPoint(),\n\t\t\tstaticCacheRowIndices: this.getStaticCacheRowIndices(),\n\t\t\trowModelType         : this.getRowModelType(),\n\n\t\t\trowSelection                  : this.getRowSelection(),\n\t\t\tsuppressMultiRangeSelection   : true,\n\t\t\tincludeKeyboardShortcuts      : this.getIncludeKeyboardShortcuts(),\n\t\t\trowData : (fetchParams : IFetchParam) => {\n\t\t\t\treturn this.constructRowData(fetchParams.startRowIndex, fetchParams.endRowIndex, fetchParams.onSuccess, fetchParams.parentKeys);\n\t\t\t},\n\n\t\t\trowDefinitions : (fetchParam: IRowDefinitionFetchParams): IRowDefinition => {\n\t\t\t\treturn this.constructRowDefinitions(fetchParam.rowIndex,fetchParam.parentKeys ?? [], fetchParam.data, fetchParam.rowPinnedPosition);\n\t\t\t},\n\n\t\t\tcolumnDefinitions : this.constructFieldConfig(),\n\t\t\tevents            : this.getEvents(),\n\t\t\tfloatingRecord    : 'absolute',\n\t\t\t\n\t\t\tcolumnHeaderHeights       : this.getColumnHeaderHeight(),\n\t\t\tcolumnHighlighter         : this.isColumnHighlight(),\n\t\t\tenableRangeSelection      : this.isRangeSelectionEnabled(),\n\n\t\t\tbuffer                    : this.getBufferSize(),\n\t\t\tendBufferHeight           : this.getEndBufferHeight(),\n\t\t\tendBufferWidth            : this.getEndBufferWidth(),\n\n\t\t\tstopEditingWhenCellsLoseFocus     : this.isStopEditingWhenCellsLoseFocus(),\n\t\t\tclearSelectionOnCellRightClick    : this.isClearSelectionOnCellRightClick(),\n\t\t\tcellFocusOnSelection              : this.isCellFocusOnSelection(),\n\t\t\ttreeStructureData                 : this.dataProvider.isGroupingApplied() ? this.dataProvider.initialGroupMetaFetch(): null,\n\t\t\thasTreeFullStructureProvided      : this.dataProvider.isGroupingApplied(),\n\t\t\ttreeLevelLeftMargins              : [20,12,12],\n\t\t\ttreeLevelRightMargins             : [0, 6,6],\n\t\t\ttreeLevelTopMargins               : [14, 7, 7],\n\t\t\ttreeLevelBottomMargins            : [0,7, 7],\n\t\t\tsuppressGroupRowsSticky           : this.dataProvider.isGroupingApplied(),\n\t\t\tsuppressGroupHeaderCellFocus      : this.dataProvider.isGroupingApplied(),\n\t\t\tautoUnpinnedColumns               : true,\n\t\t\tsuppressGroupToGroupRangeSelection: this.dataProvider.isGroupingApplied(),\n\t\t\tshouldPreventGridMousedown        : true\n\t\t}\n\t}\n\n\tprotected getEvents() {\n\t\treturn {\n\t\t\tonBeforeCellFocusChange  : (params : any) => this.hooks.onBeforeCellFocusChange(params),\n\t\t\tonAfterColumnResize      : (params : any) => this.hooks.onAfterColumnResize(params),\n\t\t}\n\t}\n\n\tprotected getRecordCount() : number {\n\t\treturn this.dataProvider.getVisibleRecordCount();\n\t}\n\n\tprotected getRecordHeight() : number {\n\t\treturn this.dataProvider.getRecordHeight();\n\t}\n\n\tprotected isRowHightlight() : boolean {\n\t\treturn true;\n\t}\n \n\tprotected isSelectionEnabled() : boolean {\n\t\treturn true;\n\t}\n\n\tprotected getCacheBlockSize() : number {\n\t\treturn CACHE_BLOCK_SIZE;\n\t}\n\n\tprotected getCacheBlockCount() : number {\n\t\treturn CACHE_BLOCK_COUNT;\n\t}\n\n\tprotected getFetchTriggerPoint() : number {\n\t\treturn FETCH_TRIGGER_POINT\n\t}\n\n\tprotected getStaticCacheRowIndices() : number[] {\n\t\treturn [STATIC_CACHE_INDEX_START, this.dataProvider.getVisibleRecordCount()]\n\t}\n\n\tprotected getRowModelType() : IRowModel {\n\t\treturn DG_MODEL_TYPE;\n\t}\n\t\n\tprotected isRangeSelectionEnabled() : boolean {\n\t\treturn this.dataProvider.isBaseEnabled() ? true : false;\n\t}\n\n\tprotected isColumnHighlight() : boolean {\n\t\treturn false;\n\t}\n\n\tprotected getColumnHeaderHeight() : number {\n\t\treturn FIELD_HEADER_HEIGHT;\n\t}\n\n\tprotected getBufferSize() : number {\n\t\treturn BUFFER_SIZE;\n\t}\n\n\tprotected getEndBufferHeight() : number {\n\t\treturn this.dataProvider.getEndBufferHeight();\n\t\treturn BUFFER_SPACE_BOTTOM;\n\t}\n\n\tprotected getEndBufferWidth() : number {\n\t\treturn this.dataProvider.getEndBufferWidth();\n\t\treturn BUFFER_SPACE_RIGHT;\n\t}\n\n\tprotected isStopEditingWhenCellsLoseFocus() : boolean {\n\t\treturn true;\n\t}\n\n\tprotected isClearSelectionOnCellRightClick() : boolean {\n\t\treturn true;\n\t}\n\n\tprotected isCellFocusOnSelection() : boolean {\n\t\treturn true;\n\t}\n\n\tprotected getRowSelection() : 'single' | 'multiple' | 'none' {\n\t\treturn this.dataProvider.isBaseEnabled() ? 'multiple' : 'none';\n\t}\n\n\tprotected getIncludeKeyboardShortcuts() : string[] {\n\t\treturn MANAGER_KEYBOARD_SHORTCUTS;\n\t}\n\t\n\tprotected async constructRowData(startRow: number, endRow: number, onSuccess: CallableFunction, parentKeys : string[]) {\n\t\treturn this.dataProvider.constructRowData(startRow, endRow, onSuccess, parentKeys);\n\n\t\t//these changes moved to dataProvider - start of Comment\n\t\t//TODO: construct config based on Roles\n\t\t// let recordIDList: Array<RecordID> = [];\n\t\t// for (let i = startRow; i <= endRow; i++) {\n\t\t// \tconst recordID = this.dataProvider.getRecordIDByIdx(i, parentKeys);\n\t\t// \trecordIDList.push(recordID);\n\t\t// }\n\t\t// const fieldIDList = this.dataProvider.getFieldIDs();\n\t\t// try {\n\t\t// \tLoadDataAvailable(this.dataProvider.getActiveBaseID(), this.dataProvider.getActiveTableID(), recordIDList, fieldIDList, (data : any) => {\n\t\t// \t\tonSuccess({ data: data });\n\t\t// \t}, (error : any) => {\n\t\t// \t\tconsole.error(\"Error in constructRowConfig:\", error);\n\t\t// \t});\n\t\t// } catch (error) {\n\t\t// \tconsole.error(\"Error in constructRowConfig:\", error);\n\t\t// }\n\n\t\t////these changes moved to dataProvider - end of Comment\n\n\n\n\n\t\t// const targetData = findFolder(parentKeys, this.demoData);\n\n\t\t// if (!targetData || !Array.isArray(targetData)) {\n\t\t// \tonSuccess({ data: [] });\n\t\t// \treturn;\n\t\t// }\n\n\t\t// const sliced = targetData.slice(startRow, endRow + 1);\n\n\t\t// onSuccess({ data: sliced });\n\n\t\treturn;\n\t\tconst obj = [];\n\t\tfor(let i = startRow; i <= endRow; i++) {\n\t\t\tconst recordData : any = {};\n\t\t\t// for(let j = 0; j < colCount; j++) {\n\t\t\t// \tconst recordID = this.dataProvider.getRecordIDByIdx(i);\n\t\t\t// \tconst fieldID = this.dataProvider.getFieldIDs()[j];\n\t\t\t// \tconst cellData = getLoadingCellData(recordID, fieldID);\n\t\t\t// \trecordData[fieldID] = cellData;\n\t\t\t// }\n\t\t\tobj.push(recordData);\n\t\t}\n\t\tonSuccess({data : obj})\n\n\n\t\t\n\n\t}\n\n\tprotected constructFieldConfig(): ICoreFieldConfig[] {\n\t\t//avoid redundant type def - infer enough\n\t\t//Review TODO : Collector API for efficiency for below\n\n\t\tconst fieldIDs = this.dataProvider.getFieldIDs();\n\t\tconst fieldConfigurations : ICoreFieldConfig[] = fieldIDs.map((fieldID: FieldID) => {\n\t\t\treturn this.fieldHandler.getFieldDefinitionByID(fieldID);\n\t\t});\n\t\treturn fieldConfigurations;\n\t}\n\n\tprivate constructDraftData(rowPinnedPosition: any) {\n\t\tif(rowPinnedPosition != \"bottomDraftRow\") {\n\t\t\treturn {};\n\t\t}\n\t\tconst fieldIDs = this.dataProvider.getFieldIDs();\n\t\tconst draftData : any = {};\n\t\tfieldIDs.forEach((fieldID: FieldID) => {\n\t\t\tconst fieldType = this.dataProvider.getFieldTypeByFieldID(fieldID);\n\t\t\tdraftData[fieldID] = DEFAULT_WRITE_FIELD_TYPE_VALUES[fieldType as keyof typeof DEFAULT_WRITE_FIELD_TYPE_VALUES];\n\t\t});\n\t\treturn draftData;\n\t}\n\n\tprotected constructRowDefinitions(rowIndex: number, parentKeys : Array<GroupID>,  data: any, rowPinnedPosition: any): ITablesRecordDefinitionConfig {\n\t\t//TODO: construct config based on Roles\n\t\tconst recordID = this.dataProvider.getRecordIDByIdx(rowIndex, parentKeys);\n\t\tlet recordConfig : ITablesRecordDefinitionConfig = {\n\t\t\trowId      : recordID,\n\t\t\tuserParams : {rowData: data && data[recordID], getRecordColor : (recordID: RecordID) => this.dataProvider.getRecordColor(recordID)},\n\t\t\tdraftData  : this.constructDraftData(rowPinnedPosition)\n\t\t};\n\n\t\tif(data && data.groupId) {\n\t\t\tlet groupData : IGroup            = data;\n\t\t\t    recordConfig.expand           = groupData.expanded;\n\t\t\t    recordConfig.childrenCount    = groupData.rowCount;\n\t\t\t    recordConfig.expandableRow    = true;\n\t\t\t    recordConfig.expandableRowKey = groupData.groupId;\n\t\t\t    recordConfig.rowId            = groupData.groupId;\n\t\t}\n\n\t\treturn recordConfig;\n\t}\n\n}","import { getTemplate } from \"../../../../../../../TemplatesForAll.js\"\nimport { FieldName, FieldStatus } from \"../../../../../../../Types.js\"\nimport { IFieldHeaderCell, IFieldHeaderCellParam } from \"../../../../../../../View/GridView/Main/Interface/ITablesGridConfig.js\"\n\nexport class SnapGridFieldHeaderCell implements IFieldHeaderCell {\n\n\tprivate readonly fieldHeaderDOM         : HTMLDivElement\n\tprivate readonly fieldHeaderIcon        : HTMLSpanElement\n\tprivate readonly fieldHeaderName        : HTMLDivElement\n\tprivate readonly fieldResizeElement\t\t: HTMLDivElement\n\tprivate param                           : null | IFieldHeaderCellParam\n\n\tconstructor() {\n\n        const template\t\t\t\t = getTemplate('ZTCG-fieldHeaderNameTemplate') as HTMLTemplateElement;\n\t\tthis.fieldHeaderDOM          = template.querySelector('.ZTCG-fieldHeaderContainer') as HTMLDivElement;\n\t\tthis.fieldHeaderIcon         = this.fieldHeaderDOM.querySelector('.ZTCG-fieldHeaderIcon') as HTMLSpanElement;\n\t\tthis.fieldHeaderName         = this.fieldHeaderDOM.querySelector('.ZTCG-fieldHeaderName') as HTMLDivElement;\n\t\tthis.fieldResizeElement\t     = this.fieldHeaderDOM.querySelector('.ZG-resizeCueSec') as HTMLDivElement;\n\t\tthis.param                   = null\n    }\n\n    //Implemented API's\n    init(param : IFieldHeaderCellParam) {\n        this.param = param;\n\t}\n\t\n\tgetElement(): HTMLElement {\n\t\tthis.param?.registerResizeElement(this.fieldResizeElement);\n\t\t\n\t\tconst field\t\t\t=\tthis.param?.columnNode.getHeaderCellRendererParams() as any //TODO: Need to remove this any type-casting\n\t\t\t\t\n\t\tconst fieldMeta     =\tfield.fieldHeaderCellDataProvider.getFieldMeta();\n\t\tconst fieldIconSVG\t=\tfield.fieldHeaderCellDataProvider.getFieldIcon().querySelector('svg').cloneNode(true);\n\t\tconst fieldName\t\t=\tfieldMeta.get('fieldName');\n\n\t\tthis.fieldHeaderIcon.appendChild(fieldIconSVG);\n\t\tthis.fieldHeaderName.textContent = fieldName ? fieldName : '';\n\n\t\treturn this.fieldHeaderDOM;\n\t}\n\n\tgetContextDropdownIcon() : HTMLDivElement {\n\t\tthrow new Error(\"Method not implemented.\");\n\t}\n\n\t//Field Header Specific API's\n\tupdateWarningIcon(fieldStatus: FieldStatus) : void {\n\t}\n\n\tupdateFieldName(fieldName: FieldName) : void {\n\t\tthis.fieldHeaderName.textContent = fieldName;\n\t}\n\n\tshowLoader() {\n\t}\n\n\thideLoader() {\n\t}\n}\n","import { getTemplate } from \"../../../../../../../TemplatesForAll.js\";\nimport { IRecordHeaderCell } from \"../../../../../../../View/GridView/Main/Interface/ITablesGridConfig.js\";\n\nexport class SnapGridRecordHeaderCell implements IRecordHeaderCell {\n\n    private recordHeaderContainer    : HTMLUListElement\n    private recordIndexSpan          : HTMLSpanElement\n    private param                    : any\n\t\n\tconstructor() {\n        const template\t\t\t\t   = getTemplate('ZTCG-recordSerialNumberHeader') as HTMLTemplateElement;\n        this.recordHeaderContainer     = template.querySelector('.ZTCG-recordHeaderContainer') as HTMLUListElement;        \n        this.recordIndexSpan           =   this.recordHeaderContainer.querySelector('.ZTCG-recordIndexSpan') as HTMLSpanElement;\n    }\n\n    //Implemented API's\n    init(param : any) {\n        this.param = param;\n    }\n\n    getElement(): HTMLElement {\n        const recordIndex       =   this.param.rowIndex;\n        this.recordIndexSpan.textContent = recordIndex + 1;\n        return this.recordHeaderContainer;\n    }\n\n    getContextDropdownIcon() : HTMLLIElement {\n        throw new Error(\"Method not implemented.\");\n    }\n\n    //Row Header specific API;\n    toggleRecordColor(toShow : boolean) : void {\n\n    }\n\n    updateCommentsTitle() {\n    }\n\n    addRecordHeaderContainerCSSClass(css: string) {\n        this.recordHeaderContainer.classList.add(css);\n    }\n\n    removeRecordHeaderContainerCSSClass(css: string) {\n        this.recordHeaderContainer.classList.remove(css);\n    }\n\n    toggleRecordIndexWithCheckbox(toShow : boolean) : void {\n    }\n\n    /**\n     * show/hide drag drop icon based on \n     * SORT\n     * ROLES\n     */\n    showDragDropIcon() {\n    }\n\n    hideDragDropIcon() {\n    }\n\n    hideLoader(): void {\n    }\n\n    showLoader(): void {\n    }\n\n}\n","import { GridCoreHooks } from \"../../../../../../../View/GridView/Main/Hooks/GridCoreHooks\";\nimport { IDGInteractor } from \"../../../../../../../View/GridView/Main/Interface/IDGInteractor\";\nimport { IGridCoreDataProvider } from \"../../../../../../../View/GridView/Main/Interface/IGridCoreDataProvider\";\nimport { IGridEventHandler } from \"../../../../../../../View/GridView/Main/Interface/IGridEventHandler\";\n\nexport class SnapGridHooks extends GridCoreHooks {\n\tprivate gridHolder: HTMLElement;\n\tprivate selectionRemoval: ((ev: Event) => void) | null = null;\n\t\t\n\tconstructor(dataProvider: IGridCoreDataProvider, dgInteracter: IDGInteractor, eventHandler: IGridEventHandler, gridHolder: HTMLElement) {\n\t\tsuper(dataProvider, dgInteracter, eventHandler);\n\t\tthis.gridHolder   = gridHolder;\n\t}\n\n\tonBeforeCellFocusChange(params: any): void {\n\t\tsuper.onBeforeCellFocusChange(params);\n\t\t\n\t\tif(this.selectionRemoval) {\n\t\t\treturn; // already registered\n\t\t}\n\t\t\n\t\tthis.selectionRemoval = (ev: Event) => {\n\t\t\tconst path = ev.composedPath()\n\t\t\tif(!path.includes(this.gridHolder)) {\n\t\t\t\tthis.dgInteracter!.clearFocusedCell()\n\t\t\t\tdocument.body.removeEventListener('mousedown', this.selectionRemoval!, true)\n\t\t\t\tthis.selectionRemoval = null\n\t\t\t}\n\t\t}\n\n\t\tdocument.body.addEventListener('mousedown', this.selectionRemoval, true)\n\t} \n\n\tonGridDestroy () {\n\t\tif(this.selectionRemoval) {\n\t\t\tdocument.body.removeEventListener('mousedown', this.selectionRemoval, true)\n\t\t\tthis.selectionRemoval = null;\n\t\t}\n\t}\n}","export const VIEWER_KEYBOARD_SHORTCUTS          = ['arrowleft', 'arrowright', 'arrowup', 'arrowdown', 'ctrl+arrowleft', 'ctrl+arrowright', 'ctrl+arrowup', 'ctrl+arrowdown', 'tab', 'shift+tab', 'enter', 'home', 'end', 'pageup', 'pagedown', 'ctrl+home', 'ctrl+end', 'ctrl+space', 'escape'];","import { FieldID, RecordID } from \"../../../../../../Types\";\nimport { GridCoreConfiguration } from \"../../../../../../View/GridView/Main/Configuration/GridCoreConfiguration\";\nimport { IDGInteractor } from \"../../../../../../View/GridView/Main/Interface/IDGInteractor\";\nimport { IFieldHandler } from \"../../../../../../View/GridView/Main/Interface/IFieldHandler\";\nimport { IGridCoreDataProvider } from \"../../../../../../View/GridView/Main/Interface/IGridCoreDataProvider\";\nimport { IGridEventHandler } from \"../../../../../../View/GridView/Main/Interface/IGridEventHandler\";\nimport { ICoreFieldConfig, IRecordHeaderCellDataProvider, IRecordHeaderCellEventHandler, ITablesRecordConfig } from \"../../../../../../View/GridView/Main/Interface/ITablesGridConfig\";\nimport { SnapGridFieldHeaderCell } from \"./Cell/SnapGridFieldHeaderCell\";\nimport { SnapGridRecordHeaderCell } from \"./Cell/SnapGridRecordHeaderCell\";\nimport { SnapGridHooks } from \"./Hooks/SnapGridHooks\";\nimport { VIEWER_KEYBOARD_SHORTCUTS } from \"./SnapGridKeyboardShortcuts\";\n\nexport class SnapGridViewerConfiguration extends GridCoreConfiguration {\n\tconstructor(dataProvider : IGridCoreDataProvider, dgInteracter : IDGInteractor, eventHandler : IGridEventHandler, fieldHandler : IFieldHandler<ICoreFieldConfig>, container: HTMLElement) {\n\t\tsuper(dataProvider, dgInteracter, eventHandler, fieldHandler);\n\t\tthis.hooks = new SnapGridHooks(dataProvider, dgInteracter, eventHandler, container);\n\t}\n\n\tgetConfiguration() {\n\t\tconst config = super.getConfiguration();\n\t\treturn {\n\t\t\t...config,\n\t\t\trowData : (fetchParams : IFetchParam) => {\n\t\t\t\treturn this.constructRowData(fetchParams.startRowIndex, fetchParams.endRowIndex, fetchParams.onSuccess);\n\t\t\t},\n\t\t\trowHeaderDefinitions : this.constructRowHeaderConfig()\n\t\t}\n\t}\n\n\tprotected getIncludeKeyboardShortcuts(): string[] {\n\t\treturn VIEWER_KEYBOARD_SHORTCUTS;\n\t}\n\n\tprotected isRangeSelectionEnabled(): boolean {\n\t\treturn false; // Range selection is not enabled in viewer\n\t}\n\n\tprotected constructRowHeaderConfig(): ITablesRecordConfig[] {\n\t\tconst self    = this\n\t\tconst recordHeaderCellDataProvider: IRecordHeaderCellDataProvider = {\n\t\t\tIsSortApplied() {\n\t\t\t\treturn self.dataProvider.isSortApplied();\n\t\t\t},\n\t\t\tgetRecordCommentCount(recordID: RecordID) {\n\t\t\t\treturn 0;\n\t\t\t},\n\t\t\tisRecordCommentsExist(recordID: RecordID) {\n\t\t\t\treturn 0;\n\t\t\t},\n\t\t\tisBaseEnabled() {\n\t\t\t\treturn self.dataProvider.isBaseEnabled();\n\t\t\t},\n\t\t\tisGroupingEnabled() {\n\t\t\t\treturn self.dataProvider.isGroupingApplied();\n\t\t\t}\n\t\t}\n\t\tconst recordHeaderCellEventHandler: IRecordHeaderCellEventHandler = {\n\t\t\tonExpandRecord(recordID: RecordID) {\n\t\t\t\tself.eventHandler.expandRecord(recordID);\n\t\t\t},\n\t\t\tonSelectRecord(recordIndex: string) {\n\t\t\t\t// self.dgInteracter.selectRecord(recordIndex)\n\t\t\t},\n\t\t\tonDeselectRecord(recordIndex: string) {\n\t\t\t},\n\t\t\tonContextMenuToggle(recordID: RecordID, ev: MouseEvent) {\n\t\t\t},\n\n\t\t\tonDoubleClick(recordID: RecordID) {\n\t\t\t\t// console.log(\"RecordDblClick\")\n\t\t\t},\n\t\t}\n\n\t\tconst params = {getTotalRecordCount: this.dataProvider.getRecordCount.bind(this.dataProvider), getVisibleRecordCount: this.dataProvider.getVisibleRecordCount.bind(this.dataProvider), recordHeaderCellDataProvider, recordHeaderCellEventHandler, dgInteracter: this.dgInteracter};\n\t\t// @ts-ignore\n\t\tconst rowHeaderConfig : ITablesRecordConfig[] = [{\n\t\t\twidth   : 60,\n\t\t\tcolumnId: \"rowHeader\",\n\t\t\tcellRenderer             : SnapGridRecordHeaderCell,\n\t\t\tcellRendererParams\t\t : params,\t\n\t\t\theaderCellRendererParams : params,\n\t\t\tsummaryCellRendererParams: params\n\t\t}];\n\t\treturn rowHeaderConfig;\n\t}\n\n\tprotected constructFieldConfig(): ICoreFieldConfig[] {\n\t\t //avoid redundant type def - infer enough\n\t\t//Review TODO : Collector API for efficiency for below\n\n\t\tconst fieldIDs = this.dataProvider.getFieldIDs();\n\t\tconst fieldConfigurations : ICoreFieldConfig[] = fieldIDs.map((fieldID: FieldID) => {\n\t\t\tconst coreFieldConfig = this.fieldHandler.getFieldDefinitionByID(fieldID);\n\t\t\t//@ts-ignore\n\t\t\treturn {\n\t\t\t\t...coreFieldConfig,\n\t\t\t\theaderCellRenderer: SnapGridFieldHeaderCell\n\t\t\t} as ICoreFieldConfig;\n\t\t});\n\t\treturn fieldConfigurations;\n\t}\n\n\tprotected async constructRowData(startRow: number, endRow: number, onSuccess: CallableFunction, parentKeys : string[] = []) {\n\t\treturn this.dataProvider.constructRowData(startRow, endRow, onSuccess, parentKeys);\n\n\t\t//these changes moved to dataProvider - start of Comment\n\t\t//TODO: construct config based on Roles\n\t\t// \tconst fieldIDList = this.dataProvider.getFieldIDs();\n\t\t// \ttry {\n\t\t// \t\tthis.dataProvider.fetchRowData(this.dataProvider.getRecordIDs(), fieldIDList).then((data : any) => {\n\t\t// \t\t\tconst gridData = Object.entries(data).map(([key, value]) => value);\t//DOMTODO data\n\t\t// \t\t\tthis.dataProvider.viewportRegister(startRow, endRow);\n\t\t// \t\t\tonSuccess({data : gridData});\n\t\t// \t\t\tif(endRow < 0) {\n\t\t// \t\t\t\treturn\n\t\t// \t\t\t}\n\t\t// \t\t});\n\t\t// \t} catch (error) {\n\t\t// \t\tconsole.error(\"Error in constructRowConfig:\", error);\n\t\t// \t}\n\t\t//these changes moved to dataProvider - end of Comment\n\t}\n}","import { IDGInteractor } from \"../../../../../../View/GridView/Main/Interface/IDGInteractor\"\nimport { IGridConstructor } from \"../../../../../../View/GridView/Main/Interface/IGridConstructor\"\nimport { IGridCoreDataProvider } from \"../../../../../../View/GridView/Main/Interface/IGridCoreDataProvider\"\nimport { IGridEventHandler } from \"../../../../../../View/GridView/Main/Interface/IGridEventHandler\"\nimport { ITablesGridConfig } from \"../../../../../../View/GridView/Main/Interface/ITablesGridConfig\"\nimport { SnapGridDataProvider } from \"../SnapGridDataProvider\"\nimport { getInlineComponent } from \"./FCComponents/SnapGridConfigConstructor\"\nimport { SnapGridFieldHandler } from \"./SnapGridFieldHandler\"\nimport { SnapGridViewerConfiguration } from \"./SnapGridViewerConfiguration\"\n\nconst globalT           = globalThis as any\n//DOMTODO: type define so that accessing keys should be auto suggested for all user params\n\nexport class SnapGridConstructor implements IGridConstructor {  \n\tpublic  readonly gridDataProvider : SnapGridDataProvider\n\tpublic  readonly gridEventHandler : IGridEventHandler\n\tpublic  gridConfig                : ITablesGridConfig\n\tprivate domgrid                   : any                //TODO: replace any after DG provides type\n\tpublic  roleConfig                : RoleConfigBuilder | null\n\tpublic  fieldHandler              : SnapGridFieldHandler;\n\tprivate inlineComponentConstructor: any\n\t\n\tconstructor(gridDataProvider: SnapGridDataProvider, gridEventHandler: IGridEventHandler, container: HTMLElement, datagridInteractor: IDGInteractor) {\n\t\tthis.gridDataProvider \t\t\t\t\t= gridDataProvider;\n\t\tthis.gridEventHandler \t\t\t\t\t= gridEventHandler\n\t\tthis.fieldHandler     \t\t\t\t\t= new SnapGridFieldHandler(this.gridDataProvider, datagridInteractor, this.gridEventHandler);\n\n\t\tthis.roleConfig                 \t\t= new RoleConfigBuilder(this.gridDataProvider, this.gridEventHandler, datagridInteractor, this.fieldHandler, container);\n\t\tthis.gridConfig \t\t\t\t\t\t= this.roleConfig.build();\n\t\tthis.domgrid                         \t= new globalT.DataGrid.GridMain(container, this.gridConfig);      //TODO: remove globalT after DG provides ESM build with export option\n\t\t\n\t\tthis.inlineComponentConstructor \t\t= getInlineComponent(this.gridDataProvider.getFCDataProvider());\n\t\tthis.init();\n\t\t\n\t\tglobalT.domgrid                 \t\t= this.domgrid;  //DOMTODO: TO be removed\n    }\n\n\tinit() {\n\t\tconst recordHeightHandler = this.gridEventHandler.getGridManagerAsRecordEventHandler();\n\t\tconst recordHeight        = this.gridDataProvider.getRecordHeight();\n        recordHeightHandler.updateRecordHeightCSSClassname(recordHeight);\n\t}\n\n\tgetDomGridInstance() {\n\t\treturn this.domgrid;\n\t}\n\n\tdestroy() : void {\n\t\tthis.roleConfig && this.roleConfig.destroy();\n\t\tthis.roleConfig = null;\n\t}\n}\n\n/**\n * summaryDefinitions \t- single empty object returned to create single summary bar\n * buffer\t\t\t\t- Review TODO: rename buffer meaningful - Asked regd this they are changing all configs\n * cacheBlockSize\t\t- total record count to cache\n * fetchTriggerPoint\t- remaining record count to trigger fetch request\n * staticCacheIndexes\t- any index in start and end block cache to preserve the blocks\n */\n\nclass RoleConfigBuilder {\n\n\tpublic  readonly gridDataProvider    : IGridCoreDataProvider\n\tprivate readonly gridEventHandler    : IGridEventHandler\n\tprivate readonly datagridInteractor  : IDGInteractor\n\n\tprivate readonly fieldHandler : SnapGridFieldHandler;\n\tprivate readonly container : HTMLElement;\n\t// private readonly gridClipboardManager: IGridClipboardManager;\n\n\tprivate addDestroyFunc : Array<CallableFunction> = [];\n\n\n\tconstructor(gridDataProvider: IGridCoreDataProvider, gridEventHandler: IGridEventHandler, datagridInteractor: IDGInteractor, fieldHandler : SnapGridFieldHandler, container: HTMLElement) {\n\t\tthis.gridDataProvider = gridDataProvider;\n\t\tthis.gridEventHandler = gridEventHandler;\n\t\tthis.datagridInteractor = datagridInteractor;\n\t\tthis.fieldHandler = fieldHandler;\n\t\tthis.container = container\n\t\t// this.gridClipboardManager = new GridClipboardManager(datagridInteractor, gridDataProvider, gridEventHandler);\n\t}\n\n\tbuild(): ITablesGridConfig {\n        return this.getConfigFunction();\n    }\n\n    private getConfigFunction(): ITablesGridConfig {\n\t\treturn new SnapGridViewerConfiguration(this.gridDataProvider, this.datagridInteractor, this.gridEventHandler, this.fieldHandler, this.container).getConfiguration();\n\t}\n\n\t// Other API's\n\n\tpublic destroy() : void {\n\t\tthis.addDestroyFunc.forEach((destroyFunc) => destroyFunc());\n\t}\n}\n","import { getTemplate } from \"../../../../TemplatesForAll.js\";\n\nexport class DraftCell { \n    private params              :   any\n \n    init(params : any) {\n        this.params  = params;\n    }\n\n    getElement(): HTMLElement {\n        const draftRowTemplate  = getTemplate('ZTCG-addRecordTextTemplate') as HTMLTemplateElement;\n        const columnAPI         = this.params.apis.getColumnAPI();\n        const leftColumnCount   = columnAPI.getLeftColumnCount();\n        // if(leftColumnCount === 0) {\n        //     this.params.element.classList.add('ZT-fieldsEmpty');\n        // }\n        const draftRowContainer        = draftRowTemplate.querySelector('.ZTCG-extraRowCtr') as HTMLElement;\n        const draftRowText             = draftRowTemplate.querySelector('.ZTCG-extraRowText') as HTMLDivElement;\n        const msg = (/Win/.test(globalThis.navigator.platform) || /Linux/.test(globalThis.navigator.platform)) ? Table.Constants.JSMsg[\"UI.Editor.ExtraRow.WindowText\"] : Table.Constants.JSMsg[\"UI.Editor.ExtraRow.MacText\"];\n        draftRowText.textContent = (this.params.columnIndex == 0 && (leftColumnCount === 0 || this.params.columnNode.getPinnedPosition() === \"left\")) ?  msg: \"\";  //No I18N\n        return draftRowContainer;\n\t}\n}\n","import { isNonEditableFieldType, isPopupFieldType, SENTIMENTAL_ANALYSIS } from \"../../../../Constants/FieldTypes.js\";\nimport { areArraysEqual } from \"../../../../FieldTypeComponents/FieldTypeComponentsFormater\";\nimport { KEY_LABEL } from \"../../GridConstants\";\nimport { getLoadingCellData } from \"../../Main/Configuration/GridCoreConfiguration\";\nimport { ICell } from \"../../Main/Interface/ITablesGridConfig\";\nimport { DraftCell } from \"./DraftCell\";\n\nconst ENTER_KEY_COUNT = 2;\n\nexport abstract class CoreCell implements ICell {\n\t// private fieldComponent : ICellComponent | null;\n\tprotected fieldComponent : any;\n\tprotected param          : any\n\tprotected count          : number;\n\n\tprotected addDestroyFunc : Array<CallableFunction> = new Array();\n\n    constructor() {\n\t\tthis.fieldComponent = null;\n\t\tthis.param          = null;\n\t\tthis.count          = 0;\n    }\n\n    init(param : any) { //TODO: Need to remove the any and use ICellRendererParams\n\t\tthis.param = param;\n\t}\n\n\tafterElementAttached() {\n\t\tconst isCellFocused = this.isCellFocused();\n\t\tif(isCellFocused) {\n\t\t\tthis.enableSelectionState();\n\t\t}\n\t\t// this.fieldComponent.component?.render();\n\t}\n\n\tprotected isCellFocused() : boolean {\n\t\tif(!this.param) {\n\t\t\treturn false;\n\t\t}\n\t\tconst rowMeta = this.param.rowNode.getRowMeta();\n\t\tconst columnID = this.param.columnNode.getID();\n\t\tconst focusedCellPosition = this.param.fieldCellEventHandler.getFocusedCell();\n\t\tif(focusedCellPosition === null) return false;\n\t\n\t\tconst colsMatch        = columnID    === focusedCellPosition.columnID;\n\t\tconst floatingMatch    = rowMeta.pinPosition === focusedCellPosition.pinPosition;\n\t\tconst indexMatch       = rowMeta.rowIndex    === focusedCellPosition.rowIndex;\n\t\tconst isParentKeyMatch = areArraysEqual(rowMeta.parentKeys, focusedCellPosition.parentKeys)\n\t\treturn colsMatch && floatingMatch && indexMatch && isParentKeyMatch;\n\n\t}\n\n\tabstract getComponentParams() : any\n\n\tgetElement(): HTMLElement {\n\t\tconst cellData = getLoadingCellData(this.param.rowId, this.param.columnId);\n\t\t\n\t\tif(this.param.pinPosition === \"bottomDraftRow\") {\n\t\t\treturn DraftCell.prototype.getElement.call({params: this.param});\n\t\t}\n\t\tif(this.param.cellData === undefined) {\n\t\t\tconst div = document.createElement('div');\n\t\t\tdiv.classList.add('ZG-skeletonLoader');\n\t\t\treturn div as HTMLElement;\n\t\t}\n\t\tconst fieldDataProvider = this.param.fieldCellDataProvider;\n\t\tconst fieldType         = fieldDataProvider.getFieldType();\n\t\t\n\t\tconst wrapper = document.createElement('div');\n\t\twrapper.style.height = 'inherit';\n\n\t\tconst params              = this.getComponentParams();\n\t\tconst componentInstance\t  = fieldDataProvider.getComponentInstance();\n\t\tthis.fieldComponent       = componentInstance?.constructComponent(fieldType, params); // to initialize the component\n\t\tthis.attachListener();\n\t\t\n\t\ttry {\n            return this.fieldComponent?.getElement();\n        } catch (error) {\n            console.error(\"Error getting element:\", error);\n        }\n\t}\n\n\tupdateUserParam(data : any) : void {\n\t\tconst fieldID = this.param.columnNode.getID();\n\t\tthis.param.rowUserParams.rowData[fieldID] = data[fieldID];\n\t}\n\n\tprivate attachListener() {\n\t\tconst element      = this.param?.gridCellElement;\n\t\tconst fieldType    = this.param.fieldCellDataProvider.getFieldType();\n\t\tconst isReadonly   = this.param.fieldCellDataProvider.isReadonly();\n\t\tconst isPopupField = isPopupFieldType(fieldType);\n\t\t\n        if(!isReadonly && isNonEditableFieldType(fieldType) || fieldType === SENTIMENTAL_ANALYSIS) {\n\t\t\tconst instanceAPI   = this.param.apis;\n\t\t\tconst navigationAPI = instanceAPI.getNavigationAPI();\n\t\t\telement && this.addEventListener(element ,'keydown', (e: any) => {\n\t\t\t\tif(e.key === KEY_LABEL.ENTER) {\n\t\t\t\t\tthis.count++;\n\t\t\t\t\tif(this.count === ENTER_KEY_COUNT) {\n\t\t\t\t\t\te.shiftKey ? navigationAPI.navigateToCellTop() : navigationAPI.navigateToCellBottom();\n\t\t\t\t\t\tthis.count = 0;\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})\n        }\n\t\telse if(element) {\n\t\t\tthis.addEventListener(element, 'keydown', (e) => {\n\t\t\t\tthis.fieldComponent?.onKeyDown?.(e);\n\t\t\t})\n\t\t}\n\n\t\tthis.addEventListener(element,'focusin', () => {\n            element.focus();\n        })\n    }\n\n\n\tgetGridElement() {\n\t\treturn this.param.gridCellElement\n\t}\n\n\t//Cell specific API's\n\tenableSelectionState(event ?: MouseEvent) {\n\t\tconst params = {\n\t\t\tfieldID               : this.param.columnNode.getID(),\n\t\t\trecordID              : this.param.rowId,\n\t\t\tfieldCellEventHandler : this.param.fieldCellEventHandler,\n\t\t\tcellDataProvider      : this.param.fieldCellDataProvider,\n\t\t\trowIndex              : this.param.rowIndex,\n\t\t\tcolumnIndex           : this.param.columnIndex,\n\t\t\tevent\t\t\t\t  : event\n\t\t}\n\t\tthis.fieldComponent?.enableSelection?.(params);\n\t\tthis.count = 0;\n\t}\n\n\tdisableSelectionState() {\n\t\tconst params = {\n\t\t}\n\t\tthis.fieldComponent?.disableSelection?.(params);\n\t\tthis.count = 0;\n\t}\n\n\tonCellWidthChange(width : number) {\n\t\tthis.fieldComponent?.onCellWidthChange(width);\n\t}\n\n\tgetFormattedValue() {\n\t\treturn this.fieldComponent!.getFormattedValue();\n\t}\n\n\tdestroy() : void {\n\t\tthis.addDestroyFunc.forEach((func) => func());\n\t\tthis.fieldComponent?.destroyComponent();\n\n\t\tthis.param = null;\n\t\tthis.fieldComponent = null;\n\t\tthis.count = 0;\n\t\tthis.addDestroyFunc = [];\n\t}\n\n\tprivate addEventListener(element : HTMLElement, eventName : string, callBack : EventListenerOrEventListenerObject) : void {\n\t\telement.addEventListener(eventName, callBack);\n\n\t\tthis.addDestroyFunc.push(() => {\n\t\t\telement.removeEventListener(eventName, callBack);\n\t\t})\n\t}\n}","import { FIELD_TYPE_COMPONENTS_MANAGER_PARAMS } from \"../../../../../../../FieldTypeComponents/FieldTypeConfigTypes\";\nimport { GRID_RENDER_READ_ONLY } from \"../../../../../../../FieldTypeComponents/FieldTypeConstants\";\nimport { FieldID } from \"../../../../../../../Types\";\nimport { CoreCell } from \"../../../../../../../View/GridView/ContentPane/Cell/CoreCell\";\nimport { getNewFieldTypeSpecifications } from \"../../../../../../Utility/FieldTypeUtility.js\";\n\nexport class SnapCell extends CoreCell {\n\tprivate expandIcon : HTMLDivElement | null = null;\n\n\tgetComponentParams() {\n\t\tconst fieldID : FieldID = this.param.columnNode.getID();\n\t\tconst recordID          = this.param.rowId;\n\t\tconst fieldDataProvider = this.param.fieldCellDataProvider;\n\t\t// const parentDOM         = this.param.cellValueElement;\n\t\tconst parentDOM \t\t= this.param.parentElement;\n\t\tconst fieldValue        = this.param.data;\t//DOMTODO data\n\t\tconst fieldType         = fieldDataProvider.getFieldType();\n\t\tconst value             = fieldValue[fieldID];\n\t\tconst fieldMeta         = this.param.fieldMeta;\n\t\tconst baseID            = fieldDataProvider.getBaseID();\n\t\tconst fieldTypeMeta     = fieldDataProvider.getFieldMeta();\n\t\tconst rowHeight         = this.param.rowNode.getHeight();\n\t\tconst columnWidth       = this.param.columnNode.getWidth();\n\n\t\t// const userRole\t\t\t= fieldDataProvider.getCurrentUserRole();\n\t\t// let configType : ConfigType = '';\n\t\t// // if(userRole === GRID_MANAGER_ROLE || userRole === GRID_EDITOR_ROLE ) {\n\t\t// // \tconfigType = GRID_RENDER_READ_WRITE;\n\t\t// // } else if (userRole === GRID_DATA_MAINTAINER_ROLE) {\n\t\t// // \tconfigType = GRID_RENDER_DATA_MAINTAINER;\n\t\t// // } else if (userRole === GRID_COMMENTOR_ROLE || userRole === GRID_VIEWER_ROLE) {\n\t\t// // \tconfigType = GRID_RENDER_READ_ONLY;\n\t\t// // }\n\t\tconst configType = GRID_RENDER_READ_ONLY;\n\t\t\n\t\tconst fieldTypeSpecifications =  getNewFieldTypeSpecifications(fieldDataProvider.getFieldTypeInstance(), fieldDataProvider);\n\t\tconst params : FIELD_TYPE_COMPONENTS_MANAGER_PARAMS\t= {\n\t\t\tbaseID,\n\t\t\tparentDOM: parentDOM,\n\t\t\tcellElement: this.param.gridCellElement,\n\t\t\tconfigType,\n\t\t\tfieldID,\n\t\t\tfieldType,\n\t\t\tvalue,\n\t\t\tfieldMeta,\n\t\t\tfieldTypeMeta,\n\t\t\tfieldTypeSpecifications,\n\t\t\trowHeight,\n\t\t\tfieldCellEventHandler: this.param.fieldCellEventHandler,\n\t\t\tcellDataProvider: fieldDataProvider,\n\t\t\trecordID,\n\t\t\tisCellFocused : this.isCellFocused(),\n\t\t\tcolumnWidth\n\t\t}\n\n\t\treturn params;\n\t}\n}","import { ICellEditorComponent } from \"../../../../../DomGrid/App/grid\";\nimport { ATTACHMENT } from \"../../../../Constants/FieldTypes.js\";\nimport { FIELD_TYPE_COMPONENTS_MANAGER_PARAMS } from '../../../../FieldTypeComponents/FieldTypeConfigTypes';\nimport { FieldID, FieldTypeConstant } from '../../../../Types';\nimport { DEFAULT_WRITE_FIELD_TYPE_VALUES } from \"../../GridConstants\";\n\nexport abstract class CoreEditCell implements ICellEditorComponent {\n    fieldComponent   :   any\n    param       :   any\n\n\tprivate addDestroyFunc : CallableFunction[] = [];\n\tprotected initialFieldType : FieldTypeConstant | null = null;\n\n    constructor() {\n        this.fieldComponent  = null;\n    }\n    \n    init(param : any) {\n\t\tthis.param = param;\n\t}\n\n\tabstract getElementParams() : any;\n\n\tafterElementAttached() {\n\t\tthis.fieldComponent.afterGuiAttached();\n\t}\n\n\tgetElement(): HTMLElement {\n\t\tconst params = this.param;\n\t\tconst fieldType\t\t\t= params.fieldEditCellDataProvider.getFieldType();\n\t\t\n\t\tconst componentParams: FIELD_TYPE_COMPONENTS_MANAGER_PARAMS     = this.getElementParams();\n\t\tconst componentInstance\t  = this.param.fieldEditCellDataProvider.getEditorInstance();\n\t\tthis.fieldComponent       = componentInstance?.constructComponent(fieldType,componentParams); // to initialize the component\n\t\tthis.addListener(this.fieldComponent.getElement());\n\t\t// return this.fieldComponent?.getElement();\n\t\ttry {\n            return this.fieldComponent?.getElement();\n        } catch (error) {\n            console.error(\"Error getting element:\", error);\n        }\n\t}\n\n\tprotected addListener(element :  HTMLElement){\n\t\tthis.addEventListener(this.param.parentElement, 'mousedown',(event)=>{\n\t\t\tevent.stopPropagation();\n\t\t})\n\t}\n\n    getValue(): string | null | undefined {\n\t\tconst isDraftRow = this.param.pinPosition == 'bottomDraftRow';\t\t// HotFix : draftRow linkField submition\n\t\tconst fieldType  = this.param.fieldEditCellDataProvider.getFieldType() as keyof typeof DEFAULT_WRITE_FIELD_TYPE_VALUES;\n\t\tlet   value      = isDraftRow ? this.fieldComponent?.getRequestModelData() : this.fieldComponent?.getValue();\n\t\treturn value ?? DEFAULT_WRITE_FIELD_TYPE_VALUES[fieldType];\n    }\n\n\tisCancelBeforeStart(): boolean {\n\t\tconst isDraftRow        = this.param.pinPosition == 'bottomDraftRow';\n\t\tconst isAttachmentField = this.param.fieldEditCellDataProvider.getFieldType()   == ATTACHMENT;\n\t\tif(isDraftRow && isAttachmentField) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tisCancelAfterEnd(): boolean {\n\t\tif(!this.param.fieldEditCellDataProvider.isFieldExists()) {\n\t\t\treturn true;\n\t\t}\n\t\tconst isFieldTypeChanged = this.param.fieldEditCellDataProvider.getFieldType() !== this.initialFieldType;\n\t\tif(isFieldTypeChanged) {\n\t\t\treturn true;\n\t\t}\n\t\tconst isReadonly = this.param.fieldEditCellDataProvider.isReadonly();\n\t\tif(isReadonly) {\n\t\t\treturn true;\n\t\t}\n\n\t\t\n\t\t// if(this.param.fieldEditCellDataProvider.getFieldType() === EMAIL) {\n\t\t// \tconst isValid = EmailValidator(newValue);\n\t\t// \tif(!isValid) {\n\t\t// \t\temailErrorCondition();\n\t\t// \t\treturn true;\n\t\t// \t} \n\t\t// } \n\t\tconst isValid = this.fieldComponent?.validate() ?? false;\n\t\tif(!isValid) {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t}\n\n\tsubmit() : void {\n\t\t//submit request trigger\n\t\tconst eventHandler\t\t= this.param.fieldEditCellEventHandler;\n\t\tconst recordID\t\t\t= this.param.rowID;\n\t\tconst fieldID : FieldID = this.param.columnNode.getID();\n\t\tconst oldValue\t\t\t= this.param.oldValue;\n\t\tconst formattedValue = typeof this.fieldComponent.getRequestModelData === 'function' // No I18N\n\t\t\t? this.fieldComponent.getRequestModelData()\n\t\t\t: this.fieldComponent.getValue();\n\n\t\tconst shouldSubmit = typeof this.fieldComponent.shouldSubmitCellValue === 'function' // No I18N\n\t\t\t? this.fieldComponent.shouldSubmitCellValue(oldValue, formattedValue)\n\t\t\t: (oldValue != this.fieldComponent.getValue() && this.param.pinPosition !== \"bottomDraftRow\");\n\n\t\tif(shouldSubmit) {\n\t\t\teventHandler.updateCellData(recordID, fieldID, formattedValue);\n\t\t}\n\t}\n\n\tdestroy() {\n\t\tthis.fieldComponent?.destroyComponent();\t\t//called before getElement created\n\t\tthis.addDestroyFunc.forEach(func => func());\n\t\tthis.addDestroyFunc = [];\n\t}\n\n\tprivate addEventListener(element : HTMLElement, eventName : string, callBack : EventListenerOrEventListenerObject) : void {\n\t\telement.addEventListener(eventName, callBack);\n\n\t\tthis.addDestroyFunc.push(() => {\n\t\t\telement.removeEventListener(eventName, callBack);\n\t\t})\n\t}\n}\n","import { FIELD_TYPE_COMPONENTS_MANAGER_PARAMS } from \"../../../../../../../FieldTypeComponents/FieldTypeConfigTypes\";\nimport { GRID_RENDER_READ_WRITE } from \"../../../../../../../FieldTypeComponents/FieldTypeConstants\";\nimport { FieldID } from \"../../../../../../../Types\";\nimport { CoreEditCell } from \"../../../../../../../View/GridView/ContentPane/Cell/CoreEditCell\";\nimport { getNewFieldTypeSpecifications } from \"../../../../../../Utility/FieldTypeUtility.js\";\n\nexport class SnapEditCell extends CoreEditCell {\n\tgetElementParams() {\n\t\tconst params            = this.param;\n\t\tconst fieldID : FieldID = params.columnNode.getID();\n\t\tconst fieldValue\t\t= params.data;\n\t\tconst fieldType\t\t\t= params.fieldEditCellDataProvider.getFieldType();\n\t\tlet value\t\t\t\t= fieldValue[fieldID];\n\t\tconst fieldMeta\t\t\t= params.fieldEditCellDataProvider.getFieldMeta();\n\t\tconst fieldTypeMeta\t\t= fieldMeta.get('fieldTypeMeta');\n\t\tconst fieldInstance\t\t= params.fieldEditCellDataProvider.getFieldTypeInstance(fieldID);\n\t\tconst baseID\t\t\t= params.fieldEditCellDataProvider.getBaseID();\n\t\tconst rowHeight\t\t\t= params.rowNode.getHeight();\n\t\tconst fieldTypeSpecifications =  getNewFieldTypeSpecifications(fieldInstance, params.fieldEditCellDataProvider)\n\t\tconst parentDOM \t\t= this.param.parentElement;\n\n\t\tconst configType = GRID_RENDER_READ_WRITE;\n\t\t\n\t\tlet eventKey = (params.eventKey && params.eventKey.length == 1) ? params.eventKey : null;\n\t\tconst componentParams : FIELD_TYPE_COMPONENTS_MANAGER_PARAMS\t= {\n\t\t\tbaseID,\n\t\t\tparentDOM,\n\t\t\tcellElement: this.param.cellElement,\n\t\t\tconfigType,\n\t\t\tfieldID,\n\t\t\trecordID : params.rowID,\n\t\t\tfieldType,\n\t\t\tvalue,\n\t\t\teventKey,\n\t\t\tfieldMeta,\n\t\t\tfieldTypeMeta,\n\t\t\tfieldTypeSpecifications,\n\t\t\trowHeight,\n\t\t\tfieldCellEventHandler : this.param.fieldEditCellEventHandler,\n\t\t\tcellDataProvider : this.param.fieldEditCellDataProvider\n\t\t}\n\t\treturn componentParams;\n\t}\n\n\tisCancelAfterEnd(): boolean {\n\t\treturn true;\n\t}\n}\n","import { IContextMenuOptionValueHolder } from \"../../../../../Components/ContextMenu/Options/Interface/IContextMenuOptionValueHolder\"\nimport { IGroupPositionWithRelativeID } from \"../../../../../Dom/Top/ViewBar/Features/GroupBy/GroupByConstants\"\nimport { getAllCollaboratorIDs, getAllCollaboratorValues, getCollaboratorValue } from \"../../../../../FieldTypeComponents/FieldTypeComponentsFormater\"\nimport { COLLABORATOR_OPTION_TYPE, Roles } from \"../../../../../FieldTypeComponents/FieldTypeConfigTypes\"\nimport { GRID_VIEWER_ROLE } from \"../../../../../FieldTypeComponents/FieldTypeConstants\"\nimport { BaseID, Color, FieldID, FieldTypeConstant, GroupID, RecordID, TableActionNumber, TableID } from \"../../../../../Types\"\nimport { IFCConfigDataProvider } from \"../../../../../View/GridView/FCComponents/Interface/IFCConfigDataProvider\"\nimport { IGridCoreDataProvider } from \"../../../../../View/GridView/Main/Interface/IGridCoreDataProvider\"\nimport { IGroup, IRowMeta } from \"../../../../../View/GridView/Main/Interface/ITablesGridConfig\"\nimport { SnapCell } from \"./DomGrid/Cell/SnapCell\"\nimport { SnapEditCell } from \"./DomGrid/Cell/SnapEditCell\"\nimport { SnapGridFieldHeaderCell } from \"./DomGrid/Cell/SnapGridFieldHeaderCell\"\nimport { getInlineComponent, getPopupComponent } from \"./DomGrid/FCComponents/SnapGridConfigConstructor\"\nimport { GridViewDataStore } from \"./GridViewDataStore\"\nimport { IGridInteracter } from \"./IGridInteracter\"\n\nexport class SnapGridDataProvider implements IGridCoreDataProvider {\n    private componentInstance    : any;\n\tprivate editorInstance       : any;\n\tprivate propsStore           : GridViewDataStore;\n\tprivate interacter           : IGridInteracter;\n\tprivate container          : HTMLElement;\n\n    constructor(propsStore: GridViewDataStore, interacter: IGridInteracter, container: HTMLElement) {\n        this.propsStore = propsStore;\n\t\tthis.interacter = interacter;\n\t\tthis.container  = container;\n    }\n\n\tgetEndBufferHeight() : number {\n\t\treturn 0;\n\t}\n\n\tgetEndBufferWidth() : number {\n\t\treturn 0;\n\t}\n\n\tasync constructRowData(startRow: number, endRow: number, onSuccess: CallableFunction) {\n\t\t//TODO: construct config based on Roles\n\t\tconst fieldIDList = this.getFieldIDs();\n\t\ttry {\n\t\t\tthis.fetchRowData(this.getRecordIDs(), fieldIDList).then((data : any) => {\n\t\t\t\tconst gridData = Object.entries(data).map(([key, value]) => value);\t//DOMTODO data\n\t\t\t\tthis.viewportRegister(startRow, endRow);\n\t\t\t\tonSuccess({data : gridData});\n\t\t\t\tif(endRow < 0) {\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t});\n\t\t} catch (error) {\n\t\t\tconsole.error(\"Error in constructRowConfig:\", error);\n\t\t}\n\t}\n\n\tgetComponentInstance(){\n        if(this.componentInstance){\n\t\t\treturn this.componentInstance\n\t\t}\n\t\tthis.componentInstance = getInlineComponent(this.getFCDataProvider());\n\t\treturn this.componentInstance;\n\t}\n\n\tisGroupingApplied() {\n\t\treturn false;\n\t}\n\t\n\tgetGroupFieldIDs() {\n\t\treturn [];\n\t}\n\n\tgetGroupIndexUsingGroupPath(groupPath: Array<GroupID>): Array<number> {\n\t\treturn [];\n\t}\n\n\tgetRecordIndexUsingGroupPath(recordID: RecordID, groupPath: Array<GroupID>): number {\n\t\treturn -1;\n\t}\n\n\tgetRecordIDsOfExpandedGroups(startGroupMeta: IRowMeta, endGroupMeta: IRowMeta){\n\t\treturn [];\n\t}\n\n\tfetchGroups(path: GroupID[]): IGroup[] {\n\t\treturn [];\n\t}\n\n\tinitialGroupMetaFetch() : IGroup[] {\n\t\treturn [];\n\t}\n\n\tgetGroupHeaderCellContextMenuOptions(groupPath : GroupID[],  isCollapsed : boolean) : IContextMenuOptionValueHolder[][] {\n\t\treturn [];\n\t}\n\n\tgetGroupPositionWithRelativeID(groupPath: Array<GroupID>, groupID: GroupID): IGroupPositionWithRelativeID | undefined {\n\t\treturn undefined;\n\t}\n\n\tgetEditorInstance(){\n\t\tif(this.editorInstance){\n\t\t\treturn this.editorInstance\n\t\t}\n\t\tthis.editorInstance = getPopupComponent(this.getFCDataProvider());\n\t\treturn this.editorInstance;\n    }\n\n    getActiveBaseID() : BaseID {\n        return this.interacter.getActiveBaseID();\n    }\n\n    getActiveTableID() : TableID {\n        return this.propsStore.getTableID() as TableID;\n    }\n\n    getRecordID(rowIndex : number) : RecordID {\n        const recordIds = this.propsStore.getRecordOrder();\n        return recordIds[rowIndex];\n    }\n\n    //gets and returns all field ids with their type and label\n    getFieldIDs() : Array<FieldID> {\n\t\treturn this.propsStore.getFieldOrder();\n    }\n\n\tgetFieldWidth(fieldID : FieldID) : number {\n\t\treturn this.propsStore.getFieldWidth(fieldID);\n\t}\n\n    getFieldMeta(fieldID: FieldID, index: number) : Map<string, string> {\n        const fieldMetaMap  = new Map<string, any>(); //TODO: Instead map, use object or class instance to Define the Type\n        const field         = this.propsStore.getField(fieldID);\n        const fieldName     = field.getName();\n        // const fieldTypeIcon = this.interacter.getFieldIcon({fieldID: fieldID, fieldType: field.getType().getType(), fieldName: fieldName});\n        const fieldStatus   = field.getStatus();\n\n        fieldMetaMap.set('fieldID', fieldID);\n        fieldMetaMap.set('fieldName', fieldName);\n        // fieldMetaMap.set('fieldIcon', fieldTypeIcon);\n        fieldMetaMap.set('fieldTypeMeta', field.getType());\n        fieldMetaMap.set('fieldWidth', this.getFieldWidth(fieldID));\n        fieldMetaMap.set('fieldStatus', fieldStatus);\n\t\treturn fieldMetaMap;\n    }\n\n\tgetFieldIcon(fieldID: FieldID) {\n\t\tconst field     = this.propsStore.getField(fieldID);\n        const fieldName = field.getName();\n        return this.interacter.getFieldIcon({fieldID: fieldID, fieldType: field.getType().getType(), fieldName: fieldName});\n\t}\n\n\tgetFieldSummary(fieldID: FieldID) {\n        return []\n\t}\n\n\tgetFieldName(fieldID: FieldID) {\n\t\tconst field = this.propsStore.getField(fieldID);\n\t\treturn field.getName();\n\t}\n\n    getAllFieldsMeta() : Array<Map<string, string>> {\n        const fieldIDs = this.getFieldIDs() as Array<FieldID>\n        //TODO: return as object key  -  fieldid, value -  meta\n\t\tconst fieldOptions : Array<Map<string, any>> = fieldIDs.map((fieldID, index) => this.getFieldMeta(fieldID, index));\n\n\t\treturn fieldOptions;\n    }\n\n    getRecordIDs() : Array<RecordID> {\n        return this.propsStore.getRecordOrder();\n    }\n\n\tgetFieldIDsOrder() : Array<FieldID> {\n\t\treturn this.getFieldIDs()\n\t}\n\t\n    getVisibleRecordCount() : number {\n        const recordIDs = this.getRecordIDs();\n        return recordIDs.length;\n    }\n\n\tgetVisibleFieldCount()\t: number {\n\t\treturn this.getVisibleFieldIDs().length;\n\t}\n\n\tisSortApplied() {\n\t\treturn false;\n\t}\n\n\tisFilterApplied(): boolean {\n\t\treturn false;\n\t}\n\n\tgetFieldSort(fieldID: FieldID): false | 1 | 2 {\n\t\treturn false\n\t}\n\n\tisFieldExists(fieldID: FieldID) : boolean {\n\t\treturn !!this.propsStore.getField(fieldID);\n\t}\n\n\tisFirstColumn(fieldID : FieldID) : boolean {\n\t\tconst fieldIDs = this.getFieldIDsOrder();\n\t\treturn fieldIDs.length > 0 ? fieldIDs[0] === fieldID : false;\n\t}\n\n\tisFieldEphiCompliant(fieldID: FieldID) : boolean {\n\t\tconst field = this.propsStore.getField(fieldID);\n\t\treturn field?.isEphiCompliant?.() ?? false;\n\t}\n\n\tgetVisibleFieldIDs() : Array<FieldID> {\n\t\tconst fieldIDs = this.getFieldIDs();\n\t\treturn fieldIDs.filter((fieldID: FieldID) => this.getFieldWidth(fieldID) > 0 && !this.isFieldEphiCompliant(fieldID));\n\t}\n\n\tgetHiddenFieldIDs(): Array<FieldID> {\n\t\tconst fieldIDs = this.getFieldIDs();\n\t\treturn fieldIDs.filter((fieldID: FieldID) => this.getFieldWidth(fieldID) <= 0 || this.isFieldEphiCompliant(fieldID));\n\t}\n\n    fetchRowData(recordIDs: Array<RecordID>, fieldIDs: Array<FieldID>): Promise<any> {\n\t\tconst tableID = this.getActiveTableID();\n\t\treturn this.interacter.loadData(tableID!, recordIDs, fieldIDs)\n    }\n\n\tcheckIfFieldHasDependency(fieldID: FieldID) {\n\t\tconst field = this.propsStore.getField(fieldID);\n\t\treturn field.getType().hasDependency();\n\t}\n\n\tloadFieldDependency(fieldID: FieldID, callback: CallableFunction): void {\n\t\tconst field = this.propsStore.getField(fieldID);\n\t\tfield.getType().loadDependency(this.getActiveBaseID(), this.getActiveTableID(), \"\", callback);\n\t}\n\n\tgetRecordCommentCount(recordID: RecordID): number {\n\t\treturn 0;\n\t}\n\n    getRecordIDByIdx(rowIndex: number) : RecordID {\n        const recordIds    = this.propsStore.getRecordOrder();\n        return recordIds[rowIndex];\n    }\n\n\tgetRecordIndexByID(recordID: RecordID) {\n\t\tconst recordIds = this.propsStore.getRecordOrder()\n        return recordIds.indexOf(recordID);\n\t}\n\n    getFieldIDByIdx(columnIndex : number) : FieldID {\n        const fieldIDs = this.propsStore.getFieldOrder();\n        return fieldIDs[columnIndex];\n    }\n\n    getFieldIndexByFieldID(fieldID: FieldID) : number {\n\t\tconst fieldIDs = this.propsStore.getFieldOrder();\n\t    return fieldIDs.indexOf(fieldID);\n    }\n\n    getFieldTypeByFieldID(fieldID : FieldID) {\n        const field = this.propsStore.getField(fieldID)\n        return field.getType().getType();\n    }\n\n    getRecordHeight() : number {\n        return this.propsStore.getRecordHeight();\n    }\n\n    getRemainingRecordCount() : number {\n        return 0\n    }\n\n    getRecordCount() : number {\n        return this.getRecordIDs().length;\n    }\n\n    isPremiumField(fieldID : FieldID) : boolean {\n\t\treturn false;\n    }\n\n    getRecordColor(recordID: RecordID) : Color | null {\n\t\treturn null;\n\t}\n\n\tgetFieldValues(fieldID: FieldID): Promise<object[]> {\n\t\treturn this.interacter.loadData(this.getActiveTableID(), this.getRecordIDs(), [fieldID])\n\t}\n\n\tgetGridUserRole() : Roles {\n\t\treturn GRID_VIEWER_ROLE;\n\t}\n\n\t/**\n\t * TODO: get user role from common function - \n\t * @returns Current User Role for Context menu only \n\t */\n\tgetCurrentUserRole() {\n\t\treturn \"view-viewer\"\n\t}\n\n\tgetFieldHeaderContextMenuOptions(fieldID: FieldID): IContextMenuOptionValueHolder[][] {\n\t\treturn [];\n\t}\n\n\tgetFieldSummaryContextMenuOptions(fieldID: FieldID): IContextMenuOptionValueHolder[][] {\n\t\treturn []\n\t}\n\n\tgetRecordHeaderContextMenuOptions(recordID: RecordID, isMultipleRecordsSelected: boolean): IContextMenuOptionValueHolder[][] {\n\t\treturn []\n\t}\n\n\tgetCellContextMenuOptions(recordRange: RecordID[], fieldRange: FieldID[], isMultipleRecordsSelected: boolean, isMultipleFieldsSelected: boolean): IContextMenuOptionValueHolder[][] {\n\t\treturn []\n\t}\n\n\tisPermissibleAction(actionNumber: TableActionNumber) {\n\t\treturn false;\n\t}\n\n\tisBaseEnabled() {\n\t\treturn true;\n\t}\n\n\tisReadOnlyUser() {\n\t\treturn true;\n\t}\n\n\tisReadWriteUser() {\n\t\treturn false;\n\t}\n\n\tgetRatingFieldMaxCount(fieldID: FieldID) {\n\t\tconst fieldMeta = this.getFieldMeta(fieldID, -1);\n\t\treturn fieldMeta.get('fieldTypeMeta')?.getMax();\n\t}\n\n\tfetchLinkFieldRecordMeta(fieldID: FieldID, onSuccess:CallableFunction, onFailure:CallableFunction) {\n\t}\n\n\tisPrimaryField(fieldID : FieldID) : boolean {\n\t\treturn this.propsStore.getPrimaryFieldID() === fieldID;\n\t}\n\n\tgetPinPosition(fieldID : FieldID) : 'left' | 'right' | 'center' {\n\t\t//an ePHI field is emitted with hidden:true, but a left pinned column is rendered from its own\n\t\t//container - pinning one resurfaces it, so an ePHI field must never be pinned.\n\t\t//The main grid never hits this because its primary field cannot be hidden; in Snap the server\n\t\t//force hides ePHI fields (width 0) while this still asked for 'left', so the two conflicted.\n\t\tif(this.isFieldEphiCompliant(fieldID)) {\n\t\t\treturn 'center'\n\t\t}\n\n\t\tconst isPrimaryField = this.isPrimaryField(fieldID);\n\t\tif(isPrimaryField) {\n        \t// const pinnedWidth = Math.round(0.825 * window.innerWidth - 230);\n\t\t\tconst pinnedWidth = Math.round(0.65 * this.container.clientWidth);\n\t\t\tconst fieldWidth  = this.getFieldWidth(fieldID);\n\t\t\treturn (fieldWidth >= pinnedWidth) ? 'center' : 'left'\n\t\t} else {\n\t\t\treturn 'center'\n\t\t}\n\t}\n\n\tgetField(fieldID : FieldID) {\n\t\treturn this.propsStore.getField(fieldID)\n\t}\n\n\tisRecordLimitReached() {\n\t\treturn true;\n\t}\n\n\tviewportRegister(startRow: number, endRow: number) {\n\t}\n\n\tgetExtraRowRendererParams() {\n\t\tconst baseID\t\t= this.getActiveBaseID();\n\t\tconst tableID\t\t= this.getActiveTableID();\n\t\treturn {baseID, tableID};\n\t}\n\n\tisEnterNavigatesVertically(fieldType: FieldTypeConstant) {\n\t\treturn false;\n\t}\n\n\tgetFieldCellRenderer() {\n\t\treturn SnapCell\n\t}\n\n\tgetFieldEditCellRenderer() {\n\t\treturn SnapEditCell;\n\t}\n\n\tgetFieldHeaderCellRenderer() {\n\t\treturn SnapGridFieldHeaderCell;\n\t}\n\n\tgetTimeZone() {\n\t\treturn this.interacter.getTimeZone();\n\t}\n\n\tgetFCDataProvider() {\n\t\treturn new SnapGridDataProvider.FCDataProvider(this);\n\t}\n\n\tprivate static FCDataProvider = class implements IFCConfigDataProvider {\n\t\tprivate readonly gridDataProvider: SnapGridDataProvider;\n\t\tconstructor(gridDataProvider: SnapGridDataProvider) {\n\t\t\tthis.gridDataProvider = gridDataProvider;\n\t\t}\n\n\t\tgetBaseID() {\n\t\t\treturn this.gridDataProvider.getActiveBaseID();\n\t\t}\n\n\t\tgetCurrentUserRole() : string {\n\t\t\treturn this.gridDataProvider.getGridUserRole();\n\t\t}\n\n\t\tgetCollaboratorDS() : any {\n\t\t\treturn this.gridDataProvider.interacter.getCollaboratorDS();\n\t\t}\n\n\t\tgetAllCollaboratorIDs(collaboratorDS : any) : never[] {\n\t\t\treturn getAllCollaboratorIDs(this.gridDataProvider.interacter.getCollaboratorDS());\n\t\t}\n\n\t\tgetAllCollaboratorValues(collaboratorOptionIDs : any, collaboratorDS : any) : Array<COLLABORATOR_OPTION_TYPE> | [] {\n\t\t\treturn getAllCollaboratorValues(collaboratorOptionIDs, collaboratorDS);\n\t\t}\n\n\t\tgetCollaboratorValue(value : any, collaboratorDS : any) : COLLABORATOR_OPTION_TYPE {\n\t\t\treturn getCollaboratorValue(value, collaboratorDS);\n\t\t}\n\n\t\tgetSentimentMeta(sentimentID : string) : any {\n\t\t\treturn this.gridDataProvider.interacter.getSentimentMeta(sentimentID);\n\t\t}\n\n\t\tgetLocale() : string {\n\t\t\treturn this.gridDataProvider.interacter.getLocale();\n\t\t}\n\t\t\n\t\tgetAttachmentsDS(attachmentIDs : string[]) : any {\n\t\t\treturn this.gridDataProvider.interacter.getAttachmentsDS(attachmentIDs);\n\t\t}\n\n\t\tgetMultiSelectDS(multiSelectID : string) : any {\n\t\t\treturn this.gridDataProvider.interacter.getMultiSelectDS(multiSelectID);\n\t\t}\n\n\t\tgetAttachmentDS(attachmentID : string) : any {\n\t\t\treturn this.gridDataProvider.interacter.getAttachmentsDS([attachmentID]).get(attachmentID);\n\t\t}\n\n\t\tgetTimeZone() : string {\n\t\t\treturn this.gridDataProvider.interacter.getTimeZone();\n\t\t}\n\t}\n}\n\n","import { IAppendOnlyHtml } from \"../../../../../Dom/Middle/AddFieldPanel/_auxillaries/IAppendOnlyHtml\";\nimport { FieldTypeNumber } from \"../../../../../Dom/Middle/AddFieldPanel/_auxillaries/Types\";\nimport { getTemplate } from \"../../../../../TemplatesForAll.js\";\nimport { Callback, CellValue, FieldID, FilterCondition, FilterID, FilterOperator, Position, RecordID } from \"../../../../../Types\";\nimport { createDGInteractor } from \"../../../../../View/GridView/DGInteractor\";\nimport { CSS_CLASSNAME_RECORDHEIGHT_EXTRALARGE, CSS_CLASSNAME_RECORDHEIGHT_LARGE, CSS_CLASSNAME_RECORDHEIGHT_MEDIUM, CSS_CLASSNAME_RECORDHEIGHT_SMALL, RECORDHEIGHT_EXTRALARGE, RECORDHEIGHT_LARGE, RECORDHEIGHT_MEDIUM, RECORDHEIGHT_SMALL } from \"../../../../../View/GridView/GridConstants\";\nimport { IDGInteractor } from \"../../../../../View/GridView/Main/Interface/IDGInteractor.js\";\nimport { IGridEventHandler } from \"../../../../../View/GridView/Main/Interface/IGridEventHandler.js\";\nimport { IGridRecordHandler } from \"../../../../../View/GridView/Main/Interface/IGridRecordHandler.js\";\nimport { IGridRequestHandler } from \"../../../../../View/GridView/Main/Interface/IGridRequestHandler.js\";\nimport { ITablesRecordDefinitionConfig } from \"../../../../../View/GridView/Main/Interface/ITablesGridConfig\";\nimport { getMessage } from \"../../../../Utility/utility\";\nimport { SnapGridConstructor } from \"./DomGrid/SnapGridConstructor\";\nimport { GridViewDataStore } from \"./GridViewDataStore\";\nimport { IGridInteracter } from \"./IGridInteracter\";\nimport { SnapGridDataProvider } from \"./SnapGridDataProvider\";\n\nexport class GridReadOnlyView {\n\tprivate dom: HTMLDivElement\n\tprivate defaultDom?: HTMLDivElement\n\n\tprotected gridInstance: SnapGridConstructor | null\n\tprotected dgInteracter: IDGInteractor | null\n\tprotected gridEventHandler: IGridEventHandler | null;\n\tprotected gridDataProvider: SnapGridDataProvider | null;\n\n\tprotected gridHolder: HTMLDivElement;\n\tprotected title: HTMLHeadingElement;\n\n\tprotected interacter: IGridInteracter\n\tprotected propsStore: GridViewDataStore\n\n\tconstructor(parent: IAppendOnlyHtml, interacter: IGridInteracter, propsStore: GridViewDataStore) {\n\t\tthis.interacter = interacter\n\t\tthis.propsStore = propsStore\n\n\t\tconst template = getTemplate(\"gridTemplate\") as HTMLTemplateElement;\n\t\tthis.dom       = template.querySelector(\".ZS-grid\") as HTMLDivElement\n\t\t\n\t\tthis.title      = this.dom.querySelector(\"h3\") as HTMLHeadingElement;\n\t\tthis.gridHolder = this.dom.querySelector(\".ZS-grid-area\") as HTMLDivElement;\n\t\t\n\t\tparent.append(this.dom)\n\n\t\tthis.gridInstance     = null;\n\t\tthis.dgInteracter     = null;\n\t\tthis.gridEventHandler = null;\n\t\tthis.gridDataProvider = null;\n\n\t\tthis.setTitle(propsStore.getTitle())\n\t\tthis.init()\n\t}\n\n\tprivate gridDestory() {\n\t\tthis.gridInstance!.destroy()\n\t\tthis.gridInstance         = null;\n\t\tthis.dgInteracter         = null;\n\t\tthis.gridEventHandler     = null;\n\t\tthis.gridDataProvider     = null;\n\t\tthis.gridHolder.innerHTML = \"\"\n\t}\n\n\tprivate init() {\n\t\tthis.propsStore.getTableID() ? this.showGrid() : this.showDefaultState()\n\t}\n\n\tprivate showDefaultState() {\n\t\tif(!this.defaultDom) {\n\t\t\tconst template  = getTemplate(\"gridDefaultState\") as HTMLTemplateElement\n\t\t\tthis.defaultDom = template.querySelector(\".ZS-default-icon\") as HTMLDivElement\n\t\t}\n\n\t\tthis.gridInstance && this.gridDestory()\n\t\t\n\t\tthis.dom.classList.add(\"ZS-default-state\", \"ZS-grid-defaultstate\")\n\t\tthis.gridHolder.appendChild(this.defaultDom)\n\t}\n\n\tprivate hideDefaultState() {\n\t\tthis.dom.classList.remove(\"ZS-default-state\", \"ZS-grid-defaultstate\")\n\t\tthis.defaultDom?.remove()\n\t}\n\n\tprotected showGrid() {\n\t\tif(this.gridInstance) {return}\n\t\t\n\t\tthis.hideDefaultState()\n\n\t\tconst gridUI = document.createElement(\"div\")\n\t\tgridUI.style.position = \"relative\"\n\t\tgridUI.style.width    = \"100%\"\n\t\tgridUI.style.height   = \"100%\"\n\t\t\n\t\tthis.gridHolder.appendChild(gridUI)\n\n\t\tthis.gridInstance = this.getGridInstance(gridUI)\n\t\tthis.enforceEphiFieldsHidden()\n\t}\n\n\tprivate hideField(fieldID: FieldID) {\n\t\tthis.dgInteracter!.hideFieldsByID([fieldID]);\n\t}\n\n\tprivate getEphiFieldIDs(): FieldID[] {\n\t\treturn this.gridDataProvider!.getFieldIDs().filter((fieldID: FieldID) => this.gridDataProvider!.isFieldEphiCompliant(fieldID));\n\t}\n\n\tprivate enforceEphiFieldsHidden() {\n\t\tif(!this.gridInstance) {return}\n\n\t\tconst ephiFieldIDs = this.getEphiFieldIDs();\n\t\tephiFieldIDs.length && this.dgInteracter!.hideFieldsByID(ephiFieldIDs);\n\t}\n\n\tprivate unhideField(fieldID: FieldID) {\n\t\tthis.dgInteracter!.unhideFieldByID(fieldID);\n\t}\n\n\tsetFieldWidth(fieldID: FieldID, width: number) {\n\t\tif(this.gridDataProvider!.isFieldEphiCompliant(fieldID)) {\n\t\t\tthis.hideField(fieldID);\n\t\t\treturn;\n\t\t}\n\n\t\tif(width === 0) {\n\t\t\tthis.hideField(fieldID);\n\t\t\treturn;\n\t\t}\n\n\t\tthis.dgInteracter!.resizeFieldByID(fieldID, width);\n\t\tif(this.dgInteracter!.isFieldHidden(fieldID)) {\n\t\t\tthis.unhideField(fieldID);\n\t\t\treturn;\n\t\t}\n\n\t\tconst isPrimaryField = this.gridDataProvider!.isPrimaryField(fieldID);\n\t\tconst pinnedFieldID  = this.dgInteracter!.getPinnedFields()[0];\n\t\t\n\t\tif(isPrimaryField) {\n\t\t\tconst pinnedWidth = Math.round(0.25 * this.gridHolder.clientWidth);\n\t\t\tif(width >= pinnedWidth) {\n\t\t\t\tpinnedFieldID === fieldID && this.dgInteracter!.unPinAllFields();\n\t\t\t} else {\n\t\t\t\t!pinnedFieldID && this.dgInteracter!.pinPrimaryField(fieldID, 'left');\n\t\t\t}\n\t\t\tthis.enforceEphiFieldsHidden();\n\t\t}\n\t}\n\n\tsetRecordHeight(recordHeight: number) {\n\t\tthis.dgInteracter!.updateAllRecordHeight(recordHeight);\n\t\tconst recordHeightHandler = this.gridEventHandler!.getGridManagerAsRecordEventHandler();\n        recordHeightHandler.updateRecordHeightCSSClassname(recordHeight);\n\t}\n\n\trerenderView() {\n\t\tif(!this.gridInstance) {return}\n\n\t\tconst primaryFieldID = this.gridDataProvider!.getFieldIDs()[0];\n\t\tif(!primaryFieldID) {return}\n\n\t\tconst pinnedFieldID  = this.dgInteracter!.getPinnedFields()[0];\n\n\t\tif(this.gridDataProvider!.isFieldEphiCompliant(primaryFieldID)) {\n\t\t\tpinnedFieldID === primaryFieldID && this.dgInteracter!.unPinAllFields();\n\t\t\tthis.enforceEphiFieldsHidden();\n\t\t\treturn;\n\t\t}\n\n\t\tconst width = this.gridDataProvider!.getFieldWidth(primaryFieldID);\n\t\tconst pinnedWidth = Math.round(0.25 * this.gridHolder.clientWidth);\n\n\t\tif(width >= pinnedWidth) {\n\t\t\tpinnedFieldID === primaryFieldID && this.dgInteracter!.unPinAllFields();\n\t\t} else {\n\t\t\t!pinnedFieldID && this.dgInteracter!.pinPrimaryField(primaryFieldID, 'left');\n\t\t}\n\n\t\tthis.enforceEphiFieldsHidden();\n\t}\n\n\tsetTitle(title: string) {\n\t\tif(!title) {\n\t\t\tthis.dom.classList.add(\"ZS-title-placeholder\")\n\t\t\tthis.title.textContent = getMessage(\"UI.tables.common.title\")\n\t\t}\n\t\telse {\n\t\t\tthis.dom.classList.remove(\"ZS-title-placeholder\")\n\t\t\tthis.title.textContent = title;\n\t\t\tthis.title.title = title;\n\t\t}\n\t}\n\n\tonBeforeTableChange() {\n\t\tthis.gridInstance && this.gridDestory()\n\t}\n\n\tonBeforeFieldOrderChange() {\n\t\tthis.gridInstance && this.gridDestory()\n\t}\n\n\tonBeforeFieldAndRecordOrderChange() {\n\t\tthis.gridInstance && this.gridDestory()\n\t}\n\n\tonTableChange() {\n\t\tthis.init()\n\t}\n\n\tremoveAllRecords() {\n\t\tconst recordIDs = this.gridDataProvider!.getRecordIDs()\n\t\tthis.dgInteracter!.removeRecordsByID(recordIDs)\n\t}\n\n\tremoveAllColumns() {\n\t\tconst fieldIDs = this.gridDataProvider!.getFieldIDs()\n\t\tthis.dgInteracter!.removeFieldsByID(fieldIDs)\n\t}\n\n\tremoveAllCells() {\n\t\tthis.removeAllRecords()\n\t\tthis.removeAllColumns()\n\t}\n\n\tonRecordsLoad() {\n\t\tconst recordIDs = this.gridDataProvider!.getRecordIDs()\n\t\tconst fieldIDs  = this.gridDataProvider!.getFieldIDs();\n\t\tconst rowDataArray : any = [];\n\t\tconst recoredJson : Array<ITablesRecordDefinitionConfig> = [];\n\t\t\n\t\tthis.gridDataProvider!.fetchRowData(recordIDs, fieldIDs).then((data : any) => {\n\t\t\tfor(const recordID in data) {\n\t\t\t\tconst recordData = data[recordID];\n\t\t\t\trowDataArray.push(recordData)\n\n\t\t\t\tconst rowDefinitions: ITablesRecordDefinitionConfig = {\n\t\t\t\t\trowId: recordID,\n\t\t\t\t\tuserParams : {getRecordColor : (newRecordID: RecordID) => this.gridDataProvider!.getRecordColor(newRecordID)}\n\t\t\t\t}\n\t\t\t\trecoredJson.push(rowDefinitions);\n\t\t\t}\t\t\t\n\t\t});\n\n\t\tthis.dgInteracter!.insertRowAtLast(recordIDs.length, rowDataArray, recoredJson);\n\t}\n\n\tonFieldsLoad() {\n\t\tthis.init()\n\t}\n\n\tonFieldsAndRecordsLoad() {\n\t\tthis.init()\n\t}\n\n\treorderFields(fieldIDs: FieldID[], relativeFieldID: FieldID, position: Position) {\n\t\tthis.dgInteracter!.movableColumnsByID(relativeFieldID, !!position, fieldIDs)\n\t\tthis.enforceEphiFieldsHidden()\n\t}\n\n\tremove() {\n\t\tthis.gridInstance!.destroy()\n\t}\n\n\tprotected getGridInstance(parent: HTMLElement): SnapGridConstructor {\n\t\tthis.gridDataProvider    = new SnapGridDataProvider(this.propsStore, this.interacter, parent);\n\t\tthis.dgInteracter        = createDGInteractor(() =>  this.gridInstance?.getDomGridInstance());        \n\t\tthis.gridEventHandler    = this.getGridEventHandler(parent);\n\t\treturn new SnapGridConstructor(this.gridDataProvider, this.gridEventHandler, parent, this.dgInteracter);\n\t}\n\n\tprotected getGridEventHandler(parent: HTMLElement): IGridEventHandler {\n\t\treturn new GridReadOnlyView.GridEventHandler(this, parent);\n\t}\n\n\tprivate static GridEventHandler = class implements IGridEventHandler {\n\t\tconstructor(private context: GridReadOnlyView, private container: HTMLElement) {}\n\n\t\tgetGridRequestHandler(): IGridRequestHandler {\n\t\t\treturn new GridReadOnlyView.GridEventHandler.GridRequestHandler();\n\t\t}\n\t\tgetGridManagerAsRecordEventHandler(): IGridRecordHandler {\n\t\t\treturn new GridReadOnlyView.GridEventHandler.GridRecordHandler(this.container);\n\t\t}\n\t\topenContextMenu(contextMenuObject: { event: Event; meta: any; type: \"headerCell\" | \"rowHeaderCell\" | \"summarycell\" | \"cell\"; }): void {}\n\t\topenRecordHeaderCellContextMenu(recordID: RecordID, ev: Event): void {}\n\t\topenFieldHeaderCellContextMenu(fieldID: FieldID, ev: Event): void {}\n\t\topenFieldSummaryCellContextMenu(fieldID: FieldID, ev: Event): void {}\n\t\topenCellContextMenu(recordID: RecordID, fieldID: FieldID, ev: Event): void {}\n\t\tonFieldHeaderEditClick(fieldID: FieldID): void {}\n\t\tonInlineColumnFieldEditOpen(fieldID: FieldID): void {}\n\t\tonFieldHeaderInsertLeftClick(fieldID: FieldID): void {}\n\t\tonFieldHeaderInsertRightClick(fieldID: FieldID): void {}\n\t\tcloseContextMenu(): void {}\n\t\texpandRecord(recordID: RecordID): void {}\n\t\texpandLinkedRecord(oppositeTableID: string, oppositeViewID: string, recordID: RecordID): void {}\n\t\t\n\t\tprivate static GridRecordHandler = class implements IGridRecordHandler {\n\t\t\tconstructor(private container: HTMLElement) {}\n\n\t\t\tupdateRecordHeightCSSClassname(recordHeight: number): void {\n\t\t\t\tconst container = this.container;\n\t\n\t\t\t\t// Remove all possible record height classes\n\t\t\t\tcontainer.classList.remove(\n\t\t\t\t\tCSS_CLASSNAME_RECORDHEIGHT_SMALL,\n\t\t\t\t\tCSS_CLASSNAME_RECORDHEIGHT_MEDIUM,\n\t\t\t\t\tCSS_CLASSNAME_RECORDHEIGHT_LARGE,\n\t\t\t\t\tCSS_CLASSNAME_RECORDHEIGHT_EXTRALARGE\n\t\t\t\t);\n\t\n\t\t\t\tswitch (recordHeight) {\n\t\t\t\t\tcase RECORDHEIGHT_SMALL: {\n\t\t\t\t\t\tcontainer.classList.add(CSS_CLASSNAME_RECORDHEIGHT_SMALL);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tcase RECORDHEIGHT_MEDIUM: {\n\t\t\t\t\t\tcontainer.classList.add(CSS_CLASSNAME_RECORDHEIGHT_MEDIUM);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tcase RECORDHEIGHT_LARGE: {\n\t\t\t\t\t\tcontainer.classList.add(CSS_CLASSNAME_RECORDHEIGHT_LARGE);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tcase RECORDHEIGHT_EXTRALARGE: {\n\t\t\t\t\t\tcontainer.classList.add(CSS_CLASSNAME_RECORDHEIGHT_EXTRALARGE);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tdefault: {\n\t\t\t\t\t\tcontainer.classList.add(CSS_CLASSNAME_RECORDHEIGHT_SMALL);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tprivate static GridRequestHandler = class implements IGridRequestHandler {\n\t\t\tonMarkAsPrimaryField(fieldID: FieldID): void {}\n\t\t\tonFieldResize(fieldId: any, fieldWidth: any): void {}\n\t\t\tonFieldNameChange(fieldId: string, name: string): void {}\n\t\t\tonUpgradeClick(fieldID: FieldID): void {}\n\t\t\tonAutofitClick(fieldID: FieldID, fieldWidth: number): void {}\n\t\t\tonDuplicateField(fieldID: FieldID): void {}\n\t\t\tonDuplicateWithoutDataField(fieldID: FieldID): void {}\n\t\t\tonCutField(fieldID: FieldID[]): void {}\n\t\t\tonCopyField(fieldID: FieldID[]): void {}\n\t\t\tonPasteField(fieldIDs: FieldID[]): void {}\n\t\t\tonHideField(fieldID: FieldID): void {}\n\t\t\tonSortAscendingField(fieldID: FieldID): void {}\n\t\t\tonSortDescendingField(fieldID: FieldID): void {}\n\t\t\tonInsertRecord(recordID: RecordID): void {}\n\t\t\tonDeleteField(fieldID: FieldID, showLoader: () => void, hideLoader: () => void): void {}\n\t\t\tonInsertAboveRecord(recordID: RecordID, successCallback: Function, failureCallBack: Function): void {}\n\t\t\tonInsertBelowRecord(recordID: RecordID, successCallback: Function, failureCallBack: Function): void {}\n\t\t\tonDuplicateRecord(recordID: RecordID, successCallback: Function, failureCallBack: Function): void {}\n\t\t\tonCutRecord(recordID: RecordID[]): void {}\n\t\t\tonCutRecordInRange(recordID: RecordID[][]): void {}\n\t\t\tonCopyRecord(recordID: RecordID[]): void {}\n\t\t\tonCopyRecordInRange(recordIDsRanges: RecordID[][]): void {}\n\t\t\tonCopyAllRecord(): void {}\n\t\t\tonPasteRecord(recordIDs: RecordID[]): void {}\n\t\t\tonPasteRecordInRange(recordIDs: RecordID[][]): void {}\n\t\t\tonDeleteRecord(deleteType: number, recordID: RecordID[], showLoader: () => void, hideLoader: () => void): void {}\n\t\t\tonCutCell(recordIDs: RecordID[], fieldIDs: FieldID[]): void {}\n\t\t\tonCopyCell(recordIDs: RecordID[], fieldIDs: FieldID[]): void {}\n\t\t\tonPasteCell(recordIDs: RecordID[], fieldIDs: FieldID[]): void {}\n\t\t\tonFilterCellInsertFilterAction(fieldID: FieldID, primaryCondition: FilterCondition, filterValues: string[], logicalOperator: FilterOperator, relativeFilterID: FilterID, secondaryCondition: FilterCondition | undefined, successCallback: Callback): void {}\n\t\t\tonFilterCellCreateFilterAction(fieldID: FieldID, primaryCondition: FilterCondition, filterValues: string[], secondaryCondition: FilterCondition | undefined, successCallback: Callback): void {}\n\t\t\tonFilterRange(recordRange: RecordID[], fieldRange: FieldID[]): void {}\n\t\t\tonAverageFieldSummary(fieldID: FieldID): void {}\n\t\t\tonCheckedFieldSummary(fieldID: FieldID): void {}\n\t\t\tonDateRangeInDaysFieldSummary(fieldID: FieldID): void {}\n\t\t\tonDateRangeInMonthsFieldSummary(fieldID: FieldID): void {}\n\t\t\tonEarliestDateFieldSummary(fieldID: FieldID): void {}\n\t\t\tonEmptyFieldSummary(fieldID: FieldID): void {}\n\t\t\tonFilledFieldSummary(fieldID: FieldID): void {}\n\t\t\tonLatestDateFieldSummary(fieldID: FieldID): void {}\n\t\t\tonMaxFieldSummary(fieldID: FieldID): void {}\n\t\t\tonMedianFieldSummary(fieldID: FieldID): void {}\n\t\t\tonMinFieldSummary(fieldID: FieldID): void {}\n\t\t\tonNoneFieldSummary(fieldID: FieldID): void {}\n\t\t\tonPercentCheckedFieldSummary(fieldID: FieldID): void {}\n\t\t\tonPercentEmptyFieldSummary(fieldID: FieldID): void {}\n\t\t\tonPercentFilledFieldSummary(fieldID: FieldID): void {}\n\t\t\tonPercentUncheckedFieldSummary(fieldID: FieldID): void {}\n\t\t\tonPercentUniqueFieldSummary(fieldID: FieldID): void {}\n\t\t\tonRangeFieldSummary(fieldID: FieldID): void {}\n\t\t\tonStandardDeviationFieldSummary(fieldID: FieldID): void {}\n\t\t\tonSumFieldSummary(fieldID: FieldID): void {}\n\t\t\tonUncheckedFieldSummary(fieldID: FieldID): void {}\n\t\t\tonUniqueFieldSummary(fieldID: FieldID): void {}\n\t\t\tonCellSubmit(recordID: RecordID, fieldID: FieldID, cellValue: CellValue): void {}\n\t\t\tonAddCommentRecord(recordID: RecordID): void {}\n\t\t\tonExpandRecord(recordID: RecordID): void {}\n\t\t\tonOpenFieldEditDialog(fieldID: FieldID, domRect: DOMRect): void {}\n\t\t\tonFind(): void {}\n\t\t\tonFindAndReplace(): void {}\n\t\t\tonOpenRecordHeightDialog(): void {}\n\t\t\tonInitiatePrint(): void {}\n\t\t\tonPasteRecordAction(recordIDs: RecordID[], clipBoardDom: Element, clipBoardData: string, successCallBack: Callback, failureCallBack: Callback): void {}\n\t\t\tonPasteFieldAction(fieldIDs: FieldID[], clipBoardDom: Element, clipBoardData: string, successCallBack: Callback, failureCallBack: Callback): void {}\n\t\t\tonPasteWithRangeAction(recordIDs: RecordID[], fieldIDs: FieldID[], clipBoardDom: Element, clipBoardData: string, successCallBack: Callback, failureCallBack: Callback): void {}\n\t\t\tonClearRecordAction(recordIDs: RecordID[]): void {}\n\t\t\tonClearRecordWithRangeAction(recordIDs: RecordID[][]): void {}\n\t\t\tonClearFieldAction(fieldIDs: FieldID[]): void {}\n\t\t\tonClearRangeAction(recordIDs: RecordID[], fieldIDs: FieldID[]): void {}\n\t\t\tonMultipleDataSubmit(recordIDs: RecordID[], fieldIDs: FieldID[], cellValue: CellValue): void {}\n\t\t\tonLoadData(recordID: RecordID, fieldID: FieldID, successCallback: Callback): void {}\n\t\t\tonGridPasteSuccessEvent(): void {}\n\t\t\tonGridPasteFailureEvent(): void {}\n\t\t\tonCellDataUpdate(recordID: RecordID, fieldID: FieldID, cellValue: any): void {}\n\t\t\tcreateNewOption(recordID: RecordID, fieldID: FieldID, selectionID: string, newOptionName: string, onSuccess: CallableFunction, onFailure: CallableFunction): void {}\n\t\t\tcreateNewOptionWithName(recordID: RecordID, fieldID: FieldID, selectionID: string, newOptionName: string, onSuccess: CallableFunction, onFailure: CallableFunction): void {}\n\t\t\tonAlterRecordOrder(targetIDs: RecordID[], relativeID: RecordID, position: \"before\" | \"after\"): void {}\n\t\t\tonAlterFieldOrder(targetIDs: FieldID[], relativeID: FieldID, position: \"before\" | \"after\"): void {}\n\t\t\tinsertCellUserPresenceAction(recordID: RecordID, fieldID: FieldID, userPresence: string, onSuccess: () => void, onFailure: () => void): void {}\n\t\t\tupdateCellUserPresenceAction(recordID: RecordID, fieldID: FieldID, userPresence: string, onSuccess: () => void, onFailure: () => void): void {}\n\t\t\tonAddFieldPlusButtonClick(count: number, fieldType: FieldTypeNumber, onSuccess: () => void, onFailure: () => void): void {}\n\t\t\tcreateNewLinkRecord(createNewRecordParams: any): void {}\n\t\t\tgetCopyToaster(): Toaster {\n\t\t\t\treturn new Toaster();\n\t\t\t}\n\t\t}\n\t}\n}","import { Field } from \"../../../../../DataStore/DS/Storage/DSField\";\nimport { FieldID, Position, RecordID, TableID } from \"../../../../../Types\";\nimport { isNotNullOrUndefined, isNotUndefined } from \"../../../../Utility/utility\";\nimport { GridRenderProps, RecordHeight } from \"./GridType\";\n\nexport class GridViewDataStore {\n\tprotected tableID: TableID | null\n\tprotected title: string\n\tprotected fieldOrder: FieldID[]\n\tprotected recordOrder: RecordID[]\n\tprotected recordHeight: number\n\tprotected fields: {\n\t\t[x: FieldID]: Field\n\t}\n\tprotected fieldWidth: {\n\t\t[x: FieldID]: number\n\t}\n\tprotected primaryFieldID: FieldID | null;\n\n\tconstructor(gridRenderProps?: GridRenderProps) {\n\t\tthis.title = gridRenderProps?.title ?? \"\"\n\n\t\tthis.tableID = gridRenderProps?.tableID ?? null\n\t\tthis.fieldOrder = gridRenderProps?.fieldOrder ?? []\n\t\tthis.fieldWidth = gridRenderProps?.fieldsWidth ?? {}\n\t\tthis.recordOrder = gridRenderProps?.recordOrder ?? []\n\t\tthis.recordHeight = gridRenderProps?.recordHeight ?? 0\n\t\tthis.fields = gridRenderProps?.fields ?? {}\n\t\tthis.primaryFieldID = gridRenderProps?.primaryFieldID ?? null;\n\t}\n\n\treset() {\n\t\tthis.title = \"\"\n\t\tthis.tableID = null\n\t\tthis.fieldOrder = []\n\t\tthis.fieldWidth = {}\n\t\tthis.recordOrder = []\n\t\tthis.recordHeight = 0\n\t\tthis.fields = {}\n\t\tthis.primaryFieldID = null;\n\t}\n\n\tsetRenderProps(gridRenderProps: Partial<GridRenderProps>) {\n\t\tif(isNotUndefined<TableID>(gridRenderProps.tableID)) {\n\t\t\tif(gridRenderProps.tableID === null) {\n\t\t\t\tthis.reset()\n\t\t\t}\t\n\t\t\tthis.tableID = gridRenderProps.tableID\n\t\t}\n\t\tisNotNullOrUndefined<string>(gridRenderProps.title) && (this.title = gridRenderProps.title)\n\t\tisNotNullOrUndefined<FieldID[]>(gridRenderProps.fieldOrder) && (this.fieldOrder = gridRenderProps.fieldOrder)\n\t\tisNotNullOrUndefined<RecordID[]>(gridRenderProps.recordOrder) && (this.recordOrder = gridRenderProps.recordOrder)\n\t\tisNotNullOrUndefined<RecordHeight>(gridRenderProps.recordHeight) && (this.recordHeight = gridRenderProps.recordHeight)\n\t\tisNotNullOrUndefined<{[x: FieldID]: number}>(gridRenderProps.fieldsWidth) && (this.fieldWidth = gridRenderProps.fieldsWidth)\n\t\tisNotNullOrUndefined<{[x: FieldID]: Field}>(gridRenderProps.fields) && (this.fields = gridRenderProps.fields)\n\t\tisNotNullOrUndefined<FieldID | null>(gridRenderProps.primaryFieldID) && (this.primaryFieldID = gridRenderProps.primaryFieldID);\n\t}\n\n\tgetFieldOrder(): FieldID[] {\n\t\treturn this.fieldOrder.slice(0)\n\t}\n\n\tgetRecordOrder(): RecordID[] {\n\t\treturn this.recordOrder.slice(0)\n\t}\n\n\tgetRecordHeight(): number {\n\t\treturn this.recordHeight\n\t}\n\n\tgetFieldWidth(fieldID: FieldID): number {\n\t\t//default to 0 (hidden) like DSGrid.getFieldWidth does - an undefined width is neither > 0 nor\n\t\t//<= 0, which would leave the field out of both the visible and the hidden list and render it\n\t\treturn this.fieldWidth[fieldID] ?? 0\n\t}\n\n\tsetFieldWidth(fieldID: FieldID, width: number): void {\n\t\tthis.fieldWidth[fieldID] = width\n\t}\n\n\tsetFieldOrder(fieldOrder: FieldID[]): void {\n\t\tthis.fieldOrder = fieldOrder.slice(0)\n\t}\n\n\tsetRecordOrder(recordOrder: RecordID[]): void {\n\t\tthis.recordOrder = recordOrder\n\t}\n\n\tsetRecordHeight(recordHeight: number): void {\n\t\tthis.recordHeight = recordHeight\n\t}\n\n\tgetTitle(){\n\t\treturn this.title\n\t}\n\n\tsetTitle(title: string){\n\t\tthis.title = title\n\t}\n\n\tgetTableID() {\n\t\treturn this.tableID\n\t}\n\n\tgetFieldName(fieldID: FieldID) {\n\t\treturn this.fields[fieldID].getName()\n\t}\n\n\tgetFieldType(fieldID: FieldID) {\n\t\treturn this.fields[fieldID].getType().getType()\n\t}\n\n\tgetFieldStatus(fieldID: FieldID) {\n\t\treturn this.fields[fieldID].getStatus()\n\t}\n\n\tgetField(fieldID: FieldID) {\n\t\treturn this.fields[fieldID]\n\t}\n\n\tgetFieldInstance(fieldID: FieldID) {\n\t\treturn this.fields[fieldID].getType()\n\t}\n\n\tgetPrimaryFieldID() {\n\t\treturn this.primaryFieldID;\n\t}\n\n\treorderFields(fieldIDs: FieldID[], relativeFieldID: FieldID, position: Position) {\n\t\tlet relativeFieldIndex = this.fieldOrder.indexOf(relativeFieldID);\n\t\tif(relativeFieldIndex === -1) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Remove the fields being reordered from their current positions\n\t\tfor (const fieldID of fieldIDs) {\n\t\t\tconst currentIndex = this.fieldOrder.indexOf(fieldID);\n\t\t\tif (currentIndex !== -1) {\n\t\t\t\tthis.fieldOrder.splice(currentIndex, 1);\n\t\t\t\t// Adjust relativeFieldIndex if the removed field was before it\n\t\t\t\tif (currentIndex < relativeFieldIndex) {\n\t\t\t\t\trelativeFieldIndex--;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Insert the fields at the new position\n\t\tconst insertIndex = position ? relativeFieldIndex + 1 : relativeFieldIndex;\n\t\tthis.fieldOrder.splice(insertIndex, 0, ...fieldIDs);\n\t}\n}\n","import { IAppendOnlyHtml } from \"../../../../../Dom/Middle/AddFieldPanel/_auxillaries/IAppendOnlyHtml\";\nimport { FieldID, Position, TableID } from \"../../../../../Types\";\nimport { isNotNullOrUndefined, isNotUndefined } from \"../../../../Utility/utility\";\nimport { IComponentViewManager } from \"../IComponentViewManager\";\nimport { GridReadOnlyView } from \"./GridReadOnlyView\";\nimport { GridRenderProps, RecordHeight } from \"./GridType\";\nimport { GridViewDataStore } from \"./GridViewDataStore\";\nimport { IGridInteracter } from \"./IGridInteracter\";\n\nexport class GridViewManager implements IComponentViewManager<GridRenderProps> {\n\tprotected gridUI?: GridReadOnlyView\n\tprotected interacter: IGridInteracter\n\tprotected propsStore: GridViewDataStore\n\t\n\tconstructor(interacter: IGridInteracter) {\n\t\tthis.interacter = interacter\n\t\tthis.propsStore = new GridViewDataStore()\n\t}\n\n\tasync appendViewTo(parent: IAppendOnlyHtml, gridProps: GridRenderProps) {\n\t\tthis.propsStore.setRenderProps(gridProps)\n\t\tthis.gridUI = this.getGridInstance(parent)\n\t}\n\n\tupdate(gridProps: Partial<GridRenderProps>): void {\n\t\tthis.beforePropertyStoreUpdate(gridProps)\n\t\tthis.updatePropertyStore(gridProps)\n\t\tthis.afterPropertyStoreUpdate(gridProps)\n\t}\n\n\tprotected updatePropertyStore(gridProps: Partial<GridRenderProps>) {\n\t\tthis.propsStore.setRenderProps(gridProps)\n\t}\n\n\tprotected beforePropertyStoreUpdate(gridProps: Partial<GridRenderProps>) {\n\t\tif(isNotUndefined<TableID>(gridProps.tableID) && gridProps.tableID !== this.propsStore.getTableID()) { \n\t\t\tthis.onBeforeTableChange()\n\t\t\treturn\n\t\t}\n\n\t\tif(isNotNullOrUndefined(gridProps.fieldOrder) && isNotNullOrUndefined(gridProps.recordOrder)) {\n\t\t\tthis.onFieldAndRecordBeforeOrderChange()\n\t\t}\n\t\telse {\n\t\t\tisNotNullOrUndefined(gridProps.fieldOrder) && this.onFieldBeforeOrderChange()\n\t\t\tisNotNullOrUndefined(gridProps.recordOrder) && this.onRecordBeforeOrderChange()\n\t\t}\n\t}\n\n\tprotected afterPropertyStoreUpdate(gridProps: Partial<GridRenderProps>) {\n\t\n\t\tisNotNullOrUndefined<string>(gridProps.title) && this.onTitleChange(gridProps.title)\n\n\t\tif(isNotUndefined<TableID>(gridProps.tableID)) { \n\t\t\tthis.onTableChange(gridProps.tableID)\n\t\t\treturn\n\t\t}\n\t\t\n\t\tif(isNotNullOrUndefined(gridProps.fieldOrder) && isNotNullOrUndefined(gridProps.recordOrder)) {\n\t\t\tthis.onFieldAndRecordOrderChange()\n\t\t}\n\t\telse {\n\t\t\tisNotNullOrUndefined(gridProps.fieldOrder) && this.onFieldOrderChange()\n\t\t\tisNotNullOrUndefined(gridProps.recordOrder) && this.onRecordOrderChange()\n\t\t}\n\n\t\tisNotNullOrUndefined<RecordHeight>(gridProps.recordHeight) && this.onRecordHeightChange(gridProps.recordHeight)\n\t}\n\n\tprotected onFieldAndRecordBeforeOrderChange() {\n\t\tthis.gridUI!.onBeforeFieldAndRecordOrderChange()\n\t}\n\n\tprotected onFieldBeforeOrderChange() {\n\t\tthis.gridUI!.onBeforeFieldOrderChange()\n\t}\n\n\tprotected onRecordBeforeOrderChange() {\n\t\tthis.gridUI!.removeAllRecords()\n\t}\n\n\tprotected onBeforeTableChange() {\n\t\tthis.gridUI?.onBeforeTableChange()\n\t}\n\n\tupdateFieldWidth(fieldID: FieldID, width: number): void {\n\t\tthis.propsStore.setFieldWidth(fieldID, width)\n\t\tthis.gridUI!.setFieldWidth(fieldID, width)\n\t}\n\n\trerenderView(): void {\n\t\tthis.gridUI?.rerenderView()\n\t}\n\n\tprotected onTitleChange(title: string) {\n\t\tthis.gridUI!.setTitle(title)\n\t}\n\n\tprotected onFieldAndRecordOrderChange() {\n\t\tthis.gridUI!.onFieldsAndRecordsLoad()\n\t}\n\n\tprotected onFieldOrderChange() {\n\t\tthis.gridUI!.onFieldsLoad()\n\t}\n\n\tprotected onRecordOrderChange() {\n\t\tthis.gridUI!.onRecordsLoad()\n\t}\n\t\n\tprotected onRecordHeightChange(height: RecordHeight) {\n\t\tthis.gridUI!.setRecordHeight(height)\n\t}\n\n\tprotected onTableChange(tableID: TableID | null) {\n\t\tthis.gridUI!.onTableChange()\n\t}\n\n\tprotected getGridInstance(parent: IAppendOnlyHtml): GridReadOnlyView {\n\t\treturn new GridReadOnlyView(parent, this.interacter, this.propsStore)\n\t}\n\n\tprotected reorderFields(fieldIDs: FieldID[], relativeFieldID: FieldID, position: Position) {\n\t\tthis.gridUI!.reorderFields(fieldIDs, relativeFieldID, position)\n\t\tthis.propsStore.reorderFields(fieldIDs, relativeFieldID, position);\n\t}\n\n\tremove() {\n\t\tthis.gridUI?.remove();\n\t}\n}","import { CardPropertiesType } from \"../../LayoutBuilder/LayoutBuilderTypes.js\";\nimport { GRID_PROPERTY } from \"../ComponentPropertyConstants\";\nimport { IComponentViewProvider } from \"../IComponentViewProvider\";\nimport { GridRenderProps } from \"./GridType\";\nimport { GridViewManager } from \"./GridViewManager\";\nimport { IGridInteracter } from \"./IGridInteracter.js\";\n\nexport class GridViewProvider implements IComponentViewProvider<GridRenderProps, IGridInteracter> {\n\tgetComponent(interacter: IGridInteracter) {\n\t\treturn new GridViewManager(interacter);\n\t}\n\n\tgetComponentProperties(): CardPropertiesType {\n\t\treturn {\n\t\t\tminHeightPartition: GRID_PROPERTY.MIN_HEIGHT,\n\t\t\tmaxHeightPartition: GRID_PROPERTY.MAX_HEIGHT,\n\t\t\tminWidthPartition: GRID_PROPERTY.MIN_WIDTH,\n\t\t\tmaxWidthPartition: GRID_PROPERTY.MAX_WIDTH,\n\t\t\tenableDrag: false\n\t\t}\n\t}\n\n\tasync loadComponentFiles() {\n\t\treturn Promise.resolve()\n\t}\n}","import { IAppendOnlyHtml } from \"../../../../../../Dom/Middle/AddFieldPanel/_auxillaries/IAppendOnlyHtml\";\nimport { getTemplateByID } from \"../../../../../../TemplatesForAll.js\";\n\nexport class ROTextEditor {\n\tprivate readonly dom: Element;\n\n\tconstructor(parentElement: IAppendOnlyHtml) {\n\t\tthis.dom = getTemplateByID('snapTextEditorROComponentTemplate', 'component');\n\t\tparentElement.append(this.dom);\n\t}\n\n\t// setters\n\tpublic setHTMLContent(htmlContent: string) {\n\t\tthis.dom.innerHTML = htmlContent;\n\t}\n}\n","import { IAppendOnlyHtml } from \"../../../../../../Dom/Middle/AddFieldPanel/_auxillaries/IAppendOnlyHtml\";\nimport { SnapTextEditorResponse } from \"../../../../../../Types\";\nimport { isNotNullOrUndefined } from \"../../../../../Utility/utility\";\nimport { IComponentViewManager } from \"../../IComponentViewManager\";\nimport { ROTextEditor } from \"./ROTextEditor\";\n\nexport class TextEditorViewManager implements IComponentViewManager<SnapTextEditorResponse> {\n\tprotected roTextEditor?: ROTextEditor;\n\t\n\tpublic async appendViewTo(parent: IAppendOnlyHtml, props: SnapTextEditorResponse) {\n\t\tthis.roTextEditor = new ROTextEditor(parent);\n\t\tprops.html && this.roTextEditor.setHTMLContent(props.html);\n\t}\n\n    public update(componentJSON: Partial<SnapTextEditorResponse>) {\n\t\tisNotNullOrUndefined<string>(componentJSON.html) && this.roTextEditor?.setHTMLContent(componentJSON.html);\n\t}\n\n    public rerenderView() {}\n\tpublic remove() {}\n}\n","import { SnapTextEditorResponse } from \"../../../../../../Types\";\nimport { CardPropertiesType } from \"../../../LayoutBuilder/LayoutBuilderTypes\";\nimport { TEXT_PROPERTY } from \"../../ComponentPropertyConstants\";\nimport { IComponentViewProvider } from \"../../IComponentViewProvider\";\nimport { TextEditorViewManager } from \"./TextEditorViewManager\";\n\nexport class TextEditorViewProvider implements IComponentViewProvider<SnapTextEditorResponse> {\n\tgetComponent() {\n\t\tconst manager = new TextEditorViewManager();\n\t\treturn manager;\n\t}\n\n\tgetComponentProperties(): CardPropertiesType {\n\t\treturn {\n\t\t\tminHeightPartition: TEXT_PROPERTY.MIN_HEIGHT,\n\t\t\tmaxHeightPartition: TEXT_PROPERTY.MAX_HEIGHT,\n\t\t\tminWidthPartition: TEXT_PROPERTY.MIN_WIDTH,\n\t\t\tmaxWidthPartition: TEXT_PROPERTY.MAX_WIDTH,\n\t\t\tenableDrag: false\n\t\t}\n\t}\n}","\nimport { DSAttachmentField } from \"../../../../DataStore/DS/Storage/DSAttachmentField\";\nimport { Collaborator } from \"../../../../DataStore/DS/Storage/DSCollaborator\";\nimport { MultiSelect } from \"../../../../DataStore/DS/Storage/DSMultiSelect\";\nimport { Relationship } from \"../../../../DataStore/DS/Storage/DSRelationship\";\nimport { DSSentimentsField } from \"../../../../DataStore/DS/Storage/DSSentimentsField\";\nimport { IFieldType } from \"../../../../DataStore/DS/Storage/fieldType/FieldType\";\nimport { AttachmentID, BaseID, FieldID, RecordID, RelationshipID, SelectionID, TableID } from \"../../../../Types\";\nimport { ComponentType } from \"../../../SnapTypes\";\nimport { AggregationViewProvider } from \"./Aggregation/AggregationViewProvider\";\nimport { IAggregationViewInteracter } from \"./Aggregation/IAggregationViewInteracter\";\nimport { ChartViewProvider } from \"./Chart/ChartViewProvider\";\nimport { IChartDataInteracter } from \"./Chart/IChartDataInteracter\";\nimport { FieldInfoType } from \"./FieldComponents/Dropdown/FieldDropdown/FieldTypes\";\nimport { GridViewProvider } from \"./Grid/GridViewProvider\";\nimport { IGridInteracter } from \"./Grid/IGridInteracter\";\nimport { IComponentsViewOnlyInteracter } from \"./IComponentsViewOnlyInteracter\";\nimport { IComponentViewOnlyVendor } from \"./IComponentViewOnlyVendor\";\nimport { TextEditorViewProvider } from \"./TextEditor/Implement/TextEditorViewProvider\";\n\nexport class ComponentViewOnlyVendor implements IComponentViewOnlyVendor{\n\n\tprivate readonly chartProvider: ChartViewProvider\n\tprivate readonly aggregationProvider: AggregationViewProvider\n\tprivate readonly textProvider: TextEditorViewProvider\n\tprivate readonly gridProvider: GridViewProvider\n\t\n\tconstructor() {\n\t\tthis.chartProvider       = new ChartViewProvider();\n\t\tthis.aggregationProvider = new AggregationViewProvider();\n\t\tthis.textProvider        = new TextEditorViewProvider();\n\t\tthis.gridProvider\t\t = new GridViewProvider();\n\t}\n\n\tloadComponentFiles(componentType: ComponentType) { \n\t\tswitch(componentType) {\n\t\t\tcase ComponentType.CHART: {\n\t\t\t\treturn this.chartProvider.loadComponentFiles();\n\t\t\t}\n\t\t\tdefault: {\n\t\t\t\treturn Promise.resolve();\n\t\t\t}\n\t\t}\t\n\t}\n\n\tgetComponent(componentType: ComponentType, interacter: IComponentsViewOnlyInteracter) {\n\t\tswitch(componentType) {\n\t\t\tcase ComponentType.CHART: {\n\t\t\t\tconst chartInteracter = new ComponentViewOnlyVendor.ChartViewInteracter(interacter);\n\t\t\t\tconst component = this.chartProvider.getComponent(chartInteracter);\n\t\t\t\treturn component;\n\t\t\t}\n\t\t\tcase ComponentType.AGGREGATION: {\n\t\t\t\tconst aggregationInteracter = new ComponentViewOnlyVendor.AggregationViewInteracter(interacter);\n\t\t\t\tconst component = this.aggregationProvider.getComponent(aggregationInteracter);\n\t\t\t\treturn component;\n\t\t\t}\n\t\t\tcase ComponentType.TEXT: {\n\t\t\t\tconst component = this.textProvider.getComponent();\n\t\t\t\treturn component;\n\t\t\t}\n\t\t\tcase ComponentType.GRID: {\n\t\t\t\tconst gridInteracter = new ComponentViewOnlyVendor.GridViewInteracter(interacter);\n\t\t\t\tconst component = this.gridProvider.getComponent(gridInteracter);\n\t\t\t\treturn component;\n\t\t\t}\n\t\t}\n\t}\n\n\tgetComponentCardProperties(componentType: ComponentType) {\n\t\tswitch(componentType) {\n\t\t\tcase ComponentType.CHART: {\n\t\t\t\treturn this.chartProvider.getComponentProperties();\n\t\t\t}\n\t\t\tcase ComponentType.AGGREGATION: {\n\t\t\t\treturn this.aggregationProvider.getComponentProperties();\n\t\t\t}\n\t\t\tcase ComponentType.TEXT: {\n\t\t\t\treturn this.textProvider.getComponentProperties();\n\t\t\t}\n\t\t\tcase ComponentType.GRID: {\n\t\t\t\treturn this.gridProvider.getComponentProperties();\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate static GridViewInteracter = class implements IGridInteracter {\n\t\tprivate interacter: IComponentsViewOnlyInteracter\n\t\tconstructor(interacter: IComponentsViewOnlyInteracter) {\n\t\t\tthis.interacter = interacter;\n\t\t}\n\n\t\tgetAttachmentsDS(attachmentsID: AttachmentID[]): Map<AttachmentID, DSAttachmentField> {\n\t\t\treturn this.interacter.getAttachmentsDS(attachmentsID);\n\t\t}\n\n\t\tgetMultiSelectDS(multiSelectID: SelectionID): MultiSelect {\n\t\t\treturn this.interacter.getMultiSelectDS(multiSelectID);\n\t\t}\n\n\t\tgetCollaboratorDS(): Collaborator {\n\t\t\treturn this.interacter.getCollaboratorDS();\n\t\t}\n\n\t\tgetSentimentMeta(sentimentID: string): DSSentimentsField {\n\t\t\treturn this.interacter.getSentimentMeta(sentimentID);\n\t\t}\n\n\t\tgetRelationShipDS(relationshipID: RelationshipID): Relationship {\n\t\t\treturn this.interacter.getRelationShipDS(relationshipID);\n\t\t}\n\t\t\n\t\tgetCellValue(tableID: TableID, recordID: RecordID, fieldID: FieldID) {\n\t\t\treturn this.interacter.getCellValue(tableID, recordID, fieldID);\n\t\t}\n\n\t\tgetFieldIcon(fieldInfoType: FieldInfoType): SVGElement {\n\t\t\treturn this.interacter.getFieldIcon(fieldInfoType.fieldType);\n\t\t}\n\n\t\tloadData(tableID: TableID, recordIDs: RecordID[], fieldIDs: FieldID[]): Promise<any> {\n\t\t\treturn this.interacter.loadData(tableID, recordIDs, fieldIDs);\n\t\t}\n\n\t\tgetLayoutBuilderScrollTop(): number {\n\t\t\treturn this.interacter.getLayoutBuilderScrollTop();\n\t\t}\n\n\t\tgetActiveBaseID(): BaseID {\n\t\t\treturn this.interacter.getActiveBaseID();\n\t\t}\n\n\t\tgetTimeZone(): string {\n\t\t\treturn this.interacter.getTimeZone();\n\t\t}\n\n\t\tgetLocale(): string {\n\t\t\treturn this.interacter.getLocale();\n\t\t}\n\n\t\tisEditable(): boolean {\n\t\t\treturn false\n\t\t}\n\n\t\tisViewMode(): boolean {\n\t\t\treturn true\n\t\t}\n\t}\n\n\tprivate static ChartViewInteracter = class implements IChartDataInteracter {\n\t\tprivate interacter: IComponentsViewOnlyInteracter;\n\t\tconstructor(interacter: IComponentsViewOnlyInteracter) {\n\t\t\tthis.interacter = interacter;\n\t\t}\n\n\t\tcanShowRecordLimitErrorMessage(): boolean {\n\t\t\treturn false;\n\t\t}\n\n\t\tgetAttachmentDS(attachmentID: AttachmentID): DSAttachmentField {\n\t\t\treturn this.interacter.getAttachmentsDS([attachmentID]).get(attachmentID)!;\n\t\t}\n\n\t\tgetMultiSelectDS(selectionID: SelectionID): MultiSelect {\n\t\t\treturn this.interacter.getMultiSelectDS(selectionID);\n\t\t}\n\n\t\tgetCollaboratorDS(): Collaborator {\n\t\t\treturn this.interacter.getCollaboratorDS();\n\t\t}\n\n\t\tgetSentimentDS(sentimentID: string): DSSentimentsField {\n\t\t\treturn this.interacter.getSentimentMeta(sentimentID);\n\t\t}\n\n\t\tgetLocale(): string {\n\t\t\treturn this.interacter.getTimeZone();\n\t\t}\n\t}\n\n\tprivate static AggregationViewInteracter = class implements IAggregationViewInteracter  {\n\t\tprivate interacter: IComponentsViewOnlyInteracter;\n\t\tconstructor(interacter: IComponentsViewOnlyInteracter) {\n\t\t\tthis.interacter = interacter;\n\t\t}\n\n\t\tgetTimeZone(): string {\n\t\t\treturn this.interacter.getTimeZone()\n\t\t}\n\n\t\tgetComponentFieldInstance(fieldID: FieldID): IFieldType | null {\n\t\t\treturn this.interacter.getComponentFieldInstance(fieldID);\n\t\t}\n\t}\n}","import { IAppendOnlyHtml } from \"../../../../../../Dom/Middle/AddFieldPanel/_auxillaries/IAppendOnlyHtml\";\nimport { getTemplate } from \"../../../../../../TemplatesForAll.js\";\nimport { IReadOnlyCard } from \"./IReadOnlyCard\";\n\nconst LOADING_STATE_CLASS_NAME = \"ZDCI-element-loader\";\nexport class ReadOnlyCard implements IReadOnlyCard {\n\n    private readonly dom: HTMLElement;\n\n    constructor() {\n        const template = getTemplate(\"cardTemplate\") as HTMLTemplateElement;\n        this.dom = template.querySelector(\".ZDC-card\")!;\n        this.dom.classList.add(\"ZDCI-loader\");\n    }\n\n    showLoading(): void {\n        this.dom.classList.add(LOADING_STATE_CLASS_NAME);\n    }\n\n    hideLoading(): void {\n        this.dom.classList.remove(LOADING_STATE_CLASS_NAME);\n    }\n\n    append(child: HTMLElement): void {\n        this.dom.append(child);\n    }\n\n    appendChild(child: HTMLElement): void {\n        this.dom.appendChild(child);\n    }\n\n    setDragImage(parent: IAppendOnlyHtml): void {\n    }\n\n    appendTo(parent: IAppendOnlyHtml): void {\n        parent.append(this.dom);   \n    }\n\n    getHeightResizeElement(): HTMLElement {\n        return document.createElement(\"div\");\n    }\n    \n    getRightBottomResizeElement(): HTMLElement {\n        return document.createElement(\"div\");\n    }\n\n    getWidthResizeElement(): HTMLElement {\n        return document.createElement(\"div\");    \n    }\n\n    getGrabElementOffsetValues(element: HTMLElement, offsetX: number, offsetY: number): { offsetX: number; offsetY: number; } {\n        return { offsetX: 0, offsetY: 0 };\n    }\n\n    getGrabElements(): HTMLElement[] {\n        return [];\n    }\n\n    setPlaceHolder(parent: IAppendOnlyHtml): void {    \n    }\n} ","import { IAppendOnlyHtml } from \"../../../../../../Dom/Middle/AddFieldPanel/_auxillaries/IAppendOnlyHtml\";\nimport { getTemplate } from \"../../../../../../TemplatesForAll.js\";\nimport { IBoard } from \"../../LayoutBuilderTypes\";\n\nexport class MainBoard implements IBoard {\n\tprivate readonly dom: HTMLDivElement\n\tprivate empty: HTMLDivElement\n\n\tconstructor() {\n\t\tconst template   \t= getTemplate(\"boardTemplate\") as HTMLTemplateElement;\n\t\tthis.dom         \t= template.querySelector(\"#mainboard\") as HTMLDivElement;\n\t\tthis.empty       \t= template.querySelector(\"#empty\") as HTMLDivElement;\n\t}\n\n\tshowEmptyImage(): void {\n\t\tthis.dom.append(this.empty)\n\t}\n\n\thideEmptyImage(): void {\n\t\tthis.empty.remove()\n\t}\n\n\tgetAppendOnly(): IAppendOnlyHtml {\n\t\treturn this.dom;\n\t}\n\n\tappendTo(parent: IAppendOnlyHtml): void {\n\t\tparent.append(this.dom)\n\t}\n\n}\n","import { IAppendOnlyHtml } from \"../../../../Dom/Middle/AddFieldPanel/_auxillaries/IAppendOnlyHtml\";\n\nexport type FieldIDType = string;\nexport type CardIDType = string;\nexport type BoardIDType = string;\n\nexport const enum GridModeType {\n\tALWAYS = \"always\",\n\tNEVER = \"never\",\n\tDRAG_AND_DROP = \"dragAndDrop\",\n\tRESIZE = \"resize\",\n\tMOVEMENT = \"movement\"\n}\n\nexport type LayoutBuilderParameterType = {\n\tfieldContainerHolder: IAppendOnlyHtml,\n\tlayoutBuilderHolder : IAppendOnlyHtml,\n\tinteractor          : ILayoutBuilderInteractor,\n\teventHandler?       : ILayoutBuilderManagerEventHandler,\n\tmainBoardId ?       : BoardIDType,\n\trows ?              : number,\n\tcolumns ?           : number,\n\tgap?                : number,\n\tgridMode?           : GridModeType,\n\tbufferRows?         : number,\n\tminRows?            : number,\n\tmainBoardHeightPx?  : number,\n\tmainBoardWidthPx?   : number\n}\n\nexport type AffectedDataType = Map<CardIDType | BoardIDType, PositionType>;\nexport type PositionType = {row: number, column: number, width: number, height: number};\n\nexport type CardPropertiesType = {\n\tminHeightPartition: number,\n\tmaxHeightPartition: number,\n\tminWidthPartition: number,\n\tmaxWidthPartition: number,\n\tenableDrag: boolean\n}\n\nexport interface IField {\n\tsetDragImage(parent: IAppendOnlyHtml): void;\n\tsetPlaceHolder(parent: IAppendOnlyHtml): void;\n\tgetId(): FieldIDType;\n\tsetContent(parent: IAppendOnlyHtml): void;\n\tgetHeight(): number;\n\tgetWidth(): number;\n}\n\nexport interface ICard {\n\tsetDragImage(parent: IAppendOnlyHtml): void;\n\tappendTo(parent: IAppendOnlyHtml): void;\n\tgetHeightResizeElement(): HTMLElement;\n\tgetRightBottomResizeElement(): HTMLElement;\n\tgetWidthResizeElement(): HTMLElement;\n\tgetGrabElementOffsetValues(element: HTMLElement, offsetX: number, offsetY: number): {offsetX: number, offsetY: number};\n\tgetGrabElements(): HTMLElement[];\n\tsetPlaceHolder(parent: IAppendOnlyHtml): void ;\n}\n\nexport interface IComponentIcon{\n\tappendTo(parent: IAppendOnlyHtml): void;\n\tremove(): void;\n\tappendCloneTo(parent: IAppendOnlyHtml): void \n}\n\nexport interface IBoard {\n\tgetAppendOnly(): IAppendOnlyHtml;\n\tappendTo(parent: IAppendOnlyHtml): void;\n\tshowEmptyImage(): void;\n\thideEmptyImage(): void;\n}\n\nexport interface ILayoutBuilderInteractor {\n\tgetCard(cardId: CardIDType): ICard;\n\tgetBoard(boardId: BoardIDType): IBoard;\n\tgetMainBoard(): IBoard;\n\tgetFieldOrder(): Array<FieldIDType>;\n\tgetFieldProperty(id: FieldIDType): IField;\n\n\tdoesAllowFieldDrag(fieldId: FieldIDType): boolean;\n\tdoesAllowCardDrag(cardId: CardIDType): boolean;\n\tdoesAllowBoardDrag(boardId: BoardIDType): boolean;\n\n\tbeforeFieldDrop(fieldId: FieldIDType, rowPartition: number, columnPartition: number, affectedData: AffectedDataType, parentId: BoardIDType): Promise<{id: CardIDType, properties: CardPropertiesType} | null>;\n\tbeforeCardDrop(cardId: CardIDType, rowPartition: number, columnPartition: number, affectedData: AffectedDataType): boolean;\n\tbeforeCardHeightResize(cardId: CardIDType, heightPartition: number, affectedData: AffectedDataType): boolean;\n\tbeforeCardWidthResize(cardId: CardIDType, widthPartition: number, affectedData: AffectedDataType): boolean;\n\n\tbeforeFieldInsertByDoubleClick(fieldId: FieldIDType, rowPartition: number, columnPartition: number, affectedData: AffectedDataType, parentId: BoardIDType): Promise<{id: CardIDType, properties: CardPropertiesType} | null>;\n    afterFieldInsertByDoubleClick(cardId: CardIDType): void;\n}\n\n\nexport interface ILayoutBuilderManagerEventHandler {\n\tonBeforeMainBoardHeightChangeEvent?(eventResponse: any): void;\n\tonCardClick?(response: any): void;\n\tonBoardClick?(response: any): void;\n\tonCardDoubleClick?(response: any): void;\n\tonBoardDoubleClick?(response: any): void;\n\tonBoardHeightChange?(response: any): void;\n\tonBoardWidthChange?(response: any): void;\n\tonCardHeightChange?(response: any): void;\n\tonCardWidthChange?(response: any): void;\n}\n\nexport interface ILayoutBuilder {\n\tinsertCardWithGravity(cardId: CardIDType, rowPartition: number, columnPartition: number, heightPartition: number, widthPartition: number, properties: CardPropertiesType & {enableDrag: true}, parentId: BoardIDType): AffectedDataType \n\tinsertCardWithoutGravity(cardId: CardIDType,  rowPartition: number, columnPartition: number, heightPartition: number, widthPartition: number, properties: CardPropertiesType & {enableDrag: true}, parentId: BoardIDType): void\n\tremoveCardWithGravity(cardId: CardIDType): AffectedDataType \n\tremoveCardWithoutGravity(cardId: CardIDType): void\n\tmoveCardWithGravity(cardId: CardIDType,  rowPartition: number, columnPartition: number): AffectedDataType\n\tmoveCardWithoutGravity(cardId: CardIDType,  rowPartition: number, columnPartition: number): void\n\tresizeCardWithoutGravity(cardId: CardIDType, heightPartition: number, widthPartition: number) : void\n\tresizeCardWithGravity(cardId: CardIDType, heightPartition: number, widthPartition: number): AffectedDataType\n\trerender(dimension?: {height?: number, width?: number}) : void\n\tresizeBoardWithGravity(boardId: BoardIDType, heightPartition: number, widthPartition: number): AffectedDataType\n\trerenderCard(cardId: CardIDType): void\n\tclearChildren(boardId: BoardIDType) : void\n\trecalculateLayout(): void\n\tscrollToCard(cardId: CardIDType): void;\n\tduplicateCardAtCardBottom(id: CardIDType, newCardID: CardIDType): {affectedItems: AffectedDataType, row: number, column: number};\n}","import { GridModeType } from \"./LayoutBuilderTypes\";\n\nexport const LayoutBuilderConstants = {\n    GAP: 10,\n    GRID_MODE: GridModeType.NEVER,\n    BUFFER_ROWS: 3,\n    // MIN_ROWS: 30,\n    PARTITION_HEIGHT: 30,\n    PARTITION_WIDTH: 30\n} \n\nexport const ReadOnlyLayoutBuilderConstants = {\n    ...LayoutBuilderConstants,\n    GRID_MODE: GridModeType.NEVER\n} ","import { IAppendOnlyHtml } from \"../../../../Dom/Middle/AddFieldPanel/_auxillaries/IAppendOnlyHtml\";\nimport { CardID } from \"../../../../Types\";\nimport { ILayoutReadOnlyBuilderHandlerInteractor } from \"./ILayoutReadOnlyBuilderHandlerInteractor\";\nimport { ReadOnlyLayoutBuilderConstants } from \"./LayoutBuilderConstants\";\nimport { AffectedDataType, BoardIDType, CardIDType, CardPropertiesType, FieldIDType, IBoard, ICard, IField, ILayoutBuilder, ILayoutBuilderInteractor, ILayoutBuilderManagerEventHandler, LayoutBuilderParameterType } from \"./LayoutBuilderTypes\";\n\nexport class LayoutReadOnlyBuilderHandler {\n\n\tprotected readonly layoutBuilder: ILayoutBuilder;\n\tprotected readonly interactor: ILayoutReadOnlyBuilderHandlerInteractor;\n\n\tconstructor(layoutBuilderHolder: IAppendOnlyHtml, interactor: ILayoutReadOnlyBuilderHandlerInteractor, eventHandler: ILayoutBuilderManagerEventHandler) {\n\t\tconst layoutInteracter = new LayoutReadOnlyBuilderHandler.LayoutInteracter(interactor);\n\n\t\t//TODO: need to get RO layout builder instance\n\t\tconst params: LayoutBuilderParameterType = {\n\t\t\tfieldContainerHolder: document.createElement('div'),\n\t\t\tlayoutBuilderHolder,\n\t\t\tinteractor: layoutInteracter,\n\t\t\tmainBoardId: interactor.getMainBoardID(),\n\t\t\trows: interactor.getRows(),\n\t\t\tcolumns: interactor.getColumns(),\n\t\t\tgap: interactor.getGap(),\n\t\t\tgridMode: ReadOnlyLayoutBuilderConstants.GRID_MODE,\n\t\t\tbufferRows: 0,\n\t\t\tminRows: interactor.getMinRows(),\n\t\t\teventHandler\n\t\t}\n\n\t\tconst height = interactor.getPartitionHeightPx && interactor.getPartitionHeightPx();\n\t\tconst width  = interactor.getPartitionWidthPx && interactor.getPartitionWidthPx();\n\t\t\n\t\theight && (params.mainBoardHeightPx = height);\n\t\twidth && (params.mainBoardWidthPx = width);\n\n\t\tthis.interactor = interactor;\n\t\tthis.layoutBuilder = this.getLayoutBuilder(params)\n\t}\n\n\tgotoCard(cardId: CardIDType): void {\n\t\tthis.layoutBuilder.scrollToCard(cardId);\n\t}\n\n\tprotected getLayoutBuilder(params: LayoutBuilderParameterType) {\n\t\treturn new (globalThis as any).LayoutBuilder(params);\n\t}\n\n\tinsertCardWithGravity(cardId: CardIDType, rowPartition: number, columnPartition: number, heightPartition: number, widthPartition: number, properties: CardPropertiesType, parentId: BoardIDType): AffectedDataType {\n\t\tconst affectedData = this.layoutBuilder.insertCardWithGravity(cardId, rowPartition, columnPartition, heightPartition, widthPartition, {...properties, enableDrag: true}, parentId);\n\t\treturn affectedData;\n\t}\n\n\tinsertCardWithoutGravity(cardId: CardIDType,  rowPartition: number, columnPartition: number, heightPartition: number, widthPartition: number, properties: CardPropertiesType, parentId: BoardIDType) {\n\t\tthis.layoutBuilder.insertCardWithoutGravity(cardId, rowPartition, columnPartition, heightPartition, widthPartition, {...properties, enableDrag: true}, parentId);\n\t}\n\n\tremoveCardWithGravity(cardId: CardIDType): AffectedDataType {\n\t\tconst affectedData = this.layoutBuilder.removeCardWithGravity(cardId);\n\t\treturn affectedData;\n\t}\n\n\tremoveCardWithoutGravity(cardId: CardIDType) {\n\t\tthis.layoutBuilder.removeCardWithoutGravity(cardId);\n\t}\n\n\tmoveCardWithGravity(cardId: CardIDType,  rowPartition: number, columnPartition: number): AffectedDataType {\n\t\tconst affectedData =  this.layoutBuilder.moveCardWithGravity(cardId, rowPartition, columnPartition);\n\t\treturn affectedData;\n\t}\n\n\tmoveCardWithoutGravity(cardId: CardIDType,  rowPartition: number, columnPartition: number) {\n\t\tthis.layoutBuilder.moveCardWithoutGravity(cardId, rowPartition, columnPartition);\n\t}\n\n\tresizeCardWithoutGravity(cardId: CardIDType, heightPartition: number, widthPartition: number) {\n\t\tthis.layoutBuilder.resizeCardWithoutGravity(cardId, heightPartition, widthPartition);\n\t}\n\n\tresizeCardWithGravity(cardId: CardIDType, heightPartition: number, widthPartition: number) {\n\t\tthis.layoutBuilder.resizeCardWithGravity(cardId, heightPartition, widthPartition);\n\t}\n\n\trerenderWithHeight(height: number) {\n\t\tthis.layoutBuilder.rerender({height})\n\t}\n\n\trerenderWithWidth(width: number) {\n\t\tthis.layoutBuilder.rerender({width})\n\t}\n\n\trerender(dimension?: {height: number, width: number}) {\n\t\tdimension ? this.layoutBuilder.rerender({height: dimension.height, width: dimension.width}) : this.layoutBuilder.rerender();\n\t}   \n\n\tclearChildren(boardId: CardID) {\n\t\tthis.layoutBuilder.clearChildren(boardId)\n\t}\n\n\tsetWidthHeightPartition(heightPartitions: number, widthPartitions: number) {\n\t\tthis.layoutBuilder.resizeBoardWithGravity(this.interactor.getMainBoardID(), heightPartitions, widthPartitions);\n\t}\n\n\tprivate static LayoutInteracter = class implements ILayoutBuilderInteractor {\n\n\t\tprivate readonly interactor: ILayoutReadOnlyBuilderHandlerInteractor;\n\t\t\n\t\tconstructor(interactor: ILayoutReadOnlyBuilderHandlerInteractor) {\n\t\t\tthis.interactor = interactor;\n\t\t}\n\n\t\tbeforeFieldInsertByDoubleClick(fieldId: FieldIDType, rowPartition: number, columnPartition: number, affectedData: AffectedDataType, parentId: BoardIDType): Promise<{ id: CardIDType; properties: CardPropertiesType; } | null> {\n\t\t\treturn Promise.resolve(null);\n\t\t}\n\n\t\tafterFieldInsertByDoubleClick(cardId: CardIDType): void {\n\t\t\treturn;\n\t\t}\n\t\t\n\t\tgetCard(cardId: CardIDType): ICard {\n\t\t\treturn this.interactor.getCard(cardId);\n\t\t}\n\n\t\tgetBoard(boardId: BoardIDType): IBoard {\n\t\t\tthrow new Error(\"Method not implemented.\");\n\t\t}\n\n\t\tgetMainBoard(): IBoard {\n\t\t\treturn this.interactor.getMainBoard();\n\t\t}\n\n\t\tgetFieldOrder(): Array<FieldIDType> {\n\t\t\treturn [];\n\t\t}\n\t\t\n\t\tgetFieldProperty(id: FieldIDType): IField {\n\t\t\treturn {} as IField;\n\t\t}\n\n\t\tdoesAllowFieldDrag(fieldId: FieldIDType): boolean {\n\t\t\treturn false\n\t\t}\n\n\t\tdoesAllowCardDrag(cardId: CardIDType): boolean {\n\t\t\treturn false\n\t\t}\n\n\t\tdoesAllowBoardDrag(boardId: BoardIDType): boolean {\n\t\t\treturn false\n\t\t}\n\n\t\tbeforeFieldDrop(fieldId: FieldIDType, rowPartition: number, columnPartition: number, affectedData: AffectedDataType, parent: BoardIDType): Promise<{ id: CardIDType; properties: CardPropertiesType; } | null> {\n\t\t\treturn Promise.resolve(null);\n\t\t}\n\n\t\tbeforeCardDrop(cardId: CardIDType, rowPartition: number, columnPartition: number, affectedData: AffectedDataType): boolean {\n\t\t\treturn false\n\t\t}\n\n\t\tbeforeCardResize(cardId: CardIDType, heightPartition: number, widthPartition: number, affectedData: AffectedDataType): boolean {\n\t\t\treturn false\n\t\t}\n\n\t\tbeforeCardHeightResize(cardId: string, heightPartition: number, affectedData: AffectedDataType): boolean {\n\t\t\treturn false\n\t\t}\n\n    \tbeforeCardWidthResize(cardId: string, widthPartition: number, affectedData: AffectedDataType): boolean {\n\t\t\treturn false\n\t\t}\n\t}\n}\n","import { DSAttachmentField } from \"../../../DataStore/DS/Storage/DSAttachmentField.js\";\nimport { Collaborator } from \"../../../DataStore/DS/Storage/DSCollaborator.js\";\nimport { MultiSelect } from \"../../../DataStore/DS/Storage/DSMultiSelect.js\";\nimport { Relationship } from \"../../../DataStore/DS/Storage/DSRelationship.js\";\nimport { DSSentimentsField } from \"../../../DataStore/DS/Storage/DSSentimentsField.js\";\nimport { IFieldType } from \"../../../DataStore/DS/Storage/fieldType/FieldType.js\";\nimport { IAppendOnlyHtml } from \"../../../Dom/Middle/AddFieldPanel/_auxillaries/IAppendOnlyHtml.js\";\nimport { AttachmentID, BaseID, CardID, FieldID, FieldsToPlotID, FieldType, Position, RecordID, RelationshipID, SelectionID, TableID } from \"../../../Types\";\nimport { ComponentType } from \"../../SnapTypes\";\nimport { AggregationManager } from \"./Components/Aggregation/AggregationManager\";\nimport { Alignment, ChartType } from \"./Components/Chart/ChartConstants\";\nimport { ChartManager } from \"./Components/Chart/ChartManager\";\nimport { ComponentViewOnlyVendor } from \"./Components/ComponentViewOnlyVendor\";\nimport { GridManager } from \"./Components/Grid/GridManager\";\nimport { GridRenderProps, RecordHeight } from \"./Components/Grid/GridType\";\nimport { IComponentsViewOnlyInteracter } from \"./Components/IComponentsViewOnlyInteracter\";\nimport { IComponentViewManager } from \"./Components/IComponentViewManager\";\nimport { IComponentViewOnlyVendor } from \"./Components/IComponentViewOnlyVendor\";\nimport { TextEditorManager } from \"./Components/TextEditor/Implement/TextEditorManager\";\nimport { IWizReadOnlyDataStore } from \"./IWizReadOnlyDataStore\";\nimport { IWizReadOnlyMangerInteracter } from \"./IWizReadOnlyMangerInteracter\";\nimport { IReadOnlyCard } from \"./LayoutBuilder/Components/Card/IReadOnlyCard\";\nimport { ReadOnlyCard } from \"./LayoutBuilder/Components/Card/ReadOnlyCard\";\nimport { MainBoard } from \"./LayoutBuilder/Components/MainBoard/MainBoard\";\nimport { ILayoutReadOnlyBuilderHandlerInteractor } from \"./LayoutBuilder/ILayoutReadOnlyBuilderHandlerInteractor\";\nimport { BoardIDType, CardIDType, IBoard, ICard, ILayoutBuilderManagerEventHandler } from \"./LayoutBuilder/LayoutBuilderTypes\";\nimport { LayoutReadOnlyBuilderHandler } from \"./LayoutBuilder/LayoutReadOnlyBuilderHandler\";\nimport { DEFAULT_COLUMNS, GRID_GAP, HEIGHT_PADDING, MAXIMUM_HEIGHT_PARTITION_SIZE, MININUM_HEIGHT_PARTITION_SIZE, PADDING, WIDTH_PADDING } from \"./WizConstants\";\n\ntype CardInfo<T, L> = {\n\ttype: ComponentType,\n\tcard: IReadOnlyCard,\n\tisLoading: boolean\n\tcomponentManager: IComponentViewManager<T, L>\n}\n\n// let adjustedHeightPixel: number | null = null\n\nexport class WizReadOnlyManager {\n\tprotected dom: HTMLDivElement\n\tprotected layoutDom: HTMLElement\n\t\n\tprotected readonly interacter: IWizReadOnlyMangerInteracter\n\tprotected readonly componentVendor: IComponentViewOnlyVendor\n\tprotected layoutBuilderHandler?: LayoutReadOnlyBuilderHandler;\n\tprotected layoutBuilderDom: HTMLDivElement\n\t\n\t\n\tprotected readonly itemMap: Map<CardIDType, CardInfo<any, any>>;\n\tprotected mainBoardID: BoardIDType\n\tprotected dataStore: IWizReadOnlyDataStore\n\t\n\tprotected width: number\n\tprotected height: number\n\n\tprivate adjustedHeightPixel: number | null;\n\n\tconstructor(parent: IAppendOnlyHtml, interacter: IWizReadOnlyMangerInteracter, dataStore: IWizReadOnlyDataStore) {\n\t\tthis.mainBoardID  = dataStore.getMainboardID()\n\t\tthis.width        = dataStore.getWidth()\n\t\tthis.height       = dataStore.getHeight()\n\t\tthis.interacter   = interacter\n\t\tthis.dataStore    = dataStore\n\t\tthis.adjustedHeightPixel = null;\n\t\n\t\tthis.itemMap = new Map();\n\t\t\n\t\tthis.dom = document.createElement('div');\n\t\tthis.dom.classList.add(\"ZS-publish-preview\")\n\n\t\tthis.layoutDom = document.createElement('div')\n\t\tthis.layoutDom.classList.add(\"ZS-publish-inner\")\n\t\n\t\tthis.dom.append(this.layoutDom)\n\t\tthis.componentVendor = new ComponentViewOnlyVendor()\n\t\t\n\t\tthis.addListener()\n\n\t\tthis.appendTo(parent)\n\t\tthis.initLayoutBuilder(dataStore)\n\n\t\tthis.layoutBuilderDom = this.layoutDom.querySelector(\".ZDCLB-layoutbuilder\") as HTMLDivElement\n\t}\n\n\tprotected appendTo(parent: IAppendOnlyHtml) {\n\t\tparent.append(this.dom)\n\t}\n\n\tsetHeight(height: number) {\n\t\tthis.height = height;\n\t}\n\n\tsetWidth(width: number) {\n\t\tthis.width = width;\n\t}\n\n\tsetHeightPx(height: number) {\n\t\tthis.height = height;\n\t\tconst heightPx = this.getLayoutBuilderHeightPartitionSize()\n\t\tthis.layoutBuilderHandler?.rerenderWithHeight(heightPx)\n\t}\n\n\tsetWidthPx(width: number) {\n\t\tthis.width = width;\n\t\tconst widthPx = this.getLayoutBuilderWidthPartitionSize()\n\t\tthis.layoutBuilderHandler?.rerenderWithWidth(widthPx)\n\t}\n\n\tclearCards() {\n\t\tfor(const cardId of this.itemMap.keys()) {\n\t\t\tconst cardInfo = this.itemMap.get(cardId)\n\t\t\tcardInfo!.componentManager.remove()\n\t\t\tthis.itemMap.delete(cardId)\n\t\t\tthis.layoutBuilderHandler?.removeCardWithoutGravity(cardId)\n\t\t}\n\t}\n\n\tasync resetCards() {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tthis.clearCards()\n\t\t\tconst {clientHeight, height} = this.getPerfectHeight(this.dataStore)\n\t\t\tthis.layoutBuilderHandler?.setWidthHeightPartition(height, Math.max(this.width, DEFAULT_COLUMNS))\n\t\t\tthis.itemMap.clear()\n\t\t\tthis.insertCards().then(resolve).catch(reject)\n\t\n\t\t\tthis.adjustHeight()\n\t\t})\n\t}\n\n\trepositionCards() {\n\t\tthis.resetCards()\n\t\t\n\t\t// this.clearCards()\n\t\t// const {clientHeight, height} = this.getPerfectHeight(this.dataStore)\n\t\t// this.layoutBuilderHandler?.setWidthHeightPartition(height, Math.max(this.width, DEFAULT_COLUMNS))\n\n\t\t// for(const cardId of this.dataStore.getCardIDs()) {\n\t\t// \tconst row = this.dataStore.getCardRow(cardId);\n\t\t// \tconst column = this.dataStore.getCardColumn(cardId);\n\t\t// \tconst height = this.dataStore.getCardHeight(cardId);\n\t\t// \tconst width = this.dataStore.getCardWidth(cardId);\n\n\t\t// \tconst componentType = this.dataStore.getCardType(cardId);\n\t\t// \tconst cardProperties = this.componentVendor.getComponentCardProperties(componentType);\n\t\t// \tthis.layoutBuilderHandler?.insertCardWithoutGravity(cardId, row, column, height, width, cardProperties, this.mainBoardID);\n\t\t// }\n\n\t\t// this.adjustHeight()\n\t}\n\n\tdeleteCard(cardId: CardID) {\n\t\tthis.itemMap.delete(cardId)\n\t\tthis.layoutBuilderHandler?.removeCardWithGravity(cardId)\n\t}\n\n\tinsertCard(cardID: CardID, rowPartition: number, columnPartition: number, height: number, width: number, componentType: ComponentType, componentJSON: any) {\n\t\tthis.onCardInsertWithoutGravity(cardID, componentType, rowPartition, columnPartition, height, width, componentJSON)\n\t}\n\n\tinsertCardWithGravity(cardID: CardID, rowPartition: number, columnPartition: number, height: number, width: number, componentType: ComponentType, componentJSON: any) {\n\t\tthis.onCardInsertWithGravity(cardID, componentType, rowPartition, columnPartition, height, width, componentJSON)\n\t}\n\n\tmoveCard(cardID: CardID, rowPartition: number, columnPartition: number) {\n\t\tthis.layoutBuilderHandler?.moveCardWithGravity(cardID, rowPartition, columnPartition)\n\t}\n\t\n\tsetCardHeight(cardID: CardID, height: number) {\n\t\tthis.layoutBuilderHandler?.resizeCardWithGravity(cardID, height, this.dataStore.getCardWidth(cardID))\n\t}\n\n\tsetCardWidth(cardID: CardID, width: number) {\n\t\tthis.layoutBuilderHandler?.resizeCardWithGravity(cardID, this.dataStore.getCardHeight(cardID), width)\n\t}\n\n\tUpdateAggregationField(cardID: CardID, fieldID: FieldID | null, fieldName?: string, field?: any) {\n\t\tconst cardInfo = this.itemMap.get(cardID)\n\t\tif(!cardInfo || cardInfo.isLoading) {return}\n\t\t\n\t\tlet fieldUpdate = fieldID ? { fieldID, fieldName, field, fieldType: field.getType() } : { fieldID: null };\n\t\t(cardInfo.componentManager as AggregationManager).updateField(fieldID, fieldName, field?.getType())\n\t}\n\n\tUpdateAggregationFormula(cardID: CardID, value: number | null) {\n\t\tconst cardInfo = this.itemMap.get(cardID)\n\t\tif(!cardInfo || cardInfo.isLoading) {return}\n\t\tif(value === null) {\n\t\t\treturn \n\t\t} \n\t\t(cardInfo.componentManager as AggregationManager).updateFormula(value);\n\t}\n\n\tUpdateAggregationShowSecondaryLabel(cardID: CardID, value: boolean) {\n\t\tconst cardInfo = this.itemMap.get(cardID)\n\t\tif(!cardInfo || cardInfo.isLoading) {return}\n\n\t\t(cardInfo.componentManager as AggregationManager).updateShowSecondaryLabel(value);\n\t}\n\n\tUpdateAggregationShowSecondaryValue(cardID: CardID, value: boolean) {\n\t\tconst cardInfo = this.itemMap.get(cardID)\n\t\tif(!cardInfo || cardInfo.isLoading) {return}\n\t\t\n\t\t(cardInfo.componentManager as AggregationManager).updateShowSecondaryValue(value);\n\n\t\t// (cardInfo.componentManager as AggregationManager).update({\n\t\t// \tshowSecondaryValue: value\n\t\t// })\n\t}\n\n\tUpdateAggregationDifference(cardID: CardID, value: number | null) {\n\t\tconst cardInfo = this.itemMap.get(cardID)\n\t\tif(!cardInfo || cardInfo.isLoading) {return}\n\t\t\n\t\tif(value === null) {\n\t\t\treturn \n\t\t}\n\n\t\t(cardInfo.componentManager as AggregationManager).updateDifference(value);\n\t}\n\n\tUpdateAggregationPrimaryValue(cardID: CardID, value: number | null) {\n\t\tconst cardInfo = this.itemMap.get(cardID)\n\t\tif(!cardInfo || cardInfo.isLoading) {return}\n\t\t\n\t\t(cardInfo.componentManager as AggregationManager).updatePrimaryValue(value);\n\t}\n\n\tUpdateAggregationSecondaryLabel(cardID: CardID, value: string) {\n\t\tconst cardInfo = this.itemMap.get(cardID)\n\t\tif(!cardInfo || cardInfo.isLoading) {return}\n\t\t\n\t\tif(value === null) {\n\t\t\treturn \n\t\t}\n\n\t\t(cardInfo.componentManager as AggregationManager).updateSecondaryLabel(value);\n\t}\n\n\tUpdateAggregationSecondaryValue(cardID: CardID, value: number | null) {\n\t\tconst cardInfo = this.itemMap.get(cardID)\n\t\tif(!cardInfo || cardInfo.isLoading) {return}\n\t\t\n\n\t\tif(value === null) {\n\t\t\treturn \n\t\t}\n\n\t\t(cardInfo.componentManager as AggregationManager).updateSecondaryValue(value);\n\t}\n\n\tUpdateAggregationShowDifference(cardID: CardID, value: boolean) {\n\t\tconst cardInfo = this.itemMap.get(cardID)\n\t\tif(!cardInfo || cardInfo.isLoading) {return}\n\t\t\n\t\tif(value === null) {\n\t\t\treturn \n\t\t}\n\n\t\t(cardInfo.componentManager as AggregationManager).updateShowDifference(value);\n\t}\n\n\tUpdateAggregationColor(cardID: CardID, color: string) {\n\t\tconst cardInfo = this.itemMap.get(cardID)\n\t\tif(!cardInfo || cardInfo.isLoading) {return}\n\t\t\n\t\tif(color === null) {\n\t\t\treturn \n\t\t}\n\n\t\t(cardInfo.componentManager as AggregationManager).updateColor(color);\n\t}\n\n\tUpdateAggregationTitle(cardID: CardID, value: string) {\n\t\tconst cardInfo = this.itemMap.get(cardID)\n\t\tif(!cardInfo || cardInfo.isLoading) {return}\n\t\t\n\t\tif(value === null) {\n\t\t\treturn \n\t\t}\n\n\t\t(cardInfo.componentManager as AggregationManager).updateTitle(value);\n\t}\n\n\tUpdateAggregationAlignType(cardID: CardID, value: Alignment) {\n\t\tconst cardInfo = this.itemMap.get(cardID)\n\t\tif(!cardInfo || cardInfo.isLoading) {return}\n\n\t\tif(value === null) {\n\t\t\treturn \n\t\t}\n\n\t\t(cardInfo.componentManager as AggregationManager).updateAlignment(value);\n\t}\n\n\tUpdateChartType(cardID: CardID, chartType: ChartType, xAxis: string, yAxis: string, data: string[][]) {\n\t\tconst cardInfo = this.itemMap.get(cardID)\n\t\tif(!cardInfo || cardInfo.isLoading) {return}\n\n\t\tconst component = cardInfo.componentManager as ChartManager\n\t\tif(chartType === null) {\n\t\t\treturn\n\t\t}\n\n\t\tcomponent.updateChartType(chartType, xAxis, yAxis, data);\n\t\t// component.update(ChartRenderPropertiesDataProvider)\n\t}\n\n\n\tUpdateChartFieldsToPlotReorder(cardID: CardID, fieldsToPlotIDs: FieldsToPlotID[], position: number, relativeFieldID: FieldsToPlotID) {\n\t\tconst itemInfo = this.itemMap.get(cardID)\n\t\tif(!itemInfo || itemInfo.isLoading) {return}\n\t\t(itemInfo.componentManager as ChartManager).reorderFieldsToPlot(fieldsToPlotIDs, position, relativeFieldID);\n\t}\n\n\tUpdateChartFieldsToPlotDelete(cardID: CardID, fieldsToPlotIDs: FieldsToPlotID[]) {\n\t\tconst itemInfo = this.itemMap.get(cardID)\n\t\tif(!itemInfo || itemInfo.isLoading) {return}\n\t\tconst component = itemInfo.componentManager as ChartManager;\n\t\tfieldsToPlotIDs.forEach((fieldsToPlotID) => component.deleteFieldsToPlot(fieldsToPlotID))\n\t}\n\n\tUpdateChartFieldsToPlotInsert(cardID: CardID, fieldsToPlotID: FieldsToPlotID, fieldID: FieldID, formula: number, relativeFieldID: string, position: number) {\n\t\tconst itemInfo = this.itemMap.get(cardID)\n\t\tif(!itemInfo || itemInfo.isLoading) {return}\n\t\t(itemInfo.componentManager as ChartManager).addFieldsToPlot(fieldsToPlotID, fieldID, formula, relativeFieldID, position);\n\t}\n\n\tUpdateChartFieldsToPlotReorderFieldBefore(cardID: CardID, fieldsToPlotID: FieldsToPlotID, beforeFieldsToPlotID: FieldsToPlotID) {\n\t\tconst itemInfo = this.itemMap.get(cardID)\n\t\tif(!itemInfo || itemInfo.isLoading) {return}\n\t\t(itemInfo.componentManager as ChartManager).reorderFieldsToPlotBefore(fieldsToPlotID, beforeFieldsToPlotID);\n\t}\n\n\tUpdateChartFieldsToPlotReorderFieldAfter(cardID: CardID, fieldsToPlotID: FieldsToPlotID, afterFieldsToPlotID: FieldsToPlotID) {\n\t\tconst itemInfo = this.itemMap.get(cardID)\n\t\tif(!itemInfo || itemInfo.isLoading) {return}\n\t\t(itemInfo.componentManager as ChartManager).reorderFieldsToPlotAfter(fieldsToPlotID, afterFieldsToPlotID);\n\t}\n\n\tUpdateChartFieldsToPlot(cardID: CardID, fieldsToPlotID: FieldsToPlotID, fieldID: FieldID, formula: number) {\n\t\tconst cardInfo = this.itemMap.get(cardID)\n\t\tif(!cardInfo || cardInfo.isLoading) {return}\n\t\t(cardInfo.componentManager as ChartManager).updateFieldsToPlot(fieldsToPlotID, fieldID, formula);\n\t\t\n\t\t// (cardInfo.componentManager as ChartManager).update({\n\t\t// \tfieldsToPlot\n\t\t// })\n\t}\n\n\tUpdateChartTitle(cardID: CardID, title: string) {\n\t\tconst cardInfo = this.itemMap.get(cardID)\n\t\tif(!cardInfo || cardInfo.isLoading) {return}\n\n\t\tconst component = cardInfo.componentManager as ChartManager\n\n\t\tcomponent.updateTitle(title);\n\n\t\t// component.update({\n\t\t// \ttitle\n\t\t// })\n\t}\n\n\tUpdateChartXAxisLabel(cardID: CardID, label: string) {\n\t\tconst cardInfo = this.itemMap.get(cardID)\n\t\tif(!cardInfo || cardInfo.isLoading) {return}\n\n\t\tconst component = cardInfo.componentManager as ChartManager\n\t\tcomponent.updateXAxisLabel(label);\n\n\t\t// component.update({\n\t\t// \txAxisLabel: label\n\t\t// })\n\t}\n\n\tUpdateChartYAxisLabel(cardID: CardID, label: string) {\n\t\tconst cardInfo = this.itemMap.get(cardID)\n\t\tif(!cardInfo || cardInfo.isLoading) {return}\n\n\t\tconst component = cardInfo.componentManager as ChartManager\n\n\n\t\tcomponent.updateYAxisLabel(label);\n\n\t\t// component.update({\n\t\t// \tyAxisLabel : label\n\t\t// })\n\t}\n\n\tUpdateChartLegendPosition(cardID: CardID, position: Alignment) {\n\t\tconst cardInfo = this.itemMap.get(cardID)\n\t\tif(!cardInfo || cardInfo.isLoading) {return}\n\n\t\tconst component = cardInfo.componentManager as ChartManager\n\n\t\tcomponent.updateLegendPosition(position);\n\n\t\t// component.update({\n\t\t// \tlegendPosition: position\n\t\t// })\n\t}\n\n\tUpdateChartColorTheme(cardID: CardID, color: number) {\n\t\tconst cardInfo = this.itemMap.get(cardID)\n\t\tif(!cardInfo || cardInfo.isLoading) {return}\n\n\t\tconst component = cardInfo.componentManager as ChartManager\n\t\tcomponent.updateColorTheme(color);\n\t\t\n\t\t// (cardInfo.componentManager as ChartManager).update({\n\t\t// \tcolorTheme: color\n\t\t// })\n\t}\n\t\n\tUpdateChartData(cardID: CardID, data: any) {\n\t\tconst cardInfo = this.itemMap.get(cardID)\n\t\tif(!cardInfo || cardInfo.isLoading) {return}\n\t\t\n\n\t\tconst component = cardInfo.componentManager as ChartManager\n\t\tcomponent.updateData(data);\n\n\t\t// (cardInfo.componentManager as ChartManager).update({\n\t\t// \tdata\n\t\t// })\n\t}\n\n\tUpdateRTEHtml(cardID: CardID, html: string) {\n\t\tconst cardInfo = this.itemMap.get(cardID)\n\t\tif(!cardInfo || cardInfo.isLoading) {return}\n\t\t\n\t\t(cardInfo.componentManager as TextEditorManager).update({\n\t\t\thtml\n\t\t})\n\t}\n\n\tUpdateGridTitle(cardID: CardID, title: string) {\n\t\tconst cardInfo = this.itemMap.get(cardID)\n\t\tif(!cardInfo || cardInfo.isLoading) {return}\n\t\t\n\t\tcardInfo.componentManager.update({\n\t\t\ttitle\n\t\t})\n\t}\n\n\tUpdateGridRecordHeight(cardID: CardID, recordHeight: RecordHeight) {\n\t\tconst cardInfo = this.itemMap.get(cardID)\n\t\tif(!cardInfo || cardInfo.isLoading) {return}\n\t\t\n\t\tcardInfo.componentManager.update({\n\t\t\trecordHeight\n\t\t})\n\t}\n\n\tUpdateGridRecordOrder(cardID: CardID, recordOrder: RecordID[]) {\n\t\tconst cardInfo = this.itemMap.get(cardID)\n\t\tif(!cardInfo || cardInfo.isLoading) {return}\n\t\t\n\t\tcardInfo.componentManager.update({\n\t\t\trecordOrder\n\t\t})\n\t}\n\n\tUpdateGridFieldOrder(cardID: CardID, props: GridRenderProps[\"fieldOrder\"]) {\n\t\tconst cardInfo = this.itemMap.get(cardID)\n\t\tif(!cardInfo || cardInfo.isLoading) {return}\n\t\t\n\t\tcardInfo.componentManager.update({\n\t\t\tfieldOrder: props\n\t\t})\n\t}\n\n\tupdateGridPrimaryField(cardID: CardID, fieldID: FieldID) {\n\t\tconst cardInfo = this.itemMap.get(cardID)\n\t\tif(!cardInfo || cardInfo.isLoading) {return}\n\t\t\n\t\tcardInfo.componentManager.update({\n\t\t\tprimaryFieldID: fieldID\n\t\t})\n\t}\t\n\n\tLoadGridFieldOrder(cardID: CardID, fieldOrder: Pick<GridRenderProps, \"fieldOrder\" | \"fieldsWidth\" | \"fields\">) {\n\t\tconst cardInfo = this.itemMap.get(cardID)\n\t\tif(!cardInfo || cardInfo.isLoading) {return}\n\t\t\n\t\tcardInfo.componentManager.update(fieldOrder)\n\t}\n\n\tUpdateGridFieldsHide(cardID: CardID, fieldIDs: FieldID[]) {\n\t\tconst cardInfo = this.itemMap.get(cardID)\n\t\tif(!cardInfo || cardInfo.isLoading) {return}\n\t\t\n\t\tfieldIDs.forEach((fieldID) => (cardInfo.componentManager as GridManager).updateFieldWidth(fieldID, 0))\n\t}\n\n\tUpdateGridFieldsResize(cardID: CardID, fieldID: FieldID, width: number) {\n\t\tconst cardInfo = this.itemMap.get(cardID)\n\t\tif(!cardInfo || cardInfo.isLoading) {return}\n\t\t\n\t\t(cardInfo.componentManager as GridManager).updateFieldWidth(fieldID, width)\n\t}\n\n\tReorderGridFields(cardID: CardID, fieldIDs: FieldID[], relativeFieldID: FieldID, position: Position) {\n\t\tconst cardInfo = this.itemMap.get(cardID)\n\t\tif(!cardInfo || cardInfo.isLoading) {return}\n\t\t\n\t\t(cardInfo.componentManager as GridManager).reorderFields(fieldIDs, relativeFieldID, position)\n\t}\n\n\tprotected handleAfterCardResize(cardId: CardIDType) {\n\t\tconst component = this.itemMap.get(cardId)?.componentManager\n\t\tcomponent && component.rerenderView();\t\n\t}\n\n\tprotected async insertCards() {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tconst cardIds = this.dataStore.getCardIDs();\n\t\t\tconst promises = []\n\t\t\tfor(const cardId of cardIds) {\n\t\t\t\tconst componentType = this.dataStore.getCardType(cardId);\n\t\t\t\tconst row = this.dataStore.getCardRow(cardId);\n\t\t\t\tconst column = this.dataStore.getCardColumn(cardId);\n\t\t\t\tconst height = this.dataStore.getCardHeight(cardId);\n\t\t\t\tconst width = this.dataStore.getCardWidth(cardId);\n\t\n\t\t\t\tpromises.push(this.onCardInsertWithoutGravity(cardId, componentType, row, column, height, width));\n\t\t\t}\n\t\n\t\t\tPromise.all(promises).then(resolve).catch(reject)\n\t\t})\n\t}\n\n\tprotected getPerfectHeight(dataStore: IWizReadOnlyDataStore) {\n\t\tconst clientHeight = this.getLayoutBuilderHeightPartition()\n\t\tlet heightNeeded = 0;\n\n\t\tfor(const cardID of dataStore.getCardIDs()) {\n\t\t\tconst height = dataStore.getCardRow(cardID) + dataStore.getCardHeight(cardID)\n\t\t\theightNeeded = Math.max(heightNeeded, height)\n\t\t}\n\n\t\treturn {\n\t\t\tclientHeight,\n\t\t\theight : Math.max(clientHeight, heightNeeded)\n\t\t};\n\t}\n\n\tprotected initLayoutBuilder(dataStore: IWizReadOnlyDataStore) {\n\n\t\tconst perfectHeight = this.getPerfectHeight(dataStore)\n\t\tconst interacter    = new WizReadOnlyManager.ReadOnlyLayoutBuilderInteracter(this, perfectHeight.height, this.width)\n\t\tconst eventHandler  = new WizReadOnlyManager.ReadOnlyLayoutBuilderManagerEventHandler(this)\n\t\t\n\t\tthis.layoutBuilderHandler = new LayoutReadOnlyBuilderHandler(this.layoutDom, interacter, eventHandler)\n\n\t\tthis.insertCards().catch((response) => {})\n\t\tthis.adjustHeight()\n\t}\n\n\tremove() {\n\t\tthis.dom.remove()\n\t}\n\n\tprotected createCard(cardId: CardIDType, componentType: number) {\n\t\tconst interacter = new WizReadOnlyManager.ReadOnlyComponentsInteracter(this, cardId) \n\t\tconst componentManager = this.componentVendor.getComponent(componentType, interacter);\t\t\n\t\tconst card = new ReadOnlyCard()\n\t\tcard.showLoading();\n\t\t\n\t\tconst cardInfo = {\n\t\t\ttype: componentType,\n\t\t\tcard,\n\t\t\tcomponentManager,\n\t\t\tisLoading: true\n\t\t}\n\t\tthis.itemMap.set(cardId, cardInfo);\n\t}\n\n\tprotected async loadCard(cardId: CardIDType, componentType: number, componentJSON?: any) {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tconst cardInfo = this.itemMap.get(cardId)\n\t\t\tif(!cardInfo) {return}\n\t\n\t\t\tconst loadComponentFilePromise = this.componentVendor.loadComponentFiles(componentType);\n\t\t\tconst loadComponentPromise = componentJSON ? Promise.resolve(componentJSON) : this.interacter.loadComponentForRender(cardId, componentType);\n\t\t\t\n\t\t\tPromise.all([loadComponentFilePromise, loadComponentPromise]).then(async ([fileLoaded, componentJSON]) => {\n\t\t\t\tif(!cardInfo) {return}\n\t\t\t\t\n\t\t\t\tawait cardInfo.componentManager.appendViewTo(cardInfo.card, componentJSON as any);\n\t\t\t\tcardInfo.card.hideLoading();\n\t\n\t\t\t\tcardInfo.isLoading = false;\n\t\t\t\tresolve(true)\n\t\t\t}).catch((response) => {\n\t\t\t\treject(response)\n\t\t\t})\n\t\t})\n\t}\n\n\tasync onCardInsertWithoutGravity(cardId: CardIDType, componentType: number, rowPartition: number, columnPartition: number, height: number, width: number, componentJSON?: any) {\n\t\tif(this.itemMap.has(cardId)) {return}\n\t\tthis.createCard(cardId, componentType)\n\n\t\tconst cardProperties = this.componentVendor.getComponentCardProperties(componentType);\n\t\tthis.layoutBuilderHandler?.insertCardWithoutGravity(cardId, rowPartition, columnPartition, height, width, cardProperties, this.mainBoardID);\t\n\n\t\tawait this.loadCard(cardId, componentType, componentJSON)\n\t}\n\n\tasync onCardInsertWithGravity(cardId: CardIDType, componentType: number, rowPartition: number, columnPartition: number, height: number, width: number, componentJSON?: any) {\n\t\tif(this.itemMap.has(cardId)) {return}\n\t\tthis.createCard(cardId, componentType)\n\t\t\n\t\tconst cardProperties = this.componentVendor.getComponentCardProperties(componentType);\n\t\tthis.layoutBuilderHandler?.insertCardWithGravity(cardId, rowPartition, columnPartition, height, width, cardProperties, this.mainBoardID);\t\n\n\t\tawait this.loadCard(cardId, componentType, componentJSON)\n\t}\n\n\thandleRerenderWithWidth() {\n\t\tconst width = this.getLayoutBuilderWidthPartitionSize();\n\t\tthis.layoutBuilderHandler?.rerenderWithWidth(width)\n\t}\n\n\tadjustHeight() {\n\t\tconst perfectHeight = this.getPerfectHeight(this.dataStore)\n\t\tthis.height = perfectHeight.height;\n\t\tthis.layoutBuilderHandler?.setWidthHeightPartition(perfectHeight.height, Math.max(DEFAULT_COLUMNS, this.width))\n\n\t\t//TO fix the bottom space issue\n\t\tif(!this.adjustedHeightPixel) {\n\t\t\tlet heightPx     = this.getLayoutBuilderHeightPartitionSize()\n\t\t\tconst layoutRect = this.layoutDom.getBoundingClientRect();\n\t\t\t\n\t\t\tconst difference = layoutRect.height - (heightPx * perfectHeight.clientHeight + (perfectHeight.clientHeight + 1) * GRID_GAP + HEIGHT_PADDING)\n\t\t\tif(difference > 0) {\n\t\t\t\theightPx += difference / perfectHeight.clientHeight\n\t\t\t}\n\t\t\tthis.adjustedHeightPixel = heightPx\n\t\t}\n\t\t\n\t\tthis.layoutBuilderHandler?.rerenderWithHeight(this.adjustedHeightPixel)\n\t}\n\n\tprotected getLayoutBuilderWidthPartitionSize() {\n\t\tconst layoutRect = this.layoutDom.getBoundingClientRect();\n\t\tconst width = (layoutRect.width - ((this.width + 1) * GRID_GAP) - WIDTH_PADDING) / this.width;\n\t\treturn width;\n\t}\n\n\tprotected getLayoutBuilderHeightPartitionSize(layoutRect?: DOMRect) {\n        const rect = layoutRect || (layoutRect = this.layoutDom.getBoundingClientRect());\n        const height = (rect.width - ((this.width + 1) * GRID_GAP) - PADDING) / this.width;\n        return Math.min(Math.max(height, MININUM_HEIGHT_PARTITION_SIZE), MAXIMUM_HEIGHT_PARTITION_SIZE);\n    }\n\n\tprotected getLayoutBuilderHeightPartition() {\n\t\tconst layoutRect = this.layoutDom.getBoundingClientRect();\n\t\tconst height = this.getLayoutBuilderHeightPartitionSize(layoutRect);\n        const partition = Math.floor((layoutRect.height - PADDING - GRID_GAP) / (height + GRID_GAP));\n        return partition;\n\t}\n\n\tprotected addListener() {\n\t\twindow.addEventListener(\"resize\", () => {\n\t\t\tthis.handleRerenderWithWidth()\n\t\t})\n\t}\n\n\tprivate static ReadOnlyLayoutBuilderInteracter = class implements ILayoutReadOnlyBuilderHandlerInteractor {\n\t\tprivate wiz: WizReadOnlyManager\n\t\tprivate height: number\n\t\tprivate width: number\n\n\t\tconstructor(wiz: WizReadOnlyManager, height: number, width: number) {\n\t\t\tthis.wiz = wiz\n\t\t\tthis.height = height\n\t\t\tthis.width  = width\n\t\t}\n\n\t\tgetMinRows(): number {\n\t\t\treturn this.wiz.getLayoutBuilderHeightPartition();\n\t\t}\n\n\t\tgetColumns(): number {\n\t\t\treturn this.width\n\t\t}\n\n\t\tgetRows(): number {\n\t\t\treturn this.height\n\t\t}\n\n\t\tgetMainBoardID(): BoardIDType {\n\t\t\treturn this.wiz.mainBoardID\n\t\t}\n\n\t\tgetGap(): number {\n\t\t\treturn GRID_GAP\n\t\t}\n\n\t\tgetPartitionHeightPx(): number {\n\t\t\treturn this.wiz.getLayoutBuilderHeightPartitionSize();\n\t\t}\n\n\t\tgetCard(cardId: CardIDType): ICard {\n\t\t\tconst card = this.wiz.itemMap.get(cardId)?.card;\n\t\t\tif(card) {\n\t\t\t\treturn card;\n\t\t\t}\n\n\t\t\tthrow new Error(\"Card Not created.\");\n\t\t}\n\n\t\tgetMainBoard(): IBoard {\n\t\t\treturn new MainBoard()\n\t\t}\n\t} \n\n\tprivate static ReadOnlyComponentsInteracter = class implements IComponentsViewOnlyInteracter {\n\t\tprivate readonly context: WizReadOnlyManager;\n\t\tprivate readonly cardId: CardIDType;\n\n\t\tconstructor(context: WizReadOnlyManager, cardId: CardIDType) {\n\t\t\tthis.context = context;\n\t\t\tthis.cardId = cardId\n\t\t}\n\n\t\tisViewMode(): boolean {\n\t\t\treturn true;\n\t\t}\n\n\t\tgetComponentFieldInstance(fieldID: FieldID): IFieldType | null {\n\t\t\treturn this.context.interacter.getFieldInstance(this.cardId, fieldID);\n\t\t}\n\n\t\tgetAttachmentsDS(attachmentID: AttachmentID[]): Map<AttachmentID, DSAttachmentField> {\n\t\t\treturn this.context.interacter.getAttachmentsDS(attachmentID);\n\t\t}\n\n\t\tgetMultiSelectDS(multiSelectID: SelectionID): MultiSelect {\n\t\t\treturn this.context.interacter.getMultiSelectDS(multiSelectID);\n\t\t}\n\n\t\tgetCollaboratorDS(): Collaborator {\n\t\t\treturn this.context.interacter.getCollaboratorDS();\n\t\t}\n\n\t\tgetSentimentMeta(sentimentID: string): DSSentimentsField {\n\t\t\treturn this.context.interacter.getSentimentMeta(sentimentID);\n\t\t}\n\n\t\tgetRelationShipDS(relationshipID: RelationshipID): Relationship {\n\t\t\treturn this.context.interacter.getRelationShipDS(relationshipID);\n\t\t}\n\n\t\tloadData(tableID: TableID, recordIDs: RecordID[], fieldIDs: FieldID[]): Promise<void> {\n\t\t\treturn this.context.interacter.loadData(tableID, this.cardId, recordIDs, fieldIDs);\n\t\t}\n\n\t\tgetCellValue(tableID: TableID, recordID: RecordID, fieldID: FieldID) {\n\t\t\treturn this.context.interacter.getCellValue(tableID, recordID, fieldID);\n\t\t}\n\n\t\tgetFieldIcon(fieldType: FieldType): SVGElement {\n\t\t\treturn this.context.interacter.getFieldIcon(fieldType);\n\t\t}\n\n\t\tgetLayoutBuilderScrollTop(): number {\n\t\t\treturn this.context.layoutBuilderDom.scrollTop;\n\t\t}\n\n\t\tgetActiveBaseID(): BaseID {\n\t\t\treturn this.context.interacter.getActiveBaseID();\n\t\t}\n\n\t\tgetTimeZone(): string {\n\t\t\treturn this.context.interacter.getTimeZone();\n\t\t}\n\n\t\tgetLocale(): string {\n\t\t\treturn this.context.interacter.getLocale();\n\t\t}\n\t}\n\n\tprivate static ReadOnlyLayoutBuilderManagerEventHandler = class implements ILayoutBuilderManagerEventHandler {\n\t\tprivate readonly context: WizReadOnlyManager;\n\n\t\tconstructor(context: WizReadOnlyManager) {\n\t\t\tthis.context = context;\n\t\t}\n\n\t\tonCardClick(response: any): void {\n\t\t}\n\n\t\tonCardDoubleClick(response: any): void {\n\t\t}\n\t\t\n\t\tonCardHeightChange(response: any): void {\n\t\t\tthis.context.handleAfterCardResize(response.getCardId());\n\t\t}\n\n\t\tonCardWidthChange(response: any): void {\n\t\t\tthis.context.handleAfterCardResize(response.getCardId());\n\t\t}\n\n\t\tonBeforeMainBoardHeightChangeEvent(eventResponse: any): void {\t\n\t\t}\n\n\t\tonBoardClick(response: any): void {\n\t\t}\n\t}\n}\n","import { BaseIconConstants } from \"../../Constants/BaseEditPanelConstants.js\";\nimport { __BASE_COLOR, __BASE_DARK_COLOR, __BASE_LIGHT_COLOR, __BASE_TEXT_COLOR, __BASE_ULTRA_LIGHT_COLOR, HASH, ZT_LIGHT_THEME } from \"../../Constants/CssClassNamesForUI.js\";\nimport { getFieldIcon } from \"../../Constants/FieldTypeButtons.js\";\nimport { BASE_THEME_CONFIGURATION, getBaseTextColor, getBaseThemeBodyClassChanges, getDarkThemeColor, getLightThemeColor, getUltraLightThemeColor, isDarkThemeColor } from \"../../Constants/ProductThemeColors\";\nimport { DSAttachmentField } from \"../../DataStore/DS/Storage/DSAttachmentField.js\";\nimport { Collaborator } from \"../../DataStore/DS/Storage/DSCollaborator.js\";\nimport { MultiSelect } from \"../../DataStore/DS/Storage/DSMultiSelect.js\";\nimport { Relationship } from \"../../DataStore/DS/Storage/DSRelationship.js\";\nimport { DSSentimentsField } from \"../../DataStore/DS/Storage/DSSentimentsField.js\";\nimport { DSSnapPublish } from \"../../DataStore/DS/Storage/Snap/DSSnapPublish\";\nimport { getTemplate } from \"../../TemplatesForAll.js\";\nimport { AttachmentID, BaseID, CardID, FieldID, FieldType, RelationshipID, SelectionID, TableID, WizID } from \"../../Types\";\nimport { getSVGIconPath } from \"../../Utility/SvgIconUtility.js\";\nimport { generateComponentRenderJson } from \"../BuilderPage/GenerateComponentProps\";\nimport { IWizReadOnlyDataStore } from \"../BuilderPage/Wiz/IWizReadOnlyDataStore\";\nimport { IWizReadOnlyMangerInteracter } from \"../BuilderPage/Wiz/IWizReadOnlyMangerInteracter\";\nimport { CardIDType } from \"../BuilderPage/Wiz/LayoutBuilder/LayoutBuilderTypes\";\nimport { DEFAULT_COLUMNS, DEFAULT_ROWS } from \"../BuilderPage/Wiz/WizConstants\";\nimport { WizReadOnlyManager } from \"../BuilderPage/Wiz/WizReadOnlyManager\";\nimport { ComponentRenderProps, ComponentType } from \"../SnapTypes\";\nimport { ISnapPublishPageActions } from \"./ISnapPublishPageActions\";\n\nexport class SnapPublishPage {\n\tprivate dataStore: DSSnapPublish\n\tprivate actions: ISnapPublishPageActions\n\n\tprivate dom: HTMLDivElement\n\n\tconstructor(parent: HTMLElement, dataStore: DSSnapPublish, actions: ISnapPublishPageActions) {\n\t\tconst template = getTemplate(\"snapPublishPageTemplate\") as HTMLTemplateElement;\n\t\tthis.dom = template.querySelector(\"#snapPublish\") as HTMLDivElement;\n\t\tparent.appendChild(this.dom)\t\n\n\t\tthis.dataStore = dataStore\n\t\tthis.actions   = actions\n\t\tthis.init()\n\t}\n\n\tinit() {\n\t\tconst name = this.dom.querySelector(\"#name\") as HTMLSpanElement\n\t\tconst icon = this.dom.querySelector(\"#icon\") as HTMLSpanElement\n\n\t\tname.textContent = this.dataStore.getName()\n\t\ticon.setAttribute(\"xlink:href\", getSVGIconPath(`#${BaseIconConstants[this.dataStore.getIcon() as keyof typeof BaseIconConstants]}`)); // No I18N\t\t\n\n\t\t// TODO: New Base Color - changes: Remove the commented codes after 6 months of release..\n\t\t// let color = this.dataStore.getColor()\n\t\t// let dark = false; // here dark means Light color's checkbox tickMark\n\t\t// this.dom.classList.remove(\"ZT-lightTheme\"); // No I18N\n\t\t\n\t\t// document.documentElement.style.setProperty(\"--baseDarkColor\", `#${color}`); //No I18N\n\t\t// document.documentElement.style.setProperty(\"--lighter1\", null);  //No I18N\n\t\t// if (color.length > 6) { // light color contains darkColor tickMark\n\t\t// \tconst split = color.split(\",\");\n\t\t// \tcolor = split[0];\n\t\t// \tconst lighter = parseInt(split[1]);\n\t\t// \tconst rgb = globalThis.ZSGrid.ColorUtil.getColor(color, \"ffffff\", lighter / 100); //No I18N\n\t\t// \tdocument.documentElement.style.setProperty(\"--baseDarkColor\", `#${color}`); //No I18N\n\t\t// \tdocument.documentElement.style.setProperty(\"--lighter1\", rgb);  //No I18N\n\n\t\t// \tdark = true;\n\t\t// \tthis.dom.classList.add(\"ZT-lightTheme\"); // No I18N\n\t\t// }\n\t\t// ColorUtil.generateForLightColors(color, dark);\n\n\t\tconst color = this.dataStore.getColor() as keyof typeof BASE_THEME_CONFIGURATION;\n\t\tthis.setBaseThemeColor(color);\n\t\tconst isDarkThemeColor_ = isDarkThemeColor(color);\n\t\tisDarkThemeColor_ ? this.dom.classList.remove(ZT_LIGHT_THEME) : this.dom.classList.add(ZT_LIGHT_THEME);\n\t\t\n\t\tconst wizID = this.dataStore.getWizOrder()[0] // As now we only have one wiz so we directly get the first wiz\n\t\t\n\t\tconst wizInteracter = new SnapPublishPage.WizInteracter(this, wizID)\n\t\tconst wizDataStore  = new SnapPublishPage.WizDataStore(this.dataStore, wizID)\n\t\tconst wiz = new WizReadOnlyManager(this.dom, wizInteracter, wizDataStore)\n\n\t\tthis.handlePageTitle();\n\t}\n\n\tprivate handlePageTitle() {\n\t\tconst snaptitle = this.dataStore.getName();\n\t\tif(!snaptitle) {\n\t\t\treturn;\n\t\t}\n\t\tthis.setPageTitle(snaptitle);\n\t}\n\tprivate setPageTitle(name: string) { \n\t\tdocument.title = name + \" - Zoho Tables\";\n\t}\n\n\tprivate setBaseThemeColor(color: keyof typeof BASE_THEME_CONFIGURATION) {\n\t\tconst darkThemeColor       = getDarkThemeColor(color);\n\t\tconst lightThemeColor      = getLightThemeColor(color);\n\t\tconst ultraLightThemeColor = getUltraLightThemeColor(color);\n\t\tconst baseTextColor        = getBaseTextColor(color);\n\t\t\t\n\t\tdocument.documentElement.style.setProperty(__BASE_DARK_COLOR,        `${HASH}${darkThemeColor}`);\n\t\tdocument.documentElement.style.setProperty(__BASE_LIGHT_COLOR,       `${HASH}${lightThemeColor}`);\n\t\tdocument.documentElement.style.setProperty(__BASE_ULTRA_LIGHT_COLOR, `${HASH}${ultraLightThemeColor}`);\n\t\tdocument.documentElement.style.setProperty(__BASE_TEXT_COLOR,        `${HASH}${baseTextColor}`);\n\t\tdocument.documentElement.style.setProperty(__BASE_COLOR,             `${HASH}${color}`);\n\t\n\t\tconst baseThemeBodyClassChanges = getBaseThemeBodyClassChanges(color);\n\t\tconst classToAdd                = baseThemeBodyClassChanges.add;\n\t\tconst classToRemove             = baseThemeBodyClassChanges.remove;\n\t\tdocument.body.classList.add(...classToAdd);\n\t\tdocument.body.classList.remove(...classToRemove);\n\t}\n\n\tprivate static WizInteracter = class implements IWizReadOnlyMangerInteracter {\n\t\tprivate snapPublishPage: SnapPublishPage\n\t\tprivate wizID: WizID\n\n\t\tconstructor(snapPublishPage: SnapPublishPage, wizID: WizID) {\n\t\t\tthis.snapPublishPage = snapPublishPage\n\t\t\tthis.wizID = wizID\n\t\t}\n\n\t\tgetCellValue(tableID: TableID, recordID: string, fieldID: FieldID) {\n\t\t\treturn this.snapPublishPage.dataStore.getCellData(tableID, recordID, fieldID)\n\t\t}\n\n\t\tasync loadData(tableID: TableID, cardID: CardIDType, recordIDs: string[], fieldIDs: string[]): Promise<void> {\n\t\t\treturn this.snapPublishPage.actions.loadData(tableID, this.wizID, cardID, recordIDs, fieldIDs)\n\t\t}\n\n\t\tasync loadComponentForRender(cardID: CardIDType, componentType: ComponentType): Promise<ComponentRenderProps> {\n\t\t\tawait this.snapPublishPage.actions.loadComponentForRender(this.wizID, cardID, componentType);\n\t\t\t\n\t\t\tconst componentDS = this.snapPublishPage.dataStore.getComponentDS(this.wizID, cardID)!\n\t\t\tconst renderJson = generateComponentRenderJson(componentDS, componentType)\n\t\t\treturn renderJson\n\t\t}\n\n\t\tgetFieldIcon(fieldType: FieldType): SVGElement {\n\t\t\treturn getFieldIcon(fieldType + \"\") as SVGAElement\n\t\t}\n\n\t\t//the published page is served to anonymous viewers and its payload carries no base ID -\n\t\t//DSSnapPublish has no such field to read. Anything downstream that resolves a workspace from\n\t\t//this (link/lookup/rollup formatting, attachments) stays non functional on the published page\n\t\t//until the publish response starts sending it.\n\t\tgetActiveBaseID(): BaseID {\n\t\t\treturn \"\"\n\t\t}\n\n\t\tgetTimeZone(): string {\n\t\t\treturn this.snapPublishPage.dataStore.getTimeZone()\n\t\t}\n\n\t\tgetAttachmentsDS(attachmentIDs: AttachmentID[]): Map<AttachmentID, DSAttachmentField> {\n\t\t\tconst attachments = new Map<AttachmentID, DSAttachmentField>()\n\t\t\tattachmentIDs.forEach(attachmentID => {\n\t\t\t\tattachments.set(attachmentID, this.snapPublishPage.dataStore.getAttachmentDS(attachmentID)!)\n\t\t\t})\n\t\t\treturn attachments\n\t\t}\n\n\t\tgetMultiSelectDS(multiSelectID: SelectionID): MultiSelect {\n\t\t\treturn this.snapPublishPage.dataStore.getMultiSelectDS(multiSelectID)!;\n\t\t}\n\n\t\tgetCollaboratorDS(): Collaborator {\n\t\t\treturn this.snapPublishPage.dataStore.getCollaboratorDS();\n\t\t}\n\n\t\tgetSentimentMeta(sentimentID: string): DSSentimentsField {\n\t\t\treturn this.snapPublishPage.dataStore.getSentimentalAnalysisDS(sentimentID)!;\n\t\t}\n\n\t\tgetRelationShipDS(relationshipID: RelationshipID): Relationship {\n\t\t\treturn this.snapPublishPage.dataStore.getRelationShipDS(relationshipID)!;\n\t\t}\n\t\t\n\t\tgetFieldInstance(cardID: CardIDType, fieldID: FieldID) {\n\t\t\treturn this.snapPublishPage.dataStore.getFieldInstance(this.wizID, cardID, fieldID)\n\t\t}\n\n\t\tgetLocale(): string {\n\t\t\treturn this.snapPublishPage.dataStore.getLocale()\n\t\t}\n\t}\n\n\tprivate static WizDataStore = class implements IWizReadOnlyDataStore {\n\t\tprivate snapDataStore: DSSnapPublish\n\t\tprivate wizID: WizID\n\n\t\tconstructor(snapDataStore: DSSnapPublish, wizID: WizID) {\n\t\t\tthis.snapDataStore = snapDataStore\n\t\t\tthis.wizID = wizID\n\t\t}\n\n\t\tgetHeight(): number {\n\t\t\tconst wizDS = this.snapDataStore.getWizDS(this.wizID)\n\t\t\tconst height = wizDS.getHeight() ?? DEFAULT_ROWS;\n\t\t\treturn Math.max(height, DEFAULT_ROWS)\n\t\t}\n\n\t\tgetWidth(): number {\n\t\t\tconst wizDS = this.snapDataStore.getWizDS(this.wizID)\n\t\t\tconst width = wizDS.getWidth() ?? DEFAULT_COLUMNS;\n\t\t\treturn Math.max(width, DEFAULT_COLUMNS);\n\t\t}\n\n\t\tgetCardIDs(): CardID[] {\n\t\t\tconst wizDS = this.snapDataStore.getWizDS(this.wizID)\n\t\t\treturn wizDS.getCardIDs();\n\t\t}\n\n\t\tgetCardType(id: CardID): ComponentType {\n\t\t\tconst wizDS = this.snapDataStore.getWizDS(this.wizID)\n\t\t\tconst cardDS = wizDS.getCardDS(id)!;\n\t\t\treturn cardDS.getType();\n\t\t}\n\n\t\tgetCardRow(id: CardID): number {\n\t\t\tconst wizDS = this.snapDataStore.getWizDS(this.wizID)\n\t\t\tconst cardDS = wizDS.getCardDS(id)!;\n\t\t\treturn cardDS.getRow()\n\t\t}\n\t\t\n\t\tgetCardColumn(id: CardID): number {\n\t\t\tconst wizDS = this.snapDataStore.getWizDS(this.wizID)\n\t\t\tconst cardDS = wizDS.getCardDS(id)!;\n\t\t\treturn cardDS.getColumn()\n\t\t}\n\n\t\tgetCardHeight(id: CardID): number {\n\t\t\tconst wizDS = this.snapDataStore.getWizDS(this.wizID)\n\t\t\tconst cardDS = wizDS.getCardDS(id)!;\n\t\t\treturn cardDS.getHeight()\n\t\t}\n\n\t\tgetCardWidth(id: CardID): number {\n\t\t\tconst wizDS = this.snapDataStore.getWizDS(this.wizID)\n\t\t\tconst cardDS = wizDS.getCardDS(id)!;\n\t\t\treturn cardDS.getWidth()\n\t\t}\n\n\t\tgetMainboardID(): WizID {\n\t\t\treturn this.wizID;\n\t\t}\n\t}\n\t\n}","import { SnapPublishPageQuickAction } from \"../Snap/PublishPage/SnapPublishPageQuickAction.js\";\n\nexport async function FetchPublishSnapTableDataAction(snapURL, tableID, wizID, cardID, recordIDs, fieldIDs) {\n\treturn new Promise((resolve, reject) => {\n\t\tconst data = {}\n\t\tconst promises = []\n\t\tfor(let i = 0; i < recordIDs.length / 10000; i++) {\n\t\t\tconst records = recordIDs.slice(i * 10000, (i + 1) * 10000);\n\n\t\t\tconst promise = loadData(snapURL, tableID, wizID, cardID, records, fieldIDs);\n\t\t\tpromises.push(promise);\n\t\t}\n\n\t\tPromise.all(promises).then((responses) => {\n\t\t\tconst data = {}\n\t\t\tfor (const res of responses) {\n\t\t\t\tObject.assign(data, res);\n\t\t\t}\n\t\n\t\t\tresolve(data)\n\t\t}).catch((resp) => {\n\t\t\treject(resp);\n\t\t})\t\n\t})\n}\n\nfunction loadData(snapURL, tableID, wizID, cardID, recordIDs, fieldIDs) {\n\tconst RequestConstants = globalThis.Table.Constants.REQUEST_KEYS;\n\t\n\treturn new Promise((resolve, reject) => {\n\t\tconst data = []\n\t\t\n\t\tconst packsize = 8\n\t\tconst limit = Math.floor(fieldIDs.length/packsize);\n\t\tlet key = (1 << packsize) - 1;\n\t\tlet obj = {};\n\t\tobj[key] = recordIDs;\n\t\tfor (var i = 0; i < limit; i++) {\n\t\t\tconst resObj = {\"FIELDS\": fieldIDs.slice(i*packsize, (i*packsize) + packsize), \"RECORDS\" : obj}; //No I18N\n\t\t\tdata.push(resObj);\n\t\t}\n\n\t\tif((fieldIDs.length % packsize) > 0){\n\t\t\tobj = {};\n\t\t\tkey = (1<< fieldIDs.length%packsize) - 1;\n\t\t\tobj[key] = recordIDs;\n\t\t\tconst resObj = {\"FIELDS\": fieldIDs.slice(i*packsize,(i*packsize) + fieldIDs.length%packsize), \"RECORDS\" : obj}; //No I18N\n\t\t\tdata.push(resObj);\n\t\t}\n\t\t\n\t\tconst action = new SnapPublishPageQuickAction();\n\t\tconst params= ['url', 'tableID', 'wizID', 'cardID', 'data']; //No I18N\n\t\tconst values= [snapURL, tableID, wizID, cardID, JSON.stringify(data)];\n\n\t\taction.setParams({\n\t\t\tparams,\n\t\t\tvalues\n\t\t});\n\t\n\t\taction.addEventListener('success', ({target}, {xmlHttpRequest}) => { //No I18N\n\t\t\tconst response     = xmlHttpRequest.response || target.response;\n\t\t\tconst dataResponse = response.RECORDS\n\t\t\t\n\t\t\tresolve(dataResponse)\n\t\t});\n\t\n\t\taction.addEventListener('failure', function(ev) { //No I18N\n\t\t\treject()\n\t\t});\n\t\tconst LOAD_SNAP_TABLE_DATA = snapURL.indexOf(\"/publish/\") != -1 ? \"/publicLoadTableData.do\" : \"/loadTableData.do\" ; // NO I18N\n\t\taction.send(LOAD_SNAP_TABLE_DATA);\n\t})\n}\n","import { DisplayErrorToaster } from \"../ErrorHandling/Utility.js\";\nimport { SnapPublishPageQuickAction } from \"../Snap/PublishPage/SnapPublishPageQuickAction.js\";\n\nexport async function LoadPublishSnapCardAction(snapURL, wizID, cardID, type) {\n\treturn new Promise((resolve, reject) => {\n\t\tconst action = new SnapPublishPageQuickAction();\n\t\tconst params= ['url', 'wizID', 'cardID', 'cardType']; //No I18N\n\t\tconst values= [snapURL, wizID, cardID, type];\n\n\t\taction.setParams({\n\t\t\tparams,\n\t\t\tvalues\n\t\t});\n\t\n\t\taction.addEventListener('success', ({target}, {xmlHttpRequest}) => { //No I18N\n\t\t\tconst response    = xmlHttpRequest.response || target.response;\n\t\t\tresolve(response);\n\t\t\t// parse(response);\n\t\t});\n\t\n\t\taction.addEventListener('failure', function({target}, {xmlHttpRequest}) { //No I18N\n\t\t\tconst response    = xmlHttpRequest.response || target.response;\n\t\t\tconst errorCode = response.ERROR_CODE;\n\t\t\tDisplayErrorToaster(errorCode, response);\n\t\t\treject();\n\t\t});\n\t\t\n\t\tconst LOAD_SNAP_CARD = snapURL.indexOf(\"/publish/\") != -1 ? \"/publicLoadShareCard.do\" : \"/loadShareCard.do\"; // NO I18N\n\t\taction.send(LOAD_SNAP_CARD);\n\t})\n}\n","import { FetchPublishSnapTableDataAction } from \"../../Actions/FetchPublishSnapTableDataAction.js\";\nimport { LoadPublishSnapCardAction } from \"../../Actions/LoadPublishSnapCardAction.js\";\nimport { DSSnapPublish } from \"../../DataStore/DS/Storage/Snap/DSSnapPublish\";\nimport { TableID, WizID } from \"../../Types\";\nimport { CardIDType } from \"../BuilderPage/Wiz/LayoutBuilder/LayoutBuilderTypes\";\nimport { ComponentType } from \"../SnapTypes\";\nimport { ISnapPublishPageActions } from \"./ISnapPublishPageActions\";\nimport { SnapPublishPageParser } from \"./SnapPublishPageParser\";\n\nexport class SnapPublishPageActions implements ISnapPublishPageActions{\n\tprivate dataStore: DSSnapPublish;\n\tprivate parser: SnapPublishPageParser\n\tprivate url: String\n\n\tconstructor(url: string, dataStore: DSSnapPublish, parser: SnapPublishPageParser) {\n\t\tthis.url = url;\n\t\tthis.dataStore = dataStore;\n\t\tthis.parser = parser;\n\t}\n\n\tasync loadData(tableID: TableID, wizID: WizID, cardID: CardIDType, recordIDs: string[], fieldIDs: string[]): Promise<void> {\n\t\tconst dataNeededRecordIDs = recordIDs.filter((recordID) => !this.dataStore.hasData(tableID, recordID, fieldIDs))\n\t\tif(!dataNeededRecordIDs.length) {\n\t\t\treturn this.dataStore.getData(tableID, recordIDs, fieldIDs)\n\t\t}\n\n\t\tconst response: any = await FetchPublishSnapTableDataAction(this.url, tableID, wizID, cardID, dataNeededRecordIDs, fieldIDs)\n\t\tthis.dataStore.setData(tableID, recordIDs, fieldIDs, dataNeededRecordIDs.map((recordID) => response[recordID]))\n\t\treturn this.dataStore.getData(tableID, recordIDs, fieldIDs)\n\t}\n\n\tasync loadComponentForRender(wizID: WizID, cardID: CardIDType, componentType: ComponentType): Promise<void> {\n\t\tconst response = await LoadPublishSnapCardAction(this.url, wizID, cardID, componentType)\n\t\tthis.parser.process(response)\n\t}\n}","export class Field {\n    constructor() {\n        this.description = this.name = this.type = this.status = this.parameters = null;\n        this._isEphiCompliant = false;\n    }\n\n    setDescription(desc) {\n        this.description = desc;\n    }\n\n    getDescription() {\n        return this.description;\n    }\n\n    setName(name) {\n        this.name = name;\n    }\n\n    setType(typeObj) {\n        this.type = typeObj;\n    }\n\n    getType() {\n        return this.type;\n    }\n\n    getName() {\n        return this.name;\n    }\n\n    setStatus(status) {\n        this.status = status;\n    }\n\n    getStatus() {\n        return this.status;\n    }\n\n    setParameters(parameters) {\n        this.parameters = parameters;\n    }\n\n    getParameters() {\n        return this.parameters;\n    }\n\n    setEphiCompliant(isEphiCompliant) {\n        this._isEphiCompliant = isEphiCompliant;\n    }\n\n    isEphiCompliant() {\n        return this._isEphiCompliant;\n    }\n}\n","\nexport class MultiSelect {\n    constructor() {\n        this.order  = [];\n        this.values = {};\n    }\n\n    reorder(order) {\n        this.order = [];\n        this.order = this.order.concat(order);\n    }\n\n    delete(id) {\n        delete this.values[id];\n        const index = this.order.indexOf(id);\n        this.order.splice(index, 1);\n    }\n\n    update(id, color, name) {\n        this.values[id] = [color, name];\n    }\n\n    getOrder() {\n        return this.order;\n    }\n\n    getCount() {\n        return this.order.length;\n    }\n\n    getID(index) {\n        return this.order[index];\n    }\n\n    getColor(id) {\n        return this.values[id][0];\n    }\n\n    getName(id) {\n        return this.values[id][1];\n    }\n\n    reset() {\n        this.order  = [];\n        this.values = {};\n    }\n\n    push(id) {\n        this.order.push(id);\n    }\n\n    hasOption(id) {\n        return this.values[id] ? true : false;\n    }\n}\n\n","export class Relationship {\n\n\tname                            /* :string */\n\tsourceTableID                   /* :TableID */\n\tdestinationTableID              /* :TableID */\n\tsourceTableAllowMultiple        /* :boolean */\n\tdestinationTableAllowMultiple   /* :boolean */\n\tsourceTableLinkFieldCount       /* :number */\n\tdestinationTableLinkFieldCount  /* :number */\n\n\n\tconstructor() {\n\t\tthis.name   = null\n\t\tthis.tables = []\n\t}\n\n\t// Setter API's\n\n\tsetName(name) {\n\t\tthis.name = name\n\t}\n\n\tsetSourceTableID(tableID) {\n\t\tthis.sourceTableID = tableID\n\t}\n\n\tsetSourceTableAllowMultiple(allowMultiple) {\n\t\tthis.sourceTableAllowMultiple = allowMultiple\n\t}\n\n\tsetSourceTableLinkFieldCount(linkFieldCount) {\n\t\tthis.sourceTableLinkFieldCount = linkFieldCount\n\t}\n\n\tsetDestinationTableID(tableID) {\n\t\tthis.destinationTableID = tableID\n\t}\n\n\tsetDestinationTableAllowMultiple(allowMultiple) {\n\t\tthis.destinationTableAllowMultiple = allowMultiple\n\t}\n\n\tsetDestinationTableLinkFieldCount(linkFieldCount) {\n\t\tthis.destinationTableLinkFieldCount = linkFieldCount\n\t}\n\n\tclearRelationshipTables() {\n\t\tthis.tables = []\n\t}\n\n\t// Getter API's\n\n\tgetName() {\n\t\treturn this.name\n\t}\n\n\tgetSourceTableID() {\n\t\treturn this.sourceTableID\n\t}\n\n\tgetSourceTableAllowMultiple() {\n\t\treturn this.sourceTableAllowMultiple\n\t}\n\n\tgetSourceTableLinkFieldCount() {\n\t\treturn this.sourceTableLinkFieldCount\n\t}\n\n\tgetDestinationTableID() {\n\t\treturn this.destinationTableID\n\t}\n\n\tgetDestinationTableAllowMultiple() {\n\t\treturn this.destinationTableAllowMultiple\n\t}\n\n\tgetDestinationTableLinkFieldCount() {\n\t\treturn this.destinationTableLinkFieldCount\n\t}\n\t\n}\n","import { ATTACHMENT, AUTO_NUMBER, CHECKBOX, COLLABORATOR_CLIENT, CREATED_BY, CREATED_TIME, CURRENCY, DATE_TIME, DURATION, EMAIL, FORMULA, KEYWORD_EXTRACTION, LANGUAGE_DETECTOR, LINK, LOOKUP, MODIFIED_BY, MODIFIED_TIME, MULTIPLE_SELECTION, NUMBER, PERCENT, PHONE_NUMBER, RATING, ROLLUP, SCIENTIFIC, SENTIMENTAL_ANALYSIS, SINGLE_SELECTION, TEXT, URL } from \"../../../../Constants/FieldTypes.js\";\nimport { RELATIONSHIP_DIRECTION_FORWARD } from \"../../../../Constants/LinkFieldConstants.js\";\nimport { COLLABORATOR } from \"../../../../Constants/LookupFieldConstants.js\";\n\nconst userMap       = new Map([[\"ZUID001\", \"AMBIHA\"], [\"ZUID002\", \"Mosh\"], [\"ZUID004\", \"JOE\"]]);//No I18N\n\nconst collabMap     = new Map([[\"1\",\"ZUID001\"], [\"2\",\"ZUID002\"], [\"3\",\"ZUID004\"]]);//No I18N\n\nconst attachmentMap = new Map([[\"1\",\"alpha.png\"], [\"2\",\"bravo.doc\"], [\"3\",\"charlie.xls\"]]);\n\nconst BITSET = {  // For link field and lookup\n    BASE_BITSET  : 0,\n    TABLE_BITSET : 36,\n    VIEW_BITSET  : 0\n};\n\nconst DATE_FORMATS = { // TODO: until zohocomponents fix arrives, this will prevail\n    DEFAULT     : 1,\n    DATE_FIRST  : 2,\n    MONTH_FIRST : 3,\n    YEAR_FIRST  : 4\n};\n\n\nexport class IFieldType {\n    format(inputData) {\n        return inputData;\n    }\n\n    hasDependency() {\n        return false;\n    }\n\n    loadDependency() {}\n\n    accepts(visitor) {}\n}\n\nexport class DateFieldType extends IFieldType {\n    constructor(dateFormat, timeFormat) {\n        super();\n        this.dateFormat = dateFormat;\n        this.timeFormat = timeFormat;\n    }\n\n    format(inputData) {\n        return dateFormatter(this.dateFormat, inputData);\n    }\n\n    getDateFormat() {\n        return this.dateFormat;\n    }\n\n    getTimeFormat() {\n        return this.timeFormat;\n    }\n\n    getType() {\n        return DATE_TIME;\n    }\n\n    accepts(visitor) {\n        return visitor.onDateFieldType(this);\n    }\n}\n\nexport class ModifiedTimeFieldType extends IFieldType {\n    constructor(dateFormat, timeFormat) {\n        super();\n        this.dateFormat = dateFormat;\n        this.timeFormat = timeFormat;\n    }\n\n    format(inputData) {\n        return dateFormatter(this.dateFormat, inputData);\n    }\n\n    getDateFormat() {\n        return this.dateFormat;\n    }\n\n    getTimeFormat() {\n        return this.timeFormat;\n    }\n\n    getType() {\n        return MODIFIED_TIME;\n    }\n\n    accepts(visitor) {\n        return visitor.onModifiedTimeFieldType(this);\n    }\n}\n\t\nexport class DurationFieldType extends IFieldType {\n    constructor(pattern) {\n        super();\n        this.Pattern = pattern;\n        this.format  = 1;\n    }\n\n    format(inputData) {\n        return timeFormatter(this.Pattern,inputData);\n    }\n\n    getType() {\n        return DURATION;\n    }\n\n    getFormat() {\n        return this.format;\n    }\n}\n\t\nexport class CreatedTimeFieldType extends IFieldType {\n    constructor(datePattern, timePattern) {\n        super();\n        this.datePattern = datePattern;\n        this.timePattern = timePattern;\n    }\n\n    format(inputData) {\n        const date = dateFormatter(this.datePattern, inputData);\n        const time = hourFormatter(this.timePattern, inputData);\n\n        return `${date} ${time}`;\n    }\n\n    getDateFormat() {\n        return this.datePattern;\n    }\n\n    getTimeFormat() {\n        return this.timePattern;\n    }\n\n    getType() {\n        return CREATED_TIME;\n    }\n\n    accepts(visitor) {\n        return visitor.onCreatedTimeFieldType(this);\n    }\n}\n\nfunction dateFormatter(pattern,milliseconds){\n    const date = new Date(milliseconds);\n    switch(pattern){\n\n        case \"MMMM DD YYYY\":\n            return date.toLocaleDateString('en-US', {  //No I18N\n                day : 'numeric',//No I18N\n                month : 'long',//No I18N\n                year : 'numeric'//No I18N\n            });\n        case \"MM/DD/YYYY\":\n            return date.toLocaleDateString('en-US');//No I18N\n        case \"DD/MM/YYYY\":\n            return date.toLocaleDateString('en-GB');//No I18N\n        case \"YYYY-MM-DD\":\n            return date.toISOString().slice(0,10);\n\n    }\n}\n\nfunction timeFormatter(pattern,milliseconds){\n    const options = {\n        hour: '2-digit',//No I18N\n        minute: '2-digit',//No I18N\n        second: '2-digit'//No I18N\n    };\n\n    const time = new Date(milliseconds);\n    switch(pattern){\n        case \"hh:mm\":\n            return time.toLocaleTimeString(undefined,{\n                hour: '2-digit',//No I18N\n                minute: '2-digit'//No I18N\n            });\n        case \"hh:mm:ss\":\n            return time.toLocaleTimeString(undefined, options);\t\n        case \"hh:mm:ss.s\":\n            return `${time.toLocaleTimeString(undefined, options)}.${parseInt(time.getMilliseconds() / 100)}`;\n        case \"hh:mm:ss.ss\":\n            return `${time.toLocaleTimeString(undefined, options)}.${parseInt(time.getMilliseconds() / 10)}`;\n        case \"hh:mm:ss.sss\":\n            return `${time.toLocaleTimeString(undefined, options)}.${parseInt(time.getMilliseconds().toFixed(3))}`;\n    }\n}\n\nfunction hourFormatter(hourFormat, milliseconds){\n    if(hourFormat == \"12 hour\"){\n        const date = new Date(milliseconds);\n        let hours = date.getHours();\n        let minutes = date.getMinutes();\n        const ampm = hours >= 12 ? 'pm' : 'am';//No I18N\n        hours = hours % 12;\n        hours = hours ? hours : 12; // the hour '0' should be '12'\n        minutes = minutes < 10 ? `0${minutes}` : minutes;\n        const strTime = `${hours}:${minutes} ${ampm}`;\n        return strTime;\n    }else if(hourFormat == \"24 hour\"){//No I18N\n        return timeFormatter(\"hh:mm\",milliseconds);//No I18N\n    }\n}\n\t\t\t\nexport class SingleSelectFieldType extends IFieldType {\n    constructor(coloredOptions, id, defaultValue) {\n        super();\n        this.coloredOptions = coloredOptions;\n        this.id             = id;\n        this.defaultValue   = defaultValue;\n    }\n\n    format(inputData) {\n        return this.Options[inputData];\n    }\n\n    getType() {\n        return SINGLE_SELECTION;\n    }\n\n    getColoredOptions() {\n        return this.coloredOptions;\n    }\n\n    getID() {\n        return this.id;\n    }\n\n    getDefaultValue() {\n        return this.defaultValue;\n    }\n    accepts(visitor) {\n        return visitor.onSingleSelectFieldType(this);\n    }\n}\n\t\nexport class MultiSelectFieldType extends IFieldType {\n    constructor(coloredOptions, id) {\n        super();\n        this.coloredOptions = coloredOptions;\n        this.id             = id;\n    }\n\n    format(inputData) {\n        const ids = inputData.split(/,/);\n        const result = [];\n        for(let i = 0; i < ids.length;i++){\n            result.push(this.Options[ids[i]].value);\n        }\n        return result;\n    }\n\n    getType() {\n        return MULTIPLE_SELECTION;\n    }\n\n    getColoredOptions() {\n        return this.coloredOptions;\n    }\n\n    getID() {\n        return this.id;\n    }\n\n    accepts(visitor) {\n        return visitor.onMultiSelectFieldType(this);\n    }\n}\n\nexport class CollaboratorFieldType extends IFieldType {\n    constructor(selectionType, notifyCollaborator) {\n        super();\n        this.selectionType      = selectionType;\n        this.notifyCollaborator = notifyCollaborator;\n    }\n\n    format(inputData) {\n        const ids = inputData.split(/,/);\n        const result = [];\n        for(let i = 0; i < ids.length;i++){\n            result.push(userMap.get(collabMap.get(ids[i])));\n        }\n        return result;\n    }\n\n    getSelectionType() {\n        return this.selectionType;\n    }\n\n    getNotifyCollaborator() {\n        return this.notifyCollaborator;\n    }\n\n    getType() {\n        return COLLABORATOR_CLIENT;\n    }\n\n    accepts(visitor) {\n        return visitor.onCollaboratorFieldType(this);\n    }\n}\n\n\t// function LinkFieldType(relationshipID, oppFieldID, leafFieldParameters){\n\t// \tthis.relationshipID      = relationshipID;\n\t// \tthis.oppFieldID          = ~~oppFieldID;\n\t// \tthis.leafFieldParameters = leafFieldParameters;\n\t// }\n\n\t// LinkFieldType.prototype = {\n\t// \t// format: function(inputData){\n\t// \t// \tvar ids = inputData.split(/,/);\n\t// \t// \tvar result = [];\n\t// \t// \tfor(var i = 0; i < ids.length;i++){\n\t// \t// \t\tresult.push(userMap.get(collabMap.get(ids[i])));\n\t// \t// \t}\n\t// \t// \treturn result;\n\t// \t// },\n\t// \tgetOppFieldID: function() {\n\t// \t\treturn this.oppFieldID;\n\t// \t},\n\t// \tgetRelationshipID: function() {\n\t// \t\treturn this.relationshipID;\n\t// \t},\n\t// \tgetLeafFieldParameters: function() {\n\t// \t\treturn this.leafFieldParameters;\n\t// \t},\n\t// \tgetType: function(){\n\t// \t\treturn LINK_CLIENT;\n\t// \t}\n\n\t// };\n\n\t// LinkFieldType.prototype = Object.assign({}, IFieldType.prototype, LinkFieldType.prototype);\n\nexport class LinkFieldType extends IFieldType {\n    constructor(\n        oppFieldID,\n        restrictedViewToggle,\n        restrictedViewID,\n        relationshipDirection,\n        relationshipID,\n        leafFieldParameters,\n        allowDuplicateLinkedRecords = 0\n    ) {\n        super();\n        this.oppFieldID            = oppFieldID;\n        this.restrictedViewToggle  = restrictedViewToggle;\n        this.restrictedViewID      = restrictedViewID;\n        this.relationshipID        = relationshipID;\n        this.relationshipDirection = relationshipDirection;\n        this.leafFieldParameters   = leafFieldParameters;\n        this.allowDuplicateLinkedRecords = allowDuplicateLinkedRecords;\n    }\n\n    getOppFieldID() {\n        return this.oppFieldID;\n    }\n\n    getRestrictedViewToggle() {\n        return this.restrictedViewToggle;\n    }\n\n    getRestrictedViewID() {\n        return this.restrictedViewID;\n    }\n\n    getRelationshipID() {\n        return this.relationshipID;\n    }\n\n    getRelationshipDirection() {\n        return this.relationshipDirection;\n    }\n\n    getLeafFieldParameters() {\n        return this.leafFieldParameters;\n    }\n\n    getAllowDuplicateLinkedRecords() {\n        return this.allowDuplicateLinkedRecords;\n    }\n\n    setAllowDuplicateLinkedRecords(value) {\n        this.allowDuplicateLinkedRecords = value;\n    }\n\n    getType() {\n        return LINK;\n    }\n\n    hasDependency() {\n        return true;\n    }\n\n    loadDependency(baseID, tableID, viewID, callback) {\n        const relID           = this.getRelationshipID();\n        const relDirection    = this.getRelationshipDirection();\n        const oppositeTableID = getOppositeTableID(baseID, relID, relDirection);\n        \n        const base          = Table.Data.Workspace.baseMap.get(baseID);\n        const isTableLoaded = base.isTableLoaded(oppositeTableID);\n        globalThis.Table.Action.LoadViewAction(baseID, oppositeTableID, 0, BITSET.BASE_BITSET, 0, BITSET.TABLE_BITSET, BITSET.VIEW_BITSET, resp => {\n            if(!isTableLoaded) {\n                globalThis.Table.Action.ReregisterViewport(baseID, tableID, viewID, () => {\n                    callback && callback();\n                });\n            }\n            else {\n                callback && callback();\n            } \n        });\n    }\n\n    accepts(visitor) {\n        return visitor.onLinkFieldType(this);\n    }\n}\n\nexport class LookupFieldType extends IFieldType {\n    constructor(linkFieldID, oppFieldID, leafFieldParameters) {\n        super();\n        this.linkFieldID = linkFieldID; \n        this.oppFieldID  = oppFieldID;\n        this.leafFieldParameters = leafFieldParameters;\n    }\n\n    getOppFieldID() {\n        return this.oppFieldID;\n    }\n\n    getLinkFieldID() {\n        return this.linkFieldID;\n    }\n\n    getLeafFieldParameters() {\n        return this.leafFieldParameters;\n    }\n\n    getType() {\n        return LOOKUP;\n    }\n\n    getRenderingType() {\n        const leafFieldType = this.getLeafFieldParameters()[0];\n        switch(leafFieldType) {\n            case CHECKBOX:\n                return CHECKBOX;\n            case RATING:\n                return RATING;\n            case COLLABORATOR_CLIENT:\n            case MODIFIED_BY:\n            case CREATED_BY:\n                return COLLABORATOR;\n            case URL:\n                return URL;\n            default:\n                return TEXT;\n        }\t\n    }\n\n    hasDependency() {\n        return true;\n    }\n\n    loadDependency(baseID, tableID, viewID, callback) {\n        const linkFieldID        = this.getLinkFieldID();\n        const linkFieldInst      = getField(baseID, tableID, linkFieldID).getType();\n        const destinationtableID = getOppositeTableID(baseID, linkFieldInst.getRelationshipID(), linkFieldInst.getRelationshipDirection());\n        \n        const base          = Table.Data.Workspace.baseMap.get(baseID);\n        const isTableLoaded = base.isTableLoaded(destinationtableID);\n        globalThis.Table.Action.LoadViewAction(baseID, destinationtableID, 0, BITSET.BASE_BITSET, 0, BITSET.TABLE_BITSET, BITSET.VIEW_BITSET, resp => {\n            if(!isTableLoaded) {\n                globalThis.Table.Action.ReregisterViewport(baseID, tableID, viewID, () => {\n                    callback && callback();\n                });\n            }\n            else {\n                callback && callback();\n            } \n        });\n    }\n\n    accepts(visitor) {\n        return visitor.onLookupFieldType(this);\n    }\n}\n\nexport class RollupFieldType extends IFieldType {\n    constructor(\n        linkFieldID,\n        oppFieldID,\n        aggregationActionID,\n        returnType,\n        leafFieldParameters\n    ) {\n        super();\n        this.linkFieldID = linkFieldID; \n        this.oppFieldID  = oppFieldID;\n        this.aggregationActionID = aggregationActionID;\n        this.returnType          = returnType;\n        this.leafFieldParameters = leafFieldParameters;\n    }\n\n    getOppFieldID() {\n        return this.oppFieldID;\n    }\n\n    getLinkFieldID() {\n        return this.linkFieldID;\n    }\n\n    getLeafFieldParameters() {\n        return this.leafFieldParameters; \n    }\n\n    getAggregationActionID() {\n        return this.aggregationActionID;\t\n    }\n\n    getReturnType() {\n        return this.returnType;\t\n    }\n\n    getType() {\n        return ROLLUP;\n    }\n\n    hasDependency() {\n        return true;\n    }\n\n    loadDependency(baseID, tableID, viewID, callback) {\n        const linkFieldID        = this.getLinkFieldID();\n        const linkFieldInst      = getField(baseID, tableID, linkFieldID).getType();\n        const destinationtableID = getOppositeTableID(baseID, linkFieldInst.getRelationshipID(), linkFieldInst.getRelationshipDirection());\n        \n        const base          = Table.Data.Workspace.baseMap.get(baseID);\n        const isTableLoaded = base.isTableLoaded(destinationtableID);\n        globalThis.Table.Action.LoadViewAction(baseID, destinationtableID, 0, BITSET.BASE_BITSET, 0, BITSET.TABLE_BITSET, BITSET.VIEW_BITSET, resp => {\n            if(!isTableLoaded) {\n                globalThis.Table.Action.ReregisterViewport(baseID, tableID, viewID, () => {\n                    callback && callback();\n                });\n            }\n            else {\n                callback && callback();\n            } \n        });\n    }\n\n    accepts(visitor) {\n        return visitor.onRollupFieldType(this);\n    }\n}\n\nexport class SingleLineFieldType extends IFieldType {\n    constructor(format, autoDetectHyperlink, languageValue, defaultValue) {\n        super();\n        this.format              = format;\n        this.autoDetectHyperlink = autoDetectHyperlink;\n        this.defaultValue        = defaultValue;\n        this.languageValue       = languageValue;\n    }\n\n    getType() {\n        return TEXT;\n    }\n\n    getFormat() {\n        return this.format;\n    }\n    getLanguageValue() {\n        return this.languageValue;\n    }\n    getAutoDetectHyperlink() {\n        return this.autoDetectHyperlink;\n    }\n\n    getDefaultValue() {\n        return this.defaultValue;\n    }\n\n    accepts(visitor) {\n        return visitor.onSingleLineFieldType(this);\n    }\n}\n\nexport class LongTextFieldType extends IFieldType {\n    getType() {\n        return LONG_TEXT;\n    }\n}\n\nexport class CheckboxFieldType extends IFieldType {\n    constructor(style, color, defaultValue) {\n        super();\n        this.style = style;\n        this.color = color;\n        this.defaultValue   = defaultValue;\n    }\n\n    getType() {\n        return CHECKBOX;\n    }\n\n    getStyle() {\n        return this.style;\n    }\n\n    getColor() {\n        return this.color;\n    }\n\n    getDefaultValue() {\n        return this.defaultValue;\n    }\n\n    accepts(visitor) {\n        return visitor.onCheckboxFieldType(this);\n    }\n}\n\nexport class PhoneNumberFieldType extends IFieldType {\n    constructor(format, allowMultiple) {\n        super();\n        this.format = format;\n        this.allowMultiple = allowMultiple;\n    }\n\n    getType() {\n        return PHONE_NUMBER;\n    }\n\n    getFormat() {\n        return this.format;\n    }\n\n    getAllowMultiple() {\n        return this.allowMultiple;\n    }\n\n    accepts(visitor) {\n        return visitor.onPhoneNumberFieldType(this);\n    }\n}\n\nexport class EmailFieldType extends IFieldType {\n    constructor(allowMultiple) {\n        super();\n        this.allowMultiple = allowMultiple;\n    }\n\n    getAllowMultiple() {\n        return this.allowMultiple;\n    }\n\n    getType() {\n        return EMAIL;\n    }\n\n    accepts(visitor) {\n        return visitor.onEmailFieldType(this);\n    }\n}\n\nexport class NumberFieldType extends IFieldType {\n    constructor(precision, thousandSeparator, defaultValue) {\n        super();\n        this.precision         = precision;\n        this.thousandSeparator = thousandSeparator;\n        this.defaultValue      = defaultValue;\n    }\n\n    getType() {\n        return NUMBER;\n    }\n\n    getPrecision() {\n        return this.precision;\n    }\n\n    getThousandSeparator() {\n        return this.thousandSeparator;\n    }\n\n    getDefaultValue() {\n        return this.defaultValue;\n    }\n\n    format(inputData) {\n        return inputData.toFixed(this.precision);\n    }\n\n    accepts(visitor) {\n        return visitor.onNumberFieldType(this);\n    }\n}\n\nexport class CurrencyFieldType extends IFieldType {\n    constructor(currency, currencyPosition, precision, thousandSeparator, defaultValue) {\n        super();\n        this.currency          = currency;\n        this.thousandSeparator = thousandSeparator;\n        this.precision         = precision;\n        this.currencyPosition  = currencyPosition;\n        this.defaultValue      = defaultValue;\n    }\n\n    getType() {\n        return CURRENCY;\n    }\n\n    getCurrency() {\n        return this.currency;\n    }\n\n    getThousandSeparator() {\n        return this.thousandSeparator;\n    }\n\n    getPrecision() {\n        return this.precision;\n    }\n\n    getCurrencyPosition() {\n        return this.currencyPosition;\n    }\n\n    getDefaultValue() {\n        return this.defaultValue;\n    }\n\n    format(inputData) {\n        return this.currency + inputData.toFixed(this.precision);\n    }\n\n    accepts(visitor) {\n        return visitor.onCurrencyFieldType(this);\n    }\n}\n\nexport class PercentFieldType extends IFieldType {\n    constructor(precision, showSymbol, thousandSeparator, defaultValue) {\n        super();\n        this.precision         = precision;\n        this.showSymbol        = showSymbol;\n        this.thousandSeparator = thousandSeparator;\n        this.defaultValue      = defaultValue;\n    }\n\n    getType() {\n        return PERCENT;\n    }\n\n    getPrecision() {\n        return this.precision;\n    }\n\n    getThousandSeparator() {\n        return this.thousandSeparator;\n    }\n\n    getShowSymbol() {\n        return this.showSymbol;\n    }\n\n    getDefaultValue() {\n        return this.defaultValue;\n    }\n\n    format(inputData) {\n        return inputData.toFixed(this.precision);\n    }\n\n    accepts(visitor) {\n        return visitor.onPercentFieldType(this);\n    }\n}\n\nexport class BarcodeFieldType extends IFieldType {\n    getType() {\n        return BARCODE;\n    }\n}\n\nexport class LinkRecordFieldType extends IFieldType {\n    constructor(tableID) {\t\n        super();\n        this.tableID = tableID;\n    }\n\n    format(inputData) {\n        return getRecord(this.tableID,inputData,0);\n    }\n\n    getType() {\n        return LINK_RECORD;\n    }\n}\n\nfunction getRecord(tableID,recordID,fieldID){\n    return `Test -   ${tableID}  ${recordID}  ${fieldID}`;\n}\n\nexport class RatingFieldType extends IFieldType {\n    constructor(style, color, max) {\n        super();\n        this.style = style;\n        this.color = color;\n        this.max   = max;\n    }\n\n    getType() {\n        return RATING;\n    }\n\n    getStyle() {\n        return this.style;\n    }\n\n    getColor() {\n        return this.color;\n    }\n\n    getMax() {\n        return this.max;\n    }\n\n    format(inputData) {\n        return (inputData >= this.max)?this.max:inputData;\n    }\n\n    accepts(visitor) {\n        return visitor.onRatingFieldType(this);\n    }\n}\n\nexport class FormulaFieldType extends IFieldType {\n    constructor(formulaString, formulaStatus, formatArray) {\n        super();\n        this.formulaString = formulaString;\n        this.formulaStatus = formulaStatus;\n        this.formatArray   = formatArray;\n    }\n\n    getFormulaString() {\n        return this.formulaString;\n    }\n\n    getFormulaStatus() {\n        return this.formulaStatus;\n    }\n\n    getFormatArray() {\n        return this.formatArray;\n    }\n\n    getType() {\n        return FORMULA;\n    }\n\n    getReturnType() {\n        return this.getFormatArray()[0][0];\n    }\n\n    getReturnTypeSpecificationsArray() {\n        return this.getFormatArray()[0][1];\n    }\n\n    accepts(visitor) {\n        return visitor.onFormulaFieldType(this);\n    }\n}\n\nexport class CountFieldType extends IFieldType {\n    getType() {\n        return COUNT;\n    }\n}\n\nexport class URLFieldType extends IFieldType {\n    constructor(allowMultiple) {\n        super();\n        this.allowMultiple = allowMultiple;\n    }\n\n    getAllowMultiple() {\n        return this.allowMultiple;\n    }\n\n    getType() {\n        return URL;\n    }\n\n    accepts(visitor) {\n        return visitor.onURLFieldType(this);\n    }\n}\n\nexport class AutonumberFieldType extends IFieldType {\n    constructor(initialValue, stepSize, prefix, suffix) {\n        super();\n        this.initialValue = initialValue;\n        this.stepSize     = stepSize;\n        this.prefix       = prefix;\n        this.suffix       = suffix;\n    }\n\n    getInitialValue() {\n        return this.initialValue;\n    }\n\n    getStepSize() {\n        return this.stepSize;\n    }\n\n    getPrefix() {\n        return this.prefix;\n    }\n\n    getSuffix() {\n        return this.suffix;\n    }\n\n    getType() {\n        return AUTO_NUMBER;\n    }\n\n    accepts(visitor) {\n        return visitor.onAutoNumberFieldType(this);\n    }\n}\n\nexport class AttachmentFieldType extends IFieldType {\n    getType() {\n        return ATTACHMENT;\n    }\n\n    accepts(visitor) {\n        return visitor.onAttachmetFieldType(this);\n    }\n}\n\nexport class ScientificFieldType extends IFieldType {\n    constructor(format, advancedOption) {\n        super();\n        this.format         = format;\n        this.advancedOption = advancedOption;\n    }\n\n    format(inputData) {\n        const ids = inputData.split(/,/);\n        const result = [];\n        for(let i = 0; i < ids.length;i++){\n            result.push(attachmentMap.get(ids[i]));\n        }\n        return result;\n    }\n\n    getFormat() {\n        return this.format;\n    }\n\n    getAdvancedOption() {\n        return this.advancedOption;\n    }\n\n    getType() {\n        return SCIENTIFIC;\n    }\n}\n\nexport class CreatedByFieldType extends IFieldType {\n    getType() {\n        return CREATED_BY;\n    }\n    \n    accepts(visitor) {\n        return visitor.onCreatedByFieldType(this);\n    }\n}\n\nexport class ModifiedByFieldType extends IFieldType {\n    getType() {\n        return MODIFIED_BY;\n    }\n\n    accepts(visitor) {\n        return visitor.onModifiedByFieldType(this);\n    }\n}\n\nexport class SentimentAnalysisFieldType extends IFieldType {\n    constructor(fieldID, sentimentID) {\n        super();\n        this.referenceFieldID   =   fieldID;\n        this.sentimentID        =   sentimentID;\n    }\n\n    getType() {\n        return SENTIMENTAL_ANALYSIS;\n    }\n\n    getReferenceFieldID() {\n        return this.referenceFieldID;\n    }\n\n    getSentimentID() {\n        return this.sentimentID;\n    }\n\n    accepts(visitor) {\n        return visitor.onSentimentFieldType(this);\n    }\n}\n\nexport class KeywordExtractionFieldType extends IFieldType {\n    constructor(fieldID, maxCount, restrictedKeywords) {\n        super();\n        this.referenceFieldID = fieldID;\n        this.maxCount         = maxCount;\n        this.restrictedKeywords =   restrictedKeywords;\n    }\n\n    format(inputData) {\n        return this.Options[inputData];\n    }\n\n    getType() {\n        return KEYWORD_EXTRACTION;\n    }\n\n    getReferenceFieldID() {\n        return this.referenceFieldID;\n    }\n\n    getMaxCount() {\n        return this.maxCount;\n    }\n\n    getRestrictedKeywords() {\n        return this.restrictedKeywords;\n    }\n\n    accepts(visitor) {\n        return visitor.onKeywordExtractFieldType(this);\n    }\n}\n\nexport class LanguageTranlationFieldType extends IFieldType {\n    constructor(fieldID) {\n        super();\n        this.referenceFieldID = fieldID;\n    }\n\n    getType() {\n        return TEXT;\n    }\n\n    getReferenceFieldID() {\n        return this.referenceFieldID;\n    }\n\n    accepts(visitor) {\n        return visitor.onSingleLineFieldType(this);\n    }\n}\n\nexport class LanguageDetectorFieldType extends IFieldType {\n    constructor(fieldID) {\n        super();\n        this.referenceFieldID = fieldID;\n    }\n\n    getReferenceFieldID() {\n        return this.referenceFieldID;\n    }\n\n    getType() {\n        return LANGUAGE_DETECTOR;\n    }\n\n    accepts(visitor) {\n        return visitor.onLanguageDetectFieldType(this);\n    }\n}\n\nfunction getOppositeTableID(baseID, relationshipID, relationshipDirection) {\n\tconst base               = Table.Data.Workspace.get(baseID)\n\tconst relationship       = base.getRelationship(relationshipID)\n\tconst sourceTableID      = relationship.getSourceTableID()\n\tconst destinationTableID = relationship.getDestinationTableID()\n\n\treturn relationshipDirection === RELATIONSHIP_DIRECTION_FORWARD ? destinationTableID : sourceTableID\n}\n\nfunction getField(baseID, tableID, fieldID) {\n    const base  = Table.Data.Workspace.get(baseID);\n    const table = base.getTable(tableID);\n    const field = table.getField(fieldID);\n    return field;\n}\n","import { ATTACHMENT, AUTO_NUMBER, AUTO_NUMBER_CLIENT, CHECKBOX, COLLABORATOR_CLIENT, CREATED_BY, CREATED_TIME, CREATED_TIME_CLIENT, CURRENCY, CURRENCY_CLIENT, DATE_TIME, DATE_TIME_CLIENT, EMAIL, FORMULA, KEYWORD_EXTRACTION, LANGUAGE_DETECTOR, LINK, LOOKUP, MODIFIED_BY, MODIFIED_TIME, MODIFIED_TIME_CLIENT, MULTIPLE_SELECTION, NUMBER, NUMBER_CLIENT, PERCENT, PERCENT_CLIENT, PHONE_NUMBER, PHONE_NUMBER_CLIENT, RATING, ROLLUP, SCIENTIFIC, SENTIMENTAL_ANALYSIS, SINGLE_SELECTION, URL } from \"../../../../Constants/FieldTypes.js\";\nimport { FORMULA_RETURN_TYPE_EMPTY } from \"../../../../Constants/FormulaReturnTypes.js\";\nimport { FieldType } from \"../../../../Types\";\nimport { AttachmentFieldType, AutonumberFieldType, CheckboxFieldType, CollaboratorFieldType, CreatedByFieldType, CreatedTimeFieldType, CurrencyFieldType, DateFieldType, EmailFieldType, FormulaFieldType, IFieldType, KeywordExtractionFieldType, LanguageDetectorFieldType, LinkFieldType, LookupFieldType, ModifiedByFieldType, ModifiedTimeFieldType, MultiSelectFieldType, NumberFieldType, PercentFieldType, PhoneNumberFieldType, RatingFieldType, RollupFieldType, ScientificFieldType, SentimentAnalysisFieldType, SingleLineFieldType, SingleSelectFieldType, URLFieldType } from \"./FieldType.js\";\n\nexport class FieldTypeFactory {\n\tstatic getFieldTypeInstance(type: FieldType, properties: any[]): IFieldType {\n\t\tswitch(type) {\n\t\t\tcase DATE_TIME:\n\t\t\tcase DATE_TIME_CLIENT: \n\t\t\t\treturn new DateFieldType(properties[0], properties[1]);\n\n\t\t\tcase CREATED_TIME:\n\t\t\tcase CREATED_TIME_CLIENT:\n\t\t\t\treturn new CreatedTimeFieldType(properties[0], properties[1]); //datePattern, timePattern\n\t\t\t\n\t\t\tcase SINGLE_SELECTION:\n\t\t\t\treturn new SingleSelectFieldType(properties[0], properties[1]);\n\t\t\t\n\t\t\tcase MULTIPLE_SELECTION:\n\t\t\t\treturn new MultiSelectFieldType(properties[0], properties[1]);\n\t\t\t\n\t\t\tcase COLLABORATOR_CLIENT:\n\t\t\t\treturn new CollaboratorFieldType(properties[0], properties[1]);\n\t\t\t\n\t\t\tcase LINK:\n\t\t\t\t// Wire/response (WC ALLOW_DUPLICATE @5; leaf appended @6 by FieldDetails):\n\t\t\t\t//   [opp, toggle, view, dir, rel, allowDuplicate, leaf]\n\t\t\t\t// Ctor / client getFieldTypeSpecifications:\n\t\t\t\t//   (..., leaf, allowDuplicate) → [..., leaf @5, allowDuplicate @6]\n\t\t\t\treturn new LinkFieldType(properties[0], properties[1], properties[2], properties[3], properties[4], properties[6], properties[5]);\n\t\t\t\n\t\t\tcase SENTIMENTAL_ANALYSIS:\n\t\t\t\treturn new SentimentAnalysisFieldType(properties[0], properties[1]);\n\t\t\t\t\n\t\t\tcase KEYWORD_EXTRACTION:\n\t\t\t\treturn new KeywordExtractionFieldType(properties[0], properties[1], properties[2]);\n\t\t\t\t\n\t\t\tcase LANGUAGE_DETECTOR:\n\t\t\t\treturn new LanguageDetectorFieldType(properties[0]);\n\t\t\t\t\n\t\t\tcase CHECKBOX:\n\t\t\t\treturn new CheckboxFieldType(properties[0], properties[1]); //style\n\t\t\t\t\n\t\t\tcase PHONE_NUMBER:\n\t\t\tcase PHONE_NUMBER_CLIENT:\n\t\t\t\treturn new PhoneNumberFieldType(properties[0], properties[1]);\n\t\t\t\t\n\t\t\tcase EMAIL:\n\t\t\t\treturn new EmailFieldType(properties[0]);\n\t\t\t\t\n\t\t\tcase URL:\n\t\t\t\treturn new URLFieldType(properties[0]);\n\t\t\t\t\n\t\t\tcase NUMBER:\n\t\t\tcase NUMBER_CLIENT:\n\t\t\t\treturn new NumberFieldType(properties[0], properties[1]); //precision\n\t\t\t\t\n\t\t\tcase CURRENCY:\n\t\t\tcase CURRENCY_CLIENT:\n\t\t\t\treturn new CurrencyFieldType(properties[0], properties[1], properties[2], properties[3]); //symbol, precision\n\t\t\t\t\n\t\t\tcase PERCENT:\n\t\t\tcase PERCENT_CLIENT:\n\t\t\t\treturn new PercentFieldType(properties[0], properties[1], properties[2]); //precision\n\t\t\t\t\t\n\t\t\tcase RATING:\n\t\t\t\treturn new RatingFieldType(properties[0], properties[1], properties[2]); //style, max\n\t\t\t\t\n\t\t\tcase FORMULA:\n\t\t\t\tconst specs  = properties[2].length <= 0 ? [ [FORMULA_RETURN_TYPE_EMPTY, [1, 1]] ] : properties[2];\n\t\t\t\treturn new FormulaFieldType(properties[0], properties[1], specs);\n\t\t\t\t\n\t\t\tcase ATTACHMENT:\n\t\t\t\treturn new AttachmentFieldType();\n\t\t\t\t\n\t\t\tcase LOOKUP:\n\t\t\t\treturn new LookupFieldType(properties[0], properties[1], properties[2]);\n\t\t\t\t\n\t\t\tcase AUTO_NUMBER:\n\t\t\tcase AUTO_NUMBER_CLIENT:\n\t\t\t\treturn new AutonumberFieldType(properties[0], properties[1], properties[2], properties[3]);\n\t\t\t\t\n\t\t\tcase MODIFIED_TIME:\n\t\t\tcase MODIFIED_TIME_CLIENT:\n\t\t\t\treturn new ModifiedTimeFieldType(properties[0], properties[1]); //pattern\n\t\t\t\t\n\t\t\tcase SCIENTIFIC:\n\t\t\t\treturn new ScientificFieldType(properties[0], properties[1]); //pattern\n\t\t\t\t\n\t\t\tcase CREATED_BY:\n\t\t\t\treturn new CreatedByFieldType();\n\t\t\t\t\n\t\t\tcase MODIFIED_BY:\n\t\t\t\treturn new ModifiedByFieldType();\n\t\t\t\t\n\t\t\tcase LOOKUP:\n\t\t\t\treturn new LookupFieldType(properties[0], properties[1], properties[2]);\n\t\t\t\t\n\t\t\tcase ROLLUP:\n\t\t\t\treturn new RollupFieldType(properties[0], properties[1], properties[2], properties[3], properties[4]);\n\t\t\t\t\n\t\t\tdefault:\n\t\t\t\treturn new SingleLineFieldType(properties[0], properties[1], properties[2]);\n\t\t}\n\t}\n}","import { ComponentType } from \"../../../Snap/SnapTypes\";\nimport { isNotNullOrUndefined } from \"../../../Snap/Utility/utility\";\nimport { RelationshipID, SelectionID } from \"../../../Types\";\n\nconst RESPONSE_KEYS = (Table as any).Constants.RESPONSE_KEYS;\n\nexport class ISnapPublishPageResponseParser {\n    process(response: any) {\n        if (response.hasOwnProperty(RESPONSE_KEYS.NAME)) {\n\t\t\tthis.onSnapNameUpdate(response[RESPONSE_KEYS.NAME]);\n\t\t}\n\n\t\tif (response.hasOwnProperty(RESPONSE_KEYS.TIME_ZONE)) {\n\t\t\tthis.onBaseTimeZoneUpdate(response[RESPONSE_KEYS.TIME_ZONE]);\n\t\t}\n\n        if (response.hasOwnProperty(RESPONSE_KEYS.ICON)) {\n\t\t\tthis.onSnapIconUpdate(response[RESPONSE_KEYS.ICON]);\n\t\t}\n\n        if (response.hasOwnProperty(RESPONSE_KEYS.COLOR)) {\n\t\t\tthis.onSnapColorUpdate(response[RESPONSE_KEYS.COLOR]);\n\t\t}\n\n        if (response.hasOwnProperty(RESPONSE_KEYS.SELECTION)) {\n\t\t\tconst selections = response[RESPONSE_KEYS.SELECTION];\n\t\t\tfor (var id in selections) {\n\t\t\t\tthis.onSelectionLoad(id, selections[id]);\n\t\t\t}\n\t\t}\n\n\t\tif (response.hasOwnProperty(RESPONSE_KEYS.ATTACHMENTS)) {\n\t\t\tconst attachments = response[RESPONSE_KEYS.ATTACHMENTS];\n\t\t\tthis.onAttachmentLoad(attachments);\n\t\t}\n\n\t\tif (response.hasOwnProperty(RESPONSE_KEYS.SENTIMENT)) {\n\t\t\tconst sentiments = response[RESPONSE_KEYS.SENTIMENT];\n\t\t\tthis.onSentimentsLoad(sentiments);\n\t\t}\n\n\t\tif (response.hasOwnProperty(RESPONSE_KEYS.RELATIONSHIP)) {\n\t\t\tconst relationship = response[RESPONSE_KEYS.RELATIONSHIP];\n\n\t\t\tfor (var relationshipID in relationship) {\n\n\t\t\t\tvar relationshipName = relationship[relationshipID][RESPONSE_KEYS.NAME];\n\t\t\t\tvar sourceTable      = relationship[relationshipID][RESPONSE_KEYS.SOURCE_TABLE];\n\t\t\t\tvar destinationTable = relationship[relationshipID][RESPONSE_KEYS.DESTINATION_TABLE];\n\n\t\t\t\tthis.onRelationshipLoad(relationshipID, relationshipName, sourceTable, destinationTable);\n\t\t\t}\n\t\t}\n\n\t\tif (response.hasOwnProperty(RESPONSE_KEYS.COLLABORATORS)) {\n\t\t\tconst collaborators = response[RESPONSE_KEYS.COLLABORATORS];\n\t\t\tthis.onCollaboratorsLoad(collaborators);\n\t\t}\n\n\t\tif(response.hasOwnProperty(RESPONSE_KEYS.WIZS)){\n\t\t\tconst wiz = response[RESPONSE_KEYS.WIZS];\n\t\t\tfor(const wizID in wiz){\n\t\t\t\tconst wizData = wiz[wizID];\n\t\t\t\t\n\t\t\t\tif(wizData.hasOwnProperty(RESPONSE_KEYS.HEIGHT)) {\n\t\t\t\t\tthis.onWizHeightUpdate(wizID, wizData[RESPONSE_KEYS.HEIGHT]);\n\t\t\t\t}\n\t\t\n\t\t\t\tif(wizData.hasOwnProperty(RESPONSE_KEYS.WIDTH)){\n\t\t\t\t\tthis.onWizWidthUpdate(wizID, wizData[RESPONSE_KEYS.WIDTH]);\n\t\t\t\t}\n\t\t\n\t\t\t\tif(wizData.hasOwnProperty(RESPONSE_KEYS.CARDS)){\n\t\t\t\t\tconst load = wizData[RESPONSE_KEYS.CARDS];\n\t\t\t\t\tconst cardMetas = []\n\t\t\t\t\tfor(const cardID in load){\n\t\t\t\t\t\tconst cardData = load[cardID];\n\t\t\t\t\t\tif(isNotNullOrUndefined(cardData[RESPONSE_KEYS.ROW]) && isNotNullOrUndefined(cardData[RESPONSE_KEYS.COLUMN]) && isNotNullOrUndefined(cardData[RESPONSE_KEYS.HEIGHT]) && isNotNullOrUndefined(cardData[RESPONSE_KEYS.WIDTH]) && isNotNullOrUndefined(cardData[RESPONSE_KEYS.TYPE])){\n\t\t\t\t\t\t\tcardMetas.push([cardID, cardData[RESPONSE_KEYS.ROW], cardData[RESPONSE_KEYS.COLUMN], cardData[RESPONSE_KEYS.HEIGHT], cardData[RESPONSE_KEYS.WIDTH], cardData[RESPONSE_KEYS.TYPE]]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\n\t\t\t\t\tcardMetas.length > 0 && this.onWizCardLoad(wizID, cardMetas);\n\t\t\n\t\t\t\t\tfor(const cardID in load){\n\t\t\t\t\t\tconst cardData = load[cardID];\n\t\t\t\t\t\tconst type = cardData[RESPONSE_KEYS.TYPE];\n\t\t\t\t\t\tconst componentResp = cardData[RESPONSE_KEYS.COMPONENT];\n\t\t\t\t\t\tif(componentResp) {\n\t\t\t\t\t\t\tswitch(type) {\n\t\t\t\t\t\t\t\tcase ComponentType.AGGREGATION: {\n\t\t\t\t\t\t\t\t\tif(componentResp.hasOwnProperty(RESPONSE_KEYS.FIELDS)) {\n\t\t\t\t\t\t\t\t\t\tconst fieldsResponse = componentResp[RESPONSE_KEYS.FIELDS];\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\tif(fieldsResponse.hasOwnProperty(RESPONSE_KEYS.LOAD)) {\n\t\t\t\t\t\t\t\t\t\t\tconst fields = []\n\t\t\t\t\t\t\t\t\t\t\tconst fieldsMeta = fieldsResponse[RESPONSE_KEYS.LOAD];\n\t\t\t\t\t\t\t\t\t\t\tfor(const fieldID in fieldsMeta) {\n\t\t\t\t\t\t\t\t\t\t\t\tconst fieldMeta = fieldsMeta[fieldID];\n\t\t\t\t\t\t\t\t\t\t\t\tconst name = fieldMeta[RESPONSE_KEYS.NAME];\n\t\t\t\t\t\t\t\t\t\t\t\tconst type = fieldMeta[RESPONSE_KEYS.TYPE];\n\t\t\t\t\t\t\t\t\t\t\t\tconst properties = fieldMeta[RESPONSE_KEYS.PROPERTIES];\n\t\t\t\t\t\t\t\t\t\t\t\tfields.push([fieldID, name, type, properties]);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tthis.onAggregationFieldsMetaLoad(wizID, cardID, fields);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tif(componentResp.hasOwnProperty(RESPONSE_KEYS.FIELD_ID)) {\n\t\t\t\t\t\t\t\t\t\tconst fieldID = componentResp[RESPONSE_KEYS.FIELD_ID];\n\t\t\t\t\t\t\t\t\t\tthis.onAggregationFieldUpdate(wizID, cardID, fieldID);\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tif(componentResp.hasOwnProperty(RESPONSE_KEYS.FORMULA)) {\n\t\t\t\t\t\t\t\t\t\tconst formula = componentResp[RESPONSE_KEYS.FORMULA];\n\t\t\t\t\t\t\t\t\t\tthis.onAggregationFormulaUpdate(wizID, cardID, formula);\n\t\t\t\t\t\t\t\t\t}\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tif(componentResp.hasOwnProperty(RESPONSE_KEYS.SHOW_SECONDARY_LABEL)) {\n\t\t\t\t\t\t\t\t\t\tconst showSecondaryLabel = componentResp[RESPONSE_KEYS.SHOW_SECONDARY_LABEL];\n\t\t\t\t\t\t\t\t\t\tthis.onAggregationShowSecondaryLabelUpdate(wizID, cardID, showSecondaryLabel);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tif(componentResp.hasOwnProperty(RESPONSE_KEYS.SHOW_SECONDARY_VALUE)) {\n\t\t\t\t\t\t\t\t\t\tconst showSecondaryValue = componentResp[RESPONSE_KEYS.SHOW_SECONDARY_VALUE];\n\t\t\t\t\t\t\t\t\t\tthis.onAggregationShowSecondaryValueUpdate(wizID, cardID, showSecondaryValue);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tif(componentResp.hasOwnProperty(RESPONSE_KEYS.SHOW_DIFFERENCE)) {\n\t\t\t\t\t\t\t\t\t\tconst showDifference = componentResp[RESPONSE_KEYS.SHOW_DIFFERENCE];\n\t\t\t\t\t\t\t\t\t\tthis.onAggregationShowDifferenceUpdate(wizID, cardID, showDifference);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tif(componentResp.hasOwnProperty(RESPONSE_KEYS.TITLE)) {\n\t\t\t\t\t\t\t\t\t\tconst title = componentResp[RESPONSE_KEYS.TITLE];\n\t\t\t\t\t\t\t\t\t\tthis.onAggregationTitleUpdate(wizID, cardID, title);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tif(componentResp.hasOwnProperty(RESPONSE_KEYS.COLOR)) {\n\t\t\t\t\t\t\t\t\t\tconst color = componentResp[RESPONSE_KEYS.COLOR];\n\t\t\t\t\t\t\t\t\t\tthis.onAggregationColorUpdate(wizID, cardID, color);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tif(componentResp.hasOwnProperty(RESPONSE_KEYS.ALIGN_TYPE)) {\n\t\t\t\t\t\t\t\t\t\tconst alignType = componentResp[RESPONSE_KEYS.ALIGN_TYPE];\n\t\t\t\t\t\t\t\t\t\tthis.onAggregationAlignTypeUpdate(wizID, cardID, alignType);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tif(componentResp.hasOwnProperty(RESPONSE_KEYS.PRIMARY_VALUE)) {\n\t\t\t\t\t\t\t\t\t\tconst primaryValue = componentResp[RESPONSE_KEYS.PRIMARY_VALUE];\n\t\t\t\t\t\t\t\t\t\tthis.onAggregationPrimaryValueUpdate(wizID, cardID, primaryValue);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tif(componentResp.hasOwnProperty(RESPONSE_KEYS.SECONDARY_LABEL)) {\n\t\t\t\t\t\t\t\t\t\tconst secondaryLabel = componentResp[RESPONSE_KEYS.SECONDARY_LABEL];\n\t\t\t\t\t\t\t\t\t\tthis.onAggregationSecondaryLabelUpdate(wizID, cardID, secondaryLabel);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tif(componentResp.hasOwnProperty(RESPONSE_KEYS.SECONDARY_VALUE)) {\n\t\t\t\t\t\t\t\t\t\tconst secondaryValue = componentResp[RESPONSE_KEYS.SECONDARY_VALUE];\n\t\t\t\t\t\t\t\t\t\tthis.onAggregationSecondaryValueUpdate(wizID, cardID, secondaryValue);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tif(componentResp.hasOwnProperty(RESPONSE_KEYS.DIFFERENCE)) {\n\t\t\t\t\t\t\t\t\t\tconst difference = componentResp[RESPONSE_KEYS.DIFFERENCE];\n\t\t\t\t\t\t\t\t\t\tthis.onAggregationDifferenceUpdate(wizID, cardID, difference);\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tif(componentResp.hasOwnProperty(RESPONSE_KEYS.GROUP_BY_TYPE)) {\n\t\t\t\t\t\t\t\t\t\tconst groupByType = componentResp[RESPONSE_KEYS.GROUP_BY_TYPE];\n\t\t\t\t\t\t\t\t\t\tthis.onAggregationGroupByTypeUpdate(wizID, cardID, groupByType);\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tif(componentResp.hasOwnProperty(RESPONSE_KEYS.GROUP_BY_FIELD_ID)) {\n\t\t\t\t\t\t\t\t\t\tconst groupByFieldID = componentResp[RESPONSE_KEYS.GROUP_BY_FIELD_ID];\n\t\t\t\t\t\t\t\t\t\tthis.onAggregationGroupByFieldIDUpdate(wizID, cardID, groupByFieldID);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tcase ComponentType.CHART: {\n\t\t\t\t\t\t\t\t\tif(componentResp.hasOwnProperty(RESPONSE_KEYS.CHART_TYPE)) {\n\t\t\t\t\t\t\t\t\t\tconst type = componentResp[RESPONSE_KEYS.CHART_TYPE];\n\t\t\t\t\t\t\t\t\t\tthis.onChartTypeUpdate(wizID, cardID, type);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tif(componentResp.hasOwnProperty(RESPONSE_KEYS.FIELDS)) {\n\t\t\t\t\t\t\t\t\t\tconst fieldsResponse = componentResp[RESPONSE_KEYS.FIELDS];\n\t\t\t\t\t\t\t\t\t\tif(fieldsResponse.hasOwnProperty(RESPONSE_KEYS.LOAD)) {\n\t\t\t\t\t\t\t\t\t\t\tconst fieldsMeta = fieldsResponse[RESPONSE_KEYS.LOAD];\n\t\t\t\t\t\t\t\t\t\t\tconst fields = []\n\t\t\t\t\t\t\t\t\t\t\tfor(const fieldID in fieldsMeta) {\n\t\t\t\t\t\t\t\t\t\t\t\tconst fieldMeta = fieldsMeta[fieldID];\n\t\t\t\t\t\t\t\t\t\t\t\tconst name = fieldMeta[RESPONSE_KEYS.NAME];\n\t\t\t\t\t\t\t\t\t\t\t\tconst type = fieldMeta[RESPONSE_KEYS.TYPE];\n\t\t\t\t\t\t\t\t\t\t\t\tconst properties = fieldMeta[RESPONSE_KEYS.PROPERTIES];\n\t\t\t\t\t\t\t\t\t\t\t\tfields.push([fieldID, name, type, properties]);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tthis.onChartFieldsMetaLoad(wizID, cardID, fields);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tif(componentResp.hasOwnProperty(RESPONSE_KEYS.FIELD_IDS_TO_PLOT)) {\n\t\t\t\t\t\t\t\t\t\tconst fieldsToPlot = componentResp[RESPONSE_KEYS.FIELD_IDS_TO_PLOT];\n\t\t\t\t\t\t\t\t\t\t// this.onChartFieldsToPlotUpdate(wizID, cardID, fieldsToPlot);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tif(componentResp.hasOwnProperty(RESPONSE_KEYS.GROUP_BY_FIELD_ID)) {\n\t\t\t\t\t\t\t\t\t\tconst groupByFieldID = componentResp[RESPONSE_KEYS.GROUP_BY_FIELD_ID];\n\t\t\t\t\t\t\t\t\t\tthis.onChartGroupByFieldUpdate(wizID, cardID, groupByFieldID);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tif(componentResp.hasOwnProperty(RESPONSE_KEYS.TITLE)) {\n\t\t\t\t\t\t\t\t\t\tconst title = componentResp[RESPONSE_KEYS.TITLE];\n\t\t\t\t\t\t\t\t\t\tthis.onChartTitleUpdate(wizID, cardID, title);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tif(componentResp.hasOwnProperty(RESPONSE_KEYS.X_AXIS_LABEL)) {\n\t\t\t\t\t\t\t\t\t\tconst label = componentResp[RESPONSE_KEYS.X_AXIS_LABEL];\n\t\t\t\t\t\t\t\t\t\tthis.onChartXAxisLabelUpdate(wizID, cardID, label);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tif(componentResp.hasOwnProperty(RESPONSE_KEYS.Y_AXIS_LABEL)) {\n\t\t\t\t\t\t\t\t\t\tconst label = componentResp[RESPONSE_KEYS.Y_AXIS_LABEL];\n\t\t\t\t\t\t\t\t\t\tthis.onChartYAxisLabelUpdate(wizID, cardID, label);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tif(componentResp.hasOwnProperty(RESPONSE_KEYS.LEGEND_POSITION)) {\n\t\t\t\t\t\t\t\t\t\tconst position = componentResp[RESPONSE_KEYS.LEGEND_POSITION];\n\t\t\t\t\t\t\t\t\t\tthis.onChartLegendPositionUpdate(wizID, cardID, position);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tif(componentResp.hasOwnProperty(RESPONSE_KEYS.COLOR_THEME)) {\n\t\t\t\t\t\t\t\t\t\tconst color = componentResp[RESPONSE_KEYS.COLOR_THEME];\n\t\t\t\t\t\t\t\t\t\tthis.onChartColorThemeUpdate(wizID, cardID, color);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tif(componentResp.hasOwnProperty(RESPONSE_KEYS.CHART_DATA)) {\n\t\t\t\t\t\t\t\t\t\tconst data = componentResp[RESPONSE_KEYS.CHART_DATA];\n\t\t\t\t\t\t\t\t\t\tthis.onChartDataUpdate(wizID, cardID, data);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tcase ComponentType.TEXT: {\n\t\t\t\t\t\t\t\t\tif(componentResp.hasOwnProperty(RESPONSE_KEYS.HTML)) {\n\t\t\t\t\t\t\t\t\t\tthis.onRTEHtmlUpdate(wizID, cardID, componentResp[RESPONSE_KEYS.HTML]);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tcase ComponentType.GRID: {\n\t\t\t\t\t\t\t\t\tif(componentResp.hasOwnProperty(RESPONSE_KEYS.TABLE)) {\n\t\t\t\t\t\t\t\t\t\tconst tableMeta = componentResp[RESPONSE_KEYS.TABLE]\n\t\t\t\t\t\t\t\t\t\tconst tableID = tableMeta[RESPONSE_KEYS.ID];\n\t\t\t\t\t\t\t\t\t\tthis.onGridTableUpdate(wizID, cardID, tableID);\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tif(componentResp.hasOwnProperty(RESPONSE_KEYS.FIELDS)) {\n\t\t\t\t\t\t\t\t\t\tconst fields = componentResp[RESPONSE_KEYS.FIELDS];\n\t\t\t\t\t\t\t\t\t\tif(fields.hasOwnProperty(RESPONSE_KEYS.LOAD)) {\n\t\t\t\t\t\t\t\t\t\t\tconst fieldsResponse = fields[RESPONSE_KEYS.LOAD];\n\t\t\t\t\t\t\t\t\t\t\tconst fieldsMeta = []\n\t\t\t\t\t\t\t\t\t\t\tfor(const fieldID in fieldsResponse){\n\t\t\t\t\t\t\t\t\t\t\t\tconst fieldMeta = fieldsResponse[fieldID];\n\t\t\t\t\t\t\t\t\t\t\t\tconst name = fieldMeta[RESPONSE_KEYS.NAME];\n\t\t\t\t\t\t\t\t\t\t\t\tconst type = fieldMeta[RESPONSE_KEYS.TYPE];\n\t\t\t\t\t\t\t\t\t\t\t\tconst properties = fieldMeta[RESPONSE_KEYS.PROPERTIES];\n\t\t\t\t\t\t\t\t\t\t\t\tconst status = fieldMeta[RESPONSE_KEYS.STATUS]\n\t\t\t\t\t\t\t\t\t\t\t\tconst isEphiApplied = fieldMeta[RESPONSE_KEYS.IS_EPHI_APPLIED]\n\n\t\t\t\t\t\t\t\t\t\t\t\tfieldsMeta.push([fieldID, name, status, type, properties, isEphiApplied]);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tthis.onGridFieldLoad(wizID, cardID, fieldsMeta);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tif(componentResp.hasOwnProperty(RESPONSE_KEYS.FIELD_ORDER)) {\n\t\t\t\t\t\t\t\t\t\tconst fieldOrder = componentResp[RESPONSE_KEYS.FIELD_ORDER];\n\t\t\t\t\t\t\t\t\t\tif(fieldOrder.hasOwnProperty(RESPONSE_KEYS.LOAD)) {\n\t\t\t\t\t\t\t\t\t\t\tconst fieldMetas = fieldOrder[RESPONSE_KEYS.LOAD];\n\t\t\t\t\t\t\t\t\t\t\tthis.onGridFieldOrderLoad(wizID, cardID, fieldMetas);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tif(componentResp.hasOwnProperty(RESPONSE_KEYS.TITLE)) {\n\t\t\t\t\t\t\t\t\t\tconst title = componentResp[RESPONSE_KEYS.TITLE];\n\t\t\t\t\t\t\t\t\t\tthis.onGridTitleUpdate(wizID, cardID, title);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tif(componentResp.hasOwnProperty(RESPONSE_KEYS.RECORD_HEIGHT)) {\n\t\t\t\t\t\t\t\t\t\tconst recordHeight = componentResp[RESPONSE_KEYS.RECORD_HEIGHT];\n\t\t\t\t\t\t\t\t\t\tthis.onGridRecordHeightUpdate(wizID, cardID, recordHeight);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tif(componentResp.hasOwnProperty(RESPONSE_KEYS.RECORD_ORDER)) {\n\t\t\t\t\t\t\t\t\t\tconst recordOrder = componentResp[RESPONSE_KEYS.RECORD_ORDER];\n\t\t\t\t\t\t\t\t\t\tthis.onGridRecordOrderUpdate(wizID, cardID, recordOrder);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif(response.hasOwnProperty(RESPONSE_KEYS.WIZ_ORDER)){\n\t\t\tconst wizOrder = response[RESPONSE_KEYS.WIZ_ORDER];\n\t\t\tthis.onSnapWizOrderUpdate(wizOrder);\n\t\t}\n    }\n\n\tonSnapNameUpdate(name: string) {}\n\tonSnapIconUpdate(icon: number) {}\n\tonSnapColorUpdate(color: string) {}\n\tonBaseTimeZoneUpdate(baseTimeZone: string) {}\n\tonSelectionLoad(selectionID: SelectionID, selectionArray: any) {}\n\tonAttachmentLoad(attachments: any) {}\n\tonSentimentsLoad(sentiments: any) {}\n\tonRelationshipLoad(relationshipID: RelationshipID, relationshipName: string, sourceTable: string, destinationTable: string) {}\n\tonCollaboratorsLoad(collaborators: any) {}\n\tonWizHeightUpdate(wizID: string, height: number) {}\n\tonWizWidthUpdate(wizID: string, width: number) {}\n\tonWizCardLoad(wizID: string, cardMetas: any) {}\n\tonSnapWizOrderUpdate(wizOrder: any) {}\n\n\tonAggregationFieldsMetaLoad(wizID: string, cardID: string, fields: any) {}\n\tonAggregationFieldUpdate(wizID: string, cardID: string, fieldID: string) {}\n\tonAggregationFormulaUpdate(wizID: string, cardID: string, formula: string) {}\n\tonAggregationShowSecondaryLabelUpdate(wizID: string, cardID: string, showSecondaryLabel: boolean) {}\n\tonAggregationShowSecondaryValueUpdate(wizID: string, cardID: string, showSecondaryValue: boolean) {}\n\tonAggregationShowDifferenceUpdate(wizID: string, cardID: string, showDifference: boolean) {}\n\tonAggregationTitleUpdate(wizID: string, cardID: string, title: string) {}\n\tonAggregationColorUpdate(wizID: string, cardID: string, color: string) {}\n\tonAggregationAlignTypeUpdate(wizID: string, cardID: string, alignType: string) {}\n\tonAggregationPrimaryValueUpdate(wizID: string, cardID: string, primaryValue: string) {}\n\tonAggregationSecondaryLabelUpdate(wizID: string, cardID: string, secondaryLabel: string) {}\n\tonAggregationSecondaryValueUpdate(wizID: string, cardID: string, secondaryValue: string) {}\n\tonAggregationDifferenceUpdate(wizID: string, cardID: string, difference: string) {}\n\tonAggregationGroupByTypeUpdate(wizID: string, cardID: string, groupByType: string) {}\n\tonAggregationGroupByFieldIDUpdate(wizID: string, cardID: string, groupByFieldID: string) {}\n\n\tonChartTypeUpdate(wizID: string, cardID: string, type: string) {}\n\tonChartFieldsMetaLoad(wizID: string, cardID: string, fields: any) {}\n\t// onChartFieldsToPlotUpdate(wizID: string, cardID: string, fieldsToPlot: any) {}\n\tonChartGroupByFieldUpdate(wizID: string, cardID: string, groupByFieldID: string) {}\n\tonChartTitleUpdate(wizID: string, cardID: string, title: string) {}\n\tonChartXAxisLabelUpdate(wizID: string, cardID: string, label: string) {}\n\tonChartYAxisLabelUpdate(wizID: string, cardID: string, label: string) {}\n\tonChartLegendPositionUpdate(wizID: string, cardID: string, position: number) {}\n\tonChartColorThemeUpdate(wizID: string, cardID: string, color: string) {}\n\tonChartDataUpdate(wizID: string, cardID: string, data: any) {}\n\n\tonRTEHtmlUpdate(wizID: string, cardID: string, html: string) {}\n\n\tonGridTableUpdate(wizID: string, cardID: string, tableID: string) {}\n\tonGridFieldLoad(wizID: string, cardID: string, fields: any) {}\n\tonGridFieldOrderLoad(wizID: string, cardID: string, fieldMetas: any) {}\n\tonGridTitleUpdate(wizID: string, cardID: string, title: string) {}\n\tonGridRecordHeightUpdate(wizID: string, cardID: string, recordHeight: number) {}\n\tonGridRecordOrderUpdate(wizID: string, cardID: string, recordOrder: any) {}\n}","import { Field } from \"../../DataStore/DS/Storage/DSField.js\";\nimport { MultiSelect } from \"../../DataStore/DS/Storage/DSMultiSelect.js\";\nimport { Relationship } from \"../../DataStore/DS/Storage/DSRelationship.js\";\nimport { FieldTypeFactory } from \"../../DataStore/DS/Storage/fieldType/FieldTypeFactory\";\nimport { DSAggregation } from \"../../DataStore/DS/Storage/Snap/DSAggregation\";\nimport { DSChart } from \"../../DataStore/DS/Storage/Snap/DSChart\";\nimport { DSGrid } from \"../../DataStore/DS/Storage/Snap/DSGrid\";\nimport { DSRte } from \"../../DataStore/DS/Storage/Snap/DSRte\";\nimport { DSSnapPublish } from \"../../DataStore/DS/Storage/Snap/DSSnapPublish\";\nimport { ISnapPublishPageResponseParser } from \"../../Parser/Interfaces/Snap/ISnapPublishPageResponseParser\";\nimport { RelationshipID, SelectionID, WizID } from \"../../Types\";\n\nconst relationshipTableConst = {\n    TABLEID       : 0,\n    ALLOWMULTIPLE : 1,\n    LINKFIELDCOUNT: 2\n};\n\nconst COLLABORATORS           = {ACTIVE_USERS: 'ACTIVE_USERS', INACTIVE_USERS: 'INACTIVE_USERS', REMOVED_USERS: 'REMOVED_USERS', ANONYMOUS_USERS: 'ANONYMOUS_USERS', SCHEDULER_USERS: 'SCHEDULER_USERS'};                                                                                                     // No I18N\nconst USER                    = {ID:           'USER_ID',      NAME:           'USER_NAME',      TYPE:          'USER_TYPE',      EMAIL: 'EMAIL', LEVEL: 'OWNER_LEVEL', PERMISSION: 'PERMISSION', WORKSPACE_ROLE: 'WORKSPACE_ROLE', MODULE_TYPE: 'MODULE_TYPE', ROLE: 'ROLE', IS_ENABLED: 'IS_ENABLED', IS_EDITABLE_USER: 'IS_EDITABLE_USER', META: 'META'};  // No I18N\nconst CONSTANTS               = {ORDER:        'ORDER',        UPDATE:         'UPDATE',         DELETE:        'DELETE', INSERT: 'INSERT', LOAD: 'LOAD'};                                                                                          // No I18N\n\n\nexport class SnapPublishPageParser extends ISnapPublishPageResponseParser{\n\tprivate dataStore: DSSnapPublish;\n\n\tconstructor(dataStore: DSSnapPublish) {\n\t\tsuper();\n\t\tthis.dataStore = dataStore;\n\t}\n\n\tonSnapNameUpdate(snapName: string) {\n\t\tthis.dataStore.setName(snapName);\n\t}\n\n\tonSnapIconUpdate(snapIcon: number) {\n\t\tthis.dataStore.setIcon(snapIcon);\n\t}\n\n\tonSnapColorUpdate(snapColor: string) {\n\t\tthis.dataStore.setColor(snapColor);\n\t}\n\n\tonBaseTimeZoneUpdate(baseTimeZone: string) {\n\t\tthis.dataStore.setTimeZone(baseTimeZone);\n\t}\n\n\tonSelectionLoad(selectionID: SelectionID, selectionArray: any) {\n\t\tconst multiSelect = new MultiSelect();\n\t\tthis.dataStore.setMultiSelectDS(selectionID, multiSelect);\n\t\t\n\t\tmultiSelect.reset();\n\t\tlet array;\n\t\tlet optionID;\n\t\tlet name;\n\t\tlet color;\n\t\tfor(let i = 0; i < selectionArray.length; i++) {\n\t\t\tarray    = selectionArray[i];\n\t\t\toptionID = array[0];\n\t\t\tname     = array[1];\n\t\t\tcolor    = array[2];\n\t\t\tif(optionID) {\n\t\t\t\tmultiSelect.update(optionID, color, name);\n\t\t\t\tmultiSelect.push(optionID);\n\t\t\t}\n\t\t}\n\t}\n\n\tonAttachmentLoad(attachments: any) {\n        if(typeof attachments === 'object' && attachments !== null ){\n            for(let key in attachments){\n                this.dataStore.setAttachmentDS(key, attachments[key]);\n            }\n        }\n    }\n\n\tonSentimentsLoad(sentiments: any) {\n\t\tfor(let key in sentiments){\n            this.dataStore.loadSentimentalAnalysisDS(key, sentiments[key]);\n        }\n\t}\n\n\tonRelationshipLoad(relationshipID: RelationshipID, relationshipName: string, sourceTable: any, destinationTable: any) {\n\t\tconst relationship = new Relationship()\n\n\t\trelationship.setName(relationshipName)\n\n\t\trelationship.setSourceTableID(sourceTable[relationshipTableConst.TABLEID])\n\t\trelationship.setSourceTableAllowMultiple(sourceTable[relationshipTableConst.ALLOWMULTIPLE] === 1)\n\t\trelationship.setSourceTableLinkFieldCount(sourceTable[relationshipTableConst.LINKFIELDCOUNT])\n\n\t\trelationship.setDestinationTableID(destinationTable[relationshipTableConst.TABLEID])\n\t\trelationship.setDestinationTableAllowMultiple(destinationTable[relationshipTableConst.ALLOWMULTIPLE] === 1)\n\t\trelationship.setDestinationTableLinkFieldCount(destinationTable[relationshipTableConst.LINKFIELDCOUNT])\n\n\t\tthis.dataStore.setRelationship(relationshipID, relationship)\n\t}\n\n\tonCollaboratorsLoad(collaboratorsLoad: any) {\n        const collaboratorDS = this.dataStore.getCollaboratorDS();\n\n        collaboratorDS.reset();\n\n        let users = collaboratorsLoad[COLLABORATORS.ACTIVE_USERS];\n        let user;\n        if(users) {\n            for(let ID in users) {\n                user = users[ID]; // TODO: need to remove permission\n                collaboratorDS.addActiveUser(ID, user[USER.ID], user[USER.NAME], user[USER.EMAIL], user[USER.ROLE], user[USER.MODULE_TYPE], user[USER.IS_ENABLED], user[USER.IS_EDITABLE_USER]);\n                if(user[USER.META]) {\n                    const userMeta = user[USER.META];\n                    // Load Table\n                    if(userMeta[CONSTANTS.LOAD]) {\n                        const loadUserMeta = userMeta[CONSTANTS.LOAD];\n                        const tableIDs = Object.keys(loadUserMeta);\n                        tableIDs.forEach((tableID) => {\n                            // Load View\n                            const userTableMeta = loadUserMeta[tableID];\n                            if(userTableMeta[CONSTANTS.LOAD]) {\n                                const viewIDs = userTableMeta[CONSTANTS.LOAD];\n                                collaboratorDS.activeUserLoadMetaIDs(ID, tableID, viewIDs)\n                            }\n                        })\n                    }\n                }\n            }\n        }\n\n        users = collaboratorsLoad[COLLABORATORS.INACTIVE_USERS];\n        if(users) {\n            for(let ID in users) {\n                user = users[ID]; // TODO: need to remove permission\n                collaboratorDS.addInactiveUser(ID, user[USER.ID], user[USER.NAME], user[USER.EMAIL], user[USER.ROLE], user[USER.MODULE_TYPE], user[USER.IS_ENABLED], user[USER.IS_EDITABLE_USER]);\n                if(user[USER.META]) {\n                    const userMeta = user[USER.META];\n                    // Load Table\n                    if(userMeta[CONSTANTS.LOAD]) {\n                        const loadUserMeta = userMeta[CONSTANTS.LOAD];\n                        const tableIDs = Object.keys(loadUserMeta);\n                        tableIDs.forEach((tableID) => {\n                            // Load View\n                            const userTableMeta = loadUserMeta[tableID];\n                            if(userTableMeta[CONSTANTS.LOAD]) {\n                                const viewIDs = userTableMeta[CONSTANTS.LOAD];\n                                collaboratorDS.inactiveUserLoadMetaIDs(ID, tableID, viewIDs)\n                            }\n                        })\n                    }\n                }\n            }\n        }\n\n        users = collaboratorsLoad[COLLABORATORS.REMOVED_USERS];\n        if(users) {\n            for(let ID in users) {\n                user = users[ID]; // TODO: need to remove permission\n                collaboratorDS.addRemovedUser(ID, user[USER.ID], user[USER.NAME], user[USER.EMAIL], user[USER.ROLE]);\n            }\n        }\n\n        users = collaboratorsLoad[COLLABORATORS.ANONYMOUS_USERS];\n        if(users) {\n            for(let ID in users) {\n                user = users[ID];\n                collaboratorDS.addAnonymousUser(ID, user[USER.ID], user[USER.NAME], user[USER.EMAIL], user[USER.ROLE], user[USER.MODULE_TYPE]);\n            }\n        }\n\n        users = collaboratorsLoad[COLLABORATORS.SCHEDULER_USERS];\n        if(users) {\n            for(let ID in users) {\n                user = users[ID];\n                collaboratorDS.addSystemUser(ID, user[USER.ID], user[USER.NAME] ? user[USER.NAME] : \"Scheduler User\", user[USER.EMAIL], user[USER.ROLE], user[USER.MODULE_TYPE]);\n            }\n        }\n    }\n\n\tonSnapWizOrderUpdate(wizOrder: WizID[]) {\n\t\tthis.dataStore.setWizOrder(wizOrder);\n\t}\n\n    onWizHeightUpdate(wizID: string, height: number) {\n        this.dataStore.getWizDS(wizID).setHeight(height);\n    }\n\n\tonWizWidthUpdate(wizID: string, width: number) {\n        this.dataStore.getWizDS(wizID).setWidth(width);\n    }\n\n\tonWizCardLoad(wizID: string, cardMetas: any) {\n        const wizDS = this.dataStore.getWizDS(wizID);\n\t\twizDS.clearCards();\n\t\tfor (let i = 0; i < cardMetas.length; i++) {\n\t\t\tconst card = cardMetas[i];\n\t\t\tconst [cardID, row, column, height, width, type] = card;\n\t\t\twizDS.loadCard(cardID, row, column, height, width, type);\n\t\t}\n    }\n\t\n\tonAggregationFieldsMetaLoad(wizID: string, cardID: string, fieldsMeta: any) {\n        const cardDS = this.getCardDS(wizID, cardID);\n        if(!cardDS) {return}\n        const componentDS = cardDS.getComponentDS() as DSAggregation;\n\n        const fieldsMap = new Map();\n        for(const fieldArray of fieldsMeta) {\n            const [fieldID, name, type, properties] = fieldArray;\n\n            const field = new Field()\n            const fieldType = FieldTypeFactory.getFieldTypeInstance(type + \"\", properties);\n            field.setName(name);\n            field.setType(fieldType)\n        \n            fieldsMap.set(fieldID, field);\n        }\n        \n        componentDS.setFields(fieldsMap);\n    }\n\n    onAggregationFieldUpdate(wizID: string, cardID: string, fieldID: string) {\n        const cardDS = this.getCardDS(wizID, cardID);\n        if(!cardDS) {return}\n        const componentDS = cardDS.getComponentDS() as DSAggregation;\n\t\t\n\t\tcomponentDS.setFieldID(fieldID);\n    }\n\n    onAggregationFormulaUpdate(wizID: string, cardID: string, formula: string) {\n        const cardDS = this.getCardDS(wizID, cardID);\n        if(!cardDS) {return}\n        const componentDS = cardDS.getComponentDS() as DSAggregation;\n\t\t\n\t\tcomponentDS.setFormula(parseInt(formula));\n    }\n\n    onAggregationShowSecondaryLabelUpdate(wizID: string, cardID: string, showSecondaryLabel: boolean) {\n        const cardDS = this.getCardDS(wizID, cardID);\n        if(!cardDS) {return}\n        const componentDS = cardDS.getComponentDS() as DSAggregation;\n\t\t\n\t\tcomponentDS.setShowSecondaryLabel(showSecondaryLabel);\n    }\n\n    onAggregationShowSecondaryValueUpdate(wizID: string, cardID: string, showSecondaryValue: boolean) {\n        const cardDS = this.getCardDS(wizID, cardID);\n        if(!cardDS) {return}\n        const componentDS = cardDS.getComponentDS() as DSAggregation;\n\t\t\n\t\tcomponentDS.setShowSecondaryValue(showSecondaryValue);\n    }\n\n    onAggregationShowDifferenceUpdate(wizID: string, cardID: string, showDifference: boolean) {\n        const cardDS = this.getCardDS(wizID, cardID);\n        if(!cardDS) {return}\n        const componentDS = cardDS.getComponentDS() as DSAggregation;\n\t\t\n\t\tcomponentDS.setShowDifference(showDifference);\n    }\n\n    onAggregationTitleUpdate(wizID: string, cardID: string, title: string) {\n        const cardDS = this.getCardDS(wizID, cardID);\n        if(!cardDS) {return}\n        const componentDS = cardDS.getComponentDS() as DSAggregation;\n\t\t\n\t\tcomponentDS.setTitle(title);\n    }\n\n    onAggregationColorUpdate(wizID: string, cardID: string, color: string) {\n        const cardDS = this.getCardDS(wizID, cardID);\n        if(!cardDS) {return}\n        const componentDS = cardDS.getComponentDS() as DSAggregation;\n\t\t\n\t\tcomponentDS.setColor(color);\n    }\n\n    onAggregationAlignTypeUpdate(wizID: string, cardID: string, alignType: string) {\n        const cardDS = this.getCardDS(wizID, cardID);\n        if(!cardDS) {return}\n        const componentDS = cardDS.getComponentDS() as DSAggregation;\n\t\t\n\t\tcomponentDS.setAlignType(parseInt(alignType));\n    }\n\n    onAggregationPrimaryValueUpdate(wizID: string, cardID: string, primaryValue: any) {\n        const cardDS = this.getCardDS(wizID, cardID);\n        if(!cardDS) {return}\n        const componentDS = cardDS.getComponentDS() as DSAggregation;\n\t\t\n        const value = parseFloat(primaryValue)\n\t\tcomponentDS.setPrimaryValue(isNaN(value) ? null : value);\n    }\n\n    onAggregationSecondaryLabelUpdate(wizID: string, cardID: string, secondaryLabel: string) {\n        const cardDS = this.getCardDS(wizID, cardID);\n        if(!cardDS) {return}\n        const componentDS = cardDS.getComponentDS() as DSAggregation;\n\t\t\n\t\tcomponentDS.setSecondaryLabel(secondaryLabel);\n    }\n\n    onAggregationSecondaryValueUpdate(wizID: string, cardID: string, secondaryValue: any) {\n        const cardDS = this.getCardDS(wizID, cardID);\n        if(!cardDS) {return}\n        const componentDS = cardDS.getComponentDS() as DSAggregation;\n\t\t\n        const value = parseFloat(secondaryValue)\n\t\tcomponentDS.setSecondaryValue(isNaN(value) ? null : value);\n    }\n\n    onAggregationDifferenceUpdate(wizID: string, cardID: string, difference: any) {\n        const cardDS = this.getCardDS(wizID, cardID);\n        if(!cardDS) {return}\n        const componentDS = cardDS.getComponentDS() as DSAggregation;\n\t\t\n        const value = parseFloat(difference)\n\t\tcomponentDS.setDifference(isNaN(value) ? null : value);\n    }\n\n    onAggregationGroupByTypeUpdate(wizID: string, cardID: string, groupByType: string) {\n        const cardDS = this.getCardDS(wizID, cardID);\n        if(!cardDS) {return}\n        const componentDS = cardDS.getComponentDS() as DSAggregation;\n\n        componentDS.setGroupByType(parseInt(groupByType));\n    }\n\n    onAggregationGroupByFieldIDUpdate(wizID: string, cardID: string, groupByFieldID: string) {\n        const cardDS = this.getCardDS(wizID, cardID);\n        if(!cardDS) {return}\n        const componentDS = cardDS.getComponentDS() as DSAggregation;\n\n        componentDS.setGroupByFieldID(groupByFieldID);\n    }\n\n    onChartTypeUpdate(wizID: string, cardID: string, type: string) {\n        const cardDS = this.getCardDS(wizID, cardID);\n        if(!cardDS) {return}\n\t\tconst chartDS = cardDS.getComponentDS() as DSChart;\n        chartDS.setChartType(parseInt(type));\n    }\n\n    onChartFieldsMetaLoad(wizID: string, cardID: string, fields: any) {\n        const cardDS = this.getCardDS(wizID, cardID);\n        if(!cardDS) {return}\n\t\tconst chartDS = cardDS.getComponentDS() as DSChart;\n        \n\t\tconst fieldsMap = new Map();\n\t\tfor(const fieldArray of fields) {\n\t\t\tconst [fieldID, name, type, properties] = fieldArray;\n\n\t\t\tconst field = new Field()\n\t\t\tconst fieldType = FieldTypeFactory.getFieldTypeInstance(`${type}`, properties);\n\t\t\tfield.setName(name);\n\t\t\tfield.setType(fieldType)\n\t\t\n\t\t\tfieldsMap.set(fieldID, field);\n\t\t}\n\n        chartDS.setFields(fieldsMap);\n    }\n\n    // onChartFieldsToPlotUpdate(wizID: string, cardID: string, fieldsToPlot: any) {\n    //     const cardDS = this.getCardDS(wizID, cardID);\n    //     if(!cardDS) {return}\n\t// \tconst chartDS = cardDS.getComponentDS() as DSChart;\n        \n    //     // chartDS.updateFieldToPlot(fieldsToPlot);\n    // }\n\n    onChartGroupByFieldUpdate(wizID: string, cardID: string, groupByFieldID: string) {\n        const cardDS = this.getCardDS(wizID, cardID);\n        if(!cardDS) {return}\n\t\tconst chartDS = cardDS.getComponentDS() as DSChart;\n        \n        chartDS.setGroupByFieldID(groupByFieldID);\n    }\n\n    onChartTitleUpdate(wizID: string, cardID: string, title: string) {\n        const cardDS = this.getCardDS(wizID, cardID);\n        if(!cardDS) {return}\n\t\tconst chartDS = cardDS.getComponentDS() as DSChart;\n        \n        chartDS.setTitle(title);\n    }\n\n    onChartXAxisLabelUpdate(wizID: string, cardID: string, label: string) {\n        const cardDS = this.getCardDS(wizID, cardID);\n        if(!cardDS) {return}\n\t\tconst chartDS = cardDS.getComponentDS() as DSChart;\n        \n        chartDS.setXAxisLabel(label);\n    }\n\n    onChartYAxisLabelUpdate(wizID: string, cardID: string, label: string) {\n        const cardDS = this.getCardDS(wizID, cardID);\n        if(!cardDS) {return}\n\t\tconst chartDS = cardDS.getComponentDS() as DSChart;\n        \n        chartDS.setYAxisLabel(label);\n    }\n\n    onChartLegendPositionUpdate(wizID: string, cardID: string, position: number) {\n        const cardDS = this.getCardDS(wizID, cardID);\n        if(!cardDS) {return}\n        const chartDS = cardDS.getComponentDS() as DSChart;\n        chartDS.setLegendPosition(position);\n    }\n\n\tonChartColorThemeUpdate(wizID: string, cardID: string, color: string) {\n        const cardDS = this.getCardDS(wizID, cardID);\n        if(!cardDS) {return}\n        const chartDS = cardDS.getComponentDS() as DSChart;\n        chartDS.setColorTheme(parseInt(color));\n    }\n\n\tonChartDataUpdate(wizID: string, cardID: string, data: any) {\n        const cardDS = this.getCardDS(wizID, cardID);\n        if(!cardDS) {return}\n        const chartDS = cardDS.getComponentDS() as DSChart;\n        chartDS.setData(data);\n    }\n\n\tonRTEHtmlUpdate(wizID: string, cardID: string, html: string) {\n        const cardDS = this.getCardDS(wizID, cardID);\n        if(!cardDS) {return}\n        const rteDS = cardDS.getComponentDS() as DSRte;\n        rteDS.setHtml(html);\n    }\n\n    onGridTableUpdate(wizID: string, cardID: string, tableID: string) {\n        const cardDS = this.getCardDS(wizID, cardID);\n        if(!cardDS) {return}\n        const gridDS = cardDS.getComponentDS() as DSGrid;\n        gridDS.setTable(tableID, \"\");\n    }\n\n\tonGridFieldLoad(wizID: string, cardID: string, fieldMetas: any) {\n        const cardDS = this.getCardDS(wizID, cardID);\n        if(!cardDS) {return}\n        const gridDS = cardDS.getComponentDS() as DSGrid;\n\n\t\tconst fields = new Map()\n\t\tfor(const fieldMeta of fieldMetas) {\n\t\t\tconst [fieldID, name, status, type, properties, isEphiApplied] = fieldMeta;\n\t\t\tconst field = new Field()\n\t\t\tconst fieldType = FieldTypeFactory.getFieldTypeInstance(type + \"\", properties);\n\t\t\tfield.setName(name);\n\t\t\tfield.setType(fieldType)\n\t\t\tfield.setStatus(status);\n\t\t\tfield.setEphiCompliant(isEphiApplied === 1 || isEphiApplied === true);\n\n\t\t\tfields.set(fieldID, field);\n\t\t}\n\n        gridDS.setFields(fields);\n    }\n\n\tonGridFieldOrderLoad(wizID: string, cardID: string, fieldMetas: any) {\n        const cardDS = this.getCardDS(wizID, cardID);\n        if(!cardDS) {return}\n        const gridDS = cardDS.getComponentDS() as DSGrid;\n\t\tgridDS.clearFields();\n\t\tconst order = []\n\t\tfor (let i = 0; i < fieldMetas.length; i++) {\n\t\t\tconst fieldMeta = fieldMetas[i];\n\t\t\tconst [fieldID, width] = fieldMeta;\n\t\t\t\n\t\t\tgridDS.setFieldWidth(fieldID, width);\n\t\t\torder.push(fieldID);\n\t\t}\n\t\tgridDS.setFieldOrder(order);\n    }\n\n\tonGridTitleUpdate(wizID: string, cardID: string, title: string) {\n        const cardDS = this.getCardDS(wizID, cardID);\n        if(!cardDS) {return}\n        const gridDS = cardDS.getComponentDS() as DSGrid;\n        gridDS.setTitle(title);\n    }\n\n\tonGridRecordHeightUpdate(wizID: string, cardID: string, recordHeight: number) {\n        const cardDS = this.getCardDS(wizID, cardID);\n        if(!cardDS) {return}\n        const gridDS = cardDS.getComponentDS() as DSGrid;\n        gridDS.setRecordHeight(recordHeight);\n    }\n\n\tonGridRecordOrderUpdate(wizID: string, cardID: string, recordOrder: any) {\n        const cardDS = this.getCardDS(wizID, cardID);\n        if(!cardDS) {return}\n        const gridDS = cardDS.getComponentDS() as DSGrid;\n        gridDS.setRecordOrder(recordOrder);\n    }\n\n    getCardDS(wizID: WizID, cardID: string) {\n        return this.dataStore.getWizDS(wizID).getCardDS(cardID);\n    }\n\t\n}","import { FetchPublishSnapAction } from \"../../Actions/FetchPublishSnapAction.js\";\nimport { FAILURE, SNAP_PASSWORD } from \"../../Constants/PublishSnapConstants\";\nimport { DSSnapPublish } from \"../../DataStore/DS/Storage/Snap/DSSnapPublish\";\nimport { PasswordDialog } from \"../../Form/FormView/UIFiles/PasswordDialog.js\";\nimport { getTemplate } from \"../../TemplatesForAll.js\";\nimport { SnapPublishPage } from \"./SnapPublishPage\";\nimport { SnapPublishPageActions } from \"./SnapPublishPageActions\";\nimport { SnapPublishPageParser } from \"./SnapPublishPageParser\";\n\nimport \"../../../css/less/snap/snappublish.less\";\n\nconst snapURL     = location.href;\nconst loader      = (getTemplate(\"loaderTemplate\") as HTMLTemplateElement).querySelector(\".ZT-loader\") as HTMLElement;             // NO I18N\n\ndocument.body.append(loader);\n\nFetchPublishSnapAction(snapURL).then((response) => {\n\tif(response.hasOwnProperty(SNAP_PASSWORD)) {\n\t\tconst hasPassword = response[SNAP_PASSWORD];\n\t\tif(hasPassword){\n\t\t\tshowPasswordPage(() => loader.classList.add(\"loaded\"));\n\t\t\treturn;\n\t\t}\n\t}\n\n\tinitializeSnap(response, () => loader.classList.add(\"loaded\")); // NO I18N\n});\n\nfunction showPasswordPage(callBack: Function) {\n\tconst passwordDialog = new PasswordDialog((password: string) => {\n\t\tFetchPublishSnapAction(snapURL, password).then((response: any) => {\n\t\t\tif(response.hasOwnProperty(FAILURE)) {\n\t\t\t\tpasswordDialog.showErrorState();\n\t\t\t\tpasswordDialog.hideLoader();\n\t\t\t}\n\t\t\telse {\n\t\t\t\tpasswordDialog.hideLoader();\n\t\t\t\tpasswordDialog.remove();\n\t\t\t\tinitializeSnap(response)\n\t\t\t}\n\t\t}).catch(() => {\n\t\t\tpasswordDialog.hideLoader();\n\t\t})\n\t});\n\tcallBack && callBack();\n\tpasswordDialog.appendTo(document.body);\n}\n\nfunction initializeSnap(response: any, callback?: Function) {\n\t\n\tconst snapPublishDataStore = new DSSnapPublish()\n\tconst snapPublisherParser  = new SnapPublishPageParser(snapPublishDataStore);\n\tsnapPublisherParser.process(response);\n\n\tconst snapPublishPageActions = new SnapPublishPageActions(snapURL, snapPublishDataStore, snapPublisherParser);\n\tconst snapPublishPageManager = new SnapPublishPage(document.body, snapPublishDataStore, snapPublishPageActions);\n\tcallback && callback()\n\n\t//TODO: remove fix for grid\n\tTable.Data = {}\n\tTable.Data.Workspace = {\n\t\tget() {\n\t\t\treturn {\n\t\t\t\tgetColor() {\n\t\t\t\t\treturn snapPublishDataStore.getColor()\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n","export const attachmentSVG = ctx => {\n\tctx.save();\n\tctx.strokeStyle=\"rgba(0,0,0,0)\";// No I18N\n\tctx.fillStyle=\"#555\"; // No I18N\n\tctx.miterLimit=4;\n\tctx.font=\"15px / 21.4286px ''\";// No I18N\n\tctx.font=\"   15px \";// No I18N\n\tctx.scale(0.25,0.25);\n\tctx.scale(0.25,0.25);\n\tctx.save();\n\tctx.font=\"   15px \";// No I18N\n\tctx.beginPath();\n\tctx.moveTo(108.63,250.81);\n\tctx.translate(108.59264953305282,164.93000812213234);\n\tctx.rotate(0);\n\tctx.arc(0,0,85.88,1.5703614121683869,3.927216078328944,0);\n\tctx.rotate(0);\n\tctx.translate(-108.59264953305282,-164.93000812213234);\n\tctx.lineTo(112.88,39.19);\n\tctx.translate(153.85,80.16);\n\tctx.rotate(0);\n\tctx.arc(0,0,57.9403296504257,-2.356194490192345,0.7853981633974483,0);\n\tctx.rotate(0);\n\tctx.translate(-153.85,-80.16);\n\tctx.lineTo(144,172);\n\tctx.translate(121.41421356237309,146.5857864376269);\n\tctx.rotate(0);\n\tctx.arc(0,0,34,0.8442556693445297,3.8681333110401606,0);\n\tctx.rotate(0);\n\tctx.translate(-121.41421356237309,-146.5857864376269);\n\tctx.lineTo(146.85,73.15);\n\tctx.translate(153.1857109945314,80.88684471821517);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,-2.2569565694079188,0.6897126367457904,0);\n\tctx.rotate(0);\n\tctx.translate(-153.1857109945314,-80.88684471821517);\n\tctx.lineTo(110.05000000000001,138.11);\n\tctx.translate(120.55096698785049,147.36903301214954);\n\tctx.rotate(0);\n\tctx.arc(0,0,14,-2.418962836831975,-5.435018797142508,1);\n\tctx.rotate(0);\n\tctx.translate(-120.55096698785049,-147.36903301214954);\n\tctx.lineTo(180.66,107);\n\tctx.translate(153.74611800920658,80.25889762583363);\n\tctx.rotate(0);\n\tctx.arc(0,0,37.94,0.7821779775852026,-2.353160680299787,1);\n\tctx.rotate(0);\n\tctx.translate(-153.74611800920658,-80.25889762583363);\n\tctx.lineTo(62,118.35);\n\tctx.translate(108.61,164.95499999999998);\n\tctx.rotate(0);\n\tctx.arc(0,0,65.91295870312605,-2.3562481296280064,0.7853445239617867,1);\n\tctx.rotate(0);\n\tctx.translate(-108.61,-164.95499999999998);\n\tctx.lineTo(245.62,121.16);\n\tctx.translate(252.695,128.23000000000002);\n\tctx.rotate(0);\n\tctx.arc(0,0,10.002026044757129,-2.356547971973309,0.7850446816164842,0);\n\tctx.rotate(0);\n\tctx.translate(-252.695,-128.23000000000002);\n\tctx.lineTo(169.35999999999999,225.71);\n\tctx.translate(108.76179637287215,165.11010134360657);\n\tctx.rotate(0);\n\tctx.arc(0,0,85.7,0.78541214900641,1.5723342080647171,0);\n\tctx.rotate(0);\n\tctx.translate(-108.76179637287215,-165.11010134360657);\n\tctx.closePath();\n\tctx.fill();\n\tctx.stroke();\n\tctx.restore();\n\tctx.restore();\n};\n\nconst CG = globalThis.CraftGrid;\nCG.Nodes.Fusion.SVG.Register(\"attachment\", attachmentSVG, 17, 14.571428571428571, 2.4285714285714284); //NO I18N\n","export const autoNumberSVG = ctx => {\n\tctx.save();\n\tctx.strokeStyle=\"rgba(0,0,0,0)\"; // No I18N\n\tctx.fillStyle=\"#555\"; // No I18N\n\tctx.miterLimit=4;\n\tctx.font=\"15px / 21.4286px ''\"; // No I18N\n\tctx.font=\"   15px \"; // No I18N\n\tctx.scale(0.25,0.25);\n\tctx.scale(0.25,0.25);\n\tctx.save();\n\tctx.font=\"   15px \"; // No I18N\n\tctx.beginPath();\n\tctx.moveTo(92,11.18);\n\tctx.translate(87.28209377555144,19.99710614982657);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,-1.0794757991300414,-2.159411015061086,1);\n\tctx.rotate(0);\n\tctx.translate(-87.28209377555144,-19.99710614982657);\n\tctx.lineTo(29.230000000000004,46.68);\n\tctx.translate(34.45194773930101,55.208262531606835);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,-2.1202187858056467,0.9461564035226613,1);\n\tctx.rotate(0);\n\tctx.translate(-34.45194773930101,-55.208262531606835);\n\tctx.lineTo(77.3,38.69);\n\tctx.lineTo(77.3,230);\n\tctx.translate(87.3,230);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,3.141592653589793,6.283185307179586,1);\n\tctx.rotate(0);\n\tctx.translate(-87.3,-230);\n\tctx.lineTo(97.3,20);\n\tctx.translate(87.30000222133269,20.00666533185224);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,-0.000666533234485422,-1.0815058004423013,1);\n\tctx.rotate(0);\n\tctx.translate(-87.30000222133269,-20.00666533185224);\n\tctx.closePath();\n\tctx.fill();\n\tctx.stroke();\n\tctx.restore();\n\tctx.save();\n\tctx.font=\"   15px \"; // No I18N\n\tctx.beginPath();\n\tctx.moveTo(234.62,220);\n\tctx.lineTo(171.44,220);\n\tctx.lineTo(223.9,167.26);\n\tctx.translate(187.44164848345133,130.40658489779037);\n\tctx.rotate(0);\n\tctx.arc(0,0,51.84,0.7907869267545551,0.007974912893317088,1);\n\tctx.rotate(0);\n\tctx.translate(-187.44164848345133,-130.40658489779037);\n\tctx.translate(188.52007557758864,130.73240644379987);\n\tctx.rotate(0);\n\tctx.arc(0,0,50.76,0.0017256422315324452,-2.843410951390001,1);\n\tctx.rotate(0);\n\tctx.translate(-188.52007557758864,-130.73240644379987);\n\tctx.translate(149.56,118.75999999999999);\n\tctx.rotate(0);\n\tctx.arc(0,0,10.001859827052169,-2.843240737586207,0.2983519160035861,1);\n\tctx.rotate(0);\n\tctx.translate(-149.56,-118.75999999999999);\n\tctx.translate(188.52004890459176,130.74514921975378);\n\tctx.rotate(0);\n\tctx.arc(0,0,30.76,-2.8431254054552824,0.001783186258610403,0);\n\tctx.rotate(0);\n\tctx.translate(-188.52004890459176,-130.74514921975378);\n\tctx.translate(187.3922821132642,130.41849249555338);\n\tctx.rotate(0);\n\tctx.arc(0,0,31.89,0.011963518507103406,0.7868125906879031,0);\n\tctx.rotate(0);\n\tctx.translate(-187.3922821132642,-130.41849249555338);\n\tctx.lineTo(209.78,153.13);\n\tctx.lineTo(140.29,223);\n\tctx.translate(147.43129944947725,230.00013158254154);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,-2.3661767315714215,-4.70725901293647,1);\n\tctx.rotate(0);\n\tctx.translate(-147.43129944947725,-230.00013158254154);\n\tctx.lineTo(234.62,240);\n\tctx.translate(234.62,230);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,1.5707963267948966,4.71238898038469,1);\n\tctx.rotate(0);\n\tctx.translate(-234.62,-230);\n\tctx.closePath();\n\tctx.fill();\n\tctx.stroke();\n\tctx.restore();\n\tctx.restore();\n};\n\nconst CG = globalThis.CraftGrid;\nCG.Nodes.Fusion.SVG.Register(\"autonumber\", autoNumberSVG, 17, 14.571428571428571, 2.4285714285714284); //NO I18N\n","import { ZSGrid } from \"../Importer.js\";\nconst getModifiedColor = ZSGrid.getModifiedColor;\n\nexport const CheckBoxChecked = (ctx, {\n\tstrokeStyle,\n\tfillStyle\n}) => {\n\tctx.save();\n\t// ctx.strokeStyle=\"rgba(0,0,0,0)\"; //No I18N\n\t// ctx.fillStyle=\"red\"; // No I18N\n\tctx.strokeStyle = strokeStyle;\n\tctx.fillStyle = getModifiedColor(fillStyle);\n\tctx.miterLimit = 4;\n\tctx.font = \"15px / 21.4286px ''\"; //No I18N\n\tctx.font = \"   15px \"; //No I18N\n\tctx.scale(0.25, 0.25);\n\tctx.scale(0.25, 0.25);\n\tctx.save();\n\tctx.font = \"   15px \"; // No I18N\n\tctx.save();\n\tctx.fillStyle = \"transparent\"; // No I18N\n\tctx.font = \"   15px \"; // No I18N\n\tctx.beginPath();\n\tctx.moveTo(229.38, 270);\n\tctx.lineTo(50.62, 270);\n\tctx.translate(50.67995581733058, 229.32004418266942);\n\tctx.rotate(0);\n\tctx.arc(0, 0, 40.68, 1.5722701674791804, 3.14011881290551, 0);\n\tctx.rotate(0);\n\tctx.translate(-50.67995581733058, -229.32004418266942);\n\tctx.lineTo(10, 50.62);\n\tctx.translate(50.67995581733058, 50.67995581733058);\n\tctx.rotate(0);\n\tctx.arc(0, 0, 40.68, -3.1401188129055515, -1.5722701674792219, 0);\n\tctx.rotate(0);\n\tctx.translate(-50.67995581733058, -50.67995581733058);\n\tctx.lineTo(229.38, 10);\n\tctx.translate(229.32004418266942, 50.67995581733058);\n\tctx.rotate(0);\n\tctx.arc(0, 0, 40.68, -1.5693224861106132, -0.0014738406842835783, 0);\n\tctx.rotate(0);\n\tctx.translate(-229.32004418266942, -50.67995581733058);\n\tctx.lineTo(270, 229.38);\n\tctx.translate(229.32004418266942, 229.32004418266942);\n\tctx.rotate(0);\n\tctx.arc(0, 0, 40.68, 0.0014738406842418014, 1.5693224861105717, 0);\n\tctx.rotate(0);\n\tctx.translate(-229.32004418266942, -229.32004418266942);\n\tctx.closePath();\n\tctx.moveTo(50.62, 31.67);\n\tctx.translate(50.66993438297608, 50.66993438297608);\n\tctx.rotate(0);\n\tctx.arc(0, 0, 19, -1.5734244552401293, -3.1389645251445604, 1);\n\tctx.rotate(0);\n\tctx.translate(-50.66993438297608, -50.66993438297608);\n\tctx.lineTo(31.67, 229.38);\n\tctx.translate(50.6699999998861, 229.3800657895873);\n\tctx.rotate(0);\n\tctx.arc(0, 0, 19, -3.141589191001096, -4.7097573984270955, 1);\n\tctx.rotate(0);\n\tctx.translate(-50.6699999998861, -229.3800657895873);\n\tctx.lineTo(229.38, 248.38);\n\tctx.translate(229.38, 229.38);\n\tctx.rotate(0);\n\tctx.arc(0, 0, 19, 1.5707963267948966, 0, 1);\n\tctx.rotate(0);\n\tctx.translate(-229.38, -229.38);\n\tctx.lineTo(248.38, 50.62);\n\tctx.translate(229.3800657895873, 50.669999999886095);\n\tctx.rotate(0);\n\tctx.arc(0, 0, 19, -0.002631581978755013, -1.5707997894047538, 1);\n\tctx.rotate(0);\n\tctx.translate(-229.3800657895873, -50.669999999886095);\n\tctx.closePath();\n\tctx.fill();\n\tctx.stroke();\n\tctx.restore();\n\tctx.save();\n\tctx.font = \"   15px \"; // No I18N\n\tctx.beginPath();\n\tctx.moveTo(124.37, 202.29);\n\tctx.translate(124.36530850905089, 188.8000008157927);\n\tctx.rotate(0);\n\tctx.arc(0, 0, 13.49, 1.5704485513283513, 2.3402228072557456, 0);\n\tctx.rotate(0);\n\tctx.translate(-124.36530850905089, -188.8000008157927);\n\tctx.lineTo(69.85, 155);\n\tctx.translate(79.01671711851702, 145.03491609322396);\n\tctx.rotate(0);\n\tctx.arc(0, 0, 13.54, 2.3144888582358063, -0.7802610785416171, 0);\n\tctx.rotate(0);\n\tctx.translate(-79.01671711851702, -145.03491609322396);\n\tctx.lineTo(123, 168.59);\n\tctx.lineTo(190.09, 82.9);\n\tctx.translate(200.755, 91.25);\n\tctx.rotate(0);\n\tctx.arc(0, 0, 13.544915097555988, -2.4773442637407515, 0.6642483898490417, 0);\n\tctx.rotate(0);\n\tctx.translate(-200.755, -91.25);\n\tctx.lineTo(135, 197.1);\n\tctx.translate(124.33397276451312, 188.7430649750131);\n\tctx.rotate(0);\n\tctx.arc(0, 0, 13.55, 0.6646046441082369, 1.500921973134507, 0);\n\tctx.rotate(0);\n\tctx.translate(-124.33397276451312, -188.7430649750131);\n\tctx.bezierCurveTo(125, 202.28, 124.69, 202.29, 124.37, 202.29);\n\tctx.closePath();\n\tctx.fill();\n\tctx.stroke();\n\tctx.restore();\n\tctx.restore();\n\tctx.restore();\n};\n\nconst CG = globalThis.CraftGrid;\nCG.Nodes.Fusion.SVG.Register(\"checkBoxChecked\", CheckBoxChecked, 17, 14.571428571428571, 2.4285714285714284); //NO I18N\n","export const checkBoxSVG = ctx => {\n\tctx.save();\n\tctx.strokeStyle=\"rgba(0,0,0,0)\"; // No I18N\n\tctx.fillStyle=\"#555\"; // No I18N\n\tctx.miterLimit=4;\n\tctx.font=\"15px / 21.4286px ''\"; // No I18N\n\tctx.font=\"   15px \"; // No I18N\n\tctx.scale(0.25,0.25);\n\tctx.scale(0.25,0.25);\n\tctx.save();\n\tctx.font=\"   15px \"; // No I18N\n\tctx.beginPath();\n\tctx.moveTo(84.77,99.82);\n\tctx.translate(77.85500011932213,107.04500011420242);\n\tctx.rotate(0);\n\tctx.arc(0,0,10.000892460175743,-0.807318289364697,-3.948910913152168,1);\n\tctx.rotate(0);\n\tctx.translate(-77.85500011932213,-107.04500011420242);\n\tctx.lineTo(115.4,156.82);\n\tctx.translate(122.31856275145861,149.59964755333024);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,2.3348531162284174,0.7923925811632162,1);\n\tctx.rotate(0);\n\tctx.translate(-122.31856275145861,-149.59964755333024);\n\tctx.lineTo(234.68,52.88);\n\tctx.translate(228.0742042358595,45.37243965575613);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,0.8492058375123104,3.880179900816895,1);\n\tctx.rotate(0);\n\tctx.translate(-228.0742042358595,-45.37243965575613);\n\tctx.lineTo(122.24000000000001,135.64);\n\tctx.closePath();\n\tctx.fill();\n\tctx.stroke();\n\tctx.restore();\n\tctx.save();\n\tctx.font=\"   15px \"; // No I18N\n\tctx.beginPath();\n\tctx.moveTo(235,100.36);\n\tctx.translate(235,110.36);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,-1.5707963267948966,-3.141592653589793,1);\n\tctx.rotate(0);\n\tctx.translate(-235,-110.36);\n\tctx.lineTo(225,192.5);\n\tctx.translate(197.46002900655697,192.46002900655697);\n\tctx.rotate(0);\n\tctx.arc(0,0,27.54,0.0014513800826467772,1.5693449467122418,0);\n\tctx.rotate(0);\n\tctx.translate(-197.46002900655697,-192.46002900655697);\n\tctx.lineTo(72.5,220);\n\tctx.translate(72.53997099344302,192.46002900655697);\n\tctx.rotate(0);\n\tctx.arc(0,0,27.54,1.5722477068775473,3.140141273507142,0);\n\tctx.rotate(0);\n\tctx.translate(-72.53997099344302,-192.46002900655697);\n\tctx.lineTo(45,67.5);\n\tctx.translate(72.53997099344302,67.53997099344302);\n\tctx.rotate(0);\n\tctx.arc(0,0,27.54,-3.1401412735071466,-1.5722477068775516,0);\n\tctx.rotate(0);\n\tctx.translate(-72.53997099344302,-67.53997099344302);\n\tctx.lineTo(168.93,40);\n\tctx.translate(168.93,30);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,1.5707963267948966,4.71238898038469,1);\n\tctx.rotate(0);\n\tctx.translate(-168.93,-30);\n\tctx.lineTo(72.5,20);\n\tctx.translate(72.55996220072599,67.55996220072599);\n\tctx.rotate(0);\n\tctx.arc(0,0,47.56,-1.572057096698416,-3.1403318836862737,1);\n\tctx.rotate(0);\n\tctx.translate(-72.55996220072599,-67.55996220072599);\n\tctx.lineTo(25,192.5);\n\tctx.translate(72.55996220072599,192.44003779927402);\n\tctx.rotate(0);\n\tctx.arc(0,0,47.56,3.1403318836864,1.572057096698542,1);\n\tctx.rotate(0);\n\tctx.translate(-72.55996220072599,-192.44003779927402);\n\tctx.lineTo(197.5,240);\n\tctx.translate(197.44003779927402,192.44003779927402);\n\tctx.rotate(0);\n\tctx.arc(0,0,47.56,1.5695355568913771,0.0012607699035194209,1);\n\tctx.rotate(0);\n\tctx.translate(-197.44003779927402,-192.44003779927402);\n\tctx.lineTo(245,110.36);\n\tctx.translate(235,110.36);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,0,-1.5707963267948966,1);\n\tctx.rotate(0);\n\tctx.translate(-235,-110.36);\n\tctx.closePath();\n\tctx.fill();\n\tctx.stroke();\n\tctx.restore();\n\tctx.restore();\n};\n\nconst CG = globalThis.CraftGrid;\nCG.Nodes.Fusion.SVG.Register(\"checkbox\", checkBoxSVG, 17, 15, 2); //NO I18N\n","export const checkBoxUnChecked = (ctx, {strokeStyle}) => {\n\tctx.save();\n\t// ctx.strokeStyle=\"rgba(0,0,0,0)\"; //No I18N\n\tctx.strokeStyle=strokeStyle;\n\tctx.fillStyle=\"#ccc\"; // No I18N\n\tctx.miterLimit=4;\n\tctx.font=\"15px / 21.4286px ''\"; //No I18N\n\tctx.font=\"   15px \"; //No I18N\n\tctx.scale(0.25,0.25);\n\tctx.scale(0.25,0.25);\n\tctx.save();\n\tctx.font=\"   15px \";// No I18N\n\tctx.save();\n\tctx.fillStyle=\"#f7f7f7\";// No I18N\n\tctx.font=\"   15px \";// No I18N\n\tctx.beginPath();\n\tctx.moveTo(50,20);\n\tctx.lineTo(230,20);\n\tctx.bezierCurveTo(246.5685424949238,20,260,33.431457505076196,260,50);\n\tctx.lineTo(260,230);\n\tctx.bezierCurveTo(260,246.5685424949238,246.5685424949238,260,230,260);\n\tctx.lineTo(50,260);\n\tctx.bezierCurveTo(33.431457505076196,260,20,246.5685424949238,20,230);\n\tctx.lineTo(20,50);\n\tctx.bezierCurveTo(20,33.431457505076196,33.431457505076196,20,50,20);\n\tctx.closePath();\n\tctx.fill();\n\tctx.stroke();\n\tctx.restore();\n\tctx.restore();\n\tctx.restore();\n};\n\nconst CG = globalThis.CraftGrid;\nCG.Nodes.Fusion.SVG.Register(\"checkBoxUnChecked\", checkBoxUnChecked, 17, 14.571428571428571, 2.4285714285714284); //NO I18N\n","\nexport const collaborationSVG = ctx => {\n\tctx.save();\n\tctx.strokeStyle=\"rgba(0,0,0,0)\";// No I18N\n\tctx.fillStyle=\"#555\"; // No I18N\n\tctx.miterLimit=4;\n\tctx.font=\"15px / 21.4286px ''\";// No I18N\n\tctx.font=\"   15px \";// No I18N\n\tctx.scale(0.25,0.25);\n\tctx.scale(0.25,0.25);\n\tctx.save();\n\tctx.font=\"   15px \";// No I18N\n\tctx.save();\n\tctx.font=\"   15px \";// No I18N\n\tctx.beginPath();\n\tctx.moveTo(154.88,139.84);\n\tctx.translate(121.00000194615318,102.32402697688177);\n\tctx.rotate(0);\n\tctx.arc(0,0,50.55,0.8362810975162889,-0.00027748718223108426,1);\n\tctx.rotate(0);\n\tctx.translate(-121.00000194615318,-102.32402697688177);\n\tctx.lineTo(171.55,72.31);\n\tctx.translate(120.84002461501855,72.35996453314868);\n\tctx.rotate(0);\n\tctx.arc(0,0,50.71,-0.000985299570755466,-1.5696136133465848,1);\n\tctx.rotate(0);\n\tctx.translate(-120.84002461501855,-72.35996453314868);\n\tctx.lineTo(113.14,21.65);\n\tctx.translate(113.18996452615897,72.34997538013333);\n\tctx.rotate(0);\n\tctx.arc(0,0,50.7,-1.571781820567018,-3.1404097069601837,1);\n\tctx.rotate(0);\n\tctx.translate(-113.18996452615897,-72.34997538013333);\n\tctx.lineTo(62.49,102.29);\n\tctx.translate(113.0099936060573,102.31541739427212);\n\tctx.rotate(0);\n\tctx.arc(0,0,50.52,-3.141089538084256,-3.9776042764144655,1);\n\tctx.rotate(0);\n\tctx.translate(-113.0099936060573,-102.31541739427212);\n\tctx.translate(116.92428235223456,240.16316857855085);\n\tctx.rotate(0);\n\tctx.arc(0,0,107.24,-1.9308600304348034,-2.571226796830145,1);\n\tctx.rotate(0);\n\tctx.translate(-116.92428235223456,-240.16316857855085);\n\tctx.translate(55.26104254371724,200.44000179902295);\n\tctx.rotate(0);\n\tctx.arc(0,0,33.89,-2.575377789236196,-4.712063145509723,1);\n\tctx.rotate(0);\n\tctx.translate(-55.26104254371724,-200.44000179902295);\n\tctx.lineTo(55.44,234.33);\n\tctx.lineTo(178.44,233.69000000000003);\n\tctx.translate(178.14020712610454,199.6913217281501);\n\tctx.rotate(0);\n\tctx.arc(0,0,34,1.5619787750682017,0.0034905444954218545,1);\n\tctx.rotate(0);\n\tctx.translate(-178.14020712610454,-199.6913217281501);\n\tctx.lineTo(212.14,199.70000000000002);\n\tctx.translate(178.8104287981044,199.5309334516444);\n\tctx.rotate(0);\n\tctx.arc(0,0,33.33,0.005072525454127271,-0.5816255713536262,1);\n\tctx.rotate(0);\n\tctx.translate(-178.8104287981044,-199.5309334516444);\n\tctx.translate(117.0918053179056,240.21238087575753);\n\tctx.rotate(0);\n\tctx.arc(0,0,107.25,-0.5824187302942136,-1.2107287476760311,1);\n\tctx.rotate(0);\n\tctx.translate(-117.0918053179056,-240.21238087575753);\n\tctx.closePath();\n\tctx.moveTo(113.14,133);\n\tctx.translate(113.17997396678562,102.31002603321437);\n\tctx.rotate(0);\n\tctx.arc(0,0,30.69,1.5720988350415066,3.140290145343184,0);\n\tctx.rotate(0);\n\tctx.translate(-113.17997396678562,-102.31002603321437);\n\tctx.lineTo(82.49000000000001,72.35);\n\tctx.translate(113.16997394345621,72.3899853579286);\n\tctx.rotate(0);\n\tctx.arc(0,0,30.68,-3.1402893495074045,-1.5717733133732978,0);\n\tctx.rotate(0);\n\tctx.translate(-113.16997394345621,-72.3899853579286);\n\tctx.lineTo(120.90000000000002,41.709999999999994);\n\tctx.translate(120.87002605654382,72.3899853579286);\n\tctx.rotate(0);\n\tctx.arc(0,0,30.68,-1.5698193402165206,-0.0013033040824144138,0);\n\tctx.rotate(0);\n\tctx.translate(-120.87002605654382,-72.3899853579286);\n\tctx.lineTo(151.55,102.35);\n\tctx.translate(120.8600260332144,102.31002603321437);\n\tctx.rotate(0);\n\tctx.arc(0,0,30.69,0.001302508246553596,1.569493818548231,0);\n\tctx.rotate(0);\n\tctx.translate(-120.8600260332144,-102.31002603321437);\n\tctx.closePath();\n\tctx.moveTo(192.14,199.87);\n\tctx.translate(178.2300315807393,199.84035923126874);\n\tctx.rotate(0);\n\tctx.arc(0,0,13.91,0.00213089799877908,1.5636094626795645,0);\n\tctx.rotate(0);\n\tctx.translate(-178.2300315807393,-199.84035923126874);\n\tctx.lineTo(55.329999999999984,214.39);\n\tctx.lineTo(55.259999999999984,214.39);\n\tctx.translate(55.26998561666371,200.49000358678248);\n\tctx.rotate(0);\n\tctx.arc(0,0,13.9,1.5715147165447259,3.14015406221463,0);\n\tctx.rotate(0);\n\tctx.translate(-55.26998561666371,-200.49000358678248);\n\tctx.translate(54.889579785620924,200.40340534614947);\n\tctx.rotate(0);\n\tctx.arc(0,0,13.52,3.1337083519464195,3.7078703165368725,0);\n\tctx.rotate(0);\n\tctx.translate(-54.889579785620924,-200.40340534614947);\n\tctx.translate(117.02983147667834,240.41972804821512);\n\tctx.rotate(0);\n\tctx.arc(0,0,87.43,-2.570373576361732,-0.5833674399670028,0);\n\tctx.rotate(0);\n\tctx.translate(-117.02983147667834,-240.41972804821512);\n\tctx.translate(178.64060826039926,199.59175417661362);\n\tctx.rotate(0);\n\tctx.arc(0,0,13.52,-0.5731597060067669,0.009485780078917538,0);\n\tctx.rotate(0);\n\tctx.translate(-178.64060826039926,-199.59175417661362);\n\tctx.closePath();\n\tctx.fill();\n\tctx.stroke();\n\tctx.restore();\n\tctx.save();\n\tctx.font=\"   15px \";// No I18N\n\tctx.beginPath();\n\tctx.moveTo(272.19,165.17);\n\tctx.translate(204.81237927012847,209.53107668645552);\n\tctx.rotate(0);\n\tctx.arc(0,0,80.67,-0.5822540591070625,-1.1591493533567645,1);\n\tctx.rotate(0);\n\tctx.translate(-204.81237927012847,-209.53107668645552);\n\tctx.translate(207.7600411605389,109.39690067042608);\n\tctx.rotate(0);\n\tctx.arc(0,0,39.33,0.729151282292047,-0.0014467503248349889,1);\n\tctx.rotate(0);\n\tctx.translate(-207.7600411605389,-109.39690067042608);\n\tctx.lineTo(247.09,87.53);\n\tctx.translate(207.52002017141518,87.56995454154784);\n\tctx.rotate(0);\n\tctx.arc(0,0,39.57,-0.0010097181787375113,-1.5692805357522455,1);\n\tctx.rotate(0);\n\tctx.translate(-207.52002017141518,-87.56995454154784);\n\tctx.lineTo(199,48);\n\tctx.translate(199,58);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,-1.5707963267948966,1.5707963267948966,1);\n\tctx.rotate(0);\n\tctx.translate(-199,-58);\n\tctx.lineTo(207.63,68);\n\tctx.translate(207.6100102197294,87.54998978027061);\n\tctx.rotate(0);\n\tctx.arc(0,0,19.55,-1.569773831462221,-0.0010224953326753994,0);\n\tctx.rotate(0);\n\tctx.translate(-207.6100102197294,-87.54998978027061);\n\tctx.lineTo(227.16,109.34);\n\tctx.translate(207.6100102197294,109.3200102197294);\n\tctx.rotate(0);\n\tctx.arc(0,0,19.55,0.0010224953325263112,1.569773831462072,0);\n\tctx.rotate(0);\n\tctx.translate(-207.6100102197294,-109.3200102197294);\n\tctx.lineTo(202,128.87);\n\tctx.translate(202,138.87);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,-1.5707963267948966,1.5707963267948966,1);\n\tctx.rotate(0);\n\tctx.translate(-202,-138.87);\n\tctx.lineTo(204.81,148.87);\n\tctx.translate(204.87913828551672,209.51996059271164);\n\tctx.rotate(0);\n\tctx.arc(0,0,60.65,-1.571936282285266,-0.581820644724553,0);\n\tctx.rotate(0);\n\tctx.translate(-204.87913828551672,-209.51996059271164);\n\tctx.translate(249.60180867059756,180.02997655055617);\n\tctx.rotate(0);\n\tctx.arc(0,0,7.08,-0.5732549957430321,0.022604106987356487,0);\n\tctx.rotate(0);\n\tctx.translate(-249.60180867059756,-180.02997655055617);\n\tctx.translate(249.31002667926168,180.1701694275096);\n\tctx.rotate(0);\n\tctx.arc(0,0,7.37,0.002690718645780268,1.5640156343004568,0);\n\tctx.rotate(0);\n\tctx.translate(-249.31002667926168,-180.1701694275096);\n\tctx.lineTo(249,187.54);\n\tctx.lineTo(236.62,188.01);\n\tctx.translate(236.805000037802,198.00999999930065);\n\tctx.rotate(0);\n\tctx.arc(0,0,10.001711103606223,-1.589294220466721,1.552298433123072,1);\n\tctx.rotate(0);\n\tctx.translate(-236.805000037802,-198.00999999930065);\n\tctx.lineTo(237.37,208.01);\n\tctx.lineTo(249.61,207.54999999999998);\n\tctx.translate(249.17000076326408,180.11352791134266);\n\tctx.rotate(0);\n\tctx.arc(0,0,27.44,1.55476068195736,0.00023586329144764662,1);\n\tctx.rotate(0);\n\tctx.translate(-249.17000076326408,-180.11352791134266);\n\tctx.translate(249.6103941984931,179.97410084566292);\n\tctx.rotate(0);\n\tctx.arc(0,0,27,0.0054036986807879705,-0.580330109651337,1);\n\tctx.rotate(0);\n\tctx.translate(-249.6103941984931,-179.97410084566292);\n\tctx.closePath();\n\tctx.fill();\n\tctx.stroke();\n\tctx.restore();\n\tctx.restore();\n\tctx.restore();\n};\n\nconst CG = globalThis.CraftGrid;\nCG.Nodes.Fusion.SVG.Register(\"collaboration\", collaborationSVG, 17, 14.571428571428571, 2.4285714285714284); //NO I18N\n","export const createdBySVG = ctx => {\n\tctx.save();\n\tctx.strokeStyle=\"rgba(0,0,0,0)\";// No I18N\n\tctx.fillStyle=\"#555\"; // No I18N\n\tctx.miterLimit=4;\n\tctx.font=\"15px / 21.4286px ''\";// No I18N\n\tctx.font=\"   15px \";// No I18N\n\tctx.scale(0.25,0.25);\n\tctx.scale(0.25,0.25);\n\tctx.save();\n\tctx.font=\"   15px \";// No I18N\n\tctx.save();\n\tctx.font=\"   15px \";// No I18N\n\tctx.beginPath();\n\tctx.moveTo(192.73,118.46);\n\tctx.translate(192.7218282241999,190.45999953626443);\n\tctx.rotate(0);\n\tctx.arc(0,0,72,-1.5706828299085402,-2.169914294147934,1);\n\tctx.rotate(0);\n\tctx.translate(-192.7218282241999,-190.45999953626443);\n\tctx.translate(145.32554792137176,138.21411955481918);\n\tctx.rotate(0);\n\tctx.arc(0,0,9.91,-0.8153471123372414,-1.0355702332134595,1);\n\tctx.rotate(0);\n\tctx.translate(-145.32554792137176,-138.21411955481918);\n\tctx.translate(103.65417555452319,209.13813547145384);\n\tctx.rotate(0);\n\tctx.arc(0,0,92.17,-1.0391505592101473,-1.1845019701941186,1);\n\tctx.rotate(0);\n\tctx.translate(-103.65417555452319,-209.13813547145384);\n\tctx.translate(106.92000448378218,92.4999427044742);\n\tctx.rotate(0);\n\tctx.arc(0,0,44.35,0.7822103863711845,-0.00044966640690580206,1);\n\tctx.rotate(0);\n\tctx.translate(-106.92000448378218,-92.4999427044742);\n\tctx.lineTo(151.26999999999998,67);\n\tctx.translate(106.75000449236319,67.01999999999978);\n\tctx.rotate(0);\n\tctx.arc(0,0,44.52,-0.0004492363133961732,-1.570796427701525,1);\n\tctx.rotate(0);\n\tctx.translate(-106.75000449236319,-67.01999999999978);\n\tctx.lineTo(100.17,22.5);\n\tctx.translate(100.21999888295727,67.00997191766922);\n\tctx.rotate(0);\n\tctx.arc(0,0,44.51,-1.5719196450036679,-3.1413686158959573,1);\n\tctx.rotate(0);\n\tctx.translate(-100.21999888295727,-67.00997191766922);\n\tctx.lineTo(55.71,92.43);\n\tctx.translate(100.03999621253286,92.44832475983048);\n\tctx.rotate(0);\n\tctx.arc(0,0,44.33,-3.1411792820501816,-3.9233488665079888,1);\n\tctx.rotate(0);\n\tctx.translate(-100.03999621253286,-92.44832475983048);\n\tctx.translate(103.4206254308634,209.33530759728947);\n\tctx.rotate(0);\n\tctx.arc(0,0,92.47,-1.9571113878811723,-2.5713931297894828,1);\n\tctx.rotate(0);\n\tctx.translate(-103.4206254308634,-209.33530759728947);\n\tctx.translate(51.11291817319187,175.66000275742246);\n\tctx.rotate(0);\n\tctx.arc(0,0,30.26,-2.5750925545170524,-4.711962074449982,1);\n\tctx.rotate(0);\n\tctx.translate(-51.11291817319187,-175.66000275742246);\n\tctx.lineTo(51.269999999999996,205.92000000000002);\n\tctx.lineTo(118.63,205.56);\n\tctx.translate(118.62129932894096,195.7700038662764);\n\tctx.rotate(0);\n\tctx.arc(0,0,9.79,1.5699075962326507,1.2498175788447843,1);\n\tctx.rotate(0);\n\tctx.translate(-118.62129932894096,-195.7700038662764);\n\tctx.translate(192.75257628816416,190.8999874879868);\n\tctx.rotate(0);\n\tctx.arc(0,0,72.44,2.944853648937173,4.711801234793642,1);\n\tctx.rotate(0);\n\tctx.translate(-192.75257628816416,-190.8999874879868);\n\tctx.closePath();\n\tctx.moveTo(75.71,67);\n\tctx.translate(100.19999795084138,66.98998162765635);\n\tctx.rotate(0);\n\tctx.arc(0,0,24.49,3.1411835734500624,4.711164073959954,0);\n\tctx.rotate(0);\n\tctx.translate(-100.19999795084138,-66.98998162765635);\n\tctx.lineTo(106.75,42.5);\n\tctx.translate(106.73000204498508,66.98999183507);\n\tctx.rotate(0);\n\tctx.arc(0,0,24.49,-1.5699797503458421,0.00040866334048894615,0);\n\tctx.rotate(0);\n\tctx.translate(-106.73000204498508,-66.98999183507);\n\tctx.lineTo(131.22,92.43);\n\tctx.translate(106.73001836486948,92.40000815160901);\n\tctx.rotate(0);\n\tctx.arc(0,0,24.49,0.0012246572432715777,1.5699804167357838,0);\n\tctx.rotate(0);\n\tctx.translate(-106.73001836486948,-92.40000815160901);\n\tctx.lineTo(100.17,116.89000000000001);\n\tctx.translate(100.18999183673196,92.41000816326805);\n\tctx.rotate(0);\n\tctx.arc(0,0,24.48,1.5716129868828939,3.140775993501796,0);\n\tctx.rotate(0);\n\tctx.translate(-100.18999183673196,-92.41000816326805);\n\tctx.closePath();\n\tctx.moveTo(118.56,185.59);\n\tctx.lineTo(118.5,185.59);\n\tctx.lineTo(51.14,185.95000000000002);\n\tctx.translate(51.142856980207235,175.61000039469712);\n\tctx.rotate(0);\n\tctx.arc(0,0,10.34,1.571072630493503,2.35228674932811,0);\n\tctx.rotate(0);\n\tctx.translate(-51.142856980207235,-175.61000039469712);\n\tctx.translate(51.02983829605205,175.73735008416008);\n\tctx.rotate(0);\n\tctx.arc(0,0,10.17,2.3532178499396603,3.1472318264628765,0);\n\tctx.rotate(0);\n\tctx.translate(-51.02983829605205,-175.73735008416008);\n\tctx.translate(50.79968400160287,175.60074125739087);\n\tctx.rotate(0);\n\tctx.arc(0,0,9.94,3.1336188525320834,3.707630258605422,0);\n\tctx.rotate(0);\n\tctx.translate(-50.79968400160287,-175.60074125739087);\n\tctx.translate(103.50010180636568,209.58948577089834);\n\tctx.rotate(0);\n\tctx.arc(0,0,72.65,-2.5697077712863283,-1.0952659722073823,0);\n\tctx.rotate(0);\n\tctx.translate(-103.50010180636568,-209.58948577089834);\n\tctx.translate(192.4512828839451,190.85477740367304);\n\tctx.rotate(0);\n\tctx.arc(0,0,72.14,-2.452760631955025,-3.0711882697122346,1);\n\tctx.rotate(0);\n\tctx.translate(-192.4512828839451,-190.85477740367304);\n\tctx.translate(118.37617347818329,195.7483417595739);\n\tctx.rotate(0);\n\tctx.arc(0,0,10.19,-1.361837724248283,-1.5527554539823567,1);\n\tctx.rotate(0);\n\tctx.translate(-118.37617347818329,-195.7483417595739);\n\tctx.closePath();\n\tctx.moveTo(192.73000000000002,247.37);\n\tctx.translate(192.73000000000002,190.93);\n\tctx.rotate(0);\n\tctx.arc(0,0,56.44,1.5707963267948966,0,0);\n\tctx.rotate(0);\n\tctx.translate(-192.73000000000002,-190.93);\n\tctx.translate(192.66008840347317,190.83004324573702);\n\tctx.rotate(0);\n\tctx.arc(0,0,56.51,0.0017688339477396787,1.5695591720548403,0);\n\tctx.rotate(0);\n\tctx.translate(-192.66008840347317,-190.83004324573702);\n\tctx.closePath();\n\tctx.fill();\n\tctx.stroke();\n\tctx.restore();\n\tctx.save();\n\tctx.font=\"   15px \";// No I18N\n\tctx.beginPath();\n\tctx.moveTo(219.88,183);\n\tctx.lineTo(200.73,183);\n\tctx.lineTo(200.73,164.3);\n\tctx.translate(192.73,164.3);\n\tctx.rotate(0);\n\tctx.arc(0,0,8,0,3.141592653589793,1);\n\tctx.rotate(0);\n\tctx.translate(-192.73,-164.3);\n\tctx.lineTo(184.73,183);\n\tctx.lineTo(166.67,183);\n\tctx.translate(166.67,191);\n\tctx.rotate(0);\n\tctx.arc(0,0,8,-1.5707963267948966,1.5707963267948966,1);\n\tctx.rotate(0);\n\tctx.translate(-166.67,-191);\n\tctx.lineTo(184.73,199);\n\tctx.lineTo(184.73,217.5);\n\tctx.translate(192.73,217.5);\n\tctx.rotate(0);\n\tctx.arc(0,0,8,3.141592653589793,6.283185307179586,1);\n\tctx.rotate(0);\n\tctx.translate(-192.73,-217.5);\n\tctx.lineTo(200.73,199);\n\tctx.lineTo(219.88,199);\n\tctx.translate(219.88,191);\n\tctx.rotate(0);\n\tctx.arc(0,0,8,1.5707963267948966,4.71238898038469,1);\n\tctx.rotate(0);\n\tctx.translate(-219.88,-191);\n\tctx.closePath();\n\tctx.fill();\n\tctx.stroke();\n\tctx.restore();\n\tctx.restore();\n\tctx.restore();\n};\n\nconst CG = globalThis.CraftGrid;\nCG.Nodes.Fusion.SVG.Register(\"createdby\", createdBySVG, 17, 14.571428571428571, 2.4285714285714284); //NO I18N\n","export const createdTimeSVG = ctx => {\n\tctx.save();\n\tctx.strokeStyle=\"rgba(0,0,0,0)\"; // No I18N\n\tctx.fillStyle=\"#555\"; // No I18N\n\tctx.miterLimit=4;\n\tctx.font=\"15px / 21.4286px ''\"; // No I18N\n\tctx.font=\"   15px \"; // No I18N\n\tctx.scale(0.25,0.25);\n\tctx.scale(0.25,0.25);\n\tctx.save();\n\tctx.font=\"   15px \"; // No I18N\n\tctx.beginPath();\n\tctx.moveTo(135,29.33);\n\tctx.translate(134.99,134.66999952534653);\n\tctx.rotate(0);\n\tctx.arc(0,0,105.34,-1.5707013960941654,4.505918749231341e-9,1);\n\tctx.rotate(0);\n\tctx.translate(-134.99,-134.66999952534653);\n\tctx.translate(134.87006818130658,134.7899199588284);\n\tctx.rotate(0);\n\tctx.arc(0,0,105.46,-0.0011371134521800566,-1.5695642781359758,1);\n\tctx.rotate(0);\n\tctx.translate(-134.87006818130658,-134.7899199588284);\n\tctx.closePath();\n\tctx.moveTo(135,220);\n\tctx.translate(134.99000058582305,134.66000058582307);\n\tctx.rotate(0);\n\tctx.arc(0,0,85.34,1.5706791553137645,0.00011717148113210563,0);\n\tctx.rotate(0);\n\tctx.translate(-134.99000058582305,-134.66000058582307);\n\tctx.translate(134.90005845906015,134.57005845906016);\n\tctx.rotate(0);\n\tctx.arc(0,0,85.43,0.0011698649624266534,1.5696264618325602,0);\n\tctx.rotate(0);\n\tctx.translate(-134.90005845906015,-134.57005845906016);\n\tctx.closePath();\n\tctx.fill();\n\tctx.stroke();\n\tctx.restore();\n\tctx.save();\n\tctx.font=\"   15px \"; // No I18N\n\tctx.beginPath();\n\tctx.moveTo(244.74,32.26);\n\tctx.lineTo(215.4,2.93);\n\tctx.translate(208.20711794272577,9.877117942725787);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,-0.768019141381529,2.3388154681764273,1);\n\tctx.rotate(0);\n\tctx.translate(-208.20711794272577,-9.877117942725787);\n\tctx.lineTo(230.6,46.4);\n\tctx.translate(237.79288205727423,39.45288205727421);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,2.373573512208264,5.480408121766221,1);\n\tctx.rotate(0);\n\tctx.translate(-237.79288205727423,-39.45288205727421);\n\tctx.closePath();\n\tctx.fill();\n\tctx.stroke();\n\tctx.restore();\n\tctx.save();\n\tctx.font=\"   15px \"; // No I18N\n\tctx.beginPath();\n\tctx.moveTo(39.4,46.4);\n\tctx.lineTo(68.74,17.07);\n\tctx.translate(61.79288205727453,9.877117942725473);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,0.8027771854134117,3.909611794971278,1);\n\tctx.rotate(0);\n\tctx.translate(-61.79288205727453,-9.877117942725473);\n\tctx.lineTo(25.26,32.26);\n\tctx.translate(32.207117942725525,39.45288205727447);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,-2.3388154681763895,0.7680191413814961,1);\n\tctx.rotate(0);\n\tctx.translate(-32.207117942725525,-39.45288205727447);\n\tctx.closePath();\n\tctx.fill();\n\tctx.stroke();\n\tctx.restore();\n\tctx.save();\n\tctx.font=\"   15px \"; // No I18N\n\tctx.beginPath();\n\tctx.moveTo(179,124.67);\n\tctx.lineTo(145,124.67);\n\tctx.lineTo(145,90.67);\n\tctx.translate(135,90.67);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,0,3.141592653589793,1);\n\tctx.rotate(0);\n\tctx.translate(-135,-90.67);\n\tctx.lineTo(125,124.67);\n\tctx.lineTo(91,124.67);\n\tctx.translate(91,134.67000000000002);\n\tctx.rotate(0);\n\tctx.arc(0,0,10.000000000000007,-1.5707963267948966,1.5707963267948966,1);\n\tctx.rotate(0);\n\tctx.translate(-91,-134.67000000000002);\n\tctx.lineTo(125,144.67000000000002);\n\tctx.lineTo(125,178.67000000000002);\n\tctx.translate(135,178.67000000000002);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,3.141592653589793,6.283185307179586,1);\n\tctx.rotate(0);\n\tctx.translate(-135,-178.67000000000002);\n\tctx.lineTo(145,144.67000000000002);\n\tctx.lineTo(179,144.67000000000002);\n\tctx.translate(179,134.67000000000002);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,1.5707963267948966,4.71238898038469,1);\n\tctx.rotate(0);\n\tctx.translate(-179,-134.67000000000002);\n\tctx.closePath();\n\tctx.fill();\n\tctx.stroke();\n\tctx.restore();\n\tctx.restore();\n};\n\nconst CG = globalThis.CraftGrid;\nCG.Nodes.Fusion.SVG.Register(\"createdtime\", createdTimeSVG, 17, 14.571428571428571, 2.4285714285714284); //NO I18N\n","export const currencySVG = ctx => {\n\tctx.save();\n\tctx.strokeStyle=\"rgba(0,0,0,0)\"; // No I18N\n\tctx.fillStyle=\"#555\"; // No I18N\n\tctx.miterLimit=4;\n\tctx.font=\"15px / 21.4286px ''\"; // No I18N\n\tctx.font=\"   15px \"; // No I18N\n\tctx.scale(0.25,0.25);\n\tctx.scale(0.25,0.25);\n\tctx.save();\n\tctx.font=\"   15px \"; // No I18N\n\tctx.beginPath();\n\tctx.moveTo(150,130);\n\tctx.lineTo(145,130);\n\tctx.lineTo(145,60);\n\tctx.lineTo(195,60);\n\tctx.translate(195,50);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,1.5707963267948966,4.71238898038469,1);\n\tctx.rotate(0);\n\tctx.translate(-195,-50);\n\tctx.lineTo(145,40);\n\tctx.lineTo(145,20);\n\tctx.translate(135,20);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,0,3.141592653589793,1);\n\tctx.rotate(0);\n\tctx.translate(-135,-20);\n\tctx.lineTo(125,40);\n\tctx.lineTo(120,40);\n\tctx.translate(120,95);\n\tctx.rotate(0);\n\tctx.arc(0,0,55,-1.5707963267948966,1.5707963267948966,1);\n\tctx.rotate(0);\n\tctx.translate(-120,-95);\n\tctx.lineTo(125,150);\n\tctx.lineTo(125,220);\n\tctx.lineTo(75,220);\n\tctx.translate(75,230);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,-1.5707963267948966,1.5707963267948966,1);\n\tctx.rotate(0);\n\tctx.translate(-75,-230);\n\tctx.lineTo(125,240);\n\tctx.lineTo(125,260);\n\tctx.translate(135,260);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,3.141592653589793,6.283185307179586,1);\n\tctx.rotate(0);\n\tctx.translate(-135,-260);\n\tctx.lineTo(145,240);\n\tctx.lineTo(150,240);\n\tctx.translate(150,185);\n\tctx.rotate(0);\n\tctx.arc(0,0,55,1.5707963267948966,4.71238898038469,1);\n\tctx.rotate(0);\n\tctx.translate(-150,-185);\n\tctx.closePath();\n\tctx.moveTo(120,130);\n\tctx.translate(120,95);\n\tctx.rotate(0);\n\tctx.arc(0,0,35,1.5707963267948966,4.71238898038469,0);\n\tctx.rotate(0);\n\tctx.translate(-120,-95);\n\tctx.lineTo(125,60);\n\tctx.lineTo(125,130);\n\tctx.closePath();\n\tctx.moveTo(150,220);\n\tctx.lineTo(145,220);\n\tctx.lineTo(145,150);\n\tctx.lineTo(150,150);\n\tctx.translate(150,185);\n\tctx.rotate(0);\n\tctx.arc(0,0,35,-1.5707963267948966,1.5707963267948966,0);\n\tctx.rotate(0);\n\tctx.translate(-150,-185);\n\tctx.closePath();\n\tctx.fill();\n\tctx.stroke();\n\tctx.restore();\n\tctx.restore();\n};\n\nconst CG = globalThis.CraftGrid;\nCG.Nodes.Fusion.SVG.Register(\"currency\", currencySVG, 17, 16, 1); //NO I18N\n","export const dateTimeSVG = ctx => {\n\tctx.save();\n\tctx.strokeStyle=\"rgba(0,0,0,0)\";// No I18N\n\tctx.fillStyle=\"#666666\"; // No I18N\n\tctx.miterLimit=4;\n\tctx.font=\"15px / 21.4286px ''\";// No I18N\n\tctx.font=\"   15px ''\";// No I18N\n\tctx.scale(0.25,0.25);\n\tctx.scale(0.25,0.25);\n\tctx.save();\n\tctx.font=\"   15px ''\";// No I18N\n\tctx.save();\n\tctx.font=\"   15px ''\";// No I18N\n\tctx.beginPath();\n\tctx.moveTo(194.5,22);\n\tctx.lineTo(69.5,22);\n\tctx.translate(69.55996220072599,69.55996220072599);\n\tctx.rotate(0);\n\tctx.arc(0,0,47.56,-1.572057096698416,-3.1403318836862737,1);\n\tctx.rotate(0);\n\tctx.translate(-69.55996220072599,-69.55996220072599);\n\tctx.lineTo(22,194.5);\n\tctx.translate(69.55996220072599,194.44003779927402);\n\tctx.rotate(0);\n\tctx.arc(0,0,47.56,3.1403318836864,1.572057096698542,1);\n\tctx.rotate(0);\n\tctx.translate(-69.55996220072599,-194.44003779927402);\n\tctx.lineTo(194.5,242);\n\tctx.translate(194.44003779927402,194.44003779927402);\n\tctx.rotate(0);\n\tctx.arc(0,0,47.56,1.5695355568913771,0.0012607699035194209,1);\n\tctx.rotate(0);\n\tctx.translate(-194.44003779927402,-194.44003779927402);\n\tctx.lineTo(242,69.5);\n\tctx.translate(194.44003779927402,69.55996220072599);\n\tctx.rotate(0);\n\tctx.arc(0,0,47.56,-0.001260769903393256,-1.569535556891251,1);\n\tctx.rotate(0);\n\tctx.translate(-194.44003779927402,-69.55996220072599);\n\tctx.closePath();\n\tctx.moveTo(194.5,222);\n\tctx.lineTo(69.5,222);\n\tctx.translate(69.53997099344302,194.46002900655697);\n\tctx.rotate(0);\n\tctx.arc(0,0,27.54,1.5722477068775473,3.140141273507142,0);\n\tctx.rotate(0);\n\tctx.translate(-69.53997099344302,-194.46002900655697);\n\tctx.lineTo(42,69.5);\n\tctx.translate(69.53997099344302,69.53997099344302);\n\tctx.rotate(0);\n\tctx.arc(0,0,27.54,-3.1401412735071466,-1.5722477068775516,0);\n\tctx.rotate(0);\n\tctx.translate(-69.53997099344302,-69.53997099344302);\n\tctx.lineTo(194.5,42);\n\tctx.translate(194.46771570462062,69.52998107017642);\n\tctx.rotate(0);\n\tctx.arc(0,0,27.53,-1.5696236314523957,-0.13957299155935865,0);\n\tctx.rotate(0);\n\tctx.translate(-194.46771570462062,-69.52998107017642);\n\tctx.translate(217.7182014616583,74.85999303972223);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,-1.1579917924631575,-1.569616472686992,1);\n\tctx.rotate(0);\n\tctx.translate(-217.7182014616583,-74.85999303972223);\n\tctx.lineTo(74.86,64.86);\n\tctx.translate(74.86,74.86);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,-1.5707963267948966,1.5707963267948966,1);\n\tctx.rotate(0);\n\tctx.translate(-74.86,-74.86);\n\tctx.lineTo(217.71,84.86);\n\tctx.translate(217.65689789896754,74.9301419865707);\n\tctx.rotate(0);\n\tctx.arc(0,0,9.93,1.5654486576980402,1.1181222811360114,1);\n\tctx.rotate(0);\n\tctx.translate(-217.65689789896754,-74.9301419865707);\n\tctx.lineTo(222,194.5);\n\tctx.translate(194.46002900655697,194.46002900655697);\n\tctx.rotate(0);\n\tctx.arc(0,0,27.54,0.0014513800826467772,1.5693449467122418,0);\n\tctx.rotate(0);\n\tctx.translate(-194.46002900655697,-194.46002900655697);\n\tctx.closePath();\n\tctx.fill();\n\tctx.stroke();\n\tctx.restore();\n\tctx.save();\n\tctx.font=\"   15px ''\";// No I18N\n\tctx.beginPath();\n\tctx.moveTo(145.28,168.56);\n\tctx.lineTo(163.12999999999997,168.56);\n\tctx.bezierCurveTo(166.09024625909302,168.56,168.48999999999998,170.95975374090696,168.48999999999998,173.92000000000002);\n\tctx.lineTo(168.48999999999998,191.76999999999998);\n\tctx.bezierCurveTo(168.48999999999998,194.73024625909304,166.09024625909302,197.13,163.12999999999997,197.13);\n\tctx.lineTo(145.28,197.13);\n\tctx.bezierCurveTo(142.31975374090695,197.13,139.92,194.73024625909304,139.92,191.76999999999998);\n\tctx.lineTo(139.92,173.92000000000002);\n\tctx.bezierCurveTo(139.92,170.95975374090696,142.31975374090695,168.56,145.28,168.56);\n\tctx.closePath();\n\tctx.fill();\n\tctx.stroke();\n\tctx.restore();\n\tctx.save();\n\tctx.font=\"   15px ''\";// No I18N\n\tctx.beginPath();\n\tctx.moveTo(102.42,168.56);\n\tctx.lineTo(120.27,168.56);\n\tctx.bezierCurveTo(123.23024625909305,168.56,125.63,170.95975374090696,125.63,173.92000000000002);\n\tctx.lineTo(125.63,191.76999999999998);\n\tctx.bezierCurveTo(125.63,194.73024625909304,123.23024625909305,197.13,120.27,197.13);\n\tctx.lineTo(102.42,197.13);\n\tctx.bezierCurveTo(99.45975374090695,197.13,97.06,194.73024625909304,97.06,191.76999999999998);\n\tctx.lineTo(97.06,173.92000000000002);\n\tctx.bezierCurveTo(97.06,170.95975374090696,99.45975374090695,168.56,102.42,168.56);\n\tctx.closePath();\n\tctx.fill();\n\tctx.stroke();\n\tctx.restore();\n\tctx.save();\n\tctx.font=\"   15px ''\";// No I18N\n\tctx.beginPath();\n\tctx.moveTo(145.28,125.7);\n\tctx.lineTo(163.12999999999997,125.7);\n\tctx.bezierCurveTo(166.09024625909302,125.7,168.48999999999998,128.09975374090695,168.48999999999998,131.06);\n\tctx.lineTo(168.48999999999998,148.91);\n\tctx.bezierCurveTo(168.48999999999998,151.87024625909305,166.09024625909302,154.27,163.12999999999997,154.27);\n\tctx.lineTo(145.28,154.27);\n\tctx.bezierCurveTo(142.31975374090695,154.27,139.92,151.87024625909305,139.92,148.91);\n\tctx.lineTo(139.92,131.06);\n\tctx.bezierCurveTo(139.92,128.09975374090695,142.31975374090695,125.7,145.28,125.7);\n\tctx.closePath();\n\tctx.fill();\n\tctx.stroke();\n\tctx.restore();\n\tctx.save();\n\tctx.font=\"   15px ''\";// No I18N\n\tctx.beginPath();\n\tctx.moveTo(102.42,125.7);\n\tctx.lineTo(120.27,125.7);\n\tctx.bezierCurveTo(123.23024625909305,125.7,125.63,128.09975374090695,125.63,131.06);\n\tctx.lineTo(125.63,148.91);\n\tctx.bezierCurveTo(125.63,151.87024625909305,123.23024625909305,154.27,120.27,154.27);\n\tctx.lineTo(102.42,154.27);\n\tctx.bezierCurveTo(99.45975374090695,154.27,97.06,151.87024625909305,97.06,148.91);\n\tctx.lineTo(97.06,131.06);\n\tctx.bezierCurveTo(97.06,128.09975374090695,99.45975374090695,125.7,102.42,125.7);\n\tctx.closePath();\n\tctx.fill();\n\tctx.stroke();\n\tctx.restore();\n\tctx.restore();\n\tctx.restore();\n\t};\n\nconst CG = globalThis.CraftGrid;\nCG.Nodes.Fusion.SVG.Register(\"datetime\", dateTimeSVG, 17, 15, 2); //NO I18N\n","export const durationSVG = ctx => {\n\tctx.save();\n\tctx.strokeStyle=\"rgba(0,0,0,0)\"; // No I18N\n\tctx.fillStyle=\"#666666\"; // No I18N\n\tctx.miterLimit=4;\n\tctx.font=\"15px / 21.4286px ''\"; // No I18N\n\tctx.font=\"   15px \"; // No I18N\n\tctx.scale(0.25,0.25);\n\tctx.scale(0.25,0.25);\n\tctx.save();\n\tctx.font=\"   15px \"; // No I18N\n\tctx.beginPath();\n\tctx.moveTo(141.23,11.23);\n\tctx.bezierCurveTo(139.42,11.23,137.57999999999998,11.23,135.76,11.360000000000001);\n\tctx.translate(135.9950001160503,21.35999999727282);\n\tctx.rotate(0);\n\tctx.arc(0,0,10.002760868880152,-1.5942920138744332,-4.735884641654658,1);\n\tctx.rotate(0);\n\tctx.translate(-135.9950001160503,-21.35999999727282);\n\tctx.lineTo(136.7,31.36);\n\tctx.bezierCurveTo(138.20999999999998,31.29,139.7,31.25,141.23,31.25);\n\tctx.translate(141.24404997926203,125.01999894741431);\n\tctx.rotate(0);\n\tctx.arc(0,0,93.77,-1.5709461612762299,-3.626636571215552,0);\n\tctx.rotate(0);\n\tctx.translate(-141.24404997926203,-125.01999894741431);\n\tctx.lineTo(80.42,174.15);\n\tctx.translate(82.795,164.435);\n\tctx.rotate(0);\n\tctx.arc(0,0,10.001092440328708,1.810561019951989,4.952153673541782,1);\n\tctx.rotate(0);\n\tctx.translate(-82.795,-164.435);\n\tctx.lineTo(38.7,143.36);\n\tctx.translate(36.32419819258789,153.07367931176947);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,-1.3309223836369348,-2.9019372104335703,1);\n\tctx.rotate(0);\n\tctx.translate(-36.32419819258789,-153.07367931176947);\n\tctx.lineTo(15.29,197);\n\tctx.translate(25.005418926246925,199.3686779197525);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,-2.902452031891541,-4.471524857833176,1);\n\tctx.rotate(0);\n\tctx.translate(-25.005418926246925,-199.3686779197525);\n\tctx.translate(24.99016493581787,199.54002001170764);\n\tctx.rotate(0);\n\tctx.arc(0,0,9.83,1.8143113807823839,1.568778516251451,1);\n\tctx.rotate(0);\n\tctx.translate(-24.99016493581787,-199.54002001170764);\n\tctx.translate(24.99734649509138,199.37000800556254);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,1.5695309759663734,0.24030533563948842,1);\n\tctx.rotate(0);\n\tctx.translate(-24.99734649509138,-199.37000800556254);\n\tctx.lineTo(40.53999999999999,177.91);\n\tctx.translate(141.25814350773686,124.99999651904261);\n\tctx.rotate(0);\n\tctx.arc(0,0,113.77,2.6578890046130765,4.712141608423506,1);\n\tctx.rotate(0);\n\tctx.translate(-141.25814350773686,-124.99999651904261);\n\tctx.closePath();\n\tctx.fill();\n\tctx.stroke();\n\tctx.restore();\n\tctx.save();\n\tctx.font=\"   15px \"; // No I18N\n\tctx.beginPath();\n\tctx.moveTo(139.79,60.15);\n\tctx.translate(139.79,70.15);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,-1.5707963267948966,-3.141592653589794,1);\n\tctx.rotate(0);\n\tctx.translate(-139.79,-70.15);\n\tctx.lineTo(129.79,127.77000000000001);\n\tctx.translate(139.78999983037437,127.771841877374);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,-3.141408465851252,-4.116795696433969,1);\n\tctx.rotate(0);\n\tctx.translate(-139.78999983037437,-127.771841877374);\n\tctx.lineTo(166.45999999999998,157.92000000000002);\n\tctx.translate(172.19743223255392,149.72964766466967);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,2.1818651887251033,5.291472107640755,1);\n\tctx.rotate(0);\n\tctx.translate(-172.19743223255392,-149.72964766466967);\n\tctx.lineTo(149.79,122.47000000000001);\n\tctx.lineTo(149.79,70.15);\n\tctx.translate(139.79,70.15);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,0,-1.5707963267948972,1);\n\tctx.rotate(0);\n\tctx.translate(-139.79,-70.15);\n\tctx.closePath();\n\tctx.fill();\n\tctx.stroke();\n\tctx.restore();\n\tctx.save();\n\tctx.font=\"   15px \"; // No I18N\n\tctx.beginPath();\n\tctx.moveTo(40.12,99.52);\n\tctx.translate(43.5020196865037,89.95002388508199);\n\tctx.rotate(0);\n\tctx.arc(0,0,10.15,1.9104959654050622,1.5729657557383485,1);\n\tctx.rotate(0);\n\tctx.translate(-43.5020196865037,-89.95002388508199);\n\tctx.translate(43.481380109592486,90.10000009523513);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,1.5709343377545835,0.34266674587679913,1);\n\tctx.rotate(0);\n\tctx.translate(-43.481380109592486,-90.10000009523513);\n\tctx.bezierCurveTo(53.4,92.05,53.949999999999996,90.63,54.519999999999996,89.25);\n\tctx.translate(45.26000005134573,85.42999987553365);\n\tctx.rotate(0);\n\tctx.arc(0,0,10.016985574512923,0.39125866434475737,3.5328512921249824,1);\n\tctx.rotate(0);\n\tctx.translate(-45.26000005134573,-85.42999987553365);\n\tctx.bezierCurveTo(35.3,83.3,34.64,85.02,34,86.74);\n\tctx.translate(43.42503829445782,90.08195349279484);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,-2.800841290201443,-4.375551626989761,1);\n\tctx.rotate(0);\n\tctx.translate(-43.42503829445782,-90.08195349279484);\n\tctx.closePath();\n\tctx.fill();\n\tctx.stroke();\n\tctx.restore();\n\tctx.save();\n\tctx.font=\"   15px \"; // No I18N\n\tctx.beginPath();\n\tctx.moveTo(95.87,41.65);\n\tctx.translate(95.90398359901538,31.75005832769718);\n\tctx.rotate(0);\n\tctx.arc(0,0,9.9,1.5742290203055807,1.11744424769225,1);\n\tctx.rotate(0);\n\tctx.translate(-95.90398359901538,-31.75005832769718);\n\tctx.bezierCurveTo(102.51,39.55,104.84,38.53,107.18,37.65);\n\tctx.translate(103.54499986682967,28.325000051911438);\n\tctx.rotate(0);\n\tctx.arc(0,0,10.008438939215248,1.1991031407411068,-1.942489483046364,1);\n\tctx.rotate(0);\n\tctx.translate(-103.54499986682967,-28.325000051911438);\n\tctx.bezierCurveTo(97.07,20.11,94.24,21.35,91.49,22.69);\n\tctx.translate(95.84885277503597,31.69002236028118);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,-2.0218180087636757,-4.714503704457287,1);\n\tctx.rotate(0);\n\tctx.translate(-95.84885277503597,-31.69002236028118);\n\tctx.closePath();\n\tctx.fill();\n\tctx.stroke();\n\tctx.restore();\n\tctx.save();\n\tctx.font=\"   15px \"; // No I18N\n\tctx.beginPath();\n\tctx.moveTo(56.28,64.56);\n\tctx.translate(62.835230197009345,57.008248079801824);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,2.2856713198835346,0.7144144930723624,1);\n\tctx.rotate(0);\n\tctx.translate(-62.835230197009345,-57.008248079801824);\n\tctx.bezierCurveTo(72.04,61.660000000000004,73.79,59.800000000000004,75.59,58.040000000000006);\n\tctx.translate(68.48800999852968,50.999990197519935);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,0.7810154874666364,-2.332010481085558,1);\n\tctx.rotate(0);\n\tctx.translate(-68.48800999852968,-50.999990197519935);\n\tctx.bezierCurveTo(59.410000000000004,45.900000000000006,57.300000000000004,48.150000000000006,55.300000000000004,50.45);\n\tctx.translate(62.843148305503014,57.0151286081224);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,-2.4254061699253615,-3.9964649967232724,1);\n\tctx.rotate(0);\n\tctx.translate(-62.843148305503014,-57.0151286081224);\n\tctx.closePath();\n\tctx.fill();\n\tctx.stroke();\n\tctx.restore();\n\tctx.restore();\n};\n\nconst CG = globalThis.CraftGrid;\nCG.Nodes.Fusion.SVG.Register(\"duration\", durationSVG, 17, 14.571428571428571, 2.4285714285714284); //NO I18N\n","export const emailSVG = ctx => {\n\tctx.save();\n\tctx.strokeStyle=\"rgba(0,0,0,0)\"; // No I18N\n\tctx.fillStyle=\"#555\"; // No I18N\n\tctx.miterLimit=4;\n\tctx.font=\"15px / 21.4286px ''\"; // No I18N\n\tctx.font=\"   15px \"; // No I18N\n\tctx.scale(0.25,0.25);\n\tctx.scale(0.25,0.25);\n\tctx.save();\n\tctx.font=\"   15px \"; // No I18N\n\tctx.beginPath();\n\tctx.moveTo(197.5,20);\n\tctx.lineTo(72.5,20);\n\tctx.translate(72.55996220072599,67.55996220072599);\n\tctx.rotate(0);\n\tctx.arc(0,0,47.56,-1.572057096698416,-3.1403318836862737,1);\n\tctx.rotate(0);\n\tctx.translate(-72.55996220072599,-67.55996220072599);\n\tctx.lineTo(25,192.5);\n\tctx.translate(72.55996220072599,192.44003779927402);\n\tctx.rotate(0);\n\tctx.arc(0,0,47.56,3.1403318836864,1.572057096698542,1);\n\tctx.rotate(0);\n\tctx.translate(-72.55996220072599,-192.44003779927402);\n\tctx.lineTo(197.5,240);\n\tctx.translate(197.44003779927402,192.44003779927402);\n\tctx.rotate(0);\n\tctx.arc(0,0,47.56,1.5695355568913771,0.0012607699035194209,1);\n\tctx.rotate(0);\n\tctx.translate(-197.44003779927402,-192.44003779927402);\n\tctx.lineTo(245,67.5);\n\tctx.translate(197.44003779927402,67.55996220072599);\n\tctx.rotate(0);\n\tctx.arc(0,0,47.56,-0.001260769903393256,-1.569535556891251,1);\n\tctx.rotate(0);\n\tctx.translate(-197.44003779927402,-67.55996220072599);\n\tctx.closePath();\n\tctx.moveTo(72.5,40);\n\tctx.lineTo(197.5,40);\n\tctx.translate(197.46002900655697,67.53997099344302);\n\tctx.rotate(0);\n\tctx.arc(0,0,27.54,-1.5693449467122458,-0.0014513800826507772,0);\n\tctx.rotate(0);\n\tctx.translate(-197.46002900655697,-67.53997099344302);\n\tctx.lineTo(225,73.21);\n\tctx.lineTo(146.14,132.35999999999999);\n\tctx.translate(135,117.39016366154925);\n\tctx.rotate(0);\n\tctx.arc(0,0,18.66,0.9310413040981421,2.210551349491651,0);\n\tctx.rotate(0);\n\tctx.translate(-135,-117.39016366154925);\n\tctx.lineTo(45,73.21);\n\tctx.lineTo(45,67.5);\n\tctx.translate(72.53997099344302,67.53997099344302);\n\tctx.rotate(0);\n\tctx.arc(0,0,27.54,-3.1401412735071466,-1.5722477068775516,0);\n\tctx.rotate(0);\n\tctx.translate(-72.53997099344302,-67.53997099344302);\n\tctx.closePath();\n\tctx.moveTo(197.5,220);\n\tctx.lineTo(72.5,220);\n\tctx.translate(72.53997099344302,192.46002900655697);\n\tctx.rotate(0);\n\tctx.arc(0,0,27.54,1.5722477068775473,3.140141273507142,0);\n\tctx.rotate(0);\n\tctx.translate(-72.53997099344302,-192.46002900655697);\n\tctx.lineTo(45,98.21);\n\tctx.lineTo(111.86,148.35999999999999);\n\tctx.translate(135,117.24041131377213);\n\tctx.rotate(0);\n\tctx.arc(0,0,38.78,2.210177949678503,0.9314147039112903,1);\n\tctx.rotate(0);\n\tctx.translate(-135,-117.24041131377213);\n\tctx.lineTo(225,98.21);\n\tctx.lineTo(225,192.5);\n\tctx.translate(197.46002900655697,192.46002900655697);\n\tctx.rotate(0);\n\tctx.arc(0,0,27.54,0.0014513800826467772,1.5693449467122418,0);\n\tctx.rotate(0);\n\tctx.translate(-197.46002900655697,-192.46002900655697);\n\tctx.closePath();\n\tctx.fill();\n\tctx.stroke();\n\tctx.restore();\n\tctx.restore();\n};\n\nconst CG = globalThis.CraftGrid;\nCG.Nodes.Fusion.SVG.Register(\"email\", emailSVG, 17, 15, 2); //NO I18N\n\n","\"use strict\"; // No I18N\n\nexport const AngrySVG1 = ctx => {\n\n\tctx.save();\n\tctx.strokeStyle=\"rgba(0,0,0,0)\";\n\tctx.miterLimit=4;\n\tctx.font=\"15px ''\";\n\tctx.fillStyle=\"rgba(0,0,0,0)\";\n\tctx.font=\"   15px ''\";\n\tctx.save();\n\tvar canvas = document.createElement(\"canvas\");\n\tcanvas.width = 1;\n\tcanvas.height = 1;\n\tvar ctx1 = canvas.getContext(\"2d\");\n\tctx1.save();\n\tctx1.save();\n\tctx1.strokeStyle=\"rgba(0,0,0,0)\";\n\tctx1.miterLimit=4;\n\tctx1.font=\"\";\n\tctx1.font=\"   15px ''\";\n\tctx1.translate(-1,-1);\n\tctx1.beginPath();\n\tctx1.moveTo(0,0);\n\tctx1.lineTo(1,0);\n\tctx1.lineTo(1,1);\n\tctx1.lineTo(0,1);\n\tctx1.closePath();\n\tctx1.clip();\n\tctx1.save();\n\tctx1.fillStyle=\"rgba(0,0,0,0)\";\n\tctx1.font=\"   15px ''\";\n\tctx1.translate(-0.0625,-0.0625);\n\tctx1.scale(0.0046875,0.0046875);\n\tctx1.restore();\n\tctx1.restore();\n\tctx1.restore();\n\tctx1.save();\n\tctx1.save();\n\tctx1.strokeStyle=\"rgba(0,0,0,0)\";\n\tctx1.miterLimit=4;\n\tctx1.font=\"\";\n\tctx1.font=\"   15px ''\";\n\tctx1.translate(-1,0);\n\tctx1.beginPath();\n\tctx1.moveTo(0,0);\n\tctx1.lineTo(1,0);\n\tctx1.lineTo(1,1);\n\tctx1.lineTo(0,1);\n\tctx1.closePath();\n\tctx1.clip();\n\tctx1.save();\n\tctx1.fillStyle=\"rgba(0,0,0,0)\";\n\tctx1.font=\"   15px ''\";\n\tctx1.translate(-0.0625,-0.0625);\n\tctx1.scale(0.0046875,0.0046875);\n\tctx1.restore();\n\tctx1.restore();\n\tctx1.restore();\n\tctx1.save();\n\tctx1.save();\n\tctx1.strokeStyle=\"rgba(0,0,0,0)\";\n\tctx1.miterLimit=4;\n\tctx1.font=\"\";\n\tctx1.font=\"   15px ''\";\n\tctx1.translate(-1,1);\n\tctx1.beginPath();\n\tctx1.moveTo(0,0);\n\tctx1.lineTo(1,0);\n\tctx1.lineTo(1,1);\n\tctx1.lineTo(0,1);\n\tctx1.closePath();\n\tctx1.clip();\n\tctx1.save();\n\tctx1.fillStyle=\"rgba(0,0,0,0)\";\n\tctx1.font=\"   15px ''\";\n\tctx1.translate(-0.0625,-0.0625);\n\tctx1.scale(0.0046875,0.0046875);\n\tctx1.restore();\n\tctx1.restore();\n\tctx1.restore();\n\tctx1.save();\n\tctx1.save();\n\tctx1.strokeStyle=\"rgba(0,0,0,0)\";\n\tctx1.miterLimit=4;\n\tctx1.font=\"\";\n\tctx1.font=\"   15px ''\";\n\tctx1.translate(0,-1);\n\tctx1.beginPath();\n\tctx1.moveTo(0,0);\n\tctx1.lineTo(1,0);\n\tctx1.lineTo(1,1);\n\tctx1.lineTo(0,1);\n\tctx1.closePath();\n\tctx1.clip();\n\tctx1.save();\n\tctx1.fillStyle=\"rgba(0,0,0,0)\";\n\tctx1.font=\"   15px ''\";\n\tctx1.translate(-0.0625,-0.0625);\n\tctx1.scale(0.0046875,0.0046875);\n\tctx1.restore();\n\tctx1.restore();\n\tctx1.restore();\n\tctx1.save();\n\tctx1.save();\n\tctx1.strokeStyle=\"rgba(0,0,0,0)\";\n\tctx1.miterLimit=4;\n\tctx1.font=\"\";\n\tctx1.font=\"   15px ''\";\n\tctx1.beginPath();\n\tctx1.moveTo(0,0);\n\tctx1.lineTo(1,0);\n\tctx1.lineTo(1,1);\n\tctx1.lineTo(0,1);\n\tctx1.closePath();\n\tctx1.clip();\n\tctx1.save();\n\tctx1.fillStyle=\"rgba(0,0,0,0)\";\n\tctx1.font=\"   15px ''\";\n\tctx1.translate(-0.0625,-0.0625);\n\tctx1.scale(0.0046875,0.0046875);\n\tctx1.restore();\n\tctx1.restore();\n\tctx1.restore();\n\tctx1.save();\n\tctx1.save();\n\tctx1.strokeStyle=\"rgba(0,0,0,0)\";\n\tctx1.miterLimit=4;\n\tctx1.font=\"\";\n\tctx1.font=\"   15px ''\";\n\tctx1.translate(0,1);\n\tctx1.beginPath();\n\tctx1.moveTo(0,0);\n\tctx1.lineTo(1,0);\n\tctx1.lineTo(1,1);\n\tctx1.lineTo(0,1);\n\tctx1.closePath();\n\tctx1.clip();\n\tctx1.save();\n\tctx1.fillStyle=\"rgba(0,0,0,0)\";\n\tctx1.font=\"   15px ''\";\n\tctx1.translate(-0.0625,-0.0625);\n\tctx1.scale(0.0046875,0.0046875);\n\tctx1.restore();\n\tctx1.restore();\n\tctx1.restore();\n\tctx1.save();\n\tctx1.save();\n\tctx1.strokeStyle=\"rgba(0,0,0,0)\";\n\tctx1.miterLimit=4;\n\tctx1.font=\"\";\n\tctx1.font=\"   15px ''\";\n\tctx1.translate(1,-1);\n\tctx1.beginPath();\n\tctx1.moveTo(0,0);\n\tctx1.lineTo(1,0);\n\tctx1.lineTo(1,1);\n\tctx1.lineTo(0,1);\n\tctx1.closePath();\n\tctx1.clip();\n\tctx1.save();\n\tctx1.fillStyle=\"rgba(0,0,0,0)\";\n\tctx1.font=\"   15px ''\";\n\tctx1.translate(-0.0625,-0.0625);\n\tctx1.scale(0.0046875,0.0046875);\n\tctx1.restore();\n\tctx1.restore();\n\tctx1.restore();\n\tctx1.save();\n\tctx1.save();\n\tctx1.strokeStyle=\"rgba(0,0,0,0)\";\n\tctx1.miterLimit=4;\n\tctx1.font=\"\";\n\tctx1.font=\"   15px ''\";\n\tctx1.translate(1,0);\n\tctx1.beginPath();\n\tctx1.moveTo(0,0);\n\tctx1.lineTo(1,0);\n\tctx1.lineTo(1,1);\n\tctx1.lineTo(0,1);\n\tctx1.closePath();\n\tctx1.clip();\n\tctx1.save();\n\tctx1.fillStyle=\"rgba(0,0,0,0)\";\n\tctx1.font=\"   15px ''\";\n\tctx1.translate(-0.0625,-0.0625);\n\tctx1.scale(0.0046875,0.0046875);\n\tctx1.restore();\n\tctx1.restore();\n\tctx1.restore();\n\tctx1.save();\n\tctx1.save();\n\tctx1.strokeStyle=\"rgba(0,0,0,0)\";\n\tctx1.miterLimit=4;\n\tctx1.font=\"\";\n\tctx1.font=\"   15px ''\";\n\tctx1.translate(1,1);\n\tctx1.beginPath();\n\tctx1.moveTo(0,0);\n\tctx1.lineTo(1,0);\n\tctx1.lineTo(1,1);\n\tctx1.lineTo(0,1);\n\tctx1.closePath();\n\tctx1.clip();\n\tctx1.save();\n\tctx1.fillStyle=\"rgba(0,0,0,0)\";\n\tctx1.font=\"   15px ''\";\n\tctx1.translate(-0.0625,-0.0625);\n\tctx1.scale(0.0046875,0.0046875);\n\tctx1.restore();\n\tctx1.restore();\n\tctx1.restore();\n\tvar p = ctx.createPattern(ctx1.canvas,\"repeat\");\n\tctx.fillStyle=p;\n\tctx.font=\"   15px ''\";\n\tctx.beginPath();\n\tctx.moveTo(0,0);\n\tctx.lineTo(18,0);\n\tctx.bezierCurveTo(18,0,18,0,18,0);\n\tctx.lineTo(18,18);\n\tctx.bezierCurveTo(18,18,18,18,18,18);\n\tctx.lineTo(0,18);\n\tctx.bezierCurveTo(0,18,0,18,0,18);\n\tctx.lineTo(0,0);\n\tctx.bezierCurveTo(0,0,0,0,0,0);\n\tctx.closePath();\n\tctx.fill();\n\tctx.stroke();\n\tctx.restore();\n\tctx.restore();\n}\n\nconst CG = globalThis.CraftGrid;\nCG.Nodes.Fusion.SVG.Register(\"angry1\", AngrySVG1, 17, 14.571428571428571, 2.4285714285714284); //NO I18N\n","\"use strict\"; // No I18N\n\nexport const AngrySVG2 = ctx => {\n\n    ctx.save();\n    ctx.strokeStyle=\"rgba(0,0,0,0)\";\n    ctx.miterLimit=4;\n    ctx.font=\"15px ''\";\n    ctx.fillStyle=\"rgba(0,0,0,0)\";\n    ctx.font=\"   15px ''\";\n    ctx.save();\n    var canvas = document.createElement(\"canvas\");\n    canvas.width = 1;\n    canvas.height = 1;\n    var ctx1 = canvas.getContext(\"2d\");\n    ctx1.save();\n    ctx1.save();\n    ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n    ctx1.miterLimit=4;\n    ctx1.font=\"\";\n    ctx1.font=\"   15px ''\";\n    ctx1.translate(-1,-1);\n    ctx1.beginPath();\n    ctx1.moveTo(0,0);\n    ctx1.lineTo(1,0);\n    ctx1.lineTo(1,1);\n    ctx1.lineTo(0,1);\n    ctx1.closePath();\n    ctx1.clip();\n    ctx1.save();\n    ctx1.fillStyle=\"rgba(0,0,0,0)\";\n    ctx1.font=\"   15px ''\";\n    ctx1.scale(0.00208333,0.00208333);\n    ctx1.restore();\n    ctx1.restore();\n    ctx1.restore();\n    ctx1.save();\n    ctx1.save();\n    ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n    ctx1.miterLimit=4;\n    ctx1.font=\"\";\n    ctx1.font=\"   15px ''\";\n    ctx1.translate(-1,0);\n    ctx1.beginPath();\n    ctx1.moveTo(0,0);\n    ctx1.lineTo(1,0);\n    ctx1.lineTo(1,1);\n    ctx1.lineTo(0,1);\n    ctx1.closePath();\n    ctx1.clip();\n    ctx1.save();\n    ctx1.fillStyle=\"rgba(0,0,0,0)\";\n    ctx1.font=\"   15px ''\";\n    ctx1.scale(0.00208333,0.00208333);\n    ctx1.restore();\n    ctx1.restore();\n    ctx1.restore();\n    ctx1.save();\n    ctx1.save();\n    ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n    ctx1.miterLimit=4;\n    ctx1.font=\"\";\n    ctx1.font=\"   15px ''\";\n    ctx1.translate(-1,1);\n    ctx1.beginPath();\n    ctx1.moveTo(0,0);\n    ctx1.lineTo(1,0);\n    ctx1.lineTo(1,1);\n    ctx1.lineTo(0,1);\n    ctx1.closePath();\n    ctx1.clip();\n    ctx1.save();\n    ctx1.fillStyle=\"rgba(0,0,0,0)\";\n    ctx1.font=\"   15px ''\";\n    ctx1.scale(0.00208333,0.00208333);\n    ctx1.restore();\n    ctx1.restore();\n    ctx1.restore();\n    ctx1.save();\n    ctx1.save();\n    ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n    ctx1.miterLimit=4;\n    ctx1.font=\"\";\n    ctx1.font=\"   15px ''\";\n    ctx1.translate(0,-1);\n    ctx1.beginPath();\n    ctx1.moveTo(0,0);\n    ctx1.lineTo(1,0);\n    ctx1.lineTo(1,1);\n    ctx1.lineTo(0,1);\n    ctx1.closePath();\n    ctx1.clip();\n    ctx1.save();\n    ctx1.fillStyle=\"rgba(0,0,0,0)\";\n    ctx1.font=\"   15px ''\";\n    ctx1.scale(0.00208333,0.00208333);\n    ctx1.restore();\n    ctx1.restore();\n    ctx1.restore();\n    ctx1.save();\n    ctx1.save();\n    ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n    ctx1.miterLimit=4;\n    ctx1.font=\"\";\n    ctx1.font=\"   15px ''\";\n    ctx1.beginPath();\n    ctx1.moveTo(0,0);\n    ctx1.lineTo(1,0);\n    ctx1.lineTo(1,1);\n    ctx1.lineTo(0,1);\n    ctx1.closePath();\n    ctx1.clip();\n    ctx1.save();\n    ctx1.fillStyle=\"rgba(0,0,0,0)\";\n    ctx1.font=\"   15px ''\";\n    ctx1.scale(0.00208333,0.00208333);\n    ctx1.restore();\n    ctx1.restore();\n    ctx1.restore();\n    ctx1.save();\n    ctx1.save();\n    ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n    ctx1.miterLimit=4;\n    ctx1.font=\"\";\n    ctx1.font=\"   15px ''\";\n    ctx1.translate(0,1);\n    ctx1.beginPath();\n    ctx1.moveTo(0,0);\n    ctx1.lineTo(1,0);\n    ctx1.lineTo(1,1);\n    ctx1.lineTo(0,1);\n    ctx1.closePath();\n    ctx1.clip();\n    ctx1.save();\n    ctx1.fillStyle=\"rgba(0,0,0,0)\";\n    ctx1.font=\"   15px ''\";\n    ctx1.scale(0.00208333,0.00208333);\n    ctx1.restore();\n    ctx1.restore();\n    ctx1.restore();\n    ctx1.save();\n    ctx1.save();\n    ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n    ctx1.miterLimit=4;\n    ctx1.font=\"\";\n    ctx1.font=\"   15px ''\";\n    ctx1.translate(1,-1);\n    ctx1.beginPath();\n    ctx1.moveTo(0,0);\n    ctx1.lineTo(1,0);\n    ctx1.lineTo(1,1);\n    ctx1.lineTo(0,1);\n    ctx1.closePath();\n    ctx1.clip();\n    ctx1.save();\n    ctx1.fillStyle=\"rgba(0,0,0,0)\";\n    ctx1.font=\"   15px ''\";\n    ctx1.scale(0.00208333,0.00208333);\n    ctx1.restore();\n    ctx1.restore();\n    ctx1.restore();\n    ctx1.save();\n    ctx1.save();\n    ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n    ctx1.miterLimit=4;\n    ctx1.font=\"\";\n    ctx1.font=\"   15px ''\";\n    ctx1.translate(1,0);\n    ctx1.beginPath();\n    ctx1.moveTo(0,0);\n    ctx1.lineTo(1,0);\n    ctx1.lineTo(1,1);\n    ctx1.lineTo(0,1);\n    ctx1.closePath();\n    ctx1.clip();\n    ctx1.save();\n    ctx1.fillStyle=\"rgba(0,0,0,0)\";\n    ctx1.font=\"   15px ''\";\n    ctx1.scale(0.00208333,0.00208333);\n    ctx1.restore();\n    ctx1.restore();\n    ctx1.restore();\n    ctx1.save();\n    ctx1.save();\n    ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n    ctx1.miterLimit=4;\n    ctx1.font=\"\";\n    ctx1.font=\"   15px ''\";\n    ctx1.translate(1,1);\n    ctx1.beginPath();\n    ctx1.moveTo(0,0);\n    ctx1.lineTo(1,0);\n    ctx1.lineTo(1,1);\n    ctx1.lineTo(0,1);\n    ctx1.closePath();\n    ctx1.clip();\n    ctx1.save();\n    ctx1.fillStyle=\"rgba(0,0,0,0)\";\n    ctx1.font=\"   15px ''\";\n    ctx1.scale(0.00208333,0.00208333);\n    ctx1.restore();\n    ctx1.restore();\n    ctx1.restore();\n    var p = ctx.createPattern(ctx1.canvas,\"repeat\");\n    ctx.fillStyle=p;\n    ctx.font=\"   15px ''\";\n    ctx.beginPath();\n    ctx.moveTo(0,0);\n    ctx.lineTo(18,0);\n    ctx.bezierCurveTo(18,0,18,0,18,0);\n    ctx.lineTo(18,18);\n    ctx.bezierCurveTo(18,18,18,18,18,18);\n    ctx.lineTo(0,18);\n    ctx.bezierCurveTo(0,18,0,18,0,18);\n    ctx.lineTo(0,0);\n    ctx.bezierCurveTo(0,0,0,0,0,0);\n    ctx.closePath();\n    ctx.fill();\n    ctx.stroke();\n    ctx.restore();\n    ctx.restore();\n}\n\nconst CG = globalThis.CraftGrid;\nCG.Nodes.Fusion.SVG.Register(\"angry2\", AngrySVG2, 17, 14.571428571428571, 2.4285714285714284); //NO I18N\n","\"use strict\"; // No I18N\n\nexport const AngrySVG3 = ctx => {\n\t\tctx.save();\n        ctx.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx.miterLimit=4;\n        ctx.font=\"15px ''\";\n        ctx.fillStyle=\"rgba(0,0,0,0)\";\n        ctx.font=\"   15px ''\";\n        ctx.save();\n        var canvas = document.createElement(\"canvas\");\n        canvas.width = 1;\n        canvas.height = 1;\n        var ctx1 = canvas.getContext(\"2d\");\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-1,-1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-0.760504,-0.157563);\n        ctx1.scale(0.00210084,0.00210084);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-1,0);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-0.760504,-0.157563);\n        ctx1.scale(0.00210084,0.00210084);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-1,1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-0.760504,-0.157563);\n        ctx1.scale(0.00210084,0.00210084);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(0,-1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-0.760504,-0.157563);\n        ctx1.scale(0.00210084,0.00210084);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-0.760504,-0.157563);\n        ctx1.scale(0.00210084,0.00210084);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(0,1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-0.760504,-0.157563);\n        ctx1.scale(0.00210084,0.00210084);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(1,-1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-0.760504,-0.157563);\n        ctx1.scale(0.00210084,0.00210084);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(1,0);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-0.760504,-0.157563);\n        ctx1.scale(0.00210084,0.00210084);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(1,1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-0.760504,-0.157563);\n        ctx1.scale(0.00210084,0.00210084);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        var p = ctx.createPattern(ctx1.canvas,\"repeat\");\n        ctx.fillStyle=p;\n        ctx.font=\"   15px ''\";\n        ctx.beginPath();\n        ctx.moveTo(9,0);\n        ctx.lineTo(9,0);\n        ctx.bezierCurveTo(13.970562748477143,0,18,4.029437251522858,18,9);\n        ctx.lineTo(18,9);\n        ctx.bezierCurveTo(18,13.970562748477143,13.970562748477143,18,9,18);\n        ctx.lineTo(9,18);\n        ctx.bezierCurveTo(4.029437251522858,18,0,13.970562748477143,0,9);\n        ctx.lineTo(0,9);\n        ctx.bezierCurveTo(0,4.029437251522858,4.029437251522858,0,9,0);\n        ctx.closePath();\n        ctx.fill();\n        ctx.stroke();\n        ctx.restore();\n        ctx.restore();\n\t}\n\nconst CG = globalThis.CraftGrid;\nCG.Nodes.Fusion.SVG.Register(\"angry3\", AngrySVG3, 17, 14.571428571428571, 2.4285714285714284); //NO I18N\n","\"use strict\"; // No I18N\n\nexport const AngrySVG4 = ctx => {\n\n\t\tctx.save();\n        ctx.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx.miterLimit=4;\n        ctx.font=\"15px ''\";\n        ctx.fillStyle=\"rgba(0,0,0,0)\";\n        ctx.font=\"   15px ''\";\n        ctx.save();\n        var canvas = document.createElement(\"canvas\");\n        canvas.width = 1;\n        canvas.height = 1;\n        var ctx1 = canvas.getContext(\"2d\");\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-1,-1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.transform(0.00151413,0,0,0.00142507,-0.151077,-0.0588235);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-1,0);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.transform(0.00151413,0,0,0.00142507,-0.151077,-0.0588235);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-1,1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.transform(0.00151413,0,0,0.00142507,-0.151077,-0.0588235);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(0,-1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.transform(0.00151413,0,0,0.00142507,-0.151077,-0.0588235);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.transform(0.00151413,0,0,0.00142507,-0.151077,-0.0588235);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(0,1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.transform(0.00151413,0,0,0.00142507,-0.151077,-0.0588235);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(1,-1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.transform(0.00151413,0,0,0.00142507,-0.151077,-0.0588235);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(1,0);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.transform(0.00151413,0,0,0.00142507,-0.151077,-0.0588235);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(1,1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.transform(0.00151413,0,0,0.00142507,-0.151077,-0.0588235);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        var p = ctx.createPattern(ctx1.canvas,\"repeat\");\n        ctx.fillStyle=p;\n        ctx.font=\"   15px ''\";\n        ctx.beginPath();\n        ctx.moveTo(9,0);\n        ctx.lineTo(9,0);\n        ctx.bezierCurveTo(13.970562748477143,0,18,4.029437251522858,18,9);\n        ctx.lineTo(18,10);\n        ctx.bezierCurveTo(18,14.970562748477143,13.970562748477143,19,9,19);\n        ctx.lineTo(9,19);\n        ctx.bezierCurveTo(4.029437251522858,19,0,14.970562748477143,0,10);\n        ctx.lineTo(0,9);\n        ctx.bezierCurveTo(0,4.029437251522858,4.029437251522858,0,9,0);\n        ctx.closePath();\n        ctx.fill();\n        ctx.stroke();\n        ctx.restore();\n        ctx.restore();\n\t}\n\n\tconst CG = globalThis.CraftGrid;\n\tCG.Nodes.Fusion.SVG.Register(\"angry4\", AngrySVG4, 17, 14.571428571428571, 2.4285714285714284); //NO I18N\n","\"use strict\"; // No I18N\n\nexport const AngrySVG5 = ctx => {\n\t\tctx.save();\n        ctx.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx.miterLimit=4;\n        ctx.font=\"15px ''\";\n        ctx.fillStyle=\"rgba(0,0,0,0)\";\n        ctx.font=\"   15px ''\";\n        ctx.save();\n        var canvas = document.createElement(\"canvas\");\n        canvas.width = 1;\n        canvas.height = 1;\n        var ctx1 = canvas.getContext(\"2d\");\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-1,-1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.00625,0.00625);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-1,0);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.00625,0.00625);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-1,1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.00625,0.00625);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(0,-1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.00625,0.00625);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.00625,0.00625);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(0,1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.00625,0.00625);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(1,-1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.00625,0.00625);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(1,0);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.00625,0.00625);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(1,1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.00625,0.00625);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        var p = ctx.createPattern(ctx1.canvas,\"repeat\");\n        ctx.fillStyle=p;\n        ctx.font=\"   15px ''\";\n        ctx.beginPath();\n        ctx.moveTo(0,0);\n        ctx.lineTo(18,0);\n        ctx.bezierCurveTo(18,0,18,0,18,0);\n        ctx.lineTo(18,18);\n        ctx.bezierCurveTo(18,18,18,18,18,18);\n        ctx.lineTo(0,18);\n        ctx.bezierCurveTo(0,18,0,18,0,18);\n        ctx.lineTo(0,0);\n        ctx.bezierCurveTo(0,0,0,0,0,0);\n        ctx.closePath();\n        ctx.fill();\n        ctx.stroke();\n        ctx.restore();\n        ctx.restore();\n\t}\n\n\tconst CG = globalThis.CraftGrid;\n\tCG.Nodes.Fusion.SVG.Register(\"angry5\", AngrySVG5, 17, 14.571428571428571, 2.4285714285714284); //NO I18N\n","\"use strict\"; // No I18N\n\nexport const DisappointmentSVG1 = ctx => {\n\n\t\tctx.save();\n        ctx.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx.miterLimit=4;\n        ctx.font=\"15px ''\";\n        ctx.fillStyle=\"rgba(0,0,0,0)\";\n        ctx.font=\"   15px ''\";\n        ctx.save();\n        var canvas = document.createElement(\"canvas\");\n        canvas.width = 1;\n        canvas.height = 1;\n        var ctx1 = canvas.getContext(\"2d\");\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-1,-1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.00416667,0.00416667);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-1,0);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.00416667,0.00416667);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-1,1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.00416667,0.00416667);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(0,-1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.00416667,0.00416667);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.00416667,0.00416667);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(0,1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.00416667,0.00416667);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(1,-1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.00416667,0.00416667);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(1,0);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.00416667,0.00416667);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(1,1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.00416667,0.00416667);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        var p = ctx.createPattern(ctx1.canvas,\"repeat\");\n        ctx.fillStyle=p;\n        ctx.font=\"   15px ''\";\n        ctx.beginPath();\n        ctx.moveTo(0,0);\n        ctx.lineTo(18,0);\n        ctx.bezierCurveTo(18,0,18,0,18,0);\n        ctx.lineTo(18,18);\n        ctx.bezierCurveTo(18,18,18,18,18,18);\n        ctx.lineTo(0,18);\n        ctx.bezierCurveTo(0,18,0,18,0,18);\n        ctx.lineTo(0,0);\n        ctx.bezierCurveTo(0,0,0,0,0,0);\n        ctx.closePath();\n        ctx.fill();\n        ctx.stroke();\n        ctx.restore();\n        ctx.restore();\n\t}\n\n\tconst CG = globalThis.CraftGrid;\n\tCG.Nodes.Fusion.SVG.Register(\"disappointment1\", DisappointmentSVG1, 17, 14.571428571428571, 2.4285714285714284); //NO I18N\n\n","\"use strict\"; // No I18N\n\nexport const DisappointmentSVG2 = ctx => {\n\n\t\tctx.save();\n        ctx.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx.miterLimit=4;\n        ctx.font=\"15px ''\";\n        ctx.fillStyle=\"rgba(0,0,0,0)\";\n        ctx.font=\"   15px ''\";\n        ctx.save();\n        var canvas = document.createElement(\"canvas\");\n        canvas.width = 1;\n        canvas.height = 1;\n        var ctx1 = canvas.getContext(\"2d\");\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-1,-1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.0025);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-1,0);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.0025);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-1,1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.0025);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(0,-1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.0025);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.0025);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(0,1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.0025);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(1,-1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.0025);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(1,0);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.0025);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(1,1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.0025);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        var p = ctx.createPattern(ctx1.canvas,\"repeat\");\n        ctx.fillStyle=p;\n        ctx.font=\"   15px ''\";\n        ctx.beginPath();\n        ctx.moveTo(0,0);\n        ctx.lineTo(20,0);\n        ctx.bezierCurveTo(20,0,20,0,20,0);\n        ctx.lineTo(20,20);\n        ctx.bezierCurveTo(20,20,20,20,20,20);\n        ctx.lineTo(0,20);\n        ctx.bezierCurveTo(0,20,0,20,0,20);\n        ctx.lineTo(0,0);\n        ctx.bezierCurveTo(0,0,0,0,0,0);\n        ctx.closePath();\n        ctx.fill();\n        ctx.stroke();\n        ctx.restore();\n        ctx.restore();\n\t}\n\n\tconst CG = globalThis.CraftGrid;\n\tCG.Nodes.Fusion.SVG.Register(\"disappointment2\", DisappointmentSVG2, 17, 14.571428571428571, 2.4285714285714284); //NO I18N\n","\"use strict\"; // No I18N\n\nexport const DisappointmentSVG3 = ctx => {\n\n\t\tctx.save();\n        ctx.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx.miterLimit=4;\n        ctx.font=\"15px ''\";\n        ctx.fillStyle=\"rgba(0,0,0,0)\";\n        ctx.font=\"   15px ''\";\n        ctx.save();\n        var canvas = document.createElement(\"canvas\");\n        canvas.width = 1;\n        canvas.height = 1;\n        var ctx1 = canvas.getContext(\"2d\");\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-1,-1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.0025);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-1,0);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.0025);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-1,1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.0025);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(0,-1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.0025);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.0025);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(0,1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.0025);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(1,-1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.0025);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(1,0);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.0025);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(1,1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.0025);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        var p = ctx.createPattern(ctx1.canvas,\"repeat\");\n        ctx.fillStyle=p;\n        ctx.font=\"   15px ''\";\n        ctx.beginPath();\n        ctx.moveTo(0,0);\n        ctx.lineTo(20,0);\n        ctx.bezierCurveTo(20,0,20,0,20,0);\n        ctx.lineTo(20,20);\n        ctx.bezierCurveTo(20,20,20,20,20,20);\n        ctx.lineTo(0,20);\n        ctx.bezierCurveTo(0,20,0,20,0,20);\n        ctx.lineTo(0,0);\n        ctx.bezierCurveTo(0,0,0,0,0,0);\n        ctx.closePath();\n        ctx.fill();\n        ctx.stroke();\n        ctx.restore();\n        ctx.restore();\n\t}\n\n\tconst CG = globalThis.CraftGrid;\n\tCG.Nodes.Fusion.SVG.Register(\"disappointment3\", DisappointmentSVG3, 17, 14.571428571428571, 2.4285714285714284); //NO I18N\n\n","\"use strict\"; // No I18N\n\nexport const DisappointmentSVG4 = ctx => {\n\n\t\tctx.save();\n        ctx.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx.miterLimit=4;\n        ctx.font=\"15px ''\";\n        ctx.fillStyle=\"rgba(0,0,0,0)\";\n        ctx.font=\"   15px ''\";\n        ctx.save();\n        var canvas = document.createElement(\"canvas\");\n        canvas.width = 1;\n        canvas.height = 1;\n        var ctx1 = canvas.getContext(\"2d\");\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-1,-1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.0025);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-1,0);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.0025);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-1,1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.0025);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(0,-1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.0025);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.0025);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(0,1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.0025);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(1,-1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.0025);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(1,0);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.0025);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(1,1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.0025);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        var p = ctx.createPattern(ctx1.canvas,\"repeat\");\n        ctx.fillStyle=p;\n        ctx.font=\"   15px ''\";\n        ctx.beginPath();\n        ctx.moveTo(0,0);\n        ctx.lineTo(20,0);\n        ctx.bezierCurveTo(20,0,20,0,20,0);\n        ctx.lineTo(20,20);\n        ctx.bezierCurveTo(20,20,20,20,20,20);\n        ctx.lineTo(0,20);\n        ctx.bezierCurveTo(0,20,0,20,0,20);\n        ctx.lineTo(0,0);\n        ctx.bezierCurveTo(0,0,0,0,0,0);\n        ctx.closePath();\n        ctx.fill();\n        ctx.stroke();\n        ctx.restore();\n        ctx.restore();\n\t}\n\n\tconst CG = globalThis.CraftGrid;\n\tCG.Nodes.Fusion.SVG.Register(\"disappointment4\", DisappointmentSVG4, 17, 14.571428571428571, 2.4285714285714284); //NO I18N\n\n","\"use strict\"; // No I18N\n\nexport const DisappointmentSVG5 = ctx => {\n\n\t\tctx.save();\n        ctx.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx.miterLimit=4;\n        ctx.font=\"15px ''\";\n        ctx.fillStyle=\"rgba(0,0,0,0)\";\n        ctx.font=\"   15px ''\";\n        ctx.save();\n        var canvas = document.createElement(\"canvas\");\n        canvas.width = 1;\n        canvas.height = 1;\n        var ctx1 = canvas.getContext(\"2d\");\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-1,-1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-0.0555556,-0.0555556);\n        ctx1.scale(0.00694444,0.00694444);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-1,0);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-0.0555556,-0.0555556);\n        ctx1.scale(0.00694444,0.00694444);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-1,1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-0.0555556,-0.0555556);\n        ctx1.scale(0.00694444,0.00694444);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(0,-1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-0.0555556,-0.0555556);\n        ctx1.scale(0.00694444,0.00694444);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-0.0555556,-0.0555556);\n        ctx1.scale(0.00694444,0.00694444);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(0,1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-0.0555556,-0.0555556);\n        ctx1.scale(0.00694444,0.00694444);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(1,-1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-0.0555556,-0.0555556);\n        ctx1.scale(0.00694444,0.00694444);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(1,0);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-0.0555556,-0.0555556);\n        ctx1.scale(0.00694444,0.00694444);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(1,1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-0.0555556,-0.0555556);\n        ctx1.scale(0.00694444,0.00694444);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        var p = ctx.createPattern(ctx1.canvas,\"repeat\");\n        ctx.fillStyle=p;\n        ctx.font=\"   15px ''\";\n        ctx.beginPath();\n        ctx.moveTo(0,0);\n        ctx.lineTo(20,0);\n        ctx.bezierCurveTo(20,0,20,0,20,0);\n        ctx.lineTo(20,20);\n        ctx.bezierCurveTo(20,20,20,20,20,20);\n        ctx.lineTo(0,20);\n        ctx.bezierCurveTo(0,20,0,20,0,20);\n        ctx.lineTo(0,0);\n        ctx.bezierCurveTo(0,0,0,0,0,0);\n        ctx.closePath();\n        ctx.fill();\n        ctx.stroke();\n        ctx.restore();\n        ctx.restore();\n\t}\n\n\tconst CG = globalThis.CraftGrid;\n\tCG.Nodes.Fusion.SVG.Register(\"disappointment5\", DisappointmentSVG5, 17, 14.571428571428571, 2.4285714285714284); //NO I18N\n","\"use strict\"; // No I18N\n\nexport const ExtremeHappySVG1 = ctx => {\n\n\t\tctx.save();\n        ctx.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx.miterLimit=4;\n        ctx.font=\"15px ''\";\n        ctx.fillStyle=\"rgba(0,0,0,0)\";\n        ctx.font=\"   15px ''\";\n        ctx.save();\n        var canvas = document.createElement(\"canvas\");\n        canvas.width = 1;\n        canvas.height = 1;\n        var ctx1 = canvas.getContext(\"2d\");\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-1,-1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.00416667,0.00416667);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-1,0);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.00416667,0.00416667);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-1,1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.00416667,0.00416667);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(0,-1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.00416667,0.00416667);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.00416667,0.00416667);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(0,1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.00416667,0.00416667);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(1,-1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.00416667,0.00416667);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(1,0);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.00416667,0.00416667);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(1,1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.00416667,0.00416667);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        var p = ctx.createPattern(ctx1.canvas,\"repeat\");\n        ctx.fillStyle=p;\n        ctx.font=\"   15px ''\";\n        ctx.beginPath();\n        ctx.moveTo(0,0);\n        ctx.lineTo(18,0);\n        ctx.bezierCurveTo(18,0,18,0,18,0);\n        ctx.lineTo(18,18);\n        ctx.bezierCurveTo(18,18,18,18,18,18);\n        ctx.lineTo(0,18);\n        ctx.bezierCurveTo(0,18,0,18,0,18);\n        ctx.lineTo(0,0);\n        ctx.bezierCurveTo(0,0,0,0,0,0);\n        ctx.closePath();\n        ctx.fill();\n        ctx.stroke();\n        ctx.restore();\n        ctx.restore();\n\t}\n\n\tconst CG = globalThis.CraftGrid;\n\tCG.Nodes.Fusion.SVG.Register(\"extremehappy1\", ExtremeHappySVG1, 17, 14.571428571428571, 2.4285714285714284); //NO I18N\n\n","\"use strict\"; // No I18N\n\nexport const ExtremeHappySVG2 = ctx => {\n\n\t\tctx.save();\n        ctx.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx.miterLimit=4;\n        ctx.font=\"15px ''\";\n        ctx.fillStyle=\"rgba(0,0,0,0)\";\n        ctx.font=\"   15px ''\";\n        ctx.save();\n        var canvas = document.createElement(\"canvas\");\n        canvas.width = 1;\n        canvas.height = 1;\n        var ctx1 = canvas.getContext(\"2d\");\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-1,-1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.00625,0.00625);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-1,0);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.00625,0.00625);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-1,1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.00625,0.00625);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(0,-1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.00625,0.00625);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.00625,0.00625);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(0,1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.00625,0.00625);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(1,-1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.00625,0.00625);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(1,0);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.00625,0.00625);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(1,1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.00625,0.00625);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        var p = ctx.createPattern(ctx1.canvas,\"repeat\");\n        ctx.fillStyle=p;\n        ctx.font=\"   15px ''\";\n        ctx.beginPath();\n        ctx.moveTo(0,0);\n        ctx.lineTo(20,0);\n        ctx.bezierCurveTo(20,0,20,0,20,0);\n        ctx.lineTo(20,20);\n        ctx.bezierCurveTo(20,20,20,20,20,20);\n        ctx.lineTo(0,20);\n        ctx.bezierCurveTo(0,20,0,20,0,20);\n        ctx.lineTo(0,0);\n        ctx.bezierCurveTo(0,0,0,0,0,0);\n        ctx.closePath();\n        ctx.fill();\n        ctx.stroke();\n        ctx.restore();\n        ctx.restore();\n\t}\n\n\tconst CG = globalThis.CraftGrid;\n\tCG.Nodes.Fusion.SVG.Register(\"extremehappy2\", ExtremeHappySVG2, 17, 14.571428571428571, 2.4285714285714284); //NO I18N\n\n","\"use strict\"; // No I18N\n\nexport const ExtremeHappySVG3 = ctx => {\n\n\t\tctx.save();\n        ctx.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx.miterLimit=4;\n        ctx.font=\"15px ''\";\n        ctx.fillStyle=\"rgba(0,0,0,0)\";\n        ctx.font=\"   15px ''\";\n        ctx.save();\n        var canvas = document.createElement(\"canvas\");\n        canvas.width = 1;\n        canvas.height = 1;\n        var ctx1 = canvas.getContext(\"2d\");\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-1,-1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-0.125,-0.125);\n        ctx1.scale(0.0078125,0.0078125);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-1,0);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-0.125,-0.125);\n        ctx1.scale(0.0078125,0.0078125);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-1,1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-0.125,-0.125);\n        ctx1.scale(0.0078125,0.0078125);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(0,-1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-0.125,-0.125);\n        ctx1.scale(0.0078125,0.0078125);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-0.125,-0.125);\n        ctx1.scale(0.0078125,0.0078125);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(0,1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-0.125,-0.125);\n        ctx1.scale(0.0078125,0.0078125);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(1,-1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-0.125,-0.125);\n        ctx1.scale(0.0078125,0.0078125);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(1,0);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-0.125,-0.125);\n        ctx1.scale(0.0078125,0.0078125);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(1,1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-0.125,-0.125);\n        ctx1.scale(0.0078125,0.0078125);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        var p = ctx.createPattern(ctx1.canvas,\"repeat\");\n        ctx.fillStyle=p;\n        ctx.font=\"   15px ''\";\n        ctx.beginPath();\n        ctx.moveTo(0,0);\n        ctx.lineTo(20,0);\n        ctx.bezierCurveTo(20,0,20,0,20,0);\n        ctx.lineTo(20,20);\n        ctx.bezierCurveTo(20,20,20,20,20,20);\n        ctx.lineTo(0,20);\n        ctx.bezierCurveTo(0,20,0,20,0,20);\n        ctx.lineTo(0,0);\n        ctx.bezierCurveTo(0,0,0,0,0,0);\n        ctx.closePath();\n        ctx.fill();\n        ctx.stroke();\n        ctx.restore();\n        ctx.restore();\n\t}\n\n\tconst CG = globalThis.CraftGrid;\n\tCG.Nodes.Fusion.SVG.Register(\"extremehappy3\", ExtremeHappySVG3, 17, 14.571428571428571, 2.4285714285714284); //NO I18N\n\n","\"use strict\"; // No I18N\n\nexport const ExtremeHappySVG4 = ctx => {\n\n\t\tctx.save();\n        ctx.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx.miterLimit=4;\n        ctx.font=\"15px ''\";\n        ctx.fillStyle=\"rgba(0,0,0,0)\";\n        ctx.font=\"   15px ''\";\n        ctx.save();\n        var canvas = document.createElement(\"canvas\");\n        canvas.width = 1;\n        canvas.height = 1;\n        var ctx1 = canvas.getContext(\"2d\");\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-1,-1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.0025);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-1,0);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.0025);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-1,1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.0025);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(0,-1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.0025);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.0025);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(0,1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.0025);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(1,-1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.0025);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(1,0);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.0025);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(1,1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.0025);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        var p = ctx.createPattern(ctx1.canvas,\"repeat\");\n        ctx.fillStyle=p;\n        ctx.font=\"   15px ''\";\n        ctx.beginPath();\n        ctx.moveTo(0,0);\n        ctx.lineTo(20,0);\n        ctx.bezierCurveTo(20,0,20,0,20,0);\n        ctx.lineTo(20,20);\n        ctx.bezierCurveTo(20,20,20,20,20,20);\n        ctx.lineTo(0,20);\n        ctx.bezierCurveTo(0,20,0,20,0,20);\n        ctx.lineTo(0,0);\n        ctx.bezierCurveTo(0,0,0,0,0,0);\n        ctx.closePath();\n        ctx.fill();\n        ctx.stroke();\n        ctx.restore();\n        ctx.restore();\n\n\t}\n\n\tconst CG = globalThis.CraftGrid;\n\tCG.Nodes.Fusion.SVG.Register(\"extremehappy4\", ExtremeHappySVG4, 17, 14.571428571428571, 2.4285714285714284); //NO I18N\n\n","\"use strict\"; // No I18N\n\nexport const ExtremeHappySVG5 = ctx => {\n\n\t\tctx.save();\n        ctx.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx.miterLimit=4;\n        ctx.font=\"15px ''\";\n        ctx.fillStyle=\"rgba(0,0,0,0)\";\n        ctx.font=\"   15px ''\";\n        ctx.save();\n        var canvas = document.createElement(\"canvas\");\n        canvas.width = 1;\n        canvas.height = 1;\n        var ctx1 = canvas.getContext(\"2d\");\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-1,-1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.0025);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-1,0);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.0025);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-1,1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.0025);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(0,-1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.0025);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.0025);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(0,1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.0025);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(1,-1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.0025);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(1,0);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.0025);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(1,1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.0025);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        var p = ctx.createPattern(ctx1.canvas,\"repeat\");\n        ctx.fillStyle=p;\n        ctx.font=\"   15px ''\";\n        ctx.beginPath();\n        ctx.moveTo(0,0);\n        ctx.lineTo(20,0);\n        ctx.bezierCurveTo(20,0,20,0,20,0);\n        ctx.lineTo(20,20);\n        ctx.bezierCurveTo(20,20,20,20,20,20);\n        ctx.lineTo(0,20);\n        ctx.bezierCurveTo(0,20,0,20,0,20);\n        ctx.lineTo(0,0);\n        ctx.bezierCurveTo(0,0,0,0,0,0);\n        ctx.closePath();\n        ctx.fill();\n        ctx.stroke();\n        ctx.restore();\n        ctx.restore();\n\t}\n\n\tconst CG = globalThis.CraftGrid;\n\tCG.Nodes.Fusion.SVG.Register(\"extremehappy5\", ExtremeHappySVG5, 17, 14.571428571428571, 2.4285714285714284); //NO I18N\n\n","\"use strict\"; // No I18N\n\nexport const HappySVG1 = ctx => {\n\n\t\tctx.save();\n        ctx.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx.miterLimit=4;\n        ctx.font=\"15px ''\";\n        ctx.fillStyle=\"rgba(0,0,0,0)\";\n        ctx.font=\"   15px ''\";\n        ctx.save();\n        var canvas = document.createElement(\"canvas\");\n        canvas.width = 1;\n        canvas.height = 1;\n        var ctx1 = canvas.getContext(\"2d\");\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-1,-1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.00416667,0.00416667);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-1,0);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.00416667,0.00416667);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-1,1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.00416667,0.00416667);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(0,-1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.00416667,0.00416667);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.00416667,0.00416667);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(0,1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.00416667,0.00416667);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(1,-1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.00416667,0.00416667);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(1,0);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.00416667,0.00416667);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(1,1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.00416667,0.00416667);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        var p = ctx.createPattern(ctx1.canvas,\"repeat\");\n        ctx.fillStyle=p;\n        ctx.font=\"   15px ''\";\n        ctx.beginPath();\n        ctx.moveTo(0,0);\n        ctx.lineTo(18,0);\n        ctx.bezierCurveTo(18,0,18,0,18,0);\n        ctx.lineTo(18,18);\n        ctx.bezierCurveTo(18,18,18,18,18,18);\n        ctx.lineTo(0,18);\n        ctx.bezierCurveTo(0,18,0,18,0,18);\n        ctx.lineTo(0,0);\n        ctx.bezierCurveTo(0,0,0,0,0,0);\n        ctx.closePath();\n        ctx.fill();\n        ctx.stroke();\n        ctx.restore();\n        ctx.restore();\n\t}\n\n\tconst CG = globalThis.CraftGrid;\n\tCG.Nodes.Fusion.SVG.Register(\"happy1\", HappySVG1, 17, 14.571428571428571, 2.4285714285714284); //NO I18N\n\n\n","\"use strict\"; // No I18N\n\nexport const HappySVG2 = ctx => {\n\n\t\tctx.save();\n        ctx.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx.miterLimit=4;\n        ctx.font=\"15px ''\";\n        ctx.fillStyle=\"rgba(0,0,0,0)\";\n        ctx.font=\"   15px ''\";\n        ctx.save();\n        var canvas = document.createElement(\"canvas\");\n        canvas.width = 1;\n        canvas.height = 1;\n        var ctx1 = canvas.getContext(\"2d\");\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-1,-1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.00625,0.00625);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-1,0);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.00625,0.00625);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-1,1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.00625,0.00625);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(0,-1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.00625,0.00625);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.00625,0.00625);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(0,1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.00625,0.00625);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(1,-1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.00625,0.00625);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(1,0);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.00625,0.00625);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(1,1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.00625,0.00625);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        var p = ctx.createPattern(ctx1.canvas,\"repeat\");\n        ctx.fillStyle=p;\n        ctx.font=\"   15px ''\";\n        ctx.beginPath();\n        ctx.moveTo(0,0);\n        ctx.lineTo(20,0);\n        ctx.bezierCurveTo(20,0,20,0,20,0);\n        ctx.lineTo(20,20);\n        ctx.bezierCurveTo(20,20,20,20,20,20);\n        ctx.lineTo(0,20);\n        ctx.bezierCurveTo(0,20,0,20,0,20);\n        ctx.lineTo(0,0);\n        ctx.bezierCurveTo(0,0,0,0,0,0);\n        ctx.closePath();\n        ctx.fill();\n        ctx.stroke();\n        ctx.restore();\n        ctx.restore();\n\t}\n\n\tconst CG = globalThis.CraftGrid;\n\tCG.Nodes.Fusion.SVG.Register(\"happy2\", HappySVG2, 17, 14.571428571428571, 2.4285714285714284); //NO I18N\n\n\n","\"use strict\"; // No I18N\n\nexport const HappySVG3 = ctx => {\n\n\t\tctx.save();\n        ctx.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx.miterLimit=4;\n        ctx.font=\"15px ''\";\n        ctx.fillStyle=\"rgba(0,0,0,0)\";\n        ctx.font=\"   15px ''\";\n        ctx.save();\n        var canvas = document.createElement(\"canvas\");\n        canvas.width = 1;\n        canvas.height = 1;\n        var ctx1 = canvas.getContext(\"2d\");\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-1,-1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-0.117284,-0.117284);\n        ctx1.scale(0.00771605,0.00771605);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-1,0);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-0.117284,-0.117284);\n        ctx1.scale(0.00771605,0.00771605);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-1,1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-0.117284,-0.117284);\n        ctx1.scale(0.00771605,0.00771605);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(0,-1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-0.117284,-0.117284);\n        ctx1.scale(0.00771605,0.00771605);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-0.117284,-0.117284);\n        ctx1.scale(0.00771605,0.00771605);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(0,1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-0.117284,-0.117284);\n        ctx1.scale(0.00771605,0.00771605);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(1,-1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-0.117284,-0.117284);\n        ctx1.scale(0.00771605,0.00771605);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(1,0);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-0.117284,-0.117284);\n        ctx1.scale(0.00771605,0.00771605);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(1,1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-0.117284,-0.117284);\n        ctx1.scale(0.00771605,0.00771605);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        var p = ctx.createPattern(ctx1.canvas,\"repeat\");\n        ctx.fillStyle=p;\n        ctx.font=\"   15px ''\";\n        ctx.beginPath();\n        ctx.moveTo(0,0);\n        ctx.lineTo(20,0);\n        ctx.bezierCurveTo(20,0,20,0,20,0);\n        ctx.lineTo(20,20);\n        ctx.bezierCurveTo(20,20,20,20,20,20);\n        ctx.lineTo(0,20);\n        ctx.bezierCurveTo(0,20,0,20,0,20);\n        ctx.lineTo(0,0);\n        ctx.bezierCurveTo(0,0,0,0,0,0);\n        ctx.closePath();\n        ctx.fill();\n        ctx.stroke();\n        ctx.restore();\n        ctx.restore();\n\t}\n\n\tconst CG = globalThis.CraftGrid;\n\tCG.Nodes.Fusion.SVG.Register(\"happy3\", HappySVG3, 17, 14.571428571428571, 2.4285714285714284); //NO I18N\n\n","\"use strict\"; // No I18N\n\nexport const HappySVG4 = ctx => {\n\n\t\tctx.save();\n        ctx.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx.miterLimit=4;\n        ctx.font=\"15px ''\";\n        ctx.fillStyle=\"rgba(0,0,0,0)\";\n        ctx.font=\"   15px ''\";\n        ctx.save();\n        var canvas = document.createElement(\"canvas\");\n        canvas.width = 1;\n        canvas.height = 1;\n        var ctx1 = canvas.getContext(\"2d\");\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-1,-1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.0025);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-1,0);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.0025);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-1,1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.0025);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(0,-1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.0025);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.0025);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(0,1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.0025);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(1,-1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.0025);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(1,0);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.0025);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(1,1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.0025);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        var p = ctx.createPattern(ctx1.canvas,\"repeat\");\n        ctx.fillStyle=p;\n        ctx.font=\"   15px ''\";\n        ctx.beginPath();\n        ctx.moveTo(0,0);\n        ctx.lineTo(20,0);\n        ctx.bezierCurveTo(20,0,20,0,20,0);\n        ctx.lineTo(20,20);\n        ctx.bezierCurveTo(20,20,20,20,20,20);\n        ctx.lineTo(0,20);\n        ctx.bezierCurveTo(0,20,0,20,0,20);\n        ctx.lineTo(0,0);\n        ctx.bezierCurveTo(0,0,0,0,0,0);\n        ctx.closePath();\n        ctx.fill();\n        ctx.stroke();\n        ctx.restore();\n        ctx.restore();\n\t}\n\n\tconst CG = globalThis.CraftGrid;\n\tCG.Nodes.Fusion.SVG.Register(\"happy4\", HappySVG4, 17, 14.571428571428571, 2.4285714285714284); //NO I18N\n\n\n","\"use strict\"; // No I18N\n\nexport const HappySVG5 = ctx => {\n\n\t\tctx.save();\n        ctx.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx.miterLimit=4;\n        ctx.font=\"15px ''\";\n        ctx.fillStyle=\"rgba(0,0,0,0)\";\n        ctx.font=\"   15px ''\";\n        ctx.save();\n        var canvas = document.createElement(\"canvas\");\n        canvas.width = 1;\n        canvas.height = 1;\n        var ctx1 = canvas.getContext(\"2d\");\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-1,-1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.0025);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-1,0);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.0025);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-1,1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.0025);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(0,-1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.0025);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.0025);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(0,1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.0025);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(1,-1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.0025);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(1,0);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.0025);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(1,1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.0025);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        var p = ctx.createPattern(ctx1.canvas,\"repeat\");\n        ctx.fillStyle=p;\n        ctx.font=\"   15px ''\";\n        ctx.beginPath();\n        ctx.moveTo(0,0);\n        ctx.lineTo(20,0);\n        ctx.bezierCurveTo(20,0,20,0,20,0);\n        ctx.lineTo(20,20);\n        ctx.bezierCurveTo(20,20,20,20,20,20);\n        ctx.lineTo(0,20);\n        ctx.bezierCurveTo(0,20,0,20,0,20);\n        ctx.lineTo(0,0);\n        ctx.bezierCurveTo(0,0,0,0,0,0);\n        ctx.closePath();\n        ctx.fill();\n        ctx.stroke();\n        ctx.restore();\n        ctx.restore();\n\t}\n\n\tconst CG = globalThis.CraftGrid;\n\tCG.Nodes.Fusion.SVG.Register(\"happy5\", HappySVG5, 17, 14.571428571428571, 2.4285714285714284); //NO I18N\n\n","\"use strict\"; // No I18N\n\nexport const NeutralSVG1 = ctx => {\n\n\t\tctx.save();\n        ctx.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx.miterLimit=4;\n        ctx.font=\"15px ''\";\n        ctx.fillStyle=\"rgba(0,0,0,0)\";\n        ctx.font=\"   15px ''\";\n        ctx.save();\n        var canvas = document.createElement(\"canvas\");\n        canvas.width = 1;\n        canvas.height = 1;\n        var ctx1 = canvas.getContext(\"2d\");\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-1,-1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0125,0.0125);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-1,0);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0125,0.0125);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-1,1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0125,0.0125);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(0,-1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0125,0.0125);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0125,0.0125);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(0,1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0125,0.0125);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(1,-1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0125,0.0125);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(1,0);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0125,0.0125);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(1,1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0125,0.0125);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        var p = ctx.createPattern(ctx1.canvas,\"repeat\");\n        ctx.fillStyle=p;\n        ctx.font=\"   15px ''\";\n        ctx.beginPath();\n        ctx.moveTo(0,0);\n        ctx.lineTo(20,0);\n        ctx.bezierCurveTo(20,0,20,0,20,0);\n        ctx.lineTo(20,20);\n        ctx.bezierCurveTo(20,20,20,20,20,20);\n        ctx.lineTo(0,20);\n        ctx.bezierCurveTo(0,20,0,20,0,20);\n        ctx.lineTo(0,0);\n        ctx.bezierCurveTo(0,0,0,0,0,0);\n        ctx.closePath();\n        ctx.fill();\n        ctx.stroke();\n        ctx.restore();\n        ctx.restore();\n\t}\n\n\tconst CG = globalThis.CraftGrid;\n\tCG.Nodes.Fusion.SVG.Register(\"neutral1\", NeutralSVG1, 17, 14.571428571428571, 2.4285714285714284); //NO I18N\n","\"use strict\"; // No I18N\n\nexport const NeutralSVG2 = ctx => {\n\n\t\tctx.save();\n        ctx.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx.miterLimit=4;\n        ctx.font=\"15px ''\";\n        ctx.fillStyle=\"rgba(0,0,0,0)\";\n        ctx.font=\"   15px ''\";\n        ctx.save();\n        var canvas = document.createElement(\"canvas\");\n        canvas.width = 1;\n        canvas.height = 1;\n        var ctx1 = canvas.getContext(\"2d\");\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-1,-1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.0025);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-1,0);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.0025);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-1,1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.0025);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(0,-1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.0025);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.0025);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(0,1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.0025);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(1,-1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.0025);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(1,0);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.0025);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(1,1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.0025);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        var p = ctx.createPattern(ctx1.canvas,\"repeat\");\n        ctx.fillStyle=p;\n        ctx.font=\"   15px ''\";\n        ctx.beginPath();\n        ctx.moveTo(0,0);\n        ctx.lineTo(20,0);\n        ctx.bezierCurveTo(20,0,20,0,20,0);\n        ctx.lineTo(20,20);\n        ctx.bezierCurveTo(20,20,20,20,20,20);\n        ctx.lineTo(0,20);\n        ctx.bezierCurveTo(0,20,0,20,0,20);\n        ctx.lineTo(0,0);\n        ctx.bezierCurveTo(0,0,0,0,0,0);\n        ctx.closePath();\n        ctx.fill();\n        ctx.stroke();\n        ctx.restore();\n        ctx.restore();\n\t}\n\n\tconst CG = globalThis.CraftGrid;\n\tCG.Nodes.Fusion.SVG.Register(\"neutral2\", NeutralSVG2, 17, 14.571428571428571, 2.4285714285714284); //NO I18N\n\n","\"use strict\"; // No I18N\n\nexport const NeutralSVG3 = ctx => {\n\n\t\tctx.save();\n        ctx.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx.miterLimit=4;\n        ctx.font=\"15px ''\";\n        ctx.fillStyle=\"rgba(0,0,0,0)\";\n        ctx.font=\"   15px ''\";\n        ctx.save();\n        var canvas = document.createElement(\"canvas\");\n        canvas.width = 1;\n        canvas.height = 1;\n        var ctx1 = canvas.getContext(\"2d\");\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-1,-1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.0025);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-1,0);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.0025);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-1,1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.0025);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(0,-1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.0025);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.0025);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(0,1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.0025);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(1,-1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.0025);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(1,0);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.0025);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(1,1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.0025);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        var p = ctx.createPattern(ctx1.canvas,\"repeat\");\n        ctx.fillStyle=p;\n        ctx.font=\"   15px ''\";\n        ctx.beginPath();\n        ctx.moveTo(0,0);\n        ctx.lineTo(20,0);\n        ctx.bezierCurveTo(20,0,20,0,20,0);\n        ctx.lineTo(20,20);\n        ctx.bezierCurveTo(20,20,20,20,20,20);\n        ctx.lineTo(0,20);\n        ctx.bezierCurveTo(0,20,0,20,0,20);\n        ctx.lineTo(0,0);\n        ctx.bezierCurveTo(0,0,0,0,0,0);\n        ctx.closePath();\n        ctx.fill();\n        ctx.stroke();\n        ctx.restore();\n        ctx.restore();\n\t}\n\n\tconst CG = globalThis.CraftGrid;\n\tCG.Nodes.Fusion.SVG.Register(\"neutral3\", NeutralSVG3, 17, 14.571428571428571, 2.4285714285714284); //NO I18N\n","\"use strict\"; // No I18N\n\nexport const NeutralSVG4 = ctx => {\n\n\t\tctx.save();\n        ctx.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx.miterLimit=4;\n        ctx.font=\"15px ''\";\n        ctx.fillStyle=\"rgba(0,0,0,0)\";\n        ctx.font=\"   15px ''\";\n        ctx.save();\n        var canvas = document.createElement(\"canvas\");\n        canvas.width = 1;\n        canvas.height = 1;\n        var ctx1 = canvas.getContext(\"2d\");\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-1,-1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.00625,0.00625);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-1,0);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.00625,0.00625);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-1,1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.00625,0.00625);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(0,-1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.00625,0.00625);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.00625,0.00625);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(0,1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.00625,0.00625);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(1,-1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.00625,0.00625);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(1,0);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.00625,0.00625);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(1,1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.00625,0.00625);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        var p = ctx.createPattern(ctx1.canvas,\"repeat\");\n        ctx.fillStyle=p;\n        ctx.font=\"   15px ''\";\n        ctx.beginPath();\n        ctx.moveTo(0,0);\n        ctx.lineTo(20,0);\n        ctx.bezierCurveTo(20,0,20,0,20,0);\n        ctx.lineTo(20,20);\n        ctx.bezierCurveTo(20,20,20,20,20,20);\n        ctx.lineTo(0,20);\n        ctx.bezierCurveTo(0,20,0,20,0,20);\n        ctx.lineTo(0,0);\n        ctx.bezierCurveTo(0,0,0,0,0,0);\n        ctx.closePath();\n        ctx.fill();\n        ctx.stroke();\n        ctx.restore();\n        ctx.restore();\n\t}\n\n\tconst CG = globalThis.CraftGrid;\n\tCG.Nodes.Fusion.SVG.Register(\"neutral4\", NeutralSVG4, 17, 14.571428571428571, 2.4285714285714284); //NO I18N\n\n","\"use strict\"; // No I18N\n\nexport const NeutralSVG5 = ctx => {\n\n\t\tctx.save();\n        ctx.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx.miterLimit=4;\n        ctx.font=\"15px ''\";\n        ctx.fillStyle=\"rgba(0,0,0,0)\";\n        ctx.font=\"   15px ''\";\n        ctx.save();\n        var canvas = document.createElement(\"canvas\");\n        canvas.width = 1;\n        canvas.height = 1;\n        var ctx1 = canvas.getContext(\"2d\");\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-1,-1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.00416667,0.00416667);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-1,0);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.00416667,0.00416667);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-1,1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.00416667,0.00416667);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(0,-1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.00416667,0.00416667);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.00416667,0.00416667);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(0,1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.00416667,0.00416667);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(1,-1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.00416667,0.00416667);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(1,0);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.00416667,0.00416667);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(1,1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.00416667,0.00416667);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        var p = ctx.createPattern(ctx1.canvas,\"repeat\");\n        ctx.fillStyle=p;\n        ctx.font=\"   15px ''\";\n        ctx.beginPath();\n        ctx.moveTo(0,0);\n        ctx.lineTo(18,0);\n        ctx.bezierCurveTo(18,0,18,0,18,0);\n        ctx.lineTo(18,18);\n        ctx.bezierCurveTo(18,18,18,18,18,18);\n        ctx.lineTo(0,18);\n        ctx.bezierCurveTo(0,18,0,18,0,18);\n        ctx.lineTo(0,0);\n        ctx.bezierCurveTo(0,0,0,0,0,0);\n        ctx.closePath();\n        ctx.fill();\n        ctx.stroke();\n        ctx.restore();\n        ctx.restore();\n\t}\n\n\tconst CG = globalThis.CraftGrid;\n\tCG.Nodes.Fusion.SVG.Register(\"neutral5\", NeutralSVG5, 17, 14.571428571428571, 2.4285714285714284); //NO I18N\n\n","\"use strict\"; // No I18N\n\nexport const SarcasmSVG1 = ctx => {\n\n\t\tctx.save();\n        ctx.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx.miterLimit=4;\n        ctx.font=\"15px ''\";\n        ctx.fillStyle=\"rgba(0,0,0,0)\";\n        ctx.font=\"   15px ''\";\n        ctx.save();\n        var canvas = document.createElement(\"canvas\");\n        canvas.width = 1;\n        canvas.height = 1;\n        var ctx1 = canvas.getContext(\"2d\");\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-1,-1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.00416667,0.00416667);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-1,0);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.00416667,0.00416667);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-1,1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.00416667,0.00416667);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(0,-1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.00416667,0.00416667);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.00416667,0.00416667);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(0,1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.00416667,0.00416667);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(1,-1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.00416667,0.00416667);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(1,0);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.00416667,0.00416667);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(1,1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.00416667,0.00416667);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        var p = ctx.createPattern(ctx1.canvas,\"repeat\");\n        ctx.fillStyle=p;\n        ctx.font=\"   15px ''\";\n        ctx.beginPath();\n        ctx.moveTo(0,0);\n        ctx.lineTo(18,0);\n        ctx.bezierCurveTo(18,0,18,0,18,0);\n        ctx.lineTo(18,18);\n        ctx.bezierCurveTo(18,18,18,18,18,18);\n        ctx.lineTo(0,18);\n        ctx.bezierCurveTo(0,18,0,18,0,18);\n        ctx.lineTo(0,0);\n        ctx.bezierCurveTo(0,0,0,0,0,0);\n        ctx.closePath();\n        ctx.fill();\n        ctx.stroke();\n        ctx.restore();\n        ctx.restore();\n\t}\n\n\tconst CG = globalThis.CraftGrid;\n\tCG.Nodes.Fusion.SVG.Register(\"sarcasm1\", SarcasmSVG1, 17, 14.571428571428571, 2.4285714285714284); //NO I18N\n\n","\"use strict\"; // No I18N\n\nexport const SarcasmSVG2 = ctx => {\n\n\t\tctx.save();\n        ctx.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx.miterLimit=4;\n        ctx.font=\"15px ''\";\n        ctx.fillStyle=\"rgba(0,0,0,0)\";\n        ctx.font=\"   15px ''\";\n        ctx.save();\n        var canvas = document.createElement(\"canvas\");\n        canvas.width = 1;\n        canvas.height = 1;\n        var ctx1 = canvas.getContext(\"2d\");\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-1,-1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-0.117284,-0.117284);\n        ctx1.scale(0.00771605,0.00771605);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-1,0);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-0.117284,-0.117284);\n        ctx1.scale(0.00771605,0.00771605);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-1,1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-0.117284,-0.117284);\n        ctx1.scale(0.00771605,0.00771605);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(0,-1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-0.117284,-0.117284);\n        ctx1.scale(0.00771605,0.00771605);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-0.117284,-0.117284);\n        ctx1.scale(0.00771605,0.00771605);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(0,1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-0.117284,-0.117284);\n        ctx1.scale(0.00771605,0.00771605);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(1,-1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-0.117284,-0.117284);\n        ctx1.scale(0.00771605,0.00771605);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(1,0);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-0.117284,-0.117284);\n        ctx1.scale(0.00771605,0.00771605);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(1,1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-0.117284,-0.117284);\n        ctx1.scale(0.00771605,0.00771605);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        var p = ctx.createPattern(ctx1.canvas,\"repeat\");\n        ctx.fillStyle=p;\n        ctx.font=\"   15px ''\";\n        ctx.beginPath();\n        ctx.moveTo(0,0);\n        ctx.lineTo(20,0);\n        ctx.bezierCurveTo(20,0,20,0,20,0);\n        ctx.lineTo(20,20);\n        ctx.bezierCurveTo(20,20,20,20,20,20);\n        ctx.lineTo(0,20);\n        ctx.bezierCurveTo(0,20,0,20,0,20);\n        ctx.lineTo(0,0);\n        ctx.bezierCurveTo(0,0,0,0,0,0);\n        ctx.closePath();\n        ctx.fill();\n        ctx.stroke();\n        ctx.restore();\n        ctx.restore();\n\t}\n\n\tconst CG = globalThis.CraftGrid;\n\tCG.Nodes.Fusion.SVG.Register(\"sarcasm2\", SarcasmSVG2, 17, 14.571428571428571, 2.4285714285714284); //NO I18N\n","\"use strict\"; // No I18N\n\nexport const SarcasmSVG3 = ctx => {\n\n\t\tctx.save();\n        ctx.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx.miterLimit=4;\n        ctx.font=\"15px ''\";\n        ctx.fillStyle=\"rgba(0,0,0,0)\";\n        ctx.font=\"   15px ''\";\n        ctx.save();\n        var canvas = document.createElement(\"canvas\");\n        canvas.width = 1;\n        canvas.height = 1;\n        var ctx1 = canvas.getContext(\"2d\");\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-1,-1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.0025);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-1,0);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.0025);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-1,1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.0025);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(0,-1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.0025);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.0025);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(0,1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.0025);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(1,-1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.0025);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(1,0);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.0025);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(1,1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.0025);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        var p = ctx.createPattern(ctx1.canvas,\"repeat\");\n        ctx.fillStyle=p;\n        ctx.font=\"   15px ''\";\n        ctx.beginPath();\n        ctx.moveTo(0,0);\n        ctx.lineTo(20,0);\n        ctx.bezierCurveTo(20,0,20,0,20,0);\n        ctx.lineTo(20,20);\n        ctx.bezierCurveTo(20,20,20,20,20,20);\n        ctx.lineTo(0,20);\n        ctx.bezierCurveTo(0,20,0,20,0,20);\n        ctx.lineTo(0,0);\n        ctx.bezierCurveTo(0,0,0,0,0,0);\n        ctx.closePath();\n        ctx.fill();\n        ctx.stroke();\n        ctx.restore();\n        ctx.restore();\n\t}\n\n\tconst CG = globalThis.CraftGrid;\n\tCG.Nodes.Fusion.SVG.Register(\"sarcasm3\", SarcasmSVG3, 17, 14.571428571428571, 2.4285714285714284); //NO I18N\n\n","\"use strict\"; // No I18N\n\nexport const SarcasmSVG4 = ctx => {\n\n\t\tctx.save();\n        ctx.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx.miterLimit=4;\n        ctx.font=\"15px ''\";\n        ctx.fillStyle=\"rgba(0,0,0,0)\";\n        ctx.font=\"   15px ''\";\n        ctx.save();\n        var canvas = document.createElement(\"canvas\");\n        canvas.width = 1;\n        canvas.height = 1;\n        var ctx1 = canvas.getContext(\"2d\");\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-1,-1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.0025);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-1,0);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.0025);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-1,1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.0025);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(0,-1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.0025);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.0025);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(0,1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.0025);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(1,-1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.0025);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(1,0);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.0025);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(1,1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.0025);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        var p = ctx.createPattern(ctx1.canvas,\"repeat\");\n        ctx.fillStyle=p;\n        ctx.font=\"   15px ''\";\n        ctx.beginPath();\n        ctx.moveTo(0,0);\n        ctx.lineTo(20,0);\n        ctx.bezierCurveTo(20,0,20,0,20,0);\n        ctx.lineTo(20,20);\n        ctx.bezierCurveTo(20,20,20,20,20,20);\n        ctx.lineTo(0,20);\n        ctx.bezierCurveTo(0,20,0,20,0,20);\n        ctx.lineTo(0,0);\n        ctx.bezierCurveTo(0,0,0,0,0,0);\n        ctx.closePath();\n        ctx.fill();\n        ctx.stroke();\n        ctx.restore();\n        ctx.restore();\n\t}\n\n\tconst CG = globalThis.CraftGrid;\n\tCG.Nodes.Fusion.SVG.Register(\"sarcasm4\", SarcasmSVG4, 17, 14.571428571428571, 2.4285714285714284); //NO I18N\n\n","\"use strict\"; // No I18N\n\nexport const SarcasmSVG5 = ctx => {\n\n\t\tctx.save();\n        ctx.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx.miterLimit=4;\n        ctx.font=\"15px ''\";\n        ctx.fillStyle=\"rgba(0,0,0,0)\";\n        ctx.font=\"   15px ''\";\n        ctx.save();\n        var canvas = document.createElement(\"canvas\");\n        canvas.width = 1;\n        canvas.height = 1;\n        var ctx1 = canvas.getContext(\"2d\");\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-1,-1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.00249377);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-1,0);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.00249377);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(-1,1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.00249377);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(0,-1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.00249377);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.00249377);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(0,1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.00249377);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(1,-1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.00249377);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(1,0);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.00249377);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.save();\n        ctx1.save();\n        ctx1.strokeStyle=\"rgba(0,0,0,0)\";\n        ctx1.miterLimit=4;\n        ctx1.font=\"\";\n        ctx1.font=\"   15px ''\";\n        ctx1.translate(1,1);\n        ctx1.beginPath();\n        ctx1.moveTo(0,0);\n        ctx1.lineTo(1,0);\n        ctx1.lineTo(1,1);\n        ctx1.lineTo(0,1);\n        ctx1.closePath();\n        ctx1.clip();\n        ctx1.save();\n        ctx1.fillStyle=\"rgba(0,0,0,0)\";\n        ctx1.font=\"   15px ''\";\n        ctx1.scale(0.0025,0.00249377);\n        ctx1.restore();\n        ctx1.restore();\n        ctx1.restore();\n        var p = ctx.createPattern(ctx1.canvas,\"repeat\");\n        ctx.fillStyle=p;\n        ctx.font=\"   15px ''\";\n        ctx.beginPath();\n        ctx.moveTo(0,0);\n        ctx.lineTo(19.9501,0);\n        ctx.bezierCurveTo(19.9501,0,19.9501,0,19.9501,0);\n        ctx.lineTo(19.9501,20);\n        ctx.bezierCurveTo(19.9501,20,19.9501,20,19.9501,20);\n        ctx.lineTo(0,20);\n        ctx.bezierCurveTo(0,20,0,20,0,20);\n        ctx.lineTo(0,0);\n        ctx.bezierCurveTo(0,0,0,0,0,0);\n        ctx.closePath();\n        ctx.fill();\n        ctx.stroke();\n        ctx.restore();\n        ctx.restore();\n\t}\n\n\tconst CG = globalThis.CraftGrid;\n\tCG.Nodes.Fusion.SVG.Register(\"sarcasm5\", SarcasmSVG5, 17, 14.571428571428571, 2.4285714285714284); //NO I18N\n\n","export const emptyFlag = (ctx, {strokeStyle}) => {\n\tctx.save();\n\t// ctx.strokeStyle=\"rgba(0,0,0,0)\"; //No I18N\n\tctx.strokeStyle=strokeStyle;\n\tctx.fillStyle=\"#f5f5f5\"; // No I18N\n\tctx.miterLimit=4;\n\tctx.font=\"15px / 21.4286px ''\"; //No I18N\n\tctx.font=\"   15px \"; //No I18N\n\tctx.scale(0.25,0.25);\n\tctx.scale(0.25,0.25);\n\tctx.save();\n\tctx.font=\"   15px \"; //No I18N\n\tctx.beginPath();\n\tctx.moveTo(202.89,154);\n\tctx.lineTo(185.26999999999998,115.08);\n\tctx.lineTo(201.65999999999997,80.94999999999999);\n\tctx.translate(183.88602612207853,72.43120005006769);\n\tctx.rotate(0);\n\tctx.arc(0,0,19.71,0.44693874150733276,-0.6056724887712193,1);\n\tctx.rotate(0);\n\tctx.translate(-183.88602612207853,-72.43120005006769);\n\tctx.translate(184.12902403875987,72.18470484180398);\n\tctx.rotate(0);\n\tctx.arc(0,0,19.37,-0.6023526002346579,-1.6700310852446445,1);\n\tctx.rotate(0);\n\tctx.translate(-184.12902403875987,-72.18470484180398);\n\tctx.bezierCurveTo(162.35999999999999,54.76,132.95,55.91,106.69999999999997,44.599999999999994);\n\tctx.bezierCurveTo(79.27,32.77,46.16,25.83,31.35,23.11);\n\tctx.lineTo(31.35,20);\n\tctx.translate(21.35,20);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,0,3.141592653589793,1);\n\tctx.rotate(0);\n\tctx.translate(-21.35,-20);\n\tctx.lineTo(11.350000000000001,240);\n\tctx.translate(21.35,240);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,3.141592653589793,6.283185307179586,1);\n\tctx.rotate(0);\n\tctx.translate(-21.35,-240);\n\tctx.lineTo(31.35,151.49);\n\tctx.bezierCurveTo(46.35,154.65,75.81,161.29000000000002,98.81,169.29000000000002);\n\tctx.bezierCurveTo(129.53,179.97000000000003,163.64,181.73000000000002,182.74,181.73000000000002);\n\tctx.lineTo(185.26000000000002,181.73000000000002);\n\tctx.translate(185.04069237708484,162.12122634720544);\n\tctx.rotate(0);\n\tctx.arc(0,0,19.61,1.5596126350748256,-0.42699445765739963,1);\n\tctx.rotate(0);\n\tctx.translate(-185.04069237708484,-162.12122634720544);\n\tctx.closePath();\n\tctx.fill();\n\tctx.stroke();\n\tctx.restore();\n\tctx.restore();\n};\n\nconst CG = globalThis.CraftGrid;\nCG.Nodes.Fusion.SVG.Register(\"emptyFlag\", emptyFlag, 17, 14.571428571428571, 2.4285714285714284); //NO I18N\n","export const emptyHeart = (ctx, {strokeStyle}) => {\n\tctx.save();\n\t// ctx.strokeStyle=\"rgba(0,0,0,0)\"; //No I18N\n\tctx.strokeStyle=strokeStyle;\n\tctx.fillStyle=\"#f5f5f5\"; // No I18N\n\tctx.miterLimit=4;\n\tctx.font=\"15px / 21.4286px ''\"; //No I18N\n\tctx.font=\"   15px \"; //No I18N\n\tctx.scale(0.25,0.25);\n\tctx.scale(0.25,0.25);\n\tctx.save();\n\tctx.font=\"   15px \"; //No I18N\n\tctx.beginPath();\n\tctx.moveTo(140.25,238.33);\n\tctx.translate(140.2662717910148,210.58000477065235);\n\tctx.rotate(0);\n\tctx.arc(0,0,27.75,1.5713826976758787,2.3257721422374376,0);\n\tctx.rotate(0);\n\tctx.translate(-140.2662717910148,-210.58000477065235);\n\tctx.bezierCurveTo(95.25,206.38000000000002,50.370000000000005,163.79000000000002,41.25,152.41000000000003);\n\tctx.bezierCurveTo(33,142.21,28,133.56,24,122.55);\n\tctx.translate(84.33682230847403,100.29592231262703);\n\tctx.rotate(0);\n\tctx.arc(0,0,64.31,2.788241547166875,3.5923403364884945,0);\n\tctx.rotate(0);\n\tctx.translate(-84.33682230847403,-100.29592231262703);\n\tctx.translate(87.28563840352972,101.50199856332517);\n\tctx.rotate(0);\n\tctx.arc(0,0,67.49,-2.693793603950087,-1.8904145637957517,0);\n\tctx.rotate(0);\n\tctx.translate(-87.28563840352972,-101.50199856332517);\n\tctx.bezierCurveTo(92.72999999999999,28.43,121.78999999999999,36.11,140,55.769999999999996);\n\tctx.bezierCurveTo(158.21,36.11,187.27,28.399999999999995,213.92000000000002,37.42999999999999);\n\tctx.translate(192.76191452667294,101.51771738097233);\n\tctx.rotate(0);\n\tctx.arc(0,0,67.49,-1.2519201783305212,-0.44805744741118303,0);\n\tctx.rotate(0);\n\tctx.translate(-192.76191452667294,-101.51771738097233);\n\tctx.translate(195.68049917726128,100.24901525726672);\n\tctx.rotate(0);\n\tctx.arc(0,0,64.31,-0.44993751809335597,0.35412863803966005,0);\n\tctx.rotate(0);\n\tctx.translate(-195.68049917726128,-100.24901525726672);\n\tctx.bezierCurveTo(252,133.55,247,142.21,238.76,152.41);\n\tctx.bezierCurveTo(229.64,163.73,185.07999999999998,206.32999999999998,159.32999999999998,230.72);\n\tctx.translate(140.22764771662,210.55000899252437);\n\tctx.rotate(0);\n\tctx.arc(0,0,27.78,0.8125769802875241,1.5699917088758237,0);\n\tctx.rotate(0);\n\tctx.translate(-140.22764771662,-210.55000899252437);\n\tctx.closePath();\n\tctx.fill();\n\tctx.stroke();\n\tctx.restore();\n\tctx.restore();\n};\n\nconst CG = globalThis.CraftGrid;\nCG.Nodes.Fusion.SVG.Register(\"emptyHeart\", emptyHeart, 17, 14.571428571428571, 2.4285714285714284); //NO I18N\n","export const emptyShield = (ctx, {strokeStyle}) => {\n    ctx.save();\n    // ctx.strokeStyle=\"rgba(0,0,0,0)\"; //No I18N\n    ctx.strokeStyle=strokeStyle;\n    ctx.fillStyle=\"#f5f5f5\"; // No I18N\n    ctx.miterLimit=4;\n    ctx.font=\"15px / 21.4286px ''\";//No I18N\n    ctx.font=\"   15px \";//No I18N\n    ctx.scale(0.25,0.25);\n    ctx.scale(0.25,0.25);\n    ctx.save();\n    ctx.font=\"   15px \";//No I18N\n    ctx.beginPath();\n    ctx.moveTo(242.44,60.36);\n    ctx.translate(226.2468056521651,78.41112065255918);\n    ctx.rotate(0);\n    ctx.arc(0,0,24.25,-0.8396000510777202,-1.6739401726211005,1);\n    ctx.rotate(0);\n    ctx.translate(-226.2468056521651,-78.41112065255918);\n    ctx.bezierCurveTo(221.4,54.519999999999996,219,54.64,216.62,54.64);\n    ctx.translate(216.47179992328398,-16.789846260070185);\n    ctx.rotate(0);\n    ctx.arc(0,0,71.43,1.56872156572755,2.4273508137057087,0);\n    ctx.rotate(0);\n    ctx.translate(-216.47179992328398,16.789846260070185);\n    ctx.translate(140,50.42797346777208);\n    ctx.rotate(0);\n    ctx.arc(0,0,30.39,-0.7371680815349093,-2.404424572054884,1);\n    ctx.rotate(0);\n    ctx.translate(-140,-50.42797346777208);\n    ctx.translate(63.55554544620991,-16.729784109217505);\n    ctx.rotate(0);\n    ctx.arc(0,0,71.37,0.7138569453087854,1.573255982437542,0);\n    ctx.rotate(0);\n    ctx.translate(-63.55554544620991,16.729784109217505);\n    ctx.bezierCurveTo(61,54.64,58.6,54.52,56.25,54.29);\n    ctx.translate(53.763329101665505,78.44232634433745);\n    ctx.rotate(0);\n    ctx.arc(0,0,24.28,-1.4682000041665237,-2.301445079314242,1);\n    ctx.rotate(0);\n    ctx.translate(-53.763329101665505,-78.44232634433745);\n    ctx.translate(52.71952430981676,77.28297913193994);\n    ctx.rotate(0);\n    ctx.arc(0,0,22.72,-2.301283498931608,-3.1480636876624444,1);\n    ctx.rotate(0);\n    ctx.translate(-52.71952430981676,-77.28297913193994);\n    ctx.lineTo(30,114.16);\n    ctx.bezierCurveTo(30,193,67.73,251.61,136.25,279.27);\n    ctx.translate(140,269.9997518911304);\n    ctx.rotate(0);\n    ctx.arc(0,0,10,1.955193101290536,1.1863995522992576,1);\n    ctx.rotate(0);\n    ctx.translate(-140,-269.9997518911304);\n    ctx.bezierCurveTo(212.27,251.61,250,193,250,114.16);\n    ctx.lineTo(250,77.43);\n    ctx.translate(227.28047569018324,77.28297913193994);\n    ctx.rotate(0);\n    ctx.arc(0,0,22.72,0.006471034072651511,-0.8403091546581847,1);\n    ctx.rotate(0);\n    ctx.translate(-227.28047569018324,-77.28297913193994);\n    ctx.closePath();\n    ctx.fill();\n    ctx.stroke();\n    ctx.restore();\n    ctx.restore();\n};\n\nconst CG = globalThis.CraftGrid;\nCG.Nodes.Fusion.SVG.Register(\"emptyShield\", emptyShield, 17, 14.571428571428571, 2.4285714285714284); //NO I18N\n","export const emptySmiley = (ctx, {strokeStyle}) => {\n    ctx.save();\n    // ctx.strokeStyle=\"rgba(0,0,0,0)\"; //No I18N\n    ctx.strokeStyle=strokeStyle;\n    ctx.fillStyle=\"#f5f5f5\"; // No I18N\n    ctx.miterLimit=4;\n    ctx.font=\"15px / 21.4286px ''\";//No I18N\n    ctx.font=\"   15px \";//No I18N\n    ctx.scale(0.25,0.25);\n    ctx.scale(0.25,0.25);\n    ctx.save();\n    ctx.font=\"   15px \";//No I18N\n    ctx.beginPath();\n    ctx.moveTo(140,20);\n    ctx.translate(140,140);\n    ctx.rotate(0);\n    ctx.arc(0,0,120,-1.5707963267948966,0,1);\n    ctx.rotate(0);\n    ctx.translate(-140,-140);\n    ctx.translate(139.87007026446815,140.12992973553185);\n    ctx.rotate(0);\n    ctx.arc(0,0,120.13,-0.0010815762994849292,-1.5697147504952973,1);\n    ctx.rotate(0);\n    ctx.translate(-139.87007026446815,-140.12992973553185);\n    ctx.closePath();\n    ctx.moveTo(78.12,112.5);\n    ctx.translate(98.74999757634498,112.49000000000015);\n    ctx.rotate(0);\n    ctx.arc(0,0,20.63,3.1411079225964955,1.5707962093128178,0);\n    ctx.rotate(0);\n    ctx.translate(-98.74999757634498,-112.49000000000015);\n    ctx.translate(98.74999757634498,112.49000000000015);\n    ctx.rotate(0);\n    ctx.arc(0,0,20.63,1.5707962093128311,3.141107922596509,0);\n    ctx.rotate(0);\n    ctx.translate(-98.74999757634498,-112.49000000000015);\n    ctx.closePath();\n    ctx.moveTo(187.39,175.17000000000002);\n    ctx.bezierCurveTo(177.26999999999998,190.05,159.54999999999998,198.93,140,198.93);\n    ctx.bezierCurveTo(120.45000000000002,198.93,102.72999999999999,190.05,92.61,175.17000000000002);\n    ctx.translate(98.85207393726189,171.1399363576048);\n    ctx.rotate(0);\n    ctx.arc(0,0,7.43,2.568296367218746,5.661059520787282,0);\n    ctx.rotate(0);\n    ctx.translate(-98.85207393726189,-171.1399363576048);\n    ctx.bezierCurveTo(112.14,177.47,125.59,184.08,140,184.08);\n    ctx.bezierCurveTo(154.41,184.08,167.86,177.47,175.11,166.81);\n    ctx.translate(181.14792606273812,171.1399363576048);\n    ctx.rotate(0);\n    ctx.arc(0,0,7.43,-2.5194668671974862,0.5732962863710496,0);\n    ctx.rotate(0);\n    ctx.translate(-181.14792606273812,-171.1399363576048);\n    ctx.closePath();\n    ctx.moveTo(181.25,133.17000000000002);\n    ctx.translate(181.26000000000013,112.55000242483042);\n    ctx.rotate(0);\n    ctx.arc(0,0,20.62,1.5712812928662896,-1.1759604312544525e-7,0);\n    ctx.rotate(0);\n    ctx.translate(-181.26000000000013,-112.55000242483042);\n    ctx.translate(181.25008725175934,112.49000000018451);\n    ctx.rotate(0);\n    ctx.arc(0,0,20.63,0.0029083899371163697,1.570800556157919,0);\n    ctx.rotate(0);\n    ctx.translate(-181.25008725175934,-112.49000000018451);\n    ctx.closePath();\n    ctx.fill();\n    ctx.stroke();\n    ctx.restore();\n    ctx.restore();\n};\n\nconst CG = globalThis.CraftGrid;\nCG.Nodes.Fusion.SVG.Register(\"emptySmiley\", emptySmiley, 17, 14.571428571428571, 2.4285714285714284); //NO I18N\n","export const emptyStarSVG = (ctx, {strokeStyle}) => {\n\tctx.save();\n\t// ctx.strokeStyle=\"rgba(0,0,0,0)\"; // No I18N\n\tctx.strokeStyle=strokeStyle;\n\tctx.fillStyle=\"#f5f5f5\"; // No I18N\n\tctx.miterLimit=4;\n\tctx.font=\"15px / 21.4286px ''\";//No I18N\n\tctx.font=\"   15px \";//No I18N\n\tctx.scale(0.25,0.25);\n\tctx.scale(0.25,0.25);\n\tctx.save();\n\tctx.font=\"   15px \";//No I18N\n\tctx.beginPath();\n\tctx.moveTo(80.33,251.28);\n\tctx.translate(80.40136427000441,227.7501082207978);\n\tctx.rotate(0);\n\tctx.arc(0,0,23.53,1.5738292370971676,3.212204152490844,0);\n\tctx.rotate(0);\n\tctx.translate(-80.40136427000441,-227.7501082207978);\n\tctx.lineTo(60.82,171.41);\n\tctx.lineTo(25.53,129.41);\n\tctx.translate(43.52675093846106,114.31374034209132);\n\tctx.rotate(0);\n\tctx.arc(0,0,23.49,2.443617729933411,4.468305877728495,0);\n\tctx.rotate(0);\n\tctx.translate(-43.52675093846106,-114.31374034209132);\n\tctx.lineTo(91.07,78.33);\n\tctx.lineTo(120.07,31.79);\n\tctx.translate(140.01,44.206782997217914);\n\tctx.rotate(0);\n\tctx.arc(0,0,23.49,-2.584643740903657,-0.5569489126861358,0);\n\tctx.rotate(0);\n\tctx.translate(-140.01,-44.206782997217914);\n\tctx.lineTo(159.95,31.79);\n\tctx.lineTo(188.95,78.33);\n\tctx.lineTo(242.17,91.52);\n\tctx.translate(236.52105950067568,114.32064848277551);\n\tctx.rotate(0);\n\tctx.arc(0,0,23.49,-1.32793313020191,0.6998151134959016,0);\n\tctx.rotate(0);\n\tctx.translate(-236.52105950067568,-114.32064848277551);\n\tctx.lineTo(219.2,171.45);\n\tctx.lineTo(223.08999999999997,226.13);\n\tctx.translate(199.66036488236233,227.81294333070403);\n\tctx.rotate(0);\n\tctx.arc(0,0,23.49,-0.07170653172257617,1.9561859104850854,0);\n\tctx.rotate(0);\n\tctx.translate(-199.66036488236233,-227.81294333070403);\n\tctx.lineTo(140,228.93);\n\tctx.lineTo(89.19,249.54);\n\tctx.translate(80.28628333006984,227.63004040483852);\n\tctx.rotate(0);\n\tctx.arc(0,0,23.65,1.184804142998877,1.5689478407557385,0);\n\tctx.rotate(0);\n\tctx.translate(-80.28628333006984,-227.63004040483852);\n\tctx.closePath();\n\tctx.fill();\n\tctx.stroke();\n\tctx.restore();\n\tctx.restore();\n};\n\nconst CG = globalThis.CraftGrid;\nCG.Nodes.Fusion.SVG.Register(\"emptyStar\", emptyStarSVG, 17, 14.571428571428571, 2.4285714285714284); //NO I18N\n","export const emptyThumbsUp = (ctx, {strokeStyle}) => {\n\tctx.save();\n\t// ctx.strokeStyle=\"rgba(0,0,0,0)\"; //No I18N\n\tctx.strokeStyle=strokeStyle;\n\tctx.fillStyle=\"#f5f5f5\"; // No I18N\n\tctx.miterLimit=4;\n\tctx.font=\"15px / 21.4286px ''\"; //No I18N\n\tctx.font=\"   15px \"; //No I18N\n\tctx.scale(0.25,0.25);\n\tctx.scale(0.25,0.25);\n\tctx.save();\n\tctx.font=\"   15px \"; //No I18N\n\tctx.beginPath();\n\tctx.moveTo(250.83,106.85);\n\tctx.translate(222.10718341986652,131.49999609947247);\n\tctx.rotate(0);\n\tctx.arc(0,0,37.85,-0.7092368675445899,-1.5712503141253262,1);\n\tctx.rotate(0);\n\tctx.translate(-222.10718341986652,-131.49999609947247);\n\tctx.lineTo(180.84,93.64999999999999);\n\tctx.lineTo(180.84,58.72);\n\tctx.bezierCurveTo(180.84,36.11,166.48000000000002,20.32,145.92000000000002,20.32);\n\tctx.lineTo(134.26,20.32);\n\tctx.translate(134.26998519064728,33.81999630725756);\n\tctx.rotate(0);\n\tctx.arc(0,0,13.5,-1.5715359706139878,-3.140111445103165,1);\n\tctx.rotate(0);\n\tctx.translate(-134.26998519064728,-33.81999630725756);\n\tctx.lineTo(120.77,61.5);\n\tctx.bezierCurveTo(120.77,82.5,106.17,100.75999999999999,85.71,106.88);\n\tctx.translate(78.81198325512551,114.11998376983203);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,-0.8095812406869809,-1.5689946513327309,1);\n\tctx.rotate(0);\n\tctx.translate(-78.81198325512551,-114.11998376983203);\n\tctx.lineTo(30,104.11999999999999);\n\tctx.translate(30,114.11999999999999);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,-1.5707963267948966,-3.141592653589793,1);\n\tctx.rotate(0);\n\tctx.translate(-30,-114.11999999999999);\n\tctx.lineTo(20,232.7);\n\tctx.translate(30,232.7);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,3.141592653589793,1.5707963267948966,1);\n\tctx.rotate(0);\n\tctx.translate(-30,-232.7);\n\tctx.lineTo(78.83,242.7);\n\tctx.translate(78.80857474056484,232.8000231839535);\n\tctx.rotate(0);\n\tctx.arc(0,0,9.9,1.5686321574858229,1.2891663868956535,1);\n\tctx.rotate(0);\n\tctx.translate(-78.80857474056484,-232.8000231839535);\n\tctx.translate(106.46771176368357,213.89011269027867);\n\tctx.rotate(0);\n\tctx.arc(0,0,37.79,2.2904290955757545,1.5683541905670202,1);\n\tctx.rotate(0);\n\tctx.translate(-106.46771176368357,-213.89011269027867);\n\tctx.lineTo(209.63,251.68);\n\tctx.translate(209.81761943487436,214.00046710815462);\n\tctx.rotate(0);\n\tctx.arc(0,0,37.68,1.575775631735616,0.1454038823501016,1);\n\tctx.rotate(0);\n\tctx.translate(-209.81761943487436,-214.00046710815462);\n\tctx.lineTo(259.57,137.24);\n\tctx.translate(222.11840956421258,131.5590868841323);\n\tctx.rotate(0);\n\tctx.arc(0,0,37.88,0.15053925167205132,-0.7106136541482779,1);\n\tctx.rotate(0);\n\tctx.translate(-222.11840956421258,-131.5590868841323);\n\tctx.closePath();\n\tctx.moveTo(68.83,222.7);\n\tctx.lineTo(40,222.7);\n\tctx.lineTo(40,124.12);\n\tctx.lineTo(68.83,124.12);\n\tctx.closePath();\n\tctx.fill();\n\tctx.stroke();\n\tctx.restore();\n\tctx.restore();\n};\n\nconst CG = globalThis.CraftGrid;\nCG.Nodes.Fusion.SVG.Register(\"emptyThumbsUp\", emptyThumbsUp, 17, 14.571428571428571, 2.4285714285714284); //NO I18N\n","export const emptyToogleSwitch = (ctx, {strokeStyle}) => {\n\t\tctx.save();\n\t\t// ctx.strokeStyle=\"rgba(0,0,0,0)\"; //No I18N\n\t\tctx.strokeStyle=strokeStyle;\n\t\tctx.fillStyle=\"#f5f5f5\"; // No I18N\n\t\tctx.miterLimit=4;\n        ctx.font=\"15px / 21.4286px ''\";//No I18N\n        ctx.font=\"   15px \";//No I18N\n        ctx.scale(0.25,0.25);\n        ctx.scale(0.25,0.25);\n        ctx.save();\n        ctx.font=\"   15px \";//No I18N\n        ctx.beginPath();\n        ctx.moveTo(188.12,21.25);\n        ctx.lineTo(91.88,21.25);\n        ctx.translate(91.88,90);\n        ctx.rotate(0);\n        ctx.arc(0,0,68.75,-1.5707963267948966,1.5707963267948966,1);\n        ctx.rotate(0);\n        ctx.translate(-91.88,-90);\n        ctx.lineTo(188.12,158.75);\n        ctx.translate(188.12,90);\n        ctx.rotate(0);\n        ctx.arc(0,0,68.75,1.5707963267948966,4.71238898038469,1);\n        ctx.rotate(0);\n        ctx.translate(-188.12,-90);\n        ctx.closePath();\n        ctx.moveTo(91.88000000000001,131.25);\n        ctx.translate(91.88,90);\n        ctx.rotate(0);\n        ctx.arc(0,0,41.25,1.5707963267948963,-2.220446049250313e-16,0);\n        ctx.rotate(0);\n        ctx.translate(-91.88,-90);\n        ctx.translate(91.88,90);\n        ctx.rotate(0);\n        ctx.arc(0,0,41.25,0,1.5707963267948966,0);\n        ctx.rotate(0);\n        ctx.translate(-91.88,-90);\n        ctx.closePath();\n        ctx.fill();\n        ctx.stroke();\n        ctx.restore();\n        ctx.restore();\n\t};\n\n\tconst CG = globalThis.CraftGrid;\n\tCG.Nodes.Fusion.SVG.Register(\"emptyToogleSwitch\", emptyToogleSwitch, 17, 14.571428571428571, 2.4285714285714284); //NO I18N\n","export const emptyBadge = (ctx, {strokeStyle}) => {\n    ctx.save();\n    // ctx.strokeStyle=\"rgba(0,0,0,0)\"; //No I18N\n    ctx.strokeStyle=strokeStyle;\n    ctx.fillStyle=\"#f5f5f5\"; // No I18N\n    ctx.miterLimit=4;\n    ctx.font=\"15px / 21.4286px ''\";//No I18N\n    ctx.font=\"   15px \";//No I18N\n    ctx.scale(0.25,0.25);\n    ctx.scale(0.25,0.25);\n    ctx.save();\n    ctx.font=\"   15px \";//No I18N\n    ctx.beginPath();\n    ctx.moveTo(122,22.07);\n    ctx.translate(122.00002401961066,124.06999999999717);\n    ctx.rotate(0);\n    ctx.arc(0,0,102,-1.5707965622812758,-0.0006862745636455614,1);\n    ctx.rotate(0);\n    ctx.translate(-122.00002401961066,-124.06999999999717);\n    ctx.translate(121.92011016180743,124.14996873830708);\n    ctx.rotate(0);\n    ctx.arc(0,0,102.08,-0.001469130018127861,-1.5700137068267164,1);\n    ctx.rotate(0);\n    ctx.translate(-121.92011016180743,-124.14996873830708);\n    ctx.closePath();\n    ctx.moveTo(161.09,103.77000000000001);\n    ctx.lineTo(120.23,156.41000000000003);\n    ctx.translate(112.41593659202606,150.31504199717813);\n    ctx.rotate(0);\n    ctx.arc(0,0,9.91,0.6624253823692168,1.4996906708343198,0);\n    ctx.rotate(0);\n    ctx.translate(-112.41593659202606,-150.31504199717813);\n    ctx.bezierCurveTo(112.89,160.20000000000002,112.66000000000001,160.20000000000002,112.44,160.20000000000002);\n    ctx.translate(112.42276603466448,150.34001506134828);\n    ctx.rotate(0);\n    ctx.arc(0,0,9.86,1.5690484592380403,2.3420505272925927,0);\n    ctx.rotate(0);\n    ctx.translate(-112.42276603466448,-150.34001506134828);\n    ctx.lineTo(83.82,136.29);\n    ctx.translate(90.70499993076824,129.21499993262745);\n    ctx.rotate(0);\n    ctx.arc(0,0,9.872124897913316,2.342585005521978,5.484177659111771,0);\n    ctx.rotate(0);\n    ctx.translate(-90.70499993076824,-129.21499993262745);\n    ctx.lineTo(111.41,135.58999999999997);\n    ctx.lineTo(145.5,91.67);\n    ctx.translate(153.15468082651955,97.90079139789754);\n    ctx.rotate(0);\n    ctx.arc(0,0,9.87,-2.4583825667767907,0.6368318980160939,0);\n    ctx.rotate(0);\n    ctx.translate(-153.15468082651955,-97.90079139789754);\n    ctx.closePath();\n    ctx.fill();\n    ctx.stroke();\n    ctx.restore();\n    ctx.save();\n    ctx.font=\"   15px \";//No I18N\n    ctx.beginPath();\n    ctx.moveTo(82.53,229.42);\n    ctx.lineTo(82.53,281.93);\n    ctx.lineTo(121.41,255.62);\n    ctx.lineTo(161.47,281.93);\n    ctx.lineTo(161.47,229.42);\n    ctx.translate(122,112.06994588838059);\n    ctx.rotate(0);\n    ctx.arc(0,0,123.81,1.246338521531435,1.895254132058358,0);\n    ctx.rotate(0);\n    ctx.translate(-122,-112.06994588838059);\n    ctx.closePath();\n    ctx.fill();\n    ctx.stroke();\n    ctx.restore();\n    ctx.restore();\n};\n\nconst CG = globalThis.CraftGrid;\nCG.Nodes.Fusion.SVG.Register(\"emptyBadge\", emptyBadge, 17, 14.571428571428571, 2.4285714285714284); //NO I18N\n","export const formulaSVG = ctx => {\n\tctx.save();\n\tctx.strokeStyle=\"rgba(0,0,0,0)\"; // No I18N\n\tctx.fillStyle=\"#555\"; // No I18N\n\tctx.miterLimit=4;\n\tctx.font=\"15px / 21.4286px ''\"; // No I18N\n\tctx.font=\"   15px \"; // No I18N\n\tctx.scale(0.25,0.25);\n\tctx.scale(0.25,0.25);\n\tctx.save();\n\tctx.font=\"   15px \"; // No I18N\n\tctx.save();\n\tctx.font=\"   15px \"; // No I18N\n\tctx.beginPath();\n\tctx.moveTo(145.89,121.72);\n\tctx.translate(145.89,111.72);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,1.5707963267948966,4.71238898038469,1);\n\tctx.rotate(0);\n\tctx.translate(-145.89,-111.72);\n\tctx.lineTo(110.56,101.72);\n\tctx.lineTo(113,86.89);\n\tctx.bezierCurveTo(113,86.66,113.07,86.42,113.09,86.18);\n\tctx.bezierCurveTo(115.74000000000001,57.85000000000001,133,40.25000000000001,158.09,40.25000000000001);\n\tctx.lineTo(167.26,40.25000000000001);\n\tctx.translate(167.26,30.250000000000007);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,1.5707963267948966,4.71238898038469,1);\n\tctx.rotate(0);\n\tctx.translate(-167.26,-30.250000000000007);\n\tctx.lineTo(158.09,20.250000000000007);\n\tctx.bezierCurveTo(122.39,20.250000000000007,96.94,45.25000000000001,93.17,83.95000000000002);\n\tctx.lineTo(90.17,101.72000000000001);\n\tctx.lineTo(54.22,101.72000000000001);\n\tctx.translate(54.22,111.72000000000001);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,-1.5707963267948966,1.5707963267948966,1);\n\tctx.rotate(0);\n\tctx.translate(-54.22,-111.72000000000001);\n\tctx.lineTo(87,121.72000000000001);\n\tctx.lineTo(77.85,176.62);\n\tctx.bezierCurveTo(75.28999999999999,191.98000000000002,71.16,204.69,65.24,215.49);\n\tctx.bezierCurveTo(55.839999999999996,232.61,44.92999999999999,240.25,29.879999999999995,240.25);\n\tctx.translate(29.879999999999995,250.25);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,-1.5707963267948966,1.5707963267948966,1);\n\tctx.rotate(0);\n\tctx.translate(-29.879999999999995,-250.25);\n\tctx.bezierCurveTo(52.489999999999995,260.25,69.78999999999999,248.76,82.77,225.11);\n\tctx.bezierCurveTo(89.77,212.31,94.64,197.52,97.57,179.9);\n\tctx.lineTo(107.27,121.72);\n\tctx.closePath();\n\tctx.fill();\n\tctx.stroke();\n\tctx.restore();\n\tctx.save();\n\tctx.font=\"   15px \"; // No I18N\n\tctx.beginPath();\n\tctx.moveTo(199.81,213.58);\n\tctx.lineTo(229.4,184);\n\tctx.translate(222.32999999999998,176.925);\n\tctx.rotate(0);\n\tctx.arc(0,0,10.00202604475714,0.785751645178413,3.9273442987682063,1);\n\tctx.rotate(0);\n\tctx.translate(-222.32999999999998,-176.925);\n\tctx.lineTo(185.66,199.45);\n\tctx.lineTo(156.07,169.85);\n\tctx.translate(149,176.925);\n\tctx.rotate(0);\n\tctx.arc(0,0,10.002026044757129,-0.7857516451784141,2.355841008411379,1);\n\tctx.rotate(0);\n\tctx.translate(-149,-176.925);\n\tctx.lineTo(171.52,213.59);\n\tctx.lineTo(141.93,243.19);\n\tctx.translate(148.87711794272516,250.38288205727483);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,-2.33881546817634,0.7680191413814468,1);\n\tctx.rotate(0);\n\tctx.translate(-148.87711794272516,-250.38288205727483);\n\tctx.lineTo(185.66,227.73);\n\tctx.lineTo(215.26,257.33);\n\tctx.translate(222.20711794272515,250.13711794272515);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,2.33881546817634,-0.7680191413814468,1);\n\tctx.rotate(0);\n\tctx.translate(-222.20711794272515,-250.13711794272515);\n\tctx.closePath();\n\tctx.fill();\n\tctx.stroke();\n\tctx.restore();\n\tctx.restore();\n\tctx.restore();\n};\n\nconst CG = globalThis.CraftGrid;\nCG.Nodes.Fusion.SVG.Register(\"formula\", formulaSVG, 17, 14.571428571428571, 2.4285714285714284); //NO I18N\n","export const formulaWarningSignSVG = ctx => {\n\tctx.save();\n\tctx.strokeStyle=\"rgba(0,0,0,0)\"; // No I18N\n\tctx.fillStyle=\"rgb(229, 46, 77)\"; // No I18N\n\tctx.miterLimit=4;\n\tctx.font=\"15px / 21.4286px ''\"; // No I18N\n\tctx.font=\"   15px \"; // No I18N\n\tctx.scale(0.25,0.25);\n\tctx.scale(0.25,0.25);\n\tctx.save();\n\tctx.font=\"   15px \"; // No I18N\n\tctx.save();\n\tctx.fillStyle=\"red\"; // No I18N\n\tctx.font=\"   15px \"; // No I18N\n\tctx.beginPath();\n\tctx.moveTo(255.1,199.56);\n\tctx.lineTo(158.8,31.560000000000002);\n\tctx.translate(139,42.88502097128301);\n\tctx.rotate(0);\n\tctx.arc(0,0,22.81,-0.519554742634346,-2.6220379109554472,1);\n\tctx.rotate(0);\n\tctx.translate(-139,-42.88502097128301);\n\tctx.lineTo(22.90000000000002,199.56);\n\tctx.translate(42.766559536018164,211.0100966022932);\n\tctx.rotate(0);\n\tctx.arc(0,0,22.93,-2.61874421537709,-4.709486249050702,1);\n\tctx.rotate(0);\n\tctx.translate(-42.766559536018164,-211.0100966022932);\n\tctx.lineTo(235.3,233.94);\n\tctx.translate(235.23344046398188,211.0100966022932);\n\tctx.rotate(0);\n\tctx.arc(0,0,22.93,1.5678935954609092,-0.5228484382127037,1);\n\tctx.rotate(0);\n\tctx.translate(-235.23344046398188,-211.0100966022932);\n\tctx.closePath();\n\tctx.moveTo(129.82999999999998,102.56);\n\tctx.translate(139,102.56);\n\tctx.rotate(0);\n\tctx.arc(0,0,9.170000000000002,3.141592653589793,6.283185307179586,0);\n\tctx.rotate(0);\n\tctx.translate(-139,-102.56);\n\tctx.lineTo(148.17,151.44);\n\tctx.translate(139,151.44);\n\tctx.rotate(0);\n\tctx.arc(0,0,9.170000000000002,0,3.141592653589793,0);\n\tctx.rotate(0);\n\tctx.translate(-139,-151.44);\n\tctx.closePath();\n\tctx.moveTo(154.2,189.61);\n\tctx.bezierCurveTo(154.2,190.10000000000002,154.07999999999998,190.61,153.98,191.09);\n\tctx.translate(137.8625433423094,187.749462485248);\n\tctx.rotate(0);\n\tctx.arc(0,0,16.46,0.20436847330692978,0.38623492075411503,0);\n\tctx.rotate(0);\n\tctx.translate(-137.8625433423094,-187.749462485248);\n\tctx.bezierCurveTo(152.92,194.41000000000003,152.7,194.86,152.47,195.3);\n\tctx.translate(139.22149744255645,188.26599829503772);\n\tctx.rotate(0);\n\tctx.arc(0,0,15,0.4880828354104463,0.6879223716846832,0);\n\tctx.rotate(0);\n\tctx.translate(-139.22149744255645,-188.26599829503772);\n\tctx.translate(141.473446651057,190.4602202241581);\n\tctx.rotate(0);\n\tctx.arc(0,0,11.87,0.6655662363180952,0.7921432165871626,0);\n\tctx.rotate(0);\n\tctx.translate(-141.473446651057,-190.4602202241581);\n\tctx.bezierCurveTo(149.46,199.26000000000002,149.09,199.60000000000002,148.7,199.91000000000003);\n\tctx.bezierCurveTo(148.30999999999997,200.22000000000003,147.91,200.52000000000004,147.48999999999998,200.8);\n\tctx.bezierCurveTo(147.06999999999996,201.07999999999998,146.64999999999998,201.33,146.20999999999998,201.57000000000002);\n\tctx.bezierCurveTo(145.76999999999998,201.81000000000003,145.30999999999997,202.02,144.84999999999997,202.21);\n\tctx.translate(139.54897832514465,189.57713931040504);\n\tctx.rotate(0);\n\tctx.arc(0,0,13.7,1.1734900070805234,1.2820547656678658,0);\n\tctx.rotate(0);\n\tctx.translate(-139.54897832514465,-189.57713931040504);\n\tctx.bezierCurveTo(142.96999999999997,202.86,142.44999999999996,202.98000000000002,141.99999999999997,203.08);\n\tctx.translate(138.9020297528141,187.25029752814189);\n\tctx.rotate(0);\n\tctx.arc(0,0,16.13,1.3775328500558937,1.5647224985515684,0);\n\tctx.rotate(0);\n\tctx.translate(-138.9020297528141,-187.25029752814189);\n\tctx.bezierCurveTo(138.49999999999997,203.38000000000002,137.99999999999997,203.38000000000002,137.49999999999997,203.3);\n\tctx.translate(138.91269624139966,188.70822528512946);\n\tctx.rotate(0);\n\tctx.arc(0,0,14.66,1.6673100932486749,1.769418702969108,0);\n\tctx.rotate(0);\n\tctx.translate(-138.91269624139966,-188.70822528512946);\n\tctx.translate(139.360537514752,186.96254334230943);\n\tctx.rotate(0);\n\tctx.arc(0,0,16.46,1.7751648001018268,1.957031247549012,0);\n\tctx.rotate(0);\n\tctx.translate(-139.360537514752,-186.96254334230943);\n\tctx.bezierCurveTo(132.69999999999996,202.02,132.23999999999998,201.8,131.80999999999997,201.57000000000002);\n\tctx.bezierCurveTo(131.37999999999997,201.34000000000003,130.92999999999998,201.08,130.51999999999998,200.8);\n\tctx.bezierCurveTo(130.10999999999999,200.52,129.7,200.22,129.30999999999997,199.91000000000003);\n\tctx.bezierCurveTo(128.91999999999996,199.60000000000005,128.54999999999998,199.25000000000003,128.19999999999996,198.91000000000003);\n\tctx.bezierCurveTo(127.84999999999994,198.57000000000002,127.50999999999996,198.18000000000004,127.19999999999996,197.79000000000002);\n\tctx.translate(138.6996078294014,188.3310825265272);\n\tctx.rotate(0);\n\tctx.arc(0,0,14.89,2.45325656011865,2.5536359318023205,0);\n\tctx.rotate(0);\n\tctx.translate(-138.6996078294014,-188.3310825265272);\n\tctx.bezierCurveTo(126.02999999999996,196.18000000000004,125.77999999999996,195.74000000000004,125.53999999999996,195.30000000000004);\n\tctx.bezierCurveTo(125.29999999999997,194.86000000000004,125.08999999999996,194.41000000000005,124.89999999999996,193.95000000000005);\n\tctx.translate(140.14745665769053,187.74946248524802);\n\tctx.rotate(0);\n\tctx.arc(0,0,16.46,2.755357732835677,2.9372241802828625,0);\n\tctx.rotate(0);\n\tctx.translate(-140.14745665769053,-187.74946248524802);\n\tctx.bezierCurveTo(123.92999999999996,190.60000000000002,123.85999999999996,190.09000000000003,123.80999999999996,189.61000000000004);\n\tctx.bezierCurveTo(123.75999999999996,189.13000000000005,123.72999999999996,188.61000000000004,123.72999999999996,188.11000000000004);\n\tctx.translate(139.8597024718581,188.20797024718584);\n\tctx.rotate(0);\n\tctx.arc(0,0,16.13,-3.1355188253464634,-2.948329176850789,0);\n\tctx.rotate(0);\n\tctx.translate(-139.8597024718581,-188.20797024718584);\n\tctx.bezierCurveTo(124.12999999999995,184.63000000000005,124.24999999999996,184.11000000000004,124.39999999999996,183.66000000000005);\n\tctx.translate(137.53286068959494,187.56102167485537);\n\tctx.rotate(0);\n\tctx.arc(0,0,13.7,-2.8528510924627626,-2.7442863338754204,0);\n\tctx.rotate(0);\n\tctx.translate(-137.53286068959494,-187.56102167485537);\n\tctx.bezierCurveTo(125.08999999999996,181.80000000000004,125.30999999999996,181.34000000000006,125.53999999999996,180.90000000000003);\n\tctx.bezierCurveTo(125.76999999999997,180.46,126.02999999999996,180.03000000000003,126.30999999999996,179.62000000000003);\n\tctx.bezierCurveTo(126.58999999999996,179.21000000000004,126.87999999999995,178.80000000000004,127.19999999999996,178.41000000000003);\n\tctx.bezierCurveTo(127.51999999999997,178.02,127.85999999999996,177.65000000000003,128.19999999999996,177.3);\n\tctx.translate(139.02506368168133,188.16892801924567);\n\tctx.rotate(0);\n\tctx.arc(0,0,15.34,-2.3541725350633826,-1.4744978653941971,0);\n\tctx.rotate(0);\n\tctx.translate(-139.02506368168133,-188.16892801924567);\n\tctx.translate(139.07722757445404,187.69173142756134);\n\tctx.rotate(0);\n\tctx.arc(0,0,14.86,-1.4749043192961873,-1.3735046227102912,0);\n\tctx.rotate(0);\n\tctx.translate(-139.07722757445404,-187.69173142756134);\n\tctx.bezierCurveTo(142.46999999999997,173.22,142.98999999999998,173.34,143.43999999999997,173.49);\n\tctx.translate(139.53897832514465,186.62286068959497);\n\tctx.rotate(0);\n\tctx.arc(0,0,13.7,-1.2820547656678656,-1.1734900070805232,0);\n\tctx.rotate(0);\n\tctx.translate(-139.53897832514465,-186.62286068959497);\n\tctx.bezierCurveTo(145.29999999999998,174.18,145.75999999999996,174.4,146.2,174.63);\n\tctx.translate(140.26858993269238,185.93890244955014);\n\tctx.rotate(0);\n\tctx.arc(0,0,12.77,-1.0877489481400608,-0.9707084946660314,0);\n\tctx.rotate(0);\n\tctx.translate(-140.26858993269238,-185.93890244955014);\n\tctx.translate(140.39513696883486,186.29975760416855);\n\tctx.rotate(0);\n\tctx.arc(0,0,13,-0.994419778337625,-0.878811928750175,0);\n\tctx.rotate(0);\n\tctx.translate(-140.39513696883486,-186.29975760416855);\n\tctx.translate(138.5357746589432,188.56422534105678);\n\tctx.rotate(0);\n\tctx.arc(0,0,15.93,-0.8796409582315785,-0.6911553685633189,0);\n\tctx.rotate(0);\n\tctx.translate(-138.5357746589432,-188.56422534105678);\n\tctx.translate(140.80024239583145,186.7048630311651);\n\tctx.rotate(0);\n\tctx.arc(0,0,13,-0.6919843980447227,-0.5763765484572727,0);\n\tctx.rotate(0);\n\tctx.translate(-140.80024239583145,-186.7048630311651);\n\tctx.translate(141.16109755044982,186.8314100673076);\n\tctx.rotate(0);\n\tctx.arc(0,0,12.77,-0.6000878321288651,-0.4830473786548356,0);\n\tctx.rotate(0);\n\tctx.translate(-141.16109755044982,-186.8314100673076);\n\tctx.bezierCurveTo(152.7,181.34,152.92,181.8,153.10999999999999,182.26000000000002);\n\tctx.translate(140.47713931040502,187.56102167485537);\n\tctx.rotate(0);\n\tctx.arc(0,0,13.7,-0.39730631971437347,-0.2887415611270311,0);\n\tctx.rotate(0);\n\tctx.translate(-140.47713931040502,-187.56102167485537);\n\tctx.bezierCurveTo(153.76,184.14000000000001,153.88,184.66000000000003,153.98,185.11);\n\tctx.translate(138.15029752814186,188.2079702471859);\n\tctx.rotate(0);\n\tctx.arc(0,0,16.13,-0.19326347673900274,-0.0060738282433280555,0);\n\tctx.rotate(0);\n\tctx.translate(-138.15029752814186,-188.2079702471859);\n\tctx.bezierCurveTo(154.28,188.61,154.25,189.11,154.2,189.61);\n\tctx.closePath();\n\tctx.fill();\n\tctx.stroke();\n\tctx.restore();\n\tctx.restore();\n\tctx.restore();\n};\n\nconst CG = globalThis.CraftGrid;\n// CG.Nodes.Fusion.SVG.Register(\"formulaWarningSign\", formulaWarningSignSVG, 17, 14.571428571428571, 2.4285714285714284); //NO I18N\nCG.Nodes.Fusion.SVG.Register(\"formulaWarningSign\", formulaWarningSignSVG, 17, 14, 2.5); //NO I18N\n","const getModifiedColor = globalThis.ZSGrid.getModifiedColor;\n\nexport const FullFlag = (ctx, {\n\tstrokeStyle,\n\tfillStyle\n}) => {\n\tctx.save();\n\t// ctx.strokeStyle=\"rgba(0,0,0,0)\"; //No I18N\n\t// ctx.fillStyle=\"red\"; // No I18N\n\tctx.strokeStyle = strokeStyle;\n\tctx.fillStyle = getModifiedColor(fillStyle);\n\tctx.miterLimit = 4;\n\tctx.font = \"15px / 21.4286px ''\"; //No I18N\n\tctx.font = \"   15px \"; //No I18N\n\tctx.scale(0.25, 0.25);\n\tctx.scale(0.25, 0.25);\n\tctx.save();\n\tctx.font = \"   15px \"; //No I18N\n\tctx.beginPath();\n\tctx.moveTo(202.89, 154);\n\tctx.lineTo(185.26999999999998, 115.08);\n\tctx.lineTo(201.65999999999997, 80.94999999999999);\n\tctx.translate(183.88602612207853, 72.43120005006769);\n\tctx.rotate(0);\n\tctx.arc(0, 0, 19.71, 0.44693874150733276, -0.6056724887712193, 1);\n\tctx.rotate(0);\n\tctx.translate(-183.88602612207853, -72.43120005006769);\n\tctx.translate(184.12902403875987, 72.18470484180398);\n\tctx.rotate(0);\n\tctx.arc(0, 0, 19.37, -0.6023526002346579, -1.6700310852446445, 1);\n\tctx.rotate(0);\n\tctx.translate(-184.12902403875987, -72.18470484180398);\n\tctx.bezierCurveTo(162.35999999999999, 54.76, 132.95, 55.91, 106.69999999999997, 44.599999999999994);\n\tctx.bezierCurveTo(79.27, 32.77, 46.16, 25.83, 31.35, 23.11);\n\tctx.lineTo(31.35, 20);\n\tctx.translate(21.35, 20);\n\tctx.rotate(0);\n\tctx.arc(0, 0, 10, 0, 3.141592653589793, 1);\n\tctx.rotate(0);\n\tctx.translate(-21.35, -20);\n\tctx.lineTo(11.350000000000001, 240);\n\tctx.translate(21.35, 240);\n\tctx.rotate(0);\n\tctx.arc(0, 0, 10, 3.141592653589793, 6.283185307179586, 1);\n\tctx.rotate(0);\n\tctx.translate(-21.35, -240);\n\tctx.lineTo(31.35, 151.49);\n\tctx.bezierCurveTo(46.35, 154.65, 75.81, 161.29000000000002, 98.81, 169.29000000000002);\n\tctx.bezierCurveTo(129.53, 179.97000000000003, 163.64, 181.73000000000002, 182.74, 181.73000000000002);\n\tctx.lineTo(185.26000000000002, 181.73000000000002);\n\tctx.translate(185.04069237708484, 162.12122634720544);\n\tctx.rotate(0);\n\tctx.arc(0, 0, 19.61, 1.5596126350748256, -0.42699445765739963, 1);\n\tctx.rotate(0);\n\tctx.translate(-185.04069237708484, -162.12122634720544);\n\tctx.closePath();\n\tctx.fill();\n\tctx.stroke();\n\tctx.restore();\n\tctx.restore();\n};\n\nconst CG = globalThis.CraftGrid;\nCG.Nodes.Fusion.SVG.Register(\"fullFlag\", FullFlag, 17, 14.571428571428571, 2.4285714285714284); //NO I18N\n","const getModifiedColor = globalThis.ZSGrid.getModifiedColor;\n\nexport const FullHeart = (ctx, {\n\t\tstrokeStyle,\n\t\tfillStyle\n\t}) => {\n\tctx.save();\n\t// ctx.strokeStyle=\"rgba(0,0,0,0)\"; //No I18N\n\t// ctx.fillStyle=\"red\"; // No I18N\n\tctx.strokeStyle = strokeStyle;\n\tctx.fillStyle = getModifiedColor(fillStyle);\n\tctx.miterLimit = 4;\n\tctx.font = \"15px / 21.4286px ''\"; //No I18N\n\tctx.font = \"   15px \"; //No I18N\n\tctx.scale(0.25, 0.25);\n\tctx.scale(0.25, 0.25);\n\tctx.save();\n\tctx.font = \"   15px \"; //No I18N\n\tctx.beginPath();\n\tctx.moveTo(140.25, 238.33);\n\tctx.translate(140.2662717910148, 210.58000477065235);\n\tctx.rotate(0);\n\tctx.arc(0, 0, 27.75, 1.5713826976758787, 2.3257721422374376, 0);\n\tctx.rotate(0);\n\tctx.translate(-140.2662717910148, -210.58000477065235);\n\tctx.bezierCurveTo(95.25, 206.38000000000002, 50.370000000000005, 163.79000000000002, 41.25, 152.41000000000003);\n\tctx.bezierCurveTo(33, 142.21, 28, 133.56, 24, 122.55);\n\tctx.translate(84.33682230847403, 100.29592231262703);\n\tctx.rotate(0);\n\tctx.arc(0, 0, 64.31, 2.788241547166875, 3.5923403364884945, 0);\n\tctx.rotate(0);\n\tctx.translate(-84.33682230847403, -100.29592231262703);\n\tctx.translate(87.28563840352972, 101.50199856332517);\n\tctx.rotate(0);\n\tctx.arc(0, 0, 67.49, -2.693793603950087, -1.8904145637957517, 0);\n\tctx.rotate(0);\n\tctx.translate(-87.28563840352972, -101.50199856332517);\n\tctx.bezierCurveTo(92.72999999999999, 28.43, 121.78999999999999, 36.11, 140, 55.769999999999996);\n\tctx.bezierCurveTo(158.21, 36.11, 187.27, 28.399999999999995, 213.92000000000002, 37.42999999999999);\n\tctx.translate(192.76191452667294, 101.51771738097233);\n\tctx.rotate(0);\n\tctx.arc(0, 0, 67.49, -1.2519201783305212, -0.44805744741118303, 0);\n\tctx.rotate(0);\n\tctx.translate(-192.76191452667294, -101.51771738097233);\n\tctx.translate(195.68049917726128, 100.24901525726672);\n\tctx.rotate(0);\n\tctx.arc(0, 0, 64.31, -0.44993751809335597, 0.35412863803966005, 0);\n\tctx.rotate(0);\n\tctx.translate(-195.68049917726128, -100.24901525726672);\n\tctx.bezierCurveTo(252, 133.55, 247, 142.21, 238.76, 152.41);\n\tctx.bezierCurveTo(229.64, 163.73, 185.07999999999998, 206.32999999999998, 159.32999999999998, 230.72);\n\tctx.translate(140.22764771662, 210.55000899252437);\n\tctx.rotate(0);\n\tctx.arc(0, 0, 27.78, 0.8125769802875241, 1.5699917088758237, 0);\n\tctx.rotate(0);\n\tctx.translate(-140.22764771662, -210.55000899252437);\n\tctx.closePath();\n\tctx.fill();\n\tctx.stroke();\n\tctx.restore();\n\tctx.restore();\n};\n\nconst CG = globalThis.CraftGrid;\nCG.Nodes.Fusion.SVG.Register(\"fullHeart\", FullHeart, 17, 14.571428571428571, 2.4285714285714284); //NO I18N\n","const getModifiedColor = globalThis.ZSGrid.getModifiedColor;\n\nexport  const FullShield = (ctx, {strokeStyle, fillStyle}) => {\n    ctx.save();\n    // ctx.strokeStyle=\"rgba(0,0,0,0)\"; //No I18N\n    // ctx.fillStyle=\"red\"; // No I18N\n    ctx.strokeStyle=strokeStyle;\n    ctx.fillStyle=getModifiedColor(fillStyle);\n    ctx.miterLimit=4;\n    ctx.font=\"15px / 21.4286px ''\";//No I18N\n    ctx.font=\"   15px \";//No I18N\n    ctx.scale(0.25,0.25);\n    ctx.scale(0.25,0.25);\n    ctx.save();\n    ctx.font=\"   15px \";//No I18N\n    ctx.beginPath();\n    ctx.moveTo(242.44,60.36);\n    ctx.translate(226.2468056521651,78.41112065255918);\n    ctx.rotate(0);\n    ctx.arc(0,0,24.25,-0.8396000510777202,-1.6739401726211005,1);\n    ctx.rotate(0);\n    ctx.translate(-226.2468056521651,-78.41112065255918);\n    ctx.bezierCurveTo(221.4,54.519999999999996,219,54.64,216.62,54.64);\n    ctx.translate(216.47179992328398,-16.789846260070185);\n    ctx.rotate(0);\n    ctx.arc(0,0,71.43,1.56872156572755,2.4273508137057087,0);\n    ctx.rotate(0);\n    ctx.translate(-216.47179992328398,16.789846260070185);\n    ctx.translate(140,50.42797346777208);\n    ctx.rotate(0);\n    ctx.arc(0,0,30.39,-0.7371680815349093,-2.404424572054884,1);\n    ctx.rotate(0);\n    ctx.translate(-140,-50.42797346777208);\n    ctx.translate(63.55554544620991,-16.729784109217505);\n    ctx.rotate(0);\n    ctx.arc(0,0,71.37,0.7138569453087854,1.573255982437542,0);\n    ctx.rotate(0);\n    ctx.translate(-63.55554544620991,16.729784109217505);\n    ctx.bezierCurveTo(61,54.64,58.6,54.52,56.25,54.29);\n    ctx.translate(53.763329101665505,78.44232634433745);\n    ctx.rotate(0);\n    ctx.arc(0,0,24.28,-1.4682000041665237,-2.301445079314242,1);\n    ctx.rotate(0);\n    ctx.translate(-53.763329101665505,-78.44232634433745);\n    ctx.translate(52.71952430981676,77.28297913193994);\n    ctx.rotate(0);\n    ctx.arc(0,0,22.72,-2.301283498931608,-3.1480636876624444,1);\n    ctx.rotate(0);\n    ctx.translate(-52.71952430981676,-77.28297913193994);\n    ctx.lineTo(30,114.16);\n    ctx.bezierCurveTo(30,193,67.73,251.61,136.25,279.27);\n    ctx.translate(140,269.9997518911304);\n    ctx.rotate(0);\n    ctx.arc(0,0,10,1.955193101290536,1.1863995522992576,1);\n    ctx.rotate(0);\n    ctx.translate(-140,-269.9997518911304);\n    ctx.bezierCurveTo(212.27,251.61,250,193,250,114.16);\n    ctx.lineTo(250,77.43);\n    ctx.translate(227.28047569018324,77.28297913193994);\n    ctx.rotate(0);\n    ctx.arc(0,0,22.72,0.006471034072651511,-0.8403091546581847,1);\n    ctx.rotate(0);\n    ctx.translate(-227.28047569018324,-77.28297913193994);\n    ctx.closePath();\n    ctx.fill();\n    ctx.stroke();\n    ctx.restore();\n    ctx.restore();\n};\n\nconst CG = globalThis.CraftGrid;\nCG.Nodes.Fusion.SVG.Register(\"fullShield\", FullShield, 17, 14.571428571428571, 2.4285714285714284); //NO I18N\n","const getModifiedColor = globalThis.ZSGrid.getModifiedColor;\n\nexport const FullSmiley = function (ctx, properties) {\n\tctx.save();\n\t// ctx.strokeStyle=\"rgba(0,0,0,0)\"; //No I18N\n\t// ctx.fillStyle=\"red\"; // No I18N\n\tctx.strokeStyle = properties.strokeStyle;\n\tctx.fillStyle = getModifiedColor(properties.fillStyle);\n\tctx.miterLimit = 4;\n\tctx.font = \"15px / 21.4286px ''\"; //No I18N\n\tctx.font = \"   15px \"; //No I18N\n\tctx.scale(0.25, 0.25);\n\tctx.scale(0.25, 0.25);\n\tctx.save();\n\tctx.font = \"   15px \"; //No I18N\n\tctx.beginPath();\n\tctx.moveTo(140, 20);\n\tctx.translate(140, 140);\n\tctx.rotate(0);\n\tctx.arc(0, 0, 120, -1.5707963267948966, 0, 1);\n\tctx.rotate(0);\n\tctx.translate(-140, -140);\n\tctx.translate(139.87007026446815, 140.12992973553185);\n\tctx.rotate(0);\n\tctx.arc(0, 0, 120.13, -0.0010815762994849292, -1.5697147504952973, 1);\n\tctx.rotate(0);\n\tctx.translate(-139.87007026446815, -140.12992973553185);\n\tctx.closePath();\n\tctx.moveTo(78.12, 112.5);\n\tctx.translate(98.74999757634498, 112.49000000000015);\n\tctx.rotate(0);\n\tctx.arc(0, 0, 20.63, 3.1411079225964955, 1.5707962093128178, 0);\n\tctx.rotate(0);\n\tctx.translate(-98.74999757634498, -112.49000000000015);\n\tctx.translate(98.74999757634498, 112.49000000000015);\n\tctx.rotate(0);\n\tctx.arc(0, 0, 20.63, 1.5707962093128311, 3.141107922596509, 0);\n\tctx.rotate(0);\n\tctx.translate(-98.74999757634498, -112.49000000000015);\n\tctx.closePath();\n\tctx.moveTo(187.39, 175.17000000000002);\n\tctx.bezierCurveTo(177.26999999999998, 190.05, 159.54999999999998, 198.93, 140, 198.93);\n\tctx.bezierCurveTo(120.45000000000002, 198.93, 102.72999999999999, 190.05, 92.61, 175.17000000000002);\n\tctx.translate(98.85207393726189, 171.1399363576048);\n\tctx.rotate(0);\n\tctx.arc(0, 0, 7.43, 2.568296367218746, 5.661059520787282, 0);\n\tctx.rotate(0);\n\tctx.translate(-98.85207393726189, -171.1399363576048);\n\tctx.bezierCurveTo(112.14, 177.47, 125.59, 184.08, 140, 184.08);\n\tctx.bezierCurveTo(154.41, 184.08, 167.86, 177.47, 175.11, 166.81);\n\tctx.translate(181.14792606273812, 171.1399363576048);\n\tctx.rotate(0);\n\tctx.arc(0, 0, 7.43, -2.5194668671974862, 0.5732962863710496, 0);\n\tctx.rotate(0);\n\tctx.translate(-181.14792606273812, -171.1399363576048);\n\tctx.closePath();\n\tctx.moveTo(181.25, 133.17000000000002);\n\tctx.translate(181.26000000000013, 112.55000242483042);\n\tctx.rotate(0);\n\tctx.arc(0, 0, 20.62, 1.5712812928662896, -1.1759604312544525e-7, 0);\n\tctx.rotate(0);\n\tctx.translate(-181.26000000000013, -112.55000242483042);\n\tctx.translate(181.25008725175934, 112.49000000018451);\n\tctx.rotate(0);\n\tctx.arc(0, 0, 20.63, 0.0029083899371163697, 1.570800556157919, 0);\n\tctx.rotate(0);\n\tctx.translate(-181.25008725175934, -112.49000000018451);\n\tctx.closePath();\n\tctx.fill();\n\tctx.stroke();\n\tctx.restore();\n\tctx.restore();\n}\n\nconst CG = globalThis.CraftGrid;\nCG.Nodes.Fusion.SVG.Register(\"fullSmiley\", FullSmiley, 17, 14.571428571428571, 2.4285714285714284); //NO I18N\n","const getModifiedColor = globalThis.ZSGrid.getModifiedColor;\n\nexport const FullStarSVG = (ctx, {strokeStyle, fillStyle}) => {\n\tctx.save();\n\t// ctx.strokeStyle=\"rgba(0,0,0,0)\"; // No I18N\n\t// ctx.fillStyle=\"red\"; // No I18N\n\tctx.strokeStyle = strokeStyle;\n\tctx.fillStyle = getModifiedColor(fillStyle);\n\tctx.miterLimit = 4;\n\tctx.font = \"15px / 21.4286px ''\"; //No I18N\n\tctx.font = \"   15px \"; //No I18N\n\tctx.scale(0.25, 0.25);\n\tctx.scale(0.25, 0.25);\n\tctx.save();\n\tctx.font = \"   15px \"; //No I18N\n\tctx.beginPath();\n\tctx.moveTo(80.33, 251.28);\n\tctx.translate(80.40136427000441, 227.7501082207978);\n\tctx.rotate(0);\n\tctx.arc(0, 0, 23.53, 1.5738292370971676, 3.212204152490844, 0);\n\tctx.rotate(0);\n\tctx.translate(-80.40136427000441, -227.7501082207978);\n\tctx.lineTo(60.82, 171.41);\n\tctx.lineTo(25.53, 129.41);\n\tctx.translate(43.52675093846106, 114.31374034209132);\n\tctx.rotate(0);\n\tctx.arc(0, 0, 23.49, 2.443617729933411, 4.468305877728495, 0);\n\tctx.rotate(0);\n\tctx.translate(-43.52675093846106, -114.31374034209132);\n\tctx.lineTo(91.07, 78.33);\n\tctx.lineTo(120.07, 31.79);\n\tctx.translate(140.01, 44.206782997217914);\n\tctx.rotate(0);\n\tctx.arc(0, 0, 23.49, -2.584643740903657, -0.5569489126861358, 0);\n\tctx.rotate(0);\n\tctx.translate(-140.01, -44.206782997217914);\n\tctx.lineTo(159.95, 31.79);\n\tctx.lineTo(188.95, 78.33);\n\tctx.lineTo(242.17, 91.52);\n\tctx.translate(236.52105950067568, 114.32064848277551);\n\tctx.rotate(0);\n\tctx.arc(0, 0, 23.49, -1.32793313020191, 0.6998151134959016, 0);\n\tctx.rotate(0);\n\tctx.translate(-236.52105950067568, -114.32064848277551);\n\tctx.lineTo(219.2, 171.45);\n\tctx.lineTo(223.08999999999997, 226.13);\n\tctx.translate(199.66036488236233, 227.81294333070403);\n\tctx.rotate(0);\n\tctx.arc(0, 0, 23.49, -0.07170653172257617, 1.9561859104850854, 0);\n\tctx.rotate(0);\n\tctx.translate(-199.66036488236233, -227.81294333070403);\n\tctx.lineTo(140, 228.93);\n\tctx.lineTo(89.19, 249.54);\n\tctx.translate(80.28628333006984, 227.63004040483852);\n\tctx.rotate(0);\n\tctx.arc(0, 0, 23.65, 1.184804142998877, 1.5689478407557385, 0);\n\tctx.rotate(0);\n\tctx.translate(-80.28628333006984, -227.63004040483852);\n\tctx.closePath();\n\tctx.fill();\n\tctx.stroke();\n\tctx.restore();\n\tctx.restore();\n};\n\nconst CG = globalThis.CraftGrid;\nCG.Nodes.Fusion.SVG.Register(\"fullStar\", FullStarSVG, 17, 14.571428571428571, 2.4285714285714284); //NO I18N\n","const getModifiedColor = globalThis.ZSGrid.getModifiedColor;\n\nexport const FullThumbsUp = (ctx, {\n\tstrokeStyle,\n\tfillStyle\n}) => {\n\tctx.save();\n\t// ctx.strokeStyle=\"rgba(0,0,0,0)\"; //No I18N\n\t// ctx.fillStyle=\"red\"; // No I18N\n\tctx.strokeStyle = strokeStyle;\n\tctx.fillStyle = getModifiedColor(fillStyle);\n\tctx.miterLimit = 4;\n\tctx.font = \"15px / 21.4286px ''\"; //No I18N\n\tctx.font = \"   15px \"; //No I18N\n\tctx.scale(0.25, 0.25);\n\tctx.scale(0.25, 0.25);\n\tctx.save();\n\tctx.font = \"   15px \"; //No I18N\n\tctx.beginPath();\n\tctx.moveTo(250.83, 106.85);\n\tctx.translate(222.10718341986652, 131.49999609947247);\n\tctx.rotate(0);\n\tctx.arc(0, 0, 37.85, -0.7092368675445899, -1.5712503141253262, 1);\n\tctx.rotate(0);\n\tctx.translate(-222.10718341986652, -131.49999609947247);\n\tctx.lineTo(180.84, 93.64999999999999);\n\tctx.lineTo(180.84, 58.72);\n\tctx.bezierCurveTo(180.84, 36.11, 166.48000000000002, 20.32, 145.92000000000002, 20.32);\n\tctx.lineTo(134.26, 20.32);\n\tctx.translate(134.26998519064728, 33.81999630725756);\n\tctx.rotate(0);\n\tctx.arc(0, 0, 13.5, -1.5715359706139878, -3.140111445103165, 1);\n\tctx.rotate(0);\n\tctx.translate(-134.26998519064728, -33.81999630725756);\n\tctx.lineTo(120.77, 61.5);\n\tctx.bezierCurveTo(120.77, 82.5, 106.17, 100.75999999999999, 85.71, 106.88);\n\tctx.translate(78.81198325512551, 114.11998376983203);\n\tctx.rotate(0);\n\tctx.arc(0, 0, 10, -0.8095812406869809, -1.5689946513327309, 1);\n\tctx.rotate(0);\n\tctx.translate(-78.81198325512551, -114.11998376983203);\n\tctx.lineTo(30, 104.11999999999999);\n\tctx.translate(30, 114.11999999999999);\n\tctx.rotate(0);\n\tctx.arc(0, 0, 10, -1.5707963267948966, -3.141592653589793, 1);\n\tctx.rotate(0);\n\tctx.translate(-30, -114.11999999999999);\n\tctx.lineTo(20, 232.7);\n\tctx.translate(30, 232.7);\n\tctx.rotate(0);\n\tctx.arc(0, 0, 10, 3.141592653589793, 1.5707963267948966, 1);\n\tctx.rotate(0);\n\tctx.translate(-30, -232.7);\n\tctx.lineTo(78.83, 242.7);\n\tctx.translate(78.80857474056484, 232.8000231839535);\n\tctx.rotate(0);\n\tctx.arc(0, 0, 9.9, 1.5686321574858229, 1.2891663868956535, 1);\n\tctx.rotate(0);\n\tctx.translate(-78.80857474056484, -232.8000231839535);\n\tctx.translate(106.46771176368357, 213.89011269027867);\n\tctx.rotate(0);\n\tctx.arc(0, 0, 37.79, 2.2904290955757545, 1.5683541905670202, 1);\n\tctx.rotate(0);\n\tctx.translate(-106.46771176368357, -213.89011269027867);\n\tctx.lineTo(209.63, 251.68);\n\tctx.translate(209.81761943487436, 214.00046710815462);\n\tctx.rotate(0);\n\tctx.arc(0, 0, 37.68, 1.575775631735616, 0.1454038823501016, 1);\n\tctx.rotate(0);\n\tctx.translate(-209.81761943487436, -214.00046710815462);\n\tctx.lineTo(259.57, 137.24);\n\tctx.translate(222.11840956421258, 131.5590868841323);\n\tctx.rotate(0);\n\tctx.arc(0, 0, 37.88, 0.15053925167205132, -0.7106136541482779, 1);\n\tctx.rotate(0);\n\tctx.translate(-222.11840956421258, -131.5590868841323);\n\tctx.closePath();\n\tctx.moveTo(68.83, 222.7);\n\tctx.lineTo(40, 222.7);\n\tctx.lineTo(40, 124.12);\n\tctx.lineTo(68.83, 124.12);\n\tctx.closePath();\n\tctx.fill();\n\tctx.stroke();\n\tctx.restore();\n\tctx.restore();\n};\n\nconst CG = globalThis.CraftGrid;\nCG.Nodes.Fusion.SVG.Register(\"fullThumbsUp\", FullThumbsUp, 17, 14.571428571428571, 2.4285714285714284); //NO I18N\n","const getModifiedColor = globalThis.ZSGrid.getModifiedColor;\n\nexport const FullToogleSwitch = (ctx, {strokeStyle, fillStyle}) => {\n\tctx.save();\n\t// ctx.strokeStyle=\"rgba(0,0,0,0)\"; //No I18N\n\t// ctx.fillStyle=\"red\"; // No I18N\n\tctx.strokeStyle = strokeStyle;\n\tctx.fillStyle = getModifiedColor(fillStyle);\n\tctx.miterLimit = 4;\n\tctx.font = \"15px / 21.4286px ''\"; //No I18N\n\tctx.font = \"   15px \"; //No I18N\n\tctx.scale(0.25, 0.25);\n\tctx.scale(0.25, 0.25);\n\tctx.save();\n\tctx.font = \"   15px \"; //No I18N\n\tctx.beginPath();\n\tctx.moveTo(188.12, 21.25);\n\tctx.lineTo(91.88, 21.25);\n\tctx.translate(91.88, 90);\n\tctx.rotate(0);\n\tctx.arc(0, 0, 68.75, -1.5707963267948966, 1.5707963267948966, 1);\n\tctx.rotate(0);\n\tctx.translate(-91.88, -90);\n\tctx.lineTo(188.12, 158.75);\n\tctx.translate(188.12, 90);\n\tctx.rotate(0);\n\tctx.arc(0, 0, 68.75, 1.5707963267948966, 4.71238898038469, 1);\n\tctx.rotate(0);\n\tctx.translate(-188.12, -90);\n\tctx.closePath();\n\tctx.moveTo(188.12, 131.25);\n\tctx.translate(188.12, 90);\n\tctx.rotate(0);\n\tctx.arc(0, 0, 41.25, 1.5707963267948966, 0, 0);\n\tctx.rotate(0);\n\tctx.translate(-188.12, -90);\n\tctx.translate(188.12, 90);\n\tctx.rotate(0);\n\tctx.arc(0, 0, 41.25, 0, 1.5707963267948966, 0);\n\tctx.rotate(0);\n\tctx.translate(-188.12, -90);\n\tctx.closePath();\n\tctx.fill();\n\tctx.stroke();\n\tctx.restore();\n\tctx.restore();\n}\n\nconst CG = globalThis.CraftGrid;\nCG.Nodes.Fusion.SVG.Register(\"fullToogleSwitch\", FullToogleSwitch, 17, 14.571428571428571, 2.4285714285714284); //NO I18N\n","const getModifiedColor = globalThis.ZSGrid.getModifiedColor;\n\nexport const FullBadge = function (ctx, properties) {\n    ctx.save();\n    // ctx.strokeStyle=\"rgba(0,0,0,0)\"; //No I18N\n    // ctx.fillStyle=\"red\"; // No I18N\n    ctx.strokeStyle = properties.strokeStyle;\n    ctx.fillStyle = getModifiedColor(properties.fillStyle);\n    ctx.miterLimit = 4;\n    ctx.font = \"15px / 21.4286px ''\"; //No I18N\n    ctx.font = \"   15px \"; //No I18N\n    ctx.scale(0.25, 0.25);\n    ctx.scale(0.25, 0.25);\n    ctx.save();\n    ctx.font = \"   15px \"; //No I18N\n    ctx.beginPath();\n    ctx.moveTo(122, 22.07);\n    ctx.translate(122.00002401961066, 124.06999999999717);\n    ctx.rotate(0);\n    ctx.arc(0, 0, 102, -1.5707965622812758, -0.0006862745636455614, 1);\n    ctx.rotate(0);\n    ctx.translate(-122.00002401961066, -124.06999999999717);\n    ctx.translate(121.92011016180743, 124.14996873830708);\n    ctx.rotate(0);\n    ctx.arc(0, 0, 102.08, -0.001469130018127861, -1.5700137068267164, 1);\n    ctx.rotate(0);\n    ctx.translate(-121.92011016180743, -124.14996873830708);\n    ctx.closePath();\n    ctx.moveTo(161.09, 103.77000000000001);\n    ctx.lineTo(120.23, 156.41000000000003);\n    ctx.translate(112.41593659202606, 150.31504199717813);\n    ctx.rotate(0);\n    ctx.arc(0, 0, 9.91, 0.6624253823692168, 1.4996906708343198, 0);\n    ctx.rotate(0);\n    ctx.translate(-112.41593659202606, -150.31504199717813);\n    ctx.bezierCurveTo(112.89, 160.20000000000002, 112.66000000000001, 160.20000000000002, 112.44, 160.20000000000002);\n    ctx.translate(112.42276603466448, 150.34001506134828);\n    ctx.rotate(0);\n    ctx.arc(0, 0, 9.86, 1.5690484592380403, 2.3420505272925927, 0);\n    ctx.rotate(0);\n    ctx.translate(-112.42276603466448, -150.34001506134828);\n    ctx.lineTo(83.82, 136.29);\n    ctx.translate(90.70499993076824, 129.21499993262745);\n    ctx.rotate(0);\n    ctx.arc(0, 0, 9.872124897913316, 2.342585005521978, 5.484177659111771, 0);\n    ctx.rotate(0);\n    ctx.translate(-90.70499993076824, -129.21499993262745);\n    ctx.lineTo(111.41, 135.58999999999997);\n    ctx.lineTo(145.5, 91.67);\n    ctx.translate(153.15468082651955, 97.90079139789754);\n    ctx.rotate(0);\n    ctx.arc(0, 0, 9.87, -2.4583825667767907, 0.6368318980160939, 0);\n    ctx.rotate(0);\n    ctx.translate(-153.15468082651955, -97.90079139789754);\n    ctx.closePath();\n    ctx.fill();\n    ctx.stroke();\n    ctx.restore();\n    ctx.save();\n    ctx.font = \"   15px \"; //No I18N\n    ctx.beginPath();\n    ctx.moveTo(82.53, 229.42);\n    ctx.lineTo(82.53, 281.93);\n    ctx.lineTo(121.41, 255.62);\n    ctx.lineTo(161.47, 281.93);\n    ctx.lineTo(161.47, 229.42);\n    ctx.translate(122, 112.06994588838059);\n    ctx.rotate(0);\n    ctx.arc(0, 0, 123.81, 1.246338521531435, 1.895254132058358, 0);\n    ctx.rotate(0);\n    ctx.translate(-122, -112.06994588838059);\n    ctx.closePath();\n    ctx.fill();\n    ctx.stroke();\n    ctx.restore();\n    ctx.restore();\n}\n\nconst CG = globalThis.CraftGrid;\nCG.Nodes.Fusion.SVG.Register(\"fullBadge\", FullBadge, 17, 14.571428571428571, 2.4285714285714284); //NO I18N\n","export const halfStarSVG = ctx => {\n\tctx.save();\n\tctx.translate(5,0);\n\tctx.strokeStyle = \"rgba(0,0,0,0)\"; // No I18N\n\tctx.miterLimit = 4;\n\tctx.font = \"normal normal 400 normal 15px / 21.4286px ''\"; // No I18N\n\tctx.font = \"15px\"; // No I18N\n\tctx.fillStyle = \"rgba(0,0,0,0)\"; // No I18N\n\tctx.strokeStyle = \"rgba(0,0,0,0)\"; // No I18N\n\tctx.font = \"15px\"; // No I18N\n\tctx.fillStyle = \"#FFD93B\"; // No I18N\n\tctx.strokeStyle = \"rgba(0,0,0,0)\"; // No I18N\n\tctx.font = \"15px\"; // No I18N\n\tctx.translate(12.019484, 11.500002);\n\tctx.scale(-1, 1);\n\tctx.translate(-12.019484, -11.500002);\n\tctx.beginPath();\n\tctx.moveTo(21.971462, 9.22171311);\n\tctx.bezierCurveTo(22.040078, 9.43312705, 21.982768, 9.66517623, 21.8233138, 9.82048566);\n\tctx.lineTo(17.3652632, 14.1600779);\n\tctx.lineTo(18.4175049, 20.2883176);\n\tctx.bezierCurveTo(18.4553216, 20.5071291, 18.3648733, 20.728666, 18.1847563, 20.8594857);\n\tctx.bezierCurveTo(18.0046784, 20.9903832, 17.7653801, 21.0067746, 17.5691618, 20.9038709);\n\tctx.lineTo(12.0584795, 18.0106926);\n\tctx.lineTo(6.54775828, 20.9039098);\n\tctx.bezierCurveTo(6.35087719, 21.0074754, 6.1122807, 20.9899549, 5.93177388, 20.8595246);\n\tctx.bezierCurveTo(5.75204678, 20.7287049, 5.66159844, 20.507168, 5.6994152, 20.2883566);\n\tctx.lineTo(6.75126706, 14.1632316);\n\tctx.lineTo(2.2191423, 9.82363934);\n\tctx.bezierCurveTo(2.05773879, 9.66906967, 1.99847953, 9.4362418, 2.06709552, 9.22365984);\n\tctx.bezierCurveTo(2.13532164, 9.01068852, 2.31933723, 8.85572951, 2.54077973, 8.82419262);\n\tctx.lineTo(8.77894737, 7.92947951);\n\tctx.lineTo(11.5340741, 2.3548873);\n\tctx.bezierCurveTo(11.6327096, 2.15554303, 11.8358285, 2.02900615, 12.0584405, 2.02900615);\n\tctx.bezierCurveTo(12.2810526, 2.02900615, 12.4841715, 2.15554303, 12.582807, 2.3548873);\n\tctx.lineTo(15.3379727, 7.9302582);\n\tctx.lineTo(21.4993372, 8.82419262);\n\tctx.bezierCurveTo(21.7196101, 8.85611885, 21.9024561, 9.01029918, 21.971462, 9.22171311);\n\tctx.closePath();\n\tctx.moveTo(12.0584795, 16.7667766);\n\tctx.lineTo(12.0584795, 3.93289959);\n\tctx.lineTo(9.69165692, 8.72257377);\n\tctx.bezierCurveTo(9.6062768, 8.89505328, 9.44097466, 9.01458197, 9.25033138, 9.04183607);\n\tctx.lineTo(3.89481481, 9.8100123);\n\tctx.lineTo(7.78483431, 13.5348299);\n\tctx.bezierCurveTo(7.92518519, 13.6691537, 7.98951267, 13.8638258, 7.95637427, 14.0549939);\n\tctx.lineTo(7.0522807, 19.3192787);\n\tctx.lineTo(11.7863548, 16.8337439);\n\tctx.bezierCurveTo(11.8430149, 16.8038941, 11.9337232, 16.7815717, 12.0584795, 16.7667766);\n\tctx.closePath();\n\tctx.fill(\"nonzero\"); // No I18N\n\tctx.stroke();\n\tctx.fillStyle = \"#6D5513\"; // No I18N\n\tctx.strokeStyle = \"rgba(0,0,0,0)\"; // No I18N\n\tctx.font = \"15px\"; // No I18N\n\tctx.beginPath();\n\tctx.moveTo(14.5025963, 9.02727282);\n\tctx.lineTo(14.223202, 8.46188869);\n\tctx.lineTo(12.0194461, 4.00235401);\n\tctx.lineTo(9.53581386, 9.02761733);\n\tctx.lineTo(8.91035487, 9.11732418);\n\tctx.lineTo(3.92447114, 9.83242721);\n\tctx.lineTo(8.00295657, 13.7376515);\n\tctx.lineTo(7.89499498, 14.3663315);\n\tctx.lineTo(7.05423722, 19.2622139);\n\tctx.lineTo(12.0195179, 16.6553618);\n\tctx.lineTo(12.5773309, 16.9482207);\n\tctx.lineTo(16.9847952, 19.2621956);\n\tctx.lineTo(16.0367367, 13.7407172);\n\tctx.lineTo(16.4892763, 13.3002024);\n\tctx.lineTo(20.051756, 9.83238424);\n\tctx.lineTo(14.5025963, 9.02727282);\n\tctx.closePath();\n\tctx.moveTo(21.9325021, 9.22171311);\n\tctx.bezierCurveTo(22.0011181, 9.43312705, 21.9438082, 9.66517623, 21.784354, 9.82048566);\n\tctx.lineTo(17.3263033, 14.1600779);\n\tctx.lineTo(18.378545, 20.2883176);\n\tctx.bezierCurveTo(18.4163618, 20.5071291, 18.3259134, 20.728666, 18.1457965, 20.8594857);\n\tctx.bezierCurveTo(17.9657185, 20.9903832, 17.7264202, 21.0067746, 17.5302019, 20.9038709);\n\tctx.lineTo(12.0195197, 18.0106926);\n\tctx.lineTo(6.50879842, 20.9039098);\n\tctx.bezierCurveTo(6.31191732, 21.0074754, 6.07332083, 20.9899549, 5.89281401, 20.8595246);\n\tctx.bezierCurveTo(5.71308691, 20.7287049, 5.62263857, 20.507168, 5.66045534, 20.2883566);\n\tctx.lineTo(6.71230719, 14.1632316);\n\tctx.lineTo(2.18018243, 9.82363934);\n\tctx.bezierCurveTo(2.01877892, 9.66906967, 1.95951966, 9.4362418, 2.02813565, 9.22365984);\n\tctx.bezierCurveTo(2.09636177, 9.01068852, 2.28037736, 8.85572951, 2.50181986, 8.82419262);\n\tctx.lineTo(8.7399875, 7.92947951);\n\tctx.lineTo(11.4951142, 2.3548873);\n\tctx.bezierCurveTo(11.5937497, 2.15554303, 11.7968686, 2.02900615, 12.0194807, 2.02900615);\n\tctx.bezierCurveTo(12.2420928, 2.02900615, 12.4452117, 2.15554303, 12.5438471, 2.3548873);\n\tctx.lineTo(15.2990128, 7.9302582);\n\tctx.lineTo(21.4603774, 8.82419262);\n\tctx.bezierCurveTo(21.6806503, 8.85611885, 21.8634963, 9.01029918, 21.9325021, 9.22171311);\n\tctx.closePath();\n\tctx.fill(\"nonzero\"); // No I18N\n\tctx.stroke();\n\tctx.restore();\n};\n\nconst CG = globalThis.CraftGrid;\nCG.Nodes.Fusion.SVG.Register(\"halfStar\", halfStarSVG, 30, 20, 5); //NO I18N\n","\"use strict\"; // No I18N\n\nexport const KeywordExtractSVG = ctx => {\n    ctx.save();\n    ctx.strokeStyle=\"rgba(0,0,0,0)\";\n    ctx.fillStyle=\"#555\"; // No I18N\n    ctx.miterLimit=4;\n    ctx.font=\"15px ''\";\n    ctx.font=\"   15px ''\";\n    ctx.scale(0.25,0.25);\n    ctx.scale(0.25,0.25);\n    ctx.save();\n    ctx.font=\"   15px ''\";\n    ctx.beginPath();\n    ctx.moveTo(237.07,222.93);\n    ctx.lineTo(201.14,187);\n    ctx.bezierCurveTo(217.75,167.2,227.77999999999997,141.7,227.77999999999997,113.89);\n    ctx.bezierCurveTo(227.78,51.09,176.69,0,113.89,0);\n    ctx.bezierCurveTo(51.09,0,0,51.09,0,113.89);\n    ctx.bezierCurveTo(0,176.69,51.09,227.78,113.89,227.78);\n    ctx.bezierCurveTo(141.7,227.78,167.2,217.76,187,201.14);\n    ctx.lineTo(222.93,237.07);\n    ctx.bezierCurveTo(224.88,239.01999999999998,227.44,240,230,240);\n    ctx.bezierCurveTo(232.56,240,235.12,239.02,237.07,237.07);\n    ctx.bezierCurveTo(240.98,233.16,240.98,226.82999999999998,237.07,222.93);\n    ctx.closePath();\n    ctx.moveTo(113.88999999999999,207.78);\n    ctx.bezierCurveTo(62.11999999999998,207.78,19.999999999999986,165.66,19.999999999999986,113.89);\n    ctx.bezierCurveTo(19.999999999999986,62.120000000000005,62.12,20,113.89,20);\n    ctx.bezierCurveTo(165.66,20,207.78,62.12,207.78,113.89);\n    ctx.bezierCurveTo(207.78,165.66,165.66,207.78,113.89,207.78);\n    ctx.closePath();\n    ctx.fill();\n    ctx.stroke();\n    ctx.restore();\n    ctx.save();\n    ctx.font=\"   15px ''\";\n    ctx.beginPath();\n    ctx.moveTo(159.28,65.03);\n    ctx.bezierCurveTo(153.93,59.68,146.81,56.730000000000004,139.25,56.730000000000004);\n    ctx.bezierCurveTo(131.69,56.730000000000004,124.57,59.68000000000001,119.22,65.03);\n    ctx.bezierCurveTo(113.87,70.38,110.92,77.5,110.92,85.06);\n    ctx.bezierCurveTo(110.92,89.16,111.79,93.12,113.43,96.74000000000001);\n    ctx.lineTo(65.04,145.13);\n    ctx.bezierCurveTo(61.13000000000001,149.04,61.13000000000001,155.37,65.04,159.26999999999998);\n    ctx.bezierCurveTo(66.99000000000001,161.21999999999997,69.55000000000001,162.2,72.11000000000001,162.2);\n    ctx.bezierCurveTo(74.67000000000002,162.2,77.23000000000002,161.22,79.18,159.26999999999998);\n    ctx.lineTo(82.24000000000001,156.20999999999998);\n    ctx.lineTo(86.63000000000001,160.59999999999997);\n    ctx.bezierCurveTo(88.58000000000001,162.54999999999995,91.14000000000001,163.52999999999997,93.70000000000002,163.52999999999997);\n    ctx.bezierCurveTo(96.26000000000002,163.52999999999997,98.82000000000002,162.54999999999998,100.77000000000001,160.59999999999997);\n    ctx.bezierCurveTo(104.68,156.68999999999997,104.68,150.35999999999996,100.77000000000001,146.45999999999998);\n    ctx.lineTo(96.38000000000001,142.07);\n    ctx.lineTo(99.52000000000001,138.93);\n    ctx.lineTo(108.87,148.28);\n    ctx.bezierCurveTo(110.82000000000001,150.23,113.38000000000001,151.21,115.94,151.21);\n    ctx.bezierCurveTo(118.49999999999999,151.21,121.06,150.23000000000002,123.00999999999999,148.28);\n    ctx.bezierCurveTo(126.91999999999999,144.37,126.91999999999999,138.04,123.00999999999999,134.14);\n    ctx.lineTo(113.66,124.78999999999999);\n    ctx.lineTo(127.56,110.88999999999999);\n    ctx.bezierCurveTo(131.18,112.52999999999999,135.14000000000001,113.39999999999999,139.24,113.39999999999999);\n    ctx.bezierCurveTo(146.81,113.39999999999999,153.92000000000002,110.44999999999999,159.27,105.1);\n    ctx.bezierCurveTo(164.62,99.75,167.57000000000002,92.63,167.57000000000002,85.06);\n    ctx.bezierCurveTo(167.57000000000002,77.49000000000001,164.62000000000003,70.38,159.27,65.03);\n    ctx.bezierCurveTo(159.27,65.03,159.27,65.03,159.27,65.03);\n    ctx.closePath();\n    ctx.moveTo(145.14,90.96000000000001);\n    ctx.bezierCurveTo(143.57,92.53,141.47,93.4,139.25,93.4);\n    ctx.bezierCurveTo(137.03,93.4,134.93,92.53,133.36,90.96000000000001);\n    ctx.bezierCurveTo(131.79000000000002,89.39000000000001,130.92000000000002,87.29,130.92000000000002,85.07000000000001);\n    ctx.bezierCurveTo(130.92000000000002,82.85000000000001,131.79000000000002,80.75,133.36,79.18);\n    ctx.bezierCurveTo(134.93,77.61000000000001,137.03,76.74000000000001,139.25,76.74000000000001);\n    ctx.bezierCurveTo(141.47,76.74000000000001,143.57,77.61000000000001,145.14,79.18);\n    ctx.quadraticCurveTo(146.70999999999998,80.75,145.14,79.18);\n    ctx.bezierCurveTo(146.70999999999998,80.75,147.57999999999998,82.85000000000001,147.57999999999998,85.07000000000001);\n    ctx.bezierCurveTo(147.57999999999998,87.29,146.70999999999998,89.39000000000001,145.14,90.96000000000001);\n    ctx.closePath();\n    ctx.fill();\n    ctx.stroke();\n    ctx.restore();\n    ctx.restore();\n    };\n    \n\n    const CG = globalThis.CraftGrid;\n    CG.Nodes.Fusion.SVG.Register(\"KEYWORDEXTRACTSVG\", KeywordExtractSVG, 17, 14.571428571428571, 2.4285714285714284); //NO I18N\n    ","\"use strict\"; // No I18N\n\nexport const languagedetectorSVG = ctx => {\n\tctx.save();\n\tctx.strokeStyle=\"rgba(0,0,0,0)\";\n\tctx.fillStyle=\"#555\"; // No I18N\n\tctx.miterLimit=4;\n\tctx.font=\"15px ''\";\n\tctx.font=\"   15px ''\";\n\tctx.scale(0.25,0.25);\n\tctx.scale(0.25,0.25);\n\tctx.save();\n\tctx.font=\"   15px ''\";\n\tctx.beginPath();\n\tctx.moveTo(148.97,0);\n\tctx.bezierCurveTo(123.82,0,99.68,9.03,80.71,25.42);\n\tctx.lineTo(32.21999999999999,25.42);\n\tctx.bezierCurveTo(14.46,25.42,0,39.88,0,57.65);\n\tctx.lineTo(0,102.09);\n\tctx.bezierCurveTo(0,119.86,14.46,134.31,32.22,134.31);\n\tctx.lineTo(48.89,134.31);\n\tctx.bezierCurveTo(52.88,147.66,59.55,160.12,68.4,170.87);\n\tctx.lineTo(36.34,202.93);\n\tctx.bezierCurveTo(32.43000000000001,206.84,32.43000000000001,213.17000000000002,36.34,217.07);\n\tctx.bezierCurveTo(38.290000000000006,219.01999999999998,40.85,220,43.410000000000004,220);\n\tctx.bezierCurveTo(45.970000000000006,220,48.53,219.02,50.480000000000004,217.07);\n\tctx.lineTo(82.53,185.01999999999998);\n\tctx.bezierCurveTo(82.83,185.26999999999998,83.13,185.52999999999997,83.44,185.77999999999997);\n\tctx.bezierCurveTo(101.92,200.67999999999998,125.19,208.89,148.97,208.89);\n\tctx.bezierCurveTo(206.56,208.89,253.41,162.04,253.41,104.44999999999999);\n\tctx.bezierCurveTo(253.41,46.859999999999985,206.56,0,148.97,0);\n\tctx.closePath();\n\tctx.moveTo(20,102.09);\n\tctx.lineTo(20,57.650000000000006);\n\tctx.bezierCurveTo(20,50.910000000000004,25.48,45.43000000000001,32.22,45.43000000000001);\n\tctx.lineTo(165.55,45.43000000000001);\n\tctx.bezierCurveTo(172.29000000000002,45.43000000000001,177.77,50.91000000000001,177.77,57.650000000000006);\n\tctx.lineTo(177.77,102.09);\n\tctx.bezierCurveTo(177.77,108.83,172.29000000000002,114.31,165.55,114.31);\n\tctx.lineTo(147.89000000000001,114.31);\n\tctx.bezierCurveTo(144.56,114.31,141.45000000000002,115.96000000000001,139.60000000000002,118.72);\n\tctx.lineTo(125.52000000000002,139.62);\n\tctx.lineTo(111.75000000000003,118.79);\n\tctx.bezierCurveTo(109.90000000000003,115.99000000000001,106.77000000000002,114.30000000000001,103.41000000000003,114.30000000000001);\n\tctx.lineTo(32.22,114.30000000000001);\n\tctx.bezierCurveTo(25.479999999999997,114.30000000000001,20,108.82000000000001,20,102.08000000000001);\n\tctx.closePath();\n\tctx.moveTo(148.97,188.89);\n\tctx.bezierCurveTo(129.47,188.89,111.15,182.42999999999998,96,170.21999999999997);\n\tctx.bezierCurveTo(84.27,160.75999999999996,75.28,148.26999999999998,69.98,134.31999999999996);\n\tctx.lineTo(98.03,134.31999999999996);\n\tctx.lineTo(117.1,163.16999999999996);\n\tctx.bezierCurveTo(118.94,165.95999999999995,122.05999999999999,167.63999999999996,125.39999999999999,167.65999999999997);\n\tctx.lineTo(125.44,167.65999999999997);\n\tctx.bezierCurveTo(128.77,167.65999999999997,131.88,166.00999999999996,133.73,163.24999999999997);\n\tctx.lineTo(153.20999999999998,134.32999999999998);\n\tctx.lineTo(165.54999999999998,134.32999999999998);\n\tctx.bezierCurveTo(183.32,134.32999999999998,197.76999999999998,119.86999999999998,197.76999999999998,102.10999999999999);\n\tctx.lineTo(197.76999999999998,57.66999999999999);\n\tctx.bezierCurveTo(197.76999999999998,39.89999999999999,183.30999999999997,25.44999999999999,165.54999999999998,25.44999999999999);\n\tctx.lineTo(119.17999999999998,25.44999999999999);\n\tctx.bezierCurveTo(128.60999999999999,21.899999999999988,138.67999999999998,20.029999999999987,148.95999999999998,20.029999999999987);\n\tctx.bezierCurveTo(195.51999999999998,20.029999999999987,233.39999999999998,57.90999999999999,233.39999999999998,104.46999999999998);\n\tctx.bezierCurveTo(233.39999999999998,151.02999999999997,195.51999999999998,188.90999999999997,148.95999999999998,188.90999999999997);\n\tctx.closePath();\n\tctx.fill();\n\tctx.stroke();\n\tctx.restore();\n\tctx.save();\n\tctx.font=\"   15px ''\";\n\tctx.beginPath();\n\tctx.moveTo(42.46,53.76);\n\tctx.bezierCurveTo(36.94,53.76,32.46,58.239999999999995,32.46,63.76);\n\tctx.lineTo(32.46,97.09);\n\tctx.bezierCurveTo(32.46,102.61,36.94,107.09,42.46,107.09);\n\tctx.bezierCurveTo(47.980000000000004,107.09,52.46,102.61,52.46,97.09);\n\tctx.lineTo(52.46,63.760000000000005);\n\tctx.bezierCurveTo(52.46,58.24000000000001,47.980000000000004,53.760000000000005,42.46,53.760000000000005);\n\tctx.closePath();\n\tctx.fill();\n\tctx.stroke();\n\tctx.restore();\n\tctx.save();\n\tctx.font=\"   15px ''\";\n\tctx.beginPath();\n\tctx.moveTo(75.79,61.16);\n\tctx.bezierCurveTo(70.27000000000001,61.16,65.79,65.64,65.79,71.16);\n\tctx.lineTo(65.79,87.31);\n\tctx.bezierCurveTo(65.79,92.83,70.27000000000001,97.31,75.79,97.31);\n\tctx.bezierCurveTo(81.31,97.31,85.79,92.83,85.79,87.31);\n\tctx.lineTo(85.79,71.16);\n\tctx.bezierCurveTo(85.79,65.64,81.31,61.16,75.79,61.16);\n\tctx.closePath();\n\tctx.fill();\n\tctx.stroke();\n\tctx.restore();\n\tctx.save();\n\tctx.font=\"   15px ''\";\n\tctx.beginPath();\n\tctx.moveTo(119.13,97.09);\n\tctx.lineTo(119.13,63.760000000000005);\n\tctx.bezierCurveTo(119.13,58.24000000000001,114.64999999999999,53.760000000000005,109.13,53.760000000000005);\n\tctx.bezierCurveTo(103.61,53.760000000000005,99.13,58.24000000000001,99.13,63.760000000000005);\n\tctx.lineTo(99.13,97.09);\n\tctx.bezierCurveTo(99.13,102.61,103.61,107.09,109.13,107.09);\n\tctx.bezierCurveTo(114.64999999999999,107.09,119.13,102.61,119.13,97.09);\n\tctx.closePath();\n\tctx.fill();\n\tctx.stroke();\n\tctx.restore();\n\tctx.save();\n\tctx.font=\"   15px ''\";\n\tctx.beginPath();\n\tctx.moveTo(142.46,100.82);\n\tctx.bezierCurveTo(147.98000000000002,100.82,152.46,96.33999999999999,152.46,90.82);\n\tctx.lineTo(152.46,68.6);\n\tctx.bezierCurveTo(152.46,63.08,147.98000000000002,58.599999999999994,142.46,58.599999999999994);\n\tctx.bezierCurveTo(136.94,58.599999999999994,132.46,63.08,132.46,68.6);\n\tctx.lineTo(132.46,90.82);\n\tctx.bezierCurveTo(132.46,96.33999999999999,136.94,100.82,142.46,100.82);\n\tctx.closePath();\n\tctx.fill();\n\tctx.stroke();\n\tctx.restore();\n\tctx.restore();\n\t};\n\nconst CG = globalThis.CraftGrid;\nCG.Nodes.Fusion.SVG.Register(\"LANGDETECTSVG\", languagedetectorSVG, 17, 14.571428571428571, 2.4285714285714284); //NO I18N\n\n","export const linkSVG = ctx => {\n    ctx.save();\n    ctx.strokeStyle=\"rgba(0,0,0,0)\"; // No I18N\n    ctx.fillStyle=\"#555\"; // No I18N\n    ctx.miterLimit=4;\n    ctx.font=\"15px / 21.4286px ''\"; // No I18N\n    ctx.font=\"15px\"; // No I18N\n    ctx.scale(0.25,0.25);\n    ctx.scale(0.25,0.25);\n    ctx.save();\n    ctx.font=\"15px\"; // No I18N\n    ctx.save();\n    ctx.font=\"15px \"; // No I18N\n    ctx.beginPath();\n    ctx.moveTo(116.65,210.83);\n    ctx.lineTo(89.31,210.83);\n    ctx.lineTo(89.31,129.27);\n    ctx.lineTo(172.47,129.27);\n    ctx.lineTo(172.47,141.09);\n    ctx.translate(182.47,141.09);\n    ctx.rotate(0);\n    ctx.arc(0,0,10,3.141592653589793,6.283185307179586,1);\n    ctx.rotate(0);\n    ctx.translate(-182.47,-141.09);\n    ctx.lineTo(192.47,81.59);\n    ctx.translate(182.4700042240379,81.59919134049554);\n    ctx.rotate(0);\n    ctx.arc(0,0,10,-0.0009191341789546279,-1.0928016039992554,1);\n    ctx.rotate(0);\n    ctx.translate(-182.4700042240379,-81.59919134049554);\n    ctx.lineTo(140.71,26.36);\n    ctx.translate(131.83080865950447,30.959995775962103);\n    ctx.rotate(0);\n    ctx.arc(0,0,10,-0.4779947227956285,-1.5698771926159287,1);\n    ctx.rotate(0);\n    ctx.translate(-131.83080865950447,-30.959995775962103);\n    ctx.lineTo(43.23,20.96);\n    ctx.translate(43.25998019364471,43.64998019364471);\n    ctx.rotate(0);\n    ctx.arc(0,0,22.69,-1.5721176226242515,-3.1402713577604384,1);\n    ctx.rotate(0);\n    ctx.translate(-43.25998019364471,-43.64998019364471);\n    ctx.lineTo(20.57,208.17);\n    ctx.translate(43.25998019364471,208.1400198063553);\n    ctx.rotate(0);\n    ctx.arc(0,0,22.69,3.1402713577604557,1.5721176226242686,1);\n    ctx.rotate(0);\n    ctx.translate(-43.25998019364471,-208.1400198063553);\n    ctx.lineTo(116.65,230.82999999999998);\n    ctx.translate(116.65,220.82999999999998);\n    ctx.rotate(0);\n    ctx.arc(0,0,10,1.5707963267948966,4.71238898038469,1);\n    ctx.rotate(0);\n    ctx.translate(-116.65,-220.82999999999998);\n    ctx.closePath();\n    ctx.moveTo(141.84,54.43000000000001);\n    ctx.lineTo(159,71.59);\n    ctx.lineTo(141.84,71.59);\n    ctx.closePath();\n    ctx.moveTo(43.23,41);\n    ctx.lineTo(121.84,41);\n    ctx.lineTo(121.84,81.59);\n    ctx.translate(131.84,81.59);\n    ctx.rotate(0);\n    ctx.arc(0,0,10,3.141592653589793,1.5707963267948966,1);\n    ctx.rotate(0);\n    ctx.translate(-131.84,-81.59);\n    ctx.lineTo(172.47,91.59);\n    ctx.lineTo(172.47,109.27000000000001);\n    ctx.lineTo(40.57,109.27000000000001);\n    ctx.lineTo(40.57,43.62);\n    ctx.translate(43.239532112793555,43.66998298474461);\n    ctx.rotate(0);\n    ctx.arc(0,0,2.67,-3.122871341005681,-1.5743664140766325,0);\n    ctx.rotate(0);\n    ctx.translate(-43.239532112793555,-43.66998298474461);\n    ctx.closePath();\n    ctx.moveTo(40.57,208.17);\n    ctx.lineTo(40.57,129.26999999999998);\n    ctx.lineTo(69.31,129.26999999999998);\n    ctx.lineTo(69.31,210.82999999999998);\n    ctx.lineTo(43.23,210.82999999999998);\n    ctx.translate(43.2399813431537,208.1600186568463);\n    ctx.rotate(0);\n    ctx.arc(0,0,2.67,1.5745346662713977,3.137854314113292,0);\n    ctx.rotate(0);\n    ctx.translate(-43.2399813431537,-208.1600186568463);\n    ctx.closePath();\n    ctx.fill();\n    ctx.stroke();\n    ctx.restore();\n    ctx.save();\n    ctx.font=\"   15px \"; // No I18N\n    ctx.beginPath();\n    ctx.moveTo(185.75,191.71);\n    ctx.translate(184.2900000609372,197.53000001528667);\n    ctx.rotate(0);\n    ctx.arc(0,0,6.000333324074594,-1.3250092668770947,-4.466601905565726,1);\n    ctx.rotate(0);\n    ctx.translate(-184.2900000609372,-197.53000001528667);\n    ctx.translate(179.74668846802953,215.32956969163828);\n    ctx.rotate(0);\n    ctx.arc(0,0,12.37,-1.318883158978397,0.7823753073943644,0);\n    ctx.rotate(0);\n    ctx.translate(-179.74668846802953,-215.32956969163828);\n    ctx.lineTo(171.21,241.36);\n    ctx.translate(162.47000000000003,232.62);\n    ctx.rotate(0);\n    ctx.arc(0,0,12.360226535140843,0.7853981633974483,3.9269908169872414,0);\n    ctx.rotate(0);\n    ctx.translate(-162.47000000000003,-232.62);\n    ctx.lineTo(162.51000000000002,215.10000000000002);\n    ctx.translate(158.23551957761146,210.88943980940581);\n    ctx.rotate(0);\n    ctx.arc(0,0,6,0.7778650205894126,-2.3474827971376944,1);\n    ctx.rotate(0);\n    ctx.translate(-158.23551957761146,-210.88943980940581);\n    ctx.lineTo(145.24000000000004,215.4);\n    ctx.translate(162.52961423991457,232.56038576008547);\n    ctx.rotate(0);\n    ctx.arc(0,0,24.36,-2.3599456621427466,-5.494035971831753,1);\n    ctx.rotate(0);\n    ctx.translate(-162.52961423991457,-232.56038576008547);\n    ctx.lineTo(197,232.54);\n    ctx.translate(179.8051984694736,215.31285861421557);\n    ctx.rotate(0);\n    ctx.arc(0,0,24.34,0.7863376759003118,-1.3240604502308568,1);\n    ctx.rotate(0);\n    ctx.translate(-179.8051984694736,-215.31285861421557);\n    ctx.closePath();\n    ctx.fill();\n    ctx.stroke();\n    ctx.restore();\n    ctx.save();\n    ctx.font=\"15px \"; // No I18N\n    ctx.beginPath();\n    ctx.moveTo(223,163.47);\n    ctx.translate(205.775,180.7517642328554);\n    ctx.rotate(0);\n    ctx.arc(0,0,24.4,-0.7870431794664583,-2.354549474123335,1);\n    ctx.rotate(0);\n    ctx.translate(-205.775,-180.7517642328554);\n    ctx.lineTo(171.24,180.78);\n    ctx.translate(188.42324606917205,198.00454511812381);\n    ctx.rotate(0);\n    ctx.arc(0,0,24.33,-2.354994208869603,-4.466039343637576,1);\n    ctx.rotate(0);\n    ctx.translate(-188.42324606917205,-198.00454511812381);\n    ctx.translate(183.90792595945584,216.11015610663642);\n    ctx.rotate(0);\n    ctx.arc(0,0,5.67,1.823554171609185,1.5633757929895296,1);\n    ctx.rotate(0);\n    ctx.translate(-183.90792595945584,-216.11015610663642);\n    ctx.translate(183.77893813236622,215.78243900927703);\n    ctx.rotate(0);\n    ctx.arc(0,0,6,1.54228215173246,-1.3006798989951904,1);\n    ctx.rotate(0);\n    ctx.translate(-183.77893813236622,-215.78243900927703);\n    ctx.translate(188.38532350985162,198.0418675956012);\n    ctx.rotate(0);\n    ctx.arc(0,0,12.33,1.8170174027819332,3.9296600528136203,0);\n    ctx.rotate(0);\n    ctx.translate(-188.38532350985162,-198.0418675956012);\n    ctx.lineTo(197,172);\n    ctx.translate(205.74,180.74);\n    ctx.rotate(0);\n    ctx.arc(0,0,12.360226535140843,-2.356194490192345,0.7853981633974483,0);\n    ctx.rotate(0);\n    ctx.translate(-205.74,-180.74);\n    ctx.lineTo(205.7,198.26999999999998);\n    ctx.translate(210.0896662954711,202.3603337045289);\n    ctx.rotate(0);\n    ctx.arc(0,0,6,-2.3914784950858663,-5.462503138888616,1);\n    ctx.rotate(0);\n    ctx.translate(-210.0896662954711,-202.3603337045289);\n    ctx.lineTo(222.96999999999997,197.96999999999997);\n    ctx.translate(205.75649308383512,180.70501868963808);\n    ctx.rotate(0);\n    ctx.arc(0,0,24.38,0.786891104608082,-0.7851519746116418,1);\n    ctx.rotate(0);\n    ctx.translate(-205.75649308383512,-180.70501868963808);\n    ctx.closePath();\n    ctx.fill();\n    ctx.stroke();\n    ctx.restore();\n    ctx.restore();\n    ctx.restore();\n};\n\nconst CG = globalThis.CraftGrid;\nCG.Nodes.Fusion.SVG.Register(\"link\", linkSVG, 17, 14.571428571428571, 2.4285714285714284); //NO I18N\n","export const lookupSVG = ctx => {\n    ctx.save();\n    ctx.strokeStyle=\"rgba(0,0,0,0)\";// No I18N\n    ctx.fillStyle=\"#555\"; // No I18N\n    ctx.miterLimit=4;\n    ctx.font=\"15px / 21.4286px ''\";// No I18N\n    ctx.font=\"   15px ''\";// No I18N\n    ctx.scale(0.25,0.25);\n    ctx.scale(0.25,0.25);\n    ctx.save();\n    ctx.font=\"   15px ''\";// No I18N\n    ctx.save();\n    ctx.font=\"   15px ''\";// No I18N\n    ctx.beginPath();\n    ctx.moveTo(257.07,242.93);\n    ctx.lineTo(236.07,221.93);\n    ctx.translate(228.9253541775531,229.16760568639882);\n    ctx.rotate(0);\n    ctx.arc(0,0,10.17,-0.7918615859985075,-1.116309206922206,1);\n    ctx.rotate(0);\n    ctx.translate(-228.9253541775531,-229.16760568639882);\n    ctx.translate(181.23037268916983,181.14328146017843);\n    ctx.rotate(0);\n    ctx.arc(0,0,65.06,0.6406360333297301,0.9324032831789975,1);\n    ctx.rotate(0);\n    ctx.translate(-181.23037268916983,-181.14328146017843);\n    ctx.translate(229.13760568639879,228.9253541775531);\n    ctx.rotate(0);\n    ctx.arc(0,0,10.17,2.687105533717103,2.3626579127934044,1);\n    ctx.rotate(0);\n    ctx.translate(-229.13760568639879,-228.9253541775531);\n    ctx.lineTo(242.9,257.07);\n    ctx.translate(249.84711794272562,249.8771179427256);\n    ctx.rotate(0);\n    ctx.arc(0,0,10,2.3388154681763984,-0.7680191413815001,1);\n    ctx.rotate(0);\n    ctx.translate(-249.84711794272562,-249.8771179427256);\n    ctx.closePath();\n    ctx.moveTo(181.25,226.25);\n    ctx.translate(181.25,181.25);\n    ctx.rotate(0);\n    ctx.arc(0,0,45,1.5707963267948966,0,0);\n    ctx.rotate(0);\n    ctx.translate(-181.25,-181.25);\n    ctx.translate(181.2000277162033,181.2000277162033);\n    ctx.rotate(0);\n    ctx.arc(0,0,45.05,0.001109262908882744,1.5696870638860259,0);\n    ctx.rotate(0);\n    ctx.translate(-181.2000277162033,-181.2000277162033);\n    ctx.closePath();\n    ctx.fill();\n    ctx.stroke();\n    ctx.restore();\n    ctx.save();\n    ctx.font=\"   15px ''\";// No I18N\n    ctx.beginPath();\n    ctx.moveTo(101.5,212.5);\n    ctx.lineTo(95,212.5);\n    ctx.lineTo(95,95);\n    ctx.lineTo(212.5,95);\n    ctx.lineTo(212.5,101.5);\n    ctx.translate(222.5,101.5);\n    ctx.rotate(0);\n    ctx.arc(0,0,10,3.141592653589793,6.283185307179586,1);\n    ctx.rotate(0);\n    ctx.translate(-222.5,-101.5);\n    ctx.lineTo(232.5,65.75);\n    ctx.translate(186.70002726282974,65.79997273717026);\n    ctx.rotate(0);\n    ctx.arc(0,0,45.8,-0.0010911080149630158,-1.5697052187799105,1);\n    ctx.rotate(0);\n    ctx.translate(-186.70002726282974,-65.79997273717026);\n    ctx.lineTo(65.75,20);\n    ctx.translate(65.79997273717026,65.79997273717026);\n    ctx.rotate(0);\n    ctx.arc(0,0,45.8,-1.571887434809871,-3.1405015455748186,1);\n    ctx.rotate(0);\n    ctx.translate(-65.79997273717026,-65.79997273717026);\n    ctx.lineTo(20,186.75);\n    ctx.translate(65.79997273717026,186.70002726282974);\n    ctx.rotate(0);\n    ctx.arc(0,0,45.8,3.14050154557483,1.5718874348098826,1);\n    ctx.rotate(0);\n    ctx.translate(-65.79997273717026,-186.70002726282974);\n    ctx.lineTo(101.5,232.5);\n    ctx.translate(101.5,222.5);\n    ctx.rotate(0);\n    ctx.arc(0,0,10,1.5707963267948966,4.71238898038469,1);\n    ctx.rotate(0);\n    ctx.translate(-101.5,-222.5);\n    ctx.closePath();\n    ctx.moveTo(212.5,65.75);\n    ctx.lineTo(212.5,75);\n    ctx.lineTo(95,75);\n    ctx.lineTo(95,40);\n    ctx.lineTo(186.75,40);\n    ctx.translate(186.72001743511444,65.77998256488556);\n    ctx.rotate(0);\n    ctx.arc(0,0,25.78,-1.569633310051504,-0.0011630167433926974,0);\n    ctx.rotate(0);\n    ctx.translate(-186.72001743511444,-65.77998256488556);\n    ctx.closePath();\n    ctx.moveTo(65.75,40);\n    ctx.lineTo(75,40);\n    ctx.lineTo(75,75);\n    ctx.lineTo(40,75);\n    ctx.lineTo(40,65.75);\n    ctx.translate(65.77998256488556,65.77998256488556);\n    ctx.rotate(0);\n    ctx.arc(0,0,25.78,-3.1404296368464295,-1.5719593435383181,0);\n    ctx.rotate(0);\n    ctx.translate(-65.77998256488556,-65.77998256488556);\n    ctx.closePath();\n    ctx.moveTo(40,186.75);\n    ctx.lineTo(40,95);\n    ctx.lineTo(75,95);\n    ctx.lineTo(75,212.5);\n    ctx.lineTo(65.75,212.5);\n    ctx.translate(65.77998256488556,186.72001743511444);\n    ctx.rotate(0);\n    ctx.arc(0,0,25.78,1.5719593435382893,3.1404296368464006,0);\n    ctx.rotate(0);\n    ctx.translate(-65.77998256488556,-186.72001743511444);\n    ctx.closePath();\n    ctx.fill();\n    ctx.stroke();\n    ctx.restore();\n    ctx.restore();\n    ctx.restore();\n};\n\nconst CG = globalThis.CraftGrid;\nCG.Nodes.Fusion.SVG.Register(\"lookup\", lookupSVG, 17, 14.571428571428571, 2.4285714285714284); //NO I18N\n","export const modifiedBySVG = ctx => {\n\tctx.save();\n\tctx.strokeStyle=\"rgba(0,0,0,0)\";// No I18N\n\tctx.fillStyle=\"#555\"; // No I18N\n\tctx.miterLimit=4;\n\tctx.font=\"15px / 21.4286px ''\";// No I18N\n\tctx.font=\"   15px \";// No I18N\n\tctx.scale(0.25,0.25);\n\tctx.scale(0.25,0.25);\n\tctx.save();\n\tctx.font=\"   15px \";// No I18N\n\tctx.save();\n\tctx.font=\"   15px \";// No I18N\n\tctx.beginPath();\n\tctx.moveTo(190,125.57);\n\tctx.translate(189.9676291006149,197.03999266912564);\n\tctx.rotate(0);\n\tctx.arc(0,0,71.47,-1.5703433968873561,-2.0687739656658346,1);\n\tctx.rotate(0);\n\tctx.translate(-189.9676291006149,-197.03999266912564);\n\tctx.translate(154.4708415858379,135.97993884435618);\n\tctx.rotate(0);\n\tctx.arc(0,0,2.2,-0.9048554144825867,-1.0423839229219205,1);\n\tctx.rotate(0);\n\tctx.translate(-154.4708415858379,-135.97993884435618);\n\tctx.translate(109.026654804998,211.5949176040005);\n\tctx.rotate(0);\n\tctx.arc(0,0,90.42,-1.0299558125393515,-1.1856138875082567,1);\n\tctx.rotate(0);\n\tctx.translate(-109.026654804998,-211.5949176040005);\n\tctx.translate(111.31000000934446,95.85091706179576);\n\tctx.rotate(0);\n\tctx.arc(0,0,45,0.7894692704009448,-0.000020379151018379282,1);\n\tctx.rotate(0);\n\tctx.translate(-111.31000000934446,-95.85091706179576);\n\tctx.lineTo(156.31,69);\n\tctx.translate(111.14003981278333,69.0599723708095);\n\tctx.rotate(0);\n\tctx.arc(0,0,45.17,-0.0013277039722670724,-1.5696902785902223,1);\n\tctx.rotate(0);\n\tctx.translate(-111.14003981278333,-69.0599723708095);\n\tctx.lineTo(105.25999999999999,23.89);\n\tctx.translate(105.32997238061535,69.04994579122024);\n\tctx.rotate(0);\n\tctx.arc(0,0,45.16,-1.5723457601122786,-3.140486679245188,1);\n\tctx.rotate(0);\n\tctx.translate(-105.32997238061535,-69.04994579122024);\n\tctx.lineTo(60.17,95.9);\n\tctx.translate(105.10998590723534,95.93559013192318);\n\tctx.rotate(0);\n\tctx.arc(0,0,44.94,-3.140800705756158,-3.9303646693327403,1);\n\tctx.rotate(0);\n\tctx.translate(-105.10998590723534,-95.93559013192318);\n\tctx.translate(109.00332563705891,214.4438966430887);\n\tctx.rotate(0);\n\tctx.arc(0,0,93.64,-1.960363179663061,-2.58091664541678,1);\n\tctx.rotate(0);\n\tctx.translate(-109.00332563705891,-214.4438966430887);\n\tctx.translate(56.17012102050415,181.1090884668582);\n\tctx.rotate(0);\n\tctx.arc(0,0,31.17,-2.5852986651921848,-3.9265550403043115,1);\n\tctx.rotate(0);\n\tctx.translate(-56.17012102050415,-181.1090884668582);\n\tctx.translate(55.40616452867989,182.0000094688297);\n\tctx.rotate(0);\n\tctx.arc(0,0,30,2.3596398511711136,1.5700018110006364,1);\n\tctx.rotate(0);\n\tctx.translate(-55.40616452867989,-182.0000094688297);\n\tctx.lineTo(55.589999999999996,212);\n\tctx.lineTo(117.94999999999999,211.64);\n\tctx.bezierCurveTo(123.49,247.04,153.69,274.19,190.01,274.19);\n\tctx.bezierCurveTo(230.26,274.19,263.01,240.86,263.01,199.89999999999998);\n\tctx.bezierCurveTo(263.01,158.93999999999994,230.26,125.57,190,125.57);\n\tctx.closePath();\n\tctx.moveTo(80.17,69);\n\tctx.translate(105.2999920477112,69.01999204771121);\n\tctx.rotate(0);\n\tctx.arc(0,0,25.13,-3.1407971084319706,-1.5715918719530315,0);\n\tctx.rotate(0);\n\tctx.translate(-105.2999920477112,-69.01999204771121);\n\tctx.lineTo(111.21000000000001,43.89);\n\tctx.translate(111.19001789029257,69.02999205877543);\n\tctx.rotate(0);\n\tctx.arc(0,0,25.14,-1.5700014933895097,-0.001193001825370299,0);\n\tctx.rotate(0);\n\tctx.translate(-111.19001789029257,-69.02999205877543);\n\tctx.lineTo(136.33,95.9);\n\tctx.translate(111.18004966639046,95.8500178334553);\n\tctx.rotate(0);\n\tctx.arc(0,0,25.15,0.001987363795066999,1.5696054583778332,0);\n\tctx.rotate(0);\n\tctx.translate(-111.18004966639046,-95.8500178334553);\n\tctx.lineTo(105.28,121);\n\tctx.translate(105.30999800401209,95.86001789738594);\n\tctx.rotate(0);\n\tctx.arc(0,0,25.14,1.5719895651055853,3.141991137983233,0);\n\tctx.rotate(0);\n\tctx.translate(-105.30999800401209,-95.86001789738594);\n\tctx.closePath();\n\tctx.moveTo(55.48,192);\n\tctx.lineTo(55.419999999999995,192);\n\tctx.translate(55.43249680084213,181.83000767797887);\n\tctx.rotate(0);\n\tctx.arc(0,0,10.17,1.5720251177474052,2.359149775241911,0);\n\tctx.rotate(0);\n\tctx.translate(-55.43249680084213,-181.83000767797887);\n\tctx.translate(56.17002916931951,181.15360361650212);\n\tctx.rotate(0);\n\tctx.arc(0,0,11.17,2.3627549173417224,3.6868935200414814,0);\n\tctx.rotate(0);\n\tctx.translate(-56.17002916931951,-181.15360361650212);\n\tctx.translate(108.15950604330835,213.29063795858985);\n\tctx.rotate(0);\n\tctx.arc(0,0,72.29,-2.5892287682298494,-1.1411782242938973,0);\n\tctx.rotate(0);\n\tctx.translate(-108.15950604330835,-213.29063795858985);\n\tctx.translate(191.72403818393434,199.70707607672767);\n\tctx.rotate(0);\n\tctx.arc(0,0,74.67,-2.368666125091624,-3.0334797134743225,1);\n\tctx.rotate(0);\n\tctx.translate(-191.72403818393434,-199.70707607672767);\n\tctx.closePath();\n\tctx.moveTo(190,258.16);\n\tctx.bezierCurveTo(158.57999999999998,258.16,133,232.01000000000002,133,199.87000000000003);\n\tctx.bezierCurveTo(133,167.73000000000005,158.56,141.57000000000005,190,141.57000000000005);\n\tctx.bezierCurveTo(221.44,141.57000000000005,247,167.72000000000006,247,199.87000000000006);\n\tctx.bezierCurveTo(247,232.02000000000007,221.44,258.16,190,258.16);\n\tctx.closePath();\n\tctx.fill();\n\tctx.stroke();\n\tctx.restore();\n\tctx.save();\n\tctx.font=\"   15px \";// No I18N\n\tctx.beginPath();\n\tctx.moveTo(214.13,166.46);\n\tctx.translate(204.44,175.93134626122392);\n\tctx.rotate(0);\n\tctx.arc(0,0,13.55,-0.7739874699182645,-2.367605183671529,1);\n\tctx.rotate(0);\n\tctx.translate(-204.44,-175.93134626122392);\n\tctx.lineTo(159.91,202);\n\tctx.translate(168.412532315214,210.31138040452618);\n\tctx.rotate(0);\n\tctx.arc(0,0,11.89,-2.367562675531269,-3.0522070277805686,1);\n\tctx.rotate(0);\n\tctx.translate(-168.412532315214,-210.31138040452618);\n\tctx.lineTo(155.22,224.4);\n\tctx.translate(163.18842591223984,225.11006230793126);\n\tctx.rotate(0);\n\tctx.arc(0,0,8,-3.052717911851137,-4.71633575160118,1);\n\tctx.rotate(0);\n\tctx.translate(-163.18842591223984,-225.11006230793126);\n\tctx.lineTo(163.96,233.11);\n\tctx.lineTo(178.81,231.73000000000002);\n\tctx.translate(177.70779530990706,220.02176593925722);\n\tctx.rotate(0);\n\tctx.arc(0,0,11.76,1.4769336741296515,0.7761400654862068,1);\n\tctx.rotate(0);\n\tctx.translate(-177.70779530990706,-220.02176593925722);\n\tctx.lineTo(220.93,192.72000000000003);\n\tctx.translate(210.99098596439265,183.06000000000003);\n\tctx.rotate(0);\n\tctx.arc(0,0,13.86,0.7711629988944619,-0.7711629988944619,1);\n\tctx.rotate(0);\n\tctx.translate(-210.99098596439265,-183.06000000000003);\n\tctx.closePath();\n\tctx.moveTo(175.73,215.91000000000003);\n\tctx.lineTo(172.01,216.26000000000002);\n\tctx.lineTo(172.38,212.14000000000001);\n\tctx.lineTo(204.44,179.43);\n\tctx.lineTo(208,183);\n\tctx.closePath();\n\tctx.fill();\n\tctx.stroke();\n\tctx.restore();\n\tctx.restore();\n\tctx.restore();\n};\n\nconst CG = globalThis.CraftGrid;\nCG.Nodes.Fusion.SVG.Register(\"modifiedby\", modifiedBySVG, 17, 14.571428571428571, 2.4285714285714284); //NO I18N\n","export const modifiedTimeSVG = ctx => {\n\tctx.save();\n\tctx.strokeStyle=\"rgba(0,0,0,0)\"; // No I18N\n\tctx.fillStyle=\"#555\"; // No I18N\n\tctx.miterLimit=4;\n\tctx.font=\"15px / 21.4286px ''\"; // No I18N\n\tctx.font=\"   15px \"; // No I18N\n\tctx.scale(0.25,0.25);\n\tctx.scale(0.25,0.25);\n\tctx.save();\n\tctx.font=\"   15px \"; // No I18N\n\tctx.beginPath();\n\tctx.moveTo(135,29.33);\n\tctx.translate(134.99,134.66999952534653);\n\tctx.rotate(0);\n\tctx.arc(0,0,105.34,-1.5707013960941654,4.505918749231341e-9,1);\n\tctx.rotate(0);\n\tctx.translate(-134.99,-134.66999952534653);\n\tctx.translate(134.87006818130658,134.7899199588284);\n\tctx.rotate(0);\n\tctx.arc(0,0,105.46,-0.0011371134521800566,-1.5695642781359758,1);\n\tctx.rotate(0);\n\tctx.translate(-134.87006818130658,-134.7899199588284);\n\tctx.closePath();\n\tctx.moveTo(135,220);\n\tctx.translate(134.99000058582305,134.66000058582307);\n\tctx.rotate(0);\n\tctx.arc(0,0,85.34,1.5706791553137645,0.00011717148113210563,0);\n\tctx.rotate(0);\n\tctx.translate(-134.99000058582305,-134.66000058582307);\n\tctx.translate(134.90005845906015,134.57005845906016);\n\tctx.rotate(0);\n\tctx.arc(0,0,85.43,0.0011698649624266534,1.5696264618325602,0);\n\tctx.rotate(0);\n\tctx.translate(-134.90005845906015,-134.57005845906016);\n\tctx.closePath();\n\tctx.fill();\n\tctx.stroke();\n\tctx.restore();\n\tctx.save();\n\tctx.font=\"   15px \"; // No I18N\n\tctx.beginPath();\n\tctx.moveTo(244.74,32.26);\n\tctx.lineTo(215.4,2.93);\n\tctx.translate(208.20711794272577,9.877117942725787);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,-0.768019141381529,2.3388154681764273,1);\n\tctx.rotate(0);\n\tctx.translate(-208.20711794272577,-9.877117942725787);\n\tctx.lineTo(230.6,46.4);\n\tctx.translate(237.79288205727423,39.45288205727421);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,2.373573512208264,5.480408121766221,1);\n\tctx.rotate(0);\n\tctx.translate(-237.79288205727423,-39.45288205727421);\n\tctx.closePath();\n\tctx.fill();\n\tctx.stroke();\n\tctx.restore();\n\tctx.save();\n\tctx.font=\"   15px \"; // No I18N\n\tctx.beginPath();\n\tctx.moveTo(39.4,46.4);\n\tctx.lineTo(68.74,17.07);\n\tctx.translate(61.79288205727453,9.877117942725473);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,0.8027771854134117,3.909611794971278,1);\n\tctx.rotate(0);\n\tctx.translate(-61.79288205727453,-9.877117942725473);\n\tctx.lineTo(25.26,32.26);\n\tctx.translate(32.207117942725525,39.45288205727447);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,-2.3388154681763895,0.7680191413814961,1);\n\tctx.rotate(0);\n\tctx.translate(-32.207117942725525,-39.45288205727447);\n\tctx.closePath();\n\tctx.fill();\n\tctx.stroke();\n\tctx.restore();\n\tctx.save();\n\tctx.font=\"   15px \"; // No I18N\n\tctx.beginPath();\n\tctx.moveTo(173.45,97);\n\tctx.lineTo(145,116);\n\tctx.lineTo(145,105.33);\n\tctx.translate(135,105.33);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,0,3.141592653589793,1);\n\tctx.rotate(0);\n\tctx.translate(-135,-105.33);\n\tctx.lineTo(125,134.67);\n\tctx.bezierCurveTo(125,134.72,125,134.78,125,134.82999999999998);\n\tctx.translate(132.36860230980068,135.23999999999998);\n\tctx.rotate(0);\n\tctx.arc(0,0,7.38,-3.0860084803088763,-3.1971768268707095,1);\n\tctx.rotate(0);\n\tctx.translate(-132.36860230980068,-135.23999999999998);\n\tctx.bezierCurveTo(125,135.76,125,135.86999999999998,125,135.98);\n\tctx.bezierCurveTo(125,136.09,125.05,136.41,125.09,136.61999999999998);\n\tctx.bezierCurveTo(125.13000000000001,136.82999999999996,125.16,136.90999999999997,125.2,137.04999999999998);\n\tctx.bezierCurveTo(125.24000000000001,137.19,125.28,137.39,125.33,137.55999999999997);\n\tctx.bezierCurveTo(125.38,137.72999999999996,125.45,137.90999999999997,125.51,138.07999999999998);\n\tctx.bezierCurveTo(125.57000000000001,138.25,125.60000000000001,138.35,125.66000000000001,138.48);\n\tctx.translate(131.71883977089908,136.01787477358036);\n\tctx.rotate(0);\n\tctx.arc(0,0,6.54,2.755607765534465,2.6543232220180286,1);\n\tctx.rotate(0);\n\tctx.translate(-131.71883977089908,-136.01787477358036);\n\tctx.bezierCurveTo(125.94000000000001,139.17999999999998,126.03000000000002,139.26999999999998,126.08000000000001,139.36999999999998);\n\tctx.bezierCurveTo(126.21000000000001,139.61999999999998,126.36000000000001,139.85999999999999,126.51000000000002,140.08999999999997);\n\tctx.translate(127.19004970286873,139.77372100665994);\n\tctx.rotate(0);\n\tctx.arc(0,0,0.75,2.7062674191394045,2.520768991187581,1);\n\tctx.rotate(0);\n\tctx.translate(-127.19004970286873,-139.77372100665994);\n\tctx.lineTo(126.58000000000001,140.20999999999998);\n\tctx.translate(134.01387232885412,135.28009714108913);\n\tctx.rotate(0);\n\tctx.arc(0,0,8.92,2.55601643299647,2.4263260470960506,1);\n\tctx.rotate(0);\n\tctx.translate(-134.01387232885412,-135.28009714108913);\n\tctx.bezierCurveTo(127.36000000000001,141.22999999999996,127.44000000000001,141.30999999999997,127.52000000000001,141.39999999999998);\n\tctx.bezierCurveTo(127.60000000000001,141.48999999999998,127.87,141.76999999999998,128.06,141.95);\n\tctx.lineTo(128.38,142.23999999999998);\n\tctx.bezierCurveTo(128.57,142.39999999999998,128.78,142.55999999999997,128.98,142.70999999999998);\n\tctx.lineTo(129.26,142.92);\n\tctx.bezierCurveTo(129.56,143.11999999999998,129.87,143.30999999999997,130.19,143.48);\n\tctx.lineTo(130.43,143.6);\n\tctx.bezierCurveTo(130.69,143.73,130.96,143.85,131.23000000000002,143.96);\n\tctx.lineTo(131.53000000000003,144.07000000000002);\n\tctx.bezierCurveTo(131.79000000000002,144.16000000000003,132.05000000000004,144.24,132.32000000000002,144.31000000000003);\n\tctx.lineTo(132.63000000000002,144.39000000000004);\n\tctx.translate(134.59722141011028,136.34708759692091);\n\tctx.rotate(0);\n\tctx.arc(0,0,8.28,1.8106774207857737,1.7073582434135532,1);\n\tctx.rotate(0);\n\tctx.translate(-134.59722141011028,-136.34708759692091);\n\tctx.lineTo(133.76000000000002,144.55000000000004);\n\tctx.translate(134.84389897824383,134.79000189523782);\n\tctx.rotate(0);\n\tctx.arc(0,0,9.82,1.6813983625623874,1.5701750414437095,1);\n\tctx.rotate(0);\n\tctx.translate(-134.84389897824383,-134.79000189523782);\n\tctx.lineTo(134.97000000000003,144.61000000000004);\n\tctx.translate(134.93643260494747,135.22005999859485);\n\tctx.rotate(0);\n\tctx.arc(0,0,9.39,1.567221516725982,1.4401193604595885,1);\n\tctx.rotate(0);\n\tctx.translate(-134.93643260494747,-135.22005999859485);\n\tctx.lineTo(136.53000000000003,144.47000000000003);\n\tctx.bezierCurveTo(136.89000000000004,144.41000000000003,137.24000000000004,144.33000000000004,137.59000000000003,144.24000000000004);\n\tctx.lineTo(137.79000000000002,144.24000000000004);\n\tctx.translate(134.60024424467923,134.14180420959283);\n\tctx.rotate(0);\n\tctx.arc(0,0,10.59,1.264840752630402,1.1413059357946975,1);\n\tctx.rotate(0);\n\tctx.translate(-134.60024424467923,-134.14180420959283);\n\tctx.lineTo(139.26000000000002,143.65000000000003);\n\tctx.translate(134.583104391532,133.8930000785338);\n\tctx.rotate(0);\n\tctx.arc(0,0,10.82,1.1238149620181654,1.0021046682948016,1);\n\tctx.rotate(0);\n\tctx.translate(-134.583104391532,-133.8930000785338);\n\tctx.lineTo(140.41000000000003,143.01000000000005);\n\tctx.lineTo(140.41000000000003,143.01000000000005);\n\tctx.lineTo(140.41000000000003,143.01000000000005);\n\tctx.lineTo(184.35000000000002,113.71000000000005);\n\tctx.translate(178.31282571786247,105.73801613855773);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,0.9226402903063963,-2.078626702609075,1);\n\tctx.rotate(0);\n\tctx.translate(-178.31282571786247,-105.73801613855773);\n\tctx.closePath();\n\tctx.fill();\n\tctx.stroke();\n\tctx.restore();\n\tctx.restore();\n};\n\nconst CG = globalThis.CraftGrid;\nCG.Nodes.Fusion.SVG.Register(\"modifiedtime\", modifiedTimeSVG, 17, 14.571428571428571, 2.4285714285714284); //NO I18N\n","export const mselectSVG = ctx => {\n\tctx.save();\n\tctx.strokeStyle=\"rgba(0,0,0,0)\"; // No I18N\n\tctx.fillStyle=\"#555\"; // No I18N\n\tctx.strokeStyle=\"rgba(0,0,0,0)\"; // No I18N\n\tctx.miterLimit=4;\n\tctx.font=\"15px / 21.4286px ''\"; // No I18N\n\tctx.font=\"   15px \"; // No I18N\n\tctx.scale(0.25,0.25);\n\tctx.scale(0.25,0.25);\n\tctx.save();\n\tctx.font=\"   15px \"; // No I18N\n\tctx.beginPath();\n\tctx.moveTo(147.83,81);\n\tctx.lineTo(267.83000000000004,81);\n\tctx.translate(267.83000000000004,51.5);\n\tctx.rotate(0);\n\tctx.arc(0,0,29.5,1.5707963267948966,4.71238898038469,1);\n\tctx.rotate(0);\n\tctx.translate(-267.83000000000004,-51.5);\n\tctx.lineTo(147.83000000000004,22);\n\tctx.translate(147.83000000000004,51.5);\n\tctx.rotate(0);\n\tctx.arc(0,0,29.5,-1.5707963267948966,1.5707963267948966,1);\n\tctx.rotate(0);\n\tctx.translate(-147.83000000000004,-51.5);\n\tctx.closePath();\n\tctx.moveTo(147.83,36);\n\tctx.lineTo(267.83000000000004,36);\n\tctx.translate(267.83000000000004,51.5);\n\tctx.rotate(0);\n\tctx.arc(0,0,15.5,-1.5707963267948966,1.5707963267948966,0);\n\tctx.rotate(0);\n\tctx.translate(-267.83000000000004,-51.5);\n\tctx.lineTo(147.83000000000004,67);\n\tctx.translate(147.83000000000004,51.5);\n\tctx.rotate(0);\n\tctx.arc(0,0,15.5,1.5707963267948966,4.71238898038469,0);\n\tctx.rotate(0);\n\tctx.translate(-147.83000000000004,-51.5);\n\tctx.closePath();\n\tctx.fill();\n\tctx.stroke();\n\tctx.restore();\n\tctx.save();\n\tctx.font=\"   15px \"; // No I18N\n\tctx.beginPath();\n\tctx.moveTo(101.11,13.6);\n\tctx.translate(94.9988452711561,21.515414574116054);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,-0.91332725994509,-2.479788073157791,1);\n\tctx.rotate(0);\n\tctx.translate(-94.9988452711561,-21.515414574116054);\n\tctx.lineTo(47.36,66.54);\n\tctx.lineTo(27.64,47.35);\n\tctx.translate(20.74241714377662,54.59039713976611);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,-0.8096411684822071,-3.93103446879633,1);\n\tctx.rotate(0);\n\tctx.translate(-20.74241714377662,-54.59039713976611);\n\tctx.lineTo(41.43,88.69);\n\tctx.translate(48.4007755927723,81.52004270339006);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,2.3421097511616513,1.567873881912182,1);\n\tctx.rotate(0);\n\tctx.translate(-48.4007755927723,-81.52004270339006);\n\tctx.lineTo(49.13,91.52);\n\tctx.translate(48.42540772009347,81.54485339861633);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,1.5002786690036354,0.659237949634822,1);\n\tctx.rotate(0);\n\tctx.translate(-48.42540772009347,-81.54485339861633);\n\tctx.lineTo(102.91,27.67);\n\tctx.translate(95.01725545691461,21.529594184616467);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,0.6611698207375359,-0.9156510425007595,1);\n\tctx.rotate(0);\n\tctx.translate(-95.01725545691461,-21.529594184616467);\n\tctx.closePath();\n\tctx.fill();\n\tctx.stroke();\n\tctx.restore();\n\tctx.save();\n\tctx.font=\"   15px \"; // No I18N\n\tctx.beginPath();\n\tctx.moveTo(267.83,112);\n\tctx.lineTo(147.82999999999998,112);\n\tctx.translate(147.82999999999998,141.5);\n\tctx.rotate(0);\n\tctx.arc(0,0,29.5,-1.5707963267948966,1.5707963267948966,1);\n\tctx.rotate(0);\n\tctx.translate(-147.82999999999998,-141.5);\n\tctx.lineTo(267.83,171);\n\tctx.translate(267.83,141.5);\n\tctx.rotate(0);\n\tctx.arc(0,0,29.5,1.5707963267948966,4.71238898038469,1);\n\tctx.rotate(0);\n\tctx.translate(-267.83,-141.5);\n\tctx.closePath();\n\tctx.moveTo(267.83,157);\n\tctx.lineTo(147.82999999999998,157);\n\tctx.translate(147.82999999999998,141.5);\n\tctx.rotate(0);\n\tctx.arc(0,0,15.5,1.5707963267948966,4.71238898038469,0);\n\tctx.rotate(0);\n\tctx.translate(-147.82999999999998,-141.5);\n\tctx.lineTo(267.83,126);\n\tctx.translate(267.83,141.5);\n\tctx.rotate(0);\n\tctx.arc(0,0,15.5,-1.5707963267948966,1.5707963267948966,0);\n\tctx.rotate(0);\n\tctx.translate(-267.83,-141.5);\n\tctx.closePath();\n\tctx.fill();\n\tctx.stroke();\n\tctx.restore();\n\tctx.save();\n\tctx.font=\"   15px \"; // No I18N\n\tctx.beginPath();\n\tctx.moveTo(101.11,96.1);\n\tctx.translate(94.9988452711561,104.01541457411604);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,-0.9133272599450899,-2.4797880731577906,1);\n\tctx.rotate(0);\n\tctx.translate(-94.9988452711561,-104.01541457411604);\n\tctx.lineTo(47.36,149);\n\tctx.lineTo(27.64,129.85);\n\tctx.translate(20.597582856223543,136.94960286023402);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,-0.7894418152065622,2.3319514851076106,1);\n\tctx.rotate(0);\n\tctx.translate(-20.597582856223543,-136.94960286023402);\n\tctx.lineTo(41.43,171.19);\n\tctx.translate(48.40077559277231,164.0200427033901);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,2.3421097511616535,1.5678738819121838,1);\n\tctx.rotate(0);\n\tctx.translate(-48.40077559277231,-164.0200427033901);\n\tctx.lineTo(49.13,174.02);\n\tctx.translate(48.42540772009347,164.04485339861637);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,1.5002786690036354,0.659237949634822,1);\n\tctx.rotate(0);\n\tctx.translate(-48.42540772009347,-164.04485339861637);\n\tctx.lineTo(102.91,110.17000000000002);\n\tctx.translate(95.01725545691463,104.02959418461647);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,0.6611698207375374,-0.9156510425007607,1);\n\tctx.rotate(0);\n\tctx.translate(-95.01725545691463,-104.02959418461647);\n\tctx.closePath();\n\tctx.fill();\n\tctx.stroke();\n\tctx.restore();\n\tctx.save();\n\tctx.font=\"   15px \"; // No I18N\n\tctx.beginPath();\n\tctx.moveTo(267.83,202);\n\tctx.lineTo(147.82999999999998,202);\n\tctx.translate(147.82999999999998,231.5);\n\tctx.rotate(0);\n\tctx.arc(0,0,29.5,-1.5707963267948966,1.5707963267948966,1);\n\tctx.rotate(0);\n\tctx.translate(-147.82999999999998,-231.5);\n\tctx.lineTo(267.83,261);\n\tctx.translate(267.83,231.5);\n\tctx.rotate(0);\n\tctx.arc(0,0,29.5,1.5707963267948966,4.71238898038469,1);\n\tctx.rotate(0);\n\tctx.translate(-267.83,-231.5);\n\tctx.closePath();\n\tctx.moveTo(267.83,247);\n\tctx.lineTo(147.82999999999998,247);\n\tctx.translate(147.82999999999998,231.5);\n\tctx.rotate(0);\n\tctx.arc(0,0,15.5,1.5707963267948966,4.71238898038469,0);\n\tctx.rotate(0);\n\tctx.translate(-147.82999999999998,-231.5);\n\tctx.lineTo(267.83,216);\n\tctx.translate(267.83,231.5);\n\tctx.rotate(0);\n\tctx.arc(0,0,15.5,-1.5707963267948966,1.5707963267948966,0);\n\tctx.rotate(0);\n\tctx.translate(-267.83,-231.5);\n\tctx.closePath();\n\tctx.fill();\n\tctx.stroke();\n\tctx.restore();\n\tctx.save();\n\tctx.font=\"   15px \"; // No I18N\n\tctx.beginPath();\n\tctx.moveTo(57.83,194.5);\n\tctx.translate(57.83,231.5);\n\tctx.rotate(0);\n\tctx.arc(0,0,37,-1.5707963267948966,0,1);\n\tctx.rotate(0);\n\tctx.translate(-57.83,-231.5);\n\tctx.translate(57.83,231.5);\n\tctx.rotate(0);\n\tctx.arc(0,0,37,0,-1.5707963267948966,1);\n\tctx.rotate(0);\n\tctx.translate(-57.83,-231.5);\n\tctx.closePath();\n\tctx.moveTo(57.83,254.5);\n\tctx.translate(57.83,231.5);\n\tctx.rotate(0);\n\tctx.arc(0,0,23,1.5707963267948966,0,0);\n\tctx.rotate(0);\n\tctx.translate(-57.83,-231.5);\n\tctx.translate(57.83,231.5);\n\tctx.rotate(0);\n\tctx.arc(0,0,23,0,1.5707963267948966,0);\n\tctx.rotate(0);\n\tctx.translate(-57.83,-231.5);\n\tctx.closePath();\n\tctx.fill();\n\tctx.stroke();\n\tctx.restore();\n\tctx.restore();\n};\n\nconst CG = globalThis.CraftGrid;\nCG.Nodes.Fusion.SVG.Register(\"mSelect\", mselectSVG, 17, 16.5, 0.5); //NO I18N","export const numberSVG = ctx => {\n\tctx.save();\n\tctx.strokeStyle=\"rgba(0,0,0,0)\"; // No I18N\n\tctx.fillStyle=\"#555\"; // No I18N\n\tctx.miterLimit=4;\n\tctx.font=\"15px / 21.4286px ''\"; // No I18N\n\tctx.font=\"   15px \"; // No I18N\n\tctx.scale(0.25,0.25);\n\tctx.scale(0.25,0.25);\n\tctx.save();\n\tctx.font=\"   15px \"; // No I18N\n\tctx.beginPath();\n\tctx.moveTo(240,160);\n\tctx.lineTo(185.1,160);\n\tctx.lineTo(195.1,90);\n\tctx.lineTo(240,90);\n\tctx.translate(240,80);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,1.5707963267948966,4.71238898038469,1);\n\tctx.rotate(0);\n\tctx.translate(-240,-80);\n\tctx.lineTo(198,70);\n\tctx.lineTo(204.94,21.409999999999997);\n\tctx.translate(195.04614610589846,19.956846490500045);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,0.1458316992388557,3.2787065273352662,1);\n\tctx.rotate(0);\n\tctx.translate(-195.04614610589846,-19.956846490500045);\n\tctx.lineTo(177.76,70);\n\tctx.lineTo(108,70);\n\tctx.lineTo(114.94,21.409999999999997);\n\tctx.translate(105.03385389410128,20.0431535095016);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,0.1371138737452923,-2.9957609543507746,1);\n\tctx.rotate(0);\n\tctx.translate(-105.03385389410128,-20.0431535095016);\n\tctx.lineTo(87.76,70);\n\tctx.lineTo(30,70);\n\tctx.translate(30,80);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,-1.5707963267948966,1.5707963267948966,1);\n\tctx.rotate(0);\n\tctx.translate(-30,-80);\n\tctx.lineTo(84.9,90);\n\tctx.lineTo(74.9,160);\n\tctx.lineTo(30,160);\n\tctx.translate(30,170);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,-1.5707963267948966,1.5707963267948966,1);\n\tctx.rotate(0);\n\tctx.translate(-30,-170);\n\tctx.lineTo(72,180);\n\tctx.lineTo(65.1,228.59);\n\tctx.translate(75.00010744602075,229.99991934423377);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,-3.0001293670976357,-4.570906693892531,1);\n\tctx.rotate(0);\n\tctx.translate(-75.00010744602075,-229.99991934423377);\n\tctx.translate(74.98507011377377,230.22001139578896);\n\tctx.rotate(0);\n\tctx.arc(0,0,9.78,1.7139297657613979,1.5692697529682058,1);\n\tctx.rotate(0);\n\tctx.translate(-74.98507011377377,-230.22001139578896);\n\tctx.translate(74.9899033149192,230.00000509715377);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,1.5697866581152695,0.1414709185965488,1);\n\tctx.rotate(0);\n\tctx.translate(-74.9899033149192,-230.00000509715377);\n\tctx.lineTo(92.24,180);\n\tctx.lineTo(162,180);\n\tctx.lineTo(155.06,228.59);\n\tctx.translate(164.96010744602074,229.99991934423377);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,-3.0001293670976357,-4.570906693892533,1);\n\tctx.rotate(0);\n\tctx.translate(-164.96010744602074,-229.99991934423377);\n\tctx.translate(164.94520905486922,230.2200314208562);\n\tctx.rotate(0);\n\tctx.arc(0,0,9.78,1.7139441192120932,1.568261462614943,1);\n\tctx.rotate(0);\n\tctx.translate(-164.94520905486922,-230.2200314208562);\n\tctx.translate(164.95990331491925,230.00000509715377);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,1.569786658115271,0.1414709185965488,1);\n\tctx.rotate(0);\n\tctx.translate(-164.95990331491925,-230.00000509715377);\n\tctx.lineTo(182.24,180);\n\tctx.lineTo(240,180);\n\tctx.translate(240,170);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,1.5707963267948966,4.71238898038469,1);\n\tctx.rotate(0);\n\tctx.translate(-240,-170);\n\tctx.closePath();\n\tctx.moveTo(95.1,160);\n\tctx.lineTo(105.1,90);\n\tctx.lineTo(174.89999999999998,90);\n\tctx.lineTo(164.89999999999998,160);\n\tctx.closePath();\n\tctx.fill();\n\tctx.stroke();\n\tctx.restore();\n\tctx.restore();\n};\n\nconst CG = globalThis.CraftGrid;\nCG.Nodes.Fusion.SVG.Register(\"number\", numberSVG, 17, 14.571428571428571, 2.4285714285714284); //NO I18N\n","export const percentageSVG = ctx => {\n\tctx.save();\n\tctx.strokeStyle=\"rgba(0,0,0,0)\"; // No I18N\n\tctx.fillStyle=\"#555\"; // No I18N\n\tctx.miterLimit=4;\n\tctx.font=\"15px / 21.4286px ''\"; // No I18N\n\tctx.font=\"   15px \"; // No I18N\n\tctx.scale(0.25,0.25);\n\tctx.scale(0.25,0.25);\n\tctx.save();\n\tctx.font=\"   15px \"; // No I18N\n\tctx.beginPath();\n\tctx.moveTo(197.92,15);\n\tctx.translate(193.13355152452016,23.780086046934667);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,-1.0716857035696492,-2.6432065304279266,1);\n\tctx.rotate(0);\n\tctx.translate(-193.13355152452016,-23.780086046934667);\n\tctx.lineTo(68.1,231.45);\n\tctx.translate(76.88008604693466,236.23644847547982);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,-2.6424820303645458,-4.214002857222823,1);\n\tctx.rotate(0);\n\tctx.translate(-76.88008604693466,-236.23644847547982);\n\tctx.translate(76.86640192713344,236.40002826750467);\n\tctx.rotate(0);\n\tctx.arc(0,0,9.85,2.0759005747057024,1.5684005810648975,1);\n\tctx.rotate(0);\n\tctx.translate(-76.86640192713344,-236.40002826750467);\n\tctx.translate(76.89731365686696,236.25000267447916);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,1.5715276925467931,0.5006544075402284,1);\n\tctx.rotate(0);\n\tctx.translate(-76.89731365686696,-236.25000267447916);\n\tctx.lineTo(201.9,28.55);\n\tctx.translate(193.1161018804863,23.770550886764916);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,0.49831361022319764,-1.069697212969567,1);\n\tctx.rotate(0);\n\tctx.translate(-193.1161018804863,-23.770550886764916);\n\tctx.closePath();\n\tctx.fill();\n\tctx.stroke();\n\tctx.restore();\n\tctx.save();\n\tctx.font=\"   15px \"; // No I18N\n\tctx.beginPath();\n\tctx.moveTo(203.75,120);\n\tctx.translate(203.75,171.25);\n\tctx.rotate(0);\n\tctx.arc(0,0,51.25,-1.5707963267948966,0,1);\n\tctx.rotate(0);\n\tctx.translate(-203.75,-171.25);\n\tctx.translate(203.69003503993045,171.30996496006955);\n\tctx.rotate(0);\n\tctx.arc(0,0,51.31,-0.0011686800568706773,-1.569627646737961,1);\n\tctx.rotate(0);\n\tctx.translate(-203.69003503993045,-171.30996496006955);\n\tctx.closePath();\n\tctx.moveTo(203.75,202.5);\n\tctx.translate(203.75,171.25);\n\tctx.rotate(0);\n\tctx.arc(0,0,31.25,1.5707963267948966,0,0);\n\tctx.rotate(0);\n\tctx.translate(-203.75,-171.25);\n\tctx.translate(203.71002553465215,171.21002553465215);\n\tctx.rotate(0);\n\tctx.arc(0,0,31.29,0.0012775479776260272,1.5695187788171532,0);\n\tctx.rotate(0);\n\tctx.translate(-203.71002553465215,-171.21002553465215);\n\tctx.closePath();\n\tctx.fill();\n\tctx.stroke();\n\tctx.restore();\n\tctx.save();\n\tctx.font=\"   15px \"; // No I18N\n\tctx.beginPath();\n\tctx.moveTo(117.5,88.75);\n\tctx.translate(66.25,88.75);\n\tctx.rotate(0);\n\tctx.arc(0,0,51.25,0,1.5707963267948966,1);\n\tctx.rotate(0);\n\tctx.translate(-66.25,-88.75);\n\tctx.translate(66.19003503993046,88.69003503993046);\n\tctx.rotate(0);\n\tctx.arc(0,0,51.31,1.5696276467379935,0.0011686800569030709,1);\n\tctx.rotate(0);\n\tctx.translate(-66.19003503993046,-88.69003503993046);\n\tctx.closePath();\n\tctx.moveTo(66.25,120);\n\tctx.translate(66.25,88.75);\n\tctx.rotate(0);\n\tctx.arc(0,0,31.25,1.5707963267948966,0,0);\n\tctx.rotate(0);\n\tctx.translate(-66.25,-88.75);\n\tctx.translate(66.21002553465216,88.71002553465216);\n\tctx.rotate(0);\n\tctx.arc(0,0,31.29,0.0012775479776260272,1.5695187788171532,0);\n\tctx.rotate(0);\n\tctx.translate(-66.21002553465216,-88.71002553465216);\n\tctx.closePath();\n\tctx.fill();\n\tctx.stroke();\n\tctx.restore();\n\tctx.restore();\n};\n\nconst CG = globalThis.CraftGrid;\nCG.Nodes.Fusion.SVG.Register(\"percentage\", percentageSVG, 17, 14.571428571428571, 2.4285714285714284); //NO I18N\n\n","export const phoneNumberSVG = ctx => {\n\tctx.save();\n\tctx.strokeStyle=\"rgba(0,0,0,0)\"; // No I18N\n\tctx.fillStyle=\"#555\"; // No I18N\n\tctx.miterLimit=4;\n\tctx.font=\"15px / 21.4286px ''\"; // No I18N\n\tctx.font=\"   15px \"; // No I18N\n\tctx.scale(0.25,0.25);\n\tctx.scale(0.25,0.25);\n\tctx.save();\n\tctx.font=\"   15px \"; // No I18N\n\tctx.beginPath();\n\tctx.moveTo(192.45,230);\n\tctx.bezierCurveTo(136.17999999999998,230,82.68999999999998,174.8,78.85999999999999,170.78);\n\tctx.bezierCurveTo(26.859999999999985,119.67,17.189999999999984,76.78,16.039999999999985,55.78);\n\tctx.translate(45.563204548918854,54.305553268952664);\n\tctx.rotate(0);\n\tctx.arc(0,0,29.56,3.0916921522703116,3.8803840462443118,0);\n\tctx.rotate(0);\n\tctx.translate(-45.563204548918854,-54.305553268952664);\n\tctx.lineTo(23.709999999999987,34.400000000000006);\n\tctx.bezierCurveTo(28.1,29.62,33.9,23.39,34,23.33);\n\tctx.lineTo(34.1,23.22);\n\tctx.bezierCurveTo(39.54,17.49,48.19,9.87,59.83,10);\n\tctx.bezierCurveTo(69.83,10.11,79.69,15.86,90.91,28.1);\n\tctx.bezierCurveTo(100.97999999999999,39.1,105.83,49.44,105.72,59.730000000000004);\n\tctx.bezierCurveTo(105.62,68.80000000000001,101.72,77.15,93.72,85.25);\n\tctx.bezierCurveTo(89.31,89.74,89.89,92.88,90.33,94);\n\tctx.lineTo(90.64999999999999,94.44);\n\tctx.lineTo(90.49,94.33);\n\tctx.bezierCurveTo(102.69,117.44,124.35,135.03,138.68,146.67000000000002);\n\tctx.bezierCurveTo(140.93,148.49,142.99,150.17000000000002,144.82,151.67000000000002);\n\tctx.bezierCurveTo(153.23,158.72000000000003,156.42,155.88000000000002,159.5,153.13000000000002);\n\tctx.bezierCurveTo(159.76,152.90000000000003,160.24,152.41000000000003,160.7,151.95000000000002);\n\tctx.bezierCurveTo(163.86999999999998,148.76000000000002,169.7,142.84000000000003,179.26999999999998,140.95000000000002);\n\tctx.bezierCurveTo(189.82999999999998,138.85000000000002,201.76999999999998,142.39000000000001,214.76,151.46);\n\tctx.bezierCurveTo(226.84,159.9,233.83999999999997,169.66,235.56,180.46);\n\tctx.translate(203.90878723194044,185.50016173460955);\n\tctx.rotate(0);\n\tctx.arc(0,0,32.05,-0.15791484159848598,0.60390083602405,0);\n\tctx.rotate(0);\n\tctx.translate(-203.90878723194044,-185.50016173460955);\n\tctx.lineTo(229.94,204.16000000000003);\n\tctx.lineTo(214,221);\n\tctx.translate(192.99530616394142,201.00492968620904);\n\tctx.rotate(0);\n\tctx.arc(0,0,29,0.7607780334953913,1.5523575635015296,0);\n\tctx.rotate(0);\n\tctx.translate(-192.99530616394142,-201.00492968620904);\n\tctx.closePath();\n\tctx.moveTo(38.49,47.92);\n\tctx.translate(45.42083750256378,54.31440313970394);\n\tctx.rotate(0);\n\tctx.arc(0,0,9.43,-2.396429775396273,-3.185678710339227,1);\n\tctx.rotate(0);\n\tctx.translate(-45.42083750256378,-54.31440313970394);\n\tctx.bezierCurveTo(36.8,69.32,43.94,108.46,93,156.63);\n\tctx.lineTo(93.27,156.91);\n\tctx.bezierCurveTo(93.77,157.45,144.57999999999998,210.64,193.26999999999998,209.99);\n\tctx.translate(193.01648690123469,201.11361948152546);\n\tctx.rotate(0);\n\tctx.arc(0,0,8.88,1.5422436749593036,0.7489890446369685,1);\n\tctx.rotate(0);\n\tctx.translate(-193.01648690123469,-201.11361948152546);\n\tctx.lineTo(214.42,191.51);\n\tctx.translate(203.55731957059334,185.42685329055874);\n\tctx.rotate(0);\n\tctx.arc(0,0,12.45,0.5104915224351826,-0.03429212543904847,1);\n\tctx.rotate(0);\n\tctx.translate(-203.55731957059334,-185.42685329055874);\n\tctx.bezierCurveTo(215.69,177.92,208.95,171.77,203.35,167.86);\n\tctx.bezierCurveTo(185.51999999999998,155.4,179.9,161.06,174.95,166.05);\n\tctx.bezierCurveTo(174.23999999999998,166.76000000000002,173.57999999999998,167.43,172.85999999999999,168.05);\n\tctx.bezierCurveTo(160.49,179.12,146,178.74,132,167);\n\tctx.bezierCurveTo(130.25,165.53,128.26,163.91,126.1,162.16);\n\tctx.bezierCurveTo(110.55,149.55,87,130.46,72.92,103.82);\n\tctx.translate(93.99517138013522,92.5696999463157);\n\tctx.rotate(0);\n\tctx.arc(0,0,23.89,2.6512582811493486,3.121486650427976,0);\n\tctx.rotate(0);\n\tctx.translate(-93.99517138013522,-92.5696999463157);\n\tctx.bezierCurveTo(69.94,87.63,71.42999999999999,79.44,79.48,71.24);\n\tctx.bezierCurveTo(86,64.62,90.61,57.37,76.16,41.61);\n\tctx.bezierCurveTo(67.41,32.07,62.33,30,59.61,30);\n\tctx.lineTo(59.61,30);\n\tctx.bezierCurveTo(56.72,30,53.12,32.29,48.61,37);\n\tctx.bezierCurveTo(48.03,37.62,42.66,43.41,38.55,47.92);\n\tctx.closePath();\n\tctx.fill();\n\tctx.stroke();\n\tctx.restore();\n\tctx.restore();\n};\n\nconst CG = globalThis.CraftGrid;\nCG.Nodes.Fusion.SVG.Register(\"pNumber\", phoneNumberSVG, 17, 14, 3); //NO I18N\n","export const pickListSVG = ctx => {\n\tctx.save();\n\tctx.strokeStyle=\"rgba(0,0,0,0)\"; // No I18N\n\tctx.fillStyle=\"#666666\"; // No I18N\n\tctx.miterLimit=4;\n\tctx.font=\"15px / 21.4286px ''\"; // No I18N\n\tctx.font=\"   15px \"; // No I18N\n\tctx.scale(0.25,0.25);\n\tctx.scale(0.25,0.25);\n\tctx.save();\n\tctx.font=\"   15px \"; // No I18N\n\tctx.beginPath();\n\tctx.moveTo(193.5,10);\n\tctx.lineTo(76.5,10);\n\tctx.translate(76.54997454173832,59.04997454173832);\n\tctx.rotate(0);\n\tctx.arc(0,0,49.05,-1.5718151759362702,-3.1405738044484197,1);\n\tctx.rotate(0);\n\tctx.translate(-76.54997454173832,-59.04997454173832);\n\tctx.lineTo(27.5,191);\n\tctx.translate(76.54997454173832,190.95002545826168);\n\tctx.rotate(0);\n\tctx.arc(0,0,49.05,3.1405738044484846,1.5718151759363348,1);\n\tctx.rotate(0);\n\tctx.translate(-76.54997454173832,-190.95002545826168);\n\tctx.lineTo(193.5,240);\n\tctx.translate(193.45002545826168,190.95002545826168);\n\tctx.rotate(0);\n\tctx.arc(0,0,49.05,1.5697774776535232,0.0010188491413734013,1);\n\tctx.rotate(0);\n\tctx.translate(-193.45002545826168,-190.95002545826168);\n\tctx.lineTo(242.5,59);\n\tctx.translate(193.45002545826168,59.04997454173832);\n\tctx.rotate(0);\n\tctx.arc(0,0,49.05,-0.0010188491413086228,-1.5697774776534583,1);\n\tctx.rotate(0);\n\tctx.translate(-193.45002545826168,-59.04997454173832);\n\tctx.closePath();\n\tctx.moveTo(222.5,191);\n\tctx.translate(193.5,191);\n\tctx.rotate(0);\n\tctx.arc(0,0,29,0,1.5707963267948966,0);\n\tctx.rotate(0);\n\tctx.translate(-193.5,-191);\n\tctx.lineTo(76.5,220);\n\tctx.translate(76.5,191);\n\tctx.rotate(0);\n\tctx.arc(0,0,29,1.5707963267948966,3.141592653589793,0);\n\tctx.rotate(0);\n\tctx.translate(-76.5,-191);\n\tctx.lineTo(47.5,59);\n\tctx.translate(76.5,59);\n\tctx.rotate(0);\n\tctx.arc(0,0,29,3.141592653589793,4.71238898038469,0);\n\tctx.rotate(0);\n\tctx.translate(-76.5,-59);\n\tctx.lineTo(193.5,30);\n\tctx.translate(193.5,59);\n\tctx.rotate(0);\n\tctx.arc(0,0,29,-1.5707963267948966,0,0);\n\tctx.rotate(0);\n\tctx.translate(-193.5,-59);\n\tctx.closePath();\n\tctx.fill();\n\tctx.stroke();\n\tctx.restore();\n\tctx.save();\n\tctx.font=\"   15px \"; // No I18N\n\tctx.beginPath();\n\tctx.moveTo(106.73,166.18);\n\tctx.translate(97.59864187751086,169.92635807669947);\n\tctx.rotate(0);\n\tctx.arc(0,0,9.87,-0.3893317075589486,-0.588181264926112,1);\n\tctx.rotate(0);\n\tctx.translate(-97.59864187751086,-169.92635807669947);\n\tctx.translate(97.69688779240984,169.80311220759023);\n\tctx.rotate(0);\n\tctx.arc(0,0,9.72,-0.5832406158382372,-0.9875557109566637,1);\n\tctx.rotate(0);\n\tctx.translate(-97.69688779240984,-169.80311220759023);\n\tctx.translate(97.57364192330061,169.90135812248923);\n\tctx.rotate(0);\n\tctx.arc(0,0,9.87,-0.9826150618687938,-1.1814646192359577,1);\n\tctx.rotate(0);\n\tctx.translate(-97.57364192330061,-169.90135812248923);\n\tctx.translate(97.66204428441569,169.4182055932329);\n\tctx.rotate(0);\n\tctx.arc(0,0,9.39,-1.1706439901219454,-1.3792159254019976,1);\n\tctx.rotate(0);\n\tctx.translate(-97.66204428441569,-169.4182055932329);\n\tctx.translate(97.49999999999999,169.8550504918411);\n\tctx.rotate(0);\n\tctx.arc(0,0,9.85,-1.3715102957099872,-1.770082357879806,1);\n\tctx.rotate(0);\n\tctx.translate(-97.49999999999999,-169.8550504918411);\n\tctx.translate(97.40705839756656,169.7103855919741);\n\tctx.rotate(0);\n\tctx.arc(0,0,9.69,-1.7636361962023663,-1.9667208341385052,1);\n\tctx.rotate(0);\n\tctx.translate(-97.40705839756656,-169.7103855919741);\n\tctx.translate(97.57511881458088,170.13870039247743);\n\tctx.rotate(0);\n\tctx.arc(0,0,10.15,-1.965723284407797,-2.158196565754507,1);\n\tctx.rotate(0);\n\tctx.translate(-97.57511881458088,-170.13870039247743);\n\tctx.translate(97.30311220759016,169.80311220759023);\n\tctx.rotate(0);\n\tctx.arc(0,0,9.72,-2.154036942633129,-2.5583520377515554,1);\n\tctx.rotate(0);\n\tctx.translate(-97.30311220759016,-169.80311220759023);\n\tctx.translate(96.85104891130868,169.63370809156302);\n\tctx.rotate(0);\n\tctx.arc(0,0,9.25,-2.5467229140205436,-2.7589494206739817,1);\n\tctx.rotate(0);\n\tctx.translate(-96.85104891130868,-169.63370809156302);\n\tctx.translate(97.61002048163404,170.10185127237847);\n\tctx.rotate(0);\n\tctx.arc(0,0,10.13,-2.744051793464042,-2.9376294621487995,1);\n\tctx.rotate(0);\n\tctx.translate(-97.61002048163404,-170.10185127237847);\n\tctx.translate(97.59996972750167,170);\n\tctx.rotate(0);\n\tctx.arc(0,0,10.1,-2.947303301180185,-3.3358820059994017,1);\n\tctx.rotate(0);\n\tctx.translate(-97.59996972750167,-170);\n\tctx.translate(97.94044504816463,169.81709674045987);\n\tctx.rotate(0);\n\tctx.arc(0,0,10.47,2.936440945952595,2.7482517300220395,1);\n\tctx.rotate(0);\n\tctx.translate(-97.94044504816463,-169.81709674045987);\n\tctx.translate(97.37377778957945,170.04307117072955);\n\tctx.rotate(0);\n\tctx.arc(0,0,9.86,2.7473924451169,2.1471948512336754,1);\n\tctx.rotate(0);\n\tctx.translate(-97.37377778957945,-170.04307117072955);\n\tctx.translate(97.62511881458089,169.86129960752257);\n\tctx.rotate(0);\n\tctx.arc(0,0,10.15,2.1581965657545066,1.9657232844077965,1);\n\tctx.rotate(0);\n\tctx.translate(-97.62511881458089,-169.86129960752257);\n\tctx.translate(97.73290325954022,169.55955495183537);\n\tctx.rotate(0);\n\tctx.arc(0,0,10.47,1.964137250362658,1.7759480344321021,1);\n\tctx.rotate(0);\n\tctx.translate(-97.73290325954022,-169.55955495183537);\n\tctx.translate(97.55,169.9000302724983);\n\tctx.rotate(0);\n\tctx.arc(0,0,10.1,1.765085679204505,1.3765069743852887,1);\n\tctx.rotate(0);\n\tctx.translate(-97.55,-169.9000302724983);\n\tctx.translate(97.44814872762147,169.88997951836595);\n\tctx.rotate(0);\n\tctx.arc(0,0,10.13,1.3668331353538963,1.1732554666691395,1);\n\tctx.rotate(0);\n\tctx.translate(-97.44814872762147,-169.88997951836595);\n\tctx.translate(97.62364192330062,170.09864187751077);\n\tctx.rotate(0);\n\tctx.arc(0,0,9.87,1.1814646192359581,0.9826150618687941,1);\n\tctx.rotate(0);\n\tctx.translate(-97.62364192330062,-170.09864187751077);\n\tctx.translate(97.74688779240985,170.1968877924098);\n\tctx.rotate(0);\n\tctx.arc(0,0,9.72,0.9875557109566644,0.5832406158382378,1);\n\tctx.rotate(0);\n\tctx.translate(-97.74688779240985,-170.1968877924098);\n\tctx.translate(97.41129960752264,169.92488118541905);\n\tctx.rotate(0);\n\tctx.arc(0,0,10.15,0.5874002389596167,0.3949269576129061,1);\n\tctx.rotate(0);\n\tctx.translate(-97.41129960752264,-169.92488118541905);\n\tctx.translate(97.83961440802597,170.09294160243346);\n\tctx.rotate(0);\n\tctx.arc(0,0,9.69,0.3959245073436089,0.19283986940747003,1);\n\tctx.rotate(0);\n\tctx.translate(-97.83961440802597,-170.09294160243346);\n\tctx.translate(97.93992029789334,170);\n\tctx.rotate(0);\n\tctx.arc(0,0,9.61,0.20433254109274876,-0.2043325410927492,1);\n\tctx.rotate(0);\n\tctx.translate(-97.93992029789334,-170);\n\tctx.translate(98.17628745986183,170.05377100261268);\n\tctx.rotate(0);\n\tctx.arc(0,0,9.39,-0.2150478158189403,-0.42524302285819776,1);\n\tctx.rotate(0);\n\tctx.translate(-98.17628745986183,-170.05377100261268);\n\tctx.closePath();\n\tctx.fill();\n\tctx.stroke();\n\tctx.restore();\n\tctx.save();\n\tctx.font=\"   15px \"; // No I18N\n\tctx.beginPath();\n\tctx.moveTo(172.5,160);\n\tctx.lineTo(127.5,160);\n\tctx.translate(127.5,170);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,-1.5707963267948966,1.5707963267948966,1);\n\tctx.rotate(0);\n\tctx.translate(-127.5,-170);\n\tctx.lineTo(172.5,180);\n\tctx.translate(172.5,170);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,1.5707963267948966,4.71238898038469,1);\n\tctx.rotate(0);\n\tctx.translate(-172.5,-170);\n\tctx.closePath();\n\tctx.fill();\n\tctx.stroke();\n\tctx.restore();\n\tctx.save();\n\tctx.font=\"   15px \"; // No I18N\n\tctx.beginPath();\n\tctx.moveTo(106.73,121.18);\n\tctx.translate(97.59864187751084,124.92635807669943);\n\tctx.rotate(0);\n\tctx.arc(0,0,9.87,-0.3893317075589445,-0.588181264926109,1);\n\tctx.rotate(0);\n\tctx.translate(-97.59864187751084,-124.92635807669943);\n\tctx.translate(97.69688779240983,124.80311220759017);\n\tctx.rotate(0);\n\tctx.arc(0,0,9.72,-0.5832406158382342,-0.9875557109566615,1);\n\tctx.rotate(0);\n\tctx.translate(-97.69688779240983,-124.80311220759017);\n\tctx.translate(97.57364192330057,124.90135812248916);\n\tctx.rotate(0);\n\tctx.arc(0,0,9.87,-0.982615061868787,-1.1814646192359515,1);\n\tctx.rotate(0);\n\tctx.translate(-97.57364192330057,-124.90135812248916);\n\tctx.translate(97.66204428441569,124.41820559323286);\n\tctx.rotate(0);\n\tctx.arc(0,0,9.39,-1.1706439901219454,-1.3792159254019976,1);\n\tctx.rotate(0);\n\tctx.translate(-97.66204428441569,-124.41820559323286);\n\tctx.translate(97.49999999999999,124.85505049184104);\n\tctx.rotate(0);\n\tctx.arc(0,0,9.85,-1.3715102957099872,-1.770082357879806,1);\n\tctx.rotate(0);\n\tctx.translate(-97.49999999999999,-124.85505049184104);\n\tctx.translate(97.40705839756656,124.71038559197405);\n\tctx.rotate(0);\n\tctx.arc(0,0,9.69,-1.7636361962023663,-1.9667208341385052,1);\n\tctx.rotate(0);\n\tctx.translate(-97.40705839756656,-124.71038559197405);\n\tctx.translate(97.57511881458093,125.13870039247738);\n\tctx.rotate(0);\n\tctx.arc(0,0,10.15,-1.965723284407803,-2.1581965657545137,1);\n\tctx.rotate(0);\n\tctx.translate(-97.57511881458093,-125.13870039247738);\n\tctx.translate(97.30311220759017,124.80311220759017);\n\tctx.rotate(0);\n\tctx.arc(0,0,9.72,-2.154036942633131,-2.5583520377515585,1);\n\tctx.rotate(0);\n\tctx.translate(-97.30311220759017,-124.80311220759017);\n\tctx.translate(96.8510489113087,124.63370809156301);\n\tctx.rotate(0);\n\tctx.arc(0,0,9.25,-2.5467229140205463,-2.758949420673986,1);\n\tctx.rotate(0);\n\tctx.translate(-96.8510489113087,-124.63370809156301);\n\tctx.translate(97.61002048163404,125.10185127237847);\n\tctx.rotate(0);\n\tctx.arc(0,0,10.13,-2.744051793464042,-2.9376294621487995,1);\n\tctx.rotate(0);\n\tctx.translate(-97.61002048163404,-125.10185127237847);\n\tctx.translate(97.59996972750167,125.00000000000001);\n\tctx.rotate(0);\n\tctx.arc(0,0,10.1,-2.947303301180185,-3.3358820059994017,1);\n\tctx.rotate(0);\n\tctx.translate(-97.59996972750167,-125.00000000000001);\n\tctx.translate(97.94044504816463,124.81709674045986);\n\tctx.rotate(0);\n\tctx.arc(0,0,10.47,2.936440945952595,2.7482517300220395,1);\n\tctx.rotate(0);\n\tctx.translate(-97.94044504816463,-124.81709674045986);\n\tctx.translate(97.37377778957945,125.04307117072956);\n\tctx.rotate(0);\n\tctx.arc(0,0,9.86,2.7473924451169,2.1471948512336754,1);\n\tctx.rotate(0);\n\tctx.translate(-97.37377778957945,-125.04307117072956);\n\tctx.translate(97.62511881458089,124.86129960752257);\n\tctx.rotate(0);\n\tctx.arc(0,0,10.15,2.1581965657545066,1.9657232844077965,1);\n\tctx.rotate(0);\n\tctx.translate(-97.62511881458089,-124.86129960752257);\n\tctx.translate(97.45705839756657,125.28961440802594);\n\tctx.rotate(0);\n\tctx.arc(0,0,9.69,1.9667208341385058,1.763636196202367,1);\n\tctx.rotate(0);\n\tctx.translate(-97.45705839756657,-125.28961440802594);\n\tctx.translate(97.55,125.38992029789331);\n\tctx.rotate(0);\n\tctx.arc(0,0,9.61,1.775128867887646,1.366463785702148,1);\n\tctx.rotate(0);\n\tctx.translate(-97.55,-125.38992029789331);\n\tctx.translate(97.7120442844157,125.58179440676713);\n\tctx.rotate(0);\n\tctx.arc(0,0,9.39,1.379215925401998,1.1706439901219459,1);\n\tctx.rotate(0);\n\tctx.translate(-97.7120442844157,-125.58179440676713);\n\tctx.translate(97.62364192330062,125.09864187751079);\n\tctx.rotate(0);\n\tctx.arc(0,0,9.87,1.1814646192359581,0.9826150618687941,1);\n\tctx.rotate(0);\n\tctx.translate(-97.62364192330062,-125.09864187751079);\n\tctx.translate(97.74688779240985,125.1968877924098);\n\tctx.rotate(0);\n\tctx.arc(0,0,9.72,0.9875557109566644,0.5832406158382378,1);\n\tctx.rotate(0);\n\tctx.translate(-97.74688779240985,-125.1968877924098);\n\tctx.translate(97.41129960752264,124.92488118541905);\n\tctx.rotate(0);\n\tctx.arc(0,0,10.15,0.5874002389596167,0.3949269576129061,1);\n\tctx.rotate(0);\n\tctx.translate(-97.41129960752264,-124.92488118541905);\n\tctx.translate(97.83961440802597,125.09294160243344);\n\tctx.rotate(0);\n\tctx.arc(0,0,9.69,0.3959245073436089,0.19283986940747003,1);\n\tctx.rotate(0);\n\tctx.translate(-97.83961440802597,-125.09294160243344);\n\tctx.translate(97.93992029789334,125.00000000000001);\n\tctx.rotate(0);\n\tctx.arc(0,0,9.61,0.20433254109274876,-0.2043325410927492,1);\n\tctx.rotate(0);\n\tctx.translate(-97.93992029789334,-125.00000000000001);\n\tctx.translate(98.17628745986183,125.05377100261268);\n\tctx.rotate(0);\n\tctx.arc(0,0,9.39,-0.2150478158189403,-0.42524302285819776,1);\n\tctx.rotate(0);\n\tctx.translate(-98.17628745986183,-125.05377100261268);\n\tctx.closePath();\n\tctx.fill();\n\tctx.stroke();\n\tctx.restore();\n\tctx.save();\n\tctx.font=\"   15px \"; // No I18N\n\tctx.beginPath();\n\tctx.moveTo(172.5,115);\n\tctx.lineTo(127.5,115);\n\tctx.translate(127.5,125);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,-1.5707963267948966,1.5707963267948966,1);\n\tctx.rotate(0);\n\tctx.translate(-127.5,-125);\n\tctx.lineTo(172.5,135);\n\tctx.translate(172.5,125);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,1.5707963267948966,4.71238898038469,1);\n\tctx.rotate(0);\n\tctx.translate(-172.5,-125);\n\tctx.closePath();\n\tctx.fill();\n\tctx.stroke();\n\tctx.restore();\n\tctx.save();\n\tctx.font=\"   15px \"; // No I18N\n\tctx.beginPath();\n\tctx.moveTo(106.73,76.18);\n\tctx.translate(97.59864187751084,79.92635807669943);\n\tctx.rotate(0);\n\tctx.arc(0,0,9.87,-0.3893317075589445,-0.588181264926109,1);\n\tctx.rotate(0);\n\tctx.translate(-97.59864187751084,-79.92635807669943);\n\tctx.translate(97.69688779240983,79.80311220759017);\n\tctx.rotate(0);\n\tctx.arc(0,0,9.72,-0.5832406158382342,-0.9875557109566615,1);\n\tctx.rotate(0);\n\tctx.translate(-97.69688779240983,-79.80311220759017);\n\tctx.translate(97.57364192330057,79.90135812248916);\n\tctx.rotate(0);\n\tctx.arc(0,0,9.87,-0.982615061868787,-1.1814646192359515,1);\n\tctx.rotate(0);\n\tctx.translate(-97.57364192330057,-79.90135812248916);\n\tctx.translate(97.66204428441569,79.41820559323286);\n\tctx.rotate(0);\n\tctx.arc(0,0,9.39,-1.1706439901219454,-1.3792159254019976,1);\n\tctx.rotate(0);\n\tctx.translate(-97.66204428441569,-79.41820559323286);\n\tctx.translate(97.49999999999999,79.85505049184104);\n\tctx.rotate(0);\n\tctx.arc(0,0,9.85,-1.3715102957099872,-1.770082357879806,1);\n\tctx.rotate(0);\n\tctx.translate(-97.49999999999999,-79.85505049184104);\n\tctx.translate(97.40705839756656,79.71038559197405);\n\tctx.rotate(0);\n\tctx.arc(0,0,9.69,-1.7636361962023663,-1.9667208341385052,1);\n\tctx.rotate(0);\n\tctx.translate(-97.40705839756656,-79.71038559197405);\n\tctx.translate(97.57511881458093,80.13870039247738);\n\tctx.rotate(0);\n\tctx.arc(0,0,10.15,-1.965723284407803,-2.1581965657545137,1);\n\tctx.rotate(0);\n\tctx.translate(-97.57511881458093,-80.13870039247738);\n\tctx.translate(97.30311220759017,79.80311220759017);\n\tctx.rotate(0);\n\tctx.arc(0,0,9.72,-2.154036942633131,-2.5583520377515585,1);\n\tctx.rotate(0);\n\tctx.translate(-97.30311220759017,-79.80311220759017);\n\tctx.translate(96.8510489113087,79.63370809156301);\n\tctx.rotate(0);\n\tctx.arc(0,0,9.25,-2.5467229140205463,-2.758949420673986,1);\n\tctx.rotate(0);\n\tctx.translate(-96.8510489113087,-79.63370809156301);\n\tctx.translate(97.61002048163404,80.10185127237847);\n\tctx.rotate(0);\n\tctx.arc(0,0,10.13,-2.744051793464042,-2.9376294621487995,1);\n\tctx.rotate(0);\n\tctx.translate(-97.61002048163404,-80.10185127237847);\n\tctx.translate(97.59996972750167,80.00000000000001);\n\tctx.rotate(0);\n\tctx.arc(0,0,10.1,-2.947303301180185,-3.3358820059994017,1);\n\tctx.rotate(0);\n\tctx.translate(-97.59996972750167,-80.00000000000001);\n\tctx.translate(97.61002048163404,79.89814872762156);\n\tctx.rotate(0);\n\tctx.arc(0,0,10.13,2.9376294621487995,2.744051793464042,1);\n\tctx.rotate(0);\n\tctx.translate(-97.61002048163404,-79.89814872762156);\n\tctx.translate(96.8510489113087,80.36629190843702);\n\tctx.rotate(0);\n\tctx.arc(0,0,9.25,2.758949420673986,2.5467229140205463,1);\n\tctx.rotate(0);\n\tctx.translate(-96.8510489113087,-80.36629190843702);\n\tctx.translate(97.26484016271795,80.13932939955157);\n\tctx.rotate(0);\n\tctx.arc(0,0,9.72,2.5512408047824375,2.1431953364432994,1);\n\tctx.rotate(0);\n\tctx.translate(-97.26484016271795,-80.13932939955157);\n\tctx.translate(97.62511881458094,79.86129960752262);\n\tctx.rotate(0);\n\tctx.arc(0,0,10.15,2.1581965657545132,1.9657232844078025,1);\n\tctx.rotate(0);\n\tctx.translate(-97.62511881458094,-79.86129960752262);\n\tctx.translate(97.45705839756657,80.28961440802595);\n\tctx.rotate(0);\n\tctx.arc(0,0,9.69,1.9667208341385058,1.763636196202367,1);\n\tctx.rotate(0);\n\tctx.translate(-97.45705839756657,-80.28961440802595);\n\tctx.translate(97.55,80.38992029789333);\n\tctx.rotate(0);\n\tctx.arc(0,0,9.61,1.775128867887646,1.366463785702148,1);\n\tctx.rotate(0);\n\tctx.translate(-97.55,-80.38992029789333);\n\tctx.translate(97.7120442844157,80.58179440676714);\n\tctx.rotate(0);\n\tctx.arc(0,0,9.39,1.379215925401998,1.1706439901219459,1);\n\tctx.rotate(0);\n\tctx.translate(-97.7120442844157,-80.58179440676714);\n\tctx.translate(97.62364192330058,80.09864187751084);\n\tctx.rotate(0);\n\tctx.arc(0,0,9.87,1.1814646192359521,0.9826150618687876,1);\n\tctx.rotate(0);\n\tctx.translate(-97.62364192330058,-80.09864187751084);\n\tctx.translate(97.74688779240984,80.19688779240983);\n\tctx.rotate(0);\n\tctx.arc(0,0,9.72,0.9875557109566623,0.5832406158382348,1);\n\tctx.rotate(0);\n\tctx.translate(-97.74688779240984,-80.19688779240983);\n\tctx.translate(97.64864187751085,80.07364192330057);\n\tctx.rotate(0);\n\tctx.arc(0,0,9.87,0.5881812649261093,0.38933170755894475,1);\n\tctx.rotate(0);\n\tctx.translate(-97.64864187751085,-80.07364192330057);\n\tctx.translate(98.05726645798771,80.34350470228227);\n\tctx.rotate(0);\n\tctx.arc(0,0,9.39,0.379260683507825,0.17733863450238135,1);\n\tctx.rotate(0);\n\tctx.translate(-98.05726645798771,-80.34350470228227);\n\tctx.translate(97.88992029789333,80.05);\n\tctx.rotate(0);\n\tctx.arc(0,0,9.61,0.20433254109274876,-0.2043325410927492,1);\n\tctx.rotate(0);\n\tctx.translate(-97.88992029789333,-80.05);\n\tctx.translate(98.06464267706524,79.79713733024624);\n\tctx.rotate(0);\n\tctx.arc(0,0,9.39,-0.18173757022448747,-0.39543715356366366,1);\n\tctx.rotate(0);\n\tctx.translate(-98.06464267706524,-79.79713733024624);\n\tctx.closePath();\n\tctx.fill();\n\tctx.stroke();\n\tctx.restore();\n\tctx.save();\n\tctx.font=\"   15px \"; // No I18N\n\tctx.beginPath();\n\tctx.moveTo(172.5,70);\n\tctx.lineTo(127.5,70);\n\tctx.translate(127.5,80);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,-1.5707963267948966,1.5707963267948966,1);\n\tctx.rotate(0);\n\tctx.translate(-127.5,-80);\n\tctx.lineTo(172.5,90);\n\tctx.translate(172.5,80);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,1.5707963267948966,4.71238898038469,1);\n\tctx.rotate(0);\n\tctx.translate(-172.5,-80);\n\tctx.closePath();\n\tctx.fill();\n\tctx.stroke();\n\tctx.restore();\n\tctx.restore();\n};\n\nconst CG = globalThis.CraftGrid;\nCG.Nodes.Fusion.SVG.Register(\"picklist\", pickListSVG, 17, 14.571428571428571, 2.4285714285714284); //NO I18N\n","export const PricingCrownSVG = ctx => {\n    const tranY = 77;\n    ctx.translate(-0, -tranY);\n    ctx.save();\n    ctx.strokeStyle=\"rgba(0,0,0,0)\";\n    ctx.miterLimit=4;\n    ctx.font=\"15px ''\";\n    ctx.fillStyle=\"rgba(0,0,0,0)\";\n    ctx.font=\"   15px ''\";\n    ctx.scale(4.4,4.4);\n    ctx.scale(4.4,4.4);\n    ctx.save();\n    ctx.fillStyle=\"rgba(0,0,0,0)\";\n    ctx.strokeStyle=\"#E67C09\";\n    ctx.font=\"   15px ''\";\n    ctx.beginPath();\n    ctx.arc(12,12,10.5,0,6.283185307179586,false);\n    ctx.closePath();\n    ctx.fill();\n    ctx.stroke();\n    ctx.restore();\n    ctx.save();\n    ctx.fillStyle=\"rgba(0,0,0,0)\";\n    ctx.strokeStyle=\"#E67C09\";\n    ctx.font=\"   15px ''\";\n    ctx.beginPath();\n    ctx.moveTo(6.692,13.8516);\n    ctx.lineTo(6.004,8.93762);\n    ctx.bezierCurveTo(5.99458,8.87645,6.00188,8.81373,6.02504,8.75674);\n    ctx.bezierCurveTo(6.0482,8.69975,6.08629,8.65083,6.13487,8.61565);\n    ctx.bezierCurveTo(6.18345,8.58047,6.24054,8.56048,6.2995,8.558);\n    ctx.bezierCurveTo(6.35847,8.55551,6.4169,8.57064,6.468,8.60162);\n    ctx.lineTo(8.96401,10.1136);\n    ctx.bezierCurveTo(9.09201,10.1976,9.26001,10.164,9.36402,10.038);\n    ctx.lineTo(11.756,6.96362);\n    ctx.bezierCurveTo(11.884,6.79561,12.116,6.80401,12.236,6.97202);\n    ctx.lineTo(14.492,10.0296);\n    ctx.bezierCurveTo(14.588,10.1556,14.756,10.1976,14.892,10.1136);\n    ctx.lineTo(17.5401,8.60162);\n    ctx.bezierCurveTo(17.7641,8.47562,18.0361,8.66882,17.9961,8.93762);\n    ctx.lineTo(17.3081,13.86);\n    ctx.lineTo(6.692,13.86);\n    ctx.lineTo(6.692,13.8516);\n    ctx.closePath();\n    ctx.fill();\n    ctx.stroke();\n    ctx.restore();\n    ctx.save();\n    ctx.fillStyle=\"rgba(0,0,0,0)\";\n    ctx.strokeStyle=\"#E67C09\";\n    ctx.font=\"   15px ''\";\n    ctx.beginPath();\n    ctx.moveTo(6.85205,16.2876);\n    ctx.lineTo(6.85205,15.1368);\n    ctx.lineTo(17.1561,15.1368);\n    ctx.lineTo(17.1561,16.2876);\n    ctx.bezierCurveTo(17.1561,16.6488,16.8761,16.9428,16.5321,16.9428);\n    ctx.lineTo(7.47605,16.9428);\n    ctx.bezierCurveTo(7.31056,16.9428,7.15184,16.8738,7.03482,16.7509);\n    ctx.bezierCurveTo(6.91779,16.6281,6.85205,16.4614,6.85205,16.2876);\n    ctx.closePath();\n    ctx.fill();\n    ctx.stroke();\n    ctx.restore();\n    ctx.restore();\n    ctx.translate(0, tranY);\n}\n\nconst CG = globalThis.CraftGrid;\nCG.Nodes.Fusion.SVG.Register(\"pricingCrown\", PricingCrownSVG, 300, 300, 2.5 ); //NO I18N\n    ","export const ratingSVG = ctx => {\n\tctx.save();\n\tctx.strokeStyle=\"rgba(0,0,0,0)\"; // No I18N\n\tctx.fillStyle=\"#555\"; // No I18N\n\tctx.miterLimit=4;\n\tctx.font=\"15px / 21.4286px ''\"; // No I18N\n\tctx.font=\"   15px \"; // No I18N\n\tctx.scale(0.25,0.25);\n\tctx.scale(0.25,0.25);\n\tctx.save();\n\tctx.font=\"   15px \"; // No I18N\n\tctx.beginPath();\n\tctx.moveTo(85.19,240);\n\tctx.translate(85.3336525895989,196.4902371422976);\n\tctx.rotate(0);\n\tctx.arc(0,0,43.51,1.5740979321863564,3.2115240844180666,0);\n\tctx.rotate(0);\n\tctx.translate(-85.3336525895989,-196.4902371422976);\n\tctx.lineTo(44.5,157.45);\n\tctx.lineTo(21.28,129.85);\n\tctx.translate(54.53985683722824,101.90692352000084);\n\tctx.rotate(0);\n\tctx.arc(0,0,43.44,2.4428482781166796,4.468736314016073,0);\n\tctx.rotate(0);\n\tctx.translate(-54.53985683722824,-101.90692352000084);\n\tctx.lineTo(79.06,51.07);\n\tctx.lineTo(98.13,20.47);\n\tctx.translate(134.99,43.41856858281144);\n\tctx.rotate(0);\n\tctx.arc(0,0,43.42,-2.584730181379913,-0.5568624722098803,0);\n\tctx.rotate(0);\n\tctx.translate(-134.99,-43.41856858281144);\n\tctx.lineTo(190.92,51.07);\n\tctx.lineTo(225.92,59.75);\n\tctx.translate(215.45405052484335,101.91037833776481);\n\tctx.rotate(0);\n\tctx.arc(0,0,43.44,-1.3274735419959949,0.6992419314855012,0);\n\tctx.rotate(0);\n\tctx.translate(-215.45405052484335,-101.91037833776481);\n\tctx.lineTo(225.48,157.47);\n\tctx.lineTo(228.04999999999998,193.47);\n\tctx.translate(184.71873657305915,196.54167866565845);\n\tctx.rotate(0);\n\tctx.arc(0,0,43.44,-0.07076989378165877,1.9559068026673363,0);\n\tctx.rotate(0);\n\tctx.translate(-184.71873657305915,-196.54167866565845);\n\tctx.lineTo(135,223.22);\n\tctx.lineTo(101.58,236.77);\n\tctx.translate(85.13067301242607,196.5000404562424);\n\tctx.rotate(0);\n\tctx.arc(0,0,43.5,1.1830041570173726,1.5694324875772907,0);\n\tctx.rotate(0);\n\tctx.translate(-85.13067301242607,-196.5000404562424);\n\tctx.closePath();\n\tctx.moveTo(135,20);\n\tctx.translate(134.89902177302176,43.2997811877639);\n\tctx.rotate(0);\n\tctx.arc(0,0,23.3,-1.5664624837443502,-2.585481193883184,1);\n\tctx.rotate(0);\n\tctx.translate(-134.89902177302176,-43.2997811877639);\n\tctx.lineTo(93.9,65.09);\n\tctx.translate(85.41097388381446,59.804507061898626);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,0.5568907349225869,1.3275005821380788,0);\n\tctx.rotate(0);\n\tctx.translate(-85.41097388381446,-59.804507061898626);\n\tctx.lineTo(48.88,79.16);\n\tctx.translate(54.53619112955589,101.91763612297932);\n\tctx.rotate(0);\n\tctx.arc(0,0,23.45,-1.8144007422521446,-3.840225158751667,1);\n\tctx.rotate(0);\n\tctx.translate(-54.53619112955589,-101.91763612297932);\n\tctx.lineTo(62.41,147.69);\n\tctx.translate(54.7555896721422,154.1250604140741);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,-0.6990699162486479,0.07155500464845255,0);\n\tctx.rotate(0);\n\tctx.translate(-54.7555896721422,-154.1250604140741);\n\tctx.lineTo(61.87999999999999,194.84);\n\tctx.translate(85.25046269320076,196.50924339319073);\n\tctx.rotate(0);\n\tctx.arc(0,0,23.43,-3.0702883974715967,-5.097858137855127,1);\n\tctx.rotate(0);\n\tctx.translate(-85.25046269320076,-196.50924339319073);\n\tctx.lineTo(131.23999999999998,203.14);\n\tctx.translate(135,212.49247560809434);\n\tctx.rotate(0);\n\tctx.arc(0,0,10.08,-1.9530537083787318,-1.1885389452110615,0);\n\tctx.rotate(0);\n\tctx.translate(-135,-212.49247560809434);\n\tctx.lineTo(175.94,218.22);\n\tctx.translate(184.74953730679923,196.50924339319073);\n\tctx.rotate(0);\n\tctx.arc(0,0,23.43,1.9562654842653335,-0.07130425611819757,1);\n\tctx.rotate(0);\n\tctx.translate(-184.74953730679923,-196.50924339319073);\n\tctx.lineTo(205.27,154.84);\n\tctx.translate(215.2444103278578,154.1250604140741);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,3.0700376489413412,3.840662569838442,0);\n\tctx.rotate(0);\n\tctx.translate(-215.2444103278578,-154.1250604140741);\n\tctx.lineTo(233.42,117);\n\tctx.translate(215.4638088704441,101.91763612297932);\n\tctx.rotate(0);\n\tctx.arc(0,0,23.45,0.6986325051618738,-1.3271919113376487,1);\n\tctx.rotate(0);\n\tctx.translate(-215.4638088704441,-101.91763612297932);\n\tctx.lineTo(182.17999999999998,69.50999999999999);\n\tctx.translate(184.58902611618552,59.80450706189859);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,1.814092071451713,2.5847019186672053,0);\n\tctx.rotate(0);\n\tctx.translate(-184.58902611618552,-59.80450706189859);\n\tctx.lineTo(154.89,31);\n\tctx.lineTo(154.89,31);\n\tctx.translate(135.1009782269782,43.2997811877639);\n\tctx.rotate(0);\n\tctx.arc(0,0,23.3,-0.5561114597066095,-1.5751301698454423,1);\n\tctx.rotate(0);\n\tctx.translate(-135.1009782269782,-43.2997811877639);\n\tctx.closePath();\n\tctx.fill();\n\tctx.stroke();\n\tctx.restore();\n\tctx.restore();\n};\n\nconst CG = globalThis.CraftGrid;\nCG.Nodes.Fusion.SVG.Register(\"rating\", ratingSVG, 17, 14.571428571428571, 2.4285714285714284); //NO I18N\n","export const rollupSVG = ctx => {\n    ctx.save();\n    ctx.strokeStyle=\"rgba(0,0,0,0)\";// No I18N\n    ctx.fillStyle=\"#555\"; // No I18N\n    ctx.miterLimit=4;\n    ctx.font=\"15px / 21.4286px ''\";// No I18N\n    ctx.font=\"   15px ''\";// No I18N\n    ctx.scale(0.25,0.25);\n    ctx.scale(0.25,0.25);\n    ctx.save();\n    ctx.font=\"   15px ''\";// No I18N\n    ctx.save();\n    ctx.font=\"   15px ''\";// No I18N\n    ctx.beginPath();\n    ctx.moveTo(131,261);\n    ctx.translate(131.11993468791488,150.88006531208512);\n    ctx.rotate(0);\n    ctx.arc(0,0,110.12,1.5718854542161274,3.1405035261685623,0);\n    ctx.rotate(0);\n    ctx.translate(-131.11993468791488,-150.88006531208512);\n    ctx.translate(111,151);\n    ctx.rotate(0);\n    ctx.arc(0,0,90,3.141592653589793,6.283185307179586,0);\n    ctx.rotate(0);\n    ctx.translate(-111,-151);\n    ctx.translate(131,151);\n    ctx.rotate(0);\n    ctx.arc(0,0,70,0,3.141592653589793,0);\n    ctx.rotate(0);\n    ctx.translate(-131,-151);\n    ctx.translate(111,151);\n    ctx.rotate(0);\n    ctx.arc(0,0,50,3.141592653589793,6.283185307179586,0);\n    ctx.rotate(0);\n    ctx.translate(-111,-151);\n    ctx.lineTo(161,151.25);\n    ctx.translate(131,151.12);\n    ctx.rotate(0);\n    ctx.arc(0,0,30.00028166534441,0.004333306210159557,3.1459259597999525,0);\n    ctx.rotate(0);\n    ctx.translate(-131,-151.12);\n    ctx.translate(111,150.99);\n    ctx.rotate(0);\n    ctx.arc(0,0,10,3.141592653589793,6.283185307179586,0);\n    ctx.rotate(0);\n    ctx.translate(-111,-150.99);\n    ctx.translate(131,150.99);\n    ctx.rotate(0);\n    ctx.arc(0,0,10,3.141592653589793,6.283185307179586,1);\n    ctx.rotate(0);\n    ctx.translate(-131,-150.99);\n    ctx.lineTo(141,150.82000000000002);\n    ctx.translate(111,150.91000000000003);\n    ctx.rotate(0);\n    ctx.arc(0,0,30.00013499969625,-0.0029999910000223597,3.1385926625897707,1);\n    ctx.rotate(0);\n    ctx.translate(-111,-150.91000000000003);\n    ctx.translate(131,151);\n    ctx.rotate(0);\n    ctx.arc(0,0,50,3.141592653589793,6.283185307179586,1);\n    ctx.rotate(0);\n    ctx.translate(-131,-151);\n    ctx.translate(111,151);\n    ctx.rotate(0);\n    ctx.arc(0,0,70,0,3.141592653589793,1);\n    ctx.rotate(0);\n    ctx.translate(-111,-151);\n    ctx.translate(131,151);\n    ctx.rotate(0);\n    ctx.arc(0,0,90,3.141592653589793,6.283185307179586,1);\n    ctx.rotate(0);\n    ctx.translate(-131,-151);\n    ctx.translate(110.88006531208512,151.11993468791488);\n    ctx.rotate(0);\n    ctx.arc(0,0,110.12,-0.0010891274211080753,-1.569707199373543,1);\n    ctx.rotate(0);\n    ctx.translate(-110.88006531208512,-151.11993468791488);\n    ctx.translate(111,31);\n    ctx.rotate(0);\n    ctx.arc(0,0,10,1.5707963267948966,4.71238898038469,0);\n    ctx.rotate(0);\n    ctx.translate(-111,-31);\n    ctx.bezierCurveTo(182.68,21,241,79.32,241,151);\n    ctx.translate(131.06001638150954,151.06001638150954);\n    ctx.rotate(0);\n    ctx.arc(0,0,109.94,-0.0005459012596735958,1.5713422280546052,0);\n    ctx.rotate(0);\n    ctx.translate(-131.06001638150954,-151.06001638150954);\n    ctx.closePath();\n    ctx.fill();\n    ctx.stroke();\n    ctx.restore();\n    ctx.restore();\n    ctx.restore();\n};\n\nconst CG = globalThis.CraftGrid;\nCG.Nodes.Fusion.SVG.Register(\"rollup\", rollupSVG, 17, 14.571428571428571, 2.4285714285714284); //NO I18N\n","export const checkBoxSVG = ctx => {\n    ctx.save();\n    ctx.strokeStyle=\"rgba(0,0,0,0)\";//No I18N\n    ctx.miterLimit=4;\n    ctx.font=\"15px / 21.4286px ''\";//No I18N\n    ctx.font=\"   15px \";//No I18N\n    ctx.scale(0.25,0.25);\n    ctx.scale(0.25,0.25);\n    ctx.save();\n    ctx.restore();\n    ctx.save();\n    ctx.font=\"   15px \";//No I18N\n    ctx.restore();\n    ctx.save();\n    ctx.font=\"   15px \";//No I18N\n    ctx.save();\n    ctx.font=\"   15px \";//No I18N\n    ctx.save();\n    ctx.fillStyle=\"#6dbe5b\";//No I18N\n    ctx.font=\"   15px \";//No I18N\n    ctx.beginPath();\n    ctx.moveTo(208.8,20);\n    ctx.lineTo(71.2,20);\n    ctx.bezierCurveTo(43,20,20,43,20,71.2);\n    ctx.lineTo(20,208.7);\n    ctx.bezierCurveTo(20,237,43,260,71.2,260);\n    ctx.lineTo(208.7,260);\n    ctx.bezierCurveTo(237,260,259.9,237,259.9,208.8);\n    ctx.lineTo(259.9,71.2);\n    ctx.bezierCurveTo(260,43,237,20,208.8,20);\n    ctx.closePath();\n    ctx.moveTo(212.9,91.1);\n    ctx.lineTo(128,201.1);\n    ctx.bezierCurveTo(126.3,203.4,123.6,204.79999999999998,120.8,205);\n    ctx.bezierCurveTo(120.6,205,120.3,205,120.1,205);\n    ctx.bezierCurveTo(117.5,205,115,204,113.1,202.1);\n    ctx.lineTo(68,158);\n    ctx.bezierCurveTo(64.1,154.1,64,147.8,67.8,143.9);\n    ctx.bezierCurveTo(71.7,140,78,139.9,81.89999999999999,143.70000000000002);\n    ctx.lineTo(119,180);\n    ctx.lineTo(197,78.9);\n    ctx.bezierCurveTo(200.4,74.5,206.7,73.7,211,77.10000000000001);\n    ctx.bezierCurveTo(215.5,80.5,216.3,86.7,212.9,91.1);\n    ctx.closePath();\n    ctx.fill();\n    ctx.stroke();\n    ctx.restore();\n    ctx.restore();\n    ctx.restore();\n    ctx.restore();\n};\n\nconst CG = globalThis.CraftGrid;\nCG.Nodes.Fusion.SVG.Register(\"rowCheckbox\", checkBoxSVG, 17, 17, 0); //NO I18N\n","export const scientificSVG = ctx => {\n\tctx.save();\n\tctx.strokeStyle=\"rgba(0,0,0,0)\"; // No I18N\n\tctx.fillStyle=\"#666666\"; // No I18N\n\tctx.miterLimit=4;\n\tctx.font=\"15px / 21.4286px ''\"; // No I18N\n\tctx.font=\"   15px \"; // No I18N\n\tctx.scale(0.25,0.25);\n\tctx.scale(0.25,0.25);\n\tctx.save();\n\tctx.font=\"   15px \"; // No I18N\n\tctx.beginPath();\n\tctx.moveTo(244.82,100.47);\n\tctx.lineTo(241.82,97.47);\n\tctx.lineTo(234.75,90.4);\n\tctx.lineTo(171.85,27.500000000000007);\n\tctx.lineTo(164.78,20.430000000000007);\n\tctx.lineTo(161.78,17.430000000000007);\n\tctx.translate(154.70999999999998,24.505000000000006);\n\tctx.rotate(0);\n\tctx.arc(0,0,10.002026044757137,-0.7857516451784127,2.3558410084113803,1);\n\tctx.rotate(0);\n\tctx.translate(-154.70999999999998,-24.505000000000006);\n\tctx.lineTo(150.64,34.580000000000005);\n\tctx.lineTo(38.21,147);\n\tctx.translate(77.82375491020242,184.3862450897976);\n\tctx.rotate(0);\n\tctx.arc(0,0,54.47,-2.38511512335846,-5.468866510616023,1);\n\tctx.rotate(0);\n\tctx.translate(-77.82375491020242,-184.3862450897976);\n\tctx.lineTo(227.68,111.61);\n\tctx.lineTo(230.68,114.61);\n\tctx.translate(237.6271179427254,107.41711794272537);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,2.338815468176368,-0.768019141381473,1);\n\tctx.rotate(0);\n\tctx.translate(-237.6271179427254,-107.41711794272537);\n\tctx.closePath();\n\tctx.moveTo(101.1,209.9);\n\tctx.translate(76.725,185.525);\n\tctx.rotate(0);\n\tctx.arc(0,0,34.47145558284419,0.7853981633974483,3.9269908169872414,0);\n\tctx.rotate(0);\n\tctx.translate(-76.725,-185.525);\n\tctx.lineTo(86.28999999999999,127.21000000000001);\n\tctx.translate(82.53114893127395,145.1402381089359);\n\tctx.rotate(0);\n\tctx.arc(0,0,18.32,-1.364151305323893,-1.090854383879595,0);\n\tctx.rotate(0);\n\tctx.translate(-82.53114893127395,-145.1402381089359);\n\tctx.bezierCurveTo(93.72999999999999,130.35000000000002,97.36999999999999,133.25000000000003,97.36999999999999,141.54000000000002);\n\tctx.bezierCurveTo(97.36999999999999,164.09000000000003,109.89999999999999,178.84000000000003,125.75999999999999,185.25000000000003);\n\tctx.closePath();\n\tctx.moveTo(142.18,168.83);\n\tctx.bezierCurveTo(125.07000000000001,167.63000000000002,117.37,154.53,117.37,141.54000000000002);\n\tctx.bezierCurveTo(117.37,128.74,112.19,120.95000000000002,107.84,116.67000000000002);\n\tctx.translate(85.47315731129542,139.55502453874024);\n\tctx.rotate(0);\n\tctx.arc(0,0,32,-0.7968487229962627,-1.0429761971641336,1);\n\tctx.rotate(0);\n\tctx.translate(-85.47315731129542,-139.55502453874024);\n\tctx.lineTo(164.78,48.72000000000001);\n\tctx.lineTo(213.54,97.47000000000001);\n\tctx.closePath();\n\tctx.fill();\n\tctx.stroke();\n\tctx.restore();\n\tctx.save();\n\tctx.font=\"   15px \"; // No I18N\n\tctx.beginPath();\n\tctx.moveTo(148.33,88);\n\tctx.translate(148.32349860059665,96.89999762538204);\n\tctx.rotate(0);\n\tctx.arc(0,0,8.9,-1.5700658324149441,-0.7848814372268379,1);\n\tctx.rotate(0);\n\tctx.translate(-148.32349860059665,-96.89999762538204);\n\tctx.translate(148.34840222446235,96.8399808460276);\n\tctx.rotate(0);\n\tctx.arc(0,0,8.84,-0.7820692417435753,-1.5728780278982062,1);\n\tctx.rotate(0);\n\tctx.translate(-148.34840222446235,-96.8399808460276);\n\tctx.closePath();\n\tctx.fill();\n\tctx.stroke();\n\tctx.restore();\n\tctx.save();\n\tctx.font=\"   15px \"; // No I18N\n\tctx.beginPath();\n\tctx.moveTo(145.9,122);\n\tctx.translate(145.90764046685723,130.88999671671854);\n\tctx.rotate(0);\n\tctx.arc(0,0,8.89,-1.5716557719914999,-0.7860056217357723,1);\n\tctx.rotate(0);\n\tctx.translate(-145.90764046685723,-130.88999671671854);\n\tctx.translate(145.90764046685723,130.88999671671854);\n\tctx.rotate(0);\n\tctx.arc(0,0,8.89,-0.7860056217357724,-1.5716557719914999,1);\n\tctx.rotate(0);\n\tctx.translate(-145.90764046685723,-130.88999671671854);\n\tctx.closePath();\n\tctx.fill();\n\tctx.stroke();\n\tctx.restore();\n\tctx.save();\n\tctx.font=\"   15px \"; // No I18N\n\tctx.beginPath();\n\tctx.moveTo(226.75,27.79);\n\tctx.translate(226.7565013994034,18.890002374617968);\n\tctx.rotate(0);\n\tctx.arc(0,0,8.9,1.5715268211748492,2.3567112163629553,1);\n\tctx.rotate(0);\n\tctx.translate(-226.7565013994034,-18.890002374617968);\n\tctx.translate(226.73990222280335,18.930005754240263);\n\tctx.rotate(0);\n\tctx.arc(0,0,8.86,2.3585814149621758,1.569656622575629,1);\n\tctx.rotate(0);\n\tctx.translate(-226.73990222280335,-18.930005754240263);\n\tctx.closePath();\n\tctx.fill();\n\tctx.stroke();\n\tctx.restore();\n\tctx.save();\n\tctx.font=\"   15px \"; // No I18N\n\tctx.beginPath();\n\tctx.moveTo(226.75,61);\n\tctx.translate(226.7423595331428,52.11000328328147);\n\tctx.rotate(0);\n\tctx.arc(0,0,8.89,1.5699368815982941,2.355587031854022,1);\n\tctx.rotate(0);\n\tctx.translate(-226.7423595331428,-52.11000328328147);\n\tctx.translate(226.72581304711602,52.15003305140013);\n\tctx.rotate(0);\n\tctx.arc(0,0,8.85,2.35746057908609,1.5680633343662258,1);\n\tctx.rotate(0);\n\tctx.translate(-226.72581304711602,-52.15003305140013);\n\tctx.closePath();\n\tctx.fill();\n\tctx.stroke();\n\tctx.restore();\n\tctx.restore();\n};\n\nconst CG = globalThis.CraftGrid;\nCG.Nodes.Fusion.SVG.Register(\"scientific\", scientificSVG, 17, 14.571428571428571, 2.4285714285714284); //NO I18N\n","export const sentimentSVG = ctx => {\n\tctx.save();\n\tctx.strokeStyle=\"rgba(0,0,0,0)\";\n\tctx.fillStyle=\"#555\"; // No I18N\n\tctx.miterLimit=4;\n\tctx.font=\"15px ''\";\n\tctx.font=\"   15px ''\";\n\tctx.scale(0.25,0.25);\n\tctx.scale(0.25,0.25);\n\tctx.save();\n\tctx.font=\"   15px ''\";\n\tctx.beginPath();\n\tctx.moveTo(136.88,136.57);\n\tctx.bezierCurveTo(138.13,141.28,142.4,144.75,147.5,144.75);\n\tctx.bezierCurveTo(153.58,144.75,158.5,139.83,158.5,133.75);\n\tctx.bezierCurveTo(158.5,127.66999999999999,153.69,122.87,147.71,122.76);\n\tctx.bezierCurveTo(154.55,111.52000000000001,158.5,98.34,158.5,84.25);\n\tctx.bezierCurveTo(158.5,43.31,125.19,10,84.25,10);\n\tctx.bezierCurveTo(43.31,10,10,43.31,10,84.25);\n\tctx.bezierCurveTo(10,125.19,43.31,158.5,84.25,158.5);\n\tctx.bezierCurveTo(104.8,158.5,123.42,150.11,136.88,136.57);\n\tctx.closePath();\n\tctx.moveTo(84.25,142);\n\tctx.bezierCurveTo(52.41,142,26.5,116.09,26.5,84.25);\n\tctx.bezierCurveTo(26.5,52.41,52.41,26.5,84.25,26.5);\n\tctx.bezierCurveTo(116.09,26.5,142,52.41,142,84.25);\n\tctx.bezierCurveTo(142,116.09,116.09,142,84.25,142);\n\tctx.closePath();\n\tctx.fill();\n\tctx.stroke();\n\tctx.restore();\n\tctx.save();\n\tctx.font=\"   15px ''\";\n\tctx.beginPath();\n\tctx.moveTo(84.25,95.25);\n\tctx.bezierCurveTo(74.58,95.25,65.74,99.74,59.989999999999995,107.57);\n\tctx.bezierCurveTo(57.83,110.50999999999999,57.51,114.36999999999999,59.169999999999995,117.63999999999999);\n\tctx.bezierCurveTo(60.82999999999999,120.90999999999998,64.11999999999999,122.93999999999998,67.78,122.93999999999998);\n\tctx.lineTo(100.72,122.93999999999998);\n\tctx.bezierCurveTo(104.37,122.93999999999998,107.67,120.90999999999998,109.32,117.63999999999999);\n\tctx.bezierCurveTo(110.97,114.36999999999999,110.66,110.51999999999998,108.5,107.57);\n\tctx.bezierCurveTo(102.75,99.74,93.91,95.25,84.24,95.25);\n\tctx.closePath();\n\tctx.moveTo(70.68,111.94);\n\tctx.bezierCurveTo(74.25,108.3,79.06,106.25,84.25,106.25);\n\tctx.bezierCurveTo(89.44,106.25,94.24,108.29,97.82,111.94);\n\tctx.lineTo(70.69,111.94);\n\tctx.closePath();\n\tctx.fill();\n\tctx.stroke();\n\tctx.restore();\n\tctx.save();\n\tctx.font=\"   15px ''\";\n\tctx.beginPath();\n\tctx.arc(109,67.75,12.38,0,6.283185307179586,false);\n\tctx.closePath();\n\tctx.fill();\n\tctx.stroke();\n\tctx.restore();\n\tctx.save();\n\tctx.font=\"   15px ''\";\n\tctx.beginPath();\n\tctx.arc(59.5,67.75,12.38,0,6.283185307179586,false);\n\tctx.closePath();\n\tctx.fill();\n\tctx.stroke();\n\tctx.restore();\n\tctx.save();\n\tctx.font=\"   15px ''\";\n\tctx.beginPath();\n\tctx.moveTo(180.46,76.45);\n\tctx.bezierCurveTo(175.93,75.95,171.85000000000002,79.22,171.36,83.75);\n\tctx.bezierCurveTo(170.86,88.28,174.13000000000002,92.35,178.66000000000003,92.85);\n\tctx.bezierCurveTo(207.93000000000004,96.08,230.00000000000003,120.75,230.00000000000003,150.25);\n\tctx.bezierCurveTo(230.00000000000003,182.09,204.09000000000003,208,172.25000000000003,208);\n\tctx.bezierCurveTo(148.26000000000002,208,126.51000000000002,192.9,118.12000000000003,170.44);\n\tctx.bezierCurveTo(116.53000000000003,166.17,111.77000000000004,164,107.51000000000003,165.59);\n\tctx.bezierCurveTo(103.24000000000004,167.18,101.07000000000004,171.93,102.66000000000004,176.2);\n\tctx.bezierCurveTo(113.44000000000004,205.08999999999997,141.40000000000003,224.5,172.24000000000004,224.5);\n\tctx.bezierCurveTo(213.18000000000004,224.5,246.49000000000004,191.19,246.49000000000004,150.25);\n\tctx.bezierCurveTo(246.49000000000004,112.33,218.10000000000002,80.6,180.45000000000005,76.45);\n\tctx.closePath();\n\tctx.fill();\n\tctx.stroke();\n\tctx.restore();\n\tctx.save();\n\tctx.font=\"   15px ''\";\n\tctx.beginPath();\n\tctx.moveTo(147.17,166.55);\n\tctx.bezierCurveTo(145.51999999999998,169.82000000000002,145.82999999999998,173.67000000000002,147.98999999999998,176.61);\n\tctx.bezierCurveTo(153.73999999999998,184.44000000000003,162.57999999999998,188.93,172.24999999999997,188.93);\n\tctx.bezierCurveTo(181.91999999999996,188.93,190.75999999999996,184.44,196.50999999999996,176.61);\n\tctx.bezierCurveTo(198.66999999999996,173.67000000000002,198.98999999999995,169.81,197.32999999999996,166.55);\n\tctx.bezierCurveTo(195.67999999999995,163.28,192.37999999999997,161.25,188.71999999999997,161.25);\n\tctx.lineTo(155.77999999999997,161.25);\n\tctx.bezierCurveTo(152.12999999999997,161.25,148.82999999999998,163.28,147.16999999999996,166.55);\n\tctx.closePath();\n\tctx.moveTo(185.81,172.25);\n\tctx.bezierCurveTo(182.24,175.89,177.43,177.94,172.24,177.94);\n\tctx.bezierCurveTo(167.05,177.94,162.25,175.9,158.67000000000002,172.25);\n\tctx.lineTo(185.8,172.25);\n\tctx.closePath();\n\tctx.fill();\n\tctx.stroke();\n\tctx.restore();\n\tctx.save();\n\tctx.font=\"   15px ''\";\n\tctx.beginPath();\n\tctx.arc(197,133.75,11,0,6.283185307179586,false);\n\tctx.closePath();\n\tctx.fill();\n\tctx.stroke();\n\tctx.restore();\n\tctx.restore();\n\t};\t\n\nconst CG = globalThis.CraftGrid;\nCG.Nodes.Fusion.SVG.Register(\"SENTIMENT\", sentimentSVG, 17, 14.571428571428571, 2.4285714285714284); //NO I18N\n","export const sselectSVG = ctx => {\n\tctx.save();\n\tctx.strokeStyle=\"rgba(0,0,0,0)\"; // No I18N\n\tctx.fillStyle=\"#555\"; // No I18N\n\tctx.miterLimit=4;\n\tctx.font=\"15px / 21.4286px ''\"; // No I18N\n\tctx.font=\"   15px \"; // No I18N\n\tctx.scale(0.25,0.25);\n\tctx.scale(0.25,0.25);\n\tctx.save();\n\tctx.font=\"   15px \"; // No I18N\n\tctx.beginPath();\n\tctx.moveTo(125,5);\n\tctx.translate(125,125);\n\tctx.rotate(0);\n\tctx.arc(0,0,120,-1.5707963267948966,0,1);\n\tctx.rotate(0);\n\tctx.translate(-125,-125);\n\tctx.translate(124.87007026446814,125.12992973553186);\n\tctx.rotate(0);\n\tctx.arc(0,0,120.13,-0.0010815762994849292,-1.5697147504952973,1);\n\tctx.rotate(0);\n\tctx.translate(-124.87007026446814,-125.12992973553186);\n\tctx.closePath();\n\tctx.moveTo(125,225);\n\tctx.translate(125,125);\n\tctx.rotate(0);\n\tctx.arc(0,0,100,1.5707963267948966,0,0);\n\tctx.rotate(0);\n\tctx.translate(-125,-125);\n\tctx.translate(124.89006036722853,124.89006036722853);\n\tctx.rotate(0);\n\tctx.arc(0,0,100.11,0.0010981885412102439,1.5696981382535045,0);\n\tctx.rotate(0);\n\tctx.translate(-124.89006036722853,-124.89006036722853);\n\tctx.closePath();\n\tctx.fill();\n\tctx.stroke();\n\tctx.restore();\n\tctx.save();\n\tctx.font=\"   15px \";// No I18N\n\tctx.beginPath();\n\tctx.moveTo(125,73.75);\n\tctx.translate(125,125);\n\tctx.rotate(0);\n\tctx.arc(0,0,51.25,-1.5707963267948966,0,1);\n\tctx.rotate(0);\n\tctx.translate(-125,-125);\n\tctx.translate(124.94003503993046,125.05996496006954);\n\tctx.rotate(0);\n\tctx.arc(0,0,51.31,-0.0011686800568706773,-1.569627646737961,1);\n\tctx.rotate(0);\n\tctx.translate(-124.94003503993046,-125.05996496006954);\n\tctx.closePath();\n\tctx.moveTo(125,156.25);\n\tctx.translate(125,125);\n\tctx.rotate(0);\n\tctx.arc(0,0,31.25,1.5707963267948966,0,0);\n\tctx.rotate(0);\n\tctx.translate(-125,-125);\n\tctx.translate(124.96002553465216,124.96002553465216);\n\tctx.rotate(0);\n\tctx.arc(0,0,31.29,0.0012775479776260272,1.5695187788171532,0);\n\tctx.rotate(0);\n\tctx.translate(-124.96002553465216,-124.96002553465216);\n\tctx.closePath();\n\tctx.fill();\n\tctx.stroke();\n\tctx.restore();\n\tctx.restore();\n};\n\nconst CG = globalThis.CraftGrid;\nCG.Nodes.Fusion.SVG.Register(\"sSelect\", sselectSVG, 17, 14.571428571428571, 2.4285714285714284); //NO I18N\n","export const symbolSVG = ctx => {\n\tctx.save();\n\tctx.strokeStyle=\"rgba(0,0,0,0)\"; // No I18N\n\tctx.fillStyle=\"#666666\"; // No I18N\n\tctx.miterLimit=4;\n\tctx.font=\"15px / 21.4286px ''\"; // No I18N\n\tctx.font=\"   15px \"; // No I18N\n\tctx.scale(0.25,0.25);\n\tctx.scale(0.25,0.25);\n\tctx.save();\n\tctx.font=\"   15px \"; // No I18N\n\tctx.beginPath();\n\tctx.moveTo(230.78,66.48);\n\tctx.translate(155.74873530331917,108.11730800636153);\n\tctx.rotate(0);\n\tctx.arc(0,0,85.81,-0.506622481003407,-1.0891402630302978,1);\n\tctx.rotate(0);\n\tctx.translate(-155.74873530331917,-108.11730800636153);\n\tctx.quadraticCurveTo(172.76,20,143.65,20);\n\tctx.quadraticCurveTo(110,20,83.35,34.49);\n\tctx.translate(132.41519047091865,125.05272458386216);\n\tctx.rotate(0);\n\tctx.arc(0,0,103,-2.0673077036216863,-2.648197659234258,1);\n\tctx.rotate(0);\n\tctx.translate(-132.41519047091865,-125.05272458386216);\n\tctx.quadraticCurveTo(26.700000000000003,103.57,26.700000000000003,138.59);\n\tctx.quadraticCurveTo(26.700000000000003,186.47,54.47,213.24);\n\tctx.quadraticCurveTo(82.24,240.01000000000002,131.85,240);\n\tctx.translate(133.1115178317307,76.92487935690428);\n\tctx.rotate(0);\n\tctx.arc(0,0,163.08,1.5785319805441465,1.2502861622412793,1);\n\tctx.rotate(0);\n\tctx.translate(-133.1115178317307,-76.92487935690428);\n\tctx.translate(180.05103916249337,219.3749999317208);\n\tctx.rotate(0);\n\tctx.arc(0,0,13.1,1.2250999138311003,-0.012595747691099168,1);\n\tctx.rotate(0);\n\tctx.translate(-180.05103916249337,-219.3749999317208);\n\tctx.lineTo(193.15,218.1);\n\tctx.lineTo(193.15,218.1);\n\tctx.translate(184.51,218.09999999999997);\n\tctx.rotate(0);\n\tctx.arc(0,0,8.64,0,-1.5707963267949,1);\n\tctx.rotate(0);\n\tctx.translate(-184.51,-218.09999999999997);\n\tctx.lineTo(184.38,209.45999999999998);\n\tctx.bezierCurveTo(166.06,215.45999999999998,148.38,218.52999999999997,131.31,218.52999999999997);\n\tctx.quadraticCurveTo(92.4,218.52999999999997,71.62,197.59999999999997);\n\tctx.quadraticCurveTo(50.84,176.66999999999996,50.82000000000001,137.76999999999998);\n\tctx.quadraticCurveTo(50.82000000000001,108.76999999999998,61.96000000000001,86.85999999999999);\n\tctx.translate(132.18735879833451,121.73472116318621);\n\tctx.rotate(0);\n\tctx.arc(0,0,78.41,-2.680670857730767,-2.0762629604246774,0);\n\tctx.rotate(0);\n\tctx.translate(-132.18735879833451,-121.73472116318621);\n\tctx.quadraticCurveTo(115.34,41.34,143.92000000000002,41.33);\n\tctx.quadraticCurveTo(166.33,41.33,183.63000000000002,50.72);\n\tctx.translate(153.03703078825478,107.92303431470404);\n\tctx.rotate(0);\n\tctx.arc(0,0,64.87,-1.0796871366872687,-0.4884899212589837,0);\n\tctx.rotate(0);\n\tctx.translate(-153.03703078825478,-107.92303431470404);\n\tctx.quadraticCurveTo(219.71000000000004,94.86,219.71000000000004,117.79);\n\tctx.quadraticCurveTo(219.71000000000004,139,213.48000000000005,152.67000000000002);\n\tctx.quadraticCurveTo(207.25000000000006,166.34000000000003,196.64000000000004,166.35000000000002);\n\tctx.quadraticCurveTo(182.64000000000004,166.35000000000002,182.69000000000005,144.89000000000001);\n\tctx.lineTo(182.69000000000005,141.67000000000002);\n\tctx.lineTo(184.69000000000005,99.88000000000002);\n\tctx.translate(159.99734752900997,98.7175397009325);\n\tctx.rotate(0);\n\tctx.arc(0,0,24.72,0.047042441837279715,-1.4249459423209536,1);\n\tctx.rotate(0);\n\tctx.translate(-159.99734752900997,-98.7175397009325);\n\tctx.translate(139.7756145531658,229.60523052153746);\n\tctx.rotate(0);\n\tctx.arc(0,0,157.16,-1.4186808096224297,-1.5630055541247931,1);\n\tctx.rotate(0);\n\tctx.translate(-139.7756145531658,-229.60523052153746);\n\tctx.quadraticCurveTo(112.95,72.45,96.33,89.69);\n\tctx.quadraticCurveTo(79.71,106.92999999999999,79.66,134.56);\n\tctx.quadraticCurveTo(79.66,158.56,92.21,172.66);\n\tctx.quadraticCurveTo(104.75999999999999,186.76,126.61999999999999,186.74);\n\tctx.translate(127.31390507311207,141.8653646727964);\n\tctx.rotate(0);\n\tctx.arc(0,0,44.88,1.586258285858685,1.0829566212838442,1);\n\tctx.rotate(0);\n\tctx.translate(-127.31390507311207,-141.8653646727964);\n\tctx.translate(126.99265672700915,143.1783122166577);\n\tctx.rotate(0);\n\tctx.arc(0,0,43.88,1.0624634599974037,0.5421642260567869,1);\n\tctx.rotate(0);\n\tctx.translate(-126.99265672700915,-143.1783122166577);\n\tctx.lineTo(165.70999999999998,163.75000000000003);\n\tctx.lineTo(166.18999999999997,165.82000000000002);\n\tctx.translate(192.65046367184257,158.94108567642422);\n\tctx.rotate(0);\n\tctx.arc(0,0,27.34,2.8872531352196846,2.19597242840782,1);\n\tctx.rotate(0);\n\tctx.translate(-192.65046367184257,-158.94108567642422);\n\tctx.translate(194.30747064078224,156.27787100206848);\n\tctx.rotate(0);\n\tctx.arc(0,0,30.47,2.188915619906341,1.5480661332697379,1);\n\tctx.rotate(0);\n\tctx.translate(-194.30747064078224,-156.27787100206848);\n\tctx.translate(195.5471438609861,147.74383821969928);\n\tctx.rotate(0);\n\tctx.arc(0,0,39,1.5848261168182136,0.8835225783150682,1);\n\tctx.rotate(0);\n\tctx.translate(-195.5471438609861,-147.74383821969928);\n\tctx.quadraticCurveTo(231.23,169.04000000000002,237.29,153.14000000000001);\n\tctx.translate(145.1080886588714,119.32031162922547);\n\tctx.rotate(0);\n\tctx.arc(0,0,98.19,0.35163272428771036,-0.012835790177460615,1);\n\tctx.rotate(0);\n\tctx.translate(-145.1080886588714,-119.32031162922547);\n\tctx.quadraticCurveTo(243.32,88.81,230.78,66.48);\n\tctx.closePath();\n\tctx.moveTo(158.26999999999998,127.05000000000001);\n\tctx.quadraticCurveTo(155.85,166.36,129.96999999999997,166.35000000000002);\n\tctx.quadraticCurveTo(105.40999999999997,166.35000000000002,105.41999999999997,135.10000000000002);\n\tctx.quadraticCurveTo(105.41999999999997,115.50000000000003,115.00999999999998,104.10000000000002);\n\tctx.quadraticCurveTo(124.59999999999998,92.70000000000002,141.76999999999998,92.70000000000002);\n\tctx.translate(141.03575356522532,168.20643007170332);\n\tctx.rotate(0);\n\tctx.arc(0,0,75.51,-1.5610723431355231,-1.4599317443734532,0);\n\tctx.rotate(0);\n\tctx.translate(-141.03575356522532,-168.20643007170332);\n\tctx.bezierCurveTo(151.91,93.69000000000001,159.39,95.99000000000001,159.39,104.68);\n\tctx.bezierCurveTo(159.39,104.75,159.39,104.76,159.39,104.83000000000001);\n\tctx.closePath();\n\tctx.fill();\n\tctx.stroke();\n\tctx.restore();\n\tctx.restore();\n};\n\nconst CG = globalThis.CraftGrid;\nCG.Nodes.Fusion.SVG.Register(\"symbol\", symbolSVG, 17, 14.571428571428571, 2.4285714285714284); //NO I18N\n","export const textSVG = ctx => {\n\tctx.save();\n\tctx.strokeStyle=\"rgba(0,0,0,0)\"; // No I18N\n\tctx.fillStyle=\"#555\"; // No I18N\n\tctx.miterLimit=4;\n\tctx.font=\"15px / 21.4286px ''\"; // No I18N\n\tctx.font=\"15px\"; // No I18N\n\tctx.scale(0.25,0.25);\n\tctx.scale(0.25,0.25);\n\tctx.save();\n\tctx.font=\"15px\"; // No I18N\n\tctx.beginPath();\n\tctx.moveTo(69.28,241.21);\n\tctx.lineTo(35,241.21);\n\tctx.lineTo(35,207);\n\tctx.translate(28,207);\n\tctx.rotate(0);\n\tctx.arc(0,0,7,0,3.141592653589793,1);\n\tctx.rotate(0);\n\tctx.translate(-28,-207);\n\tctx.lineTo(21,248.25);\n\tctx.translate(28,248.25);\n\tctx.rotate(0);\n\tctx.arc(0,0,7,3.141592653589793,1.5707963267948966,1);\n\tctx.rotate(0);\n\tctx.translate(-28,-248.25);\n\tctx.lineTo(69.28,255.25);\n\tctx.translate(69.28,248.25);\n\tctx.rotate(0);\n\tctx.arc(0,0,7,1.5707963267948966,4.71238898038469,1);\n\tctx.rotate(0);\n\tctx.translate(-69.28,-248.25);\n\tctx.closePath();\n\tctx.fill();\n\tctx.stroke();\n\tctx.restore();\n\tctx.save();\n\tctx.font=\"15px\";  // No I18N\n\tctx.beginPath();\n\tctx.moveTo(248,200);\n\tctx.translate(248,207);\n\tctx.rotate(0);\n\tctx.arc(0,0,7,-1.5707963267948966,-3.141592653589793,1);\n\tctx.rotate(0);\n\tctx.translate(-248,-207);\n\tctx.lineTo(241,241.25);\n\tctx.lineTo(206.78,241.25);\n\tctx.translate(206.78,248.25);\n\tctx.rotate(0);\n\tctx.arc(0,0,7,-1.5707963267948966,1.5707963267948966,1);\n\tctx.rotate(0);\n\tctx.translate(-206.78,-248.25);\n\tctx.lineTo(248,255.25);\n\tctx.translate(248,248.25);\n\tctx.rotate(0);\n\tctx.arc(0,0,7,1.5707963267948966,0,1);\n\tctx.rotate(0);\n\tctx.translate(-248,-248.25);\n\tctx.lineTo(255,207);\n\tctx.translate(248,207);\n\tctx.rotate(0);\n\tctx.arc(0,0,7,0,-1.5707963267948966,1);\n\tctx.rotate(0);\n\tctx.translate(-248,-207);\n\tctx.closePath();\n\tctx.fill();\n\tctx.stroke();\n\tctx.restore();\n\tctx.save();\n\tctx.font=\"15px\"; // No I18N\n\tctx.beginPath();\n\tctx.moveTo(248,21.21);\n\tctx.lineTo(206.78,21.21);\n\tctx.translate(206.78,28.21);\n\tctx.rotate(0);\n\tctx.arc(0,0,7,-1.5707963267948966,1.5707963267948966,1);\n\tctx.rotate(0);\n\tctx.translate(-206.78,-28.21);\n\tctx.lineTo(241,35.21);\n\tctx.lineTo(241,69.46);\n\tctx.translate(248,69.46);\n\tctx.rotate(0);\n\tctx.arc(0,0,7,3.141592653589793,6.283185307179586,1);\n\tctx.rotate(0);\n\tctx.translate(-248,-69.46);\n\tctx.lineTo(255,28.21);\n\tctx.translate(248,28.21);\n\tctx.rotate(0);\n\tctx.arc(0,0,7,0,-1.5707963267948966,1);\n\tctx.rotate(0);\n\tctx.translate(-248,-28.21);\n\tctx.closePath();\n\tctx.fill();\n\tctx.stroke();\n\tctx.restore();\n\tctx.save();\n\tctx.font=\"15px\"; // No I18N\n\tctx.beginPath();\n\tctx.moveTo(28,76.46);\n\tctx.translate(28,69.46);\n\tctx.rotate(0);\n\tctx.arc(0,0,7,1.5707963267948966,0,1);\n\tctx.rotate(0);\n\tctx.translate(-28,-69.46);\n\tctx.lineTo(35,35.21);\n\tctx.lineTo(69.28,35.21);\n\tctx.translate(69.28,28.21);\n\tctx.rotate(0);\n\tctx.arc(0,0,7,1.5707963267948966,4.71238898038469,1);\n\tctx.rotate(0);\n\tctx.translate(-69.28,-28.21);\n\tctx.lineTo(28,21.21);\n\tctx.translate(28,28.21);\n\tctx.rotate(0);\n\tctx.arc(0,0,7,-1.5707963267948966,-3.141592653589793,1);\n\tctx.rotate(0);\n\tctx.translate(-28,-28.21);\n\tctx.lineTo(21,69.46);\n\tctx.translate(28,69.46);\n\tctx.rotate(0);\n\tctx.arc(0,0,7,3.141592653589793,1.5707963267948966,1);\n\tctx.rotate(0);\n\tctx.translate(-28,-69.46);\n\tctx.closePath();\n\tctx.fill();\n\tctx.stroke();\n\tctx.restore();\n\tctx.save();\n\tctx.font=\"15px\"; // No I18N\n\tctx.beginPath();\n\tctx.moveTo(203,93.52);\n\tctx.lineTo(203,79.77);\n\tctx.translate(193,79.77);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,0,-1.5707963267948966,1);\n\tctx.rotate(0);\n\tctx.translate(-193,-79.77);\n\tctx.lineTo(83,69.77);\n\tctx.translate(83,79.77);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,-1.5707963267948966,-3.141592653589793,1);\n\tctx.rotate(0);\n\tctx.translate(-83,-79.77);\n\tctx.lineTo(73,93.52);\n\tctx.translate(83,93.52);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,3.141592653589793,6.283185307179586,1);\n\tctx.rotate(0);\n\tctx.translate(-83,-93.52);\n\tctx.lineTo(93,89.77);\n\tctx.lineTo(128,89.77);\n\tctx.lineTo(128,186.64999999999998);\n\tctx.lineTo(124.25,186.64999999999998);\n\tctx.translate(124.25,196.64999999999998);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,-1.5707963267948966,1.5707963267948966,1);\n\tctx.rotate(0);\n\tctx.translate(-124.25,-196.64999999999998);\n\tctx.lineTo(151.75,206.64999999999998);\n\tctx.translate(151.75,196.64999999999998);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,1.5707963267948966,4.71238898038469,1);\n\tctx.rotate(0);\n\tctx.translate(-151.75,-196.64999999999998);\n\tctx.lineTo(148,186.64999999999998);\n\tctx.lineTo(148,89.77);\n\tctx.lineTo(183,89.77);\n\tctx.lineTo(183,93.52);\n\tctx.translate(193,93.52);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,3.141592653589793,6.283185307179586,1);\n\tctx.rotate(0);\n\tctx.translate(-193,-93.52);\n\tctx.closePath();\n\tctx.fill();\n\tctx.stroke();\n\tctx.restore();\n\tctx.restore();\t};\n\nconst CG = globalThis.CraftGrid;\nCG.Nodes.Fusion.SVG.Register(\"text\", textSVG, 17, 17, 0); //NO I18N\n","export const urlSVG = ctx => {\n\tctx.save();\n\tctx.strokeStyle=\"rgba(0,0,0,0)\"; // No I18N\n\tctx.fillStyle=\"#555\"; // No I18N\n\tctx.miterLimit=4;\n\tctx.font=\"15px / 21.4286px ''\"; // No I18N\n\tctx.font=\"   15px \"; // No I18N\n\tctx.scale(0.25,0.25);\n\tctx.scale(0.25,0.25);\n\tctx.save();\n\tctx.font=\"   15px \"; // No I18N\n\tctx.beginPath();\n\tctx.moveTo(224.91,40.09);\n\tctx.translate(176.41,88.67572321165963);\n\tctx.rotate(0);\n\tctx.arc(0,0,68.65,-0.7862811273034328,-2.35531152628636,1);\n\tctx.rotate(0);\n\tctx.translate(-176.41,-88.67572321165963);\n\tctx.lineTo(104.26,63.75);\n\tctx.translate(111.3300001168184,70.82499988326417);\n\tctx.rotate(0);\n\tctx.arc(0,0,10.002026044757136,-2.355841024922812,-5.497433648710283,1);\n\tctx.rotate(0);\n\tctx.translate(-111.3300001168184,-70.82499988326417);\n\tctx.lineTo(142.07,54.230000000000004);\n\tctx.translate(176.71274562336637,88.28725437663363);\n\tctx.rotate(0);\n\tctx.arc(0,0,48.58,-2.364716718318091,-5.489264915656399,0);\n\tctx.rotate(0);\n\tctx.translate(-176.71274562336637,-88.28725437663363);\n\tctx.lineTo(187.1,146.6);\n\tctx.translate(194.047117942726,153.79288205727403);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,-2.3388154681764552,0.7680191413815582,1);\n\tctx.rotate(0);\n\tctx.translate(-194.047117942726,-153.79288205727403);\n\tctx.lineTo(224.91000000000003,137.07);\n\tctx.translate(176.4515270566643,88.57);\n\tctx.rotate(0);\n\tctx.arc(0,0,68.56,0.7858264607175733,-0.7858264607175736,1);\n\tctx.rotate(0);\n\tctx.translate(-176.4515270566643,-88.57);\n\tctx.closePath();\n\tctx.fill();\n\tctx.stroke();\n\tctx.restore();\n\tctx.save();\n\tctx.font=\"   15px \"; // No I18N\n\tctx.beginPath();\n\tctx.moveTo(151.6,182.1);\n\tctx.lineTo(127.92999999999999,205.76999999999998);\n\tctx.translate(93.2872543766336,171.71274562336637);\n\tctx.rotate(0);\n\tctx.arc(0,0,48.58,0.7768759352717024,-2.3476722620666055,0);\n\tctx.rotate(0);\n\tctx.translate(-93.2872543766336,-171.71274562336637);\n\tctx.lineTo(82.9,113.4);\n\tctx.translate(75.70711794272559,106.45288205727444);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,0.7680191413815007,-2.338815468176401,1);\n\tctx.rotate(0);\n\tctx.translate(-75.70711794272559,-106.45288205727444);\n\tctx.lineTo(45.09,122.93);\n\tctx.translate(93.59,171.43);\n\tctx.rotate(0);\n\tctx.arc(0,0,68.58935777509511,-2.356194490192345,0.7853981633974483,1);\n\tctx.rotate(0);\n\tctx.translate(-93.59,-171.43);\n\tctx.lineTo(165.76,196.27);\n\tctx.translate(158.67999988334662,189.18500011657108);\n\tctx.rotate(0);\n\tctx.arc(0,0,10.01616817949859,0.785751129621797,-2.3558414906479865,1);\n\tctx.rotate(0);\n\tctx.translate(-158.67999988334662,-189.18500011657108);\n\tctx.closePath();\n\tctx.fill();\n\tctx.stroke();\n\tctx.restore();\n\tctx.save();\n\tctx.font=\"   15px \"; // No I18N\n\tctx.beginPath();\n\tctx.moveTo(160.21,90.65);\n\tctx.lineTo(95.65,155.21);\n\tctx.translate(102.59711794272579,162.40288205727424);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,-2.3388154681764255,0.7680191413815307,1);\n\tctx.rotate(0);\n\tctx.translate(-102.59711794272579,-162.40288205727424);\n\tctx.lineTo(174.35000000000002,104.79000000000002);\n\tctx.translate(167.40288205727464,97.5971179427254);\n\tctx.rotate(0);\n\tctx.arc(0,0,10,0.8027771854134251,3.9096117949712665,1);\n\tctx.rotate(0);\n\tctx.translate(-167.40288205727464,-97.5971179427254);\n\tctx.closePath();\n\tctx.fill();\n\tctx.stroke();\n\tctx.restore();\n\tctx.restore();\n};\n\nconst CG = globalThis.CraftGrid;\nCG.Nodes.Fusion.SVG.Register(\"url\", urlSVG, 17, 14.571428571428571, 2.4285714285714284); //NO I18N\n"],"names":["EMAIL_REGEX","PAGE_TYPE","Node","value","node","index","Tree","func","traverseDFS","array","getPath","i","length","KeyContext","EventEmitter","context","activeState","activeBaseID","getActiveBaseID","activeTableID","activeViewID","view","activeViewType","activeViewKeyContext","ViewsKeyContextEntries","dgInteracter","KeyBoardEvents","focusedCell","fieldID","keyContext","getGridFieldTypeKeyContextByFieldID","checkActiveSecondaryContext","KeyMapping","name","chainNodes","entries","root","getActiveTableID","getActiveViewID","activeSecondaryContext","secondaryContextEntries","getFieldType","Key","Entry","Events","Browser","getContextEntry","Pages","Tables","Views","GridView","Print","FieldSelection","FieldEditor","CellSelection","CellEditor","FieldTypeComponents","LongTextFieldComponent","DateFieldComponent","EditFieldPanelSelectionInput","GridFindAnItemComponentMS","GridFindAnItemComponentSA","GridRating","GridCheckbox","GridLinkFieldMultiSelect","GridLinkFieldSingleSelect","RecordViewFieldTypeComponents","FilterFieldTypeComponents","FieldTypeComponentsForFilter","addEntitiesDialog","automationSidePanel","versionHistorySidePanel","sidePanelModalDialog","dropdownSearch","baseShareSidePanel","baseShareCollaboratorSidePanelSearchFocus","nonEditableField","editableField","shareMakeSuggestion","shareAddMemberPanel","profile","GridManageFields","MenuWrapper","GalleryView","GalleryBuilder","CalendarView","ListView","KanbanView","KanbanBuilder","GanttView","FormView","DialogStack","Dialog","EditBaseDialog","RecordHeightDialogInput","RecordViewDialog","PrintFormatDialog","PrintDialog","LinkFieldChooseDialog","InviteACollaboratorDialog","InviteACollaboratorRoleDialog","RunHistorySidePanel","Search","Find","FieldType","Attachment","AutoNumber","CheckBox","Address","CreatedTime","Currency","DateTime","Email","Formula","ModifiedTime","MultipleSelection","SingleSelection","CollaboratorMultipleSelection","CollaboratorSingleSelection","CollaboratorSelection","Percent","PhoneNumber","Rating","Text","URL","CreatedBy","ModifiedBy","Link","Lookup","Rollup","Sentiment","KeywordExtract","LanguageDetect","AddFieldInsertPanelSearch","HideFieldsSearch","SortAddAnotherFieldSearch","FilterAddAnotherFieldSearch","FilterConditionsContainer","CreateViewDialogSearch","AddFieldEditPanelSearch","AddFieldCreatePanelSearch","FilterAddFieldSearch","ListViewSearch","RecordViewMultiSelect","RecordViewSingleSelect","RecordViewSentiment","FilterMultiSelect","FilterSentiment","FilterSingleSelect","ContextMenu","ComboBox","ShortCut","RollupComboBox","FormDesignCustomization","FormShareDialog","GridManageFieldsInsertPanel","GridManageFieldsInsertPanelSearch","GridManageFieldsInsertPanelSearch_FieldConfiguration","GridManageFieldsEditPanel","GridManageFieldsEditPanelSearch","GridManageFieldsCreatePanel","CustomFilterSearch","FormBuilder","FormBuilderSchemaName","FormManageFields","ExportToZohoCreatorDialog","ExportToZohoCreatorComboBoxDialog","DCCellEditor","DCFieldTypeComponents","DCMultiSelectComponent","DCSingleSelectComponent","DCCollaboratorComponent","DCSentimentComponent","DCTextComponent","DCPhoneNumberComponent","DCEmailComponent","DCURLComponent","DCNumberComponent","DCPercentComponent","DCCurrencyComponent","DCDateTimeComponent","DCLinkComponent","DCAttachmentComponent","DCAutoNumberComponent","DCCreatedTimeComponent","DCModifiedTimeComponent","DCCreatedByComponent","DCModifiedByComponent","DCFormulaComponent","DCLookupComponent","DCRollupComponent","DCKeywordExtractComponent","DCLanguageDetectComponent","GridContextMenu","SnapBuilder","SnapGridCellSelection","SnapGridCellEditor","entry","deepFreeze","object","keys","key","SUPER","getShortCutKeyCombo","ev","keyCode","getKeyCode","KeyCode_A","KeyCode_Z","KeyCode_ZERO","KeyCode_NINE","KeyCode_NUMPAD_ZERO","KeyCode_NUMPAD_NINE","isPrintable","exceptionCase","activeCell","activeFID","getKeyCombination","isModifierKey","UNKNOWN_DATE_FORMAT","UNKNOWN_HOUR_CYCLE","UNKNOWN_CURRENCY_FORMAT","ADD_FIELD_PHONE_NUMBER_FORMATS_DEFAULT","ADD_FIELD_PHONE_NUMBER_FORMATS_HYPHEN","ADD_FIELD_PHONE_NUMBER_FORMATS_SPACE_HYPHEN","ADD_FIELD_PHONE_NUMBER_FORMATS_SPACE","ADD_FIELD_PHONE_NUMBER_FORMATS_BRACES_SPACE_HYPHEN","ADD_FIELD_PHONE_NUMBER_FORMATS_PERIOD","ADD_FIELD_TIME_FORMAT","ADD_FIELD_SUPPORTED_DATE_FORMATS_1","ADD_FIELD_SUPPORTED_DATE_FORMATS_2","ADD_FIELD_SUPPORTED_DATE_FORMATS_3","ADD_FIELD_SUPPORTED_DATE_FORMATS_4","SUPPORTED_CURRENCY_VALUES","SUPPORTED_HOUR_CYCLES","SUPPORTED_DATE_FORMATS","getDateFormat","dateFormat","supportedDateFormat","getHourCycle","hourCycle","supportedHourCycle","getCurrency","currency","supportedCurrency","CSS_CLASS_NAMES","CSS_STYLE_VALUES","FORM_BUILDER_VIEW_ONLY_BASE","HIDE","SHOW","ZERO_OPACITY","POINTER_EVENTS_NONE_CLASS","ACTIVE","EXPANDED","REQUIRED","REQUIRED_RED_STAR","EMPTY","EDIT_SUBMIT","SELECTION","SELECTION_CONTAINER","ERROR_URL","LABEL_ALIGN_TOP","LABEL_ALIGN_LEFT","LABEL_ALIGN_RIGHT","FORM_LOGO_ALIGN_LEFT","FORM_LOGO_ALIGN_CENTER","FORM_LOGO_ALIGN_RIGHT","FORM_NAME_ALIGN_LEFT","FORM_NAME_ALIGN_CENTER","FORM_NAME_ALIGN_RIGHT","FORM_NAME_SIZE_SMALL","FORM_NAME_SIZE_MEDIUM","FORM_NAME_SIZE_LARGE","FORM_BACKGROUND_COLOR","FORM_LOGO_SIZE_SMALL","FORM_LOGO_SIZE_MEDIUM","FORM_LOGO_SIZE_LARGE","FORM_NAME_SIZE","FORM_NAME_ALIGN","LABEL_ALIGN","STROKE_STYLE","FBH_HIDE","FBH_ERROR_BORDER","FB_NEW_FIELD_ANIMATION","FORM_OPEN","FORM_BUTTON_DISABLE","FORM_ACTIVE_ICON_BLOCK","FORM_COVER_IMAGE_UPLOADED","FORM_LOGO_UPLOADED","FORM_CLOSE_BUTTON_SHOW_LOADER","PROGRESS_BAR_COMPLETED","PROGRESS_BAR_DOWN_ARROW_ROTATE_180","PROGRESS_BAR_ERROR","ZT_SKELETON_LOADER","FBH_UPLOAD_LOGO_LOADER_ACTIVE","FB_COVER_IMAGE_DELETE_LOADER","FB_LOGO_DELETE_LOADER","FB_LOGO_FRAME_SMALL","FB_LOGO_FRAME_MEDIUM","FB_LOGO_FRAME_LARGE","FVT_COVER_IMAGE_ACTIVE","FB_COVER_IMAGE_UPLOADING","FB_COVER_IMAGE_UPLOADED_FAILURE","FB_COVER_IMAGE_UPLOADED_FAILURE_TWO","FB_COVER_IMAGE_UPLOADED_PAGE_REFRESH","FB_LOGO_UPLOADING","FB_LOGO_UPLOADED_FAILURE","FB_LOGO_UPLOADED_FAILURE_TWO","FB_LOGO_UPLOADED_PAGE_REFRESH","FORM_VIEW_LABEL_ALIGN_TOP","FORM_VIEW_LABEL_ALIGN_LEFT","FORM_VIEW_LABEL_ALIGN_RIGHT","FORM_VIEW_ATTACHMENT_IMAGE_ERROR_EVENT_CLASS","CURSOR_DEFAULT","ZT_CURSOR_PROGRESS","FORM_SCHEMA_ERROR","SEARCHING","EMPTY_TILE","MANAGE_FIELDS","DRAGGING","HIDE_DRAG_BUTTON","DESIGN_CUSTOMIZATION_FONT_PANEL","VISIBLE","COLOR_OPTION_CSS_VARIABLE","COLOR_OPTION_BORDER_CSS_VARIABLE","HIDE_LEVELS","HIDE_TOGGLE","RECORD_VIEW_DATE_PLACEHOLDER","RECORD_VIEW_PREMIUM_FIELD","RECORD_VIEW_EPHI_RESTRICTED_FIELD","ATTACHMENT_EPHI_RESTRICTED","ONE","PIXELS","PERCENT","UNSET","AUTO","FIXED","LEFT_ARROW","BOTTOM_RIGHT_ARROW","HIDE_BASE_SHARE_SEPARATOR","BOLD","ITALIC","OVERLINE","STRIKE_THROUGH","UNDERLINE","LEFT","CENTER","RIGHT","FLEX_START","FLEX_END","TOP","MIDDLE","BOTTOM","NONE","CLIPBOARD_DATA_AS_TEXT","MULTISELECT_COLOR","MULTISELECT_COLOR_KANBAN","KEYWORD_EXTRACT_COLOR","LIST_PANEL_RECORD_VIEW","TABLE_EDIT","POINTER_EVENTS_NONE","WRITER_EDITOR_DIV_CLASS_NAME","FORMULA_EDITOR_CUSTOM_DROPDOWN_ELEMENT","ZT_DIALOG_ACTIVE","ZT_ERROR_TOAST","ZTP_FIELD_DISABLE","ZT_mRL10","ZTCL_ACTIVE","ZT_CURSOR_NO_DROP","ATTRIBUTE_TITLE","ZT_ROW_ADD_CONTAINER","MSG_ERROR","ZT_TOGGLE_OPEN","SF_DISABLED","SB_TOAST_SHOW","LIGHT","DEFAULT_COLOR_IN_HEX","__TEXT_DARK","HASH","CHECKED","CONTENT","__BASE_DARK_COLOR","__BASE_LIGHT_COLOR","__BASE_ULTRA_LIGHT_COLOR","__BASE_TEXT_COLOR","__BASE_COLOR","ZT_LIGHT_THEME","__SS_OVAL","__SS_DOT","__CARD_COLOR","__CARD_LIGHT_COLOR","__CARD_COVER_COLOR","ZDC_CARD_DARK_COLOR","ZDC_CARD_LIGHT_COLOR","EDIT_BASE","LP_BASE_EDIT","ZT_OVERFLOW_HIDDEN","SELECTION_FIELD_TYPES","FORM_SELECTION_FIELD_TYPES","COMMON_DELIMITERS","COLLABORATOR_SELECTION_TYPES","isNonEditableFieldType","fieldType","isFormNonEditableFieldType","isPopupFieldType","isConfirmationNeededFieldType","isSelectionFieldType","isFormSelectionFieldType","toRestrictDuplicateWithoutDataFieldTypes","FIELD_TYPES_BASIC_ORDER","FIELD_TYPES_AI_FIELDS_ORDER","FIELD_TYPES_PICK_LISTS_ORDER","FIELD_TYPES_NUMERICAL_ORDER","FIELD_TYPES_PERSONAL_INFORMATION_ORDER","FIELD_TYPES_DATE_AND_TIME_ORDER","FIELD_TYPES_RELATIONSHIP_ORDER","FIELD_TYPES_BASIC_KEY","FIELD_TYPES_AI_FIELDS_ORDER_KEY","FIELD_TYPES_PICK_LISTS_ORDER_KEY","FIELD_TYPES_NUMERICAL_ORDER_KEY","FIELD_TYPES_PERSONAL_INFORMATION_ORDER_KEY","FIELD_TYPES_DATE_AND_TIME_ORDER_KEY","FIELD_TYPES_RELATIONSHIP_ORDER_KEY","FIELD_TYPES_DISPLAY_ORDER_IN_UI","INVALID_FIELD_TYPE","NUMBER","TEXT","DATE","CURRENCY","FORMULA_RETURN_TYPE_EMPTY","FormulaReturnTypeMapping","returnType","TEMP_MINUS","TEMP_EQUAL","TEMP_PLUS","TEMP_SEMICOLON","TEMP_PRINTSCREEN","MINUS","EQUAL","PLUS","SEMICOLON","PRINTSCREEN","JSKeyCode","EVENTS_BASE_RESPONSE_BEFORE","EVENTS_BASE_RESPONSE_AFTER","EVENTS_BASE_NAME_UPDATE","EVENTS_BASE_TIMEZONE_UPDATE","EVENTS_BASE_DESCRIPTION_UPDATE","EVENTS_BASE_ICON_UPDATE","EVENTS_BASE_MODE_UPDATE","EVENTS_BASE_MODULE_UPDATE","EVENTS_PORTAL_PLAN_TYPE_UPDATE","EVENTS_PLAN_EXPIRY_DATE_UPDATE","EVENTS_GRACE_PERIOD_UPDATE","EVENTS_BASE_COLOR_UPDATE","EVENTS_BASE_ACTIVITYLOG_UPDATE","EVENTS_BASE_SELECTIONDATA","EVENTS_BASE_IMPORTTABLE_LOAD","EVENTS_BASE_SELECTION_UPDATE","EVENTS_BASE_SELECTION_OPTION_INSERT","EVENTS_BASE_SELECTION_OPTION_UPDATE","EVENTS_BASE_SELECTION_OPTION_DELETE","EVENTS_BASE_SELECTION_OPTION_ORDER","EVENTS_BASE_SELECTION_LOAD","EVENTS_BASE_SELECTION_DELETE","EVENTS_BASE_SELECTION_INSERT","EVENTS_BASE_COLLABORATORS_UPDATE","EVENTS_BASE_COLLABORATORS_LOAD","EVENTS_BASE_COLLABORATORS_DELETE","EVENTS_BASE_COLLABORATORS_INSERT","EVENTS_BASE_RELATIONSHIP_LOAD","EVENTS_BASE_RELATIONSHIP_INSERT","EVENTS_BASE_RELATIONSHIP_DELETE","EVENTS_BASE_RELATIONSHIP_UPDATE","EVENTS_BASE_ATTACHMENTS_UPDATE","EVENTS_BASE_ATTACHMENTS_LOAD","EVENTS_BASE_ATTACHMENTS_DELETE","EVENTS_BASE_ATTACHMENTS_INSERT","EVENTS_BASE_ATTACHMENTS_PREVIEW","EVENTS_ATTACHMENTS_WORKDRIVE_PREVIEW","EVENTS_BASE_SENTIMENTS_UPDATE","EVENTS_BASE_SENTIMENTS_INSERT","EVENTS_BASE_SENTIMENTS_LOAD","EVENTS_BASE_SENTIMENTS_DELETE","EVENTS_TABLE_RESPONSE_BEFORE","EVENTS_TABLE_RESPONSE_AFTER","EVENTS_TABLE_NAME_UPDATE","EVENTS_TABLE_DESCRIPTION_UPDATE","EVENTS_TABLE_RECORDCOUNT_UPDATE","EVENTS_TABLE_ORDER_LOAD","EVENTS_TABLE_ORDER_INSERT","EVENTS_TABLE_ORDER_REORDER","EVENTS_TABLE_ORDER_DELETE","EVENTS_TABLE_SELECTION_UPDATE","EVENTS_TABLE_SELECTION_LOAD","EVENTS_TABLE_SELECTION_DELETE","EVENTS_TABLE_SELECTION_INSERT","EVENTS_TABLE_DATA_LOAD","EVENTS_TABLE_DATA_UPDATE","EVENTS_TABLE_DATA_FAULTY_RECORDS","EVENTS_TABLE_DATA_FAULTY_FIELDS","EVENTS_TABLE_DATA_FAULTY_TABLE","EVENTS_TABLE_DATA_FAULTY_INTERSECTION","EVENTS_TABLE_RECORD_RESPONSE_BEFORE","EVENTS_TABLE_RECORD_RESPONSE_AFTER","EVENTS_TABLE_RECORD_INSERT","EVENTS_TABLE_RECORD_UPDATE","EVENTS_TABLE_RECORD_DELETE","EVENTS_TABLE_RECORD_LOAD","EVENTS_TABLE_FIELD_DELETE","EVENTS_TABLE_FIELD_NAME_UPDATE","EVENTS_TABLE_FIELD_NAME_LOAD","EVENTS_TABLE_FIELD_TYPE_UPDATE","EVENTS_TABLE_FIELD_TYPE_PARAM_UPDATE","EVENTS_TABLE_FIELD_TYPE_LOAD","EVENTS_TABLE_FIELD_DESCRIPTION_UPDATE","EVENTS_TABLE_FIELD_DESCRIPTION_LOAD","EVENTS_TABLE_FIELD_STATUS_UPDATE","EVENTS_TABLE_FIELD_STATUS_LOAD","EVENTS_TABLE_FIELD_LOAD","EVENTS_TABLE_FIELD_ORDER","EVENTS_TABLE_FIELD_INSERT","EVENTS_TABLE_PRIMARY_FIELD_UPDATE","EVENTS_VIEW_RESPONSE_BEFORE","EVENTS_VIEW_RESPONSE_AFTER","EVENTS_VIEW_NAME_UPDATE","EVENTS_VIEW_DESCRIPTION_UPDATE","EVENTS_VIEW_ORDER_LOAD","EVENTS_VIEW_ORDER_INSERT","EVENTS_VIEW_ORDER_REORDER","EVENTS_VIEW_ORDER_DELETE","EVENTS_LINKED_VIEW_ORDER","EVENTS_GRID_RESPONSE_BEFORE","EVENTS_GRID_RESPONSE_AFTER","EVENTS_GRID_FIELD_ORDER_LOAD","EVENTS_GRID_FIELD_ORDER_INSERT","EVENTS_GRID_FIELD_ORDER_REORDER","EVENTS_GRID_FIELD_ORDER_HIDE","EVENTS_GRID_FIELD_ORDER_RESIZE","EVENTS_GRID_INSERT_NON_HIDDEN_FIELD","EVENTS_GRID_APPEND_NON_HIDDEN_FIELD","EVENTS_GRID_DELETE_NON_HIDDEN_FIELD","EVENTS_GRID_REORDER_NON_HIDDEN_FIELD","EVENTS_GRID_INSERT_HIDDEN_FIELD","EVENTS_GRID_APPEND_HIDDEN_FIELD","EVENTS_GRID_DELETE_HIDDEN_FIELD","EVENTS_GRID_REORDER_HIDDEN_FIELD","EVENTS_GRID_SUMMARY_UPDATE","EVENTS_GRID_RECORD_HEIGHT_UPDATE","EVENTS_GRID_RECORD_ORDER_LOAD","EVENTS_GRID_RECORD_ORDER_INSERT","EVENTS_GRID_RECORD_ORDER_DELETE","EVENTS_GRID_RECORD_ORDER_REORDER","EVENTS_GRID_RECORD_ORDER_SORT","EVENTS_GRID_RECORD_ORDER_BEFORE_SORT","EVENTS_GRID_RECORD_ORDER_AFTER_SORT","EVENTS_GRID_RECORD_ORDER_FAULTY","EVENTS_GRID_RECORD_ORDER_BEFORE_LOAD","EVENTS_GRID_SORT_DELETE","EVENTS_GRID_SORT_UPDATE","EVENTS_GRID_SORT_REORDER","EVENTS_GRID_SORT_LOAD","EVENTS_GRID_CURRENT_USER_ROLE","EVENTS_GRID_FILTER_DELETE","EVENTS_GRID_FILTER_UPDATE","EVENTS_GRID_FILTER_REORDER","EVENTS_GRID_FILTER_LOAD","EVENTS_GRID_FILTER_LOGICAL","EVENTS_GRID_FILTER_CONDITION","EVENTS_GRID_RECORDCOLOR_UPDATE","EVENTS_GRID_RECORDCOLOR_FAULTY_INTERSECTION","EVENTS_GRID_REPLACE","EVENTS_GRID_REPLACEALL","EVENTS_GRID_CONDITIONALFORMAT_TYPE","EVENTS_GRID_CONDITIONALFORMAT_SELECTION_UPDATE","EVENTS_GRID_CONDITIONALFORMAT_COLOR_LOAD","EVENTS_GRID_CONDITIONALFORMAT_COLOR_DELETE","EVENTS_GRID_CONDITIONALFORMAT_COLOR_UPDATE","EVENTS_GRID_CONDITIONALFORMAT_COLOR_REORDER","EVENTS_GRID_CONDITIONALFORMAT_FALLBACK","EVENTS_GRID_CONDITIONALFORMAT_FILTER_LOAD","EVENTS_GRID_CONDITIONALFORMAT_FILTER_DELETE","EVENTS_GRID_CONDITIONALFORMAT_FILTER_UPDATE","EVENTS_GRID_CONDITIONALFORMAT_FILTER_REORDER","EVENTS_GRID_CONDITIONALFORMAT_FILTER_LOGICAL","EVENTS_GRID_CONDITIONALFORMAT_FILTER_CONDITION","EVENTS_CALENDAR_RESPONSE_BEFORE","EVENTS_CALENDAR_RESPONSE_AFTER","EVENTS_CALENDAR_ESSENTIALS_UPDATE","EVENTS_CALENDAR_FIELD_ORDER_LOAD","EVENTS_CALENDAR_FIELD_ORDER_INSERT","EVENTS_CALENDAR_FIELD_ORDER_REORDER","EVENTS_CALENDAR_FIELD_ORDER_HIDE","EVENTS_CALENDAR_INSERT_NON_HIDDEN_FIELD","EVENTS_CALENDAR_APPEND_NON_HIDDEN_FIELD","EVENTS_CALENDAR_DELETE_NON_HIDDEN_FIELD","EVENTS_CALENDAR_REORDER_NON_HIDDEN_FIELD","EVENTS_CALENDAR_INSERT_HIDDEN_FIELD","EVENTS_CALENDAR_APPEND_HIDDEN_FIELD","EVENTS_CALENDAR_DELETE_HIDDEN_FIELD","EVENTS_CALENDAR_RECORD_ORDER_LOAD","EVENTS_CALENDAR_RECORD_ORDER_INSERT","EVENTS_CALENDAR_RECORD_ORDER_REORDER","EVENTS_CALENDAR_RECORD_ORDER_DELETE","EVENTS_CALENDAR_RECORD_ORDER_SORT","EVENTS_CALENDAR_RECORD_ORDER_FAULTY","EVENTS_CALENDAR_SORT_DELETE","EVENTS_CALENDAR_SORT_UPDATE","EVENTS_CALENDAR_SORT_REORDER","EVENTS_CALENDAR_SORT_LOAD","EVENTS_CALENDAR_CURRENT_USER_ROLE","EVENTS_CALENDAR_RECORDORDERWITHDATA_LOAD","EVENTS_CALENDAR_RECORDORDERWITHDATA_INSERT","EVENTS_CALENDAR_RECORDORDERWITHDATA_UPDATE","EVENTS_CALENDAR_RECORDORDERWITHDATA_DELETE","EVENTS_CALENDAR_FILTER_LOAD","EVENTS_CALENDAR_FILTER_DELETE","EVENTS_CALENDAR_FILTER_UPDATE","EVENTS_CALENDAR_FILTER_REORDER","EVENTS_CALENDAR_FILTER_LOGICAL","EVENTS_CALENDAR_FILTER_CONDITION","EVENTS_CALENDAR_RECORDCOLOR_UPDATE","EVENTS_VIEW_RECORDCOLOR_IS_COLOR_APPLIED_UPDATE","EVENTS_CALENDAR_RECORDCOLOR_FAULTY_INTERSECTION","EVENTS_CALENDAR_CONDITIONALFORMAT_TYPE","EVENTS_CALENDAR_CONDITIONALFORMAT_SELECTION_UPDATE","EVENTS_CALENDAR_CONDITIONALFORMAT_COLOR_LOAD","EVENTS_CALENDAR_CONDITIONALFORMAT_COLOR_UPDATE","EVENTS_CALENDAR_CONDITIONALFORMAT_COLOR_DELETE","EVENTS_CALENDAR_CONDITIONALFORMAT_COLOR_REORDER","EVENTS_CALENDAR_CONDITIONALFORMAT_FALLBACK","EVENTS_CALENDAR_CONDITIONALFORMAT_FILTER_LOAD","EVENTS_CALENDAR_CONDITIONALFORMAT_FILTER_DELETE","EVENTS_CALENDAR_CONDITIONALFORMAT_FILTER_UPDATE","EVENTS_CALENDAR_CONDITIONALFORMAT_FILTER_REORDER","EVENTS_CALENDAR_CONDITIONALFORMAT_FILTER_LOGICAL","EVENTS_CALENDAR_CONDITIONALFORMAT_FILTER_CONDITION","EVENTS_GANTT_RESPONSE_BEFORE","EVENTS_GANTT_RESPONSE_AFTER","EVENTS_GANTT_RECORD_FETCH_INFO_UPDATE","EVENTS_GANTT_RECORD_FETCH_INFO_DATA_SYNC_REQUIRED_UPDATE","EVENTS_GANTT_CURRENT_USER_ROLE_UPDATE","EVENTS_GANTT_CONFIG_LOAD","EVENTS_GANTT_CONFIG_UPDATE","EVENTS_GANTT_CONFIG_START_DATE_UPDATE","EVENTS_GANTT_CONFIG_END_DATE_UPDATE","EVENTS_GANTT_CONFIG_DISPLAY_UPDATE","EVENTS_GANTT_CONFIG_DEPENDENCY_ENABLED_UPDATE","EVENTS_GANTT_CONFIG_HIGHLIGHT_CRITICAL_PATH_UPDATE","EVENTS_GANTT_CONFIG_MILESTONE_UPDATE","EVENTS_GANTT_CONFIG_DEPENDENCY_UPDATE","EVENTS_GANTT_CONFIG_SCALE_TYPE_UPDATE","EVENTS_GANTT_RECORD_ORDER_LOAD","EVENTS_GANTT_RECORD_ORDER_INSERT","EVENTS_GANTT_RECORD_ORDER_DELETE","EVENTS_GANTT_RECORD_ORDER_SORT","EVENTS_GANTT_SORT_DELETE","EVENTS_GANTT_SORT_UPDATE","EVENTS_GANTT_SORT_REORDER","EVENTS_GANTT_SORT_LOAD","EVENTS_GANTT_FILTER_LOAD","EVENTS_GANTT_FILTER_DELETE","EVENTS_GANTT_FILTER_UPDATE","EVENTS_GANTT_FILTER_REORDER","EVENTS_GANTT_FILTER_LOGICAL","EVENTS_GANTT_FILTER_CONDITION","EVENTS_GANTT_RECORD_TYPE_UPDATE","EVENTS_GANTT_RECORD_COLOR_UPDATE","EVENTS_GANTT_RECORD_META_LOAD","EVENTS_GANTT_RECORD_DATA_RESPONSE","EVENTS_GANTT_RECORD_START_DATE_UPDATE","EVENTS_GANTT_RECORD_END_DATE_UPDATE","EVENTS_GANTT_RECORD_DISPLAY_UPDATE","EVENTS_GANTT_RECORD_MILESTONE_UPDATE","EVENTS_GANTT_SUCCESSOR_LOAD","EVENTS_GANTT_SUCCESSOR_INSERT","EVENTS_GANTT_SUCCESSOR_DELETE","EVENTS_GANTT_SUCCESSOR_META_CONNECTION_TYPE_UPDATE","EVENTS_GANTT_SUCCESSOR_META_PATH_TYPE_UPDATE","EVENTS_GANTT_SUCCESSOR_META_UPDATE","EVENTS_GANTT_PREDECESSOR_LOAD","EVENTS_GANTT_PREDECESSOR_INSERT","EVENTS_GANTT_PREDECESSOR_DELETE","EVENTS_GANTT_PREDECESSOR_META_CONNECTION_TYPE_UPDATE","EVENTS_GANTT_PREDECESSOR_META_PATH_TYPE_UPDATE","EVENTS_GANTT_PREDECESSOR_META_UPDATE","EVENTS_GANTT_RECORDCOLOR_UPDATE","EVENTS_GANTT_RECORDCOLOR_FAULTY_INTERSECTION","EVENTS_GANTT_FIELD_ORDER_LOAD","EVENTS_GANTT_FIELD_ORDER_INSERT","EVENTS_GANTT_CONDITIONALFORMAT_TYPE","EVENTS_GANTT_CONDITIONALFORMAT_SELECTION_UPDATE","EVENTS_GANTT_CONDITIONALFORMAT_COLOR_LOAD","EVENTS_GANTT_CONDITIONALFORMAT_COLOR_UPDATE","EVENTS_GANTT_CONDITIONALFORMAT_COLOR_DELETE","EVENTS_GANTT_CONDITIONALFORMAT_COLOR_REORDER","EVENTS_GANTT_CONDITIONALFORMAT_FALLBACK","EVENTS_GANTT_CONDITIONALFORMAT_FILTER_LOAD","EVENTS_GANTT_CONDITIONALFORMAT_FILTER_DELETE","EVENTS_GANTT_CONDITIONALFORMAT_FILTER_UPDATE","EVENTS_GANTT_CONDITIONALFORMAT_FILTER_REORDER","EVENTS_GANTT_CONDITIONALFORMAT_FILTER_LOGICAL","EVENTS_GANTT_CONDITIONALFORMAT_FILTER_CONDITION","EVENTS_GALLERY_RESPONSE_BEFORE","EVENTS_GALLERY_RESPONSE_AFTER","EVENTS_GALLERY_ESSENTIALS_UPDATE","EVENTS_GALLERY_FIELD_ORDER_LOAD","EVENTS_GALLERY_FIELD_ORDER_INSERT","EVENTS_GALLERY_FIELD_ORDER_REORDER","EVENTS_GALLERY_FIELD_ORDER_HIDE","EVENTS_GALLERY_FIELD_ORDER_RESIZE","EVENTS_GALLERY_BLUEPRINT_SCHEMA_LOAD","EVENTS_GALLERY_BLUEPRINT_SCHEMA_INSERT","EVENTS_GALLERY_BLUEPRINT_COVERID","EVENTS_GALLERY_BLUEPRINT_TITLEID","EVENTS_GALLERY_BLUEPRINT_ROW_ORDER_LOAD","EVENTS_GALLERY_BLUEPRINT_ROW_ORDER_INSERT","EVENTS_GALLERY_BLUEPRINT_ROW_ORDER_DELETE","EVENTS_GALLERY_BLUEPRINT_ROW_ORDER_UPDATE","EVENTS_GALLERY_BLUEPRINT_ROW_ORDER_REORDER","EVENTS_GALLERY_BLUEPRINT_ROW_SCHEMA_ORDER_LOAD","EVENTS_GALLERY_BLUEPRINT_ROW_SCHEMA_ORDER_INSERT","EVENTS_GALLERY_BLUEPRINT_ROW_SCHEMA_ORDER_DELETE","EVENTS_GALLERY_BLUEPRINT_ROW_SCHEMA_ORDER_UPDATE","EVENTS_GALLERY_BLUEPRINT_ROW_SCHEMA_ORDER_REORDER","EVENTS_GALLERY_BLUEPRINT_ROW_RATIO","EVENTS_GALLERY_BLUEPRINT_SCHEMA_PROPERTIES_LINESPACE_UPDATE","EVENTS_GALLERY_BLUEPRINT_SCHEMA_PROPERTIES_TEXTALIGN_UPDATE","EVENTS_GALLERY_BLUEPRINT_SCHEMA_PROPERTIES_OBJECTFIT_UPDATE","EVENTS_GALLERY_BLUEPRINT_SCHEMA_PROPERTIES_RATING_STYLE_UPDATE","EVENTS_GALLERY_BLUEPRINT_SCHEMA_PROPERTIES_CHECKBOX_STYLE_UPDATE","EVENTS_GALLERY_BLUEPRINT_SCHEMA_PROPERTIES_HEADER_UPDATE","EVENTS_GALLERY_BLUEPRINT_SCHEMA_FIELD_ID_UPDATE","EVENTS_GALLERY_BLUEPRINT_SCHEMA_PROPERTIES_MULTILINE_UPDATE","EVENTS_GALLERY_BLUEPRINT_PROPERTIES_LINESPACE_UPDATE","EVENTS_GALLERY_BLUEPRINT_PROPERTIES_TEXTALIGN_UPDATE","EVENTS_GALLERY_BLUEPRINT_PROPERTIES_OBJECTFIT_UPDATE","EVENTS_GALLERY_BLUEPRINT_PROPERTIES_RATING_STYLE_UPDATE","EVENTS_GALLERY_BLUEPRINT_PROPERTIES_CHECKBOX_STYLE_UPDATE","EVENTS_GALLERY_BLUEPRINT_PROPERTIES_HEADER_UPDATE","EVENTS_GALLERY_INSERT_NON_HIDDEN_FIELD","EVENTS_GALLERY_APPEND_NON_HIDDEN_FIELD","EVENTS_GALLERY_DELETE_NON_HIDDEN_FIELD","EVENTS_GALLERY_REORDER_NON_HIDDEN_FIELD","EVENTS_GALLERY_INSERT_HIDDEN_FIELD","EVENTS_GALLERY_APPEND_HIDDEN_FIELD","EVENTS_GALLERY_DELETE_HIDDEN_FIELD","EVENTS_GALLERY_RECORD_ORDER_INSERT","EVENTS_GALLERY_RECORD_ORDER_DELETE","EVENTS_GALLERY_RECORD_ORDER_REORDER","EVENTS_GALLERY_RECORD_ORDER_UPDATE","EVENTS_GALLERY_RECORD_ORDER_LOAD","EVENTS_GALLERY_RECORD_ORDER_SORT","EVENTS_GALLERY_RECORD_ORDER_FAULTY","EVENTS_GALLERY_SORT_DELETE","EVENTS_GALLERY_SORT_UPDATE","EVENTS_GALLERY_SORT_REORDER","EVENTS_GALLERY_SORT_LOAD","EVENTS_GALLERY_CURRENT_USER_ROLE","EVENTS_GALLERY_FILTER_LOAD","EVENTS_GALLERY_FILTER_DELETE","EVENTS_GALLERY_FILTER_UPDATE","EVENTS_GALLERY_FILTER_REORDER","EVENTS_GALLERY_FILTER_LOGICAL","EVENTS_GALLERY_FILTER_CONDITION","EVENTS_GALLERY_RECORDCOLOR_UPDATE","EVENTS_GALLERY_RECORDCOLOR_FAULTY_INTERSECTION","EVENTS_GALLERY_CONDITIONALFORMAT_TYPE","EVENTS_GALLERY_CONDITIONALFORMAT_SELECTION_UPDATE","EVENTS_GALLERY_CONDITIONALFORMAT_COLOR_LOAD","EVENTS_GALLERY_CONDITIONALFORMAT_COLOR_UPDATE","EVENTS_GALLERY_CONDITIONALFORMAT_COLOR_DELETE","EVENTS_GALLERY_CONDITIONALFORMAT_COLOR_REORDER","EVENTS_GALLERY_CONDITIONALFORMAT_FALLBACK","EVENTS_GALLERY_CONDITIONALFORMAT_FILTER_LOAD","EVENTS_GALLERY_CONDITIONALFORMAT_FILTER_DELETE","EVENTS_GALLERY_CONDITIONALFORMAT_FILTER_UPDATE","EVENTS_GALLERY_CONDITIONALFORMAT_FILTER_REORDER","EVENTS_GALLERY_CONDITIONALFORMAT_FILTER_LOGICAL","EVENTS_GALLERY_CONDITIONALFORMAT_FILTER_CONDITION","EVENTS_KANBAN_RESPONSE_BEFORE","EVENTS_KANBAN_RESPONSE_AFTER","EVENTS_KANBAN_ESSENTIALS_UPDATE","EVENTS_KANBAN_ANCHOR_UPDATE","EVENTS_KANBAN_FIELD_ORDER_LOAD","EVENTS_KANBAN_FIELD_ORDER_INSERT","EVENTS_KANBAN_FIELD_ORDER_REORDER","EVENTS_KANBAN_FIELD_ORDER_DELETE","EVENTS_KANBAN_FIELD_ORDER_HIDE","EVENTS_KANBAN_FIELD_ORDER_RESIZE","EVENTS_KANBAN_BLUEPRINT_SCHEMA_LOAD","EVENTS_KANBAN_BLUEPRINT_SCHEMA_INSERT","EVENTS_KANBAN_BLUEPRINT_COVERID","EVENTS_KANBAN_BLUEPRINT_TITLEID","EVENTS_KANBAN_BLUEPRINT_ROW_ORDER_LOAD","EVENTS_KANBAN_BLUEPRINT_ROW_ORDER_INSERT","EVENTS_KANBAN_BLUEPRINT_ROW_ORDER_DELETE","EVENTS_KANBAN_BLUEPRINT_ROW_ORDER_UPDATE","EVENTS_KANBAN_BLUEPRINT_ROW_ORDER_REORDER","EVENTS_KANBAN_BLUEPRINT_ROW_SCHEMA_ORDER_LOAD","EVENTS_KANBAN_BLUEPRINT_ROW_SCHEMA_ORDER_INSERT","EVENTS_KANBAN_BLUEPRINT_ROW_SCHEMA_ORDER_DELETE","EVENTS_KANBAN_BLUEPRINT_ROW_SCHEMA_ORDER_UPDATE","EVENTS_KANBAN_BLUEPRINT_ROW_SCHEMA_ORDER_REORDER","EVENTS_KANBAN_BLUEPRINT_ROW_RATIO","EVENTS_KANBAN_BLUEPRINT_SCHEMA_PROPERTIES_LINESPACE_UPDATE","EVENTS_KANBAN_BLUEPRINT_SCHEMA_PROPERTIES_TEXTALIGN_UPDATE","EVENTS_KANBAN_BLUEPRINT_SCHEMA_PROPERTIES_OBJECTFIT_UPDATE","EVENTS_KANBAN_BLUEPRINT_SCHEMA_PROPERTIES_MULTILINE_UPDATE","EVENTS_KANBAN_BLUEPRINT_SCHEMA_PROPERTIES_RATING_STYLE_UPDATE","EVENTS_KANBAN_BLUEPRINT_SCHEMA_PROPERTIES_CHECKBOX_STYLE_UPDATE","EVENTS_KANBAN_BLUEPRINT_SCHEMA_PROPERTIES_HEADER_UPDATE","EVENTS_KANBAN_BLUEPRINT_SCHEMA_FIELD_ID_UPDATE","EVENTS_KANBAN_BLUEPRINT_PROPERTIES_LINESPACE_UPDATE","EVENTS_KANBAN_BLUEPRINT_PROPERTIES_TEXTALIGN_UPDATE","EVENTS_KANBAN_BLUEPRINT_PROPERTIES_OBJECTFIT_UPDATE","EVENTS_KANBAN_BLUEPRINT_PROPERTIES_RATING_STYLE_UPDATE","EVENTS_KANBAN_BLUEPRINT_PROPERTIES_CHECKBOX_STYLE_UPDATE","EVENTS_KANBAN_BLUEPRINT_PROPERTIES_HEADER_UPDATE","EVENTS_KANBAN_INSERT_NON_HIDDEN_FIELD","EVENTS_KANBAN_APPEND_NON_HIDDEN_FIELD","EVENTS_KANBAN_DELETE_NON_HIDDEN_FIELD","EVENTS_KANBAN_REORDER_NON_HIDDEN_FIELD","EVENTS_KANBAN_INSERT_HIDDEN_FIELD","EVENTS_KANBAN_APPEND_HIDDEN_FIELD","EVENTS_KANBAN_DELETE_HIDDEN_FIELD","EVENTS_KANBAN_UNCATERGORIZEDID","EVENTS_KANBAN_DRAGANDDROP_UPDATE","EVENTS_KANBAN_GROUP_LOAD","EVENTS_KANBAN_GROUP_INSERT","EVENTS_KANBAN_GROUP_UPDATE","EVENTS_KANBAN_GROUP_COLLAPSE","EVENTS_KANBAN_GROUPLEVEL_TREE_LOAD","EVENTS_KANBAN_GROUPLEVEL_TREE_INSERT","EVENTS_KANBAN_GROUPLEVEL_TREE_DELETE","EVENTS_KANBAN_GROUPLEVEL_TREE_REORDER","EVENTS_KANBAN_GROUPLEVEL_TREE_SORT","EVENTS_KANBAN_GROUPLEVEL_COLLAPSE_LOAD","EVENTS_KANBAN_GROUPLEVEL_COLLAPSE_UPDATE","EVENTS_KANBAN_RECORD_ORDER_INSERT","EVENTS_KANBAN_RECORD_ORDER_DELETE","EVENTS_KANBAN_RECORD_ORDER_REORDER","EVENTS_KANBAN_RECORD_ORDER_UPDATE","EVENTS_KANBAN_RECORD_ORDER_LOAD","EVENTS_KANBAN_RECORD_ORDER_SORT","EVENTS_KANBAN_RECORD_ORDER_FAULTY","EVENTS_KANBAN_RECORD_ORDERNEW_LOAD","EVENTS_KANBAN_SORT_DELETE","EVENTS_KANBAN_SORT_UPDATE","EVENTS_KANBAN_SORT_REORDER","EVENTS_KANBAN_SORT_LOAD","EVENTS_KANBAN_CURRENT_USER_ROLE","EVENTS_KANBAN_FILTER_LOAD","EVENTS_KANBAN_FILTER_DELETE","EVENTS_KANBAN_FILTER_UPDATE","EVENTS_KANBAN_FILTER_REORDER","EVENTS_KANBAN_FILTER_LOGICAL","EVENTS_KANBAN_FILTER_CONDITION","EVENTS_KANBAN_RECORDCOLOR_UPDATE","EVENTS_KANBAN_RECORDCOLOR_FAULTY_INTERSECTION","EVENTS_KANBAN_CONDITIONALFORMAT_TYPE","EVENTS_KANBAN_CONDITIONALFORMAT_SELECTION_UPDATE","EVENTS_KANBAN_CONDITIONALFORMAT_COLOR_LOAD","EVENTS_KANBAN_CONDITIONALFORMAT_COLOR_UPDATE","EVENTS_KANBAN_CONDITIONALFORMAT_COLOR_DELETE","EVENTS_KANBAN_CONDITIONALFORMAT_COLOR_REORDER","EVENTS_KANBAN_CONDITIONALFORMAT_FALLBACK","EVENTS_KANBAN_CONDITIONALFORMAT_FILTER_LOAD","EVENTS_KANBAN_CONDITIONALFORMAT_FILTER_DELETE","EVENTS_KANBAN_CONDITIONALFORMAT_FILTER_UPDATE","EVENTS_KANBAN_CONDITIONALFORMAT_FILTER_REORDER","EVENTS_KANBAN_CONDITIONALFORMAT_FILTER_LOGICAL","EVENTS_KANBAN_CONDITIONALFORMAT_FILTER_CONDITION","EVENTS_FORM_RESPONSE_BEFORE","EVENTS_FORM_RESPONSE_AFTER","EVENTS_FORM_NAME_UPDATE","EVENTS_FORM_DESCRIPTION_UPDATE","EVENTS_FORM_COVER_IMAGE_FILE_UPDATE","EVENTS_FORM_COVER_IMAGE_VISIBILITY_UPDATE","EVENTS_FORM_LOGO_FILE_UPDATE","EVENTS_FORM_LOGO_SIZE_UPDATE","EVENTS_FORM_LOGO_ALIGNMENT_UPDATE","EVENTS_FORM_LOGO_VISIBILITY_UPDATE","EVENTS_FORM_FORM_NAME_UPDATE","EVENTS_FORM_FORM_DESCRIPTION_UPDATE","EVENTS_FORM_NAME_PARAMETERS_SIZE_UPDATE","EVENTS_FORM_NAME_PARAMETERS_ALIGNMENT_UPDATE","EVENTS_FORM_NAME_PARAMETERS_VISIBILITY_UPDATE","EVENTS_FORM_LABEL_ALIGNMENT_UPDATE","EVENTS_FORM_COLOR_THEME_UPDATE","EVENTS_FORM_SCHEMA_LOAD","EVENTS_FORM_SCHEMA_INSERT","EVENTS_FORM_SCHEMA_UPDATE","EVENTS_FORM_SCHEMA_DELETE","EVENTS_FORM_CURRENT_USER_ROLE","EVENTS_FORM_FIELD_ORDER_LOAD","EVENTS_FORM_FIELD_ORDER_INSERT","EVENTS_FORM_FIELD_ORDER_REORDER","EVENTS_FORM_FIELD_ORDER_HIDE","EVENTS_FORM_FIELD_ORDER_UNHIDE","EVENTS_FORM_SUBMIT_BUTTON_NAME_UPDATE","EVENTS_FORM_BRANDING_UPDATE","EVENTS_FORM_REDIRECT_URL_UPDATE","EVENTS_FORM_MESSAGE_AFTER_SUBMIT_UPDATE","EVENTS_USER_ROLECHANGE","EVENTS_CREATE_VIEW_SHARE_URL","EVENTS_ALTER_VIEW_SHARE_ACCESSPEOPLE_TYPE","EVENTS_UPDATE_VIEW_SHARE_PASSWORD","EVENTS_UPDATE_VIEW_SHARE_EXPIRY_DATE","EVENTS_UPDATE_VIEW_SHARE_ENABLED","EVENTS_UPDATE_VIEW_RESTRICT_MULTIPLE_RESPONSES","EVENTS_FORM_SHAREURL_UPDATE","EVENTS_COLLABORATOR_LOAD_ACTIVE_USER","EVENTS_COLLABORATOR_LOAD_INACTIVE_USER","EVENTS_COLLABORATOR_INSERT_ACTIVE_USER","EVENTS_COLLABORATOR_INSERT_INACTIVE_USER","EVENTS_COLLABORATOR_UPDATE_ACTIVE_USER","EVENTS_COLLABORATOR_UPDATE_INACTIVE_USER","EVENTS_COLLABORATOR_DELETE_ACTIVE_USER","EVENTS_COLLABORATOR_DELETE_INACTIVE_USER","EVENTS_AUTOMATION_ORDER_BEFORE_LOAD","EVENTS_AUTOMATION_ORDER_RECORD_CREATED_TRIGGER_LOAD","EVENTS_AUTOMATION_ORDER_RECORD_UPDATED_TRIGGER_LOAD","EVENTS_AUTOMATION_ORDER_RECORD_ENTERS_VIEW_TRIGGER_LOAD","EVENTS_AUTOMATION_ORDER_PAUSED_SCHEDULAR_TRIGGER_LOAD","EVENTS_AUTOMATION_ORDER_RUNNING_SCHEDULAR_TRIGGER_LOAD","EVENTS_AUTOMATION_ORDER_COMPLETED_SCHEDULAR_TRIGGER_LOAD","EVENTS_AUTOMATION_ORDER_SCHEDULAR_TRIGGER_LOAD","EVENTS_AUTOMATION_ORDER_LOAD","EVENTS_AUTOMATION_ORDER_RECORD_CREATED_TRIGGER_INSERT","EVENTS_AUTOMATION_ORDER_RECORD_UPDATED_TRIGGER_INSERT","EVENTS_AUTOMATION_ORDER_RECORD_ENTERS_VIEW_TRIGGER_INSERT","EVENTS_AUTOMATION_ORDER_PAUSED_SCHEDULAR_TRIGGER_INSERT","EVENTS_AUTOMATION_ORDER_RUNNING_SCHEDULAR_TRIGGER_INSERT","EVENTS_AUTOMATION_ORDER_COMPLETED_SCHEDULAR_TRIGGER_INSERT","EVENTS_AUTOMATION_ORDER_SCHEDULAR_TRIGGER_INSERT","EVENTS_AUTOMATION_ORDER_INSERT","EVENTS_AUTOMATION_ORDER_DELETE","EVENTS_AUTOMATION_NAME_UPDATE","EVENTS_AUTOMATION_STATUS_UPDATE","EVENTS_AUTOMATION_IS_VALID_UPDATE","EVENTS_AUTOMATION_SCHEDULAR_STATE_UPDATE","EVENTS_AUTOMATION_RECORD_CREATED_TRIGGER_CREATE","EVENTS_AUTOMATION_RECORD_UPATED_TRIGGER_CREATE","EVENTS_AUTOMATION_RECORD_ENTERS_VIEW_TRIGGER_CREATE","EVENTS_AUTOMATION_SCHEDULAR_TRIGGER_CREATE","EVENTS_AUTOMATION_RECORD_CREATED_TRIGGER_LOAD","EVENTS_AUTOMATION_RECORD_UPATED_TRIGGER_LOAD","EVENTS_AUTOMATION_RECORD_ENTERS_VIEW_TRIGGER_LOAD","EVENTS_AUTOMATION_SCHEDULAR_TRIGGER_LOAD","EVENTS_AUTOMATION_SCHEDULAR_ONETIME_TRIGGER_LOAD","EVENTS_AUTOMATION_SCHEDULAR_HOURLY_TRIGGER_LOAD","EVENTS_AUTOMATION_SCHEDULAR_DAILY_TRIGGER_LOAD","EVENTS_AUTOMATION_SCHEDULAR_WEEKLY_TRIGGER_LOAD","EVENTS_AUTOMATION_SCHEDULAR_MONTHLY_DATE_TRIGGER_LOAD","EVENTS_AUTOMATION_SCHEDULAR_MONTHLY_WEEKDAY_TRIGGER_LOAD","EVENTS_AUTOMATION_SCHEDULAR_TIMEFRAME_NEVER_END_LOAD","EVENTS_AUTOMATION_SCHEDULAR_TIMEFRAME_RUN_COUNT_END_LOAD","EVENTS_AUTOMATION_SCHEDULAR_TIMEFRAME_END_DATE_END_LOAD","EVENTS_AUTOMATION_SCHEDULAR_TRIGGER_CYCLE_RUN_COUNT_LOAD","EVENTS_AUTOMATION_SCHEDULAR_TRIGGER_CYCLE_NEVER_LOAD","EVENTS_AUTOMATION_SCHEDULAR_TRIGGER_CYCLE_END_DATE_LOAD","EVENTS_AUTOMATION_SCHEDULAR_TRIGGER_FREQUENCY_UPDATE","EVENTS_AUTOMATION_SCHEDULAR_TRIGGER_ONETIME_FREQUENCY_UPDATE","EVENTS_AUTOMATION_SCHEDULAR_TRIGGER_HOURLY_FREQUENCY_UPDATE","EVENTS_AUTOMATION_SCHEDULAR_TRIGGER_DAILY_FREQUENCY_UPDATE","EVENTS_AUTOMATION_SCHEDULAR_TRIGGER_WEEKLY_FREQUENCY_UPDATE","EVENTS_AUTOMATION_SCHEDULAR_TRIGGER_MONTHLY_FREQUENCY_UPDATE","EVENTS_AUTOMATION_SCHEDULAR_TRIGGER_ON_TIME_VALUE_UPDATE","EVENTS_AUTOMATION_SCHEDULAR_TRIGGER_ON_TIME_ERROR_UPDATE","EVENTS_AUTOMATION_SCHEDULAR_TRIGGER_HOUR_UPDATE","EVENTS_AUTOMATION_SCHEDULAR_TRIGGER_DAY_COUNT_UPDATE","EVENTS_AUTOMATION_SCHEDULAR_TRIGGER_WEEK_DAYS_UPDATE","EVENTS_AUTOMATION_SCHEDULAR_TRIGGER_WEEK_COUNT_UPDATE","EVENTS_AUTOMATION_SCHEDULAR_TRIGGER_MONTH_COUNT_UPDATE","EVENTS_AUTOMATION_SCHEDULAR_TRIGGER_MONTHLY_META_TYPE_DATE_UPDATE","EVENTS_AUTOMATION_SCHEDULAR_TRIGGER_MONTHLY_META_TYPE_WEEK_DAY_UPDATE","EVENTS_AUTOMATION_SCHEDULAR_TRIGGER_MONTHLY_DATES_UPDATE","EVENTS_AUTOMATION_SCHEDULAR_TRIGGER_MONTHLY_WEEK_UPDATE","EVENTS_AUTOMATION_SCHEDULAR_TRIGGER_MONTHLY_DAY_UPDATE","EVENTS_AUTOMATION_SCHEDULAR_TRIGGER_AT_TIME_UPDATE","EVENTS_AUTOMATION_SCHEDULAR_TIMEFRAME_STATE_UPDATE","EVENTS_AUTOMATION_SCHEDULAR_TIMEFRAME_START_DATE_VALUE_UPDATE","EVENTS_AUTOMATION_SCHEDULAR_TIMEFRAME_START_DATE_ERROR_UPDATE","EVENTS_AUTOMATION_SCHEDULAR_TIMEFRAME_END_TYPE_UPDATE","EVENTS_AUTOMATION_SCHEDULAR_TIMEFRAME_END_RUN_COUNT_UPDATE","EVENTS_AUTOMATION_SCHEDULAR_TIMEFRAME_END_DATE_VALUE_UPDATE","EVENTS_AUTOMATION_SCHEDULAR_TIMEFRAME_END_DATE_ERROR_UPDATE","EVENTS_AUTOMATION_SCHEDULAR_TRIGGER_CYCLE_RUN_COUNT_UPDATE","EVENTS_AUTOMATION_SCHEDULAR_TRIGGER_CYCLE_NEVER_UPDATE","EVENTS_AUTOMATION_SCHEDULAR_TRIGGER_CYCLE_END_DATE_UPDATE","EVENTS_AUTOMATION_TRIGGER_API_SOURCE_RESTRICTION_LOAD","EVENTS_AUTOMATION_TRIGGER_EMPTY_RECORD_SOURCE_RESTRICTION_LOAD","EVENTS_AUTOMATION_TRIGGER_LINKFIELD_SOURCE_RESTRICTION_LOAD","EVENTS_AUTOMATION_TRIGGER_DUPLICATE_SOURCE_RESTRICTION_LOAD","EVENTS_AUTOMATION_TRIGGER_FORM_SUBMIT_SOURCE_RESTRICTION_LOAD","EVENTS_AUTOMATION_RECORD_MATCH_CONDITION_TRIGGER_LOAD","EVENTS_AUTOMATION_RECORD_UPDATED_TRIGGER_FIELD_LOAD","EVENTS_AUTOMATION_TRIGGER_FILTER_LOAD","EVENTS_AUTOMATION_TRIGGER_FILTER_LOAD_BEFORE","EVENTS_AUTOMATION_TRIGGER_FILTER_REORDER","EVENTS_AUTOMATION_TRIGGER_FILTER_CONDITION_AND_LOGICAL_STRING_LOAD","EVENTS_ALTER_AUTOMATION_TRIGGER_TO_RECORD_CREATED_TRIGGER","EVENTS_ALTER_AUTOMATION_TRIGGER_TO_RECORD_UPDATED_TRIGGER","EVENTS_ALTER_AUTOMATION_TRIGGER_TO_RECORD_ENTERS_VIEW_TRIGGER","EVENTS_ALTER_AUTOMATION_TRIGGER_TO_SCHEDULAR_TRIGGER","EVENTS_ALTER_AUTOMATION_TRIGGER_TO_NO_TRIGGER","EVENTS_AUTOMATION_TRIGGER_TABLE_UPDATE","EVENTS_AUTOMATION_TRIGGER_VIEW_UPDATE","EVENTS_AUTOMATION_TRIGGER_API_SOURCE_RESTRICTION_UPDATE","EVENTS_AUTOMATION_TRIGGER_EMPTY_RECORD_SOURCE_RESTRICTION_UPDATE","EVENTS_AUTOMATION_TRIGGER_DUPLICATE_SOURCE_RESTRICTION_UPDATE","EVENTS_AUTOMATION_TRIGGER_FORM_SUBMIT_SOURCE_RESTRICTION_UPDATE","EVENTS_AUTOMATION_TRIGGER_LINKFIELD_SOURCE_RESTRICTION_UPDATE","EVENTS_AUTOMATION_TRIGGER_FILTER_UPDATE","EVENTS_AUTOMATION_TRIGGER_FILTER_INSERT","EVENTS_AUTOMATION_TRIGGER_FILTER_DELETE","EVENTS_AUTOMATION_TRIGGER_FILTER_CONDITION_AND_LOGICAL_STRING_UPDATE","EVENTS_AUTOMATION_SENDMAIL_ACTION_ORDER_LOAD","EVENTS_AUTOMATION_SOCIAL_DRAFT_ACTION_ORDER_LOAD","EVENTS_AUTOMATION_CREATE_RECORD_ACTION_ORDER_LOAD","EVENTS_AUTOMATION_UPDATE_RECORD_ACTION_ORDER_LOAD","EVENTS_AUTOMATION_CLIQ_MESSAGE_ACTION_ORDER_LOAD","EVENTS_AUTOMATION_SENDMAIL_ACTION_ORDER_INSERT","EVENTS_AUTOMATION_CREATE_RECORD_ACTION_ORDER_INSERT","EVENTS_AUTOMATION_UPDATE_RECORD_ACTION_ORDER_INSERT","EVENTS_AUTOMATION_CLIQ_MESSAGE_ACTION_ORDER_INSERT","EVENTS_AUTOMATION_SOCIAL_DRAFT_ACTION_ORDER_INSERT","EVENTS_AUTOMATION_WEBHOOK_ACTION_ORDER_LOAD","EVENTS_AUTOMATION_WEBHOOK_ACTION_ORDER_INSERT","EVENTS_AUTOMATION_WEBHOOK_URL_UPDATE","EVENTS_AUTOMATION_WEBHOOK_PARAM_INSERT","EVENTS_AUTOMATION_WEBHOOK_PARAM_KEY_UPDATE","EVENTS_AUTOMATION_WEBHOOK_PARAM_VALUE_UPDATE","EVENTS_AUTOMATION_WEBHOOK_PARAM_REMOVE","EVENTS_AUTOMATION_ACTION_WEBHOOK_INFO_BEFORE_LOAD","EVENTS_AUTOMATION_ACTION_WEBHOOK_URL_LOAD","EVENTS_AUTOMATION_ACTION_WEBHOOK_PARAM_LOAD","EVENTS_AUTOMATION_ACTION_WEBHOOK_PARAM_INSERT","EVENTS_AUTOMATION_ACTION_WEBHOOK_PARAM_DELETE","EVENTS_AUTOMATION_ACTION_WEBHOOK_PARAM_KEY_UPDATE","EVENTS_AUTOMATION_ACTION_WEBHOOK_PARAM_VALUE_UPDATE","EVENTS_AUTOMATION_ACTION_WEBHOOK_HEADER_LOAD","EVENTS_AUTOMATION_ACTION_WEBHOOK_HEADER_INSERT","EVENTS_AUTOMATION_ACTION_WEBHOOK_HEADER_KEY_UPDATE","EVENTS_AUTOMATION_ACTION_WEBHOOK_HEADER_VALUE_UPDATE","EVENTS_AUTOMATION_ACTION_WEBHOOK_HEADER_DELETE","EVENTS_AUTOMATION_ACTION_WEBHOOK_METHOD_LOAD","EVENTS_AUTOMATION_ACTION_WEBHOOK_BODY_MODE_LOAD","EVENTS_AUTOMATION_ACTION_WEBHOOK_RAW_BODY_LOAD","EVENTS_AUTOMATION_ACTION_ORDER_DELETE","EVENTS_AUTOMATION_ACTION_TABLE_SELECTION_UPDATE","EVENTS_AUTOMATION_ACTION_DISABLED_CODE_UPDATE","EVENTS_AUTOMATION_ACTION_STATE_UPDATE","EVENTS_AUTOMATION_ACTION_FIELD_VALUES_UPDATE","EVENTS_AUTOMATION_ACTION_FIELD_VALUES_INSERT_BEFORE","EVENTS_AUTOMATION_ACTION_FIELD_VALUES_INSERT_AFTER","EVENTS_AUTOMATION_ACTION_FIELD_VALUES_DELETE","EVENTS_AUTOMATION_ACTION_FIELD_VALUES_LOAD","EVENTS_AUTOMATION_ACTION_FIELD_VALUE_LOAD_BEFORE","EVENTS_AUTOMATION_ACTION_FILTER_LOAD_BEFORE","EVENTS_AUTOMATION_ACTION_FILTER_LOAD","EVENTS_AUTOMATION_ACTION_FILTER_INSERT","EVENTS_AUTOMATION_ACTION_FILTER_UPDATE","EVENTS_AUTOMATION_ACTION_FILTER_REORDER","EVENTS_AUTOMATION_ACTION_FILTER_DELETE","EVENTS_AUTOMATION_ACTION_FILTER_CONDITION_AND_LOGICAL_STRING_UPDATE","EVENTS_AUTOMATION_ACTION_MAILIFO_LOAD","EVENTS_AUTOMATION_ACTION_CLIQ_INFO_LOAD","EVENTS_AUTOMATION_ACTION_BEFORE_LOAD","EVENTS_AUTOMATION_ACTION_CLIQ_INFO_ORG_STATUS_LOAD","EVENTS_AUTOMATION_ACTION_CLIQ_INFO_EXTENSION_STATUS_LOAD","EVENTS_AUTOMATION_ACTION_CLIQ_INFO_URL_LOAD","EVENTS_AUTOMATION_ACTION_CLIQ_INFO_TO_ADDRESS_LOAD","EVENTS_AUTOMATION_ACTION_CLIQ_INFO_MESSAGE_LOAD","EVENTS_AUTOMATION_ACTION_CLIQ_INFO_TO_ADDRESS_INSERT","EVENTS_AUTOMATION_ACTION_CLIQ_INFO_TO_ADDRESS_REMOVE","EVENTS_AUTOMATION_ACTION_CLIQ_INFO_MESSAGE_UPDATE","EVENTS_AUTOMATION_ACTION_TO_MAILINFO_UPDATE","EVENTS_AUTOMATION_ACTION_CC_MAILINFO_UPDATE","EVENTS_AUTOMATION_ACTION_BCC_MAILINFO_UPDATE","EVENTS_AUTOMATION_ACTION_SUBJECT_MAILINFO_UPDATE","EVENTS_AUTOMATION_ACTION_MESSAGE_MAILINFO_UPDATE","EVENTS_AUTOMATION_ACTION_MAILINFO_ATTACHMENT_BEFORE_LOAD","EVENTS_AUTOMATION_ACTION_MAILINFO_ATTACHMENT_LOAD","EVENTS_AUTOMATION_ACTION_MAILINFO_ATTACHMENT_INSERT","EVENTS_AUTOMATION_ACTION_MAILINFO_ATTACHMENT_DELETE","EVENTS_AUTOMATION_ACTION_SOCIAL_INFO_BEFORE_LOAD","EVENTS_AUTOMATION_ACTION_SOCIAL_INFO_LOAD","EVENTS_AUTOMATION_ACTION_SOCIAL_INFO_AVAILABLE_PORTAL_LOAD","EVENTS_AUTOMATION_ACTION_SOCIAL_INFO_AVAILABLE_MEDIAS_LOAD","EVENTS_AUTOMATION_ACTION_SOCIAL_CONTENT_LOAD","EVENTS_AUTOMATION_ACTION_SOCIAL_PORTAL_UPDATE","EVENTS_AUTOMATION_ACTION_SOCIAL_BRAND_UPDATE","EVENTS_AUTOMATION_ACTION_SOCIAL_AVAILABLE_MEDIAS_UPDATE","EVENTS_AUTOMATION_ACTION_SOCIAL_CONTENT_TYPE_UPDATE","EVENTS_AUTOMATION_ACTION_SOCIAL_MESSAGE_TRIGGER_FIELD_ID_UPDATE","EVENTS_AUTOMATION_ACTION_SOCIAL_MESSAGE_UPDATE","EVENTS_AUTOMATION_ACTION_ATTACHMENT_LOAD","EVENTS_AUTOMATION_ACTION_ATTACHMENT_INSERT","EVENTS_AUTOMATION_ACTION_ATTACHMENT_DELETE","EVENTS_AUTOMATION_ACTION_SOCIAL_MEDIA_UPDATE","EVENTS_AUTOMATION_ACTION_SOCIAL_MEDIA_TRIGGER_FIELD_ID_UPDATE","EVENTS_AUTOMATION_ACTION_FIND_AND_INCLUDE_RECORD_DELETE","EVENTS_AUTOMATION_ACTION_FIND_AND_INCLUDE_RECORD_TABLE_ID_LOAD","EVENTS_AUTOMATION_ACTION_FIND_AND_INCLUDE_RECORD_FIELDS_BEFORE_LOAD","EVENTS_AUTOMATION_ACTION_FIND_AND_INCLUDE_RECORD_FIELDS_LOAD","EVENTS_AUTOMATION_ACTION_FIND_AND_INCLUDE_RECORD_TABLE_ID_INSERT","EVENTS_AUTOMATION_ACTION_FIND_AND_INCLUDE_RECORD_FIELDS_BEFORE_INSERT","EVENTS_AUTOMATION_ACTION_FIND_AND_INCLUDE_RECORD_FIELDS_INSERT","EVENTS_AUTOMATION_ACTION_FIND_AND_INCLUDE_RECORD_TABLE_ID_UPDATE","EVENTS_AUTOMATION_ACTION_FIND_AND_INCLUDE_RECORD_FIELDS_UPDATE","EVENTS_AUTOMATION_ACTION_FIND_AND_INCLUDE_RECORD_FILTER_CONDITION_AND_LOGICAL_STRING_UPDATE","EVENTS_AUTOMATION_ACTION_FIND_AND_INCLUDE_RECORD_FILTER_BEFORE_LOAD","EVENTS_AUTOMATION_ACTION_FIND_AND_INCLUDE_RECORD_FILTER_LOAD","EVENTS_AUTOMATION_ACTION_FIND_AND_INCLUDE_RECORD_FILTER_UPDATE","EVENTS_AUTOMATION_ACTION_FIND_AND_INCLUDE_RECORD_FILTER_REORDER","EVENTS_AUTOMATION_ACTION_FIND_AND_INCLUDE_RECORD_FILTER_DELETE","EVENTS_AUTOMATION_ACTION_SUMMARY_OF_A_FIELD_DELETE","EVENTS_AUTOMATION_ACTION_SUMMARY_OF_A_FIELD_TABLE_ID_LOAD","EVENTS_AUTOMATION_ACTION_SUMMARY_OF_A_FIELD_FIELD_ID_LOAD","EVENTS_AUTOMATION_ACTION_SUMMARY_OF_A_FIELD_SUMMARY_TYPE_LOAD","EVENTS_AUTOMATION_ACTION_SUMMARY_OF_A_FIELD_TABLE_ID_INSERT","EVENTS_AUTOMATION_ACTION_SUMMARY_OF_A_FIELD_FIELD_ID_INSERT","EVENTS_AUTOMATION_ACTION_SUMMARY_OF_A_FIELD_SUMMARY_TYPE_INSERT","EVENTS_AUTOMATION_ACTION_SUMMARY_OF_A_FIELD_TABLE_ID_UPDATE","EVENTS_AUTOMATION_ACTION_SUMMARY_OF_A_FIELD_FIELD_ID_UPDATE","EVENTS_AUTOMATION_ACTION_SUMMARY_OF_A_FIELD_SUMMARY_TYPE_UPDATE","EVENTS_BASE_ENABLE","EVENTS_BASE_DISABLE","EVENTS_ENABLE_BASE_LIMIT_REACHED","EVENTS_DISABLE_BASE_LIMIT_REACHED","EVENTS_BASE_GROUPBY_ALLOWED_LEVEL_UPDATE","EVENTS_ENABLE_KANBAN_CARD_CUSTOMIZATION","EVENTS_DISABLE_KANBAN_CARD_CUSTOMIZATION","EVENTS_ENABLE_GALLERY_CARD_CUSTOMIZATION","EVENTS_DISABLE_GALLERY_CARD_CUSTOMIZATION","EVENTS_ENABLE_CALENDAR_RANGE_SELECTION","EVENTS_DISABLE_CALENDAR_RANGE_SELECTION","EVENTS_FORM_VIEW_BRANDING_DISABLING_ALLOWED","EVENTS_FORM_VIEW_BRANDING_DISABLING_NOT_ALLOWED","EVENTS_BASE_EDITABLE_COLLABORATOR_COUNT_UPDATE","EVENTS_BASE_NONEDITABLE_COLLABORATOR_COUNT_UPDATE","EVENTS_AUTOMATION_BANNER_MAX_ACTIVE_LIMIT_REACHED","EVENTS_AUTOMATION_BANNER_REMOVE","EVENTS_ACTIVITY_LOG_BANNER_LIMITED_LOG","EVENTS_ACTIVITY_LOG_BANNER_REMOVE","EVENTS_USER_PANEL_BANNER_USER_LIMIT_REACHED","EVENTS_USER_PANEL_BANNER_REMOVE","EVENTS_BASE_BANNER_TEMPLATE_UPDATE","EVENTS_AUTOMATION_BANNER_TEMPLATE_UPDATE","EVENTS_AUTOMATION_BANNER_TEMPLATE_META_UPDATE","EVENTS_IS_ACTIVITY_LOG_BANNER_UPDATE","EVENTS_ACTIVITY_LOG_DURATION_UPDATE","EVENTS_IS_RUN_HISTORY_LOG_BANNER_UPDATE","EVENTS_RUN_HISTORY_LOG_DURATION_UPDATE","EVENTS_PREMIUM_FEATURE_INSERT","EVENTS_PREMIUM_FEATURE_CREATOR_EXPORT_UPDATE","EVENTS_PREMIUM_VIEW_INSERT","EVENTS_PREMIUM_FIELD_INSERT","EVENTS_PREMIUM_AUTOMATION_TRIGGER_BEFORE_INSERT","EVENTS_PREMIUM_AUTOMATION_TRIGGER_INSERT","EVENTS_PREMIUM_AUTOMATION_ACTION_INSERT","EVENTS_REMAINING_RECORD_COUNT_UPDATE","EVENTS_TOTAL_RECORD_COUNT_UPDATE","EVENTS_ACTIVE_AUTOMATION_ALLOWED_COUNT_UPDATE","EVENTS_SCHEDULAR_AUTOMATION_MAX_COUNT_UPDATE","EVENTS_SCHEDULAR_AUTOMATION_USED_COUNT_UPDATE","EVENTS_USED_AUTOMATION_COUNT_UPDATE","EVENTS_BASE_COLLABORATORS_COUNT_UPDATE","EVENTS_BASE_FORM_MAX_ALLOWED_COVER_IMAGE_SIZE","EVENTS_BASE_FORM_MAX_ALLOWED_LOGO_SIZE","EVENTS_TABLE_RECORD_COMMENTS_LOAD","EVENTS_TABLE_RECORD_COMMENTS_INSERT","EVENTS_TABLE_RECORD_COMMENTS_UPDATE","EVENTS_TABLE_RECORD_COMMENT_STATUS","EVENTS_TAB_UNDO_COUNT","EVENTS_TAB_REDO_COUNT","EVENTS_TAB_UNDO_REDO","EVENTS_GRID_GROUPBY_LOAD_ORDER","EVENTS_GRID_GROUPBY_INSERT_ORDER","EVENTS_GRID_GROUPBY_LOAD_META","EVENTS_GRID_GROUPBY_INSERT_META","EVENTS_GRID_GROUPBY_UPDATE_META","EVENTS_GRID_GROUPBY_DELETE_ORDER","EVENTS_GRID_GROUPBY_REORDER","EVENTS_GRID_GROUPBY_META_ORDER_LOAD","EVENTS_GRID_GROUPBY_META_ORDER_INSERT","EVENTS_GRID_GROUPBY_META_ORDER_DELETE","EVENTS_GRID_GROUPBY_META_LOAD","EVENTS_GRID_GROUPBY_META_INSERT","EVENTS_GRID_GROUPBY_META_RECORD_IDS_ORDER_LOAD","EVENTS_GRID_GROUPBY_META_RECORD_IDS_ORDER_INSERT","EVENTS_GRID_GROUPBY_META_UPDATE_VALUE","EVENTS_GRID_GROUPBY_META_UPDATE_COUNT","EVENTS_GRID_GROUPBY_META_UPDATE_EXPAND","EVENTS_GRID_GROUPBY_META_SUMMARY_UPDATE","EVENTS_GRID_GROUPBY_META_RECORD_ORDER_DELETE","EVENTS_GRID_GROUPBY_META_RECORD_REORDER","EVENTS_GRID_GROUPBY_DATA_SYNC_REQUIRED","EVENTS_SNAP_ORDER_INSERT","EVENTS_SNAP_ORDER_LOAD","EVENTS_SNAP_ORDER_DELETE","EVENTS_SNAP_LIMIT_REACHED","EVENTS_SNAP_SORT_TYPE_ORDER_UPDATE","EVENTS_SNAP_FILTER_TYPE_UPDATE","EVENTS_SNAP_MODIFIED_TIME_UPDATE","EVENTS_SNAP_BEFORE_UPDATE","EVENTS_SNAP_AFTER_UPDATE","EVENTS_SNAP_NAME_UPDATE","EVENTS_SNAP_EDITING_USER_UPDATE","EVENTS_SNAP_EDITABLE_UPDATE","EVENTS_SNAP_ACTIVE_WIZ_UPDATE","EVENTS_SNAP_WIZ_ORDER_UPDATE","EVENTS_SNAP_URL_UPDATE","EVENTS_SNAP_SHARE_ENABLED_UPDATE","EVENTS_SNAP_SHARE_PASSWORD_UPDATE","EVENTS_SNAP_SHARE_EXPIRY_DATE_UPDATE","EVENTS_SNAP_SHARE_USER_TYPE_UPDATE","EVENTS_WIZ_BEFORE_UPDATE","EVENTS_WIZ_AFTER_UPDATE","EVENTS_WIZ_HEIGHT_UPDATE","EVENTS_WIZ_WIDTH_UPDATE","EVENTS_WIZ_CARD_LIMIT_REACHED","EVENTS_WIZ_GRID_CARD_LIMIT_REACHED","EVENTS_WIZ_CARD_LOAD","EVENTS_WIZ_CARD_INSERT","EVENTS_WIZ_CARD_DELETE","EVENTS_WIZ_CARD_DUPLICATE","EVENTS_WIZ_CARD_ROW_UPDATE","EVENTS_WIZ_CARD_COLUMN_UPDATE","EVENTS_WIZ_CARD_HEIGHT_UPDATE","EVENTS_WIZ_CARD_WIDTH_UPDATE","EVENTS_WIZ_CARD_TYPE_UPDATE","EVENTS_SNAP_AGGREGATE_TABLE_UPDATE","EVENTS_SNAP_AGGREGATE_FIELDS_META_LOAD","EVENTS_SNAP_AGGREGATE_FIELD_META_UPDATE","EVENTS_SNAP_AGGREGATE_FIELD_UPDATE","EVENTS_SNAP_AGGREGATE_FORMULA_UPDATE","EVENTS_SNAP_AGGREGATE_GROUP_BY_FIELD_UPDATE","EVENTS_SNAP_AGGREGATE_GROUP_BY_TYPE_UPDATE","EVENTS_SNAP_AGGREGATE_SHOW_SECONDARY_LABEL_UPDATE","EVENTS_SNAP_AGGREGATE_SHOW_SECONDARY_VALUE_UPDATE","EVENTS_SNAP_AGGREGATE_SHOW_DIFFERENCE_UPDATE","EVENTS_SNAP_AGGREGATE_TITLE_UPDATE","EVENTS_SNAP_AGGREGATE_COLOR_UPDATE","EVENTS_SNAP_AGGREGATE_ALIGN_TYPE_UPDATE","EVENTS_SNAP_AGGREGATE_PRIMARY_VALUE_UPDATE","EVENTS_SNAP_AGGREGATE_SECONDARY_LABEL_UPDATE","EVENTS_SNAP_AGGREGATE_SECONDARY_VALUE_UPDATE","EVENTS_SNAP_AGGREGATE_DIFFERENCE_UPDATE","EVENTS_SNAP_AGGREGATE_FIELD_ORDER_LOAD","EVENTS_SNAP_AGGREGATE_FIELD_REORDER","EVENTS_SNAP_CHART_TABLE_UPDATE","EVENTS_SNAP_CHART_TYPE_UPDATE","EVENTS_SNAP_CHART_FIELDS_META_LOAD","EVENTS_SNAP_CHART_FIELD_META_UPDATE","EVENTS_SNAP_CHART_FORMULA_UPDATE","EVENTS_SNAP_CHART_GROUP_BY_FIELD_UPDATE","EVENTS_SNAP_CHART_DRAW_WITH_UPDATE","EVENTS_SNAP_CHART_TITLE_UPDATE","EVENTS_SNAP_CHART_X_AXIS_LABEL_UPDATE","EVENTS_SNAP_CHART_Y_AXIS_LABEL_UPDATE","EVENTS_SNAP_CHART_LEGEND_POSITION_UPDATE","EVENTS_SNAP_CHART_COLOR_THEME_UPDATE","EVENTS_SNAP_CHART_DATA_UPDATE","EVENTS_SNAP_RTE_HTML_UPDATE","EVENTS_SNAP_GRID_TABLE_UPDATE","EVENTS_SNAP_GRID_TABLE_PRIMARY_FIELD_UPDATE","EVENTS_SNAP_GRID_FIELD_LOAD","EVENTS_SNAP_GRID_FIELD_ORDER_LOAD","EVENTS_SNAP_GRID_FIELD_RESIZE_UPDATE","EVENTS_SNAP_GRID_FIELDS_HIDE","EVENTS_SNAP_GRID_FIELDS_REORDER","EVENTS_SNAP_GRID_SORT_LIMIT_REACHED_UPDATE","EVENTS_SNAP_GRID_SORTS_LOAD","EVENTS_SNAP_GRID_SORT_UPDATE","EVENTS_SNAP_GRID_SORTS_DELETE","EVENTS_SNAP_GRID_SORTS_REORDER","EVENTS_SNAP_GRID_FILTER_CONDITION_UPDATE","EVENTS_SNAP_GRID_FILTER_LOGICAL_UPDATE","EVENTS_SNAP_GRID_FILTER_ITEMS_REORDER","EVENTS_SNAP_GRID_FILTER_ITEMS_LOAD","EVENTS_SNAP_GRID_FILTER_ITEM_UPDATE","EVENTS_SNAP_GRID_FILTER_ITEM_DELETE","EVENTS_SNAP_GRID_TITLE_UPDATE","EVENTS_SNAP_GRID_RECORD_HEIGHT_UPDATE","EVENTS_SNAP_GRID_RECORD_ORDER_UPDATE","EVENTS_SNAP_CHART_FILTER_TYPE_UPDATE","EVENTS_SNAP_CHART_FILTER_CONDITION_UPDATE","EVENTS_SNAP_CHART_FILTER_LOGICAL_UPDATE","EVENTS_SNAP_CHART_FILTER_ITEMS_REORDER","EVENTS_SNAP_CHART_FILTER_ITEMS_LOAD","EVENTS_SNAP_CHART_FILTER_ITEM_UPDATE","EVENTS_SNAP_CHART_FILTER_ITEM_DELETE","EVENTS_SNAP_AGGREGATE_FILTER_TYPE_UPDATE","EVENTS_SNAP_AGGREGATE_FILTER_CONDITION_UPDATE","EVENTS_SNAP_AGGREGATE_FILTER_LOGICAL_UPDATE","EVENTS_SNAP_AGGREGATE_FILTER_ITEMS_REORDER","EVENTS_SNAP_AGGREGATE_FILTER_ITEMS_LOAD","EVENTS_SNAP_AGGREGATE_FILTER_ITEM_UPDATE","EVENTS_SNAP_AGGREGATE_FILTER_ITEMS_DELETE","EVENTS_SNAP_CHART_FIELDS_TO_PLOT_REORDER","EVENTS_SNAP_CHART_FIELDS_TO_PLOT_ORDER_LOAD","EVENTS_SNAP_CHART_FIELDS_TO_PLOT_LOAD","EVENTS_SNAP_CHART_FIELDS_TO_PLOT_UPDATE","EVENTS_SNAP_CHART_FIELDS_TO_PLOT_DELETE","EVENTS_SNAP_CHART_FIELDS_TO_PLOT_INSERT","EVENTS_SNAP_CHART_FIELD_ORDER_LOAD","EVENTS_SNAP_CHART_FIELD_REORDER","EVENTS_AUTOMATION_RUN_HISTORY_ORDER_LOAD","EVENTS_AUTOMATION_RUN_HISTORY_ORDER_APPEND","EVENTS_AUTOMATION_RUN_HISTORY_ORDER_PREPEND","EVENTS_AUTOMATION_RUN_HISTORY_LAST_LOADED_AHR_ID","EVENTS_AUTOMATION_RUN_HISTORY_SHOW_UPGRADE","EVENTS_AUTOMATION_RUN_HISTORY_HAS_MORE","EVENTS_AUTOMATION_RUN_HISTORY_FILTER_STATUS_OPTION_UPDATE","EVENTS_AUTOMATION_RUN_HISTORY_SORT_OPTION_UPDATE","EVENTS_AUTOMATION_RUN_HISTORY_FILTER_DATE_OPTION_UPDATE","EVENTS_VERSION_NAME_UPDATE","EVENTS_VERSION_DESCRIPTION_UPDATE","EVENTS_VERSION_HISTORY_INSERT","EVENTS_VERSION_HISTORY_LOAD","EVENTS_SHOW_LOAD_MORE_VERSIONS","EVENTS_PREVIEW_VERSION_UPDATE","VALID_EMAIL_ID_REGEX","VALID_URL_REGEX","VALID_PHONE_NUMBER_REGEX","NUMBER_FIELD_REGEX","PERCENT_FIELD_REGEX","CURRENCY_FIELD_REGEX","PHONE_NUMBER_FIELD_REGEX","REPLACE_REGEX_FOR_NUMBER_FIELD","REPLACE_REGEX_FOR_PERCENT_FIELD","REPLACE_REGEX_FOR_CURRENCY_FIELD","REPLACE_REGEX_FOR_PHONE_NUMBER_FIELD","IP_ADDRESS_REGEX","DOT","isValidEmailID","emailID","isValidURL","isValidPhoneNumber","phoneNumber","isValidNumberFieldData","data","isValidPercentFieldData","isValidCurrencyFieldData","isValidPhoneNumberFieldData","getActualDataForNumberField","newData","valueAfterMinusSignFilter","applyFilterForMinusSign","applyFilterForDot","getActualDataForPercentField","getActualDataForCurrencyField","getActualDataForPhoneNumberField","minusIndex","minusLastIndex","dotIndex","dotLastIndex","iterator","count","secondIndex","getTextAndLinkFromTextFieldData","textFieldData","totalMatches","rightString","valueToBeSubtracted","resultArray","matchValueArray","matchValue","matchIndex","valueForComparing","leftString","isPhoneNumber","isEmailID","isURL","hasStringContainsOnlyNumbersAndDots","matchValueLength","inputString","ZSGrid","ZSClass","ZSConstants","ZSInterface","ZSModules","ZSMain","ZSOle","CG","Engine","Classes","Constants","Cells","Headers","Nodes","Panes","Utility","Layers","MultiImageNode","TablesMultiImage","autoNumber","createdTime","createdBy","modifiedBy","collaboratorSS","collaboratorMS","date","email","findAnItem","formula","modifiedTime","multiSelect","number","percent","attachment","singleSelect","linkFieldMultiSelect","linkFieldSingleSelect","lookup","rating","singleLineText","url","MULTI_SELECT_COLOR","CSS_VARIABLES","TABLES_URL","TIME_ZONES","DATE_CONSTANTS","MAILTO","TEL","ANONYMOUS_USER","timeoutID","DEBOUNCE_TIME","getAutoFitWidth","interacter","col","maxRow","maxWidth","cell","cellWidth","startRow","startCol","endRow","endCol","isRowHeaderRequired","isColHeaderRequired","parser","callback","doCopy","row","recordID","textFieldValue","className","styles","color","userName","userImageURL","self","fusion","absoluteDate","time","timeStamp","ValueHolder","timeFormat","ValueHolders","fromValueHolder","fromTimeStamp","fromDateFormat","fromTimeFormat","fromHourCycle","toValueHolder","toTimeStamp","toDateFormat","toTimeFormat","toHourCycle","fromDate","toDate","horizontalAlignment","verticalAlignment","character","event","locale","timeZone","content","newContent","getLightColor","getModifiedColor","type","template","properties","svg","style","ID","option","parent","grid","height","width","div","a","textNode1","aTag","text","textNode2","selectedIDs","names","id","successCallback","attachmentIDs","fileName","image","e","refreshGrid","keywords","bubble","selectedIDsLength","bubble1","options","totalIDs","filteredIDs","innerCircleColor","outerCircleColor","componentDomRect","plusIconDomRect","selfDomRect","top","left","formulaReturnTypes","returnTypeFormats","thousandSeparator","precision","format","symbol","position","showSymbol","autoDetectHyperlink","textAndLinkArray","meta","value_","formattedValue","underline","node1","element","setAsFormula","regex","FIELD_ID_REGEX","FORMULA_REGEX","UNKNOWN_FIELD_ID","fragment","contents","fieldIDWithBraces","fieldName","textNode","elem","val","getDarkColor","split","lighter","linkField","recordIDsLength","allowDuplicateLinkedRecords","recordCounts","recordNames","ReadOnlyOption","moreOptionCount","recordIDCountMap","seenCount","optionDom","clonedDom","renderRVReadWriteLinkFieldDuplicateChips","component","recordIDs","ReadWriteOption","patchRecordViewLinkFieldDuplicateSetData","componentClass","originalSetData","dom","patchPrimaryLinkFieldReadOnlySetData","placeholder","ultraLightColor","userID","getBackgroundColor","baseID","TableState","TableClasses","Editor2","TableLocale","getLocale","setLocale","LOCALE","getDGInteracter","setDGInteracter","dgInteracter_","CustomCallback","fn","params","param","Pubsub","grp","custCallback","_","customCallback","evt","funcRef","subscribers","exec","Response","LinkedRecordID","tableID","StateView","linkedRecordID","bool","records","StateTable","viewID","StateBase","automationID","copyKey","GRID_SELECTION_VIEW_TYPE","CALENDER_SELECTION_VIEW_TYPE","GALLERY_SELECTION_VIEW_TYPE","KANBAN_SELECTION_VIEW_TYPE","FORM_SELECTION_VIEW_TYPE","AbstractSelection","CalenderViewSelection","state","GalleryViewSelection","SelectionState","selectionState","RepaintSelectionState","NavigationInteracter","recordCount","getRecordCount","currentCellSelection","currentCellSelectionStartRow","currentCellSelectionStartCol","currentCellSelectionEndRow","currentCellSelectionEndCol","fieldIDs","leastRecordIndex","leastFieldIndex","placedAtleastOneSelection","fieldIndex","getFieldIndex","rangeID","activeCellRecordID","activeCellFieldID","activeCellRecordIndex","getRecordIndex","activeCellFieldIndex","recordIndex","minFieldIndex","maxFieldIndex","minRecordIndex","maxRecordIndex","emptyRowCount","base","table","recordAxis","fieldAxis","GridViewSelection","RangeMap","range","pre","iterator1","cur","KanbanState","stackID","isCollapse","getSelection","viewType","ViewState","KEY_DELIMITER","WorkspaceState","getViewStateKey","viewState","tempLayoutGridID","tempLayoutCalendarID","State_","layoutID","workspaceState","portalID","moduleType","mode","layoutIDs","State","templates","getTemplate","templateID","getTemplateByID","selectorID","getTemplateByClassName","selectorClassName","_callbackContext","_acceptableEventNames","eventName","validateEventName","eventList","WDUtil_","WDUtil","propNames","BASE_THEME_CONFIGURATION","BUBBLE_NODE_COLOR_PALETTE_CONFIGURATION","BASE_DARK_THEMES","BASE_LIGHT_THEMES","BUBBLE_NODE_DARK_THEMES","BUBBLE_NODE_LIGHT_THEMES","BUBBLE_NODE_ULTRALIGHT_THEMES","FORM_ULTRALIGHT_THEMES","THEME_CLASSES","NON_COLORED_BUBBLE_NODE_COLOR","getBaseTextColor","colorLowerCase","isTextColorLight","getDarkThemeColor","getLightThemeColor","getUltraLightThemeColor","isDarkThemeColor","getBubbleNodeInnerCircleColor","getBubbleNodeOuterCircleColor","getBubbleNodeTextColor","getBaseThemeBodyClassChanges","bodyClassToApply","cls","getRecordColor","getCardColor","getCardLightColor","getCardCoverColor","getFormColorThemeBorderColor","DATE_FORMAT_MONTH_D_YYYY","DATE_FORMAT_DD_MM_YYYY","DATE_FORMAT_MM_DD_YYYY","DATE_FORMAT_YYYY_MM_DD","globalThis_","dateFormatter","timeFormatter","TIME_ZONE_UTC","encodeFromAbsoluteDate","dateObject","decodeToAbsoluteDate","getDateStringToBeRendered","UTCTimeStamp","getTimeStringToBeRendered","getMessage","message","buildContentFragment","part","span","anchor","LINK_CHIP_COUNT_CLASS","LINK_CHIP_LABEL_WRAPPER_CLASS","buildLinkChipTooltipText","label","clearDescendantTitles","chipEl","titled","attachLinkChipRemoveTooltip","removeEl","attachLinkChipCountTooltip","rawCount","shouldShowLinkCountBadge","showSingleCount","normalizedCount","formatLinkCountDisplay","n","formatLinkCountOneDecimal","truncated","applyLinkCountBadgeClasses","badge","countText","createEmptyLinkCountBadgeElement","cloneTemplateRootOrFallback","fallback","createLinkCountBadgeElement","createEmptyLinkChipLabelContent","wrapper","labelEl","createLinkChipLabelContent","toLinkChipRenderingOptions","linkValues","linkValue","renderedLabel","LinkChipCustomRenderer","rendererParams","bgColor","onRemove","chipRoot","labelWrapper","suffixElem","removeIconSpan","removeIconSvg","gElement","path1","path2","removeHandled","handleRemove","attachLinkChipSelectedValueRenderer","force","decorateLegacyLinkOptionDom","existing","badgeText","readLinkChipLabel","placeBadgeInOptionDom","nameEl","buttonName","chipClone","clonedBadge","closeButton","button","buttonClose","decorateLegacyLinkOptionsContainer","container","counts","decorateLinkChipsFromValueHolder","compactLinkRecordIds","recordIds","uniqueIds","indexById","recordId","existingIndex","expandLinkRecordIds","expanded","j","encodeLinkSubmitValue","allowDup","alignedCounts","token","splitLinkIdAndCount","fromClean","fromRaw","sanitized","sanitizeLinkIdsAndCounts","countPayload","hasMultiplicity","resolveAllowDuplicateLinkedRecords","valueHolder","fallbackFlag","_baseID","_tableID","_fieldID","resolveUsableViewID","preferredViewID","viewOrder","wireLinkMultiSelectValueHolder","isCompactLinkResponseValue","parsed","isNumericCountArray","values","isCompactLinkSubmitValue","raw","tabIndex","parsedCount","separatorIndex","suffix","tokens","existingCounts","tokenCount","fromExisting","addCount","encodeLinkValueFromValueHolder","fallbackAllowDuplicateLinkedRecords","rawIds","rawCounts","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","module","__webpack_modules__","exports","definition","binding","descriptor","obj","prop","ctx","Table","useMinFile","jsPATH","cssPATH","imageServerURL","teamDrivePreviewURL","teamDriveDownloadURL","teamDriveServerURL","isCsezSetup","AppRegistry","keydown","keyCombo","Stack","Context","KeyDown","propagate","UpgradeConfirmationDialog","upgradeConfirmationDialogEventHandler","pricingConfirmationDialogTemplate","DialogModal","dialogModalTemplate","pricingUpgradeButtonTemplate","pricingConfrimationDialogEventHandler","pricingConfirmationDialogDom","sibiling","serviceID","redirectionURL","planRedirectionURL","isPortalOwner","isZohoOnePortal","zohoOneRedirectionURL","PricingUpgradeButton","printer","Pattern","print","args","log","result","Logger_","Logger","MurphyUtility","detail","error_details","envData","digestValue","hashBuffer","b","LogError","error","errortag","errorMeta","errorData","ToastersContainerClass","toasterDom","toaster","timeOut","toastId","ToastersMsgContainer","ErrorDomToaster","ErrorToaster","msg","WCErrorConstants","RESPONSE_KEYS","ErrorMsg","ERROR_KEY","EXCEPTION","ERROR_CODE","getStaticErrorMessage","errorcode","getErrorMessage","errorKey","getDynamicErrorMessage","dynamicContent","getDynamicMessage","parseErrorResponse","response","resp","baseResponse","actionInfo","errorCode","parseClientFailureException","exceptionResponse","DisplayErrorToaster","errorMessage","pricingUpgradeButton","removeClassList","CONTENT_TYPE","HTML","JAVASCRIPT","OCTET_STREAM","MULTIPART_FORM_DATA","GIF","JPEG","PNG","SVG","WEBP","URL_ENCODED_FORM","RESPONSE_HEADER_SPLITTER","DEFAULT_RETRY_COUNT","RETRY_HEADERS","AjaxRequest","METHOD","EVENTS","method","loadProgressEventListeners","onReadyStateChange","onTransportError","loadRequestHeadersToXmlHttpRequest","encodedData","getEncodedFormData","arr","headerMap","parts","header","payload","xmlHttpRequest","readystate","status","isSuccess","dispatchEventList","AjaxRequestCompleteEvent","ajaxRequestCompleteEvent","progressEventListeners","headers","headerName","headerValue","formData","encodedFormData","URLEncodedFormData","urlEncodedFormData","encodedFormPair","responseCode","getCSRFCookie","readCookie","nameEQ","cookieAry","cookie","UserPresence","tabID","pcounter","ProfileConstants","STORAGE_KEY","storage","UserProfileStorage","rootColors","TabProfile_","initUserProfile","TabProfileIDUpdateEvent","userProfileStorage","setDefaultUserProfileValueIfUndefined","defaultValue","target","TabProfile","UTF_8_URL_ENCODED","QuickAction","rid","paramArray","getTabID","blob","SnapPublishPageQuickAction","FetchPublishSnapAction","snapURL","password","resolve","reject","action","requestURL","SNAP_PASSWORD","SUCCESS","FAILURE","ComponentType","DSAttachmentField","resourceId","extension","init","User","permission","viewIDs","viewIDIndex","FILE_URL","Collaborator","getBaseColor","getImageServerURL","userEmailID","userPermission","userModuleType","userIsEnabled","userIsEditable","user","collaboratorID","userType","userLevel","userWSRole","removedUserName","collaborators","collaboratorGroup","emailIDLowercase","valueToCompare","SENTIMENTS","SENTIMENTS_LABEL","SENTIMENT_DOM","SentimentsSection","property","sentimentDOMName","sentimentDOM","EmotionDOM","emotionEventCallbacks","sentiments","sentiment","EMOTIONS_CONSTANT","EMOJI_PATH","DSSentimentsField","order","emotionID","emojiID","DSSnapTable","recordData","field","Aggregation","Chart","Rte","Grid","getAggregationBitset","getChartBitset","getRteBitset","getGridBitset","generateComponentBitsetForRendering","componentType","generateFullComponentBitset","getAlwaysNeededBitsetForPropertiesPanel","SortOrder","FilterType","CREATE_FIRST_FIELDS_TO_PLOT_RELATIVE_ID","Alignment","ChartType","Direction","DrawWith","ChartTypes","ChartLegendPosition","ChartDirection","ChartColor","CHART_TITLE_STYLE","CHART_FONT_FAMILY","CHART_AXIS_STYLE","GROUP_BY_FIELDTYPES","ChartSingleColor","HASHEDID_REGEX","Filter","filterID","condition","logicalString","getOrder","filterOrder","filterOrderLength","currentFieldID","DSAggregation","tableName","fields","beforeFieldID","afterFieldID","groupByType","showSecondaryLabel","showSecondaryValue","showDifference","title","alignType","primaryValue","secondaryLabel","secondaryValue","difference","DSChart","fieldsToPlotID","fieldsToPlotIDs","beforeFieldsToPlotID","fieldsToPlot","afterFieldsToPlotID","viewName","chartFields","drawWith","xLabel","yLabel","legendPosition","chartType","Sort","sortID","sortType","sortOrder","DSGrid","sortLimitReach","primaryFieldID","recordHeight","recordOrder","fieldsOrder","filterType","DSRte","html","DSComponentFactory","DSCard","column","loadedBitset","DSWiz","isCardLimitReached","isGridCardLimitReached","cardID","card","DSSnapPublish","icon","baseTimeZone","multiSelectID","multiSelectDS","attachmentID","attachmentDS","sentimentDS","relationshipID","relationship","wizOrder","wizID","wiz","newWiz","tableDS","dsTable","cardDS","componentDS","PasswordDialog","keyListener","bindKeyboardListener","unbindKeyboardListener","BaseIconConstants","getBaseIconName","FIELD_TYPE_BUTTONS","FIELD_TYPE_BUTTONS_","getFieldTypeIcon","fieldInstance","getFieldIcon","fieldTypeButton","clone","currentScript","getSVGIconPath","iconID","getGalleryPrintSVGIconPath","AggregationRenderPropertiesDataProvider","AggregationPropertiesDataProvider","filter","fieldOrder","ChartRenderPropertiesDataProvider","ds","ChartPropertiesDataProvider","generateComponentRenderJson","aggregationDS","chartDS","gridDS","fieldsWidth","_a","generateComponentPropertyJson","sortDS","filterDS","sortsInfo","filterInfo","AGGREGATION_PROPERTY","CHART_PROPERTY","TEXT_PROPERTY","GRID_PROPERTY","setEndOfContenteditable","el","selection","getBaseFromCurrentURL","origin","paths","getBaseIDFromCurrentURL","getTableIDFromCurrentURL","tableIndexInUrl","getViewIDFromCurrentURL","viewIndexInUrl","getHashedViewIDFromCurrentURL","getShareViewURL","getCDNStaticURL","jsPath","staticMap","getStorePageURL","stringInterpolate","str","interpolate","vals","DYNAMIC_STRING_START","DYNAMIC_STRING_END","getDynamicHTMLFragment","dynamicObject","DYNAMIC_IDX","sIdx","eIdx","txtNode","getDynamicHTMLFragmentNew","templateTag","strings","getTextElement","getCircleLoaderDom","loader","getSkeletonLoaderDom","getPageLoaderDom","getSnapBuilderLoaderDom","delay","isNotNullOrUndefined","isNotUndefined","getSnapCDNStaticURL","getDeepCloneDom","excludeChildren","recursiveClone","child","childClone","colors","borderColors","GroupInterval","COUNT_FORMULA","VIEW_ICON_SVG_TEMPLATE_FROM_TYPE","AggregationUI","category","prefix","categoryLabel","valueSpan","align","none","usDollar","europeanEuro","britishPound","japaneseYen","canadianDollar","australianDollar","chineseYuan","swissFranc","singaporeDollar","indianRupee","southAfricanRand","right","accounting","capitalizeEachWord","lowercase","uppercase","sentenceCase","twelveHour","twentyFourHour","friendlyFormat","dateMonthYear","monthDateYear","yearMonthDate","date1","date2","date3","date4","CURRENCIES","PRECISIONS","CURRENCY_POSITIONS","TEXT_FORMATS","PHONE_NUMBER_FORMATS","DATE_FORMATS","DATE_FORMATS_DISPLAY_FORMATS","TIME_FORMATS","SUPPORTED_TEXT_FORMATS","RATING_ICON_TEMPLATES","CHECKBOX_ICONS_ORDER","RATING_ICONS_ORDER","MULTI_SELECT_OPTION_COLORS","MAX_COUNTS","FORMULA_CONSTANTS","FORMULA_NAME","FIELDBASED_SUPPORTED_FORMULA","FORMULA_SHOULD_MAINTIAN_LEAFSTYLE","CONSTANTS","multiplyBy100","fractionalPartLength","parseFormulaDataResponse","fieldValue","json","err","getSelectedIDs","selectedID","getSelectedID","getAutoNumber","getMultipleValues","getRating","getAttachmentURLs","attachmentURLs","attachmentIds","attachmentInfo","attachmentFormatter","attachments","attachmentMeta","attachmentFormmatterforCopy","getRelationshipProperty","relationshipDirection","allowMultiple","allowRepeated","getLinkFieldMetas","leafFieldParameters","dataAccess","_error","dataArray","dataArrayLength","formattedData","getLinkFieldFormattedData","rawData","fieldSpecifications","initialValue","stepSize","rawDataArray","fileNames","fileExtension","resolveAttachmentDS","formattedDate","formattedTime","resolveMultiSelectDS","optionIDs","collaboratorDS","resolveCollaboratorDS","userIDs","formatArray","formats","parseLookupDataResponse","formattedDatas","getLookupFieldFormattedData","getRollupFieldFormattedData","formulaID","timeString","isCurrencyPositionAccounting","divideBy100","getMultiSelectDS","getCollaboratorDS","getAttachmentDS","ZCOMPONENTS_DATE_FIELD_DATE_FORMATS","ZCOMPONENTS_DATE_FIELD_TIME_FORMATS","ZCOMPONENTS_DATE_FIELD_PLACEHOLDER_DATE_FORMATS","ZCOMPONENTS_DATE_FIELD_PLACEHOLDER_TIME_FORMATS","ZOHO_TABLES_TIME_FORMAT","THOUSAND_SEPARATOR","PRECISION","getFieldTypeSpecifications","specifications","getLeafFieldSpecifications","leafFieldProps","getModifiedFieldTypeSpecifications","textFormat","modifiedFormats","getNewFieldTypeSpecifications","currencyFormatter","numberFormatter","percentFormatter","autoNumberFormatter","getKPIDisplayData","fieldProps","specs","AggregationViewManager","props","groupByFieldID","alignment","primaryDisplayValue","showMonth","showPrevious","secondaryDisplayValue","AggregationViewProvider","ModuleLoader","urls","len","createNode","bindOnLoad","src","async","StaticFilesLoader","files","moduleLoader","cssPromise","res","jsPromise","r","OPTIONS","VALUES","DELIMITERS","HOUR_CYCLES","NUMBER_OPTIONS","NUMBER_DELIMITERS","NUMBER_CONSTANTS","NUMBER_REGEX","PERCENT_SYMBOL","CURRENCY_POSITION","PHONENUMBER_DELIMITERS","isCurrencyNegativeNumber","CURRENCY_DELIMITERS","REGEX","SENTENCE_CASE_REGEX","datePreProcessData","setDateFormat","formatter","formatData","formatParts","day","month","year","formatPart","quarter","weekNumber","getWeekNumber","endDate","startDate","setTimeFormat","setHourCycle","formatTimeData","hour","minute","second","dayPeriod","actualData","numberPreProcessData","setMaximumFractionDigits","setGrouping","formatNumberData","fractionPart","diff","precentPreProcessData","formatPrecentData","isShowMinusSignInAccountingFormat","currencyPreProcessData","formatCurrencyData","phoneNumberFormatter","isMatching","formatPhoneNumberData","formatAutoNumberData","singleLineTextFormatter","testString","formatTextData","getInitCapsString","char","initCapsString","transformToCaps","isAlphabet","TIME_FORMAT","UNCATEGORISED","getChartDisplayData","numberField","acc","precentField","displayData","sentimentalField","FRAMEWORK","getChartID","CHART_RECORD_LIMIT","PIE_CHART_RECORD_LIMIT","getDefaultState","ChartUI","closeBtn","limit","rowCount","columnCount","errorMessageElement","chartData","limitExceed","dataRows","limitedHeader","limitedRows","maxRows","chartMeta","dataMeta","chartTitle","xAxisLabel","yAxisLabel","ids","valueId","selectionID","collabratorDS","colTypes","groupByField","lableFontSize","axisTitle","isXAxisLabelEmpty","xAxisConfig","ChartViewManager","dataProvider","colorTheme","xaxisLabel","yaxisLabel","ChartViewProvider","GRID_RENDER_READ_ONLY","GRID_RENDER_READ_WRITE","GRID_RENDER_DATA_MAINTAINER","GRID_SELECTION_READ_ONLY","GRID_SELECTION_READ_WRITE","GRID_SELECTION_DATA_MAINTAINER","GRID_MOUSEOVER_READ_ONLY","GRID_MOUSEOVER_READ_WRITE","GRID_MOUSEOVER_DATA_MAINTAINER","GRID_EDIT_READ_ONLY","GRID_EDIT_READ_WRITE","GRID_EDIT_DATA_MAINTAINER","RECORD_VIEW_READ_ONLY","RECORD_VIEW_READ_WRITE","RECORD_VIEW_DATA_MAINTAINER","GRID_MANAGER_ROLE","GRID_EDITOR_ROLE","GRID_DATA_MAINTAINER_ROLE","GRID_COMMENTOR_ROLE","GRID_VIEWER_ROLE","FORMATTER_LOCALE_US_LOCALE","KEYWORD_EXTRACT_BUBBLE_COLOR","ANONYMOUS_USER_LABEL","SYSTEM_USER_LABEL","ANONYMOUS_USER_EMAIL","SYSTEM_USER_EMAIL","RATING_ICON_RENDER_COLOR","SENTIMENT_EMOJI_CSS_CLASSNAME","SENTIMENT_CELL_CLASSNAME","SQUARED_BUBBLE_CSS_CLASSNAME","DOT_SINGLE_SELECT_CSS_CLASSNAME","RIGHT_ALIGN_FIELD_CSS_CLASSNAME","UNCOLORED_OPTION_COLOR","RECORD_COLOR_CLASSNAME","RECORD_COLOR_CSS_VARIABLE","CHECKBOX_ICON_STYLE","RATING_ICON_STYLE","PLACEMENT_FROM_ID","CURRENCY_CODE_FROM_ID","TEXT_FORMAT_LABEL_FROM_ID","FIELD_TYPE_CSS_CLASSNAME","DISABLED_FIELD_CSS_CLASSNAME","TEXT_FIELD_RECORD_SIZE_CLASSNAME","EMAIL_ID_REGEX","EmailValidator","mailID","autonumberFormatter","preProcessData","getCheckbox","OPTIONS_MAXIMUM_FRACTION_DIGITS","OPTIONS_MINIMUM_FRACTION_DIGITS","setFractionDigits","getMultipleEmailValues","optionColor","arrayOfEmails","multipleEmailValues","getDGMultipleEmailValues","getMultiplePhoneNumberValues","arrayOfPhoneNumber","multiplePhoneNumberValues","contact","getDGMultiplePhoneNumberValues","getMultipleTokenValues","anchorType","href","getNumberValues","getPercentValues","getMultipleURLValues","arrayOfURLs","multipleUrlValues","urlObj","getDGMultipleURLValues","getCollaboratorValue","userMailID","isRemovedUser","lightColorMapping","color1","color2","c1red","c1green","c1blue","c2red","c2green","c2blue","r_red","r_green","r_blue","lightColor","hexToRgb","hex","g","getAllCollaboratorIDs","activeUsersIDs","inactiveUsersIDs","removedUserIDs","getDropdownCollaboratorIDs","getAllCollaboratorValues","collaboratorIDs","collaboratorArray","getAllSelectionIDs","selectionDS","selectionIDs","getSingleSelectionValue","colouredOptions","getMultiSelectionValue","getSelectionValue","getSelectionValues","selectionArray","getAllowDuplicateLinkedRecords","getSentimentMeta","sentimentID","getSentimentOptions","sentimentOptions","imgSrc","getKeywordValues","bubbleColor","keywordValues","generateBubbleTypesFromStrings","bubbleValues","generateBubbleTypesFromStringsForLink","preserveDuplicateOccurrences","effectiveCounts","linkCount","parseRoundValue","convertedValue","isRound","areArraysEqual","arr1","arr2","valueAsString","valueReplacedString","createDGInteractor","domgridInstance","DGInteractor","rowIndex","immediateRender","config","rowMeta","pinPosition","fieldId","recordIndices","rowData","rowDefinition","parentKeys","relativeRecordIndex","insertPosition","rowsMetas","originalIndex","columnDefinition","columnDefinitions","fieldIds","fieldDefinition","sourceRecordIDs","targetRecordID","relativeFieldID","reorderedFieldIDs","positionString","hiddenFields","resizedField","resizedFields","hiddenFieldID","pinningAPI","userPresenceItems","userPresenceItemIDs","userPresenceItemID","userPresence","targetRow","toShow","refreshParams","rowId","columnId","record","columnIndex","initiatedFrom","suppressNavigation","cancelDataSubmit","cellPosition","scrollOnFocus","setRange","focus","x","y","cellEditingPosition","cellEditing","colsMatch","floatingMatch","indexMatch","isParentKeyMatch","groupPath","recursive","groupsInsertMeta","groupInsertMeta","groupIDs","summaryFieldID","summary","groupAppendMeta","startRowMeta","endRowMeta","startRowMetaObject","endRowMetaObject","sourceRecordMetas","targetRecordMeta","floatingRowNode","CSS_CLASSNAME_PRICING_ICON_MEDIUM_SIZE","CSS_CLASSNAME_HIDE","CSS_CLASSNAME_RECORDHEIGHT_SMALL","CSS_CLASSNAME_RECORDHEIGHT_MEDIUM","CSS_CLASSNAME_RECORDHEIGHT_LARGE","CSS_CLASSNAME_RECORDHEIGHT_EXTRALARGE","CSS_CLASSNAME_GRID_CONTAINER","BUFFER_SIZE","BUFFER_SPACE_RIGHT","BUFFER_SPACE_BOTTOM","SUMMARY_BAR_HEIGHT","FIELD_HEADER_HEIGHT","CACHE_BLOCK_SIZE","CACHE_BLOCK_COUNT","FETCH_TRIGGER_POINT","STATIC_CACHE_INDEX_START","DG_MODEL_TYPE","CHECKBOXSTATE_CHECKED","CHECKBOXSTATE_UNCHECKED","CHECKBOXSTATE_INDETERMINATE","FORMULA_RETURN_TYPE_MAPPING","RECORDHEIGHT_SMALL","RECORDHEIGHT_MEDIUM","RECORDHEIGHT_LARGE","RECORDHEIGHT_EXTRALARGE","DEFAULT_COLUMN_PIN_POSITION","DEFAULT_ATTACHMENT_PREVIEW","KEY_LABEL","DRAG_DROP_POSITION_FROM_MOVE_POSITION","MOVE_POSITION_FROM_TABLES_DRAG_DROP_POSITION","DRAG_DROP_POSTION_FROM_HORIZONTAL_DIRECTION","DRAG_DROP_POSTION_FROM_VERTICAL_DIRECTION","editor_initiated_from","SORT_FILTER_ANIMATION_DURATION","DEFAULT_WRITE_FIELD_TYPE_VALUES","debounce","getExpandIcon","expandIcon","eventHandler","CellInlineComponent","expandIconTemplate","_params","selectionParams","deSelectionParams","emptyElementHolder","DEFAULT_PLACEHOLDER_FOR_ADD_OPTION","DEFAULT_PLACEHOLDER_FOR_USER_NOT_FOUND","DEFAULT_PLACEHOLDER_FOR_ADD_COLLABORATOR","SelectedValueCustomRenderer","prefixElem","thumbnailDiv","thumbnailImg","labelSpan","SingleCollaboratorCustomChip","SentimentalValueCustomRenderer","createNewOptionRenderer","spanDelay","spanLoader","createText","customCollaboratorNoOptionRenderer","emptyPanel","card1","span1","card2","span2","heading","AddCollaboratorRenderer","MultipleTokenCustomRenderer","labelAnchor","mouseDownCallback","contextMenuCallback","DropdownOptionCustomRenderer","checkbox","customCheckbox","labelText","nameContainer","nameWrapper","nameSpan","emailSpan","SingleSelectChipCustomRenderer","rootElement","prefixElement","dotIcon","labelElement","SingleSelectDropdownOptionCustomRenderer","labelTextDiv","singleSelectRoot","dotSpan","SentimentDropdownOptionCustomRenderer","divText","sentimentContainer","headerSpan","valueContainer","img","textSpan","AvatarIconRenderer","CollaboratorDropdownOptionCustomRenderer","PlusIconRenderer","plusIconWrapper","svgNS","g1","g2","AttachmentmentPlusIconRender","plusIconHolder","onPlusIconClick","fieldCellEventHandler","RatingIconRenderer","clonedSvg","AttachmentImageRenderer","previewUrl","onError","EllipsesRenderer","circle1","circle2","circle3","getAttachmentExpandIcon","getBubbleUrlElement","chipMinWidth","singleDigitEllipsisChipWidth","doubleDigitEllipsisChipWidth","bubbleMarginX","defaultPlusIconWidth","HOVER_STATE_DELAY","hoverStateLastChipWrapper","hoverStateEllipsisWrapper","getHoverStatePlusIcon","startEditingCallback","plusIconElement","plusIcon","getHoverStatePlusIconForAttachment","getHoverStateEllipsisChip","ellipsisChipElement","binarySearchLastChip","chips","cellBottom","start","end","mid","chipBottom","nextChipBottom","reCalculateAvailableMetas","lastChipIndex","ellipsisChipWidth","plusIconWidth","cellBoundary","lineWrap","lastChipWidth","initialLastChipTop","lastChipWidthChangeNeeded","initialEllipsisChipCount","isRTL","conditionMet","chipRect","availableWidth","lastBubbleExceeds","ellipsisCountChanged","findEllipsisChipMeta","cellElement","computedCellValueStyle","optionsCount","hasPlusIcon","defaultEllipsisChipWidth","parentElementDimension","lastIndex","cellRight","cellLeft","isHeightNotExceeds","calculatedMetas","globalT","parentDOM","attachmentSize","renderConfig","images","visibleAttachmentCount","DGRendererConfig","timerId","hoverStateEllipsisChip","hoverStatePlusIcon","previewImages","ellipsisChipCount","renderableAttachmentCount","ellipsisChipCountFinal","selectionConfig","DG_Components","isSingleSelectedValue","AttachmentInlineComponent","AutoNumberInlineComponent","defaultConfig","CheckboxInlineComponent","componentElement","getAvatarIcon","imageUrl","SingleCollaboratorInlineComponent","handleClickBound","MultipleCollaboratorInlineComponent","rowHeight","readonly","selectedOptions","CreatedByInlineComponent","CreatedTimeInlineComponent","decodedValue","baseFormat","CurrencyInlineComponent","symbolPosition","decimalPrecision","thousandsSeparator","currencySymbol","hideSymbol","inputPrefix","inputSuffix","isAccounting","DateTimeInlineComponent","customFormat","EmailInlineComponent","MultipleEmailInlineComponent","ellipsesIcon","CoreKeywordExtractInlineComponent","CoreLanguageDetectionInlineComponent","parseSelectionID","createNewOptionForMultiSelectCallback","qaid","currentCellRecordID","currentCellFieldID","newOptionIDs","onDataUpdate","bitsetJSON","bitset","recordIDJSON","updateSelection","onSelectionOptionInsert","createNewOptionForSingleSelectCallback","disableCellEditAndPlaceCellSelectionCallback","newOptionID","singleSelectDS","recordBitset","singleselectFieldBitPosition","isPresent","singleSelectIndex","generateInputEvent","string","which","generateKeyDownEvent","generateKeyUpEvent","keyDownEvent","getOppositeTableID","sourceTableID","destinationTableID","getTable","onTableAttachmentDataUpdate","expandDialog","fieldIDList","updatedData","onAttachmentUpdate","getAttachmentInfo","info","onAttachmentInsert","getAttachments","uploadedFiles","file","oppositeTableID","oppositeViewID","oppositeFieldID","LinkInlineComponent","multiSelectConfig","LookupInlineComponent","ModifiedByInlineComponent","ModifiedTimeInlineComponent","MultiSelectInlineComponent","NumberInlineComponent","PercentInlineComponent","MultiplePhoneNumberInlineComponent","PhoneNumberInlineComponent","RatingInlineComponent","maxValue","checkedIcon","uncheckedIcon","onChange","icons","RollupInlineComponent","CoreSentimentalAnalysisInlineComponent","imageURL","emojiIcon","GanttStrokeColor","getGanttStrokeColor","SingleSelectInlineComponent","dotColor","selectionComponentConfig","HTTP","PROTOCOL_ARRAY","getUpdatedLink","link","protocol","AutoDetect","recordSizeClassName","_type","TextInlineComponent","item","autoDetecConfig","MultipleURLInlineComponent","selectionOptions","selectedValueArray","ele","URLInlineComponent","customCheckBoxRenderer","checkedElement","uncheckedElement","parentElement","STYLES","getFieldStylesByType","commonFunction","styleValues","fieldStyles","PLAN_TYPE","getPlanName","planType","formatMap","maxIteraction","formatValue","xCount","matchCount","iteration","getCapitalizedString","word","getFormattedText","isAIFieldDisabled","isFieldEphiRestricted","getClipboardConfig","getAutoNumberConfig","eventKey","fieldTypeSpecifications","autonumberValue","getCheckboxConfig","isChecked","iconStyle","iconColor","iconSVGElement","getMultipleCollaboratorConfig","collaboratorMeta","collaboratorOptionIDs","allCollaboratorOptions","selectedId","getSingleCollaboratorConfig","singleIndex","getCreatedByConfig","collaboratorValue","chipColor","ariaLabel","getCreatedTimeConfig","hourCycleValue","getCurrencyConfig","placement","currencyValue","coverterdValue","getDateTimeConfig","getMultipleEmailConfig","renderOptions","cellSelection","emailOption","onMouseDown","onContextMenu","anchorElement","getSingleEmailConfig","selected","getFormulaConfig","getKeywordExtractionConfig","indices","keyword","getSelectionConfig","handleClickForEllipses","getLanguageDetectorConfig","rowsCount","getLinkConfig","metas","linkSelectionContext","selectedIndexes","_option","selectedRecordIDs","selectedCounts","optionCount","getLookupConfig","lookupValues","selectedIndex","getModifiedByConfig","getModifiedTimeConfig","getMultipleSelectionConfig","coloredOptions","selectionValue","SelectedOptionColor","transformedValues","allSelectionIDs","allSelectionValues","idx","getNumberConfig","numberValues","getPercentConfig","percentValues","output","getMultiplePhoneNumberConfig","multiplePhoneOptions","pattern","phoneOption","getSinglePhoneNumberConfig","getRatingConfig","fillStyle","iconCount","iconSVG","getRollupConfig","modifiedData","rollupValues","getSentimentAnalysisConfig","targetIndex","sentimentOption","isSelectedId","sentimentValue","getSingleSelectionConfig","singleSelectID","selectedOptionDotColor","getTextConfig","getSingleURLConfig","getMultipleURLConfig","multipleURLOptions","urlOption","getTokenConfig","getFormulaTextConfig","getFormulaNumberConfig","getFormulaCurrencyConfig","getFormulaPercentConfig","getDateTimeCurrencyConfig","CoreViewerInlineFCConfigConstructor","coreConfig","mergedConfig","initialSelectionEvent","handleClick","componentAPI","enableExpandParams","selectedChipDoms","chipElement","AttachmentExpandReadOnlyImg","fieldParams","removeImgCallback","previewAttachmentCallback","setFocusOnAttachmentNameBlurCallback","addListeners","setName","AttachmentExpandReadOnlyDialog","closeDialogCallBack","onAttachFileDialogOpenDisableDialogStackBodyMousedownListenerCallback","onAttachFileDialogCloseSetKeyContextCallback","onAttachFileDialogCloseEnableDialogStackBodyMousedownListenerCallback","onClosingUploadedAttachment","fileID","expandImg","removeImg","FieldParams","clickedAttachmentResID","attachmentResIDList","attachmentResID","wdUtil","DialogComponent","bottom","referenceDom","referenceDoms","neutralElement","dialogRect","referenceRect","dialogHeight","dialogY","dialogWidth","dialogX","referenceRectY","diffX","newX","bodyWheelListenerOptions","ZCOMPONENTS_DROPDOWN","Dialogstack","onBodyMouseDown","onBodyWheel","dialog","path","isDialogPresent","isReferenceDomPresent","activeDialog","isNeutralElementPresent","hasDatePicker","hasDatePickerDropDown","lastDialog","isLastDialogPresent","bodyWheelNeeded","DialogStackContext","OFFSET_TOP","OFFSET_LEFT","expandAttachment","uploadedFileIDs","attachmentExpandDialog","_ev","componentDom","childDom","containerRect","childRect","getAttachmentConfig","columnWidth","paddingLeft","attachmentEventCallbacks","attachmentOptions","createAttachmentEventCallbacks","ellipsisIcon","readOnly","externalCallback","onAttachmentImgClick","previewAttachment","onExpand","SnapGridViewerInlineFCConfigConstructor","viewerConfig","CellPopupComponent","RATING_COLOR","getDefaultSpecifications","getDefaultSpecificationsForServer","getFieldCreationSpecifications","getNewReturnTypeFormats","newReturnType","getFieldTypeSpecificationsByInstance","getFieldTypeSpecificationsUsingType","STYLE_VALUES_ON_GRID_EDIT","RECORD_VIEW_STYLES","getFieldStyles","getFieldStyleRecordView","isHidden","getFieldStylesByTypeForRecordView","getFieldStylesByTypeOnGridEdit","FORMULA_STYLE_VALUES","FORMULA_STYLE_VALUES_ON_GRID_EDIT","FIELD_TYPES_TO_NAME","getFieldStylesByFieldInstance","getFieldStylesOnGridEditByFieldInstance","Editor","Checkbox","DateObject","MultipleEmail","MultiplePhoneNumber","MultipleURL","MultiSelect","NumberObject","SingleLineText","SingleSelect","CollaboratorSS","CollaboratorMS","LinkFieldMultiSelect","LinkFieldSingleSelect","SentimentalAnalysis","LanguageDetection","getValueHolder","LinkFieldInteracter","getAttachmentIDs","getAttachmentsDS","checkboxStyle","currencyPosition","phoneNumberFormat","ratingStyle","maxCount","selectionType","relationshipProperty","recordName","formulaString","formulaStatus","renderingType","sentimentMeta","getValueHolderWithDataStore","dataStore","getAttahcmentURLWithDataStore","getAttachmentsDSWithDataStore","getRelationshipPropertyWithDataStore","getLinkFieldMetasWithDatastore","getReadOnlyComponentWithDataStore","getReadOnlyComponent","datastore","sourceTableAllowMultiple","destinationTableAllowMultiple","isForwardDirection","LinkDataProvider","linkFieldConfig","cellDataProvider","linkDataStore","fieldMeta","stopEditing","fieldTypeSpecification","uriCounter","REFRESH_TILE","REGISTER_TAB","UNREGISTER_TAB","RELOAD_BASE","PARSE_RESPONSE","SUBMIT","DELETE_RECORD","HIDE_FIELD","UNHIDE_FIELD","ALTER_FIELD_ORDER","ALTER_GRID_RECORD_ORDER","ALTER_RECORD_ORDER","FIELD_META","FIELD_WIDTH","ALTER_RECORD_HEIGHT","DELETE_FIELD","DUPLICATE_FIELD","DUPLICATE_WITHOUT_DATA_FIELD","INSERT_FIELD_AFTER","INSERT_FIELD_BEFORE","UPDATE_FIELD_EPHI_STATE","CLEAR_RECORD","CLEAR_FIELD","CLEAR_RANGE","INSERT_FIELD_AFTER_2","INSERT_FIELD_BEFORE_2","CREATE_FIELD_WITH_RELATIONSHIP_AFTER","CREATE_FIELD_WITH_RELATIONSHIP_BEFORE","DUPLICATE_RECORD","INSERT_RECORD_AFTER","INSERT_RECORD_GRID_AFTER","INSERT_RECORD_BEFORE","INSERT_RECORD_GRID_BEFORE","TABLE_META","DELETE_TABLE","DUPLICATE_TABLE","DUPLICATE_TABLE_WITHOUT_DATA","INSERT_TABLE","SWITCH_TABLE","VIEW_META","VIEW_ORDER","DELETE_VIEW","DUPLICATE_VIEW","COPY_VIEW_CONFIG","CREATE_VIEW","INSERT_VIEW_AFTER","INSERT_VIEW_BEFORE","SWITCH_VIEW","ALTER_SUMMARY_BAR","LOAD_BASE","LOAD_TABLE","LOAD_DATA","LOAD_DATA_AVAILABLE","LOAD_TABLE_DATA","LOAD_DATA_COLOR","LOAD_VIEW","FETCH_ACTIVITY_LOG_INFO","GET_IMPORT_PROPERTIES","RESIZE_RECORD","ALTER_TABLE_ORDER","EXPORT_BASE","EXPORT_TABLE","EXPORT_VIEW","EXPORT_GROUP","EXPORT_RECORD","COLLAB_REGISTER","WORKER_CONNECTION_START","WORKER_CONNECTION_END","WORKER_CONNECTION_MESSAGE","UNDO","REDO","REGISTER_GRID_VIEWPORT","REGISTER_GALLERY_VIEWPORT","REGISTER_CALENDAR_VIEWPORT","REGISTER_KANBAN_VIEWPORT","REGISTER_GANTT_VIEWPORT","REGISTER_RECORD_VIEW_VIEWPORT","REGISTER_LINKED_RECORD_VIEWPORT","REGISTER_LIST_VIEWPORT","REGISTER_SNAP_VIEWPORT","REGISTER_KANBAN_STACK_VIEWPORT","UNREGISTER_KANBAN_STACK_VIEWPORT","UNREGISTER_KANBAN_ANCHOR_VIEWPORT","UNREGISTER_GRID_VIEWPORT","UNREGISTER_GANTT_VIEWPORT","UNREGISTER_GALLERY_VIEWPORT","UNREGISTER_CALENDAR_VIEWPORT","UNREGISTER_LIST_VIEWPORT","UNREGISTER_DATA","UNREGISTER_DATA_META","UNREGISTER_SNAP_META","REGISTER_RECORD_VIEWPORT","UNREGISTER_RECORD_VIEWPORT","UNREGISTER_LINKED_RECORD_VIEWPORT","REGISTER_DATA","REGISTER_CACHE","CHECK_DATA","REGISTER_VIEWBITSET","DELETE_UNIT_SORT","ALTER_META_UNIT_SORT","INSERT_UNIT_SORT","ALTER_ORDER_UNIT_SORT","CREATE_FILTER","INSERT_FILTER","DELETE_FILTER","ALTER_FILTER","ALTER_LOGICAL_OPERATOR_FILTER","CREATE_MULTIPLE_FILTER","INSERT_MULTIPLE_FILTER","COPY","CUT","PASTE","PASTE_IN_DUMMY","PASTE_RECORD","PASTE_FIELD","PASTE_RANGE","PASTE_ALL","CREATE_RECORD","GRID_CREATE_RECORD","CREATE_RECORD_COMMENTS","FETCH_DATA","SWITCH_VIEW_TYPE","LOAD_CALENDAR_VIEW","LOAD_GANTT_VIEW","CALENDAR_SUBMIT","SAVE_ANCHORS","SAVE_GANTT_ANCHORS","CREATE_RECORD_WITH_DATA","GRID_CREATE_RECORD_WITH_DATA","FETCH_COMPATIBLE_GANTT_START_DATE_FIELDS","FETCH_COMPATIBLE_GANTT_END_DATE_FIELDS","FETCH_COMPATIBLE_GANTT_DISPLAY_FIELDS","FETCH_COMPATIBLE_GANTT_MILESTONE_FIELDS","FETCH_COMPATIBLE_GANTT_DEPENDENCY_FIELDS","CREATE_GANTT_START_DATE_FIELD","CREATE_GANTT_END_DATE_FIELD","CREATE_GANTT_DISPLAY_FIELD","CREATE_GANTT_DEPENDENCY_FIELD","CREATE_GANTT_MILESTONE_FIELD","INIT_GANTT_CONFIGURATION","UPDATE_GANTT_CONFIGURATION","UPDATE_GANTT_CONFIGURATION_START_DATE_FIELD","UPDATE_GANTT_CONFIGURATION_END_DATE_FIELD","UPDATE_GANTT_CONFIGURATION_DISPLAY_FIELD","UPDATE_GANTT_CONFIGURATION_DEPENDENCY_FIELD","UPDATE_GANTT_CONFIGURATION_MILESTONE","UPDATE_GANTT_CONFIGURATION_HIGHLIGHT_CRITICAL_PATH","UPDATE_GANTT_CONFIGURATION_DURATION_SCALE_TYPE","FETCH_GANTT_VIEW","UPDATE_GANTT_RECORD_DATE_RANGE","UPDATE_GANTT_RECORD_START_DATE","UPDATE_GANTT_RECORD_END_DATE","UPDATE_GANTT_RECORD_DISPLAY_VALUE","UPDATE_GANTT_RECORD_MILESTONE_STATUS","ADD_GANTT_RECORD_PREDECESSOR","CREATE_GANTT_RECORD_PREDECESSOR","DELETE_GANTT_RECORD_PREDECESSOR","UPDATE_GANTT_RECORD_PREDECESSOR_CONNECTION_TYPE","FIX_GANTT_RECORD_INVALID_PREDECESSOR","ADD_GANTT_RECORD_SUCCESSOR","CREATE_GANTT_RECORD_SUCCESSOR","DELETE_GANTT_RECORD_SUCCESSOR","UPDATE_GANTT_RECORD_SUCCESSOR_CONNECTION_TYPE","FIX_GANTT_RECORD_INVALID_SUCCESSOR","SEARCH_GANTT_TASKS","FETCH_GANTT_DEPENDENCY_TASKS","FETCH_GANTT_LINK_DATA","GET_GANTT_DATA_FROM_WORKER","GET_GANTT_RECORD_DATA_FROM_WORKER","FILTER_CALENDAR_RECORDS","FILTER_LINK_FIELD_RECORDS","LOAD_KANBAN_VIEW","KANBAN_CARD_DRAG_AND_DROP","ADD_RECORD_TO_STACK","STACK_REORDER","CLEAR_REORDER","DELETE_STACK_RECORDS","KANBAN_STACK_COLLAPSE","KANBAN_ALL_STACK_COLLAPSE","INSERT_RECORD_BEFORE_STACK","INSERT_RECORD_AFTER_STACK","SAVE_KANBAN_FIELD","CHANGE_KANBAN_ANCHOR","LOAD_GALLERY_VIEW","SAVE_SCHEMA","UPDATE_SCHEMA_RATIO","CREATE_KANBAN_SCHEMA","DELETE_KANBAN_SCHEMA","REORDER_KANBAN_SCHEMA","UPDATE_SCHEMA_COMMON_PROPERTIES","FIELD_RESET","CREATE_SCHEMA","REORDER_SCHEMA","DELETE_SCHEMA","BLUEPRINT_HEADER","UPDATE_SCHEMA_CATEGORY","LOAD_TEMPLATE","LOAD_BLUEPRINT","CREATE_FIELD","DELETE_SELECTION_OPTION","ALTER_META_SELECTION_OPTION","ALTER_ORDER_SELECTION_OPTION","CREATE_SELECTION_OPTION","UPDATE_FIELD","SORT_ORDER_SELECTION_OPTION","CREATE_SELECTION_WITH_OPTION_NAME","INSERT_PREV_SELECTION_OPTION","CREATE_USER_WITH_CELL_SUBMIT","ALTER_PRIMARY_FIELD","TAB_BLUR","TAB_FOCUS","UPDATE_BASE_META","DELETE_BASE","MOVE_BASE","BASE_INFO","DUPLICATE_BASE","DUPLICATE_BASE_WITHOUT_DATA","REREGISTER_VIEWPORT","SEARCH","REPLACE","REPLACEALL","FILL_REDO_SELECTION","CONTACT_SUGGESTION","PRESTIGE_SOCKET","UPDATE_USER_PRESENCE","DELETE_RELATIONSHIP","CREATE_RELATIONSHIP","EVALUATE_FORMULA","EVALUATE_FILTER_FORMULA","REGISTER_FORM_BUILDER_VIEWPORT","UNREGISTER_FORM_BUILDER_VIEWPORT","LOAD_FORM_BUILDER","FORM_COVER_IMAGE_UPDATE","FORM_LOGO_UPDATE","FORM_NAME_UPDATE","FORM_DESCRIPTION_UPDATE","FORM_COVER_IMAGE_VISIBILITY_UPDATE","FORM_COVER_IMAGE_DELETE","FORM_ADD_COVER_IMAGE","FORM_CHANGE_COVER_IMAGE","FORM_ADD_LOGO","FORM_CHANGE_LOGO","FORM_LOGO_ALIGNMENT_UPDATE","FORM_LOGO_SIZE_UPDATE","FORM_LOGO_VISIBILITY_UPDATE","FORM_LOGO_DELETE","FORM_NAME_PARAMETERS_ALIGNMENT_UPDATE","FORM_NAME_PARAMETERS_SIZE_UPDATE","FORM_NAME_PARAMETERS_VISIBILITY_UPDATE","FORM_SCHEMA_NAME_UPDATE","FORM_SCHEMA_DESCRIPTION_UPDATE","FORM_SCHEMA_REQUIRED_UPDATE","FORM_SCHEMA_COMPONENT_TYPE_UPDATE","FORM_SCHEMA_CHOICES_VISIBILITY_UPDATE","FORM_SCHEMA_CHOICES_REORDER","FORM_SCHEMA_DELETE","FORM_SCHEMA_INSERT","FORM_SCHEMA_REORDER","FORM_SCHEMA_CHOICES_SORT","FORM_BRANDING_UPDATE","FORM_SUBMIT_BUTTON_NAME_UPDATE","FORM_REDIRECT_URL_UPDATE","FORM_MESSAGE_AFETR_SUBMIT_UPDATE","FORM_LABEL_ALIGNMENT_UPDATE","FORM_COLOR_THEME_UPDATE","REGISTER_ENGINE","LOAD_DATA_FROM_ENGINE","CREATE_FIELD_WITH_RELATIONSHIP","ALTER_META_FIELD_WITH_RELATIONSHIP","CLEAR_CONDITIONAL_FORMAT","DELETE_COLOR","DUPLICATE_COLOR","ALTER_COLOR_ORDER","INSERT_COLOR_FILTER","ALTER_COLOR_FILTER","ALTER_COLOR_LOGICAL_OPERATOR_FILTER","DELETE_COLOR_FILTER","CREATE_SINGLE_SELECT_CONDITIONAL_FORMAT","UPDATE_SINGLE_SELECT_CONDITIONAL_FORMAT","CREATE_CONDITIONAL_FORMAT_COLOR","UPDATE_CONDITIONAL_FORMAT_COLOR_META","UPDATE_CONDITIONAL_FORMAT_FALLBACK_COLOR","EVALUATE_CONDITIONAL_FORMAT_FORMULA","SEARCH_CALENDAR_RECORDS","UPDATE_CALENDAR_RECORD","DRAG_DROP_CALENDAR_RECORD","RESIZE_CALENDAR_RECORD","CREATE_VIEW_SHARE_URL","ALTER_VIEW_SHARE_ACCESSPEOPLE_TYPE","UPDATE_VIEW_SHARE_PASSWORD","UPDATE_VIEW_SHARE_EXPIRY_DATE","UPDATE_VIEW_SHARE_MULTIPLE_SUBMIT","UPDATE_VIEW_SHARE_ENABLED","REFRESH_VIEW_SHARE_URL","CREATE_LINK_RECORD_WITH_DATA_SUBMIT","FETCH_GRID_RECORD_ORDER","CREATE_AUTOMATION","INSERT_AUTOMATION","DELETE_AUTOMATION","UPDATE_AUTOMATION","DUPLICATE_AUTOMATION","ALTER_AUTOMATION_NAME","ALTER_AUTOMATION_STATUS","RESTART_AUTOMATION_STATUS","RESUME_AUTOMATION_STATUS","FETCH_AUTOMATION","FETCH_AUTOMATION_ACTION","CREATE_TRIGGER","ALTER_TRIGGER_TYPE","ALTER_TRIGGER_TABLE","ALTER_TRIGGER_VIEW","ALTER_RECORD_CREATE_TRIGGER_FORM_SUBMIT_STATUS","ALTER_RECORD_CREATE_TRIGGER_EMPTY_RECORD_STATUS","ALTER_RECORD_CREATE_TRIGGER_DUPLICATE_STATUS","ALTER_RECORD_CREATE_TRIGGER_LINK_FIELD_STATUS","ALTER_RECORD_CREATE_TRIGGER_API_STATUS","CREATE_UNIT_FILTER_TRIGGER","INSERT_UNIT_FILTER_TRIGGER","DELETE_UNIT_FILTER_TRIGGER","ALTER_UNIT_FILTER_TRIGGER","ALTER_FILTER_CONDITION_LOGICAL_STRING_TRIGGER","CREATE_ACTION","INSERT_ACTION","DELETE_ACTION","ALTER_ACTION_TABLE","INSERT_FIELDS_VALUES_ACTION","DELETE_FIELD_VALUES_ACTION","ALTER_FIELD_VALUES_ACTION","ALTER_TO_ADDRESS_SEND_MAIl_ACTION","ALTER_CC_ADDRESS_SEND_MAIl_ACTION","ALTER_BCC_ADDRESS_SEND_MAIl_ACTION","ALTER_SUBJECT_ADDRESS_SEND_MAIl_ACTION","ALTER_MESSAGE_ADDRESS_SEND_MAIl_ACTION","UPLOAD_ATTACHMENT_FROM_TRIGGERED_FIELD_ACTION","REMOVE_ATTACHMENT_FROM_TRIGGERED_FILE_ACTION","REMOVE_ATTACHMENT_FROM_TRIGGERED_FIELD_ACTION","UPDATE_SENDMAIL_ACTION","CREATE_UNIT_FILTER_ACTION","INSERT_UNIT_FILTER_ACTION","DELETE_UNIT_FILTER_ACTION","ALTER_UNIT_FILTER_ACTION","ALTER_FILTER_CONDITION_LOGICAL_STRING_ACTION","ALTER_TABLE_FIND_AND_INCLUDE_RECORD_ACTION","ALTER_FIELDS_FIND_AND_INCLUDE_RECORD_ACTION","FIND_AND_INCLUDE_RECORD_COPY_VIEW_FILTER_ACTION","CREATE_UNIT_FILTER_FIND_AND_INCLUDE_RECORD_ACTION","INSERT_UNIT_FILTER_FIND_AND_INCLUDE_RECORD_ACTION","DELETE_UNIT_FILTER_FIND_AND_INCLUDE_RECORD_ACTION","ALTER_UNIT_FILTER_FIND_AND_INCLUDE_RECORD_ACTION","ALTER_FILTER_CONDITION_LOGICAL_STRING_FIND_AND_INCLUDE_RECORD_ACTION","ALTER_TABLE_SUMMARY_OF_A_FIELD_ACTION","ALTER_FIELD_SUMMARY_OF_A_FIELD_ACTION","ALTER_SUMMARY_OF_A_FIELD_SUMMARY_TYPE_ACTION","ALTER_SCHEDULE_TRIGGER_FREQUENCY","RESCHEDULE_ONE_TIME_SCHEDULE_TRIGGER","ALTER_SCHEDULE_TRIGGER_HOUR_COUNT","ALTER_SCHEDULE_TRIGGER_DAY_COUNT","ALTER_SCHEDULE_TRIGGER_TIME","ALTER_SCHEDULE_TRIGGER_WEEK_COUNT","ALTER_SCHEDULE_TRIGGER_WEEK_DAYS","ALTER_SCHEDULE_TRIGGER_MONTH_COUNT","ALTER_SCHEDULE_TRIGGER_MONTH_META_TYPE","ALTER_SCHEDULE_TRIGGER_MONTH_DATES","ALTER_SCHEDULE_TRIGGER_MONTH_WEEK","ALTER_SCHEDULE_TRIGGER_MONTH_DAY","ALTER_SCHEDULE_TRIGGER_TIMEFRAME_STATE","ALTER_SCHEDULE_TRIGGER_TIMEFRAME_START_DATE","ALTER_SCHEDULE_TRIGGER_TIMEFRAME_END_TYPE","ALTER_SCHEDULE_TRIGGER_TIMEFRAME_RUN_COUNT","ALTER_SCHEDULE_TRIGGER_TIMEFRAME_END_DATE","FETCH_VIEW_TO_COPY_FIND_AND_INCLUDE_RECORD_ACTION","FETCH_AUTOMATION_ACTIONS","FETCH_COMPATIBLE_TRIGGERED_FIELD_FIELDVALUE_ACTION","FETCH_COMPATIBLE_TRIGGERED_FIELD_FILTER_ACTION","FETCH_FIND_AND_INCLUDE_RECORD_COMPATIBLE_TRIGGERED_FIELD_FILTER_ACTION","FETCH_COMPATIBLE_VIEWS_TRIGGER_ACTION","FETCH_COMPATIBLE_SENDMAIL_ADDRESS_TRIGGER_FIELDS_ACTION","FETCH_COMPATIBLE_ATTACHMENT_TRIGGER_FIELDS_ACTION","FETCH_COMPATIBLE_SUBJECT_FIELDS_ACTION","FETCH_COMPATIBLE_MESSAGE_FIELDS_ACTION","FETCH_COMPATIBLE_SOCIAL_MEDIA_FIELDS_ACTION","FETCH_COMPATIBLE_SOCIAL_MESSAGE_FIELDS_ACTION","FETCH_COMPATIBLE_SUMMARY_FIELDS_ACTION","FETCH_COMPATIBLE_FIND_AND_INCLUDE_RECORDS_FIELDS_ACTION","INSERT_CHANNEL_OR_USER_ACTION","REMOVE_CHANNEL_OR_USER_ACTION","CLIQ_ORG_AND_EXTENSION_STATUS_ACTION","CLIQ_CHANNELS_AND_USERS_FETCH_ACTION","CLIQ_EXTENSION_INSTALL_ACTION","CLIQ_BOT_ADD_TO_CHANNELS_ACTION","ALTER_MESSAGE_CLIQ_MESSAGE_ACTION","ALTER_SOCIAL_DRAFT_PORTAL_ACTION","ALTER_SOCIAL_DRAFT_BRAND_ACTION","ALTER_SOCIAL_DRAFT_EDITOR_TOGGLE_ACTION","ALTER_SOCIAL_DRAFT_MESSAGE_FIELD_ACTION","ALTER_SOCIAL_DRAFT_MEDIA_FIELD_ACTION","ALTER_SOCIAL_DRAFT_MEDIA_ACTION","FETCH_SOCIAL_MEDIA_ACTION","FETCH_SOCIAL_BRANDS_ACTION","FETCH_SOCIAL_PORTALS_ACTION","ALTER_WEBHOOK_URL_ACTION","INSERT_WEBHOOK_PARAM_ACTION","ALTER_WEBHOOK_PARAM_KEY_ACTION","ALTER_WEBHOOK_PARAM_VALUE_ACTION","ALTER_WEBHOOK_HEADER_VALUE_ACTION","INSERT_WEBHOOK_HEADER_ACTION","ALTER_WEBHOOK_HEADER_KEY_ACTION","REMOVE_WEBHOOK_PARAM_ACTION","REMOVE_WEBHOOK_HEADER_ACTION","ALTER_WEBHOOK_METHOD_ACTION","ALTER_WEBHOOK_BODY_MODE_ACTION","ALTER_WEBHOOK_BODY_ACTION","DUMMY","ATTACHMENT_EDIT_FILENAME","ATTACHMENT_DELETE_FILE","CREATE_KANBAN_ANCHOR","ALTER_META_SENTIMENT","CREATE_FIELD_WITH_SENTIMENT","CREATE_FIELD_WITH_SENTIMENT_BEFORE","CREATE_FIELD_WITH_SENTIMENT_AFTER","FETCH_LINK_FIELD_DATA","FETCH_AUTOMATION_LINK_FIELD_DATA","TAB_REREGISTER_WITH_GRID_USERPRESENCE","TAB_REREGISTER_WITH_SNAP","TAB_REREGISTER_WITHOUT_USERPRESENCE","TAB_REREGISTER_WITH_SNAP_LISTING","ADD_BASE_SHARE_MEMBERS","DELETE_BASE_SHARE_MEMEBER_USERID","DELETE_BASE_SHARE_MEMEBER_MAILID","UPDATE_BASE_SHARE_MEMEBER_PERMISSION_USERID","UPDATE_BASE_SHARE_MEMEBER_PERMISSION_MAILID","START_SYNC_CALL","ADD_VIEW_SHARE_MEMBERS","UPDATE_VIEW_SHARE_MEMEBER_PERMISSION_USERID","UPDATE_VIEW_SHARE_MEMEBER_PERMISSION_MAILID","DELETE_VIEW_SHARE_MEMEBER_USERID","DELETE_VIEW_SHARE_MEMEBER_MAILID","UPDATE_REMAINING_QUEUE_COUNT","BASELOCK","BASEUNLOCK","FETCH_CELL_USER_PRESENCE_LOAD","UPDATE_CELL_USER_PRESENCE","INSERT_CELL_USER_PRESENCE","DELETE_CELL_USER_PRESENCE","PARSE_USER_PRESENCE_RESPONSE","UPDATE_APP_REGISTRY_OBJECT","OPEN_PRINT_TRANSACTION","PRINT_VIEW","CLOSE_PRINT_TRANSACTION","LOAD_SNAP_LISTING","CREATE_SNAP","DELETE_SNAP","UPDATE_SNAP_NAME","UPDATE_SNAP_SORT","UPDATE_SNAP_FILTER","FETCH_SHARE_SNAP_META","ENABLE_SHARE_SNAP","DISABLE_SHARE_SNAP","UPDATE_SHARE_SNAP_PASSWORD","DISABLE_SHARE_SNAP_PASSWORD","UPDATE_SHARE_SNAP_EXPIRY_DATE","DISABLE_SHARE_SNAP_EXPIRY_DATE","UPDATE_SHARE_SNAP_USER_TYPE","LOAD_SNAP","CLOSE_SNAP","LOAD_DATA_IN_SNAP","LOAD_COMPONENT","INSERT_SNAP_CARD","DUPLICATE_SNAP_CARD","MOVE_SNAP_CARD","DELETE_SNAP_CARD","UPDATE_SNAP_CARD_WIDTH","UPDATE_SNAP_CARD_HEIGHT","UPDATE_SNAP_CARD_SIZE","LOAD_TABLES","LOAD_VIEWS","LOAD_FIELDS","EDIT_SNAP","UPDATE_AGGREGATION_TABLE","UPDATE_AGGREGATION_VIEW","UPDATE_AGGREGATION_FIELD","UPDATE_AGGREGATION_ALIGNMENT","UPDATE_AGGREGATION_COLOR","UPDATE_AGGREGATION_FORMULA","UPDATE_AGGREGATION_GROUPBY_FIELD","UPDATE_AGGREGATION_GROUPBY_INTERVAL","UPDATE_AGGREGATION_SHOW_DIFFERENCE","UPDATE_AGGREGATION_SHOW_SECONDARY_LABEL","UPDATE_AGGREGATION_SHOW_SECONDARY_VALUE","UPDATE_AGGREGATION_TITLE","UPDATE_CHART_DRAW_WITH","UPDATE_CHART_FORMULA","UPDATE_CHART_GROUP_BY_FIELD","UPDATE_CHART_LEDENG_POSITION","UPDATE_CHART_TYPE","UPDATE_CHART_X_AXIS","UPDATE_CHART_Y_AXIS","UPDATE_CHART_COLOR","UPDATE_RTE_CONTENT","INSERT_GRID_UNIT_SORT","DELETE_GRID_UNIT_SORT","UPDATE_GRID_UNIT_SORT","REORDER_GRID_UNITY_SORT","HIDE_GRID_FIELD","UNHIDE_GRID_FIELD","UPDATE_GRID_FIELD_WIDTH","REORDER_GRID_FIELD","UPDATE_GRID_RECORD_HEIGHT","UPDATE_GRID_FILTER_TYPE","CREATE_GRID_UNIT_FILTER","INSERT_GRID_UNIT_FILTER","DELETE_GRID_UNIT_FILTER","UPDATE_GRID_UNIT_FILTER","UPDATE_GRID_FILTER_CONDITION_TYPE","UPDATE_GRID_LOGICAL_STRING","FETCH_ACTIVITY_LOG","FETCH_RECORD_ACTIVITY_LOG","LOAD_MORE_ACTIVITY_LOG","LOAD_MORE_RECORD_ACTIVITY_LOG","COMPONENT_COPY_VIEW_CONFIGURATION","CREATE_COMPONENT_UNIT_FILTER","INSERT_COMPONENT_UNIT_FILTER","DELETE_COMPONENT_UNIT_FILTER","UPDATE_COMPONENT_UNIT_FILTER","UPDATE_COMPONENT_FILTER_CONDITION_TYPE","UPDATE_COMPONENT_LOGICAL_STRING","UPDATE_CHART_FIELDS_TO_PLOT","INSERT_CHART_FIELDS_TO_PLOT","DELETE_CHART_FIELDS_TO_PLOT","REORDER_CHART_FIELDS_TO_PLOT","FETCH_RUN_HISTORY","STATUS_FILTER_RUN_HISTORY","DATE_FILTER_RUN_HISTORY","SORT_RUN_HISTORY","CLOSE_RUN_HISTORY","FETCH_VERSION_HISTORY","RESTORE_VERSION","EDIT_VERSION","CREATE_AS_NEW_BASE_FROM_VERSION","DOWNLOAD_VERSION","SEARCH_VERSION","SAVE_CURRENT_VERSION","PREVIEW_VERSION","PREVIEW_VERSION_SNAP_LISTING","PREVIEW_VERSION_SNAP","PREVIEW_VERSION_SNAP_LOAD_CARD","PREVIEW_VERSION_ACTIVITY_LOG","PREVIEW_VERSION_SEARCH","CLEAR_DATA_FOR_VERSION_PREVIEW","DRE_FETCH_DATA","DRE_FETCH_TABLES","DRE_FETCH_FIELDS","DRE_IMPORT_DATA","DRE_DELETE_CONNECTION","DRE_CLOSE_TRANSACTION","DRE_CREATE_INTEGRATION_SPACE","CREATE_GROUP_BY_IN_DIALOG","INSERT_GROUP_BY_IN_DIALOG","UPDATE_GROUP_BY_IN_DIALOG","DELETE_GROUP_BY_IN_DIALOG","REORDER_GROUP_BY_IN_DIALOG","COLLAPSE_OR_EXPAND_ALL","COLLAPSE_OR_EXPAND_SUB","COLLAPSE_OR_EXPAND","DELETE_GROUP","CLEAR_GROUP","FETCH_GROUP_META","OPEN_LINK_FIELD_TRANSACTION","FILTER_LINK_FIELD_DATA","CLOSE_LINK_FIELD_TRANSACTION","EventExecutionProperties","canExecuteSuccess","canExecuteFailure","successEventCallback","failureEventCallback","acknowledgeEventCallback","beforesendEventCallback","completeEventCallback","aftersendEventCallback","statusOkEventCallback","statusAcceptedEventCallback","callBack","SuccessEvent","FailureEvent","ClientFailureEvent","AcknowledgeEvent","BeforeSendEvent","CompleteEvent","AfterSendEvent","counter","WorkerChannelURIConstants","WorkerConnectionManagerClass","connectionID","workerConnection","workerConnections","WorkerConnectionManager","WorkerConnection","uri","thisWorkerConnection","eventExecutionProperties","WorkerConnectionStartEvent","workerRequest","WorkerRequest","Params","WorkerConnectionMessageEvent","mainPageWorkerCompressionPath","AbstractConnector","onMessage","attachListeners","workerRequestCommand","constantConfs","loadConstantsCommand","TabId","registerTabCommand","reregisterTabCommand","removeTabCommand","loadConstants","initTabProfileWorkerConnection","ConstantConf","connector","queryID","TabProfileQueryResultEvent","namespaceArray","jsonValue","workerFilePath","Connector","ManagerClass","RequestHolder","reqObj","manager","Manager","EventPropertiesInstance","canExecuteDefaultSuccess","canExecuteDefaultFailure","ignoredErrorCodes","beforeSendEvent","afterSendEvent","responseObj","acknowledgeEvent","successEvent","failureEvent","CloseLinkFieldTransactionAction","transactionID","FilterLinkFieldDataAction","searchTerm","OpenLinkFieldTransactionAction","HIDE_CSS","CreateNewRecordButton","LinkListRenderer","getLinkTemplate","headerTitle","fieldKeys","body","components","componentKey","componentValue","componentInstance","recordElement","rowSelection","selectionIndexObject","isSelected","selectionParam","syncRowSelectionVisual","visible","shouldShowStepper","primaryFieldId","templateId","recordTemplate","DEFAULT_PLACEHOLDER_FOR_CREATE_NEW_RECORD","DEFAULT_PLACEHOLDER_FOR_NAMED","LinkDialogComponent","linkDataProvider","multiSelectInteracter","dialogComponent","chipIds","selectedRecordIds","dataArr","resultArr","recordIdsInScope","idsInScope","outsideSelections","fetchLinkFieldRecordMeta","onFetchSuccess","chipIdSet","seedIds","seedCounts","initialSelectionIds","initialSelectionCounts","seedId","preFilledTerm","onFetchFailure","_response","listContainer","listConfiguration","rowParam","startIndex","endRowIndex","fieldKey","fromIndex","toIndex","totalRecordCount","outsideListSelections","selectedInListCount","syncHandler","getFieldMeta","relationId","fieldTypeMeta","isSelectedInStore","canCreateNewRecord","searchInput","selectAllButton","preservedSelections","footerContainer","createNewRecordButton","createNewRecordHandler","stopLoading","baseId","createNewRecordParams","selectionIds","requestSeq","matchedRecordIDs","matchedSet","orderedIds","totalRecordIDs","selectedUniqueCount","isAllRowsSelected","totalRowCount","noRecordFound","checkboxes","isSelectAll","targetCount","currentCount","handler","fromRowIndex","toRowIndex","isSameLinkChipOption","existingOption","nextOption","MultiSelectComponent","multiSelectComponent","linkedRecordIds","knownLabelByRecordId","cellDatas","cellData","multiSelectOptions","api","selectedOptionById","nextIdSet","labelByRecordId","storedIds","storedValues","mutateOptions","wasDropdownOpen","optionToRemove","remaining","optionsToRestore","selectedOption","LinkFieldManager","onChipRemove","LinkDropdownRenderer","oldValue","newRequestValue","oldEncoded","requestWire","processSelectedIDs","selectedIDArray","splitString","outputArray","opt","input","matches","match","LinkPopupComponent","linkConfiguration","getInitiatedFrom","DEFAULT_PLACEHOLDER_FOR_FIND_A_USER","DEFAULT_PLACEHOLDER_FOR_TYPE_TO_FIND","change","toolTipHolder","popupHolder","toolTipContainer","createCollaboratorOption","getSelectedCollaboratorOptions","dropdownCollaboratorIDs","dropdownCollaboratorOptions","dropdownHolder","searchBoxPlaceholder","transformedValue","isDraftRow","getSentimentalAnalysisConfig","dropDownHolder","dummy","MultipleCollaboratorPopupComponent","CurrencyPopupComponent","DateTimePopupComponent","CoreEmailPopupComponent","KeywordExtractPopupComponent","LanguagePopupComponent","LookupPopupComponent","MultiSelectPopupComponent","NumberPopupComponent","PercentPopupComponent","PhoneNumberPopupComponent","RollupPopupComponent","SentimentalAnalysisPopupComponent","_value","_imgSrc","SingleSelectPopupComponent","TextPopupComponent","URLPopupComponent","CoreViewerPopupFCConfigConstructor","textConfig","multipleCollaboratorConfig","roleBasedConfig","arrowArray","singleEmailConfig","multipleSelectionConfig","singleURLConfig","editorParams","SnapGridViewerPopupFCConfigConstructor","linkConfig","getInlineComponent","getPopupComponent","CoreFieldHandler","allFieldTypes","GRID_ROW_HEADER_WIDTH","GRID_ROW_HEADER_FONT_COLOR","GRID_ROW_HEADER_FONT_SIZE","GRID_ROW_HEADER_FONT_NAME","GRID_ROW_HEADER_BORDER","GRID_ROW_HEADER_BACKGROUND","GRID_ROW_HEADER_VERTICAL_ALIGNMENT","GRID_ROW_HEADER_HORIZONTAL_ALIGNMENT","GRID_ROW_HEADER_HORIZONTAL_PADDING","GRID_ROW_HEADER_WRAP","HEADER_HEIGHT","TOP_BANNER_HEIGHT","FIELD_MIN_WIDTH","GRID_COLUMN_HEADER_HEIGHT","GRID_COLUMN_HEADER_FONT_COLOR","GRID_COLUMN_PRICING_BACKGROUND_COLOR","GRID_COLUMN_HEADER_FONT_SIZE","GRID_COLUMN_HEADER_FONT_NAME","GRID_COLUMN_HEADER_BORDER","GRID_COLUMN_HEADER_BACKGROUND","GRID_COLUMN_HEADER_VERTICAL_ALIGNMENT","GRID_COLUMN_HEADER_HORIZONTAL_ALIGNMENT","GRID_COLUMN_HEADER_VERTICAL_PADDING","GRID_COLUMN_HEADER_HORIZONTAL_PADDING","GRID_COLUMN_HEADER_WRAP","GRID_FOOTER_HEIGHT","GRID_FOOTER_FONT_COLOR_VALUE","GRID_FOOTER_FONT_COLOR_STATE","GRID_FOOTER_FONT_SIZE","GRID_FOOTER_FONT_NAME","GRID_FOOTER_BORDER","GRID_FOOTER_BACKGROUND","GRID_HSCROLL_BAR_WIDTH","GRID_VSCROLL_BAR_HEIGHT","GRID_FONT_COLOR","GRID_FONT_SIZE","GRID_FONT_NAME","GRID_VERTICAL_ALIGNMENT","GRID_NON_TEXT_HORIZONTAL_PADDING","GRID_NON_TEXT_VERTICAL_PADDING","GRID_CHECKBOX_HORIZONTAL_PADDING","GRID_CHECKBOX_VERTICAL_PADDING","GRID_ATTACHMENT_HORIZONTAL_PADDING","GRID_ATTACHMENT_VERTICAL_PADDING","getDiff","fontFamily","fontSize","padding","lineHeight","metrics","lineDiff","descent","ascent","fontHeight","diff1","diff2","GRID_ROW_HEADER_VERTICAL_PADDING","GroupCell","isCollapsed","fieldCellDataProvider","componentParams","groupValue","fieldDataProvider","configType","GroupHeaderSummaryCell","summaryData","fieldSummaryData","summaryTypeText","summaryValueText","userRole","CoreFieldDefinition","isReadOnlyUser","isDisabled","fieldEditCellDataProvider","fieldEditCellEventHandler","fieldHeaderCellDataProvider","fieldHeaderCellEventHandler","gridDataProvider","columnID","parentPath","SnapGridFieldDefinition","SnapGridFieldHandler","MANAGER_KEYBOARD_SHORTCUTS","EDITOR_KEYBOARD_SHORTCUTS","DATA_MAINTAINER_KEYBOARD_SHORTCUTS","COMMENTOR_KEYBOARD_SHORTCUTS","VIEWER_KEYBOARD_SHORTCUTS","DISBALED_KEYBOARD_SHORTCUTS","GridCoreHooks","activeColumnId","activeRowId","prevRowIndex","prevpinPosition","prevparentKeys","previousColumnId","previousRowId","prevCellComponent","cellComponent","first","gridRequestHandler","fieldWidth","previousWidth","numeric","nextWidth","current","getLoadingCellData","GridCoreConfiguration","fieldHandler","groupingFields","fetchParams","fetchParam","onSuccess","rowPinnedPosition","draftData","recordConfig","groupData","SnapGridFieldHeaderCell","fieldIconSVG","fieldStatus","SnapGridRecordHeaderCell","css","SnapGridHooks","gridHolder","SnapGridViewerConfiguration","recordHeaderCellDataProvider","recordHeaderCellEventHandler","coreFieldConfig","SnapGridConstructor","gridEventHandler","datagridInteractor","RoleConfigBuilder","recordHeightHandler","destroyFunc","DraftCell","draftRowTemplate","leftColumnCount","draftRowContainer","draftRowText","ENTER_KEY_COUNT","CoreCell","focusedCellPosition","isReadonly","isPopupField","navigationAPI","SnapCell","CoreEditCell","isAttachmentField","SnapEditCell","propsStore","gridData","startGroupMeta","endGroupMeta","groupID","fieldMetaMap","isMultipleRecordsSelected","recordRange","fieldRange","isMultipleFieldsSelected","actionNumber","onFailure","pinnedWidth","SnapGridDataProvider","gridUI","ephiFieldIDs","isPrimaryField","pinnedFieldID","rowDataArray","recoredJson","rowDefinitions","newRecordID","contextMenuObject","showLoader","hideLoader","failureCallBack","recordIDsRanges","deleteType","primaryCondition","filterValues","logicalOperator","relativeFilterID","secondaryCondition","cellValue","domRect","clipBoardDom","clipBoardData","successCallBack","newOptionName","targetIDs","relativeID","GridReadOnlyView","GridViewDataStore","gridRenderProps","relativeFieldIndex","currentIndex","insertIndex","GridViewManager","gridProps","GridViewProvider","ROTextEditor","htmlContent","TextEditorViewManager","componentJSON","TextEditorViewProvider","chartInteracter","aggregationInteracter","gridInteracter","attachmentsID","fieldInfoType","ComponentViewOnlyVendor","LOADING_STATE_CLASS_NAME","ReadOnlyCard","offsetX","offsetY","MainBoard","GridModeType","LayoutBuilderConstants","ReadOnlyLayoutBuilderConstants","layoutBuilderHolder","interactor","layoutInteracter","cardId","rowPartition","columnPartition","heightPartition","widthPartition","parentId","dimension","boardId","heightPartitions","widthPartitions","affectedData","LayoutReadOnlyBuilderHandler","heightPx","widthPx","clientHeight","cardInfo","fieldUpdate","xAxis","yAxis","itemInfo","cardIds","promises","heightNeeded","perfectHeight","componentManager","loadComponentFilePromise","loadComponentPromise","fileLoaded","cardProperties","layoutRect","eventResponse","WizReadOnlyManager","actions","wizInteracter","wizDataStore","snaptitle","darkThemeColor","lightThemeColor","ultraLightThemeColor","baseTextColor","baseThemeBodyClassChanges","classToAdd","classToRemove","snapPublishPage","snapDataStore","SnapPublishPage","FetchPublishSnapTableDataAction","promise","loadData","responses","RequestConstants","resObj","dataResponse","LOAD_SNAP_TABLE_DATA","LoadPublishSnapCardAction","LOAD_SNAP_CARD","SnapPublishPageActions","dataNeededRecordIDs","Field","desc","typeObj","parameters","isEphiCompliant","Relationship","linkFieldCount","userMap","collabMap","attachmentMap","BITSET","IFieldType","inputData","visitor","DateFieldType","ModifiedTimeFieldType","DurationFieldType","CreatedTimeFieldType","datePattern","timePattern","hourFormatter","milliseconds","hourFormat","hours","minutes","ampm","SingleSelectFieldType","MultiSelectFieldType","CollaboratorFieldType","notifyCollaborator","LinkFieldType","oppFieldID","restrictedViewToggle","restrictedViewID","relID","relDirection","isTableLoaded","LookupFieldType","linkFieldID","linkFieldInst","getField","destinationtableID","RollupFieldType","aggregationActionID","SingleLineFieldType","languageValue","LongTextFieldType","CheckboxFieldType","PhoneNumberFieldType","EmailFieldType","NumberFieldType","CurrencyFieldType","PercentFieldType","BarcodeFieldType","LinkRecordFieldType","getRecord","RatingFieldType","max","FormulaFieldType","CountFieldType","URLFieldType","AutonumberFieldType","AttachmentFieldType","ScientificFieldType","advancedOption","CreatedByFieldType","ModifiedByFieldType","SentimentAnalysisFieldType","KeywordExtractionFieldType","restrictedKeywords","LanguageTranlationFieldType","LanguageDetectorFieldType","FieldTypeFactory","ISnapPublishPageResponseParser","selections","relationshipName","sourceTable","destinationTable","wizData","load","cardMetas","cardData","componentResp","fieldsResponse","fieldsMeta","isEphiApplied","fieldMetas","relationshipTableConst","COLLABORATORS","USER","SnapPublishPageParser","snapName","snapIcon","snapColor","optionID","collaboratorsLoad","users","userMeta","loadUserMeta","userTableMeta","wizDS","fieldsMap","fieldArray","showPasswordPage","initializeSnap","passwordDialog","snapPublishDataStore","snapPublisherParser","snapPublishPageActions","snapPublishPageManager","attachmentSVG","autoNumberSVG","CheckBoxChecked","strokeStyle","checkBoxSVG","checkBoxUnChecked","collaborationSVG","createdBySVG","createdTimeSVG","currencySVG","dateTimeSVG","durationSVG","emailSVG","AngrySVG1","canvas","ctx1","p","AngrySVG2","AngrySVG3","AngrySVG4","AngrySVG5","DisappointmentSVG1","DisappointmentSVG2","DisappointmentSVG3","DisappointmentSVG4","DisappointmentSVG5","ExtremeHappySVG1","ExtremeHappySVG2","ExtremeHappySVG3","ExtremeHappySVG4","ExtremeHappySVG5","HappySVG1","HappySVG2","HappySVG3","HappySVG4","HappySVG5","NeutralSVG1","NeutralSVG2","NeutralSVG3","NeutralSVG4","NeutralSVG5","SarcasmSVG1","SarcasmSVG2","SarcasmSVG3","SarcasmSVG4","SarcasmSVG5","emptyFlag","emptyHeart","emptyShield","emptySmiley","emptyStarSVG","emptyThumbsUp","emptyToogleSwitch","emptyBadge","formulaSVG","formulaWarningSignSVG","FullFlag","FullHeart","FullShield","FullSmiley","FullStarSVG","FullThumbsUp","FullToogleSwitch","FullBadge","halfStarSVG","KeywordExtractSVG","languagedetectorSVG","linkSVG","lookupSVG","modifiedBySVG","modifiedTimeSVG","mselectSVG","numberSVG","percentageSVG","phoneNumberSVG","pickListSVG","PricingCrownSVG","ratingSVG","rollupSVG","scientificSVG","sentimentSVG","sselectSVG","symbolSVG","textSVG","urlSVG"],"sourceRoot":""}