{"version":3,"file":"fieldType.js","sources":["../../../Framework/FieldTypes/fieldType.ts"],"sourcesContent":["// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\n\r\nimport { Component, computed, defineComponent, PropType } from \"vue\";\r\nimport { getComparisonName } from \"@Obsidian/Core/Reporting/comparisonType\";\r\nimport { ComparisonValue } from \"@Obsidian/Types/Reporting/comparisonValue\";\r\nimport { escapeHtml, truncate } from \"@Obsidian/Utility/stringUtils\";\r\nimport { EditComponent as TextEditComponent } from \"./textFieldComponents\";\r\nimport { getFieldEditorProps, getStandardFilterComponent } from \"./utils\";\r\nimport { IFieldType } from \"@Obsidian/Types/fieldType\";\r\nimport { ComparisonType } from \"@Obsidian/Enums/Reporting/comparisonType\";\r\n\r\n/**\r\n * Define a simple component that can be used when editing the configuration of\r\n * a field type that isn't yet supported.\r\n */\r\nconst unsupportedFieldTypeConfigurationComponent = defineComponent({\r\n props: {\r\n modelValue: {\r\n type: Object as PropType>,\r\n required: true\r\n },\r\n\r\n configurationProperties: {\r\n type: Object as PropType>,\r\n required: true\r\n }\r\n },\r\n\r\n setup() {\r\n return {};\r\n },\r\n\r\n template: `\r\n
\r\n Configuration of this field type is not supported.\r\n
\r\n`\r\n});\r\n\r\n/**\r\n * Basic field type implementation that is suitable for implementations to\r\n * extend.\r\n */\r\nexport abstract class FieldTypeBase implements IFieldType {\r\n public getTextValue(value: string, _configurationValues: Record): string {\r\n return value ?? \"\";\r\n }\r\n\r\n public getHtmlValue(value: string, configurationValues: Record): string {\r\n return `${escapeHtml(this.getTextValue(value, configurationValues))}`;\r\n }\r\n\r\n public getCondensedTextValue(value: string, configurationValues: Record): string {\r\n return truncate(this.getTextValue(value, configurationValues), 100);\r\n }\r\n\r\n public getCondensedHtmlValue(value: string, configurationValues: Record): string {\r\n return `${escapeHtml(this.getCondensedTextValue(value, configurationValues))}`;\r\n }\r\n\r\n public getFormattedComponent(_configurationValues: Record): Component {\r\n return defineComponent({\r\n name: \"FieldType.Formatted\",\r\n props: getFieldEditorProps(),\r\n setup: (props) => {\r\n return {\r\n content: computed(() => this.getHtmlValue(props.modelValue ?? \"\", props.configurationValues))\r\n };\r\n },\r\n\r\n template: `
`\r\n });\r\n }\r\n\r\n public getCondensedFormattedComponent(_configurationValues: Record): Component {\r\n return defineComponent({\r\n name: \"FieldType.CondensedFormatted\",\r\n props: getFieldEditorProps(),\r\n setup: (props) => {\r\n return {\r\n content: computed(() => this.getCondensedHtmlValue(props.modelValue ?? \"\", props.configurationValues))\r\n };\r\n },\r\n\r\n template: ``\r\n });\r\n }\r\n\r\n public getEditComponent(_configurationValues: Record): Component {\r\n return TextEditComponent;\r\n }\r\n\r\n public getConfigurationComponent(): Component {\r\n return unsupportedFieldTypeConfigurationComponent;\r\n }\r\n\r\n public hasDefaultComponent(_configurationValues: Record): boolean {\r\n return true;\r\n }\r\n\r\n public isFilterable(_configurationValues: Record): boolean {\r\n return true;\r\n }\r\n\r\n public getSupportedComparisonTypes(_configurationValues: Record): ComparisonType {\r\n return ComparisonType.EqualTo | ComparisonType.NotEqualTo;\r\n }\r\n\r\n public getFilterComponent(configurationValues: Record): Component | null {\r\n return getStandardFilterComponent(this.getSupportedComparisonTypes(configurationValues), this.getEditComponent(configurationValues));\r\n }\r\n\r\n public getFilterValueDescription(value: ComparisonValue, configurationValues: Record): string {\r\n const valueText = this.getFilterValueText(value, configurationValues);\r\n\r\n if (!value.comparisonType) {\r\n return valueText ? `Is ${valueText}` : \"\";\r\n }\r\n\r\n if (value.comparisonType === ComparisonType.IsBlank || value.comparisonType === ComparisonType.IsNotBlank) {\r\n return getComparisonName(value.comparisonType);\r\n }\r\n\r\n if (valueText === \"\") {\r\n // If the field type supports IsBlank and we have a blank value and\r\n // the selected comparison type is EqualTo or NotEqualTo then perform\r\n // special wrapping around the blank value.\r\n if (this.getSupportedComparisonTypes(configurationValues) & ComparisonType.IsBlank && (value.comparisonType === ComparisonType.EqualTo || value.comparisonType === ComparisonType.NotEqualTo)) {\r\n return `${getComparisonName(value.comparisonType)} ''`;\r\n }\r\n\r\n // No value specified basically means no filter.\r\n return \"\";\r\n }\r\n\r\n return `${getComparisonName(value.comparisonType)} ${valueText}`;\r\n }\r\n\r\n public getFilterValueText(value: ComparisonValue, configurationValues: Record): string {\r\n const text = this.getTextValue(value.value, configurationValues ?? {}) ?? \"\";\r\n\r\n return text ? `'${text}'` : text;\r\n }\r\n\r\n public doesValueMatchFilter(value: string, filterValue: ComparisonValue, configurationValues: Record): boolean {\r\n if (!filterValue.comparisonType) {\r\n return false;\r\n }\r\n\r\n if (!filterValue.value) {\r\n // No comparison value was specified. Attempt to filter on specific\r\n // comparison types that don't need a value.\r\n if (filterValue.comparisonType === ComparisonType.IsBlank) {\r\n return (value ?? \"\") === \"\";\r\n }\r\n else if (filterValue.comparisonType === ComparisonType.IsNotBlank) {\r\n return (value ?? \"\") !== \"\";\r\n }\r\n else if (this.getSupportedComparisonTypes(configurationValues) & ComparisonType.IsBlank) {\r\n // If this filter supports an IsBlank comparison type then\r\n // translate \"EqualTo\" and \"NotEqualTo\" to be \"IsBlank\" and\r\n // \"IsNotBlank\" respectively.\r\n if (filterValue.comparisonType === ComparisonType.EqualTo) {\r\n return (value ?? \"\") === \"\";\r\n }\r\n else if (filterValue.comparisonType === ComparisonType.NotEqualTo) {\r\n return (value ?? \"\") !== \"\";\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n const numericFilterValue = parseFloat(filterValue.value);\r\n const numericValue = parseFloat(value ?? \"\");\r\n const isNumericComparison = !Number.isNaN(numericFilterValue) && !Number.isNaN(numericValue);\r\n\r\n if (filterValue.comparisonType === ComparisonType.Contains) {\r\n return (value ?? \"\").toLowerCase().includes(filterValue.value.toLowerCase());\r\n }\r\n else if (filterValue.comparisonType === ComparisonType.DoesNotContain) {\r\n return !(value ?? \"\").toLowerCase().includes(filterValue.value.toLowerCase());\r\n }\r\n else if (filterValue.comparisonType === ComparisonType.StartsWith) {\r\n return (value ?? \"\").toLowerCase().startsWith(filterValue.value.toLowerCase());\r\n }\r\n else if (filterValue.comparisonType === ComparisonType.EndsWith) {\r\n return (value ?? \"\").toLowerCase().endsWith(filterValue.value.toLowerCase());\r\n }\r\n else if (filterValue.comparisonType === ComparisonType.EqualTo) {\r\n return (value ?? \"\").toLowerCase() === filterValue.value.toLowerCase();\r\n }\r\n else if (filterValue.comparisonType === ComparisonType.NotEqualTo) {\r\n return (value ?? \"\").toLowerCase() !== filterValue.value.toLowerCase();\r\n }\r\n else if (filterValue.comparisonType === ComparisonType.IsBlank) {\r\n return (value ?? \"\").toLowerCase().trim() === \"\";\r\n }\r\n else if (filterValue.comparisonType === ComparisonType.IsNotBlank) {\r\n return (value ?? \"\").toLowerCase().trim() !== \"\";\r\n }\r\n else if (filterValue.comparisonType === ComparisonType.LessThan) {\r\n return isNumericComparison\r\n ? numericValue < numericFilterValue\r\n : (value ?? \"\").toLowerCase() < filterValue.value.toLowerCase();\r\n }\r\n else if (filterValue.comparisonType === ComparisonType.LessThanOrEqualTo) {\r\n return isNumericComparison\r\n ? numericValue <= numericFilterValue\r\n : (value ?? \"\").toLowerCase() <= filterValue.value.toLowerCase();\r\n }\r\n else if (filterValue.comparisonType === ComparisonType.GreaterThan) {\r\n return isNumericComparison\r\n ? numericValue > numericFilterValue\r\n : (value ?? \"\").toLowerCase() > filterValue.value.toLowerCase();\r\n }\r\n else if (filterValue.comparisonType === ComparisonType.GreaterThanOrEqualTo) {\r\n return isNumericComparison\r\n ? numericValue >= numericFilterValue\r\n : (value ?? \"\").toLowerCase() >= filterValue.value.toLowerCase();\r\n }\r\n\r\n return false;\r\n }\r\n}\r\n"],"names":["unsupportedFieldTypeConfigurationComponent","defineComponent","props","modelValue","type","Object","required","configurationProperties","setup","template","FieldTypeBase","getTextValue","value","_configurationValues","getHtmlValue","configurationValues","concat","escapeHtml","getCondensedTextValue","truncate","getCondensedHtmlValue","getFormattedComponent","name","getFieldEditorProps","content","computed","_props$modelValue","getCondensedFormattedComponent","_props$modelValue2","getEditComponent","TextEditComponent","getConfigurationComponent","hasDefaultComponent","isFilterable","getSupportedComparisonTypes","ComparisonType","EqualTo","NotEqualTo","getFilterComponent","getStandardFilterComponent","getFilterValueDescription","valueText","getFilterValueText","comparisonType","IsBlank","IsNotBlank","getComparisonName","_this$getTextValue","text","doesValueMatchFilter","filterValue","numericFilterValue","parseFloat","numericValue","isNumericComparison","Number","isNaN","Contains","toLowerCase","includes","DoesNotContain","StartsWith","startsWith","EndsWith","endsWith","trim","LessThan","LessThanOrEqualTo","GreaterThan","GreaterThanOrEqualTo"],"mappings":";;;;;;;;;;;;;;;;;;;;;;YA8BA,IAAMA,0CAA0C,GAAGC,eAAe,CAAC;YAC/DC,EAAAA,KAAK,EAAE;YACHC,IAAAA,UAAU,EAAE;YACRC,MAAAA,IAAI,EAAEC,MAA0C;YAChDC,MAAAA,QAAQ,EAAE,IAAA;iBACb;YAEDC,IAAAA,uBAAuB,EAAE;YACrBH,MAAAA,IAAI,EAAEC,MAA0C;YAChDC,MAAAA,QAAQ,EAAE,IAAA;YACd,KAAA;eACH;YAEDE,EAAAA,KAAKA,GAAG;YACJ,IAAA,OAAO,EAAE,CAAA;eACZ;cAEDC,QAAQ,EAAA,yGAAA;YAKZ,CAAC,CAAC,CAAA;YAMK,MAAeC,aAAa,CAAuB;YAC/CC,EAAAA,YAAYA,CAACC,KAAa,EAAEC,oBAA4C,EAAU;YACrF,IAAA,OAAOD,KAAK,KAALA,IAAAA,IAAAA,KAAK,KAALA,KAAAA,CAAAA,GAAAA,KAAK,GAAI,EAAE,CAAA;YACtB,GAAA;YAEOE,EAAAA,YAAYA,CAACF,KAAa,EAAEG,mBAA2C,EAAU;YACpF,IAAA,OAAA,EAAA,CAAAC,MAAA,CAAUC,UAAU,CAAC,IAAI,CAACN,YAAY,CAACC,KAAK,EAAEG,mBAAmB,CAAC,CAAC,CAAA,CAAA;YACvE,GAAA;YAEOG,EAAAA,qBAAqBA,CAACN,KAAa,EAAEG,mBAA2C,EAAU;YAC7F,IAAA,OAAOI,QAAQ,CAAC,IAAI,CAACR,YAAY,CAACC,KAAK,EAAEG,mBAAmB,CAAC,EAAE,GAAG,CAAC,CAAA;YACvE,GAAA;YAEOK,EAAAA,qBAAqBA,CAACR,KAAa,EAAEG,mBAA2C,EAAU;YAC7F,IAAA,OAAA,EAAA,CAAAC,MAAA,CAAUC,UAAU,CAAC,IAAI,CAACC,qBAAqB,CAACN,KAAK,EAAEG,mBAAmB,CAAC,CAAC,CAAA,CAAA;YAChF,GAAA;cAEOM,qBAAqBA,CAACR,oBAA4C,EAAa;YAClF,IAAA,OAAOZ,eAAe,CAAC;YACnBqB,MAAAA,IAAI,EAAE,qBAAqB;kBAC3BpB,KAAK,EAAEqB,mBAAmB,EAAE;kBAC5Bf,KAAK,EAAGN,KAAK,IAAK;oBACd,OAAO;sBACHsB,OAAO,EAAEC,QAAQ,CAAC,MAAA;YAAA,YAAA,IAAAC,iBAAA,CAAA;YAAA,YAAA,OAAM,IAAI,CAACZ,YAAY,EAAAY,iBAAA,GAACxB,KAAK,CAACC,UAAU,cAAAuB,iBAAA,KAAA,KAAA,CAAA,GAAAA,iBAAA,GAAI,EAAE,EAAExB,KAAK,CAACa,mBAAmB,CAAC,CAAA;YAAA,WAAA,CAAA;qBAC/F,CAAA;mBACJ;kBAEDN,QAAQ,EAAA,gCAAA;YACZ,KAAC,CAAC,CAAA;YACN,GAAA;cAEOkB,8BAA8BA,CAACd,oBAA4C,EAAa;YAC3F,IAAA,OAAOZ,eAAe,CAAC;YACnBqB,MAAAA,IAAI,EAAE,8BAA8B;kBACpCpB,KAAK,EAAEqB,mBAAmB,EAAE;kBAC5Bf,KAAK,EAAGN,KAAK,IAAK;oBACd,OAAO;sBACHsB,OAAO,EAAEC,QAAQ,CAAC,MAAA;YAAA,YAAA,IAAAG,kBAAA,CAAA;YAAA,YAAA,OAAM,IAAI,CAACR,qBAAqB,EAAAQ,kBAAA,GAAC1B,KAAK,CAACC,UAAU,cAAAyB,kBAAA,KAAA,KAAA,CAAA,GAAAA,kBAAA,GAAI,EAAE,EAAE1B,KAAK,CAACa,mBAAmB,CAAC,CAAA;YAAA,WAAA,CAAA;qBACxG,CAAA;mBACJ;kBAEDN,QAAQ,EAAA,kCAAA;YACZ,KAAC,CAAC,CAAA;YACN,GAAA;cAEOoB,gBAAgBA,CAAChB,oBAA4C,EAAa;YAC7E,IAAA,OAAOiB,aAAiB,CAAA;YAC5B,GAAA;YAEOC,EAAAA,yBAAyBA,GAAc;YAC1C,IAAA,OAAO/B,0CAA0C,CAAA;YACrD,GAAA;cAEOgC,mBAAmBA,CAACnB,oBAA4C,EAAW;YAC9E,IAAA,OAAO,IAAI,CAAA;YACf,GAAA;cAEOoB,YAAYA,CAACpB,oBAA4C,EAAW;YACvE,IAAA,OAAO,IAAI,CAAA;YACf,GAAA;cAEOqB,2BAA2BA,CAACrB,oBAA4C,EAAkB;YAC7F,IAAA,OAAOsB,cAAc,CAACC,OAAO,GAAGD,cAAc,CAACE,UAAU,CAAA;YAC7D,GAAA;cAEOC,kBAAkBA,CAACvB,mBAA2C,EAAoB;YACrF,IAAA,OAAOwB,0BAA0B,CAAC,IAAI,CAACL,2BAA2B,CAACnB,mBAAmB,CAAC,EAAE,IAAI,CAACc,gBAAgB,CAACd,mBAAmB,CAAC,CAAC,CAAA;YACxI,GAAA;YAEOyB,EAAAA,yBAAyBA,CAAC5B,KAAsB,EAAEG,mBAA2C,EAAU;gBAC1G,IAAM0B,SAAS,GAAG,IAAI,CAACC,kBAAkB,CAAC9B,KAAK,EAAEG,mBAAmB,CAAC,CAAA;YAErE,IAAA,IAAI,CAACH,KAAK,CAAC+B,cAAc,EAAE;YACvB,MAAA,OAAOF,SAAS,GAAAzB,KAAAA,CAAAA,MAAA,CAASyB,SAAS,IAAK,EAAE,CAAA;YAC7C,KAAA;YAEA,IAAA,IAAI7B,KAAK,CAAC+B,cAAc,KAAKR,cAAc,CAACS,OAAO,IAAIhC,KAAK,CAAC+B,cAAc,KAAKR,cAAc,CAACU,UAAU,EAAE;YACvG,MAAA,OAAOC,iBAAiB,CAAClC,KAAK,CAAC+B,cAAc,CAAC,CAAA;YAClD,KAAA;gBAEA,IAAIF,SAAS,KAAK,EAAE,EAAE;kBAIlB,IAAI,IAAI,CAACP,2BAA2B,CAACnB,mBAAmB,CAAC,GAAGoB,cAAc,CAACS,OAAO,KAAKhC,KAAK,CAAC+B,cAAc,KAAKR,cAAc,CAACC,OAAO,IAAIxB,KAAK,CAAC+B,cAAc,KAAKR,cAAc,CAACE,UAAU,CAAC,EAAE;YAC3L,QAAA,OAAA,EAAA,CAAArB,MAAA,CAAU8B,iBAAiB,CAAClC,KAAK,CAAC+B,cAAc,CAAC,EAAA,KAAA,CAAA,CAAA;YACrD,OAAA;YAGA,MAAA,OAAO,EAAE,CAAA;YACb,KAAA;gBAEA,OAAA3B,EAAAA,CAAAA,MAAA,CAAU8B,iBAAiB,CAAClC,KAAK,CAAC+B,cAAc,CAAC,EAAA,GAAA,CAAA,CAAA3B,MAAA,CAAIyB,SAAS,CAAA,CAAA;YAClE,GAAA;YAEOC,EAAAA,kBAAkBA,CAAC9B,KAAsB,EAAEG,mBAA2C,EAAU;YAAA,IAAA,IAAAgC,kBAAA,CAAA;gBACnG,IAAMC,IAAI,GAAAD,CAAAA,kBAAA,GAAG,IAAI,CAACpC,YAAY,CAACC,KAAK,CAACA,KAAK,EAAEG,mBAAmB,aAAnBA,mBAAmB,KAAA,KAAA,CAAA,GAAnBA,mBAAmB,GAAI,EAAE,CAAC,MAAA,IAAA,IAAAgC,kBAAA,KAAA,KAAA,CAAA,GAAAA,kBAAA,GAAI,EAAE,CAAA;YAE5E,IAAA,OAAOC,IAAI,GAAAhC,GAAAA,CAAAA,MAAA,CAAOgC,IAAI,SAAMA,IAAI,CAAA;YACpC,GAAA;YAEOC,EAAAA,oBAAoBA,CAACrC,KAAa,EAAEsC,WAA4B,EAAEnC,mBAA2C,EAAW;YAC3H,IAAA,IAAI,CAACmC,WAAW,CAACP,cAAc,EAAE;YAC7B,MAAA,OAAO,KAAK,CAAA;YAChB,KAAA;YAEA,IAAA,IAAI,CAACO,WAAW,CAACtC,KAAK,EAAE;YAGpB,MAAA,IAAIsC,WAAW,CAACP,cAAc,KAAKR,cAAc,CAACS,OAAO,EAAE;oBACvD,OAAO,CAAChC,KAAK,KAALA,IAAAA,IAAAA,KAAK,cAALA,KAAK,GAAI,EAAE,MAAM,EAAE,CAAA;mBAC9B,MACI,IAAIsC,WAAW,CAACP,cAAc,KAAKR,cAAc,CAACU,UAAU,EAAE;oBAC/D,OAAO,CAACjC,KAAK,KAALA,IAAAA,IAAAA,KAAK,cAALA,KAAK,GAAI,EAAE,MAAM,EAAE,CAAA;YAC/B,OAAC,MACI,IAAI,IAAI,CAACsB,2BAA2B,CAACnB,mBAAmB,CAAC,GAAGoB,cAAc,CAACS,OAAO,EAAE;YAIrF,QAAA,IAAIM,WAAW,CAACP,cAAc,KAAKR,cAAc,CAACC,OAAO,EAAE;sBACvD,OAAO,CAACxB,KAAK,KAALA,IAAAA,IAAAA,KAAK,cAALA,KAAK,GAAI,EAAE,MAAM,EAAE,CAAA;qBAC9B,MACI,IAAIsC,WAAW,CAACP,cAAc,KAAKR,cAAc,CAACE,UAAU,EAAE;sBAC/D,OAAO,CAACzB,KAAK,KAALA,IAAAA,IAAAA,KAAK,cAALA,KAAK,GAAI,EAAE,MAAM,EAAE,CAAA;YAC/B,SAAA;YACJ,OAAA;YAEA,MAAA,OAAO,KAAK,CAAA;YAChB,KAAA;YAEA,IAAA,IAAMuC,kBAAkB,GAAGC,UAAU,CAACF,WAAW,CAACtC,KAAK,CAAC,CAAA;gBACxD,IAAMyC,YAAY,GAAGD,UAAU,CAACxC,KAAK,KAALA,IAAAA,IAAAA,KAAK,KAALA,KAAAA,CAAAA,GAAAA,KAAK,GAAI,EAAE,CAAC,CAAA;YAC5C,IAAA,IAAM0C,mBAAmB,GAAG,CAACC,MAAM,CAACC,KAAK,CAACL,kBAAkB,CAAC,IAAI,CAACI,MAAM,CAACC,KAAK,CAACH,YAAY,CAAC,CAAA;YAE5F,IAAA,IAAIH,WAAW,CAACP,cAAc,KAAKR,cAAc,CAACsB,QAAQ,EAAE;kBACxD,OAAO,CAAC7C,KAAK,KAALA,IAAAA,IAAAA,KAAK,cAALA,KAAK,GAAI,EAAE,EAAE8C,WAAW,EAAE,CAACC,QAAQ,CAACT,WAAW,CAACtC,KAAK,CAAC8C,WAAW,EAAE,CAAC,CAAA;iBAC/E,MACI,IAAIR,WAAW,CAACP,cAAc,KAAKR,cAAc,CAACyB,cAAc,EAAE;kBACnE,OAAO,CAAC,CAAChD,KAAK,KAAA,IAAA,IAALA,KAAK,KAALA,KAAAA,CAAAA,GAAAA,KAAK,GAAI,EAAE,EAAE8C,WAAW,EAAE,CAACC,QAAQ,CAACT,WAAW,CAACtC,KAAK,CAAC8C,WAAW,EAAE,CAAC,CAAA;iBAChF,MACI,IAAIR,WAAW,CAACP,cAAc,KAAKR,cAAc,CAAC0B,UAAU,EAAE;kBAC/D,OAAO,CAACjD,KAAK,KAALA,IAAAA,IAAAA,KAAK,cAALA,KAAK,GAAI,EAAE,EAAE8C,WAAW,EAAE,CAACI,UAAU,CAACZ,WAAW,CAACtC,KAAK,CAAC8C,WAAW,EAAE,CAAC,CAAA;iBACjF,MACI,IAAIR,WAAW,CAACP,cAAc,KAAKR,cAAc,CAAC4B,QAAQ,EAAE;kBAC7D,OAAO,CAACnD,KAAK,KAALA,IAAAA,IAAAA,KAAK,cAALA,KAAK,GAAI,EAAE,EAAE8C,WAAW,EAAE,CAACM,QAAQ,CAACd,WAAW,CAACtC,KAAK,CAAC8C,WAAW,EAAE,CAAC,CAAA;iBAC/E,MACI,IAAIR,WAAW,CAACP,cAAc,KAAKR,cAAc,CAACC,OAAO,EAAE;YAC5D,MAAA,OAAO,CAACxB,KAAK,KAAA,IAAA,IAALA,KAAK,KAAA,KAAA,CAAA,GAALA,KAAK,GAAI,EAAE,EAAE8C,WAAW,EAAE,KAAKR,WAAW,CAACtC,KAAK,CAAC8C,WAAW,EAAE,CAAA;iBACzE,MACI,IAAIR,WAAW,CAACP,cAAc,KAAKR,cAAc,CAACE,UAAU,EAAE;YAC/D,MAAA,OAAO,CAACzB,KAAK,KAAA,IAAA,IAALA,KAAK,KAAA,KAAA,CAAA,GAALA,KAAK,GAAI,EAAE,EAAE8C,WAAW,EAAE,KAAKR,WAAW,CAACtC,KAAK,CAAC8C,WAAW,EAAE,CAAA;iBACzE,MACI,IAAIR,WAAW,CAACP,cAAc,KAAKR,cAAc,CAACS,OAAO,EAAE;YAC5D,MAAA,OAAO,CAAChC,KAAK,KAALA,IAAAA,IAAAA,KAAK,cAALA,KAAK,GAAI,EAAE,EAAE8C,WAAW,EAAE,CAACO,IAAI,EAAE,KAAK,EAAE,CAAA;iBACnD,MACI,IAAIf,WAAW,CAACP,cAAc,KAAKR,cAAc,CAACU,UAAU,EAAE;YAC/D,MAAA,OAAO,CAACjC,KAAK,KAALA,IAAAA,IAAAA,KAAK,cAALA,KAAK,GAAI,EAAE,EAAE8C,WAAW,EAAE,CAACO,IAAI,EAAE,KAAK,EAAE,CAAA;iBACnD,MACI,IAAIf,WAAW,CAACP,cAAc,KAAKR,cAAc,CAAC+B,QAAQ,EAAE;kBAC7D,OAAOZ,mBAAmB,GACpBD,YAAY,GAAGF,kBAAkB,GACjC,CAACvC,KAAK,KAAA,IAAA,IAALA,KAAK,KAAA,KAAA,CAAA,GAALA,KAAK,GAAI,EAAE,EAAE8C,WAAW,EAAE,GAAGR,WAAW,CAACtC,KAAK,CAAC8C,WAAW,EAAE,CAAA;iBACtE,MACI,IAAIR,WAAW,CAACP,cAAc,KAAKR,cAAc,CAACgC,iBAAiB,EAAE;kBACtE,OAAOb,mBAAmB,GACpBD,YAAY,IAAIF,kBAAkB,GAClC,CAACvC,KAAK,KAAA,IAAA,IAALA,KAAK,KAAA,KAAA,CAAA,GAALA,KAAK,GAAI,EAAE,EAAE8C,WAAW,EAAE,IAAIR,WAAW,CAACtC,KAAK,CAAC8C,WAAW,EAAE,CAAA;iBACvE,MACI,IAAIR,WAAW,CAACP,cAAc,KAAKR,cAAc,CAACiC,WAAW,EAAE;kBAChE,OAAOd,mBAAmB,GACpBD,YAAY,GAAGF,kBAAkB,GACjC,CAACvC,KAAK,KAAA,IAAA,IAALA,KAAK,KAAA,KAAA,CAAA,GAALA,KAAK,GAAI,EAAE,EAAE8C,WAAW,EAAE,GAAGR,WAAW,CAACtC,KAAK,CAAC8C,WAAW,EAAE,CAAA;iBACtE,MACI,IAAIR,WAAW,CAACP,cAAc,KAAKR,cAAc,CAACkC,oBAAoB,EAAE;kBACzE,OAAOf,mBAAmB,GACpBD,YAAY,IAAIF,kBAAkB,GAClC,CAACvC,KAAK,KAAA,IAAA,IAALA,KAAK,KAAA,KAAA,CAAA,GAALA,KAAK,GAAI,EAAE,EAAE8C,WAAW,EAAE,IAAIR,WAAW,CAACtC,KAAK,CAAC8C,WAAW,EAAE,CAAA;YACxE,KAAA;YAEA,IAAA,OAAO,KAAK,CAAA;YAChB,GAAA;YACJ;;;;;;;;"}