{"version":3,"file":"index.js","sources":["../../../Framework/FieldTypes/achievementTypeField.partial.ts","../../../Framework/FieldTypes/addressField.partial.ts","../../../Framework/FieldTypes/assessmentTypesField.partial.ts","../../../Framework/FieldTypes/aiProviderField.partial.ts","../../../Framework/FieldTypes/assetField.partial.ts","../../../Framework/FieldTypes/assetStorageProviderField.partial.ts","../../../Framework/FieldTypes/attendanceField.partial.ts","../../../Framework/FieldTypes/attributeField.partial.ts","../../../Framework/FieldTypes/audioFileField.partial.ts","../../../Framework/FieldTypes/audioUrlField.partial.ts","../../../Framework/FieldTypes/badgesField.partial.ts","../../../Framework/FieldTypes/backgroundCheckField.partial.ts","../../../Framework/FieldTypes/benevolenceRequestField.partial.ts","../../../Framework/FieldTypes/benevolenceTypeField.partial.ts","../../../Framework/FieldTypes/binaryFileField.partial.ts","../../../Framework/FieldTypes/binaryFileTypeField.partial.ts","../../../Framework/FieldTypes/binaryFileTypesField.partial.ts","../../../Framework/FieldTypes/blockTemplateField.partial.ts","../../../Framework/FieldTypes/booleanField.partial.ts","../../../Framework/FieldTypes/campusField.partial.ts","../../../Framework/FieldTypes/campusesField.partial.ts","../../../Framework/FieldTypes/captchaField.partial.ts","../../../Framework/FieldTypes/categoriesField.partial.ts","../../../Framework/FieldTypes/categoryField.partial.ts","../../../Framework/FieldTypes/categorizedDefinedValueField.partial.ts","../../../Framework/FieldTypes/checkinConfigurationTypeField.partial.ts","../../../Framework/FieldTypes/checkListField.partial.ts","../../../Framework/FieldTypes/codeEditorField.partial.ts","../../../Framework/FieldTypes/colorField.partial.ts","../../../Framework/FieldTypes/colorSelectorField.types.partial.ts","../../../Framework/FieldTypes/colorSelectorField.utils.partial.ts","../../../Framework/FieldTypes/colorSelectorField.partial.ts","../../../Framework/FieldTypes/conditionalScaleField.partial.ts","../../../Framework/FieldTypes/connectionOpportunityField.partial.ts","../../../Framework/FieldTypes/connectionTypeField.partial.ts","../../../Framework/FieldTypes/connectionTypesField.partial.ts","../../../Framework/FieldTypes/connectionStateField.partial.ts","../../../Framework/FieldTypes/connectionStatusField.partial.ts","../../../Framework/FieldTypes/contentChannelField.partial.ts","../../../Framework/FieldTypes/contentChannelItemField.partial.ts","../../../Framework/FieldTypes/contentChannelTypeField.partial.ts","../../../Framework/FieldTypes/contentChannelTypesField.partial.ts","../../../Framework/FieldTypes/contentChannelsField.partial.ts","../../../Framework/FieldTypes/connectionActivityTypeField.partial.ts","../../../Framework/FieldTypes/connectionRequestField.partial.ts","../../../Framework/FieldTypes/connectionRequestActivityField.partial.ts","../../../Framework/FieldTypes/communicationPreferenceField.partial.ts","../../../Framework/FieldTypes/communicationTemplateField.partial.ts","../../../Framework/FieldTypes/comparisonField.partial.ts","../../../Framework/FieldTypes/componentsField.partial.ts","../../../Framework/FieldTypes/componentField.partial.ts","../../../Framework/FieldTypes/currencyField.partial.ts","../../../Framework/FieldTypes/dataEntryRequirementLevelField.partial.ts","../../../Framework/FieldTypes/dataViewField.partial.ts","../../../Framework/FieldTypes/dataViewsField.partial.ts","../../../Framework/FieldTypes/dateField.partial.ts","../../../Framework/FieldTypes/dateRangeField.partial.ts","../../../Framework/FieldTypes/dateTimeField.partial.ts","../../../Framework/FieldTypes/dayOfWeekField.partial.ts","../../../Framework/FieldTypes/daysOfWeekField.partial.ts","../../../Framework/FieldTypes/decimalField.partial.ts","../../../Framework/FieldTypes/decimalRangeField.partial.ts","../../../Framework/FieldTypes/definedTypeField.partial.ts","../../../Framework/FieldTypes/definedValueField.partial.ts","../../../Framework/FieldTypes/definedValueRangeField.partial.ts","../../../Framework/FieldTypes/documentTypeField.partial.ts","../../../Framework/FieldTypes/emailField.partial.ts","../../../Framework/FieldTypes/encryptedTextField.partial.ts","../../../Framework/FieldTypes/entityField.partial.ts","../../../Framework/FieldTypes/entityTypeField.partial.ts","../../../Framework/FieldTypes/eventCalendarField.partial.ts","../../../Framework/FieldTypes/eventItemField.partial.ts","../../../Framework/FieldTypes/financialAccountField.partial.ts","../../../Framework/FieldTypes/financialAccountsField.partial.ts","../../../Framework/FieldTypes/financialGatewayField.partial.ts","../../../Framework/FieldTypes/financialStatementTemplateField.partial.ts","../../../Framework/FieldTypes/fileField.partial.ts","../../../Framework/FieldTypes/genderField.partial.ts","../../../Framework/FieldTypes/groupAndRoleField.partial.ts","../../../Framework/FieldTypes/groupField.partial.ts","../../../Framework/FieldTypes/groupLocationTypeField.partial.ts","../../../Framework/FieldTypes/groupRoleField.partial.ts","../../../Framework/FieldTypes/groupMemberField.partial.ts","../../../Framework/FieldTypes/groupMemberRequirementField.partial.ts","../../../Framework/FieldTypes/groupTypeField.partial.ts","../../../Framework/FieldTypes/groupTypesField.partial.ts","../../../Framework/FieldTypes/groupTypeGroupField.partial.ts","../../../Framework/FieldTypes/htmlField.partial.ts","../../../Framework/FieldTypes/imageField.partial.ts","../../../Framework/FieldTypes/integerField.partial.ts","../../../Framework/FieldTypes/integerRangeField.partial.ts","../../../Framework/FieldTypes/interactionChannelField.partial.ts","../../../Framework/FieldTypes/interactionChannelsField.partial.ts","../../../Framework/FieldTypes/interactionChannelInteractionComponentField.partial.ts","../../../Framework/FieldTypes/keyValueListField.partial.ts","../../../Framework/FieldTypes/labelField.partial.ts","../../../Framework/FieldTypes/lavaField.partial.ts","../../../Framework/FieldTypes/lavaCommandsField.partial.ts","../../../Framework/FieldTypes/locationField.partial.ts","../../../Framework/FieldTypes/locationListField.partial.ts","../../../Framework/FieldTypes/markdownField.partial.ts","../../../Framework/FieldTypes/matrixField.partial.ts","../../../Framework/FieldTypes/mediaElementField.partial.ts","../../../Framework/FieldTypes/mediaSelectorField.partial.ts","../../../Framework/FieldTypes/mediaWatchField.partial.ts","../../../Framework/FieldTypes/memoField.partial.ts","../../../Framework/FieldTypes/mergeTemplateField.partial.ts","../../../Framework/FieldTypes/metricCategoriesField.partial.ts","../../../Framework/FieldTypes/metricField.partial.ts","../../../Framework/FieldTypes/mobileNavigationActionField.partial.ts","../../../Framework/FieldTypes/monthDayField.partial.ts","../../../Framework/FieldTypes/multiSelectField.partial.ts","../../../Framework/FieldTypes/noteTypeField.partial.ts","../../../Framework/FieldTypes/noteTypesField.partial.ts","../../../Framework/FieldTypes/persistedDatasetField.partial.ts","../../../Framework/FieldTypes/phoneNumberField.partial.ts","../../../Framework/FieldTypes/pageReferenceField.partial.ts","../../../Framework/FieldTypes/personField.partial.ts","../../../Framework/FieldTypes/prayerRequestField.partial.ts","../../../Framework/FieldTypes/rangeSliderField.partial.ts","../../../Framework/FieldTypes/ratingField.partial.ts","../../../Framework/FieldTypes/registrationTemplateField.partial.ts","../../../Framework/FieldTypes/registrationTemplatesField.partial.ts","../../../Framework/FieldTypes/registrationInstanceField.partial.ts","../../../Framework/FieldTypes/registryEntryField.partial.ts","../../../Framework/FieldTypes/reminderTypeField.partial.ts","../../../Framework/FieldTypes/reminderTypesField.partial.ts","../../../Framework/FieldTypes/remoteAuthsField.partial.ts","../../../Framework/FieldTypes/reportField.partial.ts","../../../Framework/FieldTypes/scheduleField.partial.ts","../../../Framework/FieldTypes/schedulesField.partial.ts","../../../Framework/FieldTypes/secondaryAuthsField.partial.ts","../../../Framework/FieldTypes/securityRoleField.partial.ts","../../../Framework/FieldTypes/singleSelectField.partial.ts","../../../Framework/FieldTypes/slidingDateRangeField.partial.ts","../../../Framework/FieldTypes/socialMediaAccountField.partial.ts","../../../Framework/FieldTypes/siteField.partial.ts","../../../Framework/FieldTypes/stepProgramField.partial.ts","../../../Framework/FieldTypes/ssnField.partial.ts","../../../Framework/FieldTypes/stepField.partial.ts","../../../Framework/FieldTypes/stepProgramStepStatusField.partial.ts","../../../Framework/FieldTypes/stepProgramStepTypeField.partial.ts","../../../Framework/FieldTypes/streakTypeField.partial.ts","../../../Framework/FieldTypes/structureContentEditorField.partial.ts","../../../Framework/FieldTypes/systemCommunicationField.partial.ts","../../../Framework/FieldTypes/systemEmailField.partial.ts","../../../Framework/FieldTypes/systemPhoneNumberField.partial.ts","../../../Framework/FieldTypes/textField.partial.ts","../../../Framework/FieldTypes/timeField.partial.ts","../../../Framework/FieldTypes/timeZoneField.partial.ts","../../../Framework/FieldTypes/universalItemPickerField.partial.ts","../../../Framework/FieldTypes/universalItemSearchPickerField.partial.ts","../../../Framework/FieldTypes/universalItemTreePickerField.partial.ts","../../../Framework/FieldTypes/urlLinkField.partial.ts","../../../Framework/FieldTypes/valueFilterField.partial.ts","../../../Framework/FieldTypes/valueListField.partial.ts","../../../Framework/FieldTypes/videoUrlField.partial.ts","../../../Framework/FieldTypes/videoFileField.partial.ts","../../../Framework/FieldTypes/workflowField.partial.ts","../../../Framework/FieldTypes/workflowActivityField.partial.ts","../../../Framework/FieldTypes/workflowAttributeField.partial.ts","../../../Framework/FieldTypes/workflowTypeField.partial.ts","../../../Framework/FieldTypes/workflowTypesField.partial.ts","../../../Framework/FieldTypes/index.ts"],"sourcesContent":["// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\nimport { ListItemBag } from \"@Obsidian/ViewModels/Utility/listItemBag\";\r\n\r\nexport const enum ConfigurationValueKey {\r\n Values = \"values\"\r\n}\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./achievementTypeFieldComponents\")).EditComponent;\r\n});\r\n\r\n// Load the configuration component only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./achievementTypeFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\n/**\r\n * The field type handler for the Achievement Type field.\r\n */\r\nexport class AchievementTypeFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, configurationValues: Record): string {\r\n if (value === \"\") {\r\n return \"\";\r\n }\r\n\r\n try {\r\n const values = JSON.parse(configurationValues[ConfigurationValueKey.Values] ?? \"[]\") as ListItemBag[];\r\n const userValues = value.split(\",\");\r\n const selectedValues = values.filter(v => userValues.includes(v.value ?? \"\"));\r\n return selectedValues.map(v => v.text)\r\n .map(v => v?.split(\":\").pop()) // just get the name of the note type\r\n .join(\", \");\r\n }\r\n catch {\r\n return value;\r\n }\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n}","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\n\r\nexport type AddressFieldValue = {\r\n street1?: string;\r\n street2?: string;\r\n city?: string;\r\n state?: string;\r\n postalCode?: string;\r\n country?: string;\r\n};\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./addressFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./addressFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\n/**\r\n * The field type handler for the Address field.\r\n */\r\nexport class AddressFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, _configurationValues: Record): string {\r\n try {\r\n const addressValue = JSON.parse(value || \"{}\") as AddressFieldValue;\r\n let textValue = `${addressValue.street1 ?? \"\"} ${addressValue.street2 ?? \"\"} ${addressValue.city ?? \"\"}, ${addressValue.state ?? \"\"} ${addressValue.postalCode ?? \"\"}`;\r\n\r\n textValue = textValue.replace(/ +/, \" \");\r\n textValue = textValue.replace(/^ +/, \"\");\r\n textValue = textValue.replace(/ +$/, \"\");\r\n\r\n return textValue === \",\" ? \"\" : textValue;\r\n }\r\n catch {\r\n return value;\r\n }\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n\r\n public override isFilterable(): boolean {\r\n return false;\r\n }\r\n}\r\n","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\nimport { ListItemBag } from \"@Obsidian/ViewModels/Utility/listItemBag\";\r\n\r\nexport const enum ConfigurationValueKey {\r\n Values = \"values\",\r\n EnhancedSelection = \"enhancedselection\",\r\n RepeatColumns = \"repeatColumns\",\r\n IncludeInactive = \"includeInactive\"\r\n}\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./assessmentTypesFieldComponents\")).EditComponent;\r\n});\r\n\r\n// Load the configuration component only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./assessmentTypesFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\n/**\r\n * The field type handler for the Achievement Type field.\r\n */\r\nexport class AssessmentTypesFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, _configurationValues: Record): string {\r\n return value ?? \"\";\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n}","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./aiProviderFieldComponents\")).EditComponent;\r\n});\r\n\r\n// Load the configuration component only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./aiProviderFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\n/**\r\n * The field type handler for the AI Provider Type field.\r\n */\r\nexport class AIProviderFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, _configurationValues: Record): string {\r\n return value ?? \"\";\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n}","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\nimport { escapeHtml } from \"@Obsidian/Utility/stringUtils\";\r\nimport { FileAsset } from \"@Obsidian/ViewModels/Controls/fileAsset\";\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./assetFieldComponents\")).EditComponent;\r\n});\r\n\r\n// Load the configuration component only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./assetFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\n/**\r\n * The field type handler for the Asset field.\r\n */\r\nexport class AssetFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, _configurationValues: Record): string {\r\n if (value) {\r\n try {\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n const asset = JSON.parse(value) as Partial<{Url: string}>;\r\n\r\n return asset?.Url ?? \"\";\r\n }\r\n catch {\r\n return value ?? \"\";\r\n }\r\n }\r\n else {\r\n return \"\";\r\n }\r\n }\r\n\r\n public override getHtmlValue(value: string, configurationValues: Record, isEscaped?: boolean): string {\r\n const url = escapeHtml(this.getTextValue(value, configurationValues));\r\n return isEscaped ? url : `${url}`;\r\n }\r\n\r\n public override getCondensedHtmlValue(value: string, configurationValues: Record, isEscaped?: boolean): string {\r\n return this.getHtmlValue(value, configurationValues, isEscaped);\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n}","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./assetStorageProviderFieldComponents\")).EditComponent;\r\n});\r\n\r\n// Load the configuration component only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./assetStorageProviderFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\n/**\r\n * The field type handler for the Asset Storage Provider Type field.\r\n */\r\nexport class AssetStorageProviderFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, _configurationValues: Record): string {\r\n return value ?? \"\";\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n}","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\n\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { ComparisonType } from \"@Obsidian/Enums/Reporting/comparisonType\";\r\nimport { stringComparisonTypes } from \"@Obsidian/Core/Reporting/comparisonType\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./attendanceFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./attendanceFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\nexport class AttendanceFieldType extends FieldTypeBase {\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getSupportedComparisonTypes(): ComparisonType {\r\n return stringComparisonTypes;\r\n }\r\n}\r\n","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\n\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\nimport { ComparisonType } from \"@Obsidian/Enums/Reporting/comparisonType\";\r\n\r\nexport const enum ConfigurationValueKey {\r\n ClientValues = \"values\",\r\n Entitytype = \"entitytype\",\r\n AllowMultiple = \"allowmultiple\",\r\n QualifierColumn = \"qualifierColumn\",\r\n QualifierValue = \"qualifierValue\"\r\n}\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./attributeFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./attributeFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\nexport class AttributeFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, _configurationValues: Record): string {\r\n return value ?? \"\";\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n\r\n public override getSupportedComparisonTypes(): ComparisonType {\r\n return ComparisonType.Contains | ComparisonType.DoesNotContain | ComparisonType.IsBlank;\r\n }\r\n}\r\n","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\n\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { ComparisonType } from \"@Obsidian/Enums/Reporting/comparisonType\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\nimport { escapeHtml } from \"@Obsidian/Utility/stringUtils\";\r\nimport { ListItemBag } from \"@Obsidian/ViewModels/Utility/listItemBag\";\r\n\r\nexport const enum ConfigurationValueKey {\r\n BinaryFileType = \"binaryFileType\",\r\n MimeType = \"mimeType\",\r\n FilePath = \"filePath\"\r\n}\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./audioFileFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./audioFileFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\nexport class AudioFileFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, _configurationValues: Record): string {\r\n if (!value) {\r\n return \"\";\r\n }\r\n\r\n const binaryFile = JSON.parse(value) as ListItemBag;\r\n\r\n return binaryFile.text ?? \"\";\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n\r\n public override getSupportedComparisonTypes(): ComparisonType {\r\n return ComparisonType.IsBlank | ComparisonType.IsNotBlank;\r\n }\r\n\r\n public override getHtmlValue(value: string, configurationValues: Record, isEscaped: boolean = false): string {\r\n if (!value) {\r\n return \"\";\r\n }\r\n\r\n const binaryFile = JSON.parse(value) as ListItemBag;\r\n const filePath = configurationValues[ConfigurationValueKey.FilePath];\r\n const mimeType = configurationValues[ConfigurationValueKey.MimeType];\r\n\r\n const html = `\r\n\r\n\r\n\r\n\r\n `;\r\n\r\n if (isEscaped) {\r\n return escapeHtml(html);\r\n }\r\n\r\n return html;\r\n }\r\n\r\n public override getCondensedHtmlValue(value: string, configurationValues: Record): string {\r\n if (!value) {\r\n return \"\";\r\n }\r\n\r\n const binaryFile = JSON.parse(value) as ListItemBag;\r\n const filePath = configurationValues[ConfigurationValueKey.FilePath];\r\n\r\n const condensedValue = `${this.encodeXml(binaryFile.text ?? \"\")}`;\r\n return `${escapeHtml(condensedValue)}`;\r\n }\r\n\r\n // Turns a string into a properly XML Encoded string.\r\n private encodeXml(str: string): string {\r\n let encoded = \"\";\r\n for (let i = 0; i < str.length; i++) {\r\n const chr = str.charAt(i);\r\n switch (chr) {\r\n case \"<\":\r\n encoded += \"<\";\r\n break;\r\n case \">\":\r\n encoded += \">\";\r\n break;\r\n case \"&\":\r\n encoded += \"&\";\r\n break;\r\n case '\"':\r\n encoded += \""\";\r\n break;\r\n case \"'\":\r\n encoded += \"'\";\r\n break;\r\n case \"\\n\":\r\n encoded += \" \";\r\n break;\r\n case \"\\r\":\r\n encoded += \" \";\r\n break;\r\n case \"\\t\":\r\n encoded += \" \";\r\n break;\r\n default:\r\n encoded += chr;\r\n break;\r\n }\r\n }\r\n\r\n return encoded;\r\n }\r\n}","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\n\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { ComparisonType } from \"@Obsidian/Enums/Reporting/comparisonType\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\nimport { stringComparisonTypes } from \"@Obsidian/Core/Reporting/comparisonType\";\r\nimport { escapeHtml, truncate } from \"@Obsidian/Utility/stringUtils\";\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./audioUrlFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./audioUrlFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\nexport class AudioUrlFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, _configurationValues: Record): string {\r\n return value ?? \"\";\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n\r\n public override getSupportedComparisonTypes(): ComparisonType {\r\n return stringComparisonTypes;\r\n }\r\n\r\n public override getHtmlValue(value: string, _configurationValues: Record, isEscaped: boolean = false): string {\r\n if (!value) {\r\n return \"\";\r\n }\r\n\r\n const html = `\r\n\r\n\r\n\r\n\r\n `;\r\n\r\n if (isEscaped) {\r\n return escapeHtml(html);\r\n }\r\n\r\n return html;\r\n }\r\n\r\n public override getCondensedHtmlValue(value: string, _configurationValues: Record): string {\r\n if (!value) {\r\n return \"\";\r\n }\r\n\r\n const condensedValue = `${truncate(value, 100)}`;\r\n return `${escapeHtml(condensedValue)}`;\r\n }\r\n\r\n // Turns a string into a properly XML Encoded string.\r\n private encodeXml(str: string): string {\r\n let encoded = \"\";\r\n for (let i = 0; i < str.length; i++) {\r\n const chr = str.charAt(i);\r\n switch (chr) {\r\n case \"<\":\r\n encoded += \"<\";\r\n break;\r\n case \">\":\r\n encoded += \">\";\r\n break;\r\n case \"&\":\r\n encoded += \"&\";\r\n break;\r\n case '\"':\r\n encoded += \""\";\r\n break;\r\n case \"'\":\r\n encoded += \"'\";\r\n break;\r\n case \"\\n\":\r\n encoded += \" \";\r\n break;\r\n case \"\\r\":\r\n encoded += \" \";\r\n break;\r\n case \"\\t\":\r\n encoded += \" \";\r\n break;\r\n default:\r\n encoded += chr;\r\n break;\r\n }\r\n }\r\n\r\n return encoded;\r\n }\r\n}\r\n","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\n\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\nimport { ListItemBag } from \"@Obsidian/ViewModels/Utility/listItemBag\";\r\n\r\nexport const enum ConfigurationValueKey {\r\n ClientValues = \"values\",\r\n RepeatColumns = \"repeatColumns\",\r\n EnhancedSelection = \"enhancedselection\"\r\n}\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./badgesFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./badgesFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\nexport class BadgesFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, configurationValues: Record): string {\r\n if (value === undefined || value === null || value === \"\") {\r\n return \"\";\r\n }\r\n\r\n try {\r\n const values = JSON.parse(configurationValues[ConfigurationValueKey.ClientValues] ?? \"[]\") as ListItemBag[];\r\n const userValues = value.split(\",\");\r\n const selectedValues = values.filter(o => userValues.includes(o.value ?? \"\"));\r\n\r\n return selectedValues.map(o => o.text).join(\", \");\r\n }\r\n catch {\r\n return value;\r\n }\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n}\r\n","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\n\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\n\r\nexport const enum ConfigurationValueKey {\r\n BinaryFileType = \"binaryFileType\",\r\n}\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./backgroundCheckFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./backgroundCheckFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\n/**\r\n * The field type handler for the TimeZone field.\r\n */\r\nexport class BackgroundCheckFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, _configurationValues: Record): string {\r\n return value ?? \"\";\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n\r\n public override isFilterable(): boolean {\r\n return false;\r\n }\r\n}","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\n\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./benevolenceRequestFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./benevolenceRequestFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\nexport class BenevolenceRequestFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, _configurationValues: Record): string {\r\n return value ?? \"\";\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n}","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./benevolenceTypeFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./benevolenceTypeFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\n/**\r\n * The field type handler for the BenevolenceType field.\r\n */\r\nexport class BenevolenceTypeFieldType extends FieldTypeBase {\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n}\r\n","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\n\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { ComparisonType } from \"@Obsidian/Enums/Reporting/comparisonType\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\n\r\nexport const enum ConfigurationValueKey {\r\n BinaryFileType = \"binaryFileType\"\r\n}\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./binaryFileFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./binaryFileFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\nexport class BinaryFileFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, _configurationValues: Record): string {\r\n return value ?? \"\";\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n\r\n public override getSupportedComparisonTypes(): ComparisonType {\r\n return ComparisonType.IsBlank | ComparisonType.IsNotBlank;\r\n }\r\n}","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\n\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { ComparisonType } from \"@Obsidian/Enums/Reporting/comparisonType\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./binaryFileTypeFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./binaryFileTypeFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\nexport class BinaryFileTypeFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, _configurationValues: Record): string {\r\n return value ?? \"\";\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n\r\n public override getSupportedComparisonTypes(): ComparisonType {\r\n return ComparisonType.IsBlank | ComparisonType.IsNotBlank;\r\n }\r\n}","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\n\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\nimport { ListItemBag } from \"@Obsidian/ViewModels/Utility/listItemBag\";\r\n\r\nexport const enum ConfigurationValueKey {\r\n ClientValues = \"values\",\r\n RepeatColumns = \"repeatColumns\",\r\n EnhancedSelection = \"enhancedselection\"\r\n}\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./binaryFileTypesFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./binaryFileTypesFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\nexport class BinaryFileTypesFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, configurationValues: Record): string {\r\n if (value === undefined || value === null || value === \"\") {\r\n return \"\";\r\n }\r\n\r\n try {\r\n const values = JSON.parse(configurationValues[ConfigurationValueKey.ClientValues] ?? \"[]\") as ListItemBag[];\r\n const userValues = value.split(\",\");\r\n const selectedValues = values.filter(o => userValues.includes(o.value ?? \"\"));\r\n\r\n return selectedValues.map(o => o.text).join(\", \");\r\n }\r\n catch {\r\n return value;\r\n }\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n}","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\n\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\n\r\nexport const enum ConfigurationValueKey {\r\n TemplateBlock = \"templateblock\"\r\n}\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./blockTemplateFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./blockTemplateFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\nexport class BlockTemplateFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, _configurationValues: Record): string {\r\n return value ?? \"\";\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n}","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\nimport { Component } from \"vue\";\r\nimport { ComparisonType } from \"@Obsidian/Enums/Reporting/comparisonType\";\r\nimport { asBooleanOrNull } from \"@Obsidian/Utility/booleanUtils\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\nimport { getStandardFilterComponent } from \"./utils\";\r\n\r\nexport const enum ConfigurationValueKey {\r\n BooleanControlType = \"BooleanControlType\",\r\n FalseText = \"falsetext\",\r\n TrueText = \"truetext\"\r\n}\r\n\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./booleanFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./booleanFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\n// Only load the filter component as needed.\r\nconst filterComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./booleanFieldComponents\")).FilterComponent;\r\n});\r\n\r\n/**\r\n * The field type handler for the Boolean field.\r\n */\r\nexport class BooleanFieldType extends FieldTypeBase {\r\n public override getCondensedTextValue(value: string, _configurationValues: Record): string {\r\n const boolValue = asBooleanOrNull(value);\r\n\r\n if (boolValue === null) {\r\n return \"\";\r\n }\r\n else if (boolValue === true) {\r\n return \"Y\";\r\n }\r\n else {\r\n return \"N\";\r\n }\r\n }\r\n\r\n public override getTextValue(value: string, configurationValues: Record): string {\r\n const boolValue = asBooleanOrNull(value);\r\n\r\n if (boolValue === null) {\r\n return \"\";\r\n }\r\n else if (boolValue === true) {\r\n return configurationValues[ConfigurationValueKey.TrueText] || \"Yes\";\r\n }\r\n else {\r\n return configurationValues[ConfigurationValueKey.FalseText] || \"No\";\r\n }\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n\r\n public override getSupportedComparisonTypes(): ComparisonType {\r\n return ComparisonType.EqualTo | ComparisonType.NotEqualTo;\r\n }\r\n\r\n public override getFilterComponent(): Component {\r\n return getStandardFilterComponent(this.getSupportedComparisonTypes(), filterComponent);\r\n }\r\n}\r\n","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { ComparisonType } from \"@Obsidian/Enums/Reporting/comparisonType\";\r\nimport { ComparisonValue } from \"@Obsidian/Types/Reporting/comparisonValue\";\r\nimport { areEqual } from \"@Obsidian/Utility/guid\";\r\nimport { ListItemBag } from \"@Obsidian/ViewModels/Utility/listItemBag\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\nimport { getStandardFilterComponent } from \"./utils\";\r\n\r\nexport const enum ConfigurationValueKey {\r\n Values = \"values\",\r\n IncludeInactive = \"includeInactive\",\r\n FilterCampusTypes = \"filterCampusTypes\",\r\n FilterCampusStatus = \"filterCampusStatus\",\r\n ForceVisible = \"forceVisible\",\r\n SelectableCampuses = \"selectableCampuses\",\r\n ValuesInactive = \"valuesInactive\"\r\n}\r\n\r\nexport const enum ConfigurationPropertyKey {\r\n Campuses = \"campuses\",\r\n CampusTypes = \"campusTypes\",\r\n CampusStatuses = \"campusStatuses\"\r\n}\r\n\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./campusFieldComponents\")).EditComponent;\r\n});\r\n\r\n// Load the filter component only as needed.\r\nconst filterComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./campusFieldComponents\")).FilterComponent;\r\n});\r\n\r\n// Load the configuration component only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./campusFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\n/**\r\n * The field type handler for the Campus field.\r\n */\r\nexport class CampusFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, configurationValues: Record): string {\r\n if (value === undefined || value === null || value === \"\") {\r\n return \"\";\r\n }\r\n\r\n try {\r\n const values = JSON.parse(configurationValues[ConfigurationValueKey.Values] ?? \"[]\") as ListItemBag[];\r\n const selectedValues = values.filter(o => o.value === value);\r\n\r\n return selectedValues.map(o => o.text).join(\", \");\r\n }\r\n catch {\r\n return value;\r\n }\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n\r\n public override getSupportedComparisonTypes(): ComparisonType {\r\n return 0;\r\n }\r\n\r\n public override getFilterValueText(value: ComparisonValue, configurationValues: Record): string {\r\n if (!value.value) {\r\n return \"\";\r\n }\r\n\r\n try {\r\n const rawValues = value.value.split(\",\");\r\n const values = JSON.parse(configurationValues?.[ConfigurationValueKey.Values] ?? \"[]\") as ListItemBag[];\r\n const selectedValues = values.filter(o => rawValues.filter(v => areEqual(v, o.value)).length > 0);\r\n\r\n return `'${selectedValues.map(o => o.text).join(\"' OR '\")}'`;\r\n }\r\n catch {\r\n return `'${value.value}'`;\r\n }\r\n }\r\n\r\n public override getFilterComponent(): Component {\r\n return getStandardFilterComponent(\"Is\", filterComponent);\r\n }\r\n\r\n public override doesValueMatchFilter(value: string, filterValue: ComparisonValue, _configurationValues: Record): boolean {\r\n const selectedValues = (filterValue.value ?? \"\").split(\",\").filter(v => v !== \"\").map(v => v.toLowerCase());\r\n let comparisonType = filterValue.comparisonType;\r\n\r\n if (comparisonType === ComparisonType.EqualTo) {\r\n // Treat EqualTo as if it were Contains.\r\n comparisonType = ComparisonType.Contains;\r\n }\r\n else if (comparisonType === ComparisonType.NotEqualTo) {\r\n // Treat NotEqualTo as if it were DoesNotContain.\r\n comparisonType = ComparisonType.DoesNotContain;\r\n }\r\n\r\n if (comparisonType === ComparisonType.IsBlank) {\r\n return value === \"\";\r\n }\r\n else if (comparisonType === ComparisonType.IsNotBlank) {\r\n return value !== \"\";\r\n }\r\n\r\n if (selectedValues.length > 0) {\r\n let matched = selectedValues.includes((value ?? \"\").toLowerCase());\r\n\r\n if (comparisonType === ComparisonType.DoesNotContain) {\r\n matched = !matched;\r\n }\r\n\r\n return matched;\r\n }\r\n\r\n return false;\r\n }\r\n}\r\n","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { ListItemBag } from \"@Obsidian/ViewModels/Utility/listItemBag\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\nimport { ComparisonValue } from \"@Obsidian/Types/Reporting/comparisonValue\";\r\nimport { ComparisonType } from \"@Obsidian/Enums/Reporting/comparisonType\";\r\n\r\nexport const enum ConfigurationValueKey {\r\n Values = \"values\",\r\n EnhancedSelection = \"enhancedselection\",\r\n RepeatColumns = \"repeatColumns\",\r\n IncludeInactive = \"includeInactive\",\r\n FilterCampusTypes = \"filterCampusTypes\",\r\n FilterCampusStatus = \"filterCampusStatus\",\r\n SelectableCampuses = \"selectableCampuses\"\r\n}\r\n\r\nexport const enum ConfigurationPropertyKey {\r\n Campuses = \"campuses\",\r\n CampusTypes = \"campusTypes\",\r\n CampusStatuses = \"campusStatuses\"\r\n}\r\n\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./campusesFieldComponents\")).EditComponent;\r\n});\r\n\r\n// Load the configuration component only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./campusesFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\n/**\r\n * The field type handler for the Campuses field.\r\n */\r\nexport class CampusesFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, configurationValues: Record): string {\r\n if (value === undefined || value === null || value === \"\") {\r\n return \"\";\r\n }\r\n\r\n try {\r\n const values = JSON.parse(configurationValues[ConfigurationValueKey.Values] ?? \"[]\") as ListItemBag[];\r\n const userValues = value.split(\",\");\r\n const selectedValues = values.filter(o => userValues.includes(o.value ?? \"\"));\r\n\r\n return selectedValues.map(o => o.text).join(\", \");\r\n }\r\n catch {\r\n return value;\r\n }\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n\r\n public override doesValueMatchFilter(value: string, filterValue: ComparisonValue, _configurationValues: Record): boolean {\r\n const selectedValues = (filterValue.value ?? \"\").split(\",\").filter(v => v !== \"\").map(v => v.toLowerCase());\r\n let comparisonType = filterValue.comparisonType;\r\n\r\n if (comparisonType === ComparisonType.EqualTo) {\r\n // Treat EqualTo as if it were Contains.\r\n comparisonType = ComparisonType.Contains;\r\n }\r\n else if (comparisonType === ComparisonType.NotEqualTo) {\r\n // Treat NotEqualTo as if it were DoesNotContain.\r\n comparisonType = ComparisonType.DoesNotContain;\r\n }\r\n\r\n if (comparisonType === ComparisonType.IsBlank) {\r\n return value === \"\";\r\n }\r\n else if (comparisonType === ComparisonType.IsNotBlank) {\r\n return value !== \"\";\r\n }\r\n\r\n if (selectedValues.length > 0) {\r\n let matched = selectedValues.includes(value.toLowerCase());\r\n\r\n if (comparisonType === ComparisonType.DoesNotContain) {\r\n matched = !matched;\r\n }\r\n\r\n return matched;\r\n }\r\n\r\n return false;\r\n }\r\n}\r\n","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\n\r\nexport const enum ConfigurationPropertyKey {\r\n NotificationWarning = \"notificationWarning\"\r\n}\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./captchaFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./captchaFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\n/**\r\n * The field type handler for the Captcha field.\r\n */\r\nexport class CaptchaFieldType extends FieldTypeBase {\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n\r\n public override hasDefaultComponent(): boolean {\r\n return false;\r\n }\r\n}\r\n","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\n\r\nexport const enum ConfigurationValueKey {\r\n EntityTypeName = \"entityTypeName\",\r\n QualifierColumn = \"qualifierColumn\",\r\n QualifierValue = \"qualifierValue\"\r\n}\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./categoriesFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./categoriesFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\n/**\r\n * The field type handler for the Address field.\r\n */\r\nexport class CategoriesFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, _configurationValues: Record): string {\r\n return value ?? \"\";\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n\r\n public override isFilterable(): boolean {\r\n return false;\r\n }\r\n}","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\n\r\nexport const enum ConfigurationValueKey {\r\n EntityTypeName = \"entityTypeName\",\r\n QualifierColumn = \"qualifierColumn\",\r\n QualifierValue = \"qualifierValue\"\r\n}\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./categoryFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./categoryFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\n/**\r\n * The field type handler for the Address field.\r\n */\r\nexport class CategoryFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, _configurationValues: Record): string {\r\n return value ?? \"\";\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n\r\n public override isFilterable(): boolean {\r\n return false;\r\n }\r\n}","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\n\r\nexport const enum ConfigurationValueKey {\r\n DefinedType = \"DefinedType\",\r\n DefinedTypes = \"DefinedTypes\",\r\n DefinedTypeValues = \"DefinedTypeValues\",\r\n SelectableDefinedValues = \"SelectableDefinedValues\"\r\n}\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./categorizedDefinedValueFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./categorizedDefinedValueFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\n/**\r\n * The field type handler for the Address field.\r\n */\r\nexport class CategorizedDefinedValueField extends FieldTypeBase {\r\n public override getTextValue(value: string, _configurationValues: Record): string {\r\n return value ?? \"\";\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n\r\n public override isFilterable(): boolean {\r\n return false;\r\n }\r\n}","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\nimport { ListItemBag } from \"@Obsidian/ViewModels/Utility/listItemBag\";\r\n\r\nexport const enum ConfigurationValueKey {\r\n Values = \"values\",\r\n EnhancedForLongLists = \"enhancedselection\",\r\n RepeatColumns = \"repeatColumns\"\r\n}\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./checkinConfigurationTypeFieldComponents\")).EditComponent;\r\n});\r\n\r\n// Load the configuration component only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./checkinConfigurationTypeFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\n/**\r\n * The field type handler for the Checkin Configuration field.\r\n */\r\nexport class CheckinConfigurationTypeField extends FieldTypeBase {\r\n public override getTextValue(value: string, configurationValues: Record): string {\r\n if (value === \"\") {\r\n return \"\";\r\n }\r\n\r\n try {\r\n const values = JSON.parse(configurationValues[ConfigurationValueKey.Values] ?? \"[]\") as ListItemBag[];\r\n const userValues = value.split(\",\");\r\n const selectedValues = values.filter(v => userValues.includes(v.value ?? \"\"));\r\n return selectedValues.map(v => v.text)\r\n .map(v => v?.split(\":\").pop()) // just get the name of the note type\r\n .join(\", \");\r\n }\r\n catch {\r\n return value;\r\n }\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n}","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { ComparisonType } from \"@Obsidian/Enums/Reporting/comparisonType\";\r\nimport { containsComparisonTypes } from \"@Obsidian/Core/Reporting/comparisonType\";\r\nimport { ComparisonValue } from \"@Obsidian/Types/Reporting/comparisonValue\";\r\nimport { ListItemBag } from \"@Obsidian/ViewModels/Utility/listItemBag\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\nimport { getStandardFilterComponent } from \"./utils\";\r\nimport { KeyValueItem } from \"@Obsidian/Types/Controls/keyValueItem\";\r\n\r\nexport const enum ConfigurationValueKey {\r\n Values = \"values\",\r\n RepeatColumns = \"repeatColumns\",\r\n ListItems = \"listItems\"\r\n}\r\n\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./checkListFieldComponents\")).EditComponent;\r\n});\r\n\r\n// Load the filter component only as needed.\r\nconst filterComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./checkListFieldComponents\")).FilterComponent;\r\n});\r\n\r\n// Load the configuration component only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./checkListFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\n/**\r\n * The field type handler for the Check List field.\r\n */\r\nexport class CheckListFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, configurationValues: Record): string {\r\n if (value === \"\") {\r\n return \"\";\r\n }\r\n\r\n try {\r\n const values = JSON.parse(configurationValues[ConfigurationValueKey.ListItems] ?? \"[]\") as KeyValueItem[];\r\n const userValues = value.split(\",\");\r\n const selectedValues = values.filter(v => userValues.includes(v.key ?? \"\"));\r\n\r\n return selectedValues.map(v => v.value).join(\", \");\r\n }\r\n catch {\r\n return value;\r\n }\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n\r\n public override getSupportedComparisonTypes(): ComparisonType {\r\n return containsComparisonTypes;\r\n }\r\n\r\n public override getFilterComponent(): Component {\r\n return getStandardFilterComponent(this.getSupportedComparisonTypes(), filterComponent);\r\n }\r\n\r\n public override getFilterValueText(value: ComparisonValue, configurationValues: Record): string {\r\n if (value.value === \"\") {\r\n return \"\";\r\n }\r\n\r\n try {\r\n const rawValues = value.value.split(\",\");\r\n const values = JSON.parse(configurationValues?.[ConfigurationValueKey.Values] ?? \"[]\") as ListItemBag[];\r\n const selectedValues = values.filter(v => rawValues.includes(v.value ?? \"\"));\r\n\r\n if (selectedValues.length >= 1) {\r\n return `'${selectedValues.map(v => v.value).join(\"' OR '\")}'`;\r\n }\r\n else {\r\n return \"\";\r\n }\r\n }\r\n catch {\r\n return value.value;\r\n }\r\n }\r\n\r\n public override doesValueMatchFilter(value: string, filterValue: ComparisonValue, _configurationValues: Record): boolean {\r\n const selectedValues = (filterValue.value ?? \"\").split(\",\").filter(v => v !== \"\").map(v => v.toLowerCase());\r\n let comparisonType = filterValue.comparisonType;\r\n\r\n if (comparisonType === ComparisonType.EqualTo) {\r\n // Treat EqualTo as if it were Contains.\r\n comparisonType = ComparisonType.Contains;\r\n }\r\n else if (comparisonType === ComparisonType.NotEqualTo) {\r\n // Treat NotEqualTo as if it were DoesNotContain.\r\n comparisonType = ComparisonType.DoesNotContain;\r\n }\r\n\r\n if (comparisonType === ComparisonType.IsBlank) {\r\n return value === \"\";\r\n }\r\n else if (comparisonType === ComparisonType.IsNotBlank) {\r\n return value !== \"\";\r\n }\r\n\r\n if (selectedValues.length > 0) {\r\n const userValues = value?.split(\",\").filter(v => v !== \"\").map(v => v.toLowerCase()) ?? [];\r\n\r\n if (comparisonType === ComparisonType.Contains) {\r\n let matchedCount = 0;\r\n\r\n for (const userValue of userValues) {\r\n if (selectedValues.includes(userValue)) {\r\n matchedCount += 1;\r\n }\r\n }\r\n\r\n return matchedCount > 0;\r\n }\r\n else {\r\n let matchedCount = 0;\r\n\r\n for (const userValue of userValues) {\r\n if (selectedValues.includes(userValue)) {\r\n matchedCount += 1;\r\n }\r\n }\r\n\r\n return matchedCount !== selectedValues.length;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n}\r\n","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\n\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { ComparisonType } from \"@Obsidian/Enums/Reporting/comparisonType\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\nimport { stringComparisonTypes } from \"@Obsidian/Core/Reporting/comparisonType\";\r\n\r\nexport const enum ConfigurationValueKey {\r\n EditorMode = \"editorMode\",\r\n EditorTheme = \"editorTheme\",\r\n EditorHeight = \"editorHeight\",\r\n}\r\n\r\nexport const enum ConfigurationPropertyKey {\r\n EditorModeOptions = \"editorModeOptions\",\r\n EditorThemeOptions = \"editorThemeOptions\",\r\n}\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./codeEditorFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./codeEditorFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\nexport class CodeEditorFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, _configurationValues: Record): string {\r\n return value ?? \"\";\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n\r\n public override getSupportedComparisonTypes(): ComparisonType {\r\n return stringComparisonTypes;\r\n }\r\n}","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./colorFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./colorFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\n/**\r\n * The field type handler for the Color field.\r\n */\r\nexport class ColorFieldType extends FieldTypeBase {\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n}\r\n","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\n\r\nexport enum ConfigurationValueKey {\r\n Colors = \"colors\",\r\n AllowMultiple = \"allowMultiple\"\r\n}","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\n\r\nimport { RockColor } from \"@Obsidian/Core/Utilities/rockColor\";\r\n\r\nconst valueDelimiter = \"|\";\r\nconst isValidColorRegex = /^#(([0-9a-fA-F]{3})|([0-9a-fA-F]{4})|([0-9a-fA-F]{6})|([0-9a-fA-F]{8}))$/;\r\n\r\n/**\r\n * Tests if the provided string is a valid hexadecimal color.\r\n * Validate formats are:\r\n * 1. #RGB\r\n * 2. #RGBA\r\n * 3. #RRGGBB\r\n * 4. #RRGGBBAA\r\n * @param value The value to test.\r\n */\r\nexport function isValidHexColor(value: string): boolean {\r\n return isValidColorRegex.test(value);\r\n}\r\n\r\nexport function deserializeColors(value: string): string[] {\r\n return value.split(valueDelimiter);\r\n}\r\n\r\nexport function serializeColors(values: string[]): string {\r\n return values.join(valueDelimiter);\r\n}\r\n\r\nexport function deserializeValue(value: string): string[] {\r\n return value.split(valueDelimiter);\r\n}\r\n\r\nexport function serializeValue(values: string[]): string {\r\n return values.join(valueDelimiter);\r\n}\r\n\r\nexport function deserializeAllowMultiple(value: string): boolean {\r\n return value?.toLowerCase() === \"true\";\r\n}\r\n\r\nexport function serializeAllowMultiple(allowMultiple: boolean): string {\r\n return allowMultiple.toString();\r\n}\r\n\r\nexport function getSelectedColors(colors: string[], values: string[]): string[] {\r\n return colors.filter(color => values.some(value => value.toLowerCase() === color.toLowerCase()));\r\n}\r\n\r\n/**\r\n * Sets the camouflaged class if the element color is similar to the target element (or parent if not set).\r\n * @param {Element} element The element to compare.\r\n * @param {Element} ancestorElement (Optional) The target element with which to compare colors. Defaults to the parent element.\r\n */\r\nexport function setCamouflagedClass(element: Element, ancestorElement?: Element | null): void {\r\n if (!ancestorElement) {\r\n ancestorElement = element.parentElement;\r\n\r\n if (!ancestorElement) {\r\n return;\r\n }\r\n }\r\n\r\n const elementColor = getBackgroundColor(element);\r\n const ancestorElementColor = getBackgroundColor(ancestorElement);\r\n\r\n if (elementColor.isSimilarTo(ancestorElementColor)) {\r\n element.classList.add(elementColor.luma > 0.5 ? \"camouflaged-light\" : \"camouflaged-dark\");\r\n }\r\n else {\r\n element.classList.remove(\"camouflaged-light\");\r\n element.classList.remove(\"camouflaged-dark\");\r\n }\r\n}\r\n\r\nfunction getBackgroundColor(element: Element): RockColor {\r\n function getComputedBackgroundColor(element: Element): string {\r\n return window.getComputedStyle(element).getPropertyValue(\"background-color\");\r\n }\r\n\r\n // typically \"rgba(0, 0, 0, 0)\"\r\n const defaultColor = new RockColor(getComputedBackgroundColor(document.body));\r\n\r\n // Start with the supplied element.\r\n const elementsToProcess: Element[] = [\r\n element\r\n ];\r\n\r\n while (elementsToProcess.length) {\r\n // Process the first element in the array.\r\n const elementToProcess = elementsToProcess.shift();\r\n\r\n if (!elementToProcess) {\r\n // Skip to the next element if the current one is null or undefined.\r\n continue;\r\n }\r\n\r\n const backgroundColor = new RockColor(getComputedBackgroundColor(elementToProcess));\r\n\r\n // If we got a different value than the default, return it.\r\n if (backgroundColor.alpha !== 0 && backgroundColor.compareTo(defaultColor) !== 0) {\r\n return backgroundColor;\r\n }\r\n // Otherwise, add the parent element to the elements in process.\r\n else if (elementToProcess.parentElement) {\r\n elementsToProcess.push(elementToProcess.parentElement);\r\n }\r\n }\r\n\r\n // If we reached the top parent element and no unique color was found,\r\n // then return the default color.\r\n return defaultColor;\r\n}","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\nimport { Component, nextTick } from \"vue\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\nimport { ConfigurationValueKey } from \"./colorSelectorField.types.partial\";\r\nimport { deserializeColors, deserializeValue, getSelectedColors, setCamouflagedClass } from \"./colorSelectorField.utils.partial\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport guid from \"@Obsidian/Utility/guid\";\r\nimport { escapeHtml } from \"@Obsidian/Utility/stringUtils\";\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./colorSelectorComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./colorSelectorComponents\")).ConfigurationComponent;\r\n});\r\n\r\n/**\r\n * The field type handler for the Color field.\r\n */\r\nexport class ColorSelectorFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, configurationValues: Record): string {\r\n // value is a comma-separated list of guids/keys.\r\n // configurationValues[\"Colors\"] is an array of Key-Value pairs, where the key is a guid/key and the value is the hex color.\r\n try {\r\n const values = deserializeValue(value).map(clientKey => clientKey?.toLowerCase());\r\n const colors: string[] = deserializeColors(configurationValues[ConfigurationValueKey.Colors]);\r\n\r\n return getSelectedColors(colors, values).join(\",\");\r\n }\r\n catch {\r\n return \"\";\r\n }\r\n }\r\n\r\n public override getHtmlValue(value: string, configurationValues: Record, isEscaped: boolean = false): string {\r\n const htmlStringBuilder: string[] = [];\r\n const selectorsToProcess: string[] = [];\r\n const colors = deserializeColors(configurationValues[ConfigurationValueKey.Colors]);\r\n const values = deserializeValue(value);\r\n\r\n htmlStringBuilder.push(\"
\");\r\n\r\n const selectedColors = getSelectedColors(colors, values);\r\n\r\n for (const color of selectedColors) {\r\n const itemGuid = guid.newGuid();\r\n const containerId = `color-selector-item-container-${itemGuid}`;\r\n const itemId = `color-selector-item-${itemGuid}`;\r\n\r\n htmlStringBuilder.push(`
`);\r\n htmlStringBuilder.push(`
`);\r\n htmlStringBuilder.push(\"
\");\r\n htmlStringBuilder.push(\"
\");\r\n\r\n // Keep track of the color elements that may have to be outlined\r\n // if they are too hard to see.\r\n selectorsToProcess.push(`#${itemId}`);\r\n }\r\n\r\n htmlStringBuilder.push(\"
\");\r\n\r\n this.processSelectors(selectorsToProcess);\r\n\r\n const html = htmlStringBuilder.join(\"\\n\");\r\n\r\n if (isEscaped) {\r\n return escapeHtml(html);\r\n }\r\n\r\n return html;\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n\r\n private processSelectors(selectorsToProcess: string[]): void {\r\n const maxAttempts = 5;\r\n let attemptCount = 0;\r\n\r\n function internalProcessSelectors(): void {\r\n if (!selectorsToProcess.length || attemptCount >= maxAttempts) {\r\n return;\r\n }\r\n\r\n nextTick(() => {\r\n attemptCount++;\r\n const failedSelectors: string[] = [];\r\n\r\n while (selectorsToProcess.length) {\r\n // Process the element at the front of the array.\r\n const selector = selectorsToProcess.shift();\r\n\r\n if (!selector) {\r\n // Skip to the next selector if this one is empty.\r\n continue;\r\n }\r\n\r\n const element = document.querySelector(selector);\r\n\r\n if (!element) {\r\n // Add the selector to the end array and skip to the next selector.\r\n failedSelectors.push(selector);\r\n }\r\n else {\r\n setCamouflagedClass(element);\r\n }\r\n }\r\n\r\n // Add the failed selectors back to the array.\r\n selectorsToProcess.push(...failedSelectors);\r\n\r\n if (selectorsToProcess.length) {\r\n internalProcessSelectors();\r\n }\r\n });\r\n }\r\n\r\n // Start processing selectors.\r\n internalProcessSelectors();\r\n }\r\n}\r\n","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\nimport { Guid } from \"@Obsidian/Types\";\r\nimport { ComparisonType } from \"@Obsidian/Enums/Reporting/comparisonType\";\r\nimport { numericComparisonTypes } from \"@Obsidian/Core/Reporting/comparisonType\";\r\n\r\nexport const enum ConfigurationValueKey {\r\n ConfigurationJSON = \"ConfigurationJSON\"\r\n}\r\n\r\nexport type ClientValue = {\r\n label: string,\r\n highValue: number | null,\r\n lowValue: number | null,\r\n color: string,\r\n rangeIndex: number,\r\n guid: Guid\r\n};\r\n\r\n\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./conditionalScaleFieldComponents\")).EditComponent;\r\n});\r\n\r\n// Load the configuration component as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./conditionalScaleFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\n/**\r\n * The field type handler for the Conditional Scale field.\r\n */\r\nexport class ConditionalScaleFieldType extends FieldTypeBase {\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n\r\n public override getSupportedComparisonTypes(): ComparisonType {\r\n return numericComparisonTypes;\r\n }\r\n}\r\n","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\n\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\n\r\nexport const enum ConfigurationValueKey {\r\n IncludeInactive = \"includeInactive\",\r\n ConnectionTypeFilter = \"connectionTypeFilter\",\r\n ClientValues = \"values\",\r\n}\r\n\r\nexport const enum ConfigurationPropertyKey {\r\n ConnectionTypeOptions = \"connectionTypeOptions\",\r\n}\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./connectionOpportunityFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./connectionOpportunityFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\nexport class ConnectionOpportunityFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, _configurationValues: Record): string {\r\n return value ?? \"\";\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n}\r\n","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\nimport { ListItemBag } from \"@Obsidian/ViewModels/Utility/listItemBag\";\r\n\r\nexport const enum ConfigurationValueKey {\r\n Values = \"values\"\r\n}\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./connectionTypeFieldComponents\")).EditComponent;\r\n});\r\n\r\n// Load the configuration component only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./connectionTypeFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\n/**\r\n * The field type handler for the MultiSelect field.\r\n */\r\nexport class ConnectionTypeField extends FieldTypeBase {\r\n public override getTextValue(value: string, configurationValues: Record): string {\r\n if (value === \"\") {\r\n return \"\";\r\n }\r\n\r\n try {\r\n const values = JSON.parse(configurationValues[ConfigurationValueKey.Values] ?? \"[]\") as ListItemBag[];\r\n const userValues = value.split(\",\").map(a=>a.toLowerCase());\r\n const selectedValues = values.filter(v => userValues.includes(v.value ?? \"\"));\r\n return selectedValues.map(v => v.text)\r\n .map(v => v?.split(\":\").pop()) // just get the name of the note type\r\n .join(\", \");\r\n }\r\n catch {\r\n return value;\r\n }\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n}","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\nimport { ListItemBag } from \"@Obsidian/ViewModels/Utility/listItemBag\";\r\n\r\nexport const enum ConfigurationValueKey {\r\n Values = \"values\",\r\n EnhancedForLongLists = \"enhancedselection\",\r\n RepeatColumns = \"repeatColumns\"\r\n}\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./connectionTypesFieldComponents\")).EditComponent;\r\n});\r\n\r\n// Load the configuration component only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./connectionTypesFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\n/**\r\n * The field type handler for the Connection Types field.\r\n */\r\nexport class ConnectionTypesField extends FieldTypeBase {\r\n public override getTextValue(value: string, configurationValues: Record): string {\r\n if (value === \"\") {\r\n return \"\";\r\n }\r\n\r\n try {\r\n const values = JSON.parse(configurationValues[ConfigurationValueKey.Values] ?? \"[]\") as ListItemBag[];\r\n const userValues = value.split(\",\");\r\n const selectedValues = values.filter(v => userValues.includes(v.value ?? \"\"));\r\n return selectedValues.map(v => v.text)\r\n .map(v => v?.split(\":\").pop()) // just get the name of the note type\r\n .join(\", \");\r\n }\r\n catch {\r\n return value;\r\n }\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n}","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\n\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\nimport { ListItemBag } from \"@Obsidian/ViewModels/Utility/listItemBag\";\r\n\r\nexport const enum ConfigurationValueKey {\r\n RepeatColumns = \"repeatColumns\",\r\n Options = \"options\"\r\n}\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./connectionStateFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./connectionStateFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\nexport class ConnectionStateFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, configurationValues: Record): string {\r\n if (value === undefined || value === null || value === \"\") {\r\n return \"\";\r\n }\r\n\r\n try {\r\n const values = JSON.parse(configurationValues[ConfigurationValueKey.Options] ?? \"[]\") as ListItemBag[];\r\n const publicValue = values.find(x => x.value === value);\r\n\r\n return publicValue?.text ?? value ?? \"\";\r\n }\r\n catch {\r\n return value;\r\n }\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n}","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\n\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\n\r\nexport const enum ConfigurationValueKey {\r\n IncludeInactive = \"includeInactive\",\r\n ConnectionTypeFilter = \"connectionTypeFilter\",\r\n ClientValues = \"values\",\r\n}\r\n\r\nexport const enum ConfigurationPropertyKey {\r\n ConnectionTypeOptions = \"connectionTypeOptions\",\r\n}\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./connectionStatusFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./connectionStatusFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\nexport class ConnectionStatusFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, _configurationValues: Record): string {\r\n return value ?? \"\";\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n}\r\n","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\n\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { ComparisonType } from \"@Obsidian/Enums/Reporting/comparisonType\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\nimport { ListItemBag } from \"@Obsidian/ViewModels/Utility/listItemBag\";\r\n\r\nexport const enum ConfigurationValueKey {\r\n ClientValues = \"values\"\r\n}\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./contentChannelFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./contentChannelFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\nexport class ContentChannelFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, configurationValues: Record): string {\r\n if (value === undefined || value === null || value === \"\") {\r\n return \"\";\r\n }\r\n\r\n try {\r\n const values = JSON.parse(configurationValues[ConfigurationValueKey.ClientValues] ?? \"[]\") as ListItemBag[];\r\n const selectedValue = values.find(o => o.value === value);\r\n\r\n return selectedValue?.text ?? value;\r\n }\r\n catch {\r\n return value;\r\n }\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n\r\n public override getSupportedComparisonTypes(): ComparisonType {\r\n return ComparisonType.IsBlank | ComparisonType.IsNotBlank;\r\n }\r\n}","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\n\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\n\r\nexport const enum ConfigurationValueKey {\r\n ContentChannel = \"contentchannel\"\r\n}\r\n\r\nexport const enum ConfigurationPropertyKey {\r\n ContentChannels = \"contentchannels\",\r\n}\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./contentChannelItemFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./contentChannelItemFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\nexport class ContentChannelItemFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, _configurationValues: Record): string {\r\n return value ?? \"\";\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n}","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\n\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { ComparisonType } from \"@Obsidian/Enums/Reporting/comparisonType\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\nimport { ListItemBag } from \"@Obsidian/ViewModels/Utility/listItemBag\";\r\n\r\nexport const enum ConfigurationValueKey {\r\n ClientValues = \"values\"\r\n}\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./contentChannelTypeFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./contentChannelTypeFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\nexport class ContentChannelTypeFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, configurationValues: Record): string {\r\n if (value === undefined || value === null || value === \"\") {\r\n return \"\";\r\n }\r\n\r\n try {\r\n const values = JSON.parse(configurationValues[ConfigurationValueKey.ClientValues] ?? \"[]\") as ListItemBag[];\r\n const selectedValue = values.find(o => o.value === value);\r\n return selectedValue?.text ?? value;\r\n }\r\n catch {\r\n return value;\r\n }\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n\r\n public override getSupportedComparisonTypes(): ComparisonType {\r\n return ComparisonType.IsBlank | ComparisonType.IsNotBlank;\r\n }\r\n}\r\n","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\n\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\nimport { ListItemBag } from \"@Obsidian/ViewModels/Utility/listItemBag\";\r\n\r\nexport const enum ConfigurationValueKey {\r\n ClientValues = \"values\",\r\n RepeatColumns = \"repeatColumns\",\r\n EnhancedSelection = \"enhancedselection\"\r\n}\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./contentChannelTypesFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./contentChannelTypesFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\nexport class ContentChannelTypesFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, configurationValues: Record): string {\r\n if (value === undefined || value === null || value === \"\") {\r\n return \"\";\r\n }\r\n\r\n try {\r\n const values = JSON.parse(configurationValues[ConfigurationValueKey.ClientValues] ?? \"[]\") as ListItemBag[];\r\n const userValues = value.split(\",\");\r\n const selectedValues = values.filter(o => userValues.includes(o.value ?? \"\"));\r\n\r\n return selectedValues.map(o => o.text).join(\", \");\r\n }\r\n catch {\r\n return value;\r\n }\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n}\r\n","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\n\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\nimport { ListItemBag } from \"@Obsidian/ViewModels/Utility/listItemBag\";\r\n\r\nexport const enum ConfigurationValueKey {\r\n ClientValues = \"values\",\r\n RepeatColumns = \"repeatColumns\",\r\n EnhancedSelection = \"enhancedselection\"\r\n}\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./contentChannelsFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./contentChannelsFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\nexport class ContentChannelsFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, configurationValues: Record): string {\r\n if (value === undefined || value === null || value === \"\") {\r\n return \"\";\r\n }\r\n\r\n try {\r\n const values = JSON.parse(configurationValues[ConfigurationValueKey.ClientValues] ?? \"[]\") as ListItemBag[];\r\n const userValues = value.split(\",\");\r\n const selectedValues = values.filter(o => userValues.includes(o.value ?? \"\"));\r\n\r\n return selectedValues.map(o => o.text).join(\", \");\r\n }\r\n catch {\r\n return value;\r\n }\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n}\r\n","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\n\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\n\r\nexport const enum ConfigurationValueKey {\r\n IncludeInactive = \"includeInactive\",\r\n ConnectionTypeFilter = \"connectionTypeFilter\",\r\n ClientValues = \"values\",\r\n}\r\n\r\nexport const enum ConfigurationPropertyKey {\r\n ConnectionTypeOptions = \"connectionTypeOptions\",\r\n}\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./connectionActivityTypeFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./connectionActivityTypeFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\nexport class ConnectionActivityTypeField extends FieldTypeBase {\r\n public override getTextValue(value: string, _configurationValues: Record): string {\r\n return value ?? \"\";\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n}\r\n","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\n\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./connectionRequestFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./connectionRequestFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\nexport class ConnectionRequestFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, _configurationValues: Record): string {\r\n return value ?? \"\";\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n}","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\n\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\n\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./connectionRequestActivityFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./connectionRequestActivityFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\nexport class ConnectionRequestActivityFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, _configurationValues: Record): string {\r\n return value ?? \"\";\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n}\r\n","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\nimport { ListItemBag } from \"@Obsidian/ViewModels/Utility/listItemBag\";\r\n\r\nexport const enum ConfigurationValueKey {\r\n RepeatColumns = \"repeatColumns\",\r\n Options = \"options\",\r\n}\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./communicationPreferenceFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./communicationPreferenceFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\n/**\r\n * The field type handler for the Address field.\r\n */\r\nexport class CommunicationPreferenceField extends FieldTypeBase {\r\n public override getTextValue(value: string, configurationValues: Record): string {\r\n const options = JSON.parse(configurationValues[ConfigurationValueKey.Options] ?? \"[]\") as ListItemBag[];\r\n const publicValue = options.find(x => x.value === value);\r\n return publicValue?.text ?? value ?? \"\";\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n\r\n public override isFilterable(): boolean {\r\n return false;\r\n }\r\n}","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\n\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\nimport { ListItemBag } from \"@Obsidian/ViewModels/Utility/listItemBag\";\r\n\r\nexport const enum ConfigurationValueKey {\r\n ClientValues = \"clientValues\",\r\n IncludeInactive = \"includeInactive\"\r\n}\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./communicationTemplateFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./communicationTemplateFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\nexport class CommunicationTemplateFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, configurationValues: Record): string {\r\n if (value === undefined || value === null || value === \"\") {\r\n return \"\";\r\n }\r\n\r\n try {\r\n const values = JSON.parse(configurationValues[ConfigurationValueKey.ClientValues] ?? \"[]\") as ListItemBag[];\r\n const selectedValue = values.find(o => o.value === value);\r\n\r\n return selectedValue?.text ?? value;\r\n }\r\n catch {\r\n return value;\r\n }\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n}","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\n\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\nimport { ListItemBag } from \"@Obsidian/ViewModels/Utility/listItemBag\";\r\n\r\nexport const enum ConfigurationValueKey {\r\n ClientValues = \"clientValues\"\r\n}\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./comparisonFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./comparisonFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\nexport class ComparisonFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, configurationValues: Record): string {\r\n if (value === undefined || value === null || value === \"\") {\r\n return \"\";\r\n }\r\n\r\n try {\r\n const values = JSON.parse(configurationValues[ConfigurationValueKey.ClientValues] ?? \"[]\") as ListItemBag[];\r\n const selectedValue = values.find(o => o.value === value);\r\n\r\n return selectedValue?.text ?? value;\r\n }\r\n catch {\r\n return value;\r\n }\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n}","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\n\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\n\r\nexport const enum ConfigurationValueKey {\r\n Container = \"container\"\r\n}\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./componentsFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./componentsFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\nexport class ComponentsFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, _configurationValues: Record): string {\r\n return value ?? \"\";\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n}","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\n\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\n\r\nexport const enum ConfigurationValueKey {\r\n Container = \"container\"\r\n}\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./componentFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./componentFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\nexport class ComponentFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, _configurationValues: Record): string {\r\n return value ?? \"\";\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n}","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { ComparisonType } from \"@Obsidian/Enums/Reporting/comparisonType\";\r\nimport { numericComparisonTypes } from \"@Obsidian/Core/Reporting/comparisonType\";\r\nimport { toCurrencyOrNull } from \"@Obsidian/Utility/numberUtils\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\n\r\n// The components can be quite large, so load only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./currencyFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./currencyFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\n/**\r\n * The field type handler for the Currency field.\r\n */\r\nexport class CurrencyFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, _configurationValues: Record): string {\r\n return toCurrencyOrNull(value) ?? \"\";\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n\r\n override getSupportedComparisonTypes(): ComparisonType {\r\n return numericComparisonTypes;\r\n }\r\n}\r\n","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\nimport { ListItemBag } from \"@Obsidian/ViewModels/Utility/listItemBag\";\r\n\r\nexport const enum ConfigurationValueKey {\r\n RepeatColumns = \"repeatColumns\",\r\n Options = \"options\",\r\n}\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./dataEntryRequirementLevelFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./dataEntryRequirementLevelFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\n/**\r\n * The field type handler for the DataEntryRequirementLevel field.\r\n */\r\nexport class DataEntryRequirementLevelFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, configurationValues: Record): string {\r\n const options = JSON.parse(configurationValues[ConfigurationValueKey.Options] ?? \"[]\") as ListItemBag[];\r\n const publicValue = options.find(x => x.value === value);\r\n return publicValue?.text ?? value ?? \"\";\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n\r\n public override isFilterable(): boolean {\r\n return false;\r\n }\r\n}","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\n\r\n// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\n\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\n\r\nexport const enum ConfigurationValueKey {\r\n EntityTypeName = \"entityTypeName\"\r\n}\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./dataViewFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./dataViewFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\n/**\r\n * The field type handler for the Data View field.\r\n */\r\nexport class DataViewFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, _configurationValues: Record): string {\r\n return value ?? \"\";\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n\r\n public override isFilterable(): boolean {\r\n return false;\r\n }\r\n}","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\n\r\n// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\n\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\n\r\nexport const enum ConfigurationValueKey {\r\n EntityTypeName = \"entityTypeName\"\r\n}\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./dataViewsFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./dataViewsFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\n/**\r\n * The field type handler for the Financial Account field.\r\n */\r\nexport class DataViewsFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, _configurationValues: Record): string {\r\n return value ?? \"\";\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n\r\n public override isFilterable(): boolean {\r\n return false;\r\n }\r\n}","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { ComparisonType } from \"@Obsidian/Enums/Reporting/comparisonType\";\r\nimport { dateComparisonTypes } from \"@Obsidian/Core/Reporting/comparisonType\";\r\nimport { ComparisonValue } from \"@Obsidian/Types/Reporting/comparisonValue\";\r\nimport { asBoolean } from \"@Obsidian/Utility/booleanUtils\";\r\nimport { toNumber } from \"@Obsidian/Utility/numberUtils\";\r\nimport { calculateSlidingDateRange, getRangeTypeText, getTimeUnitText, parseSlidingDateRangeString, RangeType, TimeUnit } from \"@Obsidian/Utility/slidingDateRange\";\r\nimport { RockDateTime } from \"@Obsidian/Utility/rockDateTime\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\nimport { getStandardFilterComponent } from \"./utils\";\r\n\r\nexport const enum ConfigurationValueKey {\r\n Format = \"format\",\r\n DisplayDiff = \"displayDiff\",\r\n DisplayCurrentOption = \"displayCurrentOption\",\r\n DatePickerControlType = \"datePickerControlType\",\r\n FutureYearCount = \"futureYearCount\"\r\n}\r\n\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./dateFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./dateFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\n// Load the filter component as needed.\r\nconst filterComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./dateFieldComponents\")).FilterComponent;\r\n});\r\n\r\n/**\r\n * The field type handler for the Date field.\r\n */\r\nexport class DateFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, configurationValues: Record): string {\r\n if (this.isCurrentDateValue(value)) {\r\n return this.getCurrentDateText(value);\r\n }\r\n else if (value) {\r\n const dateValue = RockDateTime.parseISO(value);\r\n const dateFormatTemplate = configurationValues[ConfigurationValueKey.Format] || \"MM/dd/yyy\";\r\n\r\n if (dateValue !== null) {\r\n let textValue = dateValue.toASPString(dateFormatTemplate);\r\n\r\n const displayDiff = asBoolean(configurationValues[ConfigurationValueKey.DisplayDiff]);\r\n\r\n if (displayDiff === true) {\r\n textValue = `${textValue} ${dateValue.toElapsedString()}`;\r\n }\r\n\r\n return textValue;\r\n }\r\n else {\r\n return \"\";\r\n }\r\n }\r\n else {\r\n return \"\";\r\n }\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n\r\n public override getSupportedComparisonTypes(): ComparisonType {\r\n return dateComparisonTypes;\r\n }\r\n\r\n public override getFilterComponent(): Component {\r\n return getStandardFilterComponent(this.getSupportedComparisonTypes(), filterComponent, {\r\n updateComparisonTypeNames: (options) => {\r\n options.filter(o => o.value === ComparisonType.Between.toString())\r\n .forEach(o => o.text = \"Range\");\r\n }\r\n });\r\n }\r\n\r\n public override getFilterValueDescription(value: ComparisonValue, configurationValues: Record): string {\r\n if (value.comparisonType === ComparisonType.Between) {\r\n return `During '${this.getFilterValueText(value, configurationValues)}'`;\r\n }\r\n\r\n return super.getFilterValueDescription(value, configurationValues);\r\n }\r\n\r\n public override getFilterValueText(value: ComparisonValue, _configurationValues: Record): string {\r\n const filterValues = value.value.split(\"\\t\");\r\n\r\n // If the comparison type is Between, then we need to use the second\r\n // value that was specified.\r\n if (value.comparisonType === ComparisonType.Between && filterValues.length > 1) {\r\n const range = parseSlidingDateRangeString(filterValues[1]);\r\n\r\n // If we couldn't parse the range information then just return\r\n // the raw value, which should be an empty string, but would give\r\n // some indication that something is wrong if it isn't.\r\n if (range === null) {\r\n return filterValues[1];\r\n }\r\n\r\n // Get the calculated values from the SlidingDateRange.\r\n const rangeTypeText = getRangeTypeText(range.rangeType);\r\n const timeUnitValue = range.timeValue ?? 1;\r\n const timeUnitText = getTimeUnitText(range.timeUnit ?? TimeUnit.Hour) + (timeUnitValue !== 1 ? \"s\" : \"\");\r\n\r\n // Format the text depending on the range type.\r\n if (range.rangeType === RangeType.Current) {\r\n return `${rangeTypeText} ${timeUnitText}`;\r\n }\r\n else if (([RangeType.Last, RangeType.Previous, RangeType.Next, RangeType.Upcoming] as number[]).includes(range.rangeType)) {\r\n return `${rangeTypeText} ${timeUnitValue} ${timeUnitText}`;\r\n }\r\n else {\r\n if (range.lowerDate && range.upperDate) {\r\n return `${range.lowerDate} to ${range.upperDate}`;\r\n }\r\n else if (range.lowerDate) {\r\n return `from ${range.lowerDate}`;\r\n }\r\n else if (range.upperDate) {\r\n return `through ${range.upperDate}`;\r\n }\r\n else {\r\n return \"\";\r\n }\r\n }\r\n }\r\n else {\r\n // If it's not a between, check if it's a \"Current Date\" value.\r\n if (this.isCurrentDateValue(filterValues[0])) {\r\n return `'${this.getCurrentDateText(filterValues[0])}'`;\r\n }\r\n\r\n // Nope, just use the date value specified.\r\n return filterValues[0] ? `'${filterValues[0]}'` : \"\";\r\n }\r\n }\r\n\r\n public override doesValueMatchFilter(value: string, filterValue: ComparisonValue, configurationValues: Record): boolean {\r\n if (!filterValue.comparisonType) {\r\n return false;\r\n }\r\n\r\n const filterValueValues = filterValue.value.split(\"\\t\");\r\n\r\n // Try to parse the value as a date. If it can't be parsed then check\r\n // it against the Is Blank and Is Not Blank comparison types.\r\n const valueDate = RockDateTime.parseISO(value ?? \"\");\r\n\r\n if (filterValue.comparisonType === ComparisonType.IsBlank) {\r\n return valueDate === null;\r\n }\r\n else if (filterValue.comparisonType === ComparisonType.IsNotBlank) {\r\n return valueDate !== null;\r\n }\r\n else if (valueDate === null) {\r\n return false;\r\n }\r\n\r\n if (filterValue.comparisonType === ComparisonType.Between && filterValueValues.length > 1) {\r\n const slidingRange = parseSlidingDateRangeString(filterValueValues[1]);\r\n\r\n if (!slidingRange) {\r\n return false;\r\n }\r\n\r\n const dateRange = calculateSlidingDateRange(slidingRange);\r\n\r\n // check if the date range was not valid or the value is before the\r\n // start date and time.\r\n if (!dateRange.start || valueDate.toMilliseconds() < dateRange.start.toMilliseconds()) {\r\n return false;\r\n }\r\n\r\n if (dateRange.end && valueDate.toMilliseconds() >= dateRange.end.toMilliseconds()) {\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n // Try to parse the filter date. If it can't be parsed then no match.\r\n const filterDate = this.getRelativeOrAbsoluteDate(filterValueValues[0]);\r\n\r\n if (filterDate === null) {\r\n return false;\r\n }\r\n\r\n // Convert the two dates into a format that we can do numeric comparison on.\r\n const newFilterValue: ComparisonValue = {\r\n comparisonType: filterValue.comparisonType,\r\n value: filterDate.toASPString(\"yyyyMMdd\")\r\n };\r\n\r\n return super.doesValueMatchFilter(valueDate.toASPString(\"yyyyMMdd\"), newFilterValue, configurationValues);\r\n }\r\n\r\n /**\r\n * Determines if the value is a \"current date\" value, which would then\r\n * specify the number of days +/- to adjust.\r\n *\r\n * @param value The value to be checked.\r\n *\r\n * @returns true if the value represents a \"current date\" value; otherwise false.\r\n */\r\n private isCurrentDateValue(value: string): boolean {\r\n return value.indexOf(\"CURRENT\") === 0;\r\n }\r\n\r\n /**\r\n * Get the text that describes the \"current date\" value specified.\r\n *\r\n * @param value The value that contains the \"current date\" value.\r\n *\r\n * @returns A human friendly description of the \"current date\" value.\r\n */\r\n private getCurrentDateText(value: string): string {\r\n const parts = (value ?? \"\").split(\":\");\r\n const diff = parts.length === 2 ? toNumber(parts[1]) : 0;\r\n\r\n if (diff === 1) {\r\n return \"Current Date plus 1 day\";\r\n }\r\n else if (diff > 0) {\r\n return `Current Date plus ${diff} days`;\r\n }\r\n else if (diff === -1) {\r\n return \"Current Date minus 1 day\";\r\n }\r\n else if (diff < 0) {\r\n return `Current Date minus ${Math.abs(diff)} days`;\r\n }\r\n else {\r\n return \"Current Date\";\r\n }\r\n }\r\n\r\n /**\r\n * Gets the relatative date if available otherwise the absolute date.\r\n *\r\n * @param value The string value to be parsed as relative or absolute.\r\n *\r\n * @returns A new RockDateTime instance that represents the value or null if it couldn't be determined.\r\n */\r\n private getRelativeOrAbsoluteDate(value: string): RockDateTime | null {\r\n if (!this.isCurrentDateValue(value)) {\r\n return RockDateTime.parseISO(value);\r\n }\r\n\r\n const today = RockDateTime.now().date;\r\n const valueParts = value.split(\":\");\r\n\r\n if (valueParts.length > 1) {\r\n return today.addDays(toNumber(valueParts[1]));\r\n }\r\n\r\n return today;\r\n }\r\n}\r\n","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { toNumber } from \"@Obsidian/Utility/numberUtils\";\r\nimport { DateTimeFormat, RockDateTime } from \"@Obsidian/Utility/rockDateTime\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\n\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./dateRangeFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./dateRangeFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\n/**\r\n * The field type handler for the Date Range field.\r\n */\r\nexport class DateRangeFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, _configurationValues: Record): string {\r\n const dateParts = (value ?? \"\").split(\",\");\r\n\r\n if (dateParts.length !== 2) {\r\n return \"\";\r\n }\r\n\r\n const lowerDateParts = /^(\\d+)-(\\d+)-(\\d+)/.exec(dateParts[0]);\r\n const upperDateParts = /^(\\d+)-(\\d+)-(\\d+)/.exec(dateParts[1]);\r\n\r\n const lowerDate = lowerDateParts !== null ? RockDateTime.fromParts(toNumber(lowerDateParts[1]), toNumber(lowerDateParts[2]), toNumber(lowerDateParts[3])) : null;\r\n const upperDate = upperDateParts !== null ? RockDateTime.fromParts(toNumber(upperDateParts[1]), toNumber(upperDateParts[2]), toNumber(upperDateParts[3])) : null;\r\n\r\n if (lowerDate !== null && upperDate !== null) {\r\n return `${lowerDate.toLocaleString(DateTimeFormat.DateShort)} to ${upperDate.toLocaleString(DateTimeFormat.DateShort)}`;\r\n }\r\n else if (lowerDate !== null) {\r\n return `from ${lowerDate.toLocaleString(DateTimeFormat.DateShort)}`;\r\n }\r\n else if (upperDate !== null) {\r\n return `through ${upperDate.toLocaleString(DateTimeFormat.DateShort)}`;\r\n }\r\n else {\r\n return \"\";\r\n }\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n\r\n public override isFilterable(): boolean {\r\n return false;\r\n }\r\n}\r\n","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { ComparisonType } from \"@Obsidian/Enums/Reporting/comparisonType\";\r\nimport { dateComparisonTypes } from \"@Obsidian/Core/Reporting/comparisonType\";\r\nimport { ComparisonValue } from \"@Obsidian/Types/Reporting/comparisonValue\";\r\nimport { asBoolean } from \"@Obsidian/Utility/booleanUtils\";\r\nimport { toNumber } from \"@Obsidian/Utility/numberUtils\";\r\nimport { getRangeTypeText, getTimeUnitText, parseSlidingDateRangeString, RangeType, TimeUnit } from \"@Obsidian/Utility/slidingDateRange\";\r\nimport { RockDateTime } from \"@Obsidian/Utility/rockDateTime\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\nimport { getStandardFilterComponent } from \"./utils\";\r\n\r\nexport const enum ConfigurationValueKey {\r\n Format = \"format\",\r\n DisplayAsElapsedTime = \"displayDiff\",\r\n DisplayCurrentOption = \"displayCurrentOption\"\r\n}\r\n\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./dateTimeFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./dateTimeFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\n// Load the filter component as needed.\r\nconst filterComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./dateTimeFieldComponents\")).FilterComponent;\r\n});\r\n\r\n\r\n/**\r\n * The field type handler for the Date Time field.\r\n */\r\nexport class DateTimeFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, configurationValues: Record): string {\r\n if (this.isCurrentDateValue(value)) {\r\n return this.getCurrentDateText(value);\r\n }\r\n else if (value) {\r\n const dateValue = RockDateTime.parseISO(value);\r\n const dateFormatTemplate = configurationValues[ConfigurationValueKey.Format] || \"MM/dd/yyy\";\r\n\r\n if (dateValue !== null) {\r\n let textValue = dateValue.toASPString(dateFormatTemplate);\r\n\r\n const displayDiff = asBoolean(configurationValues[ConfigurationValueKey.DisplayAsElapsedTime]);\r\n\r\n if (displayDiff === true) {\r\n textValue = `${textValue} ${dateValue.toElapsedString()}`;\r\n }\r\n\r\n return textValue;\r\n }\r\n else {\r\n return \"\";\r\n }\r\n }\r\n else {\r\n return \"\";\r\n }\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n\r\n public override getSupportedComparisonTypes(): ComparisonType {\r\n return dateComparisonTypes;\r\n }\r\n\r\n public override getFilterComponent(): Component {\r\n return getStandardFilterComponent(this.getSupportedComparisonTypes(), filterComponent, {\r\n updateComparisonTypeNames: (options) => {\r\n options.filter(o => o.value === ComparisonType.Between.toString())\r\n .forEach(o => o.text = \"Range\");\r\n }\r\n });\r\n }\r\n\r\n public override getFilterValueDescription(value: ComparisonValue, configurationValues: Record): string {\r\n if (value.comparisonType === ComparisonType.Between) {\r\n return `During '${this.getFilterValueText(value, configurationValues)}'`;\r\n }\r\n\r\n return super.getFilterValueDescription(value, configurationValues);\r\n }\r\n\r\n public override getFilterValueText(value: ComparisonValue, _configurationValues: Record): string {\r\n const filterValues = value.value.split(\"\\t\");\r\n\r\n // If the comparison type is Between, then we need to use the second\r\n // value that was specified.\r\n if (value.comparisonType === ComparisonType.Between && filterValues.length > 1) {\r\n const range = parseSlidingDateRangeString(filterValues[1]);\r\n\r\n // If we couldn't parse the range information then just return\r\n // the raw value, which should be an empty string, but would give\r\n // some indication that something is wrong if it isn't.\r\n if (range === null) {\r\n return filterValues[1];\r\n }\r\n\r\n // Get the calculated values from the SlidingDateRange.\r\n const rangeTypeText = getRangeTypeText(range.rangeType);\r\n const timeUnitValue = range.timeValue ?? 1;\r\n const timeUnitText = getTimeUnitText(range.timeUnit ?? TimeUnit.Hour) + (timeUnitValue !== 1 ? \"s\" : \"\");\r\n\r\n // Format the text depending on the range type.\r\n if (range.rangeType === RangeType.Current) {\r\n return `${rangeTypeText} ${timeUnitText}`;\r\n }\r\n else if (([RangeType.Last, RangeType.Previous, RangeType.Next, RangeType.Upcoming] as number[]).includes(range.rangeType)) {\r\n return `${rangeTypeText} ${timeUnitValue} ${timeUnitText}`;\r\n }\r\n else {\r\n if (range.lowerDate && range.upperDate) {\r\n return `${range.lowerDate} to ${range.upperDate}`;\r\n }\r\n else if (range.lowerDate) {\r\n return `from ${range.lowerDate}`;\r\n }\r\n else if (range.upperDate) {\r\n return `through ${range.upperDate}`;\r\n }\r\n else {\r\n return \"\";\r\n }\r\n }\r\n }\r\n else {\r\n // If it's not a between, check if it's a \"Current Date\" value.\r\n if (this.isCurrentDateValue(filterValues[0])) {\r\n return `'${this.getCurrentDateText(filterValues[0])}'`;\r\n }\r\n\r\n // Nope, just use the date value specified.\r\n return filterValues[0] ? `'${filterValues[0]}'` : \"\";\r\n }\r\n }\r\n\r\n /**\r\n * Determines if the value is a \"current date\" value, which would then\r\n * specify the number of minutes +/- to adjust.\r\n *\r\n * @param value The value to be checked.\r\n *\r\n * @returns true if the value represents a \"current date\" value; otherwise false.\r\n */\r\n private isCurrentDateValue(value: string): boolean {\r\n return value.indexOf(\"CURRENT\") === 0;\r\n }\r\n\r\n /**\r\n * Get the text that describes the \"current date\" value specified.\r\n *\r\n * @param value The value that contains the \"current date\" value.\r\n *\r\n * @returns A human friendly description of the \"current date\" value.\r\n */\r\n private getCurrentDateText(value: string): string {\r\n const parts = value.split(\":\");\r\n const diff = parts.length === 2 ? toNumber(parts[1]) : 0;\r\n\r\n if (diff === 1) {\r\n return \"Current Time plus 1 minute\";\r\n }\r\n else if (diff > 0) {\r\n return `Current Time plus ${diff} minutes`;\r\n }\r\n else if (diff === -1) {\r\n return \"Current Time minus 1 minute\";\r\n }\r\n else if (diff < 0) {\r\n return `Current Time minus ${Math.abs(diff)} minutes`;\r\n }\r\n else {\r\n return \"Current Time\";\r\n }\r\n }\r\n}\r\n","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { toNumberOrNull } from \"@Obsidian/Utility/numberUtils\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\nimport { getStandardFilterComponent } from \"./utils\";\r\nimport { DayOfWeek } from \"@Obsidian/Enums/Controls/dayOfWeek\";\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./dayOfWeekFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The filter component can be quite large, so load it only as needed.\r\nconst filterComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./dayOfWeekFieldComponents\")).FilterComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./dayOfWeekFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\n/**\r\n * The field type handler for the DayOfWeek field.\r\n */\r\nexport class DayOfWeekFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, _configurationValues: Record): string {\r\n const dayValue = toNumberOrNull(value);\r\n\r\n if (dayValue === null) {\r\n return \"\";\r\n }\r\n else {\r\n switch (dayValue) {\r\n case DayOfWeek.Sunday:\r\n return \"Sunday\";\r\n\r\n case DayOfWeek.Monday:\r\n return \"Monday\";\r\n\r\n case DayOfWeek.Tuesday:\r\n return \"Tuesday\";\r\n\r\n case DayOfWeek.Wednesday:\r\n return \"Wednesday\";\r\n\r\n case DayOfWeek.Thursday:\r\n return \"Thursday\";\r\n\r\n case DayOfWeek.Friday:\r\n return \"Friday\";\r\n\r\n case DayOfWeek.Saturday:\r\n return \"Saturday\";\r\n\r\n default:\r\n return \"\";\r\n }\r\n }\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n\r\n public override getFilterComponent(): Component {\r\n return getStandardFilterComponent(\"Is\", filterComponent);\r\n }\r\n}\r\n","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { ComparisonType } from \"@Obsidian/Enums/Reporting/comparisonType\";\r\nimport { containsComparisonTypes } from \"@Obsidian/Core/Reporting/comparisonType\";\r\nimport { toNumberOrNull } from \"@Obsidian/Utility/numberUtils\";\r\nimport { DayOfWeek } from \"@Obsidian/Enums/Controls/dayOfWeek\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\n\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./daysOfWeekFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./daysOfWeekFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\n/**\r\n * The field type handler for the DaysOfWeek field.\r\n */\r\nexport class DaysOfWeekFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, _configurationValues: Record): string {\r\n if (value === null || value === undefined || value === \"\") {\r\n return \"\";\r\n }\r\n\r\n return value.split(\",\")\r\n .map(v => {\r\n const dayValue = toNumberOrNull(v);\r\n\r\n if (dayValue === null) {\r\n return \"\";\r\n }\r\n else {\r\n switch (dayValue) {\r\n case DayOfWeek.Sunday:\r\n return \"Sunday\";\r\n\r\n case DayOfWeek.Monday:\r\n return \"Monday\";\r\n\r\n case DayOfWeek.Tuesday:\r\n return \"Tuesday\";\r\n\r\n case DayOfWeek.Wednesday:\r\n return \"Wednesday\";\r\n\r\n case DayOfWeek.Thursday:\r\n return \"Thursday\";\r\n\r\n case DayOfWeek.Friday:\r\n return \"Friday\";\r\n\r\n case DayOfWeek.Saturday:\r\n return \"Saturday\";\r\n\r\n default:\r\n return \"\";\r\n }\r\n }\r\n })\r\n .filter(v => v != \"\")\r\n .join(\", \");\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n\r\n public override getSupportedComparisonTypes(): ComparisonType {\r\n return containsComparisonTypes;\r\n }\r\n}\r\n","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { ComparisonType } from \"@Obsidian/Enums/Reporting/comparisonType\";\r\nimport { numericComparisonTypes } from \"@Obsidian/Core/Reporting/comparisonType\";\r\nimport { toNumberOrNull } from \"@Obsidian/Utility/numberUtils\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\n\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./decimalFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./decimalFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\n/**\r\n * The field type handler for the Decimal field.\r\n */\r\nexport class DecimalFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, _configurationValues: Record): string {\r\n return toNumberOrNull(value)?.toString() ?? \"\";\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n\r\n public override getSupportedComparisonTypes(): ComparisonType {\r\n return numericComparisonTypes;\r\n }\r\n}\r\n","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { toNumberOrNull } from \"@Obsidian/Utility/numberUtils\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\n\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./decimalRangeFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./decimalRangeFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\n/**\r\n * The field type handler for the Decimal Range field.\r\n */\r\nexport class DecimalRangeFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, _configurationValues: Record): string {\r\n if (value === null || value === undefined || value === \"\" || value === \",\") {\r\n return \"\";\r\n }\r\n\r\n const numbers = value.split(\",\").map(v => toNumberOrNull(v));\r\n\r\n // If there are not two components then it's not valid, or if both\r\n // components are not numbers then it's not valid.\r\n if (numbers.length !== 2 || (numbers[0] === null && numbers[1] === null)) {\r\n return \"\";\r\n }\r\n\r\n if (numbers[0] === null) {\r\n return `through ${numbers[1]}`;\r\n }\r\n else if (numbers[1] === null) {\r\n return `from ${numbers[0]}`;\r\n }\r\n else {\r\n return `${numbers[0]} to ${numbers[1]}`;\r\n }\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n\r\n public override isFilterable(): boolean {\r\n return false;\r\n }\r\n}\r\n","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\n\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\nimport { ListItemBag } from \"@Obsidian/ViewModels/Utility/listItemBag\";\r\n\r\nexport const enum ConfigurationValueKey {\r\n ClientValues = \"values\"\r\n}\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./definedTypeFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./definedTypeFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\nexport class DefinedTypeFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, configurationValues: Record): string {\r\n if (value === undefined || value === null || value === \"\") {\r\n return \"\";\r\n }\r\n\r\n try {\r\n const values = JSON.parse(configurationValues[ConfigurationValueKey.ClientValues] ?? \"[]\") as ListItemBag[];\r\n const selectedValue = values.find(o => o.value === value);\r\n\r\n return selectedValue?.text ?? value;\r\n }\r\n catch {\r\n return value;\r\n }\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n}\r\n","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { ComparisonType } from \"@Obsidian/Enums/Reporting/comparisonType\";\r\nimport { containsComparisonTypes } from \"@Obsidian/Core/Reporting/comparisonType\";\r\nimport { ComparisonValue } from \"@Obsidian/Types/Reporting/comparisonValue\";\r\nimport { asBoolean } from \"@Obsidian/Utility/booleanUtils\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\nimport { getStandardFilterComponent } from \"./utils\";\r\n\r\n/**\r\n * The key names for the configuration properties available when editing the\r\n * configuration of a DefinedValue field type.\r\n */\r\nexport const enum ConfigurationPropertyKey {\r\n /** The defined types available to be picked. */\r\n DefinedTypes = \"definedTypes\",\r\n\r\n /** The defined values available to be picked. */\r\n DefinedValues = \"definedValues\"\r\n}\r\n\r\n/**\r\n * The configuration value keys used by the configuraiton and edit controls.\r\n */\r\nexport const enum ConfigurationValueKey {\r\n /** The unique identifier of the defined type currently selected. */\r\n DefinedType = \"definedtype\",\r\n\r\n /**\r\n * The unique identifiers of the defined values that can be selected\r\n * during editing.\r\n */\r\n Values = \"values\",\r\n\r\n /**\r\n * Contains \"True\" if the edit control should be rendered to allow\r\n * selecting multiple values.\r\n */\r\n AllowMultiple = \"allowmultiple\",\r\n\r\n /**\r\n * Contains \"True\" if the edit control should display descriptions instead\r\n * of values.\r\n */\r\n DisplayDescription = \"displaydescription\",\r\n\r\n /**\r\n * Contains \"True\" if the edit control should use enhanced selection.\r\n */\r\n EnhancedSelection = \"enhancedselection\",\r\n\r\n /** Contains \"True\" if in-active values should be included. */\r\n IncludeInactive = \"includeInactive\",\r\n\r\n /** A comma separated list of selectable value identifiers. */\r\n SelectableValues = \"selectableValues\",\r\n\r\n /** Contains \"True\" if adding new values is permitted. */\r\n AllowAddingNewValues = \"AllowAddingNewValues\",\r\n\r\n /** The number of columns to use when multiple selection is allowed. */\r\n RepeatColumns = \"RepeatColumns\"\r\n}\r\n\r\nexport type ValueItem = {\r\n value: string,\r\n text: string,\r\n description: string\r\n};\r\n\r\nexport type ClientValue = {\r\n value: string,\r\n text: string,\r\n description: string\r\n};\r\n\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./definedValueFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./definedValueFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\n// Load the filter component only as needed.\r\nconst filterComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./definedValueFieldComponents\")).FilterComponent;\r\n});\r\n\r\n/**\r\n * The field type handler for the Defined Value field.\r\n */\r\nexport class DefinedValueFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, configurationValues: Record): string {\r\n try {\r\n const clientValue = JSON.parse(value ?? \"\") as ClientValue;\r\n\r\n try {\r\n const values = JSON.parse(configurationValues[ConfigurationValueKey.Values] ?? \"[]\") as ValueItem[];\r\n const displayDescription = asBoolean(configurationValues[ConfigurationValueKey.DisplayDescription]);\r\n const rawValues = clientValue.value.split(\",\");\r\n\r\n return values.filter(v => rawValues.includes(v.value))\r\n .map(v => displayDescription && v.description ? v.description : v.text)\r\n .join(\", \");\r\n }\r\n catch {\r\n return clientValue.value ?? \"\";\r\n }\r\n }\r\n catch {\r\n return \"\";\r\n }\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n\r\n public override getSupportedComparisonTypes(): ComparisonType {\r\n return containsComparisonTypes;\r\n }\r\n\r\n public override getFilterValueText(value: ComparisonValue, configurationValues: Record): string {\r\n try {\r\n const clientValue = JSON.parse(value.value ?? \"\") as ClientValue;\r\n\r\n const values = JSON.parse(configurationValues?.[ConfigurationValueKey.Values] ?? \"[]\") as ValueItem[];\r\n const useDescription = asBoolean(configurationValues?.[ConfigurationValueKey.DisplayDescription]);\r\n const rawValues = clientValue.value.split(\",\");\r\n\r\n const text = values.filter(v => rawValues.includes(v.value))\r\n .map(v => useDescription ? v.description : v.text)\r\n .join(\"' OR '\");\r\n\r\n return text ? `'${text}'` : \"\";\r\n }\r\n catch {\r\n return \"\";\r\n }\r\n }\r\n\r\n public override getFilterComponent(configurationValues: Record): Component {\r\n if (asBoolean(configurationValues[ConfigurationValueKey.AllowMultiple])) {\r\n return getStandardFilterComponent(this.getSupportedComparisonTypes(), filterComponent);\r\n }\r\n else {\r\n return getStandardFilterComponent(\"Is\", filterComponent);\r\n }\r\n }\r\n\r\n public override doesValueMatchFilter(value: string, filterValue: ComparisonValue, _configurationValues: Record): boolean {\r\n const clientValue = JSON.parse(value || \"{}\") as ClientValue;\r\n let comparisonType = filterValue.comparisonType;\r\n\r\n if (comparisonType === ComparisonType.EqualTo) {\r\n // Treat EqualTo as if it were Contains.\r\n comparisonType = ComparisonType.Contains;\r\n }\r\n else if (comparisonType === ComparisonType.NotEqualTo) {\r\n // Treat NotEqualTo as if it were DoesNotContain.\r\n comparisonType = ComparisonType.DoesNotContain;\r\n }\r\n\r\n if (comparisonType === ComparisonType.IsBlank) {\r\n return (clientValue.value ?? \"\") === \"\";\r\n }\r\n else if (comparisonType === ComparisonType.IsNotBlank) {\r\n return (clientValue.value ?? \"\") !== \"\";\r\n }\r\n\r\n const filterValueGuids = (JSON.parse(filterValue?.value || \"{}\") as ClientValue).value;\r\n const selectedValues = (filterValueGuids ?? \"\").split(\",\").filter(v => v !== \"\").map(v => v.toLowerCase());\r\n\r\n if (selectedValues.length > 0) {\r\n const userValues = (clientValue.value ?? \"\").toLowerCase().split(\",\").filter(v => v !== \"\");\r\n\r\n if (comparisonType === ComparisonType.Contains) {\r\n let matchedCount = 0;\r\n\r\n for (const userValue of userValues) {\r\n if (selectedValues.includes(userValue)) {\r\n matchedCount += 1;\r\n }\r\n }\r\n\r\n return matchedCount > 0;\r\n }\r\n else {\r\n let matchedCount = 0;\r\n\r\n for (const userValue of userValues) {\r\n if (selectedValues.includes(userValue)) {\r\n matchedCount += 1;\r\n }\r\n }\r\n\r\n return matchedCount !== selectedValues.length;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n}\r\n","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { asBoolean } from \"@Obsidian/Utility/booleanUtils\";\r\nimport { List } from \"@Obsidian/Utility/linq\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\n\r\n/**\r\n * The key names for the configuration properties available when editing the\r\n * configuration of a DefinedValue field type.\r\n */\r\nexport const enum ConfigurationPropertyKey {\r\n /** The defined types available to be picked. */\r\n DefinedTypes = \"definedTypes\"\r\n}\r\n\r\nexport const enum ConfigurationValueKey {\r\n Values = \"values\",\r\n DisplayDescription = \"displaydescription\",\r\n DefinedType = \"definedtype\",\r\n DefinedTypes = \"definedTypes\"\r\n}\r\n\r\nexport type ValueItem = {\r\n value: string,\r\n text: string,\r\n description: string\r\n};\r\n\r\nexport type ClientValue = {\r\n value?: string;\r\n text?: string;\r\n description?: string;\r\n};\r\n\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./definedValueRangeFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./definedValueRangeFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\n/**\r\n * The field type handler for the Defined Value Range field.\r\n */\r\nexport class DefinedValueRangeFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, configurationValues: Record): string {\r\n try {\r\n const clientValue = JSON.parse(value) as ClientValue;\r\n\r\n try {\r\n const values = new List(JSON.parse(configurationValues[ConfigurationValueKey.Values] ?? \"[]\") as ValueItem[]);\r\n const displayDescription = asBoolean(configurationValues[ConfigurationValueKey.DisplayDescription]);\r\n const rawValues = (clientValue.value ?? \"\").split(\",\");\r\n\r\n if (rawValues.length !== 2) {\r\n return value;\r\n }\r\n\r\n const lowerValue = values.firstOrUndefined(v => v?.value === rawValues[0]);\r\n const upperValue = values.firstOrUndefined(v => v?.value === rawValues[1]);\r\n\r\n if (lowerValue === undefined && upperValue === undefined) {\r\n return \"\";\r\n }\r\n\r\n if (displayDescription) {\r\n return `${lowerValue?.description ?? \"\"} to ${upperValue?.description ?? \"\"}`;\r\n }\r\n else {\r\n return `${lowerValue?.text ?? \"\"} to ${upperValue?.text ?? \"\"}`;\r\n }\r\n }\r\n catch {\r\n return clientValue.value ?? \"\";\r\n }\r\n }\r\n catch {\r\n return value;\r\n }\r\n }\r\n\r\n public override getCondensedTextValue(value: string, _configurationValues: Record): string {\r\n try {\r\n const clientValue = JSON.parse(value ?? \"\") as ClientValue;\r\n\r\n return clientValue.text ?? \"\";\r\n }\r\n catch {\r\n return value;\r\n }\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n\r\n public override isFilterable(): boolean {\r\n return false;\r\n }\r\n}\r\n","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\n\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\nimport { ListItemBag } from \"@Obsidian/ViewModels/Utility/listItemBag\";\r\n\r\nexport const enum ConfigurationValueKey {\r\n Values = \"values\",\r\n AllowMultiple = \"allowmultiple\"\r\n}\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./documentTypeFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./documentTypeFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\nexport class DocumentTypeFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, configurationValues: Record): string {\r\n if (value === undefined || value === null || value === \"\") {\r\n return \"\";\r\n }\r\n\r\n try {\r\n const values = JSON.parse(configurationValues[ConfigurationValueKey.Values] ?? \"[]\") as ListItemBag[];\r\n const userValues = value.split(\",\");\r\n const selectedValues = values.filter(o => userValues.includes(o.value ?? \"\"));\r\n return selectedValues.map(o => o.text).join(\", \");\r\n }\r\n catch {\r\n return value;\r\n }\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n}\r\n","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { ComparisonType } from \"@Obsidian/Enums/Reporting/comparisonType\";\r\nimport { stringComparisonTypes } from \"@Obsidian/Core/Reporting/comparisonType\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\nimport { getStandardFilterComponent } from \"./utils\";\r\nimport { escapeHtml } from \"@Obsidian/Utility/stringUtils\";\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./emailFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The filter component can be quite large, so load it only as needed.\r\nconst filterComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./emailFieldComponents\")).FilterComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./emailFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\n/**\r\n * The field type handler for the Email field.\r\n */\r\nexport class EmailFieldType extends FieldTypeBase {\r\n public override getHtmlValue(value: string, configurationValues: Record, isEscaped: boolean = false): string {\r\n const textValue = this.getTextValue(value, configurationValues);\r\n\r\n const html = textValue ? `${textValue}` : \"\";\r\n\r\n if (isEscaped) {\r\n escapeHtml(html);\r\n }\r\n\r\n return html;\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n\r\n public override getFilterComponent(): Component {\r\n return getStandardFilterComponent(this.getSupportedComparisonTypes(), filterComponent);\r\n }\r\n\r\n public override getSupportedComparisonTypes(): ComparisonType {\r\n return stringComparisonTypes;\r\n }\r\n}\r\n","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { ComparisonType } from \"@Obsidian/Enums/Reporting/comparisonType\";\r\nimport { stringComparisonTypes } from \"@Obsidian/Core/Reporting/comparisonType\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\n\r\nexport const enum ConfigurationValueKey {\r\n IsPassword = \"ispassword\",\r\n NumberOfRows = \"numberofrows\",\r\n AllowHtml = \"allowhtml\",\r\n MaxCharacters = \"maxcharacters\",\r\n ShowCountDown = \"showcountdown\"\r\n}\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./encryptedTextFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./encryptedTextFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\n/**\r\n * The field type handler for the Encrypted field.\r\n */\r\nexport class EncryptedTextFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, _configurationValues: Record): string {\r\n return value ?? \"\";\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n\r\n public override getSupportedComparisonTypes(): ComparisonType {\r\n return stringComparisonTypes;\r\n }\r\n}\r\n","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\n\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\n\r\nexport const enum ConfigurationValueKey {\r\n EntityControlHelpTextFormat = \"entityControlHelpTextFormat\",\r\n}\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./entityFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./entityFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\nexport class EntityFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, _configurationValues: Record): string {\r\n return value ?? \"\";\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n}\r\n","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\n\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\n\r\nexport const enum ConfigurationValueKey {\r\n ClientValues = \"values\",\r\n RepeatColumns = \"repeatColumns\",\r\n IncludeGlobal = \"includeglobal\"\r\n}\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./entityTypeFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./entityTypeFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\nexport class EntityTypeFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, _configurationValues: Record): string {\r\n return value ?? \"\";\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n}\r\n","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./eventCalendarFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./eventCalendarFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\n/**\r\n * The field type handler for the Event Calendar field.\r\n */\r\nexport class EventCalendarFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, _configurationValues: Record): string {\r\n return value ?? \"\";\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n}\r\n","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\n\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./eventItemFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./eventItemFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\n/**\r\n * The field type handler for the Event Item field.\r\n */\r\nexport class EventItemFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, _configurationValues: Record): string {\r\n return value ?? \"\";\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n\r\n public override isFilterable(): boolean {\r\n return false;\r\n }\r\n}","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\n\r\n// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\n\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\n\r\nexport const enum ConfigurationValueKey {\r\n DisplayPublicName = \"displaypublicname\",\r\n DisplayChildItemCounts = \"displaychilditemcounts\",\r\n DisplayActiveItemsOnly = \"displayactiveitemsonly\",\r\n EnhancedForLongLists = \"enhancedforlonglists\"\r\n}\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./financialAccountFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./financialAccountFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\n/**\r\n * The field type handler for the Financial Account field.\r\n */\r\nexport class FinancialAccountFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, _configurationValues: Record): string {\r\n return value ?? \"\";\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n\r\n public override isFilterable(): boolean {\r\n return false;\r\n }\r\n}","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\n\r\n// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\n\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\n\r\nexport const enum ConfigurationValueKey {\r\n DisplayPublicName = \"displaypublicname\",\r\n DisplayChildItemCounts = \"displaychilditemcounts\",\r\n DisplayActiveItemsOnly = \"displayactiveitemsonly\",\r\n EnhancedForLongLists = \"enhancedforlonglists\"\r\n}\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./financialAccountsFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./financialAccountsFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\n/**\r\n * The field type handler for the Financial Account field.\r\n */\r\nexport class FinancialAccountsFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, _configurationValues: Record): string {\r\n return value ?? \"\";\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n\r\n public override isFilterable(): boolean {\r\n return false;\r\n }\r\n}","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\n\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./financialGatewayFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./financialGatewayFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\n/**\r\n * The field type handler for the Financial Gateway field.\r\n */\r\nexport class FinancialGatewayFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, _configurationValues: Record): string {\r\n return value ?? \"\";\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n\r\n public override isFilterable(): boolean {\r\n return false;\r\n }\r\n}","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\n\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\n\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./financialStatementTemplateFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./financialStatementTemplateFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\nexport class FinancialStatementTemplateFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, _configurationValues: Record): string {\r\n return value ?? \"\";\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n}","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { ComparisonType } from \"@Obsidian/Enums/Reporting/comparisonType\";\r\nimport { escapeHtml } from \"@Obsidian/Utility/stringUtils\";\r\nimport { ListItemBag } from \"@Obsidian/ViewModels/Utility/listItemBag\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\n\r\n/**\r\n * The key names for the configuration properties available when editing the\r\n * configuration of a File field type.\r\n */\r\nexport const enum ConfigurationPropertyKey {\r\n /** The binary file types available to pick from. */\r\n BinaryFileTypes = \"binaryFileTypes\"\r\n}\r\n\r\n/**\r\n * The configuration value keys used by the configuraiton and edit controls.\r\n */\r\nexport const enum ConfigurationValueKey {\r\n /** The unique identifier of the BinaryFileType to use for uploads. */\r\n BinaryFileType = \"binaryFileType\",\r\n}\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./fileFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./fileFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\n/**\r\n * The field type handler for the File field.\r\n */\r\nexport class FileFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, _configurationValues: Record): string {\r\n try {\r\n const realValue = JSON.parse(value) as ListItemBag;\r\n\r\n return realValue.text ?? \"\";\r\n }\r\n catch {\r\n return value;\r\n }\r\n }\r\n\r\n public override getHtmlValue(value: string, _configurationValues: Record, isEscaped: boolean = false): string {\r\n try {\r\n const realValue = JSON.parse(value ?? \"\") as ListItemBag;\r\n\r\n const html = `View`;\r\n\r\n if (isEscaped) {\r\n escapeHtml(html);\r\n }\r\n\r\n return html;\r\n }\r\n catch {\r\n if (isEscaped) {\r\n escapeHtml(value ?? \"\");\r\n }\r\n\r\n return value ?? \"\";\r\n }\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n\r\n public override getSupportedComparisonTypes(): ComparisonType {\r\n return ComparisonType.IsBlank | ComparisonType.IsNotBlank;\r\n }\r\n}\r\n","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { toNumberOrNull } from \"@Obsidian/Utility/numberUtils\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./genderFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./genderFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\n/**\r\n * The field type handler for the Gender field.\r\n */\r\nexport class GenderFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, _configurationValues: Record): string {\r\n const numberValue = toNumberOrNull(value);\r\n\r\n if (numberValue === 0) {\r\n return \"Unknown\";\r\n }\r\n else if (numberValue === 1) {\r\n return \"Male\";\r\n }\r\n else if (numberValue === 2) {\r\n return \"Female\";\r\n }\r\n else {\r\n return \"\";\r\n }\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n}\r\n","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\n\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\nimport { ListItemBag } from \"@Obsidian/ViewModels/Utility/listItemBag\";\r\n\r\nexport const enum ConfigurationValueKey {\r\n GroupRolePickerLabel = \"groupAndRolePickerLabel\"\r\n}\r\n\r\nexport type GroupAndRoleValue = {\r\n groupType: ListItemBag;\r\n group: ListItemBag;\r\n groupRole: ListItemBag;\r\n groupTypeRoles: ListItemBag[];\r\n};\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./groupAndRoleFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./groupAndRoleFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\n/**\r\n * The field type handler for the Social Media Account field.\r\n */\r\nexport class GroupAndRoleFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, _configurationValues: Record): string {\r\n return value ?? \"\";\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n\r\n public override isFilterable(): boolean {\r\n return false;\r\n }\r\n}","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\n\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./groupFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./groupFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\n/**\r\n * The field type handler for the Address field.\r\n */\r\nexport class GroupFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, _configurationValues: Record): string {\r\n return value ?? \"\";\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n\r\n public override isFilterable(): boolean {\r\n return false;\r\n }\r\n}","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\n\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\n\r\nexport const enum ConfigurationValueKey {\r\n GroupType = \"groupTypeGuid\",\r\n GroupTypeLocations = \"groupTypeLocations\",\r\n}\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./groupLocationTypeFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./groupLocationTypeFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\n/**\r\n * The field type handler for the Group Location Type field.\r\n */\r\nexport class GroupLocationTypeFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, _configurationValues: Record): string {\r\n return value ?? \"\";\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n\r\n public override isFilterable(): boolean {\r\n return false;\r\n }\r\n}","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\n\r\nexport const enum ConfigurationValueKey {\r\n GroupType = \"grouptype\"\r\n}\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./groupRoleFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./groupRoleFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\n/**\r\n * The field type handler for the Address field.\r\n */\r\nexport class GroupRoleFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, _configurationValues: Record): string {\r\n return value ?? \"\";\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n\r\n public override isFilterable(): boolean {\r\n return false;\r\n }\r\n}\r\n","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\n\r\nexport const enum ConfigurationValueKey {\r\n AllowMultipleValues = \"allowmultiple\",\r\n EnhanceForLongLists = \"enhancedselection\",\r\n Group = \"group\"\r\n}\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./groupMemberFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./groupMemberFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\n/**\r\n * The field type handler for the Address field.\r\n */\r\nexport class GroupMemberFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, _configurationValues: Record): string {\r\n return value ?? \"\";\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n\r\n public override isFilterable(): boolean {\r\n return false;\r\n }\r\n}\r\n","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\n\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { ComparisonType } from \"@Obsidian/Enums/Reporting/comparisonType\";\r\nimport { stringComparisonTypes } from \"@Obsidian/Core/Reporting/comparisonType\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./groupMemberRequirementFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./groupMemberRequirementFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\nexport class GroupMemberRequirementFieldType extends FieldTypeBase {\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getSupportedComparisonTypes(): ComparisonType {\r\n return stringComparisonTypes;\r\n }\r\n}\r\n","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\nimport { ListItemBag } from \"@Obsidian/ViewModels/Utility/listItemBag\";\r\n\r\nexport const enum ConfigurationValueKey {\r\n GroupTypePurposeValueGuid = \"groupTypePurposeValueGuid\",\r\n GroupTypePurposes = \"groupTypePurposes\",\r\n Values = \"values\"\r\n}\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./groupTypeFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./groupTypeFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\n/**\r\n * The field type handler for the Group Type field.\r\n */\r\nexport class GroupTypeField extends FieldTypeBase {\r\n public override getTextValue(value: string, configurationValues: Record): string {\r\n if (value === undefined || value === null || value === \"\") {\r\n return \"\";\r\n }\r\n\r\n try {\r\n const values = JSON.parse(configurationValues[ConfigurationValueKey.Values] ?? \"[]\") as ListItemBag[];\r\n const selectedValues = values.filter(o => o.value === value);\r\n return selectedValues.map(o => o.text).join(\", \");\r\n }\r\n catch {\r\n return value;\r\n }\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n}\r\n","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\nimport { ListItemBag } from \"@Obsidian/ViewModels/Utility/listItemBag\";\r\n\r\nexport const enum ConfigurationValueKey {\r\n EnhancedSelection = \"enhancedselection\",\r\n RepeatColumns = \"repeatColumns\",\r\n Values = \"values\"\r\n}\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./groupTypesFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./groupTypesFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\n/**\r\n * The field type handler for the Group Type field.\r\n */\r\nexport class GroupTypesFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, configurationValues: Record): string {\r\n if (value === undefined || value === null || value === \"\") {\r\n return \"\";\r\n }\r\n\r\n try {\r\n const values = JSON.parse(configurationValues[ConfigurationValueKey.Values] ?? \"[]\") as ListItemBag[];\r\n const userValues = value.split(\",\");\r\n const selectedValues = values.filter(o => userValues.includes(o.value ?? \"\"));\r\n\r\n return selectedValues.map(o => o.text).join(\", \");\r\n }\r\n catch {\r\n return value;\r\n }\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n}\r\n","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\nimport { ListItemBag } from \"@Obsidian/ViewModels/Utility/listItemBag\";\r\n\r\nexport const enum ConfigurationValueKey {\r\n GroupPickerLabel = \"groupPickerLabel\",\r\n}\r\n\r\nexport type GroupAndGroupType = {\r\n groupType: ListItemBag;\r\n group: ListItemBag;\r\n};\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./groupTypeGroupFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./groupTypeGroupFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\nexport class GroupTypeGroupField extends FieldTypeBase {\r\n public override getTextValue(value: string, configurationValues: Record): string {\r\n return value;\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n}","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\nimport { escapeHtml } from \"@Obsidian/Utility/stringUtils\";\r\n\r\nexport const enum ConfigurationValueKey {\r\n Toolbar = \"toolbar\",\r\n DocumentFolderRoot = \"documentfolderroot\",\r\n ImageFolderRoot = \"imagefolderroot\",\r\n UserSpecificRoot = \"userspecificroot\",\r\n CondensedHtml = \"condensedHtml\",\r\n EncryptedDocumentFolderRoot = \"encrypteddocumentfolderroot\",\r\n EncryptedImageFolderRoot = \"encryptedimagefolderroot\"\r\n}\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./htmlFieldComponents\")).EditComponent;\r\n});\r\n\r\n// Load the configuration component only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./htmlFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\n/**\r\n * The field type handler for the HTML field.\r\n */\r\nexport class HtmlFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, _configurationValues: Record): string {\r\n return escapeHtml(value ?? \"\");\r\n }\r\n\r\n public override getHtmlValue(value: string, configurationValues: Record, isEscaped?: boolean): string {\r\n return isEscaped ? this.getTextValue(value, configurationValues) : value;\r\n }\r\n\r\n public override getCondensedHtmlValue(value: string, configurationValues: Record, isEscaped?: boolean): string {\r\n const html = configurationValues?.[ConfigurationValueKey.CondensedHtml] ?? value ?? \"\";\r\n return isEscaped ? escapeHtml(html) : html;\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n}","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { ComparisonType } from \"@Obsidian/Enums/Reporting/comparisonType\";\r\nimport { ListItemBag } from \"@Obsidian/ViewModels/Utility/listItemBag\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\nimport { escapeHtml } from \"@Obsidian/Utility/stringUtils\";\r\nimport { asBoolean } from \"@Obsidian/Utility/booleanUtils\";\r\nimport { resolveMergeFields } from \"@Obsidian/Utility/lava\";\r\n\r\n/**\r\n * The key names for the configuration properties available when editing the\r\n * configuration of an Image field type.\r\n */\r\nexport const enum ConfigurationPropertyKey {\r\n /** The binary file types available to pick from. */\r\n BinaryFileTypes = \"binaryFileTypes\"\r\n}\r\n\r\n/**\r\n * The configuration value keys used by the configuraiton and edit controls.\r\n */\r\nexport const enum ConfigurationValueKey {\r\n /** The unique identifier of the BinaryFileType to use for uploads. */\r\n BinaryFileType = \"binaryFileType\",\r\n\r\n /** Determines if the rendered HTML should be clickable. */\r\n FormatAsLink = \"formatAsLink\",\r\n\r\n /** The Lava template to use when rendering as an html img tag. */\r\n ImageTagTemplate = \"img_tag_template\",\r\n\r\n /** The width property to use when rendering as an html img tag. */\r\n Width = \"width\",\r\n\r\n /** The height property to use when rendering as an html img tag. */\r\n Height = \"height\",\r\n\r\n /** The image url to use when rendering as an html img tag. */\r\n ImageUrl = \"imageUrl\"\r\n}\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./imageFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./imageFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\n/**\r\n * The field type handler for the Image field.\r\n */\r\nexport class ImageFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, _configurationValues: Record): string {\r\n try {\r\n const realValue = JSON.parse(value ?? \"\") as ListItemBag;\r\n\r\n if (!realValue.value) {\r\n return \"\";\r\n }\r\n\r\n return realValue.text ?? \"\";\r\n }\r\n catch {\r\n return value;\r\n }\r\n }\r\n\r\n public override getHtmlValue(value: string, configurationValues: Record, isEscaped: boolean = false): string {\r\n try {\r\n const realValue = JSON.parse(value ?? \"\") as ListItemBag;\r\n\r\n if (!realValue.value) {\r\n return \"\";\r\n }\r\n\r\n const width = configurationValues[ConfigurationValueKey.Width];\r\n const height = configurationValues[ConfigurationValueKey.Height];\r\n let imageUrl = configurationValues[ConfigurationValueKey.ImageUrl] ?? `/GetImage.ashx?guid=${realValue.value}`;\r\n let queryParms = \"\";\r\n\r\n if (width) {\r\n queryParms += `&width=${width}`;\r\n }\r\n\r\n if (height) {\r\n queryParms += `&height=${height}`;\r\n }\r\n\r\n if (!this.hasQueryParams(imageUrl)) {\r\n imageUrl += `?guid=${realValue.value}`;\r\n }\r\n\r\n const imageTagTemplate = configurationValues[ConfigurationValueKey.ImageTagTemplate];\r\n const formatAsLink = asBoolean(configurationValues[ConfigurationValueKey.FormatAsLink]);\r\n const mergeFields: Record = {\r\n \"ImageUrl\": imageUrl + queryParms,\r\n \"ImageGuid\": realValue.value\r\n };\r\n\r\n const imageTag = resolveMergeFields(imageTagTemplate, mergeFields);\r\n\r\n const html = formatAsLink ? `${imageTag}` : imageTag;\r\n\r\n if (isEscaped) {\r\n escapeHtml(html);\r\n }\r\n\r\n return html;\r\n }\r\n catch {\r\n if (isEscaped) {\r\n escapeHtml(value ?? \"\");\r\n }\r\n\r\n return value ?? \"\";\r\n }\r\n }\r\n\r\n public override getCondensedHtmlValue(value: string, configurationValues: Record, isEscaped: boolean = false): string {\r\n const width = configurationValues[ConfigurationValueKey.Width];\r\n\r\n if (!width) {\r\n configurationValues[ConfigurationValueKey.Width] = \"120\";\r\n }\r\n\r\n return this.getHtmlValue(value, configurationValues, isEscaped);\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n\r\n public override getSupportedComparisonTypes(): ComparisonType {\r\n return ComparisonType.IsBlank | ComparisonType.IsNotBlank;\r\n }\r\n\r\n private hasQueryParams(url: string): boolean {\r\n const { protocol, host } = window.location;\r\n const baseUrl = `${protocol}//${host}`;\r\n const urlObj = new URL(url, baseUrl);\r\n return urlObj.searchParams.toString() !== \"\";\r\n }\r\n}\r\n\r\n","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { ComparisonType } from \"@Obsidian/Enums/Reporting/comparisonType\";\r\nimport { numericComparisonTypes } from \"@Obsidian/Core/Reporting/comparisonType\";\r\nimport { toNumberOrNull } from \"@Obsidian/Utility/numberUtils\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\n\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./integerFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./integerFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\n/**\r\n * The field type handler for the Integer field.\r\n */\r\nexport class IntegerFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, _configurationValues: Record): string {\r\n return toNumberOrNull(value)?.toString() ?? \"\";\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n\r\n public override getSupportedComparisonTypes(): ComparisonType {\r\n return numericComparisonTypes;\r\n }\r\n}\r\n","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { toNumberOrNull } from \"@Obsidian/Utility/numberUtils\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\n\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./integerRangeFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./integerRangeFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\n/**\r\n * The field type handler for the Integer Range field.\r\n */\r\nexport class IntegerRangeFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, _configurationValues: Record): string {\r\n if (value === \"\" || value === \",\") {\r\n return \"\";\r\n }\r\n\r\n const numbers = value.split(\",\").map(v => toNumberOrNull(v));\r\n\r\n // If there are not two components then it's not valid, or if both\r\n // components are not numbers then it's not valid.\r\n if (numbers.length !== 2 || (numbers[0] === null && numbers[1] === null)) {\r\n return \"\";\r\n }\r\n\r\n if (numbers[0] === null) {\r\n return `through ${numbers[1]}`;\r\n }\r\n else if (numbers[1] === null) {\r\n return `from ${numbers[0]}`;\r\n }\r\n else {\r\n return `${numbers[0]} to ${numbers[1]}`;\r\n }\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n\r\n public override isFilterable(): boolean {\r\n return false;\r\n }\r\n}\r\n","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\n\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./interactionChannelFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./interactionChannelFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\nexport class InteractionChannelFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, _configurationValues: Record): string {\r\n return value ?? \"\";\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n}","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\n\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\nimport { ListItemBag } from \"@Obsidian/ViewModels/Utility/listItemBag\";\r\n\r\nexport const enum ConfigurationValueKey {\r\n Values = \"values\",\r\n RepeatColumns = \"repeatColumns\",\r\n EnhancedSelection = \"enhancedselection\"\r\n}\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./interactionChannelsFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./interactionChannelsFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\nexport class InteractionChannelsFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, configurationValues: Record): string {\r\n if (value === undefined || value === null || value === \"\") {\r\n return \"\";\r\n }\r\n\r\n try {\r\n const values = JSON.parse(configurationValues[ConfigurationValueKey.Values] ?? \"[]\") as ListItemBag[];\r\n const userValues = value.split(\",\");\r\n const selectedValues = values.filter(o => userValues.includes(o.value ?? \"\"));\r\n\r\n return selectedValues.map(o => o.text).join(\", \");\r\n }\r\n catch {\r\n return value;\r\n }\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n}\r\n","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\n\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\n\r\nexport const enum ConfigurationValueKey {\r\n InteractionChannel = \"DefaultInteractionChannelGuid\"\r\n}\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./interactionChannelInteractionComponentFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./interactionChannelInteractionComponentFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\nexport class InteractionChannelInteractionComponentFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, _configurationValues: Record): string {\r\n return value ?? \"\";\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n}\r\n","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { List } from \"@Obsidian/Utility/linq\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\n\r\nexport const enum ConfigurationValueKey {\r\n Values = \"values\",\r\n KeyPrompt = \"keyprompt\",\r\n ValuePrompt = \"valueprompt\",\r\n DisplayValueFirst = \"displayvaluefirst\",\r\n AllowHtml = \"allowhtml\",\r\n\r\n // Only used during editing of the field type configuration.\r\n CustomValues = \"customvalues\",\r\n DefinedType = \"definedtype\"\r\n}\r\n\r\nexport const enum ConfigurationPropertyKey {\r\n DefinedTypes = \"definedTypes\"\r\n}\r\n\r\nexport type ValueItem = {\r\n value: string,\r\n text: string\r\n};\r\n\r\nexport type ClientValue = {\r\n key: string,\r\n value: string\r\n};\r\n\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./keyValueListFieldComponents\")).EditComponent;\r\n});\r\n\r\n// Load the configuration component as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./keyValueListFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\n/**\r\n * The field type handler for the Key Value List field.\r\n */\r\nexport class KeyValueListFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, configurationValues: Record): string {\r\n try {\r\n const clientValues = JSON.parse(value ?? \"[]\") as ClientValue[];\r\n const configuredValues = new List(JSON.parse(configurationValues[ConfigurationValueKey.Values] ?? \"[]\") as ValueItem[]);\r\n const values: string[] = [];\r\n\r\n for (const clientValue of clientValues) {\r\n const configuredValue = configuredValues.firstOrUndefined(v => v.value === clientValue.value);\r\n\r\n if (configuredValue !== undefined) {\r\n values.push(`${clientValue.key}: ${configuredValue.text}`);\r\n }\r\n else {\r\n values.push(`${clientValue.key}: ${clientValue.value}`);\r\n }\r\n }\r\n\r\n return values.join(\", \");\r\n }\r\n catch {\r\n return \"\";\r\n }\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n\r\n public override isFilterable(): boolean {\r\n return false;\r\n }\r\n}\r\n","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\n\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { ComparisonType } from \"@Obsidian/Enums/Reporting/comparisonType\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\nimport { ListItemBag } from \"@Obsidian/ViewModels/Utility/listItemBag\";\r\nimport { escapeHtml } from \"@Obsidian/Utility/stringUtils\";\r\n\r\nexport const enum ConfigurationValueKey {\r\n FilePath = \"filePath\",\r\n EncodedFileName = \"encodedFileName\",\r\n}\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./labelFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./labelFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\nexport class LabelFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, _configurationValues: Record): string {\r\n if (value === undefined || value === null || value === \"\") {\r\n return \"\";\r\n }\r\n\r\n const binaryFile = JSON.parse(value) as ListItemBag;\r\n\r\n return binaryFile.text ?? \"\";\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n\r\n public override getSupportedComparisonTypes(): ComparisonType {\r\n return ComparisonType.IsBlank | ComparisonType.IsNotBlank;\r\n }\r\n\r\n public override getHtmlValue(value: string, configurationValues: Record, isEscaped: boolean = false): string {\r\n if (!value) {\r\n return \"\";\r\n }\r\n\r\n const binaryFile = JSON.parse(value) as ListItemBag;\r\n const filePath = configurationValues[ConfigurationValueKey.FilePath];\r\n const fileName = configurationValues[ConfigurationValueKey.EncodedFileName];\r\n\r\n const html = `\r\n\r\n View\r\n`;\r\n\r\n if (isEscaped) {\r\n return escapeHtml(html);\r\n }\r\n\r\n return html;\r\n }\r\n\r\n public override getCondensedHtmlValue(value: string, configurationValues: Record, isEscaped?: boolean): string {\r\n return this.getHtmlValue(value, configurationValues, isEscaped);\r\n }\r\n}","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\n\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { ComparisonType } from \"@Obsidian/Enums/Reporting/comparisonType\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\nimport { stringComparisonTypes } from \"@Obsidian/Core/Reporting/comparisonType\";\r\n\r\nexport const enum ConfigurationValueKey {\r\n EditorMode = \"editorMode\",\r\n EditorTheme = \"editorTheme\",\r\n EditorHeight = \"editorHeight\",\r\n}\r\n\r\nexport const enum ConfigurationPropertyKey {\r\n EditorModeOptions = \"editorModeOptions\",\r\n EditorThemeOptions = \"editorThemeOptions\",\r\n}\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./lavaFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./lavaFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\nexport class LavaFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, _configurationValues: Record): string {\r\n return value ?? \"\";\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n\r\n public override getSupportedComparisonTypes(): ComparisonType {\r\n return stringComparisonTypes;\r\n }\r\n}","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\n\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\n\r\nexport const enum ConfigurationValueKey {\r\n RepeatColumns = \"repeatColumns\"\r\n}\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./lavaCommandsFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./lavaCommandsFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\nexport class LavaCommandsFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, _configurationValues: Record): string {\r\n return value ?? \"\";\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n}\r\n","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\n\r\n/**\r\n * The configuration value keys used by the configuraiton and edit controls.\r\n */\r\nexport const enum ConfigurationValueKey {\r\n /** Allowed Picker Modes */\r\n AllowedPickerModes = \"allowedPickerModes\",\r\n CurrentPickerMode = \"currentPickerMode\"\r\n}\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./locationFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./locationFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\n/**\r\n * The field type handler for the LocationList field.\r\n */\r\nexport class LocationFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, _configurationValues: Record): string {\r\n try {\r\n const locationItemBag = JSON.parse(value);\r\n return locationItemBag.text ?? \"\";\r\n }\r\n catch {\r\n return value ?? \"\";\r\n }\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n\r\n public override isFilterable(): boolean {\r\n return false;\r\n }\r\n}\r\n","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\n\r\n/**\r\n * The configuration value keys used by the configuraiton and edit controls.\r\n */\r\nexport const enum ConfigurationValueKey {\r\n /** The location type */\r\n LocationType = \"LocationType\",\r\n\r\n /** The parent location */\r\n ParentLocation = \"ParentLocation\",\r\n\r\n /** The allow adding new locations */\r\n AllowAddingNewLocations = \"AllowAddingNewLocations\",\r\n\r\n /** The show city state */\r\n ShowCityState = \"ShowCityState\",\r\n\r\n /** The address required */\r\n AddressRequired = \"AddressRequired\"\r\n}\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./locationListFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./locationListFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\n/**\r\n * The field type handler for the LocationList field.\r\n */\r\nexport class LocationListFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, _configurationValues: Record): string {\r\n try {\r\n const locationItemBag = JSON.parse(value);\r\n return locationItemBag.text ?? \"\";\r\n }\r\n catch {\r\n return value ?? \"\";\r\n }\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n\r\n public override isFilterable(): boolean {\r\n return false;\r\n }\r\n}\r\n","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\nimport { ComparisonType } from \"@Obsidian/Enums/Reporting/comparisonType\";\r\nimport { stringComparisonTypes } from \"@Obsidian/Core/Reporting/comparisonType\";\r\nimport { escapeHtml, truncate } from \"@Obsidian/Utility/stringUtils\";\r\n\r\nconst enum ConfigurationValueKey {\r\n HtmlValue = \"htmlvalue\"\r\n}\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./markdownFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./markdownFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\n/**\r\n * The field type handler for the Markdown field.\r\n */\r\nexport class MarkdownFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, _configurationValues: Record): string {\r\n return value;\r\n }\r\n\r\n public override getHtmlValue(_value: string, configurationValues: Record, isEscaped?: boolean): string {\r\n return isEscaped ? escapeHtml(configurationValues[ConfigurationValueKey.HtmlValue]) : configurationValues[ConfigurationValueKey.HtmlValue];\r\n }\r\n\r\n public override getCondensedTextValue(value: string, configurationValues: Record): string {\r\n return truncate(this.getTextValue(value, configurationValues), 100);\r\n }\r\n\r\n public override getCondensedHtmlValue(value: string, configurationValues: Record, isEscaped?: boolean): string {\r\n let htmlValue = truncate(this.getHtmlValue(value, configurationValues, false), 100).trim();\r\n\r\n if (htmlValue.startsWith(\"

\") && htmlValue.endsWith(\"

\")) {\r\n htmlValue = htmlValue.substring(3, htmlValue.length - 4);\r\n }\r\n return isEscaped ? escapeHtml(htmlValue) : htmlValue;\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n\r\n public override getSupportedComparisonTypes(_configurationValues: Record): ComparisonType {\r\n return stringComparisonTypes;\r\n }\r\n}\r\n","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\nimport { Component } from \"vue\";\r\nimport { ComparisonType } from \"@Obsidian/Enums/Reporting/comparisonType\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\nimport { ListItemBag } from \"@Obsidian/ViewModels/Utility/listItemBag\";\r\nimport { escapeHtml } from \"@Obsidian/Utility/stringUtils\";\r\n\r\nexport const enum ConfigurationValueKey {\r\n AttributeMatrixTemplate = \"attributematrixtemplate\"\r\n}\r\n\r\nexport const enum ConfigurationPropertyKey {\r\n Templates = \"templates\"\r\n}\r\n\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./matrixFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./matrixFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\n\r\n/**\r\n * The field type handler for the Matrix field.\r\n */\r\nexport class MatrixFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, _configurationValues: Record): string {\r\n if (value === undefined || value === null || value === \"\") {\r\n return \"\";\r\n }\r\n\r\n try {\r\n const val = JSON.parse(value) as ListItemBag;\r\n return val.value ?? \"\";\r\n }\r\n catch {\r\n return value;\r\n }\r\n }\r\n\r\n public override getHtmlValue(value: string, _configurationValues: Record, isEscaped:boolean = false): string {\r\n if (value === undefined || value === null || value === \"\") {\r\n return \"\";\r\n }\r\n\r\n try {\r\n const val = JSON.parse(value) as ListItemBag;\r\n\r\n if (isEscaped) {\r\n return escapeHtml(val.text ?? \"\");\r\n }\r\n\r\n return val.text ?? \"\";\r\n }\r\n catch {\r\n if (isEscaped) {\r\n return escapeHtml(value);\r\n }\r\n\r\n return value;\r\n }\r\n }\r\n\r\n public override getCondensedHtmlValue(value: string, configurationValues: Record, isEscaped:boolean = false): string {\r\n return this.getHtmlValue(value, configurationValues, isEscaped);\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n\r\n public override getSupportedComparisonTypes(): ComparisonType {\r\n return 0;\r\n }\r\n\r\n public override isFilterable(): boolean {\r\n return false;\r\n }\r\n\r\n public override hasDefaultComponent(): boolean {\r\n return false;\r\n }\r\n}\r\n","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\n\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\nimport { escapeHtml } from \"@Obsidian/Utility/stringUtils\";\r\n\r\nexport const enum ConfigurationValueKey {\r\n MediaPickerLabel = \"mediaPickerLabel\",\r\n LimitToAccount = \"limitToAccount\",\r\n LimitToFolder = \"limitToFolder\",\r\n EnhancedForLongListsThreshold = \"enhanceForLongListsThreshold\",\r\n AllowRefresh = \"allowRefresh\",\r\n ThumbnailUrl = \"thumbnailUrl\"\r\n}\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./mediaElementFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./mediaElementFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\n/**\r\n * The field type handler for the Media Element field.\r\n */\r\nexport class MediaElementFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, _configurationValues: Record): string {\r\n return value ?? \"\";\r\n }\r\n\r\n public override getHtmlValue(value: string, configurationValues: Record, isEscaped: boolean = false): string {\r\n\r\n let html = \"\";\r\n\r\n if (value) {\r\n const thumbnailUrl = configurationValues[ConfigurationValueKey.ThumbnailUrl] ?? \"\";\r\n html = `${value}`;\r\n\r\n if (isEscaped) {\r\n escapeHtml(html);\r\n }\r\n }\r\n\r\n return html;\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n\r\n public override isFilterable(): boolean {\r\n return false;\r\n }\r\n}","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\nimport { Component } from \"vue\";\r\n\r\nexport const enum ConfigurationValueKey {\r\n MediaItems = \"mediaitems\",\r\n Mode = \"modetype\",\r\n ItemWidth = \"itemwidth\"\r\n}\r\n\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./mediaSelectorFieldComponents\")).EditComponent;\r\n});\r\n\r\n// Load the configuration component only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./mediaSelectorFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\n/**\r\n * The field type handler for the MediaSelector field.\r\n */\r\nexport class MediaSelectorFieldType extends FieldTypeBase {\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n}\r\n","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\n\r\nexport const ConfigurationValueKey = {\r\n CompletionPercentage: \"completionPercentage\",\r\n AutoResumeInDays: \"autoResumeInDays\",\r\n MaxWidth: \"maxWidth\",\r\n ValidationMessage: \"validationMessage\",\r\n MediaAccount: \"mediaAccount\",\r\n MediaFolder: \"mediaFolder\",\r\n MediaElement: \"mediaElement\",\r\n} as const;\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./mediaWatchFieldComponents\")).EditComponent;\r\n});\r\n\r\n// Load the configuration component only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./mediaWatchFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\n/**\r\n * The field type handler for the MediaWatch field.\r\n */\r\nexport class MediaWatchFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, _configurationValues: Record): string {\r\n return value ? value + \"%\" : \"\";\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n}","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { ComparisonType } from \"@Obsidian/Enums/Reporting/comparisonType\";\r\nimport { stringComparisonTypes } from \"@Obsidian/Core/Reporting/comparisonType\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\nimport { getStandardFilterComponent } from \"./utils\";\r\n\r\nexport const enum ConfigurationValueKey {\r\n NumberOfRows = \"numberofrows\",\r\n AllowHtml = \"allowhtml\",\r\n MaxCharacters = \"maxcharacters\",\r\n ShowCountDown = \"showcountdown\"\r\n}\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./memoFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The filter component can be quite large, so load it only as needed.\r\nconst filterComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./memoFieldComponents\")).FilterComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./memoFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\n/**\r\n * The field type handler for the Memo field.\r\n */\r\nexport class MemoFieldType extends FieldTypeBase {\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n\r\n public override getSupportedComparisonTypes(): ComparisonType {\r\n return stringComparisonTypes;\r\n }\r\n\r\n public override getFilterComponent(): Component {\r\n return getStandardFilterComponent(this.getSupportedComparisonTypes(), filterComponent);\r\n }\r\n}\r\n","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\n\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./mergeTemplateFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./mergeTemplateFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\nexport class MergeTemplateFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, _configurationValues: Record): string {\r\n return value ?? \"\";\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n}","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\n\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./metricCategoriesFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./metricCategoriesFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\nexport class MetricCategoriesFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, _configurationValues: Record): string {\r\n return value ?? \"\";\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n}","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\n\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./metricFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./metricFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\nexport class MetricFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, _configurationValues: Record): string {\r\n return value ?? \"\";\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n}","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { MobileNavigationActionBag } from \"@Obsidian/ViewModels/Controls/mobileNavigationActionBag\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\nimport { MobileNavigationActionType } from \"@Obsidian/Enums/Mobile/mobileNavigationActionType\";\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./mobileNavigationActionFieldComponents\")).EditComponent;\r\n});\r\n\r\n// Load the configuration component only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./mobileNavigationActionFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\n/**\r\n * The field type handler for the Mobile Navigation Action field.\r\n */\r\nexport class MobileNavigationActionFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, _configurationValues: Record): string {\r\n const actionValue = JSON.parse(value || \"{}\") as MobileNavigationActionBag;\r\n\r\n if (!actionValue) {\r\n return \"\";\r\n }\r\n\r\n switch (actionValue.type) {\r\n case MobileNavigationActionType.None:\r\n return \"None\";\r\n\r\n case MobileNavigationActionType.PopPage:\r\n return `Pop ${actionValue.popCount ?? 1} page${actionValue.popCount == 1 ? \"\" : \"s\"}`;\r\n\r\n case MobileNavigationActionType.ResetToPage:\r\n return `Reset to '${actionValue.page?.text ?? \"page\"}'`;\r\n\r\n case MobileNavigationActionType.ReplacePage:\r\n return `Replace page with '${actionValue.page?.text ?? \"page\"}'`;\r\n\r\n case MobileNavigationActionType.PushPage:\r\n return `Push '${actionValue.page?.text ?? \"page\"}'`;\r\n\r\n case MobileNavigationActionType.DismissCoverSheet:\r\n return \"Dismiss Cover Sheet\";\r\n\r\n default:\r\n return \"\";\r\n }\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n}\r\n","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { toNumber } from \"@Obsidian/Utility/numberUtils\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./monthDayFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./monthDayFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\n/**\r\n * The field type handler for the MonthDay field.\r\n */\r\nexport class MonthDayFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, _configurationValues: Record): string {\r\n const components = (value).split(\"/\");\r\n\r\n if (components.length !== 2) {\r\n return \"\";\r\n }\r\n\r\n const month = toNumber(components[0]);\r\n const day = toNumber(components[1]);\r\n\r\n if (month >= 1 && day >= 1 && month <= 12 && day <= 31) {\r\n const months = [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"];\r\n\r\n return `${months[month-1]} ${day}`;\r\n }\r\n else {\r\n return \"\";\r\n }\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n}\r\n","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { ComparisonType } from \"@Obsidian/Enums/Reporting/comparisonType\";\r\nimport { containsComparisonTypes } from \"@Obsidian/Core/Reporting/comparisonType\";\r\nimport { ComparisonValue } from \"@Obsidian/Types/Reporting/comparisonValue\";\r\nimport { ListItemBag } from \"@Obsidian/ViewModels/Utility/listItemBag\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\nimport { getStandardFilterComponent } from \"./utils\";\r\n\r\nexport const enum ConfigurationValueKey {\r\n Values = \"values\",\r\n RepeatColumns = \"repeatColumns\",\r\n RepeatDirection = \"repeatDirection\",\r\n EnhancedSelection = \"enhancedselection\",\r\n\r\n /** Only used during editing of the field type configuration. */\r\n CustomValues = \"customValues\"\r\n}\r\n\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./multiSelectFieldComponents\")).EditComponent;\r\n});\r\n\r\n// Load the filter component only as needed.\r\nconst filterComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./multiSelectFieldComponents\")).FilterComponent;\r\n});\r\n\r\n// Load the configuration component only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./multiSelectFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\n/**\r\n * The field type handler for the MultiSelect field.\r\n */\r\nexport class MultiSelectFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, configurationValues: Record): string {\r\n if (value === \"\") {\r\n return \"\";\r\n }\r\n\r\n try {\r\n const values = JSON.parse(configurationValues[ConfigurationValueKey.Values] ?? \"[]\") as ListItemBag[];\r\n const userValues = value.split(\",\");\r\n const selectedValues = values.filter(v => userValues.includes(v.value ?? \"\"));\r\n\r\n return selectedValues.map(v => v.text).join(\", \");\r\n }\r\n catch {\r\n return value;\r\n }\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n\r\n public override getSupportedComparisonTypes(): ComparisonType {\r\n return containsComparisonTypes;\r\n }\r\n\r\n public override getFilterComponent(): Component {\r\n return getStandardFilterComponent(this.getSupportedComparisonTypes(), filterComponent);\r\n }\r\n\r\n public override getFilterValueText(value: ComparisonValue, configurationValues: Record): string {\r\n if (value.value === \"\") {\r\n return \"\";\r\n }\r\n\r\n try {\r\n const rawValues = value.value.split(\",\");\r\n const values = JSON.parse(configurationValues?.[ConfigurationValueKey.Values] ?? \"[]\") as ListItemBag[];\r\n const selectedValues = values.filter(v => rawValues.includes(v.value ?? \"\"));\r\n\r\n if (selectedValues.length >= 1) {\r\n return `'${selectedValues.map(v => v.value).join(\"' OR '\")}'`;\r\n }\r\n else {\r\n return \"\";\r\n }\r\n }\r\n catch {\r\n return value.value;\r\n }\r\n }\r\n\r\n public override doesValueMatchFilter(value: string, filterValue: ComparisonValue, _configurationValues: Record): boolean {\r\n const selectedValues = (filterValue.value ?? \"\").split(\",\").filter(v => v !== \"\").map(v => v.toLowerCase());\r\n let comparisonType = filterValue.comparisonType;\r\n\r\n if (comparisonType === ComparisonType.EqualTo) {\r\n // Treat EqualTo as if it were Contains.\r\n comparisonType = ComparisonType.Contains;\r\n }\r\n else if (comparisonType === ComparisonType.NotEqualTo) {\r\n // Treat NotEqualTo as if it were DoesNotContain.\r\n comparisonType = ComparisonType.DoesNotContain;\r\n }\r\n\r\n if (comparisonType === ComparisonType.IsBlank) {\r\n return value === \"\";\r\n }\r\n else if (comparisonType === ComparisonType.IsNotBlank) {\r\n return value !== \"\";\r\n }\r\n\r\n if (selectedValues.length > 0) {\r\n const userValues = value?.split(\",\").filter(v => v !== \"\").map(v => v.toLowerCase()) ?? [];\r\n\r\n if (comparisonType === ComparisonType.Contains) {\r\n let matchedCount = 0;\r\n\r\n for (const userValue of userValues) {\r\n if (selectedValues.includes(userValue)) {\r\n matchedCount += 1;\r\n }\r\n }\r\n\r\n return matchedCount > 0;\r\n }\r\n else {\r\n let matchedCount = 0;\r\n\r\n for (const userValue of userValues) {\r\n if (selectedValues.includes(userValue)) {\r\n matchedCount += 1;\r\n }\r\n }\r\n\r\n return matchedCount !== selectedValues.length;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n}\r\n","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\n\r\nimport { ListItemBag } from \"@Obsidian/ViewModels/Utility/listItemBag\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\n\r\nexport const enum ConfigurationValueKey {\r\n Values = \"values\",\r\n EntityTypeName = \"entityTypeName\",\r\n QualifierColumn = \"qualifierColumn\",\r\n QualifierValue = \"qualifierValue\",\r\n EntityTypes = \"entityTypes\"\r\n}\r\n\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./noteTypeFieldComponents\")).EditComponent;\r\n});\r\n\r\n// Load the configuration component only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./noteTypeFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\n/**\r\n * The field type handler for the MultiSelect field.\r\n */\r\nexport class NoteTypeField extends FieldTypeBase {\r\n public override getTextValue(value: string, configurationValues: Record): string {\r\n if (value === \"\") {\r\n return \"\";\r\n }\r\n\r\n try {\r\n const values = JSON.parse(configurationValues[ConfigurationValueKey.Values] ?? \"[]\") as ListItemBag[];\r\n const userValues = value.split(\",\");\r\n const selectedValues = values.filter(v => userValues.includes(v.value ?? \"\"));\r\n return selectedValues.map(v => v.text)\r\n .map(v => v?.split(\":\").pop()) // just get the name of the note type\r\n .join(\", \");\r\n }\r\n catch {\r\n return value;\r\n }\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n}\r\n","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\n\r\nimport { ListItemBag } from \"@Obsidian/ViewModels/Utility/listItemBag\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\n\r\nexport const enum ConfigurationValueKey {\r\n Values = \"values\",\r\n RepeatColumns = \"repeatColumns\",\r\n EntityTypeName = \"entityTypeName\",\r\n QualifierColumn = \"qualifierColumn\",\r\n QualifierValue = \"qualifierValue\",\r\n EntityTypes = \"entityTypes\"\r\n}\r\n\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./noteTypesFieldComponents\")).EditComponent;\r\n});\r\n\r\n// Load the configuration component only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./noteTypesFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\n/**\r\n * The field type handler for the MultiSelect field.\r\n */\r\nexport class NoteTypesField extends FieldTypeBase {\r\n public override getTextValue(value: string, configurationValues: Record): string {\r\n if (value === \"\") {\r\n return \"\";\r\n }\r\n\r\n try {\r\n const values = JSON.parse(configurationValues[ConfigurationValueKey.Values] ?? \"[]\") as ListItemBag[];\r\n const userValues = value.split(\",\");\r\n const selectedValues = values.filter(v => userValues.includes(v.value ?? \"\"));\r\n return selectedValues.map(v => v.text)\r\n .map(v => v?.split(\":\").pop()) // just get the name of the note type\r\n .join(\", \");\r\n }\r\n catch {\r\n return value;\r\n }\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n}\r\n","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\n\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\n\r\nexport const enum ConfigurationValueKey {\r\n Values = \"values\"\r\n}\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./persistedDatasetFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./persistedDatasetFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\nexport class PersistedDatasetField extends FieldTypeBase {\r\n public override getTextValue(value: string, _configurationValues: Record): string {\r\n return value ?? \"\";\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n}\r\n","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./phoneNumberFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./phoneNumberFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\n/**\r\n * The field type handler for the Phone Number field.\r\n */\r\nexport class PhoneNumberFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, _configurationValues: Record): string {\r\n return value;\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n}","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\n\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./pageReferenceFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./pageReferenceFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\nexport class PageReferenceFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, _configurationValues: Record): string {\r\n return value ?? \"\";\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n}","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { ListItemBag } from \"@Obsidian/ViewModels/Utility/listItemBag\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\n\r\nexport const enum ConfigurationValueKey {\r\n EnableSelfSelection = \"EnableSelfSelection\",\r\n IncludeBusinesses = \"includeBusinesses\"\r\n}\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./personFieldComponents\")).EditComponent;\r\n});\r\n\r\n// Load the configuration component only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./personFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\n/**\r\n * The field type handler for the Person field.\r\n */\r\nexport class PersonFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, _configurationValues: Record): string {\r\n const personValue = JSON.parse(value || \"{}\") as ListItemBag;\r\n return personValue.text ?? \"\";\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n}\r\n","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./prayerRequestFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./prayerRequestFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\n/**\r\n * The field type handler for the PrayerRequest field.\r\n */\r\nexport class PrayerRequestFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, _configurationValues: Record): string {\r\n return value;\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n}\r\n","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { ComparisonType } from \"@Obsidian/Enums/Reporting/comparisonType\";\r\nimport { numericComparisonTypes } from \"@Obsidian/Core/Reporting/comparisonType\";\r\nimport { toNumberOrNull } from \"@Obsidian/Utility/numberUtils\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\n\r\nexport const enum ConfigurationValueKey {\r\n MinValue = \"min\",\r\n MaxValue = \"max\"\r\n}\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./rangeSliderFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./rangeSliderFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\n/**\r\n * The field type handler for the Integer field.\r\n */\r\nexport class RangeSliderFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, _configurationValues: Record): string {\r\n return toNumberOrNull(value)?.toString() ?? \"\";\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n\r\n public override getSupportedComparisonTypes(): ComparisonType {\r\n return numericComparisonTypes;\r\n }\r\n}\r\n","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\nimport { Component, } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { ComparisonType } from \"@Obsidian/Enums/Reporting/comparisonType\";\r\nimport { numericComparisonTypes } from \"@Obsidian/Core/Reporting/comparisonType\";\r\nimport { toNumberOrNull } from \"@Obsidian/Utility/numberUtils\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\nimport { ComparisonValue } from \"@Obsidian/Types/Reporting/comparisonValue\";\r\nimport { escapeHtml } from \"@Obsidian/Utility/stringUtils\";\r\n\r\nexport const enum ConfigurationValueKey {\r\n MaxRating = \"max\"\r\n}\r\n\r\nexport type RatingValue = {\r\n value?: number;\r\n\r\n maxValue?: number;\r\n};\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./ratingFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./ratingFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\n/**\r\n * The field type handler for the Rating field.\r\n */\r\nexport class RatingFieldType extends FieldTypeBase {\r\n public override getHtmlValue(value: string, configurationValues: Record, isEscaped: boolean = false): string {\r\n let ratingValue: RatingValue | null;\r\n\r\n try {\r\n ratingValue = JSON.parse(value ?? \"\") as RatingValue;\r\n }\r\n catch {\r\n ratingValue = null;\r\n }\r\n const rating = ratingValue?.value ?? 0;\r\n const maxRating = toNumberOrNull(configurationValues[ConfigurationValueKey.MaxRating]) ?? 5;\r\n let html = \"\";\r\n for (let i = 0; i < rating && i < maxRating; i++) {\r\n html += ``;\r\n }\r\n for (let i = rating; i < maxRating; i++) {\r\n html += ``;\r\n }\r\n\r\n if (isEscaped) {\r\n return escapeHtml(html);\r\n }\r\n\r\n return html;\r\n }\r\n\r\n public override getCondensedHtmlValue(value: string, configurationValues: Record, isEscaped?: boolean): string {\r\n return this.getHtmlValue(value,configurationValues, isEscaped);\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n\r\n public override getSupportedComparisonTypes(): ComparisonType {\r\n return numericComparisonTypes;\r\n }\r\n\r\n public override doesValueMatchFilter(value: string, filterValue: ComparisonValue, configurationValues: Record): boolean {\r\n let ratingValue: RatingValue | null;\r\n\r\n try {\r\n ratingValue = JSON.parse(value) as RatingValue;\r\n }\r\n catch {\r\n ratingValue = null;\r\n }\r\n\r\n const rating = ratingValue?.value ?? 0;\r\n\r\n if (filterValue.comparisonType === ComparisonType.IsBlank) {\r\n return rating === 0;\r\n }\r\n else if (filterValue.comparisonType === ComparisonType.IsNotBlank) {\r\n return rating !== 0;\r\n }\r\n else {\r\n return super.doesValueMatchFilter(rating.toString(), filterValue, configurationValues);\r\n }\r\n }\r\n}\r\n","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./registrationTemplateFieldComponents\")).EditComponent;\r\n});\r\n\r\n// Load the configuration component only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./registrationTemplateFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\n/**\r\n * The field type handler for the RegistrationTemplate field.\r\n */\r\nexport class RegistrationTemplateField extends FieldTypeBase {\r\n public override getTextValue(value: string, _configurationValues: Record): string {\r\n return value ?? \"\";\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n}\r\n","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./registrationTemplatesFieldComponents\")).EditComponent;\r\n});\r\n\r\n// Load the configuration component only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./registrationTemplatesFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\n/**\r\n * The field type handler for the RegistrationTemplates field.\r\n */\r\nexport class RegistrationTemplatesField extends FieldTypeBase {\r\n public override getTextValue(value: string, _configurationValues: Record): string {\r\n return value ?? \"\";\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n}\r\n","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\n\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\n\r\nexport const enum ConfigurationValueKey {\r\n RegistrationTemplate = \"registrationtemplate\",\r\n}\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./registrationInstanceFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./registrationInstanceFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\nexport class RegistrationInstanceField extends FieldTypeBase {\r\n public override getTextValue(value: string, _configurationValues: Record): string {\r\n return value ?? \"\";\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n}\r\n","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\n\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./registryEntryFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./registryEntryFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\nexport class RegistryEntryFieldType extends FieldTypeBase {\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n\r\n public override isFilterable(): boolean {\r\n return false;\r\n }\r\n}\r\n","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\nimport { Guid } from \"@Obsidian/Types\";\r\n\r\nexport const enum ConfigurationValueKey {\r\n Values = \"values\"\r\n}\r\n\r\nexport type ReminderTypeFieldItem = {\r\n guid: Guid\r\n name: string,\r\n entityTypeName: string\r\n};\r\n\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./reminderTypeFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./reminderTypeFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\n/**\r\n * The field type handler for the Reminder Type field.\r\n */\r\nexport class ReminderTypeFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, configurationValues: Record): string {\r\n if (value === undefined || value === null || value === \"\") {\r\n return \"\";\r\n }\r\n\r\n try {\r\n const values = JSON.parse(configurationValues[ConfigurationValueKey.Values] ?? \"[]\") as ReminderTypeFieldItem[];\r\n const selectedValues = values.filter(o => o.guid.toLowerCase() === value.toLowerCase());\r\n\r\n return selectedValues[0].name;\r\n }\r\n catch {\r\n return value;\r\n }\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n}\r\n","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { ListItemBag } from \"@Obsidian/ViewModels/Utility/listItemBag\";\r\nimport { ComparisonType } from \"@Obsidian/Enums/Reporting/comparisonType\";\r\nimport { binaryComparisonTypes, containsComparisonTypes } from \"@Obsidian/Core/Reporting/comparisonType\";\r\nimport { toNumberOrNull } from \"@Obsidian/Utility/numberUtils\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\n\r\nexport const enum ConfigurationValueKey {\r\n Values = \"values\",\r\n EnhancedSelection = \"enhancedselection\",\r\n RepeatColumns = \"repeatColumns\",\r\n}\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./reminderTypesFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./reminderTypesFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\n/**\r\n * The field type handler for the Reminder Types field.\r\n */\r\nexport class ReminderTypesFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, configurationValues: Record): string {\r\n if (value === undefined || value === null || value === \"\") {\r\n return \"\";\r\n }\r\n\r\n try {\r\n const values = JSON.parse(configurationValues[ConfigurationValueKey.Values] ?? \"[]\") as ListItemBag[];\r\n const userValues = value.split(\",\");\r\n const selectedValues = values.filter(o => userValues.includes(o.value ?? \"\"));\r\n\r\n return selectedValues.map(o => o.text).join(\", \");\r\n }\r\n catch {\r\n return value;\r\n }\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n\r\n public override getSupportedComparisonTypes(): ComparisonType {\r\n return binaryComparisonTypes | containsComparisonTypes;\r\n }\r\n}\r\n","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\n\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\nimport { ListItemBag } from \"@Obsidian/ViewModels/Utility/listItemBag\";\r\n\r\nexport const enum ConfigurationValueKey {\r\n Values = \"values\"\r\n}\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./remoteAuthsFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./remoteAuthsFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\n/**\r\n * The field type handler for the Remote Auths field.\r\n */\r\nexport class RemoteAuthsFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, configurationValues: Record): string {\r\n if (value === undefined || value === null || value === \"\") {\r\n return \"\";\r\n }\r\n\r\n try {\r\n const values = JSON.parse(configurationValues[ConfigurationValueKey.Values] ?? \"[]\") as ListItemBag[];\r\n const splitValues = value.split(\",\");\r\n const selectedValues = values.filter(o => splitValues.includes(o.value ?? \"\"));\r\n\r\n return selectedValues.map(o => o.text).join(\", \");\r\n }\r\n catch {\r\n return value;\r\n }\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n}","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\n\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\n\r\nexport const enum ConfigurationValueKey {\r\n ClientValues = \"values\"\r\n}\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./reportFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./reportFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\nexport class ReportFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, _configurationValues: Record): string {\r\n return value ?? \"\";\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n}","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\n\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./scheduleFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./scheduleFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\n/**\r\n * The field type handler for the Address field.\r\n */\r\nexport class ScheduleFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, _configurationValues: Record): string {\r\n return value ?? \"\";\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n\r\n public override isFilterable(): boolean {\r\n return false;\r\n }\r\n}","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./schedulesFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./schedulesFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\n/**\r\n * The field type handler for the Address field.\r\n */\r\nexport class SchedulesFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, _configurationValues: Record): string {\r\n return value ?? \"\";\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n\r\n public override isFilterable(): boolean {\r\n return false;\r\n }\r\n}\r\n","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\n\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\n\r\nexport const enum ConfigurationValueKey {\r\n Values = \"values\",\r\n}\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./secondaryAuthsFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./secondaryAuthsFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\nexport class SecondaryAuthsFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, _configurationValues: Record): string {\r\n return value ?? \"\";\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n}","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\n\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { ComparisonType } from \"@Obsidian/Enums/Reporting/comparisonType\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\nimport { ListItemBag } from \"@Obsidian/ViewModels/Utility/listItemBag\";\r\n\r\nexport const enum ConfigurationValueKey {\r\n Values = \"values\"\r\n}\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./securityRoleFieldComponents\")).EditComponent;\r\n});\r\n\r\n// Load the configuration component only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./securityRoleFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\n/**\r\n * The field type handler for the Security Role field.\r\n */\r\nexport class SecurityRoleFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, configurationValues: Record): string {\r\n if (value === \"\") {\r\n return \"\";\r\n }\r\n\r\n try {\r\n const values = JSON.parse(configurationValues[ConfigurationValueKey.Values] ?? \"[]\") as ListItemBag[];\r\n const userValues = value.split(\",\");\r\n const selectedValues = values.filter(v => userValues.includes(v.value ?? \"\"));\r\n return selectedValues.map(v => v.text)\r\n .map(v => v?.split(\":\").pop()) // just get the name of the note type\r\n .join(\", \");\r\n }\r\n catch {\r\n return value;\r\n }\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n\r\n public override getSupportedComparisonTypes(): ComparisonType {\r\n return ComparisonType.IsBlank | ComparisonType.IsNotBlank;\r\n }\r\n}","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { ComparisonValue } from \"@Obsidian/Types/Reporting/comparisonValue\";\r\nimport { ListItemBag } from \"@Obsidian/ViewModels/Utility/listItemBag\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\nimport { getStandardFilterComponent } from \"./utils\";\r\nimport { ComparisonType } from \"@Obsidian/Enums/Reporting/comparisonType\";\r\n\r\nexport const enum ConfigurationValueKey {\r\n Values = \"values\",\r\n FieldType = \"fieldtype\",\r\n RepeatColumns = \"repeatColumns\",\r\n\r\n /** Only used during editing of the field type configuration. */\r\n CustomValues = \"customValues\"\r\n}\r\n\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./singleSelectFieldComponents\")).EditComponent;\r\n});\r\n\r\n// Load the filter component only as needed.\r\nconst filterComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./singleSelectFieldComponents\")).FilterComponent;\r\n});\r\n\r\n// Load the configuration component only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./singleSelectFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\n/**\r\n * The field type handler for the SingleSelect field.\r\n */\r\nexport class SingleSelectFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, configurationValues: Record): string {\r\n if (value === \"\") {\r\n return \"\";\r\n }\r\n\r\n try {\r\n const values = JSON.parse(configurationValues[ConfigurationValueKey.Values] ?? \"[]\") as ListItemBag[];\r\n const selectedValues = values.filter(v => v.value === value);\r\n\r\n if (selectedValues.length >= 1) {\r\n return selectedValues[0].text ?? \"\";\r\n }\r\n else {\r\n return \"\";\r\n }\r\n }\r\n catch {\r\n return value;\r\n }\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n\r\n public override getFilterComponent(): Component {\r\n return getStandardFilterComponent(\"Is\", filterComponent);\r\n }\r\n\r\n public override getFilterValueText(value: ComparisonValue, configurationValues: Record): string {\r\n if (value.value === \"\") {\r\n return \"\";\r\n }\r\n\r\n try {\r\n const rawValues = value.value.split(\",\");\r\n const values = JSON.parse(configurationValues?.[ConfigurationValueKey.Values] ?? \"[]\") as ListItemBag[];\r\n const selectedValues = values.filter(v => rawValues.includes(v.value ?? \"\"));\r\n\r\n if (selectedValues.length >= 1) {\r\n return `'${selectedValues.map(v => v.value).join(\"' OR '\")}'`;\r\n }\r\n else {\r\n return \"\";\r\n }\r\n }\r\n catch {\r\n return value.value;\r\n }\r\n }\r\n\r\n public override doesValueMatchFilter(value: string, filterValue: ComparisonValue, _configurationValues: Record): boolean {\r\n const selectedValues = (filterValue.value ?? \"\").split(\",\").filter(v => v !== \"\").map(v => v.toLowerCase());\r\n let comparisonType = filterValue.comparisonType;\r\n\r\n if (comparisonType === ComparisonType.EqualTo) {\r\n // Treat EqualTo as if it were Contains.\r\n comparisonType = ComparisonType.Contains;\r\n }\r\n else if (comparisonType === ComparisonType.NotEqualTo) {\r\n // Treat NotEqualTo as if it were DoesNotContain.\r\n comparisonType = ComparisonType.DoesNotContain;\r\n }\r\n\r\n if (comparisonType === ComparisonType.IsBlank) {\r\n return value === \"\";\r\n }\r\n else if (comparisonType === ComparisonType.IsNotBlank) {\r\n return value !== \"\";\r\n }\r\n\r\n if (selectedValues.length > 0) {\r\n let matched = selectedValues.includes(value.toLowerCase());\r\n\r\n if (comparisonType === ComparisonType.DoesNotContain) {\r\n matched = !matched;\r\n }\r\n\r\n return matched;\r\n }\r\n\r\n return false;\r\n }\r\n}\r\n","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\n\r\nexport const enum ConfigurationValueKey {\r\n EnabledSlidingDateRangeTypes = \"enabledSlidingDateRangeTypes\",\r\n EnabledSlidingDateRangeUnits = \"enabledSlidingDateRangeUnits\",\r\n TimeUnitTypes = \"timeUnitTypes\",\r\n SlidingDateRangeTypes = \"slidingDateRangeTypes\"\r\n\r\n}\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./slidingDateRangeFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./slidingDateRangeFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\n/**\r\n * The field type handler for the Integer field.\r\n */\r\nexport class SlidingDateRangeFieldType extends FieldTypeBase {\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n}","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\n\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\n\r\nexport const enum ConfigurationValueKey {\r\n Name = \"name\",\r\n IconCssClass = \"iconcssclass\",\r\n Color = \"color\",\r\n TextTemplate = \"texttemplate\",\r\n BaseUrl = \"baseurl\",\r\n BaseUrlAliases = \"baseurlaliases\",\r\n}\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./socialMediaAccountFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./socialMediaAccountFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\n/**\r\n * The field type handler for the Social Media Account field.\r\n */\r\nexport class SocialMediaAccountFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, _configurationValues: Record): string {\r\n return value ?? \"\";\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n\r\n public override isFilterable(): boolean {\r\n return false;\r\n }\r\n}","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\nimport { ListItemBag } from \"@Obsidian/ViewModels/Utility/listItemBag\";\r\n\r\nexport const enum ConfigurationValueKey {\r\n Values = \"values\",\r\n ShorteningSitesOnly = \"shorteningSitesOnly\"\r\n}\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./siteFieldComponents\")).EditComponent;\r\n});\r\n\r\n// Load the configuration component only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./siteFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\n/**\r\n * The field type handler for the Campus field.\r\n */\r\nexport class SiteFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, configurationValues: Record): string {\r\n if (value === undefined || value === null || value === \"\") {\r\n return \"\";\r\n }\r\n\r\n try {\r\n const values = JSON.parse(configurationValues[ConfigurationValueKey.Values] ?? \"[]\") as ListItemBag[];\r\n const textValue = values.find(o => o.value === value)?.text ?? \"\";\r\n return textValue;\r\n }\r\n catch {\r\n return \"\";\r\n }\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n\r\n }\r\n}\r\n","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\n\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\nimport { ListItemBag } from \"@Obsidian/ViewModels/Utility/listItemBag\";\r\n\r\nexport const enum ConfigurationValueKey {\r\n Values = \"values\"\r\n}\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./stepProgramFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./stepProgramFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\nexport class StepProgramFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, configurationValues: Record): string {\r\n if (value === undefined || value === null || value === \"\") {\r\n return \"\";\r\n }\r\n\r\n try {\r\n const values = JSON.parse(configurationValues[ConfigurationValueKey.Values] ?? \"[]\") as ListItemBag[];\r\n const selectedValue = values.find(o => o.value == value)?.text ?? \"\";\r\n return selectedValue;\r\n }\r\n catch {\r\n return \"\";\r\n }\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n}","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\n\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./ssnFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./ssnFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\nexport class SSNFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, _configurationValues: Record): string {\r\n const strippedValue = value.replace(/[^0-9]/g, \"\");\r\n\r\n if (strippedValue.length !== 9) {\r\n return \"\";\r\n }\r\n\r\n return `xxx-xx-${value.substr(5, 4)}`;\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n\r\n public override isFilterable(): boolean {\r\n return false;\r\n }\r\n}\r\n","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\n\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./stepFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\nexport class StepFieldType extends FieldTypeBase {\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n}\r\n","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\n\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\nimport { ListItemBag } from \"@Obsidian/ViewModels/Utility/listItemBag\";\r\n\r\nexport const enum ConfigurationValueKey {\r\n DefaultStepProgramGuid = \"DefaultStepProgramGuid\"\r\n}\r\n\r\nexport type StepProgramStepStatus = {\r\n stepProgram: ListItemBag;\r\n stepStatus: ListItemBag;\r\n};\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./stepProgramStepStatusFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./stepProgramStepStatusFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\nexport class StepProgramStepStatusFieldType extends FieldTypeBase {\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n}","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\n\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\nimport { ListItemBag } from \"@Obsidian/ViewModels/Utility/listItemBag\";\r\n\r\nexport type StepProgramStepType = {\r\n stepProgram: ListItemBag;\r\n stepType: ListItemBag;\r\n};\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./stepProgramStepTypeFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./stepProgramStepTypeFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\nexport class StepProgramStepTypeFieldType extends FieldTypeBase {\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n}","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\nimport { ListItemBag } from \"@Obsidian/ViewModels/Utility/listItemBag\";\r\n\r\nexport const enum ConfigurationValueKey {\r\n Values = \"values\"\r\n}\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./streakTypeFieldComponents\")).EditComponent;\r\n});\r\n\r\n// Load the configuration component only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./streakTypeFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\n/**\r\n * The field type handler for the Achievement Type field.\r\n */\r\nexport class StreakTypeFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, configurationValues: Record): string {\r\n if (value === undefined || value === null || value === \"\") {\r\n return \"\";\r\n }\r\n\r\n try {\r\n const values = JSON.parse(configurationValues[ConfigurationValueKey.Values] ?? \"[]\") as ListItemBag[];\r\n const selectedValue = values.find(o => o.value === value);\r\n\r\n return selectedValue?.text ?? value;\r\n }\r\n catch {\r\n return value;\r\n }\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n}","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\n\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./structureContentEditorFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./structureContentEditorFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\nexport class StructureContentEditorFieldType extends FieldTypeBase {\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n\r\n public override isFilterable(): boolean {\r\n return false;\r\n }\r\n}\r\n","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\n\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { ComparisonType } from \"@Obsidian/Enums/Reporting/comparisonType\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\nimport { ListItemBag } from \"@Obsidian/ViewModels/Utility/listItemBag\";\r\n\r\nexport const enum ConfigurationValueKey {\r\n ClientValues = \"values\",\r\n IncludeInactive = \"includeInactive\"\r\n}\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./systemCommunicationFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./systemCommunicationFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\nexport class SystemCommunicationFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, configurationValues: Record): string {\r\n if (value === undefined || value === null || value === \"\") {\r\n return \"\";\r\n }\r\n\r\n try {\r\n const values = JSON.parse(configurationValues[ConfigurationValueKey.ClientValues] ?? \"[]\") as ListItemBag[];\r\n const selectedValue = values.find(o => o.value === value);\r\n\r\n return selectedValue?.text ?? value;\r\n }\r\n catch {\r\n return value;\r\n }\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n\r\n public override getSupportedComparisonTypes(): ComparisonType {\r\n return ComparisonType.IsBlank | ComparisonType.IsNotBlank;\r\n }\r\n}","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\n\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\nimport { ListItemBag } from \"@Obsidian/ViewModels/Utility/listItemBag\";\r\n\r\nexport const enum ConfigurationValueKey {\r\n ClientValues = \"values\"\r\n}\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./systemEmailFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./systemEmailFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\nexport class SystemEmailFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, configurationValues: Record): string {\r\n if (value === undefined || value === null || value === \"\") {\r\n return \"\";\r\n }\r\n\r\n try {\r\n const values = JSON.parse(configurationValues[ConfigurationValueKey.ClientValues] ?? \"[]\") as ListItemBag[];\r\n const selectedValue = values.find(o => o.value === value);\r\n\r\n return selectedValue?.text ?? value;\r\n }\r\n catch {\r\n return value;\r\n }\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n}\r\n","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\n\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\nimport { ListItemBag } from \"@Obsidian/ViewModels/Utility/listItemBag\";\r\n\r\nexport const enum ConfigurationValueKey {\r\n Values = \"values\",\r\n RepeatColumns = \"repeatColumns\",\r\n AllowMultiple = \"allowMultiple\",\r\n IncludeInactive = \"includeInactive\"\r\n}\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./systemPhoneNumberFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./systemPhoneNumberFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\nexport class SystemPhoneNumberFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, configurationValues: Record): string {\r\n if (value === undefined || value === null || value === \"\") {\r\n return \"\";\r\n }\r\n\r\n try {\r\n const values = JSON.parse(configurationValues[ConfigurationValueKey.Values] ?? \"[]\") as ListItemBag[];\r\n const userValues = value.split(\",\");\r\n const selectedValues = values.filter(o => userValues.includes(o.value ?? \"\"));\r\n\r\n return selectedValues.map(o => o.text).join(\", \");\r\n }\r\n catch {\r\n return value;\r\n }\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n}\r\n","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\n\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { ComparisonType } from \"@Obsidian/Enums/Reporting/comparisonType\";\r\nimport { stringComparisonTypes } from \"@Obsidian/Core/Reporting/comparisonType\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\n\r\nexport const enum ConfigurationValueKey {\r\n /** Contains \"True\" if the text field is designed for password entry. */\r\n IsPassword = \"ispassword\",\r\n\r\n /** The maximum number of characters allowed in the text entry field. */\r\n MaxCharacters = \"maxcharacters\",\r\n\r\n /** Contains \"True\" if the text field should show the character countdown. */\r\n ShowCountdown = \"showcountdown\",\r\n\r\n /** Contains \"True\" if the text field is designed for first name entry. */\r\n IsFirstName = \"isfirstname\",\r\n}\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./textFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\nexport class TextFieldType extends FieldTypeBase {\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n\r\n public override getSupportedComparisonTypes(): ComparisonType {\r\n return stringComparisonTypes;\r\n }\r\n}\r\n","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { ComparisonType } from \"@Obsidian/Enums/Reporting/comparisonType\";\r\nimport { dateComparisonTypes } from \"@Obsidian/Core/Reporting/comparisonType\";\r\nimport { toNumber } from \"@Obsidian/Utility/numberUtils\";\r\nimport { padLeft } from \"@Obsidian/Utility/stringUtils\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./timeFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./timeFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\n/**\r\n * The field type handler for the Time field.\r\n */\r\nexport class TimeFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, _configurationValues: Record): string {\r\n const values = /^(\\d+):(\\d+)/.exec(value ?? \"\");\r\n\r\n if (values === null || values.length < 3) {\r\n return \"\";\r\n }\r\n\r\n let hour = toNumber(values[1]);\r\n const minute = toNumber(values[2]);\r\n const meridiem = hour >= 12 ? \"PM\" : \"AM\";\r\n\r\n if (hour > 12) {\r\n hour -= 12;\r\n }\r\n\r\n return `${hour}:${padLeft(minute.toString(), 2, \"0\")} ${meridiem}`;\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n\r\n public override getSupportedComparisonTypes(): ComparisonType {\r\n return dateComparisonTypes;\r\n }\r\n}\r\n","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\n\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\n\r\nexport const enum ConfigurationValueKey {\r\n TimeZones = \"timezones\",\r\n}\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./timeZoneFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./timeZoneFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\n/**\r\n * The field type handler for the TimeZone field.\r\n */\r\nexport class TimeZoneFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, _configurationValues: Record): string {\r\n return value ?? \"\";\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n\r\n public override isFilterable(): boolean {\r\n return false;\r\n }\r\n}","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\nimport { Component } from \"vue\";\r\nimport { ComparisonType } from \"@Obsidian/Enums/Reporting/comparisonType\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\nimport { asBoolean } from \"@Obsidian/Utility/booleanUtils\";\r\nimport { getStandardFilterComponent } from \"./utils\";\r\nimport { ListItemBag } from \"@Obsidian/ViewModels/Utility/listItemBag\";\r\nimport { ComparisonValue } from \"@Obsidian/Types/Reporting/comparisonValue\";\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./universalItemPickerFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The filter component can be quite large, so load it only as needed.\r\nconst filterComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./universalItemPickerFieldComponents\")).FilterComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./universalItemFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\n/**\r\n * The field type handler for the Universal Item Picker field types.\r\n */\r\nexport class UniversalItemPickerFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string): string {\r\n try {\r\n const values = JSON.parse(value) as ListItemBag | ListItemBag[];\r\n\r\n if (Array.isArray(values)) {\r\n return values.map(v => v.text ?? \"\").join(\", \");\r\n }\r\n else {\r\n return values.text ?? \"\";\r\n }\r\n }\r\n catch {\r\n return \"\";\r\n }\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getFilterComponent(configurationValues: Record): Component | null {\r\n return getStandardFilterComponent(this.getSupportedComparisonTypes(configurationValues), filterComponent);\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n\r\n public override getSupportedComparisonTypes(configurationValues: Record): ComparisonType {\r\n if (asBoolean(configurationValues[\"isMultiple\"])) {\r\n return ComparisonType.Contains | ComparisonType.DoesNotContain | ComparisonType.IsBlank;\r\n }\r\n else {\r\n return ComparisonType.EqualTo | ComparisonType.NotEqualTo;\r\n }\r\n }\r\n\r\n public override getFilterValueText(value: ComparisonValue): string {\r\n try {\r\n const values = JSON.parse(value.value) as ListItemBag | ListItemBag[];\r\n\r\n if (Array.isArray(values)) {\r\n return values.map(v => `'${v.text ?? \"\"}'`).join(\" OR \");\r\n }\r\n else {\r\n return `'${values.text ?? \"\"}'`;\r\n }\r\n }\r\n catch {\r\n return \"\";\r\n }\r\n }\r\n}\r\n","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\nimport { Component } from \"vue\";\r\nimport { ComparisonType } from \"@Obsidian/Enums/Reporting/comparisonType\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\nimport { ListItemBag } from \"@Obsidian/ViewModels/Utility/listItemBag\";\r\nimport { getStandardFilterComponent } from \"./utils\";\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./universalItemSearchPickerFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The filter component can be quite large, so load it only as needed.\r\nconst filterComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./universalItemSearchPickerFieldComponents\")).FilterComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./universalItemFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\n/**\r\n * The field type handler for the Universal Tree Item Picker field types.\r\n */\r\nexport class UniversalItemSearchPickerFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string): string {\r\n try {\r\n const bag = JSON.parse(value) as ListItemBag;\r\n\r\n return bag.text ?? \"\";\r\n }\r\n catch {\r\n return \"\";\r\n }\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getFilterComponent(): Component | null {\r\n return getStandardFilterComponent(this.getSupportedComparisonTypes(), filterComponent);\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n\r\n public override getSupportedComparisonTypes(): ComparisonType {\r\n return ComparisonType.EqualTo | ComparisonType.NotEqualTo;\r\n }\r\n}\r\n","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\nimport { Component } from \"vue\";\r\nimport { ComparisonType } from \"@Obsidian/Enums/Reporting/comparisonType\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\nimport { asBoolean } from \"@Obsidian/Utility/booleanUtils\";\r\nimport { ListItemBag } from \"@Obsidian/ViewModels/Utility/listItemBag\";\r\nimport { getStandardFilterComponent } from \"./utils\";\r\nimport { ComparisonValue } from \"@Obsidian/Types/Reporting/comparisonValue\";\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./universalItemTreePickerFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The filter component can be quite large, so load it only as needed.\r\nconst filterComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./universalItemTreePickerFieldComponents\")).FilterComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./universalItemFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\n/**\r\n * The field type handler for the Universal Item Tree Picker field types.\r\n */\r\nexport class UniversalItemTreePickerFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string): string {\r\n try {\r\n const values = JSON.parse(value) as ListItemBag | ListItemBag[];\r\n\r\n if (Array.isArray(values)) {\r\n return values.map(v => v.text ?? \"\").join(\", \");\r\n }\r\n else {\r\n return values.text ?? \"\";\r\n }\r\n }\r\n catch {\r\n return \"\";\r\n }\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getFilterComponent(configurationValues: Record): Component | null {\r\n return getStandardFilterComponent(this.getSupportedComparisonTypes(configurationValues), filterComponent);\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n\r\n public override getSupportedComparisonTypes(configurationValues: Record): ComparisonType {\r\n if (asBoolean(configurationValues[\"isMultiple\"]) === true) {\r\n return ComparisonType.Contains | ComparisonType.DoesNotContain | ComparisonType.IsBlank;\r\n }\r\n else {\r\n return ComparisonType.EqualTo | ComparisonType.NotEqualTo;\r\n }\r\n }\r\n\r\n public override getFilterValueText(value: ComparisonValue): string {\r\n try {\r\n const values = JSON.parse(value.value) as ListItemBag | ListItemBag[];\r\n\r\n if (Array.isArray(values)) {\r\n return values.map(v => `'${v.text ?? \"\"}'`).join(\" OR \");\r\n }\r\n else {\r\n return `'${values.text ?? \"\"}'`;\r\n }\r\n }\r\n catch {\r\n return \"\";\r\n }\r\n }\r\n}\r\n","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { ComparisonType } from \"@Obsidian/Enums/Reporting/comparisonType\";\r\nimport { stringComparisonTypes } from \"@Obsidian/Core/Reporting/comparisonType\";\r\nimport { asBoolean } from \"@Obsidian/Utility/booleanUtils\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\nimport { escapeHtml } from \"@Obsidian/Utility/stringUtils\";\r\n\r\nexport const enum ConfigurationValueKey {\r\n ShouldRequireTrailingForwardSlash = \"ShouldRequireTrailingForwardSlash\",\r\n ShouldAlwaysShowCondensed = \"ShouldAlwaysShowCondensed\"\r\n}\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./urlLinkFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./urlLinkFieldComponents\")).ConfigurationComponent;\r\n});\r\n/**\r\n * The field type handler for the Email field.\r\n */\r\nexport class UrlLinkFieldType extends FieldTypeBase {\r\n public override getHtmlValue(value: string, configurationValues: Record, isEscaped: boolean = false): string {\r\n const shouldAlwaysShowCondensed = asBoolean(configurationValues[ConfigurationValueKey.ShouldAlwaysShowCondensed]);\r\n const textValue = this.getTextValue(value, configurationValues);\r\n\r\n let htmlValue = \"\";\r\n if (textValue) {\r\n if (!shouldAlwaysShowCondensed) {\r\n htmlValue = `${textValue}`;\r\n }\r\n else {\r\n htmlValue = textValue;\r\n }\r\n }\r\n\r\n if (isEscaped) {\r\n return escapeHtml(htmlValue);\r\n }\r\n\r\n return htmlValue;\r\n }\r\n\r\n public override getTextValue(value: string, configurationValues: Record): string {\r\n const shouldAlwaysShowCondensed = asBoolean(configurationValues[ConfigurationValueKey.ShouldAlwaysShowCondensed]);\r\n if (shouldAlwaysShowCondensed) {\r\n return `${value}`;\r\n }\r\n\r\n return value;\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n\r\n public override getSupportedComparisonTypes(): ComparisonType {\r\n return stringComparisonTypes;\r\n }\r\n}\r\n","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\n\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\n\r\nexport const enum ConfigurationValueKey {\r\n HideFilterMode = \"hidefiltermode\",\r\n ComparisonTypes = \"comparisontypes\",\r\n Values = \"values\"\r\n}\r\n\r\nexport const enum ConfigurationPropertyKey {\r\n ComparisonTypesOptions = \"comparisontypesoptions\",\r\n}\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./valueFilterFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./valueFilterFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\nexport class ValueFilterFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, _configurationValues: Record): string {\r\n return value ?? \"\";\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n}","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\nimport { ListItemBag } from \"@Obsidian/ViewModels/Utility/listItemBag\";\r\n\r\nexport const enum ConfigurationValueKey {\r\n Values = \"values\",\r\n ValuePrompt = \"valueprompt\",\r\n AllowHtml = \"allowhtml\",\r\n\r\n // Only used during editing of the field type configuration.\r\n CustomValues = \"customvalues\",\r\n DefinedType = \"definedtype\"\r\n}\r\n\r\nexport const enum ConfigurationPropertyKey {\r\n DefinedTypes = \"definedTypes\"\r\n}\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./valueListFieldComponents\")).EditComponent;\r\n});\r\n\r\n// Load the configuration component as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./valueListFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\n/**\r\n * The field type handler for the Value List field.\r\n */\r\nexport class ValueListFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, configurationValues: Record): string {\r\n try {\r\n const clientValues = JSON.parse(value ?? \"[]\") as string[];\r\n const configuredValues = JSON.parse(configurationValues[ConfigurationValueKey.Values] ?? \"[]\") as ListItemBag[];\r\n const values: string[] = [];\r\n\r\n for (const clientValue of clientValues) {\r\n if (configuredValues.length > 0) {\r\n const configuredValue = configuredValues.find(v => v.value === clientValue);\r\n\r\n if (configuredValue) {\r\n values.push(configuredValue.text ?? \"\");\r\n }\r\n }\r\n else {\r\n values.push(clientValue);\r\n }\r\n }\r\n\r\n return values.join(\", \");\r\n }\r\n catch {\r\n return \"\";\r\n }\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n\r\n public override isFilterable(): boolean {\r\n return false;\r\n }\r\n}\r\n","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\n\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./videoUrlFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./videoUrlFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\nexport class VideoUrlFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, _configurationValues: Record): string {\r\n return value ?? \"\";\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n}","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\n\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\nimport { escapeHtml } from \"@Obsidian/Utility/stringUtils\";\r\n\r\nexport const enum ConfigurationValueKey {\r\n FileName = \"fileName\",\r\n MimeType = \"mimeType\",\r\n FilePath = \"filePath\",\r\n FileGuid = \"fileGuid\",\r\n BinaryFileType = \"binaryFileType\"\r\n}\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./videoFileFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./videoFileFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\nexport class VideoFileFieldType extends FieldTypeBase {\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n\r\n public override getHtmlValue(value: string, configurationValues: Record, isEscaped: boolean = false): string {\r\n const filePath = configurationValues[ConfigurationValueKey.FilePath];\r\n const mimeType = configurationValues[ConfigurationValueKey.MimeType];\r\n const fileGuid = configurationValues[ConfigurationValueKey.FileGuid];\r\n\r\n const html = `\r\n \r\n\r\n `;\r\n\r\n if (isEscaped) {\r\n return escapeHtml(html);\r\n }\r\n\r\n return html;\r\n }\r\n\r\n public override getCondensedHtmlValue(value: string, configurationValues: Record, isEscaped: boolean = false): string {\r\n const fileGuid = configurationValues[ConfigurationValueKey.FileGuid];\r\n const html = `${value}`;\r\n\r\n if (isEscaped) {\r\n return escapeHtml(html);\r\n }\r\n\r\n return html;\r\n }\r\n}\r\n","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\n\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\n\r\nexport const enum ConfigurationValueKey {\r\n WorkflowTypeGuid = \"workflowtype\"\r\n}\r\n\r\nexport const enum ConfigurationPropertyKey {\r\n WorkflowTypeOptions = \"workflowtypeoptions\",\r\n}\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./workflowFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./workflowFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\nexport class WorkflowFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, _configurationValues: Record): string {\r\n return value ?? \"\";\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n}\r\n","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\n\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\n\r\nexport const enum ConfigurationValueKey {\r\n WorkflowType = \"WorkflowType\",\r\n Values = \"values\"\r\n}\r\n\r\nexport const enum ConfigurationPropertyKey {\r\n WorkflowTypes = \"WorkflowTypes\",\r\n}\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./workflowActivityFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./workflowActivityFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\nexport class WorkflowActivityFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, _configurationValues: Record): string {\r\n return value ?? \"\";\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n}\r\n","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\n\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\n\r\nexport const enum ConfigurationValueKey {\r\n AttributeFieldTypes = \"attributefieldtypes\",\r\n ClientValues = \"values\",\r\n}\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./workflowAttributeFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./workflowAttributeFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\nexport class WorkflowAttributeFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, _configurationValues: Record): string {\r\n return value ?? \"\";\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n}\r\n","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\n\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./workflowTypeFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./workflowTypeFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\n/**\r\n * The field type handler for the Workflow Type field.\r\n */\r\nexport class WorkflowTypeFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, _configurationValues: Record): string {\r\n return value ?? \"\";\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n\r\n public override isFilterable(): boolean {\r\n return false;\r\n }\r\n}\r\n","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\n\r\nimport { Component } from \"vue\";\r\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\r\nimport { FieldTypeBase } from \"./fieldType\";\r\n\r\n// The edit component can be quite large, so load it only as needed.\r\nconst editComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./workflowTypesFieldComponents\")).EditComponent;\r\n});\r\n\r\n// The configuration component can be quite large, so load it only as needed.\r\nconst configurationComponent = defineAsyncComponent(async () => {\r\n return (await import(\"./workflowTypesFieldComponents\")).ConfigurationComponent;\r\n});\r\n\r\n/**\r\n * The field type handler for the Workflow Types field.\r\n */\r\nexport class WorkflowTypesFieldType extends FieldTypeBase {\r\n public override getTextValue(value: string, _configurationValues: Record): string {\r\n return value ?? \"\";\r\n }\r\n\r\n public override getEditComponent(): Component {\r\n return editComponent;\r\n }\r\n\r\n public override getConfigurationComponent(): Component {\r\n return configurationComponent;\r\n }\r\n\r\n public override isFilterable(): boolean {\r\n return false;\r\n }\r\n}\r\n","// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\nimport { FieldType as FieldTypeGuids } from \"@Obsidian/SystemGuids/fieldType\";\r\nimport { registerFieldType } from \"@Obsidian/Utility/fieldTypes\";\r\n\r\nexport { ConfigurationValues, getFieldEditorProps } from \"./utils\";\r\n\r\n/*\r\n * Define the standard field types in Rock.\r\n */\r\n\r\nimport { AchievementTypeFieldType } from \"./achievementTypeField.partial\";\r\nregisterFieldType(FieldTypeGuids.AchievementType, new AchievementTypeFieldType());\r\n\r\nimport { AddressFieldType } from \"./addressField.partial\";\r\nregisterFieldType(FieldTypeGuids.Address, new AddressFieldType());\r\n\r\nimport { AssessmentTypesFieldType } from \"./assessmentTypesField.partial\";\r\nregisterFieldType(FieldTypeGuids.AssessmentType, new AssessmentTypesFieldType());\r\n\r\nimport { AIProviderFieldType } from \"./aiProviderField.partial\";\r\nregisterFieldType(FieldTypeGuids.AiProvider, new AIProviderFieldType());\r\n\r\nimport { AssetFieldType } from \"./assetField.partial\";\r\nregisterFieldType(FieldTypeGuids.Asset, new AssetFieldType());\r\n\r\nimport { AssetStorageProviderFieldType } from \"./assetStorageProviderField.partial\";\r\nregisterFieldType(FieldTypeGuids.AssetStorageProvider, new AssetStorageProviderFieldType());\r\n\r\nimport { AttendanceFieldType } from \"./attendanceField.partial\";\r\nregisterFieldType(FieldTypeGuids.Attendance, new AttendanceFieldType());\r\n\r\nimport { AttributeFieldType } from \"./attributeField.partial\";\r\nregisterFieldType(FieldTypeGuids.Attribute, new AttributeFieldType());\r\n\r\nimport { AudioFileFieldType } from \"./audioFileField.partial\";\r\nregisterFieldType(FieldTypeGuids.AudioFile, new AudioFileFieldType());\r\n\r\nimport { AudioUrlFieldType } from \"./audioUrlField.partial\";\r\nregisterFieldType(FieldTypeGuids.AudioUrl, new AudioUrlFieldType());\r\n\r\nimport { BadgesFieldType } from \"./badgesField.partial\";\r\nregisterFieldType(FieldTypeGuids.Badges, new BadgesFieldType());\r\n\r\nimport { BackgroundCheckFieldType } from \"./backgroundCheckField.partial\";\r\nregisterFieldType(FieldTypeGuids.Backgroundcheck, new BackgroundCheckFieldType());\r\n\r\nimport { BenevolenceRequestFieldType } from \"./benevolenceRequestField.partial\";\r\nregisterFieldType(FieldTypeGuids.BenevolenceRequest, new BenevolenceRequestFieldType());\r\n\r\nimport { BenevolenceTypeFieldType } from \"./benevolenceTypeField.partial\";\r\nregisterFieldType(FieldTypeGuids.BenevolenceType, new BenevolenceTypeFieldType());\r\n\r\nimport { BinaryFileFieldType } from \"./binaryFileField.partial\";\r\nregisterFieldType(FieldTypeGuids.BinaryFile, new BinaryFileFieldType());\r\n\r\nimport { BinaryFileTypeFieldType } from \"./binaryFileTypeField.partial\";\r\nregisterFieldType(FieldTypeGuids.BinaryFileType, new BinaryFileTypeFieldType());\r\n\r\nimport { BinaryFileTypesFieldType } from \"./binaryFileTypesField.partial\";\r\nregisterFieldType(FieldTypeGuids.BinaryFileTypes, new BinaryFileTypesFieldType());\r\n\r\nimport { BlockTemplateFieldType } from \"./blockTemplateField.partial\";\r\nregisterFieldType(FieldTypeGuids.BlockTemplate, new BlockTemplateFieldType());\r\n\r\nimport { BooleanFieldType } from \"./booleanField.partial\";\r\nregisterFieldType(FieldTypeGuids.Boolean, new BooleanFieldType());\r\n\r\nimport { CampusFieldType } from \"./campusField.partial\";\r\nregisterFieldType(FieldTypeGuids.Campus, new CampusFieldType());\r\n\r\nimport { CampusesFieldType } from \"./campusesField.partial\";\r\nregisterFieldType(FieldTypeGuids.Campuses, new CampusesFieldType());\r\n\r\nimport { CaptchaFieldType } from \"./captchaField.partial\";\r\nregisterFieldType(FieldTypeGuids.Captcha, new CaptchaFieldType());\r\n\r\nimport { CategoriesFieldType } from \"./categoriesField.partial\";\r\nregisterFieldType(FieldTypeGuids.Categories, new CategoriesFieldType());\r\n\r\nimport { CategoryFieldType } from \"./categoryField.partial\";\r\nregisterFieldType(FieldTypeGuids.Category, new CategoryFieldType());\r\n\r\nimport { CategorizedDefinedValueField } from \"./categorizedDefinedValueField.partial\";\r\nregisterFieldType(FieldTypeGuids.DefinedValueCategorized, new CategorizedDefinedValueField());\r\n\r\nimport { CheckinConfigurationTypeField } from \"./checkinConfigurationTypeField.partial\";\r\nregisterFieldType(FieldTypeGuids.CheckInConfigurationType, new CheckinConfigurationTypeField());\r\n\r\nimport { CheckListFieldType } from \"./checkListField.partial\";\r\nregisterFieldType(FieldTypeGuids.CheckList, new CheckListFieldType());\r\n\r\nimport { CodeEditorFieldType } from \"./codeEditorField.partial\";\r\nregisterFieldType(FieldTypeGuids.CodeEditor, new CodeEditorFieldType());\r\n\r\nimport { ColorFieldType } from \"./colorField.partial\";\r\nregisterFieldType(FieldTypeGuids.Color, new ColorFieldType());\r\n\r\nimport { ColorSelectorFieldType } from \"./colorSelectorField.partial\";\r\nregisterFieldType(FieldTypeGuids.ColorSelector, new ColorSelectorFieldType());\r\n\r\nimport { ConditionalScaleFieldType } from \"./conditionalScaleField.partial\";\r\nregisterFieldType(FieldTypeGuids.ConditionalScale, new ConditionalScaleFieldType());\r\n\r\nimport { ConnectionOpportunityFieldType } from \"./connectionOpportunityField.partial\";\r\nregisterFieldType(FieldTypeGuids.ConnectionOpportunity, new ConnectionOpportunityFieldType());\r\n\r\nimport { ConnectionTypeField } from \"./connectionTypeField.partial\";\r\nregisterFieldType(FieldTypeGuids.ConnectionType, new ConnectionTypeField());\r\n\r\nimport { ConnectionTypesField } from \"./connectionTypesField.partial\";\r\nregisterFieldType(FieldTypeGuids.ConnectionTypes, new ConnectionTypesField());\r\n\r\nimport { ConnectionStateFieldType } from \"./connectionStateField.partial\";\r\nregisterFieldType(FieldTypeGuids.ConnectionState, new ConnectionStateFieldType());\r\n\r\nimport { ConnectionStatusFieldType } from \"./connectionStatusField.partial\";\r\nregisterFieldType(FieldTypeGuids.ConnectionStatus, new ConnectionStatusFieldType());\r\n\r\nimport { ContentChannelFieldType } from \"./contentChannelField.partial\";\r\nregisterFieldType(FieldTypeGuids.ContentChannel, new ContentChannelFieldType());\r\n\r\nimport { ContentChannelItemFieldType } from \"./contentChannelItemField.partial\";\r\nregisterFieldType(FieldTypeGuids.ContentChannelItem, new ContentChannelItemFieldType());\r\n\r\nimport { ContentChannelTypeFieldType } from \"./contentChannelTypeField.partial\";\r\nregisterFieldType(FieldTypeGuids.ContentChannelType, new ContentChannelTypeFieldType());\r\n\r\nimport { ContentChannelTypesFieldType } from \"./contentChannelTypesField.partial\";\r\nregisterFieldType(FieldTypeGuids.ContentChannelTypes, new ContentChannelTypesFieldType());\r\n\r\nimport { ContentChannelsFieldType } from \"./contentChannelsField.partial\";\r\nregisterFieldType(FieldTypeGuids.ContentChannels, new ContentChannelsFieldType());\r\n\r\nimport { ConnectionActivityTypeField } from \"./connectionActivityTypeField.partial\";\r\nregisterFieldType(FieldTypeGuids.ConnectionActivityType, new ConnectionActivityTypeField());\r\n\r\nimport { ConnectionRequestFieldType } from \"./connectionRequestField.partial\";\r\nregisterFieldType(FieldTypeGuids.ConnectionRequest, new ConnectionRequestFieldType());\r\n\r\nimport { ConnectionRequestActivityFieldType } from \"./connectionRequestActivityField.partial\";\r\nregisterFieldType(FieldTypeGuids.ConnectionRequestActivity, new ConnectionRequestActivityFieldType());\r\n\r\nimport { CommunicationPreferenceField } from \"./communicationPreferenceField.partial\";\r\nregisterFieldType(FieldTypeGuids.CommunicationPreferenceType, new CommunicationPreferenceField());\r\n\r\nimport { CommunicationTemplateFieldType } from \"./communicationTemplateField.partial\";\r\nregisterFieldType(FieldTypeGuids.CommunicationTemplate, new CommunicationTemplateFieldType());\r\n\r\nimport { ComparisonFieldType } from \"./comparisonField.partial\";\r\nregisterFieldType(FieldTypeGuids.Comparison, new ComparisonFieldType());\r\n\r\nimport { ComponentsFieldType } from \"./componentsField.partial\";\r\nregisterFieldType(FieldTypeGuids.Components, new ComponentsFieldType());\r\n\r\nimport { ComponentFieldType } from \"./componentField.partial\";\r\nregisterFieldType(FieldTypeGuids.Component, new ComponentFieldType());\r\n\r\nimport { CurrencyFieldType } from \"./currencyField.partial\";\r\nregisterFieldType(FieldTypeGuids.Currency, new CurrencyFieldType());\r\n\r\nimport { DataEntryRequirementLevelFieldType } from \"./dataEntryRequirementLevelField.partial\";\r\nregisterFieldType(FieldTypeGuids.DataEntryRequirementLevel, new DataEntryRequirementLevelFieldType());\r\n\r\nimport { DataViewFieldType } from \"./dataViewField.partial\";\r\nregisterFieldType(FieldTypeGuids.DataView, new DataViewFieldType());\r\n\r\nimport { DataViewsFieldType } from \"./dataViewsField.partial\";\r\nregisterFieldType(FieldTypeGuids.Dataviews, new DataViewsFieldType());\r\n\r\nimport { DateFieldType } from \"./dateField.partial\";\r\nregisterFieldType(FieldTypeGuids.Date, new DateFieldType());\r\n\r\nimport { DateRangeFieldType } from \"./dateRangeField.partial\";\r\nregisterFieldType(FieldTypeGuids.DateRange, new DateRangeFieldType());\r\n\r\nimport { DateTimeFieldType } from \"./dateTimeField.partial\";\r\nregisterFieldType(FieldTypeGuids.DateTime, new DateTimeFieldType());\r\n\r\nimport { DayOfWeekFieldType } from \"./dayOfWeekField.partial\";\r\nregisterFieldType(FieldTypeGuids.DayOfWeek, new DayOfWeekFieldType());\r\n\r\nimport { DaysOfWeekFieldType } from \"./daysOfWeekField.partial\";\r\nregisterFieldType(FieldTypeGuids.DaysOfWeek, new DaysOfWeekFieldType());\r\n\r\nimport { DecimalFieldType } from \"./decimalField.partial\";\r\nregisterFieldType(FieldTypeGuids.Decimal, new DecimalFieldType());\r\n\r\nimport { DecimalRangeFieldType } from \"./decimalRangeField.partial\";\r\nregisterFieldType(FieldTypeGuids.DecimalRange, new DecimalRangeFieldType());\r\n\r\nimport { DefinedTypeFieldType } from \"./definedTypeField.partial\";\r\nregisterFieldType(FieldTypeGuids.DefinedType, new DefinedTypeFieldType());\r\n\r\nimport { DefinedValueFieldType } from \"./definedValueField.partial\";\r\nregisterFieldType(FieldTypeGuids.DefinedValue, new DefinedValueFieldType());\r\n\r\nimport { DefinedValueRangeFieldType } from \"./definedValueRangeField.partial\";\r\nregisterFieldType(FieldTypeGuids.DefinedValueRange, new DefinedValueRangeFieldType());\r\n\r\nimport { DocumentTypeFieldType } from \"./documentTypeField.partial\";\r\nregisterFieldType(FieldTypeGuids.DocumentType, new DocumentTypeFieldType());\r\n\r\nimport { EmailFieldType } from \"./emailField.partial\";\r\nregisterFieldType(FieldTypeGuids.Email, new EmailFieldType());\r\n\r\nimport { EncryptedTextFieldType } from \"./encryptedTextField.partial\";\r\nregisterFieldType(FieldTypeGuids.EncryptedText, new EncryptedTextFieldType());\r\n\r\nimport { EntityFieldType } from \"./entityField.partial\";\r\nregisterFieldType(FieldTypeGuids.Entity, new EntityFieldType());\r\n\r\nimport { EntityTypeFieldType } from \"./entityTypeField.partial\";\r\nregisterFieldType(FieldTypeGuids.Entitytype, new EntityTypeFieldType());\r\n\r\nimport { EventCalendarFieldType } from \"./eventCalendarField.partial\";\r\nregisterFieldType(FieldTypeGuids.EventCalendar, new EventCalendarFieldType());\r\n\r\nimport { EventItemFieldType } from \"./eventItemField.partial\";\r\nregisterFieldType(FieldTypeGuids.EventItem, new EventItemFieldType());\r\n\r\nimport { FinancialAccountFieldType } from \"./financialAccountField.partial\";\r\nregisterFieldType(FieldTypeGuids.FinancialAccount, new FinancialAccountFieldType());\r\n\r\nimport { FinancialAccountsFieldType } from \"./financialAccountsField.partial\";\r\nregisterFieldType(FieldTypeGuids.FinancialAccounts, new FinancialAccountsFieldType());\r\n\r\nimport { FinancialGatewayFieldType } from \"./financialGatewayField.partial\";\r\nregisterFieldType(FieldTypeGuids.FinancialGateway, new FinancialGatewayFieldType());\r\n\r\nimport { FinancialStatementTemplateFieldType } from \"./financialStatementTemplateField.partial\";\r\nregisterFieldType(FieldTypeGuids.FinancialStatementTemplate, new FinancialStatementTemplateFieldType());\r\n\r\nimport { FileFieldType } from \"./fileField.partial\";\r\nregisterFieldType(FieldTypeGuids.File, new FileFieldType());\r\n\r\nimport { GenderFieldType } from \"./genderField.partial\";\r\nregisterFieldType(FieldTypeGuids.Gender, new GenderFieldType());\r\n\r\nimport { GroupAndRoleFieldType } from \"./groupAndRoleField.partial\";\r\nregisterFieldType(FieldTypeGuids.GroupAndRole, new GroupAndRoleFieldType());\r\n\r\nimport { GroupFieldType } from \"./groupField.partial\";\r\nregisterFieldType(FieldTypeGuids.Group, new GroupFieldType());\r\n\r\nimport { GroupLocationTypeFieldType } from \"./groupLocationTypeField.partial\";\r\nregisterFieldType(FieldTypeGuids.GroupLocationType, new GroupLocationTypeFieldType());\r\n\r\nimport { GroupRoleFieldType } from \"./groupRoleField.partial\";\r\nregisterFieldType(FieldTypeGuids.GroupRole, new GroupRoleFieldType());\r\n\r\nimport { GroupMemberFieldType } from \"./groupMemberField.partial\";\r\nregisterFieldType(FieldTypeGuids.GroupMember, new GroupMemberFieldType());\r\n\r\nimport { GroupMemberRequirementFieldType } from \"./groupMemberRequirementField.partial\";\r\nregisterFieldType(FieldTypeGuids.GroupMemberRequirement, new GroupMemberRequirementFieldType());\r\n\r\nimport { GroupTypeField } from \"./groupTypeField.partial\";\r\nregisterFieldType(FieldTypeGuids.GroupType, new GroupTypeField());\r\n\r\nimport { GroupTypesFieldType } from \"./groupTypesField.partial\";\r\nregisterFieldType(FieldTypeGuids.GroupTypes, new GroupTypesFieldType());\r\n\r\nimport { GroupTypeGroupField } from \"./groupTypeGroupField.partial\";\r\nregisterFieldType(FieldTypeGuids.GroupTypeGroup, new GroupTypeGroupField());\r\n\r\nimport { HtmlFieldType } from \"./htmlField.partial\";\r\nregisterFieldType(FieldTypeGuids.Html, new HtmlFieldType());\r\n\r\nimport { ImageFieldType } from \"./imageField.partial\";\r\nregisterFieldType(FieldTypeGuids.Image, new ImageFieldType());\r\n\r\nimport { IntegerFieldType } from \"./integerField.partial\";\r\nregisterFieldType(FieldTypeGuids.Integer, new IntegerFieldType());\r\n\r\nimport { IntegerRangeFieldType } from \"./integerRangeField.partial\";\r\nregisterFieldType(FieldTypeGuids.IntegerRange, new IntegerRangeFieldType());\r\n\r\nimport { InteractionChannelFieldType } from \"./interactionChannelField.partial\";\r\nregisterFieldType(FieldTypeGuids.InteractionChannel, new InteractionChannelFieldType());\r\n\r\nimport { InteractionChannelsFieldType } from \"./interactionChannelsField.partial\";\r\nregisterFieldType(FieldTypeGuids.InteractionChannels, new InteractionChannelsFieldType());\r\n\r\nimport { InteractionChannelInteractionComponentFieldType } from \"./interactionChannelInteractionComponentField.partial\";\r\nregisterFieldType(FieldTypeGuids.InteractionChannelInteractionComponent, new InteractionChannelInteractionComponentFieldType());\r\n\r\nimport { KeyValueListFieldType } from \"./keyValueListField.partial\";\r\nregisterFieldType(FieldTypeGuids.KeyValueList, new KeyValueListFieldType());\r\n\r\nimport { LabelFieldType } from \"./labelField.partial\";\r\nregisterFieldType(FieldTypeGuids.Label, new LabelFieldType());\r\n\r\nimport { LavaFieldType } from \"./lavaField.partial\";\r\nregisterFieldType(FieldTypeGuids.Lava, new LavaFieldType());\r\n\r\nimport { LavaCommandsFieldType } from \"./lavaCommandsField.partial\";\r\nregisterFieldType(FieldTypeGuids.LavaCommands, new LavaCommandsFieldType());\r\n\r\nimport { LocationFieldType } from \"./locationField.partial\";\r\nregisterFieldType(FieldTypeGuids.Location, new LocationFieldType());\r\n\r\nimport { LocationListFieldType } from \"./locationListField.partial\";\r\nregisterFieldType(FieldTypeGuids.LocationList, new LocationListFieldType());\r\n\r\nimport { MarkdownFieldType } from \"./markdownField.partial\";\r\nregisterFieldType(FieldTypeGuids.Markdown, new MarkdownFieldType());\r\n\r\nimport { MatrixFieldType } from \"./matrixField.partial\";\r\nregisterFieldType(FieldTypeGuids.Matrix, new MatrixFieldType());\r\n\r\nimport { MediaElementFieldType } from \"./mediaElementField.partial\";\r\nregisterFieldType(FieldTypeGuids.MediaElement, new MediaElementFieldType());\r\n\r\nimport { MediaSelectorFieldType } from \"./mediaSelectorField.partial\";\r\nregisterFieldType(FieldTypeGuids.MediaSelector, new MediaSelectorFieldType());\r\n\r\nimport { MediaWatchFieldType } from \"./mediaWatchField.partial\";\r\nregisterFieldType(FieldTypeGuids.MediaWatch, new MediaWatchFieldType());\r\n\r\nimport { MemoFieldType } from \"./memoField.partial\";\r\nregisterFieldType(FieldTypeGuids.Memo, new MemoFieldType());\r\n\r\nimport { MergeTemplateFieldType } from \"./mergeTemplateField.partial\";\r\nregisterFieldType(FieldTypeGuids.MergeTemplate, new MergeTemplateFieldType());\r\n\r\nimport { MetricCategoriesFieldType } from \"./metricCategoriesField.partial\";\r\nregisterFieldType(FieldTypeGuids.MetricCategories, new MetricCategoriesFieldType());\r\n\r\nimport { MetricFieldType } from \"./metricField.partial\";\r\nregisterFieldType(FieldTypeGuids.Metric, new MetricFieldType());\r\n\r\nimport { MobileNavigationActionFieldType } from \"./mobileNavigationActionField.partial\";\r\nregisterFieldType(FieldTypeGuids.MobileNavigationAction, new MobileNavigationActionFieldType());\r\n\r\nimport { MonthDayFieldType } from \"./monthDayField.partial\";\r\nregisterFieldType(FieldTypeGuids.MonthDay, new MonthDayFieldType());\r\n\r\nimport { MultiSelectFieldType } from \"./multiSelectField.partial\";\r\nregisterFieldType(FieldTypeGuids.MultiSelect, new MultiSelectFieldType());\r\n\r\nimport { NoteTypeField } from \"./noteTypeField.partial\";\r\nregisterFieldType(FieldTypeGuids.NoteType, new NoteTypeField());\r\n\r\nimport { NoteTypesField } from \"./noteTypesField.partial\";\r\nregisterFieldType(FieldTypeGuids.NoteTypes, new NoteTypesField());\r\n\r\nimport { PersistedDatasetField } from \"./persistedDatasetField.partial\";\r\nregisterFieldType(FieldTypeGuids.PersistedDataset, new PersistedDatasetField());\r\n\r\nimport { PhoneNumberFieldType } from \"./phoneNumberField.partial\";\r\nregisterFieldType(FieldTypeGuids.PhoneNumber, new PhoneNumberFieldType());\r\n\r\nimport { PageReferenceFieldType } from \"./pageReferenceField.partial\";\r\nregisterFieldType(FieldTypeGuids.PageReference, new PageReferenceFieldType());\r\n\r\nimport { PersonFieldType } from \"./personField.partial\";\r\nregisterFieldType(FieldTypeGuids.Person, new PersonFieldType());\r\n\r\nimport { PrayerRequestFieldType } from \"./prayerRequestField.partial\";\r\nregisterFieldType(FieldTypeGuids.PrayerRequest, new PrayerRequestFieldType());\r\n\r\nimport { RangeSliderFieldType } from \"./rangeSliderField.partial\";\r\nregisterFieldType(FieldTypeGuids.RangeSlider, new RangeSliderFieldType());\r\n\r\nimport { RatingFieldType } from \"./ratingField.partial\";\r\nregisterFieldType(FieldTypeGuids.Rating, new RatingFieldType());\r\n\r\nimport { RegistrationTemplateField } from \"./registrationTemplateField.partial\";\r\nregisterFieldType(FieldTypeGuids.RegistrationTemplate, new RegistrationTemplateField());\r\n\r\nimport { RegistrationTemplatesField } from \"./registrationTemplatesField.partial\";\r\nregisterFieldType(FieldTypeGuids.RegistrationTemplates, new RegistrationTemplatesField());\r\n\r\nimport { RegistrationInstanceField } from \"./registrationInstanceField.partial\";\r\nregisterFieldType(FieldTypeGuids.RegistrationInstance, new RegistrationInstanceField());\r\n\r\nimport { RegistryEntryFieldType } from \"./registryEntryField.partial\";\r\nregisterFieldType(FieldTypeGuids.RegistryEntry, new RegistryEntryFieldType());\r\n\r\nimport { ReminderTypeFieldType } from \"./reminderTypeField.partial\";\r\nregisterFieldType(FieldTypeGuids.ReminderType, new ReminderTypeFieldType());\r\n\r\nimport { ReminderTypesFieldType } from \"./reminderTypesField.partial\";\r\nregisterFieldType(FieldTypeGuids.ReminderTypes, new ReminderTypesFieldType());\r\n\r\nimport { RemoteAuthsFieldType } from \"./remoteAuthsField.partial\";\r\nregisterFieldType(FieldTypeGuids.RemoteAuths, new RemoteAuthsFieldType());\r\n\r\nimport { ReportFieldType } from \"./reportField.partial\";\r\nregisterFieldType(FieldTypeGuids.Report, new ReportFieldType());\r\n\r\nimport { ScheduleFieldType } from \"./scheduleField.partial\";\r\nregisterFieldType(FieldTypeGuids.Schedule, new ScheduleFieldType());\r\n\r\nimport { SchedulesFieldType } from \"./schedulesField.partial\";\r\nregisterFieldType(FieldTypeGuids.Schedules, new SchedulesFieldType());\r\n\r\nimport { SecondaryAuthsFieldType } from \"./secondaryAuthsField.partial\";\r\nregisterFieldType(FieldTypeGuids.SecondaryAuths, new SecondaryAuthsFieldType());\r\n\r\nimport { SecurityRoleFieldType } from \"./securityRoleField.partial\";\r\nregisterFieldType(FieldTypeGuids.SecurityRole, new SecurityRoleFieldType());\r\n\r\nimport { SingleSelectFieldType } from \"./singleSelectField.partial\";\r\nregisterFieldType(FieldTypeGuids.SingleSelect, new SingleSelectFieldType());\r\n\r\nimport { SlidingDateRangeFieldType } from \"./slidingDateRangeField.partial\";\r\nregisterFieldType(FieldTypeGuids.SlidingDateRange, new SlidingDateRangeFieldType());\r\n\r\nimport { SocialMediaAccountFieldType } from \"./socialMediaAccountField.partial\";\r\nregisterFieldType(FieldTypeGuids.SocialMediaAccount, new SocialMediaAccountFieldType());\r\n\r\nimport { SiteFieldType } from \"./siteField.partial\";\r\nregisterFieldType(FieldTypeGuids.Site, new SiteFieldType());\r\n\r\nimport { StepProgramFieldType } from \"./stepProgramField.partial\";\r\nregisterFieldType(FieldTypeGuids.StepProgram, new StepProgramFieldType());\r\n\r\nimport { SSNFieldType } from \"./ssnField.partial\";\r\nregisterFieldType(FieldTypeGuids.Ssn, new SSNFieldType());\r\n\r\nimport { StepFieldType } from \"./stepField.partial\";\r\nregisterFieldType(FieldTypeGuids.Step, new StepFieldType());\r\n\r\nimport { StepProgramStepStatusFieldType } from \"./stepProgramStepStatusField.partial\";\r\nregisterFieldType(FieldTypeGuids.StepProgramStepStatus, new StepProgramStepStatusFieldType());\r\n\r\nimport { StepProgramStepTypeFieldType } from \"./stepProgramStepTypeField.partial\";\r\nregisterFieldType(FieldTypeGuids.StepProgramStepType, new StepProgramStepTypeFieldType());\r\n\r\nimport { StreakTypeFieldType } from \"./streakTypeField.partial\";\r\nregisterFieldType(FieldTypeGuids.StreakType, new StreakTypeFieldType());\r\n\r\nimport { StructureContentEditorFieldType } from \"./structureContentEditorField.partial\";\r\nregisterFieldType(FieldTypeGuids.StructureContentEditor, new StructureContentEditorFieldType());\r\n\r\nimport { SystemCommunicationFieldType } from \"./systemCommunicationField.partial\";\r\nregisterFieldType(FieldTypeGuids.SystemCommunication, new SystemCommunicationFieldType());\r\n\r\nimport { SystemEmailFieldType } from \"./systemEmailField.partial\";\r\nregisterFieldType(FieldTypeGuids.SystemEmail, new SystemEmailFieldType());\r\n\r\nimport { SystemPhoneNumberFieldType } from \"./systemPhoneNumberField.partial\";\r\nregisterFieldType(FieldTypeGuids.SystemPhoneNumber, new SystemPhoneNumberFieldType());\r\n\r\nimport { TextFieldType } from \"./textField.partial\";\r\nregisterFieldType(FieldTypeGuids.Text, new TextFieldType());\r\n\r\nimport { TimeFieldType } from \"./timeField.partial\";\r\nregisterFieldType(FieldTypeGuids.Time, new TimeFieldType());\r\n\r\nimport { TimeZoneFieldType } from \"./timeZoneField.partial\";\r\nregisterFieldType(FieldTypeGuids.TimeZone, new TimeZoneFieldType());\r\n\r\nimport { UniversalItemPickerFieldType } from \"./universalItemPickerField.partial\";\r\nregisterFieldType(\"b69b5a61-6fcd-4e3b-bb45-5f6802514953\", new UniversalItemPickerFieldType());\r\n\r\nimport { UniversalItemSearchPickerFieldType } from \"./universalItemSearchPickerField.partial\";\r\nregisterFieldType(\"c5b32713-fb46-41c0-8bbc-9bd4142f841a\", new UniversalItemSearchPickerFieldType());\r\n\r\nimport { UniversalItemTreePickerFieldType } from \"./universalItemTreePickerField.partial\";\r\nregisterFieldType(\"c7485f3f-0c10-4db6-9574-c10b195617e4\", new UniversalItemTreePickerFieldType());\r\n\r\nimport { UrlLinkFieldType } from \"./urlLinkField.partial\";\r\nregisterFieldType(FieldTypeGuids.UrlLink, new UrlLinkFieldType());\r\n\r\nimport { ValueFilterFieldType } from \"./valueFilterField.partial\";\r\nregisterFieldType(FieldTypeGuids.ValueFilter, new ValueFilterFieldType());\r\n\r\nimport { ValueListFieldType } from \"./valueListField.partial\";\r\nregisterFieldType(FieldTypeGuids.ValueList, new ValueListFieldType());\r\n\r\nimport { VideoUrlFieldType } from \"./videoUrlField.partial\";\r\nregisterFieldType(FieldTypeGuids.VideoUrl, new VideoUrlFieldType());\r\n\r\nimport { VideoFileFieldType } from \"./videoFileField.partial\";\r\nregisterFieldType(FieldTypeGuids.VideoFile, new VideoFileFieldType());\r\n\r\nimport { WorkflowFieldType } from \"./workflowField.partial\";\r\nregisterFieldType(FieldTypeGuids.Workflow, new WorkflowFieldType());\r\n\r\nimport { WorkflowActivityFieldType } from \"./workflowActivityField.partial\";\r\nregisterFieldType(FieldTypeGuids.WorkflowActivity, new WorkflowActivityFieldType());\r\n\r\nimport { WorkflowAttributeFieldType } from \"./workflowAttributeField.partial\";\r\nregisterFieldType(FieldTypeGuids.WorkflowAttribute, new WorkflowAttributeFieldType());\r\n\r\nimport { WorkflowTypeFieldType } from \"./workflowTypeField.partial\";\r\nregisterFieldType(FieldTypeGuids.WorkflowType, new WorkflowTypeFieldType());\r\n\r\nimport { WorkflowTypesFieldType } from \"./workflowTypesField.partial\";\r\nregisterFieldType(FieldTypeGuids.WorkflowTypes, new WorkflowTypesFieldType());\r\n"],"names":["ConfigurationValueKey","editComponent","defineAsyncComponent","_asyncToGenerator","EditComponent","configurationComponent","ConfigurationComponent","AchievementTypeFieldType","FieldTypeBase","getTextValue","value","configurationValues","_configurationValues$","values","JSON","parse","Values","userValues","split","selectedValues","filter","v","_v$value","includes","map","text","pop","join","_unused","getEditComponent","getConfigurationComponent","AddressFieldType","_configurationValues","_addressValue$street","_addressValue$street2","_addressValue$city","_addressValue$state","_addressValue$postalC","addressValue","textValue","concat","street1","street2","city","state","postalCode","replace","isFilterable","AssessmentTypesFieldType","AIProviderFieldType","AssetFieldType","_asset$Url","asset","Url","getHtmlValue","isEscaped","url","escapeHtml","getCondensedHtmlValue","AssetStorageProviderFieldType","AttendanceFieldType","getSupportedComparisonTypes","stringComparisonTypes","AttributeFieldType","ComparisonType","Contains","DoesNotContain","IsBlank","AudioFileFieldType","_binaryFile$text","binaryFile","IsNotBlank","arguments","length","undefined","filePath","FilePath","mimeType","MimeType","html","_binaryFile$text2","condensedValue","encodeXml","str","encoded","i","chr","charAt","AudioUrlFieldType","truncate","BadgesFieldType","ClientValues","o","_o$value","BackgroundCheckFieldType","BenevolenceRequestFieldType","BenevolenceTypeFieldType","BinaryFileFieldType","BinaryFileTypeFieldType","BinaryFileTypesFieldType","BlockTemplateFieldType","filterComponent","FilterComponent","BooleanFieldType","getCondensedTextValue","boolValue","asBooleanOrNull","TrueText","FalseText","EqualTo","NotEqualTo","getFilterComponent","getStandardFilterComponent","ConfigurationPropertyKey","CampusFieldType","getFilterValueText","_configurationValues$2","rawValues","areEqual","_unused2","doesValueMatchFilter","filterValue","_filterValue$value","toLowerCase","comparisonType","matched","CampusesFieldType","CaptchaFieldType","hasDefaultComponent","CategoriesFieldType","CategoryFieldType","CategorizedDefinedValueField","CheckinConfigurationTypeField","CheckListFieldType","ListItems","_v$key","key","containsComparisonTypes","_value$split$filter$m","matchedCount","_iterator","_createForOfIteratorHelper","_step","s","n","done","userValue","err","e","f","_iterator2","_step2","CodeEditorFieldType","ColorFieldType","valueDelimiter","deserializeColors","deserializeValue","getSelectedColors","colors","color","some","setCamouflagedClass","element","ancestorElement","parentElement","elementColor","getBackgroundColor","ancestorElementColor","isSimilarTo","classList","add","luma","remove","getComputedBackgroundColor","window","getComputedStyle","getPropertyValue","defaultColor","RockColor","document","body","elementsToProcess","elementToProcess","shift","backgroundColor","alpha","compareTo","push","ColorSelectorFieldType","clientKey","Colors","htmlStringBuilder","selectorsToProcess","selectedColors","itemGuid","guid","newGuid","containerId","itemId","processSelectors","maxAttempts","attemptCount","internalProcessSelectors","nextTick","failedSelectors","selector","querySelector","ConditionalScaleFieldType","numericComparisonTypes","ConnectionOpportunityFieldType","ConnectionTypeField","a","ConnectionTypesField","ConnectionStateFieldType","_ref3","_publicValue$text","Options","publicValue","find","x","ConnectionStatusFieldType","ContentChannelFieldType","_selectedValue$text","selectedValue","ContentChannelItemFieldType","ContentChannelTypeFieldType","ContentChannelTypesFieldType","ContentChannelsFieldType","ConnectionActivityTypeField","ConnectionRequestFieldType","ConnectionRequestActivityFieldType","CommunicationPreferenceField","options","CommunicationTemplateFieldType","ComparisonFieldType","ComponentsFieldType","ComponentFieldType","CurrencyFieldType","_toCurrencyOrNull","toCurrencyOrNull","DataEntryRequirementLevelFieldType","DataViewFieldType","DataViewsFieldType","DateFieldType","isCurrentDateValue","getCurrentDateText","dateValue","RockDateTime","parseISO","dateFormatTemplate","Format","toASPString","displayDiff","asBoolean","DisplayDiff","toElapsedString","dateComparisonTypes","updateComparisonTypeNames","Between","toString","forEach","getFilterValueDescription","filterValues","_range$timeValue","_range$timeUnit","range","parseSlidingDateRangeString","rangeTypeText","getRangeTypeText","rangeType","timeUnitValue","timeValue","timeUnitText","getTimeUnitText","timeUnit","TimeUnit","Hour","RangeType","Current","Last","Previous","Next","Upcoming","lowerDate","upperDate","filterValueValues","valueDate","slidingRange","dateRange","calculateSlidingDateRange","start","toMilliseconds","end","filterDate","getRelativeOrAbsoluteDate","newFilterValue","indexOf","parts","diff","toNumber","Math","abs","today","now","date","valueParts","addDays","DateRangeFieldType","dateParts","lowerDateParts","exec","upperDateParts","fromParts","toLocaleString","DateTimeFormat","DateShort","DateTimeFieldType","DisplayAsElapsedTime","DayOfWeekFieldType","dayValue","toNumberOrNull","DayOfWeek","Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","DaysOfWeekFieldType","DecimalFieldType","_toNumberOrNull$toStr","_toNumberOrNull","DecimalRangeFieldType","numbers","DefinedTypeFieldType","DefinedValueFieldType","clientValue","displayDescription","DisplayDescription","description","_clientValue$value","_value$value","useDescription","_unused3","AllowMultiple","_clientValue$value2","_clientValue$value3","filterValueGuids","_clientValue$value4","DefinedValueRangeFieldType","List","lowerValue","firstOrUndefined","upperValue","_lowerValue$descripti","_upperValue$descripti","_lowerValue$text","_upperValue$text","_clientValue$text","DocumentTypeFieldType","EmailFieldType","EncryptedTextFieldType","EntityFieldType","EntityTypeFieldType","EventCalendarFieldType","EventItemFieldType","FinancialAccountFieldType","FinancialAccountsFieldType","FinancialGatewayFieldType","FinancialStatementTemplateFieldType","FileFieldType","_realValue$text","realValue","_realValue$text2","GenderFieldType","numberValue","GroupAndRoleFieldType","GroupFieldType","GroupLocationTypeFieldType","GroupRoleFieldType","GroupMemberFieldType","GroupMemberRequirementFieldType","GroupTypeField","GroupTypesFieldType","GroupTypeGroupField","HtmlFieldType","CondensedHtml","ImageFieldType","width","Width","height","Height","imageUrl","ImageUrl","queryParms","hasQueryParams","imageTagTemplate","ImageTagTemplate","formatAsLink","FormatAsLink","mergeFields","imageTag","resolveMergeFields","_window$location","location","protocol","host","baseUrl","urlObj","URL","searchParams","IntegerFieldType","IntegerRangeFieldType","InteractionChannelFieldType","InteractionChannelsFieldType","InteractionChannelInteractionComponentFieldType","KeyValueListFieldType","clientValues","configuredValues","_loop","configuredValue","LabelFieldType","fileName","EncodedFileName","LavaFieldType","LavaCommandsFieldType","LocationFieldType","_locationItemBag$text","locationItemBag","LocationListFieldType","MarkdownFieldType","_value","HtmlValue","htmlValue","trim","startsWith","endsWith","substring","MatrixFieldType","_val$value","val","_val$text2","_val$text","MediaElementFieldType","thumbnailUrl","ThumbnailUrl","MediaSelectorFieldType","MediaWatchFieldType","MemoFieldType","MergeTemplateFieldType","MetricCategoriesFieldType","MetricFieldType","MobileNavigationActionFieldType","_actionValue$popCount","_actionValue$page$tex","_actionValue$page","_actionValue$page$tex2","_actionValue$page2","_actionValue$page$tex3","_actionValue$page3","actionValue","type","MobileNavigationActionType","None","PopPage","popCount","ResetToPage","page","ReplacePage","PushPage","DismissCoverSheet","MonthDayFieldType","components","month","day","months","MultiSelectFieldType","_v$value2","NoteTypeField","NoteTypesField","PersistedDatasetField","PhoneNumberFieldType","PageReferenceFieldType","PersonFieldType","_personValue$text","personValue","PrayerRequestFieldType","RangeSliderFieldType","RatingFieldType","_ratingValue$value","_ratingValue","ratingValue","rating","maxRating","MaxRating","_ratingValue$value2","_ratingValue2","RegistrationTemplateField","RegistrationTemplatesField","RegistrationInstanceField","RegistryEntryFieldType","ReminderTypeFieldType","name","ReminderTypesFieldType","binaryComparisonTypes","RemoteAuthsFieldType","splitValues","ReportFieldType","ScheduleFieldType","SchedulesFieldType","SecondaryAuthsFieldType","SecurityRoleFieldType","SingleSelectFieldType","_selectedValues$0$tex","SlidingDateRangeFieldType","SocialMediaAccountFieldType","SiteFieldType","_values$find$text","_values$find","StepProgramFieldType","SSNFieldType","strippedValue","substr","StepFieldType","StepProgramStepStatusFieldType","StepProgramStepTypeFieldType","StreakTypeFieldType","StructureContentEditorFieldType","SystemCommunicationFieldType","SystemEmailFieldType","SystemPhoneNumberFieldType","TextFieldType","TimeFieldType","hour","minute","meridiem","padLeft","TimeZoneFieldType","UniversalItemPickerFieldType","Array","isArray","_v$text","_values$text","_v$text2","_values$text2","UniversalItemSearchPickerFieldType","_bag$text","bag","UniversalItemTreePickerFieldType","UrlLinkFieldType","shouldAlwaysShowCondensed","ShouldAlwaysShowCondensed","ValueFilterFieldType","ValueListFieldType","_configuredValue$text","VideoUrlFieldType","VideoFileFieldType","fileGuid","FileGuid","WorkflowFieldType","WorkflowActivityFieldType","WorkflowAttributeFieldType","WorkflowTypeFieldType","WorkflowTypesFieldType","registerFieldType","FieldTypeGuids","AchievementType","Address","AssessmentType","AiProvider","Asset","AssetStorageProvider","Attendance","Attribute","AudioFile","AudioUrl","Badges","Backgroundcheck","BenevolenceRequest","BenevolenceType","BinaryFile","BinaryFileType","BinaryFileTypes","BlockTemplate","Boolean","Campus","Campuses","Captcha","Categories","Category","DefinedValueCategorized","CheckInConfigurationType","CheckList","CodeEditor","Color","ColorSelector","ConditionalScale","ConnectionOpportunity","ConnectionType","ConnectionTypes","ConnectionState","ConnectionStatus","ContentChannel","ContentChannelItem","ContentChannelType","ContentChannelTypes","ContentChannels","ConnectionActivityType","ConnectionRequest","ConnectionRequestActivity","CommunicationPreferenceType","CommunicationTemplate","Comparison","Components","Component","Currency","DataEntryRequirementLevel","DataView","Dataviews","Date","DateRange","DateTime","DaysOfWeek","Decimal","DecimalRange","DefinedType","DefinedValue","DefinedValueRange","DocumentType","Email","EncryptedText","Entity","Entitytype","EventCalendar","EventItem","FinancialAccount","FinancialAccounts","FinancialGateway","FinancialStatementTemplate","File","Gender","GroupAndRole","Group","GroupLocationType","GroupRole","GroupMember","GroupMemberRequirement","GroupType","GroupTypes","GroupTypeGroup","Html","Image","Integer","IntegerRange","InteractionChannel","InteractionChannels","InteractionChannelInteractionComponent","KeyValueList","Label","Lava","LavaCommands","Location","LocationList","Markdown","Matrix","MediaElement","MediaSelector","MediaWatch","Memo","MergeTemplate","MetricCategories","Metric","MobileNavigationAction","MonthDay","MultiSelect","NoteType","NoteTypes","PersistedDataset","PhoneNumber","PageReference","Person","PrayerRequest","RangeSlider","Rating","RegistrationTemplate","RegistrationTemplates","RegistrationInstance","RegistryEntry","ReminderType","ReminderTypes","RemoteAuths","Report","Schedule","Schedules","SecondaryAuths","SecurityRole","SingleSelect","SlidingDateRange","SocialMediaAccount","Site","StepProgram","Ssn","Step","StepProgramStepStatus","StepProgramStepType","StreakType","StructureContentEditor","SystemCommunication","SystemEmail","SystemPhoneNumber","Text","Time","TimeZone","UrlLink","ValueFilter","ValueList","VideoUrl","VideoFile","Workflow","WorkflowActivity","WorkflowAttribute","WorkflowType","WorkflowTypes"],"mappings":"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"}