{"version":3,"file":"index.js","sources":["../../../Framework/FieldTypes/addressField.partial.ts","../../../Framework/FieldTypes/backgroundCheckField.partial.ts","../../../Framework/FieldTypes/booleanField.partial.ts","../../../Framework/FieldTypes/campusField.partial.ts","../../../Framework/FieldTypes/campusesField.partial.ts","../../../Framework/FieldTypes/categoriesField.partial.ts","../../../Framework/FieldTypes/categoryField.partial.ts","../../../Framework/FieldTypes/categorizedDefinedValueField.partial.ts","../../../Framework/FieldTypes/checkListField.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/connectionTypeField.partial.ts","../../../Framework/FieldTypes/connectionTypesField.partial.ts","../../../Framework/FieldTypes/communicationPreferenceField.partial.ts","../../../Framework/FieldTypes/communicationTemplateField.partial.ts","../../../Framework/FieldTypes/currencyField.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/definedValueField.partial.ts","../../../Framework/FieldTypes/definedValueRangeField.partial.ts","../../../Framework/FieldTypes/emailField.partial.ts","../../../Framework/FieldTypes/financialAccountField.partial.ts","../../../Framework/FieldTypes/financialAccountsField.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/groupTypeField.partial.ts","../../../Framework/FieldTypes/groupTypesField.partial.ts","../../../Framework/FieldTypes/imageField.partial.ts","../../../Framework/FieldTypes/integerField.partial.ts","../../../Framework/FieldTypes/integerRangeField.partial.ts","../../../Framework/FieldTypes/keyValueListField.partial.ts","../../../Framework/FieldTypes/locationField.partial.ts","../../../Framework/FieldTypes/locationListField.partial.ts","../../../Framework/FieldTypes/mediaSelectorField.partial.ts","../../../Framework/FieldTypes/memoField.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/phoneNumberField.partial.ts","../../../Framework/FieldTypes/personField.partial.ts","../../../Framework/FieldTypes/rangeSliderField.partial.ts","../../../Framework/FieldTypes/ratingField.partial.ts","../../../Framework/FieldTypes/registryEntryField.partial.ts","../../../Framework/FieldTypes/reminderTypeField.partial.ts","../../../Framework/FieldTypes/reminderTypesField.partial.ts","../../../Framework/FieldTypes/scheduleField.partial.ts","../../../Framework/FieldTypes/schedulesField.partial.ts","../../../Framework/FieldTypes/singleSelectField.partial.ts","../../../Framework/FieldTypes/securityRoleField.partial.ts","../../../Framework/FieldTypes/structureContentEditorField.partial.ts","../../../Framework/FieldTypes/slidingDateRangeField.partial.ts","../../../Framework/FieldTypes/socialMediaAccountField.partial.ts","../../../Framework/FieldTypes/ssnField.partial.ts","../../../Framework/FieldTypes/systemCommunicationField.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/valueListField.partial.ts","../../../Framework/FieldTypes/workflowTypeField.partial.ts","../../../Framework/FieldTypes/index.ts"],"sourcesContent":["// \n// Copyright by the Spark Development Network\n//\n// Licensed under the Rock Community License (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.rockrms.com/license\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// \n//\nimport { Component } from \"vue\";\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\nimport { FieldTypeBase } from \"./fieldType\";\n\nexport type AddressFieldValue = {\n street1?: string;\n street2?: string;\n city?: string;\n state?: string;\n postalCode?: string;\n country?: string;\n};\n\n// The edit component can be quite large, so load it only as needed.\nconst editComponent = defineAsyncComponent(async () => {\n return (await import(\"./addressFieldComponents\")).EditComponent;\n});\n\n// The configuration component can be quite large, so load it only as needed.\nconst configurationComponent = defineAsyncComponent(async () => {\n return (await import(\"./addressFieldComponents\")).ConfigurationComponent;\n});\n\n/**\n * The field type handler for the Address field.\n */\nexport class AddressFieldType extends FieldTypeBase {\n public override getTextValue(value: string, _configurationValues: Record): string {\n try {\n const addressValue = JSON.parse(value || \"{}\") as AddressFieldValue;\n let textValue = `${addressValue.street1 ?? \"\"} ${addressValue.street2 ?? \"\"} ${addressValue.city ?? \"\"}, ${addressValue.state ?? \"\"} ${addressValue.postalCode ?? \"\"}`;\n\n textValue = textValue.replace(/ +/, \" \");\n textValue = textValue.replace(/^ +/, \"\");\n textValue = textValue.replace(/ +$/, \"\");\n\n return textValue === \",\" ? \"\" : textValue;\n }\n catch {\n return value;\n }\n }\n\n public override getEditComponent(): Component {\n return editComponent;\n }\n\n public override getConfigurationComponent(): Component {\n return configurationComponent;\n }\n\n public override isFilterable(): boolean {\n return false;\n }\n}\n","// \n// Copyright by the Spark Development Network\n//\n// Licensed under the Rock Community License (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.rockrms.com/license\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// \n//\n\nimport { Component } from \"vue\";\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\nimport { FieldTypeBase } from \"./fieldType\";\n\nexport const enum ConfigurationValueKey {\n BinaryFileType = \"binaryFileType\",\n}\n\n// The edit component can be quite large, so load it only as needed.\nconst editComponent = defineAsyncComponent(async () => {\n return (await import(\"./backgroundCheckFieldComponents\")).EditComponent;\n});\n\n// The configuration component can be quite large, so load it only as needed.\nconst configurationComponent = defineAsyncComponent(async () => {\n return (await import(\"./backgroundCheckFieldComponents\")).ConfigurationComponent;\n});\n\n/**\n * The field type handler for the TimeZone field.\n */\nexport class BackgroundCheckFieldType extends FieldTypeBase {\n public override getTextValue(value: string, _configurationValues: Record): string {\n return value ?? \"\";\n }\n\n public override getEditComponent(): Component {\n return editComponent;\n }\n\n public override getConfigurationComponent(): Component {\n return configurationComponent;\n }\n\n public override isFilterable(): boolean {\n return false;\n }\n}","// \n// Copyright by the Spark Development Network\n//\n// Licensed under the Rock Community License (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.rockrms.com/license\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// \n//\nimport { Component } from \"vue\";\nimport { ComparisonType } from \"@Obsidian/Enums/Reporting/comparisonType\";\nimport { asBooleanOrNull } from \"@Obsidian/Utility/booleanUtils\";\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\nimport { FieldTypeBase } from \"./fieldType\";\nimport { getStandardFilterComponent } from \"./utils\";\n\nexport const enum ConfigurationValueKey {\n BooleanControlType = \"BooleanControlType\",\n FalseText = \"falsetext\",\n TrueText = \"truetext\"\n}\n\n\n// The edit component can be quite large, so load it only as needed.\nconst editComponent = defineAsyncComponent(async () => {\n return (await import(\"./booleanFieldComponents\")).EditComponent;\n});\n\n// The configuration component can be quite large, so load it only as needed.\nconst configurationComponent = defineAsyncComponent(async () => {\n return (await import(\"./booleanFieldComponents\")).ConfigurationComponent;\n});\n\n// Only load the filter component as needed.\nconst filterComponent = defineAsyncComponent(async () => {\n return (await import(\"./booleanFieldComponents\")).FilterComponent;\n});\n\n/**\n * The field type handler for the Boolean field.\n */\nexport class BooleanFieldType extends FieldTypeBase {\n public override getCondensedTextValue(value: string, _configurationValues: Record): string {\n const boolValue = asBooleanOrNull(value);\n\n if (boolValue === null) {\n return \"\";\n }\n else if (boolValue === true) {\n return \"Y\";\n }\n else {\n return \"N\";\n }\n }\n\n public override getTextValue(value: string, configurationValues: Record): string {\n const boolValue = asBooleanOrNull(value);\n\n if (boolValue === null) {\n return \"\";\n }\n else if (boolValue === true) {\n return configurationValues[ConfigurationValueKey.TrueText] || \"Yes\";\n }\n else {\n return configurationValues[ConfigurationValueKey.FalseText] || \"No\";\n }\n }\n\n public override getEditComponent(): Component {\n return editComponent;\n }\n\n public override getConfigurationComponent(): Component {\n return configurationComponent;\n }\n\n public override getSupportedComparisonTypes(): ComparisonType {\n return ComparisonType.EqualTo | ComparisonType.NotEqualTo;\n }\n\n public override getFilterComponent(): Component {\n return getStandardFilterComponent(this.getSupportedComparisonTypes(), filterComponent);\n }\n}\n","// \n// Copyright by the Spark Development Network\n//\n// Licensed under the Rock Community License (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.rockrms.com/license\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// \n//\nimport { Component } from \"vue\";\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\nimport { ComparisonType } from \"@Obsidian/Enums/Reporting/comparisonType\";\nimport { ComparisonValue } from \"@Obsidian/Types/Reporting/comparisonValue\";\nimport { areEqual } from \"@Obsidian/Utility/guid\";\nimport { ListItemBag } from \"@Obsidian/ViewModels/Utility/listItemBag\";\nimport { FieldTypeBase } from \"./fieldType\";\nimport { getStandardFilterComponent } from \"./utils\";\n\nexport const enum ConfigurationValueKey {\n Values = \"values\",\n IncludeInactive = \"includeInactive\",\n FilterCampusTypes = \"filterCampusTypes\",\n FilterCampusStatus = \"filterCampusStatus\",\n ForceVisible = \"forceVisible\",\n SelectableCampuses = \"selectableCampuses\",\n ValuesInactive = \"valuesInactive\"\n}\n\nexport const enum ConfigurationPropertyKey {\n Campuses = \"campuses\",\n CampusTypes = \"campusTypes\",\n CampusStatuses = \"campusStatuses\"\n}\n\n\n// The edit component can be quite large, so load it only as needed.\nconst editComponent = defineAsyncComponent(async () => {\n return (await import(\"./campusFieldComponents\")).EditComponent;\n});\n\n// Load the filter component only as needed.\nconst filterComponent = defineAsyncComponent(async () => {\n return (await import(\"./campusFieldComponents\")).FilterComponent;\n});\n\n// Load the configuration component only as needed.\nconst configurationComponent = defineAsyncComponent(async () => {\n return (await import(\"./campusFieldComponents\")).ConfigurationComponent;\n});\n\n/**\n * The field type handler for the Campus field.\n */\nexport class CampusFieldType extends FieldTypeBase {\n public override getTextValue(value: string, configurationValues: Record): string {\n if (value === undefined || value === null || value === \"\") {\n return \"\";\n }\n\n try {\n const values = JSON.parse(configurationValues[ConfigurationValueKey.Values] ?? \"[]\") as ListItemBag[];\n const selectedValues = values.filter(o => o.value === value);\n\n return selectedValues.map(o => o.text).join(\", \");\n }\n catch {\n return value;\n }\n }\n\n public override getEditComponent(): Component {\n return editComponent;\n }\n\n public override getConfigurationComponent(): Component {\n return configurationComponent;\n }\n\n public override getSupportedComparisonTypes(): ComparisonType {\n return 0;\n }\n\n public override getFilterValueText(value: ComparisonValue, configurationValues: Record): string {\n if (!value.value) {\n return \"\";\n }\n\n try {\n const rawValues = value.value.split(\",\");\n const values = JSON.parse(configurationValues?.[ConfigurationValueKey.Values] ?? \"[]\") as ListItemBag[];\n const selectedValues = values.filter(o => rawValues.filter(v => areEqual(v, o.value)).length > 0);\n\n return `'${selectedValues.map(o => o.text).join(\"' OR '\")}'`;\n }\n catch {\n return `'${value.value}'`;\n }\n }\n\n public override getFilterComponent(): Component {\n return getStandardFilterComponent(\"Is\", filterComponent);\n }\n\n public override doesValueMatchFilter(value: string, filterValue: ComparisonValue, _configurationValues: Record): boolean {\n const selectedValues = (filterValue.value ?? \"\").split(\",\").filter(v => v !== \"\").map(v => v.toLowerCase());\n let comparisonType = filterValue.comparisonType;\n\n if (comparisonType === ComparisonType.EqualTo) {\n // Treat EqualTo as if it were Contains.\n comparisonType = ComparisonType.Contains;\n }\n else if (comparisonType === ComparisonType.NotEqualTo) {\n // Treat NotEqualTo as if it were DoesNotContain.\n comparisonType = ComparisonType.DoesNotContain;\n }\n\n if (comparisonType === ComparisonType.IsBlank) {\n return value === \"\";\n }\n else if (comparisonType === ComparisonType.IsNotBlank) {\n return value !== \"\";\n }\n\n if (selectedValues.length > 0) {\n let matched = selectedValues.includes((value ?? \"\").toLowerCase());\n\n if (comparisonType === ComparisonType.DoesNotContain) {\n matched = !matched;\n }\n\n return matched;\n }\n\n return false;\n }\n}\n","// \n// Copyright by the Spark Development Network\n//\n// Licensed under the Rock Community License (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.rockrms.com/license\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// \n//\nimport { Component } from \"vue\";\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\nimport { ListItemBag } from \"@Obsidian/ViewModels/Utility/listItemBag\";\nimport { FieldTypeBase } from \"./fieldType\";\nimport { ComparisonValue } from \"@Obsidian/Types/Reporting/comparisonValue\";\nimport { ComparisonType } from \"@Obsidian/Enums/Reporting/comparisonType\";\n\nexport const enum ConfigurationValueKey {\n Values = \"values\",\n EnhancedSelection = \"enhancedselection\",\n RepeatColumns = \"repeatColumns\",\n IncludeInactive = \"includeInactive\",\n FilterCampusTypes = \"filterCampusTypes\",\n FilterCampusStatus = \"filterCampusStatus\",\n SelectableCampuses = \"selectableCampuses\"\n}\n\nexport const enum ConfigurationPropertyKey {\n Campuses = \"campuses\",\n CampusTypes = \"campusTypes\",\n CampusStatuses = \"campusStatuses\"\n}\n\n\n// The edit component can be quite large, so load it only as needed.\nconst editComponent = defineAsyncComponent(async () => {\n return (await import(\"./campusesFieldComponents\")).EditComponent;\n});\n\n// Load the configuration component only as needed.\nconst configurationComponent = defineAsyncComponent(async () => {\n return (await import(\"./campusesFieldComponents\")).ConfigurationComponent;\n});\n\n/**\n * The field type handler for the Campuses field.\n */\nexport class CampusesFieldType extends FieldTypeBase {\n public override getTextValue(value: string, configurationValues: Record): string {\n if (value === undefined || value === null || value === \"\") {\n return \"\";\n }\n\n try {\n const values = JSON.parse(configurationValues[ConfigurationValueKey.Values] ?? \"[]\") as ListItemBag[];\n const userValues = value.split(\",\");\n const selectedValues = values.filter(o => userValues.includes(o.value ?? \"\"));\n\n return selectedValues.map(o => o.text).join(\", \");\n }\n catch {\n return value;\n }\n }\n\n public override getEditComponent(): Component {\n return editComponent;\n }\n\n public override getConfigurationComponent(): Component {\n return configurationComponent;\n }\n\n public override doesValueMatchFilter(value: string, filterValue: ComparisonValue, _configurationValues: Record): boolean {\n const selectedValues = (filterValue.value ?? \"\").split(\",\").filter(v => v !== \"\").map(v => v.toLowerCase());\n let comparisonType = filterValue.comparisonType;\n\n if (comparisonType === ComparisonType.EqualTo) {\n // Treat EqualTo as if it were Contains.\n comparisonType = ComparisonType.Contains;\n }\n else if (comparisonType === ComparisonType.NotEqualTo) {\n // Treat NotEqualTo as if it were DoesNotContain.\n comparisonType = ComparisonType.DoesNotContain;\n }\n\n if (comparisonType === ComparisonType.IsBlank) {\n return value === \"\";\n }\n else if (comparisonType === ComparisonType.IsNotBlank) {\n return value !== \"\";\n }\n\n if (selectedValues.length > 0) {\n let matched = selectedValues.includes(value.toLowerCase());\n\n if (comparisonType === ComparisonType.DoesNotContain) {\n matched = !matched;\n }\n\n return matched;\n }\n\n return false;\n }\n}\n","// \n// Copyright by the Spark Development Network\n//\n// Licensed under the Rock Community License (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.rockrms.com/license\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// \n//\nimport { Component } from \"vue\";\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\nimport { FieldTypeBase } from \"./fieldType\";\n\nexport const enum ConfigurationValueKey {\n EntityTypeName = \"entityTypeName\",\n QualifierColumn = \"qualifierColumn\",\n QualifierValue = \"qualifierValue\"\n}\n\n// The edit component can be quite large, so load it only as needed.\nconst editComponent = defineAsyncComponent(async () => {\n return (await import(\"./categoriesFieldComponents\")).EditComponent;\n});\n\n// The configuration component can be quite large, so load it only as needed.\nconst configurationComponent = defineAsyncComponent(async () => {\n return (await import(\"./categoriesFieldComponents\")).ConfigurationComponent;\n});\n\n/**\n * The field type handler for the Address field.\n */\nexport class CategoriesFieldType extends FieldTypeBase {\n public override getTextValue(value: string, _configurationValues: Record): string {\n return value ?? \"\";\n }\n\n public override getEditComponent(): Component {\n return editComponent;\n }\n\n public override getConfigurationComponent(): Component {\n return configurationComponent;\n }\n\n public override isFilterable(): boolean {\n return false;\n }\n}","// \n// Copyright by the Spark Development Network\n//\n// Licensed under the Rock Community License (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.rockrms.com/license\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// \n//\nimport { Component } from \"vue\";\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\nimport { FieldTypeBase } from \"./fieldType\";\n\nexport const enum ConfigurationValueKey {\n EntityTypeName = \"entityTypeName\",\n QualifierColumn = \"qualifierColumn\",\n QualifierValue = \"qualifierValue\"\n}\n\n// The edit component can be quite large, so load it only as needed.\nconst editComponent = defineAsyncComponent(async () => {\n return (await import(\"./categoryFieldComponents\")).EditComponent;\n});\n\n// The configuration component can be quite large, so load it only as needed.\nconst configurationComponent = defineAsyncComponent(async () => {\n return (await import(\"./categoryFieldComponents\")).ConfigurationComponent;\n});\n\n/**\n * The field type handler for the Address field.\n */\nexport class CategoryFieldType extends FieldTypeBase {\n public override getTextValue(value: string, _configurationValues: Record): string {\n return value ?? \"\";\n }\n\n public override getEditComponent(): Component {\n return editComponent;\n }\n\n public override getConfigurationComponent(): Component {\n return configurationComponent;\n }\n\n public override isFilterable(): boolean {\n return false;\n }\n}","// \n// Copyright by the Spark Development Network\n//\n// Licensed under the Rock Community License (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.rockrms.com/license\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// \n//\nimport { Component } from \"vue\";\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\nimport { FieldTypeBase } from \"./fieldType\";\n\nexport const enum ConfigurationValueKey {\n DefinedType = \"DefinedType\",\n DefinedTypes = \"DefinedTypes\",\n DefinedTypeValues = \"DefinedTypeValues\",\n SelectableDefinedValues = \"SelectableDefinedValues\",\n ConfigurationMode = \"ConfigurationMode\"\n}\n\n// The edit component can be quite large, so load it only as needed.\nconst editComponent = defineAsyncComponent(async () => {\n return (await import(\"./categorizedDefinedValueFieldComponents\")).EditComponent;\n});\n\n// The configuration component can be quite large, so load it only as needed.\nconst configurationComponent = defineAsyncComponent(async () => {\n return (await import(\"./categorizedDefinedValueFieldComponents\")).ConfigurationComponent;\n});\n\n/**\n * The field type handler for the Address field.\n */\nexport class CategorizedDefinedValueField extends FieldTypeBase {\n public override getTextValue(value: string, _configurationValues: Record): string {\n return value ?? \"\";\n }\n\n public override getEditComponent(): Component {\n return editComponent;\n }\n\n public override getConfigurationComponent(): Component {\n return configurationComponent;\n }\n\n public override isFilterable(): boolean {\n return false;\n }\n}","// \n// Copyright by the Spark Development Network\n//\n// Licensed under the Rock Community License (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.rockrms.com/license\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// \n//\nimport { Component } from \"vue\";\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\nimport { ComparisonType } from \"@Obsidian/Enums/Reporting/comparisonType\";\nimport { containsComparisonTypes } from \"@Obsidian/Core/Reporting/comparisonType\";\nimport { ComparisonValue } from \"@Obsidian/Types/Reporting/comparisonValue\";\nimport { ListItemBag } from \"@Obsidian/ViewModels/Utility/listItemBag\";\nimport { FieldTypeBase } from \"./fieldType\";\nimport { getStandardFilterComponent } from \"./utils\";\nimport { KeyValueItem } from \"@Obsidian/Types/Controls/keyValueItem\";\n\nexport const enum ConfigurationValueKey {\n Values = \"values\",\n RepeatColumns = \"repeatColumns\",\n ListItems = \"listItems\"\n}\n\n\n// The edit component can be quite large, so load it only as needed.\nconst editComponent = defineAsyncComponent(async () => {\n return (await import(\"./checkListFieldComponents\")).EditComponent;\n});\n\n// Load the filter component only as needed.\nconst filterComponent = defineAsyncComponent(async () => {\n return (await import(\"./checkListFieldComponents\")).FilterComponent;\n});\n\n// Load the configuration component only as needed.\nconst configurationComponent = defineAsyncComponent(async () => {\n return (await import(\"./checkListFieldComponents\")).ConfigurationComponent;\n});\n\n/**\n * The field type handler for the Check List field.\n */\nexport class CheckListFieldType extends FieldTypeBase {\n public override getTextValue(value: string, configurationValues: Record): string {\n if (value === \"\") {\n return \"\";\n }\n\n try {\n const values = JSON.parse(configurationValues[ConfigurationValueKey.ListItems] ?? \"[]\") as KeyValueItem[];\n const userValues = value.split(\",\");\n const selectedValues = values.filter(v => userValues.includes(v.key ?? \"\"));\n\n return selectedValues.map(v => v.value).join(\", \");\n }\n catch {\n return value;\n }\n }\n\n public override getEditComponent(): Component {\n return editComponent;\n }\n\n public override getConfigurationComponent(): Component {\n return configurationComponent;\n }\n\n public override getSupportedComparisonTypes(): ComparisonType {\n return containsComparisonTypes;\n }\n\n public override getFilterComponent(): Component {\n return getStandardFilterComponent(this.getSupportedComparisonTypes(), filterComponent);\n }\n\n public override getFilterValueText(value: ComparisonValue, configurationValues: Record): string {\n if (value.value === \"\") {\n return \"\";\n }\n\n try {\n const rawValues = value.value.split(\",\");\n const values = JSON.parse(configurationValues?.[ConfigurationValueKey.Values] ?? \"[]\") as ListItemBag[];\n const selectedValues = values.filter(v => rawValues.includes(v.value ?? \"\"));\n\n if (selectedValues.length >= 1) {\n return `'${selectedValues.map(v => v.value).join(\"' OR '\")}'`;\n }\n else {\n return \"\";\n }\n }\n catch {\n return value.value;\n }\n }\n\n public override doesValueMatchFilter(value: string, filterValue: ComparisonValue, _configurationValues: Record): boolean {\n const selectedValues = (filterValue.value ?? \"\").split(\",\").filter(v => v !== \"\").map(v => v.toLowerCase());\n let comparisonType = filterValue.comparisonType;\n\n if (comparisonType === ComparisonType.EqualTo) {\n // Treat EqualTo as if it were Contains.\n comparisonType = ComparisonType.Contains;\n }\n else if (comparisonType === ComparisonType.NotEqualTo) {\n // Treat NotEqualTo as if it were DoesNotContain.\n comparisonType = ComparisonType.DoesNotContain;\n }\n\n if (comparisonType === ComparisonType.IsBlank) {\n return value === \"\";\n }\n else if (comparisonType === ComparisonType.IsNotBlank) {\n return value !== \"\";\n }\n\n if (selectedValues.length > 0) {\n const userValues = value?.split(\",\").filter(v => v !== \"\").map(v => v.toLowerCase()) ?? [];\n\n if (comparisonType === ComparisonType.Contains) {\n let matchedCount = 0;\n\n for (const userValue of userValues) {\n if (selectedValues.includes(userValue)) {\n matchedCount += 1;\n }\n }\n\n return matchedCount > 0;\n }\n else {\n let matchedCount = 0;\n\n for (const userValue of userValues) {\n if (selectedValues.includes(userValue)) {\n matchedCount += 1;\n }\n }\n\n return matchedCount !== selectedValues.length;\n }\n }\n\n return false;\n }\n}\n","// \n// Copyright by the Spark Development Network\n//\n// Licensed under the Rock Community License (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.rockrms.com/license\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// \n//\nimport { Component } from \"vue\";\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\nimport { FieldTypeBase } from \"./fieldType\";\n\n// The edit component can be quite large, so load it only as needed.\nconst editComponent = defineAsyncComponent(async () => {\n return (await import(\"./colorFieldComponents\")).EditComponent;\n});\n\n// The configuration component can be quite large, so load it only as needed.\nconst configurationComponent = defineAsyncComponent(async () => {\n return (await import(\"./colorFieldComponents\")).ConfigurationComponent;\n});\n\n/**\n * The field type handler for the Color field.\n */\nexport class ColorFieldType extends FieldTypeBase {\n public override getEditComponent(): Component {\n return editComponent;\n }\n\n public override getConfigurationComponent(): Component {\n return configurationComponent;\n }\n}\n","// \n// Copyright by the Spark Development Network\n//\n// Licensed under the Rock Community License (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.rockrms.com/license\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// \n//\n\nexport enum ConfigurationValueKey {\n Colors = \"colors\",\n AllowMultiple = \"allowMultiple\"\n}","// \n// Copyright by the Spark Development Network\n//\n// Licensed under the Rock Community License (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.rockrms.com/license\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// \n//\n\nimport { RockColor } from \"@Obsidian/Core/Utilities/rockColor\";\n\nconst valueDelimiter = \"|\";\nconst isValidColorRegex = /^#(([0-9a-fA-F]{3})|([0-9a-fA-F]{4})|([0-9a-fA-F]{6})|([0-9a-fA-F]{8}))$/;\n\n/**\n * Tests if the provided string is a valid hexadecimal color.\n * Validate formats are:\n * 1. #RGB\n * 2. #RGBA\n * 3. #RRGGBB\n * 4. #RRGGBBAA\n * @param value The value to test.\n */\nexport function isValidHexColor(value: string): boolean {\n return isValidColorRegex.test(value);\n}\n\nexport function deserializeColors(value: string): string[] {\n return value.split(valueDelimiter);\n}\n\nexport function serializeColors(values: string[]): string {\n return values.join(valueDelimiter);\n}\n\nexport function deserializeValue(value: string): string[] {\n return value.split(valueDelimiter);\n}\n\nexport function serializeValue(values: string[]): string {\n return values.join(valueDelimiter);\n}\n\nexport function deserializeAllowMultiple(value: string): boolean {\n return value?.toLowerCase() === \"true\";\n}\n\nexport function serializeAllowMultiple(allowMultiple: boolean): string {\n return allowMultiple.toString();\n}\n\nexport function getSelectedColors(colors: string[], values: string[]): string[] {\n return colors.filter(color => values.some(value => value.toLowerCase() === color.toLowerCase()));\n}\n\n/**\n * Sets the camouflaged class if the element color is similar to the target element (or parent if not set).\n * @param {Element} element The element to compare.\n * @param {Element} ancestorElement (Optional) The target element with which to compare colors. Defaults to the parent element.\n */\nexport function setCamouflagedClass(element: Element, ancestorElement?: Element | null): void {\n if (!ancestorElement) {\n ancestorElement = element.parentElement;\n\n if (!ancestorElement) {\n return;\n }\n }\n\n const elementColor = getBackgroundColor(element);\n const ancestorElementColor = getBackgroundColor(ancestorElement);\n\n if (elementColor.isSimilarTo(ancestorElementColor)) {\n element.classList.add(elementColor.luma > 0.5 ? \"camouflaged-light\" : \"camouflaged-dark\");\n }\n else {\n element.classList.remove(\"camouflaged-light\");\n element.classList.remove(\"camouflaged-dark\");\n }\n}\n\nfunction getBackgroundColor(element: Element): RockColor {\n function getComputedBackgroundColor(element: Element): string {\n return window.getComputedStyle(element).getPropertyValue(\"background-color\");\n }\n\n // typically \"rgba(0, 0, 0, 0)\"\n const defaultColor = new RockColor(getComputedBackgroundColor(document.body));\n\n // Start with the supplied element.\n const elementsToProcess: Element[] = [\n element\n ];\n\n while (elementsToProcess.length) {\n // Process the first element in the array.\n const elementToProcess = elementsToProcess.shift();\n\n if (!elementToProcess) {\n // Skip to the next element if the current one is null or undefined.\n continue;\n }\n\n const backgroundColor = new RockColor(getComputedBackgroundColor(elementToProcess));\n\n // If we got a different value than the default, return it.\n if (backgroundColor.alpha !== 0 && backgroundColor.compareTo(defaultColor) !== 0) {\n return backgroundColor;\n }\n // Otherwise, add the parent element to the elements in process.\n else if (elementToProcess.parentElement) {\n elementsToProcess.push(elementToProcess.parentElement);\n }\n }\n\n // If we reached the top parent element and no unique color was found,\n // then return the default color.\n return defaultColor;\n}","// \n// Copyright by the Spark Development Network\n//\n// Licensed under the Rock Community License (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.rockrms.com/license\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// \n//\nimport { Component, nextTick } from \"vue\";\nimport { FieldTypeBase } from \"./fieldType\";\nimport { ConfigurationValueKey } from \"./colorSelectorField.types.partial\";\nimport { deserializeColors, deserializeValue, getSelectedColors, setCamouflagedClass } from \"./colorSelectorField.utils.partial\";\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\nimport guid from \"@Obsidian/Utility/guid\";\nimport { escapeHtml } from \"@Obsidian/Utility/stringUtils\";\n\n// The edit component can be quite large, so load it only as needed.\nconst editComponent = defineAsyncComponent(async () => {\n return (await import(\"./colorSelectorComponents\")).EditComponent;\n});\n\n// The configuration component can be quite large, so load it only as needed.\nconst configurationComponent = defineAsyncComponent(async () => {\n return (await import(\"./colorSelectorComponents\")).ConfigurationComponent;\n});\n\n/**\n * The field type handler for the Color field.\n */\nexport class ColorSelectorFieldType extends FieldTypeBase {\n public override getTextValue(value: string, configurationValues: Record): string {\n // value is a comma-separated list of guids/keys.\n // configurationValues[\"Colors\"] is an array of Key-Value pairs, where the key is a guid/key and the value is the hex color.\n try {\n const values = deserializeValue(value).map(clientKey => clientKey?.toLowerCase());\n const colors: string[] = deserializeColors(configurationValues[ConfigurationValueKey.Colors]);\n\n return getSelectedColors(colors, values).join(\",\");\n }\n catch {\n return \"\";\n }\n }\n\n public override getHtmlValue(value: string, configurationValues: Record, isEscaped: boolean = false): string {\n const htmlStringBuilder: string[] = [];\n const selectorsToProcess: string[] = [];\n const colors = deserializeColors(configurationValues[ConfigurationValueKey.Colors]);\n const values = deserializeValue(value);\n\n htmlStringBuilder.push(\"
\");\n\n const selectedColors = getSelectedColors(colors, values);\n\n for (const color of selectedColors) {\n const itemGuid = guid.newGuid();\n const containerId = `color-selector-item-container-${itemGuid}`;\n const itemId = `color-selector-item-${itemGuid}`;\n\n htmlStringBuilder.push(`
`);\n htmlStringBuilder.push(`
`);\n htmlStringBuilder.push(\"
\");\n htmlStringBuilder.push(\"
\");\n\n // Keep track of the color elements that may have to be outlined\n // if they are too hard to see.\n selectorsToProcess.push(`#${itemId}`);\n }\n\n htmlStringBuilder.push(\"
\");\n\n this.processSelectors(selectorsToProcess);\n\n const html = htmlStringBuilder.join(\"\\n\");\n\n if (isEscaped) {\n return escapeHtml(html);\n }\n\n return html;\n }\n\n public override getEditComponent(): Component {\n return editComponent;\n }\n\n public override getConfigurationComponent(): Component {\n return configurationComponent;\n }\n\n private processSelectors(selectorsToProcess: string[]): void {\n const maxAttempts = 5;\n let attemptCount = 0;\n\n function internalProcessSelectors(): void {\n if (!selectorsToProcess.length || attemptCount >= maxAttempts) {\n return;\n }\n\n nextTick(() => {\n attemptCount++;\n const failedSelectors: string[] = [];\n\n while (selectorsToProcess.length) {\n // Process the element at the front of the array.\n const selector = selectorsToProcess.shift();\n\n if (!selector) {\n // Skip to the next selector if this one is empty.\n continue;\n }\n\n const element = document.querySelector(selector);\n\n if (!element) {\n // Add the selector to the end array and skip to the next selector.\n failedSelectors.push(selector);\n }\n else {\n setCamouflagedClass(element);\n }\n }\n\n // Add the failed selectors back to the array.\n selectorsToProcess.push(...failedSelectors);\n\n if (selectorsToProcess.length) {\n internalProcessSelectors();\n }\n });\n }\n\n // Start processing selectors.\n internalProcessSelectors();\n }\n}\n","// \n// Copyright by the Spark Development Network\n//\n// Licensed under the Rock Community License (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.rockrms.com/license\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// \n//\nimport { Component } from \"vue\";\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\nimport { FieldTypeBase } from \"./fieldType\";\nimport { ListItemBag } from \"@Obsidian/ViewModels/Utility/listItemBag\";\n\nexport const enum ConfigurationValueKey {\n Values = \"values\"\n}\n\n// The edit component can be quite large, so load it only as needed.\nconst editComponent = defineAsyncComponent(async () => {\n return (await import(\"./connectionTypeFieldComponents\")).EditComponent;\n});\n\n// Load the configuration component only as needed.\nconst configurationComponent = defineAsyncComponent(async () => {\n return (await import(\"./connectionTypeFieldComponents\")).ConfigurationComponent;\n});\n\n/**\n * The field type handler for the MultiSelect field.\n */\nexport class ConnectionTypeField extends FieldTypeBase {\n public override getTextValue(value: string, configurationValues: Record): string {\n if (value === \"\") {\n return \"\";\n }\n\n try {\n const values = JSON.parse(configurationValues[ConfigurationValueKey.Values] ?? \"[]\") as ListItemBag[];\n const userValues = value.split(\",\");\n const selectedValues = values.filter(v => userValues.includes(v.value ?? \"\"));\n return selectedValues.map(v => v.text)\n .map(v => v?.split(\":\").pop()) // just get the name of the note type\n .join(\", \");\n }\n catch {\n return value;\n }\n }\n\n public override getEditComponent(): Component {\n return editComponent;\n }\n\n public override getConfigurationComponent(): Component {\n return configurationComponent;\n }\n}","// \n// Copyright by the Spark Development Network\n//\n// Licensed under the Rock Community License (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.rockrms.com/license\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// \n//\nimport { Component } from \"vue\";\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\nimport { FieldTypeBase } from \"./fieldType\";\nimport { ListItemBag } from \"@Obsidian/ViewModels/Utility/listItemBag\";\n\nexport const enum ConfigurationValueKey {\n Values = \"values\"\n}\n\n// The edit component can be quite large, so load it only as needed.\nconst editComponent = defineAsyncComponent(async () => {\n return (await import(\"./connectionTypesFieldComponents\")).EditComponent;\n});\n\n// Load the configuration component only as needed.\nconst configurationComponent = defineAsyncComponent(async () => {\n return (await import(\"./connectionTypesFieldComponents\")).ConfigurationComponent;\n});\n\n/**\n * The field type handler for the Connection Types field.\n */\nexport class ConnectionTypesField extends FieldTypeBase {\n public override getTextValue(value: string, configurationValues: Record): string {\n if (value === \"\") {\n return \"\";\n }\n\n try {\n const values = JSON.parse(configurationValues[ConfigurationValueKey.Values] ?? \"[]\") as ListItemBag[];\n const userValues = value.split(\",\");\n const selectedValues = values.filter(v => userValues.includes(v.value ?? \"\"));\n return selectedValues.map(v => v.text)\n .map(v => v?.split(\":\").pop()) // just get the name of the note type\n .join(\", \");\n }\n catch {\n return value;\n }\n }\n\n public override getEditComponent(): Component {\n return editComponent;\n }\n\n public override getConfigurationComponent(): Component {\n return configurationComponent;\n }\n}","// \n// Copyright by the Spark Development Network\n//\n// Licensed under the Rock Community License (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.rockrms.com/license\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// \n//\nimport { Component } from \"vue\";\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\nimport { FieldTypeBase } from \"./fieldType\";\nimport { ListItemBag } from \"@Obsidian/ViewModels/Utility/listItemBag\";\n\nexport const enum ConfigurationValueKey {\n RepeatColumns = \"repeatColumns\",\n Options = \"options\",\n}\n\n// The edit component can be quite large, so load it only as needed.\nconst editComponent = defineAsyncComponent(async () => {\n return (await import(\"./communicationPreferenceFieldComponents\")).EditComponent;\n});\n\n// The configuration component can be quite large, so load it only as needed.\nconst configurationComponent = defineAsyncComponent(async () => {\n return (await import(\"./communicationPreferenceFieldComponents\")).ConfigurationComponent;\n});\n\n/**\n * The field type handler for the Address field.\n */\nexport class CommunicationPreferenceField extends FieldTypeBase {\n public override getTextValue(value: string, configurationValues: Record): string {\n const options = JSON.parse(configurationValues[ConfigurationValueKey.Options] ?? \"[]\") as ListItemBag[];\n const publicValue = options.find(x => x.value === value);\n return publicValue?.text ?? value ?? \"\";\n }\n\n public override getEditComponent(): Component {\n return editComponent;\n }\n\n public override getConfigurationComponent(): Component {\n return configurationComponent;\n }\n\n public override isFilterable(): boolean {\n return false;\n }\n}","// \n// Copyright by the Spark Development Network\n//\n// Licensed under the Rock Community License (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.rockrms.com/license\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// \n//\n\nimport { Component } from \"vue\";\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\nimport { FieldTypeBase } from \"./fieldType\";\nimport { ListItemBag } from \"@Obsidian/ViewModels/Utility/listItemBag\";\n\nexport const enum ConfigurationValueKey {\n ClientValues = \"clientValues\",\n IncludeInactive = \"includeInactive\"\n}\n\n// The edit component can be quite large, so load it only as needed.\nconst editComponent = defineAsyncComponent(async () => {\n return (await import(\"./communicationTemplateFieldComponents\")).EditComponent;\n});\n\n// The configuration component can be quite large, so load it only as needed.\nconst configurationComponent = defineAsyncComponent(async () => {\n return (await import(\"./communicationTemplateFieldComponents\")).ConfigurationComponent;\n});\n\nexport class CommunicationTemplateFieldType extends FieldTypeBase {\n public override getTextValue(value: string, configurationValues: Record): string {\n if (value === undefined || value === null || value === \"\") {\n return \"\";\n }\n\n try {\n const values = JSON.parse(configurationValues[ConfigurationValueKey.ClientValues] ?? \"[]\") as ListItemBag[];\n const selectedValue = values.find(o => o.value === value);\n\n return selectedValue?.text ?? value;\n }\n catch {\n return value;\n }\n }\n\n public override getEditComponent(): Component {\n return editComponent;\n }\n\n public override getConfigurationComponent(): Component {\n return configurationComponent;\n }\n}","// \n// Copyright by the Spark Development Network\n//\n// Licensed under the Rock Community License (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.rockrms.com/license\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// \n//\nimport { Component } from \"vue\";\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\nimport { ComparisonType } from \"@Obsidian/Enums/Reporting/comparisonType\";\nimport { numericComparisonTypes } from \"@Obsidian/Core/Reporting/comparisonType\";\nimport { toCurrencyOrNull } from \"@Obsidian/Utility/numberUtils\";\nimport { FieldTypeBase } from \"./fieldType\";\n\n// The components can be quite large, so load only as needed.\nconst editComponent = defineAsyncComponent(async () => {\n return (await import(\"./currencyFieldComponents\")).EditComponent;\n});\n\n// The configuration component can be quite large, so load it only as needed.\nconst configurationComponent = defineAsyncComponent(async () => {\n return (await import(\"./currencyFieldComponents\")).ConfigurationComponent;\n});\n\n/**\n * The field type handler for the Currency field.\n */\nexport class CurrencyFieldType extends FieldTypeBase {\n public override getTextValue(value: string, _configurationValues: Record): string {\n return toCurrencyOrNull(value) ?? \"\";\n }\n\n public override getEditComponent(): Component {\n return editComponent;\n }\n\n public override getConfigurationComponent(): Component {\n return configurationComponent;\n }\n\n override getSupportedComparisonTypes(): ComparisonType {\n return numericComparisonTypes;\n }\n}\n","// \n// Copyright by the Spark Development Network\n//\n// Licensed under the Rock Community License (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.rockrms.com/license\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// \n//\nimport { Component } from \"vue\";\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\nimport { ComparisonType } from \"@Obsidian/Enums/Reporting/comparisonType\";\nimport { dateComparisonTypes } from \"@Obsidian/Core/Reporting/comparisonType\";\nimport { ComparisonValue } from \"@Obsidian/Types/Reporting/comparisonValue\";\nimport { asBoolean } from \"@Obsidian/Utility/booleanUtils\";\nimport { toNumber } from \"@Obsidian/Utility/numberUtils\";\nimport { calculateSlidingDateRange, getRangeTypeText, getTimeUnitText, parseSlidingDateRangeString, RangeType, TimeUnit } from \"@Obsidian/Utility/slidingDateRange\";\nimport { RockDateTime } from \"@Obsidian/Utility/rockDateTime\";\nimport { FieldTypeBase } from \"./fieldType\";\nimport { getStandardFilterComponent } from \"./utils\";\n\nexport const enum ConfigurationValueKey {\n Format = \"format\",\n DisplayDiff = \"displayDiff\",\n DisplayCurrentOption = \"displayCurrentOption\",\n DatePickerControlType = \"datePickerControlType\",\n FutureYearCount = \"futureYearCount\"\n}\n\n\n// The edit component can be quite large, so load it only as needed.\nconst editComponent = defineAsyncComponent(async () => {\n return (await import(\"./dateFieldComponents\")).EditComponent;\n});\n\n// The configuration component can be quite large, so load it only as needed.\nconst configurationComponent = defineAsyncComponent(async () => {\n return (await import(\"./dateFieldComponents\")).ConfigurationComponent;\n});\n\n// Load the filter component as needed.\nconst filterComponent = defineAsyncComponent(async () => {\n return (await import(\"./dateFieldComponents\")).FilterComponent;\n});\n\n/**\n * The field type handler for the Date field.\n */\nexport class DateFieldType extends FieldTypeBase {\n public override getTextValue(value: string, configurationValues: Record): string {\n if (this.isCurrentDateValue(value)) {\n return this.getCurrentDateText(value);\n }\n else if (value) {\n const dateValue = RockDateTime.parseISO(value);\n const dateFormatTemplate = configurationValues[ConfigurationValueKey.Format] || \"MM/dd/yyy\";\n\n if (dateValue !== null) {\n let textValue = dateValue.toASPString(dateFormatTemplate);\n\n const displayDiff = asBoolean(configurationValues[ConfigurationValueKey.DisplayDiff]);\n\n if (displayDiff === true) {\n textValue = `${textValue} ${dateValue.toElapsedString()}`;\n }\n\n return textValue;\n }\n else {\n return \"\";\n }\n }\n else {\n return \"\";\n }\n }\n\n public override getEditComponent(): Component {\n return editComponent;\n }\n\n public override getConfigurationComponent(): Component {\n return configurationComponent;\n }\n\n public override getSupportedComparisonTypes(): ComparisonType {\n return dateComparisonTypes;\n }\n\n public override getFilterComponent(): Component {\n return getStandardFilterComponent(this.getSupportedComparisonTypes(), filterComponent, {\n updateComparisonTypeNames: (options) => {\n options.filter(o => o.value === ComparisonType.Between.toString())\n .forEach(o => o.text = \"Range\");\n }\n });\n }\n\n public override getFilterValueDescription(value: ComparisonValue, configurationValues: Record): string {\n if (value.comparisonType === ComparisonType.Between) {\n return `During '${this.getFilterValueText(value, configurationValues)}'`;\n }\n\n return super.getFilterValueDescription(value, configurationValues);\n }\n\n public override getFilterValueText(value: ComparisonValue, _configurationValues: Record): string {\n const filterValues = value.value.split(\"\\t\");\n\n // If the comparison type is Between, then we need to use the second\n // value that was specified.\n if (value.comparisonType === ComparisonType.Between && filterValues.length > 1) {\n const range = parseSlidingDateRangeString(filterValues[1]);\n\n // If we couldn't parse the range information then just return\n // the raw value, which should be an empty string, but would give\n // some indication that something is wrong if it isn't.\n if (range === null) {\n return filterValues[1];\n }\n\n // Get the calculated values from the SlidingDateRange.\n const rangeTypeText = getRangeTypeText(range.rangeType);\n const timeUnitValue = range.timeValue ?? 1;\n const timeUnitText = getTimeUnitText(range.timeUnit ?? TimeUnit.Hour) + (timeUnitValue !== 1 ? \"s\" : \"\");\n\n // Format the text depending on the range type.\n if (range.rangeType === RangeType.Current) {\n return `${rangeTypeText} ${timeUnitText}`;\n }\n else if (([RangeType.Last, RangeType.Previous, RangeType.Next, RangeType.Upcoming] as number[]).includes(range.rangeType)) {\n return `${rangeTypeText} ${timeUnitValue} ${timeUnitText}`;\n }\n else {\n if (range.lowerDate && range.upperDate) {\n return `${range.lowerDate} to ${range.upperDate}`;\n }\n else if (range.lowerDate) {\n return `from ${range.lowerDate}`;\n }\n else if (range.upperDate) {\n return `through ${range.upperDate}`;\n }\n else {\n return \"\";\n }\n }\n }\n else {\n // If it's not a between, check if it's a \"Current Date\" value.\n if (this.isCurrentDateValue(filterValues[0])) {\n return `'${this.getCurrentDateText(filterValues[0])}'`;\n }\n\n // Nope, just use the date value specified.\n return filterValues[0] ? `'${filterValues[0]}'` : \"\";\n }\n }\n\n public override doesValueMatchFilter(value: string, filterValue: ComparisonValue, configurationValues: Record): boolean {\n if (!filterValue.comparisonType) {\n return false;\n }\n\n const filterValueValues = filterValue.value.split(\"\\t\");\n\n // Try to parse the value as a date. If it can't be parsed then check\n // it against the Is Blank and Is Not Blank comparison types.\n const valueDate = RockDateTime.parseISO(value ?? \"\");\n\n if (filterValue.comparisonType === ComparisonType.IsBlank) {\n return valueDate === null;\n }\n else if (filterValue.comparisonType === ComparisonType.IsNotBlank) {\n return valueDate !== null;\n }\n else if (valueDate === null) {\n return false;\n }\n\n if (filterValue.comparisonType === ComparisonType.Between && filterValueValues.length > 1) {\n const slidingRange = parseSlidingDateRangeString(filterValueValues[1]);\n\n if (!slidingRange) {\n return false;\n }\n\n const dateRange = calculateSlidingDateRange(slidingRange);\n\n // check if the date range was not valid or the value is before the\n // start date and time.\n if (!dateRange.start || valueDate.toMilliseconds() < dateRange.start.toMilliseconds()) {\n return false;\n }\n\n if (dateRange.end && valueDate.toMilliseconds() >= dateRange.end.toMilliseconds()) {\n return false;\n }\n\n return true;\n }\n\n // Try to parse the filter date. If it can't be parsed then no match.\n const filterDate = this.getRelativeOrAbsoluteDate(filterValueValues[0]);\n\n if (filterDate === null) {\n return false;\n }\n\n // Convert the two dates into a format that we can do numeric comparison on.\n const newFilterValue: ComparisonValue = {\n comparisonType: filterValue.comparisonType,\n value: filterDate.toASPString(\"yyyyMMdd\")\n };\n\n return super.doesValueMatchFilter(valueDate.toASPString(\"yyyyMMdd\"), newFilterValue, configurationValues);\n }\n\n /**\n * Determines if the value is a \"current date\" value, which would then\n * specify the number of days +/- to adjust.\n *\n * @param value The value to be checked.\n *\n * @returns true if the value represents a \"current date\" value; otherwise false.\n */\n private isCurrentDateValue(value: string): boolean {\n return value.indexOf(\"CURRENT\") === 0;\n }\n\n /**\n * Get the text that describes the \"current date\" value specified.\n *\n * @param value The value that contains the \"current date\" value.\n *\n * @returns A human friendly description of the \"current date\" value.\n */\n private getCurrentDateText(value: string): string {\n const parts = (value ?? \"\").split(\":\");\n const diff = parts.length === 2 ? toNumber(parts[1]) : 0;\n\n if (diff === 1) {\n return \"Current Date plus 1 day\";\n }\n else if (diff > 0) {\n return `Current Date plus ${diff} days`;\n }\n else if (diff === -1) {\n return \"Current Date minus 1 day\";\n }\n else if (diff < 0) {\n return `Current Date minus ${Math.abs(diff)} days`;\n }\n else {\n return \"Current Date\";\n }\n }\n\n /**\n * Gets the relatative date if available otherwise the absolute date.\n *\n * @param value The string value to be parsed as relative or absolute.\n *\n * @returns A new RockDateTime instance that represents the value or null if it couldn't be determined.\n */\n private getRelativeOrAbsoluteDate(value: string): RockDateTime | null {\n if (!this.isCurrentDateValue(value)) {\n return RockDateTime.parseISO(value);\n }\n\n const today = RockDateTime.now().date;\n const valueParts = value.split(\":\");\n\n if (valueParts.length > 1) {\n return today.addDays(toNumber(valueParts[1]));\n }\n\n return today;\n }\n}\n","// \n// Copyright by the Spark Development Network\n//\n// Licensed under the Rock Community License (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.rockrms.com/license\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// \n//\nimport { Component } from \"vue\";\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\nimport { toNumber } from \"@Obsidian/Utility/numberUtils\";\nimport { DateTimeFormat, RockDateTime } from \"@Obsidian/Utility/rockDateTime\";\nimport { FieldTypeBase } from \"./fieldType\";\n\n\n// The edit component can be quite large, so load it only as needed.\nconst editComponent = defineAsyncComponent(async () => {\n return (await import(\"./dateRangeFieldComponents\")).EditComponent;\n});\n\n// The configuration component can be quite large, so load it only as needed.\nconst configurationComponent = defineAsyncComponent(async () => {\n return (await import(\"./dateRangeFieldComponents\")).ConfigurationComponent;\n});\n\n/**\n * The field type handler for the Date Range field.\n */\nexport class DateRangeFieldType extends FieldTypeBase {\n public override getTextValue(value: string, _configurationValues: Record): string {\n const dateParts = (value ?? \"\").split(\",\");\n\n if (dateParts.length !== 2) {\n return \"\";\n }\n\n const lowerDateParts = /^(\\d+)-(\\d+)-(\\d+)/.exec(dateParts[0]);\n const upperDateParts = /^(\\d+)-(\\d+)-(\\d+)/.exec(dateParts[1]);\n\n const lowerDate = lowerDateParts !== null ? RockDateTime.fromParts(toNumber(lowerDateParts[1]), toNumber(lowerDateParts[2]), toNumber(lowerDateParts[3])) : null;\n const upperDate = upperDateParts !== null ? RockDateTime.fromParts(toNumber(upperDateParts[1]), toNumber(upperDateParts[2]), toNumber(upperDateParts[3])) : null;\n\n if (lowerDate !== null && upperDate !== null) {\n return `${lowerDate.toLocaleString(DateTimeFormat.DateShort)} to ${upperDate.toLocaleString(DateTimeFormat.DateShort)}`;\n }\n else if (lowerDate !== null) {\n return `from ${lowerDate.toLocaleString(DateTimeFormat.DateShort)}`;\n }\n else if (upperDate !== null) {\n return `through ${upperDate.toLocaleString(DateTimeFormat.DateShort)}`;\n }\n else {\n return \"\";\n }\n }\n\n public override getEditComponent(): Component {\n return editComponent;\n }\n\n public override getConfigurationComponent(): Component {\n return configurationComponent;\n }\n\n public override isFilterable(): boolean {\n return false;\n }\n}\n","// \n// Copyright by the Spark Development Network\n//\n// Licensed under the Rock Community License (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.rockrms.com/license\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// \n//\nimport { Component } from \"vue\";\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\nimport { ComparisonType } from \"@Obsidian/Enums/Reporting/comparisonType\";\nimport { dateComparisonTypes } from \"@Obsidian/Core/Reporting/comparisonType\";\nimport { ComparisonValue } from \"@Obsidian/Types/Reporting/comparisonValue\";\nimport { asBoolean } from \"@Obsidian/Utility/booleanUtils\";\nimport { toNumber } from \"@Obsidian/Utility/numberUtils\";\nimport { getRangeTypeText, getTimeUnitText, parseSlidingDateRangeString, RangeType, TimeUnit } from \"@Obsidian/Utility/slidingDateRange\";\nimport { RockDateTime } from \"@Obsidian/Utility/rockDateTime\";\nimport { FieldTypeBase } from \"./fieldType\";\nimport { getStandardFilterComponent } from \"./utils\";\n\nexport const enum ConfigurationValueKey {\n Format = \"format\",\n DisplayAsElapsedTime = \"displayDiff\",\n DisplayCurrentOption = \"displayCurrentOption\"\n}\n\n\n// The edit component can be quite large, so load it only as needed.\nconst editComponent = defineAsyncComponent(async () => {\n return (await import(\"./dateTimeFieldComponents\")).EditComponent;\n});\n\n// The configuration component can be quite large, so load it only as needed.\nconst configurationComponent = defineAsyncComponent(async () => {\n return (await import(\"./dateTimeFieldComponents\")).ConfigurationComponent;\n});\n\n// Load the filter component as needed.\nconst filterComponent = defineAsyncComponent(async () => {\n return (await import(\"./dateTimeFieldComponents\")).FilterComponent;\n});\n\n\n/**\n * The field type handler for the Date Time field.\n */\nexport class DateTimeFieldType extends FieldTypeBase {\n public override getTextValue(value: string, configurationValues: Record): string {\n if (this.isCurrentDateValue(value)) {\n return this.getCurrentDateText(value);\n }\n else if (value) {\n const dateValue = RockDateTime.parseISO(value);\n const dateFormatTemplate = configurationValues[ConfigurationValueKey.Format] || \"MM/dd/yyy\";\n\n if (dateValue !== null) {\n let textValue = dateValue.toASPString(dateFormatTemplate);\n\n const displayDiff = asBoolean(configurationValues[ConfigurationValueKey.DisplayAsElapsedTime]);\n\n if (displayDiff === true) {\n textValue = `${textValue} ${dateValue.toElapsedString()}`;\n }\n\n return textValue;\n }\n else {\n return \"\";\n }\n }\n else {\n return \"\";\n }\n }\n\n public override getEditComponent(): Component {\n return editComponent;\n }\n\n public override getConfigurationComponent(): Component {\n return configurationComponent;\n }\n\n public override getSupportedComparisonTypes(): ComparisonType {\n return dateComparisonTypes;\n }\n\n public override getFilterComponent(): Component {\n return getStandardFilterComponent(this.getSupportedComparisonTypes(), filterComponent, {\n updateComparisonTypeNames: (options) => {\n options.filter(o => o.value === ComparisonType.Between.toString())\n .forEach(o => o.text = \"Range\");\n }\n });\n }\n\n public override getFilterValueDescription(value: ComparisonValue, configurationValues: Record): string {\n if (value.comparisonType === ComparisonType.Between) {\n return `During '${this.getFilterValueText(value, configurationValues)}'`;\n }\n\n return super.getFilterValueDescription(value, configurationValues);\n }\n\n public override getFilterValueText(value: ComparisonValue, _configurationValues: Record): string {\n const filterValues = value.value.split(\"\\t\");\n\n // If the comparison type is Between, then we need to use the second\n // value that was specified.\n if (value.comparisonType === ComparisonType.Between && filterValues.length > 1) {\n const range = parseSlidingDateRangeString(filterValues[1]);\n\n // If we couldn't parse the range information then just return\n // the raw value, which should be an empty string, but would give\n // some indication that something is wrong if it isn't.\n if (range === null) {\n return filterValues[1];\n }\n\n // Get the calculated values from the SlidingDateRange.\n const rangeTypeText = getRangeTypeText(range.rangeType);\n const timeUnitValue = range.timeValue ?? 1;\n const timeUnitText = getTimeUnitText(range.timeUnit ?? TimeUnit.Hour) + (timeUnitValue !== 1 ? \"s\" : \"\");\n\n // Format the text depending on the range type.\n if (range.rangeType === RangeType.Current) {\n return `${rangeTypeText} ${timeUnitText}`;\n }\n else if (([RangeType.Last, RangeType.Previous, RangeType.Next, RangeType.Upcoming] as number[]).includes(range.rangeType)) {\n return `${rangeTypeText} ${timeUnitValue} ${timeUnitText}`;\n }\n else {\n if (range.lowerDate && range.upperDate) {\n return `${range.lowerDate} to ${range.upperDate}`;\n }\n else if (range.lowerDate) {\n return `from ${range.lowerDate}`;\n }\n else if (range.upperDate) {\n return `through ${range.upperDate}`;\n }\n else {\n return \"\";\n }\n }\n }\n else {\n // If it's not a between, check if it's a \"Current Date\" value.\n if (this.isCurrentDateValue(filterValues[0])) {\n return `'${this.getCurrentDateText(filterValues[0])}'`;\n }\n\n // Nope, just use the date value specified.\n return filterValues[0] ? `'${filterValues[0]}'` : \"\";\n }\n }\n\n /**\n * Determines if the value is a \"current date\" value, which would then\n * specify the number of minutes +/- to adjust.\n *\n * @param value The value to be checked.\n *\n * @returns true if the value represents a \"current date\" value; otherwise false.\n */\n private isCurrentDateValue(value: string): boolean {\n return value.indexOf(\"CURRENT\") === 0;\n }\n\n /**\n * Get the text that describes the \"current date\" value specified.\n *\n * @param value The value that contains the \"current date\" value.\n *\n * @returns A human friendly description of the \"current date\" value.\n */\n private getCurrentDateText(value: string): string {\n const parts = value.split(\":\");\n const diff = parts.length === 2 ? toNumber(parts[1]) : 0;\n\n if (diff === 1) {\n return \"Current Time plus 1 minute\";\n }\n else if (diff > 0) {\n return `Current Time plus ${diff} minutes`;\n }\n else if (diff === -1) {\n return \"Current Time minus 1 minute\";\n }\n else if (diff < 0) {\n return `Current Time minus ${Math.abs(diff)} minutes`;\n }\n else {\n return \"Current Time\";\n }\n }\n}\n","// \n// Copyright by the Spark Development Network\n//\n// Licensed under the Rock Community License (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.rockrms.com/license\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// \n//\nimport { Component } from \"vue\";\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\nimport { toNumberOrNull } from \"@Obsidian/Utility/numberUtils\";\nimport { FieldTypeBase } from \"./fieldType\";\nimport { getStandardFilterComponent } from \"./utils\";\nimport { DayOfWeek } from \"@Obsidian/Enums/Controls/dayOfWeek\";\n\n// The edit component can be quite large, so load it only as needed.\nconst editComponent = defineAsyncComponent(async () => {\n return (await import(\"./dayOfWeekFieldComponents\")).EditComponent;\n});\n\n// The filter component can be quite large, so load it only as needed.\nconst filterComponent = defineAsyncComponent(async () => {\n return (await import(\"./dayOfWeekFieldComponents\")).FilterComponent;\n});\n\n// The configuration component can be quite large, so load it only as needed.\nconst configurationComponent = defineAsyncComponent(async () => {\n return (await import(\"./dayOfWeekFieldComponents\")).ConfigurationComponent;\n});\n\n/**\n * The field type handler for the DayOfWeek field.\n */\nexport class DayOfWeekFieldType extends FieldTypeBase {\n public override getTextValue(value: string, _configurationValues: Record): string {\n const dayValue = toNumberOrNull(value);\n\n if (dayValue === null) {\n return \"\";\n }\n else {\n switch (dayValue) {\n case DayOfWeek.Sunday:\n return \"Sunday\";\n\n case DayOfWeek.Monday:\n return \"Monday\";\n\n case DayOfWeek.Tuesday:\n return \"Tuesday\";\n\n case DayOfWeek.Wednesday:\n return \"Wednesday\";\n\n case DayOfWeek.Thursday:\n return \"Thursday\";\n\n case DayOfWeek.Friday:\n return \"Friday\";\n\n case DayOfWeek.Saturday:\n return \"Saturday\";\n\n default:\n return \"\";\n }\n }\n }\n\n public override getEditComponent(): Component {\n return editComponent;\n }\n\n public override getConfigurationComponent(): Component {\n return configurationComponent;\n }\n\n public override getFilterComponent(): Component {\n return getStandardFilterComponent(\"Is\", filterComponent);\n }\n}\n","// \n// Copyright by the Spark Development Network\n//\n// Licensed under the Rock Community License (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.rockrms.com/license\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// \n//\nimport { Component } from \"vue\";\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\nimport { ComparisonType } from \"@Obsidian/Enums/Reporting/comparisonType\";\nimport { containsComparisonTypes } from \"@Obsidian/Core/Reporting/comparisonType\";\nimport { toNumberOrNull } from \"@Obsidian/Utility/numberUtils\";\nimport { DayOfWeek } from \"@Obsidian/Enums/Controls/dayOfWeek\";\nimport { FieldTypeBase } from \"./fieldType\";\n\n\n// The edit component can be quite large, so load it only as needed.\nconst editComponent = defineAsyncComponent(async () => {\n return (await import(\"./daysOfWeekFieldComponents\")).EditComponent;\n});\n\n// The configuration component can be quite large, so load it only as needed.\nconst configurationComponent = defineAsyncComponent(async () => {\n return (await import(\"./daysOfWeekFieldComponents\")).ConfigurationComponent;\n});\n\n/**\n * The field type handler for the DaysOfWeek field.\n */\nexport class DaysOfWeekFieldType extends FieldTypeBase {\n public override getTextValue(value: string, _configurationValues: Record): string {\n if (value === null || value === undefined || value === \"\") {\n return \"\";\n }\n\n return value.split(\",\")\n .map(v => {\n const dayValue = toNumberOrNull(v);\n\n if (dayValue === null) {\n return \"\";\n }\n else {\n switch (dayValue) {\n case DayOfWeek.Sunday:\n return \"Sunday\";\n\n case DayOfWeek.Monday:\n return \"Monday\";\n\n case DayOfWeek.Tuesday:\n return \"Tuesday\";\n\n case DayOfWeek.Wednesday:\n return \"Wednesday\";\n\n case DayOfWeek.Thursday:\n return \"Thursday\";\n\n case DayOfWeek.Friday:\n return \"Friday\";\n\n case DayOfWeek.Saturday:\n return \"Saturday\";\n\n default:\n return \"\";\n }\n }\n })\n .filter(v => v != \"\")\n .join(\", \");\n }\n\n public override getEditComponent(): Component {\n return editComponent;\n }\n\n public override getConfigurationComponent(): Component {\n return configurationComponent;\n }\n\n public override getSupportedComparisonTypes(): ComparisonType {\n return containsComparisonTypes;\n }\n}\n","// \n// Copyright by the Spark Development Network\n//\n// Licensed under the Rock Community License (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.rockrms.com/license\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// \n//\nimport { Component } from \"vue\";\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\nimport { ComparisonType } from \"@Obsidian/Enums/Reporting/comparisonType\";\nimport { numericComparisonTypes } from \"@Obsidian/Core/Reporting/comparisonType\";\nimport { toNumberOrNull } from \"@Obsidian/Utility/numberUtils\";\nimport { FieldTypeBase } from \"./fieldType\";\n\n\n// The edit component can be quite large, so load it only as needed.\nconst editComponent = defineAsyncComponent(async () => {\n return (await import(\"./decimalFieldComponents\")).EditComponent;\n});\n\n// The configuration component can be quite large, so load it only as needed.\nconst configurationComponent = defineAsyncComponent(async () => {\n return (await import(\"./decimalFieldComponents\")).ConfigurationComponent;\n});\n\n/**\n * The field type handler for the Decimal field.\n */\nexport class DecimalFieldType extends FieldTypeBase {\n public override getTextValue(value: string, _configurationValues: Record): string {\n return toNumberOrNull(value)?.toString() ?? \"\";\n }\n\n public override getEditComponent(): Component {\n return editComponent;\n }\n\n public override getConfigurationComponent(): Component {\n return configurationComponent;\n }\n\n public override getSupportedComparisonTypes(): ComparisonType {\n return numericComparisonTypes;\n }\n}\n","// \n// Copyright by the Spark Development Network\n//\n// Licensed under the Rock Community License (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.rockrms.com/license\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// \n//\nimport { Component } from \"vue\";\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\nimport { toNumberOrNull } from \"@Obsidian/Utility/numberUtils\";\nimport { FieldTypeBase } from \"./fieldType\";\n\n\n// The edit component can be quite large, so load it only as needed.\nconst editComponent = defineAsyncComponent(async () => {\n return (await import(\"./decimalRangeFieldComponents\")).EditComponent;\n});\n\n// The configuration component can be quite large, so load it only as needed.\nconst configurationComponent = defineAsyncComponent(async () => {\n return (await import(\"./decimalRangeFieldComponents\")).ConfigurationComponent;\n});\n\n/**\n * The field type handler for the Decimal Range field.\n */\nexport class DecimalRangeFieldType extends FieldTypeBase {\n public override getTextValue(value: string, _configurationValues: Record): string {\n if (value === null || value === undefined || value === \"\" || value === \",\") {\n return \"\";\n }\n\n const numbers = value.split(\",\").map(v => toNumberOrNull(v));\n\n // If there are not two components then it's not valid, or if both\n // components are not numbers then it's not valid.\n if (numbers.length !== 2 || (numbers[0] === null && numbers[1] === null)) {\n return \"\";\n }\n\n if (numbers[0] === null) {\n return `through ${numbers[1]}`;\n }\n else if (numbers[1] === null) {\n return `from ${numbers[0]}`;\n }\n else {\n return `${numbers[0]} to ${numbers[1]}`;\n }\n }\n\n public override getEditComponent(): Component {\n return editComponent;\n }\n\n public override getConfigurationComponent(): Component {\n return configurationComponent;\n }\n\n public override isFilterable(): boolean {\n return false;\n }\n}\n","// \n// Copyright by the Spark Development Network\n//\n// Licensed under the Rock Community License (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.rockrms.com/license\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// \n//\nimport { Component } from \"vue\";\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\nimport { ComparisonType } from \"@Obsidian/Enums/Reporting/comparisonType\";\nimport { containsComparisonTypes } from \"@Obsidian/Core/Reporting/comparisonType\";\nimport { ComparisonValue } from \"@Obsidian/Types/Reporting/comparisonValue\";\nimport { asBoolean } from \"@Obsidian/Utility/booleanUtils\";\nimport { FieldTypeBase } from \"./fieldType\";\nimport { getStandardFilterComponent } from \"./utils\";\n\n/**\n * The key names for the configuration properties available when editing the\n * configuration of a DefinedValue field type.\n */\nexport const enum ConfigurationPropertyKey {\n /** The defined types available to be picked. */\n DefinedTypes = \"definedTypes\",\n\n /** The defined values available to be picked. */\n DefinedValues = \"definedValues\"\n}\n\n/**\n * The configuration value keys used by the configuraiton and edit controls.\n */\nexport const enum ConfigurationValueKey {\n /** The unique identifier of the defined type currently selected. */\n DefinedType = \"definedtype\",\n\n /**\n * The unique identifiers of the defined values that can be selected\n * during editing.\n */\n Values = \"values\",\n\n /**\n * Contains \"True\" if the edit control should be rendered to allow\n * selecting multiple values.\n */\n AllowMultiple = \"allowmultiple\",\n\n /**\n * Contains \"True\" if the edit control should display descriptions instead\n * of values.\n */\n DisplayDescription = \"displaydescription\",\n\n /**\n * Contains \"True\" if the edit control should use enhanced selection.\n */\n EnhancedSelection = \"enhancedselection\",\n\n /** Contains \"True\" if in-active values should be included. */\n IncludeInactive = \"includeInactive\",\n\n /** A comma separated list of selectable value identifiers. */\n SelectableValues = \"selectableValues\",\n\n /** Contains \"True\" if adding new values is permitted. */\n AllowAddingNewValues = \"AllowAddingNewValues\",\n\n /** The number of columns to use when multiple selection is allowed. */\n RepeatColumns = \"RepeatColumns\"\n}\n\nexport type ValueItem = {\n value: string,\n text: string,\n description: string\n};\n\nexport type ClientValue = {\n value: string,\n text: string,\n description: string\n};\n\n\n// The edit component can be quite large, so load it only as needed.\nconst editComponent = defineAsyncComponent(async () => {\n return (await import(\"./definedValueFieldComponents\")).EditComponent;\n});\n\n// The configuration component can be quite large, so load it only as needed.\nconst configurationComponent = defineAsyncComponent(async () => {\n return (await import(\"./definedValueFieldComponents\")).ConfigurationComponent;\n});\n\n// Load the filter component only as needed.\nconst filterComponent = defineAsyncComponent(async () => {\n return (await import(\"./definedValueFieldComponents\")).FilterComponent;\n});\n\n/**\n * The field type handler for the Defined Value field.\n */\nexport class DefinedValueFieldType extends FieldTypeBase {\n public override getTextValue(value: string, configurationValues: Record): string {\n try {\n const clientValue = JSON.parse(value ?? \"\") as ClientValue;\n\n try {\n const values = JSON.parse(configurationValues[ConfigurationValueKey.Values] ?? \"[]\") as ValueItem[];\n const displayDescription = asBoolean(configurationValues[ConfigurationValueKey.DisplayDescription]);\n const rawValues = clientValue.value.split(\",\");\n\n return values.filter(v => rawValues.includes(v.value))\n .map(v => displayDescription && v.description ? v.description : v.text)\n .join(\", \");\n }\n catch {\n return clientValue.value ?? \"\";\n }\n }\n catch {\n return \"\";\n }\n }\n\n public override getEditComponent(): Component {\n return editComponent;\n }\n\n public override getConfigurationComponent(): Component {\n return configurationComponent;\n }\n\n public override getSupportedComparisonTypes(): ComparisonType {\n return containsComparisonTypes;\n }\n\n public override getFilterValueText(value: ComparisonValue, configurationValues: Record): string {\n try {\n const clientValue = JSON.parse(value.value ?? \"\") as ClientValue;\n\n const values = JSON.parse(configurationValues?.[ConfigurationValueKey.Values] ?? \"[]\") as ValueItem[];\n const useDescription = asBoolean(configurationValues?.[ConfigurationValueKey.DisplayDescription]);\n const rawValues = clientValue.value.split(\",\");\n\n const text = values.filter(v => rawValues.includes(v.value))\n .map(v => useDescription ? v.description : v.text)\n .join(\"' OR '\");\n\n return text ? `'${text}'` : \"\";\n }\n catch {\n return \"\";\n }\n }\n\n public override getFilterComponent(configurationValues: Record): Component {\n if (asBoolean(configurationValues[ConfigurationValueKey.AllowMultiple])) {\n return getStandardFilterComponent(this.getSupportedComparisonTypes(), filterComponent);\n }\n else {\n return getStandardFilterComponent(\"Is\", filterComponent);\n }\n }\n\n public override doesValueMatchFilter(value: string, filterValue: ComparisonValue, _configurationValues: Record): boolean {\n const clientValue = JSON.parse(value || \"{}\") as ClientValue;\n let comparisonType = filterValue.comparisonType;\n\n if (comparisonType === ComparisonType.EqualTo) {\n // Treat EqualTo as if it were Contains.\n comparisonType = ComparisonType.Contains;\n }\n else if (comparisonType === ComparisonType.NotEqualTo) {\n // Treat NotEqualTo as if it were DoesNotContain.\n comparisonType = ComparisonType.DoesNotContain;\n }\n\n if (comparisonType === ComparisonType.IsBlank) {\n return (clientValue.value ?? \"\") === \"\";\n }\n else if (comparisonType === ComparisonType.IsNotBlank) {\n return (clientValue.value ?? \"\") !== \"\";\n }\n\n const filterValueGuids = (JSON.parse(filterValue?.value || \"{}\") as ClientValue).value;\n const selectedValues = (filterValueGuids ?? \"\").split(\",\").filter(v => v !== \"\").map(v => v.toLowerCase());\n\n if (selectedValues.length > 0) {\n const userValues = (clientValue.value ?? \"\").toLowerCase().split(\",\").filter(v => v !== \"\");\n\n if (comparisonType === ComparisonType.Contains) {\n let matchedCount = 0;\n\n for (const userValue of userValues) {\n if (selectedValues.includes(userValue)) {\n matchedCount += 1;\n }\n }\n\n return matchedCount > 0;\n }\n else {\n let matchedCount = 0;\n\n for (const userValue of userValues) {\n if (selectedValues.includes(userValue)) {\n matchedCount += 1;\n }\n }\n\n return matchedCount !== selectedValues.length;\n }\n }\n\n return false;\n }\n}\n","// \n// Copyright by the Spark Development Network\n//\n// Licensed under the Rock Community License (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.rockrms.com/license\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// \n//\nimport { Component } from \"vue\";\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\nimport { asBoolean } from \"@Obsidian/Utility/booleanUtils\";\nimport { List } from \"@Obsidian/Utility/linq\";\nimport { FieldTypeBase } from \"./fieldType\";\n\nexport const enum ConfigurationValueKey {\n Values = \"values\",\n DisplayDescription = \"displaydescription\"\n}\n\nexport type ValueItem = {\n value: string,\n text: string,\n description: string\n};\n\nexport type ClientValue = {\n value?: string;\n text?: string;\n description?: string;\n};\n\n\n// The edit component can be quite large, so load it only as needed.\nconst editComponent = defineAsyncComponent(async () => {\n return (await import(\"./definedValueRangeFieldComponents\")).EditComponent;\n});\n\n/**\n * The field type handler for the Defined Value Range field.\n */\nexport class DefinedValueRangeFieldType extends FieldTypeBase {\n public override getTextValue(value: string, configurationValues: Record): string {\n try {\n const clientValue = JSON.parse(value) as ClientValue;\n\n try {\n const values = new List(JSON.parse(configurationValues[ConfigurationValueKey.Values] ?? \"[]\") as ValueItem[]);\n const displayDescription = asBoolean(configurationValues[ConfigurationValueKey.DisplayDescription]);\n const rawValues = (clientValue.value ?? \"\").split(\",\");\n\n if (rawValues.length !== 2) {\n return value;\n }\n\n const lowerValue = values.firstOrUndefined(v => v?.value === rawValues[0]);\n const upperValue = values.firstOrUndefined(v => v?.value === rawValues[1]);\n\n if (lowerValue === undefined && upperValue === undefined) {\n return \"\";\n }\n\n if (displayDescription) {\n return `${lowerValue?.description ?? \"\"} to ${upperValue?.description ?? \"\"}`;\n }\n else {\n return `${lowerValue?.text ?? \"\"} to ${upperValue?.text ?? \"\"}`;\n }\n }\n catch {\n return clientValue.value ?? \"\";\n }\n }\n catch {\n return value;\n }\n }\n\n public override getCondensedTextValue(value: string, _configurationValues: Record): string {\n try {\n const clientValue = JSON.parse(value ?? \"\") as ClientValue;\n\n return clientValue.text ?? \"\";\n }\n catch {\n return value;\n }\n }\n\n public override getEditComponent(): Component {\n return editComponent;\n }\n\n public override isFilterable(): boolean {\n return false;\n }\n}\n","// \n// Copyright by the Spark Development Network\n//\n// Licensed under the Rock Community License (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.rockrms.com/license\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// \n//\nimport { Component } from \"vue\";\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\nimport { ComparisonType } from \"@Obsidian/Enums/Reporting/comparisonType\";\nimport { stringComparisonTypes } from \"@Obsidian/Core/Reporting/comparisonType\";\nimport { FieldTypeBase } from \"./fieldType\";\nimport { getStandardFilterComponent } from \"./utils\";\nimport { escapeHtml } from \"@Obsidian/Utility/stringUtils\";\n\n// The edit component can be quite large, so load it only as needed.\nconst editComponent = defineAsyncComponent(async () => {\n return (await import(\"./emailFieldComponents\")).EditComponent;\n});\n\n// The filter component can be quite large, so load it only as needed.\nconst filterComponent = defineAsyncComponent(async () => {\n return (await import(\"./emailFieldComponents\")).FilterComponent;\n});\n\n// The configuration component can be quite large, so load it only as needed.\nconst configurationComponent = defineAsyncComponent(async () => {\n return (await import(\"./emailFieldComponents\")).ConfigurationComponent;\n});\n\n/**\n * The field type handler for the Email field.\n */\nexport class EmailFieldType extends FieldTypeBase {\n public override getHtmlValue(value: string, configurationValues: Record, isEscaped: boolean = false): string {\n const textValue = this.getTextValue(value, configurationValues);\n\n const html = textValue ? `${textValue}` : \"\";\n\n if (isEscaped) {\n escapeHtml(html);\n }\n\n return html;\n }\n\n public override getEditComponent(): Component {\n return editComponent;\n }\n\n public override getConfigurationComponent(): Component {\n return configurationComponent;\n }\n\n public override getFilterComponent(): Component {\n return getStandardFilterComponent(this.getSupportedComparisonTypes(), filterComponent);\n }\n\n public override getSupportedComparisonTypes(): ComparisonType {\n return stringComparisonTypes;\n }\n}\n","// \n// Copyright by the Spark Development Network\n//\n// Licensed under the Rock Community License (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.rockrms.com/license\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// \n//\n\n// \n// Copyright by the Spark Development Network\n//\n// Licensed under the Rock Community License (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.rockrms.com/license\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// \n//\n\nimport { Component } from \"vue\";\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\nimport { FieldTypeBase } from \"./fieldType\";\n\nexport const enum ConfigurationValueKey {\n DisplayPublicName = \"displaypublicname\",\n DisplayChildItemCounts = \"displaychilditemcounts\",\n DisplayActiveItemsOnly = \"displayactiveitemsonly\",\n EnhancedForLongLists = \"enhancedforlonglists\"\n}\n\n// The edit component can be quite large, so load it only as needed.\nconst editComponent = defineAsyncComponent(async () => {\n return (await import(\"./financialAccountFieldComponents\")).EditComponent;\n});\n\n// The configuration component can be quite large, so load it only as needed.\nconst configurationComponent = defineAsyncComponent(async () => {\n return (await import(\"./financialAccountFieldComponents\")).ConfigurationComponent;\n});\n\n/**\n * The field type handler for the Financial Account field.\n */\nexport class FinancialAccountFieldType extends FieldTypeBase {\n public override getTextValue(value: string, _configurationValues: Record): string {\n return value ?? \"\";\n }\n\n public override getEditComponent(): Component {\n return editComponent;\n }\n\n public override getConfigurationComponent(): Component {\n return configurationComponent;\n }\n\n public override isFilterable(): boolean {\n return false;\n }\n}","// \n// Copyright by the Spark Development Network\n//\n// Licensed under the Rock Community License (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.rockrms.com/license\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// \n//\n\n// \n// Copyright by the Spark Development Network\n//\n// Licensed under the Rock Community License (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.rockrms.com/license\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// \n//\n\nimport { Component } from \"vue\";\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\nimport { FieldTypeBase } from \"./fieldType\";\n\nexport const enum ConfigurationValueKey {\n DisplayPublicName = \"displaypublicname\",\n DisplayChildItemCounts = \"displaychilditemcounts\",\n DisplayActiveItemsOnly = \"displayactiveitemsonly\",\n EnhancedForLongLists = \"enhancedforlonglists\"\n}\n\n// The edit component can be quite large, so load it only as needed.\nconst editComponent = defineAsyncComponent(async () => {\n return (await import(\"./financialAccountsFieldComponents\")).EditComponent;\n});\n\n// The configuration component can be quite large, so load it only as needed.\nconst configurationComponent = defineAsyncComponent(async () => {\n return (await import(\"./financialAccountsFieldComponents\")).ConfigurationComponent;\n});\n\n/**\n * The field type handler for the Financial Account field.\n */\nexport class FinancialAccountsFieldType extends FieldTypeBase {\n public override getTextValue(value: string, _configurationValues: Record): string {\n return value ?? \"\";\n }\n\n public override getEditComponent(): Component {\n return editComponent;\n }\n\n public override getConfigurationComponent(): Component {\n return configurationComponent;\n }\n\n public override isFilterable(): boolean {\n return false;\n }\n}","// \n// Copyright by the Spark Development Network\n//\n// Licensed under the Rock Community License (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.rockrms.com/license\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// \n//\nimport { Component } from \"vue\";\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\nimport { ComparisonType } from \"@Obsidian/Enums/Reporting/comparisonType\";\nimport { escapeHtml } from \"@Obsidian/Utility/stringUtils\";\nimport { ListItemBag } from \"@Obsidian/ViewModels/Utility/listItemBag\";\nimport { FieldTypeBase } from \"./fieldType\";\n\n/**\n * The key names for the configuration properties available when editing the\n * configuration of a File field type.\n */\nexport const enum ConfigurationPropertyKey {\n /** The binary file types available to pick from. */\n BinaryFileTypes = \"binaryFileTypes\"\n}\n\n/**\n * The configuration value keys used by the configuraiton and edit controls.\n */\nexport const enum ConfigurationValueKey {\n /** The unique identifier of the BinaryFileType to use for uploads. */\n BinaryFileType = \"binaryFileType\",\n}\n\n// The edit component can be quite large, so load it only as needed.\nconst editComponent = defineAsyncComponent(async () => {\n return (await import(\"./fileFieldComponents\")).EditComponent;\n});\n\n// The configuration component can be quite large, so load it only as needed.\nconst configurationComponent = defineAsyncComponent(async () => {\n return (await import(\"./fileFieldComponents\")).ConfigurationComponent;\n});\n\n/**\n * The field type handler for the File field.\n */\nexport class FileFieldType extends FieldTypeBase {\n public override getTextValue(value: string, _configurationValues: Record): string {\n try {\n const realValue = JSON.parse(value) as ListItemBag;\n\n return realValue.text ?? \"\";\n }\n catch {\n return value;\n }\n }\n\n public override getHtmlValue(value: string, _configurationValues: Record, isEscaped: boolean = false): string {\n try {\n const realValue = JSON.parse(value ?? \"\") as ListItemBag;\n\n const html = `View`;\n\n if (isEscaped) {\n escapeHtml(html);\n }\n\n return html;\n }\n catch {\n if (isEscaped) {\n escapeHtml(value ?? \"\");\n }\n\n return value ?? \"\";\n }\n }\n\n public override getEditComponent(): Component {\n return editComponent;\n }\n\n public override getConfigurationComponent(): Component {\n return configurationComponent;\n }\n\n public override getSupportedComparisonTypes(): ComparisonType {\n return ComparisonType.IsBlank | ComparisonType.IsNotBlank;\n }\n}\n","// \n// Copyright by the Spark Development Network\n//\n// Licensed under the Rock Community License (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.rockrms.com/license\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// \n//\nimport { Component } from \"vue\";\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\nimport { toNumberOrNull } from \"@Obsidian/Utility/numberUtils\";\nimport { FieldTypeBase } from \"./fieldType\";\n\n// The edit component can be quite large, so load it only as needed.\nconst editComponent = defineAsyncComponent(async () => {\n return (await import(\"./genderFieldComponents\")).EditComponent;\n});\n\n// The configuration component can be quite large, so load it only as needed.\nconst configurationComponent = defineAsyncComponent(async () => {\n return (await import(\"./genderFieldComponents\")).ConfigurationComponent;\n});\n\n/**\n * The field type handler for the Gender field.\n */\nexport class GenderFieldType extends FieldTypeBase {\n public override getTextValue(value: string, _configurationValues: Record): string {\n const numberValue = toNumberOrNull(value);\n\n if (numberValue === 0) {\n return \"Unknown\";\n }\n else if (numberValue === 1) {\n return \"Male\";\n }\n else if (numberValue === 2) {\n return \"Female\";\n }\n else {\n return \"\";\n }\n }\n\n public override getEditComponent(): Component {\n return editComponent;\n }\n\n public override getConfigurationComponent(): Component {\n return configurationComponent;\n }\n}\n","// \n// Copyright by the Spark Development Network\n//\n// Licensed under the Rock Community License (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.rockrms.com/license\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// \n//\n\nimport { Component } from \"vue\";\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\nimport { FieldTypeBase } from \"./fieldType\";\nimport { ListItemBag } from \"@Obsidian/ViewModels/Utility/listItemBag\";\n\nexport const enum ConfigurationValueKey {\n GroupRolePickerLabel = \"groupAndRolePickerLabel\"\n}\n\nexport type GroupAndRoleValue = {\n groupType: ListItemBag;\n group: ListItemBag;\n groupRole: ListItemBag;\n groupTypeRoles: ListItemBag[];\n};\n\n// The edit component can be quite large, so load it only as needed.\nconst editComponent = defineAsyncComponent(async () => {\n return (await import(\"./groupAndRoleFieldComponents\")).EditComponent;\n});\n\n// The configuration component can be quite large, so load it only as needed.\nconst configurationComponent = defineAsyncComponent(async () => {\n return (await import(\"./groupAndRoleFieldComponents\")).ConfigurationComponent;\n});\n\n/**\n * The field type handler for the Social Media Account field.\n */\nexport class GroupAndRoleFieldType extends FieldTypeBase {\n public override getTextValue(value: string, _configurationValues: Record): string {\n return value ?? \"\";\n }\n\n public override getEditComponent(): Component {\n return editComponent;\n }\n\n public override getConfigurationComponent(): Component {\n return configurationComponent;\n }\n\n public override isFilterable(): boolean {\n return false;\n }\n}","// \n// Copyright by the Spark Development Network\n//\n// Licensed under the Rock Community License (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.rockrms.com/license\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// \n//\n\nimport { Component } from \"vue\";\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\nimport { FieldTypeBase } from \"./fieldType\";\n\n// The edit component can be quite large, so load it only as needed.\nconst editComponent = defineAsyncComponent(async () => {\n return (await import(\"./groupFieldComponents\")).EditComponent;\n});\n\n// The configuration component can be quite large, so load it only as needed.\nconst configurationComponent = defineAsyncComponent(async () => {\n return (await import(\"./groupFieldComponents\")).ConfigurationComponent;\n});\n\n/**\n * The field type handler for the Address field.\n */\nexport class GroupFieldType extends FieldTypeBase {\n public override getTextValue(value: string, _configurationValues: Record): string {\n return value ?? \"\";\n }\n\n public override getEditComponent(): Component {\n return editComponent;\n }\n\n public override getConfigurationComponent(): Component {\n return configurationComponent;\n }\n\n public override isFilterable(): boolean {\n return false;\n }\n}","// \n// Copyright by the Spark Development Network\n//\n// Licensed under the Rock Community License (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.rockrms.com/license\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// \n//\n\nimport { Component } from \"vue\";\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\nimport { FieldTypeBase } from \"./fieldType\";\n\nexport const enum ConfigurationValueKey {\n GroupType = \"groupTypeGuid\",\n GroupTypeLocations = \"groupTypeLocations\",\n}\n\n// The edit component can be quite large, so load it only as needed.\nconst editComponent = defineAsyncComponent(async () => {\n return (await import(\"./groupLocationTypeFieldComponents\")).EditComponent;\n});\n\n// The configuration component can be quite large, so load it only as needed.\nconst configurationComponent = defineAsyncComponent(async () => {\n return (await import(\"./groupLocationTypeFieldComponents\")).ConfigurationComponent;\n});\n\n/**\n * The field type handler for the Group Location Type field.\n */\nexport class GroupLocationTypeFieldType extends FieldTypeBase {\n public override getTextValue(value: string, _configurationValues: Record): string {\n return value ?? \"\";\n }\n\n public override getEditComponent(): Component {\n return editComponent;\n }\n\n public override getConfigurationComponent(): Component {\n return configurationComponent;\n }\n\n public override isFilterable(): boolean {\n return false;\n }\n}","// \n// Copyright by the Spark Development Network\n//\n// Licensed under the Rock Community License (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.rockrms.com/license\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// \n//\nimport { Component } from \"vue\";\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\nimport { FieldTypeBase } from \"./fieldType\";\n\nexport const enum ConfigurationValueKey {\n GroupType = \"grouptype\"\n}\n\n// The edit component can be quite large, so load it only as needed.\nconst editComponent = defineAsyncComponent(async () => {\n return (await import(\"./groupRoleFieldComponents\")).EditComponent;\n});\n\n// The configuration component can be quite large, so load it only as needed.\nconst configurationComponent = defineAsyncComponent(async () => {\n return (await import(\"./groupRoleFieldComponents\")).ConfigurationComponent;\n});\n\n/**\n * The field type handler for the Address field.\n */\nexport class GroupRoleFieldType extends FieldTypeBase {\n public override getTextValue(value: string, _configurationValues: Record): string {\n return value ?? \"\";\n }\n\n public override getEditComponent(): Component {\n return editComponent;\n }\n\n public override getConfigurationComponent(): Component {\n return configurationComponent;\n }\n\n public override isFilterable(): boolean {\n return false;\n }\n}\n","// \n// Copyright by the Spark Development Network\n//\n// Licensed under the Rock Community License (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.rockrms.com/license\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// \n//\nimport { Component } from \"vue\";\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\nimport { FieldTypeBase } from \"./fieldType\";\n\nexport const enum ConfigurationValueKey {\n AllowMultipleValues = \"allowmultiple\",\n EnhanceForLongLists = \"enhancedselection\",\n Group = \"group\"\n}\n\n// The edit component can be quite large, so load it only as needed.\nconst editComponent = defineAsyncComponent(async () => {\n return (await import(\"./groupMemberFieldComponents\")).EditComponent;\n});\n\n// The configuration component can be quite large, so load it only as needed.\nconst configurationComponent = defineAsyncComponent(async () => {\n return (await import(\"./groupMemberFieldComponents\")).ConfigurationComponent;\n});\n\n/**\n * The field type handler for the Address field.\n */\nexport class GroupMemberFieldType extends FieldTypeBase {\n public override getTextValue(value: string, _configurationValues: Record): string {\n return value ?? \"\";\n }\n\n public override getEditComponent(): Component {\n return editComponent;\n }\n\n public override getConfigurationComponent(): Component {\n return configurationComponent;\n }\n\n public override isFilterable(): boolean {\n return false;\n }\n}\n","// \n// Copyright by the Spark Development Network\n//\n// Licensed under the Rock Community License (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.rockrms.com/license\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// \n//\nimport { Component } from \"vue\";\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\nimport { FieldTypeBase } from \"./fieldType\";\nimport { ListItemBag } from \"@Obsidian/ViewModels/Utility/listItemBag\";\n\nexport const enum ConfigurationValueKey {\n GroupTypePurposeValueGuid = \"groupTypePurposeValueGuid\",\n GroupTypePurposes = \"groupTypePurposes\",\n Values = \"values\"\n}\n\n// The edit component can be quite large, so load it only as needed.\nconst editComponent = defineAsyncComponent(async () => {\n return (await import(\"./groupTypeFieldComponents\")).EditComponent;\n});\n\n// The configuration component can be quite large, so load it only as needed.\nconst configurationComponent = defineAsyncComponent(async () => {\n return (await import(\"./groupTypeFieldComponents\")).ConfigurationComponent;\n});\n\n/**\n * The field type handler for the Group Type field.\n */\nexport class GroupTypeField extends FieldTypeBase {\n public override getTextValue(value: string, configurationValues: Record): string {\n if (value === undefined || value === null || value === \"\") {\n return \"\";\n }\n\n try {\n const values = JSON.parse(configurationValues[ConfigurationValueKey.Values] ?? \"[]\") as ListItemBag[];\n const selectedValues = values.filter(o => o.value === value);\n return selectedValues.map(o => o.text).join(\", \");\n }\n catch {\n return value;\n }\n }\n\n public override getEditComponent(): Component {\n return editComponent;\n }\n\n public override getConfigurationComponent(): Component {\n return configurationComponent;\n }\n}\n","// \n// Copyright by the Spark Development Network\n//\n// Licensed under the Rock Community License (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.rockrms.com/license\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// \n//\nimport { Component } from \"vue\";\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\nimport { FieldTypeBase } from \"./fieldType\";\nimport { ListItemBag } from \"@Obsidian/ViewModels/Utility/listItemBag\";\n\nexport const enum ConfigurationValueKey {\n EnhancedSelection = \"enhancedselection\",\n RepeatColumns = \"repeatColumns\",\n Values = \"values\"\n}\n\n// The edit component can be quite large, so load it only as needed.\nconst editComponent = defineAsyncComponent(async () => {\n return (await import(\"./groupTypesFieldComponents\")).EditComponent;\n});\n\n// The configuration component can be quite large, so load it only as needed.\nconst configurationComponent = defineAsyncComponent(async () => {\n return (await import(\"./groupTypesFieldComponents\")).ConfigurationComponent;\n});\n\n/**\n * The field type handler for the Group Type field.\n */\nexport class GroupTypesFieldType extends FieldTypeBase {\n public override getTextValue(value: string, configurationValues: Record): string {\n if (value === undefined || value === null || value === \"\") {\n return \"\";\n }\n\n try {\n const values = JSON.parse(configurationValues[ConfigurationValueKey.Values] ?? \"[]\") as ListItemBag[];\n const userValues = value.split(\",\");\n const selectedValues = values.filter(o => userValues.includes(o.value ?? \"\"));\n\n return selectedValues.map(o => o.text).join(\", \");\n }\n catch {\n return value;\n }\n }\n\n public override getEditComponent(): Component {\n return editComponent;\n }\n\n public override getConfigurationComponent(): Component {\n return configurationComponent;\n }\n}\n","// \n// Copyright by the Spark Development Network\n//\n// Licensed under the Rock Community License (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.rockrms.com/license\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// \n//\nimport { Component } from \"vue\";\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\nimport { ComparisonType } from \"@Obsidian/Enums/Reporting/comparisonType\";\nimport { ListItemBag } from \"@Obsidian/ViewModels/Utility/listItemBag\";\nimport { FieldTypeBase } from \"./fieldType\";\nimport { escapeHtml } from \"@Obsidian/Utility/stringUtils\";\n\n/**\n * The key names for the configuration properties available when editing the\n * configuration of an Image field type.\n */\nexport const enum ConfigurationPropertyKey {\n /** The binary file types available to pick from. */\n BinaryFileTypes = \"binaryFileTypes\"\n}\n\n/**\n * The configuration value keys used by the configuraiton and edit controls.\n */\nexport const enum ConfigurationValueKey {\n /** The unique identifier of the BinaryFileType to use for uploads. */\n BinaryFileType = \"binaryFileType\",\n\n /** Determines if the rendered HTML should be clickable. */\n FormatAsLink = \"formatAsLink\"\n}\n\n// The edit component can be quite large, so load it only as needed.\nconst editComponent = defineAsyncComponent(async () => {\n return (await import(\"./imageFieldComponents\")).EditComponent;\n});\n\n// The configuration component can be quite large, so load it only as needed.\nconst configurationComponent = defineAsyncComponent(async () => {\n return (await import(\"./imageFieldComponents\")).ConfigurationComponent;\n});\n\n/**\n * The field type handler for the Image field.\n */\nexport class ImageFieldType extends FieldTypeBase {\n public override getTextValue(value: string, _configurationValues: Record): string {\n try {\n const realValue = JSON.parse(value ?? \"\") as ListItemBag;\n\n if (!realValue.value) {\n return \"\";\n }\n\n return realValue.text ?? \"\";\n }\n catch {\n return value;\n }\n }\n\n public override getHtmlValue(value: string, _configurationValues: Record, isEscaped: boolean = false): string {\n try {\n const realValue = JSON.parse(value ?? \"\") as ListItemBag;\n\n if (!realValue.value) {\n return \"\";\n }\n\n const html = ``;\n\n if (isEscaped) {\n escapeHtml(html);\n }\n\n return html;\n }\n catch {\n if (isEscaped) {\n escapeHtml(value ?? \"\");\n }\n\n return value ?? \"\";\n }\n }\n\n public override getCondensedHtmlValue(value: string, _configurationValues: Record, isEscaped: boolean = false): string {\n try {\n const realValue = JSON.parse(value ?? \"\") as ListItemBag;\n\n if (!realValue.value) {\n return \"\";\n }\n\n const html = ``;\n\n if (isEscaped) {\n return escapeHtml(html);\n }\n\n return html;\n }\n catch {\n if (isEscaped) {\n escapeHtml(value ?? \"\");\n }\n\n return value ?? \"\";\n }\n }\n\n public override getEditComponent(): Component {\n return editComponent;\n }\n\n public override getConfigurationComponent(): Component {\n return configurationComponent;\n }\n\n public override getSupportedComparisonTypes(): ComparisonType {\n return ComparisonType.IsBlank | ComparisonType.IsNotBlank;\n }\n}\n","// \n// Copyright by the Spark Development Network\n//\n// Licensed under the Rock Community License (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.rockrms.com/license\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// \n//\nimport { Component } from \"vue\";\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\nimport { ComparisonType } from \"@Obsidian/Enums/Reporting/comparisonType\";\nimport { numericComparisonTypes } from \"@Obsidian/Core/Reporting/comparisonType\";\nimport { toNumberOrNull } from \"@Obsidian/Utility/numberUtils\";\nimport { FieldTypeBase } from \"./fieldType\";\n\n\n// The edit component can be quite large, so load it only as needed.\nconst editComponent = defineAsyncComponent(async () => {\n return (await import(\"./integerFieldComponents\")).EditComponent;\n});\n\n// The configuration component can be quite large, so load it only as needed.\nconst configurationComponent = defineAsyncComponent(async () => {\n return (await import(\"./integerFieldComponents\")).ConfigurationComponent;\n});\n\n/**\n * The field type handler for the Integer field.\n */\nexport class IntegerFieldType extends FieldTypeBase {\n public override getTextValue(value: string, _configurationValues: Record): string {\n return toNumberOrNull(value)?.toString() ?? \"\";\n }\n\n public override getEditComponent(): Component {\n return editComponent;\n }\n\n public override getConfigurationComponent(): Component {\n return configurationComponent;\n }\n\n public override getSupportedComparisonTypes(): ComparisonType {\n return numericComparisonTypes;\n }\n}\n","// \n// Copyright by the Spark Development Network\n//\n// Licensed under the Rock Community License (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.rockrms.com/license\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// \n//\nimport { Component } from \"vue\";\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\nimport { toNumberOrNull } from \"@Obsidian/Utility/numberUtils\";\nimport { FieldTypeBase } from \"./fieldType\";\n\n\n// The edit component can be quite large, so load it only as needed.\nconst editComponent = defineAsyncComponent(async () => {\n return (await import(\"./integerRangeFieldComponents\")).EditComponent;\n});\n\n// The configuration component can be quite large, so load it only as needed.\nconst configurationComponent = defineAsyncComponent(async () => {\n return (await import(\"./integerRangeFieldComponents\")).ConfigurationComponent;\n});\n\n/**\n * The field type handler for the Integer Range field.\n */\nexport class IntegerRangeFieldType extends FieldTypeBase {\n public override getTextValue(value: string, _configurationValues: Record): string {\n if (value === \"\" || value === \",\") {\n return \"\";\n }\n\n const numbers = value.split(\",\").map(v => toNumberOrNull(v));\n\n // If there are not two components then it's not valid, or if both\n // components are not numbers then it's not valid.\n if (numbers.length !== 2 || (numbers[0] === null && numbers[1] === null)) {\n return \"\";\n }\n\n if (numbers[0] === null) {\n return `through ${numbers[1]}`;\n }\n else if (numbers[1] === null) {\n return `from ${numbers[0]}`;\n }\n else {\n return `${numbers[0]} to ${numbers[1]}`;\n }\n }\n\n public override getEditComponent(): Component {\n return editComponent;\n }\n\n public override getConfigurationComponent(): Component {\n return configurationComponent;\n }\n\n public override isFilterable(): boolean {\n return false;\n }\n}\n","// \n// Copyright by the Spark Development Network\n//\n// Licensed under the Rock Community License (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.rockrms.com/license\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// \n//\nimport { Component } from \"vue\";\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\nimport { List } from \"@Obsidian/Utility/linq\";\nimport { FieldTypeBase } from \"./fieldType\";\n\nexport const enum ConfigurationValueKey {\n Values = \"values\",\n KeyPrompt = \"keyprompt\",\n ValuePrompt = \"valueprompt\",\n DisplayValueFirst = \"displayvaluefirst\",\n AllowHtml = \"allowhtml\",\n\n // Only used during editing of the field type configuration.\n CustomValues = \"customvalues\",\n DefinedType = \"definedtype\"\n}\n\nexport const enum ConfigurationPropertyKey {\n DefinedTypes = \"definedTypes\"\n}\n\nexport type ValueItem = {\n value: string,\n text: string\n};\n\nexport type ClientValue = {\n key: string,\n value: string\n};\n\n\n// The edit component can be quite large, so load it only as needed.\nconst editComponent = defineAsyncComponent(async () => {\n return (await import(\"./keyValueListFieldComponents\")).EditComponent;\n});\n\n// Load the configuration component as needed.\nconst configurationComponent = defineAsyncComponent(async () => {\n return (await import(\"./keyValueListFieldComponents\")).ConfigurationComponent;\n});\n\n/**\n * The field type handler for the Key Value List field.\n */\nexport class KeyValueListFieldType extends FieldTypeBase {\n public override getTextValue(value: string, configurationValues: Record): string {\n try {\n const clientValues = JSON.parse(value ?? \"[]\") as ClientValue[];\n const configuredValues = new List(JSON.parse(configurationValues[ConfigurationValueKey.Values] ?? \"[]\") as ValueItem[]);\n const values: string[] = [];\n\n for (const clientValue of clientValues) {\n const configuredValue = configuredValues.firstOrUndefined(v => v.value === clientValue.value);\n\n if (configuredValue !== undefined) {\n values.push(`${clientValue.key}: ${configuredValue.text}`);\n }\n else {\n values.push(`${clientValue.key}: ${clientValue.value}`);\n }\n }\n\n return values.join(\", \");\n }\n catch {\n return \"\";\n }\n }\n\n public override getEditComponent(): Component {\n return editComponent;\n }\n\n public override getConfigurationComponent(): Component {\n return configurationComponent;\n }\n\n public override isFilterable(): boolean {\n return false;\n }\n}\n","// \n// Copyright by the Spark Development Network\n//\n// Licensed under the Rock Community License (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.rockrms.com/license\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// \n//\nimport { Component } from \"vue\";\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\nimport { FieldTypeBase } from \"./fieldType\";\n\n/**\n * The configuration value keys used by the configuraiton and edit controls.\n */\nexport const enum ConfigurationValueKey {\n /** Allowed Picker Modes */\n AllowedPickerModes = \"allowedPickerModes\",\n CurrentPickerMode = \"currentPickerMode\"\n}\n\n// The edit component can be quite large, so load it only as needed.\nconst editComponent = defineAsyncComponent(async () => {\n return (await import(\"./locationFieldComponents\")).EditComponent;\n});\n\n// The configuration component can be quite large, so load it only as needed.\nconst configurationComponent = defineAsyncComponent(async () => {\n return (await import(\"./locationFieldComponents\")).ConfigurationComponent;\n});\n\n/**\n * The field type handler for the LocationList field.\n */\nexport class LocationFieldType extends FieldTypeBase {\n public override getTextValue(value: string, _configurationValues: Record): string {\n try {\n const locationItemBag = JSON.parse(value);\n return locationItemBag.text ?? \"\";\n }\n catch {\n return value ?? \"\";\n }\n }\n\n public override getEditComponent(): Component {\n return editComponent;\n }\n\n public override getConfigurationComponent(): Component {\n return configurationComponent;\n }\n\n public override isFilterable(): boolean {\n return false;\n }\n}\n","// \n// Copyright by the Spark Development Network\n//\n// Licensed under the Rock Community License (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.rockrms.com/license\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// \n//\nimport { Component } from \"vue\";\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\nimport { FieldTypeBase } from \"./fieldType\";\n\n/**\n * The configuration value keys used by the configuraiton and edit controls.\n */\nexport const enum ConfigurationValueKey {\n /** The location type */\n LocationType = \"LocationType\",\n\n /** The parent location */\n ParentLocation = \"ParentLocation\",\n\n /** The allow adding new locations */\n AllowAddingNewLocations = \"AllowAddingNewLocations\",\n\n /** The show city state */\n ShowCityState = \"ShowCityState\",\n\n /** The address required */\n AddressRequired = \"AddressRequired\"\n}\n\n// The edit component can be quite large, so load it only as needed.\nconst editComponent = defineAsyncComponent(async () => {\n return (await import(\"./locationListFieldComponents\")).EditComponent;\n});\n\n// The configuration component can be quite large, so load it only as needed.\nconst configurationComponent = defineAsyncComponent(async () => {\n return (await import(\"./locationListFieldComponents\")).ConfigurationComponent;\n});\n\n/**\n * The field type handler for the LocationList field.\n */\nexport class LocationListFieldType extends FieldTypeBase {\n public override getTextValue(value: string, _configurationValues: Record): string {\n try {\n const locationItemBag = JSON.parse(value);\n return locationItemBag.text ?? \"\";\n }\n catch {\n return value ?? \"\";\n }\n }\n\n public override getEditComponent(): Component {\n return editComponent;\n }\n\n public override getConfigurationComponent(): Component {\n return configurationComponent;\n }\n\n public override isFilterable(): boolean {\n return false;\n }\n}\n","// \n// Copyright by the Spark Development Network\n//\n// Licensed under the Rock Community License (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.rockrms.com/license\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// \n//\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\nimport { FieldTypeBase } from \"./fieldType\";\nimport { Component } from \"vue\";\n\nexport const enum ConfigurationValueKey {\n MediaItems = \"mediaitems\",\n Mode = \"modetype\",\n ItemWidth = \"itemwidth\"\n}\n\n\n// The edit component can be quite large, so load it only as needed.\nconst editComponent = defineAsyncComponent(async () => {\n return (await import(\"./mediaSelectorFieldComponents\")).EditComponent;\n});\n\n// Load the configuration component only as needed.\nconst configurationComponent = defineAsyncComponent(async () => {\n return (await import(\"./mediaSelectorFieldComponents\")).ConfigurationComponent;\n});\n\n/**\n * The field type handler for the MediaSelector field.\n */\nexport class MediaSelectorFieldType extends FieldTypeBase {\n\n public override getEditComponent(): Component {\n return editComponent;\n }\n\n public override getConfigurationComponent(): Component {\n return configurationComponent;\n }\n}\n","// \n// Copyright by the Spark Development Network\n//\n// Licensed under the Rock Community License (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.rockrms.com/license\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// \n//\nimport { Component } from \"vue\";\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\nimport { ComparisonType } from \"@Obsidian/Enums/Reporting/comparisonType\";\nimport { stringComparisonTypes } from \"@Obsidian/Core/Reporting/comparisonType\";\nimport { FieldTypeBase } from \"./fieldType\";\nimport { getStandardFilterComponent } from \"./utils\";\n\nexport const enum ConfigurationValueKey {\n NumberOfRows = \"numberofrows\",\n AllowHtml = \"allowhtml\",\n MaxCharacters = \"maxcharacters\",\n ShowCountDown = \"showcountdown\"\n}\n\n// The edit component can be quite large, so load it only as needed.\nconst editComponent = defineAsyncComponent(async () => {\n return (await import(\"./memoFieldComponents\")).EditComponent;\n});\n\n// The filter component can be quite large, so load it only as needed.\nconst filterComponent = defineAsyncComponent(async () => {\n return (await import(\"./memoFieldComponents\")).FilterComponent;\n});\n\n// The configuration component can be quite large, so load it only as needed.\nconst configurationComponent = defineAsyncComponent(async () => {\n return (await import(\"./memoFieldComponents\")).ConfigurationComponent;\n});\n\n/**\n * The field type handler for the Memo field.\n */\nexport class MemoFieldType extends FieldTypeBase {\n public override getEditComponent(): Component {\n return editComponent;\n }\n\n public override getConfigurationComponent(): Component {\n return configurationComponent;\n }\n\n public override getSupportedComparisonTypes(): ComparisonType {\n return stringComparisonTypes;\n }\n\n public override getFilterComponent(): Component {\n return getStandardFilterComponent(this.getSupportedComparisonTypes(), filterComponent);\n }\n}\n","// \n// Copyright by the Spark Development Network\n//\n// Licensed under the Rock Community License (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.rockrms.com/license\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// \n//\nimport { Component } from \"vue\";\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\nimport { MobileNavigationActionBag } from \"@Obsidian/ViewModels/Controls/mobileNavigationActionBag\";\nimport { FieldTypeBase } from \"./fieldType\";\nimport { MobileNavigationActionType } from \"@Obsidian/Enums/Mobile/mobileNavigationActionType\";\n\n// The edit component can be quite large, so load it only as needed.\nconst editComponent = defineAsyncComponent(async () => {\n return (await import(\"./mobileNavigationActionFieldComponents\")).EditComponent;\n});\n\n// Load the configuration component only as needed.\nconst configurationComponent = defineAsyncComponent(async () => {\n return (await import(\"./mobileNavigationActionFieldComponents\")).ConfigurationComponent;\n});\n\n/**\n * The field type handler for the Mobile Navigation Action field.\n */\nexport class MobileNavigationActionFieldType extends FieldTypeBase {\n public override getTextValue(value: string, _configurationValues: Record): string {\n const actionValue = JSON.parse(value || \"{}\") as MobileNavigationActionBag;\n\n if (!actionValue) {\n return \"\";\n }\n\n switch (actionValue.type) {\n case MobileNavigationActionType.None:\n return \"None\";\n\n case MobileNavigationActionType.PopPage:\n return `Pop ${actionValue.popCount ?? 1} page${actionValue.popCount == 1 ? \"\" : \"s\"}`;\n\n case MobileNavigationActionType.ResetToPage:\n return `Reset to '${actionValue.page?.text ?? \"page\"}'`;\n\n case MobileNavigationActionType.ReplacePage:\n return `Replace page with '${actionValue.page?.text ?? \"page\"}'`;\n\n case MobileNavigationActionType.PushPage:\n return `Push '${actionValue.page?.text ?? \"page\"}'`;\n\n case MobileNavigationActionType.DismissCoverSheet:\n return \"Dismiss Cover Sheet\";\n\n default:\n return \"\";\n }\n }\n\n public override getEditComponent(): Component {\n return editComponent;\n }\n\n public override getConfigurationComponent(): Component {\n return configurationComponent;\n }\n}\n","// \n// Copyright by the Spark Development Network\n//\n// Licensed under the Rock Community License (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.rockrms.com/license\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// \n//\nimport { Component } from \"vue\";\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\nimport { toNumber } from \"@Obsidian/Utility/numberUtils\";\nimport { FieldTypeBase } from \"./fieldType\";\n\n// The edit component can be quite large, so load it only as needed.\nconst editComponent = defineAsyncComponent(async () => {\n return (await import(\"./monthDayFieldComponents\")).EditComponent;\n});\n\n// The configuration component can be quite large, so load it only as needed.\nconst configurationComponent = defineAsyncComponent(async () => {\n return (await import(\"./monthDayFieldComponents\")).ConfigurationComponent;\n});\n\n/**\n * The field type handler for the MonthDay field.\n */\nexport class MonthDayFieldType extends FieldTypeBase {\n public override getTextValue(value: string, _configurationValues: Record): string {\n const components = (value).split(\"/\");\n\n if (components.length !== 2) {\n return \"\";\n }\n\n const month = toNumber(components[0]);\n const day = toNumber(components[1]);\n\n if (month >= 1 && day >= 1 && month <= 12 && day <= 31) {\n const months = [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"];\n\n return `${months[month-1]} ${day}`;\n }\n else {\n return \"\";\n }\n }\n\n public override getEditComponent(): Component {\n return editComponent;\n }\n\n public override getConfigurationComponent(): Component {\n return configurationComponent;\n }\n}\n","// \n// Copyright by the Spark Development Network\n//\n// Licensed under the Rock Community License (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.rockrms.com/license\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// \n//\nimport { Component } from \"vue\";\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\nimport { ComparisonType } from \"@Obsidian/Enums/Reporting/comparisonType\";\nimport { containsComparisonTypes } from \"@Obsidian/Core/Reporting/comparisonType\";\nimport { ComparisonValue } from \"@Obsidian/Types/Reporting/comparisonValue\";\nimport { ListItemBag } from \"@Obsidian/ViewModels/Utility/listItemBag\";\nimport { FieldTypeBase } from \"./fieldType\";\nimport { getStandardFilterComponent } from \"./utils\";\n\nexport const enum ConfigurationValueKey {\n Values = \"values\",\n RepeatColumns = \"repeatColumns\",\n RepeatDirection = \"repeatDirection\",\n EnhancedSelection = \"enhancedselection\",\n\n /** Only used during editing of the field type configuration. */\n CustomValues = \"customValues\"\n}\n\n\n// The edit component can be quite large, so load it only as needed.\nconst editComponent = defineAsyncComponent(async () => {\n return (await import(\"./multiSelectFieldComponents\")).EditComponent;\n});\n\n// Load the filter component only as needed.\nconst filterComponent = defineAsyncComponent(async () => {\n return (await import(\"./multiSelectFieldComponents\")).FilterComponent;\n});\n\n// Load the configuration component only as needed.\nconst configurationComponent = defineAsyncComponent(async () => {\n return (await import(\"./multiSelectFieldComponents\")).ConfigurationComponent;\n});\n\n/**\n * The field type handler for the MultiSelect field.\n */\nexport class MultiSelectFieldType extends FieldTypeBase {\n public override getTextValue(value: string, configurationValues: Record): string {\n if (value === \"\") {\n return \"\";\n }\n\n try {\n const values = JSON.parse(configurationValues[ConfigurationValueKey.Values] ?? \"[]\") as ListItemBag[];\n const userValues = value.split(\",\");\n const selectedValues = values.filter(v => userValues.includes(v.value ?? \"\"));\n\n return selectedValues.map(v => v.text).join(\", \");\n }\n catch {\n return value;\n }\n }\n\n public override getEditComponent(): Component {\n return editComponent;\n }\n\n public override getConfigurationComponent(): Component {\n return configurationComponent;\n }\n\n public override getSupportedComparisonTypes(): ComparisonType {\n return containsComparisonTypes;\n }\n\n public override getFilterComponent(): Component {\n return getStandardFilterComponent(this.getSupportedComparisonTypes(), filterComponent);\n }\n\n public override getFilterValueText(value: ComparisonValue, configurationValues: Record): string {\n if (value.value === \"\") {\n return \"\";\n }\n\n try {\n const rawValues = value.value.split(\",\");\n const values = JSON.parse(configurationValues?.[ConfigurationValueKey.Values] ?? \"[]\") as ListItemBag[];\n const selectedValues = values.filter(v => rawValues.includes(v.value ?? \"\"));\n\n if (selectedValues.length >= 1) {\n return `'${selectedValues.map(v => v.value).join(\"' OR '\")}'`;\n }\n else {\n return \"\";\n }\n }\n catch {\n return value.value;\n }\n }\n\n public override doesValueMatchFilter(value: string, filterValue: ComparisonValue, _configurationValues: Record): boolean {\n const selectedValues = (filterValue.value ?? \"\").split(\",\").filter(v => v !== \"\").map(v => v.toLowerCase());\n let comparisonType = filterValue.comparisonType;\n\n if (comparisonType === ComparisonType.EqualTo) {\n // Treat EqualTo as if it were Contains.\n comparisonType = ComparisonType.Contains;\n }\n else if (comparisonType === ComparisonType.NotEqualTo) {\n // Treat NotEqualTo as if it were DoesNotContain.\n comparisonType = ComparisonType.DoesNotContain;\n }\n\n if (comparisonType === ComparisonType.IsBlank) {\n return value === \"\";\n }\n else if (comparisonType === ComparisonType.IsNotBlank) {\n return value !== \"\";\n }\n\n if (selectedValues.length > 0) {\n const userValues = value?.split(\",\").filter(v => v !== \"\").map(v => v.toLowerCase()) ?? [];\n\n if (comparisonType === ComparisonType.Contains) {\n let matchedCount = 0;\n\n for (const userValue of userValues) {\n if (selectedValues.includes(userValue)) {\n matchedCount += 1;\n }\n }\n\n return matchedCount > 0;\n }\n else {\n let matchedCount = 0;\n\n for (const userValue of userValues) {\n if (selectedValues.includes(userValue)) {\n matchedCount += 1;\n }\n }\n\n return matchedCount !== selectedValues.length;\n }\n }\n\n return false;\n }\n}\n","// \n// Copyright by the Spark Development Network\n//\n// Licensed under the Rock Community License (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.rockrms.com/license\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// \n//\nimport { Component } from \"vue\";\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\n\nimport { ListItemBag } from \"@Obsidian/ViewModels/Utility/listItemBag\";\nimport { FieldTypeBase } from \"./fieldType\";\n\nexport const enum ConfigurationValueKey {\n Values = \"values\",\n EntityTypeName = \"entityTypeName\",\n QualifierColumn = \"qualifierColumn\",\n QualifierValue = \"qualifierValue\",\n EntityTypes = \"entityTypes\"\n}\n\n\n// The edit component can be quite large, so load it only as needed.\nconst editComponent = defineAsyncComponent(async () => {\n return (await import(\"./noteTypeFieldComponents\")).EditComponent;\n});\n\n// Load the configuration component only as needed.\nconst configurationComponent = defineAsyncComponent(async () => {\n return (await import(\"./noteTypeFieldComponents\")).ConfigurationComponent;\n});\n\n/**\n * The field type handler for the MultiSelect field.\n */\nexport class NoteTypeField extends FieldTypeBase {\n public override getTextValue(value: string, configurationValues: Record): string {\n if (value === \"\") {\n return \"\";\n }\n\n try {\n const values = JSON.parse(configurationValues[ConfigurationValueKey.Values] ?? \"[]\") as ListItemBag[];\n const userValues = value.split(\",\");\n const selectedValues = values.filter(v => userValues.includes(v.value ?? \"\"));\n return selectedValues.map(v => v.text)\n .map(v => v?.split(\":\").pop()) // just get the name of the note type\n .join(\", \");\n }\n catch {\n return value;\n }\n }\n\n public override getEditComponent(): Component {\n return editComponent;\n }\n\n public override getConfigurationComponent(): Component {\n return configurationComponent;\n }\n}\n","// \n// Copyright by the Spark Development Network\n//\n// Licensed under the Rock Community License (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.rockrms.com/license\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// \n//\nimport { Component } from \"vue\";\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\n\nimport { ListItemBag } from \"@Obsidian/ViewModels/Utility/listItemBag\";\nimport { FieldTypeBase } from \"./fieldType\";\n\nexport const enum ConfigurationValueKey {\n Values = \"values\",\n RepeatColumns = \"repeatColumns\",\n EntityTypeName = \"entityTypeName\",\n QualifierColumn = \"qualifierColumn\",\n QualifierValue = \"qualifierValue\",\n EntityTypes = \"entityTypes\"\n}\n\n\n// The edit component can be quite large, so load it only as needed.\nconst editComponent = defineAsyncComponent(async () => {\n return (await import(\"./noteTypesFieldComponents\")).EditComponent;\n});\n\n// Load the configuration component only as needed.\nconst configurationComponent = defineAsyncComponent(async () => {\n return (await import(\"./noteTypesFieldComponents\")).ConfigurationComponent;\n});\n\n/**\n * The field type handler for the MultiSelect field.\n */\nexport class NoteTypesField extends FieldTypeBase {\n public override getTextValue(value: string, configurationValues: Record): string {\n if (value === \"\") {\n return \"\";\n }\n\n try {\n const values = JSON.parse(configurationValues[ConfigurationValueKey.Values] ?? \"[]\") as ListItemBag[];\n const userValues = value.split(\",\");\n const selectedValues = values.filter(v => userValues.includes(v.value ?? \"\"));\n return selectedValues.map(v => v.text)\n .map(v => v?.split(\":\").pop()) // just get the name of the note type\n .join(\", \");\n }\n catch {\n return value;\n }\n }\n\n public override getEditComponent(): Component {\n return editComponent;\n }\n\n public override getConfigurationComponent(): Component {\n return configurationComponent;\n }\n}\n","// \n// Copyright by the Spark Development Network\n//\n// Licensed under the Rock Community License (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.rockrms.com/license\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// \n//\nimport { Component } from \"vue\";\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\nimport { FieldTypeBase } from \"./fieldType\";\n\n// The edit component can be quite large, so load it only as needed.\nconst editComponent = defineAsyncComponent(async () => {\n return (await import(\"./phoneNumberFieldComponents\")).EditComponent;\n});\n\n// The configuration component can be quite large, so load it only as needed.\nconst configurationComponent = defineAsyncComponent(async () => {\n return (await import(\"./phoneNumberFieldComponents\")).ConfigurationComponent;\n});\n\n/**\n * The field type handler for the Phone Number field.\n */\nexport class PhoneNumberFieldType extends FieldTypeBase {\n public override getTextValue(value: string, _configurationValues: Record): string {\n return value;\n }\n\n public override getEditComponent(): Component {\n return editComponent;\n }\n\n public override getConfigurationComponent(): Component {\n return configurationComponent;\n }\n}","// \n// Copyright by the Spark Development Network\n//\n// Licensed under the Rock Community License (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.rockrms.com/license\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// \n//\nimport { Component } from \"vue\";\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\nimport { ListItemBag } from \"@Obsidian/ViewModels/Utility/listItemBag\";\nimport { FieldTypeBase } from \"./fieldType\";\n\nexport const enum ConfigurationValueKey {\n EnableSelfSelection = \"EnableSelfSelection\",\n IncludeBusinesses = \"includeBusinesses\"\n}\n\n// The edit component can be quite large, so load it only as needed.\nconst editComponent = defineAsyncComponent(async () => {\n return (await import(\"./personFieldComponents\")).EditComponent;\n});\n\n// Load the configuration component only as needed.\nconst configurationComponent = defineAsyncComponent(async () => {\n return (await import(\"./personFieldComponents\")).ConfigurationComponent;\n});\n\n/**\n * The field type handler for the Person field.\n */\nexport class PersonFieldType extends FieldTypeBase {\n public override getTextValue(value: string, _configurationValues: Record): string {\n const personValue = JSON.parse(value || \"{}\") as ListItemBag;\n return personValue.text ?? \"\";\n }\n\n public override getEditComponent(): Component {\n return editComponent;\n }\n\n public override getConfigurationComponent(): Component {\n return configurationComponent;\n }\n}\n","// \n// Copyright by the Spark Development Network\n//\n// Licensed under the Rock Community License (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.rockrms.com/license\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// \n//\nimport { Component } from \"vue\";\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\nimport { ComparisonType } from \"@Obsidian/Enums/Reporting/comparisonType\";\nimport { numericComparisonTypes } from \"@Obsidian/Core/Reporting/comparisonType\";\nimport { toNumberOrNull } from \"@Obsidian/Utility/numberUtils\";\nimport { FieldTypeBase } from \"./fieldType\";\n\nexport const enum ConfigurationValueKey {\n MinValue = \"minValue\",\n MaxValue = \"maxValue\"\n}\n\n// The edit component can be quite large, so load it only as needed.\nconst editComponent = defineAsyncComponent(async () => {\n return (await import(\"./rangeSliderFieldComponents\")).EditComponent;\n});\n\n// The configuration component can be quite large, so load it only as needed.\nconst configurationComponent = defineAsyncComponent(async () => {\n return (await import(\"./rangeSliderFieldComponents\")).ConfigurationComponent;\n});\n\n/**\n * The field type handler for the Integer field.\n */\nexport class RangeSliderFieldType extends FieldTypeBase {\n public override getTextValue(value: string, _configurationValues: Record): string {\n return toNumberOrNull(value)?.toString() ?? \"\";\n }\n\n public override getEditComponent(): Component {\n return editComponent;\n }\n\n public override getConfigurationComponent(): Component {\n return configurationComponent;\n }\n\n public override getSupportedComparisonTypes(): ComparisonType {\n return numericComparisonTypes;\n }\n}\n","// \n// Copyright by the Spark Development Network\n//\n// Licensed under the Rock Community License (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.rockrms.com/license\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// \n//\nimport { Component, } from \"vue\";\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\nimport { ComparisonType } from \"@Obsidian/Enums/Reporting/comparisonType\";\nimport { numericComparisonTypes } from \"@Obsidian/Core/Reporting/comparisonType\";\nimport { toNumberOrNull } from \"@Obsidian/Utility/numberUtils\";\nimport { FieldTypeBase } from \"./fieldType\";\nimport { ComparisonValue } from \"@Obsidian/Types/Reporting/comparisonValue\";\nimport { escapeHtml } from \"@Obsidian/Utility/stringUtils\";\n\nexport const enum ConfigurationValueKey {\n MaxRating = \"max\"\n}\n\nexport type RatingValue = {\n value?: number;\n\n maxValue?: number;\n};\n\n// The edit component can be quite large, so load it only as needed.\nconst editComponent = defineAsyncComponent(async () => {\n return (await import(\"./ratingFieldComponents\")).EditComponent;\n});\n\n// The configuration component can be quite large, so load it only as needed.\nconst configurationComponent = defineAsyncComponent(async () => {\n return (await import(\"./ratingFieldComponents\")).ConfigurationComponent;\n});\n\n/**\n * The field type handler for the Rating field.\n */\nexport class RatingFieldType extends FieldTypeBase {\n public override getHtmlValue(value: string, configurationValues: Record, isEscaped: boolean = false): string {\n let ratingValue: RatingValue | null;\n\n try {\n ratingValue = JSON.parse(value ?? \"\") as RatingValue;\n }\n catch {\n ratingValue = null;\n }\n const rating = ratingValue?.value ?? 0;\n const maxRating = toNumberOrNull(configurationValues[ConfigurationValueKey.MaxRating]) ?? 5;\n let html = \"\";\n for (let i = 0; i < rating && i < maxRating; i++) {\n html += ``;\n }\n for (let i = rating; i < maxRating; i++) {\n html += ``;\n }\n\n if (isEscaped) {\n return escapeHtml(html);\n }\n\n return html;\n }\n\n public override getCondensedHtmlValue(value: string, configurationValues: Record, isEscaped?: boolean): string {\n return this.getHtmlValue(value,configurationValues, isEscaped);\n }\n\n public override getEditComponent(): Component {\n return editComponent;\n }\n\n public override getConfigurationComponent(): Component {\n return configurationComponent;\n }\n\n public override getSupportedComparisonTypes(): ComparisonType {\n return numericComparisonTypes;\n }\n\n public override doesValueMatchFilter(value: string, filterValue: ComparisonValue, configurationValues: Record): boolean {\n let ratingValue: RatingValue | null;\n\n try {\n ratingValue = JSON.parse(value) as RatingValue;\n }\n catch {\n ratingValue = null;\n }\n\n const rating = ratingValue?.value ?? 0;\n\n if (filterValue.comparisonType === ComparisonType.IsBlank) {\n return rating === 0;\n }\n else if (filterValue.comparisonType === ComparisonType.IsNotBlank) {\n return rating !== 0;\n }\n else {\n return super.doesValueMatchFilter(rating.toString(), filterValue, configurationValues);\n }\n }\n}\n","// \n// Copyright by the Spark Development Network\n//\n// Licensed under the Rock Community License (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.rockrms.com/license\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// \n//\n\nimport { Component } from \"vue\";\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\nimport { FieldTypeBase } from \"./fieldType\";\n\n// The edit component can be quite large, so load it only as needed.\nconst editComponent = defineAsyncComponent(async () => {\n return (await import(\"./registryEntryFieldComponents\")).EditComponent;\n});\n\n// The configuration component can be quite large, so load it only as needed.\nconst configurationComponent = defineAsyncComponent(async () => {\n return (await import(\"./registryEntryFieldComponents\")).ConfigurationComponent;\n});\n\nexport class RegistryEntryFieldType extends FieldTypeBase {\n\n public override getEditComponent(): Component {\n return editComponent;\n }\n\n public override getConfigurationComponent(): Component {\n return configurationComponent;\n }\n\n public override isFilterable(): boolean {\n return false;\n }\n}\n","// \n// Copyright by the Spark Development Network\n//\n// Licensed under the Rock Community License (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.rockrms.com/license\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// \n//\nimport { Component } from \"vue\";\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\nimport { FieldTypeBase } from \"./fieldType\";\nimport { Guid } from \"@Obsidian/Types\";\n\nexport const enum ConfigurationValueKey {\n Values = \"values\"\n}\n\nexport type ReminderTypeFieldItem = {\n guid: Guid\n name: string,\n entityTypeName: string\n};\n\n\n// The edit component can be quite large, so load it only as needed.\nconst editComponent = defineAsyncComponent(async () => {\n return (await import(\"./reminderTypeFieldComponents\")).EditComponent;\n});\n\n// The configuration component can be quite large, so load it only as needed.\nconst configurationComponent = defineAsyncComponent(async () => {\n return (await import(\"./reminderTypeFieldComponents\")).ConfigurationComponent;\n});\n\n/**\n * The field type handler for the Reminder Type field.\n */\nexport class ReminderTypeFieldType extends FieldTypeBase {\n public override getTextValue(value: string, configurationValues: Record): string {\n if (value === undefined || value === null || value === \"\") {\n return \"\";\n }\n\n try {\n const values = JSON.parse(configurationValues[ConfigurationValueKey.Values] ?? \"[]\") as ReminderTypeFieldItem[];\n const selectedValues = values.filter(o => o.guid.toLowerCase() === value.toLowerCase());\n\n return selectedValues[0].name;\n }\n catch {\n return value;\n }\n }\n\n public override getEditComponent(): Component {\n return editComponent;\n }\n\n public override getConfigurationComponent(): Component {\n return configurationComponent;\n }\n}\n","// \n// Copyright by the Spark Development Network\n//\n// Licensed under the Rock Community License (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.rockrms.com/license\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// \n//\nimport { Component } from \"vue\";\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\nimport { ListItemBag } from \"@Obsidian/ViewModels/Utility/listItemBag\";\nimport { ComparisonType } from \"@Obsidian/Enums/Reporting/comparisonType\";\nimport { binaryComparisonTypes, containsComparisonTypes } from \"@Obsidian/Core/Reporting/comparisonType\";\nimport { toNumberOrNull } from \"@Obsidian/Utility/numberUtils\";\nimport { FieldTypeBase } from \"./fieldType\";\n\nexport const enum ConfigurationValueKey {\n Values = \"values\",\n EnhancedSelection = \"enhancedselection\",\n RepeatColumns = \"repeatColumns\",\n}\n\n// The edit component can be quite large, so load it only as needed.\nconst editComponent = defineAsyncComponent(async () => {\n return (await import(\"./reminderTypesFieldComponents\")).EditComponent;\n});\n\n// The configuration component can be quite large, so load it only as needed.\nconst configurationComponent = defineAsyncComponent(async () => {\n return (await import(\"./reminderTypesFieldComponents\")).ConfigurationComponent;\n});\n\n/**\n * The field type handler for the Reminder Types field.\n */\nexport class ReminderTypesFieldType extends FieldTypeBase {\n public override getTextValue(value: string, configurationValues: Record): string {\n if (value === undefined || value === null || value === \"\") {\n return \"\";\n }\n\n try {\n const values = JSON.parse(configurationValues[ConfigurationValueKey.Values] ?? \"[]\") as ListItemBag[];\n const userValues = value.split(\",\");\n const selectedValues = values.filter(o => userValues.includes(o.value ?? \"\"));\n\n return selectedValues.map(o => o.text).join(\", \");\n }\n catch {\n return value;\n }\n }\n\n public override getEditComponent(): Component {\n return editComponent;\n }\n\n public override getConfigurationComponent(): Component {\n return configurationComponent;\n }\n\n public override getSupportedComparisonTypes(): ComparisonType {\n return binaryComparisonTypes | containsComparisonTypes;\n }\n}\n","// \n// Copyright by the Spark Development Network\n//\n// Licensed under the Rock Community License (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.rockrms.com/license\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// \n//\n\nimport { Component } from \"vue\";\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\nimport { FieldTypeBase } from \"./fieldType\";\n\n// The edit component can be quite large, so load it only as needed.\nconst editComponent = defineAsyncComponent(async () => {\n return (await import(\"./scheduleFieldComponents\")).EditComponent;\n});\n\n// The configuration component can be quite large, so load it only as needed.\nconst configurationComponent = defineAsyncComponent(async () => {\n return (await import(\"./scheduleFieldComponents\")).ConfigurationComponent;\n});\n\n/**\n * The field type handler for the Address field.\n */\nexport class ScheduleFieldType extends FieldTypeBase {\n public override getTextValue(value: string, _configurationValues: Record): string {\n return value ?? \"\";\n }\n\n public override getEditComponent(): Component {\n return editComponent;\n }\n\n public override getConfigurationComponent(): Component {\n return configurationComponent;\n }\n\n public override isFilterable(): boolean {\n return false;\n }\n}","// \n// Copyright by the Spark Development Network\n//\n// Licensed under the Rock Community License (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.rockrms.com/license\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// \n//\nimport { Component } from \"vue\";\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\nimport { FieldTypeBase } from \"./fieldType\";\n\n// The edit component can be quite large, so load it only as needed.\nconst editComponent = defineAsyncComponent(async () => {\n return (await import(\"./schedulesFieldComponents\")).EditComponent;\n});\n\n// The configuration component can be quite large, so load it only as needed.\nconst configurationComponent = defineAsyncComponent(async () => {\n return (await import(\"./schedulesFieldComponents\")).ConfigurationComponent;\n});\n\n/**\n * The field type handler for the Address field.\n */\nexport class SchedulesFieldType extends FieldTypeBase {\n public override getTextValue(value: string, _configurationValues: Record): string {\n return value ?? \"\";\n }\n\n public override getEditComponent(): Component {\n return editComponent;\n }\n\n public override getConfigurationComponent(): Component {\n return configurationComponent;\n }\n\n public override isFilterable(): boolean {\n return false;\n }\n}\n","// \n// Copyright by the Spark Development Network\n//\n// Licensed under the Rock Community License (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.rockrms.com/license\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// \n//\nimport { Component } from \"vue\";\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\nimport { ComparisonValue } from \"@Obsidian/Types/Reporting/comparisonValue\";\nimport { ListItemBag } from \"@Obsidian/ViewModels/Utility/listItemBag\";\nimport { FieldTypeBase } from \"./fieldType\";\nimport { getStandardFilterComponent } from \"./utils\";\nimport { ComparisonType } from \"@Obsidian/Enums/Reporting/comparisonType\";\n\nexport const enum ConfigurationValueKey {\n Values = \"values\",\n FieldType = \"fieldtype\",\n RepeatColumns = \"repeatColumns\",\n\n /** Only used during editing of the field type configuration. */\n CustomValues = \"customValues\"\n}\n\n\n// The edit component can be quite large, so load it only as needed.\nconst editComponent = defineAsyncComponent(async () => {\n return (await import(\"./singleSelectFieldComponents\")).EditComponent;\n});\n\n// Load the filter component only as needed.\nconst filterComponent = defineAsyncComponent(async () => {\n return (await import(\"./singleSelectFieldComponents\")).FilterComponent;\n});\n\n// Load the configuration component only as needed.\nconst configurationComponent = defineAsyncComponent(async () => {\n return (await import(\"./singleSelectFieldComponents\")).ConfigurationComponent;\n});\n\n/**\n * The field type handler for the SingleSelect field.\n */\nexport class SingleSelectFieldType extends FieldTypeBase {\n public override getTextValue(value: string, configurationValues: Record): string {\n if (value === \"\") {\n return \"\";\n }\n\n try {\n const values = JSON.parse(configurationValues[ConfigurationValueKey.Values] ?? \"[]\") as ListItemBag[];\n const selectedValues = values.filter(v => v.value === value);\n\n if (selectedValues.length >= 1) {\n return selectedValues[0].text ?? \"\";\n }\n else {\n return \"\";\n }\n }\n catch {\n return value;\n }\n }\n\n public override getEditComponent(): Component {\n return editComponent;\n }\n\n public override getConfigurationComponent(): Component {\n return configurationComponent;\n }\n\n public override getFilterComponent(): Component {\n return getStandardFilterComponent(\"Is\", filterComponent);\n }\n\n public override getFilterValueText(value: ComparisonValue, configurationValues: Record): string {\n if (value.value === \"\") {\n return \"\";\n }\n\n try {\n const rawValues = value.value.split(\",\");\n const values = JSON.parse(configurationValues?.[ConfigurationValueKey.Values] ?? \"[]\") as ListItemBag[];\n const selectedValues = values.filter(v => rawValues.includes(v.value ?? \"\"));\n\n if (selectedValues.length >= 1) {\n return `'${selectedValues.map(v => v.value).join(\"' OR '\")}'`;\n }\n else {\n return \"\";\n }\n }\n catch {\n return value.value;\n }\n }\n\n public override doesValueMatchFilter(value: string, filterValue: ComparisonValue, _configurationValues: Record): boolean {\n const selectedValues = (filterValue.value ?? \"\").split(\",\").filter(v => v !== \"\").map(v => v.toLowerCase());\n let comparisonType = filterValue.comparisonType;\n\n if (comparisonType === ComparisonType.EqualTo) {\n // Treat EqualTo as if it were Contains.\n comparisonType = ComparisonType.Contains;\n }\n else if (comparisonType === ComparisonType.NotEqualTo) {\n // Treat NotEqualTo as if it were DoesNotContain.\n comparisonType = ComparisonType.DoesNotContain;\n }\n\n if (comparisonType === ComparisonType.IsBlank) {\n return value === \"\";\n }\n else if (comparisonType === ComparisonType.IsNotBlank) {\n return value !== \"\";\n }\n\n if (selectedValues.length > 0) {\n let matched = selectedValues.includes(value.toLowerCase());\n\n if (comparisonType === ComparisonType.DoesNotContain) {\n matched = !matched;\n }\n\n return matched;\n }\n\n return false;\n }\n}\n","// \n// Copyright by the Spark Development Network\n//\n// Licensed under the Rock Community License (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.rockrms.com/license\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// \n//\nimport { Component } from \"vue\";\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\nimport { FieldTypeBase } from \"./fieldType\";\nimport { ListItemBag } from \"@Obsidian/ViewModels/Utility/listItemBag\";\n\nexport const enum ConfigurationValueKey {\n Values = \"values\"\n}\n\n// The edit component can be quite large, so load it only as needed.\nconst editComponent = defineAsyncComponent(async () => {\n return (await import(\"./securityRoleFieldComponents\")).EditComponent;\n});\n\n// Load the configuration component only as needed.\nconst configurationComponent = defineAsyncComponent(async () => {\n return (await import(\"./securityRoleFieldComponents\")).ConfigurationComponent;\n});\n\n/**\n * The field type handler for the Security Role field.\n */\nexport class SecurityRoleFieldType extends FieldTypeBase {\n public override getTextValue(value: string, configurationValues: Record): string {\n if (value === \"\") {\n return \"\";\n }\n\n try {\n const values = JSON.parse(configurationValues[ConfigurationValueKey.Values] ?? \"[]\") as ListItemBag[];\n const userValues = value.split(\",\");\n const selectedValues = values.filter(v => userValues.includes(v.value ?? \"\"));\n return selectedValues.map(v => v.text)\n .map(v => v?.split(\":\").pop()) // just get the name of the note type\n .join(\", \");\n }\n catch {\n return value;\n }\n }\n\n public override getEditComponent(): Component {\n return editComponent;\n }\n\n public override getConfigurationComponent(): Component {\n return configurationComponent;\n }\n}","// \n// Copyright by the Spark Development Network\n//\n// Licensed under the Rock Community License (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.rockrms.com/license\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// \n//\n\nimport { Component } from \"vue\";\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\nimport { FieldTypeBase } from \"./fieldType\";\n\n// The edit component can be quite large, so load it only as needed.\nconst editComponent = defineAsyncComponent(async () => {\n return (await import(\"./structureContentEditorFieldComponents\")).EditComponent;\n});\n\n// The configuration component can be quite large, so load it only as needed.\nconst configurationComponent = defineAsyncComponent(async () => {\n return (await import(\"./structureContentEditorFieldComponents\")).ConfigurationComponent;\n});\n\nexport class StructureContentEditorFieldType extends FieldTypeBase {\n\n public override getEditComponent(): Component {\n return editComponent;\n }\n\n public override getConfigurationComponent(): Component {\n return configurationComponent;\n }\n\n public override isFilterable(): boolean {\n return false;\n }\n}\n","// \n// Copyright by the Spark Development Network\n//\n// Licensed under the Rock Community License (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.rockrms.com/license\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// \n//\nimport { Component } from \"vue\";\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\nimport { toNumberOrNull } from \"@Obsidian/Utility/numberUtils\";\nimport { FieldTypeBase } from \"./fieldType\";\n\nexport const enum ConfigurationValueKey {\n EnabledSlidingDateRangeTypes = \"enabledSlidingDateRangeTypes\",\n EnabledSlidingDateRangeUnits = \"enabledSlidingDateRangeUnits\",\n TimeUnitTypes = \"timeUnitTypes\",\n SlidingDateRangeTypes = \"slidingDateRangeTypes\"\n\n}\n\n// The edit component can be quite large, so load it only as needed.\nconst editComponent = defineAsyncComponent(async () => {\n return (await import(\"./slidingDateRangeFieldComponents\")).EditComponent;\n});\n\n// The configuration component can be quite large, so load it only as needed.\nconst configurationComponent = defineAsyncComponent(async () => {\n return (await import(\"./slidingDateRangeFieldComponents\")).ConfigurationComponent;\n});\n\n/**\n * The field type handler for the Integer field.\n */\nexport class SlidingDateRangeFieldType extends FieldTypeBase {\n public override getEditComponent(): Component {\n return editComponent;\n }\n\n public override getConfigurationComponent(): Component {\n return configurationComponent;\n }\n}","// \n// Copyright by the Spark Development Network\n//\n// Licensed under the Rock Community License (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.rockrms.com/license\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// \n//\n\nimport { Component } from \"vue\";\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\nimport { FieldTypeBase } from \"./fieldType\";\n\nexport const enum ConfigurationValueKey {\n Name = \"name\",\n IconCssClass = \"iconcssclass\",\n Color = \"color\",\n TextTemplate = \"texttemplate\",\n BaseUrl = \"baseurl\",\n BaseUrlAliases = \"baseurlaliases\",\n}\n\n// The edit component can be quite large, so load it only as needed.\nconst editComponent = defineAsyncComponent(async () => {\n return (await import(\"./socialMediaAccountFieldComponents\")).EditComponent;\n});\n\n// The configuration component can be quite large, so load it only as needed.\nconst configurationComponent = defineAsyncComponent(async () => {\n return (await import(\"./socialMediaAccountFieldComponents\")).ConfigurationComponent;\n});\n\n/**\n * The field type handler for the Social Media Account field.\n */\nexport class SocialMediaAccountFieldType extends FieldTypeBase {\n public override getTextValue(value: string, _configurationValues: Record): string {\n return value ?? \"\";\n }\n\n public override getEditComponent(): Component {\n return editComponent;\n }\n\n public override getConfigurationComponent(): Component {\n return configurationComponent;\n }\n\n public override isFilterable(): boolean {\n return false;\n }\n}","// \n// Copyright by the Spark Development Network\n//\n// Licensed under the Rock Community License (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.rockrms.com/license\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// \n//\n\nimport { Component } from \"vue\";\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\nimport { FieldTypeBase } from \"./fieldType\";\n\n// The edit component can be quite large, so load it only as needed.\nconst editComponent = defineAsyncComponent(async () => {\n return (await import(\"./ssnFieldComponents\")).EditComponent;\n});\n\n// The configuration component can be quite large, so load it only as needed.\nconst configurationComponent = defineAsyncComponent(async () => {\n return (await import(\"./ssnFieldComponents\")).ConfigurationComponent;\n});\n\nexport class SSNFieldType extends FieldTypeBase {\n public override getTextValue(value: string, _configurationValues: Record): string {\n const strippedValue = value.replace(/[^0-9]/g, \"\");\n\n if (strippedValue.length !== 9) {\n return \"\";\n }\n\n return `xxx-xx-${value.substr(5, 4)}`;\n }\n\n public override getEditComponent(): Component {\n return editComponent;\n }\n\n public override getConfigurationComponent(): Component {\n return configurationComponent;\n }\n\n public override isFilterable(): boolean {\n return false;\n }\n}\n","// \n// Copyright by the Spark Development Network\n//\n// Licensed under the Rock Community License (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.rockrms.com/license\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// \n//\n\nimport { Component } from \"vue\";\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\nimport { ComparisonType } from \"@Obsidian/Enums/Reporting/comparisonType\";\nimport { FieldTypeBase } from \"./fieldType\";\nimport { ListItemBag } from \"@Obsidian/ViewModels/Utility/listItemBag\";\n\nexport const enum ConfigurationValueKey {\n ClientValues = \"values\",\n IncludeInactive = \"includeInactive\"\n}\n\n// The edit component can be quite large, so load it only as needed.\nconst editComponent = defineAsyncComponent(async () => {\n return (await import(\"./systemCommunicationFieldComponents\")).EditComponent;\n});\n\n// The configuration component can be quite large, so load it only as needed.\nconst configurationComponent = defineAsyncComponent(async () => {\n return (await import(\"./systemCommunicationFieldComponents\")).ConfigurationComponent;\n});\n\nexport class SystemCommunicationFieldType extends FieldTypeBase {\n public override getTextValue(value: string, configurationValues: Record): string {\n if (value === undefined || value === null || value === \"\") {\n return \"\";\n }\n\n try {\n const values = JSON.parse(configurationValues[ConfigurationValueKey.ClientValues] ?? \"[]\") as ListItemBag[];\n const selectedValue = values.find(o => o.value === value);\n\n return selectedValue?.text ?? value;\n }\n catch {\n return value;\n }\n }\n\n public override getEditComponent(): Component {\n return editComponent;\n }\n\n public override getConfigurationComponent(): Component {\n return configurationComponent;\n }\n\n public override getSupportedComparisonTypes(): ComparisonType {\n return ComparisonType.IsBlank | ComparisonType.IsNotBlank;\n }\n}","// \n// Copyright by the Spark Development Network\n//\n// Licensed under the Rock Community License (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.rockrms.com/license\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// \n//\n\nimport { Component } from \"vue\";\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\nimport { ComparisonType } from \"@Obsidian/Enums/Reporting/comparisonType\";\nimport { stringComparisonTypes } from \"@Obsidian/Core/Reporting/comparisonType\";\nimport { FieldTypeBase } from \"./fieldType\";\n\nexport const enum ConfigurationValueKey {\n /** Contains \"True\" if the text field is designed for password entry. */\n IsPassword = \"ispassword\",\n\n /** The maximum number of characters allowed in the text entry field. */\n MaxCharacters = \"maxcharacters\",\n\n /** Contains \"True\" if the text field should show the character countdown. */\n ShowCountdown = \"showcountdown\"\n}\n\n// The configuration component can be quite large, so load it only as needed.\nconst configurationComponent = defineAsyncComponent(async () => {\n return (await import(\"./textFieldComponents\")).ConfigurationComponent;\n});\n\nexport class TextFieldType extends FieldTypeBase {\n public override getConfigurationComponent(): Component {\n return configurationComponent;\n }\n\n public override getSupportedComparisonTypes(): ComparisonType {\n return stringComparisonTypes;\n }\n}\n","// \n// Copyright by the Spark Development Network\n//\n// Licensed under the Rock Community License (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.rockrms.com/license\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// \n//\nimport { Component } from \"vue\";\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\nimport { ComparisonType } from \"@Obsidian/Enums/Reporting/comparisonType\";\nimport { dateComparisonTypes } from \"@Obsidian/Core/Reporting/comparisonType\";\nimport { toNumber } from \"@Obsidian/Utility/numberUtils\";\nimport { padLeft } from \"@Obsidian/Utility/stringUtils\";\nimport { FieldTypeBase } from \"./fieldType\";\n\n// The edit component can be quite large, so load it only as needed.\nconst editComponent = defineAsyncComponent(async () => {\n return (await import(\"./timeFieldComponents\")).EditComponent;\n});\n\n// The configuration component can be quite large, so load it only as needed.\nconst configurationComponent = defineAsyncComponent(async () => {\n return (await import(\"./timeFieldComponents\")).ConfigurationComponent;\n});\n\n/**\n * The field type handler for the Time field.\n */\nexport class TimeFieldType extends FieldTypeBase {\n public override getTextValue(value: string, _configurationValues: Record): string {\n const values = /^(\\d+):(\\d+)/.exec(value ?? \"\");\n\n if (values === null || values.length < 3) {\n return \"\";\n }\n\n let hour = toNumber(values[1]);\n const minute = toNumber(values[2]);\n const meridiem = hour >= 12 ? \"PM\" : \"AM\";\n\n if (hour > 12) {\n hour -= 12;\n }\n\n return `${hour}:${padLeft(minute.toString(), 2, \"0\")} ${meridiem}`;\n }\n\n public override getEditComponent(): Component {\n return editComponent;\n }\n\n public override getConfigurationComponent(): Component {\n return configurationComponent;\n }\n\n public override getSupportedComparisonTypes(): ComparisonType {\n return dateComparisonTypes;\n }\n}\n","// \n// Copyright by the Spark Development Network\n//\n// Licensed under the Rock Community License (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.rockrms.com/license\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// \n//\n\nimport { Component } from \"vue\";\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\nimport { FieldTypeBase } from \"./fieldType\";\n\nexport const enum ConfigurationValueKey {\n TimeZones = \"timezones\",\n}\n\n// The edit component can be quite large, so load it only as needed.\nconst editComponent = defineAsyncComponent(async () => {\n return (await import(\"./timeZoneFieldComponents\")).EditComponent;\n});\n\n// The configuration component can be quite large, so load it only as needed.\nconst configurationComponent = defineAsyncComponent(async () => {\n return (await import(\"./timeZoneFieldComponents\")).ConfigurationComponent;\n});\n\n/**\n * The field type handler for the TimeZone field.\n */\nexport class TimeZoneFieldType extends FieldTypeBase {\n public override getTextValue(value: string, _configurationValues: Record): string {\n return value ?? \"\";\n }\n\n public override getEditComponent(): Component {\n return editComponent;\n }\n\n public override getConfigurationComponent(): Component {\n return configurationComponent;\n }\n\n public override isFilterable(): boolean {\n return false;\n }\n}","// \n// Copyright by the Spark Development Network\n//\n// Licensed under the Rock Community License (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.rockrms.com/license\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// \n//\nimport { Component } from \"vue\";\nimport { ComparisonType } from \"@Obsidian/Enums/Reporting/comparisonType\";\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\nimport { FieldTypeBase } from \"./fieldType\";\nimport { asBoolean } from \"@Obsidian/Utility/booleanUtils\";\nimport { getStandardFilterComponent } from \"./utils\";\nimport { ListItemBag } from \"@Obsidian/ViewModels/Utility/listItemBag\";\nimport { ComparisonValue } from \"@Obsidian/Types/Reporting/comparisonValue\";\n\n// The edit component can be quite large, so load it only as needed.\nconst editComponent = defineAsyncComponent(async () => {\n return (await import(\"./universalItemPickerFieldComponents\")).EditComponent;\n});\n\n// The filter component can be quite large, so load it only as needed.\nconst filterComponent = defineAsyncComponent(async () => {\n return (await import(\"./universalItemPickerFieldComponents\")).FilterComponent;\n});\n\n// The configuration component can be quite large, so load it only as needed.\nconst configurationComponent = defineAsyncComponent(async () => {\n return (await import(\"./universalItemFieldComponents\")).ConfigurationComponent;\n});\n\n/**\n * The field type handler for the Universal Item Picker field types.\n */\nexport class UniversalItemPickerFieldType extends FieldTypeBase {\n public override getTextValue(value: string): string {\n try {\n const values = JSON.parse(value) as ListItemBag | ListItemBag[];\n\n if (Array.isArray(values)) {\n return values.map(v => v.text ?? \"\").join(\", \");\n }\n else {\n return values.text ?? \"\";\n }\n }\n catch {\n return \"\";\n }\n }\n\n public override getEditComponent(): Component {\n return editComponent;\n }\n\n public override getFilterComponent(configurationValues: Record): Component | null {\n return getStandardFilterComponent(this.getSupportedComparisonTypes(configurationValues), filterComponent);\n }\n\n public override getConfigurationComponent(): Component {\n return configurationComponent;\n }\n\n public override getSupportedComparisonTypes(configurationValues: Record): ComparisonType {\n if (asBoolean(configurationValues[\"isMultiple\"])) {\n return ComparisonType.Contains | ComparisonType.DoesNotContain | ComparisonType.IsBlank;\n }\n else {\n return ComparisonType.EqualTo | ComparisonType.NotEqualTo;\n }\n }\n\n public override getFilterValueText(value: ComparisonValue): string {\n try {\n const values = JSON.parse(value.value) as ListItemBag | ListItemBag[];\n\n if (Array.isArray(values)) {\n return values.map(v => `'${v.text ?? \"\"}'`).join(\" OR \");\n }\n else {\n return `'${values.text ?? \"\"}'`;\n }\n }\n catch {\n return \"\";\n }\n }\n}\n","// \n// Copyright by the Spark Development Network\n//\n// Licensed under the Rock Community License (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.rockrms.com/license\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// \n//\nimport { Component } from \"vue\";\nimport { ComparisonType } from \"@Obsidian/Enums/Reporting/comparisonType\";\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\nimport { FieldTypeBase } from \"./fieldType\";\nimport { ListItemBag } from \"@Obsidian/ViewModels/Utility/listItemBag\";\nimport { getStandardFilterComponent } from \"./utils\";\n\n// The edit component can be quite large, so load it only as needed.\nconst editComponent = defineAsyncComponent(async () => {\n return (await import(\"./universalItemSearchPickerFieldComponents\")).EditComponent;\n});\n\n// The filter component can be quite large, so load it only as needed.\nconst filterComponent = defineAsyncComponent(async () => {\n return (await import(\"./universalItemSearchPickerFieldComponents\")).FilterComponent;\n});\n\n// The configuration component can be quite large, so load it only as needed.\nconst configurationComponent = defineAsyncComponent(async () => {\n return (await import(\"./universalItemFieldComponents\")).ConfigurationComponent;\n});\n\n/**\n * The field type handler for the Universal Tree Item Picker field types.\n */\nexport class UniversalItemSearchPickerFieldType extends FieldTypeBase {\n public override getTextValue(value: string): string {\n try {\n const bag = JSON.parse(value) as ListItemBag;\n\n return bag.text ?? \"\";\n }\n catch {\n return \"\";\n }\n }\n\n public override getEditComponent(): Component {\n return editComponent;\n }\n\n public override getFilterComponent(): Component | null {\n return getStandardFilterComponent(this.getSupportedComparisonTypes(), filterComponent);\n }\n\n public override getConfigurationComponent(): Component {\n return configurationComponent;\n }\n\n public override getSupportedComparisonTypes(): ComparisonType {\n return ComparisonType.EqualTo | ComparisonType.NotEqualTo;\n }\n}\n","// \n// Copyright by the Spark Development Network\n//\n// Licensed under the Rock Community License (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.rockrms.com/license\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// \n//\nimport { Component } from \"vue\";\nimport { ComparisonType } from \"@Obsidian/Enums/Reporting/comparisonType\";\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\nimport { FieldTypeBase } from \"./fieldType\";\nimport { asBoolean } from \"@Obsidian/Utility/booleanUtils\";\nimport { ListItemBag } from \"@Obsidian/ViewModels/Utility/listItemBag\";\nimport { getStandardFilterComponent } from \"./utils\";\nimport { ComparisonValue } from \"@Obsidian/Types/Reporting/comparisonValue\";\n\n// The edit component can be quite large, so load it only as needed.\nconst editComponent = defineAsyncComponent(async () => {\n return (await import(\"./universalItemTreePickerFieldComponents\")).EditComponent;\n});\n\n// The filter component can be quite large, so load it only as needed.\nconst filterComponent = defineAsyncComponent(async () => {\n return (await import(\"./universalItemTreePickerFieldComponents\")).FilterComponent;\n});\n\n// The configuration component can be quite large, so load it only as needed.\nconst configurationComponent = defineAsyncComponent(async () => {\n return (await import(\"./universalItemFieldComponents\")).ConfigurationComponent;\n});\n\n/**\n * The field type handler for the Universal Item Tree Picker field types.\n */\nexport class UniversalItemTreePickerFieldType extends FieldTypeBase {\n public override getTextValue(value: string): string {\n try {\n const values = JSON.parse(value) as ListItemBag | ListItemBag[];\n\n if (Array.isArray(values)) {\n return values.map(v => v.text ?? \"\").join(\", \");\n }\n else {\n return values.text ?? \"\";\n }\n }\n catch {\n return \"\";\n }\n }\n\n public override getEditComponent(): Component {\n return editComponent;\n }\n\n public override getFilterComponent(configurationValues: Record): Component | null {\n return getStandardFilterComponent(this.getSupportedComparisonTypes(configurationValues), filterComponent);\n }\n\n public override getConfigurationComponent(): Component {\n return configurationComponent;\n }\n\n public override getSupportedComparisonTypes(configurationValues: Record): ComparisonType {\n if (asBoolean(configurationValues[\"isMultiple\"]) === true) {\n return ComparisonType.Contains | ComparisonType.DoesNotContain | ComparisonType.IsBlank;\n }\n else {\n return ComparisonType.EqualTo | ComparisonType.NotEqualTo;\n }\n }\n\n public override getFilterValueText(value: ComparisonValue): string {\n try {\n const values = JSON.parse(value.value) as ListItemBag | ListItemBag[];\n\n if (Array.isArray(values)) {\n return values.map(v => `'${v.text ?? \"\"}'`).join(\" OR \");\n }\n else {\n return `'${values.text ?? \"\"}'`;\n }\n }\n catch {\n return \"\";\n }\n }\n}\n","// \n// Copyright by the Spark Development Network\n//\n// Licensed under the Rock Community License (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.rockrms.com/license\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// \n//\nimport { Component } from \"vue\";\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\nimport { ComparisonType } from \"@Obsidian/Enums/Reporting/comparisonType\";\nimport { stringComparisonTypes } from \"@Obsidian/Core/Reporting/comparisonType\";\nimport { asBoolean } from \"@Obsidian/Utility/booleanUtils\";\nimport { FieldTypeBase } from \"./fieldType\";\nimport { escapeHtml } from \"@Obsidian/Utility/stringUtils\";\n\nexport const enum ConfigurationValueKey {\n ShouldRequireTrailingForwardSlash = \"ShouldRequireTrailingForwardSlash\",\n ShouldAlwaysShowCondensed = \"ShouldAlwaysShowCondensed\"\n}\n\n// The edit component can be quite large, so load it only as needed.\nconst editComponent = defineAsyncComponent(async () => {\n return (await import(\"./urlLinkFieldComponents\")).EditComponent;\n});\n\n// The configuration component can be quite large, so load it only as needed.\nconst configurationComponent = defineAsyncComponent(async () => {\n return (await import(\"./urlLinkFieldComponents\")).ConfigurationComponent;\n});\n/**\n * The field type handler for the Email field.\n */\nexport class UrlLinkFieldType extends FieldTypeBase {\n public override getHtmlValue(value: string, configurationValues: Record, isEscaped: boolean = false): string {\n const shouldAlwaysShowCondensed = asBoolean(configurationValues[ConfigurationValueKey.ShouldAlwaysShowCondensed]);\n const textValue = this.getTextValue(value, configurationValues);\n\n let htmlValue = \"\";\n if (textValue) {\n if (!shouldAlwaysShowCondensed) {\n htmlValue = `${textValue}`;\n }\n else {\n htmlValue = textValue;\n }\n }\n\n if (isEscaped) {\n return escapeHtml(htmlValue);\n }\n\n return htmlValue;\n }\n\n public override getTextValue(value: string, configurationValues: Record): string {\n const shouldAlwaysShowCondensed = asBoolean(configurationValues[ConfigurationValueKey.ShouldAlwaysShowCondensed]);\n if (shouldAlwaysShowCondensed) {\n return `${value}`;\n }\n\n return value;\n }\n\n public override getEditComponent(): Component {\n return editComponent;\n }\n\n public override getConfigurationComponent(): Component {\n return configurationComponent;\n }\n\n public override getSupportedComparisonTypes(): ComparisonType {\n return stringComparisonTypes;\n }\n}\n","// \n// Copyright by the Spark Development Network\n//\n// Licensed under the Rock Community License (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.rockrms.com/license\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// \n//\nimport { Component } from \"vue\";\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\nimport { FieldTypeBase } from \"./fieldType\";\nimport { ListItemBag } from \"@Obsidian/ViewModels/Utility/listItemBag\";\n\nexport const enum ConfigurationValueKey {\n Values = \"values\",\n ValuePrompt = \"valueprompt\",\n AllowHtml = \"allowhtml\",\n\n // Only used during editing of the field type configuration.\n CustomValues = \"customvalues\",\n DefinedType = \"definedtype\"\n}\n\nexport const enum ConfigurationPropertyKey {\n DefinedTypes = \"definedTypes\"\n}\n\n// The edit component can be quite large, so load it only as needed.\nconst editComponent = defineAsyncComponent(async () => {\n return (await import(\"./valueListFieldComponents\")).EditComponent;\n});\n\n// Load the configuration component as needed.\nconst configurationComponent = defineAsyncComponent(async () => {\n return (await import(\"./valueListFieldComponents\")).ConfigurationComponent;\n});\n\n/**\n * The field type handler for the Value List field.\n */\nexport class ValueListFieldType extends FieldTypeBase {\n public override getTextValue(value: string, configurationValues: Record): string {\n try {\n const clientValues = JSON.parse(value ?? \"[]\") as string[];\n const configuredValues = JSON.parse(configurationValues[ConfigurationValueKey.Values] ?? \"[]\") as ListItemBag[];\n const values: string[] = [];\n\n for (const clientValue of clientValues) {\n if (configuredValues.length > 0) {\n const configuredValue = configuredValues.find(v => v.value === clientValue);\n\n if (configuredValue) {\n values.push(configuredValue.text ?? \"\");\n }\n }\n else {\n values.push(clientValue);\n }\n }\n\n return values.join(\", \");\n }\n catch {\n return \"\";\n }\n }\n\n public override getEditComponent(): Component {\n return editComponent;\n }\n\n public override getConfigurationComponent(): Component {\n return configurationComponent;\n }\n\n public override isFilterable(): boolean {\n return false;\n }\n}\n","// \n// Copyright by the Spark Development Network\n//\n// Licensed under the Rock Community License (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.rockrms.com/license\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// \n//\n\nimport { Component } from \"vue\";\nimport { defineAsyncComponent } from \"@Obsidian/Utility/component\";\nimport { FieldTypeBase } from \"./fieldType\";\n\n// The edit component can be quite large, so load it only as needed.\nconst editComponent = defineAsyncComponent(async () => {\n return (await import(\"./workflowTypeFieldComponents\")).EditComponent;\n});\n\n// The configuration component can be quite large, so load it only as needed.\nconst configurationComponent = defineAsyncComponent(async () => {\n return (await import(\"./workflowTypeFieldComponents\")).ConfigurationComponent;\n});\n\n/**\n * The field type handler for the Workflow Type field.\n */\nexport class WorkflowTypeFieldType extends FieldTypeBase {\n public override getTextValue(value: string, _configurationValues: Record): string {\n return value ?? \"\";\n }\n\n public override getEditComponent(): Component {\n return editComponent;\n }\n\n public override getConfigurationComponent(): Component {\n return configurationComponent;\n }\n\n public override isFilterable(): boolean {\n return false;\n }\n}\n","// \n// Copyright by the Spark Development Network\n//\n// Licensed under the Rock Community License (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.rockrms.com/license\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// \n//\nimport { FieldType as FieldTypeGuids } from \"@Obsidian/SystemGuids/fieldType\";\nimport { registerFieldType } from \"@Obsidian/Utility/fieldTypes\";\n\nexport { ConfigurationValues, getFieldEditorProps } from \"./utils\";\n\n/*\n * Define the standard field types in Rock.\n */\n\nimport { AddressFieldType } from \"./addressField.partial\";\nregisterFieldType(FieldTypeGuids.Address, new AddressFieldType());\n\nimport { BackgroundCheckFieldType } from \"./backgroundCheckField.partial\";\nregisterFieldType(FieldTypeGuids.Backgroundcheck, new BackgroundCheckFieldType());\n\nimport { BooleanFieldType } from \"./booleanField.partial\";\nregisterFieldType(FieldTypeGuids.Boolean, new BooleanFieldType());\n\nimport { CampusFieldType } from \"./campusField.partial\";\nregisterFieldType(FieldTypeGuids.Campus, new CampusFieldType());\n\nimport { CampusesFieldType } from \"./campusesField.partial\";\nregisterFieldType(FieldTypeGuids.Campuses, new CampusesFieldType());\n\nimport { CategoriesFieldType } from \"./categoriesField.partial\";\nregisterFieldType(FieldTypeGuids.Categories, new CategoriesFieldType());\n\nimport { CategoryFieldType } from \"./categoryField.partial\";\nregisterFieldType(FieldTypeGuids.Category, new CategoryFieldType());\n\nimport { CategorizedDefinedValueField } from \"./categorizedDefinedValueField.partial\";\nregisterFieldType(FieldTypeGuids.DefinedValueCategorized, new CategorizedDefinedValueField());\n\nimport { CheckListFieldType } from \"./checkListField.partial\";\nregisterFieldType(FieldTypeGuids.CheckList, new CheckListFieldType());\n\nimport { ColorFieldType } from \"./colorField.partial\";\nregisterFieldType(FieldTypeGuids.Color, new ColorFieldType());\n\nimport { ColorSelectorFieldType } from \"./colorSelectorField.partial\";\nregisterFieldType(FieldTypeGuids.ColorSelector, new ColorSelectorFieldType());\n\nimport { ConnectionTypeField } from \"./connectionTypeField.partial\";\nregisterFieldType(FieldTypeGuids.ConnectionType, new ConnectionTypeField());\n\nimport { ConnectionTypesField } from \"./connectionTypesField.partial\";\nregisterFieldType(FieldTypeGuids.ConnectionTypes, new ConnectionTypesField());\n\nimport { CommunicationPreferenceField } from \"./communicationPreferenceField.partial\";\nregisterFieldType(FieldTypeGuids.CommunicationPreferenceType, new CommunicationPreferenceField());\n\nimport { CommunicationTemplateFieldType } from \"./communicationTemplateField.partial\";\nregisterFieldType(FieldTypeGuids.CommunicationTemplate, new CommunicationTemplateFieldType());\n\nimport { CurrencyFieldType } from \"./currencyField.partial\";\nregisterFieldType(FieldTypeGuids.Currency, new CurrencyFieldType());\n\nimport { DateFieldType } from \"./dateField.partial\";\nregisterFieldType(FieldTypeGuids.Date, new DateFieldType());\n\nimport { DateRangeFieldType } from \"./dateRangeField.partial\";\nregisterFieldType(FieldTypeGuids.DateRange, new DateRangeFieldType());\n\nimport { DateTimeFieldType } from \"./dateTimeField.partial\";\nregisterFieldType(FieldTypeGuids.DateTime, new DateTimeFieldType());\n\nimport { DayOfWeekFieldType } from \"./dayOfWeekField.partial\";\nregisterFieldType(FieldTypeGuids.DayOfWeek, new DayOfWeekFieldType());\n\nimport { DaysOfWeekFieldType } from \"./daysOfWeekField.partial\";\nregisterFieldType(FieldTypeGuids.DaysOfWeek, new DaysOfWeekFieldType());\n\nimport { DecimalFieldType } from \"./decimalField.partial\";\nregisterFieldType(FieldTypeGuids.Decimal, new DecimalFieldType());\n\nimport { DecimalRangeFieldType } from \"./decimalRangeField.partial\";\nregisterFieldType(FieldTypeGuids.DecimalRange, new DecimalRangeFieldType());\n\nimport { DefinedValueFieldType } from \"./definedValueField.partial\";\nregisterFieldType(FieldTypeGuids.DefinedValue, new DefinedValueFieldType());\n\nimport { DefinedValueRangeFieldType } from \"./definedValueRangeField.partial\";\nregisterFieldType(FieldTypeGuids.DefinedValueRange, new DefinedValueRangeFieldType());\n\nimport { EmailFieldType } from \"./emailField.partial\";\nregisterFieldType(FieldTypeGuids.Email, new EmailFieldType());\n\nimport { FinancialAccountFieldType } from \"./financialAccountField.partial\";\nregisterFieldType(FieldTypeGuids.FinancialAccount, new FinancialAccountFieldType());\n\nimport { FinancialAccountsFieldType } from \"./financialAccountsField.partial\";\nregisterFieldType(FieldTypeGuids.FinancialAccounts, new FinancialAccountsFieldType());\n\nimport { FileFieldType } from \"./fileField.partial\";\nregisterFieldType(FieldTypeGuids.File, new FileFieldType());\n\nimport { GenderFieldType } from \"./genderField.partial\";\nregisterFieldType(FieldTypeGuids.Gender, new GenderFieldType());\n\nimport { GroupAndRoleFieldType } from \"./groupAndRoleField.partial\";\nregisterFieldType(FieldTypeGuids.GroupAndRole, new GroupAndRoleFieldType());\n\nimport { GroupFieldType } from \"./groupField.partial\";\nregisterFieldType(FieldTypeGuids.Group, new GroupFieldType());\n\nimport { GroupLocationTypeFieldType } from \"./groupLocationTypeField.partial\";\nregisterFieldType(FieldTypeGuids.GroupLocationType, new GroupLocationTypeFieldType());\n\nimport { GroupRoleFieldType } from \"./groupRoleField.partial\";\nregisterFieldType(FieldTypeGuids.GroupRole, new GroupRoleFieldType());\n\nimport { GroupMemberFieldType } from \"./groupMemberField.partial\";\nregisterFieldType(FieldTypeGuids.GroupMember, new GroupMemberFieldType());\n\nimport { GroupTypeField } from \"./groupTypeField.partial\";\nregisterFieldType(FieldTypeGuids.GroupType, new GroupTypeField());\n\nimport { GroupTypesFieldType } from \"./groupTypesField.partial\";\nregisterFieldType(FieldTypeGuids.GroupTypes, new GroupTypesFieldType());\n\nimport { ImageFieldType } from \"./imageField.partial\";\nregisterFieldType(FieldTypeGuids.Image, new ImageFieldType());\n\nimport { IntegerFieldType } from \"./integerField.partial\";\nregisterFieldType(FieldTypeGuids.Integer, new IntegerFieldType());\n\nimport { IntegerRangeFieldType } from \"./integerRangeField.partial\";\nregisterFieldType(FieldTypeGuids.IntegerRange, new IntegerRangeFieldType());\n\nimport { KeyValueListFieldType } from \"./keyValueListField.partial\";\nregisterFieldType(FieldTypeGuids.KeyValueList, new KeyValueListFieldType());\n\nimport { LocationFieldType } from \"./locationField.partial\";\nregisterFieldType(FieldTypeGuids.Location, new LocationFieldType());\n\nimport { LocationListFieldType } from \"./locationListField.partial\";\nregisterFieldType(FieldTypeGuids.LocationList, new LocationListFieldType());\n\nimport { MediaSelectorFieldType } from \"./mediaSelectorField.partial\";\nregisterFieldType(FieldTypeGuids.MediaSelector, new MediaSelectorFieldType());\n\nimport { MemoFieldType } from \"./memoField.partial\";\nregisterFieldType(FieldTypeGuids.Memo, new MemoFieldType());\n\nimport { MobileNavigationActionFieldType } from \"./mobileNavigationActionField.partial\";\nregisterFieldType(FieldTypeGuids.MobileNavigationAction, new MobileNavigationActionFieldType());\n\nimport { MonthDayFieldType } from \"./monthDayField.partial\";\nregisterFieldType(FieldTypeGuids.MonthDay, new MonthDayFieldType());\n\nimport { MultiSelectFieldType } from \"./multiSelectField.partial\";\nregisterFieldType(FieldTypeGuids.MultiSelect, new MultiSelectFieldType());\n\nimport { NoteTypeField } from \"./noteTypeField.partial\";\nregisterFieldType(FieldTypeGuids.NoteType, new NoteTypeField());\n\nimport { NoteTypesField } from \"./noteTypesField.partial\";\nregisterFieldType(FieldTypeGuids.NoteTypes, new NoteTypesField());\n\nimport { PhoneNumberFieldType } from \"./phoneNumberField.partial\";\nregisterFieldType(FieldTypeGuids.PhoneNumber, new PhoneNumberFieldType());\n\nimport { PersonFieldType } from \"./personField.partial\";\nregisterFieldType(FieldTypeGuids.Person, new PersonFieldType());\n\nimport { RangeSliderFieldType } from \"./rangeSliderField.partial\";\nregisterFieldType(FieldTypeGuids.RangeSlider, new RangeSliderFieldType());\n\nimport { RatingFieldType } from \"./ratingField.partial\";\nregisterFieldType(FieldTypeGuids.Rating, new RatingFieldType());\n\nimport { RegistryEntryFieldType } from \"./registryEntryField.partial\";\nregisterFieldType(FieldTypeGuids.RegistryEntry, new RegistryEntryFieldType());\n\nimport { ReminderTypeFieldType } from \"./reminderTypeField.partial\";\nregisterFieldType(FieldTypeGuids.ReminderType, new ReminderTypeFieldType());\n\nimport { ReminderTypesFieldType } from \"./reminderTypesField.partial\";\nregisterFieldType(FieldTypeGuids.ReminderTypes, new ReminderTypesFieldType());\n\nimport { ScheduleFieldType } from \"./scheduleField.partial\";\nregisterFieldType(FieldTypeGuids.Schedule, new ScheduleFieldType());\n\nimport { SchedulesFieldType } from \"./schedulesField.partial\";\nregisterFieldType(FieldTypeGuids.Schedules, new SchedulesFieldType());\n\nimport { SingleSelectFieldType } from \"./singleSelectField.partial\";\nregisterFieldType(FieldTypeGuids.SingleSelect, new SingleSelectFieldType());\n\nimport { SecurityRoleFieldType } from \"./securityRoleField.partial\";\nregisterFieldType(FieldTypeGuids.SecurityRole, new SecurityRoleFieldType());\n\nimport { StructureContentEditorFieldType } from \"./structureContentEditorField.partial\";\nregisterFieldType(FieldTypeGuids.StructureContentEditor, new StructureContentEditorFieldType());\n\nimport { SlidingDateRangeFieldType } from \"./slidingDateRangeField.partial\";\nregisterFieldType(FieldTypeGuids.SlidingDateRange, new SlidingDateRangeFieldType());\n\nimport { SocialMediaAccountFieldType } from \"./socialMediaAccountField.partial\";\nregisterFieldType(FieldTypeGuids.SocialMediaAccount, new SocialMediaAccountFieldType());\n\nimport { SSNFieldType } from \"./ssnField.partial\";\nregisterFieldType(FieldTypeGuids.Ssn, new SSNFieldType());\n\nimport { SystemCommunicationFieldType } from \"./systemCommunicationField.partial\";\nregisterFieldType(FieldTypeGuids.SystemCommunication, new SystemCommunicationFieldType());\n\nimport { TextFieldType } from \"./textField.partial\";\nregisterFieldType(FieldTypeGuids.Text, new TextFieldType());\n\nimport { TimeFieldType } from \"./timeField.partial\";\nregisterFieldType(FieldTypeGuids.Time, new TimeFieldType());\n\nimport { TimeZoneFieldType } from \"./timeZoneField.partial\";\nregisterFieldType(FieldTypeGuids.TimeZone, new TimeZoneFieldType());\n\nimport { UniversalItemPickerFieldType } from \"./universalItemPickerField.partial\";\nregisterFieldType(\"b69b5a61-6fcd-4e3b-bb45-5f6802514953\", new UniversalItemPickerFieldType());\n\nimport { UniversalItemSearchPickerFieldType } from \"./universalItemSearchPickerField.partial\";\nregisterFieldType(\"c5b32713-fb46-41c0-8bbc-9bd4142f841a\", new UniversalItemSearchPickerFieldType());\n\nimport { UniversalItemTreePickerFieldType } from \"./universalItemTreePickerField.partial\";\nregisterFieldType(\"c7485f3f-0c10-4db6-9574-c10b195617e4\", new UniversalItemTreePickerFieldType());\n\nimport { UrlLinkFieldType } from \"./urlLinkField.partial\";\nregisterFieldType(FieldTypeGuids.UrlLink, new UrlLinkFieldType());\n\nimport { ValueListFieldType } from \"./valueListField.partial\";\nregisterFieldType(FieldTypeGuids.ValueList, new ValueListFieldType());\n\nimport { WorkflowTypeFieldType } from \"./workflowTypeField.partial\";\nregisterFieldType(FieldTypeGuids.WorkflowType, new WorkflowTypeFieldType());\n"],"names":["editComponent","defineAsyncComponent","_asyncToGenerator","EditComponent","configurationComponent","ConfigurationComponent","AddressFieldType","FieldTypeBase","getTextValue","value","_configurationValues","_addressValue$street","_addressValue$street2","_addressValue$city","_addressValue$state","_addressValue$postalC","addressValue","JSON","parse","textValue","concat","street1","street2","city","state","postalCode","replace","_unused","getEditComponent","getConfigurationComponent","isFilterable","ConfigurationValueKey","BackgroundCheckFieldType","filterComponent","FilterComponent","BooleanFieldType","getCondensedTextValue","boolValue","asBooleanOrNull","configurationValues","TrueText","FalseText","getSupportedComparisonTypes","ComparisonType","EqualTo","NotEqualTo","getFilterComponent","getStandardFilterComponent","ConfigurationPropertyKey","CampusFieldType","undefined","_configurationValues$","values","Values","selectedValues","filter","o","map","text","join","getFilterValueText","_configurationValues$2","rawValues","split","v","areEqual","length","_unused2","doesValueMatchFilter","filterValue","_filterValue$value","toLowerCase","comparisonType","Contains","DoesNotContain","IsBlank","IsNotBlank","matched","includes","CampusesFieldType","userValues","_o$value","CategoriesFieldType","CategoryFieldType","CategorizedDefinedValueField","CheckListFieldType","ListItems","_v$key","key","containsComparisonTypes","_v$value","_value$split$filter$m","matchedCount","_iterator","_createForOfIteratorHelper","_step","s","n","done","userValue","err","e","f","_iterator2","_step2","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","getHtmlValue","isEscaped","arguments","htmlStringBuilder","selectorsToProcess","selectedColors","itemGuid","guid","newGuid","containerId","itemId","processSelectors","html","escapeHtml","maxAttempts","attemptCount","internalProcessSelectors","nextTick","failedSelectors","selector","querySelector","ConnectionTypeField","pop","ConnectionTypesField","CommunicationPreferenceField","_ref3","_publicValue$text","options","Options","publicValue","find","x","CommunicationTemplateFieldType","_selectedValue$text","ClientValues","selectedValue","CurrencyFieldType","_toCurrencyOrNull","toCurrencyOrNull","numericComparisonTypes","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","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","EmailFieldType","stringComparisonTypes","FinancialAccountFieldType","FinancialAccountsFieldType","FileFieldType","_realValue$text","realValue","_realValue$text2","GenderFieldType","numberValue","GroupAndRoleFieldType","GroupFieldType","GroupLocationTypeFieldType","GroupRoleFieldType","GroupMemberFieldType","GroupTypeField","GroupTypesFieldType","ImageFieldType","getCondensedHtmlValue","IntegerFieldType","IntegerRangeFieldType","KeyValueListFieldType","clientValues","configuredValues","_loop","configuredValue","LocationFieldType","_locationItemBag$text","locationItemBag","LocationListFieldType","MediaSelectorFieldType","MemoFieldType","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","PhoneNumberFieldType","PersonFieldType","_personValue$text","personValue","RangeSliderFieldType","RatingFieldType","_ratingValue$value","_ratingValue","ratingValue","rating","maxRating","MaxRating","i","_ratingValue$value2","_ratingValue2","RegistryEntryFieldType","ReminderTypeFieldType","name","ReminderTypesFieldType","binaryComparisonTypes","ScheduleFieldType","SchedulesFieldType","SingleSelectFieldType","_selectedValues$0$tex","SecurityRoleFieldType","StructureContentEditorFieldType","SlidingDateRangeFieldType","SocialMediaAccountFieldType","SSNFieldType","strippedValue","substr","SystemCommunicationFieldType","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","htmlValue","ValueListFieldType","_configuredValue$text","WorkflowTypeFieldType","registerFieldType","FieldTypeGuids","Address","Backgroundcheck","Boolean","Campus","Campuses","Categories","Category","DefinedValueCategorized","CheckList","Color","ColorSelector","ConnectionType","ConnectionTypes","CommunicationPreferenceType","CommunicationTemplate","Currency","Date","DateRange","DateTime","DaysOfWeek","Decimal","DecimalRange","DefinedValue","DefinedValueRange","Email","FinancialAccount","FinancialAccounts","File","Gender","GroupAndRole","Group","GroupLocationType","GroupRole","GroupMember","GroupType","GroupTypes","Image","Integer","IntegerRange","KeyValueList","Location","LocationList","MediaSelector","Memo","MobileNavigationAction","MonthDay","MultiSelect","NoteType","NoteTypes","PhoneNumber","Person","RangeSlider","Rating","RegistryEntry","ReminderType","ReminderTypes","Schedule","Schedules","SingleSelect","SecurityRole","StructureContentEditor","SlidingDateRange","SocialMediaAccount","Ssn","SystemCommunication","Text","Time","TimeZone","UrlLink","ValueList","WorkflowType"],"mappings":"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"}